From 46f6cc100b31aace55bba1d94d168097e12947fa Mon Sep 17 00:00:00 2001 From: yichuan520030910320 Date: Mon, 30 Jun 2025 09:05:05 +0000 Subject: [PATCH] Initial commit --- .gitattributes | 1 + .gitignore | 72 + .gitmodules | 6 + .python-version | 1 + .vscode/extensions.json | 9 + .vscode/launch.json | 283 + .vscode/settings.json | 43 + .vscode/tasks.json | 16 + LICENSE | 9 + README.md | 292 + demo.ipynb | 248 + examples/data/2506.08276v1.pdf | 7905 +++++++++++++++++ examples/document_search.py | 146 + examples/main_cli_example.py | 76 + examples/simple_demo.py | 81 + knowledge.leann.meta.json | 32 + packages/leann-backend-diskann/CMakeLists.txt | 8 + .../leann_backend_diskann/__init__.py | 7 + .../leann_backend_diskann/diskann_backend.py | 299 + .../leann_backend_diskann/embedding_pb2.py | 27 + .../leann_backend_diskann/embedding_server.py | 397 + packages/leann-backend-diskann/pyproject.toml | 16 + .../third_party/DiskANN/.clang-format | 6 + .../third_party/DiskANN/.gitattributes | 14 + .../.github/ISSUE_TEMPLATE/bug_report.md | 40 + .../DiskANN/.github/ISSUE_TEMPLATE/config.yml | 2 + .../.github/ISSUE_TEMPLATE/feature_request.md | 25 + .../.github/ISSUE_TEMPLATE/usage-question.md | 11 + .../DiskANN/.github/PULL_REQUEST_TEMPLATE.md | 22 + .../DiskANN/.github/actions/build/action.yml | 39 + .../.github/actions/format-check/action.yml | 13 + .../generate-high-dim-random/action.yml | 28 + .../actions/generate-random/action.yml | 38 + .../.github/actions/python-wheel/action.yml | 22 + .../.github/workflows/build-python-pdoc.yml | 81 + .../.github/workflows/build-python.yml | 42 + .../DiskANN/.github/workflows/common.yml | 28 + .../DiskANN/.github/workflows/disk-pq.yml | 117 + .../.github/workflows/dynamic-labels.yml | 102 + .../DiskANN/.github/workflows/dynamic.yml | 75 + .../.github/workflows/in-mem-no-pq.yml | 81 + .../DiskANN/.github/workflows/in-mem-pq.yml | 56 + .../DiskANN/.github/workflows/labels.yml | 120 + .../workflows/multi-sector-disk-pq.yml | 60 + .../DiskANN/.github/workflows/perf.yml | 26 + .../DiskANN/.github/workflows/pr-test.yml | 35 + .../DiskANN/.github/workflows/push-test.yml | 50 + .../.github/workflows/python-release.yml | 43 + .../DiskANN/.github/workflows/unit-tests.yml | 32 + .../third_party/DiskANN/.gitignore | 384 + .../third_party/DiskANN/.gitmodules | 3 + .../third_party/DiskANN/CMakeLists.txt | 563 ++ .../third_party/DiskANN/CMakeSettings.json | 28 + .../third_party/DiskANN/CODE_OF_CONDUCT.md | 9 + .../third_party/DiskANN/CONTRIBUTING.md | 9 + .../third_party/DiskANN/Dockerfile | 17 + .../third_party/DiskANN/DockerfileDev | 17 + .../third_party/DiskANN/LICENSE | 23 + .../third_party/DiskANN/MANIFEST.in | 12 + .../third_party/DiskANN/README.md | 135 + .../third_party/DiskANN/SECURITY.md | 41 + .../third_party/DiskANN/apps/CMakeLists.txt | 42 + .../DiskANN/apps/build_disk_index.cpp | 191 + .../DiskANN/apps/build_memory_index.cpp | 164 + .../DiskANN/apps/build_stitched_index.cpp | 441 + .../third_party/DiskANN/apps/python/README.md | 46 + .../DiskANN/apps/python/restapi/__init__.py | 0 .../apps/python/restapi/disk_ann_util.py | 67 + .../DiskANN/apps/range_search_disk_index.cpp | 379 + .../DiskANN/apps/restapi/CMakeLists.txt | 40 + .../DiskANN/apps/restapi/client.cpp | 124 + .../DiskANN/apps/restapi/inmem_server.cpp | 138 + .../third_party/DiskANN/apps/restapi/main.cpp | 83 + .../apps/restapi/multiple_ssdindex_server.cpp | 182 + .../DiskANN/apps/restapi/ssd_server.cpp | 141 + .../DiskANN/apps/search_disk_index.cpp | 499 ++ .../DiskANN/apps/search_memory_index.cpp | 477 + .../apps/test_insert_deletes_consolidate.cpp | 536 ++ .../DiskANN/apps/test_streaming_scenario.cpp | 523 ++ .../DiskANN/apps/utils/CMakeLists.txt | 110 + .../DiskANN/apps/utils/bin_to_fvecs.cpp | 63 + .../DiskANN/apps/utils/bin_to_tsv.cpp | 69 + .../DiskANN/apps/utils/calculate_recall.cpp | 55 + .../apps/utils/compute_groundtruth.cpp | 574 ++ .../utils/compute_groundtruth_for_filters.cpp | 919 ++ .../DiskANN/apps/utils/count_bfs_levels.cpp | 82 + .../DiskANN/apps/utils/create_disk_layout.cpp | 48 + .../DiskANN/apps/utils/float_bin_to_int8.cpp | 63 + .../DiskANN/apps/utils/fvecs_to_bin.cpp | 95 + .../DiskANN/apps/utils/fvecs_to_bvecs.cpp | 56 + .../DiskANN/apps/utils/gen_random_slice.cpp | 58 + .../DiskANN/apps/utils/generate_pq.cpp | 70 + .../apps/utils/generate_synthetic_labels.cpp | 204 + .../DiskANN/apps/utils/int8_to_float.cpp | 23 + .../apps/utils/int8_to_float_scale.cpp | 63 + .../DiskANN/apps/utils/ivecs_to_bin.cpp | 58 + .../DiskANN/apps/utils/merge_shards.cpp | 42 + .../DiskANN/apps/utils/partition_data.cpp | 39 + .../apps/utils/partition_with_ram_budget.cpp | 39 + .../DiskANN/apps/utils/rand_data_gen.cpp | 237 + .../apps/utils/simulate_aggregate_recall.cpp | 85 + .../DiskANN/apps/utils/stats_label_data.cpp | 147 + .../DiskANN/apps/utils/tsv_to_bin.cpp | 121 + .../DiskANN/apps/utils/uint32_to_uint8.cpp | 23 + .../DiskANN/apps/utils/uint8_to_float.cpp | 23 + .../DiskANN/apps/utils/vector_analysis.cpp | 163 + .../third_party/DiskANN/clang-format.cmake | 22 + .../DiskANN/include/abstract_data_store.h | 127 + .../DiskANN/include/abstract_graph_store.h | 68 + .../DiskANN/include/abstract_index.h | 129 + .../DiskANN/include/abstract_scratch.h | 35 + .../DiskANN/include/aligned_file_reader.h | 138 + .../DiskANN/include/ann_exception.h | 35 + .../DiskANN/include/any_wrappers.h | 53 + .../include/apple_aligned_file_reader.h | 26 + .../include/boost_dynamic_bitset_fwd.h | 11 + .../third_party/DiskANN/include/cached_io.h | 217 + .../DiskANN/include/common_includes.h | 27 + .../DiskANN/include/concurrent_queue.h | 132 + .../DiskANN/include/cosine_similarity.h | 285 + .../third_party/DiskANN/include/defaults.h | 34 + .../third_party/DiskANN/include/disk_utils.h | 108 + .../third_party/DiskANN/include/distance.h | 236 + .../DiskANN/include/embedding.pb.h | 675 ++ .../DiskANN/include/embedding_compute.h | 118 + .../third_party/DiskANN/include/exceptions.h | 17 + .../DiskANN/include/filter_utils.h | 221 + .../DiskANN/include/in_mem_data_store.h | 89 + .../DiskANN/include/in_mem_graph_store.h | 51 + .../third_party/DiskANN/include/index.h | 452 + .../DiskANN/include/index_build_params.h | 73 + .../DiskANN/include/index_config.h | 256 + .../DiskANN/include/index_factory.h | 51 + .../include/linux_aligned_file_reader.h | 41 + .../third_party/DiskANN/include/locking.h | 20 + .../third_party/DiskANN/include/logger.h | 35 + .../third_party/DiskANN/include/logger_impl.h | 61 + .../third_party/DiskANN/include/math_utils.h | 87 + .../DiskANN/include/memory_mapper.h | 43 + .../DiskANN/include/natural_number_map.h | 86 + .../DiskANN/include/natural_number_set.h | 50 + .../third_party/DiskANN/include/neighbor.h | 152 + .../third_party/DiskANN/include/parameters.h | 119 + .../third_party/DiskANN/include/partition.h | 49 + .../DiskANN/include/percentile_stats.h | 65 + .../third_party/DiskANN/include/pq.h | 93 + .../third_party/DiskANN/include/pq_common.h | 30 + .../DiskANN/include/pq_data_store.h | 97 + .../DiskANN/include/pq_flash_index.h | 286 + .../DiskANN/include/pq_l2_distance.h | 87 + .../third_party/DiskANN/include/pq_scratch.h | 23 + .../DiskANN/include/program_options_utils.hpp | 81 + .../DiskANN/include/proto_embedding.h | 9 + .../DiskANN/include/quantized_distance.h | 56 + .../DiskANN/include/restapi/common.h | 18 + .../DiskANN/include/restapi/search_wrapper.h | 140 + .../DiskANN/include/restapi/server.h | 45 + .../third_party/DiskANN/include/scratch.h | 216 + .../third_party/DiskANN/include/simd_utils.h | 106 + .../third_party/DiskANN/include/tag_uint128.h | 68 + .../third_party/DiskANN/include/timer.h | 40 + .../DiskANN/include/tsl/.clang-format | 2 + .../DiskANN/include/tsl/robin_growth_policy.h | 330 + .../DiskANN/include/tsl/robin_hash.h | 1285 +++ .../DiskANN/include/tsl/robin_map.h | 668 ++ .../DiskANN/include/tsl/robin_set.h | 535 ++ .../include/tsl/sparse_growth_policy.h | 301 + .../DiskANN/include/tsl/sparse_hash.h | 2215 +++++ .../DiskANN/include/tsl/sparse_map.h | 800 ++ .../DiskANN/include/tsl/sparse_set.h | 655 ++ .../third_party/DiskANN/include/types.h | 22 + .../third_party/DiskANN/include/utils.h | 1455 +++ .../include/windows_aligned_file_reader.h | 57 + .../DiskANN/include/windows_customizations.h | 16 + .../DiskANN/include/windows_slim_lock.h | 73 + .../third_party/DiskANN/pyproject.toml | 58 + .../third_party/DiskANN/python/CMakeLists.txt | 82 + .../third_party/DiskANN/python/README.md | 55 + .../DiskANN/python/apps/cli/__main__.py | 152 + .../DiskANN/python/apps/cluster.py | 28 + .../DiskANN/python/apps/in-mem-dynamic.py | 161 + .../DiskANN/python/apps/in-mem-static.py | 149 + .../python/apps/insert-in-clustered-order.py | 103 + .../third_party/DiskANN/python/apps/utils.py | 120 + .../DiskANN/python/include/builder.h | 27 + .../DiskANN/python/include/common.h | 24 + .../python/include/dynamic_memory_index.h | 53 + .../python/include/static_disk_index.h | 65 + .../python/include/static_memory_index.h | 40 + .../DiskANN/python/src/__init__.py | 138 + .../DiskANN/python/src/_builder.py | 349 + .../DiskANN/python/src/_builder.pyi | 74 + .../third_party/DiskANN/python/src/_common.py | 251 + ...kannpy.cpython-310-x86_64-linux-gnu.so.bak | Bin 0 -> 33617584 bytes .../python/src/_dynamic_memory_index.py | 511 ++ .../third_party/DiskANN/python/src/_files.py | 122 + .../DiskANN/python/src/_static_disk_index.py | 244 + .../python/src/_static_memory_index.py | 262 + .../DiskANN/python/src/builder.cpp | 136 + .../DiskANN/python/src/defaults.py | 71 + .../python/src/dynamic_memory_index.cpp | 167 + .../third_party/DiskANN/python/src/module.cpp | 142 + .../third_party/DiskANN/python/src/py.typed | 0 .../DiskANN/python/src/static_disk_index.cpp | 123 + .../python/src/static_memory_index.cpp | 91 + .../DiskANN/python/tests/fixtures/__init__.py | 6 + .../tests/fixtures/build_memory_index.py | 51 + .../python/tests/fixtures/create_test_data.py | 40 + .../DiskANN/python/tests/fixtures/recall.py | 24 + .../third_party/DiskANN/rust/Cargo.lock | 1820 ++++ .../third_party/DiskANN/rust/Cargo.toml | 23 + .../Cargo.toml | 14 + .../src/main.rs | 420 + .../build_and_insert_memory_index/Cargo.toml | 14 + .../build_and_insert_memory_index/src/main.rs | 382 + .../cmd_drivers/build_disk_index/Cargo.toml | 14 + .../cmd_drivers/build_disk_index/src/main.rs | 377 + .../cmd_drivers/build_memory_index/Cargo.toml | 15 + .../build_memory_index/src/args.rs | 62 + .../build_memory_index/src/main.rs | 174 + .../convert_f32_to_bf16/Cargo.toml | 11 + .../convert_f32_to_bf16/src/main.rs | 154 + .../load_and_insert_memory_index/Cargo.toml | 14 + .../load_and_insert_memory_index/src/main.rs | 313 + .../search_memory_index/Cargo.toml | 16 + .../search_memory_index/src/main.rs | 430 + .../src/search_index_utils.rs | 186 + .../DiskANN/rust/diskann/Cargo.toml | 45 + .../rust/diskann/benches/distance_bench.rs | 47 + .../rust/diskann/benches/kmeans_bench.rs | 70 + .../rust/diskann/benches/neighbor_bench.rs | 49 + .../DiskANN/rust/diskann/src/algorithm/mod.rs | 7 + .../rust/diskann/src/algorithm/prune/mod.rs | 6 + .../rust/diskann/src/algorithm/prune/prune.rs | 288 + .../rust/diskann/src/algorithm/search/mod.rs | 7 + .../diskann/src/algorithm/search/search.rs | 359 + .../diskann/src/common/aligned_allocator.rs | 281 + .../rust/diskann/src/common/ann_result.rs | 179 + .../DiskANN/rust/diskann/src/common/mod.rs | 9 + .../src/index/disk_index/ann_disk_index.rs | 54 + .../src/index/disk_index/disk_index.rs | 161 + .../rust/diskann/src/index/disk_index/mod.rs | 9 + .../src/index/inmem_index/ann_inmem_index.rs | 97 + .../src/index/inmem_index/inmem_index.rs | 1033 +++ .../index/inmem_index/inmem_index_storage.rs | 304 + .../rust/diskann/src/index/inmem_index/mod.rs | 12 + .../DiskANN/rust/diskann/src/index/mod.rs | 11 + .../disk_index_build_logger.rs | 57 + .../src/instrumentation/index_logger.rs | 47 + .../rust/diskann/src/instrumentation/mod.rs | 9 + .../DiskANN/rust/diskann/src/lib.rs | 26 + .../disk_index_build_parameter.rs | 85 + .../configuration/index_configuration.rs | 92 + .../configuration/index_write_parameters.rs | 245 + .../diskann/src/model/configuration/mod.rs | 12 + .../model/data_store/disk_scratch_dataset.rs | 76 + .../src/model/data_store/inmem_dataset.rs | 285 + .../rust/diskann/src/model/data_store/mod.rs | 11 + .../diskann/src/model/graph/adjacency_list.rs | 64 + .../diskann/src/model/graph/disk_graph.rs | 179 + .../diskann/src/model/graph/inmem_graph.rs | 141 + .../rust/diskann/src/model/graph/mod.rs | 20 + .../diskann/src/model/graph/sector_graph.rs | 87 + .../src/model/graph/vertex_and_neighbors.rs | 159 + .../DiskANN/rust/diskann/src/model/mod.rs | 29 + .../rust/diskann/src/model/neighbor/mod.rs | 13 + .../diskann/src/model/neighbor/neighbor.rs | 104 + .../model/neighbor/neighbor_priority_queue.rs | 241 + .../model/neighbor/sorted_neighbor_vector.rs | 37 + .../src/model/pq/fixed_chunk_pq_table.rs | 483 + .../DiskANN/rust/diskann/src/model/pq/mod.rs | 9 + .../diskann/src/model/pq/pq_construction.rs | 398 + .../src/model/scratch/concurrent_queue.rs | 312 + .../src/model/scratch/inmem_query_scratch.rs | 186 + .../rust/diskann/src/model/scratch/mod.rs | 28 + .../diskann/src/model/scratch/pq_scratch.rs | 105 + .../model/scratch/scratch_store_manager.rs | 84 + .../src/model/scratch/scratch_traits.rs | 8 + .../src/model/scratch/ssd_io_context.rs | 38 + .../src/model/scratch/ssd_query_scratch.rs | 132 + .../src/model/scratch/ssd_thread_data.rs | 92 + .../diskann/src/model/vertex/dimension.rs | 22 + .../rust/diskann/src/model/vertex/mod.rs | 10 + .../rust/diskann/src/model/vertex/vertex.rs | 68 + .../model/windows_aligned_file_reader/mod.rs | 7 + .../windows_aligned_file_reader.rs | 414 + .../diskann/src/storage/disk_graph_storage.rs | 37 + .../diskann/src/storage/disk_index_storage.rs | 363 + .../DiskANN/rust/diskann/src/storage/mod.rs | 12 + .../rust/diskann/src/storage/pq_storage.rs | 367 + .../test_utils/inmem_index_initialization.rs | 74 + .../rust/diskann/src/test_utils/mod.rs | 11 + .../diskann/src/utils/bit_vec_extension.rs | 45 + .../rust/diskann/src/utils/cached_reader.rs | 160 + .../rust/diskann/src/utils/cached_writer.rs | 142 + .../rust/diskann/src/utils/file_util.rs | 377 + .../rust/diskann/src/utils/hashset_u32.rs | 46 + .../DiskANN/rust/diskann/src/utils/kmeans.rs | 430 + .../rust/diskann/src/utils/math_util.rs | 481 + .../DiskANN/rust/diskann/src/utils/mod.rs | 34 + .../rust/diskann/src/utils/partition.rs | 151 + .../rust/diskann/src/utils/rayon_util.rs | 33 + .../DiskANN/rust/diskann/src/utils/timer.rs | 101 + .../DiskANN/rust/diskann/src/utils/utils.rs | 154 + .../tests/data/siftsmall_learn_256pts.fbin | Bin 0 -> 131080 bytes .../tests/data/siftsmall_learn_256pts_2.fbin | Bin 0 -> 131080 bytes ...dex_siftsmall_learn_256pts_1+2_R4_L50_A1.2 | Bin 0 -> 10236 bytes ...all_learn_256pts_1+2_saturated_R4_L50_A1.2 | Bin 0 -> 10264 bytes ...h_index_siftsmall_learn_256pts_R4_L50_A1.2 | Bin 0 -> 5108 bytes ...ex_siftsmall_learn_256pts_R4_L50_A1.2.data | Bin 0 -> 131080 bytes .../DiskANN/rust/logger/Cargo.toml | 29 + .../third_party/DiskANN/rust/logger/build.rs | 33 + .../DiskANN/rust/logger/src/error_logger.rs | 29 + .../rust/logger/src/examples/trace_example.rs | 30 + .../DiskANN/rust/logger/src/indexlog.proto | 50 + .../DiskANN/rust/logger/src/lib.rs | 19 + .../DiskANN/rust/logger/src/log_error.rs | 27 + .../rust/logger/src/message_handler.rs | 167 + .../DiskANN/rust/logger/src/trace_logger.rs | 41 + .../DiskANN/rust/platform/Cargo.toml | 13 + .../DiskANN/rust/platform/src/file_handle.rs | 212 + .../DiskANN/rust/platform/src/file_io.rs | 154 + .../rust/platform/src/io_completion_port.rs | 142 + .../DiskANN/rust/platform/src/lib.rs | 20 + .../DiskANN/rust/platform/src/perf.rs | 50 + .../DiskANN/rust/project.code-workspace | 58 + .../third_party/DiskANN/rust/readme.md | 25 + .../DiskANN/rust/rust-toolchain.toml | 4 + .../DiskANN/rust/vector/Cargo.toml | 24 + .../third_party/DiskANN/rust/vector/build.rs | 29 + .../DiskANN/rust/vector/distance.c | 35 + .../DiskANN/rust/vector/src/distance.rs | 442 + .../DiskANN/rust/vector/src/distance_test.rs | 152 + .../DiskANN/rust/vector/src/half.rs | 82 + .../rust/vector/src/l2_float_distance.rs | 78 + .../DiskANN/rust/vector/src/lib.rs | 26 + .../DiskANN/rust/vector/src/metric.rs | 36 + .../DiskANN/rust/vector/src/test_util.rs | 29 + .../DiskANN/rust/vector/src/utils.rs | 21 + .../DiskANN/rust/vector_base64/Cargo.toml | 15 + .../DiskANN/rust/vector_base64/src/main.rs | 82 + .../third_party/DiskANN/setup.py | 176 + .../third_party/DiskANN/src/CMakeLists.txt | 26 + .../DiskANN/src/abstract_data_store.cpp | 45 + .../DiskANN/src/abstract_index.cpp | 334 + .../third_party/DiskANN/src/ann_exception.cpp | 36 + .../DiskANN/src/apple_aligned_file_reader.cpp | 383 + .../third_party/DiskANN/src/disk_utils.cpp | 1544 ++++ .../third_party/DiskANN/src/distance.cpp | 743 ++ .../DiskANN/src/dll/CMakeLists.txt | 35 + .../third_party/DiskANN/src/dll/dllmain.cpp | 15 + .../third_party/DiskANN/src/filter_utils.cpp | 355 + .../DiskANN/src/in_mem_data_store.cpp | 401 + .../DiskANN/src/in_mem_graph_store.cpp | 242 + .../third_party/DiskANN/src/index.cpp | 3524 ++++++++ .../third_party/DiskANN/src/index_factory.cpp | 213 + .../DiskANN/src/linux_aligned_file_reader.cpp | 230 + .../third_party/DiskANN/src/logger.cpp | 97 + .../third_party/DiskANN/src/math_utils.cpp | 465 + .../third_party/DiskANN/src/memory_mapper.cpp | 107 + .../DiskANN/src/natural_number_map.cpp | 116 + .../DiskANN/src/natural_number_set.cpp | 70 + .../third_party/DiskANN/src/partition.cpp | 657 ++ .../third_party/DiskANN/src/pq.cpp | 1214 +++ .../third_party/DiskANN/src/pq_data_store.cpp | 260 + .../DiskANN/src/pq_flash_index.cpp | 2964 ++++++ .../DiskANN/src/pq_l2_distance.cpp | 284 + .../DiskANN/src/restapi/search_wrapper.cpp | 217 + .../DiskANN/src/restapi/server.cpp | 271 + .../third_party/DiskANN/src/scratch.cpp | 182 + .../third_party/DiskANN/src/utils.cpp | 477 + .../src/windows_aligned_file_reader.cpp | 189 + .../third_party/DiskANN/tests/CMakeLists.txt | 41 + .../third_party/DiskANN/tests/README.md | 11 + .../index_write_parameters_builder_tests.cpp | 58 + .../third_party/DiskANN/tests/main.cpp | 6 + .../DiskANN/windows/packages.config.in | 11 + .../windows/packages_restapi.config.in | 4 + .../DiskANN/workflows/SSD_index.md | 74 + .../DiskANN/workflows/dynamic_index.md | 187 + .../DiskANN/workflows/filtered_in_memory.md | 126 + .../DiskANN/workflows/filtered_ssd_index.md | 103 + .../DiskANN/workflows/in_memory_index.md | 73 + .../third_party/DiskANN/workflows/python.md | 133 + .../third_party/DiskANN/workflows/rest_api.md | 72 + .../third_party/embedding.pb.cc | 613 ++ .../third_party/embedding.proto | 13 + packages/leann-backend-hnsw/CMakeLists.txt | 12 + .../leann_backend_hnsw/__init__.py | 1 + .../leann_backend_hnsw/hnsw_backend.py | 313 + .../hnsw_embedding_server.py | 583 ++ packages/leann-backend-hnsw/pyproject.toml | 18 + .../third_party/faiss/.clang-format | 88 + .../third_party/faiss/.dockerignore | 1 + .../faiss/.github/ISSUE_TEMPLATE.md | 33 + .../.github/actions/build_cmake/action.yml | 189 + .../.github/actions/build_conda/action.yml | 107 + .../faiss/.github/workflows/autoclose.yml | 23 + .../.github/workflows/build-pull-request.yml | 169 + .../faiss/.github/workflows/build-release.yml | 144 + .../faiss/.github/workflows/build.yml | 17 + .../faiss/.github/workflows/nightly.yml | 148 + .../faiss/.github/workflows/publish-docs.yml | 44 + .../faiss/.github/workflows/retry_build.yml | 33 + .../.github/workflows/update-doxygen.yml | 40 + .../third_party/faiss/.gitignore | 26 + .../third_party/faiss/.vscode/launch.json | 19 + .../third_party/faiss/CHANGELOG.md | 482 + .../third_party/faiss/CMakeLists.txt | 126 + .../third_party/faiss/CODE_OF_CONDUCT.md | 2 + .../third_party/faiss/CONTRIBUTING.md | 52 + .../third_party/faiss/Doxyfile | 2282 +++++ .../third_party/faiss/INSTALL.md | 325 + .../third_party/faiss/LICENSE | 21 + .../third_party/faiss/README.md | 92 + .../third_party/faiss/benchs/CMakeLists.txt | 10 + .../third_party/faiss/benchs/README.md | 361 + .../faiss/benchs/bench_6bit_codec.cpp | 82 + .../faiss/benchs/bench_all_ivf/README.md | 20 + .../benchs/bench_all_ivf/bench_all_ivf.py | 567 ++ .../benchs/bench_all_ivf/bench_kmeans.py | 116 + .../benchs/bench_all_ivf/cmp_with_scann.py | 307 + .../benchs/bench_all_ivf/datasets_oss.py | 136 + .../benchs/bench_all_ivf/make_groundtruth.py | 27 + .../bench_all_ivf/parse_bench_all_ivf.py | 502 ++ .../bench_all_ivf/run_on_cluster_generic.bash | 603 ++ .../faiss/benchs/bench_big_batch_ivf.py | 109 + .../benchs/bench_cppcontrib_sa_decode.cpp | 1700 ++++ .../faiss/benchs/bench_for_interrupt.py | 154 + .../faiss/benchs/bench_fw/__init__.py | 0 .../faiss/benchs/bench_fw/benchmark.py | 1219 +++ .../faiss/benchs/bench_fw/benchmark_io.py | 272 + .../faiss/benchs/bench_fw/descriptors.py | 379 + .../faiss/benchs/bench_fw/index.py | 1146 +++ .../faiss/benchs/bench_fw/optimize.py | 335 + .../faiss/benchs/bench_fw/utils.py | 248 + .../faiss/benchs/bench_fw_codecs.py | 146 + .../third_party/faiss/benchs/bench_fw_ivf.py | 125 + .../faiss/benchs/bench_fw_notebook.ipynb | 532 ++ .../faiss/benchs/bench_fw_optimize.py | 58 + .../faiss/benchs/bench_fw_range.py | 85 + .../third_party/faiss/benchs/bench_gpu_1bn.py | 746 ++ .../faiss/benchs/bench_gpu_sift1m.py | 92 + .../faiss/benchs/bench_hamming_computer.cpp | 314 + .../faiss/benchs/bench_hamming_knn.py | 29 + .../faiss/benchs/bench_heap_replace.cpp | 139 + .../third_party/faiss/benchs/bench_hnsw.py | 192 + .../faiss/benchs/bench_hybrid_cpu_gpu.py | 599 ++ .../faiss/benchs/bench_index_flat.py | 86 + .../faiss/benchs/bench_index_pq.py | 22 + .../faiss/benchs/bench_ivf_fastscan.py | 112 + .../benchs/bench_ivf_fastscan_single_query.py | 122 + .../faiss/benchs/bench_ivf_selector.cpp | 145 + .../faiss/benchs/bench_ivfflat_cuvs.py | 167 + .../faiss/benchs/bench_ivfpq_cuvs.py | 187 + .../faiss/benchs/bench_pairwise_distances.py | 35 + .../faiss/benchs/bench_partition.py | 78 + .../faiss/benchs/bench_polysemous_1bn.py | 251 + .../faiss/benchs/bench_polysemous_sift1m.py | 46 + .../faiss/benchs/bench_pq_tables.py | 77 + .../bench_pq_transposed_centroid_table.py | 135 + .../faiss/benchs/bench_quantizer.py | 157 + .../faiss/benchs/bench_scalar_quantizer.py | 82 + .../faiss/benchs/bench_vector_ops.py | 84 + .../third_party/faiss/benchs/datasets.py | 45 + .../faiss/benchs/distributed_ondisk/README.md | 194 + .../distributed_ondisk/combined_index.py | 193 + .../distributed_ondisk/distributed_kmeans.py | 239 + .../distributed_query_demo.py | 70 + .../distributed_ondisk/make_index_vslice.py | 117 + .../distributed_ondisk/make_trained_index.py | 52 + .../distributed_ondisk/merge_to_ondisk.py | 96 + .../distributed_ondisk/run_on_cluster.bash | 263 + .../distributed_ondisk/search_server.py | 222 + .../third_party/faiss/benchs/kmeans_mnist.py | 88 + .../faiss/benchs/link_and_code/README.md | 25 + .../third_party/faiss/c_api/AutoTune_c.cpp | 113 + .../third_party/faiss/c_api/AutoTune_c.h | 82 + .../third_party/faiss/c_api/CMakeLists.txt | 166 + .../third_party/faiss/c_api/Clustering_c.cpp | 170 + .../third_party/faiss/c_api/Clustering_c.h | 138 + .../third_party/faiss/c_api/INSTALL.md | 104 + .../third_party/faiss/c_api/IndexBinary_c.cpp | 142 + .../third_party/faiss/c_api/IndexBinary_c.h | 169 + .../third_party/faiss/c_api/IndexFlat_c.cpp | 165 + .../third_party/faiss/c_api/IndexFlat_c.h | 129 + .../faiss/c_api/IndexIVFFlat_c.cpp | 100 + .../third_party/faiss/c_api/IndexIVFFlat_c.h | 85 + .../third_party/faiss/c_api/IndexIVF_c.cpp | 184 + .../third_party/faiss/c_api/IndexIVF_c.h | 184 + .../third_party/faiss/c_api/IndexLSH_c.cpp | 46 + .../third_party/faiss/c_api/IndexLSH_c.h | 44 + .../faiss/c_api/IndexPreTransform_c.cpp | 70 + .../faiss/c_api/IndexPreTransform_c.h | 49 + .../faiss/c_api/IndexReplicas_c.cpp | 62 + .../third_party/faiss/c_api/IndexReplicas_c.h | 47 + .../faiss/c_api/IndexScalarQuantizer_c.cpp | 111 + .../faiss/c_api/IndexScalarQuantizer_c.h | 97 + .../third_party/faiss/c_api/IndexShards_c.cpp | 65 + .../third_party/faiss/c_api/IndexShards_c.h | 45 + .../third_party/faiss/c_api/Index_c.cpp | 224 + .../third_party/faiss/c_api/Index_c.h | 281 + .../third_party/faiss/c_api/MetaIndexes_c.cpp | 81 + .../third_party/faiss/c_api/MetaIndexes_c.h | 99 + .../faiss/c_api/VectorTransform_c.cpp | 227 + .../faiss/c_api/VectorTransform_c.h | 173 + .../third_party/faiss/c_api/clone_index_c.cpp | 35 + .../third_party/faiss/c_api/clone_index_c.h | 34 + .../third_party/faiss/c_api/error_c.h | 41 + .../third_party/faiss/c_api/error_impl.cpp | 26 + .../third_party/faiss/c_api/error_impl.h | 15 + .../third_party/faiss/c_api/example_c.c | 182 + .../third_party/faiss/c_api/faiss_c.h | 62 + .../faiss/c_api/gpu/CMakeLists.txt | 34 + .../faiss/c_api/gpu/DeviceUtils_c.cpp | 46 + .../faiss/c_api/gpu/DeviceUtils_c.h | 37 + .../faiss/c_api/gpu/GpuAutoTune_c.cpp | 112 + .../faiss/c_api/gpu/GpuAutoTune_c.h | 66 + .../faiss/c_api/gpu/GpuClonerOptions_c.cpp | 58 + .../faiss/c_api/gpu/GpuClonerOptions_c.h | 70 + .../faiss/c_api/gpu/GpuIndex_c.cpp | 16 + .../third_party/faiss/c_api/gpu/GpuIndex_c.h | 29 + .../faiss/c_api/gpu/GpuIndicesOptions_c.h | 37 + .../faiss/c_api/gpu/GpuResources_c.cpp | 129 + .../faiss/c_api/gpu/GpuResources_c.h | 82 + .../c_api/gpu/StandardGpuResources_c.cpp | 69 + .../faiss/c_api/gpu/StandardGpuResources_c.h | 60 + .../faiss/c_api/gpu/example_gpu_c.c | 119 + .../third_party/faiss/c_api/gpu/macros_impl.h | 40 + .../faiss/c_api/impl/AuxIndexStructures_c.cpp | 326 + .../faiss/c_api/impl/AuxIndexStructures_c.h | 201 + .../faiss/c_api/index_factory_c.cpp | 44 + .../third_party/faiss/c_api/index_factory_c.h | 42 + .../third_party/faiss/c_api/index_io_c.cpp | 96 + .../third_party/faiss/c_api/index_io_c.h | 85 + .../third_party/faiss/c_api/macros_impl.h | 107 + .../faiss/c_api/utils/distances_c.cpp | 101 + .../faiss/c_api/utils/distances_c.h | 109 + .../third_party/faiss/c_api/utils/utils_c.cpp | 15 + .../third_party/faiss/c_api/utils/utils_c.h | 26 + .../third_party/faiss/cmake/FindMKL.cmake | 364 + .../faiss/cmake/faiss-config.cmake.in | 7 + .../faiss/cmake/link_to_faiss_lib.cmake | 66 + .../faiss/cmake/thirdparty/fetch_rapids.cmake | 24 + .../faiss/conda/conda_build_config.yaml | 5 + .../faiss/conda/faiss-gpu-cuvs/meta.yaml | 136 + .../faiss/conda/faiss-gpu/meta.yaml | 122 + .../faiss/conda/faiss/build-lib.bat | 28 + .../faiss/conda/faiss/build-pkg.bat | 28 + .../third_party/faiss/conda/faiss/meta.yaml | 156 + .../third_party/faiss/contrib/README.md | 76 + .../third_party/faiss/contrib/__init__.py | 0 .../faiss/contrib/big_batch_search.py | 515 ++ .../faiss/contrib/client_server.py | 91 + .../third_party/faiss/contrib/clustering.py | 428 + .../third_party/faiss/contrib/datasets.py | 387 + .../third_party/faiss/contrib/evaluation.py | 492 + .../faiss/contrib/exhaustive_search.py | 367 + .../faiss/contrib/factory_tools.py | 149 + .../faiss/contrib/inspect_tools.py | 117 + .../third_party/faiss/contrib/ivf_tools.py | 148 + .../third_party/faiss/contrib/ondisk.py | 59 + .../third_party/faiss/contrib/rpc.py | 258 + .../third_party/faiss/contrib/torch/README.md | 6 + .../faiss/contrib/torch/__init__.py | 0 .../faiss/contrib/torch/clustering.py | 60 + .../faiss/contrib/torch/quantization.py | 96 + .../third_party/faiss/contrib/torch_utils.py | 764 ++ .../third_party/faiss/contrib/vecs_io.py | 60 + .../demo/H_hnsw_performance_comparison.png | Bin 0 -> 137688 bytes .../faiss/demo/H_hnsw_recall_comparison.png | Bin 0 -> 90979 bytes .../third_party/faiss/demo/build_demo.py | 67 + .../faiss/demo/build_demo_sample.py | 250 + .../demo/hnsw_performance_comparison.png | Bin 0 -> 141353 bytes .../faiss/demo/hnsw_recall_comparison.png | Bin 0 -> 88176 bytes .../faiss/demo/large_graph_simple_build.py | 354 + .../faiss/demo/plot_graph_struct.py | 194 + .../faiss/demo/plot_graph_struct_big.py | 202 + .../third_party/faiss/demo/simple_build.py | 329 + .../faiss/demo/simple_build_dpr.py | 212 + .../faiss/demo/simple_build_nsg.py | 212 + .../third_party/faiss/demo/simple_search.fish | 22 + .../third_party/faiss/demos/CMakeLists.txt | 25 + .../third_party/faiss/demos/README.md | 28 + .../third_party/faiss/demos/demo_auto_tune.py | 169 + .../faiss/demos/demo_client_server_ivf.py | 91 + .../demos/demo_distributed_kmeans_torch.py | 173 + .../third_party/faiss/demos/demo_imi_flat.cpp | 155 + .../third_party/faiss/demos/demo_imi_pq.cpp | 207 + .../faiss/demos/demo_ivfpq_indexing.cpp | 146 + .../faiss/demos/demo_nndescent.cpp | 88 + .../faiss/demos/demo_ondisk_ivf.py | 86 + .../third_party/faiss/demos/demo_qinco.py | 77 + .../faiss/demos/demo_residual_quantizer.cpp | 297 + .../third_party/faiss/demos/demo_sift1M.cpp | 254 + .../faiss/demos/demo_weighted_kmeans.cpp | 181 + ...ex_pq_flat_separate_codes_from_codebook.py | 303 + .../faiss/demos/offline_ivf/README.md | 52 + .../faiss/demos/offline_ivf/__init__.py | 0 .../faiss/demos/offline_ivf/config_ssnpp.yaml | 110 + .../offline_ivf/create_sharded_ssnpp_files.py | 64 + .../faiss/demos/offline_ivf/dataset.py | 174 + .../demos/offline_ivf/generate_config.py | 46 + .../faiss/demos/offline_ivf/offline_ivf.py | 891 ++ .../faiss/demos/offline_ivf/run.py | 219 + .../demos/offline_ivf/tests/testing_utils.py | 181 + .../faiss/demos/offline_ivf/utils.py | 95 + .../faiss/demos/rocksdb_ivf/CMakeLists.txt | 13 + .../faiss/demos/rocksdb_ivf/README.md | 23 + .../rocksdb_ivf/RocksDBInvertedLists.cpp | 114 + .../demos/rocksdb_ivf/RocksDBInvertedLists.h | 67 + .../demos/rocksdb_ivf/demo_rocksdb_ivf.cpp | 88 + .../third_party/faiss/faiss/.flake8 | 3 + .../third_party/faiss/faiss/AutoTune.cpp | 750 ++ .../third_party/faiss/faiss/AutoTune.h | 212 + .../third_party/faiss/faiss/CMakeLists.txt | 511 ++ .../third_party/faiss/faiss/Clustering.cpp | 699 ++ .../third_party/faiss/faiss/Clustering.h | 213 + .../third_party/faiss/faiss/IVFlib.cpp | 736 ++ .../third_party/faiss/faiss/IVFlib.h | 215 + .../third_party/faiss/faiss/Index.cpp | 189 + .../third_party/faiss/faiss/Index.h | 321 + .../third_party/faiss/faiss/Index2Layer.cpp | 343 + .../third_party/faiss/faiss/Index2Layer.h | 76 + .../faiss/faiss/IndexAdditiveQuantizer.cpp | 634 ++ .../faiss/faiss/IndexAdditiveQuantizer.h | 262 + .../faiss/IndexAdditiveQuantizerFastScan.cpp | 297 + .../faiss/IndexAdditiveQuantizerFastScan.h | 199 + .../third_party/faiss/faiss/IndexBinary.cpp | 117 + .../third_party/faiss/faiss/IndexBinary.h | 184 + .../faiss/faiss/IndexBinaryFlat.cpp | 117 + .../third_party/faiss/faiss/IndexBinaryFlat.h | 69 + .../faiss/faiss/IndexBinaryFromFloat.cpp | 86 + .../faiss/faiss/IndexBinaryFromFloat.h | 54 + .../faiss/faiss/IndexBinaryHNSW.cpp | 299 + .../third_party/faiss/faiss/IndexBinaryHNSW.h | 58 + .../faiss/faiss/IndexBinaryHash.cpp | 481 + .../third_party/faiss/faiss/IndexBinaryHash.h | 128 + .../faiss/faiss/IndexBinaryIVF.cpp | 904 ++ .../third_party/faiss/faiss/IndexBinaryIVF.h | 260 + .../third_party/faiss/faiss/IndexFastScan.cpp | 574 ++ .../third_party/faiss/faiss/IndexFastScan.h | 159 + .../third_party/faiss/faiss/IndexFlat.cpp | 520 ++ .../third_party/faiss/faiss/IndexFlat.h | 130 + .../faiss/faiss/IndexFlatCodes.cpp | 280 + .../third_party/faiss/faiss/IndexFlatCodes.h | 88 + .../third_party/faiss/faiss/IndexHNSW.cpp | 1193 +++ .../third_party/faiss/faiss/IndexHNSW.h | 232 + .../third_party/faiss/faiss/IndexIDMap.cpp | 304 + .../third_party/faiss/faiss/IndexIDMap.h | 130 + .../third_party/faiss/faiss/IndexIVF.cpp | 1403 +++ .../third_party/faiss/faiss/IndexIVF.h | 557 ++ .../faiss/faiss/IndexIVFAdditiveQuantizer.cpp | 400 + .../faiss/faiss/IndexIVFAdditiveQuantizer.h | 188 + .../IndexIVFAdditiveQuantizerFastScan.cpp | 552 ++ .../faiss/IndexIVFAdditiveQuantizerFastScan.h | 170 + .../faiss/faiss/IndexIVFFastScan.cpp | 1429 +++ .../faiss/faiss/IndexIVFFastScan.h | 272 + .../third_party/faiss/faiss/IndexIVFFlat.cpp | 494 + .../third_party/faiss/faiss/IndexIVFFlat.h | 110 + .../faiss/IndexIVFIndependentQuantizer.cpp | 172 + .../faiss/IndexIVFIndependentQuantizer.h | 56 + .../third_party/faiss/faiss/IndexIVFPQ.cpp | 1391 +++ .../third_party/faiss/faiss/IndexIVFPQ.h | 191 + .../faiss/faiss/IndexIVFPQFastScan.cpp | 287 + .../faiss/faiss/IndexIVFPQFastScan.h | 85 + .../third_party/faiss/faiss/IndexIVFPQR.cpp | 238 + .../third_party/faiss/faiss/IndexIVFPQR.h | 74 + .../faiss/faiss/IndexIVFRaBitQ.cpp | 281 + .../third_party/faiss/faiss/IndexIVFRaBitQ.h | 70 + .../faiss/faiss/IndexIVFSpectralHash.cpp | 341 + .../faiss/faiss/IndexIVFSpectralHash.h | 90 + .../third_party/faiss/faiss/IndexLSH.cpp | 177 + .../third_party/faiss/faiss/IndexLSH.h | 73 + .../third_party/faiss/faiss/IndexLattice.cpp | 117 + .../third_party/faiss/faiss/IndexLattice.h | 46 + .../faiss/faiss/IndexNNDescent.cpp | 199 + .../third_party/faiss/faiss/IndexNNDescent.h | 72 + .../third_party/faiss/faiss/IndexNSG.cpp | 342 + .../third_party/faiss/faiss/IndexNSG.h | 109 + .../faiss/faiss/IndexNeuralNetCodec.cpp | 56 + .../faiss/faiss/IndexNeuralNetCodec.h | 49 + .../third_party/faiss/faiss/IndexPQ.cpp | 1115 +++ .../third_party/faiss/faiss/IndexPQ.h | 194 + .../faiss/faiss/IndexPQFastScan.cpp | 71 + .../third_party/faiss/faiss/IndexPQFastScan.h | 53 + .../faiss/faiss/IndexPreTransform.cpp | 337 + .../faiss/faiss/IndexPreTransform.h | 102 + .../third_party/faiss/faiss/IndexRaBitQ.cpp | 148 + .../third_party/faiss/faiss/IndexRaBitQ.h | 65 + .../third_party/faiss/faiss/IndexRefine.cpp | 339 + .../third_party/faiss/faiss/IndexRefine.h | 98 + .../third_party/faiss/faiss/IndexReplicas.cpp | 207 + .../third_party/faiss/faiss/IndexReplicas.h | 88 + .../faiss/faiss/IndexRowwiseMinMax.cpp | 445 + .../faiss/faiss/IndexRowwiseMinMax.h | 99 + .../faiss/faiss/IndexScalarQuantizer.cpp | 282 + .../faiss/faiss/IndexScalarQuantizer.h | 111 + .../third_party/faiss/faiss/IndexShards.cpp | 270 + .../third_party/faiss/faiss/IndexShards.h | 111 + .../faiss/faiss/IndexShardsIVF.cpp | 245 + .../third_party/faiss/faiss/IndexShardsIVF.h | 42 + .../third_party/faiss/faiss/MatrixStats.cpp | 252 + .../third_party/faiss/faiss/MatrixStats.h | 71 + .../third_party/faiss/faiss/MetaIndexes.cpp | 242 + .../third_party/faiss/faiss/MetaIndexes.h | 83 + .../third_party/faiss/faiss/MetricType.h | 55 + .../faiss/faiss/VectorTransform.cpp | 1365 +++ .../third_party/faiss/faiss/VectorTransform.h | 313 + .../third_party/faiss/faiss/clone_index.cpp | 428 + .../third_party/faiss/faiss/clone_index.h | 39 + .../faiss/faiss/cppcontrib/SaDecodeKernels.h | 322 + .../faiss/cppcontrib/detail/CoarseBitType.h | 31 + .../faiss/cppcontrib/detail/UintReader.h | 351 + .../faiss/cppcontrib/docker_dev/Dockerfile | 10 + .../faiss/faiss/cppcontrib/factory_tools.cpp | 211 + .../faiss/faiss/cppcontrib/factory_tools.h | 22 + .../cppcontrib/sa_decode/Level2-avx2-inl.h | 2072 +++++ .../faiss/cppcontrib/sa_decode/Level2-inl.h | 467 + .../cppcontrib/sa_decode/Level2-neon-inl.h | 2161 +++++ .../faiss/cppcontrib/sa_decode/MinMax-inl.h | 467 + .../cppcontrib/sa_decode/MinMaxFP16-inl.h | 472 + .../faiss/cppcontrib/sa_decode/PQ-avx2-inl.h | 1625 ++++ .../faiss/faiss/cppcontrib/sa_decode/PQ-inl.h | 257 + .../faiss/cppcontrib/sa_decode/PQ-neon-inl.h | 1460 +++ .../faiss/faiss/gpu/CMakeLists.txt | 352 + .../faiss/faiss/gpu/GpuAutoTune.cpp | 111 + .../third_party/faiss/faiss/gpu/GpuAutoTune.h | 29 + .../third_party/faiss/faiss/gpu/GpuCloner.cpp | 592 ++ .../third_party/faiss/faiss/gpu/GpuCloner.h | 121 + .../faiss/faiss/gpu/GpuClonerOptions.h | 69 + .../faiss/faiss/gpu/GpuDistance.cu | 599 ++ .../third_party/faiss/faiss/gpu/GpuDistance.h | 181 + .../faiss/faiss/gpu/GpuFaissAssert.h | 28 + .../faiss/faiss/gpu/GpuIcmEncoder.cu | 126 + .../faiss/faiss/gpu/GpuIcmEncoder.h | 60 + .../third_party/faiss/faiss/gpu/GpuIndex.cu | 548 ++ .../third_party/faiss/faiss/gpu/GpuIndex.h | 198 + .../faiss/faiss/gpu/GpuIndexBinaryFlat.cu | 262 + .../faiss/faiss/gpu/GpuIndexBinaryFlat.h | 100 + .../faiss/faiss/gpu/GpuIndexCagra.cu | 299 + .../faiss/faiss/gpu/GpuIndexCagra.h | 295 + .../faiss/faiss/gpu/GpuIndexFlat.cu | 444 + .../faiss/faiss/gpu/GpuIndexFlat.h | 217 + .../faiss/faiss/gpu/GpuIndexIVF.cu | 481 + .../third_party/faiss/faiss/gpu/GpuIndexIVF.h | 154 + .../faiss/faiss/gpu/GpuIndexIVFFlat.cu | 392 + .../faiss/faiss/gpu/GpuIndexIVFFlat.h | 119 + .../faiss/faiss/gpu/GpuIndexIVFPQ.cu | 616 ++ .../faiss/faiss/gpu/GpuIndexIVFPQ.h | 181 + .../faiss/gpu/GpuIndexIVFScalarQuantizer.cu | 283 + .../faiss/gpu/GpuIndexIVFScalarQuantizer.h | 118 + .../faiss/faiss/gpu/GpuIndicesOptions.h | 31 + .../faiss/faiss/gpu/GpuResources.cpp | 228 + .../faiss/faiss/gpu/GpuResources.h | 312 + .../faiss/faiss/gpu/StandardGpuResources.cpp | 771 ++ .../faiss/faiss/gpu/StandardGpuResources.h | 269 + .../faiss/faiss/gpu/impl/BinaryDistance.cu | 330 + .../faiss/faiss/gpu/impl/BinaryDistance.cuh | 24 + .../faiss/faiss/gpu/impl/BinaryFlatIndex.cu | 91 + .../faiss/faiss/gpu/impl/BinaryFlatIndex.cuh | 65 + .../faiss/faiss/gpu/impl/BroadcastSum.cu | 377 + .../faiss/faiss/gpu/impl/BroadcastSum.cuh | 53 + .../faiss/faiss/gpu/impl/CuvsCagra.cu | 327 + .../faiss/faiss/gpu/impl/CuvsCagra.cuh | 151 + .../faiss/faiss/gpu/impl/CuvsFlatIndex.cu | 145 + .../faiss/faiss/gpu/impl/CuvsFlatIndex.cuh | 72 + .../faiss/faiss/gpu/impl/CuvsIVFFlat.cu | 555 ++ .../faiss/faiss/gpu/impl/CuvsIVFFlat.cuh | 151 + .../faiss/faiss/gpu/impl/CuvsIVFPQ.cu | 550 ++ .../faiss/faiss/gpu/impl/CuvsIVFPQ.cuh | 151 + .../faiss/faiss/gpu/impl/Distance.cu | 733 ++ .../faiss/faiss/gpu/impl/Distance.cuh | 445 + .../faiss/faiss/gpu/impl/DistanceUtils.cuh | 377 + .../faiss/faiss/gpu/impl/FlatIndex.cu | 305 + .../faiss/faiss/gpu/impl/FlatIndex.cuh | 133 + .../faiss/faiss/gpu/impl/GeneralDistance.cuh | 460 + .../faiss/gpu/impl/GpuScalarQuantizer.cuh | 852 ++ .../faiss/faiss/gpu/impl/IVFAppend.cu | 646 ++ .../faiss/faiss/gpu/impl/IVFAppend.cuh | 84 + .../faiss/faiss/gpu/impl/IVFBase.cu | 837 ++ .../faiss/faiss/gpu/impl/IVFBase.cuh | 280 + .../faiss/faiss/gpu/impl/IVFFlat.cu | 405 + .../faiss/faiss/gpu/impl/IVFFlat.cuh | 105 + .../faiss/faiss/gpu/impl/IVFFlatScan.cu | 494 + .../faiss/faiss/gpu/impl/IVFFlatScan.cuh | 42 + .../faiss/faiss/gpu/impl/IVFInterleaved.cu | 239 + .../faiss/faiss/gpu/impl/IVFInterleaved.cuh | 266 + .../third_party/faiss/faiss/gpu/impl/IVFPQ.cu | 739 ++ .../faiss/faiss/gpu/impl/IVFPQ.cuh | 181 + .../faiss/faiss/gpu/impl/IVFUtils.cu | 189 + .../faiss/faiss/gpu/impl/IVFUtils.cuh | 94 + .../faiss/faiss/gpu/impl/IVFUtilsSelect1.cu | 201 + .../faiss/faiss/gpu/impl/IVFUtilsSelect2.cu | 258 + .../faiss/faiss/gpu/impl/IcmEncoder.cu | 380 + .../faiss/faiss/gpu/impl/IcmEncoder.cuh | 79 + .../faiss/faiss/gpu/impl/IndexUtils.cu | 42 + .../faiss/faiss/gpu/impl/IndexUtils.h | 29 + .../faiss/faiss/gpu/impl/InterleavedCodes.cpp | 564 ++ .../faiss/faiss/gpu/impl/InterleavedCodes.h | 57 + .../faiss/faiss/gpu/impl/L2Norm.cu | 289 + .../faiss/faiss/gpu/impl/L2Norm.cuh | 38 + .../faiss/faiss/gpu/impl/L2Select.cu | 292 + .../faiss/faiss/gpu/impl/L2Select.cuh | 24 + .../faiss/gpu/impl/PQCodeDistances-inl.cuh | 741 ++ .../faiss/faiss/gpu/impl/PQCodeDistances.cuh | 40 + .../faiss/faiss/gpu/impl/PQCodeLoad.cuh | 615 ++ .../impl/PQScanMultiPassNoPrecomputed-inl.cuh | 743 ++ .../gpu/impl/PQScanMultiPassNoPrecomputed.cuh | 50 + .../gpu/impl/PQScanMultiPassPrecomputed.cu | 723 ++ .../gpu/impl/PQScanMultiPassPrecomputed.cuh | 45 + .../faiss/faiss/gpu/impl/RemapIndices.cpp | 47 + .../faiss/faiss/gpu/impl/RemapIndices.h | 26 + .../faiss/faiss/gpu/impl/VectorResidual.cu | 214 + .../faiss/faiss/gpu/impl/VectorResidual.cuh | 61 + .../gpu/impl/scan/IVFInterleavedImpl.cuh | 259 + .../scan/IVFInterleavedScanKernelTemplate.cu | 85 + .../faiss/faiss/gpu/perf/IndexWrapper-inl.h | 66 + .../faiss/faiss/gpu/perf/IndexWrapper.h | 41 + .../faiss/faiss/gpu/perf/PerfBinaryFlat.cu | 121 + .../faiss/faiss/gpu/perf/PerfClustering.cpp | 127 + .../faiss/faiss/gpu/perf/PerfFlat.cu | 159 + .../faiss/faiss/gpu/perf/PerfIVFFlat.cu | 156 + .../faiss/faiss/gpu/perf/PerfIVFPQ.cu | 166 + .../faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp | 159 + .../faiss/faiss/gpu/perf/PerfSelect.cu | 82 + .../faiss/faiss/gpu/perf/WriteIndex.cpp | 113 + .../third_party/faiss/faiss/gpu/perf/slow.py | 24 + .../faiss/faiss/gpu/test/CMakeLists.txt | 64 + .../faiss/faiss/gpu/test/TestCodePacking.cpp | 292 + .../faiss/faiss/gpu/test/TestGpuDistance.cu | 571 ++ .../faiss/gpu/test/TestGpuIndexBinaryFlat.cpp | 199 + .../faiss/faiss/gpu/test/TestGpuIndexCagra.cu | 475 + .../faiss/faiss/gpu/test/TestGpuIndexFlat.cpp | 770 ++ .../faiss/gpu/test/TestGpuIndexIVFFlat.cpp | 919 ++ .../faiss/gpu/test/TestGpuIndexIVFPQ.cpp | 887 ++ .../test/TestGpuIndexIVFScalarQuantizer.cpp | 233 + .../faiss/gpu/test/TestGpuMemoryException.cpp | 93 + .../gpu/test/TestGpuResidualQuantizer.cpp | 70 + .../faiss/faiss/gpu/test/TestGpuSelect.cu | 207 + .../faiss/faiss/gpu/test/TestUtils.cpp | 433 + .../faiss/faiss/gpu/test/TestUtils.h | 145 + .../gpu/test/demo_ivfpq_indexing_gpu.cpp | 158 + .../faiss/gpu/test/torch_test_contrib_gpu.py | 509 ++ .../faiss/faiss/gpu/utils/BlockSelectFloat.cu | 152 + .../faiss/gpu/utils/BlockSelectKernel.cuh | 169 + .../faiss/faiss/gpu/utils/Comparators.cuh | 47 + .../faiss/gpu/utils/ConversionOperators.cuh | 164 + .../faiss/faiss/gpu/utils/CopyUtils.cuh | 137 + .../faiss/faiss/gpu/utils/CuvsUtils.cu | 118 + .../faiss/faiss/gpu/utils/CuvsUtils.h | 76 + .../faiss/faiss/gpu/utils/DeviceDefs.cuh | 62 + .../faiss/gpu/utils/DeviceTensor-inl.cuh | 192 + .../faiss/faiss/gpu/utils/DeviceTensor.cuh | 96 + .../faiss/faiss/gpu/utils/DeviceUtils.cu | 264 + .../faiss/faiss/gpu/utils/DeviceUtils.h | 211 + .../faiss/faiss/gpu/utils/DeviceVector.cuh | 277 + .../faiss/faiss/gpu/utils/Float16.cuh | 84 + .../faiss/faiss/gpu/utils/HostTensor-inl.cuh | 237 + .../faiss/faiss/gpu/utils/HostTensor.cuh | 94 + .../faiss/faiss/gpu/utils/Limits.cuh | 95 + .../faiss/gpu/utils/LoadStoreOperators.cuh | 148 + .../faiss/faiss/gpu/utils/MathOperators.cuh | 791 ++ .../faiss/faiss/gpu/utils/MatrixMult-inl.cuh | 461 + .../faiss/faiss/gpu/utils/MatrixMult.cuh | 55 + .../faiss/gpu/utils/MergeNetworkBlock.cuh | 321 + .../faiss/gpu/utils/MergeNetworkUtils.cuh | 26 + .../faiss/gpu/utils/MergeNetworkWarp.cuh | 558 ++ .../faiss/faiss/gpu/utils/NoTypeTensor.cuh | 121 + .../faiss/faiss/gpu/utils/Pair.cuh | 66 + .../faiss/faiss/gpu/utils/PtxUtils.cuh | 135 + .../faiss/gpu/utils/ReductionOperators.cuh | 71 + .../faiss/faiss/gpu/utils/Reductions.cuh | 147 + .../faiss/faiss/gpu/utils/Select.cuh | 647 ++ .../faiss/gpu/utils/StackDeviceMemory.cpp | 208 + .../faiss/faiss/gpu/utils/StackDeviceMemory.h | 112 + .../faiss/faiss/gpu/utils/StaticUtils.h | 94 + .../faiss/faiss/gpu/utils/Tensor-inl.cuh | 1052 +++ .../faiss/faiss/gpu/utils/Tensor.cuh | 698 ++ .../faiss/faiss/gpu/utils/ThrustUtils.cuh | 82 + .../faiss/faiss/gpu/utils/Timer.cpp | 58 + .../third_party/faiss/faiss/gpu/utils/Timer.h | 53 + .../faiss/faiss/gpu/utils/Transpose.cuh | 193 + .../faiss/faiss/gpu/utils/WarpPackedBits.cuh | 281 + .../faiss/faiss/gpu/utils/WarpSelectFloat.cu | 99 + .../faiss/gpu/utils/WarpSelectKernel.cuh | 87 + .../faiss/faiss/gpu/utils/WarpShuffles.cuh | 145 + .../utils/blockselect/BlockSelectFloat1.cu | 17 + .../utils/blockselect/BlockSelectFloat128.cu | 17 + .../utils/blockselect/BlockSelectFloat256.cu | 17 + .../utils/blockselect/BlockSelectFloat32.cu | 17 + .../utils/blockselect/BlockSelectFloat64.cu | 17 + .../blockselect/BlockSelectFloatF1024.cu | 16 + .../blockselect/BlockSelectFloatF2048.cu | 19 + .../utils/blockselect/BlockSelectFloatF512.cu | 16 + .../blockselect/BlockSelectFloatT1024.cu | 16 + .../blockselect/BlockSelectFloatT2048.cu | 19 + .../utils/blockselect/BlockSelectFloatT512.cu | 16 + .../gpu/utils/blockselect/BlockSelectImpl.cuh | 104 + .../gpu/utils/warpselect/WarpSelectFloat1.cu | 17 + .../utils/warpselect/WarpSelectFloat128.cu | 17 + .../utils/warpselect/WarpSelectFloat256.cu | 17 + .../gpu/utils/warpselect/WarpSelectFloat32.cu | 17 + .../gpu/utils/warpselect/WarpSelectFloat64.cu | 17 + .../utils/warpselect/WarpSelectFloatF1024.cu | 16 + .../utils/warpselect/WarpSelectFloatF2048.cu | 19 + .../utils/warpselect/WarpSelectFloatF512.cu | 16 + .../utils/warpselect/WarpSelectFloatT1024.cu | 16 + .../utils/warpselect/WarpSelectFloatT2048.cu | 19 + .../utils/warpselect/WarpSelectFloatT512.cu | 16 + .../gpu/utils/warpselect/WarpSelectImpl.cuh | 46 + .../faiss/faiss/impl/AdditiveQuantizer.cpp | 635 ++ .../faiss/faiss/impl/AdditiveQuantizer.h | 218 + .../faiss/faiss/impl/AuxIndexStructures.cpp | 264 + .../faiss/faiss/impl/AuxIndexStructures.h | 202 + .../faiss/faiss/impl/CodePacker.cpp | 67 + .../third_party/faiss/faiss/impl/CodePacker.h | 71 + .../faiss/faiss/impl/DistanceComputer.h | 182 + .../faiss/faiss/impl/FaissAssert.h | 113 + .../faiss/faiss/impl/FaissException.cpp | 100 + .../faiss/faiss/impl/FaissException.h | 65 + .../third_party/faiss/faiss/impl/HNSW.cpp | 1511 ++++ .../third_party/faiss/faiss/impl/HNSW.h | 499 ++ .../faiss/faiss/impl/HNSW_search.cpp | 851 ++ .../third_party/faiss/faiss/impl/HNSW_zmq.cpp | 657 ++ .../third_party/faiss/faiss/impl/HNSW_zmq.h | 155 + .../faiss/faiss/impl/IDSelector.cpp | 125 + .../third_party/faiss/faiss/impl/IDSelector.h | 173 + .../faiss/faiss/impl/LocalSearchQuantizer.cpp | 846 ++ .../faiss/faiss/impl/LocalSearchQuantizer.h | 248 + .../faiss/faiss/impl/LookupTableScaler.h | 111 + .../faiss/faiss/impl/NNDescent.cpp | 499 ++ .../third_party/faiss/faiss/impl/NNDescent.h | 154 + .../third_party/faiss/faiss/impl/NSG.cpp | 775 ++ .../third_party/faiss/faiss/impl/NSG.h | 221 + .../faiss/faiss/impl/PolysemousTraining.cpp | 971 ++ .../faiss/faiss/impl/PolysemousTraining.h | 156 + .../faiss/impl/ProductAdditiveQuantizer.cpp | 374 + .../faiss/impl/ProductAdditiveQuantizer.h | 154 + .../faiss/faiss/impl/ProductQuantizer-inl.h | 116 + .../faiss/faiss/impl/ProductQuantizer.cpp | 880 ++ .../faiss/faiss/impl/ProductQuantizer.h | 249 + .../third_party/faiss/faiss/impl/Quantizer.h | 46 + .../faiss/faiss/impl/RaBitQuantizer.cpp | 519 ++ .../faiss/faiss/impl/RaBitQuantizer.h | 78 + .../faiss/faiss/impl/ResidualQuantizer.cpp | 514 ++ .../faiss/faiss/impl/ResidualQuantizer.h | 148 + .../faiss/faiss/impl/ResultHandler.h | 687 ++ .../faiss/faiss/impl/ScalarQuantizer.cpp | 2481 ++++++ .../faiss/faiss/impl/ScalarQuantizer.h | 123 + .../faiss/faiss/impl/ThreadedIndex-inl.h | 190 + .../faiss/faiss/impl/ThreadedIndex.h | 86 + .../impl/code_distance/code_distance-avx2.h | 534 ++ .../impl/code_distance/code_distance-avx512.h | 248 + .../code_distance/code_distance-generic.h | 81 + .../impl/code_distance/code_distance-sve.h | 439 + .../faiss/impl/code_distance/code_distance.h | 186 + .../faiss/faiss/impl/index_read.cpp | 1820 ++++ .../faiss/faiss/impl/index_read_utils.h | 37 + .../faiss/faiss/impl/index_write.cpp | 1075 +++ .../third_party/faiss/faiss/impl/io.cpp | 277 + .../third_party/faiss/faiss/impl/io.h | 145 + .../third_party/faiss/faiss/impl/io_macros.h | 89 + .../third_party/faiss/faiss/impl/kmeans1d.cpp | 301 + .../third_party/faiss/faiss/impl/kmeans1d.h | 48 + .../faiss/faiss/impl/lattice_Zn.cpp | 664 ++ .../third_party/faiss/faiss/impl/lattice_Zn.h | 188 + .../faiss/faiss/impl/mapped_io.cpp | 378 + .../third_party/faiss/faiss/impl/mapped_io.h | 51 + .../faiss/faiss/impl/maybe_owned_vector.h | 316 + .../faiss/faiss/impl/platform_macros.h | 203 + .../third_party/faiss/faiss/impl/pq.cpp | 225 + .../third_party/faiss/faiss/impl/pq.h | 92 + .../faiss/faiss/impl/pq4_fast_scan.cpp | 323 + .../faiss/faiss/impl/pq4_fast_scan.h | 210 + .../faiss/impl/pq4_fast_scan_search_1.cpp | 224 + .../faiss/impl/pq4_fast_scan_search_qbs.cpp | 803 ++ .../impl/residual_quantizer_encode_steps.cpp | 960 ++ .../impl/residual_quantizer_encode_steps.h | 176 + .../faiss/faiss/impl/simd_result_handlers.h | 787 ++ .../faiss/faiss/impl/zerocopy_io.cpp | 67 + .../faiss/faiss/impl/zerocopy_io.h | 32 + .../third_party/faiss/faiss/index_factory.cpp | 956 ++ .../third_party/faiss/faiss/index_factory.h | 27 + .../third_party/faiss/faiss/index_io.h | 126 + .../faiss/invlists/BlockInvertedLists.cpp | 180 + .../faiss/faiss/invlists/BlockInvertedLists.h | 83 + .../faiss/faiss/invlists/DirectMap.cpp | 260 + .../faiss/faiss/invlists/DirectMap.h | 114 + .../faiss/faiss/invlists/InvertedLists.cpp | 794 ++ .../faiss/faiss/invlists/InvertedLists.h | 426 + .../faiss/invlists/InvertedListsIOHook.cpp | 102 + .../faiss/invlists/InvertedListsIOHook.h | 62 + .../faiss/invlists/OnDiskInvertedLists.cpp | 806 ++ .../faiss/invlists/OnDiskInvertedLists.h | 156 + .../faiss/faiss/python/CMakeLists.txt | 348 + .../faiss/faiss/python/__init__.py | 350 + .../faiss/faiss/python/array_conversions.py | 183 + .../faiss/faiss/python/class_wrappers.py | 1407 +++ .../faiss/faiss/python/extra_wrappers.py | 659 ++ .../python/faiss_example_external_module.swig | 141 + .../faiss/faiss/python/gpu_wrappers.py | 293 + .../third_party/faiss/faiss/python/loader.py | 150 + .../faiss/faiss/python/python_callbacks.cpp | 160 + .../faiss/faiss/python/python_callbacks.h | 82 + .../third_party/faiss/faiss/python/setup.py | 122 + .../faiss/faiss/python/swigfaiss.swig | 1322 +++ .../faiss/faiss/utils/AlignedTable.h | 180 + .../third_party/faiss/faiss/utils/Heap.cpp | 250 + .../third_party/faiss/faiss/utils/Heap.h | 636 ++ .../faiss/faiss/utils/NeuralNet.cpp | 346 + .../third_party/faiss/faiss/utils/NeuralNet.h | 147 + .../faiss/faiss/utils/WorkerThread.cpp | 117 + .../faiss/faiss/utils/WorkerThread.h | 61 + .../faiss/utils/approx_topk/approx_topk.h | 84 + .../faiss/faiss/utils/approx_topk/avx2-inl.h | 196 + .../faiss/faiss/utils/approx_topk/generic.h | 138 + .../faiss/faiss/utils/approx_topk/mode.h | 34 + .../approx_topk_hamming/approx_topk_hamming.h | 385 + .../third_party/faiss/faiss/utils/bf16.h | 36 + .../faiss/faiss/utils/distances.cpp | 1208 +++ .../third_party/faiss/faiss/utils/distances.h | 486 + .../faiss/utils/distances_fused/avx512.cpp | 346 + .../faiss/utils/distances_fused/avx512.h | 36 + .../utils/distances_fused/distances_fused.cpp | 42 + .../utils/distances_fused/distances_fused.h | 40 + .../utils/distances_fused/simdlib_based.cpp | 352 + .../utils/distances_fused/simdlib_based.h | 32 + .../faiss/faiss/utils/distances_simd.cpp | 3779 ++++++++ .../faiss/faiss/utils/extra_distances-inl.h | 203 + .../faiss/faiss/utils/extra_distances.cpp | 198 + .../faiss/faiss/utils/extra_distances.h | 59 + .../third_party/faiss/faiss/utils/fp16-arm.h | 29 + .../faiss/faiss/utils/fp16-fp16c.h | 28 + .../third_party/faiss/faiss/utils/fp16-inl.h | 108 + .../third_party/faiss/faiss/utils/fp16.h | 20 + .../faiss/faiss/utils/hamming-inl.h | 119 + .../third_party/faiss/faiss/utils/hamming.cpp | 789 ++ .../third_party/faiss/faiss/utils/hamming.h | 291 + .../faiss/utils/hamming_distance/avx2-inl.h | 462 + .../faiss/utils/hamming_distance/avx512-inl.h | 490 + .../faiss/utils/hamming_distance/common.h | 49 + .../utils/hamming_distance/generic-inl.h | 450 + .../faiss/utils/hamming_distance/hamdis-inl.h | 87 + .../faiss/utils/hamming_distance/neon-inl.h | 524 ++ .../faiss/faiss/utils/ordered_key_value.h | 106 + .../faiss/faiss/utils/partitioning.cpp | 1326 +++ .../faiss/faiss/utils/partitioning.h | 74 + .../third_party/faiss/faiss/utils/prefetch.h | 77 + .../faiss/faiss/utils/quantize_lut.cpp | 337 + .../faiss/faiss/utils/quantize_lut.h | 102 + .../third_party/faiss/faiss/utils/random.cpp | 264 + .../third_party/faiss/faiss/utils/random.h | 87 + .../third_party/faiss/faiss/utils/simdlib.h | 42 + .../faiss/faiss/utils/simdlib_avx2.h | 803 ++ .../faiss/faiss/utils/simdlib_avx512.h | 296 + .../faiss/faiss/utils/simdlib_emulated.h | 1045 +++ .../faiss/faiss/utils/simdlib_neon.h | 1360 +++ .../faiss/faiss/utils/simdlib_ppc64.h | 1084 +++ .../third_party/faiss/faiss/utils/sorting.cpp | 827 ++ .../third_party/faiss/faiss/utils/sorting.h | 98 + .../utils/transpose/transpose-avx2-inl.h | 165 + .../utils/transpose/transpose-avx512-inl.h | 176 + .../third_party/faiss/faiss/utils/utils.cpp | 644 ++ .../third_party/faiss/faiss/utils/utils.h | 209 + .../third_party/faiss/misc/test_blas.cpp | 110 + .../faiss/perf_tests/CMakeLists.txt | 49 + .../faiss/perf_tests/bench_hnsw.py | 204 + .../bench_no_multithreading_rcq_search.cpp | 65 + .../bench_scalar_quantizer_accuracy.cpp | 87 + .../bench_scalar_quantizer_decode.cpp | 70 + .../bench_scalar_quantizer_distance.cpp | 78 + .../bench_scalar_quantizer_encode.cpp | 64 + .../third_party/faiss/perf_tests/utils.cpp | 27 + .../third_party/faiss/perf_tests/utils.h | 16 + .../third_party/faiss/tests/CMakeLists.txt | 92 + .../faiss/tests/common_faiss_tests.py | 127 + .../faiss/tests/external_module_test.py | 66 + .../faiss/tests/test_NSG_compressed_graph.cpp | 85 + .../faiss/tests/test_RCQ_cropping.cpp | 129 + .../faiss/tests/test_approx_topk.cpp | 224 + .../faiss/tests/test_binary_flat.cpp | 62 + .../third_party/faiss/tests/test_callback.cpp | 37 + .../faiss/tests/test_code_distance.cpp | 240 + .../tests/test_common_ivf_empty_index.cpp | 148 + .../faiss/tests/test_cppcontrib_sa_decode.cpp | 1306 +++ .../tests/test_cppcontrib_uintreader.cpp | 114 + .../faiss/tests/test_dealloc_invlists.cpp | 170 + .../tests/test_disable_pq_sdc_tables.cpp | 69 + .../faiss/tests/test_distances_simd.cpp | 334 + .../faiss/tests/test_factory_tools.cpp | 46 + .../faiss/tests/test_fastscan_perf.cpp | 66 + .../third_party/faiss/tests/test_hamming.cpp | 335 + .../third_party/faiss/tests/test_heap.cpp | 54 + .../third_party/faiss/tests/test_hnsw.cpp | 657 ++ .../faiss/tests/test_ivf_index.cpp | 254 + .../faiss/tests/test_ivfpq_codec.cpp | 85 + .../faiss/tests/test_ivfpq_indexing.cpp | 93 + .../faiss/tests/test_lowlevel_ivf.cpp | 549 ++ .../third_party/faiss/tests/test_mem_leak.cpp | 66 + .../third_party/faiss/tests/test_merge.cpp | 246 + .../third_party/faiss/tests/test_mmap.cpp | 265 + .../faiss/tests/test_omp_threads.cpp | 14 + .../faiss/tests/test_ondisk_ivf.cpp | 206 + .../faiss/tests/test_pairs_decoding.cpp | 194 + .../faiss/tests/test_params_override.cpp | 287 + .../faiss/tests/test_partitioning.cpp | 33 + .../faiss/tests/test_pq_encoding.cpp | 145 + .../third_party/faiss/tests/test_simdlib.cpp | 264 + .../faiss/tests/test_sliding_ivf.cpp | 205 + .../faiss/tests/test_threaded_index.cpp | 260 + .../faiss/tests/test_transfer_invlists.cpp | 147 + .../third_party/faiss/tests/test_util.h | 38 + .../third_party/faiss/tests/test_utils.cpp | 19 + .../third_party/faiss/tests/test_zerocopy.cpp | 243 + .../faiss/tests/torch_test_contrib.py | 427 + .../faiss/tests/torch_test_neural_net.py | 374 + .../third_party/faiss/tutorial/cpp/1-Flat.cpp | 101 + .../faiss/tutorial/cpp/2-IVFFlat.cpp | 79 + .../faiss/tutorial/cpp/3-IVFPQ.cpp | 95 + .../third_party/faiss/tutorial/cpp/4-GPU.cpp | 120 + .../faiss/tutorial/cpp/5-Multiple-GPUs.cpp | 99 + .../third_party/faiss/tutorial/cpp/6-HNSW.cpp | 73 + .../faiss/tutorial/cpp/7-PQFastScan.cpp | 75 + .../faiss/tutorial/cpp/8-PQFastScanRefine.cpp | 84 + .../faiss/tutorial/cpp/9-RefineComparison.cpp | 104 + .../faiss/tutorial/cpp/CMakeLists.txt | 31 + .../faiss/tutorial/python/1-Flat.py | 29 + .../faiss/tutorial/python/2-IVFFlat.py | 34 + .../faiss/tutorial/python/3-IVFPQ.py | 32 + .../faiss/tutorial/python/4-GPU.py | 57 + .../faiss/tutorial/python/5-Multiple-GPUs.py | 35 + .../faiss/tutorial/python/7-PQFastScan.py | 35 + .../tutorial/python/8-PQFastScanRefine.py | 38 + .../tutorial/python/9-RefineComparison.py | 42 + packages/leann-core/pyproject.toml | 18 + packages/leann-core/src/leann/api.py | 179 + packages/leann-core/src/leann/interface.py | 59 + packages/leann-core/src/leann/registry.py | 12 + pyproject.toml | 49 + research/micro/analyze_HNSW.py | 12 + research/micro/analyze_NSG.py | 11 + research/micro/bnbtest.py | 63 + .../transformer-batching-microbenchmarks.csv | 89 + ...ution_degree_distribution_HNSW_M30.txt.png | Bin 0 -> 46422 bytes research/micro/embedd_micro.py | 594 ++ research/micro/embedd_micro_seq.py | 376 + research/micro/int4benchmark.py | 218 + research/micro/int8.py | 83 + research/micro/llm_compress.py | 23 + research/micro/nvmath_test.py | 41 + research/micro/result.md | 0 research/micro/save_small_model.py | 58 + .../transformer-batching-benchmark.ipynb | 677 ++ research/paper_plot/acc_fig.py | 165 + research/paper_plot/analyze_visits.py | 309 + research/paper_plot/b.md | 7 + research/paper_plot/cache_degree_data.py | 81 + research/paper_plot/data/acc.csv | 4 + .../paper_plot/data/big_graph_degree_data.npz | 3 + research/paper_plot/data/branches.csv | 21 + research/paper_plot/data/latency_ablation.csv | 9 + research/paper_plot/data/main_latency.csv | 25 + .../paper_plot/data/main_latency_small.csv | 25 + research/paper_plot/data/ram_storage.csv | 3 + research/paper_plot/data/swithc_e2e.csv | 12 + research/paper_plot/data/vary_cache.csv | 6 + research/paper_plot/disk_cache.py | 151 + .../figures/H_hnsw_performance_comparison.pdf | Bin 0 -> 154207 bytes .../figures/H_hnsw_performance_comparison.png | Bin 0 -> 132935 bytes .../figures/H_hnsw_recall_comparison.pdf | Bin 0 -> 177728 bytes .../figures/H_hnsw_recall_comparison.png | Bin 0 -> 102613 bytes .../figures/accuracy_comparison.pdf | Bin 0 -> 53800 bytes .../figures/degree_distribution.pdf | Bin 0 -> 118214 bytes .../figures/degree_distribution_small.pdf | Bin 0 -> 90280 bytes .../paper_plot/figures/disk_cache_latency.pdf | Bin 0 -> 53837 bytes research/paper_plot/figures/figure15.pdf | Bin 0 -> 102713 bytes .../figures/gpu_throughput_vs_batch_size.pdf | Bin 0 -> 81494 bytes .../hnsw_visit_count_per_degree_corrected.pdf | Bin 0 -> 176309 bytes .../hnsw_visit_count_per_degree_corrected.png | Bin 0 -> 42138 bytes .../paper_plot/figures/latency_speedup.pdf | Bin 0 -> 52215 bytes .../paper_plot/figures/main_exp_fig_1.pdf | Bin 0 -> 118991 bytes .../paper_plot/figures/main_exp_fig_2.pdf | Bin 0 -> 115121 bytes research/paper_plot/figures/plot1_em_f1.pdf | Bin 0 -> 51378 bytes research/paper_plot/figures/plot2_latency.pdf | Bin 0 -> 51090 bytes .../figures/ram_storage_double_column.pdf | Bin 0 -> 133250 bytes .../figures/sparse_a2a_branches.pdf | Bin 0 -> 102369 bytes .../paper_plot/figures/speed_A10_revised.pdf | Bin 0 -> 160037 bytes .../paper_plot/figures/speed_MAC_revised.pdf | Bin 0 -> 155703 bytes research/paper_plot/gpu_under.py | 107 + research/paper_plot/graph_dist.py | 245 + research/paper_plot/graph_pruning_ablation.py | 330 + research/paper_plot/main_exp.py | 441 + research/paper_plot/main_latency.py | 163 + research/paper_plot/main_memory_storage.py | 85 + research/paper_plot/recompute_bottle.py | 141 + research/paper_plot/small_emb.py | 226 + research/paper_plot/speed_ablation.py | 111 + research/utils/.gitignore | 1 + research/utils/analyze_diskann_graph.cpp | 227 + research/utils/analyze_top3_positions.py | 187 + research/utils/debug_embedd.py | 137 + research/utils/dedup_eval_data.py | 33 + research/utils/deduplication.py | 167 + research/utils/demo_reader.cpp | 387 + .../utils/diskann_degree_distribution.fish | 15 + research/utils/download_mac.fish | 30 + research/utils/embedding_comp.py | 422 + research/utils/evaluate_results.py | 444 + research/utils/experiment.md | 44 + research/utils/extract_results.py | 599 ++ research/utils/faiss.md | 20 + research/utils/find_probe.py | 739 ++ research/utils/generate_dataset_cache.fish | 60 + research/utils/mem_monitor.fish | 61 + research/utils/modelfile.fish | 76 + .../utils/parse_logs_draw_skip_reorder.py | 193 + research/utils/plot_degree_distribution.py | 114 + research/utils/prepare_query_files.py | 244 + research/utils/run_bm25.fish | 5 + research/utils/run_recall_experiment.py | 313 + research/utils/s3.md | 89 + research/utils/seperate_hnsw_flat.py | 212 + research/utils/simple_search.fish | 18 + research/utils/subsample_data_new.py | 59 + research/utils/timing.py | 52 + tests/sanity_checks/README.md | 120 + .../sanity_checks/test_distance_functions.py | 107 + tests/sanity_checks/test_l2_verification.py | 127 + tests/sanity_checks/test_sanity_check.py | 190 + uv.lock | 6241 +++++++++++++ 1231 files changed, 278432 insertions(+) create mode 100644 .gitattributes create mode 100755 .gitignore create mode 100644 .gitmodules create mode 100644 .python-version create mode 100644 .vscode/extensions.json create mode 100755 .vscode/launch.json create mode 100755 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100755 LICENSE create mode 100755 README.md create mode 100644 demo.ipynb create mode 100644 examples/data/2506.08276v1.pdf create mode 100644 examples/document_search.py create mode 100644 examples/main_cli_example.py create mode 100644 examples/simple_demo.py create mode 100644 knowledge.leann.meta.json create mode 100644 packages/leann-backend-diskann/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/leann_backend_diskann/__init__.py create mode 100644 packages/leann-backend-diskann/leann_backend_diskann/diskann_backend.py create mode 100644 packages/leann-backend-diskann/leann_backend_diskann/embedding_pb2.py create mode 100644 packages/leann-backend-diskann/leann_backend_diskann/embedding_server.py create mode 100644 packages/leann-backend-diskann/pyproject.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.clang-format create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.gitattributes create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/config.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/usage-question.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/actions/build/action.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/actions/format-check/action.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-high-dim-random/action.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-random/action.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/actions/python-wheel/action.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python-pdoc.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/common.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/disk-pq.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic-labels.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-no-pq.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-pq.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/labels.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/multi-sector-disk-pq.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/perf.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/pr-test.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/push-test.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/python-release.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/unit-tests.yml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.gitignore create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/.gitmodules create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/CMakeSettings.json create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/CODE_OF_CONDUCT.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/CONTRIBUTING.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/Dockerfile create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/DockerfileDev create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/LICENSE create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/MANIFEST.in create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/README.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/SECURITY.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/build_disk_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/build_memory_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/build_stitched_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/python/README.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/__init__.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/disk_ann_util.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/range_search_disk_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/client.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/inmem_server.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/main.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/multiple_ssdindex_server.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/ssd_server.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/search_disk_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/search_memory_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/test_insert_deletes_consolidate.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/test_streaming_scenario.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_fvecs.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_tsv.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/calculate_recall.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth_for_filters.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/count_bfs_levels.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/create_disk_layout.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/float_bin_to_int8.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bin.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bvecs.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/gen_random_slice.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_pq.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_synthetic_labels.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float_scale.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/ivecs_to_bin.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/merge_shards.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_data.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_with_ram_budget.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/rand_data_gen.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/simulate_aggregate_recall.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/stats_label_data.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/tsv_to_bin.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint32_to_uint8.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint8_to_float.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/apps/utils/vector_analysis.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/clang-format.cmake create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/abstract_data_store.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/abstract_graph_store.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/abstract_index.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/abstract_scratch.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/aligned_file_reader.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/ann_exception.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/any_wrappers.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/apple_aligned_file_reader.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/boost_dynamic_bitset_fwd.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/cached_io.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/common_includes.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/concurrent_queue.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/cosine_similarity.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/defaults.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/disk_utils.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/distance.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/embedding.pb.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/embedding_compute.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/exceptions.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/filter_utils.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_data_store.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_graph_store.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/index.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/index_build_params.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/index_config.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/index_factory.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/linux_aligned_file_reader.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/locking.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/logger.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/logger_impl.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/math_utils.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/memory_mapper.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_map.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_set.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/neighbor.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/parameters.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/partition.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/percentile_stats.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/pq.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/pq_common.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/pq_data_store.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/pq_flash_index.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/pq_l2_distance.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/pq_scratch.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/program_options_utils.hpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/proto_embedding.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/quantized_distance.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/restapi/common.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/restapi/search_wrapper.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/restapi/server.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/scratch.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/simd_utils.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tag_uint128.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/timer.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/.clang-format create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_growth_policy.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_hash.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_map.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_set.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_growth_policy.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_hash.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_map.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_set.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/types.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/utils.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/windows_aligned_file_reader.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/windows_customizations.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/include/windows_slim_lock.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/pyproject.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/README.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/apps/cli/__main__.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/apps/cluster.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-dynamic.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-static.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/apps/insert-in-clustered-order.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/apps/utils.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/include/builder.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/include/common.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/include/dynamic_memory_index.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/include/static_disk_index.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/include/static_memory_index.h create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/__init__.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.pyi create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_common.py create mode 100755 packages/leann-backend-diskann/third_party/DiskANN/python/src/_diskannpy.cpython-310-x86_64-linux-gnu.so.bak create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_dynamic_memory_index.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_files.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_static_disk_index.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/_static_memory_index.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/builder.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/defaults.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/dynamic_memory_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/module.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/py.typed create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/static_disk_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/src/static_memory_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/tests/fixtures/__init__.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/tests/fixtures/build_memory_index.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/tests/fixtures/create_test_data.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/python/tests/fixtures/recall.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/Cargo.lock create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_and_insert_delete_memory_index/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_and_insert_delete_memory_index/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_and_insert_memory_index/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_and_insert_memory_index/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_disk_index/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_disk_index/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_memory_index/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_memory_index/src/args.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/build_memory_index/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/convert_f32_to_bf16/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/convert_f32_to_bf16/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/load_and_insert_memory_index/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/load_and_insert_memory_index/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/search_memory_index/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/search_memory_index/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/cmd_drivers/search_memory_index/src/search_index_utils.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/benches/distance_bench.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/benches/kmeans_bench.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/benches/neighbor_bench.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/algorithm/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/algorithm/prune/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/algorithm/prune/prune.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/algorithm/search/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/algorithm/search/search.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/common/aligned_allocator.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/common/ann_result.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/common/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/disk_index/ann_disk_index.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/disk_index/disk_index.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/disk_index/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/inmem_index/ann_inmem_index.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/inmem_index/inmem_index.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/inmem_index/inmem_index_storage.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/inmem_index/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/index/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/instrumentation/disk_index_build_logger.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/instrumentation/index_logger.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/instrumentation/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/lib.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/configuration/disk_index_build_parameter.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/configuration/index_configuration.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/configuration/index_write_parameters.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/configuration/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/data_store/disk_scratch_dataset.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/data_store/inmem_dataset.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/data_store/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/graph/adjacency_list.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/graph/disk_graph.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/graph/inmem_graph.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/graph/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/graph/sector_graph.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/graph/vertex_and_neighbors.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/neighbor/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/neighbor/neighbor.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/neighbor/neighbor_priority_queue.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/neighbor/sorted_neighbor_vector.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/pq/fixed_chunk_pq_table.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/pq/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/pq/pq_construction.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/concurrent_queue.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/inmem_query_scratch.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/pq_scratch.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/scratch_store_manager.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/scratch_traits.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/ssd_io_context.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/ssd_query_scratch.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/scratch/ssd_thread_data.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/vertex/dimension.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/vertex/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/vertex/vertex.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/windows_aligned_file_reader/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/model/windows_aligned_file_reader/windows_aligned_file_reader.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/storage/disk_graph_storage.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/storage/disk_index_storage.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/storage/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/storage/pq_storage.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/test_utils/inmem_index_initialization.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/test_utils/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/bit_vec_extension.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/cached_reader.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/cached_writer.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/file_util.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/hashset_u32.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/kmeans.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/math_util.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/mod.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/partition.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/rayon_util.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/timer.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/src/utils/utils.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/tests/data/siftsmall_learn_256pts.fbin create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/tests/data/siftsmall_learn_256pts_2.fbin create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/tests/data/truth_index_siftsmall_learn_256pts_1+2_R4_L50_A1.2 create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/tests/data/truth_index_siftsmall_learn_256pts_1+2_saturated_R4_L50_A1.2 create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/tests/data/truth_index_siftsmall_learn_256pts_R4_L50_A1.2 create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/diskann/tests/data/truth_index_siftsmall_learn_256pts_R4_L50_A1.2.data create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/build.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/error_logger.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/examples/trace_example.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/indexlog.proto create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/lib.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/log_error.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/message_handler.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/logger/src/trace_logger.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/platform/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/platform/src/file_handle.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/platform/src/file_io.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/platform/src/io_completion_port.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/platform/src/lib.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/platform/src/perf.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/project.code-workspace create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/readme.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/rust-toolchain.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/build.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/distance.c create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/distance.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/distance_test.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/half.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/l2_float_distance.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/lib.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/metric.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/test_util.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector/src/utils.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector_base64/Cargo.toml create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/rust/vector_base64/src/main.rs create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/setup.py create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/abstract_data_store.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/abstract_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/ann_exception.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/apple_aligned_file_reader.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/disk_utils.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/distance.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/dll/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/dll/dllmain.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/filter_utils.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/in_mem_data_store.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/in_mem_graph_store.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/index_factory.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/linux_aligned_file_reader.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/logger.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/math_utils.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/memory_mapper.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/natural_number_map.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/natural_number_set.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/partition.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/pq.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/pq_data_store.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/pq_flash_index.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/pq_l2_distance.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/restapi/search_wrapper.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/restapi/server.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/scratch.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/utils.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/src/windows_aligned_file_reader.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/tests/CMakeLists.txt create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/tests/README.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/tests/index_write_parameters_builder_tests.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/tests/main.cpp create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/windows/packages.config.in create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/windows/packages_restapi.config.in create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/SSD_index.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/dynamic_index.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/filtered_in_memory.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/filtered_ssd_index.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/in_memory_index.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/python.md create mode 100644 packages/leann-backend-diskann/third_party/DiskANN/workflows/rest_api.md create mode 100644 packages/leann-backend-diskann/third_party/embedding.pb.cc create mode 100644 packages/leann-backend-diskann/third_party/embedding.proto create mode 100644 packages/leann-backend-hnsw/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/leann_backend_hnsw/__init__.py create mode 100644 packages/leann-backend-hnsw/leann_backend_hnsw/hnsw_backend.py create mode 100644 packages/leann-backend-hnsw/leann_backend_hnsw/hnsw_embedding_server.py create mode 100644 packages/leann-backend-hnsw/pyproject.toml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.clang-format create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.dockerignore create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/ISSUE_TEMPLATE.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/actions/build_cmake/action.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/actions/build_conda/action.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/autoclose.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/build-pull-request.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/build-release.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/build.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/nightly.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/publish-docs.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/retry_build.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.github/workflows/update-doxygen.yml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.gitignore create mode 100644 packages/leann-backend-hnsw/third_party/faiss/.vscode/launch.json create mode 100644 packages/leann-backend-hnsw/third_party/faiss/CHANGELOG.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/CODE_OF_CONDUCT.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/CONTRIBUTING.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/Doxyfile create mode 100644 packages/leann-backend-hnsw/third_party/faiss/INSTALL.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/LICENSE create mode 100644 packages/leann-backend-hnsw/third_party/faiss/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_6bit_codec.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/bench_all_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/bench_kmeans.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/cmp_with_scann.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/datasets_oss.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/make_groundtruth.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/parse_bench_all_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_all_ivf/run_on_cluster_generic.bash create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_big_batch_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_cppcontrib_sa_decode.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_for_interrupt.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/__init__.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/benchmark.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/benchmark_io.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/descriptors.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/index.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/optimize.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw/utils.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw_codecs.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw_notebook.ipynb create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw_optimize.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_fw_range.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_gpu_1bn.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_gpu_sift1m.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_hamming_computer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_hamming_knn.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_heap_replace.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_hnsw.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_hybrid_cpu_gpu.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_index_flat.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_index_pq.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_ivf_fastscan.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_ivf_fastscan_single_query.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_ivf_selector.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_ivfflat_cuvs.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_ivfpq_cuvs.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_pairwise_distances.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_partition.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_polysemous_1bn.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_polysemous_sift1m.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_pq_tables.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_pq_transposed_centroid_table.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_quantizer.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_scalar_quantizer.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/bench_vector_ops.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/datasets.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/README.md create mode 100755 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/combined_index.py create mode 100755 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/distributed_kmeans.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/distributed_query_demo.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/make_index_vslice.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/make_trained_index.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/merge_to_ondisk.py create mode 100755 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/run_on_cluster.bash create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/distributed_ondisk/search_server.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/kmeans_mnist.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/benchs/link_and_code/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/AutoTune_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/AutoTune_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/Clustering_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/Clustering_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/INSTALL.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexBinary_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexBinary_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexFlat_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexFlat_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexIVFFlat_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexIVFFlat_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexIVF_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexIVF_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexLSH_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexLSH_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexPreTransform_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexPreTransform_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexReplicas_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexReplicas_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexScalarQuantizer_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexScalarQuantizer_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexShards_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/IndexShards_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/Index_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/Index_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/MetaIndexes_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/MetaIndexes_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/VectorTransform_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/VectorTransform_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/clone_index_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/clone_index_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/error_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/error_impl.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/error_impl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/example_c.c create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/faiss_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/DeviceUtils_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/DeviceUtils_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuAutoTune_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuAutoTune_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuClonerOptions_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuClonerOptions_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuIndex_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuIndex_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuIndicesOptions_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuResources_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/GpuResources_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/StandardGpuResources_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/StandardGpuResources_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/example_gpu_c.c create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/gpu/macros_impl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/impl/AuxIndexStructures_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/impl/AuxIndexStructures_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/index_factory_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/index_factory_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/index_io_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/index_io_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/macros_impl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/utils/distances_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/utils/distances_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/utils/utils_c.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/c_api/utils/utils_c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/cmake/FindMKL.cmake create mode 100644 packages/leann-backend-hnsw/third_party/faiss/cmake/faiss-config.cmake.in create mode 100644 packages/leann-backend-hnsw/third_party/faiss/cmake/link_to_faiss_lib.cmake create mode 100644 packages/leann-backend-hnsw/third_party/faiss/cmake/thirdparty/fetch_rapids.cmake create mode 100644 packages/leann-backend-hnsw/third_party/faiss/conda/conda_build_config.yaml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/conda/faiss-gpu-cuvs/meta.yaml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/conda/faiss-gpu/meta.yaml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/conda/faiss/build-lib.bat create mode 100644 packages/leann-backend-hnsw/third_party/faiss/conda/faiss/build-pkg.bat create mode 100644 packages/leann-backend-hnsw/third_party/faiss/conda/faiss/meta.yaml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/__init__.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/big_batch_search.py create mode 100755 packages/leann-backend-hnsw/third_party/faiss/contrib/client_server.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/clustering.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/datasets.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/evaluation.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/exhaustive_search.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/factory_tools.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/inspect_tools.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/ivf_tools.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/ondisk.py create mode 100755 packages/leann-backend-hnsw/third_party/faiss/contrib/rpc.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/torch/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/torch/__init__.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/torch/clustering.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/torch/quantization.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/torch_utils.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/contrib/vecs_io.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/H_hnsw_performance_comparison.png create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/H_hnsw_recall_comparison.png create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/build_demo.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/build_demo_sample.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/hnsw_performance_comparison.png create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/hnsw_recall_comparison.png create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/large_graph_simple_build.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/plot_graph_struct.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/plot_graph_struct_big.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/simple_build.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/simple_build_dpr.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/simple_build_nsg.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demo/simple_search.fish create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/README.md create mode 100755 packages/leann-backend-hnsw/third_party/faiss/demos/demo_auto_tune.py create mode 100755 packages/leann-backend-hnsw/third_party/faiss/demos/demo_client_server_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_distributed_kmeans_torch.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_imi_flat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_imi_pq.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_ivfpq_indexing.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_nndescent.cpp create mode 100755 packages/leann-backend-hnsw/third_party/faiss/demos/demo_ondisk_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_qinco.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_residual_quantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_sift1M.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/demo_weighted_kmeans.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/index_pq_flat_separate_codes_from_codebook.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/__init__.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/config_ssnpp.yaml create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/create_sharded_ssnpp_files.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/dataset.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/generate_config.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/offline_ivf.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/run.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/tests/testing_utils.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/offline_ivf/utils.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/rocksdb_ivf/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/rocksdb_ivf/README.md create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/rocksdb_ivf/RocksDBInvertedLists.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/rocksdb_ivf/RocksDBInvertedLists.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/demos/rocksdb_ivf/demo_rocksdb_ivf.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/.flake8 create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/AutoTune.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/AutoTune.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/Clustering.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/Clustering.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IVFlib.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IVFlib.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/Index.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/Index.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/Index2Layer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/Index2Layer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexAdditiveQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexAdditiveQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexAdditiveQuantizerFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexAdditiveQuantizerFastScan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinary.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinary.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryFlat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryFromFloat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryFromFloat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryHNSW.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryHNSW.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryHash.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryHash.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryIVF.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexBinaryIVF.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexFastScan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexFlat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexFlatCodes.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexFlatCodes.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexHNSW.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexHNSW.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIDMap.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIDMap.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVF.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVF.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFAdditiveQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFAdditiveQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFAdditiveQuantizerFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFAdditiveQuantizerFastScan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFFastScan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFFlat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFIndependentQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFIndependentQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFPQ.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFPQ.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFPQFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFPQFastScan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFPQR.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFPQR.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFRaBitQ.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFRaBitQ.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFSpectralHash.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexIVFSpectralHash.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexLSH.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexLSH.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexLattice.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexLattice.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexNNDescent.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexNNDescent.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexNSG.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexNSG.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexNeuralNetCodec.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexNeuralNetCodec.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexPQ.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexPQ.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexPQFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexPQFastScan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexPreTransform.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexPreTransform.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexRaBitQ.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexRaBitQ.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexRefine.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexRefine.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexReplicas.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexReplicas.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexRowwiseMinMax.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexRowwiseMinMax.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexScalarQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexScalarQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexShards.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexShards.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexShardsIVF.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/IndexShardsIVF.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/MatrixStats.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/MatrixStats.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/MetaIndexes.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/MetaIndexes.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/MetricType.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/VectorTransform.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/VectorTransform.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/clone_index.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/clone_index.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/SaDecodeKernels.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/detail/CoarseBitType.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/detail/UintReader.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/docker_dev/Dockerfile create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/factory_tools.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/factory_tools.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/Level2-avx2-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/Level2-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/Level2-neon-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/MinMax-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/MinMaxFP16-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/PQ-avx2-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/PQ-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/cppcontrib/sa_decode/PQ-neon-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuAutoTune.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuAutoTune.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuCloner.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuCloner.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuClonerOptions.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuDistance.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuDistance.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuFaissAssert.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIcmEncoder.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIcmEncoder.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndex.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndex.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexBinaryFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexBinaryFlat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexCagra.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexCagra.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexFlat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVF.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVF.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVFFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVFFlat.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVFPQ.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVFPQ.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndexIVFScalarQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuIndicesOptions.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuResources.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/GpuResources.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/StandardGpuResources.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/StandardGpuResources.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/BinaryDistance.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/BinaryDistance.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/BinaryFlatIndex.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/BinaryFlatIndex.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/BroadcastSum.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/BroadcastSum.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsCagra.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsCagra.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsFlatIndex.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsFlatIndex.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsIVFFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsIVFFlat.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsIVFPQ.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/CuvsIVFPQ.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/Distance.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/Distance.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/DistanceUtils.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/FlatIndex.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/FlatIndex.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/GeneralDistance.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/GpuScalarQuantizer.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFAppend.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFAppend.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFBase.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFBase.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFFlat.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFFlatScan.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFFlatScan.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFInterleaved.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFInterleaved.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFPQ.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFPQ.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFUtils.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFUtils.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFUtilsSelect1.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IVFUtilsSelect2.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IcmEncoder.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IcmEncoder.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IndexUtils.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/IndexUtils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/InterleavedCodes.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/InterleavedCodes.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/L2Norm.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/L2Norm.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/L2Select.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/L2Select.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQCodeDistances-inl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQCodeDistances.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQCodeLoad.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQScanMultiPassNoPrecomputed-inl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQScanMultiPassNoPrecomputed.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQScanMultiPassPrecomputed.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/PQScanMultiPassPrecomputed.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/RemapIndices.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/RemapIndices.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/VectorResidual.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/VectorResidual.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/scan/IVFInterleavedImpl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/impl/scan/IVFInterleavedScanKernelTemplate.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/IndexWrapper-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/IndexWrapper.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfBinaryFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfClustering.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfIVFFlat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfIVFPQ.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfIVFPQAdd.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/PerfSelect.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/WriteIndex.cpp create mode 100755 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/perf/slow.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestCodePacking.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuDistance.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuIndexBinaryFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuIndexCagra.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuIndexFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuIndexIVFFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuIndexIVFPQ.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuIndexIVFScalarQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuMemoryException.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuResidualQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestGpuSelect.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestUtils.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/TestUtils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/demo_ivfpq_indexing_gpu.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/test/torch_test_contrib_gpu.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/BlockSelectFloat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/BlockSelectKernel.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Comparators.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/ConversionOperators.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/CopyUtils.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/CuvsUtils.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/CuvsUtils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/DeviceDefs.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/DeviceTensor-inl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/DeviceTensor.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/DeviceUtils.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/DeviceUtils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/DeviceVector.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Float16.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/HostTensor-inl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/HostTensor.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Limits.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/LoadStoreOperators.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/MathOperators.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/MatrixMult-inl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/MatrixMult.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/MergeNetworkBlock.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/MergeNetworkUtils.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/MergeNetworkWarp.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/NoTypeTensor.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Pair.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/PtxUtils.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/ReductionOperators.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Reductions.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Select.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/StackDeviceMemory.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/StackDeviceMemory.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/StaticUtils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Tensor-inl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Tensor.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/ThrustUtils.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Timer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Timer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/Transpose.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/WarpPackedBits.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/WarpSelectFloat.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/WarpSelectKernel.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/WarpShuffles.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloat1.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloat128.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloat256.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloat32.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloat64.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloatF1024.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloatF2048.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloatF512.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloatT1024.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloatT2048.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectFloatT512.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/blockselect/BlockSelectImpl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloat1.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloat128.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloat256.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloat32.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloat64.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloatF1024.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloatF2048.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloatF512.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloatT1024.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloatT2048.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectFloatT512.cu create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/gpu/utils/warpselect/WarpSelectImpl.cuh create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/AdditiveQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/AdditiveQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/AuxIndexStructures.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/AuxIndexStructures.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/CodePacker.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/CodePacker.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/DistanceComputer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/FaissAssert.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/FaissException.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/FaissException.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/HNSW.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/HNSW.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/HNSW_search.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/HNSW_zmq.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/HNSW_zmq.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/IDSelector.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/IDSelector.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/LocalSearchQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/LocalSearchQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/LookupTableScaler.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/NNDescent.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/NNDescent.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/NSG.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/NSG.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/PolysemousTraining.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/PolysemousTraining.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ProductAdditiveQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ProductAdditiveQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ProductQuantizer-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ProductQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ProductQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/Quantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/RaBitQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/RaBitQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ResidualQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ResidualQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ResultHandler.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ScalarQuantizer.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ScalarQuantizer.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ThreadedIndex-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/ThreadedIndex.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/code_distance/code_distance-avx2.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/code_distance/code_distance-avx512.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/code_distance/code_distance-generic.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/code_distance/code_distance-sve.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/code_distance/code_distance.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/index_read.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/index_read_utils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/index_write.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/io.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/io.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/io_macros.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/kmeans1d.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/kmeans1d.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/lattice_Zn.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/lattice_Zn.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/mapped_io.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/mapped_io.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/maybe_owned_vector.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/platform_macros.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/pq.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/pq.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/pq4_fast_scan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/pq4_fast_scan.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/pq4_fast_scan_search_1.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/pq4_fast_scan_search_qbs.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/residual_quantizer_encode_steps.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/residual_quantizer_encode_steps.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/simd_result_handlers.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/zerocopy_io.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/impl/zerocopy_io.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/index_factory.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/index_factory.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/index_io.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/BlockInvertedLists.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/BlockInvertedLists.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/DirectMap.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/DirectMap.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/InvertedLists.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/InvertedLists.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/InvertedListsIOHook.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/InvertedListsIOHook.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/OnDiskInvertedLists.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/invlists/OnDiskInvertedLists.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/__init__.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/array_conversions.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/class_wrappers.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/extra_wrappers.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/faiss_example_external_module.swig create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/gpu_wrappers.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/loader.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/python_callbacks.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/python_callbacks.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/setup.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/python/swigfaiss.swig create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/AlignedTable.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/Heap.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/Heap.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/NeuralNet.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/NeuralNet.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/WorkerThread.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/WorkerThread.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/approx_topk/approx_topk.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/approx_topk/avx2-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/approx_topk/generic.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/approx_topk/mode.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/approx_topk_hamming/approx_topk_hamming.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/bf16.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_fused/avx512.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_fused/avx512.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_fused/distances_fused.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_fused/distances_fused.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_fused/simdlib_based.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_fused/simdlib_based.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/distances_simd.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/extra_distances-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/extra_distances.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/extra_distances.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/fp16-arm.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/fp16-fp16c.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/fp16-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/fp16.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming_distance/avx2-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming_distance/avx512-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming_distance/common.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming_distance/generic-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming_distance/hamdis-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/hamming_distance/neon-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/ordered_key_value.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/partitioning.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/partitioning.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/prefetch.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/quantize_lut.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/quantize_lut.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/random.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/random.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/simdlib.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/simdlib_avx2.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/simdlib_avx512.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/simdlib_emulated.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/simdlib_neon.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/simdlib_ppc64.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/sorting.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/sorting.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/transpose/transpose-avx2-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/transpose/transpose-avx512-inl.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/utils.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/faiss/utils/utils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/misc/test_blas.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/bench_hnsw.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/bench_no_multithreading_rcq_search.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/bench_scalar_quantizer_accuracy.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/bench_scalar_quantizer_decode.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/bench_scalar_quantizer_distance.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/bench_scalar_quantizer_encode.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/utils.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/perf_tests/utils.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/common_faiss_tests.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/external_module_test.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_NSG_compressed_graph.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_RCQ_cropping.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_approx_topk.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_binary_flat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_callback.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_code_distance.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_common_ivf_empty_index.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_cppcontrib_sa_decode.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_cppcontrib_uintreader.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_dealloc_invlists.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_disable_pq_sdc_tables.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_distances_simd.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_factory_tools.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_fastscan_perf.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_hamming.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_heap.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_hnsw.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_ivf_index.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_ivfpq_codec.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_ivfpq_indexing.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_lowlevel_ivf.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_mem_leak.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_merge.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_mmap.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_omp_threads.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_ondisk_ivf.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_pairs_decoding.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_params_override.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_partitioning.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_pq_encoding.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_simdlib.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_sliding_ivf.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_threaded_index.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_transfer_invlists.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_util.h create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_utils.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/test_zerocopy.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/torch_test_contrib.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tests/torch_test_neural_net.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/1-Flat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/2-IVFFlat.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/3-IVFPQ.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/4-GPU.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/5-Multiple-GPUs.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/6-HNSW.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/7-PQFastScan.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/8-PQFastScanRefine.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/9-RefineComparison.cpp create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/cpp/CMakeLists.txt create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/1-Flat.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/2-IVFFlat.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/3-IVFPQ.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/4-GPU.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/5-Multiple-GPUs.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/7-PQFastScan.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/8-PQFastScanRefine.py create mode 100644 packages/leann-backend-hnsw/third_party/faiss/tutorial/python/9-RefineComparison.py create mode 100644 packages/leann-core/pyproject.toml create mode 100644 packages/leann-core/src/leann/api.py create mode 100644 packages/leann-core/src/leann/interface.py create mode 100644 packages/leann-core/src/leann/registry.py create mode 100644 pyproject.toml create mode 100644 research/micro/analyze_HNSW.py create mode 100644 research/micro/analyze_NSG.py create mode 100644 research/micro/bnbtest.py create mode 100644 research/micro/data/transformer-batching-microbenchmarks.csv create mode 100644 research/micro/degree_distribution_degree_distribution_HNSW_M30.txt.png create mode 100755 research/micro/embedd_micro.py create mode 100644 research/micro/embedd_micro_seq.py create mode 100644 research/micro/int4benchmark.py create mode 100644 research/micro/int8.py create mode 100644 research/micro/llm_compress.py create mode 100644 research/micro/nvmath_test.py create mode 100644 research/micro/result.md create mode 100644 research/micro/save_small_model.py create mode 100644 research/micro/transformer-batching-benchmark.ipynb create mode 100644 research/paper_plot/acc_fig.py create mode 100644 research/paper_plot/analyze_visits.py create mode 100644 research/paper_plot/b.md create mode 100644 research/paper_plot/cache_degree_data.py create mode 100644 research/paper_plot/data/acc.csv create mode 100644 research/paper_plot/data/big_graph_degree_data.npz create mode 100644 research/paper_plot/data/branches.csv create mode 100644 research/paper_plot/data/latency_ablation.csv create mode 100644 research/paper_plot/data/main_latency.csv create mode 100644 research/paper_plot/data/main_latency_small.csv create mode 100644 research/paper_plot/data/ram_storage.csv create mode 100644 research/paper_plot/data/swithc_e2e.csv create mode 100644 research/paper_plot/data/vary_cache.csv create mode 100644 research/paper_plot/disk_cache.py create mode 100644 research/paper_plot/figures/H_hnsw_performance_comparison.pdf create mode 100644 research/paper_plot/figures/H_hnsw_performance_comparison.png create mode 100644 research/paper_plot/figures/H_hnsw_recall_comparison.pdf create mode 100644 research/paper_plot/figures/H_hnsw_recall_comparison.png create mode 100644 research/paper_plot/figures/accuracy_comparison.pdf create mode 100644 research/paper_plot/figures/degree_distribution.pdf create mode 100644 research/paper_plot/figures/degree_distribution_small.pdf create mode 100644 research/paper_plot/figures/disk_cache_latency.pdf create mode 100644 research/paper_plot/figures/figure15.pdf create mode 100644 research/paper_plot/figures/gpu_throughput_vs_batch_size.pdf create mode 100644 research/paper_plot/figures/hnsw_visit_count_per_degree_corrected.pdf create mode 100644 research/paper_plot/figures/hnsw_visit_count_per_degree_corrected.png create mode 100644 research/paper_plot/figures/latency_speedup.pdf create mode 100644 research/paper_plot/figures/main_exp_fig_1.pdf create mode 100644 research/paper_plot/figures/main_exp_fig_2.pdf create mode 100644 research/paper_plot/figures/plot1_em_f1.pdf create mode 100644 research/paper_plot/figures/plot2_latency.pdf create mode 100644 research/paper_plot/figures/ram_storage_double_column.pdf create mode 100644 research/paper_plot/figures/sparse_a2a_branches.pdf create mode 100644 research/paper_plot/figures/speed_A10_revised.pdf create mode 100644 research/paper_plot/figures/speed_MAC_revised.pdf create mode 100644 research/paper_plot/gpu_under.py create mode 100644 research/paper_plot/graph_dist.py create mode 100644 research/paper_plot/graph_pruning_ablation.py create mode 100644 research/paper_plot/main_exp.py create mode 100644 research/paper_plot/main_latency.py create mode 100644 research/paper_plot/main_memory_storage.py create mode 100644 research/paper_plot/recompute_bottle.py create mode 100644 research/paper_plot/small_emb.py create mode 100644 research/paper_plot/speed_ablation.py create mode 100644 research/utils/.gitignore create mode 100644 research/utils/analyze_diskann_graph.cpp create mode 100644 research/utils/analyze_top3_positions.py create mode 100644 research/utils/debug_embedd.py create mode 100755 research/utils/dedup_eval_data.py create mode 100755 research/utils/deduplication.py create mode 100644 research/utils/demo_reader.cpp create mode 100755 research/utils/diskann_degree_distribution.fish create mode 100644 research/utils/download_mac.fish create mode 100644 research/utils/embedding_comp.py create mode 100644 research/utils/evaluate_results.py create mode 100644 research/utils/experiment.md create mode 100755 research/utils/extract_results.py create mode 100644 research/utils/faiss.md create mode 100644 research/utils/find_probe.py create mode 100644 research/utils/generate_dataset_cache.fish create mode 100644 research/utils/mem_monitor.fish create mode 100644 research/utils/modelfile.fish create mode 100644 research/utils/parse_logs_draw_skip_reorder.py create mode 100644 research/utils/plot_degree_distribution.py create mode 100644 research/utils/prepare_query_files.py create mode 100644 research/utils/run_bm25.fish create mode 100644 research/utils/run_recall_experiment.py create mode 100644 research/utils/s3.md create mode 100644 research/utils/seperate_hnsw_flat.py create mode 100644 research/utils/simple_search.fish create mode 100755 research/utils/subsample_data_new.py create mode 100755 research/utils/timing.py create mode 100644 tests/sanity_checks/README.md create mode 100644 tests/sanity_checks/test_distance_functions.py create mode 100644 tests/sanity_checks/test_l2_verification.py create mode 100644 tests/sanity_checks/test_sanity_check.py create mode 100644 uv.lock diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..898ed5c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +paper_plot/data/big_graph_degree_data.npz filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..0ad5a54 --- /dev/null +++ b/.gitignore @@ -0,0 +1,72 @@ +raw_data/ +scaling_out/ +scaling_out_old/ +sanity_check/ +demo/indices/ +# .vscode/ +*.log +*pycache* +outputs/ +*.pkl +.history/ +scripts/ +lm_eval.egg-info/ +demo/experiment_results/**/*.json +*.jsonl +*.sh +*.txt +!CMakeLists.txt +latency_breakdown*.json +experiment_results/eval_results/diskann/*.json +aws/ +.venv/ +.cursor/rules/ +*.egg-info/ +skip_reorder_comparison/ +analysis_results/ +build/ +.cache/ +nprobe_logs/ +micro/results +micro/contriever-INT8 +*.qdstrm +benchmark_results/ +results/ +frac_*.png +final_in_*.png +embedding_comparison_results/ +*.ind +*.gz +*.fvecs +*.ivecs +*.index +*.bin + +read_graph +analyze_diskann_graph +degree_distribution.png +micro/degree_distribution.png + +policy_results_* +results_*/ +experiment_results/ +.DS_Store + +# The above are inherited from old Power RAG repo + +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv +.env + +test_indices*/ +test_*.py +!tests/** +packages/leann-backend-diskann/third_party/DiskANN/_deps/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8c49b3e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "packages/leann-backend-diskann/third_party/DiskANN"] + path = packages/leann-backend-diskann/third_party/DiskANN + url = https://github.com/yichuan520030910320/DiskANN.git +[submodule "packages/leann-backend-hnsw/third_party/faiss"] + path = packages/leann-backend-hnsw/third_party/faiss + url = https://github.com/yichuan520030910320/faiss.git diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..2c07333 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..e793901 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,9 @@ +{ + "recommendations": [ + "llvm-vs-code-extensions.vscode-clangd", + "ms-python.python", + "ms-vscode.cmake-tools", + "vadimcn.vscode-lldb", + "eamodio.gitlens", + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100755 index 0000000..5f96fb2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,283 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + // new emdedder + { + "name": "New Embedder", + "type": "debugpy", + "request": "launch", + "program": "demo/main.py", + "console": "integratedTerminal", + "args": [ + "--search", + "--use-original", + "--domain", + "dpr", + "--nprobe", + "5000", + "--load", + "flat", + "--embedder", + "intfloat/multilingual-e5-small" + ] + } + //python /home/ubuntu/Power-RAG/faiss/demo/simple_build.py + { + "name": "main.py", + "type": "debugpy", + "request": "launch", + "program": "demo/main.py", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "--query", + "1000", + "--load", + "bm25" + ] + }, + { + "name": "Simple Build", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/.venv/bin/python", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "faiss/demo/simple_build.py" + ], + "env": { + "LD_PRELOAD": "/lib/x86_64-linux-gnu/libmkl_core.so:/lib/x86_64-linux-gnu/libmkl_intel_thread.so:/lib/x86_64-linux-gnu/libmkl_intel_lp64.so:/lib/x86_64-linux-gnu/libiomp5.so" + } + }, + //# Fix for Intel MKL error + //export LD_PRELOAD=/lib/x86_64-linux-gnu/libmkl_core.so:/lib/x86_64-linux-gnu/libmkl_intel_thread.so:/lib/x86_64-linux-gnu/libmkl_intel_lp64.so:/lib/x86_64-linux-gnu/libiomp5.so + //python faiss/demo/build_demo.py + { + "name": "Build Demo", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/.venv/bin/python", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "faiss/demo/build_demo.py" + ], + "env": { + "LD_PRELOAD": "/lib/x86_64-linux-gnu/libmkl_core.so:/lib/x86_64-linux-gnu/libmkl_intel_thread.so:/lib/x86_64-linux-gnu/libmkl_intel_lp64.so:/lib/x86_64-linux-gnu/libiomp5.so" + } + }, + { + "name": "DiskANN Serve", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/.venv/bin/python", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "demo/main.py", + "--mode", + "serve", + "--engine", + "sglang", + "--load-indices", + "diskann", + "--domain", + "rpj_wiki", + "--lazy-load", + "--recompute-beighbor-embeddings", + "--port", + "8082", + "--diskann-search-memory-maximum", + "2", + "--diskann-graph", + "240", + "--search-only" + ], + "env": { + "PYTHONPATH": "${workspaceFolder}/faiss_repo/build/faiss/python:$PYTHONPATH" + }, + "preLaunchTask": "CMake: build", + }, + { + "name": "DiskANN Serve MAC", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/.venv/bin/python", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "demo/main.py", + "--mode", + "serve", + "--engine", + "ollama", + "--load-indices", + "diskann", + "--domain", + "rpj_wiki", + "--lazy-load", + "--recompute-beighbor-embeddings" + ], + "preLaunchTask": "CMake: build", + "env": { + "KMP_DUPLICATE_LIB_OK": "TRUE", + "OMP_NUM_THREADS": "1", + "MKL_NUM_THREADS": "1", + "DYLD_INSERT_LIBRARIES": "/Users/ec2-user/Power-RAG/.venv/lib/python3.10/site-packages/torch/lib/libomp.dylib", + "KMP_BLOCKTIME": "0" + } + }, + { + "name": "Python Debugger: Current File with Arguments", + "type": "debugpy", + "request": "launch", + "program": "ric/main_ric.py", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "--config-name", + "${input:configSelection}" + ], + "justMyCode": false + }, + //python ./demo/validate_equivalence.py sglang + { + "name": "Validate Equivalence", + "type": "debugpy", + "request": "launch", + "program": "demo/validate_equivalence.py", + "console": "integratedTerminal", + "args": [ + "sglang" + ], + }, + //python demo/retrieval_demo.py --engine sglang --skip-embeddings --domain dpr --load-indices flat ivf_flat + { + "name": "Retrieval Demo", + "type": "debugpy", + "request": "launch", + "program": "demo/retrieval_demo.py", + "console": "integratedTerminal", + "args": [ + "--engine", + "vllm", + "--skip-embeddings", + "--domain", + "dpr", + "--load-indices", + // "flat", + "ivf_flat" + ], + }, + //python demo/retrieval_demo.py --engine sglang --skip-embeddings --domain dpr --load-indices diskann --hnsw-M 64 --hnsw-efConstruction 150 --hnsw-efSearch 128 --hnsw-sq-bits 8 + { + "name": "Retrieval Demo DiskANN", + "type": "debugpy", + "request": "launch", + "program": "demo/retrieval_demo.py", + "console": "integratedTerminal", + "args": [ + "--engine", + "sglang", + "--skip-embeddings", + "--domain", + "dpr", + "--load-indices", + "diskann", + "--hnsw-M", + "64", + "--hnsw-efConstruction", + "150", + "--hnsw-efSearch", + "128", + "--hnsw-sq-bits", + "8" + ], + }, + { + "name": "Find Probe", + "type": "debugpy", + "request": "launch", + "program": "find_probe.py", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + }, + { + "name": "Python: Attach", + "type": "debugpy", + "request": "attach", + "processId": "${command:pickProcess}", + "justMyCode": true + }, + { + "name": "Edge RAG", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/.venv/bin/python", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "edgerag_demo.py" + ], + "env": { + "LD_PRELOAD": "/lib/x86_64-linux-gnu/libiomp5.so /lib/x86_64-linux-gnu/libmkl_core.so /lib/x86_64-linux-gnu/libmkl_intel_lp64.so /lib/x86_64-linux-gnu/libmkl_intel_thread.so", + "MKL_NUM_THREADS": "1", + "OMP_NUM_THREADS": "1", + } + }, + { + "name": "Launch Embedding Server", + "type": "debugpy", + "request": "launch", + "program": "demo/embedding_server.py", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "--domain", + "rpj_wiki", + "--zmq-port", + "5556", + ] + }, + { + "name": "HNSW Serve", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/.venv/bin/python", + "console": "integratedTerminal", + "cwd": "${workspaceFolder}", + "args": [ + "demo/main.py", + "--domain", + "rpj_wiki", + "--load", + "hnsw", + "--mode", + "serve", + "--search", + "--skip-pa", + "--recompute", + "--hnsw-old" + ], + "env": { + "LD_PRELOAD": "/lib/x86_64-linux-gnu/libmkl_core.so:/lib/x86_64-linux-gnu/libmkl_intel_thread.so:/lib/x86_64-linux-gnu/libmkl_intel_lp64.so:/lib/x86_64-linux-gnu/libiomp5.so" + } + }, + ], + "inputs": [ + { + "id": "configSelection", + "type": "pickString", + "description": "Select a configuration", + "options": [ + "example_config", + "vllm_gritlm" + ], + "default": "example_config" + } + ], +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100755 index 0000000..e2b5794 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,43 @@ +{ + "python.analysis.extraPaths": [ + "./sglang_repo/python" + ], + "cmake.sourceDirectory": "${workspaceFolder}/DiskANN", + "cmake.configureArgs": [ + "-DPYBIND=True", + "-DUPDATE_EDITABLE_INSTALL=ON", + ], + "cmake.environment": { + "PATH": "/Users/ec2-user/Power-RAG/.venv/bin:${env:PATH}" + }, + "cmake.buildDirectory": "${workspaceFolder}/build", + "files.associations": { + "*.tcc": "cpp", + "deque": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "map": "cpp", + "unordered_set": "cpp", + "atomic": "cpp", + "inplace_vector": "cpp", + "*.ipp": "cpp", + "forward_list": "cpp", + "list": "cpp", + "any": "cpp", + "system_error": "cpp", + "__hash_table": "cpp", + "__split_buffer": "cpp", + "__tree": "cpp", + "ios": "cpp", + "set": "cpp", + "__string": "cpp", + "string_view": "cpp", + "ranges": "cpp", + "iosfwd": "cpp" + }, + "lldb.displayFormat": "auto", + "lldb.showDisassembly": "auto", + "lldb.dereferencePointers": true, + "lldb.consoleMode": "commands", +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..4edc48b --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,16 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "cmake", + "label": "CMake: build", + "command": "build", + "targets": [ + "all" + ], + "group": "build", + "problemMatcher": [], + "detail": "CMake template build task" + } + ] +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..0419215 --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2024 Rulin Shao + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100755 index 0000000..5f85426 --- /dev/null +++ b/README.md @@ -0,0 +1,292 @@ +# 🚀 LEANN: A Low-Storage Vector Index + +

+ Python 3.9+ + MIT License + PRs Welcome + Platform +

+ +

+ âš¡ Real-time embedding computation for large-scale RAG on consumer hardware +

+ +

+ Quick Start • + Features • + Benchmarks • + Documentation • + Paper +

+ +--- + +## 🌟 What is Leann? + +**Leann** revolutionizes Retrieval-Augmented Generation (RAG) by eliminating the storage bottleneck of traditional vector databases. Instead of pre-computing and storing billions of embeddings, Leann dynamically computes embeddings at query time using highly optimized graph-based search algorithms. + +### 🎯 Why Leann? + +Traditional RAG systems face a fundamental trade-off: +- **💾 Storage**: Storing embeddings for millions of documents requires massive disk space +- **🔄 Freshness**: Pre-computed embeddings become stale when documents change +- **💰 Cost**: Vector databases are expensive to scale + +**Leann solves this by:** +- ✅ **Zero embedding storage** - Only graph structure is persisted +- ✅ **Real-time computation** - Embeddings computed on-demand with ms latency +- ✅ **Memory efficient** - Runs on consumer hardware (8GB RAM) +- ✅ **Always fresh** - No stale embeddings, ever + +## 🚀 Quick Start + +### Installation + +```bash +git clone https://github.com/yichuan520030910320/Power-RAG.git leann +cd leann +uv sync +``` + +### 30-Second Example + +```python +from leann.api import LeannBuilder, LeannSearcher + +# 1. Build index (no embeddings stored!) +builder = LeannBuilder(backend_name="diskann") +builder.add_text("Python is a powerful programming language") +builder.add_text("Machine learning transforms industries") +builder.add_text("Neural networks process complex data") +builder.build_index("knowledge.leann") + +# 2. Search with real-time embeddings +searcher = LeannSearcher("knowledge.leann") +results = searcher.search("programming languages", top_k=2) + +for result in results: + print(f"Score: {result['score']:.3f} - {result['text']}") +``` + +### Run the Demo + +```bash +uv run examples/document_search.py +``` + +**PDF RAG Demo (using LlamaIndex for document parsing and Leann for indexing/search)** + +This demo showcases how to build a RAG system for PDF documents using Leann. +1. Place your PDF files (and other supported formats like .docx, .pptx, .xlsx) into the `examples/data/` directory. +2. Ensure you have an `OPENAI_API_KEY` set in your environment variables or in a `.env` file for the LLM to function. + +```bash +uv run examples/main_cli_example.py +``` + +## ✨ Features + +### 🔥 Core Features +- **📊 Multiple Distance Functions**: L2, Cosine, MIPS (Maximum Inner Product Search) +- **ðŸ—ï¸ Pluggable Backends**: DiskANN, HNSW/FAISS with unified API +- **🔄 Real-time Embeddings**: Dynamic computation using optimized ZMQ servers +- **📈 Scalable Architecture**: Handles millions of documents on consumer hardware +- **🎯 Graph Pruning**: Advanced techniques for memory-efficient search + +### ðŸ› ï¸ Technical Highlights +- **Zero-copy operations** for maximum performance +- **SIMD-optimized** distance computations (AVX2/AVX512) +- **Async embedding pipeline** with batched processing +- **Memory-mapped indices** for fast startup +- **Recompute mode** for highest accuracy scenarios + +### 🎨 Developer Experience +- **Simple Python API** - Get started in minutes +- **Extensible backend system** - Easy to add new algorithms +- **Comprehensive examples** - From basic usage to production deployment +- **Rich debugging tools** - Built-in performance profiling + +## 📊 Benchmarks + +### Memory Usage Comparison + +| System | 1M Documents | 10M Documents | 100M Documents | +|--------|-------------|---------------|----------------| +| Traditional Vector DB | 3.1 GB | 31 GB | 310 GB | +| **Leann** | **180 MB** | **1.2 GB** | **8.4 GB** | +| **Reduction** | **94.2%** | **96.1%** | **97.3%** | + +### Query Performance + +| Backend | Index Size | Query Time | Recall@10 | +|---------|------------|------------|-----------| +| DiskANN | 1M docs | 12ms | 0.95 | +| DiskANN + Recompute | 1M docs | 145ms | 0.98 | +| HNSW | 1M docs | 8ms | 0.93 | + +*Benchmarks run on AMD Ryzen 7 with 32GB RAM* + +## ðŸ—ï¸ Architecture + +``` +┌─────────────────┠┌──────────────────┠┌─────────────────┠+│ Query Text │───▶│ Embedding │───▶│ Graph-based │ +│ │ │ Computation │ │ Search │ +└─────────────────┘ └──────────────────┘ └─────────────────┘ + │ │ + â–¼ â–¼ + ┌──────────────┠┌──────────────┠+ │ ZMQ Server │ │ Pruned Graph │ + │ (Cached) │ │ Index │ + └──────────────┘ └──────────────┘ +``` + +### Key Components + +1. **🧠 Embedding Engine**: Real-time transformer inference with caching +2. **📊 Graph Index**: Memory-efficient navigation structures +3. **🔄 Search Coordinator**: Orchestrates embedding + graph search +4. **âš¡ Backend Adapters**: Pluggable algorithm implementations + +## 🎓 Supported Models & Backends + +### 🤖 Embedding Models +- **sentence-transformers/all-mpnet-base-v2** (default) +- **sentence-transformers/all-MiniLM-L6-v2** (lightweight) +- Any HuggingFace sentence-transformer model +- Custom model support via API + +### 🔧 Search Backends +- **DiskANN**: Microsoft's billion-scale ANN algorithm +- **HNSW**: Hierarchical Navigable Small World graphs +- **Coming soon**: ScaNN, Faiss-IVF, NGT + +### 📠Distance Functions +- **L2**: Euclidean distance for precise similarity +- **Cosine**: Angular similarity for normalized vectors +- **MIPS**: Maximum Inner Product Search for recommendation systems + +## 🔬 Paper + +If you find Leann useful, please cite: + +**[LEANN: A Low-Storage Vector Index](https://arxiv.org/abs/2506.08276)** + +```bibtex +@misc{wang2025leannlowstoragevectorindex, + title={LEANN: A Low-Storage Vector Index}, + author={Yichuan Wang and Shu Liu and Zhifei Li and Yongji Wu and Ziming Mao and Yilong Zhao and Xiao Yan and Zhiying Xu and Yang Zhou and Ion Stoica and Sewon Min and Matei Zaharia and Joseph E. Gonzalez}, + year={2025}, + eprint={2506.08276}, + archivePrefix={arXiv}, + primaryClass={cs.DB}, + url={https://arxiv.org/abs/2506.08276}, +} +``` + +## 🌠Use Cases + +### 💼 Enterprise RAG +```python +# Handle millions of documents with limited resources +builder = LeannBuilder( + backend_name="diskann", + distance_metric="cosine", + graph_degree=64, + memory_budget="4GB" +) +``` + +### 🔬 Research & Experimentation +```python +# Quick prototyping with different algorithms +for backend in ["diskann", "hnsw"]: + searcher = LeannSearcher(index_path, backend=backend) + evaluate_recall(searcher, queries, ground_truth) +``` + +### 🚀 Real-time Applications +```python +# Sub-second response times +chat = LeannChat("knowledge.leann") +response = chat.ask("What is quantum computing?") +# Returns in <100ms with recompute mode +``` + +## 🤠Contributing + +We welcome contributions! Leann is built by the community, for the community. + +### Ways to Contribute +- 🛠**Bug Reports**: Found an issue? Let us know! +- 💡 **Feature Requests**: Have an idea? We'd love to hear it! +- 🔧 **Code Contributions**: PRs welcome for all skill levels +- 📖 **Documentation**: Help make Leann more accessible +- 🧪 **Benchmarks**: Share your performance results + +### Development Setup +```bash +git clone https://github.com/yourname/leann +cd leann +uv sync --dev +uv run pytest tests/ +``` + +### Quick Tests +```bash +# Sanity check all distance functions +uv run python tests/sanity_checks/test_distance_functions.py + +# Verify L2 implementation +uv run python tests/sanity_checks/test_l2_verification.py +``` + +## 📈 Roadmap + +### 🎯 Q1 2024 +- [x] DiskANN backend with MIPS/L2/Cosine support +- [x] HNSW backend integration +- [x] Real-time embedding pipeline +- [x] Memory-efficient graph pruning + +### 🚀 Q2 2024 +- [ ] Distributed search across multiple nodes +- [ ] ScaNN backend support +- [ ] Advanced caching strategies +- [ ] Kubernetes deployment guides + +### 🌟 Q3 2024 +- [ ] GPU-accelerated embedding computation +- [ ] Approximate distance functions +- [ ] Integration with LangChain/LlamaIndex +- [ ] Visual similarity search + +## 💬 Community + +Join our growing community of researchers and engineers! + +- 🦠**Twitter**: [@LeannAI](https://twitter.com/LeannAI) +- 💬 **Discord**: [Join our server](https://discord.gg/leann) +- 📧 **Email**: leann@yourcompany.com +- 🙠**GitHub Discussions**: [Ask questions here](https://github.com/yourname/leann/discussions) + +## 📄 License + +MIT License - see [LICENSE](LICENSE) for details. + +## 🙠Acknowledgments + +- **Microsoft Research** for the DiskANN algorithm +- **Meta AI** for FAISS and optimization insights +- **HuggingFace** for the transformer ecosystem +- **Our amazing contributors** who make this possible + +--- + +

+ â­ Star us on GitHub if Leann is useful for your research or applications! +

+ +

+ Made with â¤ï¸ by the Leann team +

\ No newline at end of file diff --git a/demo.ipynb b/demo.ipynb new file mode 100644 index 0000000..a27c93b --- /dev/null +++ b/demo.ipynb @@ -0,0 +1,248 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO: LeannBuilder initialized with 'diskann' backend.\n", + "INFO: Computing embeddings for 6 chunks using 'sentence-transformers/all-mpnet-base-v2'...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Batches: 100%|██████████| 1/1 [00:00<00:00, 77.61it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO: Building DiskANN index for 6 vectors with metric Metric.INNER_PRODUCT...\n", + "Using Inner Product search, so need to pre-process base data into temp file. Please ensure there is additional (n*(d+1)*4) bytes for storing pre-processed base vectors, apart from the interim indices created by DiskANN and the final index.\n", + "Pre-processing base file by adding extra coordinate\n", + "✅ DiskANN index built successfully at 'knowledge'\n", + "Writing bin: knowledge_disk.index_max_base_norm.bin\n", + "bin: #pts = 1, #dims = 1, size = 12B\n", + "Finished writing bin.\n", + "Time for preprocessing data for inner product: 0.000165 seconds\n", + "Reading max_norm_of_base from knowledge_disk.index_max_base_norm.bin\n", + "Reading bin file knowledge_disk.index_max_base_norm.bin ...\n", + "Opening bin file knowledge_disk.index_max_base_norm.bin... \n", + "Metadata: #pts = 1, #dims = 1...\n", + "done.\n", + "max_norm_of_base: 1\n", + "! Using prepped_base file at knowledge_prepped_base.bin\n", + "Starting index build: R=32 L=64 Query RAM budget: 4.02653e+09 Indexing ram budget: 8 T: 8\n", + "getting bin metadata\n", + "Time for getting bin metadata: 0.000008 seconds\n", + "Compressing 769-dimensional data into 512 bytes per vector.\n", + "Opened: knowledge_prepped_base.bin, size: 18464, cache_size: 18464\n", + "Training data with 6 samples loaded.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 256, #dims = 769...\n", + "done.\n", + "PQ pivot file exists. Not generating again\n", + "Opened: knowledge_prepped_base.bin, size: 18464, cache_size: 18464\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 4, #dims = 1...\n", + "done.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 256, #dims = 769...\n", + "done.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 769, #dims = 1...\n", + "done.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 513, #dims = 1...\n", + "done.\n", + "Loaded PQ pivot information\n", + "Processing points [0, 6)...done.\n", + "Time for generating quantized data: 0.023918 seconds\n", + "Full index fits in RAM budget, should consume at most 2.03973e-05GiBs, so building in one shot\n", + "L2: Using AVX2 distance computation DistanceL2Float\n", + "Passed, empty search_params while creating index config\n", + "Using only first 6 from file.. \n", + "Starting index build with 6 points... \n", + "0% of index build completed.Starting final cleanup..done. Link time: 9e-05s\n", + "Index built with degree: max:5 avg:5 min:5 count(deg<2):0\n", + "Not saving tags as they are not enabled.\n", + "Time taken for save: 0.000178s.\n", + "Time for building merged vamana index: 0.000579 seconds\n", + "Opened: knowledge_prepped_base.bin, size: 18464, cache_size: 18464\n", + "Vamana index file size=168\n", + "Opened: knowledge_disk.index, cache_size: 67108864\n", + "medoid: 0B\n", + "max_node_len: 3100B\n", + "nnodes_per_sector: 1B\n", + "# sectors: 6\n", + "Sector #0written\n", + "Finished writing 28672B\n", + "Writing bin: knowledge_disk.index\n", + "bin: #pts = 9, #dims = 1, size = 80B\n", + "Finished writing bin.\n", + "Output disk index file written to knowledge_disk.index\n", + "Finished writing 28672B\n", + "Time for generating disk layout: 0.043488 seconds\n", + "Opened: knowledge_prepped_base.bin, size: 18464, cache_size: 18464\n", + "Loading base knowledge_prepped_base.bin. #points: 6. #dim: 769.\n", + "Wrote 1 points to sample file: knowledge_sample_data.bin\n", + "Indexing time: 0.0684344\n", + "INFO: Leann metadata saved to knowledge.leann.meta.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "Opened file : knowledge_disk.index\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Since data is floating point, we assume that it has been appropriately pre-processed (normalization for cosine, and convert-to-l2 by adding extra dimension for MIPS). So we shall invoke an l2 distance function.\n", + "L2: Using AVX2 distance computation DistanceL2Float\n", + "L2: Using AVX2 distance computation DistanceL2Float\n", + "Before index load\n", + "✅ DiskANN index loaded successfully.\n", + "INFO: LeannSearcher initialized with 'diskann' backend using index 'knowledge.leann'.\n", + "Reading bin file knowledge_pq_compressed.bin ...\n", + "Opening bin file knowledge_pq_compressed.bin... \n", + "Metadata: #pts = 6, #dims = 512...\n", + "done.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 4, #dims = 1...\n", + "done.\n", + "Offsets: 4096 791560 794644 796704\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 256, #dims = 769...\n", + "done.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 769, #dims = 1...\n", + "done.\n", + "Reading bin file knowledge_pq_pivots.bin ...\n", + "Opening bin file knowledge_pq_pivots.bin... \n", + "Metadata: #pts = 513, #dims = 1...\n", + "done.\n", + "Loaded PQ Pivots: #ctrs: 256, #dims: 769, #chunks: 512\n", + "Loaded PQ centroids and in-memory compressed vectors. #points: 6 #dim: 769 #aligned_dim: 776 #chunks: 512\n", + "Loading index metadata from knowledge_disk.index\n", + "Disk-Index File Meta-data: # nodes per sector: 1, max node len (bytes): 3100, max node degree: 5\n", + "Disk-Index Meta: nodes per sector: 1, max node len: 3100, max node degree: 5\n", + "Setting up thread-specific contexts for nthreads: 8\n", + "allocating ctx: 0x78348f4de000 to thread-id:132170359560000\n", + "allocating ctx: 0x78348f4cd000 to thread-id:132158431693760\n", + "allocating ctx: 0x78348f4bc000 to thread-id:132158442179392\n", + "allocating ctx: 0x78348f4ab000 to thread-id:132158421208128\n", + "allocating ctx: 0x78348f49a000 to thread-id:132158452665024\n", + "allocating ctx: 0x78348f489000 to thread-id:132158389751232\n", + "allocating ctx: 0x78348f478000 to thread-id:132158410722496\n", + "allocating ctx: 0x78348f467000 to thread-id:132158400236864\n", + "Loading centroid data from medoids vector data of 1 medoid(s)\n", + "Reading bin file knowledge_disk.index_max_base_norm.bin ...\n", + "Opening bin file knowledge_disk.index_max_base_norm.bin... \n", + "Metadata: #pts = 1, #dims = 1...\n", + "done.\n", + "Setting re-scaling factor of base vectors to 1\n", + "load_from_separate_paths done.\n", + "Reading (with alignment) bin file knowledge_sample_data.bin ...Metadata: #pts = 1, #dims = 769, aligned_dim = 776... allocating aligned memory of 3104 bytes... done. Copying data to mem_aligned buffer... done.\n", + "reserve ratio: 1\n", + "Graph traversal completed, hops: 3\n", + "Loading the cache list into memory....done.\n", + "After index load\n", + "Clearing scratch\n", + "INFO: Computing embeddings for 1 chunks using 'sentence-transformers/all-mpnet-base-v2'...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Batches: 100%|██████████| 1/1 [00:00<00:00, 92.66it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Score: -0.481 - C++ is a powerful programming language\n", + "Score: -1.049 - Java is a powerful programming language\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "reserve ratio: 1\n", + "Graph traversal completed, hops: 3\n" + ] + } + ], + "source": [ + "from leann.api import LeannBuilder, LeannSearcher\n", + "import leann_backend_diskann\n", + "# 1. Build index (no embeddings stored!)\n", + "builder = LeannBuilder(backend_name=\"diskann\")\n", + "builder.add_text(\"Python is a powerful programming language\")\n", + "builder.add_text(\"Machine learning transforms industries\") \n", + "builder.add_text(\"Neural networks process complex data\")\n", + "builder.add_text(\"Java is a powerful programming language\")\n", + "builder.add_text(\"C++ is a powerful programming language\")\n", + "builder.add_text(\"C# is a powerful programming language\")\n", + "builder.build_index(\"knowledge.leann\")\n", + "\n", + "# 2. Search with real-time embeddings\n", + "searcher = LeannSearcher(\"knowledge.leann\")\n", + "results = searcher.search(\"C++ programming languages\", top_k=2)\n", + "\n", + "for result in results:\n", + " print(f\"Score: {result['score']:.3f} - {result['text']}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/data/2506.08276v1.pdf b/examples/data/2506.08276v1.pdf new file mode 100644 index 0000000..2756eef --- /dev/null +++ b/examples/data/2506.08276v1.pdf @@ -0,0 +1,7905 @@ +%PDF-1.5 +%¿÷¢þ +1 0 obj +<< /Lang (en) /Metadata 3 0 R /Names 4 0 R /OpenAction 5 0 R /Outlines 6 0 R /PageMode /UseOutlines /Pages 7 0 R /Type /Catalog /ViewerPreferences << /DisplayDocTitle true >> >> +endobj +2 0 obj +<< /Author (Yichuan Wang; Shu Liu; Zhifei Li; Yongji Wu; Ziming Mao; Yilong Zhao; Xiao Yan; Zhiying Xu; Yang Zhou; Ion Stoica; Sewon Min; Matei Zaharia; Joseph E. Gonzalez) /CreationDate (D:20250611152430+00'00') /Creator (arXiv GenPDF \(tex2pdf:\)) /DOI (https://doi.org/10.48550/arXiv.2506.08276) /Keywords () /License (http://arxiv.org/licenses/nonexclusive-distrib/1.0/) /ModDate (D:20250611152430+00'00') /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.25 \(TeX Live 2023\) kpathsea version 6.3.5) /Producer (pikepdf 8.15.1) /Title (LEANN: A Low-Storage Vector Index) /Trapped /False /arXivID (https://arxiv.org/abs/2506.08276v1) >> +endobj +3 0 obj +<< /Subtype /XML /Type /Metadata /Length 13436 >> +stream + + + + + + + + Adobe PDF Schema + pdf + http://ns.adobe.com/pdf/1.3/ + + + + Trapped + Text + internal + Indication if the document has been modified to include trapping information + + + + + + XMP Media Management Schema + xmpMM + http://ns.adobe.com/xap/1.0/mm/ + + + + DocumentID + URI + internal + UUID based identifier for all versions and renditions of a document + + + InstanceID + URI + internal + UUID based identifier for specific incarnation of a document + + + VersionID + Text + internal + Document version identifier + + + RenditionClass + RenditionClass + internal + The manner in which a document is rendered + + + + + + PRISM Basic Metadata + prism + http://prismstandard.org/namespaces/basic/3.0/ + + + + complianceProfile + Text + internal + PRISM specification compliance profile to which this document adheres + + + publicationName + Text + external + Publication name + + + aggregationType + Text + external + Publication type + + + bookEdition + Text + external + Edition of the book in which the document was published + + + volume + Text + external + Publication volume number + + + number + Text + external + Publication issue number within a volume + + + pageRange + Text + external + Page range for the document within the print version of its publication + + + issn + Text + external + ISSN for the printed publication in which the document was published + + + eIssn + Text + external + ISSN for the electronic publication in which the document was published + + + isbn + Text + external + ISBN for the publication in which the document was published + + + doi + Text + external + Digital Object Identifier for the document + + + url + URL + external + URL at which the document can be found + + + byteCount + Integer + internal + Approximate file size in octets + + + pageCount + Integer + internal + Number of pages in the print version of the document + + + subtitle + Text + external + Document's subtitle + + + + + + + pikepdf 8.15.1 + + 1.5 + application/pdf + + LEANN: A Low-Storage Vector Index + arXiv + + + 2025-06-11T15:24:30Z + + + + + Text + + + + Yichuan WangShu LiuZhifei LiYongji WuZiming MaoYilong ZhaoXiao YanZhiying XuYang ZhouIon StoicaSewon MinMatei ZahariaJoseph E. Gonzalez + main.tex + + + en + + + https://arxiv.org/abs/2506.08276v1 + 2025-06-11T15:24:30Z + 2025-06-11T15:24:30Z + 2025-06-11T15:24:36.250178+00:00 + arXiv GenPDF (tex2pdf:) + uuid:75fd75f2-b182-4bbb-ac9b-620a88d7aeae + uuid:8d18d13e-fdc9-4541-91dc-efd13959bb18 + 1 + default + three + Proceedings of Make sure to enter the correct conference title from your rights confirmation email (Conference acronym 'XX) + book + 1 + 1 + XXXXXXX.XXXXXXX + 15 + 15 + + http://arxiv.org/licenses/nonexclusive-distrib/1.0/cs.DBcs.LG + + + + +endstream +endobj +4 0 obj +<< /Dests 8 0 R >> +endobj +5 0 obj +<< /D [ 9 0 R /Fit ] /S /GoTo >> +endobj +6 0 obj +<< /Count 11 /First 10 0 R /Last 11 0 R /Type /Outlines >> +endobj +7 0 obj +<< /Count 15 /Kids [ 12 0 R 13 0 R 14 0 R ] /Type /Pages >> +endobj +8 0 obj +<< /Kids [ 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R ] /Limits [ (ALG@line.1) (table.caption.9) ] >> +endobj +9 0 obj +<< /Annots [ 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R ] /Contents [ 37 0 R 38 0 R ] /MediaBox [ 0 0 612 792 ] /Parent 12 0 R /Resources 39 0 R /Type /Page >> +endobj +10 0 obj +<< /A 40 0 R /Next 41 0 R /Parent 6 0 R /Title 42 0 R >> +endobj +11 0 obj +<< /A 43 0 R /Parent 6 0 R /Prev 44 0 R /Title 45 0 R >> +endobj +12 0 obj +<< /Count 6 /Kids [ 9 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R ] /Parent 7 0 R /Type /Pages >> +endobj +13 0 obj +<< /Count 6 /Kids [ 51 0 R 52 0 R 53 0 R 54 0 R 55 0 R 56 0 R ] /Parent 7 0 R /Type /Pages >> +endobj +14 0 obj +<< /Count 3 /Kids [ 57 0 R 58 0 R 59 0 R ] /Parent 7 0 R /Type /Pages >> +endobj +15 0 obj +<< /Kids [ 60 0 R 61 0 R 62 0 R 63 0 R 64 0 R 65 0 R ] /Limits [ (ALG@line.1) (cite.asai2023self) ] >> +endobj +16 0 obj +<< /Kids [ 66 0 R 67 0 R 68 0 R 69 0 R 70 0 R 71 0 R ] /Limits [ (cite.aumuller2020ann) (cite.munyampirwa2024down) ] >> +endobj +17 0 obj +<< /Kids [ 72 0 R 73 0 R 74 0 R 75 0 R 76 0 R 77 0 R ] /Limits [ (cite.nsg) (equation.5.1) ] >> +endobj +18 0 obj +<< /Kids [ 78 0 R 79 0 R 80 0 R 81 0 R 82 0 R 83 0 R ] /Limits [ (figure.caption.10) (section.5) ] >> +endobj +19 0 obj +<< /Kids [ 84 0 R 85 0 R 86 0 R ] /Limits [ (section.6) (table.caption.9) ] >> +endobj +20 0 obj +<< /A << /D (Hfootnote.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 53.004 360.913 55.494 366.522 ] /Subtype /Link /Type /Annot >> +endobj +21 0 obj +<< /A << /D (cite.izacard2021unsupervised) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 188.421 321.946 199.679 330.2 ] /Subtype /Link /Type /Annot >> +endobj +22 0 obj +<< /A << /D (cite.lin2022pretrained) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 202.564 321.946 213.822 330.2 ] /Subtype /Link /Type /Annot >> +endobj +23 0 obj +<< /A << /D (cite.karpukhin2020dense) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 150.818 298.036 162.075 306.29 ] /Subtype /Link /Type /Annot >> +endobj +24 0 obj +<< /A << /D (cite.zamani2023conversational) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 165.19 298.036 176.448 306.29 ] /Subtype /Link /Type /Annot >> +endobj +25 0 obj +<< /A << /D (cite.craswell2020overview) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 220.739 274.215 231.997 282.379 ] /Subtype /Link /Type /Annot >> +endobj +26 0 obj +<< /A << /D (cite.zhang2018visual) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 234.667 274.125 245.925 282.379 ] /Subtype /Link /Type /Annot >> +endobj +27 0 obj +<< /A << /D (cite.he2019streaming) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 201.078 190.529 212.336 198.693 ] /Subtype /Link /Type /Annot >> +endobj +28 0 obj +<< /A << /D (cite.work-in-progress) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 215.026 190.439 226.284 198.693 ] /Subtype /Link /Type /Annot >> +endobj +29 0 obj +<< /A << /D (cite.wang2024mememo) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 228.973 190.439 240.231 198.693 ] /Subtype /Link /Type /Annot >> +endobj +30 0 obj +<< /A << /D (cite.yin2024devicers) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 242.921 190.439 254.179 198.693 ] /Subtype /Link /Type /Annot >> +endobj +31 0 obj +<< /A << /D (cite.shao2024scaling) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 75.586 154.574 86.844 162.828 ] /Subtype /Link /Type /Annot >> +endobj +32 0 obj +<< /A << /D (cite.wang2021comprehensive_survey) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 340.008 543.703 351.265 551.957 ] /Subtype /Link /Type /Annot >> +endobj +33 0 obj +<< /A << /D (cite.pq) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 394.996 507.837 406.254 516.091 ] /Subtype /Link /Type /Annot >> +endobj +34 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 555.225 436.106 566.483 444.36 ] /Subtype /Link /Type /Annot >> +endobj +35 0 obj +<< /A << /D (cite.shao2024scaling) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 434.339 113.317 445.596 121.571 ] /Subtype /Link /Type /Annot >> +endobj +36 0 obj +<< /A << /S /URI /URI (https://arxiv.org/abs/2506.08276v1) >> /BS << /W 0 >> /NM (fitz-L0) /Rect [ 12 227.68 32 564.32 ] /Subtype /Link >> +endobj +37 0 obj +<< /Filter /FlateDecode /Length 139 >> +stream +xÚEˆM +1 …÷9E.Ð1MštÄ… ‚;‡îÄEÕ*.ª¨÷;*Èûá{°L@èÑy¤Ž¾è‘9vÖ£ÆTa–®µ¼Üx¯ù†L˜ÎØéÏãúÏÏ îææ#koC4É¢Bb\Z÷mE±ö{&&=X›\B¬§é‘)ä¨V³LÑÅ>m`•` o6£& +endstream +endobj +38 0 obj +<< /Filter /FlateDecode /Length 5551 >> +stream +xÚ¥[[“£È±~Ÿ_¡G¨O´ÊÔ…‡g÷Ì^lïú2½gíÝ™pÐ-á 0ãž_2+³ @h<=ŽŽ ¨K’••ùåEÑj¿ŠV_¿ˆf×/î^üú+™¥+ kU¼º{XI‹D®’(*V«»ÝêçõŸ^½üþûßÜlT­_ÒåOÍM²~¿yÝ5ç|_PÛÿݤÑî“õš©íÛzW@Ïß¼½ûï¿R‘\I)²g~Xmb÷«JD¢RZìåöÐç5 ÿñÆFë¼Þûáf•ŠÄ}0:‘"–ve„64òÉ÷²A/#¤‚uÞ(û>YÐG‰H&¾“\$5±Õ«Í¸Ø-øúÐ3CÊ~ij£E”&‘ËÓ'ñÂô?ʇ¢ô+,.ÀõÙ üã&‘ë¦Þÿ«ô WfÝ/±;ND¤ÓOa·ü~Ûóû*Cʪqp÷ßåÍÒìXeŸÏ‘òØø~:\]"Ž>Ÿé/aZf¿“ïÅÍ„V¡ä¨O]ºAJž‘•pÆ Ÿ-§§}_ÞæXd‰ –}Ezi§µH­}ÖNëgJ&}Þ‰fñ|Åp+wbF«4Ï¢Õ<‹ÖoÖW Ëm¾H¨E¶È¼F-úþ&]û•¾+¥ÆF"‰íg/ó]ÞyuóS~ÈÏåâ·$pÊ3óI‹˜…EþдÅé@÷¯]¿nêù±ø°´\–Š‹^m´µ"Û5pOˆÄâ×êŒúýð%-ûEq~,ŽÈÛ§ÅÕ"‰ô*¨>q/øæ‹§Ú +i’pFý‰3¾¼z«üC3˜Æ¬í½°·2^¿+·E»´®”©°Z† ›gòêów¥›ûGˆ »k‘¢a—`üÜ·Ý9ßv£¬d"³Êâ€HÀüI8(+ [ƒßU0ìUß(Xìv ¾6÷yKOH˜^·E~¾ÉÖÛ=‘pUë÷å®8>Ñ} P벦k~:á¸veS󘶇YP¼fERÀ?”C_ ¼?Ãi$´ÓTUQïÜ<ô*¯wAŸî\¢„½Ë›¼ßC×΃]öE]œƒ±o¢8úÛËmÖ_í äÄi&¬aþüh€YácAeâ!‹¢uw(˜@à4ñZszÜ#¿‚#kM»¢rT»± µµýé„“7çn˜´å·ù)¿/GžQô%‰°³«ìÊW7´â;$ +Á¡I×nòâÜ6u~¤ÀĜ޵!™Á;zylÜ—æG·«8_M}Ät¢/èÅ7 kËb\1ÎØ4±* ႎ‰Ö*/ëþW´TøÁx#×5s¹ms:iOÔNcWî~ÛõL4¶ämK—ù°ã8æ}Ù–(4œ¤D­«ôºø¨ôc'ý‰“~|ÄÆkóÐ5Þ÷‡"oËû#Ϲë zûìÆtí’”)RÅœ9”{<^&qCøZâï¡Èw‚¿rànòÏ«, Ÿ}K%{$yÐ £ˆn¾þ¯H§çsþ~ +¤Ke µ#‹åNî ,¿ô¥»oIÈ8¢N¨áš¸åà[ÜrxöùÃ$!èQ化Ô(|ô¸+NG²§Íçd"2ée +N&ŒÑp«ê?Ð8GA-tvwý–––îàŽ*܇Y‹mÑúý¡ÄMÄס¨:Y +–ß-‹3ZÞ‰GÊÊ1îäDz{¢:ðps­·Üh6â#i¸lÏ¥û~:Àa,jbš˜Ë´à N“ÉúÆtä|ËG–¿•@Îjà&NIF2>ºôš6“˜¯œ/zKïU·)ÞDÚlKî +¯O£vÊFö˜žaö¸é'•;¥¸FM<+ÚŽ>³.@ú‰-$Ú™ÓÒè*1¨¥©1ä5<:I·àû’²:uà»|à£{)4&‰D”1›Ü:’źmœZÙ›-X*0¢e=èEè3S£RÏ"tq\£[ØÓ{¿tâ  i©™3|® û ¶;ûs~:LÍï\ñ‘åílak8Ùᙣ”P‰&Zü΂Þíe¿%“Od0^·Nþ°¯ã\{x¦—ñ¯BõkÉá‹æ\îK6ÑvÐÊSãed$´LG­ GT†É·b-™T¯û½qÆ®¨ŸÝsét Þ¶ª•3?x®â``Ií›ózн™)Ñà.h«=%È·ñr°?']=áVÍõ±N­0Qêõ1Ir½cÅêñ¼› ¢sòÎÇ×× …Jß'¯[§σÏʺÞªüüØ +Â瀞‰Vèq5}þãuÜðOÖÄ{S0y„A¼ŽÔ$É–£gć^©€ Ål«¤Sc#–,BhÒ èñïÞå5‰/<9öÂõå·týù“¾o`¾ làèLèPÉĉ Év›Îè¾}Þš*‚o·Ó)ôõ%A%Êšõ{KŸûQôç5Cp +] + S_X~°†5ab²˜å¾.AùêmîÜÂr}Ç–¬OÅÖì®Ä §ãŸ®ÉYFL’Šçk³ T–«ËNJh2RbV|¬Šî@Â…«¦úÙÛ nx&Kêèú6[xH²iÿgn³´h¡ìtŽD^_3‰…‰å´ÿ[úÜ|ëŽWÛ2;òú‰^ìÔKÜ<ø¦3>§‰Yà›‚ï¨ ¨*T·ÔaÑy½õÝwÔ队Vµ íŠKMKvQÁg)ÍŸã¹'-8÷­%ÑOï|Ë›tÀĽ{¦(%7¡Gšév„ô«9ñÏ=æ:ÖšéÉÇ4Fd*›x+èkïØ±F¦<µ£OØ5pZ¥¼Ï]Q±ã6òÈÈã¢]QÓtš\ˆ0'ÃCF\=îÑ¡À»:™•7·Ž¤$ ­øsÀ5`' .Hy|Á ˆq-§èL¡7t»€ÞÉôö¼²Q::‘ ÿD3~7})7 ŸÕ]À°¶?víÍããl-¨y)3‘¯°_D© ”÷±Ý¹0&ôÀŠššöÄ,ë#6Ýú®xeÈXÂÕá_îûcí²2fMv|®P$h*ÞPRÚ”à‹·‚¾ìX>ò›#ÈKsjéä,^ŸMÍXkB¼šhÏ—29#1_x™YÀhp¥¦®»†à` ÔR¼mK]ë½ÇšÇžÎå»|Ëž|@hU<ý£ŸÇŇY=þš»éÂ8º×aì ‚Ÿ g³ÌË'««ŸÝ:ZýWíýï†góáoǨf2 È$qÆL_ +ãÙ!:C~Üx~ê‰+Ê2Z"vEwl“:¿ˆ;ö÷NJÚí¼Œ%#m",û¡äÛ%fšqò” 7ìrCmNÙ@C2¦Ú¼<@…¿p©7Q¤þÄ–)€žÌN†°†õØÑsTQ ¿Ò¡7ÍaŒ-øêŒ›w¿™½êÙ69±"0=™,N.,¤_7Ej’iwgaåÙSSŒPóYK¹·Zx¿Ý§Žƒн hŸãš©ã‚°Fí’ÈSX“ÙPqQíú ã|N2rJÆ +¡;»‡Ðe‚À©‰­\·(†àMâwùXp8úGÂ98Áƒ»!,I + +Zè”déÄ B{Ã#fÁ#7Ç å‘@mf *z gŒÖ× ×û–ü|4ÈdºE j‹ƒQØé+?.ˆcpÞµ ÇE±…-¢êc§KaXÝÆÓŸp¾o%.¡ŒóÁˆ¹öBÎD‰HýA¼ÞƆÁ™Y³®:¡F-dDYmyõ5CËÝE äî«ü‘a nsx°^ݽøåE`Ë28\V®¶Õ‹ŸßF«4ãh8|ï]§ + IRWºq\½~ñWª Bæ$"C6P’.‹Çs’ L-à,Æ +ÿswRoÎ3|d0꬟ÇõuÓ·ã‡óÈ“ôT¬ü±)}ôŽ3|é² ‚÷ Ê2‰JeàÈ o@FÆ}¿2N`Œ™Œû²9“Q!ªêÝÈû¥ ¨>#µWÊÍ™Szý +ü¹ão|ýö‰*þù>¯÷¿gÌ7¦£ÁÐ Žæýî–Fÿö}ÿäJöÿ*µL~¿ÇÙxp¿‹yÙ1ÎsUÊ5¦*@[•Šø/ë(M@ +ïQê1¨1GXt05¾áÈ=Þ’Ç_<ò†®“ %w U˜Ih“`HL|åda¢! 73Sf¦ÌÌ|033Ó!ߘ‘ÅtY ÷âeçó Û¼º0‘>ß‚aLŸBJá°{WžÍVª'`á†Öªw0†Ì &›3èÂ9¸TOã'ÚE´ÇX¨žQg +lš¥ç[ö‡à§š?‘Dð‡ò–BÓc0}âI©0kßÛ>pwæ´¤‘°IÄõý‰jKúRŸ}¢Ž£®e/@óÁö œ1—í˜ïÂL\ºŠm +öœyðêßà nTÛ{ç‡ð!;8/k–;æÌ”Y?PäÇ(-nc3$µÀ]kH_ÃíwM;FñCѶ‘]űãÄüà@~Šjv²8ß:¦ÃzZ?Yˆ òökÒ!ÞMOUÑå^Ü“Àó“f¾GƸh¿²}¤ÏÚPe2›/âcãòq$°b2à-''Ù]Þ:€YÅ9¿ê<§|âb’¡ö‰T]r=2Ä® .ƳØ^;ܱV"õ§—Ð:Yï˽_©Ù²©Ûö ⻇üL7né-)E·$§DÎöÃxôз.h³Î,Ë@“‚ÆH_øè2›§þ²:ËÔåÏèе¤wà5U&lu‰1Cjc]%3ŠÔÉÔ§IYi šú‚WQJµXH×/=:XW¬Èd™š®¤² ±H3®9™xKkos&lf”œ®™V° !Pé=vöp–¦áÜv™Ì:•L$Ç“ãhJÙIÃE˜¹ÝŸóÝEuÓ¾¢ì¥×º“^Xýàß-«ò0g0'/¬ì]*˜t\´:äôüBe‰ÏÞRDAÄìªJ6 –Fë , Ê’…²€d, ÀŽùöñèï|3–#¸Gr}§»Kº^2`vs~¼ŒÅ²µt +ù½ÄõÒ'–å´T ¶}©vòè×OÀùÃyF}áÀ'`' x=2áÄÎ<¤«ãPÕ£*н„ÞS=tãB!ô*êwNzšÚ)0qMý%9WõE_;*]ó%l΋q tý¦MMrEÅ#Øø}þµ(î">¾®œi• xû7©â¨¯ˆûæû×?’ÒÀ–g* ´²J©)Ý:½‰Àš0ƒUûaÿ·CõØÅR b¬Ë&ÀÚŇyÜ5'.»õ+p®6̓+‚ÈÏŒ5/«+`p +Üß^Ý©…Ž’iY@l)6jorÄ,溢¢{a¸9î w‡Š#¹T³2fì¤(a®þM$…ŽÕ¬jƒuª‰A.:ÞÅõh± [ìø²4!f {Tn&h>&4?/àðÄé4·ŽÙãÑ>ï‡ÇÂA½Ñ$ÐKŇCú,åPˆÏ£–ÃÊéP2—-טÌÉKaŒOãy%ï“ 9$p-»Ö«Üó 0{qø ZïΫ¹~àÞkò÷$xïºnÀðýaéä³ÒÖîd°S|çvAš5ƱÎÎ’ÉØÏAo2&©¡–šZ.…ݽôôÌ‘èŽçÿ&‹ÆNyÁ@¬9Ðrr +1udŽ7Íx Þ=Ê¡–4egâØ ±c—Dðo½“X1üO]¹èB'“ ѕÉp8öÑ„KèŽqÉtªØ[js§A%kÐ'€¦ž¨•¤njª}¦{òeBãˬO¥{Ävƒ +ÉæpE«LXå+wÁD°•óU’ÒÕ!øÑiËà›ÒÑA“és’àIøº›±TŒ ˜ e4 Ä˜hœû²Îo²ÌÆSï ö€Ž*¨¦üý–˜‘î.ÝHìÊ;´«µÃT +˜—ö„¸q ™šÍ‰ŽÜOê<Í (ø£Ç£?ƒ[_%ÆR7*’@Ñd3,ÂÔßÝX½n¼ÝÙ1Ú¿&•*Ó"ñ).Æ^'eœ¿”‹Y6(×4¬[6Çb‚t V’µmÎ-hlÆàÙ|«æ7Ø”Œ‰IÌéÏcA“ræ‘„)“Ë)Z¬¼å8£ñ¦nìKAè-Ϻs9ÂmqQ8:e3‘ú`è”~´#ÉhG,&Ñ’–†:g6Zv]ê‡&¢²*ÛÁ¥‰Ø•`ǼO[Ö׌­ÂŸXdaÞǧA“A´G· +×?¦o”>Æc¤,[×½?Ògïó̆¹zÌÍE^{ Ð€¯æKë¹Ì€KÄFÚùÊ"Ì¢§ž‡AAc~lÏ0wü[„‘99uÛ=ÕyUn:.¤\k‘ù Ó}ÞõÉqŒ,Y”÷ºl+-œ„Á]¾wY÷bïW4ËšºreêæêAS +vÐçoMáï1‚ÊŸhª™àñМZþ9GY åŒI ñë¿Ül`?~ §tÈènG¾¼Û…kûvt(‰È‡Ÿ\-«—׋mËnG¯Ð¡“+î–ÒIÆ™éÔÀ­Ó&kzÆòÚ¦ïðÁŽöÆõ¼ŒyÝR7 +¡„ÀÒkãù7ËÔ‚{à¿y Š r•%2!P%öâ–šT¹¬uæFì~?Qfí8˜N­±êYÉå䂺Äå‹å×Ó,¸žzÈ¡ 6)6C} [À F’åfñ†GúÕÆ˜•»*ËÒ*¡|$Åý¶ƒôŸ$†VôàÛˆîœFƧ¾õ(GÕdPSb Ä 79ýWkx¹ªÈ‡ß?,ŠE{)rB='Ga|l8²éšGïÞ„áWÿ•¾~|f­Í¼D!,W“+^ÍEJ_‹w%¾ÈÛÿàÐûDøÐzðìšUïS*þ·HCtÐ=:<>øÛ¤â#æ&ƒÏ’ÓŸHñOÃð˜ýz—׿#•áÌ,¼'G'…Ç‘=Á¥qĹ¥ð Öî û×øC#’ªYrLº[a v6æ•ólöÿ‘º§8 +endstream +endobj +39 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F212 94 0 R /F246 95 0 R /Times-Roman 96 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +40 0 obj +<< /D (section*.1) /S /GoTo >> +endobj +41 0 obj +<< /A 98 0 R /Next 99 0 R /Parent 6 0 R /Prev 10 0 R /Title 100 0 R >> +endobj +42 0 obj + +endobj +43 0 obj +<< /D (section*.17) /S /GoTo >> +endobj +44 0 obj +<< /A 101 0 R /Next 11 0 R /Parent 6 0 R /Prev 102 0 R /Title 103 0 R >> +endobj +45 0 obj + +endobj +46 0 obj +<< /Annots [ 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R 112 0 R 113 0 R 114 0 R 115 0 R 116 0 R 117 0 R 118 0 R 119 0 R 120 0 R 121 0 R 122 0 R 123 0 R ] /Contents 124 0 R /MediaBox [ 0 0 612 792 ] /Parent 12 0 R /Resources 125 0 R /Type /Page >> +endobj +47 0 obj +<< /Annots [ 126 0 R 127 0 R 128 0 R 129 0 R 130 0 R 131 0 R 132 0 R 133 0 R 134 0 R 135 0 R 136 0 R 137 0 R 138 0 R 139 0 R 140 0 R 141 0 R 142 0 R 143 0 R 144 0 R 145 0 R 146 0 R 147 0 R 148 0 R 149 0 R 150 0 R 151 0 R ] /Contents 152 0 R /MediaBox [ 0 0 612 792 ] /Parent 12 0 R /Resources 153 0 R /Type /Page >> +endobj +48 0 obj +<< /Annots [ 154 0 R 155 0 R 156 0 R 157 0 R 158 0 R 159 0 R 160 0 R 161 0 R 162 0 R 163 0 R 164 0 R 165 0 R 166 0 R 167 0 R 168 0 R 169 0 R ] /Contents 170 0 R /MediaBox [ 0 0 612 792 ] /Parent 12 0 R /Resources 171 0 R /Type /Page >> +endobj +49 0 obj +<< /Annots [ 172 0 R 173 0 R 174 0 R 175 0 R 176 0 R 177 0 R 178 0 R ] /Contents 179 0 R /MediaBox [ 0 0 612 792 ] /Parent 12 0 R /Resources 180 0 R /Type /Page >> +endobj +50 0 obj +<< /Annots [ 181 0 R 182 0 R 183 0 R 184 0 R 185 0 R 186 0 R 187 0 R 188 0 R 189 0 R 190 0 R ] /Contents 191 0 R /MediaBox [ 0 0 612 792 ] /Parent 12 0 R /Resources 192 0 R /Type /Page >> +endobj +51 0 obj +<< /Annots [ 193 0 R 194 0 R 195 0 R 196 0 R 197 0 R 198 0 R 199 0 R 200 0 R 201 0 R 202 0 R 203 0 R 204 0 R 205 0 R 206 0 R 207 0 R 208 0 R 209 0 R 210 0 R 211 0 R 212 0 R 213 0 R 214 0 R 215 0 R 216 0 R 217 0 R 218 0 R 219 0 R 220 0 R 221 0 R 222 0 R ] /Contents 223 0 R /MediaBox [ 0 0 612 792 ] /Parent 13 0 R /Resources 224 0 R /Type /Page >> +endobj +52 0 obj +<< /Annots [ 225 0 R 226 0 R 227 0 R 228 0 R 229 0 R 230 0 R 231 0 R 232 0 R 233 0 R 234 0 R 235 0 R 236 0 R 237 0 R ] /Contents 238 0 R /MediaBox [ 0 0 612 792 ] /Parent 13 0 R /Resources 239 0 R /Type /Page >> +endobj +53 0 obj +<< /Annots [ 240 0 R 241 0 R 242 0 R 243 0 R 244 0 R 245 0 R 246 0 R 247 0 R 248 0 R 249 0 R 250 0 R 251 0 R 252 0 R 253 0 R 254 0 R ] /Contents 255 0 R /MediaBox [ 0 0 612 792 ] /Parent 13 0 R /Resources 256 0 R /Type /Page >> +endobj +54 0 obj +<< /Annots [ 257 0 R 258 0 R 259 0 R 260 0 R 261 0 R 262 0 R 263 0 R 264 0 R 265 0 R 266 0 R 267 0 R 268 0 R 269 0 R 270 0 R 271 0 R ] /Contents 272 0 R /MediaBox [ 0 0 612 792 ] /Parent 13 0 R /Resources 273 0 R /Type /Page >> +endobj +55 0 obj +<< /Annots [ 274 0 R 275 0 R 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R ] /Contents 292 0 R /MediaBox [ 0 0 612 792 ] /Parent 13 0 R /Resources 293 0 R /Type /Page >> +endobj +56 0 obj +<< /Annots [ 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R ] /Contents 310 0 R /MediaBox [ 0 0 612 792 ] /Parent 13 0 R /Resources 311 0 R /Type /Page >> +endobj +57 0 obj +<< /Annots [ 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R ] /Contents 340 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources 341 0 R /Type /Page >> +endobj +58 0 obj +<< /Annots [ 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R ] /Contents 372 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources 373 0 R /Type /Page >> +endobj +59 0 obj +<< /Annots [ 374 0 R 375 0 R 376 0 R 377 0 R ] /Contents 378 0 R /MediaBox [ 0 0 612 792 ] /Parent 14 0 R /Resources 379 0 R /Type /Page >> +endobj +60 0 obj +<< /Limits [ (ALG@line.1) (ALG@line.14) ] /Names [ (ALG@line.1) 380 0 R (ALG@line.10) 381 0 R (ALG@line.11) 382 0 R (ALG@line.12) 383 0 R (ALG@line.13) 384 0 R (ALG@line.14) 385 0 R ] >> +endobj +61 0 obj +<< /Limits [ (ALG@line.15) (ALG@line.2) ] /Names [ (ALG@line.15) 386 0 R (ALG@line.16) 387 0 R (ALG@line.17) 388 0 R (ALG@line.18) 389 0 R (ALG@line.19) 390 0 R (ALG@line.2) 391 0 R ] >> +endobj +62 0 obj +<< /Limits [ (ALG@line.20) (ALG@line.7) ] /Names [ (ALG@line.20) 392 0 R (ALG@line.3) 393 0 R (ALG@line.4) 394 0 R (ALG@line.5) 395 0 R (ALG@line.6) 396 0 R (ALG@line.7) 397 0 R ] >> +endobj +63 0 obj +<< /Limits [ (ALG@line.8) (Hfootnote.3) ] /Names [ (ALG@line.8) 398 0 R (ALG@line.9) 399 0 R (Doc-Start) 400 0 R (Hfootnote.1) 401 0 R (Hfootnote.2) 402 0 R (Hfootnote.3) 403 0 R ] >> +endobj +64 0 obj +<< /Limits [ (Item.1) (algorithm.3) ] /Names [ (Item.1) 404 0 R (Item.2) 405 0 R (Item.3) 406 0 R (algorithm.1) 407 0 R (algorithm.2) 408 0 R (algorithm.3) 409 0 R ] >> +endobj +65 0 obj +<< /Limits [ (cite.LM-DiskANN) (cite.asai2023self) ] /Names [ (cite.LM-DiskANN) 410 0 R (cite.ObjectBox2024EdgeAI) 411 0 R (cite.Totino2025PhoneStorage) 412 0 R (cite.Xue2024PowerInfer2) 413 0 R (cite.appleM1Ultra) 414 0 R (cite.asai2023self) 415 0 R ] >> +endobj +66 0 obj +<< /Limits [ (cite.aumuller2020ann) (cite.choo2020k) ] /Names [ (cite.aumuller2020ann) 416 0 R (cite.azure2025vectorquota) 417 0 R (cite.baranchuk2019towards) 418 0 R (cite.cai2024recall) 419 0 R (cite.castro2024azure) 420 0 R (cite.choo2020k) 421 0 R ] >> +endobj +67 0 obj +<< /Limits [ (cite.craswell2020overview) (cite.dubey2024llama) ] /Names [ (cite.craswell2020overview) 422 0 R (cite.cui2022dvabatch) 423 0 R (cite.diskann) 424 0 R (cite.douze2018link) 425 0 R (cite.douze2020faiss1t) 426 0 R (cite.dubey2024llama) 427 0 R ] >> +endobj +68 0 obj +<< /Limits [ (cite.faiss) (cite.graph_better) ] /Names [ (cite.faiss) 428 0 R (cite.faissGuidelines) 429 0 R (cite.fast25) 430 0 R (cite.g5.48xlarge) 431 0 R (cite.gao2024rabitq_gps_ref15) 432 0 R (cite.graph_better) 433 0 R ] >> +endobj +69 0 obj +<< /Limits [ (cite.hcnng) (cite.ivf_crtpt:2023/1438) ] /Names [ (cite.hcnng) 434 0 R (cite.he2019streaming) 435 0 R (cite.hmann) 436 0 R (cite.hnsw) 437 0 R (cite.ivf) 438 0 R (cite.ivf_crtpt:2023/1438) 439 0 R ] >> +endobj +70 0 obj +<< /Limits [ (cite.izacard2021unsupervised) (cite.li2019approximate) ] /Names [ (cite.izacard2021unsupervised) 440 0 R (cite.joshi2017triviaqa) 441 0 R (cite.karpukhin2020dense) 442 0 R (cite.ktransformers2025) 443 0 R (cite.kwiatkowski-etal-2019-natural) 444 0 R (cite.li2019approximate) 445 0 R ] >> +endobj +71 0 obj +<< /Limits [ (cite.li2023towardsgte) (cite.munyampirwa2024down) ] /Names [ (cite.li2023towardsgte) 446 0 R (cite.li2024svdqunat) 447 0 R (cite.lin2022pretrained) 448 0 R (cite.mac) 449 0 R (cite.msjimmy_bm25) 450 0 R (cite.munyampirwa2024down) 451 0 R ] >> +endobj +72 0 obj +<< /Limits [ (cite.nsg) (cite.pineconeHNSW) ] /Names [ (cite.nsg) 452 0 R (cite.nssg) 453 0 R (cite.nvidia2024blackwell) 454 0 R (cite.nvidiaA10) 455 0 R (cite.optimum2025storage) 456 0 R (cite.pineconeHNSW) 457 0 R ] >> +endobj +73 0 obj +<< /Limits [ (cite.pq) (cite.schuhmann2021laion) ] /Names [ (cite.pq) 458 0 R (cite.priximity_graph) 459 0 R (cite.rein2024gpqa) 460 0 R (cite.rekabsaz2021tripclick) 461 0 R (cite.ryan2024enronqa) 462 0 R (cite.schuhmann2021laion) 463 0 R ] >> +endobj +74 0 obj +<< /Limits [ (cite.seemakhupt2024edgerag) (cite.snap_cvpr2023_tutorial) ] /Names [ (cite.seemakhupt2024edgerag) 464 0 R (cite.severo2025lossless) 465 0 R (cite.shao2024scaling) 466 0 R (cite.shen2024understandingsystemstradeoffsretrievalaugmented) 467 0 R (cite.skewmanohar2024parlayann) 468 0 R (cite.snap_cvpr2023_tutorial) 469 0 R ] >> +endobj +75 0 obj +<< /Limits [ (cite.sptag) (cite.wang2024starling_sigmod) ] /Names [ (cite.sptag) 470 0 R (cite.tatsuno2024aisaq_gps_ref46) 471 0 R (cite.together2023redpajama) 472 0 R (cite.wang2021comprehensive_survey) 473 0 R (cite.wang2024mememo) 474 0 R (cite.wang2024starling_sigmod) 475 0 R ] >> +endobj +76 0 obj +<< /Limits [ (cite.work-in-progress) (cite.zerhoudi2024personarag) ] /Names [ (cite.work-in-progress) 476 0 R (cite.yang2018hotpotqa) 477 0 R (cite.yin2024devicers) 478 0 R (cite.yu2025ragdoll) 479 0 R (cite.zamani2023conversational) 480 0 R (cite.zerhoudi2024personarag) 481 0 R ] >> +endobj +77 0 obj +<< /Limits [ (cite.zhang2018visual) (equation.5.1) ] /Names [ (cite.zhang2018visual) 482 0 R (cite.zhang2020learning) 483 0 R (cite.zhu) 484 0 R (cite.zhu2024nanoflow) 485 0 R (cite.zilliz2025hnswoverhead) 486 0 R (equation.5.1) 487 0 R ] >> +endobj +78 0 obj +<< /Limits [ (figure.caption.10) (figure.caption.15) ] /Names [ (figure.caption.10) 488 0 R (figure.caption.11) 489 0 R (figure.caption.12) 490 0 R (figure.caption.13) 491 0 R (figure.caption.14) 492 0 R (figure.caption.15) 493 0 R ] >> +endobj +79 0 obj +<< /Limits [ (figure.caption.3) (page.1) ] /Names [ (figure.caption.3) 494 0 R (figure.caption.4) 495 0 R (figure.caption.6) 496 0 R (figure.caption.7) 497 0 R (figure.caption.8) 498 0 R (page.1) 499 0 R ] >> +endobj +80 0 obj +<< /Limits [ (page.10) (page.15) ] /Names [ (page.10) 500 0 R (page.11) 501 0 R (page.12) 502 0 R (page.13) 503 0 R (page.14) 504 0 R (page.15) 505 0 R ] >> +endobj +81 0 obj +<< /Limits [ (page.2) (page.7) ] /Names [ (page.2) 506 0 R (page.3) 507 0 R (page.4) 508 0 R (page.5) 509 0 R (page.6) 510 0 R (page.7) 511 0 R ] >> +endobj +82 0 obj +<< /Limits [ (page.8) (section*.2) ] /Names [ (page.8) 512 0 R (page.9) 513 0 R (section*.1) 514 0 R (section*.16) 515 0 R (section*.17) 516 0 R (section*.2) 517 0 R ] >> +endobj +83 0 obj +<< /Limits [ (section*.5) (section.5) ] /Names [ (section*.5) 518 0 R (section.1) 519 0 R (section.2) 520 0 R (section.3) 521 0 R (section.4) 522 0 R (section.5) 523 0 R ] >> +endobj +84 0 obj +<< /Limits [ (section.6) (subsection.2.2) ] /Names [ (section.6) 524 0 R (section.7) 525 0 R (section.8) 526 0 R (section.9) 527 0 R (subsection.2.1) 528 0 R (subsection.2.2) 529 0 R ] >> +endobj +85 0 obj +<< /Limits [ (subsection.2.3) (subsection.6.3) ] /Names [ (subsection.2.3) 530 0 R (subsection.4.1) 531 0 R (subsection.4.2) 532 0 R (subsection.6.1) 533 0 R (subsection.6.2) 534 0 R (subsection.6.3) 535 0 R ] >> +endobj +86 0 obj +<< /Limits [ (subsection.6.4) (table.caption.9) ] /Names [ (subsection.6.4) 536 0 R (subsection.8.1) 537 0 R (subsection.8.2) 538 0 R (subsection.8.3) 539 0 R (table.caption.9) 540 0 R ] >> +endobj +87 0 obj +<< /pgfprgb [ /Pattern /DeviceRGB ] >> +endobj +88 0 obj +<< >> +endobj +89 0 obj +<< /BaseFont /SVARXO+LinLibertineTB /Encoding 541 0 R /FirstChar 27 /FontDescriptor 542 0 R /LastChar 122 /Subtype /Type1 /ToUnicode 543 0 R /Type /Font /Widths 544 0 R >> +endobj +90 0 obj +<< /BaseFont /DHRMAA+LinLibertineT /Encoding 545 0 R /FirstChar 16 /FontDescriptor 546 0 R /LastChar 252 /Subtype /Type1 /ToUnicode 547 0 R /Type /Font /Widths 548 0 R >> +endobj +91 0 obj +<< /BaseFont /KLFPWG+txsys /FirstChar 1 /FontDescriptor 549 0 R /LastChar 188 /Subtype /Type1 /ToUnicode 550 0 R /Type /Font /Widths 551 0 R >> +endobj +92 0 obj +<< /BaseFont /PEYUND+LibertineMathMI /FirstChar 22 /FontDescriptor 552 0 R /LastChar 149 /Subtype /Type1 /ToUnicode 553 0 R /Type /Font /Widths 554 0 R >> +endobj +93 0 obj +<< /BaseFont /DHRMAA+LinLibertineT /Encoding 555 0 R /FirstChar 37 /FontDescriptor 546 0 R /LastChar 120 /Subtype /Type1 /ToUnicode 556 0 R /Type /Font /Widths 557 0 R >> +endobj +94 0 obj +<< /BaseFont /TCFTCN+LinLibertineTI /Encoding 558 0 R /FirstChar 38 /FontDescriptor 559 0 R /LastChar 122 /Subtype /Type1 /ToUnicode 560 0 R /Type /Font /Widths 561 0 R >> +endobj +95 0 obj +<< /BaseFont /DHRMAA+LinLibertineT /Encoding 562 0 R /FirstChar 132 /FontDescriptor 546 0 R /LastChar 132 /Subtype /Type1 /ToUnicode 563 0 R /Type /Font /Widths 564 0 R >> +endobj +96 0 obj +<< /BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Subtype /Type1 /Type /Font >> +endobj +97 0 obj +<< >> +endobj +98 0 obj +<< /D (section.1) /S /GoTo >> +endobj +99 0 obj +<< /A 565 0 R /Count -3 /First 566 0 R /Last 567 0 R /Next 568 0 R /Parent 6 0 R /Prev 41 0 R /Title 569 0 R >> +endobj +100 0 obj + +endobj +101 0 obj +<< /D (section.9) /S /GoTo >> +endobj +102 0 obj +<< /A 570 0 R /Count -3 /First 571 0 R /Last 572 0 R /Next 44 0 R /Parent 6 0 R /Prev 573 0 R /Title 574 0 R >> +endobj +103 0 obj + +endobj +104 0 obj +<< /A << /D (cite.faiss) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 226.768 625.24 238.026 633.494 ] /Subtype /Link /Type /Annot >> +endobj +105 0 obj +<< /A << /D (cite.kwiatkowski-etal-2019-natural) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 74.439 601.33 85.696 609.584 ] /Subtype /Link /Type /Annot >> +endobj +106 0 obj +<< /A << /D (cite.yang2018hotpotqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 143.671 601.33 154.929 609.584 ] /Subtype /Link /Type /Annot >> +endobj +107 0 obj +<< /A << /D (cite.joshi2017triviaqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 208.326 601.33 219.584 609.584 ] /Subtype /Link /Type /Annot >> +endobj +108 0 obj +<< /A << /D (cite.rein2024gpqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 279.464 601.33 290.722 609.584 ] /Subtype /Link /Type /Annot >> +endobj +109 0 obj +<< /A << /D (cite.nvidiaA10) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 174.56 565.465 185.818 573.719 ] /Subtype /Link /Type /Annot >> +endobj +110 0 obj +<< /A << /D (cite.mac) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 284.246 565.465 290.871 573.719 ] /Subtype /Link /Type /Annot >> +endobj +111 0 obj +<< /A << /D (cite.ivf) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 245.633 75.303 256.891 83.557 ] /Subtype /Link /Type /Annot >> +endobj +112 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 259.472 75.303 270.73 83.557 ] /Subtype /Link /Type /Annot >> +endobj +113 0 obj +<< /A << /D (cite.shen2024understandingsystemstradeoffsretrievalaugmented) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 471.419 565.302 482.677 573.556 ] /Subtype /Link /Type /Annot >> +endobj +114 0 obj +<< /A << /D (cite.ivf) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 505.519 441.765 516.777 450.019 ] /Subtype /Link /Type /Annot >> +endobj +115 0 obj +<< /A << /D (cite.choo2020k) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 357.828 417.855 364.453 426.109 ] /Subtype /Link /Type /Annot >> +endobj +116 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 504.771 378.004 516.029 386.258 ] /Subtype /Link /Type /Annot >> +endobj +117 0 obj +<< /A << /D (cite.nsg) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 467.724 366.139 478.981 374.303 ] /Subtype /Link /Type /Annot >> +endobj +118 0 obj +<< /A << /D (cite.priximity_graph) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 481.711 366.049 492.969 374.303 ] /Subtype /Link /Type /Annot >> +endobj +119 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 495.698 366.049 506.956 374.303 ] /Subtype /Link /Type /Annot >> +endobj +120 0 obj +<< /A << /D (subsection.2.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 438.742 280.126 456.904 291.314 ] /Subtype /Link /Type /Annot >> +endobj +121 0 obj +<< /A << /D (algorithm.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 372.991 240.438 379.649 251.626 ] /Subtype /Link /Type /Annot >> +endobj +122 0 obj +<< /A << /D (ALG@line.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 429.675 191.776 436.393 203.99 ] /Subtype /Link /Type /Annot >> +endobj +123 0 obj +<< /A << /D (ALG@line.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 439.969 191.776 446.687 203.99 ] /Subtype /Link /Type /Annot >> +endobj +124 0 obj +<< /Filter /FlateDecode /Length 6513 >> +stream +xÚµ<Û–ÛÈqïú +¾ø˜s2„ûŠ‹Nöd¥ìJ–o╎ý°Ò†ÄÌ "Y”,}ªºªÝ 8#m’i€F_ª«ë^Õ«»•X½~&øïËwÏþðJ ¹ª²*WùêÝíJfBÁ7±’+kV…™ÐÅêÝaõËzì¯6ªTë¡©Wåz{¯r]o·§c½ýreËuF=^ÖCsµ)Ö;zí;ê9Þ··Ü Íñj#íúS=¶}wMþãÇ?ýD=ÚnsõáÝŸYMåU™‰R1@Fï:mœÚäëÿëûöî~³kî°‹ƒ¥¡Ï®!¬ÞvwÔ~w¬îièÃñÔ…öa<Öcs÷Å#²ªŒ`)óL*œûz„ªZ»ýU±þä–¢Ö=6|ÞœÆvߎ_¨ptç»|¾o÷ =.B í »šÃ¥²²Ø +“É‚ñô^(qº¹R%ÌY˜uGˆÃÅñ•àǧš'Ççfšnlë=½ÞöGz8Ôm7Â?˜ëø^hë ÚŽí§i‚‰V<œy„À\eJ2êñ~@ú±zýd  ÖÁ–¾Û¡>p0§í”·÷-íáècÝÔ}Ûs[Ûë¦ÛÞêãÇáù@BeÆð^~ú+ŒƒÍ|# ›mÓ©´LÑ­Zš¬H;¸¦uÿØ´óñ¯Wª\¿øMÐHc²ô<«°*ðÁúþJ¢É)×5Zs¡Umb«Ú˜,2[©tò÷B(?(6Å#x¤² Ët7õ´K‚ÐéíVÐn›þvÊSG‚Î[ЋLNÏ„‘αZdó`½½'vc£¸ fU3¶ÁÚÃö=¬Ùm¿Ð‹ƒ¸< Ÿú¡KOsçšÞtsÃÈ‚°-,ïŽìP“] £ªõ5K žõÇfføÜö{2ÀƒÅ‡RäæäÄÑó„vç‡'V)³ +عãšÙ çVy+,\cáÜDžU *A°*È“Í)W­Ñ¸;Ü:Œ§Ýzôr¥éê›=oEy×Â#ßãD‘·D[R¥ó•©@vã˜VŒ<\ÕÞ‘ÞY¢}çä/´ìê±&Ó + Uj;€Õ~ð<ßÅëá(Ác)5ÓR÷M½c+6hò–èmG œ=zx›Ò­òm'iU>@S +µñX0±•ÁS#“˜Ý„kz®éãS:ã‚\ŠTƒE2«œ¬þ™<ò¸²°›¢J"œТ8Mï§ã†cý™˜ouN`‡ë-оSRUŒ8Xž¸ªÝfì7ã=!™ýÀ^¦'²ÃcëPM¼c7Û1<)ú30t»a‰Þt®3íã‰^°“OíˆkÉ÷`CV€¹Bê<w÷Ù@ØöˆDwTÂ^IÀ +Q Š‰™°”D” +Wbý²Þ~t‚ª?ùåºéáxjo&>b¥©¢ÁPS’×7¸Ap’9î žààCdò„oÞnñA¿þ}oŠšnf`Á‡5øT?8 DõP´#èà§È© “:«— kf˜®IM^³(®ÀÇF¢(…c·ˆ:L™‘×ÔÀÂئ¦†['¥¶î´ Õ{o¤ýæö2ƒ,°cÕ(h›°k°"iµp2è@žF0ƒš¥(Nñë©¥`,»~ŽÖŽÞ~xpvÓÖp©¬ +fâ§ F?2±¡#û„܉æ¸hŸ1&6¥Ñ‹v#ÃL2!²) Öoc¹ýÑé,KŒ/ ôÙQ6 öðG“/¸zpY.eºîó¥ÃŒc8 +äd©ÒA!Çñ,®ìyNv»°Sp2µ)¼mƘu±)L24ŒE|£ÝÀÃ]ï”ðä6ŠŸzú‹¾ųBÐúò–Á”¯f|Í–%ˆådСw›µ9?´b…—‰7Kû6Ó•Ï õG¦2d3Í Íû¨áÛ©aðë©ñ~¦{OeÁä°¾Âf!Ø~;›¨i +YéÌèpJ#åž\Ô|¾ÖðÒ¥ ñe:Ÿ§L0£"SÈ¢Nâ|·¦)ïq»´ªÉ„±¾ÇkߣZ=T`*ìveAª0ÍÀ¿¤^riYPÁQ¯÷JY@6 `qÖ2+ÁûЧUß2m¥ñÉàSÅO +„-·Y–Ïýò¨¦å•É +nk°ù"×5¢A–)?oʳ„6ãó祥sÀg±BY’S¯½ÀP¸“À°O)‚ufáI=%îbFÜÐè´§À‚ÊŒOÄ~¿LL:¯üÖw_fFýßì=ä-´ 0&Ày£­„'ĶœÌð”“Jd@LÅRN¥6%òâ8 @Ø؉wbiž¯›ìÜzn@ɼʬŠdÉRRgUQzt¿Ej"ºœa£r’”;o–öOU Ü~QX ÀÒ÷YÄ"fóƒ<™ =ÂÑÉ£½¼çK;¥sn€— +T™´½ù‡Ÿ‰¿*c«Ü£>"ïÊ +]ýiÕ‰6a9]‚HÖU@ªyÂì15£ ¶ú ©ñ¤h„bîfµšmÑÿ†Yµp“ËÞÂÎ’™å$–¿[Zܰ7…–ñQúr½çýGžàÍ,͵ó¸ üLÅL˜dÑ2`”p4)3I8;ƒÊRS÷Úa™Žaúi'ïUqA¿YLzj“ /âµ\WÒdRVѼ—Ì4¯›ñ‚0Ö‘y®QD˜Lùøa°Áb6ÙaÕ¬ã£8Èl,wˆEd€‹@›T³ÛÀ«n&U1.m“ YÈwM×ÍZ^°›ºÛ²@þfé <*Z€÷ +Þê#ø8ú¨í<})¹TBúà 4€·ÃO‘ñ>ý´û’T,«›H½ l†¶læF.Û¶?øcá`åè¼»=£Ÿ¼íûö&ÍìÔ<Ó°­÷tg)3 t  "Îc7ôûîqˆæH4£{gÐe Š… „£Œ{ +~rþø[Ó–&^L ÔçYË`EY ÎŒMº_ã‚9fðËtÅòòŠ Å ` ¸ûfW^uL†Æ5Ò/©1Š‘î1ÿÇz×lÜTdóÝð™×Ir >€Êó'Ñvœj‰lŠàO9ÚßÞ׋o‡ÛsoÔƒ“”í §äL,+£â)Ã),¤-ujžb‡)DžQ e†¡ëyéYGñIèDÕVsàÞ‹1•ƒ˜LªøBô¥Þßa>äþÀU lŒ_Ú­¯8@‘õ0 JTœqëŸC@ùû×>(ä¼iî˲€¨¸n¯ær [ÜÊéÛJsà2ž}ÉØÁø‹Öz{hžå¨öÍdigh¨XPjô’”š4v¬ÚUžKÛæ‹‰oÐöXm¢n΀yöã»g¿>ó›7*wÊ'‚¦Üöðì—bµƒrÜU®>»®‡•5•ã¶ö«·Ïþê XÕå—°/c2#Š™í™Ø ¯Êj•;×’ÕÞ¤óÄrÄ‘ŒËßOú0öz •ú‡ï®0÷}¼›¬ñ3»:óTõ!‘Xpˆ°¸M–å¹1q©ì@.J˜&øö©Õ° CØt1‚ñÁVË‘ ˬ†µ¤»°Ï®ø¦Y®fP=*cÕb†ƒTùEåãéØMÑdüi[%émŸBœ³¡4Ž}ÎBh¾²æ1dçÖ±F2Ç"Á“­ 3š—ø©‹ÒuN¦¦#‰ªøHä +£ êÎ2OEúÕ'<1oá1t&Òš^|Áhƒi~=¡lGAGr=-u zÄWGM¢}&‹ˆÖzáDº‚[ì›KJ+Ú°†ÏAt{rRZ«rÉ‹¦=âG°Qö Ò¹* [8 Oõ°0A½ßÔ§;L)Äb|š­3ÆÏè$lV¹vöÍÏ/®´^¿fûcå’£©è2æ9¥1({žkŸZÏõYÒ’ç½’yj0_"T«5ØíE +i,«K÷À †LƉGcF¦Ì 8véJ|{b%+\J2®z"cÁp³g»²rQßbIš‘*ÊS`1­¾Ÿ/;g¦`6Ûêõðq¡úú+­Ó_Övf†Ú¸˜ª@ßV²tµq¨Q©8î*W® ¡XÁ¾vì‡ô+2¢«3ô™*.Õ‡7L‚ç9„|/@í>,!éŠÏTÙAä×NnN§×žS7äuÉÒÃÊ)ý‰5±IŠ¥SgI;sžeX\™A†Æ›S»/‚V*Wí@;ñéùjU*¶¶ùBÄÓ²²qõ²;¶väA‘íŬÑûËžJvìÒ½—¸Ð6Yˆ¬ðež¡"²‰áˆ–›ŠóHߤõ´–sþýôÛ ~wŵ™¼©P(n-Š—!,uC+Š@ÛÃ4Cz«%øj@1íÖëAvͰ…E¤Ÿ”™Óù|)=.u>‡ÈàÕ*†è߉:’B>pß0ñftT˜Ô€‡©ªdÒ¿¤ŽÂS/fm¸å ÕŸ¿¢·o € #[9ÛÉ<C ÁB˜AùoÉÕG¬þí»KbÀü­” bm)1¥_1´tÒS3sÛ@íÞŒéþ]‰+¥× âö^aó÷g‚zÁ9‚ÏγìÛÍEöá[ùBê?c¨iÎ|7ü¦KJiU™tÒêbœ‹ P‡'Ý?\ÓÒ\íón¼ùB‰éž[H‰ãçs †d^'º…y§Kô>À9Î|ÑÍ‹ÑÛîQØgÂ20WfÆõÇû¹÷@™zì{nÆ«èXãx3Š•û\/ +]ÙLøÂïØ,8¿øv&œ¼­€œ~L%Gd ,çœÓ‹.ªLJ†äõ¼†WVòqÖX橪ÒÎÇÙˆóñ©v-jýÇŸÞþZ¾™ë‰ó"]ð‘0$2½Ð*íÿéx·½£/’>ÃV^d^vÇ!`°7çÐxi7®ò¢’±oÜ¥ÉKзÉÊêü~[€Ô…Ó‡qÿoŒî: /ŠtÉü‘%+™U3¿uÉ +,±Ê$SØêò’xôUžtÿ@G+ÕÙà¾jÏËI3?Jð¦”`*eä–Äl÷‘¹L–𒵿¼nn²kÚ‘cHi†ÜÎ|þŒ:ÑÍ4Ohz¸¢`t‡+³l Âô²©ëÐûÈ6É “{¹MKW—©„ñH¸¤¸H])èûEÛTk™©ŠSF^zK•:\Þ®×· €³c QöJª8U3p®¨J„vh­ùcˆ;.)fÁG]ͤ* +»p¯¨à{EøqÁð)°J;_ÇçqÒ§Ô %ÕE“Ñ+%ÒŠ"¡Yx¥8Ë]ë$NÁÙBøû°¯Ùþ*¼<-ð&ðˆ–£Ys/Éç±° [X,ý¤û¡Ø{"¼§1ð_Ét9ø»!5—êÂp«á¼T:üÐv¾õ…¦F;5'/”+§OæO€ot• °Å“q×´¨“C·Í1‘½¥ ?¼Ró¯§Le¸—vikQ¦«lÁzkw ?zˆÄ®H%¸tFf9HËxÜ5ýöÁçûÖEÑe9]-kúýò¾n÷½ µb_çJ&+l`‡Ä‘¾u™¢órà|de''ëõreTiÓÒÒïŸ$ÁÂýhH27æ„»½êþ’NÆ'Ð^¡Î\¸2—†¯•*8‡™K¦ÿšøru>ØÊkŽ-ÊX à뀞Ü)k¾ã²Á[èÞ‘t‡é-«¯’‚}O¢žÂ?ï¥Öɘ[§:.UU.×ûŽıñ°PMKAº}"ÙX 1òùA ¯¼Yé(äRdN‚Z žï©ûÔí'2Ïî\Þ´ue‘É„ß]òQmسtט’Q×´t¸imh÷ã‘/·šÉ´?8_O?ÈÃFê>¿;s-YR7毕³%ŸT2?&¯Ež™²Šç½( 4Iû¸4 ™LS³Ò•@‰6ÇñQø°ÒL›x’ïž\¸îF[4†¡)=~ªuJ;î²Íøx²kŠxÖy +ksw‰;AÁRDGš2“þÖyÞLš‰Óh”/¸åTÉxw©"—;]Ï.ó¥·Äð%|-ö"RŠ4›Z(ýˆkþñÆ÷¸˜¸“:§ë^Ó¯ZT|ï© “ ^AS€)Â&¼¾wWH*OíУ +ÚŸ´S,¬‹yˆdý¯zÖä™E*ˆÇ1S«SÌ·¤4*5l#ÿ<Œ/,ã½Åœ)rRþgdcž²Êd>+ž}d“nS•$â-}[]”Ëé—E¢Î­ë­º.‹±éÐ…q·d¼i +ûaÜ™RlŽfñõ)FVe–ë2…í÷O»v?¾’Œ¹¦å0¾rÑáH*d±žÂEå…ä¼®j}{b|bsPœÁ4’tõ :ž:Œ¸ò AÖ¯ûzp)Æ~ªâ é§ÿ¼Š'® ì>Å•èá¡>Ö‡flŽOiR¤3âÍ!%׋¶ª Àìiµ®Ëµ!AíYaN¿fƒ?®×qp-0{TuuÿqÑhìÒ—Š2Ò;ŠÂƒ7±;qØ©ôaüø7ùߌþÇÇ!v>ä“–U`.üòuç·ÿA¼âŪØ`&Ó@y¹q¿0„aäïžý¤{ +¹ +endstream +endobj +125 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F212 94 0 R /F297 575 0 R /F301 576 0 R /F304 577 0 R /F311 578 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +126 0 obj +<< /A << /D (cite.graph_better) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 137.083 345.77 148.341 353.934 ] /Subtype /Link /Type /Annot >> +endobj +127 0 obj +<< /A << /D (cite.priximity_graph) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 151.07 345.68 162.328 353.934 ] /Subtype /Link /Type /Annot >> +endobj +128 0 obj +<< /A << /D (cite.li2019approximate) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 165.057 345.68 176.315 353.934 ] /Subtype /Link /Type /Annot >> +endobj +129 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 179.044 345.68 190.302 353.934 ] /Subtype /Link /Type /Annot >> +endobj +130 0 obj +<< /A << /D (figure.caption.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 218.443 331.488 225.068 342.676 ] /Subtype /Link /Type /Annot >> +endobj +131 0 obj +<< /A << /D (cite.work-in-progress) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 91.661 266.585 102.918 274.839 ] /Subtype /Link /Type /Annot >> +endobj +132 0 obj +<< /A << /D (cite.seemakhupt2024edgerag) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 105.825 266.585 117.083 274.839 ] /Subtype /Link /Type /Annot >> +endobj +133 0 obj +<< /A << /D (cite.wang2024mememo) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 119.989 266.585 131.247 274.839 ] /Subtype /Link /Type /Annot >> +endobj +134 0 obj +<< /A << /D (cite.yu2025ragdoll) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 134.154 266.585 145.412 274.839 ] /Subtype /Link /Type /Annot >> +endobj +135 0 obj +<< /A << /D (cite.ObjectBox2024EdgeAI) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 93.715 254.63 104.972 262.884 ] /Subtype /Link /Type /Annot >> +endobj +136 0 obj +<< /A << /D (cite.Totino2025PhoneStorage) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 107.85 254.63 119.108 262.884 ] /Subtype /Link /Type /Annot >> +endobj +137 0 obj +<< /A << /D (cite.Xue2024PowerInfer2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 121.985 254.63 133.243 262.884 ] /Subtype /Link /Type /Annot >> +endobj +138 0 obj +<< /A << /D (cite.azure2025vectorquota) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 148.157 206.809 159.415 215.063 ] /Subtype /Link /Type /Annot >> +endobj +139 0 obj +<< /A << /D (cite.shao2024scaling) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 161.449 206.809 172.707 215.063 ] /Subtype /Link /Type /Annot >> +endobj +140 0 obj +<< /A << /D (cite.zilliz2025hnswoverhead) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 174.741 206.809 185.999 215.063 ] /Subtype /Link /Type /Annot >> +endobj +141 0 obj +<< /A << /D (cite.castro2024azure) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 212.483 182.899 219.108 191.153 ] /Subtype /Link /Type /Annot >> +endobj +142 0 obj +<< /A << /D (cite.douze2020faiss1t) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 221.809 182.899 233.067 191.153 ] /Subtype /Link /Type /Annot >> +endobj +143 0 obj +<< /A << /D (cite.optimum2025storage) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 234.715 158.989 245.973 167.243 ] /Subtype /Link /Type /Annot >> +endobj +144 0 obj +<< /A << /D (cite.work-in-progress) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 229.826 111.168 241.084 119.422 ] /Subtype /Link /Type /Annot >> +endobj +145 0 obj +<< /A << /D (cite.wang2024mememo) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 243.018 111.168 254.276 119.422 ] /Subtype /Link /Type /Annot >> +endobj +146 0 obj +<< /A << /D (cite.cai2024recall) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 118.048 99.213 124.673 107.467 ] /Subtype /Link /Type /Annot >> +endobj +147 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 436.803 430.229 448.061 438.483 ] /Subtype /Link /Type /Annot >> +endobj +148 0 obj +<< /A << /D (cite.wang2024starling_sigmod) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 450.777 430.229 462.035 438.483 ] /Subtype /Link /Type /Annot >> +endobj +149 0 obj +<< /A << /D (cite.pq) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 508.335 370.453 519.593 378.707 ] /Subtype /Link /Type /Annot >> +endobj +150 0 obj +<< /A << /D (section.6) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 353.261 261.053 364.701 271.992 ] /Subtype /Link /Type /Annot >> +endobj +151 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 543.471 262.856 554.729 271.11 ] /Subtype /Link /Type /Annot >> +endobj +152 0 obj +<< /Filter /FlateDecode /Length 6061 >> +stream +xÚµ\K—ÛÆ±ÞëWÌæžpN†0ú ø^Ÿ\Ù–l%ŽÛr²µÀœ!" åɯOUW5Ð ‚1:Ù F£Õõøêɯî¯ò«ožåüûþ™€ßüJ\}åD™Ù\\-¶Ï޼ͯ–Ðþç«¿øòl0Ô²‚ù’÷¾x*¡¥hÉK'ŒUxÅÈL¤/üñ©Y€c1N’¼ÄÞuõÄ® +Ä«âÂ]¡¡ÌuÉ®JЂÉ+§ìBü +ð&y/B±“A©=OÞùÃS)Ä +£= ࣇçæ-ÐmÑR%|ùÔï·K%2gPç)@µÛŸˆH€ó¢8¶8#¿*Šüs:J"JyÖ£¤Zˆ0v·”e©Å´ +,]H!2r®0ºã.2av¤(žˆ€½ƒ³þ—kÉ6kõ⺛G†œëIf0…—§‹CU‹Í®íÁm€Òí9,mmf”˜Žš\Ìg¢€ÓF¥ª½óA´zÊÕÕ îûsó!Ãî°o&ƒN â]OÖn÷0)G€”|2Þdþ;$ÇßÁóËJpe/ˆ¿S¼àp´§,÷î0ªฒc­ïšÝí$cDï8åñfòÞç°Ema‹ Oóª=§†0:ø±Ò¤ƒ¤bvzBÛ4K^G =˜-­E.´ilßѯOvTÛºYÑýà¾#ß'VÁH8! tùY çëeÕ­Z´e Fõöa]úão¸gßèi€g¿€UQS…³ßß & AizEWUË-[оt¹ÞmWüðT>z÷¾“õñÿ€ ã€[P³íöï¦ð˜´.³%/½í*TñÈFV^ª¥J4a.P+)Ù×€ƒ €&é©ää(¤HÇ0æôœàå…û´9%Ún›Žaíé9æ‚ŧͩ ¶$C¸üô”ZgzÜÿí j¥àz½ª~«½ ´ŠA2!ë 44zå=[ ê~5Å@Æ€1Áùƒx¿¼˜4x"PŸ9Ì|gÓþ3P‘z4†=ô€Â€ÆOšSbÌn4†ugHf`<ÒþÞ܉Ÿ£a󀂯V[¾êê-ƒ_ßp?Ë’¬¶w¨¶S‡ªAGÌ9÷+‹‘!+Åì9¶¦­Úw-5ùÁÈ©È#Æ‚'^­—yð4ˆ=J‘6x¼»¶d"ö=ÊŠW¤HÞý’b ðî(GãQ3<ùv0G稯a÷7'ߣ½|€ßÝgMÍ=lœOÀ3Ï +gúáJ…®9øÏÞMG—¢j¨•K¡ƒSß×^KKïS| f‹7Ü5òôàvQZŽ!”³ÃÃÔRrjµnÏE "?UpHJi’WÝdô5ôAµiÿ_ó\>«.í“—‚Rñ‹¼% 6·êbˆ¬KhQÉðz¤!“ÜCá«ãîCU™iRÁ¸Ó3:Úí“&¨‹)üä˜ÎLX˜ %éŽZ‰ûKƒ¾3Ñ™m`Çûä>B€†E‘c8®à Ö!‹ÒÀ)3ÏX×Á¹\x.—iI¢ìÛ±¿º>4ËÁdï”À®™Ý×÷Õí#;\zFxM³ðÂ; ÝÃ:¹[ãD«(tev #ôãèA>;4臒‡=T7ëò8 ÑÙ YR +•iðÚâEkù~ù’MKÜýB‘`Y +€¡ñž™,KîDÒÿíMߊ0øi+ŒaL„b ÷ÆŠ aë!†#Ctl!Šž (Ã?±„ì“Z‚ ٱɠk@!» ;;¡åEo#¼Œ¶Ì¨ÝÂÎAëwtsé™PC -ƪ“–]N+‹{“]/f¯Ùõ+ÀŒß¯»©ýjàðñSMªr9¹Žî·Õ;òÎqSÝÜaþvïø°VN@A ¼óÖkÞÂ1ÆQ´h Êfà Ó¦%kBŒ˜îù´éÚÆ¤lN¦T¼[z@et!@aÐ#(ªè{´«^ƒšÞ¶cäèðà}¦Ýž+Ç çwÀ}~JM,HiΫB@¢ì·áUÅ-€p< +z¶$=l=¯a å¢öµWy +°ñbÌ}©h²Æ±–”ÓçàiÿKÕ–«ˆ]ÆQ<§Á¬pÚý-íU¯ÿ¤åЙ ~žgJ¾çp6&GÜQRE\i —ëÑ$§w‚9*‹w÷¦þ€ RypG"¢¹œoz›Æ‹ ƒÁÞ:ó—ñH`6½"†K‘O¤(2eË@‘0OËcÉI )É“R†æj±X=tÕ-‰wF¿´Õm½!½ ·±‡Ûåê~_-ƒõ¾û±€§86d›?¬WÒ!½@RFØ£Z ¬¬¼†XPÒ:ÒQlMC¬w›ev6küâuŸõbQ€‚IŸ}ÿ,ÕVR,/ºôÂ{ÜðÙ«­¸úz÷ìÇè+¥ÐeÆžGƒO|µ¥TáFÑ— ½¬ï&“q&-2åÌG~¸b|÷SnÕSnMÙ#%*–Œƒ­œÉ!K¤$Ú•í-x+hB©¡›’;L¼y=†Íƒ1’±1âQü×-¹œe÷Y/{†VÂùÊcíàñ·¶³¡x§î=*h3ÿ¥ÙtÈ¡šÄÃ2äX ßì°|@÷Þ$m9î.ú²#QëWf4¸{q¶fSý'S{Ô?h¥8´ÈYÖ]HïRWïü8Ÿ=Ä,ß©›EGAêÀ¥'”W ”Sãõipµ$SŽ’ªFÜÍ—!”J-G˜W >ùçtϹ#Ì_…Ôï|…ß´-j†J*a³„«ÂªPNlŸµÁt·2Øì|P;Z'vYp1£¿!5°óD±Ox‡˜ +sö¨È«|ßoþv=×Åì:iEY¡XsõkC½/B¡Öb]¯†Œòî?Rd‘A-Ð4`¤~'ÃåStÉ•Gá~î¿û3Ç,diûð´*Íì;Ë¿âC/…ð;Ä›ñnˆ–g'Š$ÆóëR€ãÁþ¯;Ô0J9DJçqÀ{ ÀÂ#¸†ßo¿ÿùÜâ£ÓÐi”êóÏö¡¨|r}\{?(±ßܼÝXü8Ê·zC)/å‹Åa_-c +̓õõþá’ãOr¯­ËdnâLŸ@°ä ­>³6>é»P2±À )7ôD|sX’~ƒÛ»Ãf3ø¬nqè1.î×dL&yI€úfÈøv |kö¤¿þéù_9Áì Iãl±’Ð<îÅÑ·§:ÊÇëY³ Ÿ[ÝÖ„'N)u­û•&QMÂ/eÇŸ{Ûµj~ó”Û5¬5½3yv¯â–“ÞjŸ´Ã8𵻪#w•£…?û¼ +^ ”'Õ†¥?«n½óQq®ºVj“—e2¹)OgµÆú~“ô¿”k#2çT2„Õg¦´p§Š¤ÿÛA–‡Óh»Úî(LôH ‡6d&O]`Í9zû88ûlÔÅlÒw”'¢´X†ÓPäj¹ ¾š>”äzœ}5ŸR,žr—iɸ¹O¯f”øøÃÑCô؇¥¹ZÅ*/ ô%¶EƒX{S`Õ±­§fÚ-#«ÏHx\–ˆÊ?ÓNŸqÞ>(øïª0 +ÙWÍ;x冚ú ’Tc/]·X5<Ÿ4”ªÀ¯Ë‚ï[`nòY_ ³_¯*–ãªë?›ø†]r>ƇÄXT9‘Ë»ÿñ€ÞÞ¿¼ŒQ®²½Œb`ñ†ZØÁ•7Gðû·é÷Bñ59~Û%ÓµÈòd\Ç`­VéÒþoyUAw*ëB5®ıbW¿£dJs¦'¸€ŒjÔ Nx$¦\¤c¢ƒ›ÛÇtŒP„Ö÷^m‡ì†¯t’ ŸÉO2¡Pº¦rŸj «¹¬Ë{墨ÉÌþá¿6 F&„k(.¸X75°L{ +(e2ê;}äY}m× XÞÑ5rÁűäpgðj¹¯äí’¬'#Ô {ôMw +!€7”¹P Z7p6[ö—Ðjlv-Û;_ +NÉÉåC¹+Äþý(•øáqIB¿ú?T|E–|6À!K¾?4…¨£äñÃÚ¡a»ªV p q±¯=½èn@ŒóSô‘e > +zä\%z?‡c³>ÏÕУ¡žn¸°a[5«(Åæ«&ÔÂõûHSÜœ\MáÀ+‚ˆ½c9>L*µÄª:Ï«-‡J±­»¾4UË#GÞdGûa쯣ֱÓMAT §—œZ"~ÏÖ—}† +ÊIkiû¼!·égÓ; tÿ؎Ljª‹÷5‚«¬GAÝîšBm€ô1Y"Ï{ÊïhÇåëU_¤ñëjåF¡µ7TMÈÜö +‡né7Žšöu +45†ú»M™¢®³\^ug°ŠÂºt»S¨­S"ÀÜÉ o³IÃŽÕB+ìBjÁÑQ NLÁ9¨An°žùþ~³Š¼ ø½­6üy±ïÒë~8õà­OÇ'T¦L¼ —°\ì§nTÅìbà~²h¡êuðžEtT®¬¾”E&r&ÍëkÀL¾àTàáƒsø¦‹©ðyy*°O×^ñ®né…†GxØ×;£e÷¯ï¨ÑŽý^|æýµ‚#S¶Qúo…]Ú@…¸&÷D…ÇP ÔÃ@1•ø0¨€ûª7Ê Ñä!sÊ,úÿûSö ¯Ã:ظ÷g,ǃ-U©Ã-z‡û¶›/6•7Pд»ý'Ë>8@ ~À#À‹û×ü–ѸíõÐÂgýt§PŽ(e&CÝcøò"Dºðº¢Ÿ£Úb›”àm(åóµbÏí¸Ú‡¦=¥z±,Tb”`óv8¸\¯Œ– +èÖñrîÂ2 wˆq¡‰ jØ , +ÆõfÌeT9í¿W õÕÞ ª)0mXdJÚ>¿aQ¥|æªë#¦½'¡Ž>è9ÒšŽYF-ú:MR‰þo.x-V…Š©ôo½Ù{òE5Z\dJ€ÁÙx…àNIæ1¥Dˆµ‘‰÷Ï>0´F¬@8§^rSÅ# Ç—¬É÷ñ!mÅ¡lX„êßÊ t~Jð°ÀPÄÏÐu®òþ‚ ®Í¥›øú»Ï¿ÿž. íöœ‘¤t•¸¤mxNùÚÒ51¥ÃEŽ5¹L9Nµ¦ê½®3ÿ9- '˜Žÿ7¬í'{bœÖÃì‰b íÿ9–JFÆ–y°á0*E±)–zæEüÄ)ÄÉ(&«,ŠÙí¡¦o" +ç#혊º¡GüÉOáRžI0íˆÃ üß$F-Ú¬tªˆ‹¨‘+¯,~¤^L}vûâõ³£,+< +endstream +endobj +153 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F212 94 0 R /F293 579 0 R /F297 575 0 R /F301 576 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] /XObject << /Im1 580 0 R >> >> +endobj +154 0 obj +<< /A << /D (algorithm.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 177.368 545.772 183.901 556.96 ] /Subtype /Link /Type /Annot >> +endobj +155 0 obj +<< /A << /D (ALG@line.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 227.264 509.907 233.796 521.095 ] /Subtype /Link /Type /Annot >> +endobj +156 0 obj +<< /A << /D (section.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 212.831 350.504 223.981 361.877 ] /Subtype /Link /Type /Annot >> +endobj +157 0 obj +<< /A << /D (section.5) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 280.367 326.594 291.518 337.966 ] /Subtype /Link /Type /Annot >> +endobj +158 0 obj +<< /A << /D (figure.caption.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 259.586 298.699 266.198 309.887 ] /Subtype /Link /Type /Annot >> +endobj +159 0 obj +<< /A << /D (subsection.8.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 120.789 226.968 138.951 238.156 ] /Subtype /Link /Type /Annot >> +endobj +160 0 obj +<< /A << /D (section.5) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 113.82 179.147 125.129 190.519 ] /Subtype /Link /Type /Annot >> +endobj +161 0 obj +<< /A << /D (subsection.4.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 179.83 107.416 198.17 118.788 ] /Subtype /Link /Type /Annot >> +endobj +162 0 obj +<< /A << /D (figure.caption.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 344.746 533.817 351.371 545.189 ] /Subtype /Link /Type /Annot >> +endobj +163 0 obj +<< /A << /D (subsection.4.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 447.21 497.951 465.372 509.324 ] /Subtype /Link /Type /Annot >> +endobj +164 0 obj +<< /A << /D (subsection.4.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 536.343 386.131 554.828 397.504 ] /Subtype /Link /Type /Annot >> +endobj +165 0 obj +<< /A << /D (subsection.4.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 460.082 362.221 478.244 373.593 ] /Subtype /Link /Type /Annot >> +endobj +166 0 obj +<< /A << /D (equation.5.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 391.263 324.125 397.981 335.497 ] /Subtype /Link /Type /Annot >> +endobj +167 0 obj +<< /A << /D (ALG@line.20) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 371.239 204.573 377.809 215.761 ] /Subtype /Link /Type /Annot >> +endobj +168 0 obj +<< /A << /D (ALG@line.12) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 544.04 180.663 555.344 192.035 ] /Subtype /Link /Type /Annot >> +endobj +169 0 obj +<< /A << /D (ALG@line.14) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 487.024 85.021 498.18 96.394 ] /Subtype /Link /Type /Annot >> +endobj +170 0 obj +<< /Filter /FlateDecode /Length 4583 >> +stream +xÚ­;ÙŽãÈ‘ïý‚5( Äa¼ö­í9ì]{`»k1ž}`‰,‰h2®©ùzGdD&“UÝm heFÌŒûÈŠv§]´ûá]tõ+àÿh'v"R¡ˆõ.*TZíŽí»½ ‘ÄÒÌðšfÈ®cÀ7nåîÛþÝßáßõÖ»÷ÁÛüï¾ù^äÙ.óD&»Çç]B—–Àä8à ~ÛÝ?ƒïëÓ<ì³ Ú¤– ÷ÿÿø?ß|/#±½>ס‚Îj¿|÷þÇiý‡×qªZl«àÛº8 EÒÈã¹"ðè¦ÈàØ·OuW4r®OçCY†}Žçq‡º˜ŽÕ°?ˆ8øTw'š»_ÎvÊÜ1\Ïý@Úº«Û¢!è8õCqâC<÷ûCôÓe¨» ¯¼³8U˜(øÉT˜å9]ð¥žð;qDŸ<<c…ëK2þR¼ÎežŠ©î;):ž2½ÀœþÐTû4ø„Ó‚U«¼ýò¡òµ+ÚúH§b:žézУëA£ú9RúXWpÓÿ×Ì(z¥¾Á›¹è±G·þç(Ž>LÕe¤®8h€Cø&FÒç‰Ç;‰£4&´ô]c¾$‚‚~F@vÃÍùi¬&j÷Ïô¥Îœ¥¬ÆžsÁ>a®†»¨#,ç§s8ÆfÝYŽ€Öú`¨vÅÙ:…¤Ã•ÅÓEŽ8ž,S'S[‚gq(⯅³DŸ“æR®¿ˆôPå ü4]ä"xßœúhÛ’Ã8¦Ïƒðî>îÖýÿ}·û§Y,V„´Ùã¹iûþÉ 3BÛ~ª¡Reø:Œ"é¡H¥¡H®´gÜ®x®,ªö vˆZe ÌÄìS0‘¯™oª[Þe(`ŸÁFï0p±Mç ­S#©,ÌY@PÃEð ›µ4Ä'By‰‚åeHSþØwG›*à§8 ^w zŠÒí·ÁA G¥ÕkM_”t)X -R‡(ø×°0ü6 ì¾”p~~Í´Ï klh¶$Tõó+õQJø^yê],¡´úÌ©`Gø%¶p@Kô-çÁikZ£Vû…Ï‹òCeÖÏWÚUït–ƒ©bj'·oÑñ†…•6G·æÌ£™NU¨#Þ𯩠08ûDóÎ] GïÚ6»™Pq¨u¾Þ‘Ä w¼0Ä©¥4T„þùXñ$ÒôÔþˆˆy¥6Ü´ÙÒY4ªÖs\Õðœ ÇLó0NØŽƒ®¨?‘UÄ^ß™lqÁ‰ÛöGPfðw‹AY=ÝWu®è((×*Ê-­5Þû$ר:¢¼ª(ƒS£L™Áž~Ñ’Ó˜gàp ½ÔL†ùÀ'ïÊÜAè­XeVUô3~(étX$ã7€<°‰i™ &Íìä‡zA…ÃвêFnzxËoNº”w:Pdà1ØÓ±Î4{¶ÀÌàÂy,Ðl«©U°-Þšêã܃µ€ÖZZ½ÜÑù ÜùÕ•HÆP=™]p)¨ÇÖ°ÄA Ù@ÇÁ­k²Ö*(ŽÇ~&7BYÿB‘U‡yõ©cól§ÃÝVÖ•U¦¾˜ƒÂIR‹’~*¬ÇãÜ0vEwµHÑ^ÀI”?ÐQ“'‰ˆ}CKÃZàÿ8ÆçèLt¢v +ôM*ÒµÅKÀ++ÅÕ0Rωm"ƒ–tBWúƒa=ýeI~©…²Cc‘ôµx©4 ÓDú’ŸÆÀ +bÒr&‚Ö¦ ñâ’&N)à$¾ 6ç‘6KhØp87N”€1j˜7•TÁ4„󩆧¹‹ªGIm¾}ç­bgñV±×2 +·„Z³ÅŒ‘¢«Ç–m¢XÊE±¡~¥¡;¾6L¶ªÅLCÆúBCü,Uª¯ -q”Ùx¥¡psÂûÆu´€˜!µÞà¥Aæ}I¤ºI3"À:|™ÊW×ñfÀƒãL"šÂÂWlºu0 öNK+‹x‹, ¯“Ñ72\Ôe‘1KCcZ˜èëÑÅ ÊXoÀ«åfµõ¾–*ñ6Uî¸Þ}…¯WÐ}]H +Öè§}&Ao}ÑO8/û%ëmW½‚L¨õ®ΖUW¦þP™H/Jk¶ú‚™UwÇ~`­ < „ÛðÑT$ÃH'++ð&·þÕp:ûÜe=çqƒ¤1œº$hÍ ÆsÀvÌjþ…Ø?üboæË€á?Ôæ“݆†‘yF9ã ¹ðüÀ±aN^=k ‘‰ ¡íÂ’#1 +à왎Ôcåo97púå(i +ÅØµÁ„‹.Ì÷9À@ÑIð4× Ç +ý|rÊg¢†¥±[Ô{¶`:4–ËBgæ wì6äT&I(2Æ–±O‡ñ\5F+ÈÛ܃ȕû~Hs~:×ME#ŒE„BÈ 6œÚ;Ê 8u=xÇ-¢ÅÚ„Ä‹ºH­oÅS¡¾•öT¸Ã<ЈRÒˆó-À´Ô5:;µ4LMØÙštÂR´ %+Õyáy‘úñtnØP°pã~"·Bg+ˆÐ¶¼Mr„`²c„—KSû_1€YýÅz‡SQ¨D¼² $beÍ!‘·¯2T|À©·²f5F¶öoàŒ¡eë÷Ï“q”t¾èŸCsÒð‹Ì=±åòw„7ã°—ãÕ6_B¨0ý(£¢§Ø¦R@å‹Ô:ÕJ$k)Q¥#<62‰ãæ“°:/ÄØØt¦çðäĹ/C)´Èòh–2Ôñ"\)ãÆ{õ|RårpàÔÎÅnd´te´/¼•Œ—줙2w‡-/2 Ÿi ƒgË:É¿Õ4{=Zrz ÓüúƒEÝŽëäÀÕ nõ†HáDŠs ukƒŠ’ÄËïzø*/}“5ß—½›b3]>î€Ó¹˜Ö;ðúã–û-â b4›w ·]kPgÈLǽÂåµ9®qŽtŒ&”qþ(Í0†÷ +ËŽÕó&ôc³¡Ø¤lèÆ¡tA[î¥ø +1fªÀ³¥¡Ÿ#ç§½D¶‚ÆÝ|šc·±\›^q­ ®’å¶0çÙͲ›¿zÞOI#—¡ÆëÖ¿º!*Z´µu•’{C×ùXÕó–˜g „”Êåñ×GT”R‚£²ƒÀ¤4øÓ! IF`«€+ã=P¼°¾øGj—)‡M¾áäOEÝO¿ÕІ.=mѦÓ4TYî©‘««×-l°8žÙ2;gC8gC® ,&R)ÜO¬ÌšÉ™ìuŠÀb‹Ûu,=Ž«á{ÚPkÆRYÙ¼S¥-ëåâ”ñÇdj]N飗Zw—&¶ƒ ¡ÀЩ„ohüBß]½>øaëiÄ?nrµoçÚÜ­@ƵbÙù3W³&.|ƒ?mK!Æ€ „]slºœvläÒqßÄtØh«éLê›u ñÌ(¾©½«¨±¨ ÓÜÜ´¶$ƒnFBäl£cæd½æ ŒÐ÷ͧ͸"¾—ìÖú?Ð]›^ßÃÝû²ˆ%ãÿ¹ošþ:üÉ’ý<%ÏúàŽ*Œ3›³; žgz× Å5戆=C3ˆ`ýLµq“é±p'Œ~¿2íTýý79ëW1¿½)¸IMƒøà+-Åâ” z܃-¢€á/×ï‚>Ü{ô§×§¡fáú¶!¸>V[2uEÓ$JŒ]Ò){rïÑeDwVd&;œšì0öjþ¥X=d‘~‚îpšÙ”Ó5™W×3A2‚\ÇŒ?ÓoAßÇh á¥^´v{°‡-ùÑ}\¡X 2¢jŠá„/DL§¬&°ÏõR†dÝp[°`£†@çôÞ6mùPq–îT¤€eû/üºIÊ{oGÀ‹žMތ”2Ø|†Â•ª%î·µ3Éú[„}ÔOw5œÌ…ásÞsU˜ø>‹]RšæD¶¼€@¨U‚0 ümò7Œ9þæ] úiçfª¨À!zÀˆÿÞáÒ£Ÿ’‘Á©ö²qD7TÑ*L3ÆŒ¡xÑÌ´µÎèÕ^Y°Ë•[_‡)¯î½½8N¼h}Xæª[l¡D˜)á.2›ÁÎ2K@è*Çá®”mæÉúf¡(µæ +‘iö’¾Ù²SRäaf£û¥@ݦɢ; ä›·¡6 ç^ì:æ€+Ì­ŠÿÚG‡Hæk»¶JqwÓxÅHŸ¦²Üã=Û2ý÷Ìà¡SHÝ»:Gä10F×¥)"!Æ:Õ…#ì¾Øü‹\¼=ì8ˆK?ÅlÕÅH][,Àh$¾>O¦C[ðå\.–¿AŠŒwç^)æ×ξ+ôQf 72C‹ JsÐÈ~Õ AØC¼“¢Œúº"ÀHeÅŒâŸö)%EÁ×ÄG/œïÐ1'“ô¦š€a0Á37­gpïy­N£H´þ0„“É^ÆÁïï¸.îØŸaƒJ¹Zmü sN›€7Ñç«:«-¯išÝ‹ÓÉ>…¢¸|¤î¦rÔ>ç`—óZšY#^»÷ÐiÇWUÕ¢7î2¾Î ÀÒöXæãóɼž<(Íò† §BêÿƒÞÖò$ó O[1 ™–žJÅÜâ¾*,@Ûü“•Å9<¥"º+B¬ࣃa¤Aã )ýpœAJŒ*~âµ¶ò^¹½ÁB‡†YÈ?ÝwŸñzã8 ‘qü5›á:gB‚GoÃM«\bé=éVôNÙ4æa(º„a1Ùä7¥@+ÆëïDŸ¹>ÇL¥X/¢—WF“&Á/Ó@dµ*Ù4úË›ÈT:Ô™¾s”ü2Unj>«Eÿõ9 +˜ógëEö¡àï ¬ó3¥ü„»@yûÖ½T’…Z¥ëm>§gÜ2X”¯×rä>5ú˦mŠ"}]RÏsºÒ9ñ¨ëÜ6γü$Rßümx–†ÊÝÇf.ùï_VÆEXµ…÷—;Ec|Ê¢|]ÿÑ eüù ºU%r¥pØitùYkˆ Ôú´ &Ò¸/¿ÿL‚'Ž5Ù¡õj?êkì$Nv¾oÈýgW±¦×j#† ä.iï/N¿{Â7v]¿¼ÔGß”RÐ2Yñw÷.d©!ˆS±ZôÕ–Ž&ô¸Ù³5¦¼J¾”Mym¹ij±¼FîláÂ{ØïQŸ’¤í×D×NÂ<Å—×Ï»ƒ€6Mà×dm>Ð_òÝ㻂ÎÕ… +endstream +endobj +171 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F206 92 0 R /F209 93 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] /XObject << /Im2 581 0 R >> >> +endobj +172 0 obj +<< /A << /D (cite.douze2018link) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 476.44 637.196 487.698 645.45 ] /Subtype /Link /Type /Annot >> +endobj +173 0 obj +<< /A << /D (ALG@line.16) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 543.385 515.407 554.828 526.78 ] /Subtype /Link /Type /Annot >> +endobj +174 0 obj +<< /A << /D (cite.cui2022dvabatch) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 448.993 422.002 460.25 430.257 ] /Subtype /Link /Type /Annot >> +endobj +175 0 obj +<< /A << /D (cite.zhu2024nanoflow) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 463.161 422.002 474.419 430.257 ] /Subtype /Link /Type /Annot >> +endobj +176 0 obj +<< /A << /D (algorithm.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 436.407 371.945 442.939 383.133 ] /Subtype /Link /Type /Annot >> +endobj +177 0 obj +<< /A << /D (subsection.4.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 485.163 217.166 503.648 227.716 ] /Subtype /Link /Type /Annot >> +endobj +178 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 434.556 158.989 445.813 167.243 ] /Subtype /Link /Type /Annot >> +endobj +179 0 obj +<< /Filter /FlateDecode /Length 6041 >> +stream +xÚ½\[sìD’~?¿ÂAÄ.ê·PÝtaaáç0ÌNÌÀb‚†¹[îÖž¾˜–óë7³2«T%«»íæÅ-•JuÉÊË—9»Z]eW_¿Êø÷—W~³+qeôU!ª4ÏÄÕbûê§Ÿ³«%´ÿõ*K‹ª¸z°½¶WRgi¦ \o®¾õç‹›W½UyU¥U.ó«›»+£Ò\ 4KÅÕÍòê§äõfµ?´ýz;›K“%röóÍ_?z+aÆà­"Í…†1í73]%³2ÙÏÿÖÌŠäW¸l6ôú÷M}€ÛŇñ ys3ÚSfR£Šñž,õÒž¢½á*‹´*àV™Ãyy•W:5YIkG “#K«Jñº +¸Qùðú^ÿfwì?ž"Iø¦È²´¬â796‡Ù\˜äѽo;Z™ÛW¢W?¿8Ÿpþ£ ¯ñdÒìz7¯½¿ŸÍ‹dßîú³Ë(uªµŒüìâ2*8"‘O.™ ™êÝ»v·â¦ºo÷çV!s‘*aâñ²K«9’ðÌ*ºãÆnÞÏ㺔©1Š^èÚߚɵ©2Æqþ$'+W^6®I :/ö˜áØÐå¦Ù­úõÔTe™jQ¹4¢Ì3bߘ㡋°{™ ø…uÚWåyžÑ7 &<Ï?Ž}Èâá‚TžFÝ{™f¥ßûb³ïš®§}îšvµ¾…MdÉþÐQ[?yüp Uå÷ýù… + R¦ã «Ÿ¼”ÇVaßÌæZ'%¬¨L¾˜Í•Àk¥’/gó“&ùÏ©ÙDžë¡Å˪F ç%L\]˜¸ÐÁpJZ3=³ Çsè¦þ tˇå85K ¼ÿg®ù ‹W2UªdÏY¼D¦ÖífR›I´ãÅÉcHqêØ>™ÚU•MFtŽ×óÂõXîÏoôrQ¨X´ÍyÑ–&•éßL-²HuŸäÇË4¯¶¥ºð[”'p¤?å9þ33Ùä™·*óÍ4 (d`쌘:b¤«žk¡„²:2:_‘]8`Šü¢n(Ýðé”5u>°œ£HK\è—Ì‚\€ÜÌÜxµr¥z ˃뫲bDqÞÒЦøc¹š²Gyl +ù»ç’xéFù úéâoFê³â`Z–σÄKÉ}åÇoEîqé]{À@CUpPÖÛý²Þ,Ž›º·>i‘Ô÷÷Ö#ìi·¾yÙv}½[4g}v--H†g +*»‰Bh¥5ŽÙmd}¶Iâ_8†×3ÉÃ!åÉדǣ  9mÿÔ€t?…9.Zf™[„Ó'#•Ì]àEZ ¦ u™ó³âù›xwçÏ/ºþy,|éw"†!ÓR£ +MI„ÔÀj•ŠÁ§ÿ`rÃ"5…þ}È¿ßßO å€„ý¸UD¡ayÿ1mòJåã –ë+OñÈ^Žo¿®y6Åñ§ÝžÛÝÔlC-Ô´×rFyœŠµ”¹A*€måAôJ?9Á B<Å 1h•ƒh~0ea9Å%°PëRŒ5w~^sÇ`áËýöþØóÁYÖôŒyN7W ©j€ßÓÊ8Ï#e ¶OKPº„Ì•—`§ˆ '§Ÿ§„³²ÎåJ”ž~e‘ +5òsEq^whÔ3ê_^MkÌ2¯ž=b–‹gêá|]|2¬UUþûca'`Vqañlõò}ŸóÊJË©Q *LŠ*ÀNµÛã—M‡™ÅR£ÄÒEäíávQïðB%44ÎÛµ==kêæÅt4>’˜³ƒÖÜ•4s·,‹ˆÜºà”bo±ßâBt•l÷^jÞö~ sÛ´/´Ô.ù·æ.anÔ¿±¢Tm×t)5¿ž ™t<ýølîµ]&ÃÕaU©]/K@¢‘<¬éJÒaS»ÝZîY¶ìðʉœ¥@˜liùÐiq<Ø…Æ‚pš˜ÙÞM¤ªR-™b…ç d5ž†©¼´Ùš#Ï\ñ€Ngà‡_‡Oá"†ÈF³pAwHPתªâ—àähÆ…ƒ÷Å´È0À04¡%†ÈLG·Ž¸xÝîºæÐ³ná–þlÙæáì£é.¤«‚-b%À“èíkšøaÝ"íñ²c~¶2éVÍ¿xvOw/+‘æ°^R6õnÙ.IN‹’kZìŸ µ ÷h/ºã-1-ˆ•Т"ÚÝ×»ÎÞªè÷㬠~„K=;fcÙšúuÛMÈ Œ–æFТ8f†RŠ‹²ÌcTõ8É»¦5ò¥í±£_âËàË—¢dE‰vÇ-«ã5 OÛžsò\_^tf¢yÙü娏 +'Z‰ûHsQ@  ÑÙaÔ}y\Я—K, S“š‰sã´ýb°%2'ÈwOOHB™Ö¶vÔ®vtMm%‚8g{Ûî÷Š}{¿¬•H«´(™ˆoê¡.Jç ,I‹¯úuG¾­'ŸŒ†Âãš4K:âpçqÛ Ö3¥_Q”Êñ S,]‘¼žžÏËø5Ý÷ëýqµ¦k +â ÿt´(Ä®o– ßÈtŽ !s€Û^‚##{½UñÅ$_/Z’xFäLJ»zÁ/0ùK0ý]Øæµ05½[RÛùåäÁr2Àͬ0vµ‡@N:·ØÖî„Õz}»aH‘[<ÃÇx8î|»;Áãn C Óc®Å|B߈Ê3uÜñ¦ðšB¹ ˜=VÊ‚dS|rûH-Gš›&ø{„ºÛ×D¡äe"À2õæÈœQ=…)(:ǃG\€G­:tõ暎‚™·Š˜· +ׇí€UpP¢ifL Tl]¡ŸýnÃ…† O„c +¬=ŒOž ,‘R—~xäÈÅ1¾±8‹ÜV¬ZÞ]¬[ðXM n 9A=xHõ0ÌÇ·¸å¾­½à„*ŽiX:í8kX¡ËT€?ìÙ¤æÂ×ìúÚ#];æí#—üÞÁñjØ{ĤРȲ[â«û L@в¢éßZ£gTÒ„Bk4‘²åst¨ªà¥ç€A˃óÐaDP«øúã„2üUÅ$øö»™b)ͧg€p– 7KŽGwpG`g±Þµ¿ØzHl"ˆ¨3Kr\¶õÜCîÕ8Kh["ÝÂB©«f‡âßþVã3'Þ&ù¦§_v§Ñ!Ž$S"M#|(ä@ÉÁ«Úz ~ç<jÛ ôµZ‚1°ÓÔF`0®cM9¸"f¼“¥Ò¹]N9 Ú†1ià +)öî7;xJMÞr '“ÀP šÐJ´2 óÛzP@Ö,„ +è4ǪÒFjíªœš’Ubg…_@rïæp  çÈ‘¡f§½JÒ^žÓáÑO$º) n™2æêÝU|ÿ?¯<Ãê¢H5Èo´QFò.\c –¢þ?ÓÔÄpá·Ž7ή]Ó-â$A +ü6C×Îoüµ]zš*²q…õJàfœk¬ï71‡Y¼_XiH©C(¸ª—õ}_ß¶VÀl˶~7 o9>&¡Så¼Ekjlðf†ˆéé×=øløºg®2Øu}¨—íjKQõ +Uöi½°Dé:z¼l”6Óº%“©vÞcà›:|u{\®£®rY6ŒS† B·gáÐî»t*ý‘aŒü.3$ƒ§šeÉWötwõ¶]Ð@_Ô=M§Ö¬®…ß·ìqÁå 'øÙˆ½ùúÛÙ ô'>W‹ˆÁ¯Vœ3ö•3f±Þ„ö8ÚpM8).„Þ ÉAåX&d¡Km!];G.;=ǾO†1:uZ…¶È.w'·¢váÜ0ØÂñÞƒ+ÖÑ$Ðc]”vµjÜw!ã˜ÄIÅb´LóÐIÃxHNÑQ4„xφ/G1”œc(ÆÆPJŽ«ã}ÿxß.È)Àn8©y<}ûK±p'›•_usJÀŒÊÒ‚Yš¥#gG.Ï·.¨s.T§BJSE¿¹¡Ó™¶,|‡á”s¾l|ìˆî6Œ‰0$hi·õ‰¨%nÜ"7SÆ|N{W™ôÎqÆÞ¢Fducãyx:'tôŒtŽ ƒßØÝ–‡ +á"ÕÔ¸Á@ѳ ÆOvL‘Ç–ªE¯Oî.Ëíçwnw.úª80…AÄR)ŒÇ÷Ôn㪌xI”Â2Dï?uÆGÆ>ÁvºÒié|Ô–½+ Ã×[TmÜâíœqŸsA¼ê¾ +\ÎÅÞÿíÍë¿ÿzÜFàb¸«ÛÍI“£K™–Î%•*Êø†8: Ç-Ýø úTÏ^EÎ0áõ5ô®û£Ãe¤0ß~ð +Fh?tþýÚ*]p8@+1öÜ€7ÂF¸…б n ¥IÖ–‹—C-– veö”*ÖSûL1WÐu8¢Û2z“š1´Ö4j޵]dvý|iW_Û?ï)HrËnÕ|LÏÖ.eS¸|\8·È†È-ç~7^Wcܪ±°?wÙÔáûcá«Ö¤mbT,mbe­žsžÜù.jðú ý ßG0´Í9¤¥J…óAë%Æ/É Í^> 4ņ˜Xz¼¡jPÖ Ñä"þÚ3Òâ¦ͯãþ×/œ3¯ÊñE~zÎB¥Ð7îÿ3m³X{›’tõZµðZiLc¬¿3|Þ#0@µŸbfUÁö3^ÂÍ °ç\èrÉ—$m;ΗzUUMG(¯ ?ËõUtÒrc t=ê–Õ£ËBÖœ謳·áv +Ž×ï]ªÑ¹áõvÁ)L ¤ð'£¢!Ò·=);9…‰¢jÆ:]?Çã8tì8„—”ƒ’²ÄOÿ¡Ââ÷Lƒ‰/б½Lià9Ð*+—Õ‘ÓćfPïTò9%“Q©¸¨ ‹èˆKI«/]À¹TcÈ \TofJëÖB'ª…ózŠxµf›e‡\Ї7Ýi5Õp¦>P ÒÙ%ÊFærè6¿´í[}6NO/ ¡ã\>‰MOÉVTdàáå8 ã¢Ë÷,üÇé.3eªqP&*øþžñ¨A&'jk€ƒà^ú„ÿ¨©!`Ïý˜!îÇ«1÷ûZå(ÜëwæÖ§Øßj™ý]¨Öc6kÄ×."Uv ô”l½ÂpãXoFI–ÍI&J“»}ZO ÂŽ~Ù4O*Tà™‡î»è=*;¢¶P>®©éöñÔ +£¼;kFv‹*Ì·n<4EÆ6tºª2YVº§FëfU ˆí›îZ{3dm¯ ælJô¢´»û{pòdëKÍÿbÃyðôf²NJÙXðÖ~ûÒMÕC]?ÉÆùE„¹u§é‹„Ì `Jä–Ü•“”SÙ÷(95D88zŽŽóU5g|ë}> פgNY˜yg5¤§Ð&ƒƒ>¸ñä7‘šÒ.Á±ÃLºO¹Š$×ô{9¹…‹×"£ ~ oÉ6qÍ^"Ntºd`’óDÉ —åÀß²é›ÃÖæþYÄD€Ìé­§±Uaci• ø\$ª…–ŽUi”§‡Cãp©ó“uÔì£-Glë]Ûm]t°ÁÁå@¡X_…é„g¥è¹P¨4CÍßà,þót +üd¼FP¤­·¨tUNϲó%Vë+ŒÄOY{xú㬠Ð\“XÔ{a²ß}wf¢ +,ëEQ¨ž²±^ó…hHV‰hð.Ä߈*ÀÝá;A Ò.ÃÕãð½Lc†•݆VíâxH6ÞT]à0¦£YX+æè¦[ï7˸&_—Ðç ¾—·2øO?ôd(»as’¼DQµÁR9[7D +Âd‰ÏdGçzêK#Þ…|ò×è ©áƒœ“~nTžàü\Ì˦¦«Ž\ÖvÛnlÕ vöuIEáäÎEûð‚ĨÞR‡.üWSö*¨U%D Lj8ò;¶~Õvï,XÂÆ—ú‘àH#Ã)MuÚ£Ó:-,½¾¦Eq,aC؈¬ý~X²àpje±#ÞïïNúIQ¥ik„¤‡öž<š]aÑÕbáóþyP”“´ ¦ c±`)(©sÎÂ+Ûý¡çâdþÉzÂÒ‰%œë v•ÇÈœ[§ñ¥>íó4æ}ÇðñCNûF”³!7’ªz;i|PùGuí²'¸*B(}ì\$°D"²Dx×…¶rW0‹8vÝRÙQ1…ƒs!D¶÷ažÓ`càÀYÀhk!«Òe»|?ZVåñ§ÖPP–3§>å~åË2R–Øz¿¶Nƒ}Ô·ÒvUëÀÄœÃ{œW/‘xS·Û“D +«(,'J,°V±ä’I)MòÍGÿ gžÃxÖÜ­2^Tæa”žÝQðéØ>»°ªÂ?¼¶­ßƒÊûÕaîžR„Í爡åõL( –6¯‚?TÃÁ`¸wŒ‰=–û{ë”H,GxúqPžV…*Cë­2*à¯\§ÚE†Ìø“’ÿÞ4´× +endstream +endobj +180 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F293 579 0 R /F297 575 0 R /F301 576 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +181 0 obj +<< /A << /D (algorithm.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 288.645 595.519 295.27 606.892 ] /Subtype /Link /Type /Annot >> +endobj +182 0 obj +<< /A << /D (section.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 131.491 312.169 143.016 323.357 ] /Subtype /Link /Type /Annot >> +endobj +183 0 obj +<< /A << /D (cite.severo2025lossless) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 69.279 266.585 80.537 274.839 ] /Subtype /Link /Type /Annot >> +endobj +184 0 obj +<< /A << /D (Hfootnote.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 361.053 569.59 366.926 582.038 ] /Subtype /Link /Type /Annot >> +endobj +185 0 obj +<< /A << /D (algorithm.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 551.727 386.711 558.343 397.9 ] /Subtype /Link /Type /Annot >> +endobj +186 0 obj +<< /A << /D (Hfootnote.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 536.728 362.801 542.601 375.249 ] /Subtype /Link /Type /Annot >> +endobj +187 0 obj +<< /A << /D (figure.caption.15) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 526.941 326.936 538.384 338.124 ] /Subtype /Link /Type /Annot >> +endobj +188 0 obj +<< /A << /D (subsection.6.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 507.569 255.205 525.407 266.393 ] /Subtype /Link /Type /Annot >> +endobj +189 0 obj +<< /A << /D (figure.caption.6) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 499.567 219.339 506.211 230.527 ] /Subtype /Link /Type /Annot >> +endobj +190 0 obj +<< /A << /D (section*.5) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 443.925 159.563 450.643 170.751 ] /Subtype /Link /Type /Annot >> +endobj +191 0 obj +<< /Filter /FlateDecode /Length 5910 >> +stream +xÚ½\[“Û6²~÷¯P¥jk5µ#„¸ ]»§Nvgo•½xNå!ÉGâŒK¤"Rv&¿þt£ (ÉN=¶HF÷×N¶x^d‹¯_eî÷§W~³_äjaxÉtÆëý«ï~Èhÿë"c¦4‹¶×~!TÆ2•ÃõnñöÕ¿Â<|xõù^‹’•ZèÅÃÓ"—LK“fŒ/6‹ï–_ìž»c3l÷w+‘gKy÷ÃÃ_?#àÑ(Ã4W0§ñçæyK¿¬ŸwŲ¾[ü›þiúúx·âùò}Ó>Sû×Çê°õ]N-¶Ã‹©_=LVå,—fºj ‹¹µêdõ¸ÃJ?° 3èb¡KÅò¬ Õð× !S†e¬,…£ËÀÔãð= ÿK{8 ¯ç˜äYÆ +­Ò¡ÿ86ÏM[í+bùläæÑÑ<ž+\ &EžÎñ}&ÕÍ—ÁD1ø¶œ^Ù¼`Z¹m;XöãÒÖu;TÏNÅÒñÌüvÁÕæ\Û5Ç©Ï'?›hÀTi®¸RÌ€âYgÊ\Óq]m‚}Éuá_ðÓpIKJ”pßMƒ]ņVqQ)¢EÊ‚Eе` ¤ êz–i t3U*§ío,•ƒ.2¦´³òõÙ •.UêÒ“RÌRË©_ùçñ°˜2ôs3@<¼ãwãZ2ÄØåõ</#žñyZÊ2¥ßȹ™$,Ù\]ŠŒ‰¦õ*eoUÙ¬ +“ ßFžAèçè(Y)ÎèàÉrr8? b¡LÌÉR:‘—|?7œ©"ÿ•"9eŸ-`Q¯‹Œ ;AÕûÃð29:W¤ÝÀ¢¤v;§)Ô¹´§z¯üLU²B{‚ÆÝxÒ3ya%_¬’žWv(¶D°Pd2dà¢;Ì¢‚©\'ZozŠr6žßÌ‘RX+âz ®-ꀗ~ŸåÙ7Ëî4À%¿¨™›vÖž$ÙÎË{Öç|ïòOQÊœ†œ%ÿ¨« -‚)ävÓ]_m®,‚M«¯ ªP WúìÀ&š[ÂÁ/FžÌ ëëÊä­Ý ͯê$ÔÅ U"exåUd +v*Á +ÊÝ ¤§3‚4³sikå]§×OnÙÓD¿£§hùð’Ð îâÝ"½ÿÛ«ÅwvP*ÆW0FÉŒé›ëâ,ÀEäaUÍÓI†^b—žçÖ%ö¹e:u[ƒ%'º;¢ÕWÅò µp·¿JfQ€§>Yáý-W-ƒµ):õÇ‚÷vcÐF™å¶>›~hÖW…1ĵ@,4° e9w^ ·÷+O7,þÅËõ–òåc³iŽw%‚B\R„?6Ï™ #$†š´W}g@ç`‚äÍ_]bdˆDÍ$ŸÐ‹aKÂÙžBÛÐ]£Ë–o‡îT¬ ãPS” x;Oëá”Ä'ñVÅÎÁô +€~…Ñ)¥oÉ!Õ…sHáâáLjÛnõ÷úÎ,ßcxGÏÞz‚nICÂÅæ¥­ö`YìÍc5¬·´ep·'#½­Æ(¹%AµHpRÉv6ýÞšL…ާ @vÕº¦& í¡iä¶ÚøôÝJ/×Ýþpª1˜ø^PÈ[Á¢È±…KðË ÜOãöHQΙ,Q„ëÿVÖÖΆÒ0¸ÖË¿õÅ7ßPs"=µ?¡_OûH­ë®\‡ªïmp`ÝØ´nîT²)&eÉ”0q.„—¹ šÀ¥Õ¦*z€A{ؽӳ{êš)‹WGûfRaãK&Ò-8Ʊèà2d¤¢½ÛÅ—€W%Gll"@Ðc°ãÉ^ŸúÞn冚šöc7)3ü–‰>¤\ÎôaÛ VÄnn×°µÂœQ×lzz‚ûd‚Ïhã Z&KÏài/>[bwoƒíÖ–ËÇú \&á À dcO=ª~:9Ö»‘ âõL}ïnI˜Êh?R (JЀ`(,]£8`ÆáÔÕwöÁjŸOͦvM[wÑG§n­Lˆ‚B¥¶5ifè;4»]6ízZå8CžÁ˜)'òúÓc?TíÐXÄ—•0²pù»m]m5¾±f?+ý<ìC²‚ôCæi‡\/î qmê~}lâš;îB£SíGû–/¿û8Á‹Ðž0y:U®SYL²ƒ í'oþáž”…Û踱 ÷:$ÒòöyµëZ§`Ààu§–ÔJî’PÐÜYÝ]„\žÌ~ãOŸàµ“Òãœ{Ÿ+Ñ=ÁâéÒíÞ +§…×4. wOO÷Õ;Râp]{ñq#íÙN^ANÎ/˸OæFRž&3Ã^G[dÅ*9¤(îAóÜ"6– =ÝT@üº>¶—N¦—³ÜñááN Ô®RÁŒ› Yjk´J{Vîé‘·lØk·³@Åu €n+>AõMýÁÄO/n= {²7ÚÖáPŒÁ)Ô2ìÂõ( øÕà~ES;²x•KaÊh£—~»µ[ +W´¥"†@xg«*ì•ÝŸµ‡:€-z?° ˜E€”«‚q¥¼*$fcùƒ;ðõ¡ÝChܽ«Õ¯âd–½±>N‹—ÀÉ*"@jÆ‹’8–Aú`´Z#’ÏØ§W¥G?DÐ|ÅbÃU + =i2"M(&¤ãMÈl1šâaë5)´ÀS«U[ðÏÑnçŽ=™d\8êçÓ±Z¿L4êÏfd|sÀOLŽ—Æƒ¹¶¯ªzËÍ 0À“h­,ƲWAĈ\Y)‹ |gá%¥±¦h\¤Û´Àá 3"pvÑ–ržªƒ¢°i{ÒÞ¯°rv?úá­ÔD”¶R©:Í÷êÕ±wˆ þ ˜lù§·ÿv6]?Îær| f œO¹¯¬æÇÀ'a3ƒáੳ ÎJÈÓ+ð´ª;+© +çߪpåFÄ3Sbý–X7 1òÓ+pd(Ïš-¢KûÈs Ÿÿe/_v¯þÕïù.+?÷*š|¦¤Q*eÖ :Pèï¿ižc›!Ùl«ÀBÂëwöÜAY;|îx÷X=6»Æg×}i޽‰9¶YLà÷U™˜ÈÁ,>b0Ñ:"Tà­ãÌ~ÃÜOJ÷.NäÊ…uú0¶q+ƒc0AN‰ÓYJÂõ~÷™n»‰î}ØÕƒi4Íð ÜéWƒ¯ •ŽL‰dDâÛ†°—Êú` àÈM;mOÌ‘Î0vãc î\¸³Žºðçñ”côåÔ†¸Y9e˜FŒêv×ïÅ`O,!8~sïøXæF·Û¸”¬m< Kæu¯s8’T<‡Í/gZ1P®J° +Ž‹ë-hàº}5ŒÕ­»lúT…LÂy‘V1^Æ‚ð´ãqó¢äЄÛ ÊœÁý@%h„ÌGKºZ()S£e-4z%Ýí—ÅÁž‘W·ÞVi‚ÝÐòí]!¨òQ¢ÆÝW;WS:KÀ °ñøÆ²EŠiœZ˜éàïé¾r=Ÿ:.Ñ›’|‰‘¢%ÅrÝЊ~F7 nO †´Ž0ЄŠ>¨B€€t¡#Pe“?ÛH Ó}1£ùo{MKh@ô)P}3Q¸"ëýXô’¤P ËÇÒŠÀ7IþÂð £ÿ಄0êáDH}•ÃJ +ŽMLŽ=CµE{ afC¦ÄT0Rë"ÀÂjüá…¹"@+Dà˜F·5ºN‚Ĭq&lôßüÇDD3$ÞÈÕ á#"òW‰ u´8ÙlnUL–ùåðrP`š‡Tñq£¨ºˆ+.y³ +λX§ÆÇºÁ<ã¾øÉÂhï×`X½ä#Ö8hñgW.nÚÓ¥’éà?\ð°ÇWæÐ]2jS·Ýàǵ'ß”dúDñ°ÍzÅ“£ŸR3·)Ö/(õžÇ9ΉÎùŽâ¤²´#+÷Â5ºh³wF]&êÙ5žæ¡^‘Òô+TÛ ¿I*–ƒ«ŸÌoùsˆ¸4cÄU„q·]}mc¿àhWxiÎ3<…å þ0seáŠcQŸNßSܨFQ@œÑE:èž^R÷&›{3fx:²~ºõ¾‹Ùe:ªqœ¨ˆàÝVàp[—Çò¡^Ù%ª÷]pñ”˲ÌlUçKĘTÄËú ÂÑÙ:%Ñâ1B2MMlv¸øWT/òIÕˆõ+.ùHÒŒgŽe_žŽîx™åë~X½iŽôu’ó½Îe÷މYºàÉèt|”\•¹56Éû/“yʸõ–“Q„*°ØáñM‘¦ÄÏ¿T%wUÛæõ´Û¥¡´f˜ý(¥à@‰þ´“_Q ÀÀ/Q¯óz#Àº'_»Ä&‰5Q†qÌs}º+´ý–(ª÷”WÝZ‰^qy(›9â? G¡Ó’P€V®ºrÆ¥)A3À¾åŠàgbŸ¸qf†›‰}Â'VáÁ/)zêäz—3©Û k§þ±T€[¼¯B§>±F_Ò±=K˜ÂÃ(ø‚_-ÒVµ6É #¼ÏÏl`ù·NAЛ®Ö›k×õ4H“RÇ'0Êރ%^%xŒµÍpeõK©¦Rã½>èa5ôè©Ò¡ÇI U±VI0 ç3 yœ(޾Ÿ-ŠLŠñ“ºýiç”ö¼GÐS[åéÇE~»¶B–,mæŸ> nc4% +Štþÿ%š2ͤ‘^‚’—à…ûT=æ&4µ6lcÉWlÎç!™aé­* ?kI6‘Ö•=–$›ÁØ5åA4)´äјÿš‰¬Àæ1ÅݬlM@TN"OE€Ž!¡=Ç_šº8 ÁD3 Œ¾{;ãådJ z}>d¤‚'ü–†*Ôæ5í Åï^–Ñ'-y¦œ¶}®"\?KÕy¸Žß¾æ™‹¨|ëòÆæo4ó{ûݯÑ.õìîâ”;‚výZ†¬«‘ßöáEP(ò‚ÙŠ2Ò‘(æTì¦}ö\K‹ «‰2>üéTÙ°1ˆñ=µT¾cÐØúñ•98=(ÍÔŒ*À¹ºÓ‘^‘û¦'P +U/î=XH›ëq‘=íÁ¶Œ˜ Jæk§0åŠÓÌr{z¤Á±æ„™Nc™ wצöAÀD_”DÑ…'‰64Œ·A³»ì9VÇB§z¹ÑÎÔêå{*ÓçÆ©£=ŽÒËÇjý­,øB­k"ÜúRd¿u#ccðÞêëq«C¹ÆÇb…vÜ´PEqktÝ.¨/¼}ETKD _LC‚|dü ©,F÷wZ!°Ã Ìbî]sqÉà_Á(¹cl³©+[£’ù:T¼<«³­Ÿìÿá yîÿA;8“MZÑ-•bÃ.0|wOϬ.ÆG G;3õyž”§òÏD4=”Ì-–c:äÞ¥t ¨`«ýª££k§ÿíõžâ$6à€npYNŠ×¢o_ÒôAÈ/8B³ lg—ÿÖKx¸JøMÑ•Bzeì‘: 9ƒ…1&~2,ÏÄÙgãp)»‰‚‚ôMñxi[Ͼ…LÒYÈšÓ0©õ°F(¼y¤qå^ ú!ò§ô¡Œ«#8€wÐ{™aœGåø·ZÜæ(мɶ&MoÁ#š~è|¢Z»Š-÷ +—Ë}õBÍ‘K î6€É' ®‚F^þ¤ãÌ—P9æZÒÅÁ©hĹ +(ñOFÈø{"mÆRûPel›Su¤É1±(¥;8<²¯6nèãK2—‰ûàz0j¤"ZèÞ£ÚjÖ¨p}‘KÀøüÔ×cºáœa9€º}qÔ˜¹¶2HO¡°ÊÂ…A=¯ð+ÏH´ÀsUf±ÊéOˆL²c?Ðe'¢ƒ=ÌLvb\EÎ@u,ô"ÉNÈd÷ËÆ¼£NBvÎì§Ý6Ÿ4MNÄ'Q¯/ˆ /¢ð=Öº¡)õ®¢·r4VGlTò›_ŒŠç!*žëóeqšc²ÇáÕ¬¾Ë}¢‚ ug%O“Ä,€Ê-»ò©µIüZÔLþp€ž*èÿ²Þ[Û +endstream +endobj +192 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F293 579 0 R /F297 575 0 R /F301 576 0 R /F311 578 0 R /F357 582 0 R /F70 583 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] /XObject << /Im3 584 0 R >> >> +endobj +193 0 obj +<< /A << /D (ALG@line.10) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 154.261 670.824 165.334 682.197 ] /Subtype /Link /Type /Annot >> +endobj +194 0 obj +<< /A << /D (ALG@line.8) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 131.318 646.914 137.851 658.286 ] /Subtype /Link /Type /Annot >> +endobj +195 0 obj +<< /A << /D (cite.munyampirwa2024down) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 142.054 613.375 153.312 621.539 ] /Subtype /Link /Type /Annot >> +endobj +196 0 obj +<< /A << /D (cite.hmann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 155.581 613.285 166.839 621.539 ] /Subtype /Link /Type /Annot >> +endobj +197 0 obj +<< /A << /D (ALG@line.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 284.985 599.093 291.518 610.466 ] /Subtype /Link /Type /Annot >> +endobj +198 0 obj +<< /A << /D (ALG@line.10) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 282.653 539.318 293.939 550.506 ] /Subtype /Link /Type /Annot >> +endobj +199 0 obj +<< /A << /D (ALG@line.13) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 80.732 503.452 91.805 514.824 ] /Subtype /Link /Type /Annot >> +endobj +200 0 obj +<< /A << /D (subsection.6.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 194.264 333.052 212.426 344.37 ] /Subtype /Link /Type /Annot >> +endobj +201 0 obj +<< /A << /D (subsection.6.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 99.748 285.515 117.91 296.549 ] /Subtype /Link /Type /Annot >> +endobj +202 0 obj +<< /A << /D (subsection.6.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 237.511 261.321 255.673 272.639 ] /Subtype /Link /Type /Annot >> +endobj +203 0 obj +<< /A << /D (cite.together2023redpajama) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 229.036 199.836 240.294 208.09 ] /Subtype /Link /Type /Annot >> +endobj +204 0 obj +<< /A << /D (cite.izacard2021unsupervised) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 233.011 152.015 244.269 160.269 ] /Subtype /Link /Type /Annot >> +endobj +205 0 obj +<< /A << /D (cite.together2023redpajama) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 407.387 683.352 418.645 691.607 ] /Subtype /Link /Type /Annot >> +endobj +206 0 obj +<< /A << /D (table.caption.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 402.158 657.206 408.876 668.578 ] /Subtype /Link /Type /Annot >> +endobj +207 0 obj +<< /A << /D (cite.shao2024scaling) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 508.485 659.442 519.742 667.696 ] /Subtype /Link /Type /Annot >> +endobj +208 0 obj +<< /A << /D (cite.izacard2021unsupervised) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 504.942 635.532 516.2 643.786 ] /Subtype /Link /Type /Annot >> +endobj +209 0 obj +<< /A << /D (cite.dubey2024llama) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 531.888 563.801 543.145 572.055 ] /Subtype /Link /Type /Annot >> +endobj +210 0 obj +<< /A << /D (cite.kwiatkowski-etal-2019-natural) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 516.126 539.89 527.384 548.144 ] /Subtype /Link /Type /Annot >> +endobj +211 0 obj +<< /A << /D (cite.joshi2017triviaqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 341.178 527.935 352.436 536.189 ] /Subtype /Link /Type /Annot >> +endobj +212 0 obj +<< /A << /D (cite.rein2024gpqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 390.553 527.935 401.811 536.189 ] /Subtype /Link /Type /Annot >> +endobj +213 0 obj +<< /A << /D (cite.yang2018hotpotqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 474.05 527.935 485.307 536.189 ] /Subtype /Link /Type /Annot >> +endobj +214 0 obj +<< /A << /D (cite.g5.48xlarge) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 443.478 488.174 450.103 496.339 ] /Subtype /Link /Type /Annot >> +endobj +215 0 obj +<< /A << /D (cite.mac) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 505.583 452.219 512.208 460.473 ] /Subtype /Link /Type /Annot >> +endobj +216 0 obj +<< /A << /D (section.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 352.699 350.356 364.224 361.544 ] /Subtype /Link /Type /Annot >> +endobj +217 0 obj +<< /A << /D (cite.pq) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 395.757 328.683 407.015 336.937 ] /Subtype /Link /Type /Annot >> +endobj +218 0 obj +<< /A << /D (cite.schuhmann2021laion) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 410.419 328.683 421.677 336.937 ] /Subtype /Link /Type /Annot >> +endobj +219 0 obj +<< /A << /D (cite.zhu) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 425.081 328.683 436.339 336.937 ] /Subtype /Link /Type /Annot >> +endobj +220 0 obj +<< /A << /D (cite.asai2023self) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 533.022 304.862 539.647 313.026 ] /Subtype /Link /Type /Annot >> +endobj +221 0 obj +<< /A << /D (cite.shao2024scaling) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 542.981 304.772 554.239 313.026 ] /Subtype /Link /Type /Annot >> +endobj +222 0 obj +<< /A << /D (algorithm.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 488.225 123.208 494.901 134.58 ] /Subtype /Link /Type /Annot >> +endobj +223 0 obj +<< /Filter /FlateDecode /Length 5587 >> +stream +xÚ¥\msÜ6’þî_1µW©¢ª4\â•dj¯îäÄv¼g“X›|H\WÔ ¥áy†œ 9R´¿þºÑ ’àpdË÷Á@ Ñè~úJw‹dñæE¿/¯_üõµLÄ"s+íâúv!âDdð2Yˆ…UP­©HâD¥‹ëÝâ·èŸõÅRju› 6jê’j6E½¾¤âÃEqm±ßo©¸®~O”)YTÖ]UtÐ$Ö4̺¼s/°ªôŸp5ífyñáúïnf<1£6Ïâ$“4©f»n±Ou þ¦Qݸ±K®¾)ÚácÌ™ZÁ"ªU•mWíÆSÊ¢j·Ç§æÐõª¼IS·÷{že­pMŠ&˜Äy6š`fc!™j«b T°I¹¹¥bñp‘ÓPë㊫m±Pw7P *LÔÜÒ‹US#Ù³hÕUMÝÒËÛæ@owMÛñÜÀÍÜDS‹”)YÀ +emØA7ÉUô{¤Æ1mì˜mx¶%<}éýTÐAƒ¢å®žŽH=ø÷çãÜIKd¬5sˆÓÙRš¨ªYì±tHC¸c µm¹%˜Ñ±®òÀ ÍþéCgâ<‘áçf•Mpè@‰ä“N_}ò¤æ ÖLØÉ©˜åXŸÀã r±Ô'D„WÏ×ø&Òó¢ø”è&O@2ðF¿Úí«C5ÆdÒèþ\@Ï­ã(w›¢£ÒÞAµÖa1Ýó¹†cZ;1éÚò¸7® ¿â6·ô‹sNüš4‹bÚM‰£’€ŒJDmuW;ä¹!à¾mú>ˆ$[ª£a¡éŠ-u„DY&ð ÒM~i€;èïO(GŒÅcfXŽ0 2I´`€à€I’¸eR‰€Ã¡*AÌÜ»@e±Z`=^˜<:Ù-¶:ŒÑ±WbdtøÕh5ãŽd0;’~FÐÀo¦æ´0…UŒ’„ð+Áï±»k–§ØöIËØZ¦@¿\†ãiÇ :ú# OU L„-/MµT¸…qí[ÑÛg èwŠ‚Ï©£’8V™êá1>éÈAb¬Û™vÈ«´ÅͶj7ôxS­«ž9Š-u8Ë5|¨º ½¨‘7¶³ôYœšžÞH·±‰6Ò|SÄI¿´Õ9pèŸÕî¸óµŸ3‘â ß`ùô–@]0ƒÂ^(Ü.„¤­†)ô[=# +À#yî—ŒÌ ŸÉ"ê” Ü@uó$ö`ë•…“ø$Tƒ•ÚlÒɃbøæõ¦bÌ;’‹jW›¦Z1ú)ëöH{BÏh¾F› Õ=¹FÅjãÁlj9FÔÓ9€`­i½ÕÃ*)ˆ°Ðì=ˆ:ÖU÷Èoúfª VÅ’ßñìê73;©3 ¸—鲪Óãn”öŽÌjíu +4¨‹ûꮸ©¶nÂXCâÊ MîÅ~CÝÜœóIa~Ši³q½ó@eáÄ#”–?mYàW,Èÿ8îËOˆlm²8Oy½?4“'9kP‘£ä­Zª+¶wͦ¸£kGœ’_"ºêžÌ½PÁ÷kwx¶^¢Pã‚Èî¹­Ð)°‰öàÞÑK°ŽÜ&z¤çu…zâæˆb+¦ªïJöý\’b©:ªÅK…pW‚FÖ«ªd• 5$‡D´-weo.¤£y)'6c½Ï6À%Qœa$èM©ÄdyãæÀŽmY¶=:.§úÒ¹ØXöÞ{%òê@YV펚º¹ÁïM±]žpŠ&”7ºV¬¸<¹ ü›+ /Ÿ2 9É€pwƒÿÌ ;#Dœ#$YÀA€Âî¬ás·1I¢Wh`Þ 3#~r3LXe:^/¿­I`4ÇS…ÀvI/{¸‡+h{_—Å%ƒyÔ›p'Æž‹²=¡ŸJÑïÂ܆àë‰)²XhÉY‡×¨N<“X4êó…²`Ô{mò7Út:::ø4²óGô§w«NùÙÊSÐâ]¹ln—°úeqΙÌCƒ•L³@§*ê%'³ «*FåaÇU„z °Ç葘_·›;øjl!OÆýlXÛš©2á¿dº'TÀ.PÃÞ0xµuìï¶í ­?SÝF¿K•ÚXÎY"a°µ›t°õòtëådmÔpãUnFO¼ñXôœ!̱†ë+vT bæ#•$ž1LD7»šÌ@€açõ°PW­Ž ÑHÈY€Ýe}–ÃlÏat”–3¬Ø·Ô‹ªöD¯ð÷0Þ¼^i¸Á B–Âߪ^ãþ‰O¹›©ÒE‡«ëXúÕÕÇ’{96ÄÂGìüèÔy=à¿õrˆ̰ÌÀZóÚ¤g»/æõ…¼£â³?QÝØ óÈD¥F¢=²‚z eêæè€<”£ÆîPÃ+/j ˆ‰ôf9K-øµÂë^Ö:UÇFOãßœï¬Äœõ‡·W1§ê ÄÏ—Z}Žð¤£mÓ“_J8’U,XU½/»ã>ëÕõ‹?^x:ä ’J æèúÕîÅo’ÅÞ!·+øÒƒk¹[c`®ÊÛÅû?Q€.œŠHD,¡(…BAŒ9‰G­Hm"UÒèôq ¯ÖMpvbIØ çNlbù‰¡s^[šÚ·iˆ¦i2jØ8w‘F×î°ÿßÿy¨>VsªLn¥¥oùÛçnñ©üÁqçRHÃÈÁQú¹x`TäDI€œ\eQjßt +û}³9ÖÇUšÊHë1ÖDzžë÷Ìü·ì@ÀaP’[8M6a¯JµÝúÔ¤û+ï½ñr›³‡(càw({ÝÆPè³É'Óyò}ÆLÖÕ :’¾x¶< +1È9Õ؉9 •j§ñùQEoèÁm64õÎ@á›NÎÙ×TûÃOôû\I +Spx‚)*q^ÉaRˆÁ = +Rüö5*õCu_-çYPæq¢}þÑO2®žkJdŒy¬õæÇ/PŸ°Çèß5·î‹¾`³y¶Aïc‚µF¨Xø<*—ÇT¶ÝX¾ÇŸ'*cay8`xIÉrt"JJ‡ {Þ´mWH¡dà§ÆÆ5Uw¹K±‚ò†ÎÊrN(d0ß„Ïêzð.Nm¿-:t±»Ä-å¡)†0ªÖω~Ñof¢_Þ~ûöŠ*®D™^A{œu›¦¢Þ´‚3gVƒÌyŸ,‡_Á½@û_ßÓÓ¦ÈýI)WQÕƒ›?ÛôÐ`A¤:ü°>{µÎÝ–͉wó>Ò·ázã%<‡¿ò(·Ë[kgÔ˜NÓØ{h¿ùñb Ìÿ¯ ©]¤A¤‘ô<¨g‚àJƒxÁEÆø=Iä'ùÖÀȃn*ή_Ò'q4m<¹ MôË;Î {ÿþ[<¦<»>Ím!·øÉ*½ñ‹›a d]mDf>g‡ i"©é— 1Û‡jvå®ñ>‚qXË&¤9/cãc8اÌ7x|W¬¨PÖ÷.bÛÔh\žåW£bÅÀvîì7ý½³3EÄ€Š?ÃÓ«o$Þ jFsÈ䘱áéÙ`Ýù‚ ª'Œ(#ä·v\ ß½-‹Ž2Îq*(%哪èÌÚèjÏ™¡)­ ªþµˆNUûÞé´*Û–<–üßÀTW‡Õ>óêwÅêŸï¹Ìú!Ž]µS·ß¾9Õ§Aõié“)%±J]íŠû$W/ßSåU³=îúÐéaâç'(àF>î„CÎ ‘@h¶0ß9W\{NzDÛ,è;¸‚’ Z…nÐ@5z‡I#ì ƒT>hîuʹ]E‡Ÿ—nå2ñ‰G}æhî©"G¶Mû5UŒÈtI5>Œj…¯¡í”#Dlé– +T!€Ž¸ÂËþ“s\§ðƒõxæÔDr€ÿÔ$ç§ôa+†Öä=6QÛsá2aÓgíÂñG8ŸêapN¨ú¹7ÿ÷G¢Ï„:k´+wÇD)äõØò®êÏõ?akŒsÉ”’Ò¥IP2Ô¯KÄ!æc. +>ÞQ:|½^‚¹ä³¡¶œrSn{›È§‹é–ê|œí¬MHÝ ^lÆn!¼?æ(¦B=î‡K &:ÖÅ}QmÓÛ_Î2¡gí…A°¥¹wûm%%Ò¹»?«’žž©7TnãÔ¨ð2?ˆ@Ï Õ‚öÏÌ~× ~´˜,Ë<Âdƒ\ü},ª$MÃ1Rsþ“ʸ ^ÐÞY`¢OÅÁ¢³3±À^ >Uíq‹z_Ü:NÜуs,×Oö~3•y9ÇWœÆ’Jg}Jf1¾Ûã>²§£á+‚ýà‹0xbzõ–dˆàuB€n(Ø»öò@S‰‰³Li¸*Aúd¦¦©Z„Ý¿æy:vÄ6ï½ÿyæºY?+k]Îk0¬:“óÚwJ5ˆUv +³§pEìâ†Vƒ‹Û­48´tÌäņυmJ» ¬ÁLžp ¨ &¶~æI0ZÅy:!ØSwîR«°ý‡>E;ŸªC™Ãø2 Ô¡>Õ5j¬kTL­®ý}ÇŽœá©ÂD)Í^G.¥yu0½TŸG:‰«žÌ2@¿óEÕ¶1Æhÿ| ˜åí³Þ5´±”gËf¦#£ÈÜZú|à$Ìã¤äàdË'@¦‰c‘Á?1ä,æ=æã°KÖg“ɉbºSÄI†'3ôÄ4Yœø»áÖ튎­Ü×_½óîc$rðF¿æ7íj Ÿb¢8¢MÎTôê¯-úTì3ÚSj F|äÒj–›ž%ÙÌaÿšczÃ- å¯×@ ¿4­†A§°ãÜŒàÔ ãï’úlNüB.½@·lWZ +íIºŠ”{rå“là\ú¬‹Ø)>KPí¨šË1UsÌÞŸtRÊXäž`C¢»õº)»¦Æ ¬†]¨©äègÇ‘…UE©ø–öÜÊ(Hm¼¤.\ò²e:/‘€(’ýuÌêëÆqí¢ 2b9&Ç7†¬IŽÊ¾õ1õ“ü[zpé‚„ŸE´17v»@•å9[ +ÌÃXú(– »p`n|#ÈÍ&‡mß{NÕö·†| ê°v½VO.…Œê.Ù¯éÍ&|oˆÌ‚ý/ƲšþÊN@4Åñü¨lé4êIËy•Õí0RqÚeqðeÁRÆ<¶(êa'5æ,,êZ¥ì}sÇ.>U?,-…•±ö©Ì¯›0EzÖLãt_ùtîµÉ›ÉÈÀ¦sJ˜,{;ºä^`6œmˆöFÚ«‹“¼bj‰ÑnÔ%ÅŠSm#Ì>±™¬;þÒðÈ|»-ë;΀ÑTÅÞ#h˜¸L"s<Ÿ‡S£ñJÀ¸sxa +#o%ìNóúU—ä³/ñ§§‰þ¯#¤½J²|k¢ìÚáø{Ñ¢,Ÿ, F‚ç+ÇüWm|âË4=ôÿ‚.ÇY +endstream +endobj +224 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F212 94 0 R /F297 575 0 R /F70 583 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +225 0 obj +<< /A << /D (table.caption.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 548.941 457.93 555.473 469.303 ] /Subtype /Link /Type /Annot >> +endobj +226 0 obj +<< /A << /D (figure.caption.8) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 355.91 422.065 362.627 433.253 ] /Subtype /Link /Type /Annot >> +endobj +227 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 157.187 123.123 168.445 131.377 ] /Subtype /Link /Type /Annot >> +endobj +228 0 obj +<< /A << /D (cite.aumuller2020ann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 155.807 111.258 162.432 119.422 ] /Subtype /Link /Type /Annot >> +endobj +229 0 obj +<< /A << /D (cite.pineconeHNSW) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 164.248 111.168 175.506 119.422 ] /Subtype /Link /Type /Annot >> +endobj +230 0 obj +<< /A << /D (cite.faissGuidelines) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 544.185 359.943 555.442 368.197 ] /Subtype /Link /Type /Annot >> +endobj +231 0 obj +<< /A << /D (cite.ivf_crtpt:2023/1438) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 396.283 347.988 407.541 356.242 ] /Subtype /Link /Type /Annot >> +endobj +232 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 374.836 311.33 386.094 319.584 ] /Subtype /Link /Type /Annot >> +endobj +233 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 492.239 263.509 503.497 271.763 ] /Subtype /Link /Type /Annot >> +endobj +234 0 obj +<< /A << /D (cite.seemakhupt2024edgerag) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 483.895 179.823 495.153 188.077 ] /Subtype /Link /Type /Annot >> +endobj +235 0 obj +<< /A << /D (cite.pq) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 406.159 132.002 417.417 140.257 ] /Subtype /Link /Type /Annot >> +endobj +236 0 obj +<< /A << /D (cite.msjimmy_bm25) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 356.321 96.137 367.579 104.391 ] /Subtype /Link /Type /Annot >> +endobj +237 0 obj +<< /A << /D (cite.rekabsaz2021tripclick) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 369.485 96.137 380.743 104.391 ] /Subtype /Link /Type /Annot >> +endobj +238 0 obj +<< /Filter /FlateDecode /Length 3720 >> +stream +xÚÅZmoã6þž_aôp8ˆUñUÒî€ÝvÓnÛíu¯Aûa7´¶ ±-×’7›ûõ÷CJ¢,'îbŠ"‡Ãá¼<3T2»%³ïÎ’Ñ/ÃÿdÆfJÎt’Ç{‡¿1Í9ˆÎT_]}}Éòl–ŹÖrvu3ã9%Ó3•«XK>»ZÎÞG•œ3h°ó뫾¾ä Ìb<KØÑ/YbÆt«¿¾nJ±$–¹xö¦Ô£›PÜ‹ÓDÌd®ãLÊÁ¦æØÕÇGv•©Ìoëm±¶åi±³¸6³’8ÏúíÊTÄ\ˆÙÕ$.«ÛÃþ<‹J¬›'‘Œé÷ýÛ¢ÚRóŸesX·×/zv& 3•ÅZñúOE[n®š¶Þ·n™v_,Ëyý!ª¡žnµ—çBEßÑC±Û­«EÑVõÖ Ëò¨XfëÆÍº©Á¼m-‹¶hÊÖõÛ¥[èÞ §¹«ÂÌ]Þƒý.ê-˜­›]ò8&6“šÅ<ÍhWW+Ìæ2æÅ窡v³ªÏÓèÞ=µ~H·móPcáOfñýª,–Ô¹, [ A›ºŠ#*Õ¿<‰›Ñ«—?ÿLj»,ÁÁgz²{\cSŸÎóÈ mëÑÜ}qïx€ôÆ+uÖx>Û¢ZÙ4gf~¯ÎDþñœ³(&}Œ•"K‰™šÝÍÂçÏfïí<(/é?ëO@÷G 8Kæ°h§X¿ŸgÌnKÉèSat@EæQ¹Ý¡¿-ö·eKmwäi´(Ök÷º¦_#´OÅúU%kRZz{€T÷Ô\VF_KKj;¤Ûî+G„:‹Åúä)¬í;{P/Ûõkµ]¸Å&³…ßmíqfðqíæxÎ_½åêÂÍi­ØXœ$Ç&E ’È@ŬS{K?q ›¢Ç¦ÚÞÒ +‰×´ìœº²ûÅX{äè.‹ÅŠZÎ|ì6XÅÔûÒhÎrY£ÂÆÎU]‰{Ú±Uoª–ZîÐ’è—wóE½ÙYzMÓk[mÊ&fž/üã×Ó¸zº-‘„’nÇj·ˆÓ '1>W5œvt4ˆ±U½^ÒY,ËfW‘æèè#ô² éeAÝŸ:Bpó…Ù–¶ÛÂK‹uià2¦+»†(¯¢£û-=‘ôµqÚ_nh˜§Æ†vÑñ›Gu»¢'£NŽï­cî—w^K¡8& „|r˜ÍÔ{êYZ'¸mZ’ü†d<0±T^#½@9âÉ@6¯E"âDûx-¥b‚vß<±õ£{@·‹Ø}¬Ãžñ8u±z8Æ)§ø.pš®Ç'âa} ÿ*_쫦vS­—µ×Ÿ‹…³¼·EëõØ·vÕ‹…§IœfÊÅuFÓšEM*K7ö Ð8:(KÙD_i¢¯5¢¢¹ó.¢»öͪ³rlœÍ ïÀs=à è ã9ñvg<âƒõÙ6<Û°l€Ú—6:ÓN…AF-M`¸ 'f6"ç&{É…€ˆK`0s®†9B©ŒÈ,IÅ»uXª"Q3·Ž;`Û>>4m¹‰iø?<Á^Fôlü¼ùí1ˆßÀrÂ5q!ãœ9 Zÿ–Ãy,VU^\—ùQ}ðCר‘áµU0¼Ê“?_Pë~eƒ»»r´¬ù£Ã¸¬uµu½à{B†œC¹ o+ËЖ`Q Bê²¢%†%«MéZ5 è]·é­,²CcUݮʦ¥1îpšÊ†Fó:Øj<ö>œ“q2ü¾Ü÷‘h”8l²X‚ùÃôy—Pü´.6ÅHwÎ^MÙ·BÉR?ÚGª.Ý–Û’'=oH/Êõ´©¶'NÔÝ9gi¸ù ê#Wžeô’¶wã‰3ˆ@)áT<÷­ª “'ôûÇ¡ÞiƲeZƉ÷>‡ÆÅÀÁžÉbáÍ+'2=Yš!2h/2iò „"בóD”w# vsÐÃŽ ½öy–@Zgç’Ñ”WNŸ›)êRÂ(O@3ñNna½t¯)?½vàòn¿i½{tnêõÚúY’^Kš[ÑÍÝ:sèdލmWsFf4¢w¨½Ó'œf ¹ÙAÆÇ¡ƒÄ,¤û!aéhüq†(ÝajX²Ð²D"çÔìûŸý"¼qÉÕv¾)7µ‡Ý,‹Â|uš.S2Ö¹ ¿ÿ2ÃY&ËF4Dâ›`QäáÄd‹cú]UM€Øî+ØâÃü0ˆ/Àb-Ìb>ö}^ZPJž:×RßÌ¡óboýT2ŽL¦«ÏÖÌÓ³¥€€•ˆpQ~,„N,–B…Ã/ž¹¤V1—2¤!ÓÓk¦2VpµÁøk™1*n3ð”Ü­m«±”&C[wô8¹ÎyHˆ¿iâ7ågs”—ð[OT)üi% rI§ Õf·.7HéœC6ÌÜWíŠZˆÎI‡Eÿ> €y–û†ž{·[o6æ²hy”ƺ¥³ )™ãÿ£K/Í>^L9E¿ý<5rßáä¯Üø<Žg±Êº(õ7O2IÃóÄX'”tErJ†Ý,U’4˜åÕ)þ™„wá”ÎÅÏ<# 0:úûù\(°®¢W¶õÍùÆ÷ÿ“è[ëq8úµëÏ0Gts&$¢a*YþÅá\¹æ£ŒgO‰„#ÓN£‡Ó.|Ù AÈ[¸\þÆ¢Ê0/rš¨ŽôÈ…uB:œ4'ˆdsr¯€“Gf!² Œ²a4‰eÒ…Ñǰq|aBÙ*ŸH2x öŒ(ãö,8Îö,2ÙãÆ7&HF¿]’—˜Š4飑ÆÑ–°îT§!íd¬¶vgo¶zÚ•2$uk÷Ú,îÙ±KNxíÊ9€Âû 4Æñ¡Ûh*zìy$p1ëBº¯ tÝGQƒÑúYôyÂËz×R÷ãžT%:ÖbÄÐÀ“¾ùíò”#5è™÷…à’¨IWæ¹ QØÕI<^Úí‘åV‹.Gu&b‡Z×HýÏ ’J*@2¨FQr¸#|"¥'\S±nß2“<ë½ß\$0Í}eÎÊ4)µ½3ì¹¼‹<µQ.X„«#Þy§ñ:VˆÎÁøë‹ž‘’ØhLª`ú¬1íaãNñmà¾ù]àíATÚ9µ× 9¡V½\€ò¤Ëv–ã×WƒbŒã”—#¡ZlÎÞ_'³%^þ`"f÷vèf–!¡@c=ûõìUdBWgHåXJ ŒïœÐŸN9áÆé`ÖÀW߯\RøH(@6‰fáü§W…/RY8Éz»Šµ+¾+—Ÿ_Ùû¶ë¬^Œ~mÕÂ’(ÛÃÎ ð;òÛ9>( b4ªwH6͘ +ˆ‰L )t2%žCº¬é«IïÁbžw‘i¼!WÔ½_U¾Ìµ¨÷”3RÖºõ™P¯‡Áñ”ä\õž±è¯çsø òLL@΂أ!‹u¿»Œå|rƒˆ…b:žŽ­ E@×åóÓ´ãÀD,¥S©o«æÎ$¥ÓÚØÏM¢sÎ}®JUœ‰ •eý¢™²Î)˜@©XÒ1Žæ #ñ7·ûb·FG3æ¨Ú7ÀJ'c0€ÌœÊSm®áôv@WÖø(úf UJMÃãmK–¦¨*•­hk‰¦÷MK¿wþ—»ÆQޮݴ‚~~y×Õnõˆ=žYruºîñw.¶ÆÚ!td®$€7ëºXúày°%>´JïØí¦–¾ M»1Õ|_ñtzçjÎÛSbã@¦*u.}Yn°®q?Hû=1íA3÷}öj†¥”N=âS%bužÊp¥“ N*Ÿ„óž.Ð?¦èêä)ü˜¦@âi8ë‰GækP­`Îÿ&Ãjj˜ÙÈ—<íÆN¤5ÌÄçÎM_LV²ÔdÖëlÓbÛ:}S_\Ü8v¶`ð¨5‰è3]è”ãŠ[¹t9ˆèŸtwtf‹KãÐRÝå2DÇvõõý]ô…FŽCCeX4my MaÉ;+ü‡ù)0Ê%2*Ì ¼6 =ßøÛ_wJæ½±ÖuÙø•<’4H, íUI¿ÐDŸÔ‰A=ÃY”L™%MÁ´,–CØÉ¬+ëvàë,œÏâT9™«VÝe\ø)„Æ“ÿða(l{çh{?OÝ'ºO`!÷ëëÙa’¿4Ȫãé8̓ >²ÝWc€™Úeܿӓآ©E„ÜUÁ®ê…¯ Ÿš¦CÄ »ï¾&4¥d êv·¯üçh^ •û|¡lJÒˆO·É>¦ŽÙ1ßà&N6ãrXÎjëð¯ÿŠJ¸1õ/édc¿Kz± Ð*ÃiÏMgaæpÖ &NÞo `n•‰`øÅsh“²€„ÌO¯˜æq*C¯mU;7¹ƒÉ-ëƶ0ß!š^ûåáçþy_lï¬Øtt} Ù®6ônP¼kÒvS+®‡ `òƒž0adçÇÄfH`R‘Qe„Çæ+®9OâL8ÊÆ_oÿoC› +endstream +endobj +239 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F212 94 0 R /F297 575 0 R /F70 583 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] /XObject << /Im4 585 0 R /Im5 586 0 R /Im6 587 0 R >> >> +endobj +240 0 obj +<< /A << /D (figure.caption.7) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 69.469 691.746 76.001 702.934 ] /Subtype /Link /Type /Annot >> +endobj +241 0 obj +<< /A << /D (subsection.2.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 275.967 643.925 293.967 655.113 ] /Subtype /Link /Type /Annot >> +endobj +242 0 obj +<< /A << /D (figure.caption.7) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 287.622 608.06 294.34 619.432 ] /Subtype /Link /Type /Annot >> +endobj +243 0 obj +<< /A << /D (table.caption.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 236.761 177.903 243.479 188.07 ] /Subtype /Link /Type /Annot >> +endobj +244 0 obj +<< /A << /D (figure.caption.7) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 80.074 141.016 86.672 152.204 ] /Subtype /Link /Type /Annot >> +endobj +245 0 obj +<< /A << /D (cite.wang2021comprehensive_survey) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 376.11 696.971 387.367 705.225 ] /Subtype /Link /Type /Annot >> +endobj +246 0 obj +<< /A << /D (subsection.2.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 429.027 623.059 447.512 634.376 ] /Subtype /Link /Type /Annot >> +endobj +247 0 obj +<< /A << /D (cite.ktransformers2025) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 396.909 577.509 408.166 585.674 ] /Subtype /Link /Type /Annot >> +endobj +248 0 obj +<< /A << /D (cite.li2024svdqunat) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 411.914 577.42 423.172 585.674 ] /Subtype /Link /Type /Annot >> +endobj +249 0 obj +<< /A << /D (cite.appleM1Ultra) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 413.606 529.689 424.864 537.853 ] /Subtype /Link /Type /Annot >> +endobj +250 0 obj +<< /A << /D (cite.nvidiaA10) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 427.554 529.599 438.812 537.853 ] /Subtype /Link /Type /Annot >> +endobj +251 0 obj +<< /A << /D (figure.caption.8) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 420.899 463.601 427.441 474.79 ] /Subtype /Link /Type /Annot >> +endobj +252 0 obj +<< /A << /D (subsection.6.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 349.543 403.826 367.381 415.014 ] /Subtype /Link /Type /Annot >> +endobj +253 0 obj +<< /A << /D (figure.caption.8) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 411.666 367.96 418.291 379.148 ] /Subtype /Link /Type /Annot >> +endobj +254 0 obj +<< /A << /D (section.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 520.816 96.976 532.125 108.164 ] /Subtype /Link /Type /Annot >> +endobj +255 0 obj +<< /Filter /FlateDecode /Length 5942 >> +stream +xÚ¥\[sã6²~Ÿ_᪭ÔÒU–¸ñ’·™“Ìl²™ÜÆçä!É-Ñ6Ë©ˆT&ίßnt)ÊçÔÔ” F÷׆ӫû«ôêÝ«”ßܼú×[YW¥(3•]ÝÜ]Ys•ËT¤:¿ºÙ^ýœdB]¯eš¦Éûªi¯×ʦÉuÚ =ÖôóaèŽÕ}M…ªÝÒÃ7ÕP·›§ë_o¾þ×[•Êh TÀ¸)ü“8fVZ‘–úêfc¾mîvy• +ká=´Ò^=^MËÿyuõóZÉ41Ô˜'å*er8^IÝ×­#Z 5=ôTh¶éÚþ´? M×Ò[¢ÞÔív=tëšÊ0ë××Ú&ïp¬+)Ò´Œ¨/´º ê;ÕG`™Mž ŸÉ“óÀª ’Õõ=w;z¸­úz×´5•ú§~¨÷¾#¾ùòõ·ß +z¾É0!*¢#—BÌEš?/Ta“þ¡»Î“X0ÀŒj j÷Uªl¸%q +*ºv÷ÄEþ5õ54Äõ:O¶§MÝ/dK¡3fä;~¤£ß]íxQdøÙ–êìgôÛÝMèŠcsß´ÕŽJÇê#÷¬abð|úæOnýñ¡Ù—@ÖâÕ2¹P9siR=Àÿ¦½G‘U4§ªïÚêvWS•_A[&+ªOoø‘x€Û¦ßœúJE²¥*Ø2Ÿ*ÈÐú¥s%ôLœaPÇÙhÚ +-=[OD +ˆ.oÉjóÐ K~çI¥I™~FaÅ6$zPÕñ®~÷ýתL^SÉïõS»EqÆGE?=õïÚm/ º#®—2‘T@aº¡ÂM :VTt›º; ðÐÊ Š2,(ŠDcA¥&͉¬QhJå…¦”É/©Mó öof’wo $WôâÍë»ú8Ê<Õ;A†O8Já÷ŒD'®ÐСˆ·Pó"=ýæz.ù¯ÇYÚ²Æ2ó?4íÆI§a]ûzU€2ÚSQ[A̹¢¥_â§…MUíùÕ/©Ö„ùCŶ*\C¿ ŒÓeÔ`‰º"¦ä5 qì8Îß½¾û©yl¨Æ}¾V¡asd’Fƒãä–,é¯er‡ B–•nó~.­HNn…5Ì,”¾¡j VÕ6K*ÞíÇ*Ì4K ÓÔØƒÌžõ& s&`œD/¨è•7’Ó»ØC´ ŸïOa,íÕwïWÆé`¨ÿ÷·~â¼ +ýd½u²­ÛžùTïoÑš³oA?ôÔ¦Úu +æüÑ"Óðc¥ûut}lÔ6&ãE[t¬\×ÇÓf`²Á†®ØÖÕ–töë¸íéÖq»©ØŽ+ +oq²¿ãgŽë¥eÓ¥ÈòŒHz€¯g%X‚/šþÑ™3 úDÿtìéEí?×Ò»‡æþÁ­Qá‡ÅtÄ/QÝöTÓRë>6ð—Xý­ëcU.rżªvÍ}öJ&a%z¨A)ÈÒäËÊém¨n;צ¾öÏž›‚Ȭèæ±;1ÿ°è :|à|1=Ar\À +VZ‘g™,›z…È í¤ÏíÓP÷¨ª'€É«é{Ó]ÓT,ÈRªmkâcwìWA±Ò©˜ž¥Ï±F%”~1kÀЊ¼úüx•fQîS€"18ä?.9âaÎE&ÒÌN§èzAèʰåÚ¿%|\’U¬w0êWTtÐu}8õô0l86·§¡æŠ]3 ;aj¬Å’.3Z +U0ño»#-ü›÷ʲ÷AGMN/:oõP÷Íh¯-o@xTŠaGîÓíÉmvöóQ* ßCsœÓÇ$È“Ž9¦º =}°‰÷>¸N½õ,ÊPlMšk¹ð0Ð*Üs Ý¿¢¶áëwÑæ Ô’»N!ìÐ=Ö-îÌ ?dQžæBç L¿j ±€x= •« * ~8¶¼£~•¹¥ ª¼KÔ²Tï–~7ÝþPÙÿ6.VpŽ´ti…QʳÓÁa°Jn0ø¥Á°bŒ@iÓ'g +ò4„> >ÆÎ؉ô¸ +˜Vÿ´? ÝÐl¸eìÁm¸Z-/lås* +ŒUþLtØ9ÛÑ OŸ³†¤‚dŸ§¤mŠ*én®¡Ý8qÜxópjûiŽ©¹X/ý³%èÔžDF˜¨<‘äÁížvÝ=(ûáaï£ÃÜcgž‘pa³Ùÿ¸pêâé2™¶œuZ5 1pl´‡XuFqÕ?·¬í ¢šËÔƒ? 9[Øe¥rͲôÿ9v_ʧY`Å¿6Y‰_W1Áó”lÚ¼ûùÓl¥Ÿ•Îs!ºÉw3;µ¡1`†\NÛÿЏ†ï08[7$.DÁ¨HÉ4øTõÔËy ³=¦ ÃIÅKîÔî²p¶Ü˜‹F•§[n*º=ÔÚmO厷kˆ`a´õë‹ääìså›pû.ÓœÝ|,ErÄéXpÁ3\±D^*<,¦ à ·¤ð š¾Š°+:~a3±DŸÉó«,SBIf×OŒ¾35Æaû«-acw{n0N2É~¾Ÿ$djrv(ç¼±€å}JR_!BéW©2>àTEi3Þ¥ôrˆ\¨kG=P¡4ÞÝõ¿›M}œã>÷¤16sÊŽ>"œî›Þb”q¼{}ij9B_ +íÏÆsõwñ‘N+ÜÁ^Õ´ÅFÁ¦±2:qÃô7oµÜï…„ª1Í-#?À¾$Í ¾u!ÍísúúŽÒŸš(Ýl½ 0Ÿ tÄ 'ž±¡Uˆ«Ä첚Ùå²üÀÅX÷`.ü¹4Ÿôìø€ˆŠ§=GFuâ–š=Ÿ&©yäbzE€+‘Þ·é)/ÇÌYä‚ò¾³ÄÝÌ~Ë–\È~ •Ú³IÆo°n½ƒ‘¹'˜o8ÞϪÚTáYÆñK?OS$>¶9fÑAå}ÝÖǺƷÑá,«Gß=ЏÑgZÞƒä¦ç~Ù/ê:›Dôö°#ÕIGEî—`‹ ðAé¥V§„1ÒÙR^´:x>jmÒ|õ²!D3?ý„6—GÐ/ó…¿®h¶ûêÑyFÚCXíÐçx‚¤£­s‰½ Ñ܆ÑÑ|b¦oÈ~Ìé„´Ì‚ +‡ªy-¼¥„GgÇjH5h;¨úwÖå.Qbðz;>YÈÕ9þsð7‡^^Ë”ãÅqÐ?P]È lv0"›Ð ž°g;ÉI‡K.RŒ¹Á]ÔZMÇy6ãÊ‚JË =肃¤´(ÀÇÝ–}Ÿ“6P=í¤Ÿå‚.Á S/æ¦JÉéœÒg3.\fbf^Ê… Z0`–±÷cÈ‘SÚ¨'Qì³QWYƒ‡÷ÕfEO!HZPÎ_ÏÕ…*ǼUîžÓM=¸9^É,ˆœNEÎûæí7ß}ÿµöyd4¨¥Ÿªè@›©Å$óO‹b¥‰93Þ¿ +búô6 `.°Æ ÐAŸ† %úÂ…’É}’××R%›Í 4>6ÔiòÅ¢DÃðõ ÐŽÆ[KéÖÙ{sí‚“Ÿ ˆU hÖ25>…#ª…ŽŽ_ø’Ä‚AÆ •K#ƒ§jœE¡ +ËY…ˆ>\4‹N:ç¹o^^ (e̳¤3[ŽIpftÅ9ÈQˆÙZö°í £”6±K¡eüNwœ$ØÙ8ÁŽ) çÕœîïÑÐX½mS„ŒWÖL‡µ&p·ï踈(èЙRµ™@3 +¼˜ä;ÊO1Q”2àD÷;ž„Ž©m‘e48ÃeP˜Ók~ftšéИVËÅwôªL?S vü >"Åfã9e…µ}øjÙ0í)õ—ا1ñ9²åsd'e“cbäR5ÀtèÚ.C›×;àäéþJÏ­¢,Á/æÒòéVéde´ GøŠâ\bv<¸Ö¡52›ÌOYUN17a5½t’©åKüh~ Þ;Ó¤ô-dºF¯´q ¯åy ÖÍOI).åîìès rò@h~¾çç‰éQJN#šåô"BŠWsRCYæœÑÂâS.)7¨=w”ñ¦PPÜœ–Bƒï=f¾õuðP8SXÀrOQüpª7Bq<Ö¥8CéÎd&ªÞÙö†€÷' >J®³2_¦å¹Z\ù£€Nt• §63zAJ1]Jû;<á®B¾äýaíhb¨P²+â⻾!Š%>·< Tô·¿Ä¥=YRÚ_Ü!åZ¼¦»ƒj:s(GGZPÚ5ûf\¨¸ç€ +<:~…»%ñƺ(ÈX}‘WÚºó²ŠÀm—;ê“åRPmMï´ÛçT$ü–êùe£ôì.SÊÆÚºXÆs«á"ƒ[ŸúÂã19|†ï,(À ?ÝÕ{™^h8CÀ øÅ肎‹1æMYÍ|˜†J²áEï¢Kô “ÁyÊx_SbýÑ'@ö.X™aVÔx•¥$Ç/γ¼°g/,fSYŸRŠ ¿TÑY8Ës\šðn›JÐa%°ë,WPjöA—:Ë¡MñIlñïn¸h0*S!Äî®ø+‘² ÜYH>SÇš½*8äòZ°LY¬‘ö¾÷¤ŒéB:tô]|Ä_Œøî’ÁÇT«,›ÄhÜGÒi7™ì<Í„#:{LD]? ÒÍÐuóyC’Dî3~3Z—cИi•Ë8˜è– ÄD´Á¹Tð8;·.C‚>6s9uLS©çµÕ:…BpJh®– æSåþƈÏÊ)7ª¹Q±o1Pð•#jãm +ŸÊ©Uîrüº¸©ô9-¥§”!kfÌlh;ŸøÄ{Î%ÕÔ>X̯<`4gxÆ‚§ÏrùžE€Ò… }4Ÿó¨/|jònïœs\g5;ã[Š7ÊxßE€–í`zfÙ+^ØxxáQI+Šrr¿Ðeû+Žôy VõÑÇfûÞ'L{+„É ¦Àʆ¼fƲ˜Û}ÙÓr&3©¥öÙd'ÛÔgámÎ1áJ˜ÉÇwd7GòÈktä‘Ïß³ñ…gK {fÓøä†E'zN¡Ìr‘z› ÃîôëÛ]ÈÍÆ¿ÇpÚ^ú» ¹@gWZx½ ÷µS£Ãî§Íà ŒâAzûæ÷ñÞ;­ñ¦éP9u‘ûäñ*" +¡ðiÛÔ>Í¥»¸ÒîòIl®§?ëÙMáÆåãó€¡atKŽn×Ý?y¦”yÈüÇ–Ø?óQb¥2Bi&0f¼ts|ŠoÖË8½ºtןQir« Rp£ˆ"e`©ôŒŒ›ë ¯šÍ³O¥€#XN‚þoKüs)OyF/ÅüGz{õ‡‡„ë‹$UhåsÍèl ,„¿À…Úhü» A¡ä9£ÖòŸóp~9(måßø£ æ°}œŒžM¦(„ÎÊ1#?Æ×ãÃí‰1 ÎCzš+¯ÈüÔÄ[ü>€üŠÏgïÞYcd`ž- +Bê moÞûù©øsw>Ô$ãéúªÅ[5„))9f&Éq&Êÿ@Êxj_6õØÊI—/o^ýp¼¨{ +endstream +endobj +256 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +257 0 obj +<< /A << /D (section.4) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 213.123 580.237 224.648 591.425 ] /Subtype /Link /Type /Annot >> +endobj +258 0 obj +<< /A << /D (subsection.4.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 226.869 556.327 244.707 567.61 ] /Subtype /Link /Type /Annot >> +endobj +259 0 obj +<< /A << /D (subsection.4.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 115.698 543.136 133.86 555.56 ] /Subtype /Link /Type /Annot >> +endobj +260 0 obj +<< /A << /D (table.caption.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 164.221 352.353 170.897 363.541 ] /Subtype /Link /Type /Annot >> +endobj +261 0 obj +<< /A << /D (subsection.4.1) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 277.432 268.334 295.27 279.522 ] /Subtype /Link /Type /Annot >> +endobj +262 0 obj +<< /A << /D (figure.caption.11) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 175.522 85.021 182.184 96.209 ] /Subtype /Link /Type /Annot >> +endobj +263 0 obj +<< /A << /D (figure.caption.11) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 489.4 541.947 495.97 553.135 ] /Subtype /Link /Type /Annot >> +endobj +264 0 obj +<< /A << /D (table.caption.9) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 349.085 352.02 355.803 363.208 ] /Subtype /Link /Type /Annot >> +endobj +265 0 obj +<< /A << /D (figure.caption.11) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 390.24 256.379 396.958 267.567 ] /Subtype /Link /Type /Annot >> +endobj +266 0 obj +<< /A << /D (section.5) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 547.472 256.379 558.996 267.567 ] /Subtype /Link /Type /Annot >> +endobj +267 0 obj +<< /A << /D (section.5) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 529.801 144.797 540.951 155.985 ] /Subtype /Link /Type /Annot >> +endobj +268 0 obj +<< /A << /D (figure.caption.12) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 386.257 120.887 392.818 132.075 ] /Subtype /Link /Type /Annot >> +endobj +269 0 obj +<< /A << /D (cite.skewmanohar2024parlayann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 471.409 75.303 482.667 83.557 ] /Subtype /Link /Type /Annot >> +endobj +270 0 obj +<< /A << /D (cite.munyampirwa2024down) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 485.357 75.392 496.615 83.557 ] /Subtype /Link /Type /Annot >> +endobj +271 0 obj +<< /A << /D (cite.hmann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 499.305 75.303 510.563 83.557 ] /Subtype /Link /Type /Annot >> +endobj +272 0 obj +<< /Filter /FlateDecode /Length 4154 >> +stream +xÚ¥[K“Û6¾ûWè’ZªjÄ/>²'góÜÝd“õ¤r°sàHœ+©ˆ¤É¯ßntƒ(JöÔ–«†ˆgýu÷×t²zZ%«o_%³§€¿ÉJ¬Œ^¥ÂÄyªWÛã«?^Å™’"·/½¢}åºpÅçß³ÕWí«Ÿáß|Ô »ñÆýòþÕç߈"_q‘Êtuÿ¸Jâ"WÓ"LabxÜWo£oê§á¼Î£j½‘FEiLÏ·ki¢×‡²¯Û†ªÞôÃîy-²è·/Ö¿Ýÿóóod"®Ì!2›B½9­7NÃvÉÆ-·ûºZgÑ{Z¼¡ú‡gzîêw‰2•]dÓãÔ+'ÒÛN³å†¦iO}}¬ÿâu«4z4¶û¦þc¨:ªÛUÝö\?¬7"çT©‰êÇ•ÄÆðcaV¿¯ÂßÿzµzkGy'U¦©Ÿ ¿ø°¯Ðn¬< eÏÓ,,?qªxõ(ë,[8[Ú•}ÙU}‡¿LÔ·Tk…‚£_ý¾¢BW+¯θ-ê{¨Ö) ù@mh23u-»>-ÜCíßC7^Ýópý‡z[Ízã­cQykK²@Æ.­|b…—˜¤ŽIfwTUÚ…Ç&»êi<‚ +Ú‹Pù@”ÎÝ2ÎÄ„žæ vQ¤¬¹Î ‘ÅúýóùÞaÎÔ¹l¶Ünœ8ƒVtý\„§gjüx³Ø?Uðˢ¹ +ï›;”IÆ¡çº:Ø ›£ +ñóý:¿»ÀeKÙeËs!#i"©L„S +×)]0{"—q–¦awRêÍ”›XÈ,ì§×K/MUèØd³.ï’D^1n*™Àe39Þ‘¨œCF` +""Qel¦ol@¦ y™|¨$tf²‹J¡2‚~©¾%*™§±I‹—‹ªq‘˜¹¨L‘D_'c².¿Î&äÜ [6OÙd´™Œ4_x ­Ñæ{ûÇPŸÇa|Tuð¥ŸSðÊÉÜ*pU›òá@CÁ¯Cý´݇j,Pݤç¶=Øð£óEà7¢_;ئ9,Ëj=/Y)Dt4¿Q9(0„Õq ^@/wÜ gŒÖiòÚähQðÅëµSCo¤ÝsSÑÑÀÚôN±;©Ì[öL ûH„T¡`Mô8œHIöõѤÖ!" †0ç/ÔcèëÃä¡kwNæ£ÖS ëhFëiGeT²qmIÉ·Q’½ ,´.:[«º¥ÈÔvú¨îª<Ö*\ËmÕ¯LmÐáS4Wƒ_š½²ô¦Þ‚ƒ'T8Í'hm*bfA·;™mn9z[©wyf}^ò¶Ê?ëãp$'hÙTøÝ˜÷Âäáò¦­`+”{\c0’I¡ÂŽ“X…Ô±’ó¹®È2˜K%àõgaǘ„òúØÚkŽì‡õc¡ÎúwTÿ]ÛSÀ×ÿ¼©¿¦F¬ô ¸3J§çŽÂ× »íy(Ökm)ÊPèZäèZÐp¬îþ¨,kdÛ÷õ8vYŸ°N#ÊyË3| öÈ›x}MÅ}{¢‚·c@øŽ‰KÎÍZ¥±È‹…ˆR‹Ñ'ÑëC_›\ЂEô­+mñ'9 EôÃÆ!PŒŠ”ö.KÅwB/i§d +KA"öIdÓÚâiœ”‡'+úý‘Þñ 4±Ðh +byõ¯)è°tÑÏÜ|Œgìµ3.º±gXáÖE/6Ìôh™Æ‘AP—a³x!Á¥S’%â;† +í[ÚŒ hG ú}ÙSé8t\‚¦|n`+P®1vÓLQÁóâÂC=žè¢6n©‰wƒòO´‡(oY¢ª1ö¼Â#-HA§$§zé“îøb´zG¯ÀöЍü.vаXwü¦5ÚR¹¤G×[·Çµåà,þ\6h}X4íÙs{`h6ËTéàÛD &VIOä*EœüûÑ»s +e_¡l :yèè'®äºÇÖy_,ù_¥Otœë,\b—`Z†û/è9QnÖò^ì$)˜…üÉRÿW’ cO@Г ôȪÑÙÎ{xöîc6ç‘I>cH{ ÈñÜzH¢ÜÈ+,Øä=UÝ5ÝÓ Í2˜¢ÜA*<å/RÿNo˜l_µ›Fk1ˆÍ‚iPÔ’E £¼9’ÛÅ>’êBÆ9¸¬ÁpwÔ× 1GÖeR”žÕmÍ|ï‰/jШyk&'r~‡ìvq‰A…óH¡“E¨Ù—‡Çù»v¬©u“_2c!-X×xΖ9%Ç<—‚0ÃSò$H?$z²PvÂêG'›7AWOÉ(r¬áÕBòþš´ ¨`š9 ƒ9¬ü¥9,ˆ¢¥T0ŽgmJ;N +ëg'…M¬¥ƒW]6,¼&2 +÷=oëŒÜœ<7©8ÓÒeºÆ ðŽÉÑáÜM™²IõxDÜ»È=õÊdcì>R¬»a[]Ü ·@%bm2?i’cþºÇKÅÀŸÜËÄ3û£<|â­¾ãQöôaˆ÷ê½U!~I{ëþÖ-_wxÂâË6æF>ï«r_\2wí“,6:sQuf¥¦RAÑ«5ÒÁª”ƒ•ʈÓd`\Äc¥½ðœ}óbëfYs‡1Kî«ÄÏn +—¥¢ý3Jb{ŽÞ?SÓOá§7”’M£çëÆ~¤}:èP5Oýþ‡ëLáÌUœ*—³™¤ˆÌG ‚’9è€ û¢&& Ôàu[o0)ì ź]ÕWç£Í•âO?¼‡*y¬ . VØsHòYð?¢z2¿DA^po2ÔõAHCkHÐg”Ìœ‘P§Q·C7£ ˜À®–èâ%4´âö“16€cʧ +I†§xa¸£,†+…ä0 +S­ƒ<º•¹ÿ™¦)¾’hçNuï¾ïàï4Ð%iö9óî9/#dÆ´„ïûÑñvä¹Ñ A“³0Ñu3y¢„#SA‡¬ÿ8Í…ÌæÉoqþ:Õ±a”ÿ8Q&ã´È‚nds¥‹"¡àœ_(þ0Éqól~~ÚÅ €K­IÜèWÅ=˜¡ë™†š›8¨Ë·$>M•ƒ'X„og¬TžÅ7˜ë†Ðǹ +¶ûÅ$“_×¹ˆX^í±îÓ§Ç“0ÆžA*Q‘’;ú³E/ÂO™1a”DEúÙÇÀšù„¡ +ÑÖX;òÊ®Äþñk\š]už ­™¯t,1ÆykìÒztàeÚ\Ú΋žÑ±³ *bpüb#f?LÆ·Pþë*£%R°B~Ò-7Sè8%—±zçɸ㖸°<õºzßl¥“Q°ƒž©²+ÿtæi‰¶Qp&ð´Lj~¾ŒVQ¾H Ãxì¾̧}CÌã:TÄ(× ¨C}M‹òd²2vSÞ%St3;±ý$]OBº£78N³ä]æâhØò7#Xç¢Q¨öù?xõXÖnÔŽRWóúɼ]KÈÞµî³JƒŸUÖœb´0ÓmÛ)6ò²…ÛsÝ×['«?~EA?Ü +Ê,úŠº#…i‡ÓUAú™inñKokõáo«û‡S¶4£¯{ìÿjè­QHó)»£ß%=ð;f7Žîò_öËOÈ•P«.̺¡‚wø•×{Ÿ`~¥v¶Éáùw÷1ö§]êH—7ú·kùu7ÌÎo!‰O.‹Låhà6HFênÐç@c´C—2 ú|}ÿ꣰œ +endstream +endobj +273 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F206 92 0 R /F209 93 0 R /F212 94 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] /XObject << /Im7 588 0 R /Im8 589 0 R /Im9 590 0 R >> >> +endobj +274 0 obj +<< /A << /D (figure.caption.15) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 161.693 463.601 173.137 474.789 ] /Subtype /Link /Type /Annot >> +endobj +275 0 obj +<< /A << /D (subsection.6.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 191.011 427.736 209.172 439.108 ] /Subtype /Link /Type /Annot >> +endobj +276 0 obj +<< /A << /D (cite.li2023towardsgte) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 128.603 418.017 139.861 426.271 ] /Subtype /Link /Type /Annot >> +endobj +277 0 obj +<< /A << /D (figure.caption.13) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 287.895 391.87 294.427 403.058 ] /Subtype /Link /Type /Annot >> +endobj +278 0 obj +<< /A << /D (section.3) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 236.477 316.134 247.983 327.609 ] /Subtype /Link /Type /Annot >> +endobj +279 0 obj +<< /A << /D (figure.caption.15) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 254.783 168.707 266.041 180.162 ] /Subtype /Link /Type /Annot >> +endobj +280 0 obj +<< /A << /D (subsection.4.2) /S /GoTo >> /Border [ 0 0 0 ] /C [ 1 0 0 ] /H /I /Rect [ 196.347 120.887 214.832 132.075 ] /Subtype /Link /Type /Annot >> +endobj +281 0 obj +<< /A << /D (cite.ivf) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 407.958 182.899 419.216 191.153 ] /Subtype /Link /Type /Annot >> +endobj +282 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 523.634 182.899 534.892 191.153 ] /Subtype /Link /Type /Annot >> +endobj +283 0 obj +<< /A << /D (cite.hnsw) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 500.509 158.989 511.767 167.243 ] /Subtype /Link /Type /Annot >> +endobj +284 0 obj +<< /A << /D (cite.nsg) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 543.021 159.078 554.279 167.243 ] /Subtype /Link /Type /Annot >> +endobj +285 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 355.869 147.034 367.127 155.288 ] /Subtype /Link /Type /Annot >> +endobj +286 0 obj +<< /A << /D (cite.sptag) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 422.973 147.034 429.599 155.288 ] /Subtype /Link /Type /Annot >> +endobj +287 0 obj +<< /A << /D (cite.nssg) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 432.316 147.034 443.573 155.288 ] /Subtype /Link /Type /Annot >> +endobj +288 0 obj +<< /A << /D (cite.hcnng) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 446.29 147.123 457.548 155.288 ] /Subtype /Link /Type /Annot >> +endobj +289 0 obj +<< /A << /D (cite.wang2021comprehensive_survey) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 495.712 111.168 506.97 119.422 ] /Subtype /Link /Type /Annot >> +endobj +290 0 obj +<< /A << /D (cite.baranchuk2019towards) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 357.883 87.258 364.508 95.512 ] /Subtype /Link /Type /Annot >> +endobj +291 0 obj +<< /A << /D (cite.zhang2020learning) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 366.805 87.258 378.063 95.512 ] /Subtype /Link /Type /Annot >> +endobj +292 0 obj +<< /Filter /FlateDecode /Length 4162 >> +stream +xÚ¥ZK“ÛÆ¾ëWðâ*le cž\•ƒbKŠ˱£µ}°tÀ’‰iÔjýëÓ=ÝÎ`A­6)ÕŠÀ<{zúñu7²Åf‘-^=Ë&¿þÏbatšebau–æ&_¬vÏþx–êB+×ïžh¨ëñ³¸áëïw"[|·ö3ü›®¼ä¥—ÁÚ»yöõKQ‹"-­Õ‹›÷‹Ò¦™’ +óTdÅâf½ø=y›™ìJȤ‚qõîæ_¿”°Òy’)ÌÉhôsºZŽÕꔼ¸‰…I…˜;§øÒƒŠ‹õ‹?rR)ŠÔ;sÔ%àö3g-LáûC5ÔÝäœþ—6,a¦´8s)òÒK½»^fx´,â÷>[üîæ ]8·¢h¯L‘\ÓªwD´ÕŠmI!Úàc³i:81Iµ¤X¥²2&mµï†cãl;.œÕŒàX +ƒB’:ˆÒ9e!²×ä.Õ±ÚÕpÛ½sÑnÄ©]GÓ}©<ázo¥Êm*§BåxÔÁ/Ï,i›ÍvpÂ…sŒAS­‚ƒ‰2’™òêæÅÒÝ÷O0N,‹Ô‚ˆ&GV[Bø¢CŽK‚S)ËxIeãc‡$U¤…5ñ„w×´ùݶq.·UïAù‘(ýšÎw•RÃoW +·Ç&àS0,gˆ ®MÒ|¥ÛU—SFä˧®O¾¦ß5£ÓŽì9ŒŽ°ÁC½W¥IìµDîpþD€`(`ÀW øè>0ØùmýE€A‚;&^3½=Ó7]‘ÎèbëSŒ.Ž/'êÁ°$4M„JT¡RiUˆJrK¦?µŠJn|šÝhÊÀJ½¤ ý<ÆÖ«sò£p²Êç,’ÿœú¦ˆì+j¢žE„þ„Òf.Ï?/}2¹ojwÒf\^¸*âÍ ,y´´øœwZ¦E6™qÉ»F[{vr +ÎÁ +ŒqÄ{]p°Ñ^V=ÜkÎÃòM!¸¦°XQIµkÙ6 cŒ…÷C¨‡¡¬ƒõ/‹Ï‰³*¤ß:Ñ"-¿J©Ý´¢‘ ¶qCí74ã†ìZÓ“Å€àÚüœ–áô"໵Ãw^ÃF +#)Uê“\àýëžMÖ¡ÀrÎsµ…b…±šUhÓ²ds¬Û%:tï +Ђ+²8}åCá¿;è1¦Ë èQÈ9è ¨`Jº é$“ýmϪ÷ñ|,èQ³—é¦PìAœR`8j~j)PŸ n¹£Öó¥ó–ʱ~âÓE RÆôÇèh}b”âí÷[:°š]½mšÛ–G·û꜋M4 6¦qÈŒW¸X"ÇÀ­ºó-ç +ß¼ùŽ/ÏŸvivÍ9¡ ·U·¾kÖÃvUàÊiZøÕƒ«{4ë\Ï-Ê 2ç1F¡SëNŸvOŸ’%x˜u +7îç ©°°çi| Xg¼ÝÓjß±®ØhÃEµ<è¶(-MaþnãÓ˜A +!›ÐE*´OmœD$EN+*#¬-àQ6uÏ@i·ñgˆÃ(Ï•ûæ˜Æ ²”n‘û~.«%”…“ˆ”œ´šÃƽ«8€l ¥zÀŦôú¢rP#{öókµ!°³!0M;@›C[ÓÛvèç(‘:•Š™ãR§Ù¼è]S—KnÂ/ ‚Õ±GXŽÆ›¿šâh„¦úA. +½;ö¾lŽýÀÛúÐ97²|`+„LeÎ<ÅÌ G9?ýLrÒ:ß8úÀz`§né°,“”ÔÝ5ýh5Ft=¦Çº —Æ]³<βTIæ1Öœà 5ûu‡Yt~uyè •ãH‚@1XGÆ ‡«;ëÒºóé†fžWŒ|P E‘*Ë j:¸Xd„rÀÝÝ">÷”8R Ž}‚fã'7%pGªQ¸Ž—§Àö[áÜ‹:Gð_cįܦZ¨ø"=.ãíóì’Ì©¼·”¶Äàfà<šÍíêD•ÆùbÊLW‰Üù#@^Á–p7·²ä +îøx©‚+/VpýâË`õ±‚;›Çð3t©Ò’ƒÆ°²jè¦tÜiiú+­ž7Ò7’ÑFçR+,5òØc(x$ …Wƒ.{r¿#éxVk|ö|w@˜E)N›œº5e6Aª¼A jAj§Q¨låÔ—à•ù9GUȧ4ä¸ +öY˜'­ÊÜ*_aTɧ%„øŒiPƕϖ`’cðż€&åjcôä?%pŽkÚù—‘.3¥Ë`làyCŒe`¡'5“1üМÖ.”çZ¢WwAÆÇzXœ50ØÃ:éÜO7Äv¤M[ïæùÀgˆ“:¶öOÖ8e1ˆU£ÆYî5Î?^Ò8õ¸Æ«Ïh\`>Gr –P¾”¨œ(-€&ŒùËUÎ*‡M¨\°“VÐ oÑN£Îá>üGx¸QÅczš»@%ËTgÇÒq÷CïñÅÈcÞìÎ_îTû-D·²0©öyÃç-ÖÎ]0¦õ¬™×ú"­ìiÃ0õ†©°X¼¼dd®Rãó‡AIVvµ[mÈ}]SÄpûSGåMìsRìÈíWÔâÐÒEf}~Óä /¤»ÄTÖ$§)rŸìªf€ú6“¶?T]7rêû¯ÿu%¹ð©“oñ‹—"ù½7‘I€‡W¾ïÌa?]9Æ4‡újJ.S«äLŸå´ö9„6bŒ¼Úêp!×q$×츤žû¸3ŽÚ°üA¦åm¦ôª!n–>!ôÛU^úzÛ”\’—33Ûºúxþià”y€ ¥ù3ø +‰êÞøp—0Øß?ÁEŠ’£;iÓÜòWV9ò!Ë\º8Š»*2\åBÞy*¡®pæ]櫺Cv ò“ɯtnbBÛŸZì+ ´fVÇËÊe÷Î+†Ézx%5kð¶U&€Smë RIÃ0&õîÖ%ç±H`©lºn6»þ|—É÷x™É¯/©÷‰…_6S“üwxxQ¤RF£ßѾÔ­LF‰ü„1þ=õ:›ØÓ€'Rh äÂbRDaq‘B£TZ”6&1pÊ›©’Š\H¢=õXœ¦vÌëàs[ƒg}&CÌ}”Ò§Rµ‹  ?jª_©8ÇZÈ(*׳¤¡U òc%-Ÿ ñm²«ÁA¸÷žÃê¥râ¿ÿøæ7jyêmd`d3’3s#õpuï¾€}|óŠHy*Z;Û,)Åg0*•€Xb +<“C7 Š¥>~ECYíªŽ“-O¤S›v²¦)RêÇ[Š(æáøwœgA½Âò`ÿ?¤%Ä$y¼~q‘- @2~ýÄA•˜¬!³Ë{j™š<ÿÿö„L“5´¸¼'\º¡˜í>ïÖuQª£‹ÖV\D™„KF> /Pattern 97 0 R /ProcSet [ /PDF /Text ] /XObject << /Im10 591 0 R /Im11 592 0 R /Im12 593 0 R /Im13 594 0 R >> >> +endobj +294 0 obj +<< /A << /D (cite.diskann) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 280.166 685.016 291.423 693.27 ] /Subtype /Link /Type /Annot >> +endobj +295 0 obj +<< /A << /D (cite.wang2024starling_sigmod) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 75.624 649.151 86.881 657.405 ] /Subtype /Link /Type /Annot >> +endobj +296 0 obj +<< /A << /D (cite.fast25) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 133.353 637.196 144.611 645.45 ] /Subtype /Link /Type /Annot >> +endobj +297 0 obj +<< /A << /D (cite.tatsuno2024aisaq_gps_ref46) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 279.742 625.24 291 633.494 ] /Subtype /Link /Type /Annot >> +endobj +298 0 obj +<< /A << /D (cite.LM-DiskANN) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 115.668 613.285 126.926 621.539 ] /Subtype /Link /Type /Annot >> +endobj +299 0 obj +<< /A << /D (cite.seemakhupt2024edgerag) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 280.29 601.33 291.548 609.584 ] /Subtype /Link /Type /Annot >> +endobj +300 0 obj +<< /A << /D (cite.pq) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 243.921 517.644 255.179 525.898 ] /Subtype /Link /Type /Annot >> +endobj +301 0 obj +<< /A << /D (cite.gao2024rabitq_gps_ref15) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 170.627 505.689 181.885 513.943 ] /Subtype /Link /Type /Annot >> +endobj +302 0 obj +<< /A << /D (cite.work-in-progress) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 236.776 374.182 248.034 382.436 ] /Subtype /Link /Type /Annot >> +endobj +303 0 obj +<< /A << /D (cite.ryan2024enronqa) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 251.005 374.182 262.263 382.436 ] /Subtype /Link /Type /Annot >> +endobj +304 0 obj +<< /A << /D (cite.wang2024mememo) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 265.235 374.182 276.493 382.436 ] /Subtype /Link /Type /Annot >> +endobj +305 0 obj +<< /A << /D (cite.zerhoudi2024personarag) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 279.464 374.182 290.722 382.436 ] /Subtype /Link /Type /Annot >> +endobj +306 0 obj +<< /A << /D (cite.yin2024devicers) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 215.298 362.227 226.556 370.481 ] /Subtype /Link /Type /Annot >> +endobj +307 0 obj +<< /A << /D (cite.snap_cvpr2023_tutorial) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 69.987 314.406 81.244 322.66 ] /Subtype /Link /Type /Annot >> +endobj +308 0 obj +<< /A << /D (cite.nvidia2024blackwell) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 541.775 411.465 553.033 419.63 ] /Subtype /Link /Type /Annot >> +endobj +309 0 obj +<< /A << /D (cite.nvidiaA10) /S /GoTo >> /Border [ 0 0 0 ] /C [ 0 1 0 ] /H /I /Rect [ 495.356 399.421 506.613 407.675 ] /Subtype /Link /Type /Annot >> +endobj +310 0 obj +<< /Filter /FlateDecode /Length 5314 >> +stream +xÚ¥[K—ã¶±Þϯè]¤s$˜ >–cÏ#}ãŒÇ3;÷$½`Kl‰·)JÉžt~}ªP¤¨Ü´³"‚d¡P¯ +ÅèfwÝ||ñõû»7ß}yv“‹<‰“›»Ç)¢îE7ò&Q0ªnR‰H¥7w‡›¿-¾”í±?/³Å¦\ÿplÚî\TM¹\§‹ír­"½øe™f H›î¸\Ëřƿ–…}l/–÷wÿó݇8’ó_U&âDŽ?û©?”øø±oéuåãß>hôM’g"Êbzæñxîp¶2‹}ñ¼L‘*ìÕÁ ]¤R©d¯§ñ~Ã3»}I÷åáëfñBw8óØÎUÓÑÐñ‘æ>»÷lf)Ì!c^Uwdæ´slÿ]Õ>­Šv`¬Z§Óq,6û²¥¡¶ßìé¢|ûéÝþ~ÿM$ŒoBš›§›qÿOo¨ŒÏ¤I<&Ñäô˜ÑFå‘Ð0o4ÿÞ­9RÁ¢S-dÊÛÒâª-‹b-€«0rOÝy0«¥±¢ÙRcw.N<ä®ßtVKžvl躬¨Y—À0ûÊs±«”ÆÝÜž$±ˆ%/ jÖãÝ6z±9Nô©aG`¸<õ4¶­š]K7í¾³hŠçjWtÕ±4ðµ+γba"zæP o‚ä¯ÞÁ4¸á»}uÿ2#²ÌŒ§ßÓw+Zïѱ¯¥áÛï~¢Fù÷HéMU6›°+ÆrM¼ª¶%êŽÚkWvá‘{à W"Qhg2¡¢„(ø¶¯`ÛÖ .‹} œqþJýWrC*-”¿=‘cvÄH ÔÈÉü{úrÙ5rA¦¤¡íÖÈt‚ÒvÕó2_0Í^“©ÛíÉjíök‡M PÒ—6dQp:HRÑ9A“i´èÛ’hcðúõë»eœ/VÔûáórm¢Å_–±¡!I:ƒ÷>º{¶Gƒ<Þ +šü¶úúv ìgšôj³‰TeãÕ$ÑU>£Ùˆ¢ÉêïWÞn„Z!asÞŠÿ¼öÖ-Öù«¥A‚r$füN\h‡ÿ¾ŒÈÕxþ=}ú±?ƒk@‰Öª¦:Tÿ$3”/Þ}yûgºÑ·Å®¤Á‡BÛ·ö’`‚•F±ÐZ:„êÖbÆîàð¬Ý‰M‚s&IDûY¿Ð µ‹ðj¦ æûí®üb·ü# üOgɘjc.·Ü{n`¯GxW¦×3 SɘÝEM¼u°ìxbp ê½SIˆÝpÝ• XþŽø©¯1N#挲I3a”ôF™ßVɽ°hhè/‹_>„>ïWÍðAÓþˆõ›¥“qÂyi²ÅŠîV=ÔvU]óP³éÏLcÛ?x"#P™$¤Æ9ע骢Äd:Þ˜Ÿ÷ea%IÔᛂìuτ驦ðuEÕP¯.ÎðKÛfŒΩlê¾íJ»Žˆýt”[y¤‘¢u#›n0|xÇn$Ü©:~x ne׬ø9 ÂÛ'Kô¼Ñ¡h6¥°@ÓŒŽ­°”mKðL['[…Û€MQó^Û ãíNˆšq!ì«ÝžZ=¢Îöõù4Ý…ÛÍõ§ØO²Ž¼®¡^H¢À¡`yÜEÍÉЀ– ñ‚†ßòãE ûN¦zvJc§:'3‘æ¡‚½šÊÚÊH¯h<°_ÀŽ=D [?þùçßg…´9ØŽ…q~i…Üjà[BBt0zàžÉ²ˆ90:ušîT”ˆ4Ïé¹aÃy R°MÝž6¯¥ºz*©õ¥x¨ºŸ©ýZÇ•JФÉ×cué¸<‡œeùø»Lø8À+Ë~h-„93­¿õh9þI‚;µ…„Ót®E¦5ã´ªã÷Xm`èRvÕÆZzh¥åL=ú}³müïÀFÙ­ü[Úr–‰•æÝ®.gl´Îb»Xާh/Ceœ’‚+ À™•¿ X×ÂBXèeäÒA¿á‰ŽL(ha¿ó:)SÌ—]ÙµìfozÇæØ@˜Üv,i?¾' cÐ"thÈ»¡6kàÃ6&y¹æëgLˆ6™ÈÓ Á -‘ÌcÞ2lx‘ËCŸ…÷œ!Y¹îæx>ѳ+ÅadꬽÐ:æèÁ¾:r,•ó×%9ñg¶ÊwvJßøq2òÆÒŒýöäÓ/kth°™\\ Bh7* L%™C»ãØq`ßxê,† ÜE4ÆqÞyÑ- žmcœ= ö…³':VBJEŸýe™ÅC|KèÛ&FrŽŒŸN5èîZË ¿¡ë{K¶ÞM‰'SB°mõ&c*~jÖ~—vNm]—ìsk•s¨’¶û!.HÂÓ¹zÕZ_n·‹Í­k]× üEš|±ÂýKSy.∀–+µx /›âÖµ®ºªätO±±–§åî¶b¡p  €Å‚†.X2V0•¥hã˜GÎR.Ú€6‡–:; +ö¬ÄB·.š]OÆz2ieÍ“­y‚+c–öØXà #[;sÓг̰"5‚j6"F¶[C'™‹¡ã$÷¦ô îm‹® [¼E4üZß«R‘¦ñ˜_Ï¡UPéxþê•ß4± ÏFï0êú7ˆR’ÿò›®cp}£w$ÉõoÂ< ÑâõMðß:™|3ý7¼Ír‘Æ“oÞ 'Æy`%årªŸYèB»ÜàÖ!Y4½^ÖÍ«“11„ßqnÆ$—`ÍSCøm’ñü{úô¡è6ì*ú–|vÌÐtÎ=+#…rIa°Ê)O“CÄV £Ö•¤ž²Áu×8ˆ¬Á+eŠ>VÞ±âÏXutV%4+*·TÖdM7 +!‘é!f‰ƒ(ŽnSüe›—¦ |¤çj²)Q¿ð{}?åˆKââTh—´­`Ǥ°GFk¾%ä×:¬r²VýÅõÃÅÎo+—˜Á5ÝÈJzhøu H‚H¸<-ÙÑ×ç«ejü.s™­òßeDË?šÏi sšs=Î2'rž°é +¿?f`N©°a¢á$]w®¬$µWä,\48|)ÐÞ ;†Ï”F÷úp„HD´çÓc9ñàTñò\òs +§â—&vzÅiòî—9‡è‚?˜§e<âŒÕ„¼¥äÆÄõܬAb3°1w[ )CñŠ"<Ùô­¼ÈIo´øÐw>gÝ_—|ùüôÿ*æ=ˆ„H“ÔñÞ•Õë Ö$]«ð N(šš¦ñ–YóB÷í†àµ?Óë^/‚P‰È$ËÁÈzèki ¸c“(˜_Ñȱïj&c÷Þ†o¬¼bÙCÅ’»º…CÃÜð Æ¡ÆHŠE‚´q>A5²©S¥ÀÆx¾ÙxòiyÃö‘#D´Û/$ ÀGb41ÖD,é0> ~¼î ü*¯HÃDe¦E$½":sì)‡m§—î›ê·¾™fE*·¢6D[u¿õÁÏ4T#ç²I2äÓ5CøQãÝïƒ *Ö”€ÃbB>Kà0 ›†MOŠà(a"YsÞW&`ù@lZ³µ(×#¥‡®ÈVÜ?Ó‰-¶HRý£N]j¾à}ÛõAMàÎ$h¬tÉ‹3 sN6ž¥—±0:%A-Øñ3 ‘^¶ëƒ˜s‚ƒÓçâPz~H9ΤHPYé²,Քɿ2xŸðm8'í[nüñÓ×_9PbXPðÆ\ϬÀ—çoؼ4ª<¥!~ =ÈÇië¶{™Í­¥‰Ð.gÀºZ±©eËÙ Š5u³ Fž(ís¢áÏ?¯)œòqVBÛ—_;ÎÊÜ–͆ J¦ˆÆÕ"á!'âͽEvv:H<²æl€éêŠ +†„” +’M°šl¦#oT˜âëôp–¤( ®Ñem_Sna# =AÇÁ‚Ì!?ªØ TwÓqo†Ÿ×È +K7¼ˆãÜ/8vû#'û7¼öÇù¥ãd P çð•%‚-¿”¸ ÈšI¶Î“Öœ©Ž£ybïññCžú„¾Üñ6<ÖºF&âÒ¢î¯eõnÖ +KD<¶ˆ[üèAÑ,P¸YK-rt:ø˜‡Ö¿õÕ`Ü"¦Š÷õªf©¨Iжu!ZÄšcEOy*1 ÊJ½}¶ÂJ/¥Ë%— P|)}ðÐW5úøÁÊñŠ‹ÇÎEâîˆ!œ:^ÉúªbK:4†í‚šwû2@ßEÐ>€}ªNAV#•`Æ”aèøÃêŽu¨$ep-6Ou9bÀzœEP£U)’KX±¸&RÆgÚe¾­¹JÃè²%pÃR§|L±æ£k¾gw +&3^汆ZcçÏ4ÜØ›«Bo´ä‘»|Ü"4œ9ÞaDS¥rË ®,a„_V¥¡]Ò2áq·.bÖD$&*…Jõ(¸e>ùÃiˆÁy¬âlଠ–^´[_ÞX:7*-“ŽJh9*íìk\“9 wðg9%³™“è–nxá•Ù…ÝàlÁd6¼Î1^æ´RBëµß‘²9 +§îËD©Ð‰I4z¢ÿ¢[OýÁ #Ø û®Ã +£U„÷!Îáñ·í‚2 +¡žs¯:7ÂD¹¯–=Lœ¥s̓ËB2ÿ3©ØCþ¾,‹§‚6eXd+æ… Ò¶8[¼`¨cÍ»rèNa~´ã*E_šfÅQ¸RÞ À4»Õö;`f.2.ž6ˆáTž&Ž¡q˜M'Ã&YÒ(>+|¢Ž•-3Ö7¯m1 +Ýú=@aýÂäpÕPµÎà”‹yOšFxà§…Ö̹gX¹M™“2Å|Òj¦tf_îþJ ’ˆZ¤lÿ7]±d*íAWåÕÐÇ-⾋D§>CC¨3W½c,Z\ÜÉY4ˆv>Ë„†î– ìXÓºJ|>µ•—€¨hèÀdðü?þôù+µ_™BÆ¢4•czõe¡­_ Á“+NFÜ9òšuÓúÒ3YÉú¹Š-¹øD5h·ïnßÒ·2¢;¸nöénÝæÕ•ž:O¬6ŽˆÓêj¥§‰ŒHd:žo—Íøâ–!'¬KýêÕEÖßñCAHlR†­Çfwô™$qÇeF4fý\-ã(,r¢êQåT>ãÓ£ˆé)[n-Ãã$R-g²PIb.$‹/þ9°·ö¥ƒ 6½CÖD ·r™Ý~#/Fƒ0(qõ©Ó@Oy¢mU›MYe’f0…èP\°ëRpeã«»¨êΨ‹ì5ùŒœcžšÒ:‘Jé ~IëÅžö-ôs'0å褨ºF/¾gäÇÉëÆ%±Ï®ö,x6H.Îl¦•T:j¾ UqeãO­ 棡Ëe#þ¨Å–º*¡H:œxÈÜFÃóLsžYÅ™È&éôiM~è– a7-±±EÑB ¯–x•ˆLóB¿G)}Á·6ö/øV…g.+ºmÙ‹ àiÞžþ?‘ƒ˜œé‹ÆàD/Ä ÒÂ%BY€õ òo·.ûxËì\„‰›b?ÔxŸoY‡h… ”¶à2Ü>N0Ì8Ê8E®ÌL¡K{öôíœ žïñáU᳜Ÿt°ÊDKé +3w‚Ì:k1xŽ‹ïí¹«w3Á 䙇pÈõ æ‹ù6®çíØ-h«]2ÖŽmm0‹ñ¡(íŠö‰6>÷á蜴ÆI>”|ýÖWý„÷¸„K9NXcÖ²BŒ q({臞`yùð÷ÞTÓ±ž¥Á_yvWùaR%CX`-J]=‚Í8”ÚpËÞG6èHs›«´Á‹ ÉÎ6âsMÔÌÙYPs!¥«…Ígønu‰pÏý;·òõ”%»¨«’G.îìnøNNý@Ypäæ—ç¡z.dVÕPÖŽõuåŽkŽùˆXJöÁR|Mô§@ƒ8Øâ¢þIÒizÇRÄ3æ×eš»Êýýñ„àÞ`L}Žœ^PßžªÀO,.&šÃ*5¬‘vÜÅu·G¹IãMsåËv¹*–«°faKCi7•-\¼m‹2Ö®Œ8´py{ŠRrÄ=ëk‚,ót¨æ]î᥶êD%ô·_øb±EWd­±JøOD3¤÷ø_ÇdV pfP›6§à23B©l¨SÁP¤A#JŸ‚¤#Þ‘íÆ³þ‘ÆõC|¥A4ø?ç(ò‡#ž‹¶Wò¬sÜ ؾ‚“îYp¢Æÿh©T²Ð¦6RÁþ…ç°YÖ哲 ï›ë[¯KzÀ®Ü,ùbø±r™Dî€ÅŠ yÎÞiaæ`ž¦„…çnCçðGg>­ÔY€K¨o•K¹ï“­TÆ?º¸šŽ ¯€ðô­í‚_jT˜êUò2ïO=b¶šü›øJFnÍÇwbòÜEÈù¬„'ruFéè[F_ öq¹=¥Å1¼¯˜K§‚ŒíðR:@ßt1B4Ð÷u +x0> +úH!‘〨Žì0¾Io ÜЮ–XŽ ßß½ùénßg +endstream +endobj +311 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +312 0 obj +<< /A << /S /URI /Type /Action /URI (https://aws.amazon.com/ec2/instance-types/mac/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 195.914 491.999 295.041 501.464 ] /Subtype /Link /Type /Annot >> +endobj +313 0 obj +<< /A << /S /URI /Type /Action /URI (https://aws.amazon.com/ec2/instance-types/mac/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 481.997 137.108 491.501 ] /Subtype /Link /Type /Annot >> +endobj +314 0 obj +<< /A << /S /URI /Type /Action /URI (https://aws.amazon.com/ec2/instance-types/g5) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 195.914 472.074 295.041 481.538 ] /Subtype /Link /Type /Annot >> +endobj +315 0 obj +<< /A << /S /URI /Type /Action /URI (https://aws.amazon.com/ec2/instance-types/g5) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 462.071 128.532 471.576 ] /Subtype /Link /Type /Annot >> +endobj +316 0 obj +<< /A << /S /URI /Type /Action /URI (https://techcommunity.microsoft.com/blog/azure-ai-services-blog/announcing-cost-effective-rag-at-scale-with-azure-ai-search/4104961) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 108.617 392.333 295.041 401.69 ] /Subtype /Link /Type /Annot >> +endobj +317 0 obj +<< /A << /S /URI /Type /Action /URI (https://techcommunity.microsoft.com/blog/azure-ai-services-blog/announcing-cost-effective-rag-at-scale-with-azure-ai-search/4104961) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 382.37 295.041 391.715 ] /Subtype /Link /Type /Annot >> +endobj +318 0 obj +<< /A << /S /URI /Type /Action /URI (https://techcommunity.microsoft.com/blog/azure-ai-services-blog/announcing-cost-effective-rag-at-scale-with-azure-ai-search/4104961) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 373.101 130.868 381.752 ] /Subtype /Link /Type /Annot >> +endobj +319 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/togethercomputer/RedPajama-Data) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 189.956 282.744 295.041 292.101 ] /Subtype /Link /Type /Annot >> +endobj +320 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/togethercomputer/RedPajama-Data) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 272.821 148.601 282.138 ] /Subtype /Link /Type /Annot >> +endobj +321 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/kvcache-ai/ktransformers) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 242.893 220.181 252.25 ] /Subtype /Link /Type /Annot >> +endobj +322 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.cpu-monkey.com/en/igpu-apple_m1_ultra_64_core) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 236.137 232.938 295.041 242.435 ] /Subtype /Link /Type /Annot >> +endobj +323 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.cpu-monkey.com/en/igpu-apple_m1_ultra_64_core) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 222.968 221.897 232.325 ] /Subtype /Link /Type /Annot >> +endobj +324 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/facebookresearch/faiss/wiki/Indexing-1T-vectors) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 212.136 83.491 295.041 92.995 ] /Subtype /Link /Type /Annot >> +endobj +325 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/facebookresearch/faiss/wiki/Indexing-1T-vectors) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 73.528 214.088 82.873 ] /Subtype /Link /Type /Annot >> +endobj +326 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/2401.08281) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 353.9 677.264 391.001 686.769 ] /Subtype /Link /Type /Annot >> +endobj +327 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/2401.08281) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 418.466 677.264 523.863 686.769 ] /Subtype /Link /Type /Annot >> +endobj +328 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/1907.06146) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 477.234 567.683 514.265 577.18 ] /Subtype /Link /Type /Annot >> +endobj +329 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/1907.06146) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 539.045 567.683 558.996 577.18 ] /Subtype /Link /Type /Annot >> +endobj +330 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/1907.06146) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 557.713 420.299 567.058 ] /Subtype /Link /Type /Annot >> +endobj +331 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.14778/3303753.3303754) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 536.81 527.833 558.996 537.329 ] /Subtype /Link /Type /Annot >> +endobj +332 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.14778/3303753.3303754) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 517.862 450.227 527.207 ] /Subtype /Link /Type /Annot >> +endobj +333 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1145/3589282) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 389.431 478.011 493.353 487.516 ] /Subtype /Link /Type /Annot >> +endobj +334 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1145/3600006.3613134) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 445.313 378.385 558.996 387.742 ] /Subtype /Link /Type /Annot >> +endobj +335 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1145/3600006.3613134) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 370.256 354.371 377.19 ] /Subtype /Link /Type /Annot >> +endobj +336 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1145/276698.276876) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 419.12 318.609 543.326 327.966 ] /Subtype /Link /Type /Annot >> +endobj +337 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1109/TPAMI.2010.57) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 514.876 218.975 558.996 228.487 ] /Subtype /Link /Type /Annot >> +endobj +338 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1109/TPAMI.2010.57) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 209.02 418.06 218.138 ] /Subtype /Link /Type /Annot >> +endobj +339 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1162/tacl_a_00276) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 432.442 99.423 552.503 108.935 ] /Subtype /Link /Type /Annot >> +endobj +340 0 obj +<< /Filter /FlateDecode /Length 8369 >> +stream +xÚÍ|ÙRãȶèûþ +^nl å ”Tç‰jj¨¢ º{÷‰­Âjd‰¶dhøú³†LY’m¨®{"îå§rÖ¼Vf´w³í½ýWä~__ýëðŒÄ^fFš½«/{Q˜¥P퉽Xï%" +#•ì]-ö~ š¶^Ú›|’ÿ)=-òªÝŸˆTU¾ZÚÓ*Xî§AÞ.‹|? î9SÍcÓæ ®ÐέkVR¬½6û¿_}€É¹}2ÒdadÄpF7K{7Ÿ`Ë=FB¯'n²4ŒRÉÕ®m“ïO’`¶?‘:å9â÷´^Ü­ZÛuåFlE¿K¡L˜H5ì7äþ^?â/uw]TEuÃÙvÛŠú}Ê( c“ûl`võd½9%÷Öäç=»ÎË›š{”ÉÞÂS +éögY´óŶ¥õ%ih9lø wH×.ËBc԰ݵmi†± pó6¯víp¿;a¢Ð {;àžÎN>~ä¤Î‹ng7Pñû¯U¾‹ƒG‘êíO¢C‘¸Í¾Ã-­iŽyÓðÉÅ­¾^µüPß•´óœ_VeÉ©|q £E Q³YWµÉÛSoVKh·ìŽ«‡_ÆÈP +·ÜEÍ áÊe<0¤Ji‚¢j»ÉÎVS—k_À¡àÒt8μ¸™sóY~Ó!CÎCÒ–ä m¡ îy9”¿"ÐÞ~Šk,aÆkÚ¥mó›î8DÖÛ€8 +¥ñ°_3"usr …,ÂtN:2„öf¿œçvÆyó¢tÍöÍvH™MWÛ †JC‡7vú¸§ŒàIpµodPßäxŠ˜}À8Ÿ§e@ŸW@_Ãyye¯yiÂØÊ-²¾£]Ç­é#ñóQ¡Qbö7T±è¡$ÀΆ@ŸˆiÅyñÿáßú‹/É]Ʋ¸)*[ò×̶–+4Å“«ñ[$cNuØå€XÖõùs×}Zæ=MÂ$ʆÓý-Šä¢Ú§VB‡*3þ²?Q*À‘ÊEŠm×Eœ‰;Š¿DqЦ¥ÙcÆNŒ¦á ^*¦Fz³‰d¨µ[ÀtåmãH‚­f.ÐDH_#Þòò ‡@¬ˆ%!Ëœ~˜E€3åsþ%§vÕ”Y`Ç›yã’0Kà*Øc³7ºÜøWñû IsH™‹ãTñ’Žní²€õí 4¶8àÏ_h?ÿ*Vø©ƒŸö¥Vüñsñ4¯iK¡âOûqë¿qeGûðï¾X®îøû²(]´G˜õÎV•­òyǬÒÑ czðÎþY4óbùT8Ò)#©Bì' +.óòËàã—œ?\Ÿ !ÕøúÄÊnòбmÕä8%¢®§ ã]Ô0G kL¥æDˆWHD•]¤‰! Fd`#M@Kó–ÁûjM£×§Ù_ +80ä +ñ{¿ÚšA| üÒÎ}—m¾¬HnAÄÆjÇuµ$Îb–ÛÁ·_Š‚Q²˜GnâçÜÿŠ…¢fÀë™'Y¨#Áp€“L† Œ2A„WJåËP +(‘(çv (ÌDòh_©`µøM%º,Ä÷tYÜr×°s" +³¦©+WÎG‹]ž›àoøFž†9o,RdàN~ ‹Â“Â$S{1¨Äñ1 á“×°¿ó…]Þ6‡*ÁÒ“\!S Èn‰üÔ%}O {w‡SÁZÁìŠe¼è̶“‹t˜Fn.ULœÅN ˜A$$¯ ·Aö²>·÷LfÁ¢/µ¾$}뉛$né[¦ 7ø-Š#Ü9øD$à Æ !b£‡0¡F0„A ׫3X¯Önï^õ¹ ™/ÁÀqèHÐÂ>ñ"Tpz,Y|óoQ5­Œà9Á†1ÄQ@8Ù»Ý~$W'QoáýI‰Ì„™ÃYÍ[Ôe‚;ÚümB‹ÊNÀóA8­ñgq˜OñWÛŽW§Ð±×Ü´'@LdÐ>²¨Ð.ìôðY&aâ0ÒkÜœÀz‚_‘à}ªÊ¢Êÿ»c[ Bt*äÝ-‹r‚»úûøø@=@|œžþŠÓ@È@Òûÿìôú³ú_==à³Ylž=½›øÙ³‹M½üï(ÍÀüéì¤;»øEj¬#g™ñ“EÑzu +$'¼¶KXÜ|u‹ŸžÏCþÑ’t|Ì{m=9¼­qþ!gÃr3HšD8‰È߃#Ü\£)E 2Jû¸ƒk ®DOûGI8½¸U»Q±Û$Ê\8c玿ˆÄHÿPŸÎ¬8BAé¸aøÃ$ NÆ.ÿSÜs?ÌEáPª­t\+hfÒ^³W`Ô^!å6úǡҩ ¦»"Cº»qÜi˜=§]U׌;œvµQåö¹4جØÐ–9.þk»žî»n³ì¦ÑëÞvf¼ÌiW«µèzFhï:ÀäS·še¯Ñ‚¯ØÖÌ [°X€öÜéüP‹HgFv¨éÑä€ÙÙåÉ LÎ:ƒí*KФ&Ž<²PæŒËkk~\«xTíãHƒ*=ÒHß; Ýe…JfÃ9ª˜MøÐâ‡ÖNÏ™ pF^!üè¼:˜ÞÐ/¶νÙ)ˆØÉû‹ËΘ#PjÙ&ãHü^ë]@.À‹y¶…MŽ ¤8qÿÄÞÎZzÌfÁº3)ÈZM[ß9ëÛ媲+WöaUÞÐzQ/Û…­ª!ØéàÇß”ÓÒÞóçç7ÜEhA$‰½yœÍ­Òàv²ÈmÕü×!Lù‚¦‹N{ï|Õjó»†ó‹¼œq’„`K@ uìÙ$…%; j4G1âØi#‹žæ3 sކä*ê¶œºÐ&L³¤§ópŸ}ö…,ÊÐh r²aW0 + !J»"z‘ôIâÌ!ÀÀ´?QÀÉ)ȶ&$À<Ò(ãäÎÙ…ýÓ.ì+.>ª¸å§;´ýåç^Ö+V0¸Ð ¬×á*m½Cd•ÀˆtpëÌr}ÏÒ3{~Ä0xµ/£`¹6UkõÖ’ÿéõæÎ}”ÁG¬†óµTæÃÃW× /[¿ƒƒ‹mTG4ÆÉñ´¿‡Ÿs·ÌqÎϲÁÄ„±R#ýøh_€»Öˆ_y|ô&©ƒŽøÄÆJÐD¢x@[lêc^ y&‘CïH¾ú¿ã#úÿî4$1W§ˆ$í²¸^µõ²qäÜ?â$øÎ\Õ yÍ—hˆÀVG\ó °Énò¿‹Î•ôfiùd›¬${ ½…‰÷`'y‰zz;Û#$NÿvŽ'`_¬ +`îñªE¿É„w‘œ0{vvΉ÷Cë2ä|º}©xb;ñ7 +ñ£]î•$éN »EƒþH‹3¬Øâð¶¥Í‘Ù'îà³$t +!¿„ðœ&Q<›MƒÚ×HÍ[¬ÜQ6Z!°ÞT8$8¾€á³à‡Éy]Ýâ?:stÎB…ìç‚(aÍœ4zrÜ1ø~ëzÜ'=âÕªnΨ ¥‡“¦cA3ÍY…ˆPNïV»ôo ðžÆÊû¸ýbñHóê°¸Á–£‘_•ù ñÇ +—ø‡ÑLauë•;Ï´ï|>šEb8 ²ÄCVÝ!§îåú£] +:l0ëÔѾ_…z™¿ôê,¦ˆlivã‡LšàõÜ6·vÉÅç¬ù€Ó§ bž˜ü¹(öÉåŸØªÀpêÎ.ؔѸÞPÙ¤ ˆTy&^}( $™‘šä,öRq¬’à¼á¬…EÅ´~ÅŸ¯ž l ˆç? 63§¼l¸ä,ÈG/´öG¸ € gÆÉª¥]Þä·Þ‹ÜÙ10o»ÐÒïYè(4©ƒ®û!š†¶œ†»e‡¹XGvhÍ~v±)ôˆ€ ü9\¾ûþs·¾©drRÆt,+‰NVr·upO,¼P)Ðp飀ê;g¨„ìµ-†b¹Øˆ¾Ú"rõ§*Qwñp®n»El ¹ËÌ< +Sm¬Ø³?ÃǤji]èGèÖ;ÛþßbŽ›PlhhB§eIFNÒþàùIÆ U/ç \Ää¡ÈËôQ|"åŽã܈bÞÓñ~|@@b⸠-ŽN½Ù®‰Ì/E&T‘S±Èåç æ:Âu+€`ˆï°íNÐí"LA4BèòͳpÌG§£án^Nj` +rØ(äµí”½Öq¦ e£ÍAjÆí¸<ýøþ?˜F +¤‹ªZQp8”]í›8èÂ'§>{d^–ÈY ¥|w[ø_ë.èÀ m8¾SèäNãc Z‘Y¡DªØò”޹˜–¡‰GÂl ‰‰„ e©Äø §¶:!ô¤^=­e]éÅŽõš±€m;2WÜæÇýÔ¹&§l]øÖ Ý#Ö@QÓÜ¢†³¶m§ùõ¶aP §z±ht»\‹·‡_lÑ4‡ÅmqØ[ëóâ +‹J´¦”yéB‰·XŒÇ¿˜ˆ†ùªÐu§–ì=ÐN\8X›I“õ±ð÷Ûj€Ï/1Ãwšß[Wв¹Ö©)ûÉ1ù<°ÜàC=¯6l;ÝL"˜IâÝsé›$x›ƒòT>⇠.ŸŠòÞ6.RË/Š|Iˆ49],lµBAóÏí“]þ¦%xœ·,,÷tV/ò²8Ø5,m)G¸šZÜïjP±‹ +eü$™ÇÀ¼#éW÷4"•}ÀäM½ +ùÓÆD*5‡?bæN–ÅõÒr'°¼ÄÇ Œç•¼tÖ®ø*Ì@z¥âF©L‡î¸½_‰üº/Õšðìíïß„j©µê¤dXvù7ÈAq„õòæÐ^7‡;f± &È&b/SwÖ¨t 9ŠÇ[M¤É&A’ȦÈd³½ 2/íuiI$ݨqU;GÜ;¯ïð‰“on}âLæDêâÀΊêv'¨ØRé83wo²`êl¯øó Gg›´âE|2ÅD.GÎC¥.bÈdýŽwvêœ&ly`¥¼a½º7VîœcÿË!¿J+81luñœ¥è"«ŠÚ«Š:xzzÊEξxûÖ®¸ÒÔ»3èë¾ð‹òêdÞÁÑçËj;:Æ&3‡N½‹S7U1¼ÔÓ TQÀŒ¹)œ1™”‰7쩱 ¥óÓìeÊlHÝÊqª£ëyÔíqÅ㬮÷'h;4Ác5œQ­Ê:m÷ƒ]Í—…ó¬K Ú…e7mæù-Wÿn ÛN6‚Ú»¹W‰ƒÙYaÙ_ÒÏ|aq稜œØy9@³"oæÎv–£ŸÑ7»Îˆ:_-‘dø²Ò:óÏåtž—-j¸^t]£¼î`fZ8ùìˆ,›®ô£ +ø‰»ùñÆzO'‡s©q8h%±önL@Ë 4A9¬æB“ÿ¯Øü¦‚²´ 7¶âö+9ÕÙßoY[Ã]¢iÜ™p‰0Ff›ÇV€&«uÚ3n±‡è(ÁëM©Úÿ O˜HŽÌ!z›9oÐ%#?‚Œ^ü8CùÞt.|ôἡ­¨põ÷Š‹ú×6„30b>Š!œ:¶xç ½58‹)&ÂU,yÕ°%ÔGH˜ñ´€õÆÒ —ëPNrN\öï/fž&cmó²,ZçĸtwEÉ¡äú78õª(ÞÌÊü-€KÐìuQâ0„ª»ð1^çÃs»[?T…B××C³àûõýAçèþÐ~”Œ\ +&û‡Â…Èf"#´Ù.`L/\¼ÿüû7ËñiÞ#-Kfqcðš®jÄÀ]ãÌü6dÇÌw $&LÅÈÆ'ÅW@50C£âT£¿“ Zg΢†Yÿ)(£‡uëÓ‡u/b¾ƒulðNW?($9‘N€Ø ÚèZð·Fí¶ÐžÁí ²ŠŒ¯hàÕÅ>˜ ÇÓ±{_ÜØ¶3­4L‚ìŒÔ¤ÂG Œ0q”î­*hI²ÎK¡Ìš–`õ{èÉ!!wõãÙÉkNV3ž¥àˆí–ß·Ö"LÒáì„<àŽbþAêøÁVnÖìêh#PdÐþJÉÿEh¬’0…SíÏeŽi:èþSŒ(¤ú¿Y€­':ñÈ2« B:G’¤‡Jª«õ?G˜Ž ÈÝAÀݱðI{Ç?Ÿ ³KÆgmü5(îs0uVs<œŽ»ûu¨ ´Núdž*l†±y£éŠãL¥C‘#\Øs‹™! Ñç{dÀ›²ðWg{+8#O +¾fÁ_@¥wâ‡~™ÆNˆ½¦Ô œJ +ÙáK¸]Ã3Ø¢#¼;—û¢ vJ—ÖÈI˜¢¸VÙWàC\žCšÔPî`º_í¥û=Z¶Å”ö*á\Â¥U•oktQ¤•—»TïÚ–t7ºîð†oCµ8õXµí#‡Ðñ¡ŠÓ æùu8‘ÈPoÜ#T/3No¥Ç8ãzä¢0Çá&N`ÒI¥„Ï [´ß¿â|ô"µÅSá›ÂŒÄÝ<€«fžÒŒ° +½.©ìÙî8sÍ ¬»vÎNEñhÙ4Š ~JæÏS^×+Õ±³ÛïÄÚ(Ï3æ˜-X›½œJ‘¡»‚S“žäÄb0гª.ŒBR>ü:¶˜õP +K+þ%Ôâû;[AøO¤ÄzCÄ(Ø…§^¾{þé„¿ÿÍ2úÖ t8ðvHCæ×ºô÷”Ýï3Ñ‚l6b»‘ÆÁz‹g\¨ñb…œlý3K8OsëIú»N‹¤ç +ðþ+G éu\ZÐoÛù£±õ¼h¹àbi¯çöÞ–èR÷ú® Þ[w÷| +røC't'€»)­¤{L<Í'ò¹Ë¸HyOÄ>:àŒpR3pÕBi™=Ö2(UÀêýoc4>Òb†•œ„Ü)¸lY–Z¸Á¥`(S5›´õä”ò.ï:ˆt^‰íÐ…7¶ümíÏ#«¿à/æž××…‡‰áE¡Ý$4ÉæF<›±íSÇG——[ï%ôöÇÐcTJR•ÁËc÷|š…q2–Dâ-’H6ÞvÿãÐ3:Mþ]^!ݽÊ8[‡Ðí<Á TÞØAµ{ +˜Ö¾\‚P\MÞ××MÏ™¾ƒöªL„Ò_nÀ8’º¤‹/2~ÉK`ሂɵJîŲ¸gq^âå¤Ñ×üÑ×^e'«@ꪸã;Þ9>¨àú9æÇS¡¨¬×ïžDc,Eè]Òù…³2 µã±ŠÁ d–râJIª…Vé·ûuæ~»l0#äãt!–x9¦?Ǥãé˜T&‚?LAfClÆËÒ*нC¡„ú’ñ8Hš—%ce`<í$ã‹¢&~’¢3íñ–“$`â³ý“BsØì{ÌÆR·¶*B® 2tÒio¹Ô5úš÷ø¦W»7‰¥–¨ÒõÛ7ýÛ°h ¤>uïAéÃÔD0]-g‡÷!l³µ˜A–Šäùй¾z²»ÈäpF_9'» ¿m+쯚\Í `Ž9!N† عùÛGÖÁÇå£Ñ*V Î"ª +¿k¡ˆA\ø…9v×eƒ¾:¨Ã(уù¡Šƒ¤úoèÅ@÷°\í¯Œÿ¼Ÿ à 4ä%Æöá×1•‘S?G“=ª(_Û¦¥ûHXú¹ gfy¹ÓU«ÐCh²5” ½¾®ÿ´‘æ–Ü ) +° V¸!ý¡^•Eå +ºÜÓY½"aÎ}ƒpØñ©³œtÎà‡ªY†gc!J§6þvwÇÛ(F²÷„ÕUžØb^åæ‹ƒ˜éËÂ;ÎU»Ä »_;.Ÿ½èߟ'šýt¢†óÜí;u<4þm]¾!deB¤»|éèª?_šÛâ;HF>3™¾ ŸDgüÍqP fF«0ò ™ˆAútU5ôf ¤çµÏî¢h!}É?‹YÎ\ ÷„ð½Í9õKÞ¶%s±GŽ]»î·Lwâß瀭IH'ª¿ÒYaÿ²¯8(öÈEÃbè8'ýíKŒ˜%ÛP‹QT²Ú.CÀ…Ó¹ÅÐ^ßËŒïNm?`8‡ÄÛÔ;ù~m¡uI=¥¼9³ã­`†%™ƒ+’_›ˆw0 WQ*FoD$ÛGâcdöù¯p·J´çúkÌsŸ± +oyçþ® +TdXÊ‚ȼ1C“×¼œÎÅ,äRXù¢ÙGðE¸]²¿T4çàÛYl±‰{ºÃË>D656u`•áÏ¿¡Í (ÄplVаë«})è’—ò£Z”Ë3‚eõœïý¸ÕnA@JSÿZÇÎÙò±)šÑµçÞKE7ʲ¸¡p€dµV¡Ib0RÎ#-¸CP¢³B ‚ „L¿ýš¡ŸCŒWfèªPoCv¾–ý…gÇð£ìðêâèü}ó…$_Éð +_ð{½¬i@7aæù±*°(~2áB–w«Û9qQ|*ãµ]–È×±üÓÍê逓—¹{‘„ 2λKº +AõÞqæÕ/×ü,wÎðr“®jàHñÔ +½¯÷¸ŽŒä3¡Ç}àót¶ªøIM6aý¿ +~ƒÏ…Ï+ã]ÈàðùjÒÚgü\ÌÝ“}.Œ1I4:ßšõ] 1‹TRD®{Ϥiø}OöÏ#Ö.Öd×Ùî«ÉIo5ré÷+@éî>ÌQÕt$/Þ#2#í`0«Óóg²o¬1ºªùW3Qv^rOɦ=²Ç$†n8›$Ý$Õ°;€BÇӾ“* ŠƒÎø2S†a+€Ì Üöä>,øWh´ý§R45”°«]ñ§y/¹+пEJ9ÎÎ `£y¹‹,‹äiå]»@š*R™¢Žèvµää ;wùt“ Á”îÐ])‹"Äíáëô®is–Táë}I¼„z¬ËºqøçýVýãË(ŠTø7'>Øi}Í6N¶Ó9ñ”¥ïð¦n^µµ3Šž9•Øg Æ’žµý'cW- ØJÍÊNýúPW3‡&Vä•=íj0M·ƒJ†r}çgSNs×6Ûsò“œî´8רÜÅö gÀGðñ $;tî4~ì Rì­ß†š§[ö?­+ý~U»'SÈ—˜ïg½°‹±ÙZHIAåý¸ à¬î™ nyë *÷.´Âf!¿#úѶþ +Ùawã®oñOw;‘?…XWß„JކBQ\úç!ú´­=øfóÕ"@¤CÀáaÝíîŽñc¯d«þÆ—Œv(èÒS:9Ý_DÜÆé–¿¤{+X!0N·>çˆw©Ödhðšcç~§‹±$÷»1߯àñ h•=«œyØÚiù‡ý#‚U|­n‚¿j§ä3ñ÷~—@æVþE DŠy÷ðu,ÆͶz̹íBò.–v,þÀíW7sçLú®XŒîn¾«oóUÕ;îÃÎEä#.âE:ÑÝrËЈ2)ª ‹¾>*õ£æ§j2óΦ(#^Ù=Ÿzƒ.²u„FŒWÎåÍ ýkï£=7°ç*í_,QfIŒQ¡¡Ž;sî ééÕ¿þ`Þ2§ +endstream +endobj +341 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F198 89 0 R /F201 90 0 R /F204 91 0 R /F212 94 0 R /F470 595 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +342 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1109/EMSOFT60242.2024.00006) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 275.333 697.182 295.041 706.622 ] /Subtype /Link /Type /Annot >> +endobj +343 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1109/EMSOFT60242.2024.00006) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 687.227 213.928 696.572 ] /Subtype /Link /Type /Annot >> +endobj +344 0 obj +<< /A << /S /URI /Type /Action /URI (https://learn.microsoft.com/en-us/azure/search/vector-search-index-size?utm_source=chatgpt.com&tabs=portal-vector-quota) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 275.43 408.265 295.041 417.777 ] /Subtype /Link /Type /Annot >> +endobj +345 0 obj +<< /A << /S /URI /Type /Action /URI (https://learn.microsoft.com/en-us/azure/search/vector-search-index-size?utm_source=chatgpt.com&tabs=portal-vector-quota) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 399.004 295.041 407.655 ] /Subtype /Link /Type /Annot >> +endobj +346 0 obj +<< /A << /S /URI /Type /Action /URI (https://learn.microsoft.com/en-us/azure/search/vector-search-index-size?utm_source=chatgpt.com&tabs=portal-vector-quota) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 388.348 259.19 397.693 ] /Subtype /Link /Type /Annot >> +endobj +347 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.nvidia.com/en-us/data-center/products/a10-gpu/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 224.187 308.686 295.041 318.151 ] /Subtype /Link /Type /Annot >> +endobj +348 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.nvidia.com/en-us/data-center/products/a10-gpu/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 298.684 207.612 308.041 ] /Subtype /Link /Type /Annot >> +endobj +349 0 obj +<< /A << /S /URI /Type /Action /URI (https://images.nvidia.com/aem-dam/Solutions/geforce/blackwell/nvidia-rtx-blackwell-gpu-architecture.pdf) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 278.759 295.041 288.104 ] /Subtype /Link /Type /Annot >> +endobj +350 0 obj +<< /A << /S /URI /Type /Action /URI (https://images.nvidia.com/aem-dam/Solutions/geforce/blackwell/nvidia-rtx-blackwell-gpu-architecture.pdf) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 268.796 201.877 278.153 ] /Subtype /Link /Type /Annot >> +endobj +351 0 obj +<< /A << /S /URI /Type /Action /URI (https://objectbox.io/on-device-vector-databases-and-edge-ai/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 254.426 258.841 295.041 268.338 ] /Subtype /Link /Type /Annot >> +endobj +352 0 obj +<< /A << /S /URI /Type /Action /URI (https://objectbox.io/on-device-vector-databases-and-edge-ai/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 248.871 242.027 258.228 ] /Subtype /Link /Type /Annot >> +endobj +353 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1109/BigData59044.2023.10386517) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 199.058 241.561 208.402 ] /Subtype /Link /Type /Annot >> +endobj +354 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.pinecone.io/learn/series/faiss/hnsw/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 179.172 252.969 188.489 ] /Subtype /Link /Type /Annot >> +endobj +355 0 obj +<< /A << /S /URI /Type /Action /URI (https://snap-research.github.io/efficient-nn-tutorial/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 539.045 687.235 558.996 696.584 ] /Subtype /Link /Type /Annot >> +endobj +356 0 obj +<< /A << /S /URI /Type /Action /URI (https://snap-research.github.io/efficient-nn-tutorial/) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 677.264 488.942 686.8 ] /Subtype /Link /Type /Annot >> +endobj +357 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index/28074dc0ddc733f84b06fa4d99b3f6e2ef65613d#if-below-1m-vectors-ivfx) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 537.954 617.528 558.996 626.993 ] /Subtype /Link /Type /Annot >> +endobj +358 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index/28074dc0ddc733f84b06fa4d99b3f6e2ef65613d#if-below-1m-vectors-ivfx) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 607.526 558.996 616.871 ] /Subtype /Link /Type /Annot >> +endobj +359 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index/28074dc0ddc733f84b06fa4d99b3f6e2ef65613d#if-below-1m-vectors-ivfx) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 598.257 558.996 606.908 ] /Subtype /Link /Type /Annot >> +endobj +360 0 obj +<< /A << /S /URI /Type /Action /URI (https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index/28074dc0ddc733f84b06fa4d99b3f6e2ef65613d#if-below-1m-vectors-ivfx) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 588.294 374.204 596.957 ] /Subtype /Link /Type /Annot >> +endobj +361 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/2412.11854) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 353.9 358.46 391.001 367.964 ] /Subtype /Link /Type /Annot >> +endobj +362 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/2412.11854) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 419.016 358.46 524.413 367.964 ] /Subtype /Link /Type /Annot >> +endobj +363 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/2404.06004) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 521.377 278.751 559.18 288.263 ] /Subtype /Link /Type /Annot >> +endobj +364 0 obj +<< /A << /S /URI /Type /Action /URI (https://arxiv.org/abs/2404.06004) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 268.796 439.428 278.141 ] /Subtype /Link /Type /Annot >> +endobj +365 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.usenix.org/conference/fast25/presentation/tian-bing) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 466.001 209.02 558.996 218.377 ] /Subtype /Link /Type /Annot >> +endobj +366 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.usenix.org/conference/fast25/presentation/tian-bing) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 199.058 458.815 208.402 ] /Subtype /Link /Type /Annot >> +endobj +367 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.optimum.com/articles/mobile/choosing-phone-storage-amount-needs-guide) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 179.132 558.996 188.477 ] /Subtype /Link /Type /Annot >> +endobj +368 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.optimum.com/articles/mobile/choosing-phone-storage-amount-needs-guide) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 169.17 432.234 178.515 ] /Subtype /Link /Type /Annot >> +endobj +369 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.optimum.com/articles/mobile/choosing-phone-storage-amount-needs-guide) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 149.244 558.996 158.589 ] /Subtype /Link /Type /Annot >> +endobj +370 0 obj +<< /A << /S /URI /Type /Action /URI (https://www.optimum.com/articles/mobile/choosing-phone-storage-amount-needs-guide) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 139.282 432.234 148.639 ] /Subtype /Link /Type /Annot >> +endobj +371 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.1145/3639269.3652200) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 429.97 79.506 558.996 88.938 ] /Subtype /Link /Type /Annot >> +endobj +372 0 obj +<< /Filter /FlateDecode /Length 8136 >> +stream +xÚí<ÛnÛH–ïýÁ.0ME²x508vâ8§3V:}™,Ê2-U›"Õ"Çùú=·¢HJ²3é݇VT±n<¬:uî‡Þ³Å3ïÙùwžü¿øðÝôUàùÏ7KàïÃí³Äw½$€?ÏõTòìÃͳ8?”ÕQâÜùÑ$qnðD¾s¾ÑëeeϹ­6\ù>ßÔU© ó…;sí[½áQËE«í—õÊ‹Ú劋òè_ÞP~Ð*ðR7õS€™à ¼ ÄnÏ<7K#¨õžùàžDÏ>¬ ãEÙä›R7A„ÎiUÞæ›£ÔÉËyÎUUÉÿ/W×Gßsò›í „άºmî5 ãŠz‘÷òröã«PòæÁBöaƒnè€sy&ÿŸ¼¸‹S|çè_ÓsÿÙݳáý°YaâzF»*ȆÏX6ͺ>¦µòí:y°”ɳ8ó\@¢nÓéMeÜj³˜úXëeS~·:pq¹]~1éhüâ?¦'L27‹ïØ?”ú×`ð3Ø­`¸sq +Ï3†è£™7ŒS‘ó6_­MSß=E)¯Z (àPTiæ|Xæ\gÊO¸A›f»s‘³j‹ÆLL Û™8Ÿ]®Üe=‚0uƒ Âô÷ŸvNOàǘrQó¬Õ-/4¬U2z5Xt?Mxš†à Sz,%ÎÅË—/¹nŒžÐHèIM«u øÌµMml‹.o¸ò½ná¹öŠà›W‹Òà#A”ÆÏâ+.Dé#@ÿÓﯩ'AâS-ÖðéýÞá{”¹AšÙ#êry1(õ ‡»/£ÉØÔÌyε?ÍN¤¤¼8Ãs¡<Àê!âL’ÈM¿ ½‹^áÓèÁ»Æ‚ð—íÐ!!NFúë‘Jö÷¶´õ¥4ü¶Ìï´áÚß–0ð9—?]BÉNµæÓ>´ƒ©}çM[~†Î?Æ …Z&XvÞV¸ 0PÅ@“J$¤*V0mÞ«?]æeaJnºÌ $¬‡MŽÂ Þ%B¼àöß–ís.¦`¿Y…¯U¯uéróŽ®f#•ç*3Œ3MG Þ_Cׇ:§[èÏ' êÍjÍ|"qˆá÷)v“¤n!"ÒyràJQ ¸ß‡£ÀsàHÕzŽd¾f^ÈïïÝb»!±soÉ¥—唹¼'àË>,ï¬B`C@Tðœ§JùOŸá)?L"$ë;  O„Y¡Øs +8ƒ¥A˜÷ ;ìhì…ÿÅU ô{*HýC×KýÅUû(nà%n%#ÌIž@øp!¸oÌj…L,‹­X¥+f1³¨¸â]µhs³ÑÒΧ +'åÍæåEØ3®ù¥ o¤öd(ÎÁ“D09É¢\$’æ°rvoön!pÈ$´Ò'’ +à±+áÎîæõ&"Šr[yÌw/@ª–ÍaÒá9§çÉ#øÎ6…±›Šb¥BÂÍ^XYðnZÖ¬`¾}ì2ÝÙ¼ôéÍv‰¦wfÁžÂ^ðߥ.H4Ý2õ†ÂÙÊ4—Á[mû'²aõ²-‰ma ¼)©IÎKOBfƒÓá¶W×-ð­”ØdÈéÒëŽsXæ§BoÀüø~Àü°ªÇüð¶­IÀâ¤0i3sâm8ƒþdú˜‚åÞC¨BàCi$òh½ÒEÁ +Î=B·)D³Zþ¿k{Sú +èöxN«DŒŽ{8Wä¬;]&Š„ÙšÚÞ ûZix­2߇ô!°¦4¤Ò’…YRµMP_Y, ‘äCþF–vŒÌsRî‚(U;ÚI]ŠFâ]ö$›½ÞÍ”H±—zq£ ’ïBåœU [S9€–²ZÂ~ÆÄY°æ7Ô&Sç÷3Ð žó¸óöë^ðò¬p-¥í­þ¼Òvþe[XÚ¿ƒ !ÌR›µ.ˆ¶%ö<”|sÞJík½ö…åØùHq¨¥í83«¥‚ùœ»ð>âlfÛ¥%±J¬ŽLÂ8½vÓH<¤aÄL• ,4èuå13µ ˆjW›v5”ÉßõŸ›u‘‹Æ×©ï7H æ"ô3n¾Ýꃯ¶WT ßõÁUØÄÕê€ «”ë«`dªtF;G´sÀºÁ‘½§4hŒ~$’祙àuu‹¸àƒþƒÂ’Ëe@õèIB +*kì0íÇ£ÄçÝsLfm]|W“%K¼Ì¾B)îUE¨m¡· , 0¿ú-³SUX +€ñíÖËžñ2 âá¬}ãeý2´÷3Á÷)JQr-èšÓUÓuC×’®$o9+ºÉ}mÞëCrœS÷Ê€ƒ ˆÓ½±ó^ëª÷Üœ09šd> +ÝDÓ(_èÚvôÐi¯ÿô@¹ìõüÔË­ bµéQX‰ù²ëäá"t‹sÓðYúì9g*Š£”µ¸|Éÿv¤à¥šÕÕIróü¯ó¥nëÆW«¿4úºþëºÚ4º€g‚òB*",Þ*ç¶-ôëLË A0<ŠþîQÌFLB¥²o@úÉÅjð9©Þ,´¢Ë¶¬¾ˆÍî’ sU[GçUùOuA/Q?çÚ߀/—†ËgFÛꎲ]ðE¬°êD®ßPðX#D)Ÿñh|l-³’­œŒ&pþ_e ½}È‘ L'_c¹Í2Ð(Ç[»Ç­åÏ ð´HÉæ¢´:/Î.NȲ;¥{ã’e'ê7rÛ‰ï±c(€SWâý9­¬/z¿)9s~Â¥ÿ6N܇:QÄo6³âéôžñðžŽ/Aæ¦^6—Ÿqžµ?*µ;"I÷Gç>zÒ‹I|9?^ÿ.о¨D6‡Sü¶¹" ˜¡àù/ÙJÍ'Çrú—rÒàŠOøÖú†'$ì2ónÐ7£AG¢˜Ñè €úûNÓàu—/ÇS¼ÒíäÎõïx=$<`˜CbMü µF(´FdHŒp|„ëáÎD(–Æ\7Å •J¼ Ä(ÊÄHþ"”„©wDª®mÿtpóö1H:Ãuפ )ÕxÉ»I¸… ¸ÙVB'8‘T±è=]w0=AÂúp£üááJ€6>¦iHÒOö)˜(ÉD8ïôÊ>>÷DèŸö£ ¤Ê·U´22uzϲП7F—Ÿ‰ñCµ¸}k1†ª×U¹¸ÍYñôe—ûˆ{#HcçíåäÌÔw'ïÞsÛÛJìæ0èIÎ~£eÚ‹]u6\t]¾"SHÕXѽt%ÿã£&ïôÖÝÏHV}(A|šs/ +uš¼èÉÑÐ äÖ Q¸ {k¨æ€\; wr3/êvK ãA’&âýBDç…YpAüzPB‰ªÏȹ?r£žýÈ ‡€¹3ŽDà£Ì C—ðÄ÷TG~ò'TƧ½?>ðwë6|/Þ•yU +£Jn!ÚaÒÔ‰*9hs=æû]5 æx×™âyŒÛ¡ågœ­íõŸ&èö•R”ƒ“ŽžÃCšÞÈzH$ÊÇtö®pAU¾—2$·#­Ãõ kN×9MVíÔ»½þU7}„V›®¦ë¦7–A¨»>‘´šÞ¨º×¸cFÄ<Œ¤O½ÓgÙ›¿¦ž÷_O­Jg‰®(¼"ìt™ömþ!étò>íýòc˜=Ùý Pì_P²LÎË0öEÞ4\ûÖpÕëª}Î5ð +Àá5ßœ2õ´"ÕÍ3¿+€²Ëlo@N#'6¾§©ACx~@@™Û—ceæK6ÚÇ©øêÐõžsÅ{ Lâ›¶0dfƒò™ÙèÒô´4\â„y!-Ì|âÌ™éÕ‘ï´dF†Û«Ž‹ŒØˆl±l) k÷Vq:1 dÑó5¹]ôñÀ:´Øè›V7ù¤ © %s²Ç(gÁ«¸(ò‰„¸LÒÎÄýÇ_´DJ±SµœƒJ¿¹Û«£û* s´¸îuµ»qÒ º¯Ì¦nl Þ(öÕsl¸T?,×Û†åŠeˆÃž[w¬Sy®Ê⑌ñ´ÌàÕ¬ä£m ÚÞéëZ“a.œ‹|Á oóºjÈ(7—°bmÍ]fsv‹Ý2æ ½(ôz±Ñx0Ñk-N´ÀÚé õTÃbå‡âô|àKD ~ '`Ya\ÚÖ_å‹¿ŠcrÌú´€NÇÜÌv“$vŠjÁ50V±$‰>!9“:‰=j–¹.Èø’$äͯ¹KmùK竃ë®òE–Ì9¾G¸ ä~ÔéOã{P‘d8Ïã®%%(­¬™(pÂ-Gj7 +ÑÛD7³‹ó‹+4ÄÔ=§ "9‡¯ò3­«p–Ûh¬¢Z¯rk²Fª‹"0;S³14݇ÿH½ãxìAŠ<’€;(w¯pÒá~r6Ð÷8µ„=ÚçS²ª¹<ó‚d˜Ïa)lÄ#ÂÀÄÄœ„d_hø@bvñ ï8"M:þTvrºlíïs lUyd#dÃA|`¤úÁLÁº~ðùëvµ^²ŠÀÁè¸ÙÒ¸0'" SÂ' é]ÞR$x—7vpWsÍ+ÂÀßœXiwÒHƒ@÷³¼6 Ùä¦bÏ®x%‘ö]ë3>Ë×.Ûþ‰‚¾†¶{«LEßì ë@ǘ+/ô‡ ï åW*t“qäütZ—zÍv¶Ãçh.q°Jí5&×TÓ‰¡5gÛJYòFÞâ Y(1< 2€(6²™Dûü4ñx·ú‘òoŒÐ‹ÝƦþn„YnC±{ž–³ÊÆ ¿5[®íIˆóëËÉ‘JQ.¡-ï¡1`S@:%3Ÿ¿AÈ<Ûø:{óÐÝïïºû=gD¡*1¯/1&¥Œâ£I[1•¯òU§ÌFYWx[x#0Âyï~â½£QwïÚ™?Hâ•£#ñBʳNèPòÖª;çåÝÅûÏõ}à=¢œweŠøñ`"W i7"ä") u-)e8¢²rýˆþ‹rî>·Ì¯³2y 6ÞI›­= +ÃÝœ“ PÑB$È4‹¤ÚWæIæã¯0FEÁaý¦ƒ½ôÿJÏs9e ,.ˆäø¯úbË-¢¸‡i朷†Ä\à31èrºä¹È—*u‚ú‹.‘èOêä‘J+†/‚6ÖµqŸtr(¯éZSÍñNTGÿû¹Óé°Lí¡@¦z,Ü’׊u»MNFÜ-Eòé­6TYOïÍÍ3…%Â-õ¯™c4dòåò|ÉsÖ9ßS”µsøÐö³pv…Š8›R¡œÓõ3ÕL©Ð5¥«Gõ •CºÞPͼkµ5<×sEõŠÊ·ÝœÌsÝ›?îõѽ>Ý~~”íÎý³.·(rÀ‘Ú#$#´¤ˆžÏlû¤^=h+)œér•›w"îñÓåÆH<Ç;6ùr´öV‚ðq ±óžjÅ6°ŒsO;{9 /Kb`åßPL=fIšü¸”µÝ‡ê}Y³¡sEÚѹ$©Z f#C6æ“äÇ„èªGZߊ˜z ,ꉗ@¥úÀn=ëc.1ÈŸ8äaPSô‚Xð°Ç^ð•ö8ÚEáÓÜ`BA[ÜTkŠ…ÎÐÐb|¢Þ‹½‰ï?%$š´¶½ZiÊ«£ +Ý®ª²éšÄ<³i¶A¶ÄG µéù—Ø/w”+ +o¡”sT€!G qÖÒBgIoÚ¡‡“ÎS4dãÀ{ò&xèñN,s6½£–NoòÒè]™.t³QNCSç#PÂÒª‰¨2À¢4uûEßÉZc‡Šcç­F9ô¼• ùl*”ñèî¯ó¦K‘¥ÊyaÖwØA¹~¾Iš\Â$7qàql&_±Àε䣞ô’_€ƒj³©…Ù'‡QL(7x²MQÁIx&jÆ{“áî•Üú\:M‡) r üý)‚nªÆôqÙ"Ö ×Ï&à}ÛÀ–ÉJÌXä_é»e»nžK%F-ø¥ÞšVj»„â™^ö9ÇÎK¶ƒ†ÉÖ]‘»úŠ‚†ÏéƒØÿ1o5ŸXAªÛT€vKð›–øÖ!X3Ž™çOf Ì­’xød»¡Á8çÒ  +|Të¿bC)ç|îÙÐø‘¨ÅnáúY[¾äã^vìµ$ßw„Û¶Î×kÑî°æG ŸŒ.mZ19€¦,m>Å™Íï +6ÓlÓ±™ø°Ž»ýTƒIÈß [@ÒŸ2~˜ù½æ»³ªýÒÙ!³L|Ô“(L·U] GpfŒ³:-Y½PGô#ËvýmYê\œÉ@Äœ=Ô/s,p²'~ÑC‹SO‹§û¡U³GãGxg£$‹‡Þ½Cõ]ß “ì«ð°ú/x}5&‡Íòݶö£þ¯ZÖ’Ø™az¤$9& :þhI™âæ×]$ÜœÜé‘"é§”/Ã8±ØY‡gµ-ÌŠ«Îò¦Á„5™kƘ‹ÒÕNþqs?àRRù•ó¶½™é7˜³ÈW(Œ=ˆ’/˜¯,Tä|²6P›0 Õ?ó“Ø¥Ô;çPL™'’ /F¸­=ù R4ˆ}Äì¦NÑsϤ½Üv¾·Á™ì=€ +x›±šêŽÏnÊ|KÒ‹{Älù)ÎQ ?mÝÍ']Îsy¶)÷Šƒðü­g­}hç‘U{Ü‚ëŒa"Qª¤Ÿ¦ÅX(Xæ1eu@„ËÈ.ôÞŽrµ¢ôiysßé! N¿Ââe»Ô«•¾á»ŸPd+Þþ`îQ¾¢~šíîðrÎ9Ä3Œ»õ®ôãÙg-fuE¡HoXøé™>–ÎÕk—Ë‚ >ЋaqBŠ Äl#ui#°ª·CH˜ø âÖ%ý&Ÿc¬f²Žä"©ájp +T̹Fíµ‹ìØïœ2™Cð¾óFòt}×EäFªUý*“ ºãQ +ðý4 +‡˜ð©ù€ªµ{rõ¯o²¥¡¨b„o6êEo>O@/ƾèëzzŠÃq.˜>,eÄ'wKÕkl¢dˆéùƒÞè•$Óµ×PÖåƒQ|jh™þ´1Vž¼ªºôunò;Þ>c{€0‚9îÀbw/þ‡ ö®ïõêÁZa3ûµ8=]Æ! hµíeBÍ8t¹;gM> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +374 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.14778/3476249.3476258) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 177.094 677.264 295.041 686.769 ] /Subtype /Link /Type /Annot >> +endobj +375 0 obj +<< /A << /S /URI /Type /Action /URI (https://doi.org/10.14778/3476249.3476258) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 70.076 669.135 86.893 676.069 ] /Subtype /Link /Type /Annot >> +endobj +376 0 obj +<< /A << /S /URI /Type /Action /URI (https://openreview.net/forum?id=HJlXC3EtwB) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 334.031 617.528 488.38 626.833 ] /Subtype /Link /Type /Annot >> +endobj +377 0 obj +<< /A << /S /URI /Type /Action /URI (https://eprint.iacr.org/2024/1255) >> /Border [ 0 0 0 ] /C [ 0 1 1 ] /H /I /Rect [ 444.791 547.75 551.272 557.107 ] /Subtype /Link /Type /Annot >> +endobj +378 0 obj +<< /Filter /FlateDecode /Length 3068 >> +stream +xÚY[sÛ¶~ϯðÓh&¢  HÏœé8vâKìÔ±ÜÜš>À-¡¡H•—$ίï R$E%ž¾ˆ¸c|»ûíÊ?XøgÏüÁ÷ÅݳÃWO¤KøÜ=~ ©ïùLÜ-þ$†â¯É_w—íœêù”AÑ?€yP‘ÁvÆfÜ$Ùr2 xHÞODLT¶|ŽÕ“U’™’v|Ð*Pͬ+=o†É˜$Ùß:ÁžO«í•-pÐ[ÝLØ` U¾Y%6œâçZeØkpí‘1ÏP<Ï«ÖÇÃûõîº6hyõvÄäØXsaŒ’ý,TŒ£Â +š`ÓŠ$¨(-Ôžc£5³›TéLݧ ¶­ë´ÒÓU¾Áê?5Pg_@³g:†0ÎKÄaöxc€6¡5A¾Æ uák£4òcpç€ÞQƒæ‹Ã>Hi4Rʸ'„øäø×0Ç2Ç4ÏÁFýXi0`»,. N‹‚r/±vâÅ+4{¦ø¶vmˆ(¼°v<*]k›œ™âqdœ3˜ÿó¸)àáBé|ò­uió| ~baðÆàge•¬Ë#tþÇØ8NŽ¡—‹è f Ì-ÜkO÷® ßUþÄ, p|’¬âÊ9Ýc•àŸh•ü¸ÿÜÒ<÷ˆîƒ×ܾ÷“´Do0(ñc0/ ¤ö!¡òš5–á¡óF³ :Óÿ¸—7}õ¶Ë…¦ù²ÿÐŽÑ–¬A Ž#,€3Xžqvš§éÑ>SÎ@F/?ûŒÏ5ò˜ù;Ôe® Í™ÞÛ0ÄÑ,CýÀÜZF6Û`";È ã®LuëX3aF߀ÓñÉ“€#¤#* xbÖ—2ðSQàp´Ç(@‰{ 3글%HÆ#¡!·\;D¢ ݵ ~sÆìÇÈçjÝ„xÈ'µV™vQïeÞÉÞ4ôÜâçnø¤Ð›*ŸcËeO%°|ªÒ*o‚æWà7n²ZÀ›•_´›cm<|$IéqÉû¶$ɇÒ̆‡ÆHdÎcl™/l¦{”“ǃÛäË^{ßÙ.‡qÏWy-ì‚%®è¼gsM–@-J\[ºgm!°¢Abà3Ä£B .¡*ÿgv q'‹Yƒ;*Ÿã46åXpHdmà ®ŸÛ¸—CÈ>°^Jópà­d°ß|µGéF½3uÝ'H?™I±Êë…FlµI—k=_©$ÅÊYà­~ÀðÛ¶6€l£6c389;Âþ—€|n¬d³`(V7Žî^ätÂ$±‹aüØ*Ðmè‡uçÍL…’oÚhÐüG „äæzÞP!%´”Þ“ž¿uÿš’€ƒ‚ð>f1ßKI|úEi  +ë3gÉöS’Vàn0~­³¿µRaÚäÛV*kêZM]ÊËÒm‘ú»Î>ÝdÞld‡¨p*bˆŠ €Ít3ªÊ‡¬„Ã’1ôïc0~ÖxÈ&Ë'%Dãµ5‰ÐvÓɆéêmæ¬Ä±Ha¥q?kª¢ÔIˆÙãyŽ|†¡Ä\ôå³Ñý´9 +ݹén\ÞIè‡Á>4å.#º½)S»MHe“)±Ý@ãâäêÖ@cIyež yÃC“}Ÿ¯ +.Y¼Qíê?eÑv£B7)´|“dö<_­ó²¤:|°t /êõozñÿóËôà {Y}{уòΨŠèä#êÆW)‚zt#dM®€Ÿ³mÚYprcƒ9cÕ”u¸PBmÈš±I;öõ„ +—{ÃUZR Tà ù wòi­½x=Ų$ß`ìõ.nôšÐApòņâßR”lé¶YèrnCô~ÔÚÊØöŒ€ÑÞÿ?&¤ÆÒZgÎËíÄ%D—ÃÔZ3›ÖöýÝèDxá¶Å¯±ÝÍÖ¡ÔÙ°$ĘSañFUIꚯ¡¬ÝXµ;ª\¢ +·*­çv¦±)`âÍ2ùÆ"'lÔ=î%ì&¥ =iC˜»›ÝTMbÚg påÊømE[“ŽèâMé\/]ɺöù¼.Ôü±e(€³zhVÏÓ|ù8þÐÝH>¹ÙºõcÜÔ…ÂVûp}6ÏbÙ“!kpöC +xûoQPþ„-1hÌ)ò O+¸ °Tö߉v§'þÛH/bl¦ð `êÆìÎÀw‡(ádJuŠÌÀ¶¶VÏTmvã±6‰}˜gƒÚYò`Ðf'ÕÝ9°\‚¥³f‡ST×ÜÑG“úb]Jò^–àƒîæ°À^Ǥ¶›YÊØ1Ëù7шg-qíÚî´rtònÂÛÿ-¡úI;a•”ô2e.Ÿ6Œµ€ëqF{ây;‡~Ü·?ªaÔ joT–CôZÓu4Jª¢¨Ÿ—¸›„%Mß쿆Ùäf¾©ôÚþg •Ôæ°-UKÛ,µéXo³Ô¦³´&Ä–Ù­¬¡¯—«M]ý*ý#˜íË·Ü·ˆëæöóëÈL 9Ý3ïiù°º¼Ù@+Fþ» |(d7ñÉdŒ ­:¾À8ê•IŒÙ åí6B6BŠÈ9þ¿`®këˆaÀ:Yç[ßb¸bó×N±J”‹xµc†ÕãFÏUšº¡p?æ™óqÿÅÁÇFÂÑÙE=ßFP>¹lþ1²ô}OJ¬§úK‚¥ó7³÷XÊ™³g$ï^ÙÈñ7àu‘ßXݤ,»«_«ÇÖ2 +o„ê…ðj,²6ŠÈ:åAèqó6DîÛ·—wÏþŒøìÿ +endstream +endobj +379 0 obj +<< /ColorSpace 87 0 R /ExtGState 88 0 R /Font << /F201 90 0 R /F212 94 0 R /F470 595 0 R /F551 596 0 R >> /Pattern 97 0 R /ProcSet [ /PDF /Text ] >> +endobj +380 0 obj +<< /D [ 47 0 R /XYZ 65.955 704.471 null ] >> +endobj +381 0 obj +<< /D [ 47 0 R /XYZ 65.955 584.919 null ] >> +endobj +382 0 obj +<< /D [ 47 0 R /XYZ 65.955 572.964 null ] >> +endobj +383 0 obj +<< /D [ 47 0 R /XYZ 65.955 559.679 null ] >> +endobj +384 0 obj +<< /D [ 47 0 R /XYZ 65.955 547.724 null ] >> +endobj +385 0 obj +<< /D [ 47 0 R /XYZ 65.955 533.417 null ] >> +endobj +386 0 obj +<< /D [ 49 0 R /XYZ 65.955 510.942 null ] >> +endobj +387 0 obj +<< /D [ 49 0 R /XYZ 65.955 498.986 null ] >> +endobj +388 0 obj +<< /D [ 49 0 R /XYZ 65.955 487.031 null ] >> +endobj +389 0 obj +<< /D [ 49 0 R /XYZ 65.955 475.076 null ] >> +endobj +390 0 obj +<< /D [ 49 0 R /XYZ 65.955 463.121 null ] >> +endobj +391 0 obj +<< /D [ 47 0 R /XYZ 65.955 680.56 null ] >> +endobj +392 0 obj +<< /D [ 49 0 R /XYZ 65.955 448.839 null ] >> +endobj +393 0 obj +<< /D [ 47 0 R /XYZ 65.955 668.605 null ] >> +endobj +394 0 obj +<< /D [ 47 0 R /XYZ 65.955 656.65 null ] >> +endobj +395 0 obj +<< /D [ 47 0 R /XYZ 65.955 644.695 null ] >> +endobj +396 0 obj +<< /D [ 47 0 R /XYZ 65.955 632.74 null ] >> +endobj +397 0 obj +<< /D [ 47 0 R /XYZ 65.955 620.785 null ] >> +endobj +398 0 obj +<< /D [ 47 0 R /XYZ 65.955 608.829 null ] >> +endobj +399 0 obj +<< /D [ 47 0 R /XYZ 65.955 596.874 null ] >> +endobj +400 0 obj +<< /D [ 9 0 R /XYZ 54 638.463 null ] >> +endobj +401 0 obj +<< /D [ 9 0 R /XYZ 54.498 96.339 null ] >> +endobj +402 0 obj +<< /D [ 50 0 R /XYZ 321.326 126.771 null ] >> +endobj +403 0 obj +<< /D [ 50 0 R /XYZ 321.326 117.078 null ] >> +endobj +404 0 obj +<< /D [ 51 0 R /XYZ 54 372.096 null ] >> +endobj +405 0 obj +<< /D [ 51 0 R /XYZ 54 334.048 null ] >> +endobj +406 0 obj +<< /D [ 51 0 R /XYZ 54 286.512 null ] >> +endobj +407 0 obj +<< /D [ 47 0 R /XYZ 54 725.978 null ] >> +endobj +408 0 obj +<< /D [ 49 0 R /XYZ 54 725.978 null ] >> +endobj +409 0 obj +<< /D [ 50 0 R /XYZ 54 725.978 null ] >> +endobj +410 0 obj +<< /D [ 58 0 R /XYZ 54 241.793 null ] >> +endobj +411 0 obj +<< /D [ 58 0 R /XYZ 54 271.681 null ] >> +endobj +412 0 obj +<< /D [ 58 0 R /XYZ 317.955 201.943 null ] >> +endobj +413 0 obj +<< /D [ 59 0 R /XYZ 54 630.336 null ] >> +endobj +414 0 obj +<< /D [ 57 0 R /XYZ 54 245.778 null ] >> +endobj +415 0 obj +<< /D [ 57 0 R /XYZ 57.706 574.545 null ] >> +endobj +416 0 obj +<< /D [ 57 0 R /XYZ 57.706 534.695 null ] >> +endobj +417 0 obj +<< /D [ 58 0 R /XYZ 54 421.121 null ] >> +endobj +418 0 obj +<< /D [ 57 0 R /XYZ 57.706 464.956 null ] >> +endobj +419 0 obj +<< /D [ 57 0 R /XYZ 57.706 435.068 null ] >> +endobj +420 0 obj +<< /D [ 57 0 R /XYZ 57.706 415.143 null ] >> +endobj +421 0 obj +<< /D [ 57 0 R /XYZ 57.706 335.442 null ] >> +endobj +422 0 obj +<< /D [ 57 0 R /XYZ 54 176.04 null ] >> +endobj +423 0 obj +<< /D [ 57 0 R /XYZ 54 146.152 null ] >> +endobj +424 0 obj +<< /D [ 58 0 R /XYZ 317.955 361.345 null ] >> +endobj +425 0 obj +<< /D [ 57 0 R /XYZ 317.955 680.149 null ] >> +endobj +426 0 obj +<< /D [ 57 0 R /XYZ 54 96.339 null ] >> +endobj +427 0 obj +<< /D [ 57 0 R /XYZ 317.955 640.299 null ] >> +endobj +428 0 obj +<< /D [ 57 0 R /XYZ 317.955 720 null ] >> +endobj +429 0 obj +<< /D [ 58 0 R /XYZ 317.955 630.336 null ] >> +endobj +430 0 obj +<< /D [ 58 0 R /XYZ 317.955 271.681 null ] >> +endobj +431 0 obj +<< /D [ 57 0 R /XYZ 57.706 484.882 null ] >> +endobj +432 0 obj +<< /D [ 57 0 R /XYZ 317.955 480.897 null ] >> +endobj +433 0 obj +<< /D [ 57 0 R /XYZ 317.955 520.747 null ] >> +endobj +434 0 obj +<< /D [ 58 0 R /XYZ 54 391.233 null ] >> +endobj +435 0 obj +<< /D [ 57 0 R /XYZ 317.955 441.046 null ] >> +endobj +436 0 obj +<< /D [ 58 0 R /XYZ 317.955 680.149 null ] >> +endobj +437 0 obj +<< /D [ 58 0 R /XYZ 54 520.747 null ] >> +endobj +438 0 obj +<< /D [ 58 0 R /XYZ 54 690.112 null ] >> +endobj +439 0 obj +<< /D [ 57 0 R /XYZ 317.955 411.158 null ] >> +endobj +440 0 obj +<< /D [ 57 0 R /XYZ 317.955 321.494 null ] >> +endobj +441 0 obj +<< /D [ 57 0 R /XYZ 317.955 281.644 null ] >> +endobj +442 0 obj +<< /D [ 57 0 R /XYZ 317.955 211.905 null ] >> +endobj +443 0 obj +<< /D [ 57 0 R /XYZ 54 275.666 null ] >> +endobj +444 0 obj +<< /D [ 57 0 R /XYZ 317.955 172.055 null ] >> +endobj +445 0 obj +<< /D [ 58 0 R /XYZ 54 620.374 null ] >> +endobj +446 0 obj +<< /D [ 58 0 R /XYZ 54 570.56 null ] >> +endobj +447 0 obj +<< /D [ 58 0 R /XYZ 54 660.224 null ] >> +endobj +448 0 obj +<< /D [ 58 0 R /XYZ 54 540.672 null ] >> +endobj +449 0 obj +<< /D [ 57 0 R /XYZ 57.706 504.807 null ] >> +endobj +450 0 obj +<< /D [ 57 0 R /XYZ 54 225.853 null ] >> +endobj +451 0 obj +<< /D [ 58 0 R /XYZ 54 351.382 null ] >> +endobj +452 0 obj +<< /D [ 57 0 R /XYZ 317.955 560.598 null ] >> +endobj +453 0 obj +<< /D [ 57 0 R /XYZ 317.955 600.448 null ] >> +endobj +454 0 obj +<< /D [ 58 0 R /XYZ 54 301.569 null ] >> +endobj +455 0 obj +<< /D [ 58 0 R /XYZ 54 321.494 null ] >> +endobj +456 0 obj +<< /D [ 58 0 R /XYZ 317.955 172.055 null ] >> +endobj +457 0 obj +<< /D [ 58 0 R /XYZ 54 201.943 null ] >> +endobj +458 0 obj +<< /D [ 57 0 R /XYZ 317.955 251.756 null ] >> +endobj +459 0 obj +<< /D [ 57 0 R /XYZ 317.955 371.308 null ] >> +endobj +460 0 obj +<< /D [ 58 0 R /XYZ 54 172.055 null ] >> +endobj +461 0 obj +<< /D [ 58 0 R /XYZ 54 132.204 null ] >> +endobj +462 0 obj +<< /D [ 58 0 R /XYZ 317.955 590.486 null ] >> +endobj +463 0 obj +<< /D [ 58 0 R /XYZ 317.955 560.598 null ] >> +endobj +464 0 obj +<< /D [ 58 0 R /XYZ 317.955 510.785 null ] >> +endobj +465 0 obj +<< /D [ 58 0 R /XYZ 317.955 480.897 null ] >> +endobj +466 0 obj +<< /D [ 58 0 R /XYZ 317.955 441.046 null ] >> +endobj +467 0 obj +<< /D [ 58 0 R /XYZ 317.955 401.196 null ] >> +endobj +468 0 obj +<< /D [ 58 0 R /XYZ 54 480.897 null ] >> +endobj +469 0 obj +<< /D [ 58 0 R /XYZ 317.955 720 null ] >> +endobj +470 0 obj +<< /D [ 57 0 R /XYZ 57.706 375.293 null ] >> +endobj +471 0 obj +<< /D [ 58 0 R /XYZ 317.955 321.494 null ] >> +endobj +472 0 obj +<< /D [ 57 0 R /XYZ 54 305.554 null ] >> +endobj +473 0 obj +<< /D [ 59 0 R /XYZ 54 720 null ] >> +endobj +474 0 obj +<< /D [ 59 0 R /XYZ 54 670.187 null ] >> +endobj +475 0 obj +<< /D [ 58 0 R /XYZ 317.955 142.167 null ] >> +endobj +476 0 obj +<< /D [ 57 0 R /XYZ 317.955 102.316 null ] >> +endobj +477 0 obj +<< /D [ 59 0 R /XYZ 54 600.448 null ] >> +endobj +478 0 obj +<< /D [ 59 0 R /XYZ 54 560.598 null ] >> +endobj +479 0 obj +<< /D [ 59 0 R /XYZ 54 530.71 null ] >> +endobj +480 0 obj +<< /D [ 59 0 R /XYZ 317.955 720 null ] >> +endobj +481 0 obj +<< /D [ 59 0 R /XYZ 317.955 690.112 null ] >> +endobj +482 0 obj +<< /D [ 59 0 R /XYZ 317.955 620.374 null ] >> +endobj +483 0 obj +<< /D [ 59 0 R /XYZ 317.955 660.224 null ] >> +endobj +484 0 obj +<< /D [ 59 0 R /XYZ 317.955 580.523 null ] >> +endobj +485 0 obj +<< /D [ 59 0 R /XYZ 317.955 550.635 null ] >> +endobj +486 0 obj +<< /D [ 59 0 R /XYZ 317.955 510.785 null ] >> +endobj +487 0 obj +<< /D [ 50 0 R /XYZ 367.621 477.429 null ] >> +endobj +488 0 obj +<< /D [ 54 0 R /XYZ 54 725.978 null ] >> +endobj +489 0 obj +<< /D [ 54 0 R /XYZ 54 532.376 null ] >> +endobj +490 0 obj +<< /D [ 54 0 R /XYZ 317.955 725.978 null ] >> +endobj +491 0 obj +<< /D [ 55 0 R /XYZ 54 725.978 null ] >> +endobj +492 0 obj +<< /D [ 55 0 R /XYZ 317.955 725.978 null ] >> +endobj +493 0 obj +<< /D [ 55 0 R /XYZ 317.955 424.975 null ] >> +endobj +494 0 obj +<< /D [ 47 0 R /XYZ 317.955 725.978 null ] >> +endobj +495 0 obj +<< /D [ 48 0 R /XYZ 54 725.978 null ] >> +endobj +496 0 obj +<< /D [ 50 0 R /XYZ 317.955 725.978 null ] >> +endobj +497 0 obj +<< /D [ 52 0 R /XYZ 54 725.978 null ] >> +endobj +498 0 obj +<< /D [ 52 0 R /XYZ 54 400.904 null ] >> +endobj +499 0 obj +<< /D [ 9 0 R /XYZ 53 747.899 null ] >> +endobj +500 0 obj +<< /D [ 54 0 R /XYZ 53 747.899 null ] >> +endobj +501 0 obj +<< /D [ 55 0 R /XYZ 53 747.899 null ] >> +endobj +502 0 obj +<< /D [ 56 0 R /XYZ 53 747.899 null ] >> +endobj +503 0 obj +<< /D [ 57 0 R /XYZ 53 747.899 null ] >> +endobj +504 0 obj +<< /D [ 58 0 R /XYZ 53 747.899 null ] >> +endobj +505 0 obj +<< /D [ 59 0 R /XYZ 53 747.899 null ] >> +endobj +506 0 obj +<< /D [ 46 0 R /XYZ 53 747.899 null ] >> +endobj +507 0 obj +<< /D [ 47 0 R /XYZ 53 747.899 null ] >> +endobj +508 0 obj +<< /D [ 48 0 R /XYZ 53 747.899 null ] >> +endobj +509 0 obj +<< /D [ 49 0 R /XYZ 53 747.899 null ] >> +endobj +510 0 obj +<< /D [ 50 0 R /XYZ 53 747.899 null ] >> +endobj +511 0 obj +<< /D [ 51 0 R /XYZ 53 747.899 null ] >> +endobj +512 0 obj +<< /D [ 52 0 R /XYZ 53 747.899 null ] >> +endobj +513 0 obj +<< /D [ 53 0 R /XYZ 53 747.899 null ] >> +endobj +514 0 obj +<< /D [ 9 0 R /XYZ 54 638.463 null ] >> +endobj +515 0 obj +<< /D [ 57 0 R /XYZ 54 591.482 null ] >> +endobj +516 0 obj +<< /D [ 57 0 R /XYZ 54 574.378 null ] >> +endobj +517 0 obj +<< /D [ 9 0 R /XYZ 54 642.448 null ] >> +endobj +518 0 obj +<< /D [ 50 0 R /XYZ 54 703.345 null ] >> +endobj +519 0 obj +<< /D [ 9 0 R /XYZ 54 351.948 null ] >> +endobj +520 0 obj +<< /D [ 46 0 R /XYZ 54 351.752 null ] >> +endobj +521 0 obj +<< /D [ 47 0 R /XYZ 317.955 154.76 null ] >> +endobj +522 0 obj +<< /D [ 48 0 R /XYZ 317.955 427.975 null ] >> +endobj +523 0 obj +<< /D [ 50 0 R /XYZ 54 401.888 null ] >> +endobj +524 0 obj +<< /D [ 51 0 R /XYZ 54 410.706 null ] >> +endobj +525 0 obj +<< /D [ 55 0 R /XYZ 317.955 222.506 null ] >> +endobj +526 0 obj +<< /D [ 56 0 R /XYZ 54 275.308 null ] >> +endobj +527 0 obj +<< /D [ 56 0 R /XYZ 317.955 162.73 null ] >> +endobj +528 0 obj +<< /D [ 46 0 R /XYZ 54 277.761 null ] >> +endobj +529 0 obj +<< /D [ 46 0 R /XYZ 317.955 268.334 null ] >> +endobj +530 0 obj +<< /D [ 47 0 R /XYZ 54 320.139 null ] >> +endobj +531 0 obj +<< /D [ 48 0 R /XYZ 317.955 352.02 null ] >> +endobj +532 0 obj +<< /D [ 49 0 R /XYZ 317.955 591.123 null ] >> +endobj +533 0 obj +<< /D [ 51 0 R /XYZ 54 252.261 null ] >> +endobj +534 0 obj +<< /D [ 53 0 R /XYZ 54 720 null ] >> +endobj +535 0 obj +<< /D [ 53 0 R /XYZ 317.955 515.407 null ] >> +endobj +536 0 obj +<< /D [ 53 0 R /XYZ 317.955 179.029 null ] >> +endobj +537 0 obj +<< /D [ 56 0 R /XYZ 54 208.558 null ] >> +endobj +538 0 obj +<< /D [ 56 0 R /XYZ 317.955 651.563 null ] >> +endobj +539 0 obj +<< /D [ 56 0 R /XYZ 317.955 475.137 null ] >> +endobj +540 0 obj +<< /D [ 51 0 R /XYZ 54 228.045 null ] >> +endobj +541 0 obj +<< /Differences [ 27 /f_i /f_f_i /f_f /f_l 40 /parenleft /parenright 45 /hyphen /period 48 /zero /one /two /three /four /five /six /seven /eight /nine /colon 65 /A /B /C /D /E /F /G /H /I 76 /L /M /N /O /P /Q /R /S /T /U /V /W 91 /bracketleft 93 /bracketright 97 /a /b /c /d /e /f /g /h /i 107 /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z ] /Type /Encoding >> +endobj +542 0 obj +<< /Ascent 714 /CapHeight 628 /CharSet (/A/B/C/D/E/F/G/H/I/L/M/N/O/P/Q/R/S/T/U/V/W/a/b/bracketleft/bracketright/c/colon/d/e/eight/f/f_f/f_f_i/f_i/f_l/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) /Descent -231 /Flags 4 /FontBBox [ -1082 -328 6171 1014 ] /FontFile 597 0 R /FontName /SVARXO+LinLibertineTB /ItalicAngle 0 /StemV 130 /Type /FontDescriptor /XHeight 433 >> +endobj +543 0 obj +<< /Filter /FlateDecode /Length 874 >> +stream +xÚ•UMoÛ:¼ëW°‡éA5iE_…a€”, @¿ÐEo¶D§z°%W–ù÷å쮓âáÚƒájvwv(‘7o¾<Ķw>NÞiõÕŸÇËÔú¸ú¸=E77õØ^Ž~˜?yßùîúôü^}™ÆöÁÏ궺¯ï‡~~È÷C{¸tþÊú’óOýðJAuûè¿ÇúáC¿óÓÜþÑÅóaÏ&ŽwÛ³»yøgø‘çÿþŒ5ª<öó!dÿ]¢ +lõ‡lEm¾ùéÜÃ{eÞi­C`3tÕx„#çh!S©ÅuÎ}?t“Œ¦v42KÕõí,+úoÁZ$?<Ÿg¼öc´Z©Å×ððEÂ=Š;Æ`òÓмEÆõ‹œ1q +ž +™úÒìæ>Ž1ÞÑ¢b OŠš1Õ§YMŠ}/ÆÐY²þ}KÖŸ‚_²~zOJÖŸBOÉú3Êeýf/YN|ÖŸŸuæÐ\²ÎûX²Î„rYgB¹¬ÓÐÇÃ>[ÌbÅgÌhÅçX|&ŽøŒ^V|Æ»gÅgôµâ3ü´â3qÄgÌnÅgè·â3tZñ³[ñ¾Yñ™ê‹ÏÐoÅgètâ3ú:ñ|'>ƒïÄgèqâ3åŠÏ˜Ý‰ÏÄŸ‰_ð×OXÎÌâÄÌâļ‡Nü§šü]XªÉß„£:â?85÷JáC#ñ†9u#§28~q½¼ùíešÂm@wå8ÅÃÉÿrMƲèG÷ÛõnÆêsý¢²6 +endstream +endobj +544 0 obj +[ 641 947 716 680 631 0 266 376 514 514 637 729 253 315 315 433 537 244 358 244 316 514 514 514 514 514 514 514 514 514 514 256 256 512 551 512 430 988 740 654 706 734 609 545 732 817 367 373 736 577 899 740 730 614 730 716 504 652 732 700 1028 718 624 624 397 307 397 518 486 253 506 542 456 561 489 391 521 619 322 312 613 325 905 616 551 581 573 428 427 358 598 529 777 561 558 452 ] +endobj +545 0 obj +<< /Differences [ 16 /quotedblleft /quotedblright 21 /endash /emdash 27 /f_i /f_f_i /f_f /f_l /f_f_l 34 /quotedbl /numbersign 37 /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less 62 /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft 93 /bracketright 95 /underscore 97 /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z 159 /section 225 /aacute 231 /ccedilla 233 /eacute 252 /udieresis ] /Type /Encoding >> +endobj +546 0 obj +<< /Ascent 0 /CapHeight 0 /CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/aacute/ampersand/asterisk/at/b/bracketleft/bracketright/c/ccedilla/colon/comma/d/dagger/e/eacute/eight/emdash/endash/f/f_f/f_f_i/f_f_l/f_i/f_l/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/percent/period/plus/q/question/quotedbl/quotedblleft/quotedblright/quoteright/r/s/section/semicolon/seven/six/slash/t/three/two/u/udieresis/underscore/v/w/x/y/z/zero) /Descent 0 /Flags 4 /FontBBox [ -1082 -257 6171 1125 ] /FontFile 598 0 R /FontName /DHRMAA+LinLibertineT /ItalicAngle 0 /StemV 79 /Type /FontDescriptor /XHeight 429 >> +endobj +547 0 obj +<< /Filter /FlateDecode /Length 877 >> +stream +xÚ•UMÓ0½çW˜ÃJË!ÔNš/TUr’FZ Ä®7Ô&î©Mª4=ì¿Çofº ˆZ=OÞ̼yqì›7ŸBÛ;Æï´úâÎãej]X}Üž‚››zl/G7Ì÷Îu®»>=¿WŸ§±}p³º­î껡ŸßzòÝÐ.»²þN*ÝS?¼RÐGÝ>ºoá‡~øÐïÜ4÷ƒ{ çÃ>œMî¶gvóð=KŸNÛ$Ô(òØÏŸü_yʓտ‘5ùê¦s?ï•y§µöÍÐUãvœƒ…Œ¤×!÷ýÐM2—ÚaÊÀDªëÛYVôß½¯H~x>Ïîx7ìÇ`µR‹/þáyžži¦·ÁâÓÔ¹©žÔí¿Iö)—Óéà Oé`½VÛûNÞßûíÑ©Åyõ’ûø|r*¢µá9Ú±sçÓ¶uÓvxrÁJëµZ5Í:pC÷Ç3sÊnån‚‘Qe‚Q€Q˜ Œ +]j®áq°ªÁ¨9¥cCCh +lÀhP´á”E¤4ÒÔp 1þuÎ"ºÎÝþØNb‘‡ÂÚ.—À\GU +®a‚^Ç¢N8^§Œ-pƹpÎqâœÛ[ŽÃi]r_âT/kö5M̹ˆÖPf/cø`¸fŒ¾†k¦©ÿÑÛ¬^×/±ú—Ö›×5½ðæ÷Ä"ø-#zÿëC­T3Æ ™ìø’“¿ÆÛé±a óˆ1úæ1cÔÏ—Œ7À䯡ùó”1êçcâäÃO+>G|ÆìV|†~+>C§Ÿ1»Ÿá›Ÿ©¾ø ýV|†ÎR|FßR|¿ŸÁ/Ågè)ÅgÊŸ1{)>_|&~Χa90K)þc–RüÇ>,ŪÉ߉¥šü”TGü§æ^ |h#Þ0§nä¢SÇ1.›— ½L“¿èF¢³§º¿^.­ÓxBýè¶»^ÓX}j‚ŸÈ­ +endstream +endobj +548 0 obj +[ 375 375 375 543 543 548 742 0 271 271 272 560 829 582 540 815 250 288 336 465 465 637 705 268 298 298 369 550 220 338 220 323 465 465 465 465 465 465 465 465 465 465 236 236 550 550 550 435 895 695 588 646 701 557 485 685 730 297 322 637 528 839 699 702 541 702 587 485 597 661 652 951 660 575 604 356 287 356 518 486 268 457 493 428 506 447 310 500 538 271 272 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 424 277 205 277 449 338 695 695 646 646 701 557 557 685 528 528 528 699 699 725 702 587 587 485 485 485 597 597 661 661 575 604 604 604 598 297 506 473 457 457 428 428 528 447 447 500 264 290 264 542 542 528 504 372 372 390 390 390 374 316 531 531 515 424 424 424 542 288 435 465 695 695 695 695 695 695 865 646 557 557 557 557 297 297 297 297 701 699 702 702 702 702 702 869 702 661 661 661 667 575 527 0 457 457 457 457 457 457 687 428 447 447 447 447 271 271 271 271 486 542 504 504 504 504 504 778 504 531 531 531 531 ] +endobj +549 0 obj +<< /Ascent 707 /CapHeight 707 /CharSet (/S/arrowleft/asteriskmath/bar/braceleft/braceright/bracketleft/bracketright/bullet/dagger/element/emptyset/existential/greaterequal/intersection/lessequal/multiply/parenleft/parenright/periodcentered/prime/propersubset/radical/slash/union/universal) /Descent -152 /Flags 4 /FontBBox [ -47 -944 2835 838 ] /FontFile 599 0 R /FontName /KLFPWG+txsys /ItalicAngle 0 /StemV 52 /Type /FontDescriptor /XHeight 400 >> +endobj +550 0 obj +<< /Filter /FlateDecode /Length 980 >> +stream +xÚmVMo£H½ó+ØC¤ÌÁãþ€nY–0R;3šD«½:ÐÉ"Å`–6ÿ~ûUáàYåëñ¨WÕUtîþøù¸qíðì7ú«ˆùi¸Œß”ÏÑÝ]54—“ïçïÞ·¾½¾¾Å?Ç¡yôs|_>T}7 Æ}óviýÕês£Â¿výj‚<ñý“ÿ{3ÿ;½O›çK÷6wýFÀö©›ß‚Íg¯ãÀÅ¿q1¹üåÇ©úo±ü*„Ä¡oËᄦh»èˆ·We/]ߎ‹˜øÒ"©â¶kæå‰~›Shœß§ÙŸú—!Úíâí¯ðršÇwRø%Úþ[?výk|ÿ›²ðæñr>¿y¨ˆE´ßÇ­ Cíß'o?+ðÃäéýìcEÏ’U5Cë§ó±ñã±õÑNˆ}¼«ë}äûöï”e—ç—«mlE~”ÊÓ}´“*`©‰È ˆDJ„I@„s5¢`ñdÅ.ÄDM„¡("+™k”À0aAP<&+XhÄÐÃAG"N‘[ˆ€£] +‹”-b4ÂHv0ƒâ åÖ: $˜”‰ úaröÂB“µÜ d±xi‘V %‘!KÆ +ª—Œ]4ÒfšQP'ÈuåruÉ!,׫Kayººp/¸Za%‚–‹RC‡}=ÕÜ\O¹ùç8.¡”D`!)DþE¸"ÌÉ%á„øš0V¢ã°/Ú ¸>‰£tÔ¢ª€q*…¢¨¹K4¬!äÊ âÈŒ‹.s¶AyJð, ÃJ2F¥ÃW±†„(ãQ!ûœ1Ù;Æd_±/´©ã˜gFB›¦¼‚A³Î0½S^EC¢¹Wt.š†8-hDSƇz¥5Ù“NéWs½:5×+È—Ö¡šwI`5¯€$žõKÔ’p4lR¶W˜è”wY¡®”W0ƒ~Ãgg¡ÙXÆÐi8¯E|³ÄALÃyé›`8oEø@ö)ÙsßÔb—ƒK}s»ô ³dõ:ñ6á•Â\Yž1úØŒû@öÏúfI1dS1&þÀÚl͘¶Òñî@CFu9 ûܬ|noøå\ˆçs¡>ç7g‘—7¸âU${î åÍkÖŒºz"T‰øŽöNUè›ã½£§ÓÌcNœaŒ:˾èƒã=¢=-Ä ¾ÙåBÝ`½î`‘¬;X¤7ØÜ`»Î|Áý§3*¸ÿ)á’1f¦´ô}§s/©ÏªÀ¼•ÜçìËrÁ¡éòu¢¯.%\ ×]sÇpÒ-K7î¶®÷ñy8Ëþè¿þ¿€§uôx¿u +endstream +endobj +551 0 obj +[ 250 636 471 636 512 636 636 636 636 636 636 636 862 497 497 636 636 636 636 636 636 636 636 636 636 636 636 918 918 636 636 1024 1024 499 499 1024 1024 1024 636 1024 1024 550 550 1034 1014 1024 636 347 853 536 536 634 634 0 0 587 587 640 500 908 703 712 712 639 870 718 648 860 622 669 704 876 650 775 796 749 1080 822 703 709 703 680 679 678 897 892 1202 738 797 865 654 654 654 654 654 466 466 371 371 371 371 411 411 363 363 200 400 499 550 460 264 703 727 664 409 654 654 636 636 500 500 500 453 578 531 605 542 387 642 908 443 677 957 443 443 513 1173 456 456 376 633 889 418 663 928 418 418 472 1134 424 440 727 670 587 500 697 460 333 333 333 333 333 333 333 370 333 333 548 454 454 454 454 454 454 280 175 334 389 421 275 350 425 334 564 333 333 333 333 ] +endobj +552 0 obj +<< /Ascent 437 /CapHeight 437 /CharSet (/comma/period/u1D434/u1D436/u1D437/u1D438/u1D43A/u1D440/u1D441/u1D444/u1D445/u1D449/u1D44A/u1D44B/u1D44E/u1D450/u1D451/u1D452/u1D453/u1D456/u1D458/u1D459/u1D45A/u1D45B/u1D45C/u1D45D/u1D45E/u1D45F/u1D460/u1D461/u1D462/u1D463/u1D465) /Descent -11 /Flags 4 /FontBBox [ -342 -238 1011 786 ] /FontFile 600 0 R /FontName /PEYUND+LibertineMathMI /ItalicAngle -12 /StemV 82 /Type /FontDescriptor /XHeight 400 >> +endobj +553 0 obj +<< /Filter /FlateDecode /Length 592 >> +stream +xÚ}TËnâ@¼û+fHä@˜ñÛBÂ/ iI¢€V{5ö@,mùqàï·kŒmrÀª®©žî.ÓžüzßÍÖyu3뙳ÙV}“ÉY¸Mkc2‰ª¬¿È²{•2—ùxÚ¾°÷¦Êv²cÓpmÊ¢{"ñ¦ÌÎ}.GÕÿE<¥– ›îåßÙïâ ›®(å6í>·›Ù¡/ÎÎ8²öEw&õÏBF§ì›S¦®ù#›¶¨Ê&ž9çDÄeVLØó[—l>ö},ʼ¹µÊhÜ&Ë‹¬»Eê™]È*$ï®m'/›òXË%›ÐaÛ5WÕõ“1krÙå‰M¿é‘4»¾®Ïý0n¬V,—GºššY¾u'ȯÑÓÊ>Óææ)ç²Sqá£:7à`pm 8ŽV®|#Ç ‹ÇÀ¦Â} +gð÷Ûz°5ì@Ç0ÏuŒZv¤ãq¬}ˆ«×äéz×Ö³¹C\ñ‹ì>h¼é7ã!޵ÿ˜Ýóuo¨í«ZÜÄü¾3àðö”ëøÿbÿî;’õMC룖T-Ö€¶å¾ÇuU#KýÔ`ü!zKŒÍaL +endstream +endobj +554 0 obj +[ 667 557 616 667 526 457 664 673 280 315 637 519 804 666 668 499 668 555 454 544 634 597 858 628 552 578 486 478 389 489 401 314 499 519 276 259 486 266 783 518 447 489 491 357 353 307 521 391 688 475 503 436 636 668 621 648 691 594 530 670 687 693 478 522 472 458 450 369 402 490 447 258 506 494 451 440 391 525 482 410 521 410 455 546 469 584 630 424 421 507 507 537 454 642 494 539 519 494 494 276 259 381 631 470 511 540 338 462 448 481 425 473 438 469 469 516 465 465 465 465 465 465 465 465 465 465 220 220 ] +endobj +555 0 obj +<< /Differences [ 37 /percent 48 /zero /one /two /three /four /five /six /seven /eight /nine /colon 97 /a 103 /g 105 /i 109 /m /n 114 /r 120 /x ] /Type /Encoding >> +endobj +556 0 obj +<< /Filter /FlateDecode /Length 732 >> +stream +xÚ•UËnÚ@Ýû+¦‹HÉÂaø!$°ABJ“( ª» +ì!µ62FJþ¾sT]$ ¬sÏœûûróíeéOŠzc}s/Å«=Ö§&·~ú}}ðnn²:?ímÕ>Y[Ø¢?=>ˆ—¦Î—¶·é"[Te{çÄ‹*ß +Û«þ/šÚ·²ºHGÜ®ìOÿ±¬ËmÚ²²+¿ÝmýºU¾¿Y­¿Û´Õ¯Ú¾¿‡[_"ʪlwÎûkŽÂ©Å'Õ‚Òü°Í±¬«¡î¥”Ž˜UEZï1‘£7躃¾ÏmYMךؠQOiQ”yÛYôÌ÷n´p^~[»_TÛÚÄàÕÛæƒººóÏMa›²z·Ÿ¬Ùù,O‡Ã΢>!½ñXvëR¹?­÷V ¾6®³óêã`…&[q'y]ØãaÛf]½Yo$åXŒæó±g«âŸ³ˆ=6Û^9©Œñ0“`ì4|µ!v„2a@@m¦LÄŽ0s‡&öF!Ü£ {£‡QŠ@Rª«¯ Ô}EùïuÓÕ.M‚Lq´–!°f ¥a<2žÜÊ–!cŠ“0&ß õ§SQ.eP¢¢–µ‰€5—Ž8ŠrÉé˜ré”4”Kgˆ©x:ô®"æ'À1û’†jix43ªæ¦Ô©Râç¤Ï§¤™±FÏ94ZóD3àˆq‚ á8ôe8ŽÆÌ¸Ôt·‘³&€&˜qÈ̹Ä %ë‘7ʘ‡>b}†8×FsŽ%Ï0t?øÇêbŸ9ýÛ\lÄ‹‡×>ÄóˆÃ‹My£‹;ˆã‹÷%NÎv„;é.Ô³ŠùކýYzŸâg×å˜]s”g~ÅQ¼„g(gã[Kx&Á°‹ð}ô™˜î{꾩dx¶5jMxZõç!ùÒ{=ézÒÝ—F_vvÝyÿ䧦q«‰"-¬·†Î;óPàE?Z¶ý¬ç¹÷çë¹r +endstream +endobj +557 0 obj +[ 637 705 268 298 298 369 550 220 338 220 323 465 465 465 465 465 465 465 465 465 465 236 236 288 550 435 435 895 695 588 646 701 557 485 685 730 297 322 637 528 839 699 702 541 702 587 485 597 661 652 951 660 575 604 356 375 356 349 291 268 457 493 428 506 447 310 500 538 271 272 512 264 790 542 504 519 503 372 390 316 531 497 747 490 ] +endobj +558 0 obj +<< /Differences [ 38 /ampersand /quoteright /parenleft /parenright 45 /hyphen /period 48 /zero /one /two /three /four /five /six /seven /eight /nine /colon 63 /question 65 /A /B /C /D /E /F /G /H /I 75 /K /L /M /N /O /P 82 /R /S /T /U /V /W /X /Y 97 /a /b /c /d /e /f /g /h /i 107 /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z ] /Type /Encoding >> +endobj +559 0 obj +<< /Ascent 0 /CapHeight 0 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/a/ampersand/b/c/colon/d/e/eight/f/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/question/quoteright/r/registered/s/seven/six/t/three/two/u/v/w/x/y/z/zero) /Descent 0 /Flags 4 /FontBBox [ -634 -312 6171 893 ] /FontFile 601 0 R /FontName /TCFTCN+LinLibertineTI /ItalicAngle -12 /StemV 76 /Type /FontDescriptor /XHeight 429 >> +endobj +560 0 obj +<< /Filter /FlateDecode /Length 876 >> +stream +xÚ•UM‹ÛH½ëWô&ÅÝÖè+CKrƒ!›„Ìö¶ØR{V¬-Yf™¿ýªÊ3Ù%‡ä`óT~UõޓܺûíËcl»qïãä½V_ýe¼N­ëßwçèî®ÛëÉó'ï;ßÝ~½|P_¦±}ô³º¯·Ívèçw¼Úãµó7ÖI•î‡7 +ö¨û'ÿGü±>ö{?ÍýàŸ¶ñ|<ij‰ãýîâãã~þÌŸ§ëßÿÄSžúùº­Q¶úI¶¢5ßütéÇáƒ2ïµÖ¡°ºz¥£õZuþV…Œ?íN^-~-®×æ§—³WKº6ì¤;9ïZ?í†g­´^«•sëÈÝÿ~3 ·ì7î&pµ _K”ëheÐl–T05 +) +’PX`´8Š€SÇ…"20rš¬30J0Ê“ƒQcKÃ3ŽV  ·4`lÈ„¦Â ‡¡Ž[†:´¸š hq +<#`Ø¿ù,ÍÍwû×n’ˆ‚8 Ö†põ ãzYgÀ á!èâX¬Ñ)×àŒ±ι7.¸Nü’{°å:’Öï%NÍõ +¸á¬1Ó$Ü‹ºa aÎ2A†g&Økxf–…ÝÍúíúµÖ|WÃõæíšn¸ûojËœ5¡?ÓŒ¡;—»Ž, +ÊÔ„6Œ‘i±dŒ]EÂ3‹Æ`ÊÔç"cŒùEΘ8{††BüÓ^òoEQ1ÆsZÔŒ‘KÑ0¦ùäפ¸÷…c %ëO±·dý)ø%ë§g¥dý)ô”¬?£^ÖŸÁ{Éúsâ³þŒø¬3‡æ’u渗%ëL¨—u&ÔË: ý8g /Vr†G+9§À’3q$gì²’3ž?+9c¯•œ‘§•œ‰#9û•œ¡ßJÎÐi%gx·’3r³’3Í—œ¡ßJÎÐYIÎØ[IÎàW’3ø•ä =•äL½’3¼W’3ñ%gâ|–3^*É^*ÉÏa%ùÓLþoXšÉÿ‹ŠæHþà4¼+EN0êŽ9““‡NÁxżûíušÂÞCtžã$§ÿë«ê<žÑEzÇÝÞϸúì¢ã +endstream +endobj +561 0 obj +[ 705 268 306 313 433 527 219 333 219 291 444 444 444 444 444 444 444 444 444 444 219 219 487 527 487 405 829 667 557 616 667 526 457 664 673 280 414 637 519 804 666 668 499 668 555 454 544 634 597 909 628 552 578 334 321 334 518 486 268 486 478 389 489 401 314 477 519 276 259 486 266 783 518 447 489 491 357 353 307 521 472 688 475 503 436 ] +endobj +562 0 obj +<< /Differences [ 132 /dagger ] /Type /Encoding >> +endobj +563 0 obj +<< /Filter /FlateDecode /Length 689 >> +stream +xÚ•TÁn£0½óÞC¥ö@cLB¡Š"áR¤n[5Ñjo+N)1Cþ~ýfHÛ]í¡=„<ß›y3`_}{^ûiÝnÞJñbúöÔUÆ_~/ÞÕUÖV§ƒ±Ã£1µ©/»ý½xîÚjmq½\e+Û 7޼²ÕþT› ëÿ$m^ûNAq½1?ý‡Æ>4[Ó 5Øïü¡|[öÆßoûË–m{®|‰,›fØ;õׄ±Å'Ù‚Êü0]ß´ö^·RJÈm½l˜HïMÆ®ÄäÒç®±u7¶&¶hÔ ”¨›jWô¬n´¯Ïý`+»k½ù\L^Üf?tgêêÆ›> +endobj +566 0 obj +<< /A 602 0 R /Next 603 0 R /Parent 99 0 R /Title 604 0 R >> +endobj +567 0 obj +<< /A 605 0 R /Parent 99 0 R /Prev 603 0 R /Title 606 0 R >> +endobj +568 0 obj +<< /A 607 0 R /Next 608 0 R /Parent 6 0 R /Prev 99 0 R /Title 609 0 R >> +endobj +569 0 obj + +endobj +570 0 obj +<< /D (section.8) /S /GoTo >> +endobj +571 0 obj +<< /A 610 0 R /Next 611 0 R /Parent 102 0 R /Title 612 0 R >> +endobj +572 0 obj +<< /A 613 0 R /Parent 102 0 R /Prev 611 0 R /Title 614 0 R >> +endobj +573 0 obj +<< /A 615 0 R /Next 102 0 R /Parent 6 0 R /Prev 616 0 R /Title 617 0 R >> +endobj +574 0 obj + +endobj +575 0 obj +<< /BaseFont /UZJQXT+txmiaX /FirstChar 56 /FontDescriptor 618 0 R /LastChar 61 /Subtype /Type1 /ToUnicode 619 0 R /Type /Font /Widths 620 0 R >> +endobj +576 0 obj +<< /BaseFont /FBLZCM+LibertineMathMI7 /FirstChar 25 /FontDescriptor 621 0 R /LastChar 71 /Subtype /Type1 /ToUnicode 622 0 R /Type /Font /Widths 623 0 R >> +endobj +577 0 obj +<< /BaseFont /JESRHI+txsyb /FirstChar 82 /FontDescriptor 624 0 R /LastChar 82 /Subtype /Type1 /ToUnicode 625 0 R /Type /Font /Widths 626 0 R >> +endobj +578 0 obj +<< /BaseFont /THUYEG+txexs /FirstChar 205 /FontDescriptor 627 0 R /LastChar 213 /Subtype /Type1 /ToUnicode 628 0 R /Type /Font /Widths 629 0 R >> +endobj +579 0 obj +<< /BaseFont /IIOJER+NewTXMI /FirstChar 157 /FontDescriptor 630 0 R /LastChar 161 /Subtype /Type1 /ToUnicode 631 0 R /Type /Font /Widths 632 0 R >> +endobj +580 0 obj +<< /BBox [ 0 0 515 294 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/bg/anns.pdf) /PTEX.InfoDict 633 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /Cs1 634 0 R >> /Font << /TT2 635 0 R /TT4 636 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /Im1 637 0 R >> >> /Subtype /Form /Type /XObject /Length 3205 >> +stream +xÝš]oI†ïçW4 ,΂ÇýÝ=·.i%B,íËÅêÈ+‚lBœŸ§úsŽ?’corC¬ÕÎÔé©ê®y»ê­êy§^©wJ+½½ñgU0~åÊ(»¹5s¥n¯Ô÷êŸêâå{£ï•)ïð‡¹!K~M>¸¤¬g”Ï›ÊHXDT6ä5ŽÛE ÍÁ ‘²AtQM-]2lñX—]Zº¯W«µÆKÅÒ¸å‘>™!nJÆ +–%\òrÙh­þ«²ú®ºûåkñ¢5!æÈ•ÓGy®<+×[V¯_Êë[™ŠN9ymÆßù±hÌ ;h9ÜÈëË6:»œª•±1¸¼n\$¶Õ–hÌ\”÷:§¸Ê “Ñ8®?°´û¡íÐGx—“«™‡0ƒá¢·Ý†IT•ßµîfy7¯Á,P :ê.°«ó¸ÍhüfÕå­z·ð~L–¿:jÜÙàVçRRç–Õ¾øý¥Ú̺ɿ2~Ãë[Ô‰㼌KË庸¼´ ÿò'uö‹êòê—2Ÿûèe —iVªL +k”­z›l19­[6‰Åó^7è ‰LÈú50~ê’ƒb#°³›2p–eKLM]2íñÞÚ(|W/ˆšp…wqÚ[L—È+é³ê²>ó©iJúúäu/ÇŸ¿Ã‘Í!Ç/@Þ@]ƒŽã?T,Êë- ;Â/ #fôÝ ø-’ÂñpÃgêê°€ò²0ù9ð+ÛùaèšmuįΠ‘-n8ºêº_=]öK ¼ºŽ¸P¯qf•¨;ÞU,;ωº‚š|T.ø5•[m,QwŽ „”¨k†–!)†xfX/IÉ,C‹F û£Øa··[žSé²9ݦe,`©+Ú#µEÜÏÔi·9e‡T7ã,3A¯àôSq–Žâ¬u-îpŽÝ໲± ´öúû2¢¬lŠéÓbìãušhÀh$‡< ¿< d¸B\X3 Ab«ë2‰Ø¡ÈÁ$0ËVÍ«ð›¨B‰k:.CrP±ÆÛ9N¢ ›Іd˜;s(£ëV¦0»"ƒ€ÔƒÙf,Ò$D¢>§!ó!Ù™›‘õsâµ»¬»ãcxma—’w‘Uâm wÃáÀVû}"¶„ØFHÚ}‹¬°’Y…ÜŒ‡?f}Zµ7°ÆsË LÂçÁöW'ÀÖHf’f\ £7\vÉZ{›È„L`å^+j…îbk“à™=ö!p+„ ÚÐõ A7ÆcM¶À*!BPÈ©È aÛ sÊt Ïõ9uÑœuSD`íë˜æ¾h§¡æŽZ‰¢ƒÎ–`‡£+…47ÚÉ€AhUB#´BÄê#5ÐRV–ÊðjSå±òL µrQbðnh»à+¸Â «ÁæS(íãáVÞ=„èRm~n}n}$¤J¹dHÏR ·S–óêâæ”OŒJD³!òíaÒL-C‚3µ§™WÓGØf)5M×4%ÝϵQ‹PÙ“Ùiê¤Û›¤„€;f5FµÕLMs-ÓÞÓ°»œVŠMC}ñ­+  b5M³C„OE.Å»”fŽ·Ë`ƒ; ¶û‰ÛÎ.nר@”Ó?µ>‡Õb±Y)ŒžܯO.øÛÀ_/ÔoÔШ ÓíBª}J*@Nj–ÚqqL ê¶R'ôQ$gê'Wš UÓ”® !Yª<^jWC&åá0VÚEÂscJ}Ôœv×4%ÍØÓðzbë`ZiËî±–L}Ð>¡ð"Uôœ~L®½T{zÐÊ®Jh›Áúû!´FS”‡@¿À×Á3ƒìo&VaJk6ÄIš +ZVìÙ­v»¶UK·.I&ÿZ’j•‘€£DMË…ÎØÑ¥)] = .CBïz ¡Ý(Éüå骦ÞvK'½\—Î ¥A¶pâMšk™q,Bï`¥‰š¬LC(ÕÞÐMÓ{Ê*šÄ6A˜¼¥æq £µ¿ÊRH‰ÂºË‹÷$6 ++ãm>yÝ÷”Í¥§LO,ªÍ{lsøl“ÂëJ#“³ +nÞx–ZrLŸ·­ü“¯û¾¶±phS(YÒr0må³OEãÊyW1pÍšvƒ‰4ñ_÷ñdîišË¦Ñ'P“FšgwU Én¼sZÒšv¤èXòGÏ 7‹²Dþ’~³#¥Ç’?2a ^»œ’QºÒ̦%¶&[˜ @8iUÓn»%ž¨¿óÒK›y* ê—·ÓÍÐ/i:wc2]6'Ü5MÉ4VòÇhØ–ž{42•÷u6>þx4òxéØöÄj Ë!ÂB“`ðé­å^<%iL"q…À!sÇkÊÖÝŸ‰É±Îݨ},i$Fˆ†è[ØXgA²O_´¼’ܱ’Ü…( vrF+§*W3H ÚDÎcËw•ÍM ÃóœOŨ·r@*gX†¸Y{-(²Ø¶ž<ÉäF(m¦í”C¯#/ÜÓ5Mg¨žñœmé+Õðá¨{J®®y¹œJyŽâ§GÝGB×?ÜS6m§#M,ÈmHúS¡ËÓúäÐ ÈéTä“G8MF–³[Ž¥¯$,ƒà.Œ”È…Ëä dJˆCúå oŽêåþPÔ»Ãu‰@Ž5èftEP[9 ¡ÜÍu ¥ð˜T—Û¼§¦.ÙÙ;Ž`БÁ€øÓw‡¹±ÞÁ„§.ûŽìônmBô–ne½,·”ZЮ~Üj4Þ@=.Åœœ)·{a½Íh“ÌŽ[ÕK§âgv[àÖn95zVüúæ(|Eù—ø°Äñºw훪-RûÔ®ÑÆÄÖ•-¨¡/$þHú³²à§ÀFNláá–£‡kÚMôÿ´—adÜLÇ0dn“n/‡¨Éj¡K†-5ø6 ´s‘YÒ«ÖþLj’›…‡ Ñ& ÈÑ¡œ[Ó¬“t¢^¾¨ð[­øÛ€lƒQõ[†Ãܹ­¡§µŽó=¨àFWO‡ºÙ¡Yü üg#ˆqC]O‘„C5­!°ôW<ÇC²¬þÈŸÞœ,¾KÄ f"2ŽáçM…ŠÐùÍÒ¥Û¤ûx#_‰çi²ð /¢"¶y›¨B(’c‚–ò…Šç0(ÈÑ;5nL<Ê8ÚšõÌׯé¯äNø #n‹¼šlÊì ëãgž•2k£õÚ^ûî»6/t±úÎêD¡/’Äu|×G[ •@ +¯ÅwÙÁ³Y¼W漀 +› ?uYñ¬Žœ‚ Gå­ÃÄ™Uÿ}!šY8é”Í(°kž7Õ³9NÊøXF<ë ÓâYbªfÝ íQ€ „¯Øóxðû71ŠS +£^{<¬,‚¼+ðvJ5"üX¾ÈЩpz’¶…ic–B-ÐéžmÎãcŸTÒS/?“³¾%™–ÁÒŸ «,‡*ì=“J5LËb f%ínðoÖ8$ø©Jª_' mí3Ù£øµþjñQ)ƒÚh`Þ–WTÐ:oªO/þ|u{¸úׇÿx­nßPùâZéÝ þÆ¡5.G‰À…ÿ±„2Ý‹ooŒúÃÛý§/¹ºþñÛÿ\½|{ýööÍÍÕ‡Û7ѬËç/<ÿÈ7l(³ÈÎ-!swÖU¼HI{yPÙÙݰiSû”€-,_Áü•ï`øšÀ©3ŽlÝrÆ Ø¹Wg(üM]þ©~ó8éž“$¸ñ)޼$6d Úe.>/OË×4ÙøèLZçLJ¦™¬t9OêŒèÅ=ûí >:ûÝnðœ­ÔV¥Óìtt²µ\å´MZ `‰ˆŒsä ÓÙW»VGal'¶[»zBdU?ù”ôR HÂärçS¯þtôí +endstream +endobj +581 0 obj +<< /BBox [ 0 0 654 173 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/arch/Canvas3.pdf) /PTEX.InfoDict 638 0 R /PTEX.PageNumber 1 /Resources << /ColorSpace << /Cs1 639 0 R /Cs2 640 0 R /Cs3 641 0 R >> /Font << /TT1 642 0 R /TT2 643 0 R /TT3 644 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /Im1 645 0 R /Im2 646 0 R /Im3 647 0 R /Im4 648 0 R /Im5 649 0 R >> >> /Subtype /Form /Type /XObject /Length 7213 >> +stream +x¥œË’¹q†÷õµä,t¦î—¥4RØR8dɤË‘4§gHE“3⺼ß˯âïO ¨:ç4I[¢BÝÙ@"‘È;õ—öí_ÚŽÿ.óÔöëØ¾hÿ£}×~ýÍÏ}ûêç¶o~uþû÷úëþÚ_hÀð}Û]öyì»ùÆ ì/ÃÐõ]ß.]ÛsÛ÷þ¾Ú¿ðwiož7¢¬kŸ‘½ýø‹¾ýŰïí4Mí«·íØu†ªÖ©}ÛNã\~},¿ŽÛÔ<–ÁüÚ>¶¯ÛçìÞ7Úi£wVùÕ‹¶òòC;öó¥§¾Çñ2Kóâmûõ‹âÄ‹ïÛgÿúþÍoÞ½|lùûß·¿}÷ÝÃß¿j_ü¹ýÍ‹´˜ñ­»ló6uÜ9ýÐÔÜ.þnýn<š2‹îМ˜ºþ²vÃÐTìp»MS¬Ì-°w8‡§¹ã‡Sºõ²ìcßNý~7~8°çÛæÙ?¿ùáuûë‡ÞÕö[ûìá¡ýƒÿøóÃû¿¾y÷ÃWí¶/~—Xvg»:’jÑ¡»ôã¾°»!mþ°è³zÿò§×,óñØÛ?=ûïùO_Ne”4w—yXçAG}Ùýgå§iØç~^u0ÃzÙFǺ_¶®[wDnØÙ.º³®—Þî0]öq˜–jÖxéÀ¿4`š/ûÖí[»¢ +ý†$ Ãe_öm© ý¥ï‡en×<¯EqöË0ÏÓØ®{S A@Ìs*Yϱoýe™74/(pHs½»WhdßþùžZ ûâ±L—~ߨ1›ñ£—åÒÍËFí—nYg >oÅL ÓÊÆàA|VP(‡^üØÐŒ:â~X”Iýfì¨PH,ïó2‘p¿ _†Ë8iµ¼züîúÎ^™±UöÉ$dí×eZû éÖmBБy»lÛ´í¾\Ö¡áÈÒ]ÖiÀîR…Ù(€íGÃcV³í—}ŸW1d^/ݰ.c»mˆö6Ïí<]ºq(€áÒÏ;#ªYÝeì†nköÀ!±üœg9…,•ïÛe^¡¨¬íæj_;ª9Bº˜ÐŽÓzÖm•XÌ»¸hg7óÞ@ä e’¨éÊ1Íœ!<à‡ÖõÈÒŒ*ˆi‡ ,óX. LŽ<yyþ’¦µ\BތӌÖ÷ZÅ (óÞ\0f¼Á8Ê¢¯’,Â" 陨C—‘ä»Gß¶ìißP…y¶cE|›°>1k¢ÂËž†þ¶Ëx™—n˜[65 4CYÊnFÖò<¸É0cëÈÄúWš•idŽcÆÜtX«HÞY³žŒQ\@…%I.¤xP5bäÖ^žiÆU*4ó'Î%ÍB>7ö«£Âl„vÜP¿;:N2hNYl; Nó¤øÓ”˜Pˆ0żD¥¦9rLؾïÒædHE¥ÏRt#áØN«3³ˆ;—\L³l?b1—ešç¾Ù–Kß„Bxm +±G¯§ þ9,VùcÌ“'WLpáÏ7nƒ+š‡6o—u]å®°\vì4^§Ì"bê)~ á.¼>¶<Ï *á‰#ßð;öë·’w×ú<Žà¾pLƒñN¢cû²Èlètà0ìÇ<â2šp²1 S½ ƒŽ -„øÎrÝ1ã*^ ^‚þé÷4KÂ1"äË€,9êÄêðF“œBMrIJ£–Ê‹##9ï,{ö“°rGF|Ü{ø€óï £È•iâÍÝÀޮ»ÔÕQ’YÙa‹Dû¾ló§0,˜PdPÞvéqC: 8> ++Dl˰RKÆïø°Sí¥ÃÍ): è G±@Ïq$ ŠÁ`Ÿe¢=DX‰aIß`Ax“¾[ÞÓê(Û³o¤ýÜ)zÉÉœRš{û™Dœ·)Ü´Ï…0‚ì k† ,æX +¼oDüŠ\ŠØ¤ˆå‹InŠ"_‘šaRcî5©Oø>‘*› Sû/âjw&KÒs&fØÔ˜{ƒÔû¾H3­_Dê!5Ö…¢öÔ˜{&õóòÒ¦N‚p¡é$wE‰Z'Úg¿yû_ß}gé•ç£RÞAy1‹RŠ•TGÂO%€€~VI¾•þððþÕÃO>’×¾#•'³ç¿>î²ó¯û¶oý#6‚…,—?U<ÝW’a5…ožÚ'S~˜•êACPlª–~åèHm&ìØ””jBŽõÓ´÷>㆕¬`Û6r¡† ³è±ÅœTYœã ×·¦Rá LÑÝNŽU&2™Ð¥° +º##SòUÑ*cj+V°×1»©fËÖª6òDF¦äžØ[„#"’ n{Ž–_³±î 2;6Ž=žÂFô +•P „ƒ¹NrœÔ<¹wUe&ì¨-rE±‘J/Nª@Ü£e_Ÿ'}Im¦&B¯ƒ²mëp.Î|ÿ?oÞ=´Å3Ü1êÇòA<ù>©¼×…á„õù‡ß¿üá¡`5Y¶ŠÂ“U0 +Ó¼~Le°©KžF§|‡°‰}ÙœTð"ó)¿>¶ñëØëÀc0¿3Ssµãi_Ø“gN±WO`¹ hGå Ÿ’AÂ?›ûññ$Bä:Ýp‚Ak†5¤jiûÜ +v(D¡q¨òÞüêEmgìZ7SRvÔ{Áß~ÒÞÀ+U> +Cà;BGíïˆ÷›—¯^?! +Ô Î2ÁަuºQD!DïXiÙŠÁÖ +7Rö½£%úõ±üšÎÞS½,¢ ó/–÷„#¬L–@Yˆw­>•ÕWÎyœ9û!Œ½ ËÆ>°å’òÓGX—õ6ÊVT[1g$)SÖ»åUíKº V…£_ψÿíáÕoúøáå‡7?¾+j}C>tGùÜ”¿Ñ›ùŒû95Î +žîƒ¿ÔJ"CÏ)SX½“óÇk]f +ºãǎзª.«N,mÓTb©•lY~0@ì!»F¼Òi*«>é D*©¡-dÕ”§²±\!ž\?9qÜîi*”~†$ÝÆÉ Ð*z/V”\ñųŠþzl„h¢bÁvÅ2’Ù©‰ ! „T°°H‹ xªã<Èz’ IWû¼Ô-¢`U·ÇÖél¦6îi52øóÔÏàÂ,ÁÞÉÑ’ õׯI08|ìED\ªØ H‚±›!Â“Š˜Ó¤Oî{Æ¿Û"‰Œš*P²ˆCÀ<â°mǧIŸØ­„lãÑbå•~æ„ ›Í*`i`Oý[鬪‰D£G“¶…MÎT–> ‰¢ó´OnÜ—oF*ÒÊž¹îI N5ã´P@^WÉÓªÍ7wÌÏÌVˆt¸Ë7?Ú–ÃTü–igB5¨ôÎØ¡š,ØçƒTrU”H$ºRØ’€ JÔÉÖk§ŸgëŽÂgO\7–èW¤`e:HLÅ6ÐWäÍÔ8´$…¿ ùõÍÙÚˆ¹.]ÄË·ÄT°6µúw³4‡œïu5Bq`ãM¿¸L±ôÙÙUáDù7Å +}.Sü;^í?>¼ÿÇÿݘyé ¸áD£û/¥Ý;¨DB F­=¦N’E bSóÑÊy©ÎgKù{§èc™ÊF<‚ëRäDÙMsQ’Ë2vÉWzÒ`¸„“ŸTó œ°­8¡{·H$¡Ÿ7R4x$ÖÆ)l(ˆVœM(˜¤<ç89»9ªÛwª–ØS0¯ S¿Rõ;Õ-ß©Þ ¸“ÿR„;)¦%<Œƒ°ÜátD>NG.-O´íÉ~Jt?/³¯ã jÀX +zJ½Â~L?¾mŸ½à*•JÀ³¿ýØþËÃ_Ðõ‡—ùNõÕkÝw" +ºñ,ת½]´ÿ¹ù–+÷x×~w/¬æ° Yu7Çyt©9­•’ð:"Ï{l6¡ÝÜÏËŽÄÜ +}ÊÏ/ªˆ§ÿ)†kûB[y·f–Æ¢E0Ý“%~YD`:°öõ(i9..ÅÀ¥"9Ñͳ²0îU(%jUîU£¿AèSÈóo¸g ¦Qi=jÔ1/Aà“A´^E*žF‰öŒ‹ ;sˆŠ»Ñ@í_·‡‰öL©Tn:Å+ ‹Ó@²Ô‰ïÀ2¥Ä8£¸\v¤3HµgBSã{áL††9÷â<íi^K!.ñX´g\”'ò‰Å¨8U§iˆ³wJ‹„äÝ4Ó)*If€hÏ’Ñ5çLÈmp¯‚œå½â{ŒR„©<áÛ'•«Æ¤;TÆ,:ŠÚãªÅ÷€a¬Ð'Ó€Áát†DQg(È.\¯˜—.˜#ØŠ6™îŒ¤ƒ1¹dõy‹„‹æŸgš2rw­ ›— /‰[Óziå2»õÐ…VL¸ˆ,mœC¬ÐØ v¸¥DµDZ1í†`›Z¢*í™ÃäÒÜiÏœ,cÏÜ« ‰Ç†ÉÆÀ«|†Ë`ÐŽ<$Ý \HíºàBÖ’îT4H&Mw€%J‘[Ó1vÄt‡ËP„;íYñ ñÝB}í9Cà•s¯@2E{šÇ¨|¢ÝqʼnÅ( +E‰3ACuöAiHHÞ ’åR”÷l2ê²æœ)éÜ« gy¯ø£RÒ8R:ú Ò^UfÅ×гGê­Ü;`b±QŒ²ÃºÒu²4›—-Â@Þa£ 2Yk W~XÂ^,C²•2LiŒÛ²Ê¾Õ~ÅqݰŒÙ¯®+¿â”V–8零ֺ”µÎ6]¦Î`É?÷*Hæq@4Ï5(Ï#ëRõûèW$|¶ë˜)ca6ˆûÁ~±"J0JÝK +rö+fžl”{ÜÉ~LÉOSìÊþÚVù•s¿R ùT*£¡ò+Aiø•ØMø•Ø3Òg~Åøž9Ü« gy¯øî£¬rq'«\8£“ FÇjœÉ‚i;ÌN‡.¶tp„Ò¤˜-H(86V +S™5®&w&˜˜+grÃ츹:›&´¹8“˜W9“»6‡ªŽd“)Ì2T†õäLd­µÙ3Ñô®e…)†Ü9S…s¯¸‰àq¸®®ü,FdÍÖt.¶Ÿ†v:d²ÂT4HŽ”"ÒRv˜]ã"[mçUœÉ‚µ6첚{@2÷| ˜Â™8 gR`~b$;§!iarh‚%·'åĵCÛMHQì¹’5JF{-£‰{&‘i7ÎãÚŠïK΄e’yW$-nJÎÎØÙ™ë$.ÆÌiL†U OŽãÉ™`u¯œ +g¢îW$—|9ÐÏu’å7 •3qX:‚eÇUœIŒr“©1WΘéFq&y7U’’÷ÎD‰™s&Ì}p¯‚$’”|ÂI +µ¼£3!…J|QjO¾JRtedºIŠÊpÒ„² ggâé[S’”Hû²3‰¤¯v&>ï¤xrXNÌq•Su*g29¥áL´Cí¦JRòžIŠs¦H¤s¯‚œå]çuv0JRî8ZaÎϳRL<;:Žãuv&T/ÎH)âìLºd¢ÝT¬@®œ °dÔ°#21â™I@Ü€i=冎¹À’9¬p¹É,4Ã*ØÉ™ønÜ™ÐZyíL‚3á‚{ijõìÄ+?‹íARw´ f…)“3. âÁ™ÐM´;AÎÎä*g£}v&$œI gR`Ù™T¸ò©B§Ó€4DVꔆ„ønÜ™€)ï¹r&Á™p +Á½ +r–÷Šï1*;“\ñÂÑ/×ëR‚sWRÍ(Wlò¨&Ê]>Í«] éù:êÅ.@œ’Z4s‰òÝÆõ¿¤jñäÿÒ¤õÒKbô„•¢ròIIk0h¥< uÕ5u8LCñ±i$—cYÜ”; JŽ"0W¸¨)ÒÛ*@.pà…QZ^EñÊaÐîåŸ Ä‹WyT³"Y)AÂ͹ñ]h|–(EFSL•w¦\¼R£=‹ïž›™1Úkˆq¹“x¬s.£ÒYˆï‹+?Õ !Ÿ½árJ³„سÃs)Š=Ã4—µàŒ´&Ñ¥?—Ñ౩ùî°SñªèQÔ®2ÈJ(9ÛðQQŸq€y|Y¢Z¯sªQt?ÅïòÉEÀÈÚ‚¸ÙqÁ˜äÜE Ù*3¸yLvèr˜¯k«ç.ÂÛ‰EË F±¯y ÅçZUXéRªdÖÞ+UMäüÍU½ÄAU™ÊAQ¥Êìc.RÈþ)ª:€ÌEDáÇ·ªØ&Ñ@ò¨ò‰â hY>‚î¨ä—«êTq1*»ˆ”O›äËÅË.±ß&·õm+\Ü¢*UÙú8 âq}VI*LU’ +˜J#É!*Yý¼ð‚Ä$"êJm£ˆÊKRrÉE`8.â`rÂEóâ."CˆÛŠ‹ˆQÙEȽ˜BV¹ˆ’I¢\ÅE0*9³bT}7nxKIª˜gçLfݹG†—F)I9¤*Ĩº$åã¼ðRá"$?»ˆ(â—¹/ô°Ãäð(ôä¾ÚsÂE Æ=‡€)\„È%óY@»—·Â©Wì"œä*…œ½SŠde )»ÁÂ[ %)˜ÙE8gj,d4g!µ5ß]’“‹PSÁ—=¡¡Ç)_ë£.<#ôÞ”ü„†®‚_þôSn"øñïoÞ¾ü@Wki ¸“é{!éEˆy‡¨êy÷xnàüûËWJëËçá” šxš4aœ‚#Nè>4?Ð]óñáçšòh€¹jÄ%§´Ø#|oξùÿ‰¶Ühºöv,LZé×”2ë1@Õ«]=Ä/sÕ––ÆE»„¾Çðñy´Nš ŽœÊ<ÑÕyìSþÃûï¾kíiüWw£ÂœO¿…WC ‘x±H·åJ±ƒâõžö:EV=JçuïÒ*ÖæX™FˆNk­?B¥‡†jA&Ò˜ú.iÇéÑé¦çé6éN,ÓÔÕI—zÁ€X>Ï +µXBÝP¿ÚxMçŸ/_AÎ{{ú%|£ömc†UÅÖÔK +ƒÄ øO6EkãT˜œ#˜†7â¥}*"k_¥.4ϼÔëcoÌ3„¦T1C5Ó4ÆÚ²Ä Õ¡ò Á²çõc^X4’ j8„ûe,_ AdšG,§6&) ]õ[x½P+oáYDÉB„i·&uzÓh!¢_Ýív^÷6Bž°ñÖ -ó8©Á^‚ÓbA³²Zù±¨ú*²¥„­†°8 Š4\ú,:¦hUÓbŽº@òò JÓ +‘<­ËȹÆàÙ_w’Ö¯ç½=ñ²uÆì‹Øz–ihÃ"*#ä7v> QAèß{ºÝ|Ö“ÐyE•yýMj'pg¤{´bÍc„&ênâC= æ'FLŽº@òòM™çDj1GΪ=]…yuœÿžv ï Ùh$Ÿx(Bê½’œÄÚrL+¢LÃlO†sììk21¶bŒ%’ ãÒrØTÒQ4Z»Úï@C\¡j´Œ{SÍcC:^^>;ö€=õ]Í+tê {ƒx™ ñÈTóþž”˜Áµ‰ M>d ÎîXdÆá€CÈ%ù6†1Qý‘¼›ÇAðb_Íž|ýE]Ÿ°7É¥mbF ;ÚÔaæP̰'dÂ>qK/˜0ËæHø‚Ež—éÔzŽ]…zN2(ÀeˆÄè¸?· TøžxßëJ®£­“¦ú ÚDuD<÷íœÚ´"¡;YES:GË<Èäµ–z‰zŠ÷|×L5í|p¥WDIdÕT,>F@óèyä# ˜žÀ €[mÍÓT¬—±Ë@õêLöõã÷óÞîˆjcЛ¡j(õuèêxÄôùÔ‚L7 ¿xŽ˜Gæ9îãª4œüÔ¡°`PhFä+>p^@¹Åõlj–ÄjCžÅ=ãî¦@b}5Û<§Ró9öj“FÆòÈ4bÑòÞž|¯e±â"ŽBXAØÑIåéxâ©R›<ÔprÂ- Ø ™UÞìgn|¶e;"74CÑøÛÂÃg§&4ëT´Eiã£:!}"CT ‡O¼°·3UyÝÞ£ÂQ õ@á¯1ã±L¢""VoÙî¹äK,Ë#=YO=©Áä';FbE_}zQr5ê£gûÞ+¾R‘– Újz øfND5²Ì+læ0ô¸óz¶øû‰÷¬åíýÕ;”biÄÔž;¤—lÂï°Ö„¢êŽ „eÈ;0=jPÁ’W3ÒnLfÜ¡B7æk—éB¬ôdBßI­ŠñÑ ôΡÀê7 y6ôjÞÁÎÁs+{ýDMü¢öxûãíêÕ[AUïs»:ÔÇÄÿ;osàvðfû³_½ü@ŸúsN~÷ñ‘'Ö±>ÔßèÊýêí'úÕí&o¬;ÂȧºhµïÌì8O>F¥o¢d˜vœa2%„•z|´ú\‡™ˆèp>;1âÚŠgø„6HÛȃ +¯“IÕå+]\ÆUçVÀjRÒi0Ÿ«ò¹`µLØG¿ìE+'GJb ¸|V'Eè¿°$¢'§†UÞ‹¤ú6Öá ±²SNtöv¡åÙ¯ÿñîåÛ7¯Z£ù곊FˆîÐ8Uç¹&ªÒ¿ô8«ùúüA þdO‹;‹cŽ3Óã¬éæã¬êuññ{w¼?ªÝVúÛ”ìîd½‰ó‹· _q¤a_q|þáá§v*S41’®ï=yIOö¢wÒúwýØŒdàDùS~*}š–63ßÜŒc«Þ7æü?㻪DÑðP‰Ú‘Zÿ €o;ðݽ ¹Í–ìÈ)Uûm¦0l”\™L¼ŽQ ¦`ؾ®0S„[³?é@+ÚT·€6ÑKiXKê³m¢—%ùPQZ²‚é{¾Uâ ÍÎôÆ‘Ë!Ž¡æf&ÑߢâBҿñ?­~gŒ›^èÈÌÛ‡ŸÊX7PŽE’>ƒHò…äP)Ô³ã(+uþãÿnË[ô +endstream +endobj +582 0 obj +<< /BaseFont /XKEAZI+LibertineMathMI5 /FirstChar 56 /FontDescriptor 650 0 R /LastChar 56 /Subtype /Type1 /ToUnicode 651 0 R /Type /Font /Widths 652 0 R >> +endobj +583 0 obj +<< /BaseFont /ZGUGQH+Inconsolatazi4-Regular /Encoding 653 0 R /FirstChar 46 /FontDescriptor 654 0 R /LastChar 121 /Subtype /Type1 /ToUnicode 655 0 R /Type /Font /Widths 656 0 R >> +endobj +584 0 obj +<< /BBox [ 0 0 424.8 172.8 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/hnsw_visit_count_per_degree_corrected.pdf) /PTEX.InfoDict 657 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> >> /Font << /F1 658 0 R /F2 659 0 R /F3 660 0 R /F4 661 0 R /F5 662 0 R >> /Pattern << >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 1358 >> +stream +xœ½XMoÜ6-zÔ¯àq}=3$‡ÃcÒ4r(šÆhMMâ¸ìM‚ý÷}Ô®W¤"£2P,‚uvŸ¤y|Ô|<éüÉåß×o.zöØ}÷r8Ÿ½ù4°{Ï•#÷Ÿ/ŽÝ3|®r#¹Û!JôV¿Þ¾rü½Áñ»o ûáü.ú„φ ¾˜vÁ<ç’¬Ô8œ½6ÈÍaMø{3_tLQÿrœŠ©…ãõf™ ¿È+g-ijcÉ> +Ef–"îã¥ûÅýéÎ 6°OGG³ÆL©`¥CŠ^,0Çn­9ûÙ:7-Z| %JßDhP,þñðÂý?˰¯ëË·à•4q¿ÕLÙ±ný ³Oˆcu©sŒ=‘œé‹”BÖ+k0SI½‚Næc±H¹Âs>•„(^RÔçPMãÌB"½„VóÄ©æÓM¤…O%!Ïši‘G%y + 9ßK˜a”D°”¸Ök¤…O$Aˆ|!BôN‚ e°pŸH l¨ß¨¥Ôín‚´ð©$ò"!–ÔKH(Pá>‘Ø +êv_¶MŒ=•€ʨVú4B{ôDI©ôf¸ å‹q˜dc4詘y„€€þ‰Ñϯfb\¨l: ;Féð‰Œ€%¨õi"{4ÿH}50SÀËF6‰;FéðS‰ØÏ"2éEdhN¹ô©ÔÀÌä-áŸLâŽQ:üT"²zÌ¢˜ûtŠè2˜V\vh†¹A <‰;Fé𣈽Áóº‚oƒ‡ƒ'ûR}XEUL‰9tKhÐèõnˆÇîËðøb8ÊÎ|Q9YÉîâÝ0qGl)v";4Ð\°©¤!DwñvØñÏÜÅûáû‹aZ€1ÐdµtÔ º™ºTÊ9†BÂ+Ôi,=5´!«‹¨ö­7“3Tδ¤jkÂiä…tFsFb!NÏßÀÛùa Ãß`÷ÑìWøÓÈKýè­”ògt;;¦ºEÑ"ÌIWØ…FY¨ÇLò*%¦ÜÏÞÌ/è ¬øi8y…=²Ð.èh%‰¥~ï[x;;Æi´ë­q…?Жê±c’{ëzÛ¢ÛÙQrƘ#ázרÓêºH*M¨oœ ¼–[2n~X˼Hc\¨Ç@„‡íÝp oæ¯3(¦¢9 Ñ5þ4Æ¥~ìŒÛ’~F·³cxd ”ëm[k:4¦¥x4ª¤ÅÂbóx;=L4“ƒ¦ k©—Ò˜ŽâA0ä¢RÎÂu*ߢ^¦ÔŒ0£\@Tj_Ýî‡o/Ï܈žŽÖnË—îž\^áôRJ*˜Åí>^â¼ßÜÅóFïêƒ~-Y<;÷ZWE1ð‘S¢;Ž -b_žÈ±lZåŽÛ|G«â#¶¬¥Á‡Ñ¦:d°IÐeßXï¡5õõNInigða´Õ›EÍ\MûÔÓî¡,Œ¢iËÛ #®¯`l¢)žåò¾ŸÜÇðÄWÐ{æ} sàêñ%L”©ŽïãEÙÔ-LhË;£äMxöÎ n7+ÆÀTDÿU@O52¬×çöDšRF!EÅ$ålŠÐØ»[œG‡‚úùúÓõ畊úñã‡×¿¿¾¾¹þüÏÊÑW»Cq?•Í«¨~† dEt)n–±ûvÒuþ4lêÓLεò0¥šXL‡`Ñ!cpÛ‹¬éca¸²á)Ap :–l˜´‚ÖÑîÎî›C¤´9R½ÕÈ‚om$=DÚ~Ë&ó…Ú&˜)ø¸&Ö«³»,÷|ÿtòÐý{ÒÕf÷Õ[ËáåWo:oo:qÊÆ7¤í™û«Wb½þúl§ +endstream +endobj +585 0 obj +<< /BBox [ 0 0 1996.0275 438.448 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/main_exp_fig_1.pdf) /PTEX.InfoDict 663 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA .7 /Type /ExtGState /ca 1 >> /A3 << /CA 1 /Type /ExtGState /ca 1 >> /A4 << /CA .85 /Type /ExtGState /ca .85 >> /A5 << /CA .7 /Type /ExtGState /ca .7 >> /A6 << /CA .8 /Type /ExtGState /ca .8 >> >> /Font << /F1 664 0 R /F2 665 0 R /F3 666 0 R >> /Pattern << >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 9284 >> +stream +xœí]M“$·qõ¹E_±<°ˆïƒ¤%­Ì°i‘ܰ”ŒÕЦ<+Ê$%…ýëýº»‰.Ì,—ݳ½³CÎd¡€üB"QõõÑ/_ýýÛ—¯¾xþÉþ_¾Ü}ÔÿzùÃÎîÿŒŸoöfÿgüüco÷ÏñóÍÎà¯×;[kZŒË¡:ü}§þ¾,!Pøý¿v»?í>ú]ü€;žïvWLu%ìSZJ0ÁtC]j.6zA¾“d—ín´ ÷N¹ ö?ûÓUC²k9…œ÷!²})©¦jq» KvøÓ§h÷ß¿Úÿnÿ—ýG;²kwPÁ’ „¯önqx©iÿˆñGü­Éä<44èЖ¥úhƒU2 +²âz÷åîóýÿ`Tß”´ØýÃøùÇáÏçGêî“»~ÛýR­ñ>9_íþÅŸv5,.Uï³ Þî}]Š !TcCØ¿øãî™5ì_ü÷º½MKöÙòÖRx¯‹µZWÐþ,)§’½©ÝøOÇûìù}Ö/Ææâ)Q…RÚ8­ù¯^4.czäÛ™Á»Ø š2ƒ _Ú ¶@'®J2þ>;lèó^;˜›R,Ä à¬x­ØN¾´b]Š‹Ë9טr.©Ø›òXôµ¤BÔÁQ/­Xò]Ž)Å /¨XwKŠ ³úà\TŠäK+6¸ºÀa’ƒ¯ þ–=ôP<Ò½œwò¥­cÆaMq—á¤×62bXXªIÉ šŸ‚[ð§ŽâìÁG4¡¦)3{øjÿìß¾þñÕ_^þïû­– +®¬ó&äý³ß?ûá÷|•¾øôVlד(hd‰`ZQ©˜ ÿtÛùhã1'¬ƒR\å¨f1Ùa-.«íÌ/nÉ»…†ªY<üÙÙAC~ »g«OSèVoVE.bb̧U$èWPÞI&2Ä<¨È Í:1ðC ñ0Ë Ы{LÚ‚xâ1ï¡¿¯Û¶}rnÿöûïþúÝ÷˜Úˆ9œÙ×Ý?ûñÛïþòõ]Ÿò> ÑOqÿìËoÿE)µDW tñìÕ»?ì.­§,tЧY25ÚÔ)/î 9äí)âk✅Nm²}6©$L̰X!¸³Ö.‰z«šŽ½Ö'—•œ¡mB6žC:þËÅÄRÀ(,ôý¹xý¾Ý}÷íš(Ù§b*œ‰ëñ¬CŠ­EÒï=a9Ñ»|TÉ©I¿´J,õP‹ñ/‘ò˜È…¶,çz¸¿1…‹¯Ñú<ïíâLŠÌ”ð‚®…ïý\SxØ5»£ M#ÈöêÊ–?¬Ww÷Ý• @^ ‡TTcƒJ]©Dôse•\}ŠpÅ/!œä zkO^©èòn[,nb8ƒ½©àÌzlW¢ÍÈ«œÅp&9¬ï/ÑGÛkDw‡ä !¼­ûˆ–ËEÑÄu8vÑéŽb1{ßËŽr´#o Ä-ÌcŸkë¢ó »!þ¥À»|®Ë'´á$..0':Ñ­ýâ‘ÌÕ1Â-ü/áºfÃÖ%ù@öÏvS<;Q†ÝÒœèW(Yp¡LÒYöÒ™M]ÁÅm=ìÂ*¬4º3’÷l²Õ"Âe,ö%jwN\Â3wßÚË‚uÞ8¯Ý¹(ÜY•;wºtçÞ±pçÎ…vçγtç.ŸtP1œrç¼8ăuk VÒ•“-à¿fçCUþ¼)ŸhÃn©Nô+ý¹s¡ý¹ó,ºËg6µqM‡~Œ… ¹[î4º¹ÇŽ5^žjõCÐ.ØVG´½Z2ØÂ&¥ÿÐ즒DiWA—^Þ;^Þ¹Ð^Þy–^¾Š'ÜVèB;yY¼lE;y\r,>h÷ØxLŸÑDZ“AmTÌv›Ò¹‰.Ü–âD¿ÒÇ;ÚÇW–¥‹wé̦.®ìâ×NLÐŽ›«±=©±=Z‹ÌÕ¨ó#[ãýô­ö ûÛ;3io'í­lï&íí¤½}¸½™´—üßô2L%îØÃ`<,^Gº6FØjOúƒíµ²D{;i¯Œá'íý¤½{¸½™´¿¦ñaÉq1‚UÌ:˜4™]›(mµ=?Ø^«P´·“öÊDiÒ>NÚLJۛIû+›ôê!–‹oHä_›4€-,%n ¥î vÆ!`én*± ÌTÝ=ôЬÕðסŸ ]ÏÒ•Ï)]õã'ãú Ÿ²A¿í»P°=ŒWqŸá,”®ôÁHÈ´"ƒÔ=te$ÑÏ„®ŒÔùœÒµ‘&ãú Ÿ²Ÿ+ïQB,2䀥ގ!6!íåÓçÁ¤®U’ý‚ŸÒ¶µ3ºT­ìgB×!såsJWýÄɸq§ìçº&½rˆ Îò=DHa_Ú[Q"g^ï‚]Éi%ßí‚ß$ßr"î‹ÏGkѺ•¬ ›ä÷oª$%•ìœ;®d%vÞ$¿îÜVèZ0¾Ý—¼8 –b[s°Ÿµ|'˜±’æö¢žs× f'MÔ&Õ¹ÏhàJ ©µF‡ 6~ŸJƒˆñ±t™Ç1 ¢ÚÖ%#–À1U¿1CTçÀEÆNÙUØD’oy®µ%9dè/ií#ŒòáaŠƒ„~)ÕâŸ&G¾ÞK9W­&LMȃh,UÚTêOaA{“ƒl ×vÌ{ÝoªÃg3rl!À¼ùªê„EÛó9‹GŒÊ(\!û0̉–ÂG8ŠŠ”c¸´Ö]­KŠ…u»žÅxÒ& 1ö/|ç,ÚòáR0˜šª_Og¼f¢=s‚QÒ¶IޝðÝþÓ=,ûëû>@âƒ&øÝÝ—Û@à×S 0îøI€bÕ^ôtï}ðåO …nPBÌþ‹6º•“ÑË’ah›šÑá+Ö‚Vò]ó…3²7éD¬f‹NÄ—;A¶Ö/¶dã~#èùDÃñ ûJ5Ô—RA?$gçtF•š7©^ö½Ò»8wмŠ.ÆëJÚÔóñqæÑ†ùþ*Y­t žð |ÓÀG¯˜¶Õ7l×Ú³K…ð"9JÁ$Œ Tòûþ‡¨ä[Ù†«Œ¨1oâ-b8f_ç|ô-WËxöÙç—ôøÃJóiS?„°rÏ…½’G&@ò-IÁɇ·.+<öNȱ?Š‹‡—#¶xGˆ?ò¸œÆv&ÃÁó-yM|@`‘$P±Lt±'©f×è¼B›ýa­€„j‚«†@>¿Àœ±°Vê{èÚ0ĦtÜDØCB›Û» +°Œ¡¡ÙWs!åÄ×f‘¸N,(ìÁB£°3ß ÁG}†²Jã®.¦åø®á ¹6£X<¨|'ìl*ŠG†‘#×'>°èIÕˉR죊ݿÀ;wP1JÔ5ÁÄôc¶bÌ’“©yÿ¡úKµ |ÛPøÌß{WvÜ biFæ`3¬ÖMÏ>yõ㯾?yÞ±BCV~˜cåÇ.æöR&ëˆl1§—ÈDÆ×NUA´wq^¯A5®sNÔ·„±íÿo‹c­ÜŠ 9-zéä‹ãX3_ï@pSr·R³ñÎ ‘ +6GÆú¨ !È—6D"¬šGDb®V´ñÎ5‹ÀˆÔÛæ(5+È—ÖlÆv 9&¶ƒ&\T±·å²%Äé”VëJ¼´R‹Ë\ÄWƒEêZï\«•àKdYÑ òÅ‹èL]˜I¤È®U²ñÎ5‹m!EãÞnXÑ;ýâºE¦‡¼1"©u÷.v¯Ú@¦‰LI=ã›­Ÿ[µñÎÍ×s)U¶Ñ3¯±jCÜ «Ä CƒÈÖ$¦_ävþ è%ìš{½9–=!Ù­ØU³#±ì‰€¯œKu³ž˜&N°ì—âêÏ^S›¬5pî„­OrÖÆË.é£,ºÙ„._J#—zò¹k²c×— +·çƒðž÷E§•r§èJxÑÏU¥„ ›mdZ.×Q'‰O\SBЕND?×ÖÉÕçˆmÄj5.kVúÌ¥HÐ׎#XnÖ%®>6¥X5 +/9> ·,˜½äú€+¼O +OÒ;rPv¼‚ %‘(XîðE)]G:J]H\$c¨©>&ݘƒÔ\½êØ’ŸÝ€ANÊ`ùhØä•e³)™èÂl)Nô+t,¸P< ûuñ̦.6q‘7õø¼aÇ_Æ¢Ìg?Ê—#–·Cé’tf(Ã"uÊçÎÌg|>©ù0žrå#ipäU»ñ©KáÆ}|íÆ[íÇ'É´¼"ŸêèÆÂØÑK¶Þ»s7FVh’ÜøL6³©s®.Ñ£vàÓø£Ÿ¸Õ|’Ìlháªþû(ë–m¯ÀBý¦1Qš›…RBÖn]kG·ö-~ø¢°ëÉ÷»¥$QUÐ…ˆŽ…sw.´swž¥s¯â ºÐÞ]g¬±º5vJ 6ŽÚ¹aMÎ$;:·ãÆ([‰]OvS:;Ñ…ÝRœèWºxçB»øÊ²ôð.ÙÔŵ}üêyß'ùÀ> +É•?Ñx4›­ö ÛÛ+pªlo'í%bKò#Û þUûTno&í7Á²7¹îfæSȈ­¬‡©x¤kkø­ö¤?Ø^[O´·“öÊznÒÞMÚÛ‡Û›Iû«ZïV¬³`Îg3Ú\éÚFq«=èéÁöZ‡¢½´W6Š“öaÒ><ÜÞLÚ_ۦ׎²™'`©ÐÙ²4*{¬¿C0]é +Vš¹§ÊÁØp]ÀVU?ºžv'6gdÕ‹™Œj&\Šn¶°²7aãb?Ÿ™Ù¢ZòaŒ¤+] ï¡ò¼±÷Ð¥e?ºŽ°+ŸSú™ lk'|Ê~®i½Çˆ°Ðy%Xm´i`]¾/cA‚ kD¬FŽo(ï¡KÝÊ~&te»Îç”®}c2®Ÿð)û¹²M¯a‘çcãJÄ”D9—z¢J4sµ[Ô›Cõ¸µòZ¾jW²Ðo’ßéZ#Ù¹ U 5¬d%wÚ$¿‡îŒp[Ø/c¾K¬nÆnÚ'Ÿ­Fåf¾˜ŒŽåŠÌ]6¶½^ƒj3O܈ÅP+W (ÁºLô­¾%°‰Ãb}{Æ ú , +‰&jtw‹>Æ—m¬î-ζ†ñÆ´Z©}ð°íyK²­ÎøÌ2³€øªµäŒŠD?‹ñ”òù.iyJª-"»I‘ZuË,½X>bVL¾n4Ñ×ëªÿ1VíR—TC¨º¦Ó\…0z]†ãÂó4.Ï~!’Ö^¡ëbÊš1 ²Jet56Éš‚\ùÌÌX§k + +–ULö\.ª[R +ÑOj +ÞÀ¾~œw_nâ"_Ïp‘êeûÃèJýn^¢×çý?^ç:™\€×¡/,àήÀëô„3rƯGbGpK¢¯ ²¯+ú +%à عàM×…( +¼žyÔ=óø5oR½ì{¥Kðº$wÑûxBI[z¾x}í™Ø{Ið:Ñ6Å;¾Ã8îµöâƒÃ>™/ö5X¬ŸñÄù‡É!ÛÅ.êÙ·ÿöëÏ?¾8’ÆV¥êÎÌ…<·³µÔ½Ð]Rä‹Ñu¯àm@V¨{5Ø¢±ÔÌi¨{…OʬÉë^‰S‡¨­(wźƒaXÆ@D‰u/,¼Œ¿ +êŽtyÁÒBHwǺ³ïe)ë^Û  ׎+X÷ÛÏ:#u'´-@–ãéQG¬{åY%Á“Žu¯L%§ùUbÝ·µú.±î¥2o²%Öc½Ö>‘9ëU<Æ‚‰åÕ¸ï.è*òÊŽ¶1eÝá»bÂæÆ‡añéô‹‘o剳¾Ü0öcâÞoÀ–'•€I£Ï(—ô‹ƒ'Z"´a‹Mº(äÕܘvY“ŒM`çµ _\»í,¶¥ø”îý,ÇÏÀ߀v=3DÝ1ëô‹k—ÕŽXB„Ìñz@øÐ.+ælbś֮ _^»Ø—ì*°c.ñz`ø[Ð.$E*^†Ò/I¿¸v:DÜÅ¿ +o™¼a%tÈ/ýðð7`A‘jiH¼HÎFP¼ºIÁâåM0^%u +/ÓÀ pü%”ô“Ññ\Þyþc-< +Rõ~o}q<ìû€d"QÁÛù Jòç½co1ãp¼· „>~§/è3Ï׎6!ÑSÊE°ZžKŽm«‡ûž+€Ï1õAøwú €ÞÕuUðÇåò@`ˆâø `PŒ‡Ï»vNö ˜~aPLïêꊹþ„ñ.•‚F]R1|EWôùï¶=yrí¼^q-Ý(¦|84X]K5òyBÐGÀcÕ[‡'™Kª:'Z\ÇJ‹ÎÅÔ‚}»à]œý+%uRR1¦b†Ñ|Ö§ótiäNÉTÝ;›ÀµÆS¼`b4‡#‡;ïn[P7SŒÛÔ£è[*½³¢m$8—6ršm½lÂ4o56‚ï˜M‹égžîø(,yzF–äý™§§`ùZêÜÓ£…ŒîÌÓOÃjO_©£§Ÿ. ž~ê\{ú‰—3O?ñ>xúIÒÁÓ×1GO¯¶ðÉá™§çày(Èèé•Ðà WG2›k]}KR7ÓŒÛT¤è{tõ#/ç¾~ä}ðõ“¤f[3×õõGY!M®&˜¼1ø<Ù—³P±Š˜x6JÂŽæ,ŽÀI³Gäõg3à4¬ž+uœ§ à 8u®gÀ‰—³pâ}˜'I‡°Ž©g€cŠÏélðÝ›)g3 [æ3¡Ôäql êfŠq›zì]þâäÌÿOœ+ÿïršm½\Ýÿ!×!Ú‹8…Ok›¦]!bAßhwØKÝß^!ne{;ioUû0iï'íýƒíͤý&øfðöŽ¢˜rf?º0dëŽf‘‡ïmØï°³;+Îîð³;üÜafw\×”²>1ËçÆë™ëéÂ`®¸uG»ðð£ûvvÇ`àÙav‡ƒ;Ì쎫ø0Ož‹µÆÑÀ„kÇc±;ö +KÛb§1Õ»rßÖÕ]Í. æZÙ_Ð]¹ÙànÆ®ìj ,|³ÁØ!y(Ñœ-¦žµ}ѶÃGFW>^8·å ÷е½DG³ ƒ½VfçÎìµ9¶›ð*;ºªg£ÀïÁù”ÝY f¶ñã7=ä…ш° ¶P&ÝwA©Xv5»0Xqew~a0ãlp7cWvum_9CH·ð í O/ç ¦]"½ùEŽ-úmÇ(pí—„½a*ƒ”u¥k)í&ý}œÂí5<¼µÄAvoWº–ÝoÒßGïæWA+1»  ÍÖâ¯ÂN4žßZüåxZès¾¢Ð$ú˜§FòM¹‰@.G•¸fÐyÏÖ­#‚¢Š†±óYÞ‚(cÜÀ +|6ǘ‡#Þo{RSظ€’íh‰¸8g¬ Ü[†£ú›Â} ü´Ì`¥0 ¼Rmt0Ì™bñUÂÊʈƒ!˜n#Œ¼T‹-—aMôu-ñ ½ãqÑóËÊ>í›s 2 …‡Étåâ‹(Ÿ)1ñS©Ê:9ª2q +™'Ÿxݺð[µŽ3Å%¤\göq6q¡f2SÞ°` + ¡< Ø„Œ¾žCF€Á›ÀOGL‚* ¸gœ‹0mìê ¢*ÀºvT:-ª,ôzN·„©¯¨¢2@ÒUi€¾°"õå˜Ö/YTÕR&U€>óÆ…€VrÞ&{Ù¿ K½kA *4¶©÷‹T ô®CÄâ~É2Ëϧð W7¹þ[Âÿ/ üÚFÿccàCnâðÇ`«T$þkq]0 =ž4s,°¾û„MzÕ,Êk¡3z]`=ü¾²4RÔXÙøW>YïEXìYÄBɺ *?ƒuè…˜ùk•…-2²¤+pú…ý‹®hÀ>k‚:ôÞò”ýÑ\@_ü.mi[,Y 0Ñð»,€¸ü&@ñ&Ö\.T ù‚4"Éj³*K•°V§‚±¤ëZÑѤ`má¢üdÉ#‚èN"a a@AvòÅA‘«mI99–ôÝJ%À»7E +ȱ½ŽúèkI¿¸1Úq[HÙ’GНW ðîµËã°ŒsZ»‚~qíò´‹^¡“R¯X ðîµ ¹‡{–H+í +úåµË9l+LŒ*»Z%À h—uØübÈP°%è×nÁ®,¹ÅS.üi·òãtÿ† +,A¿¸v+¿ Cv©ªttAÕŽÞ/Hû÷¾¥ŸwN?ïœ+?ïr*?CjßB²ië¡þ@::‹Äàxqpt¬˜Æ´¯†ŽÎ#£Mz’æmAóL1yS¢oåè—ÁÑ;ïÊÑ»¤f[3×õôÇXcÁÖ >Oý?ó#Á‡óH…ô•»š”‡ª‰X‘îzh7žù?ÜËd—Ç Ð‡•@PõèÔè '¼hŸ¼«Ð%U3@Œ©˜)^ÐæB¦³qG»ððZ•ò;»C™Kr¥ïp³;ìÜafw\ÝÀׯ„äÕPÝXÀIWõ³‰º^Ð]>Ût«á±W$ØWu5»0Ìà•ÝùÝU™ ^&쪮6‘Æ7Œ‰h´ÉŸ¼þÝÒÞÓ¦F‹ñATåyÌ÷\ÚT]Í.h‹uvç‹MW”)eWW5å£c$›¾&ä”gÁØ.&yÆ’qa°#ËS E¹‡®¬(;š]ëÊìüÂà)“±Í„WÙѵ{튀‚,Ó5ر‚‹—t"+´x)[äÛP–'¨FS°½d,+] YÍ&ý}œ»¶òvòíU);¿Ùp¤kÙý&ý}tmƈÀ—¹i¨8†Â뀘ßÓ!^2Ä‘^¹`7кÄ!ó+ê¬ðý}Pqæ¡ö-Stc, ðÛ4ðPûÕû‘~`Ðx¾>ÞÆ ßâ¤8ü>’÷¶ –@¢í½çÇš1¸‚ëP&À¸±Ü¦μ<:ÖHHÝöAµ%ÿ¢Uekmcʇ8tÍ—ö%¤±bß.pà'N>ð ¢jø²ÄÔìû`³¼ái2Zø–‚»s茨5ò;XZ‰Ü›ºè6PU©ô”‚U­ÅIiè¹ò´çƺ„ÌwEÙò›Y?«`† Á<‰ØÄŒ¾žcFŒÁ›àOGX‚*¸gœ‡‹ø’“+Èb€\0Å2Ò‚¬‹è"gôÓ:R ^Re1€ ëbu¡£òŘÃ/XÔÅB&] ÐâÉÙ…«WrÞ&{ÕÿzAHºÐBTjlKï—)è]‡‚…æ’ÅÜ–yÄF–Öñ±ób€ß|÷ã_¿ûq(¸@lœ ¨-عözKX ÚlT<ˆß° ?ª‚è ë/2ü8DŸ\J­u((±.PC{l. +J8T;§ +0 ²XuA’~(¡–* Ø ?DÐò÷‚€BÐQM‡·Í²  Dè7UïÒP@€ÒŸÃ{ˆ^PJ[*E'2w±ª(`[Ëï´( Ä„T"däoÆý„š€¤j–²Vð`bxÓÞ;¾`jÏeèH1ðà)ך”vÀ?q*g–zlÏ÷W‡G[Š g;´¦íÄlÂl:NP {á×ÈÔ˜™ +¡K ´—Jœ#ñn׎âg¾ßí™Ú‰q$õÀËN:±Kp§é]`1–ÐΦ–uØ3Í8Ïù®lÔÚóc{ˆ‡5¯tz\éí Í&½õ/¼s;Üñq\DRërmL$ëÙX"”â1Umëõ=çúw×@ºÖ™Xßyì´3s¦Ã­áÄ»çšqF¿StðÞé¢I+™Bû| ;ãÞ~K¦_~ûÃüÙgZ¬£H a¬´S="újÄã§Gù™NO0’tÙ†ñ‘Pd¡CÄŽaÈóHÞZ|‹´‰‡õÓYá*Ö²Ò¿Gc +¯‚ÛKâj`Þ¾’ùY]„Khaí3k 7bôÈo¾VWñ[ðWè¸ ÝÜåu¹îW¹V%t"¿_ù4–R¹CœåIà¢c‡ÆŠ¡ÙÀœ@œ…¨’g–oœ‰Ö‰J ‚ÜU&zÚ<(CŽ…Ù„tÒÄþðRyæye*` ý¸ÊïÇo8åo>ûòwÓ‰†Åk!V¯ªÝ’Ëe8Òy~ìiâpµÇÇ)åìæ÷!Øq&gíól#O1òC_¶åA]ˆ·3?˜É.gH[®† åÃ6©%neö¾ÁÌ-5Óž­ð<•ÄÝâB«­åGv +/€ŒÔÿÔ¹oÍœHš\–thM T¿xˆðaž**L^™¯3pkÔ0^Áí¥çD¼9t…¥öD ð®zl×ÇQÔOìr% + î4}XŒ%´³­å!Ãþ‰Ïâßè üÏß¼ßÝ.òmí‘M>ÒË.îÛ#wÿÉr_+è[uo`ÅpÿÉÈ·ç!,>L¤RC DÅtÀÜáw4ƒi*ª&î£]ä·u¼3¬ÝQÔu8vÑéø•›bì}EÇ¶íŠ …â{oÃcÔ™Iž-Vil¢ÑC/X!žMpÚéØÐ:IË?O¢ãP™ÍôIqx Aò<ÁHðŒ]׆x’j[ª“=w5K>¤M$ÓÝ‚B@eí-ßx‹´2Fw˜ è“'!ØÖRàÓú²ñ˯¿ÿæÕK –¡¯ïîþ¹Ä_ô…åÁ÷&óË|–·»ïnd¶™‡£Dìíõ,áW&sa¹ ¤—ÌG"¦™iUqiG^%D4m>‚T<M˜¯”u@ajE‘ôîF²çîr’é ‚éÕ™…xÂï…2Ô,á3®P4•¯³é@ÞÉn0 v€É,$"GJnª3œ6…KU¤Mʼnž…’Ê$‚iaÀ“xÊÒ[~ñ3¤òSæìÈÀÏó¥fH5b†¼ùû¬iKÝÇÏç-7Þu9ä©–ÙYÕs¨}®%ÄÈǺ©M‹Õíç-ŸÂ*“á\áAYÒÂÖÅuPáš,ì¦.tgS½wÏTÜHGVܯnßDªEÍ&ë°+‹¦_t{Oh8=•=c?eJå#ñ&?–Eršq¿-¦Ÿ©Åo«Qô.•.¸ÑFê¼K›vAµlùË[Ì-hÜ,m_€Ü­åËL.¹ü> /A2 << /CA .7 /Type /ExtGState /ca 1 >> /A3 << /CA 1 /Type /ExtGState /ca 1 >> /A4 << /CA .85 /Type /ExtGState /ca .85 >> /A5 << /CA .7 /Type /ExtGState /ca .7 >> >> /Font << /F1 668 0 R /F2 669 0 R /F3 670 0 R >> /Pattern << >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 5487 >> +stream +xœÕ]߯·qîóþûRàêÁ 9ä£Ý´*Œ¢c}pò`(J"C²YMÐþõý†çž³3<»×²½{ï‘kèÌî’œoÈáó-÷ùo^ÿýͫ׿{ñÅü/_OÏ—_¯~œÂüþþ<ûù;üýcó üýyòøõn +­ç#S‹øýÖüNÑ»˜ ¤^ýû/Óô§éùç(âG<ñbšZuä[¬4—â*y +gj®q 9)ñ[-޵BŽäK!FÜ+ûÛ|¾š2•p) 1Ï”ƒË¥ÖÒJ x¡`6ô”0îßËw}Ùƒ2elÿöýýá=†6|ŽŒlÏaä|÷áÍßûvò‰è—<ß}ýæÿžÍ^¤¶šcóÀâîõ³éÓž.€ÄzÆB'<Ñ+ѧ¾8…’:yx0ßIñ,«Ž˜ KÎX"Äê‚-h‡%^ÆÚB¤¹a0µT™S(µo(þ×ÿ¼ÿñ¼¡x¿e¹¾U9f ’Ï.Ù?À$ŠºÑ}ßÂh>mçþçWûnæ¦ÓŒóe‡ üØÔãPL­}/'ɆdA‘=…W(Ì¡ô8>òg"t’‚¬¦0CRÀ„4SÄR ×L¬÷(FæÍWIŠ€Ð›dí‰)ÁçÒC=ÄùxÄ{Ù9Ž+É® Šw>ä€E²ð qNMž‹’‡é¹yŠu£«Ã˜H(ËÚ&¹H‚¦ÕW@6gô゘a&iÜ·Y¶ ¶0K÷zåK†A¦û,¦yÛÓs^âÙ.‹ _r×s/,6ËâÄ“‡2”%ÑÃ,IBÁ+$¬J¤èUP¯½äÇlr‡ŒØÇLjh©Qߟ†]Š$¶„ÏáeIÍ•‹o<f~™ûDY‚‰¦X'Y(2U0–gËnöݯ?|xýþÜóîÙ9šõãïY?bçcf둃2H¨ÿºH]ЏæêLçë2&Ú/LaL½ý¿4‡‰a‡@R&J3‹,âÝs˜˜ƒaÄeÁÒ­ðužÜ„"ÀÍC(ñÞ†(’ÒòăEØyrd¾ +±¤¸4²J¼7² ÿY‘’¤Ó#ì<9°•²ìYX/½AÅZ Ó#yÙ¸Ž|[çÉQm²©˜}aK TâÝ ”¾Iœ÷ÈqÍQt'G6 [: Ë(3ú"ß[Dö…° +¦S´÷xŒ&€#A!*Ëí×3vžÜ|K,e(;Kä52vTð¥ ,*Tø+êÍçP¬Ð9vÀ…¦Þ½>žÇ€iÛI|?hx %cÕ‰eœ„á+”„ÅBŽî´ÊcØO‰Ã÷aKÉ.´ÀcâºÔ€faý2$®µ\'¨u9«‰ë½0ÙktêÚ×xZUÚ#`O1§00´Üh¯Ê9TûGØ,²KË(XLØbÑ+\I‹‰–LT9Gcrô(ÁOÙ¢ŽbwKeÉÇ`~‘½KÕrwdyo£`úÊÛr•ÖÔÅl‰u­ª•›ò¥éÌ+•j±i£*e5—z“#€‹ðÏ­ –C0aш +XºJœiO=À0.†Ðpì¾`Î=ÐE­¦Æwf×íUtFÅ¡'-òb7Çr…À"·¨‚Žàv7ag†s'ù=À"[9½•F\Ô Œ*êp`aÈ4‡ÿ•<ûgoâp„¹ S›ÝÉ]¥<µ\eNM9›rS±jêö]R\¯8n´S³š³½Ù!›#~¹2!÷ݯ\®L¸\L…é ûºbÛå‚5ÖRÒ¦ÜV½4vû‚±ÖFÍq«©ª cÍø(Ž+¡³¦®Œ‹ÞšÈW¾2îra°¡¼Kå9Ó¬—’6å¶ê¥±ÛŒ7jŽ[MUn܃¯¼¸O×=‘NÄ =è,7™øD«òÛöOA^Qæ°r´L¹Õ2¯Ê?Åáä,WØ«'®´êù,¶šóšøSìÚXu†*™YÍ$”¥WQÄp:Cˆ¡TÆÀ¦AŽQŽ¥´òñr" ¼¶ê‡#!t½:­Œ9¿¸W†û1Ö +ÉAÆCù)8Âz0Œí‘Õ4<ßFÆÿ&‡à©ÕM±Ñr +ú]Ñ0—lÓ` IÀdg£1àŠSæGpÏÕ¶h’côµŽ·™¹eça°…ÿÀ|lB€Zƒ¼=}¬1c¢—i´¤û +c£~e«Ìƒòs°>-1rÉåPlaQØÿó€ùR­µQ†„åOïgÌAzl‹‡KË=alb‹–Zˇ~|$c3O·•v“Ý›ÕÞ»íÞ°ãó1ùÀq“È3¨ç'©@Ò_úƒ"gh9g‡‹œF¤ØANﺒc5ãÏÒ…ª`¤Š ¡å†¡a/\8ºNůÐM4$ ­“¡itï}bZļ.Nºü傦k¹Ba©T#¶†û.¤¥hf!þíÈÚèÃ’’œ®†xõ쉿6ƾ;ñëd ø{á+fa¦6Fs¼÷Å7MÇþ´‹M…Ð|Œhæl¶ŒŒ GHxNýŒEÉyÌ•*;3 )AB ª^N…XX˜¯""…åøMËWÏá²pIÓ2z(xd,/´ T)O’¼fxB…¿G cyPªbjÅ#E3&íT¼ì¶]˜/Æ?å¤MÍØ@ø)¹]aYãº9#Rø™ãŒ3nµŸ$%ß¡1ä %·ä UÐ9ãr€V' =bV#gažv⣙x.âݳR9I÷FO.áÁÍP3žÞEÎÄIý`Sc %ßÝE˜ JªÃú0jÆÓ£+ïÌÄ*.Ç¢«ä»£‹E…Ððƒ|°¦HÍxzt¡—ÃÀ–5šAWÉ÷G·b&ãÒÕd‡Q3n]hÚòtJ¾ÿg¦J•PÀ¯»z†tcè¢lÙìéïИù~‘ïŽnÃB G9ƒøQ©ˆ×ª¢r0Ô¯§f<½U e©*4»¢fèèÌP3t<7R3ôC†š¡Z£fìÒ/ fädS‡°:°Ô ¬p*Ç"lüKªC˜;[ÔŒý4y„q`±#¤ +›g—˜ +íĺ.òHLÐì÷8TQë ø½€Ùw¶ ’Çëß9QN©}ÁB Š:‚ÇØú”c( +Ö y¤íȹ0Òp‰¹`QEÌñƒ†{´–áSA3!\áæ‚Iœ"앜mg­l^Ð)X]Ò¦ÜT­»}A—T6j.[MU­'otàËÁÜ ³:]™±ab-ý3ƒ— ‚&o¥¾Ç·yÁšk)iSn«^»}A—Ä5óVSUAÇšñ1œ—œ¹‚ °®ÓWŽ€‘VÇѸú‚†Â\9{½>pAC¬KÚ”›ªUc·/h#¶õšµÜ6Ut¸q&h .wÅyÿÜäÈM¿ÅUùmû§Ð’œâOˆ3-ãEnµ¤Uù§8|ƒý‘°)ƒêù,¶šóšøSìÚ¨òYš({ó&ÝÌY¾åÎÉ…!§-¸BErƒ¼:É!¥Äå(€ÒFÀR«É6séGÖùXÇÛ«ÚêÀ—­+\†æd, »Å¸Åˆf#°AwÊ~4†|¥«¾+ÔRªŒ%ô —lT‰rêØÖrÒüïR¯5G? +°ÐpõB@ WÖÆ’;‹†Wíé™´<|ùâSôòyÈr:ǹ°ò8äaÈȆ+ju8µ%ÈqM˜±ãýÙ5)f`h¨z‘äH 9á² ¨[–7lñQÞ6¯T¯šÓ„t#ïìÿ*‚ÆV®n+õ&{8«y¼wÛy¼aßçcr‚ãV‘!hKѱo»íIÐ`ùjh )ËfÛAãßøð×> $äI£ù(§OÙB1$Úà%ŽÏ†¤QÅ—‡H¥’F-,_d–/vY’¦'9s´+¡IU>á Hûç+’†œ¢^ 4"CÒ¨Â÷FQó@ÒÀ\/GÜ7 –F•ï!e>}ÿs¡iTa³9;b iÔ,Ü”üÈÓ½q× xrfG‘ÏOWÍÓÓ9Rfù·åi¬ƒü¤< Ñ8%â,ß2ùhšÆWÓÿñÚW +endstream +endobj +587 0 obj +<< /BBox [ 0 0 539.2639 206.37436 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/accuracy_comparison.pdf) /PTEX.InfoDict 671 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> >> /Font << /F1 672 0 R >> /Pattern << /H1 673 0 R /H2 674 0 R /H3 675 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 3039 >> +stream +xœÍZKs·¾ï¯˜KªÈƒ@tÇQrlº\åD²Y•CœƒŠ¦e©–’CÉvòïó5f9fw¸‘ªð ÷Û~ýøƒ³¿^ýñöòê‡óÃW?nÎê§ËÞáß›Áïðïφsü{³±øt½— —Ÿ¶Í'¶Á¸èdÀ¶ÿøëfóËæì9„|ÄSç›sÆO‘ ¡üêzCžMp19×ÀÛ¦`¡m‡O2:´¨ú÷°û’rdŸ'q)E—²Ùþ g ä’ ÃÍÕðáýpöœÕH22ü¹±ÆÅࣅèóáìåëOŸ®nÞc†³oiøxùžÀMËÞÓð,‰!Âb]%˜C´ÜÂÛ†ÂɇâÉ$£EáɋͫáÑ|q)±ÎPcMd’GÑä"‹Ï0뇹›<º)ÎD˜Rïfˆ&z“{7+ì!8Ä+·2ZôQÝhî(Çä]ñoß77úɰK6ûÞ7üÍAÒûVá#\HVÑ*£E{ ‡c¶&¥ìòlŸÈz“ð'ìœiðŒJQá*¥EŸT@’MÆIdží1çȧٶ5xöaKm©Rôÿ’Äb‹•™s¨¶1gG4s®âk²Ä]éœÄtðäßÎN‹bOZìM‚½(ЊlPU#ž@´Eº¢” ÝV]È#ìé‹‹ÍÙ7° K($¢†‹_6e™,¥œÒ aU£È.~Þüs8ùú?¯/?Ï8ÂÌ”áÞ³“ï_ºüõtø×pñÝæë‹M1pC$Æy¯)ص +¯0­D@Hl°@æ¶|C§ÃÅ»ª|ê:Øo)yUžgà\qÆ/Ф¬Í;½ )&’­'΃ó&3*cа§èe» 7dØslÕNØ:­ÑA U+Ç8*•¥dK‹µ™Zµ ºNqHqxe$BÑì–Ü%GØKËä:Í]§™ŠÈ +²";ì&§—bÄ";ž!sñ4jHF¥‚À0ˆŸÐÑl¶èi×… ñüüòò÷›Sµ%'‡ß;ÇÃÉëËÿñŸNþòÓi q¾‰WÉÅž˜dM‡iÐæÇÃtêz‘Ná‰5¬¬ýy#çNù¶ø6Ö*•æÍíš'ìž ++£KŽ„ žS@‹œv¡€Þ' •W7@;gÛ6!l,Ö]À¦¢¼À*‡¿´ƒî2̤#"Wb‘‘V+ö4æ¼ :ŠfÈãíDPåtxék]ï½e¢Ò}kÂÊ y-6å¾ípìE˜ðFN‹«ú°?oC¿%%Þ¹G!çF9úç4/¾¯•zZáßɪ6e-˜ÊcrèÝZàø¶Ã[Ÿ[9Z F5I*(ö×Åöå«eõ«׿Ý\}üxõs­­ýRÑ|±îÁËò&ÆD’ûõŒø¶ÃÛuhåôÊ+¼Ry²ŒÀÊ$ç<*—eÏÉêÄâ#Ö¨ÓÞà+Õ“ûH‚NC£þeç‘ô(Èle¶ï ¾V??”¿”1œæñè$Üá?Š™¤ììlë|­~±Æ¢Ü†gw1ØH9<çÔXnNÔ¾““w ó³s>GˆÉì{6°maÝhc9Cm„´ðD<ËÑHGbbŠú¶ªó”3uç–ÛU‡ŒîO"Zø‘ýü¬£ç òJ_PuÎ!¥a¥RÂλ +ß…ÝøN|Ò¾÷x/.Œñ± Z;Hò”¨#‚ÛE9°ŠÝáÉND ?±˜•WÂ>ëvN-özÙ;Zá¤íà*¤…ŸBT¦h’/wúj‰¡“ÊE†¾ZN°:J$;¯'!-|¿©Æq9áÝ ¤ +¯xT +>;¶îác æÄ%õÉyÝÂ+l+A[™6 L+yžÃÇø%ˆ¥)« v€VpÑmU£Ì ¨÷TWx¥j/˜€[Õ¼¨«Lv_u…WªÝiUûEÕåÞïënðµKŽÔAÑi´‡eíŽøÚ+¾V;§Â±ªö´¬½ãèöŽ£ÑnQÙñ,8¢WÏFídï3Í,fÀan†¹á Ë»^dy:ÿ¬¢‹ýÝJÝ¡cÅ4Ã9±É ß:‰`šÑ™ƒ8ïÞ'{„¼; +ˆÇJºÃ(ÄZ­¹¿~‹f”18 åHy_ey•Œ;z¼ +“u ‰ú)¦*ÂB\$ƒ¦ÇЋõª¾%¿J„¾Í©¼M•Ñ +Ý"öÆ%š™”Qyè­èùKNŽ¿‚Á0ÎfõX°5Ñ—l³÷òÛí©‘qx0™~Ðzü—¤€ ã8·“Áȉš Þé}Çr”_ñm‹£ ˆÞ¡ Å£IL Oìá±z ô%,‡ñ¶`ë«Þ—ŠV™]ïkņàT–`ÓÂìëçA¼S9ªïŒIo>Ž`[+(¦òZ¢Ó¾™÷ˆN0íL2^lÊQ/?–ÓüÎ¡Š«>FNÅ£*§ÃŸV| +è…Kn¼9Øx+ziN¢Dî½mðÌú"ÀpÓÂO >EïyÉøº·sœ(ñø¶·s°âz7R«¹+—”«œ¿ß°âõŽsró!¾W ^o(”%½¿æ<¬ˆÞtŒv>Ê5ð +ÛJ dds‡Ø¤ö†•¦-iß²zïPF{ç>ƽZC¨Ñ…ìl$Ò}i0ž…“,*/ÃA å-L£¼Â+•—™!é i»; +ž_Ül2ü‚b¯¼Â+•ëW+ _ÄÈÁœ3:@HÌ@3õ_«¼;.Hw½£Õß㼋¸/%îŠ|ˆ]/q %úk¨Tÿû޵/kXAÚ=ë½9 8‚d¹AÂé>˜ëîŸ^U8ÂT½×½ÎΈjÖ‘!Åœ8z?2UòG¯3z´\á¨ûº: g½ÃÎËÎŽtÜŽ„¶ ã#˜IÒØeä“,Û]"F?<&SL€5:J²^"CqÏ((;tT†r–¦÷:z£3E„AŽøöjåü…Êy÷® S{÷o?|úíçJà_mþÑ ; +endstream +endobj +588 0 obj +<< /BBox [ 0 0 327.86253 142.22867 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/latency_speedup.pdf) /PTEX.InfoDict 676 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> >> /Font << /F1 677 0 R >> /Pattern << /H1 678 0 R /H2 679 0 R /H3 680 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 1454 >> +stream +xœÍXMo9 ½ëWècQE¤(J:6û‘¢‡E³5°‡EAê¦-Üm²íßß§±=#Åv¤EÓCÌóÌ£H‘O¤Ž[|~s±øëôÄþúÜOOW†ì[ü]Zoßâï‹%{Š¿KãñôÎN.+GÆÓ²y"aÇœ5 `ß?¾6æ•9~ ’+|ujŒÓá+N½Ô·*³ßB— J^]Ò5<2tèÚ¯ ]bÙpÁe8³1™Ï1SìL7¨w´1mN‡/ædnŽÿ [\QVñ¾µóW&‰S +ÅÉEðkôbPŠÁÎ_š£?ÏfvþÖü>7à Iv´Üpº…omš¸8Î)G"ï·mÿcæ3K„Ï +^I”S´GŸfö‰+9'Ÿ¥(Ù£7ŸßœŸ=žÙvþtZ)ã-ÊÙçÜ­´…o¿ÒR\*Ì1‹'ÚŽÒé³j¿gï8àé­7ð­­Ã¬ ª1¦Ä^ñs`*YCÉi°þäÃõÇ×7W°39%:ÚÊÍÞ:‘+1’fD~ež\l€‘`±A"~ÅZÊ`Þ»¸Ç² §·,Oà-£¥·LÎﱬÅå-ËxGËëSoyŸÏ…]Ù²o(<(2øÉ¯( [¨èEÇE¼&>8Ž>y%bçï%¬”Ï?./ÿû¸¡eût%šƒâô¢º;©vŠ˜y¾S +ßí“B¼=mßnh¾Æþ¯]A%ùF9CFi[NÅæ€ý²Ÿöoû!xZÏ ‹ý¨Â뤒|,æÔ?;¿¾^|z˜Øã'd¯.Þ¥!!d¼7ËO(ó¢ +ÕÁe¶Õ0}ߢ¯kÆœÙoY=r4äÌ!r‘ºŽÄ„œR†žâBâ(ųýë¦c¼r gÅ¢°Ñ8V¼ƒVÅo›À¤NFwÇï[ô;8fé¦kœ²„Á£moÂÊ›\IÑsë ªÄeN\:o4+ÖH¨Èåô}ƒ}ŸMšRÌîI1Bv‡ËkWÔ±¤$©[ý„¶ùÔPüdiFâ«^Õþ¥u.ªÃi[ìÖ¹ …:¢ 7—-E ?Tª‘¢m‚v¥èÐö—Σ MU©c†â/[Šþa ‡$éõ mŒG[Œ,‡Öƒín¢øÉÝ”Ch; ƒsÌŽÐø³tÎM¨²«û”ãàóHÑ•pÌ(‹Ôë<Â* +—¨±óhB‘Yh‰±ƒ£#E ÿ¨„ÃÉí¤ôZ-pô¾“ç lóª!øÙÒ-±ÃþuJVGŒNZ‡‰Î· ÑIb¸Tቢ…,ÝÐØ÷J†Ì'Ìgè4»ÝjPœ  ­|®BÖP´ð葺ÑÕ LÃ|¹oNÂÆÇ¤%¡ÑFª©ªç”Æqáfï¼5 #¼…EO¬ÃZ(Hâ†BåüaŸ0­F¨ Œ– hðñûš"ë +[N#AÝÏ +ª‹Q ;¨(el®„‚´á>ÄÁÃg|3&Ý”œf,Š1®#¦CY:?ÍÈ€ûùÂ^PÒÈŒ”0ôZM8ãQv”yÜ–q0ºkÙ¯÷l+.ˆVAŒcUÄ{ ]6hð:1´è°š^?N¿ª!:°¬t4;]õœœ_-6¡cºv󞧃"€.©”„A¿A‘ð²…[w’o‰y¿æÁ¾éŽ0Ô˹U$!ù¡ëólByÚ£_v`;îñ¾|x´\ÌL¨h@îþÙ£Ï3‹ãæh±œÙfu›×™n†ù6]8N½bŽÔ‡– ÎÛø²ÃÛ(¶<ßÝ’V<éñ0Á½ñÉùõÅëi#ÎÌÿ­ÚÜÍ +endstream +endobj +589 0 obj +<< /BBox [ 0 0 348.90483 183.81324 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/H_hnsw_recall_comparison.pdf) /PTEX.InfoDict 681 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> /A3 << /CA .501961 /Type /ExtGState /ca 1 >> >> /Font << /F1 682 0 R /F2 683 0 R /F3 684 0 R /F4 685 0 R /F5 686 0 R >> /Pattern << >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << /M0 687 0 R /M1 688 0 R /M2 689 0 R /M3 690 0 R >> >> /Subtype /Form /Type /XObject /Length 2108 >> +stream +xœ½YËn\Dzì¯èM€áÂÍîª~f'E‘r"‰€v9¦$ Ř’ì|~Nõ»Ýn?S*px´Ñ®" ùtßÙæ<Øyî; ÿ”Ä$hßÔáWæ•ý:Ð0ð2ÙïíÞmÝFE\I8SÂG£C(ðà`Â!Á÷È—JRqµyß³HÁ¡TØíh„C€÷=þÓÑ£ðMOÔðnøaøæä[Gñ°5+äD›X„£CŽ•\R)™{ÎtËÁ'Ê…ï;›QB2{<'Íø›™ÂI|„²u¢8®tÆæéJqRöÊC@°½°js>Eäa„O»u4Â;E#Ó&éxÊ7—SIŒÔLA^Gb]tqëº;Ò»*®DE¹Fõ ED)Ü´ óÂ7O/ÌùsÈw»è}kÙ^übW*ìdŸ =—¥¨4–þqqeÍÿùÌ^|0»0]å}%XOWr+5å\çÓž`•ðJ²¦ž*MÂU`u4—=´)ò‘*Òå-J\»¹a/Ä;ÁµÂµHBOÔ‡ ®‰2üL(¨].“‚Ä7W„C Vä‡I¨˜! ¹Uî²ù¨ìHh#ëèmE~ lR +b]ùµÝñpI…úNJUˆ®æ@¸›×Õ ú +J³7}ü?AÛ·WËO3`û|;C4ooþýåóòà7³øyàðü9ŸªX@&Ç–0óåŠ4i¶øS·ôüy<Š1J}ãˆv¦Y¿á•lrhtèû 8ò +hD˜Ç +D­'*•¸ yÅ «“]ßÇyŒ ÉÄR³úùlLiµÒÅÆæ9»UÙÐ;°„ôNKÛNzº6†1ÜTfx&¤Ô'ÔöÎtQ>iúj —ìòv=Rl4ù`#ökï!h‚y+RFähãÉ+#]{†üÇnZ¹œ•ÎHÕMÆ\Ê\ Däq*© ˜RP \JUúð¥ÁÊ%3&-Ô;Ôy€8˶†¢B™PÌqòCg°#‡¾§ùjׂ”Í)byS1$àOLÚ‚Œb_(³JÜ™¥â•Xºˆ`&£f$jŠ)†–Š®„Q¾Ì2À|tå2c•&*(òä-Åuò«Ò@Ç@)«â5™¥";‡‚Ë!Y|¾XO›²Â[å³û%JeÜâóËÝ þ9ƒÚ/ß<Y¼\~~w{5ÃäÁ°5°ms¨}ì; Vtˆ¥±_!^3ôèu–þǾ‰ ÚE¥µÏ;úTÃDë8K~ˆú€8¼õH{ýöãÕíÍÉZŠùÿêÛ1 <êýDE—: +]Ô4PŽ»oý´2ªÇòO¿Q;‰NI¿§öt5hÉýEˆãáhè_5ñ}gðœ"Wƒü=‡I@ë½&Øžïƒa­àR/d¢ Û¤ðÂÈE!ÀÞÑZsµGdõ{+Á—ð$\" ˜Ö¿ ¿Ïð¤­@Mg{X§àÅ-ûñ•w'u¥DªÓÏ€Ì#„ê2¾Ò è[“ °š +ö¨ìÓ@…V˜8¤wuS™ýĆç¸ïd +†ãáᮤþ麑0j9I^ b§ós+¸0*¤dÉRÃýŒIuíÑÁÎ #\Uä•&·ä|„‡»»'&š|B=x·„…X’ÈÀ€Y3 W+–Û"¯-Wfr•ÿ³}ÒØa{kØÆ( ÀÞÌ2­J4¹7õ#Êö8M_ tĹ 8–> +>šþÃ8L,¬0õÈ‹ÆåÑÛczîH¨s;Ë^™ÿ!9Û +endstream +endobj +590 0 obj +<< /BBox [ 0 0 449.05213 244.08 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/degree_distribution.pdf) /PTEX.InfoDict 691 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA .85 /Type /ExtGState /ca .85 >> /A3 << /CA 1 /Type /ExtGState /ca 1 >> /A4 << /CA .6 /Type /ExtGState /ca .6 >> >> /Font << /F1 692 0 R /F2 693 0 R /F3 694 0 R >> /Pattern << >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 7294 >> +stream +xœÕ]ËŽ%7rÝ߯¸ËÖBl¾ÞI #{F ÌÂðBµ4º$X²f~ß'2«Èà#JÕ’tÚe§´ÓA{’7(ëmIƒáÝ3á^jüñþÛèq£ü?ÓcMrdå²ñ&Ï´«ÅjÔ‘Rr4\¦ÝH ðÃ- øÄIŠf±Ú(§ iPˆÁûh!1†^Åñ³ÕB¤uÉ%åI¢ +o¤…ÀZ$•JLq~ÿ›…H“ÑLNUx#-Æ·¨Uqè&)ªá(~cN“@ÞG /„@ÿ›ŠyV¢Z¬Ö*Ÿ‚ébèFJ„!ERÖX£çv³Yˆ´ó±è0)Tá´?ÜtaÒ¢YL)*o:¸[èà”ÏEk7ëP-DƒË€¡ç(O…7ÒB` -¢Š6ù07šÍ‚®Ãp`‰¼‘chQT‹¬LZT‹)Ie³$bðFZŒnÙª¢½óóŒ£Yˆ´v.ƒ©^¢ +ÄZD¥½Men7›÷UVçG‰¼‘chQ”ÉÆú¹ílS‚BšÒ(ƒ7ÒB`üp+V9¤+sÛÙ,¦xl¶Î1x-$ÆÐ"(²qsÛÙ,¦8}¦yX/ƒ7ÒB` -Ð/´…sÛÙ,ü1õ(.1x#-Æ7ƒ©UÂàÉÍ'3ô9•A$șäð`ä|žÛOf2ó±â£+£L ßI4é‘•6hæ6”™ˆ7šÍPʬSÅwÒC =ŒQeæv”™ :‹‰idbðFjH”I ¯lÆ•sKÊL&Ó§ÎT޾´S‰á;é!&=’ÂXʦEcÚL&'þejðNj”¡†¥«ÁhÑ–6“Á4FUbøFzH¤I§(;iÑ–6“ÉAåˆ?èÃwÒC MzD•½fÑ–6ñÖÁD;Ëô句@™Ô(ªd£ã¢-m&“Ñ^$ê^G•¾“ièáœB·Ì¢-m&“és— ÅŽ:1|#=$Ò¤GT6¤­i3™Œù‰µõƒëÄðôH“E¹‚qÑš6¦óªD 8̨ÃwÒC =ù€QwX´¦ÍD¼­sÆØY§Šo¤‡Dšô@n“szÑž6“Éô€œKubøNz¤I¬2ÆW‹Õ%f2©¨ì²)£NßI4ôh‚¶‹U&f"ÞxR1 *¾‘iÒªœãb¥‰™LÊŠ–”Žï_N ßI4é‘:L½Xmb&“FåwubøNz¤¡G4´:+NÌD¼­ÓåQN§Šo¤‡DšôðHм,ÚÓf2)ªPt9övu:1|'=Ò¤GRÑ[¿Xyb&â­mÑç§±^§Šï¤‡@z C)ë¼X}b&t&* ÔÓ¨Ã7ÒC"Mz8ULqó¦Àf1É«‚VB»Q%†ï¤Æš2‰‘”)åy3mW´É³JÞI 3äÀh ­›w1)]LÇŽN&†o¤‡DšôpÊ9óâei&âí¢±9Ì:U|'=Ò¤GT>9ãæ]´Ìd’UÙ£7q£N ßI4éQ[³Ø?Ú,Ä3{­Ã¬RÅwRcMbÐ’|ÐÚ.Ôh&“h®â‚·ƒJ ÞH ‰3ÉTÎÙ§E[ÚLÄüô¹‚ÝËTñôH“#ËXì¢-m&âm0}-nÖ©â;é!~¸YÌÇàÒÜ–2Ó1ø*&[7êÄð}ôI“A´’ãÉB¬Qâ1;TªøNj¬)“¹C¾ç¶”™ˆ¶qÑf¯R…wRCà 9 Zì“™ÛRf2±¨l³µa‰ãé!‘&=¼JÈcœÛRf"ÞÃñ”f*¾“iÒ#)d cí…ÕD¼}Ö1ÙY§Šï¤‡@zXÚÿ‡yšå¨ƺcü9¨TñÔ(“Í¡zÑ–6ÑŽ‹š4©TáÔ8“IÙdKXUŽj:úc˃LßI4©×4ózÑ–6Ó1þ,!»4êÄðôHw>f=šûŒ*QŠÕnЉãU×¹ÓµÁ×wsÿÿÿ~føþµäé€Ã¦9:¸}|ûøÍíõïÍÝÐ|1˜˜ XÞß|usE™”µMÇ”š–ÔC¾9Ñùš7_Þ^éîo¾½ýË›nc,f‡¿ì¡Ç€\ûbQÊê¡¶=•}TîžÊñ—=•Ö/R.¨C˜1.ëëcyÙô®$þ²ÇR3BöxùµY>6ÖÇòòKª@$Tî‡›Ë øy®í¯w¨º‰tïQô¨dÇ3ÍùÌ׿·wÜ1i´N:•t¤…L:”Œê‹)µWÎáeˆ1¹#aXä5ge‹Ñ9öymðû䯂v`è Æâ¿.¯qΫ¥§e­“ïòÊà÷È+†¼CÌ(1ÛþUyM«:i…š»¾TøÈ+K髲ÖeHÐà1}MÓÆ9Ó'hð” ¢¡Êµ¨OPá)ïtêqƒÇÙPkél*S…§h^Ñ“$7$¨ð” ÐÁë)K žD¼t:Äñ ”DŠÎC‚ hRžŠv&÷µ²ÁSÔœôxý:]ŽF/UJÃõPÍG/fÂðšTxJàPÝé-è¯B§ËÃqêdÌPƒ§ãõGþ–|z?=9Ãòâ„6]0¤8|ä`Œ‡Öïq6ÑBŽ×á(ËhC8¿é²ûpüÑå“8.zª^¼iQ_üÙö¼«t?üsÇ‹‚©ü1´sG'LeþÑwtÎ¥K;³Qi_ýíëEaÿî-PºŽ¢Ùc*üꇷoÿéƒÛ‡ŠZA까¹¿2uâvÖ ©n¢M°-CÉ)¤»uæQk㽬‹ÿFõ(eŒS“f÷Wß|ýÍw_¼[äî_?ûüÏ­&>zÇâ·jY%úgŒµÍP!Q%’K¡˜¾²0¼«ì>³¿,Ƕ ŒqæW ìñ ++:ï‚Åð?,Óq+žFóÏ_B¤QDhñ[P-úUÌôjþßL‡³ +ãà כqø¢ÄvDy×Áéy¯3‘?†S:¼Øt‚0ü¢Ô~ Q§=êô¢Ì›‰ +·DÐ1£$ ¿&u‰QG¾rYíða¦£öA—ÜKÒá¥.ð#êÆ;ŒùW¥^MÇà§x8yã’pü¢Ô~ N+¤ÉûÕ‚Q3Ñ8ŸÀ¹" ¾&q‰Ç43¡4oe&4æ˜*a†çA8~Qê?¢ŽyG(zµfÚL4Ù(ÚÚìFI~Qê?PÏú˜É.Ž¥1µãôMçØÎÊîÖáפ.ñ#êóY¾û˜‰6 {©˜Q†_”ºÀ¨GL é+Û‚z5Ѿ‘ ÝùªsE|Qâ;"Nþò]}…n&Ú?žfT\Ž_”ºÀÔQl†fA‹2o&úf“fga”„áפ.ñ#êV—²_”z3k ©œón. Ã/J]àGÔ3úå€kÔ«‰>bæoΩ —„á¥.ð{¸aò¥JA¶æRg&úЊ7:^*¸$¿$u‘QǼÛчÅõj¢=ÖÁX \:I~Qê?¢Ž‰wƘlUêÕtœ¿p±ØW¬:I~Qê?¢Ž™7Z*½*õj¢½6:|‰á’pü¢Ô~ n1õ.Î/B0-lÒ‡ô0IÂðkR—øuL½]HeQêÍdbTž—„á¥.ð#ê˜zÓ¡¹U©W“‰Ô‰…cïP§Hƒ/J\`â´­Ä.·q38õÉ7êÑàk—Øq:ìeãâ«3™èTÔæÜ¨Þ Âð‹Røõ¨œÆ;»*ój2ñð|SÏ&$ ¿(uQ/ôÝ.¾Ê1í×*´i)Ž’0ü¢Ô~ Nëí¹„ÅW9f"Š´-#,$©ø5©Küˆ:&Þè¥_å˜ o3ØÒáö½“„á¥.ð#ê˜x£‰^|—c&¢ˆÖ¬§µI*~Qê?PG6‘y¿ø.ÇL&d<ì ǯI]âGÔ1ñ9-¾Ë1¹)ÖdFI~Qê?¢N{ãðÜU©WQôÙymgI*~Qê?¢Ž‰·GW½*õj"ŠÆÑŠò,IÅ/J]àê4(Éh­¥ÞL´‡9»¤FI~Mê?¢Ž‰·Å/·1QL.fI*~Qê?¢Ž¹wIfá{™ˆ"rìB’Š_”ºÀ¶^Ç¥\Y”z3E4éÙÆY’Š_“ºÄ¨; +y‰:» ^MDQ]Žcƒ$¿(uQG¹YÐX•z5c:;’<á¥.ð#êô ÚED f¢ÜgÚ=FI~Qê?P/VYL,J½™(÷)éó,IůI]âGÔ…yÈiQêÍtRŒÙQ’xå¬Ä¨gZ,4 Ìtäžme–¤â¥.ð{¸yŠÓê‚_ø(g¦îLÄ(É~Iê"?¢Nµè ΂z5ÛägEžà‹ØñHG8tX•y5 ­u‡OºQ'ü¢Ô~DSïh_•y5¹/ä»`–¤â¥.ðucUÖ>.¼½2ÓÑ{gwï$©ø5©Küˆ:ѸlQêÍD¹/UÜÎ’Tü¢Ô~DyëV¥^M4\5:ä#¶B' Ã/J]àG‡L1õv&,¼ 2Q´ùÑ­ó IůI]âGÔ1õN./â81Óq¨ÞëÓëè IÅ/J]àGÔi§#2¹*õj¢/pmº£$ ¿(u¨Ó.ÃëÆL½™ˆb0É›FI*~Mê?¢î”×:-¾Ì1ÓáÝ>Ä0)Òà‹ØñH‡8V‘×™éXRÔÞ]„á¥.ð#ê…NqØÅw9f:¶ t\Ž_”ºÀï<®nm +‹ïrÌtlú¶úÜêÏ%áøK"VÇPròÏ:_rÆ+;tø =>éL*,’&Ú&úœ÷%—¢ÊêŒåø ‹‚Y“¡óò¤ûsÞ—üa,ftúÔá/{,½àÀ¡/9/Û¼/uEÈÜ/YŸøñXž„{AâI7HÜ]wFÄ’ŒÞˆºŒ1Ÿ@]Æz§@< ÷ +Ä“ nxîˆ'uI˜g .Iï¨KÂ|uIzç@ÈÌ;P'rï¨KÂüuIzA]æ!¨KÒ»ê’0A]’ÞIO½ñ$ƒ› ^a¸Ÿ ^aGA]’æ)¨Kѹ +ê0_A]ŠÞYPW™· ®÷$Í_P—¢sÔ%`ƒº½Ë .Ióԥ蜭õ¼ ™Ÿ|ï,ý¦<ˆ~SÈÃÏ{º`é“t{žyÊs{œK4«Ñ÷{ŽQDyûÞaǹc~ŸßÂaÝÏ÷Ó¾˜”Þòóþzlf@Œñòì°çðØóÓÊuÔ¿/üøüôÝ7ßÍy¾½úÃÛÿùë÷_¶ì<çȧ¹pòè1„ ¥÷àÔàÞ%¹spæœV¿Q s>ÝíÑ_ßËÆÈümâ¥Óé&EKÆc¬çÑ·> Å«oÃÕ\€=ÂêíQƒ²Þž§,˜áÝ3á^;ɱæ5(b¹ñçt¹g]-…>ð. ™HÜGíà MhÀ˜$ÆI‡f!/EÝ6§ÛÈ ‘… žÖêè]Ÿd¨–BÎ͉ÃÐ}„èBˆ„ÑSLq~盥`NZŠ·¡—‡¡û!Ð}¸EÌÑp 3éP zFûsO»G·‘A 0§N˜˜ÏÍd³€±ÆÝtÄ©à>2l¡ÆÉÆ=7“Í‚ÉmHþˆ§ÂÄià>2dn%%èpáídhšãû|Ì×;mžÀmdÈB +I_?>ö2TK¦Al +Ç葉ÃÐ}„èBLElòan%›”Á$«F<ÝG.„(*áu?£íöBT •=Æ ¦ŒòTt!º·LÒ¼óól¢YÐ`–™èBL†n#„DBD¥½Men*›”SÔáÓÉSÑ}„èBˆ¢L6ÖÏe³dÚPbü1Z`ò0t!º7̘œ)±Ìe³€@NÚÓÉÃÑm„èBˆ@K¬ÆÍe³ÈoÅñ¹´Ý‰£ï„j¨KíkЋ#ƒØ BŽ­wx X° + ÂÈà>± 2?q¤{dƒ_øÈ!&ÈüÌeHþ3[…_øÌ! ÈüÌU<rU_P}ØŠ†¾GÔ +lt¨µx…rú̓$¯l6I÷"úŬ-^áRðNÿæ‘@¨~Ƥ㢢ï³Du –J2¿yO)-š·¾ì+:„J}Éᔜ_ÞÐñò¬c¾ÜÐÐáòH'ò§È /§Sì|ûË+:^žT@síûÀ //4ÑtyÈLE‡Ë“ØqÌLCÇË-Þ.C1ºË+:\ž1ηh±û +ÕÐñò|œvuýÝÐárúôH‡ +úbjèxy @¸tü¦»¼¢ã娤6—!LCÇËÉï9 +pÈLEÇx(UÞ†17 ž8ÚpHA:úþ%ñ>ìЯ!¦çÿÀhë^˜­³ô¡>„5œþú÷Zòéã‚<Ýç™»?áÃÒÜ-¡“¾c5ß±¾Úy4¸‹ïA…Ñßë®ì.þ‹ã{جìq?Ï×"bˆ†>µ8÷ÿ¹ZˆN–Pм»”ÐQ˜D2£-+4Þ;+ßç_¼[EòøÃ{‡ñèjZ[æu¯,·2çëЋõ¿a'Ø/vŸùž"íÙ„ái‹ » ®MŠ˜ ¶a÷úêÛpõíØIe‚Ëfž€0jãÀû9“tíT‘ø‘*^y§1¶Z¨RMô=Æ bqx'5ʤ˜j…ù3¬Ñfú^$句@™¢c`Z«ék̬F3Ñ’0Æ{Ù "1x#5$ʤæX>> Ô¨&:Y@'L"Ux'5ʤFDåƒ^4™ÍT¼Ò9=:‰Á;©!P¦À”!\¾hE› ƒ‘dò9Qã"1x#5$ʤFçãšE+ÚLà€qZ²£H ÞI 2©q*ë…ÕDŽù»SÅvÒA K:жÑlË¢ýl&ZòŽzy¼“e +ЙIÂÄdÑ~6…äˆV?†£i"1x#5$ʤ}Ù&/ÚÏfÊž– Ë1éç"1x'5ʤFÆìÑE·h?›‰–ÌrŒ1 "1x'5Êg<]¬ÎóîfÊFÑ­ÏÀL$o¤†Dù ñbQó^=fJäKOÛc[»‡wRC |F}9|$Îö˜)á/ŸNÿ÷\$句@™âbtZ¬57K"Os1h7HÄà}´“è<îZhQMÅX‰º“cƒüizgç”™’?¦¨eÔˆÁ;©!P¦“’tµMinA™)¡ÅdõXþã"1x#5$ÊݹÑYjJFѧûÓ=/‰Á;©!P&5j{‰óÀ«YçhÑšA"ï¤Åš0…àд mgD˜‰VXÃ;‰8º‘cÃ)ŸbXa¦˜éãg>Ã0¼“eR#ªh‚^œa¦c­…A$句@™Ô(h_a¦U@Hf‰Á;©!P¦ˆÇ®ˆÅ6¿f¡Ú΄ÓÏ=“ˆÁi!>ãºh§Ýâø3EO‘kÎðºL"†î¤…ÀøŒôbb΋3$Ìi‚÷ƒBÜI îø#J­g3Eü(hÛ ƒ7RC¢|Æ‚Aö’^´žÍÒ|Ò ƒwRC |†‡¡ ¡óRA³ú L[U{‰8¼“kÂg¸˜dm(‹Ö³™BR9ÿX1ªD ÝH ‰1‰áé0€ö‹Ö³™È½¶ ÖÛA#句@™ÔHª”B;¾f5ª‰¢È¸pNà™F ÝI 0ÅÜ0 +ÉŠ_´ŸÍD>’Ë$bðFjH”I Úeg+šÅ>…ìqvŸÝŠÃ;i±&LR$åÏnÑ~6“Ê»”—TL"†î¤…Àøáð9»Å3yr£7ƒF ÞH ‰2©áÈcsZ¬!1“× + +%"1x'5Ê »YjÂt$›L[Š;‘8¼“eRƒöîç¸XCªš¥z6a +5t'%ÖtÏ(/F'½ZAj&›U¶!ŸÖë½8º‘ã3î‹õ!¬VšÉz¥áƒF ÞI ò +üÊj©™LQè5N¢ìfÞI ò&XL/íg3úìÜ«›‰ÄàÔ(Ÿcb¤Ý­ 5ª‰<ƒ„Rz‰¸“Ý3~L*Å™Å`œ™èhg +.öqx'5ÊgH™‚1õbi‘›¢JÁšG5Úͼ"eR#(¢]|èâ&:Ýe£÷£JßI4éA§Ö|\ »¸É +‚¼tâøNz¤)@‡Q.8ä|Öƒ›È ¯9:q|#=$Ò¤‡W¾Ð´k¡G3aÞžwƒNßI4é‘TtZëEkÊL‘žFGJ8¾“i:M¬UŠÙ/\“qS ¢³G?ÂïÆñôH“NËÂG7eOJ ƒNßIôÿES¬ÙE{ÊLq¡htâø{†FèN¥7ø¥RúÀÏøža;±ø#üRo7}T„çœÏ°Ý3Ù7‘>³‰ðœóù ;äÝà>sˆ‡ðœó^œÌû ó¤>¸Ÿa ¸–`pÃ3o,Ü~g‰9EáYê½¢°Ü- +K0øEá ˜cž ÷ŒÂp×(,Áà…'`ÎQx‚Þ; +OÀܣ𽞀9Há z)¼à˜‹^p½ž€9Iá z/)üô8s“ ~Rxæ(…'è=¥°ÜU +K0øJá ˜³ž ÷–Â0w)0—)Ý ÑûLé’0§)]’ÞkÊÏ<ïÁÉʿăà_¢[ð7Cl„æ³D¼ÿ ƒpŸ%,–÷YÂàÎ7 »Ëoâ³dqpŸ%NGT±¬+šBú®|–üé‹ï¾üþáÅ1Þ6W&¢—‚1O O_Vk´Px¹mI…v2<úèùþË·/¦Þž÷ÇÛÿnS8L +endstream +endobj +591 0 obj +<< /BBox [ 0 0 270.72 163.62 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/plot1_em_f1.pdf) /PTEX.InfoDict 695 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> >> /Font << /F1 696 0 R >> /Pattern << /H1 697 0 R /H2 698 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 1520 >> +stream +xœÍXËnG¼ïWÌ%yа{¦{G9±pÙrˆsY¶Aʈ¤ØÉß§fùØÙå2¤b;ðXÚí÷tÕhöÃõÇw‹ë—OÌ÷¯šY÷mqß°yÏ!óŸO†Í>7 áÛªq‘ltøu¹ý•ƒ·Áá;u¿¾mš7Íì¯ÝãÑ‹¦ñbÏš G+š\ô°Å>Ú@.f­àevbEqÞÙ¨ÑÖÕfóG¼D¡3ç²j6LÞúàkȹ| 6'jî®Í/æÖÌ΢mØ*r&+Ì1H$¼~af?_=<\ßÝ¢>w£\Ú¼çäÕANÆ¡öÞãµOmV›%ƒÕ²©4*‰Ù•¹/…›Jtâƒâ‡iÐHÞS\GNVÍš]qL‘q‚±k“ZA)%eÝLš GL€Íñ¹HrÃ@1§õĸ`ÝÌb1fTv>S¶žçmcd?—½Á‹àPrŠ\íi]T ɯ òÓåÖÄF¨Õ¢6¢¯á€ÝÕ›údâB)p¯·[¨n_ýöžh+$Ò=à‰øÑÍ’É &<á gT«OœT:Ù‘Þ‘ãÎë?É€,6h!¨~ç0Nì°¹û +µ‚S²+® +ýZYžÒ=‡1 +ž‚ï+ ¬ËÄ’ú⦆kS[7ß@ÿœë}È”'DB1jœ¾ÆÖ£Ø’km¥ÆO“qœ‹nGßÛ½‚O—K‘DäÜbŸ­äœ8ÈàzRÃ'‡Aa±'=ž.W”£RîÀRÄöÅ}gª$ð—£z\ÏUÎU Hư#;‡þ“–w]¹®(YL(®ñÐyT]UÞ±ø@•äsß{?Ö;Vm*b+:¢µ¤”÷qms°ã´5±G\«Qâ*Jèdæ<\ëš¶OÔ4…eÀûAØ E“ÕâÈÅŒ±LiSŸãj+œ½¢©˜xØàÂ[ì°‹B\kØtÔFY—¸"9¼˜G¹#  Ø_¼6"Ñ¥ðžQ›8BïJK²Ø»*^§5¬e Ðc²¦¤ã4ƒ#ÀVqD×`̧x¯èg€ÀÕL ¨Ï «0Õˆ˜‘™¼ûøîêò¼[+›E¸UA­úq8š¸ã¦Á.Ùºj Aº|‡.{h€-®^ßBíÞݺ:õR¡áÖ²õå +"ˆ»Ž÷àe.²z×F*¸h;Œ\-ÿ˲¤\ÌĈ¨CiçMn®ÏîWWËåèÅûõ­eWðÏú‡‡s¡ü'®®†ÜÆ!¼ìÁUj#ŸQö Y˜!À£å)õY|¸}›Èë©qenÁ×W—l&`ˆˆ°Zp +ðÐõÝÙ +µ½[|˜6#ÅÅõv]Ýf]ÝËæ¼IW +endstream +endobj +592 0 obj +<< /BBox [ 0 0 224.92906 163.62 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/plot2_latency.pdf) /PTEX.InfoDict 699 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> >> /Font << /F1 700 0 R >> /Pattern << /H1 701 0 R /H2 702 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 1224 >> +stream +xœ½WMo7½óWð(Lq†rx´ûá"h‹:ÐCÓƒáʪ ÉAm#Aÿ}w%íR–ê( jX†ø¼œá|ð½ÙÙ·‹w7‹·—ö›wf6¬nž Ù{|–ÖÛ{|>Y²—ø,Çjm˜£+\|,Wã%¥àóÃ×?¹5³slÂã—ÆˆºT2Q¶ì6)0J]ö9ð^aâàð…4Œ4pçì/»û/S¡=ÕŠ•äià]ý)q>4Ó¾íŒ&ÔŸñÓ¦v‡¾mÃÙOæbnfß“%rE„’á$ó[“Äå¤%"òlí«r”º˜ÿa&?^?/nþžÚù½ùnŽ^nŽ®Ågy¤q;ÚG_=JT'â‰9e–Ä•„ЧL’º³øÝ)ê Fž…]”bh<艞±bÐ{¦cž5â[ ¬ç=ѳâ^ hâj¦zæcž 5Á E×#øÔ|»”}`D^zçaëü˜0š=Ãm±‘2–#þ#u)ÄUÈÎ×AÂÜovè¦3ÎÙ-àè‘äÉûÉÓûéÔþnçoªC¶o:žmøp¯a=óî0}®Ò'vœDÃÍó#KÿêÁw‘-û û³ImA³sŠÞ—ݵsIV3Û’ð…3¡°Ôw¤£¸W}ª.g¯)…Ê«äÕ© >ö½åÒ‹ +3*Lh]â"ÕHF;uŒq ö±œ¬3ñóÕÖÀFÌÆé7i(ˆK«-_µ]JQ·L9ÀMòFV^Ê[¥Êá4uþŽbt^D%¶qIM“fÚ‹k€%C ÀLTáÁÈÞ ÀWêKdŽ Ã¢žâ^õ48¤÷ÔF9À ¬œ tÝÀ$P§½ 9À'H|ãÙD1w“ÆéZw¬Cq´¿~–Z,pîyy]îFÎ…œ†¨L­ó>ÕyDm²(kL¸uoäõQX¹u>À§:ϰ¡ ³2Úø è/>Ò„Ë’cl½ð“OÞa*ËBhuï° mƒÃüT…èÓ­2]Ýqe¶Z):îã3¥¨^ ¹¶ +”R¹ª@¾u«Eù-¢:f²zHeÄ@VÅ('ÌføãÃVŒô51ê .RPK¢—r„ c>EAá)Þìäãô2¦, ßh'wﮯ·qcÇ=½xUÑÂDÁ‹86Ú¢{¿ãzäî…n‹®‰‰õý¤ß¹]uü¶µÿÙÊR‡rPÕWÙÔ´:†V;(c8Ø@›}#¤ó¿­2Èl“dE¥À‚Ékún‘Ó±ŸàsÙävù¼8{Z_¯Vç·~Op»\~ùë»ïU0šD@=ô¾jñQÆfþC^ÈW“q¡J9 š¡›Ï»v+ŒÄE»-¦–kSô¼ÐíÉG  ,ïÞ{N4Y<ž­‘ÝÇ›Ss ½ ©>¿¦Ïï•ù†”qJ +endstream +endobj +593 0 obj +<< /BBox [ 0 0 504 432 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/disk_cache_latency.pdf) /PTEX.InfoDict 703 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> /A3 << /CA 1 /Type /ExtGState /ca 0 >> /A4 << /CA .8 /Type /ExtGState /ca .8 >> >> /Font << /F1 704 0 R >> /Pattern << >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << /M0 705 0 R /M1 706 0 R /M2 707 0 R /M3 708 0 R >> >> /Subtype /Form /Type /XObject /Length 4006 >> +stream +xœå\M·½Ï¯è‹é`.‹ß<Êv"ÃH‚È^ Ùc-ËVvl 6òïóª»gXätO7gµ `„ÕºYUd±^={o>{õÛ›»W_>ÿdøô«ÃMùíî× oñïõ ‡·ø÷û@Ãsü{}ÐøíÝÁk‡Ÿ÷ãOg þ§çŸ?ßnžáÑ_ñÄóÃÁe•ƒK)ÆFecŒÙ`cI¹#%)¿—r­ +Ú„” /ÃTâY™Ô½†‰0W% å,9D­¼6ÎQ­_Š­JGõ‡Oàõï‡On7¥Heï)$¢†Ûï>*?‘‹0ÜJ>'È‘n¿;…Ôá’vFϹ®‰J%ÊäkõBÜ©ÞdÍ€`@îÒyNxëêCRÞædõEÜ«> ½"ˆœ¨>õÇ1¼Êñâ°›¡ +°!ç¼±Új…7ïFÍXc|7BÆ|9<ùÛ·ï_ýx÷Ÿ§ÃÇ&F•³¶Èøœåo¿r´}3Ü~Á:ÍðÅ„#äÔº…+@vøjß­B"^é×ê 1ÖEzôq‚Võõê\s°Kt²Cåi¨è#ð’ì/Žëõóp²E;'=p> „=€NV‡Œ‘È=){„F~y5ükøq˜ .TŸ”! Z¨ç"SN¡ÙõEl-^Lž ‹Ë •øÔÇ2ùðv¬¥Ù*k䓉P!äs³|BnMTÑy‘Ê0•ø‘Œæ5Æ~L± :ä(EZ«‹V*MÞyÇò2N%,³Š@Ö¤[³QÇéàscv‘[rŠLv˜à{9N%,³3 ß™hÛ¤`ò¨3Rc¶[@·¦õèN§’Í>ni6Þ‡9eà€Ô¦Sv¨³8¾P¤9I'ýœÿƒi2p;DF– Ÿ"¡°XkÎéÉÔÑþˆ!d7Æ ä'$šÄÉ&Â5xI¨lÎÀÀƒ 6Ù)ë±K$–0ûž`cÊ<ˆ§AŒ&elæ“Á F¡¨A¶D Ó<ˆ=MÉÌ„$“Ò3“:®½GÖ Ì›&e y•£Å8ÜÈä l†#Ml ñþ’QJå+j£®%G?++⪃g}¨JÜÓ‡’Ú‹Ô&p®«ºP kñAM(âíéAI„¸Ã…¦uæBjɉþSåFw¸ÑvŸÎü¸¦ù´äÉÅÞSåG÷øÑtžÎýèo<-¹q±ïTíÊ"îq£î:yqMÓiÉ‹='éFézÈÜÒ×ôˆ*ؽ '@$é‘JÝEÚ©;3%Õ@¬êt@FëºiNU–1LGñŒjÚÕíJÞ×Þ!€ÍwÆ‚ûÎ ?nµUêþp°ËŒ(šùަ$÷õwÈðy +w$Lšq±¯¿CÄ+¨MÉEæAìÝhú;?e,™Å¸8b¾!Î*L(ÇFre…¸ÊËb”NÆQÚ8U`¤…UÛÛ¹Šr4­}¬Ctp¤BÜáFÛ×¹Šv4m½¼Cto*GŠ¸Ç‘¦§sïhZ:ûx‡èÜTQ]Ä=~4ýœëxGÓÎÙGÿéý¿z/ AstûÀ:JtªüZrF„˜+a–ë¶„¯6?ÐdÑL¨L.½‡Êä"VÞŒIÕ’¨äeté$TF—ÆCet#§¡Ä ã­S1ˆ?–É¥‰Pm–Òs¨ +±"FQM‘P ×)~$“Eÿ 2¹´*“‹Å8ñõ¬T7!¤x»a§³7ŒÎÇ0ÜMÆsäÍ¥¸G”mý#*ÁQk;°™h<˜³ùõT¡¸í&÷hƒ8‚Pßs§“ž„PÛÍQ°rÆ£@€Sœ›´V&[ñÛÔRqfËžKëcJ€u7䎀dÁµälˆVxZ»ÏkF–u~;wž¬›^‹`yfÏ ¡Ÿ™QDfþ"ïÖðqµ0Ëø, àCÕèsÌEÞm@OìsïÞ5ø|f_§ˆÑëØ¬€÷À!α˜@CŽ­¨ x°”Ù¡Y!ï6À¡B%åø näa»*”?ÁÕôˇÅ%&<9`NjNm%’ö*Ö|ÖîEÎ"’Zç%T`AÀà0[bÏO¹·.¡‚ä&ÇuÜ|“5¨(‹­‡ßJV‘ùr@îáTnøÓý]Xk_ÛÉïÔ’Æ$#ùÔJ4ÝPyO³DË`“é §Ó/Ñâ‚Ó£€˜ƒçæ™-'!¿/gó8"~>p;€û'ëlªnŠò$ܽnþ®‡Ï~:=m™<#z:gæŽ%¡\FÊ1›O¾m9NBØ›?Èñ ž[Ü[O9 Ðà·òô‹q¡gv»z3ÊBÕÂ5§ ~Ëç„üêŸñÆùöHý{¤þìiõoc4@b4 {Z¶±GÞ“Ø# èÁžÆ€Ø# Ø# èÀžÖ€KسٛCrQ¨£¥h <ö{Ffp§nÎ}úíݯZsŸ¿y¿Ø°ûhoÃîOrÝðòÝ àÊÆè2¥Ó[çÕ ÃÙiª…§1ø:CßÍ ¾mj +XEæ¯(€Ð]7ƒlðJcv’µéøq +‚øÂ‰Ãu(x`t¹Œ‚+ßUȯ27^4ûÞWgÀćNÁy†Gy¦êø`"šñ{yF‰ È|*vÀàÉ<¡¼„ƒ´Ž>ÜÙ7¨É@d7ŸæJÁòaùö³\×bàÚzšOá BÑÅDN<-Qp­É^ªïž³Ñ¦øÞ<-ÊQw`;Ÿ±¯"îUŽ€qv/÷ÊY¹|N½Š¸W;jiŸ;‰×تÎçÄKÈ{õó­+m÷/ÂÑùœx y·ÀÍdD¼þ·D.“.þ!䩹l/[@Ñ6†uDÝ£#ÐÎËF«Îÿ«éQ{$Êa&nYmu—ÛÆ°ãËJÙÙñM1}qçƒÜè¤\+×2Q,x¾xjÆÅç`H`à5ã¢*çsʹf\ÜJ9JW3®j +Æ”mÖ<4Çhëí<.< ðH”¦ýöÓØú‘¯ÏrþÝ|u¬ Øîü¥/‰§WWÝ9ÛPÓÖÚ[P#”K¨Ê; ¦Q¾ 5B»„¡½jíÛP#Xj„ú¨iôï€i€„i@Ô´\‚š^ž…¡ýßhÖµz™b!öQ÷ÇÌ·Zçýë£X„ìæ6ešdëNUñøŠž‰èÓ|§ŠQ§‹cQˆŠçă@¿l¤ÂÓ>Llê-_n ξé“j‚Åm]›ÃôÇoÁâËÆè š_QàËt!=€^ƒž½À®€É AØÈ˜ÃÍ§ÏØÕ¥gƒ:‚/†¨ÃæÓ`Wä|Þóâé ònž¹êÖöýóã­QÇ©6ò·K9©h‘úÜØF…yæ¿!QäÜUÅ‚EX—rÔØXÆù鬸»þsEÊ ç§gïRŽbPOã +R,¶#ÿ©—¢ ›à ìš%wÒ‡YÆ÷X‰ í\WO²ñ:ëñ©“†J:ÚÂãY±û^Ê…—B“˜‘åy½›z¹ó-Ài9N Á3+EVÓàÊÓý]¿ ¿¯äHPt’‹q¤|T|ºw(n† pƲŠlöÇÚ{²¹(¥œ”¦Úûtÿ~J"ãþß:b1|ü,xñNŸÝ3Èàçr¾EI‹ò1³Ÿoæ5g ÂÊò0HÄ@†sgΡÏFþd®†Ò“ôK8/¾Ø=üýÏ +endstream +endobj +594 0 obj +<< /BBox [ 0 0 502.1103 119.88684 ] /Filter /FlateDecode /FormType 1 /PTEX.FileName (./figures/main_eval/bottleneck_breakdown.pdf) /PTEX.InfoDict 709 0 R /PTEX.PageNumber 1 /Resources << /ExtGState << /A1 << /CA 0 /Type /ExtGState /ca 1 >> /A2 << /CA 1 /Type /ExtGState /ca 1 >> /A3 << /CA .8 /Type /ExtGState /ca .8 >> >> /Font << /F1 710 0 R >> /Pattern << /H1 711 0 R /H2 712 0 R /H3 713 0 R >> /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /Shading << >> /XObject << >> >> /Subtype /Form /Type /XObject /Length 1176 >> +stream +xœ­WMo7½óWðR@B[j†ßì-vR·FÚŽŠêR{ãØ‘ä4r’¢¿¾»Z-Wf `ÁÚçå<>ÎÌzö²ù|{Õ\œÉã×b6<]­Ë;|n$É;|¾H–'øÜÂÓR8ÒŠ™ 9<.ÊGæ¤bôÑZà4~|'Ä[1{0k,;"©ä“‹Zš ¨{k) keváE 3¾ú߯¡*ÝQÝ`ë¡"„€8#uî-hI¹>–8ÂI|Gs1û‘e~E{K”’—ó·"(-µW6F§MÀ/9¿šÊùx5-©ðQEËDfÄ6 ûÓy£ q4Ñq°b½ÃÌ:¨ÀÚj;¢.àý¹Y#ÍÁh—Œ×±BnwÉ£Gl­“ðä‘Yë#iе#÷;äÚ:eÓÞÈ xrm€°gbrÆWÈã¹!« 8b×ö@ž¼"É$¸Â +êÉ7بdƒOž±¦=¼DJ‹>%„–LÈ#…‡6Ær2¿]6Sù½A¥D„-Rd9¹œ,×—Ó©üSÎO3ƒ–§'´Í4öŒ§[jÔŸâu½Ï—ÿÛçXqˆ]”¯qžŒÿ·ì—”÷6¡Y¤ÅYœòòc#—+œÂivDÉÊe[Q–9xÈ%XÛììÍÃCóq…c‘³ŸX®¯Vbì.à ˜÷c”CY[S ‹eJJ;²qäuø.—Ϲ|ÞæMÄ:§“epÐìp.:ÀÝá&hgiyq"Ǻt§«&a)ЯZ³÷caZj¨Ëý +ʲœA›Ì]­i%=–c:9µçÖEã-8JÔ—[¯ËÜ +š½0ÝdêöJ›¹”¬@sZX,fiȧƒ¶]™PŒF࢓"äÈg°X_ µÈÅ8Ü8š?ú‚B +­qB$üØÜ%A«˜¼¡`5”µ¾§h¹îÝg£ª¼6lUY£"¦ì¦T…ïÉ!‘¥¬-ž¯Ë‡9ƒ’š.öJï'Œ#Š*Z²z¤ LÊ´;’VÂeΊ _!iˆ+B4ÜÈLE]Àü-ÕéR]« +C#„[WM¨'l87Ms°½è ð¢„q TƺryAJ¸í‚ž´bž²jžF'xD lèáÛ¾@YÐ.¼(aŒG¶øe„·{zâˆ#È›à)vGllDÛóÆ“r(Nl\n¼”8OÔŸý¡¨X…¤®“ù´½§ä eáäsWgcÉ1INþy˜ŠG+¿­D;;¯€¿Üß¿ÿô3[t3{/ )'A޵¹\öýÍ6_ +c+'ßUHñæ7åEa[N&Œá3J}ŽßÞd:°X¾Ÿ—rı‡¢'Ógüøì·=S~ÿX …äŒCÙOšÕí¿S±sÒM%\­^Þ®Þ¬®šJÙß/?|zh,”Ç 2úàØlË¡·Å=ê¯òÁ»%±Ç`.Òˆ½âÜ`áã:àQ%8‡ÜÃC~^58›ÿ› +ÑKý…ú¤^ ¯–5××·«›Êß.š«m²äÉÂ4K˜*ÔùqŸ¬Þå÷H^wï¹ø_ëX +endstream +endobj +595 0 obj +<< /BaseFont /PNRYLF+LinBiolinumT /Encoding 714 0 R /FirstChar 27 /FontDescriptor 715 0 R /LastChar 122 /Subtype /Type1 /ToUnicode 716 0 R /Type /Font /Widths 717 0 R >> +endobj +596 0 obj +<< /BaseFont /TCFTCN+LinLibertineTI /Encoding 718 0 R /FirstChar 174 /FontDescriptor 559 0 R /LastChar 174 /Subtype /Type1 /ToUnicode 719 0 R /Type /Font /Widths 720 0 R >> +endobj +597 0 obj +<< /Filter /FlateDecode /Length1 1756 /Length2 103156 /Length3 0 /Length 103199 >> +stream +xÚ¤µp¦Ý¶-ÛN:¶mÛ¶:~cÛ¶­Ž:NǶŽmÛvnßþ÷>µ÷½ç¯[çÖ[5ëyÖs¬¹ÆóyɈUè„LìŒâv¶ÎtLôŒÜ„²¶²FGg [€ª0!==+ ™ª…³5à?waÈÔŽNv¶Üÿ‰8 ÿ¬ˆ:ÿËÙÙÊÛ¹2³23r³pp³±üy`bþ'ÐΑ›PØÎˆP`k °u†!±³÷p´03wþû(wÂFhäA¨hnamaoO(IO¨hgmMûox{€-á_÷ t±58þát´q"´3%4ýµs³°5#wUìLÝ ¨¶N'P”%¤”Ø ­ ]Œ¬-Œÿ‰¤"t³p6ÿÃ÷G+€»1Àþ¯‹Úš*ˆËþ åóÏ\úü}{€É?ÿ‰Û9š)Íí¹þ:Âô¯z'Sz[€3Õ¿%«ü9ùŒŒ,´EÖ¿#Ûß‘ýïÈñwäü;rý™ÿ]ª?+L´ÿèá?®úW-þ¯Jþ‚0233ÿ·%1ü©‰LÌÖDÄÎÆæOëœ`˜ M,Œ f¶0 Q©zØ™M¦ÿx—3tv´p'Ôa¤gdd"düë÷¯§ï1±³µöø/¸¼¡ €AE]HYSæ?|ù/°°;¡#'3! 3'!;!#+¡Ï¿S*Zü%1þWº”­©!×?*7q±ÿgõ®ÿð5!åß¾¦"üw&y;ç?]%¤ü¿°¨î•ÿçÎü+û/Cê2²1þŸ=ùg‡éÿÏ–§þonü+‹þ/òÿƇ%ý7}ÿ+õ¯Ìÿ‰ ÿËxÿ¡(ÙÿÝ´ÿ?Íøÿx²ÿ›iþÌ0áÿ›hëbmý÷TüoÖSýóµ6ùO£ŠÚXX{ü7ÿ Öüõu ¤ü?I9þ‘KÈÖÌú_Ócá$ná0Q´p6þ£œ¡µàëjuÆúÏ ŠvNëHÇÅù[ªæÆV¶''BÖ°þHýï'ŠÙÛ™üÕPç?}0t4ù×Â_ÛÆ.ŽŽ¾:íŸÜ¾›Zü©pì,Úó[Öw<×}s£;ø &²ëãÃ*ë6F•ÊÏûò5²ƒâ;F$% +.™ÙíÚ–&µi’ÄüTa0ÂuÏAÜùë{¦îÒÝcüñ@2Ðwleøþ÷v'³Œ2z$ ÉÉüqö™Êy1ZÀ%o†dÈA$Hî÷—„S›ŒvÛfÕæ/<Ç…ɹͧÁÁaæØßL`ûƒÖÙá¦ÓÕRHesõî+âz ©ÏùØ”È_,V¼n )Ç—õbWûÀÐ̯Åðy2¸ïÏ¡s]¯ú¸E­Ívº±"ÎFþ²fÆ\ùM ²XÞ™qâMôlÎk…¦ëx(ƒä¹ÆÚetÎkªqôbu%Ò´]°(øùê‹î>#¾°îÔT—éÐèýFf±æ«dö¶\#U’Ú§èÛ˜õÄáÄj±5À;ci¥Ä/Õ„c/ŵ!½P¢šš?\~™Q0Ûd„/׎TËo‰Š%YyOJ^!ǘñ|±Iù¦RübDÇÑsçN†0œáØ^äíojö8ž k„:$­m'בëÅ™J‰Q¿==;¦(ø¸žö ÌÈ<å +ÉkËÛúzD&ÞǃBd›¶ZÞIr`ÑuŒYÅžWþd¦A2·¢Û¶Š—Ò…ý•yýsLÄ_HU‹éѰä‰Âhj­[Ó½qÒ Ô7½ +«­|R— ³Äâb×xgbÙµ‚’Ôcw©öí§¨hÐTÛo’Ó&Í©ÑíÝ/‡—YØqxÌõlURÕ=t‡z"Y‚º Ù°Ö|AìAAWi$ž¼Ôߨí¯Iu€÷‰"‡Åë’/9^m²R° l2ËõòçÙâºïZ®Œ^2AúDˆ .½çó @ƒ›’ǜޒ€lž;Ø,·õZ¶32<ƒô_ðÑÃkî'"5ºª)wJÀA':ǯÇ| +Ô ”AÚUÝ‘J‚èžñQ;9^­*héî@4¶™ —=‘àqÉC$‰ïžO`Š÷W§C ›è‹Œ˜FÎhÍ¡?î½;c÷1L 'áÖkÆ„M•‰hDœGÁ¾Wâ`ëÒ +!!†ržiFÒ '©$É+îÏ8‚fÔ˜ÝñzRÍt}™lG‰›}k üÍ$”3ª¼Ž±‰¤Î–þÔôl˜å2ð»«$ƒ‹å(N'1Í#5­Ù‹OyÚÔ r?"žÃÈ—Ì6»ÛhDçV®”¯Z?Fq4÷~ä¤6™‘wß@i‰qûÁ¢1žÇǘóJ‘Êh™ÖEíÎ2—Õ¸/dz}qÈÉm-þ\\ß&†?(Qß|Ø —>6tpÅd©º@1®û)v¼ÕÅ–ÏšE’˜» 3þ^¬³×2à±Z/““ÑDåAÙ+¼xw-º1Ë«Îí©ÜÀ?E¨ÜÊ-!\×;¢—¡°1M•ÃßÙI\ø˜¼–4,K?"‹Ìƒé¦£rÎÈ9Y=¼«Ü¼û ÅùdO Ú'‹Ý^µ^`"DŒÓŽ”¤Ï ¯0å/ˆ¨ö!˜i'voŠXNå`|šìã›?ÑÔÅSÌî¶m3ØÙòîIJܯG䟵K椖ÜY±ydÎðrn»ñ#ÜöƒÝqV-Ù›¥Öžå)°< +‡ž—Õ$žæ–õ+€½øl&ˆÇËñ.°VWN,ÂújÙÍHwéò…0³ÒÆæ*ñ㩾Oe)ß^´5aªÒ€?¢Ô@ìõ-dqHà£Õˆþž±'Ãaœ…ý•k‹mÚSŠËø›7À¸üaO¿0Êy$™Û²žQ©MP¯k¥°tVl†mG9pv¥ÓÓ¥ÂÜT+‰ Ÿ9Ša”=ù©ë•x·‹eDSÅpÿx^ðý4/ÍSüIv$™¦GÔ$¯c%‹¯ {ÄTt›$ö¸@]Û$ì QõCð‰7Ž:,>,=5h÷¸0iÅ ˆ”ÅÑPÍW“•Nû#ÜŸaJ;Cp«5 e…*W?*{ÒÍ%,y÷,^å±Aü"0?5+´FÛô:Q/Û9„E/ª²Å²–(4ð§ ïXªÎq——ŸM ;~ê“bzª¬ÇƒY¨DÎÚ(MEbOÚLŠtUá¡~OözŠG[»R§Ï˜Äð6 t¦=Nãè™§áZ™¯¬ Œ´qÃ7X~Î6Íp)yŽñ¯Ù Êl˜aYÝ¢ÜKP‡ØWëê³×À%5Ö!âô…i%‹™1/ME;DUW ÏjpŒÛ¥[ ~9íd¬±ê&ÜpÁFuJ˜úrgÆ_Š©R‹»˜1$ùD(‡ýaÇonÑnà/´Î:C¿¥`Îg·èHíOvã@ÝMD„ËkFVÅÔe£n;;fö["×hÎMÅTÌ>lÙVlQʰR·`¦Ú.9)/n.úé'jD"Ú=Í'_‡ýµÊ·šŒÞJ×òv¸Ô¨´ð-)^êŒNXŽkÁfÞÆ”!wú&/ÅnXØ’ûf3}n!{³lO PŒFój[ +ÜŸ$ö•΀f<ÑY¯ŒgpZªRâŒÇ,ƒ.0b zSÁœú&ÀJp?l]ÂâLÙ·E ǬfÛËÙïC—“H&?í²d?«BÑû7{UÑ L—x˜ÂŒÌ›6xyiy[Uh›‡|Ýêçj424·:%Õ b5ëá~ž>Ô_h5‡±Ã0÷ +«¶æÿRV{#S¾ gÍa^[?õ©“ÍuÀ|ÌŸˆ×çÕéb.Uëše7×û œÆÐ£0`ûb芌 á=Ëï´Èì±i#œfH¶\cù#í퇂À~*»â8åg»BÛ…|[>ÍË×!uZ@g0ÿ]D{ 9ÅV…ÓóKÞ•á­pçÞh »#5â÷6†= ¹Òþä™ìE©OœÓ˜»D7ÎhøLÔñ7!:æ}-Ö‘Iþ¾pý½ÐÁäC’ð ü×£uUê¤ ñq3òL+`ûè +}‘ûŸ:¦YÁ_ݦýJõÏÒÉù¹vQÔIŽ%^ΑZ5ŒRŒ¸Õo R PDÙ½ðÀø"r#ÈÏ]ÉUº8AdE\Rî8ˈ[f˜’/§àS’ÂP˜½Ut£BX¸)Ù'úâN(¯ò(.êó;…å½Iß0™O©/M¤]F´Íú]fbO½­>|`¯›;ü4BOæ»{.5Ýoeýzɘþ™Î„œ}9\<}wN@:¹;g»ÇX|eTÛ”lDqífeÓmŽŠxúµžuã¬pcýÝSN²Rã°î¬¨ !n&7DýÇó›Jbhì4é»Ë–öADXnB²ß²ÇM†(X2ìæ™™2õpÀÓ·LauœÈîÑ&ÇÍ+¶Å9$“!w бž W(*Bögý¨•Dá‹Qñ\Ž6©4 8Ò.b~q{¥e½æ€ÍèT> Ïôf¶Ö÷Ûljs¿ÁnïÂÕÇÐ †Y?f äàWÎ\Šp\¸¹YIçN„ÖªBç2ͤiqd 1Ȳ#ÑÍÎÛ $jùWÇ`•øaÈÙIfÓoÊ<#/odÛJO…`L|DÄ´…÷r’Á©~2$b8÷‹ë4 £\”ï¸Ô©>Fù6vof̧{3‚§¼ +¨A +ÉÞî}Ê´z ®z‰Ö,¢4%"ÂÞŠ9©*)¹u9¿|êT!¡ÏÄ“L¯ûÉ;òD^á‹'º£d [èr÷«µ^§Ž Ö’Rí=ðLÏèlúÃåGpÏõ=)n«ÇHiiÇGE •ñD±¿w Ä—wM3¶°rµIÃt>èòk£k—ƒ 8úц-}2÷½ß“wœr÷„Ò:öpÜ›ìf¸¹'<ªÇG#¯Äw;ÖÍæº¾¼!†„øTJàȃ¬ô–j÷q)#"5O"Â]7‘y’[9ÑNØSc»Cãµc|k}%:Ú·4t50’É®…‚{çOÎ#Éh …šRR +éR?Ûãqfn|9£$¬Mœ±Ç»nK¶ä}Ò¢k„R­n¶ºíTja?Oóø%ÀŸ…ì—‡«Rh\èt?€s†#ÓÌK_uìÅ|}( º¾#jÙÞ/tüg¸ä±2(a°®M•™øw…ySÓ³á]‘ö“wè|ó%§Å”4Møê“ÕFr‰sÓ냑€ª¿“·_s‡Ñ 6¡ˆö†".³fJÏig€R‡xÆCÌâ­¾…AÝóäžks˜$õ±XÒ"wt³‚ ÁÊ…ùïv”ó±70§å±ÁîÂ5.åàéuï@çåPÄQi Q;‘ "*p€™?ø·˜×xÓf1Ì]Ÿ3"0¡àÍÞR’FjêJ‘?R¸m¦ñ£F‚ºhÑ _ï9© ÿÍêù±f¶bºª E?©cÄYE‚°ü‰4óä·Ê7-ëï»þˆ’ÃMšjýûâíMG‡†öQ„¹ë6ø#²ÕØjügð³|¿Ò›egC¿‹¦?½£™þW³/·@Zn`¼½ÊVè¼1Àïlk–ÉÕGG sá;Åi(;Ï| ÿ‘À™jfÕ¼ôˆÇ¶Y ÃÌ–Ÿ@ X^éüFì³!S?:Í´Hâù~O$ˆuy¬ 黋­ÁyX¯)bànRÏöìjñˆØÒRHý*Á®éÃô¡½“íti^7ß Ýz«FŸéþ*°ŽÞEcùÉ;)æµã!VEr9÷ÔjCm‡ S,sÒœ`t¾"åL߯†s“)_—bþ¼½ 7póRîB bI(W38Z^þ3jÀ Î#~&ÕŸýÂ0w0‡¨²0}tØFŒË,H·P\¾£—) >™˜X^PùöÔÏ¥g$Ä‘&šûê£ãš’ŒÓN“oEÌvVFvzMï[ d6'Pñg•,g¼=Þ´/Òÿk!*Èß%çI½Ónï¼6¾¤ƒœŠù=7#TÛ}Q.~Ô@‹)iJçp¥;‰ÌÚ²I®ì´Otlñ¥rAÍLE´›oZlÃÓÚ +“ûĽó^÷ÇïTõGµ÷ÏØºÅ)«NœC–nͪóàÈ}Î3ÐùhKqÙV<ÈJ$©"RºÌûç7ä)ì¿ý9·¬ÈÁh]ÅÕ”+ÄT‘¤IZPÛÿ#mØ–eÊMmÏÑæa4¦RI¾ÐVõcÈ1ž4èGÖ¾ÅYu¬–q¨òèÚ1*¹â³eëJeêÆ4¯u±ýC2øCÇøõ€¦ÜÜÖ}U3x¥¥gÿæ~ÉÕ( &/Lä®Õî/l û2`äÄ€ô[H5ÕKRÒדuRV´¸'Ñ¿lþ|¦ªHº8öoRžÊ\£Ö߀TŸÑ¿Ü;1#ÚªCÄäp:1 lײUÜÞa@¼jÐÑ:s¬4W%È~ëJØbC’²ª$Lýز÷™ÜÜЇˆPù ®º-\¸2/‘ɺÞÖ*ý…„çD©`¤ŽT¡Ÿ±×í=mAÌ/,ŒQΰ—™ëŠñH¼géÉÝjÝ›+Æw…J~)mœƒH1e&œ'SæhƒG:ÏñY|þ4n£½ú +¸ PŠÚDV¯É ÊSÅ×;àä£/?TÉswgâß?ÒDÍ/鶨Lì[i}§ËÎþ’áv¾NÜ>•hTþ¯gp$6KÈ£"¤=.dø£[ŽÜ X60ÌöUÚµ帔iuÑð`ubUw[± NѶÚClö:Ê>M˜ZŸT™ŠS™–x2QÏJtÅüvÒn"~4¸Æ¢5Ë4Ì~¥*i7ÌÉ¡í­¦OlÊY¸fšÿŽ÷øúäžÛj5p…æ Ýtc¢“@§Çžä׃µhVÂE¸Ÿ/wFNYï4ÉÞ=)k£ r2 Ißâù×eÄáÍéGs@‹äÏÒúÏ-Ðs¤rûìK0™mjŒÑ$™EL¬ˆ¢¯[†øÈC]7EM"é8ÒK1 '¢§¥F%tàzô${ƒIÂŒiè{Z±IOdË:Ëá²]Ík0ïÊ}ÜÍØ¦Û>âß\?éñsê÷ˆŽq3¢.š+ƒbW¤i‚“óMVZꃺ=[zõFº©tæµßð_ƒÑÃ~·àË1} +‰Ë_(:ÊÒ‚‘“þ^¤ol£AÞõ. ¡¦ ÏJŸ‹e÷¾Q)jG5r’\Ÿb€•7\¤yÎüͯÍY¼Úã5D:ŵðøbX3øUrýØÍíRüpà.x¶doWÎÉ!Þö$ªøü³¬ñg®´s+{Äw ‰1f^p¬Ð3eÁ0”t(2SgvaÏß]¶†ËÅÕååy¥ÜÜ—Ÿ™ ¿Ö¡ŒO˜oÒòŠ’ZòP•𥯯öòŒãæ.{×ÕœÙ#¥ãEÖ©91ùŠnG»ÓãÂÚÐÍ¡•—÷J*6'ft'ÕÖÁgé—Ö]©HOÅ^Â<û-*&íO$²¡ÏSÔ¬˜FŒÕˆ¸>›sˆ]£‚—/ø­YOHìÑÈ*±Ùd™1²XE„iíÁD8ûyñ–YÙž}w`Ð<):U{ÖãË¡™šÇY"M㚣ÂB += r4Ó…ŽÓׄyfìW§±bÙ7í]|èÝÅ+ £áŒ™Ík/žÐÎÇãn8~ÿD-ž°#+[Èk…¸ïz7‹‡ii¯›0I’šò.¹çÕÃ=ëK™ØþøW9™{RæïÀ°J,Šºô 8ó²äS…)‰>#øÛøx&j¼=ø¾w¸ ³z|ih ÒF_ ßp.Õ2û›‘?B8úîPl¹‘¹aàÁ Éï†j€ÁÅå2¢’`]U‡(ŽöyÚ ~rOˆ*óêŠÄXûÔj¶š‰4¤°ðuï.5P鬸›«0É: +’AVS}/mhôöøÀ|^œí{»)Áö³8²¤j†$V’Pè Ò§˜¹ý‚}^&ÈÊM¬h§)ôÔr÷þžÇï =v5y?µ¤À®Eö[b'ÙWÁðÜËñÁg GR«G…gÊ –(âð%ä–LLJ¬…EÞqxlåYù3.à’dKÝ‚m3Žh7ÍòPvm2(¦ŒÂ.=éRÀ©­¤)kõ¶Ø;Øù«O~£'8å$+ohýûiÙ—.± UŒ£+wE0Z³´ó6øØZBç#)–åáZesU¦¡&`¡ó)¥•Ëþ@dü“GŽÃáÍß(J[Vñؽ{ vpòÑ ºÔÂ&ƒ~®¦Qî§¡„¦¡ä‡>‘`La0ÐéÜa5i/å°DO/VÃY‚T½ÁQ­Äíóäz u >„éoq-[l&` Í"%÷óPmØ\JBþû2›ZÛÕ’1òý“ýDõ¤GüНÍH:¶V„Àõ#28mÌ|T%Å‹–2E⾂”¤xðÝôåW@eȆn[Ìöè3B¿Åm¦¤¨f­ÜgÇ5cj|Ç­ n+ëh !íáæZŠtìÅ=ì³iztoÜRÞø ¨¤òÓùðf$$cš!‰$Ê+"7J ܬ Ö#˜,¹ˆeLã-qOLúÖ5[O‰ÜȽW=F˜$a’Bk,ôÙ`ååå[©ñ®˜çóå|…Û¸Ô‘•æÍohºZ×GøÛ{KÚã¿||¯Ë½m•-öC¾[}*ÄG‰P^€xƒgû›5¿*c :ô $¡“i[l³ÃCÉéÜ ð%a—‹Ó·{¿'%LkÖ”í?÷ }äj^Má(oÈ,|+„E£Ñm¤·÷÷‡4ZòeÑš)Ž Ë¯ÛÍœ]'«²ÂEºùŽjLƒÁûMæWB5‰)ïê=•ÞàkcjPë–w=áC ’S~ݱŒŽqFnÕ‡ÔõhI–}äqüºŒIs+ۇºF¬§)à’¶B'æó×ú.¶š<Î +Í^ݲi<ÈÜ¥ »Œ°gâÚ›ásóÃŒ¯(ÇÚÈ8âÃïu¨°k Ó"¯É× ë¼*().猪¨; ,†Ý@-8Úªv睊·à¸eØ‚BËÂÊvt LäoAðä˜Ï5 «Ÿ7ú|;º«§÷ËŸËÝk@H\é­=¾oÉ IìK‚K°8ã—\¿r¿]ù;´zZú=§ÅÒ31LòA„÷à][‘•v +Ži爂yñY·ðeúÚço>m$ƒ½4s‚«£õBR£z‡«™ð™+«åsË”v¦¼B )";ÅÊ$M;[¾´öéw +¥|«™@?rÁ &÷Åö}%ºÄb ++A™è¹Lû<²TƒwóX]ÞŠ-M™´¡ñ[ó‡ÿ9%G/ òd¤Â®GêÝèQb®)¥èe!Õ±–ÜáN]š 'áß?Q¾Ð鶨â:£CÑš¬Ã¨"ù[*ȳ¾A>äÈ#T£Zþ5êû¦zuTKQÕ,Ç}J-&PNNáÇtC!°ˆk„€u¨&é6¼0isšl„>^[Dg¶÷žáíZöËåÁ“¯…‚W@„ód€OZnɺöËÔ¤ùý5M×°Ûá˜aœ“±b·‘½ýå6ˆ:`“¨/,QQ曑—g\ÕÈ;Ä$$óhð"§i.6…–2›#c·ãà; ÄGüÞ퀼=@@\‘&¤i”-’Ò|Ì¿ +»à„ÆÅ˜´DYÈîŽriO‰]d +æ½LÅ·1¸vÍßÁ^¤XXÓ'c×-»&by妿÷еE?ü¬*†R"·x ô0ŒÐÉCŸõŠÐ7ôM"߇Ta4äªH,¨³"Y¦¡qبÄÒežœ’”Ñzd¸–t'n´H„é“gõN‚õ8s×_óÊ£9 ÀB¢æ +ñ5,( +Q5oÁ·Íf°Êjã²Vþ,L†Iš­×¿— ²64òõ=b€3«Å@ª¨¡'‘¾œ¬{'Nt_™ªcI&ˆQ3ݰꮘåEfEå†Ü©É«@¡¾Q{§YôÏ™„y0`}ùh¡¨íå›PíÇ•WŸ>ãOP®©eÒÎD5á¶T±ìÞŽŸ˜¨Ã(Ɔ(=P(ºH³–•_îÔ0}ù,¡¼I!5}ƒNŒDí[ D cFáJA©õš dÁ«-­}ÚJ}Ÿ1ŽÛBÚfÐÃ@ÈÄ8T +m´éê:g?Q[¡olE¢¤àŒö;Qã?¶eY+BœEN”~ +nATš;Gß÷ù,Étfâ­!) éz6~´áç§2äºÿ*"ÒO±Ï=ÙTþÑ}Øpo ã•_“¼¢ßDë*]΢-±§¨ÝV_]ÙÇšîwêuê賟³í³ñž°ŽÛAçÐ'šw%>Ì@_—Tê”{ZÀ´(åÅÙlüí”¶¬]g{‹Ö™ü¦ÅèÈ3 +"Âkî0Ö Ö½j0¼¿ ëCI%d³çÙ˯9^ï] +þ5@#’‘‹Ô 0Õãó™Ã¬-+Ñå‰)éŽÁ>üÇÞ+¨Ä¹XU“9=‹àÌ$Ì÷©ÀÞÐ8»}¸+¼^ ´ÖÓ‹Sdô`[ø}·KŒÑΙa‡T1»¼@Ìh8Ä¿|М¬ïÈ,š¨ä>µjgÍNÂ6rÛ€"¾‡xÊ€—{Ìø®ö'˜Ñe¨[÷D¨Œè»¥ªž@ñ׬t2†ÌTIðõ ZÆaÊÂø#®%Í_ ‹"%õ‚3½MMÎÆµ‘ð‚TFö¹Ü^Bc“[äg•îƒI\ATžþX`oø1Ï#ûïýÅóÇFBå¾/‘Ÿ¨ e¸ƒò¨Ù xn÷À‘éÈ›­VùçSázÉ0m”:‚Ï?tý8.S‚ôf¤t¯(¦ºg‡Rì}Ù“öHpù`‹m‰HºÂ|òï¿îWR`°U× ÈˆŒjŠãØôà÷!Ï-Ø ôr ×½<2,TŸßb-;Ó:Ö˾ÿ”eÄ¢v\yá]qKW—«²Ñök…J¤¾Òb}v]؃iÁ7:ã%€I#w/°d€Àýè`Fs§(Ú?–xåä 2;Ï–4¹»kù&•£xò 3ô£|̓σ\ßPZ%‚f!ùŠÊSýžv³'y6Èû,B´=Á>5øÔì» ÞT¢vpùÑ·X„á–pÇ“*ÓÍŸŠúšg 8/ˆé4ÚÀ´»½¸îé)ƒ‘i èÄ+]Cy%ùÇmDJ¯Y;O1tgA‘3ú„j²Òc„m¾~©ÜÆn½ ,‡Q˜ì¾G®B1['Vï~¦pÈei0ØçûUØÔø½EìØhœö힃ە@Ô9ƒÉ­•ØùüsBo¼j•¹ô3Ídzþúƒîå +­ùøNƒA»ï)ª½”B9ÓÛ\?ÙÌ8“%•ÂÃ>N¼È?È´i”,?ë·æFO­Ódä€ÔEÙoÉ»|š×ýÓzVjÞQ,ªe€¼”í!Å'•°@À¹|xßræ4=Ú·é¯}AJ„K¼pO©¡­\Óõ¼²Ñ×H¸&jÝŠË"BsZ¤%Õýq“ÚÇcê7P²'‡‡‘£ò€\>¥³QØëLÁ)=Å’Z¾iøeÑ™D‘Ç«ÇGÕ¯.( ›J¸'ºt€Õ¼=2¿0„ã§3ˇ$ª¿7³uijÜÒ­4 öžÒ®ÇÁ®qwèÞ5øyP˜lô +ò—Ið¸hMÌZs£8ö:fíh k”‘SuC[XÝls·cÐU¬%ø¯¿4ãÄÕ áØr0}Ñ^ýJÙzž‘ù\‰RñK墣·¯Â„öь⟶÷‹3=øqÀúòíçAwzÚ‘:¬KHgj¨{Oø à’3ž4(옓ÂöƬÔÛe£fʆdKçEòc»[}U&#¹YV Ïoc’dw¢„N1óž#ÿü¶X3÷ÅLÎRû¨ð}F:k¿jõ£Ç)A)›QñCÚÔõKÈp€ÌySØ.PWç_Á“ Úe5¦£ég³qçT÷´3Ezk÷ÀEáŸ=÷ùš Ó?3 ±W3ÂL‘Oï0á‚#ÛD­Ð^C„+2–Ðêz-IQV¼ŽÓ¶Ôþгü+ŽLS0[”ŽÎ–×^zKÚ˜=ïÆæ3mÜ" zÅIÎï­Õ[à› íŰǯ™º´Ð]÷z/ +ØÁD¹N¾C»yÓ]Ó›Ï϶j~g„Pˆåë"ŸŽÛA~ý=`^´ ¯Rí<–ümAº§ïVÄ‘-ëQdÜyÙy}áï~­Q­ßÐ*"3Ô”VÚ îÈŽL('ªÙV{ÈÖDN0!е_E‰øÐè¿&Å5pˆøP̈Kb ¤ŽTçXþESŒôDEdäœû²;¿XIòeî„eƒvpäS ÆZv1š]h›²yC˜¼§BMoÈ¿]eÀ± ‹6»øãndž1S˜ÉÕÓñB¨¢Û+ÜÛóò©ÈrUæXì±Èó"’àrÈöyuûÒA!®žÙBû?²·êi°Jx,°z«ì×W²›^ŠMM†7XÂ#äµS ·U[;œ±÷õ&Âp +m‡žªñü^SšPF¿Îb«šiÞâáÏ Ç.ꄨv +GB#Ûi/í°)8sñÃl¶e©]i¨Óp QàV8¯jÝã/vù*FàòR1ûÙMó“Uó_ºVèÔµ5y¼_K³¶QÚ}t†Ô¬_½cÞãëç0*UõÂk¹)tFϧ&ª&÷ê» ɉ’þ+ÄüóGßêK ÿ>”Y0*1a"‹ÎÙÕ?”’ì)H0Ž×€X꟔ +¶¨öÌ’8柀T?¶fg¢îãAõ0ÊäêŸûÖð:‡kÐŃ£T%©8ô±Øç‘£#`Ó¬i3`Ž*è|¶8+ÔÝ/¿<ׯÂjb{ºD@ð}* ¡”ÌÊÞZŒŠ£– DŒOÛ.UEá'Ós8ú‘Êb8>ÏåŒà/<ã6¢ˆ:ƒ×Ø׌ZäMô-öº+mÈõJÕ[¥[Ä0ÔO»få2GÛj9€eFñ‚uëÀ£ÕGŸ’ß§ôáPk:Hí +ìÀj^F¯÷ì®ýƒ·J鵌҉{äÿS=ü¡hñâC7 }‘ð'uœ=š›¦D¾Gðiº™DK«¢‚Ô‚´¼“û©ïÏ8¶´'‹ J>ÓÈsÍø8·ž +—@YVŸá!¤ìQýðƒž0„0…OuKs nDÝIbi_è†æ™­ãÍ„UeeôóV¾¢6:²ØIÖÆi¨ZpI@k¬¿2¢,íâz6µÜå-¼Ä7oâÍ+´žo„÷i+IÕ¿ÝJÝÏ܈oG‚-ÎÆ–ùÉtÔF‘²ïm@vçÄ<áuѱ"'%¾ùŠ'4îáØ¯ß³zÑq†s{B­™ n/,î|°Q‡ŸDB‡”Ëb½qÕ^³ËÏ·­8¥Ò¿’g}T–×ÙØ˜ï†‡€tt¾Îõ+ÞØ–°.¼ÖŽ|¦œò]°½FFu&±>€£KRô}ÒWkÎUÐDšL£Æï&tA%߇n¨c³IÔÌ4ۗ鬙â€z#cÿPœÁ7‰‹¤]D@2Ë/Æâz=¾º­Éõ¾éD··áÔBul[ÿy¡X‘½Òl@èQ?lc(åùhS® +h&:~£ØEdIÌÌD=jÄ™øŽÜʶA¡[Ïs²dñB@ žÈ€°s‘Òè­ ê>&g–u7;ïÝeâÖ˜‰ +Öñ“T‘»1 Íiॖ²µí +ETÖQ®tÏ>Ó'ŽnpÔeEš¤­ÝpÚ]£µå +)¿´ÈA*³¨åG…΄Ǫ×cT*T´n’ýY|ÿY=@o?ÿE@\9³¸²ÍB*¨± Îmb®ÀVòs›TИy6•#Ì\¯+± 3+æEþb3ÊE*”$è,îp8£†¬â¹M‹À#*e³ôDvfážíî øQï©1µœzâ)#dÓpÒýƒ*¶µSÊÆÎ–‰ 7?-Ê)oËÅϪ%u_wZÂLf‚óWè#qgªCsÚš1{;®«ÓwÝ4׊Î5)¯‡`ÖÐCNðÁý=<$5]÷¨@勵ôMïv$Îh“]¤ÖZÿuBç}éícÖpYë° £žÁï¡¢µ¼ÕØ ÉÎ+Ûüdö)È _;”è ŸZñ< yzE/ß=yY*j\—³~F£ÈÕPmH‹‰М×`ªä‰œßÙžÀ;¨³oÖ Ä!7û™KÖéeq]ßü<ÁÝʃ*§LÌ'r†ûY?Þ<‰¼J "oÌJ<ʱÎp,GjùtëzÀ;8vϬ/0’¯»&3–`¼î»š97ùd?ƒgÛúxÏWoaLYº +Ç{k ®½ ¿IÆõ€òP(âu)nÒvtȹ* Þ»¼yjæ"§[t±ôõw¼œ›²E1÷Í .]½Ï»ñ°p¹ž‘_ +ͤ,™£à ->§ZJ¸8D–qw˜¡äºyŸe ÞÏ&½>sÀpžŒSÈ_þ¢ÜÎñƒˆ%ž²²èyTù ÷Ó>¥x¸êB†jOV{ºÛr5¸ vU…M›êH²Ý L³fè›ë`q6f”ººÈ˜šÂAÈuVèòZ÷JÐp¤ØÌ½Å6äì[èîG5ÁCé¾,õ¬Ù`ÿèÕÃÇA)Ù*úÞO t”]ëWÄ`¡Ø‚y's'ÅÌ‚Ž@W䞎>‡]íÀKDÈ^¡Ä‡l À¬¹4ÅB«fçŽôw‡ž¥QWe´êMz\Ý ^–0L†æ§’Ë‚1„É·ïaJ|Oü˜\ÓÞtK2ç¡øt¥º‰ØýYª~(3Ý+Ä}âÒý…É}â°ßÉÑÂàj‡ý±º”‘-5­éQj´ÎÇÖêÓéôX[T/cÊ?=¹/v6aw©?—=þüÅm:*µuS0P¹v±nˆÈvŠÑ¬\zÇàäaÉmÆfL¹s=ã¢o.I+@1+]$yópé‹ñÒ‰z…óàÅCÍwók´87ÇØr°Û±ïw&äø é=·`9ïŒfVìy×¶M›TXá3•JZÕѬ2ÕÊò–ZÙ‹q~K«WëvÕ{ÂæFÏLqµÎÇ2Ò Î®<£’T¹uÁb%%‰îÍF»õÉ[Ü>]#=öÕ®OÎrko¥oñSYß"¿®¨xÅÄ3Ú4D3PÁ:åt8µ»A#tZ£¨É/ÊOÕ;9#|@¤ïXS¨Éz±[Öy·¦€!óT^å9¶«øa oW#cåHhlÑ»–õLÁe3ï¬þ® sÈTå~üX“°´’5¸Ú.]WYÈ¡ J<;&­/-}óþÉ0¨ 8¹¾{Zǰ¯¯õ=ÛQœ#õ©¶¸†³ +?•1hôˆÚy¸éÆù÷< ê#ÉaZ>N(Ó5sÃ.0ÿ[~ųÙöwéÐ]&%‚ÙÙàù‘ƒVº¦”>^ƒJŸlËêgÛÓ×"ø!‰JzQX…JìÝ5Íìp´1rZœðTÄIY0ÜÀµM¶ŸœÌ¼bÖCB1Î ›FIi’âå5œG8+?#ÕDÏ™ÜpE Ή0iþœCž7QµÓâÖ~ÔÕÈÆ‘¡(ï *â$Ã?DÎ㺨SJÿì:¦¹~cíã|²Nw;ðýÈ›”k|ógƒo¯?Öé¨Ã©}§ËÙÞõ31ù±fÛ­è„ö +RHQ‡ö1Å5-4Á‘ée.–Ã)tа‘LàtñŸºQ¯ ¾€>°šëNôÒ3³ºvèÀeºð?ôcÿx[3ÑÀt +'?îKÜ1Ý+kÅtdÕ¾ZÞÁ/áŸx%FÖv±¤ëO4­0‚Ü ^÷S@\lW^o¦LúÁ0hTYgcn„ð0WÄOmò¶¢âêŽ!†'s«¯¾´w¨¬x Ù*.ãf»8¥¿hèëtκ„èz·äßÑæ 0­ÝÕ·&?£ +™ÌíQÁ(Ñõ.MjsãÜbc?Æ“Þ~¦‹ÍǬXÇ×fä€áŒ½¾‚æJ§e[N*渗øÄÆX¤?w0bûîâ†jóî  yu@¬£s‡Ã¸7ïÂg?´  ­/íÎÅKéhéGLˆ±‡x*Gú+Oß ºÅM'êÑýêrÈû¡ùã°À¡ƒÌ6B­i‹Ø¾(6¤Gå¸1y8¥¿s²ëþfÚ£“Dµ¥'ühf¡‘çÅ6¢Ë!VÒ¨˜tsJ½2çäaD¸*!’¶ˆêÞî!ü+Úõ +… ^SUf³‘qÁ@ ÒŠÜù O+®¤àgw!ÛX¼fù9ZHKô¢Zž‚ïÑXZyA©—|E9àÖ¼Ã,šýËË7+ÜC®:×ÌjF›ï^t긤t÷QUåVtìþ@þ*Š2ðò¾óœñádÇrD|ŒŸ\¿/Uzñþ†Áé…Ko®XóäZM.’ ‰iÜpòu4Û­ Çï]Ê.¾ì=IÅ%‹Ôø¬´Ï£r^tj ’¦ølâ­ÏŠ­ï¦ÔÔ:jOn߆iìÉ; +rŠÓ„ÌN^¥Ò}Ø{\4F@“Ýà©<>ø£9·¦w´r‘Y„§Kܰ˜£b–1ÀØtáHšwža«:7kt§r}›¨Bßrõ‹üÚqeábÜ:ˆÅ»RÔÜòÓhúY•*dHkI×Ux&Mí]FaN|•5á“oª'ÏW–#3RN†õÞ„ó»Ö4màvc¥1ôF€lß–€î6 ©xöò8¾ìj%Ÿ~ôŠÀM§ñk­ÙRD”@(s¬žHJ–ûbz{›y„\Yi¬ñ['Œç•!qgD1$X¶í˜à7ÌîëV©Cãþܦ÷„.U Ÿ­ œ¾Lõ2Eû]xyÇÙºÀÝ/a¹™N釥ǤéÈ¢˜rSÛ@yyºñ[^g¤”ïÆIà´¿0ÐIéœÉ n­D‘ɵˆÊèkÄÍU mR cIÔ?ò¤Ö0bËyxº»RÃ9Z~«gNBUe3È$Q>„tüAkÄZ§ fRveƒ“!H9Í(qjò²SªöÍ­z ƒš?k‘Á5]q63=+žÐì<@v45iI·JëÍ+]›‡µËp==\––¬I,âŠ3è†ÂªƒŽ‰FAdpæÅR{c?@æÆ™Îxí×øZ4ZºqÌE£¦}ù}Œý[’*vŒWßÐ ¸]ÏmÅ%Z( Ô·ŸO½¾DåË|ùØo ãÞ˜qB„HKç0<ùÿ“6 <ðÅgœzOP|¶²ç3~²CH¹z½)îÈh#KrD•ðVoô'ùOn K.Š  ïɤ=ëch fããÁ(Ûàµì&,­›(×tªpqþ~õìc¿]ä½ hZ•ìŸ Å¬è‰ðFœë°6Ü[¨Ó÷vëħ¬¶j}#®oò·JG›Ê”Qœ(uª¿qµ'¥Õ·«Ÿܲ<~Gtþv!Œ| _ýaQ F=õÈÃDgÕþZº]ùé$stëõ¿6¬ß°)ª“–Äb\þpýJ+xGëÎ2³iªÅ•W¯etÆ :rñÌ´"ÄòjqÈâàMö2Ðç^÷u;õfJ‚E–9MáGËúy‰\ÎTRˆiXmÆß°?™Dð–ª.…MH*þ#eòwê˜4CMˆ jŽo<¶†¢«ÝïÆžúïdÏ[µÎ‘V3sgò½œ +‰U_­J¢ëó]=¶Â¤FC$Qò‰{Iú—C8Ř¹VЇO '«3Þj¡{þe Ò +±|Ôã0œÜ·1ÇÞÕŽ¦ QëšAzhËo`ö.<´ýœëU$zƒK\«4‚çŒJ'‚q€Q…mûÐoy]E«ê ù'b–g˜ŸéØzKͬ§¬#Mµ…†â qùâ(LDèôîªÐ<ÇõTR—“$µŒG…%êiï~‹m¦dY}zªôËNî ‡ÞfŠWÌ’£ìƒ²Ú#$[DE—m JøÌ® g”èAT¿3¾>x—ðôõVNS±ÍA)Z+ÑŽ\n¶|©{ÄÍã Ü„\v~ÊÍ ú¨¿b«OŒMÒbËç5ÀO…‡unOŠ@ƒéüø”®Bº`uÌý9Uñ$+r[¤—"n ²©qÙŒ_SðJþ׿°Š¢ ÑØ¶mÛ¶íÛ¶mÛ¶mÛ¶mÛé·zx¿¡&µ :öÓº”÷d ÔHå3Çt5Éz3?Æ£\óäè÷MÄëHq¡Ü/à ½A,U§´µ÷Çz­ UÓ¶pŸñZ«¸P:Wɇòf!›TR»Z +B³puó鈰{‘è^™÷, ¯»1®}²4ò–®|æ¨Éféjâ`PÈ ¤“ÞsÚŽ÷ŽbßÅr’"ªuÅÃ=ð9÷§Í,þ_º—«4ðA÷¸ŒZ„ë÷ì¨ßj7÷Wy&®!óZw=~ÀœËHÑ*g]˜ÖêcŠ6‰9˜(+–ŠBM¹Â¬j†ÀH:ºù‰ÛÃËYH§‡“uå/6Çì7í…a¯n¸†!µ!^ p‡æyäu5òíε…kß9H[…½ùÒx;`Tr pÑöòZteS³&ËÌGüJe–‹’ÜB¸TG¤´“¸òÖèd<*gH†÷rv}Skeìä䋬ÅļŠ=„ÒèQ™(­ ëî߉] Cj§íÅ÷uRózhû[7Êb­­›¸ëÛ¿¢¦˜Õzâ%è]YÇ®7¿ä¬ý:WÃý@F+k,¸,ë$ËÂvWD™7ï`WÈsyÇ£{µÂ©¾6$9+­蔆ØÍÙ0ļ¿‘ù¾¶^3x9½W#H)Ú<θ%–!ûæœ •°°›¶ú¾Oè‹ãs#¯?ENV³žqaè°À×- ß”á÷@*¥š3•Öµ®d{ƒzìXˆ ¹‹vu-ÿ2¨LVXqµJ.{äú9•Ÿ^1hý sÖq;îÝí ÏO +)ÉGŒ\•É{¯¸- â5Ö!]e¬_hjÃüS†:XTuë2…∻@IëÒ+ó%«ÞÀöi¾[ y+¯MJ$Ò8¨*ÄÛë 0µ ö¶KÉÞ Q¼Í~ˆ¹®Ü§/¼•œu¯bÓ.eàGÂÐV¸†Wõ莒ÈÉXPó–éZ»¤N°Œg,gLŸ98KôôON$éÑ ô$Ÿ?Z"Y4‹Í%w8t$Ê?84=;ädð;«ÔV’|*W]î&W2ðê~¢#bãØûƒ¨Îm`©¼¯¾ÇG6næÇ±õïáÐcC`«¤¸öïÄ2iö|Ýä< L¢MÿN,Ub¡c8pì‡ÏŸÚÃM=ýß!È·z•â>sË`î9æªeK±-\ÀÁ•—7§Û°Ñ³,Ðz±‘òá|¹û=6y71Í‘H™ïYò£‚é¶A›ðÌ;¢š;^äWŸlE~.¬ç¼ÚOÌi«·ÝòÌ 1øuôN¿SÙ‹ “#†éªÀë_p•ÜÃ_WÈzNþf$¡ÐAŠ g(Ó&œÄˆôoJª¤á7žn@ sB²æ“ƒÉˆB©°»SE‡½z6]Ÿ«Ë8ÓPà µpùCQŒ’ö¸NqLO‹ôqs+nÞo¥¯X®&Qþˆf²j¿ ùK’‚;½·…¨ëÐŽò(ßw˜»%aÃèMIºõyÖ7J{LU¥@•,huÃ~! Q^7'Ž… À€}©cx´2ˆ+íùw¡U;64Á†P-Gá‰WÃRÎ%‚BW‚Œ®¶ª=)9þˆ}XOðs|IÕ³Š,gÖ%Ô$¦Î FH:j;I¤r£‹œ“ñ-‡Ìå`îu¶ßŽ¢ûÛÄViή½~æ«D4EG®ª°q#³SÖß´ Zêü_h“Ê|ôZWýª­¢Ž2Ë ÿŽB¤±û¢êò;ãÙdyÁH]Š:›‡ÃY—|VòÍ#êÐR6† ¢v3¼Ôx˜òq?G\̹Š?gØs6|E§J¿Š³£´ çlßým-ô¼PÄ.;M_„gòñØqDíXï³úñ·h–ðoy<ÿþ`4a‘8úΦÇ^w¼L‚Ýr¢ê=ì OØMïþ-¸oヲZÌ-«N×^ÀÃ{-S)ŧZW”«ú|«s‘P¤þÔ‰O†™,Óxœ*¡üé›G5õùÜI¥{Uè:¦B¬€åN?šÍlòÐP' †•¹C{Êpò)2yigJ9Ñå‡ì}trÉáí?ü ëé»Q +ûl8¯²*Áúîèÿ?V¬ãÈæ¿qWÙåËîÓ‹ý%Bp:ª-D³QØ jáw[H³†t½–\î‚Ð1…UÂê³Ô£cÉEÈQÁ:Jœ¼ùÇÎ:«žÆOš²ô•¾´‰&7Ÿeµ«^´"QU‚hÅ hâÔ…F¦«—ÜÏzÄŒˆ•ÌÓ§ ?»°ºŸØYõˆ¸¢uþ˃êèiGZ›c´%uÚöùã—"ãnP§x<„À Æ·"´)Œå=m¿_sØHè”>sB¡¯¤—] Ï7{J—Èfª;•¤–«@&"㜄YŵsxGB¶½[¹ÙEC*SFYÐ&C4b +–«X ÇX«ÒÁîÄ«g&O@m(ØOÆÈ?÷Ô< ÂUì‹™µ¤gROî×Eˆè( §Ì\Ú¨÷’|~’s|'4/g}Õ¶oÙ°¦ª'ó­é,1bÝ®îæ†ÀÀ5Žó•Æ•&=2_âLló›cçéW´½¸D½ŒëßM)‘/¸ûÁ’¤‘RfUQ´9O¶ç)?ž±Sï’µ†Ç‹;}†Çœa<–Ê„,Ù•¹Ã0®c®%à‚5Tßd†é² $p€A oäÎad¡y- +Ð× Ð&øÇº—Q£kÝøô,=f^¬bìÓäÑ_+ ¤jÅE¯ÑïÞ®[äÁ áÄø¸!y"Äžëõ0µîž°ÌøpAјv J¼BðH1˜ë—§|At·ù„v@ÊW@|ÝxÀc¬Ç̹‘»ï “,ÍM8ävª¦O°Ilj ãÚîò'$2F׉Éß$ñ`KÄ[Z꘯·ÏÑOÌ' +ªÌÍ,‘‚Í*ô±Œ¤W—QjñzP+ø*‹­xÄÝš)VkÇqs÷Å÷äŸ/¸95ô]ÓiÝ 5ô=s4òAß<¹òþ<®x°C/ÀtPÈÉøó)MJädÎfÕ8Éð¼É×Vv(GwµTã –SÁF^o„ìÖK€ø]Iä Îör޾²bÝIåte¼›øí[ðü/ˆ…üò‹9ä×Ô§Dt{IœqÉÅÈ|7ó¡W7ÎaÒÌ0Üb oqó£,9€þì‚‚æ­+Ú¯’M£½ÔÜýÎïè)1~KÂ0FÎEˆõ哲S~¶’™  Óµdc¼§EQä]»TËŸµ¢ùh•’– úxRÀis]h0ßNÝë’Œ Õ7ÏÀŒ>¯X´ÄvÒÐÊùž›{õq®€ÇMc€ß ÖË +P®Vpg ÙaÅÌ)°’©oà Yyýt„¡±3_ð.Ê£|M9ô.hÞa˜KدYqÎo7§NXQHQKšgí}%â¸Ñº Û%-¦@û?Íš¼æ¤~'n¶(È]m ¡P°š¨€Døjuvk™'©Ìs÷yûÕ¶× Sâ6˜ë42v—Ðm¯ÀÅãa)½ñ˜.U÷ "ÓSôAjT)'U0xr‡jŠZ…s{PìápfŽ^c™Ú™wóMzœ&¯ +(g[–}ª4ãrô.Äþ,s"2'§žÛ^ã÷è@4=jMfæ ˆÁéñMæ® ÓÍx(>€ž ûÊk¹ÝžTtHpQ¬ºx]—è·)€ÌºäúÝÝk?êí“Y;GF÷ZSšZ•ÌûŠPÑ¡x¾ô1>2)HµV¸ŠQã[H¶çJ“5×zw:W¾ý’èÁ?#zŽs}175k_x¢¹|Xw0‚‹òÉ™9l$Ì^%-ƒ¿Ë¼Åu%„)[½h¿jN]Saª6 ÂU»¿šWšåØŸ(§Yû4ÓÌ1aéêY?.ưs¼íïúG{RÌù•Tob®³ì¼.x³zÑR3Ñ<×¶¶ àóXK î«&mÙ¦¸z­hb)4cÚœî™)9éí’^¡½5 XG†w˜äÀ·¡‰2v.A-å!a­=Úðþ\·¶CXŽxv}ÓÔ?~h2ÀmošÁ¾t– Î<®dŸ°¸‘L1Tw=€E…Ø‹¨_êl‹Â5µ¸ö¢)?c>¸ÀÏÁhÂïwÞ“"Q“–8Žê–òzK{³ë Høðdú)ÿL½tФ‚ü«{Î{ú3¤É‘<«¼ä"†azià.O£Ä¥†Î¨v7ãr¬{³Ö>ò´†ù´pd0W´˜ƒ S Aû~Ú3{+¹gh^È匡z|®õ –ꥩ_znG+¼þõÑ‚ï~=ÏôÙ¬¤RÑ÷‹ ¬U0º_ß˹ÍcZþ¼ÂÈŸ¥²2oA5Ö…ÇÇȼ­WœK²bó³KõðßÌuΊ·x¨EÿdO§ì漘T_”8<÷^üYFºXÑÕ¯b7SW=¬Í—H&þh–WOMU÷„r4+àšT¤øÎø6©Îiøª~ðK:j.†(a0T›k—¿J%á–K¥I@á%-mG2¼#ÁÕå”PæQYNɽ]é¿Ì¯%‰RC1|¦&FŒûÂæ‹È{ˆ]Š:?HÈr>q/€"%Ïfª +µ5ÐE +>”,&Pº'hÓ¤õVR1­ Ø öþ©Ù•‚®Fº]œ^—þ=ÜÔ—Å ‚ÉQ‰³Þ6îk믥9¨’åO}~ ÿE·ð´TäzeɽÁ0rf,Ôýz,ºZBÖîîQøžthäÝqN7Äa§LH…H »›Èæ‹°‘z¡7›mû¹ß›½5¼ÝÎÃÉ£~–àgÍ«>‘æ1…þÝwˆu¦‹V™ð±*A8:4 eº4i­#Hó(€ÞำŸÛöBlÈöq©¡ÇOµ˜š Ùo)šžn”] å&eLë–Læn÷ ëÙrTg|‚œJÜ•;BÃPƒV[•Â$ï~òQU©c‰Ê,¶²¶qBZ˜Â˘ +rŒFDÖQ3àÍJö mD §Ú©æò0½W³¹Ýt®¢®&»^0}Æl[Ù–SG¿ýkI´É%ù”þŠÈDÀøzèð¹X< výú€ãî^ô¿€ÝàýÒšG'û_;ŽmXÒ}Ö&ý:"¹þ¹µ^#CE¼Qµbom/ñýF.Λ•Ú¹¢æu˜?  ¼Û†á¥=ü›£¢ñE§åïu7=j‘£aq_8 +vZ80J ì¼IKõºÜy×Î^“¾hY"ÃV›–e±›‘¬-jB¦ %`.d|wÌRŒ:ƒ»*ÚÓ¥¸(ñ4{±‹èøß¬š&=ó@›Ð¢\á‘~Û©]›O2BŠª&LÓm<3¦V|ï4‚kî­XÓðf>­…¨¶ÀÙHëÓ/h•ÿìéî*¶5,ìËsŸZuyŠ‘‡Ì;¥¡Xòá´“ný¸HK[Sgu2Øy‘éx€Œ¹¶5ýÎñsM:j76ð?x+À3I`:'ïÂ㫤Bƒ¼¤’Š'õL–>‡h&ïÝ5#I>˜j6+¢È¶æTY IºšIÞ|„lÆ;Ünt‚#¤¾ +ú3–|¦ 7ÛÚˆaVŸûzd²ûál•@Y( 9¸ýAhJƒˆó•Qú5î´ôrr@JÁÈ·¦2L/²WÌlùÆ’øò¡(7î~¥ßè¼;“Ü7Jä¿ì3BE(.YU§LLš4öw¹Ú‡ä3z7pzýÉÅ#W¬cÊ!< 8øO%Ïp ll¥Ûá5ªtiÝþ`ü +ˆF@ë .…èòÏíõ¿}¹Æ37Ï&ÓlsÄŠ†Ìâdûz¾u[¼±<ÄLlƒú|Àò¿CkpÑE,ùªÚ—°N!Œ5èºsØÃiô}âHéf—F 9l¬?íÀjÕS<^ó]æ% ÊÍàÏà<[?:GòšUo˜û¢})®[_Ä‘1ã Œ\ä–~ž„‘ßÕ-¶è:öY óY ÿW ]‹ؤ}FaËð,ž80œ:•o ¹Ë”z/ÓÉÐ’G¹q;-ôù"„‘;P:e5è¶–eØ©®¯6¬ë/‚ÞUß÷Žep3,¾8ñ~ß´Zjq‘^jam¥,ONMËJ×öJN~ÞT®ôÞÜ”hùžcÐMLÊ–²à]Rs§yÍÙÚÙA{i“éop‡÷!]Ißœ@Žc섬 ‡Û„m})d§+rÛô?óƒ;Km‰ã¼õkŒ ö 18wÏLUïïñ”—–¨Ö]Êͬv©‰õ£`0 gª¨Öp°$ëȆÜFŒ&ºþûœ, ¯¤Ž–ãp™½£ÏV…°p á{ÃÜ,_—R¦k2ëç¥clÆUl2µú€ªr»¶g¸·ÈN’ÌÒ$/ÇE|r±CÄÛ°¼©z¨1ôÄÔ’šh? ®g‚ðµo°<<(/hP—?Ö»jeiÄ)§€Ö«†S1M¥±óè)¼Ý¹Äõ“)´£!®_²Ä>UM ›¡¾Ì¶t=œäÙ$' q±Ð ‰ã]Á üã ªÃö„v3åé5´ß+MfDnXï…äñ{69tØŒ{gˆá@­5ˆ{Ƚ—@vV}hþ™†µZ-T‰„â.YõìÌ( )A¨¦iâü{NxùŒ4è„ñé™AHlvÁ²_Åë¾&‹ÇÔ¬ø56fãß8 +lûÜÁKwWP‡þ4Iq^4'ZÁQ޼•³ÕlˆÞ"ãóeHGü­žAø¤}¡_n$!ÂyÚþ³À_87\`qžó6 9×=@çC3²B€òÔvKq +¯ƒ‰É­_™ÔQƒIe3· +İ- ô÷%”®eN´oseÿÑÏmo¬èŠfM´¥{=»ï\µjO/ûW= +RJ©þdRxq@âX´!üþ,™yIš+û:¦îßò>mfž½rŽwH°V:4ey~a™EýŽ)Éh nìüœ!A”,¶ãcg0OTad>ÛmÊ‹]¥çò &=¥6VhD³„šë][¢†³§Ð©0ö›ÎnýÅ?UÑܼ 55Ô;Üéæ»§Pj)w8 vUåA¶§”Å5ŒŸZ¾M:†[«hÕ[¶ÛŒ +0†äiºP ­©¢©äÐàØw?vKYt`?CÄ’ú¦!Îø8eµÏ“UÌo™E]ü¦Ùnª&‘xEï iwÚ˜1©?5¹./6ÑH +RuŽÇ]¢Îé€eêZÍšð·‚ʵº6;,Tñ‰2À¢÷\”s=xY¢ûiãñØ]3„CGÝÔd¼ð_ã&lpŽK ª¯@¸¬zOfC­"{I2¹;\úb¼ (ÌUÞðpÛgiV öÈ‘Z>’Ä=¦Ô:K4G‡·ß%Ÿ$¤ Wˆ“rW$í8ßbIй ï#g̀ϻ2˜Å3`|ÆA×ö×ë™îù9Ž­à‹¯]Lòk½V!Áf9;â¨@n',¿w›WÕÄíVTPËð;4y_® IßçV ¬de˜Z«ŽG]_ìV +êE³ç·YVö»½)U˜˜ó1Ýö:Dˆß˜sà¾Ï…àgÚlÚèUÊ`Ô–ã%çoŒ6(wêÖŸ‘Ôå¿`ÇAâ=R¶yð—Lž ÇØM5ìSzÛæÜùL{œ6ÎôÍ®ÅsYÜÊ7]y_”异[ÖmMX—w;Aáqýª©ÿöyè.sAmÍüÊnÜŠùíµ*o¸úçÒç¥.«™Ý¤ùFimP|:SÒûmà×Ùo“&K¿6¸ˆu'!1¨«9ë;kÉDªŒgŒ0Þ±hKD¡O„!>ÖÊ Šº3¼¯÷óïrγÔf;Æ#^OÁ«ú)4HEž£QÃD˜k€„š/nªÞš…ùíœÁµCåÑ/›†# ]1O›2¼åLß1нO‰oR4*ò¬BÃï!’<<õe’<ÊÎí}‰ˆZP œ±žWË¢ý@ÿ©UŠ>¨Kgàgo ³¡›Iô`#ϽV¨Ã]­•GuR:#¾³ÎyÎK?MfAB\Rî´ ¶!”êIUzÆ¢>éˇÎÝR‘?<&jÄ€Ë@í­Ùs«àŒ´2ÅïD· øê ç‚“ÿ˜›Ëœi“€Ôžy÷f±*OlOÃ[¤=óÿ‡ -÷•Žü+¯­ºÔl·; ¦Š37r®<¶8u¼"rijXÆr0'•ëìLô§ôñ-aëŽÐ&BxÖsoNì~lÖYC”å¢úW˜5í²ú÷¼½O(ix›Ï×.–Ê L•Œ¡ó¦$§L)XnÍkŽa^<Ë„ÂÜæ³ðjÑVcJGÂ`³yS@sçÚ€ÁT._Õ±B,2¾‘´œ%>PŽž¨ÿVÖNUv\+4˜pž—^½Àv= xr?=ö{î;| ) ÒôÊë0ÉIz±aØÊÅjX"(2•’Ƀ°PÀö§¹ xléQSŠå­yrö"‡^|˦§Þ%é×LZ’mYƒÛ… úŠ.p^SvBÖἎR÷ÑÂâŠu)XSÖH¿xݨù1–¦š\»j{åCµˆ(í¹E»Rñj-ŽQUbz_x„½ÊC…œ)½þH×±ŒØD #FÓøÊÃ÷&{lMz–d¥<4޳qf0£Á™Mþ„Ý;HýšíÇãÅq[’ðÇÖê àAÔ×ù j¸E Ó-Cã…`ANey¬ÚÀ¦—Ò£…bÿÁ +Pä’‹Ì × ÉA SIØBÔ’³F×p%4ÚUÍ©„9ÿ™«×‹cfCK32ÔS`­‡»Ÿ·á{â§0R±„½ñ‚¼IQ2•?WŽ:–j¢Dúo™'ÖÁN7CrFr'tº^ŽÎ›»-PwÓW)Q»€U†±3ú r±üÐ&÷í^q%Hèt*¢B4Ýe¢o¾ˆ`å|ïCnÁT?žæk|ôIá‘:¢“ꆨ*þV½Íßÿ ä³ó½´ØïBÏø ‚Wsã‚^F¿¦42z¹Ÿ6 ‚‚í–½¶ïâÑvi†þÖ ©‚`¡àEö³Gíî‰Eœ>ÿ‘_®ËQ*n¿(Û~Ó`ªw:ÆÄQÔ e}¥PqpNüd½~â¿B‡ƒ°_¾Ç²8År^Bú,kE2|O…Gø '²§žûàa&xö–Ã8»,Q,õ|n<†§¹Ê˜ysúŒú“reõ¢ò‡8¥~¶­ƒ½F‰50ò®xP)géfÂ/GQÕÖ,ðyðÁ››lŽôVwš¦¡A,íëN +AÌí<)d”Lí÷Ø~6ë¹Yºí(Œ/Á™6ͨ""·²¢ëü '›4^ÞÒÅù\7_OàrYv3‚=H?—f?¨C\Í£òI¶¬Õ]eAé,‹]0` $Ú7ÊFµ;™õ~A¬W ¦ ‚óÐ>ª §4—Š f@Ý2§Tx}}êŸùöÒIP'8êTýòQÕ9©K]dH*©\ÖKRn=U#e“è„™ÒŠ°E:·Pé÷[‹Ș˜z•Ûû䶘]ý‘W#åÄùwþ`o}ïÍeZg w¾wébTý,E$OÆÄ¸F\ØÅŸqîßæš¸qb´ Õ Í–äþnσ­”c}G”Å ~sŠt7¦qˆXûOH)]Püw061äćüºÖöXFU¿ ¿Y H’)ê¼P]FDqg.Èõ€ïШ_ëd«Í¨èÆÊÛ¡ßÆ†k´Qˆ‰Ý^ÏÜ=³²Î ÎVCÿNyGÀLÄpkM‚ձ×Á‡Fš üj–f•Ü9&Âs°_Â}‚ª·iI~3}0.3r7_nÕjßv½ñA r|xvY@Í#¶ïÚLø.Ñ _Ï&:9”Æ,D Ùí4íàð¨X·s9^µ7—¹Ïr2y ¶cÁ Sè$ž~…ÅÓ¤ÔGÀÉ`ªÓžˆZè¯eç¥dˆYçOEãËM»c‘Çõeå žÙ/êé˜MÊ#H IEû<ζ?ݤ`èÕlæ¼& –ࢄéÉÁn[“GÑJœ$ ýL€kÐGq‡eƒ¾a›ÈÊc<]Ôx1¸~¬d‘ϬVÖ¤…ê9QÍÁô^b/[â+ìpÆoMbì*Òè!Ô Ë9Š{š_èHĈ#fçPÿœ‹Z½ôR{Uƒ¿%óæG:ÃàÏÆXÖˆO™„„NTxâ¹"M d{Fžæä0œÿ¦ÇW&çÒZŒÌîGܰvŒP³™òü˜v0¡^±½-’!±˜ +}3K?x”Ð{HÅý”eGi ùN©`Z(%õyÀÉks}ŸÒÞÐ곩4q œÙøÒÌ)¡²6Ñ0AM(<™©h¦(7:[G=ƒ’ĹÁÜ=É[rò¹ûÂF*´êw¤£}Z†úƒÓc¾Ý‰«‘Aá£$òsé³øã”eP³ïñªŠ¡Àô$¦[´KÝ_êÛåþyµ…‘Þú}‘Lé€+í°OXB>S–±^ê—yÒh{å¬àÖ•X{«Ì}nÄlæPÑèm©¶1ߊmdzOÜÁ5¶¥””¦æ/#M*=íA·<¶Ìx¬Q·M Ù†h'O)¹åô¯låðĪX帠)ú®ä,l1x:ôHŒjR±«ƒ •ähzk!jÂ|„ç~ž˜®®h§®M°ÑAòX¯ÕšÌ|ô#^è„ú’={b/MÂiO7hÓÆ5Ðúñc`Qå™Ì jo;7pÊQ¯­¹â‘Zî†bÛK䣳Xél@A]ëU" ûãpzùꯥ@~,Smß—|àD8¶¬;ÉaM=ÖÊ×Öì9ùöUº¾Qô}ÞàÏØ÷­Ÿz²þ ÑÒ6F&Xø¥î¾Kú7› gø0^çè‹bÉÈ,å`µ/QkÔvç\‰ÑÐB%›ܧy&K÷).òÝ;|cÿ÷Eߨó×ÎnÿŬÓwK:æø"c4ÆX²ÊnJYÜÛ½ +:U¢Q©Êý¬:º wžñ¯Q,¦ïúJ0.¦i É.[bno Ôò&D*‘0JºA¸’'yš+¾ +ã^ÎÊTtZêT/‹©àPÔPšZ4”«Œ×*óÂÇ£ŸmL@íJG3\644ðFΩÛkNgí×´óùÂÌ7·„“ýMT¦ûæs@¢§’÷~¤qÂŒ±lÅñµ3Z04”p¾Çs¤L2Wnß0j.#ñ”v MKÔ}žÞr=õ·1s T¹$†Ïõ€ ŸÝ*]+.³%i_FnñN’D¾6.›¸Ÿß‰=7i F€fäw¼zóNýÙHÝ +Qýu›Ó.á¯9þAîjÓÔ3ÒAšÐ€ÍExì>‹›q=šb¨–¥ÂßM³Q~¡í©>—5œý6!H…TŒ>öLU(|¸L/W€KM+Þõ@²­h§¨c’íž.Wh[ðG‡e³¡p\£=Ç`–ÁÕæ¦»éÎ €ÜT·•d”"Q5c‘¦gxt±sÙ%ñ^Z +»l“MìeýÁ»YW/îÓ®Äó•c®UHœèTý´ãPølÇ~òs 0©®Ã4°»Q(‹Í®×ÎkŒ!¡Ø½ºþ©7`¢Ëµ‚¼Qñζ„øî±èÓpÂ÷)ŽëÁDzyŸ®wÈ…AM 7š¿’š ÎÉ_4Ý‹`«ù½ åÜ4ªù¢±ÅbÇ)©òÿaL ë'ÙÈ;ékûkÛß.úp0YgÀãÂu«eHñõUÑ‹·ë·TÌŽÖ’7z¢ \%·R=üvÄ ¯†—‚c”Э@ß쯱¨+d +Coû$t{rJA-s•YBöˆP¾6T{’öíž÷hÙðõÕÂ[ù%,ËùûfÙ&Ð…eJcÍLÊd{†MÆü¤”,kã<˜6½öÃ]>{ÎvAdöÏùÆðDöq £…Stâ÷C€Ès­„ƒ®¥¤šM˜Õ.XÛÓìÉÂèv4óºËf«›©:•¡Gg>7[3ÄDlÐÞ>A#B£s}Ã7ˆÎú¢,‰qõì$t§›f |›lYF\JöhÑ~6º[ °þ‹Å½CÆ,ðȹ4ðù°]ñÑHÑÕÔþ,÷ëßäpp³óŸ“ùûÏXBX_þÄ gUØ:¶,Kq¶çh +=³_ §7F#ûºÐ[/wIãD÷Ë–5ò¦ƒ­01ià%óé\ÃÙ´þ ”÷cúiÄÑÎ{YäýɉvYƒe|¨óaz í'õª{máÆ¬0n£¦|H˜X—^°¨<ó»ÍJ7œ¾§ Íô|…­ÎÓöUÉ6±jÅGÞ˜7ú¼šªu¥ÁF³ž³Û*n3¡rNÚsÀXax—ʼ¥A'Ì  ç²INÔ•ÛÌç“IE!"ÄV¥µ÷ûW~ËžÉ'ö0·øFfbW#ð0”À—¯cÀ ¸Z¼ÖPP£È³Ô='¬øf‰7 +ˆl¾½Y­ëjY"¯¥$ÕuYyóÙ^\6zý²¦4_ ¶MLèžï3f½X­ƒÀJQ ‡MÎ `ë~pF-†«…—­¦°Ÿz úU|°ÛÛuf%!„VöÊx£\˜Æh%@Ä¡±)T`Í£¾¥}}ïÙ}×_öîÒË)«ZþùùÃó2ÿ™ê²”ìN¬èX½2ø‚šöžôŒ)…ZŠÄu¢~†ÖÝ«fE|ìüŠDwÅÜ#ŠÒCv/?[î.ž ýbqà›¼çÑ[픜Nhtµ³R¼Í¼'™ÏHAý¹ïZϘô¾Lcƒ7¬ð€{ÅVþ¢Ä½¶‡È<ųV>ã&ƒÒ"<Ó¯î6òØ{‡àß~Ê3þáp¨ªÄ7>;YM´"*Mƒ×ø’Õé®m·ð/ ®)ôÀЉª$ºq{Èáš¾QÁÀöŽ¢#­W0Ù—©c$©Ä˜¾4;LwÝJ2V€ïÎ'™@ÐÔKÛÿÆxŽ=ÁˆÚ‚ÔNëxX ‹¼ô4>D¿E–uð?·1Û[½ýÈ€j¤lšM[7è|ÌG厡"P 6ä6(Ø[Üé7_Õ·-¨Ãc¸–‚ZV]#Q žd +ŠÓ¡³iŽùú’~R6’ 'eѽA‰ÎªÚlS®Œ‡YíÔJÆä¥JMjkmë”äŒÔ]L¬Æû‘$I¦]˜L^(hyè¨å½`€ Ü÷fOÊß°£ùN¡Åw³kú>ýPnÞ*ty ¼^®4:¨g Iê:*x*Äzj>Xsñ$€jºl, +2ÙN·Ù³x&ÆUF‡ôùQÈX^îZP:fÅxÇS!V0Ú~jí]VÆaÎTRàóç`e-Žw°õý÷Œ@¯ 'M~¨Åûƒ)(x­„§T¹9 ;&žj&ò H”ºiš!Tº,:~„FÐ0*‚÷|ºq×À²~äŸ O2)'pô~ºÄy®RP‰zaq7R`GÄcØkl™’*¿÷×@üôó9fŠý(ø8hùÓ*ŠY~+ÆÖ±…<˜ÑôØX¦½¹àýÆ1{|Øð¹ýŒÚÐ[ÜÄ«xYº=:ó8MÒ5"D+åQÌ„‡N¡\lxUÄœ‚G“C­e8.«1‰ò K +30«³Æ§>LÛœG‹¬Ëî­Òw) 0‘½ìê‰s +9˜’#ç ¶b›.c]0‘Mn~”•œ‰Ø%‚ Ë ˜µ·F<[Šø™a´.‘3+Eá­Ü2‰u>ª–ªÚi¨PU›"ËÞµ{t冉9­Äm—"d÷ª“ê2þp3~ÅÜ{$´Kîc‡‡€Î«É¼"¯¨"cÇ{y­\nïì0pè½DXn´©tº˜S†[×äнÍÂ; ëc¥Ø7¿,|¬é¹qx£E‚Xn™²>¤WÕÍWJÆÖÕ¾3%Zo‰ÂéÓdǬË.×Pø¢K›î»‘o³.fp4-»è +¾ðl{«¿`‰'‘u·©ÂåYýõ¥ªÑ¼lE¼ºîEHù¨ŒŒòÉcÍ/ +×KÈÿøËi±þ£,—Žuׂ î8SZ<¤ôá«6Óà~6€¡sN·-¹5Y!²ØÎ£¹ý_zºÃôÈ\¡êB›yýrsïbdì g™Qóî­ïrW žréÁ²ÎŸfþüFtÅ• ÅÏ¡™¥ï#Ûô á‚ÉEfØ’-b @8ƒ°ÖùM/fVD¦µùkñ+6_k½ @J¦áäœ6"Q» 1J–;ŸŸÞ2Õ'Õ÷¬é‡ú@Æ›æ"ô4ÆÀvêsƒo–ªVì××àŒxœO6€rFºõ ãA{á¯Î+.¯Ú@£a!4nÀ…äÝU¨Iw—8šÀy™¥r4ÅqxÞÏy·ØrG±ê(ë\kúR‹Ã:Ðgþ ûïªÚ6,Ñ¡å%V*€sWE…ÁŠinå ³¸¹½ÌŠ JÊh¯1tÝç°¢tH8wýÊ=šŒgLjBÛ#ç'”3õÃݨɆÏà‘–S‰;Ɖë(üÛä÷f!/­ŠºeAßðö?-[IÒÆpóódŠ!臡»Ž)Ò³¦¨ãåÏŸ²`#Yû††ácÐ8Ò2ÒOœÝ~ƒUžTN-¢ëô‹ Ÿú#aþ"Y6“‡Íñ/×ÇìÜÒkó”µ¢'i¶DE$è‚)(@¿ºvN2±^Røx˜ßãxMÝ·­†”ïðÀC/rI b.òÕ×â= ~eÐs|ÒQÛX9åpÁrWLVz’zB”Ëe9C/œÆra¹ëMoˆå\¾­ÏÐÖ—l·G+bheMiQÛŸƒ,¡3ÓáÓ­‘‘1IRegª«—¡ŽçòzhYš‡,äLÜÌh!õFMkþüµß¡xþÔËÜ<ü>ÞÔŠDÇRø«ÿLr1Eʼu›O’þµNø¼%˜7ôUý†ÅPýœÆ£??Õê=^‚V5Ä–”VŸ«ò®GÒ~Ö ˆÎmS¤qÓÊ£Ioë}iM¸äGôGÑT xÉ@ܵ¼Š~ÜÞ·Àµ«Rsþ»’»û¡r•ED_ + % *ÕõȆ4Ãi¼ì·³Å¤¾©Ã,ËWðÉ­&Êc™uìæW‡òlÎYP/ÛÂ}ºâ6–¿Aò +}ÍÞzжôT”"œƒIvK’»²¡]Ü/7;ª<ñ$'õ2âW<.{ÅCížw¢ŠÏbýUš“.÷ò3:*jéÈV¢ÏU:~‡öN1A·ï +# <’ïÍ›Ç;,ú˜P&z²W#»¿³~CtrRÞD641#HÖûÓ¶ÊJЃ!UoäÛ®ѯëPejT·G?:''“xàˆÕ,¾»¥aÈ‘ŸŸòVXÖó|Ð +ÓÄH¬¯4çÝn}›*gh$Ê:oH6X›&ÿઢ%E 8|l¡ʇò8œÈ˜•îˆ%‡õÞ€8âŒÌ« Ì}ˆ(œÑíæA} aå{e‹³ý¦•¾æ_ÑÍ}ª”ŸòaHO5Ù@N£Hc)qÎSÄ›M'¯üqйiuØ·{¿ש7šO7FCÈØÄ–öZC¿¸ÿ¨°zr.èÝã£M3Ï®aH áDà>Üö{ο¦lØ=´HÙ*C‘^áíÖ2ز. áãÅä~3 fÙEÓ½ –êÆÚF¿ˆ¿Z™·/ÙV¨G;¢ Å3ˆãÄ/R;þD©¥u&Ì~’Ç í eY¯˜áüi¨0®Ö*VÏ‹Ã[F˜B2¯+¹à0 øó†ÒK~‡^ë´/ßšX¯F:Åø|úÍTmåyZ‹¯8ZÄ}™bCœ“rÓÜ ´œÑëyb\ñ&Ç<¿¼ p Œd#e +¿JD.Ñ0ëAGå2ååìvRÚm¿7çÀm¹20 âFùW¹Íј$LR&‘îz¬`òPelÏ߇×Í ’n;ÊQ«']&{ø¸µxP"mõºT±Âáë40“üÆà‹š,Ï%£ü !tDëä†å¨nù–DÞÅ/Téé:§ä{ß¶ñÃsðé àV\t08Ž8É“o¼:sëk'È‹:>"ÁC– +“£l]üT‡¿ˆu>P–Yj}ù©¤QDîçN”»$O/ aâOÑ›¹ùÕxlj€ÌKödü†K7L£ÀßTÈ~ýÞ]`iIɹà ð—{fÒäâ£ÿîàr'» 3î†ëSAh1 +7¿ +ꟿ™\…¶Š¾yJϱƒ£gÆVXÿЋ` =G~ÓîY!ì».‘œâ%¿Ÿûß„Ë{¼œGh†Y¾Áò52žD+¿§ðÐU5T½3*RÔÀvwp·iP`9nþ-„V{¬ÂB!½IÊÈ 8ò5Õa“D-SÂ:Û+¤/kP„Â,|6ɾ +ZxRBà¡Ä&±ÑoXá9W†pË‚wó@r®ò¹òWõ牪m³Ï”Æ<ÿËçqí îð^F•^ rÙRv+0Å51«'÷'U¢7nÄ×§ª41>-¬ì«6ú‹0;ÒPxE{…ñ(IÅjD*W‚m⨘¯YÝq4ÙýwfŒõr¬ÿùº5$ê*{éeUÙp¾Í%ç³– ÐɽxK«†/ÑyT?†|¾6X 1‘Qwsúj:¡‹wM›?"‚Ûÿ7EĸJ)>—šÐxq®,Ž™H @¾n\wBÂ’Z¹š ¡£¥<„ÃG7äU¸·‰‚(_ú§I Œç5YÇ)$7•ìä˜$Gþ„­ÔR@ŒÞ Yš¯ªSÞÚhU×ûž{á[ãEšvŸ†üúšÓ×|¹OU®>ú§A1‡%{Âo`—¬‚CYïk“%×r«SÉ oÖ‡ö(&ØéË4½ —¼*Ðd)uy‘ö‚‰£CõnoWÆsp2 ·cÓJÙo©\~#ÞÊ ­Û7JEq™ÀÆáƒÕLŸòy"GxîÆXfÅ §7 ©¢Á®á¥2ÎruXÆ2µ: œîø|œ Hsç'\Þ +ë ÛÁA]çe.ÈÌ[†ä"нk5ÀW~kÐ̪×çòð7Qè¯LúÁÖà1=›6¤^µQæ ¿¨³÷¥bcJ4üúO¶iG7Aò޹Ìï« â<4'9¢¦KÕ¿Ñrœ­=„ äû븾š÷Y*b95Êk) eàI*”z–yå7R’Äóšºã~Ø;µ}©yásÅÑ·Åe ŒàŽÙ¬·{™I”à¬é¹âP(_etÁƒù²i¨O0ë¬2‘ñ±¯[<Ø•n1ëâiùJ²í†×^ú¿5e}$αçkVK©65ì{3‹Þ7õ2ZG8Â;}°½‹Œ mLóÔy|T¬1¥0q¹PÜ*pýu—L쪌Vî!”vÛ<~1ˆ””’«ùÂè`×eKZ­«è3¹è8;žñ;2ÙÝ` A@†_ËÀ*ìm^Ç£*—i«W-ÃÛÈ Š0é6œ¤(¢6&XaÌiË TØdÝüRòEÒ›Ío-¬˜¼í¿}š‡@˜£ÐMY]9ûu¯U-ƒ¾$0¥`Ø77™Tȫۥ„¼§<ÔÔ ‰M–æÙÞÛÍvx‘_Æ=IÑà\8XËGýVÃ5ïÈuEíf÷Þ#¸¢ÅˆØ¤¯´Ãeû6²·™ôHW» +žìñ7ÉS4Å>¼t³?Æøµr6«ˆ¨ß©vs'XX¹%iOý¨´5¥m~Ϻïm èöÿI¬KÀæcŸ«o®àËí^—dç»[?nAÑý@_Hê’-ˆ—  éæ·ôà¦V~jò^Ùn ‚WcôþшÉ+l¹PSjÙW;} +È€Aº68ñ ª{G§¿OŽ­eZ´­KÖ‹Qü™‡Îrî0> +bRöÖ‰fÞkpï}Ÿ&Rkxö Là æôÜ`^£@õå~`Ûm¬ÐeÑ5!$vBˆFw; ì»…np‚I¿Gí%Üz°^¨š6ÉÍÓkŠ¿‰%Š_š)ĸ…Û—´±îåÍZ;°Ð&ÊSö¼ •} +$QIÉ©S—é| +m¬!#q¥n?UÔO:­³øŒ|Au﯆;ŸõàiؼY@xmÒÅ6ÚU+¡G5h”“©ÕOeC¯s^ü¡ÈŸžë 'ëÏá/ýWþM·k¾—í‘£•öÿ9· ©·0MŠ}½‡Êä>~¢ÆøYr—u‹³NÜð»h ËøiËZ\à&¾R8Î…ëîý‹(òÚ×ÓVÌ' Ü&«äÅuaH"ÈBÐçL“˜TH€iNñ ®-Ùît.Ùj«¢ÑñZM.Š–ãÙ„S/,í4=ÇQõ0YºïHfs0CO8ÝS•‘#gôC9”„¥OŽýóèÍrCöoþŽÚ‹43¸JÑ}ê6z¬ÝS—µ'Ÿ¬A¬þS½~Ë ìš\±ù¶‚ä½Î®ÂÓÛ•ä¸Ã)Æd™3=»ÝMÒšMk¿þçy»†°:;IÑÔÛ9N® ÿ÷õÒào?’{¬V[;M`6ÚCt"E.ãìeðÛPí•PD¿K:±Ý¢v@Œ~HøžÞ›Réiʧ°þ+© K³žÖ!r¶Co›Dÿœ&òô°Ç„=\4 *ò•ú ’ÜÀ©Ø®+‹§àÌØº¿ü»ÉlZ­™??„7™à¤2Ê0æî…>̪«›ÞY»¢=PŸreôv¯ÔT¼Ðfíe ÷†!éäúçío$ð¦·*V½ŽúYü’ªúº@z«’‡­Ì·ž”Q|«k; 3~ìÄŸÚÁ[%Æè¯Õ;.¹÷cPÕý…A‚¨àDÏ1¹«¬¤s%ëN¶EçÆtm¡áVÏð*!lX¹kjă •N!e“i—ã:(‹)µ¶8ùIõJœøÌÈ‹"Ù ¼×BÏ©8‰”»œ68T{…¼ÀäÀ:Ä-CAÉq°Û)ÜõàÄõ¶Jò–$ê• dh–«EIãƒÓËCNA9?é>üiB¬’!KNƒ!FÛ3™W›¤%cñ…­‹•`¸ìÜõ2‡º‡,‘Ó5Bjº£€M¨ªá°¨¹#Ú²€ï«`ìó¦ðP³â^ðñïù§L\ß~MièÆÒIˆe÷pPÃKÞÔýÎñœe+›¯€ìñbYÞˆüDÝ®GY2¸UÏ®"ÎÖ–½á%À×KG‚+Ä LŽ^H7@a¿p}¬fQ`9€êTÏ%~øÇ¤sè{€oisN|Ë5¿G¦ÏRÔÒI?a‰… ©ŠÁ|]¸5·‚—.„ÓõCmawÅÑ WE:º¿‘+m>Ê{œo Ð'6áI×ÙüðŠw=NãÞœ/ó¨Ý¡ËH5°Ž›lìYê.Р˭î¨VÅ2ë©ÞŸC[&öÚ¹u£ËÇVqa0›ÃîNCàNZ¹ÿž‚X.‘‹€Æ²uâŸ,—¥†‡Òá|` $dÂ>YõªõËùôV­ÒÑ]Q÷ÏRK¿+ô¬»¹Y‰ûEkR|ÚõKZdÑŽ Ÿ MØÀy{¥#SêU/`ƒ¸8[.°—ÕæÑ‡÷ûÚ»ˆ)ò†P©Í£¯âeíƒi0ÂŒoÞ®Ð!FõÊrøÞ³Pª_Äûò’õvãu³ ÙV1+%€’•TXs÷`åÁ#'auÉV²®¦M±s#O» Œ“,,8-B‹dÃùPd|³X—Oj«âl§ +ØY7öhWf°GÙ[½¶sr’ÿ£< Æ£HüGéÖµ” +žÄ%iWpìÿ:Vp½_"Ó;Ä`È §œÉ|>Eƒì|ïY´d¶WL–a^ +¬øKÆÿ!Ù Ï>]49Ó +I;2*±æïÀ(¹SÝž±vA*²îÁA·8­Hì5±„·¶°Fo/ºy+vT¦#ên e÷€ +-ƒ'v¤•ðÓo|þœšPŽ@Þ5xÿs”îœ-å²àø«¿ÒV ¸Uˆúžœ˜ÃmŒ¬_Ætߢ{) ¼Ý¹(éúAÊlF×ÍCº¤×²Žt'f=M“ò¦„$›§#‰Õÿ!ÖyNô¾Å/Nù€(˜²’û?²Î©W¥ ³Û¶mÛ¶mÛx·mÛ¶mÛ¶m۶曫IÎü€¾©¤ÓUyª×’Œô»îK‘ÓäûúEQ š?Çœä@ßVáE¦ËÎ`ƒí‘ C¡w5©(¨ƒ½£M¬›._„rqŽ}ÿ®!CÒÏB¡¡!×ש|¾s¹ÓüŸõ@‰×ümbóµÔÓ^¹XÕðžyBÿvCÉÖ‰Öà2[~Ì‘¶åÐ <÷X‰Âk.`æÉ…›p„§õá-uïyãáH ²6Yz¢”ƒˆç‚KéE@ÌN.’À\W-„2LT¶Ì¹À$¥f;;^·Ô°4¨±§Ô®7ë_;-¿é¦ªxá¤-maý缬—ÕµïâN ÝÃô€ÝDœ{B_¯mÊ¡¾gnÂØçÖbn£j,àKV,µ%P™'ÚË T% ¤76È K˜àó9Ô°e¤a»º˜£a;ÁÛ9};&spLäqõÁW¶’f‘²µõ5îèì`–¥hhV–°!‚‡=ÏIŒWü9®Å¦Y‰ëQÚ«)eÁëôÔ±aõ,c-1y뫽8éaÅ>«ª“L£Vó'õˆy¼Çߎ }f…R®am_Õ5ÖšîÙ%CÄ¿oRùY[¹?sùúÍÇ“ûx˜¸öò]þ¯ãCê±¹ýBó<Ì;yÐL±R¯ïÒT»Aû‡]0ºˆm#ë컞 ú†ßØlWPy|Ó÷þÇVù¨¦ñ„°; ·3ÎB˳æŽÀ±1—WÜŒ×J Á²«pÆU˜ÊF´•ÉΛM• Gj7Â`á†%àw¹€¼¾i,¶Â”ÖÜŸAåØ]—"¦’PK Üû—>“ôÇn08Ÿ@7Ö¢(XÿUíÆ~ÉÞç*Í÷ƒ,~ 7ÂõànðÒÎÀB?zô—,hͰÊFF]óöªEH±ì ú[å,ÐN „éH  +6=âL™z! S„X•@¾ÃÛ¹´õB¼÷²é×Í./A¶‘&(µàá¿`ü¢âþÿ:h f£„ß•öaB¢)ÐàÓh®¼NËñtrB +¸Ñ¶N8iiÅ…GÌû0•JèÍïŽ7Hb2fE-@ exr·dUdÖNp á@ñhH§[Ü&¹É,—8zz³™~æ$9y9!dF–ýGÁtÆ/yrž32BÊ0T4xvQ…ö·g÷ÄNKëÉòÊK‚&æ}Ôknجv©äVˆFÖOäœ<¨ÊN 2 1P…¯Ð/»§§\sWåIi빑ÇD;#4ŸÄ«m°ðVVé/-ôµ® ô{b%qƒç("ÉŸ¨»š¡cûö‚L­±É›÷oåS÷' Íjæžú^2¢Iß Ð²;TÔÛS'gž¦šM]˜³çÐ\p:zº‚YóT.öu÷Ä —.u09ŒåÙ’ûªT#Eht¯ <µ7Ö&d?ÚºÇë´9lÊV9¶Lš$d:~b¶Õ©X7äƒòG´s +®8ÿŒ¤øö4t7¡UK0`Cå̵¥d0+ë›ÚóŽõ÷UtVYK}܈p冹Úßø¹rÒ^•®è›8ƒ×Ø÷´³pf\S¥À‡ŸãöŸ¬, +.õ$5‘(_Îk³Ê™¾å9ŸÅDgÖ2âºïQ!Ã)~=žTše’ÖþÁÿÌ7_çyu·CÊ.%h²Œ•ÙŒdKàâ÷päQ}s]d aD€ý#ª$×ÌüìX7÷gÙ2r¯ +fûÔ¶Ä…ÒœõIIw5¾7Æ®ïxỿ­4X·¼I'¬†* ÷ÅÌö¢ì8˜;@‘+¹7ÐmôÒ¹kHóúÅ…¸œæþž`@\‰(má..¢_@Ϲ÷eÜO9Ik ÍÒRäѪ¥3qW‚&úäÅÇb¨Î +¨%4¡YƒÍ2¯ظ¬ëš}×µÐ!Ç:[4°Sþ`W=Qwðºþ?œ^È] ¨¾úxH€ÝUKžížž.Èçúq⃟€8"N[°Í¸IôŠ ¡Š'ܪtSÂáÙw¾UÛªò9TzðÍïöû#g¦ŸR¤&iæŠìOûÝTÉ;ªXäú`hŸÌÕ\Æä§bWxëLjÀbq(Þóé}J„Øî}P<îÅœáÉrÂ9µ‰;ʘNs2Sý‚|-ö‰¹Pæ¶ÊGA_ûQ™KØ‚Ë%¦êæÝá 6ÀRxÙ´xI¢  V±_4,×}I2¿ÊÓ Õ`™'oë{¾Ë–.”– n!?JbÔú»3Ä~Ì?K¦¦èsÜl{¡  O×?ã“ÕÍ|¬½³}Ò²(*鵑q:YÎ8u§Á¤nèÌ!$c?ŒYùî›C¦z]I›þlÿDü?&ÄzÁýM%³wÆÀvµª›ša¨V÷/pÒ†VW/¶Övï\Ý4Ùõè=–Ýк7ß•…v-¨Hú rÅèF˜«)¨9±yxxü‡ÍEÏN"77|­‘Ræ¹h ~|×x»âyŠ6ÞD`ôHN'9b- w–ˆ¿T½ÛF}_ÃØÂ>„žå€ÎášáÌ7Râxý+Î,«$åXt™Ä?HxðƒIÕ5þÈk9½¤ÝÆêHO®Ê‰AfVÝr²Úù„GX5¶. a›\¥MîG†“ÿÔU¹ý‘Œ·\Ÿ”ì {cåuiÄE«üŸ*Hf’ùc_Dh(á« +æ_Èœ8ܸ ï’÷x³Ѱ…é ÈÅ'=˜uG¯GfdÑ1(¥|GùÁys7 .ô4„V¾/.ï{ñ2÷A%Bî,>6K…¯ñ³–‚TB!TÍ#éób³|¤ÚèƒÐÍêé5Výq„šÓƒ9¤‡¼å-|ÚܘtÙö¸Ðˆe4Qƒ"¬ôã7½Þéogcj³—üÍ-k +Hû"DAÆ-wF +xןzgD°ôüdå¯<©³Às—†MÜ5„v8à‡ÐŸÃlÔ‡ãV¶ÈÉÓÌQh‘é.d~‘´—Ęú¬l6dñ«Œ«lAÿ}—Í»¢*êý‚pÜcˆ‰÷]Pß)3ø4QA—‰Ù†-Á7îPK"å€ /Ç +…}Øñf²„›¨A; ½½áééå¨C÷žèŽ=Ö.À³¹ªÿjà4;k¦HpT Î‘d<¶zËíwB‚´M5½¨m½nƒzñÍrDA¯®x0ùœCÆc’[JH#`µ­Ðý”ƒ–Ë—dd¸ =óS³¶omh2w$æ4ïRjŸ¯Ä”Žêcü Ç7:øòa·+R¦.¿ *›%«[&DD]Òü7ÜPõ×ÊRªEâöœ$j8 +{b{íÁ ¯G!Ÿ¶Zçûãkø½ åƒRÄe§Z‰5Ãb™ŸÄJ”;0MVÕ¿ÀCáê ý!£}§]9]I+ý2c­âälU"·A®f±þÞu~“=c‚ïbÕÿEìÝ2Ú×­>'å~·6­¡Sø»?Mm d½Òl…@[ö-R•@á¿ø®r€µé\‹­,¢ÿ@ýÅ)-|õ`®>?8Ø ÞìlE´Ñ ¸¦•÷Q¥†C‘6? ž i2".ö$If¥!²¦@åulF2w,R'²mD«Ôལ!;Hæpm߯|hݾž(ÿ06e +"r!ô‹PNó%1)Áª%ÒU$­¬(°nÈw1„¡Q¸[’‘»×¬¯±Â´tÉ2¡­Õü¦rÝBÀ¶V¯všþM ™:iÈ‘žc10,Œ‹!ÅóÍb…Ö®»ÝP-Ýùo{`x#Øà„¤»ÀA´M@¨‹]º4§ƒ bóM  ±qUºs]€%sœ|öé#Š,ùã°Ùº¥aù ZšÀWòÆ=To{ùðK6#SÙâZn|¯W÷ ˆ‹)~¿&MLUZýéêF¶)(C3"$Ó9ΰÉñ­ x¹È¥½ùQEÁØ[ „Üò¨AþKØ@¹|¹$é®Nó²ÙNO–(ìƒÖ7Ϡݦk6@˜2ðêØÖøÀ“Qå;zt<…= ë/Ö¶Iô00³¥¥¶WhrÌ ¹ Aëé +BÞÊÔƒñ9ÿdTbâÑ4y_ƒ»³¢Ï I­˜'Hî°Ýõ0 }iô†w–2’«O™„2NuÍâ/:Ü¥3K/âöÃCÏ”×äý»nbzÊ-Õ#¨í‰`[qšš3û.ƒ~ØW„Éø> +‚ºúQÝ/d+í5ÏùY_P¡ÕüŒZíƒÒ#HÙ‚Þè ¬…B™¦Ó@Á‹p9p²`8úþõÁhücÍ3³¿Ü“`â¯Hy×KêC½‘ÀîÑî_#ÒÁÿÏùSAô£ püâÐ1…[‡õâD¥?ö£Ø]rÔVSýŠ%q¾"•×’ÁÀ„ð +UBâVºBݶZ?Úñâ_ žpè„’DwŸ²)A%{“Ø^âÌ>á Å¿G(¬¤÷^‘‹RN÷4="žAÒî-~[Þ]˜,¯uþK¼¯“ˆZÎLiÒEÅf¢e$ø¦‚3C–|Ÿ‘Í6áv÷ó~ Òc•çtÙ¡â gl¨ˆ¾ÅØØPÅòaÓqÏ8¤c¿;}·"X™×\ á;œu¶JšÀ|xñºrÅK³zÙHNDp¡Yì´ÞÂÔt9ä}‚Ñ7•ðåߟ7(ÄÇ–eäZ,ÊtñÅÃ-©ekÖyÉ™©/K´¸ëxTŒÍƒ"×ߌÉ~ŸÀpËVÙó‹ªËs&¹jŸ7ªyàPß ÓÆ1oEo°’5y‰ßäY >BWì¤Ë&ð|«ÔOŽå»ðsŽ,uЬS' ÀI +¬„mÙ7#±T²LÔ‹m£3Õ¥‹œNkÛ(«bË‘¨zãcÙ,~ÖŸKˆ¯ Á+)7ÚµÖ¤4€ˆªñ/sÙ&A-Ô\öø]Ïㇸ^ =Ó° +“™¨ßõ̃ZÇ#ÐZL*'ÞÔPìÑáóùŸ“á¾Å„ε|—Ñ_Àr 6aŠèƒÉ¦VÅ>Aj§~Îj¼ôà‘ ðpiò§äÁ¨ÏÁ¬6¾M ¶M{¦Ðèœmþ:´åsÁ¾ƒF%g,EI¨¬šŽ29ƒfÖ±J,öé¢IûßÇñZȘ]ºÒäoÀtŠf,¯/œàå+bÂ=E +qZï@‚ÝͰI·Œa+B4°‘xGžø +@Ïfí*Î +•{½évÖ[”l̹ðø |±Ó¢F:F iƒæçQu‡ #ê{GäC.@,a´d%Ù9oŒLÜÙa‘Ç$§M-s|‚Ð`ØŠõÞzli”éÍGµø±Wë§í’Æñ?:ØœûåÁ®©Q½$øÉ5‹—¼ ù)w‚S¬¾EïQ5)'Ì×¾±mpÝå@¼lû7)£¥É¬Ù¯#…rÄkvŸARAÁe†¶‰”s¾¿w‰¬]åíéñð€0Ï«ñLåû#÷,â!*®"[¾;R£jÐûO9^NšúÛhîøûBMu$ÿ&ަMùÔòßÿ]É™pÅ}7ä<©“P ¿aŠC8|³è·_$Ìò¥ƒIB5¼§@ߟ°[ªÿMÿ>zó`•J…Œ(ëáæÛ¡”ºªwþîÔLZÐ<¯ì&æâˆ*äýüv$¨åÝ+a­f )No?kvtfÈ8 ŵ‚¤ã'–ÌX”;Ò KcWÀ×£ˆX:ÓæþPì­§¢@×ZI¡÷Gm=âxœÃÜr¦Ú90üúýè7eÔ'›*©Ø¦ÆÏë8Ø–$Œù!P•¤ÉËo¤}s!ؼ%2c5äGx¸`‹Ÿ)°éfð1©mªÓ*;¢¯sg^nÙ 1¢>ÛØÐó” 6,k°/C$»-†ðñZ¢ïU_Û3vÎ>Õ\Rü#^G>2–ÈÃL¨>Á½så[.9<ŸA:€©a¿JÔブ¬ (kø‚ÒÿAž…Ý” q£’wu>%ÎŒjV­ƒ&`ÌíÔ›‰ÑëV¾+:žªa¦ªÙ—N å1‡ÖÉ&Ôn1Ò×ÔÐOàËö\vËîT‡Ÿ7?oŸ**&WêeÍ3žþ4|½ÚÀÈ^ÞçÆ—Ò¿GGûÏ)ªZ[l8€ÏS¹ÎiY‰‡;]‚rNýþAêCޥשã4T>MUó€‰ ÃÔ-[/ME%sJ6LÇ–P]ÙÅõ7©uƒÍ-ßœWõòxÆSuù_¬ðC7H="¹Ö?v’3´ª>à® k=ÞzG¤¨®l”uæ"¢r÷M²lIF¥Ï]aƒ¨Žÿ3ÊÈ4ÑšÖ/ZÖÊQK,1f%ãïM/éò8äÝÔ¾™mxШ2çâ{ŤpÞM[(°S¦wèp¥äy1º +cÝ·é¬ +JmvòX¤¦÷QiAc\£…nÀzÿƒZ½¹û|' ‰y"w«¾¢øÇ)¿îøx'‘뼪ásA8`ó+s#R„,¬Ïk„ú|9Ëf/8î'™ø[e‘¦ï@ùX=žwòlŸ±ÛºÒ¨»E‘>6aÄS-{ÆAÿ®6âÚÞJE»ÚþOÛìln+n‚Ûv@±Xrc×ΙgVMKœDRæ;p&ÏÊÒTäµ³^)„ý¦õ:c8;Еê +?ÚýRý¨¬ÔÂâp‚›c,²NKM?ø0|Ы—_(€e‚¶¨2o‚ÅõÌÁÜ#ÿGp +~à×Qkp<]„E R¦QªòÝ,rê¬q4Cÿ´g†øž…If‹´R0Èóõ¹x_ë‘\»ýÜ 6¶‹$~Iù»³­|‰0 +^çÒçFáF˜‡àǾe°–ãüwlÏ9Ö|¶¾Úõ´Téðr› ÇFm­‘çÐôüÆ€˜ ¸·PF"]SÑ¢>qd¯¿ñfsEȰP賯·ÝMÊûº(4Î%äËFÎÍûhóJÂjê]Û[äUr–Ó/ô@ÊÈê:~ÞWÅëfV#ºÇ¥çb€þMåÙTk6Ò+C FñÊ]ŸËhsÚ¦÷ù–Í_eû2¤Åï+…šVÙB[º¼EMîiÊB…†K åÀèp½º5=Îݧº Ì+Õ>÷øŒ^•5ßúÑPh³Æ¨ƒ‰r˜G“ƒÉÙ†ùÿÈ54ÿ-ÃÙËÞs–”iÄÞÜÿ]¹ê“f§hl²6ç¸?N.šÑ+2Éãsš,Ýð<…\¸kLèLEt²'¥qX9l'ÔYm,˜÷ø× HpØåøï·†Ø%Šöˬyþ9ÉYNÐ%“¥¶@ ˆâÁ-i=;ËüË‘/.Y|3…! +y×í+›r@@d¦ª¥häý4ìO¦!ÃuÇó3`B7Wè@F·›]ð9©¾~`¡)kàÔ†t’(]Ëù’ ®€­ùÀ`ž`T]#¿!$y ñS"*çÏå<>× “1™—5Ç•üâ„é‘ùƒoe`@éU%GªÈçÏžý8à y§ýQÓµhv£øK+ý…è§–!KRŒ•ÅžÛëÊúÈL*|ƒõ‰û°>brFŒŽÁƒE|Ö°žyQP}°<†˜duª`Oa“æ|=\Ã¥VåÕ6L¸³Êèøú‡à¸h©QÉ”š]ØKž¼ÚúÑbº}àåÄÝ*HqÔq¼d/2*çù“Ù$9¾#눧dW­ð yÕYWëdgÇT­.f³KÁ¸ƒ\ØîÑý<.…ñ°žcœïR†ç4¼”Ye¨À`ƒ8»µ„†—Ÿ¼U+q¢#~r<ÕLµxÆðB´9L±ÿö†Gª³œQie9²·d ¾ÅÆå–è. ÂÎÄ»>¸#q˶¯vÇÐv«*ÌB$}ÓÊS]0xù½¢oNŸ\‰oôMöW,<"=Æ{ ë{Ð]ÿU™^>^˜rÍ[{,jé‹*ìÎá'prd{×PwV`ÖMoïä^çcûc ì„QA–ü?Wmò”E:ľOº¹ô-ò- ,&ª†ç2®FÍÛýMŽ75´“þg-S^ ¥,aÿDÄjÍ^±|~¡¹Tú’š—qUXC6*°D}ÈI–<ƒç±U5o_$gÝO î#9¸,&wXQgûvÆ™oØ{b ”Kú´U‡7¬¢\ýÝ^‰—xsu8=k‚Æ¡ý‡à•NØaŸrG,uNü1ÂíbÛ9òµ£z»ÙÎ%Vìæ”"Rx¸â_c3ª}Ç ˆ«Žðdý©…&þöÅúâ¿ûÑb͆cÉ/Ü‹dwŠÃèïß{ësé ª4U~YÊHYýTéqœB ˆuhæëýH î‹®"ñÒs¯ðÛpc®Zeê1Û÷¥=cÞ;PAö6•0â6„@»æg;Àb”‘„J»gŽ2“/‘Dód÷A þƒËòõ£,@´¸µë$s«[Û·pI—YuÜR_‰úxagOøÓVåP4÷•‚¿o?Ž=0%£ýrÜq%#nÒÿŒ*jÅš†ÿ£–O&ʼê»z{®~Åà$ØÙå¬`ºeWRíYÜ[ +¨Ùo‰j»:ýKÉ`ÙÜ[)±kúÂø=¿þ]¬ã½"BaÖ]cô8{}mØèҤªOÑÿó@%ºïr2Ë¥u”x§ÿ?ƯAþ¨3V…dH\y×[Šÿ°qô©8ífƒß¯7Vàòp(€¹d¡%‰ûì}³»P—L™[MšJw£bB(é´ó¨-þ`û.3‰)b÷~ãZÌîç’ Kºªç°ÚþW]W¾ùÙ‰âµ6’¸Äk°^´:~âVÞéׇTIR…<—\·+âCQ"7B­—ˆ´¨"Xè mwî~w˸òþ´Hz×F®OS‚ÖÓÁ`TˆT©FGÁ[¬Lq/ÓÒÃkX’ï½ ¼½˜9y™ÏÑpŽ ÌN*ÑÈ…¦»ŸiÎKR/ùðPlô]c¬÷òö +¢åÞÎêaI)?hŸ#‹%~«x58ƒž°VG+ìÝ0P¶æŽE— Ïê·þIÈ­ÒÍ +¡{)†yVŸBŸé[Nß‘ Ýô\Ñs¡5¥Æ+è'ak^øšAv’º3po˜–zEOèCsŽ[]»=F„1¯3^D½*i«t"­dÒ¥Òv‰÷j”‚NT8ò.[9“À[pËI|Á*[°ªŽÐç54ó­öBhõí¦3è†&œ÷$Û¡™ÁM°]ÍÁök½RÄ÷có`Úh*6¦)ò­¾8²tm&å5¬øuE7JWÝ_¯FåbP vT Ù½öª¼-<(~±úù½à\”’–Ê?‹PŸÐ—cµ{õ¶…ÜéÊGTô¢-22’Ñkit§ ÑN>qšZ.éO¨šå5û®7ú ½)b^ç”å‘K½þ‘â063£EÙ‘Omë˜Ûò%O½”4m\ß6p€Gä·¯ˆ«CAˆ %g«`à,æÌ@W–M–àÒ2-s.t2òµ<üËA'î"“ׇ¦gz}ÔTX»_XMnð¥]‹4į[k‘Nîiü·§Ã*—óxœ›šfáÆõ‘·üm¸ëò"'ËzMmP’Æ48ˆ©] L©Ä,¨Ý”èÏb2Ùn`šèö¡¿G4žR<ƒÇ,E¨ŽV®D–Íòc/²¸ìÄŸK˜Y(×AÞ÷ >Ç ê·ž ¯UøV#V×àC¼(’ЯZYgàá,ëÆp)Ë€}ýbÏí?ÄM\ ã~qê*Hl,ƒs´-GÛ‹µr¬µ<¶Î&‚Ž4½ì¬‡`m¥Á\ª v§¸ “§xÌH&ÔþíG  §ï•QÿÝHÐí*¸„¿¶LœÍ’^ò.Xùà€=mKIaªq)yy,9ÇÙÆ=&ÓíÇŠÇчà<¥>—&æ:ûEˆÆžtyÉk£nhIÐQ¢„0×f‡ W±VRFŒŒ$¥™¡•çtæW¡T'Z“ì×󲪘6À¥0L¼¢'ÞQœŸ:©µæä†Î ûVáHNÍ{/ï)Ó,ÖÞ[éD/7×ßšLdÜýfžÈCͯàï_Çåe˜ó8üz¦8zVUø2@Ò@ðÎ1¿SØhöi–é>®%[æÛ€çÿjøõp²fFïj fãZÝp vlC;hs¨lÝ3§•úÉ„º.Gû<åV ¾«íS¦7nö`‘O÷gá4.1f,R.˜þ¬àíðÿ¤Re†U5ѵ¢µ÷Ã~ÿ¥Ë3‘.jE1™0º§³ó Ä·@¡¥ÄZ5wg‘47&üû„ÓÂØTÂ4Ù³í6ùßXäHÒ©NšÐË|w<¯–s …Íõžä¸§( +í„'Q›Ù/ÈÉÄé–—9J +IØ …yÅY OÚ#TKs*í¥3¾u„äÄjGWK¾>_~HxÔõ±/)%ý n~ÏRZ}<ˆ ½(€~ŒÏ^6ë’±%æü²êBtèÎÌ¯Š¤®xu·&w<òNi#¢OR;µˆ³TJg'¾üòÍÂÓlk6?fE% ãV qÁt ÍÇ*l€§M„Žö„p+):k;A_]Gi‹7?\Yò—hgTkw@v!¨}¤“óm%/VSYDçŽÓb̃%áÙÕuxa55'/­‚ØTÀ½‰;´K¡q–ðG“í”E-¶—V¢aۨ桋ÔY¾Õr§er>âîlBÒ&ƒb‹&e%¾¶œÁ*0Óä³`Ôêk»¿ÓÚ(j3ØZgeýå 62¤7·f\†Ñé&Ž±Î¤?„Õõýç1H¬nŸùÎ@ßÞ²ýMK×<<Yi´dhàÿ¤n½½üˆQiꪣDnÝ2V«Õ&ÕWÌ›þBß–Dx¤çD×Å„̦V–þœßê·Rð©ÑÊAdá`óãVƒÖo]Â|ÍüT1UN8=:: §\Z¯øÏØj’Ñ™«m‡˜|~Ìà쑃zfÉY5£­è¤¥QB)AôÝ´:n/æå_ V8_b2;.‘æÜf„ò¼©ú>u‡uUè)³£IH€m[¦‘S ­IY"^gz´ÒHúfh±=–Žh-òÍcRêw#+µ¡™®NЧXB¨,nÛgQnË»ö9?é>}!·âaBÈu?Z}Â`°Åz8PéîAËã0§[£é)OLãC’4(6óÜa‡‹B›Aïó¾ãÊ|„o=&{Ÿ‡š÷ÁŸHÅš÷uï Ù‹ê3ÒšòÍH‰hA\7¸tá$çO.Äøªp†P ?Mìs«é }˜Ó 696î0¯ù\¨«€çñ­büíRΧäÛ å¡vзÄûfVóD'¯ ÷aÞµl>¨¾Jé¶õwŠÕÉ×bOí;/ Ö%Ûz N`Ç Ö½CœÇ/hP˜LþYT×$ ‹×ml É*22Ò}O5ãa*p2ùïTOÎÕá³oÖÆ•EÀê\Ôo)ø|8ƒ\ouÍ%ZUýÄ뜉Î+á×꟫I„ØÕíCiÈ[MÃ5•0F‹(~¤k‰ï{›9’ß¡Ð#Šwxk<¨] ãh1ã»WNÄ@þM&àk2IÉD|鎉Jd¼"¼pǸ 59Aö¸gÞ³4¯‘°ª<|pPÛi~[¤mŸºnŽ:¡­2¡8§.ºQ2) 2_ºË÷R©J¹(Ðô\1µ«>Àü,WÊüBŸK¬š/°*S"9£ÐŠÒÂRÀLõŸ€ÕаTÉËÇû›­Øw²€ +7ÞTàÍ…£HD˜{1.MãB:€0ÜÀ‚uM7€®ÊϤÌ^]XW›ý=ÈMµA¥»¦¶ËÑñ‰¦y¡…Oì#A™ŒSBÈ™¶)l!ù#k`"\]ÏŽ4J'¸èå‡Ãwo^:6üî_dŒ(>3͵$‹·Qô¤Š»SÚ€ÍÚSÕ x÷ç"_À>sI$oMòSÜ%È8³¨©Á¨J´Û×ÐùTÓf™úau€ªÓ†â8ØçˆÎ×ï´AͰ<ÜÞ×#Q3?ë-!ç KF>väèa9™lTéQ±(Á”cÌGµ$ã`][ùˆcrã†v¾×x€MûÐSCì€Ås4g,`Ýá z(ÕGjm‚LlSsÖøto°Áû)·á.”°BgŠÕ",ÐôOgf«}v ˜·×œ¡ÏúWL +®ê~¼J’°úñrµðóÀ>@ó'¬fòàÅa€:^4aq>ƒûκ6.KTªIôcèÝSòº4‡îËŸÄ´e˜ö†%bÞïi·ù¬/eÂ[8€ÁRúH½÷úN 1’í¸ër¯QdÙÿÛÆ´«'¬ èA¨‘”Öb†eaj¼õ†ý'œ,$d|2¸ )_÷oêcp¥md¯à_þmUó]î/ú¸,w§ þâ‚'æËwþSŠP<ÊøC»‹¥ôêåU´£LëU°cÆ c²Ü}VŒ‹:Œµ áœöãOƒ«.ùÞÙ[±N,;×9b!Ÿ6º•Ör5ý¶Í¼ð±*µÆC°w…´³ï‚L^—:$})û’—˜°Ìóéå-Á°TÛØbõó^'gÀYOÃ&¤ v˜é½®¯(5¼>—ƒ«Ï9x§Œ„AЭªŒY¡ÖTMpdTUΙ*œ¶LJð¡)‹8mºUyøFgdðÎR?:q?Ƨ"ÝËæŠUùp*ÍçóˆÎvv­—‚7ÑÇòäDéßlÊð«Ûàͧ)rr ‹¸qWAÁö‹Ÿ§Á^§ñýÄ2 +WÒ|"ˆ˜6>j<Þ§ÙGJÇ2ϕٗù¾z£"{1$³gÈ&Og­f&MÙóx¸åá +oGxå6-¾=4‰¨²y±2Ga"™@•®RR¦ª¡8¨Š:ͱñÂ/Õö™kÓ×á +_Hí½ÿvwtVï9ôÿƒZe>n.#v’ÓrÞJ» 'Ò Ý ­œ§œ –OÔ1U®#‘Px>õÆoûéÙDßÉŠI€ÃÔž Ĭ/ïþutà#ä9œIåØå¸7¼“½y‡®„œ3¥Ç3 ó#É/²tÉœ$uÙƒ‚u9VöPAX¥ ÷޲Gë`>¦Ñ>qž6´m9Ïáÿ"S–ø8W ÐíôÁ#eÐ%R§»¥«ý#o™ûð<â‹Fý7˜s¬øÞ +{œcYÃ¥ÂãŽßxœmò6? S +ÞeÖ +ù¦ºÌÈÖ!S‡¯a(™èÿËbœÎ|˜3B”—FƒðÁ’”‘Ù ö•üPˆ]&eà|K’÷aKƒŒPÙµôÆ$ç@ûU6Ñjûƒ¥X‘Ì{WèÛpà3l‰‰|ÑÛ@ž¢Øk‚ôç[^Öqr¬ò4 DÙÞˆ2ùõœÖkì% hÿ›)Y_À*C_ã\¬Yø! *|pãuò®&Ë,ÝãÎ#êuF‚%ïå6~o@ú/’R¤zìt¦\ýk‹¨"{œÒcv÷ú&ŽàHš¡êP•ñ –Ô]ŒÚU{‡áeÓ.D)Ww2]…´T +@¹®Ëeä‹\]ÙÑø‡²ÏY^­;µñz2iöÕ¡àÙØ&ž ?ŠI݆Hä< 8vä«Í +£“©LL£l ~"ëU1NÐÀÊfT.¼|¡à®Ýç0޵¨™j*ÖŸíà ¹,ÇÓF©0ÉA^ÕL5U*7`3ä?Fö;2ý5,Õï2uoç’hw]n%Àœò‰² ¸ØdÊyc Ÿ©Çtoæ`¦³ÈóвËBŒß7kdYÞ +¯¾ê¢9š^” +—„a2ˆœ¹ÎÊ‘yø†”Y è=É1Ü#ýu ýª­Oá0Ì8NZ—|¢ÿöö>–Ù¶UH¸iiº4Áop%,“0,A+mUá«ÝS_y(ôh•V³.qcœ=$aŠ•Œt4ݾIéU¨½=K¶Œ¿ºÏ×Å6OeSãMÎ ró·nºÏÇ`k‡ƒ^“ Cäˆ7S=z‚øÄmúîc^±ýçðeí1ò™œˆB<¬'ÅþñU`\†Ü‹çSˆo€:l¾ ýÀóBñ6Ðd?Å;ì%̻Šz¸ Õ›Î÷éáW›;Ó~K„`´ç­ó¦`U´«U—:62Ï닾ᬠ9S¿Íh‡¾'L‰DK [X‚Æ£yHV´.[%ÿ¶”o¹H®;b鉳€çc®K9Ú/ðƒ€<&N'8àbîßÏ[Ÿ„í½³gë9ÐÒå?ijAg¬ >;+Þ¸"3 ?•+¥R`¿sd×QwQÛñ:HÿG&™tšˆ­tq8áô®²8\ýÒñƒ±æ5îAmH,³™²v›çvd\’b îçÞA2Ѿ × ì–£‰Åbì ©‰˜ëø)Pä}I$–ÒƒïøU™ó1qßFɉh¶&ôÙVª½ádö· ½á^¹©¦ Ð_Îú­þ±d|n0:dke¾=îx8¤ÞÉ ›K +b¯ž‡þknëbzˆð’Oÿƒ'‚é^ÇQÚq’¸“7ƒ½é±èó¬¨Yß°¦p8of‰UqmèaQÿÍw¹DÓ”x7¹?ras#§m,xmN‚˜ÕcŽ…ÂzŸÑ)Åæ¢uâ’Ì£¼ t¾If£> Œi¿ŠK3iزºÃS{+žfv|±Œphébt ±§K&lo”t|ÖÝæÑI»*ç4[ã¸Æ²iÅ"øâ]©ÄpF-]á `AIRv·õ™N7,ú-ÚܵPµ3¤§Tò[ã5TšëB`˜ zÈá!ýÚEûÁvÄηJ}•Yiâ•ÅÙ=ô¥xáC¨N›Œ•?8›Ý±«îõùŠÕþGóÔ Ëœ´»ªÎÊŒµBÛ åþN>Ū™ÿ¸§øÕUpn6"#34Ÿ"G·Â’Ó¿›GÈŠÛëðÛä±>eZ{0K¿QÅDBäxVˆx»} ˆ$¥©j#^J|#€Á™Íûl­@‘Vv澜H‰ ‘ "ZfA'ÿ˜ºtE—§ßÀWfÝÖL|4ùaN¼õÖ=bƒ4gþÞ_€ęéXRæ“ V +ŒÙHL5ûâêG’–¾Õ,ŠT¥*G“³ö¯Uô‡¼M©ù>2TÒˆpøÎU!Ø×xw"Þ£ÈöD\Ðr Â^Nd\¬öMkQµâ$wT§ +ºÍð%6;‡álý[‡|}»ÒV¬é«m¥Wô<׉¬£`H*ü«w]‰çàu‡Ñ ™;Ç‘~ ÇàTõ”û:/GP''þ©t@iñQFç2(÷LæÍ"R`áµñÄFhïë”9±»Wp"|”«¤¾~+FDQI´ÙÑå‚¥_Õ ×Dí0õËÕ¸ž¼ ËŠ†å òñÓÙr˼…’oËøŸLç}U¯Ü]F£ÛÐü½©|q´Ú’w" òe…1 o bwàãi»ÔV®¬Ê¨Ç\Y«í—K#JcÔKK²C ø™ÿuJÇ[r¯>W°*z‘÷:þ¿Ù‰î׸¼V¶’ÊÀP/‡Â?g›q .áòê¯XÖퟎµä™;¬„A´hYI‰ñi—mö±›Àèp˱7äSÑ)æ‹%YÚ¡éÜ¿çyñ^ilæÈ‰”k‘0è½#_4 MðŠX©'ƒp>lCR2B=5z·TV‚ +ÃnòÚ—ô¬R9Tjðó›eéîð°öÊ3ØiæBɯ˜Œx;ß À K쥗Îß7^giÏcRägŽï`}}2-e”¼bðïì÷ÿˆ]àýßJRÄ&†Ë§mÇ·ÃV0Ú„ük®¥é4 ïj ‰»˜Êôf¶Âç²ÝãÖ\Ï“Ndà‰ð¥’.[„Én¨þƒÔñÔO9Ì‚ìuäcþ+×£Iª‚kEדZ“!Twêß°¾Ð=m‘ÙŠš1ßö‚Пt»nB§Wátœø¸÷òÓL‹“øYÜýq¹Ö/ÀÄ 7yI?ìfKPpžS[bæÕ'KÅ +UzóŒ\ñ´dó' 1ê®\—‚ƒÛÓ̼1$KönmD-ã=ñ DÚm©Õ=©ã|ä×EG&\®¸“Àí}'iRm|ËN*$¹À-Æ8s,>¸b o*Øba–dλë«Lò}¦'ÿª¾“×µM&— [à*¥”3¾Í7z­¢l£5¶–·CíïýEÇäªðàËÒsý“ÿd&²hü/°mÄé1d4ckk8(#¹~V3‡N~vÙíy‡Dà›+.Í›oÑêvSxŸ #+[œW{} +/B‘vÕ&—"í®#‰¥];7,"ÿpgµÄlD¢5[×—ÚšãÁÝLüLMŽQÏß½]…pÎ8hôªîBÃQ%ô;"`iLÔ+ɶæx,ž$bùyDK袴áû"|”žšR­‡,âÇ)ú¤À¬—§v²Û™â›' ‹ú=¨ „íBÚNɰ•+4½ž$õˆ¿iÜ1xKÅÚ—ÖqÈ OµyŠGp«"`Ý&q>Åꉰ&T +gï’‘/ד“ºéDY8ú8YGYPñîól/ùY/(Gõí¦ŒïÓ£[œÕbyÆoÎl:Ã¥gvlÚéI‹£o­ž]ð$ƒöqèåO côÐ,ü¦BÍ}NÜ4÷òŠB¤ð—=— •S¥)µ;Ìj‚Höçruºiò'!(=Å, S]ÁžK ?c÷*íÉUÏEóuƒ4¸5Ëu@¹ÝAB*ØúÖŒêªû|-2jI¬ài³~Ž¿H…D«}ó +³HHª“È;ˆ•Ò”ôáX‘ OSªçÆA:ÀFm;·ãT<5ð_Jxy¸…Û0ÿ,oﻟ¨£*È[!j]-?{çÕzt¦m!ß„½Œ°-Û’_1«àÚ|á?ãb®Á8¨>³_@ÊÒÃJj”=¸*xí ö› ŽTE‡?¢'ôË-Rlr‹#Ãeˆ½”ìr·ò¹àÿP¢`sq¿å® -€"Ü?Ró—Ææ%ÿ,ãšñÙAÖK£¸LŽõÜFéÆ'VˆÊýÒ@`˜e¹÷ÞÔÿõð¬À“’FS”š9aîÍû~äNWŽ–tMå%W1Rñ¿uûum“ OôO¨fÕ¥r™Ð‹¸Ýø¨Êå®y@ˆz‹­”Ÿfø?-L˜øE:”Á5B„~³È( +<Ï¢×,ÛufH„¾ËF`‡Æ…³®Àƒ°D¢£C¼ a.ásU¡±­îS¶c^_âÂsïLœ ;H°ö`á”­z(O¶¦g9½[è.w®/bmïàâr°²õÜͰ×vzµMm"aÓŠ¤#.åƒ\{9‚T:ýúešÒö8Æå—m&ü¥—øºK4§\òH!FQt”PËT—ƒIÙÀ‘ a¥ð.óŒÔµ­L•au뤱 `7¯íUТêLMw«?Ÿ®%·Ïó 3LQÌ$Ÿj/Ø¿˜–§\Óõñ™E°ya—RëCšhï© 0•.Ä–/x3°:$Ù8ÞŽî°4QŒ±1œ·Fô²ÐRËÕÖ]ˆ9ÑyòJ8Ôàüp=CB¿èY|^‰daL76ç*3º.'@˜íܨ9ŽÚoÿ0Ð\þÙ8£Ë/Û”‡4%ÆNŒY¹D7a£!ºÜ8§}ÊŽ9™ëéÐ+a¾bh…ì!m×lD†Þ[TÆß5ˆJä-{DîØª£‰QÄtŒÍêW,ž}T™Ñëh2¯{&ú;£ŽÜ[ÿ4þij€Íý‡í§‚å¯BPryë®D„ªé¿Yf®.ü±³W7ÝD]y©ÆõaZ †7Ñv^Qš¸Ù&x¬ˆPcH'RŒh·w*’Î¥ •û&‹³pßX¡/æmŸX… |Ò§Îæ‹ …›îSŽÑ;êÍ;Ábà$®I8à§Õ_ú£¦¦¸xÅ ŽÈÝÇ*Ù¢Œütú +Ƽ)§öåç_o;Kx'Ü4‘åû/RÿI°z¶ŽuoOZfIàÿ!뜶DQ–m[¶mÛ¶mÛ¶íªY¶mÛ¶mÛ¶Í»O[÷ ò-#[ƽ“Ÿ Ä/zl'¶àÍ + êúñÎ~þ@9ûŠkÞÆ”Nm&cÚú’ZždtÀpM”RzŒ—¯ÆŠ×ÃDì–%{8<ÆâïYœÚ]?ñ‡|œÎï•™PôJ²bKéß„ª[÷NÖÀk?“½5à¯Áð¦öÂQÉïo¨6@¾âúȳÇKÛë~;xÔm'Ú‘×¶·¢31)9‘‡©ìÍ䤩‰ŽÙèT¿@&zhǸ¿õ™SŸ¯d WF‡i(L²ÎҌ’‡¸(Ä8&¬1[ª•-¦ÐÁâuëx7àü–t?!]é{=L˜ˆ Ö=ò¹£ŠÀÚ- Ϥ +£¿Q}âUÐ?÷âSy úå“f¡LÞ÷X–Þ«“²ºdA,K³:nó&™Ïê®-GøçŽÊ éXNNÄ‘͘0|F›T“{r†×µH!c,sÔA/IUw™Ž×º¬¡âšnd[aÆÔjŒµf åwER$3p;JK~¬¿V‰í¿|×ôþ LèØÛÀ +<ÌÐ NefÚ¢+¾/sÅ$mÉêIݯd¶|5nmó̇ž‹Ä3œB†ªÕ7¿ˆIn’Ø€+9“ÿ³Žëj­ãÃw÷åÌ|.N,ÂiÜÛ Dë`?–õÂD<¹|@qÌ”š¯½ŠÓ—Ñk·뾟’ >¹é±’Së$ý +¶!®[‡¦Ì´íHff­ú7Ñl¸EjdÝ8e¬Bùç¹ã?F¥ÚÔï#™,ÖêÌ,5“0p¤†½÷–å?1™'áð-º;IÎoøž†¸“'YÍÚ\0÷Mú +ª¿Þ9ú¬ÉèÉNuN”øQøaèr¿ TfÅUø)˜üÞŠ"¬ïJÊaèОoÄɹkœ_<ÁCñä¯Ðë•Ò²|QH×2- ]Ù˜Gð\} Ýõ"¡ãR ºUR5³A…Óšë0—Ôhu¢ÿýõé¯,]Ú/)ÂG„ŸÆ[åÁ¤wƒ¢‰Î]˜ØIžm<=QZ¸Œ#¸šW5ëCÇ/ÌÉÍÅ0ÎQÕ/j«¾µ¾w©¸³Å¤!ࡾëÁ:AYsªs_£‚¥[¤c½?¨(ɺ=h‚ÛlÕ›«ÆÅР‘ëE´jôÈá–8'Ywl†ÿùKÇu%^¨V¸²^°©…W¾ù%hAÈù®R½|&€ÄЙծélgZåsÈÆ"åE`ªð¹3æ¡×ÎÝEéÊ&™‘À¡§³9vUÏ_q',O~œ`ÀWAçˆÑœUÖˈ“Ȧ­å¤åd¯*šs¸3úZxα’?±S;ŸšPú½ôiW‹Œ7u×\ëáBAÌâ·o€š×÷lÍÚ*Ý“—t´è1®îƒÅBüAƒ­£¤ÑåÚÆ‚ò)rÇ$¼Êî!“¦Ô1´pØ=Z4,ÍGD'Q§@&¥±Ej`WàÝh Üvp¯°!iox‡a"ºCe¹0t¿Ê÷>öQ\‹ +Qe$tdSŽöJNÓ:0èüCÅ Úè Áã ¼lÊ/ø=Àá";J¿Eøf˜Y°3Ö£ž„ã€Vý¨Äb;Mû·¸»&yîȉƒ&±×ƒv]p&'%£þ üpþ¤¼ ÎÎMš­8ÿSp½Ü2 1j­ÂáVdËh³ñ{dŠ.ö¢]kKð¢a¬oßîMÚ“q‡žˆAhŽ!æ€÷ÉæÈõ·Ð[3Ôf,³ÆÎ‰=O’ÌÖ´Pd¹ni@®Hr½$|õêÅLhàƒLæ’hµ›½§±ƒm{U‹–ß3Ù^SÕöo|Ä! ;¨Ï +jˆ9Àýƒ0”À“:³j–ÚWíÐKƾï,Hdñ`ºw,p+TL;«oÑ‹u»Ñÿ2ž„3öª¢îi] D›øwK5 ¶÷–þ±wÐÜp«R,Ïçbëùãmý‘˜ =¬®¹“ÂDìE»8®“dR OÛf›Ý@Y*œó F)åÆé þ§§sï+â¬{(V9²¢»xáÕj½ÿ|Aƒ¯êU£Í`dꣻËÌÈÄ« J–•ÒÕÆ¢iqÛ ‘ )|+k, µÃ¨± ÝV¡jãÂûd[±µ‘²ô÷‰Išñ2iÌWµÁG»ŸF¨D{Š;¿Hü— -ª^¸8!|ëâÁ¬ ¨Sºn§Ù‚žt·_wmUóŸ‡EÓwAþo1ö}Ù‡xw6-•‹ïƒEsFU%ë©©œÁyTÄߪ +[Û€hVdžN«Ç&£WE{ .}Zö:;ž&JŒ ßâRÈm’®ñ4v¿ÅôjkMÁ ˆ99E=ø‡üœZƒ·Äf®F~ÍÅãdŽÄYØÇqoH«Ý-ó¥Ôã&JÙ?|Æ}Ã÷6•1 ªhH½xöŠÕdÇYƒ7ÿ–nÚq«°u‰Ôj: W_Ó–Áø©¬ÄÅFóöñèYqq“Ùep²‘-Eš:Žÿh·…ÂÆˆU©{¬¨‹‰›êáEjfIÌé…e°fåMçå¤äþ)ù[h®9 =äˆÖÕÉÐo…Uø‹ iç•w#eS öì艀F…«ý€Œ¯ˆ£š…øžt$þÕ”o»û‰S—Þ½ýRL•­8oX\_ÈÑ@³\õ¢‹ 1¢ó¬Û‰Tbôrº&p×îšÒÑc<®¨ñ|NPn0¹ïšËÏ3fáAƒÈGQ*ì'³cº<ð¤!ER¾†b^±S¶Þ‘~0èå¸6çø˜Ë¾Ÿ•–Z”thç¡qL9»¥ùaƪ˹„L)Bϫĭ´ž¾Ëµì/sÅžKìIGsØJJáÙ +¤cJ'pœD8é®TJÚŽæQ‘ïâû =v.&‡Ú¾÷3Ò×3nÕèY[ tÉâåTÕ9é2D{ +ê^+Râ4€†ðÉÚ¤Ùn=eÙhÄ­ M¬‘FÏh’'‚æH´ô9ofrCøF$.vÉVjš²\Rä¿ðgYÛå͸#ßuþ&ð׿~cv•Ê§Ú ÷0ÙÞy6 [bZ ¦ØCœ=e9[†Þ¢“™MgÏG§ S˜´,´|¦åøp·×¥.¡œ«'cøñå‡ïcP.-° @‚¸ì­:#(¢€!…@/S‰oú4ç—ía(ËÔi•âîÄ1ÀñPð=újNÛ}«çEX.bWô·~²“Å]¬iùdÍQ?9 +,Y7N7@—¸ÓCÕ5$‡Òå +aE^ä-—çà~“D(GQ|?÷P7Ó˜zC>¤+š¥Ý?î ÔèS†SUJñîîè­32©u8ñQ¬NãÕæ¹ì€ìê× q:_0±¨J B‰ä[ª¡¬2¯Ãƒn‡PË©`aJ8ã{NÖÈB˜’Fƒú ÀµÌj6|›/§;g–ÐÇ9Ìe9$—± +) kލ1¸Lazˆç¸½WƒTzô?ÆJFða"n—ø¤f꜡x>ddHšQC߂ުTCã}Œh]…Iý”ìMΔ/n)çÂËjyÿŒNÖE¥=UÌLô\,nhÿi_| pºiMÇVkv~2ÿEŽÍÚog¬ºÐ-©®ª{¦´Êòc¡!WµS8`œT‰¡˜ ‰&ÿÊ¢ƒtC¬…髸Y•^Þ­-yÃ[öâ7úƒ¦ ”Ú•t€S8¢²lí “òéa¼ñ\k;ï'‰³|¹]&[rñ/* 9î’AièªÒlçb9µg>0‰Óÿ[ùÓ–=Î^Úµ»!²_pEAü—4r˜p½|IB^îÄÌ_µw°êâÚ"[Vwh\Ðo¢øý36M. Õ`‡_eûC똭M>gL`ðûÌ6äo}OM™òîódí0œû›ŽØô°Bz«3„TOŸÛý‰¦)o×8ëݬ\ÿ…PJruZ6æÇHñði+uã®öýcãøyýf;‰ûÁƒÉaé¸ îþ¯âŒ‹Ðõ¬#/.“~ØŠ:–+oÒ¤Á•J(ÊÊ ¬ÝŽ“'PÒ`[ÄJé?íÍf*Ú÷/5d¶C‰yœ–Κ0®è‹½ž2ã‡NC9Ô8±¤¯!Ô×´t0ÃÌÒ±-ÉðXÝÚ¿ËÌ{x àÀ¶€Nj`W<[ë(Ä·GĦ‹¤ätׂrcZê>Ç5EòM²á‹¨ÕÛYù# +ÍËk|^Ã2>Ï,B +{¹³ãŒ[fê>ÉS•úmDD†:±åŒáï_Φ¦KdÆÁ[oÓv"ß!œÏzW*,®g;PuRÊ‚,È“î!¸Ç5²)r&Uúë°Lc`l|Ñ+'ƒ×~š‘ß³‡H8ÞÆÒÐäÓÔzÎz­]-dˆpæî¤ >¹N.pÅ‹`PÐie"ÃINª¦•l`ö¨ ª7ÁbšÍVYlßÄÐcØl©%½gnD­á“tÞÌRÎW<ß‹>ó¸GbE.×õH'§…ʦ*[9C^$µË¥K?‹TëU}¶GG2$ÔZ€ñ¸Ö>§ŠÙ»9›5¥ o[=yº$F +‰óä!ѱéT;±aN ^S"vXA ÔV×o>+˜zWÄ$öößw|LÕÔÏ;™&y¡ÊoßÊŽ³=áí^8ÀoŒŒŽd†‚ÀÃo¿³ju’Í}püݲk• +±/Ä+3~+†Š§˜™ ŒF—½¢òÍ9H¢ÎŽ8†œüª;ÔœaŽªROÄ!ªZ˜Ô- `h > ú«lÌCÝ´,Þ«DŒ<ðµ÷_|¢?æôÃ%ƒç¤}¾6"öH,dÓõpB=êÇd.>;ŸšÃq.Ó L-œö„ §ã3É…$ª}·±öj¨?ÒnÚ)ø8Þ8;Òy2do¦jE¸4ˤq{ +œz—L‹ü»Ëõ1õ*yØ›†£<Ì~dñ*=G^Í“’nKVeý˜ÒR­#ªã±4à[QËÖQsnƒQŸP¦€¼ Eñ†n ™‚ß”(¹vD§­âí­*ðkc8¤É•“f#þ]H +»(“Ñ’íÊ ú¦ød±þwöÌI‚c‘›bòMP²Ï`#?¨"åÊxÏG‡®éàðë­@9È{Ù4ñŒ›P\6,éI^ka”‹,S¸À®m<£´©Â1í7Ù¥rVŒOîl^­]Ø5ýÕ¼/-n¢wE±R=ÿïJŒÖ£Ä9kx;ñ¹*ÙSª ¸^YµjäS‚µK••¯{&MÈ|Õ¾ Ú Æã8ð“yf“/¡|Pm, VÏE³; ­ÛöÒ! +N.úë¾uNì=#döɜϤ¼‡î°³z"ü„º½!QÔë +³èkŒƒ² Ã?ÿÞHê1U°Ù )ÌÔ1Z¹ ¥P¤'J‹pP÷þïE °#áµáüØúÂ"+0¾ +RŽe A„}EKºøýâÃ䱯Îâ{Š6€ÃsfZZfícCB–· ã 2aÁÃÚhÄFvu­ùgó.UÿÎÝz÷¤_ÄHÜ Ë >Ú¾ª¼Lâž°öp‡éüiÝZi#‰î°¬LÛÜ"Ì]¹†ÛQE¦¼¿„(t6ûÝV³)•]Ã2²±½Ì"¨9+µã—ÌZ²ÒßÁÕ½‚i™V~Ž¡Ó.;9ÕŠFµ•ÃìDé+åSÆ=å<5)JyéÔž6ëKGŒ7˜ZO>+SP¿]!0íÅ€ýÈEªò(ׄhdÕïŒ_;‚õÊ´¸OGêéÇœC»ö½v©]â‚+Wˆ±‰«ÂökÿÔÙ@–°ª[Çî“f˜¤CÌÇ×ñfÊD×õê”4"ü„Ž îžX|©’F]¢½‰ŒVŸê‡ó´^Icó¶MB‹{p†±šÞ*Iˆ¸Ø1]¾Rб©±®p~"37WÊ=©ÏÒn¾ÊößbÛ=F+CÞD]gIèå¾Å¥'ZÙIݺ„2ø?­á=ãäË>jDwMÊz€ù1¡8"LK:Ù¿óMó¾goáözBL‚=¤íR²÷BŸ=ô7¥Dì‡`.²Ì[HRbIpÇj˜#¹;ráò£±j·‡gÀVSRy`t÷óÕ .ÐC®¾°¨ºí“n ϽäïDÁÆøI˜ï#xLWΤo}9_Q—û{EuôÛC×ÁÜÐËÄ¢n´øxos³ë— 1¬®á xrë¾V]Ñ~Ò-á t°RM§OB^”fº…ò%QÚÝa¨´õ¢à´“;ËDð¾_8›+lOtÛ‹£‹_W´›Æÿ@Ÿ.¸uëZç-‰ê& )¤d…›,QŸ(è{8ã´‘åüCÎV2ü9š2Ù®{Äg‘B‘hŒx R[*`ïö,IÕÐ#z—toºÓó±ˆ,¶ñ†swœ˜ +î`LSÔꃜvú‡yXÝa&K‚pKÉå3 +hHHÁ3L¾Ô¢yíÿr£8ú0¿SH$0é‹'¬™¶É•uuPkZPQDã2ýúýZž®ø\¡ 'Nôm3O]ïRz¡Çv>@„.ý×±EwÄ9GPDé¸ìn7†* +ë÷æÍpó¿ aV…c#¿§WV3½â…|(<¼÷mW7@ídSNÒ7$çªå!Re*L"øßé‘ ÅÖ +ÜUÿICá‘VŠ¢ýþÀ&’_ö*%×TÅíÙ+>SÈè<Ãä çEH…#l¬:ºµOU?aÅöD6Z¤aT†>—»& 1ardÁË +åÿ§öéXä1¶-a˜*Ö è!â™AѼé›"zÍ@B@…®ÈÞýÒ©´\%s÷zvcb ölÜ“›%/_áœ_½ñ~L@è„w£¹þR½3¡º¾Ùo³ †•¶¿>y.Où€ˆ4u†!hǃøÛ CÇÜ©¬©Ý˦\¡¤BUÒ;n[ƒ]‘?E(ÌþJf„Õƒeˆ‹¢_fbýTŽ_­}»¬IÙí'¤©LT[º˜Ôrøß/#u¹—]ù:;à:åu©¼òÿ&?pÚa´ÚЦ@Ï’µE +”£…˜Ü½€ " k|VI†=>Üa̼±øïÜyî¶ËÞxv“Úû ø¡¶cîã²Är¬ÄЙÀ9–xÑsÑzâ;‘Éðu 1Ÿ_›(TE8̸.`îR”mN)¡yÍ!•1„`6N'Çn~øïôK+H¬ ìˆL˜±·ƒˆ–ÞÚ÷™¦ô0I.KÀÂ΂+V¥©ŒŽ×„;ì¤<ä%N úó#£ˆ°U8ýj¹¨OÒ1ÔVb.8Q¿¤n4˜ç„Tî§dþ¼Feе/ý®êp4»t!Xb®ˆ¨vŠê!ƒÕ•_PÏPmê PÙ×{†“xmÙ‰8$б¦]#pö@Å +ÉÛØ°tþaøÚÕôKâ‹øð†õ´ÏìWxä”Oà§o.5¹}ÆkÖ1òK·BsêS)c4ýâ͈{T™°“y7¥o}û ÎÛ]Á¦Œ+Iº§î)‰£¯3ð–Œñ¼i)ÇÂŒÇÞ+>ÍÈÚiG-~ÃŽˆzñ5’«ðRHÙ"c#mjÔ0poæ8¥ù炤(¶LÍž‘Úò.j…NàÍÚ]K½Iá(KØžìÔÍLÑTW‡f÷JÁ²™ú ÓÏ– +§OŽÿJ?Ml8ÊŒŸf*,ÂNªÖѶT§Hå²ì®ä$ ŸPt²s‰«ìT&òA`;NŒÅkE}ÿp÷ûu Îå7RïÓ"¹TÖý……¬MØ‘Ükä/ß…ï„Ì]’Aº,¤)]( $'DþSbý­u2^Ò‚‘O t%nƒ0zÛ1‹ÚóÍ3Û¥>Ö¡µÇú5ýê‡ÚmzÁS®„êFt‰GKÚu“Ñl‡Ò$=â¨w•ÎÌ?¦Å4.gß û÷tàFY+#›²•œ y@©~›Ãè#ä£6Ä»±‚!îÐ"`V×B&ÐE?œ›ÞšhSåm¹Òó?ÊdÔqøùô´­Ùè]²òˆ#¿BÂg9ò ¡N*bÔ ÷swñmR㓃^{KsAÿ"L]¦×ixÆàñòì›ùoÚ†:‡‰ŒqÑÖš4cÙýmpÓ +rRn?Ö-¿ùŸß„ŸÏl6Šó©ªa ¹ã,oeM¨ýiAï@? |ù·÷öQŠÍRdq`êHRý¡óKÜŽcåM™\yµ¼OœÙªœúë¬ß%y/yw‚"ˆYÈêjçËgÖÜ##IÊ8 Êƒ¯u–a. zi*ÑH]2Ðõ€®<Éml¨hjXƒZÅÌÉú¦l—ó1!‘ €Õ¤rx(åÅû˜l’n[ÇLtÏSʶä!z,¤!&–°ÅA–¹‹¯$<3qk4@jú´ÿø?­×O‹лÆòq+Fá–ú !tC\޲:›Ç8Í;E+w/ÇÄŘß™?d^áýÎäȦÎf€0ñï&)]ò|Jkøg•9\©Ç´lñŸq Û:êp&¸„b°OèÈQ.mR켃&£˜CõöïÚ&ü»œË‡ý°¸ÆžiÑÍ !ãi@ §N +”‚Ç諙Óf…éÏ-æYM6,"j«G„Øæ…³^/ëôR¼dX¬Dð`eÈ¢é%Ëþ’}d³áÖy1ÛBçÄ6 ‹ÿ;ÊaR=>¾!6Â(ÔÔZwÛ-î¬cOä#pM«@×>Ì×Åc‹Ö»CH³e$@¦r]$Àâå—›#(èã-'ð¾È*ÛÊ]?’²ŠÍþw)ð0•l>©«÷·dŒòÓk 1dcm; sÁ~ä8&“¼+‹(‹Qø!ÔyÙ܉œ¥2²v­¹É8…:›Ê㬶à+zO'ieÐØÁTdÚyê¥ÏWä=§qbTy[Ö®Ù Ÿ¤ ÖˆÿñÏ\tÃæ"†Àz-  ô©Ê+†3ßo ¦~âÞ.#’2ë²~Ó…dÑç{Ø…1/Á4O™Næý(¡æ–ó7 +Àª<æã$|<™èm$„³žQ‡W©Ý '1ý¹\š:¤†Ý4Oî³ÆoŠÑE2øEZÜ….¦õo(yhHàø£a=»fÐBS†$…ÕN&'ùºC…â8€p~m´ÇW€ï&:z5ÃH|±0è_3Ô|þ¦‡ËWúÖ¿P"º5u~}}Œ.õÈÑò+îÜò½g¿¢f–Ë6¸¥Úú€¸F,#­` â \ÉϦº{¹àpåÞ£Å=b¢¯_Éz=Ù§ÔɲBÎÓï¶ âÅRVkü|Ë Íð7*Á1¹; 5Ï“Ä*˜Ö‘¦_M¯9¼ÃÎ*µ•$ßÊ_Gñõë.]`ú<º|¤&†—Bû©^CWåݬ$©®¨xû¾Rdˆ»D5A(O± sÀ½®Üð óõ´Ç¸ƒ;ÇZ˜‚ÒWhE—ÂèØµ†xK€1ÚoŒW%ž·VÖ:œYÃJ:h||=?£*-¤î›ªÏnç2朓Ö9¥u}‘,µYþ?Áa4 à0DÚ»R6­.ÔX, +#÷†Tå¡6ÙÆÔ±30MR 4 êý”å +_S ¶[(w»@Ö._W>¹ÈÚÃmsÖi™³0‚Q¤ä‚¼™ð²“uqÛóC”Æl1÷.é‹zq5Kkœˆ±è»ùÒË~~»D'GCßIKߎq†ióeWã |Kl±Ä|S–¯ü;px“ëFtw:³çU¸q ’MbKøšAЪ­ž0¬gP¶,Ö›{–ܪ'*‘–†êšè ½Ž›˜¥ÐÞϘLËj¥ÒðÒվݑƒï@àw-#;'iòº«Ð8ª“òS.Ñ­ýÂÀê{Þj/Ð]ñãÎÌ·%Ø +ÚŸûIª LSØ‘­„åP%Ѩ†pÍ|wý7þø²|Z|¾‘XfÛû©ãź¾a¶iªÛ™ÞÝ5ÉÒ-êCø +š\Ï«è{„!ñ¦D2‰zþšŒw"N”7{Küá‡#áîà3ò¬Ùü(<è¿ìÞ~ÉúÙ:©–‹ÀDÊ¡ç:7±Ú"A<á=eÇëO1áóÍpCÊž¡¤+Ò)¶Äf[° d•N&«Õx®a7´Šñë[#µÜ+ä66Û.Jøm1¿?ª|åÄAÛ—ñeúÌ߬(O†ˆ¬y´«t"U’½v¼ïõµµÉÔõŸÁ®hÈ#pSÏ;&˜E­ŒIÚÈè»{ÏÉk±w¹£Ï%g€qUu‚†ïxÓ[ª%™ô.½†Ô†‰9˜™}ZxÞ×éq`¯tðnŠ'¡26*Jç;[Zå0Æ^–º&b«XÕ#—jÏ{þ¥Æ-¨ÈÄQèàï¼¶J‹”žÑ ›`ÙxüŒZÌ$å¿HÒI +•¦ŽÇ$){#‰„7ÿ߉=­›"e^UHË¿bÇ&§@3&­NàXʼÎß|¼ß{ ÜhZóCYã¡§çØ£¾i¿2½âfª’zÉÜ„°vŽ0Ö΂ˆ"³NûÖx§H§8ÏPü´ÙtRÝ¢µ¨ƒÖá­?Vt¦ì4îûÃq#| *ñ© Ö‰€}ªøŒäšØ“Oh@NHcwúœÙ +&‡Ç/ñÖVi1ÿ¡%EDð>IÁ¶CBÕÕÄv¾QÎØcјK`>öÚY§Êˆ¶úšú_ùFR ‘÷28¿ã²E‰æÛ:ÀÞ[š~mèMÍU–T½zõ•¾^7“«¿W 0ýB<0Dw^‘˜A•¾"×ÜC=S…׫»ó9ƸhšÔp;R™ÞgÄdwð‹Ô‡i9|`(¡Î}¤òjÕ1“W±ÌÇŠp§m=ŠQ6‡.3íi„ÿÜ“ìo@E‚Å›¢ž9ÁM¯B†Þi)D'h™ sa€`6ÙÒÕ᜸ßfçœóEÕm¡ÃY:Žíª®é§¢×­DªQjñSÒùhë|?ä°lQí.¸P$vÃèÊ'_8âߦÌ›ƒ¥ôß^Ì¡þî\áí±Ö +êA¾?µ|<†©hçÂ0„ÙkÚ[àofÊøרuZk'èªxÎÌÆi½JŽpɹsÇa“öÓ»Ã,í^ +Ý„ÿÀ4ìN-ŒS‰‡ihïn– ä×4ÊTú”l7°é;ÀRë>Iä&e‡¡òUF2ßàP™tfz³AsmLÜ¢O¿Yˆõ}P"æsV\Éë½Aê +Ó™´þ/–`ÇŒ;vÂ@ßrËÒk´ÌÍĶÿäù»×ÿ¸q'ʺâ)æy•ˆÎKÏNOÞæ‰Ïr`¡4l.]ù]Ÿª}à.íL>Ó±À«šKžfSW¬æ_&¥žd:t7QEí¨]JðIVf©QÌ™F2CKÙ!àÍ>ÓæÏ©©I–²]7ž€ Ç÷δã³O'‚X‚æà¥n¿ùíØgµéÝKnhsf®šÙ§ðM7\L±3!¯¸Œ¯c%,y_ 6)K +æK×Ð{Æë¶O‘(=ýÃNGm¦áhÑe̺ç¿w‹ñc‘R”ö$n•jH–Ô¨Ú ÇŸ’ÃÔPŽ`Ìð‹g_ó#Ô :E oÜÈÔÑóÀñDœ«õ™ò¦¤8óÏ+ý9ÔÂѸh× À‰c5I¥BSIE?X‚ÓW{7™ÄÖÐ +ã:†Þ¶¨­m(«6Ýô®¾£¢3X GùŸÈA‰Á@Ý FŸÑ™E—ãÎ<SúóÞ0ç»êžQt‹›¦Ñ{¸GKk•››ÿM(E-ŲwmcæìÄdÿœªŒbk‹,‹ÔÀ`Êró²"‡kš'€ƒSŸWöçÂ#1ài³•MV&YÜ[‰ÿ—N„eDç™Àåprkb63 ähj”PkÂUëm_Ñï„Ìå‡`àR¥ÁÝ4–j46zTÉPR¶õÌô¶AŸ‚‰½[£&»xûI¸ Õä+}ý’Oôl£XÞ < §¼Ôö¡ï\‹¿Âhãaÿ¨““&îâU1 $Ujýãøñ"_žìÔò¯`K¦¼ÈÍ—ð´[‹ževœô3‹æ[ª­ÒyZÌvÀ±~)Rð@- º-Ç·¤kA'©Ù;æ‘Ú»u F¬|U™!±A‹>‚ÅïJZV»g.ù›y¢_¸%<¡í/éYÔ(‡CöôPËa¤$£­ú%µ®ÌÝà3–Ý6f®ÀX˜ ³—ú"ßàm¡ÄC±SOxŸjrž¬fåe0¬­Öä3˜ |&ã|šùñŸ|ƒä+2jù) “ÚÉÁ)Æì~µ¯4jõ…ê—uj Gûîó!hq57.èÅ(ŸõÑüÕ[W%ØIço1&fyW{ûÑì„HŒF‰£äð»ÑNüÂn¹F¾rÓušZ°ÊÒ,Eg“G9äåçÀÌ«÷õæŠ&À<®ÿú Í{Eæµzæëìý±lÄž(ùtÏ’uØ" q5jî|Ù¿ž ô ‡¡àU^õbÓñtRZ£Žð<´<¼™fpg¥zvN©ðŸ ää÷œH°?"Vƒ|®Ú_@„­Û˹S ät×'ÈrõŸ]!öÒ O1ÿr\ñÄ`O#7ö€œ\IUÊj:þ[ KSxü/€D—Qt +;±@Tã¸4¹KzI‘£›kJLÈ‘'ú\·À šöTÀN§c$hœÑwû]p”³È’G¼*+‘Õ²­|yÝžh„º¯å¦nŠXµÅŠRÓžî(kÕ”lªˆï1$nþñ&U‡ùª;à9¤ T2㔇Ìß”FL¦?T,@¢ +r×"£Ç*<­Ö$+)¼oV¯*gŒV0zÌÌȲIëcÿ¼Ï“wh‘ç÷ +rõuùù-zª0­> 5Æzϼ†>~¯ þ1„›Î +`kµËmä–uý#Ø? ùs%¶ ÑY‹RÐ Åôwî÷ø^<Ô™L8ga,Ùm“…ÌLËyå%C[Ÿ“Õ¼^|&Áu Åu)‡|£ØC$ÊUD š´“mYþ+"·÷µN f¼ý°´†wïñÅÇA~ý„Qø™žÝ,x‚÷Þ*¸aEs ão‘2QHsÖòÒÍ#  L´ä1ë( ª÷ Y ÅæÁ>d>_P !áÂpåÒ€£Ç:œ ‚•È€\GòxVƒQ#?7öQ?iÉ–úÈÊ Îa/·¸ÜíÎ!?_…qÑ;·Ò£· “ÁKóUNìé\^ÍÊv8Ê)e@Çe§à”¿á@á4³xÉw0¾W Äz]KþU榬Dô53Û2J,(ÏpÍ=÷ôâz9­dI`”Usx;#•©FIKqEоDÃhÇŸ7E±$–¾Ÿ=v[ìB^Jf\Öf$©·q̼X'ª²rüóªÐÈl„¢#¼÷lÚñý[²É¨¸œ(ÖÇ'U>Æxîö,ä…ܼ¥²ÇÃðùͺ&"“kû8nXjDw á?Ff½¼Ç A#~o¯Ï*§äºm„^ MdaŠâ°²çÕT³Ö¼IÐ _$œ§=o_ËZ8÷ Üp¢0èí1mŒè¨í!5)Ñéa>=P«± {Ûð©g¦½ +7/Aý +F«è5$ñжW¢•ÂñÝQÝD‘9£¸˜H~^ŠyÏY(>8Ö@¯š7F¢—m„+Ø•Ü@»<ýr[Ü^ÞÖCr„ð -ïæx6€ý³¼÷EÂå0¯–ªÉL +!½ª…~Wdž[¸i×=qýd¢#N£ð8ᔪf7Ù0[{üùV©0i4x©O!à¦8tF:`Rkƒž‡w3˜kô$oÝ"‡]¬}Oo¸î»ÌŠÂÇgÓ>ÞeC×ä3²©ä‡~Å,%¬·åáHò×(c»AA2­­ŸŒ!‹4×Ô5ÿò7Æj´â@¾×fj-RÇjöëQÚšhr"ÐtèèpªV027™.f‰PÄ‹…ã[; ³XåL!ÒàǤáE±—£Q’ÛJrÉŸ3E»{ò}–£^mnVxt¤26å·Q‰äýèØƒºY;R—9 Ÿõ±ôîLööñPã‹U¾L™ŸœŒ-ZÐF-°Vó¤Åa%eí¬Œ^¦@­‚Xfq0á„7‡•@):UW™A _Bø¯ à‹¦…>†û™™Ê3ÅŽaC’—[?xÜ#t&ê{ÌËM¤K©ŸãѺnøA¿—éñnÌÁ-Î8ÑöˆºŽ6¼ÚÆÖªx.¼Ÿ7B(qÞt#…>|±fvœÅäѨ¶¸¿Ÿ­_ÀŽæƒ¬ßAºU6ü$ímûS!HbÁÇáíØÑ1ài¢XEé…–ƒœAvuÖ €N£/v4™i‚zy)üÙyªgjµ–-#™R âxI3‹´T^eo>ž“^òª¤,‘{pg]áÐݺ‰4]í‘ÆzžËSÆFþ…‚•h«’ª_FÄõXçèfÇ#xsŸww{d±ÎÇšýÂ@[õaŸ³òöWÃk $ ¥oò˜Ëü³­ ¸¾„†%\O­†L1Æ]j +x^pçúI@F|©cVWJxÝ߬ûÀe‹Äϲa¤>ÕQ'»ÊqÊcÁùKT:}Ì!íŽq”ØñH®2 C†Ä ¹Gëw*XîøPÎÝx`[•wo”† 5dgRñ=S$@Ÿð=@Ê8«3-ˆ„ú¤ìÔþ«BrµPAß „ŸM_±Ú€D9͈fÔÙ€¦SŽþF¯jÌÊôÒÖcY$smÝ€CÇì +½M}ð™¼ôºŠ +.`øùx]ë^ô"·á#•\=\Šõ(),Ta­íYŠ9õ?~Ú…a§ôÙax{#)?4Î×2ÒúSüwóAYäÙ&àÎ8žüWv¡2ƒ„ŽMr·û<í]ZÓD›™[èiHÖ¦wý(‰Ýgìqÿ…çðy-ÍyÕÖsòL ]Zè+Œ­©Á(—"·B"ɳ׾°–à$ ß7snûhÉ7RO»:8Ÿ%±0ƒ—ë|šÛþÛë”m«6‡Ó$X `îŸÁéKAõï6dS½¸O»Ï3RòM,QüÒL!Æ-ܾ¤ƒu/¾õy™™z´ŸŠ9²“Y&µšÐüé[R°;¨¦àzÛq·\å#¬ÌÔ×£ŒËØáµl„qp7Òk"”üOž™VW–TÏ_À¡Ó™Vm–æìN!RQØ\®„S*½{5ûIò6$’ÃêŽë½Cõõ{tе‰BÈÑ“ûö!j€Eh|?R‡õ@@Çï%ˆkÙ„å¤Ì»FôÜY+4?¶fq=Šfjy–­¨‹ÅÝ×5Á2]íXD¹ Ù̸øÉÿfmy>€½wÆe¤ÃÞÉV^ǃQiàÄ_E’öz*ïÁg@uP«#'܇X„“¿Vzߊ¯Om=KT'ÿMcË3 úE>íwŒ M(Ì2«>ø^òˆvìŒUñŠ¡®Þ ªVYµ@l½‡ŠË²æ\ƒ±ë0Z‚`‚uÿ5*2ÿóPX:žwˆö¨¦Vfi`R=Ö´–ñ‹Š©Î_Ε¬ "ZƒÀxSm2‡^pÒZ@€ƒ''U+!¸raïô™x%•Úê›(kô¾j»ÃhÓ±>ö¹ˆ³DÊA“^ýšfÖ¼Œ,þ…ýÛ&kÚ0pR»¼Å‘5FIÉŽ•8’›”A>µÌJµ®Œ^•r4¸9Ü“à]ˆ$èÎVÃß8ˆs…,Zý«'Û`½äí¸Íá¥ÅÝt—ÆZéÿ}”?²ú\à‡¯*3änMéxŽbe™lTÀÕØ-]iît+= +žüå÷vÇ ØÚjÉ,ñï* xÐ5àÓQj¤”¬3˜óžÁÇËN~óú´š {™¬×.wRe{[?Ù}HGÊ~5r#ÀuÊ,ª‚¢,‰Ò¢çŒ ~¬ûàûÛÛ€¬Ñ2hÌ|àœ»¼•xÎ*dѳcÅÏ?æ<SÐKùËáLÿÙ–£"ÅÞØ …>, q~$‡–·&– P‘ò–ƒfö –è‹Úÿlbyô4·$ +L·¶`©¯¥à5šÍèŠuÂUösnƪ3_’¦¦¼¡É0Üá(¶È¼BV%ÀÔ„1‰À&Ì ¡’¹ëû<âf8"íY®i”®±NöHž †¹rßGD"NWË!—ñ¦p›áË’RAVUß™gCW­q žX©Â\¼€à´£àeÒ5öz­åõã!¦rºÖ¾-õš 8 2XŒÏ]×Òo¯Ú‹ß ¿¿Vÿûz¤ª‘°µ“MÉêƒ[”Ôð$ ¨ŠåÍc#«9#[ݶ»ÿlO² õ fU&29¶çu»2,Se聯Îü‚dÁryj ³¯¼ö[Ûj®}!¼P½mÚøŠ½ˆXi¹HpíôhuyŒËF™xDº¾5·rÙùw~<¶– 9#܈a=ÛZÕñ½8’#"éö$ßy÷À¥em¿Kšë®Éúvdᡳ¾ó»þIyarãVF!œ·§¤` ÓjÏ&d¹O.m«‚ ŠWdn%õtfô·#vìå\Ò×LsÎ'‡=M¨IdXð¯Ö¨æ&ÄŒ fäNæH3SÃÜÐÌÛ^—÷'¶Ç éÿquNM¢(@wÛ¶mÛ¶mÛ¶mÛž3¶mÛ¶mçËCRÉý ýÒ½«w­L-&ŠF÷Ê +É4LÒӤʖ¸í€}ËéÇ$,f~hZ †Í¦äZ¼È5ãa¢O¤ì7] £Åp›¢«Š*µ xs#MƒMÂÞ5§:|§Î9@‚ttfº£€M¨ªḨµ#Ú&}óñáŽe}€´ë¼QpŠÝ\§ÖvŸD;sÛ±àUêËìNEÔM® eèÒ|þÆVÆ·\µ-µÌ>Bh°wv®?¤"Þ/æ¿Ò#ÁÓ#·2¾hðhÁKõ6Ù ãßµds¹a©cÇS,ÇàGüÖ;7ŠÊŠR‚¸ÞÉé¶e:ÁPäv¶àÅU7‰{ÝrX¸4P„³9÷c£ÏŽœcbnª.CµêAæç5åEŸ¦L`¿ ?! +ÿ?,TºìëÌ/E±V‹ÒÕ=^Æ„“)U¶ø&?¤ÀþäÌF#Üóô4ÏÉܹ„¨¦W×w2\¢ñ[ʸ´ZÉbäß$DS_é&^Y­M_qÎd)wGòl7þ½Þd‹6ïx ;µh<Ž +XœÕ ª Ìmˆ'}Ȳ¦“LN¹Ã-†õþÑþÅϦà%^[¾|œ¹/þmzœÛJJŠÆáAÈ–%Kã˜ɹ`sr⋺càÀ1gsý1|îȵ"d òz ½×¬'7«älWƒ!G”Ö¤ Í™¶­Ü¾YÏõcà28G‰O[®Ç/p…žÚõÞÂ^Vìê•'i4"BÏndpðëìµZåŸ(z4,Žßó;IÞ€5áSVêí‹CÆ9G´ü0X(îµ(_±2Yíë1.v3RÕJ&[: U53|ÖlS\ MŽÓ€l˜ÍSCl"1 òó‚¦÷»v6t’ú{‰‰e`¨|ÿ.C~ÁÍU…ÑØ‹cÑPZ)W+u\àV>"$(:• +ªLÒL{WÖ°Ñ–žzof5wg½ÌÝù›U¾Ú⩾L(Û‰£­ +^!M¥_CÀÕqN”ZÆŒNj– L×.ÌüÒX‰üup‘¤y¨éÆ`maÔsÖìÇs2=:1z ÂkG0>äÑÝ ª^ýN5M|÷F6Ž^©ýî ßËvÕdczswƒÉ†àäԺŠéšY¼tûÀËÖŸƒ[£«ÓZà,Á-\œûÄkÜ>-ô]ÿñÓ…È–U‘*&ã…'¼K e’v ©MŠ£kÄܯÍùL é1TÏÆj:lDɨԢÐ^23àÐ~MBçú^œ¹ug.]î©?¾¨%wµí­”?üRž6ž>³„%ùÌzƒ ƒÿôXC¶+uuee¹†Ð6gŸçÑpÉm%BoóäÄswru“ycY"œß +÷Ÿ)`l¿Ë'7GÜï;Á@KâãmUcßÔÈåE© ¡$…D<âØL[0G…õU‹Vm.~nfÑ5 +;ê,@1Ep „ëöMtj[~¿ƒ:$Á-i1O±Ë”ýÑ2ÁêKqP03µJQóþ,îš:`ü­9Uª·ïõÆg¾hÈPÚ½f «êêlyÅ}cÛÐɧìoòõg—`R©¹vgâÇ”ªàã ù5Ì;¤«íWñ‰žª9:"ˆåòÒÐn„%yùçgÆ-Ì»Œ R]cÂWc ,HÄØh\ª3›¤¯o¾ˆO_,ú<6#DRD•+jûtÄu|øÏS?|\™ÏYØbÉx²X=î@5ôò¤Æ ´;ØÏ±4F"}ÁÚ&|6ã¥F”‰„+öÌ«¾{Äåî¹öâmŒS7øCdsL‡Jë7¨ƒÜÞÒQ½çI$M¾gÊÞ)™kÖnŽ2‰Œ³ç ¤öú‹”Ê!™”F8k9æ-à2—§øFýßñüL¿añX~jŒÀ'r–Kº’í² ……`B±ÖÍh \,”p`Ÿ¿ÙÑVðLêÖ&–ð‰L®Þ3Eޝ +ÝfÏtZ7$ÿÕ½ÈÆ’r‚èº"ºëÃU¼jZxæ×9©·Grxh€Ýãm¬Ð>˜w¶#ñrŒ8Xë•pº{›µáä†ËÚ\~ÌkÓô¬|¨Š‹u ú&™<€Ù[»Œ™¬jéÞcþt•¸×Á¡Ö`Šÿ?zÅÌáÚP_%µ!Ìu£ù†³Ç~FL;EáuªÝíxWCöÓº8«€;)s4|£½,Çüò©y Ù®îÞ8ãW*ìË뮌ëjj•˜ž×¬n|½ƒYSH_A^8Øù„YòÁ×é¦Ü³!:ø£ý—EÎD–x$]¢OÜ +?¦Ôàkê4"q?ü2{XÙÿõJŠ ¤u~ΠR7IxŠÂª`jƒCyž>ø‹©K%>eÉ@•lÊ¢H>Ò7mZr$3º’6ûú¿Kø`ïŠ+ÐAÏÐ5„ýñqun¼2ä„ô«vJ¤b¡é_uòôdAUþFú˜}SŠêïÞh sZ _puFY4ÊåÏ‘$óùŠT]U†8ãCºú~Á%¿à™¸„¡¦÷â|6OÒ´¡çøý'k‹Â…Kc=IM$Ê7‰³‚ÝÎ;Q@¹Ã&ÿ’V³¹í‚"Á"z‘¿:Cš&VY)yÓ>,än ¡{OjgRíeØç»_ ‚ÇÒ÷ ¿!¦ #²ä»}€#Œ {SŒ¥-ÅX@o9¹×í³³:yæÆG6ð÷[D«4¸rx|x`ß HôÈo ¼­–=ÔÉ<2jwFI­yš«ã:A”Œ–¬°ý<Ý®Îàíx°I!vÒæ/±\ù½ðó€s‘9#A08U<ùÓ'p¢X¯3b?$¥Y|j8F¯*œ z2§ibYX:ðKÞºLâtà_ÐÙ-pÔ}„«=—küäÜø­þ«^çËò;ÍþⱃòkãJ¢#/¿£u‹jCTëodgØ°á •q¼¾ì0Bàš<øž¸\ÔÇkeòÃ|«R¹Afï+=—ŽáH µÕ\»uîÃÄ/6½ÉN¸U°ƒaZ“jaTÍ8ü¸FãþÈY—Ù½»Q=¤6 õ;Kæà¾ ô'Õ‘ÞJ;ºÏ ,ÖÒy#£*£€¹ ¯ ÈÙ"q–©gräuMêh!hfcHS½ ZøAsí¿Gcõrð”hUå¯?!K[QÛd¼ßõÀˆÜã˜ì¥'츰+»üà¿MÄtóƒºÇ­&ÛÃúíðãâLò¾cï²ð°XH¿¡ ®TÏÞÌ«il€ý"»¡6{)ZCt‰H–*ÝãE}܉ñs{ý³`€ëÉy;ï©bßK}ø>u‹”ž©B(ƒz`@òkÇLþIê*Zã4÷Ñ!]záß›:]¨9à-#žŒWÀpFÄïÉ„µP—×-ˆ¶Ì‘4;ø_ÿ°?<}?Ù#¢Cš!2 sÂÑúð¬þící3Fâ\OÙüŽaB.Œ%:G<Šz*ó˜V~^,'³©y-óWüD×qCÿÀá>Õ7µ•ŸÔ¥%Æä³¤ fÚÐo4tx’aƒ'Ä­É; _»ÿNlÁ©{ 9ðÅ“VÇGã,‘¦[êô,8bB+·@ÕLÓQèo$,ûTø×tåá•XF aɘ !Öåû©Ø[ým€YXSÝ‚´¾6.ïÄeζ’#-ÂRá\Ê3Üž%H?F66šðrQ‡OÔBr»Ô]ŒZ†B¼ä`GÓ§°÷ýó˜õ–{†:(Í +ìîy†âyÙkâËk仩 +|„&æÛ\þõdž2pL/œ1T¸¨vb쬎û§Ð:QgkW}\€ö“Æk¼>ÍnØcýH¯o~óýf*â°þú ]ä §Ñ™ÿÛÄÃ#âêê‹,Ÿ 4›éÕðÞ7‹$OQŸ9D— xKZRCýP–kÞoàã.F­®Ðªpã`S3÷¬ê¯Ÿøµœb¢œ£öxfÍkáìyN‘P#ÝôP`1N]û'9ft=—ÏB`‹D9#¤MÉü¨ÿq-·¿_UyåÈ䇓;*Gæü‹™1 xÃOØà±Ü¶Ù¾¼ÆZƒÍ¹qÝ'Ä~SŠðíTHTÑJk‹·8J†KýdZy àáÞbèwyµ)Ô,æ+9vm_Rÿý«*šÀÓY rH›çÅâkÛ™Ýؤ€Zz,V´0¥ƒ˜\ÌÊéµ\l}rõetÝr9ô:ÅÅ5Œ9×{óöüˆ³áˆcfÉkN÷E5N¬k¤@žî‚Îváçè®å™65E ÈñK<~  †jË;cP¤îùub.zd¸É$7N§{ Ž89.÷Ê€:³¹ºUýÕcrg¯ô‹,óüžìcÔžš´Á¯'4&ë Šôx\G‹Iånâ¤Zex-®"ø²‚TŠ®ÁMEN¨±R:¸ÑiÓ¡‡ 8aæ¥Õƒ®‘¾0¼Üåé18SA±š ws Wpê¾<Å ‰É=Nð©‰ã›n#9¬2‘‹ €÷ù uÜšw–T^Ð?‰CÝ÷ñ„´aÕ‘!ôÜý˜éÈ ã ½vLѽç™a‡_ Ђާ¡Ÿ¢””Œb¢ÖßȳmµÜ|ê+ 'ºQèÜU‚¡*á 9›EĸTþÊ|b +ž˜&&ršóU bö•Töê "J~oÛ8Š’ŸÃ>es9w /^î+©< Å•¤.]%ã•'ë—[ÑžWÙ×XºÀ•Ú ønÛÜE`Qc¼“\ÈBûâÞ©¨•©4~åU]’Ñ‚Ç6*G MñºÃ×!Ç'PÎM¿ahêÆxœ` /ªº¼O¨äŒ@ûXaQ‘;üW9Ýx*©P\Ö\"‡õ ¥õèb‚¡Ì•¼{Èåa×;>/Ëlg›×fLÖ@l[Ù +ŒãʪM€<04ÈæLG!åø‚H@<ñεBß!„Ó»?Ë aÝ8âŽÁÜü=*ÓŽé·~¶|—ò´U/3*˜Ê8=`h‚Èj°ÕÏž’Ù1’ÿŠ}òÕJz¬0\5‡AUvg>òÑOÇ|iw]zk4½__GÅ*ÑlÊPñN˹ÖÛcÚçÚÑ.L銥¶*óD›Àa…ª„±8 ;dVñ8ÕÝãhë¹8‘ÃÊi´ÏT O²jD³;~¹míü{[÷x6çm`9Ã*Ç–©ãfÜŒb  Â7Ê¿ö 2yg7™ºšŸøEYÐ,æÇ¾CËÌ7×Оi“èÄæV«ü>z¡_€-–øçñÛˆ`‘?[“M™Å¤Tè| + D¢ Kö1žÇP/¯.öœgnùê_¹rE œ–ÏD1=ö¬“P H£mO¡æþú¸æ¿wÐŒL-ŽÁšFýAƒ_“—6 òT“Õç¬@3au¿ ¶>@ÉEG C¹mü1XÚÂרYV¬ž {…|à¤Ú9]›)’ò_Op†÷;1â žÄÕ ÜðžfX¢ +”­}ÀMñ&˜’ÙVÀe#jæ*(‘/¶zm%£Î«¤èUºÿtü èÁv@>ò¨Í$Íp·J‘务q{2}€ÐÑÀ\¤(†-Àûô˜_Ÿ|Óø/þþ^³ïÏÆÄm* göQ^æ ŒçÛG:¸5‚9ÿÓsl½…Ö@é0ž0t'dèHƬÆU^ù·Ö(©ù*ÌÝñØÇ ‹kð»„YV>x:ëºÉâ¼ÙLÌþIQ‡1ìPLófù•DàAïˆÃ®ÇUê\æMu›¦ìÃGŽw»µY¥š7Eô#.›Ñ¦ª[õy;€VÔ|Þ +m‰)[«”>ÿþV„ Ô/Žr‚­Y†×í¶ß–1 ¼Â­Sfo6ZÍŽQ=,£Œr#O®»ç(}ö{§@.…3¿çD¬,Õv§}r7r3tšÙ¸{ È¼SmãšÁÆ!þAèPÅ6OÓÃáÖ™€¬¹gºéÓ$úq‹Pÿ.–Mƒg÷wJrØðü/ ±1qž'AÖÅ„ŒÚûyˆ"ûaŸ\Â.à'®æwºw3&‚)Ž€Ñn†ç®(öܦoȪ†ñ=³î".,Õ¡#à}öÓyáûz¹OFÒ;}‡†Cb§ŽâŒc~Dý:4Óø_®|ÎL@ÂÐÜÁ@pS“ÔhSuÌØ›MRŃ/§·ðÉ»qqzÀ©b$‹J~s†zy _ê t¤ ÿýÚÅeÌ S®± ½úºš¾lxëí;}Ô—xDÀÒu}Z¼!a„l@˜.‰S*Ó¶Ž‹ýï]sÖ^˜ŸRv2GöÐÛÓ‰+«ù˼¸·LyÐ2tß©Àbꂨ)ÍgÏ X þi1>¥²MQ¨,ÑTX² [òTø1v½#á²t›d¥‚Ð…,H˜®¤ +è˶?ÃŒ‡½§ÏN'¨>p~Þ rYúÁ†Ñq]µÞ5f(¤T¹­¸6ð-´²ÏÑÙo]2†ŽÏR 7.ªèégy×šŽŽ…û=pç—•sùÛ0F‹6ôé“@<( z~àO¿ßî±Ï’®{­†ûFGIïnSãAÓŸÿhsÝ¢¥,$æ¿ÈJzàFמQÈöÏŸc.5»­±S {‰uÐô½™ã§OKS>çu£cê:ljDÚ )r£K«×íô½;Ý_”ó9„ò‹óy„hІ ÃÀwâ1¡x7ç +8}Åÿ©ˆ#BÔ'Îi™XýF¹rˆO4|Ò6×27ŸeÄN;`&é·-âÅd0íô¸®€(.Y§þÓ˜…™hÿ^ç2¦¬µø¸ÛkXf%÷Aå·jÆ„;—þ§}à´+G íñÙùÄ(NnŸ¤j2âNÓfš€»˜Œo¯9d5áiðîs¤(¯mÌô§¦ÝŒˆ®a­œDÚ}bnùôzyDÉd­ÆÞ?ô¦ÒGó¢­e†Çæ$ÀbÚ´u¶ œÞB«OG‘#%ýìôý)c©×Ÿ¤uc²ìÛÎõBÈ™_nŠž€ýÕÄIæ¬1Àa¥ãYYç« P+ù*ù>™Ÿj´@pšâÎ8Aè5/}ƯR#“ bèWëH+Ú:Ÿo´¤?J]ƒVÔÓ“/PaßLe!µ‘öÜæ¯nœù'rш÷¨ã"Éß6Ë ƒ^¡ncÿ¶v'òå_íÅe X û„êe ­îß§_ü©¾Gë/Õ´ƒ¦Þ¹e!dÒ-K+ zÚ%ô˜nS rZ1[ÀŠÐà-Hfà€–Z›g¸öEê‘óFñyJv´ÑâÎ|&j¯„ßA¥ûäJa=xÕ²ÆwˆÝT¯ŽœiÑڵЃd­(->ˆk§4±YJ¾ÿõVµ”Ÿna+¯ÔªP$0£C,òÓüèÖ‰÷iÛ[-Ä8„.IÛ~ÙýÅ`M^ƒ¨(fÀ,& ‡KnÅõËt[ªÀ%âq»L õªªM"äh'e°¾ˆcJçüi)y‚°¶p,Á†Ãççhp}ÀÌ…1Óî?…ÑÆ&T>i™NWª‚¬¢w{OUv4MŽÚþbX-]RWž”ÕªA­VÐpC ]P£{TZ–&éë$÷ê—Oi©Ç!…ÓÄMÜ ÿþγ»ÁbNR¹tuE×n(7Äd*Ro¢!­!÷9>T¦Ñ¦2Òò‚ÀÆ#ááþ1CÞ| .ª±~ÊÜÀµ sàÐ +ü“Ð8i^MÚQÃǽÂ)J—ËÐ~ñö[jHÒ%í7±„å̤ Ï’Æš;˜”Éñ +ŸŒ%ùsû¾tæJ·ïÕ¦náÝðŒ +>\¦š‚ü‰²Þ»eTdrµâg&^üÒ‹Ó¾!¬ ]7?aõÊ!Œ#ØEÒÅî>j ‡APÝXHI›qÝ*'{¿^Œª–Ö[[TÓ&§ÝMŽÕ³NéA20Ñõ!®Ê^1ÿM&¡üì%í"γ‘*Ærж}xW—ŒÇ¹]±k9QϾaÞ‹¦u#D7… Ô$\ß©aΠvØ» °ÅJýCìU²ã8>+ #ú…Îß]—°ÓN +¹£ˆÖw¢æm~ÃÀW ‚j6¿³zNv«Erþ5ÑËR¡U—Ñ[¼WˆUŒüv9:ë›úo+8γÊ)ya°ä½­3ÑôÞ=gjvyòð‡¸:¦³^Yó •,>»¢’Í»Î÷vë?HÞ%K‹õfL÷ψ,µgú9"ˆF?–^Õ®5¸Ÿ@`QðÌVÐö˜1ˆÁàgç‚¿þŸ‹µŒ£;|›b“ñ~.~½Àª*SÓ5³[OŠZ.‚CSçâPG·.Û aoLA\M•侸“üÕ"ÿœ±'ìt¿†öÌĤ[<£_ Ãõfíeæõa¼‰&ŸïZéÁ-@·–ª/v` vºyÆwâp…묢y®Ôª.¿Ñ~àµ-ÒŸaÑF~ àžã»¤¥œ½=¬Oß¿çk!’í@,°•=bÝó4„©Nç—°Ì¥qbrÄ­µl“²×)J™Áü¬c/ +‘v©6#ª óÂVÀ„‹Í>Th³FSêÔjIÝÐnÜ®’ÐÏ`wDòx bìLSÝÈyÑJNáŠþ2PŽÓÏ»ÉGÝLÓ™×r0¿ÂyuøwEΛ($švSofŒwGác› hå¨W°Â“VíÅ”ƒögÚ‰ Þ`>© £²Øi>hiZK‘²(³³>±A½0˜þÁnB&ÃæHDšî!C»ç]Ÿ`ß°é(QBNy,5¼ÂÐÜ–d“òG‘¼Rè„„Ybˆ$å`ÝøžG·LÏé§R!«€+Câ‰p‡¹2ÿ”³Þæ(¢I;a9͉ÄöR&}™ˆ@Ù½¬À}Å鮦zZ;Dý\þ(u¼ƒÞØ.¬!x®ôû}~ƒžÀT4E'ßå²UÍ•-c;¼¦ÙIuË‹¯FûTÑéÛªKRrÎíûØÏª‰{C=”OÃ9Ë-Ö‰Uc6WÛ¶0·I†Äa]FÖ*jžz·üU|q–9ãü(|9Ânàœæ=}rmDR¦˜¸z­3.(®¥î1L@KËOöœ"}'R¡p’,EâCÀœOôd7@'äVÈ=ó~5éº2(S»xB0!d]½D±òæÝ`ZjUs?"ŒîÈÌ^šÜG¹7ŒÞ„ ޾SÿÌ`· ¿Àº™áúÛrô"ÍïIJ‡—! ÍÎO),?ÈÊIÞÛñwË/øNrmDsòA>ÔÔÍž.…Cjø¿ïÃI¿«Ê­½÷ÑqnUóŽÃ¢ù^Í c*> +iecF&‹Â¡+Ç¿ZÞ,׎“325ƒŠì±ºá=„íàk¸àm{Åé#ê.Y_ò\–íò“ÎØúÎÏ‘å]lA/ÿ] :MçP74³<Éå&•P¦)DˆÊª5 a`¨Òm)v$†CcЍ5kShùÈf —Ž ÷bkÂ÷/©kXÕæ˜ÜOòÀ_|±Óµª8/èþfhj=LÎö9e*ÀréG“bY+{põŒ•¨ÐÎ;vtUQŠJHÕÂò(ᢲ÷0Ó"²½œÞY/bReLK¤5@uä0&LÐó +œ0;k’ÓD_×›ææ$`N¸_›…eïЄs↫8c{VÐ|_çÕÌá`ð{:Þ c»ÄÂ1Ý lͽãkT-[º§ºmÑÛ±D‡;²´z¥ïäIsøJ Íj&¸¹µ Ðù²‡H€æ©ØŽ)¡#.)ˆ®¦œãI‘Ùƒ +@|ë¼K΋&û–-ØV1Ù%_]ð‡äp6˜Ãf<‹Ò›óMV‘%ÜUMˆù1õ~µ>¸ÎóMGoÁ¿föpüd¼3„¡ëÎf·>¡/$ùïâ;È}N„]ìa€1Ž£1‘šòC“w"x®YA)õJ饙guM²ó Ö˜\¥>’[ƒ"ÙÇ1%{ óã]5/Kv)d+„Šh™µŠG„,Z<‰›<Ò;—ÈAN7½Å°Ïû`‡1»yh)±rÿå²fÍxnònbZ ‘2ß³þÄ „4x:gu È­µºaA2]×Ó(zÉõ$»FjZö/š—cÑ.…ã»ÿ{¢.»níû ?j^+V<Ë| &'UxpÕk<³³,Ñ[fW‚ol±–ˆ…5¶'my“pLÁl*T¸/ºføÊÕÃëĹé'µÉO¸EåNëáM–h{ŒÀ5}ï¿K¼mÁᾩ/û`.¡\cèµ(ôH…%¼H_‹Ñ,r1[Qu×ÿJð8”È–¥—<á›3NcžXyŽÐÍ]EbZH‹Ã2?úC»ÍnRˆk bßgT,ÝlöÐöÿÊl»DÍØÊòÜfœÆûËÇCë>[qX¬1GŠ÷~· çï±ãw2ƒêT¹ªÐÁ4Ï î|¤gFÄ>h]ÚÄíÌÆ•íQ¹ègM CÒÑäf-ºò‡—€ºJ”I0q3i1n'Vj-´{/¬0nÒk™S>– ¦Î~ºü)¡˜ë!£× k…°³9æâ5Å}[¬QÀÚYÚº²Ú“tH‘[ÎܨÁ¾û¶÷i]VZ‹z¶½ +e\îSéžÑEá`|'ñä¶©<e=—AÈežÏ´?‚¼ŒÃúM¢viRÕõrÔÂÓ9ß/$?Ž›Q¼µ‚{8Øhìý¥p`Á}ÍE¿±dh¹…0‹•îèîH™;5ÊG–؈xH‚è“™zl7 ¥8¤ $°Ø]4EÐísÏ5ÃËÅո،ü¿UêýƒlJù$Æ‹–¹ÆK$Îù¼ê•5”ýÎÅ•—¸@÷Žžï­vx]ºHOùÅMîØV鱟^qÑ›v,¯\õRš±ìÑ8akÎtêÃÊ_Ä:_(«lµ¾‚4Òh"/Áßbv Ê¢n„Ï$¡FGêŒïu¸¥Y£eRŽDD¾Ðè­«…éc4õÖ£NÝ ¶ÚÚ&&.o”&T׸Úß +¸½tó#‹ÉxT°»Y$ñ®¦óàL¾' ã×Ä(íÈÝ KoÚèbu>¶-ãä›O4ø#ëR Þ +üíÖ Æë +èù§>î ô«›)fu¬R‚,„ ¡¶d5—YœÍTÔ=¬–öšÁRµÿ¼˜}ý‘w#åÄùwÁ`o$©\£ŽÖ톚«ô~öÚ‹-ë4ÛÜ ÊÌ-)è‰øtPC²w\(Z¾«Ž ¶76*(¢iŠ +­¨C7ËN´|ò¼‰ðÄ ¬Ö yÉᇧ«@¹•Ä2:;-?kiÙbéè‚ÿÂgߎ¨ ›ÿ5´ß½VÌwÁôà·¡Ù`²””l_Bö(â¹ ÙÓ `ffø[Ûà40Sþ÷½vGÓtCQ£v°nßÃ[ +}úÉÊÃu¨°;ƧKhPÞìÝn{-IÖñ˜å¨‚Ú -3´´œ‚Ÿ+>å…{;œºÕlG˜‰+ZŽõe\\}¨4œêž&ôø5f#]Ã5sa×eÿ<é÷S îré†YÞ}“Â6á>ݦ0þ’d_2žIé +FÎ"“•z’U&DNv™D^~†£pRK2Ñ%OQw±+…ºkEßS òîú›Õ"YIå!–›)u¶C¾ÅÒQ¤ +yž~ïßzE·Áo'€Ãg¤²ÒÅb§ÉÉ÷Á¥õK»òø-úùæIès6Nfý4 ÖRKö­,êXõ¨÷îb»¸{§|m1Üà3XkÇ' <˜ÀêîÿÄÅ hæd¼øÃg„sì Æ:”á¢Ü0 ¾‚’(‹Îk %ï–åXQSt**Üßb½GÙç,¾·ÉzÏ èm_–f†*cF\¯^,ÖŽš1/×}6ÌÇoÜ÷cc 8hv3[sì&žHº Ù+fp/§͸—ñ|Éå$XþJ’‘uù8ô{u’ÀÁ%Åì*­ƒ!ºF’x5ou +vžrSâSÙ1ñÂ#š“ÇÅ€jÂ(Ûò£ó:2˜ÿÕb½TØ×~ã FêºÕxEg<‘ÆPR®Þ” ní•X!Û–ZÀ<¼9ÑOUÕ€8IÃO.lŸÙÀKUF Ûhn }ž+¹ÉoZ¸CÅ—*þUõ}ôjJÏ8s`7î›Ä^Ðǯeþ®c•a‡|†åå‚qqÄÉáŽ`…BÊÛÜ è”°Ràùl])“gVÑŠZ^üÔïèQµ×MšDÚÖέTuðïØÍU õ¨(íý‘˜îø¼(Q•à  +- zÂcÝúÿ¨Œ€(gSšP¦[™ÁßÖ"bqoÑФ%K‹ÝÉÁÞg\ IÿÀä{·ŸÔ!îãõA—Òkþ!ƒ!7od†=|¬¦&Šš\ìž +y+ô÷d6d,Lu,Ü+‡DÓSø(&ïêF÷çWŒè‹8¾ÛNãÿ»÷ÐóD ·‚F§éŠe_â0z leg‰ª~n €ñFàú&¸¡+Åi‹n’VÄèh<¦óêaÖ€€¸rN¹z®øzË]Z%œ¸à;_ÙƒÑþc}/VÓ•C#oËwTZ CúÒJÞMÙYg^ANü \ƒj¡Ê¾îqFp»@Ÿ{ŽØE¶GÕÓÀçw»F‹Þ‰gòœkb4KÏ:uôvŒkk!¨Ï·™ÑÄ ”J‰ðø:>qí“98lì@š_‚“hÀ¦$Œ. á–*üŸÃQºp®åºXÅoœ¬#ñ¦Æpç4»Ú¦P1þu¢F„WÖå[±æE+Ï™ß%ÐÑ™õ«U¯7ãHbP 6^ʾ8èæU[ Q$’ƒ J]2ÉïÐù«ôƒÌŧø]öÖS.쪲@üˆ°-•]mq¯YßímÐVî²Ö©Ò_'¥˜Ddá»x$ЛÜñC >(fx³ÇÉOè×b(s]ÉoHÀûtü +¢¿“±Ý »p8’H:³ˆÇ²Úš*šJ.ýŽq÷c·”ecïš¹#Ù|Ï#ÿDüOï´÷_|f¿N5×uqQãºÖé¥ZNåp^(yPU›ù`‡¸üp9G?}Øë‰1é©÷š×´½µcÊÂë¨Ì¿GýrÐÉé¶œt3W8ì£}1ïé£ éšðô“³ïA;M? kA 1úŠÙNe‰D«¯•mU멟-Ë¿b{o·¸ÊçO}ËfµÎu³\û8!Ž WÐÅ¥ñ½®éAæ4HpjsLéå‚FP¾-áR'h¼ÁfÜÝ1‘Û{®ˆ+,g.±Ðäl\;;‰¶*ù„*Â|sÆa<i£j;÷r}vlõÏM+ý¤ÂÒßX$¾RŸÔ-D${½¤çNÞ\%Ë@º0ðíd¡$*a=…q`4„t` _Å)³|“dŸ­32¯7Í»¡)Ž€zÍæÚ}‘„eù„ ˜@É8M*cò™ýeOêõo&”¸5äíÃÖG ³¤ŸÖfùùþÊ{EÅûí[}»6yHÁnä©Ã÷ñµªÃÒqƒëÖA½[dn‡ŒóA=F@÷›£Ô¼¶òCšèrMuÅûI¯‚æäÊí 5Κ¬Öj ã½”ýR€Ñùä²§Eqmˆ †– õ”9¿ÖE­I½ÆŽ°ÄÈ4²ë?*ìåšw”>üÄÍÿGf”ÃzPʯV-ô½~ÑÝŒµ¾Ž¹Ô‹/Ç=­é•$P€™œ¹»oÍyNa8"YâZ'篼‡‰öíz’%¯ë°lJO“àÒElŒv¬8Ò¥,ã].`Åäç2š)„ü­¸•iùÚËÇ}¯ÂE@¿f„¸úž­sÝ ŠÛëÜt­ü僅O|D*š×Yì¸ }xdÕ`*Èšc-™›¥ggæÁ©4…H–·þ!û‘¯èæÛæÖ`Ig¦›ìßãúHqïbnÃ"ó#CøÇƒ¨H(CÃÎ +¨”epJ®”•Ùû\U¡ëÉÊŠ7izúÄ_ßÏCK¢öÓ¤VM¡ˆ_˜N¨ÎUHá~h9¼¡?5p—¡à(é¡ïá°ŽLæ³ÛEJ9Ž3¡=j‚Örߡس=êoȹÈÄOk“T"ö€¨8TXeö“ ‡îã/¹„Œ°ã¬œ ‹YDOcm™)#ãá(NþÌŸX³®a„ǖΔ×ÚÞôeÈ÷z~ÃYš1}ˆ³³NŽî>Ûü+!˜æyñUyö;ˆ-—_7‡ä1BGéì%ôS³æ#–/(©jå ìÊ]Êå9ÑæŸ“a¬­"bwÆ94Æs…mª±Î›Þ¡ÇgJ …‘G(I ¡wýøôˆ¹ Ýì”Mói!{mú²k#Z8Ò›$,ÉÒʽ koºSe¦m,ïp%ÔA÷”n˸hÓN´Eão™À…‘T±î$¬Bo +0C׉>—êáAB œCA °¢ÕzŸ!¿¬OVXdž½¡²‘D¯ÁÂû÷ ò[³ï®¢D9JbcàÝ5nSÈz’ãñ†´1Û"ÈnMF8Ç^ör¤fG²8?éð0\°­Ê: +Ør‘ö7» azkӌ̧¥KÄÇ üÁÍåð[ÆÂMäƒhÈïºÙþ ”Ÿ²ª¦¢åI± gçš-M†lÇÈ)fA@Gô’øÝnai=•Ù8®a1†…NØlj_ pù]q{CŃ£É-[«}÷ÕÝ-ø¡Âs„$MÿÁâ¾9s¨ *ÚªBpä¬XJäu¸ O»vF`ßJê¿Ûí…Öß"¾ºwwn·%˜:Ùz·LZcL±VN†ý‚À¬î`{§ q{K+m`jÎðÛtº8pm€–ó6ö—LÑ2Aã¾Q#f¥¿qK§RÎŒÛàØ\ýbs«'Üj>#1KûïTóÓÍÛªMè®yp«­í£¶¥1j+Ÿ|Pt‹‚ïêù¬äŠPx`ýqƒÓ5j:úw`ø2Þ‚·…·9€ß­ãJ[:ó‡ó>•ò×lߟl™Ñˆþ ÿ[~A–ŸS#.EœûíÜ{Ýzpsæâ-éú{k•~Ò0×b߯旽X0m$‰c° Mí§R9%<Ù4Ó´UÛirª&hFÙÀç Kæð÷;¡«7ò¼àêÍp´¥4QG‘ÙÇ8ÙBµæàŽ„ò‡ÍŒ˜ €Î)²ÌµxzŒY¤÷ç%쿎†ã³\@¿™rÂâí<®†Ú˜5lêz ©Ÿÿ²Ù ÓF¿ä vªæˆþÂ*`ƒØæ +*Ç´(¤|W­­W +ì©d¥åŸ·mÊžúåzØ& 0ËpºÈ1ž6®Ÿ#’ÐøY +û²ÿ"L䣻uFRÀ‰w¯õ·"¼IòBÞ—Þp©SÇ'ˆ¢xp†-Mïs=¤›á`rźÆP±*Z¬ &ipãÏÓ)¯vJy]ÕU­ÊcZ=¼J”“ÁÊr%*Çíü7¥W±ä,Ó‘ï©V/œ cŸ?d=ÏÚoîb~|ÔS¤«HBž¯£yõV‹é8éd‡îÿdsŸ”æà/…=|Lws¤¿…éȶÐr£^¼£ô½W±Ž‹j;ŸáÙÔ!hÞ6¿‹øWuÏËwg¬³o”]YM1‹R—4±6iŸ™WÎ9 ‚yàÔäù8"´5h ¡§ÄŒUjæV°Åz(r´ÌCPbò᎜@/pŠ]L?iT¿AEh|E9 IûyƒÛ0ˆZ.ÓÐ0q±‡ß"f¶¸I´èP02³Fn†i‡·Ã?—*`®— Ö)”²-ù ØDøËÉ=Ý ¦£šˆæiÝ¡‡nWú-WýÂÊÊàƒi‡c:uƘ^pX½Â'±÷5ûÙžŠ$€…}ÞkA›~Øœ8\x©u¼­æ³³Lä2¨‘Æ¡ +ˆ]¬#“´ÆåÓ÷SAB6%i©¾zŒ¨ÓY¤¯cï;uz#©ÐL³YIƒ²­~¼«å‡ÉVê9ª7Z€I8<ˬõ^yô®šª°8V_D«« ö°ê6<^#!èFþ`¯½'©ƒã¾4£id×AÚ½ E6M PÚ`'ý‘]gsS¿._sfíYÔ²Z•mÇÃò4Ö—Y…Œžäq·â~y;pñ ìwk0}v Q÷›m怌z—CÃé.ð(7m“úexMi+oûâs,Á“ÝÉwþL°ŒsgFY˜Y5DŽ”þMò¯AöZ†,dƒôyiúë{8¯ÿ*¾Ï4ƒÙŸüxvز3¿DÙ£uÿkOûP˜üîù|XG ÜéýD|îfÛíºD8%]ØïÀÂþ^쎪ÊPÆAaϤ¯²„TÑÂó7ðÍB±°ãšKD2¾(\ã¥Õáµ’šý™Ø8Ï²æš “Ä8…›”IŽ¿ûUÃÊÃØé™½ñb«yK“†À¹ˆµ67"{½Ø;—¾“Á¥ö2­>بIR¿•ùR¢…eþ«Éš5ºí¶2ëþ ÉuOOÆ iQåõ»“ÞˆX^¼C{*¹búÖyƒb‰Šl—\s›´Ñ|´ßªöÁY#™[|*@¾±½j ±êüÆ$uæÇŒÇ`—îï4¼èÖQÔh8|陳Èj8”›Ä5ŠWÞ¯ç0+_¥¥Mï'0·\žx€¥zMî4§öòÄenµ†Õaµ…ÙW,âf¡Ý1䦒™?ñáMo䯷øi¿ÏûZF¢ß­ÀvRÇÎ+2D:ݽŒ-Í ï0M-#ýŽ%™&.›y@„èò¥ïyÍ ©[(»À±$CùžC!–Ož0‡¶Õ®¶Ñ-®0¯ø×¾ôó‡B¤r€^“Q1 s’xIƒ5ˆ,ÐÆŽoÄhmSÄ">;›¼J̵Œ†Rz†ƒ÷I×ã_ +tr‡£ +¼m°ú(n˜U9u¢]MV¼h3ÜíüåŒ9úR†®j]ÝlJ¾AÎ(ßҙĩõÁLïx®š +Ao +n'Z Uê7¡¥1Mj@í8=D9wø¶;ŽÞ¨©~ ÅÇ¡£ ‹X´§IT“4xVhAé—‰j½qß—ó:ÍߘLt(’¥!vMdù‡¿7b¥iTÇ{÷û >µáÁ§™þVªañ¹.t!›(Ä9àÃ+týà[lˆ3ÚBçà3n´±ƒ8,,Hšì'1ñ$Þô–áwdcÅ=xð;¯åvÜ‹ÜYyÌÃøS?ùYœŒXÿ‰;+¬ˆ(~7ósÕ W·µ¼ö‰‘?è'3dÁ„æŠHúÉ(〶7¨ü1G±ë~1ÿ>¹˜’)Op¢–û–'jªMX焚Ðaì^êo¶Î‡«N¢jõ·¿ 5F¼ +gX~HÔ¦\{,C³œÇúrÈIëꄆ:‚°C«®BB!áèGãÅ‹;TÒRžîËžÃÔYAlJ@…Ó^´mr'§éìÏͨ{Qj¨Îûoäw=ÎQՉ衵- -E8JżfÐîtÊñåúÖ$ Y•í:Ýg‘š/Õ¿8êfži†ö9S6ir¨ýú±'*FžN×$oc[l7¶L‘µmŒLºý+-ñ@mÀwŒ õuŒ¢Ï§G†Y¢ï‡Í†ŠR·à#Þ×%ò|IæÕÚ8YK‰8è +Ò ·Y„Zcº’ׄì¡9µi¥ðLÒÆ­ÖSáÑzõå2WNÊ^‹o{xب(R'çCWñÏbýÜ8óÙ˜~L˜PS§Â‚Œ0/\ž¼$œ°¡á@ ê‹Óol˜À7+€«CsÚŃlæKÊdE~À£;Â<áP« .>´£éMx¥{^£%P°¢6GŽb¬´êF™Y÷„ï:ÌòŽâcˆN‘âC ’h÷Œ ß××^Lñ¨,Ö3¦gÌ®OË5Gwæh©Ûqç &Û†t‹†4¡Gnp4' ±ó¥\E!—1†1vuù–©®pHë{Æ6­t »h`¼/©*§]¦ôhfÇ$¦1%þY¤Hî¶Ã÷L‘ÆÈô†¡V‰‘Ò`E5qÉÒg›³%O^‘ÇÀ6×$¤¿ ëɘoÔ+f¦rÎÁ<úD³›qPÊ@,WU©Ê—ÿ9Ö–{G2ú;"|GJrqâÈéLcç`Z»Dâä¦{™\º|QqWŠTÕ}õ ‘ÖvLkWü„=©NÌ +—"–b¾·2ñ[.í ÐùžzD\Øý”Æ„ÓQñÎ5˜LG=5ñ—3ï²hUäïW¼N¾—„-¯ç8Bï.ÑΪ}ŠÀó¾0ä($CñXTIv-_ü(P‹¨ÉÍȰªCãËŠp»]ßü¸€jîÄ ¿è8 Lìd€ÜÄBù ê”%œ,Gdý•y¡Ä5Ü&e÷“Iì^èøÚµðÏÇ :¾GÞ{ŒýõÜéVdùÍê{µ =܃?Æ.Û·®×BpöófNKVÑ:Ôv0†bˆ†j9›§® -m!”Ëø4` 4Ö·‘ÎD¬ÁÕøòýWyí+›õX—®±˜!Oèêfp3»“NGËpœ"]Û¬]c? ìàÜó»¿@WFubPAŽ Z±v4„Ï×âçK mó^Niì4¯|Gn©4ªƒgqU]»-'†be½ 0KOB貓%ab)F3Í'¯µo_ˆU…EJá!4 ÚÔðçÓêQSÄéµrߢ×Ã4]M]=¯ÐàEµúÐмŽ]Yö‘¨^ê~c‰Ò™&Dÿ|³ÂKƒlš^Œ¼œ*H$c _CUܧ®™â:Z*ÉQ’¸æêZ§p[{èJ§_7ÝC!¦n¡ÄÈ…ðºwf}n?ªô+Ü?l#Ø’§2÷´&]L5‹S6ðxãgãÁ6TY®Ò—ý^&ÎQGºɱj¦)4 ú–ÈRÕz‘Ï =غíxƒµlþhO¤wý_ûiB–l¾U’3òùÉF•Öj­-ýÞXCÖD'ô9 ½/QK*騜1rQÆøä"*”&˜l¹™|Z¹Go]‹ˆ.õÁB¦4¾Æùý½YN›…· A21úÖJÓëÿÅÕ9-‰¢(I´mÛ¶mÛ¶mÛ¶mÛ¶mÛÆnÛš1oç+jUfÄÊ_7—¨© @ûnk¤-ƒ´ ¡¸d+f>–í* kÿ& {o» À]Ú +E•£[KšÂÞʶÌ8€@YJ´…ƒV]Ù‘´ ¾~^͵¦j¨u»‡–HŠÖã!ÆÖI~’¤%£iB ‹«Øå@Ôw–ž‹GI®BUœ;´˜}”*G^g"›§/’f‘[þ6YGäí±{‚Müýhx˜öS½ I·K¸½Øºfú¿=k*ßfp\p£2LrJê¬ù°=ÐÄÃ0ad•²ág5¨zÜùBÇRŒ3dNJ- ïªZžïÆ:SþÕÈt6¿\7³FëÃ,R˺:FÝé ƒõ£]Ă޻aO¾ô$ DJdF}²biYod #vÖy,V.yºÛÖ´"¢lkÛí(ÐxH8üYbùY´I€blA倸»&NЦT+‡]%KÀ¹>E×<ÕÊØvzÉ3 +â÷Ôê\θõºñ-¥7ÝU.žs±”sš@uÃë½çzЈ LCC¹7¡¶ï ù3hs&‚Ÿ ׬ ô’Þ9£!„DÜ”µGŠBj …MóŽUÏû×ß"L[„®n›áø÷Ñð4£(g”.Kç'ù`­Tñ¼±nü¿ïÓoh×%¬æ´$ãQUK¤óS´\ÄsªƒÒ©ƒ$å ‚5õ±—}‹c@nà +̾á2i5pŽ(-$#*xÞ}à6X\‡0eÁß­YcŠ'êÚL¦Uì„#0r þŸÂeWâ<Æ÷ºHgˆLÄF­uMÑ5Åmì{^/0z© 5M®Ž†Ë {µ·þÔ(¿4qú™{Ç¡U!÷|ä[eËxÉMKëŸäÎKùqéôBŽlJIdæ;.0ëëðPï»Wä.{:¨œ|‚3Äž9R|Âä%¥ãæ°þÌ…¡°uë)×&ø¨¬=’4”˜Ä¶)†f¥"íä}t¼r‹ÕšÿØV7NV*• 4Ò?]tê…yÀzD ¬Ï#/6ùß21-ØJœ‚Upi{%Ì2lƒ™ó¶½å?¯ïø|ݽì[kèY•ì6¬‡.‡›}øÝî”ÅáöúT=c'ð#âØž6¤vðÃ+k™}«ŽÂEËžr1Î{ÁÒ·&Õ¸ÞçÂKb~¿ãh_ëYDE=’fucaõé¦Ü_²lÅòó™‡çŠÊSÏÝE¸ èn˜ …†ƒ&“Hþ±BÚsº*¿ö†ªˆøb ¢F ¶ª•Ù¤Ä@e%!qÓ^¦oH!3«ãbNÐÝyÒPà[(ÅŠ_XlzTìU›Q¥™µÙlº ³°!åžÍÝî|´cÅ7— bÄÚ•ˆÓ…’“Bü…^áyÖ~ •J×ïSÞõD&yY&zxÃX˜¡Ÿ§y¤÷jrR†ÌÞŽ×úö+SÕA{p»ðˆ!êâêR*RÛ‰ý€¦ Ìœ­WĬճÒyPâM?d°ÆÊ¯õ¶ñºýFI^oïó×\æÈ¾Ĺ·ªô¶Wâ\b;53®îûXÈô_Іó‰Ñûs9n]FKæ—¤_»Ä.¾U(ouâ˜ÿ€ü¨5 ú6 ò6†t# Ç—§¾‹cFŒ¡´ö¬"4ycšBOL`ÌZl‘Ž>õH›5·ëð^-óØíÓæ|)j¿O˜?8œq‰XTg=o•ÆqyŒ½ÔÑ«:¹• +Ï“–{n¹EUåxïXI~Þª¸>jWL|œÉò¥ŒñZ`×õÈÚ˜æqçcœõï}†Éi2½Úl§ýÁadZ¹¦ö(º«l‡ 3¾1¶¾Óµï —‹,6[ç«ìú},Œ‘­ëôJ$sÛÏ[!0elkI‹ÓêT«4|6HXc$Ø7CmÂóLf:j–´Z¥[Aš¸ÄÆ‹Néþ÷òúP{d3­U%aJðx½É´ÞPTœVܰ´Žã X?^a)y ß]KïÇÀÖ4!›be*Yâõˆˆ“Åe®È¸x«Ç|{•€ ÕHMÅ Â_LÏOÙ›áéŽÂ±fÒ€ÐYcβñï&ÿq—ÈZ&aÈnKŒÕ}Ÿ¾œe +$£«¾r…]›½Ó»Ï»Ž½6t[+uç¢7Xh7a~ÓŒ8@ϑГ€0Ç;¹Ôª¿)= X)þ‡¢~ßžYØÒlÆRÙàNsÕë/uxˆ¯Å«„uÜì$"»ÝŽ@ÕÞÎEŸë×-I]q«yUËDƒâ +‘êÌã™Û-°”—¶¶L·ÿëó\NÜD6š*`æï1cù|k<îî}¨¬°—,ÀëaæÄÖ²òTæ Oä ObAò1rÐ÷ÃWUYB¼#í•ÐAŠ.)ã3wt moA\á`l×psÄ„5D4'£ÿ½T§q!ôÒÝM}ªß>¿ø8¦ªi®úGñæa\1C¸cKhÓ“½{V£F_ ã±QOß8þìðCèxN1ÚïþlpÍ«oO vn06<=c)¡óIñ)·ýÕn݉yŒx–Aùwâhy¯@‰ºðv1S("nåÄA¸éMÍ¥ +â ¦pãg ÁÀ}‘È)ËmÄrQ¡ 6›·#>Àr€l-Wè[ea#Ü>-ºÛg$-ó+ŽiN¿£9û£»R0³ÎWÂ2lg‡Ñ«â‘À¦.=sr_ˆB>$’@àÕZkqAÖÍXÉ5#N@dT¤•;}~AÊ›hV0ØÑþš2LÅ(¯o€«ý[EƦ4Þˆ’r2À4—ì-ЬÅz£96]&ô#=Üö§‰~/] Øö«áÞkÿh¨ê‰ª»#YUlK0òQÎEÝ—:Yl^¡l0Nu+2;4oh±r«2‘Éü£õ–Ý£–Kÿ-X¿íÉá¼ï°ÐlIæ¹q³$¬%¸²¡Î(n¬½ 8Ô´+â-󳞑#!€ÁûÖyr“·„ö“(.ÿ,…¢Iuæ•Aˆº¹ÒÖxý×§ØoÁ}0:Zˆ×¦{¿ìHâô—ÌEU³qŸüzK¸\‘ºáu¯µ¬¤”ªMD +7RwPN–ùÜ_·4ZCi=¬Ó×ñ^4$·]Ìæø„ñ#ÅÒ;‘ÅèÆš“q>dÚ Â9‹Qô“XÙ¨sBªäëÜä¡ÞgGŠ\û+ú ±½ðáÀ•YÏ™…îïsnËüQ×·Iعv‹j\cÕš‰+ß +2âå_Ã!æ£Ñç¸ØX°¹êû×j´wQ™ u¥z:œ’Z{Ml¦O7æâf±þ{ñ^Ïs,ÂÍúœûª àR¨„9ÿJ¦=ogŽ/‡X °‚—L9ÕaÝvñ7‚=äÆÝÝëÂN–~Z-.¡¶™»³P¾Ê+’Ó?à’³D°k=…Ê@ÜAòMÎZ€š8[p‹”®ïkù°ø‰Ñ凶Yäôº|;Ë/•Ôò”}rËîîŒ »¯jˆ¸Œð•¸g¡TW–À±z8wi±ñ[¢·N0öË ’"ϳŠá#z_ÕÕ‡}k†$^žde©’§ /dbìˆÆuÆho÷OO#d%O¾ã×â[žÆ‚3´ìÞø¶ÎûöLÚIwS”ôš¹ïÝ&üùe÷×z*¡$-j$k;¥ÜÐÅPÿüüÚë‰Wݶ×Êù[\›Xš2dç«‘Rfd¼h \$µê6¾ò‹Û +£)D Ž:ôC;1LÝÖ-£üïo¦í¥‡Ò«×[€NW >:Áÿíh Äë«ëqç5S¤ÛºZ}—úœDZî <]5*–Í C§=ç@n$Q“8XØŠ_ŠòŸÅ'¹£×“‘qù‰ø•ñ6~ì-eÊý@ûZ&åzêl˜»…îÃxNà\=Øc™ù‰˜.¼4æ‘m¸ÖÄáO{„ý(GµoI:-d¡2›˜)*ÈÓˆGl·LÚóâýÕŸFC*N•øžûGh‘!bÇȆ‰¹ß?Ÿ +˜;Œ³dÖ@}óoD•l†’!Á#ab¨éŽvÔS4i{Eü«,èÜ<ÓâöÕ©ÁaØ8Öùß`­ÛÀðàfæ/`£}‰:iÿÍ’[=0µãAg‚ŸO³.ŽÀ8ÙûÀ+YNý¦»>&,þ‰;ˆ¹Y†×Ô.Ž‚DçÖ¥ ½‹Ï-Ô÷®fû‚LÓio‡ÖÌI¹ýùÚðåP-Â6Y­¨xð&vh¥pµ3çeôg?N޾§æC?Ež׆£t$Ädþ„(âH…¼N‚pùLL°ïq¥Ûy´0MêéAfXÔsEM¨}i+Êx¥ßa5;± +ÖsÕR7cµ5‰2§Pë;­Oºç¥²e„½;Ô·Ì€Ãä ñûÂ(ãÉ–lãQI vœ6{'îìœÅÅF§ „`©ÅËF ÍÀÒ:¦í3ØWX”IMQ«ï +v€ôþG¥?/Y»A95cýkÎp„ý¡õebND‹Éº“¼F±NxaÀ8¤…@Øs6 HÝ9OÈé­—X|{àOì“Óð¶’hKÙ›®%e`Èøìòþ£¾èæãpàa„ ŠR+СUTË=P-®á…šÇJŽMè]­Õ—‰ R]ÉÉd“=“y:Oûa³ñ»'²Q*|Ãs—p†X€¾×¤4>\ÎúwÑ~iîÊò'LkàúsxPç'‡E`4[Ëþ±I‰,’ŠnÔ)¥£CP[AÁµÐµ®µ¸¹ã3è¼…L@\]r8ïFJk8DÉQkV*œ™Çj¢‰“ä¼ú-ádLm³Â¿=ÿÞÌ/“Ú3.Àìòãî5l6Á5sym×ôn.‘ë\½å Ž@Ö ³ïÛ"bÀNã +¹^Ú¾D£veË-  ~%C·b¿%\«€Mý6ü87©jf-ñc­®š,FÈÞj"—k„J‰RqHÔщf©C1Ÿl¡9C<'Šy7.‹2bUyZ«ö›£Õ漤îÒ åíi`kŽRÇì]f¢cù;ßMqûɦ·‰[.¯[Ѽï¯^ Hm+f|nƒ¸ý eªÌåâ? ê¥þ ÇùN<ùBÊË–ú©J3„MEr© á9»¤Xµõëÿl#®„XÀÁ½Þ-cUæç:cq—Xüƒš³F‰}síiùò±ïбÓÀ&#%šù˜íùÉÍŒ‰›@ö®½u¡Áå 1¡´‹±e_Ÿ"§ÕJ +©VÿJP˜bq3Wl•‹_I"‹T6 +0À†øb>û#טØÖ™ÆÐpú2ðs#« bœ¹ªi «)‘ê{P{­‡uö¥=h0#ŠíxÉØÕ¤¸ä½3»¯WF×ì«3Ô“ªÖÛ6®ÁÈr&Ä +ƒÇts3c{’‰w¬\8V²rI’Ž »H#FÎÙ—£f{*<2Ûñ À ‹&R a݇eçõò5Þï•—óüÞÊÉ4êêÏBq);Á"½ŸÔ]Áq™d”% +ÌhÝ×ÚâÇÒ(&#`†WPêø~ÊÖyñŽAŠÛ+  §I6’BŽUÒ´]à‰0ùêâ2.–ˆ7QvÈ„­€I%éö"¤]š ƒ@):rhAû±¨KKt~ÿÓ$‹ÏÐdÒæ”9E^ƒ'€Ý}@Ÿtóöfãp°9¯½+y³‚Ú BáÌܵ8Ø:÷À=ÒoäÜvÞJ\rÀi/©8ѽÏY¦I /·Ç¿YíäŸl‹nµvA»Þ…N±œDh/ß5¢)×öƒ6ÏÃŽM ¬ÒÝX,Yä Šµ"KY•/Ûëû¢]Ñ 6q¸m”"7•bÏ-×îÜ«ØøuÄP»ËB™tC¤Î=ƒ¡d6 +‰Beì±ÎÜZUSšæõ7PÄè5{ù ÏoÐü‚£ 6”üA@°>Œ;Ø…¥Ti¦vá¬4i~èmÃ:ÎÊ'=ÅÍjG·ìet-A†Žêp“/¹õâ_´[ø-ßY<»w;Ìy†Â×N¨èÅ@¤DúQTÝx÷öo‚Õû–„v‡R@]®:rÍú ì†[ÄTp)bÀ’Q™°ÆEX+ÍœÉ`´IqË!y¦,kñ“ ll¬Û¢l]Ò0‘ƒËÚ'{AmÓù¡žëæ[; c;\òcó¢;ˆ.½ZXŬ- äe!ØüÑmT¹'ƒÂ +ºnR4Í7-lŒèñ ¼¦¥c]¼çgn€9åOpe­?§õ­…\älzŸõ’oŒÿ<àV}å°,r®JŸ´@åµ¶fËŒzg’a%¸©ÚdTûL¾u´\=¾Þ=2M,´Û0U3t†Aíó‘ð~téå&ñPêÒ¥ÿÊÙà=ði%1±ß[ju:¤6×Ë’è>7ÒÞïçö}¬¹E 3­ðëÁãUk.x/Bž; pAÆ-6çÙ¢ÃóÜðÿm¬v‡ !~Ÿçí$^•¼”t%Isçžp9™ä·ä°ýâ Ɉ¿’ÌkÖ¦t“ÀÉ?l,òc%ÉX„¿&O‘¾ê£¶ÌÖíÚÄ{g‰'|5 Ïá—TDâx¸œP;H/b‡»É¾3ÌÁ†6ÂÙP§æ1Ùº& d¿@T¾xVz¹”‹ë묳_&I¿ú0$BàÐ_§ß“©ƒÝowºBŽ _,ª~¨ea’y+1M +SÛFüä„wüw²—¹ +ªç{€°«ôqMr¥ë0&.§MZ +±ØEZœÚ>GèëRAk’ ÏEެíVuÄo²…œà†p]ݼÌ1¯ïzunÖ-žR=®ÏáA7ÏŒ@œ£úÀˆÈ K²tûsªŠgZQiJ™#ÛîDÏfN~=Ôæ­„-¹Z|`Õá^›­dôL¯꺿¿™“®xõ—×Þ,ÏD©å½DQ–·e;Y·g& +ǦQøµ«•-bfÍ9¤UKtYЩ1j˜á[-êá:Òˆ +húŽ„S…Qß’òõ±O×<(IË §è°hêó¢ÿ;Mú0%Æ‹±EBz™gõé*ëHÙªlŽ•$ñôj…¦î¼1âÎ@íXnë¬a(ϹïÒ +µ«š„¦j¼ýË¿ºÈ”öÖ{åeÎÔ—SéÐ<ŠÏe±Ò5¿ ÐÓœ#K_ÐÉ5ì±ë‚WgË®¿%BÿLì„G8Ô³/õfˆÖvt”ëQ©e5b1ÐoZGï¡pÈå0™â¯kÐ×Ãè–¯S|lt˵s¢?À'©­˜…P»–O(¬ÖlT»Õ,¹¾ô?î1sÀ.c^"ænnšc¶˜—_ Ÿ´µüš„­:vTKfa^hYËáJ4ð[ïM·©|  ‘?¥S¯—XIþ² >9°žÿ>øð:jO”]P&•T’]ªú³ÅsÇbvù‘SöÝñzYâÄлôÕ…ÈaUµ¬®.ïr™º‰c[kýke [à.¬ ¢zv´œÞüuA”V‚nït"oSÞî^û^VôJcÈZj8€c‘ϱ—úÑø" +¡?2`=%!¯pbæ¯Þ?\sqíA‘-{^“ß’Þ6ä÷:–3$Í1ðšç<ù8|í…Aa¡/ Ë Ï[¨ŤôŒxáDöÒ÷ø<ªÇÏY„iHü9¤þdTj"«4,ˆ(É_ [“S•ØÃÁ· ¶d¢6†>ˆ3ä}Aóˆ¡RЪ%¡ñ@09¤ÍÇ̚抩wl—òfÔïoZ4 +ÛŽ +Ã; ™¹.L­ÔmɈÖ‡vÃŽ[<Lj,vY|]7_ Bé T&ënÑÒB–‡Eo‰ÁBR!ì];"bíV5Q`l¯­Æ&^4IœwÔ3‹µk÷|@£Å2³_]ÅÛkFIƒìÌï™õÀ²¤¯m¢ítT@«ç1…ì&EžAË…êûDœËð™…[Kb€é¾ °|ü 5Ñ™ +kŠ/?²”)Ùnÿš7¸¯Qr~å5ï¾g>ä\Õµ°ñK;Ô\Îv&ð3 ::-zËúY$·‡öÌwÜZæDßè6W™ó¸M¬UþZ;MÓªV^Æ3.Ò«e®³§[mŒhë–Ä­·W]åM5À +01Uòrä‚Ä:ðÜøBÿiĉ]Ý¿Nëègâ2–Œy-… j;ïÅŸCxÞÓÑ—Áöqµ %Pð˜þo/ò?T)6îáKð³©qÇòU7:Í(DËÞq¹gõø³K~t‘ØCŸ¶øàµƒ @õW?PHwYÿ.”Öý>ª,2ß›–ætìSN'§¢ØÊhÈHýò©"R“’”9e$œe=H€¡š¡B‡h¬´¸bzžàZ€ Ͻ¼d&g{Ø òx$¢ÛѺ¾Ø«Ôa/øn ¶ªðyè°-×ëX›ôX?*flñÛtc?Ì¿ òY^I!D,Pp¯OÜ‚I¿R§ƒDG=D—蛦 ¹’7‰YÖFÕ"*’p?)‘L—ø Ÿ§U`¸gdþy—ƒg.º™wM$ü¨ÄZTxƒEh&AoÎÎ +¾•Š”Ê#›v좔CœÐMØ'•Æ"œL4#F Q2¡9¢ƒ7C@ó“’.‹UÆðÿÒ/¥Žüñyz8ZñÁÄ=ïï*¾¬+xÎ2瘗vLù¢è + ¼AÕÓøDÀ0½FÉKü8ö$‹V‰?Cfí­Ë¦hð„Þ“¸M£x¼§¼k®!•žÜ%ŠoD~l®3Æö*’«ÿ9-[¬íŽÇN\\{2@–¼ôSÚ´v"D¥Èü›œ'äÚñ¿¶úƒf?2µ×ûÊUUkG­Qü¼çȺu;´ã¯hîs’ÇKK­Åë³ø”Õ“b^§²Íõäw Èv°%âü–æfÙkkÁɱ^ÚöþŠ-[x+›î÷ÝE\ƒD€Oè ¼Èî.ë)("þ|À_¥šg|¼ìÅ<úœ=þœà&äëâáªìoôL+ŽIÒ /œ9Ýðßðò‘oj-¦ÂPÛx¶>zZëyÛù@3XɶKíÿË9«Öü¯ä™l~;†_š«Àˆ!µéœÜà õíäÎôáí§-˜Ý!ÎcT+©Ô˜Y”Œ¿O4£´ÛóˆwKdQجöDUØ•öìËrŸw,Éä¿ 0†õ¥©Ÿ¦£…´°¡Õ8Î,cÊ’Õ;D;C¥Ô\‡ /Ç^gý†EvRP2.=ŽäÄûOò©dößûqã¤ÖkMoúv0tÃs»qŸKy/Hðá­O1ˆ™,Õ°Ûzdăç—ê¿Yœ•oI&åÍm‘v,jAsy>ÒË—zDð=[¤N¿G™ÃÏLÚ!TýC°æi6Ï‚:Ú.ReàI‰~R€æß¢2ÄÄöÏmư‡•Æ9¢k\v›œ“¼ÖºçšÇ¤°ŠÉ#;ÔkëÙ“×½>éÉ“%UǶŸä:Þ$4sFfnÙ%Xš ‚Е½9=(q~ªí’sOeåè…²GYeQÖ`þ=UÜ„zyðõLöÔ…¡·VJňY1 ¸CÖóöV|iïƒè©ò$“«Ô]hÅ*Ë'@i-QUÄž: ¹C &ÓÓ·j$DÛph/\ö£þ×Ç8Eùb“”„Ðëÿ oŸÙ]ß4ˆ}°SQzÖ!“½d‹Q5ÿ'×y\·òÿ Fà‹e<„Hf"¾]å.÷Cï]ëwÎi2ññ7Ë'¡»­aSÆyàAÀYæ½³Ù™Ôëƒ}߆ÞüäæÕ†„ Ç¶5¥~õýž›!ysŽ\Û¯0æÎ®x¼³äAZ4„ u8âuO$nBÁ¦ÅÔgÀë†X"”Ñ'`:ŠRG…4P±‰ã™NDÜ@},¥«§†ÍüHÁ¾[‰ÁמnkP¡+Ž6wA•‰Êþ©+Ó™,ˆ\ÀiÔ˜žJÙ,õâ D¤®Â A´\ä^XRàñn™­3FœÊ,H@Ž$þèùSÿæ*ßÁÎÐ]èð4£- ¥õse Ï”•âåA©àa’º7Ê"˳wÁDμ·ÂÀ8k#áÂ>êáæžØã·Ç+¹ž°*Þb ço8A"ß¿j¿¥Ÿ@ø@IHïqL9&V¶DÙdDƯ!°ŽòÕG¥ä~lÂN¶0x7ivÇ Z’+^ÝÄ EÔîàré“kpÍÚ݈³6ßñþ)A+‰ +D#;˜„àbžiŸ1¸Ù\zfçÞBõ%Žú2[ÃÝõ"‡Ynÿ÷À!¬‰!Z!T*ÝxúÔµZ&Ê, +&fxBú½‹þ)˜fI­îÈL}æ%'á¨ê»³f¨ÍÕVNyÀ÷„°­ÇÒy&,béŽç."%ÅŒmme¢Gìt–Ïã'ÍáGÄôKö°tÐOÛŠ7¼OŽ‚è%KMQ쥔pŽ£¿‘*-Äý5âÝt{µå3ÒT¿?ê ¥ïÞJ\Æ+¤3û(¢>~( +Ð ä™paèÝZ¨Ó„ ‘’njþ8 tÍfWyÒÅ‘Êsõz5ƒ´äÌC ®Âû6%ªòuõåÛõuɦ(± SuVéê):t<—£KëÌ’n'/³xöÿ£6/’Uc¾Áï7o*QæÈŠ ’™pD`X’à7•¥JP‹í´À +­v”FÄŠßÀ„§&6‰)\‘Ftuኊ—Q· ¥ÖšOÝtjdà<6å’î¡”&·æ1Ý“qT‘Ñ…%~ÅXЋ‚©…_¾õ/¢.âo-ÅåA¹r†cú)M ª)6^¯9¯EzñxÒ¥zœ±½|BFPÜVXÇï¸fÏic¦l'C© ^“€.Y"w6ÓÕ>®¨¶(ôºÏãpU¤RàÇP‚cnVø¸ŽôóÛ^Z 7QD‘’bÇR|{‡•ê#„p­÷ž£Ëìkvöå­,â”ÇVæø‡@®Ì;^üdžƒÛ*Âó?sÊÆi×õàŽ8"p©'Ž>—<ÓbV­…êÀ«×x÷ÃnA¢¼Jã–"FìöšöpxT¬'‹_ZÓîò7¨ýÇ-öbhuŽÕ£hLeg ¤~ˆhéW4ºä©k‚ö˦]­/‚Âxp ¡ˆ¤ìÜÿ‘ù0¹ÜYòW,÷ÖS²åM{`XØ*Ç;æúÛ[Èd'Y=äÀ¾ƒœƒZsW‹¯ôÇI2œCè{çJžÉÁ°oò`v0’ϱP™• ùÀ7½3×ϤVon‹s'µBˆ®öЖÖYÈ¡2¥> Y4ë)åÐ’ÖÑiCÓòÆn#s3?âRî…—/“ᣒ«*A{ABÉ% +«†¹‹IýsàzpÄ!´Ì½ãÔ‘æ1e% ÞÕ]7ÐÏ%ЉO?ùR«YÄçì"DÙó\ÚÈíVú…à%µÌÙ7¶¬Þí¬½Ãâè|rȾJ„eı°q¸v`ÜTgK„÷q$ËÛ¡Õ¶íúÎQ“=ôƒ++W0£ŽŒ7eíž·öB6Þæîê™TŸ_À÷R_#µ=“)#²ÖÀŒÚ–BÖÛD7h?(óeòa±õY§ÌS³#°=•|•`¥ÀÏ¿½ÅmŠØÀ&-L’~†’ >Ä’KÃÇŸÁ`&±·Ç|•µP<š}s”M¹¨k`Ò …fc†¡C¾Ø÷‚Bû½îW̧¡Sô!!9 < +7¼Å\èý—,Žm:W±M áJN? +àİMÕoÖ²ƒ†¸}éŠ9ÌžˆŸšÔè’œhÿnŒ5ÿ3}ç+BbÀ£˜H&_¤Ñ•Rc••Ö?£±Yëš3d“ÿÝ<¤°€/$[t|ü*£vçu¼€ð²v¦ß6EÌÚ‹q~4“æ“úˆÑŠ0lö8È<\ãB^Æhp·ÅAˆÙI^|®RJ&mäÞLC«EÐDÜ1¯q\j¹IÚ¼ºg‘(|_‘#õjøMçÄ[´Žà¥Ä¦Èàå—³Ö¬ÿOV®gøß³zâ@·B¿º¡DŠfª‡ž•C±Šb£ÒëOHË#0WhCi\Èë9ؘ۞;é§o@KùlÉèY¼°LÈø°‚ÂAûú;ÁqW?W4'$ú rbeÃù+ëØH‚“ ð‹1­(õ0«­‡š—½2faÞÖu'_u/=Y¬Šq‹âøÓ;qªŠU¹¹¶‘½ªðŽ»òðêÖ7vòÊjÙÞ?øñ~‚ åÚ½¯—#4»NˆZÌ ;s ÷Ë(,Z<‘›§a×ýUõ¯$Ál«9@¾‚ÍØ]%£d€Ÿ_é·©FÊ…§Ðvýï-b[4µÚ‘¸ã,Ø™×i>W+­ó1ë™"ŒÈ{–ÃbŠeo´Ú"œ)”ÿ•Ý'à3 fuœkÛÔàß +Óñ8Ð?Ðoˆóþ™×ŸÒXÎÃÙæNИ# +qaäž?è¸wIÎÍt,F‘£!ßÜ\½Àn–úÐRwâØ¤]I¾?%SuÒÞ_pÚ^¤$P‰¯ØiK(§Èy†\¬×ÆÅEêJ£Á# Ó×y¬†¢¤ÎlW»dÓá¼ÁÐP–|‘Í)²ôøé=Is Ì_Ê'‚Ûï7WÃ0n1ô"*Óq;C½òÄ"PƒX[¶•—Bèvãjáz8`uþ ímýI ü ¾vŠhðRa³–½ŽÇþüÌf—cË´áˆàºýœÚ›_¡¤ +p¾5E¸cœ¹aë3OÆÒbÝ;`†‰¿[*Ønl…Q +ߤº‡{/ÿçY>â„ÚHxósÇÈØMÑÀo7jÙqq +È+ä[|þytyRŠÁµ˜ç&p;ŠâÖèÐò~¦M»÷‰²us'C5t2çÿÄo?Ä¢ùÈ0d}²* W¥4+¦çouñ€/t!ÎÕGŸs_—™3`úÑJcÐ-#jªŒBTÈï–÷GÀl•H¾z¯Žçœò( +ÑÙGÈ&ô„ãSS"ˆÁæÄ@'a'H^ÙbñyéÅÒì'7vs…wØP×ÖàºçGkešnjJš_’ep%o<«à¸,6ÎÁè×93!>ÈÆ³*z”  žÁMÅÑ1+‘™¤ºôâ?Êþ'›ƒz:¸`Hëúó¹U„Pîbå¥ür„XÍ6γ6©å6‹^ Ð>k¦âPÛ¢\ÜŸO1Õ;g9ÄyDœ‡XA2Ô¸ËÄíŠßêÁÅ”GÇŠëµü|3v¤‚d¹•‚Ð(êh;7­?nC£7É›E(Ì< +U7<^(ølB‹tè +ižšXBʪS¾ s'Tö$]#Qpv€FÌX&eÆá hºÁ¢P+ñˆ;n¯$ÞÚZ2 R!Ö×ÄÒq·?ƒƒ‹zoÉèONS  .PàÑKÚË@5¯›üjØ®Dר>Ò{ö`0ÒR1[Тò£o¼ZW(!6ŽˆÇáQ=’Yéó—ðT3R±FÜiÐFïîTù¾9{&s>vâSÔÍšŒôÇTž! TÆý®ÔòÏ–*Ñçê{btófaÛ°ŽAOÆo¨ŠžA Uô‡ŒM¹|ø?é +>ó“ÿ·7 Ј\í-BZE¶è€Å•ä0c·o!aÇLíxëŒ)‹#ò§Î÷J¶FÊ]!Ãíöá|%aýBvO]B ;*/t$¤c!¤«-^C]3òäIöJÙ} ‹#uè¦þˆ=ž—–„غš"‰PX1kYÇëš»>j>³%!yñÒ¶´Lþ-ƒ÷Š(âx¢uŒrí‹/óEä°å±v l]Ýi±#¿«@%r|Ðïö4é¶§à/7Íì¶isx:{v¿KJo‘‰.ü°>'%ÃÂüUµ ;üȦZ¥ŠþÕó +Šõ‰=t$»ãC&8»Ë ~µI®ç¢0O¤œÞHàÆÅ]xËü‘ªŒX%Œ¹ô%‰ý²¢J6ýŽV0¢25év!bPÄlIFÕæ)örj8Ýç üî_a Ë› ªK¯«ÔÜ脵ë/ Vœgø°a¶)b$Hu<Ž©ªŒqÇv=°êÀÉè "BG/SfžM1™ˆï€G-Ôü– ûC%)õôQ}bøQ²´þQîåt•ðy¨½Gô7u†t’ʇÓ¸´wÒx¿Z€p}.Yf/l…½îRß)õk‰KO^úø#Ù¤õÒ»Óâ5Ó`°I@“dƒ«x`1rÿò×™íI0Ô8Q‡ŒŒçÐÒ&Oœ§{$ +ÎK:°o@Ìý6Å­”Þ@ÎiÝß3mÉXêBï4xóøÚŠ)¾˜È}‚~Þ/::ÊÚôÞ|ã&¼Ä–Bé“ ¥™”ÎÍW[<ÿ𺵛bJE¤b7}ÂòŸ©‹+± gÂmŒo€‰¥¶±#I£eò+·ñ +Òt +k$Òf_ )²LøªERUá—á7*\¸œiüî( •¥^VÅÍF7ÍýãŸX2;õc2ƪgâ•v<¨¯õ.ìlP¼EŽË°YV'¤ýwÔ.Xû B@°ÏïÔ +Ó-É!+| šˆ ™Ÿ +†ko ±m#yþUü €Ñ#UmL +5;¹VÐÔŽš*±èZb´­_£ÀöJ¯Æ/ÈËžnŒN.8þòñYb5ʬ«ùt4CÛç—쬕 øV^±‡g™Ú?¼hño6Áó Îä ðñܦ+új_ç;§>Ê´OJ¤,MD£«îRx2\²DšÆÄôZ“]WÀ¢º£w­â–¸¨¡ÃSSì\mÈAàUjw³®ˆóL#l8³ò »–.±°¨s¦twöá9',6ìí£ëÅðiXá¼CÐó{­Ý%)Ç•L]€Ð¹ÙÌkÓýžs[w/t^)Z" ²Õÿá ‘X– äòQ?Q6E£M“Ãýâ 1“çãq‚'r>ñÁ¤J‚ÕœöS @ wHäŸzžt ¯Óƒ»y‰ˆwР +ÙÉCJEÕíz••,áœÒåMv ¢Íàõðô„dÌCÝêÓp+O¡¨õ±¥¥£4Á+ç7„ ÜTü%V|úmSg7º„­Â»Þ§E‡ÕfqV6ðŒ·^ ÀЋÈõ i[ô×Ó‡~ÍÓXGôŠã‰ågÏWoÕ·Zj@…[36vϪty‰VbGê§jˆšBBRIë †ü <Á˜x%n‰o[ÔRŒ’ÏV߬Ÿìè¾ÉcÒ•g'!¶x`Ì{—GŽ Þ7ç9¿m/˜“Ƚ†ýá¥ãëÁ´/XjÃôŤ¡›åDveþüø`°jˆÃå{S³@ÅHöbß±yˆmAèå—P7¥p„«yT a3—Œ˜^Þ¬>޵Bž®*Vr¥GY ”±‡ÉæÊŽ +üÛC)íC%XtcDr³pæ”V’4eÍ7+ß'PÎrÅë@(šà°$ŒåzOü~g"c÷Bé¬òÌ”ñ-Ã+'¸ë¾¤¦(!náL²…Z*”ñw)é.œÜ¨uÍ¥×1‘ÂÌdìïëö¾À$úÄ®Áó*»BÝ9‰Éæ{?À> Åô&¢Ædk/æÊ€ >.hŽð éOk{o‰VLLt±·ÑöÄùr)Ý.Ñûàwm½ïdýLk'æÐä cúÔ PeAqo"h›åPc÷!­NÖì'õ£Œ¤' …©Ûjå…÷è­Eƒ€7‡kjð}pyá@yð>ï<ɬ+¯)_nC}…v•ò1Ö°‹•èv¥æ¥Ì]<Õ`é®Å—í`ë†Gìì’Ýt†öuåÑ­ Fñè)ñÉa¢“øž'úÕ£é¢éÃ˼£¿fâ¤Ð8TmgÂ0skWéÚÆòõ)ÂÇ^\€í0l´Õz+‚•±,€»5)ƒ5jIw}Æô¼¦Ü·2S,I ûˆcÕ9%0²êË,œ&}ú€GdsÉ%‚v½e‹1WϽԻrrµÛ4¿û‘d‰/¶Ì&'[´ÉZ¥{èá@+(F¥¦Ï.Ú ¥oWjÙ ¬ÉãÃÏ•à {(»rï¿Ìì/­[Yl²ÜŽ4í}<¤b‚v³éu¢Áã«v‚?y/vµ¡D!¨€‹Q]dH·àø5t¬¡˜ ïßPø;sJ¶Ç9T¡'.-2^¿Éõ±Ñ“c É)Ö3ð~Iüü\ò.sk O^òž÷Cðˆ*ÆS³êÑ©(¯ts_-Å8g{á굓R°ÈÈ>ºŒ¿ ÌTÝuž¸Õ>5NP™ò—ñ¨ŽÇÃ51`€C§7¼¬¡Þ$ìJ˜·!8ºg ÜÆVÂUl*<õ±ý‡ß¾œµ‡úDügE !x0ÓLoºlÑ÷ @8ø mÓÀÂÝjñùmjÀ qÞèñþG»˜¯ï¢-Ì:£º±>ÁlQüã…m¯p+ìl”< %Ûè^›ÚØ¡Ú1'fä0n !4eÁ=ù¡d9Ñlׇ”R?l ?A7!YTçð2”Ú)>¬{±%†„~¢/‰»äš¸p:¶6æ½ð)½ŒäiQ¶NèK(¦òõ{¦3Á7 Åz]އiV]dÒ¢¶v¾n…W&<"" ÿŠ9>çO“(é—5o+µšªye\ª8°Rf,­ú „"/tŸS)Âù(·×kDî„N¿w~ð¯ìm5 ÊÉïlg#ö;ek•?éÒêÙtÎ8 Ê\Æn؃Ú;÷…L¡ +×EDÚB˜Š°ÊÚVõD˜ QVx™ÛŒ;j>W‚ +<êzqjúÑÑJÅg$9ÃΈÑäÝ(÷e¦è:„Öí:êCØkþ$O"Èxœbm$ñaP™ßlgDûJßkÕV/ðËÈm`ÿÈpàœ©* +EÄ;/Á˜†+¿¾,5 Ðùj* +>^š¨êËX Ìɾ/7ý”gõŽK“»hª…¥S(4´ßòÀï<“æ2' ÿG@IÛôÅyhÓ ò Uâ©ü±žÉmÔÃV²}ZA¥ýb†Ö“1µÂ^Ä^™Ï0Ÿ{Ôe¶6é×MC1Dé ÿóbŽã$]"GwÔf+aY®U³ÖŠ©•p䙳:œÜø´ˆø$Ö<¸—œK:öšhL\Mß*ƒÕnÓæã8£„¸B}ÇrêÎ,¤ôBXC b¹ÚäŠL‹‹Ýd§Æ«¶‡ÇUÌœøÂÖ”|Ÿ©‡Â¬ q·¶RÆÉ&vÎ($ŸÛØw›Þ\Å?Ý»6pA¤"· kšºÈ–D9±5 +¶ˆæwx±±-']ˆ½†Î=ÇÛgºèjfÆÒW"ÏO8#‹ŒEôZyÃ>®~°Ø(Ÿ)è!ñÈÏõ «bŒ0X œ4^«¨!ª¹B‰ måJ¶÷$wU[ÛÂ*žâä“òb¾Ë‘T•=—w +˜ƃ,I×€Y‡$º_(æ°•c¶ƒŸ š“Ò;Õ$¥G cVæö§Ü{Šš%T1ÁÔöwgç.qy´]ò<÷Æ0ξÔÃùݦ ½/Ñïá±ÜhsëU¬ìuN³_! k· ˆþ;è0ŠAÂ!½¥kÒǨ~燶åGÒKñ.rCº¾ÄÚ+áꇌˆUµé;ã’ RêPèwßnL¨£À॔Ý8÷Ê®†2+2AtñÛáó<]€«d#DÇ-ÄR{>8rn„²¸÷`Ô%‚fuVx ¤òÂ#*Yšò—ȳ#}@&º?žI_üÊ8®L¸sÌ4½Ú£jYG[€~Pþ: µ»É*]eo €F|umë½ò±/{ MÌ"Ëš(lƒr_pÓògf' Ÿn™æsýƒYѪ±ÍÅΤBø×hQ ·Ä°ß]?¨×l'@û.{ÂÕ ¯÷˜¨´Öbî)2—?Pà³njš²M.eWÌÀQq]gXuë`˜â®2¶‹/ÔëÛo‰=ôͱ´„2H·¥˜h—J¥„ °&M{6óý)—М°x_¦f&«Ø²º|Už[X®ââÊ7¸W¼C%k| +¹.FÀlS{vq*SÞ+%˜®M3“Ȫ֖±Sº©Ó¼“_Õ!Ú)9$ ¿£§˜1Ëcÿ-Òïø`Ž´nÀÓ]¦ fãCö©GßÑD¡_í0ÌJ‚‡cžòÑ!Û–½CÂÓ+§“„-‰|«,€àLVñ`jò$iTDÎDþµ^õºn=Qè¹'²+e½Ò˥͊·'œštÞu£ +̾nh½dƒ”{/t²-GñE¾ïE³o×6F%Vâå}¹üIzÀ%›ƒ 4n)\6UkúÈRI‘ +«HkèÝ”ˆ¼íÚ:Ö³`ŠÖèÔÃdœ™ A]ƒ(Ntû²ãéY-q–›«` M}Nö;›ÓÎû4åmY® ,i˘YY%?x$¹‚î½Î\“Iü!/€3…_êW÷ÇÌÒ¤1¬!cCеC†*ež?æ©kÃzà÷{ÞX«Ä™ó½1MÕeC|X@ÚñÎf ¶~µÎ» +‡Óu×}ð¤Ú/M-ç…2¯G’¾Ó Çp7àiVçš¼§ÓË7n}n2:ÃÞ3Ö裭¸ÕÞ½.Àqܽ#L'É(s2nN˜eÛ¶W £Û@–¹3ÁÇŽìüð±y1 Ê›‹ºRå/Ób•·YP^—jHQ +¾»Ó”ª}8¯…þ‡§Ÿo¤«ý»N ´¯'­î +—µ²OÜj4#!Àù©mxx¡ß¯{ñÕ÷WE†¨³ÑÚî´E]Ød©w7úxÖH]­@ Áéî——ZäKuT™‘¶£…B]:ýüPêT³%eHyÝw™EC=€<‰L†NŸƒbøÈ#e•6FaJðnv…Ú:ß©";D)É4>‚€IØÉmav8ž+k–ÅÔwE8ü½DÝ-µÙ;ŒØxF»'3ÝbÃR°i&2»þɨ.¾SHÖÊ¿éŒ<<Ü©}";ßÁúm—QðŠyC2ë§}9‹–RkÃ!§RÕñ—Ëwo殼Cnw0:²h0'àýk,›vü%m€ºÇÅ|æàZ:hù¸<ò¶ÕŠîd÷=6 ŠO-{S1º<}çäFŒøÃÂn“7¦wœ¤ÿmZ€7"DcF¥dù„3kíåDjPd9â£OxAG~ì^¸Z¯Önè _¸wÈv²â=$ùq,ê$ô$ +ãè[r€Ïj§>hEˆû ­S+UÝŒ< +Ùðt¸'dõpCϤ¹Æ£ ÿñk˜Àõs¯ÿa– +tüW R‰¬ÏÍd .ˆàʽ.rô_ŒÁˆÈÌéQ¼þ¿­øE¸'GÄîÎÆ²Ñ^>v­Ÿœ2¦ øè4$2^š¥¥ƒé ]D>¢X%2’ßà©^¨?²3Ź>°ÃX÷èyŒ©!©»WÆ쬃 schG ˆþÔE4yÿÄ×BïÍ‘-×ErI¥F{\§Ü²]µŸëùʧ{÷5Ž\ì’VA +Í.4;ž*“?YjYœ¨:Ê…`t½ÿÿŸ‰žݯ i`Œ‡”°”Kt)]'-BÄ'ÁÓ…jñ ÁÅ3l~濸ØÝ{…CSôÇöwI% 4áŠdCãaC?%þ{%¼¬ìÙòÈTÙC·e˪F5¤žÙ‰± õƉ9L<ü>R·€#”¹t,öt\¹?-–Óöâ¾4YAžáE¾(sìå‰a\ש[‚‚ +ª°^Ÿ æ,HÄK)<ÌʪC=Ô$–×X ¬*Þk¤‹‚ÅÜÙ‘¨i}cn§ a¹ÒV>¥¾EÔ,3Ðö-íŒspCX¸¡Òúe š€§‘€~* ú1hGcèí©uœ˜ýIr§dÖÃÊ5!ßÛ‡û‚t£ò&>˜V‚‰IĬ=%jd Wç›ãk'û}P¾m›S{îM40Ú hD|È<¬Ÿ0l·w»£aE<(¶f÷p5qPwz Ç(p±À0\7¤fÙ°Øó’B7ÎØáÂÃnoxð$;J›.ÏÂòm¨ò¾±,µ 6³ê§îŒåò.Ù÷}Ú]š^9ƒ6Ï£æ3…Ž}‰‚m+X„†ê†¾]ΨƒÉú'xFû-&~>Ü3WøL½Òò«ûöÉa}×É‹«MДēg¸\7j~ÚEe*·ï×é l'¨|tô‘ LY»ÜßÏonÙ¨Üa;øÞ·EüFXèÒr«B‘{x‡Sk}¿69#,ÿD,)³.NÇòSkÌo\ËË‚\eÀý§b’s$Ü2Þ“ËUk¼"Ý|6[Èå0¶øŒ3nG]vª‡Î« Ù7.§!÷—~W‹΂ƒm>ûf_x3[t ­Â~}&êÔå eþbë¨(íj˜µÀ,«ÉYF—1à«øØMÈ¸Ž°ƒò«+xòL늞˂86çÛ¤§-•Íkr+°{û ý ºõH¿^»e.A6Øù߉å«[ãÁX‰~ftCòdy±/ñÑùjw +F‰]@Ÿ+µInŒåisD@PU:!Z~q¤¹Ò\J|\ͲX<a÷Y{¡™&â›Gèq°åSruÞ.*'n·‡'ß{DÁ‹¯Ð¬í Õòìt!Ìt–XWñTHšS›Í¼ñÏD‡@&» úøøzË„»Ϩ±¡&…­y-KM´Ð6‚ƒà;Iüè¸P{‡Ðëý{ Ó,ô‡oT(Û›Š‹#•<’­¸ýÉ_¢‰÷ßµ‘4ÒL#7Z]©ÏÞ_äÞ"ÂÙàýå“k°swßP§ž¡×IWŒ›ü1ܹf~óõn•2!ù]} Ÿ•f+Ø0÷h§j };·”&^Ž‹³*+¢|Deïú\Α‰ !bª á¾G쮋ó8Ó®eŸ>G®|‡XW—k¼(70Öer8+ö«°3æ§Þ\…˜òéSîD‰Õ¥Ç>jˆÍô|—¶ÈÑ¢ e;ª¿ p¾˜4¶ þ­AH©Côri!vš…ÕÊ)¢]øúWAñ8dTýžTôºaŒ¼ïÎãâáAfºÈƒ¦Ñÿ@é:P®l¶÷ “]VßÍG áVKŸBañ8¹aSW›ŒÎsbE^ÞÕO©œ/|`ÖôzSÕË`‹öS·7°Ï9Œvb}±XY’vsë±N3û0@ÖQÀú£72L÷Ü`ÃÐz2QŸ¤sÿðÉæŠjx+}&÷Ï6ÄIn6Ÿ¬R ½(œŒK'5Qp@-бÄxíÒÈÌk fbÝ>´¼9N"¯i™ŠÀQM´¸êœœWâœj pëÄ¬ÐØ¤†Y3kéàÕæ½µûÌYÝKìècJq•MÞq‚p,”‚fviìFÚuL½½5@M,5}MAÑtÅŽ86N J°½‡n< +pnߎ¿½ŬMϳh÷·…¾(«ƒi§Øñð2 •ç¹Räã^(âÙŽ ïq'7æ:iÜø6‡>B±äÒ”sSŽ<}®¥ð»zjªÛÆœ¢¢ÞÃe ãÖˆk`µ +ñ:7 ÂxVu4ÑçBYð5’…ºqAõ #V®b2§_¯¤¯¡j_òÙª¯2>ªGDÅ¥ðâÆ)×ïOSupOæ< @iÅn/øÇçãök†a˜’™ú¢òz%” ýžàf±k0I/ð†èjCm¨Í ðu»ª÷¬*JWr¢ø°Þ0•…c ‡ã¢ @âr{«.=þdâ‘„¬1|ØD½½&6×Ç‚•ŠžJøgWZµV~F^Ø'~W¿0?UE'@zÄïølÂ{ýÕ»¤E‹Ug嘬h¡ +¿°pSÿaÊ[Þ&θÜ@•Ð 7»}ð)½±sÀTQË€œ°Ÿï+»»4oC uü´®ÅC³zêg¾žJd‘}` ­YB¨Î¢Ëå¹Öq´qã÷Rõq5,䊯‹fÜi?Qœ¿M{ÿüY:¹Íª´t¶a•§ªF·Â|~nCP…näa8ÁóÒU³`´}m½,Å!K´þÿ$Õ§Ê"¶þØÜ‡W¹fÃo<×Ñd'X-×5¿}±ë»³39ͬĠÍb›’ãû†xîu,…LÅCÝÄý5kXsuIц̺œŸýÞt>m§ìíMŠ¡¯qA‹GYCI¤ã#âVZärù‰›øLƒH6.Ö—¥ù"$]N$±‰ȘÍâ×ìЂ ÚV'¬Ôpu‡e†Vç>>A5‰rWV~³7wTÓ*uEÛ›uíµ=ÒÕU‘ïÌæ1M@‡I‰ë£Fá ó5µ£Ð=)[BúX@,g*¬ÙÛv4–tÝC5{9W·H~b£Æö’‹tµÃ;30Ô6W‰¯Æ•]Ç·KI2ñ>z)îñȳºÖ ß¾vÔb“Iþ!ª±lÁ`#”f]üdN€Ç¥n(C„ ©ZÀÕž¿¹³“Fuo5¶Ǩ4™1Þ3Ÿ7ÁUÓaV¡`âçÉà—˜ôêA,ÇíÇ“ 1=êµ{ì¼Fæ:²"Dt„OSØÜ–00i§vTàÓÛÇ‹'b·ÝÒLUŽ`²NoØÑ„_ÌWŸœj£xKƸ$'ê%®Qä°³°&øAÚo +endstream +endobj +598 0 obj +<< /Filter /FlateDecode /Length1 1748 /Length2 102745 /Length3 0 /Length 102950 >> +stream +xÚ¤·Pݶ5Š»Kpظ»»»»ûÞXp‡w×àîÜÝ ÜÝÝ!ÁíåûÎ;çÔ¹ÿ»¯nÝ¿ºjV÷ZcÊsÌ®nJRuFQ ƒHÊÁÞ•‘•‰… `m¯`mrvµ¶i8™Ø™X()5¬]mAÿeR äìbí`Ï÷/˜¸3ÈÔõÏŠ„©ë´¢ƒ=@ÉÁÀÆ`cácçåceýsÃÊöO ƒ3@ÌÁ  ²·Ù»"PŠ;8z9[[Z¹þÉÍð¯d3/€Š•µ­µ£#@†  â`kËðxeG=à¯SÜì ç?1í\‹?Pk{K€”3Pw°põ0uý m²w¹ðýGi4Èälj Pq3³µ6ÿ'’àaíjõ'Þ¦@žæ Ç¿ +0µ”¥þ#Í¿‹ù§/Óþ>=ø€á¤œ-A+WWG>fæ¿RXüµÂäbÁdr¥ýgõ?™ÿÐÈÂÎð—åøÛrþm¹þ¶Ü[ž¿-ï_–•å?©ú³ÂÊð>þqÔ¿jùCð¿+ù ÂÂÆÆöß–Äü§&JI{ ¸ƒÝŸÖ¹ °²€Öæ®3¥µ=ó_¡4¼AVdñgESWgkO€>  +€å¯ë_w†:ØÛzý®dj0KȨ)ŠŠÒÿ§*ÿ…sð|adeáa0²qr¸X¹Y¬¬lœŸÿŒ¨bjýÿVÄòowY{ ï? +º9þ³x÷È@ó·¬iÿIÉÁõOS4ÿ…ü!ù/Ì¿¼ÿÒ£ 'Ëÿ·$ÿì°þÿ©òo×ÿCŒy1ýü¿‘á_NÿMÛÿrýËó£Áëî¿0Jù?öÿ«ÿ_ö3Ìÿ‹üß‘öG±n¶¶Åÿ!=ÿªQ)S;k[¯ÿ!Xô×{@#æàðù¿îɺšþaJÔÞÒö_ƒcí"eí ªX»šÿ!ÍÔÖôuÍ¿šbû'ƒŠƒ‹õß2òòü—- +kóÏö Ç?¢þ°üŸ%íÍ€õRÝõO LÿZøkÛÜÍÙùÏûæï‰ýãûÏg ë?õ@ž s„•Esþ`›úàÎÇZQƃ ˆÃ¢``ØÒNSüœ[Mï©#D]LégŒ§íáU1î8Œûþ|ö¶ãî½`édÖà…_Gð¬tWåDzŠ +˜«ÈX÷ÄxA-(¹Äu¦ƒµÃœMZ¨ØP^£CAΦL:ö¼lsÐ#sçqêÍX-› †ß¼<¿lÏÌ[&wa=Î>R[í„î”l²FÉÛñ6_Oç;ôìýÒÞùj[%;T‰¾šç3L<ËܲÕfª2±ÃuOz¢´™'ÓQö#ÄÂåáy[dI2Jzóp×ñìªYYvªö—KˆL^Hm¯×:%©cX÷(’ª‰ýT'KLÞCAýÞ¬­Ð@ʽˆë +5êÀ>a‹3¾ÔÕâàã¹¥tQ^°©é˜‹@ܤk?&*Ì4Ï~Ò¦ÇÀ>ImÇ=ò'¤F¬A‡r´«²…íe7éŠIxY,ÀfêìA³o•̱´dX7Oì¿›üY¿{€m%—Í +—]9 !*¥[0ø¢!쨉ódUò÷(äz¶gðg + +,]ñ‹⌖¢Ôµd>¦ÌÁûPÓµËÇ—¨í«æ®Z*//ê#³_-X6/E1ž'·øß‹ã̼6ßQ¹ƒ\6œÃ‡í´ R®Fh!‹‘I7£‘.çZYB ¾âmÏ„ÐµÌ‡Ï Ô¾šÕ*kòÛ?ÇVÃd`ª ©$Ør®o­e«ØéÁ¬™þN9BÊ6;5B*Aòn–æ¢ÇVvª þ.!ïTf½œ™Ÿ0B‹Í§Ô1Rpø–y/By7èŒxüæÙtÇ!Ÿà3Σ$b¼”ð­²ã•DJœzJ{<•*ÜnGe†¦¸îšù%Ëa"pJ=ä`þ4š˜`:Nvë7î·VYQ,¯}$pXq”mÃ3eœWšaB¤ßððwŒp%7Ëö‚ù¶éz9/I® +~¥„Ðëøo↻q”x³ªgœ_¯šuÀ">”—6±ÅNK„•éË¿Öý<ž“Ðñ/40­²¶Ì ‘‘êaÚʼ¶]XVNÁò²Wv¡:ø4B|2ýèºùz$îH]»´½S/ëã¸ljªàzÚ5-–FGàܤØÏðìÞàEư +óãòÈþÉqSóÚ×L·íÝ“yo;WñYÖ[‘ÄyðÌ +ïS4LEðÔ‡gBgù‹«_üúª¸ÈÕÆåë{F¸Ÿ]´¨¼'-ùº„Љ…ègµÝýBTèžeœ•ÈK`pŽÚZWu¡ aÈâ¼Jî·ø1ZƒÁÜ#hÐlPQ%‡O&ý%[þ†g’V—_·¸E‚‘ôµ…({ɤÀ'w Qkj5]Ö< Y?­À»iÖ.¤÷µ(x± +U—Ø0z<ÒNèŽ +-híÙªÉK/p¶ L¿H¶­mÛ“ÓÊV9gTr©vݾGTAÆ_¬ˆáVk ~Pï‡]ûNda‰T—QbûŽ(ŠÈPL ¯ðZKUÄáôcõËæÁÚ³ªÍiu;¬^çÁòÂú˜_ 6Íݹ[EnP`€a·P»³×œ zA“×¹âW¹Ò=TÞQÇ +æDMÑÃéì‘’Ðn‘ÊT˜Ê11N±Ç0@Uâsðúk?nºóøxÚ,hFgdÑU9”"ÙŸ¢µ­ïn£ mh÷Ñ38Èæ3Z+1ÖW\¬tÒ(0å^»r½À7FÉI_Æø§… ,aQÁjU'Ï›@Œ0”ÎéiPÚÒ•n…xƒãO\ßw¤6à‘ .[§£Á:oJl'àaõꜺ]ÊÛ+Ñ*³u.ŽÝS²"~Fâ ºÔ˜säydú%•¤¯®ãiEì²³¿ ¶›Aó„’¶sò)óBþ›½&Ef§[¶S8&nÖwÍMæM+Ã^Â|á + +ùöfͬ‹Õk9?< nG}îxs0%†1“ fåõLÙ¸—pgŠÛ–E«Øjw ø” Ü,t‚:Xok.œ|GD±¤,Ú^÷›èÄïé”ýƒ:ÆÄw~’¸®ž™ +½y¼‹Y»bæ{Õã6Tþ‹…¾™,ÈP¨ÃÊ+ÍB[œ@g}φÇ4‘Q‹AÄy·_h–ÖœÓùqu6¢(vF…ÈÅÆPìfILÚb–ŠR¥g’Ö6‚mÃþZÁ™í&7äp‘t{c'>P+3īܹ̋Ñ$±Pà?ÛÊ ÓOð’¡Š~{V\t"7êñtZ’«J•c©f¯‹¾ÂŒëDÚ“Ç×éœ×$«8RÄÅ‘ZÔF6 =ŸêÀ¾ï‘»¹§&U›¯¦¾d‰ Ý$j\v*É4Šm¹¢ÒÇÅõºüHž¼Y5—’aX° ÍpcÅ&N^ç|.:žß¶(¢Ü‰Ù’y9&ãøg¸‹Š$ªŽU2£ñ¯ÿòëÀáyV´)u*~§*­šÁ÷‚âÀ Ðbqm‹dQjvÞ0’þözé.\µ-Á½‹m—1ŒòXý)OÁÍ;*ÂCí!"áœßF?ˉk-ê¬a¶³óhxļkBQ>›ûÁ?%ÉkOP½<7þEˆ–-Ršÿ +Öžš>З¤wtíêÉ™léÉaÀ$[>G™ˆÛ0 > Å[µvÁØp¯>¡ù™P‰¦/<êw¢½q*•ê‘ã&š€IøíPóW™pÕ$Rñ=ß•„§kŒ6êòâÚp,½# ÒØØ£O¾|p+ã>ééR÷´ýÒßéõ0­º”edbõ9JaÄYͪÞÐ9¦ÇW•¾Õ…0„xŸƒ÷2ëΣ6B_ÖŠÙ[$2Èr7±Ó‘¡á\?n%Tw›düX~Uhž¢Yw%ÂÈô4îéEPc‹ eÖ[L“@ ð^Øw#¼Î)HgÂöêÑlñ¿ÉYàr¤;û¸É>óßýDt—úΓpäÇÏ&ör­s\N‚Ø}Uç…ö\Q¥O±³úþA9ìÐÄR}‰@Q9Š!í´€S›ï‰Kôùü˜’®WATòØ5%_ÿiýeR/oaB¹Û3Ñïa0òž4" ƒ`[ÖM°^õÄŸ¡;CKûkŒWyPcyÄÐÍÀÉzËlá´Äq[{­‹{²Œ™=¾žÄ·òûìÐ<¬r9 ¡ž>7l”9WŸ]‚Ap ÒRf€lvB¢IÜÐÀ‘“Å“³êlСϦ‚¥ç–.ÄyÁú1oµ\ψòÀ!ü é<º‰JSx¬Ìì<ÿ1+‚…R+7u8öÀ·¨*Λ:òK"×^fr¾#ÿÞ2jÌ%~¬;ÄÎÁTZ™`¯÷¯ã2‡óO:½ò¥Öäyo£c02¯}L?(ŒÚ¤eÚ‚à{ˆ…‚ÊùZNï¨)>³Æ^ßOcÄ¿´sßÒ ‡±k +û&Æ KÂy…wYjÈjN-•xCl[¾ý¤èvŒ_Ì\BtWÎ@å(oÚîÅœ¡ª‡|(»çÞé™÷|›²‘ÆmæÉÕg‰¼Ï ÉT|Ó6^ 6P6H!›_1ù +‡%óRôi˜‚š+t‡ˆj(õ'Ñ·ÐA_îfŠ–"!ê_—aʲƒhNñÌÙsÈÚúù,3cM”H £œ=p6î¥fœ›v¿îAh•ñfõ9S‡h_¾/¯/Û9T1“¼*•ÉÖr ì4¡”0Õ€^QÅí=Çü ÍÚÕôìzÝÂló}X…îuö«m‹%’œ#Óƒ †ÉTµ¸jw;Ô͕Ԋ±ð$ÄdÂT…¾QS©¿«‡™³¡3ɵÑ32®¶1Èý ë‡Õ»ê³ ºs&'º#2uÏ^‘±]—Оš±&ÎZ½XéÏ?AÈ´jÔú=0x‚UG°±Á;ð‚u +˜ŽÌ«Œ›´y•ìØ“Æ˜Í<;>Qß-¨ñy?µÒÐH]Xª‡‚ûµo&ü4í¦⸾aäOÈ«@…î8VŒñCº6Þb ôæYÆaÕ+oP(Ÿä´ÞŒò]Oë#0åÊË›l¦H±;’ë™Ã¡äJÿŠâü%ä!Q¬ÐßîÂ4þl÷£Ù¿>á»íOBâEK¹ÜV+7*5fùt™Ä³{i—C9ºý6Rd˜!Ÿó¤ŸnWJÑÙƒø"TÈ\¼ÁBÐ_ú¦9ï´:àUîðópM!Yà®ñ0“9c]ÜàSƒéÚûÇÓüÁ^iØH“(+ÞÍÅeð1uLS>}É/öqÿyÒÍ[r£Ž·­Y|ÞÆŽà¿~b }šm—oÅϰ”³É6E#’£·ÑëÅ~#%!qÞ¦øx"BüÐã}š¿%ƒÙ ´dw^ï B¡WŸ¢Æ½ÉÛ)h$¾óql.üô¢;qüx¨¸_Õ^z@2çù…~àu­’/7êjKÑ}æ|h¿yƒæ®fðWe×ôÚzH'˜«4ýlâ~A;S È/·Äîxã#vèî€E©^·ó¨‰uiŽ`¬b 4|å¤×·µÚ£ØªøiÄÛÞa¥æ$§†¾á8.¼ñV­Ø¹;;s|U‰JBµ[þT…Ø Yð„™€CÏàõr¬ (Þ¦0V}7Û¡Á׺Z€Š3[ +ÏÞþ_0—Šv y k7¼G&œËLçÓèÎÃä~ó”ktm쨺®B«1ZÏÌñ›Û®}n•«ÓFlj€ÈÎöX¿4 yZ1„¸§hH–ÜݼµÞŒæj<|w$ù™¸LG í¼ ôäõd‘ +f|íJ6Ä@±׉à4RÕ·ãº8dñØŠ(Õ û{Ca¬=äy¬„¹¬ î¡Oô”ý³ÃÈ”ÛbUE) +ëJ}—dÄÞ—Tv2¾Õ)q£@¹^ùÊ\³ü=Y´µ"‹ä.‹ Ó!.m¥êZ»ðäâ7 „%ÛÓ¢#o² Ï_0$ânÕ`rZÐi˜šÓû­-AW•ÌœÈäN"Ü9n/g¤51¯J[Q ÑÓŽ&>%ž‡*U7gçÒSÔ=ü »SÂÈŠœšÉxêÇ´^IÛ¼Û§A­˜ß/¶6Š(â$5lx2¹,÷(mÁZg#´Ú±šÈ+ \ N)UE-%ÎÇnp"lHU³ézVÍ“ø|8 +2ÓÄ—7¹iöì™é-ÆðbêÆBü¦™ÉUæÕ…ö§n(2ÓOPs!Çpµ´|ÙF¹œÔÈu¯eÝîC 3xv›sìb[º*òü_š€\'Å‚3Ã)7ÀÒˆòŒqwI8c¢²›KŽ›7–±‚%†A‚W¼eêÒçÌŸÙêAü<¼¥º^¼0"KÙ4<†Taøá+2cQÿ‡¾²ïûEiÙ0/6ç,¨]©‰wsÆ·b€ztþÃéÉ€|.@”@"±#ò{ÎÈ\Y™‚AÖ»èÌnV;zÆÇõ"òïä­"ÞWkakxÉIVéY‹>eD E!ü±†˜/fȃ´4æ˜V¿È;Y}Œ !q)ÝhäÍÖ„œ˜ä‰Æ½"…C['N_Ãï«Ex«ÃÔ§Ñ2Ì4¨›#dG²Ýá\N7n>ÐT÷› -ûåNG)Ei Öèmc»)Ÿ/®Ÿ~'æÓü‚צÓ\YåÇñ.¸)¡ms¡|Älï,ë/?BÅIØè³±®p‹teé’™°mLâ½£"æƒ]Û& +~޳è,RO€'¬î±7Dnò5Ù¸¼Òûª5¶r”;E¿{Ö„%AçÔ3‰Š¡Ê˜lòˆŸ»34Ìš¤ïCˆ~}ÂqÜ+1óɱJß<—™ ÿ†Zö&\ð"ñd‚e\ávt ®íÁù‚ª(Þüdø¬.io‡§zãÍþ9>4ÍÛºÈ$­UœWZƒ#0Ãôe½8 dc:\}O@Í?úp‡ì-[ܶ¬DÛ;-zhä@9øÜ¾¢—¦ ÿpE1“a `e¶îs3Jc#éöı~CIßtT¶ôšĉ»æaåìDK€_ØË¶º1EQxÇa t‰#Çëq™/ÎÛî{>ˆm[ûÚ k#Ó’8$Æ»“€éÑ ‰ƒ< *ƒ´ËóÒ¾;{Û +ÁŠy°±Æ5ºM5}Ì7Ôë2Ëå¢~ç½Pþ"ÙÔvÉEÖãyÙp«´]ú6”Ø~²˜Mý­¦6”ô¨CQU÷êSÝ’ÈÒXöw†x§¦5û—‚ÙñN)2©2îW#nwò•d1§¾\öØ‘N2‡ ™ ÝþDÒ &`Êúpn˜¶ïTÂfz…>\Ó>V¸û'N ±¼rÉ=±–Ì7Ôþ¢%v¿,Ák R5q.I'3¥äjH×”ãJ¥úÃO‘“œLªô_¿Í»i« ¦4÷ν-c¼œÙ|Ú–÷Z»3Ë6„XŒG¬]å´µP´Á#f|ÑÈ (›Ïacc®âªŒ* +V?c ‹¢»D²ks ˆ3cÈ]_«¯”,³â8#¡¤÷¢¢ñKT9ÚÐ7e”çR’kâk…¶ým4ŽOˆô·-Ò•}êŸW¢œŒ~©‚]¨±í"FL+^õÙ&]÷¤|_:úÉêæõQÈâ±Ó\sÐÕSTø!RïÇ¿^Å’³¬rÿ;¸ÃÙ9{ýaÇ Œx{ì¼w›œhÃ5:‘´áÄ V¹>qª[Òotœ€ÍùCë^ã“cÈÁcf¾(΄Óà“*² Tqþ©(DÅ裢ú¼5áº1¢gIäägTEõG¼fá–|¡Ø5°èî$r•Û·x+0¡8­±2†7Xc’«éZ5ûÞËFùnY¿:ÄW Öß-ÊY(¸ +X;7¦5æwÒ÷ÏÙM¬®æ–$!hÏ„áýýÚ#qM"T}_ò†É›ÏîÍ5ß­ðÒž4ÖvëÝÄæâV^|?8Îà)OyŠ-’[ð¿J_öáZ¤\ ;ZV eØx |Ùœ Ù ß“&ý†k™÷‚Ò–(¯J‚_½½ÜU¨c[ƒÅ}[Ä6_ÍòŒÛ‹šÏ^¬í0÷s% ‰ÆÃAÞ£‚’~YÃÙ’4Æ}EÝì§šŽ6œ³$Î Ž2*f‹Gû§¶Ä±¡¬ØKa }5 5qhêG1¼ÖÒ6)£Ü›°ã¶Ô›v]Åq5™0C“ÊÄ¡Iz»›ÃcÓŒûNØùîý„Z~„zp{NŽ?•ô zIVu|Ù¶|øè¥ E˜µ²–>Ü(Wí^ï'Çugì»ËïÙô„Ò÷{ +­‰]*câ Éu º$B_åÇùê8ÞêƒIEwÕzx?¦ùŸÄÙ@×ø‹l¡£kB2ç]âûýÃeóBjüì»ãÓ¤˜°_ô¥oƒCaÍ¿^`WA_ú-à$á‘^Ê…µž½²£{"yº’Ö{\zDùõnò8y8„ÞEÀä·Òë*‰˜œ¸†ê_ÞpVì/‰ºÀA øëAK=@¦:"\í¹Ð’½IŽŽ—*ò|Âøuªt±ÁÚÓH!F¼åìÒqc å5âµô¬βæ ï'XœKÇ–}” 1æ/è¡`D¾ÎlÞ ×b­_VÂ0â#ÜÌ4*³¢rz‚À­×ªä§ÞÊø‚½ù3ÁÙk×Ñ6ÑFBH­S·ê]—ããy@}1aÉ“ðÖã—‹éöžBÓ@ø1€æöOæ¹Ò¡ö!Bqzœm?ï¢Ò«¾7ž£c0Á¹\ *œCTF©`V}_#Ľ† +&[ëB-c†š"ÀükQ¾˜=WÜ@Â$´|G.>*d¿)×nêu¡±b®O]úüsÏÅnlí2«ò£”8$›²uáV3Ö[&tÐÿò’¨>FòGä8µo +9-ÑÊðѼK1Ã6cv°8l,ŸßÚçoªÜˆŒDÐ> Ÿ7@[ð#,*b¾§Ü&º†ðue®ž—†®¹"i'ûI)<Žvd=§ûnc¨†·ƒqâcЇ¿Éý~D„6à©Î`y‚ôY&ëáç)jJl6íÔ†ø­Á’½ÐØ…ËÈÉ9ðQHÒr™¿ +STVͳ:çÅèTLξ^D]'.˜‰»~JLÆþãW±Ôãg‡¬Ò‹ÔÊ4‚ã«Õä^ÊÅ—.Ó/ÊáõTÇ»üÜoçHHôTk0"ú+AuÌkÞ¿q-ìßà b6ÙðÃWhðËqê;T×ñŒYb‘^¢²3ï‡Fí½7¸ .ë"3u§~^}^Œ,Q´=\Úž¨~8ÓáqeLh";ò(ÚÓ7ëWúḖkaÐSΊf vÇáÇãâ¤99}ª\C»KìáòªÜËãO‡ãCð;õtç¡ç3•„.ñc_fWŸùw,é$ï,ŒH =A_«g;þªé +YÑ$.MâÚ7ôù„‡Ú­@ãæ4ÆHÏ6sØæ[Šf¿Ú‡|1Ö.Ø7À/ïló5“.hP ×Á!g"á×<•ì£9Ÿh/5Æ[7ûÂÁ¤Ìµ›{É7µéƒèÍi½_Kæf•£N +OýìÇ¿ÇOô£Ÿ¯ÀvƒÏ6³~ +P@u&yŠ× +-õŒð[dx/ŸÙ(éu»~'V×ü¬C)´vØ:ªs{Zcôízw©1>yAÕ1$Èзã‡;š¶vqºðsá8¡§…‰kDáUøë®7õ¤bžˆP_U­õRw#%‘†ˆ{¾®›×Ýô(²†^ÀÅŽÄ·!ÖÓ*v¯¤ä3C·fªš<©•t‹vƒGÂ%6›À÷Â﨡 ^s JÒËu|{49éö®¯Ngd´ùu—ÓÍÕÉ /,¿îغ4ËÓI:-lá5r]L0|És:Û­äñäósxª™a¥1Ù¤Ô_ã«{Ež}ýú>RueóOn²­¯TŸîùO²¦ †¶Ù‰Ô(’o(ù¥‰;6ëßȸÔÊ \ŒÀâ +â•?ô-L +Ъj[°ÀÏä #¢¹03±—¨/-+„š¶”>"Lîíw5gs+Q‰Û‡x²-2 `:mî²-Hw¥Ó+K:¼â¢“Œ`ô³É>GjÂÃ!ÍO u;¯ƒ‰/Ÿã¤ÓÞ÷mCFREƒÐŸk…yé‰qU :hKÍ'8+­üåG¦þrþ+w^VW>¬S¬Û‰$Úl¼ŠØÔ”Å•àñ6QIh†ìŽãiÓEÑðrñƒŸGß“'­™t´1›ÞÈ^ShÂ"Õ’‚Ó¶Ë*~egñ£ëIY¬¥ÈD4}ý¦!³Æ’Ú¹úˆ¯êN©%ýÚƒ¬pl]“T­(oCÉÓupŸÆŠ†ˆér63­Æ°!™‡¬¦8¸U*vhs/vÝ[ÿBÖ“òC¶Ä1–AÂÕ3#Á˜j€Rà§Œâ1ÙAÿ…c§Ò Õÿé…sΞÔ2ø>Þ-û¼vˆ6ن⠃ƒþ"Í2‡«™œõiYµåOÆÖ%ŽœÔŽ•l¦Óì»"ÊÙÙ[ùXý©VÊ ,ìÒ‹ÿìˤa õ{Ä\FêcîQ ¼N€/Ÿô"²²Ó×Â=|B˜³<²;HŒÿ“,Ó!Ï€¼µ‘±Ê ÃÖ…:sxßÌɨo/<ƒ¾±yBr4ƒwÿÑg§~ºE=Oì e‚„KWÛF8Så+ó¢0½÷Ñç¡ö"¤ù ºÕú½ŒA¶Ä3,Ïʨet*HÓ¦$R]|×pQ’ß”½ÎÓcÅ 5®NZiÅlóË:æ5,ÁiÙÀ‡Éj¡Pm¼ñ>óÍŠ¯U€¹¹JÉ×HuåµZ"L]Žzë¿'ö5ÉD3²Hb»ÙaeØT’p k^¶¤úôm¼b·A4•¯ÝQV–Œ¸>°Ú¬RŠ$fÚÀ*夒2ŒÍSÄÁs ÉãßTê+”~S¥WV *éå᳦¸Kæ´'¬øÌ_´¥œ§&¥Þ ºÁ_²HÀK̆±…[Ý5Ћt=}Q÷3×£ÀvDÁÍqp0)¸O¾™ó×öxÆMðD:pœ3¨a¿´4ìÊðËYŠË Í*ZåóÊTN¨ûÝŒJÛqŠpH¸ô +Þ¬a‹þ ¸¬8Y‡‹ƒå3¶5KsÊ–x—‡gÌPóL<=ééN,A&=˜e#Jö@`ˆÎ™ÝHžœ¬?g{ÂC„ö¯OXj¬¦x3ûÍØr~¢•Õ©eÉža³‰7Þ1ôu‡MA{ÖIkïüð\ ßoï®y?¶*ešßqÄLÛõEU?ëDö• Óo•‰îc/}r‹—±]X ÞlÀJÎ_ç³ÍòKš*„°CÏÖ$À}눼øVq3n¸óãX4ª}Jv¸ì˜ª‚Dï5 —¢mG6*Ãk»M°×áúêÀ•'s½!Dm/𠛎tz§ -¨h/ä‡ÒªM³uW""ÊuQ&ì ¦\ÕW¶B驿œÛcZò^š- ¤BJS¢‘&œÔ ޹`5úz$ÑÉ©N4 }‚Ï‘0Êãî3,xËFÆA}G«Ä7åÀ–CÇQVEªþ€‘¦åa½Ua|ýÒr±š_z²ç¿¼(„³ÚgË<‰øbÖ‰Áã^õ ŠUm7ÕÕk0%†ÌUŸ?ØsY@ЧÊÇ6ÓœJDJ‰”iÌd¡–¬™ff×¹I^ëïÆÇ.»•™ßÈ.㑫‰ E‰÷ímá?l”Ñøi åÆÐÙò0<ËáÒî4¿ÁsÍã=Êle)Ÿ¼€8+1Db1"ÐeæÆ-PcÞNéÂü­ª'CË[ 'ýDïУu÷~ˆãþ>‡a]9Ü|\o’ï_›¹2f3<¯žllÖÇ>'¢üS ¯VIZ@J7Boä«r3ÒK¦.*øè“Õp¸âD¢Ôá€~[-úóg¥#Þ¡¾é‹Î8|¦áİͣÒú鸚h 7jk5³]!00`„ÜÝt”UÔ=NÎóD;œepÙÙ@zŽWàÊÅS½ÑgSB8‹«X¼ÞQíÇŠ0QÐ0:õ‰(\™Ö#¬jšðÊK´ #Yq¬êoðs¡­ž(Äݵçîæ±²G0³ Û¬ò“yž.D¸ŽÁâ§4RL/BhüSñ£¢iÇÅü{<3b—™D…bÈYO·ü¦[ÔB(ª†½PgÁ©ÑÚ™¹zãiüc¨Ä.ïU0§ò¶£°Zš¶;¦\èK¢œûâG,˜~lò~ñßæxßã1¬¹ïÐEË‹§oy¦VˬNÝ –újtH˜wq4Ý,t†‘±T£TE ç¼Cˆ9ûBàr®˜ðÐ ”?&[ ¾Uüy"»ô¾uŒKíãñàé"‚ºMÜ~?}àÅÓ+Úrƒ - nòQ\þ.ûî„¿¦œú¸ù"¥> +›„Ü» »ÕÞ eÕe©Û—4¯° p1Æ$¿«ÇHOY‘:óHž ·=Z&‹,Qö.èA›¡´S6CøÚ ¤…ºÖßã ›ÂÂV\x¡F™g³ ¾u(Ü m=í›êX•Íâa‡ß´ +Ôu¾¦+%_H¢7 +cŒGþ WMN=‡LÏšÝÖ÷) }„ÇøŠöð«sÔ²φF-™ì,«"êÎ×…Éôˆ”?u>ÛJ0õZlãÚ7^FÖzG5ÂËÚ>ìs9Ÿ?V¤ºàßÛQup÷8|Xœ·:É!0Oå“»Ö +74ü´X0ìúVn:æå:Í۱©5ókn\•Ó)±"²‹D3ò]N9xÕÔ>Q~@&p|«=ÌÈÄÁ¸,APF‡ìžï‘]äFu—MKrmËŒ‰׈À×,ºãß}ÇCǃbô¾÷têù¢Ù«[H7K â@›!h¼ê«Ä +ÿ MxãE‡³ÀDm=S¢JO«~kùãÌš·ç'–Å"³×¹œßÐmÅ]R½™á³móârQ2Y¾ó$›±ç+9yÒr5'gãô;Lz}—ä’ái;á^`TaX'4§åÌ.f}Þ‰zVó{UÈXP¸ö¦`ÙÉ[Fäž?v‰Z[ {¶ +w:î¤<œN·9¶sä¡¿âG3®œ@9L! ÿEdÙûÀ1š«GÆ-»åëªôê#ÃPÌØpœä…é`fñ†áŒl;ùpcÁQ$¹ÜϘÝhùj‹Ó”夠e² óu;hnñ/¨ˆÈ£×%6-ž*[,ŽÌãr6¸tá]A¯8 j¶|>žRÎÊŸÏ–išŠfà•N mœè†8š–J—YË!èeÇ}Ðê'EóÃ(!×å•X-WäRQú¥Á÷R®kò.(BhA+Ë@Ë¥5 U&F˜ßcHsk²Aç ^ÒÕQ…@åÂûÞ›gUŠË³½…¡'#èÉLßé™A´{¾c _5€*Éåv/©ÊX]©„­Kˆò5:±Ú’?Q ³sÉÄ@Æl‚ù³l ‘'Êþø••üôgWç(Z±[dmœ=³¸š’Ö5OÄ£­kUMI64ã÷w]E:bº½§ šÅ%š²”bëUh£¬çš]„ê3!Ž˜“œÜ;i$N£U¬5^¸ïÔ„ýG›haÔo_ÁH†`ªs,SÚ[ ð=DŒ¯µÃ0¿—ùrVËnj|ß‹CâB-¤ß¦=5 +G5±˜'V "ÐmÕó]Ñ­*!¯PC·€Ë+ÁCŽ+ Iâ¤ô­5¯¨h·Š±yŒ¹©™Â§_¼cˆ»¾·ï…&ç†ÁŠðÖÕSz¹52O¨içRW¤á{ÑIÏ —½Ùbqˆ+ø6ÂeêÄB'ª.æT{]•Q†¸cý⊗TÉF >ðc뤯ý^wÚv¬D?¾Ï¡ÎZ¦l-W™° VCC›Žó¶Ìw>š{n=P+Á]ˆ8rRw'¢Eép[è*Ã¥ ¾¯™‘ªßΓ7ø”¼™žoŽ{ÊD/·ß80J8Ã'ï/œ¯—œÁãªUl_ÑÁm˜z Á«3.q„Øbõ>oJúhþýð*¡Ž’tñ¼)*1[µ­£h{™_[ùÌán û6‚"¬+6”Õ™õÜ’î*ÈéjŸÚ_Ÿé-­ˆl- ÝßÑÅEïg=¨)ÕGª‰Vý¬’G/ñ•©‰t%¦Ð¥ÒBº›÷·Ê“4'bYt2=7>µ^àØº–&¹äbj¡¥Ÿ¡1Ÿ]½Ô4‚ÒÛÐÊ>‰G!Ä¥Wúh¦kÆ[Ø!7m,Ý£r»ê<(q7$z­¿…7ÐÌ€»wO¼ƒÈY›ûýÎk#‘QüÎ7=Z ¿É`2œôû VŰ1•3¯ Q´ÈoÕRÅ}Lí;ÅÆ—þ‰í#ÔÔŸsÕþ"ëk4Æ † 0¯wΩèz]¥ Sx¢éôYö’?w«„ Žéô¸¬ûg dR¶ÓÛ–õ@·ÈÏ_yw +^ˆšxè"ñ»s¹™L˜5Z°V|´ß;/ñ[ >¦\m^ðè<8,ÑÝ+òá¼ÊåbQsYÝ +جX‘e·à¨x”a ‘­%’G?T†Yθ¼LǺb:Iª…Œ.Z%ww…>ùׂ]]bHoå%ÑÛo»¦.!ÃæGÅëV(TCÐõ|~ù<££‡]°ScæÛvh´¯…4ê²m1à6äÆ%¹UXrg}\•¿é+-È’µòh$~M²û­±-Rweõ´Z"~ÆJ’å4í[•µÈÐ\Æ%¨Åƒw†¿Af¸™éšÃSa'µžøçå8i\ªY?Š¡_Šô35²]ý¬G½ktGT™=d×áýæ*1Å&lÑ»1ËUÕ³§µ±Ø`Ä,ÞРÜÌ.yŸýMO²åzš°ÜúZFFyº>5ÕLƳq£Åß“ø:Øf—Ãõ'úîÒ¬£QýåMÀd‚Óww ˶9§Œí7m3(Sþª­ÿ‚²f­J µ2 +–P'–zÉM¦ÿ'kŠ;WQ‰råÊ*?¶nG‘—±#Ýor‘j"3Frzb³¤%7L×ü‰y,eôQ/`†‹Í®/aù§-Â|Ž’‹Yû0,eÇn:ˆXÛàøûÉÖf‘Zç²]YÁhìO¬µÈ^%Ô¾“ý ;W؉§ër±V…h¤=Ó•UÿYÌÎ’“\”QqIvµÍ¬æAáÿ©ÚÉfl 2$£9çÛÙühF}8Þ:"ÖX¯ûE"|~Š„’Žž ºªE;×IΦ5שšŸ~“ÖÑtgd²î]|õ€ØëeoK[ú”ˆÉš«PY:a8ñÙK²†ÇÂØ“øøÇ2ƒ=b·à¦d*Ç̓›Ä]ö„õ%ýTŠ#¥U)ùeÚãÚ<¶­2,ßÙpŒ€âÈM:6 +äNW9þ͉¯nÒrZ +žŸŽšxB^Œ Irc£ŽmBEø¬o¥ÐÙ6WÒ®èp«©bÙЂ%çmš°”•$²Þ¨än õm¼&ø¹ `¤gQ˜2‹’&ïØÕ§¾SP˧͸¤Aˆ’N‹¬½€9Z|:c@ydEùüûZãT,$Cm¿£tâ a&gYù€©ÈØÓ'ØçªÇ›{}íì..oœ2ì ù$Ç·•5Ciœ1qŒžÓæ-Èž#ÇÙÃ;qïë4Ña‡—¬L\S#½¼ ÅF·±€‘^ÿòVõ©*2àÕáI»è‹³“º±BUÀñ„<qH‹Áû5ær]áùˆ­¥>Ìy̘»ÝÖõ–h®¼d$VyÜcùÆÈ€r&ç6¥7< ÛÕD±‚îû}tLVý9;•˜È‘o$úÖtÙ.é^ÇÓ¶¬œü´å5RªöT¶ÚÇB[´Ü†_zÏ/”ÇsW¼ˆ%kב–dÑQÚKaêT\w⤃ý]„=;yòHPYÕ¯ºY"_Æ…èGõû2ÜŽ_z›È;-÷=Æ|*/qÞ?~Á˜¸ Õ3AD ê÷’z¦…õ-Ò<Š«ƒÝ5kòø ò°¾¡[I ˜ +̪Qü~USÉóÔe‹Œ#¦DRz~<Áƒ÷ÕdJÊ€_ß5Ï­NzÆ“ì#äj¯ªsYªrw­žê…)®È=·ü$ íèä;Úãm…'ãVUÕúˆB8útFuz<ðÚ©ƒ–”—–ïbĶ˜A}·ÇTWßwFe5onoX|AÇy/c.ñ5gÀ>Ä‹^e“•:ðÄgX-ÄãßÃÚÀr ðM'tÖáÌ_‹É8MÎý¯û—'F´­^dÀ4­!«M¼Žýj¡öšÎÚk轎¸k䇀¬3læ¾n5úz6”¦Ì.ž®ÊT€»ý™°/¡Ýk§ä‡¶É_¤ãwG†ç’ˆ¥4ÐÖ–vÞE+qqVL#EWÝfžQ´Ë@“å°COß¡˜^~iØ´ºž*ˆ«ëíÒ¬äB S0ì@„ñ•ËyƒÏ›Ö©äi}k¸ÿ¶!û¦@œÓ²Ž¾¨]è{!Æ Æm7*jãü&X×KlUÕ&ýC&wþÕ+r½ÛÑ HS“hÏ@dއ<ägïHm>¼í5‘Òxûðfµµ·‘’õ +ö¥5ÐÁPìÓî7ܶ¼Ø¬¡¿Ê'½u…¤ðuŸ-ů.Tà!X¥ÚàŸÞ¾B‰]ð€SNëQÙx}šØ—äxª,0½¾êƒþº¡“¸L´ÏÅáEÔÒ@Ô<—÷«VêÈž}FLz¸¤ù§@t–/Y.Ëû¢I©Íâ/Ž/ÔnÆúbgfks$—Æ7*øÄŸ?³å„(}ÛÓÓìtqáÂE9]âÒ1Ú<þâO;Èk-Ä<{ÛoG³„¿³Ü`4º {$µ‡jõJd:y·@õóîDø±ö³½£ˆf†B Ùƒìˆq¿Tüi)«ÄõMåäè†×!«Fj~1ÀÖíJªŸx€¸¥`,šd2Ý_{añÄÌFvTÐnbžA}w †‘&~o‹ÙV³×2œZ):Úvn¿M8§lFiu¼i”¶*òÚ |³.ÁSM*£ò‹–ÛªÀëkù ïDXJh ‡!·¶tµ{B )³Éé糋I Ù‡Z4Dnë3ºÕ@tyï5Æ…ò{[å@ySlQç ¢÷:¿kDð-n÷›Q=²‡#P,Ó>“îybß­•‰áHl.îYL·W°•g;b0xy¥¯„³äyÒdûRÚ–ÝŒ¦¹ÅßC2‹ +Ê=Ûü¾/Œ£:\ÁcâO*á”ȲœÈÂtÚ)/ù‡©'%ž²Ðõévx#½9ÈCÀkîÌ /·ÓÖÔ•ë²Åbòª1ÎÊz5t_”à@Þx+2/ãÁ2ú)rƒ¦l6—ÕÓµ¤ %9£‰Nl“ûÙ ßWŸàœŽŸhÝ ÷<É2ÝèaÌõ|]ÚÂ={2xú²gQ;;ó)¥neµ™K†P ’‹fýô‘ ë;KŦ @W«ÆÅØBlŽ ¨6”ŸDnxÀvWwo£å’7)uNïΉ EÜe¯ÿ¶½ð}eMš?± NLB>%™ÉÀ3xáØ‡B?ógx‚vvs”õÝ#äC 2ÂhãÀÝñåÄyà}É£Y&Ýø×?bÙ<¼NǦ˻Ϳ|ôbÅ6X!çʹT#ܦ:˜nÅuÆ5^–6õ¥%øNXu´C0Ñ©ÎÐ&Îêÿ¾"Ix‘Æèáö ;º½«Y¢Ð…VCòÛÌÎH0ù#£SÔèl%‚ uUp8±‹!ÓÇìùÌ”$«c'{‡5~”YPä€ÝE—š!:W½`8ø†Å=mÅÐ.½Áyî@/XÄÔÖî~ËUVŸÅ­HH}WÙuL³=ú:WY=„¦î)Ò W5éfÙ%SÅŠ+ùb£=–¹œ|Ç& ƒ‚I,¢)õ›!\n£&ê°ù¶{Ðø+cSTÊóíÊ#Ý[`S—¯ÞÌD:~­u£\T·FC˜jG#i³Ù€!ö½ É|"Ï/sÚ ^"Ɖ<¶ÝËÍ"NZ0µÏr½a½ý;ÔÕ-09Á—èE'”2›þÏû*ª¡Å¾-beƒ29äY8{r«ÍÊ$AØ=æ#Œõ¿¿C¾X®Åé3sµÜ¸«6Ôâôö·OÕb’¶ø - MˆrÊÏGÕ¯\À£QžP‡×ŸóòŒõJ\¬ÔBÇ+æòGo›T#5¯79qš(3ÕCè+J—hætmLîPl¬ÚÒWØþùȆ˯%Ï‹“Òª…à- °“oö+sÉn8þó¿£\Çekr<1%« ò0!å ˜âåÖ`7}wÜ~°¥Öró8Ûœ>ø¦¾Ý‰-ª¬Æ³Õñ4¾s/[ÓÁ¡ÔD\õoûÜ’"xöT‹¢T!Zx*Í&¬ðZýÔJüFc9®ÍvnˆÄLÙwyBߘšœ]ÐaHÿÍ*öòCŠÊíµ4\s²#=ÍL{ êt˜ÁwéJùÄáTz‹E#»prùýyëç`ìMeÎô_ˆä ™- ðZÁØ¡}ÃãcœŠ4,·ÇmÜ5UÞÉ}ºwv]W¹¨Å.Ƹ&/·Lái™A~5´uzñ–í³Îá ÀE¸0Ô,N÷•$s:«ivª‡"~‹½Ûú[ºûɈêDÌ0oy˜¢r‹z‡ÀY’{N•ªò`ouÆJ¢U4»˜¸-ê¯8ʇßç´¹ÈpƒO Š|vøšç‰Åì7™$«¨í0³½¤T¸ßŸÊ8Š=Vg®-´(˜|Ú¾c“ÓÉ>¶åëa˜$åW7qi0²@. xŒèÈF™òRùj=æQ6¿ábÓ0áa¨3{B›´aªH6fxöÄÉ¢¹Á"A1Sß²2“âöÞÞiA™PKÇÚ?Ӻ컻øE‘DâDZŸ‰r‘ïÉë4±×©kµ4Ê‘JipQ³`ùúî Vçù²3]àÖDc­Á%Ñ<«–i y! +B.ø5Y²ŠrÐá-c X–óª °†¾¬ú¨¥óx¹uºq[r–ôha"­'pš«¾Õ +«%AqŽî^¡ëv¯Íº±xÜÑ8QkAI`PµóDƒ´±-åqê,4 ƒƒ…V,¸p.é~*ð#F$`}MRñ Élù??¨¡ËË[y«t=cBaa´E|!Pâ­ÀÝh¢+@ô•ä'3ÏGÙ+>`ÈÎ¥‚%Œc‘bµ^Œ³²vmòwsù]¹ì)-ÿó›‘?Û q9Ã8òŽÑÜjm$>ô{˜ƒGÛ£¾µ5¬p,â%:Y?”Ý9–zñºg—^/ÄJ0>î ˆNÔ€ñœžð˜ËÓPÖ°/KÍpX«ÁK¯ñ°ÈÇ—JŽ;çdÝD‘Ý4}ºÐ8Œ_ÎGídÅ<çúˆÄV ©‰ ƒ¹*ÃD'ZÍɲ0YÒþLS˜"±I¶oÊ"x€7ØòÀÜbd„ûó€f +«o`zŠbW÷˜W/AËä¦Aáɪ/m8dãðk”ÏÉÝþ &–eŽèýö¸1,FRí½KýF\!|Mú+(ÁiEX0¼þb¨‡eô‚2¼R¢¸A—š,ÍVbD‚Þû+‰J¾9ƒy¡û4buX¦Á—÷=ÇøÕUÈEÔµSÏ_ÛRh§÷÷“ZY•˜N†bý8…‘,íÔÕ®ÞŠšûãÓ†©(wÿîDúno†æÐl =ê"ìV‹à¥MÉõ/I‚J%2ü:+èb­<7»›3ÈDÁRÜt1„ j) î#A=(­{u†už¬œŸå@)ĦgN'õƒ}GDŽ–ÍW±A[E$–â¦FÞêaKe,­ ¶]_èCAUå©Û<„˜;X7+jhà¾$ÔÝz‹![ºŸ2"O{ñlÁy=‹áo癯›¢¦ +úw„ÿ…ðê_®êYKwýÒ1jºäÑü¢(íÞã²]€6TqqZªË6„X…rðy>"i7H°è´ÿsÐxAJ,ì®'Qrò†ÀîqàÇË]3¥ïKXffKµ7R«_7ßÐȾhA©snóXqÍ¿.ps(2e¡Î'§úb @w]² ¾€”} +¬‰,t_’:‹ƒÞÒ ™ Ü:ªÍ‡ÓPø +[ ¼Ü=òϹ–Ä¥¼º¼Æ&, sxÞâ¨ÂÕŽÚ¿¡6“#YHá8 ¢ºçü{MV¡ `˜1ü£ƒŽÇ>‘lM†oKˆ¦¿î«Æ¿¼þX«¨§mD®ØÐ±¾× +ÈEûCV]àVQ* ’#ßz>ƒÑ– tC²àŸQ^úZÅÇúxÓU-Žjw­ÜOMºhfÖ5­{á ãÙMò+©`\jêl° +cpMÛ +a­¢ÇæÇœÏÒhÓQÉ):¨Á’ƒ™e;½êŽ…éz ~Ý%XïH·˜ ¼äV6ž!ïɱüuúžgô”WX²fæ¨ýäDí8ÎQü‹Ù…׿s'T lÛl“;3‡;þA@hžôyR©p±Å#äÔý8¢*žÖE·€‘Zo•<̯G\Nñ|õ4gº‡hí¸Œ½Þ­ZO‹Šƒ‰Kø¯!Øóh…2Rz[EŸ:ÕòK¬qóU‘0·w¼òŸ6yªèÚ_MGyeò@”Ì•œjî Û;¾š:¿Ôßë %d5@­E ñ¢ÆCΚéC À¡ + u™y¶4ºû+ÛëE%ðm~šÔ¥¦¯íú]ÚD4[X&%>߉e¯X[ñoË0ΔÔe¦õ!«/ øG×µ@`¶ ô1CÖ’v™Y¡ÿõ1=Çu—‡¸¹Ž—c>¯f™´€h5 · gé»ñšÁtN¢F”Ýij¬pã:Ç·–Y]i›>Š|Côüå]ò+…Ÿ{›_jòÚ Ÿ TŽ +i\¿=éè)¯Aä +lFûÓx{Â7àV—¡%]ò·hݨ÷š~ÅéÒÁ•©Îk}EÔI…Ç]Ê·\µ^` 8ìÒÔrI_@Š;RÈ$F¢gOÞþ1†ÐnzËÝ ‰?«²(BÝ9 Æ‘)ÅTô7oÓ©ú>RÇA«ä ªéæ˜7\§YËËí!ßfÈø?µ½pMc2Þ?sýK}›Õ}^±è±.$3 +™êq>#pïgˆ{äUæëZá"¿‰˜HíY_UwŸ—”¨Eás&i/„,‘ü–/+öÇÙë5wåVä§K|Š[؉ƒ`Ö™žJ‘Q ä*é®›ýN¤r9çÿ%–‰‰¢86Ï$ÞÛÇ—oî0<ñ{÷¥i~«)l˜Ø†Æ|“êÿ.5Åó…e6ɹ¢¦èÏOiòí»ÜKÞ4&¿iP N·›¥ý¥³x›<ßç¤J£)Þ6 +¡­mUÊúàVÎøvϼ$rqñ°íH€šjïí(Ö­2ÂŽL:ì¯ þAHã¢þ0A\}8>A-tx -e=FO'¿ÁÒfnŸ>Éfš"‡ Nä ‘=¯\Gµ•wé²­yó¸ýû|Ðm|Ô›8óÖÆh#´Á]žÍ’@?~‚fÌkî%(ykÆH®¡ŒÔ¹ÞštLbYĸécñ3ÎKÌÊ%ÿ§ }XÝ®Ôß.NÃÖ´‰úV05\¿ ¦éOé>š|ë9‹©¤Ýhþ<7ARijÏU×gh(羨s­À\³ˆ™ KRÆ“5Š„BRÖ¼Wø›¾€u î¤Ê]‰ÿÄY >¼1Ý9äÉùD¾Àæó«3:AaM¶š»Âj +!ø$±H’=BÞv©3—•Óé5ñ"øæPÛìX¿]G (‹‚ÎFùBÓì}UP}=FàÏ1!ˆ¿‚¤=ß4áT^ìh©|º•,“hù3¤z&àÖ¿¯4 3ËeDŸx~{¶ÁL#„ã¾ÓµÈ²=Šõxo’18Å4y°$YÙ^pì™Hcêl8lIŠ‘_ N“ºP–UÚŠŸÄÎà]üÀf»·±"þCùó3PÍÃÔ74Ò ÅîpáŠçäq’F5ÄyR_ô°„ÿVÄrœ^î0Àá·t#ƾ†³Õ­—×îxºyU`˜³Í¨í+ ¨Rp–i¹YGe?²WÒÅ̯õ«Ã +a„—z*‰ÇËñ1/žd + ž¦Ä»“’[Y€WÏÝz “E~OªššÄ[5S“.ÜHœÕùéHåƒ56bQš—÷³úÉŠ6NK c ˆ[Âõ•%ò. ³ƒ: K¯žš@‹´ø2(î2³YÙ¾üÄl¬‡›g©TÈ™µÙ6/kïS#"ê$5`îéÕׯHjXi¸aþy<;@E˜êšd&³± <8]‚­nDΣGh{YÅÎs+б¶{‘)Ë)[‡™­¬T‡y7”l¾{~<ò¥‹Cšx!buK §4Ùì{Æh4ЖCkoyE‘ïë†U”ûwÈËÔ[}¤—ƒÚ/§dËšâ^9á#.r¶Hz˱ð³Lj­xncM¼38v$s>?9‚¥*Þè¯I­ý?ŠsaÝC½œ/kéì?ÝP¢«‘&½×+ö ,_Ijß½Öîu®a\?Ñ)ýEŸÑ¼Í¤;OÊš'Iö]s´å±6iouƒInun…hÍ0U±‘‘÷—j@ú)×[nêÝEZç<#û{Q Àªy'F_±K…Z¦ë™ÀI2t²³…w>²¸ á­6e–þü¶&sÎqÜ¡&×ĬËüX’Fê³L°Ã ¶¢¬––&¸Þaɱ—*¹|ŒT6ÿßݪ®ð¶õûÝèÆäòÙ¬4Sx «‡T%Éê̺ç9wÔ ÜÙ¤‚zCæz .2EÛ^ɸ ¥s™|4¡ø't“Fæ}WGIH“üó`´þBC7hêWJ.<¿—/‚Û‹m˜rWÚ6–hûÃPOpKhÏ<›kº‰`Ó úydÕÃhçôãaN¢ £$DçÙ3,èWŽxdâ;'ôò6Iqe3#p¢8JE­Çת+ÓŸàD(”BχT{{û§MDBrŽ}kt€ÏŸÆ¼È8,+ýI‹î—–V«Önuè*˜ì±Á–³€w>ñNšœ‹ì®÷äk-ƒÊ„ƒÃíªÀÙ#.s6zv•Nù /WbêDZÐ5: 0š T’6Ñ)ÑßA:ðh4#D¿å+Û¥¼Bè×úVÚk#ç$K +íŽ4ôž¬K±Ã~KSÈk>çÑ•¡‹A2ª6l. JE°í±a7*rî AkÉÝ<¾ +>¾…\°‹a/£5ÉxÚË_#fä$äŽ`˜M _ÛìÊ!™âú®aû1\I”kö:ùÈÏô_Rî9º16÷!‡šÚű-'+Ë6Q^ܘX=<&)ë©#Tü®Èz 5ñçÀñ?jßÊü¨«SM~¡#Ý»L zµ~¹ R´ç•9 ô@{ø÷& +ÇŠBæc~×/Õ÷5öþgÊ:2ùRÜ|-Ù{ gmBfVÀTã±+±Þïb¶É$¬eyÿŽ­ñŠåÿ™ÞQ†ÕOxx0›,¨'˜WþºN™MFíêõtËN*%)ÉÀÿJp–tK`ƒáÅ ¨ŽâŠø(«eÑÏ„Մ¶Ä)?Љ:Û½çøº´PR¾vme¦½üÇI0¤¾Yºš’ÁìŠp!fͳÇQIÑÁOèÐ÷ã{[ô,Ñ?|=Þ!Ù °vèÎPÔÅÝE«.Ô¢åù“ å²&@¤8¶K…žì³k—s†÷Í j¢\¬é†AU"ðÚPUæ`ózù&ÆÏo +òaZ¢7¼ú™Òßz¸[ºíØJÐ÷X°CZ4½Ïõnšp†36”?ƒ\›øj]I³ä•BdqH5¢Ÿc1”I*yÝõ¢E–Î4µß³÷ERû†Ì\VþÇ*Âö—ëÔwr†gz˜Qq¶V׿’( ¸c®ù8«s{¢p·óVXá É¿¸Õ|Da»ÊL†pé%ÓÁé;دؿhª/±¨%ü% 3ò¥gæ‡11;F£‹ŒT¡/^áOØOb)[Ð'þÅØGÎydÄä“3Íïã+Ô@Pæò:‰]c‡½F®ö¶žÍÖG¼5@ÙÌ#ÚÙûúó*·~Ÿl(7V’u]¸iZ®EŒ9•kÃsb#‰®—¾ Z¡Ò>¡´ì–Fb^£ÌnK83%Ç¿3Á`-®~˜Ä†”ÈX/Çd‹¼°Ÿú+#¢¯ÌèßZZŒZA‰Cr®õâÕWè‘ÅÀd¡C«2 Oá×]"§šR$ÆdÃ0žî4›Œ¦€[ ”žüö }› hµå]_ã7ÙÉ J^_ŠˆÈ(qL;4TƒïY=L¹ö¼uF¼ú• ª­ÒŽö\›ãËTÄOk.»ÑA¸óvãq$ïÿír·â-ke6¾$J£ [V(Å2ºQêqՀʴ¦g%©âªÿZZ>j$SØKš]ï%Ô­¡¡p9YJ&Si VÓNCP½åÀ%îÚG6CÍB”Ûvæ0,ó–y‘è#ýq;jnùD"y½»3@t¿Pižx“fLìG#¥]Æ’ Ô![àÇ+æFÿúJ ÝÊ^œŽÈ(³§ÊT¾Xܨs÷6uÚÁõUðÖï‡èÜÜg¼èÇ´Ëî6ºe…Ç»Z]îHð`—‰ÍLÑ-·”Ð&8«{Ïçí|¶H=^¨`@vf(Ö¶×dh7Ѧþ4þó·ðÿ,GàJ Ë¿í`Šá8çüW[ä¡Ë'O¯Ù.÷ΓŠÕš¯1᪳Y7f0ãñ¢•€K¶GŒ-RçÒPNSjüb t¹‚A9°ú£ Ø® žüíoDÕ)— è»òŠÒU^ª£]OÛâóÝØø¹ÆhC˜ØŠÛ«DŸq-!#¥áì#õâÞÌÅ“°ñº2œZp^aÞ‘ÖX´d¾2÷>n¾“Ð`©Ÿ]9 <]4*m>Ön–Ê-Š?{PÉ<4ƒHö3‹Ïü®6´#™•Ï ~XøU +ÉA¥H‘Wmy•©¢Q1H:8‡ ý^³Î¢Ý +™±? ]Ç„ ¢E ›¢|EDe:ê—ü±ÐÈ+~(™GkçÞCPhlUCTu¸LE²à«o¿$ôG<˜ó¼Èk;ð¼/?˜g~£:Ø›"|L]ïAsÊC˜Rf˜ Vš™F éº°ßE×væzlÜjF3(9§èWå'pµ¤*û}”Ü5^g` x/cùѳòΟOZ©;kŸ¢íÀ´SJ»œÉÏC?ëH ‹›¯þÁ¿<ÍâK$aªŠ¦ŸŽG –ϱ’-Öt7¤€Ãi‘%·óÐU”^¼3s˜‹Ô# ‰÷N)|=W…ݾšZøHÑeh_w¬þyðI{¼B+W£nž,sZò "ÃÆÛJpqÁj$E„”6U¯äZÿëôþùÂPÄ}@žÌܯQ-ŧä/iµze"]Ɔ+K@òj*0?{$~9mc¸”3õöËLN5ÞTø[ÿ;í¥&ƒfµ[\åuC\©6ŠÔ7uf¿Ã Üt&õBBÜøCж}êQcåøõžé8µçyÌÔV/!ýøÜÄt±_»)¸«Â]Ït´çªb?^Š î-¡h¬¸_9Ì{ 1(›„¤]¬Aw›UÐ÷Á/Sz·ñèmM«IFÉסÁ û Y!•^éuu®{ÀòÈôžRa¾¯ª¡r›N›”¨ãñœ[,ú!Nö¨uúbÛœ=‡¤²Ú‚“bf(Tœ"Bua™=×6.5NÉ’®>hëÈ=qø+„ƒOõDŸ¦‡`™”캎$d>öº ‰“Ã;!qþs ßÌרΠœnˆã$oú¾riƒÃ¾'enn\öVc&;ÇCv)&Ý+ìn„ÏYöˆ&› LÒë%ÓËÓ@»žl²ùtXxfhÇï¶,ü¼ðn©¦÷†%+Óüàž–+Áž8kTÀ’²½ôr†*Û=E’âN 'öî²´Á5Ä*U CÀ‚Xk2©æ>O¨HŠ{àŸÇÖ èøU©ŸŽ‚Fo§…'²" +c¤+Ý'…î¦øU›jwÙæ:äþ0S/’Êk3Ë,JÔ/0öQÈM˜x?žééÖA0r½úÕú¬¼àî°À!¶Åq92“.€›¤&b¶JG›ú÷Äà'ÞIÞÌ·, Ð-Šƒeš&<¹å7Ŧmq!«ÌÓÌVw‡¤p'>ršÞ<®å’i—Ô±ŸƒsM _¬f‹›Ä[Ÿ¸]Ã"‹*·›i½z9†8‰ýe ¯ +€…Æi<µ¤åñÿ==>”¹cBj>¿BL®Ñ…âG‘Ý9vFæÂeÜÄö`ÍŸ‹(ÅévŒK}ÀÄéqIQC·Cƒhçëè–óY>iù÷8>ÉÐd4I„ûî$È…S‘®ïüNÏ©´ÜµOɸ/ å^ÒˆÈä¡@ÇIƒ³À+çÂå%µ©H õú¤ð Ù.–¤õÆÜ 1°QV0fïÏ"çEǼoÿq›þÜ­]N(•àíMàfxyJ|[ç‡7ÊÈ{Ù?‡q íI óè¸4 üF„äJ/¤G£´U~9Õ¢KsØx®Ñ¤Ix¸ÊYw (%ð¡÷ˆzè¦Å½a×@±M´íÀsiÖsd¢]DtöDØÖTCK9äý¥&Î`$r˜h3j«¸v™K»?k ‹.'²’T^†ñ½n_7#›WÑ™ÌB?dm…Mྐྵ`}.”sB8uý_¾ËªÿVáeÄ—¯„Úq]bÔy]¨@ÕÐJ×߇2ÐÆ_õ¢Œê{78Ázo+]Ï%8Ó;™c±L}÷äÉ!u¦!À3Àm€(̈o'DB —Ç:A&¹•Üký¼VÉÇF‡ä­àÇ-!mÍ’¿ˆ§8“œÓoœÝtÌÂÃÇY+ËËxQ«œ£ÌL>`ùV^¨¹ãÛhWw͇«˜¥}3÷ ÚÙ®#gAfÌéÔ/úIB%gG{æX½íçÛŠ2­Õ—jt'„}Ù1@‚$)^ƒœÓ%Ì¿ =§xÄ]™¶¶×ÊE3Ë`ºø¢Š¸@‹Æxï9ªÇï’Ñø³c# Ì%Wý9·(Î7‰ø“žóPu%ãø4œïv7k¡gÿõ‡8­C_Z5]  +\„ÍÊA‘8í „ïߘkæõss]c¤s ßWØüŠoŸ2ÝyJK…á˜.w²ù¼fìì×çÝjo¹à¹< ¶§ ð{²‡T¡ý÷•É~ß”GÇ޽ȯ„m¼nzÇ–¿‚©ù·Óñ°ð¤H*Fs”¾Ie9Ùy”2œJ5‚bǯA¢›z‘ì:A˜Ð¿BGhóëm!Î.#P&b¢#Ù–Ry,ÑbGM[©,Ê|#—;HIJ¼w;:T¤úHKJ[ȶ7có™-Ì_ +_Dâ!Uëÿ.Æg¤!E¥ñs66Þp×ëZˆÛ"ÊdéYw|n8Ë+±;¬[\ëf± +5"ø°ÔºlÍô ØûAy«½ÃÁÕ'S +´Å¿*wE§Šf¸†hu>$U»;ÓqMø„tTá`F&á¶ÎüÝà=ÅäÐL2I‚øz¡D(+º¬Î0ޝjË~Ò S#kš@ó v%cÝ$ö[õêÇÃÿæMók­Þ­6½9€©¬æô|¦$€›t—€‹Ï{]vSf¥tµ±i[ÜtB%h‹ÞÈ[K@ÃÁ?íÞZ4""‚÷Î#.Àku.åOqWÚ Z†ý•þƒ”J1 ö<¢ÈµIIðc9êm{¡)¨qüÂãèy‘”ä£5À&˜ñNÙ\P7p^t(ÌáAÌ^9N7£Æ5W1%¸´ß®oIâíWÙü«¿ÍÛÝ­,(€è%ÓQÇS4ïÚÑ3BÌ[L§í‹xÌ.t|{£àºŠÄ/"lå +ÃPÊó©+¥£º00p«àãÜ'Z.žÿ`/BƒÆC1êŸá±ÔñÁyÂñÉvRc”&AHîrÝÇ@*æ!±>æ§Þ˜`nüó¦‡V¯åîñnÑî'ÉÕAYRÚÔZ|oói¿‰M©BÈ$×̦ ›»)Á/—ŽZi]zX°b‰ñ’ 4¼ù!;bRr~ß?RR åµ»”̳khüï7¿z7ÁÝàåÞß µMÌøæÓñ Ävæ„ÇñçP¼‹±ï] R7-ȱ¾§ zai›¥Èýëg¡šy÷}GZ}•åÚ=•‚ÿ¹%ø iÄS¡a£šN( ¯)BDÜÌö„q{!S* +hÄð Äœ{è:o•§Šj>«»¶)Ð6Ú±œ,õÙø?M^TómÖ: X¢;æÀ-z³[Sôõh6’n%ÞÎæJ ‚—ÈýFüµµ'hZH—Ö6ç]—Î:µèøn ê)f tòÌí“˪¾!R"öåÊ/f¡41 +žLûj~%´!kÄ^ +Ò/ðy'nž0ÒNoVýª&áqQÏçš„p¤*åhàœ#01ÙßAA` m@0mŸ;õž'¯¯Ï-Où+ÿõy®´»69»«Áãý»ôØ7 +ÆêxÈE° ‹(jw +ëÞ‰.|£‰2‰ôõB¾Ñ& ÊUø8íœ_´gÃeå<ÔoÎ(Èò‡ä ñKDæúÔ–R›ÁMÜvÊmã»9)Áuj¡Œ¹¼ðCé?ѬÑÕ³éíéÑÈ,UøXèŸ.«ÿ-÷VöUú³ËÝrÜRúT³ÁQMq¸êaßP0¾â:2ãsV4:¦©÷~D”@¢»Ðhÿ¯Q‹ä”R¹­»î‡Çâôä©Ò‘ˆö¹Sî¯~k’»â™«‹šñ, UÔlˆHòî_®“3ç7&Òø†2ðnH©¹aøO+vÆ<üïØa£ô yO±R¹ŠhšÜ‹öeäéË~?®Â2 ï7Hh·5µÐm©á÷úzÊbð +®šÞ¨C¡¸.‹ëvÅÞ-¬å«úÚê²:°ñaž)Jp@ùw¶:¥¡ô¨ùÃD?_`‹¯eDÉ{ãýÛÑq¥qš›"ö–ž}GºJcܧhJFž»+߆©3ÓO>GËøÚצÃΚÓf;ö¶|)=±S8ùÔð¥ªóÚeÖ"ŠrhðØÿ°áùs[áøùl¨³*%ûýÙ*«®ëµC.Œ¾ËÊЄÈÅ {ZTu^u‹ö{6,° +¨ƒÄ­…:¢'l»@pöÙÒr‰yÊö=DØ2ã•ÇkvÕ¾Ty –¬‰ f”.dvu8Uîöl÷gÙb>Îô8è†xøf޲!í!Ù+'°U„¿ïþ2÷X”ú…F;îÃWÇ”\_ÏèJ\–¢ÕÙÌ$8³·ýãš:w˜=EîàYÑuoÝ4cgÔCX<2&„{¼¾7>Lâ%í¥1üiñÓ™3“D3ÿsÖÕ=³yü¯q¢IÄ.Q®-­t|c#|]%j·`0ôÛ†A <»¥ÜôŘäd&±¦ ¹“îÛù;‹Sžv©\Çœ·_îÕŒ{²w¶ë«°`³suñ jÞ1éü¨ü² ŽŒ8Uißdû‡‰Bó±Ém±x±qˆNZêÁh™ÔbËD^<\g*g?ãVñÔ,ódES1^ô Áq5 zFŒC)‘¤0“9[S‡r†J)ZµR¸ô§\*#Ø÷¥k ªhñP’°í³6ÚÎ=ÔØ8–Taî¬9tÆò'à@£€šÑÓ?âùåI¥…V²ì[å¢2ÄܫݺrùkèìˆÊA°ú§V‚È>(ÉCPòËB{D&<ì…fjò‹Gý¯Hô%P²)y´ lÔü$ûKp‡$}‰Ø¨ìàªÝj‡Ai`§éÓèw|ÜóNSõ÷Ý­‹³&„U½gÁeTµÝ?÷B^䊟K}™ÌÝŽM žCƒ™aÃo +ú±×yô§NFt§)ˆeÁÌVÀ(6`ö)ÑHp0šó‡ÑUòɨ8DW8NRSPFÉ¿þLtí@--7ýXĤa¶û’fÚa7ÜJaÖ]J~óãëC‹ ¬;Ô°ÑæÝ3³Bh«­’sD~köÜ; Ý&Ë$ÞCY.F‡°Ï0þ–¡Õ°g©h– +óº/+ŒÛæê´Ãêà/õDjó:oH\”„€í÷ÖÖ–5xêÐp¥1Q]bë•`Úìž nPc¬Ë6PPDÔ>MôM8`YÕaÞfvb ÔŽOŒMŠOXÉÂ¾ë ŠCUÚµÔÝîuêd샒%sßRgÜ‹fS©ô~Ãte~=#`[¦Ük ‚Ö°®ßÐ%P›s +,6¥’åÉ„³/Ú"q‰ÝR{Ëø8.»£ú¾kå…çJñ´›J꼪’Ô¯m1=uó¢9ø Ÿ>,}«a,ãMƒé'1Ábž;ýo “ýÑA×Ð<º:.¿„`Ë‹Ö_7Ò"«Ôƹ½²ÆÖ &À†k¼Ý +<ç]ý^”4ø2í«:»`$߯Æ1™¶}Ø0Úä/ùê[´¢õuÇî<&Vd‰o‹‡|µºf)ÈùÙ‡pýÊ£çúß/2a«Ö~õ†¦y…Æ>¼,€‡£XòIò'­@MilS5ðúG»! V•¬úµ«ºÒGµT~I@Ù=Q‹‚¯³<ã=Q4á*/}ý™þ¢'QdîÙç'-XãCÇPVæ–œržÅm Ü >rL]†lÊ߉¹*i}ÏEâ×c«¦ZÆ&`Ë˃#÷Þ´.¿Iú/æÀ×î<䪢mj–óùÃ8G™-ðŽúü=+O¿œE +vÕí¿AdÓù]‰g2\E@Ê?h»òÀá‘Vw^Bm4P¤Ï±YªS² "c—¢–Vy9›•Da§Kâ|)éû ¿^þãË^ç\ Ô>/iŸÃÙ‘šïZ<&ª‘s$º¬Á“Ç[¥¶îA|Q…CBÈšø1ŸN%k¦Ã©á=w΄X•Œ Åáh8)$T¨¸¤³‡œ’ëßÕš~é ‘ª‡çNxà"ù8ÎØ>%Íø Eù±VÂÆ'Ú‚¹÷1\¾é•­í»Â ê‘ÎᤊÎ0ø pn—Èô§‡Ä•âàZ’2:ö•lÏÍp‰]ˆ r§4Óqy¼‚ŠËçñÁhõ +ä¨OXØ9ažl"Ù4±pÚÌ?+bIP;mTt˜âÏSbÕÙ†Îî½)}Äè’âæ©_|ê— Ðx“Ýiof@À½ÅQ´XVÅ16¼y.¥4câg™Š0šýÒBÇIÌXɈ5­K ä*¹D¦Š}õ}„­ðM<¨UÕF¯^aI6†üqaŒÓò»¡1$!ûÂÚV;ÔO“¬Ä1RßF´}öˬzrP7Tð.¤/d· +>›?–ðŒzyq”k¥”F¿WþR±LÚsŸŽDQ_\óóŪ•R[\®ÓTÀ56§ÈN'KOퟡ¡Itƾu¨-㸯)Õ^'mdbŸM”>ª€>ƬI¬f×äóÌÒâ ¨Á²P¿ø3ÄN¹9j“âŠk +J…rý¢fr°uœœY%:mU/¶wÔÞñ8QŒ8\?JfŽyKçžöŠÛG f» 2³á->º¸È’¶UN’:Ç(w5œÑ¡QBž¼óøöÑ15xqð]QpÉÚ°6ÿ¥Ê?FûœƒZzþí0\Ú¼„Aùþ£ålŽ€Žî¥oˆ$Y°ßû~­~顽z¸ +†J.•Þ„oЉ3z¶«?ÑF;›á°ÿ2 Árß;ñÆ™GÙ<µË3—I}¥ÆR Þøæû + +›¹Ä×0¼ÎYí¦m¦Ž óò!Õy.‰ê‰M¼F4 v0²Ô3 ¾÷‡yJSˆý¡ËG™M3ÂX6ªCÄõÀᤆŽF”·—ü‡GUÎívŒ·ŒŽËJçÉîX(ß‚¨¿… ï´ßô;ì_ʽpY.Àú#ý³—ë¯$S3çé2_~ô‹’‘>Bôu;‹ºü[ÿ¬Ã§*Î3PÀQ»ÁŸùƒ„íüáU~›äÆrèbê ßd”‹šNa„ÕêŽô.à}õÙ’D=a‡5Fµ›"(Hc…pº»ÑxÁnÅÛÏD€hëšÕò“Ì™e¦6Ô°°ÜJBýuf” ²w(¦$¥Cptáâ:K‘cS‚TAܯ6ñ=–´‚½ò9‘@E‹"´tô¾[dvË‹rAõÇåñ[]” ϽøQŠË¨6ˆ·àgIGÇò‘$r{°óô?ĵ¸2¸ș죢4(¦øº h C Ú-SEPmèMpˆdÊO,d¬Ëc.}F¡+d€’C5HÑÝ‚ÁÑXó´LY^_k$¦f@Àš?×+\Gù¼^Mæ9(x;œ»¨ƒ,Àû|acB V€Áù[ïû3ûc‚Vr9×>Ímùf¬Û±z;jFǶIï +ói”©J³Ï¨œ€éúňîy”鸻FüÌY',?®fqñïþ¥ø*‹õ7,Þþ€z¾/’1õÍñÿd"è(aÖh·åg¤¶¸{Ÿld»i… =;ì Q™-Íõy¦ó˜((†‘ÿu‰s¡GbukÁùé³’ kÎû¯h™¥òh+-ïO⇤eÅ~¾[žµm•çÅŠ:¦ÃÅP +Ôï16™ +C[€ðÍHñW_&ï þÒ¼BKÀÉÚd˜Ÿ¨Ó?‡zËzæOÉæWÿÝÆÍ“0Ç…X¨>· ÿúñÚ?—D|Ð¥=f"êŒàÈ-?ÕW÷¶mÄgý°M×A$Ú;ÅüLC)%Ìë”_Öͼî´ç`CH +T÷ÝÉ€BÓuß© òeuQ6c+9åÌY«± u,ÆLáŠ'(Ó$7è( q ÀÏO=ßšÇõ<ÿ”ÑßëY)3há­Øß1’m_’}Y‚0U€ÔFžt<ÂJFy¢f¼;<‚2ßyÑ'2cXÛMšã;±âè øgñëÁ$¥zn^mm‰%å@ŽY;ý|äæyè.89»(–åÖٟš¸Z*aö?6P¡r8é?©1`îŽ4™‰ZmÔY–u’Ø/ˆ¨ó[÷™¿f‰:fþZƼ¹6UB¨’öêCù¬ß•¶¼0ÿš…¨¥—0ZºÝBœäÌ]@^ü¾yðËWq1ÂÁX‚·Høè}ÕZP$˜×èapÞ~aVϳÌ< ?£É²m!ô§CÖZÕ"}›ò$¿pÝä÷Á )ºaÞ©g÷ýàÉ{åÏ¥ì-gþá£Ø`îàÿËÄ_Lž–˜Ds»Ögº@¯aÚ`©Ûf£XÅxt=„ÖBšÆqSéδ·+ˆ \2>¡ò´ƒƒai,ßNqŠx^µüÅ…$ö¯k8r?÷GË–}M€ýŠòU"z–ƒ¯‡2JÇ, ¯“yŒ¾‰Ó)9_èÒp´%ÆÏ7üÀ•Š‘Õ~a&þ¡"zA»Ë¥~¢eÅb( ªÏO@°?¨~ÙþâY^Ü«YÉÜmܧYèÉpb·±’¹N‚2‹(ï)î‘Üõ‡Y‰ûzŒ +vãÞL)&ôàòÆÝ/hªEï±GRÜDÒâ¡íµÈ²ø\<l}œÔü ¬†eÔþýZ!šübIy\:@ =‰Kò{øW ã9phF¢ØÀëk´=î?Œ VÐ÷ü¾èU[“}ÛaæRÞäÏp¬›oÈ´{k€Õ³Pì ‘§Î(¯¥ò†ë-¯y3Õ8ÄK_Ìù5¡Xõ“‹ÚÞ(Óuî³Q ûë:5ÚA¹ãâ¸%mô¶\«´6jGG¼ÈÛÞÔµÞ§L?J“ý¸{«fE»Ö2 5j16üÝžŠ¹[f¦æµŽøWžÓWl´”dÏ+é*¹Ç0óa…³bØÕ"å— ùôóÅmqEÖ/(–¬+qÏÆ…ü4-§@³ìãÛ£L„î¢iÒéeÙÖDo²üÖ§öþyùÁ&Ï`81йÝÌ’‚Åù¨Y ÿkO¨"/tWp MÕ•Ÿ—©CMä¿6*¹WÈ7µ*ÉÉ´^Z‚¼Ö'—€¸}æPÊbbÂ0r9áõŠæh5‘ ߺ{» ó…üZäÇ&Ÿ×Ô& ;ÝeñM´&æå¾dHÏûd‘ìÖ+…ù€6EBœ2†MP­Ûê÷¡Ê{-2’*î ¿9¢Ô’ORxu”ÁŒ€Y‚K@œ"~ØÔ©Øç#JíÔÉY-ÝcI…ÞHµoôÊ÷Žø8{v¾éŠŽ"ª«ÉJ^[”Ðnõ95BÛKJ[֨ץ=핇Öд mRÎðg‰Š‹Su»IÔ©Ñ>#7¶é÷¥Â†sJTF5ï¤.ÄŽ”Ž…9kM×ÐFaj±I3™Ö[6¾ó \Å©S¹Á?Ïyy?”Zw4lú½'!¶}çÒìRèL9âÐCKÆx"x tÚŸG«ÄêpHj)0„Lö/Bó›Ã¦%»¬)¨ 2³~`2õxDüt2RM^ÚáTÀ¤!˜mÆ—^TáPaâ:Ãÿ-K€$‰½Æ•È„i­æÈl„e+³ã ½LP¬v‚ñ0ê{L%¥wÍ·ÚU¹>(sá‘æ¸«½Äi½ +0žÂb®×ý-Z¿ÒýÉAН#E}NMÁÁ<Ȫܒc=¦7ÜEÙ ¤´u²ÿN"%Ï—í'Ù¾wÕäìTMc·°Þ|.”ÝŠ‡ªcêØY°í²©Ê%vþÄ,“¥ Ç}mmgÍŸN­Ý‘çhò_Ø'¿ð–ÕH­ÖlÀX p:?‡"±Lâ†!^e¥‹i–·¥GÔy–lÄŒ+*NµF/Q’^H"PÒEõ”U´!ÖŠJFËdØB2ÄØì„v/©€è¦ëŒj‡èIYÅjÇøÄ-©ìœl§ånä¶Ê• Ǹn¶0""“mSó{ +n}ö!joûŽ¿D,8¾'x &­ï ‡n-›‹v5nLÂ?-Þ„É5³sÎðéJÑ‚~¢3åžÝ ”YÁçæ«•?›¦¥Hsò¡¬˜'º¤s:A{Þ9’(ÓÀ­t…„“éçh1š`›ŸÌrJãIJ;tBð®nïZFŸÄÝáÁ÷Ù4U3Ea·}ºÇ½¸e`ŽÄGÇO5¸j®Òüí<$ÖªÁŒà6 +€¦¥q'ÆT)°âè9OahKKc¢Ò»Á²ÀpÓßL(™{SG«ópm™'_}¢!çX“Viÿ»‘ÏkðXƒ´ÿ†ë¥å ÙY6‘0-–ÅêžVÂÔ¼Ïs‰˳ø5wG|Fkñ…'<¡+nùÔ&ßÇGR}3êçÁ CŠm%üaJköPiÀn¦z¤†gw³v~XS0¿'äÁÙYV€é™ü³ZÃËCWô|£yÌ4IʺN) wOífCÆ_ xYT;ܧq^ÎÁxîòï|>7Sõ€Âb+òE:a2<æLlùn§mÁ¿Ÿë·xã4NmÃÀ Oh@"°s¡ªÕÆx™Ž¸X/åõD„ùÓN …ƒÿ7? w±×¾ˆ KäÓÆ«°­d)5MW„..¯ Sì2“q´tÆ}Cv·}Œùúý6i}úFMÊh5Ø.}ŽrX›ô)Ç1ce]­9Ýg}žs/¾Bfî4Uº–íV¼Àlµ>9hß½ÊnÄ—¹ß‘&¼reÚ°í|^¼–?è©ê½Ì9î–г>wKUy¾ý?äBEæ­L¬œ%þ–*´\¿ôôÎþz*MLöÚ+ÅãÝgh¥rkâÌxì:ËUQac©¹ìsõGTÀŠi¹rî_éq‡XlJ1õuü?ü/3ŠÎåÃt`v L¼kcô¬àf”ËÇzìÑT¨>Öpý†^ÊonFXMųdŒ˜¢Î“£ CuAé³0u” Uì½äÀ-•ñJ ¾<±¥Ø,2qÞ1÷½ÿ­±îD½ñY9¥"jªÉåû’A>,=ÅcH»­Ä0;¾õуô%3ïNξ 8eäôw;ßµ+D¸úñ‰,ÁL©ÙñÑa@$–¾ SêÞp4CÂÐÃs³#;d¾,#êˆ?÷Ïd‰Ù•0§àÉ~BM>rßyh™Ç3 Y$)_ñ#|tYó•Q7¶'­VëÿW êùiÀN#Ÿ%iɰ|#UP=LY l§ µõÄ+›[QAó!¨2XɇA>¸À¦0VÛ“Æ`Ÿ4 ¤›à^ ëËi„?—´ +ÀνnaÁ½wæ ¢±äü¾b4£ö¯÷«âP l@CÕuν ”P^˳«“ù.GZ?÷¦´êÌ*X(ÖÙìN{;…ò­%ùýŒ9 ê9¬\+-{¬ê†m&p9±Â3‹´‡Œ¬Ò=;ו€t¦z!AGÄ<_Ø,DÚ&ÙÚWí‹Ã¯Mç©Nµ¹4R’ÿó¶/ÓbD©Õ†bl(æÈÁŒËÁù/ôé€]52»ýÍo¥ÃŽþ–Õz|œÎˆÓ¡d#d%Ø0—ÃÀù†~(án,tð¢Ë\û°ÈLÔžµ¿áÖ™™oòxKl ž»–7$`hõÎܲ»¥cØMT;w€ãü@ØzëFUQ^B÷¸:‡-Q ˦mÛ¶mÛ¶mÛ¶íÌ›¶mÛ¶m³«Õ«×û†˜DÄÁîW¾×—ˆFŸ„ G|¬•õ`x_0PÀ¾Å­å0Q+­?xñ¾À(C § +vTvž~š%@,ºã¹¶“à9¸åÿê—Ù/”\ÄûÙˆ`½ªà¤^VÃŽ\Ò±)‡i£gLQy¨/}·¼>†ßû…}ÇmÓdŠ”õwtÍ"­ æí5!8M=4±tè“¢%¾‚˜KÆõåUˆ«Q]x ÚÍbó¸ «:¸ +ólŠBr:·“81ïgÐè+U2ñÕOx†qgm‚ÑÎÌTâcüFwl è¯ )sHW[®`hiÊ'’A—F,Aøx?ˆç¸to4á +¹=ˆ†Žû4‹Ôùoi€J„F­¦›·';`,’¢¯ÏÃ?Ü\êüjònÛ«ŒbO™9äÇsÄ'¯"åüeAö?mkL±4™íýeÀÒójm?tPœžÒnVË©¨¶ºë“u\¬¡Ébé_­Öˆ9Ý'ã¶é"Y¤«|é®3yè—ÎTÿðº#sš“B*0žNFPfNè”3¾ßüt¤˜’fÊI=1˜0M ò}Ì3“X–€ÞQAƒ†z +môq÷ î6üNüF +µ"¦ARðGÞÕ‘d•‹VlwƒUqW.E‡kmíc`F×!@1Rø +Ó®ò¹´ôCƒäÈ™oo.Èÿ5\GÄÆ6¶ZáýùѸZt¯U¢7ü„\}mÁƒ4;Cz>ûåÀe{¼ÿC˜€wÆüWÚuNæÑ˜Ûp/‘tggbSW‹hÁ)Ùç´åÒ«˜Õô&›ÅL¸ze¿ˆ Ý1$eØÒ”IÕ€û™ñ3¹@æ]í@¶®Û9p?õÀƒ ÀÉGJZbYÖ$ö•OêxeQl¹Í– 0îÃíGw áï°œ®™3À½O=)ÖŽRd)ð +ïx¯‡ 9%b¯'+hêéöpHo,»T˜“÷Roº­¤qî²}Ëy.ÿ™²ÄÇɸn§ßøKc3ƒÑ‡ ²"ñ¡­ûVÙ01A·S“žøÏJçÖ\ +"æïïjàƒÚ‹/÷º=Þâpо2õëdö”|Å7HY[OKÿ…{¶kˆw“,Q¾ù~ö¯»«…Ø•eŸc‚ÔùÄ„*çØÎµî¾ó–ï X+‹XW½Ê¿›Ô_¯Îœhrô”E6õ˜¿^‹Rû¨ù¶©{ö¸¥Â–)ç:©à¡ªéO•¸;×ûG€gþ1q;Êf¬åКÕ^Cu$þ}mÃ`ìü~Oêfxï-1Þ‹ê¬ö¸tÒõ¥ÊÚ z§Gü;,w8§±´J>„ج+ÂñF‚fÖ'¹Ü¤Ê4e€Èšx–uŠ~ -¯‰¶1vÆr Þø;EQˆŒìѵ¡œ¡NKÂüüÂvΣ)«dƒw3hÉ«ån{ᱸĢýú¡“Ùòð¿{ 8™òb_CMÞcâ˱¯_pÉôê—îê¯LÚ‰.Œ?ssœ |ðH'¦âƱ½ÌŸ(–ºŠ¦ÂJ¨ööO_(7éºlN¥÷G¿ Wࣜ‚¶O~ò¹©!1þÕs ˆöF»ÖÏ­?mÇË t3[š©ynº³Ç êg/`ö¢ÔžqËê«oX¢kd.ÄÇ4"Fݺ¯-Ö”#š¥NÓàÒ‰ +åþË=þJ%5hâ¥íüŸKÑ $y øè‘ÃbZ9¦÷cY®Ë²R®ß!Ek Û‘ŒS´fûÝ:*¿>ßiãöò9·§‘B$Ì†Ì ßþZT‘m/Nu—+‹ÁÕ´µÉB6:è"kâÅ쉢 TŒ,:æQ9ÑYw+GlšªqÂÌÑ_ìèÞ>O9u%eè…²‡Y¥QÖ`þÝ•Ü$×´ŒÚ¸§<æ£ýV°ŽgòÑ'5»¸ä‘Â`ç[yâ­±<¡¯û8R¯ +üÝHò i‹Œ‡°ñ¼þSVÁ¿a¾çÌ›\ýÐní¦‘P¸@ž×?G(Ýq°Ó¯;Ñ6åDñDÉu5§|Ëâ%–µ©IÛr›ê'û?† +Çåoénê/Æ_{sK°h½~–x^UEçöäEàèCÑ +V´HËæö¼QçEÂäV+9|ç{çz&}†UòSe¸o&Õ'Io€>‹‡â"¶ãî7º!‘R_…ý™K¾“²'y‡ôË +±sok2&Q¹=;.Ρ‡`Ã.šEÅ•Á/Ž&¼fÀ<Éú[˜Ž­™xcIä¤0ÅÚ¬"·30•8zËÆmã¶9gY;Ò?Zc°UqÄ2Ó<.œ#¦…,ò-¶SÊ€Éü긪ȳK-Lì.•ƾGÿ RžÍ´‡žUÍB^ä`4šë«<)GÈÎn¹‡·½{ÔÍj:V0ڎņ@PÇKÀeÂòñ÷ñÊ\\cö…™ÁOZh&Kú[¨EGCVb‘¸ 0yø&úGµ°jbmÅÒCvv’j‘²öBaŒ¤IN»¦¡ŸAÿéU…ï,UçýrÎöí$1dQš]‡q¡ÛÇèî´†ˆor@ƒ¯Bs, ÝÚ“X2Ì;–zÞÌz1û¢DC”qoP–NżE9[ î!Lî‚–máó0g1\,ì=¡S`Wå­}Ø#:ÃýùîhÍÃX–Óx…ªUÁâ꽤‰KÈ‚¬4 +Y³:ª®ŠÝ1, ZòOóšŸå¬Ò=Ñ'þ*çì93ÇFj¨êkÚÄDÈÃs˜þn´ãdD?€t3÷·fX¬,ÀäÐÈØ’ï8'mƒ¹M#cw Ývh  í?U‹°.¡€(©/ªs÷¤-Êvü×èÒÝíV½1¢6ÝÈÂ^О®G6ù4'µ—Ú?ÅÜ«ùk`¤rfÉc$°¡«i'aúpD @ŒC™´\ô^¿hp~?Ò&ÙRªÆÑÍ-ÐËCÑ üS@k-¶È¡*ŠÚÙyóï6®’"%¿9…»æþ Êää ñgÃV/Î{à°„ã-úz† ×ïçzÈ‹\9t#4b¸S(v$j¨­dMÄ,MŽf±7³6R;ÉÂØá*z)]wàøêÔ+¨áÂó^$£tÌþê.LÝDTú²ZÏ6;Ò¸Äò ÊÐÏ Š^TÁÅ<¬çå~#¿Ú°ÏÒUFðÒ‚÷A£A Å_A#Ñ9Ûfc´;%@QvˆB¶—ÎìŸ'%Ò¥ ¶%‰Âw„òÌP4¦& -\qþ–ÕöDfÞ ËïZ£å-ù•A†l~P˜.üáD ;˜7/Iå›Ý@öj j¾‰Ìøz‚ç<è é*~=V¦¶ÀɈ~wà¶Ã~óróg쿚·>ש:Y®h¬‰±ÃžÏéh°ØA‰0÷¾­V:?9µýÌåBmƒ<sñ@Ë Ïµ°èþž¥jCnäñ6dj7é9 hgén‘Éq#ßF½ªù#%+!—$騰‹€4bôWw/à_ìd+¶#FIÕ½KG1€ Rárÿ¶PJûP Ý‘Ü,œY¥`gKØO ð[^v$uE’Ôïdò\\”DdÑ'¬/ƒ7Ú£#‹HSÚ3”j=ñ$õvßïwÝÔ +,m„xùåÎó™„6û“Œ…¬!]¯Þ­¾í\=Ð+ý—^m‰mÐ¥¸þè`œ˜PŠY鿬€IqKéG˜?´Ö'ÇÕ´ºS¨ìm™ ›\ÓiÄB"³È1¡öÐSrò"D“”–*±uü‘Lsª‘ý¦Ágš;¾ÐC&zh“·ò¼ö¥0fþõ×Ò ö]Kég‘ÇØÂqjkˆq䑆¯¯2òöî­ê(}‹Ï=M'2nz(Æ„bîi”Q›3©ZƒÕo8Á5’×'NàíÂë2ë$Êâ^¿¤Rss<5Fß?¿BÁѽšêC–Zpƒ _©"²9“á_*?¡‘[»‹M·.aÆŠV†h‘1Ý<ÿÅ£ç Q¿(´YÀ§úÎY®GÙòYtÑÄBá$f>TÁ@µÛk8+víþpÚlßGßQ9Î9ßßÎ奆WÚ±"Â Ü îaÊöOÛ¿aßäîæUeÑ¢¡šošƒt)JH²y:’HPƒ`ÝçÏW«›2]1\ŠBÑ)æÕýW²¤­‘j¶@‡R^ÑÙßcZzDÚ7&Rû)ÖWùøÛ ¤wBnh,Åv/8fÇÚ¼¡=r”àÿò¼#¬&ýhرü]à#‚Ž«è.·¼ÎËkA8j†tý&¦_ÑïÝd5DT×yù¬Ú!dðgÁ ú6Çcéá‚ +_ŽsÓDõ|Ø]§ŽÏýeãÃÖœ“NrçK!Š3cÈ3δα0_*@.‘H"Ïá,a…Ìë=.r¾˜;ØØéÿÊu}´4¤µtÚд¼±[ÈÜÌCx -mà!6¦Ô=Úá¼ +5 ¨ÕÏ¥xrm\çÍ#:LWŒ|]]¨5§m´eÿ묃5ªôJ:DPý›èamoŒøœ¾[•èá¼¹ |S«s Ò„qÉ8écó¯Qäƒöˆ‘ò|ÄV^øaÏ´± Ææyo DI®Ý.\4/ß¹ù>—Emɬ1àÍõœ¶5ˆ@Kžz* +VUª™zÌJ…º§03zKx•™bµäerêm¹J4?‰5éI‚‹Û!û¨#ªûRµ+õ»ø7Üï*þª?„|.‡h ”›^žÁ¼o¿ÜJ(èº: +›F­ãÏ™[2zF±#³¬ØR¸Š’eŒjŠåÏ6Ï;¥ç¾A3ñZì%(nÀºièŽ o³ÙUÒƒi’eÙSúX¨ ”ÍÓüÓ‘Kg^ÃÀÆÃi]šðÇ·w@WŒÆ@ªJ\5µccÁÒ¨ÊCš-†[à¼}\±µRN¼}™P¦ÏüÍŠ‚ñdˆt­„ã‘»ÈX¸”xv÷L²íöÕGi€Í5:+¿ò;`ÄöAQûhùÍFøx1¥Á‚YvAÀl¯ûÑ91ŒÙÄ ~kN@ fÒ…TH»aÊóöª”•SÛ5,]éô1—´;ÖPbÇ#¥Ê@†¦#ùÚ£iÑW:›fñ‰Å[—¯oÚÆe޼e>®õo¡êÀè&Ük)¦•ÒÀª±{›Ç:¸n”º‡ùf§w3Ü F{f[Ò2LƪXË~m™7ëÆ+n±¢@ò}…ãð5ÓŠó„[syï?¡EFâíµ²YV`VÏŒ±–TÚÔ7m®^a쟘1†‰­»´9Ú G ƒsµ™zf®¾F{|LÀ¬*éû’¢ñ^ssçû—)gN÷ÆÄÑSc€”ö¬i`Õ±ß{öCœÛÏœµwLcÛæ­‘Xè­(E“9ö‹œ{ŠY­ €óÞ–&ÖNWéÎÚâõû~M΢0Ž!ù×ÞLįalºÚÀÁM@ª‹´“Ÿ¬«Ê cŽ?N-Gúœ]æ„ù5ÝøN1Ä¿E¶"Õ°šðµ$:µ™p3ÇšCñéc|dRj­ãl$V¤+סý¤xŸIçþ×ßÒ…ìêïûó –¾aýÊÞQR%V’µü.;\5W±{Í”·AïòÆ ÷ùøÕÿî¾NB&}—³*_c½ž…ÓOI^äãƒíSéõëö¸O—«°üÓ:‘®?\›¾'Ê_bÞ€á½b&$Ùšázݶž¿³~–›6Wóèž_«¡U Œ|J6L ¹µŠ‚rVñ·dÕ¿/Žˆ ä°l¡r’¢õ±ÉÉò,"™ð_¥[×R +ë %©_šó±×jA¯bP7•±B0qç(¥Ý(EìÒ#¾åeª ²§öG9buÞV´]”«5ÛÇwcAyªÀDº ª_¸pqç‹BA£øS©å@„™óe |£¬»Ô +žçs."o^ø’“fS¨Ôk˜-bÓ ‘_5]0^€a¼²ž~Z<,éÛB3ãšêÇ7W³>P1öŽsT×Üà„Ñäa¦ì“úòeqÛÁtúË÷³ P´PJ-ÿ(´K¼ñC _â‡råx ºAÔd…{Œ®YQZ#bJ°S Ø6qrbÖÅÇvBÏŸ³‘L8ØŽìO©[x”IÙ8‘h5|ýGùÁyó6 .ô4„V¾¼T+hIߣ°Á¶ÿ »2ua> +*´¬c­¬oÞYk¶Z:1 ܉Õœ…ñ¶-,zÚù|†' (E\–>l.PÌï¡’µÛ-ƾO6~–p¡õGƒxa ⥹² ë~&¡¦¤dÞ“çÛ,^·Á‹ü ·ëÈSƒ®|l¥8{ëN¨&‰M|:ˆAó;õÑÈgúò(H¡-$k£(©Mz‘ʧHiÂ,e ²˜ÔÀGCÏÿ|º¸²¸!îòM·BOµ/þ°dÆS‹ú¤Âáܺß? —Ìüâ}Ôôpœèz*þâçkΞ@šc‚gfž°sFAGEÁ(?ÑÏËûù#(q3L—Švéb ùR øa'#Zìê^ 4à¡ûs·ú›áA6¹°±Eƒ2lòÈIëy¨zkj¶òºkq©|DÑÚd©ç®Ê"þ Ó9R¦¡þ6wòg+ŒÀ”1ß…þ²Q”%.+yPò—Ÿr‰iíV÷ØØóV{@{iЇQ÷C!¶aH®·…˜]•púñ“êšlÚZšÑËhÜû§Ã“-#™½öÊ£*Ø£oæš.]>7¬ò;ùˆúíFN¬ÀmÕýùÄþ™­±Œ]ÎǪý”ì4[8‚§ê_f?¼‹;Ú¤©žÝHÓÎ}r5Ðb~2{K†¿v6ðù‰×#Õ¼4ÌÏ‹¢eå–0òHzÁÅ{{þE” ~˜{E6¦O%7Æ~¦S<þß,tÏß!uÔõÀFsZµ»0âÍ6»Ò{¤t§Êá”3–z®ÓÌ1 ØÐçDØÅŽã8J©ñfe•S;#@ÀL<×îwe5“{{Æ—e¨”/ƒ'1—­çÞr´Õ%Þý|»Ò‰¨Þ­v콃©pÇô-ÇËY@ ‰e ²;‰¤%v¹´^ÉŸ±/Ô$£ WÚ1•¤›Ýð‡`?§uSmˆØÂ_WûixŸ%Šæö˜ªçb.ÆZ÷5€“ò“½ jópï$Ú¸Ö“ !¡ž;G³#¤ÿÿßXT§=#”Îá, ô/І{Îê +ÅA:×ÿß­+’tËš)Ÿê1Û\ÿ,ÿ¿éºU`¡ò:ç>RÏ^pÔyàœˆ:½Th‚)ß§™æÁ<rÑžÞn¶Ý3ùç+|CÂ81w@ ¯üÁæÙ‰Ñ6)7 KñÃc? ŒÜ”ó䪲Âñî[xBl¨åŸj(\ýŒrŽ,½šÒ¦k–]üLyÕr·7\¤+Øu Ó10B(d*­µñ‘¤In«ß2@±ëÿsº„b/ MkˆTÞеXZqzCæpØÒiÜI@ !÷ßS‹*B‚…3Œ€Ú,„‘¿Òðš†X{5¤¬˜²q݇¡À9Lm7¡ò¯¥ˆþþƒ{,±Ö J‘P]að`Zé¬O®8.u}ËŒúÑ2YMà't}¾ Ùç±îŸ­;ºˆUMØÐßoc_ÞR ©¯ú_tÌžÃcNæè¸•G»,¶ƒ®á0EŸ}² ZKv9àöÒÔ58Q€uå[‘¢ šæË ŒFL¬p<±2…Mž›×«jj«+RG|¼YÈ>Úè#Wò ó¿Í¶wæ°#£kŸzƒÑo°öô72y¿YtÏÝ_ÐFä‰[^/‹œz—¾ú Ð9l¢ê+kAÝÖÍwfJª³3IÉÿv4°XB8öl¸(•Bžÿ,™h…Æ“‹!Œ}xf_K‘,QLùý$ ͺǃÈYád7¶kAœjÃÆfߣce#3HêftŸs‡G‚õ†)vÙ*»ºõ&79D¶N0wyÛàOE…z^*M?vÚ,è ¥ÅE°¤ýæíúF> =5Oe³‡lUxóeihGy1¿²wpJïaY‡!ÀpŽ.Yÿƒi$##:3ÒÄðùÀzÆ_ÔÊò™,–ŽÒfR³¹íÊþÀÓá—ƒÒÏ'²S_ ØÓˆ}ü3ýÂ’Ò³‰ùNËG'þ¶÷ú¢±áëá™K\èC免ßÖFÛ¢0¯ø¶ç¶-]öáã… šÍﬞ“Ýj‘œ¼«Zù±ÊPˆÉf–Þñû'£½a*è Hµ ‡z/z‹¨z~‘ÌJL¡Ú%éÜ!}/¬5î†Ö?h¡:BQ6ÚÖ…*DþQÏ©PÖ.áÌó 4}ô¢aWCvrO€¤GŸ¦sꆄ\Ž…n! cI«3Å9ˆƒ›‚¯¾¯]Ld +ß3”¿? Ìß_ÓÌt/@ +F}ž6Ū…KŸ ˆø›óVñW‡ÝºÁB©»Éà'…òH¹›B,½I¶4û௽câŒâ>FAÛÝ–—@†@™°oÞæ'åÈv'<)I«Öøñ¢Í òm½|ˆCš!Ó‹àsrê(=ÃΙ¤N2[ÿoA²£»ê¯›ÖãÂñ¸œ½ÞÍógs-3Wº¥;5(­UÓ °frÑJÌÒ¾x¦ ±9E]”†bp@âO"„?¸*½#OºkÜÐ?piU_íÛm¼¶¸Ù +*KÙ^9(øcR*2’<GåQåGÜ·‘„u•§ßÁ̃/òØ{ŧY;ýè£ÅoØ _ªˆ™Éð~ŽÙ‹0*¾»Ny£èZ­ö]Qa×*×—×y—©kVË\ð–%®ÂrÍ–QR:ùÊ‘I*¼”’cŸƒ¦šS¸¼¿”ãôónòQ7Ótμp›­\U ²_~&Ç6ʳà¨VÊ*ìÛóì >—ì×HK^:&˜—P®øI# + ÆT®llÇ]ŠºLôY «"Š9$XÇX6k„œ¬žŸœj‹ºÛú½J‰ïþµy°}úp"Ýx UFOÁ/޽—Ü +s8½yÍ£)Òç‰eø¤Ôí‚çm»äB•ú£ É«ñê»ÙÒYx]g‰&%Ÿ7•)ÄPjMëâö|ký`KçKF—9žú?„Û¦L´#³õaè[2Œ>:)©[»×ë½ÝÁüÆ€kÓ‘S5 3D¶ þ +—1Ýš¤Rr/(9!£ûd ÷KŠôïÞ@v¬ú§ÄËsoÜô…ëQœ³`Gæ°F…•4ÿM[¬!mž$¤Á'QÏÆPúÉAXBxím¢ Ê—þiãyOÖqJÒ‰yê0S~7—\]«€í‰â¯å«áÛŒpÇ *¹”àv|2$fÏM\8FH">+ q«¼Ô¢/j»$À^¶Z5Š®–±9®®-òôœÆ© XMÐFŠ»9ÐþáG«°#Eo{GªxÚ.q? +—Ñå~ÐÅ? ¥Ùž â>)Bú aÅqAÁt Y¯>™ÿâ;fbÀzÒ¯X×H™‰1îà¯CZý–xKY Á.„W«#H‡ýœPß óú™µ”»AéÒí§^`°üÕóÜN"µͲOi´ûM‰ïz‚×t`æ|úˆcWØ ‹Å5Ț¾Ý·¦W£¥ DÃBI’·,c€þKZ8PX€‡qéÿY”¦k¡÷@S#¼ŽjPQ>rò›Ñ\·µ08Üžl{i«ÁÏë¾+n|Ã7‹ýìÊÖý¤ŸšÆÉÊÆ=šÛâ£=ƒÍ¤e«ôÓáhõgij ígœßtçRýi óU™“UªD±¬Ú:3 ¢°°sŸþ†Ãq’VÆ´»ÊÕ +¿Æ àVˆ8ëqZ¢‡Ÿ£óXb¾3îýevZ–y¦®ö˜†LYJòô ¢Y¤¯Šzº[N·š>dœ%9›‰Û4K¢^¾ÿ=wÆe@‡C3Ì;Yøó«$ÂíOL˜Kãf—…|åù"eo‚ÿŽTÈýëÅÉ×VC\Æ~Wt"|Ÿ·«\æ6º”Œ4 ‡<„äPÏg‚1ç®D¿-àÿÞ„'0- ׄsiÂ7kÓbÎN^“Ñ· |¨5z€ mX?_™š6Ñ-®âUë<%§Ì³]v¬’CØm0æþ5å‹ |¨Lo¬É¸Ší6¾<±­ü2jXi<…ï%iÙ”óšÖºéª4¢.L1xn²ŠWoô7õh:ˆt\7ć“-õÞàøßÕz45ŽÍ’˜ÛÏcyÎÍÌ´0r/5£Ž¥&YH# +n2‚¤PŽÉ>8ñ¤"ø]ËÈÎIš¼î*,¨ßÙ$Y.n¯º`ªØ†;KÖΜ²¥AÀÚYÚº²Ú“tH‘[&öEÖ› ò“s”÷cFM›æ› D nÎݧpd¼ Ê’çŒLö,ÀüjmlU.â¬ÎéÏä=ƒ{ãfÒåËÿí\!– •)\•Ö¯”¯Ô$#¢1+ëÑWØ|8!%§óÀt‰‡ Á<=8h¹ýfkÊÊïÄÔî¤h@Nù¾¡9U60&3Wí +:ekÅÞ™9¶kf@0âÞ•>Êf~aFç¹ìÞ¹d ÁòXg0íÙ€ô§G+;ÀXÞÿWɘu,­þ ¬~BŸ7ã%Ï‹ÜÀ¿§ª0o ª«â‰õþžìcÔžš´Á¯'4&ë ¬×«5ÎëÉr 5OnÀ”N¤š®­ÓøÏçƒÚaF§€3;Ny6W^ïtöy¦è6ôõ"º|6”ÔP²8PRf¢â+KÿMÎòÁLfm)†Ä‡tê¶«ÕRP­’ÂcÜ3|Ø2“? Pëzn‰Þ&;²U‹OÐ~ÓtRVþ?!f•WSbô¨²ŠÞÐ?º.—HÖ`#eÑ+e¿¶£ +dOÄãÛýþaâd"¸÷+QàŨji½µE5mÒ‰uÕŽì­£êûž[Y¿Ö-Ò*|k%“þw"+þsôK¼÷ð#Ä»-ß×–lµA¯ƒXâmàòÓ§û€¥*Jš©O¾†¹s[ÁÂ:®S†[ð-@Å"ƒ”½¹.¸àÂe ð\:ÍÙ8«øä[>Ãë%)D…Žô³LúßÄÄÉ[LÇ4cd„fÃâM„ì¶IÚå$ÔYóêl‰ð>ŽdyÛ´úA¶ÝZðÏÿ‘p«Ì,žÿÓI²ž0˳–8,†Ð« ÿqqæmt`ÕlÖ¦zêäVŒåƒ¿ç= h¢Ñþë+7ÜB-á4uJ¨ î¼å ¬fwÕ9MÓvæ„>¡À-ÃĪ3±/hLjmçŽlDtQ÷–ý›¸Á9z,5<¨¾ç'®í„’ÕfŒÍé$:Š©qàøK…¡A'‘Ļפ(Ÿ®ä™?ï½EYc›GD¼Åº%ëû"PD%¤ÂQŽ#]!´S/b¤ûŽB•¥€K¾¹ùÜØò7<î«"õঠSR¿1ˆUHä‰>1ý×Ö\ÌØJeóu4‹*pѪì‡ÿÇ!ŠM­(x!!Vño=šŽj+c8FâŒBMó¹xn|¿=ŠòÌZky>" §Û¡€,6 +}C¿>U¢äG|°ÆQœÝFBÃÛ_Þº•8QfÓucw1çRJ0 Ì·­}-¯99({œ4Ó¹ƒ³–:Kb‘ˆC¿9DpÍдžì8»¾;´@Úp”ÙÐÿÜï+¿7àQ×Ѻ§lâËå o›%¢Zꥬõ\ºRå‘ÝMG˜]{åÄŸ½¡ß•>(õ1þàα¦… ôZAÑ¥(zgšgÆÌ’ESò)Sofœ·Ý&¬gúü3¹: ‰Hׄ檰¼0-¾UipòA­_ýF-ÉbëÕcZ +åH0ëþ0e –«êŸÊ7‚ÿ©#~¼àI¼d‰×#"N—Yy1…,mûvŒ©ß_ÒSÉ&H)¿¦t/çõãçÆ¼°Òù£Î°Ûx±Ï"f}ÃÒ8^ü iŒ‘ù¼üGôŒË5íçéZi‚Mu°v„~cw6`Ÿû-ÂÏÙVuæ6r§=ËþÂÜ~–,Á/SO}s‚ÕKü`q¹æž €ÓÑ Ôjõí'™dòÒ™ôÇô;9µ ?àø!6áû“Éýø½Š<5³†•%ì³ëøš$EqØ÷sœÎíªĵsTuGR÷ü<†µ[Ú~Ì×½&ó£1Í6 ¡™“ºÂ nݲ½YÞ´äd!Áž ôn¦˜SPñ9"Ub›:-Îa‰m Ê8ŒçÚiïŸ"yzÄ`¯AôgïæøY’+“ßcêîÅx «ž\OjM¿$Ž4‘DD'e©ýØ™ßycÏtΡúy<Ë©©Ü¦¬Èþ¡çÎÉ<…Q¯ìøæHw$oqR_ €í$L{:1ÆBNþÉŠæ––vlÆ*È4|Ig<\|¸XÇÛÚ=FÅhB±'NɹŸÝ•sƒ6ÌFZÉ#³‰Õ戺ì þ˜»Á–ËÊq=Ÿã¤<ÏŽ;YžÝ°16¶ëÛÝ)70ë˜Î´¦  +õ¤±ZqZA¼Æ¹€®ã Iñ/7µ^ÿOA]u0X#ýâu£æÇXºjrÈ¿ÔÎH}ûyqVÛÄ ¸¨ý1un#³3ÛÁü+«6õçDpú'ލ¡‡\6^äAˆyÈW_‹÷ð ©ý°Tþ[Ù XRñçˆÔæ# + 9¡õýËgaj¾–ýï†Ç”ÍíW$J©EŒzåS±ù-W‰Y¸I-x'᫟ÆÉ—û‡4J8s¿ƒ£5“Ä¡o…SÞ¥tä+-£Éoì‘§ƒø¿b`=iÛ Ÿ- ¡Ä¸%ç³_Z·®õïÌ!‹…¸å‡]:zjÄcŽ×>sãÒ‹AÚpaèæ:¼BÛ‰í£—1ØKÛe£#m ÎLy&"º"aÁ:÷ìÕÇžîç5Þ!š]ZcêØ0÷¯ÇuXÂ^ú®Am »\[.Y3Öt™úÉàwÚ²…+uœ¾±CSŒî· ŒYë¸Ñ<ÂDš~©ŽO…gNrû’{>ƒÿ1qxÀ^PofÔg¤~ùT)ÈIÉÊCè*õŸt ¨Â¶:Ÿ¨˜QÅN2AwlSgSáLŠñc'Ö«!Ièö¸- ø•ã× M¤ãß2”ߢq˜ý¾@f&·Øç ° óñZ’¦†±µÞL²Òì¦QÙ^€zD$Ãë÷ü~ÚŒ©@×7)…%hT.ŠÅÿ¨×Tž–Oi&ñvç_ÔN¦Ò>Œ†º}‰C5¾à‚ã´À…#9!¸Ím_'ÊâiÚC¾=lM육 Á܇pcƒõ™°ahö…À¨±¢e•Œ}Iª›È~ø)WIbÜš\Ëa£6òiNØßbÀ ° +fÌxZ ‡MçêçÝe×ú,¯\àåØJ'ךËÆïU@®÷àñ(’çö*·Ÿ.×Ñq)ð^>V¢¯ šÕ³¦ôTÌ™_ɉ¤rÛ\_Z΢~éG?ÀÚftŸÖKúIÉ|U}Nœé¯@ nÔ˜»^ŸÞ8â:¦—4Ã(˜‡°gÙû®¡÷’˜,ŠÙ¼ÑEhþZÜ2òV§ñžä\¸"º½ÁøùŽ€Áǧä«:£q  àˆ¥ˆP•îcE³y¸¿·!„X€…(¦Ò»3ö×b·hòŽ6ôì"ú!¹OÝ»{¬;Ïu'›‡¿K«q7]5|¶ÐS”—jfØsÜØÍˆ@ùŸÞâ!\?aÇ~™}†Û$[Ò®ÓiïÏÜi ©Ÿšï­0{”ýøP$ºã\°VM¨¶cJÌéŽlcg讂G´{šÑÐÒxèg$å8˜ÅÁYŽáGß!ª¼>ý*ý„0Ñ}ÑnÕ–² ÉŽd(߉é¤.l&ü9cáñœ ¶öÓkø{Ò¿Yè +`xÿuêdà¸0¤Ú43Ü»*^Ü#G5sŸ»"}Fª Õ'„‡¨m³eµ}ï¸uî¬#QI•m¥£÷Z1V“bv’´ì:óQ [¬Ö¯õíŠ0s)žx×®Ójn—½qé¤rÇ€. ÷̤jZ¿Ú¼¢ó4âÐ|$}¨ÚÏÁV’F1Wmß0j.#ñ”vÙ96j2ºšP§P @KRÄH+¾˜ø'ª;‘ïæ?br ® !5¹ã×5™HO\ é3{ðšR T2Ìùf]Ù92âG>ZkÑ£Iý'á%{¹³{:ìŠÑO~ŸØ˜®‹d8ǯzàë»æ›(¶ª1rC Wz%ÈöØ»˜îf75XÍ\ž¥LÆ3;N2ôjê8r}2QØcƒf˜£³u›©Ïcñl?þ5ñïk[ážHÛÐKªKŽl:7É»@¡¹Œ+××A?ˆ½Dœ§‚O…Ïá´K4_Oº’ÆÆ„š¨öêþ< In±Ûý#eº†Ð¬é¥x‡Éës +…xÊÇvÆ Sf5—êé÷ óH½(!ú׊"ôOD làF†£Á¹Æ›üŒp+B¿f¹¨Ÿ3hîûÆ÷°fÏjŽ}Ýjôƒ™ôEñfŠSQêD·‡eÌ\¼èœè¨wæ]ÜVµUg¥5½æ(r Å ˆŽ×ÄìÊõòÇÍuŽ8}7¦zù7+Ó¥ÚŸ>w~§ý·8z/Á©"ÐjhUëi¹nYMyÒÏÒF‹H´'ÈÎØ—¤Kþ'z(lYµÔ@tz﹞ÛÊÑ5ÂâXЃoòS ªâ‰Ï:Fä-–úé¢P¦.<ߨT¸¦EØ,N¤a +òàW7^»µ—âù€Ý cWk] Ó;ù²1u˜,JT +«©aê![”°`vUí®ª"6èV29çÖ[YôÕz¿(³8‹ô"¦Áb¡ëtoÚçœÌ’B:’0?¡û{OÐ’²¼½ãñ®C úæ 6ÖʺKì|C›ú9£`ÎÊǼ¨ÐYûcÖ¢N]Ç„ÇAù¬,T‡Rªl½°þ¼‰ï†4;¶¬òD黨jÖ‘þݳþLM‚D•UÇFžˆ3q‡©Ày-­0àðÂì¤A1çŠËaæàI±Û£þÃ…\›¿~÷HaÂ@¤™P¦£ß9d7ñY%¶ý[hìS‰Bé†`ÂÔ ×XÉYÒBÞ(Pgi€'…Ö +z‘¿:Cš&VY)yÓ>,ÇK÷!~¥XEk÷¶~'¢ù»°+ñxá°ˆ±$<ÙýæT3®p;†¬Ç„–ðI¶a»Áñoi¿ÖwªoÞFò.Å%Sº:œ÷ÛœÜs¾è£-t¸ÚÕ ©° ù„›Ô€U·>Lã¤ú™åðuLß¾²SÊ(@èÎÅŠX«ñ%Z(#À˜@i-RP}rõ |¥ÜoÝ^]ˆq%“MdSK¡¡I=þ¤²I ³Mñ¤¼·:ÿæ˜.‚ÔÌÉ]§ð‡8‰bL&Gü ô&1oªºôRãä9hÆæöö™ãªñj’_µKëtS·ðDŽ*nâ‰àÊÔ¼€=µ ¦ôXøR¼Š‚3{ï*&(ò0P&Ö–6©U.E>qýa¿¹iªÒê³”¥ÞJH‰­õ¹vE¥u£Ê±l°´‡‘¸âњ[`ᬌøa™\r…ÍÖù^Wè n4íKO ±Â*¨‰,Éœ6BY¤BCÏg^k +¯}¶¡ IízÁð†`A©‚L«…¼ê:²bçARcL™«‘kNé\ÕPæA¼÷Ô² îÏÉ›Ä^k©rÍZ'º`lÛ+Etjðiú¼øza léë³×+/ÆŸMÕ¶àº"U‚\Keñ­#Ñ«Ï+çÎk„M:‰M}väSL[nê€BRºœ'qꡲÞù†äÝ*:¨ ¿X‘ úU}â´¯R, Ù‡Ö¾àŸ²¬”›Ú™½×w΀KrÎ{#¦Ãµ¼;v,«”pº'qrÌéGC:aá„âhŠW÷Øÿ´bê˜MÞ×U¸z™×Át[Š ?mbEß Li»Xi¦¸eÿ°óE~GµÄ’Dpaê:©—¤]ºGï7Þ÷ò÷6lÊð +f’Òª;þ¬»ð—&„_zÊi¨1ÌþáX 7…¾ ª]ݸ$58òZy:Ó=s¶ xWßÈ]ö|D’bZrí¶ñº*Kué$82͆ÁC9Ÿå!6.Íó"]ÙJ‰ª^hS|ÔØÎ#ºuD™þ/1›wÀÜÈB#dÓïc파¼ýÒüBíA¡FWäî ‹#‹…L2ì(Mé¸Em¢w£ÖûÔ1¶¤„8m;]TeÙò÷zO›¿R`°“ò”¨þ>MlË ?VYö¢‡Î*w8’RùrßGÄèöéÌ5ª/ƒ×òZÚÝàÂ:´X‘ŽÔeHX- H±D~PÏh4dg¥Ö͹Ÿ`É®³­†>ALÅ"`6!ºöFð´Ž:I-;çÕÑíAÉG`ý¬rÁ<§¹²ž,Ä›ñ:D!›*ª¾%­´ IÕlÇÒöšH†­\a…ð$iGÜŽf]Ò õ“Ùº©&ŸÀØ?îYCw-<9ÏŽf{ƒ­«œ'Û"¥zú°èâ‰Âù`y(æ:ÇÛ¢ä“ÎL·»¿æ&|2ÝVtЖ/S ~3CþøA¹sr Ý3>æ2rŽIKú©Œ¿ÉþôƒŒæ]6k‡v3+ªÌê¹ç•çã)Ÿo„z ts½õAUò¿;'4W“РNkFµÀ+*á(al»°­<3¤î)Â'±õn§9'o „è'ýeùŸ^Ö"¸ÿ‡¬wEº4˶mÛ¶mó–mÛ¶mÛ¶mÛ¶]ÕtwÄ̼Ùç*É8ß¡Üg”Nͱ¶)úú¶Aöå +#Wž^g¾TP­fíL-.®’nœÚRt‘y¨Xº[W@Óo[°¢´ À`£û¨ú3`¹ò(÷56[†e>4Îe®s¿ é–Ÿ4j Çñ‰3w ÓŨÞs±ŸG&£X›<ˆ!%).Ø6„¤Ñ¥·¯cCÛÿÍÞÿFhóÓ?ŒñbâŠ.¢¶bÈçœDó;ƒ‡QºÖk˜6+x8ŒW b¸ÿÞêÆ 0Ô ýŠm˜æ 5D!¼HÞ ¨È%zxxšZO#ãY˜Ñä5Ú}s6ÉûÕ݅÷ù‘˜}ÅÈCd=lXâ”ú&µÅ¦Ú8=THgóŽ«H&ÎÎNàmèõŽWSš6Köà€»þ> 3‰ƒA÷S¥ÞÎj¹xò ‰ÁŠšbAiÝŒQŸ~üzXœ! ’’»¹óEG4pnKáL[náýríq3s8Vˬ&0.ÕXÓ‚ô¡ž²Â?B¶D>•kúϳuBnt=¦†mÄÙ[î*d{6å:*ðî󪄱%Rj;KJm4³9èžÑ¦™g×0¤†p"p nÌ\ +@^¡ÍcT“–‡M.Í^±|‚4º6ÃÍÚÉ6ÌÝÌo_%!02Ù=5^2?ÜaL:Ñ‹¹TVxšž¼›‰4Ýt:ûï8…¶ë;g¯B%RÁ@§:<Ž_×l£º³Sr>¶§3Qæé,PÅ QÀÕ©y܇© «˜†ï>ü'‚¨Øsáº3ÙÍfSp³=Æé¼élàæœ„ æÅžp8&à ‚iyvÓú>t¡•³Ä3ÊyñcŽ'] èÞèF2ê, z?W4š>rðxÖï‰ß‚þ’°K¡TY\¿úU*3†;õ¢ ™XT8k?\À2ò‹›âçñœ­ó¾®±¢iîìY•û=i„œmÎ|ô¿-Àiø§Uæ,WHŸT¶¯Ò)|ަs¸^؈A*ØÇÚ+˜X"‚»EÞƒ–:¾3c‡òqë2ó³Gy¨’PpÃÁ¨>Æ”ý…‰]t2F)ô¨ªÁþÎ¥Ò’A'šŒ-(²ö5#Ýþ¾”ðÁí;¢¤ +9ßÐLžý7 Q48nôi®XÚOä6ýÚÙîÇ‹8{ `¦LÒ;GÍÕp«)ÚœÀ •þ¯@rÕ”•¾±õÑ.S³PÒ †[ÓÆw¤^­ŸÌ›®*ÝE—˜¡7ëÕC‹1=Ërt,Úg²éUÖò Pµ‰7Afõ”öcíá²tÕíWÕO;l ¡äeHžåÊV[Çê…fKȉ?r·ç³B2ÁRú%ÝÈäx©M¦ˆ‚™Ÿî:äDÜ®îÚÔR¿\ÙÐp£Ty#ê^XBkl‡hÕ‰ü[¸k¸†žLAGbðÝë©gì"+c{®^ƒMå=3ÓÃrÍŽ0ÞkJТïm/ï¦lÎL Jã’Ä:L5tØñ]vØž&æplpó·C§Â_Þp9ùeŽ__Þ +ËýAÞùÌS…‘y4sMSlë Õ‹PW_Þ7Må-gÈZƒ†\Ô½ _“»T»v Ë‹ +ý œÓs…ÞªÛ€^nŒËbPvMõïã”æ*ùˆ´­l­ÂÝE³7Do—|4ê-´DšjÀ-lsÇa·ý'›bÛ/êUÞ\cñ‘³7œG1ËP£ÅÚØî«=Ht!ê£éi?˜~Ýø˜8›ö[ "©Ê)Pƒ‚Х߿é.­"΋æD+8Ê‘W rv£šg§"àDÝÊð­’;ûÛø79TNÄ%)m,QŸ¤G# ‡O’Y(î«»?‘Ûʄ纣@è| „1<çÓÛ¶\^dßñÄ÷dÞÀѽH¹mN÷P«¿ÁK’¢™¿"ˆ1ŠiÓf×mÀÅš\=§ó½CÃ:† rAé€py4bÿû›Š~qŽT.ÑT3a¢8®âÍ0þ3†dZý/¹^=1Fþ"x›6¨›ôÆjwqeÀŽNBw«¨u†Šo¸™Öoü"àâWã½k˜½Ç/ yá@ÞŠ]ºË¿ø÷ÝZ ÿ;mŸežÑ2–Û5\éÚ[îê[-c þǺywr P(%¸6“'iwK ùÜm¨êU»nXÁ˜qîñl0`™BýJKz‚UgW²¥=ûxA>s×È ðÐèºòSŠºä»ÞCŒ þWjë+ÂpßBj[G½r¡=S›óLlx–Çñòo]eƒSVÿŠC-`¸x<#àÇp2^ö‰ó±^aHhC™»LÊ%Ïbî ÀáØ#8š­‡Œ |gì¾,\2Y +u•Ò(„_»iš%r„^Îï«ØgîÑ`lOzv’¤ãG sj]t|.\é‘ Xw¤/ ">§¼KÞÞ$ÜÀýLóŒ{íY…‹°)øÊÓár”õã:nò—˜¨]o +H¸9ξ£¸´^tÁ´TÓTI1ø&º+2'Òb]f—äWø +L—¡ra'ŽÀèò%ÁÂN'ÚôÒ¡1§(­öUiN¾wÿw8Hµ¢X:‚'óóõ•ó¹çG+°½Ï1K`ú¬­c‹,¯sé«#ªo¢ŒU"­¾ +›~ž|5hËþÕB­ºÕºn~ÿBµJv™nÑšò9rMŸ± öó k$k¤f +m-=ÿÃmãjª(³õCÁåRbœYøäLʦÒåÒr~ªÄ›nMÅLgþ`¢üjÆšk OÆÌ3$GôIÕ‡‘ +Å—O4^ü០K¯âñ=ªbª¥× ½0pSSî‰PWà—eP®KÉ`LÉ™ ¡²ï@¿“Ê‚g¢pÆî¬à}•ýÏ<,Y= ÄêD§3!C:@ à\Ç~-þ«‘›òUºk¯xÖsä›i0™¾¤7”Ï},̤4cD5žàŸpqEÝŠ²xd!Ý$H9sò¸‘\„™áÅm•–üÅé£ûöWÃÜ·:óŠêB°éŠ»%Ù…Äô)'¥ÿTßG†Jß9£*ûïN„Úºë_1W‰í¢)sCáú ‰í +{±MלùØ»Þà±W§Œ~¤Ê(‰À¢—+‚•«ÝZ«©fÏR1¤²?]‚{Š!Áç1.=)‹PD}ÿ`* QO¼ú7GÚ!ÂBNŒÃГD?=YIÉx@-«j"0– è¥^å&SwJ÷4*9cy(JBeÕìt”IêØ|u”È­[Æjµ:ФúŠyÓ_~¯‹nüý¢H܈t}ŠÝ¡Ï4"\õ&Ë)„öC†žZrYÚˆ[Ï ÝÈÛV€Óɘ3îY¼È]ôRªÀ¯f¦«-$Ô;r•j`«»Âmi±¡f ñWòq…9@=” öOV+qŒý;nK&Ÿ½¿Œ²ðÜÛÎnúy×4yÙœk[?Lë&U¨âšŒIz© ,ðJèáÙ—^~šùKó¡©9¶«[Hzã;ÈcV…ïÔŠ½Y†§É,JOÒ1'Úþé +ˆ=©ìç&.KLâìiŸ¾* JLï /‚°@y¨³Ó`âßCTCÝÊJ»Š€qÐXº×`®N7ÿCÑ|£½ƒü~5¾–«§vÁz8ƒnµ;êî¶FF:Y¸áŒ +bbEý…C×JépJú§¹½W&|u‡uUè)³£qH€‘t;n-ÕìÍ'Ix3r n,®CwªtaàOrº$_6›%2>¾}rJµÝJ~¬#¸¾öÞ6‘Ž^ÙÃÏ Æœ7²TcÎìl G1xâãÓèÊGy=×Úš”m$èâ4ÿÄ`‰ÔÈeœ(뛑³/›G­6¨2Éðó£à| ¡Úã™u´UV/|AÕé–”!úoÛA¡°» t!ýÈPiþ/ä/òˆ>cO¬$nðE$ùuW3„—A§3ǰÙgN?æÅ޹˜ÎŒk´pVºÙx©ZÙµBõ©/n—’¯O¿lÐ9©Î#-/~a°-Òo@¼8·Ä-˶÷5çÜàÔˆïDöjX‡_ k2<„˜èzfº8"Œ}ÄÉôžD-þ@i_Jðmí@å.Øìí1>éú¤æô’¼ò‰© {K~¬^W\‡ô¾î5ZR Üâ'7JEÿÿ,ÛŸzJbx4,BTæ…ÑÅ”†ÎC¥N¶ÍЦø[€™2ÞÂ5jVÚ :…½|ñ`A¢ñGUnŠK÷¾æZ¸”ÁŽvF;}ˆ+ðáÔN Â[Aó2ñ­º©¨è£K•!èŠÞ™üªà¹Õ[áOñì$¹»²³¬}›öÏÁ's¾í|òN sGbG%Ä!isº ˜ÑM@]¥”‡Ó÷‡Ëúà„5-g¤UçiOö)¡Ç ´M§ÉpìšfWø)͸€ ƒçÚsUä™IM¨ÃTlÓ-,êW\²èõÌ’)jé‹F•÷§ý(@Ò»6r}š´žŽH™=Gåh©@1ÒÂ)SV×Y/¡2ðÌ׿1ú¼äÀ¬éã÷)<ß§ŒÚˆÑÙüãFÈõ$]ôùø¦ -IUˆ!Ôkˆ( LÃCÃÊ…#2åçdê Õf{™{µNf‹ÍN¥Ñ%5Γ6ó¨m^ú³¹LgN>Q¢úßË—ÿ ±¶eØ%ÃØZh¾xÂrvK¾5YöhßäýË4‹±rL¡×‰PŒ„k*ä+}‰;ðI«4.„¬Ý~˜>‘Ôó5ö?”ÓÈz5”ŠÃ, ìèp%öÁ߸žöinË F/ùŽDË®×CáÀ‘Pøú¿šôeµÉ•¢LÃ"fûȹMÓ^t†zLÛy_¬ÔU©½#®ßíÕ­-„`˜Í²ÈˆX_´y·þg_5f¨Êü÷»’§M ,¯Í&RàÑ䆗[–¸áìâ ¶Ÿ÷þâ(ªB¦'eïeñNT}W’ØÙI&²Äkê¡5­;Eœf×™yìU™þ±HßC+¥šƒÐûú™P!¾_0Øë=z42¡f¦‚ñb£×V,0ê´JŠ6*ñÍ0c†å¿3åitÔçìt.iðz¢ŽçX$쳦8§ø àü¥!ó¹ ®fá˜só)âŠã.íNÜ x¾ü-ßÛýѾ©»D_ÿ^5YuõÓc^ˆ"W¼®­Uøw™2¢3k\ªSèD¤!+Î…Ѩ•³5Æcr¼ºùØÃùÂêœñ¼¦×.¶IBÐtTñÖ©zBã3*äLÆ9{´_ !IÍé]ŠßW¥¡aјJÐ’k>ð×{^º;WŠîÍ~õÅcÍØ)#ÇèìâþäÔäu*-+’BH÷àyâÞß æhHm˜ƒ™Ù§…çuöJô ¯Ÿ +/®95qéöAéÂ-:ê6`>>Ñ2† ®ê<öÓÈÞç ‡Ñu=¢¸ÝKw'‡Ø] oŠ.‰|Óq­5ll+!ï©\Ø®e¥Ke-ÇݱòrARFE§1‡Žµí_c +äÄÒ‚¢…•–î>_ø[ä§Ôv.¤]ˆŒ¤ úMIbÛ 7a-cÅr[Ζ!;«¸¶Y¹DüÛ×Ф_ÄÖ>“¿(6-?ùÌP_vá»ÃE‘Y¥Ñæƒ×D.ÄhÀœŠT`£Þã”5f¸|Íར+£=ØÖ†>¯›ò81íÌy&Å—xXû³ýݱªÙÖAÂ~x¢gTÂ>3Nd¬ê¤@‰Ñÿw%ê)ý4˜1©#výž¹ŠnöË™?¸ÂBâQ®­46„aPp™} 5Ûˆš‘+KÔÑDã|+q&ÊJµÆÕHó°Ù“Ð,ú-…>^rW¬å‰2·õLè<*ºƒÕ* eºÎGn¦Ñ\-ˆ8>FbÀ¬Hšë«¢þuŒ}T›'XFNµ¼ü‹±¿ $‹À"(L´²[hQNº(5ˆ˹âŸd'˜MrQÇý¯Ó›½r&e±Ï¯Xúb›yµ/0¡"3ÛÏì‚PTOœ›-Óóò)Ê™jLð6~;0‚ø>Mià¥àT¤8- g&g~°/®vQ9ÒĤ-á^¤bAµrI¬*ñýÕìoà—çmæõê,íw»Ü¬ë?Þî*ð"¼vÇó•mÚó?h¯Õ:Ã(àÔõÞìËNú¢ÝoèÎÕ£pû•æcŸëCcut§p²óÁÄÓ£Št§‹Aüê5øyÈd¤ `ÎëXíb«*ûk눩é¾^—}_F,;Ë„pÂÙ~ÔO"þ+Ð f¼vÚ˜®‚èùLZq3Žz oáqG0Å¡'ÉÇÈÐójólLüüz¤ ¾cfÉ>Hìf·a=4¹: +ëWƱüb£¶nqèî ‹À¿‚«ú`¢ô]ú‡Ê³¿:(Ü}üyß¶Ç‚ãJÞL‘ãNíLß7p°qhɈ¢ŽfŠÂ×Þ»ÉÔWîÛ)[0ù?Yt·ª#Ë€ÒæÀ¡Þ îýo’û&0ãž•†`ÌÎjòZª÷ó»ÒÚd?"Ø!$…×™Îu +ío€¦É/ìv™åÿ¸C¸{Üé””á! Ý;î©è’ªÆÒœìDóVÕ³Rñ:zƒB'[ås-ät¬€ÖóÝôЙô-À°|T”€ï´É Ónç9¤K`6ÄQvõtXÒž…çw˜¶¶?̵ńwõ¸* p–ª™²>2Å\X.w×ê†í6–¿Aò +}ÍÞzжD‡MN7c©ÔÝ•»KÊ:öØm‹Ãʶذ¥CÆôêœ ¤õBМáRj\vݧô$XJÿ·Ö…¶U…e¬¬r ‘}Ò„ÆÅ¿±Þ¢Q2ò-Ò ÝçQ^›P˜éOMÛé´ð£|¨Su¾Ýèž’º-ã p•â½Ìc5Õ>¥†˜bil£ê S¼øUÁå8Ýá-~®É­šUï¿wõÔ±Q:)‰,ÐO_x0|õZØF©Jãu•Y-Á?)"Æì7[8`À«âˆª²¿2× BšØïƒ”9e’©"~‡³LÞ×kI3ÇA—)ýøÄŸ¼R”g»«+2xM㨢°nPV³…CäÆü å²n¡ý®–v¬o _@nNc ñôž>ï3 ¦†Öϧäy ÇbÎi­¼c‘\ËZGËF!”§~±‚—̦'”Fª#«Ü Ò½ÇÏжÁnÁ +´¼G?œØ8ÐâYÂP<·Ï"Èz€ÓÝ¢a¯þŒ9E@•.EûŠ5jm‡ö纀£Õß݆$‚V!JV¹†ì–q•uÀ6©–'©ëÓâb[oIÉùùeÍP”ñùDíîwò]ß$efZ´–ܶðQåhq·ŸÝb•j¡›€ß‘ÕÇUc“ƒ¶w‘U! +fì‚Ýùœ•?±]øyaêˆð)nßu¶y€ _oŽGôÍí•Çî¿cr –æG:×;x›Ìj3É©,á¨͇ñßiº°žÄ¿¸–¿bõÁI×OKa ~™àî(ÙŒîºQƒ¥ù¸E&zŠ!ríyWÎÍ|5Š|“D̺üô–.a#¬6nçF×Þöê¶ïWê ½-±#ßsÿ;{x‚ Ð;I«•G9qfѦ š¿¿é!¥Æp´Nú·Oh/¶åÝ ˜ýÌ* ~êñ‰®qܯDé%#+¡[ +<ðÿEÆ‘¯d Z!tÅêlåjý†p2üP®…]¼Û³ =TCè]Ò½eèN¯ÐU;dÑl×Qü[a2Ф¥É +xÈÊ€I²˜|N0 L¼%„"§˜zºÁÕÊŸFÛ^æ”B´¢aÄÔeƒ–ià‡£,-›ãim ¯Î +>20MüÍ ä²ð󔓸öèmLéÔf2¦!}–eR‚.³ýtú|qô¤ìƒ¥ =±F›¬sRß²`O2põÑeÉÓëÞÉñåÉTm:Ó oî¹h)¹RÈæ/ šO 6¬Ø°Ñ*±UÒH$iÒÛ¬vT@—¶~¥VÎ?.B:JKRZUc:~îèxé°ø€ ”¹àüF£QOi¥•u¢TóÊ0{i¸,¿yR³VÕo«arÊÚiÛÇ¢€ŠP«…»vŒÂýÅÙ£/&GjÖ‰ÒŽÁ õĨ€me;ü£±1g´âH@&7$I(ÈîÜ$Ï]‚÷mã9S _300+_Iâm„‡›ÇLMyzÞqç¾Z=Ínÿ¶Þ±jwÊu}CÆOý¿àÒcj¨,ÖÒ|Jl—ý¡üÉxsÞ»t?ÂÁ¢åFÉÙL¶zÙÎ Œ¦É7& +pí^E†ü¯âz‚-ø¾½ l¶4–hp uw‰‘Méw8S +†Η¥›@9¦C*aºC¤wÏ{ñ'uåªÈnÝPÍ“ë“G^‡µœ4‘îìÎoÐÕC.c¬@QŒíÂD_C>©2Ö6'D"äâ®GÕÌøº$Y´‚…àMŒ30>%=¿@íït*†HØ$—0NÞ ¬eJFISŸ¥¹¡H¬¯ª Pn›à‚xçæeqX½?q©çµGé”jàxgExr Ù\¡Ù'‡â gk{ªC×M ðÝÁ¼Ið¡óOÎÔõÇ âãRˆý3Ì„.‡5ÙœE½aïÜjܽˆÓ»mýMÍû €Ú?~-‚%ébvƒ[:E±Ð ÓøÇXw¼F˜Ô-Îô²~øþÃA› æûÐ + +öûéËH>þ]j} #¯n}–Ó$¥¡?æ–É=’-H+~›‚·IŠZ]¹ãÖXdg„È䟇C}ô\HbÒ¤û‘ïî[Ý^˜íDL/Š>ˆ$5»BF1_b,úÍ¡ˆÁ€Ž§ó0LÇÐ|¬RÁöxÚDèhOÈ.±·¾(¢?¾ðÊWݰ¾"„KÚQ½£<¶hü¶µ^V€rµ¢¨,~»(+>+‡»EsÿSÔ|)æ%ZŽgŽYöye¢³”è}Æ™®áODòàü[ï‚–_ì¶ê9` ÜÙašÓ8¶M©€%ΠҊÿåÞøâ›ŸsyAÝo1„E¦E¶´fšÏ÷¤àÈ7S;¸qMJíÈ¿þ{{WtËmÎóüôÿ²Ð^öŸe›}÷ÍÊz4mÈó¦õFá£ð™Ö`8_I¶ü[¡Ÿ”"–ÎIdƒ†C@Aù~úæ\“Ûg´fƒ¥ žù ‡¨&ˆJòPMÃ×Í[ú5w«û–ÃÊ”tq_#‰°%hÝT%ˆ¥‘UV7"ËKïòzïðt¡Õhæ‘RUÕá #I‘­cOü%ßÞ›œÜÌ0qn~u[‰YAuËMÞ˜sDWµC‚¼õ×z¯×bü8˜^p¼a²ÆÛ*É zbL‹dÔ,—9_øhi”}L!7Ö©é ­òsùI tZo_ZŒ1”[Ý®C–3dçœ(ä cùéîKBS“2î2KÑÙ+fï$С` ê½£‘¸Ž{ÌÆâÛÖ„Ûx•g¸²³|yâè?P#‚wÍÕk ÕXUÆÕy;Ëv?JÙ>üðÿEþ*@–PÇCýëc·/®‹ Äþ*SÀöW³™ƒ–€è”:”¿£6›±ò´±Š•éýÕ^*¨ðóë3mKf³Qþ Ho¸ŽÑ1¢¶PçÒ[F`T3™Ã1©r«h0Õ6âC¯à-³ …ì¡|m¨ö$íÚ½šÄ¡ h(wàb݃hA¬9^W)¾w^td˜\Ê&˜ߨ +¹_k¯“;mKÙ 1T+a5“–ICŠXÔ)l¯‚*ÙÂ(•ÊWI»KVrØÖZÅæ…`#ý›jz¬"äá úfeŒÒ®Uá™â´DNŽ ëD½ƒRxáDùüa?zP!bY#W™®ïâS(ƒ¶ä½6ÌRÀÁâúÿ묳ëâHDУÏ7 `ô6Ê˱߄Q­(Ù·ôK̇^ŠZœ² ­rËòÝ HiÞz 7+l0¯TÛµ$Mdã\âSÌ¢Èò ¯¸ +©œa1”üûîŒô(·€îd4û1½ÙM¢†ï7Y19yà†eVÌi¹ ‹9½!‡®2˜QÄhÙ©×,®þz˨fÀf&„[ÇEíº˜Õlœ‚Ɖð¥´xÝo$zü8koÃQ:nÛ¨›ÝÔL».¾}YŸ‰3»bš + (à&àœbòïh¤µ¨qV¼0?; u—C†ŽPرœüiy½r„KÙaC/uµç0y÷ëˆ\—äZÄÆI? ¼Y$° ôɶ–¢þ^= ªÙKÓEg$±¯¸{Pî_º +Y°—ºü¿Sü,%.)X•ÝMz‹|Õñ:œ!‰ô¨Ðìu4<áȳR8Ù¹Çä}LÔò{ðWÈ Øîõü°ñ5^I@æ6VŸSáKHãþ'ÃrxRân JZs—ZÔ(_8<çaÍ…SÑû u«Nöâõð‡ØÎÇ6ætŠÌÑcØ‘ð?Ül¬аb­3¡+ÅS<©F°ìOšDb¯Ëqmx€o™ÝDÿ'+òìKXNmTa) yC8nˆ*—màœªáQí½ñ*Œ[…5@ìP³Œ( TÑÀ«ãsYŽD—U³{w¯õn‚ýŒ’‘wÝ.”'…ö»Ø@œ|oÄvÔ¦^Q,r‡oÂz”´¢;€ß«´ëˆ¹¯)àU„lÏqÓZœÉÂZ“õçð—þ«ÚÓíšï¥AGF2ûÿïŒC4M$®€zbE¾Elb¹«à²ÜI `yùc49††ÁzÏûdÇM¥dý]kPÛ„±0`—Ð(& ÁxêmÕVO +!¡0ÔDh¡«Iþx@ÈY "U£Ž«rS­Ð2úϪþ‰êBé“1Z].9o¤È|LSÑ‹ª[ ÆŠ­²”æ4¶ ‚5^Q:#>Žöµ¨Õ¨k¦ZöÉÆ2þwCTS8Êó ‹…Ïˆ™•Ù4µÌGP!ì©ä¼b`[nÔ†Q*SêýÆèƈmF«:Ê÷üZ0X©+2ª xùÚèU"Îht°L +3—£(]ÅåeEo7`4¿ ðªŒÉ€ˆ”Q4ëÑ‹¢`‡èAì¡ù\s]VÑ€»®‰kÿIP·€Èîýõ.±ÝÙNvñ +›, üæ”}1‡Ì€›í0É6¤|:•“©‡"J¥7¿ÒzصQÕÊ|•ø&Bù$ÌŸ’.­Å25MVõMHߪ‘ L"ø£Á•í·Þ…^ðŸ·âh¡™è–Ño‰óÔÁ¢­i|ƒõæN§K8¸HÖ:˜°:†Î‰‚mÖ5mÆ +úUÖ‰ k¬–¡ëfûl0POº:¬¯‚Pm;)³ %ø×f [N%§{`jF‰lU-E€iAõ£Ev­#‹f%r—Ìwnm»2ÌVë c¡Å¸,§–-Ýö +æÆ¿^9bz=iìøâN~œ±¹j>Ñ3vªmßd¼gúZS Ò| Ò3¨®z—rØ•²RÍqʘž„WP-µ÷Kùª@ôu¹e¦ì`À˜ 6Iw3LXÓ†g÷·í.lùpó_„ó!ÝXºLc²W¨U‡®J`¹h&ÐýöŸ3.¤à€¿]%´·p ³œ>Fm_¨rppǺLS@òŠN ô⇖0{wK¹B_VÂáôyEÆÁ K×ê¸u`¬Eñž´ï §Q)hs.[ó±HÞÓìIž*LìGpe(&{јÊ—®ýŠŸ®js’Og˜ëªÉP÷{Ü·…;A”EïÐ{ÏŠÚÅQÃËeêåZÁÁËÃÚ€ƒ¨À¾ÉÕ‚ªÁcÏ¿p­"†©Û{”L©´ ­K.Fæû¸™½zq“>`¦³À»‘­¶¼ž4±Äy+D75‘báæ«©^dæ-†\hìŒ'Çü8‚öL`J‚΀éz¸»½À6…ðßuпJŠÙ§{“áyÀ³žä(Sz9ë«ë@Œæ3aokÞ£?æÀï²§õCSdn‘„4c´\b­ÆOfJêÕLÿô¦ H+OR %í±¿Z¨hPæ²ÌwÇ[iÛ*Œl¬¸ +vYv~µ + Y|QkKìÇÁÆaÂMŒu è-Æçp#ë—1Ý·èF +(ow\Ÿ¹¹¢4TDÈßkŒ@ 1ßbLãŽÈž¶»ˆÂƒ/}þ¾ID˜eÈQ^OÇ$é¯ÄÏ®+vÚœýcÍL§C¡öœháY‰j44¯4»ýÙ³)0Ó|ý÷Ïhæ ¤@4Ö6g¤>]n&%ÊžMFмá] ¤ägyC¿婿¨%Šùš_ˆ  “¥³ãpú_Û¢uºƒ8qD¶‘›|¸BÏÙÆˆEú”Qq.ͯlœßŸŠæËìw§+h»#.kBÝ eË/¡MÞœ#SÄW½¨Ût×¼^••/öºÁ[çŸØy,戓 É$u¿9ŧçˆ!ˆo½³¢Ï/2Sjš“„À{tôó`wZpP‹Á3ûT߸ÉÚMÕŸ-Š\ÿÛ­)¸¿Ç6¿"×/ÀøU“¢ ¾õspOUBJõ¨XÑÌ£¬¾œ5ÆÌfx‡1ÏO¿(ˆRâ·Ý(Mq뢱IfÂN_0¯©=î¿|ÕìàmoúÎz²ûÉ´ù­àº°ö¸>01ÇPÔiA¨¦§‚¹£×^+‡ô|l¬s Æ÷:4 …èŠé7ïÑÖÓv¤’2)?ªõBm¨Üô§Hì^ðôO±_ÆW°•ÇsM„` Y”áZn +7¦2™K°/¥} A»µ¦õMðØ ¨ípîM*ï ‹_|g2§ôÂ%ÚÓð ÜõueªŒ®ðzŒ¥¢_·oøñ °n¨©wrM¾Ô"òÖáò¨ +¾Iš¼…ÌŒ|Ë¡}E€œk…®$³äÞ6SOkˆ5YØ/´ˆsê²S×dÕ°WÀÍíqäsýK0øJ"·@† zWT¹ï µë4TRIâéçËÕCOÃ_Ã9æUg-ò(%Nö?ÝJ2UƒÙ$zî])êÏ¥ce€Â‰˜3Ÿ•¥¿jîï²`¹–ý ¤ƒA¤…¼ˆúϺ€ÿƒV̊„ hÂsäxþrMy–XÁKòhk 5†ˆOjÝV%[z2l/ÏÒ÷¸á*Ã¥WZ03}øÇÞ-ã&Ïò¼µâ^T½+L ÏÒ™fL¼4\zz}Ÿ&}L°€8wì&†©´ 7ýY­+¶aÓ+ï×ËÇJúètØLŸÔ½#L2UÏ~GöÈˬsºröÌ‚!z˜2µú­¾cÜ äêŸà¸Ì7”ã¾+³…¶ê™ÍȤ‡yËS9jŒO°¥4þßTœúÌ œV pôXô¸Üœo’uòùdÿ=Y4Eƒ0?Üjø—ÂIП°í:‘8tËz ¾è3ZGqZiP ­ j«ÃÍÃbÎíKŠ­jÙ’j'$Ü™5¥ o[>y:'F +‰óä!Üzב’FÚõª7CÔ*ò†=d¡{—LÌ\›“Ûü= ªÝ,ºˆTçòLlja:8õ3µù•“~ÆðÁÛöÌ ‘°Š¯𦛷„ŸRÀwX(ÖŒ +¢¾,®•^vðã ð³Ø&::øLZD™>ˆ}¥‰LŽ<ô‹÷Ô2Ú¾Á:éf$X[8±1Rð™*Ðhñ¼_Qˆ"iH«þˆ/¤šÃ8 ÓÙ®7'ⲫÂlhtt뚪ªÎ/g° +Ì4ù,¶zÆÚîoÁ 'MîÕü:}|:nöØAïS[hà¯p‹7½Æå^› µå +G:l¡Çå‘‘qЃKÊ) wyÆô†ÞUËÕásuî|›oÏ™í?í÷:mj‚ž·#."Í"W­”0÷èŠA‚Ðv0Kú£p÷ãj9îñ¬¼á¡æ%ÊÏzcj?Õ{ÖÏ®Hff}˼l¸0•/_\7}D(„ÿI´¥Kø¨_Í¢:N}ÐCå’›ª  ‚¡K¢7šË½“IO˜ÅWLõ¼èçŠ: ›Öá%Dàè¥u¶…Šš™tŠj:ouŠº=ÖîöV,Ôyåñ¨>䉦½QR<V—õ¥‘Ò]—L²K›ü•K+ÀP£êŠJŠ2í(ö\œ«d3À¬<á/da±x’s‹$šu™ì¨ó(ºê%—Ђ Uà×ó ‰"ÈümDr9 +Q„3C\ÛOgDÚÜn¹ô’¸óÚòr›Ô. +Þ¸¢DK¨)ì(aš[È€t–hÍYêtÔÖÐGqRæ6•‰KÝy»]–6xüWAè6)‡ºâ“ùzظe–lb¸f^|Ãñê¹£ÙúoœÞ³F\ö•1‹e=!Cr¨ÿy¬˜ŠÎ1ŠS‰hà¢ýÖƒŠûåßí…êmdDÍÂ-ý>Yw:’°hé™ @£ƒsk‘ŽôóØ7‹µ®퇣50&d&ü7зèG’šu'Z[¹‰ÈÏ1 +:«|‚â ‰Ó„ÇbÏ3¬óymoØËŸ›Ýdš§zR +ÙÒsýá­ˆ­Nœ6‹v5‘|Œy3ç2—iÎ2:-R‰E§WI6E±Œ:ü»÷ÊŲ́ä<Û&7¢ÒÜ*8`#?nXÔO—äOl,T‰É [3¢Ï½?«æo!"d8…Zâý–Ë´²û.óª1tH(¹p v ²˜n»Ìì`ÆÚóð åFï?1“«Y‡wúCÜϺöõ§1—ˆë¥ãÓd†%K]$Óê÷U@Ê“>Ø2x^4ÌHÒŸÁÇ`“*íú¨rÜ?Bl[m«7©q7ÿö›2i¥ñ+è2´§ð“Õ¦ÈCÇf‚®\`¬1ü·çäš¶û‹™xK*ežë];eM®#¢¢¨è‡gÉ‘Ûnq R æ£+Œi/½WQ^æ }9•v…‚ƒ|?ç~^T¾\'ó§DÛnùRàêwo÷7xÕdÇ"­Ýûžé‹NW½ Ðzsï‹|YJTË̓tÙš)ª£ÆPÝ5H 6ý€©$±àãð¶ìèð4Ê"¶ÝƤüÝŽ$! +à¤ñ-›®áo…ÖGëLlÔ¦;ÇXû‘à¡7nç!Ö#¸ðˆ–y¤í šr³un}p‹³ŒÉ.þòµŽR¾†¿ì†~2‹óò*½óä0zH£^¶ô¢ÀUüty§Ýï$âë¨e,y>PY-_}‚rº-…7¢4$qÀé›){‘æ¥j2¿ÓèN®lÒ!€Ñ…T¤x }ïI/oÕjÍå`÷.óEÆÉžCȸe”;•È>fŠ|>É@‚yãn"NKu4ו`•…?Õ" 3ò̱D‹÷!9”;5Å¿Ÿý>´e»S»Ér²{s”ÜTÑÝ7Û˜o[¤HÍ£»¢ ¤ +y÷SŽGE;×€ÂÎö°å5=Ùðú}÷ 0ðþK|Pü êôî¾),jWs'Fþ0þ÷Ëý÷ŠÀóD~Äñ+*꧈[pZcö¤ + B¶ß•Æg¬ãIuÀ3(Æu<€õ „ Ž"îÛEÝ0äœr ¼‘ó_ê£7šÇéUÙ#ÀYV¶y3nÈwÂÑ K4¶g&ÛŠšà>ÀJ°ãûÂá5(êÁV®–<ôI"Æë4Tó²os…â,SÏäÈëšÔQBÐÌFf ;¨‚TÐ÷»ýзKj…çè¬àÅyÐ÷ü:Ûl"0~ò3ÔÔfå${MUÛ¼ñ‡0ì\ Þ+(‹guÃÕõ?=ýý¡{@Úˈåd»wôóú%( ÇRè¯ä~?)à‰ÎL?µòCXúêC³D:ðë鵟Ò8XgNß $Í5uhÖ`2ÚïβËÁÈ!÷ëPAÐåÅŸÌMç ¢ +ÿûB‰ûú{, ÒPúòsg¦åøi‡ò ‡t‡ŠÔr)ÍxÂi-„© ûÿBl° NJfš™Î™1—˜ãÙöÔÇâÆš9¸>rl»™¤Áßé¾Þ#ê:Úðl[«â¹ð<|Þ¡d ÚàÁlg$Ÿe¡2-ô†¸ÝœðK^¶ê‰³·ÒpÕMÿëêcÙ¡óæéR𺾖[sÉ(µ½é~«~0=+­yŠtÛu€X×®ÌÖˆ€íC¾ö"^±!Ø«ž(Áco‡¶±þKulÚ­®¸¼êÔqæ)á‹ ±Õ±kä‡|Ãt¡k…> ‡ŸÐÑNÖd5s¨N™H§4Ì×+åîÒW-k´fìKÉÁŠñè× ò£ª.L°Ô’ûuöQÎ!ŠÈï-(«°ã-³ªLŠI­§?¾Ž‡ýlqNÐ43ÐÕ©²„åÒ¤c›Ï—ô®¥…Ü«‡¼w¢¨ÌC;˜ýê IÜÞ¯ìº8çº@¾ÖÄÒ?H÷0Ìö?_*ÇÅ# m/ —ÅùÄhk‰ÛAÈÞºÕyÝ Ð³£¢†0½E«Â´-ÅžSW"¨‹CÁâÊk+UBPÐæïÌý &ð^ˆ2½å™ðp£107‰ðuUÇn`ÑWÍ$XŸ í§r‡ùHÒõljçÀ°·•Æ·€-Y_¨Mbs(46›ÉíÐeQŽœ2P{cÙoðCÌuå>}á5¨ä¬w›vMÆjB¾|¢ÃuNìmo3ÈyÊÒBtG5z5ÐVºhöeÒg_X÷ÎN:¶=?nfü“[Àš'(Îo8C¢ÑzŒ±¤TÊÓ! eKè¾pdÊÓ Y•Å}ÇY–„ˆ¸ùc8}ÛDV—‚9]BR‹fUQÇR²ôòÔÑx‚BS-‡ez~òbåSj¹oð cR2¯‚5†xmÞBÄy+y«* ¡bk_·B«mès„ax!UW{‚VÑëêr6¹›ISBùl÷þíz‡Ä «Ï÷§œR€ +xcä !A€»ã‹!UÓj”ÎÕéâr¤ðívt<'µ#/$âÛghjgœP °ñßÓ\°Ö¦–í®êZiÊb`–`JĽå+˜Î÷¬&îJT«ñÖ÷2f$·«¡X_ +eÌ0Uµ  í¢½ä“¡=ÉË÷œ©k‹lâÄi!w÷‘-묛TË5Þ^× ­z©°¢Õs Å`N 6+ƒ%ϵÛP{qºTÑM߫ءÌÀðò tNÈ£ëU|õ…±û¼ªÙ&`›ñúã!ݰR*XZÆ",ûQÙR˜æ®Ó; 0Þ›úéÎеr‚yþ¯žHjQ+¢¡¼^ K•cÐeŽ8Š3×ãÉT·¿´-ªQo?£×Ù?ðÕ|Û@NKõ8 dTñÄÆeò{v7÷¼Í7äBö`Ú„ñðA€9V‰Šœƒ wÛŠ£„Ktn›­Eµ<̇|#¡ÐôÞ€[mÎ~»¿aõ§œ-€£„†þ^'’™‡àtÁ·9_OÏ“Á’0\ãËTD&?9ú;Dpª/ÉTõ°ý÷6 ïü%°òH#¶ëÇÄ7fKñ1v¬ý–Ýák–pKvÕi€Ågië*¸Ž¶çÀ>òï8Ê’(}„·Œ–7ùÞý*ÑH‘¶4à¥NXñZñ+À‡ÈmÏrôw˜±! utΧsF]ꌊÿy5|¤ i„šØÂF±Ä>0S’âÓŽž–ÏÃ7’è4@›á1û]ùJÓ²‚óYñ¤¼X='%6›JŽ‘Í¾i®©4A®¬¼$ÓÔÿº‘V¸G¦uÎ#´£ ¿‰Sˆ»‹v”‘@‘ JÕ±$og‚û‡´0ÉV\m"7¡[º˜¨Ô°g½Ê¼™$(Ë£—¦C®d3¤J‚>:®ÿKÆXÈš1Qã‹øåŠUÝú‡T«™ ‹¥*v{q‘£;^díª'ÿ׌öÅ@Y3÷‡‹tOT±îm²ÁW’¡Qo¢1ãªüRÕñø-\¡çå¥ëÔôsÒCI¡u ߘ)N¾OQ, /0ƒ\TèeÕ)t£WÞšW¼V° •ÕŰìÐ0ªB…aÆ\4òÀÇö±.¥%í®èÚ·VK`NXú5ðkQí4©34.*¥°äåí³8ErF¸¿¥Lq[X©Gc °eJ‚)-ééÜ©ætêá3‹<ª‹ ÑQN™¹2´Qï%KE*æÄ&KB¸ÚîW¬<N˦¯‘«1 aþˆÕaïºÔä™[¯|uÇÒÁ³õ:Qs0œqT Î?o¬ú¡xxCLl˜Å¥ÐžD‘.Òa +°:ºäæfF“äH쪸«dç†IÊ_ das»‹fÙùKtwŒ>E f‘%ŒžËÄaö³Ò÷øÎ™oŸ oð6 VÉ®Ç%ÍÛC+ŒzÝã“â+n¿OƘ½\²Ô¶ïh]3}&’ÃRK†¢"yÈ»·Ûµ:ñ`‡øæ+p<p'ú¢VlÁ<å€ §"»—ƒVZOøÉ KûSGÀý4“…¼×Ë Š+LY3“„‡Ü1}ëÓó²çTǶ paÇúÜSc[|DVï}.QË¢—D¨<ØÇ]ߦÈI3*^¶žS>ìN3mÕT¸L’Gë‚ë‹"t0ýW:ðg‹„…ÇÃgåSbWÈtw‘á½kõc±ØÙÀÃ6ârk&ú¼ÀË…‘ºž1u³vh,Ún„(â 2G°„¦ÛœOµçëí†0TöÙ"÷ˆË¼™ +Wo>²ÿ6¥/ƒîÓm .-ª†š5–—v˜·«õn ¶ƒ9’Ð8·×bÌLªŸ—p`åðÞyü%TÈÉtø‡nkÃíôeükdâÄ&ÁÊï󮬿‡'OÔnL™&€AëgVjɱ†u©—†„s 8%ý££ár“þõ_RXHaQ&¥:•±Ð—%âu¦—A+tWq4;â Ù±ºåØ~nƒ=ÍåÂÏã'µn * ŒÜ«\åX0ƒpý¨1–«ŸOußÞãÝ?Ù&ĤÏ9Q-IÛ|ÙþEcM^ƒüSL‡Y— %«t4^­ÆSwÉ»ù£ULÈFDeDmŽüv³ø^Çû(Ì ‘˜; c¤ë¦L Y;e£SФ–ˆ9FxmèìÐdÆ€†ºõ¦¤¾…–’:ÿtéÃkEÒß}·ÞÆ}1ß´qñ·’×™…éÝÆºCëô/Ï%3wH ƒÅ,íŽüH~cÜÚ5Ì›‚CCGh~(ÞZ?íH‰Ì®n‡.ÙÛ"54”´­Ò`¦k… xûé>M ¶è–ˆê k±Ç&šÀ*@ Ôï¡R…2ê #(KóRLQœ¨ŸeŽúD4ŽGº´`ßÁ¢Ȟ ´Uì@q í,á ç7ƒ–D^32gF¿0IH‰8ŸpûR|Ã#èAFˆJЏ|ÊÓ³0JñãíuzisŸ8FOpí¾Hv€µØû\â0 œþé>ZÇ#W¶™ôgaã—Ñy8¼B“.\][û-YΛWÍbøŸ 7 ÚüŸ6«¡‰›ÜÉMH_bn<è*ˆ´_NÁWxº(I‚—‹Zôæiwn¶¢Áåôð®:fÛT©Ï P/D¡ÁBTC¡­ 1#iþ”`¿Ëðò™HÉäØex&ÒZ­>…Rðo[®é;Ú/”†ÃÙkÁ‰´œ^œÍ/ÒŸY¯ÎAþp49“õú!GˆâЀ|ZOgbE~ 5àw…lŠå[M36qóVÑ6è25žà`Äø¿7¡P)žÅÃ9rÞÚ̶8 ñŸÉ¤¦HÍužóFXo„ +7ªydÝÃ4@7(´¦¤"!²ôy7ú>¤ÜSX" Á:ðš ”Í=ÿ£Ø‘hsr¿/ÚÜ–o„õ2þÙz‚ú•h~ èD³àcœé~×òu¢™¨ÔÉÃ<¼)ÀBÓƒˆrÛÜ×9À™Ž”?¥ e<û]dE“X2‰õÙ/ ÿ¤À˜·¹t0µ1Çkˆ]’E!èûõdØ…+§ŽÙ|s§EÆJ“ßG§Xu7Œ1¦bé<ªW¢óåx/ì¿eÿÇÆúdµ×ZJr¾Íðµp£óêNWî̸-fæÖ䦫iñŒ¿o'“‰'ûCa<Š!ê”õeœ}DZí–}ˆ$‰µQ²òP$žˆC`DíN]£Â¤¸Œ€ÆÚ¼}3É® ¦1?v­Æ¢#$»å¹úÊ“÷4(ììjtýýc WœSL n|l૚Ñûq»Œ§l9jKØq–æØ'~¬º@´©!Ço)JÌÞ-k@n[ü–zŶÕÎç×nÏØ]¤·Fžm» áã*‹wqmX€y~iÈ¿ý-Œù(Y=k;?ž X,]3ûÈ–ÙÄwÆ„`%tˆVæ[¢e`ÐÍœB P88–N¨Æã`ú 9ÝHu¥ ê—P›ðòŽXV›úµù§;Ï0í)@êºMß6=w\ë½; ‰9&²µ•)Ø¿)â°È­÷Þµˆ8;= l竃䛱L pë¡?-à 5ŽV{ç º]Áz…ÄÄ1¶ô¤À†½6¿×û€ú•ˆEi‚¹\» =ßgHWÐ9RŸàúÔC\>6HIÑѨNA‚Ú¥¹ä iÃbtóá½ÛƒÊy±¾_[_:awü0žíèÆ ?oÄ[$8ô2’>u° ËúØý‡ã&ƒÙQqÕà´õ²½íæ/½N!-Ý[…=\g«âõÔ¦ËVü¦¹Lx ý£È{ +(n‡lƒ)!Âß©¸Ÿ÷7ÕáFdæ.Ùӌ߅É?›¹ÏðYãZ–7ff¸~ç¾ôðÊ'/@uÿW’åö} .<&^Ä6Æ#ïm]Úl©usIH"v â~›•ÍR?i_¥º H¡ÞÇ€’ÅJ÷$Àd×ÇÊYÊpk“]ˆ™”¾ˆœw¤ºp5Ñm9sÒŒ¡<.[…^"#Þ‰œ~ŽŠ_T€1`?ék0Jî+2*=¸j»Ú¡[Ðiô<úG§g BŸ iÙ½l·r*>YÒS¿D HÀüïKŠÔw™Q¬;^¥b`ì°å¬Ð?¹Ù¿Ã?ï»F´}“w¶:rk HÁ.ÿ³ Îé N«ßãYÞŠŠöÜÁnP/õ)‰M¹;Í–N‘ªöírf4×3ψðóáÔ à›FŒ–Zf¦Ža„gzÛ™PÕ³HíݤªDöL†LŽj(ä&—¹–3L̤nËêOí­xBX˜Ùñ ’öJ¬É„žæÏœC~µEMîݧïfN“Eî=-é¸Ï^kçëÙI?ú˜ÛÇa¤\[¥u,7:æv)ž·<ÕóHó#Rg²¸ênn:¥€áP)Ù *›ò-åJä¸"™Íxóˆ?Æ­Ö™Á’™@_¤ƒ0YÑ‚Š +>ÀÏ'Í:TÎì|.;ù¢)1,W«•¥ž¬Í«  +~È$¦qCÛ Å’†ü +¶À^AÐÆ¨…mή[hWõõ[u7§šöš†²‡xJ•ÒŠ ö­<Ô ú7u!¡$’4m‹ÜtvžcçÝY7w€ŽJéîn,$C$OÈJŠc‰MŸÁãš½Îާ#÷8Xµ&ΣÌ-ÿ&èå-äô³¡S½X›xç˜ÕÒ à¤¼aQô´ƒG¶äŽ Ç®»?íS¯ëe?cøUZà4è‚×ðñ-`v9—­E4Êå}z]÷¤½ÛµÜÚìe%þd,Ø t†ÛÏV\çRlÑË´ÛŽ@cÏ}^Åš¶c*0ðv…fC}8 TcóL†”"9’g•—|CÄ0L/—BsHe-ÊÃÛÏüêõwŠýð>ÃrkÎûeR).?G€lž¢qîûý>µü%lßC‹5h’¦ýÏ&A@a8ØÀâð#ñžƒY3èEÓdºBd½Ûkª¢£irÔr ;˜5ïßžöâž ÁÒ¥6vf[o6 P Œðl5¿¤Z® ŒÂ~abðë¬N°/…Ÿ¡9ÓÌf>“Q耇õ¤˜%_FÁU[nlˆß÷Ç­ì)äíÎPºÝ/(Uç¬CUØA –WéRZi[õ¢øôæîûëëÄÚæ^²½KoÆ#¦n +Êÿ¦” Y)KG +Ê=ó·­™êKô‚M™΋"ÿЮUH¶·ŸQU‡úNö¡Ç®-ò¸&Á‹Äe+~e¯j~0 ¾ „Ô$0–\Êò¯5#º2yçú©e<Â]Å#)ˆQxV•Ð;µx5ŒRm³ì°ïv~ììÓsŒDù¸iýl|m{Sü¿a“å!ÙBö,ñ÷ê¤ŠÕ +\]l1S–:xîÆ qx™JbØïuO5@C a'Ó»ìˆÔÖ„¢l Ü~¶ï7a›üBög!†RXÌæGåñz'²}¼ïô”›©uçÎ ÐX€õJ%> ?3YKÂå « ýçÒ½=÷ØŽHö¥Z + é.»&“¦>ÌñÐb»1Za7ùù?fLls‹À¤DðgOl¤Ÿ·øQ£õëáOýN/ÀLç¶«¹ÉNˆ¥ô½gÛË +¿Tʲ˜ídþ¯ãø<Ä­=–ªþnŒÁ¾…47uXŒCѶˆö!ý•âù5>z‚¤ðH¦tíC?@®¾Ø6½ ¹ï¡–\o^Òs¤A÷¤WŠj=¤Ú×ôíbqòËÎ!Z[¬¸¿‚Wç„Oo0@“® ÊŒ‘}àÑX¹zU–bó/DšË#³ÃJçŠ(KN<¤–çFvˆ„ÐwÉY-h‹ªøG‰AÍÒ{vAGüæ“0z§e)”Ê›+5Ù°C)yEr­#Ý©«&t7{mBÂ70£Inw;[lžš/úú•ïcª.–eê¶Åm‹WvS4¨ÀšGmKWö唀Oj†¾5çz=Ý0ÎU{!r‚‰&}ÿL‹|æþèÔ¡¼KîÇiè’/$½q³œhÉÜ0" àKÖ{‹d/YUÞÙÏ™sÙ/„\B&vµý¨ÂÙ…û3eÆ·©£ºhäb˜ $¾ÚÊW²ÂùÈú¤–©×è_©PTg ÐIádÿæ×0„ZQ¶Ÿ™Ô¤üáÕ]a @gý+|jøj’DV‡ý²Am}²’ LŸÛ[b;ì†0æ¢È= q÷‚-Ñ&%ö\åD„&ƒ¬Þ¼º–²_CyZ¶ £YþÍ“sì²-5†8˜tmºÁ/N6–€/Gç§P>L©yˆ·7Ô5@ø™ÿgJØ–»Ë´ÑÈc æŒæšÁéÏO¡W¡ü#dÊ—ÉàHýXùvcõvðò¨É2\Z™`ÎÀP,’R„»(#)÷Ô©¥¥e¸á*ÃyÊ0ðG`œq»œ^ŠjºfDÀ‡®.¦ÚuÔ“à”57'9ˆ%îåaAÆHlv“ø4¬AÐjäÏ{yP/Ü5 ¸Õs4qï„1 ‚P¡7p1C;…Hï®UT~ž""UÖ‹l|ý(h¹:Pø@˜ôùh¼±7ã"kwá©gˆ=ážØkvsžEfjß´VøFjö uÞwóëÆ0Eª²0µ7¾\Ò>ŠOOY‰±òE¼ö¿A¦MB×0ü'üµw½þœ9L1w'SfÇ¡Ät¶­Ñ p-œ³Hõ‡‡ôÈSßH-ˆcwp£Aއ†¯†rZ›G¡1ßTÁTð£G¦ Ô‘ìüy'0MÓzH×Õ¹9›ÇSØ!Ìisµ¨oP¥Ý`Ô%Ù‘ {Ó^ˆh8Ö¯PBÒp¼µvÔrF"^Ë’¬Jt5eOFjç´óïŒ3ûà¼Ð¤ÿ¨ÐEþ‡+wšPWDÿú‹SZø:ë3À\}~$>86¥K¶¸•o¶wÇlÖÛ½Ì$žå,Âϰ±z%Ûf0Î0óœ<بKËVšpê)Àά ÕÛó‡5ÎüQw0%mâǺï®9ݵ–ï¢éGç_>ig­€¢›ÐU‰¢imb¯­n—Å:05èê nMÏ÷éJTÁ¸IÉ ·å¿Ù儞i¥P[ˆðV¡)=—AVuç8‚æË–9ªF²¿ï*óEz5v=ú4 ÿ‘÷7T¥P{³æû›…zo A'_ºÛûE²¬ÄÄÆÌP•s„æ{ê§xÒfdµûqLƒÛTº;hë›eyúK>«ä²,v‹5]õcÄÔ(¨:`ƒGÓÍ<­ˆœÕã‰Å Pƒ ÆÆ +ýÁÅÈ*ɲü›HŸ=©ÈœÓX<È.ù×Ò]®uÞ÷=@íÛ:}22îÇm¿=šÄÍ›é…"ù·®J +}(f?$üëÕ‚Ea…þ/©¤N£´ñ0ȬÞ÷Ö‚„AéæªK;Ï%Vs@Dðæ­ULƒŸÙâæŒ0,˜+~)5/ ø«L³™ô²&$ø½ño-él@¯ìy•†G† ["çLYexÛ¬‘8²­ÁtxF!3[¡ ž$Û?O¨”‹ÿzª–ìþyW¦ú~T,a†HNŽ®Qz“¥QBcבŸªZV–:•ÛIñ2æ„[¥I ÿí~õ#ç§2ÙÉòžrÛMLÍÝð`\SÛŠåk~¨yȉ®½¿¶{zP‘ƒO–ý(Q³ò'y ×¾_Zèà”š”óUŒú à0çöM 3?«_@ɸ%HK½Ž€$ü\µõn*hbÆV‰ô ¤É3D·4”Pö§P«ÄÕ"¯LQ˜…Ùv~ -9K¼0Ìz{"Òæ±D“ªŠMÔ¸Š:²¹ÁÖy ^!€'JÄŸ +Y$¹®÷'Gñ$È0éhgY,Ž]MlÃóMñÈCêöŠQ³†Y/(B2ÛÒïBÚ€>ÃX¿~úÚ 4žmy-³G”hgdÝYgÈY…Pì,ÑÓŠüeÑR;áÆ˜–’s&ëœÈcnšþO¡jÑeê”3<ò`xÒ¤pj‰¨OrJ¤ýXVÏkÍ]²†¤3bÁF†‹Nøa$*A·7&ÌØèøÛÓ÷™ôû}U¼4ªs¹ò“¾Œ½g¸ýÜÀDŽò D¥Mܳö‰#gT +‘žZE÷èFYˆ~éŸU,þiÂm7Ÿ¥ 7ü"NGQâ¼æí]É š ~m…©è4¸ qAl’’šáCàhchIJ2>ð*B–g!ɬ…rg°•æ Eæê-ªþ@TiÏ3>žË]"1xŸ¿¶Hêþñ¡ðÞ«¥>‡-‹ü–eÍ P‹¯I7í2j½Û?ìÅ +|f›¤i~[U…lùû´î#ï_¯k«3{0© §­¯5û™¨OÜoYx XU0¸Dcâ9äþÕÄõLé+ÍÙ(Y£±Šjݵ,#añÚ›ZTb\¤Æf×:‚Þãj6ë@½@Ø[0V›¼K+ò5î=òOŠx³Tö +¤ù>Qôe^JõÈoY}Ö²{~ €ÂUû›XàÒ ´µ€¼B=T§ç¯1h¢¼ê쌱†*™’õ՞Щªqçß½˜iáìX:Çj,iK øb•ÇÚ`½ Nà®ý~«ibŸz<Ö«€#þú Aà/ô9œv½âôÞFìꇲðá="U“F þ͵}H˜ +îŠ1ªÌ0ùW¢¥2L½ÏOÞj Iè"xyu3iJOëŒjõÈ…*jÔ’ 5·í¦~T_ ÒOŠ¢€ygmþ"Ï+ãgüôªÃTR©q1ëYmqû­˜Ïô¹]íö,ÌpRÍÆX¼ø<$Ÿ^?™HÒ‰ýð­è«ôzÛ‡€––!Öö}ƹ)<]áæÓGš£·uÞòÝÍ‹¦i{ÐÇ]ä›å»+/׫o€²/´»+½Ì·çd!¹šÕ?>ÓðS™û¶ž·Á@—=>᳡v4!jÊÓãàΊËTY!‰[£ÂyðÓî?¤×QPËÍuñ*'K¡~ñŽßkƒ„¥¼­qÏ'Ñcúo|Û<žüÑè^ðO}ÄCrû°öb+’œjeí¿ØŽ@¥¸`nž(pÑf4ù?4˜8ÿGfî`—B£RAߨþvñövä3¬Ìž´¯Äó¨ܸÄ3›]<1\2(­‰Áˆ#ðÏŒ>ÝèšiY/4Ï‘¤¨ÈZ/Ꞙ̂ÑPù%½=ë ºšçÒ0®µ‘;x•ž:‚€7›BxÌSœîÅM—jEœNð­ãÚÕÜSp„–„ !ÑéöMKå¾Ö¤…y"á“æïT BÆßx—“X¤ hNî“/Ú—6ijyó‘’]ªX"½¾üï¥&ŽçÉ›(J&3&GUËMN+æõ‘Ý.1ûŠ¨Ã‡>·–"Üs’@KªCOÒ€ŠŒg7šº aïß¡UþáM‚ÅsöÓyA3œ9` ꦧ“ä‰nð}ë7ìÓÜŠOH3QÜßZƒ³Èx”Ó<Á9r©<ÐE5þ+üd®ƒ†SÓ.~2#†*ÑßF.ãHŽƒáë€Ä–S¯Oc‡œûÄvˆ‹I¨Î%˜6üÓ ÊÁU_…)\æÜ¯±·Äذû¡^ÊlDÜw=5‡p‡÷FÔžnÕ?5míèT5//–ÓeaC,({gKcAGÑ Q©cò24¤:>´N©Òh¬äÛNÑÞ‚vxŽUB£‡è–a¥Ÿ&7‹±[-v_r)À­BYö¥®ì'¶Í9¶.éÁæÇNDÞ1¼JOM²y6ƒîõlÕ`åº:Ķל¨éwú¡w N\7ŒåT?­øUÚž .‘% u°Aë²VÈ»÷ êóªÂ áÏíåû`a,qÞ;ëáY¨´ºÅ9pŸ+`D¥e%­°&ošãפœîYÎÌØ ¢ëeï•À½Œã‡Òé†é?q9œ+>‹ߢ°!*v¤Ô¼Ñ/ù—€ßÝqMÎÏÜ#ÂC£v>°+U¿jJ$Zc†ÌX‘¼ þÕmø ’’‹sV®«è 8‰`´8côûwÑÚotÈUàéá$.‰aLxá âO×|fôTóÐP·ß*` {Œz’D¶«&F #èõ«Ž;‡Õ³8KXÓ‹çUŒÓvÊöÒÓ)÷Ou€Çbœ^ãð»ûBÖÄÇ`/+ ø7ö]<.vµ›I7ÐnkhP àôf_Ì/‹‡–¢´Wœ‰³<{›¥åGv޼ék{sÔx”š +%ï¢Ëèãz( ¡fëºr–¹hamcjÕ>gŒ÷ð±‰}¶NCÅ—”=Úˆæ.骵í»¶#F+—0Ö0²-¦[›Ù˜k))Èjê‘ñÉìçrmÃÎÔ¿•¶Yí¶j¥»%mžc_R=¢Ã}®Öa—¸ãU œu›'è—x©Õ\º.x~u—q™IMá_37³o #&ýh`Xÿ$T4i‡ÕdZ¾4*–K½ÇŠ]Òçšé~d`fz²ÔË B•_ ˜>éL†Õ"E€ù“µñ«U‚h¿aŽø“¼ð! +iåYR‡LMÉæjò°àÌåöVAüY5Z‰;׿Œ÷G8l%#ä"”¬iG}‰ø'„™@xî»÷åJÊÙùëÉäí4£0ñ"9’Ä©6s Ð…âmþm€§¹{âƒ$yB\Ÿ³ÍdÅgT>ǃØ¿?ÂwÈ{ϵÖ;÷:믿ýpøëe6…t}tŽÚô¶ÌQ üÞ0Up¸ˆÔ×Ô‹øÖþ´\QLhãX~RÌ?™JÏ„1["^_ÂàÅ!%=åyµv9ì®Ì§`Û˜îÛê½±$Ç–¿øê°3ø9/ +­“ô·[@¿’ßÍFûd%?Žx¶þ¦u#VݸØ!ý¬q=Û¿Yù¦€ØˆÙß„ë<ÏázF{ÊA£”!÷qC®(á‡ó3˜&Ù:~D¦P&¥_i±?–ÖpœpùüÑ@'Zq^¹púY” eïtU ‘‰IFÎ#KSÑ€Ê?u?ÌÁ~¹%Å ,ú"¯Ä½NOA(Ñwj³Ü»T¶Â&ÄUŠ ƒ£.Ú ¸Ø*ˆ§•a³Èâ²Úl{Ì&. Á«‡r®U’àOÖô­2ss(a¹í¬âh"d5>NLtü¬ Š+v-˜²ñH`\˜)#6ÆÂ›ÀE(ä#‘áÐ{¼–}Žm üŠVüëù+Æz˜á¡ƒRJ5•$fØOYaúJ=êƒÏ›`;Gc4:+P‚-L†DHøüSÜõ®F¤L9ãf{È»Õà?ÅAçå7o4|âÙ¤ ‰J$™kt0j$üD†Åû@9òüŽ,ðÝ;Ã3±pÊTZø¶¦Å]'K€±øn~G‰z æ%A̓ Œ2g\€V¥|±$œÐv@¨7þ4;CœÐÜ='ŽÍÀŸ–Nô7XUÂSt`fŒù§¼!ø‡ƒ^í‡&g—ã$›d[£2Åæ* &ê¤()P¶ßö«ìذ‚•­,ð%à»å¡€œ÷ΘOFVE™ú«çUIH=áv¤Êlý)ïÙ²m¡bMpsþà´‚vÏRG¦ò´ &<^ƒÌ¬x?2Ái×¥F`©>Lþ@%ƒMÇb(7U3C U§ï~Žý0„4_ ûóÐÕÅ—è˜ÃP‰ {×ãCÓ9 +ØÃïJèà˜Ï\é¼g¨Ÿdmx{ÿ‚çzb¾Õ­½_©ˆ™‡'F3i=ýdúÍÇãpü}˜±2ÌCìLÜÜïìdAóöE¤K’”_²‘c :è±¹2¿”µ¨Ô‰®å4°3xE4„ÁQ‹oá¦Ç‘ª°ð"Q¼^*n\ŽŠ›”š? Þ’Óõ½ öÛ2ÿý[€è &ÿNHZatdMAýôêÀOfG|û˜Ëù'5Ρ[|a»áÖ0â7Ò"Gé$ýî/91¯êÍÀªÏO5~“Â"p=;Sb• +ô"*‡;ôe”&r‘b](…o9€?ƒ…Oçr Aú–aUìÝÊP3À±µ4é3­˜KæCá)ÃlôñšG8¡Ö%Ak§¿¶mç ¦z¬åŒ¶}w_ãùÆ;p9Õ™‹Ùå†Ò „ +ñ£dÇbâ³ãñ‘æ‰AŽ„ºöY2ÅN´¼ö¯)pœîœ 0c~¹,ÿÜ/2Tˈ}ý4¼ÖV0±¹ÒÛï•̳øèÜ:%pÈòUËA²b„¦Ê™[[Ѽõg,Lÿì#| ß%Ýò¸èäS(#šN´hôƒö5<`ä£ß R×ý´í3uqØB¬Ý“=x8ïT F4èE(Øßa%ßýÓIJ/»kµ¸~ŽþèÎE¶ÝS¢"?G씲ÑëØE[sƒH‹àvF-E_‘ tŒwv‚ 6Ã@&³Å ósG;» Û¿¦ а ƒ2`­ƒ{{˜„\RX5¬]š‡º¼ïl‹c¤êeƒzéiTTl¸š~㌠À™-ô²÷N”…}fíáÑÐñ<$êW“!ÿÖ -ìRxŠÙö -‰Ä£~•"9Ÿ^>-æ!²ãšSU8› Èªû²Bí±Y^­Íñ©ò©J‹”ÂŽjk^…‚EÜpr±éi3*3ÉãWw+Âú^y'Š£ôí¥—øV€™ì÷|âj‰Ðõ5‰¬´lKe}0«ä!b%óì- x2£AdÚŒCÎõé•>kÎ[J×·N84¿Aæv¢W„Èëp$y¶õ"£>«Âžéæø^.l– ùö7/3¥S`kUñ=¾$ì±&/ô낚6•ø2>··0<ÌËBµÞÌS¸–‰PŠÎ@Œ¨KëCwpöÑ*ŽÐédä+³ˆh¸ö$IœÏÍØÇ£èÄZZ³‰±UûS+‹=gñ¹TKt˜l†(Iç §³aÿWÛnÜË|)ÌT¼9ßÇèã43„iõªÝN¹ºô6ÍNŒ½´ÑÿaP.ŠúV?oëäÖÆ«ÑÝþÕM»r7‰û\=ˆýØ«fîjZÑ&!=(ú»œ« ¯ÄŒº‡bÀ%ãÜYpRñû´ºç`߉R†súnólæsq¾Ó€X#R àæµ4Evš+¢”‹€,Åñܽ½‘΋Ed¨Ü܆Öì«ÇÛòÖÌÏªÉØf))tÈ m©n–¨âøšæ.Û +véŒPH[úȯ{Å3Y\2øß¡`Çüwš{‰DÉ„m‚—%‡ê}\–+Ág‡ ­òû<ϵ6MQo‘õ–ªâ#>énä@0E¿íƒM% + +6šW²8üxT{h‘&¨m‚<ËCª(óËE["c]áSf7àtòÂÛ6=ÿ¶çïåq`xÜ”G·L¿\µhüªh©¸‹© ‹]ê¿BÌ×U’ÄÙÄQ¯ãŒ¿‡q÷“>f2wÂLÓA,•c+}fÛ8{)… )>èš‹¾ùÎwã·»_ +ˆéÀ˜ Ö&³1JÌ +ÆäöÚ¡Dét Zk Ø®X=Ò™rÞZ…(7jAߊ7UöHDž7¬Ü#RÅHGæ +5iÏJ¿¯ÏβÿH ÅÒªs{éfUÊKoÂŽSŸ?”—ÛÕNý£ý·J~B°kï?YÊ© +M(bÍ»üò$‰ˆÈµ¹Z©>2çWžÞÒ­T´t*¥)Ê|NiP×B¨œS +ó³jQç®áyÊ<@ÅzCV¥»BNýÁ·¼-ÏÝßv´ÅòÖgËÖ—mJæïµÖòOöˆè7ë™SÉpâ…áZÑF]ëåÉ$‘~£†×Û¨‡óI+Üyºð޵ܮ»q©Myè;‘mKØ;N6E€® åÕóÛŠ®¾@!ÊL3#ÐËöY4`ñUÍdåöî—ÍC,ErçÏk­ÅÊøQ2ö^ bl¶CoM};k¾g8)Q`Æ›ª$M¾­òTG”ÒOIx7ÏÐN‚Ì)ŠŒ¦£[ *èÚÒÂàäÇrL Ó Dæa³ÅOÅ^D²ºÙôq+Ø¡q%Í7‚¾)ÛJ²­ïÿi%e‚zÁ@]/`´¯Äauº’‘õ+hë@ï µf;ðÌБ‰±›Ô3íÛÈøó§¡3ë«Å,´ïÏO}Ù¡Q aÆŽFÅ ÇaIò ÷ßFߤº‡OºÔ¡ƒ¡pþàÞ<{k.°a\—¥¤º’”² ;\»*ÃzÆ*L[Þ0»\ËÎ#Š‚‚˜ý#*̈° cä‰ã$á))ͳŒnÇ“J·,×"%\ÃbÖ$#ójFá¸ë"_^çБÏðLúyÝe‹Â‚´6¸Ü©žÚv÷rÀÔ(‡!pô»>Ò­Üðj+ìv!¡ ß“ˆaï…Àá7¥ÙI›*.dÐÛ¤ÝW"L>=Îìë8}âöì•‚žfÚöQ$k?s—:½À¢\N§FpõöçyÎøÞ¤Ó5jÀÀR)Ä‘-¥‰ð[thÃdk±Õ0°õ²éd¨ø…ä1²^>v½4R¬ÔO{´ÌJˆâ³±LJÆ„ZÖWƪMwö…c¼>}0¶Û–EÏý•úJÅ7 +›s4üEßÚb°ñZ‡Ñ‹È}múªÖBô¯™ÏU×qxž\ ”æ{¶íÂ%±Ã` Sæ¤ÏØüÎÀ´*k‹­×•-/†èAb÷j¾î¾Ý_¦–­ÅuP®o§bLVƒ¡x@-ú€C9[RY‚™#+U¿ò¢m#^ð r”7¼¹:ž"Eo†§xò ;‘Yhi׫úšâ4­†¤¸Q_õ­ìJ¿ xdí ×iò4©“§jõƒ=šh3…z `ÿH~b3”êþC È7¨Dšbæo*2䃽¨*,äuª½¾Ô—Q-Ô„›L–d dU©fT:{Ãý§Yü» ]íòE!]D@X7Ũ7‰RÜT—ªÌ/–s¿ñå㉮»¤Ô«ºq{%¢óÙàþ¨Â“«Dþ¿ÙMµ™ÆÊ(ji޽)šà“AÏrÖÉãÝU¿Î*œ’’ŸEüOŒ$#Y¨ 6ål¦Q%?=ÊÎí–ÿV£Å|]ÅùÙ6ü^yìF™eÓ¯SƒT›ã«jôæÝÓLä¼m<<;C™_º˜ÁIÌÓ3{7ÔK\÷f‡{ª;E&¶ýµvsSS)raÉATÕP? øzXãbϦ扬¸ÑdWïä¨nÓøþjMçpW~ðî½²¹…Åë£P›¸âxpÒ]ÉNÞÄffëzÐ*‹{¿–ö1Æ‘†'‡hÞÁS/1ù¢³-Zmh&ÑÔ.1¡£27bBzÓu¶Bû³f)YPô5¦«hGM× ºÜ\?®Ioß ¤Î6ÖC>—Ã`7†fá£* ˆé ç•þ&òF£œÇ‡@û溞·¯Ã€;ôuxÁ+…ùôK6Ï9yò¬M¦lŽûï|V\C\Æ„9÷‰Ð›ä ÜíKò¿¾/†´¬LäÞóTû¨›•Gë½ïf±Éæ€þa:«ðŽ–¸L™1ê^³Å)ÏkܨáN=Dç8%i-wëØTU$aÕ±Ì¸É zbØG.Ô„¯·ØT0‰RúŸ=ëñ”¢Óúç–tCe^À‚;bëq{3sÜŒÎ݆¤X ÜÃzC4ÀUÜøÌ¾å¼-.LC+†:ÚÕiú®ÄfŸd²ô @s6À'ýMt£U§ûJòœ 'a5ôÅPb‹,ðw­Lr’D¦SSHÍôï“6._Ö€úRmc”]kf 'j›ÑyJ]ÉQéð@Á·(Š>޾Ã\Yˆ…/²~€rc f§êÜQÜb Ts,%=Ìðß[åõ~!§EtéQêÿw_®.½Íkš?07¸ßÄÿ¯-8Ô«‘ºmûš%О‹»TòÀ|.ˆ]Ó Õ}Jz:ͤYT×DºÂÞ¨Ÿ963JëMÑHÌèΨŠ …œnæGMî4R‚öBd†ËùäYž×aVŠ:êßBà:;¤WG33ÛÏo”…²o ÊUtfþó»Gb@Ç@°oÞ™ ?S’zÁlU¼¶ Îoße”†‚YKÜ -AÔò…“ñzGü.78vwY‘/Ó"´ð¯23ÑIš á"r7åˆ6{ öŽÄfät,Ž*µ°úsd@²ªÈz¾ñNý†?ë`åÏÞAh÷£iáTñsn0‹á%WÔQ«À¡‚¹(kS,©iõÎRÛfàó2™óð:“‹nœö7 Áî GƇgâ Ž::]6’LÌ]wþ*ÀH¶§Ÿ¶˜WÍs²FÅ‚©zÉ 'ižrB1ÁëÇ‘„qñÄÍøX\Ô‰osµ…¤^à ÜüP%W{Þ +ë€ìùHHè=êˆ)PάãTæW¿»bíJI–suÏ‘TŒLTÉ€<ÅÂí²ÄVonq¨aí’šˆÖ°Ãx:¥Û"9eböA’é“Q±„6ÈwÄ£ø$„:…ÖŽá:ÌìmbA°èô@×¶ò§Æk¹©&úd|Úf‚’tj^® +…D8¢ƒp›ïQº•ˆíž²¢åB‚¦JÀ;I€÷«\.3Ùp­ËR…ªqŒu¤l—SOðÆ@­×M=ûa^·©AÓV-<&,Ú`¡Í€“*M‚ɇ?0F)¬²›}öÐ6eFI>§™O4fªÀM)ÔdÇ6j|0†œ÷¤.ACãHuXÿ[œšá²Â §ÍJyY¯jì¨t,þÞçq~©Ô8.¼ñ~ +™Õ$è‘aÇ‚ í•QB’]h/f.ð:ÚW°¼Á*ÿo<£2â(°!¬T‚˜ÛNƒB–òxü¿é\0Àwø,4´Ÿ?}VJë7‚ЬÚ[4€<Ç˾±·úϨ"XQýu’ÓÜžÄNëÙXጨX¤ZQ=|À‘õ=WÒ{13°mÑ€RÐæRÖžƒZ¶gô{˜Iã¶=ÓËFOø®Àî—§3©îº6ýo^>aÒŸj³k¸“¡'†ZÁŽ2í”`è*þ# \©¶_Ùt:=šœ˜V"CÊNÃUËcÏÅ@ãIæˆkc¦bÚ¬`Eì\›m¾ µˆ ø5ª/LúXží‚1Ôâ¹PC¦Á×-“`—9 megÛäã´àsÆÚ} “¯Ù˜7š†]vî÷Hò¿Ø¹Ä7W}¸÷D«AÀ½g•2ثķúŠ^˜Ûž3w[è›Ã?/z —ó ϯ_-QäŠ<8£ãÛ¢†Pæî9ewŠžJÈþé®¶×£Ðic8Z6Ü@!JïªW8mg—s¹RžÚdË®°V[~%Ï1US«ö1Ùg†iéqckb^|¨´B?t B6‹îV°ƒØ .Û£0Çú£e…3î‡ÐCËXÑû<ÊÄ™–‚šgôä‹y>hÑá=x"‘Ñ ¡¨$zìþË•C uŠi·yô9Ôµh;%ZQr¾N™e[÷`ôîöa÷kê“Â)ÁÜÁŠ·ä5(ÿˆùqÖ 4묹ï6ýy(!Ø€¹¦M°5"¹½H-Jîû¬þqŸÁóSŠ ÕŸ‡v~`*ü–Ú¨±ÍoÜa{]”Ì—­Ï~.†‚ X+ø÷0ê^¢ã…:|ãi{ bQ¸Œ†Ó¨ŠÅšŸlµ$O¢µÝÑÌ›ã…Ýükú;8)Îãt  å?öÇXI|%I2Èp¯ªp(al4¦'_qß[^<†Ö³=ë³|4H{Êôþdã²(€²œ—mÛ¶mÛ¶mÛ¶mÛ¶mÛÆ^¶rnR•ªœ¼ÃLOÿ˜þútó /UâÖ_«O¼HÒxü^-îßbŒ¤[Èvñç9ª èDTñ¿j{³D§kÒN†‹.kä1aïq›x.ñöõ×E£hŽZו„ù¡Ä‚¾òž8PöÛN0a¶$mî†SîãáÒKŒÕI%-i8õî~ï“k¨Ù9qºZèþþà\5¤±ÂˆDÌÝú5fŽìYÜsèÅ`°•«Q?qež›ó² – +*ìha/×á.ÈÜjÌühݨQcvÌ€Zfó?µè¸ÝÏÂrM QʇPŸ1«¹ªZˆ–Q<ŒgvAÝ91ù—è(µ%êUÿKÌ5'v_4¯YØ÷[† +yŽĦ’G +¢ˆ q¸a¡Ž +-¦lèIº¾KØ iý؈¬C¯7ˬÿØr2SŸ/º§ÇB “Hßþ°šÒLBU‹`³3Ù¬‘ºÞ…‡Ý_ LÛ$Eá¯q^'hW1)u©P?r¾@훵°—'Š¹Î¿á@wECPk˜çÜÔìô9¯z÷Só´ŽTc×Î/Äǧڅ÷V˜7ÙöýGšK;ÑHbÂ^ €K$¹˜ÜNn¬ÓÇcß:¸5>1­ÔÕ`´ˆ¸Öÿžõ_ï‡ï Í +²©•±{ñÆOœÌÇõ¢ÌЖPeÂHŒ*è}]­“Û• Æô[ÈÆìáö(/8¿$··gq+HƒB!OE… +Zà2Y¢ ‰çMû!Ä52ræø®+ùȳù ŠÔ…6 ½ÎY/æÀŒëÔâ14ÛOƒ[ý ­ÅçÓñj`Mu‚ÒCÒŽU¤… ¥£Å¿=êK«&LÐÆSÍ/BÂþÁù«žT1do’¥t€¶œžqÝd6¬{¦0U$œ|zóµD¿ù(¹'˜ù"n7…¯§l¸A41ªþj58Ù¯ØÃí/¾Â&Tîxë´œÐ$Ë’LýzÈt8?ù+½»1dŠ·Hhxj ÀÐlã¡{Ñ¢½XåòOùôÄ™/-ô\ýè¿RÙõ´¡WÞmbù×gµŽ‹œ§=J•»pAî¥M€iO™çÛ¬4"¼"K9aZ£”š;s¥B‡Í‚,’NîøO]¼{=ñOw¡ü±¡Õм£$¼MƒÀßÞˤâ¥:Š'/öý®ÛŠ=ÂRûõ©u6ý‘ S‰˜ß÷›¹meYÙnþ=™Ù9Oåô¢:÷ãÚ«Ÿ uýåü.dt}ÄÇ-…wüò*«"³ Õ­Ôõ¡v)À  „“Äå”0„_Ôë™õRú[ZXI®Ï,lÉSu^B%Æ€r¤àΩ·-!×d®cÞÑBÌ#F˜º„»* +Bf¿!1µLað; éDX¬ã)‘a^õh/Í`=BV•Üñ!>µ`B,F§Ð,ÓZßmW$ÐØÜÄ—¡’Ç@‘×ù:¢½9> ù³wêÕ—5 §®bÊO¢‰ +3*Bj?˜F4§LU6m¹Óâ|¢GÃ{ïÍ£ˆ+ú˜’%ÿr•uÙñåqÿ;J·. ”5‚'ggl Y 9ØüD1¶E÷5Ýý,Nàp¨~ßÊÔ—úuïÏ™vÆ3¨¶EXèÙ?ùc.°=xüjÃÛLÜÑ Ë,aÒ§ 0ƒ€.»ºzwšðe…Ôih‚KS‡&gïV©o£ö«®,KMMæi:,ÍÓv·’°£]¦DçV"¸_®v8ã~9EŸ“eË‘êX"ovœÓ7»“¿ZAT‚Ö©Õ£(úC¬æ1­s×$¢J¡FE "(½@,Âçs¿*Gm84C7Qír™¨t%”c¨x!ÑÇö‡%É +¥ÀdÛwyµÄÀ8üÇd<Ü«ik7Aö¬›ù(„î¥;|)„ãÍïÝl!Ý/ƒ—SÛ1™Ïž"®h§UâØ?_”Re Ÿ ®ð”–| +ëœY4Q-Ó6Ù&VTÝöÌYÔãZJÛh äUÜkù*„Æ®`;Djâc\¿^àfFqü;þMÄǬœÔ0¨Oว’leÞQé}ÁTuNDвþ†‘øµFcâ³íñX ©§]^ÍžÑæ„%Ý'#ìÌÊÿ’-•Ö?\ò –»ª­]N´JÁ…À^Ã$ó¶ò¡~ÈöâV¿ UZþ”TÉ óÐ.ŽYô>TÐF§fvF((€²Pqp€Ð”7¨Û¿åâ‡sèì–ôø­2²ÀÓ!ù¸°Ô,qš2¬H.Ê/ÛpØR¿„a˜ïFÒ‹Ÿ~øÄÁ+ÂYdnÀ¡T¬q’Ý…Ô«S‚Ú–´eaИ[‚ÞiÔ8´•yÓÖn३ Ìʌ⡂ŠîÕÛFÅ‹.}%1ødS²¶WËí{nö®8µíþ“eA_kð‹2‹³XD/>¡Öt÷z½¸'©4~ÃÍcÂvó£À~,+KÖ9¤ÒA»"\-•áa×™„Ù.Àá&{%EÛóÌׇñP¶@|þý¸%iíV¾l‰ð ¡ å„rVå<¶³Ð%em rëÒ¸ÿ[¢¯ªù“xõö?¿ n±=(m,˜?O(Q¸PjdW€²gÚ/Òmn4¶à³™‘/šáx\u×Ç#Í8þÅ‚yŠ?÷-¿‚@9ï¶îMg+°x…¬×³Ÿ6àÁ8Ä»sÉ'Š‚Cdx¸ ÒQ†fN™© ²à¿Cá½Ä{óð,ð¨â;‚G«ª½³ãŒÖå’¡Ù†ÙkÃâ±…÷7ê´bÓvL"í•j8Q³šÀ m1Æf¶Ÿ—Js”ïîÌ•øæ9z²‚Qd·vñÇôÁâÂíóªnp„Á3~_4 +þh”ê¼-y,ìwOM´B[.¨ßŠqºTú­kªùZÎÔ3?+zÞ°…²„hR3GAÃRIfˆÅXXï•":›s’'}‚ˆ„Õ •µQÆtƒÈʈÐi¬±(ôUÔ¦í¦6ãnqVcûÓhİžQörâI© Ù8ž—·ÇËгç9&4ü®K=º$¬~ðL1ûq"X¹‰)\ ¢Å¯ ³XvCÅRtbn¢?×–Tæ}%cÒ×—yˆŒ)n_¶›ØÊôÊ…DüKì†X! î”у(µ–‡!7©øÉùC°Þ"Èf! ÎÿbÒä5íृ‘¾üv 7UÂò’ƧUÐÈB9ó‰³G#m6ëïEuÊÕŸªçop®n4˜B^èq«í]“@?L¸ñ[äR›úp¶¨Î´Â(Þ› åÀõá ƒ·«ˆ65p%Ë|jÔª¶Ë¢±ü„]ýË) ò »:ÍèCJki¾‚ðØø¨U¦J.S +sl¶…]¢JÌùu›8¯oµ(b¨!mnM*ŽÂƒƒ'œ"WìÎõ•ká!_]¥NhºV„V)ˆbÞ´¹½2Iƒ)}'w$%nTBei“ïòIÚ¢üWòÛù­'³eÜúÕX¹EîÕ³!ä‰òû»ø öâÅ˽aÏ·4fúÐE73Δnì‚)] ç"P¤­¥¸öiœ|upD¡„3ÿ{8ù˜ˆÿåƒÆ«;à=‹ ëˆu`yíj¼6(Ž`døÄî‰Á`–Á™ZÃâ% ®–lV«1˜ð +ßɶ€¥)$͵=þ‹r©ÒÆ©þ«?L¥ðßUýψÍ×$æ©«Y=8XÂYë; cÝ.Þªª¤¾¸bÛ·ß µ¥‹ïVKá®kE ©·“X—»«dŠÎK2Fîv6@œÒ6]ÚJ­v% }ß‘³‚dË…)² ¼U|ÙY6Û)S0:‡gî¯2É Kµä2.Nnð«7…·!Þn·ëmNé*NùžÁäKRZЦ,ˆ;ÉÙóQ­Gæ.Ëñ4µO.bGÀkD)w®‘˜\õp+áájé$3¥¡'èÎT}§‰6ú ïHˆë½Þ!z¥P¡RR)üãùwÆ>ív"Qbã¦%¶ªØDþotÇŠm˨™šõ*Û¦‚žÔL³µ ®á£ÖÌßË9Z€ÌÙ.ðö†~g0íÁÄIpï÷ï)v/ `ÕÚx1›lmBå†ô¼Œ¸œûÕ~ü8KFp "|íýb€£xzÌsJíö^M6¦3FÄó„ä~~+i!Ç$™ÈC«jn"Eн´å§â(ÆšvMÀ9ƒ•«¤‘Ðâ§RUrèeõã9¾…v2:^“Jì°SbðW8Aê/¥ý1.‚‡/5 ŽÛ£Á…$8µßÃ"{¡ÚâÄ\¤÷úpE_ª?ˆD9[¡-©L$á•D²Ýûî‡ÅxCÜ,5R/M˜`mRçµO¶5¥îØkvÎ •µçáÌâ­Ëµ™Þ™äÝ µú^A"Ù6â-¯¢›'ÙŒ9AA•íŒ|è‹xÃçìu)4äèÈMñ)R)Q·Á<|Ur_ kž‰Y ç—öÀ›è_®Ž0¦²yéN¾r—äO@·¥ßüaçUrçſ߇ðTC}k´Þ¬ßLƒrÏÊ0Rûƒ-’= ÄFƒ¶¸·‚ú´á¥©]¼€ˆ ©eóx! +PZç=ÑÿEηÔQp,›únÏÀ¨¥Óá7,ŠÙÇΦÙjøpµÙg H´wóþe†QŽYiÊ4íÝ(Ï|Bê`ï2è«zŒÿfº–ÆÒ/Cl&œRqTdo­±¢ & Ç#òJ"¨ù·ßÑ^¥9üOêelý8ñ’nLeÈ¿ ö:ÌyGådûQ0ßTqÞ´àT2¹—ƒƒ¾tN¾Ý'erEœWå ¹(ø\Ý^Üs}Í(ÿÌkGäN£ÆôTÊf¹¨ß%Þ÷aVÇd€×,ÖGEú.(J±i+éf¶¾ŒN[¯¦ òŽÝÇC“ÈóŒh=Ê2Û^°Î+}{¢ X­EœånèõW¥"ÁÊ„g06ìT~áÓ”Óüâí…E3êŠÍË÷p_2壼ûdÉ’+Çf”í:—fwÒéó3Ìùy¬Õ9P‹«Òó¯(¢ÇÈêø·¶nè¯÷™é½»;Oø×; +ÍÜ}Äm>{IWþ».ÊÉ‚G²ñÿ4=Ù#¬ˆ‡·!­ ôœØ ÄêÂDû2Ë(v@çè§-°sï‰aaDƒí E|È Ðê,ªN©ãã“ýNŸ*1„D Ó×0§Ï»2B%æO«„F„â9Í÷ºOTª2Ǽ;‹_Õœ¸Q‡ÀÜ_×U~…f?²]˯k½õ3¾ZcîVž}1NåYË¡’áõO?Q¯Â²ÿ’ „'~\ÉÒ í£Q‘Щ#×€;bÍ:ëA¬á`Ùe0âæžNè§ðøµ”“ÃÐÍÀþùb2І®ËŒªöc^zÝ‚ € L&6$ƒ]‰Vrƒb^*‹ž²Â‹ +ýåžYÄŠ~K\¢ŠêŽ™Ñ•¨ÊŽÓº}¸s_~Yøç12Æ‘J‡K8tìÎî²8Œ¤ +AÀ² oWˆzž¦¬e”(¤šS½|«XñO”5s®º+G¥>˜2Át6>ËCS”b¿õݬGG·–‡´ýÂ×7U6ÏŸ?«r¿'’³?M?Ý€–ÿÃ05|€© Áw+v¶?p-š×²p¾åœþýƒ6æåx/^¬ç™’’qü“Ä[æK#"–d5nõ|ÍãïºÝüzgɪXb1^ªÑE`¥¨Ã&ç°ó8<ãkÇ}Ðo#„âן=¨϶}€¾3P%ÛHX°ÖiŽñ2–‡« +âPNÉÿøÉÓSNÊLvÏ !Upܬ=sp¾Ú78p¬# ú~+:.£8&!-X&ˆE|.ˆo¶Èz˜NàúV©ÆT¥µB4(–VÄ~êm2V‹\³Z‘?ôßMòGôzp‡XLÖC›ÌM:œRÀ8u†÷”&| \ˆ%PÁºØ‹Q..ÆÏì&¥õñèøÕõlRðRçÜb yt ·é•hÝSê£è¯$K#L;<àÁüàØùÔœN!òi4ײê†LÔï“-Ób4’–K $p„x6Û: Óƒó®ïšìÎEgŠãU•rÍJŽ¡2 -œš³+üþœ~¢T¯!ö± Ì)b¥oÅÀåE©ž—åâ4ß}°Èe°òXFÉ +‹‘¿ ñ±Ô’Rrf$™&×eKR?¡*»ã¢Û&ÅŠ?¦¬0FÐ)•KîªçSÌ~r,À.FgVk^´†$2''ÜÂùù‡ 2 +ºÅKy\ªG0Œl8éˆ/Jì‚âwbß3­@(;ýo@ùJÂ6i¾É»OIã .›cÉ’õ­ë¹D@ðÑlFå3ûŽ µÆ_Ýw×=0/{ŒvÔ* ¢Ê„ÅÝ´@Ùh˲û2L²×j|Ã)¾oXLÚhq÷Ûê‡æ S~/¢´D¡N +g¡&À$–ªýÏ#Uvêi¶#–ráÓ9¤[tÇ@˜Mì^à´x~M5UI–hX£ÙŸ/Ê\ Jwzö»[JHÚš½ðd¤¦±LÅ›Þß½¡²¹¨+ ŠZŒ²\<˜•*i ÿd`ê~ÒK]Ü•\èL×ý·2Ü‘g+(éQ‚ªÈË3 –…E+.ŸHÜšø·‹oA(ä&_ÕžƒN»bf=ª‚á¼;Q»¨i|?ó'ŠÇ£u·¾²¹° +bn–³s¹ˆ…uÅnj³4åAvh9d*]i[RÑý†§ÁÚ}Ëuµ("Þäë_Ã#Ç[qüÒú¯UXE~wŸQWH;0‹"Ý’¨¹a*b k60¡ï?×¹çΑö݃X[ËÕiV\š5IO¡–å|´¼ÙV·:3̬.vÞÆºŠ}$§Íû:@f½°˼ïÌ^³4 +]&ñÅ–xƒ•×3s1GѦ ¾\ |(¶ÚB‹tM÷µÿUêÒ€ ÔBV!‹0¯Êž%;¹i¾ýZ*ðt`ØÙ¥zû„ŽÍ€LÓyÍÃ@ðpJ–ÄÔpëo«üfÏ bÀåSGGbÆUV[—loLãw>&¢%lË*s™ïÊ7ͳp2ò¶ÅQ<¤¨Ô?8äæZf…Ž’òR+èÌAD^®2x(k>áà þT*Î7€rö´xvhuÖ6âxCߤ` `wGÑ™Þ'˜â£ŸÂ€ Jî—Æ±ìÈŠÊÙ û0°ÚhH‡uÊ +;wqŒ–ZÌÖ3Ï?‡Y9‚°žÅçNò Ìs«t>ÖR[s êÌ åq½Í™ñ3.j +GX!-ã>ëS‚1²ðYl×ú¾ÞcÚ‘üÕá5mKü¥¹VKq”‚?°¨`…³†»'Hs‹9_C ÑP'œ²t&²« )µº0N<„ŒC+£H‹·ªe}Òñú.•1éh¤ºˆPÿÙã\Μ{Ú6¯´¡/’­6ÿOì#zEhâ J‡õP@Çï%˜kçð›ŒmÂá Ur®;þÈýMÒÐÕ}ôvs«•Ž% :Õ® w–—%ÀŠ«„ãÅô"‚®ýsÿfÉþÚƒ‹ŠC&Sh&T1éÍA¢žŽÍ½Ëâçv(c%9J¾¼ º¦BÑÑah'‰IÍÿ$Ø‹FX;ïZ®ñ¹Iç÷…œ y£±øíFÀÆ\ìÄ!èE—€V ÝS­Àž +ƒ„JóÛVéì0ˆŸòË7ÎL»!õ„ÖÃe.•q3Ô‡­þèÙVï ýp;ݪµ•¾ÊŽ»x"¥Ð÷¾e&2-OÎ+¹ +Pï ÝÉvãtÔtÄ£®ä/?.ÔR½€¡.Þ#^'㎄Gš#g>9t ÈÛÝ5Úõ·!jµ%¤€èˆÉ®\ï§1–z ŸŽ¼]šWs¼çUä)ÿ:*0Æn"†#2~ +Ÿn³óD€Wj‚y6Œ‚ƒ˜û(`‰;“ŒÛ£(z„¥^&qì–~äU[¶yW/Qò޹Üÿ«)ÎX"%¶Ìuÿ8-´°–;jgJ!#GîÿÃïPh”ú¬¥*™F` hKÚÂMÅ‹®?$¨÷¬#Ô–ù+׋–gîÏ\_î îõt•J ßZ•›B&Ñ ÏŸüLkîHƒ(áÑúˆb'D¾¶ãØ6?¼n>u2dÕ˺ÊùTz‹O g¦km‰Ó φþv©‰/v2MÑFú[ÛÉ¢AšU¨ÏSàÖ´"–1‘h«Ë#5‘]‚„œÇ« ’ƒ¢ú9çJ­žüá(“»´ùi3ÿeC`ý¾beôJÂÏ¡ñßqvtÉ!Õ5a¡ÿg{D¼ß7Ö|N²Õø·¸I"1˜³Œn¿0îöÿ†c"É ˆÔ"‰îô€ iœhópb¥ ¨“(WÀ¡îƒS¨8zR«³8;,‹‹ôz×ÚÄúäË…871 +\küa¡Ë—ÅAwͧêüÞ(<,Á.!]Ùõ‚ /)ÏU}G© ~ÿ„ÕGõLRû9äí«c‰)ø$v¼M.V5t££L“Hc¡×BR¦j‡ý¤£¥È¢W ý<òÕãR9#lÒ‡EsãÆB¦6n¼–mÑtû¼:+ZÃÓã.páuØáøxq©ºñ8’Ó&صa /Ô‘ÏcNxˆ°Äm=¬Ö@Kmw\¶¾PˆÆêÚïI‘ Ù®Ìÿç=êóú’t>öþÐTŠùY;Ô¬È"ËIhKèW´7Á,þb³™9ï¥Ê.À9h•ãx2€ äd 6üKŸ‡W0i|‰¹- +ݳ¶’réÜ1©Àæ#½÷žÀÅ͹žÍquùŸW¹Ï~·ÅØý³mòa[UžÏ>W£0å <~Ìõ1Ö©|)‡tªnÑ᥽έٌº *s…ñÓ×7M óS´ET–Ô: q%”„tÒ¾.ꕜËÐ@’¥ÎJëT©{hî N¤ø…{Ú'¿(ÞÅ lo¹[4†¶âˆèžïÿR|©A'«QÐR™:¢mwÑOR‚€E M1cŠÃ¢*þ¶i Em`ŠîU†à!É1Í&Ài'|1o1Éþ}ª½«*ÕºÐÚë0™*™`6#ºÏq'® Œ%*ª^xàbù¸"?c0gÝ44º”ï€&}_þ¼¦áw4ê™ÿ°’ãFôg¡bÇJsˆÕ˜µüCÆ„NÎʸâ»Ö|‡YQ–¶Ž”m !lµ‡º¶ý… BOîûWXF|“ðœ]vòáMyh©D“@y™¬!Ò~‘œ-<¨$ÌqKu:uÖ—÷óË¥ƒC“+¸¹~Ô‹TÑuûÌÉdnL“Ãö]¦ç¨}™*îšëÃsùdîÆÏÅÅ6³: ö"· OôÙH¶hž7Ìü‘´h°‰ÁråøDè¢ìg °"?_¡¿Â­$t¬5‚ 3ײÏv¢ƒ Öwõôoô¯íö!ðµÚ#.ÂÒh€Þd$ ¥1]ÜnXõ)“ 5!qá»1Íê1øK8Ã8> «=D0··'µ9úxl×´‹jæZe9\¹V32ªË¶q·Qvãr õ‘\!½xdÛ+» Ú÷¨t)uÅÞ(¬ËÝoŠÿ$´j–šnf/Né2€Ü8?e™XsÁÿ¥6éY­½˜¶Ÿ;Œ³Æ€ÅõÉ#«†‘«ÓöeïlnC?«0¾¿`ËÃöª‘}ÚÀ÷<©\ç©Ö2ë¸z¥S'» r’/Ÿ¬^—ȸ}óœ Á¾—.ÙySËìúû±L¨Økœ+“V_Lgˆ¡TÚý’½Û~)b¦Ao*¢‰WH6Y®6b—Ý«ÉHû3\‘áá“Ï].süÁÕÇYÿ~î—ø€®Ñº Î郠Ðßï¨qQÞ¸âV$†| ž?o†:‡ÚÛðTè(…%nÝ͘­Â¶bp߸kPdàqk'㥈Õ8 ’‰ +.mS(­Ñ”Øwýù!6EPí_q-žtOÜì\Ý€Zô ¾Ýæ…÷¤gp_|°&ºF”Báêƒ%²{Õ®S££Åý”»ÖN€¸«ª­HåË»`÷9fïÛ›’>ô&÷©œ±¦}áè3:Gíºk?ÐvÆö¸ìÝ,·kÏÁÔAÿo‡"à§©8éø“!SRTFqFfNI¢",©ž˜I”Ï÷l[eN\`¬ð)lŠEÅØ5¬¹Ž)ßÞ< ÄN7Ô¤žÓxÙŽå7DV¦¥>‹ã^äeýnùM¶xç^†à9¹ù‹†4áŽf ÏÿÔ'ñF¹Wöÿl4=Œ3ð%1®×læù¢`0)™üž1N Yõ"<ä¾Ðœ+iÏ)ïiž} oùv©áiÀN0g¤ï¤6Oì€:Ž“ÁGíaòd©Î¡U$ÝÇþtµV ?qb²ã(Üó¸ó_oi77Lù c7NÆ•¥Ë™âKÈE…å¼\Æ?ªn²Ÿ…¥“˜3ÖzFœwZkÈJ¨¢¯—ý C`·R{·¦Hò^ckIP᪚ŠIÕŸÀ¬ÈinÊÅ3þëfÔI1Ý!ÇùQ\]5”è›UÖw¯.¤rUV ”×,Hxañd| +/Žæƒ¶×0,aºgÍöt–û- V6Æ(žɃ#Ú]]4a’PÌ)q_ÚÅY—b§¨Ü»µírë@~¨ÈøC†uv´!HëEÏÕ6ó§±çX¥¯††Ac¿] ¹(0PÊ»VÛ6®¾è¦ê•͵sòÙ®êÚ£µ”rX–xRpb’=IW4xc 'ŧÓe¿W~ߨôó{ü´âBp.‚d¸«>Œ$mn\Š&ŒünHÜë ø)üÄ AŒÓÀš½-‡\9KhПdbQSæÉ«G`ˆ/ètÏzŽ`ÔõØøûõíWK´„¼,«9yÌ{ æ*Æ2Û^[ìF„Õ[ ŠßÍi¶Iaú0æûT6ÚÑÀÜGuøÂÉ>Î<·Á[ +½Z êØ¥êЋ[áé8Ò‡S©ˆNUǬdo¶®L,åú<Î0²áÀµj +1Áë»7£N†=P#¥0æÈfä05YüÄVàA Ò{ôžk ³³øvwæë%n€~¾Ô€^RiÃY0*6ÜmVO h;ÔŒåBe@LÁ©o®¯/q1W”ï¼÷*ÇÍpÀ´l:f3;$ 6AM.GtDóŒk®îMîÿqÛ°¡# ‡€Æès¡$¸±@<;ÿ{ƒQ Ã[ø„©¿b pf̦äÎ3½ÒêQîdÁ@l1O×¹=»RXMÞRÈD¯<©»AÁ90¬ß¶©ÿÔpŸH½ØîFG¯Vcw*öØZò¾ +;ìP Ò˜!Ö·c ­m¥^ÓUâ^Z[o/f~½INºÜ/Ždv}\”o¸)q¹È{gœEÂ1ë[ð°C¿¹ýœ6@— -KK±TZ±1¡ê‡aÕb:ùH¤ò׿ôŒÔºÀÎ"jD拉…‘;ò{ïÈŠ‘§R>©ð !T)0#UR¨ÁÇû bœ)ü +K U}ý‰ÑäêèJÓã4íç9Ø{‘=Û®,â^ãrA n]uEÉÏ|Á +–·‡K,eÃúX+Ÿ«0"WV· +¢Â@Kñ?¥â¹LK–gÁõ¿eXZ£„dç¨sŒËu‚ :]xˆv%s—>¦@ófd¦éñA9YÜ«Ê÷19«]ÇS`'¡* Æ +þU×Y„68ñÛx~œWå—"´š˜ÂûH ¡OÞ‡]=,¾û)DÜ9«„bIÄ!oø•”Lí˜ÌmÅOóO:pžXÀŽU" R$VY€`s,áAóúÓ+ç¤!½eزbØá[´Oä{žŸZ4» |a`Ñ’˜¯­䈰½é8ñ«ŒïX ¥£¿Ÿ$…¿„l[‘w¶NÅô S·l)/É="- “8§T?‹èª™Žƒ£ +dÛQ³vÜÇìä^̼‘I‡’j€Tª¼L†Ã)Ì¡³Öy‰sÛ{ˆ¦×gE ^‰ù]ﺮ….oÐ!¸Çv-h½«:¾æ É8JÔIДj}|V‡«”U…¹ ˆb¦òªÃ¢oÆ  ¶s +©ðmƒa®ø¤XrßaÝ÷† íuͳoŠxýùìì±¥† ÏAÅ á*ö¹é*Ÿ“>0Ä4o‘™2uäqù‚|m1¤|Yáãà”¶ˆFŒ(ž6?]ÔU5¾VOîÊ­”ý5Ä.ý ,ŽŒÐP¿ÓѶ„øÐÒʯ²%`ãáånöÎv6Ö“ à†úl–ß¹[\L$·BGí’$é ûÿ9€xHÙ Ÿœ +™‚*ÆþÔ篖Öñõ~zLÕðæ@Ç@†ë±LpF‹7xÞö+­à¦Ç¹œØøIh{jzgÞ`ÒÍE{}=IS¼:àå·'‡0ˆ±JÎÌû @n™6Ý1†–¸#üÓ½Åâ4çÂ÷4GÞÑlm Úô•~°©Nëò=)öK¢ÅÇx,3©V鮈òßœ­“¥ÉÙ²«£ràÐÒ{oMÏíÓ?ùèmº‚i++ŠJZý—ÉêM¿6“ó¡¯õ4æ‘€z4|)ÎZ\³€©~ÖæU°5úˆ<åaææ²Â»;LôÖY(¥Žó3!<ðÞF8Pí!Á­bAÄš3ÿ}YŠõL{ûÅŸe6aOÝnë žt›ç½ç×ø lËùg¶P~d%$ÚEyÊyA[¡¬ƒ,ážÁÁ?ü/uJ‘»’‚gÛš.¶9Á:N—rC´é°´Ø >¹Fj]ÚÝðQ„9Bnu¸'”±`ÍÑŠ™¡+—zF§Kx/ ï„H¶}£ùŠãS¾´óOF8AÞ:q¬)Ž7©õf +÷ãßÛ¼ýG*º8=|±7øÁ¥š~8Cæ}K"ióyà}ÇPô$Õ/Ÿú†_¸rË„°HËÞ…dJ»|N¤ºÔä@é$‡%IT2q~ºØ·PÍ=†ø°ÀÊÏܺ(¡ÀËûœ?-^Oh*ϳ;Ê+þ$aúŒ áë`c3œüÉ6p«ö#}bëå¾üVl°3ÈÝ"IÉÇbìž Û&3BªÌ$J¼lç-P{©Z‰aýñ`ÅZ°R•”`§ÊáÐ…ùi.S¢K¹ö¸Ÿ±Öw® +ç ÷í$–diº®™èèÔïÆQ³s¦­Ys¸jk£VB…š)0[²Â„nÝKÖádúCçkÚUL»{wö¥Ý£„!Éà ŒŸù¯P¨¨†¼|4_•Þ"$ñ *±ˆ¶²9Dñ?Ýë¸öpIeàÂSÅï‚™ø™)—'’ýN œÿñT¦qCµ-¡®”¡s.²™Œü<¥†hÓ¶›RF<#¨ +ÝŸŽ0}%Úx5]OáIJ…¾«PžgŽ^nu Û&fïžúùlax\2ÇÈJ˜Ì {¸ ½Äô(ÚÄöœ†Pv‹´ë-ÓB‡DŽ2™‚í³6>4ŠŒ7DÖ÷ÚüsbbÚTë&z7–ʇ¬CÃÔ½“þ +|3†[ÂgãàVqÓRdž!&;&"wb³†)Çnðã23œdåPOEdëÓ%}– +Zòõ‘½‰lñDØŽý1•È–®k𨌡0\Oy‘êÈgßF“ùW¿[ûHЙ9Å–E2•è·ã3î!Ú¦±VÍH.§#ýcõõY¡ðˆ¬¶;›øòЯ9\©'&¾yxáþ,Í 4Œ; †6µxí²Ôõ'çö¯s˜Œ· +X…ÕÌ{ü ñ~…‘ž¡3HΔ 7íh\ºZÃ8ÒF[lø<‘;?/|¥BY³½9ßÔž°Ì#õK³<Åäê · ™u)np~Cꥱ‹!¿U>ÒO”h^ Øé +ÚUØ ºÂgsêö6ËèrÍH$2¡¥(¢È>3OϽr6l‰¬ðïOæ +u'Ì—t#.èaínÒÀïÛþ®䕎ºÂk±9jDål{r2MoCtH…È–Êöð÷ŽÇ—à¹.Íü„:Î’ù0ß‹<]—>¥é•êe8X³ÅŠ›r¼’U÷£?¨äC„2Ű¯dùäñ'äuá‡wã"÷cÅÄ÷í°v`ˆ´­®dX:Šdj·û,)ˆ˜-kЏ¯§®A±Á·iaT±#­Õ[¬äpÁê÷ªG ßnbÉÊŠK¦¡áTPRLìÂBá1+è~¨OôSœÁgV§J}HLXHJ×£ô¢jªh‚.¦œÖRò4®‘‚Ïî×þШÃK»=çõRsðÑ'@o ³s'±«€”ºEÝ?æ[~@I%jЛû¾¦¨AmnäF÷wñJ”Ì.ªì-»ÔÀûY§¼µž Óà +©œÿ"þ¾€ÅÆ›Od–÷ì#ùŸwo÷aHìɲ†!«€Ö÷Åk„ÿ ˜sœ† •¸tã|J‚i§5¶ ‘ Ñ+³OædÀäsRL‡…?W¬)„Q:Ýý^øÈá&¹µæ¼¯'M1[˜(«ÿ ]_ì9ï¥lÂIÎ|Zé´.»-ؘͧý±•!’ÍÖuŽ‚3*_ýÍ]îAÁ¬Ý5¸†JwávA}7è×ý>€:ïÁñ™>˜ÇÐæk¨“}ÞÔÙgµ9'ÉÕ +Éuʾ¢´‚v@%§C·”]ߘ/"†ãßÊÚ'âò­ƒ…XªÐÞÈ +ÄsŸMú×Jp`O¶ehÒ0ôé$:µYÕyúàùà¦[ï–øëFâ(.uóëŽÓ^s‰ڀǺ•EÀ.XÌ!æ2ênêr¦vË«œŽÎ¿ybžÚ>¼}€ %ìµC3½Š=Ý•h¸c7–_†KU;[i±ÊÁ1 ¦å&VŸzb2².b©s°*RÄÚ´7­ji­R§­<Û»éýrýK¸ßÝV:¾¿«mï ?謕j­ùŸMCøˆ‹þ›Š!L 8@|ì/´HÕ®d»¯¯ž3Å$; ŸJßÏ ƒçâšÖH*Ç5:­ú¢!½%ø@²G˜ÞîrQRû•÷[x)¼vcai\ãMAøOÚø\s-´ÁÌžêñs1œ/$û®PðQBMv"HŽçCS)yœ”6—j[0à"L#ö5§E´+¼ÁÕá5óKT¼HgÑ/ë7MÎ#+®³ inËó¾6ÅÚò#å0$×CC]iW.íW"«'LÁ©é¢þ]"ç»ô|5 úÜAW2¤ÇÒã’VÃG#ЋFNË"c6¬ª0¸¿­]ÔŒèiNIôÝ&6j#0|úb'5dŠ(U&ƒŒØDWÿr¯<·‘N!Ф:—>à eRg0Ò†“!NmÒªPo|ÕÜ~Ï9¦|ƒ÷:çÙ7üçp‹ô¿}¨:6"Óˆ|•RuŸŸ†yÙý ›¤Õ~kšGG4Ì’k«À ¿ž9í§nD‘?6*L–E;G 3ÙKM0ïu á¨*…<,vÚñ<ÚB§¶[Ž!qwÒk‚b³§¦y­ò‰š?ÝûC¥¬ú‰ $â†4Ì&ÀXÆðÏ7ênCoxÿ¬,Í%ƒžd€Q™3”:(8_åPxÛzñxì¥D®E}æo !ZÚÍÒe¤‹sñŽÃ.ÝõYBNTáIJiøØ|yÂÈi ¹<Ï)h+…‚ÏÂé›A`2ÎÔc6½A¦«;¢H]lÙ½”#A EMvâ¬1¼0xàf„˜OgHFô£[iè©ö6êlͳ>¯¯¢5C¨!{<)·òMZ½zšÉ_ó άèþDû)•OòdÌ%KÐ\5O 6ɬ¦îÍøM7¤™?<·ÒBÍÀ­„•'G·:•§)XÞ,‰á¦¯je])j ‹WCQK&Cv”ñCHâCÃޏՅ$­`Eãk,  ¶ºFz(|mëÒ^Þ†ËÁ_±!ýa‡x0|ÿ”ž7[ +¸?_«”ϲ’›3E5ÂËiâu{Sãw]|ÛúÚªU¬ ä( +WjKä‰gsåüZaOEc6ª"²Ù_ÙJÎÝÈØ0çÙ^šE4M"¼Yáÿة΄8è Æ¦ç⛚ÁuƒŒÓÕNë«Ñ°‡w¨újwŒÂt<ËÑ‹D +ÿ3Å5eSùœïЫ6<A&; Æ—y¿ Æ[ÃjŠoÙ ‡—ëhœ=Œk¤–[(3÷žrÐÁ €b3¥¹c‰ÐxãiÑžÁ'ÏðX£”ÖYÇy#JjFÄ™§‘NG»§²­ûÌ£ìrxˆue‘p0ìà«Kþ{•¦½]ôÖ½¼Ö‡\ÔCò oÈÔö²ój š=P†"• Qp¡zÈåe7·ÄXß¿º#¤£Ý6L"ŠüÄЧ±'EFpÜÆ‘¢ 3¤ß­jNɯ†£i&ybå[Â5d`ÞsìPø^Sœ·á8%Ìd’fnpÒjÑJ¬ØyKàY Z6ƒëÑ'[—á¨\Û«\¯. 0– ‹q©Å™Lºç/Q½ì›0[„nh>o +¦§è=¡48À˜¶‘ÑçìpÂÙ·1°$u~ªûÌŽ«Æc!šæ¨`ÜÑ › *z3?¾¿x;ÂCoC¸3=Y®Ká^¸º"…±ã\¸%"?úʽ#Š÷œœ~p©ºe|1j›Í3÷[4a‚„ZR¦¢½ï¾Â—©( GðT:¦þõY9Ô‡úe†-Ÿ#_”O?UÂpžß ¦”iÑS¤dñÞQ‚JDu»ß÷éã†+QáÚÕr;@pTÐŽ +×ñÜÿ.÷–!¥+Å’,]!@Óa(satÑDÒŒv=ìn€ÿW4Ëðñ€ì>¹øtL¬î¼i2ßD¥ŸÚ¿ŽþWán:‡æúxSºÆµì+B„Î<ë·r¸~Ëòxõ8^ožŒÞNÓŽD†yhÿ×8«ßÀ‘Öbý§jÄ&¬VÓ]¼bd›—Ìí©)ëc¼š3yêc ^÷`döþLž°É6.Ì×úé7GU|µ•ÿÀP1Dq긜 [Ñœ‡šcÔ름$ŽKú褊 „ó=AèËOÒî‚cþ)·p5®¨‰c[_•³”¬´„b j½iïî¨&`ÞÍd +@V“¦Û_ú³ì*!NV§öð¯úâ7ßÿ +“s|[ir…ÒÖ[V+öGWWo‰qc­Õee7:Ö§Gµèe)Q[5IsÎ! ¤ZO_lEG|£UÇPŽJÝ:—Ý€šξnd~bªéu†Dý‰wäýQW,9B8ÝEœe‹;‘üüËYwÜÚ¯ò&“´í™­»ì%º§[GsÆÇŽïß1u÷žZ,– ðÜ„ úžÖˆ%r€ÇƒÇJ<ü­˜Ó§i3ÇË&‚£ÚzÍ:½á˺ûˆÈ÷¦”×¶§kʵ½U ô®ˆ p$лÎرúÞ·þòA×i…šìYSÍu™W†ÉúS_?ánœRo‹¥ÀÀµ_†?£Œ§æ&iäÆí:ok3Uiᱎ·ýNW9ï’(åªÄNÚ\[. ‹w7\0È u@}ÓÓÑ2½T³¾[k%J”µKèÔՋȰöbH œ¯é¨ÌkÕxØP†ƒAJÞŠÀÈ0ò,_ˆ,oþ¤ø^ @À[‡ »‚Y×É;õ‰Ø·JÝÎ ÌÉúäD³­uïȟѸ{Q0ÇQ7 UÞ܃yxó/Èå&øA#—ÜãHŸ2Za’¢"Y¦îw†²NϾ!qÐç2T…–üw¹[Òã­ãb/ס¢}o‹»OÁÈ¡:_¨+ˆëÍÆCIß—.³‰g0ïyñ“5,‡ø±…@šs!{nXû“¾NžVÂøc½ +*I!WsÀE¾zÃ{)ÿ$Õ¼0û6¨ÝÝv?D¯¾ÙļöõDâD!‹ìÙ€˜³;{IØœ2‡¡]àsìœèêö¼ÕÍ·`ð3ÆO”$ªÈ=ÉaZ’§@” P}ïåzÂt¬™5ž|MTb—¢ï¨uË Àû¿·´³v@òz×=‡ƒ­@¦Ö)W‰)Æúœ"wntÞ‚ŸÒjË"𯄡–©‹SÐꉊ¥áþшÚUg¬Gô+‡öƒ&[Å\ëP6öÉYÈÆÇ,}ªU[6ˆxúÜéê).ÎvÞ¯øHOö‡~1«èˆ£o¼J +º£ñÀdjxÑ\¸ +á}ÍŽ¥G†{ˆmœ4·Ü«D‰³[ÎË”à%Ðr·cwË çöUжRÔM Ùò´µvCÜ6¿èa]ò* ï— Þãý?Íû¡¯œ¨M`€rAcÃõ>u³9oÛZ>X@~;ÚÆ€^¶¾ õö<ýŒF(Ê¢Ç/ÄíŸNÄ’@N}Cm÷FE¡Î ’cb?ë5#N¸/Vò§¦f­~ Ù“$ŒÓ›N®2¥’©y'„r‚‰áãN_3otz» ;ƒqÒóiPýì$°~+ÞžLöP\ØÕ0¦ˆîåÞ&w 5f4FDä‘B?=áoÙ@¨Åh^|2ÕViŠMWìÎzi„ÝÑzgüe¢»6r?`¤3‰Ô€àR}²/ò!$d˜„µ›Ÿ˜d':WÊá[EñW¤‹÷Ÿ—ÇQqþMrz<‰QLtÜç‚àÚ‚çÐn/i(!Š(­b“*«dø<•]øï(ÂŽ§ ÷AS_¶Ø3ÎÞ¿–!eZEAF(õÂkg4¿÷‹‘Ü„R:s‰pÇŽ½ÍûÝâ³ïëìÌÙ)1I&ïG·äߢ‘àA‹£|œšˆï”d÷Q/¹|8·…×È _ºÝLßë2kiøSFo¥~| +/÷ä¤Û…¦Œ1O°´,ŸÛ6 Í£ Óv…öÆã„…=S¦›—˜‚D©MSÇ‚%urq§ß“L{=Ú™,Ž£dâþn™O•g—‰­‚îË2(„œsïbœ˜W“Ü/ÞG_ ÅYÂüÆHç«&Õw:p Ê!£èÿn[XÈ5xÍ£Sáiš F$ßlÅ—7 ¾IÚáF6 ï`¢ÐEœVòá»›vÍ]¡æÊv¿ÊЂ‰Ã&^8ŒìÛ Î´žû’Ÿ×FMµÄ à_sqîà¹Gw¾¹hQCb$ÝžfûØvo:Ï‚o‘FhgÄÿ¤‘iïVÚ¤2Œ¯˜¼·h&á˶e_î +Á¯¯í^1 Â|ÿ³ë © ŒÕ}^f¡0pœÈ^šÇ\æRl ¬©4šì8'.³Ë0ÊÊ„1‘šø''/·lž%¤)Ä<÷Ç­·ï&|¨ i)KÞAj“óÊ“ßRÑ$Õz…úÉsPKœ›3ÆX¸þ€3%o v?Ùqg¼íd?Œ'E´Ù×D!ÙʯËAâI¬çîTµ¬Ý€ØÈ¯ulýÒ¥öAH©)ÖHŒF̙ƚ°Æ{’•à»×Ÿè&2rRè¥7¦¡gLxà§ÁÀ9 ÈW@!®Æ;`è¨L{¾vÁ:Øá›ORÏAóZéÉ9³=*U¯£©ZÔeÝc}ˆžÍ•‰ è΂ªè­,rL§Ro†¶j%¢N¤GM›À@àmå'r{–oìëÁdžra·l³I8WSñ‚ײ¤„ìÓˆl½üz2ÈBýÜgv¦‹˜k@ûÆ=–‰”<+Á uÀ@lõ„|;œ]Ê}?ŽwMË^‹Âûßóšù¶ZaóȱTí”4}f¨hŒBÐS5Â1$Ýç%zzË<×cÀ:†dÞ0ûë‡G¾ÕÝNÎö œC>m&ùåî/$xT¹â*F’ `2ýHQ:OÊî¢ùŽÜÈça§?ûFy`·+‚â3}áãôÄÎ5aGþÏ«@gÄäH˜‹sþš¹JüÅñvÊhý¾¡ VªŽ§¼Åç랃ôHáS¦»¿n†bóñš³!ŠXÊ?舨y…D:ÏRhÍXÁ —Ôù*iá9ŸÓk(–¤SÔdÀ«Æsé4â¥RMßu>¼wÌ·C”$¢„ú’ìíJ‚~sIZ™C‡øÁí ê0»ó{år«y0^{ù[efzì:¯ó÷–ùr$™êÒFˆÐqÚ_îÂ÷ °ÑîœL>§>›à3U¥9!{©ŠDj Bë,Æo‚÷DëbmdÁ©ƒmجÕmr$¶r´FEs‹¶.~Šaƒ%µé¸¥„|U'Tô/·Æaiðh¼¡ãH.`ßž8 P¸W™¯ˆèã©'õŠ¢çæ‹|òݾkjJ +ö8ñcLÀ²Ì„6?ÒéŸÈª“ÞKÒ²—ˆG‚fB\UØ*MVsVà?Yøe5ò.L&&®µ˜€ú­wbzBÞâ°óYÜðaœËzÏe:WjÎò݆¯è—À·¹6óM.šò¸ÃO1™«ò.?­–ë—討Ò@Ÿ “ècnjøº_{ôÇø¯­%Jh‘¨T~û À&W(ž•òæÄYƒŽ_˜‡òã~¿]][¼t!§Šå±Ï7+›ÖÎ¥¨–ËLQ´ ¨ö¸tÝ{Ü–¦A½uv±Sç°--žãÒ¤"o j‘°ÊÈC|Níƒ ¿µÈ0“DÖLE)FÀVˆD‚PX£{&{r»thñ{‹˜1A£¥Š4ÞYýÂË~9ÓšÞ¥•¥·,[J/Æ”ø%4þžO«÷¥™8 ôßð2°ÌÚw^ý÷£ºì(pƒ—ªÍmŸ–ø1=‡}µð› €Ç¤±Þ1-Ÿ˜ßn3sævçr WÄ÷Ñc÷*½…/<èÔJÄ9Ût뽋¹^Ž3<{=ÓzrTQh\E }µQ•ªƒ>Sؠ¥鞿ªèÛAÂp±¦wŽÙ÷Î5«X¡0¨6Z]ã}!` +WÓ\ë{7¨³ð»XèW¥’’6_86Ql†áü5#m[(XŠ•4Y4t…¥Š˜?½$YMõ¿k7·Ìóß&v‹†¨=€Ôt+·¥ÕyüåæAüÍþs~ËÅi)ü‘ý>ßöü†Ë²•v1Y¶–Æcœ™\ãv†~„gGSñú0Ó|6÷2T’µk¤FqŸ¡‚Rh¹Øy£fUKñ²J.fz.ƒý‚âVLàúõĹ›²5…ï–ˆZãÀ8ª+×Ôúò,ÕáÑyª,?8RýpåÐV4Ÿ=¶Çððt³¶m¾èÝñFºÊ´–×@ðIa ä@‘+öqÙ¯ÇP(4Ó™s9=}Qˆ~mjÀÏSOàŠ—0 ²y…åHFé¹!†vÛ·ÃÅ­Zþ&ª)÷žúǔϑ4gho óå÷T‰×;|fâÈ•ŸfYÌAN‹"ì&¯¬ö_R6ÖÇÈkZ3aÖíó‚Þ„è¼ +endstream +endobj +599 0 obj +<< /Filter /FlateDecode /Length1 1388 /Length2 6325 /Length3 0 /Length 7213 >> +stream +xÚ}TuXÓý×–înF7ŒîîF:„mÀ`Ô "¡Hww£4H+ +"íh)ABÞùôóü®ë½öÏ>÷9ç>÷©/‹‘‰€2ØÃ¢ááŽÊþÞÞQA >‡)ƒüás˜CàÞPw™?Œªpˆ=õV³G |L}&O€°@XLFDZˆ…¥ÿtô€Ëô¡ g{ `âl÷„às¨zxÀ¡NÎÀÜ¿¨ùšFzøMˆ;Žâ¿ôixÀ ¿‘¥€ÂngÂSFHÈerüeôvt‡ „xP9ÕÝÁªnnw„7¾0†‚ˆÔ_è•i€' CëÛ#àP€ PˆbþúýõïJ>ØÃð·»½ ¤«§ad¡É÷{Ãþ²©¨xø‚Ä$Òbb)Qq€”¨ äß4FöÐ?dÿŽÕvwôü)ìãù§dß?ºÃjàßD(àþoÿë§áƒý¦›û7Áÿc¶wƒÂþ ȯI¸õ!`¨Ûÿ„›ü³m„= +Rvw‚ýA½5 þ°r8Úü!¿ãfî`u‡yxC­@@üÍÔ +ru‡x{Ä7AÜÁÿ îòCÝ"â{8Ü>ˆš°ˆ¸8 HE1ù þ¨ÜB‚îTÀÓ@-þ¯FK‰„L~A¿½DEB(?Äñ7н8ÔÛÕÍáü. ”9ØÃÿ âàö ȿⅢÀ¿-ý߸”äï¸+ñï)©¿ ÿ GP…üíœ  AuK¥á×üI£07OD€÷?‚ÅQ + þPTuî¨=ì/ü§Ó¯ó…À!^>ÿ0H£*D-0jç  ß¦öW*% 5©»£¼Ý|`¨'j\W‡*ÂÓqÿOÑÀÿ)…¢çA~åE}þ´ˆ¡ºä ‡¢6÷¯t¿(à(o‡Ö)Œú< ÁíQ÷õq¿ª÷†Ù{ÿ=RiT6÷Ö…Úª_ȯKü#ô_ûò£#~;\Ôrþùv„¢.ñ‡€ðçf=@²‘.M‘]g Êô~_ÇDĈÞ>=ƵXW§õݼ¡*w~$Z‡TîÞˆ;_%Û©¸muµ¤ºÚ®gÆÉPͽêÂrtXã'“¿ØñÖóÙÐíé±~(êv¢Úo3ö;Všâ¡æ÷úñu&gKS޳­î´Öy‡«eW},!‡FJJ”=²[9§»N¥Qyjúµ6»÷¡ÒØ^2£ÆÖyæÐˆˆø—7óUühÐÏ™ôÛÛDžºÇ9Û +ßú%ètަ8ÖûÕi.ŸsGwE†s;xš%ON-Ý÷e1¬ÅÌ5­¶üt6®ÝZ3SMœ©ÁR<•ÐM®FLÛp’gà%ȆifMxþò;œE˜ÿ1 ’àñ…©Hœäwö:°Ø=P#§ˆYV[l'Jñýë Ž—†÷£O†b +÷¯_] qéq™t²´‰Ó;±N»@l‘^rQlVöªx¡Nî}¸'…ãƒüÅq¯òh¦l@ãGO%ãmn×¥TÃù?p_ð'ÊÁçÜ 8—kß'[hõ/CÊV0ƒ[è¯÷m5-ÞˆPú‡EO2qð¾Â&S”|«IR—áÍ4zwÜ‹'sD¯.Zmî/A³c”÷Óö÷Q˜‘?ÆÅ›ìSÓ0]Ù ÖïsÆ›VlÏHw^+0clæÉÒ…Kå¾™•ˆF®câ¿´¯Çä5ÒzüN¨þ¶æ(žr4j*Þió´NuàþhÃZo¯/ËP¥‘Á“uN¼ä?ø'Ò ¾Ïd^<;ckõ£+±UQ:kŽ‚Nzût µÌŠ Û#8ݲß°I*ùio¹8ðŸÛÁ†èù_ÞqºúdNõ©í £Ò›œÀ<ˆc’X–ËÚW´—WR'ž]l¤OÏÈ– ×Ž*¯Yóem8áUÖ­wËw’¦HROS[:lCßc˜(Þåu¼«¤òyíÁwíЇ®'¯·”l31/0³R«vïÁ†—¦Õ‚VûI} Ñß½æzq×Ä o®*È’q×>\–5g–{¿ˆìÍ»òÓ÷êo"Ùï­ªÑëWçÁûVKšhÑCèyÞìÎG…ì{Þc8mNe(ÜïÑë<ßè'»\|+¯*Ø„ÆÆ÷Šú-;±Ó±:‡ïª ­JÛ£™¥õ,Ž?ëTj¤”NÖUyÜ/:Œ0œÙ¤Ðåq<šçd²]z°]4 K‰òÄ–åaô¯¾¿:Sòã¼.ñWD·V­0ú¥‹µŽŸ±9ÉVPbf!ïÕ¨‘Ú\lWݰÃꆆy¥kòf¶žñ¨ú¼M©í¬Zí¸³M»#ö°ÎÒO4—™wÌÝä‡z~’æy }#.É/;òT|›EŽÏn¡Õ¸ï|¸]^OS2œ‡çªlMj^pr¢Ë²ä™¾ØÝª9çƒ$ùoÿÞôY½†P~I²¢J¯¯ðŒ»‰µSR_ƒSC˜1F[àÅ·dÇG^R>àCýMôTG¨ æ:¦t1†ä°Ø.,‰_÷ôáþ£éö+àå)?àZ ¼D÷, =Û‰Ž6YäÏN/ü*µÍÍ—~{2—Q…F/ŒÀ¶¶³~ÝbÌKUEf†&"‘uü 1³‰XRãá¨72lhˆÃ9$Ò¤fµÜg>>0ÉI^86 +?Ñ´2z'y8q¾âíÉܘBçKaz>IVphç;Mq¦Ôq…èŒÔ’Hí›]`û“-–Ä…¡f¥ú½g¶æxo—¯!šÉÀgdz^TaÀŠà±‹æXô|YA +̃“+e>oTç1åÂ-fèB.‘ýáËtZí²yJúéZ_m¬°yâI*ê–#^ÒPl‡Üj:ìȘC¬÷gùŸ>Ó$þ±È‘÷î*˜æ.‘mæÃrÃvü˜ø ¥»ÍZ™ˆ'Ùî ¸Óý1P·£†*ÝÙY¬¬£Ý}õçNd ™•zƒ­8A1׊¢!œ¾•"É'!Pî†'¦öêd§ƒ5´ÈSÀÂo÷y_¾5Óî†@ãô{•S“ÅZ£b}ö»üÖ§“ê‰3þÔ)AM’aˆ°"š&ƒ¼»àXy³òŽòEì…Âr ÷Ù°F&‹Èg—³z7ôÆfiåÚ÷Ï0–¨>sˆ‡CœÇu—¯#ŸeæK\9<Äõ”ßzŸ¾O;ï±E³I ?`D ae$øAÆÈ 3&;ÙÒdºá;ŒÎÊJ—N$œP¿ÏmíxÙш™ìà[‹ÿ@ 2´r–¶OK5#(æ2Þ'KÌpì8Bnh&–¹Ýe‚¾N®  ݬcUd°O M„¼%&·O&šó Fd1TáR šîÍ3—ÔRš[Y1³,bjiKÞç]óMYt`±ÁÈ»BÏô˜;r`¦ÖiôÁmÖŠ,/¥Ò:úF$¦k2GYíõä¶k­žœ#_†‹/0ÃÿIßÖ !–ÞVv¾0Ç äåÎ2o"ck)€,N„D„ìµ1œwß‘ÔBÌ-–”oÌ^Õ¨ÈDÝ©)ðþLÚmc´€ð˜çË´j’¿Í¼èG¯½Ã÷±B©¦ùsô2[µY„õÈ–©©à7?Þ;Ó®1Tâm™„¡i—8HŠ9’9™†Á¬ îOqÇÑaRºÃU†­mëD9¼gôÒœj†`l*ÒÞ"ªÌü¢Ððd—;×Á£¯öâz° ²ÅMöôË_MŽò…tÇ«€Øïô¯*'¼0Eš‘H?ñqU‘ýVÑx4k¦Ôê,¹wèSj©h—©Œ5uN픲œHÔö¾‰pó½)¸à³7”#¯õ4<íyÙ§^ñ#Œ‚ì©"’»Æéì!³ah¶[yTúÛêæX<æ c´jûZˆüŒ…ϳ\&@½+ýÙÔE80<²D{Þ¦pÜ ä;ë­`´õ88ÃJ˜ß—Ê¿ÇÙ&n¼  ÞÝD*)JÎæ'{âpº¦ß¯Ÿä:xJ­r¹UäüIý=¬g¯á~WŰVÚ|û²çZ¨Ew–ð],^£q¯ŸiìÖj$ îM }ø÷Oå[<žŒïZ¯(O^½ÄS~Ì“?Š1RyK|ãú…!{Á[æl ßÄÃËe„éÛ¹q.ñhùÄZþº¢ý–mª»-ÐR‘[Þÿm‘>U½-ÕãñÔ¦ ¬üâž©9;ºAí¡Àõé‹oÄ[ú‡u[üÁOž·j0yõÛê6÷uEV˜Ä#žÏìZ¯Í +ßB8iúEïIL=ru‹©sÕ¢éo$:œ=?Ü– ^ÀÛjo ¾ó\²ëjƒ{Jä`êOzªYQ߈cT¸ë72†¹€''ÍôIËL´õ¸A€C_ª©^·œ;èÔÙ©CÚ?G2÷¸o$Ù„$¥&é|6¿&ÇsÆé-F;§ôÕñ›)ŠÛvß¿ÛüøŽ+Ùn¸Í= ,àÅÒ¶hä¾êب*¾Óå|Qü¡ž ”m~oAE,$ ¶“Õ\7‰Iûèó©ÝŒàçF) +./ÈBìÑÛ"ý>–ƒŠªìçÄ–\lWИ<<6½Ì ȂҲÎ×àûR4»ô!ªµ³49ZÀW̦d Æ £lغâ+ênÛ¦Cðe¬Gæ–¹l¼3{óÏò¤n…èüªVN$h/uTxãí~Há¶é…¾ è+|§qdØó᳞ÉÄCÝêÆ˜òˇª—I’—”Ce»ìcaʧÃZ@ÔçÆo»Ècû`¾‡b”)#x­¯½¼Rkûxà]:ãøñ•#»#íc†Ñþ‚~¬½bšûø/^ßI›²µÂ⪴—N-{Û€y;Œåè@9]š¹0°õóç³NóÖS°§ˆÍÉc'âðâPg½7O¢-XÖ¯²®&øúLÁÐ4ms¨[˜h - %ì—Šª 3¶Ã/NSRó%ŘR½û¤ +«}»®`ê/b…Ç£ + %° òÑ¿®²÷‰8 âvž›”ÍTl^ô5pRnˆÔ'œä^}X:,î1üX8h&m:eñ“çYó™ÄN$g+–IN:'|¼y ¬V“:­vñ¸CDJäh³ž¿·wVì +HܪîUÆt÷NÑŠtQòÚ?òŒ¼4Fëã —ÂyØÐƒ³Ñ—æ„~v`›?­Œ¢5€£g˜Påy¢Ë«¶µ³F¸Iã9®õµ²/ ï“Üu#×lA‹·›C¯I'ŽÓtíQËlúñÊQ 3åÍ +erNÉLöŸ£^ÒÂë­›¡½Ü-ÕÉ>¬¥¤fEßú>÷9úIª­‘Ã%}d¨xç¦î}¶ Ò# Y’LÁ®RË=Óçs‚Yƒ•üìHb9¹ZÞøùtfä:ø¬}ñ…í' [d‡]¢ëƒò ¼¹ /ö3â&'Êíhžä<ã¡tƒ¡ã»u#½ZRðBÔÔMšð£n„T¯òÈk¨î„ãn‰Å6âèêÚÛ­ÉçEçJiÆ­hÖD‡)ëu×'%À6£pV1šÊA ¼Ò™¶¬`-§$JJ%Ž¢ŘagŠ yu1¢3­¯#­—B¸?¿k¥t~k¾d +q@º ù-ÐÝ»AÙ¶Î]Ñ÷*ÖñÌ3õï½ë4θ gÓŽÄ‘€»¤ˆ™œœ±8:÷¤ûdeûÊáý<ä5"üÔÉ(ªpu¡zKÀ$ÙÏØÂyç.Ûɽš±B;‡¦ö­pD8IíÉWÅvzÝyl +ÎùþOK'8Óí%ÄQyŒdHÆK%ÃÌQòd |qMŽ,(Žâ⑽:)@¬âãZ#ë +£7W¾ š…ŸàÿÉK¹¤þœÿÞl×óƒÝòȺ͇qx¾\$Ñ‚jƒ²ÍÛWRSE|;Å^l¬±c—BOK?ÕÔ:EÑ„Vð Ñ›yÐKTô¾ü‰¶ö€ ÷.w| ”R…n1Ñu+‹¾ÖHL×EéQ­ˆ.dû}ûûƒe\>g ª Ї“NïØ?ÎÎFT1ú˜”&¢ùSä84‹AɱƒØI|•ŸÐËtdðç/¬s!FŒ“Û,˜^Y…µ³/gÁù2€½,¼Îd·.ZS~m0øµ>[’GºO–™ÜIœ*urU•©Ð€á8‰dž©ü?0á +endstream +endobj +600 0 obj +<< /Filter /FlateDecode /Length1 1873 /Length2 10572 /Length3 0 /Length 11556 >> +stream +xÚ¥—P\éÖ®q'Hpm<oÜÝÝ‚4îÜÝÝ‚{p®A‚‚»[pçgÎd&ç̹ÿ­ºu««v÷~¾%ï’½«š‚DA™NÐØÖ$fkãDÇDÏÈ1798™Û€d œÌd%ŒŒ¯˜‘‚BÅÜÉ +ô_j Gs[®3v8½2§Wu1@d`b01r9¹X@F&ο m¸²æFf +€²™ƒBØÖÎÍÁÜÔÌéßL^Uþ>¼3¢(˜™[™Ûl­¬þÃIÖÖØÜÄÜè_* ø½æg§ûCí¥þ󌉉îU,à__õ»š;™þè’˜­ƒ)ðÎÌÉÉŽ‹áE&ú× õ«¯8Èäð/C·³ÿ###ÓÿÁÑÑ„ÞäÄðêL!jc,lkm ²qrD`b›9 A¦æ6 „Rq³˜Æ “?ï_à`þ ÍøÚu&㟿é¾ê6¶µ±rûm.g` 0(ˆjªÊ‰ÐüsÌ[ Ù~xÐ1³t@fŽ×‰½Žƒ àõŸ Ì)büí,icb øK¹±³Ý_ê]þ\À»_+B øÏ`r¶NæF¯]ý_G­ÃÈÊhôzaú÷ë02ÿosþíô¿NûB(þ–íÿcÅÄœ­¬þ5Ž«øA$ ¬ÌþÙ1ks+·8üaÿOCuПٕ@¦ÎVÿGùßög.AS+€Ž ø'4w3ÿ2V0w22˜X9‚þäª6Æ «×´ +¶ŽæTüêÂÈø33s#K£#€õÏ#ñ?$ˆÚ½¶ÍÆde{홃ãëNYYLó×H ¯¹èml^]vÎN^¯Ãp@øcŸ˜X8 F¯ÏˆÁüâ0ØÌmÿf@ €Á™I„…™å7bù…Ø~#Ö_ˆý7bû…8~#Ž_HðoÄü+Öë{ìoô+ ÓoôË‘å·fÎ_ˆõoÄÂü qþF…ÿ‘å¯ðB¿Ñ_áEÿF¯]ÿbý­ëuùÿD¿u±þjÎë÷ßè—ˆ×ï¿Ñ¯N°þî믌¬¿›Ãú« ÖßêÙþñ[=Û_"~«gûK„ðoô—‘ßèW'X×Èö«¬b¿Ñ/©l¿Ëfcÿ…~—ÍöK=Ûï²Ù~©gû]6û/©lNè?–×ÈÙÁáõÝü¯—Ûëfÿuobþú@AF?fm¸-jÛn«ñ]é¶ÇØy‡÷¸>á/n¦X¦¿0Ý/}”ù‘ÇCé—.iØ&øA>Œ,½®GŸÏó#†‹1v*¯¦Ï–.Ú4ÉåþâÏ+ö—G¢HÍ—MK›o7%±˜ 9aÜ?˜àB)«Mû¾Õ÷jÞÔkúá¬d£. Ôȧ†ì“gRˆ³B]“”Ÿ< jrÔàå,2b,w¢Ä“?Lη@%ÛÀó´@fÓö`¡Aí»RSܨS¹£˜2gC_ugvÿâ‰[mD3SËk[¤Jmˆ¯^·ˆÉã©h_p¡)?¤´ëŠý¾îí²@Ú\m˜ÇfrŸd#w<*ÝÁ¡3¥¤\kWQ«ÅÊ79 ½AœL#ID²JÜ M› T-Úüó¼0[Ñ$Sﯤöd‘igS¼òǶ®â·…Yk-í<éXSÚŸá‹V®k +ê”DŽ“‹/ϾɜʿœšóäU”Þ!úÛÑ‹rãZGûšërÁ>?Šóí5Übµ¼Áë5=á÷ KXþ ›‹“ÉZM2U„Õ“SjƱö5aÙj$¿Þ!½ ëÁo{tÅon +ÓÀt0IÜÊ’çgfÈTÄurs¯¤ wšê D/Š?^%æáDðT¼!/e0›Ì·­ÜÛòÊÂìÌ£ÖÌÖ£7ÀÊc¬hë¥Óa' Ôå—1´Æl‡p’õCBÁzûG¹ØU4; þúŠu/À—ôÛÒ3»(Å™øÇ•ï¶ùÙÅ©húÁÏùÑi)· âjJfR§gÃOv0ë?HÀóŽ¶ÓŽCo»¨óåbt‡cÒ0'¹4m\ଔÌýˆÓy²bãs7O1¢iqwÅáÐç°ˆ‚ö +³Á ÝM´_êŸ)E}Ã÷°×ðIèX[T–ô:p×øÉN-Z~ºjø3¤agq‰¬}Ž +·4K1”ºI·ß +øØ|d9À³½Z‹l×ÓªG_¼Éȩߤ½à?ã’Ü9wž»Xi@LÂO¹óM ¾Gæ¬·Š‘„z¥¸§ŠÇÑ|ˆ×1>I!A}„ BÃë>KãæJVBuÚâºGÊš7¸±„³iéëfrzw©lŒjéW« +]rW¹r;Š5¯‚+‚ê#ÜWVv5óZ‡КçÕ¿G+ÂêXýÊîø¬QkïÕÜ\1}‚ëß}?tŒ6ù„EFí(ÁÇD»ðÕ*Çökî9aì^B=†¸‰d ú¡ã:qœqXûŽÕ÷D~W AŒïWõ[FŒ™{p|㈰wyˆö±ïË¿!Ù˜Ùp7à°d;&Ɇ(­íŽ—ù±OÒ$GiN/&»5Êç2Èœr“þ¤e<Ëÿ¾˜ ïÜG™mÈÚ74‘Í5%¹A—çÝ«ž9à3Ã}!£Æ”\ÕÄEõÁmjG†´¥NOg›…#(×þæo09ÍæâÁXMiÿoJ5àgm%^>Ù##‹Ù@»”Ó]Þ–,_»¾½CxÈ9IE;|rÿ €ÖÃÅtWù|)NªŽuÇÐêŒm%/û–¨¿£–[;Åýòç:@™tüÇ¥î „hÈÌmùV"¥¡gà"3t›ªÖ0áÖ±sO}¤GB!«—½þ=ãsK?¦"]Q>Y×Cj¦ò¡”V·œF r—ðw²Q–Z_ˆ%o§n’xZ]îð®Z½$B‡½4âé3w &·CÞ·ð“âœÍ]5üúº¡PRÑAd~P4éY0‹…ú•®njlžCœQI¿[SìðaJiª]¶è BØ[8C½ïv#–:"…1ïD&Ô«é "MÁ‰jT³*¨6®1+ÖŠÄ>±aÎÒº5FJßEµèE)ÊS3n'·[ÕJæè“~Z¢õàKg„Ÿ½(ó‚ôVø¤[PªB¦¥~v•dÖÚAÍpñ¦åZE"Mÿ(. îìR²i?ÕÖ‹U !:¶+šÔøYÓî~á‚Û\™e3‚µm³ÍDiy$%/÷4e»~«_ùá’–8ÅJ¬ãG,Á姺å[Åæ Ra…A]'lQóóKÃ8ÁïζåT #~SÕÕ­?¾c°ÏÖ°­nÑ`¨QŽN†ÄfËÅÒ`±§ý|tU3cø°]ø™Ec™ÔÛ¸u3º…Ž;´>(ïÃ’_•ÃV> = åìJd,RÎò„Rn7Þ#ò4Éì6Üè™ÖŸe>àE»¬‚Ç(•Ÿ;²ñµ9#ævæ'ˆÈîB7¾…Ö’Ýš’È6€ÿƒLŒÃ|^3ÅÂSh:Ây55V)»•—„e¼'m·×!ƒûöêº_LÖ{™ g”™#£zeñ DzªZˆæ|#æÖž©&I”GTË`žE˜2v™‹²|^ôÌ„í9øáÖâñt$üŸŠù!7!R•·‰ç{œðEn«'’b¶ÙÚ–;yÌÓ\&!Øg—4à ‹:¶c(eû"åÚ®­ƒ¼·PåZk˜”« +úáÇÊdÚÒÆ•*j¸Iƒ•ðÜN߇z§PƒX½ÂB¦±Õ1­Ð ïd…2òÞÓ1 ¤T«¡—Ìt««Æët!æ6Щ(Á-ÓqÖ5Ñ4•QOšË$†r´wî×$²½^“N¸E‹ÌM9óRÍÙ¢i¼‚£¾°â¦\—à&àÅ<ªjÎP¢¬žÑ~*¬2°ÐØcÓÏê>êô&3ÂÉ ¹öäQ´W#Y9'Åè/ë‚qè•%žÛk#"È›â¨T-  |L\†Ôöb·Šˆ[r®¸VÅg–£ +µ‰ÂØ-NûœïOðõzi—»¨ú?÷aÐZéó9(Ã`{…¡†óÆò4cNÝÑÜÓk¢-¯Öb“ŸD /$âZ»íOuLfôq(ŒJ;MÊËF­MŸA™Ó7à ÕÂòqJqŸ­ED¥¦è"*Ï£{ãøLRÕ)~­4Ç´é‘oá¥ï3®b“›ËîB¸ W+›dÏŒO„~6}&ºÂ6HÇqê¸øøIÝÈø¦§ýØ +èydÁÜ©wE ÃïØw,Ï%hv\ ã^šœþ£Õ”_iFðeÐD oó•CB‰4~»&¼ðéi4hʰ†Ðù¶F4W¿lLΧ‚Xz°•±G¸žÙÖÙ !ƒHÍ<àÍöEžèN–‚JòVôxGq cNk%t¶²ÕÃð06,?.¦e&kHa*q‹ŠAÓu`Æß¢ŒzßnÖI|;uÕ4ñ.õPíø•Š©Áåò³ºƒN3w:]`Yü5ÒdôÎ^±Ì»ÜbÌ DÍsÅÉð§sÖ⌷`S käá}o‘K64ˆË²[÷k/ŽÐ.ˆ”j‘=ßÔNÃÅåÕ’þFᵜ[e"ûæ1ø]c°FVp6Ä‹›ÐÆtÙz÷ª5Í‹ "*’ˆWlS DÜ‘¡¤×'«^è™—qmþEL +wx±X²AÄÐ~¢Ñ{o·YÎß)KjU ISñŽëñâÉx‘V}xÓ1Çî,ˆ‘'¨vÕ†ú˜Ü9Õn™íxЬ‰œPBÖË¿wޱ寠èwëÅÔ©nh_¡1T3–ø!îïcÕ6J&ÁGµ%Ó^•QW]áÌp Ì·³¤*­1±a¤~Þ%\w°ô1¸à¾`.YnõñBí7æ?MÄõxÀs!Õ?þXõP»K=Î¥Þ'€ü’®¾†6#rÝA’%c¯¨QÙ×%cb‰˜:.L,þ³D[8yðapvÇØ¢¬¥Ôòœ:Š\OóÍa*?ã›ýì)øDäL-üU8bY{ÿöÌmú•Ä1Á™îW[§¸aOìÞIbäž,sÆ( +Xû{Ïá÷¼AÖøòä¦ùæ¹DSXßñº©å‚^ÿOÃ+õßdrTúÉ×vaD‹Ç„Ñàêú—1J)™ôYú{óæ¥s b/Ÿ\Å«Á¥Ãø; #ÒO6K ÈÙ{õÐÙ •ªÝ…J =Ùi¶¡-2BuNRïänP¨T­eEç§6ŒÈù²½:Èx7iüóÃ3ªÄ¾éxe“N3':„"0Æ™O%Á;Ejªä¬fž>ðÖIeCÓŒ1Ï<­ +<[“*èõ]iŠ,ìx{«ìXâÈŸ¬âë§cøYfÎa`í<Ÿ‘#iºðM!à;¯:I BÇÍX+ßìv0 r´Zi8`Ô Þ³àu›<éÅkÝÓ˜¥åèp’–•تt‹å+«~2@ËéÐô•0©„_§zÚÊ·ù‹!°jS¼$ÀK„ï}§ C˜g¯cÍÔ¥ñ%øîKCßb¼I5Tc«”biትUÝðo½>©ï¤ðÛ’J¢çKÉ)%lÒfÂ:úZÊé]µm”}t"º£7çí‚5°=fOVRµÊ:ë;‹¼"G¢Ù +²«JSÊ7qh¥PÏ_Z‘*6ÄÂÍ$ô¢ÑYñVòÚöw=¶&7P¨ÂF¤š]J'ž`N |ð8É0odÕúJ©òvÁ°çÆüy +“Ã× ”d¿‰ÿú€3"e·:ÁcHv?XÁDékÊÚ)ȼñˆT—…‹k×u¶GØq¹§}žâzÐE£4A_’ÓÉç•ʬA]*¤f5Žuå)áÇ¥C° ­X¬Ü(¶vOò¤ûÚÎ(ÒÜÇ>cîoÀ£1ÆÈ+rëëtUÄq‡Ý®Âø)0Ó&J™ðÌáé¹gÒŠÃVÀ©mܦó8(* A™#؉¢¡ó‰FJqŸ‹Wá–*t}Ä» qޜԢ‡ÒšºÏ¹by£‚Ue‰ˆŽI~‡”%:; +R ¡ðÙüÜ^ÞC½,p”¾e‡ŽË®¥û ‚¡]|’Fd +’cÜ”2ý¢­ìÊÍ4kxõÃ}ðFù0·X}ÓtÁWZ­%A2´OìÃRRvd#³•¿Ç­/HóÂò}D|Ó %¥ +jC‡ö£WLGuï2=xÊ=>Ob-ƒZÁÓôW]’QÚ‰pëó¡ ,„û-è†s|’WzÓc¬zêUÔOªK/ã©¡çµÏKÊ –>ž±ìÛFzXŸF²¨9©nÀª¼uyYtŠ’dá—g*Pyt„Éßʦ\þ4É®qè!î³E±A”ÃJLõF{ñÕµbË“U×*ªì%¾\GI×;Êsã»èÛ0¶ K¡fÖÙü}¿®PJbD<Î^½lUË4¾,yÌãb)(éP~¬ß¨õ\¬v/­z¤È>\5f·«–õ±+RÒ9ŠŒåÝû’[‰ †ýpÉÓ®ç•f¡37i(ÿlâ7ð —ð•áLÎ6UbÊhñ‘t&ž¨ÜÐàûˆF[¥“Óô.¤âü b +–2 ƒ¿+ÅJ®HÒ•á±>¯K0÷Š[¦'ç–+ÕoŽYF/¼K@ +`Ú…çrf7v½°`ëU¶¢É³“/nîåÔì&ø!6ÏÇÈH´_PJ0rª¯ÁH¥¡)Ãmä ³ô5Ï,ÞxwAÈ胋…(·:ò„É›‹¥×EàYÍEc"éÀwKyNŽtÄè%²À­#ÁXvÞ +Ó¼é+%Ú %=Îü"S¡%ç¦k hîòËœ/YšUðñ{æuŒlú +˳€« _Åм®7€2O­ÿYT°M¹Ûk,;*q£s;mWäÐîý̦¤{#}m×Õ÷ª… vh›/ÐßÝNϽw‚27•êYt«ìÏê«RÎbØ( éLÖÔŸumTˆ`ÞÙœãaœFHUù¤4JJGg&¬ø`f6ñ10/^ñ;S ób¹ŸÑsfÞàbsÆàÀãká#pö(C•о-’ÒZ°­9•™L,˜ìÿñŽ&¿\‘î3VD³×Ìg]Onøs¶ØKWºhû®Ô/_¸ÈG‰ïð3ƒn; ŠÑuVðP÷}>ÌbY1õPhùygðGs¶zóë âš13»AiîZeHˆ9inøµú5ø›¸–ßóÀ€>Àô + ø”–ža²‰‚!‰·Z›éÙPÀH&oX +S½½ºØ·á¢É9¹øy‡°‰?`زôƒ5to!…óRÒ•­ÿ¥ÖVK§´Á|ðÁx“µP•o‹{6sTO‹ì\£y@:#ºƒŒ?õÃf9¡wr‚þWRCwÈ·ߨ–ëÕæc3ê§æâ.p|ø¹Û!Á¬ +¶öñ>UqÎ ŠJæX†á<ޱ¼9ˆÓßdÓþìׯäí«¦^ÿ~GÀÚF­YÛR[ûÔo2‚Ñojµ»¬e˜Éû-ø¬˜ÖkÉIüA@æ¼rRÛ€ó’«79rÒw¡ŸtçY·S}¾!½;}mÄú{4(RÌŒÝ!d¯ËD“D4È\>1b3]¨€¿úžú}]±iøºñ;4…4RçL¤¬¤C38E<‚Ñq¥¢x4`½£1|£Ù’Áåøüt`]q¹“¡µpµ~ŸÌ$Ø¿q´2¹Œ£ _0ªÞ6ƒÚ§8y~<º¡ÓȰãó†µ6Bf[—<×ÉÛí,ÓºÊÀyͦ Ÿ&àP4¸½w|ÂÖ…·úG ‚µN«Þù>¸7æ W#Q{Õ÷l°ú'g²™L>9ÂÞª•ÞcÅ ¸«ôÝ„ÊmÖó\Ò§gž­5:ñ™âûØr{ëêücÌsØÕùªá&«PôA*“+Wã`±Ô#›9@}qø]…®’•ëÕÖèႜ̉ãSðíË’‹åUs8Rö;Â\½žN Ôú¦VØ’=N°3m.+Õƒë\Âs´ÔîÝÛäÇhºçâc¬æEH*¨½§žÆtÙþÛtËcm¡ÉQae§[ ¥1.©pfñ&îQ'~¯ˆÅúàBÚçyÒ¹—=•‹8™FK£ÖùWŸè3H ÝXF¡£š¸R}Ê7pÞ†„4ÁL<š|oX0óÉîÔNÞ§W½$ŸÅ{ë9fëcŒ“!zN®¿ªj·KHí-.œÛÂÏ5©ÃH‚%9iP;›+üŠÖS|9ê…nat? â¡È"íxf`u]´‘ëÞzWmëÚš:ÊðË…¤ÎOÔÚdR³ÀÄ€[š‘‰2sî¤^ö|Ëdá‘F½¯ +ì¤2•N!2¯Ü ê)º|_ÓþõSh'jû³Bèc˜qÍsÙdØÉìû˜%¤!¨o ”\9ì ußrbA Ö†<ç6Æ'ÆÅM!Ǹ?Ý–®³Ž¥@!²hþbyõ¸³Aû©»œ£!²Ëú,9;ùÝ&oêt4!™£${}Ì$³ôt¹3g‘Å [adrñúQ+Ò]žF‚ÍKÏ!œ×Ï4˜£ëÇïöÈy­Š«J5wõOHON¼gúÄZ<õæ¥L›8×]Š|¾P;wn€e:ëK™É„¡¢ÖJ“’&†ËL1æ¹£óãå*d°Iµ¾~j-j´òîDÕwÝ…]@@º—ÎåÔ©- +Dº¦]Þ|©3£w·ûñEW‘"n ;/¹‘Ò€q»#-v[‡ˆÙɽe÷MÌ0°Ñ?~3„—ÊÉ^_Šõ°™hÂÀQsQv]Ü”Âu}GŒý´:«Z¬ÍŒ‹¤9ýõb&–T¹j:sßhš»Sc(õÑ‚‘§Ù «2úÄTãˆesFz¬ªé*Å*úÖ¶hÔzt1˜´º¨[[–ݵ ð£.”JŸês$ß®ÏQŠèº'`°Ë„‘œI6_¨á+5éÝåÄq\†B9Ž ðÖ +vbUØju\õD¼Ïg¾·ö£y¡Q‰°üñëð[x¤:iù²–bà˜_ÞçŪ#¶XÂÅÕ⩱â:£?é=¨ŠSí©!{.z µó¦’üRâB‹T4ð…ÿq¥­÷<'ä0-;¬kÜ%çÌím'„«Ùô½õ^ Óô1xÆ ²véØxì$%Z@Qä"ŠAˆé§¥ +2$|´¸w½-@'·^ÊßW‰õQ.֦“ìvv¡oJ²9ß‚Œøqú\ÿ]k’äfv¤?Dè“ ¤ eCF,R±6/¯œaad¥Æy$|ÝŽîw–s@yc(~:Mÿ±äV@ÐÝX­€r& +Âô 9x¦óÊ í,Sp6Îx@ËÆ¾Ë‡w‚Ö ƒ´L›Lo'ãQAaЇ0mtUX*–*'‹_7•#ü5ÒkYqY Ëu\ úöcÞ~šîÈ0¬H÷Z¹ê{#g!cšïÀG.î%(n3àæ%»ó:èÕOk“’‘t¹mtÛJžép3•´õ»“wÆ}r†ÊÄyŽ×ŒâÁU¨¬˜\ª»Gªès^ ×%Ù6^AâCP ²D0jÚó–Õ ®opÝh­ÖóB\1??âT¹†­Ï„G’$#ŽsCaé–ƒ‰oGPYËCO¡áUäìÅ“~³l*`0Ô‰-ŽQÿ•à4ZÞXfÝEÛ€±?Z]b»’“EÄÂC-%rŠ_‡Êè:fØ!we€O¥íž8ÊíŽ#q —Þ!ÝiuÏÿ‹e™ÆÅäÞ¢› +ù+º¡±R Í •]jyÿŠÀÖh<®Ä³ìÝ@´°´0à<©ðu'U¶š‰6e_ ²`gôh`‘¹N +‚8‚`ÖxçDñÔTáSðË{™*»òO¦ñÝ“iä|£6f¬„ôqì<λ ½:tc>’]þ( Ñ=öÌño¤cjmçaÙlIÛ¥£»×àC‘V|pãìc\‚fãØ¹ú?l+í´†ÇTÆ%"˜Ã%U12tžèÞÏûÔiš(Ýãh9ÑN‡ ºGôÎDÕŠ +ù+u‰ÃHF!|xZ‹X,Ë)ÛD³üi2ýP,Ô¹²‚þR íÙV‰*ièÒ…“µ Êße"0{ +ÅWA‰Ùª˜} +³¥ŒØhM$*Ü-uö`žÀíyžŒÀ'6êçµ"s¢U¸j{` Â]xZìɹ8KìwQI•˜rÝÛ”*Œíáv´@0F: +¾ƒb)¼"dwÓ– ÔmºæE)Ùó-Â#\ïÀ¤'@™5}O~ÝlA@ý¦8€ k`I(ìPšNl‹qw=÷)ù€%=‰¦Ò[cnJ…J2ä¤ûÌm‘}eéô‘O^ý˜ûŠiôàÚ»æG€" zjÀ]ëôäNg(™õÓòf‰" ¼¶pR6 h×§Ý¿°é­lzæzê¹UŸé†€S ²]µÙõŠW›Àå}$R²¥&Áÿ +R6ûÍ7GönkÇâ?€8S²aXúÚƒuoB¤¯Æ7„)ëõ6êÏ0fÎ+l4ÑM‰+g²ýì³ß_œÃ{k¾Ù(A·þÆÛÅfË<€œºj­eÒÖ°?9õpc¨êWT$„{¡idO–hJa'y1™g”ýI¦ÿ óO-‘Q¥ï|ÉVœgàË•ýÊd²¾§›Ägò°ÌÄ× „£˜5˜EŒ¾´É¼­© œ :X^¦d ^ÞÌy‰ê6¢é5ª°*{­8¼WÁQ2-ÀgSK—S•4ÿ±!Vf°mHÊ.L%ïŠÝRò¦‹qÊÆ}ÛȘzuQo­5á––_àÒÃócâ÷÷kÞ,Æ„XZyI‡ž Tñw~?Ñ…ÛÈÀnžò“siÄëª#=7'gbyƒ† × æSzûíáÈÛ?ûcŒaL 샷f’«K±rçKÝëUZ¤ýió'Ñä1åUËŽ%’Û¸`Áw#Ÿ;ð)šDñ280PöÉtPS:º5ŸÂ§B9ðê‚:Ÿ >—åš%â}bÅÚ+€G´fvéž•5‰Ý$™¾æîŽC°̯;yŒìÒÝÄ'dW³™£Ì}ư?e>0[„#½9ýÒ¢[ft›ñD“7’qÙû݆ð3?òüZh;î²Aˆ# Ã}ü›¼|ÛÓ‡¯ŸòPxQ² +Pú +Ye¨¨Ê䩺Ï&‹ž7lÐ.'²Ï\U’Ò<2.ËÒ5qi—ÐP <ؤO[ú•Á»¿ÈŠìÏåJeÙlk Ý¾èÆ…ìœè³ªüÙï®åäíÄEIZÜHeÓ®¹Ž¼ @Ô×.hÝM«âæ¼ )gê‘€` y!CZ_•ä:ĽφÓS;™.9f|¼ÿA'l ãž2cyhèEH®qåè.ÊáùÜêƒAÿüœ+8UX“Û˜Z³;†®Ôþ¾Ô} ⊉…X|µ4<­õt¢Ø`¡ÖœãõÒ}†ÿÏd»å¬î¾Ú[2 C%Ïê ²`›ã~ê†*Ò(ãµ}¸0±‚ó(°âí­èM{]êLd‰De(µztYÕÇœ)ÒiLØ›Öö—çy†Ì ~½b`Ïñx`¬I¹ øv¡ªÖ;¹BÍv†3»CÏKÖp™ïsl2>DçŽ:±U' nôCÜm6þ,¿nÐa`m®tÖ ÏyßÔJ +†V¨00£ñÖ"i +‡?™ì“mA‰º|·níãKµ’]·äÊÌRÙðPÞÆO· ¨ˆ6 +ΛÓáÉõŒiÉKÞø¢/ûìÉ .ê1ÃÝK"ûÄ‹b}*¡7$\qóTEd㈟ÁýM06ÙޙߖGÀc˜ÔÒ]9té¼ertŒçTmªüB?1^%¬ÐýÁÎP‰0F!çw˜7 î½Ê% 6~á)é1S-u=éFš F‘’™£޽8é¾w žvº“R¤Þhwÿ¥ãþ¶ê Ãüþ;^®sÜ*LRj0¶·¼8\øV\@Ë ‚é—½º«t%©0B‹MÌržJ·v’³Ök¯Y ÝÖz#ø…ó…w£5nh`^lWƒþvHaof„…†']CäûöÐåá<Ô]&Ê/Ž"©u7ô‡èWã“k‹‰ÝùH$ +L‚C½Aªæ2*M)g­Gÿ*ËË•J¤s†ÿI½&ÿ}ùWô*x3ž€ê6–ä lAÛ*Í?ß¶s¸<ÊoÇfˆ £†Á3ÛÍ®¾!¡¦e¦XÞAœ0rOù\7¹=ýlPü&}Ë.VV×Wø!¾[Xe‘y* qsâáTÁcjÝKg\–B'“¯ogË…dT×èľ2çŠw à‰ŽE¡ÝiP†\u嚈:-vJñlBýl ¶çX}ËC™É¨°¯``¥}Òû¹75Ü‹¾í%ÏRW} *`±]QZµ‰2º“þçä;µÒ:Ž^÷ÞJM(íÞ£-qõÇET#­šeaX÷…ŸÇÙ;Ëä±e •rÏøwc]&Q­¬ÌjEˆ½`kV-}žœ”Ò¬â™ïÖm™cȼœªUçB«ƒñÛ˜öcM® ®k2OM´|I—`°¼Ý¼t¯Þ7 GÑå'yÈsÄ”¸ºvkd@‰,ôX±áPÛ¾wæBj0´ù¢0\¥:]ПKŒ‰,Á4é‚|+T¥’ybdß“ÒŪa>ƒ~"gÕ‰hˆÊ*½ÀAV‡Cz6ÔÔ2V#T«¥*(ü&»/¦eNù†*’³ÐD»¦Ž<Ýòã~ÿÆréý.me!477 t¾¶£BÙÙR2#$ŽîÌ ’j#Çúv(©ÌhÃ2³¨íùïm W ¡Ðà;ˆòík¾3³ƒÅ)q¥ž=Ôý÷˜/ßÊ0¡sÐmuØ)ì¬^(ó*D^:‰kdHäŸ3 ñƒo÷X–äEª ú’%& _'ùìmî”z»ùYÃ0kf&rÛf«?jž9~ô…8«ÞI½Úùp§F¡)™|Zzècè\QR×TtÇ¿"QœøÅý{cU©q“)h¡ºl~DPƒ¤8ƒuᩥɣƒá`Ñr$–ÿ@/ɶ„6ý‹)hXz~BÄ…k?`ÞÕ?ÍoÑá[AñÝ»é=8—¬¹® +¯èpãý’/*£ýŸŸ.¥ëBšÈËå?¹³ÝÛ'ìé¤î–Ì1}D¾Á-9ÒI hT_«ãS h<9¸KSw"ÃåÊŽ­’© ݂ߦî슰Þ æÉòG2<üÄe (§ö1©ü}-ðe<Ê“ +endstream +endobj +601 0 obj +<< /Filter /FlateDecode /Length1 909 /Length2 63390 /Length3 0 /Length 63746 >> +stream +xÚtºt&]·5§c'?±mÛ¶'¶Ù±Õ1:¶mÛ¶íŽíÜ÷ûÎ=ç¿çûÇ5Ƶ×Zs®ÚkUíªQUdDŠ*tB¦öÆ@q{;:&zFn€¬¥¬¥1ÐÉÅÒ¨*`£g¢g‡å˜Zš¸Œæ–v° ÿ +–7²TEÄUEäiþƒc +4û¯ );3{ÀÿË5uuøo¾ÐÉÙÒÞ@ùoq*€ÐÈÔÞÎÆó¿ˆòö.–&@å?¢®€ÿÑ{-,m,’ôE{ZX à_™®v¦@'€*ÐÉÖ`o0ûÇmïnigw*öf.îFNÀäL€vÎ@gnX EY€.¥ÐèddPt5¶±4ùo·.ÀÝÒÅ╪ô0:¸üëxìL +âÿ¢ýŸ¼ÿà‡ùg.@Óÿ¢þË)nïdü'ÚÂÅÅ›á_jfÿ2Ñ;›ÑÛ]t©`UþQ032²Ðþ YÿlÿFö#Ç¿‘óßÈõ/dbü72ÑþÌÿY9qW›÷åÿª*@ÊÅèŸ þ_ #[KÏÿÎk-Í-\”ÂööÖÿé³t·ôš*Zº˜üS6#gàÙÿ+­¹ @ÇÄü_FµõÊæŸŠöΖÿ®,ç¸T-,M¬í€ÎÎVÆ»€ÿÿç³3±7ýW‹U\þ錑“éÿþíV4²´sQõtÿÏùï1Óÿ˹8Yzté™þ ügûï=½ÿH§ââdo Ô°4ý§»ÿEaa{€7; +€ŽåŸ²3q08¹X|ÿ7ÝÄÕÉ hçòïK៩ü÷ØÌòŸÂ@صe{ž`«´?é.µX9Ó¢š­Db,îC£VáŽg–ÔšAÆúËÄÒ°÷t¿á„³°‹ÈݼÞd|6ÛÓEŒe~‡ÁRÕì›Àr”y²*‰P²;a_-Jã [Ü-¾o ‡žÎ¡Õ éêcÀêi1ž•:1gð%zy- Åa{noÃnwüÙJ‚¿Se5‹~€u^nó]ô0jfý*´ eTtsª”A#Ÿ‚exåiLÙM¦1˜'VËÛ´ð ,õüõ>&¶À!÷÷gB¤Œ²nøÍpà©'c=ôåUwœEPÏä4ó-k!OõwÀF¤Š›Uu5,­ˆ«‰× •ÏûüÂ+:·6 Eq ŠCï[*̹eëðè´…]ü¡®ZˆÓÚr<, +ßÙdˆÞ|<ž»J`Q×PsèùþAs=¬Ÿ0R¨Ëg=k­3f¸yÝY‹Ð9¾Ãgc¶IXhlÑ<ŸMáÐ +k9m™=Ї…¨ ´éh/þµÖûX£ª4bóîÖ¬Œòá1; Û²ieðõ¨Ê³#ÊKb"ýÿd s‡Â‰†}·0R¾§š Ï“¤mÐ9Yñe5{vÛ¼l¸»‘Á¾!¢Ë;–“{/J ›ÞªSSo+º~ÆP +§÷Áš©8šì¹Ð ´QÔn0üPÑå—åd ûaór}D™èà+Nè ,H@QÇùAͶÛ<¾Ôe·(Í„ìŸqÞ[¿Q0^6o1»¾ ¿ îçKŸîÒ¬7›ûó|½"¼oœ÷ê ÷ëˆ][D`<Êų갵 +±dù—'§•פؾ#¢š˜Üˆãzq0¶ÿ?œ…† 4-‚«»†v‡Å•ÊóG-¬JuAÃò†‰|=™.÷†Q·‡µsªðùÁ ]{ G¡¸‹uÑ>W~ìqGi‘Ýkª´G/'®{Z éou}²*±+x ¹¤’sHúƒ 2>ÑOºƒ©Fs´ —*Sñ5Âéq7ú—Œšûš—:¡ö¼=Ïà_‹½`-ò!†éBI3cEyñv¢¿Ñy*xЊ€õ¸ñ™H£Ó¿ÇE 0DŸè‘0_dyö•Óœ¶Û›¼âJϘí€qA¨^>‹¦P4;¬Í,܇…ìÄF—ºUÕžÏrÒüºY¾ý}qE§*¡[ûB:3sš”þS¶o,AèZ˜º@¶…ª2s’ë¡5¬H2‡ÐÀ^T°ðx»É~—ii¡x9óNÕ8äfr9î2ùrþ7ÇT•.þ6%Ê$¸™ÊÇŸ£·e²)»VðDáZ„"¸œøÓJS þê®8I[mÆÃ§7*¨=iüa +>[³–òö’…å7ÓÏ,ˆË×ë=×½‹kt]1Ñä>ª¿>Çï·”úÇáóøî06:×_N"»tö( +Øw— ò\"¹hðÈ]çµú!·µÍ­òR†JK—ÏX°»Í2.z¨/ 2lëMi¢Õê“J +´®805ï%‡»¤ËJ¢ßð}u&hêÅENÀqNuÇ„²Æ"á3¥e#ÒOL–2špºqKÄjÝXv-j9.'¿FøÆ•L²‹íÚ;­^ò³°›”šð/ÕFsDDš+å&ö'>ƒ©ý6M’Z»`£hЊ»'¼)vuh ìÏØlQÀÁ£¥/XR?÷ ¹VÒŸ¹LuŠÃ÷/¯ ì3¾ðé3úÐÛNwùã €¤c:X½c-$rì §'r¦©Dâ]ëŽã²g ú!ëö~MúŒÒ&›ŸW‰Á²Ù0ím² !•´S.0 A ´àö+~*¾Ì“5^2‚ú eÊØ½<Õ™WõÍ.¾³Ðw0º£¸7«ùŠ-qˆ¸-Qi‡ÃœA:À> VCÔ¹½&á^AèhD½GDì˜sréIŒJÚ¿’wjÇ!íëô.\~ª¯‹}Õ=¤-ø€ä"…“üïúŽXŒCßûVÍÉÍÔŠ‡­Õm-–€cËÝ‘Î].Ô°1ŠâšgD£”ÚlÄ’¥¤"GþÇÒÛQÀåÂé;â]7.s áéÒÿÈìÅù%•âî "·ŸÓ‘IÙ-ar‡Ñrÿ:_·‡NÃq™î]nOõ½õRÂ{°<öDlƒ”–Ô”HØw„øœØ!¡q‚Ì„•AÓ#9îòÉ  +.$UC¬ç„lÚ=E–wÔÌN…ö1LÇ}²ð o‚P^b L®'’Š,tÁìbë)}hu¾O¾®b‹•vº™Ô¥Ô-X4E,²R”a¶¸’¥ØŠá#œ­‰Õ²Ò'ÿ~ªê#Ûà ’êÇï‡R/J *á6…'?å~Ú pWŒ¥NTúÔÝØâqšfGš(ÎÃ?`Úá’FÅ´ÞÅ\êê°ábQâsº f±»Ù§\FÒ2§8noõ‰Y‚PŠó4ŸU8z¦-à§h¶Äòi@¸z!F`FwÚ[³—g±æ'Õ´@¸¾F¢p!=í_+­ô‡GÊÄ LM;š/ÁUèÔ+Ù7~´w6ÞÏ/u!pá‚}ÙQóFøp›üÌ×ÄS°8ÉÞŽçü¶~@.¨Öa0Œ“í«(¡ »ðç9ÝÅÞþ8_ÄNÛ"¤km¸?Ï ®~«ê ¥o.[gæ¿ØJADãåÜœ ãa¸«€‹òç[w¿Õ³†ýî$êZ'.ÃÎÎÈÕ”AËãøÙÌ{ö½U¿Ìän9ÂÒ[_ãóEƒ #ÓBü8å‰t寙ú•‹ +ÚÅ• š õŒ)Á%³¹~(S‡yˆGìNÝÃ=;{ìgÔÔ\ܨueÅØP«kô`F%ý¿Ì*¬šš¥<ÑÔÃíØnXÍvšÀ¥ãàî«¡~¬1QœzºÏáð ï9mUhÏn§_PçR¬^,{ ¢ªÃE©ìAñòqEߺ¬fU"•Íf™^ŽW}L$,êL!šã1V¼=5U¯²Ó^êÒgdÈü$ÝÑ']†0ŽpçŽûÞý­¾¦&#Üf(õ£ù¼3x8Ûn0ãÒYäÕw!7ÿ_PšSEhè„1ä‰ãŒ2žÓÜÍÑ¿7ñ(ãEi2ý¤q0_̬S{‚›y`î*w«áÿîp0ôØ /Ô‡Ì2&aF–;Ç]\ÖU#*˜C +Y:×V1Hj%úßûlÔ>– û¶+&åG‡Ì¤¸sêYÇâH$ˆ¼ ÇÁƒCkÈŸÀ'ªMiqƒqa½ –=&î.HóvgnI¿ð´8·Ï,ðÓð‹ØÜìÑ2\Dßââ+¢¼¦èºG?ö4/B F›Êä}ûߨxޏåIâ›–Ý'¸œIJëB»Úƒ@µ +œLäL8qÖËåoÁ/e‡2¤NFÚEçf.T¸ ªÀ)Ó8Lª<¥q(e a¦›‡þûséçÌóòu"÷§O–Î/ÄlÕ?-Úãpg¥2uštåNGƒÌó0îWN¨¹›æµ¿ìUþ²Rf6ß©ÌD(ö>IÀV®•ýN¡ Aôó"Rñ07HA”Q¬öÉåáè§%¯çUß ·ö #™Æ )÷ ”[ÈžYñá–1Ùç|¼]ä§à“$5v-^‘R0&ŸŸi‘£FŽ‚ùJ¯R%ÊFÝ™d +@ÿÔ6£ƒ&”&"7[/õþŽ%M¢íË—J}ø×ˆ¾,ÒGѤÚõQeLJŒƒsT†pu£V rX}â¾óý4¢³„xHà DüvÎà¢>AòOqNܵ‹z0¤ã%oh²ˆVÊWZƒÐ1‹Mš—’ÝŦi§Ð¡cô»´s3¡¿6²ÍŸs%}å?“5Fµ‰»©¿aM!/asXºz؇áÐÜ·ð…‚Oœä<&=]³WËæ;7÷ëòãÝv1~t/¡¬ñ:¹0è¶Á…›/~]mÙ5…oáG×¢ë’ThtI“†ƒMR@öÑN&H±^”«®þü«3>¡A—.ã/nèWQ­éX2ÂûHKªŽ«uæêšßàFÅœ5à=o¾ò>Kì~fXÉ!žu·óîoI›fTÏTеD^W~¨Â9TSC8RÑJ×Jÿ5¨dyS ŒÕ;¾«\žPÿªÌמëÎ^ezœO(ýÚjé§ç™òÉéÅdR1ÿñ&ßlŸáÊdµ®YÌOÜÍH¿H±ýÉiŒónÑ{Ì- ¢€ ¬þ WÊúÞa浈]dæ´8ÇМ-«÷2üÜi-ýöýÛ¨Ú¿¨n·€üJ5ºKóf µ×/gƒÅùöP’è{Ë——]êFï·aVÍÕé ©wøµÏ<4w¦ãZvô¸}ª8½ŒÞ€»f¾:ñ[?.T»Ì %)›6bIŸÙFÅs˜K?Zîq;=š÷«Ó‡$‰i¤"8ŽÜðoœ~~é|Ym7¢âYW¬ƒåë¹2­p[’Ë‚Íhý†'%Äuвé6CCCh K!m½ðfc*ýb÷â°ž‚¹@»»|þOú[‡W˜DXä +FÉt®éÞ¯gy8o Çb1¸«²+ZóIº—§ýÅÑú*‹ÝÂ$Ì×?º~ýÇPKÞ’‹ÝAo´…BúN'ìc<ÉÍ•@ÈÕlâZª Ë!ì7+ˆoø"/±Ý":˜ŠöåUÊ–œÀ' ÊoSŽõ!û§-m‰“Ðß:ì³è›.îþŸü +32ì?#!0¢¯2÷!‡øï*Ü„8Pù³‰çnŠ/3Ñ‚®o'9t!!K4~}ݵæ¡:Œ[þIÐÛU"E`@N/X†ëJDEßiAR-룈è|0øhK:ß{ îv žï‹ùd„lšç ¹¸¥#_zȰxÚ úڅ꘻eübªŠ¾ÿÍò3c­éìQçª+yž¯8ÿV@1Þ+{={žîÞ579–ø=Å~¨„Â/ æ^qܱ8³ ÌA\ ±› ¶¡™A½ù†Sž¡ÄµÃ‘oÒû&M;¨¿Øû׌7ûJõyï~Éz@ñíšì£¬èmR业D3VŒ*ÌÕÎôÄ)º‡qÉÂrÉ1…*¯Yô}/¼3¸ŸD[ñlBàlWib,Œûz@øŽo,cÒà":—ÛpE‘7úƒKäzo™ÓR ©ÞúÈ#t_žB¦É•¥'Êßaú…*Q^P©ÀøBXŒEiÙ¾ÞçÛ;„–œ­?ÝÏŽ¥°Î¢ßðœê¦}Z™žëx“hgkÛ>7s4Q½{éO*„“ÔÙ׹‡qm–×{(׌ÚÁÀFM|X—ž¶¡çôåàA‹¸Õ™ +ƾ='ŽÖÚpŒ:»Xra¬ŠØ—Îhw¨ÚŸV6Íl,ð;x½"<—[>¾^º. +'’cż ˜˜Û±l)°Âcˆ–?c +Œ$ŸYt(ƒ3Mh8‘P7M`jIìΤvŽ“ÐYM +Gà0Âì/û6”ýø5Q2OÄS +Šu¬5?k§º©W;’D C¿—SÀkÊ~|ôƒû<Ç”DËÆMÒÿÓ½óí;gìèÜdVÁÕCv>n½†~,8ôîŽ@u‹ÙrE0Vp¬ãSxƒ\X/9‡Æz ~,0šž”|´,¶ø<{ÍiW¶ÁÑÚ.ò@WkǨƒßsýþFäo=Xïÿ7äÁ¼63ȇŒ–À%tW:t¾ì}z{x+¾A·ïµ ânpgÓï¸GkŽ}%¢a[×&s³3·))»Gr<ßÔåµ2ú4HÜ=¦©é+h3Q=H™»´–qâÀk¹¦™g‹ŽO +›œ£µ1˜›»:/Z''ñ<96Hæ¿:¨çt fd×~,vÜûYäo¼]cLÍOzÈ=@…±¿%ÖÌ©¹ég\0v|œg/,»äú—4úWÌkå NQs—Zî‹b»_¢©! `ö§¿œ#}b+àâä¿ð`êÊgÊš_–¦Sw &‚ ÇUX6£nðZ‰3V?Š"õ¹÷Zê‹O¡åtÏÅ<§òüþ•Pxçï}„g3›å˜.¿çʉq uvƒ96å2Ï+÷|7/Mf,PŸ¡Ž‰TÕ\Ó‘úWQ篃/ftªŒTê6™!¡L’ˆáÙÀ|P}š2-gC®;lnUF$…Ëk×rÿÔ­Óž¿Y'ÿ«}ñ¡íôñ·&¨,Ö=ó€ Ñ׎'ýr£¿ìÚ§Ë{k»:t´½Ï¢‰¦ØèöL tÇIKIf¹Èv?KUì mìÊÊ·?‡¿u¢v™°+l( +fv^xT¢Ô²öýH@Xß°œ 4««ŠÐêʬà{³æŠpJ©“‰³ä«i^’üï!Áù+PÔ±ªi+;^Kì?؈øî/ª(Ü0º OWkQqˆ|ÈSÕãKS±»F(ÏlGç7Z!Å1¸×›10Š~ûȘ7Â8P/»t¦Æ[1lLí_2‡&ë Ãny\ú² ¿ÓkŽpÍšwN’É…LÊ´®DñY’µÌmW-‚¢è•UÝ‘×éi§”KOÿLÄ` nÜûëΙ²GP¹Zph!BÚþÄK ÌDûÕÙ³!÷z‚ÁܼÔiŒÌ×.ÔÑéΘE¦Ø\D©Ep—®#ó7b*ñ¸> ¼üó&Ÿ{ï ÿ aEÑ}ÚGð”?ŽˆJ›[“¸‰PÓÛ‡<îŽUU¿²1½ ÞÝ+«Ð>èF¦ ¹Ô@ ñìêƒy" 8ÁÿÆQ´˜ïþþPbÛNs¸t…Ú¿'¶kQžŒ[„‰dr.®éÅ%yo€×4>kžá¡ôíškÅâÆå+Bîu|Û~B 8yG4_©—O¸Æ λX›q2}žºu.JçÔ¸D—j‹f°!xí 3iù¿qCYK(jÐp]­At3J_8ÒÚpô:ÉkΆ'(z =´¼Hc9Àë]ò÷Pc:/uÂbÆ,â¦LfQ1`K’²9Šd%¨yOYíhufE°YÓ&¤ò‹x_ö1Dû™ «å!fJ·¹ä@åjSW—hí=Õc`Ï5-Žoós“N0e“b#…_š¶±·±]®€r·•¬Oñ57Ò|™h¢+ˆQÇÞ‚©œGûäî¾ÒÞ¨<½# +Gå22«A§E˃ºmÊ­PU¬s"¶ÊXñö¿R?#àÍëÇ0ŒAi¶vôû0=ZJ@£¹÷NJ—ý +4Ðán1JöŒºÖ €4Ê䪲j …'CÐ~ZIÄ ˆÝúàe™`R´œƒ†‘H ú +Ib¸ÏbŽˆ i×LçnIœã¦õRÎ-©rµ—}Æ1ˆm*TM§œb2J‘…KßÔm•ÇvȘRO„}e÷IÙÈU,,Xú[…LõÞA•!».ì(ά(vw|¨x³.°#Ø®JÃQåyn¬yy4‰ÒÑ®d”ÛGk—íÆûÃ[]H:°&V*»ê¹ ?ý¥‹¹ß‰T(àp!|¤ËÓV7’¦ë_6SMÂGÚòï÷'t´ïMÔ†‚&—Ê“««»zãj±"†òœ¤G²G'8V~($|edÉI¯¤6»D <6¢‘Ô†ìyƳ†—D;å!ëøØÔ¥Šp²Õ¥§‡Ò™cn‡Î>0Ú %+±}h瘌%¹›H×e¸–¼ZâÐ+TéǾg’!áøS§Êx†ün(©›ø‚|ƒOERA,BHnÁ´%Ýܦ×tì‘eŽÞÐæ såÁ|R«ƒu£µ3,Š… +ŠIc8§i:.t_ÍIÖIÈr;Ãüñ½´ë7åÆcx“¨\2åêHŒZC·£ªTÐ?&¯- ê'D§_Œ5Õ§¼¡Z‚ŽÇ®êyPøÇZTÀ/buò0P »ô ”J.Àª¶Î\qÏìÑÀDœÅ€ 5«÷¢-º²gÕöŠ»`J¼‹k¡Àfìç;á(ax¿¼¼à…‡·ênË6º¬ËC¢Ï$~‰.5Åhø‰ç½€ÎÞ‚ž©?†,Þ:­àu9«—ÀíT+µ÷Çr AÚ—Ú­x‘†8ÎDCz³@[xVÈ%vLä±V¾ªâNq3¤Ö ì õ‡ß"‚÷÷½©ÏÅ"YœïV-ë›?ÌŠÍlíCÐKU„ñ/.¬”ÜÚýCŽfÇãT§@þC’K犥¿KLœŒsR4`;càÕ/ÔÅZS“\÷#|6ü4ÅRØ!«õ¯º™:Àå¤~`ÝFu³Ï¯Îc³°KÀívçíd7š«ÀÖÔ i骑/*%šù”Ÿçó½™'±VÛ€X`\Ý@17½ª£WåVB†Û¤È£j$6Odž]Rõ~­êhá·ÁcëEÀ8ã ~/æ™àzKšðB7ÌE%þî™.—[™èG$‘pSÿpƒÒÌâåŒ9ùê)<1Ÿ 8÷ö/²_q†hºZËÐG+L·EÝóç³Æâ3*ÜhŠÞ.o!m*NÀå ——´rucÃÞç…>¡äzÀ!Ä$npÝ´v—WÁÀ©m5u/…¶ô.ñk* UÜlû\ˉùga[\3Õݬ<_4óο#X-ƒÐÐÂéøzáêö?H4k¬§'”nÄê®›ôLPÑ û5¸ô°Ÿ¬è-¬¡¯AθÑÕÅŒ~Ô[ ¦£[:aO€æcßMäÊ ¬úUAgàÀMñ;³‹öŒ5u¬ºl‰R/º$ AŸ‹-º{~HÞqf‰¾Ö`>dq¹.Ù%—1°xÞŽ@?ã}½ÿÉ{Ü~mä,qCýšr“ÍÉþˆ#NÓñ`û]]xaúctJ8΢è$,áB@¹kïŠL. AZ XÑ“yNÿ— Á6¯Ô‹&¬¸Èˆûšö€¿„ôù(É•ø4\{X”r¹“q<ùMÕŽ;bËà >&YuG’yUš¸.›Z¼"Ñ3#®20\*²öx öÊ,æÖDü]…†õGx^„©—{…rþZxdúRù L|Ã甕·Á£µ¡í»ç–¨Z•Á™mhÞ€®0 +V\]‰%ÆÈîµB÷h8‘¤øõÞsM1 ¿¹²Þ´w´zãx†p„Ñ‹÷IÉ+†´5Û{tWÜF“ï«ÿ¥øwE›ôµn•­d†zíšhò± ñ‚Ã\C4ï¥hóçÝOYEÄE¾š9¾„)ß(–°>ù0PÎ3ªr•°ÉÝ„âø6;þbl—æTÓ@Á9øö»|éVÍÅ­¨köšÎNmu4é÷v03¯Hâ äÃ-œÇe ã=«¸J?‚чø]ž·up¶¦U¶í %Œçžµ¨ã©rËXÅvX¨®1(Œa›¶*áA£{… ÝÌ—Q?ÎÎyÄ‚E²HÙ‰íÔúFU'7¢Xc}`…TÁ-Ús<‡ü8ÞÜ~çV}¿HeоnïÃ]rä±)¸Ÿ¤PXhk'^1Ký9I¿¤¼Ñâ%X×–Šð{u…Ê[3<¢G˜¥ÙFù‹°ƒ¹Ô¹MG´ßß=K¤í#¬´Â]áàÚj¿Läy[WõqÁ€$ãXŽ•J±À~õ°]íWÓÍzDy³TwðbIÛAíd¾þæïŒ’ln„™•\)gJœF“~"#"ö´n‚ïD÷ún1£ º8œQáRÝX SôöK”A²éùü1΀S\Â}õžnž=Ù Úþa #þ—W+Cp'þ;¤s _´êë—ç8ȧdžÄAHeHœ‹ð¡ÅXBûG¿´I6TÏfî7¢þþœ/\΃ËK©ùå÷Aºx—´á%è§ôã-…råö‘³åuk\6•›™h+ø¢ž<õ“¥YÛ:롌€ÊH^ â•·s4z(-–0¨9> _|¾-­qÁSYªÙ/Ca¡ƒ_PÍOîÌ#AæàÊn–eè=á=™R¯ÔY+_íø•9·ËAxØ´”hŠÚzÖ;ÞÏè¤5%G/"×|æ|œ·}ذO¸.G|Æ$8s㉨ۮ©)Ä<=ŸbëtW*÷ íᨻâ3uöß“„h¤.ÉðÔ_å ù‰2šÓ·òOTSú줢ìïI{_•ï P +$þ ÀAÇ…õx¡DþÖ—ú9Ðqsýðh«+Åe=ƒ“T“õAVT349Ô0m+ûâÀ‹_ïÕï/ Ìå=$ƒá} ³àÔP€‚ )±9ïDHÖB²¤¤SÌK=û í•%þNîyŽbÊ­,žb†‹3ÆiŽ»²–Ô”p«¸ÁhäAwˆ×lmëz}³ UXJrj]Î#›Ý–~y#hNä0`Òó¡b+î7×] FÜÁ y<èÚJ ¶P]”Kì~sëLŠ˜¶ä”•e冦ã¯ÕµÓÕý‡2šZ½‘)e>¨¸wSq‘òÉ?vû¯×èý½•WàÞ±S•Æ›ÎYÞôûáa_‰JÎD¡Ð¬>æ Ä)²j„÷Ýl+©ôµHü'ÕQvïh÷àêkÙ «ÕQ‘˜I±aUd?‹p‡W–²¯ø!ÏdÐðó«yåùèA Èvð™;<âGrÒ-%2%#¦–ù6bÃôd»Ž: Nß&H\SßÊ…Õ{h8#×ñò+Z‰‰)>>©ƒ%œ +³c©„ÂMûP¹žˆ™”ç-Ä —½E—+5¨dù­?Ũ¦äÒ¬ûÚçZiS¿0:F¡1™9Í ±éüÃ{aÁ¬çêùܰ},âfÕZA8ÚC.¥V­tL‰5WÀëØ’Dö‡(séÑ +¥ÎHI¯‡gày¢V*q{IÃnsÙömFòdÀüdå—¤®´JiBK7Û—h¢¹pœ*áóÚô±;¥g”Vq÷‰’ÍlŽ`ûîÍÌ&ù±©1§ŠãÊ;=I©ò'™ì¾¹.]ÝP¹ +UG´ø($NpƇ'_Š-qd ï皎ä×第‡¢º.ÖÚe7z˹ð̲6nÔfe;–ú6ôSàÌѾHiØÓyü­°ûþˆ-¤¿xPm’WÁp!˜©vgŠúˆO–æü„]¸ž0úÅÌö2AþâÓ’ Ç›;©íRºz`N3k–¨ !äa) â¸Ý;,RP}×/Ã6T”¸§ŽÐÅšz'’MÝ?f¨¢¿†Çúq¥‹„VgÔÚ¹Á7×P( œLPÄ)LÊ—gâ!äT’ÄŇѫ@‡Êñ£ƒÛ9Dò;…sËéðóö#ý¹(ÍjY/ޝAfê.Yð O?>qŽT""4ÄYÚ0¦oO„Ý–Íð¢íE¾l* +ƒ8é¸ÃíAä%Ë®²¤¿§s<‡ßŒ)Àím PS0¾¼µfuÉ9áÂb@Û#S~èâ§>Hë*¬U{N‚ùÌlŒàD +ñ38žr«Èi“Ž iG~—µNÜVψDw•猓`ئÞ‚ÆpkÊ¿¥YB.¦äªÌñÕr€2¨áÐ#­¶ßË—%],äØ.œtÌêBV M6cÔ`Ö\1‡f¸Ç¬û¥¼7ë£çåC¶´ CåPÛ«NÕâI^;è1rqÅzªsº|6›¦n¯-i´·Z æ™1´…ïû`ˆpL^¼Ô'[1×%–‰çí¾Ì÷^©ê)‹p_ob —ã'´` Nà–Á¢`{ë1LÞ•nÛñ©gÛÒÂIiaèÒm†Û×ò=Sëíµ'1[r[ 8ù»×Ò²¬‹n—m5½Óg0‚¢b„ËæòOË3N…„9Ý÷4&¢~4yNÜqšéÖê͘Ul“§”¿º¢(±þU "cã»säÉZÃyÁ„áJ6K¦p-òÎC·AoÕRÜMïÇlxîÚtÛ 0y¢JwnÄg‰ÛÂAk–¿ØsòÒÍIðr¯ óÛÆ” +Ĥ›Ã\²L‹XœÌ'm~]51ªdƒýÔW° MÝÅì·V +háßÒq´ +C­ý[ó¥d+b<…–ÿEa%Û}Ü_¡œÕÁ¹‘‚# ðAÓ®ùêµ]°’€`Uw5óëŽÒDClj5KÚQäTY⣓¹(‘\=†h¥Ê깆eèF¾Û(åˆOÏá(°îHfù‚(œkdJlšJ,,3,¶Þ¬,]wôj}|sZBU“;MMgÅØ Ê$]ç™òYŒ‹HFÂÈàï[Ö&-?n ÑÍøÖ6…Wi‘›~gt~W~ˆŸ²1ü ’Ýù˜ ’Œ0Õ /¥õ_[ƒý¯y&´†Eï"bg[&âåŽÚŠM­ÑØŸìÇšþ,»R!bà ¬Ãq’‚Û"¾ô“º?li.Ù¡Ûk‹QõÛ-/óL|ãXËÀ˜M† +‘±!¢d|ŸLÌ‹Z‘OËjÝ%h­üš¬BÏžã0E´ýÁÈdVÆzý;ÃG•Ñ÷B\¤-Ó´ÿÊõý„pÆiž0 *Ãʯôˆ6äüÉ)°¿'x¨JŒ”‹TÎàCŠ›& H +̬Á²†?~x ?±Þ¾ÿ:‹ˆ¹ª4”WiãUï!”:óÒ¸*ï}ß¼ üâÇÊ&Ì”+«x14aؤ%Ñgà¦Öºý†ºf Ù3I3€Un YXÜ´_0óD6üQWÁ é#CNF¥q^óùKÐTgA¶Û–Uõã`ã×3Òa…qõ9ê‹¢ÓpfL0²7Ïi‘S5G‹ÞþìLk9Wõ¸ +«v‚ç(s—ˆš¢ÐØ+FÆéVWi ˳ä’ݺ5}ÿéqíïX ASôZÁ(Æ}c—ÌEùD¥ZuhÙ¯á§6S·c®;§V$Ítÿy*òoGIÚ[suÖÅW¹ÆUêÞp‡Vý^â¹( +ëÒÓÆÖEqÓ®É}widV5IÃHpÃ×3Ú£2„YÅm•´ç`Îç¡âæŸ6$NtïW¢ñ9ǧoa^‘a®Ïtÿ{‘~½‡'Zy@ÒN¥;Í^CYxRМ©›øÓ°À½"«„ºÜ­:QBìä }Ößn3«3bÂÐ[`lÍP Yfx ó¶»JôâÆb*@£’2S³Ø;‘3;b¬®7¿#žq'G¼±bW“a§éα0½ðô¸•ùn<·d”ŠHˆ ñ¸ï`¶iŸïËQÄ{‹N…Kg‚A}¡ÅxPÃô-ýß·µãI!®¸Ïžg”p 8K$1×ݯ½Ö”uß* ]þúÓäZ„sHHXÅä(e——³°ñ¡7ØDäÊåø¾||ÝØ¾ º¾¯¸4Í#®K/nŸ6-*ö±¹&êß¿¨]7W¡‰c¼ê̈%wú^'5ݶ:¶.J‹ˆxý;›†D4†ùqʦÃ$<…χãûãʸÞxg rÇ$ë»%ÿN òÎ_2û±JAÈm…Â¥/¹WšŒb’5Oì3 ÷—øê£îtÑ<ôìÙCÈs¾š\-1ιgGè êbÌZè¦T½4‘Tmz€Ì˜sTßÙÝÓýVš~{]Ÿ‹:6Y¶2ÚÉ‹[øPt†dÜû>8Œ=$`Fkv–ý 9¹’Ó ÞEq¶xÒ Ã»/c©Üm»Hžä(Ÿ¯¹<ÚØæûøíÄd}¥©Çv†[˜üœ2–‰W *íVB´ìÖQë„Ú7MO«¢c|.‡Ò]KTB6sý˜"ëŠo×þìi^ç­þ~E‘ù[–iú¶,…'·[©—;¹ÀiïNݾÏC÷Kí·¾þ!­:I($Œ ¸¿ +‰:cx%’ªó² ‡«^‘ê"f. ‘‘ÂXåi‡¨$Étµ~è"ùÞ6«•®çwª +ï²òèC%ÈùÐ,ó…ôxÛ¬OÚh š¶Hòí(n¨"î=5$‘f”@*Õ'A+{ÌïW…OMߌĺ5¤²9lóo9 +ŠÏ&Aêçñ+ÏlŸÔ7Å +Ôý¥Am^N3sŒ“†â67‹ïϬjÄøáºîÞ‚ùì(›[1ÿqL3Ì&BÑQ*ÎÍ6u¤× åÀ#­Â´iæ¤uýUÿŒÈ¤\Ÿo('Ïøó “özýÞòªv»V›Ý‡ äÃöšþîaîoÕ„¯sȈŒèíeãì„«j³:8êY>42îâ2èÇç@‘–VÏѸï¯d÷åàðí9/¼„1W^ §Ó›]#¨|›¦Rbƒ A3æžÉÈJ±1q†(¾Ìú¾FèO²œßñÝ÷á ÒþØfg})fØL'ÄmÌtM=Û)º. +–ó}H`zBäÆèd’¸aé‹Â2÷œuÙj¿\-Ÿ1€MxÙ3³ˆ œ?›Ë,me­@*«=àºÅŸ¼ŸÅOuñ—…Y¾‹«mxÿf,›ù¹“ "pÙË_ž‚‡¸Ïl +THC÷ŒÎàÄÑ3î¤.QV5ŠðåÁá¹±–# É7gˆ"Þͤλ¼ŒÛ‡]˜8žÐãÜé‚ëìØþd±ŠÇ€Óhªyãå½§Ó5ϵž‹mžÕÃ{ø ¥ÅÅrŒ0wS€Â=ëÖEl½ææ^vÍÞÐùM‡:x¯Þ“(ƘhàyÃß“:C›èÀç' +ÑÊ:CíÀC[¨Œ!éøÓž ÏÖå&“¿L‡Ú%†3/ÚÔ2ÇÎNÓH+ø6`3½¶þâãùÁt³pfc€‚„­jŲ’}'®ÇW»v%+pl÷5>`‹L4ª—šŠW §œ6vÑ1Í­  ÙIdÓ%\ÁœÌ:ô-{ì {+#%zç&WÌ1ÉŽ3Ç3N™Ÿ|šÜ2¯µÓ>©nBbÃÀjuI,­ÐÔ‰)Ú(î~°èÃ\šŸ\\rýÈRTA¸NOf¬jñy&ǧqÐæy=2C¦ZÃl»=»Ü=0ÍWÕôŠða<01J: åå[•Q Ø6•‹Ø}tn{=†…+%#M 5[â^ 8~÷Ó”Ã~uºü¥‰î¢-a!ó[^ø X,Ó%›*¿'¨Á…·=¶ÁN|qÓ S >¥ß_æúP¼üáûð>—ô‚FXñ‚­JT$ÉPù?»z(š¹p®’ãüáÃÞè—¦ìŽl"z8T0•ª 8Ñ¥ÖÛcåW=©½y¾¡J¹‘,À“Ó‹°ªÁ¤ia…޹ɥào_­žëªô{¦itxJÚL<†µª›ODO£.úFÆÿö½÷[jéÀ2¨úA/Éç‡b€Ì‘1g?og •ãܾf‘ÑŒù+W]¥ÂJâ÷~ÓG%8õ±ÐíÕØVß!CêfAvWEÑ3ç”ó-ÎÏuÇ­¢Á‡å#Dmr7m.¬ˆËiѹ6p +®J$±Ë÷½ºPÔdSÃ.A5Sã²;¸6—RÆ×k•¯ÏMŠ·4;ý:®ñÆR¦9åèøæÉ,P°ƒ[YÐ*A[#o„Ñå3ž$Ù³Üöã( ¨ƒ$Ìš(HŽ]ÇÜ>ú,rˆÅæ"À +«ÏÆ¿šOZøÑæ$“+“yq ¬HÑi¦¬½Ãþ²P1¬E$®SOj‹g‚AQ'd Aî™Whø KYqQƒ*¯v§šfýeÎäÀ$ N$W‹ŸúÛÁe0tB­‡\è€MªUMµÌªÏdÀ‡ˆìÄÊÓÄZûf¦.wé‘;cC#„ûpAØWÉ#ðWȸŽï9¬°]¯ª#Ø2eü~SʽdB$š|“gú +FJ ÿˆŽÜ ÇÐZúápú˜û\Œ˜ÈÕá8{ájwn3§à®¦ËHF„±ÌVR`z¹vÄ8v‚.=´ì“è Ôë´ïÝÝO›Fâ `TvÅú]ïþ3uw“Öñà`/Ìå¹tˆ•öà¡>˜éýuŽÁ-:£ëÔ_÷þkAˆ^;ÏèSHŹŽpù4`õì:¬é›Á’Ø3ëGSÀº?Õ8=cQ+^Õ?;] Vs1*ÊTNƒÈeïóO¡_;¡ìhÌrsZ1†,¶ ” ÷ 5’»©/ZÕ"íbÍcL¿Ouð¶Ò7¶-|“V—ß,¡ {§Ó ¦Sb M1§­Ë •lA)ƃÛ •óœ©CìSF#¸¦-ÿV;Žr Òm +í’,ÿγ£~ßUÜ$±öÚÉ=ô‰Ü@™Ÿ@^-™’0–Fs2Bü` ¡NXÝNsF"÷®ïܘ¹õÆs ½QVsŸ·̤â©óZË¥Ì6€·QÆBYâA¼®ÉîÛ FƒÆ¦æ>¾Ú™š@Lˆ/ø +KÂÿ×ÏÐ÷…šò¶é…]aéü¼çT¡¬ow¹J‘všs‘˜tú7ØVBËŸ¨ìßд®ãÄ|}ÑåeýQ”tš=Ȱš?—ò<ùë$V'E¨@‘®˜oð²Kÿ2Ω;XÒ±ÍÛ¶mÛ¶“ÛvÞØ¶±cÛ¶mÛÉœs7ßÌ?è‹Z½zUU?‘[Ô¥Uë’à >jn\!ê|Jª¾OõŠ˜c“µ°SÉ÷ær<§»oŠ¿VþuiMFDL¥‘?9t1¢ªÉŸá àQ:à£\›ªbLZsÛ—“™íééË}Üœ±cÀšÙ¶šI! +¿ý £Àõè#!hýÝ–ÙH¦˜<¦ûüJöÇ]3ŒRô…s{›Ë»bFÊ[-:*çĸ+üSÃÒ统Oȶ¦`‡ÜüÈmæ]Ä4¦uÇO¾|Øä&ºÿQJ%Ñé á.ÚU·þðÙORRA%Î’­w;J ÏÄF:Ê€LCÁ¬FM´É÷µçH IjD_ØùŸKgr‡Ñ%åq3qøÄ7øßÉž=×—Â)cxè2µàv¦ "Ê ëDÃæmL9b(VózÑû!Íñµá^“ðëͯ}Ùœ‹ +'Fß:Ÿ×téãÌÓi ±‹?‚9dxï "ž;˜è'c£ƒêJ®¬>kNÜ*v*¯ŒÊÁdÄKìOõ¾X Í«¡‘é$ÑYãø‘ æ6´UÔ$ £,3bî9cÅ§Õ W'dŰÞ_ÕÍjh tÕÛᅥ¯XâZpjÍ‹ZÉÝRœ*sv¦ªÕ&äV z-)ÛöÉ÷%ÞËi\.m-âyܾ·øà>²*tw-·‹hZ$¼ÀYdzç<³M> \"ªÄ.D^Èl=šTjKÍÖI¦ïÚ9üý$C­%œY!\ÅZnÏ:hŽÞˆ1P„ÉÀ”óÁ8SðÖ–)I›Êû–E°Ãê‹ØÛ¦ËšuÔÈX%ÄbnTÊ¢á·ÚxR%uPÄjjà<ê,bÓ»·±#ÜUYzŸ1÷ùŠþ d ~øÚ ïù‰í u#Ë„û9¤Öñ•-Ò†u[dÈifÓfÊ9)ÀƒîUº×¤R ÂQÐIäÆ=®™ã%„oÄeÑÛà•ÚŽ¾2ª„~cƒ“ÇÜ·²¼M—Éc3¡¸=©ldaŒ$z¦h믲TŒH ½4˜{ó[5”Q´É=5»Ä,NÞÀ^Øœ(gÑÐ52Rùðv2lä‹-N<Ñ~m&kPI]Ôɧþê÷v·“ÿvàä~qBó²á.µiÒi\m÷VÎ6×eŠF$zoY#dQƒI̓øÖ¦Úªÿêµ×ý÷#Pø- ÑÞÈ MÙðýÌÒþà&®ñ +(3Íņ½U«pM^Se¼”%¢æ3ÎR”p>B´z|$.gYÝDèclÐlm¿>0á6ÚØÑ7UçG7 ˜cž0­Æ¬·Ü¬€pH½ £µ>ÔáKn7‰5¢üs¬ nëÉb®JNÃÊ»ÛÈѵ{çVÔ3¯ð¾ Ö~ƒ•z¿?º¿Ž Ñ“‡6ÿF†b0RV«ÖØÚ.à ³YTÀW0÷øSºîI‘}Ä}} =uì‹c3ÕÃCè Éö¡úüµ%!ÐS-¼@b‡‚S0¸x“š.¶;ü·@AF ¯Z8#›x²¿î3ñ”yp͈8²ý…‡ÂΦù½&Ôçñ•Aºã]ñØ„FÁ[ZRȲ$Æ^ÎHúü{_9íÿ!8‡E»[€ä#r.vëàÏc¸œ1FïDWÇ}´Äb]€kº€=ùZ±ç‚˜2Öœ=¾Gs9{ò(yk­ÄíQ´af…Ç 5ËIz¾fÚ÷VO#q1ð]BlǶ±v¾©Ë®—%”£¬7bhI#7•‹Køâî âã¨L3oÐ~¾ ”µi%€—òzåœ~l0«Ù;ERÔÝßí³gm:¬Žv_›énÉÕ5¹ìì¤iòúßF„Ž å+JäÒ2ªÈSNVnÝ„PHñ =õÿüóé7þuÕ ¾¬v”ÏLÏ¥«ºX¯/ûF7àÌøt$CüÀž Q躅yÍaK™ÝébìTKuT-ì4o®Tc¼'ðÉTd)+™+èBW4~!¥@Ù·üœ\ñEЯN~—`×åcŽÔ’wm2¾o€8´ Ý4®;ÂvÔ è .z‘b¶ýû>’ŠË¥Á„=øpÓ+Ùc®S²—³¯3 [tl¨åÁ +HF÷}ÏØ&>'N8©vyX䌛::½-xÍÔiîø—¿ Jþ ß¹ð“æ3”šñ]ݲH9¶/€pÅ!è+*­}öÇb·rgiÅ5xöð¨qÞ²"Î  +Rbã›wÊÌ^Úx¡ o(Úô¬ûéËE¬ÍM5yг3ÑlšY± +M ðˆgY¡ Sþ­]a›¹& «ƒâßw qFÈß—yx 4ÃÁ—WQ2WWnëZ6É®·ÂE5 JHÁ +ùÔ‘úËœŠu@^¼)–T–¢ÑÉ;BP˜¢K<Xâ5Ne&"J9B=b®S$g!™ÿÏÙLá ü2™¯BKë¥gòvã‚f3N{·3ÊÉx®7ñ蔓Üuëp,"ÛâZ1- ÔЖ \”ma·[oÞ,ý„íyÒáVì§\žÏ}²ó}ˆÆŸwµEaÁ~ˆMÊbô£\@†ì#¤IÐùnò=š[·G½.á_oRÚ^]ëÛƒòÕ_eß¿ Q€šÛyRpVóÅP]ƒh¬{ {ŒÑ'Re1EM!þ6$£)(Gõ¼ù;·¨è וëÉŒØtPgå°‚ªt¼ó&¶˜_Lg£¾¬ÀKÔK£æše½ÍÝ”´óWÓtªÜïWa,)jPsÂ8RQïFÔã?äâô¼³æÃÐkg뻨­‰¹*:»%(õ%èL®%Ò¹R„á¡ÌÈ|2 .yŸðÞª(ýi{ïØÁ,Õ¬ø¤?™cÃT[ÍÇ +ÿŠjšåçÖõ†=«/ôÚóëElì£LÆG›‡í»ÔÍÈ`n˜Ê…óg~³®‰½óRœï6¥Ëì6œSúÑù´{ '1ï4A"Q훯’…=Ü(êÂJóÒÿœSd×ÈhmÐøU9ŒÉGzÀÂÚÉíËD™ÉÆ—É…Æþò©q¶ã#6XjN”‰ ·AJ =^{²pE³ÙÍu‡¨=k-¦Z°-Ås$Ð œ4ÿ¦ˆú1c°·jƒ†…„¹‚ˆqy­BQ M­.âûvRŠóšOÎnU[äÂGw-ÞBÐVJÕt)Fù°ÎUÜ"nM€ÉT%rèCˆð·ôœÔÐÔý/Á,0B¦qa[£¯™ìÖýM¨»Y èLªèk¸M¶É‘¡"Á|úw— ù"ÖÂas5Ñ]^í¿;¸†Š‰/ˆ¸œ^ÁlIØ… éeÀÍk; U.<êÍ€»#ʯ yVUºÁ ›6“vûwuË€ ¯¤Çz“Ñpdh-Óf%+£NSÝ$õµÔDøÒr¨3r9b.ÔÛÜ(°yÐÚ×À·Ø¡fl€ ®gbÍ—ª~½X5= ´kö"ÙPåaÇšÑÌv-%ÖZÕÎüÂac<ô^0NòTy.‰#X~˜ÝW\iH«=݉xqT)ìy›V–óKlîäf -sMâFgÖ›ÂèkRže-jáÑ=£P ¬-§ìaµ:ËÈ.„¥¡>H^8¶\ŸîŒÞ¦e;TA]ÝfM< “í×ycAt}hW}¸MÔŠßÓÐ!ÒÅ™[ÉdSzž˜3зáKuLÉ? ×íaZsg):1…´ôÕúr|͘yÇq%éÈÚŽriØó^xHÉÖZŒ‡Ò·Nüösãj)³ì3a׃ài,›¶_±t»ÔÖ"ÁB +‘oÆ óoMƒØ'ëòãg•eE¿ûfG\æ}OÊùŸXjE¿Z[L,†áÏÈb'<šo›O+ú¨‡Ukíooìþ_ÚÛ;Zæ¶vÜF@ê6ÞÌ¡°‹Šþ±Oè\渌͕RÀñIš:£»iŒ»fZŒÁ‚)¾j_Ô¢Ú´4É-¶ÎíX~·ÛÅpuj÷íëзpwdCÆoY ›‘Ú²›åñK¼ûlÀ-¢ñ÷žÀ×"y2úÍ¥²z4É-·FI¶´¿6sýúž²Ì˜]¿ tËQÕj‰¶ï»NétF¥8-Û€06]ŨYcµä:(¾ÙÀêÆ·;èuŒ°ZŸé~›Üù,úp‘ŠúX áIÌ,­7¶®Íqz±ä8}>½ùåŸÐÎ68éaamvg?ûf_pÄV3¸lŸSH Ž(÷‰ïŠ&Y¿ä2èwê>cTx#ܘs”—ÿvGwk¶;–€æVUë©È,ñ.aJ’uÌû—üµµ„ˆG +L‹mÕhÆO1i›E¹1N/Šb7y+ª©̉%×õPñrŠ@*]K=ñ©Q»­jÏÌ«–º¼6ä&4KÝ´ˆ9¯ßGäü4½kà«ÇÅâ4®Ñ¸ÐÒá60Mg€ósª6((#I{Ú¨+šîT9Qƒb.½ûÎ+TØèÒáÃìÅË¥>c`ÊO{7Ä@‡ìxɲ\®&§y8$ii#ÎðUˆ!»·*ë?q¥G˜}–ZÌWÞÑÁÑY$P Ä"“¡§l¨nž`ºê!ØØ²KRg9"2 ÷ JC]jÈõÐÀóÌ$ð¶*9ê¢ò 3¨¿µ^ÍŠ¦—ŸeQÞ໲ìÉñÛÇ·:fƒ¼m€åkÀlŽ­öêÒy6*‹ÊgëZw¤bä¤@ +­™÷ P9HL¶_ëÙ#øK/‘PØâÌ¥PÓ2ùjeb©MÊü!«.pJ ë.#±¨r”¯È¡Ê"¢€ÕúEÁ¥gèü 6dd¨%ú,+µ÷ Ì{DO2žW³„«kØÁzÊHã |ä6A£vy õ +Q!l¸á?.pàæŸ¤Z ²D9’°D~æ½ð¹›Ÿ« z‰ŠDlùà8åœ'7 Í0ÏyxfTÂv©û˜ÌÅ*MÔÛìx0P°ðw¡bqn‹b_Ýsù`öNój¾z’¥ã,še _·ÈCY~ fÕ– Ùt#M¸¤eõ +;XUdë?µ«9¤¾Ñ î#€éù Ž- _‰1ÝQiDþd×ëÕ/›@Þ|¸ÍƒãÈ  d·Mõòe?ëJ}ÐPŸØŒ¿zõ°5®'iÕÄ{@Ht„GTHqØŒÁÞ#÷…ßj¯–sD”³‚÷ɽ; }áˆçÏøó^í8¨¨ Éy+rWo XÁ0htZ“(¡ .Ó ÇJL£! ®­tºu´rÑÇ9¢³FU–â´ñL™‘N0• Ý“Lݘ¤½ßžo®B—°æ>îFð7]ozü}Ú›)NuÍ{¢<Ÿ`™Oš½Ä8HL{b}„cç*Ï ³â‹Ù¾5'Ëgw*ž¶<’IZŠp@{¯mîb‘ Øß]mS ÎKNZàØõhª”ÈŠ6uwmú½gC4—8y…ŽzÏž_M…•ò8ÞaɱGŸ„i ù–gó‰TÕÌöü¸ €ÑÔ#Ðèœ*áCÚ¬ádÎfêÂW$+úÔ·×ⵟ¤Ñ$ "‘e“:æOu¹¤Nd…ìSÝ’‘ÎXüÌ˧àËu  ŒÚz(Pɘ‡H×yJšX6sÞ??3á÷8þrþ´õe]‘2zœ¸÷®½Ò Å7u¿Óùzp4²ðÍSéL¶É>2êá$^à2.4ÃìsT¼ÀbÔ³‹ý2è™4Ó¥Söj2Ó·6ËUApšÈ{ÃTh¿çWÍ9¿ÙÃ|± xÀèL ”Ìqq½à²é\§@®¸!t FB†åXL XÀA 'wmêgâyÒ@¤oS™æÛÎúøNFžŽTšóo8WKÍZ‡røÕ”Òß2RŒ¢qTY»aœJƒ—~iÑŽ¨ª¸tzêŸ×èFKç{”é;dÛ¾ÜÚIkõ|Ƽ_q ˆ*þ÷~â_Êâ]¬âÛñp~¢sN9 ü<ʺÔ(1:žÁü XB¿¼UH½9é9€oòR®ÎØB“–„Fl7_²mÑìk{ˆ‹Éõ… [2Á’ˆlÃ\{>·èšòÎ]-_ùN­X}~Àrò· ™Zö©më‚¥y¾¯ò„=38{Zpß´SâÌ6.;ËùÁc¢Vãfý05± +Å*&õé¯w$ž±¦ÏÍtÞšÈÚtö[íñ>¬|-l˜çw Plˆž@â‹:Ä­?>ìˆ?!Æ.Uã,ð„ÀÿÝgòv˜5&°fN’\/ö K_ͬQ*™V_£F,õPæ?ðlY|ÜõóÖD¦ºòm;¿ácö›×*·+¾è‚P7^ ‰ž +ä«yéAjFóàI¶gB 1I9æ¹ut~Š·†Ù`ûB“Ü4xkOªá[ó4••+coù6aš¹]Úyª$ˆêMQ¨Bl¡Â½”“ë„™àcnS…ú#µRA7Ò®ܽ¯Ä9]«»È˜ü Û¸±›œ»q1¯GRW ±^ö1í–+ÛŸcÔD¼ó¦XVYm)Ǭ)R yÖþÔöÃ@?Ú}‚a{;ìÞàÒ 2Q°yi#ÅSA!åñlN i°¼Ð åCúµ!òQ-,+dø·|¶·ãþ#oc×W¡t{”»Æ;Ÿ|CY|&†Î²"æ…Lõ%uRHã:ïuçjÞËÇJ{?gnûÆwaNÄ,ô»™÷ ¾4½‚Øä«j8ÓМ»BhÔ†’çÐn»H+Or…ÞK’U*„Ì¿qÍGˆKÊš•áà©ì©á€ i¤ùq<×,%pj˜±(x¨5K±„°e3ò‹É„"Á£"l´ åñ÷#°Í¸œäü—‚âõÎ@Ó÷Œæ Í?tà ßÁ½åÞx [†'þÁPéæ‹1Ä+nc¯ï)ZÜ?U:Í0’ß™¸õâ®Î"Æ„ñå6G4âÃ+ŒéäO$:öµGªM–]õû’L ï{h¼Rl)ÅË‹8‘5*TŠ3M²cŠF¨ ¡wá‘`ó¤†fS<½SrämW²ñ;Cé¢ÛQÌPl5<'›uâËÇk+»žv¡O…íFBT:ªZ8¢( 4æI7w[$€:$5ÙŽ*0Òìy Ђé,ÓIJý¶´s“_.-ˆ!Î+ç–¸\Våݨ,IâŸ$™¯øÌ)ZzoZ‰;x*y¯ü‘ãêL×1ò-6ØcñæüóâÑ(µi™÷ñK®T±ÆGZ2.ݵÁt×§´{u\”á5CJÅ.ß[5r‰‚ÑÜcÚ©uv 'ËPüßøQÚòbãšYú{iâ¦M¥ ùaaåš&¬‰ZʺØÝ”-Ö×øßê½þî&ÀÄΪ2’–É“AÂIdŽ:­Y>K<ºÚR“ªØûÈEt?ž]¾T)†×ý&•ÆcNÅ•®eºµŽÁ.›…{,/•:;P\Ž6g9œø;ÅŸP¹µÈ¤Ôò!T„F¯Æ•úRj©¶Dðɧ‚™ûM@¨¸›ûÛÎ_âótÝÈûé¾ßYãÄߊA+áƒcšíãKzŸµÿF­ü ŠmÉè­¿V2mGúŒñg”¨ÉÑäç®ÿô(z–o?uBš¡>@‡kïpÂDa,…{eàIäÁ©Át³þ9ð£<´È?Œ7>𚡹ÿ’P»Hg8äôˆ²Yr¤$b´£m5@Á‘ôA±:y–'b)"Ë­ýs¶RYn½Ød}MYožØ'eá{‚†ÒÐã€ä/˜fC…IüŸã +„nð.÷1d:Ä*w.†XÍsÃ¥‰<Ï/QË{É1øa NöyþŸ­Ža¨KêÅx uVNÖtß/hüŠ<3Ê A}7,VE­”vé};ÇâÿµÌÉaéràA6ßäh²w$ª,a²Ñ‘弑©ÅÃÈGfµ{ýÐìÄ©ÐåëÛÉÀxµóCnXóãÃD ðæV¡ÌI¾]ニ‹Øâteìè4?WŠ]÷bÜàs÷ï‡~ÄQ9YþäH¢(ûA0ŽæŠÞ[üÍ–§Áæ&|ÓˆJt%Bw¬½j±Rœ©8#.¨2b +Àõ/™_`E¡¹·ˆçeÞ„¤úFíþÃx6³oÜW7ÇX»˜’óEjÎü&4–íDIèXœ…ûo(öÙ<¾ì/_•ʼö.%.gÉ,Í¢ákòžáÔHúZ§‹6½âh/ØÎT¨ÿuɼ.ÕÂýE{|[Ôàþ;x³Å®è5ºÇÑú6»m¹‰ƒ­Ëûp›)«\ýæ°¤ QûtÓ/n¸u“‹X-ÅØpFgi2‹Ñ2£çª}ÒÂ!Ôz s+6À tÂa~ãxQw6âløƒ‰zGš Â5Ð=^J*ømI³j©S5ý“%”ÒKœ,õòæêw§ë1—Øýˆ 3¬ƒÖ¶WtÝ*ñ-€Ð?'ën—ôØ2ÉÈä[ nIvé>æžáH[άŸ¯ýݺK°yÞȶµj¨hv¸Jm%\«NÊd¿^-úª¦;Ç{1 +—Õq~¹+ >ÇÜ«Xr»Ûâ&óÆ‘êôôùLfÒ*y¹8‘I?ØÅŸ}æ{FqãÑZoI`3;üœnK^ƒÀ‘Í5š'ó±a€Ø$í=îýšq•:¾î©oó7@2Í2îÞ^p•ÇÀ"MDÏkŠF}Bù è¥åYèË´^{t=J˜”sK„`«céѬ œ¥9™™»ñê½kðæ»-´)[VtÆ*êUàÃåîàß©˜ µWaÁª8ÿJvMuŒõëMr`„_Ψl*a4¥Ì”ÜóNã1ìIëÁÙšÅkEÄ +G° ØÑo× +êž‚ ¶õ`÷å ^öìPäTK*ÇC¹ 3ƒÿiN×ÚuÅu?îÌ~óCs ]ú}ÌÍÎövÕ|‰)#`ÙÄ;¤ÃbÀi€adªÈî'ï:[`'µ’¸q˜oBTͼ¸žQIZ®¤*ju+ ‡{F‡@w—^(aãZP«lûSl˜ÀaÀ#qŤöyMÙœ*µÒC\‹ýjj£Ë£ÀÌO¡ÊÔ¢4ªþÎ JºG¤v€‡ŒÀ£yÛø¼fÄÓC$zûáT†Ð¸Zwþz8þ²Ö•â¢cŸé`£på#’ßie+£[˜™+lGĈ²ýJáw8?¨KP»i– {t«íž}·ŽX6ë/êĵGúz quÌM¥žtì$б ³[šï\ð†@X{4ËJo Ì÷-¼`X14N”D£¥(Zü‹ìÛ€þp¥B±Gl¬úYžþ²æŽšç1B £ùÖY=–—FµüÅþCE8Ösõ£‡„°÷+øöÙýw·`<4ÁW†Y=w€??†h… ¢Ñ§n_4 +ØN’é7{·ÈÝØþ4m_çÔ4©6=™¬TÈCª‰Aþi+ý÷ +ôòL +1VÕ4RgÅû×ÎP˜~.”s“ÏYS†lå{[Ž=÷í˜ +\º9 w¾TY½ñÿ´„£$ç>Û8£jnÕÞ‰Á¾ÉP*´è·µ´òN³.€= únº1'Ó@`œnfÉgdÜÍ~@)ŠW³€™ K +¡gæ))èÍrìÕÀCXc(=Oª,=à ¤ýJ›‚ØòtôrÎ "Ï­tÿÞ–ÈZ‘.§Ú^:WlÂJ„wû[ƒ À- +džãoóžej‰¤ï–Ð_#Š'0zuMF@•[ñqW wg Qiîåʶ»Øx’BتÙqX$hh¢Óó ŽÑú×ø7p’3 +ýw+%ÿJxÖæ¡åg ’n¢W¹¥ûo“7?[R¨qŸr(² â±™3yQ…´Û.r¿ó埞ùq&£ùoâ,¡£ZfÒð•ÒçLàg%œc¸0ÅÀX½£D_ ;ýtÔ!jÍ‘õG˜iŠ;õú,Žœ“N2˜¼‹š ™6È4eGnx1”7ò­ÇÅ›ìQ7ÓK Q*ù$X8dj#Ø[/â•SD½—R­Ç€r¿[¿ù¨a3‹îó +9ÝmUÁpVÍódúªþÚ.¨¾Å¿GX9ÿä§ÛØU¶Ä_éíж¡¸«r¼mÖe`zKÌsü†ØK|n>‚˜¼¶Œ¨‹qŸ8ÎgŽBRJbße}Gn¢î/̱Ã6·Y›ÛCs|ËÊ9FÙCªö7RTÈ\«B¶`™ÒF»!_kµA$í ƒ Q]ˆjœ't$ò€ïø¿–Ä)¹)õ´à§1øÂåX¡ùÆxײ 6¨xDÓ‹ú1^:KpW¶•Y—su>ýëäËI™¬‘äÅWÊĬ3¼ÌT¾›“Û¿>Íáo+Бl|$ŽV7ÊÝ®0j¤uõ,1‚?wŸ°ˆfÉ÷¤EøÈpÎCa5Ñq@Ñƒ[áÚ¸dÊÞº5}ìÁ~YÏÀ`òí+çnš’.šVrOL|ÖÐ%HnfÕâLÿŒ! +ñº{±…U$|6¬^€•ÄjSìÞÅKÂŽ3€<µDŸ>®å÷œ—t“*AÔT•Õ4!ç:cPh„Ó(‰Øä—ê´"&{ƵƒÂfz§WŸÖjïIjÒìÖζåÿþÒfdNIØu;èKÍP„ÐêÒDŒ;„,ÌWºT³<›¬Õ6þ<2µ ŠÒhÎ@ÃÝc:ÿ/RPñiÅUÇáZ'Íá¹QÜ4V¿ä]ÏóIDXiÛlňJ¨¸ñÄ#£·´gè{ ’ÆÔ øî€vú£³#~ºÈçö–Û‚oK”øÇìÅßýcÿØŒ +ïLRí*Mò+¨ŸMç^Iõí³K3õÍë ŸÁŽ7…£'zóç;êšYˆ€¼¾I5Í·ù6V÷Ž+íz†j®âîy–DpÒ$”|Ú¨îzoH²[ãWÔ¡ñwÎôƒ yï%šØ—,.Ú¹UÕüæU(áŸ:ÀMèì&…­j[ÿm<ÓýÕž¦ r!À¦g˨‰~>ÇÁW°AûFÀ{ aÝÔ–¼u`¢2DÙ +°õó@óVÀ)DÎ#,éˆmk‘û˪&¾ÅöÈ^éóv#±n"‘Äö/ÿ;I•|/Ð6u­™d½õȹ¬#òN6£Ä„…ûWC÷}…¶éƔƵ.§påÊ'çÀLL +zVUŒ-`=è_³€?R¢±OþôjrCí¢rÏÿå(²÷ñ_P^K•„“¦%ÚJòͦ(êøìïʘ!îVÏÁJ%J¥ófTs«uü åø÷#¶ç1w/â†RgÈ-²ãÛÙ[zÑó™â¼á°*>"½^k}ÅáóÁ 4øøº¬ÌÖ b¯j¦Eí-O]sÁÍÈ=='¦Ú€¯å RÚ(u,´`±~ÿÒË„~)V¼·p,µ Ù¦æfV“Uƒ5ç‚™UY„\µö™·9Ñ©WïC ˜ItšÁÖm€ +Þ0ÙrVµ@¶.{ +©*;è¤æëÐÚêÁê9·A¶OFé²KßG÷ÈØ‰2ÅÀxTE^è$ãò £:à¨Á{’;ÓlÔlQSèlÐ%¹§1uàBeÿ®ÒŒ²¡W¸´MQ–ðv§éH(ªö!ú„e{í4 º]ºŸ%HplO‡d{˪‹”ü¾èå^ G½e¤:<ýoßüflTÑæLôÕùÎò´S*ÔLT·ä(­òßVŸW,Þ?¹pFAj Ñ9ÄM•Põf‡¢ +#:&œàF`úý°šiAÂ{¯ÊyÀ¾ëÞÄ ‚w¦Ê~!b"Ns×ÐÙÝ·d9J ÄX6<¼ñ7ú-Ý^l/MC&Çäm›ÿØÏ~ÏláHWÈ™g"ÕWÔ´›,£º÷cãÂ{jùíð¥ë}ÖrgMeeÊÍqÕZ¾d:¯n½ºÄ›9ÁÐ#ŸáÆJî +‰ô`žÕnè¬i1ÊÂmÃDLbÁøÈø 9öd ­—ªAô)EÑâÉd};ÃXKþG­ìŒ#¹¢¦LóQ¸Ââðª¥F$M³ :®/6N§6S¤P)À)Äv+Î2 ‡á3~µ–ˆ +…{®í?çŵ•²¨"N×Eç¢ d¦+;Ž˜rH¿ø†ðÊð~·í9~–ØYŒ4Yvì¶¼=­l‡]"+Û]g¢¢þsh˜œóÒ• q;û·ÛÚ‡¸>O²+Zòî=*™!i‘{Ü> Q:"‚P…*/`*dêyLQsB¨{Z/íI!ôâéÞ9q–yªÂL-LÛ:ÊÆ ú\Z°[Ì%w–Ò¹ìO¹ÇOÆø$â»ÀµëK(šúPKYF €^ó&ë•ñwâ¼É×Cðó`ž0Ðî~)ÿrôY…£fQÁòV„Χo»h0(jç´dÒg¼ŸmæîþøÇgÔÑ¿“5÷h$MQIÚ•.Y¹;Ä(î· +}ìísž)ÿwR^:4öõe¨è·í¾ÿ"vëÉ­Œb©°Í.‡ú…kgp ó ŽVëgEšƒÔèuõÀ¤,KSëOèÜo$cAG&xe‚BX§óÂÁê{®OÇéæx±#èüÄÖnàQímpyÇ)ÌùE`iŽž9#Û@;¸,`á¦ej4Aͨ´rÔ8\^+%ù CNcìw‰ Úû·g„y¸ŒüÃaX•GvëÁ¬¾llQdsd"\pç ã ìvÆ(Ô-œž4ã\ZÙÅ–«á/7¯Ù–—\ÿ +¿¦ÑÖˆl¼‚Ä:í„¥ÜôžÐ÷ƒ®ô&Âþ’ÂUO´'$ÙCpl´òîæ·»{_C%Üî$ßÇùè›^ä…S„[uÚÓóŽéȾâw±ïYžr8RoùRºÜ‚¥V°EïhÓ?ï"ž¬f¡[‰vSäYvÐ%ðÜáäšÎLC¯7¦¶¨¥P6¾Æ¶4E`ã7—_Þ÷†Œ­÷ü3Uȃ¶¹7V満9Ë„Û'¾IìD³õS=…rà‹T·’££ +ê‰I7&ƒª¯˜å2¸ZûmLR¼òÏ*[Uß&¨?iOßìß´ÿ‘A7Y2³ºtuÁZi‰‚Y±”$ލç(÷–ûG͵Ý)Ž?ŽÔùÔ¸ðßS^¡òÚÑf/tºÁAn¦%O´(ÔË I±_Ë-BÊÐ_9gáʧB¶3C¯yè?`Ìú›™þagŒmäúLRX~oø1îªÙ¶žª£ÝÒ÷Eïàõoëƒ:ð¨ŽzKi)á:4ž–fgÿÄÿ £«ßC¾Š?VÍ©s#ÿ¾B7Æ$D’eØ<À„`•Y(Ÿ—%6UÀavÛÑ!JwŸµ!K›g5j “ çUIþd£qV¿õZ?[ÿÕ)qư~΀% $®¾z’'5“ÑGÖ >lN§Ùw]‰\Î¥N4óŠüétA~Wo˜•Š@ŽèŒÛa:$jSÐøÉÿ¹ –Ì?UŸ®‹FZÄÀ澎­mÚó°Aï‰àUÊ2*×ùT)ܸ2ZÍéY;Ö®©5s”žU~^§…ðª;ªÔþ¨-ÛÖÚ9”cö·RsÃɹ³ÕŒ=õ5RôKeÏr¸œ­ ÈZÕý¼¥ßšå~¬éW‚Þ~Ÿ)ä¦p'÷’ÉØ<[ѶVæl·Y<c¦˜õqêãxzÙr™:_38;,P[Ÿ°Þ4qkrË»Œ#Sëÿñ¸ÅzÙªK)† 1}#á[Š/Îì˜sR”<èT«—°…1s“+ºa)a"<½èŠ|Æ©x}­~ñëÀíÎ|Y~C3W3qçxEi5³wQ¸>v(üCëÇËbkt`Ù%Û#ÇÍÕöÙ·‹©˜Ëêr[ÅÄîK‘NŽºÞ=«ƒo›8tZ£©Á‚Ý_‡:FÙ¯ÜG +]‰ë„‚•IòÉ#ævŒ9Å­‰Ý[.ø/dX +Ï¢nC%–¥‹\„Ì\Á·¬-ó=ÏsŽÚš°Võ+š°çÞÂ,+‡Y¸Êè±qTøÛŒßHå—–¥Ý&Xô~j'¤ØºqÊæÑÖ†g¬Åü=ðæ(4=Œ¨XËZˇ3^ +B_xä]šƒ=ÁÊŸîL{ã@s'KÉÅ]èAѶ6@ÂóÚÉxù· };.‚Û5B3§á|¬z3/n)ψ‹’rÑl/2Õ3¡ßÖ'ë¬Ôš°jR×—ñ|£qÌ8Ýëìªzæ¡3êÀb8¨fÇ14\eù/bê`Yƒ §ŒLñ¨Â(—-\¤ŠúˆµdÙÿÅTÄuµTµLT‹˜øe¾%éu‘·š¸²YëmôMš1uÖÜp|€ºx½¡0*À†©ìU +øn[ ¸ëWª f6»ªPñ«9éË䀌ÃPâ¤ÆUOðVå \7#OdP-eÕšÝÖ®’Ô¬‡#ÿõPÌ>þbOLpÝEvÍ9ÀÙ'â…3»YjåË÷ïÖp©ü$KæÖ•¨Eã4ž`ÜgÍ9êþ ¼{.-.ÚÈŽäí Ðð®$VmúÐèž=ˆBþÊ +;RŽHÀ5g°åŽšb‹ÔªûfHq¤ ›Äòì°™ñc ˜C@×$S‘t¼WÃxïv"fÍpW†H­%SõÂRÅ!01ÓK¹OqÓµg©¦ÁxJÊþtɱR1!ŽÑ˜ _WÊ׎ ¥ËlðÒ‰g4íkÐ8?ﺑÊäýúK»lÍÍjþ΂‘¾„¾*& <†ô‹­PKá»Ëwx=Éܘ¥3ABr’èÕîeë.c€ÃY°;Ì”›e*½÷ü¡œa,8<÷TÁœO§F_þNùN¨êjT4ݶÑÑ#ì>öÙíÀÚÿl­Zû¸Éö;\àˆQáxjÿ¾¸\£ãñމ`1­ñº™ºÚ15òŽyWŽèñOFƺ?„ƒ9×d?ÕùŒP»¡›;1VŸ>îî2 !ÿòäôDRI:K!QŒÊ‰x p0Ç${³zìg—o @ ’àð'mïé]tìõ~ä;È“ùŸ¡sw˜¢óÚM…täôÇ7’p£äò»ÒF¤¸–×l[]—ø&úÊ|@èá¥]Ñ™Sú' IıY +»°b}†%-Ô½}ì72 Ýø툌?õ%§mª&1Ì0 ½aþü‘·Õ"Qõ—ÒF«Næ aÒ¹À¡èç=fÓ ¢;×Çi˜L4‚ÅLÆÈ|«"c/–¸ƒ¯:<£÷™+ÁYáì‚#ã·²-Ck·Ž%&J<“–´9q§ÚS‡#S¡UFm:ë1þï|ì9ý2ÈzG€Rr®5®8ÞFqy èœÁ)ØÆµ/‘6H=8Åäàë».àÉé¡Òß1ŽÍôò6up³Ý},[΃\“—Cw[éCIx¯RXO¯%œv-ê$8¥7s ª/PJe©êu'CW¨=H"}lß;mò:Ða‹»<ØõXx» +­-L63€³ð "Bw—Ë|ªx«ˆæøñàT<êU›ÇÀ^Øê·ÐÿFدÉ÷š³ènyW†ú:Ñœø! [2©fzóc|ð &š Q­¸¬íñpS¸Àž¾+ÌÌYÅV½È潜WìîDoÁRZRN×λû;S„F… àʬbŒ7¸,ÝwˆËávïÔ;%9×ÖûcÙæ±„]q¥žÙàå­FÎÅ +¾7”`-ZÓÂ,_ê>ÆKþ²]s-‹N Ù±9Ok A¤Å ¾Æ;“Wy•²K|¨Q<íÒCà´ Ãeè¤ vÇq_Ð:ør]º|Dªö±3C §Õ)¨ÀØ}*°_åÄ'SmFVØ×| ‘fÍßý˜ fj¬/5 {YùÉî”E{…_T‘‰€±$\SbsMr¿ÑGäfÝ,ê\“ö‘ CÓ!“ìGì÷ÓØµQ?Z1kaxþcû¯¬v±/ܲ/äë—ë÷ ?jeÿXþµËòZ”¯a†ß É&ò£[ÅéïY¶Í˜ä´pü¸„lŒÀ§æMÆ";K87¿ÈõHDœvè³$mdkst´„Æónq.<н}žì´á>DáåÉÜ:Qþâ¶öÓÄâ¯øÙ`ÄÖx’ÛÝ9y!§º UØÃ“Y£y¤Y±Ó¿S;!õ#Kk»Öãp#F”Ú®¶± +Ço­©ÃžðŒÞy+“áA³ˆÜ0˜k M¡;ï2èúÁÙN±Þ¶Ë"idÀÝðŒš"ç]ÀŠg1ˆèDL‹ÆÊxB¯Þyåê)-*OØÕ*rà¯:¸Sm9‰äȈàÚ(‚oôuªKØ–'Oz!C€ÝŸñu&}¥5¡qá±B·WNQØp§‡ìH(ÃŒL)5šë•U†'b)£=YKµÐ'ª‡CÛ” h¶{¶–u2ùN8ƒàEnóX¥eTÝêÏá¦iõ4tò¡R’²*K‰æì»Å¦Ê¦$MË_“VLêQ/Lþk^£ŒEŸ` Ûù«…ý˜>= ~}Î×BU܈Léæên;ð$…?Ó•º ½•zž-1&<ËY +6-LG÷öz¦Â®æÜ¾ÌÅ—JB ]ùŠÀÿˆ`tÅ +Þ¦æÍ"ýâî —í¤ª®ÈpÓo>½Õ8ÀǦmÊŽ+c/wÓ‡µïË$Âkôœ3Á#-ta*Û7‡mLgÇaC{W}^êõl©ZMÌ  MÈ Ìëɬ‘ë ´©Jœ4ì$“«á~Êš…,òSH‘ã‘Îzâÿ“}Ü(C*™îíjÜ®0®ÉM¹U=\ð\{Yÿxßg§´¦ËâúSu@ íϨZ•;@Óò\û ¥]×}³Ž6þŒй¸ p<£1òîWÇÏŸNèxõû‘ì·3°úÃÍüMú·& SÉõ%Lñfíñ'xïpž.Ÿ/è”FÀ¦g”»“ŽÅ¾H¡£mOPÂÈü˜C…GŸÜ«ávr³›‹Ývì‹Õ +æ’*ò_&á>\šó¸öEÀÓ‘!ð´à2!«+¶{¼®c©Îz÷¾h/‹g0 èMðÆ„†ðg)Ñ}Ñw^±² +ªŽŒ™§’V8Q²; »Àh˜+xA=¬nZ­¬¹½ÎQq¼ijÿnqÝñÆÓüyèå~Å㜙á%°Š >i¼º·|ý]mØ!Á´GšÖ{S|«²ÉrAtˆ¢L‘hα´íUÞð(UX„eçÂð%çK˜4ÿK—…1²žêA.¨^RàØR"â%‰m?…¤Ø_xò~ÍÁ¾_ñ‚Úñ³ö9Ûw™4p=×°Ïv€0À°³VUÚØÞ€`ØkU%U4k´¯X#ž>Š.Âæõ*g+ú¾zÖt8Äe»Õ[*“FãÁÛ¬6(m(¹&¨M toè’™ÿçÉÿ‰8ø¸@Ù§ÞŒíír.%“G´eXÒPPHå ÒiÉ“‰ güœå£ü[æ ŠêëE'ÌÐkFgJjR])¹¸YVúåZñü1Ë™»ÓÆbê)š‡N4ªHÂ(¯ÐÀy{&}x_J¾Ç,’|5¥ÎDû€¸|û•%î@ˆR#m«Ž ƒ OÚÍa2ðØ=ïþqPý9+‘¤œÌxùÔš¡Ø|%¹¢èoÖDŸŒ¿´e†”Iv4êFjý `Ej æÇ Сºwì6IE˜\qs†‚ Þ «dК +•v +OmJyëe5ÿ¥$™”Ã4+Þ™_à# æÙ‰‚1×HµA¢˜÷k˜l,T‘Èc—8Vy… +íuøB–_Žê¿iÇ÷:¯šEf"‡ÁÁ¹|M9Gï>3c¯ñ¸Í–a¶c'ëó?öè8øº\Û k93þRäUµ_Ÿ¸o KhédÖBÿ[ØÁTª”x·ÆO¤/Âþ4K?Óé_"òb¬õWtgÊÁ¦WÌ)ƒXR­fO•g£Ú¦ótèÌ~8t˜8ßaŽ·Ñû_húo=bâ—_V©¾ˆt¨n/MN"4ÊòEžcP™Gb—ᥤe˜+ÒÎvÒ_Ű£Z!š~°{Z ›tA„{ã7)ƒÜÜÂÚž~ !³V-E<óˆžx1ÞdŽ›ê÷ŠHŽ|j3ùŸžQ³ß]h¡z¶äŠ]†•Ò·^ÝúJTÝÁ´œ•a¼@Eô+äK‹¼„!(¶Ê9—ȾÓú;ž(‚—¶ŠF]^T]j!È{É.E‘>U­&Ešrsü+Xí£~Ë{l2ª•ÑÞîs’ƒQS^+ÿºb‰‡ËdÚštýz4v÷ùG¡ºŽª®“R â® 2¶ 9`À¥™|Ö*³ K1B漞A™?z´¬)Ü ð¿À?Árä¼GG\‡È¼aɉ†¤Ëòrõ£W“F䟥Y“€dL^c4â劥1À§áE_ ¯cÓ± GLÓz]Ï-î{Xφ û¥eMT +ðèhÇ™«³%_–Í¡<„t›c¼Mäêá–my«Vüµz=õWùïðg®” µRÕ|œ qÇãi‡È"hF à'Ft‹¬8{}ª¨¿6ÿ Ôñ0T˜áºŸ¶§ž£ßÖÄA*òKuä|#7’|ÒÓK0 íg•¨b»¥aA‰š¨áØ7µ/î‚”üeÖÆ$ðŠÐh­.¡[JÍ?»ÓI?ã®ÚÎ1ÌÍìTuÓ•4Uö—oFüoãKÐ˹zûøØû…'Ím)5©M\{àŽ›q$.·J‚œ ;€85%}ƒN‘úëŠqÉÚ»ÃåÈ1÷b-Pi‹«¾Lq3`¯}=GùŠbÿ­Ì£zÛn¡¢=‡õ(V}ñX©yõ>^¥Ã5lü½§J M é —€ñó-ayG> 3¹d…:§Ö•w«Q +s|uѪ2Õ¾ú`v3ózékÊÞ£›T9¼À7.dzBýH7•ÃO-%¨Ï½8¥ÙÝî¡ßØ7C¯f$œeUÔ»iòÐÌQ¥ò›ÔF +ü£¥ø%ñµx⬿ñÚšúV'L;к»Áµt¬*Ô;w ^€ßòvøÑâ,†I8ò“#4ýo€¿SŒQµôòmfY® +œèA“±ýœ¢U+þgnõ}Ò‘Ú€û¿Ëøßü1t+ôz„žÌî¶Õ)7„lݳ¤^’Í‘Fm"¬9-ÂÕÊpÛ•4¡i*®‘-cÕ„„´Ý¿1ߢÉ%Ò6‘OQEåšÌò¹Ï ¹6±¸ˆ¦ÝérÕ£UÄó5QÂo½Ú‰O!ÀJEîTK0ï!F]”ðùÙ •ÂEîì´¯úa KhJ-|bÓ’câ6ôú¾iýA +M5&‹Ê +Ï +Ûí/‰°'ABAÝÑŒ=p² ì5óŸšéPi×ÝÖ1 æ0'‰x /©‰èw¸Xq&/l*‹„L/¾ü,‰!Ï%vg/µù +Ï‘<ï¨=²íí$k ‰K‰÷/¡¶Qc©÷D¿ ˆŠ\ùR•Ìi§¾à˜·ªga3XÅ¿G¦àDTuWc…GR -¢On©c¹t~ßÂêíé»Éš¢/ðøpã¡“¯€qÕ´’¶œÅùͺØzAೊ,xüzHÇÇ&!,èÒÏ )Õ~x{i!-Ñ6£÷”±Nä«iyZ‰0Cæ>sº3ákÜgœYç­ìVé©.qû?d6,Í”³d + á"øºí,ÕЈȹô©¼¹‘° +¿oÅõIô_Ûiqÿ…U|Ëë•»W#tñbpGò{®žl`][®ïi½ú‘ÜÇä2»ÄÃu„-¯•gÝQø 0[“Ýéì¯ðÔ[ën¾oHš^ª3˜=Ð –n‡¥ÍX"$õÿ«ê–Åkž^ z‘%ÁÄ$pZ•0Äé+à&“A+CwšŽ½RRÇÆ~þ¥L(SMÑ,öâ± Õž­EGÐzŒ;p‹Þnn]xõ¼ç¸KÈpæï«æOÍšI)zéA¬§—ýÀ€)bÒ"€lïØe-p ‰3d§¡Öû]SÃäÐÚ/8@àgu)ûÓ":O9}¥#ÄõaXïð²÷ÐöH9½§Å§ãoJJP«ðâ<Ô]£õD±».3 +7g=]BSý•'Û6S) 3ÄÈéTgr}n†É9óGû~Ôeþt“ÞÿúSa/êîòÔ¾_F‚¦xƒÄ£wå&ЖUŽoò:•Wé¯}6þé/žþׯP +<‚Ò¼ô> ’¬ÇoÝ–H”OXÅ(+Jh2-×Èšæ|,—Nr~©ûâ˜YŒ,Š@Ï!| }’[KLé9:ãÑ&/Æ!ÇvI3/×Að™mî¶ÙiÌ”W(ð0ùÕÞÔîÉ­7bcÈ õ$M|Eáù÷$˜à‹ð ÅgU¹óx¢ÏØR’¯5_ù*–TÓ¸íq1`¶[´~lPÚ‘MxR\«ý$ÚgŸñƒ+nÞ[¶{š`Èï„þ?уÅfvJÒŽ¨ùÜGKž/'~¯‹nl@µyiAïÒ×y|íJ- ›:úÔœ±fÝb„û‚G–¢É+„«ï£Îp"v)£Î ŠêpµÑkv×a<–ŠéBÑ b*-ZÐXwÞë:Ð2µlÂCá"ÆP¥pÇà>=Åb>RD&š Uˆ³/߇KÃ1Ú $,­ì,¼FN³Þ¤eûsIKÙzèÙT ûÿ,'4f,3?Êú[íë³`é¯îD5NQTÄ¿4ñI¹ÒŠT‰?óŽ“"¥û“xî·9ޥ͛dH¤¶óã³+:ê¾,‚1~gmkšW WóÃ!­ÔF_U£Ã[óUôëÎZBIžÉM%ðx›}Cé%ØŸ`˜GFït2Fnaa]‘¢ÀUÔÜÓ?¿°Fà‘ŽìÈV¨2^àå:|NBVƒ/Ø·¯‹N¾MÌPiÌÖd¹üÐ4JVýà$8 q‚ hÓVܼ§• +”0EÕR¶¼ íaõ©‡q¬‹«­¼ï6VÿlÒý¥»ÎFz^jŠCGH‰9è0iØ$kúІºî¥áÒô"‡ô‚ÚÄrÇ…ï|†Èõ5Y*PƒÊÄh½ø©ÑŠE{%{º4}s¦p{&óóŠ—&`ØU ’¥ör·½Â' úÒ i\dòxŸÚóG§g—POÔŠüÿÅÊK-K1c‚×0Ïd‘5l á£Cû6ÕëÝ«T§s?n-”o¸-„†aƒÁ ù%©}$?“Õ:ÌÏ—b^’qžÊ#‰cf~×> bVP]S­"ÖE†§è¤ŽxWRz›gá—`Ç’þ'œa¼S£ïÀô§è•D,áGbB5Ëýá'÷̇r1 n?)->$9xHèèÞaGCݤi¦Ùn­vÄV×=úJ†µLP»B‚¢ÿƤ^‰˜cÉ;/ÜFçš±š­È)t1GÜn‰¼Jƒ"Ê\:í¬®6ËârÏwkH¡k)*(qßÜ:e + •"ëxÇŒ( â¦ä›’´›ÉûÇ4£\ÌbýJÅò›uL®î ›©B}Ô…šÀ^=bq€"+¤HH´qäÖtîŸvn©0Â?=J¥ç…¨)ÉNoA»ÛâˆÞcú¯[,yaÉáŸÀ|'±´;p Ì¥7=IôÃ')Ù`'?ƒ@ LB׊>­ay TÍŒ3éÓm‹Ze$õΖ Í¨Ml±ð†áÙÐß3¬©¨¢È̵ã"®„þî}ÿß»‚4Dn–¢wޝ}¦ùËZù‚©:Û1jÿÕÑí~Ëú<…†ÐëÛä{ÕÍŒŽcá' $×£Bû`*ÍRßÊÏZîaP º¬´0×§Tå¯[üËõ[¬øÖÛ,Y3ü·£6ìŽɓxo—ƒu‘TÈX(q“ª. ñ’OÚ‘ø0íÁÁÒUm#Ê· KÍQŒøWïWƵ´Æ­×›çårm»> '£Uñf¬Ô#T… Zæí¥–Ÿý4v´ýIÅŒkÙ-Ѝ”Ý +^GÞ'†§‘œßD‰°ä‘œÿønª—šv•ù&OçG Òî˜ ‹fa A…‡‡‘Cu„h¤íý._Ç—cmz¼ÃƧÁAäáÎ÷8uòxˆ<éÂÃMV¸:JÓ9¶@—¨zMÈL¬Î³±¢Ïü±i‚bçPW~;9w+d«²ößoýCåT:ôÀur}B+“w¾m&Xºø3ñx¿Ø•Ç­xí^ñS®ò!颜æi’Ç}Ÿ:ÛJ]èVE ×Àþ>Ìbvä ¶ %ý(NFì*P*Ê„Þ?XEžL·FüÐ3ôíÇnâaœ@dŒ 0 9q¤÷‡ü +ôS+„A/Á¸Èá{]¡$ö‚tër¦ž¿N¾¡ È£ÞWc&äip“R.)ý9¸€'Rù7ÝKvb×íF£ œ&™s Ô•ÑÉ46Fcõ±¬ÇÛMm€'â–Lið¤èwÒþŒ3 `t”_@ÞoIsNqzO!|œ{v*Fª‡²˜¬¿åæ{~ÚBôŠI=o¨`”gú¨Þx‡gUˆ™å 肼¨S¯ÛϡԦÁ_Cëþpþ‡ËoaÅúäxô[·‡(j–q²”ÐÄüùŸÙRþ„%˜è¬Ñ5ÞðeÊÖd½æIJ¨ž_œ$ØÛ Y’´À€FpO_þXç¿Ut/Õ?U6 ç²3õ “u™kÓ§°û§4N›¿±<#f&ñ_IÒXøêB²¥Tq:ˆ·Y´éã4gŸLk”x¹XºiÓ„•c§ÙB;AáœYªÚ“^{<|{¦! ë ƒ” ÎßÙ–ÖM!fU½âoÛ/ØxÊê ^û?†—xúJÐ8;³L®¢›bФ(•]EXþÚÏf"¡Žl j> ýûÛgìxEB“Õ¯yÄt¬"j7^æ©j~Î^‡ÿ¶k)ü: ÚŒã?¸nŸ™)°øËâ4¶[…‹íK¤|påðQìD›íŒ²ôÃ6ycŽ"]å pÈZí TÙA.v‘¶ŒêžlG»{=‰íwÄt¬ÇÝåU_î‹É9뉺é:XíÉÜþž´WÒ8ÿËâÌ4î³=eê‰nG´kA̵µæ+ú NkPðæÒîðÉÙ¶$3ÍMã;€Cäp›ù CÁàóÄf‹6kGeCœ~ÍËW’©7l4=«³xì°sÚx†~QÛ’#ÞT·ŸL·O¦>OT/=ø|)ëb+KÌÏÛFÑL{~_«p¦¯}è)ÃñÏE*îcìÿ&.Q<)á…ôÈ£Æ<ÈÙ{ã7t†¼skA~BÁ]7Îe&«U¢Wü¿øEÎåÍÁ„R“`³Ù|²>“;×Î.påÒ–º)eú·„›_g“±¿^x©•\ª°ñb?šÎÓN*9«‡WXðÏ jX?¿í(¨RÆ3…Ó:éÕÕÕÇà%e… ^*ÞàÊDÁLçZL­\’ÎëkÔV}Ó¶‡ &S·êeÞœÛu*3·5 €~HŠe£¿òí4Ááÿ?q ä3³¶'!eNÿPT!Î1(âºX´¦ò/„¢—ãkc !Ú-Û:2ðÖwÁ7Çø¥ø~WKĪÓ}"ùÙåÕB‚6¹ð̉#¼õ]xΖìžÙMÂs÷ÚµDÖÿ)ÕcŸ§@Þò{“ù³ü­Z‘o|4ì¨ö*rIñš¢£N(Të¼^ É\û6@uÂò,¿V¼x=¥}©Tì­NkVõK So +/æ·‰¢=“{Ë`ö/B‘KqSGÄ×£Ù$£h)’}¤®O˜oCA”Џ2s¡¹øtõ™6V‚‰Š¯¯³Ý¤e•µú¹²xëã1f!Qé•\7„a¿kñ#dóåVÎñ@±›S»ó|µìF¸á¡îPbÀÈó¨« Å†bß+g`ùý©ÈF±×¾ü½F©œ¬æZ­»-¦d4‚ùÙPPûŒÞ³f&A­Å¹Œ¬ÞùÛ¬—nKm™6p³—D…ñf5õ›`pЉË­‚S3ü<)k†V÷¤$Æ7ÛMä/Bˆˆ”Á~\nX6Šä…âᔵuÁ!~öšyQØJ?%Ú7 ¼AÚ:Šˆ½C“ø‘¤áË'ɃaŸD˜H’ž¾xpÀLEW÷Käù—NFŠ{»O€¹Ò|Rxn÷94xáå² Ÿ£°ö«wp¥Ç&[$=¼Ü߬ó|²Ëë`Í´ Ïsûêl¶NËß(–vG8k£ÍÜÞvxטúÛЩýT´-8¨$k‚øµ‡¡<ß“r­BúdÚØw0VÁÜì«¶F?ÃÆ„®W2àêx™»‘ÑÊÛ;Hâ +àÀ±RZXÿ½ #~uêµ&lhZq•¨„ðï={{îÓï{ßF™‘ʾ<0´Æ~LÖÑ’öA@EŠþ…Œhìd4±ÅpÜ™&ÅtÖ–RlÙ Ãïù1S%õ@˧ñsÎî—Œñdf4ø®N%ty©ÿ`~‡‰¨ÿõAÝ©#F‚¶fÇþ‹$Ý}°av”Hv$÷´Û¾rWÐk6C)JY}%ŒÉO­¾ÉS«´qЩ†X#ÿñþšg_ÆPaƒÞ»T-°Žê ¸Í.tÞŒÌêÝ1ì÷ŠoãI(ÊÇMοËÏ`3Ñb}F¨è'ØNÒ;HŸg§%A´§>2DÝ ¤iRu¿ã ŽE |Ì£OË+œ1‹m{âÎpQãá2Eö²ð7ŠãŽ<ì!æÚ•ƲBêÆŽÑ´¨¼yd„1$Xl&=Mà6:UZ|º‘hUªãIV1w”FÚäÉ6MºÏt»ÀQ]€&¾^_>®³gÕ£ž{è +¢•žX\VϴѲÊtbËTß®j +Ã:•Âl¥ yáüŒeIz›V†dIO +X“”cÅq{ ¯§Õ‡ r§AÔQOØ<ûr»>¶h¢%zÊ–â-NA˜h{C™=D9 "†déÝqJ“øìJ„ÿ(S G|Ì?K&b¥ó™§ê?ßòÚ^G©˜Ô#¶=¯6Yœynl7†ë¢w~NÚ±Qj¶×­ÿN‰äI‹e0W(ȯ¼×Ô;Y®j»‚é"ÝéúÌfÓ¡R4 ÉrÿE"çFoÎDP•´Ý#âø+÷Óõ(&߬Ð\’µ_Z"cïRúl÷7¢DÁ)‰$çñè±kÕÿô«ø•>2Šè"aèM2Dôžù„,7/id?ŒZŸA«hxÆ“Ë{\²‡vñ¿ñ]áUîµÜÔÈB÷±tjúIóU`%ª «æuÊYW¯}’ ®+z”XO^qQOW‡Œ 1aÎ%3ö÷|{B!­×§ðá¡v8ã$¿óÅ 3‘©âLÝñLÎÒÂI1®ÇÎ#ÝGN\ÈÛÊÿ¡³)¨·I'Ä…ºJÜâ,XKmì\ðù!%ÏrA6H“×ù_çº e©R4CTL+¯ð€±‹Uã™®n;Fjfz¿äíqZÎgË"îîÀ (]!5`“DlD(vËéø9:G½Î¥t<ÐÿünTÁ™józªqƒ½G/zQóÓGΨmòˆ›:Ôß^é$;Gõ&Êü›ynE‚³@)•¼ƒ™«r(F œYúßÄ|N6”„¥…Á:ƒ÷ld‚|“&:~¦NUh€%×—WíOÚ”x%mgµÆw¿\Z±7ähýO`uÝ "¶Ç‘¤]ùâçpÚ]B¬Eö Ù +Kæð1عV°q*}‘ø¥=( Oé§XehŠ‹ù&Œ¦<ÃoG9‘‘EÖžFYŒù¾‡,·5VFäFMB¢ë¬$Ôãµ\ía$×öªzF=Ä$YÿšŒÆnG8La%¦›æ |Ék.²© þ8@W6FhŒ_„+ÓʶуkÚaR˜ÖØ#ØTN0Û òéö®tÇyÏÂ'¹5+ÑÎñöÓô0VÄ¿ hÞRñT¬e—›?}kšŽÏ»©óÛKŽ}ë/ç‚üXáÜ)v¿3P2ÒCmWnª£å´É¥¸Ì1êïÉ—GÍÐ*ü»–Y\»$oô.9‚×­aš1Žtx–äÒ.]þøßõ%ÛT`–S-ô…©ãù“†ŒS_о²¤Ž1Q#CÁü¹ØÌòú/a]¥—/K _¸g-xZˆIÇ%k¾uä8/Å íeо™À‘ð¾+ëØºñ>݆CQ—73n{°ái]ŽBž×‘¦ØMPÉ%í†h m4Ö¾•䤶÷Vâë˜xBñi]fu¸»×‰ ⸞âÒGÎŒ]Ô;!šfÀˆÐy ‚Í2'ûàÖa™“’Ù÷m59@Ñ ¦‡7j2›5÷W"}–á5Mßµ¤W ²G¹0îS4òUÙ\šTÚÓQân>6fÈ;Þn}NéO§í$Õf֨횕lvý<ùyHv@>k-KÓÈôˆ[Ç™®2$\àµØÐðöÆ¡ F•µÖOöÎ쎵œh™ùýȆ0@¶Xç åòºoÏ“úõãý6+'T°cþµW§5›ä19hâ0¬õõßùv„xÙ+Ñ^³;å†ÑLJ®5UXJÝ=’YÉñ÷ ºfåtYÀ)«1í'#ò¶µ%ŠžJ_jìp S:&˜ãZŽÐÈÁ‚kf:{qâ–Áÿ‚\úà‹Š8Øe—übF·c¤I¼,ƒAC#Eé&'a[Wv±hžìr!Öí-×x}]å·1M ¸‰óÖW9¢ÉÝ[çË nÛGÚ4J®5mú¢m“ŽÒXýª;øšê©À « |+”î3ýgѪ竽Ê4ë!!yU½±÷LÛp‘¸’¬aÍr hI%/×û½Ï¼†¦[…†)«ûãÊŽÁ|!¡ÇMÙÛõ¼³§ç¹~ ±ðªN–‘‹üAìúNyÁ„Ä8sv›kqd +z@"ZôØŸA4ÖµÓýo¥*uNP4q)÷ú“°•çèï’5 xŠ>Ÿ½-=Aº¯›­ÞÎn—ó½iÝM±flN‘€'$·†÷z©´Ç³wµo{½§eÒR¿XV™Ý©ý˜ÎŒ„qÿ‹JúŽýÃó£? +;‹ýÓ ¯dÙÜÇdñ¦ Ç:ݬˆñ^¯Å…~ÂÖε,aÁd=Ø=5û­)§ÆÐŸaÚ— ‚IƒxcÈrPsz2ˆ=TÓnº¯|­±«BÓïçõ„ÃÁ Á+ͨ(¿ÛqïûÀ3cJ²ú¡%Z{ÖjòpþâØ¢%ç[ðRšP$#ˆP“)’º  ȹnx +Ѳ–Bô@G¨Lþ/~…ˆØ*Þ“A‚õ¤£$Öã³:a|e"¦lÍä=ê›"¿ÆN „ÝP-œq“@»ÍAàó ”Eêf ?á@^A; •Ø˦ Ìk‚ëðåƒ.«=Ì1Õå5÷EWtêýÑhuë^77ZËŽÅ1-×ý“µh²µqÓt‚ê8f| TÞ ,>‰+[6¾ª¶ôÉew\<ö丽`º¾.|_»F¯>† "6Òb˜ò%N’Ï•NŒ=ß`Ø;£qô‹K^†ms£œþË"{f£")¼/@æBfhñµþ# k¡á`âPØ´Ç`2×¢ Ô +i3zì-1G¶uC6Â*/õ~'Ž”Ç hN»C+‘’™Mçk‚o1ded©MrG€¤8~¦…K–æ}0†®àömŠÌsÂl¿zÖr˜9ûå$ †rÅÓZC»íTÌM©¿¶Ävs˜yPÕ)-é Z0]ã PþÌnhµÞ[rõª)$´°xRˆvVzEx÷…Ybjb n´¤é9uËú{sËþÌ“Im™c½¥;½ìtBwPŒ)ø*¯%þÈLQÓ,¤å¦E_ì‘-ò¸ÊÖÚ…P_"¹,*©¡hx>¼¾¼®¨æ”?˜Ñä"1ñOÂëä«Ò"ÑËó QT–OÞð‰òÈånhÑî6¿ þ5 rD†é#ÆvŒ’658T¦ LcùŸG@ö•°N÷~g¦¼a¤6^'νo5˜ÿ²F©6±ºÃæ3£ÕO¸Àdjà9 M@Š^n<ÏÅÔ‰ó­Ý^µá±¶KÉáÔ/£TàFS]§.¤&59c³y  zW,+êÛ†-ÌKv Aá;tå©d̯y3Dÿ3½ÆžvæÀý´Ô¸IݪÆÝ`ÝÃÓ%n°Å5…ÿ¬HJ&–|iòbE4c÷¯{æ ³¡®ùcaзNñGIGǺQ­ç‘Cw5!Ogn þÎüÉZ-ê”.qLIU*ê—XS½cöŽqÕ8¦U>‡-såg…Œå§D_K)>åŸv“âëȪÃ:’cêž7¶1Q" ‡ƒ‚ZÝÝÇ= xØT÷(cÍ!{"aÐàd8o‰x*2-®|«ûYç_ˆÈD±Ê8ÜØªy™€¨JKz41À-œÜ0 ñÅdoÖt`i=ˆùÜ¿Ìb«"mCþ‡ñí¦”Êb†4jêεâF¿z×ú1HFöU£«ø`†.]þ‡púìÁA¦<ã41‡Ëö’åëä~Ъ,µæwäRl”:°@¾ xÉ;¦Yr/ 2ª‡ËŽ£h¦9 +S[ˆ¿õÚ”®ûõ•që¥ÛÃJ¬=óL*ª #kÕ4™1ox{íg#rå£Ó5Ís÷Ó·‘ÖƒITlö£­mÌúýR[À—>}¤Óä­wõ5^R}Ù®ܦŸØ@¤ qµÍ.˜½A”‡y>öÏ©:ßLTb€¬ÖøŸšÓ­¾˜'É3Ž•ùÖV ”æ‰)žf£*Á¦=?ü÷ î×Ò ðå0¯(#ðúâˆÛ*‡_¡òVØÔŸn>ÚO‰»„ø<9G7«V qèÑ[VÖ8ÇW0oDžòá*–bÚìØþçk½„*IТý“x>&ñ »Ž×C O\º Uÿ÷DímÂ’»Ä%DŒs°Õ¸‘dŠ€Q$ ›æ"NlÐ[‡lëÒÙ6jz$œK‹Š‰_Å’=$Óe¿càÍBÍ'ì6fÓN5“U`2ú|â®Ö¤'Ê‚8¼ª/jÕêzОú­ + UQÙ±v¹ôtË.@„Ä57”ëØòóîâßÕD@`ØÁr@9FÐ{Å!8 p7óH'µóG¯§õIK +/õ39Xµ’±ñêzº«Ú4§¬È³<âôEx>‘éøàå5¬þWŽGa÷Y°‹åkÞ¡f‚z5Îd]q*Sý—Dl¢µ,àË_¦)Ñ8í¡#k‰;~„äp—J=êõîoIÝZZK}j¼â6‹âÔË6ùó¨™3SÍ6×>è±tƒe~\P‚¢±u&Ž¼Ê“£t‹Î°¦`PGŠâçYÏ´9v\¸ÏÓ*¤›„È]fuÒȬŽEOÇx +.ÓS¶)½¤i¹^©œç©»)æú!zæ¬m7ÅlØ(ÑΪ‘âM„*'èI\*Šš­ÄÁ[0ùá.œ¹Ù±Êûëyڜֶœiî³F'#Q¨cëJ$ÖfN›·G²÷Y5JÁ%}E’ñù;]зõ²Ð…[æš+|\‡¤Šºh΀ÞïIÊûKM½ƒýò¬| Ä®Ú|8°"WRâŒvkêÄýƒ¾?j×s6®#=ª›9•ŒP£ñ+x.“äSi™+j°¦_A-BsëãÊíÚU‚4Š«·|‚š!£c7G†‘JVߎ§:sóÇ—N9“ö8Ãàö~%áÝTÎOÈ€?-|™(OÒ[)TW®i fŸ]+'°,e±øHæëŸdߥ×b¶gö*”­8Ãy6À[IL±\ßXÅ ª“~ݸ¬ÔÕ×368ø’µ›’óAÿ8^äO2”ÿ®Ì‹þ3Ï2ÕI.Ù¾¶Bë½´œØ?Ã3žjix­¬Uãúé zÍL‚ë8%Amet~Ÿ:K’«jÖ@·]_JSS\1&ÜÙ7òÕR9¦9ý¼r™„H(´–mŠ•_á°ßÚ;ážC]£)ÆïþïE^B{!%ÑÎËþÄeð³~œ»Õë[=ÈZX.ŒvÄ™Är?m' ‘¾`byX›2E×¥0â6Ø Š +=’"/ØukY +ʺñºxSSYÿ6"YvBó\í±FºWF™:M©›žÀ‰œjšøÞ솂ãCYt‘Âú[øŸ ¾« Eö’¸.?HìòÛ¤÷Ó)¨JFÆD÷ UÛÕ¸¢Ë›&:§s;W÷¥Å Œèš‹òwü’̆DÆt[¿_SñNà4xY4Q9²+°ÖØ5Ä@¥2sßÐë†Uˆ¸UƸYU_Á­/*w9ƒü&þîi3î‡üÕÁ;Nõ_{0h½U‘3íüú”î<=Í-P™ó€×š=Ǽ]»úh%k0眰¥rSx$åbc²ö¼áI‹LG{ mC­4P .uW|¤–ŠçËÃf&O ‚Œ®ê!’h5»íqë<Åb^÷²É‡}­Y|Ÿ†ª6Þk”¸ìW?›adDSµŽ‹óAø“îñ¡¿[y §÷ëd—i”"ìUùâÐŒe™9S«fH Ùñ®F@7Ëöª®=Úã÷ªËä=ê(ZüÚ +•X ˜z‰Û§FLt©uÈ£«`˜NO–^ßÌËAæÎõ [Š—°²º˜õ@1…woÏkzûÀ )&/² +÷Òñ$5»‘–c<ïõ²„!Ô­R^Yšv!·2c_d@î.¾Úrê4Qãþ/¡@V¹Cÿ+åчÚ!–ão‰äóuÅwf3XMWpíJf~¿©Wœ¶FÔú§þx¹õ{×h¦áW6€SÎÞ¶ â*í$ÒVçnm@™Ì\×õ='¹¡4Cíô[ €³ñ7[Øíü-ç˜ô%Cžkçb³®ßѳØb ¹·•W²GC̵*†Šú•„\#t¡fè6__Çtf1SaoÚpSÈN“Cw Ú «$ä|mÀkº]”-ÐÚª?æ ùqtÿ‚#{nXg³âý‰ ¸éûŒ«rjÎö~\{4!®ïßû®©§èw›|nçLñ?;ÕÊ###öEAOß›èùÍpðUçûnƒjõ¼¸H€¿*»ºBHÛ¤1I1G€T»Åè2}"àhNiïÜ…;DyŸ«!oa»Òó'T-ô«ï‚²Š¨Ô£;­š…è(öâ'‚¨‡Ü³›yÖ )ô™†$"——Њ¿Ûg:*Ь ·¿Lц’‡M•z Ñ×®þì²ÿ¯Þ5uþOøxœò¸Üïã›aUW¿«ÄˆWr0“dfý[Ý1L_| {‚(`E­ñyåÉåôlÛ¸¨Ô +Ûv¶´ÿ¡‘dˇm¤ªbª¦ƒú‹³¬|YꄦEÜ`}{UÀvmAánÖá_OÕ>íÅøx_Ê~ðÓĬ†‚ä–ú,Øð=b ø »ëÎ +)ðÔpK'Æ´ý€A×&·LEªdAFd€&ô¦å£<|äâFWROLT +MX#Fg£92€•Pl^ÈkÈxD¼ˆÝ+mpNé5¼7ç(3™8NZ6yϘ`!EfÚØ-”¦D=‘-Qdír!TœyÙ»¤({°†°9ü(fЫ{Ó‡ê¸ *Ba¤ +ÄÄB4Œ7c}+á¤ÂÐìmÞñF¤¢ãÛi¬:\ÞÝÅc×ùÇÏBÜ¡hs CéTˆhjª]ŒwâÁÓë\ãoØ‘|Oègê?® ^iÂCP™@˜#ÚÁ±$ö2¡ÀW ˜eC…_ùv\~xúÍ–ÒwÍVüq¤\!ù3¿²¤\’ d³hKlâÇŒ‰yžïH’å².g!kV-¶!7sqªjæ}ÿ h8F^ÑØw²ëúÌ1ºøC‘¸ºàÎÍoýnÝ0^5Äyjôón£‰ÐÚ–ÌÊ“ƒ§G3z8D±‘PPûéÐ{ÿ´Ú7R™ì´c6ikñe'veVšEd…æ )-ÿˆï©s7Vg±ö% OÔR H.®(þV=îóé~ûxò41¢dFúN¨ß%è=¶H+í\š+ð*†~å«áæÊqåíÜô×…²/'>7=1~6Ëf³ã'ë²ôÛÀQ5‹égœà Ü?”oÐæà}ÿ™Åo—C‘È(¼¥9eÀ§e;Ø×‡eó®c½º pHÎê®FÁ×AAÞü%@ »\q•<EÚô†ZO;FK.Jøp hµw@Hâå@§‡Ó/FÛ’ìÛ!ÍÄ #â½ÜjÜ=&aÜ‘C«‚‡ûdÐ ­xÏ7SòÆr™"£28ÿºóÎ8¿{ØïËžÙ3ìw=ªûInÈ20×P&ˆ À¬ã¨‰YÑÈjšn:ÀŸdªRSW8ÿ£ÚCø·ä N…Ûèè±Y”0ÓâELf Pöa]h;ièν…=kÕ "&üàÑò£~ãýÚPÅ}Ö†+˜Þ ƒÜ€#U†G‘b4‰ÇD©ÏüÖ+û}M $tK)­ìÇÍ'ÞçÏD0”²nSúÅaµè¿þt£ÈaâÊ5fád¤”8_¥\±W ㆧ±Ô©cLJÖjŽ™N Þ€´DúÅ&d¹”A‰#0¤»£À¤ËÈ Z!SLº- Ƹå¶{‰Û†Èj°•†3¢µ°æ]ì·(š¸…R‘;òY¦EuqõÚa0Ôõ8;‡]ܚ㌄<äý#UUMWLñ I€´™&ŠqEô +C9fŽ!² §d³öÊaè"­8àl D:ÑØÎ&ù[üiHIý¢f:õz3èø¼·O$qDüßvä;"ÞÐÐÀÆ Ê ·„í7ú–ã-v MóAkÄø@Èæïóu60À#Zóí=©hF |ƒ«øå]{é +¶ã¶ ‹…šÀx²|„ÊJ‡ƒ¡U蔊:XéI’“óƒôá‡EÈ +³t"•}_cÀ}«œò»æ©àÂò§U:6 „ùʬ›¼8#TfÄúK!JçháÖj`ˆžÒ3Ä´­Utú>À°¦ÝÀã*j€´iM5T¦–ÐÝò€Kƶ˜zZÖ7:eeUm¦þ4Ì©x&/·*YèDH€Åsl»aޏ\là´ÎÑR­@zr.\9•=4¤d¸Ë—UâVü ÝÍͨG ½ÂÊÝ[´ Òg%¨lj}Š«èv›ëN)Z¦«¬Î¿ð&õIö7‹yˆUŸO§Ý cоm¼c]‚uZ÷2zÉ»ä6:rø½Á!(1€¾sfQ¿›pϘxè2¿é§¥×ÊYoš8£Ø³ ŽÈlR ‚2»Ò²A¶^ôdéÏÇo™¹ejý¡NŽÖÚꎶéªúëŸ}=(°ÊüeK¸ xcÞÕßb‘»ŸÑ<'c;sƒO¨‹ÔàÒÔ- +_ÇR .;fèP0PÐqê`”LŒ•_رÓÍrgGœ„9¨¤JS6o§Zþšó¿¨'eÉŽØ"SŒÑib/Bú– ücxámDFɣ–æ õ(7¡ûïñ1ˆ €Ÿ ñk|8Ný—)ee¬#¨¿ñýhU) Moø9m&¿ÅfÉŸe?Ë/##máE0°;@<¦ +-P`űk(ÕÆ*½˜ÒrªDùáíZД­v•²ð‹x8_¡rüx€¾ÇWižyìsâù}¾ßŠ˜AŠš°¿yZGï¥P>% ê“ëR„j%wE¶rô.4‘FÐKÉp¦ ŽëoÂu´÷n‹NYrkß3]ÎÆä›)s­ÞCŽ£N“XÝ-MSL|îê©ÚŽZQÅæÔÚíîç ç~±YLHz4ÅÆ +ü"¦ w6¹6Ì +y<s2!\l2Dfòõ†À`o¹çGŒÈé>[¯òP’]™ÿ=´öFpRå*"Ôïí÷9Îþ ÁaZì4Üðé:h—µÁ6 6¸¾ `@Ö-F² ³i€îê“5гÀ⣥g'n{ã)†ˆí}'ó1ò0dë¾ÏµŽ»‹LÈÉ1÷åºMö¬÷ø;¼×—sVûMèA>×ô/Þ™ ´UŸqM@AåÖiø©™:GP}žÈþ[›à.Š-vA‰©žÔ“Qçkã:gN'sy²îTî@ vœ»ÐÓ¶AÚ;bínÞe +UpJÿøÃuÒ„…_ï|+ç> Yô@kÝQ2½äZXîhˆ;¹ÄaœaÔ¥ +øéÛ"oêï_ôw6Oו,­¥JÇ)ƒéðÆ¢pJN øT~¢zhÌd]ÂjU¾¿]wv©¼ ÑBu£$K/ů,á&/î. ú…úª<‘æ»±lµˆºåYô3 Ÿ©ÃZÃÀ¬4ýIR»¦€•èMðè¯_`@ê +áhhìE¥0ÑÚwËð“|zØ7¸„{È”\jß“´T¸8(”ü3ªÔ°¼Üˆ,B²-‰+€¼Ål'NhÚ>ª‘·Á†êÔ–±… ¿Þ׳⣱†f-Ý+G^¹Dí(î ޹%ÓUà’Æó-ˆ\lNÊ›…½÷ÂeCüЄ +Œù8»sæ)Q…SKZÂH +¯í-‰9mŽÑÂwS¯«àëƒG”XI/ËàÂx5]Ÿ‘ÓR‹¸vsL™"ô¡=|•Õu–Ïzgû±àvV¯V¸òâsDÓiI-£õŸ§•¯ÜÜ4І iVý'ˆE"À?ÇpX»›7.û^iÛW9˜µÖ–‡ÍP@ß}š*5ƒ¿½wôùÇñ–QU»¬QÙªï}\„oóŸB + gš¢QpY «m-]ýÖ7B³"5éµöExbxP:ôLn€'¯ÈƒãóX /Õë¾È`r–6ù£Á_ÞZÜ3ã,U°B½¥NU$ž 䧉aö#³õÚž‹~mƒåú˜äÞƒÝ9^AÓt¨åÑ!¨G<(°­JÏá)Ñj¼ŸOütઠßÖ<ž©}ú»Oݽ;Àp³søí ×ë-?£w~·"H²§ÑvšûïãÐ|Ý}eO'Ä2‡@ îô tp~cR8šyÖ9…‹°…µoÓÀæ1ºLú‘xrv6˜]]jz(Q,çy;Ô^ +Š…Æ„¨èjß‘}ü?ªëùƒÊºŽ—Õ„mÚ- Din®þWÀ©×N…J§É·Mý¬ è&µÍ‹êߤŸ-[µ&µxìe©­Ø†äü¯ˆ™Ý"ƒ‘›ÆtNÒ×Ï eú«ÿ¶àeÌ ó]NuÝ˦,sÝâ`áø ™õÂ5¯W.G¬Îì Y£ò»BÛD8öÐìÈ6Q€#¸ÎŸŽ»žeL+59K(Ìð-r¹HXIZ/nQè?¶TÕâ<¯/!)ýoRd}îÊÞRFj Ï#, É®¢ÑpÏ L;щ_¿Ù×ÖN<3lÌajFˆšqÍâÉX2>ñ˜1!¶mÓ½úÒ€5,}ß5;Ï®]:¬„"Ö~aÎ’÷ÐTCÏÔäõºÊ…jÖnùãÛÚ +£¢l¶Þ³›Cù£lÊÍ=ã¡ÏWßV ¢¾Æà¢|®<ÚõàŸ©£æ«\àµ[ßûב-dÐP¯Ñi¾ñ˜ÌVä°IýÍò`yÁ.;ë—ØÐJ1Q!¶Ñlü-HÓ±-Bv@ª"ÒÁW];Aô‡©€¯6;\y_ZУÝ—˜làÓ-ŽÇ²ym³r`ùfuj—Š i~ý½}]…ÈÔ˜2d¤½Åô,V;Χ?Õ)!Sp$±j¶-©n V–:ÃbóÛ‚óW¿§ûªÇã1}Ü©…Öt8 +Æ +s2ðþ}+ Ò?—K"ƒ³û–½Ð9 „éó¸áw’ˆ²€m ?Ää­Ro34BVQ+ddÉ­}<vJFÉxî¸7Úïf¾Ë_Ú/¾qÒz«æ ¬%(‰ªØUiÚc«Pëjã?ÌOÀæh_› n1€¿¡>Q»Mëeƒý¿tÈ óõgy`zL¿u’zÿšûq®ûV×5Ù÷ÁFÁ*µ„öôú©’oØa,ØôYz…ÛZ+ÊkǪÑFòlÙž`¿_¿H³³H~ƒ#oqûÃ"ÃJdi!ˆ/¦³òÄr‹’öç}Á…ùûâÜÞ<Ý,Í©a A{Tú‰“R}‡²EC,~Œ‘†…ÓwHæG’wþ)›+bÐ’¶#p~eJ¦´¬¼³ÇÂT<ÿ`·~Ï‚ü¥˜Î‹€jB·ÖŠäó»ÝœpÊ<+в†S;ßl™ HÒ±†:Dq¾ÕPÖ ‘°ÝEKõ]÷Õüâ‘"‘“w9’h«½}Ä‘ý®–1è{F³¤ð#ÀßÕîÐb6‡Y(=ŒIáFnÒ¢&™Ò¬Sùñ†·ßÐQ0K™'½è|x§ƒ"Ühoc–%™ã/Ö…³â‹©¾iÓÆÏ(õÁó¶”á4ë7~C_ãTê@5.¿E“hã“ò‘¢†8¬‚H)ÿâÇa¼8æB¿5úD¤ïƮćŽî5ÓØÞv~YØ ÓÉãa76F 6‹þäDŒÃËG¯´ÉÙÅKúšo¸ ¯ÏýVÐÊ´á›êÏWo‚¦üÓtñ5~eݹ?¹ö’²ôzÌ©#Ôî#/„Dç] ©^}Š<ò<ǯöø,”$—„È[­Šù*kDiMŽ8’ÛÂ…í6ÀIZ™ò+{ƒ}9 o š)V`W¤lMîµ·ŠÖîJ™ÀÐÓ‰=*- ÅÛÕù€È+¬û¨D¶Þ…ÿ‚ʾ¥‹¡ãyÇŠú¬`Å"N?s¼%¤µLçLÓ½¨~Ar™ˆ•ËJ¿EÀï’`Q‡œgNJ(1ǯVD„3Û>7ÿ¶ìXÒXKãšÝ-Y‡aº9gÅþÿRºAó5>Ž˜ËŒw0³çÛŒ°a’ÿ6)GFr ÕÄ·JÈ„$ÅêZ~h§÷=8g)ÿÃå\dPr—c2¦“š,ÌÄ<(ìŸÓqº‰¶²ËÕk0ayØÝ‡<ªòÂ0Öp&0†P1­Ò¤X—P%ò#‡[ìµÞÛ_R2‰yòu>+eÔêôd`´Œ` +"ˆ¦¼‰·™~î“Ô'Ìj¶Ó{büñ¹’n2ÃËg®2i¼Ä Pmi3mðàGøÐŸž—†¹‡ë=Šd.4>•ÿ">ùa[Õüý{8Ž1–B"¨Xø=ªÉl4?º² +\4¸õú«/>ÃZ2œC[5¾:"¦Ž6Ø‚P—¹¡ŠÂz&WAÉð­ŒsoHâcñÓãºEU’í 9]<¶äƒwE åÖœ?Í— –™<¥µ ¬›É(sñZ¹b…´ªþäçyëž^tá’Ÿjë¬ód/‹zb´ï×ðê0E»€øŸe«c·,8©°Lt³WGnÕPˆµRgötœà*ÓN@ ·§Z„ƒ¯Ä¾tQK…“[6ƒù®òJÄÀ¤,Ôc&sÀ~H?4ÄÃþyD/,ê¡ÅKèÞ +GõàË'çNB#À%çWJ/¥Ÿ] ðŠ Ã’=K®#HAK ¯Yìµ Ñ;i—Ï<;†M󜅶D.,ÁtŽÇ¥t•Nl¨GR[rµ˜Òp½EÜTaP˜)óøD é`Ãʱ¼Œš“ð "±¤‘ÈÅÖžŽÿLÉÚðo_#!L"—•–¤1ê&HÛž¥Níôâÿ@#«ó>Ïk<ƒ·ö áC$}’ðDHÒ> Ø{çõ|Ä_†‹†”,0æÇ•§™ŸÔY¦2rh‘ sÊ(exÐj=ÜŠ£fªŸ4äE’hVþ€‹¸–{h+wP“t‘WBWe¯ÙuST+*H3ÛƒSƒ³±GÓ e²ÿœ!ëÊÅ÷aGò„6%ãÔÞ›i%Ó«NíÈñ ±}j|±.9¦j$ÐF7]hŒýÊÃðËDT9¿Hb]Ï ŸÀfÞO㎗@Tüýæ)ÿDq1jú¹ðªÜÅöŸdJ ±š÷Š{özÔäkKõz î¥G1\?g5ý+]|Nè4w°M£ÛŠ\¥N?FDÀzå +65*u$JrìFB®‡rþ%ñäüR? [M7¢È"üŸò6{jm¿XHO†\(†Õúogæhìñ—ÞîZBkÄ̸à3aX‡¦¾©§žI_ð⦔̃Y÷G•ÞÁ¤ví¨/CÊJ­d< aûϳfÐÈÛw ©Çi ªQóßОS¯3.Ÿ¯r¯uë^ùIºKc˜Îñ[<ûPÜù‚Å3$ñÑ:RääSž¨ýNN¼Ï|êIjplÁd¦]${éξðÑH>•s’,vaA +‘yÎô#ßåÛbkË!'¨T‡G?9ÐliQ!I,ö¡1vÀHˆ¢nSâc4Çæyæbâíïp]{YÛ»À‘¤fø yîÔT§ê󏿑âUÆ—ˆ˜q\h]½yxJø¿¬ $ +[Ûý.žíæzYt¯^³ .,5Ø%2’Áj(ßO±¡æ¬®d;Êmnõ··ü=(y ++hÈ#&v®¥rÉH©Á3ýûùé7ÞídþoÇÞ»;G6ê~…Š<:ý‚ÆìwgÉíôÙÃ5k` ³6ˆ¤iÙg§3Ð8vcf OµÖЇÄ ЛSa¢$lLømí¡)%U9ëL9y¬'êFÎ mwâ (Rfº-ØeæéĸÐdŒñZ·Œ'%·‹¡àƒ¿÷Ì£ç{O›VKþœB]!äç'ë­ö£ü*ì=‡!ýü±%Î’¬*&hœ‰RTÄZ Ì¨ÅèûBΗ¸S€ÞŽ2Vg¬·²‹Å ÒìíÊÆ¤b­$#¿Ú(?ÔKf¶veL6#t2Ç&óÉ­âÈ0x«ÃYÐt›ý\òLÖª4ç®±À}ÁŸÁ¬¢ínuH1”y|ÊjuÁdÆËmló[™º%uoè¶H£›²!Lµª§j¼xM&€Pv„ä,_iâí¦oG’×Ud% d͵¾Z)e­ç3°ÁÊUÌpZ$eü5ù¾šš}è…½˜¶ºÈ¦7=z¨CÙ„ Ž +JåL±K~¦<‘Úk™ó؇á(ÿRz`{HŠBü&‹êqœ ÁåºB!õ*ß|’<ÊxØÒ ð,þVŸLˆzør¨Í—3ºùÏF Ø +•Ü î­™ؗƙͧÄy™-¬F­ƒ?£ü—âmG1Ë/ƒ8W)}m¢¤ÙDEëŒô~O¢Q‘Q×M&^ÓËx2Âñº‹3)\G)z {Q™ùk‰ÝSîÓ¶wb9UÌŽ„£$•À»4™ØåkŒ»Ä› ¾–K ++—~³(6MFÎVŸ»%?ª™¹[ÂʼÏ-èèIy|Cl&¼]Ý#DX~tÙ~¹lw¶ß?*VtEƧ"££õcév° +ˆ:š5Aêp5(ŒóPi©U<ñ1Ôõç%›š‰½áá ÒfÃtŒ–µx ®Ë\‘-´`.ñ$ó‘b{<¶Í×?É}PT*™± ˆë|®ŒEßž„r^ e毢åc¨øš#ÍúËÕÐp±þÑ"1ÑgU3M*«Q©µÐ› à¿>ŒÒn8·øí€ØÌ­nÏÔ:|šø1u©WíÎHvÅ®ê˜æMÕÝmÒ;ÆlœÌê¶@î;Þ§ª¾áÚ ÷ÒPµ>Û…ç¾-2 :±ŽÉqù"¸B© +pÛRÆVÈCãJSp<@MïA›oU0[mo²¹[ÅvÛÊñCÕ ·¥~φÈÜÆ©í»Qn–ø:(ÿhgß-ø†ÿݯñmz‚ÐøÆGžUé=ɰ¢i9~Iv›åIìA@+°óˆ=7W{ Á«»;o(h7õ?4K"*Ž+‘®‹ÕÖÒ)ÇLceÙ%ßK\T?/÷G‹"‹þÉ“®U”m´ÆÖrF-Dø£®6œŒ<'G¶L^â» +ŽÄNঋ£·Ïü5TA5Û0â\yÖ×N;P6[ŠÄC9#ÓñûñI>Âv@…åæe¶ýîy4 ò g)¨™Øw6 ˜ž±·W{pSó"úHýÙ 9£…÷Ë/&³eE…/Vù ÑÈN뺂_»\ólxƒ` y"‹äQ&À£[é °ü;/ 4;ý€ ‘wŽã M¼ùW»¬ÃC‹Yã½_‡ArEOÚжnkC.ó·YʧE`h(@·¶õ3ÅÅIZÌJ\¥§ÈÓD’ +Áv~Œ µvdS¦in±ã‰{V‡Ð¸µÛõÿk†"gßK=6念Eê#»Ôú +cL–Y>ÛßUk@8ꣅ!Ý×#}NN“!¥¦µñ¸Z*nÕAò&$„”Ü\’_ʰé;'ÕôT0ûXìEYÚ¢£Kg×Áî2l1h?•Œx\fÚ•!-Z†¿¯u^õ¾R¾wbÜÌÃ_’žDþÊ|ñ°;èJ©ÂjàÐuröK6_§MÇÎ=ú;kæ¦ây̦û‰UÀPð2i“_Y;‚g.:ó+v,Ós¼>nÔéÉ[K,ïZ¿Å‚¨c¹ã¥†{?K xÊ;70¿å}\‡=$že mš²VFž'ä#–7¬`œmK­®Í¹3Ž´Xƒr¦TR6kàæ¿lÏÅû^BõCëT.…K˜©¢AÇþ2®½æ\ì—Áù‰>ØÍõ:3Sªˆ¼zo^1Øô _73WÐ~¡ÈýÅsµ=†ðÄTLQþ˜l§ +6¢ϯ£Œ¡ ;þ/ƒÏÔ[!áBó­ö$£b%Õ»Gñä'QQ/ÙŠR³®¿Zë.û)›HI…FÇ–$9&Ž_ð°âÝ ~·óu vä#æÈ¥Ë$ô k2±Ú޵éË3ú‘§Ö¶Íj |ÓÿÑ!cÈvs+û;}¼|b䣲4 »&mÅváV÷¯Ç§·%³‘ˆ^wG:¤DÞ*’ä­_SM(Nä„ùÿF8ñË­·C¦‰„!p.ºîçºI¹FÖTž‰è2‚ iSWÈK*íè¢UšVÇØ.¬;ëÍ’“ÈÄicíP ä+×v|·Ý¾¼ùÛš”ÈzŸðóoûàÕ¢k&x†€ÿ”>·}Ú• 1Dð‹g±לíœñb®©ü'ŒP#;*WF6ÉtÎ/Ê[[ûÕ%̼‡Ÿ,;µëU¯ ÷Éê(ËÞYéý¢(Ó픆†‹ò Â(åfʳF^ÙÛ?V¸›¢rW:“ÿàƒ«:6ü„’’î‰ðix®+±-}A)áÑxš$"·uxÙz_S«ÚèÔH§5eÇ6ù¡Ä;ü17”xqzøF‚d+#éû(jUåvsìRJÓPìu8@¥PH÷@êÜ«¢A¨>äÀ#9ŒâGlß×Ù¢‹¤€ìÊýÕ„«_XŠi´¬°mÝÑÒcÒƒ^™”ßëÿ–R‰âKF&V±ªÒXýeß&ºb‰ÄpœÔ®Û˜¤,¥3‚8ÈÇÝ#!vïS®A+Rç_èMÂåͲ)Ž•õñ8'R1wˆAz›ŠNÕWæ;‰—£·`t×Ùк†}_§²XŒ\Q$o¾'Æ|„Q¼{ÁþŠ€ùaòýûí`ò¤Ô!ÊR`‡7¡"7äN~p&ÐExvÑ2±NÞS‡d2à}v>ŠÄüÓu½¢ÞÙúœb;D± +0‡ËÈåWJ³n)¯ÏýUäOˆ5B>’[n…¦ ñuÔå“q­´ÿ‰¾÷Ý`q¼# g +K–÷ó ’ ”'Ç |þ§´{D–lsvR+ÛJ:ÅmãâEºöÂ:¨Ñ×(eêú¼@ 7‰çó¢,,? ×)`£F +ЮkfOæžÛ >º£8çù]D©¼Ü€?@uPÏS21ç¯qaÕÖpÁ1üÇ©ºÖ2Y™` ›Çl3 +À»TÛ –7æ.¦2y&:<‰Çí”j']ÿê®Âä Q¥ÙuV¿Ûº ›w¾2¾£†ßy%ã3ÅüG lÖÏ»ÎùýuÃåbØ:&PÍ?ážÈù/µ± û±‹ÑªT«úh½~x[Lª,cÊKbÈŠÅê× ~/ ÜÃÑÿºbÒ@ù±MQmF9rŒ6¬öqæc°æ}’—~º”ÚLéŸpã £¿õÐÔ¾Æ ®.¢á=®"ËCHŸ¯72:(¤{%g:û Þ)<í7Ö6͸a¼‘{\¼–<'z§D…«#)•:®Ûí·×ŽBIšŽÚÞ}kUð$k¡F®›PE‚Ë 7½À/Pâ–³A_œÈJHt†±“5ÐöoÜÚñç +8g>´êà(ñƒ.ÇñˆàÀ;—FÆ„ qÝT›-œ@EÞ q°^° jó^ð'K‚pJÎè¶e_¯6$t‘Îï¯ +G¢ +ªtûs ²ÇTÊD8kÞº›`ÈœµL _ÒÛP× ¯ƒ˜”ÅC ¶æà!˜Á·A‹ðlë0Á³ç•Gõþk_F‡:!­¾u¨PI¼Sdi¿Úf52¼¼§·{ãv²+ßçE™˜Ùzâh_Ò‚Õ ·žo ²¬ì÷)Æ/–û‡rqWÒT]ðà̾è Ä *e¾ˆÃb/«Ñýœfá"n“îÚj×€‰îý¦„Ø;”Q ô,É’]¡’¸ŸŽ°Ï¼‡›S0¶¨0„õ4_²µÐƒíäô˜Ç%z¿‚ÊC‡ó3¦LmcOšU–IGˆµ¯Ýˆ?‰u÷šPÒì|šÜLgbu&ÚO9¸Q €-E~15 Ó›˜þ$b Jmà\ ¶±·AûPi­ô>V:݇ý”ez·s€.й'yWsÎ2Œ[È:È%ÖBËÝ?X;>”5&ž´þ“TÃ’ÒDü†s¶«ý™t}ª‹ 5j†ˆZûÑ Ì,W1F +ò+¿±ârê°ßÚ/vX …Èhg âÜj®Õ|·®É‡F!ºq`8{^Å`!š·}oóÎdØ/aµ$s5¿ú÷åôdK§D¹Aä`—u[{M…;)ç2°|2»=ìHÒú85Àw5OIÁ2ä§S^•Áâ„C&£À‘1–cIƒX‰ðàEóèHh޵‰P÷íårÞ‘lë ç.l@Ðj¶‹R$k98qÝ4®ZdÔŸ3ò ãÆzhŽ›Ty^·"MüÛ³ôºîaBDM«ëînšHã¨ûÄÊLa÷ßñœ¬Z_„X‘'RïD¿rH¸#¦wKŒCïÇéÀܱq)œÈ„ Ä8ú~••‹'¦Uöˆk7¹y|¨üª¼µöåˆýÓÒ¾@\#ëÝ`mùùzà3QöyŽg/²M‹ùîJúS Ï¢ 1å&Še|ŽY¶¬ž9%:d@ˆˆ_Ã7óé¬im?Z†Bá¶£`Ø’jk»ƒÊ1d(MÒØÑ»÷v8,ÙpñCm…#©DÚÄ^]Ò…#ô¨ŸÈ&f‹ Ddäpž~膃韱Gé[{O£ß[/âëS;˜|%Ni +ºNÌáõ|Še„ 3o@ÈLd D ­v­b°$)Pß™Kfsò É·Ú²¢,4kÞ„Åkt­jšÕ {Þ#ÙÐS×QÑp$B•\Î7á\þH–ŒyßÄG ×ˆ!„dùVÛÁUãÏ.¹FPR4%^1Q‹y¸Éïzeôÿòt(ÍA«_ž¿€ÃÖcE(nIý¬õÆ?©tîÝ´÷CvÒm×{ë"¯a³á‰±çG÷³¿üJ…¹ÛŒGiÛóŸ¯@ÍXZSpx~‚Ñäÿî—Ås÷l©Š"ô±ý¨Içž®aGy’ö"…´lÙ‹š¢7õPÚYtŸ^Ò…:§<˜ä6¥ íˆçIW>ê XL%&x]… å“¡$†ù€("¶ ~t9±A”ìåïó Á‹B €u kÔDòÀ»_ŸÂkÑ;ð`%+ù¿D 'º Ééx`Vž³Í`ÑÅŠh£¡ÜξÖß–l®Œô‚=× «> +kVìª7¬ O„ÆÔG“ ù¤•‡Ô5»úvéˆÌ[dïkÓ9Ž€mñ ÂÄŽÛ_‰@” lÅùö>àu÷§…CÃã›i_G3XˆÀäk°(èrà2Ó%)3*Çø_Ýãþy©àkÖïOæ&ö HØ÷ÆÕg",,‚Äíó!yª‚½ j@6s$og%W9'ŸIb9—Z÷—4ÂçË]®Jä4Ú&fó{Ãô+CÎÙ"ÌzAïd¡þöU¸—@™°«! lÉÄx¥¾¸¶ˆÿš==YäÉ×Bjˆ%}é6{Qžaæ3“ê¡£x+W­½}–·ºï¡[ jØu«+§p‚ÑB{å(6ÿß¡ëÉŽšBêrZ±å‘fŽÊ%È  Ê©íÜ1Z°« ö°”ýŠ1üJš?ÅW§‘Qø_¼²õWìYÕA$éÔt¸ZׄFŠG–bl}~.®›˜Iµ¯iöMeêjs€£«ÃR´®õ\ÃJa4QgëÄG ®1£¹[œksÓ„öj¼‚ñM‰yŽ+f4CôHd)¾­ÿÍHd&,à.›ÄÔjmì—áØ(5–yÖ¥W«Èû!Ñz³íÝ/òt¥ßKpÛzB®~O¸3Á9Tj˜Üƽ8çXWJò¼¯òÙËNì°Í_'¦¤6„A´ I5ÂdrV +”œ9ÐTx~‡ikûSÝvo»4c8§?K;¶AÂa_@D¾>þD–å̺çxúÁ1|Žg"gô©&X$tñn-ß·ô y²²W@FdóÑA-é føÕ@gœq$ 'Zîøç’âìõlŠ„Ãþ;”<œ”½—ùø7z¢ÀtâE/#Nçm£¼Õ¢B*uc +v…mîXV°Ø&;4ˆ‰ïò³ƒü›®Ô¦²Ò£ðä#,%ý…/­uym7¼E d-XmUƒ­.øS«d¹Ý væù ?¯Ý¿$º±‚ŒFt@Fõ%gLå:©p_ób@0ÝÇY¤m‰hôà•…0ºyi,šG a¢‰ýÕÚ`-ëz"2= <#ÂlXAŠ8Ô€Ó]e9÷) Îö³#ý(S:â¡;e >Þ¤ùØ °0¤ÓóZѲ'×1{ßং4& yuÀÚèXGÈs ¶‘`å±6Öö\ ƒ+p«cãD tÎ<¹l•ñÆ”žN½ÂùQÍ £C÷*Ïì§ÁS@à¡ð>á?²zÿOA{Ôçi.þ2–Tù¤pvªú#9˜1ΣUK¡Ú{XË<©Ú5<²m3è¸×oÛ?>z­ùª©Çy8n_ÃoµKbAáêÝ©}•Ÿ5"ó”ÁsTM_"zžPLMú—§nT=î\ŸS‘o“ Ãð{"ŸÊÎ_¶ú™Ãö'g¶.£wdÆD*à1PΣ¯¼Ò²¾ùÿiäNy†…8@XôZöE§¸X›Ä ±¦MŠÊ1ƒÿÍ%[müd+Gß4L®Ó£scú;°º*G®ƒ¨åüìzçô¦1ÞýìË’Þ×þ`Ìâ’{Ò¤¹mPÒñ­Zû›™Ñ·\ÄõަAÌ¿FWm¯yêÚbËa•¸fpS’˽°=×´ì„Ûb~fœè‘–WBÀÓ 1Êʆtä½àGñí†ØEÁ¥ÜLLí²{§´»9oË ñ+fLûP—š*a—ûHðÜ|.!„­r+L:0•]f™¡<«gY)Ù³(8|2îógž½BUsplI7äúw5ÄD°Ï“§Ô‘בÑ*#V“3a³œ% ÕÏ–ÔNEõÒ*Óè;ìÛÐÖ²þ””á|:šaÙó„õ³ + ¢s¡§väWÓ*À;&[æGŠ–ö‡î­d·÷÷sçþ¹d„_š%+ª •~ôoè %æq ­´ 6 U2':[‡K}e‘‚DA’÷R'vfÇ­uJöÞGŽ$¬_„Ãæ<ª‹ÌäŠúÈþv×6þ#ˈÁÁ~oðX.c†Öµ,Ñ…ÈÑ@‚Êàø’ªÌ)â ³µyø>ÜF‹ +ÀFzÔ{¿Š=;¶+/œáúÅ8±e®@õâýaú`<ä \5Œu+º3t ÞUYs_€\Ó‹¡q{ò*ÝßÁÃÓ–À[ù«ÕMOh%ëHö½„ÑÝe({Dªô,T9.÷BV]ÝÜ&}°nÝd¦×‹I¦¿Ôé¹^ŸÃrß8P|<†ôR,ÛéßÙ>ôq‹HÑ„¢®ô¸ ÞÏ”G¥æMãË|¸~8dR~æ0ÿkg9$¹x‡¨ÿøCÂð¥PµòLÅ1‰“ûl…ˆ”(ï~çÃYU_¡s‘þH:+„ô¸6õ[éŒ\¤eÔ·¢Éøzˆu©Iné÷ mSÑœœ™·Ó7UV’Ö&¤ðC7vAíõ¡ï5È0¿;Ôø„î…Z€÷Qø‡«j ¥IåÊä;×êiÀ¥Ï959PCà~޽I‚iÛ_µÐTœ&x\Ͼ²›û¥ÞFÛ:£YmÈP%âN1–ZˆN÷ö%¤UŠA˜n:¶Û_aà*jqi¢Hþ<åKÓåw`t» 5ƒÐasÃè3zrHräìH¸X/‚7²zÑ+64º“×TÝ‘\Jma8Ïtá9oQ h Âõ«°ò¹M,y 'éß{Ï“jÈ]¾[}`Æwˆ +ŽIéÔ«­o¤\3Yça÷†fÈdÃ]@uc»nÎ<¿f:±ó ™Y«ŒM Vo¯z[ÅÀ¡qü'D¥v²êÈúµ +u& +7$_ÕÏ"©o€åÆàfÈ&{ßxD»¹©’oQ•Û€J7hŽma!,ðŠ‘4q• MîòÁQäJ0X[aêNPÌÒ+_`{©ê^h8³  4ÖË¢@Æ´0qÒ„!d7QrÈ`ds,Y,K¥^';XPònhÕz5Eº5ö*R¨M#£®–"ðâ=©~Q% ty¯ý ‰] \._ó9ªâvét*°³ðÂ`pt0¾Jÿáþ?ûä=&cb…1ûžÛ•ÙÇeܲˆÄÐ¦ã£Æ.:­VžLÏè×䀊ûHv’ÍG ˆoÖ;iñtJGׂ[6Z:š’ÏPØâEÇÆ æâé&Ûmó¼M=3³Õù¨œDçf[|'÷_ö·˜+øâý`±ÓªCIÉá(÷Þï;'kjÐý=· xmÅ~ ð#«x'¤Ô–T[ +Ò …@ñëül&ãÊ5n<‘/2¿OK.q‚H z4ÔîçÔ£Ã-$N~ »þA¸Ì“Ê'; ¢^™KsoäâÖŸ øèzÖáqöµç*¤ø×[7ñĦÌ3hž‡DØ Ý㈆)D”:OWf¦Ht»¢ûîÓf±oeu†ÔÖǼ£šGß~ƒÍ&±h ÍP‡ìŒ‹½s5t8aù¯,Ÿˆ‹ôÈ!¯‹±BÂÆTô½ƒ°Î[ß%IªÜW§æÀ µ6ù͇¬“ˆà&»|7èZ‘|W$`² (ÿÐê;pˆ¡2,ñè +Õt€3W¾n›L^áë«-F/Ð>ö盕qÔ0õ£±TÃy{õªˆz ½ünà€br®¼g":?œtS°J‡»Z±Ò®~>¯óç}B!<(–Ul0ÚûÆÊ€Ó=ª4.T-u—lµê75B×+Ú:C[G\Œ”L'P¬K Öyy´ÜÎR-<àÍ«(CtŸK1PûßÍÓøƒÀ½Š:·S´ ô¹x´„ѾXo‚†9„úb^>% |—¨ÅÊ9ó2SÕ‰µtË2Rcáò…ÛøT2¨ë·K¤î¹9È*Œ“™Šy¼ âÑÚ<æÆ"¼L8¤ž+±€Ž9›‡ÊÊB©Ô%Éb,ÄîîLQtIû_©M"—g!?Þд÷Cid€;‘„Ÿ?_Ôˆ¬æs<ȱ‹—±êy¢k9ó ‡Ÿ€íë WI0Æ=nR¾îÛYÞ1Õ“Q+êWHüŠ@Ü$Þ0-0&¨†GÞj‚ÇÓË(½p‘šA§Õ3‚jÁ¤Fwš"õ§u‘™´y‡†È4¿Áù^¿Ÿ:Ô:”Sù4›™•ø 0 Í`Üw¥6¥âsŽƒ„ª•ä%i†Ðå,Ønc%à[ +ùÓ¯VXÉgJ ôÆ»i ¹¦úÇeêÏÔ,#á&²Û’rp¯Z‡Ÿ¢ä‹·Ò²j>-Ö8š‹ýª,4¢øÅ¡Û„NªÆ´®Áo(½pÀ{l`ªÁö H:Ÿû¨Å›¤NZFRý¾Øÿ^Ũ O=[°$â5ç)º) Ò¹€Oþb9Š{37Þ9wò©ÓHV«µH&ö9Û7]ë”r=Ò%-ç…‡>6+ŽÜ=¥cO+;\ögönÕ¾%§ÊêѲè k]|àôß5Ý®:é>I)tá~:êòtë¸zd5˜:! ¢¹wÐ)óJO±ì†UQ(@jó~™SNõü¹h5¤" †Pò1䪄ØoÔ,äÆÈÈÁÍ>™š’Ýõ·/[}dèWè~–âÍL±¥ÔôœªüÀ(^:7b)*×%•Qq×[L?FÜU€òËôAK ’[\°ÓÄ`hâû%ªœ×ýQ Ù ÚÚ%ÿé'‰>^½&MGº?¤ä¬e‹«Z"ðܧއ»Î40²[RµG=I”Ú€üÁÄI +iötë²³º*Ý+,çç™f‘sè„ñfÎ|~¥Bìkjù¯…¾T‚JŒ”G³Cðèõ€ªP‹uý¾O‘°ªŠÂ÷ …ÈfѱúñÑURÈ[>büAˆðhœ¶˜Ôp9Ï(go«]™äz›DÀò/©²7‹xiÌÞ^¤z +d„Ôô@d¢ÇÖ`þލ #7CÒSbÐÍ`Zí|EJ™qRdë^ne¾¿æ¸,E N@GƒV0×"íÈâ˜Ãñ’`&Þhòã!+¸!}¦Ms¡­ž™½Váí:ãÑsò—³ŒwÕ  È8nÐõ⹯³8mëòAeimGúÁïÅ¢“FK2Ù ÀÏ­–Òž/oÖ\Ê×LÆæˆ¯ÎeÆ+Ë¥@P§Í"nnŠW\Äo#ÙB< y–'V"TÙçÓ£–7žåHscsª^$ÇݹÆ;CêT_²– +çU­2MÍ*œÕKúŠÜŠ «æˆÈã]òou+ò¾©!œbY$Ôux_~Ñ»Di~vríµˆ0iPÁÆ-ê•’W>ݶJfM{r+oÕ¾¸+zâšëÝc- ‹4bЩ×ÄÝ2þ¥X‰p¡"J]‚ÝÓ §Mûº¼.1#eD{Eö§K:ØHÃYzÞqžEˆ&ý¯Ü¨äoöwùìâ÷Ó‚õ ŠÊ”ÎvÎÚXùqž}k0S0dA-ñ®w Äžú&2ü»Áõ[Só .jÆp=&ÀVìÚb›|à-<ÇT^³àXÌó²Yun\s'!%è8?x¢æ"Ç•ÔkòïûĂޛ b WCÙ¡§dƒtxX©ÇÅ{ÙÙóßætºÚÞJ–ªæ‘J’®¥ -9Õÿ;[€Y~CÅP$lÄÖ#uóÓL^(Üå»(:âûñ\>Wü ä½“0. 1-¸Rê”5aZ%xƒsqôô7 ûNÓ+¶{¿,Ú•M´%l½ªTÒsGe%6óL¸–…~­uþ”.Ñ –\×ÂDº" *X±ä€Noéã¢Û¢øó~cO¨ÞÜušYd;Lí‚6s¹‘æêßC:f +4öoqPú¢òÃÔóñóܲ¦&O~'‘Éã!¤d©n¯ÊÄô{щøö´è… ¤áOzX2µ¿‹cFÔç¶^¤eÚ›\ÌV$‘|ŒNäIX^òˇ–G+BŒSX3–¤Ö.l7Šx¡«]‰­° +ìnVC-÷¾x²Ôñ^}Ÿ-pׯ‡&oÓL H†Y‘aœZ¢ÃlàùH:¤„p1†Ð©¼ Zwä«Ù+¾ü¥2/yˆ§CŒÛ8*2qe5»\TnQ7Ö¹§=€¹´Øý‘/3.»áüÞ\ ˆWÿû§wÐ ´±‡—Áê~ –|z4+[6;´.2Iüä NöhR%Õ‚_r˜ð›J¡>J±ë¥{éhÉ6Íð•ÊÖNî)A3h—rnÊ¿}ͻߧ4w̪í4Üj!Þˆy +RßÀ¾Ú+ˆ•¹H]ºP?…vT4†G¦«ØžkÜ•ŠRR,¶Ú:äŠÎÁÉ”K/íbuëŠ7ëCc®˜ +'ž=Ïùñ$€Î5„ÛW¿xqtŽ¥¶ñ)sŸ('e5ñ»Ahn„‰­£9;}s)%«e| ¿OO¡îÕj¶²æÈ¥zøè©u_CÕ¾úú«qFåvðŒ*DÊi`d|â-sÁhC˜±¯`f™÷<Š&wœ'p†Õ²†*-²‹w4G§ôžú+¦)Êâ»Ì¡±äW¿{#³]gÎ#«B([eÔ¾ièg†w£Ö&/d†Š7¨úcÙ!`ƒUÚÿ|,G!ü7>)Âs )R¼­Ê.¦i&¬áóOT[JáFñtÿö žçó¨Z޾äÔñªÎò•Á(°;Tâ®æYl}릘‡/ö€e~ý¢|s¨z+2Ô×óÀ”–p$ï$8õ B}êIÊjÏέ’Ì„šû“¥+Û·µêóêBÍ‹Žl€ýñ~¶Þø…îeˆ"ÍDÅ®x¬$zœ 4l¾kÕ`Êe3ûB¶^óó»'˜“¾BÆH +Γ RåG¯ \}Š–p¬;N˜2á; 5ÃøÐ¼æß&~‡e¥®Ï4"Ýáç ”‹ô—°}¦~]Ù¢ Á„þJPh˜ÜpV‹m Õ¯‰ØIrõ"îO?²©èm ad ‚àrÃâ}k«£Ïú“Áp +endstream +endobj +602 0 obj +<< /D (subsection.2.1) /S /GoTo >> +endobj +603 0 obj +<< /A 721 0 R /Next 567 0 R /Parent 99 0 R /Prev 566 0 R /Title 722 0 R >> +endobj +604 0 obj + +endobj +605 0 obj +<< /D (subsection.2.3) /S /GoTo >> +endobj +606 0 obj + +endobj +607 0 obj +<< /D (section.3) /S /GoTo >> +endobj +608 0 obj +<< /A 723 0 R /Count -2 /First 724 0 R /Last 725 0 R /Next 726 0 R /Parent 6 0 R /Prev 568 0 R /Title 727 0 R >> +endobj +609 0 obj + +endobj +610 0 obj +<< /D (subsection.8.1) /S /GoTo >> +endobj +611 0 obj +<< /A 728 0 R /Next 572 0 R /Parent 102 0 R /Prev 571 0 R /Title 729 0 R >> +endobj +612 0 obj + +endobj +613 0 obj +<< /D (subsection.8.3) /S /GoTo >> +endobj +614 0 obj + +endobj +615 0 obj +<< /D (section.7) /S /GoTo >> +endobj +616 0 obj +<< /A 730 0 R /Count -4 /First 731 0 R /Last 732 0 R /Next 573 0 R /Parent 6 0 R /Prev 726 0 R /Title 733 0 R >> +endobj +617 0 obj + +endobj +618 0 obj +<< /Ascent 686 /CapHeight 704 /CharSet (/equal/uni2209/uni2260) /Descent -177 /Flags 4 /FontBBox [ -400 -243 1032 871 ] /FontFile 734 0 R /FontName /UZJQXT+txmiaX /ItalicAngle 0 /StemV 65 /Type /FontDescriptor /XHeight 450 >> +endobj +619 0 obj +<< /Filter /FlateDecode /Length 844 >> +stream +xÚmUËnÛ:Üë+ØE€táš=‹À€%Š@mŠ&¸èÖ‘˜\±dÈ2pó÷—sŽ,µE6ކç1ލ›O?7ûvxöóEŠŸþ<\ÆÆoªo‡Stsc‡ærôýôÝûÖ·×ÕóWñcšG?‰ÛêÞÞ÷Ýô9$ß÷ÍÛ¥õ׬“JÿÚõk +æˆÛ'ÿk3ýwì¿6Ï—îmêúDòS7½…¤×EÅŸ  ¢üxî†þ«P_¤”¨û¶ŽØÆ9ÚÎTÄöJî¥ëÛqæ#žÁ.RZ´]3ÍOô߃(~|?Oþxß¿ ÑÝØþ ‹çi|'ŽŸ£íÃØú±ë_ÅíŸÔÂÒãåtzó !d´Û‰Ö¿„ŽaÿßG/¶îqÉyz?y¡éY1¯fhýùthüxè_}t'åNÜ9·‹|ßþµ¦3.y~ù=W*ü™Âì!Î Ø' +Ä{r%⚀R@¡‡â’2€Å%•€eÀåB¬yl•@W(#Œ €ICl@Fë<€~¦$ £<ÖáÏæ&±VÌVÍc”&jm°X@æ)’²ý +ÖÌ04«P#3Gf¾N7&Çô|è3r»€1) Y¡H… W@§XéÄ¡Àä2^ÀD°L¦+ˆÌçQº+Xï!F!uE*KLuèçHê¬NÉ W'¤êêŒæßÃNY³'èÄ ÇØŒ9†02aW µL9&9Šì£Ø(±æž%ÅÜÓÂ@š{Z誹§#œ{VصÎ8¦œÙk8F½Hæ¸j¶'Ín!hâ!µCìØgˆ¼ÖW)Ùl±IE.3z]ÇlcÖgìÕwEÚ˜œçá> +endobj +622 0 obj +<< /Filter /FlateDecode /Length 590 >> +stream +xÚ…TËjã@¼ë+fç xFoc°^`Ø<ˆÍ²W[;[zü÷Û5²l¾“ÍßåA¶}YÉç}ÿñ¼ñÍÃPž)79Êve&úLFÇì»c¦.ú#Û®¬«'&9ç¤U× Ù‹›P¶˜¤˪hojÙÚ a±¢Ìû[¦žù…ÜBñöÚõò²©Žµ±\²Å;v}{UºŒÅk[ȶ¬NlþH"m‡¦9KbÜX­X!t7ùô²¿H¶øÁ;{wm$³T.F­y]È®Ùç²ÝW'i,9_±e–­ Y_΄3–Ž×&.÷ñ°©Ž€ñz<)âŒO"J„@X`b'¤GØnÛ.D¸bÓ L×èj0ˆr××`×yÖfJ›‡Î¾­AÈñÁô×÷ò5ºûÀø.‰* Äšf# @Uhßòk2Æò&£ò}{ó”óHY„©¸Ñ[*Ž\ÄÑèÚq<Æ1âDÅÊÁ•oä8ÅbŒSÄ–Št +wô÷;z°=œHç0ωuŽ^N¢ó yª}È3«×è|ßѳù£®pïS|â$úmÈSí9æ B­ýBu?·0sèŽq|s^9o[w_Œ|h[ÚµšjðéÓŠÜ··©T©ŸZûé_Ùkfü5ã_ö +endstream +endobj +623 0 obj +[ 720 566 492 715 719 304 270 678 553 848 714 732 540 732 601 506 578 684 637 923 681 594 618 535 524 431 538 443 336 501 563 307 288 519 292 863 574 494 527 543 388 400 351 570 438 741 515 ] +endobj +624 0 obj +<< /Ascent 441 /CapHeight 660 /CharSet (/R) /Descent 0 /Flags 4 /FontBBox [ -45 -187 2238 794 ] /FontFile 736 0 R /FontName /JESRHI+txsyb /ItalicAngle 0 /StemV 74 /Type /FontDescriptor /XHeight 441 >> +endobj +625 0 obj +<< /Filter /FlateDecode /Length 713 >> +stream +xÚmTMoÛ0 ½ûWh‡í!$;–Sü ä°µhŠa×ÄV:‰Ø°üûé‘v—=$ Ÿ©GŠæÝ·—í,®Ú½ùR¼Ú¾½t¥¥ßwgïî.kËËÉ6Ãk+[M§ý“xéÚrkqŸn²MS޼iÊ㥲ëkRbßëæ÷ˆû7ûk6üé¯ûÙþR‡º™Ipßêáè8_ ‡‰O˜ Ÿ¶ëë¶yêQJ逼©Òö„zo>êóIÙ¡nªn#öæ)-ªºFþË“k‚·×~°§Msh½ÕJÌ_Ýa?tWRøàÍŸ»Êvuó.î?)s'ÛËù|´P!¤·^‹Ê\BWûÝÉŠùW~PÞ®g+4ùŠU•meûó®´Ý®y·ÞJʵXÅÚ³Mõß™Cö‡[®TîOë0Z;@ð 0@`ÁŒ@À#°¼É‘ÈÄ‘q€Â-ŠoÉÁPÈ¡(Gœ, ‡Z2°H89€À²@¤š“F1(Õ¤4N±oHªÇŸkÉÁðâSˆZpÁqR:Û[…(.¤ât€°„éJ rΑ„ô S¿ƒ`êù{×¹N‘ ØdÒ÷©s\°É'?'?.&¿àÉÑWw=œüñÌä§ä“p­¹3‹ñLûìO±š¹5i®ÏuÔµ„ú숰¹Ý1æÀ×lg°y`â6kÊ g=9ÅR­*%> +endobj +628 0 obj +<< /Filter /FlateDecode /Length 558 >> +stream +xÚm”Koâ0…÷ùž]P'!¡BHyJ,¦­ +Í’  œ(©üûñ±h+Xß=¾7>×&¿Þ·³°¨4sž9û ¶ê›œfñï}mM&I•÷’Ý+QAÅ8Û¾°÷¦Ê·Ô±i¼I6²ìžTòFæç¾ 1ëqRD§RÞS°›îèï¬û¤ÏvvèËsWÊGî®ìÎ*çÑ4Sû¦1]ò‡š¶¬ä ³Ÿ9çJHeWôÐZóÁ›ÎŽ¥,šÁ ;Àše V”y7DzÌ/j3P¼½¶]6òXY«›¨É¶k®Úá“5k +jJybÓoÎÔ̶¯ë3ÁãÖzÍ +:ªªÞ_÷bóG ÞRvך˜Ð±m\åUAm½Ï©ÙËY+Î×l•ek‹dñc.0‡ã 5°ÕÀ¹ÖJp!xj!, øFÐ!„‚ŸB3Å‘AˆH ¾_„%„ä‹*ŽÅMPFGKŽ;ZÌÿíkåèf‚eŽ­9[€…ÑS°cô%Ø5ÌÁža]»0ùØ7:úsÃ6xi8‡†pdX¯àÄpN »à̬Ÿîà9îà»æþ±–;ø÷{fßl;K9<ùÜÄáÛ÷Þ|qáÉwî1¼B®‡=Ãðš}­/ k=6 _Ápdý {©9Óœ€ï›_}’úäpùðPn×:ï›FÝxýšôMÆ.%Ý\]Õ¨Ò?ýRÇÿDo™õ[×B. +endstream +endobj +629 0 obj +[ 808 945 853 853 853 853 853 853 1323 ] +endobj +630 0 obj +<< /Ascent 438 /CapHeight 438 /CharSet (/greater/less/uni22B2) /Descent -9 /Flags 4 /FontBBox [ -342 -214 906 786 ] /FontFile 738 0 R /FontName /IIOJER+NewTXMI /ItalicAngle -15 /StemV 82 /Type /FontDescriptor /XHeight 400 >> +endobj +631 0 obj +<< /Filter /FlateDecode /Length 673 >> +stream +xÚmTMkã0½ûWh…öF’¿KÈv 9l[š°ôšØJרÆqXúïWoG¥ô3óôFzó&Òݯ×ÍLÕÝ^ÏüGÎÞô¹» •žå¿w½wwWtÕå¤ÛñYëZ×Óêù‰½]µÑ#»ÏןmÆC^·ÕñRë‰õ3)ÓMë(8‡ÝoõûìYÿÛ¾ÿ^Ïö—æ86팃½mÆ£aýL`eßPFeôpnºö‰‰GιVmw'tröæW5l>é;4m=\%±=zB²º©ÆkFßêd,Añæó<êÓº=tÞbÁæofñ<Ÿ¤òÁ›¿ µšöƒÝÓfÖ6—¾?jè`Ü[.Y­fKãÁóî¤Ùüç6o¤íg¯™¤\XeUWës¿«ô°k?´·à|Ée¹ôt[[©-Ù&®o¸<ÆÇ7uH+ DVˆKó‘¼È P"B‚!"©ù‰¹0„ˆPLàª3”C¦QÆ,b»HN`IÚ"œû„œÌXÝÊN3€ùM’©4 šH¨?Ó›T¥¾R¨Hj-Ë`óT§9 +êÓ<’2“PØO¡GE arÛ&÷«¿»á:(Î3òVq‘¢%.)ÎBÄ™…BœÛÊxA1Ù*8é1c4±°ñ +±¤X yÚaÿÀ¹µÂAærôä.ÇYAáòùÊ K /]N³O\~¸Þb«ƒ}‰“/œÂ8A¾rƒD¿Iêôà¼4¸­‡”‡ä«„idcšfiGXYï%ÎVÂâà+ò,âðE‘>_Â?Û˜Flÿ!ÚTjo¼WôGá¿N¦ŒKˆGãvÁ«Ë0˜»O/ ÝhÜå¦Õ·Ç§ïzTÑ^­é¥DöRzÿxâ +endstream +endobj +632 0 obj +[ 418 418 636 441 636 ] +endobj +633 0 obj +<< /CreationDate (D:20250605072812Z00'00') /ModDate (D:20250605072812Z00'00') /Producer (macOS Version 15.4 \(Build 24E248\) Quartz PDFContext) >> +endobj +634 0 obj +[ /ICCBased 739 0 R ] +endobj +635 0 obj +<< /BaseFont /AAAAAC+Calibri-Light /FirstChar 33 /FontDescriptor 740 0 R /LastChar 42 /Subtype /TrueType /ToUnicode 741 0 R /Type /Font /Widths [ 507 507 507 507 507 507 507 507 507 507 ] >> +endobj +636 0 obj +<< /BaseFont /AAAAAE+Calibri-Bold /FirstChar 33 /FontDescriptor 742 0 R /LastChar 44 /Subtype /TrueType /ToUnicode 743 0 R /Type /Font /Widths [ 686 537 503 355 474 488 537 347 226 532 538 246 ] >> +endobj +637 0 obj +<< /BitsPerComponent 8 /ColorSpace 634 0 R /Filter /FlateDecode /Height 214 /Interpolate true /SMask 744 0 R /Subtype /Image /Type /XObject /Width 214 /Length 2977 >> +stream +xíÛqä6E7¤ B)8É[þð—¿œ„«œÊ*€ÍÈÆ (l’>Ð×q©TCrÛ‡}æhýíÿ¡ +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + @u +¼}|V7&4Œoï?ßÞ!p˜x×7Q—o¿ÿ¬ohŒhø¹ŒxˆhW7IoÁÂêÇ€P`²`Ÿ1â"^Û' ƈk Ìã üë¯ß0â1b^×,½ÿûç@vÄuE¨÷Ñø¼çüïïï?þy²#î=èõÌ/X°ÃÏý„4XÏIß + bÄ}ǽžÙÅì!Ĉë‰N÷#,Ò`÷Óg‚Å,Ĉ‹¨û¬-#î>èõLpÓ‚E¬g´Œ¤?6-Xˆ÷÷zf´gÁq=1êx$ i°c˜ZA,Ĉ †©ã®ÓŒwú¦öÒ‚E¬aÌŒ¡'^Z° #î)ú5ÌåˆcÄ5DªË1´`‘»”‚IQà  1â"Áê²ÓãŒw @ÙI²`‘ËŽœÞûPà” 1â>(;‹³Œ—Wg½_°`‘;„é+pÁ‚±qÈ:ëîšcÄaPj:—-X¤ÁRã§ßÖ¸lÁ‚@Œ¸uJÿŽcÄ¥¢ÖM¿7-X¤Ánda"f +Ü´`A Fl¸n:ºoÁq70ØO$‹‹4h? zlW,,ĈÛåÁ~ä¹,#¶]=f´`‘;‡)(Ñ‚±Aø:è"¯cÄ a9…ì,Ò å\è«E²[° #n‘ +Ë1kX0FlÁ¦ûR²`‘›–ˆÁ«* dÁ‚@ŒX5ˆM7®gÁqÓ`Ø ^Õ‚E´™½´¥€ª 1â¶Ø°­¶cÄ6ql´ i°Q¡¶’,Ĉ•BÙh³6Œ7Їö°Í,X¤AíyÑ~+ +˜Y° #n…íqZZ0F¬ÍæÚ7¶`‘›“‹gWÀØ‚qö€6× ½cÄÍA¢7à",Ò Þìh¹~ŠX° #®Ÿ½–²`ŒX/¦ µ\ЂElH´âC}Fíg/¿?]ü÷Ï?<ö¿ýõ›O½èùã÷Ÿª”†¼ñ%Ý#ˆMÿ$Ð1ÿñ㟦ՓƒÿøTÅÏ7îVÎq¿NæìS_Ü£KƒM«·¼ƒt³Ÿ`Ûï"ŠesHM^Û+hŠß” ?&ÿBûÐï1ZÄ: +à7Aø>92GÂr ü”·Â|ׇaoâ²¥ôUJ—m¦€3ÁÒø‰Lè twG)eè×@¿u:*x&dBww¡ Eº˜ñ+·ðK@WiX!DµÓ²ÛÞxâUU Š4îL­ü<Á‘É„E€ÉÛiUÛ^‘î‡@˜ƒR­5ŠŸÈ„TiJñs³ßyßQMÕ%‘ô6/…LÈù& öñÛ n+'Ù ÛÃs¿Ç¿*«.gá@Èä¿¿ßæ…¶¶½ÇiB~îôÒ\Õå8~þaYH•æ'JŸmzÛ{Å!d%®5-üjù²Áq¨Î¾¯A¢÷©?“ïØŸFãýBª4z\ly@ü<ÒTi¢ú¶^·½ÇÓ&dUÀ҃ߔ )š— +ÛÞ.jÎÇ“Þæ;ò*M:ke¹ºÀ¯ŽïØoRa|2@H•& f{Äû·7ŽråÝźûtOCÎ_V ƯrJ /@H•æ2f{œñcá—ä›*ÍBwγíMB·q‘*ÍÞâϺõ ømvàTpd6È1Q§^³í=Zê-@xŠ7ñfðK±uøZ€*,}8ï;šýÃŒ¨¿1@È9M]¸ã§ž1:`ƒèzùbƪKÖ»ã!O_=AfÛ›ºÆ€p/RuÙÀEçTXR¥ 4²íÕam·Õ!da´ðëÿOÎø ó'æ¬ív ¶J~»pX]¹Jö׊²×ý ¸A¿×XؾcÛ^jζ˜¥{ ˾«4nÑ;ýðû4%®úL8ü‰G Â^õ铃ó©PªíïÅ´¤öò +ûëÁ…û£.žÑ´„@{Â^õè ìÛ‚ŠóN„uà+$Œ¯{ îž@áW)†¥ 1b©î±`oÇ,S(º6ˆ{1âB”¥ºÇ‚=„”S4˜_ O‡}tFø›S–êÐ[° Êìù9#NéÂ5+Fx²¾¹0b+¾^÷ãcáÒÂ:LŸÁˆ_“aòŽ¡ê0ñ 51GL0Kt2Tfƒ@÷UŽ$øÐ¿4Z&†p2b¾%¨Ù^ÃZ°ç¥àf燵`O`¨É`ÄfȉŽF¶`!5„åá€BâE Fl Ûf_Þ‚‡z²&0ñ¦DœTU`ÌG!k1bUÌ{åG{²&q½Kƒ×aby8¢‡Y¢åÁë0òp$‹Â%ê01„<Q@,Õd=ì°†¿b)˜ÂEáZ%ìØ›ö¡ïŸe9 5Ž(à¶Ñdq vÿ2¾¯Å¥4„Ó½À÷d6xÉ|ªø£8õ¹lì¦VKg¼B3{gæl¿9n'¸YpCG‹Ô·ü].*âÈÁˆ÷•ãJJ= +Y§>1ŸGr.ú<ÁˆED”½ÎÆf7¯ú–©o=Ç‚É#^‡#û™ßàŒÚ/‚»=É?ôOµ„A;ò4Tþr$;vQƒ>¸f ­9õâ`Ïá|³°#Ž˜ÉûÒ[°.š3~W³Š=„_c>”«ó†f„ÖB@µw±é¸O° L™¥ êàC©šEêËõˆÁ BŒX™ÀÇ=©OáO ‡.S9T”2¹_¨äºwTÚVãªB”RßZá¡Þ­„¯eÏrÆÇÎÉ›=uh§>1}íÂu0bÑ/‡7Pz2e WlyUj¾9~ñqÕdˆ µ³zU3.ŸB®x¶\ |¡!Fœ¹¸‘¬\<§¾ó¥æx`÷_‡©e\N7×Õ2æýIõׂS–]°‹ÎŒ_1ÊáœÞo3ûcéÚŒ¼ß'p±é¨,:y9üºË +¬.®…¸æO…Ðܱ`‘úê,—…™Þwd–‚‘öq¹“©O¡Ôœq²®©À¡£ÈÝ8×î;Œ8cPîXp©o­U€ðN2ôºÕ™í×S®öÌG!m¥>‚û…kŒXHzíÐg'æY3šô7/5_›æÞ§î$Ã`Ä{sþˆ…åŸ6Ôüfð„ñÆÒïñ:¨æÀ9õ•.5§çuöê51â³:‹÷Ùà'6¢©ƒ1wî©ÄRð²ì^á½8`ê[+ L¬ 1âµnÏ$,xäÔ'Ô;R¸öJް>âÜ9|ëÊ)ïŸksùZØX«ùÎt´?›N†ñý½¤Nº˜ÀÙPp²´^蚀0è¶øIÖBæÔ×W©9)Ãé‹{bÄg¥ôй›×å@÷{Æâê+)7!Ĉ_ɶ¸4tø-6”U:¥‚†î^vNFÌý›Òl¾æÕs·mœúØÊÍ{C8+É]|@½iÑòÜ ?_³é8 ÚÎ[bsG¤Åé…b¶E¾GGBÒŽf¦2•H.R_6…ãÂ5ë™´¬§ õ¥5ºzuº»Y +î ø|BêÛèö•„ìˆoËH(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€(€iþOu4Ù +endstream +endobj +638 0 obj +<< /Author (Yongji Wu\nYichuan Wang) /CreationDate (D:20250609221353Z00'00') /Creator (OmniGraffle 7.24.5) /ModDate (D:20250609221353Z00'00') /Producer (macOS Version 15.0.1 \(Build 24A348\) Quartz PDFContext) /Title (workflow.graffle) >> +endobj +639 0 obj +[ /ICCBased 745 0 R ] +endobj +640 0 obj +[ /ICCBased 746 0 R ] +endobj +641 0 obj +[ /ICCBased 747 0 R ] +endobj +642 0 obj +<< /BaseFont /AAAAAB+HelveticaNeue-Medium /Encoding /MacRomanEncoding /FirstChar 32 /FontDescriptor 748 0 R /LastChar 223 /Subtype /TrueType /Type /Font /Widths [ 278 0 0 0 0 0 0 0 278 278 0 0 0 0 278 0 0 556 556 0 556 556 0 0 0 0 0 0 0 0 0 0 0 667 704 0 722 0 0 759 722 278 0 0 574 0 722 760 667 760 0 648 593 722 0 0 0 0 0 0 0 0 0 0 0 556 0 556 611 556 315 593 574 241 0 0 241 0 574 593 611 0 352 519 333 574 519 778 537 519 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 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 ] >> +endobj +643 0 obj +<< /BaseFont /AAAAAC+HelveticaNeue /Encoding /MacRomanEncoding /FirstChar 32 /FontDescriptor 749 0 R /LastChar 121 /Subtype /TrueType /Type /Font /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 648 685 722 704 611 0 759 0 0 0 0 0 0 0 0 648 760 685 648 0 0 0 0 0 0 0 0 0 0 0 0 0 537 593 537 593 537 0 574 556 222 0 0 0 853 556 574 593 0 333 500 315 556 500 0 518 500 ] >> +endobj +644 0 obj +<< /BaseFont /AAAAAD+HelveticaNeue-Bold /Encoding /MacRomanEncoding /FirstChar 32 /FontDescriptor 750 0 R /LastChar 116 /Subtype /TrueType /Type /Font /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 556 556 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 649 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 574 0 0 0 0 0 0 0 0 0 0 611 0 0 0 352 ] >> +endobj +645 0 obj +<< /BitsPerComponent 8 /ColorSpace 640 0 R /Filter /FlateDecode /Height 587 /Intent /Perceptual /Interpolate true /SMask 751 0 R /Subtype /Image /Type /XObject /Width 512 /Length 3955 >> +stream +xíÐ  ÷Om7ˆ@aÀ€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€þÂà +endstream +endobj +646 0 obj +<< /BitsPerComponent 8 /ColorSpace 640 0 R /Filter /FlateDecode /Height 512 /Intent /Perceptual /Interpolate true /SMask 752 0 R /Subtype /Image /Type /XObject /Width 512 /Length 13152 >> +stream +xíû³eeyç{Ÿ>§o§otÓ‡¦‘¾€\š¦»i¾}å"!€ÁØÐt äTpœT&±‚b3àLŒÆ &fLi*¦jf*sI+Q'3ΈÁF±PËLþ“y+gfמµ×Úçû^×ZÏùPü°Ö»Ÿ÷yŸ÷³žïw^{Ÿ}–,á?@€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€<Ì,[¹eûþ½‡Î¾í·ŽßûÉS¼Èÿ€€NÎNÔ{ݲýF'sS t˜Z:³ãê“ÇÞõ ­Î ޽ë¹íW˜Z:½Œ-.L`ùеûO|hBÃð `ŒÀ“^±jýÂî@„iËW®»ùÎëm¶,Hà¦;Ÿv?û™¶767‰€{ì³ÿÄ¿X°O€LpÿðçAÐ$‹4ýš{æo²«Ù Ø~ÕqÓ&Çæê Ì,[ž¢Fƒ€Uîíàé>To’†GÝG=­¶4û‚to»Á°Ñ±µZîsþz‡ X%°çࣵÁ a‡oÿm«ý̾ À¡Ûþ•a£ckµŽßû¼Þ!DBV 8+¨µ °ÚÌì ð%`ØèØZ-ß!°J Ö"4LÀj'³/@À—€a£ckµ|;„x@À*Z‹`Ð0«Ì¾ _†Ž­Õðíâ!«j-‚Aìv2û‚| 6:¶VKÀ·Cˆ‡¬¨µ °ÚÉì ð%`ØèØZ-ß!°J Ö"4LÀj'³/@À—€a£ckµ|;„x@À*Z‹`Ð0«Ì¾ _†Ž­Õðíâ!«j-‚Aìv2û‚| 6:¶VKÀ·Cˆ‡¬¨µ °ÚÉì ð%`ØèØZ-ß!°J Ö"4LÀj'³/@À—€a£ckµ|;„x@À*Z‹`Ð0«Ì¾ _†Ž­Õðíâ!«j-‚Aìv2û‚| 6:¶VKÀ·CúÿžCg7m¹vÙŠ5ƒÁ –ƒ˜@Àµk×B{=õÀ }ëÿ½ +žÀ—Lðj~½çÙ ›Þnòª±©Vl˜»Â5U¿TàUm+TY´E^íÑ£à›ïúØìš¹Á²´I®©\kõH^¥š¼dlj¯öèKð-w?3»ö¢ »æ%Xµz“Õ[@0&ö”@_,]¯óïi+ö¨l«·€]JMB@÷Õ^DbþIº‚$ 0y Xp×#Ð W‹Äü5gÇ·cïÐqà”—œ€h­ÝÃü“÷ $`ì°à~ 0F ûÆ®TˆùkËmÇÒ- GØ)5 Å];ƒù'é’0s &ÀÄž踷/XæßÓÆ3V¶[€±‹Âv$° Áv9ó_ðúPŒ€[@1V,Ô]¶÷ɵaþi!Êèû-`¸ ÉÛÙW1ÿEÒŸ½Ûf¯o½£MÁ‘:ëð +‹1ÿ»®yäµWÿÇ_ð?&8óÆ«›®Û&®þÞÂöˬþ˜`³Ý| óŸàZ¼”À"¼ô×Ǩ<Œ@7M¾©*Ì?¡¿‘jA‹íæ!Ìê/&§íà8æ¿ _œÀ¢ºô×Ǩ<Œ@}¾¶$Ì?¹³‘P$°xna¬þ¨5Û® bþ¢S–‰€»Ìí³ÿvp}ŒÊÃtÍêÇëÁü3yi½,†[@˜‡0«¿Æý¶S#ÿdþ›ÃðòQO/#xAæoaBcV tÊí+Å`þ :… ؾô×Ǩ<Œ@År»sŠùv6– ¾„y³úK ;†?Z æ/za­°z è¯QyQ×íÈ1æßЧ±¨“·€0aV tÄó‡e`þ^.Dp‹ìÝúëcTF`h¼]8Àü[t3– `ìæ!Ìê/.Øþ| ˜€ÿ0¥u–nýõ1*#ÐÿÇü[÷1 +&`ææ!Ìê/.ø?æìÁOx©w‚ß Ø²íÆ2: )SzM L_-[±Æ—?ù÷Îß(xAaÿ +X½vsúŠ”ø¾(ÓWƒÁ”(ÌA'! §n+V®/£S/‘l€@û +ó侀Q¶HÀ÷°vÃÖêÔ€û±…®õÏüE!¬×¼Þ Øvåñ®éç´A k}å~4êµ®)"w P~/À=;=|ûowM§6Ü]t­¯Dí”[ÀŽ«O•©[?\lÊ´–NÕ€¨Ùtî°åÈá&\²ãÀÉû_(#Rü¿é*/ÓZ:@]8DBÀÇ~ùÖÁgž^uÑÿ÷í(³k/Ú}à‘2ò®¢ë”H†—>ëÎʆ¢Ù| <ö?û•¿úO·¾ô…½‡ßWìEõºN‰´A Ò™NuV¾ª!ÆdÒ ’V×)‘6(]£³2¦e¶_ñr Πë”H‚[Åk¢ÎÊW,ÄCÀ/e¥ ÖuJ¤ iû§)›Îʘ–Ù| 4‰¨À¸®S"m(ÐTn •¯Xˆ‡€1e$Y»Š®S"m¨mƒäƒ:+cZf;ð%\}zB]§DÚ  ÷FL¤ÎÊW,ÄCÀ¡EÎÕuJ¤ ‘ #N×YÓ2Û€/QS9Âtiƒ@Ž.Ï©³ò ñ0F`\>ÅFtiƒ@™ÖÒYÓ2Û€/2’¬]E×)‘6Ô¶AòA•¯Xˆ‡€1ÉÕ§'ÔuJ¤ zoÄDꬌi™í@À—@ŒÐ"çê:%ÒȆ§ë¬|ÅB<Œ5•#L×)‘6äè¢ñœ:+cZf;ð%0.Ÿb#ºN‰´A Lké¬|ÅB<Œ(#ÉÚUtiƒ@m$ÔYÓ2Û€/äêÓê:%Ò½7b"uV¾b!ÆÄ-r®®S"mˆlqºÎʘ–Ù| ˆšÊ¦ë”HrtÑxN•¯Xˆ‡€1ãò)6¢ë”HÊ´–Îʘ–Ù| ”‘dí*ºN‰´A ¶ ’ê¬|ÅB<ŒH®>=¡®S"mÐ{#&RgeLËl^Îýì''îûTŒÖbæê:%Ò˜nÑçꬼÄB0løÕ¿ûö·ß;{ñæy¥,_¹îm—:rÇGt‰%‰ÔuJ¤ IÚfÁ$:+rfÐ yþÙ©ééqLM-ݹïÅ•0`¼FlHØ<Ré uÕ nyáS“Õ±óNPVÚ—&W«ö¤íŸ¦l:7Šf  üÚËß›^±b²:¦–NßtçÓMÊJ;>¹^µG mÿ4eÓ¹‰Â! ì~âqEÛ®<Þ¤¬´ãJ1ÄX"¶š²éÄ ˆš-@@$pÁ•W(ÒX½îâ&e¥WŠ!Æ´ýÓ”M'& +‡0 0½j¥"¥ÓËš”•v\)†KÒöOS6˜Q³ˆt]4)+í¸^‘6¤íŸ¦l:+Q8„AÀ]MÊJ;®×C¤ iû§)›ÎÊ€¨ÙDº.š”•v\¯‡HÒöOS6•( `€€®‹&e¥×ë!Ò´ýÓ”Mge@Ôl"]MÊJ;®×C¤ iû§)›ÎJa0@@×E“²ÒŽëõiƒ@Úþiʦ³2 j¶‘€®‹&e¥×ë!Ò´ýÓ”Mg% +‡0  ë¢IYiÇõzˆ´A mÿ4eÓY5[€€H@×E“²ÒŽëõiƒ@Úþiʦ³…C ÐuѤ¬´ãz=DÚ ¶š²é¬ ˆš-@@$ ë¢IYiÇõzˆ´A mÿ4eÓY‰Â! èºhRVÚq½"mHÛ?MÙtVDÍ ÐuѤ¬´ãz=DÚ ¶š²é¬Dát]4)+í¸^‘6¤íŸ¦l:+¢f  èºhRVÚq½"mHÛ?MÙtV¢pƒ€º.š”•v\¯‡HÒöOS6•Q³ˆt]4)+í¸^‘6¤íŸ¦l:+Q8„AÀ]MÊJ;®×C¤ iû§)›ÎÊ€¨ÙDº.š”•v\¯‡HÒöOS6•(œÈ°3¯Ÿ¿õË_ÜýÄã—?¶î²Ë–¯[753£éþØëÆ]×ì{ò§Ï¿YÿpºKån¼f§ø—d•Ê +dýå—;8Ñ­/}á‘ÿp¸b™·¯ëž|ÿü¾rpóÝE¦z”Ë1Ó¤¬´ãz=DÚ ¶š²é¬|…éîçoÿƒó¶£7–.ÕKJ93;{ò Ÿóª¼6Ø%q©’—7žÐáºä–›Žýþ§Ïýì'µ•¤<ùùÏÖî+7ßjóÕ³|ýúqÚã#3ËV5)+íøøÒŒØ&¶š²é }µ)Æ;ã:øÑß™Ý|‘^IÞÈÁ òà¦/ ò9–}ÕÜܧ?rö­7DìaÎl'í+š›oIYë¹è†ëÇ× ¬¿pG“²ÒŽ×¬Íiiû§)›ŽÐWžJüí_ýãµÛ¶ê5”‰œY½úáó?Pêq#jB.Sùš­—Þþ'_¯*~DÙW 7ß +s×sð™§•KvÕÞûš”•v\)†KÒöOS6˜¯B'Ç»ûw>rZ_½pä¾§>8¹þ¦WÝ3ÿÂ¥Ž/wõé_Kþ8È=ó_h|$˜[ϦñÜõ¸I­Þ²e|ƒ£#+Wm8qßï6)+íøèº/iû§)›N²I‰ã§øý w_«/]>Ò½°/7eÃÎå«_Ñá=ýÊÿ +ÛBí,q_ÁÜj0X žûþóœ™]5Îv~déôò'?Ü$«äãMe0n•@òªM¨Ó› F¯—úÞw×nߦ¯ÛJ¤{†ãµ©ap‹* Üƒµ‡þûw†…ELpÂÑuƒ¹ù–W¦žû¿ù_.¸êÊÑ Î¯^wñÁS¿Q+¨Lƒã50b›@¦Fª¤Õú*´6Þ=WwŸêÔm+Ò=Ê®­ÁÁ¶ +®]×½ê_µùkD”$ véÚÁÈåûå[§^úüU½{óþÝ»½[¶ïß{èìÉû_¨è(÷iíÖ4L wGÍç×FêÈMw¥;þØgH#ø9Æ0CG.¼vW’÷ôíÄ÷‰’¡•zÊH²v}¿DÚ PÛÉuVŠ*'Çtù ß +‡}zrò^š^­äé©ÃÞT­>®oDÏÙJ=ÉÕ§'Ô÷K¤ zoÄDê¬bÔêæºzêkµ¹lÍš‡_ýû°ý¶[yÓê~Øv†³š2§d=_·i$a1B‹œÛ´;Æ­ˆlqºN/FGîD?ç_¿÷ÁàÔ—þ0x³õ9Ûuð#Ÿé;Fç5±•zDMåÓ÷K¤ 9ºh<§ÎÊKž•`÷¾úB-FºŸücÌßíºÅâ'/í.Aå¢xNN>úªWÚààÑ'/1>q\>ÅF&ï‘Wí(ÓZ:·q9ˆ#î»}:ôõuv&tgþÁ}†(êÒwblå¦M1ß¡ïaˆ"ëA+õ”‘dí*ú~‰´A ¶ ’ꬂåì¾ØM_eyÉMGnúÔóïþηÎþôõà¥ËOÖ¿ÀÁ`P›Cñà·ÿÚaqpÈ_÷ò±Ï|:`Ñù)uùêÇ‚—ðšX¿vݨWÚÉÁÉÕ§'¬Ûc– 轩œ, ¯ºoõÔWq‘ëvl¿ë6!a—_Rwäÿ£wˆ(u¹Šsb4ƒ×±¾WÚààVê‰Zä\}¿DÚ Ù0âtU˜TÝ÷ù{}¥óæ7–ÿNû°­ÕÎRyFû¿[Ýr¿”¤®¸d‰»îrÔ–½à ¾Ê‚©’´R¨©aú~‰´A GçÔY…ÉÖý1} ÷m¯Íß!R7›ÂÿÝr¼öŠ×—iÜúG_ +»Žê¾–, Ëï;«•zÆåSlDß/‘6”i-•¯BçãÝŸ©Ò—èïcŸ!u³‰üß­{×7¾®.ºdÉžþφ¥zèKx¥ n¥ž2’¬]Eß/‘6Ô¶AòAU˜T/=q\\½§¶D§f‰›uH%aÙ[Ž×ÝzòDغb~–ßwV+õ$WŸžPß/‘6轩³òUè|¼þåÍ¿÷ɰ%:5Kå™ÔÿoúÝOˆëº/ß Ã%æwaaù}gµROŒÐ"çêû%ÒȆ§ë¬|:¿üé墨2ÜG=ÖèÔ,•gRÿw +×]±á‚0\b~–ßwV+õˆšÊ¦ï—HrtÑxN•¯Bçã§ffÄ%}óÇaKtj–¸Ù´Ï:qݥ˖…áó»°°ü¾³Z©g\>ÅFôýiƒ@™ÖÒYù*t>>wþ°ªòÍR÷›ôçÿGò#q]ü?æÒ—‘dí*âõ%Ì Ú6H>¨ã +NîüaUå›ÕÊ~ü[žÿ4‚Ox­“«OOظ=^0J@ï˜H^˜Žrç«*߬VöËû¿°'¼Ö1B‹œ;aƒ¼d’@dÈÓuta:Ê?¬ª|³ZÙï–ÇÄuùügÌ¥5•#L¼¾„™!£‹Æsê¸Â„“;XUùf•ßï]þ5}Q~ÿ+æÒ˧؈~‰‰´A Lké¬Â„“;XUùf©ûMôþ¯ï÷?ÜöÇ/…í]ÝŸÿyàÅÊÕùiƒ@Ž.Ï©³²áa»Ðgåæ9Z‰3¯ï›š^zæWG3èÇ%÷¥TÕJ=ãò)6¢ï—HÊ´–ÎJQåxLîüã+¶;Rl¿î±×7¿¹ÂÞvì–`8Åö%VX²÷µTî¹Ù¶ÛoÝ´åÚmW»þèûËhst}¿DÚ 0zõóë¬DaVÂrç¯,×úiÖýºßórõtŸöÑßð­Çý!ž`>£y&/á5qr £¯z¥­ÿêß}û¢®Í6¼þÂGîøH>UŽg¯ÛÆ{ Ljΰ" ñ4wþa§Ï¿|Ý“ïßxÍÎéU+õEç#Ý”»®Ù÷ä\’a°ߥ‹Å¯š›‹ùðzaÜ|g¨çÁ¿ùæ„o/™Y>{è¶ßÌ!ÉÚœú~‰´A ¶ ’ê¬|:Ÿ;ÿü*'?ÿÙ™ÙY}­¦H—ää>¶Sßý6ÕiüàÇøûï¿Ð¯ìû~ñÓu—í˜|-f×Ìø•ßK.ÉÚ„“+áU{jÛ ù ÎM×Îhdîün-gþîëtô…ˆ bn $oée÷NAÌÿ²^øèÕÏwœ»ž#Ï?«,±ó&—dmB¥b,¨mƒäƒ:±0-çÎïžØ$ùɴΙի>ÿƒÜû]1÷ñ_ýJØv†³ô +‡S²ä®ç⃔%6lz{rIÖ&TŠ!ÆÚ6H>¨ “sîü¾„¹ï©æÞ¯^Ldä5gÛËè,½†ÑYùŽs׳|½ô½åî]€ä’¬M¨ï—HjÛ ù Î*L˹óoعS_BtoçÞ¯^LL䦽{ÎýüͰ½ŒÎÒk•ï8w=òÅArIÖ&Ô÷K¤ µm|Pg¦åÜùgfWéKè‘î™RîýêÅG®Ý¶õô¿¶‘Ê,½†ÊÄL§¹ëÑó'—dmB½"m¨mƒäƒ:«0!çΟüáÿ°àÜû.”éÀ™ÿCÿã»a»Ÿ¥9>7ÇHîzôüÉ%Y›P¯‡HjÛ ù Î*LŹó»üëKxEæÞ¯W1¾Áî±OªŸüç9è„qó•»=rIÖ&Ôë!ÒÚ6H>¨³òUhßp¿´¥oÁ+2÷~½Šñ +~ûý÷}ë°ú›fé4eH;ž»=rIÖ&Ôë!ÒÚ6H>¨³ +Óoîü9>ÿ9_sîýêdôH÷9ÿøzÖn\¯¡vzòÁÜõèù“K²6¡^‘6Ô¶AòAU˜„sçwU¹_×’?­¡—øwÌ=Hºê¢9÷¾‘¿ä5áëÅNH’ð¥Üõèù“K²6¡^‘6Ô¶AòAU˜xs矯ÊÝÜ/mék)‘¹÷«Ô°`Ì`éR÷­žÇ>óé$òœ°å+LH’ð¥ár „-º`Úa@rIÖ&.ÇÁ"!PÛÉu˜¹u–8ËýÆ®û¥­ ¯Ý•ê¡ÃÌ^:πȩ™÷dë/¿|ë©î‰Ýs þ>¯M¹`½ZßÌañ¹ëÑó'—dmB½"m¨mƒäƒ:«nêÔ·ªí÷ÿÜ·øãssóÝZîzôüÉ%Y›P¯‡HjÛ ù ÎÊW¡óñ¹óûV•»üøÿ?z|!gåB{pZEÏŸ\’µ õzˆ´A ¶ ’ê¬*Osçˆå®Ç#?þäÌó—ÒƒsÐ*zþä’¬M¨×C¤ µm|Pg5´P¯ƒÜù½ŠqÁ¹ëñÈÿ9óü÷à´Šž?¹$kêõiƒ@m$ÔYù:múVÕ¡ýâÿAÎ\¦¯ô>I.ÉÚ„z=DÚ PÛÉuV¾N[F§¾Uuh¿ø?þÿÀ‹¢¢õ¾%Ò±1"ÃtV¾N‹ÿOfû8þÿãÿ“E²ˆ_4vqºÿWxðÄÿñü_Ì"‹ <2L‡ª¸ßxLîüã+NÉ]G~üÿÇÿuÁ,²ÈHc§ëP'ûjÓ«îWVÅ%}óÇMIR?ú“‰Å,]¶,lQ1¿ ë×ó®cÓ•…Ö´:ãV D6Œ8]§æ‡îû +Ä%Þýo…-¡ÏzðoÿZ,fÅÆ zÚÑH1¿ ë—ÿs›®¬(´È°¦Õ·J ²aÄé:½Q—Ó×]¶C\â¦O=¯§ ‹¼é“Ï‰Å¸ïØ [BÌïÂúåÿ\Ǧ++ +-2¬iuÆ­ˆlqºN/Ì/=q\\bË‘ÃaKè³.>tP,fÛ­'õ´£‘b~Ö/ÿç:6]YQh‘aM«3n•@dÈÓuz£.§ï~âq}‰»¾ñu=³oäö§z%{~ý ßüóñúýò®cÓ•…Ö´:ãV D6Œ8]§懷~ù‹úk.}Ûïþ}ØB“g=òÚ+îocé•Üþ'_žœ°éU}‰~ù?×±éÊŠB‹ kZq«"Fœ®Ókr¼Éãg^??5½T_eóþWOÎéûê#?zeó7è5LMO?úæk¾«ÌÇë«ôËÿ¹ŽMWVZdXÓêŒ[%Ù0ât^˜ºYîT髸H÷ƒú]þµàå*ÝcŸµÛ¶zàžuW’è§úBýòG€ëX{qE¡E†Õ.Í a‘ #N×êX‰<þÿV_e¹åð!÷qÿ替à~zwÝtý ßáºîàÄç>SÙ‚~:šgòqïüŸëX{AE¡E†Õ.Í a‘ #N×êX‰tšvvóEúBíFÎn¹ø}¿øie ú©^|ïüŸëX{qE¡E†Õ.Í a‘ #N×ê8yðc¿£/ÔnäágŸ¯_Ñ‹ïÿ;\Çñë+ +-2l|]FlˆlqºÎP÷ÀñH÷£ãºË.Ó×j+rÝŽí®Ôñúõ½ò>ú?×qüúŠB‹ _—Û"Fœ®3Ô=°6òޝ~E_«ÈÁà_ÿjmñú ^yýßqà:V.±(´È°Ê¢œš'Ù0ât£îM‘לyX_®|äµkª\×Ëî©ÿ;\ÇÑ«, +-2ltEŽȆ§ë$ulŠtO6íÝ£¯X2rnßu1oû·¬×Ü_ÿç:Ž^eQh‘a£+r¼D6Œ8]'9´¸˜÷ë½|#Àý‚Àé~?f_ù<{õýÿà Îp‡ZZdØp9 Ȇ§ë0+|úÐ÷¾ëÞfÕ×Íé¾Ùò=ÿó¿o§2qfv•R° «LìÝ©íë¨\ÄùQh‘az=DÚ Ù0âtUBƒ:}þåM×íÕ—Îéû<|þ ·¶ñšJµ.,á¢m¥2|•‹8# +-2L¯‡H"Fœ>55­à +þ{XMÖäž!ï:÷è’Á@Y=SÌÕï}O’gþ£{Ü÷Ô•j]Øè¬þ[½ŽÊEœ…¦×C¤ ‘ #N_9»QÁ従'‡G½ókÿNÿÃ"JbŒ{"þ£žµ@Ü¿&fV¯ž\† HûŽÚJJÚ»Ž“¯àè«¢Ð"ÃFWäx1ˆlqú%;¤?‰²ó‘Ó™üÄýyèã½xs™kê¾ÞÁý†oòûGáœúÒNúwÍ`àFãm»Žz7ŠB‹ Óë!ÒȆ§<õƒ… –.}à[•Õ¦œ!ÿìï»/Þôú²hýB»¯tvÉÝ»euþ!"çðµÿ +pƒ'¿ø¹a˜½3×Qo-Qh‘az=DÚ Ù0úôíW-ð'÷~à׋9•ûêÎÛ¾ò’ûó[î/0®ûå+6\àÞzð½ nŠ›è¦»$.•Kü}þÁwŸtù/¼v×ôª•îw°ïCOfúë6ÁEæ›Ø÷먷œ.´˜H½"mˆé¯¹'ïáÒË4AÛuöÌcÿð³|FAft@“ÆÇ½´<¾.#¶ ·JØÄ}G_·qûðYÐ`jꢮw_öÒAmRrн%Ln¾³ôzˆ´AÀ·C’ĽçÙýÇŸº÷/ÿ½û›‰¹%F~t–€î!It·`½"mX°%òtV•2tÉ'ÃÑÌz=DÚ 0zõ —‘«@ ³t)£M½"m(ÓWµ«tV•2t©UPòA½"mHÞBzÂ2ct–€î!º¬b"õzˆ´A ¦["çvV•2t‰Ôš8]¯‡HÄÆÈVFb¬ÎÐ=$‡ÇsêõiƒÀxé¬*) eèRF•z=DÚ P¦¯jW)#1V@g èR« äƒz=DÚ ¼…ô„U%…A  ÝCtYÅDêõiƒ@L·DÎ-#1V@g è©5qº^‘6ˆ‘#¬³ª¤0”! {HŽçÔë!Òñ(6RFb¬ÎÐ=¤Œ*õzˆ´A L_Õ®ÒYURÊÐ=¤VAÉõzˆ´A y é ËHŒU ÐYº‡è²Š‰Ôë!Ò˜n‰œÛYURÊÐ=$Rkât½"m#GX‰± +:K@÷Ï©×C¤ ã=Pl¤³ª¤0”! {HUêõiƒ@™¾ª]¥ŒÄX% {H­‚’êõiƒ@òÒvV•2tÑe©×C¤ 1Ý9·ŒÄX% {H¤ÖÄéz=DÚ 6FŽ°Îª’ P†€î!98žS¯‡HÆ{ ÀÈ-w?sã±Þóþâôù—ËU ÐAº‡P¥[B¯‡HÊôÕp•½‡Î®Ý°uÉ’Áÿ¥7lºnï­ô¥j“’ ›€î!Ce=Ðë!Ò¬í4šüäýÿú’š ]ýÞ÷<öË·rËüè&9ŒJ)ßñøºŒØ&¯—*™·^qt2ÉÝO<Þ)mR r˜¬ˆÑW+jÊt:º"Ç‹@¦Fª¤=pê_ÿï™OÖÁÔÔ}ÿõ/s+Žüè)Ô W•é´fa†LÈÔH•´[¶ïW(º§@ÝÑ&•@ 7Eó1Ae:Õë!ÒLTI»rv£‚kí¶­¹G~t‡€"Šù˜Š 2êõiƒ@¦Fª¤ššVp-]¶¬;Ú¤ä& ˆb>¦"¨L§z=DÚ ©‘*iuV¹G~t‡€®‹Š 2êõiƒ@¦Fª¤ÕYuG›TÜt]T•éT¯‡H25R%­Î*·âÈîÐuQT¦S½"mÈÔH•´:«îh“J ›€®‹Š 2êõiƒ@¦Fª¤ÕYåVù!к.*‚Êtª×C¤ ™©’VgÕmR rÐuQT¦S½"mÈÔH•´:«ÜŠ#?ºC@×EEP™Nõzˆ´A S#UÒꬺ£M*@nº.*‚Êtª×C¤ ™©’Vg•[qä‡@w躨*Ó©^‘6dj¤JZUw´I%ÈM@×EEP™Nõzˆ´A S#UÒê¬r+Žüè]Ae:Õë!ÒLTI«³êŽ6©¹ 躨*Ó©^‘6dj¤JZUnÅ‘Ý! ë¢"¨L§z=DÚ ©‘*iuVÝÑ&•@ 7]Ae:Õë!ÒLTI«³Ê­8òC ;t]T•éT¯‡H25R%­Îª;Ú¤ä& ë¢"¨L§z=DÚ ©‘*iuV¹G~t‡€®‹Š 2êõiƒ@¦Fª¤ÕYuG›TÜt]T•éT¯‡H25R%­Î*·âÈîÐuQT¦S½"mÈÔH•´:«îh“J ›€®‹Š 2êõiƒ@¦Fª¤ÕYyý|nÑ‘] àZ]×EEP™Nõzˆ´A S#UÒê¬6îºæ‘×^é‚<©ùœyãÕM×íÕuQT¦S½"mÈÔH•´^¬¸ä³2w€¯ù;ùT•éÔK§ ©‘*iƒ)/VîÙ̓ .85$'àÛµ·—œ|*‚ÊtêUÁdj¤JÚe+Öø²âÜyHØ:ówÂY¾bmEP™N}EJ|ß dj¤JÚM[® Ń ÖýŠxì3¯š¹KvW•é4@¤Lé5LTI»÷й0Jü+ ¡ÿªEa?ùÏ«fïásAe: )³úK S#¥}aÃÜa”¸´èZ,„@Œùo¼èÊ15½˜i$L¡Ìê/L4žöè=Ïή™ Å- ‰ ‘¤1æï$ã„3®¦L#aòdV dj¤Ú´·ÜýñÙµ›ÃXñ^@+ÞÅ¢‘‚Ÿù;™¬Z³éæ»>V+¥LƒaÚdV dj¤¦´Ü"ý„é="Ð/ówší¯Qy&£Î7Î- GF©Ázgþø˜…özV>ŸŸ™[@°«0±úhþø¯<¬ø .õ%n½ð1Š ÐSóÇÿÃ,´×³²šüääܼ…)'Ð_óÇÿ{íäaÅO¶èܯr 踛Qž^›?þf¡½ž•ÛáÌÏ-ÀËaî,¾›?þßk'+~A.À- ³žFa"æÿ‡Yh¯g°we n¢ÏÖA6Ìÿﵓ‡¯˜s™nt6JZ€óÇÿÃ,´×³Êx»¸ +·€݆€N°dþø¯<¬xÑ™‹…q 蔿QÌÆÌÿ³Ð^Ï*fìúBÜ&x/u„€=óÇÿ{íäaÅë¶\2’[@G\Ž2j ˜4ü?ÌB{=«¤«{­Å- Öyl€UóÇÿ{íäaÅ{yrá`n­{T6ü?ÌB{=«°¥û.Ç- â?œ¶HÀ¶ùãÿ½vò°â} ¹|<·€¥‡¢Ìué¿ä¦Ó0aV „õIáY·Üý 8rhD”'°Ì߉º¿>Fåa +;yðrÜÊ›+ÎX$æÿ‡Yh¯grù‰Ü0äòùãÿ½vò°âËÛxÌŠÜÊàb^qQ™?þf¡½žãÆ­Ìå°˜ ¹äÞ›ùãÿ½vò°â[ñðÈE¹”´ÁŹÖ"4ü?ÌBû;k0˜Š´â¶¦ÇÜú{½¨¼ûVõ䣞µÊí>^*LH`ùеµmЋAn ;TIôÚüê“@ I_Ì]²§VßT$·€¾tÚb¨³ïæÿ/†.ÝãÞÃ皬µ/ãÜF/(Çm0`þø[ÍÓʺæ®ì‹ÉO®“[@+ýâC6Ìÿ^PókÖo9zϳ“}µG¯r 0߱ݠóÇÿ;Ûc ›ššÞzÅ-Çïýdì])•[@Â&!•HÀ’ùãÿâEïiØå»îØ}à‘£÷<§Øic¸ô´3{Z¶1óÇÿ{Ú‡bÙ}´tßš¹ˆÍ@X${æÿG¶DǧûziOã¹t¼ ”gÒüñ9a =õó€²¹Lh^Š$`ÕüñÿÈÆèøô#íï”›ïúØìš¹Ž_Êë×T®µú«‹É•÷îrP°N`ò¥·÷ªû€ë†¹+t>DB`2÷+3–>5=.ùÉÛçÕ^¿Ü‹`ä…½‡ÎÍm¹Ö}ÓÑ`0èõ壸V¸¶qÍ3wÉn×HæõÒ +a-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-CÀ|÷²A@ †@#b•VÄ4s!óZñ%-C`éô²5ë/Ùqõ©[îþ¸ùNfƒ€€/2FÄ*íX:½|ÏÁ3¾½A< `›@»¾Äê ¸ØÖ2»ƒ€/‚þÃR-˜žYÁƒ _ÃZ¶$–/K`ÇÎ[ 73[ƒ¼”µVk™€{;Ø«=† hÙX¾,÷F°áffk€€²öÃjí8~ïó^B0 `’À±w}¢}?¢‚²ßþ[&›™MA^Ýö›e½‡ÕÚ'°÷ÐY¯&!0IÀ} ¼}?¢‚²¶l¿Ñd3³)@À‹ÀÅ[¯/ë=¬Ö>™e+½ë9¯>!0Fàè=ÏMϬlߨ 8íW0ÖÌlð"°íÊcŇ;A`jéôþòê‚!3n<þäÔÔt'̈"Ú °|ÅÚ›î|ÚL?³@@$pÓ;ŸvòoÃuX³C\ì?þ”Ø3„A8ùá+×wȆ(¥=îAÐö«Žóv°]³L&àÞðuÏüyìÓžÝvte÷1€‹·Ý°çÐY÷û üvðdñ*zDÀÉÙ‰zÏÁGÀù´OGý—² @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @€ @ ÃþR-” +endstream +endobj +647 0 obj +<< /BitsPerComponent 8 /ColorSpace 640 0 R /Filter /FlateDecode /Height 512 /Intent /Perceptual /Interpolate true /SMask 753 0 R /Subtype /Image /Type /XObject /Width 512 /Length 3453 >> +stream +xíÐ1 õOmˆ@aÀ€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 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`À€ ø´ +endstream +endobj +648 0 obj +<< /BitsPerComponent 8 /ColorSpace 640 0 R /Filter /FlateDecode /Height 512 /Intent /Perceptual /Interpolate true /SMask 754 0 R /Subtype /Image /Type /XObject /Width 512 /Length 3453 >> +stream +xíÐ1 õOmˆ@aÀ€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 0`À€ 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`À€ ø´ +endstream +endobj +649 0 obj +<< /BitsPerComponent 8 /ColorSpace 640 0 R /Filter /FlateDecode /Height 512 /Intent /Perceptual /Interpolate true /SMask 755 0 R /Subtype /Image /Type /XObject /Width 512 /Length 39513 >> +stream +xì½xÇþ>¾'çÄ=!NHB $D „ BîwwwŠ;´…R¨ u÷R¤F½´Ð(rk×oû½·ð{þÿ÷pJÉ‘ùÌî}ΛÙÙÙÙwfÞ™ýÌG$I€@@ €@@ €@@ €@@ €@@ €@@ €@@ €@@ €@@ €@@ €@@ €c" q“¼‚¤ 8)*SŠï$µè)¥õ–ÒHmGI¹¥‚™R§ùú_ç…RéÊÛ~EóõW;LÒçÌ$µê#µ¬:KQYRp‚ä,i´Ž‰ˆ¨µ@@ p.4ɧ‰ÞJJ,ÖÓ5¨»ëj©r§T{ŸÔ÷ˆ*¿ÚÃRå.©ë©p¦”1XJ,‘"Zé뀚ˆC ÔCÀ+PŠÌR«¤¼)RÙ:©æ *$Ï1w &¨OÞT}Ý"Ó%Ïõ0% —@ÀÃWŠÎÖËa +gI;ì…íY&ˆŠíRÁt½Ü 2(w—h,ñ’€@@&žþzy{›þzÉ<ä-,dkçy ê¶^¿§Ð4Gòð“ ¸] 8n:)¢”9TÏ“}‚óMMI˜Ñ°IÝŠð4±›ìT}X¼Œ@@ @B5Í»HùÓ¥Þ÷8Ã:ßç›J¯Þ¯×5j–'D¤^#2 Œ€_¸”ÚK*]åäK}S´ß8½öT´@Jî¦W[‡@@ p> ØÇj¿ËAû&?v >@ÉÝÛùÚ_¼‘@@ àrè¼ô&TXß:ÇfnãÕ»)5ô¢!샻 ‹3—1â…΀lf¡ôÒûn“Ë]5˜ÓÉʬÚ-µî+ù„:Cï 8=Zw½¢#,8Ûðuðé<ñ9 Cc§?âމ€o¸”5L,øUœøºo”Rº }!Ç¢Ö'E¢È«Õs¼cõ·>"5¸³ƒ7 q"Ð$EïxÍIÒé«Ôç^)gœäiÃÆ\ÓN*[+˜ßÆÀv³@@ŒKvBñÒ€Õ€N8ç±Û6Æp¿V¼Lï-{¸Þ [ób)6W¿+ /ðØ’¨÷çï)aÃÂðó‹Ð§àš¬Ï§s†À³´­/jùåÛìWÀ… bÈß`X'€@@  ö lŠý0?ôäaGœ;AjY)Å´•cÕõ½ m|̈8P$µ®ÕS.an'€ô9¤W¸û*u~Q¬@ÀeŽ· •Λ¥œñú°\ÑYz*¶‡À+p^‡Xcñ¥ŒR§y¼úØv:ÀîpZµ¤ótÙ®*^\ P D3ÁªÒVÖ»uΓã +ô‘¶âÀÄ„Ú4º3E4H½ +S€@€ˆ;RzØ`A‹¹¦x©^nI ÜG8ô§Íòõß,°äµþw|McGC€@€„¶AõËWué-Â|¨’Âû™³ºÁ„–$W°ä… Þ(ª$Ö+‰MRç™.‹è7šõ + c”Þ×™ÎU G0ˆ0ÙYmï»I]…8ÈU:˜xO½¯Nëì`â)Ù#¥Ð$žj:Í=X–ƒ–¡\jíèÄD; xâEÅ€ö8¼4«"‚¨'DÂ~nǹRl nâÄQ‡<|b¿&jããˆÔ*z²xq"pu E ©»ÚŽšá» çë :<6éhl»äMQ}ƒ†Û0v‡@@ àâ@©R“«Þ]áóÃRáL),ÕÅa¦½>¶`":œ +·E½VÆ4ŒæìÁ€‚È-(„@ÓöR¯}j‘ŒÁA™pMÃÝVØÇ6qÙ:µ“ v|ø+(nèÕ·£±`o7sˆÕwq(‚ÀŸNV«Ò^XÀ3’8A²ßU!ì`&•JZÒª¯Ò\ê8[•VÇÜ܉V³jsЇ lÕ°?êµWoÜ$´zÔnRh̪p¡ë ~PÅ!8% g,óßRì}>F¹»ý`æéã™Ô2¹CÇöÕJÆLë³dè÷ÝÿðÔ_˜þÈË ž?¹ð¥÷W¾ûÕš“g ¿U'¾F +~sŸ96í¡Gï¹Àší•³–v9 %¤ä…ÆÆ»éìÉ< ûéjìÚWß%aKH€“! ó’ +“?¾#`ÃeSw Zw÷¨”´ìŠ>3—ŒÙ÷à’×?Þñí?÷_½®øoïÿ]ûÞ·³}øÖÝ&Ím]Ü=8ª©ûâôؤp›ö=¬ß»ë'qδʫö(LySm|ëðø¬ö¥c§c=¿ü­Ïö\ü?Å©ž½À-_ýŒ¡ÿª­9½†6³AgŽP‹r ëve?ë:͵«:+)pZôT8p;áÓÒŠ‡—@«ÎeUs–Ï|ì5•–÷ìœo&ç†Óñ R|Ç”ØVkªÖÃ${Ê:‘è¶A³b(Ü¿#¢²+C”†XŠV9bR[÷˜2Þ³Ç÷^úŸÖµÏK?¹ IQ»ª¾>ÖÒƒ…Z>+ØÜØÓO³JS‹‡Š"€Pj(ŠäNT´– Ó¹{¤v,°zÛšSçì“Ø©µÂä5÷éwºŽŸÓ¬áÛ*þ7äö°ê­9¨Ø,€o=„B‡@@ à@@  øn¯aa¨Ê¦§ÆÍ-­¨ë»lÿæoT‚u”üû®\›÷ì»%£§EƨەÚ¾ó"Ŧ´{Zµº¥ J!Ož*™w¡X¥ˆæ)ÕóW­ÿ肣иüzî»ü62°eìî©^t3¥}úe ΂”îû¢<€Ò„$JÛ*(®_âÂ(t`K·pЌȧSÇ-êCýVn‰n¡šŒ+xø©ß‚rÎ;Lr¡= +õsQŒ@ÀzÀQŒâª€õ®‰eГì»|Óö³w\ÞV¼æ˜aÂà¦UAë^£•ZõQL¬Ó<‡È,»‹öˆ@XKÕ}øÃæTÆ—ž=zï0¤Rœ?£ÀÕ'¾Å1Œ—e`lâV, znUæC x©äîmâ1"Y °‘m$ÄO¯¿VWã€Zñ€&|›Òžx;K«ý +õš·Ò/Dé@9pСTXgÈ”Ä@"»@@-¢2”Tù3?qÀ½'åó/}ýµ9Óùʇ| ön>A°-æÕè}ô!§ù&f¹ZºRB{q¶E ¦­*þ<‘€ßˆGßÿA`DË'dçÀ7‚ó1³5ß³@Í¢µÞþ,€³æœ°r—SŒ=TU±¾†È'py`ž© ±1ί#ŠÔE¯nøúß`¿ùÏ0oÓ +‡l>aMžtîgmþâÇÎ#'ºi•s@ +g€XÀ›mn¦«%ËÅv°ËsÀF@ÕSí í7(Â}àƒ5G>ƒùRÍÂy2¼"7~møI¶ånGt×P÷jv{²ìO +KcΙg๘HÞü4Q4_(…r6¸M Àâꪧç_oÈGMyfñ¿eÅ/œ*Ÿ±òÛVÖÂÍþÄCO +æ7 +”‚‰ï9—ÈÝkn¿Q#µ®U` +(˜!AËT€uÀ÷;"-Öci•Î;m;¹ëÇó½¦ ßÚaQK¾û½ÝœµZ²"–ñ¾ßQý£œñÂ:Ø8¼"U  ,ðíÓc³J„_W¬nàƒCŸøÆÙOT ,»x­÷óŸ„g*äˆ5¼•T½¿®é9O2*ÛÍEi@C¤›n*¯üƒÇ<±àäÏ‚iíL#¿ù_îâ-î>Jèa­_åN¹ý +¡¥Å!¨…€F‚•Éz>›ÏýfÏÔ'êf@`ù…k£Î]ëûÆÙð¬ +ô8/—g#\{H‚)Š85@˜u•É¿pˉ½—néù¦µsð€)`ä×ÿÅŽ€›Î]n§Ã¾R÷²úÒ‚lSûö@\¬iiâÐô;Ryàc;§;Q½Æ,¼pS~•OœP@5»Kekeõ´Š’·µBžÙ÷µ(ƒüw!“%·Þ{º­—º®i »½£Ÿû®1·ˆ‡@`öy=ÿã7ôã¿&ô¨•ÛåàØ¡t•…¾d¾+ÂAÓ‹C €O“ÆŒMžðÛ Álý!+e4Ì)þ£›wâ'‡ :QI£ì½z}ÚwN£ÎþÑ~Þ¹ÆÂ˜d~´%¿ã‹®ŽH[ŽÂOía)¥‡I Cýî_öÑ_²ŠHt v_¹>ñ»?AøèqäU¯Ðp“íÎr‚ ™{ Yž#ò&ÈJ[êßöa~XJ0⥡þ³Âš§l=󋨪)v\¾6îÛ›_ç®õ?v>,½}ý¶&ŸëÍ ehõ9$An)€@€¦92ÈÿˆÞÙ/ÃQ0p”)J鎅À–Ë×ÇÔ›†ùŸæýº€é,ˆ ‰ýÜÛGÂJ]¸‰6®¸"0‰€_¤¬`Ž™ƒM–|û„\÷Á÷ŽEt¢¶¦X{é–‚ ؈µ¾cÆí Nü ž¦äXL—$ ñ‘"»@Àµ€{F9:pí¨! º«·™â‘îp,8Û€Y oùNœàÂp3.GýLØ»6™‰·'#åîîNsoSõaxv§aãŽåD…M!°ïÊõ©uê@7ôB1t½ë)­—Œ¸½p×÷0gŸÄÜ!ŒÂ†¡È"Ð#™Î?Öºmé•xtè;Ô™(’Ž˜ï«ŽŸ™û̱é¿4vÿÃÊþÆx|ú#/Ãõ²7?[sê¶³÷]þC‘j;n!;¯\¯¿ þǯÇý¯ÉrÔª†“ÿ±’é¾#r4±‹ìÇGìÍíÛàÅ…~t›8Gq®Û}ñ÷I÷=ÕeÔä˜ÔÖ:wz¥øïÐyxF·l•Õ³w·IsË0)þ‚v^à†Û7 S@Åcïzrçj$øyæþ,ÍÎߢâN€‹ Ðaçƒ÷­ˆV| M>üŒ‚l¶æäYоoP_eÔ¸ËÓׯUç²ê«ñ ²çâÿ)ø²ö\Ô’‹ 70 T?ó¡WH'ȰFm/çpXŠlÃù\q›@ÀˆiÇ;¸ŽHÉe|!h£R”xçÇ—òú sÓÙµí¿—* I”+D+›ñý-‹Ã'þ­yñ3~ë0ï©j7g/­ØÎ!œäëÕâ.€ƒ!‹Ëª=œ#«ÝÜ/;îîGYÄZ·Ë; »Ö¿1("ºt܌ů~¤ÈëÛg!Ø{s ¸Žÿ _ü‚ °T ›|_2:ªõ{ˆx¢@Àz@SšoLÁ¥ôE¹Ž²‰³å×öoþ–]^Ãõ|»¸©ea1våã`Ÿ%¬úÁÈ'¦€ÊÇ»ûús6œŠðõU( )'èâ6çE€[òëþÑ|¸ t»|U™Ÿ^‰mÉW»º+¶UÆÈí÷:¥Ph¦1)¦€ò‡ßÖyûr¶÷F|Jè +^ÌYuq›@Àž@TÇž¼ŽVšåó½I«.Ýä‹ý!ðOâ«€}Þm¥YO¼aŸ+yîZA +4ƘS@ÙÝÏp: ÕyI=6q~ ’‘8é8ǯ—ÝøÌv;Îýƒ›O 7nûú¯MÓÒ¯ 5MnÍ Lm2ñ±«ÛW›a +(\³Ÿ³ƒ$8yãÁ" n%Ä!` ð "xhLJýˆhž²ù‹e²Ó¾+×2»÷¢?ÜaPß囜Æp`ßÕ릤@˜ÚŒ™ÍÙ0©½xøSF—ÅÂ/'æâ6çA@#u^Ä3‚ €Õý­ÁNV&ùãv¸ ¢?ÜñîHlŸ¿þÃóòᲇ ]Ï;(hÿÖïì‰Uƒxšn¦:/äéÀ˜â +yž(î8 z·*‡ºu™Ózs`WŸSx^>­ÿè,ª8*àˆ·@©uÜ]ÈÍJXz#^ü-Ú¯7 ÿâßáYxñéø„³´ØæA\Üã`­r'ÿÃ5¨›–‚¾Ë6*ÂBí{Éó*ÏQu›Þ‚Ò±ÓáÑBôlX"ENhä®n:pü¢wX$ÒXÉ×­LH'ð)$€k"ÀçP {gM9Ëï?\æYñÎ77Ž +8ú-ɹ…N+mÝFœBÔMå½é¦ã²%×Yó2×eLWCÀ3@‚ê>ÇiYÉuvÿ"ü_8ˆßÖ˜£ævu ÜÊm8}QmXÈ4æ†Y wñÌ}›H½ïáéÏíÇòûG`B +µ¡õ!çø¼ƒvœC~–¸A à¸ÌàY)q})w2FAR*0’„º—·÷îûQ–ö—öýo×=ýB»¼RÝäd†í¼gßUX+µ Á¦tAo(U=q’g# 0–kasD +M–Óâ^€Ã ½}Éb»x’/Q)i»¾ÿ·‚ÜÒ$®9;ÎXùïyð±Æt­R +f­‡6a¯¡œœŽ>,º`A +ÔvÖj|²†ñtï¢ù<Ï÷¾Åóbê‹Â?¢"*HþpJg¯FïACT¢z3Åž¾Ö*+.Ù&¹z†@ lŽ8Ú]Wë…«Ä£çôE +’?ŠZüʇ¤*¼öñ—fˆZ½KgþúŸ’ž¤ªrgvè)`¡¥O€~oçáOéTÆÃÿzâ85ùÓx†FDk*(PøTÜ^ ¶ÃìÕhžÒB=†·Xò7ÿ½  ù‹‰ýíêçtÜ)@ pý-àºóüU{ê¿,Ó¹ÆM‚s*žO€–Lå‹LGD»c‹XÖ­»»a­Æî˜½"Å=Ê-²´ª>ýË_›%v+Ø_­qNÇXúuöÈö¿²…”ˆ6<ü_Èë†ÎBmÄe€ À2ÚÑî“ç)+ù1”6rÇ!öŠØDøß`Byê“Z-£ ö׬Ëé SË'@ŸW¾ÒzzÕ½)ë Eða k$qœعsDMÍOE"8:vÇ·ÿT…ÿ·ßË^™šÁC°±Mþ:v{eætÐ)À¼-€AÔvÆJ28z=·Ãä¯z‡'WLÜ °>A^àêΉDŽƒO¨Aþ(áÙëb'üÿþù+°A`¯¶¯Ÿ_@ }Çóæq +Ø~åÚ–vFœù=89íæ[2ÿ_8“Ìÿˆ…!<1,2:ðsÛky,´¥[ +DuT‰ü”ÿñÑ1肇N÷Ú±M¸û•#N3Ìz2|ô8ü +>m· ®HäʉÖB ©”LþùÒXÈÝÓkÍɳ‚ÿšŽ¾uœÔÌÇ>8ýág¢¢£IwÕÏìpS€y§ uº@ÍJè¾ó¦’{>¢ ˆ¸õû“8wh ºß}#yн=”Mœ­ù;îúvÁá‘Qì=hï{ÿuíÿûøÌÙèþµž>¾³¾©js(Yø•ëãͺƒ0Lµ¯žqs'†…¯rè0PuA:³·—È)°k"3Èý¿ö>ÉŸ@Yx}ŸÀà-_ý¬$'\½Þ 4G”ÿ¾*ûÖÌš·üß鯾q¯€%Aoì´=“<Ö8 ÞKéÛÍäj‰VA€ãš¢Ä£vé èZñ?—ÿg/'¸²=n‚ÿ]ê+`Ç•ëwñ0äô¯ž!´¾Ù¤yýƒï®ðִЉÜµ€Ó6¨ñP¿‰:ÿ¡±ñ»/ü¦8á7(Ðqùçá‡ØÛ¹vÀÀ:þw©¯€™ »À˜ÚÍ^ÃæŸ9K–“‡@»Ñ¤§´Êì°j×Ë·?2oÝü&-؂ߨi+‡O^:pÌÜ>æVžØ­÷°®UCò:—·ÎÎKL ‹ôðð$=EdÐHéAîùtG(`æ\­ÆŸŽËÿðÍÞje=zÖç×ù +XÉ‚GPÃ.ÀÐOÿîÎŽ§>gÓò(@41Èf>|ýŸx÷ê3ïÿJý=úöŸýtûo­Þó$&Ž ó7 °¨jàøüâÊ”Ömƒ›D|2×Wdt ±‹ºøÇ`¡añ‰{ø¯„ß LÇåÿ‡_~ƒÑÂNE øßE¾ö]½>Ža³@Îü;ÙñÔç„G ›É!žæwbÉ–©äÏ’ÿèñ«w=ùÑÚ}ÏÌX¾gÈ„…Ýk†·+(mÖ¼¥—/ ‘ÛÕM"÷ùŠÔÃ6ßÕ€¨UúÓ•ù_‘¯€YO¼¡RÓ(Uì|¶]àáŸÿË'œ¨›Lw +Z´€DÅåXø\Á<øpX¹óñ1³Öö¨ѦmA`°ˆeOj1gÏœ=’Ìÿ©½H „Ä4SÜϧ)2qqþw…)àN6>rm&uTÉÝGª9@P¥ØC„µº‚ôÎQÔ¯ž]×s“n­41»Cq`0Ù~Ÿ†ªÈm·h´RÕZ‡ÇN±ÍùÀÀ5;Lѵâé‚ÿ +¸Â*BŒ`Ï âr¾}¨²ÐÔ*Òø^ºõ!ÒVõ–{žþxÞºƒ5C§´i[èãKáGz}‘ÙŽàpÛa2©þa»ÎÿGqž7U àð¿ÓO,îà Áéãæ’º«Ô$…ÌÿØ>£¥•ƒT%s™…?}êçÝž˜¾|wy¿ÑØ\v÷ ÓQ ymŒب«XŠQŽŠ™KLqµé‚ÿ üïÜSÀfÐÀ“—É~¡9Ô! Á¡áO¿÷‹L–¶ÚíOžüqËáס¡š‘S¤£VSˆBäµ6n:rÔÊ]DFÌ‚¼l8}Q ž7U¦àÿ:þwâ)`ïÕëc-¹5¬ÿñorŸáÌöFFuè´jÒ#¶Ü÷šÕ\Á=òÖ¯°kÐ<¥µÆÍôÊ"³Ý!E÷ù>ôíªú™"j•Òÿ×ç'žæž¿VÇðæOªŸ=Mê´‡9dWš¹Ù ±ó¤e›uÿ+ß`ËŠ¦°> Á+rÛ Âb䣹ÏS‰çM+ø¿ÿ;ë°ŽY„Ù!<3—6æä‘*õ‹däê6!m5Šý‚;¼ˆ½ãèX+E2eÇYä4€F‚0‡Ôɉ¯b[e˜biõÒÿ7æ§œv_½>ŠÍ ü_¸înÓÁØ•¸BÚÐÀ8jQn¬ ãižyù5ØØ¶eîzøÝÁã$¶L7þÚ"Õ~ÐG¾;BûQz8^´ÿª­êñ¼©’ÿå§œ¦²ùÿCÔÝ/€0øÜ½¥šƒ´ÑÑy¡|Iš¹b¯m¹ZÕ§C¡tÌÌ5I-iº"$EfY¤õ¦uoLþ„/\ìünúü/¦XZ½tÁÿ¦øßù¦€%™|vZC/Ói¤Ï!½ùóaçZ JÍ;|~Š„Ñ1s¿°VFª·Ã²u¤ševï¥É›)Yð¿þw²)`#e  êè)R–šåÑø $ŠS¬ˆè8¥8ÖþËyêÔOp|šW\¥Õêh­ r«4¨ZÕ*¢^„w3äK‚ÿÍó¿3MðÇÀ°þÇ¿ É„> ÇžT_íiŸ’Ø?u+[Ãõ|R6taHT<¡!DVÅh–O^ÛP¼ýû…4Ùsñÿ̵JWÿ[ägš¦~Ǫ +þÏœDÑK‰Z@•;áE”}°N_¶KYvµÿÒŽžüeõ“—Vþ—?4Mm³õë_ëÂj'k)V`˜Šw?Jü¥«hü€ªÌ cퟮըáÆg¯åü‰Ë;ßcÔr/‚a53ö.™‘íÂaG¦|Æb« |£r\þìµ·Ù{dN‡f=}|w_øMÁ¡ÍQ”ãòÿ;_}k¢ÍŒ$Cuð«ï.Êáy3÷Ê™ ¹±à…S 'ç–‰ßÑ>2'/6‚©©$ï`ÚÁøBaæcØÄÅv¾VW£z{_¥ñ¿aR˜²ýÈx‚8š¹\&#uó7ž°RjÕ¹LÎ(Vä^ÇåÿsÿúŸÎ —X¸l…—yIÎÐ$®ù¶¯ÿªHk2BUêvðyÚ€/ßJ›ð•Í|tìÚ[ ‚µó2÷Õ³6ºà7•¸äásYÅævpŒZwòæ/ÅžÝʡޒƒãòÿùßÿ_b‹–ì½Ð? @½OLr¦€œÞ¶ŽJ‰ ˆ*@ØÐh a¬%Xu©öÕ—˜jç\­Fõv¿Lÿ7ž ªÆ¯×’6qØÇ•çDôFR7®Þ/iþ¬lèö¡ŽXšÿk‡Ò"•·Iϸðã¯2—úfn—3LäåºFQûdùE‚8ƒ"hH*%4IjmàtYÂÎ"îp¬ÇÚs™;(û¿ù)#V<ìåK‰éÃÞ$Κ“jùÛ… &…Dzó?ª=Ò-–ïÐü¿åžû¨]/¡yâKo¾c†Ãe^ÂE­òG&µÜ}ñw‹í¥Hª +(¦€´¡ /•Eã,œ(Ž@ï:ú¡=sµuÛøœFyÞLâäm¯„‚RZÜ)³Rc~µ%h2‡Ç')2–ebeþ?ûÿ;yîâkùÅOÿ€Gæïô埱äèzE]Š7mßùôK¯¾óÞ‡2'NúŹó?üü·º‰ãÔ'Ÿ‡„pÔªfÑZ™­Éxûf¢ ø¿hÓ!Âù4¡ñ?¾²q ó±tëCjp¬ý–ùÞ/«žüÓ¨zg¹ÕÐÀ&ƒkæ6qÆŒ¹iÝþo™+‹|M1ƒÕøêšµý|üü áó'£]Ά½÷|ûï?äÌݪª™!W=cxDD—’ÒÉÓgŽOY-߬—§¯ßú.˜j)Ów\&Ëz?÷ñÍj²ü¯‘°¤'ÉN#Û°”kÈ3jÚJûåê÷U¼nÿ™…ÛóÌØ{< ”畽œ$'”ùI}˜bùkµÅžyÞ°ÿÿÛõé‹–¹¹wZž›÷Þ÷—¹§€ûŸÕI:Û×°N$˜¤úìÿŽ8ó»›;åS "}ÒØ¡¨õ¬¥8ÇÚs÷¼þ##·3f›¼ýu±`‰74äxvðÍ|Lºï)óÌl«VàÿIs˜G¥yJ‹OÿòWî) m‡|óå;ÐU­»ûº¾·BÓù–ü Ò’°D—ƒÄÿ™CØ›©]A©=ÓµâuÛô“óFò7d¾ìA7\ØLŸÓ»ý?BøUí1SXãKkN³Â0·øµùÿÑWß‚¨§ñë7Hé?b7ÿÃË#<Ñnÿ,;Ýb«ÉÏ0ñ[ò'@bÕ h)Ý c­p&{á.¥úø‰_V*$üo0A” œÃ޹Ëå N uàbB¤ oŸ}—ÿ?Šå— 6ÿta +ð¤ÕjùŽ{ +¨<Ôiú'¬Â­ F +lµ›³–2B ‘–O±Ç|xûø)¾Æ¶Û÷qYþ6 z£"¬póôBfÔ],cL[Zî0™ ¸Œ¶ò©[‘Tåèç€ØaYrçnþ‡ø(6>ñAöŸÍ +†Ó)à ü_ºï(º 8Úð©9HR}àÕ³vËØ +V žŸ×>¥€æ§QþG"ö‚EI㽚Ì:}€ñrŒ¥Ú‰òfUùÿñ7Ž{{ãiýGÜÁÍÿ¸ñéc§¼¼½íh©Q{/ýO‘ùÝT!³¿'Ëÿ«Ÿ=MÒ݇ÆÿøXðôg/ǃo+H³v[ÔÝJïü6žŠÎf‡Ý…r‚ÏI°I]ÙÁé1e¾©iåtUùÿžÇŸfǤ¬²—þǽxœV§c¢=çTÛxîy2ÿýäo4Äzí£  fìå¯Üù¸Ý’¶R;zò×Õj.þ sÁâ¿ñ à1Wao,‡ÌIõaÅþšƒ×ï¶2Ï›zœªü÷cO±cÒµ¢J&ÿãöm÷ÞOr +Ç^=+çÌë7ÌT“)’Nudy…p ªOG\LÌ\±W)šµÛrv¿"ËçO㥾©ñ `¤W- ®^âŒb"É<ÿhÄÉøSÀ}ϼè@PÄ5ÑD6Nöòóßõý¿¡z£…,$º€3ð“6m ¸äO§ „Îì…;½ ØÇ”´ù2Åü†ô9>rscݧco#ÇÎÙu ­÷R¤—ËÞøÔ訴~¢óñ?¦€·¾8Û&‹ÂTvÙSÇì{P½þ°ˆ‹ÿzÔ jwm¥L¹k†N¶Ûu»üŠ=uê—õϨ¸íÛx:HhGhYWÈZ¾Ò{Kºý›¿©7´I%;%ÿc +@t€¥·úú¶í­SçöLjJRfjxÃú?mAÉMjÓ2‚ŽH™ƒÙ› ´r|šµÛv¼d%ÉOÝDP:x.;ø.‘³æ¡÷b«‹ùÐyx’†ªª™•ÿ1àÏ£§Îðñõen;ÊÕT½¦_z‘lÿ…) {ÁÈEjÑ“0‚ k‘3Žý¼.vËÞ2+v×k<¡¾ê˜œïæÀìà;ND~!)ÿôØÌŽIPD´zãšZ²só¿aøäê¯kvîÍ)ìäpÚA«N|MmPÆüK¸ä?yËw²÷s)¾#mQL€3rŠdÒ¬}Þ~ø­Ÿø\æ]3öž ´¬Óg¥Æ0-YÁItËVŒƒÔ +Ù\ÿ ³þ…ÓéGŸ»rmßa#:–v…ã lÈü¥¥g6Kh®’ iè¦ý*õ>ù—m°÷s q¤ETñRö“Ӳì“ÀåÔ +{¾«Õqõ`qvXxÿWìà;NÿhZ×íHð¤‘Ü¡£Jƒš£X—âÿº‰@““ßþ°ïá'†ŒÒ$L©’[3ˆ£MYnáÓÿé~ßË„W M¢ ¢nëÙ i–(‡iíðÞ‡lGþ˜`À¾óç„) +iécæ#£[˵NÁÿŠÏçþùß÷=Ø¢Å[¦‰Î£^ ù\òŸêg>4QScÉ1´A„¨ñÌGp“;äpî*éÉ_}S/3_³ï~Ÿ{È’H뺔­«}‡Z‡ÛYž"ø_qþ7øÝ®­Þ±' 0HÎhqÓéT + +9ï<Ïþoí«g¯ãAD•»Ø ÷æ&[{»ñðÛ?ÙJìS7#ŒZõ;øÎŸ3¬%­ë¶ÅŽIÇÁ£Y˜Ù:yÿ«Äÿ†bßùêÛô¶íÙûFãœ+ÞùBž0‡îÿú?ýÞþ®q M¦ø„ÒQõ]&‹jtÁÓËÛÞhœ¯>ߴ͆oóNzŒ¢hv5jgK@4:’ü'k8;GNTcDó•)ø_UþGá_ýúïâî=Ù»Gƒœ=ÉײæïšE÷ÿþxòrƒê™û“A£Ï½æJ»ýìUùøÖ~îzúý_ÕóíÜ€Þ-þ™Ò¶äv€]û¯èlÿgPLW¬àÃüð¯»*ø_mþGùØèTZÆ7¢j—ÞY×X +žL£ûÿþðgÂ[xøÒV\ãAB>ôÉ“?Ú™SkrôÔ/›Ÿ·¶‘—©Y`Ñýgt¤àžFÛÙ›¶§uÝ6ýÙß¾Û¤¹ +d™E þ·ÿãP=E˜KöNR—³høx™MlôöIßñÈÿ‡}öϺŠY>ÑzÐøŸâ…æñc—©¬k'ù|ççuO[Õ½ƒ)æ7¤—Ym¹5]*5øKk‚_”žÓ’6IüoþÇS^xï4‡oÒö½ú«Ñ1ÆÑãÿbý?òëÿh‹y’•Êÿï^±>'Tã½_îzíG•â9š'ySW—?~!4Êyb'ú§™¬TÓ•Ö}ÍÖàR© ÔÑ|e +þ·ÿãAãfìD Ý&½k9_Ëš¹kßÕ룸øÄW¿5èÌæþtÓ‘ùŸâDëèñ«â}ÿW›g~øøÏŸU>’»)bgL¯O0»0×ÜÎt-*ƒÖuÓ²¿}Ù„YfƦ•/ þ·&ÿþã߃‚Ù» +r¦ä)Þ%ö€ÿÏ‘ã¿à–¡ŸþPyméåÿ'ŠOžø‹Í)±O¿÷ëe¿É| ³Ì~}›ÚÔE²’õñÇ»Œš¬øˆæ.Pð¿5ùÏš8g>i Å¥gs7®©·_á!ýþï?*ïá§.ÿ;ÈþïïüdegÎŒ+dËìB\šÞѳF´¢uݶ#Ù߸ÓᦦõÓÿ[™ÿßúüFÃÞ["[(Þ+î¼Ä¹þpü"{Í%¯ Ú ª=L +ÿô{¿0.¿m•í±¿ìxÑ^”|O +æ .íîYÃRi]·ýö—Îï?BñÍ] à+ó?—Ú†è046ž»qMݸêÎõ¿·Î±÷sÉ· mõ¾‡½pw[±:Ës¡Þ¹÷Õ¿¬zÒî>u³À”íoxúø±îZ9ƒh]7w;>9½š˜ÖOüo}þ5y{oQƒÿù‚¿@þÓç•/Ùk.ùGÑQÕöÂýüƒXxØúyž:õë]¯ÿŶÎ|êHÞÔÉüCŸ†Dų£ír9ý#i]7Ÿ0¢Û”ö´>Ï›z¢àëóÿÆýÙ”üÏçüü_ùÅK|`,mQü¿…„EZŸÛÍ?›¼ßøqíS—L±®¤ÃÚ+&1½ºbNªé:‚Å3 Ù9¦ØØúé‚ÿÙùÿË_þuê»Kˆ,É~‹Ñœ½ö6sg‘Ôàÿ©\ÎÀÿew?Ã^s‰*Dí¾½ðȦñæÙØšWŸºÁüveÒej®Yüà×ñ­:°ãì¢9už´¥KÙZv ÔsêË1}þ7JÑõDòŽ)Ó£c›šØÍÍ­]~áú=wsO/ô{oQƒÿùŒ¿Àÿî$|¹HMshƒ¨d9;,qIiÖdxSÏ:zòøð±siOÝ\°àðç±)Ùì »pNT{¡÷Vì`ÇÊ' ˆƒ¨UºEð}ªo|¾óðC¦Â·ÎÌ>þÍùÆ·XLSPöÞ¢8ÿï¾Â©üþÏY°‘½æRób‚ò?%ˆR«Ì¦8Ù:é0æÚýòU›ûm®ãv‹'³î:ÞŒÇ ¡Å)+Bº³[¯S\BýoÏÅÿS‰Ï©Å +þ7C×Û=`^W\¸j¦£—Ž!xQVœÿ7ñ*‚ÿ3&PŒR{FÆE‰"·¨‡ux¾ÁS ä¿ï­Ÿ6=gwf¼æùÌú§ý‚„e~ê~'­÷ÂÚ‘ùØøé*Q«”_ð¿QŠF≳¼¼½-6iqrS%˜J·-ÿ¯¸È©ü þo9€ ç,e ¢ ,‚eiå ̬öŸžø¢žµ6ÒežäM]­·Vçîi±'‹ ·!Ðy­÷BÛ™ùXøÒû*ñ9µXÁÿ¦X‘|ÛóÉ·O˜*Ähºmù>Wä/?~M;÷`ÄDŸ-g4ù¼ñãFG[ðæèy¶lß•U‘óéË.ÿAN„Œd>ÆÝõ•¨UÊ/øß(E#zchX8c{Ž™>Ëh!¦mËÿÜÊ?àÿ ¤TFLôÙ:Î¥ ÄRö‡LX¨*ÿCrž­/\]uÔÞõ9M-û‡-}À?˜µ³#ï*93‡Ðzo,A«ªÏ’ *ñ9µXÁÿFYzžìý¼ciW£…˜J´-ÿæòü©_ÿŸýCçíËD• "èó1eñ65øšœGÞùy6ví^ßí#}é#ßåWŽ1¿uÅŒ´«flYIãÿ–ìHÙOHÁÿFYú¥>aoÍVYF 1•hCþßv™_ùgà œ¨÷äSs6‚‚ãÙ1_¶íaùÿ‰“¿ÜûæÛ^¼²êIG]í×M×?›ÌޤÈiøŽ´Þ›Mpg?&À‚ÿ²4bµïÆRáÏÇh!¦mÈÿ«dlþV<ö®±·7‘æL> Âè’ùØvÿ[òùÿÑã?ßóú›Ÿ¿bWYꘜz2}÷±í24f°]2#Õz‘¢½•œJÔ¨”_ð¿Q–vVþŸ{ž_ù§h üs2¡É4þ‡5Å-ê‘—¿æãÿGÿrðÍŸv¼tÕ5yLÍK:Û¥ÿ ¡äÃÜ;2z‡Ð:0ÅzÝM§Ûuþ?*Q:©XÁÿ.Åÿ¸Âþ”ÒÇÏc67³4˧ Ÿž[nÞiù­ÎýéS?³óç;„‹S$o4}ùcç{OÞØ$Ú2j" ¬FHLd†Ì“ùXüʇ$¢V)³à×áÿ]2,14+&ìpITã¯N„É%2&Î"ùC]ÿÞ7ôë|çã|ÃD°ì±óÕ“6Güé–„™xDFfº­§­a| ÚV#¶T‰ÒIÅ +þwþ_÷ÿæ/øß/šB50æ%©Ogg–RFNQCþïW,ò½õÓ¾W~Üòü•5vìxßè2ž”æï5ñÎàˆXvÄ,æÔyX6u´Xˆ³e(˜IëÃ1mÙè:~&‰¨UÊ,øßuøþ~þrúW’|^*[G;)ÝÙÇN·ÞÃÀÿPÚ®&âên{áŠ3 óÍÌö \{PXSv¬Xrú5iV2ûI–œ®•'s0­S S;•ªDé¤bÿ»ÿËþ—?ô&aì»é$ìç’ÖÿQYìå—XèÐúùfÞÌ¥qw>Ö4‰%Æœ-;V®y¿÷fJdÆ¢=[ó.´>œ7…ýýCÃö]¹Fâj52; ÿŸ¾üóæ»Mž¿hÄÄ)óV­ƒO†ï»n”ÛYOÿgÛe~Í:,ÝÎÞ·%jä̈¸Ä|ôŸ½× O:å¥Q«÷ð¢ß±€©Ñ´( æ¯Ùúµà#€…&Ñø¿;Å;®$­:~F J'•éüÿåÏÿDDEφ®Z¶NðÅ×Yؾqçãÿå24ÿÁÿ åýŒ SIq´Ss@Ò¸™*¬qú¤­¯8%É›z)¸ññ +kŒƒœ—_îðm`~ÃOð¿0áÒ³ïaBO®=,!p ó1|ëW«‘ÙÑùî—Í„S×jµ+·íjLïSœÿ§óÆüùãçEÙmL@5Xü—¬`4’›Vÿ¦¨Ò)Ó;ÖLbLJ%gxJ~÷¥oÖ‘¿Xÿ›­çfZOÆ'óQ8è5(T¦Có?"pµíoo„ë:pôY‹„ß ƒ“ñÿž+×Gß q™Sÿí÷6!`¾9:=¿µm¾ë_m“è”$oê¥V<ñC@A8V«ÆçÐóɬ]Z³åL}òüߨ?Sò§Óø?…à ׬€šÿ×ìÜk²áê]hÿÍßoÀðæÿt2þ_+#æ &‹¢Í÷ÕƒÓÒ)$9Õûi£&¹ÌR¡·®§æv7E•N™>cï‰[//ï¬IóvݽҀù  +ùqh[õ¡õäüiÆË1– +}›¿ø‘´\W<³CóJZkc¸IÛûÐãæ ¿ÁU'ãÿY2Ü>€ÿ[gSSIAq´!ùOXKS…5N/ªâ” IüÌ~+à‚£Ht­xfÇåÿ§2×p·_ë\ÖÝ<á7¸êLü¿VžÙoß7ÏÝŽ¥¥¿r'Ò†LÙZK%Þv}ÆÞãNÉó¦^ +Ö¾Þ~ϨõÁ +KÊ-™ó”yæü_1#çÔ-`8Žf>#¢lkà¸üÿðËo0Ã,åv,jÀðæÿt&þŸ)Oó'oùNvœõ9Ë·Ñø¿í(öòÁ„Ø5E•N™¾þéËmK²CdÈéÛaäNæüo[ª'JÆ£—¼vZñU={‚ÿNNÃÿ{®^¿C†æ„?4·o>¡4òÇ÷rB‘…XïróôB;$y¸e€IBõĽÆe÷ͯÓoÖžEœ‘SUx´Xó䥉÷~~î¶øU­»W=ÌúGgÖ.«Þø;ù#§Øÿ5‰iRWZ—î¹ÕdQÆ.Ô,ZËN׊çüïÜü¿òYf¿#¾úÍÝÇÏX·5‘2§ÊKbL”e$¹°z¼RUêÞO\„X¾ïŒ]³—ÚÞ¨e®·_P÷K©_+«Ÿ¼´þ™Ë³ï?_»í›úÞnÐz‹þ—°æÏzÓçõod<üo¤·’‚è]šàŽ;9·PqVg/Pð¿sóÿ”ïdñ·C/šF/À +‰ÿ«v“¼¦˜{—RN*gáý_ݱæhÅØ5íÊǦd{xù}ûƉiy=ñu`ñY }ø©^øðÅ;Ïšbìœa›užÆŸë×vÐzp¸©{-¦ þoÜv¦h´Rõ]´^Mqf¨qsÛpú";c+›Sð¿óÿfÑ~!ùÁ/¥A8/éG +Qó¿Ãd“ãÎØ…¹O[äR™°bŸ¹ÿä°¥ô½2§û0HœB£ŒÕ…5 â SU‚?¬öûî¸mµoŠ®+ּת|†_X¼áÙ0æŠLëŒyAóž%øß\sÌ ñ?%˜žÛÕVeY½4ÁÿNÌÿóÏó;|ù8ó»gP¨¹qÑàZ“´a‚/…Äâe˜ù3$2Αò¥/8üÅÄ-/œw75¹=G¤dÃÁ¦âQÝÜ´“·¿~«†ð<}æ§Ý÷}íM÷;¦ßTz¯ŸV®ûÐÔUŽtÁÿf:žûDÒW-œßRTšÛç³3¶²9ÿ;+ÿCíÌ·²„?e÷¯HÒQd.š_¿ç>o]1K)¢V©Áÿ–{`GbT X hÝ-{3‡§¯ßöoþ¦àÚž¥(ÁÿÎÇÿ³åy{Æâ?s⛽’íÿÔ^dþ§ØÈ°UÂNsÁ÷råÚ÷Uâm¥Šüo¹÷$–;9ÜGSŽ!÷±¶‚yÿ;ÿo“mó5òëÿÒ¢=¢‡—­# _‚›\ʲ³¼ É›R|N-Gð¿å~ãLÖp€9<åˆm•¡ ·³%øßÉø–c/¼MV[£…˜JÞåçT•ÿŸ9þþÍײüÿ°qM¦Ñô·>ÿÆr¡7sTd´S‰§/ýtóVËÿwïiª£éêñ¿LWÿ ÿÊ'ˆÑfµR¯}´A€_ø”vºÃÃ78¢eÇ–eóFï­\cïÿs„à¦þˆ~[{˜ÖÛ{l&y8D5¬@UþGÔu_&`%iëÃFÙÒTâwÿ¹ÉXøŠ-;L•c*=>)™±ðYKWš*ÄhºJü/_íüWVÍøÖf‹+¤ 'Òüᇧä%w™3lK·Å¯5`TÇúSð?k·/Z@îða©¬…ßÈ—ß„ü…=c ªò?دvèp–w÷üô/5Ê–fGNšÊR¸—·÷{ß_6SŽÑKÓ-e)\«ÓáKÄh ¦Uâÿi²%ÿ}ß8«ÑjYÞúVž.‹ÉÃðåÖƒl}a~@dRLf÷Ôn“±ÂGLÇbxóµüÏÚ¿8"\ "*åÐyx®ÿè#Ë̦6ÿƒë|ü,Y¸öNSli&ýƒ Wƒ‚C,B;yÞB3…˜ºôù´ìŒ*¶ÂãÔà™A~±òǯå€1Á¼-ƒ4Y#f_0¥±ûÃÝ'F[ yý ºŸ;|$ù`Hójý«2My ô¾ÎÓéµá9üÏÚ%Ñ{kÒÖ<èó^W*’ÔiØ8™ÄÎx»ÚüºÛÿÈQ,’ÍÀÛ³¦öûß®›âaóé÷?ÿª‡§§™Â;•–û×ÿÌbêêÑ·Žûø¸axb»¼‚¯ÿö›©ÛM¥+Îÿ{¯^Ÿ Ûà6_nîf4r)k(m @ø“?ÍH9¶Kòòo—Ñ4³GJñ™µKóÇìÕËäR9<ÌxoñÌ'àù_ãvëcMëáÕ¬]U·E¯0–Ð ›àB¤9B·oÝ—P¾»1÷5'Ï2r¸œlVàÐà/¼Ó´1:w÷ñ³æ~ûï?LQ%K:XºYBóÆ…kµÚaã'ýÇÿ±b*Ïó§>JlѲqápÙÚw؈3ý©ͤ+ÎÿK/ÈòólXü'÷a’ÔÝ‚ÂÃOê}7™ÿ‰1·ÇuÇk>!1Á±­Á–ñ¹}°9›Q³¤Ã¨ES‚Ä^ôРCü™^=¿>ó×arGìàx Áÿõa´pÙ†Üí¡#A‰€ + )‡Øïµÿƒ A•kvî-êÚ \ ¹J›ìv`þ7>=c†'Ù/ä7ì½§¸Gy\b6…[gf™6óå?e/ÁLN|>`oº¬²WBrJhXxZzæð “Ÿ=ñ™[Ì_R–ÿwÊöóþ¯}íkÈ·-tû—9l~Ë·I‚[ °Öçk‹dïA±­ðkÒ¼]xJ~d«ÎX´C>“T4¢e×ñÒ è9b æÝ±"‘®óŸ/_y¼zÓLhç·´¸¶A;4ø Œ½‹ú‚ÿÀhîOFê¹™<$•™+³Ñ57­vå±/iœ;›Õøß<%ºÔUeùŽloàÿĪA: Ùø¶­ÜEi4å¢ÄŽC¨<æÜù{,r³ £¿èNa!¿ÅbE†[´¬$w~L”ÅžÕ¾z7±3Þ(øßúS‚ü¿A¶«7ïç?!«ý$t&÷ØBÕþKf?éÜ|N};|ìÜ¢ ³gY}—“ +ï±ìM³å‰‹·#«^ìêB°Oú5͹½ AÈ<ïÙw™œ/›àÇåDxœ /È‹Aò_b¡#6¸Œïßnh=Äè %(&Ä`®Ù¯I³MaêψÔN$@ Adª(‘n“ÉC l­„±C9šµÉÚwù>ng¹Kð¿ãòÿ ²Â»È¿dÏã”þx#ol.¹çƒÿ‰V05‹I æô™!¢×0 0SÉè½ˆÜ \üôgÒâß™ø ŒGl;ÈÂä|yÿ;(ÿo¹¤€«Ÿ_ýŸDÇ  ŽÅ?n‘+7GÅêS$sú̽î$ˆè½#H€À®Ö Dn PºŠ<t[Oý‹P/.€àGä(üË ïkXü·›cA™ÄÈ(+ ÷y¬|’º)Êtt{Hôå"™=|XI¨“ªõ§Y¶•M7—«^i–Ç3šåSñê6qßòÞâ]‚ÿ‘ÿœW@ò3àÝ î~´®¨ÑJ=6’û|Õ nâ(GÁ¸»ÙéËur²¯Ò[–M`‡Nª)#òÞDߊ AG”ÃM§[øÒûÉœ#ƒà‡ãÿ;•ü`ý×µ¥ÞÈËáü‹ÿÔ*Òƒ »î½å+vú²çœÕ›>ïºà˜ëv_úfÍ–32«Z8á^$á}šàžhË™€(VW‡,Ow­<ðdα @w…à½?ü—ƒáÍß2jç}ìíÕ«ÿ@ë³¥ó=ñ­/βcÞ$®yýÜuåú¸o°ö-Þù0{þÌ ÿž[ɽ½z?ÕáOzï…2yÒníÇfWè1&z™éd›,Úô3]¢‘+ ÌÊu°Ó—}æ„ú½){jgu™ñwµ«6|Ü$±½àn&Ŷ­dÿzBiðqóVñ?­kÉüO¨™»—÷ª_×±"'Óy™ýƒC›ÈôÕc}²µÃ'.ÝHXq%¶Ï¯kèåXùCò“Òw${£ÿ™/Õw‘ûyÍjü»ÄNC¹¹ÑNn´(NÇW:÷YîÚB¦Ô¢t¬Ö½¡!0v‡¡ÆI’2%uFî â†xøJøÈ¥JàD”;9·pï¥ÿÕ‚ü“UÇÏ4xó"¤£2ªcU)³}®yë_Íé=ÐÐÊ›`ê«„ä§ìžg©húú´MîáY4z~{¯Kn:UöÆîK߀òjý4zÔ4}•n´†å«Nd÷_ ±ÙåIEæjýGFsšJ„³Sžž`ô}\<±U Ïèàò…Ûkî +ù´_Wöt¯¿­2²Îýó¿ŽÅ·vUÛ=nU•³—¡±v]¾>N¶‡g¬ü½wÕ;Œ5hÚ­1G{ò‡¼O“[…0œÁ«›)²r”ô欞”àªÎ†/…ýh_šSz†tÕ, +@‚jø^ˆhM… º@óž=^GàòOâ3Û‘ê0xô8nwývEÅÖ¯ÌkHtSŽ<»ïÊõiJÿ¨³4+® µõ̉#È—~ñ?”ú¬Â mH‰Š<Ú+ Œñ­ãrz+òDŽB°-t~›‰5|(ô/ÌÁ VA<Âã“¶Ÿý»|æ7”ÐmÒ\âó¥ª~8Â5ZŸoíꉇž~!8$”5Â@ì8÷JøyÀâ?oÙÒÓÿÌß‘§cc³À“5ô³áAÁÍÚpP™]Ý^eG˜d¢¥àk"êùdöW9o!}E Li½oÂ|–×o˜Rü?ûÉ·˜{+#¨lòüEO½sò“«¿ÚÍÚUe +;þÍùí‡@²[Ø1Ÿ¥v,Yùƒ2{¾pò©õ"«œIž¼½ºšù-ÿÌh[yˆ" ÿÌìoˆŠ<”TœHD´(`¯¤ÈI@€ÏbÒ¬!÷)2ì»r-,>‘ðš"«µè·õ^Eö|‡~ò· Ä–<µî0‰gñ_¹S‚^4åŒI%)®HÏj™qÆTd®Æ`„·È·ZÅ ‚¶gXr‡Æ5)Ê I‡u<>J–SC ÂÌ}úE¦€Þ ×(ƒ€(E9|ƒC‡öwÈmäþÎþß­†§^‘<äþܼ˜ú8¾¨…VæO–Ç!<ã»·*ŸÁR Ryz®8†èiŒuÙ8ˆiÇ9dˆ² Õ ŽŽÝôÙUùSüËùs¾²¸MÚO_.—ùoÌÙ3VðTáJ®‘´™eÈÜýNª{HBd*C*E’òËA J´¡# +MQùc,¡dÎÓ°>f©˜È#΋xF Biû²jÔ¯aËÂ.Šø…ŸõQµù¹O“XéÊçÿnŸ×¸BîÞzñì<ÝS–@Ä#gØfF³ÿlðÒ]‹\4È|ëvƒ7 .¼Å*‰ Ê œÀ£,Óe ‡uî2r’üO€ÝJNUQŠlŠ6’Oþ}^þ“ï³.*Kê{˜‡ÿ;Í£¾ºD"8S&ÅÙÕí=—¿ãk6PWLF7ë¼2T}òhþ7¨Í'òA€ÏXS—.*Ðwù&ùSÀüçN`OÁÈëˆ$ë"Ь¤ºú2ùÐû ˆãÚÖ‡ÎGlwô^h2ø“Ë:ŒÚeWì­He*Ö¼×4«gcëZ¬Ã!ö·Ž° NG!X³nÏO»4Ÿáó#‚ú«=$…ò4¾ñáÉMþ€yD4¡mð‹‰üáÏ2Éøçÿ +ÏâÓôÐH…³ÈýÖÐÏ[õ¡Bš­ßÚg!pò“Ú}rtz×ð”|¸eˬ]V¾ê¸ª +5¤ÔîSL9 £¶‘ÈσŸ§tŒ# »E áN‘`ñ%£§ò¼¯¸G <ƒBk^ú\&ùüæñeù§'ïÀþYqø°ê±‰³»æM¡¾=¤e _R›]¤|x„N¯^À˜ÚX"?'~Á·šÂÄÑ„ó#.$¦Ùº¾—9àöqw?êÈùââ6 +Qy]ž¸$Ÿüsroßh$x£åë«Øê"ºú6Í »9«ûš[ÎÀtÎ/,ŽÒÝD^k!‹à²uœÃ +Fô^4_‘uoÑ©òÒmg±ßÇ9€,ßæ¦•JWò_s¹2Ô*462¥¦”³ûÂo³½bÖÒìŠ>M#o˸jFÇJh…; ;|ëlͬûáúhù^Ýn–ÐnÎZ~t=ü$¸ëá–üÐ]=@;¥óôGКøÓ"ðÞÖ¢tœ»41ºáºOz“¿‰;-"] nͺÚû¤èl‹O0•!0"jÙ›Ÿ)8ˆ¢¸ØwõúÒ‹×î¸IÝr%?gÿh3ZƲ ›SE øÉ?{¤©.g&=¾C_‹\'2ÔG®Û)Œ%¦°ØM]ÒÄç»O|Ó}Öi÷©'LåéÊ •Nî…¼Ã!+ï±à…Sܬ%nT½W®Ï>/Û™ó͹cÄ×ÿ—Ò—‡ov"”;‘¿C–­%[{I’§_hÅêSõÉMœ›BÊüØ%QQÈï¦Õvœâ>ë#=ùÏ:­÷ÒÍŽ!þW l–qOPò¡E¬ÿîž^cö=¤‰B8ØvùÚ¤ï®Ë]ðß$ÿ¡Ÿþ½içõÛ—|Þº/W¬9À±(gøVSt'Ò ÀuCÞè½°ŒSiÁoè'š€hÝ€ƒæÿ“ÿ!w!qøTムÜaÑåáK}f]~LøýWmåà.q‹LÖ_º>æ[ÅVþýßù>¤e›ºfå9A|îun„oúÙª³ y3”Î{.¥dŒ§?ÿ±MÜÒÊݧ«Oþ8×–Ìg¼]d“…¼CÃM"÷èC¤0L"2¸÷Ù{é2 MÜΈÀÞ«×]¸®˜Àÿܵ^Oà-£ý%©Y>¿¶'ú-¤FôÃÝ;^‘ͰŸ‹^Úr¦ËŒÇZv•L•|‡& R×gwæ7üéÖ²;¹8qÉeüüX¼”\µA5Sò‹‰ÆÈ.› 2Ÿ)ß)¶ì‡ì¨óÖ#:oþ@}7€"|Ìr/?ðJ ìkè{ÙýW»(Ã3C«ÞøYÁ¸»òxF4›jýé¦uk7Ô}ê»FÉß}ÚIÉChñ©…½‘ráá{ âÆNóý×H±ÌI¹àù“.ËÌVxñU¯)¨ä‰ÝÞô±s˜›×DƈVüJhèu½öJ~á&Š6—™Zä±ÝåÏ_•kÞo?dcLfw§¼IÜØF®i¢ÓuÃ6Îü76µå2TˆÒ„·°n½ÄÓ$É;„3ÊR݆Ã.¨pË;:½ó»¹E«÷¾°í§ÜV/d>=¿â&;rwxš⺞ÃqÒ¢œ¯£åݱG ^µç2Áù…ãÂ\+4!ËfAX<|õêÓN™à|½Î§á§­ÞÊײâ.¹„&ËÚ Æ(†ý޼í`¼BdRËE/ %ºHÉ;•^öCæ“5e gôöú]î}ä¬üÑÍô{¾<þ%âóúÙ3Q+X7¸³+{vrÑÌfœohtwo·œZuÝ$ù:¶ox2í¤&¨iýÎ"έŠw˜°º%\—Å|ñÂ꿦›N—B/ˆoª‚Uï +Hû]ö÷yåËÐVYõÛˆó¾rôÍÐÍÐÁ¸6›à¦¦jýi9Ö®ŠªX}{¸i=§G·éê,û³uo¿Mçé–=È}« IÞô,à–;êö"Ä_VG u­¬sŒP(…ʰ ¨{á–…] ÀÇ¢zצËוUòAä÷ü•»åêù5¾£¹}ÝRã¤û >‚è‡VçY2ûI»bl™•é¹òÝ‚q÷ z;âùúËSÁ¥ãiáŸmþ8÷‰¯³3?rêúí—4nJ—UG@#µ+kb\C1Ï;X~MáÞ6bé llÍjCà3÷¼rÎ|nØööyå«ÈœNòÛQ_BJw©ïaYýªr—äÛ„¯2YýVÊä[ÞÞëÎOJæ<•;|–÷ÍÚU7kãîåχƒÚwiBâµ]³ÈùN ã_ån\µ_Êåʇb@Ç9²†*¦€Šb (q4k“µø•­É¥Žõ,Xu-WZàiîâ-Ê,û±¨Ë*·;a¿¶Š\Glv… Ù›ôhè&á;T2û,Iì8$¢EOHŒC„ÐÕĶÓõÞî>óÆÄnZÚs+çÔw5i\m+nRlãÊñmø´Ç˜LW¤~:wŠ™Kv}ÿoÇbfµk æ_yñÚxEEýPò©xì]¹.êZöY3å’?¶ "3êŠ$ø‡7·+±?Œ­z,{³hêC¹#¶§÷^˜Üydlvyh󶾡MUõ±CBþ´rÝn‘9 á×Ï3ãMB!á‰"«uð +”zÈðd˜ ïM*Uª¾ˆ&?rû½û®\S›Wí¿ü}W®¯ùáúDå|¸|Á 8~±Å€Ñ +(ùšCå¯"` LéX×å"“`âÍ0mj·ImªæBÏoùcöwšr?ÛÝ¿Š_åoÃÊðCørS‹vDŠ©Ëf¸ÿÏ>Z<ó ü +'Ü‹è·0.ÆS {ƒ˜Â±m+#Ó:CñÕð + ×zÈr–R÷Röp-}mñ<÷Éoó3?fï»%—ØÃëˆ:A>{n‘»xÃD>PÁäÜB—V½Áü”fþá_ü»íŒ•Ê| = ÂË·Éí<µ‡¥8Ù¶fFz6k<!:°ÎÛõ§Ïçä–ÙO7ä~Y´oXÿO?å–Èã»Ïé1¶£ÔO[åŽbLEó9bó™Â Ô‚#]M;hϽœ‚ÒÒD{/ÚrØ/†? ƒ‘fŠ+”«ä¯ÿ~<,!J…8쇦yGmå÷éï)ÀüàÿIobËÀÞLÔÁ~‘úÍ\ƒùCæ/Ä>œm ë6Mp3·¶ƒtµ{ܧ[vÔóþŸñ[ûá|¾;d½˜¸Y|ÕÙE`[>°/Þµ|î3Ǩ|k'ù¡Ï¹á’>,¯ ~Di„J¿_t3¥Q—$Œ¤õ–Æ¥nÖ€ÂöÄa5ܽu]Ûe¶nÔS<”^_“Óì¹näQMdk«½–x*à¿ÛzÖxï}I-+% #/‹¯¡Ñ{Ø}á7;!vóÕ€ÇømXxAa_u¢xïi}Ç € ‹¸ñdˆ–º®V¬KÈPõ䩼kÞ£u×4Í‚‹}ÔÝï«JûúÂg~¨í2GñO~×l:Û¿µ§¿JÝuë½âe>+Ô9|‚°A¼äµÓæé×VW¡ÏƒP¼óÏ«°±{Ã{Ãð/ÿÓeÇCÑù%*M²úFƒrfï{”!”¥‚TJ®åx¥ºûhârõœßw¿ûÔãªsþÍoÝðG5ÑŠ*8ôNWcw©ËeF=&‚êý76…Uù0@ŸØ>ÈÆ}[¾üÉVT_ÿ¹Û.ëÕ8§§°¯žºÕ>´zÊ~;uȵüLኧã\Åú@Õn)$Ñ鯉M_H㦠mã\½lêú3>°çÿù ©ÇáùY~L›‚(n­‡ÞÛÝ2^þ &uݺiµ˜ú­Ü²éó¿Ô'd+œo½¢wÔMÅ}5Ü¢ýs×z¿ð)\ôû7kn¢ÍJ†ÈJ\2¸Ôï0=6KP0‡LÜ´·‚+.òÍ,ÁRѾd¾¸Ý®€ øù¬?ež#,HË +™q$YƒÊh›ÒžƒÖíZûÞ·*‘ÿÈv~¸¾ôµß_£¸Þþ ñŽùa·ÛíЋ­GM÷oÏòîróÆêý{Ëlèú·C‰¢88ððÕD¶rK¯Ñv]¤|D-¥›’œF$+hWýKº¾û4á-9ÞFÜâxø4‘ªö(É`l&*j&fU„+;}ÚC/r;—ƒ+ží—¯m¼|1Ö\¸>í;u ß@û}_ÿ&oÙŽØ.å:oó/¨ØUxrkÓO¿k_Ÿ½ežçM‘ð!)‹h=4M’Ü’‹!QÑ–-Õõ?@Š«RŸŸÕ;Çn²0鵨’Ζ!¦’„ð'Ÿ–À ˜\¬x èX\zvñSÆîxÓgWë¾ v_½müíW®m¾t}Ãz¯kÞ/¹ 7Ëšþ½^žsG½Õx}iŒ²ç#¿þ/Ä;«ö&UQØWƒe5zlòùÔŸ, äŸÚK¨‚7ÄB{¿0ýª>±Á³´%ó¡¯ó§_eâÒ{jÐõ¿[Ÿ×ð]Äß.‚â±ÖÚJC!Zå6Z&¤$”÷k;ku×»žê÷Ö9eÉœ¥´aŸý£ê‰“…kö§ ›•[äîÃ÷Jˆo1e>èØñ—­êU]Ÿ]°QÕvš«%·ÔX|Bî¶¥žþšÐDM\·V•n¹wÀ‹¦¶×Ýàúq/Û9Ï7œ f¼¯-_«‰HU ›Õ+ÁÚÚ Z_/AœÚ7ð'3¢·™)ËÎfy*j0²Aëជµwæ¤E×ßÓãÈ«˜$……É-æòÑ/ÕÏ|X²û±œÓ†M‚T' .Q1'Ìl/h$š5g¼Ü ][1ýåî º%w1çˆ >ÊÆ¿ªù„nà½ð6÷5Úâ¹Úüñúi"½Æ-¥«[Rg(Cj¢ÓÁ]šÀ„~ÖÀÏÝ¢fÍŸ9½°¿©¿¿&Iúrð‹mo9n­ª°twË§í¼ºÌx~¶•.X”§&ƒTù¨cl4CÐ$©¨#ʇŽg`H`BrxVvrÍ0˜Y¥“1a~»9kñë°t;$6íç­ÇyöŒ¸„_êàñø²ˆÊë‚+>1ZO‹œÃW5wÁÊ/k¸Ü@íumWÿ$šä.×—²[‹®Ö°ZõÁ ¤·ô¿©ï6\úš"FgOÇ,†iTòPe× qpˆÁÿ˽¶¸²zÄé¨?ÒÕ8Ç, ·µ»YÀˆ«óL¨âÀ{§_s5‰9 TÙÕ-ÏnÓNâ3J/äW)D»F“R2´oˆ¼#ø_á­f©…²Ãü1NÐÔG³€¢­‰po`~¥Œy4e÷ÂÁÈ>Ü2ú:‰üÄa&” käÖ¦Zòð•Ýz& ðôE8¶ú1×ÿ›Ën/À@ƒQ¯êŸˆM™\f«Ýa»mžŠùEH™CTYó:T¹`0.û€ê£åeªÃðªqåyûyAÝØµ§j‚be·›…³bõÉúä/ä? ³ÏË~ÊïZœAàp:Bx´88h’¢×³…ËM‹8óeèµO™è78³ntâš 2‹¶hº&Ž˜Tÿ¾öð ζ¹óþëŽÑlû[ÊÖ©Å$æù¾²GJÁ ¶GÀ!jÃíæ]”tâg´u:Ζ°,ÿÐz@ÉЉ)×ö¯6óCÝ ûÜrFêµg­sh4ñ¹}*VŸ2JþbýoFPþ)9ãlÃÿuüßÔð !>L5-¦È¶£”tÝS‡|ýLÇ •Y@zêm]…TG ¦‚r,b%ßPSýEô€È¤NSî7Åübý¯æV*õyÀVçØÄl?F +KUKWÁJh*÷¯ )¹›ÂΚL5n§ù\ƒ*q@ø¬õ¤ %˜ñ Íôªû òq©ìé’Y»¬NÉÇÌ ä?Tlí"|'»àÿ:jêµWÂ' âªeÆ.07S |aS¾`¦5Ts9öbšå›©éDÐîßP’úÔXB;D™ï >rƒó UÒ۷ز0éM)]¹î3œ_ÿ’à‹Úc(ç×q¯]Tl—`¡Ö¤…œ‹Ú¾]°Ú‡ø¥Ó<7v4.œù`ÿE9A·6½íÄ›¥£N@ÓNB¤¯ßÉmÞQÁváèÛnZ]B~ÿËÞªOïÏÿs@mû[TñwDÉ9¢!¬‡±û çÎtÀ*²}¨B•®´¶–²þZÝtpz樬kÃÏ=átn­«4aÉúˆÌ¶> ´×¾ºÛâ×,²}ã ‚ÿmÝz\ÏÇ烕¡ýþyXïh:}€í¨þçÁù0ªJ*“ò¦ê=ªYj|0“*hê¤ëw— &n~/MXŠ=~e@ÚÓ¼` óæÁÿu`:Ò ²¬ÏB +<ñ°ÔmƒÔn´ßñF *Õ5ŸùÛª›á­ôë|ˆwŒÀEÅ"Z×J¨Œ²¼ÃZ|ž[VxÅÔõÙ­÷™6óC&>´áÚ[õG¤ó<Aë—÷Yýá8ôFh-{ì¥îÞ-JÆ–¯<ÞxIOJü¯ìÀ²Ri™ƒ“ÿo1õ¹W‚)6Ž1aïØ3ÀJè} „ùQYz‡¡jI;•«•Í +À)¨5¥gõCŸt[uP½?|xfSuma¢;ýÞTàlÇ­ÃxºÓ„·`ðJj´ëX5Ñ?¼9t{ª6|LâyS™ÿ[µñ”z¥Ê²”V¹S*^*åNÐ/zŠô+p¿p ñ°”: ž„Yü¦í¥=õ¾7 gëÙ>Óì}5KùÓ%Ä´“Ã'rìoê æÓ–-6»nØ#î_·÷©aÊ1݈Çõëùî+´áÔÈ-±“>f¢5gU…Bþ¨V] +ƨÙrÆ™s¤ þW¨}¬X HÌ&Rh2$øšE]×HE ¤“ô¦Uõ^Ô0MÀ ¿¤®z y‹rý9Œ#p ?Ð{û±úmh8²ƒc4(©Úð ç~ÁñVìLò…O¿p}Œ•˜LMB!\†ºeösËHm×ÅM®—,!Þʨ'!_ÒyáO'ÏðóÌþM1ホw½©/Äðƒ“ÿ¾û´U1A÷±]ôÏMí‰:h¢3`]‹Ø^J.ä$ónßÐØ´žÓ îš9Þü-‚ÿe¶Ž nItc¤;‘íOKp〖uµþíoD„ÑGc ŒÑ[´ý FnðGRçá›]Q8á`ï-_™çp9Wÿ;^?. M§AqÞ±ãb-‡0Ž×Ý]«Æó„&dgõ[Yµþ#9ÄÎx¯àë^­ÂñÁ†HîEªïÒK±¼C¬Šêª€h?,)'£f‰|•Fæ7dü¯BcªY$6.ŽèD… €Íˆ”ŠøêW³«‰²UGÀMë‘Ú)»ÿªòU'H¼­TfÁÿª·±‚ÀÎoé*ÁÿŽŠ€^Ô3U¯é*Ù£J¹‚ýTeÄáŠËé;|»£¥¿A9‚ÿÍ·”}]u$³ßÛUý,€]íÏž›õ–Šxé·¯)jÊ$9‰ÞÇ5)=¥ÂYÄG +Ò¬]Uµ[Ê(! +›Õ=ÉÀå/ˆ½r-A˜Üsù;ãîn]1«iV¹D¢Q‡<ó ‹ošÕ³uål¬ð+Ö¼§, Û°4ÁÿÔÎ`íüð–¬6õÌPÅ3?LÕàÐy:ÎqQÏ­zÇtI¥RP3›(p‚…â;ô¥xjÌ-Õ›>/÷\‡Q;[Ǔ˩RЇO µ{µÝ>O£ñŠ +OÉKÈЦ׼üÑûʾT½é‹Æ0Ú6þ?ñ•×ëÎOdVCð¿ÝöD}ÅTWø<,µ¬´›áË" ZŠ+”²†ê½±Ù—¿MªªçÍ×›èÂæÞ¡mxh41ݺ.xQæ`7s;슦>Ø~ÈFÈ4âóúE´(ÀŠ×Mg¥ ›@«õðòOh’تøØ:ɱ½dÎS½6ÈeT3 Ë¿T±úT‹Ò±Ð)ªC,0ºeëÊ9Üàÿ:$íîÄ?JÝesí}z™Ml1 ¢V³<½O˜DÁ3l£ÔþÌ1_>t5Ò+||°D¦Û‰®¾Fãæ/ɧž¶œé¹âXçiC•® Z–MŒïPÙªsplkìx"à¬MúûCñÅ„zâÛ≷*ŸÑnÐzpðùcsÃ+Žæ€ógS_jØàë$‚ÿÙ»“UsjÝõîŽÍS–¬«‡õª;ös`Fð–"3ônœ1)@m¾ó" fSÊn|cÊCˆÄ£Äök°ÉÂVh’*â/yØ‚»bÛV‚©8ˆÂj·`9Z¶ðå.3-wvœ3k—âó!¹óÈøÜ>1™ÝáÙ‚” ØVÐSÂ’ÕÓ/Q«¨¨wŸÃ…~AMÓÂ’;D·é +ù4-¡x“^½ íÀujAªxÖÑn‹_…”Þ~̬ä·¦-@a=w/ÿ®óŸ§>Hð¿Hmy©íH5ÉÿˆžúåÀTËYl+‡µ”ø~Wÿ˜) ®þü›V­·Y@¶Ø\ýb>4Y +lª—á(²Á­2nZw¯„üþàUêXv¬ü`Ã$ªî×}é› m(ÌR¸ŽcmñµÂ¢ÇYuÊëµñS•»³(žŽ,­d­íM´ëÊD‹ºýôZ‹;d"€rJɈ\iAdsðUÅØµ`hLºaŒ%‹lVBÀ/B]ÍIºm»›i%ì1¡ Yòu{Hc_dvcR{3Än¤—*ž}”±d‘ÍÀJmŸIeÖxñ :ð"öGzï…«O’F±ÈìÄ@¤Ã¾ÕŽèð$(àzšÞOŪ!5L]ÉvT¡–/ûFF^ØÜ̾UˆÁIlæ”™±QÂÞ[½ÂH `§ž½p‘S]¬Û[¢âptž>1eÙÖ8´“#‰Ì@,`Æ>“ÖøvS)°kƒ#Æ’E6uð “ ™¯Û¢UãN K#D†ð*©÷?óñš-gLh‘î”À±Ï&vÂŽ@Þ轌Ŋlê"±É +uÉ +´%ÅáøàvX9öô\ù.û`9­\m(òÐöC71u[ÁeØŸÛg¦bE&µÈ¬:ùÃÀVÄŸR»­^>öû`,Ð~èf¡5ÊÎ{ªæ„ÿg¸‰ƒ‰4ì8Ð`–™Ö[9r¾Ú° +f‹ ƒì¯ÖiÊý ¬<Æ÷=¬:ÿw˜dwqÕgÀ™ œ-û¦ €7¸î½í˜mýš •ÊÙiòSñ Ù%gކn°Op´™Þ…‡=ôÌ~±S`¦4qÉJø4‘àgL iƒ2a+E€g|A§v›ŒQ_½ñ3pì4c³Ë}gað´Þ"¿Eé8¸DfJÑ»ùr:N<„.a¦Á© ~öÌbæ*tàR£qùØ‚És]zõüÆåˆk#‡p†Ù€¨ÕøžÍÄ¡XÝEµ.†=fá„{M¸ÎÓApŒJ%¨LØ2@€*T»xæfF\âFn+Xtià=û†‹¦<_v¡ÍÛD&aùÑ¢dléÜgIeÂSŒ•éX¢9¤´ùcBAô^qð"&Oê4 "\x\ghðÀßv8ÐBâ3õJD¶8ñCᕱM}Ȇ8 T(<{3VUdS¨LkˆýAþˆçk•@ä*be뢡oÃ'QÇ7{˲ ¦d¶z-ÌJ¹#þÿö¾<ŽãJs¦§' çœs&AD H‚A’ HŒ¢"EФ¨`Å•DY²$¯dK–lËAÉV •(Y'ÛK¾ðíÝîíz×w»w·á¼¶ötÿp¨0˜iÔôt÷txøæ#;TWWýUõªúÕ{ÿ»?ˆRH¯fª~™hJ Ôþ^5HÁê‡Æ}/"§+£ö‡ü/2.ÎÒÕ¼¤{¯èÁ;@˜kªÊÜSé‚D7¨ÇƒØxeïhPÝx<®ÐéÙKäíËÞL2¦Cû1…4?ëŸ$¶7©šüöUðùç.›½TE +$(‚¬=îB çøÏØFbAÀí쥼Ö-ì…¤”2"P1ªðÇâ¿nZÆŠ-k³Ö>^ ÁõTì¼^2! úÇÀ«C9€¦‰½ð¨4bþ-›ÙKH)eD ¹Â4,¿µ?$¿ë‡ìô')ˆo%n/`á¨ÇîWÑžJ KEWD •ZÄØËâADþ¢A„—ôjUØ$3â£çdðÀxP¹Å?ŒKéO2k×bX‰’ „ÇB#¬¡ …Êʨ……¡+"ÀL*´ûžÙ,.P¯ˆ"á¸ÀïÌýr:&0GL[÷Ê\·¥?yÀ¢½ûÆ7ÄJ§ºox­¼ï0|9• Uéü–!CP)€3ˆ°®«bå ààB\xyº?åê?eëþ}÷›Fû_zbØÆmÚõˆLÃ\5c§ÐóÞ*éIà;Ú2U_‹Ùb3…w„ ´Âx±S4ˆZ–ãm…¡[Š"X¦¨ÚˆNr#`6´ïVä1ð±Y¼|úÐàï)mmnlõ±7=^G§ û._Í”^Õß«@2g|:,¤í*”[@8¢œNX +(|ܯ€Ù§]F†ᦑ‡A ÎÆáH2|ÔŽß‘U·.$:%pl@UHaèY¯ÀÇ +tÍÀáñ™`„ˆL)A«b>¿;´‡ÇÞ7(É0›Mm×**ü1 ÔMIV~ʈ¬¥åþð6à—¨=™¹l0,>“¡€žIQ‰½§Î{äI§ÚEk²óñìåj8/]§´ð‡üÉQCÕVˆâ†(/C¦aû7òÛ¶%^˜‚ÒÕ"Øì¼îÇÊ—“Þ(ˆm?_6Ü4Pß„ÓðSJË8Ó_ð@ èåé,y‚kÄø4û J=\ÌޤpåÎþÛ.²dEiÔH§ƒè?¼A¦…7C#·N^±ƒŒz- £ç2B’^5(X0€í_PJ¯Øÿçù­~™F%dA óºŠ\Ï£HÓuƒÚ¿åh„ß}&ð ÑŸ +àm!pöì;ý>Ëp¦4„#Ý7¾žµlk ôq*‚Šûƒ üñ‰Q2à£@t98ðö°âÎé¾[>dÝ”Œð…$?Ôz:½àtkz«ñ…¦áoAþ3Ù#ÊE·à +%¶ †gï Šô5´é:! €@Ûìsi•]¯ùÍWA^BŒ"9™-ÌÔ{O„?ÿµ“Ì¥¤„BX÷`é¼Ñ$ÎUèy÷J ¡‡ét‹p#ÛPÅÊÂác µ ÜmÝó¦®J—Å!`6-?áù%®ÐôÔ<`CyøSüø±ÇL!ÑónIt`Dà¢ÝX· £à,Œ(í2ø˜c2ù‰œ|ÿûõhÊæ2E½Aþ —£?‰°Î^¸2LýÄœQ+Q®žÙØ#â +WN‚üÓcìÓ©q8{ ªžìÆQa*!ÏžäÏ9WÜmÝ÷®«{[§_÷çQJ+ˆ@\¾i}0Ôþ.ËÒôe‚…£›~ Àïúá•‚5Ò¡‹–æ=2’é™Í ùuË6߉0"Æ•{Rpj=p1•öÌ‚5ÂnêoR«ÃÒyÃ×_¸[Ÿ÷7Jï[xÐÔþÿ½÷’Ù§÷vuÕ©½¬rÿËo|_Í¢2c}–Bà䱬„rš’ú+<A—n¼ ì ±vQéÌ©•üŽï¹û³ëÀ²ú„¨Ìè!̦æAÓü@þCïDÒ!À-›ð)ÎÓýï㺌_•ÿòDÐ./šô'ð]5‚z¿~Û}Kûá$òU³Ëö?o³´îÇgìÂ.Í-Y/Û[”qÁê` +ÿ¡'Løú ?é0Gg,,®+üægÌ Ò½J('(!"w>D>&‚5'Þ©¹9©¸E1r~sV=¿ãeïùÐES(‘… + @¦{±¹&ð-»”ðAùwé¦rR"àÇŸö>jð!pðcKûÕ&‡rŒ[›#©¤uɺë;¯}U’ÐPµè8úýÒ5b2+” ëv¥›‡ÆYÖÜâ³Cù¿þA¥õ@dš©íº`Êÿ¨t%£ËâàŠ:ÆŽóÖž·œŸÏ2«mV 4&%»aÚƒþ[>2”ÕVeAÊZ·õlNÓ†°¸Œ…(ïÞæT`^õŽp6g7Ê[ Cåó›5gƒ0 `ê¡?90süö…Gîò[¾mÎNœexƒ‚ð¹¤ûª–½O)XP[BXáÒöž<_7qOnóÆˆ¤<9º$Cžf®¨kžõÚ|3wÆç-Cn”Äà. +ÚŸu): ¤ÖøSDJëX ¹Ç‹ð?ö¸9­Ê¬¥Nй<À¹ËÇ ,1 +Ë=#¿*ýú‰{s›7ùŠü(uSûÌÝ•ÿ–pG½r÷ÐEsêŸÑ@‰q†ßyZ‰Y_ŠëÁFsÏZúngP—WYüºûÌI¥j¨#<ËR+:Êû¯nÛ÷ìÚ3äVð g(DÚjš|¤dõU)eíŽÈ547\ù çØ;ª¥ãz5[Ïe@.Äa‘{;¸°GϪ¡nŽH~׫ì# )1͹-j(»» Sàuí¦Û›¬2ÊCÝgÕëG˜F±ùžY»6è‹|w›:Ìz?ü°ýsÇË&p”ÑŸì˜MYÍ2†€Y÷¸É*{% ÿ8ÎX~ä×sΛžâòÚÔùuÆÛC±q’Ê¡c-{Ÿ†C÷2œ±‚`dB`eP®U > iRi8u«ƒ«õiØéCçïìÃûßWÌzÙð’ã2¼ÝT>l3³äß5Ûaeà*Öù+ÿ]éù¯pK7™ìj÷ΰðv¬l¡ÐÈo›¨º±i×£/5xççŒbS‹ÉÖÝýëžã?oÝ÷LÍØiPs§”¯ŠHÌѵ>¬:›÷X÷üLL‡h._±öl./Ÿy$­5ÃÞ"Ýã§vüLYß¡¼–Íó°Ã‡BLn¾ÉÛßoéºÉzàÑý«Ù$y©(C?@8øÎ[¤™Z¯ñã½”TÌ–‡D½Ë~Â=Á•õ›¬ò»üKPßE²IvHt2ôHˆB L°DÅQ3v +ö0˧ϭ8ð<¼ÕzN¼ ® ?À’‡Ù§ë†××xùÌ9¼«fôdyÿ‘¢ŽÝ0¼åPªˆÄ\k¨rz‹€Èmk(>?¡N ¬ï}Ê5ì +¤ô¬4À\'w¥ià¡@g”jiÊC¹øƒ€¥e_€ÃÐùø¾w\Æœ\îÏ›5Ÿ.ÌÈøÙB£àåúAéQæú%4¸Ãâ3] la1®§0Ýhÿ*`ÆÆ“¥ë˜uö½À»W·Ý¿—SjYÀ¾mÕ¸x²èž»u$— +­eîô¬ôF¥%b‚º\ÚÓZ·¼Ð¢Wð“?Ñ£¼nñÛ_²4Ï@ÁxÙ("`ŽJãj·ò›Ÿ“¤G]Édß»Dòx³rµ¦EÛÏÊK)•¦Õwø1 À¿˜Ì>½à¨è%sR±d+´9“‚s"hš¦‰@Ѷ êËÌq¹\Ã$¿ER±¹GñÛ¾«9“ƒ 6…Ï—ŸkÏü÷™ª?LUÞÕ”e³øL'úg1Á“kðQ¦Y z«è÷ЃR"`° Þ#åjmÞDð¢¥í 9«ÁÄÛ¤,3å¥8Þœ±ÌÒvÓ½LýÌŸ´J”¤©·ÅBø»»­|²4Ž3K’÷üLì&09?%8 ¿þné8­å‚ØÌÒ¼:,ž+°ôßñuøÝ93¾g»‹¾µï]¼Eš>—‚(ûÿš\âþîƒOFŠÚRåqêUËQŸSÀò#†oÕÍ­_ì+âGúÌë–þ3\i¯É¥:¨@^°†"‹¥e–ßü¬õð'⛞m:prD+N7íµâÚ¿ÂsŸ»eþƒ绲³"äù•¾@pjû)’£¤acAŒ‡¨8ý¯[Ê6ÄÈ"šÁ&]?s…M:¿SÒ*Rf² à¤aŸxA`´Ê{kÿP`o‘+^í´#âxY*iðL-VsR ·dDÊÎ8¡ûÅs2Øð‰aN_jðÖ¼ú…ÑÞÕþSn½7T°,QBθ|Sëµ&Þ!yM)CY0sÖ™×Ý<~àCØZzN¶ÜiMD«DqíÍÛÍ)å\år&úþóÁJДó?ùÝ?vîQøq êû)‡…Ãö®°¨÷u÷OÓU0M 5š¯ºo4|ÇÂÕmIÕ8°K)=fÞc<ŒKÁ*+Dsd2Éy¤úQiˆé Ë.°ö!HºÓÑC15>K»O¿ÎÕl$Ãày­&ÝɃ­é¾Ä;ãu˜ ]Sd·È¢’®¢”“"ØÂ@½¥ºY`®œ9ð´ÖüÐý–•GÁVÍåµÂ)ÉâÅbÃî9‚g959m°wãÔÞøPÊÙv.ÎCò×n5YI ×È΋fò‹&ûíxÉÚ²Ó“«¥äËdøy-ã瀕à üQ¯lñ”NŸ`[´“ðq³t\Ç5NAH:§†ärsx¢–¶Bã̉Eˆ“åòMSNκûø­Ï[gÞÐN[|Š%§U?lB$ý+X±]Òü´Y^¤ývV,*ØýJðz^y,Í×Zê«|ÅÕ#'¤‚}¼6~ôÏ4$y|z¤‰ ±ô©¥u?x  3Á5¬Í™uØ!uÚ¢‡ÆJü)·#Ò©¢I,†þŠËoçÊÀl +&—–î–»ø‘G±1 + ¹ªóžî§Þ þ_æð‘X™€Eb" Ž–F¦œe…ºæ£áB¿d;c⛪| %=ÎA–r¶Ÿty»ä?¦€–½OÉþôA–5§Õ°èMæxD_<ø±uïÏ]?„T†RÝùÛþ¢SP»~.¡í:ÞùŠ+uúõ+OÍžW®¨L’9`@„ßràX“ÊÄ…°>ˆÎ€Nòß-6î[žÆ(ÏÅ%ûýŽŠ«*xY˜#Ü•  pË 57¿›_'A¦Þ²€"…«ß‹qcÉRaI«²»NU”ü²Yj%—´¹Ã·‘üwËÁœ¨/æüˆ“ð,OýrCqgF„7a@×Ô‚À\ùïZ#wí1ƒ£O¶?ømÁ’ܹÐU™,¢ò(‡Àž·,íWãÃP¶^f‚>³¼ïðÐÙKèծɠnÃâœEzK•æµþ¼ÒÚ¯§”³‡üw|/#¤`@ù.ú0ÌQr[Àðc,½Á§.jI S¤;ÐKG@Xþ»VMKÖ]ÏÛl2¨†@#Ü~„Ÿú }h~×`" åžÜJž¹Ûêˆ@/…„÷%ü]=yî#†:V^í/0 `z®3+#œˆ#‚ß•ÿ®Õsâí¬eƒJ¨ƒæAb†–ÓjhøayãΨpñ¬­";Ç} ðS˜×€òŸ@á“Ó4Ö{ò¼€äwÝ2ìúv˜ï¬+ÈA¹6éÛRÃå`“–¿×éæ Œòß5‚ ’Ï@tHA; ʺmP)‚H³œ›¹SøXSr©?·Ÿ$6­ºú•E%¿Áåÿí ©A‘ð,/ýË-eëreßšÛgèx.~É×8jÚõHtzéÜL”>†‚(½škÜíÜ5ž½  +a¨­åºèÒî{.º\ýgð9„íQ±ÙUËgžd”üF–ÿ«3#AÔÉ"Šƒ•æÖ +ò»h—+ùïMËgÎE¥•ÈU,ö|Á`—‹MFç~Á†sV£yΊ–äŒB±ƒ íG€°“(O Ì‘)…õ÷Î5ìgœ ¨ÿI ³þÝöò` v–÷‚/{ìÃRJ‹€hùA·îì_Ôo»O9!–šCMŸ’Ä‹ä7~Óºÿ}ú:ðÙójøîfË©iœ|X„ä7æújÿŸªNíï1)|§;Ûݾt <È÷ºkùô¹ÄÂFå ¿ø1Äf;iÓ–MXºnr~ ìyË?yȸNÖh2ðÚ=s08ùNc2Õ°Â÷lVX”´µî{ÆÝßÄmýª.ÅCتð´55ܳ¹é\A$‘ÿ®ñ¸êÈ÷²ê†Àµ¨`ñE½ÊeN©p~#´ìsòg"~åì{úŸ ºßú¼¥ÿËò½NeNr¹bfù¢ÉùÅæ€mOÇ5?'ð=ž2”üïHP¹Ú“B‰îô $H(ÿ]í÷Ô…Ò5B¢“%)žr™ØÂ ßù°“`¹q·3Ö-˜ó·|[[Ìù`EÄF˜H!˜—“¡º¬Æ9æØ“UžP­²5OhlZyÿÕý·|ä!Ã95ŽüGLƿ٦jµ¿ëKd{q¬l=ˆ2fB@rùï¡kM“¤”¯’•JŽ©†'‚¹øS*œq‹»0à Ð6üægø¯85KrPX üîž7ù/óãߋ•-³\ÝvÙኺ0g!\/b{Ë3p€Ý9pkZÕêæé'°µˆ¨÷ú¬Aä?ÞÈW¡ªÇ£HؘFôawÓÓAPIþ» 8¥Ëz…'d¥vAxéåˆ-Úr%n &WôˆÁ/}©sAîü5\9H¯q^Çq»\‰£Ò\;ÿU½2‚±­bí5øxt÷É "ÿ/Kö´ê<Åö„2]‹Þ"€€Üòß=Š¡Å-\µË/Pºe4B¢’@3ضïYw?‘ïÀò¿=-üÓ•êøsKõ‡©ÊtâPÁhWLþ»Æ5Æ`óÔã ’°…’ÓŸ +š?HE°‡Çf7Œ äœz_3ˆîåbÿW[ËæŠYÕƒÿ'H]^;…å¿{lb0bÕ‡µŸ#*q^èD¿@ìgÖ®… ÿà]¿r÷Åô-ÿkñ§ýyªøkNVOR¿*ðšKþ»G=V€0í†j~W‡rPf3h™‹;§AxçDãrwÅô-ÿ¯_šä!cU{ŠÐóªë¥F-PÐåÿÜá¿ú¦ŸUœH)kçm!FmÔ„á©5c§ÖœxgnñXÇò^T RP­À÷(ØæB2ûTË0W•üw  UÄïCüVåÀ 5x×/Ý­©’½Êÿ„þ¿iD퉎 v …H +ÞT§üŸ+1Îü¢yê±¢Ž©ø¼ep.V°íÔð*|©%ä×—tïçÚ;>›Ûpj;Ö¥ü‡ÚÿÕÞ\¶šOo®Óšg¨†™leP¿üŸ+F°ªl›ývyÿ‘”ò•0” ÊXИèv`®•~Pvrçv öc]Êÿ£Õ‰j–öeƒÙ'(I…úÝSmÉÁÞëG0"Bà?X•ÀÈD¡¥åé<ŽÈ„ä²%ÝWÁt‡%Ò–G3©äTò¿>)ÕCƪùô[dö)Ï›«¦å¿‡`é¿íã¹ÓâÑ*Ŷúž›'ðåôÉõhAYOu&ÿã<‚g©YÚ/,&,õuvC—HOòßCz Üþ 6‘ë¶Þ]Ú3›±´?&s‰5$ÒÐí­òpċͪÌ\6Ö¾º‰{Vy .HêãTOò¨¯ôhIí¹à™}zA½ü?{©i×£éÕ½¡1©ÖÐȰ¸Œ´Ê®†` ©Vb€a¦mö¹¥o-êØVÙ•ZÄ;ŒÂ@Žé!ÛÒ«z`_»évhïûN Ú–‚cHÝÖ³©K:ѯл"s å5œèëIþªÔ’Úßõ!°± &¨¢Ž^îÑò¿çøÏ`ã%G“),.½rèØÚ3ª¶™+FÖÞùºo|º#Än,!j`zŠ=Þ®¥/VðgBu#L¨ësG¡±¯= kL/A96·Ê*?îºþ§¾¢‹&5‹£‰ÓüלÚòÿ¯'Êl°U¢?•! Nþ÷ÿ9Ú…«b ‹ü7TU%°ã¹êêW`ßX¿íþš ·ÀîæŽ`®‹®òë ©0åa* ˆÈ»f³ëÛ +^´°´L­èȪ[—ߺØ.¼åiØþ ”­ãè÷uµ«Ý;¯û‘0=Tx|fßé÷ýí$úÿ1vËÞ\ºPµ®ò+ÇjÉìS¤õ1xWù;Ž>¡ ±TÈŒîX‚Šx‹¸ýSD-ÁÄ×ø¦À¯ëúŸ`Âõ®‚#|uü¤û.½®GÖœ|Ï•‰^Uñ- ƒÒˆÄÜE{WRI«@&^oÁxxÑlÕŸàÅÕ9*õ ‹÷¯»+“BxõckÌBûáu¼øºÙ%(,_kFOP ù‚‘®{E zäfÆÞúP¯9øºØ{êµ:ŽþÀ¯ÂPb]!pö;Å_dJu?{iQ‹5ÕŽÓ™òx¯¢UýAO/ÕKs!Õ(ûP÷—¬¸Á› ¶ë0Ň/{©(¥>€32cï‚Ï2{•áôǘ­Ú’UŇüËî%êõ^K•Úð¤ò,Dò–}(Õo»oar\*8¹tEåºüšžØ+B)UˆüïûRóî?c/ F Œå‘#Y„•ûÍ&Mªý]ÓÁÅ‘"9`¡<¥E~£ðçeMð£‰É(—¶‹ææˆˆÏ¨éƒ»Óêco2–“’)€@óÔã٠ñÙUàg€?8X5:¯}5÷™EQƒw±¿e%|¶#ËëºZ+áö»èЦj@Ò•}@ÁSɬbƒ¥ÅĪ#ßÃdÄ^lJ)!˜ˆãrjöDËiÚà¯SÉÜ‚­<ü’pPGT¢_FËøŠ\XNõ_™,ÓŠœ(g~”]ýPS hæCácXìÀt'è¸!ÎlbQSq×LãÎÁJ!\fº+×ýØ.´Àú|ðÎÏE¿4¤ }óÚ»b2+'š=gÅÔ•^K+úbEœãŸwiUí?w:8]Ÿ"zPIðÝ Úö‘…µ7\zÃTÓ_%É%m°h…“2ù³7¥_)!ØY(r›7ù•­Gb¼¥jø&Ì#.‚V[X4Z6üàõH)pŠèóÂó”’ã‹ý]áVî׋çJQíÿïÉ%¹‘›½ñƒ™qýõÌÅx1»Ù†bÕõPNÓ˜vãU ˆµàÞªº‘¥¡‚â]’¢ú%óÝoÄúì|,EU[&hWà/,ù/F‹âÄÿ£¶^æ½< –t ¿Àê€é£Þ{¾Aº +]1Öüª%FüÒŒ ½œpV²ÞG+c9U•l[qìBªõ+0mI SÎT_ÔŒ=0WßôŒ@TõÑ ¥_cÑu7ƒP˰ÇYau°0©8ê«{«ùziŒãŸt¡ö÷:am-¤0jî}Wʆ5¦µÿBùÿÅL•ÜRþR!€)`Ùæ;³0‚.½RLt> Ö¼:”œ²Ù›¢Ê#V5|\‹Â¨>Þ®+µ¿ÇðÅVÏnöF)åCS@Õúc’Œ_ìßµì}«`®)_…s†¿€$u¡LXü³\mG…á*ë=¤Qá?–ã!0uvúåî¥Â#”îªPCHècµöŽÏ¯!ã¥%eÁ-¿mBaY¤××®ÜÉ8Ò´ìù¦b  —bºa,˜Ú’EÛa'©3?¯:{Hù£¶NÇZØ]÷Ýò¡´þ¡“#̺˺›µ(¤#ù/U "K«ÁöRª7.š"fÂS €ÞÌG<9ó¤åL•ÎN¿œTš1&˜-ª»w‡D§¬8ðü¢ÃPDØ“4O?S½°xyƒÄÁ DDñè¯ÀÛZ˜Q|MìŒR^_Á~†Ç°òÕî˜{¤-CgÒÞ³:{ªµÛ:Trp§ªX{8OƱ w!Hi ‚NrØW]ý +c1( ;²:"¼6˜ù»nx%“Ó@çS²ú*µ¹œxÅÄ×EÝ«ý1|9ã…'Ê t]Íà+»ûÆ7¶‹>êKBÏ^*¼ÎdÄJI]Ä¢µÓM‚ÞS +WNºã¢¥à^=rbð®_)PG*ÏCËØß“DÙÿqg…çjY_ÊŸ/¦IóÏØ´‘ 6<àä—pSXXVôþ^¹ËǧLÜJÏbsHJ,\Bº»öÌgð €Ó‡2P`~{¤`uŽ+»Åüñ°ÎÕþ˜Ú¾ å:û_`¥ŠJ+‘iG@@†Àø›`¨H,lb´ “0È“ni ¶}ÏB¿XçUÅÓßhI×÷ÊßU»/O¬PÜT©ÀjÖ¡Á"XÃHÇÑï/Ýx>  vðºL*^N‘åµ%ÞJ‹O ŒiÔ¼ßcð­Ï‹6‚ðÿ÷òùòhy½b9 ûF®·0¬ºúeCaŠ:¦ …FÞK¯Pì•÷füâSÿË ·ý~‡ÎÕþWÿ{5É¿ªþ.¤¶†D'#rk QŸ#ô +Í!€=…êÑ“ŽÈµuxÑå±qæÖbñO;¿¢{‰63VàʘhN”QýBÀÿeý1Mö{Ä÷4§Bø“Ù§×æ7ÀEøþ@ #¹Ë°_Òƒk˜•BÛ•¤¿±²6' +4˜FÿÿØ>õ×}ý©´µy-›‰uS»rXù’Ã^·òýéz*M›aûÆPûc‚#¶g•öBe‹!pï·Í>§¼0¡7j0Å%—®Ð‡m×fåÌç‡ +Œ°òwÕñË‘¯8ÐEc"“¹ÁâûoûXCB‰Š*7pî/7|It?(îhLÕ·ðÿ?“K¾¦0%¶OÝwhQ´ðv?7O=¦˜û°ÜŒò,@„CJ‰êG{¨7+R¯jÿÏF‹°8!äJx÷X»eCAtm¬]c-DÅUØu€Þ§ãšŠôˆvXyä¥üÖ­ª +-wÇÏ·þýörý-þÿ8]y]Mg–?Ê_Ï€ÂkÉàu +pÊiWfê äðÅ+ï?™R¨ç®ì­n +2kjÆNw+XÊ€\D•á®U=r3 ºàñ-WÃk6ßW{su©ùA¥:3¼Ç}Ól[QÁµ„¤MZÕjЂ‘ù¡à#pè®Ýt;¼tCcR´Ôi”-ëöâX½ +ÿ_o,&“e{½Í'`†L.[º¡ÆÉ‡×œx'@áF/DaÜvô8!DÀJ^Š-K|#Ôm½{åá—nÿÔ 2¿ÿ¶‹p¯X¶å.¬íaXÖ‹¬ø$îŒÏweëUøÃì3/’ˆ$î0”]а…ÅÀ5ü“Ù£˜Â EØ\î¿å#ÍM `Të8úƒ¦]ÂnÛ"Ù ÃÐÛ#`º-4*è8ë¾9‘6]ü»f´—{ÈçK÷]˜*8¬#sòëñÉÓ´Þ¬MÓ£ú‰{¡6i?ø0 ^‰Ütv Lë=u±ìÛ¾Ð<ýDÝÄ=0¼DI +WíÊiK¯^Ÿ·,Y{¥#£!¶½ +Ôkw©ÑÙ<ŒÖŸ©¾„!Àހ޻#le™}²wJICàWŠõºþGð2ƒ5&U— VäE¯Âî Ù†ÓÆÚØ”Ž 9 äDéUþ·›Ì>ç´4„!0DBÔ«üoK Ÿ_W:#B€øg:²t)ÿ1Zôu%éˆ B`† +u)ÿw–Ùç‚Æ¦ „!@ÌAà7›Jô'ÿ¿£"”'¶Ï9ÍL‡„!@,@àoôêÁëT”.„!@ÌCà_v/ÑÙúÿߦ*aÔ:¯’tB„!°Ú¥7ù"뵤 „!@žü­îô?-)až•¤sB€ ü§ñR=é.ŽÙç‚6¦ „!@xCàãá"=Éÿ‰âXoµ¤k„!@ž|»S?a·­Üa!³OÏ&¦sB€ ¼"ps]²nÖÿ'ëÈìÓk#ÓEB€ ¼ °© FòÿS•iadö饉é!@^ȲëCþ?ۑ嵂t‘ BÀÿe³L€“ÈìÓW ÓuB€ ¼#ðD{¦Ö?>.ô^7ºJ„!à‘¼h­ËÿÍ…döé»é!@>€Í$â¤kw +€ ³ÝböQ9ºL„! „Àƒ­éÚ•ÿ7Õ& Õî„!@øF 6!T£òü¥)¡döé»ié!@‹!ðÆ@¾§€û[Ò«Ý'B€B )9Lsòÿ_wW¦Õ¿P«Ò=B€ ˜øiž¶¦Zü3µ+%"B`1Š£XQke +ø»íåñ~±:Ñ}B€ &Ž/Ó Üh~4S•(!@„6ÎüùX±ú?¾¿&—¡6”„ BÀ úǪvai~ühQJJ„39Q_ÌT©ó+ÿKB™«B B€ üCà„*7þ4]µ¡ Æ¿šPjB€ ?¸µ!EUŸø$™.‹÷³”œ B@ g›ÓT2ðÓ~ô !@b«&,Bƒ¾ÿx!©}Ķ"=G„€Xz³"ƒhô×eõI´á+¶ñè9B€ C "ο€×úó(ª{`MGO„!(p ƒQЦ"ˆÀÇdi…u ´ÙèyB€ $BrÓÄýqºò©U™Dì)Q“Q6„!@Hˆ@KJØ›2Ä ÀFówº³Kc•²"B€ºÄЇZÓÿ§±ƒÿûDÜ ò£ì’’2$B€ žç홹¥Ì_g¿ØXÿ5Y‘VŽ4ý2µeK„€FÛ7ÄœªKy¡+ûÓÑ¢ÿ8^úûˆ)þßm+ÿíxÉ…¡Âg;²®_š4”nS¢LôB€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B€ B@ÿÐ2»8 +endstream +endobj +650 0 obj +<< /Ascent 435 /CapHeight 435 /CharSet (/u1D456) /Descent -11 /Flags 4 /FontBBox [ -342 -238 1247 786 ] /FontFile 756 0 R /FontName /XKEAZI+LibertineMathMI5 /ItalicAngle -12 /StemV 82 /Type /FontDescriptor /XHeight 400 >> +endobj +651 0 obj +<< /Filter /FlateDecode /Length 590 >> +stream +xÚ…TËjã@¼ë+fç xFoc°^`Ø<ˆÍ²W[;[zü÷Û5²l¾“ÍßåA¶}YÉç}ÿñ¼qÍÃPž)79Êve&úLFÇì»c¦.ú#Û®¬«'&9ç¤U× Ù‹›P¶˜¤˪hojÙÚ a±¢Ìû[¦žù…ÜBñöÚõò²©Žµ±\²Å;v}{UºŒÅk[ȶ¬NlþH"m‡¦9KbÜX­X!t7ùô²¿H¶øÁ;{wm$³T.F­y]È®Ùç²ÝW'i,9_±e–­ Y_΄3–Ž×&.÷ñ°©Ž€ñz<)âŒO"J„@X`b'¤GØnÛ.D¸bÓ L×èj0ˆr××`×yÖfJ›‡Î¾­AÈñÁô×÷ò5ºûÀø.‰* Äšf# @Uhßòk2Æò&£ò}{ó”óHY„©¸Ñ[*Ž\ÄÑèÚq<Æ1âDÅÊÁ•oä8ÅbŒSÄ–Št +wô÷;z°=œHç0ωuŽ^N¢ó yª}È3«×è|ßѳù£®pïS|â$úmÈSí9æ B­ýBu?·0sèŽq|s^9o[w_Œ|h[ÚµšjðéÓŠÜ··©T©ŸZûé_Ùkfü‰_ì +endstream +endobj +652 0 obj +[ 354 ] +endobj +653 0 obj +<< /Differences [ 46 /period 48 /zero 50 /two /three 53 /five 61 /equal 65 /A 68 /D 70 /F 72 /H /I 76 /L 78 /N 80 /P 83 /S /T 86 /V /W 95 /underscore 97 /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p 114 /r /s /t /u 119 /w /x /y ] /Type /Encoding >> +endobj +654 0 obj +<< /Ascent 658 /CapHeight 630 /CharSet (/A/D/F/H/I/L/N/P/S/T/V/W/a/b/c/d/e/equal/f/five/g/h/i/j/k/l/m/n/o/p/period/r/s/t/three/two/u/underscore/w/x/y/zero) /Descent -174 /Flags 4 /FontBBox [ 0 -177 509 835 ] /FontFile 757 0 R /FontName /ZGUGQH+Inconsolatazi4-Regular /ItalicAngle 0 /StemV 72 /Type /FontDescriptor /XHeight 457 >> +endobj +655 0 obj +<< /Filter /FlateDecode /Length 843 >> +stream +xÚmUMoâ0½çWx•ÚÅNÈW…œ„H¶­ +Zí•&¦‹Tàп~3Ú®öz¿™yóœ87?ž×Ûö¯nÝkõâNýehܤü¹=77Uß\®;?:׺vÜ==¨ç¡oÖî¬nËUµêöç;O^uÍû¥u#ëÿ¤Â½í»O +ú¨Ûû=Ù˜‰a³?¿ûkLy 6FÑæ/7œö}÷ Ì½ÖÚ–][öH<Si£¦cãݾké¥^Ñ90¡j÷ÍYVôßü¬H^œÎî°êv}0Ÿ«é‹ß<‡ÒrLŸ†Ö ûîͯ_®/Çã»Ck¥ƒÅBµnç«øy·§¦Wý×øæãèTHkÃý›¾u§ã¶qö{sÁ\ë…š×õ"p]ûϞќòº¹KÏÕµÿ u”/‚¹A² )`JbD>`´öØ2ãš™$`¤TY'`”(ZqŠÇÁ¼BJÅŒ +)KÒÌŒ%553<Æ,£è(‡hþl™×wBš6„‹0¦Ða™G„+L¤gıè«cŽWÀ c œrn +œqœø9çÖÀ–ã°MÜ—8%Ç àŠCMq.â†5„Sâhr›ê›®®AƒáúI‚Öå皎­ú\SåþÈ©¿ÇÀ á]8 é`Y‡7ÑŒ1OÊyeäµñÖzlÃë,d mYĸ”S£SJfß-›1i‰:C&e c4ÎRÆÄÉØˆËÄ$D&™ Ë +Æ&+ü¬bLõÉãaÉjÆ çÁbôÍy°üœ£‡+çÁbèÉYB¹ü‘þœõ§Ägý ñYJõYŠYrÖŸb–œõ§x(rÖÁèœõGT“õÌ›ËÁ`F+ƒÙ­L ,C9ô²â?d+þ£¯ÿ¡ÍŠÿÄÿ1£ÿ1—ÿ¡ÓŠÿðÄŠÿ˜×ŠÿT_ü‡~+þCg!þ£o!þƒ_ˆÿàâ?ôâ?åŠÿÄÿ‰/þ?ã«„°øY +ñ³â?^ŒBü‡Ÿ¿\–jò‹UPñœŠ{Åð¡âxᇻLöó^U}9pQãóq½÷›Ë0øO}cèÖÇ}¿ïÜõ3tìÈ¢}¿Æ!VOuðÊñË· +endstream +endobj +656 0 obj +[ 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 500 ] +endobj +657 0 obj +<< /CreationDate (D:20250604140153Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +658 0 obj +<< /BaseFont 758 0 R /Encoding 759 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 761 0 R >> +endobj +659 0 obj +<< /BaseFont 762 0 R /Encoding 763 0 R /FirstChar 0 /FontDescriptor 764 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 765 0 R >> +endobj +660 0 obj +<< /BaseFont 766 0 R /Encoding 767 0 R /FirstChar 0 /FontDescriptor 768 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 769 0 R >> +endobj +661 0 obj +<< /BaseFont 770 0 R /Encoding 771 0 R /FirstChar 0 /FontDescriptor 772 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 773 0 R >> +endobj +662 0 obj +<< /BaseFont 774 0 R /Encoding 775 0 R /FirstChar 0 /FontDescriptor 776 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 777 0 R >> +endobj +663 0 obj +<< /CreationDate (D:20250516111417Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +664 0 obj +<< /BaseFont 778 0 R /Encoding 779 0 R /FirstChar 0 /FontDescriptor 780 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 781 0 R >> +endobj +665 0 obj +<< /BaseFont 762 0 R /Encoding 782 0 R /FirstChar 0 /FontDescriptor 764 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 783 0 R >> +endobj +666 0 obj +<< /BaseFont 758 0 R /Encoding 784 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 785 0 R >> +endobj +667 0 obj +<< /CreationDate (D:20250516003513Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +668 0 obj +<< /BaseFont 778 0 R /Encoding 786 0 R /FirstChar 0 /FontDescriptor 780 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 787 0 R >> +endobj +669 0 obj +<< /BaseFont 762 0 R /Encoding 788 0 R /FirstChar 0 /FontDescriptor 764 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 789 0 R >> +endobj +670 0 obj +<< /BaseFont 758 0 R /Encoding 790 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 791 0 R >> +endobj +671 0 obj +<< /CreationDate (D:20250515122242Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +672 0 obj +<< /BaseFont 758 0 R /Encoding 792 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 793 0 R >> +endobj +673 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 206.37436 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 345 >> +stream +xœuR9rÄ0 ëù +}@ÑÖÙ¦Ù>HÒØÍ6ù~PmÆŽEÈ”£º^Gi+•Ÿ/óÄçý“ +žqò}¥oó£¥_³|õ„÷1/3ÝÈ\r ÈΣ"ßp âÇ™«å˜@.€œ' Ìy!N¤ƒAy) ­äLKì§Ux¬¡´®õEÂ%Ùv‚vy¨zg ]ª­!7gˆzeÙU¢m€eöu‘¦—4•X¬H’ýÄ•é!9@6$Ø+(Ç +A~WÉuÝè»G¶(±N®Q%Æ?#¿xŽKÂuó6²å ›xocÌQ€´UÅmü'G¹ªT5߆–²ÚBOè *ä=õ®) FÞ#Ó´47TÉ{Èš¯&º©“÷Z´íû!?¶Wu³«ÅXµ¶\Ã7òEÞîcÔð¼”·£ÂL5|#ÿåíÂ0àƹ˜ì¤uo³û!ó•ù +endstream +endobj +674 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 206.37436 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 564 >> +stream +xœU”=S1 „{ŸÂðÿÊvKCπ楡áúH»2†IÆ“·r´úù’ü´µju÷ó3k²¤Îa¥Í:úÎ5~ûJ´×¯Ÿ1ëkV{ÿú„òŒø;„Ô$êûô(yÅW•ö¨f‡ªëéª}°HyjÄñ =?K#M4R—>áЈi%[Ü"¢phÄòlKi•!®¸‘½âø„‘õÒn´-ÛnØŽªiw¡k«Aà:†jkÑ´t+»ÃtLͲ„¦EYÉqAØV,¥ê•Uh95Ù„¡tM97 ís‡à†xÖ"ÌÄrÍ3ø'päo°xâ%Äqó –-1%²!ïìL,Þ¨â öÄrQ)j~ƒ¶”Жö¤©`É€Þ1 ˜Gò‘aZ˜›Ì%ù1_LZë6ŸäkÁF° X?–_·×qSÐ"W-wr.’ÓA0:¹Kɉ"LÜ€¿äÀFpšéT—¡ûþÇpr¥/8ÃTÃ0q†©†Q˜3Lå0Œfœa*„¸/BlŸÅ‘SLå`Œ©:ÆTÇX„sL倌Ý9ÈTH²d’lŸeq AÛ¾,‹S Üæ…YrðÖ/Íâ¿ WçYÉsvœg¿8ó~+rifFüTö…™þ–z•Ë2«ÕVV'Éè +í.¹ {ÿÐZ—cŸFºËÅØgŒ%ìv)ö­èÒ¶bì‹Ýë2ì› +d÷0ìt²{v¢€ÙýË0)ô?Û_ÂqÔ' +endstream +endobj +675 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 206.37436 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 313 >> +stream +xœ-’;r!DsNÁLñÿ¤N”û¶)Qâë»ç µ[4¼Yu ˜sj{×6êéE‹ºvo¥­:â×#”hÏû7f=«ÚûþŽ?¡¤ÿBøh3ê} 6Š´$¶S7jâÄ*%ÕØsÚª NT©[«Þ´PÅĉU¦úH–8±Š8Nò©NŠê#“Œ8Q¥yŽJ2âÄ*S«1HFœX¥Ëa,’'V©qfQ 69*ÏJ0_2œX nó¹E¶ýv"À3pò¯ !keluÂÿÆÖ$ +qG3_‡ ÄóÍzbÿ·ÚÊ6S ìŠíîIr÷ÏíMrOŒ#=…0äž1—pqȽ]Ú‰˜/{¼q{Ó´BÉÞ7®·;hŸ’½o\oGÑr%{߸Þ.lÆÝiG:6|†ýç“¿ +endstream +endobj +676 0 obj +<< /CreationDate (D:20250516081347Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +677 0 obj +<< /BaseFont 758 0 R /Encoding 794 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 795 0 R >> +endobj +678 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 142.22867 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 345 >> +stream +xœuR9rÄ0 ëù +}@ÑÖÙ¦Ù>HÒØÍ6ù~PmÆŽEÈ”£º^Gi+•Ÿ/óÄçý“ +žqò}¥oó£¥_³|õ„÷1/3ÝÈ\r ÈΣ"ßp âÇ™«å˜@.€œ' Ìy!N¤ƒAy) ­äLKì§Ux¬¡´®õEÂ%Ùv‚vy¨zg ]ª­!7gˆzeÙU¢m€eöu‘¦—4•X¬H’ýÄ•é!9@6$Ø+(Ç +A~WÉuÝè»G¶(±N®Q%Æ?#¿xŽKÂuó6²å ›xocÌQ€´UÅmü'G¹ªT5߆–²ÚBOè *ä=õ®) FÞ#Ó´47TÉ{Èš¯&º©“÷Z´íû!?¶Wu³«ÅXµ¶\Ã7òEÞîcÔð¼”·£ÂL5|#ÿåíÂ0àƹ˜ì¤uo³û!ó•ù +endstream +endobj +679 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 142.22867 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 564 >> +stream +xœU”=S1 „{ŸÂðÿÊvKCπ楡áúH»2†IÆ“·r´úù’ü´µju÷ó3k²¤Îa¥Í:úÎ5~ûJ´×¯Ÿ1ëkV{ÿú„òŒø;„Ô$êûô(yÅW•ö¨f‡ªëéª}°HyjÄñ =?K#M4R—>áЈi%[Ü"¢phÄòlKi•!®¸‘½âø„‘õÒn´-ÛnØŽªiw¡k«Aà:†jkÑ´t+»ÃtLͲ„¦EYÉqAØV,¥ê•Uh95Ù„¡tM97 ís‡à†xÖ"ÌÄrÍ3ø'päo°xâ%Äqó –-1%²!ïìL,Þ¨â öÄrQ)j~ƒ¶”Жö¤©`É€Þ1 ˜Gò‘aZ˜›Ì%ù1_LZë6ŸäkÁF° X?–_·×qSÐ"W-wr.’ÓA0:¹Kɉ"LÜ€¿äÀFpšéT—¡ûþÇpr¥/8ÃTÃ0q†©†Q˜3Lå0Œfœa*„¸/BlŸÅ‘SLå`Œ©:ÆTÇX„sL倌Ý9ÈTH²d’lŸeq AÛ¾,‹S Üæ…YrðÖ/Íâ¿ WçYÉsvœg¿8ó~+rifFüTö…™þ–z•Ë2«ÕVV'Éè +í.¹ {ÿÐZ—cŸFºËÅØgŒ%ìv)ö­èÒ¶bì‹Ýë2ì› +d÷0ìt²{v¢€ÙýË0)ô?Û_ÂqÔ' +endstream +endobj +680 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 142.22867 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 313 >> +stream +xœ-’;r!DsNÁLñÿ¤N”û¶)Qâë»ç µ[4¼Yu ˜sj{×6êéE‹ºvo¥­:â×#”hÏû7f=«ÚûþŽ?¡¤ÿBøh3ê} 6Š´$¶S7jâÄ*%ÕØsÚª NT©[«Þ´PÅĉU¦úH–8±Š8Nò©NŠê#“Œ8Q¥yŽJ2âÄ*S«1HFœX¥Ëa,’'V©qfQ 69*ÏJ0_2œX nó¹E¶ýv"À3pò¯ !keluÂÿÆÖ$ +qG3_‡ ÄóÍzbÿ·ÚÊ6S ìŠíîIr÷ÏíMrOŒ#=…0äž1—pqȽ]Ú‰˜/{¼q{Ó´BÉÞ7®·;hŸ’½o\oGÑr%{߸Þ.lÆÝiG:6|†ýç“¿ +endstream +endobj +681 0 obj +<< /CreationDate (D:20250515122158Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +682 0 obj +<< /BaseFont 758 0 R /Encoding 796 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 797 0 R >> +endobj +683 0 obj +<< /BaseFont 766 0 R /Encoding 798 0 R /FirstChar 0 /FontDescriptor 768 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 799 0 R >> +endobj +684 0 obj +<< /BaseFont 800 0 R /Encoding 801 0 R /FirstChar 0 /FontDescriptor 802 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 803 0 R >> +endobj +685 0 obj +<< /BaseFont 804 0 R /Encoding 805 0 R /FirstChar 0 /FontDescriptor 806 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 807 0 R >> +endobj +686 0 obj +<< /BaseFont 808 0 R /Encoding 809 0 R /FirstChar 0 /FontDescriptor 810 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 811 0 R >> +endobj +687 0 obj +<< /BBox [ -9 -9 9 9 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 132 >> +stream +xœm1Ä0{^ÁÖÂ6>“6e¾‘&Š”ÿ·çèNˆ(nõ°ù$áF€òE9ÉG,—;+IºÕ¼0jjÝZm£dÅ´t†¿vò.ü‡2œ¤,C¤ì…@û˨Þtùƒ¨Cgà­Ç ‹÷toø¹E\“1½&'Ã“ÛøA´Ò EGb +endstream +endobj +688 0 obj +<< /BBox [ -9 -9 9 9 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 33 >> +stream +xœ3PÈâ2Pðb…\.] Êá‚R\\N\l +endstream +endobj +689 0 obj +<< /BBox [ -10.303301 -10.303301 10.303301 10.303301 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 49 >> +stream +xœ3PÈâ2PðâÒ5PÐ5Õ360660TÈå‚3 r€òpn—.ŠT—²¡ … +endstream +endobj +690 0 obj +<< /BBox [ -10.706339 -9.854102 10.706339 11 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 100 >> +stream +xœmŽ;€@D{NÁ–ÀÀþZKObŒÞ¿;M¶!aæ1ø$år4¾©˜xtÁ&£†)ø¢R¥ksŸ?b}6 .šö€Æ«ºT´nàV9qÌ÷ ×%³Œ[¯><ˆ6zhå&Ô +endstream +endobj +691 0 obj +<< /CreationDate (D:20250513045445Z) /Creator (Matplotlib v3.10.1, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.1) >> +endobj +692 0 obj +<< /BaseFont 812 0 R /Encoding 813 0 R /FirstChar 0 /FontDescriptor 814 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 815 0 R >> +endobj +693 0 obj +<< /BaseFont 816 0 R /Encoding 817 0 R /FirstChar 0 /FontDescriptor 818 0 R /LastChar 127 /Subtype /Type1 /Type /Font /Widths 819 0 R >> +endobj +694 0 obj +<< /BaseFont 758 0 R /Encoding 820 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 821 0 R >> +endobj +695 0 obj +<< /CreationDate (D:20250515122205Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +696 0 obj +<< /BaseFont 758 0 R /Encoding 822 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 823 0 R >> +endobj +697 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 163.62 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 343 >> +stream +xœuR;rÅ ë÷\`¾mš×çIܼ&פ¥ÍسcVXÚÒUs½ŽÔVHÿ>_–Ÿ÷OHxFáûþ +ßV¯Y¼{ÀûBN3ldî 9dçU‘o8ÉW +ÕtM 7@ÊÄIs9'ÒÁ „<‹”Vr†%ö’*<ÖÐDX·ËæEÂ%ÙV@»²«æÎºT[CnNÍ•eW‰¶–Ù]4ƒˆ4=…©ÄbE’ìWfvɲ!Á^A9– ò»J®ëF?=²E‰ur*1Žû1ø6âÑ/ ×Ímd‹N)6ñncŒ^€´UÅ6þ½\Uªš·¡¥¨¶Ð:C‚ +ñ @½k +¨ÏÈ4-Í Uâ²æ«I£nêijmD»À~ÈíUÝìjÑW­-W÷|;ÜÕ}#/Åã(7SußÈñ¸Ð x»qnæ=;iÝmöaôŸ•— +endstream +endobj +698 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 163.62 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 312 >> +stream +xœ-’;r!DsNÁLñÿ¤N”û¶)Qâë»ç µ[4¼Yu ˜sj{×6êéE‹ºvo¥­:â×#”hÏû7f=«ÚûþŽ?¡Æ¿>ÚŒz_AƒÍŸ"-‰íÔš8±JI5öœ¶*ˆUêÖª7-T1qb•)‡>’e N¬"Ž“|ª“¢úÈ$#NT)Gž£’Œ8±ÊÔj ’'Vér‹dĉUjœYTƒÍEŽÊ³ŒÄ— g'ˆÛ|.B€í@¿‡Hð œû+hÈZ[0Ä¿1‡5‰BÜÑÌ×!ñ|³Þ…Äÿ­¶²ÍT»b»{„Üýs@{…ÜãHO! ¹gÌ%œFroE—v`"æËÅoäÞ4­P²÷ëíÚ§dï×ÛQ´\ÉÞ7®· ›qwÚ‘Ž ŸáÕ“] +endstream +endobj +699 0 obj +<< /CreationDate (D:20250515122206Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +700 0 obj +<< /BaseFont 758 0 R /Encoding 824 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 825 0 R >> +endobj +701 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 163.62 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 343 >> +stream +xœuR;rÅ ë÷\`¾mš×çIܼ&פ¥ÍسcVXÚÒUs½ŽÔVHÿ>_–Ÿ÷OHxFáûþ +ßV¯Y¼{ÀûBN3ldî 9dçU‘o8ÉW +ÕtM 7@ÊÄIs9'ÒÁ „<‹”Vr†%ö’*<ÖÐDX·ËæEÂ%ÙV@»²«æÎºT[CnNÍ•eW‰¶–Ù]4ƒˆ4=…©ÄbE’ìWfvɲ!Á^A9– ò»J®ëF?=²E‰ur*1Žû1ø6âÑ/ ×Ímd‹N)6ñncŒ^€´UÅ6þ½\Uªš·¡¥¨¶Ð:C‚ +ñ @½k +¨ÏÈ4-Í Uâ²æ«I£nêijmD»À~ÈíUÝìjÑW­-W÷|;ÜÕ}#/Åã(7SußÈñ¸Ð x»qnæ=;iÝmöaôŸ•— +endstream +endobj +702 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 163.62 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 312 >> +stream +xœ-’;r!DsNÁLñÿ¤N”û¶)Qâë»ç µ[4¼Yu ˜sj{×6êéE‹ºvo¥­:â×#”hÏû7f=«ÚûþŽ?¡Æ¿>ÚŒz_AƒÍŸ"-‰íÔš8±JI5öœ¶*ˆUêÖª7-T1qb•)‡>’e N¬"Ž“|ª“¢úÈ$#NT)Gž£’Œ8±ÊÔj ’'Vér‹dĉUjœYTƒÍEŽÊ³ŒÄ— g'ˆÛ|.B€í@¿‡Hð œû+hÈZ[0Ä¿1‡5‰BÜÑÌ×!ñ|³Þ…Äÿ­¶²ÍT»b»{„Üýs@{…ÜãHO! ¹gÌ%œFroE—v`"æËÅoäÞ4­P²÷ëíÚ§dï×ÛQ´\ÉÞ7®· ›qwÚ‘Ž ŸáÕ“] +endstream +endobj +703 0 obj +<< /CreationDate (D:20250516081045Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +704 0 obj +<< /BaseFont 758 0 R /Encoding 826 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 827 0 R >> +endobj +705 0 obj +<< /BBox [ -8 -8 8 8 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 132 >> +stream +xœmA„ E÷=E/ðIKEå +n=‚›É$Þ;ÄÔMíËãå/ oT +ŒO’°ä4K®7 )­ËĈa^-‹r Õbí\‡ƒú 7F·KaJmŽ7º™nã=ù£›bôÃáðJ¸g1d•cpø½ð²=üáéE ü!Úéc|D +endstream +endobj +706 0 obj +<< /BBox [ -8 -8 8 8 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 132 >> +stream +xœmA„ E÷=E/ðIKEå +n=‚›É$Þ;ÄÔMíËãå/ oT +ŒO’°ä4K®7 )­ËĈa^-‹r Õbí\‡ƒú 7F·KaJmŽ7º™nã=ù£›bôÃáðJ¸g1d•cpø½ð²=üáéE ü!Úéc|D +endstream +endobj +707 0 obj +<< /BBox [ -8 -8 8 8 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 132 >> +stream +xœmA„ E÷=E/ðIKEå +n=‚›É$Þ;ÄÔMíËãå/ oT +ŒO’°ä4K®7 )­ËĈa^-‹r Õbí\‡ƒú 7F·KaJmŽ7º™nã=ù£›bôÃáðJ¸g1d•cpø½ð²=üáéE ü!Úéc|D +endstream +endobj +708 0 obj +<< /BBox [ -8 -8 8 8 ] /Filter /FlateDecode /Subtype /Form /Type /XObject /Length 132 >> +stream +xœmA„ E÷=E/ðIKEå +n=‚›É$Þ;ÄÔMíËãå/ oT +ŒO’°ä4K®7 )­ËĈa^-‹r Õbí\‡ƒú 7F·KaJmŽ7º™nã=ù£›bôÃáðJ¸g1d•cpø½ð²=üáéE ü!Úéc|D +endstream +endobj +709 0 obj +<< /CreationDate (D:20250516055607Z) /Creator (Matplotlib v3.10.3, https://matplotlib.org) /Producer (Matplotlib pdf backend v3.10.3) >> +endobj +710 0 obj +<< /BaseFont 758 0 R /Encoding 828 0 R /FirstChar 0 /FontDescriptor 760 0 R /LastChar 255 /Subtype /Type1 /Type /Font /Widths 829 0 R >> +endobj +711 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 119.88684 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 343 >> +stream +xœuR9rÄ0 ëù +}@ɺÛ4ÛçI¹Ù&ßªÍØÃYZ€¤®šóèu¤¶Bú÷ãóe9ðyÿ„„gÜ|ß_áø¯Y,=à} %§6rc:¯ +¼áƒL¾î òXM×SðæžøRC,'òd:TÀPgQ’`3,©ß¬Êc C„UÜ6/ +.Ù¶²+»kîì¡Ëµ5`sºi®l»Ê´ ¨Ìî¦B”é)L‹ɲß82³[ˆ ö +ɱܿ«ìºNô3#G”Y§Ö¨2ãºó…o#ýxÜFµè’R“î6Öè È[]l㢷«NÕó6Œ5fÂdèÏ4»¶‚ñ¬LÛÒÞ@Ð%ž%k¿Ú4ú¦O<×¢ÑÝ€à<ÔÇíUìѯZ·\=7ÊE<éð`TϲO¢> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 563 >> +stream +xœU”;Û0 D{žB †_lӤϒ4r“&×° …ÉØÃ±4Ÿg—»«¶>Ûõ*÷juŠJ[Ój_mŽ]Úõíkª—¿~ý¼Š½Vó÷¯ï×Ó§”»\öþ$;jÑë1¥ß¦ùaªÞÃôi©w»p|Ò(·Z¤ÛƒEšÚ‹¸V‹Ç="–‡E<Ïö”0¢^Ù[µ(ŽOšÅ.íNÛº=á†íl–vWºVñ®sš¦JÓ:¼ìÓ¹,‹ +M«%ò4R.…°½"XJ³+Zi¹,Ù‚¡ K¹6 ýó€à†DÞ"ÌÄs­3÷'qàOòxæ%ÄqóIž-3%²!ï“üÌ,Þ¨âIþÌrQ)j~’µ”Ñ–õd™à9€Þ1 ¸GŽ‘aZ˜›Ü%Ç1_LÚêvŸkÁF° x?žß¶7pSÐ"W-r.rÐA0¹K9ˆ"LƒÜ€¿ÀNpºëTÕÑ}þc8‡Òß/ÃT^†a SyFaÁ0•—a4 S!ÄC ±~)ƈ‚b*/Ƙj`Lå勎©¼ cw2’,…$ûç@YCжËÔ·u`–€¼C³ÄoÀµÀy5ò\ç5μƒßŠš™?•}`¦¿§ÖzXfµÖŠ’Œ®Ð®Ê9úÇ€TÇ11Œt׃qÌKØýP[±¥m!ÄØ»õ0› +d÷e8è>d÷e8ˆrd÷/ä0þlÿa8}I/äÄ +endstream +endobj +713 0 obj +<< /BBox [ 0 0 72 72 ] /Filter /FlateDecode /Matrix [ 1 0 0 1 0 119.88684 ] /PaintType 1 /PatternType 1 /Resources << /Procsets [ /PDF /Text /ImageB /ImageC /ImageI ] >> /TilingType 1 /Type /Pattern /XStep 72 /YStep 72 /Length 311 >> +stream +xœ-’;r!DsNÁLñÿ¤N”û¶)Qâë»ç µ[4¼Yu ˜sj{×6êéE‹ºvo¥­:â×#”hÏû7f=«ÚûþŽ?â!|´õ¾‚›?EZÛ©5qb•’jì9mU'ªÔ­UoZ¨bâÄ*S}$Ë@œXE'ùT'Eõ‘IFœ¨RŽÃ?ÒJ“\ +endstream +endobj +714 0 obj +<< /Differences [ 27 /f_f 35 /numbersign 38 /ampersand 45 /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon 61 /equal 63 /question 65 /A /B /C /D /E /F /G /H /I /J 77 /M 79 /O /P 82 /R /S /T 88 /X 95 /underscore 97 /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z ] /Type /Encoding >> +endobj +715 0 obj +<< /Ascent 685 /CapHeight 657 /CharSet (/A/B/C/D/E/F/G/H/I/J/M/O/P/R/S/T/X/a/ampersand/b/c/colon/d/e/eight/equal/f/f_f/five/four/g/h/hyphen/i/j/k/l/m/n/nine/numbersign/o/one/p/period/q/question/r/s/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /Descent -237 /Flags 4 /FontBBox [ -1082 -268 6171 893 ] /FontFile 830 0 R /FontName /PNRYLF+LinBiolinumT /ItalicAngle 0 /StemV 80 /Type /FontDescriptor /XHeight 432 >> +endobj +716 0 obj +<< /Filter /FlateDecode /Length 881 >> +stream +xÚ•UMo£H¼ó+z‘2ÆÝ`¾"ËRFŠ´“M¢ÕÜF6´³H6xòï·ë½ç¬´ÚÃä`«úQïuUÍݧïÏ¡íÆƒ ã/ZýpóxZV_÷—àî®ÛëÙ Ë“sënWçõ}Ûg·¨ûê±~úå³'?íéÚ¹ëÿI¥{í‡)ØGÝ¿¸ŸáýPöã©®ç—p9ÃÅ„áa?»ðtX†_Q²´óߡƌ—~9ùÞ´)ÏU¿ÅU´ÅŸnšûqxPæ‹ÖÚvCWgd1+ñ£V7‡Ç~è&1¥°˜Hu}»ÈŠþÛ³ÍÏoóâÎÃq 6µúá/ÎËôFŽ>«oSç¦~xU÷¿¥Øw<_/—“ƒ:¥ƒíVuîè7òÙ>íÏN­>Ô{ëËÛÅ©ˆÖ†]´cçæË¾uÓ~xuÁFë­Ú4Í6pC÷Ÿk&æ–ÃñÆÝy®nü_¤ãbl šMDS¡ r!ö…È£ µÇ¾{œ4\È}!#£É:££(P0v©y†ÇÁ¦£æ–Œ™ÐTØÑ`hÃ- †6hi*. ¥©QàÃþÍgÝ|·í'‰È‹Ã`m—k`×Q•Ç„k„ ×ıØF'\¯SÆ8ãÞ 8ç:ñ îm€-ב´.y_âT\/kÎ3M̽¨ÖPæ,cä`xfŒ} ÏLSü°®Þ×ü™šÖÙú¶æ´ã× Öò$Às„Œ¢uD÷> +endobj +719 0 obj +<< /Filter /FlateDecode /Length 678 >> +stream +xÚ•TMo›@½ó+¶‡HÉxYl ‘e‰#YJ“(¶ªÞ*Ö)’ ”ƒÿ}÷Í`§­zHÀÛ·ófß »{óåeãÆE½7®/Å«éê¡Í›|Ý5ÎÍMZçÃÉTý“1…).³Ýƒxië|czq›¬ÓuUöw6x]åÇ¡0—¨ÿióVVï!XGÜnÍw÷±¬˽iû²2ÛµÛnßy®»ßuÆ=îûêÇ0ÿÕgW"ͶìVþI¥°áâ£á‚úfÚ®¬«áÝK)-±ªŠ¤>¡)3 “K©‡²*Ú±:±G­Ž§DQæý8¢w~²Ý…xsîzsZW‡ÚY,ÄäÕNv}{¦ºîœÉs[˜¶¬ÞÄíGM[Ñfhš£A!åRæ`ײ}~ÚŒ˜|²cWõöÜ¡hìq-y]˜®Ùå¦ÝUoÆYH¹‹,[:¦*þ™›³bCé gö¥¤’Kg+‹ã¹}Ii±%"1‘%4²k ‰†DûDøhäÓœÃbK$ VL$äëâ`¦.ŽòŸ»Öz×Z™„LªT§äÑ‹9Sìgo«]x’c|`Åx{ÌzcøTSÒÚÅl×~,FµJy„æ`^W!§Ê(ÿZ1j¾‚g?e-òû+æÑµ)ñåŸÍÀ+öƒZfcøˆÔ”S¡•!i¥ZÂÿÖ +¹. mHž¹ÆˆûÃg4em +0ÞF£Šçœ>üDšx>£Ñ?j¹'1zÿ¼µÈ©#ÞÈ£y÷hÔ¢5÷‡0÷ò¤ŤèOÆ8#‚ñAlýÍ¡¿Yü‡±~“†=3NßçHË50ÎÆ¹q—Ò®Ä9ÂMq=¼ùжö\ÓuB‡ÇÑžáëÓÔ TôÐUu¹i1zΜß–æ +endstream +endobj +720 0 obj +[ 633 ] +endobj +721 0 obj +<< /D (subsection.2.2) /S /GoTo >> +endobj +722 0 obj + +endobj +723 0 obj +<< /D (section.4) /S /GoTo >> +endobj +724 0 obj +<< /A 831 0 R /Next 725 0 R /Parent 608 0 R /Title 832 0 R >> +endobj +725 0 obj +<< /A 833 0 R /Parent 608 0 R /Prev 724 0 R /Title 834 0 R >> +endobj +726 0 obj +<< /A 835 0 R /Next 616 0 R /Parent 6 0 R /Prev 608 0 R /Title 836 0 R >> +endobj +727 0 obj + +endobj +728 0 obj +<< /D (subsection.8.2) /S /GoTo >> +endobj +729 0 obj + +endobj +730 0 obj +<< /D (section.6) /S /GoTo >> +endobj +731 0 obj +<< /A 837 0 R /Next 838 0 R /Parent 616 0 R /Title 839 0 R >> +endobj +732 0 obj +<< /A 840 0 R /Parent 616 0 R /Prev 841 0 R /Title 842 0 R >> +endobj +733 0 obj + +endobj +734 0 obj +<< /Filter /FlateDecode /Length1 885 /Length2 9111 /Length3 0 /Length 9745 >> +stream +xÚ}seXœ[–5 nÁÝ +ww îZh) p(R¸,¸»{Ü5¸»»»Ëävßî™éùžïyÿœ³ÖÞë¬w -%P“U b–…Ø;±r²qœÜì¬@ºn6NZZ-+'[ð¿0Z0ÔÑ +b/ô7+ƒœþÜ¥AN‚´,j¦N.N'—§ ‡ €‹ƒëߨ@ÅÊÔ¶hZ‚ `Z)ˆƒ;ÔÊÂÒIð·ö_Ò,9 2 +-@l†þÑ6˜¸þr( Z€ÿåàääà0X:99±³›ÿ¡Ìÿ¢ØÍÙìÁNìŒÞ”±7“‚ØÙíQ89fV¬™€-¬ìQØÿ’Òrw8f`óÞU@NP+7€'€ã¯ïß'Ã?öÍ ö¶îÿ® +²صõÕuµ˜ÿ.Ù¿IIIˆÀ“•‡ƒÀÊÅà àäàæðs¼ÿ·dõ·ŽÿNV°7‡þeØÌÙá_¦]þ®ß1þ·*ÄÉÊ `øÏþgœ¬³­í?œ3üÓòÿáAvV¶îÿ¿ˆ࿺`P›Y9ÛýŸ|Íÿù7 +N [+S { ÛCV޲Vn`3 •“©%Àdëþ'®mo†ÚZÙƒG«¿F +ÀÊÉÁñœ–¥•©=ØÑÀûO +loödìM!fVö.^> +¹£püé2//À“`õGÉ vûó6;›=ÄéO +ÀÁÙÉðgxPþ*5'€üÙdûüä »³½ןaþÆÇñ7öçðö¿,˜:C¡fîÝûãï_ws«?EƒÝÀ¦(ó3Sá몀æ»J WÖí‘÷“´Û’Y=ç¡-Îïã¤ù¯Bo$â:1—6e®Å(ž=jƒcÕ›½žŒ£5Æ·›PæÆð{Gó%ª{ÈIYµÄw¼ž?{éøÙÀ6¼iS¤Íúì,ð˜ƒsçÚ-çVÝS²84³­¾óƒO õ©d‚5B;ü£_ám¶Iú4!‚+ö™ÆÔõÍ$væè+…b43Š÷Qw¾§þWäý´Çr™—c; ‘>!ì5öÐ8§ä^‚"Á¬gQænSG[´+];=†Ð’]ìk¼ô*g\9±ñ¸¹< Ç¦½«¥ +¶Ò—†ïšÍš«ö]ãNù¯e-^‚æÁ´¦e›!¿* +9S‚;nõ ˜dز¬“0|Þ9©`5NFˆ&©ñGÞ;åàyaÀÒ8‡.W-¯˜ÛyðbQÔú¥™å³c¦ˆ+ÌË#§}²Ð<î^vuJø˲Q´û;_‘ã&/ugÓdXîñ)’˜44Ô„¼Éþ&Ìá‚õ“vÌÉvL"k<¨ñÈÖº “8ýEž„áDÉáaœ;nkÃ6Kï²7ØŸ!lȧ®^"ÖM0-BQé[sJ{ …\gwÖ@~G€±ÑRä]%qä<Ü ÛNà™õE/¤mÉú#†¯øYÏdÖ'?Öá¸O]Oi܆H½†i{Û9õ4Ùæ††Y'2ûT÷Ë8:­­oK´ +Sç´úI˜ÔV†ìaæ(EbNÞzšs@/dŒd3jÔIùÓ3~ ˆ]¾|õ÷š3\$ÔÛ:Å$Ô(MEž÷Ñ*ñ±¹–£ ¸ª6y—KåâiXð­?ïydœÁÃ{Wô˜D©æÂ-l¯Ùè¼ï4Ís ÏMÉõSm?R`4Þ?‘œ½àøFiç¢P$Ω:vÄRCp}bî§Ÿ¢K”èw4xÛÌ>òïW‘ ¡>:µóóìS(mqb€V«2Ê¡zdÛ[ÚM9­¯ˆ¿cŠå,ÑÕMëCí¯1Ig}¯‰¦ë„ÒÛ9Û‚/P5Ù^Uønð¼3V%™{lÞ!u›8à(´*åã¾ø§×ôŸz²-\Ô®hKn 8ý\cú©þ^ØÅ> Ç ŠóAÃޤíü7Ë,¡×S¾à§mA0³Bgߨ¶å Ý á…YN“¬óÅ©·X­W‡µ˜W£ð‡›Sµ´íeùMµ£C¼q‰h}”:t·r7}>†sgÖÛ´QñoìbúËS§âó,p1ÀrцÉòÊSU ´JÑ À‰€ìZèùéö„Ë|Fuƒi6ç&€Ÿ¢ÍÛ•ªÍ ä4$Ïï’~ˆËµÝž ?\P×ý Œ¥x§¾ÚZHèÎÉ2˜ÓL|9\Œ0 +ÂÖĸ[_'Dõé§«v‘(¦ÆŽ;ö”Ö«–ÝkÕë Q¢äÆçªCûrjÇòK­yBºZä5,šUKŽ´´5陵IûN*'q%i7O¼R_Øþr}978´Ûþî­ûh€!Af£mß'Ý“>ívð Â`öLÞSdo•—Þ^¸[ Ábô•â/òÂ{à©Ez~ üE›–ðÞ òW½Ri¹ד¶øßPˆË—0Ï‘Ÿ3àÌþ[GÙ+ã÷±Œé×G«<8ßg†3GZ³Ð‰”å +I¡Wš&¨¯"Ê´5n÷„ÇÕ +iÝÐæÖó6õ–‡XC}øŽ!±7”ØøøF!DC ’\1-5øˆÓ-õ­gŸ°ÈîÙ¿ES‡®LHÛË%œû‚Êa¿)zô2d~¸_.u„#êÄd6‹'ô³ƒÍŸûAˆ?=`@—oQt’]°ƒbNš¨ÅvÕ{îÚݧÚ49Íi ÒDß OsÌ`i®R©¬!OŽpϸ¾÷+o’«¥ü}z&8‚g78(f¼Þì_&üvXoD/žc”2Çæ1Jâžê«P/Ikšà‰Z À~¼³UXà$a¨r‡§œfwd0B>£¨ájõƒ€ytzCµôÚB¹¢OÛeùlFÜd@ú]ÖA¡¢2mV\Š lÚu¦òˆÒ| Rê’Ýs _O¿3^¾}Õ¦±†7Çѧd*«Y|µ,2‹8*ºÓÁ´a‘Ðwß}Ud1>°¢ZEÿ’F¶×óP¼ Âc-obƒæ‚‡g9¨âž…ñ>ÚÆUê)bZ +¤…eN™&¸l¿§C`M“hÇ󻹈Àò¬ÌöWFneÓojÁ}fÅÎõ¦ËPÓùDªC~K™•ird·²’uãÖýíÝóÞò‰-Þ¥>'c•x—sVð]·ŽÑˆn×O¿k-ßÄ&¼›Oæ¼+gíü^*÷Mm£µ”2ùY Èù}çkéºÏxlÜ…ü㓆 Ó€’ÃÅ®ð¶/Òþ%"¼êLù¡„šP>dzmú÷VŸß°šõ]˜ñ(LÖLUôÞñÞs· + A8²¤±ñ1²–¯ »!è!¸EÓþM>@Q“±‚1ƬÞÑÍ2~Šá–%jÄÁwØ·\yúTò8ñŽ%JCñê6gtͺua5Y–B5 ƒF©ºÙ§Rð¿Qâ„ËlìîæDÊj>*qq9BqÛDpòŸg[L3᫹%„¼í£9ñÅúº‚r<¹ù‘@úEà ›ùë•\ØJ*†%<=SÏ®Žt½PƒŸ<… ÚT±þºâŸêd tlüu,²Ç›ÍWm'/,ÈÊ&zbËþs­EkG±&¨+”M©©%Q¹i‰®ØËQy) Æk=TDzþ^'¬‚Ë`À¾ É $Dû%¯ˆ±îXÃkþð‚Öp¤AB„nû»Ì5n\ÆÇoânS®6•QºX”®qÆìÌQw-dóyvZU‡ñ?»;t$§jžðÆ4VŒàKÝüduÈÖÔAq« #, §×Ÿ‡Êy ç+]9ðÅÊ€änÒTðý†Ü|‡Ö™Z=¬Ç ÓW’‡Ï«ôG_©1`.kÜVø *ú³'ˆª3Ö-åä³2ÈÀåDòZn&`1ÃH*ÿòCí…²wã.'müþùznÿlnSÎŒéTþüâzÀ*A1$òÊ-Rl2}ÀP—@‘W,†ø±*:3ˆÒ˜y*ÞU«?ßd´<ä‹™²Oµ½^‡UκÉÍìIiÔÄtJ:0<•;.B”GébuI?ô9N¦šqùác_ +ÌÜ,ºš+ÙN ©BJ/ëü2:Ž£v/Y(œ±¥rÕÐkÓ‡Q³3óÞˆFûÞ áóVnW“‰‚û™¥‹4©6ûÂÕ@xìÛ’;°^t{\ +’ú½™¯GžIÔ›£žõ¤µ‹"·óç‰jê#xòQö4,jkwj÷˜lñ·‚ k¯ +¡©5Hóuèö—b–¸}ã(É‹|ŸtSIƒ‰lÉAé€Îz»¤èÔ‘xœq$ÖRŸÅ›2(nù–`¬•ÿê3âò&VÎb„ÅèsEz—½aƒ-élœvQ›q!¬Õl¼‰ó[_“ú˜ÔüUæñHÒîBuJ&_súFLÕ„±˜@2N³ ”ؼú(¬Wmw,ä$46d”ÅRJ© Û_†)©Û·™€_…%V?»ˆqL:%°æ>W_cP8s¶ƒ7¿övš³8èä +wÜâ”y¦€ê ßD–zùšæÖ ^z’k&ß“‘¤Ýnl*giüXîRí íÇç÷T2:t³4ZaÂÏ”¶ÍŽKi^®UÇ´W.â rB8”{2}âû9^1·b—ȶÄ+‹ìd£>³oóŒëØb¤"b´Ìrú Ã;icå¡Ú§ÍŒf«=î¨?çcHäfR÷ç„bŒ¤;Š`1½™”¾‰)UÑÞj’I»´ñ ´2…åÑBÉúÇ’š‚r:Qôå˜ÚyçíVˆ¾µðkÓiòF`ö*ÜÖ×\¹eÜr½[¼¢¤¢YÞ;O1/ã|Å—QF«Òå¿ Í.5ö¦SB†‚‰BˆœZ–UÇVá—I÷íEoÛ÷í(Góâ¬å³Õ¼cûDø¸Pµ$hæ^£PIÜË9þ é-Ró¯Ü0Ø;Œ²KÛ”‡Ï^fNu•¸9øÛÅHXöâ]DŽ¥,N”ÎsÁB”÷2Nøú䎾æh²x?â²ßèªÿœ,ÞPi“ˆÈ¸¬Ú5hŒ¾|üv•gvŠó¹'Î8ÒFÓË\%'«†CŠd°•ÿ[¨LÙd÷p·ˆ¸|©þC=)ÞÖ:_q=,È[úûǪTçpn›µÏG’=“wáÖhÅ­æÜ!0©èÆŽfóó¦å]Žƒ'Ij[Ó¾cQÞ¼×ôš»…Gà.Žö:ïhØit\â:JÆ!W ˜Â  Oƒh$­ÑVuíó‰#[]quzûC?ƒîYµ—¨¥›@’w;_o¢åJîÑWûhg5ß ìígåŒæ–cï¸Ø±"1â+˜³Ù<•øCŸhWs¾$ +üh‘ZÝQ¨'%\»2„Ä_.A•¶Lúw">—i"ÌSpR¬_W([øÃñpñ·Î!Ñ9ËÅ}¥ãõrJC¬´A\YkKK+@¤È i³w/L2„¯žj¬4æA`“Äÿ´F*`Eâ¤wœ¤óðtfœuÿf3ÒlÃ-ÞM™›æ~TR óé-¤lçIå›Â®[Ì(®¨S¡3Š9º7ØÔÑCŒ€µL?ø¨¡D¿õÏJÄs£QĬ©ÇëU~2Ÿ9t4B_•aáGañÒl>v +^évìœ~¾—{›ó>ÅwjسÃãçTõ~*I‹HÎÓTmD§‰¦eTžËõrgnx‡áµî—dÙ/¢DÖ-CÇ4Õux¡$Îd-á ãFm|"PÈP[ò— ‹…‘ƒ4ð hÓ^Ï”Õ.ÄYÒò'FâŒÑîÄwµ¼ç, ?^TQãÎ Y4²µ~L}͇|ìxƽóc"&Ë›)üü¾è0½-š÷T‡$Ÿw²…~Ïkf(%cãφS=A¸‡ô~ßû9µmádd´a²§ÊÕ½CpIWñS,gÙÊ»{©/½Gë=À©Ï´8¢_ޏ]MQ©µvA}2CíoÎùlçC™rJBôûû ÎL' + +‚ð¯žrd»EØsþn×ëÝ;±˜ÏkŠD®}wn%ÉoNg>q‘OºÂèUØY(ÍlF¢ØÄ"L[ÏÒ13”^w?.äD~Uõ»\þŒßB‡/Ñìð—%¦±.1BÕ}³‰(™½g.!uÈ#¶ýê]l¾ä1߉_‹°Š6K›luì8}·›ö…‚x rRþ, Éª·²x“¾m–H߯Á nZ@ÓgкçR§¶9)ù~ÞíU{Ò.×q[EÁùýñéìÄÎ/&UxbÌýéµ§šÒÊy“5q}"„C%¯­°Üý[¦Þ_­÷{žýÁ'/î…\Iw&yhõ¬E4+³RÖÓïOüº뵩I¦:äJ¦g±&%àe6ïI˜’ÖØ[Ó-‘˜Á4} ŒÒ£¹á­Ë'KQ:má­Á#98!ؼÇë|­IT·?qиäH‚¡¦ çNÛ9-È +ÍÝ-ýè&c½Ý…ˆÝsŽ n b„ÝÆîÛwäTô zJèÚvVr?Wû…ÝJŠº™4I×7; H~%Kzè|§'Tð¦@ˆÌžÏó-Ü{† w –xÀúHºI‘æ=2Õ÷×otRã +Â(Â(åQÇ—V^©Åúoéƒ=‘¿+À!9ÂDª~ºYçò6l. Å œ¹¯Ïý ò6OÜÖô ˜Ô•fˆýmu1tù¬±ëHÞÈR­y߇£êˆUäWn«õÂy'”œ””—Âs»Ã‘;»C€à‚ð¤>| ;µjZˇÂÚ,%+Äyñê9fòKn¬îñ|NM¢,„‡)™ÖÉ> ú™C“ó—Ÿ']r2+¹·šN¥Ž€éÖ X¬æèßDÆb&]ãÖ–væaIÓ¸¿ìJQWÓYæïƒQL%v`m®œÊ¯ÖŒÚž¦Þò`LW§|h˜QÚZ¾«u\Ä=KµoãYpD” O™=Žû‡Hë¬Ùà +«½x«ÌU‚kO”ª³­œ¹2¡Å¶«™ÂÔ>T†¨F[F!B7ã]û]:G:dznsÆÚ‘•Ù^ñÓÓ`tQõe`ŒB*³¯oQøÛû ”¾JœÀÁ`äU7!ðMd“K6œhiµb͸úÀBvtœµAþã{2±ü€æÃ g£²rN¦lË]rª:E›¸+Î]¢úØqXœ5}ì³ ®ÜŽ@ˈÃö¡QƒÂ• æÌÒ3óÏ¡Ï5‹ÖFmů)B¹Ißø EÊ)_ù`(Ïw.cQM‚€˜$ çߊ²hPcÜQÈŽ.{²âŒjW©Àú,™þPnš1}h­Èn6Íìy7ﬥiU0Ù¢‹‚³Ãèòèµ)§Ü_øÔ»hÀ‹ã\€P"LŒÿµ;ªR -«Øj‹\ îÁ$ƒÙ\Áœ(þ;±ÆÌ+;à +ÎV--²Ÿ¯J ³zÔ×t…•Ûü«_5®@$gê6 +É’Ûö AõÖvSdöYý÷PñoòÙ¾é¬ñü¢‚¥§'»x$róÚ=3ýV¼Ñ¸û³ÒÝ+²Æ=¢ÀóäBÕ^;NÅÅGÇõ¬TíEß°¼ yL·íØü;"‘I…@-} DŠòÈå7`Ùkƒ +;ÀÍ’èr­$™¤‹rÙ—Í™Pt¤ Ò<àaàÈÏ”ÅGhðDÙ€±Ã j_Fðtæ3@_£–¼¤Ž¹’¦ìÛ@Ý]+üÞHÏbu›+;µQ¿Ü$”Xü‘,Q.cˆð–ïëÈ4DnæÅƒ2xB‡ I€=.Qtëöæw”0esnÂ+Îÿèw Õ/Xc†Ë4µ„DeR¬»O ésÕ”›€ vÅ¥ÀÞš!þ•þa ¦8d½Pû÷p/ŒÛ0ÏÄåY‰ý»ÖŽ1{í A×Ý©¿|O{f½)áùfÇqCb>aUÊ@ƒûª<ÓG›×—ê³(IJBâl½ÎðŒ0k…è)¨ëé _óí +t“˜ T+޼i"x£Ö•º’brù!º8£ù+ •¯u<1‚[­ ¼ƒÑÁa \¤¾ÊÍÞëºw½æº¦e°{w#o§1€ZÁQHa«7¢àdf$™öÎ$¬§”´úHÔlÓÓ·@›gx”³…kC!…eUVÔH¢ŸQ+)s•XÖ¸úòf”yü±Äl-~¶ý’ûü¬Û?Ìu‚é¸1¾ ýT«’ˆ,œj[0d•r¢¾Wî^-œf=ú¾µ®@²¤Ñ¯æ—›¼ kxÆgçl7Ëí®”µ‹òÎJ6/¥ˆEÑ8 -Æ"ÚמÇsù·´—Ú~ àŒV–Z0ÏðGWìTµ:È}ßn«PÜÿ8dÚ|÷Gü™‚vë±¢ekˆÂé{ÃÚ¦¢iùYW2‹'ý3ùÁ@r§Ò¡ »µ<16é2n‰ÖÅÙw<¹U3Àá…Ï¡N{˜Õì]o–`@L¥£f*J&fD·KMúeÄU»x<ãBÕü1³€†¥K9Ü2ÌA ’D·Ä>f°äú`¿ï5Lðn°cMt/Kêaä–¥Œá?2•Ĩ~úŽy}WFºÔû-íH‹ÿbXð5ïòU4F£^Œ\yY»:Yß»¡¦ÇÖÿ{‹Y_\ïy*MìvW¸A9ÃÃ4ª¦‚hJ…Qâµ70?¯Ä!Ó °&H}\´ñXök²'|±mp-Ÿ¥«Á&YMKø¹9Ðâq+'òG±‡ñ"þ¾ƒ`O¥Ë¹µVîT›u}ÐØq(n†ò’ì·è[¢¤ü™“¸A¥ ÜÙy®=y‹ç+ÔÈûVÂßß:Á-ñ^¹5DõeÅ6/A”tØÒI8ëÑû ñ:Å '»ßU>­$Ò’çJÌ+ZµÝYjnY‚)ã¼ß?†ú)W»ö?HŽT@Ôsù?ÜúDÊŸ¼?õœ¯õùbÓ…vÕçÍJ›'È»,¹eÑ_×?¯>5±¤ÔöáJw‘å¶Ä<ÛÆÌ¢>K33âŽ+4Š•“Ëò“HÇå…wijb½ØÕ¼wê=ƒåœÏQÁ|ù5íý2|ˆž‰ð_tÍ×»Œ4轩íë{Î'÷Ðx¯I®Ô`ðCPì¡ÆTÛ}wT£^°9B ð^öh£­Tó5êË«¾Î÷PO-!%ÜÅhr…øw/Î|>ñ-ãò¾™£ÞN•çF§ 5ÎçûB¨¢ñ.7ª‚àÞÖ“dѪŽçËXêÄÞn+Q'ùõõ²“1×û7v߄ՓB¢ Ó“/(/ðás +ó‹wÐ#«Ú¿LO¥C°il<ÔÅÕw:{*¥á) Î…5û‰ÌÔi<ÒGß@w÷™ƒîV•‹ÆÇ*²ûIºfV˜d:Ô¡¯,•‘<ļÝp”'ãÍáÈ.Kóàë'Õ5Ì™cÑvªaKx +¤[.îd^å6ݼó>‘ˬöA’ý)›jM©7N›€/%°•ŒnTV*ê€W% pSf×L%>ÆA9ÇþãÆCb ‰Ó‹h‚‚l¼;Àùl­dkpö'Ûw8ÁËZ×ý-ˆ¤ª1;îh@¾`”[º2GŠ%M`\¤×£ö>³«Éý–Ñr”i=Þl òîX Étz]ùcÖ7ýöÝ4TJR…ã²un€ïæZݧD^bØãòtŸ€~[c(ÁØd‰q,Âv–$ƒl½TÄw5ñÝèÕ¾¾ÙúˆÀo䶃FžÝzMÂs{-á« — ]#y¶ÍµKØ×/u“$ó\ñTë½!òøqÙ{n­±`'ßT@\ãºE©¾±g˜âwn¡½]YxŒÊs¸ýŠ©:83i3¦€¹õ¹yí­»œr™EýX/ äe׫—„k £¸¦g‡ÇÖБõjKk zSû`§SôÓ¿Yåöî·<±ú4²yv‚¶4³‡É`»¡ñêJ>L“xg¶»cºãT,9—é^ +Z¿X]añË£Æ5ëh±yÕ+¨F=öÏVNÖÀ ÅØØ‚µ·,{”ŸG:ë°@t¬iºø<»ßò;P;öyB–:qEßwoááH°Ô`¶¼5áÜ`J»1›µZ·½U¬µåÀ‡fµr®¹eaÑ`78zÈ?TŽ¢!„¶~ÅÒU‘\ŠsT2I¢¬ç¦œö0µ^rK’*¦ ìue£#°^}±ÉvßÄéHYÍŠØHI%´¨iÖg[`TÆc`Õ òSí㠇ߙ;iÆ7ÃÍ3ï²ïŒ™ýa›öziò D"|“„,¸ñ´êX’é´Qe +¼oMðŽ, ./ Ü{jŠaQ29Ä(/±ZT¹xi)&2%N\'cKà¥ÏTОFŸT÷ +Kbn%*¾¾›ÓEÕWa%‹«åN~Z|G×èUµb¢c×ÏŸó}%ƒb­wCº—$þŒuÃçÅT„!ç\òBFV£GøæO×suêÚÒåÀwXûϤv·Ð û¤àqº÷pua¡ÔõvÔz¿X&I¸Ðï¶¹Wå[wk³6ÇÝfÍÊ’ rÜ^É~Í­Xˆ$’E”HÓô—JðfÃIsnü¯Ø+æ°I$ò¥À:á^üF1£|—¹©¶eM-èšöhij—ÚXÅ”ìëÚoˆN–œÚ ÉFÄÆœ§vòi’µ¿œ«ð½ÈºT)ìޏñ¤àÛºh8ÔŠµƒY(z.%R¶Ë'饹A`È2Vª ‡²®u3F­¶F©>qš¸ø¨;¤næJ9u{ùÈi½©d žR"òEé/ïXÿewÅà ¶ 2‚™ZˆCË/ÿøä_S(LGK˜txV‘Ç”ñÅ6û¡å@œ=}ÿªj# 62(æÓ\ßñ:Õ³ïJ•I–ŠëDŠh]Õx\çÒ˜;> "úYúÈg=éíc4'ŒÛåšuÞ¸«{X¯¬jÖù(\¢Iô­oS£H$Oî™±(¿`¬Þ8çòœÉz‡kFRtRîÔSòíy°Xm6=Ì)l‹ÁÔ¶m.ŒÜïÑî8w–lÚ”‚=~SÛ4“G‡_iqD¬fZ:Èygá|Ý©Uµ%ü#"÷dhµO"í¸ä󜈇޺O4ÕˆQnðR{Ìž¯’:s—µ§Úp´|0èƒÄ…Mà\ØC*©úSõÔ«ð“¸'bŒ*¹§ÖÇTÁ펇†1YEóо%lÂmbq]×-ƒ´àŒ,ù¥ü›Ê%Z-J”ÕA?&zU!¸xñé²â·~opò è¬}*%Ï?K–'†¯¸Q•¸C¶î-Rמּî÷Z‘ó°žå×73ž ݯÍQt¨¼ú8¼DúNQú2eCYØ'ñ«ól°Zzá‰16õ‡Š% s ï´›U3×®&.|÷Hfd‚¢+•Vî¶ÆÕdmá·AÀîå·ëÏý¬O…7ª='ôIÜ’ë“k߯ „ñ½5ã&ϧ;夑&ái8yôH‘%#s$kK,ŸÓ14d3^Åþ Ý| +endstream +endobj +735 0 obj +<< /Filter /FlateDecode /Length1 1572 /Length2 7543 /Length3 0 /Length 8410 >> +stream +xÚ¥—P\Y×®ƒ»{ ÐhàÐxpw÷  Ý@k‚'¸… I°àî‚“ ÁÝÝ‚»ëOf2“ùæ»ÿ­ºu««Îéóì%ï^kÝÕôÔjš¬â–öæ {(Œ•“C 19Á P² ¬,ÏààxàèôôZ˜è¿-Ðéu@NÎ{¨à?l%@f°&e{pÑt¤@N'§ /Ÿ €‹ƒSà/;{'A€2Äl²h‚Íœ@èô’öîNk0ì V2¯-˜j`ˆÄ fog÷NÊö–+ˆÅ"œfN ù=äçcý)âÙ¥þs““•ó¡Y\!00àg™dì¬AF0 æ ÈÎþS‘ÕOÂöpazð•AANx˜»ÿÃþg&~Îÿƒ£³cp¦—†ZJÚ¿| ‚œÑ99– Àd ¢³ÿ ¥åîz¨¡%ÈêÏç‡8A܆EçpüüüýÍøA·¥=ÔÎý·¹ŠÙK€]FBÉ@R™å¿úü·™„„½À“•û¡I¬\ÜüN~~?àýŸ!ÕÌ ¿$qüv–‡ZÙþ’néâð—üWŽ€ñ׈0þ3˜Š= bñPÖÿµ×F¼Îv܈ƒ“ëÿÖèßNÿk»ÿ%„þÿaÚþ?fŒ]ÆÅÎî~ücÇ?;‡™ÙA,|ÿ.ŒÙKˆû¿\~züÛPôg~ µ‹™ÓÅÑügËþÌ&µ¶X9¹þ„gˆÈR ³¬ÌìœArm¨%ÈÉî!­š½3äçž\88þµ¦†XØBAÎÎÞ?—@PËI†Z<j àâ>TÍÉÌãa¬¹xyžœÈC$7Èí!7;Ôöàppy?´Ã ýçDqñØ]8¥x¸ù~ò?Ï/Ä#ññÿBÒ£A ‡û߈ëâú¸!îßø £_áî!à_áÅ#Î_è·.à_%£¿2JýF<¿ÐoõÀ_{ä•ùøþDiþF¿toˆï—ˆ‡?ÑôÂÂÅÉéá´ùãm}hÔ_ÏV‡yÜ@èSãöB6 eâ䮬ký|"=j‚ŸÈçúVâlï9¯fÝ”¦RÞE 3ø&Ê›7Hø¦èz°—^°e +OE +rDd”·Û³FXxuu|óØ8ŠÑÛó½TyÕŠ-Ô`Ež˜Û\ÙÃÔŠtQSgÔ‡ÀÄ‹KOü¼Zß—t>wV¬\5>„b“.™^–ñŒºhïnG\Ÿ¿œœ2m†»p®'†îzx²± !𣃚pâ~ê³N3büÜ*ôöS]ìÜ£’uõ¸ ([é%øêÞ )-ªÌ‚e¬‚3Ê>G›Éœ\·r†HØKÝ1ëX_µëƒÆWæJ‚9±„‰ŠPÏ•,Ívù¡\Ö­my•J×–œz›ù½ßI“-ä1hK^‘%Aõ¡{z¸ÈJÏ22Bí•H¥?X¿þjCãH^œp0"¢ºkï*{Áß•2´X×(œHD8£8ÿÃÏMZˆìe„ÄXåîFöùÆç â:ìÇmÖ½¢ž4ÑbçLS#¢H“y˨Grˆ[ÓòÁü‹_cW°ìz3«ˆ¯}×úæ}'F0ˆÜ)¬¿'pʺ?µ> Ôi€?˪m“%”†§½߆c&ú¸„h{(h1ÆÌ\„!èð¹c5ý¢¨$;5y§~¨~›«d—8âåì~Lwnê$ò™%°kU¾úº["èÅfñN:Ié[–utv?õÊ{®ùW‰ùïÔÇbnæìßf¢§æÆã™ÝeF$Ä]€¨Ê¸i`w柲—¦¨á2vÖvƒ-L™*‘Æ=‘ DÂúÐW¨v¿ÏT‰€ å-™Á‰óÛHé„èËÜ0¤# OqGµñ Ïß¾<«ª¾cö Û Y$§få­Óš}ÑD¶(J»?cSð5Ö!£ =Š~ÏÛî¬NžÂŽ«F»jÍ&ºésôp”^ÛV“ÐÀÄ‚s:X1=qä‡ÏÊD_ƒÛÏe0ôäüx”ÞNjÌÂ#SîÚ|=U«ôìQä¹€àí6+æÌ©|¥¡Yœ––³ùÝ©‡}F¾÷kÂ_ƒË>-+%þ·ô‹|*^ÐezªëªA5æ‚Zí¹ ºµ\úÁ•˜Œ®$ÅŽfÈ“ÃJiÏI¼uü`‹È”qÄsk¥‘åwS*¨c(nÙøN$/ì'FE¢y +§Öèö‹%ÃhN½°àF‘ñO*v|á… Sx•î”lg4pÝ!›aŠÂHFp~Â’NҤݱ!¹v9FŒ "\+û)ÙÓ ΜÙ*òÄ~r4ÂyV¥­\ÛÚ#wSý7Rl<¸ë<¦K©öOnc*Ô/Ž ^m§‡ÊKc¤y4,Z¶#¹‡ëàH«yî¯L^¯ìDp72é8 uæ Óö¿ +ÀMâ¢>`d0sùXhÈ`‡j4v}›ÀÉh¦  må*8öÜŠCàohj +g^«[&¨,ÏpLû~˜Ï– /øVa@{ô™Oh(u¢ÉS´”¡ÖZ6ïÇlŒPÞ¾]\Œß»S¶î­Àû‰$Áê0q@"§+Ÿ LÞë µ"Ö¬ƒf €_¯x–^”ËQG•‰õ­rÎÆd“´OÛ$|9‚ƒ—ÀŽÈ’ÕN©)Rð^ †5ª~cí3ÛË>ëÌŸ·™¼Ù‚â{ZXò¨–µÚÁ”‘+ÞtÀ˜ž™….ˆ\›ìÇ2Ëwtûªâ"žûYÊa‡æóàï`«÷ó +øÆöXçm>î–`x üªðßêÙ„B&äåw0¼n‚º¹|G[ÇMç@ø÷6üÇdM-eMÃaw«¨<˜¢ƒkˆÉâ·w?ÉãRG`SÑ‹óMWP½2{Ÿ‰Ì“háC¢m‚hö*Ÿ)8¨¤ü˜¹`qÆÐ¿» ¥EXT›Ø¾ÕuƒiÛä¸ô|xãN±MðæîèÄ“ +S…fXU¸×ìÜLÚœ‹mÆ68ÓAFúXö3jÀ´·‰³Ê8÷¾´|Í7ÉYsþ¶øÅÖU%Ì܈x`Izðê…wG=×ÚÞ%;ù±Êo²«ÊÜÚæ”Ñå±N|FÆYo;«ïÄnƧ*© §M#h¨ãà 1ûg(†Á%gw¼í:p— Õøyð£vÐìzP|Z#…Ý#s¹`‹Û2wvÆ]Z³CbêE°:ÊÆYEgdxÏ­ñJÒqD¡GŸj,‡J +Vµñ褼«LÀåL‘ZÓU +v…ÎŒ{í ¡L_HÞe:«Ì—›l¬I!Œ°]‹æ¨8&=â¶eϰ°;a‡^×ÕD0i`aO©+¶ÄÝF·›™(ï–eAHkË®`—û’€%b + Áôå +¼‚q£€= ¬pÝÍúñØíZ“èŽgÁ’tÆ2гÊUñZý“‘ºÏD³Kúãz²ù0}oˆZrŸc>§Eb›P·Î³hh‹øv õCš-éŽ8Kø¾K»…¤SjxÔ-Ÿ4°})ç'§Uàßýè /5´{qüμqjÀÁéÈQ%NV¥èy?i/ÔIWilß ¿·°Ìªó…•A³¬¶„e˜ò5h¢X5»R»ù`Œ!9táØ£›¦n~Q(БRHWÏH¹†ýXÍó•â7ÒÑå‘íótw Ì?z¬:’›Ü‚&vEi&ÉÕY§¥ùãÈ¡Åw©¹í³¡nT®œ $43Õˆ‹<Ãå<äÞà…Á9VíqÍ"o8aa°¦ãJŸ…ÆÌþ^ï`Žq=¼5SI-¼fÍ”YUަŸn×’ÿWTekgämù3{•„#{ùÀxªÜæ»ö!-Œ´åzØÅ·r0m¸IËÖÛ·ÅÓ¬H¥³Œáð IH-Y–dofžK‚sK3Bú À÷á³% MU±Îó#^LóôîçDâ¾:{k…ñ¤[Éçïùpµ›‘•H˜§±8lk—1Žž_îóC·%|У,Þf1Èíèw˜5àMéÇ$抨:•P¤â™bŠB€w¿ ~Qo“ÇÖ=+J¥c¸zsUçY7L Qð}zë¬öjlP<¾ ¬!‹ª»@º'nß®9z粌’“ÉëcQžÐK±dC,¢ø'è¼ßöâÊávnËLÈ_{”dŽÐQèoá¬)Ê Ýú!5‰óØUh#Í÷üæ}ßêÅ áö’í\#PDÔé7Šk +I\Ö[ô›I0ËZ7^A£ñ¢ WÖËu‡B÷Õݼ’g¾¶™Ñ½ +xf>'°ú†¥aéÚ‹å +šŸwâm­›õ?¥7د;DzBžÀú6¬FqGÁ_£ž}’¯N'„é"£trã3žÐžP"÷Tò]{nЧÙya¹Aò|àyüi˜%Öc«bí£õZ¸$XE¬t¿³Nñxñ8}þ¤¤°z¿5ªì¬EŠ4R÷‘ª- f–/Îà`b+º*¤j´ H $ÛDÔ…*•ï Wq ·"ˆô÷&ÃëµÅˆ·Í/yxø4'¶©òɹ¯çæ‹‹ËI)×T+(êè]îô†‹»GŽïÄFÇ}¿õ夅^ÙìªT†wHâú­Ç4ÉM_…Nu®¡œáº>ò“äœç¹•±Qðž`*YTÚ Á·n‰Qô» +R›¯„ØÎ—ñ^ó˜³ìs4}¶aéId à]nÕ4ƒ\O ¼¬ ÔœcÑÎDtúWÜúXΆ»ð?è0 ˜9û¶Vvš>ÀLòjGRšCús)_aSnP}ŒPQÝBOqJ>œ»B¥CzBš;¢Â¡Ë3îõÛïÖ?´Æ´®¢î‚ïmÔ׊ê”àXe§O­ÎIk‚3ÇåéÒ> ©t‰{LŸé´ª ø×϶9ORhä-Zï`JŒÝ³F¯ìŒ‰ž,#Hܶ¾0’Ò(}þ¸"Vø ò¢ø>;í²ûð‰:ø@è-“HJÌç3óÜlέrÈYe˜B¦Ö2D…™4ƒk$,s·»]é»Á^VÇ ÁÖOXÉŒˆLWÐÕ°†Ìã1iEî|}Æ¢‰²­©oßèëÍ3y4Ôgزì\o ½AúÖd½¥}î·wíqOáa,úú•JŸWÛu ´ütOÿì䛆Ubh“\ˆ®À;¾/¸&å”o…ˆò9.qÍ« ëWYŠ:›„©§ßk»¢0œOŽGE<»oÌ6&ú脵ëùº‡¬¶âµ –ØåcŸô6?œ]ÓèSS¾ô‘t3:yüpÕ±æ0*'ÂjŠ &rƒtÉ:hKçf¬‹~#Ëî/<’ij•àBáó¨Ýóš‘™êKáLˆ*vðb'yçG•â-™Ž(Òš¥ì “0Qß_†»9àrkT¼†¦__ž>iS 6"¾‹3b>T:D)½dIÉËêÁnÄ©By=ȉvòáµ´ÌË4yNaÜmÒk·aø¾ëb0Rdœ]ø#ºŽ.‡˜²L €hçé\¾p‰1`¥aJ§Žë13—å®"¸Âÿ^¹×ö.“ß›åú: nðV³ÇKòN.U•~ aÅ\öJ +˜ûVؽ kªy²o~CN›ùš°h/šªX×/–ÙWBBkƒhöSüNA´ +"‘¶BŸúÚKtd“h—àäÈúÕs7c~Óºê÷ܲ¨†ö"'×ÍÕµKÃî# +¸G!²U€~÷gVÂÝΰÓ4ÿ(ý†#'AáµM…#!¿UóZˆšQÍE'ˆ·[][l±gâz d~®í#hB”®äƒœÖÓO¯èh‰—w‰¾_¼ô+Pí0†+MúdÑ(âèãÉò¶l¢µ*S„ÊæÊ¬‰ÅOÇ£Ã=¥ÛE\Éjók¸ÂoK-o´w¹\Áž^Df¸]ÐϪU qCÁ©¦ Û œÀDYVBT¯€X$ 2â<²½ŠdQJ 2é®EÛ†·ØT‘›Žµ@áqÊ6 +QfHåvê¼ Œ{‡Ô°ÖÕëœM0&UçÜ«žÔsœ@®±ËI¿Q4ÙŸàU¬´á¼žT\b«’Ð)¾ìNÒηÇxâûúþ»yc’5}ãQV’£¹‰áÛ}o%,NQ!ÊÂΣ෾&U)3ÞD$¨–‘{áY8/(ˆ‹9¨­ø „¥ âD?ÓÆ3€LÝ/—’Ÿ7Á? Ë}”¹J³¤»¾="±Ód€w¤ç3Fž®xeDˆÐzùêj 'A×øîÓÕàê•ûÊá!ê;õŽaSXA”€*‰rŽè×Ùר¸þ;³åýÄgã«.Q_Äý¾ öÖ~Wr¤ù +l€ÚRŽTÁµ;s±”€—ëÁ¢ñiŒ|uh9£@•B)Ûãýæ8~ÛÝoñ2­ÌŒQç F+)óìk{—ŒÇ”2]ëË©àb»ë,Ü`¸çÈ/lÌPfµºö0mÔ½ÁŒ;Ë,•@SÓàú§dƒ¤búȪ+G‰\ðȺmI|ühà¹wÖG‹PN`„Ë{Å÷sÝq%ª‰†> +stream +xÚ}R{4Tyo+dt,¥ÇRù ›0cfÌ )¢&¯YÏ3Ê4÷޹÷Ú™;Œã•C•gÞ):E[­BmJ²z %R«T,:É;²»9ö"{¶:gÏýç÷yü~ßï÷ó½ú:lw²-„í‡0'Ó(TK€Ë¥¡û)…JÒ×ß!ù8‚¡;ù8l htÄN¥R'%q`;6/g™”ï?ë Ò€najJ'Ñ©B8Øû#(Édö}*ÄÍlž‡dA Z0,‘E€Qt3 JB*,$îÉÄb~ æúúJæ"âÐÿ1xÈ¿Î0„È¿TY8_ŒlQ1 ¨ó"u@ä0ÄFpùb)<Ï{¢,#(ÌÆ¤Èl&€L£R¿Ð‡§–¼BÂÍ‘y°<›§ÇšëN³4Þf4óâÌ,›²Ÿ°-SÓ)1dÉñZżà¾ôÄ×ü5G6Ÿîè"e¹`öœôê_ XÎG«"{3¹è»ƒCµ’Ž}OŽæÔáD½¹!w¼ÃEbë\+I¦í¨rŽ+}^C[RV¬¶Æ »©4¦Z·:³!Ôº¸†””Îl|5ÜglrÛ.T™HµvŒÉRžp€„ë®T»`¸‹ÎêÞ×cUðswFm9Uåt›¡osª$úí‡þÞ¦a×MJu¢ƒÊÔŒ¿ˆ½.d{|Ä襙•RuGT™ü’lkˆÿº:Òpèx‰ÂÊäú²Ý~U;/¨ ÕM\ê…šœ½9–''S\ßwÄ„¦ +ðõØZ™‚í£² +OSî]žwî¡°!Zd1)80µ±@5$ìMxæ–^·„¿xhi;ï|}©Fwó¨+£XÛê&eìlKý½4†b§Ñ>ßÑ¢åð[Vçª}rÃÎ^¥õ3µ¢só­ßïM¾וdÛ=ypÉwoÙOë1£ß­X:S0Ô!^ÒÜY÷ =ò§%ÄeÓrívŸ“a÷È^9OYeÏ{Ý­/¬ÔXµç¬*Ï5ôG2.ŠÜOœq¡(øÆŸ[µ–Ro­ÂTraq˜4ßÖJž\kÛô‹Œ*¢F»Ô¬*Ê(n¬À¤ˆ´Ègê§Wè–ƒešu‹{rG>ÌМZË^µÈl¸¾6ʠm™?v¬{Q€vä×Ï6U./ºê®Õh~Û³»ž¯á°±u$¾éÝÃccL«L7ç*Ç~fÒŸ˜GÄ$œJ¬•øA{‚ ÃC Ýu«5Ó|’ï: +|ÚJcì´¯œ½Vœž4:sÀ[Ò5r#Ki›t²Æïµ½§nËÔ> C™ù=™M3k¬õq‘CÊáüÂADMrUq-ózVÜš¥×:eã­ƒiÊ×q(®Ù4¡rI7»üÊ£)žSãQWSO#6¿çñ7›«ZQõŇ^õ’¸zøV^²ªMÉßδ6fùãÏŽäÎ 8÷ +endstream +endobj +737 0 obj +<< /Filter /FlateDecode /Length1 883 /Length2 1288 /Length3 0 /Length 1908 >> +stream +xÚ}R{<”ùNN.ƒ¤#~›dTfÞ¹¸MΆq©†i‘¬CÆÌ;æeæ}™y'3•rlI-ÅÙJº —d[ݶlÉms‰Ó®6$%±!—”ÛŠDv”Ú­ý|Îçýçý~ŸçûüžßóûZ}Æõ³u`á°†â¶T2ĸVÈ ¬¬ü\ Ï·V›a© ÁPæ<è&…y¸ªvçá*C‡§TPéLƒiÇ4ˆF}OĤ*Âñ`1ðñ¤Ñ0ÁÊ ‹VJ‘ÎóÚsÒk'w#Á +xÂ(,Ui @¸ÌùóÀ¤ðœ(Ñ© @áx4“Bª áD– É(ŒSlTg²Q&‘À(.#¨, >Âá%Pæ¤ü•Ñ0 ,|Wsx¸Q€`ˆ ATÍ}þBTö*VþA÷áI`@ñ÷ +b{®yØŒÅÂ`‡­°¥9ÙC€æ©a0 îc.™÷ý1ì +1ðÞ¯@ýÞó¶ùxHª|lÀÇB>Žða@ú4ÂOyr±ø­qÒ[ÇyD¬ü?„@x ¹ä/ã~¾‹7Î#|W4Bü¡…È<,à"8_„<± ~×@°TŒ 0“!sûl©ô æ/BøQ(,“»wŒ +>1ÀFù˜A#ÍÎð¤Rž’  +^UÙT€¨”V¨Î¦Q W€h9T›C˜ šF¥ŠL.‘¼Ýi"‹ó”dêéÙý Ça>~ä‚/—JU;÷öùTß×BD• +`>áA Æ_·'òòžÒÉ‹®f±¶= ô*û€—³r !E¬ÖE^xÓÇ$ªÐŒqzÜñÈ)wîmÑççƒÕ9êj‰©fì‡Ø('VYÓÐh¯áB¯ý¦ƒäï}˜ºÃZ¤_F *Ó´d“ô¬~7e­×Ðgç^Y}îö³¡_"f¼›8ùeo_Œ¯†™ù¹Ü"mß¾§¥S /|½Ä»615šëËݡȄ}é:ë+Šï¾²^ÿ¥Nñà„QQ™aؽ–j–žÝîæDO~y8Ü,¨ÐYþsmJT¶Á¥\­rmþlëÞ1R¸Ïòßà`£–Çî1ˆ“íæOz< ¯DÚ³­Î{¤¤ÐÇh®äÿŒµ]’ ¹fX;¤ ª%ÂZtùVÉ¢vHà¢þ‰R·Ðî¼(ž¶‰q7±Ý¯<¾QtüR2pÏJ*½j½!T«½ÙÅ äÛÃɵEg­Ë}ÚW¯y]a$‡vyÛ¤ì•,Xôw·š¶[zÄDkÇmÅ«~¬íŽ tÅutT×.jNÇ–º<¯†¬óú¶ÒS3+ÿ½iIÃ$h¬ëöèøD^èy‹ÝØÆ3›~½žwÍ¢Jhª8òfUÿ«é'1CÕ£[³_„NOj3mlÏì’¯>›•-oxZ6:Úò`°)ÁØi;; "YÑ£áƒ×œúU«ïX§*1m”AÖ§/]Kº§yåÛÈciõ¤ÖEŽKˆÜ5OÚÜ3‘ öÕfïLgí#Û7Çœæq½]éËNž¨ƒv({žGù^¿¢¿à¦(mÖÞG~SÉÖ s~«Ÿt Üwpaß߈u!©_?Ö°ÐH˜ … TÞÑ«xq~Ê+|ÖíŽüÐ@T˘Î-a²vÞÐB³#aûG¾.`èkÜ^|dÚ¼—nYc"L=TsqP‡64Žv{ôWTÒ½û´77µf®Í(QžÏôäDm­;Uõß/¬Y­&õQ·¯L¸;v¿£?\‚jcžv…Æ8˜ ¾v˜žéÑì_ÐõèåWË%…¯ÏT®^é’sÖ#C½àQsá>smïV’Á Žæ3S+*K‹’ÿKÝ>Sü&ûîµçÅívã¯õ[gÆ€VÏ ¡î®Q¬Yêì=š»ëá)]µûƨÁâþ]†òYñßÊ:iK܃£[ºé븆‡‹s¥S­Ðc̲¬Z#:—Ô%*i¸µ¹#>Éø)Ò¢ƒí9ú"¾ƒÎý"‡ÿú›ã4c×dÏWvjÃÚ:ÚÏXÖmp*0_ 5i_ñŸn™CMå41Û¹¦ÀLzÎadµsÂÓƒ÷§CnäkÕ&e¾©*\¶.ÉNMʽ۪U°½Œ]Úv‘µŠT<¿XdÙ:nù4½3.›Ø¾¿É~Ä9AÏù‡*¦mvNç&fÕ›{J¸ýéS#K ]^f̰…¦“´F´«ÞÀ5°D»ûÈÀâ}%F•¿ÅÍ©ê%ýÏÆMSv_¼¼ÙíêØ¡náU»ßl˶/°QnØ[¬75ÄZÕ1ÛªS_w8/ó}ÝÝœGH\Ã¥ŸÈ3g.ç3‚'÷ì×?µ°E¨³dt<¦õΘÉtV|É{ù†í-'3"nø¯×“´·1û„þÌ–,[1Víkä³,P;Û”¸Q¯¸Mw°íx‚¹e-®¹WøŠFÃ`ðÎ3ü|¸çUurB~­NÆ–%‡JÿÇPwÍ\@YZžó›ÂÞæBSàQÝ:'þFI…`àªq“,lÓÙ~)ës~Ÿ¡/ +endstream +endobj +738 0 obj +<< /Filter /FlateDecode /Length1 1284 /Length2 1147 /Length3 0 /Length 1893 >> +stream +xÚ¥T Tg¶Á†â"ÈkË%d€@x„f+1(C2IÃLBHµ ˆ¯ +h ˆ Ôž‚ ­ *EK‹øBt9<Ê¢–‡ÐúBAØ »»çôì™sæÌïýîýæûyP…%Àb`6†Ê(4;ˆ à¤P®?@q„ ’•U("“Ào$«0O@0”ùN‰7ódḊ'#*Ù8ù2@gƒ Ñ™= C4—…B g„/æÁ"æáR˜dåI•8"˘ÀÆ9,B‹¡\ $¸%*~›Ø8\D‚Ÿˆãć5·¢Ã…³!„€aÌ'uÝÃø®i±çÒ'«X&I”¡NëÛ1O˜ô¶ßž7K{Õ£ØÐuòð7ëÔŽ>æênÑØ`[ò[ñlƒ¡o¶hוX‹øÕŸWäNt¬Ã’ü&[OŸ¼Ýá¢[žAÇÖO¼¿þ¨ìŸ­Ï«KÏ×ïñË):qÍßt|Cúì8âV\qæ¥Ön©¯«Q\F +ÉÔœ™öst~Òà‚Žq‹hâºG²Å‘%_ôn‹,ÌÈ2,`T™w”|_tFìÜå‹AmÉõ’:<¯Ñ`*u¨½/õ~‡–¾ÒTôc.ÍO¹f»Û¯{Ã÷u4ª=/Õþ®…#w-Z±é±ZËrž‡q¥þÈíôõ£¼˜õÖéŽÒ(kÿ:5ùMåé‚цÇú £:ôÊ1ƒŒ¸žñ6×Y··ëi¦­À±ud§nê'¯ô¨_*FO­:{hÝuwôÆšYzŸõdW,g¶Õ]jxÚ0yÇ8¯úðFþ M‰ÖÇÐ×íÂü›Ú³ŸEÕ.3Ý9¨í^iù×áõ¯>e¢Ýnš¯I½fûºoµ¯_“>(Y‘ÿáT©Vî`͸«åwÖ«0TÍqoj†µYtYhgÒº´ˆ–×ÍÕ +endstream +endobj +739 0 obj +<< /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2612 >> +stream +x–wTSهϽ7½Ð" %ôz Ò;HQ‰I€P†„&vDF)VdTÀG‡"cE ƒ‚b× òPÆÁQDEåÝŒk ï­5óÞšýÇYßÙç·×Ùgï}׺Pü‚ÂtX€4¡XîëÁ\ËÄ÷XÀáffGøDÔü½=™™¨HƳöî.€d»Û,¿P&sÖÿ‘"7C$ +EÕ6<~&å”S³Å2ÿÊô•)2†12¡ ¢¬"ãįlö§æ+»É˜—&ä¡Yμ4žŒ»PÞš%ᣌ¡\˜%àg£|e½TIšå÷(ÓÓøœL0™_Ìç&¡l‰2Eî‰ò”Ä9¼r‹ù9hžx¦g䊉Ib¦טiåèÈfúñ³Sùb1+”ÃMáˆxLÏô´ Ž0€¯o–E%Ym™h‘í­ííYÖæhù¿Ùß~Sý=ÈzûUñ&ìÏžAŒžYßlì¬/½ö$Z›³¾•U´m@åá¬Oï ò´Þœó†l^’Äâ ' ‹ììlsŸk.+è7ûŸ‚oÊ¿†9÷™ËîûV;¦?#I3eE妧¦KDÌÌ —Ïdý÷ÿãÀ9iÍÉÃ,œŸÀñ…èUQè” „‰h»…Ø +A1ØvƒjpÔzÐN‚6p\WÀ p €G@ +†ÁK0Þi‚ð¢Aª¤™BÖZyCAP8ÅC‰’@ùÐ&¨*ƒª¡CP=ô#tº]ƒú Ð 4ý}„˜Óa ض€Ù°;GÂËàDxœÀÛáJ¸>·Âáð,…_“@ÈÑFXñDBX$!k‘"¤©Eš¤¹H‘q䇡a˜Æã‡YŒábVaÖbJ0Õ˜c˜VLæ6f3ù‚¥bÕ±¦X'¬?v 6›-ÄV``[°—±Øaì;ÇÀâp~¸\2n5®·׌»€ëà á&ñx¼*Þï‚Ásðb|!¾ +߯¿' Zk‚!– $l$Tçý„Â4Q¨Ot"†yÄ\b)±ŽØA¼I&N“I†$R$)™´TIj"]&=&½!“É:dGrY@^O®$Ÿ _%’?P”(&OJEBÙN9J¹@y@yC¥R ¨nÔXª˜ºZO½D}J}/G“3—ó—ãÉ­“«‘k•ë—{%O”×—w—_.Ÿ'_!Jþ¦ü¸QÁ@ÁS£°V¡Fá´Â=…IEš¢•bˆbšb‰bƒâ5ÅQ%¼’’·O©@é°Ò%¥!BÓ¥yÒ¸´M´:ÚeÚ0G7¤ûÓ“éÅôè½ô e%e[å(ååå³ÊRÂ0`ø3R¥Œ“Œ»Œó4æ¹ÏãÏÛ6¯i^ÿ¼)•ù*n*|•"•f••ªLUoÕÕªmªOÔ0j&jajÙjûÕ.«Ï§ÏwžÏ_4ÿäü‡ê°º‰z¸újõÃê=ꓚ¾U—4Æ5šnšÉšåšç4Ç´hZ µZåZçµ^0•™îÌTf%³‹9¡­®í§-Ñ>¤Ý«=­c¨³Xg£N³Î]’.[7A·\·SwBOK/X/_¯Qï¡>QŸ­Ÿ¤¿G¿[ÊÀÐ Ú`‹A›Á¨¡Š¡¿aža£ác#ª‘«Ñ*£Z£;Æ8c¶qŠñ>ã[&°‰I’IÉMSØÔÞT`ºÏ´Ï kæh&4«5»Ç¢°ÜYY¬FÖ 9Ã<È|£y›ù+ =‹X‹Ý_,í,S-ë,Y)YXm´ê°úÃÚÄšk]c}džjãc³Î¦Ýæµ­©-ßv¿í};š]°Ý»N»Ïöö"û&û1=‡x‡½÷Øtv(»„}Õëèá¸ÎñŒã'{'±ÓI§ßYÎ)ΠΣ ðÔ-rÑqá¸r‘.d.Œ_xp¡ÔUÛ•ãZëúÌM×çvÄmÄÝØ=Ùý¸û+K‘G‹Ç”§“çÏ ^ˆ—¯W‘W¯·’÷bïjï§>:>‰>>¾v¾«}/øaýývúÝó×ðçú×ûO8¬ è +¤FV> 2 uÃÁÁ»‚/Ò_$\ÔBüCv…< 5 ]ús.,4¬&ìy¸Ux~xw-bEDCÄ»HÈÒÈG‹KwFÉGÅEÕGME{E—EK—X,Y³äFŒZŒ ¦={$vr©÷ÒÝK‡ãìâ +ãî.3\–³ìÚrµå©ËÏ®_ÁYq*ßÿ‰©åL®ô_¹wåד»‡û’çÆ+çñ]øeü‘—„²„ÑD—Ä]‰cI®IIãOAµàu²_òä©””£)3©Ñ©Íi„´ø´ÓB%aа+]3='½/Ã4£0CºÊiÕîU¢@Ñ‘L(sYf»˜ŽþLõHŒ$›%ƒY ³j²ÞgGeŸÊQÌæôäšänËÉóÉû~5f5wug¾vþ†üÁ5îk­…Ö®\Û¹Nw]Áºáõ¾ëm mHÙðËFËeßnŠÞÔQ Q°¾`h³ïæÆB¹BQá½-Î[lÅllíÝf³­jÛ—"^ÑõbËâŠâO%Ü’ëßY}WùÝÌö„í½¥ö¥ûwàvwÜÝéºóX™bY^ÙЮà]­åÌò¢ò·»Wì¾Va[q`id´2¨²½J¯jGÕ§ê¤êšæ½ê{·íÚÇÛ׿ßmÓÅ>¼È÷Pk­AmÅaÜá¬ÃÏë¢êº¿g_DíHñ‘ÏG…G¥ÇÂuÕ;Ô×7¨7”6’ƱãqÇoýàõC{«éP3£¹ø8!9ñâÇøïž <ÙyŠ}ªé'ýŸö¶ÐZŠZ¡ÖÜÖ‰¶¤6i{L{ßé€ÓÎ-?›ÿ|ôŒö™š³ÊgKϑΜ›9Ÿw~òBÆ…ñ‹‰‡:Wt>º´äÒ®°®ÞË—¯^ñ¹r©Û½ûüU—«g®9];}}½í†ýÖ»ž–_ì~iéµïm½ép³ý–ã­Ž¾}çú]û/Þöº}åŽÿ‹úî.¾{ÿ^Ü=é}ÞýÑ©^?Ìz8ýhýcìã¢' +O*žª?­ýÕø×f©½ôì ×`ϳˆg†¸C/ÿ•ù¯OÃÏ©Ï+F´FêG­GÏŒùŒÝz±ôÅðËŒ—Óã…¿)þ¶÷•Ñ«Ÿ~wû½gbÉÄðkÑë™?JÞ¨¾9úÖömçdèäÓwi獵ŠÞ«¾?öý¡ûcôÇ‘éìOøO•Ÿ?w| üòx&mfæß÷„óû +endstream +endobj +740 0 obj +<< /Ascent 952 /AvgWidth 520 /CapHeight 632 /Descent -269 /Flags 4 /FontBBox [ -511 -269 1309 952 ] /FontFile2 843 0 R /FontName /AAAAAC+Calibri-Light /ItalicAngle 0 /MaxWidth 1350 /StemV 0 /Type /FontDescriptor /XHeight 462 >> +endobj +741 0 obj +<< /Filter /FlateDecode /Length 278 >> +stream +x]ÑËjÃ0н¾b–é"ØqÞ` !%àEÔí8Ò8jYÈÊÂß;JšBwq43gÇú¹v6RöÝp¤Î:x®A3ùbZd¬Žw¥3Ý·^ehn¦1r_»n ²TDÙZÆ&šÌpæ'9{ †ƒuš}›tÒ\½ÿæž]¤\Uîð¹—Ö¿¶=S–ZçµAÝÆiŽ®¿Ÿ“gÂDèXÜFÒƒáÑ·šCë.¬Ê<¯ÊÓ©RìÌ¿ÒþÖpîî7‹EUJò|¹©TY î„K—ˆ€{áDÀ•p"`!Ü‚¸îÀ}b.lAÕmšów"YVûX…¾†€-¤ý§ÉíãÇ/òƒ—‡¦üœˆè +endstream +endobj +742 0 obj +<< /Ascent 952 /AvgWidth 536 /CapHeight 632 /Descent -269 /Flags 4 /FontBBox [ -519 -349 1262 1039 ] /FontFile2 844 0 R /FontName /AAAAAE+Calibri-Bold /ItalicAngle 0 /MaxWidth 1328 /StemV 0 /Type /FontDescriptor /XHeight 469 >> +endobj +743 0 obj +<< /Filter /FlateDecode /Length 301 >> +stream +x]‘Ënƒ0E÷þ +/ÓEÄ@CÒH©J‰E*í€=D–бŒYð÷½vÓTêâ,Žg.ŒÇÙ©yj¬ 2{ó“j9ÈÁXíyž¯Xö|1Vä…ÔF…«¥35vNd·ëxlì0ɪRfïˆÌÁ¯r󨧞ïâÙ«×ì½ÈÍç©M'íâÜlƒ$Q×Ró€Ï=wî¥Yf)ºm4ê&¬[¤þ:>VÇ!‘ÿŒ¤&ͳëûÎ^XTDuu>ׂ­þWÂMÒøýpm-òºŠ•y-ª¢€¢Cõ +ˆöIwP€j«%@Q÷P@´KÍ(@–cõ +м‹z„¢‚¢vP€1’öP€ì« + + ønõ;~¼`|ˆÛâÔâ=v–^+­3®ÉX¾=¨›\ü@ây“q +endstream +endobj +744 0 obj +<< /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 214 /Interpolate true /Subtype /Image /Type /XObject /Width 214 /Length 1345 >> +stream +xía¶£0…]Kcg.ÍIµ}š4&ÄBLü35À½|ROOß™e™Çt`:0˜L¦ÓéÀt`:0pìÀêQnU­8”µmÄmsˆàTùC0ˆò‡à @®»*o!xè Á@oSðÐÙüè Á€¾üè +Á@OžzBðЂWý xЂWÝ èÁ@/Æ:A0Ђ)€>Ltà7€üЂß:@0 }sÚG0 yóZG0 uóGð@ÛÞhÁ;M#x eï´Œà=€†,hÁ€v,hÁ2€V,hÁ2€F¬hÁ€6¬hÁ:€¬hÁ:€¤hA +€ö¤hA€Ö¤h A€Æ¤h A*€¶¤h +A:€–¤h A:€†l°‚Èp´´jÛbíïOÚ|n«_ìêúáXn±À¸ŽU,½L`’¨e±%‹(jY,Ý\@ ï}‰Ykƒ(3ݪ¿¸“&º…qÍ„• ß.*è}>5úÍÁøGÇÈ7¹™ä÷Å쪆@À!~âüª˜‚üöù‰ûg,äÿ]ù{5À% Jÿ¿GЩ*u%T¼PýñBH•2‚2*?^€”*ÕÇ )u/V©^©ÞXb¢4?ˆåtªJA9/T|¼U¥† $€jЦ +°¦ôxÑà +á ‚¦[þé³kC¯ð(¦éW - Ÿ.joÔ£¡]*Òëë)ômc«‚«¨ðš¬+ݘÄYÌ8N•…"uƒKƒlÚæŒ!ÙhŒ'I…]ÆDœš´[áñ‚ ÆR¢ED;:, ®ê¶QGyYݬׄ5o ɵÜﯕ^Uu”Sµ¸Ë®Ä«ˆÂÊö÷Û5Y¬”4Qáªr ‘T5ÕR–E·‡ìcိ•”ta¡ö· +…ÆD\P)Z|¥ìê¾|”ø><Š÷lÓ€up+«£*¸Q…Ï> +stream +x¥W\SWÛ?7÷f°Âž2ÂF–eˈ̲‡à"&„b ˆ‹R¬`ÝâÀQÑ¢¨E«:Q‹VêÆ­/ÔRA©ÅZ\X}Ÿ›€ÂÛþÞïû~_îïpÿç9ãYÿóÜBÚ[xRi.!”')”…'pÒ¦¥¥³è÷"MäŠ4yü)'..¦ I¾DH¾Çþ^ÞD)¹îBî5vììQÂ>Ì:­DPÀÏC›ŒÄ/•"¤2 äÖó +¥$.¬—“” xÌQ^ bd.”eb>+\Æ+a…óòòx,wWwVœ,?SœûV“‹þ?¿¼\9i7ù³€¦^“oW°¿BÀ !±/àC|^h"`oÀýEâ”ÀAQl¤…SGÈs’9€7fÊÂ’¾+’GxB¸Q©()° àèœü(r­àLÉœ˜XÀ  ÿ‚_œØp›HÈ%sfø‰,?œãˆÁCBƒ„·¸›4Œ+ ŠI9ØIÜ(“v‚.ªz6/2°`;an8©ö¡FK ãÈ=¡O-’äÆº‚Ÿ(ü…>Q(Jй;à¤BY¹ì¡UfŠÃ¸€ÃïÉ"H9øKæ*x1¡»òd¡á ‡˜Ð‹eò2à#}—P’LÆ8BˆR0¢|4þò‘u#*@bT¤@Yˆ‡ò ±Àghá0KM3 +Pȳ÷|'ûä +r ’ÂX>Ê„¹¹°rDÎBØA¹’Ü%Ù#wîUìÌÖè +ƒÍ¿Fr¡~šŠº’b°0úÁ •ÃXàÑZÜIî(Na­ÒrœÔÒ7¬%Vº”ëH?•¶ƒÍT +c¤m +ß C‚ML„æGDþ[¡M3J‹B>Y!ÑúÉsÒ·¾Zç‚­£½±‘(Ÿ†xÂιà¡d8>`Í;°;gxõ§h*4®2‘;H¥5+â¹³êÁ^ð¼\6[Ì¿¼r ½ì˜bÝ\~êbí×j9¯ð‡Œ «“hžq]½½ì¿dõS6Gl›ÕØÑ¼Q0Ið7Þ€.ê5êêCê Ä‚÷/ÔNj/ {ÔûðÜùhϧœƒ\É %Ûø®˜I²‘ÉUŒæA4ÈL y +‡u<ˆoDO¼#sí ‹± !w=N2B©= öUö>1ž¯ !õ“lù{|þ/'dÔùÈ”¬2‘JgÕ— ¥Êü‘¹.yƒÊÙÙýì]ìýì쇊((òǾÅþÝÉÞ#Oñµøü8Þ‚·âˆ½Vü4Þ¢@ûñcð|ûqÝØ¡ŒñØAò“?|Hï ‡98ú¬Œ® +d>È}ÈlóGb˜=|²Gs•Œøh‘±üßY4:Öc+ˆ2ûŠSÊ´fº1éLG¦“ÃĘ–ð¸3ƒY3­˜ÑLC`Ú3C˜ã>Æc$c¹ !D2ï•u/ ¬a韲/ST9Þ°¿ÿé#kŒ—d>g˜œd¥&e Ñ9WE†ÇTÐdÐ$FóÀÄ•¬¨=¬1sÈÚMV-`<6]‘Ãà(Í—fO ¥ÙÃZeµbÑBh´0Ä¢¹‘rÚZ$`raN¸\¨z±ˆEp"h“•p2…p×(Ã}¡à|i‰Lœ%*dqàf$dq%|Wg–;Û ¾ˆä=‹œƒÐ‹xÅý 3èàËeEJA¾¨Hî`zÈ™#køª»€­^Ⱦ³¡poˆEI( ÍëDKĶ -A•¨­BëÑf´íB ¨BGÑ1tý€.¢+¨݃/PzŠÐK4„aÓÀt1c̳Ŝ0wÌ ÀB±h,KÃ2°,L‚ɱ2ì3¬[ƒmÆv` Ø·X v»€]Åî`ÝXöö–‚SÔ)z3Šeś¡DQ’(3)Y”¹”RJee#¥Ž²ŸÒD9M¹Hé¤tQžRq„«á¸%î‚{ãÁx,žŽgâ2|!^…×àux#Tvü:Þ…÷ão¡K°ÈM‘Lð‰¹ÄBb9±™ØC4g‰ëD71@¼§jPM©NT_*—:šEG­¤ÖPë©G¨ç j÷P_Òh4à…ð%–M›O[NÛJ;@;E»J{D¤ÓéÆt'º?=–ΣÒ+é›èûé'é×è=ô× 5†ÃÆHgHåŒÆ^Æ Æ5ÆcÆŠ–ЭНJ¬Š@¥De¥Ê.•V•Ë*=*CªÚªöªþªIªÙªKT7ª6ªžS½¯úBMMÍJÍG-^M¬¶Xm£ÚAµójÝjoÔuÔÕƒÕg¨ËÕW¨ïV?¥~Gý…†††FFºF¡Æ +35^3u™®L.SÀ\Ĭe61¯1ŸiªhÚjr4gi–jÖhÖ¼¬Ù¯¥¢e§¬ÅÓZ¨U«Õ¢uKkP[WÛM;V;O{¹ö^í Ú½:t;PN…ÎN3:tq]kÝ`]¾îgº»tÏéöèÑôìõ¸zÙzÕzßè]ÒÐ×ÑŸ¤Ÿ¢_¬_«\¿Ë7°3àä¬48dpÓà­¡™!ÇPh¸Ì°Ñðšá+£qFAFB£*£FFoYÆ¡Æ9Æ«?0!LMâMæ™l39gÒ?Noœß8þ¸ªq‡ÆÝ5¥˜:š&˜Î7ÝiÚa:hfnn&5ÛdvƬßÜÀ<È<Û|ù ó> ]‹ ±Å:‹“OXú,+—µ‘u–5`ija)·ÜayÉrÈÊÞ*ÙªÜê€ÕkUkoëLëuÖmÖ66SmÊlöÙܵU±õ¶Ùn°m·}ego—j·Ôî¨]¯½‘=×¾Ô~Ÿý} ‡@‡¹u7ÆÓÆ{Ï¿uüGŠ£‡£È±Öñ²ÅÉÓIì´Õéª3ÕÙÇYâ\ç|ËEÝ…ãRä²Ï¥ÛÕÀ5ÚµÜõ¨ë³ 6Ò'¬žÐ>á=Ûƒ ß·{n:n‘nån­n¸;ºóÝkÝoLÔ˜6qÑÄæ‰Ï'9MNÚ6鶇®ÇT¥myzyÊ<=û¼l¼2¼¶xÝòÖóŽó^î}Þ‡ê3Åg‘Ï1Ÿ7¾ž¾…¾‡|÷sñËñÛë×;Ù~²pò®Éü­üyþ;ü»X_tZòë²Õ=æŒçdsösžMaO‘M92åU°oð‚àS!xHxHUÈ¥PÐäÐÍ¡ì²Âö… „{„Ï?AˆŠXq‹kÆås¸‘^‘ "ÏF©G%FmŽú9Ú1ZÝ:•25rêÚ©÷clc$1GcQ,7vmìƒ8û¸¹qßÇÓâãâkãMpK(KhOÔMœ¸7ñeÒ”¤•I÷’’åÉm)š)3RR^¥†¤®Iíš6aÚ‚iÓLÒÄiÍéôô”ôúôÁé¡Ó×Oï™á1£rÆÍ™ö3‹g^˜e2+wÖñÙš³y³gP3R3öf¼ãÅòêxƒs¸s¶Ìàó7ðŸ +‚ë}BááãLÿÌ5™½YþYk³úD¢Q¿8X¼Yü<;"{{ö«œØœÝ9rSsä1ò2òZ$:’ÉÙ|óüâü«R'i¥´k®ïÜõsdQ²ú¬`fAs¡üSÚ!w.ï. +(ª-z=/eÞábíbIqG‰cɲ’Ç¥a¥_Ï'æóç·•Y–-)ë^ÀY°c!¶pζEÖ‹*õ,_¼g‰ê’œ%?•³Ë×”ÿùYêg­f‹+}þù¾Jf¥¬òÖR¿¥Û¿ ¾qiÙÄe›–½¯TýXÍ®®©~·œ¿üÇ/Ý¾Üøå‡™+.­ô\¹mm•dÕÍÕ«÷¬Ñ^SºæÑÚ©k›Ö±ÖU­ûsýìõj&Õlß ºA¾¡kcôÆæM6›Vmz·Y´¹³vJí-¦[–myµU°õÚ¶ mÛͶWoû•ø«Û;Âw4ÕÙÕÕì¤í,Úùë®”]í_{ÝPoR_]ÿ×nÉî®= {Î6x54ì5Ý»reŸ|_ßþû¯|òMs£K㎪¢ƒòƒO¾Íøö桨Cm‡½7~gûÝ–#ºGªš°¦’¦£¢£]ÍiÍW["[ÚZýZ|ïúýîc–Çjë_yBõDʼn'KOž’žê?uúQÛì¶{g¦¹q6þì¥sQçÎÿöÙvNûÉóþç]ð½Ðò£÷G/z^lêðè8ò“ÇOG.y^jºìu¹ùŠÏ•Ö«“¯ž¸xíôõë?ÜàÞ¸ØÓyõfòÍÛ·fÜêº-¸Ý{'÷Îó»Ew‡î-†‹}Õ­5MÖýkü¿tyvïéîø9ñç{øžþRðË»žŠ_5~­ylñ¸¡×½÷X_Xß•'ÓŸô<•>ê¯üMû·-Ïž}÷{ÐïÓzžËžøcù ã»ÿœôgÛ`Üà×y/‡^U½6~½ç÷›ö·©oÍ{G·ñ¯ñµ¾zÿCÞ‡ÿ øb +endstream +endobj +746 0 obj +<< /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 2612 >> +stream +x–wTSهϽ7½Ð" %ôz Ò;HQ‰I€P†„&vDF)VdTÀG‡"cE ƒ‚b× òPÆÁQDEåÝŒk ï­5óÞšýÇYßÙç·×Ùgï}׺Pü‚ÂtX€4¡XîëÁ\ËÄ÷XÀáffGøDÔü½=™™¨HƳöî.€d»Û,¿P&sÖÿ‘"7C$ +EÕ6<~&å”S³Å2ÿÊô•)2†12¡ ¢¬"ãįlö§æ+»É˜—&ä¡Yμ4žŒ»PÞš%ᣌ¡\˜%àg£|e½TIšå÷(ÓÓøœL0™_Ìç&¡l‰2Eî‰ò”Ä9¼r‹ù9hžx¦g䊉Ib¦טiåèÈfúñ³Sùb1+”ÃMáˆxLÏô´ Ž0€¯o–E%Ym™h‘í­ííYÖæhù¿Ùß~Sý=ÈzûUñ&ìÏžAŒžYßlì¬/½ö$Z›³¾•U´m@åá¬Oï ò´Þœó†l^’Äâ ' ‹ììlsŸk.+è7ûŸ‚oÊ¿†9÷™ËîûV;¦?#I3eE妧¦KDÌÌ —Ïdý÷ÿãÀ9iÍÉÃ,œŸÀñ…èUQè” „‰h»…Ø +A1ØvƒjpÔzÐN‚6p\WÀ p €G@ +†ÁK0Þi‚ð¢Aª¤™BÖZyCAP8ÅC‰’@ùÐ&¨*ƒª¡CP=ô#tº]ƒú Ð 4ý}„˜Óa ض€Ù°;GÂËàDxœÀÛáJ¸>·Âáð,…_“@ÈÑFXñDBX$!k‘"¤©Eš¤¹H‘q䇡a˜Æã‡YŒábVaÖbJ0Õ˜c˜VLæ6f3ù‚¥bÕ±¦X'¬?v 6›-ÄV``[°—±Øaì;ÇÀâp~¸\2n5®·׌»€ëà á&ñx¼*Þï‚Ásðb|!¾ +߯¿' Zk‚!– $l$Tçý„Â4Q¨Ot"†yÄ\b)±ŽØA¼I&N“I†$R$)™´TIj"]&=&½!“É:dGrY@^O®$Ÿ _%’?P”(&OJEBÙN9J¹@y@yC¥R ¨nÔXª˜ºZO½D}J}/G“3—ó—ãÉ­“«‘k•ë—{%O”×—w—_.Ÿ'_!Jþ¦ü¸QÁ@ÁS£°V¡Fá´Â=…IEš¢•bˆbšb‰bƒâ5ÅQ%¼’’·O©@é°Ò%¥!BÓ¥yÒ¸´M´:ÚeÚ0G7¤ûÓ“éÅôè½ô e%e[å(ååå³ÊRÂ0`ø3R¥Œ“Œ»Œó4æ¹ÏãÏÛ6¯i^ÿ¼)•ù*n*|•"•f••ªLUoÕÕªmªOÔ0j&jajÙjûÕ.«Ï§ÏwžÏ_4ÿäü‡ê°º‰z¸újõÃê=ꓚ¾U—4Æ5šnšÉšåšç4Ç´hZ µZåZçµ^0•™îÌTf%³‹9¡­®í§-Ñ>¤Ý«=­c¨³Xg£N³Î]’.[7A·\·SwBOK/X/_¯Qï¡>QŸ­Ÿ¤¿G¿[ÊÀÐ Ú`‹A›Á¨¡Š¡¿aža£ác#ª‘«Ñ*£Z£;Æ8c¶qŠñ>ã[&°‰I’IÉMSØÔÞT`ºÏ´Ï kæh&4«5»Ç¢°ÜYY¬FÖ 9Ã<È|£y›ù+ =‹X‹Ý_,í,S-ë,Y)YXm´ê°úÃÚÄšk]c}džjãc³Î¦Ýæµ­©-ßv¿í};š]°Ý»N»Ïöö"û&û1=‡x‡½÷Øtv(»„}Õëèá¸ÎñŒã'{'±ÓI§ßYÎ)ΠΣ ðÔ-rÑqá¸r‘.d.Œ_xp¡ÔUÛ•ãZëúÌM×çvÄmÄÝØ=Ùý¸û+K‘G‹Ç”§“çÏ ^ˆ—¯W‘W¯·’÷bïjï§>:>‰>>¾v¾«}/øaýývúÝó×ðçú×ûO8¬ è +¤FV> 2 uÃÁÁ»‚/Ò_$\ÔBüCv…< 5 ]ús.,4¬&ìy¸Ux~xw-bEDCÄ»HÈÒÈG‹KwFÉGÅEÕGME{E—EK—X,Y³äFŒZŒ ¦={$vr©÷ÒÝK‡ãìâ +ãî.3\–³ìÚrµå©ËÏ®_ÁYq*ßÿ‰©åL®ô_¹wåד»‡û’çÆ+çñ]øeü‘—„²„ÑD—Ä]‰cI®IIãOAµàu²_òä©””£)3©Ñ©Íi„´ø´ÓB%aа+]3='½/Ã4£0CºÊiÕîU¢@Ñ‘L(sYf»˜ŽþLõHŒ$›%ƒY ³j²ÞgGeŸÊQÌæôäšänËÉóÉû~5f5wug¾vþ†üÁ5îk­…Ö®\Û¹Nw]Áºáõ¾ëm mHÙðËFËeßnŠÞÔQ Q°¾`h³ïæÆB¹BQá½-Î[lÅllíÝf³­jÛ—"^ÑõbËâŠâO%Ü’ëßY}WùÝÌö„í½¥ö¥ûwàvwÜÝéºóX™bY^ÙЮà]­åÌò¢ò·»Wì¾Va[q`id´2¨²½J¯jGÕ§ê¤êšæ½ê{·íÚÇÛ׿ßmÓÅ>¼È÷Pk­AmÅaÜá¬ÃÏë¢êº¿g_DíHñ‘ÏG…G¥ÇÂuÕ;Ô×7¨7”6’ƱãqÇoýàõC{«éP3£¹ø8!9ñâÇøïž <ÙyŠ}ªé'ýŸö¶ÐZŠZ¡ÖÜÖ‰¶¤6i{L{ßé€ÓÎ-?›ÿ|ôŒö™š³ÊgKϑΜ›9Ÿw~òBÆ…ñ‹‰‡:Wt>º´äÒ®°®ÞË—¯^ñ¹r©Û½ûüU—«g®9];}}½í†ýÖ»ž–_ì~iéµïm½ép³ý–ã­Ž¾}çú]û/Þöº}åŽÿ‹úî.¾{ÿ^Ü=é}ÞýÑ©^?Ìz8ýhýcìã¢' +O*žª?­ýÕø×f©½ôì ×`ϳˆg†¸C/ÿ•ù¯OÃÏ©Ï+F´FêG­GÏŒùŒÝz±ôÅðËŒ—Óã…¿)þ¶÷•Ñ«Ÿ~wû½gbÉÄðkÑë™?JÞ¨¾9úÖömçdèäÓwi獵ŠÞ«¾?öý¡ûcôÇ‘éìOøO•Ÿ?w| üòx&mfæß÷„óû +endstream +endobj +747 0 obj +<< /Alternate /DeviceRGB /Filter /FlateDecode /N 3 /Length 357 >> +stream +xu¿KBQÇ¿j!˜ ‘ƒCÛ¢áU¢A. j EÐà +²¦çóW ¯Ë{OÂh‹Öú2h’ƒ–†† jˆ¨­É©À¥ävî{‰.žË¹çóÎùžsﻀ;¨2VPÖ-#•ŒK›é-Éû -ÛTÍd1EYÝèTº{ûÅÑ>M‹Y­Ný8z”¼+_Þ¬î¿g»ªÑ—Í™Õ~ÉC3,À%+{|@0èRÄ5Á‡Ïg¾²5ë©iˆ%­¨f‰[Är¦/_èãr©"Î&þÔŸÓ7Ö(È'°ˆ˜`(AEDèçl}»¤®Â ¾а¨'F1!G¼f ‡"‹w¦^²öóÿûɽÜá°Ðäœ_÷rËMàbð5z¹©(06Ü7˜j¨ö8íî|ø:FÓÀø#õl›ùHØ®»üq`øóïIÀ{tjœÿœrÞ©ž7àVÿ)j¼ +endstream +endobj +748 0 obj +<< /Ascent 975 /CapHeight 722 /Descent -217 /Flags 32 /FontBBox [ -576 -287 1987 1160 ] /FontFile2 845 0 R /FontName /AAAAAB+HelveticaNeue-Medium /ItalicAngle 0 /Leading 29 /MaxWidth 2225 /StemV 0 /Type /FontDescriptor /XHeight 524 >> +endobj +749 0 obj +<< /Ascent 952 /CapHeight 712 /Descent -213 /Flags 32 /FontBBox [ -951 -481 1987 1077 ] /FontFile2 846 0 R /FontName /AAAAAC+HelveticaNeue /ItalicAngle 0 /Leading 28 /MaxWidth 2225 /StemV 0 /Type /FontDescriptor /XHeight 523 >> +endobj +750 0 obj +<< /Ascent 975 /CapHeight 866 /Descent -217 /Flags 32 /FontBBox [ -1018 -481 1437 1141 ] /FontFile2 847 0 R /FontName /AAAAAD+HelveticaNeue-Bold /ItalicAngle 0 /Leading 29 /MaxWidth 1500 /StemV 0 /Type /FontDescriptor /XHeight 650 >> +endobj +751 0 obj +<< /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 587 /Interpolate true /Subtype /Image /Type /XObject /Width 512 /Length 13388 >> +stream +xí]g€SE×¾[¨K[:«¬ô ¯„D£‚° % ‚Qy1ÄX( +EŒ(¾Å#í#4 ÝÐ,àâR–βlû²É&¹7¹=sï$gl¦žsæyæ¶™33‘¨é™-Û«o {j¬i²e¶mŽÃátºÜ›½^ïñÂÀ_Y…ÿ¯´*šïËÚìv9Ç·¶Ù–ɦçFêú÷U·»635Q1J¨v5hwËÝCF›,ŸÍ_ö×¾Wä¢ù¥`ófOyÙ »ëæ¶õ +¶¸nLƒŽ9÷žhëÜþRÂÙ»Mñ±m˾Ÿñú¨Á½:@_P ÿÔÈRk »Ós–'9r‹òÝ«I¯QAO¼'´¸í‘—gýö÷9x®ãôÎÜO& éÞ\r’NA£OLüâ½W„s¢D¢ÝKm¯=~KfÒÑ„¾Á™jÉæÌW‚ÅØuºCN}ô¨$Ä´v÷¿úÝÆÓ±“ ¼„k¿ž0°MJ†¤‰éÙZ“Ý}IyÞÐZPìq˜uª4$%ª^™ï‘ñ3-Ã|¤m±¿tGÃDåO|»Ò²µæÜ8}ÌóáZ&ßiÕ«`L1Ð]Ò»>mûë2 dˆ]mÚ>Éß +²´fçÅd ›©ç\V]rŽÔ`^|‚ –äJÏûqBŸZâŸñW³¹Ö⮚{K.¦™[[â¶êÇ“Â-ÎÖÛ<Ì0$wŽ×nÈŽhüÔè4váÉäf˜»õyö-ã‡Qþ–6×Ùò¸[%*ðÚtø#‹ɺ‹»¨‚@™Ç¦Kˆ å”›'m€w=!Ô‡Ê^Yö|[ü/n6 3´¶c¡æ@@^›¶Âç©&¬Lè±|lŠªrþ§§Z`L3½i*ónQ…J´xÌéqÆ155Çz”¶³G²#mJ˱¡•P•ƒÖ¼'ŒRïü\ã>ëð”.‘W6q•ùPÜã ð˜q$¾Î¸5°K Ë\F¼æŠêY ã{²ö­¢ƒÒq¹ñ«mIíÃ!+ï$eÇ­8¼ +47î$ÙAYp2½ ¤ÞûK‰¬ eœýô&Åz@=îk ªn}5%º@;ë *i8n¹Væ:È /ü4L(•Tü}w{@Qû”j(èeB`Ý`™V”Ô1Âì Цï7Ö”þ&ÐÄœ‹r%J2åÇͯ6Ïú8 WjIF—‚O½)¡×`c °/ghEž6KԚϡµ¤IƒÀI“«ÉêN‚™}iè’@ê±g«£}LÕƒSs˜îi0䛸ìûZøý&b)ðìO +ú+*fÐ~LO’ÖC3+&Òt€á€KÒ P>$ªÜ'‡+' G’6ô  ìÓ.)ภ?DÝ@0m-n‚=Ò"°„ò0AZe ?F‘ž`]7~Ilѹðê Ô5ëñ"ðgè 0CëÀ$ÉZõ¨ û9IŽ5Ž +U­£q`“ôü7€:Òk 8"ðŸ˜p4 l’ÿ ööj,u¬ó=nÀÒ20J|§ +´¯,Hã©d2AÆÓ2°JöYr¨¸"Ð|®–]r p?<þå€[ïÿ­i`˜ ü±E% [öÀë?¶ÜÈaXá%9´€\¸R„«e`—”ü#‡Ð+ç¶ãjØ%‡WÊ¡tàŠÀš/pµ ì’/FÊ¡tàŠÀ“qµ ì’)'åP:ðDàT +ñž–Ur ð=AÜ%‡Ð'‚H=‚§i`•ô«Ü l²ôz@ž¼[¹äZ˜À“É­*jYÉ?1CrE K¦ûé'šœÇÒ:0Jb.6 ðo©xŸóà/Ë©…`–„®䟸£\B= KÊï ÑO6,M£$D`6‰~¢¸J5Ž¢IwÿÊŽÐ vÑ%Él*êN¾ü}áa’©Á"ðTý°C’¤3é£(ú‰t§tê@2^ü‘Í?Qo#^F‚5R!°!üåOî 6K¥äâ„À¶†dÖIá&œÌ[¤A`OpØŸÄ|U0kŸ4*A*>ìmÍ{(¥Ñz| K¤@`SÓÙtŒß¥P +2qAàÏzt¬“ÒÒ¿ÂÅT°=ßW#QMLy½Zˆü§ç>úÈE<¬+Ð"py8ë¤¼Ž»Ð*i8 °?òÌ7ãÁz q0l@‰ÀâÌ’Ù¢©¯¢Ô ²”FàêkL§~3tƒ[ö(m2èG‡€·'ÍÌɵ¬àˆŽe%Ù3˜yfιö†R–6DÚ ´Ì³æ4±#²Ä(‡@ùêQ¿¬ŒGföÙ­œá îŠäTP¼¦Î…GAƒB2®Zj +¢›¦p—B¶ƒÚ˜ø¿Î4„ +NҌ٠Gõ¼†û¹ûCuã9Ì•1!pÑÌëÖ 7ý¾­¥1•eF ÌÞœ±×æwãUޏ Cd¦0u‹oäÇê yîãW”è‘‹EPW>\}yRzWås½ôYž¥‰^+äkh‹Àº;ùòùTÕ$Ÿ•÷ÜPÿ¿ÄZõäA`#yY?kGH1‡,šÏ~ ž!Øð ¸´¼?ùêüH2OÖ®BɼÑß$èð –åö Å鸓bøå‘¬¥©™ÙVØ2‚‘b{'*K¬±¡Q>žöZ¬¨™×¼w‡6ƒ A +ÞÍ¢2Ä«a Ö#ýn¹žµNDf Ý:R]*ŠÀfƒ‹—hE¿ÒûÌ#sDÕvpT”ö€ò«ß.ÞBþ;ËdõM„È!ˆ¬·Ž1‰‚ty8jf[ÏICg“,†»IŽFlµéòšw°‹„\iØkb^ÉOG”/­÷Fÿf¨ËœœÒÇõ9!M“Aj‹ö>¼‡zBÌ àõ¸ž+äS¢Jv--<‚ÔHÿ[êÔÓoábš.pÍ<ž–]4W§«Ï‘–©wŠžÇTÌm|ß÷Q—.ĉg8¯Ñ–Æ-1µ *s"°ËÜ–ã:¤ÏîCïåÔ“8„^KêÞ¨ˆÓ(B`‡¹+ ô,Y-ì‚oÍç^ó¨´¡Ñ%X[¨‰`BÀcîÈÂ0[Võ—Dùoæ*õ×Ò[ÂÔHŽ@™Ë$î¶ïc/Ew@¸Â@¿u¢Ø÷WjúÔQ½N¬­‰[ïÜ‚‘ì›v±’¤‰iWO§šU8{fZŽÅ¸´ÈÓ2¯U#ö9\IÎÍÆhf¹£;ɹ­ 8^L$—&±ü+­„¿öE›zõ+Ñž€µúOÝR-RØ(ÛüÁ=‚&u£¯Ãöß šš)Ëå¹H Ú†`J] < +Øè¦æym:ÁÓ0A¤ƒ¿]ìßÀËso ÊÿÛrÄw“OT’3–ÿÝ‘C/dfþcG}ÇuÝA–/6œ¥³ºap€©g{í•ðYh.zåJñ +-ïuÑ&‘Ršj-.ØU ¢”zlz×½æÔÁ«"d#‹zM H<Æ̸cÒoàBZELÁo“î࿃öºI·l9o‹í‹„b|–Öœ{YçŒKA]V=’[~ØlK¡Ô0”9ù¯1¡°MIëúôç[}§HÝt´ò¯n±=uƒèv:4sò¬ÌÙ6šky:ëXÒÒUzKnZxq–vÖe5äðÚž´ˆ¬úc¶Ë×ä"‡Å{*µ ­MúÉ+Å‹«|¸pj*÷.xcP+j»QÄÔ¶ œºÑØcè,ί™ÕU:³Ã#Ï} - \Òò¾‹^„Û7n 2^úáf;´H_¤†ÖV›²h?¬°Õò‡Jöÿ2å‰nµIÍCLͱ)wv³×Üe["dUËÖ,wÜ.6-ñ:m&:ÆaüP¨Ño”¿CS4zL PÀ#V­Ý€çgþº#޼ ÎnÿÕ:n@;îÃvx´ž¥HŽVe.âïú6×òß\¿"zü¼ÿyú³¥Ö×cäbUä¸ñç KÓkwìûħÏ[ãÅäÁpùÀšyÓÇíÛAªG|4µX€IãCς˹zYîd0ªîöÒ”¯]ï•ûë§âÂu¿~=åÅaw«˜NÓ%Š4\[kÇóYXäµ2 85[ª ÷Æ´¯®ØzH’Aå3‡¶¬XøõGoŒ6 [Kùîvè4Ô;p^kWê2Êòô‹@%*š™Ý­—F§cz{ªmîBçZ÷¯÷ßB^žhç ÿõz·¸×:εM}Û4Z¯Óôº©Ó“¢¬A•ÐXŸ‹ÿPyÙú‰ÝТ‚°nfÓlÿ_g5é¯s ­i¦$ã3HlO¹yÒFÔ>¡‡7êÀ ‡ÕL1ðâ]H†ÖÆké.jcWê2Åâ;ïŒ!´?Ûè,Ž«´ ‘d’!¸˜‹jòȇ$jŸ/k}ÌAÆÔ¼Ú>Ÿé¸yâ³õ”·%¦E,˜ò#¥Yij“3¡|$/,{ãvùÆÇ¤¤FrÙµûMúCöñ,¶ëU^‰Ûªƒ÷ÖþSO“à¾ÑåžÏ‡Å¶¢¿8ÎLi¯ÿbªK o9ç\V˜=lâ˜]vÓh̹'ñæ ¹uù¹f ¼9F»'Á½ûNɶoŒ·'íHaæí/|»=AœÜ)æ‘‘ŸkA¹‚ýV‹Gn–Ö”¼W=m—(\1}TÏ$¸dö5c¥$Ô´°ÆYb¡ËfÔ$è«a}µo• ÆÞkøt•|çÌçîɺµ5wv+Ò¯¿gìL'ì} °ƒ]õ»O«¤Zc@Cò¤,¿»rþùDzxñîßf½<¤;¿ól‘3(N`‹¼ùÊ4û’-Ç`G~ê£4^>²ÙéøüƒWŸy¬Í$xFÔhÖ±GÿÇžyíƒÏtn>¯tQ `•pé¤wÛzç‚ïl–7'†êjú©Õ²[ffr<3Ò23¯Ëî V÷Ó Ô 5¼üæû¶ï~r®ßî= „cÅo,Æœ)ôÿô†þR`T.X¡. € € € € € €  C຅sœûÑÉIq„@ù‚- Ûšþ#³ÁT4l¹%ì¸VçpCDƒjÜHù‰êþxžÛÃÆ œñf¨3Ò©­7,<ˆ7c°÷pôÔãbUã GÃÏþ`(esœµÌÀºSyŠã Wƒ=ù7-ÙvŠ3ÒšÛ™Ì{(<¡…1§C”S&ŒMÓ"à¦ÐŠ ç©Ö5ñ +×b®å”Àãüì-9ʯ”’òÿS3¢Ñ Ï.ã< ÷ …öPä¿üì=·_9(%'+»‡xìü3‡âbú=4?ã¨V•}p9¿rPJ>Ê͔㓆rì&2(ÔWÈÃüì]5›_9(%e:2¾p?öÑ|{Dq´;Osgëy„br!ðFŸÃYU—vŠª@KY«„3‡µ ‡!„›(7ÿµ‹X Ë®q/kRf[â8)A帋æjîȾÅPÔ£ ßÑß‚øRù&ƒavÓÐO„ Єʞ§VêÀÛ ð+‚èM#’Cà}*•U±±ö|E>bí!þûØô&ˆ”²![NÒò#— §_®Ú4;ýî5\eÃù*ß&…ãRiùoÂmWÙúO&¾0õÇBî’á“*•5MȳÆÂŒ¯Ðu´ü§KÒˆ MýÊ&K"„’(]ÿô/ãã™Ofrs’,tÁɾ–Éÿ}îd’´çÉF~¤S{|Åþ!ç…~4·›pɬº×¼.…tY…@ѳ¤ƒ,:®âÀeZ'ÔŸ9j‰Ê~=¨£ænQõ¡þ¹5³ÿ7m{¥”ÒÁW¯a—IŸ»§VP:qç,3½HåDàB×Ê@ÊçìuG”¯Œª%8°ô6’¢©ì6A®h†P«oaö7éi¬ëd­!.sjPxåo-xˆC‘«ÖJ2ÊUa޹ÙéQUxúòpÙBÉß¾ûWêS§äB9Qdú8.ç1uàé|^¡d0,FD9YL^ôÔ¬÷aä"4aå`”€þòH‚x“ÆHŠO#®²@”s4gË=¡z·Iñê_áø éðR~б­P=qTŒƒ±Ñ%#Rv¼{GdžíûNü+"MôGºÛRõßÑ)a 2NýÝ.¡DÈØ*†jAÔ–äV£D±ÑùP$Ƹ²SîkëÐ[EÔÛˆ p bH„cN÷‹J6oCÝ Q¿™°mZffGA\™Ð­aÒ6g}èL«Ã×oX˜Î¤-}ŒîE‹xNA@­2©å­‰fŸ "Óíaâx Æ›”k±Òš£7gÊØ©”M¥"¨¦öå㧤TâMïå›#@N™§TN…G#lŠˆ¶†Ït'ϳDoЉ&iKë𙣵¾&J³ påùja¤UëYJJš5‡:á6‰6dPtˆBR ä¾TÀÑ:-ç[¥Þ­.hifNlc;JÙ¦3¿]ÊwU&BÅU¢6¶gfš!'Ýt½ Q J-ÕHfM¾uŸÆ‚NÔ¢„b¥>YË̾ójCAž”X™ç{8û@× X"eD`+édNº£ ¤à, ÙB­ê’)òhˆhŠ9R®¿0Ô¬È&oaKrye÷Û*›Á !»𢗻Pª>¡Y JNyÝúù d˜aŸhYXC¥¤ØÊîç¼èÛö Ù[}͹t•í 'VJç´ag3˜{Û‰Š+O#¿­mJ ^Ç +G’Õ/Ï\sÌĬ®ÈM¹™);2½“‰áß—œÝ"ycŠ«èüš4AÉT6~ã" V¢ãiY¸8Òß„‘ÐôÙ¡fýØŸ†±()£‹¦…B¸á(Ë¥n6Bâ-*ؘ¼ +ùhϨ|Æ„VVð Àx¿=ÅöŒ¤EeÜ|Ò†­§zT5Bcó)Jeˆ`€Àyë5ôlѦ¢fö~i@[>1ã…—0b8V&x‰ß÷~€ÎºóiŒß÷z®Rs0 @ƒ¢"I.¯±¾ “7î§µòòsž>YYð ÅQæÄó¶È½\‚<Óÿ¦Œ«üê§ý[Ó–¾ +SjíQÒìO@k$Ò!°s\=&vèÓ[/§S•vÉ(ì@,Ü›Y°(„¬X¸ìÐГ̘šbàØèk™à)ãº\Ž…E±uݦéo‘Ë©ì¬POqŸ²6oæ” "P0]ØSßß%t§ùذ‚þDqÆNåÏP[ øÈ†2(¸ìÐò²ÓÖn OÝW­‚o,>-i;œ$ÁáXŠ•:õbè©m¾Â_ë1}¸ÛÕÒåÂì”E”,skɰâ/ªø„^ÞI¨†@ùÆ#ÐÏD ÄUJWŒ½V+m…ïíwe²ØuµµvŽŒ$æPtÓK]ÆæâÈ'ê½'ê’uóìÞ'Ø‹‡sgÄ-á„”GàuZþ'p¶E®V}<ÇIVe5)A¥è&’ºË¬ò¹ý^ -ž9ÈU6œ¿£RÅËá8„Gàzëá`kv^õý—¿ngSˆ3¾RCØÜ,%£ô›ž7ĤÓõý=ì5I„ƒP'~˜bœ4k3‹³cø¢'…Ú‘d¡ šê  ’hXÖ·Ê?»åÛœ®ùtƒ9Áw8F9sÒñàŽêFæ23dJ›-â÷>éª_á¨%*{\P~µÍ¢êC%>ì ž~:…½Òî )”ßuì•Dån +»wåÿÅ(JUW:~-…H_äcv4E–÷Å¥¸ý_¹¤h»M+²^$”Á´•¬ÂvV‹ª‘º–µ†¸Ì×Èjà DÎZ?Q® +ßÀîÓóIT•w8Õ/ðWøî_©/#Ž!í£Èô%|Ï^ñ…ˆ:Oñøld—{‚úVBw‘„Ñ(ÅœBïœ;˜Cî,ò# ÕÂQZLöÕèafø$GÉ—r šÁîÐSQ±÷‘ÐÉFƒvp¨•ícB_‰’•ØJË?Áít}lö^í{><ó›tÑy6:³Ò-*2 pÐñCq™’çS·‹ÚX-W&ýÉ£†<ô„Ù÷û·¢,©A2…¬Îîg¦¨Ññ©\O†7>¯dkœ5ÆD„2V+iXêþ(à@´ƒ’-]Aõ£Xc¾’¦%žî½Tx«b\Þ\Râð3ûɈi³¥Tž|²{Òt€ÔíÊá0+ÒU8Ê>˜ +@ÉÎQøÄ0” +É*ŸHcNdÒ“°…¨ PÙ ˆ„—h¦ØŠ‹+OFC—Ðý({“ WzD@\Ý% 6Ò¢Gè––DXç6]…Tor +¤Ž5Z®+šÐqM›–>M)#Po黤õy*ÔÂò©¾´¼‡>­‰¨öä_›†C_9õ`˜[^¡k`c”]1íÏz”›b_–Å‹tr¡Ã%”€,å(2q~õ“™†»(8N¡X‰§ykx7¡ µü~«/&ÉÖ¢Ëf¦é>àú?’ ®Dkï*úe<¸ÑñÞK ÑK„öœ6„Éx3Q°ñ7e‰€D2¶¡ìËFdŠŠvSì«5IC׿õ‘CϢد¬¤õ¢³ +$Ƀ@žž×­¿¯NQÝxV«A .˜™½¼ÈŒ«/jÉQæpÓEh,)Ò#P4ç\Ï=ç*JÇ1“NÉ¹Ö +ŽÒS‡@ÃUÛ5â˜#£ü#ÒV¾£ƒ×Ù”ÁF€Krˆ(sÐo!Ý RÌUˆ,ds ¥Ôkÿ=ûÚÕä€ãV–|׎BK¤æ¼P;6DmRÀX¯µ•ïÞ¢!é +vÚõÆ´d¶ÜH²êdÚ2´‰M̰a :|‚ç­fyïø—bx¹…~Mm¨kTÌ…‘b4DH˜é‚£e0Å5¨»²9mIúÄ#Ü$ÕTMz!³|M–Ñ\p'=× ©j;×*v$Å Iôɽÿ¡µ¢dyß úªäÔæ&p§RÞÄ--ɬp†«™¿â·Ó%Í"°ÆÐÕìM#/|ñ­­|ÕãÕY¢ÉR±=¹¯Z„Ý¢™{3‹ø†cë[»Ð0Ì–”nâÄÝ Ø_$Mã`¼¡`Œ]Ü›VæÔ ½X‰NÜ;\~‰ïpp¸Ÿ]3qoÜÃg Ø;‘ï ˜¦´ÿòšÃÛ,Æo@eÉ3ãØÜS¶^“ûaê+CÝ6ðlr¹çô!E~jŽíOP,ÎÙµ‚–rU‘”i0uSh0î5µvX4µÜU¯äꃻö‡açJÑ ôãõðR[kWtw#nã·Äå\}àÄ„S‹t¾|ÙìfT¼cµ´ö3ñ 2®–_ÌÕ×áMµ`3[Ôh?ŸV^´ˆìm‘–c…×A>ó,sÊ®8Ìî&ѯe§LBfÂ*+Ci½§lãÙ:(ÆŠÀ¶÷rD½ùù¨f Nô²jŠÎÌ3ˆWMMõÑ}/Ú–dL¹ä4 +ݧ^„)º±¢¶™aSª"ÆXzŽ…mÀ9V뺾צÿ­d¤ÿVø¬ÕŠl wˆìQóàˆ9Lüïé6d E„5Â_úŒÜ®å)à7=Ûà€x#“/:MjáƒðÔ’¢åêÔËÿ[/f̉jRz¯7Vñ€f±#᳊V½Ñ3v¨SuÈOõ>hŒíYè éj£ãd“(²çf ¿e[Ô +2VM¿G¤¬Õò&dFjÏÖÛwOVËã 3ßaŒùž`£áË’ydÙÅn%ÕQ®}tº Vø;æ%×´Gù/ÀˆB’šÐÎ*íž=®X?H榩ôVWR=Zê±sPQãÓqpWg1±lï¼ñ½‘"YÇ Ó¹2…3=ªºBõÊ;´7.*äÎ*®¼êÅNæP.R䫜ß×njû}3µ,Mð•EG—Ly¤c̃)$ÚÁZ:§Üø¼]Ø¢ƒ(›ê«õ–\oâ= +]6£¦)C£cKVÛ”q¹Øej›á̵ëÝ:òƒÅûb…ÑÕ}‹?xòVÒàÌ­“S߀d_Üí£hþ ÑóÒ<›ž­1Xî8ýN¼êuÚL:5Š&¬jÜïPzDõŒ]‹þyFmoúõ÷<7Õ±1¦‰lqý[\­7:¦>wÏõ±ãRaˆŒ¥æX:õ‰kg­cÖœHÛ$‰×êÔô{s]ÿpdå´aÒc®¹ïîß‘ý„5TȨÌ^„¶Ç*jç«mQ5Œ‡œL•Fo²:\^zB¡Çi·u9ÙR_ï$`Ú¿ŽßºÇ"Ï]€Qýºî÷xùÃ9‹7åÉú’p9ï¯Ås>œ0â¾î×IùþCnj8¬2ãêQsÈ*f]J¸e1…2ÚÜz÷Ñ&Ëgó–nÜ[€xX¹¸`ó>³˜ Cî¾µ5Òa;aV™%™Û‹õþªÄÚWê×A~€Õj˜ÝåÍàÇ ã'Z>µÍs,r:Ýn÷`aa!Cß(öeôzÜ›œÎEŽy¶O-Ǭ¹¥KvCyé\ Kë÷q< vZp5‡ü™Uè&`$lV#-n>€*ÊÜŸ² h•ÉwkìOØu¢×(3–j3´¶xÝg§ÔmÑÄÅÍKâ}F¥«MNŽ ;Bo^˜.!pfÅ•iíò¹L'È®ûÿ•--V‰&ýúQóðÛEvWÉÏÝ©=ÑX¦oO¶Á~ìX º€ÈÁ™·H­tOð“—‹Ö¼§²Õl°Ê¯ ÍMqÅù»ï›M~®Y‹h1?pñ.•‘c´ã7¡Ã›Mqý¾ÏòÏž`Ö’ÜþÒ†ÏÆôPp:EÉÞqÛÛFY§-Å]¨Òת|ÄÅ”ªî’YyÃÇÁyAznykÈ_:õ©îõP!Œ«œú=žúpÙqÞ $]A¿›´˜í'q%­dô¯Œ­[¤·î«óëÞ„X¾BLj2i%‡WÍ1?Ù¿KÃØØ‘®v£.ýG¾5gõa¸à¥í EÖüoúK÷nÇûÜRé8÷íxܾÏÐñÓç­ñ*½GZб”^”ïs¾·š Ú•¬¾F5³T9:£Ù·Á‡abÒ3.Ù±zÑ·3ÌÆáƒút½.éÛBzf«®}7šgÌY´zÇ‘ ˜4Ì`A ¸ðÇí\4ÏöÑ»&Óhƒ^§ÓhzªoÊöý5 8þVmk™ˆ5¬Ì¹IÝS£Ñéô†1&Ó»Óló~uºw*„9œ! @@@@@@@-ûçNµX—Âz"´¨Æ‰´¢>nµØ'&ƒ™èø³UØÃ1e¨2§ k HˆÀ'Ô-7U8í -°)P\8ó#Ïgn …£·5<Ñnð÷À2ø¥S°á÷…Ÿý¡Ð|ÁR Bœ"°!D:)Ð5Nf Fà%íá ‚‡B nTˆú5?ŠE$Ô.„¯yrhdü´,<2ëáð}玠åô[(øÙ{f3¿rPJN~»!t)·œÃ¥øÆPYr`6Wµ@þžeüÊA)ù(K&’xð"»êI”ÒU‘žÛM9§± ‡\Ù(Ahû3`7uò'P¹O³?|˜gA(&ÿ Ÿ †±«~2ªA¬c¯Ê} +„¬£aóVËþiUekRf â)AåèE&A¨Ø· +vE~ôdb„é%( ÃAh' ýñ'»eKêPjõ?Ã^<œ;• `¦( ¡É&ƒ‘ç9,Û×'X’ ê¼Ã~· ‹êâ«¶…œa…&’º™ÓªßÎ(ngpJì¦J\}‹S5@ˆ@Wëá Ÿ·ôb÷ÏŽß…yþ=W©¡NBóATŒ\&ʈQ*}õã~/ÐçB*2Ê7½3rà£/üÀã½ìfëá`kd¦ (¨És¬\Âü¸j ^ÔÕÛÏUíÁ0é¤PO®jbòó‚G3ó-£%éëì­Z™ã§³Ú<>%±¾ÆQKTöSAù©kDÕ‡J|XqÎá0ö¯³£©AVÈ¿ùhXfuXS6Ç“@ÉP<ŒÀÁÆd+Ãÿ gÒ…†E–÷ÅûÐŒ1íR[’¢cÕ( Ïä‡àþ™¡l ù`ÍPÁ` uk q™Ï¥WþÂ@ˆœµ>'£\nÏ~>ˆ=ª +×;§4V†ïþ•úZüCS’bE œ´.7Lë\v±æpIh´‹¹ŽFÁÝN/agETîæ*Q.Ÿ‹¹¡Ü@áô¢4³Wº=Ì0œ½äŠAà=Zþëq]ÐGF}zRÞ#F/W'h삉`.Ô„ç¡ÁÙ—tšSÒ‰oô}»ô~lö1Î’b +¼OgVÊWbDA6 š v±Õ‘>Ϲ_@ÀÊÔï¥Wd§ç?OQìÔWÿ°‰i°j11Ѿœ•h§ðuÏBlM@ÜOÌ'£U_$‰ÆäúCøâ"…º( ÈB¶SµÓlJš–xºÏÒ‚ýº‚ ý†ùê÷ßšÞQжT=„tÙƒé’|Òñï­ Œ¿#ÙG'ù©RU죹(7Ý^ú #íáŒûaû@„Ý×¶*tbþvçGC—Ði7Âö'»¨ò‡" ÎPÌßzWÇS˜¢uLvÖ¶¿„2ÑJ\óBÙ‚DýÊÿ„ô”רTéMúÂ߇'S‡ ðÎG +\é+ôƒ~ ÷€;Á'üW¾àwµlûÒNtB…IÊ»h¦äL †0{éâ£nïov!âshÀÄ3sº®P¼>¨‰ç Ì,³ä´ZS#À±¬ .?`áš6+EJ¬N¨‡ gŒLÓ}´œS›ÛqiØ!Ük¨Œ +Ý{Hœ^¨…å;ª|ÆÔbZ6GàŠ%údˆ(~¹Ú:„«†Ê#{=7·üJôÛª|kÀal¦ÛHŠÝÑ¥Rõp¢0ø.ozG“)*¥ÎD‡¯3îÔ¾NÝLã‘•êšÎÆIið‹ˆÑÞH¶éâÌà‚}ºdÞ”ŽLQiÍ­—° © ¼8]Bö+»Lc3÷⥤f@ÉÆŸ³¶uY ªTÇxDÉ6‚n&Ž›ù{øb<²pu½Â ؘHæôÆèC"‰CO½o׿dæBö¶—/¹7†Y>QÝ¢­üCdç™^áy›J…1Vªkø›ÞH•ý¦ˆæb¤U@õ”þ?]•³© +âw òë@.¿¢™†‘6A\.öššòcIÒRj"*ã$=E²—~¸SÕ³>HÔH,_;F¦ý0ˬ¡–FÅÖµI6nv™Û±’¡L¦Ê|7 ÑžcÖeøåÖšÚïKð´Ï~q»Ü=Ü´“K¤åXó%E ‰…Ÿ²k#Oú#CK85ÇÂyÌE³(²éGlZö­{p¡ßo‡Ê SD"‰¦«vКƒË·ïnÖqürX9@G¦À´â?Çóݸƒ772¬­±Â>é¦/°ëðúÎÜsT&'ÌPIå+u[âï®O×?êh,näÉzU1¯M×ËxMk¦³†@ò–>î0ˆ]²u÷èðÌÅö¾‹—ÞT°à™öX“£qÙz›žô½1ßaTÇÝgžˆþÐLkqÁ§!¥”zlú„¼ç3u:š×bøç—×î”`½ò¥gi͹I½œä‚˪WÄwŸNÚyĬuIè@taí'Ã;ã=—'c'©¼x“å½0ßé»êú¨îÕXóßï¶*z6åL‚HÑÖïÆk¢N„Ž"©²4F›+á$/ö8Ì:âM9·Ÿ¤^¯5}»þ¤— ì"O®ÿÖ¤½n÷b:kµÎdsÆé‹A¡Ûa1h"ZC²×ipó£¯ÌþÝsYökW”ÂKžßg¿òèÍmÂ’Ì}¡é-ŸùëvL '¶ÿj}é¡››$3Cò´½z–Zk0ÛrÝŒ y]«I¯QÕ•§í …Œ@FÛÛ|uÚwK¶•ñÃñÊÑ-KìÓ^©½­mÙ+‰@ÝlµæáQ&Ïšûûº]ùH¿ /æïZ·xî¬Éž~X£Î†+]Išyë®ß<»[Î]ºácLo[fÚ¾t8~w®t»÷z½Þ“…þ¿ª;Æ•@ì¤/c¯Û½Òù»Ãñ¥m¦åmӘẻzuËnçx¬€ý?É[M +endstream +endobj +752 0 obj +<< /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 512 /Interpolate true /Subtype /Image /Type /XObject /Width 512 /Length 5305 >> +stream +xíߕՆτ/$Þ¨LŠà•IÅ¿ …»ÖÎ1©AÿŠ‚zÃûJ!`œQÐÎMµÐ‚c/ë%3Ø*`Jâ¤E‰Œ…3EA<¿ï;ûÝûÝË•}^.ú㜵Þï]Ï3µ¶sZ-ýÁç'ÏÍ_õÔkgçÎM>7¼1¼kúêÕ©ÃÁ ‚»>øÈûóßýêì +»ô®W:·6N® [hµgo-ÌŽ.t +lRüز™[nnþãákÞ¼³0³4d¡Õ¾ýõ2?ß û0èT¼†ŽÞ±9?¿)äàÑ®…¿„, ßþîÿvïò’üBZôÅ̺.›ó§BN>Ó½±&`cW÷ÂŽ€ƒN-úcäÅn9ó«{ýè‚…m½Z'»7¦ :´è‘ñn9ó¿ì}ôÆ ¯ö^h]éÞ˜ X0èТ?F&ºåÌ·{Ý^°0Ñ{¡µ`a>`Á S@‹þ1`-ÿŽ¿”äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±ƒjòoÙñ#äß±œj+¶ìüø«oþ=ý»ß|õñäžÑå!ÔÌ<ôÒ©˜CµÓDàÃW8Ñۣƚƒ×›îÐ{±nùyôÞ¾w÷Øû´×‹@ç`øgÕü4_ Ï|Õ뽟Bàâo~¯aO½k_ÊmÚ !°'ðóÂŒQ§ÿ-äͤx÷ª4^Øâ÷ÒÓv÷󜓆ôÝæ/yêÝ»ˆÚhQú³?YlhÀš4^ÐÂO` ½DsQ~ËóFJºïBÔ!ZŠ"p1è Ijƒb^‹ºCK‘I±ZwçÃT#ÒD ò—vú[‚Úk8™ÀaC¹½õþ–O²Q,ຫ¿!üV^ÓéB>ã¶÷7.iâtú=JÀ|@RLjYU×4ƒÀƒ sœŒ-Œ{”ØÌqÇHÙƒ5×4ƒÀn†9NÆ»Œ{”8ÆqÇHùk®iæ8÷(#pžãŽ‘2‡5×4ƒÀ5†9Nãe 8î)hsÍ30Ìq2×(%ÀqÇHA›kžA€aŽ“Á¸F(Ž;F +Ú\ó  sœ Æ5Ê@ pÜ1RÐæšg`˜ãd0®QJ€ãŽ‘‚6×<ƒÃ'ƒq2PwŒ´¹ææ8Œk”à¸c¤ Í5Ï À0ÇÉ`\£ ”Ç#m®y†9Nãe 8î)hsÍ30Ìq2×(%ÀqÇHA›kžA€aŽ“Á¸F(Ž;F +Ú\ó  sœ Æ5Ê@ pÜ1RÐæšg`˜ãd0®QJ€ãŽ‘‚6×<ƒÃ'ƒq2PwŒ´¹ææ8Œk”à¸c¤ Í5Ï À0ÇÉ`\£ ”Ç#m®y†9Nãe 8î)hsÍ30Ìq2×(%ÀqÇHA›kžA€aŽ“Á¸F(Ž;F +Ú\ó  sœ Æ5Ê@ pÜ1RÐæšg`˜ãd0®QJ€ãŽ‘‚6×<ƒÃ'ƒq2PwŒ´¹ææ8Œk”à¸c¤ Í5Ï À0ÇÉ`\£ ”Ç#m®y†9Nãe 8î)hsÍ30Ìq2×(%ÀqÇHA›kžA€aŽ“Á¸F(Ž;F +Ú\ó  sœ Æ5Ê@ pÜ1RÐæšg`˜«ÏX÷ÂøDè/Æ5Ê@ „ڙ߶¶Þsõ;ËŽ¢m4ï™À‘¥Õžk^}dÆó1ꆘYY£ºêåÁ÷ñhÃ7éEU¦«_{Þ÷)jC`KµëªW'còµã›Àñ*ÓÕ¯}éûµ‹!ðEµëªW¯ÅäkÇ7¯«LW¿ö™ïKÔ.†À§Õ®«^É׎oªLW¿¶¾ãûµÃ tž¨v]ùê~<_¾ ì­]óâÐaßǨJàÐPêê—6FŸ y¿N=;Pí¹áÕUÚ¡¿ü^r³P;í «43Þ*™²ßÛæ8~•܌㎑R2e¿·1Ìq2ü2*¹Ç#¥dÊ~oc˜ãdøeTr3Ž;FJÉ”ýÞÆ0ÇÉð˨äfwŒ”’)û½aŽ“á—QÉÍ8î)%Sö{Ã'Ã/£’›qÜ1RJ¦ì÷6†9N†_F%7ã¸c¤”LÙïm sœ ¿ŒJnÆqÇH)™²ßÛæ8~•܌㎑R2e¿·1Ìq2ü2*¹Ç#¥dÊ~oc˜ãdøeTr3Ž;FJÉ”ýÞÆ0ÇÉð˨äfwŒ”’)û½aŽ“á—QÉÍ8î)%Sö{Ã'Ã/£’›qÜ1RJ¦ì÷6†9N†_F%7ã¸c¤”LÙïm sœ ¿ŒJnÆqÇH)™²ßÛæ8~•ÜŒã®6eõÆà0R2e¿·ëÙ¸ºVrÝ£gü®f(3›±Ÿÿ4ô&úÍû&ðôóß^ñ}ŒÚáöÕýV_ñúSúù¯8`ç'+D×¼ôºó[T/‚ÀX슗ÏFÄkÅ9àç¿ë󜻌©w­â½æ¥ó1ùÚñMà\슗ßñ}‰ÚÅ8V!ºæ¥çbòµã›Àh슗Oú>EípSÀç?¶Vêó_q®7>¸âû¼þ¥¥o»¾Få@o=Pïºú5[Ç‚?`,£q +`=c[¯vÌz•rŽB@,{é9`qS¤{c%PÎQH€e/=,®q +to¬Ê9 + °ì¥ç€Å5N!î•@9G! –½ô°¸Æ)Ò½±(ç($À²—ž×8…@º7Vå…€XöÒsÀâ§H÷ÆJ œ£Ë^zX\ãéÞX ”s`ÙKÏ‹kœB Ý+rŽB@,{é9`qS¤{c%PÎQH€e/=,®q +to¬Ê9 + °ì¥ç€Å5N!î•@9G! –½ô°¸Æ)Ò½±(ç($À²—ž×8…@º7Vå…€XöÒsÀâ§H÷ÆJ œ£Ë^zX\ãéÞX ”s`ÙKÏ‹kœB Ý+rŽB@,{é9`qS¤{c%PÎQH€e¯2gx×ôU°Æ¸:µs¸Rrý‹íY§·¨VÙ‘z×ï´õQ˜ý.u/€a}÷û5Ùìò’Šïóš—vE>CkŽ ì¨‘]ñ²~ü¯c±Õ¦*D×¼t%öÚóK`¶FvÅËúã߯Æèf—+D×¼4ý-º%üþ¿Óí*M`{Í7{ÅËúë¿hÊn/Ý_!ºî¥ý÷?nEÆë<]çºòõ‘ËqÑ–O—0ý­Ö’'ôW>]­®œØŽüæ_ùBã‹p#-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£Ó7 Ç(&`ª¸ñapu-4*1}“pŒ"`¦ŠW×@£’ä7×½0>ú‹pŒ"`¡v&Æ·­E¿–…ëhÁ1#K¡¯€GfߢjfV_ƒïGàÏ€§ôó_c»Þé<þðºëKT.ŠÀX¸ÿ³QÐ’kÀÏ×ç?¸6WîZø÷ÿù¸'hË3sáþßñ|‡ºÅ8îÿ¹¸'hË3Ñpÿƒ'=¢n1¦€Ïl­Ôç¿Æ0v¼óùÃáßþ7'—¾íøUƒ ¼õ¤ÿæðš­cÁ0×Ñ@°ž±­£ö±yÂ1Š€ `ŽrNÃÕµ@ Ó(–M8F0ÌQÎi¸ºrŲ Ç(&€9Ê9 W×@N£X6áEÀ0G9§áêZ ÈiË&£˜æ(ç4\] 9bÙ„cÀ圆«k@ §Q,›pŒ"`˜£œÓpu-ä4ŠeŽQLs”s®®œF±lÂ1Š€ `ŽrNÃÕµ@ Ó(–M8F0ÌQÎéëpw-¤ÈiËþOú1J€ `ŽrNÿî®…t9bÙ¿J?F 0ÌQÎé¿ÃåµL §Q0û¾éäk€e_üû9´¾æ d +‡ßûÌK‰÷h#+ʽ€Õ×t"Ü:áüÄ{´Ž€ýä^Àêk:‘@np~â=ZÇÀ~r/`õ5H ·N8?ñ­c`?¹°úšN$['œŸxÖ1°ŸÜ X}M'È­ÎO¼GëØO¦ äÖ ç'Þ£uŒì'÷V_Ó‰rë„óïÑ:Fö“{«¯éD¹uÂù‰÷h#ûɽ€Õ×t"Ü:áüÄ{´Ž€ýä^Àêk:‘@np~â=ZÇÀ~r/`õ5H ·N8?ñ­c`?9†wM_Åêk:‘@Nhv{6ñ­ÃPGçÛúÀpX_òBFŸ`ô°¾û“mâ ¤Œã»ðòÚH&Q(­ M–JÊ8~%¢½VR d +Fëÿûê2bÿ()ãøÅˆúZI$p>£P0ú“ÄS´Aàß ¤Œã“õµ’HàXF¡`ôOÑz—AIÇ·DÔ×J"M…‚ÑËOÑze ¤œãFô×Jåô‰f¿˜tŠ–#üu”s~…~x„”•ëËsú„³ßH¹E»8C°¢¬ kõ?À&lÜx,«N<|,á­ÂþˆÊ»±D–¿pá¾¼6#ÒGâ¯Ñ&JàéA¹Wö Gh>–€£ÿê÷‡¯ª¡¿Æž£=ŒÀÑÁ¨;úW‹ßÃÎÐtÜíHzw•»õ;@œQhkòžnæ®þõþ3¤2b¸ó²ÏßüoŽè/#¤†¯\øµ«oø—¹w÷ðk4‰è\òcâÞ^yìàÿ°«4FàÆ‘Ÿys]Ýgù¶Â.ÒT8nõõwüªÕÿꃛwÿè‚þá~k'ç.|tüåÍžþ×>ßKÎ÷Ï h´{?¨½`a¢÷BkÁÂ|À‚A§€ý1bÀZþ)É¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õäß²ãGÈ¿c9Õ^]ðÓù~Ñû‰,è½ÐšíÞ¸°`Ð) EŒ,ü<ÙU½~´Ûæü¶Þ ­éî©€ƒN-úcdm·œCn>ݽñxÀÆÎî…í ZôÉÈ‘.;φܼ¹ká­…á®?.ݲ‘¿SH‹þ˜Y:sÇç¡“~øâÏYhÜùÈÚNØÇét +*ÞC+oÿùÜÙ;vïоÛ>§[h\¾õ5v)L«eÐ)°zŒ-Úòι¹O_}"üÔ'Ç>›ûïñÑEÁKvœ¸råÄö ßü¿ 5è\^ƒ" " " " " " " " " " " " " " " " " " " " }Iàÿ‡Ð7 +endstream +endobj +753 0 obj +<< /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 512 /Interpolate true /Subtype /Image /Type /XObject /Width 512 /Length 8514 >> +stream +xí]y`ÕÕÙ a ,û&•E‘µpÜOEKÛh]šÚVcÅOS—6­kj£­K´.ù´¨(AEDA¡”UDÈ";a_Hæ „÷ò–™÷æÝsî½çΜ÷Ï›¹3sÏï÷;gîÌÜ5à+À +°¬+À +°¬+À +°¬+À +°¬+À +°¬+À +°$ÈÊÉéÐ¥K¿þ}ºti›“Ó€$F…©@³Ó.úYÞƒ_ÿè?ßïµb»V}5íÕ¢n;¢g#L³œ—fšýÛ¢wîŒu¹cÊÖy“ÿõ¨ÓšhFÎæa +4è5¦`jy£›ØXV4® _­C—<8eeuB»9¡jÉ÷žÇE/ +ÙLë5®xষ‰#ËJr{¥áá‹Ô)ÐàÜËöØ:#që¿ï˜ªŽ [JN.¹¥»0Ü7í¥¹í“ƒÅg+P ñð¢Õqý†y°¼x ¿(pª[­o™qÓ¿.ò:0el¶[x|žLZŽ›ªÚùuñqhê¸f2‰qÞ‰8Q—óëBàÈì¼V‰AòrÈ;ç ßEyïxJåä‹ÒäÐã\ã*Ыp›£SÔø¡°[\¤|]f¹óÕú8µù¹Ñ9r†N +œñ¯ƒ ü¡þðÎI?v‚Ëé˜ +¤Ž*Sï]7kÊFq1¦§íòjš·Æ/4³(— í¼†•Ö¹0™V|A°¥° YÎ'JÞoÑáÒ$mœÔ. +7ïb(гÄï –Êâ¶„90zã}Ž€0·!mv.6åÞ>,*‹ù=ÉùFÝûÁØÿX–¾Î§qÁ ¤†ýïÈçaÐÐM·Ñ0¯‡Ã]1Êßçן» \N·gœæsBèw+5ÐãQ«KZC$ðñµ™WFiiæî®[¹Ï°@Ÿ¹ÜLwÛ þ¢—_rB‘þ®=6žLª*Ìô·;“e?jƒ ÒT/[5ñ*CÇQÂFõˆÐe§“áòþ ùûû„Ì"ìÛtœÉá,'ÂO]LË]ÐÌ釿¿¥ÜS%ApjYîëo/;²ÏöàWŸmðs³°MôYe+–çw´áïó¤ëö{ÑÓœ¶qm`d¸§:(åÑä#T*Gû+&ØËàßÔÃ×ú)òüëh'æG|4UÄͺ ÿÃ[¾™]6½´ôµâââ7K'—•ÍY±]7¦Cø¥¸^׫_ݲž»Øv½HiÑýŒÚ…Bÿ½HþRöeÀþ³üWjøðÛ8ý‰ñÝ®ÙÔüÌ[þöY…½“d¦î臩xVÜ~ aÛ^ú癊û¤îðÁdAg«¬ô]ûÏñ=!-Óûßþ†ÊUF6{¾OØ eM>û?øMÛ>æ’Ôf){b­óøÚ’·È|€Öç½qâpÌW²¯xYÑÄó‹=½ª`ö’zÉÛZ_<*=æ6†&¤ -R»Ÿx¸GPÆÇòœ̹â™Á'~¼0Éùª‚žÊÏŃ`ö1é]=kfç6’*Q³ÜÙÁ@“öŸ/•ÆÌï•&Y]Æ?<ÔE»ÓŸ‘\ATsµLŒ‘[í· ó/ž>MråNMypH<ë¦,óÙY=EiåiêåŸÉ,˶ypŽvßžMR/Xÿ·$g‹=7QX†¼÷¦ªýØb·W‰¼x=ÖœÙ)e•—U%êïý +z—Jk4þuІ7þÇJrMI'­õ.‰X•§Þ{ï“#ÓWƒµzÿ¨ñá’ª47yhý°&ßHqÿºq²jú’‰ªôÜ­RØ}‘‘ +Êç¦L–!о{T}ï'Ò¶y‘”Õ Odה㿓áþiÑ c™ªš+1@é'¡ÃÏŽ\ —¦çI˜³¾Â2%¼ •Ò[K¡ó‡ø¥Üt +ï7лåit]~Å$åúñø]›ò¤Ušépô*’·éÝüuŠvš…ꇌïzÂ:dMö{ò‡ßLéùؘ/¥òN3™íבÝ?÷äd¬+?wÐwÈ|SNÕàuÈrS¯iмdmõ0T(άî(š=Œ‘L¹·2h­ÛQKŠ]ëÊÜ»¨·ÿ +3fJ:k*ë'])Mò¤Ñ¨B3cvÛ/1yW;;P6æ"®&Í•ÚðÌXˆ?˜AMiYóS9N f+)˜µ†v€ø"TqŽc”år5bo×Ý”ÁF4”ö¼Bp5ÊHNDr‰³‚8nøSÛ~‹çþy'&Ö›Ü=k>zøÕy¢^ƒèç¶óµsx4 Ž+Ñî€-æ)ðùOM­i½Mƒ¿Fõý3Ð^€ß3· $ç+¬¨¤ÝìhÃ=Þ¤^ã˽>¥š “ë35ak Và¿‘f]GŒMç` ¡t|£#—`½ú|ØÐ¥Eª§5› R©R´Áõ;$Ò›ûìªr"Ö +G7s¤ÿŸ³ÇÿsL}ówQÛr167 Ï•ôö“8Œç›÷Õkç–Îëqä¸ß.sŠip:ü¯2±ÖÏνq&ŒÙiÊRqÏ¡ÄûŽÛiidÚ987DäÛ£°­2ºã[”§Æ£Ü»šGeKs÷Y ²5?§INÕŸ04±þ(h]éeíP–u3‚ª{]SPzí6¡x#ÔKMlñŽ™(½!Žg‚ƱaÌï¾Â{³ wÀè²—þ'ÑS·ÿÞž4bÅHŒÙÂA…$!³“0nÿk$ÓŸåýwFõÑGH<â!^”¥LAÐæöxôËD˜ éK“[üã¹ g-<VÒnD¨èØgdoçx~;¡Güe¡Ü(n,„Gøxм0ý.ÏL$(R²9Îï)Àˆdšñ5\ D¸ØÁ€¿álmm—¯gÒzÀW|…®àÏ·QtÙ¡ » \TµE"#“GÁä^”‹Rž©Ÿƒ5zˆŸp,YàÙ>¶‰,ÔþvpóØzª]¢¯‡¶·}탱¬Ò…ökOe6Ók­~v.iîü–]¶úÓÚAßþ¢Ÿ„gB‡ÆUÒlü_èíoLW`¼êN )—§¬ÒZ/wéN)¤…2m½¨Ô!³’/:HÊ+ ì'@¥D‡KÉ‹@RF p ±ÚÈü¨Õß…ÌJ½¨ t¾£¸¥¼èÿô‰ÿÒÿ%5êòè ‘“£ûÌÿ‡»“c$ÐÙ0µ,rõäM€ýþ^©6Á¼?¹ÀÿÀøñ×í ée$ÓoÀø¼LŒŽ|8ÀÊòÈG˜Œ…†°*#ÞëëVµÁ°¦‚ÖÀ%06ÿr«š‡Î›“l))`UÚÕæMï W8ÌÿÏÁàå¾Dæ}<$æä”²¤Ù&JmåÀ~¿˜ã5D¤7€üoõA„Í +6êk¥P†Jáþú†Ap—{KÒÏ„ukÿ•t|4 À:LÌ Cª9¨çÏNêcZe }"¨ÎôPcY¸’Î÷*PAöxÒö¼rÁ« Ý."#lÂ7?~üÕ¹î<ÿŸ"ãÿÕsÉÐPÖeîåx vƒ¸ßºÙ!W?$ÃÞ;‘èˆÿ˜2«© ±Ûƒ^œoI OВׯ ôÎ%Ó ·N1@ ÑjÇP­èõÿ/VÖÞ^‡m¦.nk¯E²©M!Ë„V7KÖœ”óGCüÿ¼Hæd:"²ó¯ +TDzªŠ ŸCÄ{@ʸvf(ìj7kï<2Yþ‡ôIßð?áÉliû>@½Ý&ì `]©Heºfr!òõ&À RûSéצ¿z¿u„øÿ¦ú|´mAºþ}¦ 5ÃßàI4æðO €_7„§ú•é¤B^ÿ(ŽcW-éÅÿoR 6Ö^üTg2‹¥)/¥1dB8ý3øÿmyª”3d(è¹ÚyÞðÿmÚÑSð@Á;´€ôaë§=ü¯"˜ÿŠ£?àÕ…>’‹ªœjq g'g +ÿì4@æçøpŒÌq¹¸ÿwé&|²8vëQÝà‰Øÿ'@Öš9Œ`¿J3v*æÐp€fìí5c§b¾Àÿ£5“|¼Th†NÆ| ðo5³xYQ+pZÆ'‹Ëø ­L šß­8-ã‰û?_+“çÅ_£8-ãwˆËø­LÞ>D+pZÆC¨õN¨þíNËZÑæÏÕ»nÒbñû_wÏ­2~ª¸Œ³¢²R»»Ax¿'þˆt` +•¥‘9)ÞÛ#ì®þ sU¦°ŒÖê°lÔoŠ]Y¥,a‹û…`ƒVV5¸çiÅM͸øjÛtRÉv¿õ‰NÜäl¯r·N.€†+s×èÔ.¶øwÔÁˆ|ï䇭õoÅPi››/,dNb­…a[“uâ&g°´ÎAtíÅýÿ9èô©¸5âî*û%°é™þH\Èlº‹Ãþ§FØôL¿'.d+l“¿¼¬6=Ó†Þÿ€î¿¯Ós‚FD€vTÏÀû?Ïýn€÷íh€ïîþîñïÿêðlToêÿ>R•´½%ÂïZëÿÒ…a[3IûC58CëÿâSÍW-1i{ë…o$­íñöÿ5¤ý¡œøJÀzÛÿw Ç­ÖvKÕîMd/KXFÍýÄË­í‰ü¡ú8 e‰j¬öŠ®ÎzËvúˆË8S+|ÀÜŧhNËøyâþ×[ö–8ð3i¹@+š«ÄeÔ»€b±8ð±Z§eÓ!â«w˜eHû•µ³AXNþÛl)þ4¡!ØjH ¢ÁAŠ› ÒéîûÔì_zç¯RÐõè>ohü­“ Ä•~^´K äÖ¹NWÔFÙí!aý:*7?í>Q®¦ ©Äg/­åOå)¦AÌÔµÿ/Ò€ØÞäD ëtûL}z!H·GÉ(tˆÇD2 +Vé<\@h¹5Ü +¥¶‹Ì4Q¢3ê }JZ«S£ó¤²Îr,v<ߘ˜/ùøÝuwÇàh™Ê°ŽÝµ1™z+!ZDZ[ÑU4ø˜2;;Ðe‡€¬/¨Ëÿ1…(/›5ÝÖ ²O7÷g.† Dº¡2èqi(õkGpyD“àî§4ì#‚Û±ÀJ–Aiy·+РáþuˆPJƆ Åÿe"„ ¥õfqQ‚W.%1埳*‚@ÿTë·œY»:’> IðÒ›\™ÒwR `?Àc<½Ù ¯ø³¬-„ýÚ¸m»6°ÏÛèÔ«þÖò k½7)TwÈ4ÉÁÒ»]$þ ùÿÀk-M–Aä^KcÂ×øeP˽A´ÿ§â1íhÚ;1‚×nojïǃpAÿw˜@Õ5ƧAZ/¾Çµ='žt ˆò_í¥I!î„(ºÖŒÛ?( +!†lì¤3ˆQm_|"DèÚ»QAÉˬ J`mh'¢Òœî¹²±µ±RÔc°‰­B-'ÜÒ„:=¶…6~Ÿ„M½§6Ù"ºx‘þå-áBvØâÚXM¾ê¯^+àÔV!æñÁSÏÛf«ã®ØÆU6™SMJ[ãºúÓÛÛbTû•ãKâ ‘¡xqȃÀ÷Ì^¦Ó> ÿàåÕ†5‰€Ö5 +’>úÿÉ%@,÷[/EÞ_ä÷úT‡;²ý™mîh‡Uø[Ú;˜ ›ü"Äç×Î%:Ü-¡ô]±^ý,ë„Æ¨pRE„!; ͬè ›ß9\±õ.“zs8Øö·& +›3B±+©ÝÝ.ð¤'8 `Ó@ir9N¥ï1Þ£EÍ%šÞðÑ`¡8xµK£TNËC{ÿµ¬=†6„`t F@MϺÁ‘öL7ÆÿínL<'kû`Ïg¤h©ÉÔ hŒÿ¯Œí å2R½²íÕ&—zÊÒHà°½*ƒÇC½£uõ†Áä\mè2¼Ïþ£…úZm¿z’?üSCnu˜ÏG{¸ÿ í¥‚.Á-ð,«ÀAWS’txôå‡ è¾gaŒñ +g<Ïœ‡ˆŒÓ÷5L”9';˜Ò<´zÃÐæ¾îº9Áí#u ibYûóà¨ðsHÏG¬ï<Îv<>Lå96øO˜ë6?謜F"ƒ q ËæíDF8Þg8@˜.–u €V¿°Æ…è¹ÚÁþ-ŒðoB¿ŒpÒÎbJF£¦½‰Õe[·„Òšq‹±Üà)ÕÏR¹=º¢V÷‡)³¾«þM„2SÂ+@­L{ ( ‰È)<æ2ÜÍõ):âu…ŠxÝ8ݽâ3rÁ“^G0ŠÚñJ\Š]1ÔiÎD…Ìã)£WHú÷Ê#àO’ô±¬ÙÚ¦ÃOõµ4V¡Œ=R¤~b„¾1{¸Ì{Ü)ï”Qð©ÜÝHá‘hµÎ YÁsfsò’¬ôôkQ;yÄãí‘GÀé3C:ê´è&•ß9w­uD‚À#%À…à•OâJ»³HÕ©“‹Ð†õÅe:葸=DHÎFÕkÃä/Ðpô‡²¾eœUñH<åÌéȆB¹Ã½ +¥~î;ªàH{ב ÚšYãem÷;¬i-’gë—À¬¯’gžüGfçµAïï”7[}¹ÆÝ%@›õa”$nVÏÊC¬:Oé{ÿB‰`Ýeí8qTlÝÖ<7£…°Ãø×õ<ó£éyã0mNŒh}lö«ç=zäQÐíúIßÚd«)É%ÀYˆ£]9bÝ›wI~™–Ã'LEš¸ÑJ7'y£¸à®Èç|?íѺû0h}Ö-Ï|ŒÝ‡Ž7J€+äVÆ‘z÷’©“òÇ^0 sÌ0¢”'ÿäŸÝ÷üGËåõæˆÌí!oÀõˆ“#¸U.ê¼#[ËËÌÿª¬¬lÞüEååêÞJ£p$»ëGÀZ?¥“ÕœÔùÞ(ò8D£Ê%À/õ?D û:o”×à–ÒíUö½—~ÑVåK!;Þ€s÷ +‘ç‹,Ë0w¢?†7 µ +VsBÈÐë{s'†Ôp’‚ćlj;E –¸&äãH)0Ak’½›¸&H0¼<çów ¿àÔ5‚ü}™GJ€Ó|ïIA<)ùÜ( €À¹4{܉9EåU^ €ösTªæ![^ €†ErŠJ*^ €À8?´oÃã™è¡=€ñ7šÜFh:fÛˆ™sMz| +¶G9le±IL>•nÛpU©èj¤6¾vHêVD³›ðÖBÀdÞ¶K>á÷kl _‰ Ç'÷ÒÍ‹ Z‘xû©C‹);‹‡ÆCëê€+™B'e+£ñ&P]6®Q`ƒ YñºèoX^Ð1YØNçs8)㘞:ìo5>õ¿+àMà€€h©ý Vh e…ð‡~_€(A\îö*X¦8–œâ[R§q$%WØÉÝo{GU+ñæWo€,*:v“ V·)iýóËd=P–ß?Å- ‘ó8DT ]ÓôÒ§æÈZ_nï'Ÿ—tÛN™Û ·J9—Þ+·drÝ@yIÞÐNqÓ90ôl}Ù#ï¬ÂI\µ´ô¾1ëb@tʃÀI™dÓôSPºL4 +—O-×?‰ž<ÉÂs:ŸÀI¡ô¬žÞüÈ+Ÿ¯;âò±rÕ'/Ü8ìdEå½ 'QÀIé¼îŽŠ^yîòòòíǧ®©¨ØR^¾ô‹©/=q߭׌èßFêû½;ît‚ž•‘“ÍBÎõrt5&Wc\%(€]É•ÀWÉÊ GWcrå0ÆUr€rÈÑÕ˜\9Œq• rt5&Wc\%(€]É•ÀWÉÊ GWcrå0ÆUr€rÈÑÕ˜\9Œq• §osÙyÉýižY4JŽâÄríÃ@Ì#Šáp(œš9jQŒ‡@±àÔÌqPóˆb<ЧfŽ€šGãáP,85sÔ<¢€bÁ©™ã æÅx8 NÍ5(ÆÃ Xpjæ8¨yD1Å‚S3Ç@Í#Šñp(œš9jQŒ‡@±àÔÌqPóˆb<ЧfŽ€šGãáP,85sÔ<¢€bÁ©™ã æÅx8 NÍ5(ÆÃ Xpjæ8¨yD1Å‚S3'#ÚS#ÉxœKsœÍñj +ôÝî~î—gNO¥F’ñ8+ ¡¸×Ù!§~ pø r$³ø%À‰®æ¬¯àÀ¯|­§qäÑ[§¯£—·ùZNóÈc—«ù À¬ À.†™EŸÑ"À?XQÃÀ}TðÀ0ÿpK€þ¦Ñg¼¨p'ëiœ˜€7ŒcÏ€1óYNÀ{ì6=CF,¸ +ØÈpB+ZIŸAc½ve)ÍT©è`&{FôÀÝ@ %ŒG@M†±ô8Â#`«h°ðøØ`ö =~LbVZ\c4{ý +hîhùøE†“gøP Ïš¯€x PÓÉ|öÌ@¼x—Åó„¢_C<ÁžIÄŸ²r^Q@¤8ÒÇ+왇È;ÀD–ÍC +$]¬Êö{¦’l PõÖÌ[ +$÷x‹·È3›äjbÁ¼§Àé[]Nþf§x=3 +tYé.ŠØýÞŒ–}í"ªnõ&yf¤T'Š€ï³PV`䪸P]ÜÌÃä™Z yß^ç˜Í3>x?F²ó6ÚGÀìQÞ'Ï kÈýöÁèXQðcÖÆ? +4:¯àƒ•UuA°cî 7òHOÿø>Ä4£U—~=:6 íó+À +°¬+À +°¬+À +°¬+À +°¬+À +°¬+À +øMÿË\~- +endstream +endobj +754 0 obj +<< /BitsPerComponent 8 /ColorSpace /DeviceGray /Filter /FlateDecode /Height 512 /Interpolate true /Subtype /Image /Type /XObject /Width 512 /Length 6368 >> +stream +xí}¼U¹Çç8¼Ç‹¼ªá ‘÷jÝ+Ša™&õ"ÔŒ#/½($J „釤4©Ó,%°@ÊQ!0DPîÇ—êz±òH%H8äåà9s÷Þçìsf­Y{ïµç¬53ëy~ûsf­½fÍóû}Ÿµöì™Ù3ž—šW—s–¿°³æ}Ÿòëø[+GU¤ÆòôÒwæÿÐHêÍ'¥Ç÷tDrÉuÈ/¾5 ¶§$Š¡Ï‘'. | Д{'>(™Ã¡¸çÌ&ýÌ>¿ŸïF$@.ï[ß]²†G>2 ÐvØ*•˜¼ÎϨŒáRÇ~h³Ž jµNæ3@åÃj[øÔòžfò]H)ç`pm!WÕóM€¶a„¹°T¶ 0·°'¬ÞašýŽ((×®›rAÿv$ˆvUÈm¨â¹¸0ìÇ¡[»‘DŸU˜¿Ï1zñ_u"]úžW„?ǸYÆ_?¿’2þ¢ü}~ûÛeþ“IÓ/>þ}v3À ÿBâø‹v 0Kâ¿­5sþÌf€ÿ‹©ã/5þ}VûUÒ—ÿ5äñ—æÏi ÿ/€Æ>ßFˆütdÇ¿ö_¢¹›A7ˆâŸ¤_žÿœÏ9æˆü—0äïS#š+1ùX JŸÃ‘?çø‰È +Kþ߀E"êÇ~³é-ÿ9­cûþ9þlüøsMðoäÏ4À?ÏŸM´»ðÆ{6þß5¹×Qìÿe÷ÿr/ßzMyJB.$×ý& pÁªwöáÍŸøq€óKÿÆ—9Ê Ðk¹Æý¸ó§›Ãv ô +ìùýP¡ù/ð'™Wïr5ø{?:n9*ƒæ› µ“AíŸ.„;TþÙ#´U, a.Xþ¹#A¤f€Ùi‡ßÿJ3À‡ü„$ÿþtö:½..QÿFþdf€ÛJßÿ<"3À‡¤ßwåp×m™>ü£}ºe_?ÿ&âÒ‰o÷‰|³¥#wôiVŠë?š®ÿh6¥q‰@œ>Ùÿ»…‚aþöBŸþõ·Š<ÿ"üO€Šòô?)8ø3Ëà_Œ¿ë ðIÿ]~ð÷‹òwü[À÷$þÏ´åïd[šËNïn“øiÖÕ¸„ù¿øøwúl`§ã"ÿ‡Cø1ÿ—˜ÿ3޹;È÷vû,øgPýþ3lL ÆÙ³W‹Ãÿ@›€¨ÆEÌÿ¥æÿŒQ.%@Õ‡GÝ8Ñ+²¯?‰üW…ñcþ/=ÿg\så#`àôlj̃¥àŸu ìùß‘èx]‰‡÷Nÿ¨üÓ?tõNp¬«–Ç‚dþ)O€Šñ{UÄź1àªwOÙ$’V—À?7¢|þgWLïNà½wƒ‹ø§v¸Yã‡Ùü[Æ?3@…t GõÜþ9öÙ?Qçÿ̪i<tgaàÒ;ÿ¹hÿ&€üü‰y°þ-柺¸\ó³?›àßrþ)Ûø ÞžÃ,þø§j¨ÜœßK-ƒŽÿDŸÞËU–ñ'EÇ&‰RJ”À?G¹RúÈì\û\ÓÔ| 衜ýk7,¼e•ٗt¿/ðo -"X.ÿÔìÜ®ð/Œm~tórñ}ðo ýwÑ–QeóOIt= +É”vŽ þ¼ü•h¥»áüLÙ¨xe*ön +áߨ]ü;òéš·½¡‹âó ‹üOC¼,óÿy•1ø‹~4–ä½fÕuʃ•É'€|u¯¿^~t/ø‰5-”ÆÍζMo•±ø·€ïJ2^oÞñk”þjžoKÎE{êYÒ3ÀVIEøÑ­à¯æ¿Dr®n¤º]‰Úd S­¨bK8Zð{’­":çûïV7,Q›hœ/‰P|5ÀŠ¿IÞù‡«Õ-KÔ&™D ïuÇ +þaOr5“Eï2¥ú%½ ´-Z`H·öxD'ø+LÉVµÛJÿàÜþZ«N.~*J˜§ˆü¦äª¾.š×XúãüqCŸSÞkJ¢«·Ï(´asõ‰Û•oì’Ýø²»Õ‹¢{¦K1<=\º¥¿b÷ü áÏ\̯¶³Àþ °VŒv˜B«ÆøŸ/öò%E/4«æ‰Â—vô´ì›þEáçY:=Ý·zJTn¼´Ü²V3üû +óà?*-¢î{…˜MzËû€fø{Kƒª¿•">ÖCé¿;(Ýüòt» + ñïóf³ò-ŠÄØ‘hïg¤7›`lé»â ñ÷þí¼â-¶wYìR~ïý¶ç¥Ûø¿¶ü€ÊYÃï„ÌÊßs#¯ÑŸõºëol€oìÓþ™Ã¡¿ú\F»~Íì⇭e€;ü›ýà·tê[ þndÓ°-v2üÝàïy¯ ?&£å9þ®ð÷¼n×>¼¯åÄÅÀßþ™H+ÿý‹³~¾rýsÏG~½ +þN7ì0ð7m©Sý¿S¸Œ þÆ-uªCðw +—ñ`Á߸¥NuþNá2,ø·Ô©Áß)\ƃã–:Õ!ø;…Ëx°àoÜR§:t•Ÿ™ÿºý±I2;…Á:Êÿ†Æû!î¾,…žº’›ü›Q7Þ%·Ó«“ü¯ +œ´QmþTÉêé=Ÿ¨¶ªdõt¿žOT[?U²zºÀ_Ï'ª­ÀŸ*Y=]à¯çÕVàO•¬ž.ð×ó‰j+ð§JVOøëùDµøS%«§ üõ|¢Ú +ü©’ÕÓþz>QmþTÉêé=Ÿ¨¶ªdõt¿žOT[?U²zºÀ_Ï'ª­ÀŸ*Y=]à¯çÕVàO•¬ž.ð×ó‰j+ÎüÛŸz‘×€ŽQó“/ÿáëj›îžéüBÝæêÊH)À•‡_9Ï\°¡{”`Ê¿’ÜíŸ}ÿÅ(LùO“‰b„Ç¿0½ÿs›wH—DíUþ'Ïñ?TrŽHñ«à¯çžÿ•÷‰çø'úü¿ûòTõÿóä-‘ _’q«>÷|KžüJÆ)~&OUÿ?OþÞ³Dˆ 2v´ÑçžoÉ”ÿã‚s4 +Wä¡–ñŸ)o"¥‡5¤o„OÆÏÿºìï4}^ž¯”1ê››rÿž×~ì/ŸyžÈk늉Qþ™I¾ü›Çç%ðçLãŸ7}ðÿüdîÿZ»~¬6æSlm¹ØdŒ¢É"±ÉdETi:€ÏM£ˆ6¢`5e¿¦QD›?Q°š²À_Ó(¢ÍÀŸ(XMYà¯iÑfàO¬¦,ð×4Šh3ð' +VSøkE´ø«) ü5"Ú ü‰‚Õ”þšFmþDÁjÊM£ˆ6¢`5e¿¦QD›?Q°š²À_Ó(¢ÍÀŸ(XMYà¯iÑfàO¬¦,ð×4Šh3ð' +VSøkE´ø«) ü5"Ú ü‰‚Õ”þšFmþDÁjÊM£ˆ6¢`5e¿¦QD›1æÚ”÷yÝ9í¬ˆùÉ–ÿiÄž¶ù?"eWþŸ¨o"æ~éðè( À”ÿ}î—!˜ò_)›G¡¼­¢üàÉ¿7½»ÿgø\ð×s`,…áÖp‹žú`+žãÿæ°wj–Éê-óäÚa ?ÒclÅ“ÿè°wj¦Éê-óäßù(ܲ†ú3ô˜[ñäïýPöŽByU¬æ2Sþ]ÿB¸¨aO?MæÁfLù{ý_Ís¿ôf¤\ù{æ‘:phaà°Ö^fËßóª.;‘ÈküÅíµ‰‹ ó`Z¦àeƒ?øö}ñü7fé€ñÏ ¸$ü%C˜ÁŸpI.øK†0+‚?3à’\ð— aVfÀ%¹à/¬þÌ€KrÁ_2„Yü™—ä‚¿d³"ø3.ÉÉfEðg\’ þ’!ÌŠàÏ ¸$ü%C˜ÁŸpI.øK†0+‚?3à’\ð— aVfÀ%¹à/¬þÌ€KrÁ_2„Yü™—ä‚¿d³"ø3.ÉÉfEðg\’ þ’!ÌŠàÏ ¸$ü%C˜ÁŸpI.øK†0+‚?3à’\ð— aVfÀ%¹à/¬þÌ€KrÁ_2„Yü™—ä‚¿d³"ø3.ÉÉfEðg\’ þ’!ÌŠàÏ ¸$ü%C˜ãåÿPàQ3™ÅÁ +³—‹MÆ(š,›LV4A•¦ñòÿ®@®®—"HðW˜b¯*^þƒþϪd¿Êkuñò÷6`¤Jø«\±V3ÿ‡î.SŠ¥-¶*cæï¿'?üºRø+m±U7¯÷¢CÙ x¥ºB- üÕ¾Xª¿çµûdõÈå€Akl¼‘ÿâ2À¿¸?†ßÆ:Öø;Ìp¸àoØPǺÇ€ü êXwàï0Ãá‚¿aCëüf8\ð7l¨cÝ¿cÀ ‡ þ† u¬;ðw ˜ápÁß°¡ŽuþŽ3.ø6Ô±îÀß1`†ÃŸÿG<¿ûµµÕWÿy®ÿ0L¸xwqóo}×û €îºPø«}±T3ÿV¿Ë_þë®”þJ[lUÆÌÿ¿›ðûþ¿NV‰•+Öêâåß3wíw>îQ©•+Öêâå?1>÷ÿ@…,ðW˜b¯*^þ÷ üý³ºÀ_aнªxù?*òªÐþ +SìUÅ˭ȘBø+L±Wþö¼u¡gðw’½Áßž·.ô þ.P²#øÛóÖ…žÁßJöb{ÞºÐ3ø»@É^ŒàoÏ[z(Ù‹üíyëBÏàï%{1‚¿=o]èü] d/Fð·ç­ =ƒ¿ ”ìÅþö¼u¡gðw’½Áßž·.ô þ.P²#øÛóÖ…žÁßJöb{ÞºÐ3ø»@É^ŒàoÏ[z(Ù‹üíyëBÏàï%{1‚¿=o]èü] d/Fð·ç­ =ƒ¿ ”ìÅþö¼u¡gðw’½Áßž·.ô þ.P²#øÛóÖ…žÁßJöb{ÞºÐ3ø»@É^ŒàoÏ[z(Ù‹üíyëBÏàï%{1ºÈÿGâ]¤§Ús‡~Ï#D/µ«ØÌý¿ocþžÝ˜i÷~µèå2»jÍð¿EŒùA»1Óî=ø@¦Œ­‹íª5ÃÿZ‘ÿŸìÆL»÷Õ¢—·ÚUk†ÿ§Ä˜ýþvƒ¦Ü{Ç#¢—cíŠ5ÿ³ÀÈÔFKVž¹'­Íð÷v‹Qïh«µq4 +9Pñœè䱎¡&F+ ñ_&FíÓhŒ:»J2r“eí†ø_#…]sªå¸‰vßc§dä\ËB ñïU+޽‹åÀIv_µQ²Ñ?Û²NCü½5ràO~Àrä»oó ì¢õoÒ¦ø_!Gîÿ_ËLÑž›B&Zß2ſի¡Ø÷_¯zšp™žði^9þÍ…5më7Åß“÷³Z^›|’íø©ôß}ÂCô}ÿ;Öåãßæ¯Šøýúmw_ÿ•+ñ*êÀ„)ßÿÃû*÷þÙÍþÞP•ÔµÄ/[Çïÿž'='º%±nÖMNñïú°™t æCöñ›ÿÞyÇLÊçÞWýe1à7ÊßûRwhõ+üfù{×Ôϼ«±à7Ìß»3€™¼½»ÒIþ^5ö $@õã¾ùì2øý¯¡ËA¯Ðϼ‹w†çñXÿoœ¿×msz-–ÿû“­coÚ€yþž÷éWZlãþ1>†Ã>Vù{m¯ÛÁ`‹¤ïïu6Æ&¹ªª×)Ïh´Èò+×où¯M#3žKü3ÁŸ|ÝÃûÈ3(ðÝ5ß<=æÁ­ØãŸÙJeÿK¿qûÂûWà•w@ºº{W®þÏŸ6âŒÖA,±-[å› +g64Fœ0–'8øÇŠücµ;uÿÔ!‰5 ðÕîÔmÌEþKÅ}– ©3Õ¡€ÆŠ^.MvÒñV uVŽÜfC:öŸ4ù{}û€‘¥§mÅzåZ sÿ)ʤ‹½R—¿7¼Þª‰v~°OØ÷ ­FT?2¼ÅDj´ù{Ó­’lç·…½_g5¢Ø~ß&Öèó÷~`Õ‘D;Y4%Sê"©7Þ¡í%UQÿŠ;Íš¢ÞŽ…vÆ>f3ºï‡6—~ûÿ4Ç6ƒê>@}è„ÖÇíñ¯çÎ^ÍØŠ-•1þ3ÝŒÜoÏ–${Þ²èkáìû\hc V”Çß;e³5_’ìXñ;Ì×,ų©_‚´Ã›.“¿WñUŠ. +3Ý +ÿ½ÒóÑŸÓü˜(Scnêöq÷K¿ +ã÷Úo7¯kÿœ®Š-%ZµRTùe`:OS=«@ìÈ¥Òfå9 ÓwÖðÒÔTœñ ß/мY|·`éì9›ŽŠk:[:zG‡Uö^aîëÎÑ?Ì>« ™I¾q—Èí§ú±tT=wñÒß®wúµæÞI'–> +stream +xíw`UöÇ'…$„^¤‰ Ò¤ÉO"èO EE#"ˆ‚ntQAYØ»*Š(.JQVEQ@~X£4QW E,€ ½†BB’¨WîÌ›™S¦þá½;sÏùžïçμ—y3÷jšþÅ×hÞñο½0uvÖÒì [s +‹ssNýÛ³aù¦¿÷¢¿õ"Ië½?öZK·x<-Þ,ÐãÂØþåMqÁ³Þ_ù±s'þðáõÃòE€y@Äwû&œ³ïÖÝ“Äl@°ÓuýÞYÞÑÙ7÷—G¸Ædû¯£ýw¾eKùà­ç8ÏZ­`m:GýÁÎqÁ{nùÖ§‹Z›uõåGå«lwO[ѬzÔ7~ÜÛÝCZOɱá©Á%DZùE_èyî®ö-½ImhðJ¸â³?ª>nPHteßèSÉ€96DnÁ •&–xëWß]ŒYÀcݶËÐCUæ?pjXå×x'ÔWï¼^“†å@ ã\³Ã;ÈÕ “+ÂС›4ÚÍ×ûÂyG¿[\ZÀû7ÈŽ6ÕK-î8@Xùéû½[©uª\´;R_W:ê±ÆUõíÖð~uWzŒ´ŽÜ7¤½ò¯Ü­ã§çš‹ž—«–Ç@†Ëéµ4 +Ÿe¹þ`wH~Õ’¿®ßùçFÁæi±ú®¼Ã2Êöw´hAwoø+Äjwö-èd¢–joå›o~aCqœL)gjt:f›Þ̇DL €»üôÅ?|ð.¨`¢þ€ïò˜—ï ÇýnUÍ€ÓYþ¨hÓüÔ²N~4q£ý[UË&y>@ÄUY毶Íôëø–¸ý…Z]Í®ǬW~ܵa~kÝ#gÕˆóÜ=Þv掆ªúƒÞ6Ò®Þë·å¼ ÃŽ® ÷0ÚW¼A&Œ½ý|Ù'z ü(7„ €În˜É-]Ë·eÂêø›6ØË5ÐÊ™Ø×WÓ{ + +ÿ@=êgñ¡ZÁ5‚}Ë—þ€˜ þoé;ì-EWa\"_þô†ùŠ Ü +â‘U|õ‘¶à‰ ›I ôxð¾_32q­ÇÑÊÄïß õÏëÑs*û{”õàJ¾¬cêó”ÕL&;âë‰ÊÈákLŽðó `p¬êeûáªþ)Û…oL†û—ÿÃ1‹—ŠTòëÃßÔðþî«ì쬬¬÷gÍš>qâÄ‘#G>ú×7\Öôì²^¦Ê—ô(Ø»>û³™cõl×È‹ó†Ä­Ñ+LÚ-;p`MÖÏ<Ô¹¡‡nºÞr‘Ò!¦²&fv9ß ?ÎYŒì`×£«f ïæîYå›Éïþvéšíwpé¸ÞMÝz*˜l¶ +ÙäÀ¡%cÝ8ªU%-93çÑ6)®ú{1ÀÓ|Z"‡·sÞ’'Ú¸çÏ™ë¬ùH‡çlêŠÓ@kóšeO\6¾ÜÉùËE“pk’h–Èý¨¯³Ó –=dI¯ìŒî@Ágý|¾¨/z=в…Ÿ÷­èЗÏ-‹•›}s’C Æ Šb$¦vý«ûxÈŽPéCä@Ñâ^ÌÏ™,%ªDÂÚt`ç°Œ':òÓMNtÝòÞhÉ6Ñ•!‘í;0¿-ÓXf_£ô¤tà‹ë8F@ 9ýSBÅ^v5ýÉAˆˆ;g¥Q™é›!,|ÑŒº¤# Y®ýÑ÷>úOÊë×ë—PÖ]Ow + 'ý˜Eöà¹ÌøÂ€žb×-4§ùëΆ'Â[$“ÏÜÎ#^²ÀØL±íËp]ÉãÇ¡ÈÇ?<”4³±×"¬.QÀpÉF¾Kð6.á’ÇÍ-P?F㨒(lBýYX¦{f‡•èh¼3@Âa,U‡ÍÜkÑ@36Ñ’Ïcm°@Í’ Ñ5qÀ׈š$£_¢L'÷~02CM5 +ãpª$ Æè@Q„БQ°¤Âu`ÂÏÁ2ã3.Öh“á'€‰¬‚%ªK’/A$ÁxX¾`7¯`Ɇë@7à'@*®‰ÆìÀjàd²0ë•tÈÜ;\‹,GÂ1;ðŒÿ½Ìr%²ùÕAà)d9ŽÛþ þ¯sË•|ÈÌñÿ Y„ãvà(hùUÜr%¶WBNÛ°ÕHl^ÿe°ÅHt ü3ÑÕH@n üeÝnZøù üâË‘ˆÌ@øËšḭ̈ÒAø?H GBò:áÿW^©’ÀÿûôHH^ üeò'^VÙ üo¥$1Y€ð—•XQ‘$ƒð¿”D‘åt¿ §PÉEâ„mE”ÓÿòœB%‰þñù$’$(£þÚF¡’ŠÄÿe$’$(£ þ2 +•T$€øO ‘$AñÆ(TR‘8â/?’0á +â/€q¢"ÉâßD’etÄ¿T£RIEሿ¶žB’ÄdtÆÿF¥’ŠÂYþ‚ gLy€“E.™œ‚ gLÿœR%0þÚI’Ñ ù€‘E* ÿç(4IL>€üe +(>T$™€üåp*|AüòI•Lùkó 4IH> üç“*™€ò¿š@“„äsÊ¿¬ÜÀ‹ ”¿¶œ@”„dsÌ›TIDà˜WQ’Í0ÿrÇÙ´J"|ÀüµEø¢$"›pþCÙ´J"|àü/Æ%Ù€óßÃ&V¡;ç¯MC%Ù@à/Ë€±ÑÂO„À?õ(¾,‰Èäm6“VIƒïÿžø²$"“ü+È%@&Zøi0øksñuIDPøË,‚,(üS(“äÖÿ.é:…Cªä p`k DÀ««”IHV¨—tÛÈ¡Urà;°¤"äÕ|e‘÷ ÔKú6(â+9Ð\ÂôJžBGð=ˆzIg¹ ”v’¢Š%A¯6aK“x ¬Aí<„A­¤ÀvàÑP„ ×Õò°µIŠ47Ä!”—­ðù]Ž"ètŸ|D ¯”e§íAú¿âŠô ªÇš6Ï›Ý)¨ÚðÎKx%:iªÇÚˆ G•–Œ¨ÌG¡Ž£šÜÒèî‹®å×B•VÚbú€ìŽ:ÿCùuˆ®Í@ů %Tþo+SØl¼TøÛtÎJ7Lþ÷YIk_ì?LäøW:ŽÈÿBÔ{°{áþrþWâ/Æã_õËŽ$á¯&†ÛŠÇª°'ñËñ¯ÆƒÆ¿¯:¾ÍÖãè·¦Ëç¿ÿ¦G•áí6NÃ>üåøW£@â_f:¼ÝÖVÂß®uÖú!ñŸb-k¬½ f%“ó¿Òtþ½•±í7ö@?üåü¯¦Â¿1òš®ÛJ 5.ôV þ¥¿G–õO|ürü«aðŸ¤m»5¯šð·mžÅŽüï°˜2æîSðËñ¯¶οá!udû­-…¿}ó,öóOYi1cÌÝ¿ À/Ç¿Úw0üÛêñI85 äïå€òOWF…4n¦y&Yø+¡ù×; Œ +iBrú—ã_ÍÆ¿Ô×ꨀÖÜ*Â`ŸÕ®0þ㬦‹½ÿdürü«­ñ¿™`e—Â_MЦÂÿ\‚5]á—ã_=~ü“þ« jí&üAþYí àÿ‚Õ\&öß” üMØ„·‹}þ]>ü‹Sá—ó¿zÌØæ_gŸ: ¨õheá2Ðrg»üK}i9•‰ÉðËñ¯¶ß.ÿçÔá`­EÊ•^pÆ„\ÿU²±ÉÿzŠÿâÏpP+£DþgÓ¬éÚUI§QøãñOø\ Ú¸‘ì¿“CHø+ñØ:ÿ?­ nˆs¤«£%;ü¯ÂYÙ%RÏÑJjr8­Â?ÒïßßÛà_}‡2¸q<h(Â_ È:ÿ„Ê@àÆ¢Æ:äpš…¿’uþÔqàŸàpÖ‹"ü•ˆ,ó'úð/.î¤G§]ø£ðÇZÖ-J̺xÎzQ„”å§,ÿñŸ*£ 4ЇÔ.ü•,òÿ‡2Bã¡òHœõÂ%%küÛb-ë¥åE=nXíÂ?ÊóS –øŸµU¡±°!g½8Â_‰É +ÿøyÊóô°¡µ %'+ü3•P¯Cã¬Hø+AYà Ú²nQJ~!þãïä þQ®Ÿj0Ï¿Êfe”ÆôŽZ¼vá¯$eš?â²nQBRÿñ'Ç”ç6˜æ?P/B;Ù2ä!§9þ• Ìò'üð/.¬‰ê¥ð‡ð¯ø«²7NãTÌCã +%,sÇÜ»ÊÎHB9Q½þJZæø÷WöEj\C±yÔ0þJ\¦ø§!.ë­â¾(V Â?Úù“-fø—ûYÙ©q +ÜQ1…¿’—þ³”=±GE¡"iþJ`&ø÷SvÄj÷ei‹½·šÚs’•]N{³M÷/µäÖA§uÈÿÅ:W_“–QzÃþG_øJ̦,ÎS±èüŸ§õãVVÒ:ÉJE[¤¢/JV{Ó™ôÿø·DuZæÖ³~ò"J‰«*¨¯M³¬Û™R2ÕiÙ[«ÿpFR_¬¨ªv<ñ Z7r«¨óò·V£¿»ÖJHôìÊ:†? ‰j¢ï$¼4Wý¯ ½þÜås½É¯+$.øB@ë¥L~“¸X·†-IÇ’Z»‰%/ÐIìLsõÙŽØM{዆èºM7¹ûŸRoÒMí̆^Áû1p¿>ƒ¾ö”ù^›(W÷µ5‚¯6¯Þ{~{¾®OµÉ¤›Û± e^÷V³E¼¤sÕç¤ÿq› bw¿‚kÃløVê/=víÂï·õznÃϱh‚³·~¨«¯”§‚Þ¨¨6à÷ÖD–+¢³u~t0ư©ûöÈ‘êÃ÷¿u1t’üËß–ö3áÔÆòcü>5PÞˆTCs“™æFÙ¡ÿÄPõÆfþžäã1 |ëŒÇ2Ó{ŒbU›ãºQOtÄåptžU±×Vc+~°Ê|W´Å§oŒ¶Î-›3b_v¹’­Î®`­‘:x'›\‰¶ô×»ÚêÁt.9ÅBÓºîuéþ„Kܱy\’hC†úZåc%]ˆ_µvópAI!ží˜ØßÐð«ï4y·Û·¿â®¼6â;gÑÞŠˆîuáÜkL{M~é÷L™îýú:šM¢ñþŒd/ÿ»ahAƯSÈgù;]ç‘JÆJ\³µâƒ«NköàÿË2ôîðQ| [‰”ùÝÙØjù$¾ï{±…EC_ Ñ¡ +ÚÜ¢2gwOé2븪 +·åÍém|¡WåèJ®‚²TÙ]ÝV9cá .wÀy +>½[ç¶~CI×ö ­Êø'(C‘Îm¬Ò{ŽÎDzèÌæ˺ơˆ(_¯w`§XÅ›Ú^±×Û´ÅB]ß3í¶²¦*Qít+4»Ùþ¨²{¤-ñŠg]úÄHÑòá—‚¬afù÷;lçÃÉMãzúÄ@°»oŸ•QjÑ[Ø¢t⇠+uCÿúÓÓ©»yýë}ÏŰ$‹GxÑbÝãœ;þ½ÊÙ†ò³Ç¥£ÍL:ÛSÉØúÄ èÐ4¤´¾R¶ûæ•¿¤™úUÏl­ëJQ¾2ºùجT—í—Ø´÷¸¥lÏ‹¯™:  þ t<7ÀÿúŽê2ð¡r›vËœ¼då¡S¼}ѤÁ7]û>žP]¦_ó\þyÈ´oîXáâOÌøûªœo¦ý³{Ër¤–°<yÈÒ/R¤õ’/}~›ô#g-Ýú‚˜“=gâ°Œ.i,sd³Üô6ŽÔuO¨ÕªkßOŽ{ýý…+yõ°0gÊïM;ì‘>]Òjò~Tn ýèú#xa¬Ð]HUR…ºõÓÒÒÚwèpczz¯ŒSÿz¦§wíÐ᪓­õÎqôäø=ÿPÍ”`˜pL†×S°ÄBu`&ýñÿ³é[Q+“`fxŠž¿;û4cNöéIοý§à¿Ó%^LÎÿy§K”ü”§æâ|ƒì²ÉqÖ€¯P90ž˜{£ä²ÍqºÑò_-ü9ŽØP@%Ú[Ü3 “ËFçȦ<ä”q¾@Q`èÀPJþ# SËF8p6áÀ‰º.(P$;@8ÀlãÌ²Õ NþÚÖ õ‰c’÷R}XnœX¶ºÃǨøë/7àŽÂEÅï”%º üÞ[Ù„¦]ˆþ¼Å®éÇëÍ `µþ¼íg{„â€ÜögsÏ„oñÀ4æ$ÀæùØ`¯Í iEHWû Çæ—}-Ò“ßä5¸`®üîÏ’ñÔ§W×ë-2 ‘(})肸þó7­õLišŸbã].ºÝO¾¥–¸ÿÃú +ðtP,óWIspÀhÙœj’>ē䫿W‡ Æ`²à÷*~MK~(zFð{ÿÉ•à3Aæõörñ¢ý¤7.msû +oB8¶Mm_ +þ”eʲØÈ JeÚšÛö`†|ôƒ|wOçæ6¦…ž_Ç=úE ÐĿŜµ0üRÁºrð=wW÷r™‡Â ½Û2fjwÙ@5g 3y_ø¡ïÏáQºï’˜«!ç½}µœùý‰ÿTUõûÖ`ä/|¸ªk—Ê~w VŸ×~R|øç¯œp‹£S >*·½oÌì¥ësöälY·dêÓ—¤ðe—Ldü?2¡þ +endstream +endobj +756 0 obj +<< /Filter /FlateDecode /Length1 1269 /Length2 1151 /Length3 0 /Length 1867 >> +stream +xÚ¥S TÙVTVʸΠ")Šc̹΄C1AB‚ðGĆ 1–L+ C°ÝÛD\Â^(WÈADÀ_È‘ˆб3.–IPXÀø¤Nðî˜rÍ€¯¡bà‹‹D€¼pÊG¹s*¤€#AáH~ªR„ùGÔóg0L%Å‚9¤þX”eŸÜp‰¦B‚3i4¥"¾2bA.f$ÖÁÉ"B¶ _ÉÙBðJùBÐH°±+ÆsÆ£¢ŒR`ðP."ŠQhÊR21`ÀCøó{Ò v@d×a)Ÿw_a¤nމdïÓ½9Q {¸:ngoþÈèwiNNxˆ§ZZÑ•ni `º• °±µ –ôå ¿H‚ÞƒÙo¥ó¢ÅoåÇÌÏ0ýeFÌÀ‡Å¼qå’mýU¯C!Ä%x¡ã¡LÿoF¿ýªÝ‹„ÿÓöÌÍ-Z$šócÁ•N6Á¡\ÀXÜ 7N*’-‚(‹ƒy~?D-âH>ªã¿Ð²y6GL B¦ÏQ©‡ð|Q‚+|ŽHŠÌÇ·aÇR7>7:nìÎX>¡vxvÐ1ĶRï·E-ïhuýuMŽÑtë?¯6,KÎsV±j—šßâè|Vv’zã§ õ²K¡åO·}€YTL _¿Ù»vEQÖyîæûUp^ºÍ,B/¨ú¡6kïÖÝ%/C|rýþ»îwÕš]_ÈT¥Å÷–øß`_²ÏÑ öD›°½«cëK¯Dvßô¿­{œËV3,Yÿ‚ klWõ4WŒ§ážº®¹‚?^‹4Ømxèœ|´m‹Ïë>iÛpêDËãÚ«¬|¶_:ÿiU飆‰Ê’šj¿.Cyeã£7½6Žx¦¼AYÅçÎL©%‰-\í×GeìGØŸÌθÿþYͤN­ú†ë‚Ñ&‡xƒì%Gº¾ ++ÌÈÒ=Î8¯ßVªóCÑ¡íãkGzW‹š%ùu:Ó‰}wº´©iË6 +nËawÙç»X/’C¶Õ©L”¬þËuvŒ}ÑÚmÃ*××p6”k´¤t.ÏáDl1I±‡«ÞüñääÙòS…ǯ k_T§—édDuŽ4Á¶]ã™æ<놕ì‹ÓwJ ~nð亊o6?¥Ð’vn­~CïŽÉŸ<3*>¼õ~ÎL÷?ðo”²ckw¦Ì*2äG'‘MçM, ˆÙˆq‰ê“ý¥Åƒ}ò¡ƒ@³ÞLáÖ˜)×ne†`1+E~hRͦ|PìÕïv÷Á«gºÊ³§ÊÒWŒ}¢ï¸Û·=¥æo—Í/\œ5qÝŸþlÝc=}*£6 3üûõ GF^‰az÷ ÒF[²¿e܈*½»ªîêF$¯.Ô¡Ò³¤ÿÞ÷“*û¦&R+ó¦#½YÅÌŒÉïZ~wòDÜeÓOÕ—î•?y”_H®ƒó67™¶ïH.‘­)¹d#9â¿åÈOM³Ceæé©æc‘ë›»gGSM-›A9;7µ9ã†ô´Ý{~€RœyË#,¹9«ÓùPÌõâ´f+ʸ¼ºGuÛkÉS+mEÛ¸c®,c…ÞLÝ1&:œä¸ïöé¾}õ>F¡wTêo”Ùå2ü:“Çýj‰”ÌaÑ‹f[‡ŠWOªìà7N7¹Mî#-yâØPMÝS.}FsÒ«?É@‘³'¡º«¶ñÑÓuÒ@égEö"ùªtõa-£á³[YUI5gT­O‹^¼`hfÇwc³¸A|ABç-V«bXõýág|èw +endstream +endobj +757 0 obj +<< /Filter /FlateDecode /Length1 2227 /Length2 13588 /Length3 0 /Length 14726 >> +stream +xÚvTœ]¶%îîNáî®ÁÝÝBp(¤p·àîÜBàîî¨rä6px,¦©¹–{Iѵ—#åVâ¸]+&¬d‚Û †RSUñ2ºRˆ2ÊÁ‡÷h&ð)¶<Åp8UŒ©õó3ã Z6äÌÏéƸåøAi¡ßö u@žÕB¦JPFsÑŠlÖÆ u*²ø­€í_¹=ðóã|pù ²DÝò]Óâ-lu”²?íøjõr¾Ñ#ïñØ Àn³ÌÃ/lö8ŠN  ¥¬¦Ë0¡yLDã3Ùë²çºÃ3]¼ç~£“0”¾05à•rf®8%úíÊ)CSˆíE:…ß–Ô÷ÛRkîD#úÓÖ8ß¹ÊoÓSÂÞ$å ¹›kÊG [«)X‚Û”Ÿ1^´úo`FúŠ4Iú9ÿò1Ì8öKw”/´v–LÕ“El Ù⦨2góÈL ® °Xy:tìl¶¾.—PÈŸ-‰®ÜQéå að½Ú'G WB÷]HUYfô¯¤pÙˆCJpÝ®Ö&ù'[)F2QéKÉøßDHÏPì©@¶Êb(¤FÓÍ"‡>á¡Lk‘ªü*t3ä4¦»óh.iÁ. Ù‡i瘗‚¨,²µÞ oK†öàþ!n`pÚ­ßðé×I ãl޼âÞI^ëÎF3ÿZ{׉µnK}hg–€l߈"é¦zŽ®ïyËëw·UŒÍ€sÈo};Žz¤GPj«d5p¤*6Õð?7 Ž_ø¦k[ÌôIu¼¿á߃ZCº~ÇÕ縿rït ~Ýà@f 0 …úÔÄ`“:§4ÃÈI¢¾2NæÐ` +äFÉ!È×Ü^§Nךã»*œz.LðJuª =òÉî*~,–VE‰…e&V\êgZSC^«#E\ΗÖUtÁ¸íš¢šüLŸV¡p¥—Ç¥L JÝ`>COHeýåNÞÁ–õÁÔi÷,_…EˆÑósˆÁáTÝLxöPñqŠÚɲÿshRÆ1$Oœp5º%7ÀÄÃÌl¬¼ê¹OÈÌÌÙ]5ÌÊÎ èê|¸Äbk‡ÀnpÇù‹ ñl|îp†ÎÏjÄ<Þd;‚$1 ¹tyFžábï†ßÑ)s.‘¾·lû<â>ð—Àà:z*ä fÁû4B+ˆ¡}aOoÿ(ÆÕbÖŸž@",,öƒêµnIIÈR$ø±c›5œž÷'¶é¡å`Vú8†Ð**×i&2©%Ò>Í Fœ?¿0êu¬É¨IÅ R‚8G ßÁ9U›`M¡²˜•¦Ä×*r²ô:ŒÞ¢TÜ[²Š}À.9Ó’±M;÷—-$ÐrÖBÔ[÷‰KYžEZkæÅ·¥ÈjØ4®Kl¡šè  åuû¨=ñpó™?5þ0Ì’ ß/-€j‰Wk7N¶û žRT€û겇%âÓy¸7‰D?ãh'+R›%[ˆùš­>øëÊÔ”±¤Ùè¯8&o´×EÛÁ~UdÅ‹a§ÚŸá_½:ôÀÄxmt6ï§ì‰IÛE¹ŸïWE‰ˆ&É·Y!f,®¹'.ŽZ1¼å ëcÙ†îïê‚Ü¥nÏ®6ã¥mÌT]Æ—Eßë-Æ,;"LÔ{X'äÖkS§Œ’| +ýéZ G–*+á¨9 +?¹-ÊY5§m®{»ò댉gŽ8Ü;2µË|¸†  Q¥Ù%O]øH+œIèwTd;LÓþ²5¡=ƒÏÖ`θÄêÛ¾‚¶zòÐå›+5RV‘Ðû¡œ;PŸ‚ÝšNÐàãšèÃÜlJQÊé]õõ¸&ríbýñi­•S»^Ø Ü Ê3<dÒѳÖf»ðc¸‡•H2ûûè„Ì õ ªÛö÷Í—àwK–ã±tÜÌ®²Ûè'ÇË;,0"ª•ÕÊ»W`èè‰%…|dÖGWÂ4ðµ«Ò¬d”Ö[ÆZÍ›÷J9Íæ$¤Ü )½Üî(?úKXÈMù|4I‹:£ÖÖ =u¼çèQö 2_•&[cç-ä±R{ù_ÖdEÏÄ4É7eÄñ þªà™U1m Ы_æ/s2u;:<ý`H ¹!iWGÒmô´+ÌK_ض5ú} ï»Û˜Z~¾r»tä‘Ï‘8÷ŽƒæŒ«Í»k²=ˆþFià.4Š}GÓÛ™¹Gûãø–”f³ô½EI‰i¿>~xî™êiÁ·Øúbù÷ÔéäÅ®Ñé$^ƒõóHb‹nXFžâA “ó:„Tô¼‚ä616sþ‘Í~d‡¾ÖñÜa:Q§˜uÖNˆ8UšIlå_Æ6õ²Ë>Q[âÆSˆTüªìOa’†Û3¤Ú(¾óQ³žA@à\ŸÛ‘¿˜•Jõ˜ôVºBØ.ΦÁ‡;–¿ü¹ãW¦ ½£aë¤=¥7/"ÐÈêôhNï…"3a2Ò¿F/“zmnÍv±$Nhn<Ì„öúD©³æ`÷ùê˜:\-7Š—Šé.¹)›QèI9ºW×ôäqO…ÖÍÒ¤S˜ï|Q&u–4¢wšgûé“£¹ +Äâ¼9$TÞ¤ í ÜôgÈ{^ƒIÇ~‹/„è[@˜%ìÖçC–¥›¾Ì¶sãëLZ‡€N!xÚ;ò`£®ìãò½â¤÷Ï$ØœMFQz™¹xµ÷g™ÏˆøgF®G¯:U½ûu!Fªyè‘`-è^vù®çÒitá.ð¦Ö8Ãz— +dd†Îgº«nRÓ²ñÜösÆtõtv?5¨ŽtÎÛÓ:%ê+ñ—U›ª&²­ñzªöº‡(é«åêZF)îÀÛõ—dZÏŽ˜§ü²×†ÓÛ)æµ–ŽÕY¯[ªëû1ýŒ>«é" Ãí¢8Q‚U™¼¼^ݺʀááiœýتÔ7ß)rRzùöP ¦d—'ۊݑʪµp‡¸navÒ-ÕÂi%ÑN¹<ÇÇ.Ao¨ž÷’W-ÏT ÕË$….á§Jø¹ù û:ì\a:l¶Œ³!„¬¶žòX„ÄÌø{^#"¸ÚúÏ#ã²ŸÜ ÄÓׄûÖ÷Aúî&òT¨| ûˆG¹È°E^ŽDÆGD’¢+j€‡0™Çm‡,Ýd£JÈ•‚Ÿ'çðÄð#´V†à²K{©Îh¹ºjÏÁƒfåU¶\ç¨:?´©ªÒ®8ÀP´yFèŸ#‚Ngà2¥3…Ã4Xœ‰é'fPù¬R(E¬.™Œè~1yÑáîyG‚e¾À¥VhëuS[_óDF«öð-1ªðŽ=+If÷“6Z •ÒªËüc±árÀVЧð¡óÒ8üô¼ +á_<ï}>_|’!ߊ!šÇ”g©ÆYV…ß5§-¦tJ¦B ÂÓ‘û”:Çyõ˜â¹/¹và¶=$!¼õáÙhL¬ý$-!ò´ýˆ|Î&¶ +@™ô²‚’%]Ñ<2³!‹É‰ÍН÷ý+Û¨C€·u†›mQ5ö³¨œÌÛ,mJ|dé›b¼ÝÎî%Ì 'Nzôg\4ôÜõÆ!øÎÔ¸æÔlaóÒ+òIλSü¦Óè{L÷Üù1çè`¦¿”b‚yq¿=ƒ²ƒøÄ®:öw^TÃP7ˆ(×%4ͪՅPÓuõGâx'h‰ `±úh›ÙÎ_á†o‡ŸŽœE{i Ìä§Î»rïÄÛÛð§9 šK?ŒO÷*=cé|v ?/ßS´¡l/è K‹Íý9sÉê_“æ!qÉ¢À~L0™ÅúMÈ›³wM™+5vêò$º\"xxÚɰDgû»ßGtG…\‘ Ù€AZñ¯[Ûò²ÓGФ‘Üäý®2]¾B9Ù6šß U«dËŽ.Gê +î §>ƾSvÕ3A#N1=‡ËU›cÖv–çÛÂy>.“)ðùì„évIzò!­ñP9è³nÅëä8x½%øf{Qݹ·çôH7BapÙÄyJ[Îó| Êœ…÷‡5›ÈÂê`Qwˆµ’“~¤vFšk]´ÀP—š­HìFÀ.T‰,oÚd˦×ñÅKøû aÕÓ}@ÍkïEì'îÐQes²¥k‘n'´)ÞØ$ +¨?¥Šm§ò4´X†Ñur9}ÛY –ŸƒòñÓB»`4³û†é2­6yžm9¾ü©Q6¡çŒçæÒ÷SŒȈ¼_¬˜M¯ wBŠÕ¢~”XŸ¨ÓÀu÷•¼2§ev‰ìÖ‚ê:;Hç…*…:îõÛ6Wèé"“G·~à@ü8³‰’s\A7º×MÒÞiÉm‘÷„Ì +BÀÁ3áÇ‘¸­î9X]4ÍɾÔ<¿»x.U *Þ ç“SdQ÷ŽÕ÷Ý2.áþåÒÐ0²4[ÄÄ›%ìs*owif…è  9¬Ïc‚4$ñ&j'`híȰÕ!Œ("Eïgwi,ÑÅØdW.“®üMzçó"¿°úþà¸ì]T3™Ï‚ +H2}üe oÍ·O†Ðkk‘¥_#üŒ­ñ‰¥­…‡J]·Á¤Pˆá5™;õ½wAú¼ ²í¹R6Ú¡\²o7ãhòGÁæ§`ãÜ…äN(k0ëg¬¾ŠÁ»téÍ5ttÖ/Ró=áœu¢ 2EZ"z6mzAï“w^¼²ð.ò¸½?Ë‘s›cêÎ%³¤uSk/&/Ákû³ÐáêÅï©Sˆ×eX‹êíÉe($a cÝŽ0©•€ ïñ'päÀRÙ².# ;‘ü;ó´ØA¢¦ Ü^Ͳ\ {¹¡§¼äKÊôî» +ŽÙ¡iˆ "7’+Eê80Õ¡“gËnâNÍŠ3Í+³R¨Ãw­Œ?$¦GŽ&t0ºn ¥æ9É_t¼^ëàÏæ\õI 3­ñ_p£ZÞWÎ#4@ú´qø"bE‘6)¬,UkU×¹›§2‘_Xâ›±®»Ïõ·ÙT9ö¾¼Âˆ¸ŠåG.†¦Ú¥ªÐ÷u3{œcžÞ뤑ӡr_LÂ$èýzŸHKÎJUü×»úá뀘߰> æµ³šé,wKù+ò§F 2þó™YÕ뤼‚¾ÇUqŽºò©â¼Ÿ) ofòQÓxã-Ñ‘éYŽ-Xð ÞŸ¶‹Éçuï”VX~Œ£UԳ²^’‡|’º"šE"Õ#úqቋfÔ'×xoâ.¾ü Q#8ùÖŸ\¶eK4ôˆÕ\ćýTœ±|øF¡(S©Ëà´#£cVÎ>•»ïóPø9§#/¶ÆËëbÝÌ+¹íŒd î%ÑaXZº‚þ¼Ü=CP?1íÕ%Æ€tû< ©Ný‚A«Ë$ûÚ„±ÒðÄóõ´ê>ôâ7OŠL ß_Ö„vU°òßSä&eÜ]6–;Í]ùPÁªÈn“©_NÐs˜ãœÓ[Õ̺<«i~¼㦊'Ñ¡‰èõjE¡ [_Œ©ŽWÔv,º-‰]%%°ç#&oÔ3;¦ýàÐ^OÅT>I‘ŒaW­Z—8Í!9cÌ„1åìÝX¾K \¯ßUçB®ÈãùäCc%”;N!$0i×{²’Q*™„õ^°0gµ7,–ë~tdig6àç@Lƒò“Í2_ì®#D[Ÿú+±SÔüÙ¥vö²1}8$×TXU}]¨ò´Îöa˯¬– óUîyTù¶ðy²‘ŠºL™¹´ñ— glW׺Œ­g9£v7¸RÑŽÎàMÂ6z=›<Ñ$¨DRõWé™ôÇ_@Cû1ØÒ7 +-¥¸ûOÚÚ(ï("X[ Âì]voÂxxÓ)úÁÒ£·/³‡êyªõ7W˜¶%ðú\±V{ÇÝâ~ì>{ë®§U +˜6xd±ÏÖP–)©±¹§­V–€Ÿ!E¿„àÑÙœ(×."á?ê_¢tûÔN59<~•MR˼¿ÖD¢¯†á¡X¥jÌÐË=K†·äV”·:VZ>#zPÑXîD'›®aà{S²¼âî¯@¯6C·æÐ¡ï{ôÂû¾øÀ“uÊíÇOp·6•K»R ¿_>sc–û^Ão| å]×®*êà@`‘ÆßoÓœ®Éí©r&-÷ÙÚn+¦´‡cA:ßÓ¨äzMMM,Çf‰[B:±CAãgäeaMþõ%ì,lžè{qõ-oœ Šžk‘>+'8ò&×Ï3™©¦úÔ¿¿Tb6ìÅ-’ à´£÷X™Ó +ÔÈ\NxHSÃ:Q&¡§@ªy1qßf—;7ì^p‡õÞ`õHÝîª%AŽ ãêd‡¶p_ò|i—Ü„lm¾Q¨Q8ûÅŸN­ç}"¾<>ž%é52¬^fs ‡º;vzÊÕŸ2(€´RTÀÒ›P÷F‰§€;î*`—'v6 LF…4oX¡åkì~Ö, až;'ç¡Ðî›s·½!tec³Å•xÝCÉ9ˆ„‚5¤[F¬ÌU*ÆÖ¼žê¶K Ülä“å7U²š]Öê^ì=s¯-–€7wÂ’[ìX»ÂËéì K$êsYD«ñþÝ>îÇGt™T0eУ£“t bŸßnAã/t.E ÿX:QŒ¨s@©$¶R¡çí¼Ñ"ëþÝfh7,#ú›w¼4íbTÈð{¼\ò‚ Íx5cÊýP +äêºþ»û¸ °Y¥|á2ìaÑàÆmYÒ4ÙPö-a’`d6™|ܨ/…ÁC15q:ü°¼K/F'ÛûÛ¨è3çA0}ÀêŠW-«„(ði}5Lß·³Y-Ñ{CŒºC%¬{4l÷í&òaNá¥L9ûP1QMI/ÕGçξ"‹.ó<+‘mz¥ùÔW]ûÀ80ÇÄ(µ´&ߘ‡ɤªí_uU'>H7è„çàF\…’NÈBf*€¢¾B}ãxovÖ·1ºxáèCC͸‹S}øH–ìàU±XϺ©H[™ÇðèX–,ï9¦°Æ­ygÑÁutoâb$”rž]¼N‡IGJˆ‘›%É—Sf7-söPš½"³$t­Ô©"Š»z}?è7{jêxV&f‚\#4lƒÌj¿`8£“Ç“Ú5šÁÀ?È{ +]õ‰ªé‘B2]HÌÈCÙfääøš¢·+þaœ 9hËsZû 5ñöú£v=}u@!ÉV =jÜ Ø×æ×Iëø’±ï“#çb7jyKß + D ÛZ?êVVè/ô¼Æ8#IÆ&Äú=-á+”TëfKt8ÛÒ&ÆãÍC»â/´»qÙú³Ò³KW*úh.ZUŔޔ.(q?Fûè°Ñçìt¡æŽ ¸{žvw‹£/ ‘G­‡‰[Q|÷SNì~ô‰dí O±)…žÄP +ÍLU™$/‘ˆ¡ÁE¢Á‹m‡¬o_½ò/TK9–zUîªð2yG³J´Zsj +þ)¦§¤B'Q£K¤õâj²49%I÷„TÊ2aÄu¬\®hØñí•é³,8\ô{t¨`ÍVU·‹6h¢ÇpeäÖSw#¸sb¥oeq¥è¡ÁDjÜî Lv÷•=Ò +̆ž>mŠÔ7…÷8Çæø3Ò†4ýðò¥UØQ¶¨ì¸±Ø1™´ Œ5ŠIÙŽŽJì•óÕ×3Ê'¢A“}‘.sç«V‘¢G‡×+Mc„ )sR‘?™]:K +¼0kÌ‚S|±®“‡3ö ¡yæ³l(NZ3ðöIå‰Õt–Já¿Ðî +Û9~»ÆÑü¹¹e¬ã…Ðö +ï olTª}‹CHè`‹´wnž}ˆú’÷u¹ $^UAËö’¿â1&&6ŒIdüÎÜæ‹‰ÆËlEà²,gÃüB CX#FÎ%Pd?á®ùcùOí¥YE†ÕÅúÜì-•„5²xð®( l¼ÀkÞ~±j¦çƒ{)Ž_d£ÓÄR€ ¤s5;¹†GT¹'Ü´E©r ·ÊUŽ—Àž5¡_Cz¼vQ†´î6áëݲ-’äWŽ-øõÐ*»¤•Ü×üƈм'lw‡oM ~·,n©|‡KÍZš ԈŠÖJUS{Gxòàwí½ZÐÃÉûi;©ÃÂá=J_t5 9c?OB¤‹P'ÛsN¢¬g›tÆëæšÂ~=Œ’\m¶:Û¢Á%AhreDúz†O™|Ó-ú"öõjèY9M³#)ã˜hm ¢¿Ãgv‡ ö®ž€6vEÓ +A,Jé‘ðhA¤è‹­ÔêþG„rÑy¥MK¹áx¬0¦ÉWÖj˜f+h{ªÅô «íÑì°=ä9†XJy† ¹[gÒ»Ô´à„@Œ¬Øèï -™Ó­Lw_ÇŒ§RpïÉ©@,óGp­V¯#Mp›©t¹“9¶óÕ“¨’ìýò[eäé¶¹jø‘Di‰Vx”TBhy*QÇûÇ"Yû³)’?(߉ˆ%„Œ§Æ²¡±@ÁÇ:f‡”Ö_È¥ÛmÛ¨•†,¬N’$ã-ò—²úyzÖaû8ð0Ü[ Éš;Øè"ØÀcY)™Ü Ü6-÷å™íŽ9XF“2",$ ’£3ƒˆ²%‰±^hν! +æé³ñ<•%\Ü­×.e6€w™Ñ6ð“ö?HU àTŠÀì«ØòÔEøšû‹y{yU”6Ä#çê¡ÊØ!>Ó)ØÍ¹ÑNðFaœÛ‚ẖD…U)Õ >ʼ<¿³"—~÷~7”hJ‰2Ñ;%GF°ï‰ŒR7ç«G`ÃØ¬R]|t6¿„¸pA&Ò>sëÀ"²EU–CK;¡÷8õåŽV‹Ô<éù¡C;Âv:É÷¶ð]Ä_Œ»úDJJš™€Q>N•ĬýÞŸ†} ªËrõ械ZóââŒÔÐ#¤x½‡(è%)²ù-ÉâÃ.âJ$ª}ÎÓ2¸jÜñÄ_ª½{<”….4¯JàÉ»1 è°ˆb9.Ñh(|ˆ8N$WS˜.‘·DtÄØ…zn1„›:Ir¾]å!K¾ÒàT–ÞÌ|E‰.r9Žryl*ÜtÍã“–'ìcT¾˜§8óßn]²”T‡?D“iC‘òß\üylß!2ÄÇþte¡d-sŠ®‹æž+Êå‹û’ªm:°ƒÜNçëƒû_«ˆ¶×ŸIhŽ‹àQ¨Ä ¶ÚÞÜ>ìJ{•;~%#¸eѦ®è‚.&@Šr™”Ûö’Iö«V‡rNñe›WùÃ:&ËE ÔŽŒ­© +ZBš€…ÿD”{|Xß¿ônó×afÐá>ZÓª!A¹UÛÆPc‹ž‹}”Mùgõ*¤ŽÍº§]ƒŽ½:¡òí’ ñ»+›$báhS„Ù€ëЮŠÐX·ö«ë£EF÷±&Y:¤\Æ\ÉÄIb±ÉÏÐÛ>/wgã­ãNõ ];¿€]Ô3RÙ$*Ó0Â:¯­­äѱOFÎSs¤¯Gî—N†+PWWÅGÃTóѰõ½¾e>}&Ž·¤ç®Ùx–i‰Þx ýùBQf4g[œëï0¥_TÜâå:»å‡´×Ú·`Æ2F¦¨σRi{²ÃóPøN±*üŠº}Þ§ˆòA¢Üq?ð•$0Ø"šílˆÎÏFÇÔoÛ 2°`gÄ +qFë;Éãu:ß§ +‘¨NÀñ~ìà+šþP¾†é-’H²íènçq;îç\¥u\aðJÜR¬©žWà°,­¬ÊyéÄ-f&ÙË$)‰…îñs]7Îü§èÍ h%›®pnä=×–Çç/rEÁ=à4DY¹Ö‚uL[¥ ûŸ%õâ’"¨²S &·ÆQ)£Êš7²*úÝã[±Ÿ7ëlku~`ÂÎ_sEÖÅžeÁ†Aæ\fæèÑôÀ7Ž·€+Îz<¸;w‘óÆ·i{„S?vëoädÉû^?vž#ÑªÛ äÁU~/ ð‘‹Õö¢“ŠmUTƇ'‹SÉêÝNîëEÎáT…x•wõ7¢5K„ð Õ`Ø“ÁÑ%bs$è.@òƒ…õ;âã­t–oÐ¥24p‰7‘…HË$^½dð.4so“©hc5qGÜHGàP†£¼£.(íºØY +÷ ¾jÌùE6}ϯwÉEã3G†ëÕgKuU ´¶Ô©›µ½éM³aÕ‚(^w£ó eÒÝs&-á‡<;ńނœ3cXœGô¦qðxáN+«NºTÒ±:0hܧ¼ó#àc±ÓÙ-sù韇¢Ø²æŸ“5œ3ãÄI¡ÁÁçૺ‚ZcˆÔñ&Þ‹pcµk­äMô ‚ew}t€‰>‰[/­^Å=¥ +Œ*jû)Ä*Q, ã +¯²e™öîêr™U¦ÿä»[ï™ÈZÏí±Î7tÕ›Fûe{µGw0+)e/$–Ú¥}(a?­á!ø‘£æ\°o'FØ„ú UrêGtèR6 ®;C7`®ã{GL‹9¸Œ± _vb©ª-¼›ÈShó©ý¢sWîøêf…µÄt“ï¾ï¡ÒüÎöõˆhøeMû6Ä©­ÍŠâW…Ø–âD¢»õ´UJÐÙÞ»fÜœ•/åHäÝéè2r}_ó*D¥kt˜]·—3‰ŸHv“Ä- +î +ÎR¤{M¡Ç^šÝœJ7ÑÁ—JDNrkê±Wfürêòâ›Ã¼Ã]mk¨}¦¸`òà + ½Ž? é±(w> ®Ïy.Ð,' +l£¤Ý žújYd +:‡™oaØZ-3£!Œôõ0° +IÕv¨NҀѥ›0#Õ'°™Jœ¸¶~¡ŠåD´µ,jì‘éš%jÀ® ,Ó:ì )†p\¬];<“D^•UWÔ²Aš®Š¶ªjH]-VŒ;o–,r®<œ“‚Ì]x!ä_.)Ž>iÏÙKåº/>Ñó…¬·›'×ô›Ì¬®Åf]'±ûùüÃkÄ¢sh£‘Ú4©ÕÉbåÉy3ª(À¿CGXm8kîUAÿcNžP3lB9Õ%žä6ù0ú9/ÂÃÅØÖ¬ìêKª˜ñ™ƒŠW‰×AF¸“öâÑÆ²ëIrVàÒ-÷÷*é§'ÂNN*Šï¤ƒÝŒ§!jï›ë,yµ ÇäËÇ"žÖc Ÿ½4Š&S>iŽ Ý(vNLgP \¼p(¾:Y¼Í>PâÒH·a.°tw rLÆœ¬|` ‘CW‘ICšëñ•&¼"òšAVE¿b3Iì9,RŽúyÌÛÚç¡2ù‘‰¥"®ó4¢·6™ ÌåTœW¢aJMñJÇØÅÒ¤ž:ªò"—ÂÔ{%?(`bp¦¾ßßÁ'Xd".ÛÔŒ¨êBÄ“kÖÖÎÅLúü"0F ›£íަ˜xnî5‘ÚÁø¡4]ûdò\eæ„)áÉ0Ê/JrÐ'5~sL©ôÕáž•‹Kd?f¶Åéƒ%p%@¢Äí ×ÒßÎïŒ 'Û«ªôu ÉáÔËh"úóûpc]ös–a^^ +ŒÚdž0×x ÑýöKEùí /_~F· +ñÊÓwgÃþ6qDŽFoDÝüM³mg'Ú¸KqÝöjø¼MzˆpæUŸ:ØÜI¼…&qõ1%ì¯Ü¨Ú¦N¹`Ëþ•¬º³Îµ\Õ0¢j¨x2ü:™ŸˆÖdÐ;*£]…8_)½j£xN.fŽ_b’éß×/ã–…œ×¦™W Ž Ò  `vü>šÚ½ñ®ªó+Âb‹§y˜™X™¬°ÛD¤Ï–é™Þ‹ò÷®À–PÁ`ë/|¥ ‚à0ËØ¥ç5‹uéèš>.+gjØ+Cö,˜ ˆ ”}ì«`{¦¡ÀUf€…ìÏ'Ý»Ø(pòë©î`¶­Ovî§‘ŸxÿALn¹T¥Û¸çÇîµ¾Œ°Ë(è}1,XÅ'xìÆÔ‹œB}Xk7äxµÁ²{ÇóáSß™È]ýwgÞ×íŒ÷7ÁÄ»ç3mMˆMߨáBý%lÉte×S4+2:ù·êhïïF!3vO€ˆ XS{êÂc?D jÝÆaåÕºÁ®6z¡ÝÔÕ/šhx ]§©à”rvàÏHtyø$zñF”¿¡ý`{”jO°¡Ø]çÇÞ[S>e "‚E[‰JJ,Ù¯¹–'²üXß×)¨ŠNyŸ£°"¯2ÁM,]Â#ì +H/ðéëë-4X!&8ðúGH¨·<žWŽH1¬0ßì8Ù)`|‹Ç¶DJéRv¸~œ§†Ù«Fz'·Jám½e^¦˜·¬Ó'4‚³¿¾>ŒQïøiçÒy¢BéѺWÔ Øù«ÛênüöÇ\³bñsÈ(S[‚95ialuçA,t@S- Í +Um)Ë^ëÇX5LùáÕ@M@<$3_ÉòX‚óX(í QE&Þ +ƨì <4*IWh°ëч^›'VòÄ!¯OwÏ>0²Éׅϲ_Ñ ³ñ§ælǪÞÿ8…dvCèôQ‰¼ÿ@ÍG.xr< ( «3<,±žþÂPÔÑ2ìŽÓœd„RMÖ?w!r/‹ªµÞ@ßé=Áܨâö*(࿉È2É9)Êã.ËiA÷ùC—CíÿªYß@å>µi¬õS§ÞÆ+’GÐŒ5ùàJ}}~îÍFõ¨4É0ïò()ƒ½yØ´òþ|Â8œVv®;-^ "üž=M‰MfñSSÔ·$LÕ ?6¢ò[ ±²×K$Ô 5åý6p‚<ÔkÎU\Gy–=Ze”|frh%rƒüéuã1MëÜÕÍÍ×±ZýéÅežòéVuÓ®üù)CmúByÿ {K^ +endstream +endobj +758 0 obj +/UGSFAT+NimbusSanL-Regu +endobj +759 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +760 0 obj +<< /Ascent 953 /CapHeight 953 /CharSet () /Descent -285 /Flags 4 /FontBBox [ -174 -285 1001 953 ] /FontFile 848 0 R /FontName /UGSFAT+NimbusSanL-Regu /ItalicAngle 0 /StemV 85 /Type /FontDescriptor >> +endobj +761 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +762 0 obj +/PXVYKT+CMSY10 +endobj +763 0 obj +<< /Differences [ 0 /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft 160 /space /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus 173 /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade ] /Type /Encoding >> +endobj +764 0 obj +<< /Ascent 775 /CapHeight 775 /CharSet () /Descent -960 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /FontFile 849 0 R /FontName /PXVYKT+CMSY10 /ItalicAngle -14 /StemV 40 /Type /FontDescriptor >> +endobj +765 0 obj +[ 777 277 777 500 777 500 777 777 777 777 777 777 777 1000 500 500 777 777 777 777 777 777 777 777 777 777 777 777 1000 1000 777 777 1000 1000 500 500 1000 1000 1000 777 1000 1000 611 611 1000 1000 1000 777 274 1000 666 666 888 888 0 0 555 555 666 500 722 722 777 777 611 798 656 526 771 527 718 594 844 544 677 761 689 1200 820 796 695 816 847 605 544 625 612 987 713 668 724 666 666 666 666 666 611 611 444 444 444 444 500 500 388 388 277 500 500 611 500 277 833 750 833 416 666 666 777 777 444 444 444 611 777 777 777 777 ] +endobj +766 0 obj +/YHUNPG+CMR10 +endobj +767 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +768 0 obj +<< /Ascent 750 /CapHeight 750 /CharSet () /Descent -250 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /FontFile 850 0 R /FontName /YHUNPG+CMR10 /ItalicAngle 0 /StemV 69 /Type /FontDescriptor >> +endobj +769 0 obj +[ 625 833 777 694 666 750 722 777 722 777 722 583 555 555 833 833 277 305 500 500 500 500 500 750 444 500 722 777 500 902 1013 777 277 277 500 833 500 833 777 277 388 388 500 777 277 333 277 500 500 500 500 500 500 500 500 500 500 500 277 277 277 777 472 472 777 750 708 722 763 680 652 784 750 361 513 777 625 916 750 777 680 777 736 555 722 750 750 1027 750 750 611 277 500 277 500 277 277 500 555 444 555 444 305 500 555 277 305 527 277 833 555 500 555 527 391 394 388 555 527 722 527 527 444 500 1000 500 500 500 ] +endobj +770 0 obj +/NZOHYK+CMSY7 +endobj +771 0 obj +<< /Differences [ 0 /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft 160 /space /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus 173 /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade ] /Type /Encoding >> +endobj +772 0 obj +<< /Ascent 782 /CapHeight 782 /CharSet () /Descent -951 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /FontFile 851 0 R /FontName /NZOHYK+CMSY7 /ItalicAngle -14 /StemV 49 /Type /FontDescriptor >> +endobj +773 0 obj +[ 892 339 892 585 892 585 892 892 892 892 892 892 892 1138 585 585 892 892 892 892 892 892 892 892 892 892 892 892 1138 1138 892 892 1138 1138 585 585 1138 1138 1138 892 1138 1138 708 708 1138 1138 1138 892 329 1138 769 769 1015 1015 0 0 646 646 769 585 831 831 892 892 708 917 753 620 889 616 818 688 978 646 782 871 791 1342 935 905 809 935 981 702 647 717 719 1135 818 764 823 769 769 769 769 769 708 708 523 523 523 523 585 585 462 462 339 585 585 708 585 339 938 859 954 493 769 769 892 892 523 523 523 708 892 892 892 892 ] +endobj +774 0 obj +/ASBNUF+CMR7 +endobj +775 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +776 0 obj +<< /Ascent 750 /CapHeight 750 /CharSet () /Descent -250 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /FontFile 852 0 R /FontName /ASBNUF+CMR7 /ItalicAngle 0 /StemV 79 /Type /FontDescriptor >> +endobj +777 0 obj +[ 706 938 876 781 753 843 815 876 815 876 815 677 646 646 970 970 323 354 569 569 569 569 569 843 507 569 815 876 569 1013 1136 876 323 323 569 938 569 938 876 323 446 446 569 876 323 384 323 569 569 569 569 569 569 569 569 569 569 569 323 323 323 876 538 538 876 843 798 815 860 767 737 883 843 412 583 874 706 1027 843 876 767 876 829 630 815 843 843 1150 843 843 692 323 569 323 569 323 323 569 630 507 630 507 354 569 630 323 354 600 323 938 630 569 630 600 446 452 446 630 600 815 600 600 507 569 1138 569 569 569 ] +endobj +778 0 obj +/SACKHC+CMBX12 +endobj +779 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +780 0 obj +<< /Ascent 750 /CapHeight 750 /CharSet () /Descent -251 /Flags 4 /FontBBox [ -53 -251 1139 750 ] /FontFile 853 0 R /FontName /SACKHC+CMBX12 /ItalicAngle 0 /StemV 109 /Type /FontDescriptor >> +endobj +781 0 obj +[ 675 937 875 787 750 879 812 875 812 875 812 656 625 625 937 937 312 343 562 562 562 562 562 849 500 574 812 875 562 1018 1143 875 312 342 581 937 562 937 875 312 437 437 562 875 312 375 312 562 562 562 562 562 562 562 562 562 562 562 312 312 342 875 531 531 875 849 799 812 862 738 707 884 879 418 581 880 675 1067 879 844 768 844 839 625 782 864 849 1162 849 849 687 312 581 312 562 312 312 546 625 500 625 513 343 562 625 312 343 593 312 937 625 562 625 593 459 443 437 625 593 812 593 593 500 562 1125 562 562 562 ] +endobj +782 0 obj +<< /Differences [ 0 /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft 160 /space /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus 173 /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade ] /Type /Encoding >> +endobj +783 0 obj +[ 777 277 777 500 777 500 777 777 777 777 777 777 777 1000 500 500 777 777 777 777 777 777 777 777 777 777 777 777 1000 1000 777 777 1000 1000 500 500 1000 1000 1000 777 1000 1000 611 611 1000 1000 1000 777 274 1000 666 666 888 888 0 0 555 555 666 500 722 722 777 777 611 798 656 526 771 527 718 594 844 544 677 761 689 1200 820 796 695 816 847 605 544 625 612 987 713 668 724 666 666 666 666 666 611 611 444 444 444 444 500 500 388 388 277 500 500 611 500 277 833 750 833 416 666 666 777 777 444 444 444 611 777 777 777 777 ] +endobj +784 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +785 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +786 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +787 0 obj +[ 675 937 875 787 750 879 812 875 812 875 812 656 625 625 937 937 312 343 562 562 562 562 562 849 500 574 812 875 562 1018 1143 875 312 342 581 937 562 937 875 312 437 437 562 875 312 375 312 562 562 562 562 562 562 562 562 562 562 562 312 312 342 875 531 531 875 849 799 812 862 738 707 884 879 418 581 880 675 1067 879 844 768 844 839 625 782 864 849 1162 849 849 687 312 581 312 562 312 312 546 625 500 625 513 343 562 625 312 343 593 312 937 625 562 625 593 459 443 437 625 593 812 593 593 500 562 1125 562 562 562 ] +endobj +788 0 obj +<< /Differences [ 0 /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft 160 /space /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus 173 /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade ] /Type /Encoding >> +endobj +789 0 obj +[ 777 277 777 500 777 500 777 777 777 777 777 777 777 1000 500 500 777 777 777 777 777 777 777 777 777 777 777 777 1000 1000 777 777 1000 1000 500 500 1000 1000 1000 777 1000 1000 611 611 1000 1000 1000 777 274 1000 666 666 888 888 0 0 555 555 666 500 722 722 777 777 611 798 656 526 771 527 718 594 844 544 677 761 689 1200 820 796 695 816 847 605 544 625 612 987 713 668 724 666 666 666 666 666 611 611 444 444 444 444 500 500 388 388 277 500 500 611 500 277 833 750 833 416 666 666 777 777 444 444 444 611 777 777 777 777 ] +endobj +790 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +791 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +792 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +793 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +794 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +795 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +796 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +797 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +798 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +799 0 obj +[ 625 833 777 694 666 750 722 777 722 777 722 583 555 555 833 833 277 305 500 500 500 500 500 750 444 500 722 777 500 902 1013 777 277 277 500 833 500 833 777 277 388 388 500 777 277 333 277 500 500 500 500 500 500 500 500 500 500 500 277 277 277 777 472 472 777 750 708 722 763 680 652 784 750 361 513 777 625 916 750 777 680 777 736 555 722 750 750 1027 750 750 611 277 500 277 500 277 277 500 555 444 555 444 305 500 555 277 305 527 277 833 555 500 555 527 391 394 388 555 527 722 527 527 444 500 1000 500 500 500 ] +endobj +800 0 obj +/LYTCQL+CMSY9 +endobj +801 0 obj +<< /Differences [ 0 /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft 160 /space /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus 173 /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade ] /Type /Encoding >> +endobj +802 0 obj +<< /Ascent 777 /CapHeight 777 /CharSet () /Descent -958 /Flags 4 /FontBBox [ -29 -958 1146 777 ] /FontFile 854 0 R /FontName /LYTCQL+CMSY9 /ItalicAngle -14 /StemV 43 /Type /FontDescriptor >> +endobj +803 0 obj +[ 799 285 799 513 799 513 799 799 799 799 799 799 799 1027 513 513 799 799 799 799 799 799 799 799 799 799 799 799 1027 1027 799 799 1027 1027 513 513 1027 1027 1027 799 1027 1027 628 628 1027 1027 1027 799 279 1027 685 685 913 913 0 0 570 570 685 513 742 742 799 799 628 821 673 542 793 542 736 610 871 562 696 782 707 1229 842 816 716 839 873 622 563 642 632 1017 732 684 742 685 685 685 685 685 628 628 456 456 456 456 513 513 399 399 285 513 513 628 513 285 856 770 856 428 685 685 799 799 456 456 456 628 799 799 799 799 ] +endobj +804 0 obj +/WQSQWU+CMBX9 +endobj +805 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +806 0 obj +<< /Ascent 750 /CapHeight 750 /CharSet () /Descent -250 /Flags 4 /FontBBox [ -58 -250 1195 750 ] /FontFile 855 0 R /FontName /WQSQWU+CMBX9 /ItalicAngle 0 /StemV 117 /Type /FontDescriptor >> +endobj +807 0 obj +[ 710 986 920 827 788 924 854 920 854 920 854 690 657 657 986 986 328 361 591 591 591 591 591 892 525 616 854 920 591 1070 1202 920 328 360 617 986 591 986 920 328 460 460 591 920 328 394 328 591 591 591 591 591 591 591 591 591 591 591 328 328 360 920 558 558 920 892 840 854 906 776 743 929 924 446 610 925 710 1121 924 888 808 888 886 657 823 908 892 1221 892 892 723 328 617 328 591 328 328 575 657 525 657 542 361 591 657 328 361 624 328 986 657 591 657 624 488 466 460 657 624 854 624 624 525 591 1183 591 591 591 ] +endobj +808 0 obj +/SUXZQL+CMBX6 +endobj +809 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +810 0 obj +<< /Ascent 753 /CapHeight 753 /CharSet () /Descent -250 /Flags 4 /FontBBox [ -49 -250 1367 753 ] /FontFile 856 0 R /FontName /SUXZQL+CMBX6 /ItalicAngle 0 /StemV 130 /Type /FontDescriptor >> +endobj +811 0 obj +[ 824 1143 1068 953 918 1064 993 1068 993 1068 993 824 787 787 1180 1180 393 431 693 693 693 693 693 1028 618 707 993 1068 693 1236 1386 1068 393 429 710 1143 693 1143 1068 393 543 543 693 1068 393 468 393 693 693 693 693 693 693 693 693 693 693 693 393 393 429 1068 656 656 1068 1028 973 993 1048 899 862 1077 1064 506 711 1066 824 1289 1064 1032 936 1032 1019 768 957 1046 1028 1403 1028 1028 843 395 710 395 693 393 393 674 768 618 768 634 431 693 768 393 431 731 393 1143 768 693 768 731 571 551 543 768 731 993 731 731 618 693 1387 693 693 693 ] +endobj +812 0 obj +/EEICHW+CMR12 +endobj +813 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +814 0 obj +<< /Ascent 750 /CapHeight 750 /CharSet () /Descent -251 /Flags 4 /FontBBox [ -34 -251 988 750 ] /FontFile 857 0 R /FontName /EEICHW+CMR12 /ItalicAngle 0 /StemV 65 /Type /FontDescriptor >> +endobj +815 0 obj +[ 611 815 761 679 652 734 707 761 707 761 707 571 543 543 815 815 271 299 489 489 489 489 489 734 435 489 707 761 489 883 992 761 271 271 489 815 489 815 761 271 380 380 489 761 271 326 271 489 489 489 489 489 489 489 489 489 489 489 271 271 271 761 462 462 761 734 693 707 747 666 638 768 734 353 503 761 611 897 734 761 666 761 720 543 707 734 734 1006 734 734 598 271 489 271 489 271 271 489 543 435 543 435 299 489 543 271 299 516 271 815 543 489 543 516 380 386 380 543 516 707 516 516 435 489 979 489 489 489 ] +endobj +816 0 obj +/HNIPYH+CMR8 +endobj +817 0 obj +<< /Differences [ 0 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress 160 /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /sfthyphen /nbspace /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis ] /Type /Encoding >> +endobj +818 0 obj +<< /Ascent 750 /CapHeight 750 /CharSet () /Descent -250 /Flags 4 /FontBBox [ -36 -250 1070 750 ] /FontFile 858 0 R /FontName /HNIPYH+CMR8 /ItalicAngle 0 /StemV 76 /Type /FontDescriptor >> +endobj +819 0 obj +[ 663 885 826 736 708 795 767 826 767 826 767 619 590 590 885 885 295 324 531 531 531 531 531 795 472 531 767 826 531 958 1076 826 295 295 531 885 531 885 826 295 413 413 531 826 295 354 295 531 531 531 531 531 531 531 531 531 531 531 295 295 295 826 501 501 826 795 752 767 811 722 693 833 795 382 545 825 663 972 795 826 722 826 781 590 767 795 795 1090 795 795 649 295 531 295 531 295 295 531 590 472 590 472 324 531 590 295 324 560 295 885 590 531 590 560 414 419 413 590 560 767 560 560 472 531 1062 531 531 531 ] +endobj +820 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +821 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +822 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +823 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +824 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +825 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +826 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +827 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +828 0 obj +<< /Differences [ 0 /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef /Zcaron /zcaron /caron /dotlessi /dotlessj /ff /ffi /ffl /notequal /infinity /lessequal /greaterequal /partialdiff /summation /product /pi /grave /quotesingle /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /Euro /integral /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /Omega /radical /approxequal /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /Delta /lozenge /Ydieresis /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] /Type /Encoding >> +endobj +829 0 obj +[ 0 332 500 500 166 332 555 221 332 332 0 332 583 0 610 500 332 277 0 0 0 0 0 0 0 0 0 0 0 0 332 190 277 277 354 555 555 888 666 221 332 332 388 583 277 332 277 277 555 555 555 555 555 555 555 555 555 555 277 277 583 583 583 555 1014 666 666 721 721 666 610 777 721 277 500 666 555 832 721 777 666 777 721 666 610 721 666 943 666 666 610 277 277 277 468 555 221 555 555 500 555 555 277 555 555 221 221 500 221 832 555 555 555 555 332 500 277 555 500 721 500 500 500 333 259 333 583 0 0 0 221 555 332 1000 555 555 332 1000 666 332 1000 0 0 0 0 0 0 332 332 350 555 1000 332 1000 500 332 943 0 0 666 0 332 555 555 555 555 259 555 332 737 369 555 583 332 737 332 399 583 332 332 332 555 536 277 332 332 364 555 833 833 833 610 666 666 666 666 666 666 1000 721 666 666 666 666 277 277 277 277 721 721 777 777 777 777 777 583 777 721 721 721 721 666 666 610 555 555 555 555 555 555 888 500 555 555 555 555 277 277 277 277 555 555 555 555 555 555 555 583 610 555 555 555 555 500 555 500 ] +endobj +830 0 obj +<< /Filter /FlateDecode /Length1 895 /Length2 53767 /Length3 0 /Length 54253 >> +stream +xÚŒ·st&_·5ÛN:xbÛ¶m;Ol«cÛ¶mul'tlÛé˜÷÷¾ïwÎwϹÿÜQcÌQ s­½çªU›œXI•^ØÌÁ(á`ïJÏÌÀij²±r°µ²w³S0303pÁq̬L]&@ +{8Æ¥*ÛŒJ +*Úr´ÿƒa4ÿOŠ´½¹àÿ0ÍÜÿ‹ítv±r°Pý»45Àhlæ`oëõ¢‚ƒ«•)@õOI7Ï–btvµ²L¼J–V¶VŽŽ)€’ƒ­-œ¢#Ðð¯N7{3 3@ èlçp0˜ÿvð°²·H8UsWcgà?åLö.@8I%9€•$Ðèll Pr3±µ2ý¯°5ÀÃÊÕòŸ*ÿ(ô4:ºþk½ÆöfE‰Ñþoßÿf0À‰þ³W Ù¨ÿ +J88[ÿɶtuuäadüW5ó¹\Ìì®zÔpªÿT°01±Òý ÙþìÿFŽ#ç¿‘ëßÈý/dfú72Óý,ÿ[9 7[ÛOåÿh÷_¨ý2í¬l½þÿåj­,,]T"6ÿ;få"aå 4S²r5ýG-c[àüÒ®ÆÿÈ)loa 0ýÇ¥þ¯ýÓ¨äàbõo9é¹¹þWHÍÒÊÔÆèâ`û øâÿ³£¸½©ƒÙ¿æªêúÏ8ŒÍþÛñï°’±•½«š—ã·ý×þm3ÿ_[ÞØÕÙÊ ËÄÀÄÄüOâ?×Ýéÿ¯vª®Î6@M+³Fúÿª("âà ð¡gfâbгpp8˜9™\ܬ?ÿ'ßÔÍÙhïúïàŸ½ü—mnõ.@ 'ÐnmÙÁ”7Ä:#;Óµ;tZL«ƒRœÕc¤{Ü:ÂéÌŠF+ØÄ`™’Dî¯%}¼HÞn)…»÷›¬ïfg¦Ø‰lB(1uý¾)g¥; †5OP©îÕÒé¨"‘¨ÝÃòKèzäéZƒÉˆ¾)¬‰óY¹ë7d?Ÿ¥‘\ßÝ]øÝN{9@(!]6Y«¬ûjx›ÿ²I+o¬Ô¯Ä6”mHPÝË¥Z r +–3ä]xIñdtH‰ð†LøºÐr<ãÊžáF‚À™ÿƒùÐ}k){UÿàƤ^¥Àψ£Ã ò% -_ÝO…°TÞÈç '”z"_I +¥£à—m*çqÐl{?LÁâjí÷Ò $AÌâ‘"ýU'·‹-b‰†yÑ,—?hpOwµ_z#6qwDÊ{3>¥ÒSÀtp°³§"^ö´Â1¬ëýÝOŸ²¿¿®¸4飜:aŒr‹—2‰:Ê™N6ÛAAÿA¾Æ Ý…Ì7 +Ëã1õ½ŸâÑu[ú¾EL3îh«‰N¥ýÀŸ4±_tbþê—~~䪟 +¾º;¹Ô~ñ†O—껪Q-?cP hí› ë×~ùç*nþ²>Ô¯uuËgÎûp¡_D[ˆÀoŠ“Ôп9ÈA4fÔ‚l”µüFi¦ j>ÞóõÒá”ÇØØ.w1isc·h’°—!÷h¶;1ÈÔvŠ¿â ÚëLE¬_?µ ±Û¹êt¡1•ZÉe²ûýƒH 4l8¯ØQKdo׊®!þ¾P6ÞŸß;iQCޝXÿÖwFdLõ OµK°“±[9ð×&¼úßoØ‹Î[EÂdxÈþÛµ˜LèË]Ö(_Y ¢¹YξÌÏ=Þ§¢IÚÉ“¸Lßp¢˜êöC öÓéÚ‚«írâ ô+“s(ïó¶ìA[Ô²iKˆƒyÄ—>¸-¾Zy‡3íéÁ–“¤ÉâïÜS¥ ˆÓ€ûê n3pƒÅëŸxí‰ÁÕrÿ±®+|5Gןhø +ëãDlë­Y_—ö§5¸=‹.xÝ*!¦i Pe[Ú¹EEߘ2¬sè>WíÏй“rh”Åõ$O¤Xìuòxör ÚÙ_'¿ œú>J Œ=†¤ ¦ÃÅYf˜ ø*eb³q¹–͘•4Nøè}”:ãs÷™–ualýGPü&N—»'×hœð_e—¶_º½À;§•Õøä\쵨L¿9!ûZJާwŠŽR„7êfßxÓiq®¦”«¹ +Æ(}úÊÆz‰B°ìg!`»Ñëà]#‚ÚØíú¬†°K›Ìаxv¦³á“Äà×Õ¨YOBá“‚ÇL(gcÐM” +”0;1Ö§bXŸ›i÷QM=Ìzoú磙°±®õÑ'ØçpªQR_A¦‚¸? S×å8²ÁÌ’_½ß|:Óôy4uV†kJcTnœ3©Í6*º×^¹1Yvq#¦ôã¹m@AÖ@¦ø3ä÷M=pú°éÁ²¾#ź(Hæ#®£2 „Ÿ™ïE‚>oÈ"½~™Žï°à}q.†k>Ñ£àÙêpðŸ±îî%JÓ =i¬?ƒ Û¹w·_{l,Mñqø1’„ݰÄT[?3µžö1óqÜ»Ñ\}!1ÅÏ’DÈö&©;¹åÜØÅ ™cg&.[4Ó7Îþ$*Œ+§¾µ•Â$gw4ææuá'? wš”TšwaŸ(Ýæ:—ÆNj+ *Zÿ(MD·4ä¡iéû™Öò-ô@ 7m¤[¢Ê‰zæÄOñÆ‚{ŸðãköDëÌM)Æ·û"õ)¦…Ê’Ä[|ÀˆË+Ȉ0z/¨ªØâ»â ·Vd2>žž¨fçÅkh>˜ŒTH”Òñð( Åḃñ!¦0;K1aV‹°ôÖ‚~hÇÊ—vyfÁWÑbÆô•åÛw¯J +ÍF"]dFöíÅ(´‰T™µ¹ÙÅD®k]ËXìg|R«¸‰r¢ë Z%Ü“¾®µ·¤¾!߃e¤e Ó:¼j44€’0Q§°H-Û°ÌQ²?Ã÷pùÑýÙì†À~Ô+-~þÍ­ÔBtÏkv¿ÈMípK™æ©Q7ɺЃԡ“-”ùDß;ÿàÙÜTZØÊ'¶¾uûÞaÖ¢O÷îD'‘m1õÓ7›ñjÆŽ0Jåàí†À0õ#fËÛ¶ËÙ†±îWô·wÁáÞ…æY®Ñ†%­Ï€er}ïZ&»×ßȆ, /ŸÈ·äú©âùR‰õË®4],Ñ cÁ¼ -×/ãD.!™8’käM?±Eñ`‰/j·R0Ðÿ7È|ϵ0 c¿¿R7—SÁÉçË݇Â>”*{߾˺B©U!j¢<ȵ/‰€î¼ÅëkF•ÊWQ¡…Pwš¹{h'DHaEé/Û`óÍÙÓ™•ŸA®\ +µe¬?n6SÒ§±Ú$lV^q }„ôûQYµeù‡‡J (ÄÉJÔÎnÒ0´ü„`,²ìXEä…!lU7ä2a  *̩ƛFïGD1U)gíæS9AÓ–Ï÷樂=2bŸÉêñª[~SÇ}$(·È.†·ÿžB0ÂÏ´F^Z3Bæ¯J¦ªŠ`(„OÌ”{ìg^8PB˜Ï ¿ëàÂåBè®)ûòG^½$¼›3•üÝíÚŸ%ëöí„“þnÚ¶åË5u:Sï®!¶u•¥«š‡VeÞ1ш{i.:h‘¶`¡õ© £+Ú]¤´BŠ+µšéV`¿Miz‹Ä Øïæ_ëÃË/­‡Yõ5¯åNKdÁïǽã Þ…ŸŠî’ñØì©`•†ˆ–|¯U£]m`#’ݦlPR賸¶î¥Lkne^$R?-™yHéæ_¹í$Q¥KÁ‡z¼Î×qÚx¨dÂá܃\ÁÜV&âûŸ%?5€á@áAÈÖ€ÑùÌEÓõd—åë*êÅQ"Ãî„·ž +®ŠÞ/µ“8ÎÜT?ª8“dzØ*k?Fk½·¤ŒˆŠ¢O袧^ã¢Ì??Ãì[¡j9øD*¨ !w™Cñûeu}“T<ùÖ¢-°÷gG]Û~®v~aãÊxá‚›Å,GDI=ºÓ†ž¬år*àóéòØšƒ`u‚oË^*bÐ+¸bLšcÔbX"LV/ûEí0ÍÂ¥>Uÿ½ ³Ö£ª]š*öÍîóæÐ·=»‘ { v®è®”geˆæ‚ý»ó[ä‘¶s2?vQ‡*‘þ7ÿ8ùÄ’™¯-Ä‘+ =nÏ€*x®ŽÝà v‹VC½]¬æo1‚΃%ÔœŸ>>fßR@ð-¸¦‡³ÑKɘnœt,õÂm&ã­ណK£¹ô"yV°>q‰ä©ä$æDTù Ó55Í/Ø0Ïé}ƒ? ­ú‘ý b½ríãÍx6ë—?l(‡…1•lÕȤBD J„&]Ml´2«ðSáX‡ jÑÎf›û›h9»»_U´äÌöXK™ÜiB!ïã£H³LƒîñÀW$Ù¼£`¾—Éæ- !L |x#‚õm’Ï"ð ëøêïôÖº©‡ +>lhC-ÂÑ`Ë$’ÍÌz~¢¶,ê#i<Î]¢4“]§7Ë£\«˜aŒš{!BíW¿|ïìŸÓœN²Û8ò/=ÍGÑT P¬Feö ¨e¸®¦rßx N„ø>oiŽ…» ¡[}‘«Ì‘Úñn_Z#Ç‘›dIÂ/úé&åGé˜êÖÍgÕÍ웉ӗsþmÿ©ÕÔÕ36Ž.0ßÝÂõPâÏ‘ÌuЛ6[ßQ‹?C‚|W™ÜÊ«q³Ñ‰óRžX”ÀàŽnK³.a…AÛ£ OiëÄPj‡°‘˜OMOP@…º z½-V•s›äty¸ 7eçÞÃPK°—ç]sû·®Ì“Ô¨ëè!.1ÚfE]žêrMÌDAë6ѾšOº.ë è¹Î¢ön½)LfÑ<ãTÏÏÏDºX1!u13ÀEê{'ÙRjâbaˆ¡»41›0PL´þ… š‹åLéœhͽçîªÇ+ص¬·UÇÒŽéLdd$¬<ôhOÆí1át8é) óóË} „üPO %n²'ʺÜÌLÓ½öx»4Z-D–‡Ì1J°ØŽžïô ­×ªÏáV}ž”R¨/ö­_ùÑ)GpEuí_EÉ£)O~âJÀo„éÆ-òdý1?Ky4œ‘}X }"O0ô*ؘR +9¶O¬³´‰¸½ ïÛ6ˆ-‰~v8>ðX}·9P+Ç_®zmwÜH9ÁC/;,7L ‡£A=C±A:Ap}aŒá›ÊÚ³¨7ÚqråØÅÏZ¨ Øšêƒ]B>6ÎC‚j9Ž,͈Jdç¶Íe´>yȰ\˜«=EŸQª!ØÏöÚ~½E§Hžõ]‚èfŒ7!º5»;!ØꔎF«¬Ò ;¾Û®øx'IjãïóÞøÁ4)*èªMµˆónø!tdIUÎUÉLnÝŠ÷0QÊÜòQUþoÒeÒ&âk¶Sv\Õð÷æ7O>@Ìnò¸G1…$V‚"ÅàóÁ”˜^&hy,l‹¯÷›÷9LãM˜xk~‡p£|ñ4èlE’(…HÃ_~5Î;_“=#ðÙ[–«‰)~ú2‡íÉ9¤§/6aÙ‚Ö‘û&̈*„(ø=¼ÙMGþ»šPⳓÚ`¹ÎËÌ(öÉéÎ}ýÀ§5ö+X6ŒQ§,âÇ2ÓI]vÍH‘ɵÚÁžðm7®$ i]±iÚ;šg_*‡Ì*Ê9Û"M¢¡c%yhÈ]Š^UÞÒʨW*YeË⵿•º×Ö'‘èÙ!R×¢ |¯ÖÏ™R¥—xO˜ß$âïð¹$Ã9fúíµµÁŸk7öû™ß† Aóµ„6c!Èe!FÅ]¦Á¯'jt]‹}üv]HfŽøôa+K¿&¢)(;V1ÞuúÊ6ò”ê–ÄÝZáaK¦ç1KTææ‚Þ=R·n1¦ ÜFÏN0/ú.8(µÁ"ÅCT¯‡+D2ì$·°[…Æ›_KÔ"ç±Z¡ŽGÀ)šø ìØ C¤IwÛ±™iÈÙ®êFèv#MÕã=cÊ +s{?y\Õ u¶ÌÙDõ’ðV J¤•:£^QsjsîÏÔüÛK£Ó„ðâÝšÒ×±Uázæf]¹õ_èNã¿qŸcz ²¾Ùö­È”_´»~¡›ãíˆÑpdz£F8þà(>ŒC~%e<»ŠòƒÇl€|#}9[TµöŒ¼R–³u‹æHÉG-Ú¼‹µ(Ü€©Lf}¼ÇU}¿rd\Aˆ™gp> …\+Eͬ„îp¥ÕC†{ÃëŒ;­šÙ‚|êUhÿS-5(ð½¬~¯£Ñ%ÜóÂÁÖîZ>‡ˆHú ·ÁKÄ7ÑeI·ùG£ ¾èCwŒ˜Jɲ:Ù°ç5ÆY³Ç$xŽY]_¡öØûçY’^@šo=(DÙtöð] ñ;1~´ÝúŸ?‚:Ãç^Cf¥#sø»)§ÇeŽ¥­i»Ý-1œÚ2nZ©ŒçŒÖ… ºŸÛXm˜.uú·V?£«ç3wæ"¤üŧ·ÈèklŒ.V–àÍðžôý.·K0–s “Ï[Vý°“$ô‡MB ·&¢þmwu¹‰;ýÍ&ð ¥^IC@cűðŸ'·éSÞ÷Z†Oþ‹ÔV¼£ˆzßw«=êÖ¸g² WÔ¤~]k×Ò¿'È)u—br +æ–LìIÈã=| ñ2}"2¸ËyWEY«Âå +Îbœo*8LgU‚´»VÇv‰ìxu“0j¼IP¡“vÿ¬c±C…œ¬XÙ?‹B¼ ÐH ŠÚnjż<ðý‘*¶ª¨¡º÷jzô¤ñºG{ô×ýq«lˆ½Söü1·”j´GLõ5èPA9%µ“ªk¾ÝlÆù‡$£Ÿêºï|&†IÌzpHHͨÁIÒ†‰¾Œ~߬z-ì±Mtiæ{™RÁµ1ê¯}ƒå¶Qó%Ëp˜fdØÙÆIRP²2’oùïÛ:œš^‚-ø… +ŠÃ8—°‹Fvö?ÀŽW>i€l«F@Níß©—^t˜Ÿá!06KØO.KãÔœëÕ×/MTÉS]òJϮضævtãò„wÐÙæ¾ak¿L¸ƒòŠv¶¤f¸yïAóû{ÔQë +•ª˜có3<ýÕIk^Ö‘m·å4ùæfLåHqyl©?W6â{;[~šÆ^µ:*H=—}ù#'ã:ÕÝôš.#)Vô#Ôo ÏI.ç/ä™ý6 k‹ê¡µŽ¤&ú?Ë¿Pæ–…ûŠW&¤1Úm Ê©W?ti:HC¬ÆY†˜áyã¸u¼I±6 +7‘O;J隬tÿHE@õ#bÕŸG:çŸØ +«xg«¼\‘ +ŽG§ñ7ÒôË=Æ­*6SÂN«[ðÙd“Ê%V£vTB¾uÅÿ]bO¥„q^€9ðd,xêÐèI¹Ö1“MNû+¤äUyþ2¹Ý_ë»FÚ ,Zï°í fvgá',¢ì${!g~ÜÅßù†é”3I™pÙ¿ €@Ü{QV¨‘J0_³vV³\¼h'âQöU_)Uj¶7ˆ]¬nŠÙâó¨)`èCbú;„÷"@¨ÐÔ*‹vECÝ’DïÅ1ŠÙ£æJý6g«ÛAý­wï{‡°Ã°a…ÑpÚ M×~ž°J4÷¿ ;ÎTø^£ù/6ÐÚ™ Ÿ´No‡8X¤Aþâ«çšâÐP¬°ˆ\3øÕþâtÌNYž’vß(Óòn¬üÆgâóÚüÝ.!óíÈ‘V©Ñ¡¹GÈÆ[VôŠ´\€/øõ×Œà™‰8ø°@ŧ"¿qAѾÅîÈ>Ì Íܹæk´5Y ýÀÉ—ùZNZÆÂþÅtÜ-Уïsý»­ŽVÙ@MBÈï\ièÉ…uïùÕІxQÛ¸ÕhUhçŠ-0°£Bä;¾„ +šU©há&sò—©áøú› QôHÕ¯Qµ÷k­•ãۥ̻!k5r™Ë_ÿå½”P:G„hÚ‹¬Ó«U «Æ»öÙ8Ž3Ñ™0}Ö+’M: Óÿ¾ñ"ÿ"tÓ£P;Ô…:˜1+…è¾xÐôtrMyT.Fj)[yøÜ‹÷_Dywe!z­"íã¬û®–óªQìåÀKË‘øÄ¾Ù£°Ê¡/'›<¯´[ É„È&b;Ç_ØÒªàulƒ[9üõn€Ð$ØS£¿÷b†ÙBNi×Ðïå's—5ðùw”Ú BJä3>Ýã*=J8vØÙÎÑÐ…Ï¡ëÒ^wìT€>Ò^¡où|œ/ä‹ /“O&72­FÄ~ÑÖËŠžáHìúæ_Z£W ¹³î÷i¬… ‘“ƒz‹¯|ëqå8p4½v.Ê%xÄoˆËÉ·—䃣3ļšf6²+R«íY.­¬ ±ß/£4/=|.%¹ÜjºÉ™ý©¦/BÆêÁXë«æ÷e¢Ã'ûX÷ÿpÛ?øÜëšQ¥ ÷”Ï#w ¸¨Ç NŠüÖOÍÚ$»½ŒPÖ˜âˆâŸn9ÔÝR·eÄC ªðáP£,*1˜®õ±6m¿í‰vÖž*«ÀN­áS{ í +bê¡ûsS‘Š«›;ZiFyT *,þƒQG©Í + +ƒ3‹‹%›öãV®µ#ê$žYÿ‡Ž7«2ŸÈ­²y’_ ƒ X…: ]6ç0írÅrñx»½Ÿ}É9ïì'kqº!É…v…ê…Öù¢©ÓÑ= +G5þ1ÿ ³Ñôûý†Â¬„¥yF÷:ƒ;œÌ¾˜6/¤£åQnÞœ:‡ÖÑ­Kà÷©)w+qˆ¸ÇÜÝKj̹Õ^nU,õ1eGeP- øÆ98CJÃ× †ôˆ…*¥ì ~—ðUðÔg°eÉ£[dûùÞÑ57”cc«æÂõÅŸ›Æ@¢»×XÝgJÕ/hÞÿFîµ»Ømþ|kK EƒQÃïmÞûÔ¬>k’×WÁ#áL ’2ËZ’Û7p»yñîóõ¾º…òQ“+\fûKb4j™E{• +cHæéר÷÷ðø(«½”zÇ2‚µõQ¤?:ú¿LdÒ^Tî­Êì“fSãÛàW¶ŒûN'–mçÖ¢—l*¨£nNT}SÁi䣰ÍiZ a¡ÃÆjDÇIbt#S'ñH¸.ÅœöPlól_VÜ%L“#F…¢6Ù Ó½´§¸üò°I53•ŠIÄAóç›Vl²‰àŸ-*C²lÒ°`•‡»ö"d…•ØMŸv/¸±¨Œn=I:FªÃè…Ý‚}‰=Nk‚ŒÏÛßE=K{•›ËkÐÛ}Ÿqùp*óŒƒÔ ã²|»µH¸Ç_Ü=n ©ŸÊ4GWV‰¿”½µÛþÂyU8ÕÛÃòV™²<ÏP°ÙÀ~XKW%ÊK³{ÄOtå‘_yŠåægé)Ï ÄÕd„3â—·Fb¸`Íb_®-T=!¼¡–ÚªðCŇz˜IˆVuIe?Ø_•»øµž É«jf2ÚÅDç´Ž€ubID:ȵۻäHJoÍþ- ‹TÐÒŠìW"@fÜÕ¶v[ÂȼaBÒÛ™Œ€¶–—ðîƒ,+)^Ïäë¤Ôô©".±ºÌF±#Aš7Æ`†Âæ=Ê!¨¨­*†ÍŽÚæÛŽ(î^´E¨•‰“UÎZ_M‰•þc>öîùŒÔ <¢|åöÆ7ô•üµrídJ1õÕ.Yg¹åcå+GÂy-zÍRE²Ý_¯á +Iá‹•vÛ|„ÄVe£”øäÌHáÊ®uÓîtm¶/þZW~EŸ,B¢˜GŠ¡ž§ãí;ÎóCBEºÄÕêˆíÏÞf^’ s „ªjiì]ö)ÌÏ»Öxᜓ<3,æGsˆÐFª? °pÊArvnùõþXL¢’°²£+ò§ÏÖH-Ê‹‘ï›=Sðdà@2ÚžÐs«ækPÚÙÃf]Ÿ†ýù“…­êœ%>Jäóhfd {B º†pB»œø>§î+¢ôªòO®RÁ¶S]ÁSÍ-ê•À'† Ç3r!7»ë©Vàñ“Ýjäî¢AÑÚOšp‚…/(T:ï¨é“«@•¶ŽäFÿf½\}, +ÑÑœÀ>3C§$@wñúšÉ`îEt$Eæyä š87-K»mZý&®—ƒéû±öm®ó,Ks®.GÐI—ED>Ò° A_¿SóÿÊðÄÝ0ò4žòÖ8M/ð‘TkýêN=Qop45-áéé{{ÔÁ Û"— Nàd‡òÀÒ|XùÝ X?e*¨Ë}.®e¶ÁP>ˆ„nÅ®F®qŸŠø¹¦FƒÙaÂã¹?6¹í¬!W.±QÇŸ›Þ~µ'âe0¥]?Ý¿/ZÌ;X{¤r‚H’щՄÞÏýÕá¶qÙ6¥8ÿK. ¹›e±8SNê䨵žÑfÜ¡¢]“¾JLÏ>3“Dö}EÑ|3¨ktˆ +f×ñÃÚ!€ÍõMClûÇ¡g¥ã5X‘1øgJÚÜ „+ÚàORãˆK¤2Õï_Ž…­=Ë3È+>VÖKA“Â)tÇ•ùåSuîG‡­ßŸ|«áD”fœûÁ_c)³›°¯Ð.Òæ°*Xœš,R®ázºŸ,ohš¹"+—˜Éè·I ŒiZªx¼¥B"‡F»Ìô|Úä´XÆj8²2½â­3 8ò{‰šz‡¬ òûZxBUÄՖײ¥‘² ÐG)Ç…Ò¿cZy¥ºÅ㦨W릈NÇz^f{`ðß³wãiJ詚**XX±LCc]Ì ¿RÍÁ\ ÆÂŒnÏ¿äû%¹}Ýöm+5·–4gYßp¬R3`£yJEW㊤…ëšjBvx˜ 5ÓY®lá-ªhºÛÙê_„Ó㸖g\@´|è!pv +r9•àX¶ÿ¢Öeì]Ô.h6ÃÏJßu™zt_EÔ¸ÿÐ'ºj²`ž—eKŽ/i½¦ëï‘RSöœÑ³™Š ~FIÈ‹6lµ7_ªûYT(žË×¾Êmù÷/ïÄ¥À‡zn +MϦVž(üTÇŸ *ÏË¿„z~I;ìhõ_„Õ¸)?qÚL1@[¸ñWùlú?¢woÁüU2ùí*lbÿ@€™úëÉ“ö £Ì@´3Ž©ÍtHÝœ˜Â—®ÀkÊQ»ÿqpî}TÍ$P)á;MÝ÷3h¦O¾†‡ŠŽϤ«NôèFu”œ÷ouº]4ñC[»¦ ¡Cù +V%oÌdì"ˆÅS0Áêj‹£ ØžF.Ûˆ:óÍõl¼d¸’ë}‰gJ “èæBpm¤á Ê~Ðvj½úçjc¨¨ð‹qÊýFí.¹°»OQŠ-ïL*ÃÕgqóçð{zÑÀl#ÁÛÒ{¬äáÔƒÜj¤dµ®•Û)ƒÐ&­Î3ä'íË‘á[½ p¡ZŸÞçRqŒàÎâßleIÆô·/yÁ„H)ÝJ b“#ß…ÊZ=øÝ¤FQIrl•LŸì!¯ ñWÓ5BR9oÜž–êíβF¼ÑA‹š ?“V«Õbë°NìHž‡¨áººñ5œ#»LmrÞ|ÞäßãÔ)즸 ð½eà“£]IZÏÍë| 8õ:%î·^ƒ¯(ß–¤²úd°©/‡X¿ Ói-°ƒ®EƒäL™ËãI|t©r,?Óa‡^øÖØ:„9rGEˆêÝ–€öÝ6k«\$.áªE\l÷ Šïü±“¸w¶&‘ÝxAGS¬ÔŸæRÖ–Ut`KÉ}q r¿<Ñú!W8/_°'©Î’¶Ð°ÿw‡5Sl ‚(#Êîí%³"™8r€á^Q’gËàIýž…„ÅåpêþIpŽŒ  >xŠã6C!…SVÉ;ƒè*ìd¦¿ëÙ5ÆØ-O—Y“=™O”R¼Y;D’(>y›ã+è¢}‰¨.7?&VKòÔ¡aÅiX-༜¦+ä :¥²éçÅMáS€Ï8Ñ'z¦lg`Ñ®7ú2ÏzcOè‰æ§Îæ¡\õˆYF‹°`7ع˜¯HŸˆŽŠzõýRÆjî6J¡"yŠ•ô;²ås‘H‘'J‰Qf~lʼn͋~€*7ä~dŒWLŒ¼V•¥èÇõe?’LÒ_ñ‹‹¨]ÆeEdfH|t…MlßòmX<‘ö.þ¦Eüƒ¶„i‡¶-ÿöŸÚà苵²L\¼I¾½;KZ(ÅJq†üMÝ™[í`†4ÕYÀ@.Æ8¼‘6 ‹#gFS´ð•â\ò|—Xñ¾>Âñ³©Á‹†™1\»07_óÇÚÖvyý$ Ë—€´&ÄöÝ®U¨ò„½=+矄²f\³*$ïbüì)Ê0nY×Åï`¥öƶ 'Ûdšëã)”å9Éož<“Þ€ÊÓm"jä‹üPЮY3V™­Ç'Äa£ÉóÈT}!ü¤™øÂúR¢âCžÅ­ìr±ëߺ›%Gvþƒ޳+\÷)PnšiØpï¬Ç\¡•.ÊibD™Ð6†n‘ úq²›Ÿs‹/€ýBÕ‰1åôÙLRóƒ—£´H} +F¾™¬PÑèÁ'ùÃv1ís\Ç–Á1̦4eþRóàÙNUƱ€Ró`Í|Â~´?R ÝoÝ&x¯#ºW=^‡_ƒ þX^8$( +Pà[ä‡'"{Ðe¾áúÈx´¾Z,±,‘ðQk?K·0ÛëŠ×©!2+Œ2¶8@ù ¹!Á)ïø¸e> ÁXZÒéñgˆÉè|Ž˜ Ô žaÅõ:µ‰WþWn]Žº\“¼¹ÓVX‰x€ ©¤Î½Û‘Óൟƒõ~I`ß*ó…9êñȬôt@šØUnp= 3žqðm³ÿâ•I¯üøÆíÅý>.ŒÕ߯¨,íº 28WŒ(Ѝà¸Wベ5Ý5àñé•]åOZý¼Êð]œ³‘KßâsúñVd57•øŽ¢((eéZÜ\Ø Ý0Bšƒrç ?Óí}æ7\.JNc»Ng¬¸ ¶ãÀ…žRÔú§xêËîNOŽ:az2£Ž4³-à‹®ÎrJY(8¸ðo Ù»3PžÂÝ >RÒ•kz~3Ñå‡þ1{že²ïBá¬hWÝûDBkþšòSá;ÑÐ)(Õ–ïLêïŽá%¦êÓñ!þ@Àu’¸ûÙdÆoØÖécR‚ŸƒOõèÑß/Dße¨›’S+Ijì‚»u + a?½|z{ò £,aÝÌ*ÄIoÖÿZ]7là6èpø’ƒ¼wD éS±klëôW9÷Žðf?»¸àù +jñ\'iÖ@¬z'} +ú­˜®p'6ÿ‰JC"áLƒ]’q/zÉÖóg‡W{4 Ï C™»€trégµ©åµ$ÛLµ¹¸‘]¤;ˆ££þ£š¯ß8‘b†–RŠ45ê âÈÃÞAý¥x86Ø9Œ7×ø·žK;–J*çÍèaÖlÑ¥"‡0ÏÏ(nšóàöÍi\T È\–Ÿi× Edzw}Çz„¦ƒ¼9¤íÂj“ýõú +NÇ{°ðúUE/Ûp\pRþ‘î\ÕD]”›ݬ®è$Ì;bj{=ÁCâRâýMpZíß’Ô÷ÈbÆÚR"3ΧØ3 <ÀÅÄ+g<í•þþi «oáßÄ +K5pôyžS$HáB.§Ù&¿Ï°2¢)¬Ýk è˰ó&¹¨ÆN•x\±ƒtäxØÂŽ Tš‘L]åð@PW«¥N£&ö0ƒÑY,×u[ó¦J‰aÂÛß®$Ÿ»ä4·ííÕ´ºæ¢Ø5ù¨}c·{T¹¶µâ|ÚùT":Žl7H)§a‹Ï8ü1ÃX37Ö€—UÄxž_ïQýéŸUä>£ªÑÜÉMÙ¡eáƒÂæQ¶0¦ ®®ó÷(¢Y’h ÷Ú¢úºðÈGÓõ%ÞHå\=Kt¯dÄ +¥LÈCPw5À›´Ò¹’Þ¼pL¸ŒR-´QÆñ¦où ï†kßmÄ*eÇŸµ,jÖêû·„PÓX¨š¾Òþ^—þá)Ûô8fùp%¢#°ò5•Õ#Ão?)Qt‚æ…œÒ O†+ä…ý>’CvöÎí´FröÖŠ¨"¶oû³4Ý´88nqñæØsÕA¼Ô·UU/‰l§Ý1`t|]4ÝÊØ¹ÚzZ84Nƒ`öÝ„TüÅ*![”ñkKàùüŠ™“íÆN5€Ñ²ÇÏnÙNlóÛe˜Ù½i|®gtëˆåëÝÍ\&à·üF«ôïë½þ°ûþ¬MP|Z±7òÈUÉ0¦k]&¤Ü¨ŒÕÍbñÄÁãøJî7>¥ß†R­ø³{•,÷­šôw1×Û«KŒ'h x«\õô! êG?Ù>?·a0<çÇ8éŽn^h´8›{W·†å¶¤-ÑrìÉk8ôþç© Ìí +Y¬õ^W¿ä»eñý$e¸ßÈ2]å­,îÆÉ¿9½wødî!ˆîVYuᨤ w(4Õ¾´ºRÙyã’ÕuŽ0Î.MQsø*:½î+»N¸22MR:wŠ=LÊɹÏèÎBi¸ÅÿÕAÈv"õiÄëy«bû6‘eaäABUØÍ\ƒ~ÙÍǪ‡¹Ä +|ªõŒöY¸¾gíY9-»k9ç!¶LXjƒ”¶]wÚj…EUcÑL{3{ÏŽ2É> ÌUs #ÚÂΕäE¼>›Ž–l)´>ç„+1jn;îÜ»wöÞa¹>ô5ª›[E¥yyh0Ó Û~ØFÊúA§ˆbਜÆm¨{oî° +Öõ¥Ÿ¶'_i˜j‡wŒ™Å“».?Žã†'îÊ£êóë–W¥Óf­Žº;ï{—[.;ØÈ€] qŒaC=0£xÍGiû0þÝ“ÐBp{ßÇ)›MS}ðË ¼Þ_WÙ›µ’ƒAµÂsÒyŽ”æeA™ô™¥•£œMô%ô¶•‘°Â)%+‰Ï7¥ ó }ñ¿™¬´;gšÔ¥£%ïÜê ZXµlpðŠVá6æ2î LjÔÔ²>ŽÒ‡î©Ô ) :øÁW±4ÚÊ÷Êz @¾Ý¦ð¬°Î—ºØþˆðõ»Œ¢)˜† Là!¡…äH`P(wÚŽ”êÁæ {U•áè°ŠÞÿ’¶á©«’¢ŠâÂÙ)t6€kU E$¡»;ÿ ¢qÌ¡2ÈÕÛÀ\þûË2–¸¿ iݺdwJqXÞã°qÞµ¦M^¿Ô9Ï ǘC£xºtøàðÜN±L ÷™õO}uØé¥Ÿ sÛƒ$Fï /ó¥áµÇIå.ŒˆúD·íwCëf×1ÑíO«}¢/iå[Y‚``Û¸Çæšïžÿû¬£`}›K9zTŒÊ_¨Ûž@ÆÇJ(S4³bS ô5°2˸diÇBø’[%pt ª¸Z iT˜Á¥?lsµUZÓÙŠ1¤lr¶4ùÊ!ò¢:Ã8‚cfñ[Í›>Œ°,¿vVÇIºò€\²Üòîî ƒÐHÅ`ƒ—áø4PNF}¤Ô•ÏW<|ö­ãÑX&©:—uÃBÉRÐŽx„ïº%ŵxÍm?­!ø†àÉšAŽU–õϿ漰øL;Êàâr¯üƒ§ºŸ¸~åcYÙ_E” €0½)ik73޳ˆÆ-ºêƒ¯ÂÈ:!+V‹ÜHZÃäˆvgäÏ8Aøf¡6zsk§ï- ORVœIÉI¼ä±_ » õõN|m™¡gO;»Ó\|žn€ÔZ£ÏÙÁ6T³.ŠÔà$¦ÎTKUZµ:âYù¨àû%<Ï1ƒ*‚®R¼œÌŸ +.‹ÍÍö“h×µ:p/ÐÒ%1ž9Õ*ä«4!]ÈÜì?DÑ,âócÂV— «~ë)B,.‰åLì=:=HO>“¦:цVXœïñÁÎ$q?§jn’œCÉõÿÚVÖ;Љ>îküˆ$V²×^Ÿ4Wð3¾<ÀA× vcå…6‘ÉÅßQ“h˜M/ËóÀX™‘榭æÙêçjàO²u‰ + \¼ÖÇÂj2Hd€ýåuö?Ï %lužR’+Þ{Ósw¶gê&ΡºÈ+4ˆõýßR¶Ü%]§B]?h?ÒQ*f“ÑѺIJ-´v 9€Y‰ßEŠÛ-õ+S·qÍvåJ0´h`ˆä’϶1Ü7lEž5öPó÷¦€B®vãćËô:·T¾ó½«…’º¹Õ†&“øzš:Z1ÀB ¸p§—À˜ŸŽ +ud=å;»d€ÉÅò‚©å*îcW›YTp‰POÚª£¾†ó!Á<”ɱw7D¨í¦“Гìe W9¾~jp ó BÈo‰,~¿$³É‘ I {“È~{u$Yñ‰‘°¤ƒ“ȧ*®ÁùÅOMu–úP$˜õvûb%q¿0ë^37ÙYBå"daÔt‘‡*¼o3Þ +L›ÃÁ½Š›µÒ­)“À–Ô°³Ñt'Güü½à¹ÊB‚h9õß~W?ÈÜůnfSÊjl³HõI‰ÀL•ww/‹4žN¹ƒƒ_¥"ŽÞÈ^-x›€ta%ßv**ý޳¥*(`Ž?\Æ«0¿)j® ‘˜÷Zxfmo÷U¸Ðs‘*°!MŽÞº²¡¡õäÁ&ÈB¯Y²ü–cÐӻ闢ãØ#F>a¯3ÅË:ûyd̓©·\@Ú6§Ùƒ¶ß±óüsÛ ís™zWÃfX>ùeótÔ˪DÓ䡽ûv­ºÂ*UðZN,7’YB rÇ"ÒÄûbsÛ¡-àO›ºA8çÃE8üɳ¢‰íeó9Bôˆ¾¨OlÍTf}D $„ñ —oþbÕô¨£áÄ4ÀþÅ$)]Z ³½ξ죿½†½4ï9\,aǶãö#‹%²sôÃ3JÓ«,€E„+¥ÆE%Õ]Ö}›?Û?‡ +³ô*`ÆÙ:ÙhCRìnÙ¤=§SLªJÛ –Ö„¼v’ñÛd¿‰<ùùª¶¸|˹” ÚƒGd15æY¢i +Cèü7­óÝIÓ¤óT8¿e£0£Þ Cy‚v– NÄËwš±Žµþï~›£ì¬1ýCc§¾‹¥ÝÉýM‹>yêb*{[q¥Ä(GædÕ¶ª«ôvÈõ¯<•ZÄêøE|T"÷³ÃÝn c‹ùjG=Á­Ú(äxHšžÄa²©ë˜P@O9>lJa^íÖÊ\~+v¨\QïEný/×Ò¶q{±…òRdRÀõ-ûÍ:/¾‚WKN®6£ +nÐjÞI>-]8oªÑiÔ½€œZœ‚B3Cw— %‘%±±AIšåå‰ +úA‹ùNA¹±r¥$Ä~xFKWÄ“+§ÈfµSÈ}^î†Lfí6Õ—gá‘4² ›OzPTšqI˜¸ÄûŽHÖÓJ„‘ÒÉ®šâNsûñ‹"A>ÔøËB¶hç¾4%ã}éqJÐá;®õŒòÒìY×rr¿ÀöÏ«˜žFŸ»qÀ³owkƒìóïÁ0©hìVŠvÙ;}Zš\ˆÂÀy‹ÒN:ºÿ‡‹wjÒ„QšÛ¶mÛ6ž¶mÛ¶=mL÷´mÛ¶mÛ¶÷݈½Øóýƒª‹ÌʬÊ(û%Œs{¾èTJsˆ4ðµ–‹†Ìwˆûl>Vq© +ßï`’­wŰ×ÖBZãŽ7¦eóWH3ÈgÝ‚´ÌêÅÛª¾âL`b²Tãol‡qÜ$¶^#¢¼Ö__Û=4LfRàXœTßSº‚¸Ó²ëUFÎem™¢ßvsÞ.:5sCH¡7DAŽB4ë‹kŽ\#dÞhÕ㜡­C²㜩ióOfªøyœ|g>¼vèªí"·©r‚ž®qN{Nï$¿µ½N=+u0g³ª°Ô\b8y$ +hí­j×  +é¥ev޳w&-ÎøÉ84å×+bûsfgÞ×7㯗­´4«szMVmëfšÐp€ÞdZ§Éq|±w4š½Ó¶÷­R”÷4ñ·Ñ™ n,ûo³ö¶@:»"B.™)’n ÑFÑÂßõ†ãŽ~—à·™LG”±ÌÅÜìbO©,G[«hŒ3cŠlJ©ðãòô,LŒÑóþÚ_©=)ãϤ¾²××`<”¼u„ÎpœóWI™^Ý}ìà*ä]]ªŸ\"vÚE«¦ëhé²gÒª­ïú¨?#¾$©„ÐÓ è{ØXËŸsÉFÒµ-›S¦x³†î$ÑÛ/ާ Ä`ÇZ¼o\t¼ ,9uº—þJ†H†»ø¥²k·ƒ Gò%WH/ÊÍê +º¾ÚÏ÷q©.Ä(YNtî!»zº+Ê ‚t7ÇHà–Û gR˜Î‰Qëkr/̨­KjË¿BP¬{Šº™ +'ÕôÌ©J®ÞÅp˜{L‰¥V€­Tþä´³D’U¸H0ú¥†çOÆ\ÿóæˆBäû®âr°-­ÃÓA4{½w½ÜI˜¿.Ò„ 9ËZÒE@v +¶Ÿ39 W{—NüAÈeaÁG*øYUÓ6³RÜuͨ¨r{´¸4Ç€‰/=dN¬=W)ÔauñІBg¯Ð.¦¬â?Ž‚¦Ä“)ĵî‘d…”©µÅæ;‡8Vx’O!vŠ€ÈJD=íG®ûÓ²ä ñ®Úö·-cz·Gòƒø˜¼s’©î-r¥ªŸ‘™¬E„të”ÈF…$ÿÍ~‚à»2vÜ9Œ"õÜÎy%ø'ÿJPÞ¦:3ŽlÌÍFÃf·/¼6´²çYBÓ¡y^/NÕç¹jx¦Ñì±Ò—í–½™'ÉH"£øn¦FÒ¢õÉ›,þ=4²^ÿ& ïë-3…ÌgåÉ> +“Å*£Ó¶¹MP§fH§CtàŠÄ× GŒb­ˆÝ>÷K ¬,ôcÿb–îd¯¤œ–;§z–Zÿ›„ù©¾6a1k¤¶êù¼):1vW Ùoa !÷`PH©Ùrœ½šEPÍñ-I@$·ƒSh˶ ïþ‚`{"Ô¦!{ñ¨‹tq ÌÏ/wùÈ`SPµ°(ÈÚ´ú»„½fõcR’ +ïwa'ÐM05¤¸8-ï‹Ò­•o¥³î™—É#[¾4g_±Äk‚eÅvó¦§1Hã(Œõ9$Û:÷æ'çðã­J´ .í÷oøìK~þt'ºÙs‚¹©XqË`—¡Û†ô¦DM€ÊtåëVæè?osNîŠ]åwú$€—É£ñðžÇe7LgM뚨Åyç¸#‡c~"•kË(Ø * cöuÍY©=¿BˆÞÞõσnu´b·Š{`Ä1'¤–j:îQ€YT½ûD+ÙY}²"iߨû¯PüxˆQ0ªÎRTƒ»&|©ªcäš +R|jxŽØî½®zñÅñ}ô–Ä:˜JI–æ†*â^eå1ùY:˜ÈCˉk-«ìt.£Ö>{™f´o <²ž—×C¹„è${@QEò–y„)%‘Hˆó‡Y ýÏKBÎ?'¼VL79—M¸´5bï`q„N; çs)ó»H8»5BÚLcPD»û˜[34õbªí?–phÿºO¾·ÐíHô 5mZJ~Q ×ïi±µOÉLOË’“§ê¿sj‹ÒÌePÀ×ÖÛtùŸÀTÎö©„©1¯‰áu3¬°ÇŒ S–8®­Øˆ)ͬñ™Ú‘XSMƒ!E“¬´®Àî7ÅUbŠ¸šœ „{Ãjù¢Éi4¾,~ƒéÄKÊìˆÂ‹iH¨ê(ŸO‡=U>r+Ó’UhѺ¦·ZbFœe4Mm¢à®Šˆ~ZT¢{‰ˆÌÏ–¥„ùBKP´¥Ö²¹·^}Ý/>Ðl@ yÎÊ"8\{þf (zœnéw]`žK]]¿èH^˜eLB†X"¥ÃO7ùžK,ÖD{ÍFp¿&8\z;ùÛìÁC°ìÑê$Žì´Xƒã‡k•%þN]=Т:èJâ´hÉšþvg5êÒݵ•,“Iý ›Nº¤„öGÙQ°~^s®¨(Ñãk’ ‹1O5¯šç°÷0 ÝÂSÂWÃ"¼¦õa£ [xâi˜?™¼Hª7¢SÁFŠŒ´:žÈ¬Yv :®E$PˆâK Š1¥x“¸*ÚNî2ÂöEg™Ý—,*Ú¹UÕüæS( +ÏDŽuÿ©ÊUgüøâN—áæ8ÁD@£¬©“ì#xòdõ"Dv’XsÉzw•ã$ÛA#[Aœÿ?½rN3ó/øyUàF}Á·h„Eka2Ô\”:[Jý(Sî4NŒ67ÈúLR0·#8X,ÀÄ~ +Ô‹´»‚ÊÁ©ÄD½‰!¶ž‹.¾" a‘Ÿ:°|åþ-NøðÚÉAò¬Meé1„-cŒúBδöºyWÏFGœ‰ÏoÂÇhþ nÚ6dl]Ç@¯ˆâ}?!¡•jœÎQ·_DQRkíP65Ø¥¿žV×­Î1cj'è¹=«ß kúƒiL S¼"5QÆ@?b«(ØC‚ñ…†©MÒaÝî1sêÙYÍS;@obœ~—ŒóÎ&¹åœ_uFõˆé•„§ò„ÆßøÎt<&mÌݶ–’Jq¹qŠ, °|9ÒâIšd ì'ŽÀVaöÁ3³Úʬöô ÕŠ„®—;åEC Žwyz*¿0Ÿ°|"Ò)º@’ßhêü$ÿ{Ó‚„RB‡­õ%N¯Ué_õ‚!é…?‘ò”'µz¦»®!C}sÔdRL»ÂÀÞ*‚¯«Úû\3ù©ì_õÑgRΨsZZfÎ +~zÜø¢/N¸¥Oic–˜¡=paû@_[óëŠUë×ùØÇ%;…¬Tpg`¿RwŠ‘íú`TxsXñ² ˆà‘ž‘À ¨&„ùóCº® Í¿!ñ€ Jvw÷1/kVL¨-ç'aYŒrºÕ`Ë §Dëãôl&0ƒ{ó߯8Ø÷ÊžÑñYá–\2\Ä>ÝHRðá4âŒJÜ+lqÑßé(DüW>Rݪˆ9iŒˆÂ¶±®–s·¯ÜÐ÷ñ +-ïWŠÍ‡%ÝPêúéÿÈ$$Î!ñCR…ê%»L\ÙKvCcnÉ…B’êï¯ +1…Ž|áYwåo‡ü +]ϑȩøå}øüØDÖ××Ö`äüºkAGo +7%¸žÅè¼ÿ ª·éK\铜ùuY‘…çÎŽöWM…‚“ã&nw—ÁD»šêÏæÚXá|x·Ë ᄎþ_D¹.F›í³ôÂ6xc#]{8ü¯r ß\%Nµµk7dŸVn{úø7󝱿ܛ¨„5½!NÈanïw2–¬ÏÝ|†g5¼T,jt–AE½ÖÌ\ò\l*6@­ô´ógtT§n¢ß¼‡'ÔF¢+“¹$íot+=hKòuÇ×d­²Éj\À™#åÃØæl»„%/²ß¹T)bÏW+tÊvò-\b˜X¡{Vê– ¿èb +4ŽÜ\®fqÖ&‹Ó>¡W]3<NéÂöÜùK=L§øÌgãȃm(ãöØ=ó:üÉUEÚ•wi¸šñ©1uì8ïWl[ +Ô¿A`‘¿ŸO5À>a‰ºå Ã:>¾´ñ|©´Îh1¬Jǧ†[«5K¤ÝDæfÈi-êJÀŒ2l\ŠÇcÆì¬ŽWÃÉûͦ"¶`õ‚üж*jsÈ?B å(»Uùæ 0Åd Òñ¡3 [ÆèÃúÖÃV€T›¹rÊL™~`-[¶Ôô,£î¹R™‰oÁeë=k†#'9¿ôEµ 4:Qý^µ1×~Ñ´zBþz΃[g/¨c…C ØÏø8j½¶³þH¸¬/ìÈ*ñí©°Zϱ[´°«Â2’—“]*}ˆ}ÎB3PÈ$Š‚nÄÃMu7d'(ŠÃ.Þ–XÄÞr—,µ«Wì<¹¥Úǰ£ò Øž>á‘ä­*>µÀÿäî¦rlŠ'oè Ûó©7úÍUÑøšüÇþ8™Ì=Á¤¶¾,ISVdSv[ˆ¾Ž17ä©-æz÷yY•‚¼2²Ý Ö5P–äéûÚ£@ßÖ„5Ã$ Ï…¿¾·›æg«ÐK}e¾þ›¶÷gX–ŒvÍpöê?nXWØ(.C'™ˆ ±Ÿ U@¶À8÷R“ç,È6 fÊ(‚]‚À’š·a!bÍݼN“öF=¼Þ3;| À¾3CÛp-ÝËð»}×°ÿ줵ĘpáÝê´JñUsØ~¸6Ûù¶ŽÈÂ8;âðEk* ÀÉ­ÙkPò.›UUüo }Ô5Øð%h òTdm¢mgk +ac’|“»Íë0Ü‘áDâ§2ÌÏËY-_êÖ§¤¿²˜rDÎ×g¥³ªzoü ±X_¬­Y_JnÍ¡ú”ÀBYé—®ÞÞ¥Ú–=‰ÿ†­CÝòع ¾ûÅÏÂvÈ¡ÍÞ­ÈŠôêðaC´e®!kütü ül3ØB,J}¼®—à\àe©„j‹^š#O&x÷’Kè膺£>‰À*c^²¡æ%VÅl õJ¤xm{Ó#—Þk?Š ¶ux~u{á oä868©5÷à|œB‡Ç/ Ñ?ÇÀ†Åd²­ŒmñåÞÑÒ™LàâÀø±C¾ +oÁ—è.½˜ Ö 5v¾¿º´Æ¶v`7Tž×Ö-\ñ¼Š‚Þ-ÁÊòùIvùüÒ¦ëGÃË'€d|§»Åõ϶tÇeŠÛÈäì¿ßL~\:œ¦úü£Žä.¶Ûˆ%ŸPBo‹y³MË> Éû;DÁ ÚmHw +«ƒM~ç*î9bFň»5‰AYK>áª%_Èœª›bÍpÕã¬%X*fHÉÛ,Q•/rž†_üÁ¹ü!™îÁ)ë…úœõ>Ï‹]ÈmSf&»ÓêÌÕËN%©±ÏdÓ~†ë ͵ à°-)Ïû­€¬«iˆïDœSByÌ]O Í–!êÈG©`C®·x«<%¸P¢· lp8¿°³È/Q_±ô—9iµð‹7Ö2LwÙ¦ê„S´„@YTÀd‚ÔÃN‹*’ Ó@àÙ—óà1’IÇ<[(šõ ®yóáüã¡t™ÖÁ¸Š;É‘ªHi™z>µJXxªm±:¯Si–¯´òhLI¹¸gÕù·2δ)nMê—›ù +"–î ‹®ΨãDª"GÃw‘ È„D—÷IÉÙä"qÇ^͈§PƒòÝÙßã[1g´¥é0Öb ×mó‹Ã¨ãæ)¡z™wD(úŒ¹9ú’Ú—ÈÁ!¯ ÞÁ9íXe‡)øOû3ÞUK·çøì»îÎ ~3-2‚r«&]ÞûD,G1$ä;ÝU°DDÇÛ¦r9b´-6@X€# ˆm%x:?ØómlÑ:À6Ô¹Ê-Ñ鮡ÅåºrÙ8ÑI£"q)d¬ F ©U~Ýš-PÑ?Œþd·a1Hˆ8UÕz¥ý½°æ¨N¯þ å|¯Ê}^±ÉnûÅÁv«í`dÝ<š\RQµ–·ZÌÍ^J›x¥(¯'Ìý«|Ç㡞"gä”S HMv:jࢀo>âq– "ÍJȘ/ÝâNf–†Y8úýAbkOËakèQ…Ó\G:Ï]3áØF;kž‚`‚°V%gU޵ÊpÓ–±mµí;.q7…öƒÕŒ¡¶¥³ÍfÜönB\”“ñ’±±}|Øß&œû?@ñtò2wOªÌæ»[ãÄ-wbï¡;Õ|áxC7'óò½m¨¶í–Û–ôU7yG#[-€èøj]Û¢ù»çHe¼±Q¥1ÛtãW5½?!ÆC<ƒNÐãuÃÞX9í·eâÜ¿%}™*CâGÙË B[XÏFºýª_Åc8Ü¥b5Yô¥¤‚a'¡“.nõïQM)—A°öîÐâ•<öïQ!€jNXDÂÒU'!taMxH J£8˜~Nr˜ÿDc¿¿’7²LæYFö<òÌmg•ƒ»0•›Ñeó®./5­@«1,›A‡²ÊV:mS,¦ ­–7Bk„6.вÅzX ñ÷OvßwëžÄy±YIÛäBx æžH˜¸]2÷ÊÅz ºFÛ9~7Ùµœ%½ ƒ¾˜ç,“žTå¤ëÆ&K‹™‰ýZ$¸þ‘5³H`aaw²{VC3H.‡gÀ¦Ïæ ê2ÂrêB­Œ(<öä³ÖvÁ­Ûí/è ZøL( U(Øy¼Cü’è±’´Uïa/ä‰9LÀ¼"KŽÁªH˜Å(1É0moù}JãÞ8ù¬âŒÊM4Þ½m›²*íU âá'¯Û?ÍÉSÆûb¯ç,D £oœâÙ4LTÄðÂ¥«.³þ‰Èü5Ædˆ©tr2àôÀ}‚>,y»õç·ÀshaÅà5æ³òÆlçóQ÷*ÿ«0‹!‚ñ?ôs…zl—ëñH¹<Áˆw.Ôœ4Éúº•¯´™)Κ£fuäS MïrM¬Â ʼnÍ5g|¢t ®Y²`W¶ÉjYü¥þu7~ÒAé÷‡÷Wyšô)GpŒ°+æY ÇŲµ©KÝ(u¾oU’ …±ðž…îo=FÞq™ðÞYNèK¤œö„}\Ûý­Îûyx'.—,{ÛfÇ +žûVqŸÛ&•]ç† 1‘ˆ„ºì„ÀRÑÜh‰ç%ôÎÓ +U©~Ͳ3Å'‰"%„ˆæ•C"oaê§—ûYsÄ2D颼ÂG@ͱc®jD±÷ãöµZëÜSН˜â-Â1W|wX¿4\!ÂÄ¢i(¸äŠvÃÒ/.$YCØÀ£¯_Šf¶˜¢ŒF;œÕ­“—‚æOµÐöÜ+É>‘ ÖýX~gªËÛ8I{}ÌÚ€ J²˜/œGÀ¨ÅìD¡cÉØëª<ý;‚¢ZæÂßÈG¸®/Ž@[z‚—cúœ§=NWôs#}ÊVôM½F×øÑ¾cŸd—ÊÆx«Rð ²ÓoOÖæ†}G\Ò¯˜L÷ÎzÌ•G8 ˆzÐq©B÷ŽCìtë”öW.Dœ£YíYb™´û´“ EâIþ#ÎÒŒÏò¯?KšY¥NgHc¶=†Ñœ¬;×ë` ‡v'zØ–Ú›‡êÈCñƒ«ÐD£v«À«È†k­uêŠÔóÑëz‰”®™ 9ÆÉO|‘uúag°Õ°»e"iä¥_Mg•O=š3ºrXÆžéÑ…~ /›½äîïÆeY¯5Œ¯Ó>ivf(¡: +/¢ârR‹ÛõWÅs+¾ÚC‹¡lHrt—•M6jv#(‚Ææyýt¤C¢tÆQÞ]9Õœ‰Ò™âÑa|Þ|dÝà%ßÈ@7ˆHŽYç” 8t4QÂoêc‘@÷“aÖ>]¸p‚Í¥ŽÀ(R ß;C‘zLø¿»›1 äÅ`K¼öÇ™\¯‘cJP[”T!²€Ê½ M‚ƒÿ¬gâtí\ôµ{ÆÇRÕi™0'…•') §X7:jQóý '™éÇr'"]ÑûD#º!”~6üãålé"Âü}’Ãq7U“˜W®¡áÞÌ€yзÖBR“~‰ŽÚ'éC|¢«:, —0Væz”Ú¤K±£Ö÷"rÑ¥í‚D‚›-í àä¦ak®Kl¸qUC·Ä½1QèÇœE ̺*”ξå¬)Í€ùPZéјœ‡õáCuÕ¦mi÷Š[߉ŸÚÐgGŒ;‡ì[gÙ‚-cš¾ƒãçù_Ü_ÄPECæÁ8'hW)ž—.­%m¦§øL$]ó§rÍ&²­–·D$+p}ºdž˜:/ÍßR.…pèr¥Þ‹±Ø#¢vâ©Ø6ëcBbL. 1a§jƒ@Y[ˆ¥4ýX· ÛÀÿư„vbÛ +"”qn±“‡F®ÊaW¨AI8ÐÇœÉÏeâ|%D›rÑJôg&²Ï!ÚúAänÙ?¬A˜Ö8ÚA¿ +ê×$ådžÿn΄Z °pAmuæ2 ëˆý“xËmÒíÞÒ +O/b1„,RtĽ@ÌǢˣ«ñš®Oœ¿kƒ¯R=pTZ8+¶â”ÜNÀꈉñ äuí«Û>·;ò¨)XqÚÅIÇdšŒ_Z³ùß»rí Lv¯L\˜EroÔ›?²¶:Íâ·ÛT@‡MR¢¿¼{¿:\Z¿¯ ¸><þëDGÿñìw-L7æy£Û0„HÞ:Å·i•©hGƒ†Öc Çî|$ÿóû¡déÌL[‹3/=¤dh?]ÒêëÊWë­Ïy;ÅÍ.IŠLçÞ²ƒŽ-A+Þ¾˜ö…eádýÔC~n^5´_dÒÄU¬Òt¤¡Íöý¹W-ºhR{‰P³ÿg]¢ýÖ[蔑HD’»vŒ’=Vo?0‚ó’JÄÁÒ¦§ñ2LVJà9~%NÓ|1$öÐv}* tù¸i?Äž?•?¦lÕì8,2ÞùâÕù&ŸÞ‰ÑÆ]èH0D‹’Jµ³n‚nÿÆV¬‰[Dê>È:ià–ß»€)—}lßá0ªpЦÐÍF1”)™0Z°ÿG„p6ð?ƒvöݸ­tºv`è´°ɬdMǶóÒä©tú(*|˜àâv³âì¥"ódE$Ê‘ŒêÀƒÄ¬#ëx?`$|*¹çÁÒFkÓçcˆ“}³Àv–´Â¦ùè ‹ån: Â" È Á/ÌÒw¹A5XÌÛ7¶ÛªÜ¸”rõŸ*VŒZû3|ÿ=þ^2ò÷WQ•K{öû#Wz¹ü|ñqÀKuÞÐ)nŠ6¦’ Õ­$¬éüÔÎÌlç?îtËÉx +á'±Kšy5 ¸ù5 ¢ñæ(u®YÆÉfDáïÁhÀ°sô +¿©P—åÆŽ¤•Te¤ö6þц§ ^8Å,†("?uˆþ¥—’Qt”é¦tvVç\2jta)žtµ”’´ Ð6É•[}Ya5c{ÊQhì`Ûf0µEÉ·-.3Òè½#SÀ1\ææ¾ó‚NQâWUgˆ¶Ú1ºšCIó=TÞ&‚M)Üï¶} "ö º1°“7zä½ìWÇ-[¦8[AçžÚÑ-¼.8¾i°UèdÄq õc™šŒ³-PÈO˜6€.s„JûAçÙEÆ»}C\ÏgãgM(¦IP  +šüËVÑ=ÖõdÍHaþHšù'ö0½ÃPl›oŠY}ˆý‚_¾ªß3:ÇxJUõÆÔ4¸·CW(xÞòIHúã• …‹-] ã§‘ä› ´kç{Þaþ‚JPóz<%²¾ðVüRMr•4s¾)ê”5‹CÑv‡ìðEGt¾ôããVœWôK˜ñxWìý¶aö’u­$\ˆC{;Š#0ÞÉ`²Z*" £«wû Œ“þ˜óo•P4üíí(µ¸ä\*_¾:u—{%rå½zÚ_‰í›8$Ôº†˜ví î*8oÒðMÖþ-”¬b›…sÎ8ö£Šû| +þ{zÈ»¨n<Î\&û®,tÆ=„«È! N¿ÛÏl3rÓ<俆¦$<€WJ U’‚±!ÚuÑUÿp¡Èuv›¥l?öœcÈĬH” £fÐb°«ÂFÄ­Y4.2SpEäJ#]¾¥‹BOe‡ú“*¦Ÿ#¡-‰yiûX—,çëÔ<;^}0í´ûÅÁµR»ÞŸ¯p Yƒz#sã¬ԦÑþ=ó±vbªØcƒœÑš—îÓU%Öà”^ +šÆÓYqÖ¥;ï÷=špú±yPN±}í9ˤ±Þ`?æl­C-ë7Ñ3ÍËø÷O‚ܦ^£ÂÐt0?Ep:£º +X>4B‡·¡jQ/B¤Â†Ê@iž_X`Mõ¥·ÒZ6ú¦ ® "‚û,ÃÇú20“/”üÁK[”_/)þr-{þ˜æÌÞ®C7"áÌt•Tzú…µ>J^ÂÁ—X”ì)À–üb‚®©3›‡Ø‡nu· B3yÛ³€MÝ2žžì{%œÍŠï䫊·Ò9Øát"˜pÕH®ÔØ­ŸÃS%;:{“‡îb4¹z"GwÁ1«¡6ã?ckW>Æ Ón5^•+X(á+¼¦§.Älˆsìo3{)Áµú°í„¡QÁβsˆµ@¥´¤d}ad¥ÔÌð…¼J½kÊ«™š¡ªÐß顊à¹èÞn«VéPø”‰—¥tÚî¬M7! +Y4(‰Øõlµ¿.§tC<%êÁ¤H‡a´ö·¥Ç3™S‰Õ +°bŽù«¡é\ËYÔäïÛÃèx÷°òÝV± ëb^x{´G©{v·Ø+M¬>R§šŽ'Wu»Ju‹ý@ÖZñVðB‡Ët ñQåÿFþŠ ¾i"©YËP6…µ¹9JO¯Uel$ØXe µÂÁ?™Žä-)O"]¼Ð݈Ø©“Ÿ§ûã)fmÃþǨNH»Ú:Þàôkm]]Ǭ@å?ÉvÔ¾®â3ž9X‡Ëˆyb;2ñTGÐêF”KJ¬þ¢UüMgzß„eYü 㜴ûo°DÜDüF7\‰üö€ò×g"£]9.8u¸º}&›+/O·»/ ¨i%=¦ÇÅ p } U)®Có–wÔÀBûQ–3 ›ëg£>wQ~ æ&fN‘§_Îü9Ç<ÄTîcè·Ü¶P0 ÊJ.þSE­‡FN"úeÙªå°÷ÜüC’OûªXûÔ/C¤z`<Œ’Gï!ª‚¾¥»)À¾¹®§Ã^xcÔÀÑ|YÚî?œ™".<³ãÃŽjw{–ݲˆ®púlL†Ò&C,:YJï·óÙ”ƒš¿d6Ç N-dÞ+#W­„^Ôb{gûå€?½mÐr-Â\HCçdíþ wEKƒ£窊…ЪòVÂû™áùU Äšÿ©´§ÝQB_¸ßø”jÜ\*¥ÛÖŸ:ÉMã/Í”ªä£³œ±TN(„O"XãËÓè0M#ïfÓ¸Œ×*“…àþN«0­£‘åŽ1Hᥔþ-a#0y;ìJ¶ˆx“ìÝÝzÎì>ì’¤õ\Ãìèu«g‚„öfo›(= Ú"~ÎN­RÁ+UŠ/5Y.×ÛÅÙËlu¦–3í‚ìLªO§rò¨\Êâu'QôLù%/9ŒšáEOwN@¡äîzü rÛ `"a Ò¿"â™ÿ+¯¤¦E=a”Ã,Ú ÷_ñ>.Æ?$¢\šøàé"=åKÝŸN;^ä¾Ñ#ûcWl‘é«f J4r–`M ÜHóÝmp +ÒÃ"Ú.þöÍ~àÐQ©]&iK#¸q¿ÛB¤žA·õš…À¶w®‡±X#ãïÆúTî#€`H—PeNù T‰;O߬äH¤Pfwƒ²æw¡˜ ©9)æŸ5¸ÆÖ°ø{Oþ!z×ÏfÃIög" 1I9–¹utŽ‘~©&ôŸõI¢_‹KŠj£å›ŸDúª"4Ÿ6¿ Æ µº‘Q + Òæ½qÇC$bÑ55¶CÌ|¼$úK +N§–ÜoÙ…¥¢„HÛŠ ¾GW´¦ueldo8f˜8!þë´ Ë¿[cu(X ßoqˆú˜v“Mê.•‹·I5ë,7aÿÿYàÏzn¢oyôK%Ïzîé‡×ðÚl.‚ä]sݪã†mŒ“9ÜØ¼óŽÔdÍ¡#š·óñð®úÝcó½·Øë mÛÿ4Œ)§‡Ðöþd-j£u kȯšì27zx[cJÍ&‘Í—pK¸‘„²k ­ÑE³»ýè²æM*&O›:9è‘yñÕ;Ù‚ ý3½Œ…¥3ò}_ÇxaJQk +LYH”ÉzµAv6îÅ™˜Y™ºÛp΋™×NrñR–}m¥I°h&W¸DÎÒµã&ñÄèì¿:§ÝÓ;R0 Þ”òhâ¤ËJ·ðÊ$!`{Û$jTïjÏúÜ7Š1^:݈ϸ^Le̯ú@&tÈÈÏ1Ãêê3^¯N¾°%ˆˆaP›¾Î¬ì¹{ô§Ä·P« 1 ¼'!Ögáø³¬õ}m§_¡¡ißÌ’þ¨¡Þµ¡g !/‰£ÈR[4¿È«“ݎꇣ}îÃ!!ýÔpSa9ÚYüä¡QSÞônïeþ\¤#‘]x "\Tøí`Ë êVŠª]¢^¹`C—:«¹%`ì´! +€’Ê•û:úF½GbxüÇ9õË»›ú¦Úí³ECn™ ÐŠfÔ¸úìÜQ¬Œš¹kÝ%ssì¥å[¸ÃÿOﳆ'sZæÔQKÂW, `8|uf¶I"¼–›/*³>£¨â ¤ºLm¢‹7ðªÖè»þƒ%Zø Âê[0í´«—…/HüÑÖŒ6õž ô¨á,¬Q/<ë5îéðHSØ¥^ßò ¬ÐúƒgʬÎT-t© ®#¸.±¡i9ÀaÉaBiƒ#m^«¡®Ï›è¬C\éùÔUª*^—Ê1ÿvÈ “}¹¯D~=IT¾°u•!©º‰¦g'>”+NÅÓ1è£c'îÕV›æè0ù¨`qv0'Ƨ ½]Ü@ûÓyÝ):§¿®M1|?e1ÁòÅOÁà,L $_ÄÃ8ÁP,D‘Pµ0ÈUèÎÎÕ×ò^Y‚C-^ưÞ¿%ÖºY"S—ªþj—À…⎠{6¤AiüÛU£ù·ó9n줾½Í,9Í*_ÔeÓ9¡œ%iRZæ¤Ù½È •é2vÁiI¬¸u_Õ åÈ×¢à‘÷6c»p¿$ç@þ¿ñt—ÞT¾’ÃFóµf "4”µ­2o¯]‡S\Ûqïd,XCb`cÅÛI±ÞÁE +A–Þ’öŠdµu¬1B?wŸ°ˆf)ž÷Tïb{•›y,œÜæ2OdgËõƒõ ²TJ‰“Ýž•"ЩZ´”³ö-8}àªDu±ßûÙ;X‡qC­ וm¹Ì½V!QÜÏ· kvAzåòšÃße~Õ9†§yc!6#²p*ž§±¤fá&ÊDýjè& T³‘+m~¹Üð̯”Ii¹XñîwÔif–¶×`1…ïì{üƒ>4—_sã蚺ü,yv ö-ý­ÒÐx5U±7£á×Óu>i©šny«Œ Ø 4²v”kÕF“\¶"ðÉ`L)K*‘Ù²á9NR÷Ø<6Y¨Ö¿×}vËf¦ßUO4ì‘«ÝøY·QÛ¿û[Z\Mêc-µr%Kçí +çžÑ\%c˜iô!±KÂZò99<3޶ ó[ $q?¿à8Â_¦ò57ˆž+\Ô´k]zä –P¥œf>*üO¤²oG² ?ø»Ø630zïj''_ªTÚg"ªIþXªÄâÅ RÖ2/§V…4"KžmB%×R$boF•.Ï‹¢$pÂð¬z?5Í›30P7Àw¶=‡,QäŽ]wCeÙ*±5lT‰`Èz2ù°C,b+h.¤¼dnQÁÅ äâÍ~ò{Tå˜p €2ªÕg`Ím‰Ò<¡;±çu¦ï3eÞÇ5×-¾«:Kä¾…×™ÎïaRvž?Ú»à7’–üm2ÐI†ÞvF†~ËëÎIÙ±Ù^%VGñ Ýö`á[ú7غJ«+€QÒL²þÈ aÜàYfà犾ÄMÅI7e\L°ÿÈÞIÌÌû=Qq*ßPÈæK£$²âû‰W΀Vëé`‚úF»éÔ@¯xK¨ š‰Ú1šÅ}Þ"¤c È-"É·&мiÇ,ò¾9Ö·ãŠo>~‹u©œ¹wºØýÒ1S^ùÊ$ë#¥¾óv+:m³ài;þníœ]LPNC 5y[çØ† 0¢†9>R‹÷ é{¢ž¿‘)7ÿ[mVØ_pg«1Å2E˜uÓ Õ*ÍY;îµ +Ñ8×±…vôŸù­8å“D¢ïœb®mrn“²1¨FW27Œ\ß©×ߣÁþeS9(j»Á­"ßq®ö®à‚JD@Š÷uFA«½É D¦VG‰ß‘a/Aˆæ(ùo¢& } ”>ƒ’Ôo ìQ²q 4ÀËÆ+&Ò=-‹NÉ3ÂVg¼X?[à¿¡ry›yaZEÓYØÄÇU_!púVôüÌHm.»sO(3mBb{xmm‹q <³ºK®v[­ˆÞ( ~…ºàvI±ÍÔ>w|©ßSGV¼òfðQ¥•ýÀ;`Jj>ü.ݶ3¯É²a$Ú¹T寉gÚú÷pd1õŒHsMÞ&bG§5Ф„߂ĺLjXø‰nž‚ÖJ’·V•oÖžVä@úÙ7÷{Ñía®Éˆ-ÉÐ:82ªG%\žJöQ)o™"Ë+ðQé <Ö@O˜/àxþIHV¦øaÿ)bfÔ]Ö¼oQc°ç¨ßçŠSÉ‘*ž_ŠäU­¯×‰Æ÷·VÞ#¡ +†±ÂäÛ¿ÉÁÍÿ. nÑòóÏ4(¯Ö´.^&±„nñ qÒ+2}ÉLj‡ùØŸdŒ5È_P²™ë1.ê¥W}üéÁH[$ô͉ÙÄ–¿2æÃVÍ@‰¯í ³+ßu„‡÷Éš 5ÍS`/`æ±õÿ•*Áº„µdÉü¬„ß´èöƒÏ¬XüÿÅR5ÂÃñî&òîÑ¿6Õ–(½ò›i÷)­¬’y_!âØÿššÏ‹øÈdc: Se‡\Ïlì&Ãlë]‡ è÷¦ÚÓƒçŽMâü:yü` ½ÃŽ>˜Óèê ¶Sž5^LX‹÷ƒ3#¦¿Ž/73ËeõÕ6Pëß.¹hñûö¯(øO?ßÙU£‘¾AJÜE¥¢ ¨ØkÔÆ ¯éÊçP­&ჽSô“ÿ¥õç^$¨â[Þè”egßj£ HìEîÜîj³êÚ("Ùó¡–F„bЗ1».‘”°Á®SŽß”£Ž6ñY&ô¢„ 8úh82›ùÞc4êáOW`ºI3ÜøN D*‰œ­¼ôˆƒ©¢ÜÙõy£q¢Ô^‰â¤A¬-“‡¹MA{r[ˆ¦s_çÞÑ!ŽFN~²ÍLÓëØJÄ:Ò"7›3:ˆôåùpTtëâ\.þå¾ ›qÎ lOòóE6[“øÜ®þ“<ÿ]Põ}cf?Ü7 4§ãÕãƒúµ…Zb›úá!2ûM#È1@-ô]]â±x5†tS$õFãuNJwÑÒ¡ÝYP ×¢ÐibCæ­2&«yÐÅ÷ÄÁ‹$âÊycFôÚkÜ}FŽÓ¨pF£kbÉ>p¼;6ƒnmøäÂwàY] Íe‹¦¹ú61P|³SŠÂ¤:À +fæîÜW,\°…Âó¿ŒB<ƒÕwÝ6¸ÑæBŸS˜ àˇJ\Iôx¤áÿøŒtDcö÷¿ÄØÑÿÌÀ§áRæm˜Ax#HNOc“-JƒãkV+éöÔ½B4{ä’ã\[Qø^ޤØîÉo`Çóf$uNžß¹)HXì¹uR(†€uïÁ!¼§x\l +`õQÒCBx!—;{ î Íáê¹¾÷~Ÿ¢öQÈÆ»´8_—…œèiDŠzQÐs´òÙöš\¹u‚…”  +¶âÚdY"yÙÛðŒº¼D‹cRh%È€ï?ømeî{ÐÛ¥)ÖeÙ$7¿è +¨„{ËV«ÒÈr*žT0Üûf¶ÏÅã)ÃÒ]£òáÑot»JExõzx>·b˜5¼Þ%qS²ˆ )#Š~))x¤¦ëgs­âXöt,?tWb~$_ïs3óמç©çí"íèx쇟ë@´aúïÙËkò'Í}è¥7(e@1~ÇWHP²'Nๆ—Žpçx«'7@’Ŷãcǽžã"ÿ¦-"lß'ІÃGËÑ'K`Æe¤Q÷‰øž(ZC4>©$úE§lZ¶+mÏDeˆ +_`,ˆ*Z¾xðѶeî±ØÔœ¿«¾Ú²S›q­ ´ÇÂXaóY,õN•,‚.Y’òLŸ ¤òiÀL®Ã@R˜ZJæóð8 .?VW˜sü¾ôxþE/¼üÀªÞ,e[èæ¬×^e¡«g/ëáT¯Ž„Ù•7‡Rº‰ óK£Nž^z ä© œyýü²Ý¢ ;–¯Äó¹Û +¡¬ñæ…þ£ P iBèd¦ƒåJyç½€:j£Ð쀥ôæ[¼ s¬á†ÊšoÂÛaij*Nq jÌ%±÷"¿[$6ªsJ›©E(¢§Ïö‰F_ñ»óƒgIÂÒáâz»™³M°;VÁ€ +¢N\yêÚM/Òׯ<Ôô+ì>àù{Ô=u¤» ú(9zÖ)¯l¡þ¶¯iWiÕ/NÝD„Me£Ãk,oµûªñæ ‹Ë9t.VÕúÉóA²škœân9kšòíš²dÛáèö;_>öU|—Su¯Ò±%¦ãl1Ô’J€£ÖB²ð³ÙW‘:·ð¼Hí¡¬·^šzµ´ÂÅ¿Ýér0àŸÛ7¨š|(‹…À®9ý¯…·$]shávƒ;¿ÿWï $ + d[–mÛ¶mW²mÛ¶mÛ¶mÛ¶msnO̼x·?"¹öz1H›´’Åøç\:)‘º»}¹¤·Ì ^Ö.宯 ¥0¢†µîD°$“³MÖb&6•l ˜h»Äاí³}ÇÍ&MGåBÑ↯™V¾ä 5jÒG3’A?L2F9þXâ]WyiE„ã™ÉÆY• [õ¦«è]YŸ—ìñ$Küáä<’$ƒÀ׎¬ìùY„§}¦å; ѯå‹vÞrØjð·=¾y:zŸ•öMPf¬äÅ%@êž¡%,•†º¥-—Ä»7½&¾­Tì÷³¶žv—Rs' ç@ôŸåºäxô"Bò d5xGϸééCž#åÌ”%·Ô}]0À O*Æef÷ Ê\ßgŒûL<ßx楨ÒÛ×ÿl]}™Å0_§ºS}Ì`ѼåDAwb;ðg–J7!Põc4Ë£€ƒšB¥Dâ%ÿ±sP +/qœùç#>/„µwq´W–]Ph<&Sd>J68œíæ¦JÌP&ç5}e'LáP®œ™H/hØÔ¢f½ë5e\³HÀ& +3Ž{±u—Ñ]•’(v@ ®±/Vݯô²ß‚Ç¢:Å­}Eˆv—u3c¦Â²…cA©l(±´·Î®ƒ|«lÔ%S:Ђ¬ãÔå¢ß*Gƒh¦Š1Ëÿ0( +@$õ’‚¤ž8aßÇ7:dë_uaJÐ~WÁû‚y]v{FÊ7è\ ‘¦‹v¢‰Ë½¡©,Û‹”ZxDÚ¢å•+ÚóX÷ŽMÕɈ²›}‡‹FÐNÿšç h¢]×: Ie:(|4ÉŸ:±S!*êNi>cX.,”—¨Ì„M2<àî1ð(šè³”&“•(·²}Š£cÉÜvj;qWÒ™·Bz3ÏbÊ.ÒúŸÈò¹\±HÖH]Ùweûubµºa©†RÃppŸÅèg6¨¸~ük× kâF¼&`g²“b´L>WÈõ5]Tí”à°{í ñ¸0&sPixKŽp¯—sK‰/éÂq!ïÇ.¥0äìIx¬3•'÷’Ñ{›‘4TfçÄæ™m«L4ŒË™Yô0Ð;~u o{puJ!#[ d…±¾¨ÝÿÐbjÙOBàùšB»ç p.›#± ´ÙúöEv!õ(R?C¾Â e)RÉŒv99l²ŽkJ`…¦Ò¶>»Ë•¸½O]ò &¿¼ €)Eëc lz6| Qû$>p½XeC?[ß¶¹sƒ/™æåèW¨Ðz­ÓØÜ7ÿª¡ÿ~\©a>2¶ÎûrŒjôwÂ… +[í¡Álƒñ6“³š†õFºÂܰ̚ßÀD=¹Ê*ü0øÝ 7W±@ö½|Ú)N(¢Çè=~?·ò\y¹ù‡¨ JÝ•©D~ÍÿåÊYì)‚Y.µ™…¡K¾Âyâ­¤ê4XppëÔñ€ZWo¢š|^‹ÝfÙ“ 9±r°ðÛçð¦‹4ùI%ÿÝÙË÷Ê y‹£•’=‚íŸÐÇ HPÙïà*Up¯û‹¯ëMBUÕb1ã¿ôOÚ…âR‘õMuQšTq*… p¥eeæ{uoáÎýÊ‚×ú`'R*[bóK¸´® Ðit[d½½˜uðWxpŒßõ½ƒ|ç Àùß+9õŠ•—ÇNŸE­!”0Û«ÒN Æ8wù3Í´ˆñ…Q> :Ÿ+Ì M“:àDkF°ÖMQF*ÂðZEòkr^°ø–F«î§µT:ÐU¢ÈaÌK°­Ì ­ °#K4Q2~Zž£÷ÌûR0—ÙT²Ù-ú?.Z™•d‡•`/ñ„u¯sLE£’Nˆ5b®rË 2²­=38Õ¨E’2ìí!Ü¥=¤Òs¸Ÿ­:sN7_oŠ*@1¼ÉÃ|–‰}@Ä¢1ޕǹ N`Z»Mv'¢4z¥$èYíîͽ4ª?[õ¨¼J¼üê¼SvÊo‡Èõb€RàŸ,Ii RFjÞäAÂZûyÀún”žßžrÅ£ýÐÍ Í=þ¹¹:<„PÓhL &à ~®_QË“î:—e½c3 |I·˜RНð¥ÿ»°ïÄ»'o™5ÙÈäŒi‘Ej×å­ÖºË¾á· —-’¼î¾ GBë(z’µˆ¸JG·j¬Ùd0/p[¡,cíT5ÑÄ@zÉ·9cÔ™–k¹šçXÕ"H`w )·õá{DPþmJâ8NA(’U +Ñb‹(ìÑCw'(²Àø÷ëÇ\%U]µÜÊoG6 býÒú•/làéR”â½4ãÁ ÿ–î×þŒCÙÊ +^‹y@XSå¿®“!‚ÊÔdŸåDïàªH3ã‘ÒìX/zä÷\R¹±½0Ïq<³£U߇v6 ¨ÓîÜ»‚îSY6_¬ÂµÉ“Ç]¬¤ø»G±°(ëÏd1uä6öWHLcŒ²V2·Í~™du¦q¸¿Ñí¦lPÕ'J4.Á_ïQÁíb.è)eÎ0µ®0×.ˆ\é i Ÿ¥õ—|íy»¥TëÕ-îk®UVÚ£¨Ïâ¦è˜@IÂèøöl¾U—[æ¶ñ¥Â¬cEò+ªîz73C˜VN£3Kúg´-Y«~Ž@FïÆy=ž(’ŠIçÐÀÛÄŠÆ.€Qûó‹|Fe? ´z€cÿÌ"˜+Œf#uÆßØèJq°6•¶©T7ö]ÛD¸Z%¦2ÖUû´{° +{3àŽÐjÉÃ2Ö•Ïlј& |κŸY m›G'?ɋыÒdQ1±Õ•.( ÄñK,)°9@€Ë²vÖÜ |¡§Ê>±D¯Ttýñ¦CÚ£™¬ñçi^“=¦gyŸ$Dé£NPûg1ÑÜÂÆ8HyI”­ù³–V$iZk“®ˆlÇèög$óVsô<)ã¸æJݓჲ3>Rß²Kž‰ÎŒé rÐHŒ ¯ ·––£Í½À ¯Ç÷™h« ÖÒó Ë1~_ÍKë¦$è'Ì Ê°9V[17©dÜcm)yw%xwWÕ +x…Ê“-©Èiè|ýBŒM/Óß§h§”?†½ ©Ü‘ÉÉ *®˜A’⩎üüÈ·Ê‚ ežì?·)Jí{i¬œOiõOà2ºÅN"9‚¦•©ÀÖ ù'±c¯K©®q ˜I¥W-EÔ‚ŸlÆëü8Énmï•þÅH$ps ¬·^@‘n`X§¤9U_à* +¶ÂW&’ÙŸ•mºI0=Srb¿j0Ê&Khà~¼ËjQ ö +w~>gG¤4ÁGaÔùªç>Þ…6Ó‘ÕL(iw•7ˆ.e‘‡Dm'¡5AÇ·˜üÏ ¤9ßÒÚ¡ATõ²°êÀ¸Á vÊLø*÷aKP?îbŸÛW©×rõÍ„#€©J4†vsWóª·ÉÍž¦"‘ˆ 0»ûÿ1›’ÃErÙ¹cÂRð˜É¤6¢M'qhk(ÿö,p®]vÆÑ~ýJÏÒ¬ÌÖ©ŸŠ)«ž³ +\÷i°Õl“NJ9„öãTRû7Øê`]hA”Û`…ô!#ùL±yê{íVS%šÕBÜ0Œ¤zÈJ +¶Q~‰¡^±´õFŒC_í‚u-þ=­ZÝùˆ*¼oO3‘"Šy¡RíOQ¬°7yÚªÈðÕ]ú£Úæ”?{N¡4jdXùÌÒî|Ó¥˜£N&½ÓHcŒó£ó²¼árû‡“ÀZù@ œ¿… +²Y9&)¶®}F”‚;ZUÑÃŽöº õÙW=«\ÔëE;—ö¹‘Ëš&*EFÒŽb­£LÞê,`k,2…/““¥"2ÎüeK †X©ÿ!HÝÏ]Gf÷¾é"ëv‹æ­I´|Ù€ý9ù÷ú:ÒÉgã×ìšµˆKs +¨þ†ÛUì¨Ú ° ~Å’¬å­'ùÅ>ç> pæ9‚¤ñCzŸU´ÃåA{²,Ýõo´¿>7æÇá/*„s“QöâAWg¦D6ð]huòm. é^ÅÝu¹CrxîÃkšk ûÒtਅbÃqäHÑP)!f”‡4Ý)j"Rù;8eêA+ Ý¢Íð]ç¸#á︃ e"¥ç) ½0­óh,FÏßû°Õ‡–æÜ­OÕ~21'Ü]Ô6ÆötÝ$hovi¯ÌO·V3¢/*× +šÄÝ‚jî«Õ¢¼€)ŸGK\‘áå­—3æPZ}ó+\,¦c§óý2â'Á;H©¾£1é&ɚ×#wZÖe{¿µwo¾ªÞû›C,‡|¶ ÒÊxË—T‡ºï& +Z~uEC—=…‰GÁ–é Œ ɨAF}õI”#„Þ§Œ£dã~`<â"Ï%æ1Ï|ÙÈvú‹T4•ñíPžUˆBåí¦g092è ‹=’¬Ò?Aòkr"‡DQ,,¶Í- ‡!\éá‹Ý &n£¦ FʬQU˜ZÄk:‹HHC™`L±6¼’ +<_~À‹C5$&H<²•šÖ)À!=ÚÑ8pàÁüÒ©~Cª“;¢³ÏåëØ¿O$`óû}醨üÖìÄ=¯Or æ9Ï2p%p¿xÈyy¤¤ü·'Oãï©\‰›ÀwT?Ú‘·M¯Òû9®¿Ï +ð†#[’ѧ-Ï„ ý Z)³„I].H;…Ý&Ÿ`ÜÞöqð’ Ý \à'y$™¡—ѹíf¢¨ž•×Ô(Ss*:~)ÄV°È‡ïáûW"r»@ߥEµ^_”Äðº÷CÃV’”R€!ßi´ã‰ëú°ýù¼•;#_ñá %ã³8“¨/ÿææ+iº,i }؇ Ì*îiÜFs5IK;êOª÷-ˆ¦ªØ†ÇOP3ë@#@”»5n-ršiÇOž¹ì~–|G ì‹–fJÀ¤H>Mk¶´ÁÅÈåX§ uÑ¯Š„ $wžPZ·Ê¸ê7° $[Ø6-®\Úƒ; ³˜ÿì¹@N=#á ëu|±Ú¢.B”ã?¶ç.w!i³üc:PI#CÅ& +jèM´ðá×>!^„€5XA û*„›VÔd—ó3…”°ê[²ÌÀÊ®·_ÔpÅ&½”‚%ô ÆŒ”ßÇÙª:èßÀS¼Sg•yäþvpúta²p„I‰¢Orê²`M¬÷{„|” Ä1ê:Õ–üñyX–zøÍÈð¶Õ•°ýõW¶·©#È߃ÅýFŽ!-u^Éî„æAPL­7cúˆ +½;ÀÃŽßZRÛúÊÏÁFx 7;†¶…?Óú–LŒ-u~ªf…Ñy–Èýâb¡l +íå1¿ ÙêýÃôéI kÀG®°q—p\­Æ€…>ê0dÂè~ìX‰»Mà?¤ ›ÕÜUlzm«:ÝÄ!Fe(L`NõZžžÔoƒ¡Þ/¨Ïk<æm»C +O™üNÊ?–KÑ[i=e‡‹†~‡xñŸp’ö¨ïð[henï>(‹ôƒï»!AÎ󽌱ìz®í€¿o÷P…8¯¾Yo-vu—Œ ó—à gç&¼.Žð¨5#| ˆ!‘Ã9\aŠÑ$:#ÚwËÝ7C­ÍO71DÚlcM×Fg+) ½Nä-‘ã¨_Ë¥–êÒ™Æ]5ÅÃv0Å™ ô“B½–Ë:3ŽE†îÔVWÁœJn¤È!@-ƒÃ—Ç=Cñ[AÓG(#o¶Ç¥·U\‰#{÷XÆŸiÚ”³×§1ÎdJfßáv×MÈf“Ä¢w¾‚-Y?>®£<aÏFþ<#C¤ÍZ$^YSZ_G[Ý*~®ö²çÅ EÑGÒwKY˜}âŠ+ÑF0`k¹Ð/ݘ”·©¥—1Ú*³—g)i1 o( &d›EX™¦¨¡œbNa|)Ý_#[øFZ'ùÏu¹ðcogu‹§ýŸ×”í ÌýZ‡.øJÖð Ñ³÷«ŸÐK¶WÌF°ÒòaN­ø´ã|¡ä×Ð])y?œÌ ¯ÆöD !,Ì=0«ý¶¬]ÿÍt½\†Ñó"­¸ Tk8›å]Bqg,jj Ê6íä}M–­ùÍqœÂ<(ŸÇm¨Úõ]˜f–xƒ£ãoy2Ï*kôfj…çR,˜Zø1ÛëAwéatÊiúÏ]V„¦¡ bÒ¢âôß4nªD­Œ¼Û½€±©OñŠ ÙA[±<|B;¾T$G“¹çêOnݨ»ÚðìP ; r´Ç‰Hä¥ëÏÌ@ÜzÊÂ!sªP&¥A,à1{ƒ7ñ6’šë +ç†<œ'UOËi|Y TEy¥¢ !JQg7±¥‘cCƒ´@?G?ê©9¹®.tX â¢.ˆ}*ƒS^¨¹H9Úp6Áv¿Xõ×UAåX¨gµ$ã¿§ ùYP:7aŒU)½…ä„©ò˜§lÁ@; {dpu6³Š…Øš +Rlä M›ªÿòÍdÇ{á[g\­4ö>:ÐÈe +–|(×±‡ˆ¡ÒtÆ]Ó¬1êÄìä¼+(QËú©”( 8ã¸7æ[º6ÊæÅE÷UéÓD~zd HÃ4qÚßÒ½‹?>Ü×}iàŠäâ'±{—^µ¯ù5PÒ ,?HÕÈM2 zÌ¢Žêrx¤3Ä·õ ­À“Êùhéu*d›H÷Ñ»;©út 7yv/Ç5¢ÂË yüœ‰—âÜ-–nTå§~áEBV yÇ”¿^¢|€ßÀá£}²Í¥úÊÿ|h¨Äºý-Pè¨MÓÐè¸Ûã>ó¯e o•,jS·+îíøÆD +ñT !xH¾qTyºVàYƒ®q}š úQ”®[i™ÆTNHm…ž&®S6ØÍAÏ.‰3ÿ³é€/Œ:i¶M¼ù8A|ÜÚºå—Í«¿Ûøìøä½&½¤Ùí$úÌòeë›ÝÞaFúaZºu›J•ùõªˆÅ¨øÆi­8¶$ ñòï²wáƒÇlQzøMɺb¿ Oñ盲•åœç½¢?“'þ³Eþ}\kGyÉ^t +°èŽf.Y Z— +¡_<ÿ P÷[T»2aú± ’Q‹:=À%Õ¢–¡¤J2 r½¿¨{õ@fd{ŸjBîIÐùœ.·g€8ÓUÝËäÊ‘Á9­QV€°œ—°ŸEÕ=†wO¦€K9ÅŠmù1 fkÚ¸J)¡MŸí‚vUŒ`?MÄ4Ç~‹d†ÃÃÛ™h-~à î,#{ñl0¡2¦7ò•ÔÚPwj*Àˆ¨‰ˆç,`À–Ã×Aé­}FG²ü)¹úÝ«ªlŸfänì³²-uÖij)™ÍŽ-†Ÿ·¶/¤W!f)8lt·8ÍÜO¿±ß¯3‹å×´ÏãÒÍÚÆ 6 7õÿ5Èoœbîg¹Õç+r.K®æÁ™?öSC†Oš“S’ºd4Vž‹İŸäظlÌ$_ fÝéò‰èÔ'Ê÷s¹óÒÕÇt5b;¥2hÇ ” vR¡ôž s?OnØ9"b +ËÞôti¼2Õ3_s:œgDjNC¬ßÎr0á•ä~Y[4âü°“WÊ®ðÕ ›0â,«$_ûa¥ñ«÷/GdÓ+\/H©âVÓä"€š££‡ð³î’ âÜ+÷þ>û4Ù…uÓ]D ™²*Ƈü ú`å±CÓÑ£Zj[0ØÔržÔ£õ¶=™Y +ÏŸ¸N ös”µ¼Ðy®ƒÒ÷îjuÁ+¿±~íÍ‹·ò2I³]Z!¬{¶úž‚—”N=@4ØHÞ³˜üø½YÄÎTV0.ËÕ†j¯Öˆµs°!c$‘/f¢2þ'`EKi¼ã4†Su‹ÏÐw5;²…•é–VW³ÛR8´èÿDô‘_®@ô¥ûê¢ï-BÉéÐ +¹ý0X±”M³Î?Æ1 ›Þ‹ÿ§»¢X9@²½¶;ÚÝ^ì±:hmô÷"&©'¨ÈaÅC ,£Ü¡1¢)¼2ÞLeúÞF¢ZÚU#”mÆoâ+;´Îº.üL@!GußèN(Õº·1­{ ¥^Ñ!9ATI×㊡À¼s‘'|µÿEûõ+¿ó˜rêO‘;{ÚyŸÚù )’˜%ÍÏi­)óR•^£ÐØCùØËÅТx;#Ÿ¯DlvÉS“Nuíõ +¡Æ¨ÜK¥ñT°ê:`dÎS5½qߊ'ŸµØ¶ƒB‘—AM°eï^]|*§Yµ9™èÑrùA›%âUúRíƒ@ Ÿá šr,¢s™Ó ·é+þ¿8o­tĈNjûC;ÎÓ3ÁGÌÐLµ9¹,Ó +N§†PÚÎB©¸žÂ½",“¨Nnì#Àž2ˆMyŠŠ‚ø1˜È[àƒ†?€4A›û%YOÙ âö aj£a¦¸‘ÎÚåþ”MÑ¢˜DÝDàï©jÆý—ÕÜŽwøey'VXS‘—úÇ…¢¨‰â^ÅQÃËÅ F]>ý—ü» çûÃÔZ¦[ýQ„D6/µÑuxœB^.Žçà/LrôO®^…±Š +¬•wv9Ác6rªø½äÒIô>J[ iè$q¸¥ƒ"µ‚_üø +Bø$î7iÚ%´v°3K9MŒNA˜àxä¸ÕÓÓ¤¿ÐFdcÇßž^·ÏX‚½{O·kÏ÷Š¥™Òî^ßüü…Y„X²nEÖõyS©âð”t"ìãÅ6ðl]ž¾í,ÍæÙøö5.©ÂJ‰X ËUâ´«°ü«3¼ÓñøqE(—BÈlVôèƒn%¨S‚žõi9ö__ª5S,³³ÎOåD:1§í¶š`÷ã‹UYqºÈV<èšgÖêÙåÏqk‡¿#Ás ™k%m÷eù¿Kù¸÷(Û¶ù9™jN‡x×6Ê“]°)ðšÆ»Ö Ø´ðlšxÀïæ5UƘ>¯Ô›xÌ!*|~ðËfCªé+ù–ï E&u'/2*"4*¿‹¾-Ûq>ãÞ[×Ñ$ÒvøõËaîvcµ2Fð!Äì¾`¹þþƒ‰³qøÌ²Yùÿ©ž.oaòU*‰4º+eLº¥ïÏåÄÅ?Ã1Æ\9»ÇZSð˜U¦M ò6œOˆÇ–Æcm¦â™3Öý8s:y-®Ió¾þ3r`ĵ;”:¶›´.$RýyÑ×Aá1îÁÆ<в\¨B H_×+þO'éöY³&æ‘#TºCÉ|*û‘›ÁYç_`™ZqÝÏï~*2×¼ßz±Jù-jáü_ü袱fá i|AKëÈ”¤WÉ .ï!³˜¤s@CCFF(­Ún–:ôÇô»zì-Àk$Ó<8”:É«HmÅ1e:mÖ¿C*ÿ¦æ—Óoe)ö>EYàbš„?¹÷ýl£'Ž"Ÿ¢Ýpk®Ò–øéj“p¹…ÌSî*Ät {}1V>™1tEB24Jcî d#dÁÌi Ži_ bD Ìu?©‚eØgVT¯»>¸EIu/¦”ÎWÁC±Üz¶B‰½¯Ñ˜÷±nd“ðKßkq ç{ÔŽ”Å6ì8…Ébû–·S>Ô‘ƒ¦Qi¸2SŸªVii—{påÕD¬êš˜ ÒU°!ÞI°.B”©ÄDlcô ;+Ý]ö8ʹ“§VùKaq Ö78™ļ3²è +FÕ¬SžÏ(š¡×ëù/é¹íæâ%fSvE¿…> + +̉ÇíM7ȼ̄˜pñqÛ¢]^H~Ýõu‚L¶WäÑhâç äOFEúuhµpÕ[ X.('×2jä?ô%twU‹3l\ãLvüÈà¿– ?NK•˜·$Þ¢¼È¡SZ«"¨|HÝkyLjà>ùüvžVÑëÁÖñ½“]?{ÙþžýéŠò—`Ãïûæ_ºQÅdÙÓ}`¯ oÐðW ­Ìö»<²­¥?ž”vÇKh¡KFväJMn1áÃ8ˆ6.ÞÞ7í·®Ï¼>³™=<iw%àšTƒE‹¢ñÄ׃ÂJÓ7HeUo~ç¯IpáçŽS*Å6ÆRY8I¦E]¸z°àú²ß‰1÷§¼öBŒ5ˆ<•ÓŒûâ÷οý ±ßnþ2]ºÊ Ö N3ºØùÎÔbçå&FÅ76ûc¤Ñ +¡×ÿœðt–ì8Ê•³C’xHÙÎ@K©0òCÌ6fh‘„$ˆ¥?h ÇÚ%±­2¿šÐ¯Ôº;ù8Áq1ño±F›À~ Í®ç'\ÇJbèP4@ÏG ¾ +iË¡:?báé6-Γû.Ÿé ·(î·„¬Í©c)^Ó‚¥±L¹ûp%í¶þÛÆ7ûïÖ$1•Nëº×1WÁhÅCcMHÅJ”uIt<ÞÚ›BÙÍ †sö2¡Å<@€\•ôÛšQ1Ÿa‘mì ÚL×zÛùz໎ÂC§è?-ý_áA«&A¥?>+%¿‹I™Þþú>[Üô\[c¤Š!M¾ãå_EyÉw½‡ñ–WKÿUmìE?…î# ÄQëãÀ)Þ\b*@¬­Mh±Ånh ÆÞr@Js19á?‹·¬œܲ£çâ âÈCÂF¤zÀyÝ ÄÕ´³lßL={Â-ÿkˆšo6°d4½ŠL0œ¢ñ§ÏÞu.—¹ 펡e€ +ƒiËu¤·ª€2cF—z“'ófìíóØBN WeT…1‹;kh¼­ïjã§”µäÖ˜Ì÷XÎô…æÖ_KI}‹m¿ÄÀ}ÔÖ‚—cÀ©+í cªÆTýÔO 4Ñ +.qݵýEæñ/V—Pú¤ ¡t|ðÏA‡Äl`q«êÑ2È¥àj’w½0\@ 3#uãàÉÇÞ+°¹¼eS(Px#µ?Á“E&ÜìþúcM“ÞŽËn–« òϰuz»øþ/‰ ‚§‚¾Þõ+ÔD”;ÿ€ Ä*ÿ3ñuŒ¹0$¸pë«´¯ÄÏ®‘TK úNG´(!ÎÛ„-šˆË¢€¡ç¯?‡qô$I¤ ÃÜå{a%ŸgJئb~39^Ž„Fe.)žàQ+ UÎî®^ËYüÂažY.hç®TãĦ®`Ò²Ë@y‰é cÉ™øEÕB!8UŒ¦±íæ"]¶·#=é†fq(<é,h’qÃGyÕy±Ê¾f= +Õc.°³)CÞ‰ò<|=øSÈBâõtpÙˆDtò„¶~f½jé,ëi·ŒdÚ §‡ßùÿÁÅA¦Sﮥ ·øFšš&dÌ–©p ó`Á÷E™çéw¾ñíÆÃÑûmèSªÑñsJ’¸R¬"1¹RF_`(— à>õíf%ÇË(DTbª}HòÈzÕ¬ùÈ[ñGAyªÂ.ÈÂüÝWpøM6Zâj—IœY¦™Qô.û =ïßu°HÒZ¨ŠTGÀ–Ÿæÿ6æ+|3›!ä<š8J*•¥—yMü·n (~Lü. %qÈÉq椄 +sʾí¾`ò¯\m:zxj€D¸5hC˜ßÎQ8¸4€Cœ@]üB¦KÎ’#¹“‚õêÜbŽêÓØ—õ”ÝU„:(¬6u=Ð+6 ŽœQ}F 67ø·£ªêúkÄhS#ˆ‡û>BŸvãÆƒL^_øñ¿],y}8èµqî÷œovˆ¯ÕàÏzÑÔ‚næ·¤X0÷žÊ|Uó‚ôÈem§CÕz3shÒÞAr~T¸’MÚ`¢Hûp –:Z=Vňu œ LV„:Ó«[™Q¡üeB=¡Ùh,2u2j¯¹u”ŽP©ªEàæI‰µùüñ×'›ûòÄB@ál%wú/Ŷ½Rfî.ê±eN *íÄàµL/9*·ó(¼Á‘šVààÕoü’Ô4ý—‹˜r #Õ±én É—˜jw&7Ær)Ž£Áꨒ3HºríÎèÛ}N‚2Ô;aX ²]VVwTЯ !zÖÙØøÈ™Ïá½ »Èõ$]48Ó­XÊ„R:»ÐÄ{Or)$qæŠv¨¸!Aÿ感 +ò?Ñxª~žêŽªwG;ìПÛw£\R®kÜ6ÕÔžýÉjøÔNÖõúF$çDƦKæ¢à&E8ï-ÜÁÇ’ø±¾(^ÜåÂâpÏÍíØ¼AÛv@dBێé½@7ÌÚÚŸòSN0é^&Ò"Pñ‘^Ðìjñþîû’qLzóu³»“«žD+•‰ñøho6.ÊÂ`êg[|«eb\d|WßÔzEGë¶í‘Óime”õdXtøÃ߫ҟÄ-„. + ç®d‡³‹ÊÖQºÖA—{$ Ó(wßôôEñá›Ó‘·iŸ‹Â–ñÀ¥ï…ƒJO!x7~o£˜cÒ]Ñúe"€žÆ">‡Úž€&¢Ÿõ˜Íaή"bWûµ…‘d›&˜HLAñgÞ‡øð´k6Soô¸G†Î}0£¡¤³WÌÞIxnbgÙ¸u%GË%Bî8œ%2{¬¢ûÛ‘*“87>·{B>B€,üÓìõmÝ:|î +ðôEmÆ_£VåþmÑ –˜¨Ögi×BjÐG×ÝÏ~î ƒTëçÇ+ …¡\Cœ´˜Î@fé ¬»3CX!îìÓEƒ3­ —þVÎ…Ù{ei¢R´4FØZèïˆ4Cp ¡ðâ~P1 .Äî'DÜüH°FlبvF$àéíïÊ|} +]„9}]¼ƒq#Ä›ešÁçØ[îØ¹ÌŸ#™Ìž2 éÚÃ@k÷”f6o“®ÏzoÁùÅY$ßÓpqbÅ$C-¯âôÚÓî ¶@g$‰$ºÊÜþ{\È!L_¯•îu:J>§Ú5Vpøljú0™k­T«“«nð Ž 6 ˜P®úZÛ+·¬K˜<£‡°/ÇzÆ´#ŒãÞâF¥¡À)€$Ö‹^€XÚj0°Û†šå´;Uà×ö«t­< IãÖI.‡xÃYq™jâý& +š'ãØ-êbÝÈèWTvøÀÕ*dAÕ(ë嬓W×d\p]›Pö¢&o%…™Ýz;o±Å g+5S}-Çï´Àp2I5ègTRÚÒSv¦§ny*—BÙbÄá,= ÞXóôeŒíúS—Ê×ÿðýìyw«?Ÿ®¥ÙÆQ‚è5¥çìóu-þuΨ°½„ö’ØÃìD¢) ¯IdåÝ]Ú¶@Ùññ¼û¾%?ZêR’…ÆQÑ–²>Ø·Šàò^Ð˘ýGJË*4Êû'#¼—´AY¬ñtNA¥';üßdŸØ|I;G¶  ª{]ϵcáÔž0ŽmÚQßv[óÍ™;d•á»w?ùÌãy‘Çu™S9ÝâPe’ŸêÚØf ªÞÍB¹U ï.½© ÖžE¦vÊJaÈ59[h“]íš‹nZ–:’ùŠJ«,Þäî¼ZöŽšxwµ +Ü[Ý7E4hÏ2¶‚×r(÷Fj2þ]çhš4·©ä;2“ÜmQ>R¢Îy·‚etdKÆòÄ£$ƒh¿±hBÖwzE×§ôËÔº…§ Ýã«»]>žkºmXÿú¬ 5ÆúHÙ=¼1!/×½îWaDêFKÊ!*¡=×ãh›+ f[ºð‰¯=F/¢ÑÌ®ñ |*È(賌§æt䣠d¬ŒÙ‘œÁ?(8ð¢’ØJ’Qƒt”ª%¤•—ñè²iÍ ±mqi{ά/Ÿ¶ FŸâBóg wãšu§õ¤Í?ØŠR·ênö“yíù¶®M]nþuÕ)©’z¼ÖÞ5CшÅ-o¸z|Û[á +ʼn '&€ìUâ šðï÷¥ˆ y+ÇF¦ q‡mŽ‘S»Y>|¦xšEÀ9T·HlqÔg 8¥y®W§NFK~$Žu.Ì*8´0£ØL°ŽÇ4ĸµZ"žhMcóIÉO…_îãk}ªàxÖ¼Ü"eëiŸý½[ö2ÁäÏ`¶Sö‘l¢„ÓhøÀŸðneìృ–]¼KóBýˆ·7!èàø»ºð / VBò¶Oö{V©j¿ý†¤ÚØEóÝ@±èù±•ó¹÷3ú0cú aî6Äå:ÓaÂìžVsÀv· ¶Ö·Ÿ ZepmLä›i´L4‚i=™0¢¶\‚jKµ nȹV1—ëé +Q|ºDæáyÑ׺ükþ¨ £J'”ØlÖG1\9œ‹Ý<‹ÝyË«5×>{€u@:œâè>i@’ùe”‡® ÝàKá£F3!¨4V3NmCþ±k–—^ä4ùtH_þUôèÞ»A›wž÷£ÃÀøJT:äp®üÒgöV-Ùàpîù\]ÄÔ3¥P¸ª”‡ðhXø&NtOXûcÌÐС X"žÄiÀ`ÒÔtÔãr¯ÍîÁN¤á…P°ºÆªüHþiVõhª[Fµçó©Ü‚ì1•2Q®š·î&r·ãÒú䱡Ω wtžtÏÑxV;õeiûµÖÄÝ\NU¯yEÌÔÓ$Ù•îÈÙn"æ‘“rP1ÌTáÿu]©ŒmÎ1oD™Éåk—†– +dIÏڔ̄öE7†UE¬ÅRÌÀ‡"Ú˜ \×` IpxŽŒ—³Ž¤H«·)Q±ùÏ"˜<ÙñáÞB›tBð° 10±Ê¯Zʵϻƒ½9…ù%iõ^µ»Qé .©ÅàRÌ=Œ­ùWëXŠy J«Ö†àÏßüNbò4–ý.‚BVá†8Œƒ™«!‰Ïp¢Î¦;Š“áë9ùQJmòGû™+9\üŸ+betÆŽÌìr{Ž"\¦ŠM!g‘R¯‹è—ìÊÐx7ÕæÂÞ0¼pÕV]Æ(ŠSÖ ¥)eAT©%éß sCâdßûÜÉÜ:Èôd¨¸Òe :âCÐ4ÊbEUýÕïÈ]o±¾tÉŠß9ɰU’`V¦a6WývoSTKQÚà2_Ɔ”Ðb@2F;Û.aÑ»[›°wpåî¿åz,C® ïôÆ,î¸ðÉ>ÕÎm(ÄÄTÖÔá%Pîür¡xš?‚Ò“`fŽ!Â^s¢ˆ¦+1_íY§Éš”„Ç5î{צAÊa®Õ# í65Öô̈@å¸yKT.N`"2È—æõ=†àÙB!:XRÙ’~¾Ìgw ñ ýâ`áH¤WÃÐæõéuˆ¡©¬ÄÅF£PKŒ¥”0…pý‰zÕ¹%ek¥†þÓÞŽ\¦3àÒ@º®¶n¸,%,ÁŒé¿×‡é¨¶È/–K)éQÜþ%Âë ±©cûR|Ú±²jø/Éî$Ø:L_ÁxK¡ë¡<}ò‹Õ‡«cîdlH…‡H ­òw1lÈÃÀ+˜Ïñ†Áa@ñç Õ™x4¦ÀìË^æl"·2ÛB)§/][Mï°ëßüà´!Êd&Ÿ>¶þ–¥] `ÔE]…èrv‚”2[@ýüó« 'ûmÓÙq|ùÌÉ5E‹®òë?Œìí¨%Å=¬—4 B»ÌðHaŽ?›í4ò žú&+ù6++ã#ATéýêŠ<Þû ‰…á-¡w“3)äþ8ÜPs#,FÛ×{í¤¤«=Ó=ƒ‚ßðüì)wÈX“ +°~K–êóåÉú²ÈÝèUljý+g&,x7âXd¬Ýw*ö5ýÿ) O͇5=yàzo&‚!)P…DâËaÈEè?›ˆ™^—ß¡6uì •fùˆ°^ØTÍR'IVú¹²è¡šá´ý^nŸ-5ÒÇOd0oþʤ­™ô}‘82æÄ ‚ë‹3¶t©`×çß2ÚüU\R†ÔÄ€v=È~^vXë ŸRxîbêìÈ4þÑ.7O ãçšÆ´lk‡ CˆÑ:¤Q‹ô\m°ÄÏÿùø›œ<š ª4²ã“A·ËqÅŒfŒ‰,%°õ¿‰8bÒhGóÄ7,$ØÌ´ôÄîKS^)Ën^$t/(»x‹ÀtêåBíè((ò]Ì¢”Mã0½¾vIž#QïòuW‚{ «bßDÀ‹¾\š–ó\_3XB>+’»+1¬$ðÿ,<á7äÏÝñ²'¯7ÙýeDÔ5”'h±)è­…gLÏôÎO?ƒsE+Òë2Fg3¤.¿¬§×ºøí’¨¸}^Þ¤íŠE—QWœ$qµx夤O&f›oB¦KAíú}1—¾?–½éÈ‚9ŸÉ(«½¨F + ]lX%ßxêü6{áü:Íüĉ/ó¿À‰u©˜‰n¥y§ù¨S°(RÉÈϰ,gô)š¦ø;t?•üHÍn¸@Õþ%ýõë +tmڥȷϬnþ‘$ðˆžµ®|Ò”ñ„ŽvIד«Ÿb$¾‹¦&Ìõ²ÙÅŽÝkäl%žá€Æ¾dO¨˜Ò)\r¸¼ðUxÒ›#„pEÇ0¹Ñâ.þ!øí¸Û‘¿BÕQÃ*aT$a9/áù†“ÔHF|Sx1‚@(¨ª«0ÉJC³£É9lÌdIo·&ù?•Â×ޤ܂u˜÷-øirçm”0ÚÙ…Þyta‘Á;nÒ7tÑb¥.ŒøíuÚ’ä¤n] 5·Ù§]_gÑawõP޽k‘Ä‹¹cHÝÔ±ù.<äwFJäôûî%híA‹ŸÍ©¦ÇøHkHH_]ôãËÖ¡]Ñ»›%(ù^ÿÁ‹n§»Ã²1¡5‹JN³ŠPÉ%õƒà+¹JQõÅÛ¹z¦äŸ¾ ¬û̬.yTe&åø·„׿•˜ëo› o 4>co`dzÆÈ§n 8©ðwã‡_ˆ¯/…5\$ ÐwkB·¥E<—„Ù#·Mn*“@jÎàíývâHõ`ì¡þB{ö +ùïáÍ‘ýÅØCÙéðWòÁyöK÷Úœi†1¼ôû*e1 ›”5÷ÏŸ»²·†Œ¸ËÂLN÷ç8¯ƒl r¹Kâ*Üo ó Ŧ8˜ hû¨J!Vœ “Ü:WÉæÄΆG-6 sY}GAcß|–õ¹“"…¢¹ÜdzX/µ&VU#ÖØ:FAô6ra9¸Çweߟ“O-ÆõlØÌ!Lj¼_Ò¿Y¡}Z|Ó"¿ŸCcpÅ’3þ¶[Ú=pÎé cÓa§døyõDX +¢=“e „ï"úèÿ€»ÜÝ„Š±IFXA{Væ"²æs˜`wwàø$Ær\b iÇ)Ö÷wöšþ[Çû¸‰’؎Ź6›TgÐÁÎÙM\YóŃî;PгöÆÆ³DÕþv„EUFìízÆ*‰Õäm(KF‹^ƒ–CÉgiŒ9ïWÖ·v&Ší¹ÆÛÀ³²ºù1='Q~#[ó®h#ÎRî’mÄôÛv.‡ãæ2P±ð ® +«ç +Å­ã‘ÑHÆ$6ºªµç€ +¤ÝÜ'^TÄ¢Gü°Bgf:ýλÉкʛŠå¢ àà™Œá„ÈÌôfŠñ«ßí<üÐMœø^À|(CðÍYÛ}˽ÍIÇA~þ®=ˆ|ä˜T"/ LLuŒ5û=cÜÇAW‘¯å@ h—®P"» Kª FE,åWOØ$xm:ˆut°%ñ7®™X÷<Êd‰P¢¼2™å©ºéRô‰)Øåwà*)ÐVÂŽ:°ÿ-Èû®vÇ/L}püÕIRMAÛŒÍáÀn›–«'8ÖK¶ódjD~véh'Ž\X¶½)ÊßHQÉ=›F«¦o¬;©jbÐNøïÖªòÁÀ(‰ ’Õ±”„Ò” ô6ãŠ,>Qáœ<¨UŠï7H`å$tv#)ï9¯õph¡Í4Å´ÎýA‚ñâý n¦ÍÛ,þ†:ÁÆ€›wl_{ÿÅå?µ´"VÞ¯e7ÏÚž–èªH)L𽪑/q‚ü*°‡ù+p’gƒ Š‹~M‹}- }61/6ôpÙØ´ä 4Ÿ´ÜC·w3¾‚%Isŗ‰«…šÎðL)&gþqU]Õñ(n0HÍåN–`¤f´— Ñò_Š®®•}ûí´Åìz¦Ðó +ƒp9…Y»U+£¹s*“ƒf»åc#¹L¶'X‡ò!*ˆ÷Üá³ÂKË‚ñÒN×@¨¹B9ó™œáqØ#'e(' +ªÕŠ ÐüT¨Úٷخ£ÁðÜyŒ! Ïd°:OÔxg¡¬#jRtnEµý=Û]áo`3ÁÜÌ-±ôŠIÆã±Õ÷,hܹD¹z†ÖJ^5²RtЕÉlµ:MÆ’´UÕ$‘!Ÿ…Ÿ´Ý|±¯„ØeùÎå°'3Š'pUüN~ìÌèWãS7ÛÕ(R$f‡»xò.]`L°ò’ü0¢'±•ùÜsXïa.Õf~PméÛÌ„Î#H\òC6;J“&êÌÎߎ°3ÛP„G&Cœ„Cèö+؆„q‚ 8ˆ_Úß•² ³»ê$ ¦ä[YžßÙB«Ç}ð ‘:K,¹]3®7XLtŒGJ3ö&=˜;Ž„Ãjfëü G £¬Ô@yf›¢ 7_ë €>;’mº:ß/š^ª;tƒ÷Ó `Õߣk² ö­Ÿ¨‡ôëlHÃ0oVÂá6{„êÍsÅÈÉšQçï॓Ÿ^ÒAB\çÊQ°’Ë<9ù: ©£Æ\½X–Y„V³åÅcÕ®u“_õª0Èzxð]ù¡ô]NâÿäÒ¹ré=XBU“ÔæyÍ(Ë©z/ÉiI½¦!TNñTÒ6³¦R6¬ÑMõ¹?Š +=·Õô?fP Ë¸Sqì 9·ÃD—tžp™ïíÚBË è«­L!ª‘íºï™¥²8z’àtÒBW‚àÑÙY‰©ÉPQ1NŸdjÃ¥…º£¦¸Øâ ÙêrÎãÞ¿v®38&é÷ë:aÓ…†úˆU‚»xZäjPš€â…î/˜]uvx#ìLí{ãpM}þÝ +Ú܃§ ÌˆA¼7¡£sÿÊ`‚éWUgu„JŠ#Áí‘0pîÈ7I¥ç„ø”­FVÇ«6é=¦ø‘´ D.LxÅ Éœ9ŸäK@w¨ÿ«,ÔK»À6fZ=Wkp„eá Ó_ŒñJãXQzQE¤ï؆à°C;¿+¹` oúj-Ë¢—‚µí<ºa—ú[²2¥YK˜–¯AÖ0í|Wjÿ…ô¸ûPšµmˆoôë §77¶ÆÌã’sA“„yUmÝÂÐÙ&ŸÞBvíÒ–=E«åÜs©ôjšCh°0…2@Cp»QÁO[¦ÃÝ %‡½@ Îi$*ã +#3P×yîþ™E.ô36‹¯[apVE2eÎ4ˆ|ˇfp/ÝY¹ºS¥K­;Jż›íÚ">,î­gëv Ô|Aû‘Á + —H'Iü´lívÆ•>õ®|\ ´–ÏÑl™_`kÓø‰z Õ×2¥ÊŠüS ¦Ëgûý÷ÍE·ÿ‘,ÖÏ>ûûs=`Ãu±°a—9íïXÔËêÝË Ò5:I_ÉPÉåV³¬ñä–•í#OÊ'ŒöFÉËN*¿¬v±0Ü[>—6É-g²Ü -¸SZÉA*j´ô;bö¶ø³QdÄ‘ïf˜{u9æìq‘æéŒ„™\TÊpW`ò®‡¹.ZJ”ø÷â×­¤õƒ½dâ&ƒ;gXd6èÛt ·Ø[ÒÒÒúsq4ƒŒ‹,ÈaYŸ¸‰‰¢Él˜ìÅåžà+).…þw¨‘Ëz<<üÐe Or>'Vë´Ö{‰ ³UP}­R¤:6L^çÏÅþG®S‡É°±Ä…`ÔJqr!0 +”d¼¯ò}2™oÉAu;4&ndJ€]åt}·ûÿg˜íï¤"¿¨iªrû øé!ÈQ—I癡(±‚ͽíÄË;ÆúɬùYzâqĺ¹‡Âú^-ï³IeN¨(¡¼õevñç»NšuUÑû¹Ú‘°„ÜÓŒ'fL"œªÈ“19^­qEÖ!']ËŽVÈ{jnñ¸ày—¥N¹ãt#$Ø™è꽨8t6hF#Êg9\RP +ç²÷\ˆriX4Š º@ÄGjZóéÙ„Aù¿­P+!ž^³Þ³ô.ôª‚ÂýT d4mFëiÓ1ß Ã ÞA{"âäâ:`G =2¨0 }©ê˜œ>ï>3™¨&œý_––ŒÆS“]ÓA0­=b!ª}³‰ÇWwmšÓK¾üBœY²ëŒæÉáO’ÆÂÆyã<ÓpoJ3T‰Ñ¾Ȩ¥@ˆ>±‡¶ìûÉ¡c¸ÒYQº¬k‘’Úumõµ~BÝŽOžï(¿ç<|Yì©óX­U +ì7ÐcÂç[Rø ?e× ª—ìÛOoFXñ¸Æ¬6@]RP„/•& Q°BÑçM¹ÄcìŸön;+$Ö¸WÙ˜ØìôMX~sdÝå†úg‹'ÎØÍ”:z@¸:º½ÀŠßcIû²¡ìØ5A6 '?q-^Œ¹ã®U¡ÿ²¡ˆ=ŸÃ!Oɸ-4ä†Å×qnûx•‡o>K‰Ñ–Ä$0#Ã\|w¥&ò g‹BÔ¢cË?ks$@óKÞÛúáѰSÉ[Ja¶›ž!v¤Fúdî9<ޱ[â•"à_“&À¨:MžÌÛ<&aû‹*…-Æ þhByÎ8÷FÕÞÊ~‡ÕKlMø±Ód»z~ä³¶#5EÁ;aEd‘Ü*™,Ãær©o;Z«ìéö†V|©Èá½+22I×vNH'ú± T-²‘v›°€hAo’áD¢’ab2_±§#‰Óò†©lÏ{õu Cÿj^M®üB$º—]†þJöÒðÜŒ6±¦‘Pn×r8Z¢ ´Áråt™ySKÍܾšxú2ÆäJ!¾$B©?¯þÓ,7ÊœdÒp}/zœk§^”Ýf|hÊé–Ëİ"éÙ3ÜD`…Æ]¨B°| w»á;¨‘rMʾþ{dFG‡•è± Qà¡"¬F Z6ž‡Ñãá¦ài©¥Y>÷A6¼û¹×ÖøÐ‘^€I "²…öµòDÞšP[W +½›(s‘+N€×Àúvê>ã Ùr{SùÁ¯ÿ^}c‘Ì;φT%5¢¦iÇÂöçIU)m¼mxl‡yÍ3ïÖɱv1òÞ²å fCdǽßív+¼T#þ䇾Ùq„þK6X‰p~ñ)©e—&‘ôeýʕɭ‡‰Nq]b@1k1zçÝU(Ì (yÚBúÏŸ.]sÿ‹G+9É î&÷ÄÅʵ¨møŽåµÆ_€mÔI&È)F/"Lk+O~J@¢±º|†‹g&‰·ÏEbr+ÎñÚ›cÄ`»#„ú^“”|}˜BL²Ô\ÌÅ@2õšmÆÇ…3M¡ÓÜÀëÍP{Ûék[RN§`“Xë7\%+dÁÊGü»®ÑC'€ZèYäüm2Á± õÚñ<|ÊŸŽ¢[¢Á„pºE˜–³M˜<®§†«`*ï[¥½db×´CÜ.gÆRð'>½„÷§B-ø­ŸÜº7PÄÐs­’¢Euˆ_=&r¤ûùªâF"÷öM¤kÏi¿Þ\g¬ëØ+CBõïÅNÖÝLJڱ…kÎUçA"àf—Î"?‚[—yÁ¯è ÌU…¬ìœ¶ogÚìØxâõ%ÈWºŸrCñXñÝ-ϼQ{ÑLw}8y_¿¤&à-YÏÜ1.á&4.²†ðA"wça~sjb‰U„CI–_Zi… ¶~ ˜²+lo P>m e}˜”¹g„°¡Æê~~·u­ù¬Qúé¥eŽb‚‘G¹È¿ò$G +Ó%]‹›*Ü]õ{è¹½xá«“éh®[&àUÿ%«æ6ºÖkœÞ«; ÐàtQEèËn’øC+ +É;Þ,‹Gs«1õ ¿NËeÜï¥)ˆeR܃Sé¯vž÷ù—ʪ‹ÎǶèK1oFýò(ä9ìÇ]ŽÀ·Ñknêµi‰¢¯Šë—>Eir)ßS´°Kçm²ô&ä„'BžU‡œóSÌ +Ä ›2å<&\½‰eUCÌ(˜ÙÌ °âÄjS[—¢ØÍ ér ‰êþTe- \Ú®†Ï2‰öe¤9-ž^¸„ò^Jš@ç!ŽÎkƒˆîL__UØÂ›¨Â‹°¿D3³žRÆL=Ðßã̉2†‰·?¼ítœNI!ykìßÈé)^×—[ɇ’oæ¬n‚NvµÐa¦I(=«ë‘ÏÃmsÝÚö#ǹîl|è¬Þ•K„Uðfo..£†÷ë K ¼Êï`p¸Évœ!¥lªµ—s]S#’;‰îyudñ?iûà$ ÿr…é©ôWœŠó9ù›PQQ0å›·¹/ÜE§xó[ Ž_»W½ø"^¬„ÐÃp«Ú¢ j ÕJ†Ç¢ÏG#Ž„@_£éÈ­ +÷QÁn>˜l¤}?¢‘ÂOt…œaû´yìõÐaeóŠÎ JK=Ãâ'<ÑfÑ èeõiàñŠ} oê(Lîu…WTÕ$<ök¿ŸòS[ºÈèÉ—¢æ”± ¼Á†:ê5ò?¸'¬ …«È"*Œ¶VÒab§è_‡aþ‘}jn7¹7ŒÇ³êDLV·ùè{É~|¾Á¸LôƒK_ Ô.|~.˜¼öÞ´y„vq‹½ÛO D]\O¨ߟYPcÙÓ»*&è/'žªýW%°]§ñol%éë% 1ž&úv$oÕ+)kcd ŽÆÐFŽŠéBjËľö¨iè$©jéþ²ož óȪ½íŠñLñ„#:¢oü+½Q«k)$÷³¦GUp U[ÑrbÈ\ÓÅ’ú:meã.´’¦tsÔè½O`/žœ:د5BM´OèÔª"hD¤®ÐtΛ˜{¦;Õ‹OFˆUwîš—,Ó˜ÑKñ`fþ"å²LÜÅ-2'´ÊÈŸO7<¦kJ%žZ„·jó÷ÿ0ðóÞpqA5t d Dù ÓœŸ¶ ù §ÖlЭÏg˜VÅ IÓ(ÀÉLX½pR ®B6H6ÔÙ»à%@›IíúRƒbÌz´Üí)5òGîs½Ù,yöÉ7[Q8J¹xÈ/õÃé0I®ØwËYì/ÎÜdE),Œg½"½Ó¼-óõ³ñ¿i³~Þ¢ákWz}Ø`!f'h'³.ØÌîÁÇBòr'T2²š¯±ÌAí¾]¿g<‘M|o@e6ˆinsâ¼*.,z½£J>ÜI À~~š¨•»}¤{ífÖÞìëFVØ™YSë.nÔ1…cÈÏ%¢³*¸S°çp™Â­b3kó—j¡ªÿM‰œgƒØ!’©b{ÝùdNQRcÔ®™Èóku© z­VÑãw}£<Ž»¾6!õª 9™ù|ôì¦b¯k¸u/[ûjû¸Étž ?jÉlïH{ûe+¶gFià:|!:ªt*ʸþðò@Ø«Mù×ÂP k‡ò;&™…ã÷P‰¼Íã„h¶‘ò9=ÖÔóRe`±§¬Liy~z ßÊžP&ꟑV*0º! qäÇã‰v Jñ +¼è[LçU0Î-R”l*®‘â\‚åëi;nñ^ÓwÙ~¬ÎñÁƒôw`íQo“…jÿ¨v‰tïþ;¯¾k˜ñ pñ?v†'¨Û;€n9Úþ#ë +ïÜ|ÎK%˜ +HÄÇÓ/r£Ÿß¬oÛpÅÄIŸN8=ïÌ[m©Ø"_˜‘Šÿø-g³qÀÄèy–’‹“4>û OD'G±uÔ |ŠxÂD+Žd±eñé¾N•—NôÑhIr¸FQŸa\‚k§ÃC‚ý„)If2ÙØr)soÓm§þ§s;ȉ/¼-½äûº€w,‰éW"vd ºöQmx‹jàW’î›w$îÇï´ •9ïbLKó^UoÊo§Z÷L,§BÞ…Ñb:÷¨å¡ëÓý +´NâÈü@vkö¦(ç ¼D†Y¢©ßKq,ofº–ò§â[ÝyÚ~ ;¼q± +\RýÈyõ¾xÐÄĨðJü³Æžµÿ~½©[x»F=}:#ýÐ +EÀzÁ»Ù—_¦íÕ_½1a*•ñ¾)MFo]P7ñG¬¾î¤O‚fYeSÓâ$þº"K2nÅ~·KT–\àrM¤ÅJÃhvˆ ©z»Ö#Ж>äóÒº ºJxÖÜ•h +endstream +endobj +831 0 obj +<< /D (subsection.4.1) /S /GoTo >> +endobj +832 0 obj + +endobj +833 0 obj +<< /D (subsection.4.2) /S /GoTo >> +endobj +834 0 obj + +endobj +835 0 obj +<< /D (section.5) /S /GoTo >> +endobj +836 0 obj + +endobj +837 0 obj +<< /D (subsection.6.1) /S /GoTo >> +endobj +838 0 obj +<< /A 859 0 R /Next 841 0 R /Parent 616 0 R /Prev 731 0 R /Title 860 0 R >> +endobj +839 0 obj + +endobj +840 0 obj +<< /D (subsection.6.4) /S /GoTo >> +endobj +841 0 obj +<< /A 861 0 R /Next 732 0 R /Parent 616 0 R /Prev 838 0 R /Title 862 0 R >> +endobj +842 0 obj + +endobj +843 0 obj +<< /Filter /FlateDecode /Length1 6916 /Length 4896 >> +stream +xÍ9kT×™÷ÎhFBo âå4ˆG$ ’’a›×Ø‚xYØ(Æ`À&qLÆÆØi“¶qì´vÒÆÍc9Ng{ +l³qq›:=µ³›&Ý´ÉÉîÙ?=§´ÛGÚ=± ûÍH»ÝíþÚ;ºóÝïqïýî÷}÷»wàðØÄ R¡D¢¢þhxIEûGöþÉÃl §"Îî‹Æpù]„èëûFŽÅp]5BªK‘Á0ÈIøÈB Å¥³#ÑÃGb¸öÀÒ‘ƒýq¾Ž<#>Ÿýpö‘pt ”4ÏŒóq!™Rbý­¦u"j„õH4&–a|,=° §ó·g©{uÕŸ¢t…4Ú;¿¼(Íó³ssÝw~uïCåù%`$À±ãÊ/Ýû!åÍ;¿º£P±,š…Ç6-®Fn¨®Ä.T\‡åØuµ‚yw[-à7  +@<öô¬èXp@@7@ÀB€íˆG38Ïà&£1ÆC;a$Œþ äA%\ƒŠ ‚Úð…:õ¨²õk¸æ ­Á@ÉR*V)zª „ˆ…:ƒWIµc›Ã`:x3PB=õ˸ø*¥C‹¸ÐóulúËëÌ¿/¬3¿øÚ!æß>(d>|˜ùù{™Þ·3?{¿œy÷VsûV„¹yëuæ§·fÝ-ena[rãóγÌo¸˜·Wv0?Z 1?\ÙË\_b~°e®­Ì0hE¿Â®Qv¥h…›„H!¶²+ø­å柗«˜7—Û˜ï/G™Zg––Ÿ`—2-ËxqýÚËÓ'üŒ<ƒ|W ÖùEèY_v”ø¿»dþq¡‡yc¡Ÿ¹º°Ÿ¦˜ï,œ`^_èf^¾|ˆùöåiæ¥Ëg™.f2—.V2߸øUæÂyž9¶ˆ™Ã§ù'IóE2Àœèžá¿0?Ãï>Æ?>ŒwÃŽcîc½pìö±õcôÑî)þÈüÏL}yê…)r +OóuOóÎOó£Óx¶û$jþ$ÏœüòÉN’'É1¾e²w’˜„Æ#CQ^ˆâ½ÑƒÑãQ2 +”ÃÝcüøüï뛓ùCÝùÑùƒüA3ûA©áÀ>>2¿ + ðƒó| zyO/~8ÐÅwÏwyšøÝ ¸+ÐÁóó|{ •o›oå[i?³3°ƒßAZ™í ß<ä› |ã|ß@ؘ@ÀÏû±É¶(Îbf‰ä›â¾BDäÓ¨Ã\”¯·EK·€gk»øö´v ô¬€ø®îÐÆ_꼚† olíŠáO>õʬ +™í¡«ä‹/fÖu…±íñHíu±@¤sϸí¯Ëý4±=¯qxÄŸoöÁÐBPE(±m³mðñÄžñÃP%bL1$ã± í—è0Éa˜LœO*"4Ц ç)ô4zÍ£wPÉÃèQ4‡¾‰ÞDtÆ{Eçßç +ÀQtξÓèô+š€µ|†ú(:@Ù×ÿ„-ë¿£”ë¿–_ÿ.^ÿ=R’‘CÏ`ˆïhokmÙ¹c{s°©±!à÷Õ{ë¶yܵ5Õ[«*+Ê]eŽÂ{^Ž5›³0f“A¯Ó¨” +9MÉH#»ó÷²BN¯ Ëá +Dœ !|¡W`äPF`Å~a`= éÉ¡¿ôÄ$=›’XÏV£ê;ëãXáf=Ç.â®Ö´Ÿªç:YaUjo—Ú² Ñ’•=XŸ9RÏ +¸—õ þÉÈœ¯·¾ÀŽTJ/çTØÑ‚RM´„ÁÆbÁ¶Í °@Yõ;÷)å¹Õ_ƒÖ÷QÂq +mÕŠD¦¸ÄM3 8¼ÑF hëËÊu9³èA}€3­¡΢¾ô«Èã°u +D¯È¹¶ÁIâEÎÌg³{/–õq¾Þøo2bfúØ;xVúY™ø¬@æôöõGDœãêa…`KÔ<õÐð„ãÆô-9@>Ü ‹ÍÐܨ`âêbÖ bõ ·‡¤.1ªO0yÔÛï%8|ÐBÄ7':FTP‹k -!çú' ¥lúNTŠ:E=„d/8%Ç7˜ÞôˆÏ!6”ž%x:Á|\h°Sô§ò?é €¥^°¶¿Þ†e r«‚ éd§è- °~xquÕÀÐ t =ZW͆p:ÚƒYâbëq!­Þè ºzÒ³ ¸¥ò7TJ-Ô›:É@ êsbóüŸªÅ¤E…òYß`ý} +>0( ’‚ñÑþw= Ñqc€ + +Ñ â +ì´Y`+Ö)‘D/šYµ°!nëä †<-!Ñ9¢­%ÿÛ¥„äíx”t„îÇbüŠM^¼%ÀÝ#$øm’SEŸJx@Â7ц¿`7n°Ù9lŸï.\|@ÄÂöÏÐ9á3ÆRØ©~È’œ?̱zÖ?^\Ÿé›[ðxæF}½‘*Øs\ãÀתGJ›þXú´8µq°£®À‰§nó­ <ÛÞZÒ#ÄÎv„®psê­ë\È^h‰EÈ#Q ‘*EVDÄ‘ÚQHòéK„f$®L"Hxÿ"F-&4Œú‰M¿!GM£y$Z'Ø^æØ’°}óXgd®·SÜY(ü?,`® W»€ Z-(¹Á:AÅÕ‰t·HwÇè´H—suNƆ}nÃVœ/¼ +WˤD®b#ƒ«É´¨êÔ¨-Pß„:õTÔT‘?U”éFVûbSÃýd àYH ßw*ÀÔH×W|/Ê€&–g± ÿ!n ä]Ùˆì3Š \T-u$ +"o ˆ„^•h;jòdȉª«õÚ+)õð˜}]!ãÀ$WF“­©†F· #ÇGôñM7Tƒ±²;>úèãU±åpèWáùèVQ16d¤jÒr¹‰æ,…DYn©Ëé,©%ÊJs8‹–h¥®òZÒY²… A2F©%$üæÝ0Ù~÷OIJ·…J©ä$¥VIÉÒ’LÅÛò ¡¾\w+'åI)äyåÞ,ß×ò ­M1Í:šÖ™†-Üî>û=¥½S!;qçq2¹z‡Ãÿ 2Jv#%)½Ð“Ýò°!É@&èÔêD…<Ѩɩëº÷ØÆqŸÜhjý·äT&$Ü4ìñí«›ª#Î9q’Óê,s’2'~¶_°cWÞ¹<"AÏÈ1E>IŠ)ÛÜ·Õê²ÛHÝXu£¨ˆÊ¹‘Ø_ƒFîU÷ª±Ò±Šõ¿'6ô«%EÅ={z6 Ž™DVVZ+“ÐIq‰Æ“Ǭ&/-«jÚV«%È7Š"/7OvVçLE;'_¶6¹mZZF`J©PYËw” >³§Ìðµ=ìŒ~%dI«Ý×ü¿3am8hñgáoìxþhsnã¹o÷îºrq¶¿2AkT©Ô:¥Ê¨–kÚŽ/-éÙT}Õà©;Ò”¯KãLgßšpVv„€B=`«×)å¢r@?òÌö_ð¿æ'OÖŸ«¹žô»w¹‰W«ñ…j<[›¶vm%^.ÄÏâ ¶×lD×Åå8)ÚAÈ2pjr~2¡LÆ.hvkˆ +NUä+•—8™È!ŠÀŠ¢Û¦¼Û[tÜ<ÊŠÛ,ìºÛÊNWöNM Up#µßw¿É!jõ¯¾×f‡¨…—¸EÅ÷Ù~Ó R#î ˆÜZ¢¼£¢Cä[HRr¸g ‘âr%–«%“LÉÎùúÖƒ/í}>ºÕÞ:Ѹ­ßk)Üó•þžÓ]öìú~Ïö©–|!ËÓ³õèqÆöŽ?V”³ýðö†?÷ܳO?‹ëÛŽï.Èo™hö ‡‚ÛÐÖSæÛít´ì¯r…w³¬A¾—8T,ˈîµ5yÝYOÝ;ïl x­œ·¡¥øÀÔ”»-à·À‰È†&=üpÞÑeÀ´+4xŸzJM,*p‚Ëṓ&Óu1»²×•öô%]»u‰Ú%ÅrܤÆð_™O´D­LŒZÑbµ2ò­ÂWŽO¼4XP¸_„C3:¶Ø*ïÔg¶4n¯ëó¦)‰Ó_ùãB?ÿꟿõ̧¼ÒÿÍÇ{j2{ž{ÿ×>8ã}¨92= š½ axŽJ†üæð¤¡ü•-Œ›Vé!'%ßäÚòõKt(]â¾÷6vôÜìùaóÞÍ¢b«¸Ã²Ä\%z8Ë@ÑtNŽätkl¿%¤ÜtŽVªé{£´JIS j9fÖ~£7©e fr‘J­^e0ké?É5 T‰6QMQêD­Ú¤‘Ër^Q’ʽ&’ÙÛ„ŒÄ2ZIßÙ/ט@ïÐû xªuxŠs‹1UœTL(N§^H%ޤâ#‰8ù:$«UþHe¨¨dÙÊôeg2]Ø®¯\Ž/ByÕP)F4v¬ÞŒ¥dpH˜VX\9®…0Ž%xÚ¥7CZž%&ä3T‚6áž/A¯¦ Z !Ð?Q›ÈTwV¹‚%jZ)' ™<¥¼c¨¼ûT—=É÷Dô×D‹V¡NÒ)hM²NcÒë°9rù‹#EE»·år6ŽÖ˜4j½Fm²p©®‡zk}Fÿ³\+®ÿDêã°þzÒÓqr÷¹ÝÄÄn<¹ Ëwá©–S-Dy3¶6cY³©™8_ŠO›/˜‰‹û¿øúŽöœžœ;r<¤6ý:Òvn5l5$»–ÛíË,K5¶'/ÇÂT̸°Ý ¢mb™7Z8¿þ*Äw=]ç$vtÉ6©MÊæiVû¹“ 1<^>ò­ýžÑÝUZ8©4ª„òÝãþ†‘&kQ׉ÖZ£’ÓJâÿP‹-³rwUÍÀöb¥dWZa¬hlí|b×Cª½‡Ú8Úqv¨"y «VëRô[’-y–ßÞŠê°?lªÓ$jèœ@MAKµ%Û–-S'T­Æ˜m1uŒ{k´W( º´- +þºAþ¾®‚ÒêqÌfàጣDC®ÌÀ…Yú•\ ËÄ¿¥*PÁõdGnzá’Ì–¥×+³Ú”¸å” –ÄÝ•VÊ2¸¤À"OÕ?v%R=ÒQ¦¥d)‡°5Eƒé.§½ëôÃn>;Í̤¹âÞJ4®¸`ÙØkËñÅ}/>R™˜šªIï«MZy“Æ5O´û‡ýMj6¾›ÁÀÆÒ¤°kCQÞ7‹Ö×7n2 vm5±ð*ØŠD<Ͱ–5s\å8 ´•² ˜ ^…­N­™)µ1-1%UIRøî½ac"¥Ô$¿ÒáfösuRR’úÎ j‚¤Õz•lšMÑ€N4lm˜7~+€yÅÿC¨|tözªCQOÓÉ +aÒN*óðî5ŽPqX1gyÞB$XR-ùr6í|‘Ÿ†3‹Á_Z´õºÕëYbY¹ké¡vó’> +stream +xå›y|ÓU¶ÀÏýý²§i’î{RÒt¡KºQZZhèFK)´´Ñ”µ¥,EÀv +e_ªŽÂT—AGÀeܪòk@ ‚‚Š:*¨ãà2®àà#PqÛ¼s'-Ë,oæ½÷yïr~ß{Î=÷þî=çÞûKb]ÒÑ9ôÐ"d¶,jnù•€ÈlYºÄJzD€jÃÜöy‹H;  ž·pÅ\Ò“Ýû[ç4Ï&~Fæµ¢t–‹Lh]´d9éI s¶µøë“±ˆYÔ¼ÜøuëµÍ‹æÿˆdr{Ç=Ãû…§ºreXg€I ”}0šp¤?²bÙÂëU99·Þj<0ÓXôDjdó¾¯Væ…wïên¹ðaÿ]”¦hA«Ë ÞÖÿ!€nÇ…Ïߤ‹â–Ë^Vüjl¬XŠ5…âX¼Þ,f½((DÌFY‚rE!¦‹Ã!,bšŸ©âpO¾%᪡ìF}ÑhKªØ+b¬c[Ä"È Á%ŽB ó‘#‘yÈÈ\dÒ††ŒGZÁ©¢G´€_ÅÑT‡Z!ÚÄ,h@äR®_;‡T@ˆ˜e('PDuúe ò—(w E9‡¢Á¡ÃsñŽ ÛZÑÛŠí­Ø¿çnÅVP ?yâb-^áGO\*âO\â{Âw„sT÷-iß¾&œ%œ!ü•<û§Éøá/„S„“„/ &|A8á‰Óâ þDÚç„ãžØ 4óÄF">óÄ:Ÿ>!|Løˆ\>$í„ïÞ#¼K8JøáÂï oÞ"¼Iƒ8B8Lxƒð:Ýö5òüáUÂ+„— ‡/^$¼@8H8@}>OxŽŒû ûÏö¼„g{Ovv<„^OL6FP"ìôÄä öáI„Â㞘,tyŒð(µ{„ð0á·„‡ æ÷v¶¶î#ü†º¾—p5ßJø5ánÂ]„;©Ý„-„Û ·n%l&ÜB]o¢æ 7º ¿"l ë 7n$ü’pázOt.Æå:Baa-a a5aa%aa9aa)¡“°„°˜ÐAø¡Ð扃¸–°ˆ°°€p a>¡•00—0‡0›ÐB˜Eh&4ff¦¦¦¦=‘#qdnÂÕ„«.B¡ž0™PG¨%L"L$Ô&ª ã U„JÂ8B¡œPF(%”Æœ„bÂÂhB¡0ŠPà‰(ÀùåFò#¹„B6!‹)Cdžˆ ìÅAÆ B:!JNH!$’‰»'¼;K Ø<á|£ó„BÄ“ÑJ°â±„B4!ŠIˆ „¡t‡ºC0ƒf‚‰`$ „‚ž #h©O AMFAIPD‚@`Á|„B?ágÂÂyÂO„ ?È·eßË3bß‘ñá[Â7„¯ g g%ôN¾"ü…pŠp’ð%ÝïÏž0›Å˾ œð„áÎa"|î ËGí8á˜'¬µÏö„•£ñ#OXâC P×ïÞ£ÎޥΎþ@x‡:û=µ{›ðáMÂÂaÂÔîuêú5Âïhð¯^¡û½ì +Á‘¢/Ñ^¤Q¿@$ ï¤æw¶n§!ÝFž·’çfÂ-žÐ:l·‰<7n&t{BÜX÷+OH#bƒ'db½'d:â&OÈxÄž©ˆ_RÝ äy=¹\ç܉®gå–3•–c-/¢¼€rå€þ*‹¥EBÙ‰òÊ“(O ô <ŽòÊ£( <Œò[”‡PDyå~”(ÛQ¶éZ-÷ lEù5ÊÝ(w¡Ü‰rÊ”ÛQnC¹UÛjÙŒr Ê&”(cµÂÏÂy¸ +,Âd+XØ:O0™l­'ˆoÀ%„Å3_µ„_Ú m„k ‹ ׊…ïl¡€OIÈ#Œ ärÙ °—e2 A3ÁD0 &ÅËz‚Ž %hj§Z圊ü+JÊi”¯Pþ‚r +Óùʧ(Ÿ |Œòʇ(Ä´|€ò>Êó(Ï¡ìGÙ‡ò,Ê}˜Šß xYEz¥ÇÌ7Ç + +ÎrÂ2ÂRB'¡”PBqKpŠ c£iÊ¡„B0Ç^QÓòÐó¢€_î8„"Š@cYE¨§¬O¦‘Õj “ 5„ „jÂxB¡’0ŽPA('”†âiðV‚…Gˆ%Ä¢ Q„HBM3œæ¼§Ûò3Ê”ó(?áøå”ïQ¾C9‡ò-fõ”¯Q¾Dù3Ê('Pþ„ò9ÊqÌî”Ã(o ¼ŽòÊïP^Eyåe”C(/¡xQžÁŒïAye7Ê.”{yö…~ŠñÂjÂ|? +±VÂ< +Ë\ÂÂlB a¡™ÐD˜I˜A˜N˜F˜J˜Bh$¸ W®"¸ !ƒBNH#¤†RÉ„$B"ÁN¹I ØJ‚‚ £ Î0I>””“Ø÷PÞE9Šò”wP~ò6Ê[(ob ÷¢Ü(Ú-¿3,7° Ëõ•]®ëzº\ë*׸Öö¬qé×®©^#ê×D#V­éYóÑÕêÊ•®U=+]Š•!+ÝŠÊe®å=Ë\úe,`ie§«¡óDç¹N1¤³¡svç’Î;:¢AýPçîÎC¢×wÐÔ™_XÑÕyk§‚õt2#7Çwê+–Tv¸÷t¸¹Bá¹v¬ƒ ™¬¶£©C@¯] ÉÜ{DGXT…©#³ÃÙ!þ¢²ÍÕÞÓæšÔÖÖ¶®m{Û6庶ÍmÂN, Î6­¡âÚÊE®Ï1Ø/øÀ„rPðyD]Û>aû8# 8}là ÄüŒy®Öžy®¹³]szf»Z2f¹š3š\33¦»fôLwM˘âšÚ3ÅÕ˜áv]þWe4¸\= ®úŒ:×äž:פŒ‰®‰h¯É¨vMè©vϨtUõTºj+Ù¸Œ +W¹˜gÁ'Äá»=®+îlœBßÛ+´Ç‹=+¶ÇœÖE3cÔº¨ÍQ¢/]"-‘›#·GîŒTå‚ÐÔ$´›»ÌB¦Ùi~Û|̬ó³`ÜlÜnÜi'gÏ}FÅN#Ûx ð­@qRàÌÀ¶@ÑÈuÑä ÌȪ0,ç8‡A,rŠ “ âfs2²+œ†„¤Šâ€I3Äí̘RqFçÓ NVœÑú´‚OË@dVÆ€™¢s³›…Z*ÄçÐøËc·BCjµWí›\-ij§Jlƒd¯çWgÝIµA×”©î^ÆniìeBiƒR]7…ô7m‚Ø’j)¶Þíwìˆ-i¬–ºxÙé”Ë>^tiL±¸sñâ%©‹Sñ‚2c1Z–tâ[Ã+–;ñÂK€.©ÿàÅ=°½e§Å3;±tF3ï½ \á.ÿ ‹ÿ]3ÛÿÙ‹ýŸÝùÿý2_Õ´äýáà‹×é∙3䟻ÕÛ¶\òË÷upüzàix^€×áð-Óáoî7Âøü¾ ¸oÕ,”Ű”KÚý7‹7(A<*ð÷xÌw +‡ÀK,[P W$^´ø‚|}WÚ¶ xÞTéÁ$·5 o`ogYŸï¼PŒ-M¾<® ëyY¾ÓYõ¶Û/›@;t@',‡°VÁX ëภÖÃøÆb–o†° nÍp+ܷøànø5l…{à^Œã}° ¶û븾 ÿÝ%×òšàax ž@>ÁoáxõÇ1úOÀSh# éO¢eÜÖ‡Ñ{=OÂNü'A/x`ìÆœ‘>¨yá ìgÀ {1›û`?<Ïcbf_”mÜ2¨ÿcOò ÁËð +¼ +¿ƒ×pe¼‡á¼ oÁ¥æå¡^xoÃïá\kGá]xÞ‡?ÂGð)|Çàs\u§ÿ¦þôø}>ñ{G¯/àzöaOÔù|Œ}‡“rG±ïcp‚ià;&Àða‰gï.9C[å<òì݃y{HŽ3ÏÇNÔy†(ê<7ObÌŸÄüòÌðò=þl<…¾½×ÁHó(ÿmlÞôçŠâ½}x,x<)šoc„)g¼Ÿç‡"þ†'œÑ‡rq1 <†<~ïÃ`t>¾$†_ÀŸåÈðè~ ÇîãK¢Ç£|#ȳÀû¸<¶Ÿc[ÊoËcÎc:؆×}ˆú)<Nc¤9¿’3ñ|9TþÒ_ß…3ð|= _ãyò-œCý{´œEí ^/·^iù~€á'8üú/Ñ.-óš~Àã &0.–.Zy S0%SᙦaZ¦cÌÀ™?®¨¯¨ÑÕ˜ÿ¦æb«‹uZ¹Ÿ ÌBð¼ g,ŠEã¹Ë★ųaìb]äPkl,ÙýíÂä–‘Cm-ø1*Üß ÷Ma™l^SYs`9‹å²l$+@K:ê٨ºL™%P ³`!œWžã¸BðTé½ììû7åã +;|?úJèß/îa ì0F1|˜Ñk™v(gÀe»ï{6Ì÷µrœï´â¼ï4Ëò¸Cœ‹gÖqÅXí¬˜9cú´©SÝ®†úÉuµ“&ÖL¨_U9®¢¼¬´d¬³xÌè¢ÂQù#óF82ÒÓ’í ¶a–ˆ³ÉhÐë´µJ©iå¶Š&«”Ø$)m••é\·5£¡ùC“dESÅå>’•·kƪË<è9÷ +O'y:‡<™ÉZEéiÖr›U:Rf³zÙ”:7–7•Ù­RŸ\®‘ËŠDY1 -¬å­eV‰5YË¥Š¥­ÝåMeéi¬W¯+µ•ÎÑ¥§A¯NE=–¤d[{/KÃä‚\>ªWßVíåͳ¥Ú:wyYt||£lƒR¹/IU*©å¾¬ó%3ÜlíM;ؽÑk‚YM©³m³›§¹%±u‹åÝÝë%sª”b+“RVžˆÀΑÒleåRª V=yèLRÚM6k÷w€ƒ·õÆQ_biö[TvÓwÀ+ù‡Â$±æÁ2àØp„8¿øx>–›½N˜…ŠÔUç&Ý +³¢=àt¤6JB¯98Xêâ5]ƒ5CÍ›lÙr[y“ÿ½´5BêšeMOÃÌÊo»¤°c½U›fµ´r6Ïé¶•á 1–Ðà–œeXp6ûƒYÞ›é@ÿæ&œÄ|†:·ä°µK!¶Š6°{ùüz·Ü„¬åRH©M-þV’£Ûâ)ïæ‰áä}ÙêÜ{!Çw¬7×½+r¡‘C ++Ť$–w»gÏ•,Mѳq}ã%g#†¯ÑæžÓȳd3I)ÇðvøÂÊ­pnWx:ã´%µ]cu Ñb#Ϭx±•a…IR‘Ê3ZRdu³htûø=xé²~Pí¥•Ø‰MK+£ãqq˯2¤hšCÒ IƒP^Ýç¼ù€R¬åsÊ.àe¢"ÐßÛß§ÀcáAÃÓYÉçž&`ÙŠÕIÀyÊ&žÅ«µV·mŽ­Ñ†kÈYëæÉá±–ó[]oã_SålûWIÃeÕçSñÕ îA¿äº¥ŠT9¯<­²>NÖ‡ÔÊ+ª««­Ý[u}7¿¹Íß!XqarT‰UÍ7çåâf­ÀƒÒVÑl³š¬ÝÍ^_׬î^§³»½¼©unƒn[Õìn[½»s)ïû5Ñ+ù­ƒ šU7”¤§áÙSÒkcêzlCý÷^ü,mÝÐàöø½©¤±7ëÜ{­NÙ*p+7r+WxO“QÑÈþÑ{]r­B6Èz‹—l#'´1hñ +d3 ú hSÍ)Ûñ…;,¢S€çp¹u6OÏêÆÖî¦F¾¹ S‰o&1ÛÛüaA élsJ$½­„Û‹¹½˜ì*nWÛJ$Æ08^<“º›lxNá’sC4kÄÕaâ«_°[½>_ƒ;þHt_cpáVç;³ª¥÷Â`‡èR%i±­¿ô¨ÛðåˆZ07˜@¹}*RW£Ô˜ÊoêžÏGdµš$¨´Â´SŸÊD~#Gcw-›/lt•töõZÔ»É*Þ \>#u޼ņU-MVÌ€Zêq©ÓYªãyCË<‰sdÑEû+OK´ë :I›â›—õØ!¾Õ>yY[ïwÀ{›$=Ž(ñ’Pú`t°ªŠßëqðÜõÞM&Û–ãÑÈ-ßJÕ’Á^ÕŒ‡?µ×£Å–?ØûÒØ¹‰÷qˆ¬j>óŒ»hoðú±­à'Àà+=ÍÆ|aBô^\ØÐØ}¥Ašššž¦¹ÒjÍÝÝÃßo@ñÒ†ˆ½€"€½ ~ ›%°I¹jjÏ~€ŠjX«¨JáX+¼‚߉«a…ø:„áÈðC.^ñOäðûí0d<–ø÷Jüë·@ :ôñ¯»T²~#eyÌ#T‹aâ5âYÅ,Å1åRåתüoî‹á·h[@ L„†ý``÷áWôQìÝeeštõó¨ +`eo`ŒÝç V†èèbÛÕF±Î\U¬Þ(4@qÿ§Ÿ¼‚—#AŽ#ÌñIß{}¦þWÌ޾£}™YÌo–%$PP«U*Û° aDRb^NNöaDn¢mX  ÛróFŽs²ã=É2Fà:?úy’XÞŸ ¬ˆ/¬ÏR²T{¸%X£-q{ŽÕX]cËKŽR*4*Q©Q'啨\ËÆ{S‘›¡CÆÆ û_TžÿFxájEÙ…ýÂÉ÷˜Õ +ƒ^Pj5÷%Ç…&dÅŒ®6 ÊÀèð¨µÆ¨^ÙÜ¿5ʮӅۣbì¼/{?ÿ;¼M˜¹»4xŠÿjér÷F%y…ÛFm°5؊ɈŠ0Ù„¨gY +$úNî1°šÄDU¤×wr·í‘^–áÔê’"¸–„šÇ©j€ˆâ¨¾Ôâ¾TŒcj_*s8‚ + +S_vfVôžÿ3³í<¶ñÃG˜sórâ1¸¡²Á|E'§3jû—Ƨ§Ç 7iuJ¥.P;ÍÖk¼lÔ¬`ïðò< ±>)MÑš–¤‹LŠÃ@ëéÃ1ô‰áº-úˆ$À´Éw^!b¼b Öú#– Ú'l3Ä +/8µ`¶Ë±°{Yê.•*À6*v;Cë\ ÍÑ>\þ­vÆ'l3®1ÊÜ næ‹R!–]ÿ\×BC\vRbN\@V2Ëʨ_²¬!m /³¢&¥}i±+/F¼qÑ£‹‹Zt&J…ÅF‡C>fæºYeîáúªa£]8ïZ_˜r‹ÒIP7Ó¼wé⃒½Â‹ˆÉFìŠ×Òg›îeÓœúðz»b¤Ž‘^6Ýã4\EKãèyq0ÜY‡úpqàºØõï7Ç (ýÓOòïÇ\Úi|1¨ã”ŒÇ·ehHnÀ1‚r‹: P¿`õu#3n¨½ûø]ÕµÛNÝsÛg['…§9SÆ4M +Ó tXkºšš¯¯·Nèjæ\•¡N(m.µÔâ{4 +f1PÀj´è ýÉSÃÜŸšz¿©öaù*›þ‹ÓSûfLÇhg‚Ñv`´ÚÿÕ[ËËUe‹÷熘":BS–”'¡jqOJBÿñèÂécKfWeµQPh £¦,)Y¶kyᘥ]Ó¾}næ9qêÌÌqŽHÏH+˜>vXpx°:(>2Ìf Œ7­|vͲ7V”tî˜a½fEÂèzfeï<Û¤œˆ¿ÄC)eå„ pC‡ +MøÐ±°UO;#MUÊ |›¾ÕÇ×(žþø(ý›ªÁcˆ?̃ÓÁi%ŽÀS);Œ­ ˆÍ´Û3c<¦ÁU8ÚÕP4LGçN\©3êU*½QÇ2'ŒÊ¯šPX€çòZßyñ\=Ù°ÎÊ Þ‡Œ½0Óq&¯ïì.=«AžÜ€g¯ÉËjœzgúøá‘ U‘høÅAü¤ñŸ2|—íÅ_–ÿ†—Ïo&•ú’Ç¿ÙBóp²˜Qñ€˜¬{VL@pBAb欃³ÖE¥X¬ÃÃuã·ÖO]S3lhî¬ìø±¥ý;‡¢±z°4¯¶¶h^w3æ¬ÒwJ¡ÀXãéÓ6˜³¡?ÄáU‘ŸFQN­q¼M>rðÀñ8•òŽŸF3ù/6W-²<¿þôʧë%'ŠBQ´Ò»j™´$ôÊgV-—çô‡f×ç7äE‡e5Œ)hÈ‹b§:öo_²Ö»´ã¹õãÇ®õ^WÒ69#eRÛ8dzÊÄ6Ê·°ç˜×úóhô +MΈ2ê,:‡N4ˆ:~`Îu^VïÔ9SÇ'C­U¡òBÅ3”gw=sê£LëþS÷K&ÈÉ¿—Zù“ŒJ؇;P§ ‰Œ +žŽ ö/ëÁÄÚÆäãAgÐ+‚X¥SkÔæ„¢´þ£ƒ ‡RÛ–=6Ñ(ªµº€Ðá8÷pßiáE/Œ‚ÛhîϘ͆°¥{q­‡_öP±ì²UÆø¢ç8 ^†ÙY™åeã˜þå>hõ+äü›åM >gp)„†Ò1¦âá0þxáºp‹>ÈæS}må°Á!ø Cw>–vÅ‹<!Á/e†X#Íj•^¥\™æÆíŸ8iùdöšcdlr¸îUI¯TêMXOŽé˜^U¥ÖªÕ¡ «øT9,¾‚çÂ|ÿ:Ñ'íø$³3Æàôª$½2²*AÞ x&ìvÖÐaÀ?’ñe"o¾Bœÿ‚7Å€öÀÿCvè¬3ËçyÞÈ!ƒxX™b‰O‰À­>yÚššxyêxþÙñ@h©—×MLÀÐ Àwyë¯æ +C†M…|$uƒëg6p§¸g-4ë=L« „¨h¯P²;!Já;ÎÀ(KU¤.¸JW­˜Õü/æG ‹tDÂ'Ÿ‰?þpEá³ø»¾8ßx‘æ92811‰%æÒéœÌS¢nX¨­­IÎŒÔË ¡Ê#†ü¤›¨~G<¨ +N™Z­8¦6E˜Yª*2P̵ÙC5b@dxÐeÖhÂ쑘5A(ü¥Âó ÆòWyjióÂù³:æ§—´-äÿ£ÓÈ?žÆ +endstream +endobj +845 0 obj +<< /Filter /FlateDecode /Length1 22008 /Length 11130 >> +stream +xµ| p\ՙ湷Õj½¥v«[Ö£[·’ZïÖÛzڒߎ_X`c[caÂ;äEœÚ@¥&™²Ê&Ô&Ù*œÙM"pNe“ 5xfµÈ©B›ÉsÀÒ~ß9÷ï(dCՌ฿>çÞsþû¿Îþsnß4óŒ*Rg”G¹þð)¥ÿ|û•²>{äý7EÌwÏQ|ÎΞºæz÷û“JÙ?ºfî¶Yó=›RÛÔµ3‡yÿÞBé½ú›²ºñ»öú›n5ßs¿„Ïÿ1wòˆÛž÷¾¸þð­îøêy|œ8|ýŒ¹~ïßá³ãÔÉor¿c<õW§ægÜë-Ðkç›¶ÿZÀ­j7žü¦T9®T¾ˆÆ¬±Õºýþ©;•ýVUyþë¿ýã—§ùùÓ[Ë/]Xú™ï{9wák>®5¸ÏóÔrRÕæ}ýÒ…åVß÷ܾÝf|´.ª‚”õˆÊQIU”²ÃG'J½ +©4¯I=¦Õ~µQõ¡6äÖ4©IÕ«šU]¦¦Yµ¼í.õ˜Š©÷"é(®ö¾££„J¿ý¶GT +¤øS‹Ê‰L.«œXT¨yd(›tð(@'(«WUªL奅jP[ÕZPU¥¿«©9µG ¶—àꨪQkp'¿—‚â¾—ãN~/Sqz6²!ríá£çrâú 3g§Ú#çÔîýÇðïžýÑscSá œ™šD?9ì·àò³Sèá:·|êªöK¸ÈÛ²5rΓعÿ²ýçÎL„ÏML…£ÑÈä¹ ;÷Ÿ»0ŽNMáªÜ ¥ ˜ +khöæÜf´ç™^v£t1uö,ûܽ߉ž»pölø,žÃý¾h©wVŒ¹xpÜ‚Ÿ\´ÎìĽøp¢aV8Q' +²¦&0T~ËÖÝû'AX”„üyfèÆµE ¶Ps¸øß‰Ã% ‡Kÿ"—e(}‡ý ¹Œ^“áðXøœZÉá3ï`¨úwgy`Ë¡æö~ÕeÁI¢tZ¡å?àsÒnQ=(I”JǾoùöµÍþ'”ß«>7ãºmöˆ®ÛhÿA%ìû€ùy—ŠÚ—©<\3{#úþ#èýXkU>ÚÜ7¤þ/, …u1ûˆµ¦}*bmÇý¬÷©|O*¶«T°}„P8YøE*×:‹ÏˆºàÖèjýíÎMü’£k¼*Ÿ>•§¿­þ'GÁÙò¯HëéDÁY*¸Z?Üd¨Nˆ“ÊŸú«@e%jµ +ÃM×Â9ó¯%/Ú€O<®ðsª .ê?â/õÑéÿ·Ï}Å„šPŸW¿¶Ê¬iûSž£ÞßßÏóNåª ¯ ¥`_áßÝ[\V²¯¬¤lCÙâšœ5/þ¡üwÁ;B¯V|¡RUŽUþ´ê«Õ_Gj¾P[Wû@]oý¯£o9ß™`,Ñ…ºà=àAÆpUíðË(yeð]QÚFsãoP[ö°òÁq;“ûá?ÛÃC :G¦Ü +/+¼*52õ0(ã–ÜbutÆýQ¿…b«¥£Ö?,©.ûØ¥¿±?{©£[ªsyܪ³Ÿƒ^ÜrjRˆ^rRç¡–k XD¥@P¹Ô¸Ы¬ƒäCwŠ ÿ"Õ‹²%çà¸Ój‘b¨häDCzóH^žŠ’^]¡X¡TÅÈTGgE›§§»·/]bËCß­ëI†¶N}¬cö†;6Ýöêus/ÝqÇËÇqƒµüÌd¯hzo8r +9(¨D¤òˆò€òI¯Se‘ºN2^ˆº"(sµqE‘ÚŒâç½à¶ÿy¡Ô%,K©Kº¦4Pç –çúœ«§;‘Ü[׬p)µŸë¸F“zì8I=àí$þ½ˆ‰Ü£bçñ•aXNJF²É[ÈrßêèìKÉO|âcã½=øç*ûÛ°áÏCE3­¸×w}†Ÿ>væcgdƒ5-°D`;nKNÜbß1Ö›Zzˆ€‚Õ £3Ð5b÷¥ýŽßé‰Mô%s.ü7{SQMKäÒ„õ+=Bú› j´^_TÍíçáN +áN($e¸^Á“›Áäºç1Àmp#¬PÐoÕŽŠ4.eõQÒP,àç¦\p=xª/>3РÞк£@ïóUá[Züù?‚ñƒZüù>ÄŸñçCüšÌp·Ü€9<‡î³žÀ«Æv¢ 'ƉЧ X3& nQ?L9ïtÒ(šßó¦Öšs]<¨¾až€7<öýCå«û¾†Bžþ= +Ì‹üIša?.€1¼îeZ׈†UQ)ªV[´dQUO%Ê"Ÿ¦Ž¡h>å0BnDéGÙ„B3¡ Â(PÓ&kÄêñôu·ÙNC‰ísºGìtW,/ÉõEmïRƒµkcÖ‘F+¿º-ÞÐ.¶æ¡©kÇöõ„ª[ú‡†Ò Ÿµ÷ò;;ªÚ{G›©xU¸},>xdSSóØÖ†æ‰ŽæD¢©¶Q +€ xT‰uü<|…^AËÉŒ½TF‚»E5î¦àb¨œZfáÓwQ_Q`.ƒyè{æØ¡{iYÆ’m…*k\¹¬È5Æ–Az9ðÖ%èW±ßzPª¹?J@Z +8# šú +íÌÁMy¼i‡66¨-³Qh4å6³«QiÐÑi¡¾Á´n0+à›ì÷›ÐoàiY3ÈÇ6€CªqŸÚúHìõ(·]ÛU–p‚NO´ÇJûÓ§ž¶ÿ¥§­–¹+`£ÝKó>xƒõå¥ ¥œå_k5ÙÏ-ªü@%­Ð~À¤gŸŽ ñe Ї4|‚trÄ×Xs•€ ðªv€Qmu§Y;m}à1Öò¦'YKð÷ìø˜>õ9€¯ pÂÑù‘Êz/‹;ñj9áî)SC"(!â¦Ö£nð#¼pðò(š¬Ã¬G7>º§Àé4Àz”Ý(šˆã¢„S€wPbºH£À à£~”0UƒcìÖàa¸$×ÓEàé"Æ‚óªPšPP6£ÀÓ‘†FÐÐ ×ákî¢QG#£NÖî˜Õÿ5Ôÿ5Fÿã9g"§åDNï §Íä¢@½+JNÓJiÀ’F@WKy ·’-h+£òð´yp1yXvç©( Ú«öÌ¢ØÁÜWyþ5úFwÆJÓïÆנÓ0;e_aôF_aôF_aé+Œ¾ÂèËØQJ(ûˆ‘¢G¥|ÄÆðè` Œú*F,×ÏÁñµÙÉt¾Ø=Ú",¸Ýºné1»b£Ó½«¿6¼öÀXúòuI{Þ;Ñëª/.‹¤b£%óö·gÿÖ®;£ûºš§6·‡{wô W6÷Gj{+Ãqe/ÿ,ü/˜[1í{þù<ÏÄ™ÕÂìAîMh\s5_ø4¹K£ØC@5|Ej°˜7²¦³Ró‡xû6¹¦JjÐ'àKT‚ßHÍÕaš¾/L}P@‡€EškžÐbDÍó~)àJ^C7ËçoûoRƒõ¡izVšn•šo è‘&¯ÔTiw Søªp45ºÖºrrÂxP[­ý´çÅë¿`Ž­­f[`|q)[h¿­Ã(ÚáÞËZ>Y…iöÀ©pÞ0¦S%Zw/ÓŽœ VjN +@8e®Ù+ $º‘Q$Œj®ù²¨D•(É_£ì% J’ç­-8""Úc€ÓfBrºÜ™æûÚ ,MSY¡€µ¼fNj&…;õ(´eøô+i#—5o ÐÓþA+m9É¨Ï ¤=ŽUø+ðÑõK/­ÿàÏŸ=¸ÔûïX5V½ &tü@¼½c smÃu =c!Šú<&Ä*ºW½Žªe< ?9˜ô}Ä—_–ƒ9!sB]¢©½’ã½Å¸·Ø0g§Ž¡ÐÜE•~‚{$&¾  Ìãr5r +EOmºÅ¬cà v.€@ôBšêA&}©õàF6/ªrÌ€ñL–ÏY'Eôꆳz}B,Í0,~VþÖ#Èi4( ³ƒ‰m9Uµô#Ò]½Xµ¥¬d´+ÄU\°ëÍÛ‰öIËãO¶õ¦Ÿ\°®œ¾©§sÝDÝØÑɥŅŸ ŒŽüĺ?ÝÑÛ2»ªw{Ð.9¼¹ysOýìÚÞ:RÊé!ȉ Ì ‹*Œ(ˆ¶â®š§µ —ûüÃ\(™ÕI¼”O· Ÿä€|F>Ó¨¶2ëèUîÀUõ"aï[frE´à>{BŒiׂœåNˆ*ÏA ܦ@ jbyÃ3½¥¬mVã®[·ÅãÛnݵô¿nß|°'è9¸ùvû‰þÃwnÙrçáþÙääÁÞÞƒ“XÂ#¨Ôòëöy¬Ó[¬,ªVp¤ú¹¤Æz¨1€7QÚ§ÐѬ訴BÍb ¢)œ†5x]«:x ,]s\À$%PãE,[àë*Ûq}Ý €íTBšË:ø0ÆÖÚ 0ƒ¢ïÉÒí GXºGE@çpžÑ­`MD׈3/¥F—®ÐhWœz=¦C/w]¯U]h~1Cñ0W‡&´‰þB›B›B›˜„61„61ûÒ«b&L:-^õ¬fÏ¢*E_ˆ!Ͳ¯ArµQ@º˜J”F”~”M(^7L2 Š:É‹qO»Þ«pÚ<\Ëëìtù¬ìó;]GÇwžÞßÞ¾ÿôÎÁc»z}ðF»FvwWUuïèØ’®¶µ:ö ´¬½kû¶»f‡ê‡ !ϰ¦mûÕéôÕÛÛ¬pzKë!<þfØÕ]°«BõæOŒE™¬;ÍéUå{¿62€Ó¸P á~ôŠº¦CÀë’îèÐÀ,Ë|P?®ó/мVY››vË&‡²“¯;PÄ&T†fÃÖrRȦ¤‘~c6%êw6/X“ Kçì'–^¶j.õZë–¸W¢dzzlEžõ])ɆºwgÛú»Ôkú±»Ñ¦»¿ ÷‰´ÿÀü ¯AZƒÑm Öñ¥JtùÅ9ô¹r8K9Ø;§+Ä´cfß\9Dq•æñzûÍ–yx_ÖB9Éöò[žp‹ž:Ìì:¥™¥@ü9 {Eï' ¤ê2¼êŸH¼n~Nºú¥‡Q¼XÛç©§Pôuõ¬e7¤È Åi&&üŽ… åÆ[ì[>¼tÞs ö×v 2ÛÅ—þC%0ýæ €JZÌ +·‰9Ç#¤ ³N#ÌÝÙ;¬UŽ!  ÅÆT§ÛÍ¡$PzQ6 èði@ó&mžÔÓ¢jBßUÏãyvbç,®ŸGOç7p@¿Ìÿ:¼âü_ŠKJqo)æÿRx¾R3Àµ2]]‹u«i³Š ¢zåô<å+&—:VÔÑ1²bòÃõúJ§F@sÊÜâQðú +^_Áë+ k’¨]ÍŒS +0ã`Æ)€92.Ì 0ãÐ8 2 ¸Ëᤄîtaý•¸ù”Âý´oç/Ÿ³C³wmÛ~×ìZ™% 3ÆY€*/þzQÕÂS†aˆŒ³ð Ï}Þ„YEj.ž9(¡V¬Rdu¬‚ÕA°:Vñ@ÂÆU>¿˜l,6lÔ6î†\UÌÛCznÈÅ9ÎSb§”… š$=­Ý6ÝtOo{taá[Á–xEyCKÕÃö-ëÞn_—Zú•ukQ¸µÁi s׎ºû˜ÖÝ*ìdþqQu!;“FéÂSºUV¯/¼ ÃDLZÇ®1!½G]#aÓ56CGëN¥€HÁÐÒ跜٧#+úF ë]½ÕµÌ\#Ž¢AF䀛ºægôL?éš"PÃ…e5– 52ÑÕŠ¥eÂs$õI=dR™`k‚]Éé>@Ig¤ÚdŒ' Ûö +8¢Rf¼nŒ8¢w ,Il­Š¿²á† +êèÏDH:Úbb<[aP¥m%[‰ÁVb°•l…¡—‰ÎÚÄVÚÀ•6Ú[iƒ­´‰­´ÁVÚБqš'dÒ›2rð"ûY­Nh]WÁ±Ÿ s?÷½#èâ’Å—ìC*ʤÜð««·Ï~|øÚÆ}Í+ «¨2þ—¡Ëjx‰å•7<WV”‹]ÑÎâ[7WíšÜÖtm/0±Á¼|¨"HÂ^?:j—ÛK…P<Îÿˆ“!k¢ n9w +ÁIÛ/ó^ +‘û^® Ü‰é—Ztή `¢îTû†4ßc€“~&Ç(¥›³(3-¬Y3 ÷¯õh‰j-ª5Ñ»Oàðë ~E+÷MßSN +x +ˆ&ÞÁ sÃISȨ̈n昮ž.ƒº¯#Ú°0Ÿv€;c(;Qô<}€~ø7œpJ@„€¼+“šh”®)Áq –!ê¨C±¡=°ãq½†­¯¦«^11 ²bÐĨÜÎh3âŠh)-ªAX&5ãû½Ðg/ô™g¡¼Ðg=íÑ÷{¡ÏØE$‰$@?Ïãâo>/àfiú†ÔܨÁ¢ªÆ(˜oÍ:Ä•q¾ÕVæÀÊpÑ•9°2ǘÐ} ók4!ªÍç4žð&›ª50fVBu±I<ê$Š}°«=M%’mV’{Ïîö•Ó†å í)TQçÁÿ:;À<ïjºÆMƒ±²x(1³¥m8Vں媎þ#[[¼{ÆCm‰ªöDNßÄx‰Óíø;wÎö Ïíì°~Õ4÷ê’åMɼ’ªò¢dGoMïŽîªÚÁ½ý“ùÁX8‘*´J×øs +ý5C{{«êF¯ƒ©pZ¶·`žó©-çáqÍž<ž-®#Ôwª²Á<ÂQðƆى' |97,ù<{ÝK ÿÛ~bîÒmî¹`¼ Ø÷'1^•útvÍÀ³»þqyÅ<>dÄ/¾0@WRÜY3»á‰^h ø~ †Áÿ*P’(4©U>h•ŽÆ)1$Æ/zM"RCÐǤ ㊉_týððú¨o¡yûܺusÛ›±¦šŽmY›H¬Ý³XꛜlhÀ?`EûT1;€~7YÏãh`!ôL|ò‰ð]ͨKј‚¨„ ¨D˜\i‚àÓZãþ '¢^ZXÛÀرÔL<ÜâtŠš¤ÝœÆP”Àã#È+ŒàÉŒ¹nɤ¼:h™ª6³­¿*øðŠ€±Ýˆ är«“E\“e"Ò¦z`²\}Á@ s=`®Gê½øK±ò0IàE¤_2ËÐz«ÅŸ$à<‰QôÜ£Á¢êÀp˜í&a»IÞÊh’G)y( ÛMÂvá8ð`U3Cá“`ñi­EE5æ ùÖeÆÈ00 œ ªnÓt¡¦ãn Ut`½‰¸+^Jw¥»ú‚%ÈH$VL™Ø§ÎlÏŒxôî¯Äò•À¸]7`ý²°ÌëóåçÊË}N›¯áH›3ÖYë lŒÕ÷§ª‚õ ÇHμ§y|W*±eml¾z[bMCui¨>^hIVß\cï°½9v­ ÄC ¥9¹Þ¢ªªPM©·±¹k]cYYl é~ŸÏS¨ªKs *ãܱ„¹Z½t¬=&¿‹4-tÑ.2®=Э²Ñ3êÞa”Ê],íÓgP´èÆt3Ãr Žà^/òä%È]ë-~:ƒþtóFŒ ˜Õ®S믎êc2Bs×1¨»8#`L8„2™xÜHV›³>€+ ø(Dë<®¡U—Ñ7m©¡Z—<4=è’ºä.QÍJ†‰N\âƒW $QúP6¢¸ª^ Ug*Ó€8uŠ[2z[ +Ëúœo´#ÔÕ\SíŽwçÍ—ÝvtøàX42vh¬õ²ÑÆkGgiÓæµ‘±®ú‘þ™ãM¯œÝšªhÛÐiØZ~|g¥j¶°Òâ8#$îÒ™=ÝB8‰ÂöñbíN2µ£Œ¢ì@9„’K‰ž ý§ñ€AAÜ;‰+€¹M[†!¹ÌÕã-ݽ3"š nË›œL.«‚Ž£bEPÆŠ²¾fU22›ÜÂX‡˜~!¡Û ðÂò‚ØIæ¢ +2Q€ŒGH@Š ‘bŒI@Š H1)b e#'tªž«4œrÓÕæá¹™rBÆã΂u0êô8ïÈ>býo‰w'8sÛΜ]±¿søÊ¡ºÄèeÍ•]mÉb{~iÞïôÆ}ŽûºÆ>§tCk2µefpÃìºúüòú •·”ŽŽuÕEºÇöMG{Ö»2­„MàtÓÏCD… ‘¶ÈèÖX%w]+¬’¡ÇÚ´<¦ø¾¶Jª´æÜ 4V*§5 L¹¨CÓèS·Œ ÐË1ò}L2ÞJ€á šN“ƒ¼¦^Àår iÆWb‰’Æð ú†3\ìMœBÑG¤Yi “¼CqVhÌÊ 8< uÞDuüÈÝ97;rÜN^(Ž2¢ô£lBÑ ½ãÂœãÆ‰yᥠ+QçŠÀlèÀg«/ƒ—ÁêË`õe°ú2±ú2X=g1s=8I#¹[8yDÀ9 ètúÚg¦ú|Ϧ·}Öýv Ú^[×é-Cw¬k¸t.¿ed{óðUãQgüÀàðá±ZŸÕîŠWã]µ[ëú›«R©æu­›Žõ!>Lï¹~ŒÁ2ÊÖ>âÆŸ»§ã>ˆ6-‡j·‹sˆP„r:óСŒíº‡û²ÁÔª­1×v³®ÖOYùWÈ*ÈŠ Icø !íC©ÅP ½ëGáC8ÅN1„S áС’*ÆŒ%é„*K¦MÔ\¤{Í­µpr‘±eþÞÊÆtM_Ua•¿"zøðü^Û›êŽú¦<žP¤gïÒN‹YBg9mWþjÐî[Tk]Ÿé×6†Ã{ DÏwG„?nrÐ'éNqÕN‚»ô—d]ä]/³×I<[×¢5ŒÖpûx)q¦†#ÇáˆÃðoa„'aå£e"ž“bP×ÉöÏ Ìp&uhp“„šñŒD3ÜìJì5N{ŸŽõEn8³Gâš½²s‹Sbñ"Œ°"²¢Âà +„{™p1ÄŠ…ŒþÇÄï¼h-Š{T&ô€"°’ûn€ûQh8¬ÆjΗO%0´Z qý>îÈi_1#Œ™p£Ë¡ºê4#LÓù =³wB(|w¨ZÖ -ëD¿ Œ¨N='„p§Ž/=H¹ñôf‰'4·òåÒZqa]ï°õ¶é!T‘îI{2gsL’Ä®þÐíÉã-9óÞÊhchrÌ®ÜÝ1rù@udèò¾Î]!{þR¢'ZZí‰'º#%eÑtøæË#­•u~ïÄØŽTGjëÕýÝWmlnjÙ¸´·>=ŽtÔDÒã‘Èp\0ħlv²êV®£dÇDk–ÁeEq!¥}ÀI¸T+/½úå¡jŸ”Ø."à¤L'8 –¹¾œzÈUL6C¼*µéNðY¯‘ݽBpÆ£`+½gêR‘g)äYJ  ­r˜Rȳò,…<™º~z–«JÍ.ä´Læcè]š‡©BAx 7Bó;CóvpwzïÕóvGº¶-²f˹ß;íû÷/ýgkr¸>¶fé)Æ\£˜[¿>ó|ݲœþ3üå‚Û|MF_LÌ]0gðn,2UŠaµ¨ùið€¦sûùŽNP° útÛ2ÈÃn:Ãì_ôúá¨Bü*ZWî ò”赚8 xu‚ +½Mˆñ®à.~?»»§‡sŸ2£«5Jkæ)ÎWåí”·¥Ê¼ßMG™¾Å’Yïºåÿ{ÑHŽX r3Qä_®›Ô¿ >Ì÷ý›³«÷¼Mÿ¼ÛìTçjý‹aÍÖ†ù‹ûJ1ÙW2ÛI^pÃÛ³€`’áùQ/díÅ$ãF:ÜäÑ +rZ³STŠs!:ªg&´ +™P½Îbb¼JÿׄP6£HÒKDúé\å@ˆ&SS‹ƒU›1Û 0ƒ’MÓ¸öå·+•A˜mÜ~9Ü>_¦,‡Û/‡Û/·_·_®§ fáµc6˜8†âú¾ÁY_P_P_P‡›;:½+â*¦Õ’ïpÍVÓÈáõ޳þðˆ|&úc~¬?á~–4!¢Z{tS>×áó +ÆëÑuéH$½.Ú0ÞÑ~ayÜ…\¸›Ã\Œ¸BÎ ãT¯;;]7ÉÒŸ]aÿIöOA¹zª\TQÆh\¡­ÜýͲw•:»«°ìŒí®ÂŒÙ­]‡Ù¹r¹KÎÞ†îÃÓ®æî~ÔåºÞ¶ÎXk»ZÀD~Œ‚2Ë´b8ÎÄÌW·sbN¨ËQ°ej7¡ÞÂÃ$²TÓÎmBzÜ"ÁôÝ5ìIûsý€9‹hÐ2c%Õ2:gWîëâê,Ü·g Ê¬Î¬O®‰õ:›6=N²×)µ½\Ÿm=:Ð}õÖV®Ï––¬ï:ëÒõGw'×ëÉÖø.ë8äRßÎú®wõF92Q~]ÖØ?ÓàŽ4+6÷•Ÿl…»å—­È΋ôBA}(™çÝÞË ©½PšI© £KìZË:n{k›ºªËK󊪊jӉмí=lŒ–ÛÖ ÛSѺ.õ;= Ÿi½ôÛÎ#v*D´Ï*÷Ck4b¢_£6 ž†îg¦°Ó29œ“…W—±º†`Zj.Ê5§Ü# ]je+•ÌÑ l-‹Ž´ÃkèkÄ`C® ›AOr·‡°8ú)Ù½)Åãé¦Û2>¿G²þtHúÿœ€iº‰wé&‚Sr×N²®ºg†0..h×5¢+n„Õ„4Cî´IÈA5“à³ÙMUô5ç„Í>ÖnSÃ%÷Š$°×,y؃›ã‹Qè˜t§ØÇízœÓ×`ÑŸVÃÜ,ciìnq%|›°/E`úqÁG¥éœ€˜žœðNš9ãÞæY±S‚ƒ_îNI½rŸäSÞumeM± +»®}¨>²¶½¦it»Ó¸ymÒ{KÞÚDQ´¶¼¶}(R?Ô^Û¼~WcçîaÇz°«Ñ[n©ñù|å =Éæ§ÄŸN5ÕäýÁjSßhk\j]ߦù¤ò–ß´úì 2_3û#\O¿ýW=³ý®žyUäç.˜áˆ]g¾2YÉw)sÁÄ÷š~¤+ÇV×E®=õ¢n eµêE²\Ä +[2û毹ÆS +UbÖ¾úBkŸí½ï¾½K¯­©^“oyöÛ9þhWÄꤞ¨!ĶÍ#)šw6Í™`É;BÖ'EŸ".8)ªY9ë‹©`&Í¨× 'ÅN/Ȭ$2,]K¸>1kÙàÂei6¡hüdG§¤õ=Ü×AÇMýiÛ>……@jöÊùîöXG]ñü¦dû̬µié{ý¡xwÕ0§²ø,ovxÛ™4jÑjÎíK¼ïôžô!K+Ä£VÖ fI£0ÉšÝÅP¡írƒ€¯ +ÈTß*¦¡}í¢&Ñš7xFÀï$ h 7»EÀ³®Ò€©RsÂ*æ'ÿ¯>dßñþ‡Ïà=¼­ÿÄÕ†…4޲/W¥žÁ•¼Z‘iÉð +ù@3ôW„òFó ÙHÊ3ÏòC©yFÀ¤€ÍBgæE‹‹ˆ_ÜÛy‚ ý\Ô©Äc‚ú1ŠÎ(lÐ×}E³®® õN³Wýé‡g$±`Õ²(«†«L}Õô¾jÙ[B§^¢ó(âœ]T¤3. “Ë'Ú¡Ýð8×!ê/Ò÷•‰—ÄOp­DFÂl ˜ÀûºéUo Ø.@§â9Úed6³·{fPÀ?/Þõñªßš/ÌD¹Ú¦_5c‚V‚ëDBÛ¼jäáÁ¼íî½*`JdÁ=R}{€· ]×KM‰€Iþ®éNa|[÷£´ôp׋®°‹€¤æ_Äìð’"5Ð0p€ÆŒa,D׸œï¾\&2äV·&È•!–»5‡4ÑÆÀŒ‘yS|ÛŒ}øÆƒö±›¾xó´}èVÜÖ,—Þ´Î,!åÀî‚°»BÏKÙw¸³>ʼÏŹëmëîWEO¾%à7Æ(yÔ‚rçók þ§€=dØ‹Ró~²€gB·k¦ïr™R#5ú-1s—Û„<Ò«Ž©ÁÂÓ óŒ€I^ó $¼´èx°«Ÿ‰BV9¯ì‹þu^èm= »½’¦ìú§Erd¢ƒŒæüB&“âákš5O‹ßù†¬/LÓË"ñ{üH„x¯€ˆfLÀ xY@æö½Róˆ€DT|q_ö9g2À×k^oã™m}†ùnÊ‚~HÀÓ"Šo Ȉë¦&Ýdwi™eÕ¯ßß-×?¤‰¤ÉtE_Úp’>ç‡ÿýìÜ >÷ƒèôG­²ßÞÿëK¯>öçbö><ð öOWÎÅpà*=ßöäûÓè÷„ìo¼B@?'ûk~"à„4ÝN@}Sjžš‘šq÷Š;ð9#f¯Þòå‹vÚ2³¯‰ÜK@ +~(5?—𢝠ø4õ‚#Õ Ä¹ST£4õPX¿‘š3rñ(b^Ýt\@˜¥;l!àÓ àí¯HÓ§uÙª¬ã*#s×ûÙ4{è53"†r ¯žhx gÓxnÖÆÚÎ=玗½q‰ÙµÇ«K&Áæ9~DQ~d^üȼø%ÁæGæÅ63¾ôª¯BF h¶_gÆò ÆµËë$ŠØ#ìâiV\—­q“ÌdïGwØÓn±žY]5»drÝ-`«ð¶Fx{Òð|aNÿ†¦Ì H¹©šì1«ÈQ˳ð1ûC·<^N¶6&KªKʱÄó›¹óÒ Çߣ›AÄ™Þm‡ÿºKE@û¹¨kx\yQíÉdÔ‡9 ¯8æeEÔìûê$e + =þRÌ.h—9¶Û +„µ +ÑÃèO§.Ì©]V¼—: l‹èÑ6úZÒúœ8]eŽ#PWð<ÈU ó¸ØEª‡]ÄÁ¿8ì".v‡]¸GnÀ©nÝg5­|\jNIÍjñLúšã¤$g¦Á³¼½R³¢››è‘V(A(ÁÙˆÜÁ³gõù¢\¤8Qp2Û}§ÔlLbƒ ¯œb…ÏC¦½}m8²í5õò·Žêìzü’ +IȺÍîLÕcÏkhd¨£Ö_“ …k¢}“mïh°ærºÒ‰ÎºŽ‘Ht´³~{fN߯XjsoýÒ³áf ¾YÝPÓl×545TÆ£µ‘Xk¬²5Qç«XÛÖ<– +…»·uõŒÄ[Â)'â/K´õÇú7+Ú"£©ŠêÎ -ÏKÕæúƒ…³…õ¡÷ˆ ò‹Üc«±rÏ#Ç)¿ %ï¦wÜÓ°#ÆÆ°â›·ºÊ¤šƒP£J$>øëJÕ™“ ®ëÍždp=m¶bÕÁÑUÎyUž!»ïå†DÙs)$ÍV\²¯pÁܳðcÏ‚žû'y•((ý(›P¸Å„jb"AÒ‡jÀÁ+GŽõ.'¬ÌÏ/ݽêøÞÉûSG Hÿ–¿çñ§þZQÉ­‹"Ãßh«‰ü­µ$L¦ðRi;æœ.ä»á@ú@ö¼ÆF¾Ö·½‹Ã]È5îÅnýåøùÐ)¸“+13~T}=[To=l.rhjœëR›fæÞ?sÓ±#‡ß7sóLëö™£Çnæ¸þ?ÕÛ±D +endstream +endobj +846 0 obj +<< /Filter /FlateDecode /Length1 9380 /Length 5521 >> +stream +xÍZ{l[×y?çR$EJ¢HñýÉKòŠ‘¢(¾D½-É’+’mÚ¢mY±-¿2»j/·4õ²5‰½%M€6­Ó®ëÖ.mÖzS;4‘U¤54©Ó3 +,A3£è®ë² º<Ö¤¢÷ûî%YÍŠ Ë£üñ|÷Ü{ÏùÎ÷ý¾Ç9ôéþá!ÖÌÎ2:xbÿmLþhŽ£yþàí§ýÊ5ÿZÇáÛŽœ¨]_f¬¡ãÈñ3‡•kíŒy¾pôÐþEåšýmî(:”kÞƒ6tôÄé;”kõ/ÑþÙñ“k÷µ\žØGm~v ×þì?qHy>„ñYÇm'O®];Ð.ÞöÑCµçù®·*÷Ö}sð¶ k£ ûˆièyºúÕ]ކ…Ö¾7¹IEr±Ç7ÝB ûéÏ:M¿™¬¶kŸnÈâRWA~Gµ|=Î<ßÄý³Ú§i”>ef‰ó¼!0[œ" °<‹³vfƃž8ûîl¹±k…5àÏ_fÜ?öñcŽÑe¦ÇÞbÌBÿ¦Øn°¦ë½¬IP³fá9fÂíÄÔ2ÓÍÌ}“ó*Ëüú'—G™÷¤U-ìëÄP ¿ìØè¿B±8UÂ?¾¤ +o›+þóþó“‹çýãþ£û—Âr‹‡ÎWRþ%¶}î¾wÌ–†*î5öP¥Ò‹qh¼‚ÇÏW0­µÐÊ]©U<¤NLù—T‘™¹Ù¹¥³£î¥¡ÑŠ;ð-]ž™[º<êT*xJ³&)$¦å+2k!³&†ûÊ(Û1†¨œ?OcâJˆ–.Ÿ?ï>•È=b`™³ZVJϨÂcË|hfŽn ‰7uˆ19*£[—˜Ú>7I$‰þ·TÊFש´iMP<Û ñšd•¶|H*5|•¶~ •×$½A¥&Èl$•¶½¿JÅß¡Ð5 ½†Ï*>û>6ß aËïÖ°uMniƒ´VYÃöIÃŽ¢açÒ°kMÒ4ì†Ì.Ò°gMÃCî%¶ZhøìȲÿÿ¯Ê½ëTÎß`nCìK°] ‡pßõw„‹lZø1‹ —ѽ þ>´ÿÍ"ò½ûXXp²0Ë6ÕÚÜ /Á†ØOÙ˜ªÌ†ˆ¨Ïñ­¬sµóÓQ?xƒ a:´ˆ]¼)›™†}×~D´±Ý>B-‚oè^»l`jŒ§•gЭõÖ=kB†k©_¾Ok`­ÌÈL¬ ÷̈³ÖÚ36fgæÄ•‹¹™‡y²B¸_¾?Á&ØGØ[<Â_æ„˯Tw«^iø¢:©~Jó¼vQûBãéÆkºt?Óëõ_Ñ¿ÚôÍ¡æmÍoµL´|®e¹åç†id€ ãüyáXŸ–¢œ0—BL5÷®‚R—ð ê ô/!?§»ÆÈÇæSnêÔTjjêP³êhÀ 09^PƒC.z£+ͦ€Ù0ñ ÕñL¦zDxdõ3Â…Õ¢ð,,± &Z¾ÏôL\Á%’e##Í&‹µ"k™:µÆ®tÀ$T¢5câ‹ÃÚH~4´,|¿£Ç×4ZmÀËŒõÆŠ³‡–YgŠÆcµñpÕ¯!t^V³—`¡W@Âü°s6AåM, +*‚&AÐ1ÐÐ9ÐÐc K + –yŒ†mЗ ‚rððŽ[VL»Â$`„$— ¹92Ý>Áj1ZƒJÈTùU¶')ˆAƒ(óÖ`6ìéÛì£áÑœ¨æÿTý´FÊ]^±o6Y˜+yøsþÁîö¶`Ê.t¥<¶î‘ÊàT “,Ödq"Õ}SÆÙ´V¸þ¾DÎVAà04ÚAÕ TàW’©f€ùLmÅ®´›gÌ*žÉì~åŒð±¯W_Ù?ÓÓǪÿÁ%¾µúüË«¹_ĘP,›ÆøgÁëQó$8Šމû­@£ÊN£¬o-ô­­ë[+ߢ£šU@Ç@g@ç@@.®€ZæW`¼1—Y4%ŘÑú˜QŒ•ÿŠøžU@Ç@g@ç@@.®€È†m×V˜ R·Éã’ƒ°bÚä5X2?¦¡¥&,ø&ðŒ‰kÚ³g²öÌYÅÀ‘›ÝB¶'"e85I•¨Z»{ñ»íù˜cólõe^ÉÎæ=ã#™|Z4vödí_ù‰¯wmäŸ}YëHDŠEžY͉Å-ÒÈ^ƒ`Ù^Ìm±êõj¾zÏÛMî¤Ø7 +I8‹_]ø;á_`ã+Š |F@[ƒK(ÊÆA;A‡A·ƒî= zô8èPË<”ûÏ`þ $ÌC NÄ*Z¹+×ÔV®¦yËt­ Ë“o“X6!Ý&Œ.4öL/¶}¢œˆn»sû¹/T¾ìdjhoÉã)íš:Áÿ«¸«×W:|nzú¾ÅâÃ÷&nÊ·wÍžè/íº K2 ccHññeæ–½ºU‡¬åÙàÕZÅ«ÿÏ(Ãják¶m­Ù¼«Í›jîÛ ªÀÊæ/~idwÑéŽes]ÆÕ7+wïèøÖßαðæCC#ó!³Zø£Õ\÷ŸïþÆ×h=\^ÏÖÓÄ2+ˆÁ~#²„Eg_õÙŸ ¾ÒÎBßž¿§4?ܱ¹Ñ.èó³GzËŸ(Ç“swÍ ÞY©ð;fÒåÁPêæ#…â‰r9RŠVz݃·Þ?=~÷b)]ÇÔØ ¹÷J=Sõ̃khÆL©L©eÔõ(£ ÕˆjD.5¢ŒQF(£F”Q#ʨeÔˆ2jD5¢ŒZŽ2„Ô¦«ˆÀzL¥«aJM°Z|a²má4V‹F⦌)cË!lˆWf§¦f«ÿ¾ðÒñ“'óÓ\³ihh”ó«9â·-.ž¤õD®?-üö¶±Nö¯ˆ\°h +”ĬØ"B×à=ˆux˜yäXAN±»oêpC»ë`w쮃Ýu°»v×Áî:Ø]»ë`w]Ýî:Ø›TØÝƒÑÌŠ¾ÌЗ¹®/3ôe†¾ÌЗú2C_fèË }Aù   Ç@—@W@-óГzj@WP²‚übù!Fk×¬Ç +T¦µç%гJ&UÂQž?Õ}sWfx_ŸÇÓ·o˜ÚŽØ©®}¹\|çÙrùìÎ8µ'žï´dvËåŽíÈP;r&ödߖܧ·MÞ{t`à轓hûc°”‹(Ÿú!Ù_*ž…Ð/ &býÂUÅ«¼Ð³ ý^YÏ’¢ Z‘êZ‘  Z‘  Z‘  Z‘  Z‘  Z‘  Z‘­PEd€fÖgŸ ò0i‰2” |PÉD!vŸŠ\ é§–ˆD•ˆ4˜„é…_Š1WsƒZ´ú[[[AÕd—Ú‡K§ÇŸyuSŸ»³ O[Ŕ˕KEšÚR=9—«Kòh„¶û«Oüz4'¥½zˆT‡w‡Ev?å¡vY0‹¢Ä%!£Ð’T«Á,Љ¥® tb‘Ÿ,¢U@Ç@g@ç@@.®€(wÃOiÔekìäi”<•—ù yJC+—Ñ#ÊI‹¢xRSËXü?w ÑÍûòéùÉ„4¼­¼mXò÷ û;n*Š»S³З>8“©õ»;{}[ø¯Kå‚Ë™¹9—Ž:ÍmÞdXêö6[bÃà ý>{f¶˜Oº-&W4 ¦<Íc¤'…®¿)èëb#|/Õàßa˜®…9À!dÒ&Ú²c]ê«T² ›w ðÒ¼´/-ÀK ðÒ¼´/-°FÊÚŸóyd¸µû%² +r;®»jÜ2KcÜ4àãkµ}˜Jù0k\«íêÀéÕZG#u4RÇ +b›ÀÂ2ÆÃÛƒb"œs.æ!t#¨TM€æ@GAw€!g´ÃŠÆHÒ&”yI¨ Ø'q^•d›A»@G@Ék½Ìà •aWM’–^“©ÿ*BE$kàõp±Vnk´â€JNç&‹-Ó— j%j‚Þ&$q>'&ݾô`@ìòXQKnBUB}[âX!¨µ4µž7ö{“^“;d‰õEÚ„–p,6óR¢ ¶i´Ú§ÃlÓD‹]#Ñ6}{¡³ú–Ï£~¶¹I«³„ýVo[£]ŒÒBo&:[ÈÚ)†Ó6B‰-hˆb µ h©Œ§Øn€Ö¨¯¾1€w*ÑÆ ÏrÖ=Ë Ö ÏrÂ1ð,'<Ë Ïr³œ0˜s³œð,'<Ë){,^¥Äñ!Ô““C›aRâÍJÞÊf|ЦìKp.(×Äën&ׂ>aSY0D“)s©RòúJ•¾Ün«ÀKÆP)‘ÚL‘¾x´_2S¸³··5Æ&äó¦Rœ7Uû#…` ·9Ïý9r"N>Ä߉ìÌ +¤Ô¼¥æõÀS<”èà)xŠžâ§xà)ä3€ãA>ó ŸyÏöä +âž²1MÊbá´¦&Uø¬£s4ൂl%êµ^•kü$’„N’@HI!I $ „$%¨>ŠöqÐ3 B’@ˆm˜;)FüpRÈe`7F&QÜK‹³&âµà£8ë">Jõ›I´ŠIxÊ{ÇL’(kMZ· [¼:ÃíÛÒ›öÞ޽ݛ`ŠôƬIÉÍËBGÿTèÎӯŠ+Aƒ)Üí(ˆF ÿÉ–xB  f¨ÝŒ´G/šñ¢£ÖÎP‘)ûb+q +F(‡ÊæHQJʦØhÆžî é¹è +‰¥„£ÐUý¾#6ÖíÑ[n‚A)úÑ~˜Îï0GMF +S~ ^C>©–PÀÎ)RgE/m.)—…Gί¾‹u”u«¬ÀVŒ=±‚•T¥åÚ°Š- 0áó`>UgüufIf”Ý’ƒžý’–üìBñ×™%™4P‹xÏ(#ˆfé€Ì5J3˽´«OÈU tj9q;RÓ+m\è¨ÒŒ×ˆ÷_¥}qM»8_#6§äöš¢5Z‚›VÌ•[Ù°7lÓ•'Û%[cÙÙ9(eÊ.ãt׉^AP¯¾ËGZ;c>S{ÌY½ÈGú&ÚÚcpÜQ ™’±®Ž9ù\¢ŽòÄØz݈ZbRp´ÕV»ü6RÖ­À¶†Yàuè8•U$Ü}ÛêñΚƒHú¤S2´À ,à?¼!×ñð{½RmèQmèëÕ† ×ÖzTzTzTzTzTzTzTzTzTzTz9æ:e SÌk¹C$ÌnÈÒ{e»|lz—3Q +J g½ÝíÚ×?0?ä÷Íôïòs!5ÙíruO¦R“i—+=™*˜ŒF'‹'c±Éƒ0 Õ_%Ô_&€ôÿcýÅ ÷j®õµ˜‚œõWVýûÕ_jl÷ô7`ãS.Ô…˜Ñ¯­‚¡Q"ü+G£rÌÚZ¨f$™u5ŸÕ‘%MyŸ• @Ìö—-‰‰ÌØîvÓ¿èÞšóìúñs?gí¨í^€-zÙ×i³«‰ùkœÒàýr¤H+'Ái ¥¿ršŸÓ@`Li 0 ¦À4˜Ó@`Li ö¤JCk5Ású(§åj@‡ipK›–z5¨l`PåȹK)‚±áVö”7e5ÔÓÜiÚGLÇ¥›%oªßïëëj·ø%³5´ eU°¸%Ë‹ÝSsSÝŽpÂâJKŽ/wmжµFRáî€[ ³×fq¶jt–€35n5‰©»Ðn²Žv£Fo— 6/r¯ð%Ä(T@3’½´h)sرæð”=,”=È~­µ2ƒ¼ò½S;( +ªñ •boù?ÉÀ1K<+oµ`éÇËsso*0,YœõAýùÏOUŸ%º)•¾­•O)8‚­_ErPÎ¥ÍH½Í˜n£¼Ê.‡ +sqÙö$õZ®ÇT:Ó£!è´¿™d?ˆd‰S©3Vþêúœ[Üá«×”|Ë÷U¿|ëîìBT%èðõ ÈG?Y(‘›~A¡ÔÛ@÷!æ1ãXE%šyôÉÊýÂC —1Þ,ÿ‡Õwk6XÅûMˆËP6ޥš¤mÀä8ZŒ¡œ +}ª2y{F•µ’øÃ§Ž<øà‰|ëðŸÜy‚«¯¿ð·¿öíoã­ÆëiYo6vì'Ùè×9íϱñ^Û°[©Ãº®£ös†vð:Z&½Í×vÞÍPp3dmÆÎ»;ïfì¼›±ónÆÎ»¹¾ónÆ6o`çm©Ð•VÓá?~ïðq”½ƒ\•1ã7µzŸ§Õghòê]¢NüÑ-ŸÚ=é ´6¨§ÕZ§}— T+ü«ƒåÏõ/°n…ÛðÀµ +ZQ‡Q H¨…c¨1{X>:ÊÆPÍnÆÃü¯•›Ø ›eÛØvVF}» ‡¶‡áG1h® D ÆbÃôÙŸ8tüöC§Ü?}ÿ;‰ýU&Ä +endstream +endobj +847 0 obj +<< /Filter /FlateDecode /Length1 3988 /Length 2293 >> +stream +x­Wmh[×~ÏÑWü¥+Y_¶dIWº–ìH²%YWò—ì8Žìر[œ8ÒŠ“¸±{“´sºd¬4Œ•$f £û“ÒÚÂ`ù5 ÚM1! û×þXÍØ±ycŒÁJa0È +ƒ6öžs¯ìÆ]Ú…­×¼÷¼ç=ç¾ï{žç=çÈË/^˜§zºL:µ4{ž´Ç¼ŽæW§^Z–õ>?Œ¶ç¹ó§—ªýÛOŸ¹ôœÞ·Tˆ,ægçô>}†6·ƒÞg*ÚÖ…¥å‹zßü.Úö3çNUÇ-o¡ï^š½XO"¾|vvi-i¯ÄùsßZÖº$¥Ðöœq¾:ŸÑÿT{äÍ ×Ò qͦ¿„®±]³ˆqÈoœïÞ:!å?a͆„ýûþ5)Ú?ý¹Ãþ™y#hºi¼€y5U?Ú7†7ÛÈoZÇø·M7…—Om…œq¶JF²‘;Îî‘Ú(H^jØD-ñ{ÐÙaqPëŽ9t¬”Â$™<ÛŸI¤R|‡ÅF±Žh•œì‹W¨Ayy±©P¡Ú8¬ ¨Ytå.”v¸jF.uÔ¿‹¯ZÉ`vÀÖ§»ø$ï!˜¬ÚŽ^˜|ä@>˜°J&|cG$ÚŠ„䜴D¯ÒéM¬ÔF›V2q+}Àí„¡ezž¾O×麉aûæjà&²òÈ/‰‰ +ÕLÎØõR…m¾Z)ÿ67œ8ÞQ!–å‘ÅB™D‡'`ˆ… òhÙ=TTJòм2>·"Ê ³secDk10¿RJÊeš..â}¸*•|Ûê|©Ô?FáŸ`úJ ¾Yõ€V3%b’)1!— Ñ©âÁbùrÁW*”|¡ÑãÑPùþÊŠo+Ñ,J¨Â¨jÀJÅCd¤Â†¦ŠbhH ù„A )!äQ*ÀwMbbº8‚LB"“Úÿ€” +@Z·(æÖ#½: Ò†¯ Rë“@*=¤¶íLw@jGÎ6iãã!U¾Ðm„‡ƒðeáËAرaçW#ìÚÎIº‘­KCØó5!Üô$7?ÂÞíLw ìCÎ^pË6ÂC¾2m-¾ü…’¥/­áÿrÿ#³’¹qŽ'èıClüyø ùù)ʱ“dÆùÂð'žzôÄ#Ó‘ªE3É‹ã`4âhûý¿=–ÇNØUµÖT[7¹q‡Ýg¯±ßò‹ü׆3†;á8¤ ì/\œæðÃBöò³+±¦g6’üÄñgŽó_ +àu•ßÁ±®ˆ{*Îlf#¹I(ÉUøØ¥-¶T:dW¬†6WÆÎ®¾`ŽvDÊüN{.ÔÀžßèI1r!Îì(ý¸Bíø\À¬ûDßV!ÿ:¢õ½&ú=‚},îΙ½>45¸mjh7¤2)A!— × ¯CnAnCÞ‡4ÌÀ<:× ˆâÉioìÅåãÆ=$‚ºm«¸•ÌšFþŽŒ:È3]n—ÓÊ-Vƒ+” š²j'WÂV¹Zç;ûýqÕÓq0¯p¾ñž·0¶¿'Ü6|,µgvHf?kéMú{3rW{ÈÌïÿÆÀwZsÉTÿd6s¨'ê´Ž}ó÷ƒ,“Vq=JZx+Ri®¦ÒlÓÖoÆúÍ[ë7k£»aè…ŒCJEÈ%È5Èë[Û÷! 3«¸“ñÖ¼ŠÖµ +ÉÀ"†¨VØ+q`.©´Ž{qÓ[qÓˆ›îiÄM#nqÓˆ›FÜ4â¦7¸iÄM#nZýÞº×t nnt –¡NM@µ ìÝ/ŠÉWW€»œf%ÜÉÛs\ ò¬m˲-,™h®JÑ_½½©àp*ذ±+,R˜íÏ‹÷¥Ó±}‡c¹â…_aݹ¶¼¿CeoϱöL¿;’i8¾7è;Ú?ÚÀ­Og’c]ÍÊP)—ÛŸê´:ŒØ#6Ôi êÞ‚&Vñ+G¯Ò:¬‹ Æ5\xhÍÕÖ¶Ža”uZIµµ11bÁ$¡×¬¥ÒÌ¥t;\™l&«Øæb=•÷ Wff^ÙXãµlÜxç ì' ßøx6ÿÁ_à z{ 0ÁcPs.8º¬±¨&µŠQÁœºÅœ +æT0§‚9Ì©`Ns*˜SÁœ +æT0§‚9Ì©suë¢:tBôêp¡:ÄZ÷>{QF‚·^O¯¦G°sº?g Ôu²ÚF +pO¦º{\Nt±³»å¬ëȹþñsÑÌè~ç¾é¤ÍŒ:ü騇ßHNîIœLFò“ím“ùHK,å +öŽ>9èNçŸêtín·×å 8wÕ6ÅäÁc=ÍÞÜÁîôH§¿¶®±©ÕïSœ)Ø.ýØo­Üs*L{-Iв†5‰²bMR©º> úçÇ]…DAû×ÁŸ2h@õYB9ýPËÊtåº+SÂQöÚßX¯#¬fþÈ.[ö<;Ü?;ž(~7ð²e0žb}R4ìéùQþìÑLl|®/?7Ö65Óg§Üæ/ WH¸W¡ÊɃCS¤çA +¦5½ÌÐeð"é;VïÒï–#w dIà]ïx—À»Þ%ð.w ¼Kà]ÒxÞÛá]œÉ»Ñ£Õ•°Æ`%Qß. Epˆdô=ìÓt±‡›ðÛ^ìañq-E´ÝÏ[u xgvÔ}€é{ZÀg¶(YÖNùêýI%œ ˆvãw×¹÷`ª÷HoKK_q 5åå3-ù œïôû“ù`0ßÑÂ~úpô“h[âÀIµ{~²3ûżù);ÄßÂò§y¸Œ‘¨Øx"vªÐÝkX‰¸·Ä"b‚Ù‹;[èb·&Ö£•ÐJØÑ&èì\GVq)¸Úª„g5³XÒÇ×õvô‡\‰ÆZw}kÓ7½ñƉÛRÞn8ËyS+£HG{6ߤ.]û»}NKn'åhŒ¦é˜6‡áß,lH<â ½â)ÄÇæÏ¼4¿¼xjöéù óÃçÎÌÑ¿÷šH +endstream +endobj +848 0 obj +<< /Filter /FlateDecode /Length1 1144 /Length2 42889 /Length3 0 /Length 43673 >> +stream +xÚt·ctfQº-ÛvÞØ¶íTlÛycÛ¬¸bÛfŬŠmۨعÕÝ÷œþNŸûýc¯5ç³Î5öØ$Jª "f&æ’@WFf^€‚µ½‰›‹ª1PžAÅÜÒ ðä0†£ P³vµ3ÿ_ô_BÌÙÜØÕÚ(nìú—W³r|3v°2X˜y™¹y9Xþ®™ÙþËÐÁ™ älmïà P2w5w¶³þ¥ÄLÝìÍ®ªnŽŽvÖæf*æ.nΦæ.¼‹¿™ýï¨1G/gkK+WµºŠ& ý¿€‰×1qskK €òïÂÝÜÎÁñ‘þº2š;ÿMÚì¶JÆfÖ®ÿ(@måêêÈËÄähalþct±`š»2ÑüMTh&æ`ÿ.pÿ虸µ³¹éߢ¼˜þ³o¶@ Ïÿ‚-¬fÿ,ÉÌÍ‘Ihíäf.#þÿBpÿÆ,Í]̬Ì<̬s'€¹§©Ó?Bªy9šÿ“dùl 4óóqtpXÛ¹˜ûY[˜ÿ}Áù¸»›\ÝÌý|þ¿ÄÿÜÁ±°Ì¬M]&æ–Çðoïas‹í¿»:[{t™™™YÌÿxþ{¥ÿw f@;¯›+Û›˜Ô¥T%EÔèþ³öÿ¶uøë’…‹ÀÀÊÍñW)=òp°ý§G%cëÿ›ó¿Ë-<ÿJüoÇþ+ywsg—¿*PÿS°4€ÿéIÁÁÕÚÔ@ýo‘è1s0ÿÕÇßËÿS<ÿƒÿJè?cHºÙÙý³~êø[¹ @ðÚíŒÿ—¹±½µ×ÿãÀjšÿKçÿ?~d\í¬ME€–vÿÝ&kIkOs3%kWS« ã_¸:ÐìŸ7Î\ÉÁÅúwÀÀÂÁòœš•µ©-ÐÜÅå¯úþI™Íþ#¤ÐÔÁÌh Puý«?cg³ÿþA›º9;ÿmÏ?ô÷ìí-¬ÿ&hnîin +·ºä`ÊjÓÚõ\/‚ïÁp8Å6È©þøåFÌ÷ÝtŸl@ǶŸ½àûGŽ¸Ò¸•`­.ø7pÐð|‰ï\¶<¢ÝŒÐhèah`ÒQxŒMü +¼70Ô3˜ñcqÒòNżF¤¯Iªµ)Å&ÑTÃ0ŸuŽOœ¡ð‰ªŠj`O–hx°^ƒ¯¥íü•y¡F{Ä™m‚#Òàe{[g_¨duà[/žÐkºÑŒ—†D9Â¥à\oLðµ+¸x{&{Y_­ºå„{@ûèK¢ó©Žï˜&à?wFi p’ 7pp¦ƒ8äíùVMað3 ‡ºg©G¸WD€Fç&u¤Ñ[Þ¹ùd8nòÐR;{ëÏí¬ãËÝ+w–ú±¡¿0ºÚ‡^25–ì±7çôÇÜÅzäv÷'@ôˆ@” ê’ƒÝZÏ|eT û‹28¥â²Ûðˆó_7¡[ôÔ&ä$ÁŸåO«^ÜPBÒ+U=ù,ãí¿×pò8ÈwmQ|IK-+—š«å­£ÖúDˆ¿ÅyuØ™L亱«¾\wsS5>† Àu ÈÝË)¯.õœ+ùuG_TÊC)ÍèH' ¶`Dˆ¾º˜ÃT3툨4Í¢¾ƒ¯çKK.îÅ<¿E©nE¶¨•-nZóc#Á +©@Šë’qØ?k8íª4S(â#‡àCñ.i£b~ 5dbÊ=¸£Õ³ÉÞ{—›¤ (L(€kP5$}l÷¸5=Ù F8Òo" ©…Ëh-aû¡ ­*9í„(qäÇ ›‘ç 6§SÃ20;°-¢—ÏÑ~3Õ"!ÅA{é¡ÔEˆàÙäG5—Ï|øöÕ#À•‚‹ÌÀDíE Þ³NЏõ‰jóŠZrÕ-© Óÿ$=¿Å^Â`iËoâF€ÖIò`ü‰ÃÌ‘ƒÙÔѰîåÝìáÍs•d£|m×Ñ&pØÑ’vzò©°QÏÑå4o#íÌ‹xÐAòÕyIg9Q³Sáõ 0ƒ*•ÜæO#°v1¹»{,G˜= ©~¢­%ow¼žÝÛG‹ïÓÔàâ#ïHäöÜtMÌè–õh‡„j7À4O`Æ­Mk©yŸ×¬* +ÛØÿø£\‘{ ºPÇÄG§ÅF9¢ùm÷âžõÕêUá$HíöTNyò¼²Óø‰o¶‚Xô’ö-è)Ü3NùÇÛH¼×hZÇÏk“5Eèé;¢3l‹[7ÝŸŽs…edKAÔ l]ϤûOÚ¼«ƒ5‚.½ -¤WX†eú„¾cá9 ëæSxG½ªñö|{Ò6“›9/?“Ä*Y–7økH”ÂËöN“2“@¨FªœÏœ|Ç¡rgnê×+Ù)¢Sªæ :k¡YY.KK¼6ÈZ+ Wã÷ü(Ñ—uðK,(zrí–È»+9ø„Ͱo–Eo¿Èì\ùVäjÇ0Ôz9uq…$ *\¨úyËœ±­&‘!Àì¶%0vœÉ°šl*³]; +‘øàûD¿ BŸäÁ¶Üõ6R<î5½¦Ó3"k¹eD\~1('ô•‹ap‚ÈÑŸ Gè‹”‚\b§Ì 4Ø›>Í_”žfûŠ6o­šø‰IiŽxA&hÀóÛx'ŽßIeâ(0w[Zágã_ MënÀ?;Ò[­ ¿„…‹}LŸ°FŠ>¥SˆΆ«ñæØ<_>„Pžðqk¹týÅáê’¤ +ô¹–¨X 2ÿ¨ soÐYà2ú¢å¤c!wþÑäíe>¼…›ˆÜ¼ˆ.™^µìçWzS7 n0D³e 0ê͇Ý_§üðÚ¢Ôÿ‘ô(ïÂúyTtBn˜¯ÿ õ6–¬…™ÒÔÚ“L9èß[(fߪK«i<\ïô9ê‚FŸšJHö¸å·,ô,÷~²¹£þ‚¹Ö&ßËXµ¯"3Í‹-2­NÆö r_aAêf¦¾áiÖ´Ž¿™"ã,½Z(&×½M|;é‰íåŽGŠ”Š)Le2&7«õ«¹CEàL£᪦mú|›–K««óìw3°}o´Þ~G`͵$“1&†d,ž{’Z(ìjÇJñÙTÞ%æÆæ•À|­‹õjá”>ŽîÝÒÒñl‡ÚÑJÄJË^ÊD!RÓN^x-vUmô­\³…I1«ÝÑËGľ—ޕקx 1à³pÉì©Piu~Þü^Þ¡Éßï+ÜÚ ë85óSs²d«2V´ðCÅIÏ-Þ›*e»Mà ^9•‚ðµ?ÍXŸ +©–V/¼[ëÔH)ÊÊÒü‡@ÚÙ'—ÏÁ±~O=ú˜F*Ìùf^×1qNBˆUä lÆT"ð•í»Eø bpXÊ]ÎI +<"s Ô›W=Î`C㛕îŽ8]Õ[®¸Í~åtaÌNJNxÙ¨}ãþ»ŽHñòZWÔ4ÈbL™ß¤ϼf’ZP³òé,¨7e¤Árì1àÔaý ŸˆÚm2Æp.N2ÑÿµòÞï”d2eÑÓòÊ ÉÄLÙSH)#¨.î¨$%ƒä€ué]U2µ09ë¿Pñ]>y÷dDNÔR~¯ÝøµHˆ­e‰ÿy7´…hg€ ~Þm˜¡ .[oüà„aì‚ö‰)¸½=KOôü]ôò›ËZÀ•º'W ±â³{%T@D£»ùÕ\0Ï4BÜgÙ+a3¯9RôgÆÂ’@[°½ó€ÀúñÖT·ò£… 4zY>fPÄh\.(y¢ +ô€(â +1G"VŒbŠæ„qP¢öÓà îwèXˆkl}딫F[u‰Eñ÷G*f‰œ…v#1óp_¼UÛËräMSÏ;ŒÚs ÷m1&¸iÿǯ¦˜‹“Nxr+e€¿é ïϱyVå<Õ™9´ÔODÙ( ’;ØìI¯l*œTÂ^~žÐb÷çˆ*N· T;é¶1ZÆ?¥æLñ^¢Xʾ”œ!ém,p^æä‹•J°¿PIfÇ`ÒŸ Œ–é BÕ6‹†}€ÚvŠO N¼uî’)ž ÞAìÎjÖ¦—ïÓ\߆8²Ñ¯²–²+¡” ]ÙíRTîºCÏÍ{ߥKF© £¿Ú“î…yùS€Há#sKäïøÖÇs^¬ù2݆Íy°‘Ž`ª*Dvªt,!úNº~'&Ï2ÿ(k Ó “šS°>Òø“ë¬8¤ˆMøCV?×(ŠbË%ÈE$áÐŽ#¨ˆ2FåÁÛ¡M¥Â™Í·käežj<@í(½:úù9Üv´ЬŠ vÆ Ûf0mÛÛ†u¾ú–=ìf¶W6/˜åÊ÷¨øZ­’Àa:¸B‚›pm—´|ÎâmÿM:³6%ˆ +?ÑŒ7d)ñ¸EÓÐfd¢¼è$fP§]ÍÎkYÓá5†êÙ¾Û +…¼ˆè0 ¼µ³A/°°ÞË$YhpïVöÓèCSŒG‡ŸH“gB8Qr­ÈK( •F +âA°4@„ÝO!?|oámÅ€*[‡2\å(öëQ‹›úª…ÕyIVBãîÝf&ù ¸lYTwÄL7©ƒ¡>4zÂLž6?‚NlJâjlú½Ö[ôTî½Côá•RüþR­ô’ÑJIé+žY;l¨í`yŒ1h¹Ú' ¤f3æ{C¡ïˆF¹çl¼÷dŸ4tM:2I9ÜÓt6’ˆ¯Ð'<ÌÜén{´¿Íÿ’Ð쵇™EFñN3ô¾|KBôé‘ÜDû.­}\7V`®L7¦Ð}x¬ØÖíG™­BŸÿ4 + ¬ívˆãÍâÃQR¦‹DÂþˆ€²Kg¶xKêl2ž À3£“¼zÍÄà¥ç"La­ªÇI¶·þÅÍkm¨A8Ü胺$ü›†ƒž*Ù×X:ê4‡ÎûKÃ$Àð¤(Ç¸Ž“Ð¶}OŽû­ØÇ<ù{BDå8‰##}îýïC«ÁQ©e¢ÓJ.•O sÈMóÜÁ"|øøö߈Ïç·B4 a;äL×r"F½ô âbÒËyùG<2[­‚iKÙùŸ1ŧƫ÷ž®VKŽŒ| ”¸2Á­0(Ü~¸þ”“tUÁIrYv‡¤mUØnÙgmz7vt<ùߘÖ%Oe„¹m™í {ƒYˆ*äžc ÙËp–Œù +Ÿ!¡M*8á®WÙ×j™Ppö­/–OM+ÖŠd˜†Ão24ª]‚ø òæÌèt¾NÈ=L_«áJ7üסr)ÕÀá ßÑTEhTµ®³éy<„o%áó9¸?z¬H’é³6”xŒ©°ˆpcÁe‚´6.i="ï÷°ÁÖÌê\n‰4Üê¿k-ˆfsLò°­ÝðKÐVª’~ê@ì‡~,õt•ŒÍ̳‹/œû°ßë¡:­͸éÕ/Õlå8.~VxŠô 1øÍ-M:9Ó`dbv#ì¢mh{uØÂï'ÜÉä§Ê ³4H¼ýÕ·)+ Ó\¥ñ)NæµÛXG£U1edö8ü¨p[-òI(l¥´+Nö|„`n¼3…Õ„.`y@æ¶*6›³‰/c"&<ü¨[»’S7¤°WXNò}´Z“’ +p¸¼îÓºƒÝVÒ1×ôÖçüìaï66±‡+‚r‡ùÐòÃÊ"㘕bÿª?Ã#Ÿõ`½y}Ú/w2êŸ;œ¦ +o‘e=n +y¿ ,ÿ<ñ¬¥Î7ušî°×Ç•äÙÍò‹wd•II<ÔØÌáq~½–ó¯Ú7®Íiú…9<üD8&—ÚÀÇCx¦œºFæþ<>&è~4,À};@S†‡ÏV¹Ç¡‚þFîl[L¯• +<¬ÎŒQQsˆÐP 5ÚH^®F…þ9·¢Ù_4¢ëIYBÇÍ +™ÇN^¸ÒWÌgÊÅxgÄØ8 ]èº!ÖÆ6ýã°»’|æs5äªíÌ WÂÖ0OÌ“`S»{ƒÕΞûÕ@œž*%ä©(|}ªã_c•ÃÈù8}©:®´›ñ¡˜ËHï&,§z¦(,ŒòãêBÇÏæ²ü󡆥¨kRèÏ´Ëý +Õ©,ªu!E ‡|9ØÁ»}„¦Êm€Ùçòõòò¹i-¶Uqr ¿H Ë^ÇñïI2¹é ž¹®1ª&iC|dg(Yh&»}<Áž½:Ö¡•Èå¸n›¶n{{ú¶8(i°9\¦jíÆ·¬©ýƒR«»üÀð3hÞ£a€zð°SjÆy +µßÓ² õÝÜ[^ŸŒÄÆóx·ý™¬3Ú‰ +¾C¥._üÜGÁ¯¬ ºœ³D¶häþ lÈ› ¢ö…læ·4jäÂè®.êe¸äΩ¾÷ ¶N¸sxy! ê–¤¬ý¨oApB*«ŽtÞ7ãTs®h›ãŸíb$“°‚!8àÚ>æÐD^’+(=.#xA"öMàä›§§+™x§±c­Ë ÷ ã +¤ñ^Ö«ÂõëNíq +çSÑýP–y7æ`õ^6o§£u +*m§¸ÄÑÔD¦EÆ:Âö%AÍÝ“‰Ü&Tt5ÉÒ=éc0›zg»Ôx>á¢raDÃ0EBæ »öHîÃ8éjÄV¾bŸÃ¼”<=pSöJu{ÇSVizHö¿ÃŸ æT0JCj1NöÖpÊPÐ㟠2wLì¥XŠWöú&9—¤±MXާ— ^[$óF'‚š­¶ÁJSr«c]¸_(áU¬A{^ÖF^þ”“Ý‹~‘º¿Dbw÷nüJDØ_Z3WšH~FúpG‚g\ oÇ576~¯“|9Zd|šÉŸMŠ… wÏ F›~V€â\õpÿm8SªºxKÀ˜>t…ð¦Œ%A¾N¿Ðp+±³ZÇX~#¯C1ëh'p’ûã & (À}r0… Ç^™SÐîÙòV.Vð³CuA¨Ü„Í~ØŠC©Ô»›ùÖÀ3õïHaÝ;õöKä„Àì©î[Ë8˪Áv¹pÖØxµ2Qsa•éÝHA~’g6×Ãßoö íƒæ”‡|¢y ”¦] +N;:ß:)¤IÉòV޳S"’ƒÉú (1ôtJºJ‰{ ›R)éx0dùÆõþ*FÊþ)ëazüë#7üRájjf~}oÙP~Ò˜ $;x1¶jS`É qžËo¤Äù¸‘n¹ +Øåk4 Öx«åØwFøVRkL®¯ìVQP¿ÕäG‘ +¹4nùÎ$1o:“>§jh+ØŸ¤8sqJX̧VC&›‹Šõìü4×Á‘/ä'Ã$á¦>§ÙibdQÊ!?/Hû8¼Ü–ŒJÀÈYÐÃQX1ݼÿªæFOsh4)Ðé[˜Èï{^Š`–l<¼º8çþéÛæþ²o¡•j“D¾;/‰`MS;’ÃýÁ®âi a‰‘Hšx÷K‚…ÎTq!/uQ°b„Ú¤ÆÐ@áì;ÉN, ´˜¹‘l”îÀzÖ¸KÝ’º=g8ÓŽBã†ý ùEr¿¿$9O)¯ŒJ½<¯¯gŒ“ÆFk¯:ESem5Gs^sòƒ¯—ýšvív=’/çøt¯úé<˜ŸUØàšÚç‡*ð*ˇNaé¨[†“ ;*FïŒkÚdÈ3mÜPÀ»ÅâQOÜãg´<ôí‹u-À ›OþKÑ ž,’œÓÓm:àþºúRÈÚëæÃ\H–ÚK©`5É*”~RÖ†—ȧ 4"¬ »é܆'×kgj)üÂÞƒM ó±sq(¦J Tð6Ý`Z…Ó·xËVò§3aˆ +ç®[{%1_δ¶œ~_";{»™lòuÍ¢²%M™íT|Ⱦsûuò2ðºÛ»Û•.;Á<~RêèP*càVéV‰Ø¬äÝA}Ùž€‡ìpY3²ÎÌÆ¿\Kœ¤U Ì“FQã+F"O#¬T Ö3Wð­ç0Æ1âúJÖTlvíQüÛƒïQí*8ÊÊø›Ý&¢þ¢Íã½Sxé:Ãé’Q`Š•ÿߟgŽÍUÿ?ˆ"ihžd[j‚®„2Óôý¢@%Hãjbô7Ë¢_Ñ΂¿*gà«$hã z¥ +•W¸/æ¿MŸ‚í;N$ÂÛ[S3RnwMÄ+'–eöÖ‹vL÷¨¡$,ÔFÀp"[’sÀ¢…1§El¥EÛŽKt§ŽÓ!_¾ò~6¾¸¯N+ÛP Mï¬x¾{VaL„UǦv+^|o€¨‘°Ž+“X¶œ«1‡Ê{èÔRíX Û/·ß0~«9]3¢%–}B +Rí¨ƒÌ`Í?­.‚T0ßµ'ú£Y)<•Š3/Wñu9ŽrÒZ(3N3ä¾·Ó ÄU–Ž,nþÒÚMcr{õq…ì“ü…öB~QÏe¾7[¡ÓWã^ºœT^Ýd½ßk‰¤âu"-ã*àæYÝŒˆ à=RöLK)€ïl <|ClêO™>íÆúÕ¼ÀYróÇðä; ·B¦CÑ̰Éôæ:>sCi•SgÆO,³€_^)6«Z±Õ}%Át4ƒx\w\ßÇØ$ø_ïP5WÝ„ë+BÁ¢UÎ%Ûù `ƒfÂÏ(²§/RH`BRgtœ¼Þp„sâ-’¢f<è;¿ˆöDFÔ– ‘)eP¢òk«ææÀz½ªìFšdK§H˜¤(XG¼Ž!,Vz­Vž|¦!·lxkà®8í€p«l¡ôÑ%±ÀŠg÷8ÛkÃP%3{oØç{6­!½IÆï ‚œaóñ¤Ë3Zî²ùsVÜïrZ¾H¤_ŽxuF5ôE| ¦HÏž]ñø†² ¡‚$ˆX¿†ãêbþHÖÒe4ï+a`CtÇã4WÜ}0mirêˆã®²ðXr5Y«{%:Žòu÷4[ç ¹ä|ªd’N]õ2¥­Î±&_†ù}(“¯ÛãSvv üôÐìzær¤^vë”ß¿x¦Œ®«xŸ~4>ZL¬5²5ÈÍöûZnÖ DfþXÚìŒwƒÚY8PxªìûiK¹zÖ6 P†­×ØhìZã]€€EÈ‹Ž¦Þ׿L:Ë¥­·Þãˆad‘­q>GÛ_K$4Ïö½L;$0Ê(¸JýÔÞa¨ ÏE¬Ä^êõGCïÏæn4ÀŽU«nïX¢’ M¼?i]qºÏôçæ.˜QµZ@ K +¥Þ€Zèø•öéOy"Ø!oBZ© Ã}ÕÔ2æ ¸ççS«1ÑÊ·WÒ`0ɶ¹â~ºSe.ÛÆi+‡QѰ1Ox€jÇx=[æÑ;M—?¦\Ç4òN\uƒqv”qQDpñh?rÐRzÿÞcSEø`Ždkoxè“ìkHèØÒŒË5ŸZ¼!ÄÇZü—Ö¹|gê #)?“$i´Úh¦)+n( Íȵ¤…`üDzúN–ûÑ£¦¶.HÕé„Ö•Ào_(n):ãÁ2‘|Ý+ØÎôlp [ª™ã`qÖgJBÊ|Œ*³_¦ |ðd(ŒRî=~ÙT8b៲'79¼ùKTÉ1\a¹Y8šfMŠIˆ€‡ˆK~Œ†¦ëÅHtsœz&ó·F>³—&u›kf6±]ŒóØHZ4úíåd êé!0™”‡¢›'òýº´Œ9â_äÃ48 —î¿ÐW­_¨ÂÒ†ëÆd·¯¿Ü=}ä¬ßò`²Ž[«&ÙxÅåͦ=ϳuêó&K¤¦šž» p…›—ºÝ&ÉEt%Fïáôݼ#0¾ˆ•zê„ ±ìÈu‘§}»½ïqûÉÐ×6 |žßX= ÌnÝÛ @#sNä–@gîà­ÃÒV|k«']Š´UÍJÂMPZ¯ü÷7*Â(ÆÃùxlsspÈ}µ›“rã#)»-7í!¯&èä°÷]ÙÐÍLÐ+ŽKüàn +#¤b»šøÄP›ñj…BÛQµ!iñ×ý÷V8³\­ë˜aκ]Í«¿ XM%¨5q$§.£ÙŽ'íÑÅá<<å¨ÑÇâìv>ÏÚf©›yŽâóó¿ë·ÞËc†•ùïcoåˆ8Þ”)™:ʱjrg¡7Æg|ñ³ŠýFž–q–#¶x†xBÐ?÷B%\m^êJ~˜^ï]¯¡A!k#šV”†Îà¾bW>"Ä'ülnȪLüÆFU›ôƒ),W¤Ô­¿«œkë&#Zdz^Ú8C6hÙ\dݨ¹ÖZç`zÃåAèÃbräÕAÙl1µdç'eîø}CdÌbTÏE*d?©Nµ^ÈÙkn·†â§­I$0Ø$Y6ç]ɱâ†_uìøá"wznTØem`âº7aVrýŠr½äQóñ=K $H¬w„þ ¥Àµ¬2]=™ÓelO>¯R!ÈLÔ=zŒj|Ú*ýŨ˜,M8¡LªÛfâŽ1Bb¯-›ä–/M¾DßI:°Äp¸ðÇëú'S£®×oG Ô:¦RÚÈúë—®Š9<לž¢F1Ib r½ æ]Ùä,Ê£û&¬HΖUÆ"3’+¾*2ÕC\û@²AÅ’ÏUÈÔaêµùÔµ.c[t+/çÅÿâëð] RX7mü­žÝ·WÛF9ÝXºQ£ Ø;%T‡9ÿ•lÝœ…±+óiäÜà<æëº Zu^´livQE§¤äËŠŸ®ÐÌ;d†Ä(£Ào“Í»Å2½tA= '&AñË!*øÕ+}.ƒÐÑßX”4§˜j!³íná”éžUW_M¾’Ã>Nd¾]êÕµ¹þüÆ"x¶§$ÕÓ¦Q}¶cSü«Ïtô—ݰêöcJ)9¦f¿ëç‚ñ fYº‚¼5Œ\Jš€¹+fK˜ÂЛ!B)7ö¹Œ$¥dµÁ,nÇoå6©,åŠÜpO»'…:ÝЂpúšœoµ\«¡öÔöpä®Í.°()É©á ­¾)×{H݉F;Çz‡6ï W6¦¸²cÛ±™)š)ª8´é“ö~ÅÁÚøBK츶bòJNd8o€Ý(ðÜP +l㡱U€€‡ƒ–:ªû+Î!Ìu¤AzHžNÀu>$hëÉ–ÌË;!a’¸O% +{@VãoŠ?H§Zº¡{Ò¨?kü‡?Ãá±kñUñˆ¯„QŠtᬙ“Ii“u3[<WÏ™|2XÏ×óaÎ9C´m‰Z[˜–ÃÞof Üb.éÝpA%© 㲈7Bš9ëó­l„Ît{[þ°´…è%.°vå ü=+l ¿ÝEE מ»YÅrƒí`-Ob‹N9È_ŒU‘Ùf dyhnX°}“4ÌbAœ CâÉŠÝ !ŠQ7YäÞ­lk’óèX³I,4U\;|Ç‹¦¢dô ÜØ± $þÆŒ\ð/™8'"LB%€õ·ñDÎ9jãAÒ"¹¾Bß± p¦*“Ð{³—f ïªÍ~8ýPøöµãS0(S?¢bTî­…@`Ã1PÑ¥±n°SŽOC—&Üe–ùy›¹t¿Ñ^Øi+¹2ì;ôÎÔä/!7øëÆ‚e§Vü²è£ s\JnTíùÛÛ8;±¥Õæ=P¸{îGPcCÕ´Ê +¥C#µA‚4ÙVÒeö°ˆ«Ó—ÎùÂÃGð•í!åxtº°»dù2К²¾0 ‘Šö¯%K/ÌN˜b¸´v|·ˆ^) ]Í9ú@„…«ì©Ý/imm+Râ[ä/”ŸW›Ç€ºp ‡§@M«ûɵUÕ¶³bò\K-m@ü¡qŒMg°4°á8 ¾ÌþQäQ+¨äí°Ì¹ ºÞ. +ûS«=<Ší®3ƒÓ‹-yØ=‘Þ ½×d8ç_KõÙ*1~3GÌѹ8tüŸä•j9¾¼Rdº±ÿ­ÉC¡2%÷iaBPèHñ«˜42<éVGC¡´ƒ Cë%™lß‹6Øb—~‰A>ñôòg(ã,ùûù€(6% É»­ +JOw¥A¡ D¹Fäq_Ÿ$O FTaHŠBÊ1ѹ”.øuv:¬DÎG±÷ªÍŽ"¦Î8ÖÛŠ¶­4¾ÇF#ÎxãaÇw9•r*§¢p]&bÝÐå·²æÎˆaôu €Ó w:ý„³d©FqÐbã?U¦ ?õñ4X½Ÿ­°*µ1%7©ê£td ,9±neMbÅ2§¿È+¡•‰ðøÑÙ/íø/ùsí¹TüXÁbHØUüͯ· iêéq꣒È,1g;géý–Iä í‹^ês’ežó2mAY3¿¯g¦ÖÛ†¦åy†Üùæ^áµàlÜš'nèÇŸàZˆÃÉ…Ù'äѼr…§Q,ƶ¹åÛàƒÏ -EyïJû„(ÀE¨÷TbšùÐÚ ‰Ueu°âb'Ûv2…ªy\ñЖ]¡íݼ›T˜Q[–“gÆÃÃòmþÀ«¨Øìã6ï·&÷ý.úYM.ÙrFEÑ\‚!¤‡w/ä-t›Õ¶Yp7€Eò¥Ó¼ƒ^WÉ>,ô°5ùcrŸøžìgÓ~³öYŽ&ûZšsŽ+Ÿì@ôgßkë E†ÜÓó•K‡Œ¸Düô0ž„ +O<Žë|¡¤y’.Ñ‹z?‘„­#–©k^útÁoúUÝ=ŒO%Hu^£;!Šœ5ùvXíâÐ_J¸2ªr0IŠ-<ú•k†tca²Ñýý÷zƒtåÇõ›ðeÖ¶ÈmŸ†t´Ëƒ‡'¢õ$Ð6úF %´–„Z€Õ…£Ï\–Â0%äCÃÑUÒiÜÉö¬»ëÁY榟w”}ZzpÎëfà£t¨™~Ðg³õŸ¥ÔÚãhÙ–PwÁG>%2 äåùzä:ÚB¿äêh¯¶…À^ñzÝY¦â-6äŸöÖ@˜~»3:]~GÖœào8¼­Œ­ž·ß2=ýPóÒ„KÁKÿ¨6ÓQ@*»AÙ{_/²C€2`Áqò•lª>8ƒNæ %@•õ@,$ðä+lÀ`$“ít‚l”åþqW[zÞe—˜5üÙ`ä`ÕÛÛª_˜%J8/Iãä‚FA7˜­©îšèÉÎ8¥(\ªI~O˜j„î×Úºð* [šý[óv JL ¦ßÈ]-9º²¬-F£˜žR”Å/ k +—8RêÆSм¿ä@â8«XÖmƒ2ê7­:+ŽO›¦dêÎ……-¶Öºw5’fªÁ†W«•¦É kðâƒ'Ïç y—2K˜J¿Y”È,²¿ÅGG¯<«<5HLɸjÁ4|¸{IEz—åœØHÍPfà¦H‹eOo—Fᯎdñ´“Qæ°S&r¶w +Š”Ì“t¬-ý1âW«?;ÀÖœh…[‚ÈyººÁÇ{ÊÑÛŒ öA8gÞödD_° ÷ô[ãéäÕP>Y‰æ‘ZÍ/JÊæÕ©G à®*¸ðs+Ìõi³Jé%Á$ýsííèvÊ CTŸN+”ì„•àONb‹c÷pGÎU²´ÃÈwÕĤÑÐÃ¥ú+G"´ç»ReßϦ›´#í†ô]’Û[ƒÛÁmbIÆ(¡¥õ>Óv-–̈È,&é‹Oˆ±Ê¥K,¤A|žiW^KÆ×Q+ùÁø´.ûjâžHúâV ø””=ój‰!Æš‚À Âe:‹íçCyæ’«£'£Ø½ìêùu£ìÑjÔá!¯wÛ –ð>´øÖuëo #Pf‚e{B^oÖ~,¬šý•Öp’á³ìœíO•ôvLqHÒ/ec¢rÛr½NþÎÈ*zJøXv^IqÛ™€l ¼Ü0qïàîÛ©¶÷À—¿JÏ|m¨?ø­ Þ¹q×PÑ×(i ¦ÃIsÞ#“E›‹oRÐÚZ7ŒHPP }hµ øÉhE¸7J©y¼O"£¹óâ ÈÓÿÌraò(›js£Š­¬‡cÿQ–X,uRŒx…³¾‚ŠŒa4Å%]2€út°Ô-N&ƒùˆTQÏ8¦üê!4¨(Ρ]TqoL¡Tb—•¶_ûÈg¯Ÿ€È;â{pÝôo»9êžÃóÀTŒí”ß…bS@<C…”&5;)Fhí¯éÁßòoS—Î¥ÌÕ*ÔÙqœ¢0–Ö`Ì`-Ãj:#X… ¹|XæQoü•[¸§Íú­Ð狱Šåá5H7±WäÍ‹ZËÇi¼$8{H/c᎚BIßrŽ‚’„#_2rû4s:_øùœ¤¸õìK|´‚IqN½.çú‡ÚèÕµ=ä|â§#ºIv¢8÷Jt‹Þñ «X ìXùLdpÉI…pš(KÅ&¯¦ÇQÒi xê)6DóÖ½klŽU”& œÆL9Š€™½ïJÈFÌ'äW(t”ƇÇ7ù5HÛT·¡|¹ýöß(Mwɲ ÄYÝu> +s‚"o18”>’I˜ÍÑ^¾_n´%zàfë²?¹Ô´%ìSó°æNïoZäŠHc¨˜¼L·¯½Äô¨„‚ï#Q…*»dщ³r¢7Ø-0²ßrZÚ*9ZÏދĦÕ[&šM±Ÿ~BI6–Ñ=w‘NÙÊ ÷†Óoˆ”Ívv¹C‰¹Ù=ó³ÔìeAç_–ÊžÆ:M¢‹m—Â=ö=£ÎÝ?p+Pèìè7JCž.–;Vº± |Û¤38¶™½¼á˜¹ï÷Ùh¼˜`YâÒíÙ*tÍHÝHI¡¾R«˜&™ò ÕDHë…ÝŒû3S8‚ÝCEÄcd\v.ø»=V+Í䆋K7ËLØ~Ñj€ÅÛ\•\nÛ€ZvÔ‹üø,Ød…„U¡–­rÎ7ÚkèåPö—=¥æ¯£âÔ|ëüó.âMTÇÒY°ùÙ÷õâ;$ÙÇë!¹$ªÁ6g{.]‡Ý’” % ×Pó6É’2Ç=:‚¡Q¦s>ÛøœŠ¾«‡‹,£@¹}¶uÛ¢{|ŸªøH §ÄQŸ”ùFÀ;l™å6ä=u9—rª®ŒÅ<.–œO|¸ôÕœÚ ƒ´ÓÌÒ¨Ú¯ÀÏt¨Ïá!ÿ¶÷ÁößøÌò¸®Ms©ñXxvD×Ë}6EmóT¡>–Øsªt“¾>œe_–ˆ³úÍi;Z¤ Ðt¸#Âo­E°Œe¤e‰`ˆ‚}%Ò…¦VÑC¢å̹Qœ5B;Rµ«Ùx®¸Åõ³õ¾»ÎÏëÓ õ¾ùZcÈEË;ñœ[ÏLN.o^àûh!:”†ú®!Qz÷iW™Àœ$/¨Èî +|"u„àÌÆ<ü„VuæN‹Œ$<0Í~Rßukô"¨„TÁZ<—Kޝ˜ ªEÃ(oä•f<\¿½Áj[îÅVõAVš£-1 O\¼%/÷™‰Ëÿ1K¸r¬ƒ¶B ðР—çµë8|%Æy“—Þ ’êa‘˜ºAF[V"¯òÃQŒªwš†¸”F-‰âËwêkÜf hч䜰Øs¶Z­\…ÿ^ÂéH¢€¸qÕ~ g Œü]*Ä×wüƒþñÆ[iyûTÒªÒ¢am>|óϰ1UÖ¼¬5`Oö)`¦òM¡j˜-%~©G0ÅÛkÍÁŠõí²ecb;Ʋ3ãúºI”{%ãîÍ<î»Ñ/q –X¥ØpººÇñ/¬èÁçw”ýÚy1]K Bb¥Ëï%´¨òJî*()«´ôc¤¨-iù™«(¥©“ûÀβÜP²BWÞÕªé#·Ù—ó Ý'¤l‡  4·rµ·gárŽœÆü·ÑÿßûD9‘«o¶ ¬0Œž¥íý飩æ¼<¾Ô~h‰÷CD˃ÚäÌ»äzÞ’M”߯\<§Ôy@hI+€¼—j£fbëže•v½”a$äÐ׆ΨRñXQAå4y,c£V:[û醨d´fìu߈§ ãøFï¹Ì*0(Ì’@?^ # ×[ùÖ(ê~YßwQ % }¬~“£ø w˼W°{ƒå¦£œíæc³Þ|«½`Íà®ÐoŸÐé9 ÔêÇÑg7P® ^טQÿ‚04kâv¤þdÏ™Ù5wÇx|-¤0O{çZUjZ7‡ gAY·§Ä£ÖhZ’K\r3ni&Z°¡æ|§Ãë5a˜G´¯nT®SmTHo8~÷ÚOpãèŠ.ú­÷=‰Úâ=]ÇzNâ¨Ôáîê,Å­÷Í‹;&¥¿ðlí<Ý“ϸ¶¶qûˆ¥áëU6„Ó )êßœº „¤`&x6‰þb·&3˵òóTü•Ï Þ–·“è0„¶9;æaÝš¸%–DjÎæ4JÖbû¬Ÿ7(«ÏÒ}cUz·m£âƒúqÈ]bç‚,›ÒIÿäŠÚØÑûöa"å℘Áxÿ¬‚¶¢Wô­A[YïŽ]Ô=”ŽëÅþD¼$à˜VðWMN ©¾ ì½ FY¹{Îqºs0ÎhPi}¬í#™¨æ6#Æ6Æ`-#ïSxgБ©h♑üFwÞ8ñ¥´‡ªZnk«nÌÙ^âo¨ýV“^ðþ\ m ϯ„™0W®?—?ܹÕ<1ä",•«I¢:ÆÝº›m7£)¹¼À_¿&›Eó‰ÏA ¤ÙÖÏ´˜*Ü&én“ÊÈDf¸:Êh$ˆ8ì÷ó:P2ªI‹ÈBúZùÞÖ÷¼(î40O¶4€yÍtžžÊ+p׼ĉýîñwôt*“û/¯sóu2ú5T’Å jÕ‹Œl:óyÔ‘0X)QÖüËœ¤º%{UßÜ¿æGKj[Q;q;ê÷"Ó>ï4;¤Ä¯°ÙŽäPDï"sý+!b‘Á\}åƒ$³|ö˻٫ÂLµ…qèkÚnb^ ²˜lßR>R6¨QÁü%ypˆ/€©p¦áŸ¾T5à(FË]rHxûªêßåCÞÀ§ì^e‘ žS$ «`[ex‡…Wï¼*Øs*…HyÒ3‰û÷Î×W\þ @ö¿CŒ +cÀ!ëWkb.lv`YXõï]‘z¸å»rkaº ¤òÜ_4ø3óÓU·ìuØèKÑËCƒØ®×o|÷óTCbtçf à§ÿˆ2A-rÛç* Þ`?bƒÂHEêè‘ySI…žÙ'i@3 å•;6*­ +¿•}=ØøÇ¾«´Y]êI÷¬µâyÙ\àßïâ*ŠKçŸJÓV^yOlÊRì-©Fûè•?sÞöNDrcBöɳšÜ3¯%¢’•ZºÙ‚ÏÎ9¦t®˜µèajäèæµYu4p¸PQíMF„ð¯­v¥‰yY¯…ÿäÃ1çöqÍ8Š30àî^iªÕé›ó¼‚• +œ.™Ê)œ +\CdÆN¿ù&I•K®É÷ íeg~ÛQÍu‰ðCŠO&8Z1©3A®³h—±q§ÎÕN6©ÂšÙNŠÜ§‡FƉ+ŠÆ½_RSšõ­ÞpÂóèn’À´ 1ßR_íô±BcÛ@ëß0;·Íf _ûŽÍ“o2Ë­×x 6VuÔd~ Ÿw[´ ¯±¤NØÖž`kîC¸Ž”Õ‚ÞDžОñßê?3 ˜»B0Þ_‡lX¾V~‰kÖp<é¢Ï™çšŸù§¾àÀaE»%g*R5‹€Ú4èvyÇžŠ¬¥¥‹£Ž{«îƒ 5¿olÚBeù讈™ÍñvNÌÃâÅh›œ={ùÏ„;ÓK,hqý'‰àŸm¯=‰&|Š9âfIL|¢PAÞ;åÔGµ¢OvÇm;eñq{ls_šrSVÖxL=‚l%ÙL]⬂älvn– H˜g3gN(3íV@n¸îë ‚w¶J§îY^} ÞžýlG©{`ß_Á•ãÚÂäóÈ›xªb^õ Ž­õ L¹n¯\è~n€FäÎúŸß{Æ’˜U m‡w%IN[@QðŒkÊ=Égó€?½¿9”¤ìhÏÁòeEv2¾¶‹uF(ÔÍÕr.õ(jæ¸B†¼7oû7›Ýš°1Ñ&8K™þLÎ}lŸ¥—ðg\ü¾–+4RŸÖÿ(ÿH’0%²á}~87•<«guÏUQËÐ ¾€—ÂÃü‚Å&*ÿ0–þwŽ…»Uvl7~×ç õ=cÛ{- +m3ŠÏ:³}…0ÈvãW$B½'ö8ž7+À0£Â*Ä0žxƒ6—÷[W¹ ÈŸ{Wý µe{q¿øìT”'Rµr&ØqÞÀ[ÄYÔ;èÎþQ7}À°‡¬»yM;8ÕãbÝ\D¿ºØuÍ,#.¡³îr7¹1gÔùúõn_f 1òμmE²Ï«~¶<ìè€iäÚ¯5x:ò³÷±Î@Ö#Řè|ÅU88\s•Èòoë_ç¿((pý–9²© ¶™²°†x 9^œÃ,ŒÊÑ÷j¦YððìD±¡|E“XV­£Q#ÊìÖ¶‰p_Ïîír78^‘ Û" (hžQZM›’žyQŠtÝOŽóöjÚæý(¢Â%Ë¢Âéëq(üÕ¡ÅYö_yì06~où¥ 1þ02…Ý*L³Ë¾=¼ÙdK\Ù¥ÃwOÞæÎ1Lîü…lMèl늆]”¢åž¼#éI{²Tý¬Û´*xmâ!Áﺽçý‹ë$ê¶"lÇç’Mæ¾eû~ìÊóÅåÛ° *§ºoGŽH´žˆ £‰´–ƒ<äl8%`ì‰î´ÀuÀeOйëîÚ ø'±`ggv jÚk7"ŒÜC\£ºû-þªÂlƒÄ';¾ù<ÀGÌ­Îç÷Ï*¤§ð÷R _=FT„œž§”CT³/°+î1W°èðÇîõœ$>9Ïû‡…ð™Íè…ŠËb±CÉŠ¾»ØË3¦s¦_39uuÀÈï§í1^5æüÑ'm–ÎðñÇèâ_¸O`«nÄ|uê€i~5€?åÉ-6©†8½üÞÁœ17š‰,ûÆö(2õ*]@åí™17šÏ¶ùƒ-¾ ÜUiq>†^Cåt[WSµš¹ZK+S_âXRSuSS6lqõ_@ 1w«†ä£ÐJ¾ÌlvgMðo&Nq1D¬;zîrAÉ¢TÔâZ¶CTIGéRaø Ä +1ã¥Iù”›¤×žd0È]û1‘ð}rÎñ>Ñö‚TèÌÖÌâãg±­5Rp3Êt˜÷¬äŒ›ª²ÎÀðžw š“!VM“Á?iã D?/Ѥà{Su› ô$[Žkl$O½¯#„D…+èðQÙ--‘hv ›¿ˆòL¨‹#¡ !í[õ ø}i±”]¦“›ëð +Ê%ÚN̆EÊäT?·]0Æh*%Îí¡tFúCûXwÌCò‘gáR tâ’ÑÞw%ˆLè4OH)öìÊCùXecÿ?vÙ¹’f¯¸«… søÇ“(ƒ•û£ä>Èdñ?^‚åšqêG®ß:ODg*×7ÖCsª´ànÍ{–o‘'¤Ìî÷fó"åué…ß  ~67Á]‚^! 8â¢Zs&b'Øû®VÊÒÊyÜ£€díχR³Ã©ODÝÖXã—küMå³>«åª y†EiÖžy ͹„Câ†+ái²Cv© ³¦ŽÆ[8¨WÜѽzoócõÊ3Œg5!ÜjcÚÔ[<;ýc0H6ºÁxA¨´Q¬žÈï¦×ø0tù á¬4ûRwÐ]‡Å¿Œ¦é9íñåy¶líÔðþЩ e¹ôÈ‹ü~)Ú…8Î_ïŽü2õÅLå¨zÏn®VHi è'¿¯ã?BÔkòÿn5­ºÀ@¬Å—p(Žx„ ]±ŠpaѦ¹=çù?@Vk7Ia2v˜íƒ,Ç.Y’æ<9æÕ’è8aŸ×Ã÷&Ÿ +Ÿ8 +v£s¹¾’«Oã€Ü;ƒZ!$L!ÚäÆTÉ•¤sùeƒ²øú-ÔL9µê…û:ûÀHGÌ ¸þBöXž»®b©5@‰•8 +«‰úˆ}³eW‡]®Y ®+%ê‰xW_¿}ŠÄ‘V™8 °â&ÓEPÓÏY …aÚ'67Gÿ›¾@¿È°Y€ó”°þôĪãJ)VKs7ÑÒyz¯ÖÛýà`´µ·¸•ù«ÎÝó¦œHBèÆ™·Êé¡ñ}z„1ÈzEo2ëbCœZÎ4%$åÉчþ}À×¾1­¶ÖΔÕxq]³ÅšS¹ÅZÍ~?qä aóÀ»Ï.O| +-Ï'}þqÝ>+Érö ×åV¥ÿ‰ï+þÝ$3”%Ñ——éÑÕr̳na®â÷kžIÔœY‹eØcóšÑê!`Çm&Þ„°Ò¾GUBd"•Ÿüë@ëÝ´¨Ž•¬jZoæÏ,mrÔ¥ 戋ʨUâÙñf@?\âþäL#ÛIßç0¬ëø™Hå2ºGùI§qÌkϵ“‹ù8º¡Ï¯A=ÓÜ¢k|œ-³1ÖRܸ<åmåhŸ­eùAY«d_ãï´(ÒYu<߉Àê™k[¨})¸ƒo¾UÃñC¨ý7ïk6´ô½F+[¨n’‡{žÌ¤Âe¬){ͧÝÛw·"^Ê e-•y:ØåO˜S˜™Ú]žÚç$=m°•E,SÝc™gw?Ò…KH¿©½ð¬á–ÑVÓÈCÌ+ú1X x™Gú5`ôš@l“OµJ)ÍíîúÒ›«jÜdàI$j–J"ß#…ÿOCåY{ª"8¥©ÅŒ|­®•Ü‹Ù(ñÎŽß¾5¨QrÖ÷eôzBÙÿQæQ:¤TH[ˆ)jª]²Cÿ8Ä©mƒþ…}ŠÇð@¯iã4J÷.Ú3 »‹"¼œVÆVa] ~ø„³ÇúΖùZØQ{Y¾cI +x +ÝÔ ž]¤ä¶Èh2q®<Ë¥@%áà;JÇÇi¹rÈbY£ÑYë +¶ýªkÝH /EÏè Ô"‹µš‚yïâåT9|¦C‚Pȯlö݉ǃ¿æ%”ŸS®3K"ÎL{³UñYÈäŠ±ŽµÄµ¦Q²¡ ¸ºÝ++eÛÃÔR4CD$Åxh²ÞTsVJ3ž4 +ÐSfyÃfù cÁ/Ç?óS~wË«êÚPÓŸ63»œB/Ådºbª=#‰VÉ û„´%A£9Gê°Ï‚l Õéî JþÄÑ,ô¤·xn[Ñè›…€âŸrh¿¹lïÜÉÀ¨0“g&¢ÆÙX¤±×D×b,¯“u%OóÜõŒbއ&$v[°i\’ýä3ÎY3)‹Nì¢~…ë¤ßbÙä\$gV­ 4Ë7£´‹ˆ¨ÆåYVFštÕ5-åY¤]o ÓP"D¦óqU©!ÞÚC²Íê;ïñ­ÝáRç¼èËwéÅeåwRü¼ï‡U Н È*ÕcK•y„¨ÅÇÊ9[È5–æ[íZúÖ@Ëì-v¸ÚVÓrΟ^ó¦5â$âÀÐçÉ2Ni «RÌ?@Õ™£fO]éa¶­ë¯Dsé°~¦ù¢V Dlitož’Ï!>|HßòÀß\gŠ.»Ö¹+„Úq­ZtWƒBéQ¢­­l¨Ó,nuù DÙóå“°”SÎtqÅ÷ó$õ§L-ØW¸S£„0HÏЖÉM‚wíå4û-ÿô†!´~O°~54°²Xùæ’û©—Âz)¤:lÁ.¸vôÔGøP¿?ÚË< #N†"´Rƒe3Ép˜9°Í’s°…m®÷{ã‚Y¯È©ÍEuéÃ2ÿG>®™Â(˜Ù¼` ÕbàT­ïX +d~äN2?•eE_?:Fà#QáSM%dᢗuÚ§CÓŸyµ8D6ÿç`¿,ò6 tÊDØs¶}Ò¼þÐ% +ª +œÍ|¨{«åN'eyû†r¼¼—*XýÆ;p÷Ö~¿~A†ùù7®SaâqÖ²ú!É[BÚæYFKĨ`‡à®`ÃŒ·ƒÕ_Mæ—±jäcÝ FHþ ¸ÍK".$ Mõ;§ŒnH´Ç§ãŽ#†I›Þy¸ywúÕ¾-æb±¾2Ö!CìÜÁÙ–×õÀþç­ÙÉsÆt!,2w%è÷Îä%:4}èºêÎŒ6x'‘,G¾Øs7Hér­!=ÓÍ'÷>ÅUqHk±×¿÷¸’m¶IÒE2ÿÖ°«õÓ-Òúñýù\VQ PfÄAD“‡ì^)åÆ"ã1öíl8iraþ6y(Éb]´×#·+9 ÏÀ)‘l\·yœ2(¸–g¦î"{ v§ITiÊT”ÊHÎws*–|e‚Á—Ê=Pn—Ž¥ð Éú7`ñHY±ØåÊ”wð©;0LÚ ¡z ·tHº‰5™?‘òtŠnƒ JuüŽhN HáÜë×Ù’´BQN™¤Uínf#&U%‰µGa‡ôæ˜â-8?àeñ ÏŸXÛß +¨²bÛÑzë"W6¯¸‹Pi~g¦xÚ£T¿ešÊ16;­®½›ÍˆÒK¯=*ú’£:STfàFƒt/_’ÁìÅ[…@èqœÊÛŠ ƒB‹IŸV—fÔl0·0V! ¿ô‰¡ê§HH Hÿ[ÌzÁšòˆÌa«ð%;9îúµÛå[ìÿÁ +`.ñÆe›¿‹ZxüˆPn²)HCVMì^kQ§¬eõ°7O* ú.¬¥þлõÜ çhÅNf=+÷:3§ôy¨Æ™; ß‘„§£åhWÎÇÛ+‹‡ºá&õa ð»Y þƒcãaóƒqÌz–ˆ'I¨§ùåãÜP6Ö‹œÍß WK?—ø`¦èv,lÍ:*Ñð×Bj¡t…¼øIöî L\vV·È —6æâÅMËO†D®_ _|ïgQÜ0ç"Â÷°0ˆðÈòî®Ð×t¿ÐòŸÜ¦ÂÁÑÚ7À×7Tfúøv¬ ¢f´Àªûˆ ã¯Øø‡õõg@‡`öâZòÂkô—bX8ðJK°©V'A] ìMÛ’wؘõô¼qzä¡™ãÈŽM£lÊúï,(>ŸfÜ>Å  p¦’¾»n‰u‰ +9îÚ àŸ;\¾_9îBëwRÂ`åÏÀtjyH¾Ò/~®$‡µá£ ûDþ`ÊofþOó4ŸÜ´N ºlÐA;1xë)‹·Ê +¿H9µEÒTÑ “­€£A©Éèe³+gþž‘×ÓéÔÞZÍ¥(ý`s5£DMpÉüÆo6ÚSh¸×òÞBU + o¤~±–Òý41û~WF0,fã°$é%ÈÓ_o‡;´xb -«R]ßÚÿ*fµ'È{ÍÙt?€'-és–63Û8l ¾VpT隇µ0€€šÚâòTZC×Òs7JCå¤qÓ~°¹·ÐYÛjJq¨ëçÈU"‰ÉXÃ2’¤Õw³Z"D5ÚOs—ŸO’ô™H‚³%¨YÀ¢‘ýüpÃÕ¬ÕÉ?ž˜TÈ,{­hwž–¾KŒ‡½qΨ=„ËwÇn Oš‘þ9Z®#8 Ö†9{…ø÷Ô)3 Ÿ»ÂܦË)‘4Wž#¬Õýã1ÆOò[x´"‹V¯õÙ;Y¹§‡çÉhk\Pª¯“†ðK%ðÞ¿†K´øô“ñÊPÏkónïz;kö?|4ì~=™2—1!Ûâ¥.`}œÈãù‡óǧôÕ¿_…eñÁzº5ç±$øé¿S5ô~ó´lo^ºÏ%ÁIº»Ž$™LüA›­*ÐÇÖºqAZ sêËø^©¶ÀJf…)}wüæìòýæí‘ÒŽ{-*ië0·˜XKj+†g†ê\0ŠfÝØ1´Uè+‰¬J—ª46ÍÖÂ~gJ:·×ûw=YTêõQó::uJT„ FM}Ÿ  <Ž€a¸‰>8·‡wÕ×b…N.3bxi6#Rp øíÓØÔ(º¢- 3i\×¥à+c¸ùM•.‘fœ¹ ød³¥ïÙ•²$æÒKƒ)—b¥‰¢ÌZóªÇ`x9Ò&“ùÜt½–íľ Ó‚ÝÃ0u9»©q­Ä=šÚ #ó#¸_kb{cþÏA›h×Bvåôļ ;s׬ý1°I%¸è–×ãþË4kZxYÓúŒÕ±•ÜUt´³)v>,=çIiì(FùEôº.bàìm{bŸ Í!`ØÒÜaJX…—# + í­;ûèzŸý_NeÈ3–À9¡e D8>Œí3àáLI•†c^-DÚC4Æ\ùÐ^òd˜ “c» `‘ŽŒÊ¨&&§n\h{®¿Ö¡——Ÿa- A1ú‹Ûàcˆôógž²$7E”è»'auÍU§ꩵûÔ}D07nœZ¤ËÕ¶,×èRÛ©ÎQ"#5µP Çð=™ÙŠ9^KY•ïi ÷|ÕÚ€I¢„¾ óÞQ_NÒáSi0¨Dcî––(ÛÂmºm(ø+ŽRY#¨ˆ“¹„lÆZŽ×K ;Y I®ÁÀïZï¼iÚ~¹ß¨ D›?@ŒM§4×<`3 1¶OŸ˜ÇTN]‡-•Gà[ov&_jºèTA·­ßPòr’m"6µûÙBܳìjã¹Ì@K¾W5vçÞÃa Iÿ_×ZmÄK±áV'ÑNÏÆì>žd]õÓz׈?W%r‹ç©©³—ø9PžK- h>ÞŠFÇ~ðJé!‚§éË«élf¦?aA·!¨&‚½1 wHƒ®¦õRÑnR¾Á10ž|ÈZqÙú—“Ó2§Ÿ¼ºz)P8…‘ôFº¬*2,‚µH¶‡+ŽK¯Á–üyg…Ãqq@yäý‹XË ¹Ý]mœE€1. á¬Û+Sú€;qØ­.[ +ãXx›Ôqß6YÙ ¿ªÆã´9)¸ 6'ÈC®þûtivÓ«aÜÌŸObã±éû˜¸zwútMµ½MÄ>rÒÔÛܽá@OÖÒàÇPÓÛ`ólq'Ó¤þÙÆ×s:j\E3 Kd_OÙrÚ“‡Áäîú6=QÁÓ'¡õÆ>Éñ&Â,Ϙ8(rˆ •fó~ì¿<‹ïþg|YMÀZ` ”L#\h¾v”‹ñáW£sžà;ݤTK?ôàwJ èq•[WhˆœX,ÎöûÑAÔ]˜¾éÎÃ'q±M™(]Ñu¤ýVF×ZHH#8¹ûÉ4rÕ¦À“=ÉÆ“׬˶•wrv/éKJ +®EïñbžšŸï—^9‡G·3UÌåWnøÌzûÈœÖk®Fpím +»Rt +p뎚&ºÅîëF+(ßÙ6ßx ª7Äœ8q• M¿,±¡sºeaBìì‡åˆFRØåÙ»àÊ:’ ¯HÌ]¬Y¼¯Ì)6“^ê 'P•ü¹˜Rí +m]b—î÷‹Ÿj•‹ŒUœÉO³Ñzu1‚&R‚w1¹.u;ãt{ô’Qœ#‹z(Ñ’ç€aº9hÒÙÌhýž_Õ +G¡#ºr¢Þîb¨aT\! ’ù+{ù윾­"Q»yû2kÁ…$‘•dü„a®\3LVØ%Õ&] /KM=kvR¤´Bœs¿A:q@YrñÄö>üYÀ|:Í4CqƒjÇÉXç=Ìõ-Ž;îGVŠ ÷î ˆN¬G …«W%whg"Ç籆#ÂÜËíô. !Cw'Ö£i"ò7»…¡:„í°âCèµ²;±f8‡²‰ë…IåQÞw=»BiÛçùÖ]*{UÂJcÞôhtïÚ~‘S\|ê—àNó™³yN1§PD¸€`™ÐgòsÁUíû°tzpn/s¼ÑžfP/gP¸ šÂq°¢ýׄºþ w]^‡=µ%gΤeÓÆŒ<èãþÖB;þHáÃ]5RÍJ OÃG"í‰úX´1TOÝ›Ò(ž(1rå|ã-H³R!¹ +åù}œ)ö% µï!æ&·X‹3x +¡ ¡ê–P®Hqo%sìŒ;·*^½F9!g;y•°ÛSò©ü¸T=ÝÊ_•E9_»6”01¸§cîõ½õJ-…,R ß¾vlì{f°G›xPÅ µÌ%$-HÞJ1gW6†S«ïÙ>kêía´ÜÕ;ñÅþ¹ØT·?ÔP'ØKoí°5—]ØÀ;ŒgTùˤV¿hæ­£³¥ÒØ0|ò¿0@@®wôJñTAR°ynH‡f›x 8¤ÍzÙµgPäδ´VíÓÜwR:|Õît~è{³-3$]ê|«®o™özÄå硃™õ‹À@zTµ1¹—µ0Ͻ6VL1€âëÛj¸â- öóz*ªè´®G0³HôZ¾òÚ{ê\üØ+iAD£üÂg˜Á#…î®%nøeM¹cîë2QWv-øŽå9mtP\?gÑ$_úÀÎG¼x¡ +[_9˜ËU¾«b¿±+âD!Õ1<›ËÀa“ü ÅÙ:-9¼áÎv‹|øƒ +Õ!…ߺw@É3OÐíF¤×ùPK¶3 5!›y[$¥’A2éÆ/œÝ%êuÆ"˪|Š÷ắӂg ª…\•á¡w¼óm†e2ô'K‚ãA"{-4ÚquSÓy¢8Õ!c¶ªC#:4Ç·Å*z§åø=TØ ÌuånL¹Â²¸¸ n'b ÞAö´•âè/aýHÈ“>)êŠÔ;Cä³@.ä­ ˜'"Ã>]$RM0]‘Zw»ð>+ÁQJõnȆ©ý„ºx]ˆŽ¿íºOXiìíí–²JÌÀ)éé7ðõꦙ{εµhk½üz“o8èHF]í{9žêÛ0Ù!ßÅüv4é—Ò÷,QWó˜"iqTŽÿ5ã?ydL÷ª3 –°Hn|–Ð`†›Ø‡‡Õñ·äexî?‡õºËb†ìßÿìÏpô…ðI…EÁ¦»òEÔßøWàÓcðsøÜ5?†|kE]ˆŒ—?£Z¯÷1â–"„]Ç F)Ÿȧ¼IžJŒ¸ËþÎ\L€à¯S⽤ñ ê¾„T.äždMdôvv—c—ÍÀ¢´ˆyWá C¨§8EÝSeU>e ìB±D™¾¦,VÚúz‚ôUJÀzzm£cÅCPWúIßÃßÓí&ý;Î/N9ºÈ#z¥µæõ”·îgÜ °Ö¨L›X$s'\˜›>9$5ú•Á… ·¼-PA,JTV#—±u†H 0ܺ+¿2ÿÌ}PM.Dä±îQ¯ws÷.ΟÁîÿ V’¥vvg9Œ­|HãÊk¼Р.-4ga‰ò)^15ž˜ A³Yj®Æ°³¼[¼}$¥/þ®]^%·ÆT0Bûz³âÚ'ô~='µßR|lõ ÚÿAÔ]W½Ä½a(E¬‰ý2ÙìWùåL$Â¥MöMç¥O¯´}˵Šõ½×ª®q彿býtnh7J)Åʬ¡x Ú³æÆ×ÀO—dF¢ý¬SŒ!H°Þâ|¿5ZAsb‡B‚l j¯©¹§ƒ©N©pX¢^3»–ѸŽFú|£9]ˆVòú·|(‹þx:›µ‹˜CÃèSZÞAkjÞKCDàË}š1âW›‚AèFä“X9Á³ÎÁÕ‰ýÐEØ´TêÜ&çY»<ÈxÒs¡¶ +”"…IÜÚ+ä& óÞ@›NòÍ¢*?¬HvË] £Mˆ€¸"˜|l‘}.ŸK|P›0°×M-ô){›‰*²˜‹0·£|¿C² ¢ßÙf{U®9Ê:çY—¹©˜±óÈ@„T*!ûß÷Á9ñŸ$Ù‹­EíÒI/Þ<•tyíÛM]jKä¿µè¡ Pe[„_H;8q£ˆx~7çYƒ®†WSáë- ý Iåœðb·/¿•@%Œ9idž‰È÷œ³ÿ.ùëÉc’}ÚcÁ¼¢’á«ù…,É¢†]`kÉe÷62L²ð õmˆŸOÓêÞi4h¨}ñĉCJéÎÒe4×âuºg½yN]°ˆö±Ì˜>Íðïª#[l¤Ûï"#’}½ šðÍr¯ÀI²ÁVíqî4=r,VhÜ É­õp}ÔaG »Í'3Ƨ³…¬€©_h7Ò½é/hOêV ›ì‹êz\z†n_ÞAhÍïÙNðpË¥2gïKðV—ž¿$Ób,ëEš"I3 ó8ø±´@ê/H4Éj"³s. +—™ÏTü¬1"”QV#š:O(12½«‡±/Hu€dbÀ4˜Gj`ò­ ˜ë;ÆF*S- oä¿„²ÿxÙ‡îR]¸‚…ó1àñq瘟èxPD™n6qŒÌ,e\öøN\äD ߎ`dÀo°xÒå«‹-ŸèV98zYSdO¡ºÕÆP‡_”iôëjË¿™·©¢Ž ôÔ§½{Z*^âe³®IsnoµÔ°€pü$°'ÑBSÜAÑ2šóÄú‘•ghWWƒíœ4z¾Ä²¢÷ȪÚæ¥f ÃËÌ“T–›]HÁZ+yÅ+bVSLö'É9©Ñ¬Ás µËçƒCѹe—qé1}áÔù}œl*Oð®©Và ÄÀÖ΢†ç+ ‘héÃìÍ>yŠ»5C>ÙÏËvML)D†ä™hæ1Ñýù o«ÆÔ`VpŒï^4¦¥[ÛÛ€vwSä44ÚªÞ¦WujX’õWÁ&(N|è´\E´ò—¤Ó4TX-\ª×9«8ˆ­RЀ]4êP•?¬àvy¨V“ï&eÄä˜ò¶yuƒ,è¹"(ªr‰R™µÝërÂÛ—‚ÈEˆàà¥Ë{Ù½±ç‹Æz}˦DAˆ!ìòûÄðv >~„ü¿Ë‘Nä¿òžÁÅs%bÅò4TD§#Þçß\¢–-jظ0+îsoøRŽdkLÏh£aîK°¿§L<6?í“7›%Ù£ôR¯PÞëZCÄç\Ö€[i¦ÊØ&,_þ+|•ìiÊqp""' ñËßø¹·oð§; !ì -¬ŽEI8Jž[¾A45Dâ­‰ÊÕ­I—Ê`À«ˆÙ±ÁÕ&Þ•|Âl¤·K¥"»©·`„a˜ÉWN뇇ß]õÐnwWNÚxL©.ˆrÒx\lÀñE®Ú߉µ°Œ²¼Óš>éÈ51GAl'»¡Ò&µä¶”A9­Ú„páEZîÞ¼¯ûŸzúÈFô€½vèpx÷Œ¬ZÎ÷Nzvm]ï3¡b¡I/ý\&ß.€z̸ì‚Lš™=L2ë£'ÿNá$³°¾P¿œÄ.óÞû­u7(!(òÃRΦ”§˜6½êìÄ”!ï íñ&ø4 "OnË"BÊršØ•ýÂrŽ,àÜq~¿,éPUjê‘}ílÏЦ9‚I®4†R÷~ù³XÙL; åš´× µ÷¸Q@Pz×È›®+)F™äMŠÙhªÚ°7²ƒÑ…JÎYãw“P\û¦þ>ÆËã•C©X6 KAxB ZåÑ_I@bƒãˆmìc¬ç^ú¥ïY+ò޵¿L?¥cûƒä°ôåËœ=Ak¬ñ³œ5"  ‚¾4hßcµ 56KP6 œ‘œ×S(¾WáRÝAw–‘\­@y ™„À+wЇÝM^°ìœ8L¤ÍN–o:“¥­‚µ*;#ÿ/Ãà ³ã ?yÅÕ-!ÿäìÀè w_âWzpc%z‘h5žÔA0y˜oì41±4íKßO“Kƒ{‡'ŒËkzU¥_Ør·ƒR©‚{IôTèü>W`Jt¶ló’Žv\™‚ê¾NÊ“ç€ð'µÕYaÌÊ€ þÉÐ3Æ}+(/7åV1ÊUè=ÕËü{içêÛnØ5˜Ý¬§ˆÜn·æÛ³ t™[¶+|®HõÜ;*óîk]­­ŽA… ›GêгÌÖÒº¶Nï$ß¼ØêAUn÷‘QCÇ+ìèlÌ\ÑÄ 0ݨ—†Uò=&ô{+´,ÙgDØ£YYVÃòóJ #¼’„o2z©ïAd!/Y–v𹯊I>8{ølÕ>Ï{1þLÒ™· 'w5fôâà&¢SR^âB`¬Ó¿kP´æv½P#`ÃÀªW!MI¬tB¨’¥­…†3” <ä‹AæÅ#˜Æ€@Ös_d¯ÃÄÎS–À±ÔAñY2«WR¨”}²½xœ @rß63Ïä¡ò:@FÇÆÑÊyd…±Þ` LƈI°%ÚÎ 6Xöå;`PTE;ªôŒƒLO§wõñ¦`Ô²Ü4O°Qëå%ô9е¶~™¸½1Q û×W7Ü¢˜G½ -N¹OÑŽ3“YGŸzËA©Ù¥^“ÿ€>Éé|ê3GdzÎÁB¾'ij"ÊûXOÅ ÷€ªdú£téÄ«¢”¸aù>sÓáÑŽh*KQu™>—n’M ý1ÓÈÚ’±Ý±¶ÉuªV=ô »só +HY`ÓEN¸Ù¾ŒtÔè³}¨ã4äP°£gÆ;öìÆn´¤±yþ.­ñ›ÿ´Ré9U%§y:<à¾çI!^ê§Õï¸U„‰©©ŸoiN9H§]4GgÖ,Ò˜ùGaÙ]–^³XÞ#-@í‹;ñ/•z±ÙŠ=•ǸþäæíÒ°•ÞÇ…€Øÿ(p“ÖîaËù6å_Ažå}l­ÊñÌßð‰ïù¤À7i‰¼µï±ouy·šdo¤4¯»+,%‹¬Û2ÆTBþʶKù#nƒxhûà-˜ñ}N“ÚÄ&ž' +ÖaXÝß»¸/Ì™æ!†›_µ}ÆKIFõù®Í®kôX{\€`àš}ט‹g>(¦«÷“½×¾ª'óù(|œj¾i%ñ”™]aü5±r*•úÍz!þ's©Bÿlêß8ôØ”QýÉ}ÔÜm-JD|ÞyGÉØÆAU%\'ÔÜ&Žù†’oËß"±\=ýnx?ÚKQ¨´ÏwÙN; :âéH9ºÛ àq<¥X_£õ âäa +Õ–¦QlK}ãáâ¬}}?p Û¬ð +cQ@4®þ1cg…xWà&Á"±Ë€qœ,¼PÈ¥úá‚ݯ¿V¢ìx×ABÅÌ=¨y€ìòN‚!0Â?£Ïûš¨mú¿žç5êã/¤Ùû]Â×7XXÍFŠ…~WTut?€|>»”G‡XsÅŒAü5LñYéÿ –Ùÿ]+3’(Z”¤-ÞÜZX˜Q¢"ú³RÐ7„y›Ø$p¨¶“ÍÞ=»Î ùüéeùhe'Ó +Tî¨Õû“Ï«®?Ô9ú&^®É=‚°×'7QvÖâí%±Õûé4ÞX%Ö \oœ¬V=Ð6ø7W­€àh C2zà·¬‰»ºìo9ŽQg¶U·dÙîÂ1Wo)ø¢Ç¨†ð< Ï)Dc/Q Öm&¹"pݼ¶ödä-±Ð,6Èco,rp§…1gÎÑy ô{¨»›í’1 ^(Üpdßã¾~iÖ…Œ‡ô–<“UV0xý7Õ+—½8"ú9A-¶ÛÙˆ7F–69Yâ~d»e8ˆ8u»ù¯YŠ…ˆfBjÐŽ1 +þ 2çiIÛΙz-4rp*u–tmÏ+Gš<ÏeXÝ1]‡=rÚ@燶´[ºqë±RÃBŽÔädaemGvs#ùŒM3súp!ÉŽ šñ¯gmrB‘Ð>‘vdoñéü³¼Ç¿»"Ò)’ Ht8¶³»S±`0áGíqߎÀ‚`¿iM•z¯¹TîàÊFD[¢ÊGc®)„XÜ-õoÜîÏõ¬v%ïjcJŒ]Õ.”ÒF»#—h§~‡à÷ózÕÚœqÙ«^޽c'Ñÿ´K抑¶üÇá@ùe*‚_dœ¡´nëNУø7ã–º™k`h—F±„+<0Ë›·.’1 Øž±æGôÍçǺRºs˜–Ç]nÂÜGJ·sYÕ¦U å $Ú*À4VÁë"——Õüß]"Wˆy@ã-ÀÒaJI¾,i®?IBù&¤]ŸñLjÎ+ûê9§]Îãëq.íœìÏÍA*msePžU|ôáþÚûäœù||ƒHý4ó2Õ×D\}ˆƒ½·ÀÂŒ1‰ÒéüW¥ÆõËAè“”FXxin—ˆÿ,‚Ðä˜<"Œt° ê˜.Úë:‘Jn:p‹p_Ú]ô¡ñ0Üs=ñ ƒLó6aiøo”å —™°¨§6ÜJ+”öùÏ]?D¡‚Α:{(ÙìKª‰ #Æ*¹«{¸èà«?ñ±Z¥¾póÿ9û·ëÍdŽWj„ï1 Gjqn¬©z +h|€Î*ÿÓfO<êc#ßËJH¸ý»®+MYµÀ:îÎZÁ“qAžç•Ãj•´E§ÔAl‘ún…„¨´jõŽBêa€¾zs œ;oj¸Daùlöx1ÎïQÈ=ã—™^“Ûš¼™åýRº5 TëõÂ-8è¼ ÍiõÉ6 U„ìÔ⾞?¹[éØÛ/”÷Q©ôîÛtGÒXgF­†ýV À}˜_<§]ñ¤ngÅuñLOèžÞi:›÷Yýç9sü¨QXùίÝzpçßóöRöÜe%ºû_ -á¢ysÓ­EÓMò‡ºÄ#fF¨Î=%M2’Èæ@˜E ‰¯]ÎFÔId€e¸@“Ùxû}ŽîZ Á#K{OEéišã½lÏžMöŽ0$“¯ÁoÙûM-#×û'*” kòyyãr +H„Õó"¾J·Gõ–%U”}a½…® ¸Áì±´I¢%‡ƒ/à•¬Â»ó¶B¶ý]°ÚeM¿ð†>XóŒ›ÝKŠì•Fj¦ml,+xo6aù4f9Șª„é Ò}5(a G¸êÞÌ_/­`®Êéq®²1® Á©¿înówLaÿ~:†>—å_ +CŠg8™ºjÔÈ®é&]ã3áb Г¥̸·õ"D02jJ7[ÏA–K†/H]ø~°½øêp*@J&?²ó˜5T©æ½Â³‹DbFž88RîœwrȺCœ?bׄuª´.þÙŒHÓ('Içq¢F«Ûa@Âá, +žú·oã¡”j+©M›þ@K”ÅÆX„<®ËìÔ¶mOܳР{wa–³®áËñ °¿?¸ U-ÄL̪ä/eÂ}‰™?Ý{Å–ÄË8èc·A¢Se¦h{º°Fªs]Ì7¯CØ¢JÞ¹Àe‰Hp”ž=tb€V÷{]§8lËCÁÓfdñÈdãAn§à"ŠË_’ƒƒÿLiêómñûi¨rÝFÉ7mVþÕ‘\¨N4*°˜Ë¸•}|©Xèôôõ6„ qÊ8ÆÇ¤.I”‘[0Uø½gÞNÁvà1Æ'÷ó¹IÉ×ÅìÛ"˜çµÆ†ÁÙ/ÛõQ %»#å@~·ƒNü¯‡Ö2 yÌ?^·Ù£hO=€1éx|\5¯yâYRÅÉC±N6 ÚDeqýZ’vMT‰Kpÿò5ëïð—2^ÆÖ“â.;¢^RûÉTá ·n€l:C 2\‡xr½¸ËÜ:•ìGòª(ð3±’í +f UD…‚3½Kge¯è«Ùe#°e ¾ìXŒéÝѧ€.ó´­2Ǫ—R +Í„2¦”Tþ^ø˜᚛֬ äYÐÂöÈ8ŸtEøØóæ‹-=&^”wõGlÁ0ñk·ÎTL.•IAAbAÝ é§;Øí¡êØZ×~*MBC±>\§žïŸwXžˆÖ|§zØeh•Hú»›ÄÕ}°».Å3„˜…ÞÛô,Â˜Ú !1ï4ôîp €!p›0Y÷;I°pè´´Ðïe51 ëÇjþ‚ Ú_pÀ ;z ž¬¨§ŽOÕQ—r·ÕHOIÇŠrKÈ„]Ä¡vx†“”é N©è“F+cËûåI`Pz–M«…,»–V†:Ì  OãÉœ ‚}eÐÚ8Å_gÓØƦMmRôýع•kì4oe0ÓáT,‡;R™é é€}èü”q)˜3¥¯K½ïʈ>s€&Ú± Ä!GΖÌrÊêC»ÆBegbéuÆæ"ЀkŒ/2iX…n&Å•¬H²‚oNεÅåuH6Ãb ÿÇh#›’†ÄVŶ`YÔz¾ûàqÌkWʰ›ý–àö /¹«ÜX¢Ó|’ÖöF÷;õoh:xîfó0‚Þ¥ö2hBŸi´_65gƒ°Î,¥Š–}â «TK¼ …»™VîÒ8x¢ÙF@Z.»cjßÇ%òÉí¤Ý,vJ+Ú³š˜¥ Ç71" É ¢!hôÇÄ.›ˆ NSz~xØßD èéÅfÊi ¤á¨‹;Öm;À¸°1¨óÖO.4ÑqÕÑe±éÎÛ»B3†?ŒgÕ§êÇý©»…º£Úì¡€¢%ȵü•sÁ6,&H§‰¶E‚¼ßt#%3Y KÿtäýŒP\·[ ì™ºÞ ÿÜ0“”´Y2k¹Æ¢Áý”ÆÝ)@Ðd ‹òýTUÊ ”b¼á”P6XÂÚÓ²»õŽ´fšàCY³%ýŽèccçEúÙR¬—›‡¾=‹ì©±›úqÀXÇÎâÕ0¼þôŠï%n´é(³òDðËÕ£÷zõYdœ¡ü­G¶˜] ™àÙšÖÆ“‹–ÄÜæŠ9zœI HíG5˜0²5EŒ^ƒŸÃe-ú°Å"xŸ¢çWÊ–:Žš%¹¨b-!‹µñpÆ~umÍU£2®¢ŒŒ2VHv{\ÒpÆLâ)Bš’Uü%RûD7£ÞÚ§ŽîQ¿Ãj²# ¦Ñ8óî,}x*ïâüŤ¸¿tn–OéØ6énÜÏd]øÁÇ9í|¤ÌjŽ›À T‘¨\ßhàÖ*Äݦ +až±* ;›p£>k}[+†Ðš´™Ämµ¡9ƼÏ06ba¬ÕLV0‡xÅOú FÝ)ý¹u›x^’Ú¬¬gßâ…eÚà Æu ŠÛ6¨ÐK2&]‰ áÁ9ó¥è1Š}ýÛÒ†gÌìëRî›5e×%#&#'}J£ßvU§Q‘°öðÈã0±4™œo-(®”!.õpmWÊzj±tô•+W¿œÛéá^fµn›™·›fùzÂaj>LJ(L.ÐÙ.(Bäô•ô;‘Q¤éÏ %Ì©@EŸŽ””ãìÃé{R2¦l6îAfÙ—Rº[/t‚—­25@ÌS*p³Øp >˪¦µ¥paë†ÝµIóÃFg`‰òŸš÷ùx“»ªËÆ—u°0r =Kž `u@ EPoÖ÷‰ ™fNwy^h÷¢‰,o-NOg+RCä}O¿‚ÖWèA«8ÐŽpÀ¥6éÝ@$Έ?„w"Û¡¡öcJ¯é¡ûN`‡NÈéÌÑ»2axYìòó*xÿ×߃½á#)4§+N•(É¢…¹±K¥õ¨ ;ÿòƒÆ‰ýe‡–ƒàídí(þðbuÖÕ‰¤:Ï|s®”×fÌSÜTÌEG{¸#ºc]7A‹÷DÙã,²6ÜÂÈ÷…|MÐ×*—˜ï‚]l‰KOv”‡x´à~²Ò»ð +."†kØlÿ‹”[\-ý£àdÕ|(äm; +Eemmpä0ÐøLá T=l¾uí+áÑ#ˆ€¹Õ}èuÄy—ëmñݸM­ºý¢â?í’ å5×D·ß‹!¦ì$K{ÄB'5©I†Úe§Å¶ü?«ÎWÙüðháo…_=Òð½x~SQ´êj%2 5±³ÊÐ_tþ,×p›–ˆ +må01Ûtt 8¡ƒQlV€°SÁ©Úï²\‡úéþS1– Ìö1 =hÅ”Qs9ï'KÈÏe¯‡Š(Þº>cÆ9?£„Þø5D‡‘Ÿûj\á-¢,ÝMþ2†ÃÈò`Vmö†Âþg2(0È‚¼¶BëmpÖK“Xf”tð,cxÖ¸fˆ\z_@.Â&—X:Ctgº&èèùT鏸I¥BïqÏ)suô„åÏQÓù]d\PüDGø_ˆ†$à7tЀ,'0–ÇrÃZWRéd§M*´£Áôü²jÊÓi%ø¸(I€ÚE±aO2­ùá#r9‹´Ðœxp~OYâ,â³ÒúþS–Î{§ŸÉ{†l\š¢ØCs ákmŠúD¼Qú¾Eî#©\ãð NMË5¹š¸¥Q7•Òk,X°^±Š2w³£ÖûuÞ@ÏR5þ¯þ#âðÑhnÝy¹ÌÂŒËòJiz…}Á8—VŠ¿b)'Ὶ¾Ü9”¯ÌPþ±f¼ü<›ñ®Ã7ô÷ß„Måx!Ñj6?NÅöY?g£¾ž+ûX,,l$›t/dÕš{V4³ÀÄ#ßn²ÓÌañåXÌëE/å\d-œµ}F²¤oxÈFŸé>Åá&³Ñ€§3/Œ—boÌXÃ1=ª¡ÉÝÓQHL™ý«ËAõZÔ ³”B1 –ó´ë÷_K <ö`ªNfÛü§_îßRc +4wêñ„ÎÇÍÍÂì‚>ãBy‹û¿l4^ägš”$®Õ³c+*ð{^fºæ +F ”íý'…‡šó‡Á˹’ÁØ£Îxƒ9¥·Ö±˜—gK°*¾þÓÏpÙÊn0oÎÉã½Ò`cÅA„ÌÚóÁ @¡>ÊÅ>JvÈò îM;âRøK"`ŒÜ¢g[DŒç ™{êÓ„3çiD8 倅¨çh&IMŸóâ}Ãã$yý„­t®–àˆ¶Íz¼ œ`2hqI{RŒ¹âýÌhÄ• °ÐÊë ™~V]ä\A¹Øêu,»ì[´Sý÷pTD/êl~u% s%—q[˳ÿ. Á"ÊbDm<;²D¬ì`úª!Ð;!š•Æ#Œú:¹ÝäXN;ƒ•“Znö›^´Ra`g]PãRÎÔðk°Ôœ…=ä}®õˆªíQ[ÿÏŠ¢oí`I2äëMPipääžSÏæiì©Ô¿¦¼¥«»Â†CsôÄßÏÆ‚]H 0+{K¼S—A »Û”ƒþ€€·8_mõ¶¥I GoO¬éi“Ì~¬=šÅ®o¸•ê Ä¨í}fÿÔ’H‘òs .I ø.¶ë«®A+Õ C§ ¿škÚÝ{ª)Ñ1µQ7­@â1½\ˆfç]X»ÚIÅu¡n‹¤Ù âž.Üs×5GOcÚJ˜ +Š—þ)ùíd=ËH.c+T('5?Ò—«cIi7TÕG£OX¶¥¶—,†ö9l˜è³ŽÝšúb7«ÆIGÔó̃OÌÛÇcºóæ6‘Ò´¯iØ" +DXí[VDïàï!BÈæ;¥¼~æÓ HKâècä ®Âº±äJGѤÔ!Ö7·u†¦iŒˆ`ÒÍ*­Ò>³7á¯×i<é*õgoü†X†ïK9©'Bl°î çš‹<¼j¯âi BZ5Ч®0¢q'›bü.†2£´ ¯à0†K$JÞzÖ‡ ÚCÀZ5RòÈÝ7e'öÊžCrY¿i0M×k¾. ¸^°ÙZE²8V´ƒÍV†åÞfÍí rÏßR¡yÊ’5ãwƒ·4Ÿe2Y¶œZ°’BÁú*Ä„wüt—Ö¸Ž +?ʱ¯Á‡@d‚èNÁ1ŠŠªTÞ<ëVű&}’ît8¯÷ïfÑ÷\, õ.Ô²¿ÎºÌfœúò»Ó¼rÂ'(Iífí­½I2='X–Œ…rê5â6V/%’*U«õûàó&+g5€f—~¸Ñ/7øÂ•klE“t¤Kð3$k×§ýUÂþd\êӟňǿ~é[Ú,‹.UÊ|y£¾Á¢¡]A7|êKýg™.e¾6ø#Ñw^]=´8/ƾÈè †kS^Š™h óe7•ÿûÆð+ÇífàPŠÅ¯×kASЧBaŸ~ÐÉ“!ì¾àÆ4åÈv£#¨w¹o§Þôïc¶pI«~¡0ðNúõÕ‘^H»xY¶xlÒî:, ëÈð+Ç¢1ýˆ#6´rúxdžìÚôc þ‹ùr.~ä¿l²ÁÈÒÕ²–M¯œý81¨*ºùRuعzQL„÷þ ÖN55²jâ& *}X)Êì,²iêNÚqU®˜}>˜<¶€’–µ€æ Èe¤mDöXž:¶Gh]%;UþyfnCb«=í¥„Y–—ÃÛ]†øþúdÖ%Uu Ù—þ¶m:köåW#?J–¯˜xöÊ Ž‘ÝÌ€)u^ÎÈ¥}ÅF`uSQX’¦ÖQ ä¯€ÏF}†d»â7°©«å!ÅT&¾Z ž»û‚O†à¨BzT€¬Á=è÷HéÛ0A¿˜衊’ýêìÞ®UÌk›Ñ{ÎÌ—-ÂÒD Ýƒña~c"OòÍÐŒZ&¹ó‚ÞªUUØg‰cNÐ$‚•çà„G.õ^D\¢YžËjËRÕt3çE‚˜“£§ÌÍ3ÛÃby:CzÓáBÉE,‡=t }hx¸Ã >„4Ô)Jb*Öpi‰HªKdÌÚ†—‰2˜ÐËW-&Ñ.x]=/< äqÞŠUJñ¨“…IŽkbçÀ‰Ëˆ¿‰Ïp{ŒÁ³|ô aPå÷á‹CÇʦw¡óWÝâè“þƒF^4+K©¬¸Ød®¤}´HÝ5G‘Ò•§»Õîï/1D²ÛÎ…w÷¦e`]34QPå/ðÒ6#ÙR€¡³_'ä0#6w" b’~8ú†¸íãVá9Î1Æ£ÄFôÙm]g¹멜)g ‚)+|GPí@e<Ëæ÷uÌ­ã^<°^’‰ö aŽ!ˆÏ¨Úè>ÓÞžÈS_ð´VžcQÞ +Q^T5SRW‡Q`ð×ÇqxN²0.9eøJbâÐí&¼±Œ@'‚ TÔV1Ó-;>vŸxz_ßm!MДÏ0†6ì:"­YÃ]%ï³@%³ÜRÊg·Œ_"U‡ $Ã{¹,,Âí<ž&º"\>©€ø” z´Ï?W?áLñ:R¶+‹Oü´Ž¢ÜÌÂÒña´°ÁÇ´>Dq‘ì…¢f¹ôå³CŒ|±¿¥Rzàá 2F€Œ ;ATçL9Óî"¨ÆY>ÕhÉ´† ,;“ÿlˆÿ¡@>„ó£ºWR*õ-?ýx‚#Âk³XPõi p£Ñ”·MtRœZ)Ã¥¤GtÏI²<ÌeWP çhÊ /=ÌÚGlã¯îNú{Õwúg“3§š"XÖ\ðÀÊž#”fóÇù2lB19ɬ©<­¦ø BD¹©¦A—@àþ²í¤ö7(1mÐ, áçúéj˜¦íµôIÕX‘*W€î°ÛûâÎ!Rµ³ºÝÀíÞŽÚ%Óqi–>>l憈öù‚t“iü6 +¿/BÿÑ‘¦“¯Ãjuy1ÆMH­=è8´Üí²¡t¨Ö²:¡.ð‚©­q+ ¸žpwòÒeª›t‰ÞF° ó3þuð…m¶$îÁao88@ûíŽâ‘›œ:GЍ{­¼iû©AÏžqC7!"Øß_kò©6ŽõEha¦ÛxñÈÕu‹íƒŸ»ã5sÇpÂûræ‰Ç ¶] ãqpº„ÛÐEêæä'P9´enõ·¶ #Ü€l&<âf”·Œ'çµÓ É¶Òvj#>cå¦ +ÉAQuÛ•®¸î ò(õ\/Úg¢ûg>ÊÒb¡I‘jÌt‘—Co>ݾ÷ö˜4]fÞ„ÏâdrM£-«O]äL>¿ü÷Z¡'6È(PçÒIucÈ ýÉhf:œÃTu`iÖ»Üën:ŽÎ ó9¢\‘8/Kžd–\:–XæwhN )¢h,ªzh 9 JÜ{i•ØçÂÉ‘˜,{bѵ”Ò—KÜk¸¼xF/»÷YUƒQ5QÁFxWkab”NµrÈvw¾¡öß…qN»“˲Gžø=ÿµ· +Ïa±Ë¬¥»âì¶(@Ú aÝ(…Ëþs@ ÍD¬˜ÕáXÁÖZZð;=\ƒtr/¼`¶† ‹„ãWpØïW¦ç>;ÇØ£•ÓæDìÑ]n½âcÄé~<ë^0–ãýÏŒ}®† ôÛO,?‰Rï= IcÉ톈MŽ7һ؇–X*¢{GîIè!Q4v øt½‹¶ìé2¤«§¿l +€ ÖlÛ¾8â1j:®'Îø{ÜVÙ}]4Mý²•†§9­;´5ž•sx Pž.»RìláEžZX–%?íŠvv~®¹†LÑÚOF¶½ØZlê„R¥-=¨©WèeäŒÛb nul¤â-.½¢cŽ¢=þPâùö°­áïFpq3ó[[TZàˆ* ùÍCÄʤ×Òi²WU,ZÕ­ûØŒÓ㚺ƒ§[ÚãÄf*Î'>Šn0«…¹ô *êZôŒ– +¢Ið°zyµ•WØö#8S€öÎ^Ì}<Ïpª5ôjrõxþÈò‰'L8ʪôú+öî»nCÍþQÇe"üëØz¬§¤x˜ Ƽ]XØzÑA¾ÎÍs0mq“ÿÌ_mUùQ\ €E7ìõE?RÝÀÆ¥˜££/*”ÙäC„èðzí†Ø} WkžÄ)7PQÈÏ>¥mMlûpÙ8Ú4ĸ³†pÞý^øžfJG¨¸ßñÊôö»¡¯¢NüÓé\¤ ÁñCÓÛ‰eF(솚èE=æç‘‡ÇÔ<—o~'û_ã -r8hn$Ù±””“Û¼š–RнÚF#ȸ,Òy›[ú-O-óvN¬è rº¾Û"5ó^Ÿ¨›"„×ù^‹üo쯖EÏ G•ò'V ðÖ’”iÃDçeð?Ü)å'+ˆ¼ÞíoÖMh'Ôw¥ùš†¹Çf»hý‹'‘YýI¤6³£Ì9E +u»Áï€É&Õ®µe5Hüêy?/óBðbL°2h±Wÿ¡;3®ôÓvµÜJû » 4‰£– +4ñ+Î-CÒêvS1nеæVôŸ²î¯ŠiÊÄCɵñŠˆ­× Ô<¶Ñ²¬g§ÓÂ,è-–¸*°Èº»³†ˆ/xP˜êŒý,1ëC`ÃòÐ,LlQ 1{¶[p\~w2dPLOØB*ê—ÑWü7ÎKð_ZN¬Îv‚•héíˆuÿtêr†ÅIBœ0QßMÆã_êé‰ÍÈõ¿L¹L=hÒQ«uüìýšEq«xT°vJˆP½ÑÑŸý†ÉA/Â.»êÏÓUË®ªÆ6ÚØqÑYJÛ§KJªNE¼ëo)¶%µ£‡NþVé‹éþî_é$×~£Xð ¿Ã}s6Ö5ú=Ëaloš÷ô<ê°õ<@7‹DÞEÚ›R ºNðS1¸,ß8›«[xÊ–dz©Ðþ‹vò™fÑŠèplÍkz²6@º°»K—·ü† ºzÜ%÷x7½1!Hý'ƒË%ŘÏ@5%CÏžûmËIÝŽýÜUÿ{,OlE® +gþy¬dE-n—JÔO»S=~Yj‰ï›\zõµöð'Ph‰ ôZê7B¢Omß–\/8.òJA\N.¹Ë§[DÿÃS¦H©Þµ2ð½nu“Á!so×%w¸I7½¤i vîq(#¦öÁ²{ü‹y£c’ø+8EùÖŸÂe¾’éä +åˆ`k¤ô€ÑU•¢=‰Æ¼¯ ø õPál¦Ø™£Ëê ¾Õ™—@_,·ñ/¨AcŠ&Éž–D˜rw;ÿñ„v˜–ðÇ“ÖQhCaörû5QY¿sô?þXçÒh%¤Nü4‡sî’žÚ§&h[ºèOéDr7œ \Mš›3¾…ÖO+WÒä…Ÿ€ À°wªçá0{£_‡á{mV™túU—è´ºD‰eù:œŽ7™+1×"ב™ØÃw‡Pʯ9û<"§+!…ý•C 3ÊÃêrÓ7{¨=ëw‰Rà Ý7¢2"?N2üü*ÄÃt ‰oãóºú‰ps¬¬¡ñî³]³ Ã><È$Ϭ·Ô½zY§ÈùL['¹B2!ŒŒµ7YšÕ»•€jŠêӜ⢙;HN¢*]þwÇL5ì&Ðn9cZÕ;§¼²Sûx°)Ü ŠÎÄ¥ Uí%EmÆ.ÓuQñOrRC¿f¡,óQÿÚÓ`Aˆsðk¥:ŽGêÖÙ—é¬ÕNN&¥™ ü‹ÒÑpñç}æ¶þ‰ ‹eÊNIH7S¶ô2r¶@®¾»ÚÕMßÊÚ[0㜹¬žpsá¸Üñ*ý‚µÖ‘Ë:¯uT—–XɆ2ˆ5òN㇚*ˆ©OCx{ö»&Í™)§'ÚúÖO<šD¹70¬…^Ô†“T ê…þY•EOïˆ//g‹Ží ¼urŠÚý¸XÒ¡#:!ç…8;„–y3*¯•<úâ‹.ª4-ÅŒëyÆO¢ßKødœé‰½],û(½¼Oþà¿K€TÁ<$oû0xƒ­HàG°…Ö0ò¡ªä$^ƒri–µ…ÑÖ¿ÈPÏÖÍæìÞ/œ„îM6ò{4÷q­oˆû‰a­–9ÍÙSŠÍì%õMÊã°º »3@'ú~²F¶Â!Îg JÇ­n{¶4£¶?C–k# È%µ1Ù»œÎBU+Œãª…دó§ŠKpn­ù´¥î-Ùž.¹iÃÑ?íîCEbÒ»‹Ë¼˜ÄÝÇ yâÛ@gærbí·•aŒ}[hÕ"-fTµN‹öY¡ö`ãma÷XSPL¿ g›,=i¥ÆÊ¯çðËÛZ䫚ôUB–äc?N¸Äqe!‰ÈÔÒ8 š^«CûùŽ–ë«‘BR€Í§ÂÐѧ|ŸÕb)“Às^/iì½…í·b´·}ÜËxÝ+áYÊÞÝÐ*Ô®1/[BªÙšXêàkeÛó™˜TO û—/õ3ÛÙ•ƒƒ‘Ç7»¡Ñü(54^¥Öú?üžIJ ‰ÈÎÒ˜Z-7´ã6OaC-4nZ³7¹K…ÃJú`W ÅÞ Š±øÏc}ߺʢ™ü@u±t“òÕñ;€-4L£¡˜Â»GK%2ðãNmT2ˆJ fRö’ ²¶ÏÕQÊõSæñp?wCƒ·TosZø-£þá]Eq‰Q´üašÂýF‡±.|#3A:æ¯`ÒË.ÓWH΢—2‚m¯-Fz “ „S{À«Í.¶ã3pöpˆ}¢|4Ÿ-Æ<þd­QŇ/˜:h¨ÔßpdŒõ:uW¹hÚ—µ­3|iµ Y‡Û%RGµÀ×0ìœò‡X—~ÙeHxòîÍò-–*XàU,Cl`‰£Dô%€¸éD ŽÖÛ=$Gâ>ïy±wØ}˜sx¢ü0UB1VCCí·7W³ ê­mྻM”O„_r'Ñ&òæ6áPs\á½÷jxü5u±¥â' ´XBa"°Y>ËŒ>öµà€«Úó$_XyH/Ñ™pO•«WhWY|Îe«³ +=Ðçz‹?eµWU ÚÓh˜ÝËÅ`Bt ©Û‡åœ½Uõ 3Àúïÿª™:Í3|Áç^y$åàóGýüBÜå鬀R=øø¤ +[™^Ò.mAdÅp½ß›–é|Pm”l­§º×¯t)â.¬ó¯éP” ¾oÇ*ª2{PØU5™+ø d÷%ÁÒŽ-žÉšàVÏ|@Ast´*AOÃ;#2©a—Šƒ«³mïÇ 9¿Qs±~ܱ)»Aǘ`?Üøâ}C<Æ­×uÍýµ#×F“CúO–3Ô3ÚnÕÖ­C{¤WšÜC­!˜ŒÊ•þ'8ÊöáÞƒ9HYÁQ\ì‹ê:îR©š»:ÄVL°.w‘P¶â•rèª-3X§º`ªÙÿT A5¬U)ÅŽ¸·¾ Y9¶ˆºØT°ƒ¨À3ú¨žaª…"îy¦çæ°Ô­BTµ¼‡ÀË1”‚  øÉÌ&E²·wÜ ÌAkÕñàXàít*ÝÆd<)<ù÷ý ïê¹Ïù?mo +ÈñfÝßF•ãW^ûÃr†fðmOaþa©w÷ìö2pK:ÞìÝÑyPÌÛƒN¬9ÙEûÈTcVÕ`,—_g?`…±äÚ2í:O NOZVv„´ýÌ»B+XQ¦«½s t³¥jÐŒ:^ÓXRóÿO·A¯¥=Óã»Æíÿÿf+¦²n˜×ê;¥Nà Gaf³˜1sÃÓ©=Ê%YžÕ È|güÒÑä¸1žØÛÏ=õ:à™æMj°$öüÅâäû$Ê÷’nÏáÜ™cb!`¾f"Y|Õö¡<b0wÔ`}–ëþHß_7 ^ž5Õ¬ªVIRÎ_pö®V›úQj+;!T×°I–ƒuô%Q;û¹"•ð?dÝ; †_N4_öÊ-y÷fÕéfÒ 6÷uÈ9^>ÐwÉÚ‘½RúŸ4—mcºMj³šÀˆçØ€ÅÃJº]÷À«Æ=µ9•íçKF…Û1©ê‘Ê0é&|\x6ƒ€gÀ&­Ûß9‰z!¬ÇX”œª +ˆ+Û% ÒÔ,7B ެmΩ4 €í–@Ÿ{ù!Ÿ‰cÕcFô l-÷:†\ðEBKÉ•mN7%Š¥Í‡„ódÈgä¦ðÆ£SË‚D  + *.5/¯‰æäZ†Oî„Ü…”@´Cg‚¹ùôx¾]±›9Rmÿ¡ˆÈ™­7víC¦NK._kìVÉ0‹2øÀý…àè±6[ž½Í-ÓÖ„ò«ˆNËjPùŠZ)›¹¯àóïYŸWÄtŸÜ{®Xqý@bÛ7¹½\EÐKSÐfìmf 2â´òûô9_ :‚¢ÄàV&H­-_ +™¨á®>©]Àp¢/ŠÖÅq¿àÏ.å6Õ°ÍÍG$É”úeÅ¡Zc™Bèz¼óÓê¸ëU·Æ¶Î‹ŠIË袆Žê•û^Í«ñâï@Áì/æù¿Qx0hÏ3Æ@û¡1n+8‹ O]¥"ßûUÜ? ‡>ˆœ +Ó1Â_©œßSÜ\–=Z:SÖÁÉ ëï±2yIÍ@;½)ëÅn»Þ1ÇN†*ñ+T]MÑû2 Öæ¦¼á_;¾åC}Œáfm·l06Îø-ÉÂÖ: ûª,Øf1•¥.¶¤ð€xÖŠC÷.0çˆö×Àðšüú B +Wc…v–åúÀw”kÑZÞ +ôÂXØj1oñ*“¹€p¹ Ø<£é`½OÏÍÖ$ÿÅ›ð@¹zMúãs¥¤¼¼Æl¨¶ËX¿YQùº"_¡núut;q©5\®›¿þ3#¿Ýš·/]ˆ°8LB˦t–—zC×ïŽÍ­MªÍùá|kÌ04¼£z§‰ ÄÛ÷ˆ9_æ³¾޶ó¥PðϨŒ†gæa\aãaĆ5àúj±PÉg•FvÓ^Óvç}cБbÁem3}d懆<Çþ)½ÞfT#¢a:8ú„`6Ê&‰¤ÒDsèƒ1=U³¨.[=dê©[BMui”dóy‹vB6„ü) +7oCе¥•ù³3­˜þ˜EzŒSš +ÅNÐmkôÇ3\VqÕ®™itj[ËËó¿<„=Â"Lÿ/úíiИ-A¤·“„s\Ãú¡!aÁû»Ñ|ÇÂÜÖPÃqaïÕ8(ˆZÕ»EîP¾ +@yŽK€´Óµ#¼ OHT-•ÃÄ”aæðO…/©×PÜ«>¦bñWÕÁpiñø˜%2ðàƒžÑ§áaØ;––&8ŽK®–?d ÅrǃMOòý+Àp±¼Ý¶§ÆkÁ…$‘½ÒK¦8ÀO³ £¤3Qd˜„ÐßÙ‘uËʬQO9­š+?ÄA\Ä Øn}ˆœÀbM—{:¾6¥dðþÏ\š$^ßióë×®pÓØŽ^·8ªÊÂý3²v¨sßÒ}Ÿ&Þ* CàŠK‚Cxý’“ÛQæ‹ÍËØ?LxÇ5e8T¸/Aéo÷ð¤Køqã%¨çüÓØ +!JRvîù©%Wêµ¶ç/³•KiF€ 6BøIA¿5ÐØGðÇ#¯ ±wQx&omI»âap@¯.[Í9F6†²›Ï  A°IV6Š:’dÄú\„]ÕG¢í!÷Byn‚ƒ[ç%’ŠÉj‰–nU®DÙÌ8ÎìÀ¥ÀÛ®?_ ÷Îâ[ìÎÛáo7¼7ɇ@™±ÐøŠxÏ(¾_ypxMs)Ø0ÖÌѶð¬ý> +stream +xÚŒ¸P\Ûº-Œ[p÷4wwwwwkwwww÷à\ƒCîî®/{Ÿ}î½çþÕ{ÕU«×ü¾ñÙœc¬îZä$JªôÂf  ÈÞ…ž™‰ *¯ªÍÌ`bbe`bbA 'W³r±þÛŽ@®tr¶Ùóü„¨ÐØåMÌØåPdqµ0³˜9x˜9y˜˜,LLÜÿ‚œxbÆnVfy€ ÈèŒ@. +rðt²²°tùSçß·*Sj377'Ýßáa; “•©±=@ÞØÅh÷§¢©±-@djtñüT|–..<ŒŒîîî ÆvÎ ' j:€»•‹%@è tršþ `lüg4r€š¥•ó¿ª swc' àÁÖÊhïü'ÄÕÞ èøS *-PtÚÿ ,÷/àŸÍ030ÿWº¢ÿJdeÿw°±©)ÈÎÁØÞÓÊÞ`ne (JÈ1¸x¸ÐŒíÍþÛ:ƒþÄ»[Ù›üüݺ1@BX`ügÂæs6u²rpqfp¶²ýkFÆ¿ÒüÙfq{3QÐÞÅá¯þĬœ€¦öÝ“ñŸÃµ±¹Û{ÿ{eneofþ×f®ŒêöVŽ®@i±0Lÿm³ºØ™¸98Ø™@GÐÃÔ’ñ¯jžÀ¿›ÿÌàëír˜ÿèkeüó…àílì¸8¹}½ÿ§ã?WÌÌ3+S€ ÐÂÊῳÿ1ÍÿµþsþNV]¦?ôc0ýõù¯;ý? 3ÙÛzþ7üï#fTÒÒЖU£ýgäÿrŠˆ€<Þô,Üzn&333€““àûŸy”Œ­þéãÄJÛ›ƒÜÿj÷Ï>ý»e·8@õ@¨ÿ™Kô‡¹@Õ]‰ÉôÏ…ùÿ™î‡üÿ±ü¯,ÿW¢ÿïŽ$\mmÿöSý ðÿñÛYÙzþƒøÃ\W—?*ýÑ‚ýÿ†jÿ%]y ™•«ÝÿöJ»ÿQƒ°½ÅFÓ3³10±ýËnå,aå4S²r1µükþeWÿKo¶Vö@%³Õ_O˜?QLLÿË÷Gd¦6ž"Ψù· øGCÿYWÜÞdö—ØXØ9ÆNNÆžÎúÏŠàÍüG•f@¿É `d°¹ü ü™Ñ`rBøë`™þÃŽð¹M]œþíoü)üïõߪ=€¦+‹ SÞëÆ®çzawúƒ)˜­žÈíávŠ¥oK9Ø,ÉŽ"Ff_q'Ò•–+Ãæ}h.Ÿ§=ôús7Ó¤ò]Àć÷D®é Ç~Ýõ[‰Í@ø3œé‘{hW‰ÊD(FºPº”Éš‹¿C9XjKÞzœt¸Ïv€²GT’4—X἞3ˆhm²—qm=Ô8t'Ý W5iõ™7ˆh«¸'‘®¼_ž{ºq™ãßsF†ÓYo‹dë8¾†aàazÉäM$âa%æÈ´9ƒQˆ°?ŠV¦&â•Ú…QlBqn¾Î|Keum±P ü¤è7ÙêÚb_äÏؼ%4ÜÏVûň„ÛžiIWŸN&B^gö8žqUÇj›?…M €iêYûŸ•WÅf%2³è§òÛrn‹p(Ù;L˜k®þæK`à“c(IC*Xï¸N|¡cx(¶ªÖúœlÜþ½k| üDvI„õ#0A«;ëlè4±Mšýñ'š8‡Kƒì¨×:>/~Þ_%?Jé[$¯Ž÷ò,i¼+J¡Ú’šÜX†¼6O¨pÀ<*2†Íe%Qíj ÇdP;*W“ßÚì5¸˜òyaŸ¹,‡Bþ–f…­(‰6Ÿ¸)\‘Jrø"–#]Âæçé·0 +ã$ôŤÐúÕSíwh,ÜlEIVÔØrÉšhbzm:å^ð¿J’zSV±M„iÉʨzqS®ð¼×›ZW¼~È ê„øtDŠ°Ñ£üÚa¿phÂ×Q}i¿Ý ¯‹hú¾ƒ·Ü.¼ŸÒÑßíbÛÓ0-õV¨ ¦èá<-_DªIÓ\VÆ—™—õ€¹Û¬†ã?K1SsÂUÄ[‘ÆÎ^‘1-¿6WjZõ¢£GzÝq ûô– +˜}X{ªeŶhئïà9–OZˆŽã%Þ%^-÷ufs{A;P‹ÝôgrñëL΃.Ñ\¤sÇŒ8Í,HG‚¬ëÔ/d1<¬ ;àé`¦žiM˜ëo¥³mÅä®”u YŸZ•èíA÷]·Ý”|³ÚÝ[0@úsfÆgä˜|ÎÀqö/éfá7% ¸4o}Ñ*²wH x/ ’ÙšbP'Ø<´uÔOz…×À‹©Ò©¯ [®øaYwe‹X‡f ä †Å¨ˆÜé³D9H¿û￟í0m§‘ôÉ1ÏHËŒ¾UÖ*·Yúãï;ô=ÇÃÂ:'A°{2hÇCþ˜ª¥¾9$,R+¼+{4c–Í/²©®žŒ²Þð¯.‚#°gò©’¬%ÚùìÙf\©©|Bî2+ÓØ±¬U‚_4Àê"íÉ4ÔSÌ5ÿ%rX7ùK Q°ØñŸAIu4Õ ›nWNŠófÓöœöŸJÐ~@šsÓÔœkñ<ô ŒveñÐLmÊ™CLÅb r'Q'YóÒyc}c +‡§ž]N²¬—¥9 Ô’€XÓh¥ôZѹ›&Z¥†·¿|œùÔ´ Ö•‚6˜™°&7½…,svu{b fUñ¦[vÍãÌ—»ÞÎ2@rƒ¹©þâ“ –öæ»FÈ™ùœzÔ©£R ïÓï>ü1YþÏ °+ú( Â;gqß”Çùî$Ó ÑZ8ÐÕÓõóûXW³°£‰Žqf?, &]¥Õµ¤/¢ú3œ0JTŒuL0¥¹¨äìtFA0º-ññz‘• +€û‹v·—2á f¡ú†Ý´ÀÃëSáþ¬å»ÊX'½"Ä÷~d×ÜâEØ ÖüÑú‚€êã\owè:CvÖ§R‰K‹ùÞ&¶\‘ÌãýìsáŠjônÇÆ™ë ”Ï[}›sl-°QÄá% ³—̵Jæ¸?ákîèU‡ó9î÷º  œJÊu7úÝŒ¶»Z^cqî{ý=ž$É>ò BJOg| ;¦?M¦´Uà¬ÏôHLe¦˜Ö7d%ñã~í7'ÁÿL3Ñ]ÅÃxä3©ÂÕI%´²å…dÚÞ-4¨@!m—ž·Q, EòÝ.x3.4m‹¬ùAúCCTêø9—ë§ ÎB"4ŸçsŽ‚+’q +ìiiE÷0CÙÈ„‹BséP„-K#j»°´~85Žü3Š«jÑá‡vÚŠ} ~P, LfüEAÑh"åoS!0”]Üßmc>|[ÓÃ%éO=Äsøõè§+U´)¦È_Zù +ý<)íÎù2ÕO¹H { Ê•»Vö)˲%›¯v 3!†+¦ú¬õ›ÑíïXµd +½WÄ.øžCÁ»M쑈b½qL´©HW¸hŽ£{Ʀl*] \#§‘÷•"ÄÏ<)Íã5+ÞÉ€srèÆ«gÆ´~Ë—@ÃGí0 u&rI½¤|ÚÕKët †úJýóžcø9 ­ˆºaªã%»´å“¼|'BKS’ãˆEkÝø“èÖ«X«œŽs“»š’«w"¶sWçLý³R^4-}î×ÊBõèô‰õg%Òo²Óaa´Õ]?´{€œ‚LÕT©pVfYrͼ6°ÜýèTÚÒô 1¶Fµ—¼F XG‡Â³pR<͵;ÚRD&ÌÉ-»ß¤F½Û݃GU ´ç²ðé +È$*~¦I‰­Üjà :ÜÂzÎ¥w`*m’Kð  ‡y\y,””]V²lòShÖm‡’7<…»VÃöÚüaÏ7Ÿ–ó;܈íϯ²8ó¢ e×ÛΙ‘¯ +< J쪿^EÚ®‹y‘ñÈU†“5×õ´ùÖmç´÷Þ_vMÓ;G~~“Up)>¶RþVÿ&/&šÛç„PÔ h­]^è‘ÏIð‘åZñ J;Ò¼‚ù$j%†OmÎØçêúûµÁIüsZQïŸÞ’Ø›û¢œä]<ùëÂhöMD!{ü º]† „ +m)[Ÿ‡ËRßëÝ?-çÊBœ*%Spº¸ @<ºJzñÊZ°­ÞÍÅó¶¹R“ž4ñ¾¬«¦¦ ¸uO\ÿ~õkì• þƘ$AÊ¡ÎPÏ$pqO».«<„G:>_=Çxã|²yì’ÑßYª"™tÿÍ¡¸Áààr6áÏŽv]¤±;QÙD[ƒVÚVóµï7gT“ºsPVíbåˆçÑÁøP2¬Z~Œ(ûoI'‹]u˜!TöI²øðô +Ÿúø–Þ(8¿Ô ɪýe®¼ôS¤Â:y·ƒ-*k—òà½-ÒÍL‘ýÍE¶þ´þ°2Ĥ&n¨âr"~„2CLqÜ×kxݜ٠Ÿõ—C¸wÊ £¡.æ¯ËÈ}¼¾ŸQ®CõäýsM©x–ñ ‚¡a{:™lIJáP•ÃÇ%•G(B19j5)€JãGRòY#eYßí¢ï{·®ba9ɑȾwoC\Ü o‹åߎLðÝDLiýÅ{iÇØË"(l¹ïµ:”fí-îá¥%Žx\R–`TÕ§MG­YDítK·«9m4_lJ‹*»!&´ê(ƒ/‰Ê°sP°øÔË—Ö¸ä@fÖkÎKȬ¨áˆ™_ðoÒæ\(µRͰ¸iÅ9®öaà2Íb¸¼‡õocì:rÃñ>Ü æ}[ŠÃ*5ÃwËֆƒÑN{|ÿìrÀ¸?É$ÉRÊå”áÎ Y+¡pïÞ~%Íî·H‰Ê™^QºŒ»ç1PŽW¬LfýÕK#ò‰µ)ØÕþ$YÛ–ôòéG¾¡" ðÝè'Âç ²¾-£ _zn,eÆ¡Òù&`@žàrÿèØéúpbÔsË}Hý¨2“ë^ø·“o§Õ†§,|sÏSi#´P¨ç.„Uõº39 x2…B%äò‰ÒA›'H.e-Ën0Áa zøŒ&{sƒ·òXãLìÓ´6Ò,šÜæi¾•mÔÙç¡Ö{V—ðÖêÎB몰²AÒòæÃûË„E„üÑ1]¬y¹(Ë|ˆ8mt¬&êe;§ ÖÖ{òrX©$=0ºiŸ{ç:g‹R©<> Y´½ýðeè© ËòO:³¸¡`vt›s–ªôš:èñÈÓ2¸”mõOãüûëî +¹MƶU<‘dÏŠì[Jû!³‘âLQ$²›¬‘³¤s¿,ß¹™ÌÅG¨xHùßÇÍM—²m$/D'Î÷¢àÝœ¡Ã•;$ex·oUHsàˆ¦É¾‰B2º×çÚaÂV¯«þ$«U~%ž•»/ºKlÇöÈp‡ßî)# +•hß̆¦@ò# ÙO˜ +óiå5‚BFt{%þ¼Z§¦{aº£„ˆ"•LWÇ·ŽÝª† ñŒºvqóXàq5SNÄvÕñ4ÄlT3#M®*6¡=êW Ó_¶­óئäp¿ÝãÐjEí“%V„Åë7Ϧ²r×7/ÓÈœÐ=õ÷;‹a–øuBl€"ÌêV?º«˜íö£Ž°•Ü Áëå@­}óe‚ieÓäËc6¸n¶—çLÒ¹fÍf=ÝLEøÜˆj8TÈ;ÚSS ÷:b_à%±îÈSèpø£C}çîïW +ƒR¼£¦Þi×|ž"&œ•¶$ñ×ÐB•á?¯RáèÍ +¡Öº]÷OõÀ¦ I3üŸ(]/Ç}°HÖX_™šcq»Š jSp©2é½Ûã;ê_XPU*šQ<¾ŸÁ}ŽP†»w±˜MÜízS}û–—MºTe›mrýèÅÛÑ!í¹ '¾Ý?qéàTa#Ø&#4¤è+`MͰtQ}:"' +¼ >ftP}Þ\é«"ÅeiqEÈ&±?Ó­Ô;—ëÜRâÃa6t”?dl™D(7âß_׫ڢç[?ðð½`ÝðÀP7výÈ0d½ô0 £BŽ~ï=a‹ŸÂÒí5X~ ñËã€0¨1éeLG5¶Kx~૯°Ìµ Œ1G,}O&EéUÖì,V|{˜Kd£Qôzíd0m¿³6M©Ö¦ø½µ¾¼<ƒ~ÊƉž¢›Ùüøüýú”N˜Ý~\zK"*•1Gð÷dTæ’¾±3C³ã ü¼)ð5Õ]³©ˆéÇ—výñ•ª…߬î9úQ9q,ÉÕ}‰‹æÏÃö”û†]ðò®RÝŠgòѶ¢œ›–µ°ð‚>FÀ§‡Ä,ªäÎùl<¬6ˆcto"3‹ËF©a%t1<íZ¹cåêæüì ìkl\ä^¯áj]JÑŠ¯¿äRã‡kÌ4[†©«LÚØìÝô4ö5lá[[Ó‹x~ +gÐ0‰ª‹Eæe¿GáÆÓÆÌà}j_ŽÀ³;†?À9#!º&üvm,°ÙÁK sÖ®ü9Ã/2/‹—ØX1åĨ;]Ìtœ*ENV`C¦ÜY‡óÉ +-œfë@¶i@Áµ_¤2&CGâè§G³ïýÄ G_½µ9:Þ÷bÒU~§Ûu2Nèæiu¾ˆ.7C\~]†ýÄñÁÜ#Jí÷¬ÍVÖA÷öܲ›Šx³µÅç_ võPDýÔk“e„;F´'+j!•È0wwdÑjj^…ou ã‰ÞÃq d‹!- ¹pÍ^d¤Ÿw7K͇¥ZæjluoÔ…6(c¯Ò´ïÇ3û¤qTmôò¹¸Ñž‚©TYÎh¨—ŽšÑPrøމ®õáqÉNÀYe_™«j/$¯…b‹bwKJj¬8Ò¿åø¯]QŒªmê+eØ(ô.¼“fŒZn† ¶Îì»L¶d³NPG™#dß<ö‰¼üÖXŒë—áìô›æM•ŠuÚl]ŽRHË{*ˆ1‹)CÆûÅcÙ¿—|Åÿå¾,TÞ’µ £RW”ìÂê Wöî½ô ¿ÿ¥tÞÉt‘¶x.ÓßÖÊÓ‘FÇ8ø*T1ö·Î<® ”>ŒÖ 76ÝG:ÓÅGm— ƒÈm]¬*Þ±Ñïè!â ôµý…ê F¬ÏÿÄô²š‡>êÒtL1«ÅyH]ãZöÆ™F"ç¯þïph¬h,èû }ò­œŸÃÝÍJt ;’}¡nkö|;H) o2ô˜Ó9"; vÁ¾ÍÅ.;)¾MúÏÞí7¦§EÈxF"4ænW2 6÷Ÿh¶\&›l­¤y$H²4£*ÌOnÔ!'F724†ÑÒnôù¬Šbžù^äê6ƒi#á3µœjC>*»Qé+¾öÜzsæV«ƒw –âÒ*¾PkļòÚ…3©’u×käÏ¥P>ÄÉ6Sm5x”Oká5)4æÀðÝ^¡ñ£‰¤ëú +2ðByö®5;[ÜÆñ…辆D‡Z•ßMÃVõÊì wD`dKdV®­#„ÒÞùz„PaãoªUâÞ KÞV­FÞÎ×ëvHzë«âÖ³ÄòѤÞh]‰.%§²Ï|à\½øœlp㥠+ŒÄgа§ó.bÈÞ¢d„ÕæGð-ÃÉNô¨äª÷ +2Ðîü?¸çBÛùÃÔ‚IevpŸeÌ(a ;ÚÃTíΈén ƒ9wH ¡/œzÞ©V)kqí4/¸Í ±1 ʘÙmÏ ™eÔJh3bÒÛÛ+ü´¤ôñÑò œÐ:•%ˆQ]úöŠŽe ¼p°Úi]7|ZWõòÏuúæ¶„‘uÍa;v7#àžæê”íh-ÖÃÛaßÙÚNœ³«hݧVõãÞ]µNµ“Ó ö¶÷')æ )øæ~Mƒ ZW²Ÿþ‚!œâ£ºýÃIê²Saœ/‹?Ššÿ› +‚Ú¯Lʚ嶈ÁRì ógE¹>!¼ßRD»†‡g¹“ºeY^¿Ò,z=Ë®Êj¤~~Ük¾û÷y'ÁP´Ð)꯫ÎáKЗ½s…@ô%±£à®ÕÅ·çZY…ˆ(c¡G‹RéÍMóoÛ _Xda¼¨fjWìÄSš:í÷\ËJ´º+dÕÚ¬8¯8¾ÛkÕ9ˆÊïOd4r$‚ÃÖêôEt!B\`*]Íe©äA+™£xJf¦„x±›·ì0C}KñÁ •ú¹>ռ鴘5v§×˜DÕ·Ÿ,¤ªƒtøÃIgÜÔÐX †1ÄÖ¹ÕxSŒÆÖUß‚S;YMÆí¶wÏmo޳çgôÅ€\‰û˧·‘ZÊe¢W†ýø¤SÇ ÇP{Ú'ÔŸþX2ž6 +éý'fö­ºOú(ÌÊêEßpg9_;›ÛY¿ÏJÇ.r$)þâ˜?n™Ý_{`D7Š_¦%dz!¹´©ú <žÝŽðÇ$·>Ý"ñ7ˆ$g®kIQ÷”ç]ëïoñi57+Ekˆrhv#ŸƒþIJ›$6ZÖë@ÆAàƒÈK% ®ŒU§qöرU=[(&R ·é[Ê´Ýö¾1 ŇM‡;F¸†XýyÎŒ¯·’=øØ1þˆÿŒ>¼\9I!¢™OÜer³‹‰™³Ý˜†"\=)ê²ð`¬vÅN~àÂBk#Í Q~/_ÀŽ©¡æ†µÖlƒZÌÌOLKÛuª›«0Ÿ:Yá…â°áEŸá!ÐzoÿŽ-ˆd*Œ¼aÚ }ÎÎöðR@E§g·v%Ý-ŽÀÖB%PœÒßçíÌÿ€«hbÅ…ê˜pl-A>ð0)ªáó$x´ª» Ðgì¼ñ,®`’Λ6È%=UãË<™ã3ˆÞ½ãt:¨Gû°ÜGÖ<Òšùl¹0lÄ]Ù`wàÇ Ãðˆ•S™(¦±*¬IËÌ ä0Ì€—¾ØºÌ.vöñ°ž Ô)2Üür¶ÎÂÅÌ®euðÁÏ»Eïä33-ÚfbÂöóÝÅ…·ïmä¿ÄL3¯×ÁXÄT#´/©X@ìW²&¿JX.5 hny½ÉÅ! ð¸®Èc[} O¼6y9°DzÓ“÷çÕb$ýBot‹#[¢öl‰mòS>Z¶ûà ŽÂwa•°,£#ÙÌ„gÅ–LÎ5&ÐüsìÊN +Ó–žNÓaƒ<(Ý +³ÇÝ”m ÀÚÌþ$Úªøy[Ûû`ÁñŽák_IžÕ¶^ànUÉú Öªñ¿¥ÃD‹æïÕ äŸÒÆS5”‘egç0ùSy<2§)ÔqR­¼Z©«ðL%¼žhË9}"êba>´Üz÷s gmTŸ'Iû²d`¸¤ØÒñ‰B>Î>—ÇÌÃâÝfÌ鬯·ÉÎ(­Y\l1˜©‘pË5ìQH™MÍSvܰsq™,Ê5QÎt¼®ù8VÜ`¹[œÆøÛ®·a¦/Õ…Yt»ùº56C!k'„S$3á˜ççž–qþo«[ +' ßT 33Q’/ڵг¼ol½äçhÿÖ¶+³HÔÞ°´ÇœßÙÁbYkPöÜp0XI÷\$[€Ï,x¶g_ê)Ÿi'ÑC‡œ äB#¨âÚÊ9« LØÏÒ%Ç®. d¬1±|°¬£ó¸ŸbWQÆ3ÍJ!lîµú$c3§ ÓÄYYoÞÁ÷–w½.h ¯&)ž=4Ú8bœoÊb°ájÃlžø ]fÛ'uGµ¸Ûú»í§ÊaÏ)þÒ¤°Â„Ç"BNžæÁ­Ç £ÒdЄúÌÒƒZDS)kQ¾æ$„!Ýç ïá’øëÖ3zëQ¤tçÃêJîG¤å‰±ºæÓB”D6…¨•óþnÄšh& ó<…,“ÃØzÀF¬²Wãgó¥ò¶ûSÏVy½Ü㎎ÊzíˆY§”úãyñÅö§ñ{°Õ-%>Iî ßþE/Tmê%é’lƒ\ÐÑ&í½Ý6\2bS‘p… ÔÏ-•Tä½>܃RQ#Z4n–ß5’fSyبu”6ø†j v€fÌï¶ +N¥žü÷¡nGxðŸ-þôÞ/%h´€WûÄØvô“©5†‡/Û¥œ]Zb5"MË×¢,­'á]é“¥(ZI¿kô[_|›ú“§õ úH=EyvÅdú¸’×ûË0¡nÒÅøÜ—>üfõ‡ìé[PG–'ïâcXéç ‡vüËÚK(ºá2‹û2.ZŸÖ¯ çF>Ú{y0šZ¢¢F¿ä>'12œÉ&-tö§kqZ+V»>†7¨Pˆ%áÏÅÆª:†ŒB­çm^£ªÁͯŠ&‚ø©fÏU•œåµËâä/RÊGœñu±>Óg!â¼H”½meßòG¸vöôj Ì™rµÍQ“óù¡™îw™¯£è˜dsÝ(¦uQ5Ç„.‡^(_£D éÈžÌZAzn¨{wÖ|çŒaB‹¤‰œœ«“U–ÌãôAÞ¹Ô€6Òð_£Æ¥¹,x‰zyÏÂä‹”§5µ¨6îÚûë‘õ<ëìÖ¦ûÔ`éRôlMëíÜ`{"—ß@·¸4¹<_ð8ƒY—·w™Ø"Ëz-yNU¢,È&R‹rÌõœ'9+ÐCœQÚ ‘|èÜN:6œ†• +vÅsÇSâqÙ0`òù µ½Ñ¿·Ÿ…Ú@æVq!FBIÿ\(›áÛlåá® +WÈœº¿sbn«º|#1¸‹¶\cD°Ì\õaw,õ íœT@Y^î³>xØ&‡CÉ÷ꮚ°­]<e«)¢êó'¾È6zôÎÛ¡-RÀðJƒ~ “þ¼Iª¼´)—G£ªñ4Mª‡:¸óé_ž"weWÿ‚TwN HÅ’*õF•0ŠúTóÉÛ˜ gŸÈZ)´D¸‰´t'[ÒZ" dE{N3h_m­ýNDÌk²|j‚¬zëëqŠ"h,8,½J\¦Ç çV÷pNäN}#5ô;”6~>ŸâX|› 9þË© ú^7ÉÑhTRp—À“ZÜ!23TyI±‘Éü,êgPðºõ=öÚ/2XÈ­%>‘ D¡]˜,;®Úv'“8î+ª‹é]k––<»'ï_™Š”y BŸû*‚/§vC#!¾nðp7gõíN¹¾_M9c‰/Ù-æ{ÃSvkt8¢–,!±=n0døX6¤o”€ñ¯|ªð‚ ¨ø²mmh1Ú#÷Ö;(î:U\.!ýÌ:sôiÜF›"…B°3Hea˜Ð¿õÀ/ó‹FÝdnU¯Ä +„ z0‘¬Øca<‹.ü—©8Â]먄ֈrµCZ•cÈ¿xé {bÖ·k*z¾÷Ÿ¼½©øzhൟRNírpfa°‚0›P\êcŠF(ì=S¤^±Ã{Í©ÁDý¥¶kÄŠ·O6° \‰u2÷Ò'§øèPÓܘ}£ßí¡×åŽÓb˜½>©ªp»¡ÙƽÐ.À"­ cs`Äɵ`v¹ílAH +_!«Ñ­ñ}åÐ1hÙ5†¸B$"d}$z%4ó ]*Éñ;™ÍýÎ#{³n#”Zؼ ÏBÖTö0ñÆø€Ï6 s3qeÓàß­®Ð€ žJ¡ÇQkpïŠW õ¦øÞÖ©ƒN#Ž›o½$dÃhTó$cÒ•S¯FÁì§ô3| æU-Ç{ñðZ;ú[Òêœqk`™iµAõ§n%{}dÉ;DY7Æ{¶¼ž!;)Œ¬xBa*²y*ú‹Ú¥QÃïëyÀ6§í>ȯd€uîzy@£A­19?8Å*Þ˜tñT¬ƒWÀhšÎY8—䊯ïdÞV`uÂ8=ø`>·ü#Ww®L8YnÖ“Ïe2WúgÅ\zSµ¿Ý¸N-%I\ dùã=(ðÌ»“nÜq4êíò¯‹ŽÔÁ3{Û.SÓîóÛ´®À\Ù>ŠØ.†æÁ6 ³ŠâM¯Álæ»0¥e|Rgµƒ‡ oãzqµ”&“Åš3Ƕºfª³WÎjœ¦â{ÞHÍbf‚\ ™¯¦|<©¶•_jÊw%è,Lä§ eGzN=©wƒäë5_5ÙíŒ,ªÝP ø~ Üù÷ó9ºhYÏsM%G"Ò–ÊTìÄ’ºBy>›Sp­=E²‡2lÏîx ùb¥ÙY±ø€ðF°„ÍD³·‘C²7ûceo ËB0¥”P;¨6˜¾6B±xÛ÷š8ˆâ³;ɸ‹cö{²ß ú‡|ëÝu†yh²\%†®¿P£ºQ„Î~"CÕQ/.ì”Ãé5C¢1‡°•µGX‡ü6GS˜JÃ¥kÜ|UîÃUý±×?$†Òñ:µ·ÀΞÀQÂ¥9‰iqVP¤¿Ð” æ-­÷ ‰1«®Ù¦Ù +I-ât…ÆEïÍpÞÈxDœ>PˆÚBô¨FwœÂ.u$ó®Â"¥dí|(Hè}³Ä¨œÅ«+Ya‰Íþä÷G QîçÂk5»A¿;çÍhé)Ážôß1u¯J !ö¡ìÀí[—=oòú}˜ä{Ä¡mÝÆlZµWà!Çï>ˆü½7¸“Eõ‹iý~h±“×}ºœZVª© וL€'}H=ŽBœ@3ÿòÍôëc5†NžŒt߃áF]8b2>iÛ)K¿ÅÅݺñe0hp£=ÃÁ×™ÜúUgÎ@á¾…Cµ+hT7\[*üÄZkpøL¹¶j\ªÂ°”>.ä<¢Æþœ)x3,>`[ÚáÀìF¢ýò¦la·d³ ½À`Œs_­†ÁÁHT’¶þtäpwñ\æöK§þÝq&1Øa© +¢’:ú™ÈG’d±l*—Ý&ƒæ@ËWþ!-RÞ×ÉðÚ½ã[ +: íTšÄ’™ÕÊÆiº%²êÚž:1æ÷ì•zí>{V׳À$Oâæ#¡ iY,jõg¸Èþ<¹Fg9¼T/Ö ë–uTpíå6,úDKåÞ_u±93 ÜäåNm[…0LáÌËüF"•VÿêØëw}šÅÀw#Æ´®ƒ7F÷ØGfòšaÞ‡%AL¦¯ÁÖ+4—g¢áº½«™4aŸ¹»hy=Vµß` iUjÉ»èÚ$iù…h9r{rÝ%¤)µ¿ +0¾HÓºÔ!äíÀ.Ö —à°<@j}ìÓ¹êÓB~Á»òàsÐ#ŸÎê:iÙZ<ù]hãÖ`$[ìöõ +SØv +ÐØêu,„1­ 1 /žjþÅP~¡ô(b̃Ç{…bR +f‘ÏÌ-¿jГÝoËÁDî#¡• ×9HP6šýKºÔgœJ²^ ³…@b%ÄǼ+Nf€±!FykqsFWD= Ûµ¦óMõáă¼“NXbuîGØìÖ<ï;â® 1Bºp¾î>YëE?÷>¯»ß_:@~Å·¡í«ÊR‹‹ÄOSO’ê[hÅdàZ0ÎÔößš`Ýí£}ìâ#(ÓôË‚B—ïxçÅiT˜QTONž}e8÷︖.2ÍB鸯Æ;3÷ƒ L‚ Ã´gîn EY¢”oû^¿:>äø ,Õ‘Ö+I=Öt޼CaQl¬v«ÓsˆHË Ÿê<ê…]„Ã9!Žv]a¸*ÖZL£hÚ¼(3Š©-ÄhhÂ*öêèÅ#Õ{³_÷*ÛqWèM#r€Àå¹ÇÛ(ïº>ÿ`NÝ´ä +G4žõ9ÍY÷ÉdäêaL`gfš'U½5ø;§KFÝ»˜‡,ñ¸3—ŸLî&jñýÌÅæ¨ÉÜwÞ c‚?¿µß|FÖ57­Š €ÉÙÍvrSnáš/å9Ñ—øá©„]£[7êèQ0Ú!G{ )w&>ʸEEÒ¼z–Â)?Õ¹¡ÇH•â„sèg̔ڠzœ¹ÌÙâdk¥g2V¾°oV1Q`gà&…˜Zvã®ã÷û?r¥÷Ÿuµ ðq¯.åÖA‰ªµV¯g>›°UÑÙB¤ê¶4òá[+\5Óa3Õ¢éïž_`±Ißn·:p9‰e‹j³„‘áqN*–7ºŠ¯÷|øŠ¼5CÉeŸvÃE-᫾§Éá0*R£rIµ#ÎâäM@œ1=ÚÅÓËW2i9hšHTq ‘„„9Ú>ο“ˆÅWôމ K2¢N±+{ªü¹Hm®ùZŽÏZÝGØUiœ° fp?k× ‡[Éö”áÁhAlù÷ ïNQ1vc& 5[©¡ +»¯âõ"oÈw ³ñàûGIŠÓEÉ!ƒgÕ²H»ùKñ䙞A»ÇðÑ%5ÒSX¦*‰p#jÒïÀ$[² 3(ñå.ý”j;…Üá(ÄýJ?hŠÀôÑtbDA)ˆP™Y\¥õ„jûõÄlOþ`÷:Z½™+ü-Ñ02JfqQFˆ®ëføFæÅï9*U¤¯ˆ#¶²Ž:Æws.F^ÁR†·WàÁ–=B„uç i²H_MWÈŽŠÞf˜§Vø⌬Ý5û +|•²‰"Hý5I©ÖÉ)a'­îåçewÛI„'O¤`Θ¶Ž>“ýÒwÎç{|Ή[e/J8ÞÖ™¨g·E¦^Š@òp0³M'ˆ~5(=÷EKÖëµKx8÷p`I¿Æù®ú‘I½KqCÏ¿b½ñ¾/O¢>ŠeÉ 2¢ä7fHÅL/‡E)ÊŽß‚”¤Ð {EއlÚËr¡üè8!¥¸©Doug%áó~VgêÉ H«ï8ð9ØkÄyà+bþÁ®"ãm<6ò +›²µψúÌk.ô1ÔûV‚©eõõ¦ˆó¦ø¦RTb?ªå»æ¢ÏÝ—Àl½vµÚ¥ÈjXa¿À»B%§Ê,yJ¬mð'Oû¯>¦Zga2˜]&„sÔ§÷o!ï† +RϘgˆö]pÇ·2®F½‹³$D>º_¡¶«lõBÆë½›s¿º?äuÊêmºùY„ +§¿û‚Ô›‹µêÎýÒ‚¶Ýð+Ñ]rWʵ¯&œES1&÷n= WK5.œ!õ<ßcŠwû¸úå“ðRê3ÚõÃÒíõJá° +åàmf³pécþü9Õ(J']ZPøXâJNà»C ²DɑܬËm;h,‰ ’>3Z7 a«n©0唡¨QÐ Ûœ?ïáþuññ#Ë ÿ/õXK%lê¨ìž2œ•!¼¾1E¨±<ì%X’oeFÝ×PE5&ÝïMÃ<ÓÞñcêÓ–Ä' ÙîÉmQp‘–K£M#|Ì´Ÿ¾9þ=UÃLou0ŠOWšDeâèòý‰õ…ÕÜåý4ëvt»s*ªQp ^·Ôcé‚".Ÿçi…ƒ˜[È~ßõ—CB%1«Ä7º Ÿ6÷ÖùšÐPG­Û¹/¢Ë»¶ËÉËTV÷¤ßßê?ÌYÈKÕم}âÛG¦cœnÒÏÀ}&öÎUÆX­îùHÆ×¹N׆=Ô¤USƒ8;ZynØõÝZOIô…¸Dž”ÓÊÔÛ§Ê|¶cãïø!ŠJDõtÉ´)-õRÍm`E¹=!Mtú`ä%.KÅÚšNþÀjÊYãþZ ¯Â¼yéÉ¿O‡‘ˆÇ&.Òún5EhV?ßÒj¡³€0eŒ€äš [,b,ž <Ù}9H^êø¤Ìä\àk"áµX¦WŽßíE¦§%'Yr™xÐvƒf ˆ€Úçiëxâ*”Xe­u©¨ãT:[Ò lÚàø]ʳ\ÁH£œH®ì³qÀ—â’µ1¡Ð¶¹ŸO¿[ƒ0E+UnÚók)k“Ìæ” ò£Í§ {ô³—ªâŸ¶õJðï<öÐʈ2Î?餛ŸÞÜŸç?¸¦£Œ/ é4ø™ÞÂ;´z¾ÇŠtV§`¬=–—›4°¯d¶ˆ®³³'ó¼4>;i“®=¹{JHÂÑoÜW”Ø^y,Ë@R ú!‰sÀ­sôd¡áï0ØuÂÐý|—|ƒ“FŽ´œšhŒ-دiBKк±0yŽ&ïØÙ(“.™ j '°}ßQþõ•=cŒÑyn*g'àlFýÕÂ8ð SÂC%8ûDâ[”4FAqìx|fQúw¶r•sú½û°¢U}ÐC…Üw'Ž&J²x±y&ø®,ófI‡ÌMr-ŸõMi¨ÐOˆÔ|È œ"‚†±»ïÜ­ÉûH?Ù‹®o¨5gãqL]šYã7Y +ò‘50 <¢}¬}^±ÓÃØÎªûÔõt6š~ì‘–> Ï*m’Ô¦È%Çÿtùž¹ê™o »®y ‹ëUMôC€™výÅo™zô„à9 e&±–ô±ê ¡Xóƒ‡.¯Ånݘ" rdtý*è9 #MËм¢‡‰aèBXé° ¹ÁN[†•¢hŸt±^3¹¤?³Æsng]áÉkºŠâÌïùÅÌ—Yúê‹ÁîÅ¥»¶hÐ΄ +ÏgBÙsõto "Ô]¡/ñì‡ò´Æ{¬_øüÂõ>÷oú¨±’’¸Föô(lSáÁð”×Á@•4w¶HQgçÞœèÝ|Gfs·'šÿާï_üíG»¼…mTdè«S/[® +Œ£"ÖÜ;³€ñM¤2~繜e'‹žF’5Äí{Kªk?H¶?…`M¤Ëø"ä,gÓ—›É.¶Iy;ŠéòvEZi̯YšOUvæÁb^wbõf=¥Boc¢+Ö K‰&$Çíû»«³Û?ú žp‡Ìaÿâñ—VþòCÉ·;”¼Çšh3Ó ØXªuf œÃ;[ANüÙ6ÂŒh÷tž7¹ÏÑX‘¨éw‚‰ß*Õ"£ˆ‘W4€ ì1P¢PʰbãF)có5 S7ÚW¢î½b›àÈPW¿F\ræØoQÈèïäÞv«ü±›FO‚Ì/{>:¢ßíY)i‚~±»¹¦j«iŽ~2(×­åÈŪy€žÐߪbì,d¾¯ñ ÏWÒöÜ3;”å‡ëG£g¸µÓæ¿5 GcZzÍ%V4· Þ,G?U©p¹téQý-(Ü@dÑ.rp‘Q*ØŸÜ3+Æ€,Œÿ^’¥€öSèãáRLö\BbCyUöI)¶Q=³ÏbàÕmÚH˯áí HÎóIüûy f&' ++çBQÏ >Å9úM~Iy˜Äiȯ÷Žìj'ù¦Ê-ãéíyl²â„Áh³bàPOÚÛ¸Ömä^&cE¨­ŠÖ/J ˆJ´·¾Üeೂ„ÊàýB,éâŠ}[)œ7ˆÙµŒXŸÜˆ†tCjб~.^Q.þ2Ò.gö)O Ï‚Òìë°]‚ ZZ¤¹8mØ!” +»êã0ÆûwØ¥‹@\ºšÛSˆWüÖ¦º,ÔUc_ÛnP~¶‰PdÃê}lzážO¿lx\_Ÿ&%ˆ«àžãØójF\ '„{Ñ_÷ŽašmKèÂþgLòêâeÿ¨½Ó3µ7Gó’ù%Ìž¤¡ÓÂAw½ã¿eÅ;ªìOàp‰fKøJ!\É$o†€Ï4ÊFâÒû‹7Ëât#ûÉx;ÌÛ/Àí¹q•†äÂ×OÃCÅ~Hÿ¨Kw€B%¬-S…ÂdMþD ‡ã5åPF§AŠ×-–H¶†µ}4Ú:Hkäô•}&† "ÅÚnœµuñuŒŒÃ±õ|û&‘½›6ëâù€ +â{²ãžãc²Ë…ºn(¹ét•»·æˆˆyüíñ7ävþZ ŽÂeZ¢¦¡TÇóµ:Þí»-NØ3èV¶OíÚ¢™ÁØ|°€ðC¸lt¿fvna ô&cŒÙï¬]/'ª‘L]2ôjæÓÜÓF-Æ [øJá–¬+ne›§7"q ém£ù.¶_(×{ +Wi=àUªÞ3÷¼µz-eL˜Çãeùëœ?ôN” Òº-ä–â—ÙµvUûÖBFZ¼q]PešýΣÁñ‰Wi°’† Œ^#}5šõżÀŽâ¥˜ùرy„º9c ²nR¾p³ÝPj+>ßÜm7^A +C¦­ðGŽûÁ¢C^N8%¸]ÊÙªÕü3n½¨E +ª'ûÎ(؃#}q©ö…f´›]NsgÀÛß”“ºÈ¼Ì´sâ k3Z‡‚ ÜOúêÚ×ú#èt蒕䃢.¶Œ…¼"Û$ÓØûŒNÐ×¹ŽÚ7í §rºä¿ÑÈ× '©,E/[XÉ ôK\ užîãÒÿ«iðQjߪ9¨@‰`+.Üx»r¸á=¬b8oXˆ<µYéУ‚q®À³YüŠkâHìÕcùñ ¤SuÖƒ{c/j›:lƒ¡ãøPi¦Ô,¦/véiÁX8Ía .“‰±`äU8¦‚=Xw)Á„áIq†ÉãqÔeÊy¢ ×§º­€ç·¬©ò#eÏky*±–™’Ó<džÒbÿmòAH­ ­‡çÆî=û<é¿…ù{›I´$Q{ÃEƒÞë†-!(Â5>ˆ·†ùÏ`mv‡ŠQƒ©hà—Gù#ÂêªÐŒkÍ üËur¥zw'’ÉÝÆž2ņ_LÌü¨zII¸_/N˜JlSp‘h.ùûúJÂkè¨çŠ´C“BFªáü÷ÿ hòéQ”¿U £ûaDP*[nÝèP$5~ÆÛ^³…ŽE¬W ø›!svyàý¸¬Ÿ5CãY"ƒÆwœä(„bu±µOó+l1È¿¨M]’pÛ'»`‚²:T&g0|UÒ¼ƒÓ¬· 'µ|7®ÿÞ Ë€"½sÕüèÿn,oL'–v½(Ae®`©±H8þ2‰€Ðä;c.PÞxtùß6¸r™KOFe2;=iÒ†fˆ[» '0Fd"òIÓo“b³¾ƒñ"0ÐÚ9àcÈÚ€ö€‹çqÖ«£ŒTØ-jup@H¡ZQ“I.£8—Nà:´qˆ¿WñýSx“ÄÞb^õÌÉ÷_ b¯ ¯—­ì®l=Kr:1$æ¡Ý7ÿ¹·ÓÈé—5cáz/@Ú^j›DSàýéEêÝíEJßH´œìðáŒ#‹Ã +=;m)éo»£Îñ Ò\šÞÕ&2ïðwœ™ü˜á$y98’&CPÝoo©W$eÍÂ)ÂÖ0jíàþ²Þ‹;TÍPå¡•y&—`H•Æ$™×™VѪ +MÙÞH *©-ï"Ò]½…YÅkðàJæcM)0ünø³$ˆ<˜˜ªÐwþ;ìœ*m)¢ºþþcŽªD™Â®¼á=_#÷Ìu-„1ÐŽg!xoMB›þ<ôgˆ°çZ¨?¡¬û³Ñ{9øVZÔŠRHdºA…ÎÞdFý(úÙ¦<ªQ_º£…<¬DË×”Á;‚žvžÉuS³EŠôa[3‚þ„ïÖÕŠ§÷j÷ToÙ‘LS~Uã0Œ‘Ê4S%—…¹MËVÊ3GÉÐaÍÌ—`k[KX‚ó^}©.#}DSƒÃ$þÒpõŒ¬n›~'£ºO±NØb?ã`öm Íii¾ ù*gÐp*PDúoðCöÿb„>n’×€Evš¶-`4h¾dèQ¬ +šˆL—…¬ÒùíLP¨þ]X6ïÿû#.ú»lêðx¢*Ÿ„%®×½ÆóîJ´®¿H&£í^hï8éªÜm&ñÓȰÞb$±4šÌƒÜpÈ—Ô$F¤ƒùÞ`u)\›²uX|Ú ‘Ÿÿ Ú8íçÆ¹™³£*Ë¥˜ûü4"`ݹµÂ‰ èÒPÊЛ¤œÈ’š‚ï»1 ¡ëK¾®~8Ëy½vGr/kŒL‚j;¸4‚PÃWKN+5K‰¬ꂱ§ ‹ú8(]4ÛG“óvÚ™U“¡N5¤N…özþ%ñmö䌩åÎ:ALcÿøÅd‹'ð)M6@Ê:¡ +/H/Òp&›+Ñ£+ˆ9ׯ Ê$nEn«ì%r´NÓn¯§t&ê0=xR´ÄÝC9ƒ/qÁjD¤…3à‰’\—óÍ/À†HWe:ÙÍòãÑ˧7ý¯Rðß,Pš„N$Awf`~$Y?«ýAñX厱'6€&ánKQI^ð|™NÄ®àz€þhJÆZ,å9eÄþ‘°À^(/_?þ©>Ý"D±Zew =雷Ѝï"àÃ(|{[Â¥sE*¹èQ/£yñ¶ßŒ,¢;ê„ÓY]‚’ŸŒ7Ùt«y@¢§]Fæ¯eÔ—|œ +, r,}ZzÄËmK?ä| ¥¼¤µ>¡o/$­öè=J8´†¦‹ˆ&¨,ˆÂ«ªÑä>dɯ5xG7ï˜ä. ,õYz"rdjŽ®ÎÌ  7F©›ý’6 ®\eÀ¤['™E @„oاN.ó-BÃ-¾k4Õ†‘ñDÇa#MÞBCËRøç3]¶ àkðšUm3 –ŽWnïNh»¯}’žYÑE¾>ª>«*1¸Ò‡hÄa`Þísw ·ŠÔgòÏòáBžlÊZÛ³oÈßO0·”YªþMÇ•ö|¨—nßNãÈÆL9‘ëö·!F?Ó<47É£ï{ôåå0²@pÄ3–ÍÃwäxƒÃE¼;­ÇX}vr~Ñ~Kœ,R<¶oÉãxÆ£î«W¦é —-ÿ\*µWë»,0. ¶QD>ý•êËJC¥âµ/À +l‰GЫâlÙýRtUÂþfß +L ¥¦ÓßÀy-xwªXñbp6ÁÚ%òõ”IöR;ŽÓs@ îäXÇ4®IžÕhL¢gö8ÿÏ+qŒÍ—v–8’¬ý’¯^·E® Ò:{®ÇLYæLÈq,Fü½ê’É<%Ð Ä+!èÁhxï'\§š ¦1Mä’ÁS8œüîòþÍÿ¡ŸÚ@¦MfûXúÎlÁ½ÞÚYáTâ_k¹[ /åT$Ÿ ¼™NÐ3Ù-+›DPv%:‹ÎšlWYï(­]zßÕÌZX ?‚<<œ`zJüZ}ðÆº‹z ÷‘ÕÂëÆþÁ¾C¬}˜Â5Y‰Y¾Acš£gÈÊð6C—êÙ8çÌdQoÎÔúqœn7I†uØc‘.ihU’ˆÛÊÊ¢²özÙÝ•q›ŸKÀÐS%¸á«òj‡XW—ûØS@àYøºßåLß3‚Õ£^!úv²qí({c)8á[b–œAqËÚ=lšÚ¨SÒÄùæ µhN/OÒH‹‚î#¨÷›åÜ;Bþg»ÿ˜Ì?ÿNiâÇ|ŠWÛË{N†¡_¯ó‹™–ô·[Ó È—ô]X+Œ#ÿû4q#BŽùD+äí×O'%/!øûh&V>&(º\fŸŒHùìöH$Óâä7´a±ÈVqþ÷A´1ùá"^ÚŠ@E[Ð;xÃ3Øx)#I¤æij°®§ð{(¡Ý)Ñ {!}m»–ì× ;T IöÛ%}ö¤NäBåQÒÓòŠ0T¡øÔ…Çù–À;„m­çpŽ®`ŽpúšÖIP™Ï9ÿÍÕU!“#çw.hslhEnÂŨT”²¸`‚u›LAKØŒB@òç¨Ãz—5‘ÄKA©ê›PÿüP̈¾4¨q\ˆŒÒ±w,gÎ/¶úlæB¡¡&˜T»?'-ØÁðZ \Un“oH¾÷ÒBîrÁÜÃÉîM×ÇŽ‹s1…j7¯K×y´\3À"eÄÉñi’y2IQ4£U#‚¢r3Ìàøzûac(×¹C Z³]ㆶNáSB}E³Z1 FÙ#_°|fÙ„ú¯~މAØ#+løR ÁPX3~¡”xêtqH–©<§üŠ"µ] +SÈøHd”@_›ÍŸ““) ¥íú›´7Æ’^ µ½–À¥ ˜螢šÓë«£2xBôOrWìaX¸ùkÒãaÕ>W†‚³gŽ©eFQ iÚ‹E 5@BoiÆÎ RmèañuÆW2 +æòW:ìÀ²$Š÷+¾ìýwü¼FçГƒäl£?ú¶Pˆ +’æ›4PÍM;>IFÕp¦Æ½Žµ·$5;7´¥ÜBK–r[‡£ŠZ®$P;Zê[’å2Ý¿¨d^w¯eÎJƒãš½™CÀ§vñÛƒ¬f³Y|,T‹tðsr3¿Ñ—4P7ŒB§Ü0¬]£Šîñ9<vlw˜µáÙ˜c+ZÌ(49{«O"{ìˆÂá¨*Ý*ÎÛŠBüŒK¦Õ¥ mC-®+ƒ8sY«Íè úlKðz‰9ló!×ð¨ÿGoÁ¤ñ¬]ùj"(y«Ü™„ù­6\ÇÏžÓ'bû½Ò,ýd“žüϬ§íòþ¿3ú|zm4¾ø”ìô jáÑb ù 4ŠÖï·ç"’'û!÷ÿÓhBD¨ïBØ’¾H-íá!åßéûoy×ø¹r}öG©ò¹[<@´O%`Ë /_6¿«ò¨ÇP§½ß¨ Dç¸j_žñ"ŠB’ÿVÓï9’竎ß¿mÀ|cG‹¬G 2¡@ý>†^Û»–áy´¡>¤Ì¤¥öîAeSb6 ( +Q§u2N©¿¸C¥û•Ók¡ÇÕRÿ~L­Bß…m››_•ÕÞÀMð „•yŸþ#Ì•}w¥a2Ÿt°ÀÌ +¬16¯Vþ@Ô5j(<¥@«ßÆ>s Ó:ÜG}õNè×5Êܰ âöÝ#ÓJUÛ}‘zäÒZjƒËXòLПŠåÄG*úC©’8¸ ³·æådO’×.ýÿ/-/¯jIþÙ¬B‚»8Ü¡²Ø0HJ½IŽõW kdÓ–âZ_oO¬Ø®Ñªh[ÁJu¼Z+Œù4hE'ÊëBˆtÂ]#J ×U <˜mü›tÊ#7|ûüi’ Ç¥3KXV^ò¨,ÒÄîòfÌ@‘ˆ/áv»ý‘øw8þÖ"NœŒ¤V'ÙÆmÀ¾Ô«a ‘DeH'uìË`ÅomÊäêÚtá-i÷‹2ã;²¢­?¥¨ ù{åuÈe‰ªŸ{¥¾>`?âÎp¹¯I8<†%Ó'ê('ÆuÜ6¬W9ªë•à2XŠ—E¯0_OГû×Àgì;:26ƒx%_Ñ3B%¬háiÜÍK,e&òC2ûÛÈ)lOE8V–ÑP|Ø W[ø””XÎ…8ÃõBy z“kCR¶hl2«áw”" -û;Ê–⛳]ô Ü>“°@¦´–¶®Wìaºÿ] –.ÅCÿº Ç/ýñ‰vi6AP"zÄÀҸsмvI“’ƒµÒŽsC”Cµ¾³ Ó×S€]æƒ<¦FáÃnõéˆÓ®Ó»ꞣ[Û;‚q½ÅаÐ}/4ôÌ¢Ä J¡ìøÌ¤>üÀa÷Ûôq®eÅ X™ÞY×uBYÜÖse‰SôˆÝv£òÒ(®ð¦%Ô«AšY—39µIq‹ËÆplG矄ÚOåÁ±õ‘ç4¹»­&Îÿg~íÂMÓ3Ñ©Ê~@–“i°r/ÌK¹wäC)ñ(Çmò¾ÂÇ‘¦&9ç[}¿•£ÂQÛËŠ¿Ðü°ƒ’­H¤HÌ5Ì'§9 ¦Èe}’ýÀ¾dtâ±v•ލ9&ßj‰¬k‘ˆà²ÚFVLÏm“ñÿñ%;Nð3õÁqd…Î:š¸DYZ$ó߈à©JÚ‹Ylw¬Äœ-Á¹¦¾Z°+Fcg¶^¬±èõá ³{v‹‡+…ДLq²Ž ¿zá Á[ åä{Å,OYrt4ÔVVØAÚy‡ƒ@‰8œ'"}"ãd +éʬóRˆ3¼¡¯©aÛçm þ{Z ±=q“KTû#„Ys¯ôÜa§ˆÁÜVØeZ?;Ú¤°¯¿xìá`Ùàók5ðdTcƒò ƒ§â{Ý­/âÈ¿‘Z'µü·š…Ù@[’8ƒ:¸¤øR÷ã|ƒ„ßl†KäOSælÖ»?:båIáèºÝ.ðÅ-ÔU¹ƒM]7ˆ¹ãp}ò©à¡&—ÕÁ;Ÿ¼^ÇKý,«Tóœ²Ô®URìã$¯Ux0Ö]U4+¦³[éу—²gºPzÛNpF‚!)c<´P¾ú¯R¯é åjMË~ƒÇ+…x6¥¦*BæËƒßó.+§áÁ•lª^É%åt5¬Ö¸5ã9èN(¹D»]ütÃ>‡·&Ä” ¼M}sSd=ê;’^;®$p1¸ŒÐY—5#x+¥zf ž”èPV–»ú%víS®õÆþ¿¤³®çQéumæœýsʬ7²_ßEì?éj_zàrŒþ+ì´æ«üñg¢`JÄÞ5J(@ ƒ0ª{¯wòGkF8EüÎ,Õw¢ƒä`Š¢ìšž]¥l<›Æ#>î¤scSºbP|m‰Ù²L«êoÿÂÎÏ…@¤9ìJÓÝÁб[/¦¾Í.«|ÌbÐ Ôˆ½Œ¸áC`Ùݹ„Yb}­Ñ†È+º˜MF·4š£z¨²°¯~¿{*¼»^üË^!uÊm…€_ín‹øÐº+ÿÅêý»ÝôkD0ìAZ1ómLu=ÚC—0û!´#åP&á"µ’¥Úü© ‡mYiõWÒ`~—-G7pnÊ1?M0V§bAb ~{Kµ÷{ž¦oÆË‚äðpüo1¦þüT™ÈEV‚2å’©u`-µš 7ý)ßdMëš]/#‘ƒˆJ!KG·š¾´\r)J ” q¢ ãŸLØüÓ²H-ì_dሇ͘yPll¬•\„—Nˆ»çVe`feR)Ùc_è:™z{¨Ó×Fˆ öîÒTÛ °°`m>P±À1Craß±K<7ß{ÍîÂ;#xjÉR`/¬VTpÁ‚(ÈŸÌH‘‘„ÂvX•ø• àÿÑÐÎ+ƒÛ1Y›îæ äƒÐ)q^²©†E•äy|b"¨b1)¤àÆí’Oê^òÞñl4ó -ã>âëÈ;¦3½.ÈÁ¶¯íÎ3{X&¤C øà¿¡ù½˜÷8Ê—$Ö¸B5å;å*LCÖ%WgE£4*P}jvTºÖÜŠÖ›Jß1k™/Aá-µ*ÄÔã.¹)=ed6ÁqŸÃ"‡&ƒ¦Eeø´”é2­•4 ¿þÚèñ÷ÝŸ|‚Í*#tÖb쀔ˤ—Ôf›šæÐ‡˜ûÏÆ€—ýÁÏÝ/Gc£š`¢ñ®áI†  ~¥àЭTcðrƒä½Ÿhþ.v{o@ƒãÇ3õËÒ8¦ Ûì=  (u=êg¬2¹QÉ຺—ɫؤç×r—Þ2¡TU'Û¦ ôè°b¼­çC}™ôÈšœ¯6|_ƒŒ\l9Á«5fL‰Q0‰fõ‹—TÙÓÌ„_²öî8¦Úü¦\[ðš^‰Ø¡hNšâ¬mai +‡K³Iè¹ì%w»pº¢SÀOáôŒæ¾K7z¾Ø^?èEA s)uÔˆÞEÇeÓêcåîN“ºv)åÖ¾Kþož}¹Ü¸ÀNõ½ÈÓƒü›R¢P9ì×:&µþƒäi°g+Ôc£òçÊ=11²§<'¤…kƒh\pWbìlÌv2=ü}LO×pzzKŒù ©í£(ñhõŸxõÄ‹¸›¿AU~V:Jð„ÁT¸CÞÞ¯v•–F~ДqGV,â:¸©P.³ZaSJåþ$˜ôœ¬Y0T[cªžãµ³ù´?è¦ÑG|õE—üs/Ãä<¯è®îµp …‰³%™œS?²mÿ3¾îˆƒCŠžf”"' + +‡‘ÉAš3Ⱥ‚6ÀO&{v¦ÑWê‘gßz -áKéTW!f N•pÕÀÃX¸j€uwæAOù…ågí*ÖÝ]úA9ËØpÉÓe¦²ÆyâR`NÝï” Dȼí|4üýó#§‰šÃ=‡ZÈÕÂt0ðê7øKqpþΜZùªw‚ "ú4.HçeŒc«5tàEá`G¥ëF­ˆ’èøÂøžæ•K;ˇ—áº-y‰[2õØ¢fæ;á㋞:¤+o1ÜНûþK£(:È­Æpèµ@¼ûûh“!ðoÇ%´DÃ¥vîÚ3¼”LçN5d>zû¤C4hÖ•ãïÇÞcÄh÷;—,Ÿm—iŒA´ˆ0Ûm‹ÂFiv˜ß.µïS¬ÂS™x‹ÑùG͈<ÉÆH¯™mRÆóDçãG˜ â§º¾HÎK/jmµ ýÝ`•ëË€xUƒ«îðT*ñد~ Õ Dðv{`õèj)Ôz$hqQ8Õ2S ¸Ã³ðú[¸PA¡ÆÈ_Óé*åìî„:±P+6ñYXuê&(óJâëZìX,¦qíSŽ b¿§»ò)$¡ÜÕrÙ>nj\Tò¾¼aí(î|^Ë +!xòüU´­À2fõë椼î.¸ìEåó&£þ»wŸãçû ”KŸ¤ž×1^%ÍìDT)“Dò˜M'Æ_Póߌ÷³{›ý“¿öª•ˆîfX¤@ý=`ãù€Axƒ&¿×6úB½O­ÚÑ- e¸ñ…u¥±éçñRm½Y-ë +÷ÎÊ=£Y cÐÉÒ¯”}e¨´Uç×0޽Sm=ö‘Õ{<¦š«%m‹âqÖ_<D͘¸µæTë—`Ok )3­tX·I°ÁvmO‰ãp;·qlñCVAbÃÂTÌQ¶þRãXÃ<Ù#!z6oĘ;ì¬Ç@”=ZØA#‡¸„$sÌ þtî>…_òivˆèqá< +A …À"ÆØ%Ͱ^ãüÉ<Öê…«%WgE£:}°ÙýüCZïÜ< íܳ'{öíÞ¹”||ª˜Ë¢âíMæ—ŒXÂÕ¯ÝÊ`%Râ s»…Ø5nYc¬h,sð  ‡#6¬Q=0X#¿4DH¤%éø3 ¶cRËKOëVì NmýÐ kß+á\¾I=ªÞQzwí1¦+2ØbBª½{ç +¢П‡ndðŽšú±FÈJöÚð8™ø¤:wÏtßIý(B5¶})ìШAuˆZun$5IwÕðÕv’ZÕðPsÂ(0 BÙÀô7Ç~µdëÊ=·@’ŽKk9Ù*ÊEšÎnY»2Ùb`À³ÎÚèõ œ‹¦ªbÔÕ@½ªЀ[•%c.ïÁWÙ¤ ˜"Iå+—Ýœ9ùzà[pböõéF¦Q±“Ž"ƒŠLÅÔyä ¦oÀ6íj£’&Ò$ž«q¹ 9ܦKï«¿êS0y£Yib&Ⱥk¿9ÉÃ/Õ·F žpŒ@è)” ®÷ e®…9aVA˜k²&çßÝJ'´ ]7\bJR­çÕ¸i&3â&Æ¥‰ +ùoÍß%³«ñõ¦å8ߌÐIÃMb³áKá;‰ö’Ñ+[¡W¥!$,Q>¦iRCŸÉ@ˆø.W1àõ¥m‡\-ª0*@«ÒÝ¡ý¹Ú³Rï«Mþ1Eé.·,…(œœ ¬UÑ1èLe ÎS›¬z —m¨Â'Ɖ9ÎC¦¡Ù¼Õ=‘7‹Óç„Å•œß'þ,ÇߺFSœˆ×{OqÖm^žqÕî4·¸ž\‚Š‘WÇ}¢%ƒ,™¼Å#S¢lPc»‰@¤ö`Ì)›–¼§<±éî´‘ñ&Þ4§ÀZþ̇Oÿ|Æ™:á 3Û?„¡yæJ§Pž!í·H„¾Df}½ÿIÍZÔ³®p·¯usÇã·émè2Cþe5bUý"´nÕòÆùË•E€Ú+NÁ|rä; óxQê¿i“Ê5ëEŒ­|½úXªFRà“A„…\íé¤ð&Õ)©¶W@qçó+?Ø6lè› 4Djàu/(OƒÓ¥ËJª|©ðúo[¥{(Ð1¯“ªT]à‘ï)ÃÚüÛä¼9iLªmºCg <þ Öñ:K½§¢v”Eüñq,ï€qât@J¨¢ÔÃÅbœé`‹h® c8Ñ•÷é„áZ–¶¶-5Ú7Ë/À?°z#2ª$Oãk€H§Ûî­ SƒØ–JGÎp”„C2¬~,€ÒÛ\· sH£Ql¾ƒž]G’°o€¼·±O…öH4)õ­S½·‡—ôD‹UÒ<)[5'ÉWÕŸ†*[ìé‡íí4A)ð£ÜdPïòyÆOîæ¤À‰v9•ˆ¡0XRÊ’JÝbV§"âküçB§•ŵX5 ('RâaÍBJ Umí“Nµ#9 Z6ì¯dPR2ÑÅø+ +XUÐEr˜í­tŠ•´H™éº5àˆÐ4;öÞË9ÝÆ(~/»|ó‘·€vÔË â9»œ­6e¨{·‹×Ø[ì÷ò&àZ¼Ýa$têY­ +ò"OÊaË·v‰†nöÂFfþÝÇ©–Î×M~Ø]ð§ÙåQn éƒ]õÚì«gý¸&Ù>€>ØÑ=V|-2V¾ÛLÑú«x xZYÆÆÎgN[M{½'¢#l·dÝú1-¥õh~ê¯Ëº‰ª3LtM‰3wÂÛ§W6¦ÄMï\;(|·Nr‡¥aÃ0Î ‡ÄîY¿Ú¾Èàû³á¸Ì5æ6ý2gaKðm¡KÒ×ýZ¿>ÿ¸ ÃmD1×¥&‡*”¦™rÐTšã Ý¥g?'÷Fmž íÀª™m¤£— ?d2*zºÅÏâ³GÅ—ÆruM›l´ë]Žâ1kP_f¯Ã& êÐÍQÜ`'w£¢ÜíîãØû!ÎÃ-X·¦ÏÛWîÐ*Ë—M5#•Õ›÷äYÚW‡›—Ûl?>ݲéšú2ÕP®eŸ¸5,£äô|Å$ù‘Œ± ŸÝD·¤KŽL–©¹Y'oïjÈtªa¯n[nvªüˆSùj>öv7x+tI|ösع‘àn?ïØ%'±ëx¥|»98^NÆ#ʽ}UòM»ªðzHQäü ýÏ›Àrñ†¦»9¢¹ê´¶Çàoùß§tŽ|6ž1ׯF\æŒ{LO¼ÌûG½K›ÉògÁªã[°4Á|®Ã…w|©´[H$‡éÚ@oŽ2dÎÜ«ÀKô˜vo­K³ó!¯û˜wÏPR}Áqø ÅRèè>}{”]9™Ï0ò„q;À‘ ­ W\wMã:™Ï/âãÿ‰~wƒFplc³ÝŒ«ðóu²°3^TÁ.°Cu‡ƒTÒ¤u)À·ý™”úv˜ä«‹þéš<À“Ú­+0èÖÇÁºk»…)§waýî J8óài²#þ“Wrý¼‚¶¢âˆÎl¼-öÑÝȪ¥Fô€f 2{d3@çËÜÍá¯S×…Â(•¤_ðA~ëuPÝ<¦ÞVÔú§aõ³ÞÀ\{¢x„ûþ¬T#ÀžÔ?:ì‹Ýïk^››wÅ¥3çzâ>ƒ9_Î-Q¡Êði±Pãê ž,ŒÆ¦·”«tðU‰':­— 0ñ˜B‚‹[h|!VŠ ‹mk›·ì .áÓf[;ã Br&ý‡rw;{<Г×SÞæ«×šæ·¢›”N› m½N–E¥Šòæ{ÉTÒ.Ñ“‚–Wä­èÒKéf–Ìõåe<^7W GÛÐQ;[Çu†!b›Ðés2ÈA±IbÇ!¨"”køø#–ŸoZ,ØFð"c‡$‰9ºª(“n0#ß ÕlN™øAîvéɇèQýO+Hoé)•2eÖï|Q¦+I¶Å£B±­"›¥;÷³z Õ&·l«lh‚ö™àÔÊ=<†™.‰“³™: Ë:ÉÇ„xIƒæûÂ8×o€0ìžQGo˜£¿”±¡uBÔ„JáùÿÓö¦4$v*“zt +ßn˜‡-Íö«F¢ø {5ê@÷0_ªXœ×?ã!àþåêFmµýáð +€Æd4î²FÂFÅÉãûîÛiC%ß Apžš"£ déó"É‚päÅx抡]” e†ïš£s<-¤YǃpÒý~Jí–!Ê[ï†6C/ôLTsP‡b¿¢lóc\Wâ™íêmæaÑ»sÜŠíd?æ!ëUÍ „áIŒð”Ï9ûr§U¼>IºÄ¹³"É‹ý껪ty¤ó6„ +àÉÛ± ,XÄIË”„~'³ÉðË£vž3ÓiÞšU—ÙºKµPÒpëV·è_ùãzÊ«zMWÍì( +þ+Ã䉮h æŒÑDÞJN +;êñ2PÛ»Âö»{ê¸Ñö׋ÔG¬Õ*L•Ø +q  b,ªÁ«©@zò ˆCtR´`WÀžœ“*ï·U¯§Ð0?ûÛãô!wÛ«5 Þ5Mô²;j‹hò«ÎnèçrciÈëk` Ï试óâ^§é[L¦fâà6v“Ú7[¡ƒD9zÌSMaø`’ÚÑmUÿ1á·ÅÂfpvœ¿ºJ;žXsêÖÿgÚ!6ζ£°ªŠ8€[´Ù¶@ÐÚ`@Ô¾žÇ¯«×Íô\<âì¸R[Ö’†Ù0ñz/' [0Z"Šˆê>à&Lq¶õóâSCÖjÛ¾×s’ªš`¶¾“¹9Ð'{±³õ2º<¶jªOïWÒÁÕ±æ Lœ Úuy&³í†Êí—¤v¼ùßFLu¸9ðŸ¨0ܯ7ª£œäˆ =¸1·¡vvÆqú×?ÃÊÊjÓ¦ñÒÊÎ'hùÜò?ß^™Y©gH1—Åu˜D'ñ±Cïù¾¿X¶úcÅ#ñsà<‘²1²ýa›S[6Ó›Dj¬Ñþ@]=¥¯Ûd¨æ`(oÈË·•ër@&øvõüÚíþóklÂT“ŒMöòäÚWæ—åëË©`Á3„¥=s¥ËÚ¯T´¦.5…UIÉŽPì7vߢ޾‰ã‘G:ÔKè*ɨ1œÄÝÁ“)Oä…Í|6®­NÓ=©åE°†T&±äò¹ø.%*$>lJTr˜ð]þˆ&ÉŽqÑÀm ©Ò JG^¼Ò3m—t°R˜ibö\Ì­{6dežHØq÷Ü8@‹VŒ^9ènØG  ©(O mv‹#«ÊàÖØ`ã…®¡2ƒqo( ýÆ[2òŸ¿½Ë)ˆñLj88k$'ëY ÖGëš×ª“×MX°Ý-†¢å<ÜÀždÂã™Fý n½Ê+ +o6‚Çz¼±”¦ŠÀSAªôë(CQ +÷ñ¦Ï)¼¢Yj¹4Ã6κªw¶¨MÃw²(%~D"}ƒ†ê·HèpN5pfÎA¸9œŸvÌ™%e'@‡e¿ÇÄcfÇÐ¡Š™9±Y‹‹€Èx«j£rÔ~˜–ƒb5Øàäø/#U.ñ;²ÕÄ +XOký]ÉLØË±” ‰Hø ²ÔQfJ]F],ŽnÏ›çP6U Q¾gx:­×½²šr¶©ÚhíIïÄžYo¥d—!â1-@` +endstream +endobj +850 0 obj +<< /Filter /FlateDecode /Length1 1368 /Length2 30875 /Length3 0 /Length 31834 >> +stream +xÚŒöt¥]³5 ǶÛ¶mÛÙ±mtØq‡Û¶Ó±:¶ÍŽíäëûyžsÎ{ÞÿãûÆcﵪfÕªZ5çum +e5sGS ¤£ƒ #3/@LA•…ÀÌÌÆÈÌÌ +GA¡nífüŽBèâjíèÀûÄ\€&nmâ&nq +ŽYw; €…“—…‹—™ÀÊÌÌó_@G^€¸‰‡µ9@ ëèt…£stòv±¶´rû{Ì-Ôf4.ú…Dì.Öf&7+ ýßÍLìjŽfÖ@7ïÿ•‚šßÊÍ͉—‰ÉÓÓ“ÑÄÞ•ÑÑÅR†àiífPº]<€æ€(šØÿÝ#@ÝÊÚõßv5G 7O à¯ÁÎÚ èàú7ÂÝÁèø{8@MF ätø7XþßzÀîÀÂÈòßéþýO"k‡›˜™9Ú;™8x[;X,¬í€%IyF7/7z€‰ƒù?@;WÇ¿ñ&&Öv&¦ÿªÜ )¢0ùÛàÚs5s±vrsetµ¶û§E¦Òü½e s1G{{ ƒ›+Ü?õ‰[»Íþ^»7Ó¿'këàèéàûŸ…µƒ¹Å?M˜»;1i8X;»eÄÿùk‚û›%Ð ÀÁÌÌÌÅÃ:€^fVLÿ¤W÷vþËÉòùoþ¾NŽN‹¿Mý­-€à|]M<€7w ¿ïÿéøß;8€¹µ™Àhií÷?ÙÿšÿÞÿ¾‹µ@ù/÷XÌÿ|þ{eð—^æŽvÞÿÿ×|™t¤5•¥èþÝñûDE½¾ ìÌVfË?$ãú»ðÿßi”M¬ÿSÆÿ+ã`áàùwµ¯é¿*öø¨ÿ#ÀÿÎ¥èø—µ@õÿ\Ÿ™ƒÙìïËÿgªÿ+äÿÃÿÉòÿFòÿ» Iw;»¹©ÿåÿÿq›Ø[Ûyÿð—´în àøWÿ7T øoÑ*Í­Ýíÿo¯Œ›É_!ˆ8XÚý÷5Z»JZ{Í•­Ý̬þÍ–Û5þQ™µPÙÑÕúŸÇ +€áïhþ/ß_i™Ùþ}t¸þ¥ä¿\À¿ÊùßGJ8˜9šÿ#1VN€‰‹‹‰7Üß!ÿÝq|YþjÑèõ/˜Ýþ†þ¶ç°ptûg¢ÌÿË÷¿r›¹»¸ü•׿¦ÿ÷àÿÚÿKË@ Ð nuÉÑŒ/Ô¦!´ë¹Nß“ápJ`žâPë' ƒïªK·û+t +MmÖ·m—G‘”±~”} êá5âß³ö&舎$•Î7¿w£ª³‡p+3XÃÓEg"C„° êÂG~Î~šÁ¶àí ¿d)òœÝ¹‘” П=¥¼‡*Ö'—UŽj9åàß+æb5bôƒK(òM³qH¡ÜahÑ®½çÑr§¿ˆeÐÁùŸÇ²ûêî°Æ½,úlV©³ºöâ’ãêâ‚? MÌRúŠž¤Êb/û–o ¯xµóç"Ò§m0 0ž°fÖZ«F;´Ô{L¬ö°ä¥B©ð‡Ñ’êË[1Œ\H•0k;¢ÑÝêÙl„'=¢›]š}6ikß·&çͱña†§ð´Žç±Öñý>­R¡!!KOZ +½¨uÞLÂ4È +·I°^-   +ýšG +÷;¤I¿ï·ÑW<–½"ff]nÈÐ ‚KŽ<¿›8ÿêækÅžÔe;O4ƒ¯NÅ/Ó_i××E¸VlÆYáÔù™}ßó·â©Tø€Í !L×;ÕXŒâåÞÄò‰{+7#äÅì2R‡Ë5cQúß¼m^x +/5«5:8 +UHΣ&OšƒGECÂyÍOö++E 1O5_®«=#EÇâvÕ¹Bó¿÷¨åöº*¥K‰Dƒ•<í/Àš’]¨‹zØ·Æ#k© ¼îOö–¼{ÒWȈSP¯* ÉòGø­¬ˆàÖ c}h bmèVz¦AÈBÙŒ£È:Z'3êkÕ¼ùÄÅWS. óÙXž›Ü'ù=»OîkW­_Ê>ØàãˆI·ûAI²¼”q·-@õiÕ¶¥á)Ò´FPŸ¹0 Ü>€%ƒîfcÆœ:—•SemÉÓa|-%åØìùd ¿Ç· Ô¸ê7la<ð‡U +è÷ꀒo‹ Ejü9zçLÉó’ÊWq©ÄψÂ=°®¥XJÎ!Yž…“gÁ®×ËÉ@½ß/¤!‰±Óþcv‚ ²Ï¿H…1ÚŸz£Š®Ì&‘OÊÀ[J…ºó9#‚$‹\˹:Ø &;"ëVB9àË•ÀYG¬930Ó{¶¸$½ˆŸtÍT>Ž$¹léI*É‘ïy£IîWûì¨Â?u<•?kПMÄÂ\î“þÅßyjÕÔú²’µ5fu½•º]}ÓÜ\W—)4†k,tÇ•z†o4‘©—ÒsÇí¥ÌÏβHx'à6ý, ²†ŒÈÇ™ÞÞæï"çÎrÊö–¡!iÕ$íVÝ0;ïÿèC´ô`FD¡¿í|¤ßÑqÄ®ÄîA¢—iô$ÓQPwÕXûŽ9|dǼMXy« û¢«Ã\5ïá˹“¼¤ÿ<sÉuË eÃxOÎVŸÓ‘cÜÃù3FÓG-5.çk)¦+*•Ó GDè½N%G>ÀªÄ<¯™VÃ)£LNn÷vúZÕÆ„½£×‹s¶œ‹~ÁƒÁ•›X¦d¥°L6­õ‰x’ÀM§ww P¨bÄñÙrOLÏ‹Xà¤Íè¤-AêG¬œýâù5U¶-4X(—ŒeFƒó{úiWÿÚ2×­šR¨|?nzðþÍJý̳;騋<Ï\Q_¬-³hjMéqiZ¸X‹Õ‹ø„Û™DÞ|®fßñ,à€E“)fTT@¸þþõ‚„9±O'ßÑç…üâeæi$ˆb°ú×ì¦çîÖ.«cÅÀ6 ÆèCHÆê7²ûI¾¨ý¥$6o3 ÌJª9Lù¨7çÓ·Þµ-¡$bY(޼‡Ú­'e9ÃÙ|]mŽ”ÏsÏQªÄê‰.™w+Åצ%ß%4ÒOpy³E{LHëæ’^ÊQR…ó?öƒÂ­Z‹áÕ8EÕö¦Ì«?!i_3Πó“¶“˜,²íº)”%Xóy‰4EhÔD噎ø+°.9Ð+ÄrD +·Ÿ²íøj|÷ÂS“u¬hC:HB%’ÂDƒü åöU]qLDíTǦ>0Òº3ù ”ósT€7B_šOÓBÝþ$øÑè} pòÅT™WoØýdâ–C #¬Är–Ï” "yCœÜÂæMD–¾o†¬ °<#5¤û±©n_õÕá3#‹fWñRIÚ/+X„XÑ×%ð?Ö¤I€ØP]·Æ¥Ï¿ +Þ*½REÃjÃ*î¯èVÎf<é–‡˜ òz†(Á1Ò›ÒÖŒDŹ»WÉ«ETWþzðÉ{ŽÓ':}®á…¸Z%½¶%¹cÝ$„ÆÓÙùâÁ<Už–Œ„-°9Ù𤷕McM³p޵Ûy^à£Ì?]¿¡.â¢i±HzM_.œ¤m,?íÄ6{iz?4¯¡Îf“ùक:yÜö!f†ÿH\*ctåùNŽéЦ#V-Æò:èVa.LöTÆ 2c«±-Wš7ÏWØûg!É.Xò• +~%Fñ.ª”og·Øü³ªÿí4±å}›¶+Џ$?e=½ܵ·„‡¿Y*QLÂ8Ló´Àj§{lS%iJ²ØQ¹{po5$¼"¡›t–­ëI™g™ç\7Ö•'”Êx¿šñÜeMë…W1¹ø|Ôuþa$¹•XÊ"!ËPk3Œ’•Ý­ÜÎþˆ|Uë +½Ás3lø\‰Çô«ðT©$}|Rk€VÍ`“©ÄØ»"F¥6r,Y_%¥_’¶bÃZë&öÄPðhnT¨`R®F¡Þ¨Ø!Ç_ C§š¾t®çRœù>ªó0„~¡ã ôïª_!@(Ž~ZщP~½‡›’Õ(8¿ûŒ¹ž— é]D–Ž¡jhÕUžB–YÝq£(<øJÍêÕ+£á¤ìyϳšrÈF¨Ç=Õ¡ZX7éoQ¸¡Òv \ØNgr0rH—•ÏÇ‚‡¡N†k8Îû=“WݬHè+'Ù¼½~mh›iºÕïð'ëÂX¾¶ÐfݤH#´}È÷=ÍcïJ~{£ã¨€=éžå'y º‹½È×¥k +FÿðÝ­ƒî68mz§@ùÓ¸ëõc&†©°ïï%x11âh_l3F­@Ý–ó+¢#fløS§0KWåŸæä ³úµS ™”òüN¿ ÐÚíÐüÚ2›¸O^ÇS[è,¦F|¼Ë‰ÿ–qòå™8¥AÐhÅÁ’Šv;9”ôvé1ò„›LQulàè"ãªÁðŠf¥K*ŠÑý¹ÃFp? bÒû¾›ˆ"$ƒ<¢Cjtš¤Ñ–¡Qغ%Fbs@Öp<_¬1QÝÌE™œhÄÖ5'p°¥oƒ¸öGœ`ò‰Ý/§áx•ó4½á-Ù/ÍÅ·L±|Ðj¸T†í¼n²õ6Â0¼*C$¨™¥Æù¦:0×UœÁâÊG’mÕ©Ú¯sPørøœñV܃ÝìäÅX’´“xipÎ?–犃…¢g|XÄÔèz +•Yˆ€c`j¬“ðl•²© +kã¡)vÔ7óÍä0DÀ1•C&{'E9.P­`”ÍÀúÊ–I”tjõŽnû|-»{¬†ÿ¯¡Áãû2( À,ÉïT”ó? /$  20 :‡eó¹¸r'fŵmçDo™¢«2øAjP,O²»ùT+¤ =•py« +†Ãoj.ŸÞ&e©òÅ>"ˆXˆòYl¬è0aŽ ÄÍíYj<¸ç¬‚ðÙ!­câÒ6(û®˜.˜ß¼6RáŽû×f–jkó§mÓjÖìù(SkÉø×2ên 4³’>™Æ­#­Bû2f ÂjÒ”©ü_]‰—@nôàlÉoúûšõlCw&Õ"$ÞÞ]û¼7ót9f$…^שßL§>—¾ï2Yø³m§fžý.Ù'•*OE­>¦²Pp…^ ÖÖÒøðlnmÓlŽ5„ZX¦°™!‘V’þ‚›Œ#6zi‰æ;‰h˜º ü±'Ûæ‘Ôl°AG¾ +]¼N%f%̑Ϊ†óAØyñ»®ïF8©'6äª)ˆ#]$Ð,*üÔÎQ ´Iú6ʤµ”lÝxyÆAÇ×fݘÍÏ̃°Æ¸ƒJÆ.ï#p§žä°é=ÿa^¹üÜ7¹J¢öç•À”“ɉ!|ðŠÕ™’-¸qvëeæ¾Óó+B5·»÷¹Ëmêæ]Š;œ…¿™óGŸwÉǦÁbö+þsï9’}5h[Í‘5¯ôm^RØà:uP)ø”PR³çÓy +K°ÊýdgAŠ7r÷fÐ'$',SZWŸ"^ãÂc¥„qÆgßgç·h¬7E¢ú^[ ›NöÙŽP—=†lâ3Ã<[è¡õþ²´ðFB°Åtȇm›*ãYæÃ‡UЈ=#Õ¤Ú~¿xçĪ÷;1WV‚ÎÃ’Xcõýi³aK­”;‡‘T&ôsó*KɲSÌüçNìÄÞ5Üû÷z–j‡H£7qA'(º#‹ +K+rÂײ!Pá+…ãùv)¹G>ŽJ¨"Ï‘³Nˆç+‘26 ‘oÛ:¨ÖîUAý›·Ý³Wçsh:.(§„â¼ñ±kæDЪÅà›€$7T„3†Šz š½“Š¢±«½i½…R÷/µc¹DÜPÔAu¹rmòO˱¤¥½=0¯h|ç‘BoêÔ¯.ùÒ +™^³f?+¢^ò>â{èÓý ž:±tÝUº¼SWǃÓECY,¿n›íW½ø# ÆîÏÂ`x~UçĘK‘'MÆkœø—L9Þ³oÆ&×ùh%£ˆQzµSQ(Æs=9…ýžx}ç&Døù>GÖ·ò&¡Øhþ6ãuÇcÂo…Q‡þC^ÈGWZ-Ð釮q?™h‘|‘jí„tË}î¢SÆÑ¢Û޹/ˆäg)G ßÀ¯äŒÆMeýÆ©—›¿Æ\+„:<~wê¿§MÄ\úPß-S4µ£[ïêÙ +Íq$…]-Õ€íò™½³üc9ir—àÞ$™7›Î?€®ýê½ÙVQ5öJÛ6jùøÅ.¤ÍjПÀ^&1Y¹|›aØ7ã,tlÈú©qq€ðTœ˜8Ã%xN3\t—.íÖQV-ÂEzê+®ÊÏÄêö¡04rÿâzXôfË#£}ŸhQXž5 ¾÷5ýñF‡¾Z¢-q^šŠ2Êøg—¤wf€”Vv] ©wM‡¨†àòÊf‘rnUäD®ò(òW{' ÚšÀCªbþ!9§Gƒžºêw²uœù´/ö©ÒËc¡LiªÇó§—@IlsM)ù%zºc,WÌ*©Ï¢C¦¶r禈±GP«˜!䪗]¢*ŸPñr7a¶' ZFfî‰Âа  ¿–•ñBW¤à×rÁØWÀ.pçBS\vÑ/­£CÙ¶TÌ%j{X}TdôÞçìgab²²?dé|—Üã<ÙÔõ¼V$ɧWýc¼'Ã…$pBÁëÀǪB›}ú¯ÙºæôáZVÜ.>?uv9Œã±%Œ2½úbCÀ5rü¢©´›G"B¥„‘5–P8eàõ‰ÓC7ßyÇ4ÞÀÆKxhe˜ý±æ›õI}W0a®Ø4Ö|†oÆÜ$³,À'V‹Â”·ËÆi$"¹‘¿½kg½zÒÔ\[¢GýÆt^àÝ1·!+n¯ÝÀŒ´‚v/ÎêruDdhN„“—âŠß'­öS™‰;ªx=èÞú¸ú…}ó/”_lRC*æ ²¨X´ï*ía»Š_ºVƒgÀý±¤×hÞº’ô.›¥¿ÑˆETMp‹ev¾†ôþ‚ìõۭdžev8SäØå3 +³¦w¶æwBÖ£Ÿ^ŽØö¶)l:Es+!! îç{¦Jh“ÞÆ¿FŸ6/Ä·µu!3ºGŠzØ ÅÎ Q5žðç¾FÐØŠÒ¥Á¬FËõÓ®ÍCÓr­!¨uêZr@Œ'TÕó fTLÒ~˜!†"‰Kõ€ŽO1q8%¶KŸˆ¹Œ¾1Sd°?ƒ ”ÓGÿ·Ý-òÄGT–;íd°îò¦V±Ú¡rôdH…UÈ ÖàÆ+vãÌÜ„ÄëÊŒ´2Wv-Ñ…ÎÖCƒäš$¾vý¯SXåíÔ\>›ÔUáWÂë_ˆ:É1Â…mÝK²n™¸L­´ÓÓWÓž4 É)µ¬§jo¡æ¨qwÅG<)Ûhðj7áB1õLû¶L]É’Ô{ÿP[ËâñASù{¾o(’e–<ŽPÑyî;^4Êäeðㄳ'{zéàCªæÖw½‹"«”EŽÜ I§púmçÙeÞ\:Þí”Úà¸ûE¡„®ùÄup|ÞÌ[_` Å(žÖ÷¢­©ë˜úÓamÈÓ{>S øQˆ=¤rqâ$zçê.fJ·‹»UÒÄ~ €#è}äÚâF}º-_tÊRßw;¬k~\|¿'ü“*±–º§ô“t^±›Ž?ájÓ¦®ðÉÄäQ4ÚÈê­¡ÔˆÖŸÏ1Q—ŠÎƒj1¶E\7}+-ã{{¶Z'^˲¢ÈLGÎ1¿Ýh÷fT×6àjAÅRÄ‹J JüÀ˜†0ïI1K­ò[+g\%I`ú3&Ëò1ëJÔ‰x ƒ‚öî.\ªô¼À\“Lb£Ò›©ë•¨ô0LPèž—ü‰e«žÌ}¸„´N`r ÿîzý`ì‡H¤üVÔœä–߸³•4`šûs‚@ÇÎ8N=aѰš>÷ÉÎ#¦MBß|Ôl1ލ +žj¾p•ÎÙÁâ”áÆD4ˆ{ã3ÃÑN¢àB§!E~xP†¡sGŒ0àúëg>]ûoí£fi9V1>ôÑ®–G|ê»ÉÐ eWš2ÞûXDËA•£$› ”’ µUhîêè6xŠŠÇCµ +ªn£Äêu|ouÉ]í‚ãß6m’ó®–Tµ¼6O%]åÑG q¼gïKˆV~9ƒ˜‚ýF#zŸB€>4ÚI2V†'qÓ¬½ÆyDÞs~&g]´•ù>ëüO”o7–S8Ã×KÙöŒ=‰òÊåßÁ¦Ó- E !sd|tæu’¯ ÝìUÝO›jØvøË jd9†<ùÐqæ>µ­Ÿ•†çØÀ¸÷ûÆ)ì>(ù6“ž›FÒílæ4YáÆzHokSnn“øÒ*…_Þ%¾§$PH­8ŸrÁð ‘8'Ï™ó”ÓÆDÁÉòZé^¼³y–iË`ø…Ì„â\«Fo.;çãâ8%m¸2…#]¾²Â¤g¯š’[Rç © <žÃ/1.•¹¡wª# ôST‚QDqÂ1\¡êº-’ŸQÔt˜æR%4sCG xn,üŠðd*Íò¨+,ir…‚f‡Ü"rö“NÜU¬«rHÖxzôV¡¤óüₜ®M§¨ÇráÝâö¨¢Z~#´L`xÁW¿Ј⃠á{˜žKg+^”N#šÁ—ª­ÎûS/o!Ôßxfñ²ÕúbØ›ÏG†ð€‰0Gæ5'é1Û`£rÏ\C~ +I2Ãák)¬2 kA±œºnVB*Zïu©m³Âtï–ÉŒ·Â…™sýAÑw¿pö$ƒ1ávLéo\“ð§ _|)ÞˆÕ”\ïSçA¡ãÓRdå`öx¬L¯/ ‚¹àÇ?y„{ ÛE·|ÂOýIe4‚7v°vHRMKÞ|^Œ;ß:’Ñ™Ÿ¿ï•ü +YøúâláÍ\¹ï¶ “Ãz4 }W,@(ñr 8„Ÿ@GX[…†–Û¯T×…î®E—]sM‹KÅúôìIðíIœØ.‹•HOGAZ@G-—÷æëÀÈQ¥~Ý\ž—hÈÒ_îÕð?©üÌ^×aºI D`ßîö韇4c U,Ÿ¥Â™Ë÷z«ÁèOs³™Áݷ΃ÞH4‘çddPh2¹úŒÍ޶äkR $Œèz˜H8–š{Ì”o G»<»ÃA1=ìTáBv‡,P[@ÌÄcå"ho‰©žÿ]?¥cÇv¥ØÜž–LÌDê,®e|<±¿·IÜ~6&ý5ÚzefhªhËUw +—š­Ä}zM»K7¥5Ú,Ø­ÀŽÃ)të1_ œ¿7»xYÈë´êâäŒ~[Ÿ-ASK8A½H²­ðx2ÕÊ×m­oê{;–l%½‡¢£V +ø¬ ezVà‡¾ÌëÂu½Ðõ¨} ùöº9ŸD AëÓ:kõz¼¯€;ykhb+ζPø +á¯ÑÉ(q$wý_ y×°ËÆZS*Žè"8Qò*ÿ9ZlST¨÷ÃÚÝ äµPpãeFlhWñê=púƬRшí"p+X¶½ÚŠ· +×´#¢ Î]äS†ì6,Ÿ³mÅܸë¹íKë6­7É¢¸¸=!,Ý'Ìf’rƒÅ‰ÍËB_…ˆx¢mui¼»u,Î&ÿíø‰FK+É‹ÁIrÙµ/eø2–›# f ú‹‰cu]/}ß÷w Çåt2†¹ÙUk @Fs‘m'Ï2¶1ƒX_Ëq’Æîz­ 3Å?Âø~臢nì ¿Î©Ó‚®_¬ M!F¡¬øZ³š‹`b·Æ–Êó~½/2«ÏþÈQÑÚµÖíBÏWù ;ðF]’‰ä´à®/‹ÑCOÿ"J­B‡/û*®|LMP?€hþ[|ÀC×ÀÈ#JkÆ¥4¢íYÃ`(U‡Ù=1ÚTšTsŒÀÐR¯åúM6Âk™yøäfaKzjæØ~ùË7Ú”ï:z¡Dá7 âñÒ&m½˜â#v‰®€•P0}Y']°Z÷ŸTÕ£—ïsÞßsÁý^‚v37˜íŒCt\~¨± -MÌä“{¹º%ó3b‚6õÑá|«d–U5òý#sUÔ ´j·Ùý“I}ª§ÌM‘T‡_^¢Y{WÌ]ÇÏé°ß椗úØëVCø–„¯0nÞÿÝ›P\F{½­Â€&}zÆ™Hx6Ùêa‘¤·`׿jÿ¹?nÀ6o_) üµØvÕ´Ë¥®Š8Svi¯KÈÏ!­ÎrùáÐOëúCR=„pM‘ mà2 [U;°}Ф5pûa'cøNèq`-_NÒWñŽÔÍÇ¥fóMÜ!_Ïÿéžl~Éa†á}•ÄŸ¶@ÊíÒs?Ú6?\º.õ%»„Á0ø±jQnˆÈ{›çºö±|‡Jû\š ©R‘ N¼ GIÍ«,ä~Z^6—R{§Þ‚7uK"…ȸðÛ}Ä%\«|í®½~äSÎkdœ‡Óëj;Ñn¤…Þ!C>È«5Ó‡œX,„õ‘tÛ-”Fú¸²š•סô‡¼Ÿ­ö§¼ºQÂB¼+Õ{iŽ + ²ù.èŽ ›ƒÙ`÷ÁtœÙy…3Ü3ø­»5®žâ4¦Ñsä;6>¥†ŽÎ¨Þ†¸/=»ÖÆOÚqf‰ïucd8tðUQÁ@¨m5’<aQcÿúÆÛlù„!qåËÊ{³“Èœ}ªO²û¤Ïë,„oseMEú,²äÐú{í²éBŽÝ¹48¾,)†Ö=œn- ä†ÁÙª ¼º¸û›Vçd˜îßÈ ®µF¥èeŸ¹þøAXP>¨1Šæ–¥©²–LÓÀ¾º0fø™¿~7*ì +D /vrê´žÄñ+†ÊLZbfCÆ]ž×©ÖÖØW$¶ö.ÝUBâGˆsø; ëVúÇ™Õmï99uØɦw¼¡MÓKJè šY—$qž‰bœB|¿8+¹zÑÀyòY˜#žàtx Ž}”§wáÅÓ{½K6îïLS¬³¼øSÙ̺Á¸GØ©ßC;½$& ‘42Ô VúùÓ‹ðmödÀèL¾fæj[ZØO¦n~zi +Ú÷TSz\›|À ø½õýÖ°ºrVŸ‰ ¥¢áÍž"'LÇשּׂ7,~øhž<×qöôÓhZ8 +²Xm‡WA„6Ñ8Ħ٤ì¦q*®¤RuVÌPfÎ-Þz•„¿mgUÃÕQ+ +o™J—‡…’§GôÝ÷Ì8‘¡ðnElÝÔŸûV\CJìA ïtNBë*çÊNú“Šfb+;ƒT^ N²w¦Þ}1A”¾­?©­Ic‰B5ê£<7f%ÿ’#%Zô6Ú€(tc¢d›(:0 Îol=AqN¼¨•§üå^ý§|Ñæ ¡=»úRÜé^o“}ŽlUjQ ne=ò¶á „,râÈ x–©¦ ¬Í;§ûø„;ØÛ¼.W|'PnCýsª²/?º b”' á—‰ ¯L¤kÈ‘᡻ɢ#Ôûá§él äIó.ÁÚPñHG¨­4¨b»“ž†ä*/å^ƈ«8šâ÷ Âak1Û…Ÿß¶U +g?Õ6Eë襲jüs/)sO"ÕÝ‚‰0æôE‘ˆºø–Å&Ç éB/eÑXiAãÕ¼ò‹ï¹Å8ñÁ0-÷|^k ' +®ïÆhÉŽy™I¡Ïý|£EISŽÁJÁ„O;”ÐïýÊ(‚\³íBÝÒºAú™^[ÞıÿNÁ •)=]˜Ôe·e;?|‡ƒö§óÒ¼ïó@L™dœ‰å¼ºÍU¶/C«_2“.ï¨ã|¶å"ÇŽ:e¶å¨`IûCOfºÎC¯ŸÆ@©{ÙNÈw÷+êÉÓÖ[+º‰ùE²OgäGBÃ × +ÿ2• ãv_ù¶þ°:èYtƒ>'Ã%«™?/Ã;j·ÍYÃ{†bPdò +oý5ó·â;Ê“-›Xo'Ä-J¯¸­pðµnƻĮ)D7GĈWŠo,VBsGS Õ‚Ù d†ÂÐ^Ç€‡ârÄ®“—ˆJEÓž‹‘ëE^é±Ä$yä^6O"™…b_p,²&´£ñ?øÛ,³mÛoÛ¤®:Lvâ‚ßÁVê&O6²Ó |¼³Å½ÆÚ3Üjað"i8´ëšèµ¦¨Æ³Dò}YJ¬Sñl +±9°y8i­‘Î( Ð0Åa#î“R`;šÈ¡Ì­ðvÉÒ½a££ýtÙQªÞÛü]ã{RÕ|øÍ‰t>ÄY6]ć“AXšZ? +ÒÀéþþM1ä÷R ”X 1Ï1J¦RJ=Û]Â"áãâ™ßÖ¬i×L_üL¢­VûpŸÊÑÕß±üXG`aƒiÂc +.y–q…cáÐk¢èã ÞüVÀØ'ª€è )µÀ–÷)W8,õëÏVöèÿ9ȇxð» ÄÀ@ n»z~xå[fè´ŽPI¨ìšy¡kÑ1CRíìèžÙË wôµ¥în£“Ê´)ž<›PEÌÏ—™ôG›²vè²qQ_^`”æ½é ©¨{Ížšu]uºî6‚"WA4–-43ïß' ¾äåì8úVy|•ÑtJ>îF<"ÚÙ&"Qè¯Óåiש¨é~}Ã}ùÆT9•ŽÀÃ5Ì!PÌÒ?†,HØŽI\¨ÕÃHÔ%µ¯G·~bÇKä–âmï^s‘óÍ~0’/#ZÖ½Ûà»á峞€uÊà—ëýv:Œ!Q ²ºúz^‘¼½Ì*-p˜4md#Ò]S½<ÇRü!¸®ö?QX (s”é‹G‰6I£Ç©³7ú®?Éýlçt l<;®éí¿0išÔ V7f»V G,â¬t§–›ˆ|È>ìr•"HÝ.@¬¨HBÓËÚo‡Ì/N£QžY1wÔ¥ý.ÀRÁ\©q1Û 7KóX!ØôÜx(ÅŽªy™*ÞrQLÚ9ÝG—6ÀwÌÆ†›tÆšC†‡2¬“ÎBÑ*X/½LèØ×Ù^œ L¡ŒLÓx^xæö]0®é-Á£:É¢QË3”]fÓ0ñëR2[Gãï.;—“>X¿r6¿ŠKéÔZ„ ”×ò!F%ä»ò:Ú)´ð\B¹l‰Ñ•¨P8ñr9õ»2 =ð™ë£„Ö#¾`ó:hñJ_S¥i[>ÇG@ÙZ7[™*ÙM.4OÚc‡ÛŸj§W§ñ‘Ï™S¸ãµ˜éø´3Næ»Þ€q´UIêEÝCÄÞ=6.|Ñ"—Ù䋟ÏMÇœ™éš¾Ž^Ɖ‡òV†Í ©^Âã›JtíÝßÎuõËÎAår +n5}¦!í/„–\)6“è¥|êoà{éL;1ûáCð8[ã­Ë–Ö¾°œÍAì“mš´ÐC zn™oÌ??JVŒ˜BØ­º¢ñ<‰E{)ÃeCPKäkLùöÞGïÙ\+^ÙUÖí¼+ÃÃyN8U=bIù„W ÝHMì˨ÓL3_ƒšªÛ<<‹”kfLù`I|øÛg[Ê(åÅ£&H›‘µxëã|Ûá;×ÉœiVB(WbÅÇöÝw›àÑDº°°/GÞ”øs߃ȰhºXјrÚ%áâW.ܤd9ö›ÚF$3$¡ø‚xšæÇ64nš ŸIðp/wdoÄ­VYÏEúô5l¥ÜRÀ‰FÆ¢!>†§z‚JgŽÇ+dÏEÈò¬¢–ž³Œ0ÈFNÓ¼è3iÜ`•ì¿À‡Xö‰üÐ|XÎG„æ¨?âxçδEÀÌŠnMM<(>; Ú¾P󨵶Ou¿V±GªM™®ìðžc‰#³`í↢Í`—²#éäØ.S"é +tÿÙvéCyºYv‰Äwe‚[äx£5’¾ƒ6µ fLÔö›92ûô¯;>ïRÉ6³¨ Ž.#înQ@_)b7î[a0±–ÀàÕ@çÞpa­)’wU¢›oeG[\ng„>;O£¢|¢,˜ýáyw9ƒTopÀ…à®%üµlì‹…+‰Ö› àEhWÈ Ì°­ýnQRÜ´_΋¹ß±Þçòy”sœþwÀV?*Ûåz‡"Ù‚>T‚äÒÚ§;ÉIM<Õtˆ›²¦ƒzë"}iŠ[B_ó,ÁcùÄÍú×Kgú…ϦQè{XöÏþyÂ\$D8Â,GÇÒ¦Ï{Gû×k +ò¯ÉJüL¢t¡q±Îéf}±nœ·ƒ1“k»5 Oœ; \Õ~t׿"å8r1VñxŒtÖýAÝðzŽÉ=¸ÃìËøñj¶„4ì”ÉŠ¤Sé=>W×] uA5!è÷ƒM¼n Wçlï&…dæáwé¡)” n½¼’Lú&©ª1ÿ4°õ7€¸„õ‚Aq€$ab“sƒÑSÍ©þhWòeéù ;êË…léåm¼.ÓŠ(ˆh[!±ê:»ïÍR÷Å>žµ3S; ý` ë`¥Õú*ŽM$Zâ¾½Ÿý Yˆvãýcí½–Š µµ2‹ÐÓ ZH¯ã’²•*ç uGA¥1Qü¦‘VE®Â‚3WòÓáêîùL¿B R¼Ö²î¶Ê6Ó„i V›•jÀ-–’Š1´)™t<̹:×ó²2`ŸP*ËR³p ƱFN~=àušÀ¹ 6FñÀ¢ãljŸ64Õ—ÇnrÈ“DåõçX¢0Þ€.‹Î·žü¼šKéRt÷ÚŠ¶N¾*P£L£×CÂßÞ¿4,¡k ¾‚úÞd®’0Qõl˜å«UaõY+Ê8ìðØ+ðÝ/oÀmñO(˜œÇÖ·¶üµ ™÷AÓõÆê ;TD€i· Ó©I ƒQ žb®ÝسŽ+]ɜ˓¥¼f—¶ïÂÀDC\Wëp]Á‡Z<5«ÙX%¶”™Èi¢íÈx/þ¢<{Jõž¸0쓊–>iŽ§Î¡#D´§ƒ—.3Ãd?% A2\}v©% LÞ,qÌ‹Í×sÖoq‡ÕújîZÝl`i'8üµ©4[νzÊ 7¬¡ÛÖ¢ÌƱw÷ŽA câ` ³VÏ Ï,nY•æ8Wjçbë1šåáôÁP(íØ&ô^ßúƒsçû>Ól I3·À+\ÇUÑäSܼšaÇñxŒù¼:¿bÍÊ8Ž$÷—³|rk»Røç½HÚ~Ÿq-o/M{Þ¸`Èñ[å¼ïpŒ „ÛÏ-YÐß³½Uó®Íç›UHy{ÔÓ÷ÏÕZ`SI®ü¨2ŠdÔJv&„QŒ}*ÂŽq¿iú‹„? {ïÿˆýi#d&´l]ÊŠx†Øß™®Ë¶‹3ÞöGÿ´ ³fU ¼ÈüN»¾ÌE×.QÍŽÀ«TÐp´§¡öóþΆœ8î}‡¨ÇáñçÍŽï¯Ýû÷¾„Èv* +yÀŽé-—"¸íä<§g“*‚uyh¿>ÇÉ–ãÕaÍ4аa«D¢ ’ò“dù1óIÂü~£®›þäÖFv®ïá­_’yÈ %¬QáƒÆJ¤èãL¿´Lq„AlˆZO – ³Z¬šOï,/ÛáÝÒ!q)É#ŠZ¨g"‰BW—œB~+ C«jExÖ ÙÕUxR¾I©Ê;[¥¯¬§V¤õ•BiàýD2sÐYS3 gí¦‚é[NÄþ÷NùÀ®à^¶ö “߉̀ùÆí-aŸ•4²·‡MíG|…8œŠ6¶Ž) Xjé)^^¦"[âB5¸°9²ÞJa/|`ê„yB-„f¤sp§{®å¸¦Á àßéœK­µ6°êä_¸™&:É@úº3nxJ…jb7‚Úi*ˆ¯ZçB×Äüу.²ÈdܽÉ6”àOÂrÏVœpº•˜½öYxÓ¶„ÁQ¶­±²x«TFùñMm«ÉAާ_ƒ·‹×¦”kE(…Ûf6¼”û +k²¥jÛ+ƒ‹³èôÞûÏÇ!oÞÝÆIÆÓK,*¼pžt}ý<´-‘­ùÅOŸç§é*÷MãA€­d"j¸ê]K]r„úͰu4oÒ•A‹|··r­JSPÃpo_‰Œ×d’¼Iw—hºñýäi„““ˆºM–°]îÞ&Ï|ƒuhb²qtƒüåà!*¡#PÜäU..ÊÞ©7úù[¬õoË;ʪ–PdFÚ8Ž7]¾Œ²uæ¦Ó‹,¶!dtsŸ;ÖŸÑ­7‹Fδ¤4׿@Úu¿ óN´CÈþÖoC`~“+ª¸;ÏIý6Œ< ™¦5¬ïcŽhÛ)X×Äe|Ð~Xç´«¢àŸ eß3 ’}P&Œ²‰k@˜†/…{×"¡~®OK¦o[].ÀH^K»bö×voŠÿAËKóù>MŒ+ãð‘#¨OYŽÏ'—Ô×W„M>DneÓµúcI"fÖÉëYæÉ†gâ<,Û%¢[ÄTÂ;©wð¤*3Œ²†G‘+‚)€ÉЈÚD©°–;œ¨­^ÈqM÷‘ÏÃ]t”Ì4òì±UY¯4Œã’FeÉoßUìû •1v™8ù ÿaRHØÏê÷À <Òðx?ªB\¦¾”Á>#ÖX=¯þìyÅO€að +W’kWˆ’¬abžPej,ÿ…ICýûšt3cìºy/ß)»{‚ýýKÏ,žÃ“x¦êÀ=$Žë•a§Å4ãjª~8?€¯‡û»ó{ðŸ)‘%m;v.ӺϨ >"}´òjOAÃ<Øê‰¶ 2Ƴ3 +f„‹5hÚ¸U™Š‰ê·þ-d‚“*WLî4êRæ|m'mx«jÏvÎpb4!X2ÒÕƒõ6€¹5ÿÙ3ØIG{¢’î1]n8/šâižWÒœò+Öþ¢\ô%ê…JEÝ+=„ ù&¸x㥠¬¬Påæ/j,&Ì”¶]q¡¸µ±i:}#Z ÍC>¶O5Ü{‡›Í|±í/ê˜å\ñPÁ+­Y(ó¢Q[Á½éErª$™#¼y ¾q²r&äø’×Úê­Á°cúÑ<,R’' ©$öÜû^4ˆÐixÂh²g‡M޵só?ôæ¹ FU(bˆëóèd?|'ÊχñË©ˆ‘¨ýÞÈPÅÂ+‹Í1H­Ð‡Cºë,¯´‡£Ñö†f¬ës/Á 0ÍÛÝ?Ww@˰鳃]ÈC«7¤6¨QKw–[ûôµ5T'¯º —E,@|Âß´«­ò\àž-—ü°ð0ê3â„î$çûUšU’ÍL‡ºÑ‡¾NÁ?¯ž{u.Ñ7ó³KIRêzœ»ýéŠ׬þ+ûb…χ×î2ÿ™Ñ©îOòÙ`ñŸGCñ® lbÆæAcÑ”#ÖN×'CdLCO;:ðh ÇÌç=Å’SÆz>¤rG¬ å#Ý.ñ•¥Zµ_- +²JDÃ×;5&Íkí +5Éëpp§k.‡‘Ý΀DS6ååî|<çïuî¨4ˆ JÒ)öAÔdx†ÿOO;°Äx SÔgÐþFVáõKÝÑõQ–ý¯{,ï 7ˆDÈò¥Þ€Î"Ù ú¼owµ+[†cr¯³å€¯^Èfn–°óFFi“‡öú7z;;û¼ØE¢½µy!ñf˜‰ p˲–z¼(™ÝÅ’&h_ ôxL%Ì|<_$t%§UMwÊÓÿŠ<¡•mæ±þ¼2èEZí| Ë¸6‡‰…!=²àk™¯…nQ?ØÿPúúŸ7a2Â×(o(ñ” F»›fzàÆœÕ((¤ Œ¡MÝ´D[žcˆ%ž}ìЈç}ò‘›,_Ìs‚ iº×yH^àƒg'ìgw;=°JBÇEÎ…VW,—`p­l Ô]óx5UXbØã¸öƒJ÷á â|Æâl÷Œ­N‚p/Q¸Ct­É,øÙ«FÕS·R½í†x×ãç 3è´M¨Þãøç|ªÑ/Ë *0úÇ•˜T5'bïl†À =j’¯ý¦"IüÅÞS„®ø¶^ìË „RDµŠ”é…ôæè ‰P8 ®ìó‹O +æ%À,¯uqc‰€(×Í +^žðÈ$Nÿky­¬ˆÄ'ó„e$žo®˜§/…^œ0áh"ÙôÆm¿AÃ!Z˜Sä¬í9Qw˜ŽÍŸÆÓ÷ç;òÜÉ³Žœ(ðFý©ÄÏRᕟ#ih%îkŠðD‡î.ª|r ©ûÑA`œ¶XÞ»e·¡íû”¥ £ûaÃw©ÆìÆhÅÚ‹ã´vE> ‹Ûþ|ýŸ±%™É&ÝjYRŠCüd²kùäIé–îfØ­í° ©„mîíw‚ ½Nù2ª{Ž +ž‹Q×óC›1ü@­òïà<#Ü…ö% AÔùK äE/ *3.¡«ç×Oq›èÃWÚóž*2 +ý2?÷æie3£jÖY±0´ºuâ@Ûš–‚#b¨ŠkÀ¹QÙöÑ"©².¹«´:>Úï÷‚ðÉØÜØ™çÃÆü{Ȇv?„Ù#Æq9A’ƒ‚;•`Àß\ŒÐ‹ûRŸ8§ÛÄ=ë꽃1@@c õ6‡àµ|&…þ玹Z§A=MV}óŒ|íå[áI/Èíš½X•êñV˜T…Ïe†JÜü¡ÿBOmõhü‹çï ÂFA‡½<)öñúX­ª¥Ì´òJyü‚™v=-‡…õ§õD¤…À\@ŠÕ@{ójŸˆs†ýb‰NûKÃdSYܦT‘[ps¿ Mõ"Þd-sfp49Œì™¡Ø-©™¡NJÏI ‹E)€^ÚdN¼Ù3s34ž& 0Oµ °Æ± +j-sÈO…Íl˯KœŒKSÇY»ïÝöJ­ïoWqtá”AÖ€Ñö*N|èJP~lµô0‚5z™¯Æn<…—´6 n{z†axÉ-HÏ£Ú1µc½C莦*,ÞÊ«Q @¨ZV[Ú’ +o¡TLß”$ŠÐâ×f J¥ÁG8%Øi¶ØF#C{$m”±&«Ÿ¯>Ilª1cgRPÉØãf€mðÕÄWhdN9-ÖëjKe/q¥eÐsºt^ü;-ÿqk¦ `ã%ár—ôv/yù.Àå{•@#‹w‚Ö™Øä̪מK> :<ÿcö£ìòj‹k%L—‚ï®$Äýe(¤k-‚MžpÊíª¯ï «šˆ7n é[uÔóé-]£%!o˹ôX”C6pÒJÊdêîíUµˆ¿üõ\P™hC1Z@07c±¢ôß± (X½[ñ0Sëgr§ïKd¤…v¦'BRà§§üÖŽ~¯»oº†zÖ‰×KL)ªHŸŒÃ&ÜÇ'ÑCæ8.}'"ä‘bkâE ª¥¦Ý«@k¡BM½CZñ Ý@¿å,1d,+ºQzeÑû9±bOìÚ„ôÀÙv&~BªM­y,fîÕq¸¬²‘.µä ÔGÞbçGnv^? ì ¡y2|h®’O®Sé|ÅÜ„uÇ‚Q("e]òl'`æ]‹Q)Ó¤Š;›tCziö¤ {Mo¸;}1æ¡jC-_¨AßÇ8¼Àèh¸¹ 9,ÛÝögÓUÞL?èþ‚&ôÅU×]‹…~E+nB +8ê\)1l£›'DWÖÉø5E˜n< kA7ÚeäzÂa7ÕeRa…&š$änzÉã‚‹;±ƒ¹C3Œé’>~@dds)¿^áÿ¨i‹=Å’(ºsŸ#èTí¢¦y½õÕt(°ñtï•Tÿ´½@w Ò×ÍxM |¶nïK)õÜú¿·>AR(è;nnìÂRTEômí]Ó$–ÙjÝw̆$ô›jɸ GN+ÀPI•‰t:¤ƒ+è‚.úö¸Ø†ÞupF$!:oí¹äuˆ]?5í®¦–Q rÙøC²¢YêÖµAñ)Ȧ—sÂ×úySSÂßãE±@°%>OŽº¦ˆ‰KBrác…@衦!-iCÑVÿ³Z/ÚôóÉÑvf Âù$y'xçýJbTe1Ekvo­ ÖèXkk +±jﯴ¸¸ Ôõáe,hÑ´µë‹Ë×+'g^%.š wKŒ´4³nŸ’‘XEqQD <š›$„\±›ý ½†n¦qžL•¯"­‘8YûЬµ›nÖÔ +¿˜ÿ'°ùÎ}ÛÂ|XªC/0ûFQvú*MaúÚŠ‹ÉbeHêUö ™NvÎù®>ˆOÁF‰™ `ú›pr³˜•ú›®šžÉ8د˫ÔVl2óá\¢hl~•X­ +¬Pºïî¸ÅÏ“·­¬)U>f>:ý`À3hbÿ,T÷;IàÉÉ÷Õ£®îET¿±Ê«8¥iH:Ö¹wœˆ©–]¡ƒ¶¹Õ®Öc{RÅ«„äŸCÖ;#ÝÜÒ¤<:“&AÀ­<u\¾$X9ÅÿøP£",ü)Ž#ÓŒò-Íû{ØKnÒøüþ1ID"üù¹Z?¬dãï÷›¶þø0ì¬Z…pW¼åi×È] ³™‚0š{q90ÉWÆ2B“; +ô¹ +ªNhFÎ +øL0še,lÓX|ùy½¢Ù}aöð®õî(-5þq=v6‡Ló†Ï÷šÒWýÛ‹– Tý~&šUØ¥™zpTÚ˜àáƒcÃ1€|òtdš`_&Yþ;‘éœ5?Éâó>„§uÆð3ìö†ÀÈvÖ +Øì¶¿Râ‰ö¶íŒ6Š#Ñßxw” «Hõhåÿ.Òªu,ëŒ/Ô?,Uf-8™IhF·÷Ò§àó_&\ µÛBÿ4ºG‰âÓZf–lµ…iÅngpóÞæ¥|þl´r3ܨ(p_høŸ¶¬woRñö¶ÛÝ9òºk`äŠTÑ?èÀÈ›V¶ý£êIüŠòs]Éê¿,±Hd¶ƒaÉÿ‹Kœ§Ñ˜›MæZ gÁŽi+({óxB[)Ø{ç,²'Z! ý/[¨Ì‘˜Ìü W=œÚGçåÉ"S¸ŽZŒƒ þ/ ×YÑ–ºµ:Yu·âÈ/!6”3¥`?Ùd^Ü®œv¬0ÈEŸ& Q‚¸—ˆ!Ч©Ä‰`‡fB”ªâêR!Z}f™„µîð,Ōҳ4š`7dž‚ý§qϸÛ\‡•g~,áü|1&+ò݆ŠÁµ™˜pô—`=de±f‘’†?tV¤ý¼õ1ÄÎ%…äs%ï± Xä7'§"ŠËQeSzíb µ“7J¤ˆ[‘††Ô ›V¼8 (b›Öô•ÌÌGò*¸Õ^-²¸9½0_³“Ù¬ZuuOàûˆ_I¸Ãl{ûË#}Q»$€M¤ì–`Êvšñn(ÔÌ·~›ÃRpà#LR©B‹ÝöÉ‹A6¿$Ö;FËPŠçͤÖj:*1=S[©Á€kü?jòR÷i…q§SÅ ^ÊÒÜÅÙª±eÞz×Î’ e´ÌŸËIù ­ Ö\æ.ãHÁƒ_†aøáØ(ÎvÔÓm»“}ÍÃC xã1ž0³Èsä²ö§s>ú©ÖIJ1Ìú³Mþ~w!ïO[³P<:ê Ï©S…a×¶€ÐÔùkh +¿e”k+ï ñÓ} Ëtp ØVG Aº@de…qå™äŽb¡ªSO®ê5ˆOŸŽLù0GüÜ;ÇA`>ÉY §áÝZ¨éÎ;(ƒ¸ÑF°§CF.L:4U+Bv$‘}´‘‹xѯ-•{Ö›p£nëîË"á~ÉWJ™Â1*¡¿_·a¹Ô‰7ANðþ¶ühÈc,ür9ƒý’²×N>BK}B;í5)yoü8§& Õ-ÇÔì.r^”ò=>+LGÛ1“— +ÑÙMH­ƒ…IôX6v ]þòn&#o•z\šëÏÒ¡ó§cÀ+§6Ës|mƒÚƒ +»KI_M° +ÉæLËåjñK–¢{öAElG“òß&ÂiVäá§8ï¸^Ë|dtüûáã7ôÊœI,/»:Šù|æ­¦úrÑ$2„÷¡m¤e_±—x–΄,j²M§‡ñ‘; +Ê´Ý9‡¯ð^7¼vÈ.úƒžŠ‘^ÄiÅåYg°†±¡¥ím†Ž„@5Ê@£éÙ»pFri™³9… ÷v¨-Ké¾\Õc¢êt Æ3§!¢ä‰‚à½Ö ÔÔL_üŒØ/„ba”_`bþ…È>°ˆŽõ1|±¸ BÚÙû}mºúaêÅgÔÆY¼3µ^‘ᬱÏdX€/Â<]¬Ræ…fŠÜJSt?¶Ä+Rzu¿½\Ø)HbD$ŒyŠöGDPGƒ>È.¾BÍvÁYßDÎ9EÊúe¨™¬¨­y`hJH ‘ÛÿDÙ¨ôÛ¨| ¾úžÆ)u·çpÆ?OhäɄ۪úG’[+ŠzØÉøíÛEÞðìEÑfÄÓêÞ>Aà3ç4~³tQÖáB®WK­”Ô2»»Ëï"‹áïtïf‡ùgê‹X3ÞTIùè¬EKŒýaå72çmáT ›&•Üdñ·“…ñðW,ºZ{ë ¥ôXô{—Ó¸ÚD^ãg,Îʆ¿  kx¿]í¦=žNë% sjó0€Í®Q®¼Ÿøw#ïëýµf¨ìÚûúùÑï#2Ý\wÁµ4ZAïV”­Ž„šwÁ½f=ø˜ÇX^bå^ÂiâT{¦]^Áï\ê}Qe¹D*°€Ê$=³ÊTl.«³XÐPºÍi}¦Ñö­* ¿ÉSq¼³êá;¶º‚”/„Îô:c“$9Xˆór­6õÇîtÀì6Õ‰y§¶ÔáÉiWܪX¶‘gjäà ÁĬ¨?W›†[!#K«¬[Ã0?øÛUþÃ1GÓ˜E…oêÂQä3)}ì)€Ÿîø–ª¥+ ¾E•\'Ž_ f[³Ú…ªzc(sɶ^ ŽÅ'a¦òsøayùq2E—®ˆ@5Í¡—8f+hßÔBß,a{ˆL™}Å5Sd+¥rù·Ãiɇª‘nÓQzF±­LZ.P=…¸:%Ž,¸r 8éóÑ’¬·EE‘6ýAOÌó„Aƒ…ÎxÒä•»²;´0ŽKÍõ%÷ +1 Ë´S“ÙJïø<ÿÝÒ8§ÆÜ/¿Ú(hŒ¹u6£Â-ôåQêòÃKÀ™ûfÀðЍÐs·Uvñ8døi~·ùù½ÈDhò,q5³98´„b {ÙÓM.÷ cÍô/« ŒÜÏF?.ÜhCÔ\å»84á¾>>·8 )C’OwÜŠäãà§ÏµT×Éb¹¦ËË Ì£#Áƒz aØç¿Þÿ|ˆÌhµ[ÿ¶ »‡>eϤ&?¤1øÙ‹šŸà€[ƒ$ÿÀÊš%¤¿AÿL?0¤ŽX§ê¨Bày‡@éúÖïÉlÑ~IÔÌÝc?Ú/k¸\`à‘›Ñ Ó¨Y‘§U/ßëó¾ü18SÝÊ‘rŸŸØÌÈ›ÛR1¬¯/¹a"û`>8*ç'ÿà‹xÿÕ]Ò¨llЯ/Þ¤§¬…S.³WÀùÏzÅ%…JgÖ®Ô`±U¶‹“Ü>µ‰d’_Ó6‡Òê0Î$„ê—âåßÁ@öDˆ-AIÓ¹Õ-\[@?«¹µßMY{4U3¢½ª¿$¾èÖG×ߦ:\N×wŠ@›À3w »•š¡o +ˆQ¦n½4É(NÍ?LFO΢u®ï+,ó\ â÷L“¥ ar}<ºµï)¸ÂZ«äåƒ#2„`—eº%ê+»ªM`<Í£¯)úø„¾ïÜaTÏøW& +!7¬öþ‡o-sq™ÃÚRøuq#*ýD*¸‘gI s“ Òã:¤tìæ-îì(tã)Äx©¿ûL ­!XÎLÓ+òBÏñ ùèT.(ÕÚ yIÞRõõ«3/Á~ S .W•ÅÜCH*è€y#jÙÅÓoGò™ÿ-O“>4gnÍRÈ•kLE"óÝsÉ“GÈøé^ãpË7ÐpƒjРÚQ> +0…åémeciYˆ¬þðý¯V»Ðœ£¡ž½”$9X@|p¤êD·þœžÞa±DÙŽ˜Óî ¹ÐAò¹žB>-9¦n‡+š‘Sµj sÏ´ «·Ù6óПE´€åÿÒJ <¼=®FIëoˆ-˜+ù¨ývù˜5²_z‘è|¤QHñß#RµŒëíûÆÿ¶…V[¯KýÄu¡APºóŠÂtc*ù×aaØ${ÿH:ó]¾á VÂÝî)Xˆ’Ús÷:ÞÛ½•5!Å ,A‰¬¶~F°œÿäTuÓ_hqÐñ¬9Ss*Û¢nÃ!©œi ÚÁbÜ]WëMG•! -µ ^­ kJìW€ÆbØZ–’$2»Êü¡õ¸úküŒaËÙשçåwÅŸüv€Zþ l/ÇqmàÎ!ìB½tŸª‘S7oúcK{ps:Ñq§èbU#û²¸mÓ@–¦“fêuµ1¡ç㽉¥°+úŒeÆÊCmq\T“¹¤oKK¬›ŽR"ª¡ˆ¨ßØä²_z £ )þ@ؼ¶‘3›¾s¨ôYÓ´“·0yéö‚åü“µqûÒ¡®î»H;ÎÂ˳àÊý9£4K‘¼?zá£…ŽŒ;™Ò·wÁ=ï«›0m&ƒüÛY¼XI)Ÿ 7ЊßÂ3ðpéJ ;¾˜“îíb~Ìñ !¶CÉ­ *–ô¿6m‚X *àsÎ%íøýN*¿E íL¹ Óû‘"qsvH{5ÿ!Ù¡4ót…ĉ2Û8ñ2ÍûtB¥©†À( ¹¯0)he„¨b[ôÇÃ},nÜ(ŽD%¼sP$zu}­»\þƒîbÿ²ÃoÚMø»rЂäÌ(¥*í¡Õ|"ÜÅiJ²ƒXÆ´$ú·‚M¯ÜC&î‹»%7P®Æü–¤P0?ÝÕ„¶ Gä•÷ž/çêDKu.¶èöôËÅ&Tÿ(+<ÔTt~¸ÑI#¬ŸN£Nêu8aOR4þ{Äñ£âK»Q·Üì_…z¹º8«^”˜ Ù P† °ŽY%õKõëi¢8C»_?£§µV!*A„ëg<×µ¬ê&"{ +³à£)V}¯õyVõËg€äIâBDû(g ’­ù- +iÒgO—í?xöÞΰÿ/ñµQ튵{U‘’ì + ;nÛt +ÚËwvF¶ºç¡Û¿sÖËóªMeh=¥b—œ‚äk¡ÍÔ!A˜QÍ6öz&ÿB£´\•ÅЮHÖ¯>€¥:$“(3õG˜þ:7òÈÖý䂚¸q"'@0>×ì3Ý»¯nšÓ=vë’<vxOq×*ÇVÉ*‘«2=þ{ø%üð{³,—ZyFŸÑ†îª¿– I§k>„ÕÒµ¯"m¡=e +—«·ƒnH~w›Št’U3}=šO]lÆ1š·øÖÛ×˜í© +ÚñETÖ+­1X‡óÌíµJE S½°\½;@Ú3@ ½Î¦p2'`*•ÈäûP{“avO‚»¡×)Á¯×•uÆj6žmíV×ó{`8î>„ç¢6„Ϫ= èdìâ/YÔ2ñïÇb.+í×Dù¨]K¿›@EQp!Ý]Î(g›OöQ_‚¥±Àn‰(BCóñó%r¸,“Á%q¤‰š€B ³0AZtÔ•âØ¦#+6#gE­E÷¼d ‹°…]?–j3¿Y‹‡zwªçºÊÙ +W 膑ç2H6I_+a +UuÎÉÛ,š_Ÿ7ë¡^V/M ¯3¯CÖo­`k%žü§Üž–HZEWð»Ý3ž~#M¾à¥súB†]u4DÁ'–ø¾”¥ÃNG¨m¤¨£Ö…&Ñ@Yuˆ¤lÀöbk/»¸MµëM7pv`¯õ”ad9%µ§ŸôãI5g­gRhïÀèøXÅ•Ùhç^°N2rhþ.'¸]¸ "Ks!J¾ŸšB +‡vwëÎLzÏó÷s(ÑFò©Álå_Vi;?áERÁ90_NÜ}õ³ßk:ìÿ–2Ž¢ P "¾ºLÓlWvº!iî’ð0£ª¡£—ìÍð¦ÿ€‰£a-Á+N¯ (§&‹—[éh Ë(NïGCÃç7(¥P9ä‰q×CSºyXKŸî ÙœÉÛ£ƒ/"0¿ý€òÿª:­"Ìçëc0ñÛˆX;ä²pÖeããOÚ ãØF·ÜÒѯiŠ­¾žøT”Z€T1r’t¥ÏÁ·D“5è‚°Ot!¯îÀ8AVÄIˆç2ÒABOM:bôg¯Šx%:ûb{‘Äê æýÎF·7²DJ,ñÀQ §}ô“ÅÇI³½`ç +-´kkc•®LÏ1véÚ«! ªf!þRU…"$º×Ð0ø§fýG*.¬ ]} +£Ø$ÙV*Õõ¨là6q³„ÃÐÉ\‹v àøÈœµA§š½ÔCQ=ñlq±‚Äär§é=¾ŒÐÚ¤åìn“Ô°/:×k1.’  ²VÓöydøà®bÁzx1Bê¢ëfñÕü&ÚA%O:/4+¦3A‘õ»KÃ'~_¯k®¾ssÏAö¤«DŽ–‘T-â„ Ý·‚NËzS€¸’ކ0ÏÔFãt[JÓLcHFŸ2ËF-ÊÎ$$”â|Ê5!&–¬c_ÆM3­~à°E¼àƘ „ˤϪFdqk(ÇÈK+›’]#³¸?.h°ŠžšQL ‡Ý,T骤‘l3­Ò(À·eŽ‘-HÅjßo¨þv7 dœ<Q9ò,'õÇT±XXE7"t$j$ 4º¸Ùë;£|¹Àƶ´³/=¤´];Xógl+ûÓà yÂm5®äýe{wg,abjá…»oZçè•“¸ÄóWrä…iK$'ÚÌoùnàžþÅC›†‹DÄðÖ¨ ½$txoñašÆþ8ԮŌ]pŠY-ëuœÅD^åu´ô+!úp“øñèƒò =Ö¾NM¿swµŽ¨Ójõ%_ËT\/®›ÎO¶¹—,g¾ípu¶u±ÇNõÕûàAtµ`r5¶¨tj­×T°V+ŒÂA¡À*Ìtí•ɇ£þÚ\ﻘ蜈}ÏBq$àÙ£µ5. * ÿ 2U®¯hô°§6º°>h/’1pÎ*8™on‚º÷8T@jòíŸ]¸nu :ÆÄÚ¦Â?*ƒ6 èæ]Î!¢éê¶¾eß·u˲»I ¿»Ùà'_t´jÉc.sƒÛâ*Z¦ŸÝVxP˜½˜ÿ[ß:qŒ°}VLw’¼™óqžn#× +Ô@BùAH[̶êTV¹N²À#;.^®>õåω­ ­®üø·ŒIº‘iÿè:1lµÚªœª¼>2d¯´£aTÁ‡¶}¿·!Ÿc*®Ž•GÆíL(×?k»îÁŒ³kº. :¿»I’ȳ¸ÙÙ9G‘‰:†KàÜ[dýÂ8uØdRËá=ë'ØŸY„‡5­<ÚÝR§ä   ¥ÐÖKü…W¸0.1¨)ž×ö†m +6vÎK(Ë›+ñÿ q¸Ðp “ظt]Þªlàqïé3N‚?#“|N÷§«vßk,4û{œµ%ºe|¿‚*9¿â©y¡-nüH\³ÉµÉhsòsO°Æ§A­xM,¨ùÝ…©+UCùLvd’î +Ÿís‘.áMT志xŸ5bŒöx1ÀÙxVùºu¼<ƒ2´­º&”)[ë2òKhSØ3oÚ4YÞ>ð¤­òÍ/w­ƒc× +†ÜÀñ6ºÓ'v&£ÐRŒÎÙâ³`2&„oƒ#Æ¥&ô×È*´JJׇâ5ÿ”ˆ¡Y§VØsÅž˜1[[ûºá…{/úªøTØCD9ÓÔSWöçPï(·Ë RÀ«û.\>26ˆ»X™”Kþurgïa¹C¢ÆáH d"TXŸß+DÜ0øveRj4JAºu?˜žÁ»‡Ð;Ë’Z7îä‰Çüöã-vj¸¬*Z|ì!“Ç-ùòUô\zS uÉy¸Iõ²‚9~ wÃh—Z3;ÿ½Ë"¿KÖdXŽKx.­øo8< u¨l½kÚŠ¿ƒ»õpÎå!øûÃz¼”ÏwJ×lŸÊu£)Ç+êˆ^uõ+W›&áD­¯èæSÖ—VŠÑk{Øój6íGàg“Í$âˆtB4qà%Aô `a|wãþ4<ð»hrÖD6u£WSÅh¾Hø:g¦î¸‹£àÙMžhÛÚÇ^í”zcœéljJ÷ '¨ khG£`¸W°mxÛnŠ–•wÿÇkóõ !a´ºMòʤ]ÔÕŽ¸rü²1¢né§ï"àÀx«Bâ“!ú7¦²Ä°¡=´ûÑè›fzT=o‹(™?[v‰$6¥øsùâAÃýF@†aJ‚œl<›Ìq͘oQm ª€œ7,þ¤¬[X’‹7.CŸÜYªÈªIº~±€+ÝYý5ýë|oÃÇÁù#ãc{‡+aÐ)¯]§/ |êÀKñ/þT°v°ü„h9µ>\*v+ºÊÅÊFM9£`Ć N͹Kut÷Tv®P qnÕ 1»Rƒ&‰ìS¯îlîRùÑ/æFw ÃbmuKHh(G\å´-ۻ浱vÝÅø+À0ªŒ¸rŽ9)áˆQƒM;õ.’À}æåF¢pÜßž*Û(@í ŒôSg +zx4v†\ÂPèš×¾{QS<}(Z ªÞþ¬•Õ°ÞÃPÛ­ÄHèaïÝ`‹ð5º-CǪ\„áÐ$”°LÒyÒ¯ÒÀ!1%E¥¸GÈÔ†ê˜Ö5Pªu­çèÙ£oŠä˜±Á£B½]›—?,mP[ß±7~½í‘^/ëŽÙ¿ux™Úè“®µŽ-Å=¹uÿ~‹{̦¸C0'½³hxù1ˆ?õ Œ½wtYöþ4ŸÉ5à{©­È!jStb« 'â a­h#žk„QÓQÏ…€PlP‹Èµ»Ç¨ÿ‹ëõ"D®•©¶§‹úýªy+åÑú€Ý†;jRÈÓèI°;´ çøûû/†O•ã=çAa… Ø<¼D%ÉÐŽhrp¡Ú +ÇN cÑJC)£›Þ[ÅøxcœêãâJW`‰Ë°‚×í¦pFeÝuDY58<Ê@np6™²Uäá'á’ÁØ¢~Õ^l5,Ïðý¼}ôœ/¸Ãvµr›åâWgÿ†HÏ êSìä­Å³Ù+çïÞÊÏZº†ü®Ä¾Ó›to‹ªfˆ rê³óï$Ù^Ê Å€dŒ+`˜IZ¥ÝɈàÒ¾ +öÜÍ?ø~uc¦}fa© +l+6ÐaƆN&¶:ò´¬<®‡|ŒÜjMYÕ´x•‘œjÄÁÕ©%W ù°Ú¸¦&µúÖ¤¶V+ôÂZe:KÀÖ«8>òôZmS“ÓºàökŒ¨"Ïc¡•­©°@ÛL;ÍLÑñ5¯èj´M 2S'ë®"ÎÅbîüié”×)·HVƒoTJw0`ôoKI66V-|ÓŽiµ &âhˆpa†²E}ºÚ3¿œXçEêê|*=ø<@¡º/Ç­jYÞ_5Ÿ„D#°õÛ“¤K:/Õ ¼¥{ KßÊ’ð•ýrôöGAŃ!F ^ú\7ñMó`¦~JúFòù˜bty2ùõÓÌk×ÂêdÓÆ\ ~6; âš°$L~ñ·¾þR^½xó60vøç î²Ëƨ¾†¿«L¹DÚ€]÷؈–q£{èÄ,€Ç­¦¦+i®zuŽöL–Oòˆáú…P¿“y#ÃÜ,K\h’Ë"ÕÖb׷ͪ'ºZµŽnþ’©æß¸­×æ¡sQRZÈ^ÒŽC±|Ñ«ì©Þ”¡›Þ~„8V®ÐÓ‹@ë:J@ùXÚ¹8éúzâøºî× LªOtªTFä«ÅbóÏb2f¥¸;\¿Ò1e·J«ç4Ìo>òrŸ.váñ^;Ðu¾öÖêyàÄë…#àsÄ8޽è¯ö›ÉÖ4•è#Á†ÇbŽ–¥ +àå<Úòk¬):]”é[¥ûqh?Ñ¢¬>D“VóáöäKåO~–\M¤®¦B®òl(´îÈœqN6ØöÂaL«ûåÀAiëFRôÎ3íž’€0µë2Þ#âô–v…ùüÚmTid¯ÍqÞ½j· 꾯±Èó­vPàPÇìxœiÛ¦ùÚŸ¯+Ó!‹‡7ÏJiD`u-aîwn†™â§š€š·ˆÑw¿’‡Ô¨à¹û3’ qp´NÝaM.˼ÝÆéXAàí ?Ã<™§b^Èi»0ÉÚ[ÔžWmÊGG²`AiÌc½`@zJç×fv8‘£¤ÔFߨ2ò¢ßÖCÃaÎô$¥NbÚ•ƒsjS)2ø]{b¥)Jù‚Ï¿; 7Ȧ_S)¯v_ÊŠ…8Œp5=>Û®ïö‹ÐÄlg¦úXÈ<Ì€Ö}ZºÚÐí‡E¬ÍCk1ÅùV­9/]%¿üy~çÁ!Å~jµa2#4zš¦¬oþ—¼.`Bâ.€ìFùûÌ51p“üØvÂÀð½e$H¡ýV+{‹ýu¸QõI8„úÀE™Uzbyå®XÑu½6óÞ*To¼‚, +o*ì »WøŽì®f ÊãT$»y²…s­ôó˜5)Tÿ!‡Ú;ÇÀëi½P içô˜â²®¯F_¥ñHÌ¡ 44[ûó›:Š2”ák[ ¤ øín”ZŽSD<~Ëê×kñoþ¤wÖ.LPµÝMÿž7þ7ï-6ÊFíÝ^’Ú ŸÖÑ`±ü‹Þ­øÐ¾G“èÛíq ì=ZzŽ •»Î¦¢|s³ÙT)Ï0ÎzÖÀ³Qr•p]’ÜšîÁdÁf™«ˆ¼´°h­þÐë¢::fャX°)›‡ª”Qν;Ø»4)? +éPÑ[-4µkŽãÁ;nÛ–ü˜}9…¶9VH#¨WÈ` e£šZÈÔÄ¥_‰‘!§w¿èúLˆ /á@i¿¬ç“YµD]WGr~…eÔU¡Øº‡2¶>õk²†³ o;ŸfPê *µ±‘ø´ÊI ®ké¦Û)”µx§5Ùgc ©\½h‹?æ_Ë _£Ê'å¶H»Îû)‡¹-ݲEVoPöýªécd—…ö—Òs¸}ª¿ Ûa^JêÙ§Ô%RþÐM€w×m”%¯‰÷|jM.­¯ý]t™]f¦PrN:ÅÀ$å!ñ™Øá­î)-;9a~¦Û›xÓW¡ÌÇ4f:fC²ŠÉêEß7/\†I¢-pX{OÒëÐî髈ҳvPñ&Î2šF?}æXVqµ¸»ë1þ î| ü5fÕô8꽓1HáZ‰f$¡€bü­÷ò%µ—†k‹õ»>"Þš92i‘ŠŠ¯á¼}dÅÖÛ¬sصZOÛ-T¥$>0S‘Ø¢ +ŒjF³v‡ãôna«:Hì:î&+ÞÇ1:–²Ìãà BŸ‰PÏã|¾›Gîâ¹N¼²þ"d4ØO¡£¦– °šRjÍ£f—CßzÕkÚêñé%Îk†çWš`,Î`Ú…°qÍŠQåÝ"/ ¥¦Äý LdåUì9s=cI©uq(lè¸Õý–‚AÄ-nŒñÄ®Hš×ÃÈ ÷~ï7 ò”.—ÞAúᦋ†AÔöGp,¸tL[ÓÑë‹4Â×%l‹.„Îz)—þÝ—÷kNX*4¢~]ì|sfj?Ü…¤7w{åk‘f;|ïq>¥î×ê~ÁðÿH”!£ý“ÚqŠêØð弑IÂek)¿ˆb"C1§‘ºt¯‡”"Cvc7RrÐ|æX£¹nGµ#ûWŬÅt~:µ.t[ZÙôEŸÍ¯œÞäîâH ªí½m5;Sï}[”òVé³5wÔÆ«ð™½—#éO®×yt}<}!',ëÉ0ìLx«žÚÑ·ï—]¹ò¶gyIqe°ÄÉFë¿«K'³Ñy¶_ ¿Û˜¶bq‰z­Á´˜±ìž7üz‹Nÿ÷wŠ>ò, 9é/²·Œ¢êÆ4dÁçŸ …ÞªŠÌp1ÜðGK WœkˆUœÊ{k'ÙÑ¢" ‘à:U¹¤{ÝÓ4ÑŒžhg‡´ý ñ8°÷ƒ:òVåÅÿjÊIÉRÞ@þ*µ9ƒÿ /±ÕòrÒø ã*нHÑz—'˜ ƪ¨ÿõØ5(Ì*&Ûîá¡u¦èëVBïd/wêB(Kâ VG1=2jÖWǘÏ\Vũ׼‘paŸ¬\ß°`—«0ŠcÆ3ì¿W/NÍl¿Í +R½ò%B¬5q;ø”òì4±—jÊ_¡J£óB¶kì[c %Fñ‰  +¼¸5Ns ÎËãû(u=z"užû²ÁÄ&´¿…ÆoåÍß,ß0”×É,›5¨³:§vÉVðl ï’ Ï$P' ·_´Ów{9˜SqÛ¦»Ur%Z'ÃÀçMAã†&µ v Ì“ó]‰çö…&©!¹%+ºÙá +‰ÿ•];Fœ™ôö¼ŒŒoç°M€ŸÐd-‘øÕCnpYá*O—UïÊD%t)¿Á»õÄV%³½¸˜4FDvQÖÖå"´cNõŽT´‚.7ÐëàSìSsZB*®âøõÌ(%‘¯ôŒCŒ4²,hԖ˶ZPîEäÏÕƒî[µöS¸ï5¨ß|²,×uDQ”AçóBøe0×1•‡UÛ?°€jî5q.½¯I~4T“.^_ †] +°’SFäŽy!5, ùÁÑ"bƒØkï^GnÕêF6+g[\Âí€ßžó,}Q2æòÍ«ÇZÇy«Ñ« zE# K#´fšÍƒbŠǦŠm”4>¯˜D„Â!DWȩ̉PŽ*6«OËЮ£+_¼»nÃH!Aüën¾£ÃYæñé†Ä÷‹‰¦U§¤jK#;UhGÇïp¢/½;dØsa +Æùs¹V—ù‚øNCN$ħûêlíÎA*÷cHåèB½µû~»g%”ž¶ÔÔ›S2ÏœÂÄ2'Q¿ÝF”êEé! îözÚòßÚèdÓ˜§+„ ™aU¿{¹íÁö´ÉÚœ eéLuK~;»!Ù¡Ì`ÑCâ¿Ö´•è6Kƒ’ûœÿÇëœ×f€qWܧïOxàƒa`uŒæ¹äo0”ËÌò²Í9©›ÃÓÁÅp±–ƒ£ÎKÒÌF~e–^Â2ˆo++½Î°6(fR¸|"Ç} +öx Ðí<ý^`]~JÕcåp]f«ÃÆ…#®ê2ØŸ(,J dÿÛ$@Éá<ŽÒñcuMä5viE&7îhüöQ¢ØŒ†÷Tèy;êŠ ÒøY­?¢ÑåJžsì1y…Ü$aÃ^«rŽþe”ÓGà)JÓçf^i™ï„´´ °S¹„• ùtP¢òˆÎ$ŠôÃ$óšž©›^Ÿ-8² :—iOgòž{¬r'Ï&Y2Ìý€Ý¿qý%Äe.äŸ÷è¶G·rÚ3²~ úHRàÌP´U„’vγe¿£Ë' »ŒŽ8)r þ,û:PÚWEP7¹å$ÓP¦‘œ'A–rÅÕÙ‘2KŠ„^×*ôº1¼}Ú‘xQ;bú9BDÍÖ29hJŸâ –a2?ÀüëµêÙìWñ ”µqþdåîÊaÊV] ’wñ+¨^ ¼Ó õ³ÏóØÎd©%<¸msc¦ße:z­>QauûUÛ)K–eAÌfBµy VŠà=5ãµ ä^5e˜AñŸ»©ã„®Žþ¦ •Y-0Ðz/Ar2*Ì1«ûCðR}Ó¹KÌÔ$±òqõád’Æ«RîføŽÃ!@3¸-fä+É4ã‚Å5óJá$ÅÒ”ì t2ôô~̤Ý}Á ÁùÜxãuîù#áIŠý–¾Ê"š7Ó+GÅ5MוU~ˆ ‡ ¹9}¡ +¿º– Ú l\o£Þ4Í? Â~§P™~V»m`aqjM‹QÝ–×ÁìûÙñ3¼^DÙ ¹—Ô‘ø|z%&ÍàÕd)þøŸGwÛ¼¦<”£¹Ûm×èã†æ®°šWÝíù27p. ŠÞãùÛj¡Aõ#ºå±nÃZ±·÷@aÞÌŸŽ° ³gCøå+ÃvVüгngñÛbâ—íÙñ©á™ôê:fà·DóÕkãÃâJvŤx‡)¸[ü°Ô‰8?+ˆÈc3ášÔE_ä·©RŽ!Öö™4~ëif‹ç&fÐ.C­ÅgÞ·TÁßÎÿ_Å»U<›XkÛ4ØÙ/WZÁ„’}ØyXÕÓÿÃãßæOâ¼¨W>¬5¸c¸à¤{ë¼ià½Hï+?\$vkë7jà °5ì‹ÄÔ–ó%mY’q» Aìüü{Ióæ£/ e”Ïküp½—‚´fl*•Ë7üôËÄI"_êÜ™ÝhËób_äLJ¼à±z×Qwƒ­Z!)‰ª¡µXV‹Ó»Ò'"›úsBáEäÝEn‘÷’ÈJ¥ÛïHøµ +ƒ +ØE¦â ]NTÆ"¹bT|NÚØsè$2Aa»Zan³“ò4›7ÆaãO¸c’³éöÒO,DÆÜ³þ +¥@yP ø¿Í|'þ°¾_ÄðéópîUûŸWþR4?Yux«õàÖ®ìÈáTM§·ŸJnöýp ŒJ + +[¾«zr…Ÿ­¯Eõqœg%fä¼êÛiÎ5 Õ×"ü;p^\¦Á Ú%'èÕš¯m:®7†~ã$÷50óîäp¡§{ˆ.ó¡@’ã‰þ1½(¯!]uš‡ÖÎżŒ¢Ì°×!¾öÆN [â¥Q¦´• +I¿Ò}wG²Ø/æÃ"ÄtÝ…è:ÅVtk.ŒBGg „QŠOß;>yÑ^¶!9¼©¾FÀˆ}#ËìÓÛ‰k[&ÙI*mÂ[“†“}/øä4ëËyc6v—ãC£ñªµëk»X¾êîI¡ÍN;ê(Z¬=w ¨‹…(7H÷ —R›œÄ,Aü´èOaÃë’`´ œÀÅ"´Ì}ÛÿÁÈEOk¶Ô{Æ7¤Ëú¦n¹é8Ù*Õ ¤ƤÏ;ì8l tqô¼°UÛÁÉþš¼81Ôï©,îNø¸ïÕ(ym ÇÕ +endstream +endobj +851 0 obj +<< /Filter /FlateDecode /Length1 1373 /Length2 27162 /Length3 0 /Length 28127 >> +stream +xÚŒ·”dݶ5˜vf¥È¬´mÛ¶mÛ¶*JÛ¶mÛ6*mv}÷Þ÷¿~¯{Œîcœ8{­¹´÷œçDÊ+ÑÛšˆÚÙ:Ó0ÐÒs„d”4ØôôL´ôôŒ0$$ÊÎÖ&ÿ1èš8:YØÙrþßBŽ&ÎmÂÎq2v¶Ik€•““žÀHOÏñ_@;GN€°«…1@† igkâC"dgïáhafîü·ÌÝÈ( lÔÿ +ؘ8ZØd œÍMlþV42°(ÙY˜8{üäÜæÎÎöœttnnn´6N´vŽf¼Ô7 gs€¢‰“‰£«‰1àŸ²6&ÿžŒ† lnáôo»’©³›£ à¯ÁÚÂÈÄÖéo„‹­±‰#àoq€’„4@ÎÞÄöß`é¨ÿÙ-ÃÿI÷ŸèYØþ+ØÀÈÈÎÆÞÀÖÃÂÖ `jam•¦uvw¦Øÿ4°v²ûoàj`am`øð¯Î ¢ +ƒ¿þg<'#G {g'Z' ëF¤û'Íß]±5²³±1±uv‚ù§?a G£¿ÛîA÷²µs³õúÏÂÔÂÖØôŸ!Œ]ìéTl-\L$„ÿùk‚ùo›™‰3€…žƒ••™`â0q72§û'½²‡½É¿œ ÿ˜ÿNàãeog0ý;„‰…©Éß//'W€³£‹‰×ÿÝñ?W0 c #g€¡‰™…-Ìgÿk61ý÷úïá;Z¸´èÿr@ÿÏçÿÜéü¥—±­µÇÃÿu¾t²šrâRTÿžøÿøíÜ^4 ,ãß ;#À禑7°øOôÿ+akjàøw··é¿:výÈÿ# +ÀÿÌ%k÷—µ&òÿ&¹6= ½Ñß Ãÿoªÿ+äÿáÿdùÿ"ùÿnHÔÅÚú_nòùÿn kÿþ’ÖÅù¯dìþÊÀöCÕLþ-Zc ›ÿí•p6ø+[³¿d¦a`¦¥gþ·ÝÂIÔÂÝÄXÞÂÙÈüß”ù·]å©Y[ØšÈÛ9YüólùEOÿ¿|õedõ÷ùáô——ÿr™ü•Ïÿ¬+bkdgüÎYXŽŽ0ôéÄÈÂðbø+Hc÷1@Gkkçü7ðwF€©#Ì?ÇJÿ?ì0ÿ#·‘‹£ã_ý‹ ÿ×ú_‚61q71‚Y[¶3â +¶¬î|©Àq£9š‚ØÙ뎈Ó +gq&]Éõ2—†ü-6ï ¨o\…9‘*¿Z:·ìCyõ2í®Ý—°"žã $2t xC“7özßgf‚ol‡m6Öq€t¯€÷C_ L‹,Qmù#„­Ÿé¤ú¸ð³ÛéD“ã`(~B$LÁqŽÈî¾‰Ò $Þs×ÐFŒEvÔJsQ–P™ù‰²ˆ}ìŒÆzõ8ЊMßÚÍJeºË—¨a­ +EÁBõ”$ÌžHÁB‹Ï”lq"dy*KŽ#Â*² %ݵ©_dÀÅ%ŽÄ¢·”àZNX„'8Êýœiì蜛d$å&üðô€È%á™BètTN–31e³¨"7:ó(ï>î¾k<ÚYIvö¿0РΊT¹ÁœøÓO.”³­åp#Ž +÷¹{Ò—gßÁc1­C PÍ"<§¹®´!]ç­Àºe]¸d~¬-„õ SˆÈúVýxå·ØíÅ pÀ² ;) ÷B-¼† HäDkOFïM\æ.|b€µŒÊeÏpÝ>{GÓ°Yd©Ç/ üzB×n“ù°ñlz<.Z¬Vi—~SûK—nó~öN;_:Ó׎2”‹Ǩ7œöø a·b4H×öQ¹¿p=¬ê m#˜òø] ¤[ëN¸Ø7öÏæ³l:­…tæÕŽKÏ.O‡Ý9|jt ˆä¢æ‰ÀõtÏó÷½/h`Ã4šwYñ_ȉèã×È%|HB”EQˆ[~@Ë¥ ËÉÔ_dçµ.iwß|%äÈ(ñ­ ; ¯tÄö—!YNC›Ž3áJB¯v¤­h ÃSµ‚šøÃ±‘»’8ªE?(ÄÇ^ ’qÒøzAû¹V  bãŠ-[Aêó«Ù#Ò‘ú[ÈÈ=yé}±ÃøAÙæ?³«:ykÇÁ+nª'Ô]y–;²&)ÓŒ Zñ‘nGö÷ »¿òÍ©wªBÒg<â‡I~æ¿¶¹í½Ìù3úÁ8ß²:Øü”ã”´„ØJÈ +4zÔœök^ fï”w-€¢¹QÕ"Ç:5`Ùf15I‘^ŒÙ¨ë`Ôs7;1 +Õ-•^òÞÖƒf4ºì +`ÈÛ$³yÅ\ Z‚®ÆSƒÉk°øJÉ÷”m˜Žã ÈmÆë ¸ã€1z.LXÃõm²æn»ûÈnÖd_¬O¦¹jè†Þ†ÐÞ¼~¹µoÿLÿÎX¾æúm€DÌôÖõXâƒÌœê¾û¸Ó÷=TSŒTF^“–dÀoôGqrÖÕÞ|õ·&–©§ç_¤Ô8,êÖq¸Æk³¤]¤ÃÝø$bOÒu(XôñÔÝí=ƒémÏs{0|V‚$ª Ò‚skSß'¢ð]:©\ð¨&jjJrñþTù[‹ˆ·‰—·V;ƒÉÀ`tß_nNa»¸I»<<"± ­Aœ…ypù” +ãU»¼–jo! (ò¥ÅKÈ{±®ü­+eT\{“.ÇLž?r¦Òn×¶D‰Àå E7XÃ{–DOƒÊÎÄ ÌÊÍM<˜Þ¯AýúÙÅYÖp!lû(êÌù|Ó¹3’$Â*†…× ²áBt‚x,¾Å}„f–&áq»áÙPÈ÷o'rk&…H¿CH÷uS6Ûõ]±À‚){Ô)Ç`† UÄzöµH›¬^Úm-îç¶OøõŽaJém6_ÕB§œœ^@]níXLtÿöx&ÆÓªðˆ±?9O'àÎÏ8߇#åP!gƒ=“—„Ëê¬"dÜgøÉçý6P¤W±’݈SJnèÌ„LÓ—*÷¦Úq+v³¦Á&gBBSUÛÎ%SލƒbUª4‚·´2$—º¤° £³)¥SÙköC +°øécjSFÑÞ¿Ö7Ì ½GkEëô•÷ެ®“Q~¥0¦eÍgt¬Ä ‡ÝTýŒ$˜ÄÏ;s7ÒÒà‡®˶µóÊ^\@>4xv}W·ˆ« ±"ÎE®µ€ç$JÚ{“ùãô#‹Š÷çño™IuÖ*‘IB¤xñ¨3RA#ªZ\'†kòöìºpE8yÍR¥‰è9pX°q´kŠ0/ê¹Ãúߘ›gÍiÕ ¸ ¥eó§¹i§7@ ±þÊ[è(UN9`æv¸Y‰ª?÷ß P-WFˆã¾’1@I`LzRâ-2~m1W)¥U¢¸+ÉÜ‹Mã<öQ…¯t"$µcÓÆÐ;fȨb +®›+xÎvƒp±=ÿRŸÆºm2‹ñ7a¶{s¼q!ÖÙ‹&«2YV fs­È±€S± aü®=€VÛÃÃz£4‰±'ú‡Äoݘà4£¡R”p†çÒǧ4ÒAýÇNr¥‡aa¨Ú.¡Å›§S·ÔÓ° ] …<ÆWî¨?z&¹ÉˆTþLÍägÚ^Šº3*ñ)S‹´GáºYñÒ‚zÁ+h×óÖòŒ£Ø±VÔúõÁ½¯Úíø"60“1÷bu˜p†³¶^hmÑ·oP]YNdüdqìBNño?FòÈkUÆõNY(^áécŒ —ß²l!`œ¾$#¿¼™¿x é–vÔ·)ˆO%–R÷i`í04¬|³HDàã9ß§‘ùAŠgHI/sæjRB’™LÙs–­ßÎŒƒ>d3hΨéËD_mAðÐ2È4žÄÜæ.\® ô(c¾ ñÔÁ«Ýªx4x?µ¹ Ö†&ãà)gäN8ŸÏ¡ûRZº+<¬âNrÕõKÀ†S#Õñ:ë )¼R ]Œ_í2¾!ÍXÑüçÑ÷†B(4¦yYg /Ôáu¼UÇmž Á +=´y~ÄVVôÛÅÏbWð?,c Ú…òˆtØ«°l’Õ©ýî˜E¸ET.³ o¼§t€cdî&Mð)LgQ|ƒ0 Óg‰ã£=è^h.¦P6–xŦÕÑ}X´Y;ô«¤~3ÍäýiíthE¯‰+ LëfAçh{¼X‘¨µÙöU«?Ì×ÂtT$ÂÈ«þ:ÖG¯Ôþ°Ýê`4A"$½=E¿hŽ ™Õ¶îøô¿ºxÊðZp$>޹ûQµ•ÉÎ7±|Š-©‘j+PÊõ‹ŠÅƒ²1zLœ•¡×3?êÎ“Óªæ ³•×T qȨĒÂÚ…û oÕé(LpǺšÿ›ÝQ„Ïy¬ÿ|…þQO"âs0%"ÕžB˜€ÂÕ9=#¨÷FJlNy³Žºú^àFÅÉRÜv&%tÒ˜âND H£,ËØ~ëå‚Þew±i2he˜£–½’8ÃæÕôä´ªSM…ÿ`aïsÕ)º݇‰}Ðb8Õ@s3Ž%†^³e7ðm×É +¢ Ø‹¡že9|=N/Þh¸1ÇóºÃüü·tP®*;eo~ÀjQ(m ¿Rò·î îTÚ wWvJîSæ\›±¡3 zß ‚Š;ÁgïÀÒ»Šk?SΓ··Q7É|hx¿7*½(~Šiµƒ˜5=RÔ׌OýéÍëáÑÅ|Õdž9~ßÛ¿_pë8ìbOÀ¢Ï²uD]kè-ò»yŠ ®9ÒìBÙkž%ÚÞ÷—•³ê†Ûb8Ê£\ôVÑ©)f‚:VS“ÌãÎÎ;D¼ˆ\!p¥?RlilØv´üxbE`”8°! ÞÒÍcMûÊŸE8–~™¯Ÿ;³ 5³JÀJæý{iõ •רaÛ\Í®£†õfÿƒ—™r™%0|ÿÎ\u½OÄz‰¹ú"9ûßE,½y¥ð¡‚$ë¥ï:çš„Ûh«ë\×O¿Ül$°Ú©(f,yHÃyYt’â!/ +ÑÈ('"¥Å ÂÓðzrp µìª™ZÿéHÚƒ½PÒ.mw!Q‰Ó),“ù@‡%ã¦MÓ +¼ýh!ê'Õ·«k``ôðb ¥ãà,-Ã…Ê€ už^ÍÃI‹ˆ÷L*sm â¼Ø±bTÊÓõAûü£ŸÝS/#ó½·´«óÃ#AÉâÜD¢ {KôÛÝ^á1™ºÙBF¶ôöäË(÷7êÝŽ™ZÊT7þâmWþ÷¹Ê`•œ#ÞéM$ÍËu¾3L¶Ñ0ɯ5PE>6yä Î#æÏô&Eð(h™WÖÀ®5üEO Ì †E]0r¾¾ý&Y,I ·ÐëšØyº&¥ãÇCSð,¨»ÄÒj˜K$ßãøG²TïÝ–dY"”k_¸Q#ZBÓx@(åÚkÞAìœ/Ý·á0O?]1¶%¯/*„°ÙùDæÄ¤n‘¾É«>:±ó-È|VþãÖ3—IðÆ"í°öÍ8PØÔ-œU/!%(‹+âé}6jûZŠla¡üf½”Õ‡®è“8ÝÖžàU áÛëÚ¶Q¦]&ÌÊo+!V™þªÙƾÿjO,Úþþ·(ýG¡·œ¯~+S,Ä6CiRÞÂ@pŸèë÷ ]àΆÃZƒØ±UйtúKU9qΨÝhKɼ¾H¸6«9·ø”PÕÀ Tažå×xàç~‰‰rï¡éàAÄ–±•`ÁAï×Û°ö÷!à¢$ÄDø‡âšT“sÉÍ“6*Œ¬ ,¶˜@ë8Í<™ùû¢õ6æ>åDùLûÚÌl™é2ÅÞÚ”AHÓËpÈ ªŽäøîh†£äžÊ·éŠÀ „)·ÓŸ`%õÓ¡{p>ʶiÕÙÄÒê#ò~À݉ ÙìAô6:³4‘ &aJŒÑv%mÖù.ZÞô`–ÚÝ›ÜU ïYáÜZõà@é—üðnwƒì7v™=›HþÐë=äÄ)ÌxNû¼v^æšrÚtøD|•ýš+É¿n×ÔÑÉ#õ•ßzö÷ÆSK ˆ Gø± Øý•ˆ•NöhT +;H`.",{ß +äƒT=R5QQ‘ÎÀ–Q\÷z#}>¯_×ÈQðœãڱ΋ùRÂ-ôN7 °j¼#ƒ«`—Ì›1B6¼ÖÛª%îëiV.õÝëT…?*IAÒõí¯aq©î÷ƒuûØ–r4²,•¯àÀªu¢bÝY]É=—_%É‘”~RïƒaÚ#V‡´µá÷ð¬ Õ”Œ¼¿~ié N¥]½+†UF®äªW;We>vÝj9þ–ÂU hÓcn^Rœ‡õ*H$$˜%aBÞB§ÅòÙY¡§ +žØNÿ>Hz¶Xÿ À÷ð] +jã–akò_ µNêÿ³8#ÄätäÄ9é“íÓ5È4Iáa ñK¹œ¹´òЗiH™±´¤ä‡õSæ£]saU ̰žC4)Ò@‹¢YÆÔPßÜ™|X#ô.\¾ jefÇ®e:Â[¢¿vÙ|vÔ GÁÃÁdÍ nÆÆŽ³°ddÞä/ó)€ß•ÔÝ %õyCƒ¼åq·×¡>vl°Ðƒ›Š9ÆC+]­=“‰8D¦@ù…ÅM¿ÕÏ÷VXPý*R;ÌòI+¦.^ƒEëÎhð4üË—9žˆ@)°.˜º+&þfYï1ªmeÁ¨³,Å㛕 x&¹å[ÁVëþ9¯c'k"”é[†g6ÀÁ´Õø<¶^¼Éá òwœB¨l¥¨B†ÿpLÒUÊM ¥E÷ ÏY HЦ(û%e}ê. LŽ Hh¯VÉTž[‹x`ÝÙÂ(D®IR]r‹Q|¢È#ˆ6³³ï +šcûVƒ2¼éêò}˜4ì³PâÏ9óß0n‚÷P?†*ŒÓgV½_½²€F•Xòì¶»ÿt_dñÉ—œØ˜„ÏgoÐÒLÌTéX×÷ŒÝU±ç}3ÿBCýâž–¹ +™ä÷„ê¹íœž¨¼yÔõ·3Êæß´ DÒ¼kllÜ´%òp<ë;5›6YÛ+è¯4\ £(AfÌ®,RèbßÈÂWÄŽ:º¾6RŸÏ€i:÷œ*C-¼Ú…š*8€ ó{4 ¯#‘—T@ªÜÂMüE8¢¹ñ +M=ä¹) ‡}Hv»ú1† £†$ð3Ïxñ¤NûP—·Ðˆs 3^éaªR„üìëìÏYô2q¬³Ï-7>Œ8ø ¼x£Eƒ×”6åf1á¶Lqd?¤µÀ² Ú§ +1N¾úÖR„¶À¿¸¡dñE½+·rÂŒ]J U0`ÙîÁ³X-胒Yǽïr°ü¸¯úbÉæ¶‹5ÿàxj™×6•vââZÎk-­æV„+/ëu$¶ãÂøý•tõmϵç9'Ñ`^TÈs)Ñ+Ù‹³u¯ø‘Ù›y¬ŽAÕŒƒ”UMƒ$:¸¬ÈðàY 5/<Ê ‚±oVuçU«qçÃøÌûvÅz½u;,•z£`þh MáU"z.RÜ¿rtê&½°G!„ºÜY°Üï à ¢’Þ#%)ñ¬RKw1Ík;¸Â.™õ+u±D +úØÊ5M×+ dŽ4þ6ɳBÒ>ˆ º¨…è­âùQ6R÷â»À¹~oŠónI•ûmŒî°‚{Fú—¿n[QÊ(ùQô ó9!ìÍäÂ5pÔ‹4šŸV´j”¾q‹dÓÁÅÞG[2šСc`WÌ…$çºI3é„™ 1{lymd°ñkÍjƒX5`»±ºÆ2Y »(&G;]ø$­»©ò*.Må·˜yþd©ýkIÎÄEY¹Ç©7}¨ò"bíiý: œ˜M¹¸ŸdÂÔ•‚C p¸¸çö@OÜEâ((ªð:¸šÀ®*Q£Y嚺™/tâHåBëÊdéBbGtÚƒ—-œÜzÝÊ–SÌÉjÉ­M7®¸&JûæÅàû!µ±\ï›Ðgj¿¨¾TÄGCûãÀkû´ð„ÿK·MJ¨˜­–§*Â'Bj(²±qèuˆÒ¯¾¥¸ƒ¤/~ûu~µ4üŒÚƒ,‹¦Q>ª§œ<ÖOMôçÓXÆ'…u„r!RHœ¾èŸ_."ÚB°èPuQXfÈ©f·LìpÒäU&4ºIÝ©à6„Æ+ùmC›K±ò6Ó´;4}Âó ¹ãU¶Õ7z”GŠ’*õÇ+ Dª¹ Ð`[Èicužð"¸8`Ð>ƒT‚yù¶šªxpp¥Uü™_¢›|þâ–ªÒ^6‰~Ùƒ­@´j ›5¡õÜÖÿ$ÌxOzË^•t—°©\”¾º[TÕýÄ* +ý苸~½‘±-Sj€ô8xû΂ž£Vž•WØÓôºt?È<…„ƒ ãàš·ŽüL"Çû’0N!ìFÂ!Å!‡:àLˆß̪Œ.8¬Òt%á3(åœóê~iC¥ýØO#$#~ÌHj²9ûb›êØ ãÒ]wê#Öâ":*ÚCžq=sxâEÿf1¶ë±=MJ˜3­ˆë¡ˆÏ9²Ë¼QÀ°è¯ü䦬Æ1Q­o¬{íSéµÄÑ[¨§Ÿ.cº)Np)SééÅ¿µÀ1îYM(Ýû°Ä…TÝ2˜¼‰Qc.ly¤ÛuŸ;‡ÀHáŸ?bªV>Ÿ§­~Ãô—¾ZŸíCTT\4Ÿ|vºçôî™Ð3« ¢ÛtWSüI(­MŸÒk˜Êb‰~”$lx›_¯­÷٬ђ3¿¤£+ë]sÍÂEL¤SÁî^LóI?+oPhe«c€½¸Ù­ +è‘ð(éØÅùñšûµ£êÊ^Ý("ÑnŸh•¿jP:뢧°­WÄòJdO îözæÁk¦_Ï›x+ð£Ä˜|¯_EËÃ(#§;(ÏssNÈ&º·Û÷Ò†E`=#:=÷'5±Vh£|ŽÌ‘6 +MG–ç5xÍ´Fš˜eh£šËÞ{èÁ³3ôµÏ|%•âôÆM–üÛµë%Y$·¤iýy.ÄÃþ<Ím!1®ÌEâˆZmC[ìð€å“B:–Ï%´¼9°éïdš´ +ÈNî"<3–§ +zçö\Ç:¶(#K¾š³Ei0×93XÝ÷mÃÞàiŸ®¬UÕçÙ½1ÿ¼‹Ù…¥U 5(c=âýòš†3´’w|­&- §yvñy§F…¸¥5›Œ5«9œ©+²Rì¬9Ÿú'ª/B`«¨y-Zð!g˜§|òô»·ßžR¨¿Ï¥±«Å Ç¢e?Ñ|Ï=Šã\/CwL9Ü÷È¢»ÖN¦:°»nÒé›ÜeäuFI+©uÆØ(|ÂC,2|0ÜK"÷k>8þ™4¿üASiê‚ú±~úÓ"ÜVf«?'õ»õŠû¢ÄËî Ê~gR‹*²æZ +X&,fBðÕ*¯rÏ«b¦ÅP 7Š¥«^ƒKÚïO¸_ð4ˆ¡lµ7Ñ^ôŸ„2v)6²‡ÅÏhõ¢Ï¥Ãuw-ð3LÞþÅÒ1#âí>ãZ3wè6VðÕ·&.£’ædî*¹ÁŒ`BC¦2O=-bÝßœ-9@“ùÑ#O¥àò¥¿Kót (_꨹éTM3¢NÞpÞ€‡ý61j-¯ø„ CYöü½ä3 +É>×E.hæ +®QT°jFO¶ûqœÎE=`K¥©† ½0dMdCÁw9Q‰¢°9EÛRó]†ŽI¸Ýô#E]¦òËîÒl\ÍûX­9!vEeªKÚØàæ5dmà¿ê§aë lÄ@!à—Naðû\ò„Fî'.Û²ÙÌ7Û•ø¾5±yrÏ}²Èi]‡_­å$¸€V +¼.:Û·­%cÔ’»{ô= ¿fÈK=Ûø¾ ÖíJ™_Ž1ìTgšê~?ž»Q +Žñz~¶å¡\Ò»ÇI¤|úöoõßh]ò D2½b7ó¸ŽêwBñ<ÌÔÈîŒÿý³.ÉÒ*‹Ÿ•“ G°y1 à ŒòÑ%9¾´­Íáݨ–ÿšìƒáÝaðÑËŸNWªži±[­9­'‚¡|4¹äY|.«MâGiÈ;&… +‰òn“lM Þ_ƒ-çL¡©ÀvKøÒŸR _Å®‚vûÈ ï›×`>Üu…Ìf­’!|ÑçÁݧo±nb3{¤a%x#Ô;¦¾³Ù’ó…çɉü.-y›üJòJTVÔaŠ…A„+J ¼'ž"® ªtY¢>Üúb˜Œ™Ìó@ÆÃáÁ ^ö ¥?5 ªw[Œ—úϹ¡V©&è@oºšùš°ç–t‚Wšª]œús+ÖAvŸ”I/1…•šz\.¬;ì†æy‹óØkÉôÂü†þÏ®¾_çh³¥œDÀ4Ï;L§Ø¹±ÓºsµOðñ8o¯æX«mä¢[$ÌÞ¬ @ ‰`)‹›>ß—¨gœ¤±¯§H¼‘²D­ú1¿æKÕÏà›8>ƒ3£7Z™Dåî*à tjbåÏñåÀ—¤½6äm€£]]ll^˜%ë]ã‰ß { \Ë–Æ6…iE¡²=ÁËÜΞžÍȧVªá©|š®ú[€Nmíx§®G)}§H A“ž©“§÷·‡áõcÄÚ±c¿w’õ”–­Ã„7ÔÞOǸÙA—BSÍ¡0ÄN`¼–ÝÚÃAƒ‘(3(Î9óæ öîynµÀ|züµ 3y÷Rèñ¼0žÌ").¸Èµø’ä‘å%+GŸ“ž¿ø)Ûv¯ÔKw¢Ÿ•:¨ØæaüV.Ù‹  çÓh„C¹TÕõ(xô‰_À"®üw"iÅÞNúúÔN€`l2óvP&êf{]îIX]eº‹ÝF›\ËjV„½vÛ¹%©¹¾í²ß~ï{CdE3µ‹´QÐ6n©KàôLJÌg4±”(Òþ³uLZîb‘߆Ì aÉèôÔûkIIÚ>{P”d:LXm‹Œ®ÂÓ O›ÊbÝR^„À7™ ܃ßàeWÃZ:‹³m«ù`ø*C(tëu'’ä>?~wlf° ªêp,èÆ“Ü/±µ*–Ö¬R’Më lo<ˆ2™&@û`jœ„2Â4Yõ|L"G#;G¬©è"duûfÞ"ñËÆv¾ÿ‚ª#–â0â¹Óí–‹H%þyL±² +°J}ço¯OèW4šÏ®¢%‘gG`8)™Ô鎀¥ +OS‰H˜΢ÀEL"Âq¸tþ¥ãvÑ¥M0`Žëøz ø¼‡‡ +Ónåƒ0ÒZ³ådE²er·w€iÊ9®‡‚&Ê öBrä†)ÞCH%]ƒQXš#Âú%Oh|çUÐÌd´9Ç=Ý¿: |"ý3«ô*‘C. .›ëµrv«Å HE "œ,'IÝ‹^Ò¡T&­Ò¶lü'q6¼×žíqšF±b$D=ÀDº[óšMÅ2â‰Oóç0çÆÅÐ +íÄÛ×–6(½éÐ uÙ2T]â¹õŠO¢'Kñ÷´]aWnñ­ +¤hßDôM ©®‹t:ñn _ säÚï깑‚ŸŠÆ 7ãÎ..ºQú„‰Æ*•‰þåžBÄïž“?^<‹o‚Å#PÞ¯…ôbd€Td_ßuÂyÝdl>C¨2¥³µéq%Ö^©êVíB†£Ù,‚{Uú%6Æ’õâ&çÏ!¯SŸY1êM8QÅ&ºñW×ÇC㈠vnÅ.ª¼Á¬_e§]°·,R~ äMVlÕ²Y§èžQô”!#ék˜RLnlç¶–øE<ûµ&÷:¨ˆ¸¹bj©wÿž¯Å+cß'b'Ûÿbk‹B_ÒjSý‘ÿ´^/ZÝûîh«ã‚ÕÞÙžÊÊ¡­ŸÁ Iàúzæ¼ÈŠ ¿©+Ÿ9f6;¨Š.õ÷ùmøq¦#k>¸\qX¨05bµD&¤ýq«jcDç$3“ eÂç(¿4 "üÀp낃ÛÅBVÔ;¢ÍƒžÜ¶ÌÁ¶¯p#äÔŽ#:¡Ý˾:»˜¹åyáð5e;àçã›pþKüè*µñeDZ†®ž@À§·óìØµß«4rîQíw¢Ëð4 ]{ÉäZÊ£pÈêP˜ù Ä l[˜ _Ç÷Û&øé” +™€ +I]È|Àü Ÿ­ —o­­Í«çáty d‰ }™0ìý½ñs©ÿN™•ò‘5PW¸LÎ>:­&€¾hùîrÞÚP8Mû ŒwÖÄX÷–9½È©äŽ*w%8G …+NEk•¶ð£FòÝc ÏŽñÙ™0O¦P#u´£Õ–dn†’É€ LÛ¹£/=¼ßÉ¢Ÿ¡‚!ö +U —‰äjx: âûñi.Jïà¡ÀO‡êãn–‘EÅX•¾ÇöÑ_´RË¥æ [©þfâO¶]7¯p\a+XoKRr<{|ÄjŽÎPV#8ô[kTŠÙ¡8Ñ éʠ׺ÍD‡é’Y Ëͽ«ýÏkUµ&^ȤqRøŽJd¿}˜9'Eé2˜ m–Z+ô§Ú†¬æõæ3¦là]®:¬5Õ´ûZ„žü'=ÐÖü²]´…Î.ªº›žz­Êk*r@źÄ˜¿LL´ +@<Ä&ôõ·DFxÚ&3Yæ­µùç±»t èÜyzàí`ÓšT7‡ÆJð²¬ö:”} ÕF},×¼`ˆÑ©LáN!ÐK™^ŒsmyÇóÛU˜°bÿݯŽêC“u´ÕîA¡á›Ç¤„µœ8{ß®!g‚š`.øÚoKß¾5,†–AÑ÷]Ž‹QfíèÅýÆ©VÐÛ¹?›Šeó-‹w‡ÏA FP¾~gõGÛ O߈~)‰%X×­³yÏR8Ÿ²ë&üeƒÖ—nY×Äâ*ðÙÚ8]—YíârVH,HƒšîÎu¶GçJzŒÔÏKÖ%&I‰p¢Ì»’Wô8ûÒ†–ÓÁï…xéúSvþ!’4ćö¸…“<€’^und©ߌÊÇ“jc”áÞוDàÜó>ˆh‡ÂïÌ1ñÿ—]„q„,—Ò!»5·€ëOÏœ!Ð 3/²vÓ‹ 1Br XÛÌÌÉ–¼€_#ƒtu2€»B ª¹ÆÑû‘'=«Éy—EPö²Ò»…±xè—Éðö 3ùTÒñËßa6LÒ–ô#H%JÁjÞ,ò’²Z¸aX¡Í¢±¦P¿ã©X&ëÐ&Ef{#0âX! ~n`ã˜l¶=@/ÙØô £"…ú&+ªKU]òþ–hׂ_óK%¶l&)éñÊé5æÆhU D\ªâÄLÊ,Š‚*‹aKæ«+4)Í3'ÛQ:vÚ­pñ6ì¡ÙgöŠòÌ%8i#‰gÕJ'ØŸùœß÷é%äâm¥Ñ æ‰{ ×1ÁxÁÔ'K½¤bç¢;È„šQgz¥Ýq]‘Ї/bOl¤t©ª +²;%–¯"®ÜóÕÐF.¿êvË/ÿ;?~‹™¥h1ú<Z< §…1<[† ×liϨ)ô˶-®™¨ª +WD”yUBÉsÄ…aô„"NTYƾ푯OžºAWj\صËQÏÅ?Û7öl%¬ÏÊ'Í7¶AÖ\l¢Š…ADà‰_óŽïÒ.¨-þx€Ñýŵ,LŸ*±tÕ'`:iÈËLs}þä&ÈŸO‰F„²7[´^*ï,ÜJN¢ºžxÔpxjŽ­<Ë\:½_¸¸?²¶ÎCgÎýsWï 54ÝU(T“Àߪ,DrleÚD¢á†±9jËši>3¥&8À!Fn/&6ýˆãЦѼk“£Æ|¿z}gу!(µ~ ²IèqlÓJ>gr§Ì³Å¡cˆí,àì‰>w2㦱úóëŽo¿yYæŒÍm[´0>cíZÜ-)ˆØÏ*ÎãNä4©ø¢é…çL_í÷øá8µQâ‹Áƒ¸1c,ØÝ@ÎúÑÄ2@ͦóŠñ·/´%ƒ„c8qêŒ5{-ëãÎQ¸¸;ò‘…v6Œ{µà°()ŽŠ; ½ýÂdß±j¢ÍÜbÕóÏëD6Ó|¼ûq¡:‰Ó±.Mø¶ýŒŽ¸Ä϶tA^•í8¡»H1®¸ói½KöðS¸§±Î?(úM{×n„X¹áˆ®;Àaavà~d\Bx« ï˜-yS°ß¿&g¾kiXytîeÂÜßE;àˆ" +Î2ö³âyÂÚÎqó-IÒÉU+ºò+Ëõ^RµÁ¬€©¾ìß!]Åqé7fa›F ÅöûgýºË†V³ýón²}¨ÝK4"¸ƒªõ´XÍN#O.ãMxˆ Yáá BJÕGÁÁu`ÎGdƒìx*ÅcëܺG +Š_­ÚŒVÛ_z椲IsG$–ŸWlâ4‹3$bs/ –Vä•cðhËÉØç ˜–»–ƒç©>! [©µÀïüÜóïkð«úXdíõ—üFXÕü†Õ”¹>²ë GûÍVðÈA£“¿£xlè&/ß;ðh‰?¤9Côáu¹²ð\¿b¼ÉA·VËWŸ^ º‹vfuÇu·»˜¯Î»´>™´‘“¶×´),\ž]¨æ—¼z¹Þ4!6ŠÉÈU¡Õ/nx€°šçn—¥Gt´ý›ƒe§¶ò૊šg]-6œhÅleFšçðlɯ*œe‡3NǪ.uœIêUbç56Œ;D±b9 %ÙÚ¤³¡ß?¨ñ¬ªXçe©:µ†seg$Ab +õ…é·Ç±6n\_ Sî¢mŽ*™ïßÀv?×IFªJSû2å“2t@{±g«Çu_U×iÂ!+Œ„} vœôÐã«”ÓDÒ‘5[ ’7ZÌšc+š9ov3W u0=gõd2ó(ýa „E…ÏW̑Ŵ…Ëyw¥;J}·é韇¨hô}H±¿›nžo¶©W¤Üôd± {½iú¥2ÌLë0{·j˜NÖÁ¡h†Tõ.üîb·Í€ö1åoÅË’°Ô“]kNµo÷È«´“¹|¹]•õR‘ÛVâ#.Ÿº4#ig°2áñ³)аmª¦¼Xœ÷gôÐåL¢Ür´”³‚·.Dxb„'*(T‘žœRÛ5Îû³Ðóký¢`¼ +xœ<Ý´ZŠl›è|·é”¶Ì¯À¤Ù«O_A¼¦…6 +Yäs&‘„|õ´Ï¬8:Ž~wUHÂ6×Uîü"–¯7AN!ÚqõcäíÍtdÛ¬ºÑ +Ò¶¥v¹kŵˆ9Qq]Á}ñ¬hk%ÑÖÉ‚eÌ<ã¦ÊÎå|RQתûŸQ_¼}2ÜÿÏRlµ +Xt7è—º9|Øãxˆ{Jž€h0 ÃDÏ•1³Y¥£¦Á0›O“BÆo„ ¢f8ÎàçeŠz­:¯{pBõhH ÊÒŠÔkËKùh5…û<`o"ÖýôŠ ˆîÔÁ*—5§+ýŠÕIeœúê ü«”vâæ†1ÊÏPÝIáª-yÐz¨4bp”Ó€‹„9hÅr¥=¯©ÖM3eœ? »ù¼`ÐÕáH|ª T{Î%Xk(­P…_UÅ醔¦nŒÖ¼îN&HÅÊ#¶[K?ÎwVk¸G÷}´¸½êilêý»ûÕ£—1m›ëÔ›¾CŽT,ý]hì€5?gŸ‚Ú…ªÑÉuA3§eß ’‡ÓÅ"wBt +z„€ºS +m2¨ø{Õ#—AoÏÙ©ÊÈ}È(ËCXÒIû#Ñv‚á›3=’׿-ø:¦ÞŠW*Ðr®²5Þ¨$PE;™Ԗ F‘ÁŸ¤lW/Èa‹ˆ½Œ=G5—Ã…¾}ZĆ}wÛÀ«aù$WQÁÈ1•ÁÁëb=Ÿ¾u™%¡ÎÕòÎ') KèÕÞïÐøŠ)ž‹$_â2ŸšéΤ` M¤ÒE‹ yö64ûÒ…"ó= ½nPâSÆŸjŸÞüÕìädÚ &’Œˆ×+Y—U‰*¤Ä?ø'qªi„´¾0Ï!ÍÝJO_'[ÒOˆ Ü’šûm`)J:ë=ñÊHž9tW>&̼§rö¹³›G"'¤ë~¿éx0š +tÇäy}"]:Ãù3°d—P~-8ædS„j6è}ax 0(Xº0Ä‘;3sç¯ÙÇ2Ψ |K; Œ÷Å“†ÒçUíš pä‚Ô_†ëî· ¿#ª‰Y ëMÊ"αÕË88JÇÐì?|¿£ë+çÛÅW¨–¿{àÅÞõ}é¼`ÄL§‰å“ëQ ™ßÿà²f:Ú1×›{bÉÂSqT&Ú?eÐižqw²ÿ}C£&àyÑÆ&y°ÂÓl³S‡³5o”ª$yÇd Wsù:Ò›®žõöùë°.û\UÿÔïS ý<î|¤ ¿gνò(êQˆ×Ù{ÏŠ—ÛvUD]zAigµ{»Ë+·E«yãw/²Z/ª1\ô¸¢Y ü¾r€k¡k«ñtƒJ¢@o~+¿eS1]”K\ó“OôÍ[¥7r:ؾیá». _‰â˜Æa·Ïz ½ÐΡ$ó½´ö¯¨ðŒ­QéΛÂÉ¡ÄÙ¯ÓêϲìÌ2±8£ÏÝÃJìN9Ú–“7ý[âÝ å_3uêø Ù`°ÙëŠa¼×÷NSH„l½/¢óˆLÙÌŒíƒÜsȨ ¹ŽÇš`B\_8,$¢ÚT^DTËœôoA2‡~}m'F[€ò"¼Ðw2¾„E擎æÂ7™¿øYQù5–©7€8dO»ña* Ñ}x¹±ŽŠ‚8øN£¹~·ó à KRuó³ïKÿVî¦9ÕóŽ„})±.kâåKè”~G÷òQAc‚¼¾Þ4$./¢pAaMŸíþ³Eö+xad%VnÅ(VúÍ?@Öo§¨•ż—¬`j™Èç7¿=ÿRS¼Ë\UH/º¼­h·b³zÛ>ùQl]¸ÂÛL,‚p!z39ΩþyËÃü<ã™vkX×þÁÍÆ'E¼m<¬M<§ËEâ]7Pd í;Ø“MŠ÷kû# +[U<Œ³ë§Éˆcûn$­'Þ†mØJ–V¦­*óëõUÁÕn¬”À I‹½-„CÕ‰KÚ­µ‘*óÜ‚_œRŒLŠì¿+·Ë`ê„€?˜8?¨2¶šÍ­º„AÈ$ª˜ú¸Á]NöÐi,§Ér8»™=Åá½—“ÉYò[ѳl?ÚÍ?‚”Ën2PÀF<õ½b‘¿i[K!U¨Þ*ýA0pVª…yOØ(r¡Kÿ¢Õ”qg,õÃ1Ø)³]¶Žx™ÏVÝç®õâ9[DësÙÍ¡TúRåЏŸ NzÓ‰\6ÛÉæÕ&f¯^HÓSèþX±*&1ãjJ‰cPæ“ÃŒÚÎÌ{1Æ*°u#yË|v1dOÁKó»ºãw×ê›ápí,PdJçý² W^᛺pdx”5•œÙ’L{llŒÑ׌ž¥Î ~ðÃ1׫#TÄ=‹Â³èÙfwhþI¶G· +wÓÙÕ^„ÄLã+Ëu +ˆ¸nžõ¿K¯è]ü?6›®ž"Èæ8ØXP­ Ç#€¶#‰ãÇ$¨MÌ{Cy[Í'7·™Æ¨#üÈM2ÚÍN½Ûùøþ2…$üâú™‹¬å y”T%2Ù²á©ø~u¬Êb“…ã̶ÓΠ—VËúê¸ò±“ŽT—ÁhâƒÐƤʿÓ÷DåJé±wÂî AÆiÑ-©vqO&ô¾“Íxl±®‰ü—BÊѹh3K yÈ~»F>½Ñ&_ËÙ;<¯– €lðÁðxÐPþ]9ðÝû”«WeÍÓ,]/¹¬ëA¢Þ¹Ýÿ –³Û򱄮œ€jx¼ü…¯ÒW$®p€¦CÇ^02œÜ¶…)Da`ôì9SŽ6wÌ7Fi¨ºc?R»äì +Ô©÷ +xFcT›ÙdÁçßµ.ÔMŒ–*øY-E2©ô“}Œp‘×J·†‡éý%†ì²11{%UOz@‚×í|#¹Áˆušíð»X\W<Û®cWqOîç;~3À{ÎHz®÷ÑãHpññ©XTå †#­êÌ¿3&4û¼fYZFÚݲ¿mÛª–¶£"©êó›·“:.I÷¤±•‘›©é|!÷¹iŽ"¾ür½œ‰•ÖQªÕ§ Yù$F4·Q4Ò’ì*Jö•³E¼ç€rßWÂØl«€’©­-C4j%:¼” +|LÆiÌ"yGÚ<2– nÞI]HPLü ¸è; iû5nrþÎùìXí:¯aœÂ?°H<èy¼Úžú°É6 ”Huè¼™×lryz¼tÍS±G®D±Œí.ɧó¿YLZnÌŒª 99(϶­l$áò QìvE¤¥S|Éé”±ªŠ¥æ–‘W–XY•kÒ¿N3¢*ß•š±*^?3¾^/±½i¤ê•ÒKR¦xTªÈ—êc°…•°åå$ä+ã,òÝEäóª½ã¤ŒpÁâ†^ášù½í®Ø?CÿjÌ—%é0O 69䳸tÐ=«†ïh˜b€ßÄM†âfž9Ì4ZH×+ØÆMì¸gH/0ÊÃDɈ†´×BÙUÙá„Õû¼A`Ü’Lv¨7ºÔ ³Y)ãÙæ¬÷_”ù0öÜn®š>çr)êi£å8q›áúÄl¯}t'F¤°Ë˜$Þ ãnŒh–£cëõº€mÔP÷ßUmv÷âÄ›ÓåUú6K÷KÐ`šàðOY÷jna¦›Û"Œ~¿|±ÜµÚ"7ÍG+iŸèÿÒÔ*}’e)þnSâ*ªI«—ÆXè4÷‡Ô—v‘/#bsîlåCŒ¾ø³äÒüÚL±ˆèÚ™­Â3ìV‘îY¶·SÁøjšÍ•g¤ðYqªð5mZ<î—@ZÞŸ +‰c +µÉ>;E»MVí{ˆˆÝÖ‘•¼×Ëð~æ³n­²µR¹Õmìåðs¶ñö:+HȤ}ÉÙIæ6yɤíß'†%hÁÄV6!ÅðÄ_7–Ià“¿è|™]p¡XÍQ4ý aav7Ä C‰ô’ôno>]í;hqƒß¡-&³,f•îôe”¡qfYo}Wtó,U3Œ”¶1ýH²­¥"Ü9qKY˜ºIÖ¤LpV²"Óá²VKB¢ˆdkøÉ|4è<œͧNwÿ?ÚÁë²)(óF³N5+öÁS½A²£Õ[D‡oÓü®DÃŒýüa£°«ÜÒÀoß_æcâÇ*€¡^“2Ó¨´ñžy2 ‘¤{’b>çðøúþ7`­žÛ´õôç‰Úa’´)Æö‰ ìnØø£|¼Ç Þ ö p=÷gt¼UG^†¶ƒ7ZÔ{©}@¨ôtü +º°-éâ(5ÂEÒºEšwR\ϨšÂx<á!QÎë9N½øî5Ja«IÓ¶duÓ”ƒ¤JûUR"¯óBÚ§)`ìõc/j} *pQ•V‰¡å¼€:Ø'í—‰`À8SuÃÝ,ïP úÊÜ+ï¦4h DuM4ÎBŒä¡n†3ù{ÊgrÈÀ‹ñÆ2ötPÏÕÖ¥¶9Èl<æQ¨ ã‡y/•V…ºƒrÐ @(­ \ ëç½lqç‰Éý»}ù– ,U‡\Ÿ?Á>‘¤Ÿ‹úÒ:M¸èšÊCŒ?R´–Êm÷’ +¥V~[)Ô´ fêM4¨¾€«o´4¯P9›dPYHw8Ø-å<µJÞ6ù·²)Z ´0}ïÖè™IÙ b¦^=)Wª×8­§þ:;ºf?ŒZ$¹:@áëîÏx!9Ì`lip¼ ž õÚ3ŠÈt#žrЏÎVîÜp–]0T õGOn!d¢9U§®°cNŒ –ÃênQÃq|c3^>J:üdÜŸÆ+ Œ-\Тü%±]ðKÙŠ­ÞWÂtÚÅ&—>ðÞ²×ó?áü\F$à“x:ãˆD[3À¶Qbã¾ÓeB<«¯ FÝ’ýC_çÅìn%­h•V+6ifÂ1Ùê<ˆÄXŽeBç+ÅZN` 2jwaQ·±cXÞ@á °²‘nH±zѱÄàüSëí­È7vü7@uË3˜-“)ü1ô˼?×ât¡åH R®$†¾è‘›ùâÞ½iħc¶²Æ˜˜Ï&½./€p]ÐëáÎf¿.e5A÷P(EÏ3$ã% ^û"MÖBfc¶¿VRhý õ]ë ¢´µÇ ÷ù ÿIógSm~5ÄÃͼF;©^®«È“ùW=7Ì™ ˜¤ó¥X9_=ç +Lø:äUE0@¾ø?uËÏöpReI@^BõQ¶9ûpaá¸bdÛàFƒq¶÷÷}º ÿÔíìñ‡··àC}"‹`•¿Š]O6 AWCV¡Û¬WǘÏ\t6PÈõÝÔïö:»“ ÷ØÜþº·{Uº}¹Eáøüã`¨§}5ô¡ù¶Åm½¡ŒwÒÝtšØ`€ùnìiÏl)†w«\ÎM«+‚§á}·ˆÜ…ðú@½_¸_Э+Z3Û#âƒä0©ûµ5äGz¨:9àÿ&áã/œ¯¶GøÕðf ’tEÖ-ž XµP~”YKSQ­±Mw)ìLÄÓŽ÷Ä9‹OÅf¡98qFÖX0µTˆŽ3zäN®]ˆwBV·Á×5g¾Å3wµ°h`Žf ,ÆÑs½1A3g2í=y#ë +†óºÏ¨ñ1>¼¦ÏÇ +_xäZÜN˜Ú¡“Îõû4¾€wI9Ï*V=å¼\ÿ€€~÷ ò±äNp¾.®-T°{œü΂ãß:Ž„±â÷±{ÿç¢ z©Â­ÄJvf%ÁRåVòxh±ØÿFJ¦Á¡°jÀQ¸"„d¿HÌÏ6‚ +X¿J݃þ^¨+b:ë GÅ€YKÒê:œýdßÊ;Ø÷³©ãPÎ \âSn#8ô^TÞ“  …ïq¾V²Üma¼àÌá‡8þŠúùWÓ~{ —æza=Ù :N®ñH»|tr"Ã-}óªŒË™ öÁ±ÈF”çèHèS~ÈÂަ׳WmJE°ÅÒ0Сø +þ˜zB„Út50œ¡?hZà ÔID§(·Œ8]ñ®ð]Æ„w‚22ÅÃ`óà(\^ü}ÑÉM¥@¼¼›-„ÅyâêYÖ³ zýí¦ÄÑ +ãUÌi +0¡ ;W^8†dº´)2Ÿ¢Ò™ Ð‚!Ó¶¤¢…·Ûõ§l¸íŒ~úú!Ô–tfbŽ›ˆ‡Ã¡^¥¿ÊÍ$PV1*ŽâIÄà*éÛ øúˆŒ¤É¬‚’å}]•dÉH}à*ùÊË/öwU'z^ÇÚSüµÃÞò9õF2g0JÿÞĪj@o£bH0èŽV Úl™ 2q¸±åõóZ–?¢¶Úæh{ÌcÞÅ]ëY‘ôpëF=K¾r®CV›CâJpz¬¶Áo.Ä"«íÚ)¿![Tˆ¸U(Ô¯WzÇ}Ib˜\]2dZsí+aÞ/f}rúî<ÑÑÁFÖmÉNf÷ís4°ç0Xõ8½ž<.­ Õ­—å ß笪+ÍFb½6/Dú Ð6«ŒM¤ÊÖæ×Í{6x9fBή„ `ÑÏl¤ÞB +%Û‡´s’U%`Õg‹ŠGªýðUÀ«±$l£#+Àv"-¤fë=T(NÏùû¹÷§Ñ"$þH•bѽNŠX‚ÛV±ø:¤Z4|ah$|R ljéBøb_ËÕ¯OOßæ~ 6ÀéŽÌÈM/æ‹Æ¼xáGDîzŸG»÷ݫ̸Lò‹NJåcYúÔ³%·ÀÞ9»Ä,ì«V|tPKFFx…š¾È…Q4î-¦Å^t,v–5OÜ\Çä@Ý#Éî÷öãµYÉrE˜ÁMéÒš¶ðYVÛ(V5Ïfîb—¨ƒ,>b©|*,…÷øÍѲq§bÿ±¹<ìWÿZ@L™šlÏ$kùç™î5ÎÆRP`1pü¤@-·ó¨qz5qˆô% b'Z&ØìgÔkeFL8¯HŸ’fùÀuñ̘6¸V¶õhœŽœò鱣שׁIœÂˆÇL mõfºâˆó|®:gù‚qß=œ~»ò1¯ ]¤õ”¥ãÛ!Ðua)Æ3ÁÃä!ÚØé°ýsÜÄSJö0›Ý»óÔõ­òFx8‡¡ŠÝðQeòvyWzp³-wôóõ·ëÞœV„X°8rQú1,¤2*h$´¥ªžÔ‘–#‡„ ¿Ah¿ž")¯Gj¨n_bTƒ&¸í7À.Iâ!UßéÏ#òæÔðD¥åDv£›ñ?áìúÀÖÌÃŽ^ûiRY}D´Äª4jõo¦»ÖÁôéPg<Øô^œut6eÒ¯I<ô#ü‘µ¢gªDÄù:'†<^éa2.z‰Jy‰ +²žêਫ਼tÅf噈(¹ïîÆ^<ŸÀŠóÝH|JÞtFh¹ÆÙ…ðÿmB¼Úù-kÞŒ„·âÁƼ}¬8EÆÍ÷‚Š:Qä $}5ñ L+†s »ÍÂÚù‡«Ö—›Ÿã¿-a䀌å!~öËËÕñ!”0œh›‡`@}²®ÿ$™=ù NI_ñå0õºàæö2eUU—rJä,Ý©PçcÛ^ó4.èÏ +'ôN:/Ú¢°‰–dFá«§`‹=ý”ZªM)&^ËoQêò †=/·OF6‡6@è:×ÄR«—ÿô{:tb·ênyÊÌu¨ŸÕoþr.GèØ¡Œjj•Þô£8dº¨ü—ÿœÞ5Œ6wx×¢(by4ËÛñ¼Îaè!/⫊³ÊPýî%µc嘽VhR±V4 è´qon¼ÄT/¼b»fÑèÎ¥U ôQRÚ㽬µ,¿Zýqç ,AÛh-ø&³½ÆÄø7è…'jÞµ÷öÀŒ^×ã ¢'-•ã@ 2› MÐK*ÒŠ*¬úú·«}äv5ÿ ]]”Õ€Ô%< Ë[ØûRÄú’¨|v•À;Ö¤elY åÞÛ™S^Ž7¤i×µœÄ¢ûôêé»&h~)*2M•ÃÆU_uü¶Pˆ‹8e§“Ž?ei†¶1¡—~ßIA;׋4Æ*ÐßÿR“Œùy#€…³Ú8pCÚG]Å´¶‹ªn¬JZöž'¨š!–™ÖÍQ$. âä” ú›h¼ åd‘ñlœÑ4$ž€ÒÐʼ|dw±uü›e¸q„–óˆC¢þ—.›@Æù2PÌž˜¾bñ™ ÷ÝËÆ&¥œ.- UDxdÛF\½Óҵ´±aKÌ“•§©ÑHMžÐÛÄZ‘Vð{ñèãÝ ©emÛô؇WyOªäÜZg{R9º!TäýòñUwX¥l¹ ÃØŠ+,f¬â’Lk`&¨«ŒÆ/|F¼¤Šlgûh{Ø"¼QÍôÎ + ëk—àUUF0ìÏCß×åå°;€Ò‘ôçòëÔAIÁZvcˆ¸3ù»´>WÕý¶[éq.‘U îÕ8@¸ÈW>9~ Tò±‡ŸfDqŒ:ðêõ¾òh–n´]*Òph9OaTð͛Ըè`(åÔª^´>©i©h)­£É{šè•Ýá"c¯Ðg=OñöúÌßîcÃÓ×[á’j-UÓD¸+ŠT.O5ŒAü@”¡U Wv‘*2tBqùH¶Üƒ-gÐU¾Õ"K6`Ž~W_™ª Òs&ÙÙ®ŸóVÅå¿L,ÿc–€±;ç]‹óºÉaÅØNÞÏȉ­ÕXçúYjÞ³,ú¥HëíŠpç†|’ÊLJä Áœ¦(„éœ}•‡£Ä€,5oЧxlóQÅòˆÀ[ÁAÞƒ*¤µj¥°_‚ŠÙ`.GëZ@ÌPìF1§!e­ïÙïðG͉qÇ'‡ý… »ýóOœ³ÛˆÝÑ¢)°ãìäsieÎ=F=IfD€ŸlSŽºn.ÒfŽ4|»BŽ«vÍü‰Ó;{ˆ·gäØÐ¢GÑ×Fwc—¢½Ÿ¯¼ÁÝs#`æwªîB3NUüâžOì¸Ó DZa˜\R÷/Ë}bÐj¶SøùŲ‡³i=›Î§0d­ =a„¦¾Egyô~ˆAîo§a/Á©žíoáàìÉÆ´în©N[ì8''S¬<5„PrB¬aR†ä¬×3Ìt?!׌™û íkÔÜbèæ0Ž*,¬&¯ï;Nõï#•Oæ¶jweY «nÃLƒâ ¤íKž¤B‘œªrÁï†V#BTnØI¢k •àúß$8t.À.hÑŽóÅA»I²-•ÖÜ(7EºëB%ʆëh£KìŒîÈÓÃ{ðyœ'òvù¾Mé¾~Grw̲ςñ)UðÒB&ëøZ‡ô}¬#™°Ôçp,öEt¥à!`ý®Œã+îA¥ULh­c0Lc“›ÃG¸õ$§.X?¦‘q•iíÑ! , +mÁ|ñ«á%¦¢í×êlÎöÒ¥ |Ÿ±…wÔ§”'Ôì«Í°}(ŒCgœŽ›²oa-†(ø¥b °õ›=¥±Æ„M´¥“Åj­ÏòiÍ{ ‹ýÜm¥ÄØG“SðÔp,öã;å¼±îÑ2&õrJ>+&‘{¡ Vˆ]ûý4Âó4ÞN_¨mµd¡²î›4"7™úüÿ¶ÿõŸ +ÈÈÙC^²…ó6+sœŠ®êCÈ(Jyï™*3ú_ûÞ‰u÷ã,ˆ7IË"·¦¡ +Ð¥hö躿Ç_1ú ¡. à +oîâbAÈÁ€„Äð-ÆÅ±FãL’ª¬ÔF! ‘ûßM§ÎøŠLúNEètb-ä2í±_4ªõ•Jƶ,nŒä*Ø©±,ÁüK‰H•ùèÎkù)½`å?^¸W¨eA²nÊá…|hÐMׂïË;~†Û:²úEš¼ìÙ&ÛñðEzB“l{3)1‘cŠÏèyøÉÆ{¥7™ÓCøOaGb¹lý\=#–h¹¡‘FmQ÷¨‡ Ï ]èr€ n½Î  ;‚ì3ß÷G¼Ž•bKI’·…Ò=²²¾ Ü&Dz½aâíK[ÅE—½%'9oe¸•u Û8WhE®Ã‹RV«ÿöß±GûÑäÖG»® U#ˆ‡¬1øÙ‹šŸàm` YO’Â50–‚Í>ƒÌL€ÝŽ}µÕ1¾¦cžxeßⲦõa©Zµépu*%}tH-ÂSFÿ7¸C¸pÿ“ÐÙP˜i MH™é» ¶¹Z·ŠÅ7‹Y ˆ=‚)]õaÛ¯%#CòçÂ$ÝËüék³îÞÃSG .dá¶t1³^ùIœÈ«J{ÚÒø$è-€0KøaìÚ)ç›wd!ˆ(è°dÍø”ÇÓ×¹ì"vU£D@ö’Ù㊅·úäò¿ò+©§~4ž=š3®†~ᯚ0°/[›²…Yþ΄ÖðÞ |€9çMæ>Xϖ𓪨dÓ‘¦[&¡Z0°÷Rf<qŠAë±s¼ïįît÷SÿœXPîÕ°Ã]Ï$¸G‰§ßÃLO¯²†®9{Å/»+-Cr¡´÷߃ SŸÁ¬óK$ÏGÑq‡G÷Ûô™yÐíýe¼{ŽÜ=ùËÕu¹þ$ði‡uöC{ÜéÏ’²‰è¾&Šº‘±k>„ÿJ)œÌp2U~Jj1µêåƒ`oÑ7ݤø{5kü¤Kðm8ûþ&³`®‰›¤Ëœt‡wзæÖœS'ó¬ÃD?ˆôºÇØê“»ºd‰þ‘§ù[S»â‚5LÞ1DÌiôùÆð‰Ç/¥;?îþí¤*„´Ç«-«‚R%e>:X13—ñF0Å>ÛðuȦ ¹Á†Òh±|¯#¬ý]¥t¿Ýù`¤.¼ÖÝÄËf€§O`ë02wè`ä¦8D¾ÛOJIånÀ¹0ååAhdoc•Å¢{Ìlf´0™Œ¾ÏîHLþ«Ä† pƒ;’x ƒ†c;ÜVe€ŒI¸Hv– +)sÏç†sMä6ckIû¬büú ½hÓü*sçºõ†Êì¯eˆÒc¨p)%ΘQöÀ7Ðä'0pk>ÖF—rndh̬Ψ÷Îü=«¤DøHm¢¢äûwÚÄ”¢ÜkÜïyÉíM1ÿa„Tâ’Uè„jMk*£Ô8h¡-vYÓ(sqL)£IrÚžûbç…è€þ´ö/Éí.|g~’ ÚtPýŸ}Ýc6tÒ¾¦bèù5ÚÈS(-ìj†j)Ä:€ +uС/òˆ Óñ*I )dÇóº{¢¹Üf“f + ÉJÜ•vzA˜¢¨@ÉABb—¾£>‰Œ‚·:—SC —$rÚ½8è¬ÚæÌaˆÒi{ZÔÿ‹wßÀ W‹÷P¦gÍ÷˜Zo¨žü5cOè…&¤r[ómR,òí”°p)%ßµ í¦f÷="3r×â´x²Ku?6¸¨ƒ\©3^,™k\)Q˜`ßðɺ“µ¿ ó7âü‘ySŒücµAAn’ÿ/RïŸ8AŸ3ÐÉLFõ£ veu®ªIy®I¶B3h‚®ÈâQ 9EÛÜ +4Ú=1Í$ÎëÛEv4®!d~³ùê:. ¡ë‚ÏžF—ù6ÿHXm±ŸîÔõäŒur²¹meÁ M¥FrfÜZcò×…éé¢å¸)þTW8(ÍÇ +Á²cÑŽ-Û›©ÓŒ“O?n‚œVcä|R×3"Mpv+ ®ÛÙ?›_ƒvH_ 8ª)nëV!ã’|m17¹±#ªW©Úc‹þRÓûÅDöص«á\#}Ì'œBßÐq]–°\™3ü-ëômdþÍñ¶«32&¡å+S`>AwSÆ4Õ^ê'%—¸FÅ%x2ä½@ –”Ü(õ·„Ã_ý‡:y¬&ïlÄ9Ö›W#ü`›«ä彿ã¢Ä9|‡il{è ôÈæ&ò´’ëäi£Á¿ÆÍ²öø·/ãzâ"åyTH³ƒ›‚“- Ž…¾Ý^È‘u p'>)x– ó) +X(Âô;•ŒN­âú8Çž…'´Û=Ý~ò9Ú"‘qH‚¼QŠûc‡¤t{º‡ ‚v ˆ"K¶£ÏF=oy0:¾vxè9f)®×IŽ@&R't.%¼ƒ´m ![ëò‚=+Èév3A±[éV!3;yuß. ²0.Á„ºÒ9P²ŒGÿõk£kë³»Õ‰??û"EgC„1\kâ×™¾†Ìº`²l6‡B†0#»WT(ÏRy¬T`Ÿy쇉~ ÜH>ä˜ø×%s]@ÛRo—tG³à {]Äö7*)ñ³:×Â>Š,À‹F¼KSAœªˆ«Iǽú°ä¹ýeóxÔ…ÂÕ›ó0‘o)i,GøÁ‰Dyúì?ʃ:u‹O‚À°x„ø¾WœËŽ?üáp½¶î×àÂ^'ïTž¶‰ »‘$ÍUïÆÝp33«ØLŽ'/t¿T<[Á. ØÐѼ±¦,oÚ(ØeW¿5iŒÝ“EW™‚>£'¶T~¡<̳~žÌ•1P%áßYG°7`ÉÜ®Úþ`Ñ<ådé_˜žžÚÆ\:–Þ4!æ×}Û'îcŸŸN”ûÖn|Í_I¤<üeP^y¯Ùâ )Ø@Á޼¸þT y²òÜfNV”ê°îÔ †L,'|tvä&VޝÃOë»›_´sÍJco³ÇÙ|ƒ%À|ÉŸ~ 7…YWC-JîÏu q©r°f*Uúa…ô +pïÅibˆ|ÛŸ _øf4ä ËªÕ\[îµMµ eÉ;µ.Ð+®àgýHc8Äá˜,¬f–J»B^nÍÙoûmVzïg±ÆFJ tÒRëôõ=þG ¹Ö0'¦üÛ.CÞ\鈻õ©ã›¼Ô?[Ét]º «Ëä$rÖ“¾øÙʧA0Ê==#~à øæ7Wiii!Ùô)€ÀÚ$ž³  E’×ôÛãĹ-l®0#Ém¼ov\S“=“#âi¾Ç¯*9ŹÞ!ÙIö–O §h28õduyx¡<7·ßÕ¡L%Yš>–œDìʰT}êš×‹3-4QŽjfŸg‘=Ñ寍†á×=!u«d³ lÄCïUÞ‚Uˆ\ŦŒ ž©F8D9Ó¡c쥳 3}Ãe_K—¾¨ øŠ¹LÖN-ËÒ)hÇÎþ9}p/D&$H8æ ÑÖvÓ e4ã˜@æHXR“ØN¶Oãì[Ýg]4-$õŠ&TbÆÀ5¤û´J¾6¡O¤I¬Ì<-ÖÚ‘‹W=ʼnï3³NØDšLïEùÌÐí%È?èãÊ}JË ÞÞÑÖâ1ëÅo÷M.ˆé»1~gWÊ4*Š|©ú×O_ެÖýŒ§Sf-áyzJîÔO±8ÛÖ܆ØÙ$ÉØ‡Á_m©’E:µîñÀÁÞ9þƒÛÁ kª]~‡%h.yDò[§Lk˜b\ÖBM½“£6³üôZøµH+BÓ<“^qî +2k€j/º¬C +9ý-ÖQe{zÍñà"WŒd{J¶™úž¤g£q§HD*ð”®Ø„`>ÁìààjÓžÅ;…‚’¸ˆø=Iϰ]¿«flCÇ6-¾”7.­üq{ÃÈžãDwd,Òê0?ÕÕÃÝ?϶¤=»ãMå¦SI2ð"øÃ-79Íß,!}ÎèGyz¯ýíŸ_ÞeÀf7¿®ò}åG¼¼êC1·wCQ9•ýPíÿ+g3rÑðF×i°VñµDhîs¯I}5ÏQœ‹¯= +YeèÑ9D^$“© ¼èÔ2e) iŸ²ßXŸøDuÑÃvC©ÎK•õ‘¹¶?Áä¸3ªÐŽå,±Æ#¾²ZÁŠu·A•¶i˜p0üɯ³'Ü +šO¿²¾ml}² - @ˆžÓ3ô7#_]¿àOƒ&‘79)/`÷!·y.Ê`¯7àÇÐK²P–³£w‹’jÉÍA>B¼Ë ‹hŸîs.©µIP=ò„¾8˜’ßKoýß0ÖJ¥h5·Ï= Z'j¹{ì¨Y0¦ã&œAU<öä W|Òbý9ØiSëžÀöFBI§h­ø$Z­Q3†ƒ†~ª¹WT^'Õìmæ)>øXåH–V–ˆ© ]ìŸzwYíbÁ–å!‡‰ÃÁ¬Æر9™ -ÇæŽ‚D@ÑלìMØV$Øáe8W l¿®±(•ZBJI!sªrq¤ˆµ¢ÄLÚ&?prŸSŽŒƒ'w´ä§¨¼á7K’ªª'2ûehjºåèÜ&óÖO½±aÐÇx§Å€ZÕqš€M2z[îi2±Å>£5HåÄ…*_íÆ))›…oú+·…!,H|^/Þ°i4ÌÈ!éß·ßà€\îK_ ’"1N°~ÐÄçOLd5Âü’zŸIÌñ¸ö8ù]ÎöS{÷ÙÌl»¨èœyìuóÿ«Ù½Lõ‘ŠŠðêK[ ù] +†´`h®M¢G}sxHU_lª‰ÚÂÓ†JDƧí-ÜÜâØ›Ï—> +stream +xÚŒ¶Tœß²=ˆ»»†ÆÝÝÝÝÝiœÆÝÝ݃CðàîÜBðàÜ&¿{ï{oÞf­™ÕkuŸS»ªNÕ©½¿¯)IUÔE-Í€RŽ 7FV&>€¸¢7€……‰…… ’RÃÆÍøo+¥ÐÅÕÆÄ÷ÃÅ]€¦nm¦nÝA9w{+;€•‹•›…ÀÆÂÂû_ŽŽ.| S €"@ÎtE wtòv±±²vû{Ê-4æ´V^^n†…D€.6æ¦ €¢©›5Ðáï‰æ¦öuGs ›÷ÿJA#`íææÄÇÌìééÉdêàÊäèb%DËð´q³¨].@ À?í”L€ÿjŒ  amãúo³º£¥›§© ð×`oc¹þ pY]ϨË*”€ ;+üÛ🫰2±þwºÿDÿ“Èô¯`SssG'S· È +`ic(K)0¹y¹1LAÿ8šÚ»:þ7õ0µ±75ûëð¯ÂMR¢ªÓ¿ýý§;Ws'7W&Wû:dþ'ÍßK–Yˆ;:8An®ÿÔ'aã4ÿ{ëÞÌÿ«ÈÑäûïµ¥ ÈÂòŸ,ܘ5A6Îî@Y‰ÿxü5!üÍ +èàdaaáæe@/skæ’kx;ÿ²þcþ[¿¿¯“£Àòo @Kàß_WS ÀÍÅèïûþ÷•`acî0ZÙ€þ'û_3Ðòßû¿“w±ñè³ü%+€åŸÏ¯ ÿrËÂdïý?îÿ.³¨º˜’¦ý¿þoHLÌÑ àËÈÆ `dãd°²²±¸ÿ.üÿwS›ÿTÁò?±² KGï¿‹ý{KÿU°Ç¦OóaÐþw.%Ç¿Œhþ‡à,œ,æ¿XÿÓü_!ÿoìþ'ËÿÁÿÏz¤Üííÿ…Òüÿ?PS{ïÿàùêîö—ûŠŽú?]µÿ–«"ÐÂÆÝáÿDeÝLÿj@deÿß—hã*eã´P±q3·þ7Uþm×üG`ö6  Š£«Í?#+ ËÿýU•¹Ý߇†ë_>þ þÍÿ>RdîhñºØ8¹¦..¦ÞGüwÇ ðeý+C  ×¿ `f9ºý ümÏ`éè‚ðÏÄöIƒtTíZÆ·Ãw†êÀZ'Îã7–û‚±@´ ß%â*ŒÖF²¾·oÜâOÍÙØ»\ÑAr䤂‚÷Ôi$W.±k$Bk$Òwøµ¤ÌÈ$ªÈR(ŠÍ#–Ì_éŠlbiòÉHm* +äƒ81…FJÞà-R䌪[ ñ¡®f CŒŠ|Žpq ~ÒÂß´ÐGÙYW.@Ø*{÷üv>ƒ€¿²£bH=4Êžú2ÿB– +~(›YÔŽJ¥ÍOÍXŒ%Áì'˜!†,ƒ·Ê8ŒI79׫iKb¾KTÇ@FÌ ›No 4÷ƒÝO;бrìM¾H~_$˜¨m4°á±º>õÖ«¢Ú¼„wrÐJ%?cz´O<| RAÒº8¨ÀYIêw²±Kn7±½\¼Ú7éÏi¬Ö¤u„»øÓ¢}…h+¦d;°Þߪ2®·ÓYöÓÔ˜âò­yÜ]Â+b…=Aî!S _OÝÒÛé8¿Âkp»¬sgk^éY࣠Žu…ðçn‘ÎŽ]:7î‚lN‡%áÛ±ÿB  +õúFö'me6…,å̧óvŠŠ,y£"Fêì±–—Ý Ê ×È™Èf÷¯õ\L½-9.ë ËšÝ5Akѵú­™)>´>ò$G³%ÎM,`¯Á;ÉjÑ9ø`Ñ1Kêø1ô½¹J˜ïA±%˜àÖS«kÌŸ é¯Ô¾C¬Ëý"3Þ:.½éµÊzI’ãL³I¿OSi(*z˜Ù´úÛqiÛ{ òþüݧٺ:w¸ìÄ·ìć…Æ RK`cÁ3ÙŒnÓPp¸cØWÅLPH™ +Aö‘_Q$vh ™.m(ͽz[§7:i_òmêFp”œüö"©ò :;×i“õ…¿Õn.ø;ö²(äµ&>XÕwÊ9švwIêY´`t’ŠôŒµ2\ºâ‘Fy7ÏÁÀX¼î^è*fV‹Þ;ËNhr:d ¢çÅWÁ51VÀyIž_(îgÅã$Ó±;vïÔf…èþ¢gñ¥Wbzyo šŠ¢, n••{%B°4œŠ'su…Ô²…°Âû²¿J¾­ÙÖžBpÜÿÒSš`C«»— ó îþ¿Ãùv|AžÑ\Å[EÀ‡Ð % +MûUÅ‘;Êÿ·Q‹ƒ;¡ÔEîÊ(ÛKLQÚ÷z¯®A-#y{H’­DïÇÚod’¥<¨ÒhOE‡#ûÃmýbQ¶=(GÝ1CêY&IF¨Ÿ__éK ó)LGt¨UÄmÓÖ¤aEô¼ºøf¯U­Ë3séY—(¨˧D2‡VË–o¨Cô‚UèÞ—ŸÁn“S¹†©ì'ˆÙšþsޝE"qð·ú(Ò†^%cœ¼_[ýmœÊMï`_ ŸÈ&úk˜#ðèÆ†ùóÀtßbtã¨uË"㙫ä2.ª~F‚K—½è†™ô'¡ýjT*8éa—R?®œ +”ì1Z ç`^òï¡,1z—_bIæGëù…ìá9™Û¤ÍßùX|Ýñ¾ ω~]·õ÷uf×6«¤ÎÛ yÇÄÓ-³±,i«'ªïƒ¹c<ƒ­ #½CœeêÔ·¦G%Ú$ƒš÷'W{Ú× +G³hOS}[\ë B‚CÒûÜÑí¤­•ÆHV`D^O·iˆ2“\‘½ º^¸°SW‰ Ì^#ƒ©1èþÀµRCV•púD ;|sóë³Iº²Y£|s$¢Î˜–Ô¼”8ð;í¶i°À<1s:ìÙYŸÑª û +Öw $Ábð›\>!š·à²ïÞϧÝν7à ¶ÏQ…žÀ}Ë?L3ëÚÔúªô%²«™2.Üæeѳð$z.À'£ ƒã-G^Ž´þÔ.¦VoÚrk™›Ž÷ßÞ“1ú’Ÿ/œã–2¿`#<ð™)g®ë_Ó¢_ÈÔtÃþÕX“<íJþ,Ô´*°kq.SÀj«>\š ³ý¾Ð‰n²$GDÝ+²ÆçÀÄÁìœIYåd b&D6°<9p—3ÿ’Ùƒ"_ppõÕ:-ÞÃËÐ"éüˆŽÌåâ)£­/Žß€ç’Ó=àâ@Ÿ„^Z<ˆï®QŠžL an ð4R/Ë?SÔMD}Öïìa¶Àa^°¾JkSF»Pen›ýÆï¢ÐÉ!›…¬«´WÓ‚û¨u¹L_K'ÿ2©Ì­§Nj¢×ße±Õ»C7 °¤Ïr­¥gn‘{,ôɇä>\Zq[5à—`‚Êä¥Ä¬=Øþº†Ó¨î'¹½$ü(cóMÕ<¾‹-0ÛÔ“½Š-¾ÅÀLu~a4Úñ¤'¯Žæ<À6B-gËŠÜðBÛ¹%÷R¯½"y¯+èëÀ$ha¡P2ïøÒ›,?î´Ñ–œ~twtÌ {É7u:-Ð;ý¨*Ýp®Uù©Œ`ÝS˜â§õzûê¨ó{“5Ô³ø~”ËÒÒâØ{h¡%G!Rëwû¥'7‘îOAoŽ·çÎ;:’|ê,éMñ" +Kíñ)û¤³T&“T­1±ŽhF‘”ÿC,§¶˜·šœ¶Ð¯6åtçC¨òò@çúÐ’8B²|@ø‡‹ìxÀøoŠr!×CØÍóûh–z]‘Šçα +ΗÊc´6_Ùž„!Ì)oè£FÇ9ñæ³PQ6Á~±gá‹’î2µ(ôz„+ãq†€Ö×Gg&I?Èqj6Sƒ‹ßFX'ÆlŠ#tãÎßí˜ßÿ‰ñkí³Ma–5à”*UÁBoÚÿŽ-Bû6锣ÏâU…àÕ,LW¹wÅÈ5ØzJÌâ±ò^Éis+|‚Ó´ü쳓9æq Ä=gŽÃ…1† ¯>™ß#ÅDê ‹`µ²2´ý4»†nuÏ€o}ÝÕ²pÔè0®–¤ˆ(Ìc(艟›ýAÙF›IL£-'wÿ–olÃÓ £9ÀŒøÂ|~ñŽÔkncEù~÷”nÈÝš¹:O?ìCDãŠ~85øBnRå¨hÒ.»½Ÿ"-ƒo>²-¯6Hc‰ތĊ*¼›~"D«+K(®‡NY•æŠEëôsöqÓëêáSFWBmÙ:Lá":.r}·²RAŠáσÈz[Ò×Ñ!{Æ]J/Ìím÷£ +ý™…Qܦ…ÓœóøcÑf‚»ŽOó 8íæñ¹Ñ¦‡.*ºÎ­mĘƒ–„Ø+ìšÀ²|U.ÛXw´‹hÒää2·À]rÉ?¡“Kïí<ÂA¨"s'蟕—Ca_wÛßút/2qû¹4Y"G¯MzWuVÇ!|ʾÂ#­+FT|ü~…AW¿*v2[š\èû4›õzÁcc`Ý*Ñ ’S»w§‚g–ˆ'¯öΤúM¾ú‘{ ;Ù]`tÌÃËñQžÑÕÈ7<´ù5ÊüòãÏ+@ߨ¥,RÆtLü‹M‘o ?øÎ·J Ø0“òÈs~‘&mñÉG»h6]™m´´$iŠS¹Õáû_©™Ê-BòôÁÈDôRë·Lˆ”ò¿Ï‹?—µ×PQÖN6µõ ‘ÒÝ͉TÑŠ_Õ°Ê’Ž4¾±æ·|l]º‡>ädœÇÄñKÍ}‘^*¿¦~ï%æk©,±À>ÃщœùÉvßNW”x93á±ÂE¾uºÚ”)Q˜9eýtjÐ4»g!O®”‘:½zn¢ý ®‹›X76ÇP>YT2Œ32¨QFÍÓ5î”þÍàš^Î Ì;,#úÅ ÷‹zIÜL–·ì#DEa7RÍŠ¹é:”±ãE»òÝ «Õt‘Ô༟dκ¼ãn:SÝ rÛÞ]o]±ÊC¼Ñ¸øƒY#Âq‡Q›Ý7ì3c§²Upd`Éói.ÎudPm‡1ƒ8Ê›µ®~sÃR`’–ãܢ‚$i³o@ +&n5óìJÿüª×da›}Ñ£ÿ)Ž?Ô7ãŒ/€,ûÔæ×ãªùæé4žŒÕNÖõº ó䎲£™/•«qÂóqs¬õºÁÎ%®•žµR0,?lS+y³¨4—˜p+ÉÈ(3Æ'Ј‹ª òíŽ>Ú¸òl6eU´|@¦làB#õ€6,ÕdrÒ™^ëXsÂDùÏÛæÆ`Zi¾^î »’’±ø½xÍÖsáí úëê4ç!â”ÛN±ÃôÚ™ýä‘»f…¹VÌ#óȤ§+";CÆLƒ´ùÊá/BÇî!7üˆwNÑy0¢D<úzúSIl¤±TÖ1Èí‡KaqÑ+³lx/jVà×niЯªÂQ´½©Š”‰D‚a¬>ö®Þcr#í÷D§2ýHÏ“öi:šj².}ªj÷b¾q:È<—¯îŒÓð1‚Y-d.âb W«E‡°«Üi«…§YPce•¤Ïš€YãLµ)â­·Ïjä.!=Fãßÿ8Ÿ>³y¿Ö™¥8R“Ž/";¸¾;6T|ǽyþ¶ˆRKlùkÚ85I÷t€EG¦’’£ž^q]ÒÍó07»Gãÿlt;¼Öm VònäežÌò¥¯ðÍ2›½MgªøZk‘(‹Éºo[¶g€ƒ†iݯ9o _*>9\™˜&«¢ºô_dM{¨43S±Ž³W%/„ÈÒâVf¼‡Lg¢\ÇÇÙ­x–ÿuÏ?Ùïé@O©Ksô1á””| Yõgªx}F¾lBGÀ¡#á#"À/*f—Bž4êçÅ›Ûu¾ÈûmöÆ×T%©Å W—ÙÝa%QøÍ’שÂ'‰‘ËMsf Ï +âZÓ‘´Eñ1Jl ¨Ü6%¼Àú\@…ý¦1Ûäyšv‹mU—…¢òPÉ>XÌúº°’pl¨g qV°Ø¼Š75ÆüÖrÜÌ/ñL$“»EW²ëu`õ<í–HÕŒ«3Û”kù¥ÊÁ bZ)P¸2•뺸ôýNrþê[ãN½røìãºáï¦Å®HƒP-tꪺ +b*Æú!2ÚPbêV–‡“«^¢BôŠ„3}¯©uÈDf(o§=„dBÄv¡|¯ Œ•Ñ÷¹I'£á^‘lrwÏ9Ž=34h:ÿ*§šÁp¥dß.Ë»BÉ (K¥Âm+”"&b ²‘–P ¼Šï.ˆ»è+®.œøqêŒCšXãh¸Æ^_!¶?M¦¤ÈQ¶ú’|gÀ47+4K]t$sŽ òCóëeŒv”“U‚‹¥(ž–Á’®Ò]L8¥W©‡}Ù_¿_º®¦Î ,Ç#Œ•©ŠD‚¬^òÂÇ'¡°^^ç´æe#ºÎNÍ‘í¥.:cékü˜­u•ŸMt¯­Ô]ŸxæmLsH“¢57wü&·KÚŠ +û³Ô$Š ?ZÏÛ†ûÞ¼úaÖ%w€öTJ +E`jÁWšÔß4Ó‰8?~¡âýaÜ_!}ѹ˜^â'jz0¹V%CÜL_!~ª¦ d(«¶9ÉH©Ÿv#^b~£©ßâàu4_€á|še2|}ËPLžž§œCÌÕ”bcòv¼ ¿‚;_ ¢¶hº"oÊ_²î)› +]{â:—wsÅ´§ê‡`þ ú±Ÿ?˜eõH^ø´M¤|/z“J¼€º´H +ß<‡Ô%â%*_Lê‚*yLΣgEÛ|õþb¹÷’J&IQ±…,Šiõ Š+™û%k»èÑV2)ûCÎðáì\ŽÊ½¡f2”Sœw‚ÿYbüsក"›Û7²´rèµ”n³l”á6ZNîÆjnZÍLrž„ r_” +!ƒ½¹ØÄåPë· –»“uŠyÞ4ê&Rý.S'%‹ë]‰§6óŠN‰zékÇ 7ãÜ +Ù&†˜±z:3=Z|™ï[Ãtp“•ÍðQ)$AÆÊo€^l)Ö ¬Þü>à +U9ÆØÈû¸›PAèZï–óÕaF-ç©n+2ªçÏštr;ñŸÕ†Löþ°1¦ %£¤f- /±ßQÜàÒЭ7¢U•ÖË–Ù=ó1´Ñ–á…#Äô|÷(*µë|ú7*ÊŸþ±¼P¯“z¯ž˜¦5KgæH¦&•—o;*Ô‡ÛÊêKR£ßJp;rÓÓd¬ +HçýU»Ô”î4ƒËnĪþ3ýEAì,û…ø¶\]IØ›!l=¿#;Ó÷àãŒØt ´cgÌ3 À±¾ê©ÚÌß»“¡ÂlºåLí±R¥‡ÉéxVnáX«Yiͳï+¼·¸oT¾U’F}_%”VYWò$ð¼RÛ°óÚ{ÛÈn´é+öw‡MÁÒÀb%4ê.ªO¯»“j~£Ìïspmù˜œšóʽÉ&V߯­šš™ ô[HBï*t¿Žpéà,øeñœ§Ú}ßš\S›»û•=» ]›£ô4;Õ)·`ôƒ¹óa£Ó7Jz»zÚžs 6_Õkî ‚‡M­V™RóEŒHìr¢,üV…Ã×§™´á¸ŸL‡ì<~òÌwÞ”ögS"‰3«Uݾ&ÏbºÛï{ãBg+~/R׬ey4ÞÃ*×fî–áiJåôŸP±ØïD®*•>eràh›¬¶8v3{nZÎà?E‰"ÜY 7l`wQ0•áÔ3÷n­È ˱©#õãñ,S•ƒRÜ–ëU}{•‚=É¥JuW ýRšMFùM, ¾NŒ(ð2¾_o߉ݫ/ã`€GÐz¹†r…xp½$Г~t4—“›aàh3ïö‚7xålÎ!boˆ~‘Å i3ÀqCÕ]ô8‚ê5 ë"6 Ûÿa@sŠá-Í4}úƒr„/ù‚*»(­n‹¢^Gþl/iÔ•(ß t\É Ÿ¬ +ª3 >ž¾² +Ò\ãB¢Y¿¤+eºl]¼ƒŠ<ŸåV;™Ø°Â‡:g¼4zYÿJâT«qÕÒ«‡¦`HQÿg±HI¹ÅÀC7˜~ è X^# ÝWVÅé|`5¶BgzT¤tÖ­¸Ï΢u¤94›P‹ãÞþÅNCã©¡í[iãÕ!°ÐÑŸ$é[Ì&/¨?”<^WÔ;@óþK×R ÑŽ‹‡{æ€TÕuƒ!8¿—ŽÞ«¯ëí" ÔQš\_ã7$þ ˜ŽÙ[ÐÊp¨t¶ûo¯èöm/FZ,ï—ÉÃμOh{ÚÓxn¢qܸðOPR‰GöOåìö=â”ulux!Ü#f{0<=¨JMÒ‰ª$ò©É4ÚõÞ˜éKÏafÈf‚ëÕÞºtæ°öèàwøhYF‘o€Qp$¹{½4bˆ@#LËúñZ}ûSz:ºi!W¸çî­ôîvd²På”ÃKMM0¸#EYß3$8ð]ûuä[¹n¿ù¢McœiMŸÏ‡þBÓ¥Ú,×äéý&‡EŠït¬hç:Ÿ62aj®½Zö‹ÓF¬‚îbˆ]Ð9”nþCwÅaA w¢ ñ›ÊhßÏyÑçÀ­P™TÝò¿?úZÒK—/ g ±ÐOË’¹•L-Ëcdu6ˆÀÐåS#<Ž÷:vYÅyC®]‘\˪ë|qŒ[àgÖOê¸ìñ@çÕ·ï¥PÍ÷†(ÞÅì¸3{µ5 Ô%híÖàÛ?7ëUŒ©:E ½mA}nú£nymðñLÄÅ11è_åÕCë +•,£ˆÀw¯°ÂÝð{çMM^‰2ôãÒš·ÄjÍÂ8íS , † ²2@ +×ç'rF좂ù&J+>Râ·ÂÅô³Ålk]²ŠÝSÁ`±>¶qoÈPhäEÐl„QÓÉwR¯ûv)ÅsÏ”¡¹eSwÜÄÔh'çXÖlÄ6›­Rº¯t䃘®ÐŠ[„zd|¬^úPÔªî [”¾¨+˜õC±‡Ê|Jòuû Íq_§±F¡³þ¦æ¯pì,]Ë[h'Ç®”c÷©AQ,32ê=iÁ7®¡Ú/p*w_ð¦7fôm“qI~¦Cî¶Ì¸ÂD’’Rúü¬÷«¸{¸øn¶£`ò®³ï™ÖÓÓ{õ•GîIù·…YàG^욟¢nSä‚q€jYÏ +ÙLéŒ,’·oб‚µ Xœ@åhÊÙ^sßüüjßIÔ‰I†3Ñ0P[x™Ñ—ù:N$ 4X èé !ÜTñk+ç:<³ð}¦œÇ¶¾ÛÅ9[2:,7õ×âPÍb †hYiýÅ|ë€?¬êý÷_Úš]$µ›ì?š 8®hG^ÕWÎÙ@®×AÝÁ:mÓEÍe—\sÏïàj8<%…ßös i’a=œ¹wÓŽ ~AQ'n>Vg Wdׯ,Äu¦»c©)ZâýVðÆ‘A)¥jƒ(8þSÂýøu‡Ôa(SOR}§xTÔzV*›h?êœû™þ5ÿâæ b*T×`5™nYÜ{Ýö)©ò‘iM¼^”·@ð*ž8üe4¶NÆE9È´xWû3͸b,éFe6ÐôMà Œ™{FèŠh¥*ÕÙ ®ù¶(Ðåì}ýǹª%¢€|ž%ñåjÁ}f)F!òsmæx&Bó„ÇÍhç4‡­Ñ(Ácv×…÷E\þ`ÑÂ]ImhÁÒÝ‹ø‹óoíÈpËᘳ•!ŒñS•S2¼@ªk׬a.hÊŠ*cÞ8þï»XÜD9²Ø¦Dn“N»§g³]ÜŽHªóò¹ Ÿk »ó®ÌíÎù=jª®×y¼Ú—˜-ÿQ+gÎ^ä9áò]úݺç lº#s¿‰Ýt€J˜Ã-21üð·1¿¥Nÿ+‚†[*ÿsçq72jpÚ .¾‹@Šu²0ŸqU‰ì]kˆôn¼fèÎ;Nè®t9º^ºÍÌ܉gŠÈÛ®·¯;€äñ¼‘@†[NÿbfOûq9¶Ä”ùsÍw‰‹jL´Áv³Á^ÓÑÐ[ò)[£j¼xk©žð¸[rï;p)KwÀ°¼%jëÝ5PR¦Þ\ûñ+0Ñ¢l¨#.²Ä]&a±"&5±GQ²Åú´W×%º"ȹçC‹”ÛÉ4,îíW‘i?RÎfÞÌܸ$kˆu +37ØŠ,Òãn>ní‹äxÈ…³Sw/Йj.Keˆôy‚O_$)å©•±²¦î®g &𣞅]𭝡-8æÊ+޳DTz)‹¥}§–ªS¡?&$ÈŽm~~,RÊ„¢M_ë´1ÒÌ/Ìø˜ZøÇîÔ«Ë×ÍŠ§¦¶Ð}µ]-GYY+Òu’ÔRöCŸäÞË‘Îò§ÄÇã—.aAZ-ãúÇÚÖWó“pñ l{.°‡ãó¯žQJÞrÜ`âêph¨—°JÑ >îÆCV+Ã>¯GXÛ.7§~†ùIî9TÆæ)o¼”€gÀ Æ ãçMk!É'½ÎPïˆ-;Š7"MSCŠI““ÁO8¸ú£0ææácl+m£RxÑ2ìK2K¥wÓÛ÷.iºè—“üâ@ ÛŠ%K ^ïbùœFÄð}×ös@(.Ê^ÓS iB¢:Õš"BW—ÇYø4xªbquIB^ˆÿ­ßK®‚d ôÉ}Ò÷dŽgs‚®){²/éâ4°{nO¶VÅošAËs˜Æ¨0Ì„ÅÚ­À]Öñ +çeòìê þÆÀ&ÿ·„ë.¶V'»M¾Ye•Û yºùZ·jNÈ2ôJÜÏ¥OCnÚõ }vŽ|z ¿šûËzóõÆ B®¨Ôpë†Í÷<³c{^eÜ›~E˜¸Lê3;kTÈžÛŒ<ÿDŸ,{5óÛ±HÀoÑQXaJ6s‰ŸJÇLß–~d嫟L4e‡Î tJÜÔñQO›aÆA.›²²e“%ÂF¬Éß³Ü@2 „ñþÉá-+Ä.Þ’јèÌ6ý±×Ç_WÒØrØêe†Œ?{O\íݽ¡!†{ÉM¤àøCœ¡¢çdþsôÚ‹ç~…+ÅŸï’ dÉh¸9)ÒozUhÊþ={úpN3´‡`A:JL9aþû˯;\'®Ó²r¹˜Û58ÁösnI ùÿmv^çV7µ%0›Ñ Á8&«OsøùcüP°šð…(fHÁå‡_ŠŽK' ð{©qÂôȦkOÔœ!)«y®¥ ÷ýüоZ6Ÿuü^ÂÖÚ]­×œËö#¾«êè‰$®÷§ÏÅ͹hwX+;¦aÎ-ÝUüPÏÈ!¦_Ô¡Œ ‹YþŸ4>¾sÊ©¼…guˆÆJP%‹¬>Ú³¹¦ˆmZR·–P¯T&0Ö‚ÙQpºòÙGD”A†”"½ú4°§—ÈDi—ôHÚ~[~¢v‚ù¡U/+]‹«}x'WJܺh÷ÖÂB‚®ƒeÉôÃæÍÒ//U +ESy‚ mf°B%liÕOx®ªY2 áªd•æºÂƒ^*Vð1üV"¸Íì”j‹b)³CsCÁ<³ôÔ!§Œ.Ë3µ;?E^KÄ™Wvœ¤³h–¤<—ú„òw6 `V™þ”— <‚«I3uw;×5¤y[íËzv¨ý +éÞäçy¼DÊ¢–;îíPŠ]8Ž_Ru +»½‘R{Á).*Lò£v«çym±^^‚Rý˜Ø½‰êLDr‡ô'ûSþêU°D×é×!ÑÄ|‹è`NáSÊ8Jãj´ ¤M2®‰†àÉu¡P®”³à˜ì©@u„ô ó@2¾ñ³Wô陼*wÎ#æOy„ Ÿ/¶­}pÞH}ã ÈÄ7„ät‡ °.&šâ)æþ<ªªÃ}±V3‚É/F¼Û Ês§í]¬¹~bÇ{Õ!1lA Í|SéG}¾œõvÕ6ÀÅ|tøŒ) ÖÙ#C*^SR’ý'ê0“Fb¹Ž¶A¿K*T =|§[2ei¤U5¬bãåšíMÒ’½™ú£‚|*ÁÉŒ9ñŸM­0˸q¬i¨on‡Üä²l†DëëÊìÑ 5ßøDÁQŸØþT¹Ë’“i9ø€;Ù‰h)Ä‹½Ð î›{éq¾¿@š•‰`öYâ·A9x硆Ÿ—æe&Ös¨þ=ûzôæBV~âÆ‰Ö 5— ^æ? :R­fɲæ×oè‰fM°&éfcضd;‚dUÐà=XÇÚß²«ƒwãÔ‰Ù”°ÜÃp$>ù­ÃPÁ¥º)$Ë#iï+øv­ËAnã@нìkªQ-CgÛé<Š~)Û¬¨»Ÿ LpÆjÀÁ²!ˆHçÑx“²A¦ôZéð5ZbJÕª<+!q‹…É"üÊFüÃåe»ÑÇÇÒ¶ÁQÃSu!0ή«$5¥ºÌˆÒ ÒIêÏ.!h#4wß Þ8¸O*ìBqød|¥"Zö`îÈó¦·X¥B6Opô-Z™IÓÂÒöœ®WÄËt‘¹V.N¡Jo­ç\0w³t¥?l/Ìb¹T¤þ±Qºð ²þ±'<¯djƒÊúÒÀZ/¿5À¥äC8EØ[W)è·‚'im–ºmìVV•êÀŸ¡ÛÓzËc§15ÁtŸÏsrƒ™ºÛüA ![²L€ûõA·l¤2ž]|Ø*UW»ÄADKaÏNн±ã‡ê#S¥*„©¡geó ×¢¶Ùoö­ÕÌýÅ åÀ™ç–I%Í­vö„Úž…ˆüLé)7(ïq_V+[ÓØ'[‹Æ•: ë°Y%Çé󏬸‰>«šƒ}8Ó½GYþT·Z_x· +vX²œüø éßäÉ0Ô^ê^Ç¡à}2 +'ÄnlžÔA {O¸1‡ªäÎO +ŽOc>‹±ºó»{Üßá-<¹ç3èöËI3?L:õwVîvÜ!âD™e¬XÉuzÙe©5@˲Éóv20QÇQüê¹h³¬þè·T‚a«Ã×ø>èÍæªäæd±ôŒtì†|Öµ3—ï…øéùH\ñMðŸ(Çlôëíªr¥<±rê@öB5éq^šô®×ÛwùSz:‹›çè²eoo²*êY{òB•ú½íÎâ³Êñ«7§ËxofæW_Šçœ/3„”´í§¬Î·ó`ìÊsÎz ŒÕ«`Ó}päéZÝõt.®õ,³C8)|8ú\ÚA}ÊÀ«ßoqÐHF$Þ¹PäÅ‘acIÓ©—!<<¦¥7b.j—mÑ)U¥Ô _ð›8ªÜÂçÚ‘zå7 yú¦ kMˆ›Âêê¼YöG§&Qz¤;ï·ÝkYúÇ“Æ]Û3ÿpzÍ0Žz EÀ\º[ïMÛÀn,8¹žŸ›î +k6‚ý%^À6•=P:Ĥ²K¾ðj£"†zî–Y8zíi|Õ£FsvUäãë÷œ †6»-õFsGéŸÖ£‹y/ì? + Z?ÒrÅ;ºÆ´š»ÆLÈ,Í#;vn˜Çs1«Ïs MàMHŽE>0rzL)º;w–ŒBO~%oi\Ь­¿Ÿ1yøâ3˜î€F,“ý·3,ÒÕÌ_4èGNQ’UÑ`ìªIbå±GWî3¥\u•H‹Ä!Ù@s¿ÎU¯¶®ä IÆÜËçQµ6Û }ãéÁz;Ä)¾o‰‡BXK)Àê0¸2¢QIÐï ^ð²yõûÌó¹lê€V»½îQ¤RjßëŒfÉ%+†!œms¤æ91)4‚‚>UÕd3‰<h"OoÚ³ÖKeÕ›Hµï~¨Ì¤ðº:ŠÚȈæFW ”<Ÿ­Ãö¼H“À³âB'wgœš4¾XÓýŠ ›Ž@\b 5Ëi ú óŒÄ06/–þFrà£a§œÃùY§15üЦ’•Ï×Õñ˜Î7.áÂ×hEPùý]=­¾Ævú‘ó•qýƒŸâ»‹oýÈü®@3ÖGXm œ$ŸKh<ÿÐhšhìØ…øîxžL¿W9&7=sá›@1£ûCÖгþ?þgaVˆª)Î#“æ)’‘7XŽœÉÊEÍBÅ©x×C™¦n³Éº”­›¹¹…´, €/’ÅØ®äêÈŠ£_³Ÿ1ˆEƒ¿U2Ô”»@cWg@Í”ùߟIyHvr ³Û: ÕÚ·¤yÝàêŒøåkµw¤ZÜ8~“Dý|áß³ûÞ¯j¨ÕêÄèL¯»6i¨nÃb,„¿ý*°ÇC'°€ÿ¦ayA<’cÝ‘c¼í-Ö@KòÍ2tå)]<°Óv¬YÙqŒÛÕ’ZôÑOŵ!Ôu½;Ôc”F#”ן? ÏV¯ XõëØ¬ß ù9;æ–~G·@ÖÏy÷øääKÅý9)‘ðç‘êWOžêØœ*ìq™8~rf"Q3" ¡;omjR5©ì÷)]‰Ô˜h<„ÍXxô·îÀ;'ö=ÄŒ. åŽ[6$E¢×«¾1ÜÉ`¿ÄsÜiŒ_¿òÅ6Á¡ Ñ/b÷T¸ÞÞsÔC-ûò:+×x'@N§‹+ZÁ¹V´°‘úLräÈHà(âôÍ5¶£[,¼n$ÎÉN úGË‘ÆWš&ý6gÿEÂE.)„î’{MUÜ÷š>ûÒóÍÍÂÔ˜©(˜|ù7teRç+ípâÞ$‘2\d¯ÖÌ<ý3Ë 4?è­G»¹ƒV´Ì7zyQ Ô”ˆN/ħñçuø–W|l˜KýõÒ‘HûÛô8°H_’oÞ"‰ë/£“×ÛNëC@8Ä~{ZÄ8ô[µAÙYÛ­ ‹o™Bœ®?•å?BTfpç9Sš÷d…XðÅ:ïM³S¯»3ßôв¼s¡züú±~/^Óâû“,¬°[#­‚ˆl†BRÁã&³eâw}¨H“6ÑÎS¯þN¯ß"­Yëu ô’ÁÛ:F2}ö†ñ:­ýŒ÷CêKg<7KnÉþbzƒ}¯Ö~Æ>CøÈíü#ì(ìS‚òx¼‚Êp€³íR–ï'Nq—þfÿü¨øúYKbPú(³˜`[®cûWÞ{®²°:æ3:˜àÔ+ÏA\žOYk!¸ò=0:,H÷3¹i!˒Ÿæ=7=Ä»,Ø!HE|_¢m ð²½u¯¢a«È@HlàD`nGM»~Òbj­›ç†P߃ëËþ°Ô>»w/M›ð¼ˆÔyïeÖor³Ð2€5¤ËPŠBåš…ôï€tÒóKúyPNŠòâw×EFwBJŽ:óëžò>0„®Þe%rÞá íÃ!Ø)†SH8ð§K ?–c\èœ>ø–q÷7è9CÍZÖhyûaùõhãŽáqÝüD)‘ +vlîõr.A^Išx¶±ñGf¿ é.E»­•=rÞgÞ¢A•©ù Äó˶ŠcG CØrÓÔþ “ÎMð,òDPú+¾«_²º"ÿ»Ê^xrFƒr#1m›•ByX)^ù {“áøëu=Üò¹¹Pª?3·Œ¿GîônC‘„4JMl¤iÛ\ª1O³ÎB›7Ec0¼?¨ +»Eˆ-¸ ¦êÉ“xÙ?Äq÷ó2&`Ž'Ιà¨Îê-gøÄˆSHÂ4½¼E`[aŸŒ³›P× 'tº£ˆŒf˜›®LãÚS•ȦÓß’ŸýˆñZt¼30Kת‘~øg'6wÞœZ¸=jXTL[ïžE^¬Ë:ù’jÚ©;Ï·3~½ÎkÉc‘Y5½A®«•I%a¡%KÊú8žXÊEUPÂn¿· \Ô°ôU¬ûæ÷˜­4“a +ÃÇ´²6U Hl3y\ÆîÝôéFǾեS.ééÓÂ*^þX©£ôiêîþYš²ù†÷ÝÆQ!n?^w+Öƒa½nÿ¢*Ž&­ÇJM! E”®Ä¿³ˆGð¨˜òÜæ+#0,‚í©¨Jçý€\-Ï]VöW¶ÌÆSxW2tþŒËO/eD‚†D>Ê +mÂÐz `z§(Ò|€¾Í‚šxìÁ‹>Ü)Á™—)åWù*ä]ÝUqŠí®6hÂúKíCðÉ ü)k:àMÒÄ%‘ÃJ\¾è©«öXèJNèO„¿Dôá Ao^v ¶ÏEÓ€JŠÿä˜>oüNù +[¨KNæh™*ùÒDsá4ƒÂYI²¦ÇdÒD—XtL¬¦bÏiïÞø`gcÌ(UeŒ -Pµ$¿)@ªÉ¥ò¸>ªÎª£|{ˆ÷¤9ÎË}²d)ŒŠb‰1³}hGUÌC¤ ô-qGÕù”Ó$–Ùjì«ì'éj¶ôÏ+€|7~¹Ã¯}.b°Uç}öÕd/²?Œ„(±Î9ȃìâ[æòl°&'ñòãôb‚\*ÎÇ“…«¹€¡*/Cz¶¯ÈäèVº¦»ñU]3ö®ù!#¬—_þT>ˆ‚em0ÿù7Œ¹£2?0{SR PNÕ¶h믊æ5+oû³Ž¦}-u‹>ª³MwæøÛT' üº/õÂÜÛùÕ|i·%C¿XPœ_V¤èÚ¾ÐÊë»Ï@þ=á-T=„ X¦»d>Ç$î<4y^{ŽòÖêÓ3ê/mÆù„È&žÊ>°…d½ÍÔ–ñ<&r1²å®4˨ÔP è:ðíÂV‚âT¸Òk—‰ðæhw>ä¸ ——J@½¬L›ÔªÚ¢NÈÞ‰Ðò-ÿW#kºè #àLýïªñû‡i»®HX *Mc/Ãfkw +øm˜UbÌô¾¸Ò¦Ô^©ó§Û¨€ä¾$ncòîapãt“:8ýEëJ:ÉU6ÑÝ~‰ÝÓRéàárbu6£°êSÔ/¨ä€ÌH6$¸Äœž: Ä,[m:!­Òoùc]ØÆýPG*˜&µJ°œüå%SHØ=2Ÿ ·nc"=X-„2³# zŽѤc¿¯ñšé "¿Žw0€‚†8håc·$÷¤iu¸)c[:4•\ //(Ga7-ÿ¹ÔÓ¸tÙÆ¯=-ÈÁZ±÷Äô k>lÙøYå?Ï0¯d÷23™5ìj‘‹‰‰Å`lÔÐÃ"7Ba:ïpøgñkœ²}ߨዬªÿ@ü4¹Q>Áài'ÈGw²3ÑKÿ?¥FÖê¥X¶ç(C~× ë£jÿj  o7Á÷Ð1—;òkÔY^ÆÇ§oKÅux©õ~=Í]‡[ÿXÛÿþmÍ&A÷eÖXZúÍs5_17[ \–+š´`x”}”ŠöqÀÌ8¨_p¨´9Ôv¬ÔÞ3Ím=ÐÔÃå\¨‹DùÁõnÔ_;–“Y¢GèÄüu0æLVlœ›®ŠÀ‹¬a1ãþûlí'^"³Üx§2fŠ!^íëû!¿>!C¦¶ÑïÙˆœ”¥£œQ¦*^­GìÐ\Ðꆊs”ø¬Òqçiÿ¿Þ:Ξ‡'†Zw¿ dÈðl+8o÷+]: {vJe\GǨÿwßáî…Ï2o¢9TÎçt¢7=¼'T´ËÊr¿^³4Ϭ³¨_gŽòÁ]s£ÁVêå26æ8 18댂E(ð™Lu9—n&Špå@L;÷¶¾õ&O°²I®í’Ý×UIAˆu~Fþóh½G1w÷ˆ‰´5w î§Jd +訡›Ø‹±4‚k`FŸ1©!Œúƒ$;öJš—Màü¨ì¨C ÀXÌj\£ˆUÀïÛæW§ÙQ‘…VïSñ]rðÂŽïgGOñÔÕQ©~íÒ>¿” ý㞈 %?/Íg.@¾œd•Õ¿ 葬•›«Zù”ÿÐOlƒÎR¨Ç¬ž@¬:Ãõæ˜N –§ˆ.ï…Z€ý(`‚Ü =Žž6ô¨ÍPDú?¼ÜÆmÚÏ 5GŸÈQã[%Q…ò +€¥Ç§QÞ#G#ι<á+w;>¸dò!•ø=óžtêÏ=ÓA†·> T;)rÜ#CÅ*°Ö0‡ú4mm«Þ^QºJÔ{œzy‘Ѻo%PÎ\ëÖ¡AÓ’??ÉHpg\¿iW& +üQ(X.ù¡"Ðïö´èzåå`=ÁùóÇ­q©ÉÆâ’ÌÅ  òYû`½r|Fâk§œmI³Ïç¤ÒÔÜ($±áîôy/ÆTF(Y'ÔE•~žþ¾‰jƒ±·ÚÚŽÄâÈB%ÀÍΜ9 «­û¬æoܼ|9IðÌUeíµ”ü·Í»MºÂÑ¥²<5aÇ(w.÷óaoBG]Àr¥  Erü #_'›°E+ײã¿zKm®˜ér?ÆêËÕw)ì¤íÆvàP•ùÿú%!°Áp?äZPQ4w—ÙcìÈwÙfõfØüîxe—/꯶ºüIñÍPmü|c¥ TnËØ5òëî›åéÝ«¨¨jLí¥üÏgí˜õ›n)¿0#Ï•ÿƒÜtÂނȉB¤YŠÚÍt3{æO„"gT©ì$J/Éõ–Ó€t+X­]XU䌰ýJ6hvÀœ€€KLíhÑ)¬Û¡ò¨»j/~”ëÍJay¤¡pÀ–Ëö—,`cYο…D›ª'é!†¼·e ±T (ƒ÷X߉ tƒ'ƒT}0Rµoι0çÎ2ãوëÇÖº‹ÐÉŽµ±Ô¼LM=ˆà2]â Ó%/§÷WíªgWƒ»ËfÿìÄ›Gµz)rD6,æÛv;(†f±êó_ÊïŽãhõV˜Éü¤o?‚Ç'¨¾†ÿió®çˆÒíïÙ~J¤˜. Á÷SëNFÔáÿVÍØÛ.¨q{  Î0Ibå‘dübÞëK0œBË0ï¿ôóbÆ[nœ,Îwéâ“k§Xeõ4Ü«&Ú¨~hr¹)¹ÂŒ‰ÀÄW¨1’úl汙Ĥ‡ÚŠÎ‡)Ÿü¬ìpÁk·È&ÎúŠÛ«»(*uÎFåkž»B†Él‰ ·U'pú¾†‰¢öý·Ùå zSkªD +ànÍ›¼°HîMpð5˜¼9"_ÑÔ¥©‡A0Üļ‚Õ5 £–ã§jJ–.¶ëÐŽ¸édÿÿ-bHÉw²ì¾ÁLRV¹”ÊG9Ý¡òívÓ’·83ŽK5QJûšU'­™¯^Ì×Ú +ÿT‘l-Hpóp>ˆ ýN&âPº€Xšžpz($4Ñ­"R±¿ü=Ï 2“`ustLÀ¸© œh6·ýY¹pPÖî–ûƒÛ9)zXW­A±·³.;D ëÖh½ŠA"•Ó%!Rq¥Dÿù6ÒS’ 7›0“%-ÄH#™ëw',?•´6eË—Ý)1qõ +¾Pn„ˆúqؤ{ƒCTsÍnºò)*W%Hßéo_Ãë­XHùæ®õï ×äLlÌL±j”K¾–ߟü>MøC^d®oÒFø>â˜ñ×Á9á;—JÝâ|ÙXÛ‹œ| –šuÜCÇKêûQ·‚;ë2^¬tÍZpEÏó05m©j,VB\ É„zX@NvëäÙ*N| ÈýržxÃ{Â-²ä™ ¼{7)±S>$Ô øò•˜Á´‹Óbä’ ÕþáaY†N ç;E¶†uvMgýxáikÃEŠÁ"uÔÐe^­äüSvRàµ;¸Ö(Hý·ÏËŠW–R¥Mµ¯€ PÖcÝdÓu–›¹¬†b ¦ƒ)qÔœ´¸‘m 毪sIA¤HRïN]G¹!Ï"±R nƒâ ºÜÆTL(.¦*ûR©"LRb[ˆ’E»¨xvú¶ì©ytþK›‘vÊeüÀãQ_áeé´´Â g‡˜ÀLÉ5 +&ÔÞƒ×I4b8£Nš߯¬Á~ºO’%&œ9$zð!¹Ø˜rK«ÕjwJv".³9pšŒÞ"]Ûb fCï´|0œéôåsŠMŽPŒUH?ú11N:õ ºÆí¦cà¼V¨«â@y°¢8¿¨órbñ|†Ð5¹!øa%­Üøô%©»ä¹f…jXºúW4ç¨çµäœ÷øí‚Än¡X(ÃZå@&h2V³²q»–Ké]ni>óMž……Ò´ðXª|' î¡d ¥#òGÇsáw> –ᨸt¢7ŸHUì(ôA=r§ï’ÓÓ6HTC0ï.Á¯ ÝùlSY_-)'Ä7S§§?š×‡aÏBû¼˜çäîhgX¹0×ÜŠÊ]œ!nB=§ÓHôÍgü1Ki<: †¡vgÊŒ*1¾d¥kcáÊykTìñÂߟ÷þMƘ— +pö­<½"Ê-übŸòƒƒœ4¢E3@¡z~%uçKo¦yg+z| Nœ³í¿—ÉËkèäÁ¼.çù2|¦úRã&Px¡£àb§Æf˜5Xú“3Ézl°‹­¥v—ÇÓ¼råj_ÑžÞsÌÍ…70ÛÎM£_²]dñÔ`lÄ—]bkùúÌ]±†UfFrËö¤ +eG(aÝm¨êb’H/4ï½–#ÛÎzâ¢ì@:»(m½:ÚcA  þzr-ª3„Vù‹ ¡Á¡¤q{ø=/sìU ;¬Ý^c÷"ís¢±œ-~YNßÚDOt‚ié$v$‡Ë9ïXÏAÿ­œYzû"ÊÌýÜÿ2&~‘2šðèP¡êJnî´)…7È}!µ .¡zv,@IF%Nk á¯)þG<#¡?á)7k°oçÞI·¬ óep åð‚O˜pv‘U[°ZT³À™ídUkØ<IJ¼HÖÝÃRˆÙ}ŽdøQ¢C{]¯ÓUY™Òíw ¤ôë)ëÝ?ìzyÚWÒž´a›´<ߎùÁ2øò^Ž3s‚`…XMóý—SZC/´²p/ŒYÏÏá˜%ñù $u6Îô¯*9ˆ QÍ0Z rWáodÈ,~^6!ÉGÄ.»S±·S*+ahÉð4ÿ÷JÇ¢PYƒæCJ)P,[x{Çøhÿ—½ÅÎþ=HÎ’,çwdÐrrj³p8û; ê'»^K mÚ¥oØ_Æí‘²ðWÇ>/ 'Š¯Ê²¡{ +‰ÜÇáqfÞ.qðõ~jãR‡jæþi_â¿ÄpVÊ!ÿNpr F‘+5Ú|µÔ^Ÿìý—’•§Åèȸvvè°/ò|0Œhb\`ÙÍzÁ=(•ÿ½Hå>íkðÂ^_ˆ¨ã L gü.F½}䉒ëJÕMÆài4`_i‹¼m¸ÄrŸÕŸß´K4wžP€ß¡LnGë KâÇâ…mðŽœ*V]ÃæÖ›öt’¹(¡‚Q^aœtí'»Xüd¬6ÈŒäØ';La“¸’y³©2ëܽðò¢ÿ1kcôÄ%ºêl3ì~–ZCãZü½9,·d±TÃ)’°ÜrR[w·iÛëAÞ™6J“Ýi*e×Ãv…Ö‘lÀw¼JŒŒPŒ êï;§€Fx·aåÖÂÓBNœÕŠ ÷ÂÏÛ‹’iUßémÃRRð†÷L‰Q"+Ynà +ÖâþùÛûe€“¬W…ÒO[«í¾[Ç#~LqiHÕŽ×DÎЖ?¯„ë,iG„6œ"Ú‚ ćwëŒà,ùRR³ÚÌ-èhN+!g.2 Œ¡«0Ò¡ùúÀý3Ö¥?±Ÿœ d,o€É{¾À8ó Ã[õ«Þ7ÍD}ý`ùF¦Àö,¨PɸÖWÄ.YÉÃ茵€ÇW”íƒ V}€hªÅrÉ +¸U ¯$uDŒµj…'Û³¡O…\‘f×tv`uº%šPª ^¨f8²M_+.˜Ž–ÈÀ] ÐEeô*ÂX»ŸYe›¼~0wØOaL•Ì-¶~fmå\›ÊåKxpÓCß+MW87^@æÏHÛë`Æ4ÌÝ[&°ÃÁªe2‚s|a:O–­¡æQ,.¥ÛL y§u,ù;`yË$žOñfdOp}%jm")©kQ‰Õ›erKxè2º$*£5&}÷‚nXP Wš_a Tv²QYêš¿Šïãa¶Æt[(òÿ•‚qÿ¨R¸Ÿ$+#+ D%oØš`]Hª¨1 r¦Úcm›Ü«t@dgFÓA¡ŠßiG@KcXúsÔ-/ižñ`Å5hbÛlg[Ò,¬·¾ðoÏöï·%¶é\Û²¨0V|Þ\ð—!Cz{wßÝ]öä‚Vv{ß©ð­òҶm8WÛ£hV1ò±#—[HÒɶ›GâY„P®<œMBã¢õtªdü¢×p#Š…‘1n÷'¦:ºijY×z˜ô´ÓñlëžÐípëÜ£` pÓ À¨Q{ †¤^v# Giz”ܹâ7ü”î…»¢ç’‡ãF&îË?æÑu&ßtØsRª¡"ìüî2x‚¦ž%Ao¼3#O €œí~ͲÏG ËÛo×r/JE•ü³È?OTªÇWÉJ¡)Ì[ky´Öާ‚Hœ91~ªØÌ¤±å«g5ì+„èÕëƒÍR/= +}œbúU±@X'2€óLPP¦úY|уõ‰©áÞ.Ðΰ+ƒ¹!ðv¿Z Rs—® .p®yîó•:#enÄ“@jf›IdÎÖƒ‰ì uDK mÍ–Nê |šýîØ¸Mž´u¯à«¢¶0›{Ó>ixòëÕwtPªjÓª³Ô.áÅ¿IŸ˜ïÁ(™MN†W–©³÷ùa(úâ;Sø†…ï¿c`‡‘!Dž”Ǧ.âß?„ç_P[ ¡øb«1‘ P¾Wˬ½WNÆñ)aÀD§½ø}k +Šø³¤ÆÇ¢{åG·z°d­ËÃÎ霢ùÜ\¥7¢†cp´V Ž¥ñiÿÐöÍügT}ÄÈØYûÁ¡OðŠn,#­»v#ú3òß.¨UúäØ×•˜Û^»öªƒï’O…úUR/á{V;ǰ\¹í¹]‘¥S…¹–Ó-”ùÁÝÔ•‰i…tß·ã¦M4Ä’SDU—7 +‘z0*G÷ÃG©M“Š—h@7)¥o±yÐ=eÎk|(@-+2â$ì×;ö0Õi£ÀcËl<Ãpı\1q2<“õ›wÎ\Þ™á‚æåg媱 i¦u[nºK“îš2Æ|ä1Ú6mËÄM>ÝCv‡9¬ŠÎa8Ø#<6"¨ÏˆŸˆ,2ò±v\›*•o$ž% çᇻ{ö¦¯4ž–ô›² }&€AƵ#úË›;y3s¡«®zUt’_¯K5#7/+ê²?úëÝØžñ«E¹p`Í*ëmB¿zB69€-áNö©‡ñÞ÷ ‡9à8%rÿÚ”Š°`¨ ÞvÑ>‚ÇJ^ð£Ôô£dãIĵMŒ¦Ô«0çŒßøJ€…É¥ƒ6IÅ#’œx'`ÆÑí±÷Ï!‡aZ·‘µ›gÀ½­n˜p6 +ö±óO ó~àçè£Hmîâ/£ÇØàDöR?àðëÑtIÝŒ£¢›UV;ÇyõÝIÛ§Ùª®}¬ûÒv~¢ë{5t|+bŠ¿o ™Ú€Õ~kaŒNú¤ Ç¡HóÝ­Jàvä39†Ýõè&¼p`¯§³ïíÓYêÈ–—/”"Ú…^ù l"“8 q=ßçü ÃÅãV²ÿD”ÒisD,í#7ëGᬼ{¼ 2NæwÕŽŠv~ȵ;‚ÒõŒ ÏšÕac`JF¦³»•:}Fœ³úã£v-؆˜š³oQD“¿›@Ñ4²ˆ©lÐVœÆ-'Íëx‰WÔ_{«±hjIäsXšÖfS_]òe/ë÷®ÑB,l+#ôc| œ$æJiø]õ½hD§¹ ™×tºjf$HÏC†12ÇIŸä'ŽÕ¢¨)Ub#Qòoªrb†Nkkª^ÿ£ŒsLs–…ÙÆ|—›3ñW¶µ|Õ~IõBî±SEO-=Õ¼eÞ)o[ .HæN¤.©q,1›ËÏËi·Ò·îÔoð{ñö÷ŽžºøleÀ•5­Kn) +¥–¾è5#º màF+`2ûÛü“CÁD§&Kˆn6˹ïÁ Sd’A,FEG¡jÑkÞv›ÞobÇ5§Þvêtçž6aò /èo†‰HîPÌË'ˆžr<!Èg [—nFs'=Œ˜ó+å¤î¯¤5\çïîpa=[„YlФ +á²RUxT$þù¶Ê\èÌ“E,±¬É¸˜±µ_LSíî À•¦‹þ3ÆßdŽæjèÂäÓ¹²*û š8î¼h©èý‰þdšbV¥,¼ìúï&Ä«Ëx’þ­˜],øØsŸf +Q©cRÔ±·%”‡&ÅCl‹LI¸’.ÙÆñtúºïb%y°ÕÎOF; " ‡ñ »¶rªRiX@õ/;PM?­¢4…ñ”!zë$ÒÜê´uwªd"{Á^G]8P˜øÎ_Gè©=Íq/*ëc[ûm\Œf E¿Òdâè÷0XD¬7(ïÓDDúëð †ÖV¨7[õ®Š¬³hÊÑ@bàs.r©¸©eÿ†Mž; kBœÝ½Þªü ‡Ñ¸´G”ZÄùct?&ýšØ!h¨"YÂ$.Õ +yŸW—÷(1=+˜±<Æ.åü¶ãì—·–šÚAT=S¹@sö_¼mågï‰L6HšäQJ`æb„y#Ù¢“0‹×1>°4V‰õ½÷9Ž}þžÑlZ–*þt»|½ÊŽöÕátGïb vá‡ePÀwZ¯9“Ápú¤Ët¬=úˆŸZ7@¥uÉjYø© ’~³4QóóbWu=YŠQ¨3+‘LY%¥ˆÒ×FS>ª&>næ †§ EǺÅÒµÂ]+Ф2Ü åWפÁDJ²+2¢pœ‹$°^%o[êzå‡ÇX>Ï<:9Û«Ö½’¯©ºmÉ6¡´bJJˆ¤ºÂßï„Ö‰ÿH#µÖÚÀÇÜ<}ü†Æ¡´åÃeX5ŒFf±ã¼2É?§o̬4}ˆ[3­G¢Úõ(1*º«òûÒµm÷Î-e{®×4®“»6²¸xX¦iç¥Ùø|'oî? ¤I¢ +K~Q”1~ž&Î@þ~>Lª`f‘-½ô‹Ì/8ë:rnP&#Ì󊵖 b3×/ûH&È”È!]ͧ|\!©Ùê§C‹R†³A*îW2‹`YV6Þy¥¦XQ¿óH~ÙðßH2V)®…Z—6ÐrlŽ’ÿÉ´Éè +v¹¢q]tøtJ¸¶ Èž ÈŸ‚9õC< Ðg«ÿà3ó BÒO9uö8‹ú¾!"œrÖ]«úV/@èÖl²#µˆÏ«–†Õ(83 ö(\k,Òb݉ÌÊ Éª:kS‘[Ó‹E VªÐÏÞÞj˜qL @ aÕ}ÊÐÓCvÞâ÷aF©ô›6$°Ÿ^Ógo(Bxì®Û¢Øw€G'¸ñDXü…~ÌÎH˜ ýˆëü9|Wû»Ñâ3ƒ _;HÚÓ‚„Á•w¨ÃŒADêM[RaÚ ˜‚÷y)P“:­çÉ\t^, °A‰Ôv§ØØî+òJЖûmd¿©M!¡‹é l$Fã©À!ýét«Ky´Ò:Å̓T¯²P²‰Êg†ôÛ76TéKxì m››kt ð´‰ô½š±í/ñ+d«Š3&2àGoÐßò|#x¤üá h]üª½ÉØØñ>ɼÀ¾Ñ­ +ËŠ_>2Ãt-À%ç µžÁ?X5¿ãT“SMâ˜:²*\J-Õk«SÃèÝ6iö…á2ðŸïÐÓfX ­?>H7sîÑïîÂzìZ(G‡xø}AüþZ¥}³~¸,n…c.ÏCÈ>áAÄ(Û»=öB‚˜ï¥O¶â¶þòqËÀ]øúqd»°<<^³>]à´…þ«Â+ØñÛ›1,O®¸ÌŽðvvÍQÿ¦`Z‚$ÐÔ$†¶íž€Ã~ +=¨¾4qƒñ#Œê¡’I¶Òé.*‹Ts7ǰc¦££»`*Pã\¨‚£²[¡Þ +¬’¨êN¡-û0C¦…ÚrZêºÅX¿#fAº£HŸ§ið)S¥]5{“'¶¼d3'Hঃ¯ì6=>Wù6&N]*Ê• ˆwФð¯6^ÄZ›ý›~fÁÒfÏ·ñ>@`‡^R¿aªº´Þ¼…‰áÐsáþ×tEmÇ&Î×±šõ_iÇXÀ|c—h¥ÚŒ»¦M ði4g¿ù´ËCx&Á8šô'Єөº˜j0`rV0_‰‹“>u +E_â÷/R7±(brìP$͘<-ÌÉ!`¡g­“PH&箘 FŸ–ºŸqÖXá“`caåJ§GrÐÞ­4ˆ-tå~’ òkFL{Ù’»Â¶}JhÿÎgª²î£¾JÜ‚ Éö­.!JœMñAõ#éjÙ³ø’¼KÖ[+qµ78ÕôÍAÞ}ýço\ß® ®—>šÈ v0œSí,Y›B:ņޘ¨jQ„?Î9 ºÃˆ‹Ø%n0 Í¢y%93úôž’R î õÀ9.ä3¾AtEl ƒÜ™ "uO'Tšol[ZÊœxp}™ +à£Rè+ý1 ©2(ÍL¸ê-©áw³²DTò¼ÚÝpõò ND/¨Wg¢ž£oaë—ÁÞ‡T½¨„ê³Rw»í¶¼¦fÕë³"¸.ÃñQòÕÆÚˆs #¡;ÝþÜãׯB6ÀtE®äKí_pEïÈÁã’áOçRNеÇ0#‹Œ¹Kk•7£9Ì Ï®·qèÓÚ{¿~ÓVŘ¡ÃÈ©æ j0Ëm2Hw€¯kË]— |¦ÎPT‡¢}ÆVZçž¶¯+rÈÿêå7q_ŠÜÃO-gEõ!÷; ëCúŸ."“< Kˆ$h•p’”̪HŒ™ÑP¿ ’gý” mÊJ€}ÇO1€½®ÖЯ¢àÀ”ÍÁF™äÁjGq_F¤n ;ïi$,É‘.z†_‘?…c=“‚ýVáÝœ¦f)âIcþ¶µ4G@žT´œéØë4ïRØ;[lؘ +\(²Ù¨1¿øúJfÒxwåxk>˜êø\Ÿr +-JAÊïŒÊV²_?rÖºr|2µ³åY£¸¦ýÛ +K?NQX:þ¨çø°zÚšœòŸ¶ù¡À¹öŒL¡çó6}£CÉþ|Opr[ʧn¤hCÀ?¯ŠÑ³kP’Ó]Ì:^” Sòç¿Ä„Ä'üWQw›GŒ(~S¾Ïk%ѧ¯å¨7s'ôGûmÓ¥n ƒÐ(ͧÛÉ—pñ¤ HÏêF÷)Øù ¤ÕpNH.Íüh ¼½€@?bmÂÈs½ŽâLF5Â]›oVî…ƒün$áúžN:[È! ÞæÑ­Â6ÿDI.?)1– +~yÙÊëzjŒýÌuåÁ² +>znÖî?úÝÖö_þwÃ’ä×ñvÁ]£‹õ¼É”X¬03¾¨).ÜA%™ûýƒhT7Ói73¡¬Ùu Ñà$~€Ì«Ó/>Fo{IM‹ôÍÅþ‹kdˆ" ±ðcÂ-ux´[Ói©…ƒñvÍCç·ð,kãç†k>ê,ÈPÔyó¬%M}[eÎŒç~Õá}\ þ^wô/iYáƒÅÒ§‚]HI—ðúK9–n¯À¶v*ùÿmBÊ0—ÂÖPÕêP[6`¥xšP`˜$XŽé†ãB%³kÃ_Âá„ø«yQzÃ'è`Lþ¸<Ûƒ”þŠJrź·ô0ü:µ¢^ÆÊý† ¶[.èÝP„Öª9[ŒFÝžövaãã1îGœüå¢ÒD®šÃ +#¥?$ÊX9(qO?£H-ƒB[ã™a¶à †C¬¢Ö_\bïÅŽ›ÈëZœïZö¤hMGïõ{0“M3,ÊjB‘:6˜Á›‰[ueÅ;¿dÑ–xYä¶3Ð̤¿ú}˜ó} ô¢8 à–ÐØ¶™¸VÄÒn`Gn]þÔ¿àí©“{0@C÷Œãi\o`.¯×“"P•@•Ö<9åçKò°º*‚¶UäècíeÈmÇx +‰wüSWÅ"(…ÔNv]ª78Çû +Žñòжkµ¹èÁ¥Ë £ y¤‰ß! fóKÁŲA*ž€]{hiÂ%ÆnMfÄGŒò™›ºÓ©àð€}OCXª‚•"#”g+.ÓP¼”"‚U}Ò>Ńôå∨Ÿà7\Žl<\q«›Üå§ mÐPs‡Ar4ºXw®Ú¬aO"ôMg>,ûMw¨Ú*a¹ä@F“ø{<«ä‡hVŒ1±áObo/:ƒSnž>ó¯È®ÂAh9Ûô|zÔ“,&¨tfûãE>à£pœÌލpÔÃ&ʼn͆|á†.þ¼K«_\á8½NaGÑñ˜A„/\sÆ¡—m¿8T¶ß#ìI¬ä%xJNùŽ]U5èS¡´÷›ëNyCµÜë WåçÓˆ +endstream +endobj +853 0 obj +<< /Filter /FlateDecode /Length1 1374 /Length2 27197 /Length3 0 /Length 28158 >> +stream +xÚŒ·peߺ=štG½c;Ù±mÛ¶mÛ¶í¤cÛ¶:¶Ó±Ñ±ýúwι÷¾û¯ê½ÚUk¯ù}ãÓœc¬Z‹„@^‰FÀØÎÐDÔÎÖ™†–ž($#¨ÎÀ¤§g¢¥§g([8[›ü—@¢jâèdagËùC9š8ÿµ 8ÿÊØÙ%]¬ L@VN6Nzz #==Çí9®Æ@Z ¤­‰€DÈÎÞÃÑÂÌÜùoÿº’Q88بÿ°1q´02°Ê8››Øü­hd` T²3²0qöø_)ȹÍí9éèÜÜÜh lœhíÍx)¨nÎæ@E'GWcà?#e lLþ3-€¨lnáôo‡’©³›£ ð¯ÁÚÂÈÄÖéoˆ‹­±‰#ðou ’„4PÎÞÄöß`é¨ÿÙ -çûOô?‰,lÿl`ddgco`ëaak4µ°6ʉJÓ:»;S lÿX;Ùý7p5°°60ü øWë@Q Áß ÿ3Ÿ“‘£…½³­“…õ?3Òý“æï6‹Ø ÙÙØ˜Ø:;þéOØÂÑÄèï¾{Ðýçp­líÜl½þkejaklúÏÆ.öt*¶.&ÂÿÁü5þÇffâ d¡§§gcåš8MÜÌéþ) ìaoò/'Ã?æ¿3øxÙÛÙMÿŽaâcajò÷àådàjtvt1ññú¿;þ÷ +ÀÀ4¶0rš˜YØþ'û_³‰é¿×ÏßѨEÿ—~ @ú~ÿ}§ó—aÆv¶Öÿÿ×Ó) I‰ Qýgäÿv + +Ú¹½hX˜€4Œ, @&  =Ðçç‘7°øOôÿ+akjäøw»÷é¿ZvýÈÿ# +àÿÎ%k÷—¹&@òÿ!º6= ½Ñß Ãÿoºÿ+äÿåÿdùÿ$úÿÙ‘¨‹µõ¿üäÿü?ü6ÖÿAüe®‹ó_ÈØýÕ‚íÿ U3ù·tí¬ÿOŸ„³Á_-ØšYÿ÷6Z8‰Z¸›Ë[8™ÿ›.ÿ¶«ü#4k [y;'‹-@zúÿÃ÷W]FVN9ù/—É_ñüï’"¶FvÆÿ¨Œ‘…hàèhà ÿK%F Ã_9›¸ÿ‹Å@:Z[;ç¿!À¿ÃùMíÿœ(ýÿ²þWn#GÇ¿ +û×éÿ-ü_ëÉÙÄÄÝݶlgÄlÙÜõ\'€íFs8ͳ@r¨–NAãµæØíò +™BQû3pÛñQ elac_„üÿÃë¼½ 2¬#I¡óÍû]/Aqî°°:‹ök¦è\ q÷2ÿ‘÷‡ƒ·j€Õ÷vÐ^I’<v8ùäg·!1÷ÆáŠß“¡Ë‡ +Gµ¬RÐïó41*ÑÚ¥‹$ù†ÙK„Î4¸P”H×îð‹ H¹3_ø’ TŸ?1LÅ^š;Œ±/Kž›UÊŒN}˜Ä˜š¸ß&çH½OR%ÑW¼ÊJâ$C£JLqu—[y»á ˜ë z׸+&fv'0Nõ„*à÷çBãŒöHÇN­•r{0òÙJç?ô +N +=ÇhžQÕ‹?ƒø~Y9_È3†e &Zã?óAôœ„¤®°®büæð'kJüòãOXe4ÌwÖê÷2p‡½èùÆö|ã33#f •£u¯¬qÁ«< ‚3Fd0Î`NË¡‘£6ú«éËŠ»­møà}}‹€š²iOÊ©ßxLUǾûâÅnèAž‡ +œß–Æ ;ñá–w§h“çPÜ;*Ð +]1Ò*°È3‘¸5¹#YW3Y¤~/f6‚.Py¾#ŠuçÓƒRôù9jT%Er®Ô¢Œ€¢ –ç³I¨.|€/æ©}µg)êÀ6ÿä×Ô̵ñ6B· « ”ж • õµÍH>;¼€yÌÃ¤×Æü0•†Ér[]Ké +úò…ZßœºˆÍªîƒýÎL>N¶~„ÖoZûNWl¤–$œ>òYÆ4þªø‹\¾,¸c¹lhm¾7óØþ9‰`–w㎣1ZÈæyëSþs#^‡êÜÓ$CR+cü„M3Måö~ßs +ñZ²ª°&MmjMÆ¢ÚºTª}s-ÌeA[K¾¯²ËSñõ²Üy#jBÁKޝA)sQÐ1xôéÆ|ï0$5OÕD…ª(ºÑÓ0SÝæ»Õ0´ù=ð ëNÔc[¨ømƒÌÃæÀÖGÙ¾ØÅ^ÎëüR­ â©\cÎY #Ôå Ë¡7ÆýIÇé¸;ÎBŒƒÆ¢Ñ×êž)ßO£<¤ýe;Ȧz¼ògµ>P¢EåÕ¼à«GéÈ)-é‡PÌI]¸ìž&ßT ¨$1.À_0­1a¸y©Å}kt+GAUxk}‘¶|)À8ÐSÅriPô‚©fà ÒŸ»âm2-Ž^¦³@ëSÊÿÜójV^NnñÍÄN±ïÉk‚ÚœÄCÙ˜ËßÏe–…³v`'$¿p”¸ò˜‹ôé©“ÿòˆ•}N‡$çÀ*=F7fYæ.ØRg®ïdA&ˆ»†QÊ‚¨Á“|Œ­ìiEÐ^]ÔQÏGÁèHÅkªÉz_³¦l[œÄæÔÀi¦áűc{Li“îxkYÕÌòm±~xy¨ŠDê4Î`(šâ¤ xšP£Œº7|bòᦩ®!9˜T½€=) +1ÖËçb5Í-{°l \øß@=¨v*o`ç%›RüÎÁ!~¹>YÒ9Î.­ÿ ÒÄ•G `®3]¦’³W× wö²¤jÅ)js›ç m¹¥wãß¼1Ë '»™öú‰¿0Yˆø6kÁÛüñ|JQD}&Æ]xÿ®%’Çì…2dï©H§ör +Gó£3 Ì@Oü¨9ÉÆ<©ÂÄô–¬«ÍÿXË!«µŠ6{YˆÞG¥à ÷O7iÅáoj¹n4„TÌÄ[żóíEébª¬n­ è»Ä6 ¡®Üžš +غÒKÇô²gŠ™¿)ÙÆ\¤åº¦y ý¦|/ßõ6%|Jðq³ÜƒC+Ãx:•6]ø¸Hë§Ê¬úWô²åHõ,@¿|:î¼=Ýd÷FyÝÞÆyç¹êSà Ð +‡âà0寥H§`¢žüÈèR3ù5d¦Îo: f £wî,(~E$(öøOÕCV2þI" x÷Ö–iBTâ_½VˆéZÊv4½+Õ}×fa K!Ú_sEÕ +јi¢@=F“:P*ÖÅiòµmϨ–ÁR£f'-d3€ýeLü™¶™­ëL§†°ê1Óë×;„Q +uWÅܦ åE±Æ3¢&ÜeÌÛi‡er¶®™e¿–‚eLcÏ/Ÿ(ýeç]õHdNÈÚ+'/¯>±íiW’«j4ÿäópAA‚.½*e*Ç¿Y°·$—]lR‰¯¥i2ùêvô˾uQ¬l÷ˆV¶²Fãí Ûi¿X€Ù☠¤I¦xé}s©ô¹P¡X7?07Ÿ¶y–I;…%¡=+KBhq‚W¹Nc½‡Eó©EÈ>GÉ RvÀÖÉ‚[\]J›Þ™Š.Ò•òA‚L&Û!LOêLämÀî ž9ëØVÉ8-ˆP¦2ÅF&YOÞrÕ‰;’5w[mÄ /±¿ûDk§°j9&Jb™[&ß`¸ìô4d«©Wóß’¡²‘j nÿ5bJM¸AÇä[8TËõö˜ÊV@ÇÖ_Í3aGs¬Hây´c›Š#)Ø‚Ão{úÅ*@:`Þ‡¢(ÊQ—«¼ ãO^@š~M¼ïÇ9qoÞ‹õôõ'óeÙw Y– ³Šý‡$^ôºjð×z¸ØÞ¨kk Ÿ¾çÎ9§¤‰½â¯É–1øg¿=ެJ載Mn'-ÛÑ´–êû‘­o±çP( ;=»ËAìgį½D„&P³÷}Ò|ìɉ +iºÀ/òõ—^³SVÎ/¥ôì\jç2 Ðú›¹IÇÏv’¦[Q&Ìw3„âÜâ­(ÒŸÕße£L¹ÂV£æú1Ú¹Ž.ƼÛ7\OíØz=—¨;Q½¹ #«٬Ũg|[ý‚W×Ô% +ÆÌ”߉ÄD°¬/s^ŸWPï•Ç{5-Ú¢®*Ôp¡{ý­/$îàZfM‹!–¬¾ÅHBЋ¨„‰‰ºVÖB Wð$8Ÿø³$¶-jK¢?åè@Pd2<ªýÆP}ï4º/Ê×ñ-$ +BˆKr…&”³(݃*†uÞ*ŽS)îñ-rAA™5³RUAul#T@ÖåÞ’ükº(Ì@,>Û·$4ß$U~åi™Ö)«³-ÒÑb……¡E@©€…S?™³]±Ë0Ïœáüð<áàÜŸlܵü´qt}È’¿%‚åM̃2ôw¿íÜ×{ê,™lÊ…ö¨ ­H +ª»ŸaŸSä§ó2=Wºñ©4ïƒ]yô]Ýwl<%¨ýÎÜù‘;ÿÐm*_h×záß+³@¥KFwɪG÷[ÍË|ujìjŒ.b.ólÒò¸QÉgþóB2ÌzÎ)4r©å rwÙýGÙV£¯g–´—ƒ€6ˆâ¼91E§§¬’¤ô¦Ž¥nÎPòH"n3hü/<ŠyåYßY)Í隷òôàq’òh¾ä¼¾{¤ƒÅ[®ý{º_„PAà=Ýaê,ÇØ<æßeç dVÊIbÀ÷–]!6Ì\ùŽý™YÙÄÐÎ >ïšeï?ú- öä˜q˺QÖz 7¿‹Úc@óEo=nnH¯¼îÜ´¨4#% ÚTí»üÐWû6¶ÔÛ–2¶"¦06ÐeŠb¸µ*`ÕMpµì™Ï²!èe…_ÙR‘œØ:CE‚Ãè²|þ’¨‘WÇd+´V}^Üò£i|‡Ät†û$FŠM¡»¶]`”Aû·™ù((ì‘ø²ð.zÊÙg™ -0ø¤—”à&E²º¤¥.Þ/ÁT_Ëôå̈́МРñÆèJ×Õ•¬5*nr„"+o~¸³×·ç<¢qƒÜ¿ðóàç´CÜéQ@÷? 34½¼cï·ðiƒ1`.Ø'FÈZ44õOé˜ÃúvúÅîŸH©-Vž«äy†Þ‚>DËf‡Q¯Õ +jÔÇŸGÅd2jÞ ësœBMþ:}´ ¡¨ºKj8VÌuï[Ì“-Æ‘r¯ç¶ÉÃ#¯{½FœÈ¿ä¶ÎîÒê#HߩډÿIÚ$E@Kï|JQU`zý°´xÇ–k=g›)ãv¨ÎýÚ{ ¶÷9¿ízË ƒ‘¨sœÓ{b¶‹u+…Yü¥®xÑÊñÆW"D$¶Øæ~ñ&Óµ:¢Öz@+Ó½"0`wA#„¿5}ÇG½µìŸi‚S¿X€M(ÎWJï(½G‘Hì@@uÈY'Rx˶§‰àÇ2½ÿe€Ë6øoÏ{ÃôºÀô:ìóJG¹‹’ÙȺÜ’»9L3(ÛQ,uRó©pÖøU¹žã»×EµiÆzÝuŒçxP8O±Ú‹w …lÞütåLJ‡i·žÒáï­™þ#– «Ø1àcô\0ï}ÔXý2¾å!¶]]ĤþçEHÈ‘‰R§ÞI®µµB92ë„…]Yp@¢(wc<ÓbÆ»æ÷ÏÍ=Y´-]·iŒÍ ¨A¯,R‘êhÎ+ |Ä)öM&Ž`Y}«„wq + ×wi=«ÖTªÜÂʽwéÙoÓÜ„^`z]kôµ¹°(Òûµî;vŠ×Ÿ;¥®G¬¿k–VUЂé|öë p´ šSL½³LµÄQ+¬7B™~Œkm‡yþ‚¦B”^i|”v¦RŸÏ…ißõ²ÚŤ_Ô.®ö´c‰ °ƒˆ-i!Ì#Ù6•zðû³©kåÁ DBž#©‘±vJ +”½‰=HÒ]Aû +áÆ4íùäÁîûƒÉH5B ´jr>æaöôÃ&$Øù LÖˆ*äoqF)E£%µÊ›+A¢M­»¶dªZ4‚²Wb¬_5±êè>%_KLvU%¹À‡Pf*r÷oßîµ^qÒ~?÷Îx†"­~ ]kVþ‘ "-ËÑ(æËCe0ÝmO÷ºÚIÞøô~_ørä¨0o›=ÂÝ+´íž'–òåÞ˜pOßsñ0%ºQ0BgŸµ}!NÕÒ+ ¨îøt PÑê—1>¾8WèÉøÜ2mŠ€œmvãÜÜ$š€#Õ9‘éàÊ¢leMxxßÓ•˜÷x3nÆ)e%h Á“Ú²ßI ÎÜ·µïGÓöU¦òv7Vc­ið`€4¬DTg—+n ºd›;fZ¢qDC@H`&´…H•¼[C†HÙÅGå¢õ–Zذ Ô,™å*t3t¿ë:G "xP£³Iïý…&²ÓÅà|…†"„îª`Š’Yº¦Òe}Zy2Ïî!hRò“Ø‘Vn+A|eô¤1‡B†¬X¬¥m ×1¬quäêÞe‰¸¯ßëðŒ‹Çî8•;øÙÜnƒÐ5{Δë@N%‡Ë]vœ±rOqž¥ƒòá›Å’ +O!mh)£«eÚæ?•2hp€Ö†Q8äCwô[rÌíÅzŸŽP0¢Æš<¹EÉÕù(åvXWUÀ¦âÄà¤æJ§¶†FG6deùª%VÃÞlPÇF:ô£ªé¤xöÆÖiåäîiÕ:|æLÂÈ%¬¤¾) +H½«—I u>Y⨭\ìíªÌŠžq¤~!s'gƒËP#Ûmü\¦? BK5¹é|¶¹jý¢÷Ñ[äUà«Sh«q[4và£I›ÑwR½šã뜶¤ ã“â̳$? +õLõzCfÊÁDNŽðùDñÄ«üãöÁ{µz´ç“üÜÌþÖúøѬ`5o¡Î¬=R³8„ÅÿÃ÷IÎñkpH•ÏŸ.š€#3’$Ö`<‚É®ëtÛ¶o'Ááb^‘$1Nê8¥€ =0ôó;¢í¨:'/rL²xÖ9:õ‡ËY˜¸3¨R²S¿ÌªJy]ðºì¡ÁSàFÌ·yîPFö˜‡Œk{Åß0á0 zu}+®¬àCÍpAY:®#ÌÑbñqO‹ B~"“„”kØ[5I7˜Ç~´ÖeMDä£.Î6Ãé‚=(„£á ¿™´ +ï™CÊ(Ö+ãýh3ªgƒhcôŒšd ˆê°G->ºÄNÕùLý¢’Õ3`<Ï·‡¬yÓISÔÊtót—÷M9¡H`Ӭ “ò«Ï\ç°ô3¶¯µ Úï Ä ¬IRUl›¿0pÇdf}8è6·(G$›‹Ê`GË‹+=0ÜeÜDІ5ƒ"Âps8öí=@ÈìˆÒ™}©²:ÎJ˜§–ì· 0·ôXŠr»=ÕÚPÇ—Ž$¦wÊ ×>oP +ÕCm¥|מ§[öXF x í|TX Ý,5Q)®ë uÌŠtMcê`ÚÓg„itdf¸ÀßïäO$׊àÎÒöc»Ò’ªGãó®îâ—áîÏ–©·¿ÈgJäw\¯¨º¹Ëïazþ¦À7ˆ?ºúí>8qHAn¶9T }½«ãò˜îíüF å76ÞWžªt‹[ʵægà{‡&œ|¶Z-4oŒãÚ¥æƒíœ½f ªíîžs‚­ða¤×0ªTÏð/U9Úÿ8/pñ[‰˜‹)Éò®·CâW÷ ¼¨ì‹ +1%>fœ‡:š@Z HZº•ÿtÃo¸ïµÜ5‰TA; ½_æ—š/Ί¼D®âí™~ˆrËA¶c] •£ Be9co=gιfë?q–R·žüÍŒD+M{)zrZÎ×ÒÌ9ˆY5Ý.vƒ ¨iaùN ³ïyà<â8þ£¼§(>Vpø—ù>Öë·<óhuþ NqxC,8‡iµIQÑöE•`Ç9çK%âÒ3É,hFâdisÔhÄ3Õ Ç5€r*æ£ôô˜ÛFO90Îo”I2gjUáFiy)Ho®îÅÇä¾j }±M™‰æî’Þõg` Ú§N„âÎE3(ÖÕÔïˆ8’GŒàƒk˜ÜýdÉÈ'¾Ò3rUÇÖúþq–«µ{ku¦7]쉦™´RrFHÕ*bÄ£´ín›E%#Õžè•*~×°rMaKà™]p¥Zå!Ä®pù¦ã4Îk§,}+Ò¦¤*þv5lïõTi¤™ILPLý[šz¦Ž +ø½ ˆ6@ŒU#£¦¥×ÏÚ—•¼«Ô1ûàõXVãV»B:@Í´^Lš†v÷å-;I»kUÛÇϯYÅw–$ʯ¬šõAÍ7²$›nФ>w Ou¿ó²·šïÚÊÃí»[í]?ÐAMDï·—%œ–réñݚ̌(ŒÄh#ŽqR”d?2<÷;НSz— +õ&TÚ¿b©ÈŒ…;qûœ ¬DBIsâ+€%njHþºÜ¿·±Æþe ønµ§,û§ó~‹]7½@‰éÊÊR{%¶çTÍ”0úNÀó$¼ýøwµÞBC—.!:4îÈ6׿”ª”j¶–‘Šæ¹^"¹æïCWj9VézÀ“0d²Æ/Ùot~É !SR®ÓßDp=›mèÿX°´‡1­Ü%¼ +á€þÁT—¬<Ñ.Ŧԟèi¯³&¡Pò„ÅÛøåÓ*º®‘Çcs¹„Öf;g>2 +vgfQúkÜ_ubiÄ(H‰¤¸`òí<:š@nS‡óÒÂk6s*¢ 3ö‡Lˆ”«ÒAí+üϸb9‘1‹kP è! 2ZK(E¿³}É÷ì¹¶ßêqÎòô¡.ˆMŒ’e[`ñßDñFÉáâ×kA‰XÐåóG7Ú¶š—ì@:ƒ2O –.Ä‚³L9ˆì¯\X56fìh÷X3'_‰üŒ«.éê¨Hõ,è:% +á@Ýu„½E«ÂkžO´*eœý>˜|¥b=º(øš´"·)_Køµ:°;r¹"ö¬kÊW0ö"ˆõ2?Ìb«Ô9ÞÏI­{ŠÞÎE[ÅEÚ»”ÈM°â:·6£Ì_‰×Ž!ögQ‚å™ã3½”~Ø j*ôCøðc"õ[† €°K½2Ó¤n”ò•V÷ÐÀ%!•KÏÁ±näSóéÑA[|ÊpY¡Æfáæ;jžrjz}¤:D´-Øìñà&' +ƒß:yÙhÊåß×Éè° –fÆè~FªÌüTƒóƒtÝFaì’3l¹# ¦ò†¼Ø¶õÓUó¦íAV_Ê¢™i3/[e½ƒÀgñV‡ðr¿i¿áË!²Êô¹X`ì£*¡¾¢|&çÛ('lFÌX¬#íµ4\«çV7!ƒNQˆs†ÏŸ#hž·‡ž +‰x{©%Ê,ù«ù’xé³ÁYwʶ8ÇѦ·5öòY´4Ñ(ÿT~´ÑäŽdÕƒÖhô(²¬‚K ¡Ù'N‘(¬¦×MmxcJð²àFØrí;Çã¿à,bØ,2Éò^Ud'œ?vÀë!äF›9žk6ä?ÈØ¹W?Qþ¬x^B\ò¹Ïrñ–ÑcNKkØwADì[hrÍ\—Óšb&?(z÷œðIqë+4B­Bl,”ãd[Í=BÎ^3-~}—ŒœaË^¨0;!Éüê±E†}ü±PÇ(ÇBòp¤YÛ4AàØÌZóÛ7úT/:t(Rª$w}uõl®‰-†[ÉÞö´EÜÌ òù˜"À§BEù¶0Ü›^–L³sÙzƒ—/΂kTqCƒ2LŽºìÅaOú‡/ þ´V°M­YIk™$bëô ¯#ú¢’e}!am]ºNYån°ÑnŠC™rîF!¯¦££H¥Ûùé CùÏèÀoY"#Œ¦‡úàŒï•ºBuWµþÓ+ãÕ9.e¸œ‰çš~_uù\JqX7©‡®>òDŸ~“RRè#¼CN«Ûö’ÑbfÏ"÷×4‚õŠ6fŸ4°)é(©õÁ¤æCŸúîGð‘ÞåÊë+¬9îI*àM 8uña=siQúÙ•<¿p6ó犱m°Ônî>:F”üBw8êO+=…îôŒbá«Wé"1_·€PÏ>‹žtàº`\?mòÛÜÖÜuV€¦©b•ƒPhC—Š[Ùë å^±Ú'›L Ä;);ê•Â(ú^z\ÐuÞeã•’uÎmÂa…‰Dʹ×T ´ßYHý‹"ÓZd¼z̹”´fܪ¨,=“îmâ¥êIQê ½™üÖ÷Tꦿ&n ÏÓÓ¢75®:ؘ"¼DJT@oRÖÉÔ2.Ð|8¹ø Ö#hs¤w¨+.ÌáwÏ?ß,­¦‘6V'R¶y1ÌåUlû±×Õg"# +(ß'Úþ´’ÑX±_h™¹[Ðå«@HuMÔA“Ð*¾E©Ë‘ÎŒrú+XëF––Ïq¯O°ÑC¤ù'×y`CÇ2ÏØJ=漿©mDìÜðþ¼YGËâ=zIQþ#Ëv%‰Pše¤¯P`,“Mêñó p]8&[gÐÃìGG²À ÓüÞ«Nì¸í›y· +ý±ŸŒ|Éw*XÚÅb˜tvæ8ÍÙ”!×hñBr]u!rèa‚eY=G-õËϽóÏ£…¾•éýU &]Ó“îÂRBC!HH%E]¨èxrÕX¶"q‡§¬˜Y;K9]"zÙñÅÎËÈÄ?FééÐå‹>A9?„Öí7Ìø+ÐvÑ~MOrõ2D^䎣Ò…m{¦õî줙ÚÍ&Ö6‚áðÁÑ7o!>¿Â¦D:£¨ëM//†ŽøJŸNNNO-ªmà̓GK~ë/“?؉[ù'ßù-îˆ1òŒ2îþto®A!j–+F¬ÑaßqË69æ~Ã"ÇJr]âV/ó!½îùd-Ž-s…W§±o, î5¿§–I2É yŒ°”! KZýûéŽ*…Õâhþ5•ª=m¿›á^k¨ø;Wo*‡oŠjÄïOWµQª­C>r.§ˆ[ÕÈ ×LùʰÊÞZ‰E²»oB,|ÖÓÃ7”ÌúÖˆyo¬JXdév(§îûÔþ‚Y¥JEO»øÂ©Ü&ærí¾uL?noÈÊñ‹–½ºö€kÌaÆã˜‡*ºñÏžKP+ζj |”UoÖ¼8ú䛲ùÏ^ÈåÏ´!?šoä/õš ׺ YsÕRŸÄ:ð¨Y2…Âq?â·ù³ó•æ:5K}ÈÄ;Øáþ€JŸ½EŒ€z Q°•#××5l¢È9þ‘Ž_k”„‹Ž+>l+‰óФw'5QÈÎ¾ÆØ“ý°-χ8Vhé½eæU^`Ìiϰ÷$Ì¡åñÛªòÝ5оq*Q é¾ð:w„…ÈÒ>ìÓ5O†À@!8|dëh`Ì’!Ê/s™}ù£/ü¢Xtåv•¸¤ØÕý—wPý¨>Ò^R>{çjz]¿…5(tI·a`_”£twï ¶¯FCAb¥²%Çé[ëëÀ R™˜º3´J2Á³³ãˆ¥§¥ÒðÔ¬1tšÃ ¶nñÝ;j¦Ù^xÙ\„Ó)tgÈp–󣦭Ôé2¯·K-ò+Άs7‘aª†WøMŽìgΜ+Uè,_šë¤¯îÀãöÇÜR³„Ö€÷ÈÃï80Þƒ.Gqx­”Új¡¤-æ¯áè ó*q*Q}Ž ì=ιDD“ûNÅO*¤jzl€Äî'þLUzsB³¸Ì¤8Þ"cQO|6[[Fo¯ß¼ŠDG=_Tb”ÔþJ§ÿy Ô¼øS(­(Ï&ãMËbš|'¬üm°m}Õõ4÷1Ç4T–K׋vQ„ƒ1‡$ZE¥ïÞFjnS +bÛÜ'÷Òģ޸VÒ7².5—Ãp 2ó¸µËsºR5xL´±Ëú´@£Jlmx«ªLÙWFßÃâ=0`P€‹XQÇHìTn¦xdÊÏ€e¡O,µÆšž*›7’ä_‹•èÖõR FØ1’¤+µ³ÞÀlŒG.Ü78¥jSÍÚ‰ZݘhY3¹Ž0³ëÞ³q*DGçRFÂî<ª# ÓÖFڎĽ¹ÃH/ªP‘ÔO¸ÐеUºGx‘ާb>ºË‘#~I©Ä.›©Eå_ô“Åéz÷”¬ÅwjÍÙÌ G‹„ëI z©åó:C¯°g¯û+©çBiggëú]T‘ý:(&+ä2!—˃~"^½Ä·Ó-BÖeԈϨY2,y»ÛKODO!’}Rn×—BdEÂ!@Å̈zS¤ö씽¶QdŸ®ZÃGÎøÕˆê£ k)Q+Å6É®Z(*j+ë,§ù›KkNtŒï™ë§¸ÿ̯†tÞº¦{cøSúô&èûÐ÷KPý6ª×æNZ§‹¢½ÚÐ+ƾ&vjjJ¶õQ˜3¤/æ‡/×>çAg©\*µÃ(ìžýºé ½\ÄHù®Lbx_ßÔ!ì%4ìåä†=¨ÈÉ#Eò±}Ô~΢ãayû´Zws ap +>7€± +!ŸÓ'5rê“ß_wÔ6BTœo?ï_g õÁC²ýr?ò¥x+Îæa÷&mDœÄÓdK¾±® ŠÆƒNuðVÚµYŽ/ÞH×ù%Ïbï·ŠÅd®XlHÆh²Éè|Ciä!ÍÇsÝá +…K´Ý;°K*hј/:pmâÏlŒ· ‰‚Fm>3 d¶°mE,€ÖÓfÏÈûÅÛž8…kg1 +Oc롱=þ“pX*³ÞФµ=q‡|U%#‡Ðšwxo„†k^Ã÷ÔM•?Þ5 ò´)nFz$g5û ÷÷¥ø ¨"N:¸ +•XR<]Ç»_u­Q¡N¡6#À'¾£:ÿç‹"Ì‹y%<‚ÃDÅ ÇÌÚ܉GXóš»>z.P*Ò;º§‚1j¼Æ ^ø=O½½”ßÓ<˜ÖRûLÁ+ú£ÆJsCʯî\Ò§‚ª T!±IV“û21àÏ–¹àÄ÷çço„IkºS¹ôxÌ¿cÍlÀ¤uA Y¬%¯—+¸’7aßIt[w}áV DÓLd ÝM¨ròy>`‡%ðßH0ƒ1#¸Q^ Í\wAñXaÓȉëC$É`7ñuœë]Š´'ù—Þ–C2X²]ílˆåR6I1i›<Ñ-Ý„=" 9g;å©ÐV¡S” Q1Ud q«">_€t¡šÉ®½ó{ŽPÖÀ\£[µ¶Ü„¬îˆ0„Ç“¥XïÍoÕ&…±ÚÙä+‚ç9_¨†ÔÄUnzHæKwtaºmeCW×F.ئºV²ñM OV%WÅ2yDDmßGxÏdü©ËéM6êxño{ê] mÐÚù¯4Ðä¶*¯<»¿ï0ã4 +n@ ï¸5¿¯räó4¢‹±ì;TÛ£ájvÑqU/ôuê%o°Òqêj_ÑiâðvPùÊÈ.¬œç4ÃW½Xê›?|Õ_^Ù®Ó`\·­#cS?ÿ¥´íOÁ³Bã[ ÂuÎu·8lÏÑ#Ö‚÷Ý3^DM¡Mò™]gÌÍ9{ÁWQØ×fe×÷Ì1í4›ñ“ìb‘y&iù~ð\ÿÚg4­Z‰­Ë:/+®ÉWgùso qfò´fRå#aŸ‚?9Oæ2´û:äi —º´&#†›ú½šþ>¸C@l¤™óÕ "¢>iA‚dÏ3ÊOjÝž|žæ0‹#ýõ}BÄ2‰k~j¬âœ”ÙEæVC´©Mg7O ~+àXü¦ à÷Å?6 éwLÙ°pá‚̦†b,“9ÕËÙ-²0Âô—‘˜Õ†1O²E 8éZjŠjV¥.µžÚ“ðK7†+fqrÙ-r$é-–೑"ýP µéitN¯Ö!Aö»¨W4†èçV E*ö^!gC¦LUÅ5­yIF¨>v '?ß½ +>‘ON±Î2¹œQmÎß„#«Ûïæ“„þ誦ñ‚-„ù÷Rü@]H7ÿÕŒévüà1xý‘6òǬ:tV›6´•0;˜œÐ©9FˆÕ±÷Ó£Ó&î^±PÑ~‚«Á4äЯ/ª‘“ë¾²W}\Q~1øiíQJ¼aRº³îëúOÕ™í2ƒËg•­Q·ÈBF4|öEÂèÅyYL{⸹܌;C.+¾ú½~`©:Ó]Ù=#[bm[^¿3!í'äÒò®úç4ƒÎ3 z”_wÖ¦èÐ…c|­‰)šþÃ;m±{:ă• Rõh¬àv7MÐ,=ß4E4™åx×^+”Õ&<¢¼á—çþù:„%Òƒ]Å}Öɓ߱iùoƒ”eáýn÷zI‚²(·›aRpöNþ!«Œúïh‹œ–Ç1¤eM ¾vµ)ë³ÓÁQHñ¬·THH`úµâA¨?`ø@@V*û¸È.ôJjØñ1‰5›‹ˆÇ`éC‚)Ò†a~áí +½ûÂQ¼ùøžnÚbï¥@_‹ù=; +I,Ãh#Þ¦±X˜¹’Ýw°kl^Tt‘ûæ¡‹°këݪŽ#ïÚ4晞T¾¯­·®¸9z–U¡þ}{ü9ëk€ÞúÌ¿wLÜYñeçÎ¥ã+ŠgÙHòÖï!–ž¨ó¦qiàDO-™rMÆz‡H³öt² Çâ_Ù +×5[xÒ²Q¤!ÎÞçM¬xA†Ù}NÈTz¼&³~7øâòÓÞŸë™°ä–¨IV7k ¿ÙcÝy2’ +G¦j’ÐÓ¸…dÔ‹GÄŠ$\}wÛP­7DÅÂ_’!ø3§g„ ‡•¨y¼T?NS›G‰0S¹Ê£IY§Ó5¡0¯¤ÊA›\æùœè‡°ÿ ±V¨ªÎùjæLˇ‰1ÊuÚãiÇFü9ÙÒt ê2ªê*(p×ÎâÆeüjL¨÷ý%Ì S„Áˆjc‡—( Š?í€7'Å?'oqÅDºƒ8îäúݪˆ‹-•IqàLmñ;-ÃYMc¦EgJºMä Ùì$íǸg…fÑfû»ùé Dîü²]j?¹Œè1Y&Évý÷ÁÈso4¶“ÄíŸ}›‡„Px&ŒÐ3“D…†ãÛb ômtLŸ/0Cópâ3ãGQ#óæïߌæpþú0¶mŠ_zÚ»£ÜC©à/Æ(½êÓ(kbi“‰âqG^ÞÂR„¯TÄ;5ù°Hñúê¶n;J’ß~žIÃaCòG::2µ¹Dn· +‰@š?¶ç¬Îþ8Ïß‹”.(Í­›Ù6iTQyî»`ìïkk!|<**•¤º4M¾ŠÐä8 –˜m(Çélt±X ; +Ò̰ õ¾MÌñ|Ïêfy¦ÅnplØgôbQ•Z¢åß^“àç¼™]uÃk㱦¤w~„ôÚ@¶KóÜ +@¢(]ÈiA?™ÚyÇtmGnÔ†$Ê'*áBL/×ÙÅ5rÀ¯'ݾ\ñ‡TâÒ`Ê©7ªºÏRë/³-iÃÖq@ÖeŸz„ÿþÖ9n¹3ObUnóU)þ¢· °P4ÏkóBó©ýER¥Á¯àú [[Ü:çô¡B—»È} T`”H]¾ó€G´@X}† p#W°6I±ÚŒR8cãMáy+´ý;}áHë•Â(Ã’~yŒ1¤¿Uõ6äü|G‡­¾_Ï ÎñícÒÀ×ëÐO[Ø<«ªùùs35ØY—ÄÔR2¥¥¶…¶¯4´PðuçB-¢Ö¶ ñ|¼f{õõm²Ñî5¡Àoaÿ€0?ŒÑÓ…øÇW¡—u_5Ë;ztÒi+ÒŠÄC•«÷us#}=¢ÚÏX8Ÿˆm•„aH-$1h-÷Uõäîc?°¾_o²€'Ÿ}H¨ ÍþÂàÆ#ÛàÔôz ’[k¥¡º@fÉmëµ/×w™¢d¦ß¹Iç>j‘7 +­ªyž%«©Ü”Â$Jø÷8Hi¬äÈõðÏèWo jñáOÁÞfͼ<Õ¬Âd00®Ë3ÒI~vï¸XÏ$"_\kÇ2 àÕV‘›Ï¼}Yïö»¸!ª™Ç~%½¼úêé¤ìBíó[wƒw±Ûe$Âw³—,/gü*ÇO< ‹µ¡?x]e쩸)Ïu•q9èõ!*‚·ÐAU )zì³ ú]ôRô®ÛL³Ó=uñûBüÌm½4CAÝ!$íL‡êCãïP·&ý°íyma­ò4©*ŽåÔ3ôň@E­øs“ +çú‘åþ6¯¨6‡e¦:ìҶð¤m×ìPgâ;²ò·’ñÀ»€Ò± +{¯I"z]ºÉïÚ{g¦"b<"\0Ʊ¨’•õÏ8ŸÁjâKéÆ@I`?ŠÀNcŒcýöÇÖï†ÛÖóºNšº7ˆ¸Â.–uö²ZO#Tfx Ä1í7ê3Fçqy˜'˜©vUñÌé×õS5í{°°®+C½cµíùßÅ©Ë\1ä¨ûÛéo²fúÜP -Äá]˜yóQ~o,cêsÃÂ/ +([HYšxÒÃöÏ©}<ÇÔY/å:E™HkX3,nçIVKÞíI¥Ó^hòðYD¡x3QŠËÄAª¿%­-üвÈô kVп/!À`EÎÊŽÀ«¦ëÚËÎ+ȪÈÁùS7|iéF— ÎCs?§–!Ÿ¯ù\ WûNˆÎ¡7_n!Ûën¡&Luµ´ïHœ\•JI禧‡êúË+Œ³ù¦[ÛÐŽ=¿/YÃ{§À˜‘kuª¸_®0˜Å Óís©4\ä¨2`i·Ó½ë2+‰ñŸ÷×Ý⯻e§ï0>ù¶c–aE*S 0y®6›‰ssàÐeÖ6!þÐþZÏ2‡—'ñ½Ïëƒ]ØÛñ(XUÓ¢È+#®"Â5ž¨Ïê²W~“ªZ$BÑbÍ/F)Zœƒ¾Í¬Ë J®e 4,dÛ𠠄=C¡|*ï‚kÌã`øýµ–ÖAš–˜µ¶ƒú²HG?ºnýziîmdŠ´8G)SÍhÌ?;@zuÆË5ÂëëäªúÜ( + Âøø^gž†0_ss½Î§k®EWŸìòʱ†Wáó. NîÞ_÷œÚSrKAWy%ZF|s^…ñCdŠ!S>ëï㱫¼Ð™ q£]pw") +åsœ`ÝS«¦VT~˜vPTd*­µž¶x™ªAM—q²Úð¬1¨@4æawÖ!Ù¹¦£x”ðÿ1È8HpóJ7Yd]‘¤wb©ÈÉ­ö$>éá=Ñõñî«yÈf¢PuV´PNº¾ð\HùÃl>ÜÔ³@ý9vëCà÷úñ$b™ hó›àÀº†æ²é2? ðÜ'¿â‚Œ<úb3`‘±òý§Œ-³iHÂxNç Æs§Ø*ì±Xßâ«© Uþüð¥‰o (•`ÓÓö3MòÝ,P‚‚’g)êŸG©¥ŒÝ÷Bî©h±îõX]¤Çs¥ëÎð¼ÍYIR0Ž‘Î#n¿krg%¸·—¦äS[÷ÇIÕ`”ŽL›6жÑ'‘EL „%VR{5<>Þ.}§\YN?™«Æƒ& +>^FnA-FÄЈº( (À±ð›Çq«(EuQÕf$™åЍÛÖXÐY!¤b¥Z«ˆ…êzáMŽ,Æè¯>Ú‹'­Í)y¡7Qž¹l`\ä×vZЂö¶¦;9¾õeD炽Ɏ™z…Ëe|'ŽÁ^EΗkI-'.'Æï6«‹ÄSéŠeTž¤‡U޵çþ‚að^b·‹mêüY6¸ 8ß 7ž›à³¢VrÛe¡I*Ñ¥vл[*9!ŽéË(ÝGíä:ÿ@Ü% z¦àRÕÑÕã_f,wë*Sp¶6†Äæñl‹V´ï8´x«FÎDTxZ–WŸ:X¨U –WGÏøˆ.=BGzÿ$i:îþÈÇb‘)iņOä…0Ù¬tßÀ˜Žd’9©Øï’qß¹/XšA#»ÉÃË3ï]{Ù¶#¤Sš1'iµxŒ-Ý`¥ËèôãENj!ô¸êªFÊu ZHÂÞ#Š‚¹•‹;¶/Ús‘ÏN±¨Fwp’Xm—ÙT¥ëÐ>)pÁeŸ_âѾÌõ_ +è2ôfQséfþeõ“Ì +ð‰cNû•ÚKM·{,à\¤¡¦üfxñ!µ[h³'ã2° Ÿ ‰_u3ÒÓp‹Ž—]¹óã‡pSåtèÜv¾à=ø^¬e•G/eËÖHKÒ‚mwÆ®¸yröóU³™V},Éñ±¾Sg~r†û´Ì5£:koqpž 7”#VÉ8 ^B! ©þ ²ÚG#+T)²heü ‘P\Ø•¨µÁ-[,TS‚}E2õô=êôF—~É,ÀäÛ<¦ÅÎÝ*ýdQãeEͽªæå–±Ýÿ=•JþTçùîÌ£«zpÆàŰpê¬îð ç{ËÜW/‘l…gS=žLAQ{…ƒì][)ÐQ¡"A¹Á£´"e&Õ·|®Œz<:žwN‡Þ"CAJ®´p÷yÖÃ9è«k6vЙÚ‘”@´Ãa!~Óì}¿ˆJØ8?Ö©¡S{øÞ60zï'8ýøs™:A£ú`]øDúW/c®3« 1žX÷þªYâ¡=êý‡àLç˜2€@ÓøÎ|”j\úŸDÑ줡DÐ\é";&<ÐSùºøxª5攃À¨{ªñþ²7ñ¨Láõ)ßBÝ}=wXHEöàP)fnidI¿A4O“Y§ |CZY¿pð˜/8´phņ/U:êÃFhÞs¶_o.v¶Ý“nùÜŸÍ+ŽÔè¥`Ò;¿ŸY@øÌÙïSKé½WÅÍ'£wñèlp[BUÅšè5-­]n””Øô¾V¥>Ä Ävpg&fªúß[Ü™„kJ™ݨ*ešÄ³——?œþ™ËÊàÁ˜ÑJj| €ØçN:AÀl0FœO·M +¡=ÍùJøCJ`§nÝpPáõÈ@}eÓü ˜°Xìc«››‰É@«]ôB¬“Ù@ÇsYð¿2C²ùø¹”6C J1s²cž"Î;åumíGÛÚç\Æg'‰¬_i´Q}ƒ`¨…vÙsÔX&鶈ÅÒã³Òïû½&‰8aMÇw—‹gQ¦ st(M{5ÊïéðAº±å@!â·°Án€ýÑ °˜}€ùªE¡‚UÃÁþ¹T¹ùèúó¡ØPm<¸¿Èõçg÷Ò²§Œ•2Éb!l n"Bw³Òƒ_8þº(ë¿Ù¤ëbË?:&Úpåz§$'+÷þ‹¸ñ Åklð?N'#zÖM#†Kd +ínX˜>Œþ”ÿ,ᙋjÊ Pñ'²»¢>ZÛIg»FWÌNRÊ­œú·™t6ÏP£ESS&&-çµ.‰»ô0˜Qä­c+•LÝÂ|òfÝÄÜû_x(ߪ\ÁåXt0M‚Nœ†…Ræ +73.²P¢:RiÕ E̓Cƒ/tþA1¥‰¯™ÞÌ3öéÞÄOâ“å9£Úè¤j!ëÿyÚƒjÞɱ…#gœŠƒôeEÝZôŒ¤X⡎X唃Ģš´µy!æðA*ë¢èO“Mš úa‡ÿ7³ÁÖ‹¤Ö1¦ì¬PüîîûÊ‹Cò;7na…ËÓ™¯“ÝÇ sc’¤BÍ 6Æoä5¢±„u-‘˜¦S_ »‘`”¹”4’fÈ| ü‹¨ûú›×à[Ÿ+¹èMà¸V¿Ù¼Ê;ê +bb§Z Ä-!‘»Û£žMÛ¥ |Ü 06Te#â,uçyb ¶Ô•îÓ½LßFàìt;ñË £Y›! ÊVÞ ÛºPÜ +?ô¼^'TÝg-#m\Z 9µ)»R8! YPû54¸ƒh%Îê Jê%É~‰ÜæÙ†‚˜4·d¬|iâK™PÂa‡(Ê\<·öÅÙz8ÞÖo<ÈyR7 DƳyòïgþ„V³X“ŽK‰5†¾5ikïMÒ™ô`=ôëx綪3©hûÀѯܗäÊͬ'–Þµ›ÍÀÊï¼ï”4JÎj®Æã~×cH€‚ýƒA'mš’¯*j3âªz…½Š›júa§öf +%ãc ±Ù? ‚œ`YÕPÇÜO#Ob4šjÕ˵·v¾‡. *Æ’03®kú¤×§2 +Ú*ý~ë¼3sw‡Ç榯Æd|ÄsLú„1¿&¶uÙ´Æ®$B;hƒi©V‚-ìFÙt<ÝÖm”¼éâðoIÌ š#.\«tü©^Pô9±ÌXû¼ 4oÎGæ±$`<Þ[fCƒÅ —ØÙå¯(ZÌ <ôûŠì¶hVÜÏҬꯜœauÞfÚˆKH½/L衆-þ-ö-ÁÔ¨ÆÝXçõ–ˆÏí å×+‡ v +ñ*DªUÆ#n7åKjX·»(J 2æñZŽóY÷?³?šH”X*ø(•;ç†qqÿlÄIµÀ’¬ç¨-8,“‡<éÇ)ìQ™Óö‘ó«ç¢$úÀy4$›¾N 4õÌZۑ¢.ÊM¾N’‘ØCäá£(á›xäÉ£„V.ïþ—:g¬òðx[—¦bEF¯Ò'»bí¢_¿ôÃÉìÏW†AD+æb„Jj‹f­q¢# q gxVÅaYÿ‰MneA.ôL 9Ù?–¢"·LhÆ.ª»¸UÊ=ÎŽdÈm ªpìð)†G|òà,‹pýC•M&8ã¼¶ð?¸]Ž.?8Q¡nüˆŒw\=¡Bá gd—‡ûÁc{íÂòu`y˜‘ÚŒ3%F£Wèf?‹ÝWªd8mGïš`jó@„âÝx´†Ø&leq¿#eâ¬U´*›ëaã±úœõ&ðáÓ·-ÛwžôU­ÑÞ ¦_•0§Kç¹¢ýB¢Të}ÁrE-Ÿ+›CíËÖôƬƒ€Ô‡I7ˆ7€¡ñû3†šÏ‹Æÿ›ÔF u ,æIú!˜4Gê¹RÓGÍ쎃MÚàÃ*3“Å ˜EÖAíåØb–g½¬Þ§Ù•‚})0î¼Â Wy—«³/IŒUs'X¨B¢ŒévÔÆe:Fia’"ä}ªáF±Ü{=ä}ÇÏÓc¬œ¬9ýèð­3š•vò —Ì‚f~s6ÿ +’&ØT™ºöŸÿ+ól›3…çuç>óFsîµrUk(¯ ëpKÔÉlðHêÿ³­Ì?ÿ›¯• yTâ·1âºê&¹Å3n‰dÄw"H9'Y÷%ŠÕV˜ãÖì$VÈ׌ÖYmÞB•è]€Mj§…ºI›¡OéÜPOÄ”¡¿NvNñÒÝJÑpu&8?ä§²cpœPÄþ™Ÿâóù§ÝF’ÇTaß„²ÔÖësߎž|}¯‚˜ms‹õuôºaá +kG cäs2› aVð©óàë[ åÏ?e@2š8@Àœ2^â¹/¡5›M ¬1œ`ÜÚgd½&öÅ%%Šã™ª>¨Õ©´dÎ,5æ|0ŽÃûïõªóK„¶Û4ù gƒÏq9˜Qȸ=é×›‰µ1}SEëÑ^í†Çö€ÑnÓEhõeFD*éušBË`õ+º™]@xñu¢ïh|³v÷ÑÍùvöÈݺm/$—Þpú”?ù©õèÕ³JTux¼o‚HI­K ó¨…ú¢©b¦°ßÀH+ÜR5eÊž¿»‹zÙXO£Çš%ÿI‚,01ˆpüŒY¦úéÙs7·F¬DPËO‚“bÉ÷Õ*|U@”V¥u1W׿YeW xÿè^ùÃpÍ®E”°—0Çñdý¸XÜÛ6ÌwA¶5ÿ÷u¼æ£ƒ0…4—„9Ô\#ÙY Åza“ØßÄŽ‚uºõ;mªŸ;ìR°»¦“Ø#gz‘ÓR÷øoUÊ,Ä/sB¿}\Œ|Dî¶&?-¬ÈÀaO‚9"®Þp·z-ó}™¥Òý‹ãÕ/M ïÔÓ»À$yÇæky¡"}0Ñ,TøI°nCL“ùVÜ ¤F+¾•SëæP0h½dâ„Ï^#}cAªv‡tÜ¥š.:JÑ{©µ¤‹4ºÇЂ* …—š«$RBÁØJ[ªÃ/=˜ž=N¶=Šx9wmêŽo„‚ór†=¬£‚—.o‚F(ÞU>swÍä¹ý_!ô &Bwwë“J—;·eh)Ï x“óûU7éow!þ¦¡/îôCÅR)QgF ÝžcŒ£‰73%mB¡- ÐáVKH"þˆÎ(ì‹s:öí8Œ¯œ  :Th¯ÇÈ]„,uóÔÖÜÅmWëé¼mÿõg]ÔÓhØx7$ñÿ ë:…á‹\.Z‘“'`?+*v¤Rfê–(ab[§Cî-ÛÊŽe?QÊ+÷+}JÛÂg¢I+•šÑ®Ï·fd³§·pKÊ]`¦Z r’.ÀIiÀRXÃþR™/¸åÎs7(,Ÿïû§ûyy¤boÏ®J@ÃIîf3Ø»$ÒBP,0çÈ›”—> ©J…·sV¶¦­®·hƒÄüžÖq +KµÛœíÚÆ…Ï«—T7´Õ-iÝаÐÉøf€ùî,žrœ z‡\鯂_sÆç>DI§±\¯;’®&Å«ÓVÀ6Ѩ +;¼E]î[µÛ¢UÔôŽæ\IqCC‡:@£ΦYnœÞ²Tÿ¬ë½#×c#†¹ãªJL q,órÄ›¹³¯»†ÅQ¥Öÿó23Ï÷sù•þýzâg› Ù#õ9yð—ËŒw˜ËæÞeÅÞÊêR³©ëv‚ ¶"e‹y¤áãû+ùÍÄfSS0èafC¿ï¯«Ûaâ知áÕ¹D¸ÿªK´4’ßî\úƒGĦíNÐ0”&‡Ê,{©óÆöݤs…ó1×j*Y‹ŠõD¹Ôˆ¶èä_ÌG}/>>nOtšÍpŽÁ€Xg‚Ö˜CÅD’ÈœƒzÙT5(…ËÃ>BüÌqWTX„_2t«êtb_Ð[iëÚ‡Îí¦€:‘ ¬?ª®ISÌMñ¦@œ\%pÐd~Ê¿a‹½ª¶Ãj„"ï¬&ÅÚwæàC°1Ä +È*ŒAGi— +9P¥uÕ ˆ«šh§ªÈ³â¨JS8=qŽ_!Ãú ñ'¡G˜›èpo©]b$x¿Ëîð÷j¶mö˜ +à]áØxÔ—!Væ7¢ïÊ•¼‹5Ì9%¼SBÿNl4ÍR§†ñ§m*ëOA L„þ-Ë‚”´Ò–h›qÚBN³lùÚF™–^G‹¬QÑed³Ôd©iâîÇ|vˆ~Ë\íhÀ€Ã^J š¤åB€ÒÂ+™F•&¶Ðä©Þ ÌáÐ%/sžV˜¤”’L·ºNµR +ßÍò_úÐk´©Ví -™ êoRì Õö˜)jEqwŸË/OÁ¸lô%ØÈþ••Š¡v¯ •JÑ%N$)[Yµê÷M¥Ö†õpY0Âæ+¨²¡÷oÐ"Æoa³ ÂÃCF×-]=ȤÝ_)«Æÿr|vÓ4IW{-Õøl!~´®ÁFîÅÙÅ…¾d:1c«UyíWžˆ}¿€[jP‰VÉ9½©¶Ÿ~ º*LØÛµQ1éö£¦ˆ£Ü/&júìC_ùZ„G„€_“›¢6k­>~=?[]Ô”zð°êzý±Ñ.v/„âï‘;ùÚ.S6䮥E‰¾y¦nl)n $r‰[`D•×S²°qÄìj‡uºÊÑࡼúú×iR;Øí¡ß<`Ò¢p[AÈ[ßÄ£)¾FëòŒè³,ZJå2â?µŒ•¤´ùò)^dZ·ó8·9}°[Ga<6ž¢ÇF¤Bj–æ/¡˜±}gD…nhš»ö±nÔñàC¡€qØÿƒH5"èRôq Ý÷{¹mû†8eÍÒë 87*öaúX,‘ÎDÙ‹@¢õFÝÆM64šïaÄçNªVb·Øz]º)½ý„¥1BþYâÔ²ÒEBšÂz2Ç‘û•ˆã´Õjã3å)"÷Ž:ÒÅ0 ÎYRA¼¹ Ábôu4:a ˆÒ;må&¯£A ŒÊe‹= 4ÔjÚ€€÷ŽUàðè½ßµß~óħž©Os—‰ØSô™H'{ë1è~¡ oÜ—ußñSHU‚FÃ&Q1à êf÷ÊŸs£¹1±chµ=„8Wµ{™?ðWk¿±`Š>ò: ¢a¼O²Ñ£mѸî g”â,Æ12š¾2 r9.’‰{eß”×a½¦ãî—дÜ>”C âóê„{§báÎùTÍÄéÅâ¶b½F+¼Vܛ٭Ü0Ëzm…Åî–·˜è§fÐv5zm‚óæT¢Vd`ž}¤J}lñØÂQ—ÛÖŽXuJõø–eØ÷SS¿ ³çDð¾Ìf +få`ãùÈq‚ý¢ëï-‡¥ÍCyX +‚¯]Œ­+ýR4uÇz}vêG¡(çàà%Â1ßPPC°ñ³úÊ!K¨ŠçÞ6À)!£@îàâ6h3÷ÇÃòÚE¥4çRt~ôÚJäL”˜r(hµ4Hp›¡½OdŠHGäð¤ã^öû¯£Y]XqÇ¡„(#‚ûTâ1Û¾›Z/O´ûE1Z#}¨Áßk´2q†W`ÆRêdSšˆ’ï{93¼‚†ÚÈ”mHKÌT ÌÇæó'j˜£SnŒ~§ÛÔ«z<ÍвjNq#0à/˜þi®:³ÜÇâäqÐvH'¤6ÿ[n’YNa"‹Ñ¡H}®_êß¿Üþòÿy Ðm¼Âº±n$.ž9y„í„l‚´þ9çß _ðàø¨Y|µÃ÷'B¸HÑ>Qêù¹­8…æË yÜÒÔìm¯:.µø¥«5Y®JLéÒÂSˆ¾ºU +Ú'ØB£æ +~\µ;UÎl³Œtn„òI•å¸bM,'G?åzo…÷IQ F$KØ^êíGa|$:Ú?ª:´ýÁ&¿ºòå'7=¯H=­óÇ÷p\eŸ™2á¨e@Þ3ô¸‘¥ˆ‰€÷ô<ºÔŸBCîtw¢ÝÝÛÒn"(~¦“eGpÛ–ÿ A¼‘‰«íâ‡Åt‰¤“¾ƒA£—Ûiô*ƒ—ëJ#+ó-FX²ào“ªÔË€ü¡­œœ&–ƒ=9¸_àõøóVê7›_L¹1ŽºqÐYãŒt%)ï¬2óî2¹Kõ,þ5ç/6¿Îÿ7c£¨Oçº;‡ø®Ú+)sú¨S6&zŒr`LÓB1‡1÷HI—å’â%óÝf¦¡àó3 †<®ðÙè'|³Køž¥–W:J÷ÚòYžòqŒ…o÷§¦„<øð^,SD@náH4 ¶8¹Q ÿÉK÷yÜçïï5UH¾2r@Ó–»)ò”šn 4øPRu}7v ´]aBlxsçÄQ7ìל×é@ Þë9ú§·WÏ®¶>$õnDeM®ß¤˜—AÇDSõ¤i$SÒµ\óÔ1«ÒÑÅVþÏu®„„÷ÁÍ):¥¦Øú7âËÝöš9FÕäÔ&¡ï³ª˜?ð²,Š™y{¦«Äü'n:¡ŒzHç-™ÔÉ€* .êñ¥Œuˆº²®å  áÅ1(½r’º!o¡ö-ª¸—Œ€qî]1{žIë‚Ê¥[s€žàÀ„³-q¡Cs}Q^ÇWf¬€ÒÇkxLV:Æ®W¨UÌiö$b8Eóþ.øhKâÉâ¨:ÜÉ(ZdæØ[à/÷¬Áœ1J>‡Ê³ tF¾®ˆMI_w†D© &nC2.¬;F©÷Ð\µ3X©r%2á'¹hÉÐ/tDß`˜Ç?;o›»êõI¿Ee&õ›Ê°c +Í™±ª”9ʼq?×/“«V'…õޝ“ >u|©Šé„º=ÑV)eöÍ·v²()Ähµýc¦N»ýyëS6D9ít×[}ruIJùaÞRÅyшë7°¨²,0‘´(͉±F^ÎNÅôGºÓâ#ëÖpÈv¾ ­Ë4 "êcÊEF£êï&¶Øíâj‘À^¦HßWðÅUŸEwðSfˆá`å!¤}Þâ‹_lîûÇj,f ¡5ŸŸã?¤ °¦9÷¹äm'Ó¥¶Ñ.&„€×’b…˜“;ôcßäh»ð÷¶qRS`y@a黵“a¸WGqŽˆ\04ø…¢™TÅ1ê`ù:^ÍzÞ¯ŽItè`Nš¾F±“G†ËCÿ„%ZJþ1PŸ¨®aàØ3Å·´Û:ÜÔMäM±/‰|SˆûýB '±_¿¢„'hP<’AÒ$w_q¦Û•8ÚH~â3y´ð+D¿¥·õÃÐ SŸö)gsÿ%ŽcbG¹i0‡è"qt·iOº½ϰ³€€¯aãÑJ†J‚|-)Åý@qÓç„}ôŽ­ZüoóT=åÂäQJ.R™£ÆÍÚƒ¬ +êÒ?©%¨<øYñOÚÊ$!҅µH „í~6WK°¶ÄvÝVTA9µ©×Y—âzŽVVÓˆg’><`‡lİ>Qµ/µ?4ŽÉ•xpÄöô©òs5Ľœ;ªG͵·&K¥Ï¬åžÚ”ÓZc¦¬ÆÄS¥†yn9MåeXd+)¢`ôG£”3OË7ê|Xål»z±œdúÊñðaµt·—€_WÁ(fîYzŸëå¶ýË…Õñï&¼/•®S¡ÐhRûÎa0Ý&$Û<{JÞ3|‹·ö„¸ˆgåZÚÙ?ºYû¶±¨ [“–{x‡ª¹øm´ÑѨ¸…quˆ +€XfUCýYIyšä˜ùãQL¦‹¶{m åÿâw„î&à[þŽïö½ZÔô³ u“±º5û„HæÂøÂ½=Z-Ð'Ñ€‘Û|øñÁ¨TNc+é$ N']†Üü`™FHM@r—P½¢Ò:wµCc1¿AÅM/&±ÙšªÉîâ•®žVsCG?­ø¯1Ôw8;é„|Š?â™—³œgèŠ;À[¿?ฌ´ob„¿€v‚®N"3Ê]äÊ:‡Úß«6À õ1¦û ¹õ!… ]à^Ö£õŽÓ›¡ðWÕ¹¥µÙDVL)”|}'ÚùXÛL#´¿¨Kþ¦iý·þ&¯Î-ÆíBMœG2žRàßóŒÀ´ë¥)§­)¢O¤¡}E8¬{ ¤µlˆçGŠ( li·¥nÍÀ¦«$džÚ·21Ðòþ™¼Mm`xëL  R>?ü"SJËÌÙÚ/]!¡Î·$Ô~rL¡T߈-EvÙL¨˜©ùYd¡ÇsIãçɰdQ䓹Oõ ¦ÓVм„ö ê털â!f´¢‚_›Z}ê»Ûœþ.?¢F¾%òñ¶Rœ(7 90‚.½LUçkì(‰/Sf ¸OÙzÆÎvÝѬ zQ x6¥O’÷,rø +Í^¸å8ŧ„ +.<“‚šc6L0gHä‰ÝåNC´VIš•r%èDôŠ|Zëƒë%Î)áûO®g[ùéîÀj(Yž“RÊõŽË‚¥x·.CÏ<—‡NLò[Üu#º±xb¢¤ªÿxU1æåµ#›×’d†ÜTL¸ñ1¦ú&É•Ñí<¢‘Ú.|² ·^²„™qÛs‡Ýæñ«˜ç©3ðUò† #Š“ùq£uàÒHé {F®N!mQi³4à…êàRÁî©€[wOGüAªU&eƒ¼¾5‹Ì4º³-ƒÝÀüÎx<…ð,4 ûjõ_ÛFøé04tM‹a ÃÚgŠÛØðlûoÚÝ”Õ+~Ҏ¤xÉ5¾<"–Ð$)X‹°åÉBYxªÕxóG}]+ƒb‡Ï—zt{„Ê6¶Ï¸ì|a²×ͱµw©åÃìPçOUJ"aäævÛw +ÁƘuñ»ü´x˜Š<#[{Ão +û$Ä„¤•€¤ ÅxÂ}ÒNƒ +Ùýb 74€éÈÙ~j&£]uOöQvlÒt}GIuCˆÊ¦@_O ‘´pÕpÀ>Èà=8âv¡{\)Ð[Æ!/?1ÓæÒŠV˜vœ‰íŠÅS…”k‡µíiÅçü]øsùÛ•Õ/7R~yÎm¶Ÿ$Ÿf“ž®‰¯k=¤Ñz.ÉÒåm&³©óÐÇl^íVËuŸ¸'vŠ´ÏD§Ê…„ìýX>h%IžM—ÁˆèbíáÞKI=>Ôk}S/kƒ¦Î–€E}4ÀY’sÆávïæAsEXbŽ-asµr•5÷–Q^‰%ÑÜ“¸ 4dgAÊ`Ô.Üþ¡4ôè~NyÆ.I¾ï·!=\_©YsJ?°=ècçĉJœ×°ŠO˜7fIÔ‡Šî­QZÿë–,žNãH7¬I•ú| ‘y~ùvÈ}ò¾,óV¾º1È+¾om¯ÞÆ#áßÑŒ„¤ „„¬ÛÝu™?ƒ¿†æ3ýĹí&&ƒ“8)BMÆ |¤Œ5m†^½îär+èxoŽ…¦"¦*xƲØÐð *€ç +)D»&p¢­‚k*]¨*ጠ0¤ÑÚý—‚²“·Vຠ%>2mÕ¾öÜT‰,X`|•ŸÐi¨šR˜–ÎÔá+¾1ÌÆFí<&0o6 %b3ÿ¦çYp +E´·dO­‡}R7æR:zTÑÕáJBäƒ7¯¡cí<Žj¢C§Y§,m~Zº Ý‹˜Ø’Á›ÖP0䈂B™@-Û¤Ô焊%LB$ã49×T©G0Ø”þÂwIz?"}>ûÉë^ñŽ&&â4r…•ØêpÍÒ4¿ëIÖ·«Â¿™ê’n•Ééx÷/SBv +Ó²)Ũ T{$yJ;Y–›°/©“Ø‹¥4eÝHÇU wz_Wâi>ìV{qpÔ°»Q†Lj–_ÞÞ[½æ¿b÷œ¡h#½Ó LŽÙPÙÂÏVößK(#^7Ñé Fõü³}Ê›ýÁ78<}?Ò¤*2BC¶Ïï»°À9ÍoÌŸ£é¢Goçñš ša†‡þ"Š·ê+âÃ_V½Íú#ÔeÒ²h-;ñ;óʧ$|±Ô[¤ý×מ‰A)?¶"‚„@ø®&)íîg˜'pZ£}z ç{P¾õ·3ÿ¦e±}a›qòÚáŸ2ꄞ„›â„¯ +endstream +endobj +854 0 obj +<< /Filter /FlateDecode /Length1 1373 /Length2 26888 /Length3 0 /Length 27856 >> +stream +xÚŒ·p¥]·5ÛéX;NǶmÛv²cÛ6;Û¶m§;¶;¶;¿8çüß¹·êÞÚU{?kÌ1çšs­1žªMN¬¨B'd +46Ú»Ð1Ñ3rDäT´¸ŒŒ,ôŒŒÌpääªV.¶fÿÂpäêfNÎV@{îÿ‹ âdfäò5rùÓÚ¤]mL,&vn&nFF3##×NÜQ#7+S€=@hoæ G.tðt²²°tù³Í=¨L¾˜¸¸8hÿNÙ™9Y™ÙäŒ\,Íìþìhbd PšX™¹xþG *^Knwwwz#;gz “ÿWZ€»•‹%@ÙÌÙÌÉÍÌð×Ày#;³&£‡#¨ZZ9ÿƒ«Í]ÜœÌ[+3{ç?®ö¦fN€?›T¤d +föÿeÿ!Ðþ==Ó—û7û¯BVö'™˜íŒì=­ì-æV¶fqYzZ€‘½é_D#[gàŸ|#7#+[#ã?„¿;7ˆ )Œþ øïxÎ&NV.ÎôÎV¶ÈðW™?§,fo*´³3³wq†û«?Q+'3“?ÇîÉðÏÍÚØÝí½ÿ]˜[Ù›šÿ5„©«ƒš½•£«™”è¿”?Üÿ`f.6F.vv6F€™#ÀÌÃÄ’á¯òªžf™þ‚ÿLàëít˜ÿÂÌ×ÊÜìÏœ·³‘›ÀÅÉÕÌ×ûÿüç +މ `jeâ06³°²‡ûŸê`3óÖ.ßÉÊ ÃøG{LÆ¿>ÿý¤÷G^¦@{[Ïÿ¡ÿ}¿ ²Zª"J²4ÿLüß1aa À›Ž™ @ÇÅÆ `bbeppp|ÿ³Œ¢‘Õ¿m0þO®”½9ÀõO·Žé¿:vûWTÿšã+à?kÉÿ¨Ö @õ?"×edc4ùóÅôÿ[ê§ü¿)ü¯*ÿ_"ÿß ‰»ÚÚþ¦ú;þÿÙYÙzþKø#ZW—?þ±ýÿ¦j˜ýcZ93S+W»ÿ•r1úc!{‹?b¦cb¥gdý·r·ò03U´r1±üG2ÿàjYÍÖÊÞLèlõ×»åO#ãÿŠýñ—‰ÍŸ÷‡ó]þ2ûcŸÿÜWÌÞhú—Ï˜ÙØFNNFžpŒäÄÌÆðfúcHS3¿• ` ·ºüIü™Ñ`t‚ûëZÿ‡ûÚ&®NN<ö·þlü_ë¿ mfæaf·úhÂbÝÒõ\'„çNw8 µ½Û™ 5ÁæB±œçm) ýMbÁQØÐ´{2]q¥êU¢²¡„e²ÆÏ÷PŽ–㚣¢çcm®3€ ä…8 Ï%V(§ç ,Z‹˜l×eBK%ÍI'ÃUUJmö,Ú*îI¸+çÅs_'.sbssìûÈp:ËmÌ`-{u:Î/iâœÉ¤QŒÄïÒ­Î Âl"å© $8Åva[à†[o‹#‰£,®Íò"ð +~S-®¶QYìô¾@Á6t)L ¡Ü^²²Øe¤úÐlvŽs’3Yg{²ûøãO·ƒÖÕÝVIl—£~pNMÀÊb/º¿\dúåjD§"‰ðRQµ=Ù{1ªàß4Üm¾}ïzÖž:•l_“/ëÐê±c+-G(Ø[Ûæ¬íu¬RHQÎç#÷ûôΈÛÏ ':}ÐÐ…s¼&Ô"6òýåPÂs¸÷³·'ð ¯°åÕJ>×ÁÀëé$•4·Q…8k.ãªÌ° „"3šN×}ÃbÂãfw[ÿÎÃÇ5pâ?'ûlî/z¹,mû†ôK&ø¼ v4Õ‡‘ÀDùGu7Z§!’¡¨ yó/ŠÚë˜/qãü6÷=Š>˜uË á:+ÍO}³¸h®¶¼7uòðñ_*6ªk´Â TëL›öè8L?“»g#‹Ž@t%u}õ%Î}½É aРª²lñõ²ÈˆéäW±\Õ|°Ì}¸êuiÍÊu¤ +E QLžìSɹ}—òÀíêF”&Ãò§xÛDNŒÕ÷‡´ßÖ…:’Å$Â']Åhû¤'z›1SùeÍÌø¿\7™#%SÂÑ¢8^»r¬¼°»²:$'ÍŸ€(ÎCßêÏ”èíR,ÅÑæKe)Ä‹´­b³J'+ÖéWu\ٺͲ/U¶Hc •Ý –G·ª|É1íd•›ø š$/>+åæ›êÈ¥c®ÓÑÐÙ’9ðBIgò®·,¹ÛˆÚ°ËXLæ·âëÔK‘ujP—ÉFôΞ—7`}¿²¨˜;xÊ}®îkŒE¿Ã§,PJ0«´5PÛÃ\«UàäÄ%KOÆ`÷¬¡WÍ|€|ûb%JX¾pª­ô1¤ÿ‹t]Iõ•UX §°60:[­ÕªÌ¢•­ ¬…6©OÎkÄ}> nµÊ¶,`pÅ¿»CΧÊ%*~åp¯PŠïî€Ö‡P‹("\91ã"»M —ÊP¸|DzU‘Vöœ¼ž™ty½†˜Ï3g4›Ûüs—‘–=£'†M¯íÞ/(^o[¢âX5JgåQÆUëŽñ €dû»M;DxÔ³„ïwÍÖ”|l÷ޱ׀Œ©<ñï,95žpÕM=ü—ùÜTZ-fòfl#ØÅ#ûð ÙÕ¯i"¨‚ˆÃÕCÇ£ú̼èâ‡Ýë§vâ¶"nŸ·Rk7f‹ˆ mG¯F4gD±zuŒÂ…³]ÎîÎAV®¿çSŠoñ §„Y§¸¿›ýmlþ˜Û&{¢ƒ#O³¶sø™AZ}*Ç á‡…çöÝ´Þ¶¯»ô·ë%åÓŽ\-¿S'”X)Ä=¼Ûâ7­­÷@¶ÏyݲÛíŸó`:‹®uß¡*[È÷{zÑ å²Y§ÝsÏžî±ØI°ím’©™À­W¸f5Ù¹:-Üá69ÑHâüb|ñ ;w$ö-Žààþó©Û éã“1¿ª MÍ`5xaa¢ö’E Øg™é2ÌP6IÒ{).‹úQ’,β•/¯Ãt©Ù²û;ñ6c¥èŸ±–«j²ã)[ÁïÏåâ\f>Ç8kŠÙ¼öV¥bãÃéF»LŸèé½ÀÉj]1—5á\d8aÁþâ#J„ì1´M„ÚZŽûŽÌÂ1-Oi“œ¾ÒˆlÈ B鳯|¶*•Æ/%B*I“·&Š|Z’VêÕæÏ½³è;§|AÖ7\š)© ÔƒF`æfÚhz`Ë,£KR±\‚Í(ŠÏxýÉÊÒ}ú6 2η p$gª~¶«·ß¾Ý‡o¼ZàR6òzf¡’)€÷¶J¯çp~5•\&`aÈ‚¯`“æIÀC!p¦Æè3pÖDžn:–¦ÓgÃ¤ó…«ªÔØfv1dýi6qån Ü}ÉD®ša_œt +.ôÛ~HþÉt Búå€$>Ê{|Êåú\ÊÂÚ)*)¯|¶Êî­Él´Ô:‚rÔ%>㌿lF÷k5Ù¶%ߟw“=cÓÞžˆ“SMæGTšIÚ`½G¡ÝIfÒ䦇˜[¾¾ÖYKl­/ƒ£sáø²l£+ò€áA·™N_W&©8*‹Ê<Äå,k뫾SG\W€#æ.‰â +ÀSà÷L_W¥=ã gC×òÎíôƒ]aÊX½2ºšZ“ËÂK”Å8w‡Š>u¢¤¼ '<9+Ê·1kî~Æ"Uä—ôçÛ[ÔßoQwEˆÏžTa.ðÅ:ó]Óžtà–îQ0®³îß×I½~ÐF¸Ì”êò?‘?TÎö¡«ç¥«íÄØü*ϲýÙx³NUbÐæÈ; Ìâë%Ú,ÈmàšRwœ¸EðBæÚq¿XïwƒBä—E÷IøµaÌÿ„_å°XÝì?TEÎ*Bne|aømÇw 2ñtl>“xq÷ŽÂeÂöOˆÌQ0ðÈ8^¼‰Ì³KL%I¶4­ù}Ù²â–ëîP(…LÓ®^#“׿ÙÚ¶6‘úhYNYTƒè”p ›ö:/vc+·žÕU¤¡s…âÉ.H‘aàúW_ 4sƒÄpçHÝq°ÏXyœ pfEÁã%‚Æ#÷=“Æ&B°ô€,0/. -¡'þl{øÙõ¢$£ñÔEð+/¤Ý|ÉR“¸cÝIÍX;ys‹–%9‰b—¥µGèp0ðNfý›Ž`¡}}öxiÃQD†WH¹%¹î…Y•n¡Ø¸ƒ×88´kå:ß” Y2wb ‰M¾«¾í´)gغ}})€u™œ9­ 8ÐWìžÐħ?0Â’øUÅ›çzïS Ôl {0¬j&Q³¾<}š0{\!QíItPda݃QãpŠ*f1N–/Õð ,9«òšuºš’5gL †Ôh”€ækc™bhcg¨7+øAi6¢£¯¿¼w× êW#gðÈuà[Æh?Høy ̧ã9‹b|“Î䔃P/%³Yûµ + +7Xý0?„½Ì …Õ%ŽRq‚°«ëlj‹] Iôºµ+°j]ï¤óX|mÕ©uîœÒK-pÕÓæ£!-¨±Ÿ·ZPY\€"'r\„–<¤F„/A<ÎïÏ{Šêm<ÒDb8.{Œ¤DUðBfü8.Ëàq«\ç\d(âçMJÊâ¦ôdò¡0W³œHýð^5›6ã9£ÖÉïBHËÒÜRhN˜ˆq6+. @090nØãör,É|¥•cä< ŒŒÇª‡¸X”ɽê &ømòþå}°Íu‡ñÞÙƒ~Ç}œÙ˜§Ç+ù7gÍOwWLºRoxís`Jm5ô¸'FT^ Ι}ÂO°Y>ÂÛîËHìN¤¢Må«•ú! ìõÛç$ Zï:*“Ä:,¯ñNÏ'øyá]´ÈLq©u®‹ ÉITýµæÞǯeÁ±ë$,›ÓÅz­ _âüÝʹ¹9Û“Æ™·–"^Wl6ö¯2öNèC¯Ç^¤­›.¿dÙlïO7#&DîÁ=¬C¾â[‚G(©ðÐðŽQ¢@׌L3Bɹ²û/{ã-ÃBàû¢Ï|€RT>œë{s[s'hæ6Ypóœ,¾í/5fn—BcÑê_âpkTLÎR\f8~³Ü_ ì[:!σÿ1Q&ºþ„DÇü…qåÝøµ‹Iñ`"½¬Î$.Wy(™ö^Osæ Ú%ÆÑ$™Ç‹ë°·‚…›ÂAÒŠñéâ°ûHYÝxÀ¾S¾Ü—7-„ç°ÜRòØÌ.Et÷~T"cQÄ›MÏKàM­ ÁØðóV’ê§äsÜÄ—×_¾ï¡Yñ¹)å +u—Ñ ¨ýÜ,4ÊëNª z®6ïó‘æÌWè˜d*ˆÞ:–k¨?Úm¼úX‚¸Þ +­bÖŠ*_ù…’Ï¥¯6ØSïM½Ý;¥û…§b‹ø»‰o$4Z‘;¶¹+Ž\µO)ïá³Ãúóœ>:çÐÔÉ6=çò%ŠØ¹D÷ šÙQÆGÐ =¦\Ý»¿»™œÛý,‹ º„^<}~iâ—BiÑnO*¤æxI1RÔI†~ý kÖ<¦«âá~µÈÄÀÚRû!4Ogs:HÄ¿ÿx[‚(¥DWzò}áÅÄùZ$™ëȶ)¡i<ù*µ+P¾ M^_}¹K¤]õ†uäëý“Õõ…eú%Ì(¿=W€§Tâ™°K8:»º†ðû¹«fn‹ëµça0++³:|/¿*'*,G¯ÌÏüæÍ¬éh‰ÝÝ0 lÔ¸Iá¼ùfžæ[`5uôÒL¯Ñê«^íøÙ¬—ÊfsT±$ßbH(ÜàIGÃ&õ#ÁL¥ŠÍ°”ÿ±2ÎbÅ×Ìr2]^p›’y †ƒK[ñ˜@¶[ åæ™@†ÄŠòSÇp‰)ô<"#*X_'éºõ÷Z +V⯅½RÝ­·‘¦Žbåå]¥ç¸³wâlò·žq •c ¬N”çÖ†™ ˜/~¤ôôGñÏõ„ÎZc¨Wl“]OIÓo/½Èû¢u?S‘ ¨{¦уøØà+à¼e 3…¤éKùuNCò›SEŠ( x8ËÄ¡em=ŒAÉÈŽãQ*!¬ZÜÇTH1å’õŒ‘@òé*Fº_ÒÙD ¨<Y®«OtÇ+0ؤ¯£Ô~¹0›Ð-QtÒ#›ËA~ò%滿QÅ* ³à‰]0— –ò£œÙ0¦ÖÕ‰ >ýBxãì Ü\àJší2­¥(¥Óå©Ü©5=+¾Ò䉤Ò*‰Xîq×r™¾²=ѶâÕe…Rb(åcï=°Y£(}\CÇi<0²âžWS +ʾ„_Ìáh+À‹©Û6:«Æ =Ÿ]–¾5*b(w F/£Ü¢bªUuŠ›{l4âB@v{ÎÎÔªUó–ýʧo¢Î.xP}e¢RO  ¬Ñm‹,ØãņÐÁJמz3±¿}ëÓŸ`,Ö^•ïÎ’ê}ãÿKàKR†ƒûÐsy†~"¶:Nwñûü¨Áó¯&Oò1}ÒÊV³(Æô}£Ä†µAIÃJ2%X¸¯8¢Ëw½¸¾÷憱"†!»ð¹GAú•4m–˜PçøtÑETL†½,gÔZ¸†¥Fy”_VHýN +~˜ƒV ˆ±áÂsó˜bR#l7rgÓàŒ²vƒ´>¾Ò”wÔ¸Ç3Šù–È=C<ü”Êf\\EÑÐæUƒf{Õ‚õiÝÝjd†Õþ¢€•U§êtÅr¸EocŽ÷þ +£áÌOl«1Ñþ×u@Ƨ=~Õ$wo:“”=^u•>îÌl1Äm9„O6àò ®ð"»;¾‹>ƒëÌ +ˆºóë};q +Þökr£Ë§"U|Çñê‰Ó: 7 *Zwÿ èz-ÀEŠn»3Es¸‡xÒW“é‹•ÞÕ7?j— +™)]3Zr—!ÀQ·Ð…œcezåÓ—md«À¢……ô; a±)e['wÚ¾FÎ J p1­|ºÐ‰1ç­ž]X4="eAŽu†eþ|»J/ç>(1Þ.÷¨§³Sîä[~9Áȯ¾4yàdvK½ùý ¬Ñ;l™ŒM .¢ +f t³nŽS«œuwû)eœöqžLô–€Ñ0ÅJ õ +39„© )â™óF¨ôÆOè/záwr¸_Û0„"bÇiªŒyus§ø†í‡­ßQ¨A=]k‚‹»­«SžéŸ¾”—§* ~`ˆÐ<È}½SD•]<¹®7­ â`õª¶”-Ž –­Kü„ +Ö=l7M2Œ=N/¦«Ý Ã$>¡ä©äÄ÷÷tÝsG<`±«í_0œ–c<þû2”m‚dOÔDò}}3b•iص ¤f:?øÄ ç·ähܨüyɳ”:­tÛTpö6F³á¥éÝH– ³Z¨|½ƒ ŽNÆŽ”*ìö(‡žçâ7Gµ¾}ý„ׂˆ ZLfÁ¼8íNÕµøØßû\ÄÛû5¸«ïBŒ'ÍããqbŽ-¬ŸÍŠ5Ú£a‹¤[ÀáQ“z°;¿çüÝVXÇhr$û‡¾?JebBÔ¶vöÅýœ ·¼¤øüAÊyi +޵ ÕÄ»;y[ ^Vífвðá‹+,íh©"¹@ÜÞ©].q‚!òt`U-3¶[ øBý„Éyw´>ßÈÖýM(nËy€áÐ$6Sœ§y“6 +,áçÆœÍ8ZÆ5÷(¤œ«o½Ôß¾JÍßÕÐ+÷?&†aÎHØ¢52ÐOU£×”sKSVH]‹à82…Ñ ÜûfT“º YWU¿*MÙr‡,.{ïIìÇgT<úÔIygŸ*­_GQ4§Yꋈ16I^õ„#|¹;÷ç^^ûºERA4é!Œ~ˆ,Y/‘"ŸeÓøé‹bx ŠYRÔ ÌàúÁª8Gô½rÇ*g¤¹KÆÀ“šá7n"á¡«Í[Æ÷®ô;=Èp„g­È +#/®ïVc¾lØVj¼¦nuT êïÓÙˆ÷LŠ2¿pÔ¼€6‚$ûók?õ"N~ObMãKõЀÈ(ë”4ȽCøãr9è{…Z– õ#ÑO1>jd/kúå¢@Þ¢·˜š>6/ «¶lã½³âu0Ø{ò2)±P@¹Ýrbk Ðk<°G°_g;?5¬§’ú¤q¶"Z}÷kZX—A°ŸÈÖÙ›;§© Οÿµ%µÿÑrQ@ß÷ÞÉš@<ãzµ®’„{Ȧ Ar'çë­©uO2"‹E›ßqçX¢SzÓ„}-½{ÕïÍî— =§òƒ]¹’šÆ˜ß( +ýhÁ +´Öö,GÔµS±e÷Ö¾ÉìÓ^q)éý$u!°N á®:å¡ …;¡“i°i˜Áö0`Vˆ)5 ”ÇAÝ,\øY,Ÿ4»‚jæ›Úö“VB?ŽCÅé˜Òp¼™5m o#D+¢‡0¡ÁžÖ6^~Æ$'ePÃt¢Äp×⯥ðGÛƒ"ŸØ+ã“!ökúó‹á¥ñŽÔѪ§Ô;È…ò>¾óÕ›Ì +“6•JÚÂ4;OL.üœDÓ€‘uOãšÄ™YO]†ÙB5×eÉ‹¯ñqv/'ài³_—wêábbÛ!/ºþ¦e¡ƒÂæÆ€ùO¯å¿“a¢ø6W{óÝÜùKH™ä°ªª¿ÞiX6&+ð8|þ §Ã½©i›ZœCÒù芒egëòzo7˜Q™/<#J¸ÃÚ´ìpwF«r…ÔЯNœî¼ÔÒ.Ä/íÁiœÕO00+gi¦kåà«‹ŒØ6ø¥0º£&8´ Ò{d1¡«-^ÅTA¿/F šLg \\a…2þ +‹R„ÄÞ÷Dh#ÄÓ­Œ¡âUa0 eƒþ ßp—ÖN+ãfÚf¢÷/C.àF„Ê{—¤ßÛ‚̦·c½7zœëÕÌãÑî5,"sîfA›B]È­øG¿0 L$æßEòXƒc’ Æ‚‘ŠnÆÞ¸dUP·€d9 cÓ}e|ö¶8ÞØÊÕYž­ûù…d-(€RLnlõÎ#˜JX¡_¡‹J(ûC±t9Ì$Rþ¸ŸB¤‘êð=Î¥ôHN7˜4hjòµòO¾Ý²¸!.„øÒ)P‡/¿ã™Š™›%iHÌÔŽpA1¾q’¸m¥f³ü¤›¿±¹fE@Áå> ¼aÜ긦0 ú³q…< +í°ÐN·>*‚L2k-$S˜|xÙ³LÃNiñ +¦ø½Ÿ„†Uþ˜›ÌL¹ªŽò²Æ²Ô»}:=Jyº&ñ– ÊE"VºØNHü¼Nu‚ˆ×¸ÐïAÌÌeàF_|nÌ@ÃçÐ%~$‘ˆ=F¼ŠÎÃç%µpûØt +có Q¢J©_å©O˜2 <»ÅÙp³ŠGí`¾ ÷^6ðûŸô7Õ”Žª?Í,ÿø˜áêÆgº¾¯¡$ez¾¡òCĸ¬f,…d©N-ô$âF¢ÌFNVT7— TÀ`̧̲›Ä„ Ê´»×¨ó–¿ッ’¬eñ^Þûׯ'úÏm¿RNs¹:_䀨ÐtÏ4›LåËw(yÈR©ï5áA‚Ù&[PŒi‘èÒð€mm òUÐ^—6"]0ö3yë’¬ïÖ¨a6Ç!D @õÀ»õãBkÅô<dMSZóצÝÓîÆî Ï·V­¿oª´Çiy µ»'j{7!^ÉrªTÁ]x×ÅYz€°˜ý/=þrâ0ééù$ôõ,$T[ {yŸñ+ûªN#/¢žr°$™±I«ª.Ÿøï.´Oò€®#ˆ÷-eÞá9å´cg?ŽNwŽòª‚qiÁç~ÀÛºæI—Ïx¨‡›·|41?OýEˆ¸+E1ûš¾²ÉÇO7˜e…øC ±¢câeÐóÁ\="¢.¥ŠÿyRÀìZd¼|•/ Ùÿ¸Ï„Y`l†,¡vÓÄ)Lfÿ;ã¬CûÍêGiËËá¡ MV+OŒcå‡T¬W³/õØéæ~??ñZ² ™9%"ÌT$Ý:i$—{?•ûN™Ë(íx¨‚åWO¼(wİ۬½f“·SÛ#£”'üÈŠ‡ì×^ì„¥hè¹{¹‹Á[Óü ów¸¨M£ûd‹fÑ“sÒëo\ÍsÜ œì^ëéL$À¹¥ê¾ë‘øVZ—ñTbÕ@®&ƀדVª-ç5Ùd:;MUAè$d€Ž)8åp@!Lˆ¡dâB«±ŽÌ6Ü…‰ÙìêÃûÔðËJ²ñ­s•ø(íQÊŒQãõí 휓¬T)4%ÿÓzqn»µäþD)` ‚Ò¹×èî{V~-Î`ÒŒæF¹·]¾Â,.üภ+ÑnKf¹‡~  +uÒ¡jÔõ©`¨¿ÞBšk•Á(2nçî'áô§Öêw™ß™ÊºbaSŸ—àñ£¾C2ñªXr°gÒ¶ÁÊÖ5ÀŽM 9“.îïDyÐ!=9°¤Í¹ß-ɨ’{+¶/‡œšxo¹Õ¶[Ì9³ŠLè¾ÞbÒ: \½Ýà£ËMPY0Åm ÕºüV_׿‰Á˜§!cÛ¸{­pzP˜;D™;N|‰ðL‰®õ¶¡–!},y¿¨Ù?©¿þìÔѸäâ¾Æ¥iò©¿M¼ü¸g1 ¸D»(¼ò7 ]¤$åàŽ–¡¬ÜŸ§àɹ5 ËmÙÉr”®TSßëŽ +÷¼èM§«‹¦Q8ÉÔØ—æUlÇb`‹{[_'¶cZÁb²íXtF·å#Œ2o=Z±æóS|P#ýe Nù`•LF4+¬´@æy㜛۔®â0ýDU*Œ(’O7Ÿ­`|zE÷£mCM³¼ÎÄ{̃>’tï˜ æs¿«ý76¦i[˜‘aÃÑÇb í{xaÀåjjdȹέŒ#€ÆÍž¦v°"Lbó”¾ qpçS¯¹[GG±3UÕ¹Q`¦ÉV×&8úÃú‡¿šáDîÉ;×ÚbW¼®~› =kIP|½ÀÑ…ÍWЄÐË`2ü I„2„å•©àƒAìÄFæêZ–gwú`t46å v‘ƒÞŠ©a h» {B\[â +bOàóklsI÷ÔC´1]ölÕ)ûmwºŽ‹Aù¦=QÂkÛH½ý0”iXL¾†ÑgÃb‡Æk^N PW¯ú(|û1"Á}yÿ©ÈAôc¹ž +§Û:_HþÆBWÚCöû©C$æ3."ÎÎí +t’1Y‚:†£Ø€Ï$N“m?}õ·ú¥U¥råˆ8&ÈžN1ÿvŒ–ŽGÚiÅsÏh0¥í7!|Ó}Þ¨ïûm¯Ì6 ÇñÊ w1œG±˜ˆ©-‰hâ’Ö<þ¤!2 £â9Ucò”5sÖˇ¼oe®ì¡6܇Yd,µ’«ŸE“?ï¶k$Ïï]aFÓµ¾Süb{g-ïŽÝ¹ï4í³^-?"|Tæ—ò2D’ê[ ïÏ '}B,T”‹yÙ°ð¥o᳈ŽÂË÷Nœ'¹û® ߣ ¤ý2½v>Qz¾jx DÄÍ0‡%§iFüîõniç²ÈzN„þ5ûpŒÈñÏÀ¥áÇ !CÆÇ)/Ú2qqÐZ9U‘1Šî-¥„_]`g{jáé© °lÏG…:ŒS®¿ .•fü ¿G%Ù1bûÞE&H ”wu#_›¢sV5åµÖe@Õ‡í¾Gÿ4E+ þV¯3Æ»½Ë‡\œÔ# ÷2nà»êÛÛD‡ÊÝð}ÐuÝ'ºÂŒÖ–ÉÆ e05œ^ÕZÌç`¼‰Au´+Š$‰4yú J÷—Ñ'‘žñÞøqÿ§¬8'7Srè”Ò…%V1½ Çëå¤÷·—lC0ü7‚%\í8±n¯ÝuðwWdƒ SÎ{ݹ݃á8>!4PðÚŦ*vœÆ‹WZ!»ÉÖ‚ÌaԆțõSw½23ÄÆ.Ú…ï½Å SŒüÅÂŽBŠ *è·r÷¨„m_p|ÃtÂ;«Å3SÏÈÓ +ÜS¨ œã8DJÉÌMÓ[AÜÏZóÍóDtmb‡ñ)Ž}{ýâ¼w\ÏÞk«..ºr(—¼øLQ|Fr «€9Kìv–s„âñIY+…—øÈ·’ƒŠÁ‡Â4d³18PÞLNчgÉu`¾][Å +Ñ?ÄpÕ ²85æaW<Ž_/ý1(­È÷·ß™¿l—1Ÿ¯±€AP:Du¶Æ # ë:U¡eN»SË,­ÿ†ãñÙ<ûPØ>¯I´›þÒó¦ÜœàÁë×9óYE„[>kÂ6¤o×ÝÚD׬lsšhZ±M廡µ5àP’Fc#á͉ò¹Ä¨{3£3óH#ÙÆtŒ/zÙuÅ­¸4ÄÚ·<ô\e ·~Œâ%iTm4I¦ÂÕŠ}ÀyžÊ–sMZñÌŸÁ˜ ­7»K« ÷›’ùñ*ÿÇz±~…l ñ^¬vô%ñ½ðhù=¼ÕåôråÀ‹7i5QÎ¥r™ÃXáã½qÍ|™á0¨U°«“»HI&Ø4›«} ØÂõùTÕ<^¸."Ÿ“Òjßú$0åw¢F›ó¬'’á!÷ ûgA>d»Ýš'ì¶4†áf +Ð)-]\Ö£Ô3ã¡F‰ŠoáÓ–ïØnÓ»9 d÷}öÒE ¼çšt½Î¹Sê>ưBüpù+Dãajv¦Ü¬øÁ`ÈÝ”k5ø–é"F‚»ö¦¥T—yò4´ØÂ©M-Žpÿ΢týædÈ×l暢zi9‰"¤Ö°b»% AW”¢ù˜xòôpIc/|ø¨Ó~E¨{èn‹!rÀ÷yíK5´ª^÷èh÷¨œöÄm»É(Ûa‹àÙ›¡P]© ¡V¦Ñµ½˜`sôÛz » #”‘®zób1*úî´5O“àê$6sû¨bÊd¾ª[ɦQÛæ‰1&Ñ®ãÑœa÷«(X¤´óɦ¡(–BícXRÉ©ôv&‹—SÌ­pÉH˜¶)ª!–b%Ô±ŠöUk¤`ø‹ ‚©%èm¯ñ¤Ô‹q‰!›ßÚ¬©áÚÆ KA HÊG&XŽWÕw*™re2_zª-·qø‘”ëžu1í6µL¨køÑP¨e|ȯգ‡øßÚŸ‘Ê›ùléHI· ›ÆªÚdèrw|ô«½'¢®)+™×»1R2²JÙ*=Fº¦î¿ÏjENØà cAøbº84Ë{.{ ÌÚÅ*óÀò<ôå{DÃÅ\~Žî5€ÁÍð0”oÓ÷»xxþ +9ls8ºòݵڑåŽoÍàe ªí[‡TüîÙüä ëŸKßg¢õö õ®ÑÕrUŒQÕ¨ŽÕ¿¬Û‹·ùðøÝoàY8¥üM®è+°ú‡‘Y’ÿÓÌ„½ž£ÁÿÜG´îÐöô7{×F …mL2|MþD|j!šµò¡ußFsel¥g­Ïòxr|Èè¡¶ 5ØñˆOÊîÈÉïBI š±XÌFÜŸ9•2Á=Ï©é3®«.-ßù9½hûÎxPÚË$xoƒõÁ€”¼GÜ+ÊÛ0kÌ…ÞZl¹ì‹Îb™}¸+gŒœÏr¤ó¿IatïQmZÖö"ZZrƒ? #>³z …NœKáêà,V!g7JŽò  +eZmÚ_76Û–úÚ\ì4X_Q“ØŽ‹öº2h §Ðк‰LÊ@Ï*E±B‘eò 3ß'×Fô&ÖÅBÑ£(ý^)ØèÆàS‡³T¤o•R<Ò°‰,OMÙ]+^P*Ë¥vÚLRüò´{‘*‚³Õ0ŸzÜÈö +ã¦\¯zùð@ß2e¦`£™# +[Ÿ®‚¦ÊêÜ‘ ÃÝL@=!!`·À³Ú,뉠6Û¾²Ïξœ'B‹/ªl Û…ð†‘]ã<û$0ÓÏ#»q=n»I¨žkåø&#q!µ´;J=¿pwS}¼î€K<¡¡´Px\œv`q°õfweÇÐèÈ.ôÁ‰Vç +¥ÄÍòÆ›FÊ¿¨( JŠd´áæ2'Û'õâ`òd/žÏÇâc›ºËѨb×qj”ðOJnÇ8¾RĶÄWøZ:l2¦a>,½¼™ÇëX4•_H'“¤‹thØ(¦‰ ‰°T“¿V Ìün2Xz7E'°«ª­\p"vâFÑŽt²ãi(¿N$w Ó­¦‹1Z|„´ÒrúGp‡Y ØÏ/¼±bsX%»-&t&—Gû(çÓüvð­ÓE.%ÅT•œ=&Iã>J'cã tÑhÏìW¹j«3f"Ú½ õ ¥Ê>A-4áp¸|L¢ÒBðÛösñSÛÒ.'>l¬+û¤@ðsŒ4•A(_š ZŸb,ÎØ„h±K6éì ñˆGiX:ÏG éKУé¡3:Ó Âäp\Â>ÂìDVïP¼ˆ&æÒ¤¯Q¾ ï‹Ld÷:꬚ dh8Ö/=9&'îQ¬á¼ƒ‚ íæUÚ›ÇQbÍ¿=±ðµ$¼‹óÛ-D ¦®%Ÿ ÞÜå£aø75ç&óäˆÎ’tuâVØ +2OÖ2>F‡p‰YßÉêj UühÑÑ›’{qæ ì x²¨A¯÷­~C¾…|a©ÁŠ3îÜ—ˆk=¼¹æ„†±Ÿ¼`oÅo,\V ?AÙ™’BäÏp°›¤éŸö\l~ž-6ðÝ•*u;1éÖ1ü°/¦h?kɈŒŽ³q«l¶$ágÕmm‡}­ÎÿÔwÊî-eƒ³ 7õ}Wà1û™øš?°K5mü”W¢ ¿8:ÅJ-ŠóÆÞX7°¡ÒÙð´ø£ôx!Âìž´•ÃëçÐT¾*Ð@)ñØœI…¤^& ŸO麑kzbÚ„žÕ°û#ßA\Öw½¯²ºÞȯˆœØsQÕÚûW:ð‹ìØú$‘ækJ9¯2Ø,!öÅ7‘|2…—ô’Ý#n¥ßFçõv 2 O¯µÁ›¼_Zýð!z¯„°´Aòìg,‚ÑLp¥‡^ET lîÉÕ÷£Œ¡ò|Bb|Œã®½«Pl­>¶2Ç„×ôKdš"(¹SI²T¡éŒšžD7Fâ ÖRC¡'\Bßv¦|çL½Úd6œÅf½0¤§5Ò13ô·rÃõ¯Ü­6¸»0 ’+Ë´ñ w·:» îò“½U~â‡Õ”~ Ê4,eß0ø3²óþ£øh˜|âM+¤¨PßTÐdƒ<ÙÂŒbË=×ébæÉÙ'®ð"ömæúçÍèŠwÅc"Ù¡ÄÚuìSäMaÚVaæ'I%‘—1¾¿¬µˆÅbØ›kwäSœƒSS?¾™°Ró²N¡*£§ì×C`C?g.P€âÿ.“õBºä]þ±O`–_’ SBÁgâ”ÕC&r¢”íµ —ôu%ÂñÚ–X¢¸Þ=&qsië¸aà½ò× » rG˜gˆzÃ4ÐüRšñâj>\Ä|§Üƒ‡ÑÒòDÑÓEzVÝMEÞ/†éÉd‹Àô®v¶àü6@©ŒÌR*Ž~Pp…¹lí“+Í‚RZ/gË-¿N+Ǧ!¢b¡Ád€Ä¦­Ï5ÿîgš}¶ u­"C¤×iJÏ( ˆçÛÜWÑv„¡,õºÝ +½?cøöÂîDFb>Ö\Ìç×âŽ×ê½Å¹"ÿ[¢Ä"£‚\ÆùdY¥ãXiaô…™ø¨¶vv€J¹ÃÞ‰Õ÷§3ÄêM{VUÉ:Í ÞÛK +}Ï.àéðzœÈ÷j£,Y¨˜Ý_ùJæQ¡ ›_ƒߨ;wjv~É ùâÓ*Y?ÅyvoHUI(-œÝCf¹ÉVî}(®Ôö1뢟Oòr«fìñDrËf3å¯.$¤&ôÛ› +Ïù_»LÀD†°f­ Z$°1­Ktò%'>Øy÷–fñ‰î™IùÂ<9AzºáÄëÔvò¦¬×”YãóKLa¬ºœÒ†²"‡ö=äkA¤»Vƒ+÷]$?• *Kž¯OdûÃcCä –Ò }6ªäõùøJ²âþäR…‰ŸQ‡7¬ µ¯Aö*®wkÔÂ1^œÕƒõeÂlwÃÏQKñ-¶Ç(B7Rˆ¯,ÍçÄŠ°ˆ×«˜Y1 ò½ßÅ$[#ôÑàÒ–ü˜ì¬:à#yâÆ>”0aÎJ¾§÷ë»tŠÒ·¹ ,iÛBàhU~PqŠ@0­ÚŠ‘|´ÙÔšbûwO–µP }Œ£2:xxÊVnó¸ÈÕD€«µÆyг²$¥’¡Ä¯½³¾+NŽwU0½Cq\çîÜýpa¸wnŸ‘Ž…ÂbC5î ‹…³Óbd¥°¿TÕo  Â14@ĬÃß—íæÀ¶¬HaĦ v6lEòôUy­0X9†Î¶ð¹²9#?öÒÜ7šÂ6{Q”'• ‚Ð$> Ïw;ªÆ†{‹ :sED£Á¯c‹’·7¤èÃ;&~å…ÖÑZWq‚^_B1¤Ö +Š*«¸9Å¥­Âô µ7'®‰6…«]{t¦0ÂkW¨ ÆÌëè“&hãíWS>Õe®$UTc)Áu(•ž°ÎmßñZ?¾"ˆÔÕ–J ]B,—BçÄ»-ʶÈ/°g`Yn䳤.º&¦`$aE]7%9ÍË'¾‚ÕvymËÚ€§ÚX=7÷5bJµJNghèç®XQ­ cì­†Íÿt~“¼…jûör¤%˜²/úIY3Wbܶníañb¨AtéÍ3ÜÑA‚¼®5JºaUl=Û=O2ù³uÊI #†?/pu/zŒö3”Ç|IÌX·Ê[HÕ °$2¿qŸqð28/nšÃ£3ÓŒšÖ„Lÿ!$^åL³ÃRIe‡‚{\1Saaiã OXAby™ÿô·%îzFN¯4k,q=•Tçi{œhÁécÚþã‘ó´ Ć2;8ÅD‚#\zœšvÀùæon­Ëóšn‘4.¤V²²ÑŒ™ïa  Eµƒ/Å‚zÕÏn£’£–…¢ðÁ9š÷6ñ´¥¾ŸÔEÑëøxð±g&U’+•C:û‹ð8ú +̹‚ÕL=ÇFÖÇï4vò?¾f.ja)x—Pä=³ôàÛ1ú¯Në @f†ýÀŠnò*òù6òfC — +Ç®ÞdÇÑS AB[ºV‡ƒ}Ò~Fl&qt[Ç+¼ÇD‰“ÁuhF£-Ј‘caE†ûÌ+3Ô"Þ¾CªZ<bzl‡v—ʪc;k¿o9Gý­ŠHpÅè§p^k .±½ÅHL£LáéyÜ䪤ªÊ¬6_|iYÃW" àYptÊT#Ý4yîW/Óó狵¦?e§2ô s˜9:# N²/\ÖT;é”n®_÷qýl7J¡²ºM)…xÓƒ}þä>úÒW8àifï»|QòZÛOêamÁÒýÇG–߲䚼3Æ Åᇊù X¥awœ&Éá"’×/tÔr~ê«=÷:«¿¨‡“å¿äÌW(»I +‘qL!©ì@xÈÌþT]@ÈÓ0NÑMòV¤=<ã‚YÄ]uÅMýŸ¢FÖ°>§ÀT% Ì›Z?+djG¶þdÚ¬ŠÌî«O»ýМƒ>EÙCtQ”˜’:4A,½¿;¨G[tô ½.ùÕ~æÅBå™ô3±cÖÁíêG;à5^ßùÞ.š˜xì}˜É±Úû‘Ìï¡Ø+‚F:?{â{DÇwþº‰³„—_x¤‹˜Ê±Ë:aKî$còxœœåtÚ›4¤ÚžÑ,ј®á§©¦Öz!×ì—ø«Ó!qM0M«âÔÕͬTBØÚ]òBn=È–d u<=º¦‡±gõÃÞ<Æu½Æ"C¶E˜VÿkqW©ùKNÙ2£b¤>ü ÷*mcmÈÞ×i&n¤ƒÇá ÈÀ¦eÀ» éÑ…7”Êp9U×ê1Bïýïä7'ÆØd©( ÔJo(üØ +}Åg’¤¹-æ…„ •„ZÛ]Ì f€ ˳ö3dMÖ?-ýö¢*ÿî5H]À[ Ö´„¦P"z¯O óO·× ,7µÜjîö°2د/B¼{Í|³¸Êgil>);/,3&–ù$àÿ#h5^Ù0P«6¾§ß#"»IB>ÃC‚ËqÇÞž üॻ;þ÷¸˜ÔžT‚}×€î#Ml™DYo™(\Ò³H“&J9dÀü¦YVÖ +`Ñ_*ó,ÀoÍÀÇ}Û~áfz/ §Õp)®–ÒŒ!RZO†Þ~s»|f¯9D.v]às•î‹ìˆ!æÑ¥”— ˜ÝìÏy—T?}5îç\4øŠt-ƒWòéäÙ×,^±tʰoJwO.ʨĺ)×›[é›à7ù‹€Ñ ÁY‘¸™ÒàkŒr\†º,!#›$Ë=qæ‡Üú«ð |‰údÂwŒGÅ* ·Qiˆ[…ù+‚ݹH~i§ÃD6Ñ øð¹§þ&é(fd­¾=­Æõ÷™u4øf‡ˆ Arr+ê‘vô¯]VÀtS0·`qÚ Ô a[ÔÞUŽfBžngöpÑáCÊ ßlÙl•ÆZÕµW1ºMlk%ãÍìàÖ?:ëÉb„F8¹ìRë!ƒAðVÛlaœþ}ÌL +< *ò :UbG +¬¶0ë?–4 †¿“®?;áû& Ù£-‹ +n )›9YBhÃL˜xdOiµ¾±ßjaYº{¸‚º+¯åZË”»«„ QÙM¤ÀŠìL µGã±BÔû»‘cÃ\É¥‘\M-ÆìÃ×7ŸÄ7MÅöS¼•s^iÍ^Ì;Û^¬,™‡.ê’!7Zg˜« ’(×\(ùÜ»ÁZ”C)õˆüLÅ$î…OÀÇjU¶iÑOVÇ&<¯¿šV]r"kþêܯ=ÙHuäyv +†Öèynókƒ¸?N¥¿ÿ„ù,»<(!zSõÿ˜Ó.e‰:ˆ¨Í^d^UJ½eG'ýýåÆÿùþ¢Ð¥_^Û5òäïþÔ“çÉÄH·N´Èñ@;YºÈNÀ´$y’†*6 ·’³âIá¢ÿº°ªÅYÇäý–ŸÝ3¢ËOÔm€¬øbCz2)lžó Öõ0+Þ¢Éø ÆÞÖœb›¼Méò¹Úvå½”WãΉç›| ˜¨ÙåË2 +BÍø´€÷ˆ[_”h»h¿=ýê¡¢ó]ƒX„U[ÜÎ o–³Õc·œHæ:V-zŒ—éJ&pÜ߇IÍㆠäÌŠLA ÙÓh‚3òÈåÉO¼œµžgo@ÁòŰfRî#ËXž^‡æq.¶Ì¼¢¤44ÜFé8JÈ&;2º,ÁÞRK9bÔƒ| ßšðJEgT{yŸÑ·^-jQ(ÃÊÂn›ÂÔo¢2Òÿ +hEªÞÎÿÿ”n{Š$¬ºm–+‡û}wÄ>Φ<.}¿5É%¦5?ŸZyu*ýZ“¹ÉL·„·wѧ8ÿÞxëé‰YÑrœžuÒ^œE}cÄSæ¾,£îG›sDÔØ\õIÛWf¡qfÀõ¶ØŸÕb"Š–ìVîZõÈÌu·FŸTkOwüJLF☟i‹0òeÂûäIÖq"7eÉ ÈÙÖï +H˳² Á±íÀ5ØÒkŽO3(óPŠ¿¼]9u¹~e°= +}D"Dü4‘•Tá‡ÍGŠmJY3ø¸J*×nšš©$+¸)$BV*CfsðXa/‚ Rës CË1¬Â—÷DCtž„Ñ‹=Œ/x²Wñ Ÿ:áòQ`¥Ê†K×0ûiã4ù$MøkÕWKmÏ»ë Ô·ú: áÉÿÇÆ=H5v„Fúe§õ ñ™bhšQø…ÃpåLªˆÂVËä˜m°ùŽÌ4Dn)¦ë‘ub†¿—¼#<Ò04£os&ÛSé¤×´6¦¿\ˆ“ÄWZþp#öŸºÓt¯©¾Òtc  PQ j–å6Õ4¡ˆÅÜîÆx[¯H%Ž[µˆÝªl-ù k¨ý0a¾¾f·„!Å!'ÄsÏ?¦©‹l³ð2™ú0}¹ÚµüßD^Ãc/È\O±åA‰1º8°O +¢®” ʶNNì µ^ŠD²ûC‰+[š%tÏ?úÖk\l9¥uS11ö’ûx»ò#¦$J5uÀW7)Ú`“Q‡ë”Ñ£´WÓ½a~*mýÍ¿H®Ð°ÏÄ´“çŽ ó«#ÄŒ¥j| añvW­¹ÐYqà·¾·IöŽ·þõÔu´;mƒ®¶Ô›ò­.çc,ë’Ь•!¡3Õð*’’ —ªÅ:S7"šÇbKž=™žŸŸÊ)º6Q"/?™e¢òì9K¡Ìés.Êê÷’5ÙE¬#Xý HHf…¢â¼È°ÜC{X®µ¤€Y(ß·h $ß ðLD¯£l ÝK <¿ß–s=±¢”Ÿ9s1×+ýÉOáDl·j,ȱhV½Œ7x‘¼4&‘Å3»D&¯“ÝÆÔœ ÉzNÕæ€û/^†2¼ÔD@Ûf*Ž}iU.ôÚÚF¯u³œ‹#…ØÏñÈjîÈÌÐzýçäâ~Na•^${¶óólmBÉüOíædŠ©éÂbÊÃì»a ”¶J?ô?KÔ€†¨xG.ê©£ Š®ÔaÚ‹°°ºÿ†·ÖŸM­ñ¾Pˆ8ËbŒ"Ú3~É1›ŒÊí³°FȬ]`¸ +fplN?gcN3–KSoÔ®)öÏß1Ì"@®§ö¡ ex¼ÍW#Jh€ñ$ù¹Í8ì}“zP[@Á;?F–c©ç aúœ™¿–G/—åÕ_0aÁ?]>C ;%p +eáŒø{Òyö/O¡!3ÍžaÙZFćè‰0â_>—7ì5ÛKT´÷`±¯u^£ Lƒr„š€¤SÓö6¸5» @ê?[}êO[Ëm©­sêüÖäç8 ;É"¯Ýd¬=²úEÎ;Ë.4¨™@2aB:îñyH5×U‚Òo„ÉQ±÷ÛžG§kà Öq54“ðP?¼ü8AuX¬PØ€ÖOkÙ2Ä5æ[?Œ…g.&ŒÜ•o-„BÇ·AM è ÕáJ£·™ùŒÌÄ€ÇyXÓSjÃ6o=ùälèæŽ¢Â0XЊGæÀ«0úÁ8k› ¥Øé×XÍçÕurë#™„3o4¿/×ÂÆ/H…yëÕVjâñÞ 0L[wº$TPÑÌ*(ÔðšôøF’=¡39µƒ[wµdXip1'ˆ<+=Ùüz Ž:â•rPÈX9—¥ÉGÔå-é·1Ø6¸ _QÆ4KÆõã™Êd~I„$uba")›fĽå-f|:šé»ûoö gVæÀÖO«o”åÃàWþбy+ñóS€ñ«ÊRÓ**nñ3¢ëÇ¿{ôø”×ãTHÏ1Ûƒ!y£èãûïÀ(·é9¬j‡õáA‚×nO¿-MÅy‹KËÌÌ›à‡n¼ºÌ^Îìû¬Y#Köœ2²‰PC|•WéúؽÿY[‹àóÒ‡2ù¦Fšˆñòù\Ð~ÿî+ á¹Ñæ<Í úÁêö]HL»MžÆvyù”Íñ-‹¸ÒzHʘ…Ö”ög +eç6\»/ݶòÓi½iå©×SüÄé…æ˜ºÃÁ™Ð7AV]3V&@ôéÈíµvå #¶…‘¥$4µàÌt¶ÌMB§½bЦWÄ%³¸é'G˜ó.}g8ÔF¬ ¯ ãø8l!ºbu?¹×¡Š{ƒc¡œ‰+MVPž¢2q”p†"c§÷ÎUÏ_«ã +¤é–IX1Óó£ÇòÄÆs0ݽ^‚ÎÕ2¾øþ§HBC‘¿ÛIȉï8€ê?Åt½ºÊ¾+C£V,_–¤8&ÝÆçÐï[«J™ÜuÍ!{rCŠ‘€œhü*ºV¤.µA1²f4Ù±¦*èOüÓŠ3©í`»QÖ”×ÿ;L€"=MdÈôÿêW£Fʲѣ5?Lƒlœðù¡g\iOÔú)Ñ‚Cx`Åò¨s}Õ— 5Ò›’¤SÀ¥â…¾?«ÿTÅ#­ŽÈÔžµÉ.Rm•&cBp¤µÝݪ£M£ƒfÉr{Žøu¥{ K==ºük[n³ï‹çÍöñU=˜*ñı •tãŠ"£KV0EÍ¢w¢?‡D"ïª=üe®É ´2 ÀÀªÜ^® ¾}7óß0Ðov"Gĸ0žy¾¢ZQ$c–«€^MC-ãÊ ë˜Ï/Y$•ì½<)‡"Ü–¿Êžzü·o<Öeôêþ·ÊDqCR¾ë aåúÙH „—ÄKù¹sÐo ýÔÞw¤ôdÍFK‡C·š„A ýYh9KnbŠAdP§ñh÷ +Þ´•"c «ÿðLÚ0ÐÔX™ñyØ¢&)Q‡u;ï$ÄqEO°Í›OS×gg°^fß;Š!¥ƒÃ«±(ò߉}v%] 1ëÉÂfшR£OéÜÚ f!ÍšÏjõ©žpÖHmâŠm´ËPR0ô6>¨”†ŒZ×ö>:ÞÿÕÀ­7`ý«À,Ä,epãXcoyÆøiðØ hi߀ýͤg‡€åÖ&XÓZ% ºlvå;Z|™éÀ—!¨Ì° ÅÖbÆ%Hes»ÉÇT K俬=l§sá„(˜ j_.1®YD$ReˆÝ,¾¹c+à °o Y¼³\øÑ–Œë'   !—ñ8Uʸm‡¾Rì^d[°i\¸W×ÑA‘Šu$ƒ`ôÁS‘¢&¡„[ h¯²ËžnwøÉÅ!8 FÿG^]GM-w¡ÒX1D„ËáI8¥.Œ Y˜AŸê‚5x<ÃßWÐhuSW@ŸÙsßP`Ô ô›ùú›¢q +ëˆîwqpù/Ò²‹Q—_¡îA[öNims½ßMö&¹Åçk¶/P#Lè'”k%¾ aNrúÞõøÕÌ-r!KÃ÷˜K‹ÌìJÊó˜ŠGÿfP®IÏüvSàU¤„®¦ Å<9òÍèZN¶ez3y!­šП‚’c¯ÛRŸ\É;Ê´‘:œâ›೜Öxáèj?¶*>š'–*yÔX³ÁÐÌ^CÉH¿ºq•†"•(¯å¼ù^[ÄÿŒÐPFÞKЧYù Ý05ÈF]³eOl‰¿±É¬ÿ6€ôdGîÈ8.•KÃq>”“0Ú¿ð%É…a±@o¯VFœò¯¡·_ôƒWx\^j³\NqΞö• ,:Tòqw¾ÉÁÿøòìí ÖŽÔj]0YÅwÑo ׆ºéÛk-Ó@8·˜/zë@ "RI°KüÅíÙVÔé5_ùâH}“ǺxI ±ÿ!K‚Eœk:îŠÞó˜©lUq 5èøeÁ +,Ù.;n•œÑW “˜q¿c¯2,r.Â1x¥À +昤 ÿ¼Ò+û¡/i9èþeÊ=cÉ Ë$‚EühÎ%Gh1º·®Ÿ™O¬íŸñ*7×oB—\»/ÇY[ñ‰ÚfD§’ïôd?Áþª;cg"Nã!…2…¥ã“Œ«áé%òð³4¼' +Å"Y×ß­»$o¥·Îh$úW3®ÈÏZî0Æ”‘(zxïmO±ÎF&,ôÿà+‚Í·éþ´ +ÞÐ +È5a¸^3™/} åvàu·Zè +¤†J'‘È0SWpìšñÀ»o4ð-[KÆƆŸådþe",R ­³@cDH®´òÿ—òÖ™21g—W½V*=-?̸ƒª“‡8-k›ý+¿ª‚8Ò÷✫3K§°Ny-ÃLÎC8_ø“Ì1,õeVžÌ!NaèÑà‘q$UQK½ÒŒÃS‚P‘Ê_0E_r!ÏDˆŸË:˜Å«DèõS ¸KiàzÁ]Iš?lÇÞ|‰7ûìúßI¬céæßLøû¥³àkáÚiÝ<ÅrŽ'œiÆ‘~Söh±¹—™ô~µ–šŒ…TâÝáιfý©²¶K"ï6h3qQm£«ZMÜ7ßNÆ¿•ª¢Eœ8ˆ +ô›¨³ÏpÖê2„¶äDM$…˜ƒ=H$8—S&5"r¨41´îfÓé~h2p¾Áu£M +n—"Rƒ%ÛbÊõFMF„èÿ3Üß‘/&<–â3¹\zX§îTe]!­ƒÖjBˆSáÅ3ºYibíjðŠ•*€¿–f²Ÿ9õ¾Zèn…0ÓR Mþ#Äõl³uùÍÙÔHLézðfg¬­ ØumÊ_®?رöWœëΙ÷ì’Ú¾tÉÔ'‚‚ ÉGhµ8‰3.çDÃ’6Éþª*Œú¸ÓW°fj¸-!œ0|ì6šðD1{%Ü"Ä(M‰…@_cd$(”—Œ>[‚\ÓÓùº±MtÁ C{íw7—’6A^,Ž ÕiÑ*ÇÒGŒè(mźú `r–h4D¬`É$•êJ‚üϹ:C&ócÏIãƒbЈ-ÙlúD7”Ïp÷öðU¸¢ž»â÷s&Ý9ßPî²Q’¨`&iÈ]ê2eÂÛȸ¨·üòÝþÑòîm@¬_¸®¼dUT#zðåR–xv‚`Û% /œÍòàn|èt.ŽüSŸñVÍ8=\ T{6±6ÉÛÇÐ\ð0xñÛm:‰J©$_þÛôwÄJ³x‰’8é€KDpè‚sð,3‹%‡¿9«ª‚mBwQ-ÔxbKj…G ËŽŒ°u”Ûµ'¬:ý@í‹Ú6´„ ñªžê +ÚId 瀑³£2Xž¬_ !ñèÿâ0Ûˆa¿€ÑDDL*[1â_+L“7Ú"ÊK›˜"ëìâ/@ß§±èæËãæ@:ëx‹e*ÿÉé^=•oçá#-äR¡/•õŽj!8œÏÜ_Ã`[b\Þ3¼”d¾û¨;Tƒ×ÑjZDÛ*%gûp©A®$nl|{jÖ|hh£ðD>(¼„ã¸Ê/y`ä †¸âž[Saõä¥ÙcE ¹¨÷Ö#šI‹1¦v#{ùVx >SQè#•¾vwQo„o{ÌõGË +Ï]ƒ¨^Ù„"©LÐÒ‚›¦Úóσß®]¥…àœfÊØºE èÿdÁì¼Þäq` +yd.~šäù_*g ¯V¥¡£È¸Zô RY3Ò…Âlºƒ²÷öEjí< x»PýÎâÛzSáÎ)L)œn0o‡‘´ô.‹0„_ Gþµß ®…PK”Y9.Òì±’¬j4+‚–/øÖ‡cÀwÀÁÃÙN¢·:Éd; +çQ•%ÔúÅ ùÂkçU•úcNZömpð‚¾g—ænhù‘’œ¼"E=x‰^¶@¤Î.ŸüÉĬ$rk*ñ6NçÚ½Õ=x”{LI~ ëÁêß–'£é°zÅéñ}ÝA –waÙ ²W켞Âr¤¡;b,ìVÙù° FX£ùÀ.­/—zaE=¿{d4“üØÿO™'ë—6ÒÞ³¶NÛsd"6ô¹¼¨Ë£sl#]oK$pq†é_ºs¤²„@øêý/Ç‘Þô|î0#0füºƒî«VíìTgQ¾K"zŸ ²ÏHq\ß×þžHÑÉS¯+¡ûDì.•@Ž¥ëÇ<s æþŽHιxtñµúïÒÐ = W»øhÒûúë©Ü¾ì©ëtG\lK;¤µ¦1Y}hìÛa¥gtH,ÙºE÷ÂoVkÿ¾†Ä…˜rßÛ*0Âÿ[ƒúR„Y±Vâ×4ÌæqgF3ÇpÇÈ^^á ¿´€ßÒÿDBû¿‘yâù¬•Àâ6x%Õi¦Æ²Î1òä%§¶Ë…s5pùÐw Q‰l °1´ME&„˜ê%¥ž.¾€oëÆ!›KH_V9¤YRÁáÞÝ óß®]-¥)8Ë`¸Îtb¢ÿ«]rå¶õ3o+W; fJ%‚ä$ <–3wl7xa“ºLêR84¦³gq 9ÆùæfÂåà»×NBSëÀ +(ÊÂHzfÁwznÞn˜h²ˆÞª9cƒó²£Ô ‰89ú3u k—|¾ìü®J¤â"ò ¸®Ñ³PMù‹×Þ“ƒ ÝsÌs°¶ø_ñ~9Îç²%’Aœ_ô@XvxCÉ ÍKÚÓ˜qbZkBéxï³bºY ¶šªvÎãÂ$c¢ÛGØ*„Ã/èí®[¡ý›[VR•ÔâN½Ÿßï ÍâfŽ­ãeÎþ’#ÐÃÔ!þ…Þ,£pÕ7îá€/àf£ËUf¬]äp¼DË3AÚì<Ÿ’=»ª˜xˆ™Îù ÿV;xl„±ÊW}{tw{˜BQ\øx–ÉZÀY:›î¢îE›àö¬#{}Vy‘íó# q¢’lŽ +þeù¿øê$Í£“.×:މ„V[0iŽÿp«‹1ßïU‰m†¹öz¥šÙ? Ù:ãaÉßK±N%OJômú¢º.ßPᲦHý¼xÆÃ¡‹„–4suñO͈ìèúwè ¬E\Ë= ¼ˆ@߸üI†í´|™›EÈg` -¨öI¢â,Ç®ÆbB)> µ”Ê#®{Ä©•…èrj5“M%Vá0}ÖüSw´®eE³ÛÝøUÔ˜*¥ƒ©mn’Û¢6gí+ý}ÜÝ”õ¼¶_Ë¢P¸™ç“àìõ]ËaìÑ…»FVU;ܸÇZº.F§àr_„®£ÏzT;‰N¢™ƒùZîÈ@ƒ%á°”Ôò.ü33DáÜ,«©QáYzwoñåëŠE‹H ž$c£ˆ,·aÍ©$Úþµò¡V\}3Rû³œ˜¹ ¤O‹kýƒª4"@Š5CÑ.U¤Í\!A4¶ <{帻™˜¶•ƒ‘…ôŸ@ÂQ=½Î–“¡%À‹0ü/³Úói’ræeDô‰R†& +‘¿bd±îX^ER'=ÙǨ‰0Ú˜¢jÉÿçn"+1(Œd^—ÄÆ,ê^ngþƒ²‹Ä ãlšK•ßÑW\•Ul½À_½—;·‘{È}~zeGWd‰q¾¢( ÝgšÅl×OWßz^ qšÙàŒŒpt§ 0w³ +dq·žôò±ç¤õrºDŒÒ¸ ƺföpŒ~€Wú3ŸLŽUè!Ïkî ƒÌ-ˆ}. ¿¨ØÌàßH&Õ³R²àÓî³~ðcƒRê'9Ð0êfSÃ,¦k]‰»S™Î!÷M×’;c­Ò6»0eV€Ô©Hðv¾ýb Õ}ôïÂhèÂ^ùkqÚo>@³nœÄ¾²ZY†˜Ò˜bÜÇQSê¨0xF¬®·añË–ú\IkKæï""Ë`:‰gêúUìÝ+7¶÷6#éÝApAA¡Ý}5qD¬-Rõïö· +û +b§Ê¤À#¬ªP{k +]Ⱥp#+êìØmSù8÷«Ðã"½O‡Á aÏxß `“3Ã@ž¡dE©/$¨JÕ¥~Â÷3k…ìS»qa°ˆÑ‡07Kv< +Ћ%ÛÄK]ª¡âY‡´Ú9~ÐL™ÿ»áá2Ÿk,Ví4fã¥%.nò[zÊ6—™—ý +&Þ"hm¾YÖêä![)Ͻ,é¨]PUŒÄÄñ ɯu`$^Q¡zq ~›haC„™~ë‘î"ÂýÙ0h×ÿ– ¶=$sÞ™ãïÚutŸ¿1žáûCkH^XÑ:_Lz4¾qÎÄ/áÒp•3¤i‡äñùôxóÖ»ò$N_m¶Ä`Œ9çóãnüŒw¦`ýŒºñô¦ƒç%Aû¾E* © ’°TnÌäk×€0Ê«Ê_ð9«;šVl»&e«·!e¹«{ýŸÇ8ç÷VIv÷\tÕÛvà@A +(“£¼:ˆHÕî$T‹±ÆÀ­Äh¥è%’(%‚µ-·š‹g†ç䨲«ÚnpVî¬9‡ ¾-nåb¥Q¶¶®¼AÌü,ZGÒœ˜0âíÞŠð1¬1ÐßÑç‘rÏtË@zq_H¼²tã–bÕȉ„߯2@ŽYyG®ûU@¤Š~-oY»ñ~ |«Áv£‡úÂD3._#T„ê.žÕ’Ì$D|ï® +endstream +endobj +855 0 obj +<< /Filter /FlateDecode /Length1 1366 /Length2 27424 /Length3 0 /Length 28388 >> +stream +xÚŒ·Tœß²=ˆC ¸{ãîîÁݵÆéÆ]ƒ Ü]‚»»»»[\'¿{ï{oÞf­™Õku§jWªS{Ÿõ5 …š&‹„%Ä$ »±p°² ¤”%õìì\¬ììœÈ44Z¶n ÿ˜‘it@.®¶°àÿ åºýµIÝþâ”!`€‚»€ƒ ÀÁ+ÈÁ'ÈÎàdgø/ ÄE ô°µ(³ `+2ÄÉÛÅÖÚÆíï6ÿõ ·`pð1ÿ+ ár±µ‚Ê@7ãß-€Mˆ…-ÈÍû¥ ¶qssdcóôôd:º²B\¬E˜ž¶n6 +ÈÅd ø§a€ +ÐôïÎX‘iZ6¶®ÿ¶kB¬Ü<. À_ƒƒ­ìú7Âl rüÝ )¯Puÿ Vú7€ðŸ³p°rüwºÿDÿ“Èü¯` …ÄÑ ö¶[¬l@UY%V7/7flùèà +ùôÚ:ÍÿþU9 +¡þmð?í¹Z¸Ø:¹¹²ºÚ:üÓ"Û?iþž² ØR +â軹"ÿSŸ´­ Èâï±{³ý{²ö`ˆ'Ø÷? +[°¥Õ?MXº;±iƒmÝAòÒÿü5!ÿÍäàaggçã倜 / ¶Òky;þåäøÇü·_'ˆÀêo [+Ðßd_W àæâò÷ý¿;þ÷ +™ƒ`iká0YÛ‚‘ÿ'û_3Èêßë¿Ãw±õ²ÿå€ýŸÏ?ÿ¥—%ìàý?ðÍ—MW]S]W›éßÿ·ORâðeáá°pò°88x|üÿw5 íÊ`ÿŸXy° ðïjÿÓUìñÐÿG €ÿKò—µ ýÿ܈‡ÝâïÇÿoªÿ+äÿáÿdùÿ"ùÿY¬»ƒÃ¿Üôÿòÿ?Ü@G[ïÿþ’ÖÝí¯”!eþ?¡º ‹Vâ`ùúäÝ€e ¶vøïC´u•µõYªÙºYØü›+ÿ¶kÿ£1[0H âjûÏ¥`á`gÿ?|…eaÿ÷âpýKȹ@uó¿·”[@,ÿ'/èâôFþ;â¿+€/Ç_%Z‚¼þEa+âö7ð·9€ÄùŸy²ÿ/;òÿÊmáîâòW\ÿšýßÿký/%ƒ@^ äµeˆ…P¨]}hçC­±'ËÑ´ÈÍ‘n‹ïšK—ûb +CMÖç—;‰”±~ŒÍú[ñuòWߟmˆíIêÏ~/¦ sGÈ«³xÃ3E?%†H?°h‰û½:ûéÛöA÷(Ðä9»ó£©`?xÊy5 UlL†/©×ð*¢¼T̳ÄjÇ—.Òä›g/P"¸±"1býòB_¼½[ÀÊy'WH`Bö?å*ö5Øåüú¸ä³U¥ÅéÚKHMh@@ +{‹59Gë+yúMÅ·¬$N!<ºÄŠÔd¹E´ èÌ]Gѳ&\11³7AðÃ4Xªý`.<ÎB}ŸFr쇃fn7V^_éü+‡i!²«z÷É+žOté%è÷¨b1¼ô uÌãk¡8~Ù ÿõl?Å/Ìþ{'°ˆ¢jÒÈ;¼<Ë/ÉDsf–ÄÚ¼L†F!Üë_â!öJ.¡xg.wÄ‘($•ÄÀûá*'øî¡KrU…/GÌ@/À{½Áêëm—M8Μ!Ôa‚Ð8ôt‡2HÁ*ÊB}sÿz¹Øè_§€÷X)Ìœ˜òF{yye@E`b}yõ]FRíµKÇëÙ,ÉP"¯»Z‹ƒ°|/ÍJ¬U¡–#š¿®ØQ‰>ñ™ÑäÅø-RLO4+(©MyךCqiZ–Hëøl(™Ã…W–Œø]—6#Øš‹àyÛE&ße\åÿˆ¥ ѯs›\ˆ‘ÃÔ Ò)®a‚ÏοÀ›Ír¯¨§ „†¡°~;>5Û"Cã‚Øʶ;—gBÅA7 Eú(ó`îv¬±'áý–Áxyý©ö¼<¢‡yÌ8œ1¨Žú^tš6nÿŒÛ¸ +3Ÿï¤,iá`˜óÐzÑ`€Æà>œ¬eÄnß +~<5'¯“Zdóµø€±¯ðŽ ~x‡>ÚÏ2Y”³¿·V?Ÿb×Ϥ ”×”’¨šàJø)ð1ÈæË%œØV ,f2¾ù¸‚v0Ï–ç‡o_·†Iì¾9)HN“këû‚¨Öd=¡\ÅÛ]öÒä¿i:™èCn þø5Uò çÚdsö0®…ÊÔLà¡Ip“è6‹>ú í, OïªI#Œä·‰ëª«ŸŽb¡öv뽿S» ZòÁDj—8xB+Nò2õp¢7¯/Kþä¥`îÖ0ƒ[tÌK^Ã$·¸ùïòf|¾NˆÊç&:âLòïçêI!¬E(ɶ]·Çî” EÁ}µ¿±¦³ÊBáoÃ,øˆ9ƒ¸Äª~ïå°Ðrè(6:³eŠr×ÂÐÏý +Æ;_x㉆wêûÂ|Œ P¿µåÂkÕâôìb1cd©dÚr%ædió7bìK3–‰å6ÝšPU¹8ÿ ,¬1iòÞæ’£dpdãd7)éÔ8¥tuB*M+ÎMS?|ɰm\1V.‹o,.nz‘›£÷±–°„°&)KÈù,ý‰i¨Å§þ&¥š¡ùjΛ®ï…lѵâ?án‰w§Êù#uøoÙ¡'Ù]·  SEÍb‚Ó Œ3DXÏFç…´†+:ÖÈôÒ÷°nû0¡zíð"67úPÀ˜+sm•<$ßhY{dc¡ÔŒMZ¢ød!ê7‘\Û‚!œ0߱϶\Ò>iF£ñáR$jæÍó µÈçdN‘´C·kzȱ ‰à®Yű™Û;\ +X®ãgÇ|¼cÑJ©"|Àr¨˜¢dÕˆƒ)xGý ì!îyTA~§ ¯VŒxäÝëpÅÌ2&h÷MƒÀÓBbzæÔĤê¥Ø”‚‰|›ä·aÓ—}âÑŠ¸F kèñ;}›Ø |àÂp|*v]OW§- öü—;†Â6G³,éé³…lUn¡îL½rÔ¸¦(Lñ!nœý‹-©«ÜÖiîCY ?™T–Ø×‡ž²ªD ‘\A÷¤ßTˆ+}!ÕCf˜$@}mIר<X×Í8[šzƒ}¦„]¡•76J÷Îé_™B7GY“°óCÒÖòh(^å”Ä.žcCø6È•$1ÕãQx-;Š6q…‘g&ãÜÜÝS{®‘|ʹ8ˉ_í—•f/N‡o£{Òrá‘cѬy¨:¯i1…BRcaÚ= FL·N½7øŽFsÖžk¥ yùÝ]¦ßøãmsvïX,> –×ÔUáQI!…)S¡Øð“9ÕåÇçüÖF¢ôÄfÕ…‡Ñ$ÏÉ:ˆPµ@‰G¢"ÈLܤùtlr‘MHx÷–É,]Ù¹µw@' ©MÞEãõô¶I5¤î°êÿå^_œãrLcº,ŽB1Z­xqÊÚ¥ªðxPή]ª°$œ_çDß@Ų&úH\žb§±fÀì•Õ<8ë2-˯#L/rc¶Ý€8¢ÛsÂfyÖ"^IuK›V›¼#&é k貚¾¦<$¬¤+ÅHFxh½£6BAøO&™ª‡oMÄ‹Ïòí#ìF¹­;D&jeí£·•xŠ»qo‹rE–Ä9ÇËÒó–_ò±ÿÄÔE|qhœÔeƒw1Cˆ‹Ë]4 +p k±”D¡§Â‚øO}2põ,)"Oÿ™CÜ cï=§ÔåÅWË”‹$î®<À9àY*"å+û¡ùÈ%‚œºÉ.å˜jÚjgÈB«Ü:;¶,dk¶~i:ÕÕ0dBâ£@ù n”…÷l™çG¸®ø0®['K‡øÂV~hÆËÒÞd™/ÐQ£ë¶²ã»i/ŠV¯–‘Â@ýò#×SÔxçÔ·³æÃƒ©‚ƒ¡_aíð*Mád¶BJØñ1®[&}÷ÁìbÐjoÒáè°ì–0O>,oÔ½gÞól†ôÓž$÷RfØÐqŠë€°?¶…n0o#¢‚=,˜ÀRzH.ícù ~HÀw™ò÷úº} Å…¶D/Š)_bÃÉyyüæ–á¦I |$bs6ú•Èîu¹çü@A÷¹ +uÞ ¾VñÀH™í?¿Ñ˜Ó šŽ¬Bæ$zÚÉ4[^&á䏨¯È}²ÉiŒ+ƪ&kIÒôšâÀÛg~ _>ªµgœŽ7N¹þ˜És+îÖ÷9‰y©úD«ü -Å\’Ö½ Ê@1c«t\cgµ×ix_(ˆêö÷ÌèN7?\ÃÖ=f줨]¿ÎJëÚ çôrضp•å­…”þˆýTôˆJ$æ~–HR +²Tgi¨¥;Œeë ¼hg3ÛmºPœ'{þšÉÛ¢&«¶lf¾÷¾‚æzYžÊ£—’£‰•¡ E 5|/Ç]ÄÿBt'Œºîöaý¢eW. b·°Ù +|‰·`¯lÞ*ºaMŸòØQ¸v¢Å*¢4Ú3”gõ­RiÎ#§/$²ËlZL½ØW>˜À»‚Žúý÷•<Ú·x8qgçI¦]û\(ßµ|„ ¥E\ç¿@.ÍY —Xm¬‰¯&„!‡=à:!õÑh…¯‹Õð¦£õê~·lò„!o.â§è…®ýtµ’ë.*›vL6y'À“lØsg/ú§"šjŠg|¸¤K?ü-ÞŸßz›]ï¹¼ŒcdùÆ».ú§!ø=¸UT@Y˜#qç¸P‚ 0n¶%>ÎËÌÚ#‡x u… <–´'2¤ †æ¦wd’xdø,&Ö¨d‡a5­Nä?WÜŒñû ¯JsÇǵw‰Ž»:“;äÔÞü†=“‹Ãv¬šp;ÁEÆ2˜­Ã>U¬{H„G7KãžoÐ]SBµdð6( Ä·6rœ\Ì;o‰&w +g_³Cn¶œûZqƒÙYHÇ_Ò) Ïhº£Vº6¿Á2¾lÎDUD^RóÿFc:32Œ‹x}`XU€Ë¯$Œ.e¤k ßþHm +Öž몳Œ>j3Þ”†à¸7“8 îÂp÷G–ØÎ]ùI*6ÓÔ^‚Q#ú¶v]°ÓÍ«W뮚T…»Uô—‰G—± +\«$ÂÜ¥û8ŒXT‚Ó‚:ÎsaÛ/qƒŠ$M„—óßÞžK—ö&òSª×)æ=AñöFlɵ ¸Lž&Øü(J`ÿ¨{^·ñéºG$êJÌ>ÌJw-Ãj[†trÝß7¼£ƒP› ¹Á.ήջž…èÙÊ)—ËÉØ”Ö^¡y }!vk B­y®‰qÔ¥q~ +™?¬f$¨úó…'{ñÝužô>C¾¡·£Á‚§“n ‰Ÿ:˯ù±Ïô„+³;Ü£±ÈçðË–jŸ»FXµ›aÝ›ycIDn28ɦ¬ãËÌ5ù­>Ї%_fíÐ!ƒÙ€—K@F“k[©ÛäRŠH¥È%·9§¶#[Y¨‚R§=á™h."V@ý¾É5Cß•áÎõhjA~‹Ù»ÚßV`Ÿü2‹tî”HýO„ƒ/Ö Hruê–]çÜ3÷.6­,W{¶pÖ=š­N±]WóhJÞÿ°™œ„!­#3<‘;á1ZÒeJ›:Õ +D7*ÔâuÞI™Ç¶Ñm´ËzÏÞH¶ÍòõÕ‚/§„Šš¹Åt" +Y}otÓê'°ø+9~+³X êŸßnõkâËÿާ¢,S“ÏT0z6& {5ñ‡›Îoé²CgƒøÙ X‚Ýw±¡õ@!£ˆ÷+´Ú.)ÚO?éWÉtíÒÞ×{ƒ“4¡Û?í ¨bRwR=Ù$;z‚>¥ãQ(ŸKþ1¯DúÙ/ÓqÖÔCápGSÎR›ªá’)‹UÚg&!Ú°8(ý§«ù·ÂœmRЪ_´ÿþ“ $½óŽA£’¶KA¥#Vwª`»n÷S¬,6,Šûü dÊÇ…’ª]T5‡×ûµt$’Á=h>öùÞeÇÚ,úؽì-%‡õ€¡Wÿc 2~Øü—ÞÙË+‰-(}…æ>ÅÙ cLc—†ûo5 ¨Xˆ‚fæ"ü +TFÂÙÊ/ãŸRB¨øWiQˆàÞ,# T÷!<£¡º9ì_ŸDà'GOšxXFùó…f7@¿Tí9l_ßû<äè–Bϳ8 ô¿3!7p­eǧ•èNâ„Ö¨Y>ÚÐ'½—à *B6>2aY Æ8ïU.Ìúl^}g§`›ŽkCaÓ1@Ÿ*TèØù–c#,(°ÄÌ•y»†²¶ø’ |d™Þ@Í3§vGಈ.d'Š:tmÍKt7…¹Á½½¡±©å ùâƒp3û›9L7ÃUIòÚoD—U…ÏþI g߈ÎȾç|s’Ç蔣¬ÓÐ^˜üýsaµIA¼z{éݽ}6üG¡Y.\”þLE’Ô=®;¬ÂU‚ö©#:#Xb^¦¨$²›=Grs±øT^3†>lüS7¢ƒîáÌ$WŠáîy«¨!okË8í&ú9ÜÓ¹Ô¤bQQþpaÃf¤Õ&­J ûk…±žX“V±S”ÚGý©»˜Ànfïúæ«“Ú‚¬ø¹@n4í†óXÜ;DÊ_V•62º–ƒvn¹¦×eüÞÚÃýŒ~¿„4gèǫ̽ƒB¿-~_>Àá9ªj™‹Æpsë‚¥¨ˆ¾¶ñ–m´ÎVßê˜Zôëh‰VÎJ0Mì‚: +å’C‚`J>”Œ©„߬JM¥§üL°Šx!’ºÅq$‰X6_9äH'*ÐB’Ù/d ?o½Ì_$ÊÿÖ`Чç2Zyå”7#|¾ÙJßòÞ´Ì¿HSØüƒÏµ=Ä€ØÆ UžAç¨màtœÕÓ*à|@Isèuñ4m?ñp¦ÌH~ú.Ùrðâ´xr¥8”3ò_À )%ÒzæóÜ4®Xµ]«/ExsåVx~ù~~}%;ÔBöh«çd6ªæCUôˆ9mÁÆöu*s«hØs'! û×äóÀçd5"Ô?Ø+t:ù1ÖS̤±v2f)û&|ÑùÊr2óVWóýbôñÓÏ2Ê:¡S›œο¤x¬do[áÃjþ"™ƒë\&ƒAâ¥yeý¦H÷Ó\Î`náþÏèÅ¢ %¿p…#]VÿT_;Q&Lâ°ÙTè;CŽe}ïÅ‘¨×a@¶F=v)ú:Sͨ­ÜCl#Õq‡ªâƒÓÓx.FË,Þùú±B8ç$ŸEiÉ@mãæ/¼Õïœ)¤FÚÊý,wÚØx¿¤ ¸à[ÑÓCl˜£TŽØÜ:‰lÆ/>äÓ^ÏÍ)ðºu¬ªDñ­ß-“³1M×%í¼FÊÔÈ2BH°Ð|G\Q%¿Æ&+mkݲJNØQK²ÀýôÙÚ×@ŠpN©‡ÏCŠˆ”8ù^UÝ©ê€yðWŒLÙAoV_dì/3;=ÑIx@Ž3î±bžé‚\÷ÄýfúV¶I±ßJ^èÂ,ëwÌø:ìûêþP::¤(Îï ¶~ž +eǹKH $ d4}áŒqš!wøªÈ·ˆ]8™l"§f2¬ +†¨¶±à”[+}ê÷LŸÌ0ëqü1é %¯„ÚÚTh„ç9À¡êˆnˆÚS-ç”ÿñé•§ºd0’GxɆ\üùv2–‰ÖkŬ NßÛ׉¹åà†c|ðéSÅÏuÓ!‹ƒ±Da©TT! 3¿ŽÁ Œ‘Î]x…ž¼-™öq”¯ŠIð 9z±Xÿµø‡ÖnXƒ¯ ~ÊÊР$ÁÐB¤éM1¦'í[­÷Ea·T!H±ƒGùKúé\¹lEV:¯<ÂãÓÐäWv4ŠZ6 +6V(LÖ4œÏøpß_×u1g”·ÆXCF¹«Çy=FNï» 1Ûl¦>Kê šÒAÇÂbǼΰá"?u ȶËñ@N¥l‡ò§¨/D­úʰjG„ÍÝ-ët.ÏñÒ\¬¨ê•©èE¢•ÁSl’MÙ¯Pò ò£yõÄ@UÄGvŠ/D3^Oá-h»b®ÆÅCr 6Œc°08ELÇPUšÂÎìZMx¹I\¨qÄåÓ÷Os *!É]ÜìÁgç´ÎI"kýQHº»*~ÙçÍl€?áå_ÄÞÈn·®ç–y¨)³Ÿ7 ¼iÇžV•¶ÄÙŠÜ\*B"àJ¶z©@¯ÄÌ|u–Â'3$AÊ–ÉNÉE¶~–h6W2"{BLh€ƒNÒœgpÚÛê¹—ÊŒoáôúé¯0ë2ü³ÙKSô +âù>›úü6¶Ô1iÎí­õƒ… §Õ«ñrÂÛÛŠã¦%= O×”sNÚC7Æ©/ òÑv=;CcW:´CbÖÕ¿…gã‡EcøŸîâ ªè‡V–C†o„^Ú¤¼c ÅXGÁäOÞçÙ‹DÒ×/v™]2[ž—H{¹ª½«îuïå}Nº£Ã2v°Î°aÆZ8d0ߎš¯+ë3ù€ PâeQÒù[gônNž<5­0@ņ7Îz€v"Iá^¢Nè ŸF¼ªÇ²‰–›è µPøm3áé¼´›³7¶Ñaop°Vž«åHP”Cž«ZU¶Pý< ùÀc»úþ÷œ¤í„úÁXŽ ÖœÛÈqd:Lƒ‹têùú¸8«1ÚD;8õ°ÉÇŠ÷ÝQ7v8XÃ49ÖüµÓXñÖÛ‡ñíÓøègÞÙÂâR¦ˆzpL!â¾°[p«ó¸›´RàÆ@ ÙYœ` áÀ⨖C4LKë + ïrËSOI}?.;åIðHø(PA”×èUlÇ­i5žâ´Î‡‚ÄLvI±™Giš…;ËÒW؇”µ1#ý ÊÐg$ai‡•ç¼1dêÎÏj“›à«gYÐôoTÝ6€ÞÞ×׌ôͨpÃ2‚ zCãÏ +hé¨0†-ºÂ4ai5\±ù?š’ÎDÀÄ2c :±ÞR3maæÔ4j¨}ZêBJªmõ}Á¯,ÕÉÕégš7¤tv´.}~zï2„:ÁÒDµ¬¦ðvî¹×Œ—lA¼ïú­Ê¹ÚŽA²~VC·pýñëì\½¾¾YDreWÏÚjŸw¸¾—Ôc_Þ÷¨É²YÝ€ª§¸á×o@‘[Æ«2ÂÎt A Í¢¼í˜ômè ³¿wPÔ˜ôøö¥ 6ëº3 ±%ZqJuÄDÐTárÌià³…‰'ûEÀ™k5ÒqàÆƒPxªæñ¡ªÈÂöä%Å‚ŸW)OVaßš®×)ú$§4ð¶¨Uúíñ놯OÔ7~ž˜ØH'fÅTá8 Y@GæÖȰíßÞ‹6ç—y¬(.úቂ>Ú³§ ©¥¨Ïª,܆Q™ù¦»QÍ7 ŒÑ³„ï,ï·Sã„à^†®†¯Z(hðzíªˆ“<ÝÖË*µ ´—q=HaHJܦ÷ßþ‘g}Ÿ#.ŸðVú M(ÚSò޹J”÷I˜]ïrûèb¬6ŸÛQ$# ¡³ +%iG6¡ï o*GtÚÇ ¾ú‚»#[7¿Ú[Þ²äÏ%Òê;™ùýmk:]Ɔ/nå”û&+|z2ªú­9»ò¸Ó›n €QÝ© —tnqZ!We‡eNŠá]k×GÐ!ì\²~÷˜Yô2î‚î˜øê†–æVh¿?o’^Ò´;Á4mèLÜ`\ÿé:â­ìí“?ò¯ÿµÌ¢´¢S¬÷~•wBäç÷¼áOJ·÷íÂ4€“ŸÒ*õû6 Ø›¹ÅE8Éf+ð«+1%¥exík=ø™ë~4N”v£×1›æ›0(I†BR+-´°XiÅ”—7*m©›R²¹ð^˜×ÞU¬FžA°ÃÄuiZâ/÷| JÙ&šw4ÛßÛ2ðR±û7ëÞ¼_§èìhª®Sñµ*E7®•7Pµ*’'öûÌú?B‡yºÌr%Á#ŽôˆKY*¿wÑþ >-Iqw8}œWŸ›‘Ž¿¥,ýÌ^ÅÉL)‰Í³æï±òå(e/ÆÑ>r¯!xyÕö÷”[c.³Ë~›+ 3¬%õW=„ÇîR<ÔRœ^Ë÷€„õfE¸¾ó1¬ëÄÕîcZ‚‘÷#¿ÆOS +ÆÕøi³SÍ‚œIy‡+ÖšÊ)©Íâ¥Yþ2ézZæÂø? T»¼€Æ¸Ïb‰ùþ] ÌFÙì¾’壸 2ü>"[T‘‹Ñ&oYGÎTDá˜++Wˆ:X#u´‘„v_0ïËÉE2¦ÊMþùwµ +G­ :šBçÈæ‚ÔÛO­u¹wµ}X5ÑÙêš×­›ÇY¨[%™OOèÓ÷ElÐ?û +/–ú”øé'~ê=£0“@ßÒx!BŸv#'níÖ^S/t¡ÐBWáÖšM÷‘OÙ.”o.ï‹ìT*€Êµ³²Þ +qD!XÇÜý°\|'îx’F’²Eµë­²ß¶ŽaíÇÄœžJÙÖNÒÑ_ÞsŒSæê_âÖYj£¨ŒtËÁ.‡•nw9¶ ®˜¤™Œâ_e«Òý¾.{m¹ ¿ÀðºÍTºµ½¨L­“|ïùX¿ß8í«´ð´1ÚÀS ¶´»†Ä‘Ño÷¯9Ýt<:Ÿø. ºÈ¿vÇC¡>žW žùéÎ(+«‰­žˆQïʤš9‰C»n‰L9¶"«ÂƆ‰½s0­Þ…üÞu RßÓ®Þ1Þ7Ø€½÷¼ýöøÆQyxW u¥ÂÇmªðvÀ/Þ2¾®Æ5n¼¯=ã#Áìgëy8‘Ð:`ž+€»dôùñóÓôKËz`Æ/ÉbAߤù|N"‰däé›lºÍT67o$^Ÿ.И"¯ÄÜfA9_¾¸Š(NçüïÐùµµðþëX9²ü3ɪÕ&"£øïùÓ¤€7k®rÇwYX¯áÀS²38£µú~æ> ÛOÀrŒÒ\V²\¼€isóÌf¡ÅøM1 ϰÖýéUÚÁF–Uq<‰¯+’pÇ4ßcèr²`)T*ÝV®Z&»A¢bµZ]½§D-°q&%ù¯Nw.@#|hµU¹ÇÏäü˜kZÛï;o' k$ki€ˆ”ƒÚoJë7¦+$_6h÷Õ}‰Çûn{SS6‰ý™TƨK½‚Ç}˜àø·àņu›Mš'„ŸÖèšÛ÷¬:eá„ »Øæg;'GûwJ6ë´§çøôß"‡aùhu{8Æ8Å7ýùådG_9©‰¤-tˆ¼Ô†)u‰^ü”Ãq˜·ëm8Ž|Þ¾Mæ/ãCÆå,6ûá–Èÿôþe\è `¹(5é@Ì!ä¢Ä(b¬Nóê×\öÜJÔÔLø 9ËiõÏL/ÒÒoþŸpnýWúóB_¶fŸ‘ý¹§Ä”õ§ÝQ9KYáfmmú݈Ï*ôN¸d:¡X;^ß±×Ò·¨">¯€­ÑÊü´HÁúžQ]YïDëy ‚: ÙÓ-Mþ0­½q0ޝ¬Cýȉ©ÌÒB5UÅlªµf+¥¥dv¾:–awƒÅ¯4çrŒß:^oº¤N´Ö5^œý+‹éãj=Ãò·}0“O¸Q’ZöàPUÕ-.ìô’&Qи†t†ä¬ŠØ©NæG¾%¾H°Êã¿ãv\S˾½\«µ<æ:U&eDÙ ûœoÙ¿ Om1ò^3îÁÇD¸0]·ª/·ŸEfòþèãOË5 +8ÜôËdj"†úÍΧΔ4:– LWÌÕÇŸïd¹­.±3BÑj:ѹjÏPâÑ®7‘¢ãíf¯7Å›²cš×âòfÐ&"Ã<ë@úÉZTpB©¦± ˜€…”täîèÚÌ~ûô¼›ÜdZw:+üâB…ÿj-"pCÉù†¾aèXЕæÞ‚L5RQ +å ‰7Y%Ð&„á0̃¯…Ý–YõIšNˆi°PdþQª¯Ÿ²OŸ÷%Á üdÊÇëOâ’ ^É“Â×à±2îy-SyKu·Ž*AJÏ!å¼â;ÞýÓ>yYñÎ +ðbªŽ°YNØä¥p/Pî8µ]„OÉäÅZÊß&ÕÏü wò¥Å÷ +,Wµ“üà¹Z–=î—8ŒN¼?}ÄìÞ«sÿ…†ö[ÒR1[v—ÿžFä +'áÉ` “`ÌV'ª.2›ç¥’ÉŠ•g©Å~ÇøüÌw…NR Qƒ÷¥ß­íÏô± †ggnaA³kÀšë˜f‹2Y£îˆòbFóÊUþ1 ÛÔ‰‚7G¤´u°gíêü½Ýà×›œØŸðýWrWK'¸öãwlË\Ï9ñ.ä&£ $Gê*,ΧM‡a~Ng“fÒ3w›œ'ëZNÅFîçó·âV¨+%(ÉÏ1ª^„aì³ÊË@-g¬dÞׯ]Iç£p6ƒR¯Ãræûߊ8Cío¹‰ÕºI¨Ë3¨œd@÷BßÛ{\î33MçfâcÌ{n_zñQb¤Ù}Z‚8#z7fk •©¢FHåh-ÈHÈû>Ìükò…§Zöe}„£ª˜y~–)›}Åë0+뎎ì>>¹‘F«$4ï1 +Ìe-ö‰ß&œ™ó’JS…7xEr †¾J—ï¸$‹ø²%‘}äið­gcì+¤û¢‚ªÉÀ»@"~‘!)—??öK±A +u‘%ß®3fx(WÍZÙqÓo£é}5xWãoª r|ñ‹Ié|ýÓ¾Y„Ù/apš +27æ-X)²²¯Yšªn×›~¹/ÞçîÈxVH²M¦ë,cZÚãZ P[ù쨰`móÆ*ÑÙwø’mŠŠÈÛ¯2ÁþcdîΨùT¼©úoFë^íGnf~bß­0މˆþvJŒg/o"Ÿ±ØKlZŠÔó's@cZšP˜ý|f4vHaœ0Cùßþ¤òbž9„Dzø 3` ’é?cÀv$¼q2gÿ3‘É<Þ/h'1 F¯œÆv‚ótà’;¡’c!lìý„ I—œ‹vÓÏj‚qÇ¢îm]G‹wzcèm:Šß» ×'¢\ßÃóòÇi¦Ûðx3b8 С{ÊôŒ˜×0/2Ë<£këT“i0¯ß×\C¢DŸJisßé_Ç.aIÇ~¯¬Ívª,'vѾEÿ®`ž0qÒí>Aäµ5 ¾‘žÔG˜Ë&Üw¥hÇ+¯V¤òú\X¹,§êffL H|›®çÆÙ +²FÛ€¹b¹ô‰£¯ #7´ª£V‹î¬Œ*Jq‘™ˆ¶yÔÁ)ñسÆQtˆÆ^Ãi# "ÚÅ?ò°3,¼« .ÓÊÔIù{ Y!%á$”‚e‹ÚþÍpCÒYOv£]+~:ÓährGß÷†"0Ãß<ä>ÇäAŒ<ñW^oúÚ·¤`À±\䉋=[m~Ç;¿ÂMë  yn‡L)ú×4-ó=+=°Qý³;#œí<óO|4l½ˆã­–,øZhÂο3Ì¡LÅ“l2ùªzUknÜEʹ¾ ¬k?¶°†¡8“ž¨lØ÷±ê¦?m ’z©9ÀDE8fzžª>UͦÞOO ÐHòçùËj•!›,"n"®!ßW7W ô.{&²J’vâT§3"Üýpû`zCÐ:`‰YŽ8¼ÆBÅóV/2ð¾]€š Ž·ƒíÓªA³ÊsÙNvs'pÛe1NtÐÇçR'×LüØÇCïà´<Ç•»T‰I•£ A÷™ƒÞ]¨WË®x9aZ"$*î•ö^?¯ÿ}|‘8äæ­iÍLVàµ';k¥“7ɲ”ñ%ŸrÈ8–~¼¿zæÇ µƒð-·tuËíyÕÁ/Á_]+¶§m:…Σ"pß°T¢J¸2ÍL>F½NO)èRJ ÌÈʇ¶}ó€°œpT +@­j"Myöo¯‰°yÖxÊ}{~ºg9èÑž‘ƒŽæ?øœï9õ꺤ô™¼§]G‰û«eæ©€ ÂKã餠ÏnÁû^U…Q¯¶&Êw6‹YÅÕBó™˜~S0-Kôª´òü#‡¦eÃóøó¦®(îGÉWÓ/MðÜjZlÊÊÆà}µ¸6xJÉ•*Æc‘‰åHmuäSnä%²Õ ï?Ú@q­ßñ)¸u+U­^ôw#oþÐOt¶kt'ßb’:˜ÜÌÖZ¶«¿D(|'ð§øÚÛí(d©Žýý‡œÕˆ/Ü}$n†cïîcæ’¨%ÖÝpXË€LÂIè”GÂÏ\“Õu +ŧ·ƒí@­ê»–Ém.ˆÁŒ-ÂB¥y@A>è³­Lµguï;ÝØ*ÙR”r0žF¦! NrÃÂÕ>lœ„KßÏðbòýÄ]ñë[ÖÁDŠhP Q®œ¿^¦!8_«åGª•†«$JOt,¨‡…J]|*ÑtÓ°¡>:×ËÚ1æÒ†Øm<7áÐzCìUŒæªÊÛÁ„éÓà¾Õ´Ÿõ33îøÚvÇþA¢‘ž%]ã ¯R™`ÕúÀV¥ôÂýïÚ×**ø(#¿HWêSUP8¸Aýäµ_Ô7¿nTQ'îü³¦‘äoDß#¦g²ÞHÁ’ás+bN£ÁÄ·‚e0V(ÃÒ[ +TºD[—/VdJð¨ì§$VëÑØˆØðÆâÄ’±ßïÆ79ÑG»Pú†_ΗzÙp5×äe¸¿]  ‰FrÆ,©ß’[†0<ÄKh6Šø·•"ôìÔŸu¼÷¿ÖŸ`J8QŸeg{²vª ©DtYw U™ûº™—8Ðlu„º¶˜å“lÆ JnpwW•à½4dªÔ:þY¨À8çé$Ã¥´ÐlÊ"—N­¾7eñmV©ž‘Å Ã:\xÜÐÜKخ𪶥•⫟AªégÉd{LUP"¡h>žE¼KÉ„›Tê½g—3£ó'{7ÕOI}@þƒ‘"ö /¸©MÄçåøWä<­ìÜ«‚ñ»'vw(ý­(ôèîdà¨Ûõ™ÔªrC*œ÷ÕJLjDçòš{ñÑ“[o ¹ý•B½B„ˆ?ZדéïžäÚ ”…nÈéÈì|µšQü6ß2¾ì%µy(~ÏÛrÊ›ýŒ›(êlöÅa@6Ïî%• °. fÊŠÒ.T‚üà6ÍrTg£^HS«L¿„öÒ½ Ȳ©£ Ù%Ó $(¦µ^Œâ.• Ôq¢#÷(Ë/Þ´”Ü]˜¨æÚ‚ÙÖ_Ò-UK ŒLæÃãWÓ{›%uÿ8ÍágüÓÑÓÕÏØŸ}ÓŸ mÉ;e'§¹nŸ¯I»N~áÌ@aè—¦þ ëàç­wÖõôð´\£þ»u©öükùgzÖ²[;yeCù³Bä— é]åŸÈcÒ~c UQ`èç¤}ÏXþ¾Cf»ÐæÐ>~£åépÕp€ÆoP$‰ ÷þ¡Î2ÏjŒf¯Lk4"÷omÈ_îй¹iÉ,ÍN%ÙbÀ‰"¯¬™xæÛèkõ§ò¿vVÚ¨Óê5VF‚ DÅúƒ·j´Æ<°M;ñ]ÞVwxö¨?~‡Ú|qÜI’•þÔÿM‡†áƒ¶<Ý4šì—ÌI™™nRƒ[Ͻp…בx($ÜÁBiH)HÁDA‘€ /Ä^ªfÀ.k𷏆¦jkr·þ´ +â¤=›ØÐz?ïŽâsbÐÚïÎ|¥~ÀއÖÉÏGJÿ I¿zh +`"VÝSë3bZáZ „£¿ :]j·KôU¤ZUÏfD†É —ô¬V2hîö,éøÉ+0źKý¹ÿµƒ×*²gÉã³=ξy'…‘X£«]ÉköœI¥L¿jl¢bÉãÏ)˜U­D8±a1b¹:¸&|ïÊõ|¿mf/I¢'Nª%åËÝɼ'×ÐI«Îý÷KâÁ´¼Æ€+Óµ8‰ßâëÊ;µ¥Î¾ÃúôgåÒ3ƒ¶_zþˆ£¬ÔvÖçÂ8 ýqô–%œË¡óiùð¶(rnŒÝz[+XÞó^ÞÑ€þq^ŽKIg”:Ú¦2¿šè ¦ÞUçt›ÿ¾ÄPõué;µ²Ü›w×Eb²(fú褄mᜉ¦Õiyúaî Ëîð/ª÷¼j­nûúU—+-KËX{°WÐ(ÿDa§«ƒ0ó<{70 ?eŸ5VÞñÛ‡ã-‚£/q¢Ûƒ>Ö<ÚðÚ‹Ì®Ný긕>ó"牰ˆq8äGy&Où.7SéÉꌷߌ¦¬ûyñ²M•*h¸Á}cv_hΪ8Weåþá黵 xbÉuº{@ (ëË…=JtÒn¦F•þ¢@© ‰Ær„± Ç¹æÀùEc$ÐEþ|‡Ò¡ý£š‘Xy‹cªz±½ÅŠóÊÂHM[Ûs%ůúGU³çê&x",HªÒ»UŠâq(ŠR¹ Š÷FÛIŽ•lÌÅ—iL½·hDǧL&@_°#èòA™L4¨LflWÅQº¥<”xrnœEî¡¥y©,h^#øºŽô”¼_»`5 虣žeÊdÃYÔ0©¿càI)¨IsÊ×øâÜ+ ŒÅ*jSKv~?Lm‘ÙŽ<4rê˜hÃ÷ +´9P‡1ýÔ1# Jð6ÌÓ”âk°9|9Ýšslƽ¶ð2}ãbÑ5hLºýÍÉ‘æhRü0Ý”ð‰­>½FŠ0ÄdÂ[LPCî”P1ÉýN4ÿ¬ºá'š+4–B†|F^Ì«ûÍæù>ae ®Ý"–ÇÌsiW@‡.û¡¦R©µŸÕã$ÅuÙ‹}µ™¾kš1\e™Âóqþ7ÞŸà«1¶“±Éo& +Gt:È6ͪz>•pÇiŸ´žólÇ*mПẺ3ð¸o¤H’Z¿“è0Œ'A 4ƒ•êûoð%Qèn$„aëK[îWc»ª óc(Š\Éo> +hjUL)ôŠè:­!)Sÿ©VÔ/БŒpÉU*ý#Õ«î1J‚‘“hë7Ð "¬Ü.›WL‘>d¸Ö?F·j~€³Få«[hŠ&·„&zvnQ?¦± VKvõzžKò„T½…3¡ZQO?®ûã̬Ýk7~Ããe=‘ü² +Ó²3G½4—*m×½wn7€ãiÊ8-ã%j]‹áÒ_˜¯JJ®”÷ ÐC:æM £V‚~R“äõ³Ë”¨msóÊjÌ#üYwÌOnÊ`3½UP°UÔuSߨðæÎ-‡ÿóB»xƒÍË”1ùQ<^;0“89Ã]LP;j–ÉÝÑHòXf, Òqò½D™Œ÷à©/ãÉøƒŸŽdÖ#~øc‹zŠ7KI õã÷_1¯ó‘Ö„N¶•ݶ…Ôè¥ÛG8;îÒ:€ní5|\ç€Øå¯¹0i Äë¹sôìàó¯[n¢9ïù«âB×ló•÷“Œì…Ág9U¡ )‹[—.c7»†­àé^ +ÊBwAŽí•–þAÆïß +[lÞ[Ye2R2éÞ”•5>I¶R°—è{ߨNJë³ý²ÄP½&¼z»iÖ&šø:X³XÁ`š +hе‹sxG™[?V¶~bà‘ hƒ"þZñ6!ÓW¹P®÷Õ•Ò­‰þƒý¤;q•® FF0ðy4~ç%é%ΤåžbxÈï9ÐÉw“áý\7áúÎ ‘`ˆâÖòí~³¡ÈwSÕ…ØûY‡ó*Œ*Ä0åŠlìË›½ ú Æ¹øžKÇQl‡—öûD‘zÖ¸æ xµrí¶ÛÄÖcG†BÒå§ ¶ÝäÇ"kvG³ã2)ç¸P]ÑK&Ï—FØkúÛÕe ˜iJâ"®øu/Œtv«+É ûΫ˜è3Ä N0OÖ<94IafÓ‘Å´¯LZÝÜbDúÇ62ª¯…þ+ÅwÜûMÄDk*âi™¢sV§6Y›šR†â˜”`éé‰3³'üÚèëSjúè$› +T²²'w‡Bv¬õUQç5<âóÌÒD|Ù:ÁáLRÓ¤ÒÅ@E5~fKéCH°¹òOw§·gùøfMd`{×Ë^gÕ^];÷˨²²Aí-½ì/æ#,ÊD4·h¬µêh\bƒ’þ‡Ž-ðúÝá¶¼3>1\Ï̦ ¸ÿu¼ô«A‚Ë7MØËoÙûãï·!P÷w-šu㯌sÔš)r=„Æ¥ z?sŸôÇAžé#²4 H5Ùi¯ÃÞ£ýŸÖÓ€¹ zw¸-ðû>‰áNóC4¯Z#9®²°);xcÌv[Ÿ8 ‹7`ªÏ +Cù.͈Nˆ)%Ž¥­‹ýLƒ@{m‚iEÜ Ú<®+…·ªk—Õ"ÉKkþqè'´ÊRNP,öïÒ’,ÿWÖ-)ÒF¤ú‚ñއZòS:çQtB}‚ÖŠý"¢ÇàQ_l¸2ÇüCÅ^΋ÿs%–iãÊÃÈ$¬Q>ó ek'9ÁóXÞPÛL"óß^ö€PµÌËüf_©Þ—’éj±9+ùÁ‹@OTЋŸtrƒdW+hÓ>tœÚO¬ 52qWЙ•é¶ƲÞî ¼y$õUØš|ßêl«~Õ´¿œÀÀñ»¬*Pï®éÀÔÛ{¦ÍòòIõüØ`¥a°3±QG§ Þ·øáü$ᬻvôm.xDåÑ01 دc‹a?ù )Š3ÌZŽ5ˆ`—(´Ú¸ÊÅJˆLö&`(xQ¿Ì™S—ë‡ð%o®6t‰ñšÉ]Pqyy­˜ƒ^É LÝr¤ºËû7)?R„º–äÀÆÔ1ÃÍËÎÏGÀŽ= ¡|”Úz1š‡lxd(«àÕ ºÖãƒÏžÈzdMþÛÿ½ +Å8"‹ÜªÞÎöÞá+3çᵂ‘r$æÇa¨Ú¿9Í#sØ•ú^X¦hZ8K„Ï€s"†ÉåÚ­»¤²ýtºâÊ8•²zÈß¿™6Y™©)©å%yw2úSTq< sª ÀÄv•P\äлóiìÊÓJ-é +ƒö— •V½ydᆮù7ô§ëË­{uÅ/éÀÖËPs¾bTq=悜‘@ãCPæTÏvŸN›iå}^PйŠör­á‰Å¹p˜ƒÞò|2oÃEO¼âE|É +b9rüÜICjžlØÐ:¼±‘í«Á>»ˆÉt'/Ps,\1Ü|»K£§ ÞŸ<@·šÒ¨ñ†ŽÓ¸'ßò’Ðà?ñFuϼ†Å,’Ä7ÇÄìa:Àn»P4ð2hÁßÈQ ô}ÚÍzmyw_%ècýW—áA2KB?“Ý ¼ÄÂâñ D|{$…©°1•Ýëv깨¦&Vò{ª½34`Ñ_ •ù‚aÈ—v±0?˜hP:rN™ŸÆ:^w¾Sx8c¾ÁŽòp`tb›©˜ìs×5:¶B #Õ+7 ¹ 2MÎøò¶<Ê'ã±±4 Õ‘wø@†áj¡’OC·6j„@6"Pµºå“ƒÎb¢ðǃÍN|ªX"‚GÛ|‹÷hK“µÛcP»9{sßÈ-U×÷&W\åç9ôŠLô·aÊ6k½í⩽Á›3àOÎ,CriMpãWC_ådûÞÎŒã_–‚ô‘E/õÆü2 E¼T‰Hš®”m^=¢]F8iÞ'3ûZ¬’5?/¥“aù߉}šù¿§Ðm¹•Á%íBõns;ÄÚøB)£™6 }÷‡0f…îV—Ò¯g¬ìW="ºë^¿¾oàþ6·Û&MÜ#ΗTÈ34hŠó¾´P¿ÂìØ1O™N…{êÖöêŒ ÄÝ~%ÞÙü\¯xÒ~’ü0æü°»Nº¼ôþ"k/¥˜`ñõ-–ÈNópA„ÆörÖ¶µøè`U¥ ûäÚ1©ðhÅH«7ÑŒ`‡®ÎÌž9H“qŽRÎûÏÓÍv!›™áÓ;pn¶ÍbšÄ¯ˆCô}iYÒíæ&¿Xæ¨áË"\Ò»Î$E±Bå·$ŽãE tÚX³œ¸D½_̹|ë ¶A‚’f‚»Oj)G]}Áæ¿X Ö,Èι‰ÿöÿ-¸ÆG.‡Ä”c°šW’À "p§¢Ò˜—}_ú»Fü-4ø>¶^¿7§œ)HT= +ÄúÝàPë\J¿Úm§2‹M°±_Ó­-„P«“Ü¢k³Û|;€J™ +ÿry øB/>‘”¤Õ*å;q¯±Wj¥|[¯~C2èˆg·/xx™4²X"8?ÞÈ;×j*Ñy¾N–¸¼ +JqÆÚ‡ìæg÷u1ùkí×#¸xÅŒÃAkmÅnïÔ±?Ö®ëƒj«²:Íc'ÜÈã,ñPÏñÈæñŸ®yÑY z7DXçËä‚ûí [ñjÁô„™±¹b>'#ì˜@Rë*ðcƒƒŒþ䳺(IÅü­P¯…utHè{IDÇåi ¥‚’‚345)+vFy”®•Ä`›;øZ üÆÚ•†|°wÔ‚` ¦¦ §©™ Q ;[ÇtÜÙ5ÌÃFs$‚ÊVÅ5ÿʼ\'åÊŽÔMõ«µ!e.eƒÖÜsHÆa@æs´Þyr +™Uø2a”"ôpàĶà”ÑÉÓ3´yÍÉ êqµ9KY1Š+(ÏNÞ¹ØßÚ¢ž æÄ‘ѦEzXØÌñ䥜‰l0TüÒeü}ÝÙãÜ uQ>Ýšàç ü $¥£ "`©öÜùØfrOtNZn¾ÈÅ£„»Jü¢k&’ö¶Òqçéj_ü[“ h§´æ‰Ó:f¯ó4ަ«>,6~tä±ÐÎ)ÖwÆ%Úß[7lŒ¤§,$€óÃrÿ*q,Á¥Ò>ï ¼O"ŽÂþþ}®b‹}Ô3u€±¤ð²’á@_j~oع¤^Éçé +K%“ö|`Ã:cåi·^úß1Ž2Ä2»ÕîS"4É;ç&<*ÓXwåÁ ¼yÊ?Ëÿm“+ •MâÉ}å“ÅOã|ÝýüI’5ÈŠkù4ƒo† +’ótcßçC‰3H“ŒOm„0\·Ï0³µ@__2ü4'…'WTVv+ܹb¹¯ãZ jÎãððTÏÑžÔŸEݺ´Ž1X™:Wn(Y𠦺3 BÞoþÒ‹dá¯F1m€Bz?_ º-àÞL+‹ð‘ôš’…ÊÍtJ'±qÁܸ4à$õÒB¦ˆ£ùý€· bÙB ûKÃ%ö¤/„Ójät¯uŸÃ\!%ÿNG5Á^`ÔH²D=Ì‚ö¶(lÓ3€u>ŸNÎôFòÀÁñó0ü’–- xíTkµ‹rãNeÿh˜†Åfv&Õgå0ÿ¦_’ë<Ë´Õ¾DÞê«©´ëH‘&Á|™²¼b¯bI:*Ù›RñÇÇ÷£¦(Ói{Až ²üŠ÷¢ÕÄ©Â(á )þš›+®H§;pS–Á·~qua5g¬ÇÛ0‡œå˜½çFÎuÂEÿƒǨMЋb†A #‡+8ù?_¼‡#\íd{åË7´†N&Q«¢Z¿µi\êŽå~§t|-ۅͱ÷ÔZ¨…/Iš97ÿOãz6ËÅxº—X=jª5‹n¨\_`$mî¬ð›sðÊÖ•W]kÞ51ÂÉpx¨šì^®(-¼¥¥;Yãtñ¬uXòÆ7M‘ö9'zmÀ‘J[§+ΊŽ×à=*­x×d„%Úô˜úô¹F·Þ {e™ŽÝ„ù¬Üfl¤Š!ýÎÂó’ŒÛF)ê­°ä}-6€}ÐÔCñxå éy=N‚”MΪ½„£”ôxƒnx÷õYªKˆ‚d©Û"“ÆbW„o + §(bwòÁ‹£ZýsxôT\Ý íð°dk GÔ|°p‡ÒK}ªº@ÕáZ~›¼¶½¡d>ÚÁIÏ +){}‰W*juøf –=¥¹rªÛðNPˆäðÆ¥am†åJð>éU1&Cæí¼{ù”Ñ}öŠ‘2€¸/qþAèÐ¥ü=Ô$çY"-³‹9™¬>(•-8š“rM"S¢Œ{EÞC¢ ——.nÅzwµ„I.H)Pì¤íºe, h½Rm°Gý˜¨¿JÚà3יᚌt#ጭ(T2·~xxCÉÀLÈ'ýÄѧëþrOŸÔ‹©,^†—#Ò0Xv’ÿ'å?Áæ%ÂóžI­(Ÿ:ŒxÃ(a-sÍ Tá/DÊ÷5ýÃr“”Ü¢a=ß%qÓn½³;(›/ÉdT`8mð.X¹)=àñ)?.ÆÆœ¨¡æ±¸–rвZ÷{¦sÄèdIç!’WìE6 Ë,ä5³˜éŽZÁµGNC룱|4"ö×A“Í{%7ö ÿ1òxóç3lò¶s@÷€jÇjYÞÁºNj!<èð"Àü4‘Ko‚aø‹K…Î4Å w.M„ ušæ`Žv™À-ðÍšD(Rˆ;›õ¦ ÙrÙê:âHþ?»M†¨µm[Þ¹â'èØƒà œáŽö㘑ˆ.òM~¿FòŸY&åcÙ1½ú×´èQµ­´Å[’:éo˜’@à%î’ÅHq„$¦3?Æ]NláÖÇw§PWªuÅ·)Ó%Ï/¢Ë¤Íuûv2Åa¯QÐ7bæ+¦]¯]E¿íD(yÿNÈÛ_™·1ýif¾„²ñF;©íÍ™±ù’B#¢ Gªr-·DòÝÀ0õ‹ŒøO¿·ú +•NñuÅî5Ç;&*T`Ñæ1OnÖñ®7ŠO¦!bu/‹3É-s4opÏõŠÑkb L°õ^¥§vúÕÝ¢Õ[¦5ÃûÖ=ŠjcCøLœáôÅà$ê?:Ã#™7P‚S™æfRß6Kä´A¨êWS&š×ØüR)޶J@¸ RÒIºª±²µ£Ya¸Òg&>õÀt$Í¥ëgrïÙl dÔ­ÐbÚòßÁŠõ¸]VíøxýÜ- Û—óÆ™ýU}~‚Hª¡9éÞ? p‘2 ˆßfN$o>;—Bw<@Ìuˆ¶ÜŽ]_è“a&9”êddãËüõ„€Àú*}ÖMo"ÄmßQ:¥]_æynÂèu¹ƒ¨¹Q±¡Nma!Öñäõ ?nuLÐR#p¿©xÝëM¯ØÔ…‚Î*ܨ3;1˜(@ ¤Œ¯Xað‰dDª]ý®ysNN­%é-C€K§|ñÄyÌ­b_Vº‰)OÂÝv°>uXóÖ`é-ïœÿ?ü+'ð¨B¢œöCzKÑ'P¤{";ñ<ËÜ`„t_CªÓ0vˆ3dz£4Ør®Ä.ãË0ÍKуÚá Â(˜ž½°yÖÈ™ijª¢×àQêè´“æñVÐOû ¨õ‚"½—ÿŽ#S~­êwo ¬¤ÍøÙöñ$ã÷\ï2õ±áÒ¨¾/i)üùŽT˜ÛxP›Þ¶Ð¤ ÷œœ šEû S¶V}–×þûDÌÂPÿBÿÇs+wÃUj)r&V"””»ù†üQCíhýY=“é 6€&Ìp§·­Æá¹‹zñWæ“o°¯Ä8‡±>7qãOÈ-ÔÄ…Ôò ÁZÞœÖ/uö$©ZòÆùüž´¡ãÇÛŒ'h®GïvÛZys<8ÞI°ÜpJrß­’)i/ŸÏÚfV.øSÀD«zeiSc’…M©mx‘!XîÇsübÏ'²cV#¶Q„™+tÏKðKnXî>&âQ"…‘‰Ý d$», ûü m¥ouäßoé¿eCé8¸¶{õÎ8Å =®90l¾Fdöb¹£ +'T=Ù'EŠÈÍÁ°êã¼'-rX½À¯ݬÃ#åòÓûPA%°éжÀ‡_…D÷Ò2¹Ým + m8Ìg¯G_ä,ÞïŸ7b Y}‹¸!sÐÙ €ÔgÉØ%¢„%u„Õšÿ]iâ&RÐájCÞ±ªlH",_ݨëYè†pegYåZN}½˜Š–•µË Ðx3õO9) »¦4°Ú¼F€ÞH_–ÇÆ.A]ìàØ*Ôa‹iN.·d3Ï<7J4ÐUx«$¾ip¬wCëÜçðFh1|·âT«áï€Ú&ß®ÃÀß~q3øk¹%k·Sý’hPoX¢a27ÚTùät•}ÏíyEâÙ.@U[ù2R—3ü8÷ª,2ßÜ®#nqh&ND§º³ãk×I[97¹*Ç”¹vô[†V‡zkµ0«Æ‡Céw\Š‹Û÷p½ èC£Ç0åá)¨g šï`(Ëäüð8;K;/®›É¿ö1¶7<cר‹J¢¼ü‡ Më¢ÌE+tê2ƒ¯(^=O5£IÆ÷¡©Õ>$Œûè`*3Ò¹h4š;Ç«±³¤ô¦©®$ `~îˤr­lù¯dS/œ=qYÈQãÚƒÅTúŠR¼S`€ÊUŸðÕ%.HâduùͶ<5¬ƒ¸.<&o"öŠSó&´SŽé˜8´^›ÄÒ.gA±ý†«¯ä{&r'iüœ+Ó’TÝÆo»?EÉÈiÊ:²IŸt•x1Ç6JÛ’,qÐ9W¡™“€àÐmÿrøa…CuÓR/ÏÔ~ +êï³Û%—8Ó,¬Ibk†ãü•زMõ³u¾Scþ®K˜Y¡kRCG.Èíù‹Ðv½~Kº._‚8öÉÅ»êâM¯‹ð  ¶žŸSbÚãæòŲ?I+˜C¹K Áb±Ó‰’,Šu¤G´*ô®PsÿníÐK¶郕1)—ô²^€Ø©Êy»ÈwØ0 Ûê%'áúRV½ªÅÄZÀÞÀ†%º3ÑF¬QpÕ + ΗS‡ŸtôM¤ÂÞ"³).†ÝÄæVkÇy‚xL}ø‡Éï(xíè±od„RLâ\Qkñ·Ï†lã4w5–¤%¼ÈWê3s=&;ˆ2þùÖ¶]¡šÑ³"?ÏáoS\ ¹0ÎüQÏ&ˆ¡$8Û¸ö!De:ñí˜à¤+ð @aíÝ +\u÷ä tëHâ¦-Цü=ô`î8¤„¼ÒD B5Ïí\ ÉF#xÎA¢×Ñ•+™…÷âØ&Cg„ÔªÙÉß䝿Ââá_3ŸˆäZq:zÁ/±²ÿWë{¬´R¸½¨«Ÿ3@;#ß_°@pÊÐqÃ3Ú(È=bXJÕ½$Kï}—o+Þöyk0Ú½åuøÕ ÿê“)¥–1Ï1x„h󯇬”©W¨N`ëÔ# HíñDyÐW·z,˜z¥j ôA ÙîžoÍ¢E™§#xR)¡©ÀZüÙBØë0žûet ^S:`Xo"šAš;JÞ•æÝ:Ù¼sØî±Új«e)²ç!ºëN™ô¿ Ü\–|Y~¢iÜm»TÿÛtÒñÃÖZ'€¿Zvß@v +j!¸î¨NèôÙÙqucËÄë£Æ4.?N!;LQS~‡òÛ`²ä•WE_·;aµÌ_ì§ ›¯b†ÔÒü1ºY.zd^óµ-|/¡þá¾P¾®ØMç’PE“\þì°¹jAW…žæõb}†al‹WŸÃørr‰›œX~„ï[ÂòH-™ÜvÑÌn“²¬˜å +ƒKÇ‹þ¸ÉÿH\€j´É#*1à—3ˆ»[ZŸ¢è8x7§¨ÑÚâæ8ÁýúA|¹šßuSsŽñ–Ï Ê5[¥¼ÑO+Å·úŸb[JYóÜçÈ[OÁÞ(Í>”r5db¢Uøî¦øP…<ß;‰ìZ¯ q!(HðjcMJÈ‚Mtìi¶Àß4á4‡­üE„«0hþ·KÞÿ ìo …@~KbDKû’¬™ë°Èä1A],¦µ²Ö&Û´ô|Ìr]ŒwZ•c£³Ÿ7Qv¦úØýÐ~Q ' #Ïlãз‚n(Õ'ë~¿]è´|$74»™¬,3zÂ`!œbæTDÛ ;¨©ì¡!qUyfÁ³O pb4¤Š…*£œxOžŒPGà “4¼îq~¦(yÖ‹W™v%2okg"W$k%ç·J—âøÊ‘ã?¢ øÒÍŠù•Üs’«UÉIØ]´#ƒp¨ IPa€1W&fì‚ñ9Q{Ùî§ÓU«ˆÃ€zWÂYD +ùûôh”å$2’¡±3öR#½¦—­•l¶¸Æswè;Ù–º2®‚ ¬Rà;^Êဃ‰ª8ªd4ÖŒ…ªJEXEGÊ‹iqúF“aÝd³ní@„]šûTmrÌ ‹Áê”^¿¯+ÔšÁê\ÏðdÓ5 Zó¿ÚÃ98,$´Ÿ^S•íÀ¶Íü;¯eÍé{EK»p ¡<|§mÖô7kG=œªp\ïê,×L…v»ÜɧâÒ%NÏxPÿèÿ+~2‡¿[<Ÿîë¿«„Ýv…9  ÑKdÞ$N:‘o‚VU›ž±TÖÍ™™?ŠÄó“Ì\Q™µ}|øÇ‹†ÄºwÐNú¸GQ‰¯Lº2QŸÍÅÌd|µà¶i yãgàk®nžçQÿïÙ¹€×4Ïe/™Þ8óÝ•P íOØ×(—èR10Ót¢x^Dõ»YçIbõâÀÀ +¤Äô_-5`;ûêÿF<ž<Š] +‰èùVN«ßÊ‘‘-_41\FÑÎ[K¼L +œŒž15ñaÊ¿Œ~†4,™Ô䱤¦ttohÊëMNo –óiô³Dþ…Ræ6Øõ+˜H¬á°•/ ¬¼k,å0üO»%2ÃFég€ªŒÊî?‚©ûËðE2l:-ªlì#½©¥¶iÄ8Ï,¥yà鵘cÆ‚[ÉÂ|?‘ô +’‰ÑÕVŸ-£“Qía•š(}÷J$@â¹ðU‹šLíŸUŒKÖNáÑjå_°¿£jÊi40ù{óã á 2ø•°oµ›îü.[5 +‹‡ýòÑS’˜È÷½mª§ƒ ¥S,y+·Æ‡Mq>8Bé0’\´0£ É„³¥9:ܲF +( £aâ<ÔžèqõZ]Ú;ì’¢àëF±|SoŒ + 7_Ziï lâ y8·ôë´ï’ÒÄËKì¡îç[ƒWëïB`]ƒ9?>1úävúÌÖ+‹qÓß‹·He‰« +©]¼«—êhôFÓ‰—!ØÖŠ"²”@ˆžF¤¸>d,ˆ€âžA'„w‡ËbѼr ôTZ3‡ƒƒæ<+ÿƒó³":ÕÁìåÂ@*id5kÜR‰˜ ÄXT]î4yTbJì2`-¢µúˆ çô¦I¯ècúž¿¹£3†ëÎÇO±iPYoÞ‰ä«Dæz„˜Ë@N ­iAƒ²íË~Yt`+’bª+U;†¥ÉÇéΩöÀÁo„ä1ÿæ+`¡¹€Š‚«à:ÌžÅÙ¥?D¶WσtÃA¡ÚmΑ½ßv¯sÛŠrÄ´ý€ê¨J³:«R—9 Ä-c6—õFÜïª)¬pnEÓMÀ+”58 +\e˜z"Èg bÜŸe«#µöϤ7[ç}Â’ˆ“÷*R=Oh¶Âr¿ÚŠ +ë Àº’Wr4êä}ÃE-Þœ½—wÃnä(!k”Ýy 70•Âôª¥'%ó7o`iÇ(Æ›C°”&BÕ4ÑITó}Ú$d…Köz´3äã¯{A7*á´ KË5êÃ7Ä¢®N‚ÕnnUý§{Æi¸Ñ"£ ‰mQOA¼Ÿç5݈SÊuZ¡PÝC2§æS -D˜SÚ¿û9€š±"–˜¹ÂÀ +åX+òe€¾Á<Ÿ=Õñí + û»ºÿ¯ÝµãᎷG[EkŸKöm¬zzAwâ²Â¿½$ï'7ꊧ®’ä¡+¬2ª…Ãëk’æÜ&¸6eÛq +ó¾ÿºÑté±…PuÁMtò›ß7t1@¡6Îa"˜î¤–î5Öé3ÒŠþ¾©–$¼á/+Ë’ž‚UNóðûû-7”ߦGö‘Qå¡^øñø*Ò&>Ù#ÚÔÌM&•¡ôÄs—&BpÕŸ´§-‡ËÿŽLá<¶C0„8%¢†ÍÅr:”À¶œJ´äêÑzY4e”¢r.ˆéÏÐæŠïaÆRpдbà{[™ä"óÚ-5ðøFƃ¨!¡nÑcSÃv®´1Īà×8iVDJmR2¬~%Ú3°ú_{&Xð¯þTí9ÛÊDÇ’§î™ueÑ)öUó¶Ð®÷‚ü¶c´Ú[ñR¥ÿ5¢ `4°ý?éq›Ú•ƒµl¦ßWS¿ó–?:Ñçz0®O‚ˆz;³xÿïWVþ!û`4öøîfg÷[“+çF©ÊFŽh§„aȼšÐ-¹’´§ÃŒß0cúì÷ß9ÝÅ$EôJЋ6ô /0§dïFI—…Äà\vð’t¤œ¤¡Šdn— ä=T)ÀH"µkØåxtŠpÓÆk¡NGžåJF3³—/÷ùë'ÚÕ䦢½L¿u 3ìð)²jàóOaöœ*3Ë­#œZ£r® jOo!Jr¸|ºòõQ(Úa¤åÊŸÔ.D ™®ÅVdO«ßNˆwÉ<’}PϹûÙHZ+Túy- óÄJJ6}ÙR*¦ ¬)=Ú¼ºD±N0YÛ—¿Ï£)àÍ´ÎÚ×b \Q‡SˆEàÉ¿§‚>Ÿþ·?öÜòMWó§åÊ +Ñcö– ¬%Ú-¬öZ ÃÓ*Y€¦ÿÐÚýî‹ ¿5Sù aä·ÕÔÕVn…VÌó):b]ÁöbyäMÊy+9Št"Ö,Åë// LãnlIGâôMµäýăÐ}6 +>§`MWN+ÖÎ_ßõ‰²PdèȵaÅ|º”y».ñ6 ŸdIe¯{r§ÛuÆ90É/–6˜¤ -7eéØ)ØoÇ*ªz yÜ÷Ëœa†¦é€ULN.§KˆÃ™ì‰ššñuÓ3íØ©ÌèŸøƒé:µLéÖ*|K#ñÆ+çú¼ç8¯¯â|£ºSuHæÿ)ù?3ˆÙœC[ÔÞ]Iµg1M?–•m*R@·µ!4Ýp.ŽswÁÛþ9õ¹­Än¡×‹V%ÿ”ヲ+™h^‘t÷_Å×ñG´dŠX0q/S£ž››0† •š +÷Äfâ\O7¬=6-¤N:±püÁ) j*¬„ì†cÎ=Ù•;˜vU$¯|à±&¿4ÁV»ë²(n{¶¬Ìiè6ñ )oœBîMR_žœXÙÓ±ZÌÝP7TðÈ€}«d†‡á äÓ¾GÕ÷‚IÏ[1–[¢¾ås·rΡ†OWEä¿ …)4lzœ¹õÎPûÁ +ˆKy‘|þ;´ÚÛ €þl ^7~ëõŒ[e’ ôÛ]%­Ü•…;òÌXª¯}°†ú5m¢Ð‡¦{é Щ'yŸj{3ƒú‰¡‰BËͱBœ J^àí©ÏìÏ ýJáJe9d×:s¼qp }WTs¸Ÿj gª‡Å0Ýbw%ú¤2a Ä7¢Æ‹—Šƒ÷õ÷ý¾€;;IˆÂ7öƒÖÚ±žŽ›okÀh8zƒÂÑá6O²-0­Ä®M!´ST,cœ!P¼¼Ì a ‡ÃÛëöà’ÒcÁÙI„ÑòòUÒž„$Û P,ðAŸ–¿ˆ=Þ-ÏQš´ö—áPZu8öÓGý#ÃxRŸ)óã%_d»vwq ¸n2õúÛý9ÉB,ܯòîamuíÔ«Õ§ \æÅ#FÖ×’,»gýã>YwuQDÆvíçhTwÏÉ/÷âvE׉Q;1'j9FÙTDa9µ(i;ØÈáQ¤V¶ŒAá¦c½ÔNn¢6Û1íZpœ íï¡|å3ïFã?PC–õF¼È:íi†etDÛúç“%idàAYŒëAx^¦ +L•o<¨éÆW¹a“Ô‡ö¥ÍÏÕn’Í×ãá#àA0è³96ƒ^´Rš{ÄDã! SÞ8©'û7¤ZÿûxpSŸ0ÖÒc¹¯ðuíþ¯¼Ù8T2ù?ï?€„ƒàjŽãâö€êô¯DMO´Þcqé½pú'¹>ôù€GÄ5¼B¼ñH¤ƒ:%Ÿ9l«_iЭÉ'?ú‘V¶®±ÆVpxgî½{µœ³ò;> + gÚs£ôm»y6¿$¤‹M5"o/#eT|ƒ$‰œú™ë‡H¹<…ÉúÍ Žã4oÆìì=T–ª w¦©I$ÇKѧ!¯ »Âí®±oÆhÚ­(](Äáíæ¥ J…bùtÈ +ÊI“´±‡âÒòè!}í Œ{ý Î”?Bû™³û?d.ƒ¸ |W‰Ô¬YM×®u.ÀÀúuh»_¹£õ¸L`nÇkò IW†—F‘1¿ Üb¹TŒÁn/gØ[@ùZ`–oʶ0Äü^Ó—Öäîæ­>> ¡ Ç|Vö¸¨B…ØHkù2¨SÏÖ„|¯$a[·‚I’R›‹ŸDæ¹SCenµ’°Ñ«f*CZÿ›:W +e‰"»¡„XT®ª®MYô9püv9Ùå ³ªúXޏ*C Ì §à±„}o|™³•¹Ðé³@澜õàÍÑ(2eÀ=ö°Š(J)#Ó‰…ÓÃËÐÈv¡0We…¾×?r TvØësøa$yˆ.kWÌÙ×\%±Þ‡5þ¸{óÕ¢²yœrX<ÃÇÇÍ¢É-—ïÃ^Q6«½ 4z˜À©ÿ§1ÐgNUÚ6+6‘¤ÓŒÔŠÐ;fÛ`ô`ÖÌÊEòµÀŠÿ4kÓû¨#O›ôQvLÞÎ&7µXêÜ› +¿ xtãþ¡ï,lÓm2#ø :°Õ]Ï[T=¤ÖܱàSËó±¼$UæÿêJDþ ‚§CP±„îþð»dœ ö>?)™öèhc"Ò»×þ½ºÞ‘,<^÷’ú¢çŸä¸–tÍÚ\évb’0Ç±Ôø p²ÿ­4Û«aÏá¯Äßt„Ý@>êJ,'¶É·P(üC'asŽ'â?ËK +z)Û+œDëî$9àmŽªóø?º9 +endstream +endobj +856 0 obj +<< /Filter /FlateDecode /Length1 1366 /Length2 27501 /Length3 0 /Length 28461 >> +stream +xÚŒ·PeͲ5»Ó8hÜÝÝÝÝåàîîîÞ¸»»;Cãîî4î2ýÝ{ß{óþ™ˆ™8ûìÊ\™•Y¹ÖŽ(R"eZA;# ˜­3-#@XVHƒ ÀÀÀLÇÀÀKJªbál ü–T èèdagËõ; ÿÚD ÿâdílR.ÖFf##;€‰ó¿€vŽ\CW €,@ÊÎèK*lgïáhafîüw›ÿzPS99Ùiþ´:ZÚd Í6w46´(Û[=þW + +sgg{.zz777:C':;G3>J€›…³9@ èttšþi ghüwgt°¤s §Û•íLÝ €¿k c ­Óß[ #àïæeI€¼=Ðöß`™hÿ9#ã§ûOô?‰,lÿlhllgcohëaak0µ°äÅdèœÝi†¶&ÿ ­ìþƺZXýü«rC€˜ "ÀðoƒÿiÏÉØÑÂÞÙ‰ÎÉÂúŸéÿIó÷”EmM„íll€¶ÎN°ÿÔ'bá4þ{ìôÿž¬•­›­×¦¶&¦ÿ4aâbO¯jkáà”ùä¯ ölf@g+; 躛Óÿ“^ÅÃø/'ã?æ¿øxÙÛÙLÿ6ô±0þýƒõr2tœ]€>^ÿwÇÿ^Á22L,ŒF@3 [ØÿÉþ× 4ý÷úïð-ÜÚ ¹Ç`øç÷ßoºéebgkíñ?ðÍ—^YUCKQ†úßÿ·OHÈÎàEË  ebeøËW6v;+3Àç§Q0´øO ÿ+ikjàüwµé¿*vý(þ#JÀÿÎ%g÷—µ@Åÿ\‡•Áøïƒñÿ7ÕÿòÿÆð²ü‘üÿ,HÌÅÚú_nŠùÿnC kÿþ’ÖÅù¯díþÊÀöÿ„ªÿ-Z!;k“ÿÓ'éløW‚¶fÖÿ}ˆNbî@ gcósåßvÕ4fma T°s²øç£ ed`ø?|…elõ÷Ãáô—ÿrÿêæo)jklgòÀ˜XÙ†ŽŽ†°GüwÅ +ðbü«D û¿(  §³µsþøÛœÀÔÎöŸy2ü/;ìÿÊmìâèøW\ÿšýßÿký/%î@cØÕ%;cî`ˆà®ç:A\7ÚÃß¼ó¤‡êi”´^«ŽÝ.¯ˆP)”µYÛŽ‚)cÈû¢k„^çíMPaIŠoÞïú J³‡°+3˜ÃÓEç‚Cø0x´*GÞÞjV`í ½R¤y.ˆ +hÏn¿Ä݇*Ö'C—jÙ¤áÞ+æhcT£uJH󲱈!iñ¡©P¯Ý‘çQs§¿¥¨a}.b˜‹½´v˜b_=7«T˜œú°`kaáƒ= NÎ’y ¤J}_ö*+‰hÊ_X,•ðøÓyp{82SoÒïÖ™raC'í3§‚Ç;³\6tÁféC\\iUÀºŠ50eÈ@Ò,ûkðÍrØæô·ãÇÙ’±—n õÕPÏØ2f–Û#íÒÒMÐ:ø+¡¶ìï´æ¥n¦!cT‘>µ2¯ +°åZFÙFå²E¯† †‹9i˜Ýsô‡«¼t†ž,ÓŽ=ÖÙÁÕ³ÕJ¬í˜ „\iÂ:Ü‹÷ÑH˜¤/D5ÏܨP®5üü›¶?+|·M,’Åä²ø™¦(ªa@á{Ñ‘±h„ÙÞG})Ó˜–š€-h¢ÜzrYX®èœÔ‡?Åëak™¿2ƒ’Mê/ï[Š%„®‡Gút:–I½ÒŸ­F†5!ÛTú[œUÍ˨s, jg'YJlç´s ÷ñàþ°¼¸û Ìp±–õ¿¾QÖÜI¸zËû&(m§˜ì¿AÇj‰4qXʦ{DG6GôŒÁ[¢±HDU¬ùo¤GØ{™åì}…J¦pæ¾é½zñášvà <³‘¡mIäªld爪-âŠü–1Npm,ˆÍÙNõTK UÑ‘¼‘–x*E²ù67.2)ÅŒZ2—BuªH„:tò°¡fSð „éAVåÃxGÉz¥ƒÑr°­ê‡¿~Ë Òݸå¶tøø’“>ÞÊ|s5œ-à8pÖÅb58–£žf>«™íÄCNf5Gst’6ÆéɸñÊy%mPÉ£´”#C£žôRn8Ÿ +6EééªX=oƒ î§v /+諜,èRÉúðöezÍêê’ž9±¶Ïô8m€/2εqÌõGˆÏå¢ÏrºË¯Ç¡†t¯o›ïÌ\«üåü°N{R÷|áØ™7ÞIÊ÷YEÞ²u؃L«["d€’3¯¯˜ÙL H.ËêÑVOºÅˆ™ q‚^žéfßiHE¢ßSæÇpÞ38ø5ê®j¶Â Ö À”0®ø-îc–®ç—) =´~ý«“ÿqü†³öø¸hFϨ«k´×9‘ Æûx óÝ /_ßx7[St~œ3»c>$Šj\WܬÅ=;Ÿ$•¬*Äó|¶½ÞòÒß%Œßý·wö­Š÷OÇ5lÚB—2y>ßA†ÅÀ=à 4i‚œ³8•cF¸›z>P¡-à6®Û_zd˜·ŽÌîÖfTÜú0“ Ưd1ˆ 漋/»2n¯"4Zö +2…u×5éùÝþÞÓû"a7“}³9ögÖ8Ù+Ì[pí@ÏÐuw~|óa$=1ß9žó᫽£`Fë4$A'º)ÚN}cÚ"NGŽ´„.: |,¯Ášó´Ô½ÎZB)’” 4-8‘Åcò»²·ÛÁû]_VIË‹î_c:)•IÇú‰’Û "؉î;ÔpWtšØU–ãÖm?ÂÅØO)ŒË`Ú3_ÂÞ<°â.û±P2±AS|ŸO¶Pä 2H§‰Ÿšà}?Ïpr9$G¨&·öÝßU‹Ö”·Ö_¨Ì§jŸ£mO »¾ÝN=¬%Û>ëhHeVÆþõç&„×;[ù¦ÕDö‚,|æT&å0ai#é¦[´Ã&Á|@M.…L±Mc¤‚6þ˜Oz\z½¶0'ò@k]“î"¡$c¢ðÆD¾[IžtPÛ¨îñž¼¦çöH'Ý‚d¯Àbê +_GäÁ l RM¸R6¬Úó)Lo€À/Ï18­Šƒ†;­ÿœ.I”¡Œ˜¬y?*ÂAÈð)"*”;^Èwl—-xíØ åˆzöU—ËMôs˜ôhЂ’—ÞC±-era´´ç_C޽2 +ñõŠ˜#™-ÿä¸)¢Áâgr#΃¦VÎÍ›ºfx !}¶Ñ^Œ<£þÝšá>õ3ñbŽbOšàFM¨ÿ*ü²a=éO룸¹e ˆäBžEh^<¢æ™³ÔdŽàb¿ñŠ…M_üÁ²!Lü µÔ|6¡?uc:\•Ïšãä— V†¨†vÜ ©q Š o¦]þû5ݼ(àšßÇ€cÛ`ñŒ(E”v»—‹ÒÔß¿æ´ØŸmXÝ&³éUHv/«Pìu`Z¥ùÏÒ:Ó˜³æ¬ùþ>åÊx›Æ”3€C'á&ÿÇê¶MÕ L|b)O!#Ï‘„¡ÞëŸ`ü¥¦ö7ãwmw þ€ °“6GÐú2 ¬$\gŤùY•+-Œy“ü\ºµ9ò•5¦…»–×F å‹ñ*'áƒL%Êgo^SÏšåT «åþâG?!eQ½µo.Åi×äj223óx«~þaóŸ²QNËY[ öMÕæã£æo¶+Ñïôl~íw5rp¨ÍžÌ¸ùð›S'É$¸ñþà=Ûƒ¾…Ñ/¡Øxnükò Æô®®[x¿! ® !Ñϸ•»QïPVµ!œžËdµ‹ú¤ìÝwưÉçKF õf8± £ë+SŽ:×$Ý´/Wßš u1éyR+tð8]Š/"®šn¤˜Ýƒ)@•g8HÄ +-»x°Äª;¹Áxjšzê¦4ïÓÍFÈz̾•Ý8pjµ£• ¿ë«àv–Åño¢ÙÔH‚‹›iƒÆÊhDšR*ÍŽ.ÊG†úw½A0X?`6µÙ á2ºYȰ`éä¤Þp…ÂE¿H¤*¸ÑUã¾ãξ1 ÚIÁ¼#ª£ÙÈ¡ûyžNù1ø¬ƒ#<‰± ö*Ç–ƒÛQxþ•AÌ”þoaÞ_lÑâ_– ˆ™Yl:sÄxéȼû%?ý0-…h‹$ +œeqµ~Úi3Û×qrή S0ÖP€÷}ŠZçˈš0;KQúå&$g%r ˜û‹bÊŸÖ©¡Ù#ñà6믡Ýe8.Q '_³‡¢ßñh°¾D/þþÊÙu1Ï9OR©ÐÔ¤\QómÆ{––æAË9>‡t÷1´l¢Û§íË\Š5O, ®¡uÊ£˜ÄãE'øvÁÉX5£ža㵂…?^Û©Žg.'?júÞç¢ŽÌ ŸÚǤ«#fš4ÕŸEá:Ûâô¦níÉ6_@(¹ƒŽÏ¬ ¼n_§åÈqöÒºG ÙX¬kywšâß©K×]’kj i6s›=|¼O&ýž3bÂáö­̯ˆ‡´Žj4ßr•ÝfÉ­;©ðQÕdšþâÄ|/$ŠÒHÉm;nÙ@JÌQ >»ïR#¿WÍ;ÕëÏ +ÆP¥¡ªB„øùŠè97ôj¾J¾ËSšÜF¨Å¤ßWÎ]µÛà’•­>Þò¦AÏà‰}k+N)ÚâZF<œhx‰üŽ0þò¤íœa»÷twüð­"•Ç¿‰$eæžf¤Êì—£)°.¦7j¿ã„’CËáÌPù}COÚš[ª~âåË¿!£ÁÀ±kR+§ü>¤Üöþî¢Ï‚§cœŠ’ÊgH¨¹¥öÑ“À¤àЂ¡þ·4]“²u§|P-Š^P†Uޝ5WšÕE”Ö¢[Fކ®n{Ê>©b5 þñ¢D3g¢ö1ŠñGˆá}EO¡Â¹Âï‘9n¿n(¦g­boê—ŒéGzË‘‚„;"tÙ=[ê0Û¤ ÷«ñMâ…z,“^;±*/f÷–Ö Š3'0Ó%=ÿ|Ô”S_À&÷û·Câ„¿G]bBI§°Ò)»Òx¯²½ð>£ßxƒWIÚu*ÏcÕŸßêà¡ãmÌ—4Ûð`\Y­í+÷—Î"”|t¿&]µÃ ;!BVq@àšÐPlRÞ8ìOo[lî›uË„’éðUJ&°ì×ýÌk0)h¾E‘7³L× +j•“¤ÝÞÉÀÙÍ¢{/FãÇÂÒ/~zyià£xۭϰ9/Ë‹kðuÏ™N8’³0k5S+Á u +,£îÁuL”"øÝ¤ƒ3Î^áwÝ©Ø]!eÊKRoCIpšÿËAt,FVPþ n±m%”òz};‹ Kí÷D·2ï‰â~ @q]«8Ö(rÙRðŽ£:„ùŽ¢ˆ:ž‰Žb4‘ß Td86Êï êÃ(ô•*±îÆ9ìwpk;£Ê.b'ûãÏ¥Š¬¬Õªnâû ŒQ€Jí¦SÚF!$ÑHr…¡?dõܦn›û§‰ÇÁÇÒÖVŒî$1‡‚l‰¥BŽù@W c›¤pÓÓoù•È·×Ò`~a;ùמÕož![GüºÈ¼ÖÓ,£C–\a±¢ºÙ/$¤M}вÜ"©«L¹cÞpñ0S^“—Ñ·¼s"ÅîŒÝù^<“pŸËÒq+ŸÐµ g4®ÏÐóõAP¶‰vœÛVõæá_=0HÈ u+¢¡Ù­JWcùQ +ç %Ãñ«×*8…âEF`£¼ÙOàdµSÊ«¿çÑ>=èkЕ ú›E G†»Ð­=BŠ¾Ò³E…âŽ#–(] ,8e’!fDåÒµ¡xcè&Ú†³ö|q›’^Ø_C¼/?è<ö®¯YbŒ5‡|ò©8RíØÅçè¡I|ã6I½­1p;ÜBj˜½Ù²N_åÌ¢ƒv—4uÃó0‰B¡ÆÙN'̰~ПòBôI¤àã‰ä¯ÈùDü’®èÑ· ”Œºm{Àý&‰‹‰O6³¹2Øñ{-AW`á©×:ýEcY™ QÓÕ\&ãÓ4å—‹˜Ô&®œÐórÕZÞá×ÁQŸZŒÎçѧÆrÐ&õÉ©›;Bçñ‡bf€èOðoˆIÊ9MYïtž¢DÔ5¼ƒe,’S;ÈÃne¿G^b +ƒ4éTè“ÝAà¬ä¤ÃWË ônÂÏ·Éë$Á»7ëåÄb“—è*Àw/Út³©ˆH +®­‰¶“B»÷ªÅ½ÍÕõ½Þ"%L`ÑÎ1~ C±D𠺱Žèåj¢¹Ç~J¸›'GøØ³ 6lL Vƒ€kùBÏJÚ°“ß¡± ´3 î.`ú¯j³N7 'Wø½D”ÄpÓ5â0t:— û˜‡¶ˆÛ‹°'ž"€Ñ©ÏÁ5\ºK®çæ;K}dO70왤;«Ÿ›À +„'7`­›úYœxÓ:ŃX0CCòß]i•1+ÌæÛÄFƒˆ$/Ì0<³rù}¿C꛹éÍ:„ éçZF±yË3ĸ^ímŸ.âPeA`ßž¨ˆûrùîü«'\§Jaf¬Ð?O˜ë¢Xü)ÇÅ1¬°jäa±ç½òy•»5ʬ*Ûjt—b4’ãm)`«Æ® °÷ø,c€’ƒ£LìÌSÄMª:ˆ²0éÈ”˜5¦õ†SPëËo +šµPþ9ýP™:ä«7%ZÛ™~GTÔ‡ ‘Ëó ÖêĈÞ?-ô¸gŽÇ7dîÖ&ƒÕ(õÝb]ÓU;ŒÝ‘Ùq¡ÉWªÖ^9H°Ilã%¬Q%P¶U&yY‚ÓÊyK„­Û@4Lã¾]^3]ÿðÍ•M!i~_ÏTÔ×.Ë2´á0£+a0;ꮈŸ u+´|y6Ü!ý ŠƒåQ, +ÄíS9ñë­“°w '«ïÚywG´îҼȾހ.Ї ñwÛ¥ó™:ý~­»væ=Ý–+R%»BÁzÐN@9½èbMb{ ¥µ„¿–ôÓ¨/§×¬9ñ‡š½QC°+4dBf¶½±¿ó9öqä¢Aɱ„ktÒÄÇÐÞL¸¬›óû¡ü—=ý‡Ò×O§G0˜ŸúÃl"ï]4Ó©UNÂF;wÛ¯ÔápwøIÕŸÜÓÉ‹¨b©kåaIù¶I1Šõ:<Ϧ$Ú‡ªe0 +Pþ£^™»Íìa(Öuõ)…‚Þ—\~jîñÚ7B~¡*/¥_Ï‚bVT(‚bJ´9ñu‘ +;oÎ\‡cMYzêV·q-T33sé6°I>QöÁä%¶=†˃â•‘u¤²™–CPeAÒ©6ß?µy”»ü”d, °B‚ÓËûwÓÕu‡o»«ÉæÛÍû4üéß™4Ž6ì¹Tú³éÄ£’GþN˜<Œ3Æ­ Y×ë­~IQ%2å}DV÷u îGÈ©VüþGjhçæüäyåë'G•ÁÙ CÙ%…•‹!#DöØœ'{TÕ˜+Dº0øEv—ÓÆü™Èî¯í’e –Áïnñ^Ð1/ziÙ8àOßGáï‚âóÇ)’'×j_èñì3€åˆvܦCS@ïés!d>¤…"Ÿ7¢K%Y›Ü.ªBÕ;”6œþý72=b™ß…u~‹­î½É„„–íD2‡ž½;&Ð]Í9²®WÛ+ÜZs¸QèþÕ?VÒ~ÂŽæïó©ð¤fF[œ¹1 +ÿxsFæo4&’õb^A<ÕGÜ –žáŽS}mSäe´äù:uã»è_F+1—Z¦à ÂëÃèkf˜-Ç69OŸÓjˆª +‹ Ï(iÆ‘ÞÝV9¾5Ï•Ì5; +¤¤¡ðoµ[žd0æs0ñÈ1|y Ò„·-—…ž:ºI ÷zÞ“«™iìEæªÙdÄM@Õå$°ÈQóµêã.P|&1ʘùËõò(×9aô@ìÄèKC‘ˆc-܉¿^ôLÇP[vÀÊ‘^¥I‰Ýÿ˜~dŽ9(£oìDò ×f÷‡‡Xçø"ñùn p¡>Üdðÿݵ2Rƒ‹1Ì} ú{U«’V±Íä0øªÉð~lö\ª¾"&m ɤ¢!l~Cr[è‚ÔóˆE €á‚ö3/o½!ösÝ#h=Q½èî³uuÅ´À2Xa5 B:LWG¬•ª€“»Øzd(ØÎßb“A…ìvhÚÓÅ[ä䃮zv*a£'HÚ‘Tõm^ç” 8/ܲ“Zù´ºH*:1*2êÊ1òb9ØЫ‚^T¹ÀvYI›näÝñ¯ÂO£‘7“e_1Á‰äÁ!zC!™Ëâ‡ll{ç)r`ÌΓœIÏNëÊ)\°­‰h¤ E-±[°Ì¤X‡Q•÷C7ôf˜-. +5éˆå±g|ú>YÐ çjãj]Y·c[m„»Ü5'ìEÌZ­K»¤³ÑodºÔ›}«&gP”Ãô‹ú=¶ÛŒ„½@Óy¹£9CVì…úgá7ÓþøÚ­ž½0x¬];$ mÃË1$ƒD‚\SâÉ·o¸JQ GlOSðk=žz·©ûÜKÊR3}iθÙãGuLb-øÎ qq¨•ªFíØüòHä òÅÁÙxë ÿeÅ?8ÞX²”¾÷ŸŽÅ¶Ô{ˆg¤ÔZš|²üîÌ’nÔi*ÇNîR¶4ÑTB韯b?9½¿•8qµã°‘¼>„ZÂ^j,/ßš´Hâܶ¿Yæ=øøË‹†ßïòæÅß"ÚsÑâКà—îi9Ñj:¸&í*_DèVÂJHˆz¦îŸF™9î& åLö]Qò¯RKÅ©³½u.œð!ŒfZc/À›úuµÿÌUýÝÝ‹ÁQTÐ¥€Æ01ÿ]{¥.˜`4× !y†Ø‹úGTô,˱¦¢zœÑx./¶#˜†ë\½!œô[bØ™V‹hÈg/â”7ˆ:wwi­íD=D¤%n W‡“hClã}&bÏ^)w\;ä,ÿx-´¹S[¶]$1Ò¼)MH„ñx§h 3Á‹’w£æ@{µªÌ#Ém_×–-ýSçɼþËxBͨӇ•ˆÐ‡Žbøeód¹ÚÞ^Ÿ'¢‰¹¨³È0!aG)YÇì*Ê©À£@:£ÝÕ7mcÉ·P‘*·¹‘ë Ï“ç¡UËwÄe‹è—³"¥LZ/X¼ÈÌ>ØõäCøˆÉš~ËFæÛ(£vŸ1Lñr11W¡.íS4xê½Ør4ëU¿_%F XÁþüî^4\z‹ûíÞ··§CúÈE®t¶Ü‘¶µ<)“RiWŽZÇ9„ZúïÅ504¨n+4QËŒƒ‘ýLw†9r–Êp‰G®‰ q}}ðÒO$øÐO£ +EeÃÌ#4Ûí—ýË¢ÿœ%Ïàû÷øé0ÕP>×vž‚<$¸ÆÕpZ.&ýøI­¤zÿ†0GÁ©÷¼n ‡ŽbÄPÊËOkÜ(g2ã?|ÚѵT¡mœŠ§YÐ?vVáñµñÎ̶5\øõeñÝ ¿ ßç¥grÎÂ+ǧŸ°B°DÁúÌù¬y·`ÔÌΟm[óò’Tˆ´EÑ P¤n +ÜÆŽ ……lÐ9h ¬…yâQ¶EľnŠàtËä3Ä=#›7bFuD3rŒ‡Ì´ §å9®y¾&ÂX틸•/p›µ!(ÍRRÎòÄÂÝçY*Õs%Î;¼žŸWäÞ–„Ù½¤`d^wr Õ¼¸lK¶[1~?¨'þîØ áõ™¸RóK«?©Ã2lB¨ìyi”·íoóthäf ò0ø Ê­£Ä ç±y6¬)mM:Ε{Í®M‘"Â…LÓ»ócîü¡Nª˜žAò´ŸÛ€×nª%9HØD±¹·‡NvÊ¥~HàH‡ gÚÝjA„»ÇnúåÙ¤-{` ½Ïqª€˜˜!3MTÚ÷Œ6PU@÷ÕVY4Ö>‡zùÄH§÷y™Fùs×»éSÀÑb3—©_%÷¯µÉŽ Ä—@åîÈ +Ú®&ôøÔ‰OØE•IÛ­6õoÝsæ\Éxâ‘™|W*%³Á_Ù‰´JGÛnåeù/+èw$ß+]÷2ƒøõ^•¥³T{jÇyé÷ î"À‰Ü1>|œ¨V³°2E2õç¬l±ÓF>ÆÛz#µÖÔnØ7_a«]#£ñÕÕM^Y”´!P­‚M¢Ø¾~›1"pˆÛrdë8Ä'h’ÑË,á—dŠÒ3oCé¿{Ð9Ä׎ÎJήH`1Žt{W‡ÕõžõÁq4Û æ÷å/zž&B–²›\¼|ß +áI6Î97«G𝥑\2jœàséRŸè¢ÅvdD•]¤Ì.ÂзB",%k±(8²#WA,鼇ͽeS(ȤDŒ¹Éí´á¯b÷°-­µgÖpçºt#Í£|2˜æHUŒ£…Ý>ÛË þ‘ÁºÚ†Fà$#Tû³Ó¹·«ñƒWlGÍÄ'û*msE–»LyOž§³¤2yN"ÞãJ*ëX 6¡[™цjJH†ßòîQw껦²Ðîö»rAO5á„-N>æH:C£YUÁżÀ!R¦vžÛƒ¹æíåÝ~¾\óòâR+-ÆÒ‚ÊÏ’¶Yxîš2»èâúH·ñNžªJÈæciÐo£ÕÕÛÒµ)A*mÜúR +ŒÕus«Ê¨²>ÀØŸÂ6 ëÞ¯¦¹-—`þx¯Ì9N„MAÓÃÅ“|Eõfê×”êWæõG‹Î ÓÁdFYÄì¯=æEì»D_æ‚iËjwáž]×3Wß{PB†dkÌŽñÍóæŽ¢× µKn}÷A~š{!?tÜ(<7¶ºkÛQLŽ›R,/âðƒ¸¾Tùö eºÖŠ”>2~¢&¸£PùEƒ÷ͼA‘²YG2iAhü"¨JªÚ§IÇÞaºÄ¿â±”’2¹&'ÿ Ðe^é£N‘ +"<Šã,ç[ÈÑùì7l*·#)ÃJ>4Æ†ç™ ÒnТZvùË{Ä/C¤Ô(óл Ò3‹uD²­;¯”Û\ññº.ã&íÌdI@Û5IFó›„–(­-%7­:¤›²(äíñæå¡€˜T:L²dùQQ ÿ=ÃÆFô~Ã`6N1%€ ÝN¶¥…ÂûÂFcÀÖsÅžöékn:#ú«•ý‚"Ù²Ä5Òg L+‡(Ý@¥?Nx´*^ÕPyx™pŠPòarJª}™—§5k`”’È® ›Áš@3¨Y®Q©Û®'p$Ñç aƒQàQcåË·Ñ,›C'iq-Ý`Ø·m‰ŠšÀ póÐ1çföË›×FóbTúð>T˜:¨²ÙΖ døO†^?AË"fýØ›ßMc—M‰¿]¼Ìa¿Äi&ºÕͤAx5| pÒÅH‘ª Swb¬›õo×ãÙŠÓÕ> Ü{È葨”‡ÕDgE4¬=’lº0„ÔÒè4$v]åAc?=Ëj ýD§–ÉoœOg8h›¾–¡è¥w7”Ô‰s0Îäpïkgy®a|Rá Û.m};‡Ë…Údצ¾P„À"åZ`ÇrTr5Ε1™€ñÔâ3jÐw° ô1Ã#qÛ">ó 4w3Ù,w ìßît, ‡.½ª‡<>ˆÓ—=È!ƒÙ̹„¨ ¾¤úõm{q Üºï»iÞò‘c±Ês‹amû’%żú N2¿„X) hm”Öå¡ç.Þ +›K"±?¨C“³`6±þš ŒëÅ›ùŸµ¼‘º†Ëà_:vЊ ´H9* ÖDäêÍ6ÊðÆ,[9MÝ8Þäýv®áÄ90Ÿ“HqºûFá© úNÊéÌ忺hÑ”¼Æ)øÉ¬æùK“:ýÌ3ˆ_ð+³ïVªIÄ}µKŠeÔ*ê_ÛèW/`ð,1à ™«1®·äS_í$Ç5Œ:;/¡âu󤃸ègFMäz6eÜ¿h±(HóDÕõBd¯Â3ŽœA=÷1‹¦ø4¤¬s¡¸ÂˆUbV0º5åÓ?êáÛžƒ¼•‡Ã]wq/ƒ3Aºc“!è'e>NÕðÀ@i˜*ªì¼nkYvYÒ.¸?Ó}Ï—ÃõÊìv ±Ÿ½òÙ£À5:iríxRëM$Æ}Ú3ÍlѶU@TÝÿ’FóJF„Žu¯Nûe[â +2’]&_‰)Kš8d-Æ…_Vo'Ét Ç”B—^°÷½«šÏ8´— mOMýñŒ@IÓõ Cfo,·X†" %.éu·èè•nCºÀEËy‹I@ÜÊvîš@)v¼ BAÔ¥r9“-o•Ï-p¤V"}Q +uw}­`¥A‡àém|9ïήÓiÆa—K^œm¥©j %ý†L^5øùŒ¸Š4œgi2¢‰Äp¢ÛâüâÓï;—^n¬=žXfí.’«*ŒÎ·«$ê6õ’œ0÷¬ëJÓú#"‚D9¾¥ã-)ByëÄg¨Y20víµ> ì@îÝΡeË£tØš|µž9~ mJ\èýS#H]Ðbè=;+ø, Ïb¹ø -Ê$àÇ’ic绊;Pí#IÓ)€+ÈöÑ¡o”–‹¦&’Àz4ÎNfÍE}‰‹d8Ž˜ nΓÛÙXöéO‚7ïÍf儳öªª"†”µ)¨,×3»««)X²nÌ®ÎJ…¨â¤ gâöj‰3JgIðì–qðÒjmîGü-±(OŠËN˜)·+:èQ(b}7µ)áyKĸn¨j?+½#^5¾Áלkmõ4‡ÔÅÝFNb‘•"á\ÕJ¬– ·qöSXÊHÃÁ…C(O:1[fG‘eyü.kzòÂxØvº+º;_khâ(yÈ`$Ó%;+¨»BÚd+Báoj—Ôå ÓþžÒ» @¾¯"ô¢móÅ÷’*-P§ºÕèõºÎlV©x+:S„¡kˆaFÌ(Q6§8ŸZéä{ɨûI½9¸ÏjDôíRll½Ü4³Fð KšÑw äkŠM1+>êŽ<ŒËµ Jè@ÙÉ*ùÅ|óΞ å»Ð[¡e—¶s%7æt‰_œ½UÿÞÚŽ|ÌH¥©@{ϱQÛpŠ¢ –å¥Z÷KWTÄBÀ%ìÌÝ]¿Õ M]ÅFÞê5ù>Á‘ˆëjg°çâȺàÜÜÁE,³)‘â&ÕËí´Al?ÄWÿöÓR½LçÛŸVÛúÁIã»Tm[*OI@p*ðœOØ·’ðçKÇiê÷%áW"ÏݘLëÝÐ,r +=$¼Œð§ˆØ5ØvʈßúÑÅŸ“Ò)ÂÛÄŸUœñC2Oiq]´Æ]‰e.Lâö°ü\·›6r +寑°àû»WÏ"PãrsÕjàõ­à…5ø^E x%;`vˆñ &xcpR`ß í8ç1Ït¬ÊI†Û‘SˆC’уçXÛJú<¡wéÌ=dJZ‡ílr"Ú*¸OF©à®k»lĺjØ£;á + +d’åŒÂç­v­Ò¥cÀß– ¬`=KlÀ#ãÍ7#«!tvÛ:´HÙC†?ž°g:yAá§&ãŠ+0èTNjÑ`¤÷ˆØOÍÏyy‡ à–V-áÞ’ —º4zü®z{j&¥ùæ<äNG®émC`6a{…:64x¿…Úk&=<†­ñI=‚¹¢å ý™/¸“¢ $¯<*gLÇܾÉ#÷ÉGÑ/ô³2›R£[P^'b[›>:8fÖß•ÔÚ,W9Z’¼àáû Ø•ž} ÞF¶ÿÒ«Ó©…Tþ­ÂQgš^¹5(.•ùúcGé‰ïÄK õå£Íôºa½…óãBþNèʇ±LÃ>¼i…aI\ +ÝG–6„ÀiCøÒ…BØÕͯcº6ù­ðr"›ó͉YiÊ걇܆½_È‘L^ü{;š¶Æ©“Ã’´9Ú·_´‹j2ë4¨‚Ö¡˜ysX’ÃðôrŠð¬¯›1f Óãrg&:úöƒÕ¸Ú¯Ûz¨üÒ¬»qS¸:ÚÖ¬„PâÃÙÔ~k…¾8§¿˜´™ƒÿ ÕÊŽ¶=gdýZÌX,á0CZõ‹H«Ź-nœýn4b„׿äênÓ5\ìèßFõçÐÞ¿rðæ~°vDè€vñh¾· M´å»Ä_ˆ280(ý䎴Õ^ÓÚÍtÙ™|¤ªÐwHC•ÀðŒi¯Á!‹Ø:jftš2Ž›Ã'ÿ«) ­ý8äÃÓl7AžÏE1ã–âè}ƒþùÓÔC'…€]ˆ¨-Kô0„eæ™]rI!ß(Ý)ñÈ!ÝÆ»|½N{Pë^<áùÕ­ü;è÷È7D¤r_FŒúý8’ôŽUJýÀŲ•T)z éxUïÏzGEý¦=£ZógsÓÄY„”­*ŠtÇ áÈ"ÈÕf±¤¼RÔ¤‡§ê}£¦‹ôp~œËK»ÓýU}Í5 âà¢$‚KJ5¹Á´_°dõw¸ +Þ*­[ãɶSª7®5Ìì;žg*e±Æf\õÓe?~£Ñ ¿‘ÆÂÚú%ŠÞoÞSôèéðvˆ·…hÊlG.:èFºÎÁzƒ>$S÷‰‘!'ÌeMïgUÁkª +ff¼S|‘·±m [AïtTƒÚ_ÑD£¬’Þä¡v4A´*´î¸•n2ò¼ÓLÆÁû0|…xß'qWßj©Š“yáÔ•4~ö‹ëEÝy¿I_âaº7œI‹ÕiäVWx·ÞË¢ÿA§‰¡Ç'¯æÌ9+Éí†êßâjR÷J)ÚÍüz oäô½Šß±´" ßæãë¤4ÞŒ¦×핬 Q@–“uˆˆ”…ߨ÷§7‰ò°-¦ö°º¶€’{©ëÐ3j©åù’Ý¡yÎÍ¢Ù)æ¶ÁÏŸÏii§~ÎÜÎg!}ë™,Ò”Ñ@½[­Ù +ÌÑB ~ O¬î „Y³ Örv‹½¯—¤½ÖjAá½=™LŠ^Ÿì¢ÆYޤ ›—›+,’É>>¤×j•§Ó™¨y§*s¼’‹%\³’.ÛÞ߾ˊ‰Ä'¬glt‘~‰[äqÁçÂM$¸{žïUÃ$ÊÝÈœt>½»V~žÞú :S<Ë âz2Y9)u'“¬d[h|õ÷˜xm?ÉÒj’4QY¶ˆ)`ƒ¦ä¹(›«Ó6 :³‡<¶#Dn}òró¨øsTþÛ;ƒ Ú¤v/PÞ°>Ÿ•Ýmhi9aS}Îm5¤’ —¥'H&f:?òÕ¹gèÑ™õ™ØOÚ£ê¼öÀÓ>Ôy xÂZZe³ çã 1“|Þæãi”¼­”YS¿iãÀXTƒ¼å3Ø¿b5lKÁ¤òî1àÃUøYt!V{ºÚ£ú¡ŠÎ¬Þ$y5Ž©Z9.¢§ãüQí’½¼ŒÁ§XªÀF°?(Œ[”dèÞHpÑy´Ý©ÎÀ»™ô(™"û eÅò-¨ ݨP3¶×ˆ,¡°3âã}©Êa,à¾FsÉuw·ëæûüØë m^}c¡\¦ z`Œñt¿³iÏM„.Þ^r4ºªý˜¬º‘Ä΀!ÙÝ%Yzê›|Ûœw_ uµ-…àpå6··lÊ¡,ý] ôÚ.G ¹ßì;Aw‘ׯAãbá©NI9 ¶T#1ë±:0T*mè)ðeEÈUfu1¦‘J³‘á|¨ <óœœ?Á7ÙÕyꊿ›‰ä5ÍãeBxÕmMÿ¸ºÄà»ê/1l¿G¤ú–°ßÇWÝ·ä…phziA–6d1@š\àq¤9¯Ð釀ÒfŽPŸ@\rü!ýCÇWÒyêµöˆ¤ +e”}+×nü;d¨LT|LMÆIÄ!çÓ/ÛÉFj/AÅî‡ê¥‘ ärˆ­ý8ú£ã3pp¯Ü½X=ã[9V?ï§ÕôèHzÚɹ‘ñâÕÉglMFí7(GÆÇÊ¢‚Ž4Kcº{$ác3³Ðãåø‚°4ÌfEƒ¼éè%äš“ÞH³tY'åÑKßq]–aXªvUpZšÿ£ó~mw#ãLãŽèßËûrÿò{ÍJ糆{ÈÉîÕ)@CÜÔ.Ïæšbd“üæ%[{héüC<#lgFáh÷5‘ãêÑoëCΑݶŸôuãÏìî‡jÞR*³¬ñ©Ý5…Qï×Üå6æ ›‚¿X:‡â¼>ªPܷ֯ÃÁÏa'7¡Ó0ü|Z`O <·(Ãå}òußnaûíùcº9£}òÉ›#«=jð®úA)WÛyãÙ.ûgdì¹H +—“~0Ùâ>žzÖ{Ç^<«šÃ«Çûý ö­8ôbѵ)¡h{R¼%X8µU NpŸ~ÅôŠà3–ád¹*ø¦±71 rá¼¦Ä ãã[jsaº£ÚG>»e‘bñÒPå ê5+»ôçïüó´²üÖì/FM݈_Œë>a<;7‘ù¸è$Õéy³+•¾ÙU†ûÁ›O•otxà„=¼ +t²ÿiYd‘uÛ².Sãè¸JÅ‹3öTo¤ 'í‹ïV-mïŠFÃÅ„öæ-jœ«BÎ( ë»v…¡­¢àòÖ™t@7¤Æ*R²,yøŸŸ ššJn{¸)ö`.h¿¸n ò|~­šþnÐ(yöXø€ZH&Üâ!Î?Wµ ,]¢övßñšŒº:[VSÍ'–.¶±Á‡„E7œænQÜG/?R¥Žúß0:JkÙ5è³ô†C–À¿ùJŒ›ƒ­Ä¤ñ¨ÔÂæy+^X{8V/§ï»pñ€©H\a6¯bKÌjå +£UÁŒúõ Å¢ŸjsFÈ2™ä ¢­Õ1“øä‹šKU{¡YKsº(ØÓ¯Ãé&Kõ:738· +éBÀ’Û¾Åt|¦± ,+³MÎd):ÂÅ éî|xì¸F&*_ÏýÉ1Â*—ìâ@=ÛBO®£­ÜÕÉ(~¼„\©Ožù³uÀߨÜï´YêAY£±G6Ö#ƒL#ó9,Uo8¹=Fƒ½ýyÕ«Rh |‡/ñíd±«ì' *´Ñô°a½°Ë‚$Ð!P&õ£—ͧEWÃ|›*AŠNž¦÷:ú$´ìBªí"EL™@üägÍC<tÊDãO/QÎí  $lÜÐxÓÄ(Dî²Ù­I…X:MËhš·EÞê±üäÛáWKrO&¯ôÂ`L;µ¢®S ¨}Æ^]œ‡^Óp/–áJQ?—µÃhѰž(ŒzòT5¿´Ü©)ÁÙmÄ?]5È£bh fº#oÎ!m¦]³ÀB†xÛ:•tä2Ÿü´ß’îÔX”wFFc›O% ]TéFdæ·"ª¸Þ_·‘p +-™„ `º˜5¹¢Ý>J™Þiâ±ÞXémªÕE”WÈnøàÒŸg ¯tnÌ‚¡Ò‰t¥`N" ,™•â9Û›ÒéýTNôl ¨zò{ƒw>%¶ºÚ!\úw"O´LÕ¿3DVÔ‡ëb½&£_ŸöZ]J’hUv­8<»&©0)ç‰Vƒ „ñèAÔ°ßËÂkY9kɆ™:|Vv ¯O6Бçm;“ú2CšU mÕôg7×L]ç?ʲ©-§Öáœ_žØã +š…z %ó®ãññÂ÷V…„7]¦[2èfŽ$¯y¨Š~H=MÚ&èEö¤Ì‚|ò¸f_ ¼Æ1€N&¢Ueµ! Çf½,vu¹J¤Aî7¼½Ú“Z]ÉÃÑfÄh­^–”ldZ:ï%ŸÇ5Œ%A ܦ_~Õüå:ÃØÈuA¥B^Â+AýI»v öP\„Þ”»ø›CµlÔf†€§Ûüó˜¨J´/œÎd¦¾2e +kª¿ +Y .YüFв"Þ‡ÆEƒ'1Xû;ÐPä!,ó÷“=¢È˜ÊýIc!ÁOç9w¤r³'D +lyð!¥ãõ~?ˆÌ©R´/ܲÚEµ÷%©ÜÔô‚[»*0ž”¶må9ßH„þÓàcÈ­·Ð¸…ÓS9ÿ"Â'˜ ìú·îÐ2ugë² ýôîsÈŒû§È¡¨)}”7TÇôã1|/É–-+¢‰BÈwª`*´´)m_í_оŠehjM:ù®j£ôadwÓáù}½–%8²ä}釋ék&Ѧ³—³Bù6.R¾×™[ëŠßKGèàO¯øìg0ô’†–š<øËø!¬ê õJ•~Fêöm¬Û8ÿ_.àÑñRÇ㛄 q×Uîå`»¼:>ÃÑ‹?:q5ñ7óôÖÜÇt+W¥“þ}¦úê–F¬ß­\ïr—6³—‰Ø¥E¼ñFá$B³d•ú^,Ï' µË^¿r<ÓN]fYWRK«x•5ç@ÆtŽ¡F"§gL8óã™ÌûÃÞ­%Pîò>å-Zd§TŠø¬Qe„çlPæw¸õTëŒì½xøùÝkX92 2*vêø÷Ñ +„r \¥G&é즯 `³T*ðØ%6’ëÚ˜l"£¥¦?ÄÚ¶˜¤>¦ëÌôÈU-þ[h&– .¢œ“MU= ð®£n­Ò28D[ܲYJâ„br¾‡<=1ß á5ö.0$ÇOÂv4âõ½­) +–bÏcŽöåézŽêœ¥ˆH$×¾NsssÁ”È÷ɨ_ë4ËAÇuyРê +l£‰\¥ªÆXv†ï•5°G”$,Ö¹1±/Ñ£üVŒ"©…pÜ,æáßÉ/åhÜ^ f{ŽÐÉ' VFl›+p +]T¯×¾AAN°ºëÆg–wETNÔõ{ÆA?wæ5 TŽiž+ý¸Ðg™Ç´ï µúÎ7Nð\™÷¿eqðÑÿŽ?R@ȹç}êzY0³uý\ZG7§NÛ8 ,­§Æ™ÌfAêFê™þ€?3Ði¶0¨-’ÝI OŠæ¨é6CÁu®þ¯ê@&8²ƒ#êÒ¼_M„hqçþTmÆE-U±2ó.ÚÓ òâ2qnQA+{c0Íe'xYç~©ê=ÅÆJ¦mfZÎ1;Ÿ%šË3éwÂpoY[sÔL=aedzcúB  ¨Ô,ÍþQA£R„Hº¹âBª` ØË7Ô¸‡žÂŽŸ PóîÑônß½æ„-gõ;Mßnwg?¤Ay,–`^ÙaŒYþ ÈÎÎ9€›TŽ#jg8©.B^®z—½7¥û‰Y}ò[¿>ÝíÓÚŒ„]äAxÙ y~_Õ®a¦…3𮥰ìÝŸ9=2>“³Ï]î¤nrs<I)[À|õœ*›‹°‘JmëfcaWláÛfÃîG]D°ÍxÈcÇ]Øô¡À/VòÐ LëÒ"°îrÕ»û»,‰ ËØS•ñAxàfª’ÏÑHØF]— =–ÒSuË‘UÖŽ‚•¼)¶‰îý”ƒçµ“uµ¼m( È)™šé˜1(ž†ŽÍ°ëfÁT¿cf„>4ˆ:UÙµFˆ¸åôŒîË“^® ï{y:\÷d»ážtŽæ×Ü•º*g‹Ž“£7-"s‚9AD‘TžµI±ÆKöå2’¬Nñž{FÎï1ê;zñ77YQü›¬2W0oû ºƒ,M›ì€— º)Áóþý Ó3öä{…Œ¹©LçÂë½V8Ði£ n¨¡Úí'ݸþd2ý„Å„‘BÁš¨º5y·'FæÍ¥Ç•¿øçâÜ1÷M”‰´Ü¤ú4ýéñ¤¨=U¹Mª•MÈ‚êíµ¶s¨U²FÄæt–xºØ•ÙG +ù÷c\¨4Ç¿`#Áš¬àAV§=nÒ¶mPÂ+¥‘ªÊi›äÖÎÕ @*Ð&ܬ! óø¸è;VÂ>Àâ+çºþl +‘f±-;‚"X}Em´#iv=%£t¢bDÜ8J´—áÞÙP®½lë9Õ¹0$XR1ÓÈ~²Þ]2;ÎeBrÊVçãSe‹‰œó íÅ93#FPfo~ëûÿNîöéîl*B`ÎSçÑ}§ØgëWœÌ…}ž–?󨩻áܺ;ÆÿjF\¡IO„ɱ¯£cM Á“ÁR¼šgGë÷ûŠç—ëcªâoÆ¿å*R~Ûûì1Ÿ+ıͬ²©è‚oÖ‹Èl·Ër•h [¢Š SO];iªd޳ÇãÅ·~­!=¼¤ML­ÅYeþ½}Ú:dwës–y×TSdc¿‹(Ì‚RéÛßM‡LŽWŒñÊBè[­Z̬÷9¹tžä°»=Ÿ¥œ¤ŽÁï"qôõî`¿P§ÅDVrÅD M K:Ö22(HZùrUa—U\ë¤.B÷½½P.ÿL¹ªä,êz í‰SÈ[Ô¢ àN°Yé–þðîyžIu}¦üî@²f%¬_¬3RܾbáÈõ2ù"gÞr&,#?}%÷Ö'‹"çK¨´«NùF_oPtw@ºûÝU®f‡ò'èÀAÊõ®jwÅÿÌœ¢ˆ–r–‡Û•W×hþÍ¡¶®3 ¸Y·Á´~]›uJÒå$ÉQúõ¿N§¿m_Ï59é/c€Â’ar{BPôÕÝ´Šì&Šyéõ=Æ ¬ÞÎïF‚„ƒÍPóèÁÛöP|ªõØ•B¿o“묙€Ûéx?38!]ê÷ûE½Púq1Kºi@½ü­ÒÛ±÷4Ž-›,µGÉcmÅò,ï„Ëu²ÅíÇÛ7Š4ä"NÖÍ?,ú£F{—·3Á +™ù #I à»Aˆ+X•g+M7óÛeð¸q³V¾ƒ>ŽžÏ¾z¯ÏYžxæ°ø[1ÿ¼¾Þ‘¹ªˆÐÚæûR6£Ë£¹1 ÏmZ‹ÇJÒ‘"º–t#Kô ÔŘ'^vB´\€ZÓƒÕNR*žÅ ç1jñ7ü¸Ñ?ýÞÌjµÖV O:ıüq—é—0õØG=¬Ëø~fçnp¶în¹\ºs1‡ÎŒží Ù.hö³š0xö ±XG´J¡åh¯±Ð@&Ì„›©—µÝfúO„F×$O%¾Ž£Q'¦»’ð”[²4M˜]–ËVÚÍV! +–üÓQ.¹CaëÄpQ½ŽZD=~m­Óaq‰ïP£éU¦a¿ðI§ú»¡ÉSE¸µ;=¡N9gÂAÄ"øŽ—‘ñÙ¶fF¡fâå3ñÀPÇUR©Í½õ¬OݹÊ`Ã~òB+—W·«LVƒ}XL7ÀæVlƒ7.¿`ÅÏvÓl„}fVÞ‘ì{Ï ¾¿Õ›_ͯ/¨Wì0Â͹Úü Ä&áX_Ä­<õH4¼‘Ò‘ÈÐxç[>ðääÁŽmÿ¤.¥‚B5À†7ÝËÂvÏ̽@µh®»ì÷³Wâ©âSÀç¢éÓ¯ô'rß +L٪’L†a.>kµ¹ÌèJ*SL%ÔÒ®EÐXÉÕéF5×!¢=$@2WÚ£óé²\fšo®¡ä˜ãm^Ôårí—Êw€ìNOb;0I•^m¶–>w}i­ ꣞”R«·¢R¼¼JM›ÆÄ_üí±²µzhöcV·{ÀWiÆ.Pñô~#_)²±'*ÆÒ- o&0{¬þO‚ž«4gãk˜;ë°œÏÏs¯[êc!Ôü±–ZÛvPò³®1ç lüþô2Ó¨µêÍĉ™QõÛXãùj+5ΈWfÚóAbèÇ7¤ž¾øâJx\… Ä[dófºŽ¤ #cxA% PO•Ás„܉ñSŒªE¼;•n!i¤ö‡m‹\¼¢&ΤE¢Û NŠò,oýjìš·4¨në §£Ž¦80&T× +õªÏ¢`DTrJSéàLÕýÝÿ>IÁ‡¨™ðQ1ßð„.ÌU3gX[:‚g±ç“*Nƒò¡] *6Pлþèº5¯¸†?H9ΈÖçØ7ÉâpfÄ_5FŒ``õ8£Gî˜&&Yõš/ùÛã-ÓÁ)ù&Bq‘vÔ›Ê/–Üéaɯ àä Ó•8ŸL]90Õa›"ö3°?áæüÄ]gäǤäo;£c7bȶ¹µšBOŸÙÄMWP'ThžK ÌUrÞÍÜ loˆ:#ÝdÃ9 ÕŸöÌo育µ4Hb¾v¤ñ’ÌÐfƒèe%FÞ©¬™]Á dbL‰  ŒR`+è¿7B<¶Óª¤sÙmžs!„}N%°ë·ðý=©:0ÒÒk…Âúz¸°Í&¼Ð³ðÐ|g(çî3 –¶Mã +zôúÿäæhy8ÜÊvÖÈ’rI}áø(³ @³IŒã|Rb],ö)¶®C½Qz¹§±g]~ ¿º,=XMlIëÿ<±M‘Ú®‹0.F÷&ŒöÙ›ûXDË_NVús©(úöD‚1ê`~¿ÊæÆ^¾}¹Y ŠQÈöÇ@`GóñY¢v¼ªGI„OÓ äºÔòM×XÍåöca޹ÙÊq^èkX˜Øir¯ËL™u¸Ñ½iÆ äˆ©Ê$ ÄùHKˆ7vâÞ²Ñæ·¾üF@ˆ%­€AéËŠ‘J~÷Þ49ÒR£lÔ%;S MÎ_N…„-èegVëå^v ¢$q‚ÓYäÇù4¹¡5›0’m6Õ¨—TN¹f9$U±°)œƒ¿œóžB!Ú·5Hb–*Í€T4)ñ¶IÈ[#x8JÄ”E;2V Pù鳞0mÆŸóÄ”G a%$K½¾Õѳuôðÿ³9LÍ>Mpwø-Lñª>î¢OøÝ€GÖò§ž¾×aÝb]†W8q‰”ÅÐxV.¶—`½ DòHZsy£ÅŠƒ`W„$ ¨œõ§üX‘­v&‘P|p³‚‰JV̰®ìÈÆpÞíÄ0îð!%J‰±ô(õFN† ÿÆùNðU_4€W|Ýt2läÀãr¹r_Tãóðkǘb.Ú +£í´1Rl—]DÈù¶; |ˆ«‡¥¡'mÌ›*ä“é=¾GÖ0ÄA3÷™Œ\W-u©Ó³ŠÑXSTË6Ký£2ÄÕme㮲WŸXh&jEêП…óXXúæ§%b|Ë?Â+ZâÐí’-Λf/Ýg® ÅŽJAI ÄØ;‹«£6[ÇZ0_9'Ø€ÛVâŽ7¸¡+ÌrH•ÃtDÃ…»Ìƒh÷ò †ºFñüa5sã¼Â…öåÙ¥%Gî9·üPYEœ²ŒòÝ*¬š^ôj·¨ÍìûÄŠ?Ó½Øè­†¸UïtàaËF»‚Ë)Åçõ@é|òkPXòF¾‚-¡=²è¦h±ü &*R#4Y´LÉ0¢aäÅ%\{/lÑÔ;‘e/b„ÞtOæœol«ƒØžnS¥JúhÿÃõÒ¦S Œ—! } ·‹†ûn7)›eÊeÞ ‚šÖ‹1Ä,…y$~ /6q…ƒþPƒ¼¨ÑËÅW évÉäãm\Mäo®=7°ª“A ÅËT2ÜMM;–3•î$Kßã šǪñiXAKßt/ZÀFP‡¿£I³‚ÔÜb6Ïm{Ú¯óOZã__þ- ý]ÙæãP‰OFH5±Šüÿ5¢à@y~=ÚÌ4#6¬“¸üâî±|zI_eOV®Å¿ë²®Áy%ÿäÄývëôÜÆØô½ºmgWÑ7¤  ¡‰Ž ÀŒ6ð‹,ˆfí¢}³[ç¢ÎâûâŽzKM X´+ÃÃ:~â7Hä>*,âŒÝÐ÷N:˜¯~‹á7(t5ØJ~vI©g”ÿfC@Œ^ÐÚîã0>Ó/”ß)– ãÙ ñp(¯w¢nš,iñS®#© óÔÇ/IÉþRRz9E î€ë!HÍ{OûN“D›ùÍí&N–6œS¥?´§â²Í ºÅ¹Žì¢g7æ¾ –€MÕÙ£óW¦ó–!æˆ,ÙÎæþ—c.àæµ+V¥¦ÄœÏÚ`Ç…(} zðY‘qEµFD’BœÎ÷Û|`í™ö½–™NŽ[žŽûæÓ¶ì„ ”jü:š™xíâÆ˜µñp,ìM»Ò7ðìÂð®ªÏwá_ŒÊ˦3wíl"단ÀŒ«*S f¥ßÊ­O‹F¦5Í©®p+™f“ ý‘Ho9éžñÕàsª1PóØà'ã’ýög€+7ëijdRÎ'Ç‚5Ðe)(„Ý&”¤?ËT‘ô]?Yèñl«Æ©×L/œóݪ>}YžÛ­±"ÈØ£V°Œ#­[õô×F›þ%ÖE(þì«™x,6mX|gœQû>Ð¥Åì½Ï’õæ}e\J[É}Dª`·EÕò ÈÊ]„D¦A–^"DÄÖOxj˜‘¬ödñ“C½˜HåEœŽk*8Nu¡9M,ˆ2{šA•ƒë&‚÷ac—ߪl]$#"tö0ákÖExLQ,4<§BBïIXÍ|¶„‚A«‡`»qÓ†QûHÆ÷,úU¥…vâhJßÔ/òͽº×>¢5”‚2ö)b kéÍÞ{³ªØ°¯ É ˆ%9LU•«µ…‡Tt®uƒ7/K]H°vF˜9IbÂÀØ·E6GÏL2„C‘»Ç¢éw´€²ÆÀ÷náÓ»_9×–å)Qº¥VM +t„íÊö¯ï­#é០®Q›Ü,d\Ma`_¡3ÄÜñVbnÕ|åÅ{è+½»*[x¶ö¦éL=Pqæ }ËÂE·I,Êá²BÐ?GŸ”Xî‘HƵçª5ªÄ[pãÕæãò,¬­ùÃ7û?É7ö£•S4Íè˜ìVòMú­•”;ÇjúÃ÷»*Í×>3¬Ò¬›ïr?Ýšl#:[²uéeÇYèP<Þ;WBs’ê~º6Yû[à¬Äÿ×äú7r‡è~½â3´¹~èš>¢6é«Ã×p‚Ë£lî²1ygtm[î±7³"šäÚè…$œQ(ÿ;;øÇw•‚¹ýµ¡fžø‹¥z[K $e#ƒ«¼arþö•,×Õu¢øÈKþ+î>Ðä0ÆN˜Í'I;@)»Fþ̘g}ž4GènÛ–êÍê.ù…tK ¶¼^,ìÖ‹™}Ï<‘Ù†CïÚÜNïq;*Û¯-u°…nìðoÜþç\NPBé—ݶ³×ã–WÒ7íÍ€´#ÞüJ›Œ‹ ðó²Ñ5öƒÎÇõ>"ß‘ö*ÃÕ¥ÓXŠÂÝÆêB.#´‘œ“µb|rkŒ‹†h›r9Ì£ö¨2†Ös'ÍH{—5>꺙G—\Ì!VŒ5‘°÷7<”3]?›œG8Y÷Œ"ä7þT)E·gŠh€jö‚S„µ42{ÃuŠÙ íž)}iŒÊ~o«VZ¢˜Q##€¢[§m(Kö²À/qzõ •ÚË×S]Õ4ÊcÏ6‚ÜÓ‘_êû Îs±ŽºÚÊ_f:E¹dQÞNlK,PÍS„à,®a鳤ˆ=µ Þ›*hQHOp—V¯—ëƒEë¤QŸÔ—71A †.ng茳YµG›õipH?vo‰“½w¶)aÕKÄÎr-ì~¨cóU° O¤¨–Ñ‚ Ñô˜ÝÔœ!ðŽ|o޶®ãÏÍ®f[åVäÒôAéÀï‡ôTˆL…^Wë S`&â¾&½1·YÈÂÖõˆrÕ­'¨3•‹¸ž’™'ÍΧaz¶Š_’Ь Vš?äG€Ÿdµ­—Þ×òÑfþfÖ%è**à„þ ¡¤AšµX½™iWw–xtI?DÑ%mcßëC–;¨€‚×·âN¤°MF$laÆå'R˜—µ&vŽ`BïäZœÏXŠÍc'yUÄC~ų8›ñmÞ÷2î7 ²ZQlAW,¸Ü°æÛ$fÆœi*Iü‘ç»à;*ë ê0 )=üòH{ §D3G¯¼ëa´1à€I³©¬DB‰ëÈ‚*¯çÀÈ +‚êÇ0­G¶J,r={RP :êúˆvI#¬DÈ-TŸFuL\ã ŠKÝ·3Ê^íµ››¾aDËšwCÖWtQxûSy‡êãðRñ`>›³;¶>3ïƒBd˜›˜ô¼ð§ÕÐ? 48þµÈGõô#qŠ@ç“l^7iïÅAaBL¾y–E]ìUK£5$еƹ±}>ãÙA@º/¼ÊR¸ÞëÏôûD…rÛéÄøÆÙbÑTS¬˜yaZË LÌ¥8ààÿ&o5çLñÅ®ÞØÕòVËP»ãWÐ’ô]Ï„/Oå”ò)¼¬•.R®lˆ0ö2sˆ¦ä%#}“:[üÍèaµµáÏ·3Ð¥t’;¦–ÏZd*aÓ”tÏÉfpú½QÎY(=¡…šj¼¶Z=Žeúø<”j‡û—+ú|“~q“ã¶a²~‹qõö7ßq\õàö§k­Vh×`ËG¨yNo|â#Ä:’mŠAû B]65²3ÐAæ„Íy,ˆ{ÎdžÖu3z[͉T¼¾=.Ÿ,<Àcµv Ç +ªŒÖH>vúƒÈkÇ<¯·êãçõº“ПÙÿlZ²5ázÎzhHS +†^rM?½h+û®"¸Ì)"Ú3'g“ÛA£Ê;+½ó3 +-%$x¯›Ù¼+¸˜0òb‰;Û7Z{®8…ÆxSJOO[;¤\67çÕÅ´çÜ„€ÑŽ€!ÈÖð¥¦Õà™Eö¯Ðjˆõ4§ðnßk +;¬k#ZIüá¡ÁíTõL–ÆçkȤ´©\^¸ÉÓmÕ̺~’Cï3>á˜*Ô{†ûäd+¸é l Gi@AKÁº”¹­YW¦-[?U2 ªDï=ˆ=ö ¤}¢UŸ«ì¾eÒ†ðˆÈ†–2)l.¡ï'\’NLÊÚîªÑ·b1ŠùE§? +Òr©˜¸ Ö³Cd»›AÜ­°¥HkqÍÿm1NÈunïù½]¤CAâS9#:2ˆÈêq~8è7£ˆ›~;ìÞjo-êw¤“;ËdvÛõ„FQþuË:ãDÙŒHÚ;ú8|«lòCàò™¦?kÁ¤i-™…žÅtðTtùnq™nó½7¼÷¦B«‰û>Ð ù¢ÍR¬Ö%­¸•J2%ãÙ‘«V>jˆ²œ?¬}(²Õo$ +4§Yé3g¸ ÙÆpà”sFÞÏ^D&ßVµ8åK•æUžÂFq–Œ×b8sžñ#Ü¡f9»F/éwr1HUÕ;ƒ!Zǹ¯lr o3ôXø¸™cýÂI²e[!Aø©e&Âñ¸à>,e`R¡ jçR|{‹{Ù]¶ Ðñp 0%þ’uh˜2Ña³¯ÄFòUÜ·å‡ +œòaY¢ +PO1þ.4¼ý?* ˆªœ•—Ô—¥)üf) +aO]ÚU'´gTƒ 6ÿ>Yüþ,z£†M—·¤±Ó%œ/ Šî•÷Þ=‡hpKf¥³-ÕÆŽÖJ"[­–õ™ÞέßíˆÆàÙýÚÿ3$Æ·{M˜ÈŽ&×ÞÈ™h4É!ˆ¦C‰@rè_¦ñÍ–@‹Ðß@IY‹Ù &)q½LFF_)î{ðU)îèM Ã\T‚À}Bkõà0Çô^Ã)m‘ ª!CZûŠ1û±ôpÝ ëjE?à|ˆc­¨ô +exò¿?„•Z‹÷ãÝ5&.•§üÉP©’áQ‹S”Àf7­¸"ÓUôðYpcïnÎBüù½ Ð­*I^Ë…vkÓ_­)xx›m6b¡BƒúÙ&»£z€uÇh_•[éYF5üÅ>¼ò' Úäw¯¦¯2‹1®õ‚ÉíX^±\ä«”œ±!h²ìLN±øŒ/³Ê9 ½% +–s”) i)óõ(5´nGSÕð£k#HPø–_91ØK]sjÏ–ö´9уŸ2LäP¦ßĶ F-&ü)‚xX— ›æZ[ØZJçº(ŠQÑ&ÑÒ[pxz¾ž7¦"Gt°ƨú¨‰G3 êéJiž[•-3;NÄ+ktaÖSÙצ“ +IdÇwD°Ä­#݉ú‰ñÃà3ƒ?QýVƒ-.>Ÿ&<ÉŽî/0*Ò6žºë¼¼ï˜nË]n¡ÿÞÜ/¾%±¦JbÀÙ¾,6†~묋tÎ…E¼Þùµ.ÖÍQçS?9 ‚|.úçÔ2’æÍðI?Š_UÁ£«gÜ„ŽE/íþ”aÓøõTB?q +$0k,Øï§c +¡5,;¦g•礟éóKÖ¿<›:q0GÖ‚úË-±©Ã¤QÄŽ`;‡ÖϦŒ• ´à˜þÇñ.Þ#Ó{¦?Jrgß^-{|v8‘-Xª~¨Tåýùâ $[´ÁEóöÅÑ,¹›ˆKtuTèìJšiõàð! ‹lûË啸–bÕ¬Ò ¤NæŽ%†*æé¦%'è Ç«hà-žæ½ÿãÅ« .쥆wÝ€ õà›ã H„X ÅB±Ð-£úñXÁ䬗ֹ߻ëÿn?®1ìÆ€­/Æ^dÿÄäðÅÝ[:?4‚Ch©9Åñÿ*Å̽ã°ÄÉk¼Ôf,•Ô°À/ƒ@UîqüjŸS%™é&\©*ŽuýšÀwÜVŸŸoñ1£ÅTïͨB%Ð4ZùîÃÝÝ~’˜&%6±Æ#‘lʽÌÌFD»$¹¹æ¬S9>‘h´µåmyT• +*“×Úùh ‰ j(tÊ›H"ØÛªíeLÿ)¢øÒŸ#ƒRJF¾©YRPöãË`^`^ P»ÿ Y=ûdNÏþ“«Ffçž{û +‰µ¶PšN2Ë·MÓ:¡Ekãb|-/Â_p#ÌÛwRYÖkÎM&ÒkÛ4(Š­¯_Ÿ±ÙÌ‘pÙ$ƒÙ'ÇJ‘Ó¥ËÌV¤@â\mÃo{Ó\`[ȨËå&B˜¬y­eý®Ó$ v²|’Vd½ƒLÑŸ‰‰t ¿Æ_;r¤’óßD¡?µ~•8ôd˜r~þYEãõŸÝç“-M£ž(èËÕ´ãJ8Š|¢º$ÚJߨ{§“5U7#øBYµÇ£ ˆÞô™7aØšWÜK™Ÿo"¯f4öºk$ýÍæÓ.²ë‰Gûß-L…£¼kÁѼ˜bbÖîºÀO{èÀõ:±qt0ï¶WŽÇÔAd\çmŠJù2D^˜ ·;zRžœTMMÀET:Ï»$°H±~ÇdÏ)_ Á˜I\L­êªè‹4í´£`ÖE`R•Ø;ÿ¶*b_è‡Ü ùúrÛY¢ÍiðÜ4£R€2ª™aÑ–c<ý7ÉY]ˆ¢G ~µæ¤Èå +jó °F<Ý©_ülU2ÀigTޏRR‹¯ÆÏ<³øj¢[™Ýs N;‘ÿ^±î™†¤#ºŒ¡-è[uý‰RÕþ›‚EJ¡DíPmްΰZúΚjÖ—û*Í ÒSãN¶ã_ØD=‡lc®Ëuw0¡Sp OhÇæ¼" b=û\É••!œ¾(-ÅáØg’q0ÔXr¤°gž,{Â[×ûÍ)æl|’=aã(Å<-éA‚‘X¸¸¡v1®ƒ>åv|mT< ƒ\$ÆÌ”¡û3Z™&Ðäá%àZ+“1òÀ3gÂÁ C« ‹ñˆa›¥Fz–ˆ,(°ÏOç—$÷6à2—Ë&Ö<›”ÄŠ³ƒm Œ{Îã×È$άRÕ ‰ ¨ªtùßnΰí1E#èzUª¾Rø}:\FFEïãÏà’8Ý£ÐqO˘¼Ò€^”¥0&û¨Å¶óf• £LÙ r{ £jÍ•¡2Gu»P×ÞäØšÓÝîf…a,ÓÄÐ"¼fÈà™ ’œXµÊµ\£6æ‘Ó…†]·p¢ªTtìjŸ+›Â·¶Ý ¼ƒ4¼é?ë §ÏØP]…ûQÝõ¹T *qökÄBÛ•k#_o$p—/ŸKq­B ¥¨¥ZMŒ`Ùõ +”wrþrªÄ·ä”ÈÓùÆ +ï’úŒ9ú²“-\cüM‰kÕÜ´Úqo®jKÙhÑ =ù‚ÈþzAÕºe¦ ž|Úõ¹<÷)‘aÿ$ÀJ%v@É +'8gÀ\L™Ï.fñÕü&ð>Ü_ˆ˜c¡3É÷“Ü#î—íÂK[˜“îQ]/¦´š´¶„ýîÏK’À¢¤Ey›-*7´º•W†hQ¹çÿ[w03xîù®ÔÖ±‡¢˜ý7ýÂŽ¶¨¯]º("Zilò?(;Ž"¸³”O @äûÕmŘÜf<ò¸·Ø‹Ë)Ï«›u"(\à…øÉö¸ãeøó–-”6Eå´9x5V(s˜ïýx‡tµòßI ü+Z²Ì¶®µZ>0üžhNu#9¬ØTÀÛ{¾ Jø€í +™+p‰!<…2x‰˜ê;X£Š:ÂQÁD…;C)±‹0Àå,­&0]!ÏwTI:µ,qPµºGÐwÒß:×ù8§f•änRÞ#}ÖÔ&Ãúe¸57غêð/HqìγUÙ=×$lå„ßZß•ô¥ê¢žîŠÛÆûë-/QH¬ù:¦«…ú/Õ©\ŸuÁçªñ“¢ÿ<ƒ%ýqˆBþH@ÑØMÁÛ†mÚê‹ÇKpôšvœ#»úÁÁL¶5bÈmæÿÀAK…Ѐ¨¦®öÅ㛾oôÑüµ®•ñ6€6‹JÐ%KÉ饫ô%CSÒ…^®ùµU+•Ÿª“¨QYQ6·¸ÈÊmÙ5dpunÃØ@䯃¤8UU8Ð5a,®O¿aËÉŒP Å +†Ý¯F'‡ˆ›>w‰®ª.O’~Yw÷·PІ2Ðô®P04àýË«ùgiw9Äa¦Q¥LªF!4I”;„Úv>Î}¤/ÉëÌ…0cÆî¹F­Óp€°“:úÓ%_Õ¸PÅÄø½“ž—òæähO^ëí!ôt–ÐHo²–?³"ß Å\]›Xÿ{ï@6_Œv±û5$Jî¿toQàS£ÓŠâ^>C Eˆ©®2Å ‚t+‹ñûÒä©&½èêÇ䗼̜νKæ5Q[b7Cž'pÈ0ÙÊS§.­_,#.zÔïÖ@bf›ê©žù•ªâ7‰ÀR°ÖÞÛöÛ×xô–Ï6>‡R4Õ“,·ºt²úf†.Bå/àßà–jB@Þ )ç‚QÜÉMØ ÝwËÏUùûSŸèï,ŒƒQý@¡zjÊP1¥à~XdÏgy ÈÀ0¢矛MÛó€WvB)_/Ç- ¿N& +endstream +endobj +857 0 obj +<< /Filter /FlateDecode /Length1 1367 /Length2 27845 /Length3 0 /Length 28805 >> +stream +xÚŒ¶t¤ß³6Ll;騶mNlwl۞ضmgbNlMls‚ ¾ùáœóýϽkÝ»z­îwW=U»j×óì~ɉ•Tè…Míöv.ôÌ L<Qyef+ ,9¹ª¥‹ ð_3,¹:ÐÉÙÒÞŽçÿˆ:\þØÄŒ\þàäíí2®6fV33'€…‰‰û¿€öN<1#7KS€<@ÆÞè K.jïàédináòg›ÿzP™P˜¹¹9éþÛ,MŒìòF.@Û?;šÙTìM,.žÿ‘‚ŠÏÂÅŇ‘ÑÝÝÁÈÖ™ÁÞÉ\€šànébP:Ü€¦€¿(Ùÿ錖 jaéü]ÅÞÌÅÝÈ øc°±4Ú9ÿ‰pµ3:þlP‘–(:íþËý ü{6fæÿN÷oô_‰,íþ621±·u0²ó´´3˜YÚŠr ..t#;Ó¿€F6ÎöâÜŒ,mŒŒÿþ®Ü !ü`ô§ÁÛs6q²tpqfp¶´ù«EÆ¿Òü9eq;SQ{[[ ‹3ì_õ‰Y:Mþ»'ã?“µ¶³w·óþwafigjöW¦®Œjv–Ž®@i±!L°ÿc3ºØ™˜˜8¹Ù@GÐÃÄ‚ñ¯ôªžÀ¿Ì™ÿtàëí`ï0ûÓÐ×Ò øçÖÛÙÈ pqrúzÿߎÿ\Á23L-M\Æ@sK;ØÿÉþÇ 4ûgýgøN–¦?Üc0ýõùï'½?ô2µ·³ñüøßóe—•Ò ý§ãÿö‰ˆØ{¼éYÙô,ìÌn..';À÷?³(Yþ[Óÿ„JÛ™Ù¸ÿ)öÏ)ýWÁnÿΟê_mPþ3—‚ýÒTÿÃq]&v&“?_Ìÿ¿™þwÈÿÁÿÊòÿÅñÿ]„«Íßnª¿ýÿ·‘­¥ç¿€?œuuùÃyû?*°ûßP à?š•šZºÚþo¯´‹ÑÛ™Ûü÷1Z:KXzM•,]L,þ!Ë?vµ¿DfciT²w¶üëVÐ331ý/ße™Xÿ¹9œÿ0òoðpþsKq;{Ó¿ÆÂÎ0rr2ò„eúC$vv€7ó)š=þæ0€‘ÁÎÞåOàO{¾3{'Ø¿&ÊôvØÿÈmâêäôG]OÿÏÆÿµþ[Ê@ ÐvmÙÞ„7Ī1¤û¹^ÏþpšüP#šÞ{Í©Çõ*…º.;hÛé—pÊøòæ¾8Õ£Ð:Ñ»÷yG3TxgÒ×®ß>o Ês‡]°«³˜#3ÅçÂMÃ0øôªBG>ïŽ>êÖà ½2äùŽ®\ˆJ…hÏîC’MÕ“aˇ_ê8dáÞ*çécÔ¢uËÉ Œs–°I ]è  iPo<- æÍ|É$ÐÂú^İ–xkï°Ä¾,yý¬VeqîÃ!ÃÑÆ&Dœ£ð9I•ÁZñ./ÙvšL[Âì™ÚµMf¶9¡ò:TP~v:½Ó§ Ÿá¡ÂÁfG—þ½Ý)•h[FœÉ–s³)³í!}ÇÙaìL§˜hù©hÃÙÄ® Ç}Øÿš×äuE…ѨI®l‘ÒDd7ÈNš×DQth>úƒµ¥;jòsâ'zK;7¢¡8AGOÀžyv£{àéOUâñM1éÅ[¯ù·Ó}ô›“,û‘Þ£)gS[}Ðò–– þ“úΔ<18Z¼o˜M9®¿¸;ð pcHS²3ó;X[”àF ôÏᨳêNº†ÝaŸ#†ÏöÑ+Õ*?…ëjò¹²QŠa¤ âb_ÚÀÂw§\1%gwyĶPÃwe"b?¨Â +ï5jî§¾ß_ëÑ3ñ1Tš«ˆ Á+Ø$£iç*ÆË]/IJãés7¢ð”ÉvÒ@ø\IÀ…|zFÖÃ*—Åé¶qr;vƒa ôX1é§yœ§6~þ Ô<½ô? ì¶ÄçÅñÔWztiÿ²_†)ðÙ°ºépLȨ¢^ê7ÊSÚ·UitoÊd1´âíïÏg ¹Äâ~9™—ú†jÎ>â”:v ûŒÇ-dí7sy¿HÍǪ2‡jÚ[&3²Œ%GèHóí±—/tŸÏ’9ß9ð^_AÌ­¨5:9›Ar¨YÅ®ÛCûúª8Ók!ë7CŽÊ·$ù"ê° ¾ñ¶è+·w¥‹R>fiREƒCçŸÅ]CcOæ®õƒû—˜Æ;V´.aÏŸI‰7¿òl•ª¨=(_÷ã(X8¼ Ì–-"±žfÞ¡b,¿¼›ßÈWÍèv)@Uß#Þ6ªg–ÏcyÌgi¯Lð,K'dáû3NÓ87¿¦S`f± i-R§}ÓâFÚ~¢DãæØ]•æ„,4â:¤Ë›#!Òd*ºhÏ|¡=›1ý©'ršŠ> 8šh^fäÙz-\Ú8§ÐVi÷È™ÉÎpj™Bý]£ž§¿èhsæZËWùxÆ|ôÛ¯nöÔåÔFí˸R2ÜIð· Ñö³OüÒ¯9ªBñÉþ‘^!ˆ.x;ë,?¯àåzÔp‘â/Á­}™Üè&á<êÜéôªp!È®jôLµÈAþwÏëlöG ‡ä›vå<µ§ö;4ŠQ¦îÎr´ø ÊTú¬ŠF.´”9éOašÉ"²]âMs"epl©ü*^å~uKµ€ Ab›Òùµê9s4Å“ ôPÕ!Î$ì×V÷™$jÁðQèíüTuctNý=ë¬ÜŠGÞjX…¾dš{„µIü¾Òâ5Ÿ¬ÄÅAµâO“©ÚíÂÄñr›EÿÝ$Žy‹L–µí–Ù¼xB"í7µ‡Ì=›n%rjõÑvDۛΕªTT~Šn#ØãjÌ™ØAçô‚¢ÉÆÄ ÏXÿ5\oå ÂŽ¡æÜ‰4‘´8N+é'\¨@¬ð€±t–4Ü÷&#ôÈ·2røÏt!N68¡OŒ36ªDün~Ð+À‘aî¼¥Cõü>­GŠÛ”¦oX£à·IÉeV1ž´ ýÖ¸–‚…¼xж[‡U§=˜·]v 8a~œ¾R–µÐ­ŠÁdì!‘¨¾>ä¤ïz+½#·PçÜ6ðs F¨¡ë£*¿Í'Ê]>Ê)É{[ ƒê —Ïš« ªŽ7¥’sTŠ1©¨-My] +»‹ý{ÍBäò¡Z Æ +¾ÏÍfpt8Zu”Ñ¡C$"v°‚ +ü¬1E Z<þá0™¿ÏÒ“-9˜€jÏŒuý.ô©“kh½–¼]T›ë´†!¹ .ÒW.‚wIVs‚€Þn8ÓÈöM› {˜)Ü–wø$µÝûG×>޽tÑåoä¸ÃZª”ÊÑ£¸Vó yöËÌò•v¾rq´ 7I<Š-Œ“†OBÁÇ y ±‡ ãlí±ÍU2°ˆ!"ðß&ÇȪ´Œ–ê¥0`„üÍ™0¥¿&ãÜómñB¦ývóá»ä€Z”\;r‰qÔ ‹Øsƪ!¯§"Ô|pK™8âôen浩®“]¯ %â(ANMÕKêG¦Í|Ýi°Ix0àÀ¸§LÅ9ŸeÝ4´¦Q…o¥ª­ÐËDâ`W^¥×駯¹–!fuæÒžmMÂChTމ;7+ÌEÛ6›ÌVÞ20l¼À‡D,Üe |í §èÀKõ¨=<Ÿìð²KGì³-¯7sÔ _KyæpŒ´‡¢Iw eøene£ïDhá‚7-ÈÊÃRâ²v»æI'‘AìÎ÷Ë‘èñ²¾K‚A~Ñ»b—7S˜ÉîÕ8±VÐmMKašV&md¿m˜ƒ"Ÿì"ëw<œ'ê©ÒÓL=¸nðƒU=ƒêA +Èc8ö EJ8×ábžWÃpޤ}wßä"‰>VÍK€2r1šG¸6±þ0Òwwq£³†ù«ñ6KÛÏì66qŸ.i^èNvµ5¡'JtÉ«ãÑÅûË)“ò…Zm¯ìm4>ÅRàú)Q½.îHMüæÁl!³œH}Õ *©ÌA#hËMßýÇàm;ÆdZ3T%A–S[NŒÄ¨(åÁìHš¹_pÑÊerœ‹‡‘*Z:W² o +d¢…#jô Nx:_0mAc…Ó/Às¶GîªUàþˆfÿº.îÞC¯AéïÄ_JGZP€’ +½š +‘©ljÎzÆ¼æ  „1ôr<ÇÑOŒÕ뵓hF«©ÐH<û³Ì/£Éwc† ê})·ââ`y‚­&ÈØˆËÏèð¢i£œœô†£kd_êjäݶ¡ÎÎ0}šB)œ‡¢§ák94‰‡ÌIíLgÂu’ÜQBí¨BL×bÓìí‰žÊ B/’íY÷ù~vU€E4à"ô#†{ÈÇK÷êÃö<Ô虊©ži/#¿ÀÏZ µí%Yú(2‹s»«€u:‹@yÅï.gŽ5·d²˜ß€/¿¡s”#ïlLC™8¥uÜm$hà2#ú “lÛiNÞ2·€v±…Ú%Êô+ŠÒc*Wìòsc™³ó_jè{LMRAx6}®çŠûÖ÷¯»pa!û*ä=,KÇŠM„$'¦GöVe–õÆcƒmAèù‚¶J ÷÷%¬‰«¢±ŒÙ*[òÁ”8±a2žší%Žž@tE©dSh`x«ã-ƒÔBn|"T"î •µ0¦eh˜À"2'­²çy&p5á1Âw.Cªwîו=¬•u Þå ÓèKøâ‘ +Â+áŶÐC¾]û¥âÚúYÝ$g'BK¸á«ˆ"eoV¡t)µ +Ä>hEå¡ÅDF,û¡rS@e÷ #n™9q"í¶|íö³k£ȱG~E=¼dÔ‰ëÁÇÖI + +PTv–a½ JÍÀ•x¼ÖY)ý¨£³Ò8LÆT^¯uålvD¸èz¶²µ ‹ÊdÍ#Þ¼ÁávJ 9DZ„9E6tâ"nd'Ãm2ùRþ¢¦–ñ¦8Áëç»QŽÔŽòl*5† =8™ú‚@dÞù +ÔFíÍÞ­ä=*¥‰ä+¹ÿY¹¨+_† ‡²dÚ¯‰æÍÉp7Û­ƒ&,òÇ—Á®¼¦yt½j~%Qß·M–ÍÑEë÷Gt4Šó0¸S^`ƒ$çJ"D‰têstÓW³~ÆÎ„_0Q¿‰p¶¯³rÄ*{>,±I³¼1Ëñv¬<’VñáOÔ~Ö)™“kò”ÂßÊ6”Dñ;·åõ}_õÂLåD\Û©ÜÓdž)K’24H׋ßUb˜|ÐOD=Fì{K,¢d…„Ò£ÏÑÓŸÌê†~¾³lÕX.;pÎA„‘ã¢yDÍM±•p~»äúÑvÐ>VÈní·ÄóÑ“#æî@RÅku[/üåµfÚPEY·Uë bü»ÂÖ»hC‚õ¡'Z•ß–«é)âŒgÀ i›Q‹Μ÷$‰IÞ ×{5ñ·+LRL°Š»”ƒ¯XÓ%Ôëùƒçã‘Yqp@y¶0« ø¯Xeä<DÐmˆÃÀ4“5Å»rÚ5²f§9þµðÈøZ<»ø÷æcvÃÉ”"º]ÆÅ}'^vA\î‰Õ$¯Ù ++’Ú–PÁÕÛOÙ æiaüÞa HcL‹RST?š]5zJ¼|²T'›÷Õ¥å÷ëÌh¶‹B80 &MŽk×õùÒ²•Ù§ÜèÝkiå‘Vã"^îS™ƒÔ Ká-à +ƒdDÌBóqrÎ ”KÁ ,½¤H›Ù,à¨BAóñ̇ýºa¹¾Ó/Ç®œ…öL¡ =Sù^da¿EaªfCªÂɧe‡(Õ4^;,FzE{PfeGxÀG^cÐf&ÂþÀâ»âsYIäVÈ\ëŸÜ¶‘–"Èÿéœ3Èí DªŸÜ›ü‚õË¿˜Yfº²‚&f¥¾·BN'£m(Æ™ÆÄüQhÕÏÖÚÌ­\”ëçÄ(ZH·ªƒ¶Pœ>JðäxYH¾%§C[KkJÐW¹ª&ÎÆb‡>„6LS¡cje½þO ÁuÛPAÒ ¢4&º/îG‚ö^MwYm›ÐÒ{® +"RH” M7±XÃê•ÑÄš‹ÀLÍ®{F_çgÏ©œÌKª _næÈ˦¾çµôˆ!È'WˆÈ£¬ãzçÑ"IÏÝb,Ñ;|ê@Ší>[ùHr¼/ûù“½P™º_„{ûg'ï8D«ó‹äÊPKdD:˜¡ºµ|.H$ï†ë¸žŸQkd¨8éã¸išQ°µ;ÍzŠ ¾0ØI¶{Æxï3/¯üÚFo·S_ÁËq$ÿê3œ7hîwð¤p­Ôi°¹£²ï^û„\ 4ÇͰGºpOjkï_¡ ˆöwx0]oÒ´AÓt%B/Ì•„ë 4f‘Ö FÒWVž·-•74=¸:„OÒÄíTPSt•1 + ó=ÓÄv‘³À3‚ñ¬fÞT¹™±¯•’ÊœêZ×ôT}†æ\™2¼v4ä£TŽùëã“Àïíð@âÏ[g½d} Å@cèNb†–ž‰„‹–%rV­›u÷Oݤ>ƒµÁ|EÝB½ÏkX<»ÿmýìœZh!КišgS¡TOågE®TÖ>6.€Û"©a“"8'–‘~ÐróRúëËÏ„ +Šþ( ×GŠBaÐ02äè ˜Eò×Xn]%xI*’-øá½Ê—÷Ç–°Ý ˆñ¾~ô”yd¯Ð/øÑyi´$IxíèëíÁ•ê{RQ‰ë8-1Ì’ëyORQ{ZHݧªSóUã Îñôƒ*ÑUý¢MùŽ<°AàÜÜ@H=åo/ÑððNAOÅN•e†#ÚURÃ7C’U@ ̈uB¶5‹p–À!~°~ãÏe¯9~3”ÈÓTêgs+áŸI”áÆ"J¦|uû%úó±t ÄHƒnK‡¶«p2Ä 4|µ Œ*`c`üò“ܾš:ʬ»¯Â,´ +Á¦ç${n 0â‰:× HÓ Ú + +AbxûÇDØÑE>D¨7²Çìóߨ©dw_1h¡Â‚iÙº<—„Ê1¶ rbgE–®t´ˆÚ»“aª è ßP¢S"“n§ˆKÊè}*•Õå8`LÉP¬bžªÜk¸y51—Tä † ¿î\ú’` ±oÇü#rO~5ÇÙ1Zì¼æ6€Ê9;¤v/¶è[Šõ`kaØî4 +£ÏˆÖ &Q9ŸêE‹ýÜÕRŽ\õ,ãÅ3(¬·…Óww+þKY…Á *™´cXBH=Q ºCsz}9ÆÛÄ… +[%kFƒWL‰fqÝ6q?íº`ÅÅbà› NDxnëï P/¾"á/:I8Aß›ÌÑhÁÇäò&L°U[mãmûêò·Ÿ£S¥½]‰Šb5’Ùì£þ•hìH”C8³z…epø*ê ez[`vC~£á }0„ðëÊ¡âSâ—Ä–¨L8Ÿ‚Œ#‚Ðö»èœÂÎÈ€ü{'“ËüÌoÁû¹H:Op÷R¶_Öd—¯y_ø|4q¼.‰4RÕ“û6ØoSªj2<־€BñŒ%"»WÚÚÔ7N³Z Ù_]UM¥ªe©2TêŽÝQЙYñ÷ñƒ[ð’ ÛSYöÁ#Ó Äò##”69pr€KæˆCå“a5Ó‹ ;‚µ3ÃÈî­´F+»«ãwƒ£užßX?…ÅíuÄ+…8<®¨!|ˆOPɭѤð´êÝ2 #€H膂ÓÎŽÃò“1ÔFa`Ñ/ìã½] ê­ŽŸÚЃ¼Þ¯<–$hs–ZÚ±ºeÔ6= ç.Ém~o([™I>ë'Ø{Jú:iÕŒñHØÍÊRú]/c’”Ô´ˆÑrPHð‹NÎ)”»¼Ê¤I‹¿OZÿ 2Hr‡Ï¥o±‡Úªƒ}bÙQæ—š³[™õ¸g§ª™×2㫉i–»EMå`ßßo=’ê£D ›t݉o.Q+oL2÷žNôˆè9ÚÈ/6Fu:&4lâ ]nÒéÞf_ñºú\áªèyNÂ\ßL®LìËDCŒ\þ(r\tEÈù§ª²¯x?Îd,;€Šþû°Sg#¥®…›EË÷Å?q\ÆÃ8®:9KOhFôÍ.›Ê%­í¯‹SD;ZmžcaxVXË¿¯NøuÞUØlV¶~ÉV—°"2½guë½ßGä);5§Á_r| +K/öi%PSc»Þ*ûwIË)ŒÖÄ9è“©,bG¶[?Þð{–d6:ÀH¬R~W`Ùé 9u‘+„ÔÇöï•'à:X ÚýÈX‹xSìC¼Ò<[¤YéìUðÁ¸O´Ò´ÁµDÚ‘#¶´– Dä=–x‚3Œäv²¤îš×,šJ•N +´ÒzQœ–(t\׋&é„Û}¿m –ÖÚ Rj\h[w±PJyõ xGþÞõKxò˜7.Mìb›Ô{övÁ¥J6¿e‚…ð 3ö_›þÔ'­º ÔRÙtëÃ1u¥P]î¾¾’àŒâêZ¹3>ü%9?}ÐI!£‘P¯É°N1jî­µÿ<Êñ“C\Q¢mIq.­¸­zOž¡‚'CChhsïë´¶b±$êVSƒŠ¶45M“±Ëu(jš„9¦Xa4‘/)@ îâ|úx)vÿ”OAk±P:åšXmGŒ¬:ç™rëP* IÝ4HcdŒ¡8D¢U…Ê’|”Q¡4Hr›óÙýÉ®ÅÍÌñ¡™òO€õüPvAlv‘Hk2zâä%õì–1ßj¶¥Ê£zMª,Ðírú¤Ÿ‡N ÃìòD%Û˜T ºßݶ%\øúEçõÉø‡~æ¸V•µí&Ã=¹s’2pÀî§Ë%Ê3›„•ÉM‘/*BP­ÅI´˜ûÁî|½+ž=çí¾Êv¥“ãý&5íû~5œÌ¬ í™LVµzMðÔˆé90)Ø.ŒØwêiO0uë_DÆ £lv»þcë¾ûC«aBŠQ~JíñlÛÉÙãym¡}ÓÏ °:Âçeu}!VpFÜû +¶¶ ×™¨‚ˆ!9u1þý[ÅuøHÏÍ\ú“QŽu/4ŽDƒfLva +çZqYÏ´†\²HS­0b5wg¨”@Ü×Q·ð›çª*8AMÀ/¤E·ô\ö4ƒù,(R[Š —µ„—ýx2ãûëË› yB·ÝŸ†?DÚlÂìíÈ ýPwžuëþÑpÑv]vôݺ˜~Z˜¢–HÐ’ ¡Z¹PÀuÆâ¾×·õ×vRWéñùÃÓ¹È&_ʤò‡Cµ;PŠør‚¯æÖØÈ©Â²'m ¿è)ØÄ’˜áÅ”³ÕðÆí­àöˆê·¨%§Ç#¡|±1ºÔ›/iXZ²×ÉÈ•'JÐ#¼^o£J +\ËG¡¶Ý[<#ÀÃ>>z"® (QƬnޤCƒ4wY$¬7™õàÀ\Tî¢Nñ#SßïDöKþÅÓe©œ‹dŒ„µ«?®CB¸Ù=}ÐÏâÙ‰]·jÁÚzœ~ÃRjt+_w“ü•ÊðU—¥äs 4,ãŠÎÓáë _¾öé*N‚ž©¹3ÉîOœõ &“”o|Ôïýç×…Ü”#þcp†ÞHÍ ¤Íd¢¦´ÁŒÏéìÑ2‘a4¥Yo!G3â[Hº-Á”öer™é?ˆ[lziÔ”3 ÝTÍ×YŒ× Œ›»ÌöucÁäËêÀBSͪî`J` ¦Ž÷?ÝÜT+Å«xõ5rlÕZÞ/†-D2jV€gW¾m>ØY†2ü^šG÷Ô¤2ÕÂç{l¥îç<¢s zü ¶iÊmb*?Yã w64Ðt _`Ó°C‘IIÂãœ>±iÂFcÚwßä¾ëj«gtÞ«úäÛ?Džߘ?a> ˆøÏí +/´B­‹ðËhÝUø KŠÛn{N&Ç9GNä³–sÏbájËx(ÞdÈaêAUà"ÒRƈ“öõ°¯à<ºm§Ë3é=„ìÌÄÀ¥á^¥e¬¸³bŽ´K "±k¡­-´B÷ÁýÜü/оÐ.ìÒÌ˨ù§(¢bç +ÁûîjQŒf3þ4°ºærA<ÙÁž‹¬»ç^½~gœRÞ=3±ÍU/{>~ØtC;+çÂCÙºIPzšîèº"çï¼Cà"‡úí´eáçÈj€¦x8ÛóÍÖbÉúhLͦnJ¥$3Šo6㜿Y­±QlN½Uf"}ÏDq:Ýój(ªÁ@6‹ÞéØ u!ÚgG¢ÝÌ{¾üÊà׳Ìö5j­ª–va=A˜ðþpîbDKÁS—:œïƒßõÛOud²K’SÙ¶Û0ßÄÐr–ëd°ãWì7—\ÙÅEJ„wýJïP«GèëÓ_§3q£†,¤TUÏ+<ÝUAÞ3´Wg|@õ›|nâb¡¥‹‹SeèÎ6‘ xn•\âu ZȾöÙedöà1ïWѽ…ÊÕ +÷‚‚Ú íàÛ\ùKùh¨ÖÐÌ9ý†´]1ýŽWýÐC—'`j»ÃFÊ)æ»G³é\NÃQ¿|¤‚ ×÷4´|‚:™_üSZÕ5‘Ûä*Ôiü%~Ý’.U-z Šw»Ê˜EÒí|nŸ„oY¦Ê°’Éh*i°qžŒùSi ± ––†tŽjƒ¦š´ŒÛ¥hˆÛéÍ™äRò®èƒpÖ¿õToge§°¸)|Wש¹É¯©D/“3÷ï㪒áªGÿ‰bP–0Þý¡éà/¹ÑäÜ#êå­‡ ÞÔªV\œ¯F,‘à–§"G^¡~^(2ªÙ\Îù(«Ò«6j=t€5o¶Êª‘ŠÏ,ŸZíŠiÛ‰»ä¾ÄB¼K7^*ë0F.CUF1õ½Fà…ͺù]ïÉçϤsE~ŒR6€ÐîÉlMæH*MÝðÊg*PGD«Û»©=½•gqù 1T‰ž+®¨xž ¶'îxA^A¿y}Rl¬ü­Ë›½$¤¡ä3¶³y<„[¬)°I÷f.0¢ä€KáÀÙ³/¤[™ŽuÈF€ÏÒãó¸(ŽP\Žu©ÅÙ";Ý +<•š¿(Ïë>œ‰HUQ%bì9\Á·ÃNÜRO±R»¥0ÍyÌØelÆ>¢u¾Á5Š´V¼;ØÁfc·ÓçûF—%v‰‰;5•ÁwÉ–ÚÞPód¡¾Ýˆ&@QDИúx[Ó®ÒŽó8Ñio+­M <ú¶sQS'óñõG )ãÒuI°?ƒFÀ.ÖȘKì—T gÌùÒ ¨Æëá)QÕ)òÔ†äì°œ&ÿÜað‹¼WĦ\Ýf? +ï·SËõŠ~XLê¨k;¨Õ2µyîzÞ“ôF@)ÿ`tµZRH’æë°§ø "!ÚæälÇ¢p¥xZ)õ8|L( ++1H‚ŽçVŸ„– n<(Rtg’ò’vI_a±Ny:,äzÜÉr7fM qË}Ão0Pø2RY2Ð÷29Š.ßî³ûbŒØkÞçó¥ÐƒX% , i…„ÁbKŠöGowf_Å'AõïœNbm®CÜÔsW<9I_ߨéÀNõÏPEœq»²»F¶íë‚ ÛïzT+qE3LoÀÁ“ã’/ºs IùØ7?ÄÐ5ðŠý‹.Ö,R$6cë$ó¶úzûȪDµÔãm…¦…ì#äÎB"0T?;ö-²Õð"­$¬oM“I%ß©Á"2íb.Q¨Ã¿=L =ä²Þ„<²§Ý e}K÷ô§å\}t•êa ûz„ôøD¨¯ŸjûÛðÍ©<ú‘ŒM•–AÙ+fµ­/l½üÓ”"5Y|Õ{§ÆÊiƒ?N× ÎÇÑžÕ,êVJòù“‰U›ÂWC®Äû|ôþIZç÷÷æLÍ_óÕ*:(j3,’?[Èá]_v8q¡YÂ4ù^’otœ>£PÖíSn4T[òæÊO~äÞ‡/mÚ¿#â3­×=µûMâB©âÀ L(ÕŸ “É=KqØ#-óÉoŒZËVï„2WÜhbK5Â8œôxϳÁÇ*dÚÃsW´¶•ã0Ûëá*CKá/Ês¢ùòð½Q\ÙÒq>îö‹ždÙP‹´s¡ Q5 )]PÁz-`*Z”?Æ¥B¢ˆB肬ª…tNQn¡ðçÛkÚ±ž¡TßeZ$¡pIž3ŒMÞOB“úq(Ÿ û3s9ÁÁ‡¯dV)·+YÜ +"¿C ?ɼ~ý!Wïõåaâ I?JF,êDy\W—‰%î­]IçT’…Ñ­øB†l¶sѶÇòQ.à°Ø«]{ÈžíÏžãÔ{Ax¬]½«ñŒ7^Ô™­”ib¾å>=Œ;ËõCÜçw|½&kŸAèˆyñòÕÈõó!Àó{ŠŸI]„¹-èåÛ¢¼/-%±â¤påxÂ¥2†(e +CŒT¡!(ñ48nE-§ÇF¥Í-òå8=ëmUé¹ôžÑQJbv¿ÆnèD‡˜Æ—Jz¤B_6à¼u?O[[áUO„'õBüVBn†Þ8hZ~е_DVq ” j¢ƒ¼Ó0úEœæÚA£ ‰I6å0ÞŒÂç´ÌÊŠ}ªéc Œ#-Sïâ9Ê´‘[”9ÑŒtÖçûéˆÞD¥)'}«‡]‡•P¸š«BÔ8QÚ[xàÀÍ{~@_<Ì–±“_Î}Õ㢀@lÙŒVš—4º)ÓLðJŒÄ+n„J‰õoè|;‚Þt”žFä$`‹U÷WFYA  pTkÙVh–YË?ùÝ?³m¿ï`z#®zô2´ÉO{0©‚ëÖFÒ¦€Wú¡ÃleÇö¬žÄž¿µ«5B¨zuu’ñ®´òêi<3Fªvr’µ¼™Õ>Ñ 5XìÛ•›¢©ÉU€¹¿Á—[Qpƒ,@rƒjŽck×|w€ËBògyØ#€â‡”¸Po¢ä§›v¨ó•QËæúyžQ·0t |Ù–¨ûvσ¤;`Z3µ÷l~÷˜ÌEVRñ<´š£S}“£îI^¨N¹ÅÓBy[°"xXˆÚ汩¬7`ÉÉç£Â¶­ÖhZM%Hpº~f~  ž^ ¬bò‰ì*»KQ½ó·ÇA‹ÂñŒ¨Ìñx•÷1ÒÖ$áFžPÉ+ôÓ";7-³<ÁARC$R×à53)([=ÃJ¹c!3'™h¢) +[ðñÞÌáP•&¬ é|²b§6®GšðSñοv‡\Až2O–¡1溯V£qü` ü ?è uy;ÁV͇tfK…©™µšÖ$ya½ü¼é GvñjÖ¯£ËZ±¦R%›ê uk— þ+ž#Ñ6Å*„âÝK‚R~âŠàÉ@œ›X =’h¸DçzÕ_Î=ê±A»€Í±N Y©žéº{žÁï»W˵¥SON{Žø‚¯×FG@DC3£v>ßd±7Ž'†( A6ÿ†ˆÃRáMì•§Dœ¹ŠÀ-ï÷ĉÿÞ]-rBÆ„T³&|.âr.M„ˆºé|— ôÝx†ö eê—‘’CŸ%¹­][@‰|SsÄG»Šl½…ŠFö…GT\ZígÖŽLMáÄ$¾Œ`‚ï‚(“%Æ>™ÔæB%ˆ»®¢Uf5fS_|}?³[Ý€,fÒÏó¡™‘~‹›_ÊHoÅ)@.ÎO/Ácf&åéÄ4ëâ©û#è•="l Ýæ½|Æ“÷×Ô/-.𸋗d' 6?[Âõ´ô»ÜÀ÷´ó³!ĺ73ÉBÙ•µì½÷*9[?VéÕøà’’IÀ©Oh½n lª_ #ÕÂò'„0ëŽSˆhÿ.n”Ku(÷0 žYëV)Ú>µ}§ ~Z¤Ò#ºÅzê§*‡lmâ,q÷ºM +©µ +Þâ>QÒ­­k¦eûRZHut¨qŽ’»6»7`ÁÃBEˆ;ŒpV$ÿRÞ8FÖÖœø»þÊ×&kìÇ„KÂÛÌk¬ÿK”ûÊO0aˆÇ´µËG6æÏ¢N‘BÌ×—Üõç©!ŽöƒÏz…•±\ÀããÆO¿ÒL$Ͳ]ºPtë¢æÒÚz„k^>dãð2ðRl"Ue‘E2J|‰,DÚý†~àZÆÐ%‘åý}ˆ©eGÙÌßôºS¶ý˜¿Ž—‹„“ßU.]Ï8íd4å\opfI">+LG`L¨, 9³ÆVÝ$½¨\î$³­¢›|ÈA®kj3“(Ý<ü”.—¼»OHΑí“JÕècƒh¸KP/òzè›uÍ…ŽA‚X+›‘ÖŬ›ÊwäI|,n±éǹa3l®4Q²  +Šˆšš‡G6ê“·ŸŸâÅkÍ n,Ò+FÑ'­ÏJHÅQ깨$ÂhÅßNjò a{Àu½“!¡å'›Œ^pÅîW_·muƒ¡pkëÞ|OMžH‘‘óà- 4€ÝÚ—ùÁÍõëè¼å-ç~pvßÌ¥:0+ñÜ^½!n6Zvu‹àô ³\¥@ß²lžs‘Ô¦wº›Úær×.ëÚßyÆæsÅê. çœô2Äœ'ô€‚,PPA£zf[)aöä|ã#·ÇâüþOohì†yÌZ⇠`°-Y1µ0+“µ)ͤõÕ|µlýѤ'÷§Ò@SX‚‚IQÌfaij_ô¬ ß¼!&^{Â}n AÑ}øòkîObî)VëIôÍ•M=ßû-‡Ç'¯ZçißÈ$>@0N[НTãÎÚD²¶É#ðmvÃŒ_"˜TàºÎŒJCªâDçÓvì$HRÜUÊv#²¸;šüYêÞů×äéyB¹§ØÀÃ/èÂQòª”Åk@sŒ‘2®m… ó4’nœmpåÕz;l¨o ¿ÔíB•\U½ Ê_á¼kqù!©]DµJ¼ý=hÆñ].Ys$ò N–ÙµûQ¹ãðVo­Ì/Ïá'Ò­Ññµž>+!aªÝHùÞ¬0¢Re¸CЮi´Â¢²t„‡JBUÄ9–΃ã­j’M‡ã³cÄÔÒX²ôa¤!ሯ¯ §áŒ–4ÞB¾“4¹‡…[M9UplUjmxë®âZ9ÍÉâÆtl"…Äͪ$Ô„žYøæmíá¨UwÁô¾Í> /o>ëÇÝ Ägqµg-Ç″s…ªHø’µAr9W‹ÙÎl×}<º,MݵáRɧâ~‚åœ!ÔЄýXü›\Œ)däÓ uڮضrþª|…Ô6´hžóg~bÇS9-ŽqÝ…™JO¬öé~¯+I¦=8W8Ú^¾ t>OD\Ð(è‡sü_L8Yá•¥¯±Ù "TûìQq$ÆkoÒª>vöÎ'œã“3¹or†^šIz®¢bNÕ#<'|ô¸„×Ü5Œwpf¬Bm2é«¢#é¸2å·z7Ž2µ—².Ôñ[p½?èY÷ ׺–wiT"ÃgV y½½7!ñꡚ>"¨k Ž-+E9cmÓjo¯%ºzÂòêoY±}- ÿÜyuâžõnNäîëKGË@ +^GÀîÏú#òUyþåp‡LjÈlî¦]?øCŸ¥Ð!A1t yµˆ<,€ ®Û¿JÅͯèDïÖp?~áÇsC}>l l„@@9¥öõå˜]Eo9b¶¸])`yÀµ³ç#(ç“~2·¤NO âGlL¬¸!'ûãyV.å3ÿ²}Î@K&ÇÍêq‹Ï‰ÉH¬Ò»0õ[;š¯§C·üÆ“KPËøHôè0œ†1Kô˜ó2]–­úÓÁ”èɤ9æ.dG*оŏ%ÙO÷ñÇ"-ðý@\u£Û¦ðÁÇLÝó}=÷U3¡ÝÜï¦ÖY#:šÁ|b/ÜD„¸Åþ7?$£—Y¼6¯»®éêïºæƒ©~p­¬gÏ('ÄU$¬ÁRv\]ùE|Ýàå¡3ud¥É׌ºŠÒ0ê!¾I/Ùj~¶ +‚vzæ*ˆ˜~’ È7z´ªôûšì(LâN[b±*3'-xðNÐ};ÎËIqKv”Çbd}Ú*DØÇ>!㔥 MAo\‰Þ,lXMv]Ùßf6 ÓÁñÂLeQ½—XeцÔQæ -ÝBkˆ›v#ÊHO +úÚ›+m»'’^—ýñšB_ õy’ùÀt[ÏTK%ò¿+è@Uÿ̦fš‹«ÀkÖÄ%Ö¤¤“½l8÷0â` V‘¿îhT×¾^"·šýÍ ê1éýôJžqhTzøZR)é(åÁ&ú5]?,%üøKz.ƒ2ڛ˛kŒ +òg£®U½³uD¯³´ó@@Uâ4ÞPÛgмb÷î½ï¦NÒï =ºCàì¬Õ‹âàXÖD]KÔ Y«/¥¿ØAë +L ŽÚ-£Å©& ŽtÝ— ;bÅO|oF™[õü¿ƒ¼~0·šXcY¤®²iRgË$ÊΈP“Noo«‚†$ÇQ"W8[îK *øÆíßK`ÿh[Q;¶“^.2”Å5íuôûˆ£/S•Ó µCàÜ÷Æ-‰ÞçËž…)— +7ðBŠ‚ÔghÐ!ûoJ¼xn¤¾Ýy‰àÖ#™e²5¤B˜1HÆ}½>*”$¼ùÜx¤9xó¦À«Ž;@½k«Öò£Ã¡ .yN@#.6ñùȃˆ8dàurþ™"iÿ-3f†·=(”1N{k'‡ +èb3NÂê}Kì;½ KoTUsåH¨c—`†wSØB…¿hâubO´t]òf䘠0ëÐK ÓØ5mÒ=¬ºtçg›®x ~ö9ý˜¬W<CH ÿwgo™*+°<|¨‚8¾¢ôLÍ´v) +©þ§œ´ûúwå0ë~ƒOkõ(Íà:)“æ +‚Ά’Clu@Òte æ¯kã®-?Š6ß ,jÖ}#{&yD±`Æ%žžIЦ6^¹ÛC”¼Ó ÅÆœ‡‚±Ê|I–X3&¨)³k4ÐE¤(Ù¯D4ôÜ™à­Ùø<,Ù<ç°lgÙ[8ã.t¯Ÿe8=Ÿu0”õZs“Ë'´;}­úvè]Rìokh‹'%ź#UÙ<߲龹.xµ ÌÞò £žÀºL‰É¬œ '1ÔühÎuX̶Õ7ÔIn–P“qÝijD­Úx¬J+"Wlªqá÷øZDj|¿¯ƒ%ÖûÝGaKÿ…‘ÄmœÞ XW>#1T žìæ5íE€åT>b5RË¥ÍP~Ú~M«÷:‹ëØ^ JÜiœâ.°šþ«À·•‚åIsÈ>±S÷! +…«oüwf7û1Ü‹³¾&‡-á;ŠÏ¡q¾žv(†¦il—r88E‹ßäs´Y4UÃaøÄ'Oô!EWÌ)íæƒà.úó Ry&=§¯×èÄ爧z3Ad\’?;r=g~:4¡¨F–éOÖ§Ù0ÀSy;.)0av´”]_²è1ÁJjW<>ÕµÖÈÍ=÷«AU µù!U"S ZÅŒQ± %’òäæŒø‚coŒ Бåd†ïÚ+L8]Ã~å–P{L’(ùR:.¬$AqÄÜ|v|T¢ðaŠýJ ÔBiNIÁ8ßv¹@·ÞzËæ¯Zx&–a2ušqEÿÀÝAg°5DÛ5>Za7lnU¥0r,¾ñ,3Ö>lŒ/¡¬'÷îKï=!;k¶V‡¸KF¿È]ÕÿÆws3_y<¸P>Œß¾½"_v=(l¡@{!k¤ô–73XÉ$Ð8´ +[_áèÁbj¦™Kࢠj¶àûî4$JŸûîMÝÛùÅÓ<ÉŒŒäÅÜ3pð”é M‚ÔVF Ì/ŸKóï">7Ö#~’oÕÍð¥s‚dëé'γí#‰Jï…°µY ©jp,/W{âïb6ë–YBÀ~ùýh\df(uPàý…PS³¦°°Ž~íxþÁ/1'Ž©üMÉÚyMqìŠ_Ü­´‚åqõY <2å)B»R¯%!ê‚lHáN­óTî©r”pz¢±ZÌQ{<¥¦ÌñV˜ƒœWN ÷¹Ð^A‹ÐzÉPx@³QºF?üý*µÈ_ùêÙDˆ ÑŽÚž Ð¡8ý1ïÈ#x©¿]3ðÏkѦÙ:vê1Ï›|>Ï!-‹þøhøÈYY-|‹|âcÝ5ÇkŽkÐ.4q8’gùY>õ9a] ||ùÇ-…åÙªUǶÌ15ˆ>ÉïR¾ïÕM$–Ç ^w«Ê©f§³„ëLê¡îâÌ÷Ž>÷¬/N·Ç-,h®·Hò;·¿3“QΖŒøåA/˜JcÆË~â(ÚûYÅÕ,›|ûÁD&¾Q&~-òƒ7p>òÞqqZù#D•Pwú°¡ÙƒØ?4_ ˆêÌ, íºFÑnE±ÊH¿œ¾W‰.ÛÙýñå²®RÝQRf58@Y;Ÿ¨U»q“+,¦‘¢^š T˜š:v§d™_êùè]´cݔϨ>%ÕwÁ€ßèjÅ|?@LeZuÊÿòˆÊè §uÅ2€CÎÖf¶ã‚ÕþÌ~½GnTGm_Ö”«ªÍ¸|þúmãÁÔ :µ3nvNû4ùŒ ܸ_¨†*«ð„WŸu¿þ „š¼J·ÝíéjÅkÙ]°~Ä`±ÐW°éëhËçhÒæ‹©¶ù4NTÝd,Éç­®ÉX<­½ +Ì^EcŸT[eO¾À:»ßïF-*ŸzÑRÄä×S@“•NÎ]?áÚ§lë,(IúBà¤p˜Ÿef©ý§7òúËÂ%¹)ÌûQÑVfÃp6~Ó͹C® xQöl›`{Š€ö}“éœÒÉ ò €\› Œñj£îê•a`ªÄÏHÿ‰3aà‰ÏÍämdw%¦ÔÃÓT…:ä4›C¬u@ÀƼÉ÷§ü:oªáñE; 5åf¬ò\Au&MVQIc›UP›2ÎÇk|…õ¬C7Ë2¤òc—m¡ò½–/ç{¢™š­Rñ€I‰M²Ò·ö- ÒTRA:c5BŽyë$ú¡Ú>á +ˆDn]–°¡ÖSÎtäEyyß´º{ÿäºY€„÷#¨m‘ewc![¼Èe†aDºG¶ˆø“ Y)„[_rš`™­)Ò«uì |)0wHõ:ò¶F'Ñu9ì¯õ»þÎf.– uRž`"'ÂèØ£»Ê–·Èa¶~EŒ ³àX3¹ðtË}8 ü‡ÁªÆAC'ÙüÑÂvKì›E¹G:î”Fö6·£oëÔ‰À.—Ç£í$)X´Jàžý|–I `ëbôž'û¯-{ˆ)UEm8bÈ$DïÄ×¥9êK¼IÙQoÌE// ++S5"*8ºWì¬ J”YæÊ˜yüéu¢° kÆ”_xƒ9(ÎgqǬü^¨>PM7†ṑXuiç%{ðG{ÔÊŽw8Moù¶ÓRÞ°…üûd«c(uw, '‚)D‰•8 +²ºV…Lž2`}§°á¡OæúÔÎwÿ\¶£!R±ï ÜgˆGœæ®W¶r=á„/éÌ4^"Û…ÙoM8bn7|5Â,4ètV½öGdž4T3¡tâaÇí{„‹Y™9²j¾™'ü?ˆ8OzV8zúH +ïŒûDSšXëÿ +ë)Ùä[09ð‰éø–8å¦W´pêÏn”;ú ò_“Œ9)ÿ…×âieœÖnbÏßw kÎY£eúE¿ žXÀP«êK°Q¡…x‚ҜݸE4<´,ˆ¸ ítÓc™0hÜ!T”ý¥ +r¿y¥®‹íº‘ÜÞÌ9¶Cy1?Ž^p#ßøµ¾3nÚ2©Ë¾ؾÑm(zÂã$_z&ö¬í9kÊš92&ºêªs§¸qÊ<ÍÝaájKÁ^…¤ìªÉ-ûÇ3t¡™Ù¶f8,ÿ;ø;³¸§Û†ØÇÅ’&©ÂæNØ®·Øj¡ëݲ£øÚš…Ñ H2ÄÞ3ùÈ)¡õVƒœ_´MR[§t‡Oú¦†aû=tE¬ká5”bÿŸ©0<+•s™’(®­òÑ©TzIN糬ÛW¿S)\Q€†UMß≥ÁmÆMr‚), 9H·›ªšpLœygÞØÄd[º?Ü<’F£­ÀH¢œã§‘ñ|Sô +šU£¥=%qc!sÕ1õË›Ø?† 8ã/‹Ê(2tª¡.õË•‘H9ö=¶.õ9€q¬bK} iJvñ{ÿ[{{ÐúÝÓ!m¥®–»“)K ½L­6X¸‹¶ED©€´kýy上å§*u +þœ{Eˆ`D‰‹’@«ñîI¿/¸.‘.{£Î[ÁJ‚£HŸÎí°¨«ìœ§«-ƒ>„ä–MàQ:rŒàŒסvgó›Àc—Ø1‘ò3i@˲§hì‘L×ìÇܓӮ=åM"‹1ÁñßËЊãÑ%°“Y:ް`>fY›ˆ–†ƒ“8 úx´ƒ%ºvqÛþ|ýŸ©¢M6gÙú >$òýÏéÕ»mDeÝjÀäYëÔ‹ +aaQ°Ò†tGÖ/VþTzõçÖЈy`w6¨Š­HO]IÔ„o5ýŠ:Jž˜Ý¬NI“¬b"ˆcÊ ¢¹1X¸= WH|¾'³l(Mê#ØPÿb¼æŸ†§Íà\ˆÇ§–ê®R¼íãÿín´Ðú™BܾPVYy÷´ÜKgØ­?yÙøpFéÉpßè¼SÌ<õŸaǪƒËÝ!ú¼5y;æ3b#ÌÜè*æx`{D÷¤U÷­Ø,ý \ýµÌ¸°(¾ß“vîê¯xWò‰ãô-Ù÷8ÿä¶4Žº%¯7,…˜‰2´÷Q‘úŽ‚öÄ\KK/y®”{#mÞÕføÛûo‘ûÈ6Ú\Ÿäo'êoF].zåg¿t¿÷`¨†çj¸‹"VswBq p(Úb}õÙOîÌALC=&à)-+Ì—téw…œÊ¥PsÎ*S÷P°HX+G¹¥ +þ¾Õø\Vú`݆Å*'R6€ í%§OíìS.ÍY§•BŸNJú ƒ\?Ÿ6y@ãœj1[“ãïͱD¨7 ¡EÄÉKcë†µÇÆb¥ì‘ÌëùûÔÐ4cRd0Û‰paâbzGBrž`2·ž ¬”õ•ÒÅØÂ~€ý’š +Q¦!Ò‡·t¢¹¡³Äcâi 12ݲÙÁö1t­8—'ÅE>]ņÑÈ÷1ÈBÜ uîX€2¤çUYBÓõI0J]ÏÙÆE§ÛIP'8aÔ¤ +‚¸L¨âÁrçN×SÙo`Ê…jZº¬IÈõ`ýîó>±¬ %” y(»³ó3‘A¶qÉJåÍYßÞWú gÕl¢›(>âõ;¶¸Îè}S™ùõÙ‹iDp%;JÃ<Õ£S æ…¯ î^üÝ2óÓx÷‚ý«Žö8WÕöö”ߌ(ë=+ëv­ré¬c"')mnÌDE9„Q“Á·Û«Lí—mhæM4K{²P_¦Pƒ:t?¬Ab ì­aêN¡W²A~ú•R-Ë[h/±2g$lÛ-Ä”±aäÉÇ4ÓÓvÈ›(¸ ›LÎ4{óšQ¸/B÷ÙÞwàVn‚KÑ,o<£;¤ž5 °‹ÃiòЬT8»A›Û`­j’¹¥”ýD“æWY°ÂMžÈ˜¢›vh7j.íM<Ù}“Ç Ó)²‚üS¹Pâ¶5PÀRA¾|uuñ;2⎠RCO­=«#¸òýTÕÒdöMõ¼+„^‹,E{™óÜwt,ƒ­F@§ú©ŒbÜM£÷š˜µ€3:Ûz¥]Hõ±šYå¨Ò”›.>m*­áJá%2°O>R*  +rh[ÈpT˜ÈäM‚@r>é„¡íY^FRŒŒƒiBÛ›í0)¥¦Žª¥]/Œ×ú°Ð¤+|O3°š¿—&öt»÷šß»ÙB›÷Ï/§³‚]´ÆƒŸÛ¯6ax=Sø­QcZ–¦kê,í½:Ë€ôÓ4'¦Í ÑAA[ÄÔ³ye`´¼Ç([ +UM¸BׯØ4šøçgÕ88ÔU(I hñ–Imú­´ƒ,qb´w>Ú³‡I‚Ó+ÏšÌ÷PÌWšSïe´YçIÄ'/DaËtľ83“yA ñ¥?®ãßgÒòsgLôІö,-~bxƒØzUêmàÀ!Ükè“\b†m;…Aÿc÷:ýH‰®¡Kn +iÁ̾‘Ýè6Ç슛붺gÜ¥Õ•œd¢bª=Z€)/%e݇á—x1×q% õjÌF½Rî` •‚:“¡Ô%ˆÜ<¼Ù¸[t2ZO‡3)-[•æxLû݃w–s<ãÚGȤÅNŒÈXs~ðd€uJ c#¡vcú“I >W^Ú!MѼguc„ø²é$êšœy9µö5•Ü»å½ÃƒÞ2˜/‚Ø@›È¥eë”ô¼±`—JÝä0†·A.Gß³åmâdÇzþÒJÞ{À|ߤNRmßnÅ?ЗÌ{G›k. +¨X¥ëk•)Á  º<~ä) ‰4„9¤_ëhÜËý0¯s1Æœ"vÞ—d' *¹µn‚©»¬¡GJBO:8íð®{dv£¾lÆû¾;~‚ Ó™†+Eb¢;|Þl,â努dBHpy–:XôéÜ ×õA¾m»)W£"¸ÝT=ì¦ØÐ{sÓ¨šÑPXxïa“Í +©ºƒûãNÖí÷ ®Y@Q½ÒbObÂÖþÐ í&®—7¬WXec ·v äò Ã,èwµµ{¬HçpXïB¨„å I×*tã¡X¸—¦ }-¬üç瓹U¾kqíÈ\’*]êw(¼ìãÌ(Y"H®«íÑB»þ„¼Ë˜9¤öÝ¥ß#Ìê ø¬lùû 'µü’v–xýØiBçÎ6"ŸD +CmëÈ8\‚Œïƒþ<ÑÀD°ß1ïÊüü n#ªrÔÃvMÛ*ˆ Sú–-Öot­#§’ñâ›Áw‡’¿þ ¹B}³§rcIO½ïQ² r8Ú‰`0š†ÿ輂 *Q3&¯òa¬×ÿ¸îreÕw=è#Þ‘ž¤®i‰rS|!ÎdùXôvy¨AûQðì<Æzà³ÜÌ *pÓYÁÅÿx¿D¦‡ït¶„¤nr¦Ì“¦µ˜ãÕò²ˆJ®¯u- ”ü(1º"0%óÅš)““²,YQ\«Îõ~ë‰.+ˆ“£[PH—îœaÚ:M¹ÿ>n½‘æZä"ÿë wŒÏè´ª§ê,âÆUPx¶iü"¶É'“xà¿ÛÝ(²Õmß¾¨õj+ÊHUÇ'9÷€»“ok8ª¾ƒL"Ö’¸ú 屦žRÆîK8ÿ÷ÊܦpZžúj=&”u9¡6V|ºq¯²Gä± G>·²xG@’åÅå_Ô:»YÂA^¤Ù꘸aóÉH~ÔGÉ3ßrÐ'æÿíZ˜º2+¡‘ÜÐUÓÅñxMs nµ«÷Á€žðh¶è)¥¨8ë°ë¬gâšIAl¤*yCã9è£)%.êäkß]C^‹«`ß *ŽöúB4©‚0ù¶çŽä÷‚µÎ"wÅ­Æû Zé15.âÄà6qxôªzn&­ÓÅÉþ (+MW8¢%e]7R2A/¤ÃEäíðÕz=»†@Ä÷• wËüÞ&´ªG$®ÂS<öùÒ¸¾z7©ú<}"ÞGbÓðÁ…*n(˜näïXl9„¹õ®§´¢s¸ ÚŠQýûÞËh`ГóC¾Ûx¬.l?Ý»?Ó-ÖÍ- {C—¨SÈyâsWépïdƒC¬Ê­¦±oµë´ó~ç? ›uƒ²…‘–¨ö¹œP{u"O +œ&0±·+¢‡6ýAæýÔ¾† rAÃBVÎ9:Làp4¯›W Å¹Zæ9ðSQ2k—hêÛªÅïÂéѰôKìžóAxg4öFÇ̲ ÅƒžcY‘¢z øa¨Ém‰ÎÛmOcnR5>§ó]¨ÐÕKi’¹¢î:Cm󘛴HÓ7¬q*‹4®fçO’Ó]ŤáúØÙ ϼ<$Naë“i„îÍ: V›?´­_7ÖMy¨;éÒü2%É¡A‰È»Cki_÷굸±=¤zöŒ ¿F¶+®hÉ<²ùwËŠA)TúÄ;©Œ“ÁþBnk¶„«´‚ö•‘Ãq&ë›k{ö€éTˆ=;UàÐÎQ‡ºQºµ¾©·8œV¿fúßø(Ù‚V,-kšQ„wú­xŸÀ÷up=ò»èfÆ ü+F~X‰ßTqÈÝŒÐì0f.-Êßݫќ ¶;O˜oLê‹Öïrõ7S?…9÷,±Ì§Ô.Ýá°)™¹Ükÿé×rY.¿j+¦š•/ßvs+j‡ a|ÃÀðžÖŽ­H +Ê"**¤âÏölÌ‘UQˆ¥ ©kûqÛ²ÎUùû/¾xËY*}g¤/WŽh“V U +vN=³À„ó[ƒê³òqqÍ œ‚ëÓð^ðJ­T¬J‚ô4F ¶Šùqäêê½cÈ­¢Ö¡ÝV¼µ4Vû `©—ÒEÅÙgèµÕͪ+¥»6±Îê éh…ãº6ÈáRÿ d‡H-ªzwzú H5aâ"?;—žØô&Gvhög†4Ÿö@ɦ{Œ„“ְاk‘?Fwo¤RðMµAÑq@i²SY!ñ’9€.$­éèÛXAØÛáÑÝóä ¸9ßvol¶"óKý {ÞÛ¢h6ÙSˆÌôŽ’“Y`*æÒ<>>zâÕ|½ÓØžs–á¸M‰>I³4 +4Tzy0Ò‡©²½‘ûr3Ÿ÷UÐ#¹îA‹ënš®V¡Ö£S7cÇè;\tåI ¸6b’Ú…™¡±0~FÁ¤ÝžiÈD é2h„¨e"õqÇSº¾çü£f`ºïvSŽv9à ØÌ½BdÍú»Ý¥3C“gM7 ?@»™æÉ]×FŸ€E˜@äFa(³£!ªŽù_|ûÙŒK, çt‚ˆv(¶ð”I&®˜¢y +¼Ò-·dûR}ö{ è "±Ã¶²ÏâJqK:ì—éîfOÊ„OßBKHþ:[) äeÛ ¾/%TGt:VÞÓBÚúË:ÁaŸèç©|¥^pp£]x·N¬è¡:La¼‰ãÍEmëÓ H úª§`›'ìRÿÏÛæ w¤7–OgLNë–Mx2†e͇½wìJËSÒí1&·Y~†>WÖŒU›gQ™‚ºk;?ÞDÍu¬ü-ð\uÉþÂò¬Þ«g¦ú0楳g:KØÍ§Û¥B|/=W¾tŸžûY¦ð!¾rúÅ¥óß:óà“r|”¬ÓÞ4ð.Ÿ‹œC­€Ù•×aõ’g!Cíú+jlmG[q¡Ep2}$-ƒt>Ã0¹¸Ë4ÕÒ¾Ö›8ÒП´¬Vë'û,kÙÕ =‘Î}x,–«œ0«ó°8„îºyÀùVï 6Ôñ¸nŸ%E¢Ϊ0Î&‰—‹Ò $TOØ’ô@´WuÓ脎æGâÉ â[X9¾¬1Ôÿg Bwî~Äx‡WŽ{ŽûèrûžMÐøbE×Åæõ7)À{*ÅË\{ +OuÇ>›½ÀŽ#Ï|r§` +FN—:ÃWvŽëÉ¡nXYçý·£N2b(7KÙš°þ.r}̱)}$%ÆÀFv˜Ÿ†hÃ= +´¶$5ÃÄ8Ñ0v ~VRÍó”LÊ¢ô øŠÍÙ¨‰Ñp•+æîÒ| m3L~Õ£ìO}UäÆÅ»¨jÎÜ@büŸë=âm Fÿ'ΎМÿ¡À"½^pö’Ž^‹6­`Ì)›–¼´˜>ÎÞ”lØAq²@Ñ;h‹¯Ç‘²MX´3|ǃ÷ÀÕo’’ÎÅ3ÝúûüNòQ42kGœË©,©Äo[ùX¯S’ ã0ð¼s/ EX@)§é½º¸„²!ÂÅWBÐ ûõL\‘€nfÜ àöu$äYgñ=+žÖMgç~°$جŒänn-ýìW!Z_ÈvRQ±Ÿº5OIà½~B³‡õ5i*@e¤ôcÓó•3C9u9'ý×]w9áA§Atí@Yš®ÁóždH=à4Q¸#1œ  “¢9•,‡œ>e"’“‘½%EcH=]=ÁŽ«¬ r[Òa19pŠ\®†‘ yA®ã#Ô°ÆvZ·´­Ý@@*ãdß%Œ±ƒ›B¶eXÇRMZÕ?%š)¹Ûþ`J\1ÛNëéfjû»"µº¾µJ$1àlQy” T‘xG%Gâ0fX¢e)äýa ›WË S‰‡vòùÙ²¾ÓMf“9¼X] )ç‹ mzRû´OøÂrü?Ärgà³tÕbCTåS§ v°UšÄ%}þ>AîBúháÛÌÁ½,)ä›H´8 ø¼fáP—4/Ænø3ÀÖ}‡•Ì奢fùiÚÀOf§ÕX+ÂÏmÂÃ]c©Áù¶w é/±à¢‡PáÙÇQa$ÄÇu !ãwË€c–@z>%ùaQY…&Ë,„ð=¨ æÿWñŠ3`dXäEÏO‡ÅLÜNªË?§ú_Y~Ÿv¸WÚá¼ ÕpöÐû™ê«˜Bt[p û,! /óVÓ^…gTr×±{ˆ A“Bá!±¤~·éwýìó$“èˆ%>¤áÍ*ã£ÑŠ»™e.@·É™âü¬y0ÀkžU%v ~•y,}¤¯ÍFfUãO^:ˆò5sÏ7(èÍ…‚­ñÛu“VÙïj¾™…#fá“·€—Kùœÿó'&twz2¼º1áø%}^½oi}ãu–ëùlÁù-z‘Q˜P}&Ä3×cü´{g¡Šæ±‘Ûº;7vm·}Ý>ÝðEÚbÞÒ7÷3JuS>9¦o¬‚ÒSØ%1º«»t² SõÀyI+¢¨ü:/=À™n!uynð·• ÌN¢É׋`[xtæh6ɧª·ª]{]t’áóg?™ûõèôÖä,ŒŽûëÉêQõÂ6)°`£âmœK¸2Àu7?i?Wß Ñy{cí+& upÇ ‡£2EFÊ0Êæ:"®Ã…÷±ë{H!-Ùf!ñaá…÷áµt¨êÒÃ<.rTµNƒäÚ”#›EQÒ<…•#Dût‹ø¡“eÙ +·¼=½#ËV åFñ…Ÿk°¾è£Ç£ÝE·°Ÿ¨Ñ/ ½H'Ü¿Ç,€‚½ +"÷Mƒù²Ç=Ť°.ý™Y X.KÔ¦KúºG·è»Mr9/¢q¾¨‰>MKo ¤¨n²«ÃÏþÇŒöwìnýd#UÂcÇÈ\p}!Cž +JÕÈAZuqæ‹Tú`6á±<!O¦àÕs ùõ˜â˜˜ +O39¤’Ó¡²æõ pEí&—j8¦*®ôŽ5¶UØ•µ§Dð·L 64g`ÛÈ¢…öƒ…ÞÄ÷ Ú·ÌB߆»©Â Óm + ê +å‡<ÝMhš'^nfz¦Íú¯tD«uM6.aä);M’ÕÍRpEœ¥ªÈ½{oÛëWÆÑM—ÓtéYŽšOI(B#k,^âÍ®5¡Ë››ò‡®ÙOú˜ÐZùA&ŽävV\„­äçbô÷ föyZpÍaÈÏz¨Þöû„Ý– hÿD*ËÐÅŽ+®;°Ào2.Åê9«µ‡®¥roŠ4µ’cÞ,Î&¬¯¶±'šåSVÍÓèb‹ü= j2.#`mãI.áø¥–6÷«:Ùs&°÷ »àqæ U…Ðn}n!+”«ôëÏ\öR†)/ï«›i+_àø¹ß°þz•nÉV­z“‡þñ«S$ô.>²;»ØT\Žá ™ãèy¿&"“tþÒ—Š$[oA(ØóW`üÊ¢0ÙÆ=ìò&»\ê^=މ*)ä1W8õÚZ¿ +-™Qz5¼E:rº¾üÑ+’QÖá\þò(HŽr']½PÛ/Þg¤ï SL±ŠWŠçZ a­TÁ€‚Ðb(Da§üç5ìÆ~&R§ýÅe›ó©É.Dˆ•¾o\ªñp;@ùás)ÒÆ==Ä€¼â嘄ýOºš—ÀL{¬«sð‘®³µqoañÏ˸ßjRj®‰›çúRž¶ f#¸Ò,U–‘¢,l·$ŒIVÏlpÓ?­ŽÖœŽD¶VIÚš±g”y@VPw&ìóÇP-Ž ÖdÀ:ƒ”tùäö9!nn³û~9HYI¢5P¹úþá,8%ò/kÑ™ýùþÖªÏeU&öœü‚±_Á˜id4x+I]ÁFW=})žŽY½¤\¢ù¢Ñ™“îûS·Åµ{J$ff$ôé 5åÇ"-\.–DÁ§­Exð¬—2®àö&æVS@ÿä:™f]ä…Ðëÿê$Ëi|µ +F`*3,ÅӾ߸Éhcèeº4éo€NjðÅ+1ø%\¦!æŠÊ|ù¦¾Qù¨ÛmÅ:S²¡´˜K-n¹?íEõLˆ“o/ë`¯IHºó‹8y§Óû¶.¢y‹×bM¥WÑEYg0l9­›Õ†x +°–=ååÐqÂ#”O¾ ¹_ŒMÇèJàÄ?>l( öéÆòB«¶½ÊëÿÔŸà†È}ã£_€¹±[œ?©ò#x7±i¢Î³Œ +GijÇû…¯zòK¤ÖÂØ¤Ÿqèò¦—Yøu˜HÖ\TÿZ6/4{~*'$ëCJn|SSîPÙsÞ/וæ`-¾Ûm%H¯±Ps_2}íKô«QnM@#Êü:ÜB)JEüu^£DaS˜\nã¿e_’NÇÊhÌš‰Þ ¶oÕ[’02ÓGóÀw¬°@ä1àGVÁ—l=” ¯†¢9½YQ$ºµ–"¶R‰ùÈ8Ø• u¯ kí[mOÝžsOÃoéìïŽØ˜ðœ uËŠåQhq”ÆVÓõäe.¥ •$LXÇVŒµðÙÛJ<«ƒ8i\ɨLw¼´ùÚ,) êü}É>¸hlÙuvßgt²LdM¹Ò8<Ýn‰#&Ä™ïð…ÁƒˆŒ^êF™f;ÁùœÒ÷Þ½79.ÅdÊ‚(ö㤼ɫz7èuzÈîEšüÑ/Ϻ¨VÂ/@r‡ˆð9RðJÇ-)Ü6§í¼å‹rì0ê?Ue/æøåK`«Z(™`Îì¨' ùv°]“‘ÒUw’}1ì¥ìN#Ï'_ieF"ÿf +†uÆ$:…»¥¨a.Ï•#AD/"™åßX¯Ø1ª¥;OÔXËbb%ylì‚ëqu§Ø®Ûª} +6ûÁ²Iö÷.Àí.Â<›ÒÄÒ;}íÝÀ!¶s Vm 5HiWœà±íŠg<àO£?ü)¡0$Ú«F¦¥yÕ(xÒÖn³ƒÂû&1Щ M‰PÝgkœ)&˜)`ËðR Iù¬»†_Uüj*«Ú5j +νN gRO€Kƒ "›MÜÉZúÁÖþH«ÐÖÂ^ÈwáNž3¯ÖW›P€G¤þÛ• +¼Òr¼o+¯/–º’ðvœ<’¿ê³¯¶¿ýï´_GŒòSOE6Za–Ñ/žÄC›sÿ*aZ{)áî32*ý Q25½(–c†ÆÄ‡~PrY¥3â¹’ŸÏ|¹0¿™%z¦MÙYvÉ}CØH³DGî»y>a§ñŸ¥éh±õËÍ +öž¨«·ó=<¹2×å(sNW ù㘮äm:#¤ÖnJ&D€\,=ÿY‘ð/õ` `ûäÑI*"}⟷†7!rv@ä¯I[º2i‹UÔë+ ’M ó©Ü.A&Ö^3B¶æJ¢ù*…ªÿh k’[´Ø†œVg¿2Iërƒ±ùÏ2(ÍIyŸ§Ú"ŸVJ²FjÀɯG‹…ù ÿ_ý…±ÓÙ’¬@F%™É> ЏZû|ó$ô¬7©²°ÿ¥Žë>Þ!/øõb”þÛxÒlÖü´ä»ÏbäëëX×~Yˆ³“ðr¾_²þ\`bãh‚xǃ¶ãY¯MÖ·rú…Á_ƒ€›6¾déÍÖT÷‚¯»´‘Eñ¾*[œE[FíùðYµg^TÇmu1fnÕ’«ή{5 µkÒr¢{tW@…F¢Ú‹ôügkEÆBžÕÀùüf°NØê?c°9`Ðæ¥Ge[ "ÈŒÔÒ¨5ød;¡æˆ×M,œB­$]Î"ë˜ëGVÇ/~F”·1Cäu‰²hjFú•e¤Óz©wÅĦFšMx&ây^£— ÈŒB×kôCW×—m¥"mêìµÐÔN™ãT<Ę\ûÎ襂žš;"ûjG'ñYfkE«Kj(ù±¡ƒÞÁ­¼È²¹ìm8žò}.iG”R “|#Û - ˆC%ýoöëlêj¤(³³ÏgI4rw“Q÷tÁ_è:;;p Ç»Œ~¥´ägx[ß93@Þî‰0wn’­Êz8û†`¹ +n…eprïúëœkám£…|crK¢ñÛœ’ƒœº—iy:Àðœ²U9)í¬RÆeÝ ;ù!]“Œž2„:õ-–¢kóD{ƒ‰|"@qZ¢pï†âØ?wj©7Ž%ÿ‚é=øºŽ½\c¯Ü&ð>ýû§žgÐ@ÕjWÍ{܇Nè}ûTÌøaýàQ ìÔÚ W½ëJ}/6}ñïÆ®â<©ß§À¹Ñ²³½éüÇ7îÃÞÄ óby³)7¤õ09$ØA{Ä “Änħ\"0"ÙCÞHFêjîð;ÓLuØ•í?`;•ñÝÀ(DÆh6݉^ +3æô´SÌ9q7ò'(›”¾WANÓ pÌÿOɦ±aBYzyÈ_¤pŒ†ëŠûz¿,O›é½w§ð ™aæ©J-¦Ú{Y·ž ¥^!°vÊJÇ´1,ÁΩâ |ûÄ]F[g˜6L­kƒÎŒFˆ7f³¥Fl«-üe^É×j*‰S½ù›[¢Çö[jþ#Ž4ôKé²Ç¦~æöpÏ@]³¹ Çt;Ö©ÍwÕ1^‘Ÿ‘ï·]];ÙÀ‰²‰‚¢çŒiÌF¹Æï±R.ÚŪ½ÎÚ5_Oßh—œ‘‚+Ã\ÜL˜m”€†+êÒÍü3áà¢AÈZŽ{>Ú6.’†h "’´¼”x‡Ò’ú#8é„2—µ«ƒÄ–ƒUêü¿:O äuÐÍWSÐ]ì÷õ7ϺƒGm, +ÑÜ¡ãúªJP¤k¦ jjBûÄ“ËÕJ˜[ìœ 2®õwìßø5¼ªD´îbn²h“4¦_fÕóçêÆ9Ó›­×‚HWÞôâ‡;ëa‚™‰޶¨lÏô-×#Sé¿+Ë-J@à©ò™šÁ·ò]öa|R‰wºÒ™‹/HXø'¾£…ktÒµBcâ¬/Ç ôóå­½8 jN~2Z|Ñ„¢0ÐÛcxJ\×xÕ¶h-d¸Ö/ø\žÈžë¹úŸ< Ñ% +endstream +endobj +858 0 obj +<< /Filter /FlateDecode /Length1 1360 /Length2 27857 /Length3 0 /Length 28815 >> +stream +xÚŒwP$ʲ%îî:4îîîîîNãî:À0¸»»»»; ËÀà¾sï}ÿ¿}7b7:¢»*Oæ©ÌÊ“ÑäÄJªôÂf&@ {Wzf&€¨¼ +€‰‰•‰‰Žœ\ÍÊÕøŽ\èìbå`Ïó¿á¢Î@c×?61c×?nòö7[3+€™ƒ‡™“‡‰ ÀÂÄÄý_ŽÎ<1cw+3€<@ÆÁèG.êàèåleaéúç”ÿZ¨L©ÌÜÜœt‡„í€ÎV¦ÆöycWK ÝŸMmª¦V@W¯ÿ  â³tuuäadôðð`0¶sapp¶ ¦xX¹ZT€.@gw à¯r +ÆvÀ¿ c€#¨YZ¹ücVu0wõ0vþl­Lö.Üì̀΀?gT¥åŠŽ@ûœåþq üëjÌ ÌÿM÷¯è¿ˆ¬ìÿ665u°s4¶÷²²·˜[ÙŠr ®ž®tc{³¿m]þÄ»[Ù›üqø;qc€„°2ÀøO}ÿªÎÅÔÙÊÑÕ…ÁÅÊö¯ +ÿ¢ùsÉâöf¢vv@{W¸¿ò³ršþ¹u/Æ¿ÛjcïàaïóÏÚÜÊÞÌü¯ÌÜÕí­œÜ€Òbÿòøc‚û·Íè +`gbbâäf@OSKÆ¿ÈÕ¼ƒ›ÿäïçãèà0ÿSÐÏÊøçÎÇÅØpuvúùüïÀîà˜™fV¦® …•=Ü¿Ùÿ˜æÿìÿtÞÙÊ ËôGx̦¿>ÿ½Òÿ£-3{[¯»ÿÝ\F)i%m)Ú¿ þoHDÄÁàCÏÊ gag03q28ÿ,üþ“EÉØê_Y0ý;VÚÞÜÀýO²né¿vÿW÷©þ5Ô€ÿäRpø£X €êß×cbg2ýóÅüÿ-ó¿Cþoêþ‹åÿ!ðÿ™„›­íß(Õ_ðÿÛYÙzý ÿ£W7×?Ú—wø3öÿÓUøÏ¸ÊͬÜìþ'*íjüg„í-lÿû­\$¬²|¨|TË! ÿV1O­¥XºHžo’½„CåJOCƒv퉼xÿ°€–;óI$O çwÍZ죳Ãó¼ä½Y¥ÆâÒ‡K†«ƒC~69Gá#r’"ƒ½âSV¼í<™º„Õ=µk—Äl{Bå}¨ òä|úÛ€‚|†‡ +‡C:2j»C*Á®”8Š-ûzCfÛSú7g»‰ b‚Õ§¢-g’áЭÅ\cZ· ïQò€Rj@vjS[µŸ+šg]Ÿ´»Lë6HÎÅJ}¨ßp¯ü—_+ZˆÒ1³¥öœmy¥`y&©<ã••Æ_“>åÒñNE«>ISº˜láw®|õOŇòUêwLÆR0UÄl«©ž*½¿¯©ÓÙ$¡V³Œ/™1EEöKÁ¡RÙ÷J¦ës¡¦•ÚŽäÝ· Á<Êê& $Wˆîäå¢4¹]ƒ‘„BÖLîK45ÛA4°º «n»î¸‹³Â3F>$¹äµmíIPÛòø}ù¬e=Ђ‹‡D$”w/#—T¸îYƦ›/éfüj4þH’y.‰§ÈÂʵgˆ¢×—–üfzÐmÎy°P2ù›ee +/~­ÐO €ôq<‚X>(t K቉AˆµÝˆÆe ÷sÕǸ‰`[.`tɃò+¿bûީœÒ^ý™{VÌ +ùÌÜQ©fUµk@Uk] R׿ü!*ÖbT÷Ê5«ð½^ÝW0þúÇøœ9KD[ÎÄ çãC8i€ç¥:ÈÉ`·]GL÷½‘u±é¸M™O”JÆjp„•ø±zJçRþ4J.ßE×^˃6E}ÚzAœÃ>·‹@âóÄ`gO|Ç!\-—u7®ôÂú©h*¹CçÂ[eL†¢=þo Ò^±®” üœY–x*Ú ‰[ßÕ¹~ɬÄÒ“¥Ë¬sŒîµ†å Œ[ Wê{ã7-½ «G;·fÜ'˜_öÊÙ: õòÜ{i·° ­øcj¡OÝë]Íñ¥Ïuåµ-&üÆð-™…­ìؘcÞ¥,!ô‹jQ1@:iµE¶Õ¨·#|ëèLçÁžT¦‡<áh–¦mÏìVäh¦{5qikÓIl«rqàþ; ’-ÊÐ3­ëÄ𠔆î¯W¨D)÷œGÙÚWg=ûü®7ò+Æ DøpþÂøŒäÅì±Ñóî4rú•õÖÞF®½ep°idW¡»‰Ñ!¾öPQç¦7œ+D±¹à4*ô _íŒø ˆ x@pϽ?êmÿÚ ¡ÉIðl“š"¨¾”^@†ðdæÓ\ÔüüTâ½|Lr°C%Q®§\GOdøüW·ñ/úA†sskLj ܳ ãB ­_2ð#Gž@Gr¤Éðu 6´é¤B"Њ{†¥×X2V¨ÏóÞ:Êk°{‹›†¿zGzFqô–øÛ%cAk=HhD$=ˆŠ+zÊ„¼ÀYKØ•|·¤ÆÕïÏ'Xš äj %Œ\;MñÙwƒDŒ 6-¤9ä-› +®™n‚ØjT}ø>N£ + ÍÑ£XŸ ›ïq7÷h¼™Üå7¢q©½®›5Xã°Ÿjtu¤î#tÜuè€%ó!‚Lp:`›—šÃ’EPÏîŸë¶Mè_O¯FVÃêtÙåBýœ`Ô®Ýí¬E—+Mä‡Ðx,rv/ûC`‡4Ï1¬¦Ž×*¿T“úÎyÙ=Ò³MÑÓMÜdÁ›K/?ä'_`0>ò• ‰ ¯ö’y¶'îVu³ñr'a¯_ó†[.ÝÀ§dÃÜžù®ì‹H±\Ö1Ö·ÐÚ¡‚cÊjC±Ðµ*“—‡Àf7x«û³O7qÌÒwZŸ0 ý`{Ž[¦e,ºýËØýÒòS5ÒÒ~®ÅïÜ~C8ûÝ^ŸÓ.eáVH{ðÒòvI‹Di©”(}hqÄç:¤ÛxÿaìÏÖÀ.6ªP˜ ½}µ"m"h¾ÞƼ¶”A…vÁ8ùÜ1„KÄSʺ†-ôjv¢z„Oì-µé†Ë¸Òˆ¨Ÿ n +رl5s®Bo'ÅnGFÚÛ‹Xc?„?wní ‡œv«úbk$'qÎÐUÙ5€í‹—žµqp $/¼•qJ…à §.átçîª}ögkò¢5& +é•Ô·l§sáÍ-rx¥?º·û“ HÒ×E–ļfä.äàÄ7é†ÙLK–û}Oáðüâ‘ ù_Žë0Z¦<1Md¯XÞ®Àº"^ ¯ 4!Ô…58k<•¿1I¯Äe&ÍÙAUXJ¬3·F‘ší…À$3¤)0Í|;’iÿ³u0¼Äìµ×ˆ½uU‰6èÑ-j yyTQUŸ3éÄ,ѯlžÇ ±3ܙ̭—üëLh +ó˜líj8Œ Å *ƒ@œb¶ñ¼­ž +Á\Æ;|rßà |ferc Øu+¢ + ‰e*6Äø{ÖhPÁ•6ÒrˆN[þÝ»AМE°Ù ¬:÷ã¾oþÝ‚ÆL·š!Ö&™afV0?sú«7ú´äŠä®çè #X8ICKI­Äã½dY#M|t-öÏäUÒ퇞mcŠ8kÑMœÀ±Úáb·Kœ{Ùn£Šº ·ȵ98ãC–Û‹‡±¸ktN€Ô–8ÀïÛm\%üî{N;hÔ[°õÏЬ0¬RJ Šå!=r4ÃKŒ2ÞhK(ùb‡‘ŸU¦µ±È3Þ/TD×V}8ðm˜Ï +“mn{É?¾¨]ÝÃÄñ—vp4ÒÓ>ŠÈ ¢®u Ìã¦/—/R^„t]–m@üÙld:¯…kT+fìµeôHìÆð¯¼}˜ó!ñ£“š? ³iÀ!ÃdÞd¯V|!¨z +ì{’ÏW%±‚F¶Ý(¹ƒÔAQ¼¾î!òH8ÐO}ƒ9z9Hªª0â…Hr×6' ïaCs +9øÑBF (óªQÜ÷À‰û¦”›º±¹™H¬Ô–dÓ¬LÿM«îøQ{„»ÐОî+Bšû2po *ªœéÁ× +ðt£« *T¨ÎŠyëшTfÑñŒ²mi´ì8 ×WçPk0ÓTM§žG×A]i+">'³Ý…Bm«”Œ¦¦ Læ‘ Z¡Šƒ #¿’y{Z›¡vØ‹ÙLÄYÚ7—ZªWPñêä1fÚùÄ˯u䇔•±“ >#* ˆ4óäbÕ¸tÓ=êgh«J#ý¡ø%ÖPI<“›qæx°º6¿|Œ‚4'ÞV:ñ9Œ)f"±±NÍ]?ÜI$°”¸~ùb$Ђ{UìY§åñ—ÇB}ô0¿ƒ~`Ýýâ Ü®ô^Ë–‰¤Œõ¡¶m ³äýeGZ­Üö…ÈÌŒ Ï•¶‚hYÔ4°â^gi.rÑ—¹WdHŸ÷¹e7Q-ìK]Çœ_Oäf`×Ù­Í]\n 1´¢Á8û)"oIÇöÈâôD|Tºýˆ§Ð-ØÂúX—yÝ^®pØ(‚XÑU“”4ÚB«#ÿÎÌÚñ¨§Ê5{T7¿ìܨšë¨+kÛ.Œ¤$±fþqCð¿ðÕö æVÁ=îòqgöùëÚD>U¯f=õq]ð +¥ž>%ï˜VÕ¼y©ãÀ«Èíî"¦;Ïß8µ‡!ÜÒé±õ¨U嵂†7™’}Ñß%mv×F¿Ù]瀱/èz±øÄ-½u]w]°ÊAŸ˜¸Š¶Uaa‡C&EÒŠcµè³›Ô?m€Ö6Lœx¶¿P8}—¿ÃÏ$'BÛgm(ñ-öÛTßE’¨ž<°DËz„º/> óJoͯò·|ÄJ–ù­ ­Ã­^ÏË¥ÌP  ÆMл"ȼg1@U§úmÍ}/÷ÒwEȲA¨õ!³Ð Nz«u«»OøÙô~ׇŒŠ|„o³°“ü’ -ڒͪ–û§9µ+'Øð€/Ø4¥¯³¤Ëå#5ïô$ÿ ý²-ÇΖ—ìõzÚ«M“z«êÒL; }g]AÞ=2¶»üºr2èìt˜+S—Ø×ð­¹?ðéÇ#î!ô£ÔEjM Ñªªoò=¥1&1§îòEƒˆ»,w›ÏשZJñ$lÛƒ‡’íÍgn‹{Ud +¿ËI ¹Lvgf?­“ìNAÞ©ÑÚmB%Eq6rÃ…)ˆ@e¯pt@ -s7hÐõ¿­À{Þ©i=Õ4[Yq¡ªäØPÃEÊ$‹Ð[·—äb·åáU‘1™˜!óGí^—Äa¼LX¥ÖF åD­ÉgTÏÜ {of°Ä¥IL¼±±)Œº C‘·¤N{f1úÙŠ}PüÞôÔ•Ÿ•-f„O%š¶¾ö0rK °7û±âRó™z_m)ñ?‘æ¿'L`´ïÞüš>Œs{ÝçP/– ¿ù_IÖˆôØ·ÆÈÊO†g¿)¾FeïÞ6!sãÏ5-Tؽ¾ n¦»ç µé|Q6]ÑöÙy¥±}áq̙Ǿ>…qêT7òš‚cÙÉÿøŠK!4Õ¤àÊ•÷ñÄ>]»vïpÞß«M[!;²ž!18ìì=ÄØê­bàÿ¬ïM—c;ÈÍ:@ÑoƒP‰ýéõ:DÑV¥—ÚäN[è®u†Þqî&Êò.]“‡tõ5÷Ï"(=Á…ÿ‰„ÊñP¹«ô!DE¹ï´TÕ‰Ù3|²„îø”Ù|¿. TžÔçÚòîE>n6n~L05ÞyI eDÄ›_·Ê…Ü•Šs® òMÓnî{dåe0Ój)܆hLËö©I jeáºÙp8ïX”u'…Âb¹:ñ?£Ëó×~¾¸³}µä4¶–ü,÷]N )š(\J¯{7áúéËy:èrfˆžŒ6*ü{´™ÅE@èÒù§M ™ýáât(¾}õj¯Ñ+FäL—™¬˜‚ypQí?ÓHi'Gâ}#÷vÍäÂÇýÔÚ¾–d¢ú§j­Fwye…DéµúÌ®FÔ]w¿3Ä3Pz˵4ã‡VÅÔ$Ê]N/ˆ¡Énôý‘}#aöÂÈNÒdë:‘/î®(¥¢É»ÁŒÌ-º#YEëûOK$ªŸƒ V!¦óiÈ8ðþ«xˆõ,0¬#›T_̨LFë†ìq‰€HœãÕË5J#ˆÑíÄ-ãíÉP-Þ«,¯dOm‰;ZþýAH¥ìL•PrngرjžQ/h¢Ùr ÏÈ©–î)¹ –)Ãmè}¿Äú+7Õ¦kƒg™}·Ö´Îý¢q£@oôÍLUÈöê .aØÆ=MÍc0Ü{m>bEÛ¥÷ïq4/N¦±C\gˆþ/€„‹>ƒ)¢7§¦ö_ wÕµ)0zW6:›E±ã¼VÓ³¬Õ^9í7uÇ¢kTŽü( Fe^º› Çx¡Á?ˆf>j¤ÙFùw}¯›)çAbyp8Ո㲬Çàs\Î!ß³OJÃ2:s>2îº^ám„à\Í &ôVõ¹%& ŽŸÙm=¦(«!yµ67ÆwHùæ5êomN…½þÔá•Éø³W4§nß“î†çŸîñq´IU\(šÓCQŠHdñá×ò^ü[‰¯%±­#m­ücòÁoÜ]ñOŠ5ÍÜVÆ)9Q­Ú/e9ÎÓב£!×ZÄì6mA4}Ã0ä&ËË<6Û‚(¾5¼ãÈGzÒrúy#ž”¤[}ï±BHªjl¦¢ûÔnÔ@ÿ9|íUíýœB+úiøMáÛÓ®µ†Bá)Ö§O¢1>—3ÇRÄvÃÌà †éöâ p…+þ}Ù +» aÞR{’ŒÂÿÝâ­7!}G¤¨z¶®vºçÇ~t]7r¹]Oþ0¬ÈÛûMïm8¤KÖõZ¡AÓ¨ðŠ– +LTÐVÉOgôµÕVòÍMý7Müë€ÈAØU9uñÏø/4%üSCp <—;¢¥jàöJ` §/ŽÒkÛ7’óëÞŒ&ˆ‚’x•“œM\‹¹¨ÁHïüŽqh8!Ŧ~5H cÐcRZK…Q$¶FBŸÐyÕR×›Ò[¤òÙä)ÔМã#W“&C¯oX˜=ÿ*þê ³Ã&³ì <úÀ‰ËKâ7²A‚®“SêNŒÏÓêe©µ´òò1É÷HYzü)Sê ºçäAÖà?·üYYø)pHÆy;mtÜ_ËqLäðeä¾ò¼¦ÊññyŽV³°?_‡ƒÄ|îIA)7=‰; EQÝ÷/éžÆé©·$êãm•Œ‹ )øÍ…ÉïܧBu©Ü—ÚÊÛWŸ_v„iâs¥3„º6+¤ÈUQØ®á|‹hi–Ïꮳƒæz©ô~*×%½*ƒèä˜û‚1õ½5|™€ÇXW zé=ˆãØ@,‹Ñ§ÊªðI9Ù£`¸Á4;·q<è,ncÁ¯†?áéañ¬ÈZsèG'óºY½>§,ÁÙjÈõÔå•Í06VÑM¹$hU9¸ðÍKló–+MùZ~g¦lÅŠ¢Iã›â^Ï/dƒŽeª6Äó²~[_Ù¥V"ÿÒr5aÍsXº[“6fi¡ê¨Ÿ«z”ëhjÚMzejÑX'…n Ž˜°L2ë ETÌwIƒ~}€°®þgBo0•´Î˜ë?j(÷Ýú­ 7®\ºæ^¸lÍšyõõ‹å ~Ü(kõYßäÚzEÔÊ&Ä­uúR ÕgtŽU%Õn¿\BŸ®axžÕ¡`Ù<¢Êk3­9wêÕ&„qÇ£(Goy|Àsnv¥ß“ºfáoÒ&¿¥ÊÝï1P>ÿ7£ò9V‰¡cTÉ +#÷ÿ2Éú ¯al¸.°§ÂTmöp}©6 ª™ÃAók5µšxX#²aóÆ{`LÈÂÔ£å£*6Z6¯ìî¤@yK±8÷§á Õ[h÷jÒô‡²ÕéMÀgÂÔ8zIYËw©ÍuLôW¦„öqq6Wt-CL»Òس¬|è ¡SôJT„êžòð§ =ø¶5H&n%û‡¯”‡¦bäÌ[ž×™´„Øôú\Lv§±ïVú˜ˆ/òN_”Ï·òXÛQ?Á tˆ…hÏsò#Ké¬#"Üäz얉˄È9%KŠ;Xœ*ŸÊ­– Q;!'éjM ¨šZ™÷‰YÞ~½¤€Ätõm)ò¬¥·ÚLç£îëŠÅé:h5ÑPëÉÂê«?m¡b¤ôCJCdÈðçhCŒÖÐ9û5ûN7Ü ?\¨ýCü[}s†smŒóª^[à’%R”ˆT×™¸šÔ°ð€Ø"Zž©k+™â| ömYªy™¼ÓR¥½(Öµ¸²/lk!gU‹7G¶æaŠé +Üðwô–'¨Uû g”×7Ñ \Äú›šõà"YIkÃmAÝá…gÚgJ¤€X}p9ÝW¹ g¶'³•è"ê™{tѳ‡årÛ iy©yÌnyË0²ÉÖVÒé6Ó>ñI òS{f"(í¹‹û\ñvCgÓ‡úß…eV0¬ ”>à ¾eñb¬ú Bk©® mž×X4’½/æ4{Çû¶*½'ÏU’PÖ“Ëw‡³eaœ·öuc¥ýÞc9†Ek:B&¯&ëÀÆ «.w$”o$×'MDß +Š9äU]ø´©ýÖ¬ ü¿nò"©9c¦cIáìtÈ<^è†U²¶;=åóµÕrêœQöVBCf0X$Ð2MÁëD~™ QFõr„v¸ê@ð]gÒ —{/ó¸y6]‹rQk) ™Áº[køÍŸ¬ƒ£E‘ò:¿<¨”z/MwÄ@Ʀ Ã1¤Õàm ’Ü+‘H25ŠçÊÒõl±ç7¹œe +ÀÖºÈ@pXD^'[jB¢°(P)Tñ¶'¢‰WÁfZ댼aNR@äœmŠ’…!šãžt½õdI~8pG\îªw&4T`ù,¨DÝÆ;ãΩƒ[óñ»vàyG˦Éøé‘ó¦ŸDÒ+bA*yøE`Ò0žÃ¿P¾‚>g³`8QVÅ +M†?oTY3gn8¡2àm_7ëâ–ú‡Èï¶ÉD.Õ”à,m]%‘‡õ|Ó0ˆ£çŸm…ïrBMz1¾8·àQ¾U»îm¥%å¹${W™ËÖP˜o„6ÆJ‰W­"¨æ“ü Âñ¦1™d,'¿5T)ÖozH7y.KR¸¦EiÈ{)®ð\«Œ•1?€Náèö¾ p7ëˆu,´í~Ç•ý]I3ÙóÃ4;¦~¿r8ÊI÷ YžkNr„}ÉYˆ’‡<8‘ÏAôŸ ±½; +mq­­}ÂÒÞ'ßžJ­ì†í‘èƒmÃ]£|⾜…4ÆXÕKÆ‚?,,pê±õ1o[1v‰ehK! $m…Q)ùçÇ«I·8â r1b+ ó›ñÁí'íY;D4ç¶ ÿew(úö6wNS¦ƒ´¢^… T~Þ47uÒíÎdžE᨞èEr&Tûà7ÊÃ6Yø>8%ž/0iúÕoÔe¦&kÖ)˜2ñÙVMsÓë•H½ÖIÊ ^wGmÆÓ*;10"§ìÑxD—~£|@’÷9’©ŠîI¿¶”¦m¡-a3Õ2Ä€ØÎ“ò÷13,òZ =p ®—*¦VÿŒÇ^”­*8)Ý·­E&œ[$v¯O\k“¶­«Ðš@.U¢d*ªx”*‡/­Öëš ™âu¹Ý͹4bm«Ñ04Ø3 +¨‘ë ŽÃ’†/¥$iÛ=£‘ƒ‹µv¶•†ßAñ^©‹¯«óL)œžäy]¹ò˜¨ÌXØjéÔ¬))‘ë“xúj5¸ O]2LÝ6‹Üâýa0lû®K]û–w8ä Ân`ÀiUÅŠ1ß]„®að´eغ‚«ÛxOe˜DÑx:Í„—-<³m„ .ô ®|Nìû ‘N= “ÓÍ1áäps§öC¦žA-Bøž`ý)û=BÑÖûK2ÑE«Ï!(Z1óüƒè„µóÃ:xøÁĦPÊä¬Õ46i£„QóúôÔi¼\êjŠè3áŽ)‹†(” +£Öd™- žÎâ üÞ=ô‹àh áI|ñN$lÕôA0&Ç<ƒ|8'.ÁJÑ5Žt®>[t BjàË„‡î«h~Þªä3giâI'ï Å1íŽ/4öù²®d¿ø°Ò{`S$.Y¾µXôo7^¨Rnjдè > +ÔJnþV“Äõg‰)‰¥OÌ÷çÌ¢ Çé‚mÝh÷ƒ[¥›5åœak·Û•5a-Ö¿ó$N¸ëB¼œÙ[úÅ1]‘f˜Ýy6Oø@y#ÞoröФ™GXÝÆh`‡¶ê¼&ýîç;€î†­lZýPÝèâÛæÀ<‰ªo #æ?UŒØ¬k”¸’© «@0wLñ·å“XêL{¥_µ/hϧ˛­=¤b +ò ><ÃðŒ"ÁŸÐÕë~µQÓ2SQ §_çbí/&Òµ?S+*D¬;õ + 4®‡„YÄM±î,°ºŽ³ÕGÓžd$ÄöÞ†ìðgd"öî±K€üjÒ®Mê Cþöm‰á¾Dä"˜_úwÎ艆‘³ê4žz(äDƒ¯C÷ŽóÊV£ãÛuFœžÁ­öçìyJsWŽ^(\TB{âŒ(> XLÜ‹îÃ6ÇÔ‚]UÐô¿{Ñi ¡Òµç‹!òäbÿÕúãç +Zz¸b—¿P³ƒéfÓE~6¾)„Rÿuœ|S\T¦÷èðI,RÀ×_¤i 4䪿ø½™ýÊ~Ò9rØ™¾ T†(‘°ÊSBèÝíô$Ä¿Š&êóiD†™~ÔôlYíÖÌ‹ÙvÐãV|ÌÊBo†­ C9Äžäiù^¬ZÐe,ŠçÇù%?ž‰ïЧ‡åå®c˜åÃc2¬è**ÍMFDìkx@ îÊYûÎð'àrÍE8ãÌߢ“ÂCäiû,qú²¦¹Ø>ÐuçÌAá(Ö†°Lo¦íÌ”§t ¯´?£«–ƺƒÉâ‹3½S²úßÒˆæH‚è‰6/XEj´Ä8ø mE–!å Ä?†ˆÏŽªxs )EêI>RGÈ\þ ƒô1ôw&!„íù¢l0]ÝüiˆK[çAomØ@¢KÂpÒG¨æGl ëÒUõðNVYg(Ò#ÍérœæŠ22âh>‰UŠl%¡—À ¸G³“}{kTñ»æ·à}MÜE=eþž¨(*ÿýñF•åêae`9¿\°Ú°³6Duõ97º¿eÔù×sJ2"Wæ>t6#Å”$ö<§¶àEºrŽÍª~ýG`°H '·çûÏCS-/Œ¦C¯>÷o³ò_‘‡EöìP¯mا“n[)Bwý‡Ì£^eÉ%6eìÆVñèv¯÷ûÁõ±àÇ4~•õÕ –Ä1ë}t„°+ßKZé" +•>ƒHüF=åÑL¿¸èoVŸ».ð\ºT±;9ß¹cÒ—0EB”fÒS*as£)¯+öi?ú}®Ž®I}…‚þû˜q©ªâ šp${kIòOtl° 9ëöm˜¢OCÝÂ4(óEÍgêŽþK‹úÅ>(õ«~aõÍ: •ØÍ‚<ïÖ/y±I/ DÔ.n͆éÜö–¸¸ ÛžåÛ(æ|‹¡Ó¾ç2ýÊÛ*Cµ¢’Æ ëZL¾—‡DN‹ƒ5Ú&ˆìÇP`Drî£wû{ÏJ<<÷8ëDá1.ïµ*6ÏÍx:é?axw´î$ž¢ÆêÍ„G¢ôR[Ž™_)³TÁ2³Õ|M ²1÷B„ ø‡*`osÆu÷M‡N“Èt¬ÚÜë³ò«1|^ÑL[‰ÎSö:Ïѱ¤Â3¾˜_/VShÅiÕN:¾½Òæ>k[ØY…ÕÚZÒP:Æ¢è{»ÒãÄ<~%8Ñ! +{Ç¢Çü"‡·¯Àìes-n9'‚æÃ/åIÏ¥ÏÝnžŒdÙC­GÈÔ£*ñÞhþ•1–t3uœXéqEþSWiú¥œ­žN~ù1ïæ;íúH©sd“κ3y¯g$ê±\ãL‰ÂlLü¶d§$BF·éx$]©)Œm0c°Ä©¹`ÀW帢xìx¦ß&2¹rŸôYŽ|ZKcd$h K˜,3Õ–:“1Øé¿^¾ƒCŒùԻ˲ÀÃo¶ŒøÆtZÐQH ˜,fªwo2gX²Ù3o½ñ¾&~j2JÀ\àë ”í™²–Œr ©-³edmMC§Ž²b±khK¦ S€ÍõoC§œoZzƒÐö†Kxé·;;\&±¬š·<øÝT°74©Ñ”# A·"K¦v¶EnŠ‹ÛëG/ :A1Ÿl€%?Ó¨?´õ_âw’X^&³¯ Îû ,”ÜÕÛÎñ³;B¸©w‚Ÿ\ÇUç©Ò*ñØ9à4,±ŽÚ‰p¸­µB. /“Ï^p2wí8\mzËÅØá0Œ¶I4¤¶o´d±´±(SPDà¼Ó™ƒy[ʳæÁ¶•œãåò;UFýà=Ê1hÞôN ©Ô>T +#âänçÔ>Û®Ó¹ÕWÜÏ%·ÐÁG뺩™+nS•ezÂ$W=ù±aœf9‹aÚ ‡MbÞT e¯Z¯£¥2ãЦôJ‹)´ +$8ùv¾…W £ü,˜˜òØÖÜÅ·y‹vº‹ÚÅ„ŒrO7k·Âæ¢4{®òZ½wX„b ð ×®WÝÔäwS½'3z•[¡ \.”-¤dU}9•— ;C¼6pØá Ý8 Õì|ùUφfdZŽPô4;£òÏì5ƒ2*!³`Ø(EïW!vëãÙêØê“мåýl óÕ'c*|Æm`ë>(Â:OÃŽ'Aãå[Êȳv•ü¼ôzúVçA#Ù»Ü~S\shK)» ð) ›Ï®'m+^Þ4åK9³Á +$dê*ã¨9ÙlárÛ«a‡„œšˆî±*óÜÄš>Ï!ôÄ^ +•MÔä7fª‰|'ê ÒË}=:¿à7l}±I<›Uhºâç$•3ûRPë€òÉ\ (A[™’´þécéÇt*üBŽî·h[·–vU‹KQõžÒž™Z Ù:ŠüÓUÃ+ò•Ù-3zÿQC+šñ ßZOÒX™\Ô¡µ$§U«æ‡{*EA„“EkþèöÇd†TåwŸYñÁcXå1Î0'ó–RÜÍÐ7yWÇkbyké5!Ý”I•´ð9Ô<”á¡ )€úõÑW®ùš‰ÊDsœ,‰$h³æÕúâÏg¤¯‘¿«²XV¢\pWí;ÀÃ"‰ @SƒÌ†È(s¨´ƒý, +‰½G@R9ë¶b8“¿ÔÜFMsDØö0FÛ¹î}ŸÛ†àÖS’?G0Òª§½dwûq:»†¦#%ÊÑçw—YcUwÓ-í,1¢h!„—^yÙÔh7õ¨ è¸×¸™mxGKâl•ì‚—ÎÌã·VŠÃ©Æ‡WÀ@ŽÃÿ¦½lzâ½+V¶Ã¤Q®2HóÜíô|}`iÀqý³ºDFÓb«Z¾ÒKšÎÍØ+¾qròÁ¶}3[o±*;¼YNÅgxSÇU¤Èܯ`@ÙÀSco^]$Ÿ%1@i2äÕC¶ÕïÑY·–·íÜÎßNß—AæÜ„úC¸ƒ½ÃÜžõl%ç’’¬ ËVŠdT†ÓÏÀl,Æsg-s&vœ ’RêÔØMP›aUà|¢Fd% ]*4 öF±·dí¢Û2-²Ý¡(øË~íë“vž-6kå-,W»ØÝŽx”ÓKLt$©Š·‡‡qmó·ZÇ>õ²´ÀßH½rz"‹èhWñ ¤–7]Ù4~Äùl¥cÔ <Õ_ Ie-£»‰|à¦;QZ2g{ºÛjý®Ï-Z<µÚõ!½€Â= “J¦MŠM2—`kàÊôáŽá’¬qùÝöýå‘ý®°™ÓdòW%3è¥Há¥Â }RS–”>•K¾çÜæMcc°øÌÁ(Ö¢ÆÒcÕòAwa× C§~-¬BšÙÐóL¼e¢ƒe.¾¦§ºÖM”2ˆ¹¼ò‚U¥0'ýþƒe(É“S ¥¨âvNê=žÜS 1;mˆP^À'ջ͢Éo¬ +^ —§””šr'Ðáv҆¥t×lºTÑX.€w~áÔjÉHÁÍ™Œ˜Ó)]Èî¯CPJµ®”¥˜ô†¦†[b-Þ†wÖþû!¡UžÍfYЭB²Y¼”?‹L˵…ÁEßDýé³xUÚR…gtl[ÔŒ·>Æ«ŒSä0 œÕgX\}L¢ñµŽŠ^aŽ£ƒ4òè€ZùNâ^„~»¹wA^z6>S/UàBÎÿ×]îƒÿ¨_eíþ!ËÒîEˆA $……C<û¦ ¢³ 3´* +ô@’ûhÌAü5»t”·ó*È0šd„7qrþ+£@ù@Ù6í<Ç ƒýÏ-f)˜×!Æ ¿ Ò1dé…U2wsgU«CbÛÄŸ;BØ{——93¹.k¾³C'ô]×zÆæÏ6L:”IY $©ò¹ä½_XqLðÒó.Vë|[Äšv5ØÁLê-ü`»tÏcxëz ˆÈè,âkìØB9Ö‰žüfñ¾gXÕ˜¨ÇLŸP’┺Z¿8ª-,/Ýšnûž2¼c’|ìN;âIóŸPß"`t°š:/Ø\{À ^í¥˜f6Ñku…¹?\#6õ1*-m4±à«6¿³†d€Ì¼LáÁyTŸPœ¬M¦â#¸a'õµ«ê ìM}\z·Ü{&•Y˜É'5[Pqƒò‡&L@ÝCÛöQ?ÁÁ;¿vô]„ÎvíŽ]†HŠÜè!f©ß¿1$È!v#™ªË£€à+ù¡£Þß"y×RÐ ´WÕçiB‹`ÏÅ̹œr±m+½× £+ cþE¸È´xBÚäìܸð¯‡P,ÆlÜйI€ö"öG—|Uö:FûK«-ùµêÖîxÐÌe$ݨւõ»r|ü+XzÍ]F¿c&’LzçÂuÒMüºYÙF }¼¯Ö‹<›±úùHÔ5ŸÙK!EŠ¥૊cÜaÊ®÷xk=;ž¼ÒZ¼ë0y­ü“çC–üžmßâ0ÑŸ“‡çpu"âA¶Dl%Zâ§+5}i·:¢Õ'"Y=¸ÞX[˜¿xfAÊtaåUH|óƒ $¾É½[ƒ©ë?â +\¦7( pÓÑ¿\Nf~G£4A+ÛŠ?‡n)£ÓJ…{’Ù"51•“®}"ôX¯ËÛ&Ê)“)dÙ-2BݘwÑ7âÅG PpVbÓÒå0 „n³+ªhcó۸キh™Z.”û¢)õ¸[qtàÚƒu©Y#< ê»|mö5ŽìÌe*çå…«ë°x. {òÁr”jÂË8H·á¼xÐÙ(.ß ÍA3ðšAM ÏzKä£qbݹA>–l “³QŽúãÛ¿è%‡ªé‘{ÝždXa&D¹ˆ°wÛ„ÔWø +Èùh÷,]Œ^\R3Æ^ä–9#鿜ªµÉU Ý8†ËÂ!Ô¾d´U¼ÂÝ¡‘DXM&[ôüŠ>ì)‡!Þ9Ê1iž¿©ã´o²ÿ²k$êû•̰Б|é¬Tý3.›ÿ¬r¶Ü GC~-¿žºQ޹eÖZ*!’‘æ¡Þ¨Üpÿý®¿l~€&ß3¤Ì_å%ì÷Ê_#])õÞ +Ý=jx¾²L¿|°¨iÈÈ<$Ä€)fž¦ZRøy !hâ¯}èJf[ÁQM{ü”--–U‹#»‘™ŸOؼØþ¯LxЧªó|ŠƒŽDÒ³Rªx¶yã›&¿fðV°e$ëÿW…/zÐB¶÷Ì$¦& :ÍóÏ(K¨{°$’'·Œ2á¶“–‡]Ý]7]10oRÜà:É Ø`0©oíq¢~^Õ¸0„\oœ˜BY<=¶ôüÌöû~wô×¢«=¦æ×o»Þü¡¯¯›½+Îèecn\úuzgÚ·I"‡P_Q<¼£ÝXxOIrâ’©²/`è¤önfÚzAW‰¯âVÀáeQï!å)žÙA+¦ls œÍeÉ„„%¬žs)™E aïÉàm_æ p„|ƒL¸ÒÂÃ&À½ÂØ^gCLÏ+Ͻ ï·¼‘p¾®¶Úåº%1õÆIðqãä‹™ÿ â +|æŽY_Œ-Ú~°Òˆ£•ŒîŔ݆ßCß&‡9'py Öî)þ¬[›Zx­¾EÌ_¯(¥"Ïð|ÁRM‘Ï-,œi?,9R/Ò'¼â ëR°Ä€ªJ{E‚—<<€6tþŠ7(û-Ä3ÿ»c¥û2³…=0˜_q8ã‰ØP'LÿÇ ×ÿÝŽšuk°{ ðS=žö/còñoĬ«®‰ÎvÅÖe€¦aJÃü +ý£ìj.Õ²e·khH0’·Ó%“/p™5˜ƒv0ki7y¡„Jwcêå»ü€Š½l’7;JëfFÛ¯¿^øK—@‡Dd´R—'Œz‘ç¤7©`rºÚytSÕèÕå.™ä¶·ü¿ÔVˆÊ³ÜŶ$pA."¯Žlé‰÷\Š4x_¢ÓnßúŠ%GÉOÇD·3L·ý˜‡¶D*ÿ3^\WWÇãÌ|A×AfóPÑíC½óü6Oø5Ö‘+¦™ÊK”R„$âN"¡2±Š°åYáˆô†ÆWD@ÞŠù4(¬¡àŸ0îÕ{­)è+%ÌFºÒ+¦ä©ÛÐlÌ¿Ï2Ì|ï¾ÖÐaž®¼dË®Èý_Œx¹eI¦i½yÂè6ý×èóÕBª­]ojMk ‰’¼ÈÁòUEJËuÂ"ÑFí(àCZ‚Š/ïóñ9Å£ººgµÎ”Ïìå&ÓϹiN­$„·Ç:!úný%Z´;W×^&£ŸçíÖv¢ìãUF^á‚]Ä…ŽgfÌp;dù` ÄDrÑZÐkµ÷^€cäiãuÇÓÄ}ÆuSCÏp–Z×ñsáön#.ÔÛVFK)À¯nYÌGþöRº£õë‹hÎÉ(Œs;‘ 4¯p3dvP2£3'ÂB³b–ð5ªfgt¦y¬PÃÁ\–$î÷ý`¹IǤɨJŠa§(Ô¤ ÚÒ6ºDŸc…*´a %J0]ç¸É§êÈ€º¨‰¾ HëU=úœtåqøŒ|XÒý‡Ž† < 'IbÝXóŽÅì»gý«?ZWÿ=Æ4à —裟N¯#l4·Õn{¥ü0ªytà+à áB~$ßî£ôà8-=® ˆˆû`ƒÛG,)ÄñKðVÿÞʘV¬)úÑ6°”WÒÙR´f¬Ž¼H:—Úb²…<õBRtàô6§5&L¿ßáPsZ +=ô"³}Ú[Å…»û`RæÔ¨Wa½Š\kÖšø˜ŸÝ “T… žßÖ»®‚&Tc}• ýèšÿEÑ6ìžÞàú“Í1H@:i«"Ýßqd/¢BVÉ"e³ŒÃÒÎÇw?L`ý’'#"–ÖZ/õ_—Ÿ!¹Ìµ2ÂGŒ6!ÿJH€Ø«ÏP}/“#DÁRZXŠ¢4Q’FØTxtÞžcu"õ<1ÆSPKNÕüÎ'f{9MA‡¹Ð¨.î‚ |ÌD¨ +–|LX„¼gsNvud"=]Õ5ŲYâ‚o!ýÆ1JTZ‡UÁ Khò ¿™ +Iⳡ­£÷UaŒ^0UJ$‘xaӉͬé-äØ`Ë€²†9!P0µ‚1BE ÓR¬Á³œdÀ´7ËÉc½ö7 ¶†X ^.û:Ì< þ&Søå#¯RéU ÓLPÚè-_àsnÕdñåg™é|¾Ï–@ ÜÙÆEt.[ãª6……IÝ+'òr˜]=‰¸ŸUÄzNPëÃ—Õ LߎFºJ¼†èýýJMÓ 2ØùhÇTéa^U†®cW ó¾c~­´!¢„ìñN¤’PÁ¸d“åcwQ%|g Fà®Ø0cAƒ¡w¦íQ çú?†¡üôþDo=d\°˜õý²’ól<Ü·ß~4 •†ØíØúÛÜnß=`¼LAgçÂíÃ' º2‡ëwf¹ ÉŠÇ󖹉aE¨­ù÷›@ˆ‘<÷†½`f3J­Ã¹}WXìÜîÒ”(åe•´Æ.+bOKC˜[/¬Ð³UqšC]dlBâôÕ¼%Бd_ÇÉ¥Ÿ×UÔå‰-öÑ.Ìv#ßíYRù/…:Û4«ñfêíüÏ•Ö.eE“…_  §¸D®øÌêØ74H£î=³«U宵ù¶‡­‚‘ÓCó6`BP&¦«ÜG€ùûƒ›ÒýÔ‰•%Pôç,s3³z0Ï~_ã™­BóaÑåŽDÈ+®þ4æGJ/ô K¥³äRc¿GùÛ*4Êœû۩Ϭ9r]ÝÍÎ$‰Þ¼6>—Qæ\è\¹ÿôÒû³½Ý°qÔy?‰ùGìÀìu(}-çIÞåkY¨ÝÍ(šç’ØÙÿ2¯6©-_¾9žÞºH¯@6êKŽ#0–̘ëŸ5ö@´ ø|ñ†àù%£œáüQ¼k€ƒùF1Ú+­ƒ'xŘˆ¼‰þ2€†Ž°c¯Hæ Z ;¿òQ嘲Á"Å Æ,O<›ëÏ#@ GÝ@ '©ßåÓ/AË–¥ ²°\cnƒIn3™Ìèiøcªz_¼ÕTÜñ©[)’àtA²=ÂhŽR£8·ØUë^=Æzº©ùQU¸yÐRqb\lÚÆ&ö…Þ¸hIÜ‹šò;žú8u÷¯~-£ŠD) ÓíÀ@¾dSAšæ-W©å’Øâb!=O'¼Pºü@-KC I®sªÙ“t!QåvÍQàBN9FáPÂuàŸItÆ ó,ÎèÒË:Û}Pª–­*°Ú!ô«7wwB¢Sí‚}`»ÚÞ;•'ÿ#Ç,Û#4®Ñ7ÈЬ9dèuã}b¸¹#zô5þ¾¤»µ·¢&Xéb=¿•ƒÀ](1²bê¾i1öKço‰~¬²«`þ9,\K °˜³P:eŽ$®ƒèIϼ"£,d”S—»olZ•±ƒ±qÏ–([‡® —¾`KͼÐýaF­ŒM†‘à„¸öÇZ9§Ó¦~º:û«íØvääù·Rš¢ù®q­Û†-|‘\çko\`h,·Â«»¼=@1 £®P1‹±é.ãû*àrXchÞQ¶6È€Íå’uÈ #Ä!°ÿóÝ-OqâÙ6õÉÀø÷Ötu\)Jí6q+ˆ¨÷6¬R&ÕA(„ŠùJ)J‰!Ûh™K„Ê0Ú‚\ˆ‡b±Í‰-×kÑ¢/p]®™—Lž| íuS‘äçÿü×[²ðÓŽÌ*ò‚²õ<âJeÉ£åúøD›<§H´•*ÉsžÉÐ]Œ%¯³Óu¨í®³ï>¹'Ýlª«DPÆAeÚ|þ. j ÒàË`RØH'k  w2ƒ5MMúRDjâÐ0 Ño·èJNæHÞýÂüjc¾D + Nèñ]kƒUFÏßï$àœ8÷!}©ˆÝgÁ‹¨Á²ëá‡4§v~ªVA:|KwÐgÕ™ë“çüóÚ\È0í)ú‡ ÷SPÄ:äuÔuäq;9PŸ!4{¸ØÿÓ-YYV¥nŸí¾;¢T¨·Ù÷ìyä‰Fï¥KŠ‹<>Ûüüb`†gÕ¢û'¿öµÊ³âH~ku%6óE¾è¦ïím†CùÁ Á£"½~µ$éOxf¦%+4’ëv£˜ÝÄ7G®6eTÞI]Ñ7”‰]TÈ;AÓGḠí3Éà߀$*wAõãC¬ºÙ§T|èúöüT¬ýu%´ õÛì×·mRe›d™ò—°\yƒMUTàÍ•ÇS6Æ~Bü¨Ÿú€T¢–_b2Û¦ D+jÖi8˘߀äý,¨³—#‚d¸[]:dê#§}+€< {¦`®ÿXÀÂz’-9+<_ ‡•îhö¿øÀ‚ÍÞñì &€Ž)dÁ>mïÒu/åH»m~ËlTtdíû÷SwmùÐÓ™­X û%:‰ñ’®{L2[)>†[Ú¶£mp“×uB¢ìûÛ•·æÜè^€7/$Yp~9E;S5 +tàˆ›æGÏvNÏ)¼Ék"1c™íª%”¡b=‚ÚšÁsÊW(ˆÙ6ô±ÿ‹Ã z^µ™ÌÓ,,Lñtd!2Hî ÒÖA5\æsñ¤ÛÈÕCãi ó:º 2ó¬ÕÀ²Ñ[CÎhºÇg\`¶]â+X°K…ƒK÷‘”$[ý!?õµUä!ŽßííÜ7`}³*y—‰NAÅøJúå +ÖÙ­(£­7rß¶9(2¾Íóè½:67™èØõÁ ùßÃìJèÀçÖ÷²X/ZA +ûî‚o¤¾¯ã¹Â“K}_ }‰û‘‡"#ä¦ÚTÎÏ­vk7SQU„ð†mUýQ~nÐ>Æ ·ôÀü (‚«¡ÍæŽßŽz¾`é£VЛg¡e¿;l»M.¿ët‘R²ƒŽT°qÞ’³|”‚Eßi¡˵¦ŒLÄTÔgÍãÕBqAKAž¥©éĈߜÊÒE¸)âåÕ4džõMÇö0ÐN*!.±ª¿+a‡¼nömûkµµ“®“o_ädâu˜0BzÐ~³Iý?—ŒÄh¶ãwk¨;\_å+î‰ñ+jˆ½^ÑYá°‚Ý•N¥]4®ÌÔ8Ì@ÑoΙ;ÿÊé4ò:®]RfMÏw刧sLÊ“*Ãõú.TDÅ=t'¹Í¢p#6}9CdæŽéÝgÿÚ× (xÍEߏ}ÉÜÀ«ž‹†¤ó’¨ÍdÕYôÛÿ\­4Vï˜_'%ÀÖgð ‡Ç+"ŠçÊ’Ã≦ÌmÊk‡îÏ@B3)¤¹`”µ·%qû܉ÚáH¾CÇhÞà ›¶…}*挦æÙê—„§‹†ÏU¡Û £à8gÆç ‡Ãô0-ƒ·ŸÎü!F‹gÑAZž&ë°ïn6™ v7yØ‹…Æ nY|èÒHa†NŠ¡f8F>²¦%Ï¿KLÄzjàÿùDìéöꢈ MßýßvFø2:â´Œ‘ì€f©àÏRT—-ŒÑkaôûåT½'xk‡· À^=ÞÊRuÌÿÔm® ·ë·Ùº× ±œ~Z3òç® ÂæÕp¼#~D8t3Ô»\–7+)À¼ùžý©éǺlÓ×ÐgO-J‡? Di\-[¥ÉÌpèªIåô¹¸ë€ý”̱ØÕ3Ó­?z¶"Éÿ¨SVGQsYƒ1C©X±5®Ýà*¿Zª`Š9/õ.wëÚ¹Rï¸<'Nc…Ò‰LÚ×¶â·>(Ígºæ7ǘ‹©êÒ'MH•ïîÆ(64*Ž À¦WÚ{4dF#kª\@ÈY'\‚¼»Ëº¯ßrûî$4úå:ŠF­¶'Ï£› €lð96ˆoý‡±èâŽ$²lå?þeüRôžÏ$⬵®\"æÝ"·«°Ôd?_ºwºtZ,X +éÔ7 +â*]5}èœàL\6 âa+Ì×·t´’ÔU ´“`‚33| ÙGK‘•”Å`Ÿ© ¶Ä@ KÒ_¹¨ž÷µC§¿Ó–wä>à,Øô€HmFé¿ãtÊ’˜pHC>ò[ï¬ÎR‹z^žnÙ|nºÃ87ß@=Ä–‹-Z‰Œë BX.;!ëI èJË ÌtHQ•`ë¥Òu)?Æa±âºà‰"HÔ‰Ô4]Ô'™¿ÆíûÙ±vý‡0Oob2O‹g$ÓXFžÆAÆ 1çi–ÄhªÍÑž}n—Њ$sñðƒë ‹×Ï˜Ñæ;S|á&íÿ!½dl¼è¸x¼Å­9Ö¹}ö®£-3L°9›(Vý}GŒaÞXݾRfÜJrÃËq+U…“~Œ¥›ÙÙYvUæn¤Š5OŸo@Œ®íÍ\¡àçN‹b:òfrÿÕ+ÔBVQìÚôæ ,k«V Î߉ºï»t>ŸÐ:‰ÚÅÉcƒÚzHd1Åȼw@ßZÜ ªSyPôÝ"-0S%Ç|+•Þ€àÀkÌuq\} ¸ +†§w3oJ ¹"+!Í9ö¦-0¸ë]%­7¸3•äýMT—Ôš5»íã•ÿœÀÃZ˜k¨/Źæ{Ù1MÉ!t1 Xèêvpu +A>Ô»(Àïmç,³¥Fº†ƒÓÍ'‡Âð´Ë+ÞŠYÂׄ "7]9‡ÓRuÓ¢ !¯Ôz¬Ù|±òúc{EúË.Zª “ÉŠÝ[¹.C; -2‡Œ^»EcuÃazÉÚB5x²áòvñ,ZÑ x~¼僇|h½Ž_é¤V¯|Ÿ]l Z°q%´»X½k¢ÇñkŸÿøž\ßqÛ&ð¥˜eÆ´ÜXqó»T#O¦‰¢Ù®XÏkÃ3Etœ3–Eòᡉ}{õdd|©Ã#“‰i’7£$ó?h:XÅüGõü]XA 燘84—c]Ú2¯PÇ[Žoj`ð|nI«äY@±K ¡'Þ(Q€ž(ÁÕ2JBȾ:ïõŠaÅGË“kªAd’®[6š s"vi@vMd”ûÒO‘)&0yпåv\‘éÝ’a`TYºõ½ÕÝš‰Ì7àÆ+—áÇ ûueÙù/O™ÚD¯‰ÙX½[Ðeì!?yªÂTÃÛhÔW|õ鬨vÝ=|'Êo‡™re´y5‹Sð„ë’”ÑÇÔº¦ã³$œ nð¶ãÖ(¿è¯sp–`äœIÖišéTPÓŽéšJÍÍ(TY’7·´)Ä`óþO|iÖÁ“Ýþ7B\SF›Ôž"úŒº¥0±V>ÞòÛ>‹À+>‰ÅÆ`U¤_oe†•p¬ _´,&DjÑl¼sƒ*1÷Ϋ›ïçðëÿE Mkײç6C<îÎ H¬\ᙵm€zÉS*#"3òZwÖì0ìy¤…¨-Ð$‚/Þ5õÌîcu½×'Y͉-T€«ÌªŽ ¾Pù>ÚŒI¯óÍL|¤p·Wšº26qè +]Y ¹ãLéÄ:ä0¸ª¤˜—Å ÞÇJ# +>b§§ {•‡ €SG:" +tÑYK—ßk˜ º˜ÜÖ뤄Áùfz`OËí$Ã7ƒ%g'Эù( ¬Ç.>‡¯ÿ!Za1¢4t]o¦§>ï~I¦(YDΤØôYÄrNo|*Î +ÌL.CîicÅA‰G¡‚ć¥=tÑ¢ã®GÎi¡¥RÖ15 Ùà/êÊ.r”Öx‹án¦-,EötRdå/Û^Q + ¶i5'ê´_ÑÝs’“€ä»F¾èlë±c&ÙKBdÞjƒ£Ç½vFü¶`¥íìcц;4»¯U»Lµ|< ¼òë²6Ù¬ ñßÁNSþ‰­:fNw™1ÔnRfºªH ÇõÆ`ÇÃF¥Ú«s$ø¬ú®fO“ ÅãÚ€j„µyun’ªyäG¿‡sór×äЀ|Üp›ê†õ$=T€“5Dý +20‚H– ¸>lénÚƒfK˜oI´.òXæúSÎGß²§šûú]ç‹E|Gyû#ãFê´¯LoàZçëø³½I 7`|Êú!6d”9þÝYáÌi}שO·\k$v}u¡›Î ¶ +iPÐÉ£µn÷·ŸžE({ïºNôέiuƒy…”;Ú'±zX ãцLfö 7ç{Å™~ ;fEý <`ºV˜àåÝ ”½q·`Áïe؉ fNñ×ß²LpþPÈ© üZ#2u ꊂâQ…æl"K¼z.hXüì—+K}Ÿ°Ñ¥ 5òª»Èy¼ìÙ½:hVàct1'ÏÚ¦òƃ/ÉxWczV¾Õþ8· = •Ytææâ +º³Ol¶40ˆÚö+cþQÎI+í“FÛêXþO¾ve˜—ž³ +Tª,vJ(¸Iúæï*I›¢²6ŽM"×ÿÞø¾ÙO›†ðözuü+4™½$t+éÍO¹z”)W„EêCB”½í9²]¡å¾¦yÂT ‡½\-çÐÉxýA7é7 +ö¢1Ó¡ÒJ ÆñÈ jë;ŒaôkÔM®€CBµZáDMÏ!‹—{Ùß)l s, !~Þ6˜ü ™:¢‹S Ëè¯~mý_—$M^©ˆlé®&êƒÁÊOІjß䘂YçSeÈSWPñÁC±W._¿‚Θƈ+H¢ ™ök麙Šð ©ÍA8 nõ/ #ü,†šß ’7I¼\J[IÁY©ö8ìÈÊû˜µª¸ÿÓögIl¥).Êî” U )°ÃìÿãI üfR]‚%RiÅ×D¶ž{ +f‚vÒßxÍ+/Óö>(þÁÛÉ¢U¿²l“…ÄÂ-ùÞô`GÔ*çaÒžz.ak.|ðÅ;¬ë6žSYîyº&Éçå'f__×Hm¦µsÿE€€¶iïdRŒ5ÐÜàX×;|—Ó¶P. ki}T5øUùòù¹ß¢MÂâùëÛM¢È‚ÑæSÃË"¥]­ì%n3ëªb¨”•2›Q÷Ý:ÎMQ¨·Q&‡]²tñÿ|áŠèb|Ëo¶"u¯ßª=Ã"mjvjÀÈÕÇiÆuA4(†"5‹ jÙ)VXµ÷ÛGŸÊáGÚòá¹Ñ¡›a“ôL½Ò…;Ñ=²;wjÊ´d6HfM¿-ï+Ūû!²ù¹Qüë­ Ó”.g+],è{ÅjâïTª´§§Ÿœä0Q±o{_ÆPiÏψ'ìw’JÊJ¼áÈþ„U¬Ä5ïo +,°|ÃèDyWyGj{@Ìe2Ê6úúLÒ ëì™U]JÔ€%çÏ–”½SéÔ‚ãùLÊ«nt­­åñt‰Õ?/a¥r¿„¾üËÄv8i +QJu%SoPf6jI¯d+4¬EÜ¡ZH ]ÛŽÄè–·}®ˆ°U$fl/;êW(IÜÅANâô«ÿuòRµI=­>ËO.Øa1½‹+™ã<ò‹Cmþ⤚áVÊ_Qsà4rC ÆŽÑÝt Ëh‹ÒQ>÷"´°:¤$z57ìb·—b‹Å³A£ì*³ešÈõÅZ}~ Åþûô™ÒL0)-JçÅBŒ>ò–Cv[Òe?”¤È²â<þAS¢K ôeß¼ÉïØ6?ÙYjÜ[”^ª¦¿¾»(mœw£ÑØ%tûU\oDxvãÂÇŒPãIô›=ÃâYˆªËÄŽÒӅ鮆ç°jÙ-‰åÙnq0”rZZm§ª¥A™-Ä…PR°T®ðËFn°Í­8¤P8žµ/ìÂxC1˜Ï€‰Íåâ½"³Ä“.iÖ~“L‡®jðqóŸw±¬ªîîç+ìôqÚÛå™ÞðßÐð=8èoøV°—î$ÃæïN’ ¢Î §fºw”×]¦“eŒÈ×Dl Q·2Ó›w­³´-zËà+O€ç+ðdëQp¾ÒëTSTû»ÇÞ^¢MéÀ½\‹P•øO*QdcCé +c< H³ÅÁ³êíö߃3ð-x +e†ZV’^üªW[ùNó5,¥Èù®Þy:CýŒ½PVξ7c¾qCçZ‚Ö³¤iâ½(6£Î*û{‹ï`††Áå–Ð5Îéà÷Áìéí„ &—cHóÇÜ+\2grZßmnZoјåL˜4kÅ ?>OÝg>óO +Y£+òS~õgAÔKNæ?øöžl¢í–‘ˆeâ=l©b&X“’y³  •Ê>ËÂ’:WµäjÄ™I8.:ò©D^f¨›á°ÌÕ© Õ¸2,Ð[õávºwZ¬~$Ž®„Ÿ% ØöQ »6¼¶ì¯‡Å Íc›u¦8 «X!Vc·6g_Mþ·^l@êA§XXQhÉpÊÈ d4¦@³±„:~¶6¾;%®ô·‚Ã%ÔÚ0YãtºÐsU³Ï~ÅãX9¡aº¦~o‘ÜðfÎõà@¹É”ƒ#¥³¤m´É.…aÜ ¹`ñx²Ë«Idp-^½^,,x»¹64­/MÔ|ä«síÉÍ#4 us+Y¬þ^ÕE ¤¯ä`[˜Ü×gŠØü_^_ö UAçåz¢ÿè÷Æ_5ç,Ê ˜Y÷Œ¾Ö“gëσ#·Ê€Fh|¼ÊIΧ¤¹lÆP/ÏÔrR2¹°ÿ­ðjÿ$w¡)§™8̰³¹¦3T·~  ØƒÈ/Í»‹S<Å0š‚ÎXJ¶²±Wð^¦„S%ÚUI3›ÞZœ!¶˜7‰çv¼5kï>áÝÑMæÿŒ{8îÆ¨sÌþ’Ž’!1à ԋMÂQÑöRbæŸ3áë›SQöó؆vÁ_€þp&^H‚9ÿyÅý‡,€Â¤~â}á‘W´Çu–PŠñ DRŶÖJ©˜FØíÄÎÔiß«©Ö ¥˜« ·1Ûd€#Ú¦‡^žÒVŠ4.YܩٸI>$Œ0hhW·Jùõí’¿3iëÆš÷Öi?\Š4Šà¹ý<Ïk©ÙšdBd?%ØA‚2\9)Fô(ãw>/04”táÞzEjU?é’ £Vk–â!†JE6/ÉÎäo”¡NXþ.0P­1˜0X¯rW‘ßýKíß5Àmþn½£k~ÿº‡QÁÞèq±qZäï +gúñ"Ì0'J»P5qx’»“ í3ÌÃ]ëåGŒ¿VV’Ó‚ÚZ°TØëÑèüYŒÛô`¼…$u0AÅÍÝܪÍ*À½jTJ‚ ø¢1Á4ž,7%„¤öÌOò˜xß6e1 xñîjÞ~-cÎ;Á7ïü)zb$ƒ–þ ÒRÄÈ5Ðb¹ò×u› û¸óuiƒÓàÎdlmâo¸ø÷`×{C'j´6erãƒI‚gÎöägõšwÓçxݣхø†87ÝC”û"9CúèIˆp2—¢G$ÐCš:a,1 œ‡k™ +ù»<@¹°-Â1PηàKÙ5´­ðEcIöþêÔ/æ·ëÙè>dy<àQÛdŒ0g—šÚïÝ•‘®ŸD;ô}üªìŽÙi]˜¿iü«õÆkŽjû[Eý(-ùG‘Tá‡Â<ÔæVUÂÂØugœð¿†:³f”^Ÿ"îãScv-6­ï2þìOÏÒ<†O)—á:@sOÚ2ÁB\Ùº¥Ž3QužÈŸ¨[}ãàT6HWC_qüU+Öª M ɧì$þLêxµß‡ˆÁ #m°)¦å÷™äwÅgp;ð~0 Qo=¿-¦ã?ŸÔ˜tö +¶ J9H²aÝÁ åÚ³kL:·\’3TK­’nÛÑÓFø5@Óè²B¥V«¹ÖÑÃ縑Úç»E®Æ²S¡‰ Ë­†˜“ðþ¹Ã«bûC`é'J–;.oOó“ޤrëå,Ã9麘àÖÜ#¶ ´é âyšyD#‚Ø$ Ð,ýlZpM¼(ª“BLÌtÄ=ˆg9çŽßn'½Àå¬AA1º‚ÔâÞë÷NôUU, Ê‹1ëßoQŽQ ˜:kÎ6žöѾK±U¦™9©!·<ðoJbL~ú¤ð½Jð"‚w=C›Ä‚»ôW#ŒŸûÞÈrVŽŒ6n«ôÎñ ãû·59f÷Ðë®ÐFÀvéÙH~…¤[èÉ€"zVŒåÃo½´¨ _¨{Ädð0=s oª5èCNŽî]çTȤý¤ô¡°• Bvä*–¿"ïkñIVtGâlÉŸ§6ÑT¼#ÕUƒ¾èìúª.ñbïÀèâ¢ã¥b+F2ãÍóƒ­ + j\Þ|,ò=¥Ýžú !”‚²zGQ«BCôä^Œ£9ØuñA¯–|Óß±ÃEË,çMÂ9r(ðDCšç™bùèõÁü&{ËÊÃâýý“ájZÆFÕ÷Z_ø6?”ã¸æqÄA@ÙcÐq|ØÑʨ@›äÙDg;Ê5”wãÝï’ l©`âl´Ç,ÕËÓRxÌ»k¯:­T_³­R7<µ»;ß5ʆ@ÅuÐõDÜ¢…Aˆ¸½Ž¯ 3¯PÎû+³`£Û”æLñ¢$7/+½7Ê’š“<†.•ÕVl%ºŸ”R½kTµ!ÌT•å5GøEÃ:J€¿ TÛËÑ…£îY°ü»Yg‹Ù¥Fr¦©MBPúzìBÕ Ì1½ŠÜîÆÅÞî_êó™ÙÉðfÕ@<às*l~©s …zèã¾ÖjJŒôß)©«¯HìƒÚ°~Õø“Èã¬Á°˜zɯ°,ó³´êd`7)Ë«õÞt' §Æálª[Ò4/ÛwP4¥tÄ+¢ò–¢–·‚†±D¨¯ cËuÄ5°BX¬T¤Pw)ê©Kï‘ÚthSïže?w´x/U öÌôt.yÆÛe‹ye¬pPëG(G#mcr—Fâ@¿[.fø©®»ÑÈk%^Þ׊R›ƒðßXB8²S¶ +.F[6Aë媳0Öâ¸fœòZè[…‡q'Û éþl;Ê©$|rˆ,±´Ð\iŠö}q^\Û-s6þÓ\Mpó²¿I‘4>m^3“Z¹Ý˜på“b˜4MŠ4µ¿ÿȳ'p¤OŒ~žÛPªëºT¶†$ÆH<ùD~Â÷@Æ' RÄ‚x·%(Âú¾.õƒ>íÃDz-a“˜Ø½!\ñ[X+bc®/œ'þ‘‚–ŒäÞBÜÄ6u+?´ P‡îðÁCõBö»9‘î³y¾àvâA`\ϯ2Ú¿9…îajÛêiLrûÎr+±–~߆uøò¬f4lÒÊ!l”ä¨#¾´ý<¼P…Ô©ñ¿±>!öB¸ƒ¹ä_û_XCÿG&Û­8a/ /çê‰ùMïóä¾·óê‚“çG¨L²­Z+ÅZ•,qÀ‘ èjò³Hý´†Û²ŸkKƒËÍí_Êi,ðÏ ;Ü9 +endstream +endobj +859 0 obj +<< /D (subsection.6.2) /S /GoTo >> +endobj +860 0 obj + +endobj +861 0 obj +<< /D (subsection.6.3) /S /GoTo >> +endobj +862 0 obj + +endobj +xref +0 863 +0000000000 65535 f +0000000015 00000 n +0000000208 00000 n +0000000876 00000 n +0000014395 00000 n +0000014429 00000 n +0000014477 00000 n +0000014551 00000 n +0000014626 00000 n +0000014735 00000 n +0000014986 00000 n +0000015059 00000 n +0000015132 00000 n +0000015241 00000 n +0000015351 00000 n +0000015440 00000 n +0000015559 00000 n +0000015695 00000 n +0000015807 00000 n +0000015925 00000 n +0000016020 00000 n +0000016182 00000 n +0000016361 00000 n +0000016534 00000 n +0000016709 00000 n +0000016889 00000 n +0000017067 00000 n +0000017240 00000 n +0000017413 00000 n +0000017587 00000 n +0000017759 00000 n +0000017932 00000 n +0000018103 00000 n +0000018289 00000 n +0000018449 00000 n +0000018610 00000 n +0000018783 00000 n +0000018938 00000 n +0000019150 00000 n +0000024775 00000 n +0000024997 00000 n +0000025044 00000 n +0000025131 00000 n +0000025186 00000 n +0000025234 00000 n +0000025323 00000 n +0000025386 00000 n +0000025670 00000 n +0000026002 00000 n +0000026254 00000 n +0000026434 00000 n +0000026638 00000 n +0000027002 00000 n +0000027230 00000 n +0000027474 00000 n +0000027718 00000 n +0000027986 00000 n +0000028238 00000 n +0000028586 00000 n +0000028950 00000 n +0000029106 00000 n +0000029309 00000 n +0000029512 00000 n +0000029711 00000 n +0000029911 00000 n +0000030096 00000 n +0000030368 00000 n +0000030641 00000 n +0000030917 00000 n +0000031163 00000 n +0000031395 00000 n +0000031713 00000 n +0000031986 00000 n +0000032223 00000 n +0000032483 00000 n +0000032838 00000 n +0000033140 00000 n +0000033441 00000 n +0000033699 00000 n +0000033952 00000 n +0000034177 00000 n +0000034350 00000 n +0000034515 00000 n +0000034702 00000 n +0000034893 00000 n +0000035097 00000 n +0000035326 00000 n +0000035532 00000 n +0000035587 00000 n +0000035609 00000 n +0000035797 00000 n +0000035984 00000 n +0000036144 00000 n +0000036315 00000 n +0000036502 00000 n +0000036690 00000 n +0000036878 00000 n +0000036978 00000 n +0000037000 00000 n +0000037046 00000 n +0000037174 00000 n +0000037254 00000 n +0000037301 00000 n +0000037430 00000 n +0000037502 00000 n +0000037665 00000 n +0000037850 00000 n +0000038024 00000 n +0000038199 00000 n +0000038369 00000 n +0000038536 00000 n +0000038698 00000 n +0000038858 00000 n +0000039018 00000 n +0000039232 00000 n +0000039394 00000 n +0000039562 00000 n +0000039725 00000 n +0000039887 00000 n +0000040061 00000 n +0000040227 00000 n +0000040395 00000 n +0000040560 00000 n +0000040723 00000 n +0000040886 00000 n +0000047474 00000 n +0000047720 00000 n +0000047890 00000 n +0000048062 00000 n +0000048237 00000 n +0000048399 00000 n +0000048569 00000 n +0000048743 00000 n +0000048923 00000 n +0000049096 00000 n +0000049268 00000 n +0000049444 00000 n +0000049623 00000 n +0000049799 00000 n +0000049978 00000 n +0000050152 00000 n +0000050333 00000 n +0000050507 00000 n +0000050682 00000 n +0000050859 00000 n +0000051034 00000 n +0000051207 00000 n +0000051378 00000 n +0000051544 00000 n +0000051726 00000 n +0000051887 00000 n +0000052050 00000 n +0000052215 00000 n +0000058351 00000 n +0000058611 00000 n +0000058775 00000 n +0000058939 00000 n +0000059102 00000 n +0000059265 00000 n +0000059435 00000 n +0000059603 00000 n +0000059765 00000 n +0000059931 00000 n +0000060101 00000 n +0000060268 00000 n +0000060436 00000 n +0000060604 00000 n +0000060770 00000 n +0000060935 00000 n +0000061099 00000 n +0000061261 00000 n +0000065919 00000 n +0000066111 00000 n +0000066281 00000 n +0000066445 00000 n +0000066618 00000 n +0000066792 00000 n +0000066957 00000 n +0000067125 00000 n +0000067291 00000 n +0000073407 00000 n +0000073626 00000 n +0000073790 00000 n +0000073953 00000 n +0000074128 00000 n +0000074292 00000 n +0000074455 00000 n +0000074620 00000 n +0000074791 00000 n +0000074959 00000 n +0000075129 00000 n +0000075293 00000 n +0000081278 00000 n +0000081566 00000 n +0000081731 00000 n +0000081895 00000 n +0000082073 00000 n +0000082237 00000 n +0000082401 00000 n +0000082566 00000 n +0000082729 00000 n +0000082896 00000 n +0000083062 00000 n +0000083230 00000 n +0000083409 00000 n +0000083591 00000 n +0000083771 00000 n +0000083940 00000 n +0000084114 00000 n +0000084294 00000 n +0000084467 00000 n +0000084654 00000 n +0000084830 00000 n +0000085001 00000 n +0000085175 00000 n +0000085345 00000 n +0000085507 00000 n +0000085670 00000 n +0000085831 00000 n +0000086008 00000 n +0000086170 00000 n +0000086341 00000 n +0000086515 00000 n +0000086679 00000 n +0000092341 00000 n +0000092558 00000 n +0000092726 00000 n +0000092895 00000 n +0000093058 00000 n +0000093232 00000 n +0000093403 00000 n +0000093577 00000 n +0000093755 00000 n +0000093920 00000 n +0000094086 00000 n +0000094266 00000 n +0000094427 00000 n +0000094597 00000 n +0000094776 00000 n +0000098571 00000 n +0000098842 00000 n +0000099010 00000 n +0000099178 00000 n +0000099346 00000 n +0000099514 00000 n +0000099682 00000 n +0000099868 00000 n +0000100036 00000 n +0000100212 00000 n +0000100384 00000 n +0000100555 00000 n +0000100723 00000 n +0000100892 00000 n +0000101060 00000 n +0000101229 00000 n +0000101391 00000 n +0000107408 00000 n +0000107585 00000 n +0000107748 00000 n +0000107915 00000 n +0000108081 00000 n +0000108250 00000 n +0000108417 00000 n +0000108586 00000 n +0000108754 00000 n +0000108922 00000 n +0000109092 00000 n +0000109255 00000 n +0000109418 00000 n +0000109589 00000 n +0000109770 00000 n +0000109946 00000 n +0000110108 00000 n +0000114337 00000 n +0000114581 00000 n +0000114752 00000 n +0000114920 00000 n +0000115095 00000 n +0000115265 00000 n +0000115428 00000 n +0000115599 00000 n +0000115767 00000 n +0000115929 00000 n +0000116092 00000 n +0000116255 00000 n +0000116417 00000 n +0000116583 00000 n +0000116747 00000 n +0000116910 00000 n +0000117073 00000 n +0000117259 00000 n +0000117436 00000 n +0000117610 00000 n +0000121847 00000 n +0000122121 00000 n +0000122286 00000 n +0000122466 00000 n +0000122630 00000 n +0000122810 00000 n +0000122979 00000 n +0000123157 00000 n +0000123318 00000 n +0000123500 00000 n +0000123675 00000 n +0000123849 00000 n +0000124022 00000 n +0000124203 00000 n +0000124377 00000 n +0000124555 00000 n +0000124732 00000 n +0000124900 00000 n +0000130289 00000 n +0000130427 00000 n +0000130642 00000 n +0000130856 00000 n +0000131069 00000 n +0000131281 00000 n +0000131580 00000 n +0000131878 00000 n +0000132177 00000 n +0000132396 00000 n +0000132614 00000 n +0000132824 00000 n +0000133050 00000 n +0000133275 00000 n +0000133508 00000 n +0000133740 00000 n +0000133939 00000 n +0000134140 00000 n +0000134340 00000 n +0000134540 00000 n +0000134741 00000 n +0000134949 00000 n +0000135158 00000 n +0000135358 00000 n +0000135566 00000 n +0000135773 00000 n +0000135978 00000 n +0000136184 00000 n +0000136388 00000 n +0000136592 00000 n +0000145036 00000 n +0000145214 00000 n +0000145429 00000 n +0000145643 00000 n +0000145930 00000 n +0000146217 00000 n +0000146503 00000 n +0000146730 00000 n +0000146956 00000 n +0000147227 00000 n +0000147498 00000 n +0000147727 00000 n +0000147955 00000 n +0000148173 00000 n +0000148389 00000 n +0000148612 00000 n +0000148833 00000 n +0000149144 00000 n +0000149455 00000 n +0000149766 00000 n +0000150077 00000 n +0000150275 00000 n +0000150475 00000 n +0000150675 00000 n +0000150876 00000 n +0000151107 00000 n +0000151339 00000 n +0000151589 00000 n +0000151838 00000 n +0000152088 00000 n +0000152338 00000 n +0000152543 00000 n +0000160754 00000 n +0000160906 00000 n +0000161115 00000 n +0000161322 00000 n +0000161532 00000 n +0000161733 00000 n +0000164876 00000 n +0000165042 00000 n +0000165104 00000 n +0000165166 00000 n +0000165228 00000 n +0000165290 00000 n +0000165352 00000 n +0000165414 00000 n +0000165476 00000 n +0000165538 00000 n +0000165600 00000 n +0000165662 00000 n +0000165724 00000 n +0000165785 00000 n +0000165847 00000 n +0000165909 00000 n +0000165970 00000 n +0000166032 00000 n +0000166093 00000 n +0000166155 00000 n +0000166217 00000 n +0000166279 00000 n +0000166336 00000 n +0000166396 00000 n +0000166459 00000 n +0000166522 00000 n +0000166580 00000 n +0000166638 00000 n +0000166696 00000 n +0000166754 00000 n +0000166812 00000 n +0000166870 00000 n +0000166928 00000 n +0000166986 00000 n +0000167049 00000 n +0000167107 00000 n +0000167165 00000 n +0000167227 00000 n +0000167289 00000 n +0000167347 00000 n +0000167409 00000 n +0000167471 00000 n +0000167533 00000 n +0000167595 00000 n +0000167652 00000 n +0000167710 00000 n +0000167773 00000 n +0000167836 00000 n +0000167893 00000 n +0000167956 00000 n +0000168015 00000 n +0000168078 00000 n +0000168141 00000 n +0000168203 00000 n +0000168266 00000 n +0000168329 00000 n +0000168387 00000 n +0000168450 00000 n +0000168513 00000 n +0000168571 00000 n +0000168629 00000 n +0000168692 00000 n +0000168755 00000 n +0000168818 00000 n +0000168881 00000 n +0000168939 00000 n +0000169002 00000 n +0000169060 00000 n +0000169117 00000 n +0000169175 00000 n +0000169233 00000 n +0000169295 00000 n +0000169353 00000 n +0000169411 00000 n +0000169474 00000 n +0000169537 00000 n +0000169595 00000 n +0000169653 00000 n +0000169716 00000 n +0000169774 00000 n +0000169837 00000 n +0000169900 00000 n +0000169958 00000 n +0000170016 00000 n +0000170079 00000 n +0000170142 00000 n +0000170205 00000 n +0000170268 00000 n +0000170331 00000 n +0000170394 00000 n +0000170452 00000 n +0000170511 00000 n +0000170573 00000 n +0000170636 00000 n +0000170694 00000 n +0000170748 00000 n +0000170806 00000 n +0000170869 00000 n +0000170932 00000 n +0000170990 00000 n +0000171048 00000 n +0000171105 00000 n +0000171164 00000 n +0000171227 00000 n +0000171290 00000 n +0000171353 00000 n +0000171416 00000 n +0000171479 00000 n +0000171542 00000 n +0000171605 00000 n +0000171663 00000 n +0000171721 00000 n +0000171784 00000 n +0000171842 00000 n +0000171905 00000 n +0000171968 00000 n +0000172031 00000 n +0000172089 00000 n +0000172152 00000 n +0000172210 00000 n +0000172268 00000 n +0000172325 00000 n +0000172383 00000 n +0000172441 00000 n +0000172499 00000 n +0000172557 00000 n +0000172615 00000 n +0000172673 00000 n +0000172731 00000 n +0000172789 00000 n +0000172847 00000 n +0000172905 00000 n +0000172963 00000 n +0000173021 00000 n +0000173079 00000 n +0000173137 00000 n +0000173194 00000 n +0000173252 00000 n +0000173310 00000 n +0000173367 00000 n +0000173425 00000 n +0000173482 00000 n +0000173540 00000 n +0000173602 00000 n +0000173665 00000 n +0000173723 00000 n +0000173781 00000 n +0000173844 00000 n +0000173902 00000 n +0000173964 00000 n +0000174022 00000 n +0000174085 00000 n +0000174143 00000 n +0000174205 00000 n +0000174268 00000 n +0000174326 00000 n +0000174380 00000 n +0000174443 00000 n +0000174506 00000 n +0000174564 00000 n +0000174627 00000 n +0000174690 00000 n +0000174748 00000 n +0000175128 00000 n +0000175586 00000 n +0000176534 00000 n +0000176938 00000 n +0000177586 00000 n +0000178263 00000 n +0000179214 00000 n +0000180179 00000 n +0000180646 00000 n +0000181700 00000 n +0000182483 00000 n +0000182944 00000 n +0000183610 00000 n +0000184143 00000 n +0000184325 00000 n +0000185131 00000 n +0000185488 00000 n +0000185855 00000 n +0000186307 00000 n +0000187257 00000 n +0000187618 00000 n +0000187686 00000 n +0000188449 00000 n +0000188474 00000 n +0000188521 00000 n +0000188599 00000 n +0000188677 00000 n +0000188767 00000 n +0000188899 00000 n +0000188946 00000 n +0000189025 00000 n +0000189104 00000 n +0000189195 00000 n +0000189331 00000 n +0000189493 00000 n +0000189665 00000 n +0000189826 00000 n +0000189989 00000 n +0000190154 00000 n +0000193741 00000 n +0000201432 00000 n +0000201604 00000 n +0000201801 00000 n +0000203700 00000 n +0000213649 00000 n +0000219760 00000 n +0000223317 00000 n +0000225286 00000 n +0000228023 00000 n +0000235905 00000 n +0000237918 00000 n +0000239640 00000 n +0000244244 00000 n +0000245980 00000 n +0000246167 00000 n +0000246357 00000 n +0000349674 00000 n +0000452742 00000 n +0000460069 00000 n +0000471741 00000 n +0000535602 00000 n +0000535654 00000 n +0000535746 00000 n +0000535826 00000 n +0000535878 00000 n +0000536086 00000 n +0000536133 00000 n +0000536263 00000 n +0000536327 00000 n +0000536379 00000 n +0000536472 00000 n +0000536652 00000 n +0000536704 00000 n +0000536788 00000 n +0000536835 00000 n +0000536965 00000 n +0000537045 00000 n +0000537288 00000 n +0000538206 00000 n +0000538251 00000 n +0000538602 00000 n +0000539266 00000 n +0000539475 00000 n +0000539693 00000 n +0000540480 00000 n +0000540505 00000 n +0000540759 00000 n +0000541391 00000 n +0000541449 00000 n +0000541691 00000 n +0000542438 00000 n +0000542479 00000 n +0000542643 00000 n +0000542682 00000 n +0000542890 00000 n +0000543105 00000 n +0000546284 00000 n +0000546540 00000 n +0000546579 00000 n +0000546618 00000 n +0000546657 00000 n +0000547314 00000 n +0000547736 00000 n +0000548107 00000 n +0000552284 00000 n +0000565659 00000 n +0000569334 00000 n +0000573009 00000 n +0000612745 00000 n +0000612984 00000 n +0000613648 00000 n +0000613673 00000 n +0000613941 00000 n +0000614288 00000 n +0000615205 00000 n +0000615530 00000 n +0000615684 00000 n +0000615838 00000 n +0000615992 00000 n +0000616146 00000 n +0000616300 00000 n +0000616454 00000 n +0000616608 00000 n +0000616762 00000 n +0000616916 00000 n +0000617070 00000 n +0000617224 00000 n +0000617378 00000 n +0000617532 00000 n +0000617686 00000 n +0000617840 00000 n +0000617994 00000 n +0000618608 00000 n +0000619441 00000 n +0000620023 00000 n +0000620177 00000 n +0000620331 00000 n +0000620945 00000 n +0000621778 00000 n +0000622360 00000 n +0000622514 00000 n +0000622668 00000 n +0000622822 00000 n +0000622976 00000 n +0000623130 00000 n +0000623284 00000 n +0000623540 00000 n +0000623696 00000 n +0000623900 00000 n +0000624148 00000 n +0000624302 00000 n +0000624456 00000 n +0000624610 00000 n +0000624764 00000 n +0000624918 00000 n +0000625072 00000 n +0000625681 00000 n +0000626259 00000 n +0000626413 00000 n +0000626567 00000 n +0000627176 00000 n +0000627754 00000 n +0000627908 00000 n +0000628062 00000 n +0000628318 00000 n +0000628574 00000 n +0000628830 00000 n +0000629086 00000 n +0000629240 00000 n +0000629394 00000 n +0000630006 00000 n +0000630838 00000 n +0000631418 00000 n +0000631789 00000 n +0000632230 00000 n +0000633185 00000 n +0000633591 00000 n +0000633663 00000 n +0000634415 00000 n +0000634440 00000 n +0000634492 00000 n +0000634712 00000 n +0000634759 00000 n +0000634838 00000 n +0000634917 00000 n +0000635008 00000 n +0000635180 00000 n +0000635232 00000 n +0000635312 00000 n +0000635359 00000 n +0000635438 00000 n +0000635517 00000 n +0000635589 00000 n +0000645447 00000 n +0000653971 00000 n +0000655551 00000 n +0000657572 00000 n +0000659579 00000 n +0000662293 00000 n +0000662538 00000 n +0000662890 00000 n +0000663135 00000 n +0000663510 00000 n +0000665046 00000 n +0000668534 00000 n +0000671248 00000 n +0000671706 00000 n +0000671958 00000 n +0000672203 00000 n +0000672454 00000 n +0000686034 00000 n +0000691530 00000 n +0000700235 00000 n +0000706794 00000 n +0000714786 00000 n +0000716767 00000 n +0000731609 00000 n +0000731650 00000 n +0000733772 00000 n +0000733989 00000 n +0000734987 00000 n +0000735019 00000 n +0000736810 00000 n +0000737019 00000 n +0000737563 00000 n +0000737594 00000 n +0000738684 00000 n +0000738890 00000 n +0000739426 00000 n +0000739457 00000 n +0000741248 00000 n +0000741456 00000 n +0000742003 00000 n +0000742033 00000 n +0000743123 00000 n +0000743328 00000 n +0000743866 00000 n +0000743898 00000 n +0000744988 00000 n +0000745196 00000 n +0000745734 00000 n +0000747525 00000 n +0000748069 00000 n +0000750191 00000 n +0000751189 00000 n +0000752279 00000 n +0000752817 00000 n +0000754608 00000 n +0000755152 00000 n +0000757274 00000 n +0000758272 00000 n +0000760394 00000 n +0000761392 00000 n +0000763514 00000 n +0000764512 00000 n +0000766634 00000 n +0000767632 00000 n +0000768722 00000 n +0000769258 00000 n +0000769289 00000 n +0000771080 00000 n +0000771288 00000 n +0000771833 00000 n +0000771864 00000 n +0000772954 00000 n +0000773161 00000 n +0000773699 00000 n +0000773730 00000 n +0000774820 00000 n +0000775027 00000 n +0000775595 00000 n +0000775626 00000 n +0000776716 00000 n +0000776921 00000 n +0000777455 00000 n +0000777485 00000 n +0000778575 00000 n +0000778780 00000 n +0000779316 00000 n +0000781438 00000 n +0000782436 00000 n +0000784558 00000 n +0000785556 00000 n +0000787678 00000 n +0000788676 00000 n +0000790798 00000 n +0000791796 00000 n +0000793918 00000 n +0000794916 00000 n +0000849284 00000 n +0000849336 00000 n +0000849524 00000 n +0000849576 00000 n +0000849764 00000 n +0000849811 00000 n +0000849975 00000 n +0000850027 00000 n +0000850120 00000 n +0000850180 00000 n +0000850232 00000 n +0000850325 00000 n +0000850421 00000 n +0000855406 00000 n +0000862701 00000 n +0000873922 00000 n +0000879532 00000 n +0000881914 00000 n +0000925703 00000 n +0000953794 00000 n +0000985744 00000 n +0001013987 00000 n +0001042959 00000 n +0001071233 00000 n +0001099205 00000 n +0001127709 00000 n +0001156286 00000 n +0001185207 00000 n +0001214138 00000 n +0001214190 00000 n +0001214366 00000 n +0001214418 00000 n +trailer << /Info 2 0 R /Root 1 0 R /Size 863 /ID [<96eff7b33f17172214393742ca5ac9ea>] >> +startxref +1214642 +%%EOF diff --git a/examples/document_search.py b/examples/document_search.py new file mode 100644 index 0000000..72d5bdc --- /dev/null +++ b/examples/document_search.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python3 +""" +Document search demo with recompute mode +""" + +import os +from pathlib import Path +import shutil +import time + +# Import backend packages to trigger plugin registration +try: + import leann_backend_diskann + import leann_backend_hnsw + print("INFO: Backend packages imported successfully.") +except ImportError as e: + print(f"WARNING: Could not import backend packages. Error: {e}") + +# Import upper-level API from leann-core +from leann.api import LeannBuilder, LeannSearcher, LeannChat + + +def load_sample_documents(): + """Create sample documents for demonstration""" + docs = [ + {"title": "Intro to Python", "content": "Python is a high-level, interpreted language known for simplicity."}, + {"title": "ML Basics", "content": "Machine learning builds systems that learn from data."}, + {"title": "Data Structures", "content": "Data structures like arrays, lists, and graphs organize data."}, + ] + return docs + +def main(): + print("==========================================================") + print("=== Leann Document Search Demo (DiskANN + Recompute) ===") + print("==========================================================") + + INDEX_DIR = Path("./test_indices") + INDEX_PATH = str(INDEX_DIR / "documents.diskann") + BACKEND_TO_TEST = "diskann" + + if INDEX_DIR.exists(): + print(f"--- Cleaning up old index directory: {INDEX_DIR} ---") + shutil.rmtree(INDEX_DIR) + + # --- 1. Build index --- + print(f"\n[PHASE 1] Building index using '{BACKEND_TO_TEST}' backend...") + + builder = LeannBuilder( + backend_name=BACKEND_TO_TEST, + graph_degree=32, + complexity=64 + ) + + documents = load_sample_documents() + print(f"Loaded {len(documents)} sample documents.") + for doc in documents: + builder.add_text(doc["content"], metadata={"title": doc["title"]}) + + builder.build_index(INDEX_PATH) + print(f"\nIndex built!") + + # --- 2. Basic search demo --- + print(f"\n[PHASE 2] Basic search using '{BACKEND_TO_TEST}' backend...") + searcher = LeannSearcher(index_path=INDEX_PATH) + + query = "What is machine learning?" + print(f"\nQuery: '{query}'") + + print("\n--- Basic search mode (PQ computation) ---") + start_time = time.time() + results = searcher.search(query, top_k=2) + basic_time = time.time() - start_time + + print(f"â±ï¸ Basic search time: {basic_time:.3f} seconds") + print(">>> Basic search results <<<") + for i, res in enumerate(results, 1): + print(f" {i}. ID: {res['id']}, Score: {res['score']:.4f}, Text: '{res['text']}', Metadata: {res['metadata']}") + + # --- 3. Recompute search demo --- + print(f"\n[PHASE 3] Recompute search using embedding server...") + + print("\n--- Recompute search mode (get real embeddings via network) ---") + + # Configure recompute parameters + recompute_params = { + "recompute_beighbor_embeddings": True, # Enable network recomputation + "USE_DEFERRED_FETCH": False, # Don't use deferred fetch + "skip_search_reorder": True, # Skip search reordering + "dedup_node_dis": True, # Enable node distance deduplication + "prune_ratio": 0.1, # Pruning ratio 10% + "batch_recompute": False, # Don't use batch recomputation + "global_pruning": False, # Don't use global pruning + "zmq_port": 5555, # ZMQ port + "embedding_model": "sentence-transformers/all-mpnet-base-v2" + } + + print("Recompute parameter configuration:") + for key, value in recompute_params.items(): + print(f" {key}: {value}") + + print(f"\n🔄 Executing Recompute search...") + try: + start_time = time.time() + recompute_results = searcher.search(query, top_k=2, **recompute_params) + recompute_time = time.time() - start_time + + print(f"â±ï¸ Recompute search time: {recompute_time:.3f} seconds") + print(">>> Recompute search results <<<") + for i, res in enumerate(recompute_results, 1): + print(f" {i}. ID: {res['id']}, Score: {res['score']:.4f}, Text: '{res['text']}', Metadata: {res['metadata']}") + + # Compare results + print(f"\n--- Result comparison ---") + print(f"Basic search time: {basic_time:.3f} seconds") + print(f"Recompute time: {recompute_time:.3f} seconds") + + print("\nBasic search vs Recompute results:") + for i in range(min(len(results), len(recompute_results))): + basic_score = results[i]['score'] + recompute_score = recompute_results[i]['score'] + score_diff = abs(basic_score - recompute_score) + print(f" Position {i+1}: PQ={basic_score:.4f}, Recompute={recompute_score:.4f}, Difference={score_diff:.4f}") + + if recompute_time > basic_time: + print(f"✅ Recompute mode working correctly (more accurate but slower)") + else: + print(f"â„¹ï¸ Recompute time is unusually fast, network recomputation may not be enabled") + + except Exception as e: + print(f"⌠Recompute search failed: {e}") + print("This usually indicates an embedding server connection issue") + + # --- 4. Chat demo --- + print(f"\n[PHASE 4] Starting chat session...") + chat = LeannChat(index_path=INDEX_PATH) + chat_response = chat.ask(query) + print(f"You: {query}") + print(f"Leann: {chat_response}") + + print("\n==========================================================") + print("✅ Demo finished successfully!") + print("==========================================================") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/examples/main_cli_example.py b/examples/main_cli_example.py new file mode 100644 index 0000000..35c6a9c --- /dev/null +++ b/examples/main_cli_example.py @@ -0,0 +1,76 @@ +from llama_index.core import SimpleDirectoryReader, Settings +from llama_index.core.readers.base import BaseReader +from llama_index.node_parser.docling import DoclingNodeParser +from llama_index.readers.docling import DoclingReader +from docling_core.transforms.chunker.hybrid_chunker import HybridChunker +import asyncio +import os +import dotenv +from leann.api import LeannBuilder, LeannSearcher, LeannChat +import leann_backend_diskann # Import to ensure backend registration +import shutil +from pathlib import Path + +dotenv.load_dotenv() + +reader = DoclingReader(export_type=DoclingReader.ExportType.JSON) +file_extractor: dict[str, BaseReader] = { + ".docx": reader, + ".pptx": reader, + ".pdf": reader, + ".xlsx": reader, +} +node_parser = DoclingNodeParser( + chunker=HybridChunker(tokenizer="Qwen/Qwen3-Embedding-4B", max_tokens=10240) +) + +documents = SimpleDirectoryReader( + "examples/data", + recursive=True, + file_extractor=file_extractor, + encoding="utf-8", + required_exts=[".pdf", ".docx", ".pptx", ".xlsx"] +).load_data(show_progress=True) + +# Extract text from documents and prepare for Leann +all_texts = [] +for doc in documents: + # DoclingNodeParser returns Node objects, which have a text attribute + nodes = node_parser.get_nodes_from_documents([doc]) + for node in nodes: + all_texts.append(node.text) + +INDEX_DIR = Path("./test_pdf_index") +INDEX_PATH = str(INDEX_DIR / "pdf_documents.leann") + +if INDEX_DIR.exists(): + print(f"--- Cleaning up old index directory: {INDEX_DIR} ---") + shutil.rmtree(INDEX_DIR) + +print(f"\n[PHASE 1] Building Leann index...") + +builder = LeannBuilder( + backend_name="diskann", + embedding_model="sentence-transformers/all-mpnet-base-v2", # Using a common sentence transformer model + graph_degree=32, + complexity=64 +) + +print(f"Loaded {len(all_texts)} text chunks from documents.") +for chunk_text in all_texts: + builder.add_text(chunk_text) + +builder.build_index(INDEX_PATH) +print(f"\nLeann index built at {INDEX_PATH}!") + +async def main(): + print(f"\n[PHASE 2] Starting Leann chat session...") + chat = LeannChat(index_path=INDEX_PATH) + + query = "Based on the paper, what are the two main techniques LEANN uses to achieve low storage overhead and high retrieval accuracy?" + print(f"You: {query}") + chat_response = chat.ask(query, recompute_beighbor_embeddings=True) + print(f"Leann: {chat_response}") + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/examples/simple_demo.py b/examples/simple_demo.py new file mode 100644 index 0000000..058841f --- /dev/null +++ b/examples/simple_demo.py @@ -0,0 +1,81 @@ +""" +Simple demo showing basic leann usage +Run: uv run python examples/simple_demo.py +""" + +from leann import LeannBuilder, LeannSearcher, LeannChat + + +def main(): + print("=== Leann Simple Demo ===") + print() + + # Sample knowledge base + chunks = [ + "Machine learning is a subset of artificial intelligence that enables computers to learn without being explicitly programmed.", + "Deep learning uses neural networks with multiple layers to process data and make decisions.", + "Natural language processing helps computers understand and generate human language.", + "Computer vision enables machines to interpret and understand visual information from images and videos.", + "Reinforcement learning teaches agents to make decisions by receiving rewards or penalties for their actions.", + "Data science combines statistics, programming, and domain expertise to extract insights from data.", + "Big data refers to extremely large datasets that require special tools and techniques to process.", + "Cloud computing provides on-demand access to computing resources over the internet.", + ] + + print("1. Building index (no embeddings stored)...") + builder = LeannBuilder( + embedding_model="sentence-transformers/all-mpnet-base-v2", + prune_ratio=0.7, # Keep 30% of connections + ) + builder.add_chunks(chunks) + builder.build_index("demo_knowledge.leann") + print() + + print("2. Searching with real-time embeddings...") + searcher = LeannSearcher("demo_knowledge.leann") + + queries = [ + "What is machine learning?", + "How does neural network work?", + "Tell me about data processing", + ] + + for query in queries: + print(f"Query: {query}") + results = searcher.search(query, top_k=2) + + for i, result in enumerate(results, 1): + print(f" {i}. Score: {result.score:.3f}") + print(f" Text: {result.text[:100]}...") + print() + + print("3. Memory stats:") + stats = searcher.get_memory_stats() + print(f" Cache size: {stats.embedding_cache_size}") + print(f" Cache memory: {stats.embedding_cache_memory_mb:.1f} MB") + print(f" Total chunks: {stats.total_chunks}") + print() + + print("4. Interactive chat demo:") + print(" (Note: Requires OpenAI API key for real responses)") + + chat = LeannChat("demo_knowledge.leann") + + # Demo questions + demo_questions: list[str] = [ + "What is the difference between machine learning and deep learning?", + "How is data science related to big data?", + ] + + for question in demo_questions: + print(f" Q: {question}") + response = chat.ask(question) + print(f" A: {response}") + print() + + print("Demo completed! Try running:") + print(" uv run python examples/document_search.py") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/knowledge.leann.meta.json b/knowledge.leann.meta.json new file mode 100644 index 0000000..6a0d839 --- /dev/null +++ b/knowledge.leann.meta.json @@ -0,0 +1,32 @@ +{ + "version": "0.1.0", + "backend_name": "diskann", + "embedding_model": "sentence-transformers/all-mpnet-base-v2", + "num_chunks": 6, + "chunks": [ + { + "text": "Python is a powerful programming language", + "metadata": {} + }, + { + "text": "Machine learning transforms industries", + "metadata": {} + }, + { + "text": "Neural networks process complex data", + "metadata": {} + }, + { + "text": "Java is a powerful programming language", + "metadata": {} + }, + { + "text": "C++ is a powerful programming language", + "metadata": {} + }, + { + "text": "C# is a powerful programming language", + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/packages/leann-backend-diskann/CMakeLists.txt b/packages/leann-backend-diskann/CMakeLists.txt new file mode 100644 index 0000000..ee9d932 --- /dev/null +++ b/packages/leann-backend-diskann/CMakeLists.txt @@ -0,0 +1,8 @@ +# packages/leann-backend-diskann/CMakeLists.txt (最终简化版) + +cmake_minimum_required(VERSION 3.20) +project(leann_backend_diskann_wrapper) + +# 告诉 CMake 直接进入 DiskANN å­æ¨¡å—并执行它自己的 CMakeLists.txt +# DiskANN ä¼šè‡ªå·±å¤„ç†æ‰€æœ‰äº‹æƒ…,包括编译 Python 绑定 +add_subdirectory(src/third_party/DiskANN) diff --git a/packages/leann-backend-diskann/leann_backend_diskann/__init__.py b/packages/leann-backend-diskann/leann_backend_diskann/__init__.py new file mode 100644 index 0000000..8074aa4 --- /dev/null +++ b/packages/leann-backend-diskann/leann_backend_diskann/__init__.py @@ -0,0 +1,7 @@ +print("Initializing leann-backend-diskann...") + +try: + from .diskann_backend import DiskannBackend + print("INFO: DiskANN backend loaded successfully") +except ImportError as e: + print(f"WARNING: Could not import DiskANN backend: {e}") \ No newline at end of file diff --git a/packages/leann-backend-diskann/leann_backend_diskann/diskann_backend.py b/packages/leann-backend-diskann/leann_backend_diskann/diskann_backend.py new file mode 100644 index 0000000..71cf2fb --- /dev/null +++ b/packages/leann-backend-diskann/leann_backend_diskann/diskann_backend.py @@ -0,0 +1,299 @@ +import numpy as np +import os +import json +import struct +from pathlib import Path +from typing import Dict +import contextlib +import threading +import time +import atexit +import socket +import subprocess +import sys + +from leann.registry import register_backend +from leann.interface import ( + LeannBackendFactoryInterface, + LeannBackendBuilderInterface, + LeannBackendSearcherInterface +) +from . import _diskannpy as diskannpy + +METRIC_MAP = { + "mips": diskannpy.Metric.INNER_PRODUCT, + "l2": diskannpy.Metric.L2, + "cosine": diskannpy.Metric.COSINE, +} + +@contextlib.contextmanager +def chdir(path): + original_dir = os.getcwd() + os.chdir(path) + try: + yield + finally: + os.chdir(original_dir) + +def _write_vectors_to_bin(data: np.ndarray, file_path: str): + num_vectors, dim = data.shape + with open(file_path, 'wb') as f: + f.write(struct.pack('I', num_vectors)) + f.write(struct.pack('I', dim)) + f.write(data.tobytes()) + +def _check_port(port: int) -> bool: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + return s.connect_ex(('localhost', port)) == 0 + +class EmbeddingServerManager: + def __init__(self): + self.server_process = None + self.server_port = None + atexit.register(self.stop_server) + + def start_server(self, port=5555, model_name="sentence-transformers/all-mpnet-base-v2"): + if self.server_process and self.server_process.poll() is None: + print(f"INFO: Reusing existing server process for this session (PID {self.server_process.pid})") + return True + + # æ£€æŸ¥ç«¯å£æ˜¯å¦å·²è¢«å…¶ä»–无关进程å ç”¨ + if _check_port(port): + print(f"WARNING: Port {port} is already in use. Assuming an external server is running and connecting to it.") + return True + + print(f"INFO: Starting session-level embedding server as a background process...") + + try: + command = [ + sys.executable, + "-m", "packages.leann-backend-diskann.leann_backend_diskann.embedding_server", + "--zmq-port", str(port), + "--model-name", model_name + ] + project_root = Path(__file__).parent.parent.parent.parent + print(f"INFO: Running command from project root: {project_root}") + self.server_process = subprocess.Popen( + command, + cwd=project_root, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + encoding='utf-8' + ) + self.server_port = port + print(f"INFO: Server process started with PID: {self.server_process.pid}") + + max_wait, wait_interval = 30, 0.5 + for _ in range(int(max_wait / wait_interval)): + if _check_port(port): + print(f"✅ Embedding server is up and ready for this session.") + log_thread = threading.Thread(target=self._log_monitor, daemon=True) + log_thread.start() + return True + if self.server_process.poll() is not None: + print("⌠ERROR: Server process terminated unexpectedly during startup.") + self._log_monitor() + return False + time.sleep(wait_interval) + + print(f"⌠ERROR: Server process failed to start listening within {max_wait} seconds.") + self.stop_server() + return False + + except Exception as e: + print(f"⌠ERROR: Failed to start embedding server process: {e}") + return False + + def _log_monitor(self): + if not self.server_process: + return + try: + if self.server_process.stdout: + for line in iter(self.server_process.stdout.readline, ''): + print(f"[EmbeddingServer LOG]: {line.strip()}") + self.server_process.stdout.close() + if self.server_process.stderr: + for line in iter(self.server_process.stderr.readline, ''): + print(f"[EmbeddingServer ERROR]: {line.strip()}") + self.server_process.stderr.close() + except Exception as e: + print(f"Log monitor error: {e}") + + def stop_server(self): + if self.server_process and self.server_process.poll() is None: + print(f"INFO: Terminating session server process (PID: {self.server_process.pid})...") + self.server_process.terminate() + try: + self.server_process.wait(timeout=5) + print("INFO: Server process terminated.") + except subprocess.TimeoutExpired: + print("WARNING: Server process did not terminate gracefully, killing it.") + self.server_process.kill() + self.server_process = None + +@register_backend("diskann") +class DiskannBackend(LeannBackendFactoryInterface): + @staticmethod + def builder(**kwargs) -> LeannBackendBuilderInterface: + return DiskannBuilder(**kwargs) + + @staticmethod + def searcher(index_path: str, **kwargs) -> LeannBackendSearcherInterface: + path = Path(index_path) + meta_path = path.parent / f"{path.name}.meta.json" + if not meta_path.exists(): + raise FileNotFoundError(f"Leann metadata file not found at {meta_path}. Cannot infer vector dimension for searcher.") + with open(meta_path, 'r') as f: + meta = json.load(f) + + try: + from sentence_transformers import SentenceTransformer + model = SentenceTransformer(meta.get("embedding_model")) + dimensions = model.get_sentence_embedding_dimension() + kwargs['dimensions'] = dimensions + except ImportError: + raise ImportError("sentence-transformers is required to infer embedding dimensions. Please install it.") + except Exception as e: + raise RuntimeError(f"Could not load SentenceTransformer model to get dimension: {e}") + + return DiskannSearcher(index_path, **kwargs) + +class DiskannBuilder(LeannBackendBuilderInterface): + def __init__(self, **kwargs): + self.build_params = kwargs + + def build(self, data: np.ndarray, index_path: str, **kwargs): + path = Path(index_path) + index_dir = path.parent + index_prefix = path.stem + + index_dir.mkdir(parents=True, exist_ok=True) + + if data.dtype != np.float32: + data = data.astype(np.float32) + if not data.flags['C_CONTIGUOUS']: + data = np.ascontiguousarray(data) + + data_filename = f"{index_prefix}_data.bin" + _write_vectors_to_bin(data, index_dir / data_filename) + + build_kwargs = {**self.build_params, **kwargs} + metric_str = build_kwargs.get("distance_metric", "mips").lower() + metric_enum = METRIC_MAP.get(metric_str) + if metric_enum is None: + raise ValueError(f"Unsupported distance_metric '{metric_str}'.") + + complexity = build_kwargs.get("complexity", 64) + graph_degree = build_kwargs.get("graph_degree", 32) + final_index_ram_limit = build_kwargs.get("search_memory_maximum", 4.0) + indexing_ram_budget = build_kwargs.get("build_memory_maximum", 8.0) + num_threads = build_kwargs.get("num_threads", 8) + pq_disk_bytes = build_kwargs.get("pq_disk_bytes", 0) + codebook_prefix = "" + + print(f"INFO: Building DiskANN index for {data.shape[0]} vectors with metric {metric_enum}...") + + try: + with chdir(index_dir): + diskannpy.build_disk_float_index( + metric_enum, + data_filename, + index_prefix, + complexity, + graph_degree, + final_index_ram_limit, + indexing_ram_budget, + num_threads, + pq_disk_bytes, + codebook_prefix + ) + print(f"✅ DiskANN index built successfully at '{index_dir / index_prefix}'") + except Exception as e: + print(f"💥 ERROR: DiskANN index build failed. Exception: {e}") + raise + finally: + temp_data_file = index_dir / data_filename + if temp_data_file.exists(): + os.remove(temp_data_file) + +class DiskannSearcher(LeannBackendSearcherInterface): + def __init__(self, index_path: str, **kwargs): + path = Path(index_path) + index_dir = path.parent + index_prefix = path.stem + metric_str = kwargs.get("distance_metric", "mips").lower() + metric_enum = METRIC_MAP.get(metric_str) + if metric_enum is None: + raise ValueError(f"Unsupported distance_metric '{metric_str}'.") + + num_threads = kwargs.get("num_threads", 8) + num_nodes_to_cache = kwargs.get("num_nodes_to_cache", 0) + dimensions = kwargs.get("dimensions") + if not dimensions: + raise ValueError("Vector dimension not provided to DiskannSearcher.") + + try: + full_index_prefix = str(index_dir / index_prefix) + self._index = diskannpy.StaticDiskFloatIndex( + metric_enum, full_index_prefix, num_threads, num_nodes_to_cache, 1, "", "" + ) + self.num_threads = num_threads + self.embedding_server_manager = EmbeddingServerManager() + print("✅ DiskANN index loaded successfully.") + except Exception as e: + print(f"💥 ERROR: Failed to load DiskANN index. Exception: {e}") + raise + + def search(self, query: np.ndarray, top_k: int, **kwargs) -> Dict[str, any]: + complexity = kwargs.get("complexity", 100) + beam_width = kwargs.get("beam_width", 4) + + USE_DEFERRED_FETCH = kwargs.get("USE_DEFERRED_FETCH", False) + skip_search_reorder = kwargs.get("skip_search_reorder", False) + recompute_beighbor_embeddings = kwargs.get("recompute_beighbor_embeddings", False) + dedup_node_dis = kwargs.get("dedup_node_dis", False) + prune_ratio = kwargs.get("prune_ratio", 0.0) + batch_recompute = kwargs.get("batch_recompute", False) + global_pruning = kwargs.get("global_pruning", False) + + if recompute_beighbor_embeddings: + print(f"INFO: DiskANN ZMQ mode enabled - ensuring embedding server is running") + zmq_port = kwargs.get("zmq_port", 5555) + embedding_model = kwargs.get("embedding_model", "sentence-transformers/all-mpnet-base-v2") + + if not self.embedding_server_manager.start_server(zmq_port, embedding_model): + print(f"WARNING: Failed to start embedding server, falling back to PQ computation") + kwargs['recompute_beighbor_embeddings'] = False + + if query.dtype != np.float32: + query = query.astype(np.float32) + if query.ndim == 1: + query = np.expand_dims(query, axis=0) + + try: + labels, distances = self._index.batch_search( + query, + query.shape[0], + top_k, + complexity, + beam_width, + self.num_threads, + USE_DEFERRED_FETCH, + skip_search_reorder, + recompute_beighbor_embeddings, + dedup_node_dis, + prune_ratio, + batch_recompute, + global_pruning + ) + return {"labels": labels, "distances": distances} + except Exception as e: + print(f"💥 ERROR: DiskANN search failed. Exception: {e}") + batch_size = query.shape[0] + return {"labels": np.full((batch_size, top_k), -1, dtype=np.int64), + "distances": np.full((batch_size, top_k), float('inf'), dtype=np.float32)} + + def __del__(self): + if hasattr(self, 'embedding_server_manager'): + self.embedding_server_manager.stop_server() \ No newline at end of file diff --git a/packages/leann-backend-diskann/leann_backend_diskann/embedding_pb2.py b/packages/leann-backend-diskann/leann_backend_diskann/embedding_pb2.py new file mode 100644 index 0000000..8285be2 --- /dev/null +++ b/packages/leann-backend-diskann/leann_backend_diskann/embedding_pb2.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: embedding.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x65mbedding.proto\x12\x0eprotoembedding\"(\n\x14NodeEmbeddingRequest\x12\x10\n\x08node_ids\x18\x01 \x03(\r\"Y\n\x15NodeEmbeddingResponse\x12\x17\n\x0f\x65mbeddings_data\x18\x01 \x01(\x0c\x12\x12\n\ndimensions\x18\x02 \x03(\x05\x12\x13\n\x0bmissing_ids\x18\x03 \x03(\rb\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'embedding_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _NODEEMBEDDINGREQUEST._serialized_start=35 + _NODEEMBEDDINGREQUEST._serialized_end=75 + _NODEEMBEDDINGRESPONSE._serialized_start=77 + _NODEEMBEDDINGRESPONSE._serialized_end=166 +# @@protoc_insertion_point(module_scope) diff --git a/packages/leann-backend-diskann/leann_backend_diskann/embedding_server.py b/packages/leann-backend-diskann/leann_backend_diskann/embedding_server.py new file mode 100644 index 0000000..f2e715d --- /dev/null +++ b/packages/leann-backend-diskann/leann_backend_diskann/embedding_server.py @@ -0,0 +1,397 @@ +#!/usr/bin/env python3 +""" +Embedding server for leann-backend-diskann - Fixed ZMQ REQ-REP pattern +""" + +import pickle +import argparse +import threading +import time + +from transformers import AutoTokenizer, AutoModel +import os +from contextlib import contextmanager +import zmq +import numpy as np + +RED = "\033[91m" +RESET = "\033[0m" + +# 简化的文档存储 - 替代 LazyPassages +class SimpleDocumentStore: + """简化的文档存储,支æŒä»»æ„ID""" + def __init__(self, documents: dict = None): + self.documents = documents or {} + # 默认演示文档 + self.default_docs = { + 0: "Python is a high-level, interpreted language known for simplicity.", + 1: "Machine learning builds systems that learn from data.", + 2: "Data structures like arrays, lists, and graphs organize data.", + } + + def __getitem__(self, doc_id): + doc_id = int(doc_id) + + # 优先使用指定的文档 + if doc_id in self.documents: + return {"text": self.documents[doc_id]} + + # 其次使用默认演示文档 + if doc_id in self.default_docs: + return {"text": self.default_docs[doc_id]} + + # 对于任æ„å…¶ä»–ID,返回通用文档 + fallback_docs = [ + "This is a general document about technology and programming concepts.", + "This document discusses machine learning and artificial intelligence topics.", + "This content covers data structures, algorithms, and computer science fundamentals.", + "This is a document about software engineering and development practices.", + "This content focuses on databases, data management, and information systems." + ] + + # æ ¹æ®ID选择一个fallback文档 + fallback_text = fallback_docs[doc_id % len(fallback_docs)] + return {"text": f"[ID:{doc_id}] {fallback_text}"} + + def __len__(self): + return len(self.documents) + len(self.default_docs) + +def create_embedding_server_thread( + zmq_port=5555, + model_name="sentence-transformers/all-mpnet-base-v2", + max_batch_size=128, +): + """ + 在当å‰çº¿ç¨‹ä¸­åˆ›å»ºå¹¶è¿è¡Œ embedding server + 这个函数设计为在å•独的线程中调用 + """ + print(f"INFO: Initializing embedding server thread on port {zmq_port}") + + try: + # æ£€æŸ¥ç«¯å£æ˜¯å¦å·²è¢«å ç”¨ + import socket + def check_port(port): + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + return s.connect_ex(('localhost', port)) == 0 + + if check_port(zmq_port): + print(f"{RED}Port {zmq_port} is already in use{RESET}") + return + + # åˆå§‹åŒ–模型 + tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True) + import torch + + # 选择设备 + mps_available = hasattr(torch.backends, 'mps') and torch.backends.mps.is_available() + cuda_available = torch.cuda.is_available() + + if cuda_available: + device = torch.device("cuda") + print("INFO: Using CUDA device") + elif mps_available: + device = torch.device("mps") + print("INFO: Using MPS device (Apple Silicon)") + else: + device = torch.device("cpu") + print("INFO: Using CPU device") + + # 加载模型 + print(f"INFO: Loading model {model_name}") + model = AutoModel.from_pretrained(model_name).to(device).eval() + + # 优化模型 + if cuda_available or mps_available: + try: + model = model.half() + model = torch.compile(model) + print(f"INFO: Using FP16 precision with model: {model_name}") + except Exception as e: + print(f"WARNING: Model optimization failed: {e}") + + # 默认演示文档 + demo_documents = { + 0: "Python is a high-level, interpreted language known for simplicity.", + 1: "Machine learning builds systems that learn from data.", + 2: "Data structures like arrays, lists, and graphs organize data.", + } + + passages = SimpleDocumentStore(demo_documents) + print(f"INFO: Loaded {len(passages)} demo documents") + + class DeviceTimer: + """设备计时器""" + def __init__(self, name="", device=device): + self.name = name + self.device = device + self.start_time = 0 + self.end_time = 0 + + if cuda_available: + self.start_event = torch.cuda.Event(enable_timing=True) + self.end_event = torch.cuda.Event(enable_timing=True) + else: + self.start_event = None + self.end_event = None + + @contextmanager + def timing(self): + self.start() + yield + self.end() + + def start(self): + if cuda_available: + torch.cuda.synchronize() + self.start_event.record() + else: + if self.device.type == "mps": + torch.mps.synchronize() + self.start_time = time.time() + + def end(self): + if cuda_available: + self.end_event.record() + torch.cuda.synchronize() + else: + if self.device.type == "mps": + torch.mps.synchronize() + self.end_time = time.time() + + def elapsed_time(self): + if cuda_available: + return self.start_event.elapsed_time(self.end_event) / 1000.0 + else: + return self.end_time - self.start_time + + def print_elapsed(self): + print(f"Time taken for {self.name}: {self.elapsed_time():.6f} seconds") + + def process_batch(texts_batch, ids_batch, missing_ids): + """å¤„ç†æ–‡æœ¬æ‰¹æ¬¡""" + batch_size = len(texts_batch) + print(f"INFO: Processing batch of size {batch_size}") + + tokenize_timer = DeviceTimer("tokenization (batch)", device) + to_device_timer = DeviceTimer("transfer to device (batch)", device) + embed_timer = DeviceTimer("embedding (batch)", device) + pool_timer = DeviceTimer("mean pooling (batch)", device) + + with tokenize_timer.timing(): + encoded_batch = tokenizer.batch_encode_plus( + texts_batch, + padding="max_length", + truncation=True, + max_length=256, + return_tensors="pt", + return_token_type_ids=False, + ) + tokenize_timer.print_elapsed() + + seq_length = encoded_batch["input_ids"].size(1) + print(f"Batch size: {batch_size}, Sequence length: {seq_length}") + + with to_device_timer.timing(): + enc = {k: v.to(device) for k, v in encoded_batch.items()} + to_device_timer.print_elapsed() + + with torch.no_grad(): + with embed_timer.timing(): + out = model(enc["input_ids"], enc["attention_mask"]) + embed_timer.print_elapsed() + + with pool_timer.timing(): + hidden_states = out.last_hidden_state if hasattr(out, "last_hidden_state") else out + mask_expanded = enc["attention_mask"].unsqueeze(-1).expand(hidden_states.size()).float() + sum_embeddings = torch.sum(hidden_states * mask_expanded, 1) + sum_mask = torch.clamp(mask_expanded.sum(1), min=1e-9) + batch_embeddings = sum_embeddings / sum_mask + pool_timer.print_elapsed() + + return batch_embeddings.cpu().numpy() + + # ZMQ server 主循环 - 修改为REP套接字 + context = zmq.Context() + socket = context.socket(zmq.ROUTER) # 改为REP套接字 + socket.bind(f"tcp://127.0.0.1:{zmq_port}") + print(f"INFO: ZMQ ROUTER server listening on port {zmq_port}") + + # 设置超时 + socket.setsockopt(zmq.RCVTIMEO, 5000) # 5秒接收超时 + socket.setsockopt(zmq.SNDTIMEO, 300000) # 300ç§’å‘é€è¶…æ—¶ + + from . import embedding_pb2 + + print(f"INFO: Embedding server ready to serve requests") + + while True: + try: + parts = socket.recv_multipart() + + # --- æ¢å¤ç¨³å¥çš„æ¶ˆæ¯æ ¼å¼åˆ¤æ–­ --- + # 必须检查 parts 的长度,é¿å… IndexError + if len(parts) >= 3: + identity = parts[0] + # empty = parts[1] # 中间的空帧我们通常ä¸å…³å¿ƒ + message = parts[2] + elif len(parts) == 2: + # ä¹Ÿèƒ½å¤„ç†æ²¡æœ‰ç©ºå¸§çš„æƒ…况 + identity = parts[0] + message = parts[1] + else: + # 如果收到格å¼é”™è¯¯çš„æ¶ˆæ¯ï¼Œæ‰“å°è­¦å‘Šå¹¶å¿½ç•¥å®ƒï¼Œè€Œä¸æ˜¯å´©æºƒ + print(f"WARNING: Received unexpected message format with {len(parts)} parts. Ignoring.") + continue + print(f"INFO: Received ZMQ request from client {identity.hex()[:8]}, size {len(message)} bytes") + + e2e_start = time.time() + lookup_timer = DeviceTimer("text lookup", device) + + # è§£æžè¯·æ±‚ + req_proto = embedding_pb2.NodeEmbeddingRequest() + req_proto.ParseFromString(message) + node_ids = req_proto.node_ids + print(f"INFO: Request for {len(node_ids)} node embeddings: {list(node_ids)}") + + # æ·»åŠ è°ƒè¯•ä¿¡æ¯ + if len(node_ids) > 0: + print(f"DEBUG: Node ID range: {min(node_ids)} to {max(node_ids)}") + + # 查找文本 + texts = [] + missing_ids = [] + with lookup_timer.timing(): + for nid in node_ids: + txtinfo = passages[nid] + txt = txtinfo["text"] + texts.append(txt) + lookup_timer.print_elapsed() + + if missing_ids: + print(f"WARNING: Missing passages for IDs: {missing_ids}") + + # å¤„ç†æ‰¹æ¬¡ + total_size = len(texts) + print(f"INFO: Total batch size: {total_size}, max_batch_size: {max_batch_size}") + + all_embeddings = [] + + if total_size > max_batch_size: + print(f"INFO: Splitting batch of size {total_size} into chunks of {max_batch_size}") + for i in range(0, total_size, max_batch_size): + end_idx = min(i + max_batch_size, total_size) + print(f"INFO: Processing chunk {i//max_batch_size + 1}/{(total_size + max_batch_size - 1)//max_batch_size}: items {i} to {end_idx-1}") + + chunk_texts = texts[i:end_idx] + chunk_ids = node_ids[i:end_idx] + + embeddings_chunk = process_batch(chunk_texts, chunk_ids, missing_ids) + all_embeddings.append(embeddings_chunk) + + if cuda_available: + torch.cuda.empty_cache() + elif device.type == "mps": + torch.mps.empty_cache() + + hidden = np.vstack(all_embeddings) + print(f"INFO: Combined embeddings shape: {hidden.shape}") + else: + hidden = process_batch(texts, node_ids, missing_ids) + + # åºåˆ—化å“应 + ser_start = time.time() + + resp_proto = embedding_pb2.NodeEmbeddingResponse() + hidden_contiguous = np.ascontiguousarray(hidden, dtype=np.float32) + resp_proto.embeddings_data = hidden_contiguous.tobytes() + resp_proto.dimensions.append(hidden_contiguous.shape[0]) + resp_proto.dimensions.append(hidden_contiguous.shape[1]) + resp_proto.missing_ids.extend(missing_ids) + + response_data = resp_proto.SerializeToString() + + # REP 套接字å‘é€å•个å“应 + socket.send_multipart([identity, b'', response_data]) + + ser_end = time.time() + + print(f"INFO: Serialize time: {ser_end - ser_start:.6f} seconds") + + if device.type == "cuda": + torch.cuda.synchronize() + elif device.type == "mps": + torch.mps.synchronize() + e2e_end = time.time() + print(f"INFO: ZMQ E2E time: {e2e_end - e2e_start:.6f} seconds") + + except zmq.Again: + print("INFO: ZMQ socket timeout, continuing to listen") + # REP套接字ä¸éœ€è¦é‡æ–°åˆ›å»ºï¼Œåªéœ€è¦ç»§ç»­ç›‘å¬ + continue + except Exception as e: + print(f"ERROR: Error in ZMQ server: {e}") + try: + # å‘é€ç©ºå“应以维æŒREQ-REPçŠ¶æ€ + empty_resp = embedding_pb2.NodeEmbeddingResponse() + socket.send(empty_resp.SerializeToString()) + except: + # 如果å‘é€å¤±è´¥ï¼Œé‡æ–°åˆ›å»ºsocket + socket.close() + socket = context.socket(zmq.REP) + socket.bind(f"tcp://127.0.0.1:{zmq_port}") + socket.setsockopt(zmq.RCVTIMEO, 5000) + socket.setsockopt(zmq.SNDTIMEO, 300000) + print("INFO: ZMQ socket recreated after error") + + except Exception as e: + print(f"ERROR: Failed to start embedding server: {e}") + raise + + +# ä¿æŒåŽŸæœ‰çš„ create_embedding_server 函数ä¸å˜ï¼Œåªæ·»åŠ çº¿ç¨‹åŒ–ç‰ˆæœ¬ +def create_embedding_server( + domain="demo", + load_passages=True, + load_embeddings=False, + use_fp16=True, + use_int8=False, + use_cuda_graphs=False, + zmq_port=5555, + max_batch_size=128, + lazy_load_passages=False, + model_name="sentence-transformers/all-mpnet-base-v2", +): + """ + 原有的 create_embedding_server å‡½æ•°ä¿æŒä¸å˜ + 这个是阻塞版本,用于直接è¿è¡Œ + """ + create_embedding_server_thread(zmq_port, model_name, max_batch_size) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Embedding service") + parser.add_argument("--zmq-port", type=int, default=5555, help="ZMQ port to run on") + parser.add_argument("--domain", type=str, default="demo", help="Domain name") + parser.add_argument("--load-passages", action="store_true", default=True) + parser.add_argument("--load-embeddings", action="store_true", default=False) + parser.add_argument("--use-fp16", action="store_true", default=False) + parser.add_argument("--use-int8", action="store_true", default=False) + parser.add_argument("--use-cuda-graphs", action="store_true", default=False) + parser.add_argument("--max-batch-size", type=int, default=128, help="Maximum batch size before splitting") + parser.add_argument("--lazy-load-passages", action="store_true", default=True) + parser.add_argument("--model-name", type=str, default="sentence-transformers/all-mpnet-base-v2", + help="Embedding model name") + args = parser.parse_args() + + create_embedding_server( + domain=args.domain, + load_passages=args.load_passages, + load_embeddings=args.load_embeddings, + use_fp16=args.use_fp16, + use_int8=args.use_int8, + use_cuda_graphs=args.use_cuda_graphs, + zmq_port=args.zmq_port, + max_batch_size=args.max_batch_size, + lazy_load_passages=args.lazy_load_passages, + model_name=args.model_name, + ) \ No newline at end of file diff --git a/packages/leann-backend-diskann/pyproject.toml b/packages/leann-backend-diskann/pyproject.toml new file mode 100644 index 0000000..70383e8 --- /dev/null +++ b/packages/leann-backend-diskann/pyproject.toml @@ -0,0 +1,16 @@ +[build-system] +requires = ["scikit-build-core>=0.10", "pybind11>=2.12.0", "numpy"] +build-backend = "scikit_build_core.build" + +[project] +name = "leann-backend-diskann" +version = "0.1.0" +dependencies = ["leann-core==0.1.0", "numpy"] + +[tool.scikit-build] +# 关键:简化的 CMake 路径 +cmake.source-dir = "third_party/DiskANN" +# 关键:Python åŒ…åœ¨æ ¹ç›®å½•ï¼Œè·¯å¾„å®Œå…¨åŒ¹é… +wheel.packages = ["leann_backend_diskann"] +# 使用默认的 redirect æ¨¡å¼ +editable.mode = "redirect" \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.clang-format b/packages/leann-backend-diskann/third_party/DiskANN/.clang-format new file mode 100644 index 0000000..ad3192f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.clang-format @@ -0,0 +1,6 @@ +--- +BasedOnStyle: Microsoft +--- +Language: Cpp +SortIncludes: false +... diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.gitattributes b/packages/leann-backend-diskann/third_party/DiskANN/.gitattributes new file mode 100644 index 0000000..fbf9358 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.gitattributes @@ -0,0 +1,14 @@ +# Set the default behavior, in case people don't have core.autocrlf set. +* text=auto + +# Explicitly declare text files you want to always be normalized and converted +# to native line endings on checkout. +*.c text +*.h text + +# Declare files that will always have CRLF line endings on checkout. +*.sln text eol=crlf + +# Denote all files that are truly binary and should not be modified. +*.png binary +*.jpg binary diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/bug_report.md b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..829d38d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,40 @@ +--- +name: Bug report +about: Bug reports help us improve! Thanks for submitting yours! +title: "[BUG] " +labels: bug +assignees: '' + +--- + +## Expected Behavior +Tell us what should happen + +## Actual Behavior +Tell us what happens instead + +## Example Code +Please see [How to create a Minimal, Reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) for some guidance on creating the best possible example of the problem +```bash + +``` + +## Dataset Description +Please tell us about the shape and datatype of your data, (e.g. 128 dimensions, 12.3 billion points, floats) +- Dimensions: +- Number of Points: +- Data type: + +## Error +``` +Paste the full error, with any sensitive information minimally redacted and marked $$REDACTED$$ + +``` + +## Your Environment +* Operating system (e.g. Windows 11 Pro, Ubuntu 22.04.1 LTS) +* DiskANN version (or commit built from) + +## Additional Details +Any other contextual information you might feel is important. + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/config.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..99d680b --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/feature_request.md b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..9c3c58c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,25 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +## Is your feature request related to a problem? Please describe. +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +## Describe the solution you'd like +A clear and concise description of what you want to happen. + +## Describe alternatives you've considered +A clear and concise description of any alternative solutions or features you've considered. + +## Provide references (if applicable) +If your feature request is related to a published algorithm/idea, please provide links to +any relevant articles or webpages. + +## Additional context +Add any other context or screenshots about the feature request here. + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/usage-question.md b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/usage-question.md new file mode 100644 index 0000000..7532f76 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/ISSUE_TEMPLATE/usage-question.md @@ -0,0 +1,11 @@ +--- +name: Usage Question +about: Ask us a question about DiskANN! +title: "[Question]" +labels: question +assignees: '' + +--- + +This is our forum for asking whatever DiskANN question you'd like! No need to feel shy - we're happy to talk about use cases and optimal tuning strategies! + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/PULL_REQUEST_TEMPLATE.md b/packages/leann-backend-diskann/third_party/DiskANN/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..0b97019 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,22 @@ + +- [ ] Does this PR have a descriptive title that could go in our release notes? +- [ ] Does this PR add any new dependencies? +- [ ] Does this PR modify any existing APIs? + - [ ] Is the change to the API backwards compatible? +- [ ] Should this result in any changes to our documentation, either updating existing docs or adding new ones? + +#### Reference Issues/PRs + + +#### What does this implement/fix? Briefly explain your changes. + +#### Any other comments? + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/build/action.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/build/action.yml new file mode 100644 index 0000000..219d9d6 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/build/action.yml @@ -0,0 +1,39 @@ +name: 'DiskANN Build Bootstrap' +description: 'Prepares DiskANN build environment and executes build' +runs: + using: "composite" + steps: + # ------------ Linux Build --------------- + - name: Prepare and Execute Build + if: ${{ runner.os == 'Linux' }} + run: | + sudo scripts/dev/install-dev-deps-ubuntu.bash + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DUNIT_TEST=True + cmake --build build -- -j + cmake --install build --prefix="dist" + shell: bash + # ------------ End Linux Build --------------- + # ------------ Windows Build --------------- + - name: Add VisualStudio command line tools into path + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + - name: Run configure and build for Windows + if: runner.os == 'Windows' + run: | + mkdir build && cd build && cmake .. -DUNIT_TEST=True && msbuild diskann.sln /m /nologo /t:Build /p:Configuration="Release" /property:Platform="x64" -consoleloggerparameters:"ErrorsOnly;Summary" + cd .. + mkdir dist + mklink /j .\dist\bin .\x64\Release\ + shell: cmd + # ------------ End Windows Build --------------- + # ------------ Windows Build With EXEC_ENV_OLS and USE_BING_INFRA --------------- + - name: Add VisualStudio command line tools into path + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + - name: Run configure and build for Windows with Bing feature flags + if: runner.os == 'Windows' + run: | + mkdir build_bing && cd build_bing && cmake .. -DEXEC_ENV_OLS=1 -DUSE_BING_INFRA=1 -DUNIT_TEST=True && msbuild diskann.sln /m /nologo /t:Build /p:Configuration="Release" /property:Platform="x64" -consoleloggerparameters:"ErrorsOnly;Summary" + cd .. + shell: cmd + # ------------ End Windows Build --------------- diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/format-check/action.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/format-check/action.yml new file mode 100644 index 0000000..6ed08c0 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/format-check/action.yml @@ -0,0 +1,13 @@ +name: 'Checking code formatting...' +description: 'Ensures code complies with code formatting rules' +runs: + using: "composite" + steps: + - name: Checking code formatting... + run: | + sudo apt install clang-format + find include -name '*.h' -type f -print0 | xargs -0 -P 16 /usr/bin/clang-format --Werror --dry-run + find src -name '*.cpp' -type f -print0 | xargs -0 -P 16 /usr/bin/clang-format --Werror --dry-run + find apps -name '*.cpp' -type f -print0 | xargs -0 -P 16 /usr/bin/clang-format --Werror --dry-run + find python -name '*.cpp' -type f -print0 | xargs -0 -P 16 /usr/bin/clang-format --Werror --dry-run + shell: bash diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-high-dim-random/action.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-high-dim-random/action.yml new file mode 100644 index 0000000..65e9b7e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-high-dim-random/action.yml @@ -0,0 +1,28 @@ +name: 'Generating Random Data (Basic)' +description: 'Generates the random data files used in acceptance tests' +runs: + using: "composite" + steps: + - name: Generate Random Data (Basic) + run: | + mkdir data + + echo "Generating random 1020,1024,1536D float and 4096 int8 vectors for index" + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_1020D_5K_norm1.0.bin -D 1020 -N 5000 --norm 1.0 + #dist/bin/rand_data_gen --data_type float --output_file data/rand_float_1024D_5K_norm1.0.bin -D 1024 -N 5000 --norm 1.0 + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_1536D_5K_norm1.0.bin -D 1536 -N 5000 --norm 1.0 + dist/bin/rand_data_gen --data_type int8 --output_file data/rand_int8_4096D_5K_norm1.0.bin -D 4096 -N 5000 --norm 1.0 + + echo "Generating random 1020,1024,1536D float and 4096D int8 avectors for query" + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_1020D_1K_norm1.0.bin -D 1020 -N 1000 --norm 1.0 + #dist/bin/rand_data_gen --data_type float --output_file data/rand_float_1024D_1K_norm1.0.bin -D 1024 -N 1000 --norm 1.0 + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_1536D_1K_norm1.0.bin -D 1536 -N 1000 --norm 1.0 + dist/bin/rand_data_gen --data_type int8 --output_file data/rand_int8_4096D_1K_norm1.0.bin -D 4096 -N 1000 --norm 1.0 + + echo "Computing ground truth for 1020,1024,1536D float and 4096D int8 avectors for query" + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/rand_float_1020D_5K_norm1.0.bin --query_file data/rand_float_1020D_1K_norm1.0.bin --gt_file data/l2_rand_float_1020D_5K_norm1.0_1020D_1K_norm1.0_gt100 --K 100 + #dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/rand_float_1024D_5K_norm1.0.bin --query_file data/rand_float_1024D_1K_norm1.0.bin --gt_file data/l2_rand_float_1024D_5K_norm1.0_1024D_1K_norm1.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/rand_float_1536D_5K_norm1.0.bin --query_file data/rand_float_1536D_1K_norm1.0.bin --gt_file data/l2_rand_float_1536D_5K_norm1.0_1536D_1K_norm1.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type int8 --dist_fn l2 --base_file data/rand_int8_4096D_5K_norm1.0.bin --query_file data/rand_int8_4096D_1K_norm1.0.bin --gt_file data/l2_rand_int8_4096D_5K_norm1.0_4096D_1K_norm1.0_gt100 --K 100 + + shell: bash diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-random/action.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-random/action.yml new file mode 100644 index 0000000..2755067 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/generate-random/action.yml @@ -0,0 +1,38 @@ +name: 'Generating Random Data (Basic)' +description: 'Generates the random data files used in acceptance tests' +runs: + using: "composite" + steps: + - name: Generate Random Data (Basic) + run: | + mkdir data + + echo "Generating random vectors for index" + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_10D_10K_norm1.0.bin -D 10 -N 10000 --norm 1.0 + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_10D_10K_unnorm.bin -D 10 -N 10000 --rand_scaling 2.0 + dist/bin/rand_data_gen --data_type int8 --output_file data/rand_int8_10D_10K_norm50.0.bin -D 10 -N 10000 --norm 50.0 + dist/bin/rand_data_gen --data_type uint8 --output_file data/rand_uint8_10D_10K_norm50.0.bin -D 10 -N 10000 --norm 50.0 + + echo "Generating random vectors for query" + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_10D_1K_norm1.0.bin -D 10 -N 1000 --norm 1.0 + dist/bin/rand_data_gen --data_type float --output_file data/rand_float_10D_1K_unnorm.bin -D 10 -N 1000 --rand_scaling 2.0 + dist/bin/rand_data_gen --data_type int8 --output_file data/rand_int8_10D_1K_norm50.0.bin -D 10 -N 1000 --norm 50.0 + dist/bin/rand_data_gen --data_type uint8 --output_file data/rand_uint8_10D_1K_norm50.0.bin -D 10 -N 1000 --norm 50.0 + + echo "Computing ground truth for floats across l2, mips, and cosine distance functions" + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/rand_float_10D_10K_norm1.0.bin --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type float --dist_fn mips --base_file data/rand_float_10D_10K_norm1.0.bin --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/mips_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type float --dist_fn cosine --base_file data/rand_float_10D_10K_norm1.0.bin --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/cosine_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type float --dist_fn cosine --base_file data/rand_float_10D_10K_unnorm.bin --query_file data/rand_float_10D_1K_unnorm.bin --gt_file data/cosine_rand_float_10D_10K_unnorm_10D_1K_unnorm_gt100 --K 100 + + echo "Computing ground truth for int8s across l2, mips, and cosine distance functions" + dist/bin/compute_groundtruth --data_type int8 --dist_fn l2 --base_file data/rand_int8_10D_10K_norm50.0.bin --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type int8 --dist_fn mips --base_file data/rand_int8_10D_10K_norm50.0.bin --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/mips_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type int8 --dist_fn cosine --base_file data/rand_int8_10D_10K_norm50.0.bin --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/cosine_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + + echo "Computing ground truth for uint8s across l2, mips, and cosine distance functions" + dist/bin/compute_groundtruth --data_type uint8 --dist_fn l2 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type uint8 --dist_fn mips --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/mips_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type uint8 --dist_fn cosine --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/cosine_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + + shell: bash diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/python-wheel/action.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/python-wheel/action.yml new file mode 100644 index 0000000..6a2880c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/actions/python-wheel/action.yml @@ -0,0 +1,22 @@ +name: Build Python Wheel +description: Builds a python wheel with cibuildwheel +inputs: + cibw-identifier: + description: "CI build wheel identifier to build" + required: true +runs: + using: "composite" + steps: + - uses: actions/setup-python@v3 + - name: Install cibuildwheel + run: python -m pip install cibuildwheel==2.11.3 + shell: bash + - name: Building Python ${{inputs.cibw-identifier}} Wheel + run: python -m cibuildwheel --output-dir dist + env: + CIBW_BUILD: ${{inputs.cibw-identifier}} + shell: bash + - uses: actions/upload-artifact@v3 + with: + name: wheels + path: ./dist/*.whl diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python-pdoc.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python-pdoc.yml new file mode 100644 index 0000000..444a7ee --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python-pdoc.yml @@ -0,0 +1,81 @@ +name: DiskANN Build PDoc Documentation +on: [workflow_call] +jobs: + build-reference-documentation: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Set up Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Install python build + run: python -m pip install build + shell: bash + # Install required dependencies + - name: Prepare Linux environment + run: | + sudo scripts/dev/install-dev-deps-ubuntu.bash + shell: bash + # We need to build the wheel in order to run pdoc. pdoc does not seem to work if you just point it at + # our source directory. + - name: Building Python Wheel for documentation generation + run: python -m build --wheel --outdir documentation_dist + shell: bash + - name: "Run Reference Documentation Generation" + run: | + pip install pdoc pipdeptree + pip install documentation_dist/*.whl + echo "documentation" > dependencies_documentation.txt + pipdeptree >> dependencies_documentation.txt + pdoc -o docs/python/html diskannpy + - name: Create version environment variable + run: | + echo "DISKANN_VERSION=$(python <> $GITHUB_ENV + - name: Archive documentation version artifact + uses: actions/upload-artifact@v4 + with: + name: dependencies + path: | + ${{ github.run_id }}-dependencies_documentation.txt + overwrite: true + - name: Archive documentation artifacts + uses: actions/upload-artifact@v4 + with: + name: documentation-site + path: | + docs/python/html + # Publish to /dev if we are on the "main" branch + - name: Publish reference docs for latest development version (main branch) + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/python/html + destination_dir: docs/python/dev + # Publish to / if we are releasing + - name: Publish reference docs by version (main branch) + uses: peaceiris/actions-gh-pages@v3 + if: github.event_name == 'release' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/python/html + destination_dir: docs/python/${{ env.DISKANN_VERSION }} + # Publish to /latest if we are releasing + - name: Publish latest reference docs (main branch) + uses: peaceiris/actions-gh-pages@v3 + if: github.event_name == 'release' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/python/html + destination_dir: docs/python/latest diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python.yml new file mode 100644 index 0000000..b825398 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/build-python.yml @@ -0,0 +1,42 @@ +name: DiskANN Build Python Wheel +on: [workflow_call] +jobs: + linux-build: + name: Python - Ubuntu - ${{matrix.cibw-identifier}} + strategy: + fail-fast: false + matrix: + cibw-identifier: ["cp39-manylinux_x86_64", "cp310-manylinux_x86_64", "cp311-manylinux_x86_64"] + runs-on: ubuntu-latest + defaults: + run: + shell: bash + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Building python wheel ${{matrix.cibw-identifier}} + uses: ./.github/actions/python-wheel + with: + cibw-identifier: ${{matrix.cibw-identifier}} + windows-build: + name: Python - Windows - ${{matrix.cibw-identifier}} + strategy: + fail-fast: false + matrix: + cibw-identifier: ["cp39-win_amd64", "cp310-win_amd64", "cp311-win_amd64"] + runs-on: windows-latest + defaults: + run: + shell: bash + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 1 + - name: Building python wheel ${{matrix.cibw-identifier}} + uses: ./.github/actions/python-wheel + with: + cibw-identifier: ${{matrix.cibw-identifier}} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/common.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/common.yml new file mode 100644 index 0000000..09c020a --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/common.yml @@ -0,0 +1,28 @@ +name: DiskANN Common Checks +# common means common to both pr-test and push-test +on: [workflow_call] +jobs: + formatting-check: + strategy: + fail-fast: true + name: Code Formatting Test + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checking code formatting... + uses: ./.github/actions/format-check + docker-container-build: + name: Docker Container Build + needs: [formatting-check] + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Docker build + run: | + docker build . \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/disk-pq.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/disk-pq.yml new file mode 100644 index 0000000..930d213 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/disk-pq.yml @@ -0,0 +1,117 @@ +name: Disk With PQ +on: [workflow_call] +jobs: + acceptance-tests-disk-pq: + name: Disk, PQ + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-random + + - name: build and search disk index (one shot graph build, L2, no diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskfull_oneshot -R 16 -L 32 -B 0.00003 -M 1 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (one shot graph build, cosine, no diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn cosine --data_path data/rand_float_10D_10K_unnorm.bin --index_path_prefix data/disk_index_cosine_rand_float_10D_10K_unnorm_diskfull_oneshot -R 16 -L 32 -B 0.00003 -M 1 + dist/bin/search_disk_index --data_type float --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/disk_index_cosine_rand_float_10D_10K_unnorm_diskfull_oneshot --result_path /tmp/res --query_file data/rand_float_10D_1K_unnorm.bin --gt_file data/cosine_rand_float_10D_10K_unnorm_10D_1K_unnorm_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (one shot graph build, L2, no diskPQ) (int8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskfull_oneshot -R 16 -L 32 -B 0.00003 -M 1 + dist/bin/search_disk_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (one shot graph build, L2, no diskPQ) (uint8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskfull_oneshot -R 16 -L 32 -B 0.00003 -M 1 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + + - name: build and search disk index (one shot graph build, L2, no diskPQ, build with PQ distance comparisons) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskfull_oneshot_buildpq5 -R 16 -L 32 -B 0.00003 -M 1 --build_PQ_bytes 5 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskfull_oneshot_buildpq5 --result_path /tmp/res --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (one shot graph build, L2, no diskPQ, build with PQ distance comparisons) (int8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskfull_oneshot_buildpq5 -R 16 -L 32 -B 0.00003 -M 1 --build_PQ_bytes 5 + dist/bin/search_disk_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskfull_oneshot_buildpq5 --result_path /tmp/res --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16\ + - name: build and search disk index (one shot graph build, L2, no diskPQ, build with PQ distance comparisons) (uint8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskfull_oneshot_buildpq5 -R 16 -L 32 -B 0.00003 -M 1 --build_PQ_bytes 5 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskfull_oneshot_buildpq5 --result_path /tmp/res --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + + - name: build and search disk index (sharded graph build, L2, no diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskfull_sharded -R 16 -L 32 -B 0.00003 -M 0.00006 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskfull_sharded --result_path /tmp/res --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (sharded graph build, cosine, no diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn cosine --data_path data/rand_float_10D_10K_unnorm.bin --index_path_prefix data/disk_index_cosine_rand_float_10D_10K_unnorm_diskfull_sharded -R 16 -L 32 -B 0.00003 -M 0.00006 + dist/bin/search_disk_index --data_type float --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/disk_index_cosine_rand_float_10D_10K_unnorm_diskfull_sharded --result_path /tmp/res --query_file data/rand_float_10D_1K_unnorm.bin --gt_file data/cosine_rand_float_10D_10K_unnorm_10D_1K_unnorm_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (sharded graph build, L2, no diskPQ) (int8) + run: | + dist/bin/build_disk_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskfull_sharded -R 16 -L 32 -B 0.00003 -M 0.00006 + dist/bin/search_disk_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskfull_sharded --result_path /tmp/res --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (sharded graph build, L2, no diskPQ) (uint8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskfull_sharded -R 16 -L 32 -B 0.00003 -M 0.00006 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskfull_sharded --result_path /tmp/res --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + + - name: build and search disk index (one shot graph build, L2, diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskpq_oneshot -R 16 -L 32 -B 0.00003 -M 1 --PQ_disk_bytes 5 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_10D_10K_norm1.0_diskpq_oneshot --result_path /tmp/res --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (one shot graph build, L2, diskPQ) (int8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskpq_oneshot -R 16 -L 32 -B 0.00003 -M 1 --PQ_disk_bytes 5 + dist/bin/search_disk_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_int8_10D_10K_norm50.0_diskpq_oneshot --result_path /tmp/res --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search disk index (one shot graph build, L2, diskPQ) (uint8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskpq_oneshot -R 16 -L 32 -B 0.00003 -M 1 --PQ_disk_bytes 5 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50.0_diskpq_oneshot --result_path /tmp/res --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + + - name: build and search disk index (sharded graph build, MIPS, diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn mips --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/disk_index_mips_rand_float_10D_10K_norm1.0_diskpq_sharded -R 16 -L 32 -B 0.00003 -M 0.00006 --PQ_disk_bytes 5 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_mips_rand_float_10D_10K_norm1.0_diskpq_sharded --result_path /tmp/res --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/mips_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + + - name: upload data and bin + uses: actions/upload-artifact@v4 + with: + name: disk-pq-${{matrix.os}} + path: | + ./dist/** + ./data/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic-labels.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic-labels.yml new file mode 100644 index 0000000..d5dc712 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic-labels.yml @@ -0,0 +1,102 @@ +name: Dynamic-Labels +on: [workflow_call] +jobs: + acceptance-tests-dynamic: + name: Dynamic-Labels + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-random + + - name: Generate Labels + run: | + echo "Generating synthetic labels and computing ground truth for filtered search with universal label" + dist/bin/generate_synthetic_labels --num_labels 50 --num_points 10000 --output_file data/rand_labels_50_10K.txt --distribution_type random + + echo "Generating synthetic labels with a zipf distribution and computing ground truth for filtered search with universal label" + dist/bin/generate_synthetic_labels --num_labels 50 --num_points 10000 --output_file data/zipf_labels_50_10K.txt --distribution_type zipf + + - name: Test a streaming index (float) with labels (Zipf distributed) + run: | + dist/bin/test_streaming_scenario --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --universal_label 0 --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/index_zipf_stream -R 64 --FilteredLbuild 200 -L 50 --alpha 1.2 --insert_threads 8 --consolidate_threads 8 --max_points_to_insert 10000 --active_window 4000 --consolidate_interval 2000 --start_point_norm 3.2 --unique_labels_supported 51 + + echo "Computing groundtruth with filter" + dist/bin/compute_groundtruth_for_filters --data_type float --universal_label 0 --filter_label 1 --dist_fn l2 --base_file data/index_zipf_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_zipf_base-act4000-cons2000-max10000_1 --label_file data/index_zipf_stream.after-streaming-act4000-cons2000-max10000_raw_labels.txt --tags_file data/index_zipf_stream.after-streaming-act4000-cons2000-max10000.tags + echo "Searching with filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --filter_label 1 --fail_if_recall_below 40 --index_path_prefix data/index_zipf_stream.after-streaming-act4000-cons2000-max10000 --result_path data/res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_zipf_base-act4000-cons2000-max10000_1 -K 10 -L 20 40 60 80 100 150 -T 64 --dynamic true --tags 1 + + echo "Computing groundtruth w/o filter" + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/index_zipf_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_zipf_base-act4000-cons2000-max10000 + echo "Searching without filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_zipf_stream.after-streaming-act4000-cons2000-max10000 --result_path res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_zipf_base-act4000-cons2000-max10000 -K 10 -L 20 40 60 80 100 -T 64 + + - name: Test a streaming index (float) with labels (random distributed) + run: | + dist/bin/test_streaming_scenario --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --universal_label 0 --label_file data/rand_labels_50_10K.txt --index_path_prefix data/index_rand_stream -R 64 --FilteredLbuild 200 -L 50 --alpha 1.2 --insert_threads 8 --consolidate_threads 8 --max_points_to_insert 10000 --active_window 4000 --consolidate_interval 2000 --start_point_norm 3.2 --unique_labels_supported 51 + + echo "Computing groundtruth with filter" + dist/bin/compute_groundtruth_for_filters --data_type float --universal_label 0 --filter_label 1 --dist_fn l2 --base_file data/index_rand_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_rand_base-act4000-cons2000-max10000_1 --label_file data/index_rand_stream.after-streaming-act4000-cons2000-max10000_raw_labels.txt --tags_file data/index_rand_stream.after-streaming-act4000-cons2000-max10000.tags + echo "Searching with filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --filter_label 1 --fail_if_recall_below 40 --index_path_prefix data/index_rand_stream.after-streaming-act4000-cons2000-max10000 --result_path data/res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_rand_base-act4000-cons2000-max10000_1 -K 10 -L 20 40 60 80 100 150 -T 64 --dynamic true --tags 1 + + echo "Computing groundtruth w/o filter" + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/index_rand_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_rand_base-act4000-cons2000-max10000 + echo "Searching without filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_rand_stream.after-streaming-act4000-cons2000-max10000 --result_path res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_rand_base-act4000-cons2000-max10000 -K 10 -L 20 40 60 80 100 -T 64 + + - name: Test Insert Delete Consolidate (float) with labels (zipf distributed) + run: | + dist/bin/test_insert_deletes_consolidate --data_type float --dist_fn l2 --universal_label 0 --label_file data/zipf_labels_50_10K.txt --FilteredLbuild 70 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_zipf_ins_del -R 64 -L 10 --alpha 1.2 --points_to_skip 0 --max_points_to_insert 7500 --beginning_index_size 0 --points_per_checkpoint 1000 --checkpoints_per_snapshot 0 --points_to_delete_from_beginning 2500 --start_deletes_after 5000 --do_concurrent true --start_point_norm 3.2 --unique_labels_supported 51 + + echo "Computing groundtruth with filter" + dist/bin/compute_groundtruth_for_filters --data_type float --filter_label 5 --universal_label 0 --dist_fn l2 --base_file data/index_zipf_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_zipf_random10D_1K_wlabel_5 --label_file data/index_zipf_ins_del.after-concurrent-delete-del2500-7500_raw_labels.txt --tags_file data/index_zipf_ins_del.after-concurrent-delete-del2500-7500.tags + echo "Searching with filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --filter_label 5 --fail_if_recall_below 10 --index_path_prefix data/index_zipf_ins_del.after-concurrent-delete-del2500-7500 --result_path data/res_zipf_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_zipf_random10D_1K_wlabel_5 -K 10 -L 20 40 60 80 100 150 -T 64 --dynamic true --tags 1 + + echo "Computing groundtruth w/o filter" + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/index_zipf_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_zipf_random10D_1K + echo "Searching without filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_zipf_ins_del.after-concurrent-delete-del2500-7500 --result_path res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_zipf_random10D_1K -K 10 -L 20 40 60 80 100 -T 64 + + - name: Test Insert Delete Consolidate (float) with labels (random distributed) + run: | + dist/bin/test_insert_deletes_consolidate --data_type float --dist_fn l2 --universal_label 0 --label_file data/rand_labels_50_10K.txt --FilteredLbuild 70 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_rand_ins_del -R 64 -L 10 --alpha 1.2 --points_to_skip 0 --max_points_to_insert 7500 --beginning_index_size 0 --points_per_checkpoint 1000 --checkpoints_per_snapshot 0 --points_to_delete_from_beginning 2500 --start_deletes_after 5000 --do_concurrent true --start_point_norm 3.2 --unique_labels_supported 51 + + echo "Computing groundtruth with filter" + dist/bin/compute_groundtruth_for_filters --data_type float --filter_label 5 --universal_label 0 --dist_fn l2 --base_file data/index_rand_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_rand_random10D_1K_wlabel_5 --label_file data/index_rand_ins_del.after-concurrent-delete-del2500-7500_raw_labels.txt --tags_file data/index_rand_ins_del.after-concurrent-delete-del2500-7500.tags + echo "Searching with filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --filter_label 5 --fail_if_recall_below 40 --index_path_prefix data/index_rand_ins_del.after-concurrent-delete-del2500-7500 --result_path data/res_rand_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_rand_random10D_1K_wlabel_5 -K 10 -L 20 40 60 80 100 150 -T 64 --dynamic true --tags 1 + + echo "Computing groundtruth w/o filter" + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/index_rand_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_rand_random10D_1K + echo "Searching without filter" + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_rand_ins_del.after-concurrent-delete-del2500-7500 --result_path res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_rand_random10D_1K -K 10 -L 20 40 60 80 100 -T 64 + + - name: upload data and bin + uses: actions/upload-artifact@v4 + with: + name: dynamic-labels-${{matrix.os}} + path: | + ./dist/** + ./data/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic.yml new file mode 100644 index 0000000..edd691e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/dynamic.yml @@ -0,0 +1,75 @@ +name: Dynamic +on: [workflow_call] +jobs: + acceptance-tests-dynamic: + name: Dynamic + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-random + + - name: test a streaming index (float) + run: | + dist/bin/test_streaming_scenario --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_stream -R 64 -L 600 --alpha 1.2 --insert_threads 4 --consolidate_threads 4 --max_points_to_insert 10000 --active_window 4000 --consolidate_interval 2000 --start_point_norm 3.2 + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/index_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_base-act4000-cons2000-max10000 --tags_file data/index_stream.after-streaming-act4000-cons2000-max10000.tags + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_stream.after-streaming-act4000-cons2000-max10000 --result_path data/res_stream --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_base-act4000-cons2000-max10000 -K 10 -L 20 40 60 80 100 -T 64 --dynamic true --tags 1 + - name: test a streaming index (int8) + if: success() || failure() + run: | + dist/bin/test_streaming_scenario --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/index_stream -R 64 -L 600 --alpha 1.2 --insert_threads 4 --consolidate_threads 4 --max_points_to_insert 10000 --active_window 4000 --consolidate_interval 2000 --start_point_norm 200 + dist/bin/compute_groundtruth --data_type int8 --dist_fn l2 --base_file data/index_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_int8_10D_1K_norm50.0.bin --K 100 --gt_file data/gt100_base-act4000-cons2000-max10000 --tags_file data/index_stream.after-streaming-act4000-cons2000-max10000.tags + dist/bin/search_memory_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_stream.after-streaming-act4000-cons2000-max10000 --result_path res_stream --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/gt100_base-act4000-cons2000-max10000 -K 10 -L 20 40 60 80 100 -T 64 --dynamic true --tags 1 + - name: test a streaming index + if: success() || failure() + run: | + dist/bin/test_streaming_scenario --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/index_stream -R 64 -L 600 --alpha 1.2 --insert_threads 4 --consolidate_threads 4 --max_points_to_insert 10000 --active_window 4000 --consolidate_interval 2000 --start_point_norm 200 + dist/bin/compute_groundtruth --data_type uint8 --dist_fn l2 --base_file data/index_stream.after-streaming-act4000-cons2000-max10000.data --query_file data/rand_uint8_10D_1K_norm50.0.bin --K 100 --gt_file data/gt100_base-act4000-cons2000-max10000 --tags_file data/index_stream.after-streaming-act4000-cons2000-max10000.tags + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_stream.after-streaming-act4000-cons2000-max10000 --result_path data/res_stream --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/gt100_base-act4000-cons2000-max10000 -K 10 -L 20 40 60 80 100 -T 64 --dynamic true --tags 1 + + - name: build and search an incremental index (float) + if: success() || failure() + run: | + dist/bin/test_insert_deletes_consolidate --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_ins_del -R 64 -L 300 --alpha 1.2 -T 8 --points_to_skip 0 --max_points_to_insert 7500 --beginning_index_size 0 --points_per_checkpoint 1000 --checkpoints_per_snapshot 0 --points_to_delete_from_beginning 2500 --start_deletes_after 5000 --do_concurrent true --start_point_norm 3.2; + dist/bin/compute_groundtruth --data_type float --dist_fn l2 --base_file data/index_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_float_10D_1K_norm1.0.bin --K 100 --gt_file data/gt100_random10D_1K-conc-2500-7500 --tags_file data/index_ins_del.after-concurrent-delete-del2500-7500.tags + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_ins_del.after-concurrent-delete-del2500-7500 --result_path data/res_ins_del --query_file data/rand_float_10D_1K_norm1.0.bin --gt_file data/gt100_random10D_1K-conc-2500-7500 -K 10 -L 20 40 60 80 100 -T 8 --dynamic true --tags 1 + - name: build and search an incremental index (int8) + if: success() || failure() + run: | + dist/bin/test_insert_deletes_consolidate --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/index_ins_del -R 64 -L 300 --alpha 1.2 -T 8 --points_to_skip 0 --max_points_to_insert 7500 --beginning_index_size 0 --points_per_checkpoint 1000 --checkpoints_per_snapshot 0 --points_to_delete_from_beginning 2500 --start_deletes_after 5000 --do_concurrent true --start_point_norm 200 + dist/bin/compute_groundtruth --data_type int8 --dist_fn l2 --base_file data/index_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_int8_10D_1K_norm50.0.bin --K 100 --gt_file data/gt100_random10D_1K-conc-2500-7500 --tags_file data/index_ins_del.after-concurrent-delete-del2500-7500.tags + dist/bin/search_memory_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_ins_del.after-concurrent-delete-del2500-7500 --result_path data/res_ins_del --query_file data/rand_int8_10D_1K_norm50.0.bin --gt_file data/gt100_random10D_1K-conc-2500-7500 -K 10 -L 20 40 60 80 100 -T 8 --dynamic true --tags 1 + - name: build and search an incremental index (uint8) + if: success() || failure() + run: | + dist/bin/test_insert_deletes_consolidate --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/index_ins_del -R 64 -L 300 --alpha 1.2 -T 8 --points_to_skip 0 --max_points_to_insert 7500 --beginning_index_size 0 --points_per_checkpoint 1000 --checkpoints_per_snapshot 0 --points_to_delete_from_beginning 2500 --start_deletes_after 5000 --do_concurrent true --start_point_norm 200 + dist/bin/compute_groundtruth --data_type uint8 --dist_fn l2 --base_file data/index_ins_del.after-concurrent-delete-del2500-7500.data --query_file data/rand_uint8_10D_1K_norm50.0.bin --K 100 --gt_file data/gt100_random10D_10K-conc-2500-7500 --tags_file data/index_ins_del.after-concurrent-delete-del2500-7500.tags + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_ins_del.after-concurrent-delete-del2500-7500 --result_path data/res_ins_del --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/gt100_random10D_10K-conc-2500-7500 -K 10 -L 20 40 60 80 100 -T 8 --dynamic true --tags 1 + + - name: upload data and bin + uses: actions/upload-artifact@v4 + with: + name: dynamic-${{matrix.os}} + path: | + ./dist/** + ./data/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-no-pq.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-no-pq.yml new file mode 100644 index 0000000..07fc4a2 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-no-pq.yml @@ -0,0 +1,81 @@ +name: In-Memory Without PQ +on: [workflow_call] +jobs: + acceptance-tests-mem-no-pq: + name: In-Mem, Without PQ + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-random + + - name: build and search in-memory index with L2 metrics (float) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0 + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0 --query_file data/rand_float_10D_1K_norm1.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 -L 16 32 + - name: build and search in-memory index with L2 metrics (int8) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/index_l2_rand_int8_10D_10K_norm50.0 + dist/bin/search_memory_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_int8_10D_10K_norm50.0 --query_file data/rand_int8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 16 32 + - name: build and search in-memory index with L2 metrics (uint8) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50.0 + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50.0 --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 16 32 + + - name: Searching with fast_l2 distance function (float) + if: runner.os != 'Windows' && (success() || failure()) + run: | + dist/bin/search_memory_index --data_type float --dist_fn fast_l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0 --query_file data/rand_float_10D_1K_norm1.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 -L 16 32 + + - name: build and search in-memory index with MIPS metric (float) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type float --dist_fn mips --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_mips_rand_float_10D_10K_norm1.0 + dist/bin/search_memory_index --data_type float --dist_fn mips --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0 --query_file data/rand_float_10D_1K_norm1.0.bin --recall_at 10 --result_path temp --gt_file data/mips_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 -L 16 32 + + - name: build and search in-memory index with cosine metric (float) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type float --dist_fn cosine --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_cosine_rand_float_10D_10K_norm1.0 + dist/bin/search_memory_index --data_type float --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0 --query_file data/rand_float_10D_1K_norm1.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 -L 16 32 + - name: build and search in-memory index with cosine metric (int8) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type int8 --dist_fn cosine --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/index_cosine_rand_int8_10D_10K_norm50.0 + dist/bin/search_memory_index --data_type int8 --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_int8_10D_10K_norm50.0 --query_file data/rand_int8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 16 32 + - name: build and search in-memory index with cosine metric + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn cosine --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/index_cosine_rand_uint8_10D_10K_norm50.0 + dist/bin/search_memory_index --data_type uint8 --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50.0 --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 16 32 + + - name: upload data and bin + uses: actions/upload-artifact@v4 + with: + name: in-memory-no-pq-${{matrix.os}} + path: | + ./dist/** + ./data/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-pq.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-pq.yml new file mode 100644 index 0000000..be20f10 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/in-mem-pq.yml @@ -0,0 +1,56 @@ +name: In-Memory With PQ +on: [workflow_call] +jobs: + acceptance-tests-mem-pq: + name: In-Mem, PQ + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-random + + - name: build and search in-memory index with L2 metric with PQ based distance comparisons (float) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type float --dist_fn l2 --data_path data/rand_float_10D_10K_norm1.0.bin --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0_buildpq5 --build_PQ_bytes 5 + dist/bin/search_memory_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_float_10D_10K_norm1.0_buildpq5 --query_file data/rand_float_10D_1K_norm1.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_float_10D_10K_norm1.0_10D_1K_norm1.0_gt100 -L 16 32 + + - name: build and search in-memory index with L2 metrics with PQ base distance comparisons (int8) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_10D_10K_norm50.0.bin --index_path_prefix data/index_l2_rand_int8_10D_10K_norm50.0_buildpq5 --build_PQ_bytes 5 + dist/bin/search_memory_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_int8_10D_10K_norm50.0_buildpq5 --query_file data/rand_int8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_int8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 16 32 + + - name: build and search in-memory index with L2 metrics with PQ base distance comparisons (uint8) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --data_path data/rand_uint8_10D_10K_norm50.0.bin --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50.0_buildpq5 --build_PQ_bytes 5 + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50.0_buildpq5 --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 16 32 + + - name: upload data and bin + uses: actions/upload-artifact@v4 + with: + name: in-memory-pq-${{matrix.os}} + path: | + ./dist/** + ./data/** \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/labels.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/labels.yml new file mode 100644 index 0000000..93995f7 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/labels.yml @@ -0,0 +1,120 @@ +name: Labels +on: [workflow_call] +jobs: + acceptance-tests-labels: + name: Labels + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-random + + - name: Generate Labels + run: | + echo "Generating synthetic labels and computing ground truth for filtered search with universal label" + dist/bin/generate_synthetic_labels --num_labels 50 --num_points 10000 --output_file data/rand_labels_50_10K.txt --distribution_type random + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn l2 --universal_label 0 --filter_label 10 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn mips --universal_label 0 --filter_label 10 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --gt_file data/mips_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn cosine --universal_label 0 --filter_label 10 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --gt_file data/cosine_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + + echo "Generating synthetic labels with a zipf distribution and computing ground truth for filtered search with universal label" + dist/bin/generate_synthetic_labels --num_labels 50 --num_points 10000 --output_file data/zipf_labels_50_10K.txt --distribution_type zipf + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn l2 --universal_label 0 --filter_label 5 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn mips --universal_label 0 --filter_label 5 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --gt_file data/mips_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn cosine --universal_label 0 --filter_label 5 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --gt_file data/cosine_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + + echo "Generating synthetic labels and computing ground truth for filtered search without a universal label" + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn l2 --filter_label 5 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel_nouniversal --K 100 + dist/bin/generate_synthetic_labels --num_labels 10 --num_points 1000 --output_file data/query_labels_1K.txt --distribution_type one_per_point + dist/bin/compute_groundtruth_for_filters --data_type uint8 --dist_fn l2 --universal_label 0 --filter_label_file data/query_labels_1K.txt --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --gt_file data/combined_l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --K 100 + + - name: build and search in-memory index with labels using L2 and Cosine metrics (random distributed labels) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --FilteredLbuild 90 --universal_label 0 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50_wlabel + dist/bin/build_memory_index --data_type uint8 --dist_fn cosine --FilteredLbuild 90 --universal_label 0 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --index_path_prefix data/index_cosine_rand_uint8_10D_10K_norm50_wlabel + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --filter_label 10 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -L 16 32 + dist/bin/search_memory_index --data_type uint8 --dist_fn cosine --filter_label 10 --fail_if_recall_below 70 --index_path_prefix data/index_cosine_rand_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -L 16 32 + + echo "Searching without filters" + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 32 64 + dist/bin/search_memory_index --data_type uint8 --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/index_cosine_rand_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 32 64 + + - name: build and search disk index with labels using L2 and Cosine metrics (random distributed labels) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --universal_label 0 --FilteredLbuild 90 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50_wlabel -R 32 -L 5 -B 0.00003 -M 1 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --filter_label 10 --fail_if_recall_below 50 --index_path_prefix data/disk_index_l2_rand_uint8_10D_10K_norm50_wlabel --result_path temp --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: build and search in-memory index with labels using L2 and Cosine metrics (zipf distributed labels) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --FilteredLbuild 90 --universal_label 0 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel + dist/bin/build_memory_index --data_type uint8 --dist_fn cosine --FilteredLbuild 90 --universal_label 0 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/index_cosine_zipf_uint8_10D_10K_norm50_wlabel + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --filter_label 5 --fail_if_recall_below 70 --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -L 16 32 + dist/bin/search_memory_index --data_type uint8 --dist_fn cosine --filter_label 5 --fail_if_recall_below 70 --index_path_prefix data/index_cosine_zipf_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -L 16 32 + + echo "Searching without filters" + dist/bin/compute_groundtruth --data_type uint8 --dist_fn l2 --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + dist/bin/compute_groundtruth --data_type uint8 --dist_fn cosine --base_file data/rand_uint8_10D_10K_norm50.0.bin --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/cosine_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 --K 100 + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 32 64 + dist/bin/search_memory_index --data_type uint8 --dist_fn cosine --fail_if_recall_below 70 --index_path_prefix data/index_cosine_zipf_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/cosine_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100 -L 32 64 + + - name: build and search disk index with labels using L2 and Cosine metrics (zipf distributed labels) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --universal_label 0 --FilteredLbuild 90 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/disk_index_l2_zipf_uint8_10D_10K_norm50_wlabel -R 32 -L 5 -B 0.00003 -M 1 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --filter_label 5 --fail_if_recall_below 50 --index_path_prefix data/disk_index_l2_zipf_uint8_10D_10K_norm50_wlabel --result_path temp --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + + - name : build and search in-memory and disk index (without universal label, zipf distributed) + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --FilteredLbuild 90 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel_nouniversal + dist/bin/build_disk_index --data_type uint8 --dist_fn l2 --FilteredLbuild 90 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/disk_index_l2_zipf_uint8_10D_10K_norm50_wlabel_nouniversal -R 32 -L 5 -B 0.00003 -M 1 + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --filter_label 5 --fail_if_recall_below 70 --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel_nouniversal --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel_nouniversal -L 16 32 + dist/bin/search_disk_index --data_type uint8 --dist_fn l2 --filter_label 5 --index_path_prefix data/disk_index_l2_zipf_uint8_10D_10K_norm50_wlabel_nouniversal --result_path temp --query_file data/rand_uint8_10D_1K_norm50.0.bin --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel_nouniversal --recall_at 5 -L 5 12 -W 2 --num_nodes_to_cache 10 -T 16 + - name: Generate combined GT for each query with a separate label and search + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --FilteredLbuild 90 --universal_label 0 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --query_filters_file data/query_labels_1K.txt --fail_if_recall_below 70 --index_path_prefix data/index_l2_zipf_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/combined_l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -L 16 32 + - name: build and search in-memory index with pq_dist of 5 with 10 dimensions + if: success() || failure() + run: | + dist/bin/build_memory_index --data_type uint8 --dist_fn l2 --FilteredLbuild 90 --universal_label 0 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/rand_labels_50_10K.txt --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50_wlabel --build_PQ_bytes 5 + dist/bin/search_memory_index --data_type uint8 --dist_fn l2 --filter_label 10 --fail_if_recall_below 70 --index_path_prefix data/index_l2_rand_uint8_10D_10K_norm50_wlabel --query_file data/rand_uint8_10D_1K_norm50.0.bin --recall_at 10 --result_path temp --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -L 16 32 + - name: Build and search stitched vamana with random and zipf distributed labels + if: success() || failure() + run: | + dist/bin/build_stitched_index --num_threads 48 --data_type uint8 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/rand_labels_50_10K.txt -R 32 -L 100 --alpha 1.2 --stitched_R 64 --index_path_prefix data/stit_rand_32_100_64_new --universal_label 0 + dist/bin/build_stitched_index --num_threads 48 --data_type uint8 --data_path data/rand_uint8_10D_10K_norm50.0.bin --label_file data/zipf_labels_50_10K.txt -R 32 -L 100 --alpha 1.2 --stitched_R 64 --index_path_prefix data/stit_zipf_32_100_64_new --universal_label 0 + dist/bin/search_memory_index --num_threads 48 --data_type uint8 --dist_fn l2 --filter_label 10 --index_path_prefix data/stit_rand_32_100_64_new --query_file data/rand_uint8_10D_1K_norm50.0.bin --result_path data/rand_stit_96_10_90_new --gt_file data/l2_rand_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -K 10 -L 16 32 150 + dist/bin/search_memory_index --num_threads 48 --data_type uint8 --dist_fn l2 --filter_label 5 --index_path_prefix data/stit_zipf_32_100_64_new --query_file data/rand_uint8_10D_1K_norm50.0.bin --result_path data/zipf_stit_96_10_90_new --gt_file data/l2_zipf_uint8_10D_10K_norm50.0_10D_1K_norm50.0_gt100_wlabel -K 10 -L 16 32 150 + + - name: upload data and bin + if: success() || failure() + uses: actions/upload-artifact@v4 + with: + name: labels-${{matrix.os}} + path: | + ./dist/** + ./data/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/multi-sector-disk-pq.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/multi-sector-disk-pq.yml new file mode 100644 index 0000000..969467a --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/multi-sector-disk-pq.yml @@ -0,0 +1,60 @@ +name: Disk With PQ +on: [workflow_call] +jobs: + acceptance-tests-disk-pq: + name: Disk, PQ + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Generate Data + uses: ./.github/actions/generate-high-dim-random + + - name: build and search disk index (1020D, one shot graph build, L2, no diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_1020D_5K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_1020D_5K_norm1.0_diskfull_oneshot -R 32 -L 500 -B 0.003 -M 1 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_1020D_5K_norm1.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_float_1020D_1K_norm1.0.bin --gt_file data/l2_rand_float_1020D_5K_norm1.0_1020D_1K_norm1.0_gt100 --recall_at 5 -L 250 -W 2 --num_nodes_to_cache 100 -T 16 + #- name: build and search disk index (1024D, one shot graph build, L2, no diskPQ) (float) + # if: success() || failure() + # run: | + # dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_1024D_5K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_1024D_5K_norm1.0_diskfull_oneshot -R 32 -L 500 -B 0.003 -M 1 + # dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_1024D_5K_norm1.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_float_1024D_1K_norm1.0.bin --gt_file data/l2_rand_float_1024D_5K_norm1.0_1024D_1K_norm1.0_gt100 --recall_at 5 -L 250 -W 2 --num_nodes_to_cache 100 -T 16 + - name: build and search disk index (1536D, one shot graph build, L2, no diskPQ) (float) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type float --dist_fn l2 --data_path data/rand_float_1536D_5K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_float_1536D_5K_norm1.0_diskfull_oneshot -R 32 -L 500 -B 0.003 -M 1 + dist/bin/search_disk_index --data_type float --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_float_1536D_5K_norm1.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_float_1536D_1K_norm1.0.bin --gt_file data/l2_rand_float_1536D_5K_norm1.0_1536D_1K_norm1.0_gt100 --recall_at 5 -L 250 -W 2 --num_nodes_to_cache 100 -T 16 + + - name: build and search disk index (4096D, one shot graph build, L2, no diskPQ) (int8) + if: success() || failure() + run: | + dist/bin/build_disk_index --data_type int8 --dist_fn l2 --data_path data/rand_int8_4096D_5K_norm1.0.bin --index_path_prefix data/disk_index_l2_rand_int8_4096D_5K_norm1.0_diskfull_oneshot -R 32 -L 500 -B 0.003 -M 1 + dist/bin/search_disk_index --data_type int8 --dist_fn l2 --fail_if_recall_below 70 --index_path_prefix data/disk_index_l2_rand_int8_4096D_5K_norm1.0_diskfull_oneshot --result_path /tmp/res --query_file data/rand_int8_4096D_1K_norm1.0.bin --gt_file data/l2_rand_int8_4096D_5K_norm1.0_4096D_1K_norm1.0_gt100 --recall_at 5 -L 250 -W 2 --num_nodes_to_cache 100 -T 16 + + - name: upload data and bin + uses: actions/upload-artifact@v4 + with: + name: multi-sector-disk-pq-${{matrix.os}} + path: | + ./dist/** + ./data/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/perf.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/perf.yml new file mode 100644 index 0000000..d4eb9e2 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/perf.yml @@ -0,0 +1,26 @@ +name: DiskANN Nightly Performance Metrics +on: + schedule: + - cron: "41 14 * * *" # 14:41 UTC, 7:41 PDT, 8:41 PST, 08:11 IST +jobs: + perf-test: + name: Run Perf Test from main + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Build Perf Container + run: | + docker build --build-arg GIT_COMMIT_ISH="$GITHUB_SHA" -t perf -f scripts/perf/Dockerfile scripts + - name: Performance Tests + run: | + mkdir metrics + docker run -v ./metrics:/app/logs perf &> ./metrics/combined_stdouterr.log + - name: Upload Metrics Logs + uses: actions/upload-artifact@v4 + with: + name: metrics-${{matrix.os}} + path: | + ./metrics/** diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/pr-test.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/pr-test.yml new file mode 100644 index 0000000..f84953b --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/pr-test.yml @@ -0,0 +1,35 @@ +name: DiskANN Pull Request Build and Test +on: [pull_request] +jobs: + common: + strategy: + fail-fast: true + name: DiskANN Common Build Checks + uses: ./.github/workflows/common.yml + unit-tests: + name: Unit tests + uses: ./.github/workflows/unit-tests.yml + in-mem-pq: + name: In-Memory with PQ + uses: ./.github/workflows/in-mem-pq.yml + in-mem-no-pq: + name: In-Memory without PQ + uses: ./.github/workflows/in-mem-no-pq.yml + disk-pq: + name: Disk with PQ + uses: ./.github/workflows/disk-pq.yml + multi-sector-disk-pq: + name: Multi-sector Disk with PQ + uses: ./.github/workflows/multi-sector-disk-pq.yml + labels: + name: Labels + uses: ./.github/workflows/labels.yml + dynamic: + name: Dynamic + uses: ./.github/workflows/dynamic.yml + dynamic-labels: + name: Dynamic Labels + uses: ./.github/workflows/dynamic-labels.yml + python: + name: Python + uses: ./.github/workflows/build-python.yml diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/push-test.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/push-test.yml new file mode 100644 index 0000000..d1261d5 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/push-test.yml @@ -0,0 +1,50 @@ +name: DiskANN Push Build +on: [push] +jobs: + common: + strategy: + fail-fast: true + name: DiskANN Common Build Checks + uses: ./.github/workflows/common.yml + build-documentation: + permissions: + contents: write + strategy: + fail-fast: true + name: DiskANN Build Documentation + uses: ./.github/workflows/build-python-pdoc.yml + build: + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, windows-2019, windows-latest ] + name: Build for ${{matrix.os}} + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: Build diskannpy dependency tree + run: | + pip install diskannpy pipdeptree + echo "dependencies" > dependencies_${{ matrix.os }}.txt + pipdeptree >> dependencies_${{ matrix.os }}.txt + - name: Archive diskannpy dependencies artifact + uses: actions/upload-artifact@v4 + with: + name: dependencies_${{ matrix.os }} + path: | + dependencies_${{ matrix.os }}.txt + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/python-release.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/python-release.yml new file mode 100644 index 0000000..a15d4d1 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/python-release.yml @@ -0,0 +1,43 @@ +name: Build and Release Python Wheels +on: + release: + types: [published] +jobs: + python-release-wheels: + name: Python + uses: ./.github/workflows/build-python.yml + build-documentation: + strategy: + fail-fast: true + name: DiskANN Build Documentation + uses: ./.github/workflows/build-python-pdoc.yml + release: + permissions: + contents: write + runs-on: ubuntu-latest + needs: python-release-wheels + steps: + - uses: actions/download-artifact@v3 + with: + name: wheels + path: dist/ + - name: Generate SHA256 files for each wheel + run: | + sha256sum dist/*.whl > checksums.txt + cat checksums.txt + - uses: actions/setup-python@v3 + - name: Install twine + run: python -m pip install twine + - name: Publish with twine + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + twine upload dist/*.whl + - name: Update release with SHA256 and Artifacts + uses: softprops/action-gh-release@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + files: | + dist/*.whl + checksums.txt diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/unit-tests.yml b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/unit-tests.yml new file mode 100644 index 0000000..6ae6877 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.github/workflows/unit-tests.yml @@ -0,0 +1,32 @@ +name: Unit Tests +on: [workflow_call] +jobs: + acceptance-tests-labels: + name: Unit Tests + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-2019, windows-latest] + runs-on: ${{matrix.os}} + defaults: + run: + shell: bash + steps: + - name: Checkout repository + if: ${{ runner.os == 'Linux' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + - name: Checkout repository + if: ${{ runner.os == 'Windows' }} + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + - name: DiskANN Build CLI Applications + uses: ./.github/actions/build + + - name: Run Unit Tests + run: | + cd build + ctest -C Release \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.gitignore b/packages/leann-backend-diskann/third_party/DiskANN/.gitignore new file mode 100644 index 0000000..c6a88e7 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.gitignore @@ -0,0 +1,384 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +/vcproj/nsg/x64/Debug/nsg.Build.CppClean.log +/vcproj/test_recall/x64/Debug/test_recall.Build.CppClean.log +/vcproj/test_recall/test_recall.vcxproj.user +/.vs +/out/build/x64-Debug +cscope* + +build/ +build_linux/ +!.github/actions/build + +# jetbrains specific stuff +.idea/ +cmake-build-debug/ + +#python extension module ignores +python/diskannpy.egg-info/ +python/dist/ + +**/*.egg-info +wheelhouse/* +dist/* +venv*/** +*.swp + +gperftools + +# Rust +rust/target + +python/src/*.so + +compile_commands.json \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/.gitmodules b/packages/leann-backend-diskann/third_party/DiskANN/.gitmodules new file mode 100644 index 0000000..125572b --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/.gitmodules @@ -0,0 +1,3 @@ +[submodule "gperftools"] + path = gperftools + url = https://github.com/gperftools/gperftools.git diff --git a/packages/leann-backend-diskann/third_party/DiskANN/CMakeLists.txt b/packages/leann-backend-diskann/third_party/DiskANN/CMakeLists.txt new file mode 100644 index 0000000..4025861 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/CMakeLists.txt @@ -0,0 +1,563 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +# Parameters: +# +# BOOST_ROOT: +# Specify root of the Boost library if Boost cannot be auto-detected. On Windows, a fallback to a +# downloaded nuget version will be used if Boost cannot be found. +# +# DISKANN_RELEASE_UNUSED_TCMALLOC_MEMORY_AT_CHECKPOINTS: +# This is a work-in-progress feature, not completed yet. The core DiskANN library will be split into +# build-related and search-related functionality. In build-related functionality, when using tcmalloc, +# it's possible to release memory that's free but reserved by tcmalloc. Setting this to true enables +# such behavior. +# Contact for this feature: gopalrs. + + +# Some variables like MSVC are defined only after project(), so put that first. +cmake_minimum_required(VERSION 3.20) +project(diskann) + +#Set option to use tcmalloc +option(USE_TCMALLOC "Use tcmalloc from gperftools" ON) + +# set tcmalloc to false when on macos +if(APPLE) + set(USE_TCMALLOC OFF) +endif() + +option(PYBIND "Build with Python bindings" ON) + +if(PYBIND) + # Find Python + find_package(Python 3.6 COMPONENTS Interpreter Development REQUIRED) + execute_process( + COMMAND "${Python_EXECUTABLE}" -c "import pybind11; print(pybind11.get_cmake_dir())" + OUTPUT_VARIABLE pybind11_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + find_package(pybind11 CONFIG REQUIRED) + + message(STATUS "Python include dirs: ${Python_INCLUDE_DIRS}") + message(STATUS "Pybind11 include dirs: ${pybind11_INCLUDE_DIRS}") + + # Add pybind11 include directories + include_directories(SYSTEM ${pybind11_INCLUDE_DIRS} ${Python_INCLUDE_DIRS}) + + # Add compilation definitions + add_definitions(-DPYBIND11_EMBEDDED) + + # Set visibility flags + if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") + endif() +endif() + +set(CMAKE_STANDARD 17) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# if(NOT MSVC) +# set(CMAKE_CXX_COMPILER g++) +# endif() + +set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake;${CMAKE_MODULE_PATH}") + +# Install nuget packages for dependencies. +if (MSVC) + find_program(NUGET_EXE NAMES nuget) + + if (NOT NUGET_EXE) + message(FATAL_ERROR "Cannot find nuget command line tool.\nPlease install it from e.g. https://www.nuget.org/downloads") + endif() + + set(DISKANN_MSVC_PACKAGES_CONFIG ${CMAKE_BINARY_DIR}/packages.config) + set(DISKANN_MSVC_PACKAGES ${CMAKE_BINARY_DIR}/packages) + + message(STATUS "Invoking nuget to download Boost, OpenMP and MKL dependencies...") + configure_file(${PROJECT_SOURCE_DIR}/windows/packages.config.in ${DISKANN_MSVC_PACKAGES_CONFIG}) + exec_program(${NUGET_EXE} ARGS install \"${DISKANN_MSVC_PACKAGES_CONFIG}\" -ExcludeVersion -OutputDirectory \"${DISKANN_MSVC_PACKAGES}\") + if (RESTAPI) + set(DISKANN_MSVC_RESTAPI_PACKAGES_CONFIG ${CMAKE_BINARY_DIR}/restapi/packages.config) + configure_file(${PROJECT_SOURCE_DIR}/windows/packages_restapi.config.in ${DISKANN_MSVC_RESTAPI_PACKAGES_CONFIG}) + exec_program(${NUGET_EXE} ARGS install \"${DISKANN_MSVC_RESTAPI_PACKAGES_CONFIG}\" -ExcludeVersion -OutputDirectory \"${DISKANN_MSVC_PACKAGES}\") + endif() + message(STATUS "Finished setting up nuget dependencies") +endif() + +include_directories(${PROJECT_SOURCE_DIR}/include) + +include(FetchContent) + +if(USE_TCMALLOC) + FetchContent_Declare( + tcmalloc + GIT_REPOSITORY https://github.com/google/tcmalloc.git + GIT_TAG origin/master # or specify a particular version or commit + ) + + FetchContent_MakeAvailable(tcmalloc) +endif() + +if(NOT PYBIND) + set(DISKANN_RELEASE_UNUSED_TCMALLOC_MEMORY_AT_CHECKPOINTS ON) +endif() +# It's necessary to include tcmalloc headers only if calling into MallocExtension interface. +# For using tcmalloc in DiskANN tools, it's enough to just link with tcmalloc. +if (DISKANN_RELEASE_UNUSED_TCMALLOC_MEMORY_AT_CHECKPOINTS) + include_directories(${tcmalloc_SOURCE_DIR}/src) + if (MSVC) + include_directories(${tcmalloc_SOURCE_DIR}/src/windows) + endif() +endif() + +#OpenMP +if (MSVC) + # Do not use find_package here since it would use VisualStudio's built-in OpenMP, but MKL libraries + # refer to Intel's OpenMP. + # + # No extra settings are needed for compilation: it only needs /openmp flag which is set further below, + # in the common MSVC compiler options block. + include_directories(BEFORE "${DISKANN_MSVC_PACKAGES}/intelopenmp.devel.win/lib/native/include") + link_libraries("${DISKANN_MSVC_PACKAGES}/intelopenmp.devel.win/lib/native/win-x64/libiomp5md.lib") + + set(OPENMP_WINDOWS_RUNTIME_FILES + "${DISKANN_MSVC_PACKAGES}/intelopenmp.redist.win/runtimes/win-x64/native/libiomp5md.dll" + "${DISKANN_MSVC_PACKAGES}/intelopenmp.redist.win/runtimes/win-x64/native/libiomp5md.pdb") +elseif(APPLE) + # Check if we're building Python bindings + if(PYBIND) + # First look for PyTorch's OpenMP to avoid conflicts + execute_process( + COMMAND ${Python_EXECUTABLE} -c "import os; import torch; print(os.path.join(os.path.dirname(torch.__file__), 'lib', 'libomp.dylib'))" + RESULT_VARIABLE TORCH_PATH_RESULT + OUTPUT_VARIABLE TORCH_LIBOMP_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET + ) + + execute_process( + COMMAND brew --prefix libomp + OUTPUT_VARIABLE LIBOMP_ROOT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if(EXISTS "${TORCH_LIBOMP_PATH}") + message(STATUS "Found PyTorch's libomp: ${TORCH_LIBOMP_PATH}") + set(OpenMP_CXX_FLAGS "-Xclang -fopenmp") + set(OpenMP_C_FLAGS "-Xclang -fopenmp") + set(OpenMP_CXX_LIBRARIES "${TORCH_LIBOMP_PATH}") + set(OpenMP_C_LIBRARIES "${TORCH_LIBOMP_PATH}") + set(OpenMP_FOUND TRUE) + + include_directories(${LIBOMP_ROOT}/include) + + # Set compiler flags and link libraries + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + link_libraries("${TORCH_LIBOMP_PATH}") + else() + message(STATUS "No PyTorch's libomp found, falling back to normal OpenMP detection") + # Fallback to normal OpenMP detection + execute_process( + COMMAND brew --prefix libomp + OUTPUT_VARIABLE LIBOMP_ROOT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + set(OpenMP_ROOT "${LIBOMP_ROOT}") + find_package(OpenMP) + + if (OPENMP_FOUND) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + link_libraries(OpenMP::OpenMP_CXX) + else() + message(FATAL_ERROR "No OpenMP support") + endif() + endif() + else() + # Regular OpenMP setup for non-Python builds + execute_process( + COMMAND brew --prefix libomp + OUTPUT_VARIABLE LIBOMP_ROOT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(OpenMP_ROOT "${LIBOMP_ROOT}") + find_package(OpenMP) + + if (OPENMP_FOUND) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + link_libraries(OpenMP::OpenMP_CXX) + else() + message(FATAL_ERROR "No OpenMP support") + endif() + endif() +else() + find_package(OpenMP) + + if (OPENMP_FOUND) + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + else() + message(FATAL_ERROR "No OpenMP support") + endif() +endif() + +# DiskANN core uses header-only libraries. Only DiskANN tools need program_options which has a linker library, +# but its size is small. Reduce number of dependent DLLs by linking statically. +if (MSVC) + set(Boost_USE_STATIC_LIBS ON) +endif() + +if(NOT MSVC) + find_package(Boost COMPONENTS program_options) +endif() + +# For Windows, fall back to nuget version if find_package didn't find it. +if (MSVC AND NOT Boost_FOUND) + set(DISKANN_BOOST_INCLUDE "${DISKANN_MSVC_PACKAGES}/boost/lib/native/include") + # Multi-threaded static library. + set(PROGRAM_OPTIONS_LIB_PATTERN "${DISKANN_MSVC_PACKAGES}/boost_program_options-vc${MSVC_TOOLSET_VERSION}/lib/native/libboost_program_options-vc${MSVC_TOOLSET_VERSION}-mt-x64-*.lib") + file(GLOB DISKANN_BOOST_PROGRAM_OPTIONS_LIB ${PROGRAM_OPTIONS_LIB_PATTERN}) + + set(PROGRAM_OPTIONS_DLIB_PATTERN "${DISKANN_MSVC_PACKAGES}/boost_program_options-vc${MSVC_TOOLSET_VERSION}/lib/native/libboost_program_options-vc${MSVC_TOOLSET_VERSION}-mt-gd-x64-*.lib") + file(GLOB DISKANN_BOOST_PROGRAM_OPTIONS_DLIB ${PROGRAM_OPTIONS_DLIB_PATTERN}) + + if (EXISTS ${DISKANN_BOOST_INCLUDE} AND EXISTS ${DISKANN_BOOST_PROGRAM_OPTIONS_LIB} AND EXISTS ${DISKANN_BOOST_PROGRAM_OPTIONS_DLIB}) + set(Boost_FOUND ON) + set(Boost_INCLUDE_DIR ${DISKANN_BOOST_INCLUDE}) + add_library(Boost::program_options STATIC IMPORTED) + set_target_properties(Boost::program_options PROPERTIES IMPORTED_LOCATION_RELEASE "${DISKANN_BOOST_PROGRAM_OPTIONS_LIB}") + set_target_properties(Boost::program_options PROPERTIES IMPORTED_LOCATION_DEBUG "${DISKANN_BOOST_PROGRAM_OPTIONS_DLIB}") + message(STATUS "Falling back to using Boost from the nuget package") + else() + message(WARNING "Couldn't find Boost. Was looking for ${DISKANN_BOOST_INCLUDE} and ${PROGRAM_OPTIONS_LIB_PATTERN}") + endif() +endif() + +if (NOT Boost_FOUND) + message(FATAL_ERROR "Couldn't find Boost dependency") +endif() + +include_directories(${Boost_INCLUDE_DIR}) + +#MKL Config +if (MSVC) + # Only the DiskANN DLL and one of the tools need MKL libraries. Additionally, only a small part of MKL is used. + # Given that and given that MKL DLLs are huge, use static linking to end up with no MKL DLL dependencies and with + # significantly smaller disk footprint. + # + # The compile options are not modified as there's already an unconditional -DMKL_ILP64 define below + # for all architectures, which is all that's needed. + set(DISKANN_MKL_INCLUDE_DIRECTORIES "${DISKANN_MSVC_PACKAGES}/intelmkl.static.win-x64/lib/native/include") + set(DISKANN_MKL_LIB_PATH "${DISKANN_MSVC_PACKAGES}/intelmkl.static.win-x64/lib/native/win-x64") + + set(DISKANN_MKL_LINK_LIBRARIES + "${DISKANN_MKL_LIB_PATH}/mkl_intel_ilp64.lib" + "${DISKANN_MKL_LIB_PATH}/mkl_core.lib" + "${DISKANN_MKL_LIB_PATH}/mkl_intel_thread.lib") +elseif(APPLE) + # no mkl on non-intel devices + find_library(ACCELERATE_LIBRARY Accelerate) + message(STATUS "Found Accelerate (${ACCELERATE_LIBRARY})") + set(DISKANN_ACCEL_LINK_OPTIONS ${ACCELERATE_LIBRARY}) + add_compile_definitions(ACCELERATE_NEW_LAPACK) +else() + # expected path for manual intel mkl installs + set(POSSIBLE_OMP_PATHS "/opt/intel/oneapi/compiler/2025.0/lib/libiomp5.so;/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin/libiomp5.so;/usr/lib/x86_64-linux-gnu/libiomp5.so;/opt/intel/lib/intel64_lin/libiomp5.so") + foreach(POSSIBLE_OMP_PATH ${POSSIBLE_OMP_PATHS}) + if (EXISTS ${POSSIBLE_OMP_PATH}) + get_filename_component(OMP_PATH ${POSSIBLE_OMP_PATH} DIRECTORY) + endif() + endforeach() + + if(NOT OMP_PATH) + message(FATAL_ERROR "Could not find Intel OMP in standard locations; use -DOMP_PATH to specify the install location for your environment") + endif() + link_directories(${OMP_PATH}) + + set(POSSIBLE_MKL_LIB_PATHS "/opt/intel/oneapi/mkl/latest/lib/intel64/libmkl_core.so;/usr/lib/x86_64-linux-gnu/libmkl_core.so;/opt/intel/mkl/lib/intel64/libmkl_core.so") + foreach(POSSIBLE_MKL_LIB_PATH ${POSSIBLE_MKL_LIB_PATHS}) + if (EXISTS ${POSSIBLE_MKL_LIB_PATH}) + get_filename_component(MKL_PATH ${POSSIBLE_MKL_LIB_PATH} DIRECTORY) + endif() + endforeach() + + set(POSSIBLE_MKL_INCLUDE_PATHS "/opt/intel/oneapi/mkl/latest/include;/usr/include/mkl;/opt/intel/mkl/include/;") + foreach(POSSIBLE_MKL_INCLUDE_PATH ${POSSIBLE_MKL_INCLUDE_PATHS}) + if (EXISTS ${POSSIBLE_MKL_INCLUDE_PATH}) + set(MKL_INCLUDE_PATH ${POSSIBLE_MKL_INCLUDE_PATH}) + endif() + endforeach() + if(NOT MKL_PATH) + message(FATAL_ERROR "Could not find Intel MKL in standard locations; use -DMKL_PATH to specify the install location for your environment") + elseif(NOT MKL_INCLUDE_PATH) + message(FATAL_ERROR "Could not find Intel MKL in standard locations; use -DMKL_INCLUDE_PATH to specify the install location for headers for your environment") + endif() + if (EXISTS ${MKL_PATH}/libmkl_def.so.2) + set(MKL_DEF_SO ${MKL_PATH}/libmkl_def.so.2) + elseif(EXISTS ${MKL_PATH}/libmkl_def.so) + set(MKL_DEF_SO ${MKL_PATH}/libmkl_def.so) + else() + message(FATAL_ERROR "Despite finding MKL, libmkl_def.so was not found in expected locations.") + endif() + link_directories(${MKL_PATH}) + include_directories(${MKL_INCLUDE_PATH}) + + # compile flags and link libraries + # if gcc/g++ + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + add_compile_options(-m64 -Wl,--no-as-needed) + endif() + if (NOT PYBIND) + link_libraries(mkl_intel_ilp64 mkl_intel_thread mkl_core iomp5 pthread m dl) + else() + # static linking for python so as to minimize customer dependency issues + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + # In debug mode, use dynamic linking to ensure all symbols are available + link_libraries(mkl_intel_ilp64 mkl_intel_thread mkl_core ${MKL_DEF_SO} iomp5 pthread m dl) + else() + # In release mode, use static linking to minimize dependencies + link_libraries( + ${MKL_PATH}/libmkl_intel_ilp64.a + ${MKL_PATH}/libmkl_intel_thread.a + ${MKL_PATH}/libmkl_core.a + ${MKL_DEF_SO} + iomp5 + pthread + m + dl + ) + endif() + endif() + + add_definitions(-DMKL_ILP64) +endif() + + +# Section for tcmalloc. The DiskANN tools are always linked to tcmalloc. For Windows, they also need to +# force-include the _tcmalloc symbol for enabling tcmalloc. +# +# The DLL itself needs to be linked to tcmalloc only if DISKANN_RELEASE_UNUSED_TCMALLOC_MEMORY_AT_CHECKPOINTS +# is enabled. +if(USE_TCMALLOC) + if (MSVC) + if (NOT EXISTS "${PROJECT_SOURCE_DIR}/gperftools/gperftools.sln") + message(FATAL_ERROR "The gperftools submodule was not found. " + "Please check-out git submodules by doing 'git submodule init' followed by 'git submodule update'") + endif() + + set(TCMALLOC_LINK_LIBRARY "${PROJECT_SOURCE_DIR}/gperftools/x64/Release-Patch/libtcmalloc_minimal.lib") + set(TCMALLOC_WINDOWS_RUNTIME_FILES + "${PROJECT_SOURCE_DIR}/gperftools/x64/Release-Patch/libtcmalloc_minimal.dll" + "${PROJECT_SOURCE_DIR}/gperftools/x64/Release-Patch/libtcmalloc_minimal.pdb") + + # Tell CMake how to build the tcmalloc linker library from the submodule. + add_custom_target(build_libtcmalloc_minimal DEPENDS ${TCMALLOC_LINK_LIBRARY}) + add_custom_command(OUTPUT ${TCMALLOC_LINK_LIBRARY} + COMMAND ${CMAKE_VS_MSBUILD_COMMAND} gperftools.sln /m /nologo + /t:libtcmalloc_minimal /p:Configuration="Release-Patch" + /property:Platform="x64" + /p:PlatformToolset=v${MSVC_TOOLSET_VERSION} + /p:WindowsTargetPlatformVersion=${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/gperftools) + + add_library(libtcmalloc_minimal_for_exe STATIC IMPORTED) + add_library(libtcmalloc_minimal_for_dll STATIC IMPORTED) + + set_target_properties(libtcmalloc_minimal_for_dll PROPERTIES + IMPORTED_LOCATION "${TCMALLOC_LINK_LIBRARY}") + + set_target_properties(libtcmalloc_minimal_for_exe PROPERTIES + IMPORTED_LOCATION "${TCMALLOC_LINK_LIBRARY}" + INTERFACE_LINK_OPTIONS /INCLUDE:_tcmalloc) + + # Ensure libtcmalloc_minimal is built before it's being used. + add_dependencies(libtcmalloc_minimal_for_dll build_libtcmalloc_minimal) + add_dependencies(libtcmalloc_minimal_for_exe build_libtcmalloc_minimal) + + set(DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS libtcmalloc_minimal_for_exe) + elseif(APPLE) # ! Inherited from #474, not been adjusted for TCMalloc Removal + execute_process( + COMMAND brew --prefix gperftools + OUTPUT_VARIABLE GPERFTOOLS_PREFIX + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS "-L${GPERFTOOLS_PREFIX}/lib -ltcmalloc") + elseif(NOT PYBIND) + set(DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS "-ltcmalloc") + endif() + + if (DISKANN_RELEASE_UNUSED_TCMALLOC_MEMORY_AT_CHECKPOINTS) + add_definitions(-DRELEASE_UNUSED_TCMALLOC_MEMORY_AT_CHECKPOINTS) + + if (MSVC) + set(DISKANN_DLL_TCMALLOC_LINK_OPTIONS libtcmalloc_minimal_for_dll) + endif() + endif() +endif() + +if (NOT MSVC AND NOT APPLE) + set(DISKANN_ASYNC_LIB aio) +endif() + +#Main compiler/linker settings +if(MSVC) + #language options + add_compile_options(/permissive- /openmp:experimental /Zc:twoPhase- /Zc:inline /WX- /std:c++17 /Gd /W3 /MP /Zi /FC /nologo) + #code generation options + add_compile_options(/arch:AVX2 /fp:fast /fp:except- /EHsc /GS- /Gy) + #optimization options + add_compile_options(/Ot /Oy /Oi) + #path options + add_definitions(-DUSE_AVX2 -DUSE_ACCELERATED_PQ -D_WINDOWS -DNOMINMAX -DUNICODE) + # Linker options. Exclude VCOMP/VCOMPD.LIB which contain VisualStudio's version of OpenMP. + # MKL was linked against Intel's OpenMP and depends on the corresponding DLL. + add_link_options(/NODEFAULTLIB:VCOMP.LIB /NODEFAULTLIB:VCOMPD.LIB /DEBUG:FULL /OPT:REF /OPT:ICF) + + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/x64/Debug) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/x64/Debug) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/x64/Debug) + + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/x64/Release) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/x64/Release) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/x64/Release) +elseif(APPLE) + set(ENV{TCMALLOC_LARGE_ALLOC_REPORT_THRESHOLD} 500000000000) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftree-vectorize -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -Xclang -fopenmp -fopenmp-simd -funroll-loops -Wfatal-errors -Wno-inconsistent-missing-override -Wno-return-type") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -DDEBUG") + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast -DNDEBUG -ftree-vectorize") + if (NOT PYBIND) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG -Ofast") + if (NOT PORTABLE) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mtune=native") + endif() + else() + # -Ofast is not supported in a python extension module + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG -fPIC") + endif() +else() + set(ENV{TCMALLOC_LARGE_ALLOC_REPORT_THRESHOLD} 500000000000) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2 -mfma -msse2 -ftree-vectorize -fopenmp -fopenmp-simd -funroll-loops -Wfatal-errors -DUSE_AVX2 -fPIC") + if(USE_TCMALLOC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free") + endif() + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -DDEBUG") + if (NOT PYBIND) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG -Ofast") + if (NOT PORTABLE) + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native -mtune=native") + endif() + else() + # -Ofast is not supported in a python extension module + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG") + endif() +endif() + +add_subdirectory(src) +if (NOT PYBIND) + add_subdirectory(apps) + add_subdirectory(apps/utils) +endif() + +if (UNIT_TEST) + enable_testing() + add_subdirectory(tests) +endif() + +if (MSVC) + message(STATUS "The ${PROJECT_NAME}.sln has been created, opened it from VisualStudio to build Release or Debug configurations.\n" + "Alternatively, use MSBuild to build:\n\n" + "msbuild.exe ${PROJECT_NAME}.sln /m /nologo /t:Build /p:Configuration=\"Release\" /property:Platform=\"x64\"\n") +endif() + +if (RESTAPI) + if (MSVC) + set(DISKANN_CPPRESTSDK "${DISKANN_MSVC_PACKAGES}/cpprestsdk.v142/build/native") + # expected path for apt packaged intel mkl installs + link_libraries("${DISKANN_CPPRESTSDK}/x64/lib/cpprest142_2_10.lib") + include_directories("${DISKANN_CPPRESTSDK}/include") + endif() + add_subdirectory(apps/restapi) +endif() + +include(clang-format.cmake) + +if(PYBIND) + add_subdirectory(python) + + install(TARGETS _diskannpy + DESTINATION leann_backend_diskann + COMPONENT python_modules + ) + +endif() +############################################################################### +# PROTOBUF SECTION - Corrected to use CONFIG mode explicitly +############################################################################### +set(Protobuf_USE_STATIC_LIBS OFF) + +find_package(ZLIB REQUIRED) + +find_package(Protobuf REQUIRED) + +message(STATUS "Protobuf found: ${Protobuf_VERSION}") +message(STATUS "Protobuf include dirs: ${Protobuf_INCLUDE_DIRS}") +message(STATUS "Protobuf libraries: ${Protobuf_LIBRARIES}") +message(STATUS "Protobuf protoc executable: ${Protobuf_PROTOC_EXECUTABLE}") + +include_directories(${Protobuf_INCLUDE_DIRS}) + +set(PROTO_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../embedding.proto") +protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILE}) +set(generated_proto_sources ${PROTO_SRCS}) + + +add_library(proto_embeddings STATIC ${generated_proto_sources}) +target_link_libraries(proto_embeddings PUBLIC protobuf::libprotobuf) +target_include_directories(proto_embeddings PUBLIC + ${CMAKE_CURRENT_BINARY_DIR} + ${Protobuf_INCLUDE_DIRS} +) + +target_link_libraries(diskann PRIVATE proto_embeddings protobuf::libprotobuf) +target_include_directories(diskann PRIVATE + ${CMAKE_CURRENT_BINARY_DIR} + ${Protobuf_INCLUDE_DIRS} +) + +target_link_libraries(diskann_s PRIVATE proto_embeddings protobuf::libprotobuf) +target_include_directories(diskann_s PRIVATE + ${CMAKE_CURRENT_BINARY_DIR} + ${Protobuf_INCLUDE_DIRS} +) + + +############################################################################### +# ZEROMQ SECTION - REQUIRED +############################################################################### + +find_package(ZeroMQ QUIET) +if(NOT ZeroMQ_FOUND) + find_path(ZeroMQ_INCLUDE_DIR zmq.h) + find_library(ZeroMQ_LIBRARY zmq) + if(ZeroMQ_INCLUDE_DIR AND ZeroMQ_LIBRARY) + set(ZeroMQ_FOUND TRUE) + endif() +endif() + +if(ZeroMQ_FOUND) + message(STATUS "Found ZeroMQ: ${ZeroMQ_LIBRARY}") + include_directories(${ZeroMQ_INCLUDE_DIR}) + target_link_libraries(diskann PRIVATE ${ZeroMQ_LIBRARY}) + target_link_libraries(diskann_s PRIVATE ${ZeroMQ_LIBRARY}) + add_definitions(-DUSE_ZEROMQ) +else() + message(FATAL_ERROR "ZeroMQ is required but not found. Please install ZeroMQ and try again.") +endif() + +target_link_libraries(diskann ${PYBIND11_LIBRARIES}) +target_link_libraries(diskann_s ${PYBIND11_LIBRARIES}) diff --git a/packages/leann-backend-diskann/third_party/DiskANN/CMakeSettings.json b/packages/leann-backend-diskann/third_party/DiskANN/CMakeSettings.json new file mode 100644 index 0000000..af5d7b5 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/CMakeSettings.json @@ -0,0 +1,28 @@ +{ + "configurations": [ + { + "name": "x64-Release", + "generator": "Ninja", + "configurationType": "Release", + "inheritEnvironments": [ "msvc_x64" ], + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "" + }, + { + "name": "WSL-GCC-Release", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "buildRoot": "${projectDir}\\out\\build\\${name}", + "installRoot": "${projectDir}\\out\\install\\${name}", + "cmakeExecutable": "cmake", + "cmakeCommandArgs": "", + "buildCommandArgs": "", + "ctestCommandArgs": "", + "inheritEnvironments": [ "linux_x64" ], + "wslPath": "${defaultWSLPath}" + } + ] +} \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/CODE_OF_CONDUCT.md b/packages/leann-backend-diskann/third_party/DiskANN/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..f9ba8cf --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/CODE_OF_CONDUCT.md @@ -0,0 +1,9 @@ +# Microsoft Open Source Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +Resources: + +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns diff --git a/packages/leann-backend-diskann/third_party/DiskANN/CONTRIBUTING.md b/packages/leann-backend-diskann/third_party/DiskANN/CONTRIBUTING.md new file mode 100644 index 0000000..dcbf795 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/CONTRIBUTING.md @@ -0,0 +1,9 @@ +# Contributing + +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. + +When you submit a pull request, a CLA bot will automatically determine whether you need to provide +a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions +provided by the bot. You will only need to do this once across all repos using our CLA. diff --git a/packages/leann-backend-diskann/third_party/DiskANN/Dockerfile b/packages/leann-backend-diskann/third_party/DiskANN/Dockerfile new file mode 100644 index 0000000..ea1979f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/Dockerfile @@ -0,0 +1,17 @@ +#Copyright(c) Microsoft Corporation.All rights reserved. +#Licensed under the MIT license. + +FROM ubuntu:jammy + +RUN apt update +RUN apt install -y software-properties-common +RUN add-apt-repository -y ppa:git-core/ppa +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive apt install -y git make cmake g++ libaio-dev libgoogle-perftools-dev libunwind-dev clang-format libboost-dev libboost-program-options-dev libmkl-full-dev libcpprest-dev python3.10 + +WORKDIR /app +RUN git clone https://github.com/microsoft/DiskANN.git +WORKDIR /app/DiskANN +RUN mkdir build +RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release +RUN cmake --build build -- -j diff --git a/packages/leann-backend-diskann/third_party/DiskANN/DockerfileDev b/packages/leann-backend-diskann/third_party/DiskANN/DockerfileDev new file mode 100644 index 0000000..0e95e40 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/DockerfileDev @@ -0,0 +1,17 @@ +#Copyright(c) Microsoft Corporation.All rights reserved. +#Licensed under the MIT license. + +FROM ubuntu:jammy + +RUN apt update +RUN apt install -y software-properties-common +RUN add-apt-repository -y ppa:git-core/ppa +RUN apt update +RUN DEBIAN_FRONTEND=noninteractive apt install -y git make cmake g++ libaio-dev libgoogle-perftools-dev libunwind-dev clang-format libboost-dev libboost-program-options-dev libboost-test-dev libmkl-full-dev libcpprest-dev python3.10 + +WORKDIR /app +RUN git clone https://github.com/microsoft/DiskANN.git +WORKDIR /app/DiskANN +RUN mkdir build +RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DUNIT_TEST=True +RUN cmake --build build -- -j diff --git a/packages/leann-backend-diskann/third_party/DiskANN/LICENSE b/packages/leann-backend-diskann/third_party/DiskANN/LICENSE new file mode 100644 index 0000000..b7a909e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/LICENSE @@ -0,0 +1,23 @@ + DiskANN + + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/packages/leann-backend-diskann/third_party/DiskANN/MANIFEST.in b/packages/leann-backend-diskann/third_party/DiskANN/MANIFEST.in new file mode 100644 index 0000000..0735c27 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/MANIFEST.in @@ -0,0 +1,12 @@ +include MANIFEST.in +include *.txt +include *.md +include setup.py +include pyproject.toml +include *.cmake +recursive-include gperftools * +recursive-include include * +recursive-include python * +recursive-include windows * +prune python/tests +recursive-include src * diff --git a/packages/leann-backend-diskann/third_party/DiskANN/README.md b/packages/leann-backend-diskann/third_party/DiskANN/README.md new file mode 100644 index 0000000..44f4c27 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/README.md @@ -0,0 +1,135 @@ +# DiskANN + +[![DiskANN Main](https://github.com/microsoft/DiskANN/actions/workflows/push-test.yml/badge.svg?branch=main)](https://github.com/microsoft/DiskANN/actions/workflows/push-test.yml) +[![PyPI version](https://img.shields.io/pypi/v/diskannpy.svg)](https://pypi.org/project/diskannpy/) +[![Downloads shield](https://pepy.tech/badge/diskannpy)](https://pepy.tech/project/diskannpy) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +[![DiskANN Paper](https://img.shields.io/badge/Paper-NeurIPS%3A_DiskANN-blue)](https://papers.nips.cc/paper/9527-rand-nsg-fast-accurate-billion-point-nearest-neighbor-search-on-a-single-node.pdf) +[![DiskANN Paper](https://img.shields.io/badge/Paper-Arxiv%3A_Fresh--DiskANN-blue)](https://arxiv.org/abs/2105.09613) +[![DiskANN Paper](https://img.shields.io/badge/Paper-Filtered--DiskANN-blue)](https://harsha-simhadri.org/pubs/Filtered-DiskANN23.pdf) + + +DiskANN is a suite of scalable, accurate and cost-effective approximate nearest neighbor search algorithms for large-scale vector search that support real-time changes and simple filters. +This code is based on ideas from the [DiskANN](https://papers.nips.cc/paper/9527-rand-nsg-fast-accurate-billion-point-nearest-neighbor-search-on-a-single-node.pdf), [Fresh-DiskANN](https://arxiv.org/abs/2105.09613) and the [Filtered-DiskANN](https://harsha-simhadri.org/pubs/Filtered-DiskANN23.pdf) papers with further improvements. +This code forked off from [code for NSG](https://github.com/ZJULearning/nsg) algorithm. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +See [guidelines](CONTRIBUTING.md) for contributing to this project. + +## Linux build: + +Install the following packages through apt-get + +```bash +sudo apt install make cmake g++ libaio-dev libgoogle-perftools-dev clang-format libboost-all-dev +``` + +### Install Intel MKL +#### Ubuntu 20.04 or newer +```bash +sudo apt install libmkl-full-dev +``` + +#### Earlier versions of Ubuntu +Install Intel MKL either by downloading the [oneAPI MKL installer](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html) or using [apt](https://software.intel.com/en-us/articles/installing-intel-free-libs-and-python-apt-repo) (we tested with build 2019.4-070 and 2022.1.2.146). + +``` +# OneAPI MKL Installer +wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18487/l_BaseKit_p_2022.1.2.146.sh +sudo sh l_BaseKit_p_2022.1.2.146.sh -a --components intel.oneapi.lin.mkl.devel --action install --eula accept -s +``` + +### Build +```bash +mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make -j +``` + +## Windows build: + +The Windows version has been tested with Enterprise editions of Visual Studio 2022, 2019 and 2017. It should work with the Community and Professional editions as well without any changes. + +**Prerequisites:** + +* CMake 3.15+ (available in VisualStudio 2019+ or from https://cmake.org) +* NuGet.exe (install from https://www.nuget.org/downloads) + * The build script will use NuGet to get MKL, OpenMP and Boost packages. +* DiskANN git repository checked out together with submodules. To check out submodules after git clone: +``` +git submodule init +git submodule update +``` + +* Environment variables: + * [optional] If you would like to override the Boost library listed in windows/packages.config.in, set BOOST_ROOT to your Boost folder. + +**Build steps:** +* Open the "x64 Native Tools Command Prompt for VS 2019" (or corresponding version) and change to DiskANN folder +* Create a "build" directory inside it +* Change to the "build" directory and run +``` +cmake .. +``` +OR for Visual Studio 2017 and earlier: +``` +\cmake .. +``` +**This will create a diskann.sln solution**. Now you can: + +- Open it from VisualStudio and build either Release or Debug configuration. +- `\cmake --build build` +- Use MSBuild: +``` +msbuild.exe diskann.sln /m /nologo /t:Build /p:Configuration="Release" /property:Platform="x64" +``` + +* This will also build gperftools submodule for libtcmalloc_minimal dependency. +* Generated binaries are stored in the x64/Release or x64/Debug directories. + +## macOS Build + +### Prerequisites +* Apple Silicon. The code should still work on Intel-based Macs, but there are no guarantees. +* macOS >= 12.0 +* XCode Command Line Tools (install with `xcode-select --install`) +* [homebrew](https://brew.sh/) + +### Install Required Packages +```zsh +brew install cmake +brew install boost +brew install gperftools +brew install libomp +``` + +### Build DiskANN +```zsh +# same as ubuntu instructions +mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make -j +``` + +## Usage: + +Please see the following pages on using the compiled code: + +- [Commandline interface for building and search SSD based indices](workflows/SSD_index.md) +- [Commandline interface for building and search in memory indices](workflows/in_memory_index.md) +- [Commandline examples for using in-memory streaming indices](workflows/dynamic_index.md) +- [Commandline interface for building and search in memory indices with label data and filters](workflows/filtered_in_memory.md) +- [Commandline interface for building and search SSD based indices with label data and filters](workflows/filtered_ssd_index.md) +- [diskannpy - DiskANN as a python extension module](python/README.md) + +Please cite this software in your work as: + +``` +@misc{diskann-github, + author = {Simhadri, Harsha Vardhan and Krishnaswamy, Ravishankar and Srinivasa, Gopal and Subramanya, Suhas Jayaram and Antonijevic, Andrija and Pryce, Dax and Kaczynski, David and Williams, Shane and Gollapudi, Siddarth and Sivashankar, Varun and Karia, Neel and Singh, Aditi and Jaiswal, Shikhar and Mahapatro, Neelam and Adams, Philip and Tower, Bryan and Patel, Yash}}, + title = {{DiskANN: Graph-structured Indices for Scalable, Fast, Fresh and Filtered Approximate Nearest Neighbor Search}}, + url = {https://github.com/Microsoft/DiskANN}, + version = {0.6.1}, + year = {2023} +} +``` diff --git a/packages/leann-backend-diskann/third_party/DiskANN/SECURITY.md b/packages/leann-backend-diskann/third_party/DiskANN/SECURITY.md new file mode 100644 index 0000000..f7b8998 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/SECURITY.md @@ -0,0 +1,41 @@ + + +## Security + +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). + +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). + +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. + +## Preferred Languages + +We prefer all communications to be in English. + +## Policy + +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). + + \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/CMakeLists.txt b/packages/leann-backend-diskann/third_party/DiskANN/apps/CMakeLists.txt new file mode 100644 index 0000000..e42c0b6 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/CMakeLists.txt @@ -0,0 +1,42 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_COMPILE_WARNING_AS_ERROR ON) + +add_executable(build_memory_index build_memory_index.cpp) +target_link_libraries(build_memory_index ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +add_executable(build_stitched_index build_stitched_index.cpp) +target_link_libraries(build_stitched_index ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +add_executable(search_memory_index search_memory_index.cpp) +target_link_libraries(search_memory_index ${PROJECT_NAME} ${DISKANN_ASYNC_LIB} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +add_executable(build_disk_index build_disk_index.cpp) +target_link_libraries(build_disk_index ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} ${DISKANN_ASYNC_LIB} Boost::program_options) + +add_executable(search_disk_index search_disk_index.cpp) +target_link_libraries(search_disk_index ${PROJECT_NAME} ${DISKANN_ASYNC_LIB} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +add_executable(range_search_disk_index range_search_disk_index.cpp) +target_link_libraries(range_search_disk_index ${PROJECT_NAME} ${DISKANN_ASYNC_LIB} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +add_executable(test_streaming_scenario test_streaming_scenario.cpp) +target_link_libraries(test_streaming_scenario ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +add_executable(test_insert_deletes_consolidate test_insert_deletes_consolidate.cpp) +target_link_libraries(test_insert_deletes_consolidate ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} Boost::program_options) + +if (NOT MSVC) + install(TARGETS build_memory_index + build_stitched_index + search_memory_index + build_disk_index + search_disk_index + range_search_disk_index + test_streaming_scenario + test_insert_deletes_consolidate + RUNTIME + ) +endif() diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/build_disk_index.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/build_disk_index.cpp new file mode 100644 index 0000000..f48b617 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/build_disk_index.cpp @@ -0,0 +1,191 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include + +#include "utils.h" +#include "disk_utils.h" +#include "math_utils.h" +#include "index.h" +#include "partition.h" +#include "program_options_utils.hpp" + +namespace po = boost::program_options; + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, data_path, index_path_prefix, codebook_prefix, label_file, universal_label, + label_type; + uint32_t num_threads, R, L, disk_PQ, build_PQ, QD, Lf, filter_threshold; + float B, M; + bool append_reorder_data = false; + bool use_opq = false; + + po::options_description desc{ + program_options_utils::make_program_description("build_disk_index", "Build a disk-based index.")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("data_path", po::value(&data_path)->required(), + program_options_utils::INPUT_DATA_PATH); + required_configs.add_options()("search_DRAM_budget,B", po::value(&B)->required(), + "DRAM budget in GB for searching the index to set the " + "compressed level for data while search happens"); + required_configs.add_options()("build_DRAM_budget,M", po::value(&M)->required(), + "DRAM budget in GB for building the index"); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()("max_degree,R", po::value(&R)->default_value(64), + program_options_utils::MAX_BUILD_DEGREE); + optional_configs.add_options()("Lbuild,L", po::value(&L)->default_value(100), + program_options_utils::GRAPH_BUILD_COMPLEXITY); + optional_configs.add_options()("QD", po::value(&QD)->default_value(0), + " Quantized Dimension for compression"); + optional_configs.add_options()("codebook_prefix", po::value(&codebook_prefix)->default_value(""), + "Path prefix for pre-trained codebook"); + optional_configs.add_options()("PQ_disk_bytes", po::value(&disk_PQ)->default_value(0), + "Number of bytes to which vectors should be compressed " + "on SSD; 0 for no compression"); + optional_configs.add_options()("append_reorder_data", po::bool_switch()->default_value(false), + "Include full precision data in the index. Use only in " + "conjuction with compressed data on SSD."); + optional_configs.add_options()("build_PQ_bytes", po::value(&build_PQ)->default_value(0), + program_options_utils::BUIlD_GRAPH_PQ_BYTES); + optional_configs.add_options()("use_opq", po::bool_switch()->default_value(false), + program_options_utils::USE_OPQ); + optional_configs.add_options()("label_file", po::value(&label_file)->default_value(""), + program_options_utils::LABEL_FILE); + optional_configs.add_options()("universal_label", po::value(&universal_label)->default_value(""), + program_options_utils::UNIVERSAL_LABEL); + optional_configs.add_options()("FilteredLbuild", po::value(&Lf)->default_value(0), + program_options_utils::FILTERED_LBUILD); + optional_configs.add_options()("filter_threshold,F", po::value(&filter_threshold)->default_value(0), + "Threshold to break up the existing nodes to generate new graph " + "internally where each node has a maximum F labels."); + optional_configs.add_options()("label_type", po::value(&label_type)->default_value("uint"), + program_options_utils::LABEL_TYPE_DESCRIPTION); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + if (vm["append_reorder_data"].as()) + append_reorder_data = true; + if (vm["use_opq"].as()) + use_opq = true; + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + bool use_filters = (label_file != "") ? true : false; + diskann::Metric metric; + if (dist_fn == std::string("l2")) + metric = diskann::Metric::L2; + else if (dist_fn == std::string("mips")) + metric = diskann::Metric::INNER_PRODUCT; + else if (dist_fn == std::string("cosine")) + metric = diskann::Metric::COSINE; + else + { + std::cout << "Error. Only l2 and mips distance functions are supported" << std::endl; + return -1; + } + + if (append_reorder_data) + { + if (disk_PQ == 0) + { + std::cout << "Error: It is not necessary to append data for reordering " + "when vectors are not compressed on disk." + << std::endl; + return -1; + } + if (data_type != std::string("float")) + { + std::cout << "Error: Appending data for reordering currently only " + "supported for float data type." + << std::endl; + return -1; + } + } + + std::string params = std::string(std::to_string(R)) + " " + std::string(std::to_string(L)) + " " + + std::string(std::to_string(B)) + " " + std::string(std::to_string(M)) + " " + + std::string(std::to_string(num_threads)) + " " + std::string(std::to_string(disk_PQ)) + " " + + std::string(std::to_string(append_reorder_data)) + " " + + std::string(std::to_string(build_PQ)) + " " + std::string(std::to_string(QD)); + + try + { + if (label_file != "" && label_type == "ushort") + { + if (data_type == std::string("int8")) + return diskann::build_disk_index(data_path.c_str(), index_path_prefix.c_str(), params.c_str(), + metric, use_opq, codebook_prefix, use_filters, label_file, + universal_label, filter_threshold, Lf); + else if (data_type == std::string("uint8")) + return diskann::build_disk_index( + data_path.c_str(), index_path_prefix.c_str(), params.c_str(), metric, use_opq, codebook_prefix, + use_filters, label_file, universal_label, filter_threshold, Lf); + else if (data_type == std::string("float")) + return diskann::build_disk_index( + data_path.c_str(), index_path_prefix.c_str(), params.c_str(), metric, use_opq, codebook_prefix, + use_filters, label_file, universal_label, filter_threshold, Lf); + else + { + diskann::cerr << "Error. Unsupported data type" << std::endl; + return -1; + } + } + else + { + if (data_type == std::string("int8")) + return diskann::build_disk_index(data_path.c_str(), index_path_prefix.c_str(), params.c_str(), + metric, use_opq, codebook_prefix, use_filters, label_file, + universal_label, filter_threshold, Lf); + else if (data_type == std::string("uint8")) + return diskann::build_disk_index(data_path.c_str(), index_path_prefix.c_str(), params.c_str(), + metric, use_opq, codebook_prefix, use_filters, label_file, + universal_label, filter_threshold, Lf); + else if (data_type == std::string("float")) + return diskann::build_disk_index(data_path.c_str(), index_path_prefix.c_str(), params.c_str(), + metric, use_opq, codebook_prefix, use_filters, label_file, + universal_label, filter_threshold, Lf); + else + { + diskann::cerr << "Error. Unsupported data type" << std::endl; + return -1; + } + } + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index build failed." << std::endl; + return -1; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/build_memory_index.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/build_memory_index.cpp new file mode 100644 index 0000000..544e42d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/build_memory_index.cpp @@ -0,0 +1,164 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include + +#include "index.h" +#include "utils.h" +#include "program_options_utils.hpp" + +#ifndef _WINDOWS +#include +#include +#else +#include +#endif + +#include "memory_mapper.h" +#include "ann_exception.h" +#include "index_factory.h" + +namespace po = boost::program_options; + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, data_path, index_path_prefix, label_file, universal_label, label_type; + uint32_t num_threads, R, L, Lf, build_PQ_bytes; + float alpha; + bool use_pq_build, use_opq; + + po::options_description desc{ + program_options_utils::make_program_description("build_memory_index", "Build a memory-based DiskANN index.")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("data_path", po::value(&data_path)->required(), + program_options_utils::INPUT_DATA_PATH); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()("max_degree,R", po::value(&R)->default_value(64), + program_options_utils::MAX_BUILD_DEGREE); + optional_configs.add_options()("Lbuild,L", po::value(&L)->default_value(100), + program_options_utils::GRAPH_BUILD_COMPLEXITY); + optional_configs.add_options()("alpha", po::value(&alpha)->default_value(1.2f), + program_options_utils::GRAPH_BUILD_ALPHA); + optional_configs.add_options()("build_PQ_bytes", po::value(&build_PQ_bytes)->default_value(0), + program_options_utils::BUIlD_GRAPH_PQ_BYTES); + optional_configs.add_options()("use_opq", po::bool_switch()->default_value(false), + program_options_utils::USE_OPQ); + optional_configs.add_options()("label_file", po::value(&label_file)->default_value(""), + program_options_utils::LABEL_FILE); + optional_configs.add_options()("universal_label", po::value(&universal_label)->default_value(""), + program_options_utils::UNIVERSAL_LABEL); + + optional_configs.add_options()("FilteredLbuild", po::value(&Lf)->default_value(0), + program_options_utils::FILTERED_LBUILD); + optional_configs.add_options()("label_type", po::value(&label_type)->default_value("uint"), + program_options_utils::LABEL_TYPE_DESCRIPTION); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + use_pq_build = (build_PQ_bytes > 0); + use_opq = vm["use_opq"].as(); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("mips")) + { + metric = diskann::Metric::INNER_PRODUCT; + } + else if (dist_fn == std::string("l2")) + { + metric = diskann::Metric::L2; + } + else if (dist_fn == std::string("cosine")) + { + metric = diskann::Metric::COSINE; + } + else + { + std::cout << "Unsupported distance function. Currently only L2/ Inner " + "Product/Cosine are supported." + << std::endl; + return -1; + } + + try + { + diskann::cout << "Starting index build with R: " << R << " Lbuild: " << L << " alpha: " << alpha + << " #threads: " << num_threads << std::endl; + + size_t data_num, data_dim; + diskann::get_bin_metadata(data_path, data_num, data_dim); + + auto index_build_params = diskann::IndexWriteParametersBuilder(L, R) + .with_filter_list_size(Lf) + .with_alpha(alpha) + .with_saturate_graph(false) + .with_num_threads(num_threads) + .build(); + + auto filter_params = diskann::IndexFilterParamsBuilder() + .with_universal_label(universal_label) + .with_label_file(label_file) + .with_save_path_prefix(index_path_prefix) + .build(); + auto config = diskann::IndexConfigBuilder() + .with_metric(metric) + .with_dimension(data_dim) + .with_max_points(data_num) + .with_data_load_store_strategy(diskann::DataStoreStrategy::MEMORY) + .with_graph_load_store_strategy(diskann::GraphStoreStrategy::MEMORY) + .with_data_type(data_type) + .with_label_type(label_type) + .is_dynamic_index(false) + .with_index_write_params(index_build_params) + .is_enable_tags(false) + .is_use_opq(use_opq) + .is_pq_dist_build(use_pq_build) + .with_num_pq_chunks(build_PQ_bytes) + .build(); + + auto index_factory = diskann::IndexFactory(config); + auto index = index_factory.create_instance(); + index->build(data_path, data_num, filter_params); + index->save(index_path_prefix.c_str()); + index.reset(); + return 0; + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index build failed." << std::endl; + return -1; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/build_stitched_index.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/build_stitched_index.cpp new file mode 100644 index 0000000..60e38c1 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/build_stitched_index.cpp @@ -0,0 +1,441 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include "filter_utils.h" +#include +#ifndef _WINDOWS +#include +#endif + +#include "index.h" +#include "memory_mapper.h" +#include "parameters.h" +#include "utils.h" +#include "program_options_utils.hpp" + +namespace po = boost::program_options; +typedef std::tuple>, uint64_t> stitch_indices_return_values; + +/* + * Inline function to display progress bar. + */ +inline void print_progress(double percentage) +{ + int val = (int)(percentage * 100); + int lpad = (int)(percentage * PBWIDTH); + int rpad = PBWIDTH - lpad; + printf("\r%3d%% [%.*s%*s]", val, lpad, PBSTR, rpad, ""); + fflush(stdout); +} + +/* + * Inline function to generate a random integer in a range. + */ +inline size_t random(size_t range_from, size_t range_to) +{ + std::random_device rand_dev; + std::mt19937 generator(rand_dev()); + std::uniform_int_distribution distr(range_from, range_to); + return distr(generator); +} + +/* + * function to handle command line parsing. + * + * Arguments are merely the inputs from the command line. + */ +void handle_args(int argc, char **argv, std::string &data_type, path &input_data_path, path &final_index_path_prefix, + path &label_data_path, std::string &universal_label, uint32_t &num_threads, uint32_t &R, uint32_t &L, + uint32_t &stitched_R, float &alpha) +{ + po::options_description desc{ + program_options_utils::make_program_description("build_stitched_index", "Build a stitched DiskANN index.")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("index_path_prefix", + po::value(&final_index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("data_path", po::value(&input_data_path)->required(), + program_options_utils::INPUT_DATA_PATH); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()("max_degree,R", po::value(&R)->default_value(64), + program_options_utils::MAX_BUILD_DEGREE); + optional_configs.add_options()("Lbuild,L", po::value(&L)->default_value(100), + program_options_utils::GRAPH_BUILD_COMPLEXITY); + optional_configs.add_options()("alpha", po::value(&alpha)->default_value(1.2f), + program_options_utils::GRAPH_BUILD_ALPHA); + optional_configs.add_options()("label_file", po::value(&label_data_path)->default_value(""), + program_options_utils::LABEL_FILE); + optional_configs.add_options()("universal_label", po::value(&universal_label)->default_value(""), + program_options_utils::UNIVERSAL_LABEL); + optional_configs.add_options()("stitched_R", po::value(&stitched_R)->default_value(100), + "Degree to prune final graph down to"); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + exit(0); + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + throw; + } +} + +/* + * Custom index save to write the in-memory index to disk. + * Also writes required files for diskANN API - + * 1. labels_to_medoids + * 2. universal_label + * 3. data (redundant for static indices) + * 4. labels (redundant for static indices) + */ +void save_full_index(path final_index_path_prefix, path input_data_path, uint64_t final_index_size, + std::vector> stitched_graph, + tsl::robin_map entry_points, std::string universal_label, + path label_data_path) +{ + // aux. file 1 + auto saving_index_timer = std::chrono::high_resolution_clock::now(); + std::ifstream original_label_data_stream; + original_label_data_stream.exceptions(std::ios::badbit | std::ios::failbit); + original_label_data_stream.open(label_data_path, std::ios::binary); + std::ofstream new_label_data_stream; + new_label_data_stream.exceptions(std::ios::badbit | std::ios::failbit); + new_label_data_stream.open(final_index_path_prefix + "_labels.txt", std::ios::binary); + new_label_data_stream << original_label_data_stream.rdbuf(); + original_label_data_stream.close(); + new_label_data_stream.close(); + + // aux. file 2 + std::ifstream original_input_data_stream; + original_input_data_stream.exceptions(std::ios::badbit | std::ios::failbit); + original_input_data_stream.open(input_data_path, std::ios::binary); + std::ofstream new_input_data_stream; + new_input_data_stream.exceptions(std::ios::badbit | std::ios::failbit); + new_input_data_stream.open(final_index_path_prefix + ".data", std::ios::binary); + new_input_data_stream << original_input_data_stream.rdbuf(); + original_input_data_stream.close(); + new_input_data_stream.close(); + + // aux. file 3 + std::ofstream labels_to_medoids_writer; + labels_to_medoids_writer.exceptions(std::ios::badbit | std::ios::failbit); + labels_to_medoids_writer.open(final_index_path_prefix + "_labels_to_medoids.txt"); + for (auto iter : entry_points) + labels_to_medoids_writer << iter.first << ", " << iter.second << std::endl; + labels_to_medoids_writer.close(); + + // aux. file 4 (only if we're using a universal label) + if (universal_label != "") + { + std::ofstream universal_label_writer; + universal_label_writer.exceptions(std::ios::badbit | std::ios::failbit); + universal_label_writer.open(final_index_path_prefix + "_universal_label.txt"); + universal_label_writer << universal_label << std::endl; + universal_label_writer.close(); + } + + // main index + uint64_t index_num_frozen_points = 0, index_num_edges = 0; + uint32_t index_max_observed_degree = 0, index_entry_point = 0; + const size_t METADATA = 2 * sizeof(uint64_t) + 2 * sizeof(uint32_t); + for (auto &point_neighbors : stitched_graph) + { + index_max_observed_degree = std::max(index_max_observed_degree, (uint32_t)point_neighbors.size()); + } + + std::ofstream stitched_graph_writer; + stitched_graph_writer.exceptions(std::ios::badbit | std::ios::failbit); + stitched_graph_writer.open(final_index_path_prefix, std::ios_base::binary); + + stitched_graph_writer.write((char *)&final_index_size, sizeof(uint64_t)); + stitched_graph_writer.write((char *)&index_max_observed_degree, sizeof(uint32_t)); + stitched_graph_writer.write((char *)&index_entry_point, sizeof(uint32_t)); + stitched_graph_writer.write((char *)&index_num_frozen_points, sizeof(uint64_t)); + + size_t bytes_written = METADATA; + for (uint32_t node_point = 0; node_point < stitched_graph.size(); node_point++) + { + uint32_t current_node_num_neighbors = (uint32_t)stitched_graph[node_point].size(); + std::vector current_node_neighbors = stitched_graph[node_point]; + stitched_graph_writer.write((char *)¤t_node_num_neighbors, sizeof(uint32_t)); + bytes_written += sizeof(uint32_t); + for (const auto ¤t_node_neighbor : current_node_neighbors) + { + stitched_graph_writer.write((char *)¤t_node_neighbor, sizeof(uint32_t)); + bytes_written += sizeof(uint32_t); + } + index_num_edges += current_node_num_neighbors; + } + + if (bytes_written != final_index_size) + { + std::cerr << "Error: written bytes does not match allocated space" << std::endl; + throw; + } + + stitched_graph_writer.close(); + + std::chrono::duration saving_index_time = std::chrono::high_resolution_clock::now() - saving_index_timer; + std::cout << "Stitched graph written in " << saving_index_time.count() << " seconds" << std::endl; + std::cout << "Stitched graph average degree: " << ((float)index_num_edges) / ((float)(stitched_graph.size())) + << std::endl; + std::cout << "Stitched graph max degree: " << index_max_observed_degree << std::endl << std::endl; +} + +/* + * Unions the per-label graph indices together via the following policy: + * - any two nodes can only have at most one edge between them - + * + * Returns the "stitched" graph and its expected file size. + */ +template +stitch_indices_return_values stitch_label_indices( + path final_index_path_prefix, uint32_t total_number_of_points, label_set all_labels, + tsl::robin_map labels_to_number_of_points, + tsl::robin_map &label_entry_points, + tsl::robin_map> label_id_to_orig_id_map) +{ + size_t final_index_size = 0; + std::vector> stitched_graph(total_number_of_points); + + auto stitching_index_timer = std::chrono::high_resolution_clock::now(); + for (const auto &lbl : all_labels) + { + path curr_label_index_path(final_index_path_prefix + "_" + lbl); + std::vector> curr_label_index; + uint64_t curr_label_index_size; + uint32_t curr_label_entry_point; + + std::tie(curr_label_index, curr_label_index_size) = + diskann::load_label_index(curr_label_index_path, labels_to_number_of_points[lbl]); + curr_label_entry_point = (uint32_t)random(0, curr_label_index.size()); + label_entry_points[lbl] = label_id_to_orig_id_map[lbl][curr_label_entry_point]; + + for (uint32_t node_point = 0; node_point < curr_label_index.size(); node_point++) + { + uint32_t original_point_id = label_id_to_orig_id_map[lbl][node_point]; + for (auto &node_neighbor : curr_label_index[node_point]) + { + uint32_t original_neighbor_id = label_id_to_orig_id_map[lbl][node_neighbor]; + std::vector curr_point_neighbors = stitched_graph[original_point_id]; + if (std::find(curr_point_neighbors.begin(), curr_point_neighbors.end(), original_neighbor_id) == + curr_point_neighbors.end()) + { + stitched_graph[original_point_id].push_back(original_neighbor_id); + final_index_size += sizeof(uint32_t); + } + } + } + } + + const size_t METADATA = 2 * sizeof(uint64_t) + 2 * sizeof(uint32_t); + final_index_size += (total_number_of_points * sizeof(uint32_t) + METADATA); + + std::chrono::duration stitching_index_time = + std::chrono::high_resolution_clock::now() - stitching_index_timer; + std::cout << "stitched graph generated in memory in " << stitching_index_time.count() << " seconds" << std::endl; + + return std::make_tuple(stitched_graph, final_index_size); +} + +/* + * Applies the prune_neighbors function from src/index.cpp to + * every node in the stitched graph. + * + * This is an optional step, hence the saving of both the full + * and pruned graph. + */ +template +void prune_and_save(path final_index_path_prefix, path full_index_path_prefix, path input_data_path, + std::vector> stitched_graph, uint32_t stitched_R, + tsl::robin_map label_entry_points, std::string universal_label, + path label_data_path, uint32_t num_threads) +{ + size_t dimension, number_of_label_points; + auto diskann_cout_buffer = diskann::cout.rdbuf(nullptr); + auto std_cout_buffer = std::cout.rdbuf(nullptr); + auto pruning_index_timer = std::chrono::high_resolution_clock::now(); + + diskann::get_bin_metadata(input_data_path, number_of_label_points, dimension); + + diskann::Index index(diskann::Metric::L2, dimension, number_of_label_points, nullptr, nullptr, 0, false, false, + false, false, 0, false); + + // not searching this index, set search_l to 0 + index.load(full_index_path_prefix.c_str(), num_threads, 1); + + std::cout << "parsing labels" << std::endl; + + index.prune_all_neighbors(stitched_R, 750, 1.2); + index.save((final_index_path_prefix).c_str()); + + diskann::cout.rdbuf(diskann_cout_buffer); + std::cout.rdbuf(std_cout_buffer); + std::chrono::duration pruning_index_time = std::chrono::high_resolution_clock::now() - pruning_index_timer; + std::cout << "pruning performed in " << pruning_index_time.count() << " seconds\n" << std::endl; +} + +/* + * Delete all temporary artifacts. + * In the process of creating the stitched index, some temporary artifacts are + * created: + * 1. the separate bin files for each labels' points + * 2. the separate diskANN indices built for each label + * 3. the '.data' file created while generating the indices + */ +void clean_up_artifacts(path input_data_path, path final_index_path_prefix, label_set all_labels) +{ + for (const auto &lbl : all_labels) + { + path curr_label_input_data_path(input_data_path + "_" + lbl); + path curr_label_index_path(final_index_path_prefix + "_" + lbl); + path curr_label_index_path_data(curr_label_index_path + ".data"); + + if (std::remove(curr_label_index_path.c_str()) != 0) + throw; + if (std::remove(curr_label_input_data_path.c_str()) != 0) + throw; + if (std::remove(curr_label_index_path_data.c_str()) != 0) + throw; + } +} + +int main(int argc, char **argv) +{ + // 1. handle cmdline inputs + std::string data_type; + path input_data_path, final_index_path_prefix, label_data_path; + std::string universal_label; + uint32_t num_threads, R, L, stitched_R; + float alpha; + + auto index_timer = std::chrono::high_resolution_clock::now(); + handle_args(argc, argv, data_type, input_data_path, final_index_path_prefix, label_data_path, universal_label, + num_threads, R, L, stitched_R, alpha); + + path labels_file_to_use = final_index_path_prefix + "_label_formatted.txt"; + path labels_map_file = final_index_path_prefix + "_labels_map.txt"; + + convert_labels_string_to_int(label_data_path, labels_file_to_use, labels_map_file, universal_label); + + // 2. parse label file and create necessary data structures + std::vector point_ids_to_labels; + tsl::robin_map labels_to_number_of_points; + label_set all_labels; + + std::tie(point_ids_to_labels, labels_to_number_of_points, all_labels) = + diskann::parse_label_file(labels_file_to_use, universal_label); + + // 3. for each label, make a separate data file + tsl::robin_map> label_id_to_orig_id_map; + uint32_t total_number_of_points = (uint32_t)point_ids_to_labels.size(); + +#ifndef _WINDOWS + if (data_type == "uint8") + label_id_to_orig_id_map = diskann::generate_label_specific_vector_files( + input_data_path, labels_to_number_of_points, point_ids_to_labels, all_labels); + else if (data_type == "int8") + label_id_to_orig_id_map = diskann::generate_label_specific_vector_files( + input_data_path, labels_to_number_of_points, point_ids_to_labels, all_labels); + else if (data_type == "float") + label_id_to_orig_id_map = diskann::generate_label_specific_vector_files( + input_data_path, labels_to_number_of_points, point_ids_to_labels, all_labels); + else + throw; +#else + if (data_type == "uint8") + label_id_to_orig_id_map = diskann::generate_label_specific_vector_files_compat( + input_data_path, labels_to_number_of_points, point_ids_to_labels, all_labels); + else if (data_type == "int8") + label_id_to_orig_id_map = diskann::generate_label_specific_vector_files_compat( + input_data_path, labels_to_number_of_points, point_ids_to_labels, all_labels); + else if (data_type == "float") + label_id_to_orig_id_map = diskann::generate_label_specific_vector_files_compat( + input_data_path, labels_to_number_of_points, point_ids_to_labels, all_labels); + else + throw; +#endif + + // 4. for each created data file, create a vanilla diskANN index + if (data_type == "uint8") + diskann::generate_label_indices(input_data_path, final_index_path_prefix, all_labels, R, L, alpha, + num_threads); + else if (data_type == "int8") + diskann::generate_label_indices(input_data_path, final_index_path_prefix, all_labels, R, L, alpha, + num_threads); + else if (data_type == "float") + diskann::generate_label_indices(input_data_path, final_index_path_prefix, all_labels, R, L, alpha, + num_threads); + else + throw; + + // 5. "stitch" the indices together + std::vector> stitched_graph; + tsl::robin_map label_entry_points; + uint64_t stitched_graph_size; + + if (data_type == "uint8") + std::tie(stitched_graph, stitched_graph_size) = + stitch_label_indices(final_index_path_prefix, total_number_of_points, all_labels, + labels_to_number_of_points, label_entry_points, label_id_to_orig_id_map); + else if (data_type == "int8") + std::tie(stitched_graph, stitched_graph_size) = + stitch_label_indices(final_index_path_prefix, total_number_of_points, all_labels, + labels_to_number_of_points, label_entry_points, label_id_to_orig_id_map); + else if (data_type == "float") + std::tie(stitched_graph, stitched_graph_size) = + stitch_label_indices(final_index_path_prefix, total_number_of_points, all_labels, + labels_to_number_of_points, label_entry_points, label_id_to_orig_id_map); + else + throw; + path full_index_path_prefix = final_index_path_prefix + "_full"; + // 5a. save the stitched graph to disk + save_full_index(full_index_path_prefix, input_data_path, stitched_graph_size, stitched_graph, label_entry_points, + universal_label, labels_file_to_use); + + // 6. run a prune on the stitched index, and save to disk + if (data_type == "uint8") + prune_and_save(final_index_path_prefix, full_index_path_prefix, input_data_path, stitched_graph, + stitched_R, label_entry_points, universal_label, labels_file_to_use, num_threads); + else if (data_type == "int8") + prune_and_save(final_index_path_prefix, full_index_path_prefix, input_data_path, stitched_graph, + stitched_R, label_entry_points, universal_label, labels_file_to_use, num_threads); + else if (data_type == "float") + prune_and_save(final_index_path_prefix, full_index_path_prefix, input_data_path, stitched_graph, + stitched_R, label_entry_points, universal_label, labels_file_to_use, num_threads); + else + throw; + + std::chrono::duration index_time = std::chrono::high_resolution_clock::now() - index_timer; + std::cout << "pruned/stitched graph generated in " << index_time.count() << " seconds" << std::endl; + + clean_up_artifacts(input_data_path, final_index_path_prefix, all_labels); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/python/README.md b/packages/leann-backend-diskann/third_party/DiskANN/apps/python/README.md new file mode 100644 index 0000000..2b0bc35 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/python/README.md @@ -0,0 +1,46 @@ + + +# Integration Tests +The following tests use Python to prepare, run, verify, and tear down the rest api services. + +We do make use of the built-in `unittest` library, but that's only to take advantage of test reporting purposes. + +These are decidedly **not** _unit_ tests. These are end to end integration tests. + +## Caveats +This has only been tested or built for Linux, though we have written platform agnostic Python for the smoke test +(i.e. using `os.path.join`, etc) + +It has been tested on Python 3.9 and 3.10, but should work on Python 3.6+. + +## How to Run + +First, build the DiskANN RestAPI code; see $REPOSITORY_ROOT/workflows/rest_api.md for detailed instructions. + +```bash +cd tests/python +python3 -m venv venv +source venv/bin/activate +pip install -r requirements.txt + +export DISKANN_BUILD_DIR=/path/to/your/diskann/build +python -m unittest +``` + +## Smoke Test Failed, Now What? +The smoke test written takes advantage of temporary directories that are only valid during the +lifetime of the test. The contents of these directories include: +- Randomized vectors (first in tsv, then bin form) used to build the PQFlashIndex +- The PQFlashIndex files + +It is useful to keep these around. By setting some environment variables, you can control whether an ephemeral, +temporary directory is used (and deleted on test completion), or left as an exercise for the developer to +clean up. + +The valid environment variables are: +- `DISKANN_REST_TEST_WORKING_DIR` (example: `$USER/DiskANNRestTest`) + - If this is specified, it **must exist** and **must be writeable**. Any existing files will be clobbered. +- `DISKANN_REST_SERVER` (example: `http://127.0.0.1:10067`) + - Note that if this is set, no data will be generated, nor will a server be started; it is presumed you have done + all the work in creating and starting the rest server prior to running the test and just submits requests against it. diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/__init__.py b/packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/disk_ann_util.py b/packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/disk_ann_util.py new file mode 100644 index 0000000..ec89310 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/python/restapi/disk_ann_util.py @@ -0,0 +1,67 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import numpy as np +import os +import subprocess + + +def output_vectors( + diskann_build_path: str, + temporary_file_path: str, + vectors: np.ndarray, + timeout: int = 60 +) -> str: + vectors_as_tsv_path = os.path.join(temporary_file_path, "vectors.tsv") + with open(vectors_as_tsv_path, "w") as vectors_tsv_out: + for vector in vectors: + as_str = "\t".join((str(component) for component in vector)) + print(as_str, file=vectors_tsv_out) + # there is probably a clever way to have numpy write out C++ friendly floats, so feel free to remove this in + # favor of something more sane later + vectors_as_bin_path = os.path.join(temporary_file_path, "vectors.bin") + tsv_to_bin_path = os.path.join(diskann_build_path, "apps", "utils", "tsv_to_bin") + + number_of_points, dimensions = vectors.shape + args = [ + tsv_to_bin_path, + "float", + vectors_as_tsv_path, + vectors_as_bin_path, + str(dimensions), + str(number_of_points) + ] + completed = subprocess.run(args, timeout=timeout) + if completed.returncode != 0: + raise Exception(f"Unable to convert tsv to binary using tsv_to_bin, completed_process: {completed}") + return vectors_as_bin_path + + +def build_ssd_index( + diskann_build_path: str, + temporary_file_path: str, + vectors: np.ndarray, + per_process_timeout: int = 60 # this may not be long enough if you're doing something larger +): + vectors_as_bin_path = output_vectors(diskann_build_path, temporary_file_path, vectors, timeout=per_process_timeout) + + ssd_builder_path = os.path.join(diskann_build_path, "apps", "build_disk_index") + args = [ + ssd_builder_path, + "--data_type", "float", + "--dist_fn", "l2", + "--data_path", vectors_as_bin_path, + "--index_path_prefix", os.path.join(temporary_file_path, "smoke_test"), + "-R", "64", + "-L", "100", + "--search_DRAM_budget", "1", + "--build_DRAM_budget", "1", + "--num_threads", "1", + "--PQ_disk_bytes", "0" + ] + completed = subprocess.run(args, timeout=per_process_timeout) + + if completed.returncode != 0: + command_run = " ".join(args) + raise Exception(f"Unable to build a disk index with the command: '{command_run}'\ncompleted_process: {completed}\nstdout: {completed.stdout}\nstderr: {completed.stderr}") + # index is now built inside of temporary_file_path diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/range_search_disk_index.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/range_search_disk_index.cpp new file mode 100644 index 0000000..3167572 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/range_search_disk_index.cpp @@ -0,0 +1,379 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include + +#include "index.h" +#include "disk_utils.h" +#include "math_utils.h" +#include "memory_mapper.h" +#include "pq_flash_index.h" +#include "partition.h" +#include "timer.h" +#include "program_options_utils.hpp" + +#ifndef _WINDOWS +#include +#include +#include +#include "linux_aligned_file_reader.h" +#else +#ifdef USE_BING_INFRA +#include "bing_aligned_file_reader.h" +#else +#include "windows_aligned_file_reader.h" +#endif +#endif + +namespace po = boost::program_options; + +#define WARMUP false + +void print_stats(std::string category, std::vector percentiles, std::vector results) +{ + diskann::cout << std::setw(20) << category << ": " << std::flush; + for (uint32_t s = 0; s < percentiles.size(); s++) + { + diskann::cout << std::setw(8) << percentiles[s] << "%"; + } + diskann::cout << std::endl; + diskann::cout << std::setw(22) << " " << std::flush; + for (uint32_t s = 0; s < percentiles.size(); s++) + { + diskann::cout << std::setw(9) << results[s]; + } + diskann::cout << std::endl; +} + +template +int search_disk_index(diskann::Metric &metric, const std::string &index_path_prefix, const std::string &query_file, + std::string >_file, const uint32_t num_threads, const float search_range, + const uint32_t beamwidth, const uint32_t num_nodes_to_cache, const std::vector &Lvec) +{ + std::string pq_prefix = index_path_prefix + "_pq"; + std::string disk_index_file = index_path_prefix + "_disk.index"; + std::string warmup_query_file = index_path_prefix + "_sample_data.bin"; + + diskann::cout << "Search parameters: #threads: " << num_threads << ", "; + if (beamwidth <= 0) + diskann::cout << "beamwidth to be optimized for each L value" << std::endl; + else + diskann::cout << " beamwidth: " << beamwidth << std::endl; + + // load query bin + T *query = nullptr; + std::vector> groundtruth_ids; + size_t query_num, query_dim, query_aligned_dim, gt_num; + diskann::load_aligned_bin(query_file, query, query_num, query_dim, query_aligned_dim); + + bool calc_recall_flag = false; + if (gt_file != std::string("null") && file_exists(gt_file)) + { + diskann::load_range_truthset(gt_file, groundtruth_ids, + gt_num); // use for range search type of truthset + // diskann::prune_truthset_for_range(gt_file, search_range, + // groundtruth_ids, gt_num); // use for traditional truthset + if (gt_num != query_num) + { + diskann::cout << "Error. Mismatch in number of queries and ground truth data" << std::endl; + return -1; + } + calc_recall_flag = true; + } + + std::shared_ptr reader = nullptr; +#ifdef _WINDOWS +#ifndef USE_BING_INFRA + reader.reset(new WindowsAlignedFileReader()); +#else + reader.reset(new diskann::BingAlignedFileReader()); +#endif +#else + reader.reset(new LinuxAlignedFileReader()); +#endif + + std::unique_ptr> _pFlashIndex( + new diskann::PQFlashIndex(reader, metric)); + + int res = _pFlashIndex->load(num_threads, index_path_prefix.c_str()); + + if (res != 0) + { + return res; + } + // cache bfs levels + std::vector node_list; + diskann::cout << "Caching " << num_nodes_to_cache << " BFS nodes around medoid(s)" << std::endl; + _pFlashIndex->cache_bfs_levels(num_nodes_to_cache, node_list); + // _pFlashIndex->generate_cache_list_from_sample_queries( + // warmup_query_file, 15, 6, num_nodes_to_cache, num_threads, + // node_list); + _pFlashIndex->load_cache_list(node_list); + node_list.clear(); + node_list.shrink_to_fit(); + + omp_set_num_threads(num_threads); + + uint64_t warmup_L = 20; + uint64_t warmup_num = 0, warmup_dim = 0, warmup_aligned_dim = 0; + T *warmup = nullptr; + + if (WARMUP) + { + if (file_exists(warmup_query_file)) + { + diskann::load_aligned_bin(warmup_query_file, warmup, warmup_num, warmup_dim, warmup_aligned_dim); + } + else + { + warmup_num = (std::min)((uint32_t)150000, (uint32_t)15000 * num_threads); + warmup_dim = query_dim; + warmup_aligned_dim = query_aligned_dim; + diskann::alloc_aligned(((void **)&warmup), warmup_num * warmup_aligned_dim * sizeof(T), 8 * sizeof(T)); + std::memset(warmup, 0, warmup_num * warmup_aligned_dim * sizeof(T)); + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_int_distribution<> dis(-128, 127); + for (uint32_t i = 0; i < warmup_num; i++) + { + for (uint32_t d = 0; d < warmup_dim; d++) + { + warmup[i * warmup_aligned_dim + d] = (T)dis(gen); + } + } + } + diskann::cout << "Warming up index... " << std::flush; + std::vector warmup_result_ids_64(warmup_num, 0); + std::vector warmup_result_dists(warmup_num, 0); + +#pragma omp parallel for schedule(dynamic, 1) + for (int64_t i = 0; i < (int64_t)warmup_num; i++) + { + _pFlashIndex->cached_beam_search(warmup + (i * warmup_aligned_dim), 1, warmup_L, + warmup_result_ids_64.data() + (i * 1), + warmup_result_dists.data() + (i * 1), 4); + } + diskann::cout << "..done" << std::endl; + } + + diskann::cout.setf(std::ios_base::fixed, std::ios_base::floatfield); + diskann::cout.precision(2); + + std::string recall_string = "Recall@rng=" + std::to_string(search_range); + diskann::cout << std::setw(6) << "L" << std::setw(12) << "Beamwidth" << std::setw(16) << "QPS" << std::setw(16) + << "Mean Latency" << std::setw(16) << "99.9 Latency" << std::setw(16) << "Mean IOs" << std::setw(16) + << "CPU (s)"; + if (calc_recall_flag) + { + diskann::cout << std::setw(16) << recall_string << std::endl; + } + else + diskann::cout << std::endl; + diskann::cout << "===============================================================" + "===========================================" + << std::endl; + + std::vector>> query_result_ids(Lvec.size()); + + uint32_t optimized_beamwidth = 2; + uint32_t max_list_size = 10000; + + for (uint32_t test_id = 0; test_id < Lvec.size(); test_id++) + { + uint32_t L = Lvec[test_id]; + + if (beamwidth <= 0) + { + optimized_beamwidth = + optimize_beamwidth(_pFlashIndex, warmup, warmup_num, warmup_aligned_dim, L, optimized_beamwidth); + } + else + optimized_beamwidth = beamwidth; + + query_result_ids[test_id].clear(); + query_result_ids[test_id].resize(query_num); + + diskann::QueryStats *stats = new diskann::QueryStats[query_num]; + + auto s = std::chrono::high_resolution_clock::now(); +#pragma omp parallel for schedule(dynamic, 1) + for (int64_t i = 0; i < (int64_t)query_num; i++) + { + std::vector indices; + std::vector distances; + uint32_t res_count = + _pFlashIndex->range_search(query + (i * query_aligned_dim), search_range, L, max_list_size, indices, + distances, optimized_beamwidth, stats + i); + query_result_ids[test_id][i].reserve(res_count); + query_result_ids[test_id][i].resize(res_count); + for (uint32_t idx = 0; idx < res_count; idx++) + query_result_ids[test_id][i][idx] = (uint32_t)indices[idx]; + } + auto e = std::chrono::high_resolution_clock::now(); + std::chrono::duration diff = e - s; + auto qps = (1.0 * query_num) / (1.0 * diff.count()); + + auto mean_latency = diskann::get_mean_stats( + stats, query_num, [](const diskann::QueryStats &stats) { return stats.total_us; }); + + auto latency_999 = diskann::get_percentile_stats( + stats, query_num, 0.999, [](const diskann::QueryStats &stats) { return stats.total_us; }); + + auto mean_ios = diskann::get_mean_stats(stats, query_num, + [](const diskann::QueryStats &stats) { return stats.n_ios; }); + + double mean_cpuus = diskann::get_mean_stats( + stats, query_num, [](const diskann::QueryStats &stats) { return stats.cpu_us; }); + + double recall = 0; + double ratio_of_sums = 0; + if (calc_recall_flag) + { + recall = + diskann::calculate_range_search_recall((uint32_t)query_num, groundtruth_ids, query_result_ids[test_id]); + + uint32_t total_true_positive = 0; + uint32_t total_positive = 0; + for (uint32_t i = 0; i < query_num; i++) + { + total_true_positive += (uint32_t)query_result_ids[test_id][i].size(); + total_positive += (uint32_t)groundtruth_ids[i].size(); + } + + ratio_of_sums = (1.0 * total_true_positive) / (1.0 * total_positive); + } + + diskann::cout << std::setw(6) << L << std::setw(12) << optimized_beamwidth << std::setw(16) << qps + << std::setw(16) << mean_latency << std::setw(16) << latency_999 << std::setw(16) << mean_ios + << std::setw(16) << mean_cpuus; + if (calc_recall_flag) + { + diskann::cout << std::setw(16) << recall << "," << ratio_of_sums << std::endl; + } + else + diskann::cout << std::endl; + } + + diskann::cout << "Done searching. " << std::endl; + + diskann::aligned_free(query); + if (warmup != nullptr) + diskann::aligned_free(warmup); + return 0; +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, index_path_prefix, result_path_prefix, query_file, gt_file; + uint32_t num_threads, W, num_nodes_to_cache; + std::vector Lvec; + float range; + + po::options_description desc{program_options_utils::make_program_description( + "range_search_disk_index", "Searches disk DiskANN indexes using ranges")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("query_file", po::value(&query_file)->required(), + program_options_utils::QUERY_FILE_DESCRIPTION); + required_configs.add_options()("search_list,L", + po::value>(&Lvec)->multitoken()->required(), + program_options_utils::SEARCH_LIST_DESCRIPTION); + required_configs.add_options()("range_threshold,K", po::value(&range)->required(), + "Number of neighbors to be returned"); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()("gt_file", po::value(>_file)->default_value(std::string("null")), + program_options_utils::GROUND_TRUTH_FILE_DESCRIPTION); + optional_configs.add_options()("num_nodes_to_cache", po::value(&num_nodes_to_cache)->default_value(0), + program_options_utils::NUMBER_OF_NODES_TO_CACHE); + optional_configs.add_options()("beamwidth,W", po::value(&W)->default_value(2), + program_options_utils::BEAMWIDTH); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("mips")) + { + metric = diskann::Metric::INNER_PRODUCT; + } + else if (dist_fn == std::string("l2")) + { + metric = diskann::Metric::L2; + } + else if (dist_fn == std::string("cosine")) + { + metric = diskann::Metric::COSINE; + } + else + { + std::cout << "Unsupported distance function. Currently only L2/ Inner " + "Product/Cosine are supported." + << std::endl; + return -1; + } + + if ((data_type != std::string("float")) && (metric == diskann::Metric::INNER_PRODUCT)) + { + std::cout << "Currently support only floating point data for Inner Product." << std::endl; + return -1; + } + + try + { + if (data_type == std::string("float")) + return search_disk_index(metric, index_path_prefix, query_file, gt_file, num_threads, range, W, + num_nodes_to_cache, Lvec); + else if (data_type == std::string("int8")) + return search_disk_index(metric, index_path_prefix, query_file, gt_file, num_threads, range, W, + num_nodes_to_cache, Lvec); + else if (data_type == std::string("uint8")) + return search_disk_index(metric, index_path_prefix, query_file, gt_file, num_threads, range, W, + num_nodes_to_cache, Lvec); + else + { + std::cerr << "Unsupported data type. Use float or int8 or uint8" << std::endl; + return -1; + } + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index search failed." << std::endl; + return -1; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/CMakeLists.txt b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/CMakeLists.txt new file mode 100644 index 0000000..c73b427 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/CMakeLists.txt @@ -0,0 +1,40 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +set(CMAKE_CXX_STANDARD 17) + +add_executable(inmem_server inmem_server.cpp) +if(MSVC) + target_link_options(inmem_server PRIVATE /MACHINE:x64) + target_link_libraries(inmem_server debug ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG}/diskann_dll.lib Boost::program_options) + target_link_libraries(inmem_server optimized ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE}/diskann_dll.lib Boost::program_options) +else() + target_link_libraries(inmem_server ${PROJECT_NAME} aio -ltcmalloc -lboost_system -lcrypto -lssl -lcpprest Boost::program_options) +endif() + +add_executable(ssd_server ssd_server.cpp) +if(MSVC) + target_link_options(ssd_server PRIVATE /MACHINE:x64) + target_link_libraries(ssd_server debug ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG}/diskann_dll.lib Boost::program_options) + target_link_libraries(ssd_server optimized ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE}/diskann_dll.lib Boost::program_options) +else() + target_link_libraries(ssd_server ${PROJECT_NAME} aio -ltcmalloc -lboost_system -lcrypto -lssl -lcpprest Boost::program_options) +endif() + +add_executable(multiple_ssdindex_server multiple_ssdindex_server.cpp) +if(MSVC) + target_link_options(multiple_ssdindex_server PRIVATE /MACHINE:x64) + target_link_libraries(multiple_ssdindex_server debug ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG}/diskann_dll.lib Boost::program_options) + target_link_libraries(multiple_ssdindex_server optimized ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE}/diskann_dll.lib Boost::program_options) +else() + target_link_libraries(multiple_ssdindex_server ${PROJECT_NAME} aio -ltcmalloc -lboost_system -lcrypto -lssl -lcpprest Boost::program_options) +endif() + +add_executable(client client.cpp) +if(MSVC) + target_link_options(client PRIVATE /MACHINE:x64) + target_link_libraries(client debug ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG}/diskann_dll.lib Boost::program_options) + target_link_libraries(client optimized ${CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE}/diskann_dll.lib Boost::program_options) +else() + target_link_libraries(client ${PROJECT_NAME} -lboost_system -lcrypto -lssl -lcpprest Boost::program_options) +endif() \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/client.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/client.cpp new file mode 100644 index 0000000..fdf4414 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/client.cpp @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include + +#include +#include + +using namespace web; +using namespace web::http; +using namespace web::http::client; + +using namespace diskann; +namespace po = boost::program_options; + +template +void query_loop(const std::string &ip_addr_port, const std::string &query_file, const unsigned nq, const unsigned Ls, + const unsigned k_value) +{ + web::http::client::http_client client(U(ip_addr_port)); + + T *data; + size_t npts = 1, ndims = 128, rounded_dim = 128; + diskann::load_aligned_bin(query_file, data, npts, ndims, rounded_dim); + + for (unsigned i = 0; i < nq; ++i) + { + T *vec = data + i * rounded_dim; + web::http::http_request http_query(methods::POST); + web::json::value queryJson = web::json::value::object(); + queryJson[QUERY_ID_KEY] = i; + queryJson[K_KEY] = k_value; + queryJson[L_KEY] = Ls; + for (size_t i = 0; i < ndims; ++i) + { + queryJson[VECTOR_KEY][i] = web::json::value::number(vec[i]); + } + http_query.set_body(queryJson); + + client.request(http_query) + .then([](web::http::http_response response) -> pplx::task { + if (response.status_code() == status_codes::OK) + { + return response.extract_string(); + } + std::cerr << "Query failed" << std::endl; + return pplx::task_from_result(utility::string_t()); + }) + .then([](pplx::task previousTask) { + try + { + std::cout << previousTask.get() << std::endl; + } + catch (http_exception const &e) + { + std::wcout << e.what() << std::endl; + } + }) + .wait(); + } +} + +int main(int argc, char *argv[]) +{ + std::string data_type, query_file, address; + uint32_t num_queries; + uint32_t l_search, k_value; + + po::options_description desc{"Arguments"}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("address", po::value(&address)->required(), "Web server address"); + desc.add_options()("query_file", po::value(&query_file)->required(), + "File containing the queries to search"); + desc.add_options()("num_queries,Q", po::value(&num_queries)->required(), + "Number of queries to search"); + desc.add_options()("l_search", po::value(&l_search)->required(), "Value of L"); + desc.add_options()("k_value,K", po::value(&k_value)->default_value(10), "Value of K (default 10)"); + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << std::endl; + return -1; + } + + if (data_type == std::string("float")) + { + query_loop(address, query_file, num_queries, l_search, k_value); + } + else if (data_type == std::string("int8")) + { + query_loop(address, query_file, num_queries, l_search, k_value); + } + else if (data_type == std::string("uint8")) + { + query_loop(address, query_file, num_queries, l_search, k_value); + } + else + { + std::cerr << "Unsupported type " << argv[2] << std::endl; + return -1; + } + + return 0; +} \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/inmem_server.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/inmem_server.cpp new file mode 100644 index 0000000..11da541 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/inmem_server.cpp @@ -0,0 +1,138 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace diskann; +namespace po = boost::program_options; + +std::unique_ptr g_httpServer(nullptr); +std::vector> g_inMemorySearch; + +void setup(const utility::string_t &address, const std::string &typestring) +{ + web::http::uri_builder uriBldr(address); + auto uri = uriBldr.to_uri(); + + std::cout << "Attempting to start server on " << uri.to_string() << std::endl; + + g_httpServer = std::unique_ptr(new Server(uri, g_inMemorySearch, typestring)); + std::cout << "Created a server object" << std::endl; + + g_httpServer->open().wait(); + ucout << U"Listening for requests on: " << address << std::endl; +} + +void teardown(const utility::string_t &address) +{ + g_httpServer->close().wait(); +} + +int main(int argc, char *argv[]) +{ + std::string data_type, index_file, data_file, address, dist_fn, tags_file; + uint32_t num_threads; + uint32_t l_search; + + po::options_description desc{"Arguments"}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("address", po::value(&address)->required(), "Web server address"); + desc.add_options()("data_file", po::value(&data_file)->required(), + "File containing the data found in the index"); + desc.add_options()("index_path_prefix", po::value(&index_file)->required(), + "Path prefix for saving index file components"); + desc.add_options()("num_threads,T", po::value(&num_threads)->required(), + "Number of threads used for building index"); + desc.add_options()("l_search", po::value(&l_search)->required(), "Value of L"); + desc.add_options()("dist_fn", po::value(&dist_fn)->default_value("l2"), + "distance function "); + desc.add_options()("tags_file", po::value(&tags_file)->default_value(std::string()), + "Tags file location"); + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << std::endl; + return -1; + } + diskann::Metric metric; + if (dist_fn == std::string("l2")) + metric = diskann::Metric::L2; + else if (dist_fn == std::string("mips")) + metric = diskann::Metric::INNER_PRODUCT; + else + { + std::cout << "Error. Only l2 and mips distance functions are supported" << std::endl; + return -1; + } + + if (data_type == std::string("float")) + { + auto searcher = std::unique_ptr( + new diskann::InMemorySearch(data_file, index_file, tags_file, metric, num_threads, l_search)); + g_inMemorySearch.push_back(std::move(searcher)); + } + else if (data_type == std::string("int8")) + { + auto searcher = std::unique_ptr( + new diskann::InMemorySearch(data_file, index_file, tags_file, metric, num_threads, l_search)); + g_inMemorySearch.push_back(std::move(searcher)); + } + else if (data_type == std::string("uint8")) + { + auto searcher = std::unique_ptr( + new diskann::InMemorySearch(data_file, index_file, tags_file, metric, num_threads, l_search)); + g_inMemorySearch.push_back(std::move(searcher)); + } + else + { + std::cerr << "Unsupported data type " << argv[2] << std::endl; + } + + while (1) + { + try + { + setup(address, data_type); + std::cout << "Type 'exit' (case-sensitive) to exit" << std::endl; + std::string line; + std::getline(std::cin, line); + if (line == "exit") + { + teardown(address); + g_httpServer->close().wait(); + exit(0); + } + } + catch (const std::exception &ex) + { + std::cerr << "Exception occurred: " << ex.what() << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + catch (...) + { + std::cerr << "Unknown exception occurreed" << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/main.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/main.cpp new file mode 100644 index 0000000..cb48d67 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/main.cpp @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include + +std::unique_ptr g_httpServer(nullptr); +std::unique_ptr g_inMemorySearch(nullptr); + +void setup(const utility::string_t &address) +{ + web::http::uri_builder uriBldr(address); + auto uri = uriBldr.to_uri(); + + std::wcout << L"Attempting to start server on " << uri.to_string() << std::endl; + + g_httpServer = std::unique_ptr(new Server(uri, g_inMemorySearch)); + g_httpServer->open().wait(); + + ucout << U"Listening for requests on: " << address << std::endl; +} + +void teardown(const utility::string_t &address) +{ + g_httpServer->close().wait(); +} + +void loadIndex(const char *indexFile, const char *baseFile, const char *idsFile) +{ + auto nsgSearch = new diskann::InMemorySearch(baseFile, indexFile, idsFile, diskann::L2); + g_inMemorySearch = std::unique_ptr(nsgSearch); +} + +std::wstring getHostingAddress(const char *hostNameAndPort) +{ + wchar_t buffer[4096]; + mbstowcs_s(nullptr, buffer, sizeof(buffer) / sizeof(buffer[0]), hostNameAndPort, + sizeof(buffer) / sizeof(buffer[0])); + return std::wstring(buffer); +} + +int main(int argc, char *argv[]) +{ + if (argc != 5) + { + std::cout << "Usage: nsg_server " + " " + << std::endl; + exit(1); + } + + auto address = getHostingAddress(argv[1]); + loadIndex(argv[2], argv[3], argv[4]); + while (1) + { + try + { + setup(address); + std::cout << "Type 'exit' (case-sensitive) to exit" << std::endl; + std::string line; + std::getline(std::cin, line); + if (line == "exit") + { + teardown(address); + exit(0); + } + } + catch (const std::exception &ex) + { + std::cerr << "Exception occurred: " << ex.what() << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + catch (...) + { + std::cerr << "Unknown exception occurreed" << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/multiple_ssdindex_server.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/multiple_ssdindex_server.cpp new file mode 100644 index 0000000..89cb06f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/multiple_ssdindex_server.cpp @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace diskann; +namespace po = boost::program_options; + +std::unique_ptr g_httpServer(nullptr); +std::vector> g_ssdSearch; + +void setup(const utility::string_t &address, const std::string &typestring) +{ + web::http::uri_builder uriBldr(address); + auto uri = uriBldr.to_uri(); + + std::cout << "Attempting to start server on " << uri.to_string() << std::endl; + + g_httpServer = std::unique_ptr(new Server(uri, g_ssdSearch, typestring)); + std::cout << "Created a server object" << std::endl; + + g_httpServer->open().wait(); + ucout << U"Listening for requests on: " << address << std::endl; +} + +void teardown(const utility::string_t &address) +{ + g_httpServer->close().wait(); +} + +int main(int argc, char *argv[]) +{ + std::string data_type, index_prefix_paths, address, dist_fn, tags_file; + uint32_t num_nodes_to_cache; + uint32_t num_threads; + + po::options_description desc{"Arguments"}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("address", po::value(&address)->required(), "Web server address"); + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("index_prefix_paths", po::value(&index_prefix_paths)->required(), + "Path prefix for loading index file components"); + desc.add_options()("num_nodes_to_cache", po::value(&num_nodes_to_cache)->default_value(0), + "Number of nodes to cache during search"); + desc.add_options()("num_threads,T", po::value(&num_threads)->default_value(omp_get_num_procs()), + "Number of threads used for building index (defaults to " + "omp_get_num_procs())"); + desc.add_options()("dist_fn", po::value(&dist_fn)->default_value("l2"), + "distance function "); + desc.add_options()("tags_file", po::value(&tags_file)->default_value(std::string()), + "Tags file location"); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << std::endl; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("l2")) + metric = diskann::Metric::L2; + else if (dist_fn == std::string("mips")) + metric = diskann::Metric::INNER_PRODUCT; + else + { + std::cout << "Error. Only l2 and mips distance functions are supported" << std::endl; + return -1; + } + + std::vector> index_tag_paths; + std::ifstream index_in(index_prefix_paths); + if (!index_in.is_open()) + { + std::cerr << "Could not open " << index_prefix_paths << std::endl; + exit(-1); + } + std::ifstream tags_in(tags_file); + if (!tags_in.is_open()) + { + std::cerr << "Could not open " << tags_file << std::endl; + exit(-1); + } + std::string prefix, tagfile; + while (std::getline(index_in, prefix)) + { + if (std::getline(tags_in, tagfile)) + { + index_tag_paths.push_back(std::make_pair(prefix, tagfile)); + } + else + { + std::cerr << "The number of tags specified does not match the number of " + "indices specified" + << std::endl; + exit(-1); + } + } + index_in.close(); + tags_in.close(); + + if (data_type == std::string("float")) + { + for (auto &index_tag : index_tag_paths) + { + auto searcher = std::unique_ptr(new diskann::PQFlashSearch( + index_tag.first.c_str(), num_nodes_to_cache, num_threads, index_tag.second.c_str(), metric)); + g_ssdSearch.push_back(std::move(searcher)); + } + } + else if (data_type == std::string("int8")) + { + for (auto &index_tag : index_tag_paths) + { + auto searcher = std::unique_ptr(new diskann::PQFlashSearch( + index_tag.first.c_str(), num_nodes_to_cache, num_threads, index_tag.second.c_str(), metric)); + g_ssdSearch.push_back(std::move(searcher)); + } + } + else if (data_type == std::string("uint8")) + { + for (auto &index_tag : index_tag_paths) + { + auto searcher = std::unique_ptr(new diskann::PQFlashSearch( + index_tag.first.c_str(), num_nodes_to_cache, num_threads, index_tag.second.c_str(), metric)); + g_ssdSearch.push_back(std::move(searcher)); + } + } + else + { + std::cerr << "Unsupported data type " << data_type << std::endl; + exit(-1); + } + + while (1) + { + try + { + setup(address, data_type); + std::cout << "Type 'exit' (case-sensitive) to exit" << std::endl; + std::string line; + std::getline(std::cin, line); + if (line == "exit") + { + teardown(address); + g_httpServer->close().wait(); + exit(0); + } + } + catch (const std::exception &ex) + { + std::cerr << "Exception occurred: " << ex.what() << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + catch (...) + { + std::cerr << "Unknown exception occurreed" << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/ssd_server.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/ssd_server.cpp new file mode 100644 index 0000000..d179973 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/restapi/ssd_server.cpp @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace diskann; +namespace po = boost::program_options; + +std::unique_ptr g_httpServer(nullptr); +std::vector> g_ssdSearch; + +void setup(const utility::string_t &address, const std::string &typestring) +{ + web::http::uri_builder uriBldr(address); + auto uri = uriBldr.to_uri(); + + std::cout << "Attempting to start server on " << uri.to_string() << std::endl; + + g_httpServer = std::unique_ptr(new Server(uri, g_ssdSearch, typestring)); + std::cout << "Created a server object" << std::endl; + + g_httpServer->open().wait(); + ucout << U"Listening for requests on: " << address << std::endl; +} + +void teardown(const utility::string_t &address) +{ + g_httpServer->close().wait(); +} + +int main(int argc, char *argv[]) +{ + std::string data_type, index_path_prefix, address, dist_fn, tags_file; + uint32_t num_nodes_to_cache; + uint32_t num_threads; + + po::options_description desc{"Arguments"}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("address", po::value(&address)->required(), "Web server address"); + desc.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + "Path prefix for loading index file components"); + desc.add_options()("num_nodes_to_cache", po::value(&num_nodes_to_cache)->default_value(0), + "Number of nodes to cache during search"); + desc.add_options()("num_threads,T", po::value(&num_threads)->default_value(omp_get_num_procs()), + "Number of threads used for building index (defaults to " + "omp_get_num_procs())"); + desc.add_options()("dist_fn", po::value(&dist_fn)->default_value("l2"), + "distance function "); + desc.add_options()("tags_file", po::value(&tags_file)->default_value(std::string()), + "Tags file location"); + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << std::endl; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("l2")) + metric = diskann::Metric::L2; + else if (dist_fn == std::string("mips")) + metric = diskann::Metric::INNER_PRODUCT; + else + { + std::cout << "Error. Only l2 and mips distance functions are supported" << std::endl; + return -1; + } + + if (data_type == std::string("float")) + { + auto searcher = std::unique_ptr( + new diskann::PQFlashSearch(index_path_prefix, num_nodes_to_cache, num_threads, tags_file, metric)); + g_ssdSearch.push_back(std::move(searcher)); + } + else if (data_type == std::string("int8")) + { + auto searcher = std::unique_ptr( + new diskann::PQFlashSearch(index_path_prefix, num_nodes_to_cache, num_threads, tags_file, metric)); + g_ssdSearch.push_back(std::move(searcher)); + } + else if (data_type == std::string("uint8")) + { + auto searcher = std::unique_ptr( + new diskann::PQFlashSearch(index_path_prefix, num_nodes_to_cache, num_threads, tags_file, metric)); + g_ssdSearch.push_back(std::move(searcher)); + } + else + { + std::cerr << "Unsupported data type " << argv[2] << std::endl; + exit(-1); + } + + while (1) + { + try + { + setup(address, data_type); + std::cout << "Type 'exit' (case-sensitive) to exit" << std::endl; + std::string line; + std::getline(std::cin, line); + if (line == "exit") + { + teardown(address); + g_httpServer->close().wait(); + exit(0); + } + } + catch (const std::exception &ex) + { + std::cerr << "Exception occurred: " << ex.what() << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + catch (...) + { + std::cerr << "Unknown exception occurreed" << std::endl; + std::cerr << "Restarting HTTP server"; + teardown(address); + } + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/search_disk_index.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/search_disk_index.cpp new file mode 100644 index 0000000..6b0793d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/search_disk_index.cpp @@ -0,0 +1,499 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include "common_includes.h" +#include + +#include "index.h" +#include "disk_utils.h" +#include "math_utils.h" +#include "memory_mapper.h" +#include "partition.h" +#include "pq_flash_index.h" +#include "timer.h" +#include "percentile_stats.h" +#include "program_options_utils.hpp" + +#ifndef _WINDOWS +#include +#include +#include +#include "linux_aligned_file_reader.h" +#else +#ifdef USE_BING_INFRA +#include "bing_aligned_file_reader.h" +#else +#include "windows_aligned_file_reader.h" +#endif +#endif + +#define WARMUP false + +namespace po = boost::program_options; + +void print_stats(std::string category, std::vector percentiles, std::vector results) +{ + diskann::cout << std::setw(20) << category << ": " << std::flush; + for (uint32_t s = 0; s < percentiles.size(); s++) + { + diskann::cout << std::setw(8) << percentiles[s] << "%"; + } + diskann::cout << std::endl; + diskann::cout << std::setw(22) << " " << std::flush; + for (uint32_t s = 0; s < percentiles.size(); s++) + { + diskann::cout << std::setw(9) << results[s]; + } + diskann::cout << std::endl; +} + +template +int search_disk_index(diskann::Metric &metric, const std::string &index_path_prefix, + const std::string &result_output_prefix, const std::string &query_file, std::string >_file, + const uint32_t num_threads, const uint32_t recall_at, const uint32_t beamwidth, + const uint32_t num_nodes_to_cache, const uint32_t search_io_limit, + const std::vector &Lvec, const float fail_if_recall_below, + const std::vector &query_filters, const bool use_reorder_data = false) +{ + diskann::cout << "Search parameters: #threads: " << num_threads << ", "; + if (beamwidth <= 0) + diskann::cout << "beamwidth to be optimized for each L value" << std::flush; + else + diskann::cout << " beamwidth: " << beamwidth << std::flush; + if (search_io_limit == std::numeric_limits::max()) + diskann::cout << "." << std::endl; + else + diskann::cout << ", io_limit: " << search_io_limit << "." << std::endl; + + std::string warmup_query_file = index_path_prefix + "_sample_data.bin"; + + // load query bin + T *query = nullptr; + uint32_t *gt_ids = nullptr; + float *gt_dists = nullptr; + size_t query_num, query_dim, query_aligned_dim, gt_num, gt_dim; + diskann::load_aligned_bin(query_file, query, query_num, query_dim, query_aligned_dim); + + bool filtered_search = false; + if (!query_filters.empty()) + { + filtered_search = true; + if (query_filters.size() != 1 && query_filters.size() != query_num) + { + std::cout << "Error. Mismatch in number of queries and size of query " + "filters file" + << std::endl; + return -1; // To return -1 or some other error handling? + } + } + + bool calc_recall_flag = false; + if (gt_file != std::string("null") && gt_file != std::string("NULL") && file_exists(gt_file)) + { + diskann::load_truthset(gt_file, gt_ids, gt_dists, gt_num, gt_dim); + if (gt_num != query_num) + { + diskann::cout << "Error. Mismatch in number of queries and ground truth data" << std::endl; + } + calc_recall_flag = true; + } + + std::shared_ptr reader = nullptr; +#ifdef _WINDOWS +#ifndef USE_BING_INFRA + reader.reset(new WindowsAlignedFileReader()); +#else + reader.reset(new diskann::BingAlignedFileReader()); +#endif +#else + reader.reset(new LinuxAlignedFileReader()); +#endif + + std::unique_ptr> _pFlashIndex( + new diskann::PQFlashIndex(reader, metric)); + + int res = _pFlashIndex->load(num_threads, index_path_prefix.c_str()); + + if (res != 0) + { + return res; + } + + std::vector node_list; + diskann::cout << "Caching " << num_nodes_to_cache << " nodes around medoid(s)" << std::endl; + _pFlashIndex->cache_bfs_levels(num_nodes_to_cache, node_list); + // if (num_nodes_to_cache > 0) + // _pFlashIndex->generate_cache_list_from_sample_queries(warmup_query_file, 15, 6, num_nodes_to_cache, + // num_threads, node_list); + _pFlashIndex->load_cache_list(node_list); + node_list.clear(); + node_list.shrink_to_fit(); + + omp_set_num_threads(num_threads); + + uint64_t warmup_L = 20; + uint64_t warmup_num = 0, warmup_dim = 0, warmup_aligned_dim = 0; + T *warmup = nullptr; + + if (WARMUP) + { + if (file_exists(warmup_query_file)) + { + diskann::load_aligned_bin(warmup_query_file, warmup, warmup_num, warmup_dim, warmup_aligned_dim); + } + else + { + warmup_num = (std::min)((uint32_t)150000, (uint32_t)15000 * num_threads); + warmup_dim = query_dim; + warmup_aligned_dim = query_aligned_dim; + diskann::alloc_aligned(((void **)&warmup), warmup_num * warmup_aligned_dim * sizeof(T), 8 * sizeof(T)); + std::memset(warmup, 0, warmup_num * warmup_aligned_dim * sizeof(T)); + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_int_distribution<> dis(-128, 127); + for (uint32_t i = 0; i < warmup_num; i++) + { + for (uint32_t d = 0; d < warmup_dim; d++) + { + warmup[i * warmup_aligned_dim + d] = (T)dis(gen); + } + } + } + diskann::cout << "Warming up index... " << std::flush; + std::vector warmup_result_ids_64(warmup_num, 0); + std::vector warmup_result_dists(warmup_num, 0); + +#pragma omp parallel for schedule(dynamic, 1) + for (int64_t i = 0; i < (int64_t)warmup_num; i++) + { + _pFlashIndex->cached_beam_search(warmup + (i * warmup_aligned_dim), 1, warmup_L, + warmup_result_ids_64.data() + (i * 1), + warmup_result_dists.data() + (i * 1), 4); + } + diskann::cout << "..done" << std::endl; + } + + diskann::cout.setf(std::ios_base::fixed, std::ios_base::floatfield); + diskann::cout.precision(2); + + std::string recall_string = "Recall@" + std::to_string(recall_at); + diskann::cout << std::setw(6) << "L" << std::setw(12) << "Beamwidth" << std::setw(16) << "QPS" << std::setw(16) + << "Mean Latency" << std::setw(16) << "99.9 Latency" << std::setw(16) << "Mean IOs" << std::setw(16) + << "Mean IO (us)" << std::setw(16) << "CPU (s)"; + if (calc_recall_flag) + { + diskann::cout << std::setw(16) << recall_string << std::endl; + } + else + diskann::cout << std::endl; + diskann::cout << "==================================================================" + "=================================================================" + << std::endl; + + std::vector> query_result_ids(Lvec.size()); + std::vector> query_result_dists(Lvec.size()); + + uint32_t optimized_beamwidth = 2; + + double best_recall = 0.0; + + for (uint32_t test_id = 0; test_id < Lvec.size(); test_id++) + { + uint32_t L = Lvec[test_id]; + + if (L < recall_at) + { + diskann::cout << "Ignoring search with L:" << L << " since it's smaller than K:" << recall_at << std::endl; + continue; + } + + if (beamwidth <= 0) + { + diskann::cout << "Tuning beamwidth.." << std::endl; + optimized_beamwidth = + optimize_beamwidth(_pFlashIndex, warmup, warmup_num, warmup_aligned_dim, L, optimized_beamwidth); + } + else + optimized_beamwidth = beamwidth; + + query_result_ids[test_id].resize(recall_at * query_num); + query_result_dists[test_id].resize(recall_at * query_num); + + auto stats = new diskann::QueryStats[query_num]; + + std::vector query_result_ids_64(recall_at * query_num); + auto s = std::chrono::high_resolution_clock::now(); + +#pragma omp parallel for schedule(dynamic, 1) + for (int64_t i = 0; i < (int64_t)query_num; i++) + { + if (!filtered_search) + { + _pFlashIndex->cached_beam_search(query + (i * query_aligned_dim), recall_at, L, + query_result_ids_64.data() + (i * recall_at), + query_result_dists[test_id].data() + (i * recall_at), + optimized_beamwidth, use_reorder_data, stats + i); + } + else + { + LabelT label_for_search; + if (query_filters.size() == 1) + { // one label for all queries + label_for_search = _pFlashIndex->get_converted_label(query_filters[0]); + } + else + { // one label for each query + label_for_search = _pFlashIndex->get_converted_label(query_filters[i]); + } + _pFlashIndex->cached_beam_search( + query + (i * query_aligned_dim), recall_at, L, query_result_ids_64.data() + (i * recall_at), + query_result_dists[test_id].data() + (i * recall_at), optimized_beamwidth, true, label_for_search, + use_reorder_data, stats + i); + } + } + auto e = std::chrono::high_resolution_clock::now(); + std::chrono::duration diff = e - s; + double qps = (1.0 * query_num) / (1.0 * diff.count()); + + diskann::convert_types(query_result_ids_64.data(), query_result_ids[test_id].data(), + query_num, recall_at); + + auto mean_latency = diskann::get_mean_stats( + stats, query_num, [](const diskann::QueryStats &stats) { return stats.total_us; }); + + auto latency_999 = diskann::get_percentile_stats( + stats, query_num, 0.999, [](const diskann::QueryStats &stats) { return stats.total_us; }); + + auto mean_ios = diskann::get_mean_stats(stats, query_num, + [](const diskann::QueryStats &stats) { return stats.n_ios; }); + + auto mean_cpuus = diskann::get_mean_stats(stats, query_num, + [](const diskann::QueryStats &stats) { return stats.cpu_us; }); + + auto mean_io_us = diskann::get_mean_stats(stats, query_num, + [](const diskann::QueryStats &stats) { return stats.io_us; }); + + double recall = 0; + if (calc_recall_flag) + { + recall = diskann::calculate_recall((uint32_t)query_num, gt_ids, gt_dists, (uint32_t)gt_dim, + query_result_ids[test_id].data(), recall_at, recall_at); + best_recall = std::max(recall, best_recall); + } + + diskann::cout << std::setw(6) << L << std::setw(12) << optimized_beamwidth << std::setw(16) << qps + << std::setw(16) << mean_latency << std::setw(16) << latency_999 << std::setw(16) << mean_ios + << std::setw(16) << mean_io_us << std::setw(16) << mean_cpuus; + if (calc_recall_flag) + { + diskann::cout << std::setw(16) << recall << std::endl; + } + else + diskann::cout << std::endl; + delete[] stats; + } + + diskann::cout << "Done searching. Now saving results " << std::endl; + uint64_t test_id = 0; + for (auto L : Lvec) + { + if (L < recall_at) + continue; + + std::string cur_result_path = result_output_prefix + "_" + std::to_string(L) + "_idx_uint32.bin"; + diskann::save_bin(cur_result_path, query_result_ids[test_id].data(), query_num, recall_at); + + cur_result_path = result_output_prefix + "_" + std::to_string(L) + "_dists_float.bin"; + diskann::save_bin(cur_result_path, query_result_dists[test_id++].data(), query_num, recall_at); + } + + diskann::aligned_free(query); + if (warmup != nullptr) + diskann::aligned_free(warmup); + return best_recall >= fail_if_recall_below ? 0 : -1; +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, index_path_prefix, result_path_prefix, query_file, gt_file, filter_label, + label_type, query_filters_file; + uint32_t num_threads, K, W, num_nodes_to_cache, search_io_limit; + std::vector Lvec; + bool use_reorder_data = false; + float fail_if_recall_below = 0.0f; + + po::options_description desc{ + program_options_utils::make_program_description("search_disk_index", "Searches on-disk DiskANN indexes")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("result_path", po::value(&result_path_prefix)->required(), + program_options_utils::RESULT_PATH_DESCRIPTION); + required_configs.add_options()("query_file", po::value(&query_file)->required(), + program_options_utils::QUERY_FILE_DESCRIPTION); + required_configs.add_options()("recall_at,K", po::value(&K)->required(), + program_options_utils::NUMBER_OF_RESULTS_DESCRIPTION); + required_configs.add_options()("search_list,L", + po::value>(&Lvec)->multitoken()->required(), + program_options_utils::SEARCH_LIST_DESCRIPTION); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("gt_file", po::value(>_file)->default_value(std::string("null")), + program_options_utils::GROUND_TRUTH_FILE_DESCRIPTION); + optional_configs.add_options()("beamwidth,W", po::value(&W)->default_value(2), + program_options_utils::BEAMWIDTH); + optional_configs.add_options()("num_nodes_to_cache", po::value(&num_nodes_to_cache)->default_value(0), + program_options_utils::NUMBER_OF_NODES_TO_CACHE); + optional_configs.add_options()( + "search_io_limit", + po::value(&search_io_limit)->default_value(std::numeric_limits::max()), + "Max #IOs for search. Default value: uint32::max()"); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()("use_reorder_data", po::bool_switch()->default_value(false), + "Include full precision data in the index. Use only in " + "conjuction with compressed data on SSD. Default value: false"); + optional_configs.add_options()("filter_label", + po::value(&filter_label)->default_value(std::string("")), + program_options_utils::FILTER_LABEL_DESCRIPTION); + optional_configs.add_options()("query_filters_file", + po::value(&query_filters_file)->default_value(std::string("")), + program_options_utils::FILTERS_FILE_DESCRIPTION); + optional_configs.add_options()("label_type", po::value(&label_type)->default_value("uint"), + program_options_utils::LABEL_TYPE_DESCRIPTION); + optional_configs.add_options()("fail_if_recall_below", + po::value(&fail_if_recall_below)->default_value(0.0f), + program_options_utils::FAIL_IF_RECALL_BELOW); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + if (vm["use_reorder_data"].as()) + use_reorder_data = true; + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("mips")) + { + metric = diskann::Metric::INNER_PRODUCT; + } + else if (dist_fn == std::string("l2")) + { + metric = diskann::Metric::L2; + } + else if (dist_fn == std::string("cosine")) + { + metric = diskann::Metric::COSINE; + } + else + { + std::cout << "Unsupported distance function. Currently only L2/ Inner " + "Product/Cosine are supported." + << std::endl; + return -1; + } + + if ((data_type != std::string("float")) && (metric == diskann::Metric::INNER_PRODUCT)) + { + std::cout << "Currently support only floating point data for Inner Product." << std::endl; + return -1; + } + + if (use_reorder_data && data_type != std::string("float")) + { + std::cout << "Error: Reorder data for reordering currently only " + "supported for float data type." + << std::endl; + return -1; + } + + if (filter_label != "" && query_filters_file != "") + { + std::cerr << "Only one of filter_label and query_filters_file should be provided" << std::endl; + return -1; + } + + std::vector query_filters; + if (filter_label != "") + { + query_filters.push_back(filter_label); + } + else if (query_filters_file != "") + { + query_filters = read_file_to_vector_of_strings(query_filters_file); + } + + try + { + if (!query_filters.empty() && label_type == "ushort") + { + if (data_type == std::string("float")) + return search_disk_index( + metric, index_path_prefix, result_path_prefix, query_file, gt_file, num_threads, K, W, + num_nodes_to_cache, search_io_limit, Lvec, fail_if_recall_below, query_filters, use_reorder_data); + else if (data_type == std::string("int8")) + return search_disk_index( + metric, index_path_prefix, result_path_prefix, query_file, gt_file, num_threads, K, W, + num_nodes_to_cache, search_io_limit, Lvec, fail_if_recall_below, query_filters, use_reorder_data); + else if (data_type == std::string("uint8")) + return search_disk_index( + metric, index_path_prefix, result_path_prefix, query_file, gt_file, num_threads, K, W, + num_nodes_to_cache, search_io_limit, Lvec, fail_if_recall_below, query_filters, use_reorder_data); + else + { + std::cerr << "Unsupported data type. Use float or int8 or uint8" << std::endl; + return -1; + } + } + else + { + if (data_type == std::string("float")) + return search_disk_index(metric, index_path_prefix, result_path_prefix, query_file, gt_file, + num_threads, K, W, num_nodes_to_cache, search_io_limit, Lvec, + fail_if_recall_below, query_filters, use_reorder_data); + else if (data_type == std::string("int8")) + return search_disk_index(metric, index_path_prefix, result_path_prefix, query_file, gt_file, + num_threads, K, W, num_nodes_to_cache, search_io_limit, Lvec, + fail_if_recall_below, query_filters, use_reorder_data); + else if (data_type == std::string("uint8")) + return search_disk_index(metric, index_path_prefix, result_path_prefix, query_file, gt_file, + num_threads, K, W, num_nodes_to_cache, search_io_limit, Lvec, + fail_if_recall_below, query_filters, use_reorder_data); + else + { + std::cerr << "Unsupported data type. Use float or int8 or uint8" << std::endl; + return -1; + } + } + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index search failed." << std::endl; + return -1; + } +} \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/search_memory_index.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/search_memory_index.cpp new file mode 100644 index 0000000..1a9acc2 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/search_memory_index.cpp @@ -0,0 +1,477 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef _WINDOWS +#include +#include +#include +#include +#endif + +#include "index.h" +#include "memory_mapper.h" +#include "utils.h" +#include "program_options_utils.hpp" +#include "index_factory.h" + +namespace po = boost::program_options; + +template +int search_memory_index(diskann::Metric &metric, const std::string &index_path, const std::string &result_path_prefix, + const std::string &query_file, const std::string &truthset_file, const uint32_t num_threads, + const uint32_t recall_at, const bool print_all_recalls, const std::vector &Lvec, + const bool dynamic, const bool tags, const bool show_qps_per_thread, + const std::vector &query_filters, const float fail_if_recall_below) +{ + using TagT = uint32_t; + // Load the query file + T *query = nullptr; + uint32_t *gt_ids = nullptr; + float *gt_dists = nullptr; + size_t query_num, query_dim, query_aligned_dim, gt_num, gt_dim; + diskann::load_aligned_bin(query_file, query, query_num, query_dim, query_aligned_dim); + + bool calc_recall_flag = false; + if (truthset_file != std::string("null") && file_exists(truthset_file)) + { + diskann::load_truthset(truthset_file, gt_ids, gt_dists, gt_num, gt_dim); + if (gt_num != query_num) + { + std::cout << "Error. Mismatch in number of queries and ground truth data" << std::endl; + } + calc_recall_flag = true; + } + else + { + diskann::cout << " Truthset file " << truthset_file << " not found. Not computing recall." << std::endl; + } + + bool filtered_search = false; + if (!query_filters.empty()) + { + filtered_search = true; + if (query_filters.size() != 1 && query_filters.size() != query_num) + { + std::cout << "Error. Mismatch in number of queries and size of query " + "filters file" + << std::endl; + return -1; // To return -1 or some other error handling? + } + } + + const size_t num_frozen_pts = diskann::get_graph_num_frozen_points(index_path); + + auto config = diskann::IndexConfigBuilder() + .with_metric(metric) + .with_dimension(query_dim) + .with_max_points(0) + .with_data_load_store_strategy(diskann::DataStoreStrategy::MEMORY) + .with_graph_load_store_strategy(diskann::GraphStoreStrategy::MEMORY) + .with_data_type(diskann_type_to_name()) + .with_label_type(diskann_type_to_name()) + .with_tag_type(diskann_type_to_name()) + .is_dynamic_index(dynamic) + .is_enable_tags(tags) + .is_concurrent_consolidate(false) + .is_pq_dist_build(false) + .is_use_opq(false) + .with_num_pq_chunks(0) + .with_num_frozen_pts(num_frozen_pts) + .build(); + + auto index_factory = diskann::IndexFactory(config); + auto index = index_factory.create_instance(); + index->load(index_path.c_str(), num_threads, *(std::max_element(Lvec.begin(), Lvec.end()))); + std::cout << "Index loaded" << std::endl; + + if (metric == diskann::FAST_L2) + index->optimize_index_layout(); + + std::cout << "Using " << num_threads << " threads to search" << std::endl; + std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield); + std::cout.precision(2); + const std::string qps_title = show_qps_per_thread ? "QPS/thread" : "QPS"; + uint32_t table_width = 0; + if (tags) + { + std::cout << std::setw(4) << "Ls" << std::setw(12) << qps_title << std::setw(20) << "Mean Latency (mus)" + << std::setw(15) << "99.9 Latency"; + table_width += 4 + 12 + 20 + 15; + } + else + { + std::cout << std::setw(4) << "Ls" << std::setw(12) << qps_title << std::setw(18) << "Avg dist cmps" + << std::setw(20) << "Mean Latency (mus)" << std::setw(15) << "99.9 Latency"; + table_width += 4 + 12 + 18 + 20 + 15; + } + uint32_t recalls_to_print = 0; + const uint32_t first_recall = print_all_recalls ? 1 : recall_at; + if (calc_recall_flag) + { + for (uint32_t curr_recall = first_recall; curr_recall <= recall_at; curr_recall++) + { + std::cout << std::setw(12) << ("Recall@" + std::to_string(curr_recall)); + } + recalls_to_print = recall_at + 1 - first_recall; + table_width += recalls_to_print * 12; + } + std::cout << std::endl; + std::cout << std::string(table_width, '=') << std::endl; + + std::vector> query_result_ids(Lvec.size()); + std::vector> query_result_dists(Lvec.size()); + std::vector latency_stats(query_num, 0); + std::vector cmp_stats; + if (not tags || filtered_search) + { + cmp_stats = std::vector(query_num, 0); + } + + std::vector query_result_tags; + if (tags) + { + query_result_tags.resize(recall_at * query_num); + } + + double best_recall = 0.0; + + for (uint32_t test_id = 0; test_id < Lvec.size(); test_id++) + { + uint32_t L = Lvec[test_id]; + if (L < recall_at) + { + diskann::cout << "Ignoring search with L:" << L << " since it's smaller than K:" << recall_at << std::endl; + continue; + } + + query_result_ids[test_id].resize(recall_at * query_num); + query_result_dists[test_id].resize(recall_at * query_num); + std::vector res = std::vector(); + + auto s = std::chrono::high_resolution_clock::now(); + omp_set_num_threads(num_threads); +#pragma omp parallel for schedule(dynamic, 1) + for (int64_t i = 0; i < (int64_t)query_num; i++) + { + auto qs = std::chrono::high_resolution_clock::now(); + if (filtered_search && !tags) + { + std::string raw_filter = query_filters.size() == 1 ? query_filters[0] : query_filters[i]; + + auto retval = index->search_with_filters(query + i * query_aligned_dim, raw_filter, recall_at, L, + query_result_ids[test_id].data() + i * recall_at, + query_result_dists[test_id].data() + i * recall_at); + cmp_stats[i] = retval.second; + } + else if (metric == diskann::FAST_L2) + { + index->search_with_optimized_layout(query + i * query_aligned_dim, recall_at, L, + query_result_ids[test_id].data() + i * recall_at); + } + else if (tags) + { + if (!filtered_search) + { + index->search_with_tags(query + i * query_aligned_dim, recall_at, L, + query_result_tags.data() + i * recall_at, nullptr, res); + } + else + { + std::string raw_filter = query_filters.size() == 1 ? query_filters[0] : query_filters[i]; + + index->search_with_tags(query + i * query_aligned_dim, recall_at, L, + query_result_tags.data() + i * recall_at, nullptr, res, true, raw_filter); + } + + for (int64_t r = 0; r < (int64_t)recall_at; r++) + { + query_result_ids[test_id][recall_at * i + r] = query_result_tags[recall_at * i + r]; + } + } + else + { + cmp_stats[i] = index + ->search(query + i * query_aligned_dim, recall_at, L, + query_result_ids[test_id].data() + i * recall_at) + .second; + } + auto qe = std::chrono::high_resolution_clock::now(); + std::chrono::duration diff = qe - qs; + latency_stats[i] = (float)(diff.count() * 1000000); + } + std::chrono::duration diff = std::chrono::high_resolution_clock::now() - s; + + double displayed_qps = query_num / diff.count(); + + if (show_qps_per_thread) + displayed_qps /= num_threads; + + std::vector recalls; + if (calc_recall_flag) + { + recalls.reserve(recalls_to_print); + for (uint32_t curr_recall = first_recall; curr_recall <= recall_at; curr_recall++) + { + recalls.push_back(diskann::calculate_recall((uint32_t)query_num, gt_ids, gt_dists, (uint32_t)gt_dim, + query_result_ids[test_id].data(), recall_at, curr_recall)); + } + } + + std::sort(latency_stats.begin(), latency_stats.end()); + double mean_latency = + std::accumulate(latency_stats.begin(), latency_stats.end(), 0.0) / static_cast(query_num); + + float avg_cmps = (float)std::accumulate(cmp_stats.begin(), cmp_stats.end(), 0) / (float)query_num; + + if (tags && !filtered_search) + { + std::cout << std::setw(4) << L << std::setw(12) << displayed_qps << std::setw(20) << (float)mean_latency + << std::setw(15) << (float)latency_stats[(uint64_t)(0.999 * query_num)]; + } + else + { + std::cout << std::setw(4) << L << std::setw(12) << displayed_qps << std::setw(18) << avg_cmps + << std::setw(20) << (float)mean_latency << std::setw(15) + << (float)latency_stats[(uint64_t)(0.999 * query_num)]; + } + for (double recall : recalls) + { + std::cout << std::setw(12) << recall; + best_recall = std::max(recall, best_recall); + } + std::cout << std::endl; + } + + std::cout << "Done searching. Now saving results " << std::endl; + uint64_t test_id = 0; + for (auto L : Lvec) + { + if (L < recall_at) + { + diskann::cout << "Ignoring search with L:" << L << " since it's smaller than K:" << recall_at << std::endl; + continue; + } + std::string cur_result_path_prefix = result_path_prefix + "_" + std::to_string(L); + + std::string cur_result_path = cur_result_path_prefix + "_idx_uint32.bin"; + diskann::save_bin(cur_result_path, query_result_ids[test_id].data(), query_num, recall_at); + + cur_result_path = cur_result_path_prefix + "_dists_float.bin"; + diskann::save_bin(cur_result_path, query_result_dists[test_id].data(), query_num, recall_at); + + test_id++; + } + + diskann::aligned_free(query); + return best_recall >= fail_if_recall_below ? 0 : -1; +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, index_path_prefix, result_path, query_file, gt_file, filter_label, label_type, + query_filters_file; + uint32_t num_threads, K; + std::vector Lvec; + bool print_all_recalls, dynamic, tags, show_qps_per_thread; + float fail_if_recall_below = 0.0f; + + po::options_description desc{ + program_options_utils::make_program_description("search_memory_index", "Searches in-memory DiskANN indexes")}; + try + { + desc.add_options()("help,h", "Print this information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("result_path", po::value(&result_path)->required(), + program_options_utils::RESULT_PATH_DESCRIPTION); + required_configs.add_options()("query_file", po::value(&query_file)->required(), + program_options_utils::QUERY_FILE_DESCRIPTION); + required_configs.add_options()("recall_at,K", po::value(&K)->required(), + program_options_utils::NUMBER_OF_RESULTS_DESCRIPTION); + required_configs.add_options()("search_list,L", + po::value>(&Lvec)->multitoken()->required(), + program_options_utils::SEARCH_LIST_DESCRIPTION); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("filter_label", + po::value(&filter_label)->default_value(std::string("")), + program_options_utils::FILTER_LABEL_DESCRIPTION); + optional_configs.add_options()("query_filters_file", + po::value(&query_filters_file)->default_value(std::string("")), + program_options_utils::FILTERS_FILE_DESCRIPTION); + optional_configs.add_options()("label_type", po::value(&label_type)->default_value("uint"), + program_options_utils::LABEL_TYPE_DESCRIPTION); + optional_configs.add_options()("gt_file", po::value(>_file)->default_value(std::string("null")), + program_options_utils::GROUND_TRUTH_FILE_DESCRIPTION); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()( + "dynamic", po::value(&dynamic)->default_value(false), + "Whether the index is dynamic. Dynamic indices must have associated tags. Default false."); + optional_configs.add_options()("tags", po::value(&tags)->default_value(false), + "Whether to search with external identifiers (tags). Default false."); + optional_configs.add_options()("fail_if_recall_below", + po::value(&fail_if_recall_below)->default_value(0.0f), + program_options_utils::FAIL_IF_RECALL_BELOW); + + // Output controls + po::options_description output_controls("Output controls"); + output_controls.add_options()("print_all_recalls", po::bool_switch(&print_all_recalls), + "Print recalls at all positions, from 1 up to specified " + "recall_at value"); + output_controls.add_options()("print_qps_per_thread", po::bool_switch(&show_qps_per_thread), + "Print overall QPS divided by the number of threads in " + "the output table"); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs).add(output_controls); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + diskann::Metric metric; + if ((dist_fn == std::string("mips")) && (data_type == std::string("float"))) + { + metric = diskann::Metric::INNER_PRODUCT; + } + else if (dist_fn == std::string("l2")) + { + metric = diskann::Metric::L2; + } + else if (dist_fn == std::string("cosine")) + { + metric = diskann::Metric::COSINE; + } + else if ((dist_fn == std::string("fast_l2")) && (data_type == std::string("float"))) + { + metric = diskann::Metric::FAST_L2; + } + else + { + std::cout << "Unsupported distance function. Currently only l2/ cosine are " + "supported in general, and mips/fast_l2 only for floating " + "point data." + << std::endl; + return -1; + } + + if (dynamic && not tags) + { + std::cerr << "Tags must be enabled while searching dynamically built indices" << std::endl; + return -1; + } + + if (fail_if_recall_below < 0.0 || fail_if_recall_below >= 100.0) + { + std::cerr << "fail_if_recall_below parameter must be between 0 and 100%" << std::endl; + return -1; + } + + if (filter_label != "" && query_filters_file != "") + { + std::cerr << "Only one of filter_label and query_filters_file should be provided" << std::endl; + return -1; + } + + std::vector query_filters; + if (filter_label != "") + { + query_filters.push_back(filter_label); + } + else if (query_filters_file != "") + { + query_filters = read_file_to_vector_of_strings(query_filters_file); + } + + try + { + if (!query_filters.empty() && label_type == "ushort") + { + if (data_type == std::string("int8")) + { + return search_memory_index( + metric, index_path_prefix, result_path, query_file, gt_file, num_threads, K, print_all_recalls, + Lvec, dynamic, tags, show_qps_per_thread, query_filters, fail_if_recall_below); + } + else if (data_type == std::string("uint8")) + { + return search_memory_index( + metric, index_path_prefix, result_path, query_file, gt_file, num_threads, K, print_all_recalls, + Lvec, dynamic, tags, show_qps_per_thread, query_filters, fail_if_recall_below); + } + else if (data_type == std::string("float")) + { + return search_memory_index(metric, index_path_prefix, result_path, query_file, gt_file, + num_threads, K, print_all_recalls, Lvec, dynamic, tags, + show_qps_per_thread, query_filters, fail_if_recall_below); + } + else + { + std::cout << "Unsupported type. Use float/int8/uint8" << std::endl; + return -1; + } + } + else + { + if (data_type == std::string("int8")) + { + return search_memory_index(metric, index_path_prefix, result_path, query_file, gt_file, + num_threads, K, print_all_recalls, Lvec, dynamic, tags, + show_qps_per_thread, query_filters, fail_if_recall_below); + } + else if (data_type == std::string("uint8")) + { + return search_memory_index(metric, index_path_prefix, result_path, query_file, gt_file, + num_threads, K, print_all_recalls, Lvec, dynamic, tags, + show_qps_per_thread, query_filters, fail_if_recall_below); + } + else if (data_type == std::string("float")) + { + return search_memory_index(metric, index_path_prefix, result_path, query_file, gt_file, + num_threads, K, print_all_recalls, Lvec, dynamic, tags, + show_qps_per_thread, query_filters, fail_if_recall_below); + } + else + { + std::cout << "Unsupported type. Use float/int8/uint8" << std::endl; + return -1; + } + } + } + catch (std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index search failed." << std::endl; + return -1; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/test_insert_deletes_consolidate.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/test_insert_deletes_consolidate.cpp new file mode 100644 index 0000000..97aed18 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/test_insert_deletes_consolidate.cpp @@ -0,0 +1,536 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "filter_utils.h" +#include "program_options_utils.hpp" +#include "index_factory.h" + +#ifndef _WINDOWS +#include +#include +#include +#endif + +#include "memory_mapper.h" + +namespace po = boost::program_options; + +// load_aligned_bin modified to read pieces of the file, but using ifstream +// instead of cached_ifstream. +template +inline void load_aligned_bin_part(const std::string &bin_file, T *data, size_t offset_points, size_t points_to_read) +{ + diskann::Timer timer; + std::ifstream reader; + reader.exceptions(std::ios::failbit | std::ios::badbit); + reader.open(bin_file, std::ios::binary | std::ios::ate); + size_t actual_file_size = reader.tellg(); + reader.seekg(0, std::ios::beg); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + size_t npts = (uint32_t)npts_i32; + size_t dim = (uint32_t)dim_i32; + + size_t expected_actual_file_size = npts * dim * sizeof(T) + 2 * sizeof(uint32_t); + if (actual_file_size != expected_actual_file_size) + { + std::stringstream stream; + stream << "Error. File size mismatch. Actual size is " << actual_file_size << " while expected size is " + << expected_actual_file_size << " npts = " << npts << " dim = " << dim << " size of = " << sizeof(T) + << std::endl; + std::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + if (offset_points + points_to_read > npts) + { + std::stringstream stream; + stream << "Error. Not enough points in file. Requested " << offset_points << " offset and " << points_to_read + << " points, but have only " << npts << " points" << std::endl; + std::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + reader.seekg(2 * sizeof(uint32_t) + offset_points * dim * sizeof(T)); + + const size_t rounded_dim = ROUND_UP(dim, 8); + + for (size_t i = 0; i < points_to_read; i++) + { + reader.read((char *)(data + i * rounded_dim), dim * sizeof(T)); + memset(data + i * rounded_dim + dim, 0, (rounded_dim - dim) * sizeof(T)); + } + reader.close(); + + const double elapsedSeconds = timer.elapsed() / 1000000.0; + std::cout << "Read " << points_to_read << " points using non-cached reads in " << elapsedSeconds << std::endl; +} + +std::string get_save_filename(const std::string &save_path, size_t points_to_skip, size_t points_deleted, + size_t last_point_threshold) +{ + std::string final_path = save_path; + if (points_to_skip > 0) + { + final_path += "skip" + std::to_string(points_to_skip) + "-"; + } + + final_path += "del" + std::to_string(points_deleted) + "-"; + final_path += std::to_string(last_point_threshold); + return final_path; +} + +template +void insert_till_next_checkpoint(diskann::AbstractIndex &index, size_t start, size_t end, int32_t thread_count, T *data, + size_t aligned_dim, std::vector> &location_to_labels) +{ + diskann::Timer insert_timer; +#pragma omp parallel for num_threads(thread_count) schedule(dynamic) + for (int64_t j = start; j < (int64_t)end; j++) + { + if (!location_to_labels.empty()) + { + index.insert_point(&data[(j - start) * aligned_dim], 1 + static_cast(j), + location_to_labels[j - start]); + } + else + { + index.insert_point(&data[(j - start) * aligned_dim], 1 + static_cast(j)); + } + } + const double elapsedSeconds = insert_timer.elapsed() / 1000000.0; + std::cout << "Insertion time " << elapsedSeconds << " seconds (" << (end - start) / elapsedSeconds + << " points/second overall, " << (end - start) / elapsedSeconds / thread_count << " per thread)\n "; +} + +template +void delete_from_beginning(diskann::AbstractIndex &index, diskann::IndexWriteParameters &delete_params, + size_t points_to_skip, size_t points_to_delete_from_beginning) +{ + try + { + std::cout << std::endl + << "Lazy deleting points " << points_to_skip << " to " + << points_to_skip + points_to_delete_from_beginning << "... "; + for (size_t i = points_to_skip; i < points_to_skip + points_to_delete_from_beginning; ++i) + index.lazy_delete(static_cast(i + 1)); // Since tags are data location + 1 + std::cout << "done." << std::endl; + + auto report = index.consolidate_deletes(delete_params); + std::cout << "#active points: " << report._active_points << std::endl + << "max points: " << report._max_points << std::endl + << "empty slots: " << report._empty_slots << std::endl + << "deletes processed: " << report._slots_released << std::endl + << "latest delete size: " << report._delete_set_size << std::endl + << "rate: (" << points_to_delete_from_beginning / report._time << " points/second overall, " + << points_to_delete_from_beginning / report._time / delete_params.num_threads << " per thread)" + << std::endl; + } + catch (std::system_error &e) + { + std::cout << "Exception caught in deletion thread: " << e.what() << std::endl; + } +} + +template +void build_incremental_index(const std::string &data_path, diskann::IndexWriteParameters ¶ms, size_t points_to_skip, + size_t max_points_to_insert, size_t beginning_index_size, float start_point_norm, + uint32_t num_start_pts, size_t points_per_checkpoint, size_t checkpoints_per_snapshot, + const std::string &save_path, size_t points_to_delete_from_beginning, + size_t start_deletes_after, bool concurrent, const std::string &label_file, + const std::string &universal_label) +{ + size_t dim, aligned_dim; + size_t num_points; + diskann::get_bin_metadata(data_path, num_points, dim); + aligned_dim = ROUND_UP(dim, 8); + bool has_labels = label_file != ""; + using TagT = uint32_t; + using LabelT = uint32_t; + + size_t current_point_offset = points_to_skip; + const size_t last_point_threshold = points_to_skip + max_points_to_insert; + + bool enable_tags = true; + using TagT = uint32_t; + auto index_search_params = diskann::IndexSearchParams(params.search_list_size, params.num_threads); + diskann::IndexConfig index_config = diskann::IndexConfigBuilder() + .with_metric(diskann::L2) + .with_dimension(dim) + .with_max_points(max_points_to_insert) + .is_dynamic_index(true) + .with_index_write_params(params) + .with_index_search_params(index_search_params) + .with_data_type(diskann_type_to_name()) + .with_tag_type(diskann_type_to_name()) + .with_label_type(diskann_type_to_name()) + .with_data_load_store_strategy(diskann::DataStoreStrategy::MEMORY) + .with_graph_load_store_strategy(diskann::GraphStoreStrategy::MEMORY) + .is_enable_tags(enable_tags) + .is_filtered(has_labels) + .with_num_frozen_pts(num_start_pts) + .is_concurrent_consolidate(concurrent) + .build(); + + diskann::IndexFactory index_factory = diskann::IndexFactory(index_config); + auto index = index_factory.create_instance(); + + if (universal_label != "") + { + LabelT u_label = 0; + index->set_universal_label(u_label); + } + + if (points_to_skip > num_points) + { + throw diskann::ANNException("Asked to skip more points than in data file", -1, __FUNCSIG__, __FILE__, __LINE__); + } + + if (max_points_to_insert == 0) + { + max_points_to_insert = num_points; + } + + if (points_to_skip + max_points_to_insert > num_points) + { + max_points_to_insert = num_points - points_to_skip; + std::cerr << "WARNING: Reducing max_points_to_insert to " << max_points_to_insert + << " points since the data file has only that many" << std::endl; + } + + if (beginning_index_size > max_points_to_insert) + { + beginning_index_size = max_points_to_insert; + std::cerr << "WARNING: Reducing beginning index size to " << beginning_index_size + << " points since the data file has only that many" << std::endl; + } + if (checkpoints_per_snapshot > 0 && beginning_index_size > points_per_checkpoint) + { + beginning_index_size = points_per_checkpoint; + std::cerr << "WARNING: Reducing beginning index size to " << beginning_index_size << std::endl; + } + + T *data = nullptr; + diskann::alloc_aligned( + (void **)&data, std::max(points_per_checkpoint, beginning_index_size) * aligned_dim * sizeof(T), 8 * sizeof(T)); + + std::vector tags(beginning_index_size); + std::iota(tags.begin(), tags.end(), 1 + static_cast(current_point_offset)); + + load_aligned_bin_part(data_path, data, current_point_offset, beginning_index_size); + std::cout << "load aligned bin succeeded" << std::endl; + diskann::Timer timer; + + if (beginning_index_size > 0) + { + index->build(data, beginning_index_size, tags); + } + else + { + index->set_start_points_at_random(static_cast(start_point_norm)); + } + + const double elapsedSeconds = timer.elapsed() / 1000000.0; + std::cout << "Initial non-incremental index build time for " << beginning_index_size << " points took " + << elapsedSeconds << " seconds (" << beginning_index_size / elapsedSeconds << " points/second)\n "; + + current_point_offset += beginning_index_size; + + if (points_to_delete_from_beginning > max_points_to_insert) + { + points_to_delete_from_beginning = static_cast(max_points_to_insert); + std::cerr << "WARNING: Reducing points to delete from beginning to " << points_to_delete_from_beginning + << " points since the data file has only that many" << std::endl; + } + + std::vector> location_to_labels; + if (concurrent) + { + // handle labels + const auto save_path_inc = get_save_filename(save_path + ".after-concurrent-delete-", points_to_skip, + points_to_delete_from_beginning, last_point_threshold); + std::string labels_file_to_use = save_path_inc + "_label_formatted.txt"; + std::string mem_labels_int_map_file = save_path_inc + "_labels_map.txt"; + if (has_labels) + { + convert_labels_string_to_int(label_file, labels_file_to_use, mem_labels_int_map_file, universal_label); + auto parse_result = diskann::parse_formatted_label_file(labels_file_to_use); + location_to_labels = std::get<0>(parse_result); + } + + int32_t sub_threads = (params.num_threads + 1) / 2; + bool delete_launched = false; + std::future delete_task; + + diskann::Timer timer; + + for (size_t start = current_point_offset; start < last_point_threshold; + start += points_per_checkpoint, current_point_offset += points_per_checkpoint) + { + const size_t end = std::min(start + points_per_checkpoint, last_point_threshold); + std::cout << std::endl << "Inserting from " << start << " to " << end << std::endl; + + auto insert_task = std::async(std::launch::async, [&]() { + load_aligned_bin_part(data_path, data, start, end - start); + insert_till_next_checkpoint(*index, start, end, sub_threads, data, aligned_dim, + location_to_labels); + }); + insert_task.wait(); + + if (!delete_launched && end >= start_deletes_after && + end >= points_to_skip + points_to_delete_from_beginning) + { + delete_launched = true; + diskann::IndexWriteParameters delete_params = + diskann::IndexWriteParametersBuilder(params).with_num_threads(sub_threads).build(); + + delete_task = std::async(std::launch::async, [&]() { + delete_from_beginning(*index, delete_params, points_to_skip, + points_to_delete_from_beginning); + }); + } + } + delete_task.wait(); + + std::cout << "Time Elapsed " << timer.elapsed() / 1000 << "ms\n"; + index->save(save_path_inc.c_str(), true); + } + else + { + const auto save_path_inc = get_save_filename(save_path + ".after-delete-", points_to_skip, + points_to_delete_from_beginning, last_point_threshold); + std::string labels_file_to_use = save_path_inc + "_label_formatted.txt"; + std::string mem_labels_int_map_file = save_path_inc + "_labels_map.txt"; + if (has_labels) + { + convert_labels_string_to_int(label_file, labels_file_to_use, mem_labels_int_map_file, universal_label); + auto parse_result = diskann::parse_formatted_label_file(labels_file_to_use); + location_to_labels = std::get<0>(parse_result); + } + + size_t last_snapshot_points_threshold = 0; + size_t num_checkpoints_till_snapshot = checkpoints_per_snapshot; + + for (size_t start = current_point_offset; start < last_point_threshold; + start += points_per_checkpoint, current_point_offset += points_per_checkpoint) + { + const size_t end = std::min(start + points_per_checkpoint, last_point_threshold); + std::cout << std::endl << "Inserting from " << start << " to " << end << std::endl; + + load_aligned_bin_part(data_path, data, start, end - start); + insert_till_next_checkpoint(*index, start, end, (int32_t)params.num_threads, data, + aligned_dim, location_to_labels); + + if (checkpoints_per_snapshot > 0 && --num_checkpoints_till_snapshot == 0) + { + diskann::Timer save_timer; + + const auto save_path_inc = + get_save_filename(save_path + ".inc-", points_to_skip, points_to_delete_from_beginning, end); + index->save(save_path_inc.c_str(), false); + const double elapsedSeconds = save_timer.elapsed() / 1000000.0; + const size_t points_saved = end - points_to_skip; + + std::cout << "Saved " << points_saved << " points in " << elapsedSeconds << " seconds (" + << points_saved / elapsedSeconds << " points/second)\n"; + + num_checkpoints_till_snapshot = checkpoints_per_snapshot; + last_snapshot_points_threshold = end; + } + + std::cout << "Number of points in the index post insertion " << end << std::endl; + } + + if (checkpoints_per_snapshot > 0 && last_snapshot_points_threshold != last_point_threshold) + { + const auto save_path_inc = get_save_filename(save_path + ".inc-", points_to_skip, + points_to_delete_from_beginning, last_point_threshold); + // index.save(save_path_inc.c_str(), false); + } + + if (points_to_delete_from_beginning > 0) + { + delete_from_beginning(*index, params, points_to_skip, points_to_delete_from_beginning); + } + + index->save(save_path_inc.c_str(), true); + } + + diskann::aligned_free(data); +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, data_path, index_path_prefix; + uint32_t num_threads, R, L, num_start_pts; + float alpha, start_point_norm; + size_t points_to_skip, max_points_to_insert, beginning_index_size, points_per_checkpoint, checkpoints_per_snapshot, + points_to_delete_from_beginning, start_deletes_after; + bool concurrent; + + // label options + std::string label_file, label_type, universal_label; + std::uint32_t Lf, unique_labels_supported; + + po::options_description desc{program_options_utils::make_program_description("test_insert_deletes_consolidate", + "Test insert deletes & consolidate")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("data_path", po::value(&data_path)->required(), + program_options_utils::INPUT_DATA_PATH); + required_configs.add_options()("points_to_skip", po::value(&points_to_skip)->required(), + "Skip these first set of points from file"); + required_configs.add_options()("beginning_index_size", po::value(&beginning_index_size)->required(), + "Batch build will be called on these set of points"); + required_configs.add_options()("points_per_checkpoint", po::value(&points_per_checkpoint)->required(), + "Insertions are done in batches of points_per_checkpoint"); + required_configs.add_options()("checkpoints_per_snapshot", + po::value(&checkpoints_per_snapshot)->required(), + "Save the index to disk every few checkpoints"); + required_configs.add_options()("points_to_delete_from_beginning", + po::value(&points_to_delete_from_beginning)->required(), ""); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("num_threads,T", + po::value(&num_threads)->default_value(omp_get_num_procs()), + program_options_utils::NUMBER_THREADS_DESCRIPTION); + optional_configs.add_options()("max_degree,R", po::value(&R)->default_value(64), + program_options_utils::MAX_BUILD_DEGREE); + optional_configs.add_options()("Lbuild,L", po::value(&L)->default_value(100), + program_options_utils::GRAPH_BUILD_COMPLEXITY); + optional_configs.add_options()("alpha", po::value(&alpha)->default_value(1.2f), + program_options_utils::GRAPH_BUILD_ALPHA); + optional_configs.add_options()("max_points_to_insert", + po::value(&max_points_to_insert)->default_value(0), + "These number of points from the file are inserted after " + "points_to_skip"); + optional_configs.add_options()("do_concurrent", po::value(&concurrent)->default_value(false), ""); + optional_configs.add_options()("start_deletes_after", + po::value(&start_deletes_after)->default_value(0), ""); + optional_configs.add_options()("start_point_norm", po::value(&start_point_norm)->default_value(0), + "Set the start point to a random point on a sphere of this radius"); + + // optional params for filters + optional_configs.add_options()("label_file", po::value(&label_file)->default_value(""), + "Input label file in txt format for Filtered Index search. " + "The file should contain comma separated filters for each node " + "with each line corresponding to a graph node"); + optional_configs.add_options()("universal_label", po::value(&universal_label)->default_value(""), + "Universal label, if using it, only in conjunction with labels_file"); + optional_configs.add_options()("FilteredLbuild,Lf", po::value(&Lf)->default_value(0), + "Build complexity for filtered points, higher value " + "results in better graphs"); + optional_configs.add_options()("label_type", po::value(&label_type)->default_value("uint"), + "Storage type of Labels , default value is uint which " + "will consume memory 4 bytes per filter"); + optional_configs.add_options()("unique_labels_supported", + po::value(&unique_labels_supported)->default_value(0), + "Number of unique labels supported by the dynamic index."); + + optional_configs.add_options()( + "num_start_points", + po::value(&num_start_pts)->default_value(diskann::defaults::NUM_FROZEN_POINTS_DYNAMIC), + "Set the number of random start (frozen) points to use when " + "inserting and searching"); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + if (beginning_index_size == 0) + if (start_point_norm == 0) + { + std::cout << "When beginning_index_size is 0, use a start " + "point with " + "appropriate norm" + << std::endl; + return -1; + } + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + bool has_labels = false; + if (!label_file.empty() || label_file != "") + { + has_labels = true; + } + + if (num_start_pts < unique_labels_supported) + { + num_start_pts = unique_labels_supported; + } + + try + { + diskann::IndexWriteParameters params = diskann::IndexWriteParametersBuilder(L, R) + .with_max_occlusion_size(500) + .with_alpha(alpha) + .with_num_threads(num_threads) + .with_filter_list_size(Lf) + .build(); + + if (data_type == std::string("int8")) + build_incremental_index( + data_path, params, points_to_skip, max_points_to_insert, beginning_index_size, start_point_norm, + num_start_pts, points_per_checkpoint, checkpoints_per_snapshot, index_path_prefix, + points_to_delete_from_beginning, start_deletes_after, concurrent, label_file, universal_label); + else if (data_type == std::string("uint8")) + build_incremental_index( + data_path, params, points_to_skip, max_points_to_insert, beginning_index_size, start_point_norm, + num_start_pts, points_per_checkpoint, checkpoints_per_snapshot, index_path_prefix, + points_to_delete_from_beginning, start_deletes_after, concurrent, label_file, universal_label); + else if (data_type == std::string("float")) + build_incremental_index(data_path, params, points_to_skip, max_points_to_insert, + beginning_index_size, start_point_norm, num_start_pts, points_per_checkpoint, + checkpoints_per_snapshot, index_path_prefix, points_to_delete_from_beginning, + start_deletes_after, concurrent, label_file, universal_label); + else + std::cout << "Unsupported type. Use float/int8/uint8" << std::endl; + } + catch (const std::exception &e) + { + std::cerr << "Caught exception: " << e.what() << std::endl; + exit(-1); + } + catch (...) + { + std::cerr << "Caught unknown exception" << std::endl; + exit(-1); + } + + return 0; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/test_streaming_scenario.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/test_streaming_scenario.cpp new file mode 100644 index 0000000..5a43a69 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/test_streaming_scenario.cpp @@ -0,0 +1,523 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "filter_utils.h" +#include "program_options_utils.hpp" + +#ifndef _WINDOWS +#include +#include +#include +#endif + +#include "memory_mapper.h" + +namespace po = boost::program_options; + +// load_aligned_bin modified to read pieces of the file, but using ifstream +// instead of cached_ifstream. +template +inline void load_aligned_bin_part(const std::string &bin_file, T *data, size_t offset_points, size_t points_to_read) +{ + std::ifstream reader; + reader.exceptions(std::ios::failbit | std::ios::badbit); + reader.open(bin_file, std::ios::binary | std::ios::ate); + size_t actual_file_size = reader.tellg(); + reader.seekg(0, std::ios::beg); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + size_t npts = (uint32_t)npts_i32; + size_t dim = (uint32_t)dim_i32; + + size_t expected_actual_file_size = npts * dim * sizeof(T) + 2 * sizeof(uint32_t); + if (actual_file_size != expected_actual_file_size) + { + std::stringstream stream; + stream << "Error. File size mismatch. Actual size is " << actual_file_size << " while expected size is " + << expected_actual_file_size << " npts = " << npts << " dim = " << dim << " size of = " << sizeof(T) + << std::endl; + std::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + if (offset_points + points_to_read > npts) + { + std::stringstream stream; + stream << "Error. Not enough points in file. Requested " << offset_points << " offset and " << points_to_read + << " points, but have only " << npts << " points" << std::endl; + std::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + reader.seekg(2 * sizeof(uint32_t) + offset_points * dim * sizeof(T)); + + const size_t rounded_dim = ROUND_UP(dim, 8); + + for (size_t i = 0; i < points_to_read; i++) + { + reader.read((char *)(data + i * rounded_dim), dim * sizeof(T)); + memset(data + i * rounded_dim + dim, 0, (rounded_dim - dim) * sizeof(T)); + } + reader.close(); +} + +std::string get_save_filename(const std::string &save_path, size_t active_window, size_t consolidate_interval, + size_t max_points_to_insert) +{ + std::string final_path = save_path; + final_path += "act" + std::to_string(active_window) + "-"; + final_path += "cons" + std::to_string(consolidate_interval) + "-"; + final_path += "max" + std::to_string(max_points_to_insert); + return final_path; +} + +template +void insert_next_batch(diskann::AbstractIndex &index, size_t start, size_t end, size_t insert_threads, T *data, + size_t aligned_dim, std::vector> &pts_to_labels) +{ + try + { + diskann::Timer insert_timer; + std::cout << std::endl << "Inserting from " << start << " to " << end << std::endl; + + size_t num_failed = 0; +#pragma omp parallel for num_threads((int32_t)insert_threads) schedule(dynamic) reduction(+ : num_failed) + for (int64_t j = start; j < (int64_t)end; j++) + { + int insert_result = -1; + if (pts_to_labels.size() > 0) + { + insert_result = index.insert_point(&data[(j - start) * aligned_dim], 1 + static_cast(j), + pts_to_labels[j - start]); + } + else + { + insert_result = index.insert_point(&data[(j - start) * aligned_dim], 1 + static_cast(j)); + } + + if (insert_result != 0) + { + std::cerr << "Insert failed " << j << std::endl; + num_failed++; + } + } + const double elapsedSeconds = insert_timer.elapsed() / 1000000.0; + std::cout << "Insertion time " << elapsedSeconds << " seconds (" << (end - start) / elapsedSeconds + << " points/second overall, " << (end - start) / elapsedSeconds / insert_threads << " per thread)" + << std::endl; + if (num_failed > 0) + std::cout << num_failed << " of " << end - start << "inserts failed" << std::endl; + } + catch (std::system_error &e) + { + std::cout << "Exiting after catching exception in insertion task: " << e.what() << std::endl; + exit(-1); + } +} + +template +void delete_and_consolidate(diskann::AbstractIndex &index, diskann::IndexWriteParameters &delete_params, size_t start, + size_t end) +{ + try + { + std::cout << std::endl << "Lazy deleting points " << start << " to " << end << "... "; + for (size_t i = start; i < end; ++i) + index.lazy_delete(static_cast(1 + i)); + std::cout << "lazy delete done." << std::endl; + + auto report = index.consolidate_deletes(delete_params); + while (report._status != diskann::consolidation_report::status_code::SUCCESS) + { + int wait_time = 5; + if (report._status == diskann::consolidation_report::status_code::LOCK_FAIL) + { + diskann::cerr << "Unable to acquire consolidate delete lock after " + << "deleting points " << start << " to " << end << ". Will retry in " << wait_time + << "seconds." << std::endl; + } + else if (report._status == diskann::consolidation_report::status_code::INCONSISTENT_COUNT_ERROR) + { + diskann::cerr << "Inconsistent counts in data structure. " + << "Will retry in " << wait_time << "seconds." << std::endl; + } + else + { + std::cerr << "Exiting after unknown error in consolidate delete" << std::endl; + exit(-1); + } + std::this_thread::sleep_for(std::chrono::seconds(wait_time)); + report = index.consolidate_deletes(delete_params); + } + auto points_processed = report._active_points + report._slots_released; + auto deletion_rate = points_processed / report._time; + std::cout << "#active points: " << report._active_points << std::endl + << "max points: " << report._max_points << std::endl + << "empty slots: " << report._empty_slots << std::endl + << "deletes processed: " << report._slots_released << std::endl + << "latest delete size: " << report._delete_set_size << std::endl + << "Deletion rate: " << deletion_rate << "/sec " + << "Deletion rate: " << deletion_rate / delete_params.num_threads << "/thread/sec " << std::endl; + } + catch (std::system_error &e) + { + std::cerr << "Exiting after catching exception in deletion task: " << e.what() << std::endl; + exit(-1); + } +} + +template +void build_incremental_index(const std::string &data_path, const uint32_t L, const uint32_t R, const float alpha, + const uint32_t insert_threads, const uint32_t consolidate_threads, + size_t max_points_to_insert, size_t active_window, size_t consolidate_interval, + const float start_point_norm, uint32_t num_start_pts, const std::string &save_path, + const std::string &label_file, const std::string &universal_label, const uint32_t Lf) +{ + const uint32_t C = 500; + const bool saturate_graph = false; + bool has_labels = label_file != ""; + + diskann::IndexWriteParameters params = diskann::IndexWriteParametersBuilder(L, R) + .with_max_occlusion_size(C) + .with_alpha(alpha) + .with_saturate_graph(saturate_graph) + .with_num_threads(insert_threads) + .with_filter_list_size(Lf) + .build(); + + auto index_search_params = diskann::IndexSearchParams(L, insert_threads); + diskann::IndexWriteParameters delete_params = diskann::IndexWriteParametersBuilder(L, R) + .with_max_occlusion_size(C) + .with_alpha(alpha) + .with_saturate_graph(saturate_graph) + .with_num_threads(consolidate_threads) + .with_filter_list_size(Lf) + .build(); + + size_t dim, aligned_dim; + size_t num_points; + + std::vector> pts_to_labels; + + const auto save_path_inc = + get_save_filename(save_path + ".after-streaming-", active_window, consolidate_interval, max_points_to_insert); + std::string labels_file_to_use = save_path_inc + "_label_formatted.txt"; + std::string mem_labels_int_map_file = save_path_inc + "_labels_map.txt"; + if (has_labels) + { + convert_labels_string_to_int(label_file, labels_file_to_use, mem_labels_int_map_file, universal_label); + auto parse_result = diskann::parse_formatted_label_file(labels_file_to_use); + pts_to_labels = std::get<0>(parse_result); + } + + diskann::get_bin_metadata(data_path, num_points, dim); + diskann::cout << "metadata: file " << data_path << " has " << num_points << " points in " << dim << " dims" + << std::endl; + aligned_dim = ROUND_UP(dim, 8); + auto index_config = diskann::IndexConfigBuilder() + .with_metric(diskann::L2) + .with_dimension(dim) + .with_max_points(active_window + 4 * consolidate_interval) + .is_dynamic_index(true) + .is_enable_tags(true) + .is_use_opq(false) + .is_filtered(has_labels) + .with_num_pq_chunks(0) + .is_pq_dist_build(false) + .with_num_frozen_pts(num_start_pts) + .with_tag_type(diskann_type_to_name()) + .with_label_type(diskann_type_to_name()) + .with_data_type(diskann_type_to_name()) + .with_index_write_params(params) + .with_index_search_params(index_search_params) + .with_data_load_store_strategy(diskann::DataStoreStrategy::MEMORY) + .with_graph_load_store_strategy(diskann::GraphStoreStrategy::MEMORY) + .build(); + + diskann::IndexFactory index_factory = diskann::IndexFactory(index_config); + auto index = index_factory.create_instance(); + + if (universal_label != "") + { + LabelT u_label = 0; + index->set_universal_label(u_label); + } + + if (max_points_to_insert == 0) + { + max_points_to_insert = num_points; + } + + if (num_points < max_points_to_insert) + throw diskann::ANNException(std::string("num_points(") + std::to_string(num_points) + + ") < max_points_to_insert(" + std::to_string(max_points_to_insert) + ")", + -1, __FUNCSIG__, __FILE__, __LINE__); + + if (max_points_to_insert < active_window + consolidate_interval) + throw diskann::ANNException("ERROR: max_points_to_insert < " + "active_window + consolidate_interval", + -1, __FUNCSIG__, __FILE__, __LINE__); + + if (consolidate_interval < max_points_to_insert / 1000) + throw diskann::ANNException("ERROR: consolidate_interval is too small", -1, __FUNCSIG__, __FILE__, __LINE__); + + index->set_start_points_at_random(static_cast(start_point_norm)); + + T *data = nullptr; + diskann::alloc_aligned((void **)&data, std::max(consolidate_interval, active_window) * aligned_dim * sizeof(T), + 8 * sizeof(T)); + + std::vector tags(max_points_to_insert); + std::iota(tags.begin(), tags.end(), static_cast(0)); + + diskann::Timer timer; + + std::vector> delete_tasks; + + auto insert_task = std::async(std::launch::async, [&]() { + load_aligned_bin_part(data_path, data, 0, active_window); + insert_next_batch(*index, (size_t)0, active_window, params.num_threads, data, aligned_dim, + pts_to_labels); + }); + insert_task.wait(); + + for (size_t start = active_window; start + consolidate_interval <= max_points_to_insert; + start += consolidate_interval) + { + auto end = std::min(start + consolidate_interval, max_points_to_insert); + auto insert_task = std::async(std::launch::async, [&]() { + load_aligned_bin_part(data_path, data, start, end - start); + insert_next_batch(*index, start, end, params.num_threads, data, aligned_dim, + pts_to_labels); + }); + insert_task.wait(); + + if (delete_tasks.size() > 0) + delete_tasks[delete_tasks.size() - 1].wait(); + if (start >= active_window + consolidate_interval) + { + auto start_del = start - active_window - consolidate_interval; + auto end_del = start - active_window; + + delete_tasks.emplace_back(std::async(std::launch::async, [&]() { + delete_and_consolidate(*index, delete_params, (size_t)start_del, (size_t)end_del); + })); + } + } + if (delete_tasks.size() > 0) + delete_tasks[delete_tasks.size() - 1].wait(); + + std::cout << "Time Elapsed " << timer.elapsed() / 1000 << "ms\n"; + + index->save(save_path_inc.c_str(), true); + + diskann::aligned_free(data); +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, data_path, index_path_prefix, label_file, universal_label, label_type; + uint32_t insert_threads, consolidate_threads, R, L, num_start_pts, Lf, unique_labels_supported; + float alpha, start_point_norm; + size_t max_points_to_insert, active_window, consolidate_interval; + + po::options_description desc{program_options_utils::make_program_description("test_streaming_scenario", + "Test insert deletes & consolidate")}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + + // Required parameters + po::options_description required_configs("Required"); + required_configs.add_options()("data_type", po::value(&data_type)->required(), + program_options_utils::DATA_TYPE_DESCRIPTION); + required_configs.add_options()("dist_fn", po::value(&dist_fn)->required(), + program_options_utils::DISTANCE_FUNCTION_DESCRIPTION); + required_configs.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + program_options_utils::INDEX_PATH_PREFIX_DESCRIPTION); + required_configs.add_options()("data_path", po::value(&data_path)->required(), + program_options_utils::INPUT_DATA_PATH); + required_configs.add_options()("active_window", po::value(&active_window)->required(), + "Program maintains an index over an active window of " + "this size that slides through the data"); + required_configs.add_options()("consolidate_interval", po::value(&consolidate_interval)->required(), + "The program simultaneously adds this number of points to the " + "right of " + "the window while deleting the same number from the left"); + required_configs.add_options()("start_point_norm", po::value(&start_point_norm)->required(), + "Set the start point to a random point on a sphere of this radius"); + + // Optional parameters + po::options_description optional_configs("Optional"); + optional_configs.add_options()("max_degree,R", po::value(&R)->default_value(64), + program_options_utils::MAX_BUILD_DEGREE); + optional_configs.add_options()("Lbuild,L", po::value(&L)->default_value(100), + program_options_utils::GRAPH_BUILD_COMPLEXITY); + optional_configs.add_options()("alpha", po::value(&alpha)->default_value(1.2f), + program_options_utils::GRAPH_BUILD_ALPHA); + optional_configs.add_options()("insert_threads", + po::value(&insert_threads)->default_value(omp_get_num_procs() / 2), + "Number of threads used for inserting into the index (defaults to " + "omp_get_num_procs()/2)"); + optional_configs.add_options()( + "consolidate_threads", po::value(&consolidate_threads)->default_value(omp_get_num_procs() / 2), + "Number of threads used for consolidating deletes to " + "the index (defaults to omp_get_num_procs()/2)"); + optional_configs.add_options()("max_points_to_insert", + po::value(&max_points_to_insert)->default_value(0), + "The number of points from the file that the program streams " + "over "); + optional_configs.add_options()( + "num_start_points", + po::value(&num_start_pts)->default_value(diskann::defaults::NUM_FROZEN_POINTS_DYNAMIC), + "Set the number of random start (frozen) points to use when " + "inserting and searching"); + + optional_configs.add_options()("label_file", po::value(&label_file)->default_value(""), + "Input label file in txt format for Filtered Index search. " + "The file should contain comma separated filters for each node " + "with each line corresponding to a graph node"); + optional_configs.add_options()("universal_label", po::value(&universal_label)->default_value(""), + "Universal label, if using it, only in conjunction with labels_file"); + optional_configs.add_options()("FilteredLbuild,Lf", po::value(&Lf)->default_value(0), + "Build complexity for filtered points, higher value " + "results in better graphs"); + optional_configs.add_options()("label_type", po::value(&label_type)->default_value("uint"), + "Storage type of Labels , default value is uint which " + "will consume memory 4 bytes per filter"); + optional_configs.add_options()("unique_labels_supported", + po::value(&unique_labels_supported)->default_value(0), + "Number of unique labels supported by the dynamic index."); + + // Merge required and optional parameters + desc.add(required_configs).add(optional_configs); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + // Validate arguments + if (start_point_norm == 0) + { + std::cout << "When beginning_index_size is 0, use a start point with " + "appropriate norm" + << std::endl; + return -1; + } + + if (label_type != std::string("ushort") && label_type != std::string("uint")) + { + std::cerr << "Invalid label type. Supported types are uint and ushort" << std::endl; + return -1; + } + + if (data_type != std::string("int8") && data_type != std::string("uint8") && data_type != std::string("float")) + { + std::cerr << "Invalid data type. Supported types are int8, uint8 and float" << std::endl; + return -1; + } + + // TODO: Are additional distance functions supported? + if (dist_fn != std::string("l2") && dist_fn != std::string("mips")) + { + std::cerr << "Invalid distance function. Supported functions are l2 and mips" << std::endl; + return -1; + } + + if (num_start_pts < unique_labels_supported) + { + num_start_pts = unique_labels_supported; + } + + try + { + if (data_type == std::string("uint8")) + { + if (label_type == std::string("ushort")) + { + build_incremental_index( + data_path, L, R, alpha, insert_threads, consolidate_threads, max_points_to_insert, active_window, + consolidate_interval, start_point_norm, num_start_pts, index_path_prefix, label_file, + universal_label, Lf); + } + else if (label_type == std::string("uint")) + { + build_incremental_index( + data_path, L, R, alpha, insert_threads, consolidate_threads, max_points_to_insert, active_window, + consolidate_interval, start_point_norm, num_start_pts, index_path_prefix, label_file, + universal_label, Lf); + } + } + else if (data_type == std::string("int8")) + { + if (label_type == std::string("ushort")) + { + build_incremental_index( + data_path, L, R, alpha, insert_threads, consolidate_threads, max_points_to_insert, active_window, + consolidate_interval, start_point_norm, num_start_pts, index_path_prefix, label_file, + universal_label, Lf); + } + else if (label_type == std::string("uint")) + { + build_incremental_index( + data_path, L, R, alpha, insert_threads, consolidate_threads, max_points_to_insert, active_window, + consolidate_interval, start_point_norm, num_start_pts, index_path_prefix, label_file, + universal_label, Lf); + } + } + else if (data_type == std::string("float")) + { + if (label_type == std::string("ushort")) + { + build_incremental_index( + data_path, L, R, alpha, insert_threads, consolidate_threads, max_points_to_insert, active_window, + consolidate_interval, start_point_norm, num_start_pts, index_path_prefix, label_file, + universal_label, Lf); + } + else if (label_type == std::string("uint")) + { + build_incremental_index( + data_path, L, R, alpha, insert_threads, consolidate_threads, max_points_to_insert, active_window, + consolidate_interval, start_point_norm, num_start_pts, index_path_prefix, label_file, + universal_label, Lf); + } + } + } + catch (const std::exception &e) + { + std::cerr << "Caught exception: " << e.what() << std::endl; + exit(-1); + } + catch (...) + { + std::cerr << "Caught unknown exception" << std::endl; + exit(-1); + } + + return 0; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/CMakeLists.txt b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/CMakeLists.txt new file mode 100644 index 0000000..3b8cf22 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/CMakeLists.txt @@ -0,0 +1,110 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_COMPILE_WARNING_AS_ERROR ON) + + +add_executable(fvecs_to_bin fvecs_to_bin.cpp) + +add_executable(fvecs_to_bvecs fvecs_to_bvecs.cpp) + +add_executable(rand_data_gen rand_data_gen.cpp) +target_link_libraries(rand_data_gen ${PROJECT_NAME} Boost::program_options) + +add_executable(float_bin_to_int8 float_bin_to_int8.cpp) + +add_executable(ivecs_to_bin ivecs_to_bin.cpp) + +add_executable(count_bfs_levels count_bfs_levels.cpp) +target_link_libraries(count_bfs_levels ${PROJECT_NAME} Boost::program_options) + +add_executable(tsv_to_bin tsv_to_bin.cpp) + +add_executable(bin_to_tsv bin_to_tsv.cpp) + +add_executable(int8_to_float int8_to_float.cpp) +target_link_libraries(int8_to_float ${PROJECT_NAME}) + +add_executable(int8_to_float_scale int8_to_float_scale.cpp) +target_link_libraries(int8_to_float_scale ${PROJECT_NAME}) + +add_executable(uint8_to_float uint8_to_float.cpp) +target_link_libraries(uint8_to_float ${PROJECT_NAME}) + +add_executable(uint32_to_uint8 uint32_to_uint8.cpp) +target_link_libraries(uint32_to_uint8 ${PROJECT_NAME}) + +add_executable(vector_analysis vector_analysis.cpp) +target_link_libraries(vector_analysis ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + +add_executable(gen_random_slice gen_random_slice.cpp) +target_link_libraries(gen_random_slice ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + +add_executable(simulate_aggregate_recall simulate_aggregate_recall.cpp) + +add_executable(calculate_recall calculate_recall.cpp) +target_link_libraries(calculate_recall ${PROJECT_NAME} ${DISKANN_ASYNC_LIB} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + +# Compute ground truth thing outside of DiskANN main source that depends on MKL. +add_executable(compute_groundtruth compute_groundtruth.cpp) +target_include_directories(compute_groundtruth PRIVATE ${DISKANN_MKL_INCLUDE_DIRECTORIES}) +target_link_libraries(compute_groundtruth ${PROJECT_NAME} ${DISKANN_MKL_LINK_LIBRARIES} ${DISKANN_ASYNC_LIB} Boost::program_options) + +add_executable(compute_groundtruth_for_filters compute_groundtruth_for_filters.cpp) +target_include_directories(compute_groundtruth_for_filters PRIVATE ${DISKANN_MKL_INCLUDE_DIRECTORIES}) +target_link_libraries(compute_groundtruth_for_filters ${PROJECT_NAME} ${DISKANN_MKL_LINK_LIBRARIES} ${DISKANN_ASYNC_LIB} Boost::program_options) + + +add_executable(generate_pq generate_pq.cpp) +target_link_libraries(generate_pq ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + + +add_executable(partition_data partition_data.cpp) +target_link_libraries(partition_data ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + +add_executable(partition_with_ram_budget partition_with_ram_budget.cpp) +target_link_libraries(partition_with_ram_budget ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + +add_executable(merge_shards merge_shards.cpp) +target_link_libraries(merge_shards ${PROJECT_NAME} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} ${DISKANN_ASYNC_LIB}) + +add_executable(create_disk_layout create_disk_layout.cpp) +target_link_libraries(create_disk_layout ${PROJECT_NAME} ${DISKANN_ASYNC_LIB} ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS}) + +add_executable(generate_synthetic_labels generate_synthetic_labels.cpp) +target_link_libraries(generate_synthetic_labels ${PROJECT_NAME} Boost::program_options) + +add_executable(stats_label_data stats_label_data.cpp) +target_link_libraries(stats_label_data ${PROJECT_NAME} Boost::program_options) + +if (NOT MSVC) + include(GNUInstallDirs) + install(TARGETS fvecs_to_bin + fvecs_to_bvecs + rand_data_gen + float_bin_to_int8 + ivecs_to_bin + count_bfs_levels + tsv_to_bin + bin_to_tsv + int8_to_float + int8_to_float_scale + uint8_to_float + uint32_to_uint8 + vector_analysis + gen_random_slice + simulate_aggregate_recall + calculate_recall + compute_groundtruth + compute_groundtruth_for_filters + generate_pq + partition_data + partition_with_ram_budget + merge_shards + create_disk_layout + generate_synthetic_labels + stats_label_data + RUNTIME + ) +endif() \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_fvecs.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_fvecs.cpp new file mode 100644 index 0000000..e9a6a8e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_fvecs.cpp @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "util.h" + +void block_convert(std::ifstream &writr, std::ofstream &readr, float *read_buf, float *write_buf, uint64_t npts, + uint64_t ndims) +{ + writr.write((char *)read_buf, npts * (ndims * sizeof(float) + sizeof(unsigned))); +#pragma omp parallel for + for (uint64_t i = 0; i < npts; i++) + { + memcpy(write_buf + i * ndims, (read_buf + i * (ndims + 1)) + 1, ndims * sizeof(float)); + } + readr.read((char *)write_buf, npts * ndims * sizeof(float)); +} + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::cout << argv[0] << " input_bin output_fvecs" << std::endl; + exit(-1); + } + std::ifstream readr(argv[1], std::ios::binary); + int npts_s32; + int ndims_s32; + readr.read((char *)&npts_s32, sizeof(int32_t)); + readr.read((char *)&ndims_s32, sizeof(int32_t)); + size_t npts = npts_s32; + size_t ndims = ndims_s32; + uint32_t ndims_u32 = (uint32_t)ndims_s32; + // uint64_t fsize = writr.tellg(); + readr.seekg(0, std::ios::beg); + + unsigned ndims_u32; + writr.write((char *)&ndims_u32, sizeof(unsigned)); + writr.seekg(0, std::ios::beg); + uint64_t ndims = (uint64_t)ndims_u32; + uint64_t npts = fsize / ((ndims + 1) * sizeof(float)); + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + uint64_t blk_size = 131072; + uint64_t nblks = ROUND_UP(npts, blk_size) / blk_size; + std::cout << "# blks: " << nblks << std::endl; + + std::ofstream writr(argv[2], std::ios::binary); + float *read_buf = new float[npts * (ndims + 1)]; + float *write_buf = new float[npts * ndims]; + for (uint64_t i = 0; i < nblks; i++) + { + uint64_t cblk_size = std::min(npts - i * blk_size, blk_size); + block_convert(writr, readr, read_buf, write_buf, cblk_size, ndims); + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + delete[] write_buf; + + writr.close(); + readr.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_tsv.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_tsv.cpp new file mode 100644 index 0000000..7851bef --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/bin_to_tsv.cpp @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +template +void block_convert(std::ofstream &writer, std::ifstream &reader, T *read_buf, size_t npts, size_t ndims) +{ + reader.read((char *)read_buf, npts * ndims * sizeof(float)); + + for (size_t i = 0; i < npts; i++) + { + for (size_t d = 0; d < ndims; d++) + { + writer << read_buf[d + i * ndims]; + if (d < ndims - 1) + writer << "\t"; + else + writer << "\n"; + } + } +} + +int main(int argc, char **argv) +{ + if (argc != 4) + { + std::cout << argv[0] << " input_bin output_tsv" << std::endl; + exit(-1); + } + std::string type_string(argv[1]); + if ((type_string != std::string("float")) && (type_string != std::string("int8")) && + (type_string != std::string("uin8"))) + { + std::cerr << "Error: type not supported. Use float/int8/uint8" << std::endl; + } + + std::ifstream reader(argv[2], std::ios::binary); + uint32_t npts_u32; + uint32_t ndims_u32; + reader.read((char *)&npts_u32, sizeof(uint32_t)); + reader.read((char *)&ndims_u32, sizeof(uint32_t)); + size_t npts = npts_u32; + size_t ndims = ndims_u32; + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + + std::ofstream writer(argv[3]); + char *read_buf = new char[blk_size * ndims * 4]; + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + if (type_string == std::string("float")) + block_convert(writer, reader, (float *)read_buf, cblk_size, ndims); + else if (type_string == std::string("int8")) + block_convert(writer, reader, (int8_t *)read_buf, cblk_size, ndims); + else if (type_string == std::string("uint8")) + block_convert(writer, reader, (uint8_t *)read_buf, cblk_size, ndims); + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + + writer.close(); + reader.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/calculate_recall.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/calculate_recall.cpp new file mode 100644 index 0000000..dc76252 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/calculate_recall.cpp @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "disk_utils.h" + +int main(int argc, char **argv) +{ + if (argc != 4) + { + std::cout << argv[0] << " " << std::endl; + return -1; + } + uint32_t *gold_std = NULL; + float *gs_dist = nullptr; + uint32_t *our_results = NULL; + float *or_dist = nullptr; + size_t points_num, points_num_gs, points_num_or; + size_t dim_gs; + size_t dim_or; + diskann::load_truthset(argv[1], gold_std, gs_dist, points_num_gs, dim_gs); + diskann::load_truthset(argv[2], our_results, or_dist, points_num_or, dim_or); + + if (points_num_gs != points_num_or) + { + std::cout << "Error. Number of queries mismatch in ground truth and " + "our results" + << std::endl; + return -1; + } + points_num = points_num_gs; + + uint32_t recall_at = std::atoi(argv[3]); + + if ((dim_or < recall_at) || (recall_at > dim_gs)) + { + std::cout << "ground truth has size " << dim_gs << "; our set has " << dim_or << " points. Asking for recall " + << recall_at << std::endl; + return -1; + } + std::cout << "Calculating recall@" << recall_at << std::endl; + double recall_val = diskann::calculate_recall((uint32_t)points_num, gold_std, gs_dist, (uint32_t)dim_gs, + our_results, (uint32_t)dim_or, (uint32_t)recall_at); + + // double avg_recall = (recall*1.0)/(points_num*1.0); + std::cout << "Avg. recall@" << recall_at << " is " << recall_val << "\n"; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth.cpp new file mode 100644 index 0000000..da32fd7 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth.cpp @@ -0,0 +1,574 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _WINDOWS +#include +#else +#include +#endif +#include "filter_utils.h" +#include "utils.h" + +// WORKS FOR UPTO 2 BILLION POINTS (as we use INT INSTEAD OF UNSIGNED) + +#define PARTSIZE 10000000 +#define ALIGNMENT 512 + +// custom types (for readability) +typedef tsl::robin_set label_set; +typedef std::string path; + +namespace po = boost::program_options; + +template T div_round_up(const T numerator, const T denominator) +{ + return (numerator % denominator == 0) ? (numerator / denominator) : 1 + (numerator / denominator); +} + +using pairIF = std::pair; +struct cmpmaxstruct +{ + bool operator()(const pairIF &l, const pairIF &r) + { + return l.second < r.second; + }; +}; + +using maxPQIFCS = std::priority_queue, cmpmaxstruct>; + +template T *aligned_malloc(const size_t n, const size_t alignment) +{ +#ifdef _WINDOWS + return (T *)_aligned_malloc(sizeof(T) * n, alignment); +#else + return static_cast(aligned_alloc(alignment, sizeof(T) * n)); +#endif +} + +inline bool custom_dist(const std::pair &a, const std::pair &b) +{ + return a.second < b.second; +} + +void compute_l2sq(float *const points_l2sq, const float *const matrix, const int64_t num_points, const uint64_t dim) +{ + assert(points_l2sq != NULL); +#pragma omp parallel for schedule(static, 65536) + for (int64_t d = 0; d < num_points; ++d) + points_l2sq[d] = cblas_sdot((int64_t)dim, matrix + (ptrdiff_t)d * (ptrdiff_t)dim, 1, + matrix + (ptrdiff_t)d * (ptrdiff_t)dim, 1); +} + +void distsq_to_points(const size_t dim, + float *dist_matrix, // Col Major, cols are queries, rows are points + size_t npoints, const float *const points, + const float *const points_l2sq, // points in Col major + size_t nqueries, const float *const queries, + const float *const queries_l2sq, // queries in Col major + float *ones_vec = NULL) // Scratchspace of num_data size and init to 1.0 +{ + bool ones_vec_alloc = false; + if (ones_vec == NULL) + { + ones_vec = new float[nqueries > npoints ? nqueries : npoints]; + std::fill_n(ones_vec, nqueries > npoints ? nqueries : npoints, (float)1.0); + ones_vec_alloc = true; + } + cblas_sgemm(CblasColMajor, CblasTrans, CblasNoTrans, npoints, nqueries, dim, (float)-2.0, points, dim, queries, dim, + (float)0.0, dist_matrix, npoints); + cblas_sgemm(CblasColMajor, CblasNoTrans, CblasTrans, npoints, nqueries, 1, (float)1.0, points_l2sq, npoints, + ones_vec, nqueries, (float)1.0, dist_matrix, npoints); + cblas_sgemm(CblasColMajor, CblasNoTrans, CblasTrans, npoints, nqueries, 1, (float)1.0, ones_vec, npoints, + queries_l2sq, nqueries, (float)1.0, dist_matrix, npoints); + if (ones_vec_alloc) + delete[] ones_vec; +} + +void inner_prod_to_points(const size_t dim, + float *dist_matrix, // Col Major, cols are queries, rows are points + size_t npoints, const float *const points, size_t nqueries, const float *const queries, + float *ones_vec = NULL) // Scratchspace of num_data size and init to 1.0 +{ + bool ones_vec_alloc = false; + if (ones_vec == NULL) + { + ones_vec = new float[nqueries > npoints ? nqueries : npoints]; + std::fill_n(ones_vec, nqueries > npoints ? nqueries : npoints, (float)1.0); + ones_vec_alloc = true; + } + cblas_sgemm(CblasColMajor, CblasTrans, CblasNoTrans, npoints, nqueries, dim, (float)-1.0, points, dim, queries, dim, + (float)0.0, dist_matrix, npoints); + + if (ones_vec_alloc) + delete[] ones_vec; +} + +void exact_knn(const size_t dim, const size_t k, + size_t *const closest_points, // k * num_queries preallocated, col + // major, queries columns + float *const dist_closest_points, // k * num_queries + // preallocated, Dist to + // corresponding closes_points + size_t npoints, + float *points_in, // points in Col major + size_t nqueries, float *queries_in, + diskann::Metric metric = diskann::Metric::L2) // queries in Col major +{ + float *points_l2sq = new float[npoints]; + float *queries_l2sq = new float[nqueries]; + compute_l2sq(points_l2sq, points_in, npoints, dim); + compute_l2sq(queries_l2sq, queries_in, nqueries, dim); + + float *points = points_in; + float *queries = queries_in; + + if (metric == diskann::Metric::COSINE) + { // we convert cosine distance as + // normalized L2 distnace + points = new float[npoints * dim]; + queries = new float[nqueries * dim]; +#pragma omp parallel for schedule(static, 4096) + for (int64_t i = 0; i < (int64_t)npoints; i++) + { + float norm = std::sqrt(points_l2sq[i]); + if (norm == 0) + { + norm = std::numeric_limits::epsilon(); + } + for (uint32_t j = 0; j < dim; j++) + { + points[i * dim + j] = points_in[i * dim + j] / norm; + } + } + +#pragma omp parallel for schedule(static, 4096) + for (int64_t i = 0; i < (int64_t)nqueries; i++) + { + float norm = std::sqrt(queries_l2sq[i]); + if (norm == 0) + { + norm = std::numeric_limits::epsilon(); + } + for (uint32_t j = 0; j < dim; j++) + { + queries[i * dim + j] = queries_in[i * dim + j] / norm; + } + } + // recalculate norms after normalizing, they should all be one. + compute_l2sq(points_l2sq, points, npoints, dim); + compute_l2sq(queries_l2sq, queries, nqueries, dim); + } + + std::cout << "Going to compute " << k << " NNs for " << nqueries << " queries over " << npoints << " points in " + << dim << " dimensions using"; + if (metric == diskann::Metric::INNER_PRODUCT) + std::cout << " MIPS "; + else if (metric == diskann::Metric::COSINE) + std::cout << " Cosine "; + else + std::cout << " L2 "; + std::cout << "distance fn. " << std::endl; + + size_t q_batch_size = (1 << 9); + float *dist_matrix = new float[(size_t)q_batch_size * (size_t)npoints]; + + for (size_t b = 0; b < div_round_up(nqueries, q_batch_size); ++b) + { + int64_t q_b = b * q_batch_size; + int64_t q_e = ((b + 1) * q_batch_size > nqueries) ? nqueries : (b + 1) * q_batch_size; + + if (metric == diskann::Metric::L2 || metric == diskann::Metric::COSINE) + { + distsq_to_points(dim, dist_matrix, npoints, points, points_l2sq, q_e - q_b, + queries + (ptrdiff_t)q_b * (ptrdiff_t)dim, queries_l2sq + q_b); + } + else + { + inner_prod_to_points(dim, dist_matrix, npoints, points, q_e - q_b, + queries + (ptrdiff_t)q_b * (ptrdiff_t)dim); + } + std::cout << "Computed distances for queries: [" << q_b << "," << q_e << ")" << std::endl; + +#pragma omp parallel for schedule(dynamic, 16) + for (long long q = q_b; q < q_e; q++) + { + maxPQIFCS point_dist; + for (size_t p = 0; p < k; p++) + point_dist.emplace(p, dist_matrix[(ptrdiff_t)p + (ptrdiff_t)(q - q_b) * (ptrdiff_t)npoints]); + for (size_t p = k; p < npoints; p++) + { + if (point_dist.top().second > dist_matrix[(ptrdiff_t)p + (ptrdiff_t)(q - q_b) * (ptrdiff_t)npoints]) + point_dist.emplace(p, dist_matrix[(ptrdiff_t)p + (ptrdiff_t)(q - q_b) * (ptrdiff_t)npoints]); + if (point_dist.size() > k) + point_dist.pop(); + } + for (ptrdiff_t l = 0; l < (ptrdiff_t)k; ++l) + { + closest_points[(ptrdiff_t)(k - 1 - l) + (ptrdiff_t)q * (ptrdiff_t)k] = point_dist.top().first; + dist_closest_points[(ptrdiff_t)(k - 1 - l) + (ptrdiff_t)q * (ptrdiff_t)k] = point_dist.top().second; + point_dist.pop(); + } + assert(std::is_sorted(dist_closest_points + (ptrdiff_t)q * (ptrdiff_t)k, + dist_closest_points + (ptrdiff_t)(q + 1) * (ptrdiff_t)k)); + } + std::cout << "Computed exact k-NN for queries: [" << q_b << "," << q_e << ")" << std::endl; + } + + delete[] dist_matrix; + + delete[] points_l2sq; + delete[] queries_l2sq; + + if (metric == diskann::Metric::COSINE) + { + delete[] points; + delete[] queries; + } +} + +template inline int get_num_parts(const char *filename) +{ + std::ifstream reader; + reader.exceptions(std::ios::failbit | std::ios::badbit); + reader.open(filename, std::ios::binary); + std::cout << "Reading bin file " << filename << " ...\n"; + int npts_i32, ndims_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&ndims_i32, sizeof(int)); + std::cout << "#pts = " << npts_i32 << ", #dims = " << ndims_i32 << std::endl; + reader.close(); + uint32_t num_parts = + (npts_i32 % PARTSIZE) == 0 ? npts_i32 / PARTSIZE : (uint32_t)std::floor(npts_i32 / PARTSIZE) + 1; + std::cout << "Number of parts: " << num_parts << std::endl; + return num_parts; +} + +template +inline void load_bin_as_float(const char *filename, float *&data, size_t &npts, size_t &ndims, int part_num) +{ + std::ifstream reader; + reader.exceptions(std::ios::failbit | std::ios::badbit); + reader.open(filename, std::ios::binary); + std::cout << "Reading bin file " << filename << " ...\n"; + int npts_i32, ndims_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&ndims_i32, sizeof(int)); + uint64_t start_id = part_num * PARTSIZE; + uint64_t end_id = (std::min)(start_id + PARTSIZE, (uint64_t)npts_i32); + npts = end_id - start_id; + ndims = (uint64_t)ndims_i32; + std::cout << "#pts in part = " << npts << ", #dims = " << ndims << ", size = " << npts * ndims * sizeof(T) << "B" + << std::endl; + + reader.seekg(start_id * ndims * sizeof(T) + 2 * sizeof(uint32_t), std::ios::beg); + T *data_T = new T[npts * ndims]; + reader.read((char *)data_T, sizeof(T) * npts * ndims); + std::cout << "Finished reading part of the bin file." << std::endl; + reader.close(); + data = aligned_malloc(npts * ndims, ALIGNMENT); +#pragma omp parallel for schedule(dynamic, 32768) + for (int64_t i = 0; i < (int64_t)npts; i++) + { + for (int64_t j = 0; j < (int64_t)ndims; j++) + { + float cur_val_float = (float)data_T[i * ndims + j]; + std::memcpy((char *)(data + i * ndims + j), (char *)&cur_val_float, sizeof(float)); + } + } + delete[] data_T; + std::cout << "Finished converting part data to float." << std::endl; +} + +template inline void save_bin(const std::string filename, T *data, size_t npts, size_t ndims) +{ + std::ofstream writer; + writer.exceptions(std::ios::failbit | std::ios::badbit); + writer.open(filename, std::ios::binary | std::ios::out); + std::cout << "Writing bin: " << filename << "\n"; + int npts_i32 = (int)npts, ndims_i32 = (int)ndims; + writer.write((char *)&npts_i32, sizeof(int)); + writer.write((char *)&ndims_i32, sizeof(int)); + std::cout << "bin: #pts = " << npts << ", #dims = " << ndims + << ", size = " << npts * ndims * sizeof(T) + 2 * sizeof(int) << "B" << std::endl; + + writer.write((char *)data, npts * ndims * sizeof(T)); + writer.close(); + std::cout << "Finished writing bin" << std::endl; +} + +inline void save_groundtruth_as_one_file(const std::string filename, int32_t *data, float *distances, size_t npts, + size_t ndims) +{ + std::ofstream writer(filename, std::ios::binary | std::ios::out); + int npts_i32 = (int)npts, ndims_i32 = (int)ndims; + writer.write((char *)&npts_i32, sizeof(int)); + writer.write((char *)&ndims_i32, sizeof(int)); + std::cout << "Saving truthset in one file (npts, dim, npts*dim id-matrix, " + "npts*dim dist-matrix) with npts = " + << npts << ", dim = " << ndims << ", size = " << 2 * npts * ndims * sizeof(uint32_t) + 2 * sizeof(int) + << "B" << std::endl; + + writer.write((char *)data, npts * ndims * sizeof(uint32_t)); + writer.write((char *)distances, npts * ndims * sizeof(float)); + writer.close(); + std::cout << "Finished writing truthset" << std::endl; +} + +template +std::vector>> processUnfilteredParts(const std::string &base_file, + size_t &nqueries, size_t &npoints, + size_t &dim, size_t &k, float *query_data, + const diskann::Metric &metric, + std::vector &location_to_tag) +{ + float *base_data = nullptr; + int num_parts = get_num_parts(base_file.c_str()); + std::vector>> res(nqueries); + for (int p = 0; p < num_parts; p++) + { + size_t start_id = p * PARTSIZE; + load_bin_as_float(base_file.c_str(), base_data, npoints, dim, p); + + size_t *closest_points_part = new size_t[nqueries * k]; + float *dist_closest_points_part = new float[nqueries * k]; + + auto part_k = k < npoints ? k : npoints; + exact_knn(dim, part_k, closest_points_part, dist_closest_points_part, npoints, base_data, nqueries, query_data, + metric); + + for (size_t i = 0; i < nqueries; i++) + { + for (size_t j = 0; j < part_k; j++) + { + if (!location_to_tag.empty()) + if (location_to_tag[closest_points_part[i * k + j] + start_id] == 0) + continue; + + res[i].push_back(std::make_pair((uint32_t)(closest_points_part[i * part_k + j] + start_id), + dist_closest_points_part[i * part_k + j])); + } + } + + delete[] closest_points_part; + delete[] dist_closest_points_part; + + diskann::aligned_free(base_data); + } + return res; +}; + +template +int aux_main(const std::string &base_file, const std::string &query_file, const std::string >_file, size_t k, + const diskann::Metric &metric, const std::string &tags_file = std::string("")) +{ + size_t npoints, nqueries, dim; + + float *query_data; + + load_bin_as_float(query_file.c_str(), query_data, nqueries, dim, 0); + if (nqueries > PARTSIZE) + std::cerr << "WARNING: #Queries provided (" << nqueries << ") is greater than " << PARTSIZE + << ". Computing GT only for the first " << PARTSIZE << " queries." << std::endl; + + // load tags + const bool tags_enabled = tags_file.empty() ? false : true; + std::vector location_to_tag = diskann::loadTags(tags_file, base_file); + + int *closest_points = new int[nqueries * k]; + float *dist_closest_points = new float[nqueries * k]; + + std::vector>> results = + processUnfilteredParts(base_file, nqueries, npoints, dim, k, query_data, metric, location_to_tag); + + for (size_t i = 0; i < nqueries; i++) + { + std::vector> &cur_res = results[i]; + std::sort(cur_res.begin(), cur_res.end(), custom_dist); + size_t j = 0; + for (auto iter : cur_res) + { + if (j == k) + break; + if (tags_enabled) + { + std::uint32_t index_with_tag = location_to_tag[iter.first]; + closest_points[i * k + j] = (int32_t)index_with_tag; + } + else + { + closest_points[i * k + j] = (int32_t)iter.first; + } + + if (metric == diskann::Metric::INNER_PRODUCT) + dist_closest_points[i * k + j] = -iter.second; + else + dist_closest_points[i * k + j] = iter.second; + + ++j; + } + if (j < k) + std::cout << "WARNING: found less than k GT entries for query " << i << std::endl; + } + + save_groundtruth_as_one_file(gt_file, closest_points, dist_closest_points, nqueries, k); + delete[] closest_points; + delete[] dist_closest_points; + diskann::aligned_free(query_data); + + return 0; +} + +void load_truthset(const std::string &bin_file, uint32_t *&ids, float *&dists, size_t &npts, size_t &dim) +{ + size_t read_blk_size = 64 * 1024 * 1024; + cached_ifstream reader(bin_file, read_blk_size); + diskann::cout << "Reading truthset file " << bin_file.c_str() << " ..." << std::endl; + size_t actual_file_size = reader.get_file_size(); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (uint32_t)npts_i32; + dim = (uint32_t)dim_i32; + + diskann::cout << "Metadata: #pts = " << npts << ", #dims = " << dim << "... " << std::endl; + + int truthset_type = -1; // 1 means truthset has ids and distances, 2 means + // only ids, -1 is error + size_t expected_file_size_with_dists = 2 * npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_with_dists) + truthset_type = 1; + + size_t expected_file_size_just_ids = npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_just_ids) + truthset_type = 2; + + if (truthset_type == -1) + { + std::stringstream stream; + stream << "Error. File size mismatch. File should have bin format, with " + "npts followed by ngt followed by npts*ngt ids and optionally " + "followed by npts*ngt distance values; actual size: " + << actual_file_size << ", expected: " << expected_file_size_with_dists << " or " + << expected_file_size_just_ids; + diskann::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + ids = new uint32_t[npts * dim]; + reader.read((char *)ids, npts * dim * sizeof(uint32_t)); + + if (truthset_type == 1) + { + dists = new float[npts * dim]; + reader.read((char *)dists, npts * dim * sizeof(float)); + } +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, base_file, query_file, gt_file, tags_file; + uint64_t K; + + try + { + po::options_description desc{"Arguments"}; + + desc.add_options()("help,h", "Print information on arguments"); + + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("dist_fn", po::value(&dist_fn)->required(), + "distance function "); + desc.add_options()("base_file", po::value(&base_file)->required(), + "File containing the base vectors in binary format"); + desc.add_options()("query_file", po::value(&query_file)->required(), + "File containing the query vectors in binary format"); + desc.add_options()("gt_file", po::value(>_file)->required(), + "File name for the writing ground truth in binary " + "format, please don' append .bin at end if " + "no filter_label or filter_label_file is provided it " + "will save the file with '.bin' at end." + "else it will save the file as filename_label.bin"); + desc.add_options()("K", po::value(&K)->required(), + "Number of ground truth nearest neighbors to compute"); + desc.add_options()("tags_file", po::value(&tags_file)->default_value(std::string()), + "File containing the tags in binary format"); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + if (data_type != std::string("float") && data_type != std::string("int8") && data_type != std::string("uint8")) + { + std::cout << "Unsupported type. float, int8 and uint8 types are supported." << std::endl; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("l2")) + { + metric = diskann::Metric::L2; + } + else if (dist_fn == std::string("mips")) + { + metric = diskann::Metric::INNER_PRODUCT; + } + else if (dist_fn == std::string("cosine")) + { + metric = diskann::Metric::COSINE; + } + else + { + std::cerr << "Unsupported distance function. Use l2/mips/cosine." << std::endl; + return -1; + } + + try + { + if (data_type == std::string("float")) + aux_main(base_file, query_file, gt_file, K, metric, tags_file); + if (data_type == std::string("int8")) + aux_main(base_file, query_file, gt_file, K, metric, tags_file); + if (data_type == std::string("uint8")) + aux_main(base_file, query_file, gt_file, K, metric, tags_file); + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Compute GT failed." << std::endl; + return -1; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth_for_filters.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth_for_filters.cpp new file mode 100644 index 0000000..52e5864 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/compute_groundtruth_for_filters.cpp @@ -0,0 +1,919 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _WINDOWS +#include +#else +#include +#endif + +#include "filter_utils.h" +#include "utils.h" + +// WORKS FOR UPTO 2 BILLION POINTS (as we use INT INSTEAD OF UNSIGNED) + +#define PARTSIZE 10000000 +#define ALIGNMENT 512 + +// custom types (for readability) +typedef tsl::robin_set label_set; +typedef std::string path; + +namespace po = boost::program_options; + +template T div_round_up(const T numerator, const T denominator) +{ + return (numerator % denominator == 0) ? (numerator / denominator) : 1 + (numerator / denominator); +} + +using pairIF = std::pair; +struct cmpmaxstruct +{ + bool operator()(const pairIF &l, const pairIF &r) + { + return l.second < r.second; + }; +}; + +using maxPQIFCS = std::priority_queue, cmpmaxstruct>; + +template T *aligned_malloc(const size_t n, const size_t alignment) +{ +#ifdef _WINDOWS + return (T *)_aligned_malloc(sizeof(T) * n, alignment); +#else + return static_cast(aligned_alloc(alignment, sizeof(T) * n)); +#endif +} + +inline bool custom_dist(const std::pair &a, const std::pair &b) +{ + return a.second < b.second; +} + +void compute_l2sq(float *const points_l2sq, const float *const matrix, const int64_t num_points, const uint64_t dim) +{ + assert(points_l2sq != NULL); +#pragma omp parallel for schedule(static, 65536) + for (int64_t d = 0; d < num_points; ++d) + points_l2sq[d] = cblas_sdot((int64_t)dim, matrix + (ptrdiff_t)d * (ptrdiff_t)dim, 1, + matrix + (ptrdiff_t)d * (ptrdiff_t)dim, 1); +} + +void distsq_to_points(const size_t dim, + float *dist_matrix, // Col Major, cols are queries, rows are points + size_t npoints, const float *const points, + const float *const points_l2sq, // points in Col major + size_t nqueries, const float *const queries, + const float *const queries_l2sq, // queries in Col major + float *ones_vec = NULL) // Scratchspace of num_data size and init to 1.0 +{ + bool ones_vec_alloc = false; + if (ones_vec == NULL) + { + ones_vec = new float[nqueries > npoints ? nqueries : npoints]; + std::fill_n(ones_vec, nqueries > npoints ? nqueries : npoints, (float)1.0); + ones_vec_alloc = true; + } + cblas_sgemm(CblasColMajor, CblasTrans, CblasNoTrans, npoints, nqueries, dim, (float)-2.0, points, dim, queries, dim, + (float)0.0, dist_matrix, npoints); + cblas_sgemm(CblasColMajor, CblasNoTrans, CblasTrans, npoints, nqueries, 1, (float)1.0, points_l2sq, npoints, + ones_vec, nqueries, (float)1.0, dist_matrix, npoints); + cblas_sgemm(CblasColMajor, CblasNoTrans, CblasTrans, npoints, nqueries, 1, (float)1.0, ones_vec, npoints, + queries_l2sq, nqueries, (float)1.0, dist_matrix, npoints); + if (ones_vec_alloc) + delete[] ones_vec; +} + +void inner_prod_to_points(const size_t dim, + float *dist_matrix, // Col Major, cols are queries, rows are points + size_t npoints, const float *const points, size_t nqueries, const float *const queries, + float *ones_vec = NULL) // Scratchspace of num_data size and init to 1.0 +{ + bool ones_vec_alloc = false; + if (ones_vec == NULL) + { + ones_vec = new float[nqueries > npoints ? nqueries : npoints]; + std::fill_n(ones_vec, nqueries > npoints ? nqueries : npoints, (float)1.0); + ones_vec_alloc = true; + } + cblas_sgemm(CblasColMajor, CblasTrans, CblasNoTrans, npoints, nqueries, dim, (float)-1.0, points, dim, queries, dim, + (float)0.0, dist_matrix, npoints); + + if (ones_vec_alloc) + delete[] ones_vec; +} + +void exact_knn(const size_t dim, const size_t k, + size_t *const closest_points, // k * num_queries preallocated, col + // major, queries columns + float *const dist_closest_points, // k * num_queries + // preallocated, Dist to + // corresponding closes_points + size_t npoints, + float *points_in, // points in Col major + size_t nqueries, float *queries_in, + diskann::Metric metric = diskann::Metric::L2) // queries in Col major +{ + float *points_l2sq = new float[npoints]; + float *queries_l2sq = new float[nqueries]; + compute_l2sq(points_l2sq, points_in, npoints, dim); + compute_l2sq(queries_l2sq, queries_in, nqueries, dim); + + float *points = points_in; + float *queries = queries_in; + + if (metric == diskann::Metric::COSINE) + { // we convert cosine distance as + // normalized L2 distnace + points = new float[npoints * dim]; + queries = new float[nqueries * dim]; +#pragma omp parallel for schedule(static, 4096) + for (int64_t i = 0; i < (int64_t)npoints; i++) + { + float norm = std::sqrt(points_l2sq[i]); + if (norm == 0) + { + norm = std::numeric_limits::epsilon(); + } + for (uint32_t j = 0; j < dim; j++) + { + points[i * dim + j] = points_in[i * dim + j] / norm; + } + } + +#pragma omp parallel for schedule(static, 4096) + for (int64_t i = 0; i < (int64_t)nqueries; i++) + { + float norm = std::sqrt(queries_l2sq[i]); + if (norm == 0) + { + norm = std::numeric_limits::epsilon(); + } + for (uint32_t j = 0; j < dim; j++) + { + queries[i * dim + j] = queries_in[i * dim + j] / norm; + } + } + // recalculate norms after normalizing, they should all be one. + compute_l2sq(points_l2sq, points, npoints, dim); + compute_l2sq(queries_l2sq, queries, nqueries, dim); + } + + std::cout << "Going to compute " << k << " NNs for " << nqueries << " queries over " << npoints << " points in " + << dim << " dimensions using"; + if (metric == diskann::Metric::INNER_PRODUCT) + std::cout << " MIPS "; + else if (metric == diskann::Metric::COSINE) + std::cout << " Cosine "; + else + std::cout << " L2 "; + std::cout << "distance fn. " << std::endl; + + size_t q_batch_size = (1 << 9); + float *dist_matrix = new float[(size_t)q_batch_size * (size_t)npoints]; + + for (uint64_t b = 0; b < div_round_up(nqueries, q_batch_size); ++b) + { + int64_t q_b = b * q_batch_size; + int64_t q_e = ((b + 1) * q_batch_size > nqueries) ? nqueries : (b + 1) * q_batch_size; + + if (metric == diskann::Metric::L2 || metric == diskann::Metric::COSINE) + { + distsq_to_points(dim, dist_matrix, npoints, points, points_l2sq, q_e - q_b, + queries + (ptrdiff_t)q_b * (ptrdiff_t)dim, queries_l2sq + q_b); + } + else + { + inner_prod_to_points(dim, dist_matrix, npoints, points, q_e - q_b, + queries + (ptrdiff_t)q_b * (ptrdiff_t)dim); + } + std::cout << "Computed distances for queries: [" << q_b << "," << q_e << ")" << std::endl; + +#pragma omp parallel for schedule(dynamic, 16) + for (long long q = q_b; q < q_e; q++) + { + maxPQIFCS point_dist; + for (size_t p = 0; p < k; p++) + point_dist.emplace(p, dist_matrix[(ptrdiff_t)p + (ptrdiff_t)(q - q_b) * (ptrdiff_t)npoints]); + for (size_t p = k; p < npoints; p++) + { + if (point_dist.top().second > dist_matrix[(ptrdiff_t)p + (ptrdiff_t)(q - q_b) * (ptrdiff_t)npoints]) + point_dist.emplace(p, dist_matrix[(ptrdiff_t)p + (ptrdiff_t)(q - q_b) * (ptrdiff_t)npoints]); + if (point_dist.size() > k) + point_dist.pop(); + } + for (ptrdiff_t l = 0; l < (ptrdiff_t)k; ++l) + { + closest_points[(ptrdiff_t)(k - 1 - l) + (ptrdiff_t)q * (ptrdiff_t)k] = point_dist.top().first; + dist_closest_points[(ptrdiff_t)(k - 1 - l) + (ptrdiff_t)q * (ptrdiff_t)k] = point_dist.top().second; + point_dist.pop(); + } + assert(std::is_sorted(dist_closest_points + (ptrdiff_t)q * (ptrdiff_t)k, + dist_closest_points + (ptrdiff_t)(q + 1) * (ptrdiff_t)k)); + } + std::cout << "Computed exact k-NN for queries: [" << q_b << "," << q_e << ")" << std::endl; + } + + delete[] dist_matrix; + + delete[] points_l2sq; + delete[] queries_l2sq; + + if (metric == diskann::Metric::COSINE) + { + delete[] points; + delete[] queries; + } +} + +template inline int get_num_parts(const char *filename) +{ + std::ifstream reader; + reader.exceptions(std::ios::failbit | std::ios::badbit); + reader.open(filename, std::ios::binary); + std::cout << "Reading bin file " << filename << " ...\n"; + int npts_i32, ndims_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&ndims_i32, sizeof(int)); + std::cout << "#pts = " << npts_i32 << ", #dims = " << ndims_i32 << std::endl; + reader.close(); + int num_parts = (npts_i32 % PARTSIZE) == 0 ? npts_i32 / PARTSIZE : (uint32_t)std::floor(npts_i32 / PARTSIZE) + 1; + std::cout << "Number of parts: " << num_parts << std::endl; + return num_parts; +} + +template +inline void load_bin_as_float(const char *filename, float *&data, size_t &npts_u64, size_t &ndims_u64, int part_num) +{ + std::ifstream reader; + reader.exceptions(std::ios::failbit | std::ios::badbit); + reader.open(filename, std::ios::binary); + std::cout << "Reading bin file " << filename << " ...\n"; + int npts_i32, ndims_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&ndims_i32, sizeof(int)); + uint64_t start_id = part_num * PARTSIZE; + uint64_t end_id = (std::min)(start_id + PARTSIZE, (uint64_t)npts_i32); + npts_u64 = end_id - start_id; + ndims_u64 = (uint64_t)ndims_i32; + std::cout << "#pts in part = " << npts_u64 << ", #dims = " << ndims_u64 + << ", size = " << npts_u64 * ndims_u64 * sizeof(T) << "B" << std::endl; + + reader.seekg(start_id * ndims_u64 * sizeof(T) + 2 * sizeof(uint32_t), std::ios::beg); + T *data_T = new T[npts_u64 * ndims_u64]; + reader.read((char *)data_T, sizeof(T) * npts_u64 * ndims_u64); + std::cout << "Finished reading part of the bin file." << std::endl; + reader.close(); + data = aligned_malloc(npts_u64 * ndims_u64, ALIGNMENT); +#pragma omp parallel for schedule(dynamic, 32768) + for (int64_t i = 0; i < (int64_t)npts_u64; i++) + { + for (int64_t j = 0; j < (int64_t)ndims_u64; j++) + { + float cur_val_float = (float)data_T[i * ndims_u64 + j]; + std::memcpy((char *)(data + i * ndims_u64 + j), (char *)&cur_val_float, sizeof(float)); + } + } + delete[] data_T; + std::cout << "Finished converting part data to float." << std::endl; +} + +template +inline std::vector load_filtered_bin_as_float(const char *filename, float *&data, size_t &npts, size_t &ndims, + int part_num, const char *label_file, + const std::string &filter_label, + const std::string &universal_label, size_t &npoints_filt, + std::vector> &pts_to_labels) +{ + std::ifstream reader(filename, std::ios::binary); + if (reader.fail()) + { + throw diskann::ANNException(std::string("Failed to open file ") + filename, -1); + } + + std::cout << "Reading bin file " << filename << " ...\n"; + int npts_i32, ndims_i32; + std::vector rev_map; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&ndims_i32, sizeof(int)); + uint64_t start_id = part_num * PARTSIZE; + uint64_t end_id = (std::min)(start_id + PARTSIZE, (uint64_t)npts_i32); + npts = end_id - start_id; + ndims = (uint32_t)ndims_i32; + uint64_t nptsuint64_t = (uint64_t)npts; + uint64_t ndimsuint64_t = (uint64_t)ndims; + npoints_filt = 0; + std::cout << "#pts in part = " << npts << ", #dims = " << ndims + << ", size = " << nptsuint64_t * ndimsuint64_t * sizeof(T) << "B" << std::endl; + std::cout << "start and end ids: " << start_id << ", " << end_id << std::endl; + reader.seekg(start_id * ndims * sizeof(T) + 2 * sizeof(uint32_t), std::ios::beg); + + T *data_T = new T[nptsuint64_t * ndimsuint64_t]; + reader.read((char *)data_T, sizeof(T) * nptsuint64_t * ndimsuint64_t); + std::cout << "Finished reading part of the bin file." << std::endl; + reader.close(); + + data = aligned_malloc(nptsuint64_t * ndimsuint64_t, ALIGNMENT); + + for (int64_t i = 0; i < (int64_t)nptsuint64_t; i++) + { + if (std::find(pts_to_labels[start_id + i].begin(), pts_to_labels[start_id + i].end(), filter_label) != + pts_to_labels[start_id + i].end() || + std::find(pts_to_labels[start_id + i].begin(), pts_to_labels[start_id + i].end(), universal_label) != + pts_to_labels[start_id + i].end()) + { + rev_map.push_back(start_id + i); + for (int64_t j = 0; j < (int64_t)ndimsuint64_t; j++) + { + float cur_val_float = (float)data_T[i * ndimsuint64_t + j]; + std::memcpy((char *)(data + npoints_filt * ndimsuint64_t + j), (char *)&cur_val_float, sizeof(float)); + } + npoints_filt++; + } + } + delete[] data_T; + std::cout << "Finished converting part data to float.. identified " << npoints_filt + << " points matching the filter." << std::endl; + return rev_map; +} + +template inline void save_bin(const std::string filename, T *data, size_t npts, size_t ndims) +{ + std::ofstream writer; + writer.exceptions(std::ios::failbit | std::ios::badbit); + writer.open(filename, std::ios::binary | std::ios::out); + std::cout << "Writing bin: " << filename << "\n"; + int npts_i32 = (int)npts, ndims_i32 = (int)ndims; + writer.write((char *)&npts_i32, sizeof(int)); + writer.write((char *)&ndims_i32, sizeof(int)); + std::cout << "bin: #pts = " << npts << ", #dims = " << ndims + << ", size = " << npts * ndims * sizeof(T) + 2 * sizeof(int) << "B" << std::endl; + + writer.write((char *)data, npts * ndims * sizeof(T)); + writer.close(); + std::cout << "Finished writing bin" << std::endl; +} + +inline void save_groundtruth_as_one_file(const std::string filename, int32_t *data, float *distances, size_t npts, + size_t ndims) +{ + std::ofstream writer(filename, std::ios::binary | std::ios::out); + int npts_i32 = (int)npts, ndims_i32 = (int)ndims; + writer.write((char *)&npts_i32, sizeof(int)); + writer.write((char *)&ndims_i32, sizeof(int)); + std::cout << "Saving truthset in one file (npts, dim, npts*dim id-matrix, " + "npts*dim dist-matrix) with npts = " + << npts << ", dim = " << ndims << ", size = " << 2 * npts * ndims * sizeof(uint32_t) + 2 * sizeof(int) + << "B" << std::endl; + + writer.write((char *)data, npts * ndims * sizeof(uint32_t)); + writer.write((char *)distances, npts * ndims * sizeof(float)); + writer.close(); + std::cout << "Finished writing truthset" << std::endl; +} + +inline void parse_label_file_into_vec(size_t &line_cnt, const std::string &map_file, + std::vector> &pts_to_labels) +{ + std::ifstream infile(map_file); + std::string line, token; + std::set labels; + infile.clear(); + infile.seekg(0, std::ios::beg); + while (std::getline(infile, line)) + { + std::istringstream iss(line); + std::vector lbls(0); + + getline(iss, token, '\t'); + std::istringstream new_iss(token); + while (getline(new_iss, token, ',')) + { + token.erase(std::remove(token.begin(), token.end(), '\n'), token.end()); + token.erase(std::remove(token.begin(), token.end(), '\r'), token.end()); + lbls.push_back(token); + labels.insert(token); + } + std::sort(lbls.begin(), lbls.end()); + pts_to_labels.push_back(lbls); + } + std::cout << "Identified " << labels.size() << " distinct label(s), and populated labels for " + << pts_to_labels.size() << " points" << std::endl; +} + +template +std::vector>> processUnfilteredParts(const std::string &base_file, + size_t &nqueries, size_t &npoints, + size_t &dim, size_t &k, float *query_data, + const diskann::Metric &metric, + std::vector &location_to_tag) +{ + float *base_data = nullptr; + int num_parts = get_num_parts(base_file.c_str()); + std::vector>> res(nqueries); + for (int p = 0; p < num_parts; p++) + { + size_t start_id = p * PARTSIZE; + load_bin_as_float(base_file.c_str(), base_data, npoints, dim, p); + + size_t *closest_points_part = new size_t[nqueries * k]; + float *dist_closest_points_part = new float[nqueries * k]; + + auto part_k = k < npoints ? k : npoints; + exact_knn(dim, part_k, closest_points_part, dist_closest_points_part, npoints, base_data, nqueries, query_data, + metric); + + for (size_t i = 0; i < nqueries; i++) + { + for (uint64_t j = 0; j < part_k; j++) + { + if (!location_to_tag.empty()) + if (location_to_tag[closest_points_part[i * k + j] + start_id] == 0) + continue; + + res[i].push_back(std::make_pair((uint32_t)(closest_points_part[i * part_k + j] + start_id), + dist_closest_points_part[i * part_k + j])); + } + } + + delete[] closest_points_part; + delete[] dist_closest_points_part; + + diskann::aligned_free(base_data); + } + return res; +}; + +template +std::vector>> processFilteredParts( + const std::string &base_file, const std::string &label_file, const std::string &filter_label, + const std::string &universal_label, size_t &nqueries, size_t &npoints, size_t &dim, size_t &k, float *query_data, + const diskann::Metric &metric, std::vector &location_to_tag) +{ + size_t npoints_filt = 0; + float *base_data = nullptr; + std::vector>> res(nqueries); + int num_parts = get_num_parts(base_file.c_str()); + + std::vector> pts_to_labels; + if (filter_label != "") + parse_label_file_into_vec(npoints, label_file, pts_to_labels); + + for (int p = 0; p < num_parts; p++) + { + size_t start_id = p * PARTSIZE; + std::vector rev_map; + if (filter_label != "") + rev_map = load_filtered_bin_as_float(base_file.c_str(), base_data, npoints, dim, p, label_file.c_str(), + filter_label, universal_label, npoints_filt, pts_to_labels); + size_t *closest_points_part = new size_t[nqueries * k]; + float *dist_closest_points_part = new float[nqueries * k]; + + auto part_k = k < npoints_filt ? k : npoints_filt; + if (npoints_filt > 0) + { + exact_knn(dim, part_k, closest_points_part, dist_closest_points_part, npoints_filt, base_data, nqueries, + query_data, metric); + } + + for (size_t i = 0; i < nqueries; i++) + { + for (uint64_t j = 0; j < part_k; j++) + { + if (!location_to_tag.empty()) + if (location_to_tag[closest_points_part[i * k + j] + start_id] == 0) + continue; + + res[i].push_back(std::make_pair((uint32_t)(rev_map[closest_points_part[i * part_k + j]]), + dist_closest_points_part[i * part_k + j])); + } + } + + delete[] closest_points_part; + delete[] dist_closest_points_part; + + diskann::aligned_free(base_data); + } + return res; +}; + +template +int aux_main(const std::string &base_file, const std::string &label_file, const std::string &query_file, + const std::string >_file, size_t k, const std::string &universal_label, const diskann::Metric &metric, + const std::string &filter_label, const std::string &tags_file = std::string("")) +{ + size_t npoints, nqueries, dim; + + float *query_data = nullptr; + + load_bin_as_float(query_file.c_str(), query_data, nqueries, dim, 0); + if (nqueries > PARTSIZE) + std::cerr << "WARNING: #Queries provided (" << nqueries << ") is greater than " << PARTSIZE + << ". Computing GT only for the first " << PARTSIZE << " queries." << std::endl; + + // load tags + const bool tags_enabled = tags_file.empty() ? false : true; + std::vector location_to_tag = diskann::loadTags(tags_file, base_file); + + int *closest_points = new int[nqueries * k]; + float *dist_closest_points = new float[nqueries * k]; + + std::vector>> results; + if (filter_label == "") + { + results = processUnfilteredParts(base_file, nqueries, npoints, dim, k, query_data, metric, location_to_tag); + } + else + { + results = processFilteredParts(base_file, label_file, filter_label, universal_label, nqueries, npoints, dim, + k, query_data, metric, location_to_tag); + } + + for (size_t i = 0; i < nqueries; i++) + { + std::vector> &cur_res = results[i]; + std::sort(cur_res.begin(), cur_res.end(), custom_dist); + size_t j = 0; + for (auto iter : cur_res) + { + if (j == k) + break; + if (tags_enabled) + { + std::uint32_t index_with_tag = location_to_tag[iter.first]; + closest_points[i * k + j] = (int32_t)index_with_tag; + } + else + { + closest_points[i * k + j] = (int32_t)iter.first; + } + + if (metric == diskann::Metric::INNER_PRODUCT) + dist_closest_points[i * k + j] = -iter.second; + else + dist_closest_points[i * k + j] = iter.second; + + ++j; + } + if (j < k) + std::cout << "WARNING: found less than k GT entries for query " << i << std::endl; + } + + save_groundtruth_as_one_file(gt_file, closest_points, dist_closest_points, nqueries, k); + delete[] closest_points; + delete[] dist_closest_points; + diskann::aligned_free(query_data); + + return 0; +} + +void load_truthset(const std::string &bin_file, uint32_t *&ids, float *&dists, size_t &npts, size_t &dim) +{ + size_t read_blk_size = 64 * 1024 * 1024; + cached_ifstream reader(bin_file, read_blk_size); + diskann::cout << "Reading truthset file " << bin_file.c_str() << " ..." << std::endl; + size_t actual_file_size = reader.get_file_size(); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (uint32_t)npts_i32; + dim = (uint32_t)dim_i32; + + diskann::cout << "Metadata: #pts = " << npts << ", #dims = " << dim << "... " << std::endl; + + int truthset_type = -1; // 1 means truthset has ids and distances, 2 means + // only ids, -1 is error + size_t expected_file_size_with_dists = 2 * npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_with_dists) + truthset_type = 1; + + size_t expected_file_size_just_ids = npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_just_ids) + truthset_type = 2; + + if (truthset_type == -1) + { + std::stringstream stream; + stream << "Error. File size mismatch. File should have bin format, with " + "npts followed by ngt followed by npts*ngt ids and optionally " + "followed by npts*ngt distance values; actual size: " + << actual_file_size << ", expected: " << expected_file_size_with_dists << " or " + << expected_file_size_just_ids; + diskann::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + ids = new uint32_t[npts * dim]; + reader.read((char *)ids, npts * dim * sizeof(uint32_t)); + + if (truthset_type == 1) + { + dists = new float[npts * dim]; + reader.read((char *)dists, npts * dim * sizeof(float)); + } +} + +int main(int argc, char **argv) +{ + std::string data_type, dist_fn, base_file, query_file, gt_file, tags_file, label_file, filter_label, + universal_label, filter_label_file; + uint64_t K; + + try + { + po::options_description desc{"Arguments"}; + + desc.add_options()("help,h", "Print information on arguments"); + + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("dist_fn", po::value(&dist_fn)->required(), "distance function "); + desc.add_options()("base_file", po::value(&base_file)->required(), + "File containing the base vectors in binary format"); + desc.add_options()("query_file", po::value(&query_file)->required(), + "File containing the query vectors in binary format"); + desc.add_options()("label_file", po::value(&label_file)->default_value(""), + "Input labels file in txt format if present"); + desc.add_options()("filter_label", po::value(&filter_label)->default_value(""), + "Input filter label if doing filtered groundtruth"); + desc.add_options()("universal_label", po::value(&universal_label)->default_value(""), + "Universal label, if using it, only in conjunction with label_file"); + desc.add_options()("gt_file", po::value(>_file)->required(), + "File name for the writing ground truth in binary " + "format, please don' append .bin at end if " + "no filter_label or filter_label_file is provided it " + "will save the file with '.bin' at end." + "else it will save the file as filename_label.bin"); + desc.add_options()("K", po::value(&K)->required(), + "Number of ground truth nearest neighbors to compute"); + desc.add_options()("tags_file", po::value(&tags_file)->default_value(std::string()), + "File containing the tags in binary format"); + desc.add_options()("filter_label_file", + po::value(&filter_label_file)->default_value(std::string("")), + "Filter file for Queries for Filtered Search "); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + if (data_type != std::string("float") && data_type != std::string("int8") && data_type != std::string("uint8")) + { + std::cout << "Unsupported type. float, int8 and uint8 types are supported." << std::endl; + return -1; + } + + if (filter_label != "" && filter_label_file != "") + { + std::cerr << "Only one of filter_label and query_filters_file should be provided" << std::endl; + return -1; + } + + diskann::Metric metric; + if (dist_fn == std::string("l2")) + { + metric = diskann::Metric::L2; + } + else if (dist_fn == std::string("mips")) + { + metric = diskann::Metric::INNER_PRODUCT; + } + else if (dist_fn == std::string("cosine")) + { + metric = diskann::Metric::COSINE; + } + else + { + std::cerr << "Unsupported distance function. Use l2/mips/cosine." << std::endl; + return -1; + } + + std::vector filter_labels; + if (filter_label != "") + { + filter_labels.push_back(filter_label); + } + else if (filter_label_file != "") + { + filter_labels = read_file_to_vector_of_strings(filter_label_file, false); + } + + // only when there is no filter label or 1 filter label for all queries + if (filter_labels.size() == 1) + { + try + { + if (data_type == std::string("float")) + aux_main(base_file, label_file, query_file, gt_file, K, universal_label, metric, + filter_labels[0], tags_file); + if (data_type == std::string("int8")) + aux_main(base_file, label_file, query_file, gt_file, K, universal_label, metric, + filter_labels[0], tags_file); + if (data_type == std::string("uint8")) + aux_main(base_file, label_file, query_file, gt_file, K, universal_label, metric, + filter_labels[0], tags_file); + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Compute GT failed." << std::endl; + return -1; + } + } + else + { // Each query has its own filter label + // Split up data and query bins into label specific ones + tsl::robin_map labels_to_number_of_points; + tsl::robin_map labels_to_number_of_queries; + + label_set all_labels; + for (size_t i = 0; i < filter_labels.size(); i++) + { + std::string label = filter_labels[i]; + all_labels.insert(label); + + if (labels_to_number_of_queries.find(label) == labels_to_number_of_queries.end()) + { + labels_to_number_of_queries[label] = 0; + } + labels_to_number_of_queries[label] += 1; + } + + size_t npoints; + std::vector> point_to_labels; + parse_label_file_into_vec(npoints, label_file, point_to_labels); + std::vector point_ids_to_labels(point_to_labels.size()); + std::vector query_ids_to_labels(filter_labels.size()); + + for (size_t i = 0; i < point_to_labels.size(); i++) + { + for (size_t j = 0; j < point_to_labels[i].size(); j++) + { + std::string label = point_to_labels[i][j]; + if (all_labels.find(label) != all_labels.end()) + { + point_ids_to_labels[i].insert(point_to_labels[i][j]); + if (labels_to_number_of_points.find(label) == labels_to_number_of_points.end()) + { + labels_to_number_of_points[label] = 0; + } + labels_to_number_of_points[label] += 1; + } + } + } + + for (size_t i = 0; i < filter_labels.size(); i++) + { + query_ids_to_labels[i].insert(filter_labels[i]); + } + + tsl::robin_map> label_id_to_orig_id; + tsl::robin_map> label_query_id_to_orig_id; + + if (data_type == std::string("float")) + { + label_id_to_orig_id = diskann::generate_label_specific_vector_files_compat( + base_file, labels_to_number_of_points, point_ids_to_labels, all_labels); + + label_query_id_to_orig_id = diskann::generate_label_specific_vector_files_compat( + query_file, labels_to_number_of_queries, query_ids_to_labels, + all_labels); // query_filters acts like query_ids_to_labels + } + else if (data_type == std::string("int8")) + { + label_id_to_orig_id = diskann::generate_label_specific_vector_files_compat( + base_file, labels_to_number_of_points, point_ids_to_labels, all_labels); + + label_query_id_to_orig_id = diskann::generate_label_specific_vector_files_compat( + query_file, labels_to_number_of_queries, query_ids_to_labels, + all_labels); // query_filters acts like query_ids_to_labels + } + else if (data_type == std::string("uint8")) + { + label_id_to_orig_id = diskann::generate_label_specific_vector_files_compat( + base_file, labels_to_number_of_points, point_ids_to_labels, all_labels); + + label_query_id_to_orig_id = diskann::generate_label_specific_vector_files_compat( + query_file, labels_to_number_of_queries, query_ids_to_labels, + all_labels); // query_filters acts like query_ids_to_labels + } + else + { + diskann::cerr << "Invalid data type" << std::endl; + return -1; + } + + // Generate label specific ground truths + + try + { + for (const auto &label : all_labels) + { + std::string filtered_base_file = base_file + "_" + label; + std::string filtered_query_file = query_file + "_" + label; + std::string filtered_gt_file = gt_file + "_" + label; + if (data_type == std::string("float")) + aux_main(filtered_base_file, "", filtered_query_file, filtered_gt_file, K, "", metric, ""); + if (data_type == std::string("int8")) + aux_main(filtered_base_file, "", filtered_query_file, filtered_gt_file, K, "", metric, ""); + if (data_type == std::string("uint8")) + aux_main(filtered_base_file, "", filtered_query_file, filtered_gt_file, K, "", metric, ""); + } + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Compute GT failed." << std::endl; + return -1; + } + + // Combine the label specific ground truths to produce a single GT file + + uint32_t *gt_ids = nullptr; + float *gt_dists = nullptr; + size_t gt_num, gt_dim; + + std::vector> final_gt_ids; + std::vector> final_gt_dists; + + uint32_t query_num = 0; + for (const auto &lbl : all_labels) + { + query_num += labels_to_number_of_queries[lbl]; + } + + for (uint32_t i = 0; i < query_num; i++) + { + final_gt_ids.push_back(std::vector(K)); + final_gt_dists.push_back(std::vector(K)); + } + + for (const auto &lbl : all_labels) + { + std::string filtered_gt_file = gt_file + "_" + lbl; + load_truthset(filtered_gt_file, gt_ids, gt_dists, gt_num, gt_dim); + + for (uint32_t i = 0; i < labels_to_number_of_queries[lbl]; i++) + { + uint32_t orig_query_id = label_query_id_to_orig_id[lbl][i]; + for (uint64_t j = 0; j < K; j++) + { + final_gt_ids[orig_query_id][j] = label_id_to_orig_id[lbl][gt_ids[i * K + j]]; + final_gt_dists[orig_query_id][j] = gt_dists[i * K + j]; + } + } + } + + int32_t *closest_points = new int32_t[query_num * K]; + float *dist_closest_points = new float[query_num * K]; + + for (uint32_t i = 0; i < query_num; i++) + { + for (uint32_t j = 0; j < K; j++) + { + closest_points[i * K + j] = final_gt_ids[i][j]; + dist_closest_points[i * K + j] = final_gt_dists[i][j]; + } + } + + save_groundtruth_as_one_file(gt_file, closest_points, dist_closest_points, query_num, K); + + // cleanup artifacts + std::cout << "Cleaning up artifacts..." << std::endl; + tsl::robin_set paths_to_clean{gt_file, base_file, query_file}; + clean_up_artifacts(paths_to_clean, all_labels); + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/count_bfs_levels.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/count_bfs_levels.cpp new file mode 100644 index 0000000..6dd2d62 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/count_bfs_levels.cpp @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef _WINDOWS +#include +#include +#include +#include +#endif + +#include "utils.h" +#include "index.h" +#include "memory_mapper.h" + +namespace po = boost::program_options; + +template void bfs_count(const std::string &index_path, uint32_t data_dims) +{ + using TagT = uint32_t; + using LabelT = uint32_t; + diskann::Index index(diskann::Metric::L2, data_dims, 0, nullptr, nullptr, 0, false, false, false, + false, 0, false); + std::cout << "Index class instantiated" << std::endl; + index.load(index_path.c_str(), 1, 100); + std::cout << "Index loaded" << std::endl; + index.count_nodes_at_bfs_levels(); +} + +int main(int argc, char **argv) +{ + std::string data_type, index_path_prefix; + uint32_t data_dims; + + po::options_description desc{"Arguments"}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("index_path_prefix", po::value(&index_path_prefix)->required(), + "Path prefix to the index"); + desc.add_options()("data_dims", po::value(&data_dims)->required(), "Dimensionality of the data"); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + try + { + if (data_type == std::string("int8")) + bfs_count(index_path_prefix, data_dims); + else if (data_type == std::string("uint8")) + bfs_count(index_path_prefix, data_dims); + if (data_type == std::string("float")) + bfs_count(index_path_prefix, data_dims); + } + catch (std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index BFS failed." << std::endl; + return -1; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/create_disk_layout.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/create_disk_layout.cpp new file mode 100644 index 0000000..f494c12 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/create_disk_layout.cpp @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "disk_utils.h" +#include "cached_io.h" + +template int create_disk_layout(char **argv) +{ + std::string base_file(argv[2]); + std::string vamana_file(argv[3]); + std::string output_file(argv[4]); + diskann::create_disk_layout(base_file, vamana_file, output_file); + return 0; +} + +int main(int argc, char **argv) +{ + if (argc != 5) + { + std::cout << argv[0] + << " data_type data_bin " + "vamana_index_file output_diskann_index_file" + << std::endl; + exit(-1); + } + + int ret_val = -1; + if (std::string(argv[1]) == std::string("float")) + ret_val = create_disk_layout(argv); + else if (std::string(argv[1]) == std::string("int8")) + ret_val = create_disk_layout(argv); + else if (std::string(argv[1]) == std::string("uint8")) + ret_val = create_disk_layout(argv); + else + { + std::cout << "unsupported type. use int8/uint8/float " << std::endl; + ret_val = -2; + } + return ret_val; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/float_bin_to_int8.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/float_bin_to_int8.cpp new file mode 100644 index 0000000..1982005 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/float_bin_to_int8.cpp @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +void block_convert(std::ofstream &writer, int8_t *write_buf, std::ifstream &reader, float *read_buf, size_t npts, + size_t ndims, float bias, float scale) +{ + reader.read((char *)read_buf, npts * ndims * sizeof(float)); + + for (size_t i = 0; i < npts; i++) + { + for (size_t d = 0; d < ndims; d++) + { + write_buf[d + i * ndims] = (int8_t)((read_buf[d + i * ndims] - bias) * (254.0 / scale)); + } + } + writer.write((char *)write_buf, npts * ndims); +} + +int main(int argc, char **argv) +{ + if (argc != 5) + { + std::cout << "Usage: " << argv[0] << " input_bin output_tsv bias scale" << std::endl; + exit(-1); + } + + std::ifstream reader(argv[1], std::ios::binary); + uint32_t npts_u32; + uint32_t ndims_u32; + reader.read((char *)&npts_u32, sizeof(uint32_t)); + reader.read((char *)&ndims_u32, sizeof(uint32_t)); + size_t npts = npts_u32; + size_t ndims = ndims_u32; + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + + std::ofstream writer(argv[2], std::ios::binary); + auto read_buf = new float[blk_size * ndims]; + auto write_buf = new int8_t[blk_size * ndims]; + float bias = (float)atof(argv[3]); + float scale = (float)atof(argv[4]); + + writer.write((char *)(&npts_u32), sizeof(uint32_t)); + writer.write((char *)(&ndims_u32), sizeof(uint32_t)); + + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + block_convert(writer, write_buf, reader, read_buf, cblk_size, ndims, bias, scale); + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + delete[] write_buf; + + writer.close(); + reader.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bin.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bin.cpp new file mode 100644 index 0000000..873ad3b --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bin.cpp @@ -0,0 +1,95 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +// Convert float types +void block_convert_float(std::ifstream &reader, std::ofstream &writer, float *read_buf, float *write_buf, size_t npts, + size_t ndims) +{ + reader.read((char *)read_buf, npts * (ndims * sizeof(float) + sizeof(uint32_t))); + for (size_t i = 0; i < npts; i++) + { + memcpy(write_buf + i * ndims, (read_buf + i * (ndims + 1)) + 1, ndims * sizeof(float)); + } + writer.write((char *)write_buf, npts * ndims * sizeof(float)); +} + +// Convert byte types +void block_convert_byte(std::ifstream &reader, std::ofstream &writer, uint8_t *read_buf, uint8_t *write_buf, + size_t npts, size_t ndims) +{ + reader.read((char *)read_buf, npts * (ndims * sizeof(uint8_t) + sizeof(uint32_t))); + for (size_t i = 0; i < npts; i++) + { + memcpy(write_buf + i * ndims, (read_buf + i * (ndims + sizeof(uint32_t))) + sizeof(uint32_t), + ndims * sizeof(uint8_t)); + } + writer.write((char *)write_buf, npts * ndims * sizeof(uint8_t)); +} + +int main(int argc, char **argv) +{ + if (argc != 4) + { + std::cout << argv[0] << " input_vecs output_bin" << std::endl; + exit(-1); + } + + int datasize = sizeof(float); + + if (strcmp(argv[1], "uint8") == 0 || strcmp(argv[1], "int8") == 0) + { + datasize = sizeof(uint8_t); + } + else if (strcmp(argv[1], "float") != 0) + { + std::cout << "Error: type not supported. Use float/int8/uint8" << std::endl; + exit(-1); + } + + std::ifstream reader(argv[2], std::ios::binary | std::ios::ate); + size_t fsize = reader.tellg(); + reader.seekg(0, std::ios::beg); + + uint32_t ndims_u32; + reader.read((char *)&ndims_u32, sizeof(uint32_t)); + reader.seekg(0, std::ios::beg); + size_t ndims = (size_t)ndims_u32; + size_t npts = fsize / ((ndims * datasize) + sizeof(uint32_t)); + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + std::cout << "# blks: " << nblks << std::endl; + std::ofstream writer(argv[3], std::ios::binary); + int32_t npts_s32 = (int32_t)npts; + int32_t ndims_s32 = (int32_t)ndims; + writer.write((char *)&npts_s32, sizeof(int32_t)); + writer.write((char *)&ndims_s32, sizeof(int32_t)); + + size_t chunknpts = std::min(npts, blk_size); + uint8_t *read_buf = new uint8_t[chunknpts * ((ndims * datasize) + sizeof(uint32_t))]; + uint8_t *write_buf = new uint8_t[chunknpts * ndims * datasize]; + + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + if (datasize == sizeof(float)) + { + block_convert_float(reader, writer, (float *)read_buf, (float *)write_buf, cblk_size, ndims); + } + else + { + block_convert_byte(reader, writer, read_buf, write_buf, cblk_size, ndims); + } + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + delete[] write_buf; + + reader.close(); + writer.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bvecs.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bvecs.cpp new file mode 100644 index 0000000..f9c2aa7 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/fvecs_to_bvecs.cpp @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +void block_convert(std::ifstream &reader, std::ofstream &writer, float *read_buf, uint8_t *write_buf, size_t npts, + size_t ndims) +{ + reader.read((char *)read_buf, npts * (ndims * sizeof(float) + sizeof(uint32_t))); + for (size_t i = 0; i < npts; i++) + { + memcpy(write_buf + i * (ndims + 4), read_buf + i * (ndims + 1), sizeof(uint32_t)); + for (size_t d = 0; d < ndims; d++) + write_buf[i * (ndims + 4) + 4 + d] = (uint8_t)read_buf[i * (ndims + 1) + 1 + d]; + } + writer.write((char *)write_buf, npts * (ndims * 1 + 4)); +} + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::cout << argv[0] << " input_fvecs output_bvecs(uint8)" << std::endl; + exit(-1); + } + std::ifstream reader(argv[1], std::ios::binary | std::ios::ate); + size_t fsize = reader.tellg(); + reader.seekg(0, std::ios::beg); + + uint32_t ndims_u32; + reader.read((char *)&ndims_u32, sizeof(uint32_t)); + reader.seekg(0, std::ios::beg); + size_t ndims = (size_t)ndims_u32; + size_t npts = fsize / ((ndims + 1) * sizeof(float)); + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + std::cout << "# blks: " << nblks << std::endl; + std::ofstream writer(argv[2], std::ios::binary); + auto read_buf = new float[npts * (ndims + 1)]; + auto write_buf = new uint8_t[npts * (ndims + 4)]; + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + block_convert(reader, writer, read_buf, write_buf, cblk_size, ndims); + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + delete[] write_buf; + + reader.close(); + writer.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/gen_random_slice.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/gen_random_slice.cpp new file mode 100644 index 0000000..a4cd96e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/gen_random_slice.cpp @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "partition.h" +#include "utils.h" + +#include +#include +#include +#include + +template int aux_main(char **argv) +{ + std::string base_file(argv[2]); + std::string output_prefix(argv[3]); + float sampling_rate = (float)(std::atof(argv[4])); + gen_random_slice(base_file, output_prefix, sampling_rate); + return 0; +} + +int main(int argc, char **argv) +{ + if (argc != 5) + { + std::cout << argv[0] + << " data_type [float/int8/uint8] base_bin_file " + "sample_output_prefix sampling_probability" + << std::endl; + exit(-1); + } + + if (std::string(argv[1]) == std::string("float")) + { + aux_main(argv); + } + else if (std::string(argv[1]) == std::string("int8")) + { + aux_main(argv); + } + else if (std::string(argv[1]) == std::string("uint8")) + { + aux_main(argv); + } + else + std::cout << "Unsupported type. Use float/int8/uint8." << std::endl; + return 0; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_pq.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_pq.cpp new file mode 100644 index 0000000..a881b11 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_pq.cpp @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include "math_utils.h" +#include "pq.h" +#include "partition.h" + +#define KMEANS_ITERS_FOR_PQ 15 + +template +bool generate_pq(const std::string &data_path, const std::string &index_prefix_path, const size_t num_pq_centers, + const size_t num_pq_chunks, const float sampling_rate, const bool opq) +{ + std::string pq_pivots_path = index_prefix_path + "_pq_pivots.bin"; + std::string pq_compressed_vectors_path = index_prefix_path + "_pq_compressed.bin"; + + // generates random sample and sets it to train_data and updates train_size + size_t train_size, train_dim; + float *train_data; + gen_random_slice(data_path, sampling_rate, train_data, train_size, train_dim); + std::cout << "For computing pivots, loaded sample data of size " << train_size << std::endl; + + if (opq) + { + diskann::generate_opq_pivots(train_data, train_size, (uint32_t)train_dim, (uint32_t)num_pq_centers, + (uint32_t)num_pq_chunks, pq_pivots_path, true); + } + else + { + diskann::generate_pq_pivots(train_data, train_size, (uint32_t)train_dim, (uint32_t)num_pq_centers, + (uint32_t)num_pq_chunks, KMEANS_ITERS_FOR_PQ, pq_pivots_path); + } + diskann::generate_pq_data_from_pivots(data_path, (uint32_t)num_pq_centers, (uint32_t)num_pq_chunks, + pq_pivots_path, pq_compressed_vectors_path, true); + + delete[] train_data; + + return 0; +} + +int main(int argc, char **argv) +{ + if (argc != 7) + { + std::cout << "Usage: \n" + << argv[0] + << " " + " " + " " + << std::endl; + } + else + { + const std::string data_path(argv[2]); + const std::string index_prefix_path(argv[3]); + const size_t num_pq_centers = 256; + const size_t num_pq_chunks = (size_t)atoi(argv[4]); + const float sampling_rate = (float)atof(argv[5]); + const bool opq = atoi(argv[6]) == 0 ? false : true; + + if (std::string(argv[1]) == std::string("float")) + generate_pq(data_path, index_prefix_path, num_pq_centers, num_pq_chunks, sampling_rate, opq); + else if (std::string(argv[1]) == std::string("int8")) + generate_pq(data_path, index_prefix_path, num_pq_centers, num_pq_chunks, sampling_rate, opq); + else if (std::string(argv[1]) == std::string("uint8")) + generate_pq(data_path, index_prefix_path, num_pq_centers, num_pq_chunks, sampling_rate, opq); + else + std::cout << "Error. wrong file type" << std::endl; + } +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_synthetic_labels.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_synthetic_labels.cpp new file mode 100644 index 0000000..6741760 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/generate_synthetic_labels.cpp @@ -0,0 +1,204 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include "utils.h" + +namespace po = boost::program_options; +class ZipfDistribution +{ + public: + ZipfDistribution(uint64_t num_points, uint32_t num_labels) + : num_labels(num_labels), num_points(num_points), + uniform_zero_to_one(std::uniform_real_distribution<>(0.0, 1.0)) + { + } + + std::unordered_map createDistributionMap() + { + std::unordered_map map; + uint32_t primary_label_freq = (uint32_t)ceil(num_points * distribution_factor); + for (uint32_t i{1}; i < num_labels + 1; i++) + { + map[i] = (uint32_t)ceil(primary_label_freq / i); + } + return map; + } + + int writeDistribution(std::ofstream &outfile) + { + auto distribution_map = createDistributionMap(); + for (uint32_t i{0}; i < num_points; i++) + { + bool label_written = false; + for (auto it = distribution_map.cbegin(); it != distribution_map.cend(); it++) + { + auto label_selection_probability = std::bernoulli_distribution(distribution_factor / (double)it->first); + if (label_selection_probability(rand_engine) && distribution_map[it->first] > 0) + { + if (label_written) + { + outfile << ','; + } + outfile << it->first; + label_written = true; + // remove label from map if we have used all labels + distribution_map[it->first] -= 1; + } + } + if (!label_written) + { + outfile << 0; + } + if (i < num_points - 1) + { + outfile << '\n'; + } + } + return 0; + } + + int writeDistribution(std::string filename) + { + std::ofstream outfile(filename); + if (!outfile.is_open()) + { + std::cerr << "Error: could not open output file " << filename << '\n'; + return -1; + } + writeDistribution(outfile); + outfile.close(); + } + + private: + const uint32_t num_labels; + const uint64_t num_points; + const double distribution_factor = 0.7; + std::knuth_b rand_engine; + const std::uniform_real_distribution uniform_zero_to_one; +}; + +int main(int argc, char **argv) +{ + std::string output_file, distribution_type; + uint32_t num_labels; + uint64_t num_points; + + try + { + po::options_description desc{"Arguments"}; + + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("output_file,O", po::value(&output_file)->required(), + "Filename for saving the label file"); + desc.add_options()("num_points,N", po::value(&num_points)->required(), "Number of points in dataset"); + desc.add_options()("num_labels,L", po::value(&num_labels)->required(), + "Number of unique labels, up to 5000"); + desc.add_options()("distribution_type,DT", po::value(&distribution_type)->default_value("random"), + "Distribution function for labels defaults " + "to random"); + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + if (num_labels > 5000) + { + std::cerr << "Error: num_labels must be 5000 or less" << '\n'; + return -1; + } + + if (num_points <= 0) + { + std::cerr << "Error: num_points must be greater than 0" << '\n'; + return -1; + } + + std::cout << "Generating synthetic labels for " << num_points << " points with " << num_labels << " unique labels" + << '\n'; + + try + { + std::ofstream outfile(output_file); + if (!outfile.is_open()) + { + std::cerr << "Error: could not open output file " << output_file << '\n'; + return -1; + } + + if (distribution_type == "zipf") + { + ZipfDistribution zipf(num_points, num_labels); + zipf.writeDistribution(outfile); + } + else if (distribution_type == "random") + { + for (size_t i = 0; i < num_points; i++) + { + bool label_written = false; + for (size_t j = 1; j <= num_labels; j++) + { + // 50% chance to assign each label + if (rand() > (RAND_MAX / 2)) + { + if (label_written) + { + outfile << ','; + } + outfile << j; + label_written = true; + } + } + if (!label_written) + { + outfile << 0; + } + if (i < num_points - 1) + { + outfile << '\n'; + } + } + } + else if (distribution_type == "one_per_point") + { + std::random_device rd; // obtain a random number from hardware + std::mt19937 gen(rd()); // seed the generator + std::uniform_int_distribution<> distr(0, num_labels); // define the range + + for (size_t i = 0; i < num_points; i++) + { + outfile << distr(gen); + if (i != num_points - 1) + outfile << '\n'; + } + } + if (outfile.is_open()) + { + outfile.close(); + } + + std::cout << "Labels written to " << output_file << '\n'; + } + catch (const std::exception &ex) + { + std::cerr << "Label generation failed: " << ex.what() << '\n'; + return -1; + } + + return 0; +} \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float.cpp new file mode 100644 index 0000000..dcdfddc --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float.cpp @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::cout << argv[0] << " input_int8_bin output_float_bin" << std::endl; + exit(-1); + } + + int8_t *input; + size_t npts, nd; + diskann::load_bin(argv[1], input, npts, nd); + float *output = new float[npts * nd]; + diskann::convert_types(input, output, npts, nd); + diskann::save_bin(argv[2], output, npts, nd); + delete[] output; + delete[] input; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float_scale.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float_scale.cpp new file mode 100644 index 0000000..19fbc6c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/int8_to_float_scale.cpp @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +void block_convert(std::ofstream &writer, float *write_buf, std::ifstream &reader, int8_t *read_buf, size_t npts, + size_t ndims, float bias, float scale) +{ + reader.read((char *)read_buf, npts * ndims * sizeof(int8_t)); + + for (size_t i = 0; i < npts; i++) + { + for (size_t d = 0; d < ndims; d++) + { + write_buf[d + i * ndims] = (((float)read_buf[d + i * ndims] - bias) * scale); + } + } + writer.write((char *)write_buf, npts * ndims * sizeof(float)); +} + +int main(int argc, char **argv) +{ + if (argc != 5) + { + std::cout << "Usage: " << argv[0] << " input-int8.bin output-float.bin bias scale" << std::endl; + exit(-1); + } + + std::ifstream reader(argv[1], std::ios::binary); + uint32_t npts_u32; + uint32_t ndims_u32; + reader.read((char *)&npts_u32, sizeof(uint32_t)); + reader.read((char *)&ndims_u32, sizeof(uint32_t)); + size_t npts = npts_u32; + size_t ndims = ndims_u32; + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + + std::ofstream writer(argv[2], std::ios::binary); + auto read_buf = new int8_t[blk_size * ndims]; + auto write_buf = new float[blk_size * ndims]; + float bias = (float)atof(argv[3]); + float scale = (float)atof(argv[4]); + + writer.write((char *)(&npts_u32), sizeof(uint32_t)); + writer.write((char *)(&ndims_u32), sizeof(uint32_t)); + + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + block_convert(writer, write_buf, reader, read_buf, cblk_size, ndims, bias, scale); + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + delete[] write_buf; + + writer.close(); + reader.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/ivecs_to_bin.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/ivecs_to_bin.cpp new file mode 100644 index 0000000..ea8a4a3 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/ivecs_to_bin.cpp @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +void block_convert(std::ifstream &reader, std::ofstream &writer, uint32_t *read_buf, uint32_t *write_buf, size_t npts, + size_t ndims) +{ + reader.read((char *)read_buf, npts * (ndims * sizeof(uint32_t) + sizeof(uint32_t))); + for (size_t i = 0; i < npts; i++) + { + memcpy(write_buf + i * ndims, (read_buf + i * (ndims + 1)) + 1, ndims * sizeof(uint32_t)); + } + writer.write((char *)write_buf, npts * ndims * sizeof(uint32_t)); +} + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::cout << argv[0] << " input_ivecs output_bin" << std::endl; + exit(-1); + } + std::ifstream reader(argv[1], std::ios::binary | std::ios::ate); + size_t fsize = reader.tellg(); + reader.seekg(0, std::ios::beg); + + uint32_t ndims_u32; + reader.read((char *)&ndims_u32, sizeof(uint32_t)); + reader.seekg(0, std::ios::beg); + size_t ndims = (size_t)ndims_u32; + size_t npts = fsize / ((ndims + 1) * sizeof(uint32_t)); + std::cout << "Dataset: #pts = " << npts << ", # dims = " << ndims << std::endl; + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + std::cout << "# blks: " << nblks << std::endl; + std::ofstream writer(argv[2], std::ios::binary); + int npts_s32 = (int)npts; + int ndims_s32 = (int)ndims; + writer.write((char *)&npts_s32, sizeof(int)); + writer.write((char *)&ndims_s32, sizeof(int)); + uint32_t *read_buf = new uint32_t[npts * (ndims + 1)]; + uint32_t *write_buf = new uint32_t[npts * ndims]; + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + block_convert(reader, writer, read_buf, write_buf, cblk_size, ndims); + std::cout << "Block #" << i << " written" << std::endl; + } + + delete[] read_buf; + delete[] write_buf; + + reader.close(); + writer.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/merge_shards.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/merge_shards.cpp new file mode 100644 index 0000000..106c15e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/merge_shards.cpp @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "disk_utils.h" +#include "cached_io.h" +#include "utils.h" + +int main(int argc, char **argv) +{ + if (argc != 9) + { + std::cout << argv[0] + << " vamana_index_prefix[1] vamana_index_suffix[2] " + "idmaps_prefix[3] " + "idmaps_suffix[4] n_shards[5] max_degree[6] " + "output_vamana_path[7] " + "output_medoids_path[8]" + << std::endl; + exit(-1); + } + + std::string vamana_prefix(argv[1]); + std::string vamana_suffix(argv[2]); + std::string idmaps_prefix(argv[3]); + std::string idmaps_suffix(argv[4]); + uint64_t nshards = (uint64_t)std::atoi(argv[5]); + uint32_t max_degree = (uint64_t)std::atoi(argv[6]); + std::string output_index(argv[7]); + std::string output_medoids(argv[8]); + + return diskann::merge_shards(vamana_prefix, vamana_suffix, idmaps_prefix, idmaps_suffix, nshards, max_degree, + output_index, output_medoids); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_data.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_data.cpp new file mode 100644 index 0000000..2520f3f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_data.cpp @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include "cached_io.h" +#include "partition.h" + +// DEPRECATED: NEED TO REPROGRAM + +int main(int argc, char **argv) +{ + if (argc != 7) + { + std::cout << "Usage:\n" + << argv[0] + << " datatype " + " " + " " + << std::endl; + exit(-1); + } + + const std::string data_path(argv[2]); + const std::string prefix_path(argv[3]); + const float sampling_rate = (float)atof(argv[4]); + const size_t num_partitions = (size_t)std::atoi(argv[5]); + const size_t max_reps = 15; + const size_t k_index = (size_t)std::atoi(argv[6]); + + if (std::string(argv[1]) == std::string("float")) + partition(data_path, sampling_rate, num_partitions, max_reps, prefix_path, k_index); + else if (std::string(argv[1]) == std::string("int8")) + partition(data_path, sampling_rate, num_partitions, max_reps, prefix_path, k_index); + else if (std::string(argv[1]) == std::string("uint8")) + partition(data_path, sampling_rate, num_partitions, max_reps, prefix_path, k_index); + else + std::cout << "unsupported data format. use float/int8/uint8" << std::endl; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_with_ram_budget.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_with_ram_budget.cpp new file mode 100644 index 0000000..937b68d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/partition_with_ram_budget.cpp @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include "cached_io.h" +#include "partition.h" + +// DEPRECATED: NEED TO REPROGRAM + +int main(int argc, char **argv) +{ + if (argc != 8) + { + std::cout << "Usage:\n" + << argv[0] + << " datatype " + " " + " " + << std::endl; + exit(-1); + } + + const std::string data_path(argv[2]); + const std::string prefix_path(argv[3]); + const float sampling_rate = (float)atof(argv[4]); + const double ram_budget = (double)std::atof(argv[5]); + const size_t graph_degree = (size_t)std::atoi(argv[6]); + const size_t k_index = (size_t)std::atoi(argv[7]); + + if (std::string(argv[1]) == std::string("float")) + partition_with_ram_budget(data_path, sampling_rate, ram_budget, graph_degree, prefix_path, k_index); + else if (std::string(argv[1]) == std::string("int8")) + partition_with_ram_budget(data_path, sampling_rate, ram_budget, graph_degree, prefix_path, k_index); + else if (std::string(argv[1]) == std::string("uint8")) + partition_with_ram_budget(data_path, sampling_rate, ram_budget, graph_degree, prefix_path, k_index); + else + std::cout << "unsupported data format. use float/int8/uint8" << std::endl; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/rand_data_gen.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/rand_data_gen.cpp new file mode 100644 index 0000000..e89ede8 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/rand_data_gen.cpp @@ -0,0 +1,237 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include + +#include "utils.h" + +namespace po = boost::program_options; + +int block_write_float(std::ofstream &writer, size_t ndims, size_t npts, bool normalization, float norm, + float rand_scale) +{ + auto vec = new float[ndims]; + + std::random_device rd{}; + std::mt19937 gen{rd()}; + std::normal_distribution<> normal_rand{0, 1}; + std::uniform_real_distribution<> unif_dis(1.0, rand_scale); + + for (size_t i = 0; i < npts; i++) + { + float sum = 0; + float scale = 1.0f; + if (rand_scale > 1.0f) + scale = (float)unif_dis(gen); + for (size_t d = 0; d < ndims; ++d) + vec[d] = scale * (float)normal_rand(gen); + if (normalization) + { + for (size_t d = 0; d < ndims; ++d) + sum += vec[d] * vec[d]; + for (size_t d = 0; d < ndims; ++d) + vec[d] = vec[d] * norm / std::sqrt(sum); + } + + writer.write((char *)vec, ndims * sizeof(float)); + } + + delete[] vec; + return 0; +} + +int block_write_int8(std::ofstream &writer, size_t ndims, size_t npts, float norm) +{ + auto vec = new float[ndims]; + auto vec_T = new int8_t[ndims]; + + std::random_device rd{}; + std::mt19937 gen{rd()}; + std::normal_distribution<> normal_rand{0, 1}; + + for (size_t i = 0; i < npts; i++) + { + float sum = 0; + for (size_t d = 0; d < ndims; ++d) + vec[d] = (float)normal_rand(gen); + for (size_t d = 0; d < ndims; ++d) + sum += vec[d] * vec[d]; + for (size_t d = 0; d < ndims; ++d) + vec[d] = vec[d] * norm / std::sqrt(sum); + + for (size_t d = 0; d < ndims; ++d) + { + vec_T[d] = (int8_t)std::round(vec[d]); + } + + writer.write((char *)vec_T, ndims * sizeof(int8_t)); + } + + delete[] vec; + delete[] vec_T; + return 0; +} + +int block_write_uint8(std::ofstream &writer, size_t ndims, size_t npts, float norm) +{ + auto vec = new float[ndims]; + auto vec_T = new int8_t[ndims]; + + std::random_device rd{}; + std::mt19937 gen{rd()}; + std::normal_distribution<> normal_rand{0, 1}; + + for (size_t i = 0; i < npts; i++) + { + float sum = 0; + for (size_t d = 0; d < ndims; ++d) + vec[d] = (float)normal_rand(gen); + for (size_t d = 0; d < ndims; ++d) + sum += vec[d] * vec[d]; + for (size_t d = 0; d < ndims; ++d) + vec[d] = vec[d] * norm / std::sqrt(sum); + + for (size_t d = 0; d < ndims; ++d) + { + vec_T[d] = 128 + (int8_t)std::round(vec[d]); + } + + writer.write((char *)vec_T, ndims * sizeof(uint8_t)); + } + + delete[] vec; + delete[] vec_T; + return 0; +} + +int main(int argc, char **argv) +{ + std::string data_type, output_file; + size_t ndims, npts; + float norm, rand_scaling; + bool normalization = false; + try + { + po::options_description desc{"Arguments"}; + + desc.add_options()("help,h", "Print information on arguments"); + + desc.add_options()("data_type", po::value(&data_type)->required(), "data type "); + desc.add_options()("output_file", po::value(&output_file)->required(), + "File name for saving the random vectors"); + desc.add_options()("ndims,D", po::value(&ndims)->required(), "Dimensoinality of the vector"); + desc.add_options()("npts,N", po::value(&npts)->required(), "Number of vectors"); + desc.add_options()("norm", po::value(&norm)->default_value(-1.0f), + "Norm of the vectors (if not specified, vectors are not normalized)"); + desc.add_options()("rand_scaling", po::value(&rand_scaling)->default_value(1.0f), + "Each vector will be scaled (if not explicitly normalized) by a factor randomly chosen from " + "[1, rand_scale]. Only applicable for floating point data"); + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &ex) + { + std::cerr << ex.what() << '\n'; + return -1; + } + + if (data_type != std::string("float") && data_type != std::string("int8") && data_type != std::string("uint8")) + { + std::cout << "Unsupported type. float, int8 and uint8 types are supported." << std::endl; + return -1; + } + + if (norm > 0.0) + { + normalization = true; + } + + if (rand_scaling < 1.0) + { + std::cout << "We will only scale the vector norms randomly in [1, value], so value must be >= 1." << std::endl; + return -1; + } + + if ((rand_scaling > 1.0) && (normalization == true)) + { + std::cout << "Data cannot be normalized and randomly scaled at same time. Use one or the other." << std::endl; + return -1; + } + + if (data_type == std::string("int8") || data_type == std::string("uint8")) + { + if (norm > 127) + { + std::cerr << "Error: for int8/uint8 datatypes, L2 norm can not be " + "greater " + "than 127" + << std::endl; + return -1; + } + if (rand_scaling > 1.0) + { + std::cout << "Data scaling only supported for floating point data." << std::endl; + return -1; + } + } + + try + { + std::ofstream writer; + writer.exceptions(std::ofstream::failbit | std::ofstream::badbit); + writer.open(output_file, std::ios::binary); + auto npts_u32 = (uint32_t)npts; + auto ndims_u32 = (uint32_t)ndims; + writer.write((char *)&npts_u32, sizeof(uint32_t)); + writer.write((char *)&ndims_u32, sizeof(uint32_t)); + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + std::cout << "# blks: " << nblks << std::endl; + + int ret = 0; + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + if (data_type == std::string("float")) + { + ret = block_write_float(writer, ndims, cblk_size, normalization, norm, rand_scaling); + } + else if (data_type == std::string("int8")) + { + ret = block_write_int8(writer, ndims, cblk_size, norm); + } + else if (data_type == std::string("uint8")) + { + ret = block_write_uint8(writer, ndims, cblk_size, norm); + } + if (ret == 0) + std::cout << "Block #" << i << " written" << std::endl; + else + { + writer.close(); + std::cout << "failed to write" << std::endl; + return -1; + } + } + writer.close(); + } + catch (const std::exception &e) + { + std::cout << std::string(e.what()) << std::endl; + diskann::cerr << "Index build failed." << std::endl; + return -1; + } + + return 0; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/simulate_aggregate_recall.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/simulate_aggregate_recall.cpp new file mode 100644 index 0000000..73c4ea0 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/simulate_aggregate_recall.cpp @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include + +inline float aggregate_recall(const uint32_t k_aggr, const uint32_t k, const uint32_t npart, uint32_t *count, + const std::vector &recalls) +{ + float found = 0; + for (uint32_t i = 0; i < npart; ++i) + { + size_t max_found = std::min(count[i], k); + found += recalls[max_found - 1] * max_found; + } + return found / (float)k_aggr; +} + +void simulate(const uint32_t k_aggr, const uint32_t k, const uint32_t npart, const uint32_t nsim, + const std::vector &recalls) +{ + std::random_device r; + std::default_random_engine randeng(r()); + std::uniform_int_distribution uniform_dist(0, npart - 1); + + uint32_t *count = new uint32_t[npart]; + double aggr_recall = 0; + + for (uint32_t i = 0; i < nsim; ++i) + { + for (uint32_t p = 0; p < npart; ++p) + { + count[p] = 0; + } + for (uint32_t t = 0; t < k_aggr; ++t) + { + count[uniform_dist(randeng)]++; + } + aggr_recall += aggregate_recall(k_aggr, k, npart, count, recalls); + } + + std::cout << "Aggregate recall is " << aggr_recall / (double)nsim << std::endl; + delete[] count; +} + +int main(int argc, char **argv) +{ + if (argc < 6) + { + std::cout << argv[0] << " k_aggregate k_out npart nsim recall@1 recall@2 ... recall@k" << std::endl; + exit(-1); + } + + const uint32_t k_aggr = atoi(argv[1]); + const uint32_t k = atoi(argv[2]); + const uint32_t npart = atoi(argv[3]); + const uint32_t nsim = atoi(argv[4]); + + std::vector recalls; + for (int ctr = 5; ctr < argc; ctr++) + { + recalls.push_back((float)atof(argv[ctr])); + } + + if (recalls.size() != k) + { + std::cerr << "Please input k numbers for recall@1, recall@2 .. recall@k" << std::endl; + } + if (k_aggr > npart * k) + { + std::cerr << "k_aggr must be <= k * npart" << std::endl; + exit(-1); + } + if (nsim <= npart * k_aggr) + { + std::cerr << "Choose nsim > npart*k_aggr" << std::endl; + exit(-1); + } + + simulate(k_aggr, k, npart, nsim, recalls); + + return 0; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/stats_label_data.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/stats_label_data.cpp new file mode 100644 index 0000000..3342672 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/stats_label_data.cpp @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" + +#ifndef _WINDOWS +#include +#include +#include +#include +#else +#include +#endif +namespace po = boost::program_options; + +void stats_analysis(const std::string labels_file, std::string univeral_label, uint32_t density = 10) +{ + std::string token, line; + std::ifstream labels_stream(labels_file); + std::unordered_map label_counts; + std::string label_with_max_points; + uint32_t max_points = 0; + long long sum = 0; + long long point_cnt = 0; + float avg_labels_per_pt, mean_label_size; + + std::vector labels_per_point; + uint32_t dense_pts = 0; + if (labels_stream.is_open()) + { + while (getline(labels_stream, line)) + { + point_cnt++; + std::stringstream iss(line); + uint32_t lbl_cnt = 0; + while (getline(iss, token, ',')) + { + lbl_cnt++; + token.erase(std::remove(token.begin(), token.end(), '\n'), token.end()); + token.erase(std::remove(token.begin(), token.end(), '\r'), token.end()); + if (label_counts.find(token) == label_counts.end()) + label_counts[token] = 0; + label_counts[token]++; + } + if (lbl_cnt >= density) + { + dense_pts++; + } + labels_per_point.emplace_back(lbl_cnt); + } + } + + std::cout << "fraction of dense points with >= " << density + << " labels = " << (float)dense_pts / (float)labels_per_point.size() << std::endl; + std::sort(labels_per_point.begin(), labels_per_point.end()); + + std::vector> label_count_vec; + + for (auto it = label_counts.begin(); it != label_counts.end(); it++) + { + auto &lbl = *it; + label_count_vec.emplace_back(std::make_pair(lbl.first, lbl.second)); + if (lbl.second > max_points) + { + max_points = lbl.second; + label_with_max_points = lbl.first; + } + sum += lbl.second; + } + + sort(label_count_vec.begin(), label_count_vec.end(), + [](const std::pair &lhs, const std::pair &rhs) { + return lhs.second < rhs.second; + }); + + for (float p = 0; p < 1; p += 0.05) + { + std::cout << "Percentile " << (100 * p) << "\t" << label_count_vec[(size_t)(p * label_count_vec.size())].first + << " with count=" << label_count_vec[(size_t)(p * label_count_vec.size())].second << std::endl; + } + + std::cout << "Most common label " + << "\t" << label_count_vec[label_count_vec.size() - 1].first + << " with count=" << label_count_vec[label_count_vec.size() - 1].second << std::endl; + if (label_count_vec.size() > 1) + std::cout << "Second common label " + << "\t" << label_count_vec[label_count_vec.size() - 2].first + << " with count=" << label_count_vec[label_count_vec.size() - 2].second << std::endl; + if (label_count_vec.size() > 2) + std::cout << "Third common label " + << "\t" << label_count_vec[label_count_vec.size() - 3].first + << " with count=" << label_count_vec[label_count_vec.size() - 3].second << std::endl; + avg_labels_per_pt = sum / (float)point_cnt; + mean_label_size = sum / (float)label_counts.size(); + std::cout << "Total number of points = " << point_cnt << ", number of labels = " << label_counts.size() + << std::endl; + std::cout << "Average number of labels per point = " << avg_labels_per_pt << std::endl; + std::cout << "Mean label size excluding 0 = " << mean_label_size << std::endl; + std::cout << "Most popular label is " << label_with_max_points << " with " << max_points << " pts" << std::endl; +} + +int main(int argc, char **argv) +{ + std::string labels_file, universal_label; + uint32_t density; + + po::options_description desc{"Arguments"}; + try + { + desc.add_options()("help,h", "Print information on arguments"); + desc.add_options()("labels_file", po::value(&labels_file)->required(), + "path to labels data file."); + desc.add_options()("universal_label", po::value(&universal_label)->required(), + "Universal label used in labels file."); + desc.add_options()("density", po::value(&density)->default_value(1), + "Number of labels each point in labels file, defaults to 1"); + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + if (vm.count("help")) + { + std::cout << desc; + return 0; + } + po::notify(vm); + } + catch (const std::exception &e) + { + std::cerr << e.what() << '\n'; + return -1; + } + stats_analysis(labels_file, universal_label, density); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/tsv_to_bin.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/tsv_to_bin.cpp new file mode 100644 index 0000000..c590a8f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/tsv_to_bin.cpp @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +void block_convert_float(std::ifstream &reader, std::ofstream &writer, size_t npts, size_t ndims) +{ + auto read_buf = new float[npts * (ndims + 1)]; + + auto cursor = read_buf; + float val; + + for (size_t i = 0; i < npts; i++) + { + for (size_t d = 0; d < ndims; ++d) + { + reader >> val; + *cursor = val; + cursor++; + } + } + writer.write((char *)read_buf, npts * ndims * sizeof(float)); + delete[] read_buf; +} + +void block_convert_int8(std::ifstream &reader, std::ofstream &writer, size_t npts, size_t ndims) +{ + auto read_buf = new int8_t[npts * (ndims + 1)]; + + auto cursor = read_buf; + int val; + + for (size_t i = 0; i < npts; i++) + { + for (size_t d = 0; d < ndims; ++d) + { + reader >> val; + *cursor = (int8_t)val; + cursor++; + } + } + writer.write((char *)read_buf, npts * ndims * sizeof(uint8_t)); + delete[] read_buf; +} + +void block_convert_uint8(std::ifstream &reader, std::ofstream &writer, size_t npts, size_t ndims) +{ + auto read_buf = new uint8_t[npts * (ndims + 1)]; + + auto cursor = read_buf; + int val; + + for (size_t i = 0; i < npts; i++) + { + for (size_t d = 0; d < ndims; ++d) + { + reader >> val; + *cursor = (uint8_t)val; + cursor++; + } + } + writer.write((char *)read_buf, npts * ndims * sizeof(uint8_t)); + delete[] read_buf; +} + +int main(int argc, char **argv) +{ + if (argc != 6) + { + std::cout << argv[0] + << " input_filename.tsv output_filename.bin " + "dim num_pts>" + << std::endl; + exit(-1); + } + + if (std::string(argv[1]) != std::string("float") && std::string(argv[1]) != std::string("int8") && + std::string(argv[1]) != std::string("uint8")) + { + std::cout << "Unsupported type. float, int8 and uint8 types are supported." << std::endl; + } + + size_t ndims = atoi(argv[4]); + size_t npts = atoi(argv[5]); + + std::ifstream reader(argv[2], std::ios::binary | std::ios::ate); + // size_t fsize = reader.tellg(); + reader.seekg(0, std::ios::beg); + reader.seekg(0, std::ios::beg); + + size_t blk_size = 131072; + size_t nblks = ROUND_UP(npts, blk_size) / blk_size; + std::cout << "# blks: " << nblks << std::endl; + std::ofstream writer(argv[3], std::ios::binary); + auto npts_u32 = (uint32_t)npts; + auto ndims_u32 = (uint32_t)ndims; + writer.write((char *)&npts_u32, sizeof(uint32_t)); + writer.write((char *)&ndims_u32, sizeof(uint32_t)); + + for (size_t i = 0; i < nblks; i++) + { + size_t cblk_size = std::min(npts - i * blk_size, blk_size); + if (std::string(argv[1]) == std::string("float")) + { + block_convert_float(reader, writer, cblk_size, ndims); + } + else if (std::string(argv[1]) == std::string("int8")) + { + block_convert_int8(reader, writer, cblk_size, ndims); + } + else if (std::string(argv[1]) == std::string("uint8")) + { + block_convert_uint8(reader, writer, cblk_size, ndims); + } + std::cout << "Block #" << i << " written" << std::endl; + } + + reader.close(); + writer.close(); +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint32_to_uint8.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint32_to_uint8.cpp new file mode 100644 index 0000000..87b6fb8 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint32_to_uint8.cpp @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::cout << argv[0] << " input_uint32_bin output_int8_bin" << std::endl; + exit(-1); + } + + uint32_t *input; + size_t npts, nd; + diskann::load_bin(argv[1], input, npts, nd); + uint8_t *output = new uint8_t[npts * nd]; + diskann::convert_types(input, output, npts, nd); + diskann::save_bin(argv[2], output, npts, nd); + delete[] output; + delete[] input; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint8_to_float.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint8_to_float.cpp new file mode 100644 index 0000000..6415b7c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/uint8_to_float.cpp @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include "utils.h" + +int main(int argc, char **argv) +{ + if (argc != 3) + { + std::cout << argv[0] << " input_uint8_bin output_float_bin" << std::endl; + exit(-1); + } + + uint8_t *input; + size_t npts, nd; + diskann::load_bin(argv[1], input, npts, nd); + float *output = new float[npts * nd]; + diskann::convert_types(input, output, npts, nd); + diskann::save_bin(argv[2], output, npts, nd); + delete[] output; + delete[] input; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/vector_analysis.cpp b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/vector_analysis.cpp new file mode 100644 index 0000000..009df6d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/apps/utils/vector_analysis.cpp @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "partition.h" +#include "utils.h" + +template int analyze_norm(std::string base_file) +{ + std::cout << "Analyzing data norms" << std::endl; + T *data; + size_t npts, ndims; + diskann::load_bin(base_file, data, npts, ndims); + std::vector norms(npts, 0); +#pragma omp parallel for schedule(dynamic) + for (int64_t i = 0; i < (int64_t)npts; i++) + { + for (size_t d = 0; d < ndims; d++) + norms[i] += data[i * ndims + d] * data[i * ndims + d]; + norms[i] = std::sqrt(norms[i]); + } + std::sort(norms.begin(), norms.end()); + for (int p = 0; p < 100; p += 5) + std::cout << "percentile " << p << ": " << norms[(uint64_t)(std::floor((p / 100.0) * npts))] << std::endl; + std::cout << "percentile 100" + << ": " << norms[npts - 1] << std::endl; + delete[] data; + return 0; +} + +template int normalize_base(std::string base_file, std::string out_file) +{ + std::cout << "Normalizing base" << std::endl; + T *data; + size_t npts, ndims; + diskann::load_bin(base_file, data, npts, ndims); + // std::vector norms(npts, 0); +#pragma omp parallel for schedule(dynamic) + for (int64_t i = 0; i < (int64_t)npts; i++) + { + float pt_norm = 0; + for (size_t d = 0; d < ndims; d++) + pt_norm += data[i * ndims + d] * data[i * ndims + d]; + pt_norm = std::sqrt(pt_norm); + for (size_t d = 0; d < ndims; d++) + data[i * ndims + d] = static_cast(data[i * ndims + d] / pt_norm); + } + diskann::save_bin(out_file, data, npts, ndims); + delete[] data; + return 0; +} + +template int augment_base(std::string base_file, std::string out_file, bool prep_base = true) +{ + std::cout << "Analyzing data norms" << std::endl; + T *data; + size_t npts, ndims; + diskann::load_bin(base_file, data, npts, ndims); + std::vector norms(npts, 0); + float max_norm = 0; +#pragma omp parallel for schedule(dynamic) + for (int64_t i = 0; i < (int64_t)npts; i++) + { + for (size_t d = 0; d < ndims; d++) + norms[i] += data[i * ndims + d] * data[i * ndims + d]; + max_norm = norms[i] > max_norm ? norms[i] : max_norm; + } + // std::sort(norms.begin(), norms.end()); + max_norm = std::sqrt(max_norm); + std::cout << "Max norm: " << max_norm << std::endl; + T *new_data; + size_t newdims = ndims + 1; + new_data = new T[npts * newdims]; + for (size_t i = 0; i < npts; i++) + { + if (prep_base) + { + for (size_t j = 0; j < ndims; j++) + { + new_data[i * newdims + j] = static_cast(data[i * ndims + j] / max_norm); + } + float diff = 1 - (norms[i] / (max_norm * max_norm)); + diff = diff <= 0 ? 0 : std::sqrt(diff); + new_data[i * newdims + ndims] = static_cast(diff); + if (diff <= 0) + { + std::cout << i << " has large max norm, investigate if needed. diff = " << diff << std::endl; + } + } + else + { + for (size_t j = 0; j < ndims; j++) + { + new_data[i * newdims + j] = static_cast(data[i * ndims + j] / std::sqrt(norms[i])); + } + new_data[i * newdims + ndims] = 0; + } + } + diskann::save_bin(out_file, new_data, npts, newdims); + delete[] new_data; + delete[] data; + return 0; +} + +template int aux_main(char **argv) +{ + std::string base_file(argv[2]); + uint32_t option = atoi(argv[3]); + if (option == 1) + analyze_norm(base_file); + else if (option == 2) + augment_base(base_file, std::string(argv[4]), true); + else if (option == 3) + augment_base(base_file, std::string(argv[4]), false); + else if (option == 4) + normalize_base(base_file, std::string(argv[4])); + return 0; +} + +int main(int argc, char **argv) +{ + if (argc < 4) + { + std::cout << argv[0] + << " data_type [float/int8/uint8] base_bin_file " + "[option: 1-norm analysis, 2-prep_base_for_mip, " + "3-prep_query_for_mip, 4-normalize-vecs] [out_file for " + "options 2/3/4]" + << std::endl; + exit(-1); + } + + if (std::string(argv[1]) == std::string("float")) + { + aux_main(argv); + } + else if (std::string(argv[1]) == std::string("int8")) + { + aux_main(argv); + } + else if (std::string(argv[1]) == std::string("uint8")) + { + aux_main(argv); + } + else + std::cout << "Unsupported type. Use float/int8/uint8." << std::endl; + return 0; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/clang-format.cmake b/packages/leann-backend-diskann/third_party/DiskANN/clang-format.cmake new file mode 100644 index 0000000..19bb3a8 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/clang-format.cmake @@ -0,0 +1,22 @@ +if (NOT MSVC) + message(STATUS "Setting up `make format` and `make checkformat`") + # additional target to perform clang-format run, requires clang-format + # get all project files + file(GLOB_RECURSE ALL_SOURCE_FILES include/*.h include/*.hpp python/src/*.cpp src/*.cpp src/*.hpp apps/*.cpp apps/*.hpp) + + message(status ${ALL_SOURCE_FILES}) + + add_custom_target( + format + COMMAND /usr/bin/clang-format + -i + ${ALL_SOURCE_FILES} + ) + add_custom_target( + checkformat + COMMAND /usr/bin/clang-format + --Werror + --dry-run + ${ALL_SOURCE_FILES} + ) +endif() diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_data_store.h b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_data_store.h new file mode 100644 index 0000000..89856f1 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_data_store.h @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include "types.h" +#include "windows_customizations.h" +#include "distance.h" + +namespace diskann +{ + +template class AbstractScratch; + +template class AbstractDataStore +{ + public: + AbstractDataStore(const location_t capacity, const size_t dim); + + virtual ~AbstractDataStore() = default; + + // Return number of points returned + virtual location_t load(const std::string &filename) = 0; + + // Why does store take num_pts? Since store only has capacity, but we allow + // resizing we can end up in a situation where the store has spare capacity. + // To optimize disk utilization, we pass the number of points that are "true" + // points, so that the store can discard the empty locations before saving. + virtual size_t save(const std::string &filename, const location_t num_pts) = 0; + + DISKANN_DLLEXPORT virtual location_t capacity() const; + + DISKANN_DLLEXPORT virtual size_t get_dims() const; + + // Implementers can choose to return _dim if they are not + // concerned about memory alignment. + // Some distance metrics (like l2) need data vectors to be aligned, so we + // align the dimension by padding zeros. + virtual size_t get_aligned_dim() const = 0; + + // populate the store with vectors (either from a pointer or bin file), + // potentially after pre-processing the vectors if the metric deems so + // e.g., normalizing vectors for cosine distance over floating-point vectors + // useful for bulk or static index building. + virtual void populate_data(const data_t *vectors, const location_t num_pts) = 0; + virtual void populate_data(const std::string &filename, const size_t offset) = 0; + + // save the first num_pts many vectors back to bin file + // note: cannot undo the pre-processing done in populate data + virtual void extract_data_to_bin(const std::string &filename, const location_t num_pts) = 0; + + // Returns the updated capacity of the datastore. Clients should check + // if resize actually changed the capacity to new_num_points before + // proceeding with operations. See the code below: + // auto new_capcity = data_store->resize(new_num_points); + // if ( new_capacity >= new_num_points) { + // //PROCEED + // else + // //ERROR. + virtual location_t resize(const location_t new_num_points); + + // operations on vectors + // like populate_data function, but over one vector at a time useful for + // streaming setting + virtual void get_vector(const location_t i, data_t *dest) const = 0; + virtual void set_vector(const location_t i, const data_t *const vector) = 0; + virtual void prefetch_vector(const location_t loc) = 0; + + // internal shuffle operations to move around vectors + // will bulk-move all the vectors in [old_start_loc, old_start_loc + + // num_points) to [new_start_loc, new_start_loc + num_points) and set the old + // positions to zero vectors. + virtual void move_vectors(const location_t old_start_loc, const location_t new_start_loc, + const location_t num_points) = 0; + + // same as above, without resetting the vectors in [from_loc, from_loc + + // num_points) to zero + virtual void copy_vectors(const location_t from_loc, const location_t to_loc, const location_t num_points) = 0; + + // With the PQ Data Store PR, we have also changed iterate_to_fixed_point to NOT take the query + // from the scratch object. Therefore every data store has to implement preprocess_query which + // at the least will be to copy the query into the scratch object. So making this pure virtual. + virtual void preprocess_query(const data_t *aligned_query, + AbstractScratch *query_scratch = nullptr) const = 0; + // distance functions. + virtual float get_distance(const data_t *query, const location_t loc) const = 0; + virtual void get_distance(const data_t *query, const location_t *locations, const uint32_t location_count, + float *distances, AbstractScratch *scratch_space = nullptr) const = 0; + // Specific overload for index.cpp. + virtual void get_distance(const data_t *preprocessed_query, const std::vector &ids, + std::vector &distances, AbstractScratch *scratch_space) const = 0; + virtual float get_distance(const location_t loc1, const location_t loc2) const = 0; + + // stats of the data stored in store + // Returns the point in the dataset that is closest to the mean of all points + // in the dataset + virtual location_t calculate_medoid() const = 0; + + // REFACTOR PQ TODO: Each data store knows about its distance function, so this is + // redundant. However, we don't have an OptmizedDataStore yet, and to preserve code + // compability, we are exposing this function. + virtual Distance *get_dist_fn() const = 0; + + // search helpers + // if the base data is aligned per the request of the metric, this will tell + // how to align the query vector in a consistent manner + virtual size_t get_alignment_factor() const = 0; + + protected: + // Expand the datastore to new_num_points. Returns the new capacity created, + // which should be == new_num_points in the normal case. Implementers can also + // return _capacity to indicate that there are not implementing this method. + virtual location_t expand(const location_t new_num_points) = 0; + + // Shrink the datastore to new_num_points. It is NOT an error if shrink + // doesn't reduce the capacity so callers need to check this correctly. See + // also for "default" implementation + virtual location_t shrink(const location_t new_num_points) = 0; + + location_t _capacity; + size_t _dim; +}; + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_graph_store.h b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_graph_store.h new file mode 100644 index 0000000..4d6906c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_graph_store.h @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include "types.h" + +namespace diskann +{ + +class AbstractGraphStore +{ + public: + AbstractGraphStore(const size_t total_pts, const size_t reserve_graph_degree) + : _capacity(total_pts), _reserve_graph_degree(reserve_graph_degree) + { + } + + virtual ~AbstractGraphStore() = default; + + // returns tuple of + virtual std::tuple load(const std::string &index_path_prefix, + const size_t num_points) = 0; + virtual int store(const std::string &index_path_prefix, const size_t num_points, const size_t num_fz_points, + const uint32_t start) = 0; + + // not synchronised, user should use lock when necvessary. + virtual const std::vector &get_neighbours(const location_t i) const = 0; + virtual void add_neighbour(const location_t i, location_t neighbour_id) = 0; + virtual void clear_neighbours(const location_t i) = 0; + virtual void swap_neighbours(const location_t a, location_t b) = 0; + + virtual void set_neighbours(const location_t i, std::vector &neighbours) = 0; + + virtual size_t resize_graph(const size_t new_size) = 0; + virtual void clear_graph() = 0; + + virtual uint32_t get_max_observed_degree() = 0; + + // set during load + virtual size_t get_max_range_of_graph() = 0; + + // Total internal points _max_points + _num_frozen_points + size_t get_total_points() + { + return _capacity; + } + + protected: + // Internal function, changes total points when resize_graph is called. + void set_total_points(size_t new_capacity) + { + _capacity = new_capacity; + } + + size_t get_reserve_graph_degree() + { + return _reserve_graph_degree; + } + + private: + size_t _capacity; + size_t _reserve_graph_degree; +}; + +} // namespace diskann \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_index.h b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_index.h new file mode 100644 index 0000000..059866f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_index.h @@ -0,0 +1,129 @@ +#pragma once +#include "distance.h" +#include "parameters.h" +#include "utils.h" +#include "types.h" +#include "index_config.h" +#include "index_build_params.h" +#include + +namespace diskann +{ +struct consolidation_report +{ + enum status_code + { + SUCCESS = 0, + FAIL = 1, + LOCK_FAIL = 2, + INCONSISTENT_COUNT_ERROR = 3 + }; + status_code _status; + size_t _active_points, _max_points, _empty_slots, _slots_released, _delete_set_size, _num_calls_to_process_delete; + double _time; + + consolidation_report(status_code status, size_t active_points, size_t max_points, size_t empty_slots, + size_t slots_released, size_t delete_set_size, size_t num_calls_to_process_delete, + double time_secs) + : _status(status), _active_points(active_points), _max_points(max_points), _empty_slots(empty_slots), + _slots_released(slots_released), _delete_set_size(delete_set_size), + _num_calls_to_process_delete(num_calls_to_process_delete), _time(time_secs) + { + } +}; + +/* A templated independent class for intercation with Index. Uses Type Erasure to add virtual implemetation of methods +that can take any type(using std::any) and Provides a clean API that can be inherited by different type of Index. +*/ +class AbstractIndex +{ + public: + AbstractIndex() = default; + virtual ~AbstractIndex() = default; + + virtual void build(const std::string &data_file, const size_t num_points_to_load, + IndexFilterParams &build_params) = 0; + + template + void build(const data_type *data, const size_t num_points_to_load, const std::vector &tags); + + virtual void save(const char *filename, bool compact_before_save = false) = 0; + +#ifdef EXEC_ENV_OLS + virtual void load(AlignedFileReader &reader, uint32_t num_threads, uint32_t search_l) = 0; +#else + virtual void load(const char *index_file, uint32_t num_threads, uint32_t search_l) = 0; +#endif + + // For FastL2 search on optimized layout + template + void search_with_optimized_layout(const data_type *query, size_t K, size_t L, uint32_t *indices); + + // Initialize space for res_vectors before calling. + template + size_t search_with_tags(const data_type *query, const uint64_t K, const uint32_t L, tag_type *tags, + float *distances, std::vector &res_vectors, bool use_filters = false, + const std::string filter_label = ""); + + // Added search overload that takes L as parameter, so that we + // can customize L on a per-query basis without tampering with "Parameters" + // IDtype is either uint32_t or uint64_t + template + std::pair search(const data_type *query, const size_t K, const uint32_t L, IDType *indices, + float *distances = nullptr); + + // Filter support search + // IndexType is either uint32_t or uint64_t + template + std::pair search_with_filters(const DataType &query, const std::string &raw_label, + const size_t K, const uint32_t L, IndexType *indices, + float *distances); + + // insert points with labels, labels should be present for filtered index + template + int insert_point(const data_type *point, const tag_type tag, const std::vector &labels); + + // insert point for unfiltered index build. do not use with filtered index + template int insert_point(const data_type *point, const tag_type tag); + + // delete point with tag, or return -1 if point can not be deleted + template int lazy_delete(const tag_type &tag); + + // batch delete tags and populates failed tags if unabke to delete given tags. + template + void lazy_delete(const std::vector &tags, std::vector &failed_tags); + + template void get_active_tags(tsl::robin_set &active_tags); + + template void set_start_points_at_random(data_type radius, uint32_t random_seed = 0); + + virtual consolidation_report consolidate_deletes(const IndexWriteParameters ¶meters) = 0; + + virtual void optimize_index_layout() = 0; + + // memory should be allocated for vec before calling this function + template int get_vector_by_tag(tag_type &tag, data_type *vec); + + template void set_universal_label(const label_type universal_label); + + private: + virtual void _build(const DataType &data, const size_t num_points_to_load, TagVector &tags) = 0; + virtual std::pair _search(const DataType &query, const size_t K, const uint32_t L, + std::any &indices, float *distances = nullptr) = 0; + virtual std::pair _search_with_filters(const DataType &query, const std::string &filter_label, + const size_t K, const uint32_t L, std::any &indices, + float *distances) = 0; + virtual int _insert_point(const DataType &data_point, const TagType tag, Labelvector &labels) = 0; + virtual int _insert_point(const DataType &data_point, const TagType tag) = 0; + virtual int _lazy_delete(const TagType &tag) = 0; + virtual void _lazy_delete(TagVector &tags, TagVector &failed_tags) = 0; + virtual void _get_active_tags(TagRobinSet &active_tags) = 0; + virtual void _set_start_points_at_random(DataType radius, uint32_t random_seed = 0) = 0; + virtual int _get_vector_by_tag(TagType &tag, DataType &vec) = 0; + virtual size_t _search_with_tags(const DataType &query, const uint64_t K, const uint32_t L, const TagType &tags, + float *distances, DataVector &res_vectors, bool use_filters = false, + const std::string filter_label = "") = 0; + virtual void _search_with_optimized_layout(const DataType &query, size_t K, size_t L, uint32_t *indices) = 0; + virtual void _set_universal_label(const LabelType universal_label) = 0; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_scratch.h b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_scratch.h new file mode 100644 index 0000000..b42a836 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/abstract_scratch.h @@ -0,0 +1,35 @@ +#pragma once +namespace diskann +{ + +template class PQScratch; + +// By somewhat more than a coincidence, it seems that both InMemQueryScratch +// and SSDQueryScratch have the aligned query and PQScratch objects. So we +// can put them in a neat hierarchy and keep PQScratch as a standalone class. +template class AbstractScratch +{ + public: + AbstractScratch() = default; + // This class does not take any responsibilty for memory management of + // its members. It is the responsibility of the derived classes to do so. + virtual ~AbstractScratch() = default; + + // Scratch objects should not be copied + AbstractScratch(const AbstractScratch &) = delete; + AbstractScratch &operator=(const AbstractScratch &) = delete; + + data_t *aligned_query_T() + { + return _aligned_query_T; + } + PQScratch *pq_scratch() + { + return _pq_scratch; + } + + protected: + data_t *_aligned_query_T = nullptr; + PQScratch *_pq_scratch = nullptr; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/aligned_file_reader.h b/packages/leann-backend-diskann/third_party/DiskANN/include/aligned_file_reader.h new file mode 100644 index 0000000..2e2716a --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/aligned_file_reader.h @@ -0,0 +1,138 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#define MAX_IO_DEPTH 128 + +#include +#include + +#ifdef __linux__ +#include +#include +#include +#include +typedef io_context_t IOContext; +#elif __APPLE__ +#include +#include +#include + +struct IOContext +{ + int fd; + dispatch_io_t channel; + dispatch_queue_t queue; + dispatch_group_t grp; +}; +#elif _WINDOWS +#include +#include +#include + +#ifndef USE_BING_INFRA +struct IOContext +{ + HANDLE fhandle = NULL; + HANDLE iocp = NULL; + std::vector reqs; +}; +#else +#include "IDiskPriorityIO.h" +#include +// TODO: Caller code is very callous about copying IOContext objects +// all over the place. MUST verify that it won't cause leaks/logical +// errors. +// Because of such callous copying, we have to use ptr->atomic instead +// of atomic, as atomic is not copyable. +struct IOContext +{ + enum Status + { + READ_WAIT = 0, + READ_SUCCESS, + READ_FAILED, + PROCESS_COMPLETE + }; + + std::shared_ptr m_pDiskIO = nullptr; + std::shared_ptr> m_pRequests; + std::shared_ptr> m_pRequestsStatus; + + // waitonaddress on this memory to wait for IO completion signal + // reader should signal this memory after IO completion + // TODO: WindowsAlignedFileReader can be modified to take advantage of this + // and can largely share code with the file reader for Bing. + mutable volatile long m_completeCount = 0; + + IOContext() + : m_pRequestsStatus(new std::vector()), m_pRequests(new std::vector()) + { + (*m_pRequestsStatus).reserve(MAX_IO_DEPTH); + (*m_pRequests).reserve(MAX_IO_DEPTH); + } +}; +#endif + +#endif + +#include +#include +#include +#include "tsl/robin_map.h" +#include "utils.h" + +// NOTE :: all 3 fields must be 512-aligned +struct AlignedRead +{ + uint64_t offset; // where to read from + uint64_t len; // how much to read + void *buf; // where to read into + + AlignedRead() : offset(0), len(0), buf(nullptr) + { + } + + AlignedRead(uint64_t offset, uint64_t len, void *buf) : offset(offset), len(len), buf(buf) + { + assert(IS_512_ALIGNED(offset)); + assert(IS_512_ALIGNED(len)); + assert(IS_512_ALIGNED(buf)); + // assert(malloc_usable_size(buf) >= len); + } +}; + +class AlignedFileReader +{ + protected: + tsl::robin_map ctx_map; + std::mutex ctx_mut; + + public: + // returns the thread-specific context + // returns (io_context_t)(-1) if thread is not registered + virtual IOContext &get_ctx() = 0; + + virtual ~AlignedFileReader(){}; + + // register thread-id for a context + virtual void register_thread() = 0; + // de-register thread-id for a context + virtual void deregister_thread() = 0; + virtual void deregister_all_threads() = 0; + + // Open & close ops + // Blocking calls + virtual void open(const std::string &fname) = 0; + virtual void close() = 0; + + // process batch of aligned requests in parallel + // NOTE :: blocking call + virtual void read(std::vector &read_reqs, IOContext &ctx, bool async = false) = 0; + +#ifdef USE_BING_INFRA + // wait for completion of one request in a batch of requests + virtual void wait(IOContext &ctx, int &completedIndex) = 0; +#endif +}; diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/ann_exception.h b/packages/leann-backend-diskann/third_party/DiskANN/include/ann_exception.h new file mode 100644 index 0000000..55f069b --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/ann_exception.h @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include +#include "windows_customizations.h" +#include + +#ifndef _WINDOWS +#define __FUNCSIG__ __PRETTY_FUNCTION__ +#endif + +namespace diskann +{ + +class ANNException : public std::runtime_error +{ + public: + DISKANN_DLLEXPORT ANNException(const std::string &message, int errorCode); + DISKANN_DLLEXPORT ANNException(const std::string &message, int errorCode, const std::string &funcSig, + const std::string &fileName, uint32_t lineNum); + + private: + int _errorCode; +}; + +class FileException : public ANNException +{ + public: + DISKANN_DLLEXPORT FileException(const std::string &filename, std::system_error &e, const std::string &funcSig, + const std::string &fileName, uint32_t lineNum); +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/any_wrappers.h b/packages/leann-backend-diskann/third_party/DiskANN/include/any_wrappers.h new file mode 100644 index 0000000..da9005c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/any_wrappers.h @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include +#include +#include "tsl/robin_set.h" + +namespace AnyWrapper +{ + +/* + * Base Struct to hold refrence to the data. + * Note: No memory mamagement, caller need to keep object alive. + */ +struct AnyReference +{ + template AnyReference(Ty &reference) : _data(&reference) + { + } + + template Ty &get() + { + auto ptr = std::any_cast(_data); + return *ptr; + } + + private: + std::any _data; +}; +struct AnyRobinSet : public AnyReference +{ + template AnyRobinSet(const tsl::robin_set &robin_set) : AnyReference(robin_set) + { + } + template AnyRobinSet(tsl::robin_set &robin_set) : AnyReference(robin_set) + { + } +}; + +struct AnyVector : public AnyReference +{ + template AnyVector(const std::vector &vector) : AnyReference(vector) + { + } + template AnyVector(std::vector &vector) : AnyReference(vector) + { + } +}; +} // namespace AnyWrapper diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/apple_aligned_file_reader.h b/packages/leann-backend-diskann/third_party/DiskANN/include/apple_aligned_file_reader.h new file mode 100644 index 0000000..160e1ea --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/apple_aligned_file_reader.h @@ -0,0 +1,26 @@ +#pragma once +#ifdef __APPLE__ +#include "aligned_file_reader.h" + +class AppleAlignedFileReader : public AlignedFileReader +{ + private: + uint64_t file_sz; + FileHandle file_desc; + + public: + AppleAlignedFileReader(); + ~AppleAlignedFileReader(); + + IOContext &get_ctx(); + + void register_thread(); + void deregister_thread(); + void deregister_all_threads(); + + void open(const std::string &fname); + void close(); + + void read(std::vector &read_reqs, IOContext &ctx, bool async = false); +}; +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/boost_dynamic_bitset_fwd.h b/packages/leann-backend-diskann/third_party/DiskANN/include/boost_dynamic_bitset_fwd.h new file mode 100644 index 0000000..5aebb2b --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/boost_dynamic_bitset_fwd.h @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +namespace boost +{ +#ifndef BOOST_DYNAMIC_BITSET_FWD_HPP +template > class dynamic_bitset; +#endif +} // namespace boost diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/cached_io.h b/packages/leann-backend-diskann/third_party/DiskANN/include/cached_io.h new file mode 100644 index 0000000..daef2f2 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/cached_io.h @@ -0,0 +1,217 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include +#include + +#include "logger.h" +#include "ann_exception.h" + +// sequential cached reads +class cached_ifstream +{ + public: + cached_ifstream() + { + } + cached_ifstream(const std::string &filename, uint64_t cacheSize) : cache_size(cacheSize), cur_off(0) + { + reader.exceptions(std::ifstream::failbit | std::ifstream::badbit); + this->open(filename, cache_size); + } + ~cached_ifstream() + { + delete[] cache_buf; + reader.close(); + } + + void open(const std::string &filename, uint64_t cacheSize) + { + this->cur_off = 0; + + try + { + reader.open(filename, std::ios::binary | std::ios::ate); + fsize = reader.tellg(); + reader.seekg(0, std::ios::beg); + assert(reader.is_open()); + assert(cacheSize > 0); + cacheSize = (std::min)(cacheSize, fsize); + this->cache_size = cacheSize; + cache_buf = new char[cacheSize]; + reader.read(cache_buf, cacheSize); + diskann::cout << "Opened: " << filename.c_str() << ", size: " << fsize << ", cache_size: " << cacheSize + << std::endl; + } + catch (std::system_error &e) + { + throw diskann::FileException(filename, e, __FUNCSIG__, __FILE__, __LINE__); + } + } + + size_t get_file_size() + { + return fsize; + } + + void read(char *read_buf, uint64_t n_bytes) + { + assert(cache_buf != nullptr); + assert(read_buf != nullptr); + + if (n_bytes <= (cache_size - cur_off)) + { + // case 1: cache contains all data + memcpy(read_buf, cache_buf + cur_off, n_bytes); + cur_off += n_bytes; + } + else + { + // case 2: cache contains some data + uint64_t cached_bytes = cache_size - cur_off; + if (n_bytes - cached_bytes > fsize - reader.tellg()) + { + std::stringstream stream; + stream << "Reading beyond end of file" << std::endl; + stream << "n_bytes: " << n_bytes << " cached_bytes: " << cached_bytes << " fsize: " << fsize + << " current pos:" << reader.tellg() << std::endl; + diskann::cout << stream.str() << std::endl; + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + memcpy(read_buf, cache_buf + cur_off, cached_bytes); + + // go to disk and fetch more data + reader.read(read_buf + cached_bytes, n_bytes - cached_bytes); + // reset cur off + cur_off = cache_size; + + uint64_t size_left = fsize - reader.tellg(); + + if (size_left >= cache_size) + { + reader.read(cache_buf, cache_size); + cur_off = 0; + } + // note that if size_left < cache_size, then cur_off = cache_size, + // so subsequent reads will all be directly from file + } + } + + private: + // underlying ifstream + std::ifstream reader; + // # bytes to cache in one shot read + uint64_t cache_size = 0; + // underlying buf for cache + char *cache_buf = nullptr; + // offset into cache_buf for cur_pos + uint64_t cur_off = 0; + // file size + uint64_t fsize = 0; +}; + +// sequential cached writes +class cached_ofstream +{ + public: + cached_ofstream(const std::string &filename, uint64_t cache_size) : cache_size(cache_size), cur_off(0) + { + writer.exceptions(std::ifstream::failbit | std::ifstream::badbit); + try + { + writer.open(filename, std::ios::binary); + assert(writer.is_open()); + assert(cache_size > 0); + cache_buf = new char[cache_size]; + diskann::cout << "Opened: " << filename.c_str() << ", cache_size: " << cache_size << std::endl; + } + catch (std::system_error &e) + { + throw diskann::FileException(filename, e, __FUNCSIG__, __FILE__, __LINE__); + } + } + + ~cached_ofstream() + { + this->close(); + } + + void close() + { + // dump any remaining data in memory + if (cur_off > 0) + { + this->flush_cache(); + } + + if (cache_buf != nullptr) + { + delete[] cache_buf; + cache_buf = nullptr; + } + + if (writer.is_open()) + writer.close(); + diskann::cout << "Finished writing " << fsize << "B" << std::endl; + } + + size_t get_file_size() + { + return fsize; + } + // writes n_bytes from write_buf to the underlying ofstream/cache + void write(char *write_buf, uint64_t n_bytes) + { + assert(cache_buf != nullptr); + if (n_bytes <= (cache_size - cur_off)) + { + // case 1: cache can take all data + memcpy(cache_buf + cur_off, write_buf, n_bytes); + cur_off += n_bytes; + } + else + { + // case 2: cache cant take all data + // go to disk and write existing cache data + writer.write(cache_buf, cur_off); + fsize += cur_off; + // write the new data to disk + writer.write(write_buf, n_bytes); + fsize += n_bytes; + // memset all cache data and reset cur_off + memset(cache_buf, 0, cache_size); + cur_off = 0; + } + } + + void flush_cache() + { + assert(cache_buf != nullptr); + writer.write(cache_buf, cur_off); + fsize += cur_off; + memset(cache_buf, 0, cache_size); + cur_off = 0; + } + + void reset() + { + flush_cache(); + writer.seekp(0); + } + + private: + // underlying ofstream + std::ofstream writer; + // # bytes to cache for one shot write + uint64_t cache_size = 0; + // underlying buf for cache + char *cache_buf = nullptr; + // offset into cache_buf for cur_pos + uint64_t cur_off = 0; + + // file size + uint64_t fsize = 0; +}; diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/common_includes.h b/packages/leann-backend-diskann/third_party/DiskANN/include/common_includes.h new file mode 100644 index 0000000..e1a51bd --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/common_includes.h @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/concurrent_queue.h b/packages/leann-backend-diskann/third_party/DiskANN/include/concurrent_queue.h new file mode 100644 index 0000000..1e57bbf --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/concurrent_queue.h @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include + +namespace diskann +{ + +template class ConcurrentQueue +{ + typedef std::chrono::microseconds chrono_us_t; + typedef std::unique_lock mutex_locker; + + std::queue q; + std::mutex mut; + std::mutex push_mut; + std::mutex pop_mut; + std::condition_variable push_cv; + std::condition_variable pop_cv; + T null_T; + + public: + ConcurrentQueue() + { + } + + ConcurrentQueue(T nullT) + { + this->null_T = nullT; + } + + ~ConcurrentQueue() + { + this->push_cv.notify_all(); + this->pop_cv.notify_all(); + } + + // queue stats + uint64_t size() + { + mutex_locker lk(this->mut); + uint64_t ret = q.size(); + lk.unlock(); + return ret; + } + + bool empty() + { + return (this->size() == 0); + } + + // PUSH BACK + void push(T &new_val) + { + mutex_locker lk(this->mut); + this->q.push(new_val); + lk.unlock(); + } + + template void insert(Iterator iter_begin, Iterator iter_end) + { + mutex_locker lk(this->mut); + for (Iterator it = iter_begin; it != iter_end; it++) + { + this->q.push(*it); + } + lk.unlock(); + } + + // POP FRONT + T pop() + { + mutex_locker lk(this->mut); + if (this->q.empty()) + { + lk.unlock(); + return this->null_T; + } + else + { + T ret = this->q.front(); + this->q.pop(); + // diskann::cout << "thread_id: " << std::this_thread::get_id() << + // ", ctx: " + // << ret.ctx << "\n"; + lk.unlock(); + return ret; + } + } + + // register for notifications + void wait_for_push_notify(chrono_us_t wait_time = chrono_us_t{10}) + { + mutex_locker lk(this->push_mut); + this->push_cv.wait_for(lk, wait_time); + lk.unlock(); + } + + void wait_for_pop_notify(chrono_us_t wait_time = chrono_us_t{10}) + { + mutex_locker lk(this->pop_mut); + this->pop_cv.wait_for(lk, wait_time); + lk.unlock(); + } + + // just notify functions + void push_notify_one() + { + this->push_cv.notify_one(); + } + void push_notify_all() + { + this->push_cv.notify_all(); + } + void pop_notify_one() + { + this->pop_cv.notify_one(); + } + void pop_notify_all() + { + this->pop_cv.notify_all(); + } +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/cosine_similarity.h b/packages/leann-backend-diskann/third_party/DiskANN/include/cosine_similarity.h new file mode 100644 index 0000000..539a8b0 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/cosine_similarity.h @@ -0,0 +1,285 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#ifndef __APPLE__ +#include +#include +#include +#include "simd_utils.h" +#endif + +extern bool Avx2SupportedCPU; + +#ifdef _WINDOWS +// SIMD implementation of Cosine similarity. Taken from hnsw library. + +/** + * Non-metric Space Library + * + * Authors: Bilegsaikhan Naidan (https://github.com/bileg), Leonid Boytsov + * (http://boytsov.info). With contributions from Lawrence Cayton + * (http://lcayton.com/) and others. + * + * For the complete list of contributors and further details see: + * https://github.com/searchivarius/NonMetricSpaceLib + * + * Copyright (c) 2014 + * + * This code is released under the + * Apache License Version 2.0 http://www.apache.org/licenses/. + * + */ + +namespace diskann +{ + +using namespace std; + +#define PORTABLE_ALIGN16 __declspec(align(16)) + +static float NormScalarProductSIMD2(const int8_t *pVect1, const int8_t *pVect2, uint32_t qty) +{ + if (Avx2SupportedCPU) + { + __m256 cos, p1Len, p2Len; + cos = p1Len = p2Len = _mm256_setzero_ps(); + while (qty >= 32) + { + __m256i rx = _mm256_load_si256((__m256i *)pVect1), ry = _mm256_load_si256((__m256i *)pVect2); + cos = _mm256_add_ps(cos, _mm256_mul_epi8(rx, ry)); + p1Len = _mm256_add_ps(p1Len, _mm256_mul_epi8(rx, rx)); + p2Len = _mm256_add_ps(p2Len, _mm256_mul_epi8(ry, ry)); + pVect1 += 32; + pVect2 += 32; + qty -= 32; + } + while (qty > 0) + { + __m128i rx = _mm_load_si128((__m128i *)pVect1), ry = _mm_load_si128((__m128i *)pVect2); + cos = _mm256_add_ps(cos, _mm256_mul32_pi8(rx, ry)); + p1Len = _mm256_add_ps(p1Len, _mm256_mul32_pi8(rx, rx)); + p2Len = _mm256_add_ps(p2Len, _mm256_mul32_pi8(ry, ry)); + pVect1 += 4; + pVect2 += 4; + qty -= 4; + } + cos = _mm256_hadd_ps(_mm256_hadd_ps(cos, cos), cos); + p1Len = _mm256_hadd_ps(_mm256_hadd_ps(p1Len, p1Len), p1Len); + p2Len = _mm256_hadd_ps(_mm256_hadd_ps(p2Len, p2Len), p2Len); + float denominator = max(numeric_limits::min() * 2, sqrt(p1Len.m256_f32[0] + p1Len.m256_f32[4]) * + sqrt(p2Len.m256_f32[0] + p2Len.m256_f32[4])); + float cosine = (cos.m256_f32[0] + cos.m256_f32[4]) / denominator; + + return max(float(-1), min(float(1), cosine)); + } + + __m128 cos, p1Len, p2Len; + cos = p1Len = p2Len = _mm_setzero_ps(); + __m128i rx, ry; + while (qty >= 16) + { + rx = _mm_load_si128((__m128i *)pVect1); + ry = _mm_load_si128((__m128i *)pVect2); + cos = _mm_add_ps(cos, _mm_mul_epi8(rx, ry)); + p1Len = _mm_add_ps(p1Len, _mm_mul_epi8(rx, rx)); + p2Len = _mm_add_ps(p2Len, _mm_mul_epi8(ry, ry)); + pVect1 += 16; + pVect2 += 16; + qty -= 16; + } + while (qty > 0) + { + rx = _mm_load_si128((__m128i *)pVect1); + ry = _mm_load_si128((__m128i *)pVect2); + cos = _mm_add_ps(cos, _mm_mul32_pi8(rx, ry)); + p1Len = _mm_add_ps(p1Len, _mm_mul32_pi8(rx, rx)); + p2Len = _mm_add_ps(p2Len, _mm_mul32_pi8(ry, ry)); + pVect1 += 4; + pVect2 += 4; + qty -= 4; + } + cos = _mm_hadd_ps(_mm_hadd_ps(cos, cos), cos); + p1Len = _mm_hadd_ps(_mm_hadd_ps(p1Len, p1Len), p1Len); + p2Len = _mm_hadd_ps(_mm_hadd_ps(p2Len, p2Len), p2Len); + float norm1 = p1Len.m128_f32[0]; + float norm2 = p2Len.m128_f32[0]; + + static const float eps = numeric_limits::min() * 2; + + if (norm1 < eps) + { /* + * This shouldn't normally happen for this space, but + * if it does, we don't want to get NANs + */ + if (norm2 < eps) + { + return 1; + } + return 0; + } + /* + * Sometimes due to rounding errors, we get values > 1 or < -1. + * This throws off other functions that use scalar product, e.g., acos + */ + return max(float(-1), min(float(1), cos.m128_f32[0] / sqrt(norm1) / sqrt(norm2))); +} + +static float NormScalarProductSIMD(const float *pVect1, const float *pVect2, uint32_t qty) +{ + // Didn't get significant performance gain compared with 128bit version. + static const float eps = numeric_limits::min() * 2; + + if (Avx2SupportedCPU) + { + uint32_t qty8 = qty / 8; + + const float *pEnd1 = pVect1 + 8 * qty8; + const float *pEnd2 = pVect1 + qty; + + __m256 v1, v2; + __m256 sum_prod = _mm256_set_ps(0, 0, 0, 0, 0, 0, 0, 0); + __m256 sum_square1 = sum_prod; + __m256 sum_square2 = sum_prod; + + while (pVect1 < pEnd1) + { + v1 = _mm256_loadu_ps(pVect1); + pVect1 += 8; + v2 = _mm256_loadu_ps(pVect2); + pVect2 += 8; + sum_prod = _mm256_add_ps(sum_prod, _mm256_mul_ps(v1, v2)); + sum_square1 = _mm256_add_ps(sum_square1, _mm256_mul_ps(v1, v1)); + sum_square2 = _mm256_add_ps(sum_square2, _mm256_mul_ps(v2, v2)); + } + + float PORTABLE_ALIGN16 TmpResProd[8]; + float PORTABLE_ALIGN16 TmpResSquare1[8]; + float PORTABLE_ALIGN16 TmpResSquare2[8]; + + _mm256_store_ps(TmpResProd, sum_prod); + _mm256_store_ps(TmpResSquare1, sum_square1); + _mm256_store_ps(TmpResSquare2, sum_square2); + + float sum = 0.0f; + float norm1 = 0.0f; + float norm2 = 0.0f; + for (uint32_t i = 0; i < 8; ++i) + { + sum += TmpResProd[i]; + norm1 += TmpResSquare1[i]; + norm2 += TmpResSquare2[i]; + } + + while (pVect1 < pEnd2) + { + sum += (*pVect1) * (*pVect2); + norm1 += (*pVect1) * (*pVect1); + norm2 += (*pVect2) * (*pVect2); + + ++pVect1; + ++pVect2; + } + + if (norm1 < eps) + { + return norm2 < eps ? 1.0f : 0.0f; + } + + return max(float(-1), min(float(1), sum / sqrt(norm1) / sqrt(norm2))); + } + + __m128 v1, v2; + __m128 sum_prod = _mm_set1_ps(0); + __m128 sum_square1 = sum_prod; + __m128 sum_square2 = sum_prod; + + while (qty >= 4) + { + v1 = _mm_loadu_ps(pVect1); + pVect1 += 4; + v2 = _mm_loadu_ps(pVect2); + pVect2 += 4; + sum_prod = _mm_add_ps(sum_prod, _mm_mul_ps(v1, v2)); + sum_square1 = _mm_add_ps(sum_square1, _mm_mul_ps(v1, v1)); + sum_square2 = _mm_add_ps(sum_square2, _mm_mul_ps(v2, v2)); + + qty -= 4; + } + + float sum = sum_prod.m128_f32[0] + sum_prod.m128_f32[1] + sum_prod.m128_f32[2] + sum_prod.m128_f32[3]; + float norm1 = sum_square1.m128_f32[0] + sum_square1.m128_f32[1] + sum_square1.m128_f32[2] + sum_square1.m128_f32[3]; + float norm2 = sum_square2.m128_f32[0] + sum_square2.m128_f32[1] + sum_square2.m128_f32[2] + sum_square2.m128_f32[3]; + + if (norm1 < eps) + { + return norm2 < eps ? 1.0f : 0.0f; + } + + return max(float(-1), min(float(1), sum / sqrt(norm1) / sqrt(norm2))); +} + +static float NormScalarProductSIMD2(const float *pVect1, const float *pVect2, uint32_t qty) +{ + return NormScalarProductSIMD(pVect1, pVect2, qty); +} + +template static float CosineSimilarity2(const T *p1, const T *p2, uint32_t qty) +{ + return std::max(0.0f, 1.0f - NormScalarProductSIMD2(p1, p2, qty)); +} + +// static template float CosineSimilarity2<__int8>(const __int8* pVect1, +// const __int8* pVect2, size_t qty); + +// static template float CosineSimilarity2(const float* pVect1, +// const float* pVect2, size_t qty); + +template static void CosineSimilarityNormalize(T *pVector, uint32_t qty) +{ + T sum = 0; + for (uint32_t i = 0; i < qty; ++i) + { + sum += pVector[i] * pVector[i]; + } + sum = 1 / sqrt(sum); + if (sum == 0) + { + sum = numeric_limits::min(); + } + for (uint32_t i = 0; i < qty; ++i) + { + pVector[i] *= sum; + } +} + +// template static void CosineSimilarityNormalize(float* pVector, +// size_t qty); +// template static void CosineSimilarityNormalize(double* pVector, +// size_t qty); + +template <> void CosineSimilarityNormalize(__int8 * /*pVector*/, uint32_t /*qty*/) +{ + throw std::runtime_error("For int8 type vector, you can not use cosine distance!"); +} + +template <> void CosineSimilarityNormalize(__int16 * /*pVector*/, uint32_t /*qty*/) +{ + throw std::runtime_error("For int16 type vector, you can not use cosine distance!"); +} + +template <> void CosineSimilarityNormalize(int * /*pVector*/, uint32_t /*qty*/) +{ + throw std::runtime_error("For int type vector, you can not use cosine distance!"); +} +} // namespace diskann +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/defaults.h b/packages/leann-backend-diskann/third_party/DiskANN/include/defaults.h new file mode 100644 index 0000000..ef1750f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/defaults.h @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include + +namespace diskann +{ +namespace defaults +{ +const float ALPHA = 1.2f; +const uint32_t NUM_THREADS = 0; +const uint32_t MAX_OCCLUSION_SIZE = 750; +const bool HAS_LABELS = false; +const uint32_t FILTER_LIST_SIZE = 0; +const uint32_t NUM_FROZEN_POINTS_STATIC = 0; +const uint32_t NUM_FROZEN_POINTS_DYNAMIC = 1; + +// In-mem index related limits +const float GRAPH_SLACK_FACTOR = 1.3f; + +// SSD Index related limits +const uint64_t MAX_GRAPH_DEGREE = 512; +const uint64_t SECTOR_LEN = 4096; +const uint64_t MAX_N_SECTOR_READS = 128; + +// following constants should always be specified, but are useful as a +// sensible default at cli / python boundaries +const uint32_t MAX_DEGREE = 64; +const uint32_t BUILD_LIST_SIZE = 100; +const uint32_t SATURATE_GRAPH = false; +const uint32_t SEARCH_LIST_SIZE = 100; +} // namespace defaults +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/disk_utils.h b/packages/leann-backend-diskann/third_party/DiskANN/include/disk_utils.h new file mode 100644 index 0000000..08f046d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/disk_utils.h @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef __APPLE__ +#else +#include +#endif + +#ifdef _WINDOWS +#include +typedef HANDLE FileHandle; +#else +#include +typedef int FileHandle; +#endif + +#include "cached_io.h" +#include "common_includes.h" + +#include "utils.h" +#include "windows_customizations.h" + +namespace diskann +{ +const size_t MAX_SAMPLE_POINTS_FOR_WARMUP = 100000; +const double PQ_TRAINING_SET_FRACTION = 0.1; +const double SPACE_FOR_CACHED_NODES_IN_GB = 0.25; +const double THRESHOLD_FOR_CACHING_IN_GB = 1.0; +const uint32_t NUM_NODES_TO_CACHE = 250000; +const uint32_t WARMUP_L = 20; +const uint32_t NUM_KMEANS_REPS = 12; + +template class PQFlashIndex; + +DISKANN_DLLEXPORT double get_memory_budget(const std::string &mem_budget_str); +DISKANN_DLLEXPORT double get_memory_budget(double search_ram_budget_in_gb); +DISKANN_DLLEXPORT void add_new_file_to_single_index(std::string index_file, std::string new_file); + +DISKANN_DLLEXPORT size_t calculate_num_pq_chunks(double final_index_ram_limit, size_t points_num, uint32_t dim); + +DISKANN_DLLEXPORT void read_idmap(const std::string &fname, std::vector &ivecs); + +#ifdef EXEC_ENV_OLS +template +DISKANN_DLLEXPORT T *load_warmup(MemoryMappedFiles &files, const std::string &cache_warmup_file, uint64_t &warmup_num, + uint64_t warmup_dim, uint64_t warmup_aligned_dim); +#else +template +DISKANN_DLLEXPORT T *load_warmup(const std::string &cache_warmup_file, uint64_t &warmup_num, uint64_t warmup_dim, + uint64_t warmup_aligned_dim); +#endif + +DISKANN_DLLEXPORT int merge_shards(const std::string &vamana_prefix, const std::string &vamana_suffix, + const std::string &idmaps_prefix, const std::string &idmaps_suffix, + const uint64_t nshards, uint32_t max_degree, const std::string &output_vamana, + const std::string &medoids_file, bool use_filters = false, + const std::string &labels_to_medoids_file = std::string("")); + +DISKANN_DLLEXPORT void extract_shard_labels(const std::string &in_label_file, const std::string &shard_ids_bin, + const std::string &shard_label_file); + +template +DISKANN_DLLEXPORT std::string preprocess_base_file(const std::string &infile, const std::string &indexPrefix, + diskann::Metric &distMetric); + +template +DISKANN_DLLEXPORT int build_merged_vamana_index(std::string base_file, diskann::Metric _compareMetric, uint32_t L, + uint32_t R, double sampling_rate, double ram_budget, + std::string mem_index_path, std::string medoids_file, + std::string centroids_file, size_t build_pq_bytes, bool use_opq, + uint32_t num_threads, bool use_filters = false, + const std::string &label_file = std::string(""), + const std::string &labels_to_medoids_file = std::string(""), + const std::string &universal_label = "", const uint32_t Lf = 0); + +template +DISKANN_DLLEXPORT uint32_t optimize_beamwidth(std::unique_ptr> &_pFlashIndex, + T *tuning_sample, uint64_t tuning_sample_num, + uint64_t tuning_sample_aligned_dim, uint32_t L, uint32_t nthreads, + uint32_t start_bw = 2); + +template +DISKANN_DLLEXPORT int build_disk_index( + const char *dataFilePath, const char *indexFilePath, const char *indexBuildParameters, + diskann::Metric _compareMetric, bool use_opq = false, + const std::string &codebook_prefix = "", // default is empty for no codebook pass in + bool use_filters = false, + const std::string &label_file = std::string(""), // default is empty string for no label_file + const std::string &universal_label = "", const uint32_t filter_threshold = 0, + const uint32_t Lf = 0); // default is empty string for no universal label + +template +DISKANN_DLLEXPORT void create_disk_layout(const std::string base_file, const std::string mem_index_file, + const std::string output_file, + const std::string reorder_data_file = std::string("")); + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/distance.h b/packages/leann-backend-diskann/third_party/DiskANN/include/distance.h new file mode 100644 index 0000000..7198308 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/distance.h @@ -0,0 +1,236 @@ +#pragma once +#include "windows_customizations.h" +#include +#include + +namespace diskann +{ +enum Metric +{ + L2 = 0, + INNER_PRODUCT = 1, + COSINE = 2, + FAST_L2 = 3 +}; + +template class Distance +{ + public: + DISKANN_DLLEXPORT Distance(diskann::Metric dist_metric) : _distance_metric(dist_metric) + { + } + + // distance comparison function + DISKANN_DLLEXPORT virtual float compare(const T *a, const T *b, uint32_t length) const = 0; + + // Needed only for COSINE-BYTE and INNER_PRODUCT-BYTE + DISKANN_DLLEXPORT virtual float compare(const T *a, const T *b, const float normA, const float normB, + uint32_t length) const; + + // For MIPS, normalization adds an extra dimension to the vectors. + // This function lets callers know if the normalization process + // changes the dimension. + DISKANN_DLLEXPORT virtual uint32_t post_normalization_dimension(uint32_t orig_dimension) const; + + DISKANN_DLLEXPORT virtual diskann::Metric get_metric() const; + + // This is for efficiency. If no normalization is required, the callers + // can simply ignore the normalize_data_for_build() function. + DISKANN_DLLEXPORT virtual bool preprocessing_required() const; + + // Check the preprocessing_required() function before calling this. + // Clients can call the function like this: + // + // if (metric->preprocessing_required()){ + // T* normalized_data_batch; + // Split data into batches of batch_size and for each, call: + // metric->preprocess_base_points(data_batch, batch_size); + // + // TODO: This does not take into account the case for SSD inner product + // where the dimensions change after normalization. + DISKANN_DLLEXPORT virtual void preprocess_base_points(T *original_data, const size_t orig_dim, + const size_t num_points); + + // Invokes normalization for a single vector during search. The scratch space + // has to be created by the caller keeping track of the fact that + // normalization might change the dimension of the query vector. + DISKANN_DLLEXPORT virtual void preprocess_query(const T *query_vec, const size_t query_dim, T *scratch_query); + + // If an algorithm has a requirement that some data be aligned to a certain + // boundary it can use this function to indicate that requirement. Currently, + // we are setting it to 8 because that works well for AVX2. If we have AVX512 + // implementations of distance algos, they might have to set this to 16 + // (depending on how they are implemented) + DISKANN_DLLEXPORT virtual size_t get_required_alignment() const; + + // Providing a default implementation for the virtual destructor because we + // don't expect most metric implementations to need it. + DISKANN_DLLEXPORT virtual ~Distance() = default; + + protected: + diskann::Metric _distance_metric; + size_t _alignment_factor = 8; +}; + +class DistanceCosineInt8 : public Distance +{ + public: + DistanceCosineInt8() : Distance(diskann::Metric::COSINE) + { + } + DISKANN_DLLEXPORT virtual float compare(const int8_t *a, const int8_t *b, uint32_t length) const; +}; + +class DistanceL2Int8 : public Distance +{ + public: + DistanceL2Int8() : Distance(diskann::Metric::L2) + { + } + DISKANN_DLLEXPORT virtual float compare(const int8_t *a, const int8_t *b, uint32_t size) const; +}; + +// AVX implementations. Borrowed from HNSW code. +class AVXDistanceL2Int8 : public Distance +{ + public: + AVXDistanceL2Int8() : Distance(diskann::Metric::L2) + { + } + DISKANN_DLLEXPORT virtual float compare(const int8_t *a, const int8_t *b, uint32_t length) const; +}; + +class DistanceCosineFloat : public Distance +{ + public: + DistanceCosineFloat() : Distance(diskann::Metric::COSINE) + { + } + DISKANN_DLLEXPORT virtual float compare(const float *a, const float *b, uint32_t length) const; +}; + +class DistanceL2Float : public Distance +{ + public: + DistanceL2Float() : Distance(diskann::Metric::L2) + { + } + +#ifdef _WINDOWS + DISKANN_DLLEXPORT virtual float compare(const float *a, const float *b, uint32_t size) const; +#else + DISKANN_DLLEXPORT virtual float compare(const float *a, const float *b, uint32_t size) const __attribute__((hot)); +#endif +}; + +class AVXDistanceL2Float : public Distance +{ + public: + AVXDistanceL2Float() : Distance(diskann::Metric::L2) + { + } + DISKANN_DLLEXPORT virtual float compare(const float *a, const float *b, uint32_t length) const; +}; + +template class SlowDistanceL2 : public Distance +{ + public: + SlowDistanceL2() : Distance(diskann::Metric::L2) + { + } + DISKANN_DLLEXPORT virtual float compare(const T *a, const T *b, uint32_t length) const; +}; + +class SlowDistanceCosineUInt8 : public Distance +{ + public: + SlowDistanceCosineUInt8() : Distance(diskann::Metric::COSINE) + { + } + DISKANN_DLLEXPORT virtual float compare(const uint8_t *a, const uint8_t *b, uint32_t length) const; +}; + +class DistanceL2UInt8 : public Distance +{ + public: + DistanceL2UInt8() : Distance(diskann::Metric::L2) + { + } + DISKANN_DLLEXPORT virtual float compare(const uint8_t *a, const uint8_t *b, uint32_t size) const; +}; + +template class DistanceInnerProduct : public Distance +{ + public: + DistanceInnerProduct() : Distance(diskann::Metric::INNER_PRODUCT) + { + } + + DistanceInnerProduct(diskann::Metric metric) : Distance(metric) + { + } + inline float inner_product(const T *a, const T *b, unsigned size) const; + + inline float compare(const T *a, const T *b, unsigned size) const + { + float result = inner_product(a, b, size); + // if (result < 0) + // return std::numeric_limits::max(); + // else + return -result; + } +}; + +template class DistanceFastL2 : public DistanceInnerProduct +{ + // currently defined only for float. + // templated for future use. + public: + DistanceFastL2() : DistanceInnerProduct(diskann::Metric::FAST_L2) + { + } + float norm(const T *a, unsigned size) const; + float compare(const T *a, const T *b, float norm, unsigned size) const; +}; + +class AVXDistanceInnerProductFloat : public Distance +{ + public: + AVXDistanceInnerProductFloat() : Distance(diskann::Metric::INNER_PRODUCT) + { + } + DISKANN_DLLEXPORT virtual float compare(const float *a, const float *b, uint32_t length) const; +}; + +class AVXNormalizedCosineDistanceFloat : public Distance +{ + private: + AVXDistanceInnerProductFloat _innerProduct; + + protected: + void normalize_and_copy(const float *a, uint32_t length, float *a_norm) const; + + public: + AVXNormalizedCosineDistanceFloat() : Distance(diskann::Metric::COSINE) + { + } + DISKANN_DLLEXPORT virtual float compare(const float *a, const float *b, uint32_t length) const override + { + // Inner product returns negative values to indicate distance. + // This will ensure that cosine is between -1 and 1. + return 1.0f + _innerProduct.compare(a, b, length); + } + DISKANN_DLLEXPORT virtual uint32_t post_normalization_dimension(uint32_t orig_dimension) const override; + + DISKANN_DLLEXPORT virtual bool preprocessing_required() const override; + + DISKANN_DLLEXPORT virtual void preprocess_base_points(float *original_data, const size_t orig_dim, + const size_t num_points) override; + + DISKANN_DLLEXPORT virtual void preprocess_query(const float *query_vec, const size_t query_dim, + float *scratch_query_vector) override; +}; + +template Distance *get_distance_function(Metric m); + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/embedding.pb.h b/packages/leann-backend-diskann/third_party/DiskANN/include/embedding.pb.h new file mode 100644 index 0000000..9f5c2b7 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/embedding.pb.h @@ -0,0 +1,675 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: embedding.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_embedding_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_embedding_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3012000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3012004 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_embedding_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_embedding_2eproto { + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; + static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; + static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_embedding_2eproto; +namespace protoembedding { +class NodeEmbeddingRequest; +class NodeEmbeddingRequestDefaultTypeInternal; +extern NodeEmbeddingRequestDefaultTypeInternal _NodeEmbeddingRequest_default_instance_; +class NodeEmbeddingResponse; +class NodeEmbeddingResponseDefaultTypeInternal; +extern NodeEmbeddingResponseDefaultTypeInternal _NodeEmbeddingResponse_default_instance_; +} // namespace protoembedding +PROTOBUF_NAMESPACE_OPEN +template<> ::protoembedding::NodeEmbeddingRequest* Arena::CreateMaybeMessage<::protoembedding::NodeEmbeddingRequest>(Arena*); +template<> ::protoembedding::NodeEmbeddingResponse* Arena::CreateMaybeMessage<::protoembedding::NodeEmbeddingResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace protoembedding { + +// =================================================================== + +class NodeEmbeddingRequest PROTOBUF_FINAL : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protoembedding.NodeEmbeddingRequest) */ { + public: + inline NodeEmbeddingRequest() : NodeEmbeddingRequest(nullptr) {}; + virtual ~NodeEmbeddingRequest(); + + NodeEmbeddingRequest(const NodeEmbeddingRequest& from); + NodeEmbeddingRequest(NodeEmbeddingRequest&& from) noexcept + : NodeEmbeddingRequest() { + *this = ::std::move(from); + } + + inline NodeEmbeddingRequest& operator=(const NodeEmbeddingRequest& from) { + CopyFrom(from); + return *this; + } + inline NodeEmbeddingRequest& operator=(NodeEmbeddingRequest&& from) noexcept { + if (GetArena() == from.GetArena()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const NodeEmbeddingRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const NodeEmbeddingRequest* internal_default_instance() { + return reinterpret_cast( + &_NodeEmbeddingRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(NodeEmbeddingRequest& a, NodeEmbeddingRequest& b) { + a.Swap(&b); + } + inline void Swap(NodeEmbeddingRequest* other) { + if (other == this) return; + if (GetArena() == other->GetArena()) { + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(NodeEmbeddingRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetArena() == other->GetArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline NodeEmbeddingRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + NodeEmbeddingRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const NodeEmbeddingRequest& from); + void MergeFrom(const NodeEmbeddingRequest& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(NodeEmbeddingRequest* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "protoembedding.NodeEmbeddingRequest"; + } + protected: + explicit NodeEmbeddingRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_embedding_2eproto); + return ::descriptor_table_embedding_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNodeIdsFieldNumber = 1, + }; + // repeated uint32 node_ids = 1; + int node_ids_size() const; + private: + int _internal_node_ids_size() const; + public: + void clear_node_ids(); + private: + ::PROTOBUF_NAMESPACE_ID::uint32 _internal_node_ids(int index) const; + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& + _internal_node_ids() const; + void _internal_add_node_ids(::PROTOBUF_NAMESPACE_ID::uint32 value); + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* + _internal_mutable_node_ids(); + public: + ::PROTOBUF_NAMESPACE_ID::uint32 node_ids(int index) const; + void set_node_ids(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value); + void add_node_ids(::PROTOBUF_NAMESPACE_ID::uint32 value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& + node_ids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* + mutable_node_ids(); + + // @@protoc_insertion_point(class_scope:protoembedding.NodeEmbeddingRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 > node_ids_; + mutable std::atomic _node_ids_cached_byte_size_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_embedding_2eproto; +}; +// ------------------------------------------------------------------- + +class NodeEmbeddingResponse PROTOBUF_FINAL : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:protoembedding.NodeEmbeddingResponse) */ { + public: + inline NodeEmbeddingResponse() : NodeEmbeddingResponse(nullptr) {}; + virtual ~NodeEmbeddingResponse(); + + NodeEmbeddingResponse(const NodeEmbeddingResponse& from); + NodeEmbeddingResponse(NodeEmbeddingResponse&& from) noexcept + : NodeEmbeddingResponse() { + *this = ::std::move(from); + } + + inline NodeEmbeddingResponse& operator=(const NodeEmbeddingResponse& from) { + CopyFrom(from); + return *this; + } + inline NodeEmbeddingResponse& operator=(NodeEmbeddingResponse&& from) noexcept { + if (GetArena() == from.GetArena()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return GetMetadataStatic().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return GetMetadataStatic().reflection; + } + static const NodeEmbeddingResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const NodeEmbeddingResponse* internal_default_instance() { + return reinterpret_cast( + &_NodeEmbeddingResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(NodeEmbeddingResponse& a, NodeEmbeddingResponse& b) { + a.Swap(&b); + } + inline void Swap(NodeEmbeddingResponse* other) { + if (other == this) return; + if (GetArena() == other->GetArena()) { + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(NodeEmbeddingResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetArena() == other->GetArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + inline NodeEmbeddingResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + NodeEmbeddingResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final; + void CopyFrom(const NodeEmbeddingResponse& from); + void MergeFrom(const NodeEmbeddingResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize( + ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + inline void SharedCtor(); + inline void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(NodeEmbeddingResponse* other); + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "protoembedding.NodeEmbeddingResponse"; + } + protected: + explicit NodeEmbeddingResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + private: + static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_embedding_2eproto); + return ::descriptor_table_embedding_2eproto.file_level_metadata[kIndexInFileMessages]; + } + + public: + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kDimensionsFieldNumber = 2, + kMissingIdsFieldNumber = 3, + kEmbeddingsDataFieldNumber = 1, + }; + // repeated int32 dimensions = 2; + int dimensions_size() const; + private: + int _internal_dimensions_size() const; + public: + void clear_dimensions(); + private: + ::PROTOBUF_NAMESPACE_ID::int32 _internal_dimensions(int index) const; + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& + _internal_dimensions() const; + void _internal_add_dimensions(::PROTOBUF_NAMESPACE_ID::int32 value); + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* + _internal_mutable_dimensions(); + public: + ::PROTOBUF_NAMESPACE_ID::int32 dimensions(int index) const; + void set_dimensions(int index, ::PROTOBUF_NAMESPACE_ID::int32 value); + void add_dimensions(::PROTOBUF_NAMESPACE_ID::int32 value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& + dimensions() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* + mutable_dimensions(); + + // repeated uint32 missing_ids = 3; + int missing_ids_size() const; + private: + int _internal_missing_ids_size() const; + public: + void clear_missing_ids(); + private: + ::PROTOBUF_NAMESPACE_ID::uint32 _internal_missing_ids(int index) const; + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& + _internal_missing_ids() const; + void _internal_add_missing_ids(::PROTOBUF_NAMESPACE_ID::uint32 value); + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* + _internal_mutable_missing_ids(); + public: + ::PROTOBUF_NAMESPACE_ID::uint32 missing_ids(int index) const; + void set_missing_ids(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value); + void add_missing_ids(::PROTOBUF_NAMESPACE_ID::uint32 value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& + missing_ids() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* + mutable_missing_ids(); + + // bytes embeddings_data = 1; + void clear_embeddings_data(); + const std::string& embeddings_data() const; + void set_embeddings_data(const std::string& value); + void set_embeddings_data(std::string&& value); + void set_embeddings_data(const char* value); + void set_embeddings_data(const void* value, size_t size); + std::string* mutable_embeddings_data(); + std::string* release_embeddings_data(); + void set_allocated_embeddings_data(std::string* embeddings_data); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + std::string* unsafe_arena_release_embeddings_data(); + GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for" + " string fields are deprecated and will be removed in a" + " future release.") + void unsafe_arena_set_allocated_embeddings_data( + std::string* embeddings_data); + private: + const std::string& _internal_embeddings_data() const; + void _internal_set_embeddings_data(const std::string& value); + std::string* _internal_mutable_embeddings_data(); + public: + + // @@protoc_insertion_point(class_scope:protoembedding.NodeEmbeddingResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 > dimensions_; + mutable std::atomic _dimensions_cached_byte_size_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 > missing_ids_; + mutable std::atomic _missing_ids_cached_byte_size_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr embeddings_data_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_embedding_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// NodeEmbeddingRequest + +// repeated uint32 node_ids = 1; +inline int NodeEmbeddingRequest::_internal_node_ids_size() const { + return node_ids_.size(); +} +inline int NodeEmbeddingRequest::node_ids_size() const { + return _internal_node_ids_size(); +} +inline void NodeEmbeddingRequest::clear_node_ids() { + node_ids_.Clear(); +} +inline ::PROTOBUF_NAMESPACE_ID::uint32 NodeEmbeddingRequest::_internal_node_ids(int index) const { + return node_ids_.Get(index); +} +inline ::PROTOBUF_NAMESPACE_ID::uint32 NodeEmbeddingRequest::node_ids(int index) const { + // @@protoc_insertion_point(field_get:protoembedding.NodeEmbeddingRequest.node_ids) + return _internal_node_ids(index); +} +inline void NodeEmbeddingRequest::set_node_ids(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value) { + node_ids_.Set(index, value); + // @@protoc_insertion_point(field_set:protoembedding.NodeEmbeddingRequest.node_ids) +} +inline void NodeEmbeddingRequest::_internal_add_node_ids(::PROTOBUF_NAMESPACE_ID::uint32 value) { + node_ids_.Add(value); +} +inline void NodeEmbeddingRequest::add_node_ids(::PROTOBUF_NAMESPACE_ID::uint32 value) { + _internal_add_node_ids(value); + // @@protoc_insertion_point(field_add:protoembedding.NodeEmbeddingRequest.node_ids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& +NodeEmbeddingRequest::_internal_node_ids() const { + return node_ids_; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& +NodeEmbeddingRequest::node_ids() const { + // @@protoc_insertion_point(field_list:protoembedding.NodeEmbeddingRequest.node_ids) + return _internal_node_ids(); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* +NodeEmbeddingRequest::_internal_mutable_node_ids() { + return &node_ids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* +NodeEmbeddingRequest::mutable_node_ids() { + // @@protoc_insertion_point(field_mutable_list:protoembedding.NodeEmbeddingRequest.node_ids) + return _internal_mutable_node_ids(); +} + +// ------------------------------------------------------------------- + +// NodeEmbeddingResponse + +// bytes embeddings_data = 1; +inline void NodeEmbeddingResponse::clear_embeddings_data() { + embeddings_data_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena()); +} +inline const std::string& NodeEmbeddingResponse::embeddings_data() const { + // @@protoc_insertion_point(field_get:protoembedding.NodeEmbeddingResponse.embeddings_data) + return _internal_embeddings_data(); +} +inline void NodeEmbeddingResponse::set_embeddings_data(const std::string& value) { + _internal_set_embeddings_data(value); + // @@protoc_insertion_point(field_set:protoembedding.NodeEmbeddingResponse.embeddings_data) +} +inline std::string* NodeEmbeddingResponse::mutable_embeddings_data() { + // @@protoc_insertion_point(field_mutable:protoembedding.NodeEmbeddingResponse.embeddings_data) + return _internal_mutable_embeddings_data(); +} +inline const std::string& NodeEmbeddingResponse::_internal_embeddings_data() const { + return embeddings_data_.Get(); +} +inline void NodeEmbeddingResponse::_internal_set_embeddings_data(const std::string& value) { + + embeddings_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena()); +} +inline void NodeEmbeddingResponse::set_embeddings_data(std::string&& value) { + + embeddings_data_.Set( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena()); + // @@protoc_insertion_point(field_set_rvalue:protoembedding.NodeEmbeddingResponse.embeddings_data) +} +inline void NodeEmbeddingResponse::set_embeddings_data(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + embeddings_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value), + GetArena()); + // @@protoc_insertion_point(field_set_char:protoembedding.NodeEmbeddingResponse.embeddings_data) +} +inline void NodeEmbeddingResponse::set_embeddings_data(const void* value, + size_t size) { + + embeddings_data_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string( + reinterpret_cast(value), size), GetArena()); + // @@protoc_insertion_point(field_set_pointer:protoembedding.NodeEmbeddingResponse.embeddings_data) +} +inline std::string* NodeEmbeddingResponse::_internal_mutable_embeddings_data() { + + return embeddings_data_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena()); +} +inline std::string* NodeEmbeddingResponse::release_embeddings_data() { + // @@protoc_insertion_point(field_release:protoembedding.NodeEmbeddingResponse.embeddings_data) + return embeddings_data_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena()); +} +inline void NodeEmbeddingResponse::set_allocated_embeddings_data(std::string* embeddings_data) { + if (embeddings_data != nullptr) { + + } else { + + } + embeddings_data_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), embeddings_data, + GetArena()); + // @@protoc_insertion_point(field_set_allocated:protoembedding.NodeEmbeddingResponse.embeddings_data) +} +inline std::string* NodeEmbeddingResponse::unsafe_arena_release_embeddings_data() { + // @@protoc_insertion_point(field_unsafe_arena_release:protoembedding.NodeEmbeddingResponse.embeddings_data) + GOOGLE_DCHECK(GetArena() != nullptr); + + return embeddings_data_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + GetArena()); +} +inline void NodeEmbeddingResponse::unsafe_arena_set_allocated_embeddings_data( + std::string* embeddings_data) { + GOOGLE_DCHECK(GetArena() != nullptr); + if (embeddings_data != nullptr) { + + } else { + + } + embeddings_data_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + embeddings_data, GetArena()); + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:protoembedding.NodeEmbeddingResponse.embeddings_data) +} + +// repeated int32 dimensions = 2; +inline int NodeEmbeddingResponse::_internal_dimensions_size() const { + return dimensions_.size(); +} +inline int NodeEmbeddingResponse::dimensions_size() const { + return _internal_dimensions_size(); +} +inline void NodeEmbeddingResponse::clear_dimensions() { + dimensions_.Clear(); +} +inline ::PROTOBUF_NAMESPACE_ID::int32 NodeEmbeddingResponse::_internal_dimensions(int index) const { + return dimensions_.Get(index); +} +inline ::PROTOBUF_NAMESPACE_ID::int32 NodeEmbeddingResponse::dimensions(int index) const { + // @@protoc_insertion_point(field_get:protoembedding.NodeEmbeddingResponse.dimensions) + return _internal_dimensions(index); +} +inline void NodeEmbeddingResponse::set_dimensions(int index, ::PROTOBUF_NAMESPACE_ID::int32 value) { + dimensions_.Set(index, value); + // @@protoc_insertion_point(field_set:protoembedding.NodeEmbeddingResponse.dimensions) +} +inline void NodeEmbeddingResponse::_internal_add_dimensions(::PROTOBUF_NAMESPACE_ID::int32 value) { + dimensions_.Add(value); +} +inline void NodeEmbeddingResponse::add_dimensions(::PROTOBUF_NAMESPACE_ID::int32 value) { + _internal_add_dimensions(value); + // @@protoc_insertion_point(field_add:protoembedding.NodeEmbeddingResponse.dimensions) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& +NodeEmbeddingResponse::_internal_dimensions() const { + return dimensions_; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >& +NodeEmbeddingResponse::dimensions() const { + // @@protoc_insertion_point(field_list:protoembedding.NodeEmbeddingResponse.dimensions) + return _internal_dimensions(); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* +NodeEmbeddingResponse::_internal_mutable_dimensions() { + return &dimensions_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::int32 >* +NodeEmbeddingResponse::mutable_dimensions() { + // @@protoc_insertion_point(field_mutable_list:protoembedding.NodeEmbeddingResponse.dimensions) + return _internal_mutable_dimensions(); +} + +// repeated uint32 missing_ids = 3; +inline int NodeEmbeddingResponse::_internal_missing_ids_size() const { + return missing_ids_.size(); +} +inline int NodeEmbeddingResponse::missing_ids_size() const { + return _internal_missing_ids_size(); +} +inline void NodeEmbeddingResponse::clear_missing_ids() { + missing_ids_.Clear(); +} +inline ::PROTOBUF_NAMESPACE_ID::uint32 NodeEmbeddingResponse::_internal_missing_ids(int index) const { + return missing_ids_.Get(index); +} +inline ::PROTOBUF_NAMESPACE_ID::uint32 NodeEmbeddingResponse::missing_ids(int index) const { + // @@protoc_insertion_point(field_get:protoembedding.NodeEmbeddingResponse.missing_ids) + return _internal_missing_ids(index); +} +inline void NodeEmbeddingResponse::set_missing_ids(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value) { + missing_ids_.Set(index, value); + // @@protoc_insertion_point(field_set:protoembedding.NodeEmbeddingResponse.missing_ids) +} +inline void NodeEmbeddingResponse::_internal_add_missing_ids(::PROTOBUF_NAMESPACE_ID::uint32 value) { + missing_ids_.Add(value); +} +inline void NodeEmbeddingResponse::add_missing_ids(::PROTOBUF_NAMESPACE_ID::uint32 value) { + _internal_add_missing_ids(value); + // @@protoc_insertion_point(field_add:protoembedding.NodeEmbeddingResponse.missing_ids) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& +NodeEmbeddingResponse::_internal_missing_ids() const { + return missing_ids_; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >& +NodeEmbeddingResponse::missing_ids() const { + // @@protoc_insertion_point(field_list:protoembedding.NodeEmbeddingResponse.missing_ids) + return _internal_missing_ids(); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* +NodeEmbeddingResponse::_internal_mutable_missing_ids() { + return &missing_ids_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >* +NodeEmbeddingResponse::mutable_missing_ids() { + // @@protoc_insertion_point(field_mutable_list:protoembedding.NodeEmbeddingResponse.missing_ids) + return _internal_mutable_missing_ids(); +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace protoembedding + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_embedding_2eproto diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/embedding_compute.h b/packages/leann-backend-diskann/third_party/DiskANN/include/embedding_compute.h new file mode 100644 index 0000000..354c9c5 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/embedding_compute.h @@ -0,0 +1,118 @@ +#pragma once + +#include +#include + +#ifdef PYBIND11_EMBEDDED +#include +#else +#include +#endif +#include +#include + +namespace py = pybind11; + +namespace diskann +{ + +class PYBIND11_EXPORT EmbeddingComputer +{ + public: + static EmbeddingComputer &getInstance() + { + static EmbeddingComputer instance; + return instance; + } + + void initialize(const std::string &model_path) + { + try + { + py::module_ sys = py::module_::import("sys"); + py::module_ os = py::module_::import("os"); + + // Add the directory containing embedd_micro.py to Python path + std::string micro_dir = "micro"; + sys.attr("path").attr("append")(micro_dir); + + // Import our module + py::module_ embedd = py::module_::import("embedd_micro"); + + // Create benchmark config + py::object config = embedd.attr("BenchmarkConfig")(model_path, // model_path + py::list(), // empty batch_sizes + 256, // seq_length + 1, // num_runs + true, // use_fp16 + false, // use_cuda_graphs + false // use_flash_attention + ); + + // Create benchmark instance + benchmark = embedd.attr("Benchmark")(config); + } + catch (const std::exception &e) + { + throw std::runtime_error("Failed to initialize Python embedding computer: " + std::string(e.what())); + } + } + + template + std::vector computeEmbeddings(const std::vector &points, size_t dim, size_t batch_size = 32) + { + try + { + // Convert points to numpy array + std::vector flattened_points; + flattened_points.reserve(points.size() * dim); + + for (const auto &point : points) + { + flattened_points.insert(flattened_points.end(), point, point + dim); + } + + py::array_t points_array({static_cast(points.size()), static_cast(dim)}, + flattened_points.data()); + + // Call compute_embeddings + py::object result = benchmark.attr("compute_embeddings")(points_array, batch_size); + + // Convert result back to C++ + py::array_t np_result = result.cast>(); + py::buffer_info buf = np_result.request(); + float *ptr = static_cast(buf.ptr); + + return std::vector(ptr, ptr + buf.size); + } + catch (const std::exception &e) + { + throw std::runtime_error("Failed to compute embeddings: " + std::string(e.what())); + } + } + + private: + EmbeddingComputer() + { +#ifdef PYBIND11_EMBEDDED + if (!Py_IsInitialized()) + { + py::initialize_interpreter(); + } +#endif + } + + ~EmbeddingComputer() + { +#ifdef PYBIND11_EMBEDDED + if (Py_IsInitialized()) + { + py::finalize_interpreter(); + } +#endif + } + + py::object benchmark; +}; + +} // namespace diskann \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/exceptions.h b/packages/leann-backend-diskann/third_party/DiskANN/include/exceptions.h new file mode 100644 index 0000000..99e4e73 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/exceptions.h @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include + +namespace diskann +{ + +class NotImplementedException : public std::logic_error +{ + public: + NotImplementedException() : std::logic_error("Function not yet implemented.") + { + } +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/filter_utils.h b/packages/leann-backend-diskann/third_party/DiskANN/include/filter_utils.h new file mode 100644 index 0000000..55f7aed --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/filter_utils.h @@ -0,0 +1,221 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef __APPLE__ +#else +#include +#endif + +#ifdef _WINDOWS +#include +typedef HANDLE FileHandle; +#else +#include +typedef int FileHandle; +#endif + +#ifndef _WINDOWS +#include +#endif + +#include "cached_io.h" +#include "common_includes.h" +#include "memory_mapper.h" +#include "utils.h" +#include "windows_customizations.h" + +// custom types (for readability) +typedef tsl::robin_set label_set; +typedef std::string path; + +// structs for returning multiple items from a function +typedef std::tuple, tsl::robin_map, tsl::robin_set> + parse_label_file_return_values; +typedef std::tuple>, uint64_t> load_label_index_return_values; + +namespace diskann +{ +template +DISKANN_DLLEXPORT void generate_label_indices(path input_data_path, path final_index_path_prefix, label_set all_labels, + unsigned R, unsigned L, float alpha, unsigned num_threads); + +DISKANN_DLLEXPORT load_label_index_return_values load_label_index(path label_index_path, + uint32_t label_number_of_points); + +template +DISKANN_DLLEXPORT std::tuple>, tsl::robin_set> parse_formatted_label_file( + path label_file); + +DISKANN_DLLEXPORT parse_label_file_return_values parse_label_file(path label_data_path, std::string universal_label); + +template +DISKANN_DLLEXPORT tsl::robin_map> generate_label_specific_vector_files_compat( + path input_data_path, tsl::robin_map labels_to_number_of_points, + std::vector point_ids_to_labels, label_set all_labels); + +/* + * For each label, generates a file containing all vectors that have said label. + * Also copies data from original bin file to new dimension-aligned file. + * + * Utilizes POSIX functions mmap and writev in order to minimize memory + * overhead, so we include an STL version as well. + * + * Each data file is saved under the following format: + * input_data_path + "_" + label + */ +#ifndef _WINDOWS +template +inline tsl::robin_map> generate_label_specific_vector_files( + path input_data_path, tsl::robin_map labels_to_number_of_points, + std::vector point_ids_to_labels, label_set all_labels) +{ +#ifndef _WINDOWS + auto file_writing_timer = std::chrono::high_resolution_clock::now(); + diskann::MemoryMapper input_data(input_data_path); + char *input_start = input_data.getBuf(); + + uint32_t number_of_points, dimension; + std::memcpy(&number_of_points, input_start, sizeof(uint32_t)); + std::memcpy(&dimension, input_start + sizeof(uint32_t), sizeof(uint32_t)); + const uint32_t VECTOR_SIZE = dimension * sizeof(T); + const size_t METADATA = 2 * sizeof(uint32_t); + if (number_of_points != point_ids_to_labels.size()) + { + std::cerr << "Error: number of points in labels file and data file differ." << std::endl; + throw; + } + + tsl::robin_map label_to_iovec_map; + tsl::robin_map label_to_curr_iovec; + tsl::robin_map> label_id_to_orig_id; + + // setup iovec list for each label + for (const auto &lbl : all_labels) + { + iovec *label_iovecs = (iovec *)malloc(labels_to_number_of_points[lbl] * sizeof(iovec)); + if (label_iovecs == nullptr) + { + throw; + } + label_to_iovec_map[lbl] = label_iovecs; + label_to_curr_iovec[lbl] = 0; + label_id_to_orig_id[lbl].reserve(labels_to_number_of_points[lbl]); + } + + // each point added to corresponding per-label iovec list + for (uint32_t point_id = 0; point_id < number_of_points; point_id++) + { + char *curr_point = input_start + METADATA + (VECTOR_SIZE * point_id); + iovec curr_iovec; + + curr_iovec.iov_base = curr_point; + curr_iovec.iov_len = VECTOR_SIZE; + for (const auto &lbl : point_ids_to_labels[point_id]) + { + *(label_to_iovec_map[lbl] + label_to_curr_iovec[lbl]) = curr_iovec; + label_to_curr_iovec[lbl]++; + label_id_to_orig_id[lbl].push_back(point_id); + } + } + + // write each label iovec to resp. file + for (const auto &lbl : all_labels) + { + int label_input_data_fd; + path curr_label_input_data_path(input_data_path + "_" + lbl); + uint32_t curr_num_pts = labels_to_number_of_points[lbl]; + + label_input_data_fd = + open(curr_label_input_data_path.c_str(), O_CREAT | O_WRONLY | O_TRUNC | O_APPEND, (mode_t)0644); + if (label_input_data_fd == -1) + throw; + + // write metadata + uint32_t metadata[2] = {curr_num_pts, dimension}; + int return_value = write(label_input_data_fd, metadata, sizeof(uint32_t) * 2); + if (return_value == -1) + { + throw; + } + + // limits on number of iovec structs per writev means we need to perform + // multiple writevs + size_t i = 0; + while (curr_num_pts > IOV_MAX) + { + return_value = writev(label_input_data_fd, (label_to_iovec_map[lbl] + (IOV_MAX * i)), IOV_MAX); + if (return_value == -1) + { + close(label_input_data_fd); + throw; + } + curr_num_pts -= IOV_MAX; + i += 1; + } + return_value = writev(label_input_data_fd, (label_to_iovec_map[lbl] + (IOV_MAX * i)), curr_num_pts); + if (return_value == -1) + { + close(label_input_data_fd); + throw; + } + + free(label_to_iovec_map[lbl]); + close(label_input_data_fd); + } + + std::chrono::duration file_writing_time = std::chrono::high_resolution_clock::now() - file_writing_timer; + std::cout << "generated " << all_labels.size() << " label-specific vector files for index building in time " + << file_writing_time.count() << "\n" + << std::endl; + + return label_id_to_orig_id; +#endif +} +#endif + +inline std::vector loadTags(const std::string &tags_file, const std::string &base_file) +{ + const bool tags_enabled = tags_file.empty() ? false : true; + std::vector location_to_tag; + if (tags_enabled) + { + size_t tag_file_ndims, tag_file_npts; + std::uint32_t *tag_data; + diskann::load_bin(tags_file, tag_data, tag_file_npts, tag_file_ndims); + if (tag_file_ndims != 1) + { + diskann::cerr << "tags file error" << std::endl; + throw diskann::ANNException("tag file error", -1, __FUNCSIG__, __FILE__, __LINE__); + } + + // check if the point count match + size_t base_file_npts, base_file_ndims; + diskann::get_bin_metadata(base_file, base_file_npts, base_file_ndims); + if (base_file_npts != tag_file_npts) + { + diskann::cerr << "point num in tags file mismatch" << std::endl; + throw diskann::ANNException("point num in tags file mismatch", -1, __FUNCSIG__, __FILE__, __LINE__); + } + + location_to_tag.assign(tag_data, tag_data + tag_file_npts); + delete[] tag_data; + } + return location_to_tag; +} + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_data_store.h b/packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_data_store.h new file mode 100644 index 0000000..0a0a617 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_data_store.h @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. +#pragma once + +#include +#include + +#include "tsl/robin_map.h" +#include "tsl/robin_set.h" +#include "tsl/sparse_map.h" +// #include "boost/dynamic_bitset.hpp" + +#include "abstract_data_store.h" + +#include "distance.h" +#include "natural_number_map.h" +#include "natural_number_set.h" +#include "aligned_file_reader.h" + +namespace diskann +{ +template class InMemDataStore : public AbstractDataStore +{ + public: + InMemDataStore(const location_t capacity, const size_t dim, std::unique_ptr> distance_fn); + virtual ~InMemDataStore(); + + virtual location_t load(const std::string &filename) override; + virtual size_t save(const std::string &filename, const location_t num_points) override; + + virtual size_t get_aligned_dim() const override; + + // Populate internal data from unaligned data while doing alignment and any + // normalization that is required. + virtual void populate_data(const data_t *vectors, const location_t num_pts) override; + virtual void populate_data(const std::string &filename, const size_t offset) override; + + virtual void extract_data_to_bin(const std::string &filename, const location_t num_pts) override; + + virtual void get_vector(const location_t i, data_t *target) const override; + virtual void set_vector(const location_t i, const data_t *const vector) override; + virtual void prefetch_vector(const location_t loc) override; + + virtual void move_vectors(const location_t old_location_start, const location_t new_location_start, + const location_t num_points) override; + virtual void copy_vectors(const location_t from_loc, const location_t to_loc, const location_t num_points) override; + + virtual void preprocess_query(const data_t *query, AbstractScratch *query_scratch) const override; + + virtual float get_distance(const data_t *preprocessed_query, const location_t loc) const override; + virtual float get_distance(const location_t loc1, const location_t loc2) const override; + + virtual void get_distance(const data_t *preprocessed_query, const location_t *locations, + const uint32_t location_count, float *distances, + AbstractScratch *scratch) const override; + virtual void get_distance(const data_t *preprocessed_query, const std::vector &ids, + std::vector &distances, AbstractScratch *scratch_space) const override; + + virtual location_t calculate_medoid() const override; + + virtual Distance *get_dist_fn() const override; + + virtual size_t get_alignment_factor() const override; + + protected: + virtual location_t expand(const location_t new_size) override; + virtual location_t shrink(const location_t new_size) override; + + virtual location_t load_impl(const std::string &filename); +#ifdef EXEC_ENV_OLS + virtual location_t load_impl(AlignedFileReader &reader); +#endif + + private: + data_t *_data = nullptr; + + size_t _aligned_dim; + + // It may seem weird to put distance metric along with the data store class, + // but this gives us perf benefits as the datastore can do distance + // computations during search and compute norms of vectors internally without + // have to copy data back and forth. + std::unique_ptr> _distance_fn; + + // in case we need to save vector norms for optimization + std::shared_ptr _pre_computed_norms; +}; + +} // namespace diskann \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_graph_store.h b/packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_graph_store.h new file mode 100644 index 0000000..d0206a7 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/in_mem_graph_store.h @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include "abstract_graph_store.h" + +namespace diskann +{ + +class InMemGraphStore : public AbstractGraphStore +{ + public: + InMemGraphStore(const size_t total_pts, const size_t reserve_graph_degree); + + // returns tuple of + virtual std::tuple load(const std::string &index_path_prefix, + const size_t num_points) override; + virtual int store(const std::string &index_path_prefix, const size_t num_points, const size_t num_frozen_points, + const uint32_t start) override; + + virtual const std::vector &get_neighbours(const location_t i) const override; + virtual void add_neighbour(const location_t i, location_t neighbour_id) override; + virtual void clear_neighbours(const location_t i) override; + virtual void swap_neighbours(const location_t a, location_t b) override; + + virtual void set_neighbours(const location_t i, std::vector &neighbors) override; + + virtual size_t resize_graph(const size_t new_size) override; + virtual void clear_graph() override; + + virtual size_t get_max_range_of_graph() override; + virtual uint32_t get_max_observed_degree() override; + + protected: + virtual std::tuple load_impl(const std::string &filename, size_t expected_num_points); +#ifdef EXEC_ENV_OLS + virtual std::tuple load_impl(AlignedFileReader &reader, size_t expected_num_points); +#endif + + int save_graph(const std::string &index_path_prefix, const size_t active_points, const size_t num_frozen_points, + const uint32_t start); + + private: + size_t _max_range_of_graph = 0; + uint32_t _max_observed_degree = 0; + + std::vector> _graph; +}; + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/index.h b/packages/leann-backend-diskann/third_party/DiskANN/include/index.h new file mode 100644 index 0000000..c4303a1 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/index.h @@ -0,0 +1,452 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include "common_includes.h" + +#ifdef EXEC_ENV_OLS +#include "aligned_file_reader.h" +#endif + +#include "distance.h" +#include "locking.h" +#include "natural_number_map.h" +#include "natural_number_set.h" +#include "neighbor.h" +#include "parameters.h" +#include "utils.h" +#include "windows_customizations.h" +#include "scratch.h" +#include "in_mem_data_store.h" +#include "in_mem_graph_store.h" +#include "abstract_index.h" + +#include "quantized_distance.h" +#include "pq_data_store.h" + +#define OVERHEAD_FACTOR 1.1 +#define EXPAND_IF_FULL 0 +#define DEFAULT_MAXC 750 + +namespace diskann +{ + +inline double estimate_ram_usage(size_t size, uint32_t dim, uint32_t datasize, uint32_t degree) +{ + double size_of_data = ((double)size) * ROUND_UP(dim, 8) * datasize; + double size_of_graph = ((double)size) * degree * sizeof(uint32_t) * defaults::GRAPH_SLACK_FACTOR; + double size_of_locks = ((double)size) * sizeof(non_recursive_mutex); + double size_of_outer_vector = ((double)size) * sizeof(ptrdiff_t); + + return OVERHEAD_FACTOR * (size_of_data + size_of_graph + size_of_locks + size_of_outer_vector); +} + +template class Index : public AbstractIndex +{ + /************************************************************************** + * + * Public functions acquire one or more of _update_lock, _consolidate_lock, + * _tag_lock, _delete_lock before calling protected functions which DO NOT + * acquire these locks. They might acquire locks on _locks[i] + * + **************************************************************************/ + + public: + // Constructor for Bulk operations and for creating the index object solely + // for loading a prexisting index. + DISKANN_DLLEXPORT Index(const IndexConfig &index_config, std::shared_ptr> data_store, + std::unique_ptr graph_store, + std::shared_ptr> pq_data_store = nullptr); + + // Constructor for incremental index + DISKANN_DLLEXPORT Index(Metric m, const size_t dim, const size_t max_points, + const std::shared_ptr index_parameters, + const std::shared_ptr index_search_params, + const size_t num_frozen_pts = 0, const bool dynamic_index = false, + const bool enable_tags = false, const bool concurrent_consolidate = false, + const bool pq_dist_build = false, const size_t num_pq_chunks = 0, + const bool use_opq = false, const bool filtered_index = false); + + DISKANN_DLLEXPORT ~Index(); + + // Saves graph, data, metadata and associated tags. + DISKANN_DLLEXPORT void save(const char *filename, bool compact_before_save = false) override; + + // Load functions +#ifdef EXEC_ENV_OLS + DISKANN_DLLEXPORT void load(AlignedFileReader &reader, uint32_t num_threads, uint32_t search_l); +#else + // Reads the number of frozen points from graph's metadata file section. + DISKANN_DLLEXPORT static size_t get_graph_num_frozen_points(const std::string &graph_file); + + DISKANN_DLLEXPORT void load(const char *index_file, uint32_t num_threads, uint32_t search_l) override; +#endif + + // get some private variables + DISKANN_DLLEXPORT size_t get_num_points(); + DISKANN_DLLEXPORT size_t get_max_points(); + + DISKANN_DLLEXPORT bool detect_common_filters(uint32_t point_id, bool search_invocation, + const std::vector &incoming_labels); + + // Batch build from a file. Optionally pass tags vector. + DISKANN_DLLEXPORT void build(const char *filename, const size_t num_points_to_load, + const std::vector &tags = std::vector()); + + // Batch build from a file. Optionally pass tags file. + DISKANN_DLLEXPORT void build(const char *filename, const size_t num_points_to_load, const char *tag_filename); + + // Batch build from a data array, which must pad vectors to aligned_dim + DISKANN_DLLEXPORT void build(const T *data, const size_t num_points_to_load, const std::vector &tags); + + // Based on filter params builds a filtered or unfiltered index + DISKANN_DLLEXPORT void build(const std::string &data_file, const size_t num_points_to_load, + IndexFilterParams &filter_params) override; + + // Filtered Support + DISKANN_DLLEXPORT void build_filtered_index(const char *filename, const std::string &label_file, + const size_t num_points_to_load, + const std::vector &tags = std::vector()); + + DISKANN_DLLEXPORT void set_universal_label(const LabelT &label); + + // Get converted integer label from string to int map (_label_map) + DISKANN_DLLEXPORT LabelT get_converted_label(const std::string &raw_label); + + // Set starting point of an index before inserting any points incrementally. + // The data count should be equal to _num_frozen_pts * _aligned_dim. + DISKANN_DLLEXPORT void set_start_points(const T *data, size_t data_count); + // Set starting points to random points on a sphere of certain radius. + // A fixed random seed can be specified for scenarios where it's important + // to have higher consistency between index builds. + DISKANN_DLLEXPORT void set_start_points_at_random(T radius, uint32_t random_seed = 0); + + // For FastL2 search on a static index, we interleave the data with graph + DISKANN_DLLEXPORT void optimize_index_layout() override; + + // For FastL2 search on optimized layout + DISKANN_DLLEXPORT void search_with_optimized_layout(const T *query, size_t K, size_t L, uint32_t *indices); + + // Added search overload that takes L as parameter, so that we + // can customize L on a per-query basis without tampering with "Parameters" + template + DISKANN_DLLEXPORT std::pair search(const T *query, const size_t K, const uint32_t L, + IDType *indices, float *distances = nullptr); + + // Initialize space for res_vectors before calling. + DISKANN_DLLEXPORT size_t search_with_tags(const T *query, const uint64_t K, const uint32_t L, TagT *tags, + float *distances, std::vector &res_vectors, bool use_filters = false, + const std::string filter_label = ""); + + // Filter support search + template + DISKANN_DLLEXPORT std::pair search_with_filters(const T *query, const LabelT &filter_label, + const size_t K, const uint32_t L, + IndexType *indices, float *distances); + + // Will fail if tag already in the index or if tag=0. + DISKANN_DLLEXPORT int insert_point(const T *point, const TagT tag); + + // Will fail if tag already in the index or if tag=0. + DISKANN_DLLEXPORT int insert_point(const T *point, const TagT tag, const std::vector &label); + + // call this before issuing deletions to sets relevant flags + DISKANN_DLLEXPORT int enable_delete(); + + // Record deleted point now and restructure graph later. Return -1 if tag + // not found, 0 if OK. + DISKANN_DLLEXPORT int lazy_delete(const TagT &tag); + + // Record deleted points now and restructure graph later. Add to failed_tags + // if tag not found. + DISKANN_DLLEXPORT void lazy_delete(const std::vector &tags, std::vector &failed_tags); + + // Call after a series of lazy deletions + // Returns number of live points left after consolidation + // If _conc_consolidates is set in the ctor, then this call can be invoked + // alongside inserts and lazy deletes, else it acquires _update_lock + DISKANN_DLLEXPORT consolidation_report consolidate_deletes(const IndexWriteParameters ¶meters) override; + + DISKANN_DLLEXPORT void prune_all_neighbors(const uint32_t max_degree, const uint32_t max_occlusion, + const float alpha); + + DISKANN_DLLEXPORT bool is_index_saved(); + + // repositions frozen points to the end of _data - if they have been moved + // during deletion + DISKANN_DLLEXPORT void reposition_frozen_point_to_end(); + DISKANN_DLLEXPORT void reposition_points(uint32_t old_location_start, uint32_t new_location_start, + uint32_t num_locations); + + // DISKANN_DLLEXPORT void save_index_as_one_file(bool flag); + + DISKANN_DLLEXPORT void get_active_tags(tsl::robin_set &active_tags); + + // memory should be allocated for vec before calling this function + DISKANN_DLLEXPORT int get_vector_by_tag(TagT &tag, T *vec); + + DISKANN_DLLEXPORT void print_status(); + + DISKANN_DLLEXPORT void count_nodes_at_bfs_levels(); + + // This variable MUST be updated if the number of entries in the metadata + // change. + DISKANN_DLLEXPORT static const int METADATA_ROWS = 5; + + DISKANN_DLLEXPORT void get_degree_stats(size_t &max_deg, size_t &min_deg, size_t &avg_deg, size_t &cnt_deg); + + DISKANN_DLLEXPORT void dump_degree_stats(std::string filename); + + // ******************************** + // + // Internals of the library + // + // ******************************** + + protected: + // overload of abstract index virtual methods + virtual void _build(const DataType &data, const size_t num_points_to_load, TagVector &tags) override; + + virtual std::pair _search(const DataType &query, const size_t K, const uint32_t L, + std::any &indices, float *distances = nullptr) override; + virtual std::pair _search_with_filters(const DataType &query, + const std::string &filter_label_raw, const size_t K, + const uint32_t L, std::any &indices, + float *distances) override; + + virtual int _insert_point(const DataType &data_point, const TagType tag) override; + virtual int _insert_point(const DataType &data_point, const TagType tag, Labelvector &labels) override; + + virtual int _lazy_delete(const TagType &tag) override; + + virtual void _lazy_delete(TagVector &tags, TagVector &failed_tags) override; + + virtual void _get_active_tags(TagRobinSet &active_tags) override; + + virtual void _set_start_points_at_random(DataType radius, uint32_t random_seed = 0) override; + + virtual int _get_vector_by_tag(TagType &tag, DataType &vec) override; + + virtual void _search_with_optimized_layout(const DataType &query, size_t K, size_t L, uint32_t *indices) override; + + virtual size_t _search_with_tags(const DataType &query, const uint64_t K, const uint32_t L, const TagType &tags, + float *distances, DataVector &res_vectors, bool use_filters = false, + const std::string filter_label = "") override; + + virtual void _set_universal_label(const LabelType universal_label) override; + + // No copy/assign. + Index(const Index &) = delete; + Index &operator=(const Index &) = delete; + + // Use after _data and _nd have been populated + // Acquire exclusive _update_lock before calling + void build_with_data_populated(const std::vector &tags); + + // generates 1 frozen point that will never be deleted from the graph + // This is not visible to the user + void generate_frozen_point(); + + // determines navigating node of the graph by calculating medoid of datafopt + uint32_t calculate_entry_point(); + + void parse_label_file(const std::string &label_file, size_t &num_pts_labels); + + std::unordered_map load_label_map(const std::string &map_file); + + // Returns the locations of start point and frozen points suitable for use + // with iterate_to_fixed_point. + std::vector get_init_ids(); + + // The query to use is placed in scratch->aligned_query + std::pair iterate_to_fixed_point(InMemQueryScratch *scratch, const uint32_t Lindex, + const std::vector &init_ids, bool use_filter, + const std::vector &filters, bool search_invocation); + + void search_for_point_and_prune(int location, uint32_t Lindex, std::vector &pruned_list, + InMemQueryScratch *scratch, bool use_filter = false, + uint32_t filteredLindex = 0); + + void prune_neighbors(const uint32_t location, std::vector &pool, std::vector &pruned_list, + InMemQueryScratch *scratch); + + void prune_neighbors(const uint32_t location, std::vector &pool, const uint32_t range, + const uint32_t max_candidate_size, const float alpha, std::vector &pruned_list, + InMemQueryScratch *scratch); + + // Prunes candidates in @pool to a shorter list @result + // @pool must be sorted before calling + void occlude_list(const uint32_t location, std::vector &pool, const float alpha, const uint32_t degree, + const uint32_t maxc, std::vector &result, InMemQueryScratch *scratch, + const tsl::robin_set *const delete_set_ptr = nullptr); + + // add reverse links from all the visited nodes to node n. + void inter_insert(uint32_t n, std::vector &pruned_list, const uint32_t range, + InMemQueryScratch *scratch); + + void inter_insert(uint32_t n, std::vector &pruned_list, InMemQueryScratch *scratch); + + // Acquire exclusive _update_lock before calling + void link(); + + // Acquire exclusive _tag_lock and _delete_lock before calling + int reserve_location(); + + // Acquire exclusive _tag_lock before calling + size_t release_location(int location); + size_t release_locations(const tsl::robin_set &locations); + + // Resize the index when no slots are left for insertion. + // Acquire exclusive _update_lock and _tag_lock before calling. + void resize(size_t new_max_points); + + // Acquire unique lock on _update_lock, _consolidate_lock, _tag_lock + // and _delete_lock before calling these functions. + // Renumber nodes, update tag and location maps and compact the + // graph, mode = _consolidated_order in case of lazy deletion and + // _compacted_order in case of eager deletion + DISKANN_DLLEXPORT void compact_data(); + DISKANN_DLLEXPORT void compact_frozen_point(); + + // Remove deleted nodes from adjacency list of node loc + // Replace removed neighbors with second order neighbors. + // Also acquires _locks[i] for i = loc and out-neighbors of loc. + void process_delete(const tsl::robin_set &old_delete_set, size_t loc, const uint32_t range, + const uint32_t maxc, const float alpha, InMemQueryScratch *scratch); + + void initialize_query_scratch(uint32_t num_threads, uint32_t search_l, uint32_t indexing_l, uint32_t r, + uint32_t maxc, size_t dim); + + // Do not call without acquiring appropriate locks + // call public member functions save and load to invoke these. + DISKANN_DLLEXPORT size_t save_graph(std::string filename); + DISKANN_DLLEXPORT size_t save_data(std::string filename); + DISKANN_DLLEXPORT size_t save_tags(std::string filename); + DISKANN_DLLEXPORT size_t save_delete_list(const std::string &filename); +#ifdef EXEC_ENV_OLS + DISKANN_DLLEXPORT size_t load_graph(AlignedFileReader &reader, size_t expected_num_points); + DISKANN_DLLEXPORT size_t load_data(AlignedFileReader &reader); + DISKANN_DLLEXPORT size_t load_tags(AlignedFileReader &reader); + DISKANN_DLLEXPORT size_t load_delete_set(AlignedFileReader &reader); +#else + DISKANN_DLLEXPORT size_t load_graph(const std::string filename, size_t expected_num_points); + DISKANN_DLLEXPORT size_t load_data(std::string filename0); + DISKANN_DLLEXPORT size_t load_tags(const std::string tag_file_name); + DISKANN_DLLEXPORT size_t load_delete_set(const std::string &filename); +#endif + + private: + // Distance functions + Metric _dist_metric = diskann::L2; + + // Data + std::shared_ptr> _data_store; + + // Graph related data structures + std::unique_ptr _graph_store; + + char *_opt_graph = nullptr; + + // Dimensions + size_t _dim = 0; + size_t _nd = 0; // number of active points i.e. existing in the graph + size_t _max_points = 0; // total number of points in given data set + + // _num_frozen_pts is the number of points which are used as initial + // candidates when iterating to closest point(s). These are not visible + // externally and won't be returned by search. At least 1 frozen point is + // needed for a dynamic index. The frozen points have consecutive locations. + // See also _start below. + size_t _num_frozen_pts = 0; + size_t _frozen_pts_used = 0; + size_t _node_size; + size_t _data_len; + size_t _neighbor_len; + + // Start point of the search. When _num_frozen_pts is greater than zero, + // this is the location of the first frozen point. Otherwise, this is a + // location of one of the points in index. + uint32_t _start = 0; + + bool _has_built = false; + bool _saturate_graph = false; + bool _save_as_one_file = false; // plan to support in next version + bool _dynamic_index = false; + bool _enable_tags = false; + bool _normalize_vecs = false; // Using normalied L2 for cosine. + bool _deletes_enabled = false; + + // Filter Support + + bool _filtered_index = false; + // Location to label is only updated during insert_point(), all other reads are protected by + // default as a location can only be released at end of consolidate deletes + std::vector> _location_to_labels; + tsl::robin_set _labels; + std::string _labels_file; + std::unordered_map _label_to_start_id; + std::unordered_map _medoid_counts; + + bool _use_universal_label = false; + LabelT _universal_label = 0; + uint32_t _filterIndexingQueueSize; + std::unordered_map _label_map; + + // Indexing parameters + uint32_t _indexingQueueSize; + uint32_t _indexingRange; + uint32_t _indexingMaxC; + float _indexingAlpha; + uint32_t _indexingThreads; + + // Query scratch data structures + ConcurrentQueue *> _query_scratch; + + // Flags for PQ based distance calculation + bool _pq_dist = false; + bool _use_opq = false; + size_t _num_pq_chunks = 0; + // REFACTOR + // uint8_t *_pq_data = nullptr; + std::shared_ptr> _pq_distance_fn = nullptr; + std::shared_ptr> _pq_data_store = nullptr; + bool _pq_generated = false; + FixedChunkPQTable _pq_table; + + // + // Data structures, locks and flags for dynamic indexing and tags + // + + // lazy_delete removes entry from _location_to_tag and _tag_to_location. If + // _location_to_tag does not resolve a location, infer that it was deleted. + tsl::sparse_map _tag_to_location; + natural_number_map _location_to_tag; + + // _empty_slots has unallocated slots and those freed by consolidate_delete. + // _delete_set has locations marked deleted by lazy_delete. Will not be + // immediately available for insert. consolidate_delete will release these + // slots to _empty_slots. + natural_number_set _empty_slots; + std::unique_ptr> _delete_set; + + bool _data_compacted = true; // true if data has been compacted + bool _is_saved = false; // Checking if the index is already saved. + bool _conc_consolidate = false; // use _lock while searching + + // Acquire locks in the order below when acquiring multiple locks + std::shared_timed_mutex // RW mutex between save/load (exclusive lock) and + _update_lock; // search/inserts/deletes/consolidate (shared lock) + std::shared_timed_mutex // Ensure only one consolidate or compact_data is + _consolidate_lock; // ever active + std::shared_timed_mutex // RW lock for _tag_to_location, + _tag_lock; // _location_to_tag, _empty_slots, _nd, _max_points, _label_to_start_id + std::shared_timed_mutex // RW Lock on _delete_set and _data_compacted + _delete_lock; // variable + + // Per node lock, cardinality=_max_points + _num_frozen_points + std::vector _locks; + + static const float INDEX_GROWTH_FACTOR; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/index_build_params.h b/packages/leann-backend-diskann/third_party/DiskANN/include/index_build_params.h new file mode 100644 index 0000000..d4f4548 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/index_build_params.h @@ -0,0 +1,73 @@ +#pragma once + +#include "common_includes.h" +#include "parameters.h" + +namespace diskann +{ +struct IndexFilterParams +{ + public: + std::string save_path_prefix; + std::string label_file; + std::string tags_file; + std::string universal_label; + uint32_t filter_threshold = 0; + + private: + IndexFilterParams(const std::string &save_path_prefix, const std::string &label_file, + const std::string &universal_label, uint32_t filter_threshold) + : save_path_prefix(save_path_prefix), label_file(label_file), universal_label(universal_label), + filter_threshold(filter_threshold) + { + } + + friend class IndexFilterParamsBuilder; +}; +class IndexFilterParamsBuilder +{ + public: + IndexFilterParamsBuilder() = default; + + IndexFilterParamsBuilder &with_save_path_prefix(const std::string &save_path_prefix) + { + if (save_path_prefix.empty() || save_path_prefix == "") + throw ANNException("Error: save_path_prefix can't be empty", -1); + this->_save_path_prefix = save_path_prefix; + return *this; + } + + IndexFilterParamsBuilder &with_label_file(const std::string &label_file) + { + this->_label_file = label_file; + return *this; + } + + IndexFilterParamsBuilder &with_universal_label(const std::string &univeral_label) + { + this->_universal_label = univeral_label; + return *this; + } + + IndexFilterParamsBuilder &with_filter_threshold(const std::uint32_t &filter_threshold) + { + this->_filter_threshold = filter_threshold; + return *this; + } + + IndexFilterParams build() + { + return IndexFilterParams(_save_path_prefix, _label_file, _universal_label, _filter_threshold); + } + + IndexFilterParamsBuilder(const IndexFilterParamsBuilder &) = delete; + IndexFilterParamsBuilder &operator=(const IndexFilterParamsBuilder &) = delete; + + private: + std::string _save_path_prefix; + std::string _label_file; + std::string _tags_file; + std::string _universal_label; + uint32_t _filter_threshold = 0; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/index_config.h b/packages/leann-backend-diskann/third_party/DiskANN/include/index_config.h new file mode 100644 index 0000000..a8e64d0 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/index_config.h @@ -0,0 +1,256 @@ +#pragma once + +#include "common_includes.h" +#include "parameters.h" + +namespace diskann +{ +enum class DataStoreStrategy +{ + MEMORY +}; + +enum class GraphStoreStrategy +{ + MEMORY +}; + +struct IndexConfig +{ + DataStoreStrategy data_strategy; + GraphStoreStrategy graph_strategy; + + Metric metric; + size_t dimension; + size_t max_points; + + bool dynamic_index; + bool enable_tags; + bool pq_dist_build; + bool concurrent_consolidate; + bool use_opq; + bool filtered_index; + + size_t num_pq_chunks; + size_t num_frozen_pts; + + std::string label_type; + std::string tag_type; + std::string data_type; + + // Params for building index + std::shared_ptr index_write_params; + // Params for searching index + std::shared_ptr index_search_params; + + private: + IndexConfig(DataStoreStrategy data_strategy, GraphStoreStrategy graph_strategy, Metric metric, size_t dimension, + size_t max_points, size_t num_pq_chunks, size_t num_frozen_points, bool dynamic_index, bool enable_tags, + bool pq_dist_build, bool concurrent_consolidate, bool use_opq, bool filtered_index, + std::string &data_type, const std::string &tag_type, const std::string &label_type, + std::shared_ptr index_write_params, + std::shared_ptr index_search_params) + : data_strategy(data_strategy), graph_strategy(graph_strategy), metric(metric), dimension(dimension), + max_points(max_points), dynamic_index(dynamic_index), enable_tags(enable_tags), pq_dist_build(pq_dist_build), + concurrent_consolidate(concurrent_consolidate), use_opq(use_opq), filtered_index(filtered_index), + num_pq_chunks(num_pq_chunks), num_frozen_pts(num_frozen_points), label_type(label_type), tag_type(tag_type), + data_type(data_type), index_write_params(index_write_params), index_search_params(index_search_params) + { + } + + friend class IndexConfigBuilder; +}; + +class IndexConfigBuilder +{ + public: + IndexConfigBuilder() = default; + + IndexConfigBuilder &with_metric(Metric m) + { + this->_metric = m; + return *this; + } + + IndexConfigBuilder &with_graph_load_store_strategy(GraphStoreStrategy graph_strategy) + { + this->_graph_strategy = graph_strategy; + return *this; + } + + IndexConfigBuilder &with_data_load_store_strategy(DataStoreStrategy data_strategy) + { + this->_data_strategy = data_strategy; + return *this; + } + + IndexConfigBuilder &with_dimension(size_t dimension) + { + this->_dimension = dimension; + return *this; + } + + IndexConfigBuilder &with_max_points(size_t max_points) + { + this->_max_points = max_points; + return *this; + } + + IndexConfigBuilder &is_dynamic_index(bool dynamic_index) + { + this->_dynamic_index = dynamic_index; + return *this; + } + + IndexConfigBuilder &is_enable_tags(bool enable_tags) + { + this->_enable_tags = enable_tags; + return *this; + } + + IndexConfigBuilder &is_pq_dist_build(bool pq_dist_build) + { + this->_pq_dist_build = pq_dist_build; + return *this; + } + + IndexConfigBuilder &is_concurrent_consolidate(bool concurrent_consolidate) + { + this->_concurrent_consolidate = concurrent_consolidate; + return *this; + } + + IndexConfigBuilder &is_use_opq(bool use_opq) + { + this->_use_opq = use_opq; + return *this; + } + + IndexConfigBuilder &is_filtered(bool is_filtered) + { + this->_filtered_index = is_filtered; + return *this; + } + + IndexConfigBuilder &with_num_pq_chunks(size_t num_pq_chunks) + { + this->_num_pq_chunks = num_pq_chunks; + return *this; + } + + IndexConfigBuilder &with_num_frozen_pts(size_t num_frozen_pts) + { + this->_num_frozen_pts = num_frozen_pts; + return *this; + } + + IndexConfigBuilder &with_label_type(const std::string &label_type) + { + this->_label_type = label_type; + return *this; + } + + IndexConfigBuilder &with_tag_type(const std::string &tag_type) + { + this->_tag_type = tag_type; + return *this; + } + + IndexConfigBuilder &with_data_type(const std::string &data_type) + { + this->_data_type = data_type; + return *this; + } + + IndexConfigBuilder &with_index_write_params(IndexWriteParameters &index_write_params) + { + this->_index_write_params = std::make_shared(index_write_params); + return *this; + } + + IndexConfigBuilder &with_index_write_params(std::shared_ptr index_write_params_ptr) + { + if (index_write_params_ptr == nullptr) + { + diskann::cout << "Passed, empty build_params while creating index config" << std::endl; + return *this; + } + this->_index_write_params = index_write_params_ptr; + return *this; + } + + IndexConfigBuilder &with_index_search_params(IndexSearchParams &search_params) + { + this->_index_search_params = std::make_shared(search_params); + return *this; + } + + IndexConfigBuilder &with_index_search_params(std::shared_ptr search_params_ptr) + { + if (search_params_ptr == nullptr) + { + diskann::cout << "Passed, empty search_params while creating index config" << std::endl; + return *this; + } + this->_index_search_params = search_params_ptr; + return *this; + } + + IndexConfig build() + { + if (_data_type == "" || _data_type.empty()) + throw ANNException("Error: data_type can not be empty", -1); + + if (_dynamic_index && _num_frozen_pts == 0) + { + _num_frozen_pts = 1; + } + + if (_dynamic_index) + { + if (_index_search_params != nullptr && _index_search_params->initial_search_list_size == 0) + throw ANNException("Error: please pass initial_search_list_size for building dynamic index.", -1); + } + + // sanity check + if (_dynamic_index && _num_frozen_pts == 0) + { + diskann::cout << "_num_frozen_pts passed as 0 for dynamic_index. Setting it to 1 for safety." << std::endl; + _num_frozen_pts = 1; + } + + return IndexConfig(_data_strategy, _graph_strategy, _metric, _dimension, _max_points, _num_pq_chunks, + _num_frozen_pts, _dynamic_index, _enable_tags, _pq_dist_build, _concurrent_consolidate, + _use_opq, _filtered_index, _data_type, _tag_type, _label_type, _index_write_params, + _index_search_params); + } + + IndexConfigBuilder(const IndexConfigBuilder &) = delete; + IndexConfigBuilder &operator=(const IndexConfigBuilder &) = delete; + + private: + DataStoreStrategy _data_strategy; + GraphStoreStrategy _graph_strategy; + + Metric _metric; + size_t _dimension; + size_t _max_points; + + bool _dynamic_index = false; + bool _enable_tags = false; + bool _pq_dist_build = false; + bool _concurrent_consolidate = false; + bool _use_opq = false; + bool _filtered_index{defaults::HAS_LABELS}; + + size_t _num_pq_chunks = 0; + size_t _num_frozen_pts{defaults::NUM_FROZEN_POINTS_STATIC}; + + std::string _label_type{"uint32"}; + std::string _tag_type{"uint32"}; + std::string _data_type; + + std::shared_ptr _index_write_params; + std::shared_ptr _index_search_params; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/index_factory.h b/packages/leann-backend-diskann/third_party/DiskANN/include/index_factory.h new file mode 100644 index 0000000..76fb0b9 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/index_factory.h @@ -0,0 +1,51 @@ +#pragma once + +#include "index.h" +#include "abstract_graph_store.h" +#include "in_mem_graph_store.h" +#include "pq_data_store.h" + +namespace diskann +{ +class IndexFactory +{ + public: + DISKANN_DLLEXPORT explicit IndexFactory(const IndexConfig &config); + DISKANN_DLLEXPORT std::unique_ptr create_instance(); + + DISKANN_DLLEXPORT static std::unique_ptr construct_graphstore( + const GraphStoreStrategy stratagy, const size_t size, const size_t reserve_graph_degree); + + template + DISKANN_DLLEXPORT static std::shared_ptr> construct_datastore(DataStoreStrategy stratagy, + size_t num_points, + size_t dimension, Metric m); + // For now PQDataStore incorporates within itself all variants of quantization that we support. In the + // future it may be necessary to introduce an AbstractPQDataStore class to spearate various quantization + // flavours. + template + DISKANN_DLLEXPORT static std::shared_ptr> construct_pq_datastore(DataStoreStrategy strategy, + size_t num_points, size_t dimension, + Metric m, size_t num_pq_chunks, + bool use_opq); + template static Distance *construct_inmem_distance_fn(Metric m); + + private: + void check_config(); + + template + std::unique_ptr create_instance(); + + std::unique_ptr create_instance(const std::string &data_type, const std::string &tag_type, + const std::string &label_type); + + template + std::unique_ptr create_instance(const std::string &tag_type, const std::string &label_type); + + template + std::unique_ptr create_instance(const std::string &label_type); + + std::unique_ptr _config; +}; + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/linux_aligned_file_reader.h b/packages/leann-backend-diskann/third_party/DiskANN/include/linux_aligned_file_reader.h new file mode 100644 index 0000000..d1d1e74 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/linux_aligned_file_reader.h @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#ifndef _WINDOWS +#ifndef __APPLE__ + +#include "aligned_file_reader.h" + +class LinuxAlignedFileReader : public AlignedFileReader +{ + private: + uint64_t file_sz; + FileHandle file_desc; + io_context_t bad_ctx = (io_context_t)-1; + + public: + LinuxAlignedFileReader(); + ~LinuxAlignedFileReader(); + + IOContext &get_ctx(); + + // register thread-id for a context + void register_thread(); + + // de-register thread-id for a context + void deregister_thread(); + void deregister_all_threads(); + + // Open & close ops + // Blocking calls + void open(const std::string &fname); + void close(); + + // process batch of aligned requests in parallel + // NOTE :: blocking call + void read(std::vector &read_reqs, IOContext &ctx, bool async = false); +}; + +#endif +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/locking.h b/packages/leann-backend-diskann/third_party/DiskANN/include/locking.h new file mode 100644 index 0000000..890c24a --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/locking.h @@ -0,0 +1,20 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. +#pragma once + +#include + +#ifdef _WINDOWS +#include "windows_slim_lock.h" +#endif + +namespace diskann +{ +#ifdef _WINDOWS +using non_recursive_mutex = windows_exclusive_slim_lock; +using LockGuard = windows_exclusive_slim_lock_guard; +#else +using non_recursive_mutex = std::mutex; +using LockGuard = std::lock_guard; +#endif +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/logger.h b/packages/leann-backend-diskann/third_party/DiskANN/include/logger.h new file mode 100644 index 0000000..0b17807 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/logger.h @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. +#pragma once + +#include +#include +#include "windows_customizations.h" + +#ifdef EXEC_ENV_OLS +#ifndef ENABLE_CUSTOM_LOGGER +#define ENABLE_CUSTOM_LOGGER +#endif // !ENABLE_CUSTOM_LOGGER +#endif // EXEC_ENV_OLS + +namespace diskann +{ +#ifdef ENABLE_CUSTOM_LOGGER +DISKANN_DLLEXPORT extern std::basic_ostream cout; +DISKANN_DLLEXPORT extern std::basic_ostream cerr; +#else +using std::cerr; +using std::cout; +#endif + +enum class DISKANN_DLLEXPORT LogLevel +{ + LL_Info = 0, + LL_Error, + LL_Count +}; + +#ifdef ENABLE_CUSTOM_LOGGER +DISKANN_DLLEXPORT void SetCustomLogger(std::function logger); +#endif +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/logger_impl.h b/packages/leann-backend-diskann/third_party/DiskANN/include/logger_impl.h new file mode 100644 index 0000000..03c65e0 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/logger_impl.h @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include "ann_exception.h" +#include "logger.h" + +namespace diskann +{ +#ifdef ENABLE_CUSTOM_LOGGER +class ANNStreamBuf : public std::basic_streambuf +{ + public: + DISKANN_DLLEXPORT explicit ANNStreamBuf(FILE *fp); + DISKANN_DLLEXPORT ~ANNStreamBuf(); + + DISKANN_DLLEXPORT bool is_open() const + { + return true; // because stdout and stderr are always open. + } + DISKANN_DLLEXPORT void close(); + DISKANN_DLLEXPORT virtual int underflow(); + DISKANN_DLLEXPORT virtual int overflow(int c); + DISKANN_DLLEXPORT virtual int sync(); + + private: + FILE *_fp; + char *_buf; + int _bufIndex; + std::mutex _mutex; + LogLevel _logLevel; + + int flush(); + void logImpl(char *str, int numchars); + + // Why the two buffer-sizes? If we are running normally, we are basically + // interacting with a character output system, so we short-circuit the + // output process by keeping an empty buffer and writing each character + // to stdout/stderr. But if we are running in OLS, we have to take all + // the text that is written to diskann::cout/diskann:cerr, consolidate it + // and push it out in one-shot, because the OLS infra does not give us + // character based output. Therefore, we use a larger buffer that is large + // enough to store the longest message, and continuously add characters + // to it. When the calling code outputs a std::endl or std::flush, sync() + // will be called and will output a log level, component name, and the text + // that has been collected. (sync() is also called if the buffer is full, so + // overflows/missing text are not a concern). + // This implies calling code _must_ either print std::endl or std::flush + // to ensure that the message is written immediately. + + static const int BUFFER_SIZE = 1024; + + ANNStreamBuf(const ANNStreamBuf &); + ANNStreamBuf &operator=(const ANNStreamBuf &); +}; +#endif +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/math_utils.h b/packages/leann-backend-diskann/third_party/DiskANN/include/math_utils.h new file mode 100644 index 0000000..83d189f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/math_utils.h @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include "common_includes.h" +#include "utils.h" + +namespace math_utils +{ + +float calc_distance(float *vec_1, float *vec_2, size_t dim); + +// compute l2-squared norms of data stored in row major num_points * dim, +// needs +// to be pre-allocated +void compute_vecs_l2sq(float *vecs_l2sq, float *data, const size_t num_points, const size_t dim); + +void rotate_data_randomly(float *data, size_t num_points, size_t dim, float *rot_mat, float *&new_mat, + bool transpose_rot = false); + +// calculate closest center to data of num_points * dim (row major) +// centers is num_centers * dim (row major) +// data_l2sq has pre-computed squared norms of data +// centers_l2sq has pre-computed squared norms of centers +// pre-allocated center_index will contain id of k nearest centers +// pre-allocated dist_matrix shound be num_points * num_centers and contain +// squared distances + +// Ideally used only by compute_closest_centers +void compute_closest_centers_in_block(const float *const data, const size_t num_points, const size_t dim, + const float *const centers, const size_t num_centers, + const float *const docs_l2sq, const float *const centers_l2sq, + uint32_t *center_index, float *const dist_matrix, size_t k = 1); + +// Given data in num_points * new_dim row major +// Pivots stored in full_pivot_data as k * new_dim row major +// Calculate the closest pivot for each point and store it in vector +// closest_centers_ivf (which needs to be allocated outside) +// Additionally, if inverted index is not null (and pre-allocated), it will +// return inverted index for each center Additionally, if pts_norms_squared is +// not null, then it will assume that point norms are pre-computed and use +// those +// values + +void compute_closest_centers(float *data, size_t num_points, size_t dim, float *pivot_data, size_t num_centers, + size_t k, uint32_t *closest_centers_ivf, std::vector *inverted_index = NULL, + float *pts_norms_squared = NULL); + +// if to_subtract is 1, will subtract nearest center from each row. Else will +// add. Output will be in data_load iself. +// Nearest centers need to be provided in closst_centers. + +void process_residuals(float *data_load, size_t num_points, size_t dim, float *cur_pivot_data, size_t num_centers, + uint32_t *closest_centers, bool to_subtract); + +} // namespace math_utils + +namespace kmeans +{ + +// run Lloyds one iteration +// Given data in row major num_points * dim, and centers in row major +// num_centers * dim +// And squared lengths of data points, output the closest center to each data +// point, update centers, and also return inverted index. +// If closest_centers == NULL, will allocate memory and return. +// Similarly, if closest_docs == NULL, will allocate memory and return. + +float lloyds_iter(float *data, size_t num_points, size_t dim, float *centers, size_t num_centers, float *docs_l2sq, + std::vector *closest_docs, uint32_t *&closest_center); + +// Run Lloyds until max_reps or stopping criterion +// If you pass NULL for closest_docs and closest_center, it will NOT return +// the results, else it will assume appriate allocation as closest_docs = new +// vector [num_centers], and closest_center = new size_t[num_points] +// Final centers are output in centers as row major num_centers * dim +// +float run_lloyds(float *data, size_t num_points, size_t dim, float *centers, const size_t num_centers, + const size_t max_reps, std::vector *closest_docs, uint32_t *closest_center); + +// assumes already memory allocated for pivot_data as new +// float[num_centers*dim] and select randomly num_centers points as pivots +void selecting_pivots(float *data, size_t num_points, size_t dim, float *pivot_data, size_t num_centers); + +void kmeanspp_selecting_pivots(float *data, size_t num_points, size_t dim, float *pivot_data, size_t num_centers); +} // namespace kmeans diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/memory_mapper.h b/packages/leann-backend-diskann/third_party/DiskANN/include/memory_mapper.h new file mode 100644 index 0000000..75faca1 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/memory_mapper.h @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#ifndef _WINDOWS +#include +#include +#include +#include +#include + +#else +#include +#endif +#include + +namespace diskann +{ +class MemoryMapper +{ + private: +#ifndef _WINDOWS + int _fd; +#else + HANDLE _bareFile; + HANDLE _fd; + +#endif + char *_buf; + size_t _fileSize; + const char *_fileName; + + public: + MemoryMapper(const char *filename); + MemoryMapper(const std::string &filename); + + char *getBuf(); + size_t getFileSize(); + + ~MemoryMapper(); +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_map.h b/packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_map.h new file mode 100644 index 0000000..e846882 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_map.h @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include + +#include + +namespace diskann +{ +// A map whose key is a natural number (from 0 onwards) and maps to a value. +// Made as both memory and performance efficient map for scenario such as +// DiskANN location-to-tag map. There, the pool of numbers is consecutive from +// zero to some max value, and it's expected that most if not all keys from 0 +// up to some current maximum will be present in the map. The memory usage of +// the map is determined by the largest inserted key since it uses vector as a +// backing store and bitset for presence indication. +// +// Thread-safety: this class is not thread-safe in general. +// Exception: multiple read-only operations are safe on the object only if +// there are no writers to it in parallel. +template class natural_number_map +{ + public: + static_assert(std::is_trivial::value, "Key must be a trivial type"); + + // Represents a reference to a element in the map. Used while iterating + // over map entries. + struct position + { + size_t _key; + // The number of keys that were enumerated when iterating through the + // map so far. Used to early-terminate enumeration when ithere are no + // more entries in the map. + size_t _keys_already_enumerated; + + // Returns whether it's valid to access the element at this position in + // the map. + bool is_valid() const; + }; + + natural_number_map(); + + void reserve(size_t count); + size_t size() const; + + void set(Key key, Value value); + void erase(Key key); + + bool contains(Key key) const; + bool try_get(Key key, Value &value) const; + + // Returns the value at the specified position. Prerequisite: position is + // valid. + Value get(const position &pos) const; + + // Finds the first element in the map, if any. Invalidated by changes in the + // map. + position find_first() const; + + // Finds the next element in the map after the specified position. + // Invalidated by changes in the map. + position find_next(const position &after_position) const; + + void clear(); + + private: + // Number of entries in the map. Not the same as size() of the + // _values_vector below. + size_t _size; + + // Array of values. The key is the index of the value. + std::vector _values_vector; + + // Values that are in the set have the corresponding bit index set + // to 1. + // + // Use a pointer here to allow for forward declaration of dynamic_bitset + // in public headers to avoid making boost a dependency for clients + // of DiskANN. + std::unique_ptr> _values_bitset; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_set.h b/packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_set.h new file mode 100644 index 0000000..ec5b827 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/natural_number_set.h @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include "boost_dynamic_bitset_fwd.h" + +namespace diskann +{ +// A set of natural numbers (from 0 onwards). Made for scenario where the +// pool of numbers is consecutive from zero to some max value and very +// efficient methods for "add to set", "get any value from set", "is in set" +// are needed. The memory usage of the set is determined by the largest +// number of inserted entries (uses a vector as a backing store) as well as +// the largest value to be placed in it (uses bitset as well). +// +// Thread-safety: this class is not thread-safe in general. +// Exception: multiple read-only operations (e.g. is_in_set, empty, size) are +// safe on the object only if there are no writers to it in parallel. +template class natural_number_set +{ + public: + static_assert(std::is_trivial::value, "Identifier must be a trivial type"); + + natural_number_set(); + + bool is_empty() const; + void reserve(size_t count); + void insert(T id); + T pop_any(); + void clear(); + size_t size() const; + bool is_in_set(T id) const; + + private: + // Values that are currently in set. + std::vector _values_vector; + + // Values that are in the set have the corresponding bit index set + // to 1. + // + // Use a pointer here to allow for forward declaration of dynamic_bitset + // in public headers to avoid making boost a dependency for clients + // of DiskANN. + std::unique_ptr> _values_bitset; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/neighbor.h b/packages/leann-backend-diskann/third_party/DiskANN/include/neighbor.h new file mode 100644 index 0000000..d7c0c25 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/neighbor.h @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include +#include "utils.h" + +namespace diskann +{ + +struct Neighbor +{ + unsigned id; + float distance; + bool expanded; + + Neighbor() = default; + + Neighbor(unsigned id, float distance) : id{id}, distance{distance}, expanded(false) + { + } + + inline bool operator<(const Neighbor &other) const + { + return distance < other.distance || (distance == other.distance && id < other.id); + } + + inline bool operator==(const Neighbor &other) const + { + return (id == other.id); + } +}; + +// Invariant: after every `insert` and `closest_unexpanded()`, `_cur` points to +// the first Neighbor which is unexpanded. +class NeighborPriorityQueue +{ + public: + NeighborPriorityQueue() : _size(0), _capacity(0), _cur(0) + { + } + + explicit NeighborPriorityQueue(size_t capacity) : _size(0), _capacity(capacity), _cur(0), _data(capacity + 1) + { + } + + // Inserts the item ordered into the set up to the sets capacity. + // The item will be dropped if it is the same id as an exiting + // set item or it has a greated distance than the final + // item in the set. The set cursor that is used to pop() the + // next item will be set to the lowest index of an uncheck item + void insert(const Neighbor &nbr) + { + if (_size == _capacity && _data[_size - 1] < nbr) + { + return; + } + + size_t lo = 0, hi = _size; + while (lo < hi) + { + size_t mid = (lo + hi) >> 1; + if (nbr < _data[mid]) + { + hi = mid; + // Make sure the same id isn't inserted into the set + } + else if (_data[mid].id == nbr.id) + { + return; + } + else + { + lo = mid + 1; + } + } + + if (lo < _capacity) + { + std::memmove(&_data[lo + 1], &_data[lo], (_size - lo) * sizeof(Neighbor)); + } + _data[lo] = {nbr.id, nbr.distance}; + if (_size < _capacity) + { + _size++; + } + if (lo < _cur) + { + _cur = lo; + } + } + + Neighbor closest_unexpanded() + { + _data[_cur].expanded = true; + size_t pre = _cur; + while (_cur < _size && _data[_cur].expanded) + { + _cur++; + } + return _data[pre]; + } + + bool has_unexpanded_node() const + { + return _cur < _size; + } + + size_t size() const + { + return _size; + } + + size_t capacity() const + { + return _capacity; + } + + void reserve(size_t capacity) + { + if (capacity + 1 > _data.size()) + { + _data.resize(capacity + 1); + } + _capacity = capacity; + } + + Neighbor &operator[](size_t i) + { + return _data[i]; + } + + Neighbor operator[](size_t i) const + { + return _data[i]; + } + + void clear() + { + _size = 0; + _cur = 0; + } + + private: + size_t _size, _capacity, _cur; + std::vector _data; +}; + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/parameters.h b/packages/leann-backend-diskann/third_party/DiskANN/include/parameters.h new file mode 100644 index 0000000..0206814 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/parameters.h @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include + +#include "omp.h" +#include "defaults.h" + +namespace diskann +{ + +class IndexWriteParameters + +{ + public: + const uint32_t search_list_size; // L + const uint32_t max_degree; // R + const bool saturate_graph; + const uint32_t max_occlusion_size; // C + const float alpha; + const uint32_t num_threads; + const uint32_t filter_list_size; // Lf + + IndexWriteParameters(const uint32_t search_list_size, const uint32_t max_degree, const bool saturate_graph, + const uint32_t max_occlusion_size, const float alpha, const uint32_t num_threads, + const uint32_t filter_list_size) + : search_list_size(search_list_size), max_degree(max_degree), saturate_graph(saturate_graph), + max_occlusion_size(max_occlusion_size), alpha(alpha), num_threads(num_threads), + filter_list_size(filter_list_size) + { + } + + friend class IndexWriteParametersBuilder; +}; + +class IndexSearchParams +{ + public: + IndexSearchParams(const uint32_t initial_search_list_size, const uint32_t num_search_threads) + : initial_search_list_size(initial_search_list_size), num_search_threads(num_search_threads) + { + } + const uint32_t initial_search_list_size; // search L + const uint32_t num_search_threads; // search threads +}; + +class IndexWriteParametersBuilder +{ + /** + * Fluent builder pattern to keep track of the 7 non-default properties + * and their order. The basic ctor was getting unwieldy. + */ + public: + IndexWriteParametersBuilder(const uint32_t search_list_size, // L + const uint32_t max_degree // R + ) + : _search_list_size(search_list_size), _max_degree(max_degree) + { + } + + IndexWriteParametersBuilder &with_max_occlusion_size(const uint32_t max_occlusion_size) + { + _max_occlusion_size = max_occlusion_size; + return *this; + } + + IndexWriteParametersBuilder &with_saturate_graph(const bool saturate_graph) + { + _saturate_graph = saturate_graph; + return *this; + } + + IndexWriteParametersBuilder &with_alpha(const float alpha) + { + _alpha = alpha; + return *this; + } + + IndexWriteParametersBuilder &with_num_threads(const uint32_t num_threads) + { + _num_threads = num_threads == 0 ? omp_get_num_procs() : num_threads; + return *this; + } + + IndexWriteParametersBuilder &with_filter_list_size(const uint32_t filter_list_size) + { + _filter_list_size = filter_list_size == 0 ? _search_list_size : filter_list_size; + return *this; + } + + IndexWriteParameters build() const + { + return IndexWriteParameters(_search_list_size, _max_degree, _saturate_graph, _max_occlusion_size, _alpha, + _num_threads, _filter_list_size); + } + + IndexWriteParametersBuilder(const IndexWriteParameters &wp) + : _search_list_size(wp.search_list_size), _max_degree(wp.max_degree), + _max_occlusion_size(wp.max_occlusion_size), _saturate_graph(wp.saturate_graph), _alpha(wp.alpha), + _filter_list_size(wp.filter_list_size) + { + } + IndexWriteParametersBuilder(const IndexWriteParametersBuilder &) = delete; + IndexWriteParametersBuilder &operator=(const IndexWriteParametersBuilder &) = delete; + + private: + uint32_t _search_list_size{}; + uint32_t _max_degree{}; + uint32_t _max_occlusion_size{defaults::MAX_OCCLUSION_SIZE}; + bool _saturate_graph{defaults::SATURATE_GRAPH}; + float _alpha{defaults::ALPHA}; + uint32_t _num_threads{defaults::NUM_THREADS}; + uint32_t _filter_list_size{defaults::FILTER_LIST_SIZE}; +}; + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/partition.h b/packages/leann-backend-diskann/third_party/DiskANN/include/partition.h new file mode 100644 index 0000000..c2c4c76 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/partition.h @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include +#include +#include +#include +#include + +#include "neighbor.h" +#include "parameters.h" +#include "tsl/robin_set.h" +#include "utils.h" + +#include "windows_customizations.h" + +template +void gen_random_slice(const std::string base_file, const std::string output_prefix, double sampling_rate); + +template +void gen_random_slice(const std::string data_file, double p_val, float *&sampled_data, size_t &slice_size, + size_t &ndims); + +template +void gen_random_slice(const T *inputdata, size_t npts, size_t ndims, double p_val, float *&sampled_data, + size_t &slice_size); + +int estimate_cluster_sizes(float *test_data_float, size_t num_test, float *pivots, const size_t num_centers, + const size_t dim, const size_t k_base, std::vector &cluster_sizes); + +template +int shard_data_into_clusters(const std::string data_file, float *pivots, const size_t num_centers, const size_t dim, + const size_t k_base, std::string prefix_path); + +template +int shard_data_into_clusters_only_ids(const std::string data_file, float *pivots, const size_t num_centers, + const size_t dim, const size_t k_base, std::string prefix_path); + +template +int retrieve_shard_data_from_ids(const std::string data_file, std::string idmap_filename, std::string data_filename); + +template +int partition(const std::string data_file, const float sampling_rate, size_t num_centers, size_t max_k_means_reps, + const std::string prefix_path, size_t k_base); + +template +int partition_with_ram_budget(const std::string data_file, const double sampling_rate, double ram_budget, + size_t graph_degree, const std::string prefix_path, size_t k_base); diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/percentile_stats.h b/packages/leann-backend-diskann/third_party/DiskANN/include/percentile_stats.h new file mode 100644 index 0000000..7932575 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/percentile_stats.h @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include +#include +#ifdef _WINDOWS +#include +#endif +#include +#include + +#include "distance.h" +#include "parameters.h" + +namespace diskann +{ +struct QueryStats +{ + float total_us = 0; // total time to process query in micros + float io_us = 0; // total time spent in IO + float cpu_us = 0; // total time spent in CPU + + unsigned n_4k = 0; // # of 4kB reads + unsigned n_8k = 0; // # of 8kB reads + unsigned n_12k = 0; // # of 12kB reads + unsigned n_ios = 0; // total # of IOs issued + unsigned read_size = 0; // total # of bytes read + unsigned n_cmps_saved = 0; // # cmps saved + unsigned n_cmps = 0; // # cmps + unsigned n_cache_hits = 0; // # cache_hits + unsigned n_hops = 0; // # search hops +}; + +template +inline T get_percentile_stats(QueryStats *stats, uint64_t len, float percentile, + const std::function &member_fn) +{ + std::vector vals(len); + for (uint64_t i = 0; i < len; i++) + { + vals[i] = member_fn(stats[i]); + } + + std::sort(vals.begin(), vals.end(), [](const T &left, const T &right) { return left < right; }); + + auto retval = vals[(uint64_t)(percentile * len)]; + vals.clear(); + return retval; +} + +template +inline double get_mean_stats(QueryStats *stats, uint64_t len, const std::function &member_fn) +{ + double avg = 0; + for (uint64_t i = 0; i < len; i++) + { + avg += (double)member_fn(stats[i]); + } + return avg / len; +} +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/pq.h b/packages/leann-backend-diskann/third_party/DiskANN/include/pq.h new file mode 100644 index 0000000..3e6119f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/pq.h @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include "utils.h" +#include "pq_common.h" + +namespace diskann +{ +class FixedChunkPQTable +{ + float *tables = nullptr; // pq_tables = float array of size [256 * ndims] + uint64_t ndims = 0; // ndims = true dimension of vectors + uint64_t n_chunks = 0; + bool use_rotation = false; + uint32_t *chunk_offsets = nullptr; + float *centroid = nullptr; + float *tables_tr = nullptr; // same as pq_tables, but col-major + float *rotmat_tr = nullptr; + + public: + FixedChunkPQTable(); + + virtual ~FixedChunkPQTable(); + +#ifdef EXEC_ENV_OLS + void load_pq_centroid_bin(MemoryMappedFiles &files, const char *pq_table_file, size_t num_chunks); +#else + void load_pq_centroid_bin(const char *pq_table_file, size_t num_chunks); +#endif + + uint32_t get_num_chunks(); + + void preprocess_query(float *query_vec); + + // assumes pre-processed query + void populate_chunk_distances(const float *query_vec, float *dist_vec); + + float l2_distance(const float *query_vec, uint8_t *base_vec); + + float inner_product(const float *query_vec, uint8_t *base_vec); + + // assumes no rotation is involved + void inflate_vector(uint8_t *base_vec, float *out_vec); + + void populate_chunk_inner_products(const float *query_vec, float *dist_vec); +}; + +void aggregate_coords(const std::vector &ids, const uint8_t *all_coords, const uint64_t ndims, uint8_t *out); + +void pq_dist_lookup(const uint8_t *pq_ids, const size_t n_pts, const size_t pq_nchunks, const float *pq_dists, + std::vector &dists_out); + +// Need to replace calls to these with calls to vector& based functions above +void aggregate_coords(const unsigned *ids, const uint64_t n_ids, const uint8_t *all_coords, const uint64_t ndims, + uint8_t *out); + +void pq_dist_lookup(const uint8_t *pq_ids, const size_t n_pts, const size_t pq_nchunks, const float *pq_dists, + float *dists_out); + +DISKANN_DLLEXPORT int generate_pq_pivots(const float *const train_data, size_t num_train, unsigned dim, + unsigned num_centers, unsigned num_pq_chunks, unsigned max_k_means_reps, + std::string pq_pivots_path, bool make_zero_mean = false); + +DISKANN_DLLEXPORT int generate_opq_pivots(const float *train_data, size_t num_train, unsigned dim, unsigned num_centers, + unsigned num_pq_chunks, std::string opq_pivots_path, + bool make_zero_mean = false); + +DISKANN_DLLEXPORT int generate_pq_pivots_simplified(const float *train_data, size_t num_train, size_t dim, + size_t num_pq_chunks, std::vector &pivot_data_vector); + +template +int generate_pq_data_from_pivots(const std::string &data_file, unsigned num_centers, unsigned num_pq_chunks, + const std::string &pq_pivots_path, const std::string &pq_compressed_vectors_path, + bool use_opq = false); + +DISKANN_DLLEXPORT int generate_pq_data_from_pivots_simplified(const float *data, const size_t num, + const float *pivot_data, const size_t pivots_num, + const size_t dim, const size_t num_pq_chunks, + std::vector &pq); + +template +void generate_disk_quantized_data(const std::string &data_file_to_use, const std::string &disk_pq_pivots_path, + const std::string &disk_pq_compressed_vectors_path, + const diskann::Metric compareMetric, const double p_val, size_t &disk_pq_dims); + +template +void generate_quantized_data(const std::string &data_file_to_use, const std::string &pq_pivots_path, + const std::string &pq_compressed_vectors_path, const diskann::Metric compareMetric, + const double p_val, const uint64_t num_pq_chunks, const bool use_opq, + const std::string &codebook_prefix = ""); +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/pq_common.h b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_common.h new file mode 100644 index 0000000..c6a3a57 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_common.h @@ -0,0 +1,30 @@ +#pragma once + +#include +#include + +#define NUM_PQ_BITS 8 +#define NUM_PQ_CENTROIDS (1 << NUM_PQ_BITS) +#define MAX_OPQ_ITERS 20 +#define NUM_KMEANS_REPS_PQ 12 +#define MAX_PQ_TRAINING_SET_SIZE 256000 +#define MAX_PQ_CHUNKS 512 + +namespace diskann +{ +inline std::string get_quantized_vectors_filename(const std::string &prefix, bool use_opq, uint32_t num_chunks) +{ + return prefix + (use_opq ? "_opq" : "pq") + std::to_string(num_chunks) + "_compressed.bin"; +} + +inline std::string get_pivot_data_filename(const std::string &prefix, bool use_opq, uint32_t num_chunks) +{ + return prefix + (use_opq ? "_opq" : "pq") + std::to_string(num_chunks) + "_pivots.bin"; +} + +inline std::string get_rotation_matrix_suffix(const std::string &pivot_data_filename) +{ + return pivot_data_filename + "_rotation_matrix.bin"; +} + +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/pq_data_store.h b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_data_store.h new file mode 100644 index 0000000..7c0cb5f --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_data_store.h @@ -0,0 +1,97 @@ +#pragma once +#include +#include "distance.h" +#include "quantized_distance.h" +#include "pq.h" +#include "abstract_data_store.h" + +namespace diskann +{ +// REFACTOR TODO: By default, the PQDataStore is an in-memory datastore because both Vamana and +// DiskANN treat it the same way. But with DiskPQ, that may need to change. +template class PQDataStore : public AbstractDataStore +{ + + public: + PQDataStore(size_t dim, location_t num_points, size_t num_pq_chunks, std::unique_ptr> distance_fn, + std::unique_ptr> pq_distance_fn); + PQDataStore(const PQDataStore &) = delete; + PQDataStore &operator=(const PQDataStore &) = delete; + ~PQDataStore(); + + // Load quantized vectors from a set of files. Here filename is treated + // as a prefix and the files are assumed to be named with DiskANN + // conventions. + virtual location_t load(const std::string &file_prefix) override; + + // Save quantized vectors to a set of files whose names start with + // file_prefix. + // Currently, the plan is to save the quantized vectors to the quantized + // vectors file. + virtual size_t save(const std::string &file_prefix, const location_t num_points) override; + + // Since base class function is pure virtual, we need to declare it here, even though alignent concept is not needed + // for Quantized data stores. + virtual size_t get_aligned_dim() const override; + + // Populate quantized data from unaligned data using PQ functionality + virtual void populate_data(const data_t *vectors, const location_t num_pts) override; + virtual void populate_data(const std::string &filename, const size_t offset) override; + + virtual void extract_data_to_bin(const std::string &filename, const location_t num_pts) override; + + virtual void get_vector(const location_t i, data_t *target) const override; + virtual void set_vector(const location_t i, const data_t *const vector) override; + virtual void prefetch_vector(const location_t loc) override; + + virtual void move_vectors(const location_t old_location_start, const location_t new_location_start, + const location_t num_points) override; + virtual void copy_vectors(const location_t from_loc, const location_t to_loc, const location_t num_points) override; + + virtual void preprocess_query(const data_t *query, AbstractScratch *scratch) const override; + + virtual float get_distance(const data_t *query, const location_t loc) const override; + virtual float get_distance(const location_t loc1, const location_t loc2) const override; + + // NOTE: Caller must invoke "PQDistance->preprocess_query" ONCE before calling + // this function. + virtual void get_distance(const data_t *preprocessed_query, const location_t *locations, + const uint32_t location_count, float *distances, + AbstractScratch *scratch_space) const override; + + // NOTE: Caller must invoke "PQDistance->preprocess_query" ONCE before calling + // this function. + virtual void get_distance(const data_t *preprocessed_query, const std::vector &ids, + std::vector &distances, AbstractScratch *scratch_space) const override; + + // We are returning the distance function that is used for full precision + // vectors here, not the PQ distance function. This is because the callers + // all are expecting a Distance not QuantizedDistance. + virtual Distance *get_dist_fn() const override; + + virtual location_t calculate_medoid() const override; + + virtual size_t get_alignment_factor() const override; + + protected: + virtual location_t expand(const location_t new_size) override; + virtual location_t shrink(const location_t new_size) override; + + virtual location_t load_impl(const std::string &filename); +#ifdef EXEC_ENV_OLS + virtual location_t load_impl(AlignedFileReader &reader); +#endif + + private: + uint8_t *_quantized_data = nullptr; + size_t _num_chunks = 0; + + // REFACTOR TODO: Doing this temporarily before refactoring OPQ into + // its own class. Remove later. + bool _use_opq = false; + + Metric _distance_metric; + std::unique_ptr> _distance_fn = nullptr; + std::unique_ptr> _pq_distance_fn = nullptr; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/pq_flash_index.h b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_flash_index.h new file mode 100644 index 0000000..174df5c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_flash_index.h @@ -0,0 +1,286 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#include "common_includes.h" + +#include "aligned_file_reader.h" +#include "concurrent_queue.h" +#include "neighbor.h" +#include "parameters.h" +#include "percentile_stats.h" +#include "pq.h" +#include "utils.h" +#include "windows_customizations.h" +#include "scratch.h" +#include "tsl/robin_map.h" +#include "tsl/robin_set.h" + +#define FULL_PRECISION_REORDER_MULTIPLIER 3 + +namespace diskann +{ + +template class PQFlashIndex +{ + public: + DISKANN_DLLEXPORT PQFlashIndex(std::shared_ptr &fileReader, + std::shared_ptr &graphReader, + diskann::Metric metric = diskann::Metric::L2); + DISKANN_DLLEXPORT ~PQFlashIndex(); + +#ifdef EXEC_ENV_OLS + DISKANN_DLLEXPORT int load(diskann::MemoryMappedFiles &files, uint32_t num_threads, const char *index_prefix, + const char *pq_prefix = nullptr); +#else + // load compressed data, and obtains the handle to the disk-resident index + DISKANN_DLLEXPORT int load(uint32_t num_threads, const char *index_prefix, const char *pq_prefix = nullptr, + const char *partition_prefix = nullptr); +#endif + +#ifdef EXEC_ENV_OLS + DISKANN_DLLEXPORT int load_from_separate_paths(diskann::MemoryMappedFiles &files, uint32_t num_threads, + const char *index_filepath, const char *pivots_filepath, + const char *compressed_filepath, const char *graph_file); +#else + DISKANN_DLLEXPORT int load_from_separate_paths(uint32_t num_threads, const char *index_filepath, + const char *pivots_filepath, const char *compressed_filepath, + const char *graph_file, const char *partition_file); +#endif + + DISKANN_DLLEXPORT void load_cache_list(std::vector &node_list); + +#ifdef EXEC_ENV_OLS + DISKANN_DLLEXPORT void generate_cache_list_from_sample_queries(MemoryMappedFiles &files, std::string sample_bin, + uint64_t l_search, uint64_t beamwidth, + uint64_t num_nodes_to_cache, uint32_t nthreads, + std::vector &node_list); +#else + DISKANN_DLLEXPORT void generate_cache_list_from_sample_queries(std::string sample_bin, uint64_t l_search, + uint64_t beamwidth, uint64_t num_nodes_to_cache, + uint32_t num_threads, + std::vector &node_list); +#endif + + DISKANN_DLLEXPORT void cache_bfs_levels(uint64_t num_nodes_to_cache, std::vector &node_list, + const bool shuffle = false); + + DISKANN_DLLEXPORT void cached_beam_search(const T *query, const uint64_t k_search, const uint64_t l_search, + uint64_t *res_ids, float *res_dists, const uint64_t beam_width, + const bool use_reorder_data = false, QueryStats *stats = nullptr, + const bool USE_DEFERRED_FETCH = false, + const bool skip_search_reorder = false, + const bool recompute_beighbor_embeddings = false, + const bool dedup_node_dis = false, float prune_ratio = 0, + const bool batch_recompute = false, bool global_pruning = false); + + DISKANN_DLLEXPORT void cached_beam_search(const T *query, const uint64_t k_search, const uint64_t l_search, + uint64_t *res_ids, float *res_dists, const uint64_t beam_width, + const bool use_filter, const LabelT &filter_label, + const bool use_reorder_data = false, QueryStats *stats = nullptr, + const bool USE_DEFERRED_FETCH = false, + const bool skip_search_reorder = false, + const bool recompute_beighbor_embeddings = false, + const bool dedup_node_dis = false, float prune_ratio = 0, + const bool batch_recompute = false, bool global_pruning = false); + + DISKANN_DLLEXPORT void cached_beam_search(const T *query, const uint64_t k_search, const uint64_t l_search, + uint64_t *res_ids, float *res_dists, const uint64_t beam_width, + const uint32_t io_limit, const bool use_reorder_data = false, + QueryStats *stats = nullptr, const bool USE_DEFERRED_FETCH = false, + const bool skip_search_reorder = false, + const bool recompute_beighbor_embeddings = false, + const bool dedup_node_dis = false, float prune_ratio = 0, + const bool batch_recompute = false, bool global_pruning = false); + + DISKANN_DLLEXPORT void cached_beam_search(const T *query, const uint64_t k_search, const uint64_t l_search, + uint64_t *res_ids, float *res_dists, const uint64_t beam_width, + const bool use_filter, const LabelT &filter_label, + const uint32_t io_limit, const bool use_reorder_data = false, + QueryStats *stats = nullptr, const bool USE_DEFERRED_FETCH = false, + const bool skip_search_reorder = false, + const bool recompute_beighbor_embeddings = false, + const bool dedup_node_dis = false, float prune_ratio = 0, + const bool batch_recompute = false, bool global_pruning = false); + + DISKANN_DLLEXPORT LabelT get_converted_label(const std::string &filter_label); + + DISKANN_DLLEXPORT uint32_t range_search(const T *query1, const double range, const uint64_t min_l_search, + const uint64_t max_l_search, std::vector &indices, + std::vector &distances, const uint64_t min_beam_width, + QueryStats *stats = nullptr); + + DISKANN_DLLEXPORT uint64_t get_data_dim(); + + std::shared_ptr &reader; + + DISKANN_DLLEXPORT diskann::Metric get_metric(); + + // + // node_ids: input list of node_ids to be read + // coord_buffers: pointers to pre-allocated buffers that coords need to copied to. If null, dont copy. + // nbr_buffers: pre-allocated buffers to copy neighbors into + // + // returns a vector of bool one for each node_id: true if read is success, else false + // + DISKANN_DLLEXPORT std::vector read_nodes(const std::vector &node_ids, + std::vector &coord_buffers, + std::vector> &nbr_buffers); + + DISKANN_DLLEXPORT std::vector get_pq_vector(std::uint64_t vid); + DISKANN_DLLEXPORT uint64_t get_num_points(); + + protected: + DISKANN_DLLEXPORT void use_medoids_data_as_centroids(); + DISKANN_DLLEXPORT void setup_thread_data(uint64_t nthreads, uint64_t visited_reserve = 4096); + + DISKANN_DLLEXPORT void set_universal_label(const LabelT &label); + + private: + DISKANN_DLLEXPORT inline bool point_has_label(uint32_t point_id, LabelT label_id); + std::unordered_map load_label_map(std::basic_istream &infile); + DISKANN_DLLEXPORT void parse_label_file(std::basic_istream &infile, size_t &num_pts_labels); + DISKANN_DLLEXPORT void get_label_file_metadata(const std::string &fileContent, uint32_t &num_pts, + uint32_t &num_total_labels); + DISKANN_DLLEXPORT void generate_random_labels(std::vector &labels, const uint32_t num_labels, + const uint32_t nthreads); + void reset_stream_for_reading(std::basic_istream &infile); + + // sector # on disk where node_id is present with in the graph part + DISKANN_DLLEXPORT uint64_t get_node_sector(uint64_t node_id); + + // ptr to start of the node + DISKANN_DLLEXPORT char *offset_to_node(char *sector_buf, uint64_t node_id); + + // returns region of `node_buf` containing [NNBRS][NBR_ID(uint32_t)] + DISKANN_DLLEXPORT uint32_t *offset_to_node_nhood(char *node_buf); + + // returns region of `node_buf` containing [COORD(T)] + DISKANN_DLLEXPORT T *offset_to_node_coords(char *node_buf); + + DISKANN_DLLEXPORT int load_graph_index(const std::string &graph_index_file); + + DISKANN_DLLEXPORT int read_partition_info(const std::string &partition_bin); + + DISKANN_DLLEXPORT int read_neighbors(const std::string &graph_index_file, uint64_t target_node_id); + + // index info for multi-node sectors + // nhood of node `i` is in sector: [i / nnodes_per_sector] + // offset in sector: [(i % nnodes_per_sector) * max_node_len] + // + // index info for multi-sector nodes + // nhood of node `i` is in sector: [i * DIV_ROUND_UP(_max_node_len, SECTOR_LEN)] + // offset in sector: [0] + // + // Common info + // coords start at ofsset + // #nbrs of node `i`: *(unsigned*) (offset + disk_bytes_per_point) + // nbrs of node `i` : (unsigned*) (offset + disk_bytes_per_point + 1) + + uint64_t _max_node_len = 0; + uint64_t _nnodes_per_sector = 0; // 0 for multi-sector nodes, >0 for multi-node sectors + uint64_t _max_degree = 0; + uint64_t _C = 0; + // Data used for searching with re-order vectors + uint64_t _ndims_reorder_vecs = 0; + uint64_t _reorder_data_start_sector = 0; + uint64_t _nvecs_per_sector = 0; + + diskann::Metric metric = diskann::Metric::L2; + + // used only for inner product search to re-scale the result value + // (due to the pre-processing of base during index build) + float _max_base_norm = 0.0f; + + // data info + uint64_t _num_points = 0; + uint64_t _num_frozen_points = 0; + uint64_t _frozen_location = 0; + uint64_t _data_dim = 0; + uint64_t _aligned_dim = 0; + uint64_t _disk_bytes_per_point = 0; // Number of bytes + + std::string _disk_index_file; + std::vector> _node_visit_counter; + + // PQ data + // _n_chunks = # of chunks ndims is split into + // data: char * _n_chunks + // chunk_size = chunk size of each dimension chunk + // pq_tables = float* [[2^8 * [chunk_size]] * _n_chunks] + uint8_t *data = nullptr; + uint64_t _n_chunks; + FixedChunkPQTable _pq_table; + + // distance comparator + std::shared_ptr> _dist_cmp; + std::shared_ptr> _dist_cmp_float; + + // for very large datasets: we use PQ even for the disk resident index + bool _use_disk_index_pq = false; + uint64_t _disk_pq_n_chunks = 0; + FixedChunkPQTable _disk_pq_table; + + // medoid/start info + + // graph has one entry point by default, + // we can optionally have multiple starting points + uint32_t *_medoids = nullptr; + // defaults to 1 + size_t _num_medoids; + // by default, it is empty. If there are multiple + // centroids, we pick the medoid corresponding to the + // closest centroid as the starting point of search + float *_centroid_data = nullptr; + + // nhood_cache; the uint32_t in nhood_Cache are offsets into nhood_cache_buf + unsigned *_nhood_cache_buf = nullptr; + tsl::robin_map> _nhood_cache; + + // coord_cache; The T* in coord_cache are offsets into coord_cache_buf + T *_coord_cache_buf = nullptr; + tsl::robin_map _coord_cache; + + // thread-specific scratch + ConcurrentQueue *> _thread_data; + uint64_t _max_nthreads; + bool _load_flag = false; + bool _count_visited_nodes = false; + bool _reorder_data_exists = false; + uint64_t _reoreder_data_offset = 0; + + // filter support + uint32_t *_pts_to_label_offsets = nullptr; + uint32_t *_pts_to_label_counts = nullptr; + LabelT *_pts_to_labels = nullptr; + std::unordered_map> _filter_to_medoid_ids; + bool _use_universal_label = false; + LabelT _universal_filter_label; + tsl::robin_set _dummy_pts; + tsl::robin_set _has_dummy_pts; + tsl::robin_map _dummy_to_real_map; + tsl::robin_map> _real_to_dummy_map; + std::unordered_map _label_map; + + private: + bool _use_partition = false; + + std::shared_ptr graph_reader; // Graph file reader + std::string _graph_index_file; // Graph file path + uint64_t _graph_node_len; // Graph node length + uint64_t _emb_node_len; // Embedding node length + + // Partition related data structures + uint64_t _num_partitions; // Number of partitions + std::vector> _graph_partitions; // Partition information + std::vector _id2partition; // ID to partition mapping + +#ifdef EXEC_ENV_OLS + // Set to a larger value than the actual header to accommodate + // any additions we make to the header. This is an outer limit + // on how big the header can be. + static const int HEADER_SIZE = defaults::SECTOR_LEN; + char *getHeaderBytes(); +#endif +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/pq_l2_distance.h b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_l2_distance.h new file mode 100644 index 0000000..e6fc6e4 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_l2_distance.h @@ -0,0 +1,87 @@ +#pragma once +#include "quantized_distance.h" + +namespace diskann +{ +template class PQL2Distance : public QuantizedDistance +{ + public: + // REFACTOR TODO: We could take a file prefix here and load the + // PQ pivots file, so that the distance object is initialized + // immediately after construction. But this would not work well + // with our data store concept where the store is created first + // and data populated after. + // REFACTOR TODO: Ideally, we should only read the num_chunks from + // the pivots file. However, we read the pivots file only later, but + // clients can call functions like get__filename without calling + // load_pivot_data. Hence this. The TODO is whether we should check + // that the num_chunks from the file is the same as this one. + + PQL2Distance(uint32_t num_chunks, bool use_opq = false); + + virtual ~PQL2Distance() override; + + virtual bool is_opq() const override; + + virtual std::string get_quantized_vectors_filename(const std::string &prefix) const override; + virtual std::string get_pivot_data_filename(const std::string &prefix) const override; + virtual std::string get_rotation_matrix_suffix(const std::string &pq_pivots_filename) const override; + +#ifdef EXEC_ENV_OLS + virtual void load_pivot_data(MemoryMappedFiles &files, const std::string &pq_table_file, + size_t num_chunks) override; +#else + virtual void load_pivot_data(const std::string &pq_table_file, size_t num_chunks) override; +#endif + + // Number of chunks in the PQ table. Depends on the compression level used. + // Has to be < ndim + virtual uint32_t get_num_chunks() const override; + + // Preprocess the query by computing chunk distances from the query vector to + // various centroids. Since we don't want this class to do scratch management, + // we will take a PQScratch object which can come either from Index class or + // PQFlashIndex class. + virtual void preprocess_query(const data_t *aligned_query, uint32_t original_dim, + PQScratch &pq_scratch) override; + + // Distance function used for graph traversal. This function must be called + // after + // preprocess_query. The reason we do not call preprocess ourselves is because + // that function has to be called once per query, while this function is + // called at each iteration of the graph walk. NOTE: This function expects + // 1. the query to be preprocessed using preprocess_query() + // 2. the scratch object to contain the quantized vectors corresponding to ids + // in aligned_pq_coord_scratch. Done by calling aggregate_coords() + // + virtual void preprocessed_distance(PQScratch &pq_scratch, const uint32_t id_count, + float *dists_out) override; + + // Same as above, but returns the distances in a vector instead of an array. + // Convenience function for index.cpp. + virtual void preprocessed_distance(PQScratch &pq_scratch, const uint32_t n_ids, + std::vector &dists_out) override; + + // Currently this function is required for DiskPQ. However, it too can be + // subsumed under preprocessed_distance if we add the appropriate scratch + // variables to PQScratch and initialize them in + // pq_flash_index.cpp::disk_iterate_to_fixed_point() + virtual float brute_force_distance(const float *query_vec, uint8_t *base_vec) override; + + protected: + // assumes pre-processed query + virtual void prepopulate_chunkwise_distances(const float *query_vec, float *dist_vec); + + // assumes no rotation is involved + // virtual void inflate_vector(uint8_t *base_vec, float *out_vec); + + float *_tables = nullptr; // pq_tables = float array of size [256 * ndims] + uint64_t _ndims = 0; // ndims = true dimension of vectors + uint64_t _num_chunks = 0; + bool _is_opq = false; + uint32_t *_chunk_offsets = nullptr; + float *_centroid = nullptr; + float *_tables_tr = nullptr; // same as pq_tables, but col-major + float *_rotmat_tr = nullptr; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/pq_scratch.h b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_scratch.h new file mode 100644 index 0000000..95f1b13 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/pq_scratch.h @@ -0,0 +1,23 @@ +#pragma once +#include +#include "pq_common.h" +#include "utils.h" + +namespace diskann +{ + +template class PQScratch +{ + public: + float *aligned_pqtable_dist_scratch = nullptr; // MUST BE AT LEAST [256 * NCHUNKS] + float *aligned_dist_scratch = nullptr; // MUST BE AT LEAST diskann MAX_DEGREE + uint8_t *aligned_pq_coord_scratch = nullptr; // AT LEAST [N_CHUNKS * MAX_DEGREE] + float *rotated_query = nullptr; + float *aligned_query_float = nullptr; + + PQScratch(size_t graph_degree, size_t aligned_dim); + void initialize(size_t dim, const T *query, const float norm = 1.0f); + virtual ~PQScratch(); +}; + +} // namespace diskann \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/program_options_utils.hpp b/packages/leann-backend-diskann/third_party/DiskANN/include/program_options_utils.hpp new file mode 100644 index 0000000..2be6059 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/program_options_utils.hpp @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include + +namespace program_options_utils +{ +const std::string make_program_description(const char *executable_name, const char *description) +{ + return std::string("\n") + .append(description) + .append("\n\n") + .append("Usage: ") + .append(executable_name) + .append(" [OPTIONS]"); +} + +// Required parameters +const char *DATA_TYPE_DESCRIPTION = "data type, one of {int8, uint8, float} - float is single precision (32 bit)"; +const char *DISTANCE_FUNCTION_DESCRIPTION = + "distance function {l2, mips, fast_l2, cosine}. 'fast l2' and 'mips' only support data_type float"; +const char *INDEX_PATH_PREFIX_DESCRIPTION = "Path prefix to the index, e.g. '/mnt/data/my_ann_index'"; +const char *RESULT_PATH_DESCRIPTION = + "Path prefix for saving results of the queries, e.g. '/mnt/data/query_file_X.bin'"; +const char *QUERY_FILE_DESCRIPTION = "Query file in binary format, e.g. '/mnt/data/query_file_X.bin'"; +const char *NUMBER_OF_RESULTS_DESCRIPTION = "Number of neighbors to be returned (K in the DiskANN white paper)"; +const char *SEARCH_LIST_DESCRIPTION = + "Size of search list to use. This value is the number of neighbor/distance pairs to keep in memory at the same " + "time while performing a query. This can also be described as the size of the working set at query time. This " + "must be greater than or equal to the number of results/neighbors to return (K in the white paper). Corresponds " + "to L in the DiskANN white paper."; +const char *INPUT_DATA_PATH = "Input data file in bin format. This is the file you want to build the index over. " + "File format: Shape of the vector followed by the vector of embeddings as binary data."; + +// Optional parameters +const char *FILTER_LABEL_DESCRIPTION = + "Filter to use when running a query. 'filter_label' and 'query_filters_file' are mutually exclusive."; +const char *FILTERS_FILE_DESCRIPTION = + "Filter file for Queries for Filtered Search. File format is text with one filter per line. File must " + "have exactly one filter OR the same number of filters as there are queries in the 'query_file'."; +const char *LABEL_TYPE_DESCRIPTION = + "Storage type of Labels {uint/uint32, ushort/uint16}, default value is uint which will consume memory 4 bytes per " + "filter. 'uint' is an alias for 'uint32' and 'ushort' is an alias for 'uint16'."; +const char *GROUND_TRUTH_FILE_DESCRIPTION = + "ground truth file for the queryset"; // what's the format, what's the requirements? does it need to include an + // entry for every item or just a small subset? I have so many questions about + // this file +const char *NUMBER_THREADS_DESCRIPTION = "Number of threads used for building index. Defaults to number of logical " + "processor cores on your this machine returned by omp_get_num_procs()"; +const char *FAIL_IF_RECALL_BELOW = + "Value between 0 (inclusive) and 100 (exclusive) indicating the recall tolerance percentage threshold before " + "program fails with a non-zero exit code. The default value of 0 means that the program will complete " + "successfully with any recall value. A non-zero value indicates the floor for acceptable recall values. If the " + "calculated recall value is below this threshold then the program will write out the results but return a non-zero " + "exit code as a signal that the recall was not acceptable."; // does it continue running or die immediately? Will I + // still get my results even if the return code is -1? + +const char *NUMBER_OF_NODES_TO_CACHE = "Number of BFS nodes around medoid(s) to cache. Default value: 0"; +const char *BEAMWIDTH = "Beamwidth for search. Set 0 to optimize internally. Default value: 2"; +const char *MAX_BUILD_DEGREE = "Maximum graph degree"; +const char *GRAPH_BUILD_COMPLEXITY = + "Size of the search working set during build time. This is the numer of neighbor/distance pairs to keep in memory " + "while building the index. Higher value results in a higher quality graph but it will take more time to build the " + "graph."; +const char *GRAPH_BUILD_ALPHA = "Alpha controls density and diameter of graph, set 1 for sparse graph, 1.2 or 1.4 for " + "denser graphs with lower diameter"; +const char *BUIlD_GRAPH_PQ_BYTES = "Number of PQ bytes to build the index; 0 for full precision build"; +const char *USE_OPQ = "Use Optimized Product Quantization (OPQ)."; +const char *LABEL_FILE = "Input label file in txt format for Filtered Index build. The file should contain comma " + "separated filters for each node with each line corresponding to a graph node"; +const char *UNIVERSAL_LABEL = + "Universal label, Use only in conjunction with label file for filtered index build. If a " + "graph node has all the labels against it, we can assign a special universal filter to the " + "point instead of comma separated filters for that point. The universal label should be assigned to nodes " + "in the labels file instead of listing all labels for a node. DiskANN will not automatically assign a " + "universal label to a node."; +const char *FILTERED_LBUILD = "Build complexity for filtered points, higher value results in better graphs"; + +} // namespace program_options_utils diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/proto_embedding.h b/packages/leann-backend-diskann/third_party/DiskANN/include/proto_embedding.h new file mode 100644 index 0000000..f17e225 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/proto_embedding.h @@ -0,0 +1,9 @@ +#pragma once + +#include "embedding.pb.h" + +// This header ensures that the protobuf files are included correctly +// and provides a namespace alias for convenience +namespace diskann { + namespace proto = protoembedding; +} diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/quantized_distance.h b/packages/leann-backend-diskann/third_party/DiskANN/include/quantized_distance.h new file mode 100644 index 0000000..cc4aea9 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/quantized_distance.h @@ -0,0 +1,56 @@ +#pragma once +#include +#include +#include +#include "abstract_scratch.h" + +namespace diskann +{ +template class PQScratch; + +template class QuantizedDistance +{ + public: + QuantizedDistance() = default; + QuantizedDistance(const QuantizedDistance &) = delete; + QuantizedDistance &operator=(const QuantizedDistance &) = delete; + virtual ~QuantizedDistance() = default; + + virtual bool is_opq() const = 0; + virtual std::string get_quantized_vectors_filename(const std::string &prefix) const = 0; + virtual std::string get_pivot_data_filename(const std::string &prefix) const = 0; + virtual std::string get_rotation_matrix_suffix(const std::string &pq_pivots_filename) const = 0; + + // Loading the PQ centroid table need not be part of the abstract class. + // However, we want to indicate that this function will change once we have a + // file reader hierarchy, so leave it here as-is. +#ifdef EXEC_ENV_OLS + virtual void load_pivot_data(MemoryMappedFiles &files, const std::String &pq_table_file, size_t num_chunks) = 0; +#else + virtual void load_pivot_data(const std::string &pq_table_file, size_t num_chunks) = 0; +#endif + + // Number of chunks in the PQ table. Depends on the compression level used. + // Has to be < ndim + virtual uint32_t get_num_chunks() const = 0; + + // Preprocess the query by computing chunk distances from the query vector to + // various centroids. Since we don't want this class to do scratch management, + // we will take a PQScratch object which can come either from Index class or + // PQFlashIndex class. + virtual void preprocess_query(const data_t *query_vec, uint32_t query_dim, PQScratch &pq_scratch) = 0; + + // Workhorse + // This function must be called after preprocess_query + virtual void preprocessed_distance(PQScratch &pq_scratch, const uint32_t id_count, float *dists_out) = 0; + + // Same as above, but convenience function for index.cpp. + virtual void preprocessed_distance(PQScratch &pq_scratch, const uint32_t n_ids, + std::vector &dists_out) = 0; + + // Currently this function is required for DiskPQ. However, it too can be subsumed + // under preprocessed_distance if we add the appropriate scratch variables to + // PQScratch and initialize them in pq_flash_index.cpp::disk_iterate_to_fixed_point() + virtual float brute_force_distance(const float *query_vec, uint8_t *base_vec) = 0; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/common.h b/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/common.h new file mode 100644 index 0000000..b833963 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/common.h @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +namespace diskann +{ +// Constants +static const std::string VECTOR_KEY = "query", K_KEY = "k", INDICES_KEY = "indices", DISTANCES_KEY = "distances", + TAGS_KEY = "tags", QUERY_ID_KEY = "query_id", ERROR_MESSAGE_KEY = "error", L_KEY = "Ls", + TIME_TAKEN_KEY = "time_taken_in_us", PARTITION_KEY = "partition", + UNKNOWN_ERROR = "unknown_error"; +const unsigned int DEFAULT_L = 100; + +} // namespace diskann \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/search_wrapper.h b/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/search_wrapper.h new file mode 100644 index 0000000..ebd067d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/search_wrapper.h @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include + +#include +#include + +namespace diskann +{ +class SearchResult +{ + public: + SearchResult(unsigned int K, unsigned int elapsed_time_in_ms, const unsigned *const indices, + const float *const distances, const std::string *const tags = nullptr, + const unsigned *const partitions = nullptr); + + const std::vector &get_indices() const + { + return _indices; + } + const std::vector &get_distances() const + { + return _distances; + } + bool tags_enabled() const + { + return _tags_enabled; + } + const std::vector &get_tags() const + { + return _tags; + } + bool partitions_enabled() const + { + return _partitions_enabled; + } + const std::vector &get_partitions() const + { + return _partitions; + } + unsigned get_time() const + { + return _search_time_in_ms; + } + + private: + unsigned int _K; + unsigned int _search_time_in_ms; + std::vector _indices; + std::vector _distances; + + bool _tags_enabled; + std::vector _tags; + + bool _partitions_enabled; + std::vector _partitions; +}; + +class SearchNotImplementedException : public std::logic_error +{ + private: + std::string _errormsg; + + public: + SearchNotImplementedException(const char *type) : std::logic_error("Not Implemented") + { + _errormsg = "Search with data type "; + _errormsg += std::string(type); + _errormsg += " not implemented : "; + _errormsg += __FUNCTION__; + } + + virtual const char *what() const throw() + { + return _errormsg.c_str(); + } +}; + +class BaseSearch +{ + public: + BaseSearch(const std::string &tagsFile = nullptr); + virtual SearchResult search(const float *query, const unsigned int dimensions, const unsigned int K, + const unsigned int Ls) + { + throw SearchNotImplementedException("float"); + } + virtual SearchResult search(const int8_t *query, const unsigned int dimensions, const unsigned int K, + const unsigned int Ls) + { + throw SearchNotImplementedException("int8_t"); + } + + virtual SearchResult search(const uint8_t *query, const unsigned int dimensions, const unsigned int K, + const unsigned int Ls) + { + throw SearchNotImplementedException("uint8_t"); + } + + void lookup_tags(const unsigned K, const unsigned *indices, std::string *ret_tags); + + protected: + bool _tags_enabled; + std::vector _tags_str; +}; + +template class InMemorySearch : public BaseSearch +{ + public: + InMemorySearch(const std::string &baseFile, const std::string &indexFile, const std::string &tagsFile, Metric m, + uint32_t num_threads, uint32_t search_l); + virtual ~InMemorySearch(); + + SearchResult search(const T *query, const unsigned int dimensions, const unsigned int K, const unsigned int Ls); + + private: + unsigned int _dimensions, _numPoints; + std::unique_ptr> _index; +}; + +template class PQFlashSearch : public BaseSearch +{ + public: + PQFlashSearch(const std::string &indexPrefix, const unsigned num_nodes_to_cache, const unsigned num_threads, + const std::string &tagsFile, Metric m); + virtual ~PQFlashSearch(); + + SearchResult search(const T *query, const unsigned int dimensions, const unsigned int K, const unsigned int Ls); + + private: + unsigned int _dimensions, _numPoints; + std::unique_ptr> _index; + std::shared_ptr reader; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/server.h b/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/server.h new file mode 100644 index 0000000..1d75847 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/restapi/server.h @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +namespace diskann +{ +class Server +{ + public: + Server(web::uri &url, std::vector> &multi_searcher, + const std::string &typestring); + virtual ~Server(); + + pplx::task open(); + pplx::task close(); + + protected: + template void handle_post(web::http::http_request message); + + template + web::json::value toJsonArray(const std::vector &v, std::function valConverter); + web::json::value prepareResponse(const int64_t &queryId, const int k); + + template + void parseJson(const utility::string_t &body, unsigned int &k, int64_t &queryId, T *&queryVector, + unsigned int &dimensions, unsigned &Ls); + + web::json::value idsToJsonArray(const diskann::SearchResult &result); + web::json::value distancesToJsonArray(const diskann::SearchResult &result); + web::json::value tagsToJsonArray(const diskann::SearchResult &result); + web::json::value partitionsToJsonArray(const diskann::SearchResult &result); + + SearchResult aggregate_results(const unsigned K, const std::vector &results); + + private: + bool _isDebug; + std::unique_ptr _listener; + const bool _multi_search; + std::vector> _multi_searcher; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/scratch.h b/packages/leann-backend-diskann/third_party/DiskANN/include/scratch.h new file mode 100644 index 0000000..2f43e33 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/scratch.h @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include + +#include "boost_dynamic_bitset_fwd.h" +// #include "boost/dynamic_bitset.hpp" +#include "tsl/robin_set.h" +#include "tsl/robin_map.h" +#include "tsl/sparse_map.h" + +#include "aligned_file_reader.h" +#include "abstract_scratch.h" +#include "neighbor.h" +#include "defaults.h" +#include "concurrent_queue.h" + +namespace diskann +{ +template class PQScratch; + +// +// AbstractScratch space for in-memory index based search +// +template class InMemQueryScratch : public AbstractScratch +{ + public: + ~InMemQueryScratch(); + InMemQueryScratch(uint32_t search_l, uint32_t indexing_l, uint32_t r, uint32_t maxc, size_t dim, size_t aligned_dim, + size_t alignment_factor, bool init_pq_scratch = false); + void resize_for_new_L(uint32_t new_search_l); + void clear(); + + inline uint32_t get_L() + { + return _L; + } + inline uint32_t get_R() + { + return _R; + } + inline uint32_t get_maxc() + { + return _maxc; + } + inline T *aligned_query() + { + return this->_aligned_query_T; + } + inline PQScratch *pq_scratch() + { + return this->_pq_scratch; + } + inline std::vector &pool() + { + return _pool; + } + inline NeighborPriorityQueue &best_l_nodes() + { + return _best_l_nodes; + } + inline std::vector &occlude_factor() + { + return _occlude_factor; + } + inline tsl::robin_set &inserted_into_pool_rs() + { + return _inserted_into_pool_rs; + } + inline boost::dynamic_bitset<> &inserted_into_pool_bs() + { + return *_inserted_into_pool_bs; + } + inline std::vector &id_scratch() + { + return _id_scratch; + } + inline std::vector &dist_scratch() + { + return _dist_scratch; + } + inline tsl::robin_set &expanded_nodes_set() + { + return _expanded_nodes_set; + } + inline std::vector &expanded_nodes_vec() + { + return _expanded_nghrs_vec; + } + inline std::vector &occlude_list_output() + { + return _occlude_list_output; + } + + private: + uint32_t _L; + uint32_t _R; + uint32_t _maxc; + + // _pool stores all neighbors explored from best_L_nodes. + // Usually around L+R, but could be higher. + // Initialized to 3L+R for some slack, expands as needed. + std::vector _pool; + + // _best_l_nodes is reserved for storing best L entries + // Underlying storage is L+1 to support inserts + NeighborPriorityQueue _best_l_nodes; + + // _occlude_factor.size() >= pool.size() in occlude_list function + // _pool is clipped to maxc in occlude_list before affecting _occlude_factor + // _occlude_factor is initialized to maxc size + std::vector _occlude_factor; + + // Capacity initialized to 20L + tsl::robin_set _inserted_into_pool_rs; + + // Use a pointer here to allow for forward declaration of dynamic_bitset + // in public headers to avoid making boost a dependency for clients + // of DiskANN. + boost::dynamic_bitset<> *_inserted_into_pool_bs; + + // _id_scratch.size() must be > R*GRAPH_SLACK_FACTOR for iterate_to_fp + std::vector _id_scratch; + + // _dist_scratch must be > R*GRAPH_SLACK_FACTOR for iterate_to_fp + // _dist_scratch should be at least the size of id_scratch + std::vector _dist_scratch; + + // Buffers used in process delete, capacity increases as needed + tsl::robin_set _expanded_nodes_set; + std::vector _expanded_nghrs_vec; + std::vector _occlude_list_output; +}; + +// +// AbstractScratch space for SSD index based search +// + +template class SSDQueryScratch : public AbstractScratch +{ + public: + T *coord_scratch = nullptr; // MUST BE AT LEAST [sizeof(T) * data_dim] + + char *sector_scratch = nullptr; // MUST BE AT LEAST [MAX_N_SECTOR_READS * SECTOR_LEN] + size_t sector_idx = 0; // index of next [SECTOR_LEN] scratch to use + + tsl::robin_set visited; + NeighborPriorityQueue retset; + std::vector full_retset; + + SSDQueryScratch(size_t aligned_dim, size_t visited_reserve); + ~SSDQueryScratch(); + + void reset(); +}; + +template class SSDThreadData +{ + public: + SSDQueryScratch scratch; + IOContext ctx; + + SSDThreadData(size_t aligned_dim, size_t visited_reserve); + void clear(); +}; + +// +// Class to avoid the hassle of pushing and popping the query scratch. +// +template class ScratchStoreManager +{ + public: + ScratchStoreManager(ConcurrentQueue &query_scratch) : _scratch_pool(query_scratch) + { + _scratch = query_scratch.pop(); + while (_scratch == nullptr) + { + query_scratch.wait_for_push_notify(); + _scratch = query_scratch.pop(); + } + } + T *scratch_space() + { + return _scratch; + } + + ~ScratchStoreManager() + { + _scratch->clear(); + _scratch_pool.push(_scratch); + _scratch_pool.push_notify_all(); + } + + void destroy() + { + while (!_scratch_pool.empty()) + { + auto scratch = _scratch_pool.pop(); + while (scratch == nullptr) + { + _scratch_pool.wait_for_push_notify(); + scratch = _scratch_pool.pop(); + } + delete scratch; + } + } + + private: + T *_scratch; + ConcurrentQueue &_scratch_pool; + ScratchStoreManager(const ScratchStoreManager &); + ScratchStoreManager &operator=(const ScratchStoreManager &); +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/simd_utils.h b/packages/leann-backend-diskann/third_party/DiskANN/include/simd_utils.h new file mode 100644 index 0000000..4b07369 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/simd_utils.h @@ -0,0 +1,106 @@ +#pragma once + +#ifdef _WINDOWS +#include +#include +#include +#include +#else +#include +#endif + +namespace diskann +{ +static inline __m256 _mm256_mul_epi8(__m256i X) +{ + __m256i zero = _mm256_setzero_si256(); + + __m256i sign_x = _mm256_cmpgt_epi8(zero, X); + + __m256i xlo = _mm256_unpacklo_epi8(X, sign_x); + __m256i xhi = _mm256_unpackhi_epi8(X, sign_x); + + return _mm256_cvtepi32_ps(_mm256_add_epi32(_mm256_madd_epi16(xlo, xlo), _mm256_madd_epi16(xhi, xhi))); +} + +static inline __m128 _mm_mulhi_epi8(__m128i X) +{ + __m128i zero = _mm_setzero_si128(); + __m128i sign_x = _mm_cmplt_epi8(X, zero); + __m128i xhi = _mm_unpackhi_epi8(X, sign_x); + + return _mm_cvtepi32_ps(_mm_add_epi32(_mm_setzero_si128(), _mm_madd_epi16(xhi, xhi))); +} + +static inline __m128 _mm_mulhi_epi8_shift32(__m128i X) +{ + __m128i zero = _mm_setzero_si128(); + X = _mm_srli_epi64(X, 32); + __m128i sign_x = _mm_cmplt_epi8(X, zero); + __m128i xhi = _mm_unpackhi_epi8(X, sign_x); + + return _mm_cvtepi32_ps(_mm_add_epi32(_mm_setzero_si128(), _mm_madd_epi16(xhi, xhi))); +} +static inline __m128 _mm_mul_epi8(__m128i X, __m128i Y) +{ + __m128i zero = _mm_setzero_si128(); + + __m128i sign_x = _mm_cmplt_epi8(X, zero); + __m128i sign_y = _mm_cmplt_epi8(Y, zero); + + __m128i xlo = _mm_unpacklo_epi8(X, sign_x); + __m128i xhi = _mm_unpackhi_epi8(X, sign_x); + __m128i ylo = _mm_unpacklo_epi8(Y, sign_y); + __m128i yhi = _mm_unpackhi_epi8(Y, sign_y); + + return _mm_cvtepi32_ps(_mm_add_epi32(_mm_madd_epi16(xlo, ylo), _mm_madd_epi16(xhi, yhi))); +} +static inline __m128 _mm_mul_epi8(__m128i X) +{ + __m128i zero = _mm_setzero_si128(); + __m128i sign_x = _mm_cmplt_epi8(X, zero); + __m128i xlo = _mm_unpacklo_epi8(X, sign_x); + __m128i xhi = _mm_unpackhi_epi8(X, sign_x); + + return _mm_cvtepi32_ps(_mm_add_epi32(_mm_madd_epi16(xlo, xlo), _mm_madd_epi16(xhi, xhi))); +} + +static inline __m128 _mm_mul32_pi8(__m128i X, __m128i Y) +{ + __m128i xlo = _mm_cvtepi8_epi16(X), ylo = _mm_cvtepi8_epi16(Y); + return _mm_cvtepi32_ps(_mm_unpacklo_epi32(_mm_madd_epi16(xlo, ylo), _mm_setzero_si128())); +} + +static inline __m256 _mm256_mul_epi8(__m256i X, __m256i Y) +{ + __m256i zero = _mm256_setzero_si256(); + + __m256i sign_x = _mm256_cmpgt_epi8(zero, X); + __m256i sign_y = _mm256_cmpgt_epi8(zero, Y); + + __m256i xlo = _mm256_unpacklo_epi8(X, sign_x); + __m256i xhi = _mm256_unpackhi_epi8(X, sign_x); + __m256i ylo = _mm256_unpacklo_epi8(Y, sign_y); + __m256i yhi = _mm256_unpackhi_epi8(Y, sign_y); + + return _mm256_cvtepi32_ps(_mm256_add_epi32(_mm256_madd_epi16(xlo, ylo), _mm256_madd_epi16(xhi, yhi))); +} + +static inline __m256 _mm256_mul32_pi8(__m128i X, __m128i Y) +{ + __m256i xlo = _mm256_cvtepi8_epi16(X), ylo = _mm256_cvtepi8_epi16(Y); + return _mm256_blend_ps(_mm256_cvtepi32_ps(_mm256_madd_epi16(xlo, ylo)), _mm256_setzero_ps(), 252); +} + +static inline float _mm256_reduce_add_ps(__m256 x) +{ + /* ( x3+x7, x2+x6, x1+x5, x0+x4 ) */ + const __m128 x128 = _mm_add_ps(_mm256_extractf128_ps(x, 1), _mm256_castps256_ps128(x)); + /* ( -, -, x1+x3+x5+x7, x0+x2+x4+x6 ) */ + const __m128 x64 = _mm_add_ps(x128, _mm_movehl_ps(x128, x128)); + /* ( -, -, -, x0+x1+x2+x3+x4+x5+x6+x7 ) */ + const __m128 x32 = _mm_add_ss(x64, _mm_shuffle_ps(x64, x64, 0x55)); + /* Conversion to float is a no-op on x86-64 */ + return _mm_cvtss_f32(x32); +} +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tag_uint128.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tag_uint128.h new file mode 100644 index 0000000..642de31 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tag_uint128.h @@ -0,0 +1,68 @@ +#pragma once +#include +#include + +namespace diskann +{ +#pragma pack(push, 1) + +struct tag_uint128 +{ + std::uint64_t _data1 = 0; + std::uint64_t _data2 = 0; + + bool operator==(const tag_uint128 &other) const + { + return _data1 == other._data1 && _data2 == other._data2; + } + + bool operator==(std::uint64_t other) const + { + return _data1 == other && _data2 == 0; + } + + tag_uint128 &operator=(const tag_uint128 &other) + { + _data1 = other._data1; + _data2 = other._data2; + + return *this; + } + + tag_uint128 &operator=(std::uint64_t other) + { + _data1 = other; + _data2 = 0; + + return *this; + } +}; + +#pragma pack(pop) +} // namespace diskann + +namespace std +{ +// Hash 128 input bits down to 64 bits of output. +// This is intended to be a reasonably good hash function. +inline std::uint64_t Hash128to64(const std::uint64_t &low, const std::uint64_t &high) +{ + // Murmur-inspired hashing. + const std::uint64_t kMul = 0x9ddfea08eb382d69ULL; + std::uint64_t a = (low ^ high) * kMul; + a ^= (a >> 47); + std::uint64_t b = (high ^ a) * kMul; + b ^= (b >> 47); + b *= kMul; + return b; +} + +template <> struct hash +{ + size_t operator()(const diskann::tag_uint128 &key) const noexcept + { + return Hash128to64(key._data1, key._data2); // map -0 to 0 + } +}; + +} // namespace std \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/timer.h b/packages/leann-backend-diskann/third_party/DiskANN/include/timer.h new file mode 100644 index 0000000..325edf3 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/timer.h @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. +#pragma once + +#include + +namespace diskann +{ +class Timer +{ + typedef std::chrono::high_resolution_clock _clock; + std::chrono::time_point<_clock> check_point; + + public: + Timer() : check_point(_clock::now()) + { + } + + void reset() + { + check_point = _clock::now(); + } + + long long elapsed() const + { + return std::chrono::duration_cast(_clock::now() - check_point).count(); + } + + float elapsed_seconds() const + { + return (float)elapsed() / 1000000.0f; + } + + std::string elapsed_seconds_for_step(const std::string &step) const + { + return std::string("Time for ") + step + std::string(": ") + std::to_string(elapsed_seconds()) + + std::string(" seconds"); + } +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/.clang-format b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/.clang-format new file mode 100644 index 0000000..9d15924 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/.clang-format @@ -0,0 +1,2 @@ +DisableFormat: true +SortIncludes: false diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_growth_policy.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_growth_policy.h new file mode 100644 index 0000000..6bfa9e5 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_growth_policy.h @@ -0,0 +1,330 @@ +/** + * MIT License + * + * Copyright (c) 2017 Tessil + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_ROBIN_GROWTH_POLICY_H +#define TSL_ROBIN_GROWTH_POLICY_H + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifndef tsl_assert +# ifdef TSL_DEBUG +# define tsl_assert(expr) assert(expr) +# else +# define tsl_assert(expr) (static_cast(0)) +# endif +#endif + + +/** + * If exceptions are enabled, throw the exception passed in parameter, otherwise call std::terminate. + */ +#ifndef TSL_THROW_OR_TERMINATE +# if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || (defined (_MSC_VER) && defined (_CPPUNWIND))) && !defined(TSL_NO_EXCEPTIONS) +# define TSL_THROW_OR_TERMINATE(ex, msg) throw ex(msg) +# else +# ifdef NDEBUG +# define TSL_THROW_OR_TERMINATE(ex, msg) std::terminate() +# else +# include +# define TSL_THROW_OR_TERMINATE(ex, msg) do { std::fprintf(stderr, msg); std::terminate(); } while(0) +# endif +# endif +#endif + + +#ifndef TSL_LIKELY +# if defined(__GNUC__) || defined(__clang__) +# define TSL_LIKELY(exp) (__builtin_expect(!!(exp), true)) +# else +# define TSL_LIKELY(exp) (exp) +# endif +#endif + + +namespace tsl { +namespace rh { + +/** + * Grow the hash table by a factor of GrowthFactor keeping the bucket count to a power of two. It allows + * the table to use a mask operation instead of a modulo operation to map a hash to a bucket. + * + * GrowthFactor must be a power of two >= 2. + */ +template +class power_of_two_growth_policy { +public: + /** + * Called on the hash table creation and on rehash. The number of buckets for the table is passed in parameter. + * This number is a minimum, the policy may update this value with a higher value if needed (but not lower). + * + * If 0 is given, min_bucket_count_in_out must still be 0 after the policy creation and + * bucket_for_hash must always return 0 in this case. + */ + explicit power_of_two_growth_policy(std::size_t& min_bucket_count_in_out) { + if(min_bucket_count_in_out > max_bucket_count()) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + if(min_bucket_count_in_out > 0) { + min_bucket_count_in_out = round_up_to_power_of_two(min_bucket_count_in_out); + m_mask = min_bucket_count_in_out - 1; + } + else { + m_mask = 0; + } + } + + /** + * Return the bucket [0, bucket_count()) to which the hash belongs. + * If bucket_count() is 0, it must always return 0. + */ + std::size_t bucket_for_hash(std::size_t hash) const noexcept { + return hash & m_mask; + } + + /** + * Return the number of buckets that should be used on next growth. + */ + std::size_t next_bucket_count() const { + if((m_mask + 1) > max_bucket_count() / GrowthFactor) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + return (m_mask + 1) * GrowthFactor; + } + + /** + * Return the maximum number of buckets supported by the policy. + */ + std::size_t max_bucket_count() const { + // Largest power of two. + return ((std::numeric_limits::max)() / 2) + 1; + } + + /** + * Reset the growth policy as if it was created with a bucket count of 0. + * After a clear, the policy must always return 0 when bucket_for_hash is called. + */ + void clear() noexcept { + m_mask = 0; + } + +private: + static std::size_t round_up_to_power_of_two(std::size_t value) { + if(is_power_of_two(value)) { + return value; + } + + if(value == 0) { + return 1; + } + + --value; + for(std::size_t i = 1; i < sizeof(std::size_t) * CHAR_BIT; i *= 2) { + value |= value >> i; + } + + return value + 1; + } + + static constexpr bool is_power_of_two(std::size_t value) { + return value != 0 && (value & (value - 1)) == 0; + } + +protected: + static_assert(is_power_of_two(GrowthFactor) && GrowthFactor >= 2, "GrowthFactor must be a power of two >= 2."); + + std::size_t m_mask; +}; + + +/** + * Grow the hash table by GrowthFactor::num / GrowthFactor::den and use a modulo to map a hash + * to a bucket. Slower but it can be useful if you want a slower growth. + */ +template> +class mod_growth_policy { +public: + explicit mod_growth_policy(std::size_t& min_bucket_count_in_out) { + if(min_bucket_count_in_out > max_bucket_count()) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + if(min_bucket_count_in_out > 0) { + m_mod = min_bucket_count_in_out; + } + else { + m_mod = 1; + } + } + + std::size_t bucket_for_hash(std::size_t hash) const noexcept { + return hash % m_mod; + } + + std::size_t next_bucket_count() const { + if(m_mod == max_bucket_count()) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + const double next_bucket_count = std::ceil(double(m_mod) * REHASH_SIZE_MULTIPLICATION_FACTOR); + if(!std::isnormal(next_bucket_count)) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + if(next_bucket_count > double(max_bucket_count())) { + return max_bucket_count(); + } + else { + return std::size_t(next_bucket_count); + } + } + + std::size_t max_bucket_count() const { + return MAX_BUCKET_COUNT; + } + + void clear() noexcept { + m_mod = 1; + } + +private: + static constexpr double REHASH_SIZE_MULTIPLICATION_FACTOR = 1.0 * GrowthFactor::num / GrowthFactor::den; + static const std::size_t MAX_BUCKET_COUNT = + std::size_t(double( + (std::numeric_limits::max)() / REHASH_SIZE_MULTIPLICATION_FACTOR + )); + + static_assert(REHASH_SIZE_MULTIPLICATION_FACTOR >= 1.1, "Growth factor should be >= 1.1."); + + std::size_t m_mod; +}; + + + +namespace detail { + +static constexpr const std::array PRIMES = {{ + 1ul, 5ul, 17ul, 29ul, 37ul, 53ul, 67ul, 79ul, 97ul, 131ul, 193ul, 257ul, 389ul, 521ul, 769ul, 1031ul, + 1543ul, 2053ul, 3079ul, 6151ul, 12289ul, 24593ul, 49157ul, 98317ul, 196613ul, 393241ul, 786433ul, + 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul, 50331653ul, 100663319ul, 201326611ul, + 402653189ul, 805306457ul, 1610612741ul, 3221225473ul, 4294967291ul +}}; + +template +static constexpr std::size_t mod(std::size_t hash) { return hash % PRIMES[IPrime]; } + +// MOD_PRIME[iprime](hash) returns hash % PRIMES[iprime]. This table allows for faster modulo as the +// compiler can optimize the modulo code better with a constant known at the compilation. +static constexpr const std::array MOD_PRIME = {{ + &mod<0>, &mod<1>, &mod<2>, &mod<3>, &mod<4>, &mod<5>, &mod<6>, &mod<7>, &mod<8>, &mod<9>, &mod<10>, + &mod<11>, &mod<12>, &mod<13>, &mod<14>, &mod<15>, &mod<16>, &mod<17>, &mod<18>, &mod<19>, &mod<20>, + &mod<21>, &mod<22>, &mod<23>, &mod<24>, &mod<25>, &mod<26>, &mod<27>, &mod<28>, &mod<29>, &mod<30>, + &mod<31>, &mod<32>, &mod<33>, &mod<34>, &mod<35>, &mod<36>, &mod<37> , &mod<38>, &mod<39> +}}; + +} + +/** + * Grow the hash table by using prime numbers as bucket count. Slower than tsl::rh::power_of_two_growth_policy in + * general but will probably distribute the values around better in the buckets with a poor hash function. + * + * To allow the compiler to optimize the modulo operation, a lookup table is used with constant primes numbers. + * + * With a switch the code would look like: + * \code + * switch(iprime) { // iprime is the current prime of the hash table + * case 0: hash % 5ul; + * break; + * case 1: hash % 17ul; + * break; + * case 2: hash % 29ul; + * break; + * ... + * } + * \endcode + * + * Due to the constant variable in the modulo the compiler is able to optimize the operation + * by a series of multiplications, substractions and shifts. + * + * The 'hash % 5' could become something like 'hash - (hash * 0xCCCCCCCD) >> 34) * 5' in a 64 bits environement. + */ +class prime_growth_policy { +public: + explicit prime_growth_policy(std::size_t& min_bucket_count_in_out) { + auto it_prime = std::lower_bound(detail::PRIMES.begin(), + detail::PRIMES.end(), min_bucket_count_in_out); + if(it_prime == detail::PRIMES.end()) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + m_iprime = static_cast(std::distance(detail::PRIMES.begin(), it_prime)); + if(min_bucket_count_in_out > 0) { + min_bucket_count_in_out = *it_prime; + } + else { + min_bucket_count_in_out = 0; + } + } + + std::size_t bucket_for_hash(std::size_t hash) const noexcept { + return detail::MOD_PRIME[m_iprime](hash); + } + + std::size_t next_bucket_count() const { + if(m_iprime + 1 >= detail::PRIMES.size()) { + TSL_THROW_OR_TERMINATE(std::length_error, "The hash table exceeds its maxmimum size."); + } + + return detail::PRIMES[m_iprime + 1]; + } + + std::size_t max_bucket_count() const { + return detail::PRIMES.back(); + } + + void clear() noexcept { + m_iprime = 0; + } + +private: + unsigned int m_iprime; + + static_assert((std::numeric_limits::max)() >= detail::PRIMES.size(), + "The type of m_iprime is not big enough."); +}; + +} +} + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_hash.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_hash.h new file mode 100644 index 0000000..5ecc962 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_hash.h @@ -0,0 +1,1285 @@ +/** + * MIT License + * + * Copyright (c) 2017 Tessil + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_ROBIN_HASH_H +#define TSL_ROBIN_HASH_H + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "robin_growth_policy.h" + + +namespace tsl { + +namespace detail_robin_hash { + +template +struct make_void { + using type = void; +}; + +template +struct has_is_transparent: std::false_type { +}; + +template +struct has_is_transparent::type>: std::true_type { +}; + +template +struct is_power_of_two_policy: std::false_type { +}; + +template +struct is_power_of_two_policy>: std::true_type { +}; + + + +using truncated_hash_type = std::uint_least32_t; + +/** + * Helper class that store a truncated hash if StoreHash is true and nothing otherwise. + */ +template +class bucket_entry_hash { +public: + bool bucket_hash_equal(std::size_t /*hash*/) const noexcept { + return true; + } + + truncated_hash_type truncated_hash() const noexcept { + return 0; + } + +protected: + void set_hash(truncated_hash_type /*hash*/) noexcept { + } +}; + +template<> +class bucket_entry_hash { +public: + bool bucket_hash_equal(std::size_t hash) const noexcept { + return m_hash == truncated_hash_type(hash); + } + + truncated_hash_type truncated_hash() const noexcept { + return m_hash; + } + +protected: + void set_hash(truncated_hash_type hash) noexcept { + m_hash = truncated_hash_type(hash); + } + +private: + truncated_hash_type m_hash; +}; + + +/** + * Each bucket entry has: + * - A value of type `ValueType`. + * - An integer to store how far the value of the bucket, if any, is from its ideal bucket + * (ex: if the current bucket 5 has the value 'foo' and `hash('foo') % nb_buckets` == 3, + * `dist_from_ideal_bucket()` will return 2 as the current value of the bucket is two + * buckets away from its ideal bucket) + * If there is no value in the bucket (i.e. `empty()` is true) `dist_from_ideal_bucket()` will be < 0. + * - A marker which tells us if the bucket is the last bucket of the bucket array (useful for the + * iterator of the hash table). + * - If `StoreHash` is true, 32 bits of the hash of the value, if any, are also stored in the bucket. + * If the size of the hash is more than 32 bits, it is truncated. We don't store the full hash + * as storing the hash is a potential opportunity to use the unused space due to the alignement + * of the bucket_entry structure. We can thus potentially store the hash without any extra space + * (which would not be possible with 64 bits of the hash). + */ +template +class bucket_entry: public bucket_entry_hash { + using bucket_hash = bucket_entry_hash; + +public: + using value_type = ValueType; + using distance_type = std::int_least16_t; + + + bucket_entry() noexcept: bucket_hash(), m_dist_from_ideal_bucket(EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET), + m_last_bucket(false) + { + tsl_assert(empty()); + } + + bucket_entry(bool last_bucket) noexcept: bucket_hash(), m_dist_from_ideal_bucket(EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET), + m_last_bucket(last_bucket) + { + tsl_assert(empty()); + } + + bucket_entry(const bucket_entry& other) noexcept(std::is_nothrow_copy_constructible::value): + bucket_hash(other), + m_dist_from_ideal_bucket(EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET), + m_last_bucket(other.m_last_bucket) + { + if(!other.empty()) { + ::new (static_cast(std::addressof(m_value))) value_type(other.value()); + m_dist_from_ideal_bucket = other.m_dist_from_ideal_bucket; + } + } + + /** + * Never really used, but still necessary as we must call resize on an empty `std::vector`. + * and we need to support move-only types. See robin_hash constructor for details. + */ + bucket_entry(bucket_entry&& other) noexcept(std::is_nothrow_move_constructible::value): + bucket_hash(std::move(other)), + m_dist_from_ideal_bucket(EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET), + m_last_bucket(other.m_last_bucket) + { + if(!other.empty()) { + ::new (static_cast(std::addressof(m_value))) value_type(std::move(other.value())); + m_dist_from_ideal_bucket = other.m_dist_from_ideal_bucket; + } + } + + bucket_entry& operator=(const bucket_entry& other) + noexcept(std::is_nothrow_copy_constructible::value) + { + if(this != &other) { + clear(); + + bucket_hash::operator=(other); + if(!other.empty()) { + ::new (static_cast(std::addressof(m_value))) value_type(other.value()); + } + + m_dist_from_ideal_bucket = other.m_dist_from_ideal_bucket; + m_last_bucket = other.m_last_bucket; + } + + return *this; + } + + bucket_entry& operator=(bucket_entry&& ) = delete; + + ~bucket_entry() noexcept { + clear(); + } + + void clear() noexcept { + if(!empty()) { + destroy_value(); + m_dist_from_ideal_bucket = EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET; + } + } + + bool empty() const noexcept { + return m_dist_from_ideal_bucket == EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET; + } + + value_type& value() noexcept { + tsl_assert(!empty()); + return *reinterpret_cast(std::addressof(m_value)); + } + + const value_type& value() const noexcept { + tsl_assert(!empty()); + return *reinterpret_cast(std::addressof(m_value)); + } + + distance_type dist_from_ideal_bucket() const noexcept { + return m_dist_from_ideal_bucket; + } + + bool last_bucket() const noexcept { + return m_last_bucket; + } + + void set_as_last_bucket() noexcept { + m_last_bucket = true; + } + + template + void set_value_of_empty_bucket(distance_type dist_from_ideal_bucket, + truncated_hash_type hash, Args&&... value_type_args) + { + tsl_assert(dist_from_ideal_bucket >= 0); + tsl_assert(empty()); + + ::new (static_cast(std::addressof(m_value))) value_type(std::forward(value_type_args)...); + this->set_hash(hash); + m_dist_from_ideal_bucket = dist_from_ideal_bucket; + + tsl_assert(!empty()); + } + + void swap_with_value_in_bucket(distance_type& dist_from_ideal_bucket, + truncated_hash_type& hash, value_type& value) + { + tsl_assert(!empty()); + + using std::swap; + swap(value, this->value()); + swap(dist_from_ideal_bucket, m_dist_from_ideal_bucket); + + // Avoid warning of unused variable if StoreHash is false + (void) hash; + if(StoreHash) { + const truncated_hash_type tmp_hash = this->truncated_hash(); + this->set_hash(hash); + hash = tmp_hash; + } + } + + static truncated_hash_type truncate_hash(std::size_t hash) noexcept { + return truncated_hash_type(hash); + } + +private: + void destroy_value() noexcept { + tsl_assert(!empty()); + value().~value_type(); + } + +private: + using storage = typename std::aligned_storage::type; + + static const distance_type EMPTY_MARKER_DIST_FROM_IDEAL_BUCKET = -1; + + distance_type m_dist_from_ideal_bucket; + bool m_last_bucket; + storage m_value; +}; + + + +/** + * Internal common class used by `robin_map` and `robin_set`. + * + * ValueType is what will be stored by `robin_hash` (usually `std::pair` for map and `Key` for set). + * + * `KeySelect` should be a `FunctionObject` which takes a `ValueType` in parameter and returns a + * reference to the key. + * + * `ValueSelect` should be a `FunctionObject` which takes a `ValueType` in parameter and returns a + * reference to the value. `ValueSelect` should be void if there is no value (in a set for example). + * + * The strong exception guarantee only holds if the expression + * `std::is_nothrow_swappable::value && std::is_nothrow_move_constructible::value` is true. + * + * Behaviour is undefined if the destructor of `ValueType` throws. + */ +template +class robin_hash: private Hash, private KeyEqual, private GrowthPolicy { +private: + template + using has_mapped_type = typename std::integral_constant::value>; + + static_assert(noexcept(std::declval().bucket_for_hash(std::size_t(0))), "GrowthPolicy::bucket_for_hash must be noexcept."); + static_assert(noexcept(std::declval().clear()), "GrowthPolicy::clear must be noexcept."); + +public: + template + class robin_iterator; + + using key_type = typename KeySelect::key_type; + using value_type = ValueType; + using size_type = std::size_t; + using difference_type = std::ptrdiff_t; + using hasher = Hash; + using key_equal = KeyEqual; + using allocator_type = Allocator; + using reference = value_type&; + using const_reference = const value_type&; + using pointer = value_type*; + using const_pointer = const value_type*; + using iterator = robin_iterator; + using const_iterator = robin_iterator; + + +private: + /** + * Either store the hash because we are asked by the `StoreHash` template parameter + * or store the hash because it doesn't cost us anything in size and can be used to speed up rehash. + */ + static constexpr bool STORE_HASH = StoreHash || + ( + (sizeof(tsl::detail_robin_hash::bucket_entry) == + sizeof(tsl::detail_robin_hash::bucket_entry)) + && + (sizeof(std::size_t) == sizeof(truncated_hash_type) || + is_power_of_two_policy::value) + && + // Don't store the hash for primitive types with default hash. + (!std::is_arithmetic::value || + !std::is_same>::value) + ); + + /** + * Only use the stored hash on lookup if we are explictly asked. We are not sure how slow + * the KeyEqual operation is. An extra comparison may slow things down with a fast KeyEqual. + */ + static constexpr bool USE_STORED_HASH_ON_LOOKUP = StoreHash; + + /** + * We can only use the hash on rehash if the size of the hash type is the same as the stored one or + * if we use a power of two modulo. In the case of the power of two modulo, we just mask + * the least significant bytes, we just have to check that the truncated_hash_type didn't truncated + * more bytes. + */ + static bool USE_STORED_HASH_ON_REHASH(size_type bucket_count) { + (void) bucket_count; + if(STORE_HASH && sizeof(std::size_t) == sizeof(truncated_hash_type)) { + return true; + } + else if(STORE_HASH && is_power_of_two_policy::value) { + tsl_assert(bucket_count > 0); + return (bucket_count - 1) <= (std::numeric_limits::max)(); + } + else { + return false; + } + } + + using bucket_entry = tsl::detail_robin_hash::bucket_entry; + using distance_type = typename bucket_entry::distance_type; + + using buckets_allocator = typename std::allocator_traits::template rebind_alloc; + using buckets_container_type = std::vector; + + +public: + /** + * The 'operator*()' and 'operator->()' methods return a const reference and const pointer respectively to the + * stored value type. + * + * In case of a map, to get a mutable reference to the value associated to a key (the '.second' in the + * stored pair), you have to call 'value()'. + * + * The main reason for this is that if we returned a `std::pair&` instead + * of a `const std::pair&`, the user may modify the key which will put the map in a undefined state. + */ + template + class robin_iterator { + friend class robin_hash; + + private: + using iterator_bucket = typename std::conditional::type; + + + robin_iterator(iterator_bucket it) noexcept: m_iterator(it) { + } + + public: + using iterator_category = std::forward_iterator_tag; + using value_type = const typename robin_hash::value_type; + using difference_type = std::ptrdiff_t; + using reference = value_type&; + using pointer = value_type*; + + + robin_iterator() noexcept { + } + + robin_iterator(const robin_iterator& other) noexcept: m_iterator(other.m_iterator) { + } + + const typename robin_hash::key_type& key() const { + return KeySelect()(m_iterator->value()); + } + + template::value && IsConst>::type* = nullptr> + const typename U::value_type& value() const { + return U()(m_iterator->value()); + } + + template::value && !IsConst>::type* = nullptr> + typename U::value_type& value() { + return U()(m_iterator->value()); + } + + reference operator*() const { + return m_iterator->value(); + } + + pointer operator->() const { + return std::addressof(m_iterator->value()); + } + + robin_iterator& operator++() { + while(true) { + if(m_iterator->last_bucket()) { + ++m_iterator; + return *this; + } + + ++m_iterator; + if(!m_iterator->empty()) { + return *this; + } + } + } + + robin_iterator operator++(int) { + robin_iterator tmp(*this); + ++*this; + + return tmp; + } + + friend bool operator==(const robin_iterator& lhs, const robin_iterator& rhs) { + return lhs.m_iterator == rhs.m_iterator; + } + + friend bool operator!=(const robin_iterator& lhs, const robin_iterator& rhs) { + return !(lhs == rhs); + } + + private: + iterator_bucket m_iterator; + }; + + +public: + robin_hash(size_type bucket_count, + const Hash& hash, + const KeyEqual& equal, + const Allocator& alloc, + float max_load_factor): Hash(hash), + KeyEqual(equal), + GrowthPolicy(bucket_count), + m_buckets(alloc), + m_first_or_empty_bucket(static_empty_bucket_ptr()), + m_bucket_count(bucket_count), + m_nb_elements(0), + m_grow_on_next_insert(false) + { + if(bucket_count > max_bucket_count()) { + TSL_THROW_OR_TERMINATE(std::length_error, "The map exceeds its maxmimum size."); + } + + if(m_bucket_count > 0) { + /* + * We can't use the `vector(size_type count, const Allocator& alloc)` constructor + * as it's only available in C++14 and we need to support C++11. We thus must resize after using + * the `vector(const Allocator& alloc)` constructor. + * + * We can't use `vector(size_type count, const T& value, const Allocator& alloc)` as it requires the + * value T to be copyable. + */ + m_buckets.resize(m_bucket_count); + m_first_or_empty_bucket = m_buckets.data(); + + tsl_assert(!m_buckets.empty()); + m_buckets.back().set_as_last_bucket(); + } + + + this->max_load_factor(max_load_factor); + } + + robin_hash(const robin_hash& other): Hash(other), + KeyEqual(other), + GrowthPolicy(other), + m_buckets(other.m_buckets), + m_first_or_empty_bucket(m_buckets.empty()?static_empty_bucket_ptr():m_buckets.data()), + m_bucket_count(other.m_bucket_count), + m_nb_elements(other.m_nb_elements), + m_load_threshold(other.m_load_threshold), + m_max_load_factor(other.m_max_load_factor), + m_grow_on_next_insert(other.m_grow_on_next_insert) + { + } + + robin_hash(robin_hash&& other) noexcept(std::is_nothrow_move_constructible::value && + std::is_nothrow_move_constructible::value && + std::is_nothrow_move_constructible::value && + std::is_nothrow_move_constructible::value) + : Hash(std::move(static_cast(other))), + KeyEqual(std::move(static_cast(other))), + GrowthPolicy(std::move(static_cast(other))), + m_buckets(std::move(other.m_buckets)), + m_first_or_empty_bucket(m_buckets.empty()?static_empty_bucket_ptr():m_buckets.data()), + m_bucket_count(other.m_bucket_count), + m_nb_elements(other.m_nb_elements), + m_load_threshold(other.m_load_threshold), + m_max_load_factor(other.m_max_load_factor), + m_grow_on_next_insert(other.m_grow_on_next_insert) + { + other.GrowthPolicy::clear(); + other.m_buckets.clear(); + other.m_first_or_empty_bucket = static_empty_bucket_ptr(); + other.m_bucket_count = 0; + other.m_nb_elements = 0; + other.m_load_threshold = 0; + other.m_grow_on_next_insert = false; + } + + robin_hash& operator=(const robin_hash& other) { + if(&other != this) { + Hash::operator=(other); + KeyEqual::operator=(other); + GrowthPolicy::operator=(other); + + m_buckets = other.m_buckets; + m_first_or_empty_bucket = m_buckets.empty()?static_empty_bucket_ptr(): + m_buckets.data(); + m_bucket_count = other.m_bucket_count; + m_nb_elements = other.m_nb_elements; + m_load_threshold = other.m_load_threshold; + m_max_load_factor = other.m_max_load_factor; + m_grow_on_next_insert = other.m_grow_on_next_insert; + } + + return *this; + } + + robin_hash& operator=(robin_hash&& other) { + other.swap(*this); + other.clear(); + + return *this; + } + + allocator_type get_allocator() const { + return m_buckets.get_allocator(); + } + + + /* + * Iterators + */ + iterator begin() noexcept { + auto begin = m_buckets.begin(); + while(begin != m_buckets.end() && begin->empty()) { + ++begin; + } + + return iterator(begin); + } + + const_iterator begin() const noexcept { + return cbegin(); + } + + const_iterator cbegin() const noexcept { + auto begin = m_buckets.cbegin(); + while(begin != m_buckets.cend() && begin->empty()) { + ++begin; + } + + return const_iterator(begin); + } + + iterator end() noexcept { + return iterator(m_buckets.end()); + } + + const_iterator end() const noexcept { + return cend(); + } + + const_iterator cend() const noexcept { + return const_iterator(m_buckets.cend()); + } + + + /* + * Capacity + */ + bool empty() const noexcept { + return m_nb_elements == 0; + } + + size_type size() const noexcept { + return m_nb_elements; + } + + size_type max_size() const noexcept { + return m_buckets.max_size(); + } + + /* + * Modifiers + */ + void clear() noexcept { + for(auto& bucket: m_buckets) { + bucket.clear(); + } + + m_nb_elements = 0; + m_grow_on_next_insert = false; + } + + + + template + std::pair insert(P&& value) { + return insert_impl(KeySelect()(value), std::forward

(value)); + } + + template + iterator insert(const_iterator hint, P&& value) { + if(hint != cend() && compare_keys(KeySelect()(*hint), KeySelect()(value))) { + return mutable_iterator(hint); + } + + return insert(std::forward

(value)).first; + } + + template + void insert(InputIt first, InputIt last) { + if(std::is_base_of::iterator_category>::value) + { + const auto nb_elements_insert = std::distance(first, last); + const size_type nb_free_buckets = m_load_threshold - size(); + tsl_assert(m_load_threshold >= size()); + + if(nb_elements_insert > 0 && nb_free_buckets < size_type(nb_elements_insert)) { + reserve(size() + size_type(nb_elements_insert)); + } + } + + for(; first != last; ++first) { + insert(*first); + } + } + + + + template + std::pair insert_or_assign(K&& key, M&& obj) { + auto it = try_emplace(std::forward(key), std::forward(obj)); + if(!it.second) { + it.first.value() = std::forward(obj); + } + + return it; + } + + template + iterator insert_or_assign(const_iterator hint, K&& key, M&& obj) { + if(hint != cend() && compare_keys(KeySelect()(*hint), key)) { + auto it = mutable_iterator(hint); + it.value() = std::forward(obj); + + return it; + } + + return insert_or_assign(std::forward(key), std::forward(obj)).first; + } + + + template + std::pair emplace(Args&&... args) { + return insert(value_type(std::forward(args)...)); + } + + template + iterator emplace_hint(const_iterator hint, Args&&... args) { + return insert(hint, value_type(std::forward(args)...)); + } + + + + template + std::pair try_emplace(K&& key, Args&&... args) { + return insert_impl(key, std::piecewise_construct, + std::forward_as_tuple(std::forward(key)), + std::forward_as_tuple(std::forward(args)...)); + } + + template + iterator try_emplace(const_iterator hint, K&& key, Args&&... args) { + if(hint != cend() && compare_keys(KeySelect()(*hint), key)) { + return mutable_iterator(hint); + } + + return try_emplace(std::forward(key), std::forward(args)...).first; + } + + /** + * Here to avoid `template size_type erase(const K& key)` being used when + * we use an `iterator` instead of a `const_iterator`. + */ + iterator erase(iterator pos) { + erase_from_bucket(pos); + + /** + * Erase bucket used a backward shift after clearing the bucket. + * Check if there is a new value in the bucket, if not get the next non-empty. + */ + if(pos.m_iterator->empty()) { + ++pos; + } + + return pos; + } + + iterator erase(const_iterator pos) { + return erase(mutable_iterator(pos)); + } + + iterator erase(const_iterator first, const_iterator last) { + if(first == last) { + return mutable_iterator(first); + } + + auto first_mutable = mutable_iterator(first); + auto last_mutable = mutable_iterator(last); + for(auto it = first_mutable.m_iterator; it != last_mutable.m_iterator; ++it) { + if(!it->empty()) { + it->clear(); + m_nb_elements--; + } + } + + if(last_mutable == end()) { + return end(); + } + + + /* + * Backward shift on the values which come after the deleted values. + * We try to move the values closer to their ideal bucket. + */ + std::size_t icloser_bucket = std::size_t(std::distance(m_buckets.begin(), first_mutable.m_iterator)); + std::size_t ito_move_closer_value = std::size_t(std::distance(m_buckets.begin(), last_mutable.m_iterator)); + tsl_assert(ito_move_closer_value > icloser_bucket); + + const std::size_t ireturn_bucket = ito_move_closer_value - + (std::min)(ito_move_closer_value - icloser_bucket, + std::size_t(m_buckets[ito_move_closer_value].dist_from_ideal_bucket())); + + while(ito_move_closer_value < m_buckets.size() && m_buckets[ito_move_closer_value].dist_from_ideal_bucket() > 0) { + icloser_bucket = ito_move_closer_value - + (std::min)(ito_move_closer_value - icloser_bucket, + std::size_t(m_buckets[ito_move_closer_value].dist_from_ideal_bucket())); + + + tsl_assert(m_buckets[icloser_bucket].empty()); + const distance_type new_distance = distance_type(m_buckets[ito_move_closer_value].dist_from_ideal_bucket() - + (ito_move_closer_value - icloser_bucket)); + m_buckets[icloser_bucket].set_value_of_empty_bucket(new_distance, + m_buckets[ito_move_closer_value].truncated_hash(), + std::move(m_buckets[ito_move_closer_value].value())); + m_buckets[ito_move_closer_value].clear(); + + + ++icloser_bucket; + ++ito_move_closer_value; + } + + + return iterator(m_buckets.begin() + ireturn_bucket); + } + + + template + size_type erase(const K& key) { + return erase(key, hash_key(key)); + } + + template + size_type erase(const K& key, std::size_t hash) { + auto it = find(key, hash); + if(it != end()) { + erase_from_bucket(it); + + return 1; + } + else { + return 0; + } + } + + + + + + void swap(robin_hash& other) { + using std::swap; + + swap(static_cast(*this), static_cast(other)); + swap(static_cast(*this), static_cast(other)); + swap(static_cast(*this), static_cast(other)); + swap(m_buckets, other.m_buckets); + swap(m_first_or_empty_bucket, other.m_first_or_empty_bucket); + swap(m_bucket_count, other.m_bucket_count); + swap(m_nb_elements, other.m_nb_elements); + swap(m_load_threshold, other.m_load_threshold); + swap(m_max_load_factor, other.m_max_load_factor); + swap(m_grow_on_next_insert, other.m_grow_on_next_insert); + } + + + /* + * Lookup + */ + template::value>::type* = nullptr> + typename U::value_type& at(const K& key) { + return at(key, hash_key(key)); + } + + template::value>::type* = nullptr> + typename U::value_type& at(const K& key, std::size_t hash) { + return const_cast(static_cast(this)->at(key, hash)); + } + + + template::value>::type* = nullptr> + const typename U::value_type& at(const K& key) const { + return at(key, hash_key(key)); + } + + template::value>::type* = nullptr> + const typename U::value_type& at(const K& key, std::size_t hash) const { + auto it = find(key, hash); + if(it != cend()) { + return it.value(); + } + else { + TSL_THROW_OR_TERMINATE(std::out_of_range, "Couldn't find key."); + } + } + + template::value>::type* = nullptr> + typename U::value_type& operator[](K&& key) { + return try_emplace(std::forward(key)).first.value(); + } + + + template + size_type count(const K& key) const { + return count(key, hash_key(key)); + } + + template + size_type count(const K& key, std::size_t hash) const { + if(find(key, hash) != cend()) { + return 1; + } + else { + return 0; + } + } + + + template + iterator find(const K& key) { + return find_impl(key, hash_key(key)); + } + + template + iterator find(const K& key, std::size_t hash) { + return find_impl(key, hash); + } + + + template + const_iterator find(const K& key) const { + return find_impl(key, hash_key(key)); + } + + template + const_iterator find(const K& key, std::size_t hash) const { + return find_impl(key, hash); + } + + + template + std::pair equal_range(const K& key) { + return equal_range(key, hash_key(key)); + } + + template + std::pair equal_range(const K& key, std::size_t hash) { + iterator it = find(key, hash); + return std::make_pair(it, (it == end())?it:std::next(it)); + } + + + template + std::pair equal_range(const K& key) const { + return equal_range(key, hash_key(key)); + } + + template + std::pair equal_range(const K& key, std::size_t hash) const { + const_iterator it = find(key, hash); + return std::make_pair(it, (it == cend())?it:std::next(it)); + } + + /* + * Bucket interface + */ + size_type bucket_count() const { + return m_bucket_count; + } + + size_type max_bucket_count() const { + return (std::min)(GrowthPolicy::max_bucket_count(), m_buckets.max_size()); + } + + /* + * Hash policy + */ + float load_factor() const { + if(bucket_count() == 0) { + return 0; + } + + return float(m_nb_elements)/float(bucket_count()); + } + + float max_load_factor() const { + return m_max_load_factor; + } + + void max_load_factor(float ml) { + m_max_load_factor = (std::max)(0.1f, (std::min)(ml, 0.95f)); + m_load_threshold = size_type(float(bucket_count())*m_max_load_factor); + } + + void rehash(size_type count) { + count = (std::max)(count, size_type(std::ceil(float(size())/max_load_factor()))); + rehash_impl(count); + } + + void reserve(size_type count) { + rehash(size_type(std::ceil(float(count)/max_load_factor()))); + } + + /* + * Observers + */ + hasher hash_function() const { + return static_cast(*this); + } + + key_equal key_eq() const { + return static_cast(*this); + } + + + /* + * Other + */ + iterator mutable_iterator(const_iterator pos) { + return iterator(m_buckets.begin() + std::distance(m_buckets.cbegin(), pos.m_iterator)); + } + +private: + template + std::size_t hash_key(const K& key) const { + return Hash::operator()(key); + } + + template + bool compare_keys(const K1& key1, const K2& key2) const { + return KeyEqual::operator()(key1, key2); + } + + std::size_t bucket_for_hash(std::size_t hash) const { + const std::size_t bucket = GrowthPolicy::bucket_for_hash(hash); + tsl_assert(bucket < m_buckets.size() || (bucket == 0 && m_buckets.empty())); + + return bucket; + } + + template::value>::type* = nullptr> + std::size_t next_bucket(std::size_t index) const noexcept { + tsl_assert(index < bucket_count()); + + return (index + 1) & this->m_mask; + } + + template::value>::type* = nullptr> + std::size_t next_bucket(std::size_t index) const noexcept { + tsl_assert(index < bucket_count()); + + index++; + return (index != bucket_count())?index:0; + } + + + + template + iterator find_impl(const K& key, std::size_t hash) { + return mutable_iterator(static_cast(this)->find(key, hash)); + } + + template + const_iterator find_impl(const K& key, std::size_t hash) const { + std::size_t ibucket = bucket_for_hash(hash); + distance_type dist_from_ideal_bucket = 0; + + while(dist_from_ideal_bucket <= (m_first_or_empty_bucket + ibucket)->dist_from_ideal_bucket()) { + if(TSL_LIKELY((!USE_STORED_HASH_ON_LOOKUP || (m_first_or_empty_bucket + ibucket)->bucket_hash_equal(hash)) && + compare_keys(KeySelect()((m_first_or_empty_bucket + ibucket)->value()), key))) + { + return const_iterator(m_buckets.begin() + ibucket); + } + + ibucket = next_bucket(ibucket); + dist_from_ideal_bucket++; + } + + return cend(); + } + + void erase_from_bucket(iterator pos) { + pos.m_iterator->clear(); + m_nb_elements--; + + /** + * Backward shift, swap the empty bucket, previous_ibucket, with the values on its right, ibucket, + * until we cross another empty bucket or if the other bucket has a distance_from_ideal_bucket == 0. + * + * We try to move the values closer to their ideal bucket. + */ + std::size_t previous_ibucket = std::size_t(std::distance(m_buckets.begin(), pos.m_iterator)); + std::size_t ibucket = next_bucket(previous_ibucket); + + while(m_buckets[ibucket].dist_from_ideal_bucket() > 0) { + tsl_assert(m_buckets[previous_ibucket].empty()); + + const distance_type new_distance = distance_type(m_buckets[ibucket].dist_from_ideal_bucket() - 1); + m_buckets[previous_ibucket].set_value_of_empty_bucket(new_distance, m_buckets[ibucket].truncated_hash(), + std::move(m_buckets[ibucket].value())); + m_buckets[ibucket].clear(); + + previous_ibucket = ibucket; + ibucket = next_bucket(ibucket); + } + } + + template + std::pair insert_impl(const K& key, Args&&... value_type_args) { + const std::size_t hash = hash_key(key); + + std::size_t ibucket = bucket_for_hash(hash); + distance_type dist_from_ideal_bucket = 0; + + while(dist_from_ideal_bucket <= (m_first_or_empty_bucket + ibucket)->dist_from_ideal_bucket()) { + if((!USE_STORED_HASH_ON_LOOKUP || (m_first_or_empty_bucket + ibucket)->bucket_hash_equal(hash)) && + compare_keys(KeySelect()((m_first_or_empty_bucket + ibucket)->value()), key)) + { + return std::make_pair(iterator(m_buckets.begin() + ibucket), false); + } + + ibucket = next_bucket(ibucket); + dist_from_ideal_bucket++; + } + + if(grow_on_high_load()) { + ibucket = bucket_for_hash(hash); + dist_from_ideal_bucket = 0; + + while(dist_from_ideal_bucket <= (m_first_or_empty_bucket + ibucket)->dist_from_ideal_bucket()) { + ibucket = next_bucket(ibucket); + dist_from_ideal_bucket++; + } + } + + + if((m_first_or_empty_bucket + ibucket)->empty()) { + (m_first_or_empty_bucket + ibucket)->set_value_of_empty_bucket(dist_from_ideal_bucket, bucket_entry::truncate_hash(hash), + std::forward(value_type_args)...); + } + else { + insert_value(ibucket, dist_from_ideal_bucket, bucket_entry::truncate_hash(hash), + std::forward(value_type_args)...); + } + + + m_nb_elements++; + /* + * The value will be inserted in ibucket in any case, either because it was + * empty or by stealing the bucket (robin hood). + */ + return std::make_pair(iterator(m_buckets.begin() + ibucket), true); + } + + + template + void insert_value(std::size_t ibucket, distance_type dist_from_ideal_bucket, + truncated_hash_type hash, Args&&... value_type_args) + { + insert_value(ibucket, dist_from_ideal_bucket, hash, value_type(std::forward(value_type_args)...)); + } + + void insert_value(std::size_t ibucket, distance_type dist_from_ideal_bucket, + truncated_hash_type hash, value_type&& value) + { + m_buckets[ibucket].swap_with_value_in_bucket(dist_from_ideal_bucket, hash, value); + ibucket = next_bucket(ibucket); + dist_from_ideal_bucket++; + + while(!m_buckets[ibucket].empty()) { + if(dist_from_ideal_bucket > m_buckets[ibucket].dist_from_ideal_bucket()) { + if(dist_from_ideal_bucket >= REHASH_ON_HIGH_NB_PROBES__NPROBES && + load_factor() >= REHASH_ON_HIGH_NB_PROBES__MIN_LOAD_FACTOR) + { + /** + * The number of probes is really high, rehash the map on the next insert. + * Difficult to do now as rehash may throw an exception. + */ + m_grow_on_next_insert = true; + } + + m_buckets[ibucket].swap_with_value_in_bucket(dist_from_ideal_bucket, hash, value); + } + + ibucket = next_bucket(ibucket); + dist_from_ideal_bucket++; + } + + m_buckets[ibucket].set_value_of_empty_bucket(dist_from_ideal_bucket, hash, std::move(value)); + } + + + void rehash_impl(size_type count) { + robin_hash new_table(count, static_cast(*this), static_cast(*this), + get_allocator(), m_max_load_factor); + + const bool use_stored_hash = USE_STORED_HASH_ON_REHASH(new_table.bucket_count()); + for(auto& bucket: m_buckets) { + if(bucket.empty()) { + continue; + } + + const std::size_t hash = use_stored_hash?bucket.truncated_hash(): + new_table.hash_key(KeySelect()(bucket.value())); + + new_table.insert_value_on_rehash(new_table.bucket_for_hash(hash), 0, + bucket_entry::truncate_hash(hash), std::move(bucket.value())); + } + + new_table.m_nb_elements = m_nb_elements; + new_table.swap(*this); + } + + void insert_value_on_rehash(std::size_t ibucket, distance_type dist_from_ideal_bucket, + truncated_hash_type hash, value_type&& value) + { + while(true) { + if(dist_from_ideal_bucket > m_buckets[ibucket].dist_from_ideal_bucket()) { + if(m_buckets[ibucket].empty()) { + m_buckets[ibucket].set_value_of_empty_bucket(dist_from_ideal_bucket, hash, std::move(value)); + return; + } + else { + m_buckets[ibucket].swap_with_value_in_bucket(dist_from_ideal_bucket, hash, value); + } + } + + dist_from_ideal_bucket++; + ibucket = next_bucket(ibucket); + } + } + + + + /** + * Return true if the map has been rehashed. + */ + bool grow_on_high_load() { + if(m_grow_on_next_insert || size() >= m_load_threshold) { + rehash_impl(GrowthPolicy::next_bucket_count()); + m_grow_on_next_insert = false; + + return true; + } + + return false; + } + + +public: + static const size_type DEFAULT_INIT_BUCKETS_SIZE = 16; + static constexpr float DEFAULT_MAX_LOAD_FACTOR = 0.5f; + +private: + static const distance_type REHASH_ON_HIGH_NB_PROBES__NPROBES = 128; + static constexpr float REHASH_ON_HIGH_NB_PROBES__MIN_LOAD_FACTOR = 0.15f; + + + /** + * Return an always valid pointer to an static empty bucket_entry with last_bucket() == true. + */ + bucket_entry* static_empty_bucket_ptr() { + static bucket_entry empty_bucket(true); + return &empty_bucket; + } + +private: + buckets_container_type m_buckets; + + /** + * Points to m_buckets.data() if !m_buckets.empty() otherwise points to static_empty_bucket_ptr. + * This variable is useful to avoid the cost of checking if m_buckets is empty when trying + * to find an element. + */ + bucket_entry* m_first_or_empty_bucket; + + /** + * Used a lot in find, avoid the call to m_buckets.size() which is a bit slower. + */ + size_type m_bucket_count; + + size_type m_nb_elements; + + size_type m_load_threshold; + float m_max_load_factor; + + bool m_grow_on_next_insert; +}; + +} + +} + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_map.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_map.h new file mode 100644 index 0000000..5958e70 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_map.h @@ -0,0 +1,668 @@ +/** + * MIT License + * + * Copyright (c) 2017 Tessil + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_ROBIN_MAP_H +#define TSL_ROBIN_MAP_H + + +#include +#include +#include +#include +#include +#include +#include "robin_hash.h" + + +namespace tsl { + + +/** + * Implementation of a hash map using open-adressing and the robin hood hashing algorithm with backward shift deletion. + * + * For operations modifying the hash map (insert, erase, rehash, ...), the strong exception guarantee + * is only guaranteed when the expression `std::is_nothrow_swappable>::value && + * std::is_nothrow_move_constructible>::value` is true, otherwise if an exception + * is thrown during the swap or the move, the hash map may end up in a undefined state. Per the standard + * a `Key` or `T` with a noexcept copy constructor and no move constructor also satisfies the + * `std::is_nothrow_move_constructible>::value` criterion (and will thus guarantee the + * strong exception for the map). + * + * When `StoreHash` is true, 32 bits of the hash are stored alongside the values. It can improve + * the performance during lookups if the `KeyEqual` function takes time (if it engenders a cache-miss for example) + * as we then compare the stored hashes before comparing the keys. When `tsl::rh::power_of_two_growth_policy` is used + * as `GrowthPolicy`, it may also speed-up the rehash process as we can avoid to recalculate the hash. + * When it is detected that storing the hash will not incur any memory penality due to alignement (i.e. + * `sizeof(tsl::detail_robin_hash::bucket_entry) == + * sizeof(tsl::detail_robin_hash::bucket_entry)`) and `tsl::rh::power_of_two_growth_policy` is + * used, the hash will be stored even if `StoreHash` is false so that we can speed-up the rehash (but it will + * not be used on lookups unless `StoreHash` is true). + * + * `GrowthPolicy` defines how the map grows and consequently how a hash value is mapped to a bucket. + * By default the map uses `tsl::rh::power_of_two_growth_policy`. This policy keeps the number of buckets + * to a power of two and uses a mask to map the hash to a bucket instead of the slow modulo. + * Other growth policies are available and you may define your own growth policy, + * check `tsl::rh::power_of_two_growth_policy` for the interface. + * + * If the destructor of `Key` or `T` throws an exception, the behaviour of the class is undefined. + * + * Iterators invalidation: + * - clear, operator=, reserve, rehash: always invalidate the iterators. + * - insert, emplace, emplace_hint, operator[]: if there is an effective insert, invalidate the iterators. + * - erase: always invalidate the iterators. + */ +template, + class KeyEqual = std::equal_to, + class Allocator = std::allocator>, + bool StoreHash = false, + class GrowthPolicy = tsl::rh::power_of_two_growth_policy<2>> +class robin_map { +private: + template + using has_is_transparent = tsl::detail_robin_hash::has_is_transparent; + + class KeySelect { + public: + using key_type = Key; + + const key_type& operator()(const std::pair& key_value) const noexcept { + return key_value.first; + } + + key_type& operator()(std::pair& key_value) noexcept { + return key_value.first; + } + }; + + class ValueSelect { + public: + using value_type = T; + + const value_type& operator()(const std::pair& key_value) const noexcept { + return key_value.second; + } + + value_type& operator()(std::pair& key_value) noexcept { + return key_value.second; + } + }; + + using ht = detail_robin_hash::robin_hash, KeySelect, ValueSelect, + Hash, KeyEqual, Allocator, StoreHash, GrowthPolicy>; + +public: + using key_type = typename ht::key_type; + using mapped_type = T; + using value_type = typename ht::value_type; + using size_type = typename ht::size_type; + using difference_type = typename ht::difference_type; + using hasher = typename ht::hasher; + using key_equal = typename ht::key_equal; + using allocator_type = typename ht::allocator_type; + using reference = typename ht::reference; + using const_reference = typename ht::const_reference; + using pointer = typename ht::pointer; + using const_pointer = typename ht::const_pointer; + using iterator = typename ht::iterator; + using const_iterator = typename ht::const_iterator; + + +public: + /* + * Constructors + */ + robin_map(): robin_map(ht::DEFAULT_INIT_BUCKETS_SIZE) { + } + + explicit robin_map(size_type bucket_count, + const Hash& hash = Hash(), + const KeyEqual& equal = KeyEqual(), + const Allocator& alloc = Allocator()): + m_ht(bucket_count, hash, equal, alloc, ht::DEFAULT_MAX_LOAD_FACTOR) + { + } + + robin_map(size_type bucket_count, + const Allocator& alloc): robin_map(bucket_count, Hash(), KeyEqual(), alloc) + { + } + + robin_map(size_type bucket_count, + const Hash& hash, + const Allocator& alloc): robin_map(bucket_count, hash, KeyEqual(), alloc) + { + } + + explicit robin_map(const Allocator& alloc): robin_map(ht::DEFAULT_INIT_BUCKETS_SIZE, alloc) { + } + + template + robin_map(InputIt first, InputIt last, + size_type bucket_count = ht::DEFAULT_INIT_BUCKETS_SIZE, + const Hash& hash = Hash(), + const KeyEqual& equal = KeyEqual(), + const Allocator& alloc = Allocator()): robin_map(bucket_count, hash, equal, alloc) + { + insert(first, last); + } + + template + robin_map(InputIt first, InputIt last, + size_type bucket_count, + const Allocator& alloc): robin_map(first, last, bucket_count, Hash(), KeyEqual(), alloc) + { + } + + template + robin_map(InputIt first, InputIt last, + size_type bucket_count, + const Hash& hash, + const Allocator& alloc): robin_map(first, last, bucket_count, hash, KeyEqual(), alloc) + { + } + + robin_map(std::initializer_list init, + size_type bucket_count = ht::DEFAULT_INIT_BUCKETS_SIZE, + const Hash& hash = Hash(), + const KeyEqual& equal = KeyEqual(), + const Allocator& alloc = Allocator()): + robin_map(init.begin(), init.end(), bucket_count, hash, equal, alloc) + { + } + + robin_map(std::initializer_list init, + size_type bucket_count, + const Allocator& alloc): + robin_map(init.begin(), init.end(), bucket_count, Hash(), KeyEqual(), alloc) + { + } + + robin_map(std::initializer_list init, + size_type bucket_count, + const Hash& hash, + const Allocator& alloc): + robin_map(init.begin(), init.end(), bucket_count, hash, KeyEqual(), alloc) + { + } + + robin_map& operator=(std::initializer_list ilist) { + m_ht.clear(); + + m_ht.reserve(ilist.size()); + m_ht.insert(ilist.begin(), ilist.end()); + + return *this; + } + + allocator_type get_allocator() const { return m_ht.get_allocator(); } + + + /* + * Iterators + */ + iterator begin() noexcept { return m_ht.begin(); } + const_iterator begin() const noexcept { return m_ht.begin(); } + const_iterator cbegin() const noexcept { return m_ht.cbegin(); } + + iterator end() noexcept { return m_ht.end(); } + const_iterator end() const noexcept { return m_ht.end(); } + const_iterator cend() const noexcept { return m_ht.cend(); } + + + /* + * Capacity + */ + bool empty() const noexcept { return m_ht.empty(); } + size_type size() const noexcept { return m_ht.size(); } + size_type max_size() const noexcept { return m_ht.max_size(); } + + /* + * Modifiers + */ + void clear() noexcept { m_ht.clear(); } + + + + std::pair insert(const value_type& value) { + return m_ht.insert(value); + } + + template::value>::type* = nullptr> + std::pair insert(P&& value) { + return m_ht.emplace(std::forward

(value)); + } + + std::pair insert(value_type&& value) { + return m_ht.insert(std::move(value)); + } + + + iterator insert(const_iterator hint, const value_type& value) { + return m_ht.insert(hint, value); + } + + template::value>::type* = nullptr> + iterator insert(const_iterator hint, P&& value) { + return m_ht.emplace_hint(hint, std::forward

(value)); + } + + iterator insert(const_iterator hint, value_type&& value) { + return m_ht.insert(hint, std::move(value)); + } + + + template + void insert(InputIt first, InputIt last) { + m_ht.insert(first, last); + } + + void insert(std::initializer_list ilist) { + m_ht.insert(ilist.begin(), ilist.end()); + } + + + + + template + std::pair insert_or_assign(const key_type& k, M&& obj) { + return m_ht.insert_or_assign(k, std::forward(obj)); + } + + template + std::pair insert_or_assign(key_type&& k, M&& obj) { + return m_ht.insert_or_assign(std::move(k), std::forward(obj)); + } + + template + iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj) { + return m_ht.insert_or_assign(hint, k, std::forward(obj)); + } + + template + iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj) { + return m_ht.insert_or_assign(hint, std::move(k), std::forward(obj)); + } + + + + /** + * Due to the way elements are stored, emplace will need to move or copy the key-value once. + * The method is equivalent to insert(value_type(std::forward(args)...)); + * + * Mainly here for compatibility with the std::unordered_map interface. + */ + template + std::pair emplace(Args&&... args) { + return m_ht.emplace(std::forward(args)...); + } + + + + /** + * Due to the way elements are stored, emplace_hint will need to move or copy the key-value once. + * The method is equivalent to insert(hint, value_type(std::forward(args)...)); + * + * Mainly here for compatibility with the std::unordered_map interface. + */ + template + iterator emplace_hint(const_iterator hint, Args&&... args) { + return m_ht.emplace_hint(hint, std::forward(args)...); + } + + + + + template + std::pair try_emplace(const key_type& k, Args&&... args) { + return m_ht.try_emplace(k, std::forward(args)...); + } + + template + std::pair try_emplace(key_type&& k, Args&&... args) { + return m_ht.try_emplace(std::move(k), std::forward(args)...); + } + + template + iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args) { + return m_ht.try_emplace(hint, k, std::forward(args)...); + } + + template + iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args) { + return m_ht.try_emplace(hint, std::move(k), std::forward(args)...); + } + + + + + iterator erase(iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator first, const_iterator last) { return m_ht.erase(first, last); } + size_type erase(const key_type& key) { return m_ht.erase(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. + */ + size_type erase(const key_type& key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + size_type erase(const K& key) { return m_ht.erase(key); } + + /** + * @copydoc erase(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. + */ + template::value>::type* = nullptr> + size_type erase(const K& key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + + + void swap(robin_map& other) { other.m_ht.swap(m_ht); } + + + + /* + * Lookup + */ + T& at(const Key& key) { return m_ht.at(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + T& at(const Key& key, std::size_t precalculated_hash) { return m_ht.at(key, precalculated_hash); } + + + const T& at(const Key& key) const { return m_ht.at(key); } + + /** + * @copydoc at(const Key& key, std::size_t precalculated_hash) + */ + const T& at(const Key& key, std::size_t precalculated_hash) const { return m_ht.at(key, precalculated_hash); } + + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + T& at(const K& key) { return m_ht.at(key); } + + /** + * @copydoc at(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + T& at(const K& key, std::size_t precalculated_hash) { return m_ht.at(key, precalculated_hash); } + + + /** + * @copydoc at(const K& key) + */ + template::value>::type* = nullptr> + const T& at(const K& key) const { return m_ht.at(key); } + + /** + * @copydoc at(const K& key, std::size_t precalculated_hash) + */ + template::value>::type* = nullptr> + const T& at(const K& key, std::size_t precalculated_hash) const { return m_ht.at(key, precalculated_hash); } + + + + + T& operator[](const Key& key) { return m_ht[key]; } + T& operator[](Key&& key) { return m_ht[std::move(key)]; } + + + + + size_type count(const Key& key) const { return m_ht.count(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + size_type count(const Key& key, std::size_t precalculated_hash) const { + return m_ht.count(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + size_type count(const K& key) const { return m_ht.count(key); } + + /** + * @copydoc count(const K& key) const + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + size_type count(const K& key, std::size_t precalculated_hash) const { return m_ht.count(key, precalculated_hash); } + + + + + iterator find(const Key& key) { return m_ht.find(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + iterator find(const Key& key, std::size_t precalculated_hash) { return m_ht.find(key, precalculated_hash); } + + const_iterator find(const Key& key) const { return m_ht.find(key); } + + /** + * @copydoc find(const Key& key, std::size_t precalculated_hash) + */ + const_iterator find(const Key& key, std::size_t precalculated_hash) const { + return m_ht.find(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + iterator find(const K& key) { return m_ht.find(key); } + + /** + * @copydoc find(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + iterator find(const K& key, std::size_t precalculated_hash) { return m_ht.find(key, precalculated_hash); } + + /** + * @copydoc find(const K& key) + */ + template::value>::type* = nullptr> + const_iterator find(const K& key) const { return m_ht.find(key); } + + /** + * @copydoc find(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + const_iterator find(const K& key, std::size_t precalculated_hash) const { + return m_ht.find(key, precalculated_hash); + } + + + + + std::pair equal_range(const Key& key) { return m_ht.equal_range(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + std::pair equal_range(const Key& key, std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + std::pair equal_range(const Key& key) const { return m_ht.equal_range(key); } + + /** + * @copydoc equal_range(const Key& key, std::size_t precalculated_hash) + */ + std::pair equal_range(const Key& key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key) { return m_ht.equal_range(key); } + + + /** + * @copydoc equal_range(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key, std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * @copydoc equal_range(const K& key) + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key) const { return m_ht.equal_range(key); } + + /** + * @copydoc equal_range(const K& key, std::size_t precalculated_hash) + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + + + + /* + * Bucket interface + */ + size_type bucket_count() const { return m_ht.bucket_count(); } + size_type max_bucket_count() const { return m_ht.max_bucket_count(); } + + + /* + * Hash policy + */ + float load_factor() const { return m_ht.load_factor(); } + float max_load_factor() const { return m_ht.max_load_factor(); } + void max_load_factor(float ml) { m_ht.max_load_factor(ml); } + + void rehash(size_type count) { m_ht.rehash(count); } + void reserve(size_type count) { m_ht.reserve(count); } + + + /* + * Observers + */ + hasher hash_function() const { return m_ht.hash_function(); } + key_equal key_eq() const { return m_ht.key_eq(); } + + /* + * Other + */ + + /** + * Convert a const_iterator to an iterator. + */ + iterator mutable_iterator(const_iterator pos) { + return m_ht.mutable_iterator(pos); + } + + friend bool operator==(const robin_map& lhs, const robin_map& rhs) { + if(lhs.size() != rhs.size()) { + return false; + } + + for(const auto& element_lhs: lhs) { + const auto it_element_rhs = rhs.find(element_lhs.first); + if(it_element_rhs == rhs.cend() || element_lhs.second != it_element_rhs->second) { + return false; + } + } + + return true; + } + + friend bool operator!=(const robin_map& lhs, const robin_map& rhs) { + return !operator==(lhs, rhs); + } + + friend void swap(robin_map& lhs, robin_map& rhs) { + lhs.swap(rhs); + } + +private: + ht m_ht; +}; + + +/** + * Same as `tsl::robin_map`. + */ +template, + class KeyEqual = std::equal_to, + class Allocator = std::allocator>, + bool StoreHash = false> +using robin_pg_map = robin_map; + +} // end namespace tsl + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_set.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_set.h new file mode 100644 index 0000000..4e4667e --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/robin_set.h @@ -0,0 +1,535 @@ +/** + * MIT License + * + * Copyright (c) 2017 Tessil + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_ROBIN_SET_H +#define TSL_ROBIN_SET_H + + +#include +#include +#include +#include +#include +#include +#include "robin_hash.h" + + +namespace tsl { + + +/** + * Implementation of a hash set using open-adressing and the robin hood hashing algorithm with backward shift deletion. + * + * For operations modifying the hash set (insert, erase, rehash, ...), the strong exception guarantee + * is only guaranteed when the expression `std::is_nothrow_swappable::value && + * std::is_nothrow_move_constructible::value` is true, otherwise if an exception + * is thrown during the swap or the move, the hash set may end up in a undefined state. Per the standard + * a `Key` with a noexcept copy constructor and no move constructor also satisfies the + * `std::is_nothrow_move_constructible::value` criterion (and will thus guarantee the + * strong exception for the set). + * + * When `StoreHash` is true, 32 bits of the hash are stored alongside the values. It can improve + * the performance during lookups if the `KeyEqual` function takes time (or engenders a cache-miss for example) + * as we then compare the stored hashes before comparing the keys. When `tsl::rh::power_of_two_growth_policy` is used + * as `GrowthPolicy`, it may also speed-up the rehash process as we can avoid to recalculate the hash. + * When it is detected that storing the hash will not incur any memory penality due to alignement (i.e. + * `sizeof(tsl::detail_robin_hash::bucket_entry) == + * sizeof(tsl::detail_robin_hash::bucket_entry)`) and `tsl::rh::power_of_two_growth_policy` is + * used, the hash will be stored even if `StoreHash` is false so that we can speed-up the rehash (but it will + * not be used on lookups unless `StoreHash` is true). + * + * `GrowthPolicy` defines how the set grows and consequently how a hash value is mapped to a bucket. + * By default the set uses `tsl::rh::power_of_two_growth_policy`. This policy keeps the number of buckets + * to a power of two and uses a mask to set the hash to a bucket instead of the slow modulo. + * Other growth policies are available and you may define your own growth policy, + * check `tsl::rh::power_of_two_growth_policy` for the interface. + * + * If the destructor of `Key` throws an exception, the behaviour of the class is undefined. + * + * Iterators invalidation: + * - clear, operator=, reserve, rehash: always invalidate the iterators. + * - insert, emplace, emplace_hint, operator[]: if there is an effective insert, invalidate the iterators. + * - erase: always invalidate the iterators. + */ +template, + class KeyEqual = std::equal_to, + class Allocator = std::allocator, + bool StoreHash = false, + class GrowthPolicy = tsl::rh::power_of_two_growth_policy<2>> +class robin_set { +private: + template + using has_is_transparent = tsl::detail_robin_hash::has_is_transparent; + + class KeySelect { + public: + using key_type = Key; + + const key_type& operator()(const Key& key) const noexcept { + return key; + } + + key_type& operator()(Key& key) noexcept { + return key; + } + }; + + using ht = detail_robin_hash::robin_hash; + +public: + using key_type = typename ht::key_type; + using value_type = typename ht::value_type; + using size_type = typename ht::size_type; + using difference_type = typename ht::difference_type; + using hasher = typename ht::hasher; + using key_equal = typename ht::key_equal; + using allocator_type = typename ht::allocator_type; + using reference = typename ht::reference; + using const_reference = typename ht::const_reference; + using pointer = typename ht::pointer; + using const_pointer = typename ht::const_pointer; + using iterator = typename ht::iterator; + using const_iterator = typename ht::const_iterator; + + + /* + * Constructors + */ + robin_set(): robin_set(ht::DEFAULT_INIT_BUCKETS_SIZE) { + } + + explicit robin_set(size_type bucket_count, + const Hash& hash = Hash(), + const KeyEqual& equal = KeyEqual(), + const Allocator& alloc = Allocator()): + m_ht(bucket_count, hash, equal, alloc, ht::DEFAULT_MAX_LOAD_FACTOR) + { + } + + robin_set(size_type bucket_count, + const Allocator& alloc): robin_set(bucket_count, Hash(), KeyEqual(), alloc) + { + } + + robin_set(size_type bucket_count, + const Hash& hash, + const Allocator& alloc): robin_set(bucket_count, hash, KeyEqual(), alloc) + { + } + + explicit robin_set(const Allocator& alloc): robin_set(ht::DEFAULT_INIT_BUCKETS_SIZE, alloc) { + } + + template + robin_set(InputIt first, InputIt last, + size_type bucket_count = ht::DEFAULT_INIT_BUCKETS_SIZE, + const Hash& hash = Hash(), + const KeyEqual& equal = KeyEqual(), + const Allocator& alloc = Allocator()): robin_set(bucket_count, hash, equal, alloc) + { + insert(first, last); + } + + template + robin_set(InputIt first, InputIt last, + size_type bucket_count, + const Allocator& alloc): robin_set(first, last, bucket_count, Hash(), KeyEqual(), alloc) + { + } + + template + robin_set(InputIt first, InputIt last, + size_type bucket_count, + const Hash& hash, + const Allocator& alloc): robin_set(first, last, bucket_count, hash, KeyEqual(), alloc) + { + } + + robin_set(std::initializer_list init, + size_type bucket_count = ht::DEFAULT_INIT_BUCKETS_SIZE, + const Hash& hash = Hash(), + const KeyEqual& equal = KeyEqual(), + const Allocator& alloc = Allocator()): + robin_set(init.begin(), init.end(), bucket_count, hash, equal, alloc) + { + } + + robin_set(std::initializer_list init, + size_type bucket_count, + const Allocator& alloc): + robin_set(init.begin(), init.end(), bucket_count, Hash(), KeyEqual(), alloc) + { + } + + robin_set(std::initializer_list init, + size_type bucket_count, + const Hash& hash, + const Allocator& alloc): + robin_set(init.begin(), init.end(), bucket_count, hash, KeyEqual(), alloc) + { + } + + + robin_set& operator=(std::initializer_list ilist) { + m_ht.clear(); + + m_ht.reserve(ilist.size()); + m_ht.insert(ilist.begin(), ilist.end()); + + return *this; + } + + allocator_type get_allocator() const { return m_ht.get_allocator(); } + + + /* + * Iterators + */ + iterator begin() noexcept { return m_ht.begin(); } + const_iterator begin() const noexcept { return m_ht.begin(); } + const_iterator cbegin() const noexcept { return m_ht.cbegin(); } + + iterator end() noexcept { return m_ht.end(); } + const_iterator end() const noexcept { return m_ht.end(); } + const_iterator cend() const noexcept { return m_ht.cend(); } + + + /* + * Capacity + */ + bool empty() const noexcept { return m_ht.empty(); } + size_type size() const noexcept { return m_ht.size(); } + size_type max_size() const noexcept { return m_ht.max_size(); } + + /* + * Modifiers + */ + void clear() noexcept { m_ht.clear(); } + + + + + std::pair insert(const value_type& value) { + return m_ht.insert(value); + } + + std::pair insert(value_type&& value) { + return m_ht.insert(std::move(value)); + } + + iterator insert(const_iterator hint, const value_type& value) { + return m_ht.insert(hint, value); + } + + iterator insert(const_iterator hint, value_type&& value) { + return m_ht.insert(hint, std::move(value)); + } + + template + void insert(InputIt first, InputIt last) { + m_ht.insert(first, last); + } + + void insert(std::initializer_list ilist) { + m_ht.insert(ilist.begin(), ilist.end()); + } + + + + + /** + * Due to the way elements are stored, emplace will need to move or copy the key-value once. + * The method is equivalent to insert(value_type(std::forward(args)...)); + * + * Mainly here for compatibility with the std::unordered_map interface. + */ + template + std::pair emplace(Args&&... args) { + return m_ht.emplace(std::forward(args)...); + } + + + + /** + * Due to the way elements are stored, emplace_hint will need to move or copy the key-value once. + * The method is equivalent to insert(hint, value_type(std::forward(args)...)); + * + * Mainly here for compatibility with the std::unordered_map interface. + */ + template + iterator emplace_hint(const_iterator hint, Args&&... args) { + return m_ht.emplace_hint(hint, std::forward(args)...); + } + + + + iterator erase(iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator first, const_iterator last) { return m_ht.erase(first, last); } + size_type erase(const key_type& key) { return m_ht.erase(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. + */ + size_type erase(const key_type& key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + size_type erase(const K& key) { return m_ht.erase(key); } + + /** + * @copydoc erase(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup to the value if you already have the hash. + */ + template::value>::type* = nullptr> + size_type erase(const K& key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + + + void swap(robin_set& other) { other.m_ht.swap(m_ht); } + + + + /* + * Lookup + */ + size_type count(const Key& key) const { return m_ht.count(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + size_type count(const Key& key, std::size_t precalculated_hash) const { return m_ht.count(key, precalculated_hash); } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + size_type count(const K& key) const { return m_ht.count(key); } + + /** + * @copydoc count(const K& key) const + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + size_type count(const K& key, std::size_t precalculated_hash) const { return m_ht.count(key, precalculated_hash); } + + + + + iterator find(const Key& key) { return m_ht.find(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + iterator find(const Key& key, std::size_t precalculated_hash) { return m_ht.find(key, precalculated_hash); } + + const_iterator find(const Key& key) const { return m_ht.find(key); } + + /** + * @copydoc find(const Key& key, std::size_t precalculated_hash) + */ + const_iterator find(const Key& key, std::size_t precalculated_hash) const { return m_ht.find(key, precalculated_hash); } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + iterator find(const K& key) { return m_ht.find(key); } + + /** + * @copydoc find(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + iterator find(const K& key, std::size_t precalculated_hash) { return m_ht.find(key, precalculated_hash); } + + /** + * @copydoc find(const K& key) + */ + template::value>::type* = nullptr> + const_iterator find(const K& key) const { return m_ht.find(key); } + + /** + * @copydoc find(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + const_iterator find(const K& key, std::size_t precalculated_hash) const { return m_ht.find(key, precalculated_hash); } + + + + + std::pair equal_range(const Key& key) { return m_ht.equal_range(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + std::pair equal_range(const Key& key, std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + std::pair equal_range(const Key& key) const { return m_ht.equal_range(key); } + + /** + * @copydoc equal_range(const Key& key, std::size_t precalculated_hash) + */ + std::pair equal_range(const Key& key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef KeyEqual::is_transparent exists. + * If so, K must be hashable and comparable to Key. + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key) { return m_ht.equal_range(key); } + + /** + * @copydoc equal_range(const K& key) + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The hash value should be the same + * as hash_function()(key). Usefull to speed-up the lookup if you already have the hash. + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key, std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * @copydoc equal_range(const K& key) + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key) const { return m_ht.equal_range(key); } + + /** + * @copydoc equal_range(const K& key, std::size_t precalculated_hash) + */ + template::value>::type* = nullptr> + std::pair equal_range(const K& key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + + + + /* + * Bucket interface + */ + size_type bucket_count() const { return m_ht.bucket_count(); } + size_type max_bucket_count() const { return m_ht.max_bucket_count(); } + + + /* + * Hash policy + */ + float load_factor() const { return m_ht.load_factor(); } + float max_load_factor() const { return m_ht.max_load_factor(); } + void max_load_factor(float ml) { m_ht.max_load_factor(ml); } + + void rehash(size_type count) { m_ht.rehash(count); } + void reserve(size_type count) { m_ht.reserve(count); } + + + /* + * Observers + */ + hasher hash_function() const { return m_ht.hash_function(); } + key_equal key_eq() const { return m_ht.key_eq(); } + + + /* + * Other + */ + + /** + * Convert a const_iterator to an iterator. + */ + iterator mutable_iterator(const_iterator pos) { + return m_ht.mutable_iterator(pos); + } + + friend bool operator==(const robin_set& lhs, const robin_set& rhs) { + if(lhs.size() != rhs.size()) { + return false; + } + + for(const auto& element_lhs: lhs) { + const auto it_element_rhs = rhs.find(element_lhs); + if(it_element_rhs == rhs.cend()) { + return false; + } + } + + return true; + } + + friend bool operator!=(const robin_set& lhs, const robin_set& rhs) { + return !operator==(lhs, rhs); + } + + friend void swap(robin_set& lhs, robin_set& rhs) { + lhs.swap(rhs); + } + +private: + ht m_ht; +}; + + +/** + * Same as `tsl::robin_set`. + */ +template, + class KeyEqual = std::equal_to, + class Allocator = std::allocator, + bool StoreHash = false> +using robin_pg_set = robin_set; + +} // end namespace tsl + +#endif + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_growth_policy.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_growth_policy.h new file mode 100644 index 0000000..d73aaaf --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_growth_policy.h @@ -0,0 +1,301 @@ +/** + * MIT License + * + * Copyright (c) 2017 Thibaut Goetghebuer-Planchon + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_SPARSE_GROWTH_POLICY_H +#define TSL_SPARSE_GROWTH_POLICY_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace tsl { +namespace sh { + +/** + * Grow the hash table by a factor of GrowthFactor keeping the bucket count to a + * power of two. It allows the table to use a mask operation instead of a modulo + * operation to map a hash to a bucket. + * + * GrowthFactor must be a power of two >= 2. + */ +template +class power_of_two_growth_policy { + public: + /** + * Called on the hash table creation and on rehash. The number of buckets for + * the table is passed in parameter. This number is a minimum, the policy may + * update this value with a higher value if needed (but not lower). + * + * If 0 is given, min_bucket_count_in_out must still be 0 after the policy + * creation and bucket_for_hash must always return 0 in this case. + */ + explicit power_of_two_growth_policy(std::size_t &min_bucket_count_in_out) { + if (min_bucket_count_in_out > max_bucket_count()) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + if (min_bucket_count_in_out > 0) { + min_bucket_count_in_out = + round_up_to_power_of_two(min_bucket_count_in_out); + m_mask = min_bucket_count_in_out - 1; + } else { + m_mask = 0; + } + } + + /** + * Return the bucket [0, bucket_count()) to which the hash belongs. + * If bucket_count() is 0, it must always return 0. + */ + std::size_t bucket_for_hash(std::size_t hash) const noexcept { + return hash & m_mask; + } + + /** + * Return the number of buckets that should be used on next growth. + */ + std::size_t next_bucket_count() const { + if ((m_mask + 1) > max_bucket_count() / GrowthFactor) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + return (m_mask + 1) * GrowthFactor; + } + + /** + * Return the maximum number of buckets supported by the policy. + */ + std::size_t max_bucket_count() const { + // Largest power of two. + return (std::numeric_limits::max() / 2) + 1; + } + + /** + * Reset the growth policy as if it was created with a bucket count of 0. + * After a clear, the policy must always return 0 when bucket_for_hash is + * called. + */ + void clear() noexcept { m_mask = 0; } + + private: + static std::size_t round_up_to_power_of_two(std::size_t value) { + if (is_power_of_two(value)) { + return value; + } + + if (value == 0) { + return 1; + } + + --value; + for (std::size_t i = 1; i < sizeof(std::size_t) * CHAR_BIT; i *= 2) { + value |= value >> i; + } + + return value + 1; + } + + static constexpr bool is_power_of_two(std::size_t value) { + return value != 0 && (value & (value - 1)) == 0; + } + + protected: + static_assert(is_power_of_two(GrowthFactor) && GrowthFactor >= 2, + "GrowthFactor must be a power of two >= 2."); + + std::size_t m_mask; +}; + +/** + * Grow the hash table by GrowthFactor::num / GrowthFactor::den and use a modulo + * to map a hash to a bucket. Slower but it can be useful if you want a slower + * growth. + */ +template > +class mod_growth_policy { + public: + explicit mod_growth_policy(std::size_t &min_bucket_count_in_out) { + if (min_bucket_count_in_out > max_bucket_count()) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + if (min_bucket_count_in_out > 0) { + m_mod = min_bucket_count_in_out; + } else { + m_mod = 1; + } + } + + std::size_t bucket_for_hash(std::size_t hash) const noexcept { + return hash % m_mod; + } + + std::size_t next_bucket_count() const { + if (m_mod == max_bucket_count()) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + const double next_bucket_count = + std::ceil(double(m_mod) * REHASH_SIZE_MULTIPLICATION_FACTOR); + if (!std::isnormal(next_bucket_count)) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + if (next_bucket_count > double(max_bucket_count())) { + return max_bucket_count(); + } else { + return std::size_t(next_bucket_count); + } + } + + std::size_t max_bucket_count() const { return MAX_BUCKET_COUNT; } + + void clear() noexcept { m_mod = 1; } + + private: + static constexpr double REHASH_SIZE_MULTIPLICATION_FACTOR = + 1.0 * GrowthFactor::num / GrowthFactor::den; + static const std::size_t MAX_BUCKET_COUNT = + std::size_t(double(std::numeric_limits::max() / + REHASH_SIZE_MULTIPLICATION_FACTOR)); + + static_assert(REHASH_SIZE_MULTIPLICATION_FACTOR >= 1.1, + "Growth factor should be >= 1.1."); + + std::size_t m_mod; +}; + +/** + * Grow the hash table by using prime numbers as bucket count. Slower than + * tsl::sh::power_of_two_growth_policy in general but will probably distribute + * the values around better in the buckets with a poor hash function. + * + * To allow the compiler to optimize the modulo operation, a lookup table is + * used with constant primes numbers. + * + * With a switch the code would look like: + * \code + * switch(iprime) { // iprime is the current prime of the hash table + * case 0: hash % 5ul; + * break; + * case 1: hash % 17ul; + * break; + * case 2: hash % 29ul; + * break; + * ... + * } + * \endcode + * + * Due to the constant variable in the modulo the compiler is able to optimize + * the operation by a series of multiplications, substractions and shifts. + * + * The 'hash % 5' could become something like 'hash - (hash * 0xCCCCCCCD) >> 34) + * * 5' in a 64 bits environment. + */ +class prime_growth_policy { + public: + explicit prime_growth_policy(std::size_t &min_bucket_count_in_out) { + auto it_prime = std::lower_bound(primes().begin(), primes().end(), + min_bucket_count_in_out); + if (it_prime == primes().end()) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + m_iprime = + static_cast(std::distance(primes().begin(), it_prime)); + if (min_bucket_count_in_out > 0) { + min_bucket_count_in_out = *it_prime; + } else { + min_bucket_count_in_out = 0; + } + } + + std::size_t bucket_for_hash(std::size_t hash) const noexcept { + return mod_prime()[m_iprime](hash); + } + + std::size_t next_bucket_count() const { + if (m_iprime + 1 >= primes().size()) { + throw std::length_error("The hash table exceeds its maximum size."); + } + + return primes()[m_iprime + 1]; + } + + std::size_t max_bucket_count() const { return primes().back(); } + + void clear() noexcept { m_iprime = 0; } + + private: + static const std::array &primes() { + static const std::array PRIMES = { + {1ul, 5ul, 17ul, 29ul, 37ul, + 53ul, 67ul, 79ul, 97ul, 131ul, + 193ul, 257ul, 389ul, 521ul, 769ul, + 1031ul, 1543ul, 2053ul, 3079ul, 6151ul, + 12289ul, 24593ul, 49157ul, 98317ul, 196613ul, + 393241ul, 786433ul, 1572869ul, 3145739ul, 6291469ul, + 12582917ul, 25165843ul, 50331653ul, 100663319ul, 201326611ul, + 402653189ul, 805306457ul, 1610612741ul, 3221225473ul, 4294967291ul}}; + + static_assert( + std::numeric_limits::max() >= PRIMES.size(), + "The type of m_iprime is not big enough."); + + return PRIMES; + } + + static const std::array &mod_prime() { + // MOD_PRIME[iprime](hash) returns hash % PRIMES[iprime]. This table allows + // for faster modulo as the compiler can optimize the modulo code better + // with a constant known at the compilation. + static const std::array MOD_PRIME = { + {&mod<0>, &mod<1>, &mod<2>, &mod<3>, &mod<4>, &mod<5>, &mod<6>, + &mod<7>, &mod<8>, &mod<9>, &mod<10>, &mod<11>, &mod<12>, &mod<13>, + &mod<14>, &mod<15>, &mod<16>, &mod<17>, &mod<18>, &mod<19>, &mod<20>, + &mod<21>, &mod<22>, &mod<23>, &mod<24>, &mod<25>, &mod<26>, &mod<27>, + &mod<28>, &mod<29>, &mod<30>, &mod<31>, &mod<32>, &mod<33>, &mod<34>, + &mod<35>, &mod<36>, &mod<37>, &mod<38>, &mod<39>}}; + + return MOD_PRIME; + } + + template + static std::size_t mod(std::size_t hash) { + return hash % primes()[IPrime]; + } + + private: + unsigned int m_iprime; +}; + +} // namespace sh +} // namespace tsl + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_hash.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_hash.h new file mode 100644 index 0000000..e2115b4 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_hash.h @@ -0,0 +1,2215 @@ +/** + * MIT License + * + * Copyright (c) 2017 Thibaut Goetghebuer-Planchon + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_SPARSE_HASH_H +#define TSL_SPARSE_HASH_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "sparse_growth_policy.h" + +#ifdef __INTEL_COMPILER +#include // For _popcnt32 and _popcnt64 +#endif + +#ifdef _MSC_VER +#include // For __cpuid, __popcnt and __popcnt64 +#endif + +#ifdef TSL_DEBUG +#define tsl_sh_assert(expr) assert(expr) +#else +#define tsl_sh_assert(expr) (static_cast(0)) +#endif + +namespace tsl { + +namespace sh { +enum class probing { linear, quadratic }; + +enum class exception_safety { basic, strong }; + +enum class sparsity { high, medium, low }; +} // namespace sh + +namespace detail_popcount { +/** + * Define the popcount(ll) methods and pick-up the best depending on the + * compiler. + */ + +// From Wikipedia: https://en.wikipedia.org/wiki/Hamming_weight +inline int fallback_popcountll(unsigned long long int x) { + static_assert( + sizeof(unsigned long long int) == sizeof(std::uint64_t), + "sizeof(unsigned long long int) must be equal to sizeof(std::uint64_t). " + "Open a feature request if you need support for a platform where it " + "isn't the case."); + + const std::uint64_t m1 = 0x5555555555555555ull; + const std::uint64_t m2 = 0x3333333333333333ull; + const std::uint64_t m4 = 0x0f0f0f0f0f0f0f0full; + const std::uint64_t h01 = 0x0101010101010101ull; + + x -= (x >> 1ull) & m1; + x = (x & m2) + ((x >> 2ull) & m2); + x = (x + (x >> 4ull)) & m4; + return static_cast((x * h01) >> (64ull - 8ull)); +} + +inline int fallback_popcount(unsigned int x) { + static_assert(sizeof(unsigned int) == sizeof(std::uint32_t) || + sizeof(unsigned int) == sizeof(std::uint64_t), + "sizeof(unsigned int) must be equal to sizeof(std::uint32_t) " + "or sizeof(std::uint64_t). " + "Open a feature request if you need support for a platform " + "where it isn't the case."); + + if (sizeof(unsigned int) == sizeof(std::uint32_t)) { + const std::uint32_t m1 = 0x55555555; + const std::uint32_t m2 = 0x33333333; + const std::uint32_t m4 = 0x0f0f0f0f; + const std::uint32_t h01 = 0x01010101; + + x -= (x >> 1) & m1; + x = (x & m2) + ((x >> 2) & m2); + x = (x + (x >> 4)) & m4; + return static_cast((x * h01) >> (32 - 8)); + } else { + return fallback_popcountll(x); + } +} + +#if defined(__clang__) || defined(__GNUC__) +inline int popcountll(unsigned long long int value) { + return __builtin_popcountll(value); +} + +inline int popcount(unsigned int value) { return __builtin_popcount(value); } + +#elif defined(_MSC_VER) +/** + * We need to check for popcount support at runtime on Windows with __cpuid + * See https://msdn.microsoft.com/en-us/library/bb385231.aspx + */ +inline bool has_popcount_support() { + int cpu_infos[4]; + __cpuid(cpu_infos, 1); + return (cpu_infos[2] & (1 << 23)) != 0; +} + +inline int popcountll(unsigned long long int value) { +#ifdef _WIN64 + static_assert( + sizeof(unsigned long long int) == sizeof(std::int64_t), + "sizeof(unsigned long long int) must be equal to sizeof(std::int64_t). "); + + static const bool has_popcount = has_popcount_support(); + return has_popcount + ? static_cast(__popcnt64(static_cast(value))) + : fallback_popcountll(value); +#else + return fallback_popcountll(value); +#endif +} + +inline int popcount(unsigned int value) { + static_assert(sizeof(unsigned int) == sizeof(std::int32_t), + "sizeof(unsigned int) must be equal to sizeof(std::int32_t). "); + + static const bool has_popcount = has_popcount_support(); + return has_popcount + ? static_cast(__popcnt(static_cast(value))) + : fallback_popcount(value); +} + +#elif defined(__INTEL_COMPILER) +inline int popcountll(unsigned long long int value) { + static_assert(sizeof(unsigned long long int) == sizeof(__int64), ""); + return _popcnt64(static_cast<__int64>(value)); +} + +inline int popcount(unsigned int value) { + return _popcnt32(static_cast(value)); +} + +#else +inline int popcountll(unsigned long long int x) { + return fallback_popcountll(x); +} + +inline int popcount(unsigned int x) { return fallback_popcount(x); } + +#endif +} // namespace detail_popcount + +namespace detail_sparse_hash { + +template +struct make_void { + using type = void; +}; + +template +struct has_is_transparent : std::false_type {}; + +template +struct has_is_transparent::type> + : std::true_type {}; + +template +struct is_power_of_two_policy : std::false_type {}; + +template +struct is_power_of_two_policy> + : std::true_type {}; + +inline constexpr bool is_power_of_two(std::size_t value) { + return value != 0 && (value & (value - 1)) == 0; +} + +inline std::size_t round_up_to_power_of_two(std::size_t value) { + if (is_power_of_two(value)) { + return value; + } + + if (value == 0) { + return 1; + } + + --value; + for (std::size_t i = 1; i < sizeof(std::size_t) * CHAR_BIT; i *= 2) { + value |= value >> i; + } + + return value + 1; +} + +template +static T numeric_cast(U value, + const char *error_message = "numeric_cast() failed.") { + T ret = static_cast(value); + if (static_cast(ret) != value) { + throw std::runtime_error(error_message); + } + + const bool is_same_signedness = + (std::is_unsigned::value && std::is_unsigned::value) || + (std::is_signed::value && std::is_signed::value); + if (!is_same_signedness && (ret < T{}) != (value < U{})) { + throw std::runtime_error(error_message); + } + + return ret; +} + +/** + * Fixed size type used to represent size_type values on serialization. Need to + * be big enough to represent a std::size_t on 32 and 64 bits platforms, and + * must be the same size on both platforms. + */ +using slz_size_type = std::uint64_t; +static_assert(std::numeric_limits::max() >= + std::numeric_limits::max(), + "slz_size_type must be >= std::size_t"); + +template +static T deserialize_value(Deserializer &deserializer) { + // MSVC < 2017 is not conformant, circumvent the problem by removing the + // template keyword +#if defined(_MSC_VER) && _MSC_VER < 1910 + return deserializer.Deserializer::operator()(); +#else + return deserializer.Deserializer::template operator()(); +#endif +} + +/** + * WARNING: the sparse_array class doesn't free the ressources allocated through + * the allocator passed in parameter in each method. You have to manually call + * `clear(Allocator&)` when you don't need a sparse_array object anymore. + * + * The reason is that the sparse_array doesn't store the allocator to avoid + * wasting space in each sparse_array when the allocator has a size > 0. It only + * allocates/deallocates objects with the allocator that is passed in parameter. + * + * + * + * Index denotes a value between [0, BITMAP_NB_BITS), it is an index similar to + * std::vector. Offset denotes the real position in `m_values` corresponding to + * an index. + * + * We are using raw pointers instead of std::vector to avoid loosing + * 2*sizeof(size_t) bytes to store the capacity and size of the vector in each + * sparse_array. We know we can only store up to BITMAP_NB_BITS elements in the + * array, we don't need such big types. + * + * + * T must be nothrow move constructible and/or copy constructible. + * Behaviour is undefined if the destructor of T throws an exception. + * + * See https://smerity.com/articles/2015/google_sparsehash.html for details on + * the idea behinds the implementation. + * + * TODO Check to use std::realloc and std::memmove when possible + */ +template +class sparse_array { + public: + using value_type = T; + using size_type = std::uint_least8_t; + using allocator_type = Allocator; + using iterator = value_type *; + using const_iterator = const value_type *; + + private: + static const size_type CAPACITY_GROWTH_STEP = + (Sparsity == tsl::sh::sparsity::high) ? 2 + : (Sparsity == tsl::sh::sparsity::medium) + ? 4 + : 8; // (Sparsity == tsl::sh::sparsity::low) + + /** + * Bitmap size configuration. + * Use 32 bits for the bitmap on 32-bits or less environnement as popcount on + * 64 bits numbers is slow on these environnement. Use 64 bits bitmap + * otherwise. + */ +#if SIZE_MAX <= UINT32_MAX + using bitmap_type = std::uint_least32_t; + static const std::size_t BITMAP_NB_BITS = 32; + static const std::size_t BUCKET_SHIFT = 5; +#else + using bitmap_type = std::uint_least64_t; + static const std::size_t BITMAP_NB_BITS = 64; + static const std::size_t BUCKET_SHIFT = 6; +#endif + + static const std::size_t BUCKET_MASK = BITMAP_NB_BITS - 1; + + static_assert(is_power_of_two(BITMAP_NB_BITS), + "BITMAP_NB_BITS must be a power of two."); + static_assert(std::numeric_limits::digits >= BITMAP_NB_BITS, + "bitmap_type must be able to hold at least BITMAP_NB_BITS."); + static_assert((std::size_t(1) << BUCKET_SHIFT) == BITMAP_NB_BITS, + "(1 << BUCKET_SHIFT) must be equal to BITMAP_NB_BITS."); + static_assert(std::numeric_limits::max() >= BITMAP_NB_BITS, + "size_type must be big enough to hold BITMAP_NB_BITS."); + static_assert(std::is_unsigned::value, + "bitmap_type must be unsigned."); + static_assert((std::numeric_limits::max() & BUCKET_MASK) == + BITMAP_NB_BITS - 1, + ""); + + public: + /** + * Map an ibucket [0, bucket_count) in the hash table to a sparse_ibucket + * (a sparse_array holds multiple buckets, so there is less sparse_array than + * bucket_count). + * + * The bucket ibucket is in + * m_sparse_buckets[sparse_ibucket(ibucket)][index_in_sparse_bucket(ibucket)] + * instead of something like m_buckets[ibucket] in a classical hash table. + */ + static std::size_t sparse_ibucket(std::size_t ibucket) { + return ibucket >> BUCKET_SHIFT; + } + + /** + * Map an ibucket [0, bucket_count) in the hash table to an index in the + * sparse_array which corresponds to the bucket. + * + * The bucket ibucket is in + * m_sparse_buckets[sparse_ibucket(ibucket)][index_in_sparse_bucket(ibucket)] + * instead of something like m_buckets[ibucket] in a classical hash table. + */ + static typename sparse_array::size_type index_in_sparse_bucket( + std::size_t ibucket) { + return static_cast( + ibucket & sparse_array::BUCKET_MASK); + } + + static std::size_t nb_sparse_buckets(std::size_t bucket_count) noexcept { + if (bucket_count == 0) { + return 0; + } + + return std::max( + 1, sparse_ibucket(tsl::detail_sparse_hash::round_up_to_power_of_two( + bucket_count))); + } + + public: + sparse_array() noexcept + : m_values(nullptr), + m_bitmap_vals(0), + m_bitmap_deleted_vals(0), + m_nb_elements(0), + m_capacity(0), + m_last_array(false) {} + + explicit sparse_array(bool last_bucket) noexcept + : m_values(nullptr), + m_bitmap_vals(0), + m_bitmap_deleted_vals(0), + m_nb_elements(0), + m_capacity(0), + m_last_array(last_bucket) {} + + sparse_array(size_type capacity, Allocator &alloc) + : m_values(nullptr), + m_bitmap_vals(0), + m_bitmap_deleted_vals(0), + m_nb_elements(0), + m_capacity(capacity), + m_last_array(false) { + if (m_capacity > 0) { + m_values = alloc.allocate(m_capacity); + tsl_sh_assert(m_values != + nullptr); // allocate should throw if there is a failure + } + } + + sparse_array(const sparse_array &other, Allocator &alloc) + : m_values(nullptr), + m_bitmap_vals(other.m_bitmap_vals), + m_bitmap_deleted_vals(other.m_bitmap_deleted_vals), + m_nb_elements(0), + m_capacity(other.m_capacity), + m_last_array(other.m_last_array) { + tsl_sh_assert(other.m_capacity >= other.m_nb_elements); + if (m_capacity == 0) { + return; + } + + m_values = alloc.allocate(m_capacity); + tsl_sh_assert(m_values != + nullptr); // allocate should throw if there is a failure + try { + for (size_type i = 0; i < other.m_nb_elements; i++) { + construct_value(alloc, m_values + i, other.m_values[i]); + m_nb_elements++; + } + } catch (...) { + clear(alloc); + throw; + } + } + + sparse_array(sparse_array &&other) noexcept + : m_values(other.m_values), + m_bitmap_vals(other.m_bitmap_vals), + m_bitmap_deleted_vals(other.m_bitmap_deleted_vals), + m_nb_elements(other.m_nb_elements), + m_capacity(other.m_capacity), + m_last_array(other.m_last_array) { + other.m_values = nullptr; + other.m_bitmap_vals = 0; + other.m_bitmap_deleted_vals = 0; + other.m_nb_elements = 0; + other.m_capacity = 0; + } + + sparse_array(sparse_array &&other, Allocator &alloc) + : m_values(nullptr), + m_bitmap_vals(other.m_bitmap_vals), + m_bitmap_deleted_vals(other.m_bitmap_deleted_vals), + m_nb_elements(0), + m_capacity(other.m_capacity), + m_last_array(other.m_last_array) { + tsl_sh_assert(other.m_capacity >= other.m_nb_elements); + if (m_capacity == 0) { + return; + } + + m_values = alloc.allocate(m_capacity); + tsl_sh_assert(m_values != + nullptr); // allocate should throw if there is a failure + try { + for (size_type i = 0; i < other.m_nb_elements; i++) { + construct_value(alloc, m_values + i, std::move(other.m_values[i])); + m_nb_elements++; + } + } catch (...) { + clear(alloc); + throw; + } + } + + sparse_array &operator=(const sparse_array &) = delete; + sparse_array &operator=(sparse_array &&) = delete; + + ~sparse_array() noexcept { + // The code that manages the sparse_array must have called clear before + // destruction. See documentation of sparse_array for more details. + tsl_sh_assert(m_capacity == 0 && m_nb_elements == 0 && m_values == nullptr); + } + + iterator begin() noexcept { return m_values; } + iterator end() noexcept { return m_values + m_nb_elements; } + const_iterator begin() const noexcept { return cbegin(); } + const_iterator end() const noexcept { return cend(); } + const_iterator cbegin() const noexcept { return m_values; } + const_iterator cend() const noexcept { return m_values + m_nb_elements; } + + bool empty() const noexcept { return m_nb_elements == 0; } + + size_type size() const noexcept { return m_nb_elements; } + + void clear(allocator_type &alloc) noexcept { + destroy_and_deallocate_values(alloc, m_values, m_nb_elements, m_capacity); + + m_values = nullptr; + m_bitmap_vals = 0; + m_bitmap_deleted_vals = 0; + m_nb_elements = 0; + m_capacity = 0; + } + + bool last() const noexcept { return m_last_array; } + + void set_as_last() noexcept { m_last_array = true; } + + bool has_value(size_type index) const noexcept { + tsl_sh_assert(index < BITMAP_NB_BITS); + return (m_bitmap_vals & (bitmap_type(1) << index)) != 0; + } + + bool has_deleted_value(size_type index) const noexcept { + tsl_sh_assert(index < BITMAP_NB_BITS); + return (m_bitmap_deleted_vals & (bitmap_type(1) << index)) != 0; + } + + iterator value(size_type index) noexcept { + tsl_sh_assert(has_value(index)); + return m_values + index_to_offset(index); + } + + const_iterator value(size_type index) const noexcept { + tsl_sh_assert(has_value(index)); + return m_values + index_to_offset(index); + } + + /** + * Return iterator to set value. + */ + template + iterator set(allocator_type &alloc, size_type index, Args &&...value_args) { + tsl_sh_assert(!has_value(index)); + + const size_type offset = index_to_offset(index); + insert_at_offset(alloc, offset, std::forward(value_args)...); + + m_bitmap_vals = (m_bitmap_vals | (bitmap_type(1) << index)); + m_bitmap_deleted_vals = + (m_bitmap_deleted_vals & ~(bitmap_type(1) << index)); + + m_nb_elements++; + + tsl_sh_assert(has_value(index)); + tsl_sh_assert(!has_deleted_value(index)); + + return m_values + offset; + } + + iterator erase(allocator_type &alloc, iterator position) { + const size_type offset = + static_cast(std::distance(begin(), position)); + return erase(alloc, position, offset_to_index(offset)); + } + + // Return the next value or end if no next value + iterator erase(allocator_type &alloc, iterator position, size_type index) { + tsl_sh_assert(has_value(index)); + tsl_sh_assert(!has_deleted_value(index)); + + const size_type offset = + static_cast(std::distance(begin(), position)); + erase_at_offset(alloc, offset); + + m_bitmap_vals = (m_bitmap_vals & ~(bitmap_type(1) << index)); + m_bitmap_deleted_vals = (m_bitmap_deleted_vals | (bitmap_type(1) << index)); + + m_nb_elements--; + + tsl_sh_assert(!has_value(index)); + tsl_sh_assert(has_deleted_value(index)); + + return m_values + offset; + } + + void swap(sparse_array &other) { + using std::swap; + + swap(m_values, other.m_values); + swap(m_bitmap_vals, other.m_bitmap_vals); + swap(m_bitmap_deleted_vals, other.m_bitmap_deleted_vals); + swap(m_nb_elements, other.m_nb_elements); + swap(m_capacity, other.m_capacity); + swap(m_last_array, other.m_last_array); + } + + static iterator mutable_iterator(const_iterator pos) { + return const_cast(pos); + } + + template + void serialize(Serializer &serializer) const { + const slz_size_type sparse_bucket_size = m_nb_elements; + serializer(sparse_bucket_size); + + const slz_size_type bitmap_vals = m_bitmap_vals; + serializer(bitmap_vals); + + const slz_size_type bitmap_deleted_vals = m_bitmap_deleted_vals; + serializer(bitmap_deleted_vals); + + for (const value_type &value : *this) { + serializer(value); + } + } + + template + static sparse_array deserialize_hash_compatible(Deserializer &deserializer, + Allocator &alloc) { + const slz_size_type sparse_bucket_size = + deserialize_value(deserializer); + const slz_size_type bitmap_vals = + deserialize_value(deserializer); + const slz_size_type bitmap_deleted_vals = + deserialize_value(deserializer); + + if (sparse_bucket_size > BITMAP_NB_BITS) { + throw std::runtime_error( + "Deserialized sparse_bucket_size is too big for the platform. " + "Maximum should be BITMAP_NB_BITS."); + } + + sparse_array sarray; + if (sparse_bucket_size == 0) { + return sarray; + } + + sarray.m_bitmap_vals = numeric_cast( + bitmap_vals, "Deserialized bitmap_vals is too big."); + sarray.m_bitmap_deleted_vals = numeric_cast( + bitmap_deleted_vals, "Deserialized bitmap_deleted_vals is too big."); + + sarray.m_capacity = numeric_cast( + sparse_bucket_size, "Deserialized sparse_bucket_size is too big."); + sarray.m_values = alloc.allocate(sarray.m_capacity); + + try { + for (size_type ivalue = 0; ivalue < sarray.m_capacity; ivalue++) { + construct_value(alloc, sarray.m_values + ivalue, + deserialize_value(deserializer)); + sarray.m_nb_elements++; + } + } catch (...) { + sarray.clear(alloc); + throw; + } + + return sarray; + } + + /** + * Deserialize the values of the bucket and insert them all in sparse_hash + * through sparse_hash.insert(...). + */ + template + static void deserialize_values_into_sparse_hash(Deserializer &deserializer, + SparseHash &sparse_hash) { + const slz_size_type sparse_bucket_size = + deserialize_value(deserializer); + + const slz_size_type bitmap_vals = + deserialize_value(deserializer); + static_cast(bitmap_vals); // Ignore, not needed + + const slz_size_type bitmap_deleted_vals = + deserialize_value(deserializer); + static_cast(bitmap_deleted_vals); // Ignore, not needed + + for (slz_size_type ivalue = 0; ivalue < sparse_bucket_size; ivalue++) { + sparse_hash.insert(deserialize_value(deserializer)); + } + } + + private: + template + static void construct_value(allocator_type &alloc, value_type *value, + Args &&...value_args) { + std::allocator_traits::construct( + alloc, value, std::forward(value_args)...); + } + + static void destroy_value(allocator_type &alloc, value_type *value) noexcept { + std::allocator_traits::destroy(alloc, value); + } + + static void destroy_and_deallocate_values( + allocator_type &alloc, value_type *values, size_type nb_values, + size_type capacity_values) noexcept { + for (size_type i = 0; i < nb_values; i++) { + destroy_value(alloc, values + i); + } + + alloc.deallocate(values, capacity_values); + } + + static size_type popcount(bitmap_type val) noexcept { + if (sizeof(bitmap_type) <= sizeof(unsigned int)) { + return static_cast( + tsl::detail_popcount::popcount(static_cast(val))); + } else { + return static_cast(tsl::detail_popcount::popcountll(val)); + } + } + + size_type index_to_offset(size_type index) const noexcept { + tsl_sh_assert(index < BITMAP_NB_BITS); + return popcount(m_bitmap_vals & + ((bitmap_type(1) << index) - bitmap_type(1))); + } + + // TODO optimize + size_type offset_to_index(size_type offset) const noexcept { + tsl_sh_assert(offset < m_nb_elements); + + bitmap_type bitmap_vals = m_bitmap_vals; + size_type index = 0; + size_type nb_ones = 0; + + while (bitmap_vals != 0) { + if ((bitmap_vals & 0x1) == 1) { + if (nb_ones == offset) { + break; + } + + nb_ones++; + } + + index++; + bitmap_vals = bitmap_vals >> 1; + } + + return index; + } + + size_type next_capacity() const noexcept { + return static_cast(m_capacity + CAPACITY_GROWTH_STEP); + } + + /** + * Insertion + * + * Two situations: + * - Either we are in a situation where + * std::is_nothrow_move_constructible::value is true. In this + * case, on insertion we just reallocate m_values when we reach its capacity + * (i.e. m_nb_elements == m_capacity), otherwise we just put the new value at + * its appropriate place. We can easily keep the strong exception guarantee as + * moving the values around is safe. + * - Otherwise we are in a situation where + * std::is_nothrow_move_constructible::value is false. In this + * case on EACH insertion we allocate a new area of m_nb_elements + 1 where we + * copy the values of m_values into it and put the new value there. On + * success, we set m_values to this new area. Even if slower, it's the only + * way to preserve to strong exception guarantee. + */ + template ::value>::type * = nullptr> + void insert_at_offset(allocator_type &alloc, size_type offset, + Args &&...value_args) { + if (m_nb_elements < m_capacity) { + insert_at_offset_no_realloc(alloc, offset, + std::forward(value_args)...); + } else { + insert_at_offset_realloc(alloc, offset, next_capacity(), + std::forward(value_args)...); + } + } + + template ::value>::type * = nullptr> + void insert_at_offset(allocator_type &alloc, size_type offset, + Args &&...value_args) { + insert_at_offset_realloc(alloc, offset, m_nb_elements + 1, + std::forward(value_args)...); + } + + template ::value>::type * = nullptr> + void insert_at_offset_no_realloc(allocator_type &alloc, size_type offset, + Args &&...value_args) { + tsl_sh_assert(offset <= m_nb_elements); + tsl_sh_assert(m_nb_elements < m_capacity); + + for (size_type i = m_nb_elements; i > offset; i--) { + construct_value(alloc, m_values + i, std::move(m_values[i - 1])); + destroy_value(alloc, m_values + i - 1); + } + + try { + construct_value(alloc, m_values + offset, + std::forward(value_args)...); + } catch (...) { + for (size_type i = offset; i < m_nb_elements; i++) { + construct_value(alloc, m_values + i, std::move(m_values[i + 1])); + destroy_value(alloc, m_values + i + 1); + } + throw; + } + } + + template ::value>::type * = nullptr> + void insert_at_offset_realloc(allocator_type &alloc, size_type offset, + size_type new_capacity, Args &&...value_args) { + tsl_sh_assert(new_capacity > m_nb_elements); + + value_type *new_values = alloc.allocate(new_capacity); + // Allocate should throw if there is a failure + tsl_sh_assert(new_values != nullptr); + + try { + construct_value(alloc, new_values + offset, + std::forward(value_args)...); + } catch (...) { + alloc.deallocate(new_values, new_capacity); + throw; + } + + // Should not throw from here + for (size_type i = 0; i < offset; i++) { + construct_value(alloc, new_values + i, std::move(m_values[i])); + } + + for (size_type i = offset; i < m_nb_elements; i++) { + construct_value(alloc, new_values + i + 1, std::move(m_values[i])); + } + + destroy_and_deallocate_values(alloc, m_values, m_nb_elements, m_capacity); + + m_values = new_values; + m_capacity = new_capacity; + } + + template ::value>::type * = nullptr> + void insert_at_offset_realloc(allocator_type &alloc, size_type offset, + size_type new_capacity, Args &&...value_args) { + tsl_sh_assert(new_capacity > m_nb_elements); + + value_type *new_values = alloc.allocate(new_capacity); + // Allocate should throw if there is a failure + tsl_sh_assert(new_values != nullptr); + + size_type nb_new_values = 0; + try { + for (size_type i = 0; i < offset; i++) { + construct_value(alloc, new_values + i, m_values[i]); + nb_new_values++; + } + + construct_value(alloc, new_values + offset, + std::forward(value_args)...); + nb_new_values++; + + for (size_type i = offset; i < m_nb_elements; i++) { + construct_value(alloc, new_values + i + 1, m_values[i]); + nb_new_values++; + } + } catch (...) { + destroy_and_deallocate_values(alloc, new_values, nb_new_values, + new_capacity); + throw; + } + + tsl_sh_assert(nb_new_values == m_nb_elements + 1); + + destroy_and_deallocate_values(alloc, m_values, m_nb_elements, m_capacity); + + m_values = new_values; + m_capacity = new_capacity; + } + + /** + * Erasure + * + * Two situations: + * - Either we are in a situation where + * std::is_nothrow_move_constructible::value is true. Simply + * destroy the value and left-shift move the value on the right of offset. + * - Otherwise we are in a situation where + * std::is_nothrow_move_constructible::value is false. Copy all + * the values except the one at offset into a new heap area. On success, we + * set m_values to this new area. Even if slower, it's the only way to + * preserve to strong exception guarantee. + */ + template ::value>::type * = nullptr> + void erase_at_offset(allocator_type &alloc, size_type offset) noexcept { + tsl_sh_assert(offset < m_nb_elements); + + destroy_value(alloc, m_values + offset); + + for (size_type i = offset + 1; i < m_nb_elements; i++) { + construct_value(alloc, m_values + i - 1, std::move(m_values[i])); + destroy_value(alloc, m_values + i); + } + } + + template ::value>::type * = nullptr> + void erase_at_offset(allocator_type &alloc, size_type offset) { + tsl_sh_assert(offset < m_nb_elements); + + // Erasing the last element, don't need to reallocate. We keep the capacity. + if (offset + 1 == m_nb_elements) { + destroy_value(alloc, m_values + offset); + return; + } + + tsl_sh_assert(m_nb_elements > 1); + const size_type new_capacity = m_nb_elements - 1; + + value_type *new_values = alloc.allocate(new_capacity); + // Allocate should throw if there is a failure + tsl_sh_assert(new_values != nullptr); + + size_type nb_new_values = 0; + try { + for (size_type i = 0; i < m_nb_elements; i++) { + if (i != offset) { + construct_value(alloc, new_values + nb_new_values, m_values[i]); + nb_new_values++; + } + } + } catch (...) { + destroy_and_deallocate_values(alloc, new_values, nb_new_values, + new_capacity); + throw; + } + + tsl_sh_assert(nb_new_values == m_nb_elements - 1); + + destroy_and_deallocate_values(alloc, m_values, m_nb_elements, m_capacity); + + m_values = new_values; + m_capacity = new_capacity; + } + + private: + value_type *m_values; + + bitmap_type m_bitmap_vals; + bitmap_type m_bitmap_deleted_vals; + + size_type m_nb_elements; + size_type m_capacity; + bool m_last_array; +}; + +/** + * Internal common class used by `sparse_map` and `sparse_set`. + * + * `ValueType` is what will be stored by `sparse_hash` (usually `std::pair` for map and `Key` for set). + * + * `KeySelect` should be a `FunctionObject` which takes a `ValueType` in + * parameter and returns a reference to the key. + * + * `ValueSelect` should be a `FunctionObject` which takes a `ValueType` in + * parameter and returns a reference to the value. `ValueSelect` should be void + * if there is no value (in a set for example). + * + * The strong exception guarantee only holds if `ExceptionSafety` is set to + * `tsl::sh::exception_safety::strong`. + * + * `ValueType` must be nothrow move constructible and/or copy constructible. + * Behaviour is undefined if the destructor of `ValueType` throws. + * + * + * The class holds its buckets in a 2-dimensional fashion. Instead of having a + * linear `std::vector` for [0, bucket_count) where each bucket stores + * one value, we have a `std::vector` (m_sparse_buckets_data) + * where each `sparse_array` stores multiple values (up to + * `sparse_array::BITMAP_NB_BITS`). To convert a one dimensional `ibucket` + * position to a position in `std::vector` and a position in + * `sparse_array`, use respectively the methods + * `sparse_array::sparse_ibucket(ibucket)` and + * `sparse_array::index_in_sparse_bucket(ibucket)`. + */ +template +class sparse_hash : private Allocator, + private Hash, + private KeyEqual, + private GrowthPolicy { + private: + template + using has_mapped_type = + typename std::integral_constant::value>; + + static_assert( + noexcept(std::declval().bucket_for_hash(std::size_t(0))), + "GrowthPolicy::bucket_for_hash must be noexcept."); + static_assert(noexcept(std::declval().clear()), + "GrowthPolicy::clear must be noexcept."); + + public: + template + class sparse_iterator; + + using key_type = typename KeySelect::key_type; + using value_type = ValueType; + using size_type = std::size_t; + using difference_type = std::ptrdiff_t; + using hasher = Hash; + using key_equal = KeyEqual; + using allocator_type = Allocator; + using reference = value_type &; + using const_reference = const value_type &; + using pointer = value_type *; + using const_pointer = const value_type *; + using iterator = sparse_iterator; + using const_iterator = sparse_iterator; + + private: + using sparse_array = + tsl::detail_sparse_hash::sparse_array; + + using sparse_buckets_allocator = typename std::allocator_traits< + allocator_type>::template rebind_alloc; + using sparse_buckets_container = + std::vector; + + public: + /** + * The `operator*()` and `operator->()` methods return a const reference and + * const pointer respectively to the stored value type (`Key` for a set, + * `std::pair` for a map). + * + * In case of a map, to get a mutable reference to the value `T` associated to + * a key (the `.second` in the stored pair), you have to call `value()`. + */ + template + class sparse_iterator { + friend class sparse_hash; + + private: + using sparse_bucket_iterator = typename std::conditional< + IsConst, typename sparse_buckets_container::const_iterator, + typename sparse_buckets_container::iterator>::type; + + using sparse_array_iterator = + typename std::conditional::type; + + /** + * sparse_array_it should be nullptr if sparse_bucket_it == + * m_sparse_buckets_data.end(). (TODO better way?) + */ + sparse_iterator(sparse_bucket_iterator sparse_bucket_it, + sparse_array_iterator sparse_array_it) + : m_sparse_buckets_it(sparse_bucket_it), + m_sparse_array_it(sparse_array_it) {} + + public: + using iterator_category = std::forward_iterator_tag; + using value_type = const typename sparse_hash::value_type; + using difference_type = std::ptrdiff_t; + using reference = value_type &; + using pointer = value_type *; + + sparse_iterator() noexcept {} + + // Copy constructor from iterator to const_iterator. + template ::type * = nullptr> + sparse_iterator(const sparse_iterator &other) noexcept + : m_sparse_buckets_it(other.m_sparse_buckets_it), + m_sparse_array_it(other.m_sparse_array_it) {} + + sparse_iterator(const sparse_iterator &other) = default; + sparse_iterator(sparse_iterator &&other) = default; + sparse_iterator &operator=(const sparse_iterator &other) = default; + sparse_iterator &operator=(sparse_iterator &&other) = default; + + const typename sparse_hash::key_type &key() const { + return KeySelect()(*m_sparse_array_it); + } + + template ::value && + IsConst>::type * = nullptr> + const typename U::value_type &value() const { + return U()(*m_sparse_array_it); + } + + template ::value && + !IsConst>::type * = nullptr> + typename U::value_type &value() { + return U()(*m_sparse_array_it); + } + + reference operator*() const { return *m_sparse_array_it; } + + pointer operator->() const { return std::addressof(*m_sparse_array_it); } + + sparse_iterator &operator++() { + tsl_sh_assert(m_sparse_array_it != nullptr); + ++m_sparse_array_it; + + if (m_sparse_array_it == m_sparse_buckets_it->end()) { + do { + if (m_sparse_buckets_it->last()) { + ++m_sparse_buckets_it; + m_sparse_array_it = nullptr; + return *this; + } + + ++m_sparse_buckets_it; + } while (m_sparse_buckets_it->empty()); + + m_sparse_array_it = m_sparse_buckets_it->begin(); + } + + return *this; + } + + sparse_iterator operator++(int) { + sparse_iterator tmp(*this); + ++*this; + + return tmp; + } + + friend bool operator==(const sparse_iterator &lhs, + const sparse_iterator &rhs) { + return lhs.m_sparse_buckets_it == rhs.m_sparse_buckets_it && + lhs.m_sparse_array_it == rhs.m_sparse_array_it; + } + + friend bool operator!=(const sparse_iterator &lhs, + const sparse_iterator &rhs) { + return !(lhs == rhs); + } + + private: + sparse_bucket_iterator m_sparse_buckets_it; + sparse_array_iterator m_sparse_array_it; + }; + + public: + sparse_hash(size_type bucket_count, const Hash &hash, const KeyEqual &equal, + const Allocator &alloc, float max_load_factor) + : Allocator(alloc), + Hash(hash), + KeyEqual(equal), + GrowthPolicy(bucket_count), + m_sparse_buckets_data(alloc), + m_sparse_buckets(static_empty_sparse_bucket_ptr()), + m_bucket_count(bucket_count), + m_nb_elements(0), + m_nb_deleted_buckets(0) { + if (m_bucket_count > max_bucket_count()) { + throw std::length_error("The map exceeds its maximum size."); + } + + if (m_bucket_count > 0) { + /* + * We can't use the `vector(size_type count, const Allocator& alloc)` + * constructor as it's only available in C++14 and we need to support + * C++11. We thus must resize after using the `vector(const Allocator& + * alloc)` constructor. + * + * We can't use `vector(size_type count, const T& value, const Allocator& + * alloc)` as it requires the value T to be copyable. + */ + m_sparse_buckets_data.resize( + sparse_array::nb_sparse_buckets(bucket_count)); + m_sparse_buckets = m_sparse_buckets_data.data(); + + tsl_sh_assert(!m_sparse_buckets_data.empty()); + m_sparse_buckets_data.back().set_as_last(); + } + + this->max_load_factor(max_load_factor); + + // Check in the constructor instead of outside of a function to avoid + // compilation issues when value_type is not complete. + static_assert(std::is_nothrow_move_constructible::value || + std::is_copy_constructible::value, + "Key, and T if present, must be nothrow move constructible " + "and/or copy constructible."); + } + + ~sparse_hash() { clear(); } + + sparse_hash(const sparse_hash &other) + : Allocator(std::allocator_traits< + Allocator>::select_on_container_copy_construction(other)), + Hash(other), + KeyEqual(other), + GrowthPolicy(other), + m_sparse_buckets_data( + std::allocator_traits< + Allocator>::select_on_container_copy_construction(other)), + m_bucket_count(other.m_bucket_count), + m_nb_elements(other.m_nb_elements), + m_nb_deleted_buckets(other.m_nb_deleted_buckets), + m_load_threshold_rehash(other.m_load_threshold_rehash), + m_load_threshold_clear_deleted(other.m_load_threshold_clear_deleted), + m_max_load_factor(other.m_max_load_factor) { + copy_buckets_from(other), + m_sparse_buckets = m_sparse_buckets_data.empty() + ? static_empty_sparse_bucket_ptr() + : m_sparse_buckets_data.data(); + } + + sparse_hash(sparse_hash &&other) noexcept( + std::is_nothrow_move_constructible::value + &&std::is_nothrow_move_constructible::value + &&std::is_nothrow_move_constructible::value + &&std::is_nothrow_move_constructible::value + &&std::is_nothrow_move_constructible< + sparse_buckets_container>::value) + : Allocator(std::move(other)), + Hash(std::move(other)), + KeyEqual(std::move(other)), + GrowthPolicy(std::move(other)), + m_sparse_buckets_data(std::move(other.m_sparse_buckets_data)), + m_sparse_buckets(m_sparse_buckets_data.empty() + ? static_empty_sparse_bucket_ptr() + : m_sparse_buckets_data.data()), + m_bucket_count(other.m_bucket_count), + m_nb_elements(other.m_nb_elements), + m_nb_deleted_buckets(other.m_nb_deleted_buckets), + m_load_threshold_rehash(other.m_load_threshold_rehash), + m_load_threshold_clear_deleted(other.m_load_threshold_clear_deleted), + m_max_load_factor(other.m_max_load_factor) { + other.GrowthPolicy::clear(); + other.m_sparse_buckets_data.clear(); + other.m_sparse_buckets = static_empty_sparse_bucket_ptr(); + other.m_bucket_count = 0; + other.m_nb_elements = 0; + other.m_nb_deleted_buckets = 0; + other.m_load_threshold_rehash = 0; + other.m_load_threshold_clear_deleted = 0; + } + + sparse_hash &operator=(const sparse_hash &other) { + if (this != &other) { + clear(); + + if (std::allocator_traits< + Allocator>::propagate_on_container_copy_assignment::value) { + Allocator::operator=(other); + } + + Hash::operator=(other); + KeyEqual::operator=(other); + GrowthPolicy::operator=(other); + + if (std::allocator_traits< + Allocator>::propagate_on_container_copy_assignment::value) { + m_sparse_buckets_data = + sparse_buckets_container(static_cast(other)); + } else { + if (m_sparse_buckets_data.size() != + other.m_sparse_buckets_data.size()) { + m_sparse_buckets_data = + sparse_buckets_container(static_cast(*this)); + } else { + m_sparse_buckets_data.clear(); + } + } + + copy_buckets_from(other); + m_sparse_buckets = m_sparse_buckets_data.empty() + ? static_empty_sparse_bucket_ptr() + : m_sparse_buckets_data.data(); + + m_bucket_count = other.m_bucket_count; + m_nb_elements = other.m_nb_elements; + m_nb_deleted_buckets = other.m_nb_deleted_buckets; + m_load_threshold_rehash = other.m_load_threshold_rehash; + m_load_threshold_clear_deleted = other.m_load_threshold_clear_deleted; + m_max_load_factor = other.m_max_load_factor; + } + + return *this; + } + + sparse_hash &operator=(sparse_hash &&other) { + clear(); + + if (std::allocator_traits< + Allocator>::propagate_on_container_move_assignment::value) { + static_cast(*this) = + std::move(static_cast(other)); + m_sparse_buckets_data = std::move(other.m_sparse_buckets_data); + } else if (static_cast(*this) != + static_cast(other)) { + move_buckets_from(std::move(other)); + } else { + static_cast(*this) = + std::move(static_cast(other)); + m_sparse_buckets_data = std::move(other.m_sparse_buckets_data); + } + + m_sparse_buckets = m_sparse_buckets_data.empty() + ? static_empty_sparse_bucket_ptr() + : m_sparse_buckets_data.data(); + + static_cast(*this) = std::move(static_cast(other)); + static_cast(*this) = std::move(static_cast(other)); + static_cast(*this) = + std::move(static_cast(other)); + m_bucket_count = other.m_bucket_count; + m_nb_elements = other.m_nb_elements; + m_nb_deleted_buckets = other.m_nb_deleted_buckets; + m_load_threshold_rehash = other.m_load_threshold_rehash; + m_load_threshold_clear_deleted = other.m_load_threshold_clear_deleted; + m_max_load_factor = other.m_max_load_factor; + + other.GrowthPolicy::clear(); + other.m_sparse_buckets_data.clear(); + other.m_sparse_buckets = static_empty_sparse_bucket_ptr(); + other.m_bucket_count = 0; + other.m_nb_elements = 0; + other.m_nb_deleted_buckets = 0; + other.m_load_threshold_rehash = 0; + other.m_load_threshold_clear_deleted = 0; + + return *this; + } + + allocator_type get_allocator() const { + return static_cast(*this); + } + + /* + * Iterators + */ + iterator begin() noexcept { + auto begin = m_sparse_buckets_data.begin(); + while (begin != m_sparse_buckets_data.end() && begin->empty()) { + ++begin; + } + + return iterator(begin, (begin != m_sparse_buckets_data.end()) + ? begin->begin() + : nullptr); + } + + const_iterator begin() const noexcept { return cbegin(); } + + const_iterator cbegin() const noexcept { + auto begin = m_sparse_buckets_data.cbegin(); + while (begin != m_sparse_buckets_data.cend() && begin->empty()) { + ++begin; + } + + return const_iterator(begin, (begin != m_sparse_buckets_data.cend()) + ? begin->cbegin() + : nullptr); + } + + iterator end() noexcept { + return iterator(m_sparse_buckets_data.end(), nullptr); + } + + const_iterator end() const noexcept { return cend(); } + + const_iterator cend() const noexcept { + return const_iterator(m_sparse_buckets_data.cend(), nullptr); + } + + /* + * Capacity + */ + bool empty() const noexcept { return m_nb_elements == 0; } + + size_type size() const noexcept { return m_nb_elements; } + + size_type max_size() const noexcept { + return std::min(std::allocator_traits::max_size(), + m_sparse_buckets_data.max_size()); + } + + /* + * Modifiers + */ + void clear() noexcept { + for (auto &bucket : m_sparse_buckets_data) { + bucket.clear(*this); + } + + m_nb_elements = 0; + m_nb_deleted_buckets = 0; + } + + template + std::pair insert(P &&value) { + return insert_impl(KeySelect()(value), std::forward

(value)); + } + + template + iterator insert_hint(const_iterator hint, P &&value) { + if (hint != cend() && + compare_keys(KeySelect()(*hint), KeySelect()(value))) { + return mutable_iterator(hint); + } + + return insert(std::forward

(value)).first; + } + + template + void insert(InputIt first, InputIt last) { + if (std::is_base_of< + std::forward_iterator_tag, + typename std::iterator_traits::iterator_category>::value) { + const auto nb_elements_insert = std::distance(first, last); + const size_type nb_free_buckets = m_load_threshold_rehash - size(); + tsl_sh_assert(m_load_threshold_rehash >= size()); + + if (nb_elements_insert > 0 && + nb_free_buckets < size_type(nb_elements_insert)) { + reserve(size() + size_type(nb_elements_insert)); + } + } + + for (; first != last; ++first) { + insert(*first); + } + } + + template + std::pair insert_or_assign(K &&key, M &&obj) { + auto it = try_emplace(std::forward(key), std::forward(obj)); + if (!it.second) { + it.first.value() = std::forward(obj); + } + + return it; + } + + template + iterator insert_or_assign(const_iterator hint, K &&key, M &&obj) { + if (hint != cend() && compare_keys(KeySelect()(*hint), key)) { + auto it = mutable_iterator(hint); + it.value() = std::forward(obj); + + return it; + } + + return insert_or_assign(std::forward(key), std::forward(obj)).first; + } + + template + std::pair emplace(Args &&...args) { + return insert(value_type(std::forward(args)...)); + } + + template + iterator emplace_hint(const_iterator hint, Args &&...args) { + return insert_hint(hint, value_type(std::forward(args)...)); + } + + template + std::pair try_emplace(K &&key, Args &&...args) { + return insert_impl(key, std::piecewise_construct, + std::forward_as_tuple(std::forward(key)), + std::forward_as_tuple(std::forward(args)...)); + } + + template + iterator try_emplace_hint(const_iterator hint, K &&key, Args &&...args) { + if (hint != cend() && compare_keys(KeySelect()(*hint), key)) { + return mutable_iterator(hint); + } + + return try_emplace(std::forward(key), std::forward(args)...).first; + } + + /** + * Here to avoid `template size_type erase(const K& key)` being used + * when we use an iterator instead of a const_iterator. + */ + iterator erase(iterator pos) { + tsl_sh_assert(pos != end() && m_nb_elements > 0); + auto it_sparse_array_next = + pos.m_sparse_buckets_it->erase(*this, pos.m_sparse_array_it); + m_nb_elements--; + m_nb_deleted_buckets++; + + if (it_sparse_array_next == pos.m_sparse_buckets_it->end()) { + auto it_sparse_buckets_next = pos.m_sparse_buckets_it; + do { + ++it_sparse_buckets_next; + } while (it_sparse_buckets_next != m_sparse_buckets_data.end() && + it_sparse_buckets_next->empty()); + + if (it_sparse_buckets_next == m_sparse_buckets_data.end()) { + return end(); + } else { + return iterator(it_sparse_buckets_next, + it_sparse_buckets_next->begin()); + } + } else { + return iterator(pos.m_sparse_buckets_it, it_sparse_array_next); + } + } + + iterator erase(const_iterator pos) { return erase(mutable_iterator(pos)); } + + iterator erase(const_iterator first, const_iterator last) { + if (first == last) { + return mutable_iterator(first); + } + + // TODO Optimize, could avoid the call to std::distance. + const size_type nb_elements_to_erase = + static_cast(std::distance(first, last)); + auto to_delete = mutable_iterator(first); + for (size_type i = 0; i < nb_elements_to_erase; i++) { + to_delete = erase(to_delete); + } + + return to_delete; + } + + template + size_type erase(const K &key) { + return erase(key, hash_key(key)); + } + + template + size_type erase(const K &key, std::size_t hash) { + return erase_impl(key, hash); + } + + void swap(sparse_hash &other) { + using std::swap; + + if (std::allocator_traits::propagate_on_container_swap::value) { + swap(static_cast(*this), static_cast(other)); + } else { + tsl_sh_assert(static_cast(*this) == + static_cast(other)); + } + + swap(static_cast(*this), static_cast(other)); + swap(static_cast(*this), static_cast(other)); + swap(static_cast(*this), + static_cast(other)); + swap(m_sparse_buckets_data, other.m_sparse_buckets_data); + swap(m_sparse_buckets, other.m_sparse_buckets); + swap(m_bucket_count, other.m_bucket_count); + swap(m_nb_elements, other.m_nb_elements); + swap(m_nb_deleted_buckets, other.m_nb_deleted_buckets); + swap(m_load_threshold_rehash, other.m_load_threshold_rehash); + swap(m_load_threshold_clear_deleted, other.m_load_threshold_clear_deleted); + swap(m_max_load_factor, other.m_max_load_factor); + } + + /* + * Lookup + */ + template < + class K, class U = ValueSelect, + typename std::enable_if::value>::type * = nullptr> + typename U::value_type &at(const K &key) { + return at(key, hash_key(key)); + } + + template < + class K, class U = ValueSelect, + typename std::enable_if::value>::type * = nullptr> + typename U::value_type &at(const K &key, std::size_t hash) { + return const_cast( + static_cast(this)->at(key, hash)); + } + + template < + class K, class U = ValueSelect, + typename std::enable_if::value>::type * = nullptr> + const typename U::value_type &at(const K &key) const { + return at(key, hash_key(key)); + } + + template < + class K, class U = ValueSelect, + typename std::enable_if::value>::type * = nullptr> + const typename U::value_type &at(const K &key, std::size_t hash) const { + auto it = find(key, hash); + if (it != cend()) { + return it.value(); + } else { + throw std::out_of_range("Couldn't find key."); + } + } + + template < + class K, class U = ValueSelect, + typename std::enable_if::value>::type * = nullptr> + typename U::value_type &operator[](K &&key) { + return try_emplace(std::forward(key)).first.value(); + } + + template + bool contains(const K &key) const { + return contains(key, hash_key(key)); + } + + template + bool contains(const K &key, std::size_t hash) const { + return count(key, hash) != 0; + } + + template + size_type count(const K &key) const { + return count(key, hash_key(key)); + } + + template + size_type count(const K &key, std::size_t hash) const { + if (find(key, hash) != cend()) { + return 1; + } else { + return 0; + } + } + + template + iterator find(const K &key) { + return find_impl(key, hash_key(key)); + } + + template + iterator find(const K &key, std::size_t hash) { + return find_impl(key, hash); + } + + template + const_iterator find(const K &key) const { + return find_impl(key, hash_key(key)); + } + + template + const_iterator find(const K &key, std::size_t hash) const { + return find_impl(key, hash); + } + + template + std::pair equal_range(const K &key) { + return equal_range(key, hash_key(key)); + } + + template + std::pair equal_range(const K &key, std::size_t hash) { + iterator it = find(key, hash); + return std::make_pair(it, (it == end()) ? it : std::next(it)); + } + + template + std::pair equal_range(const K &key) const { + return equal_range(key, hash_key(key)); + } + + template + std::pair equal_range( + const K &key, std::size_t hash) const { + const_iterator it = find(key, hash); + return std::make_pair(it, (it == cend()) ? it : std::next(it)); + } + + /* + * Bucket interface + */ + size_type bucket_count() const { return m_bucket_count; } + + size_type max_bucket_count() const { + return m_sparse_buckets_data.max_size(); + } + + /* + * Hash policy + */ + float load_factor() const { + if (bucket_count() == 0) { + return 0; + } + + return float(m_nb_elements) / float(bucket_count()); + } + + float max_load_factor() const { return m_max_load_factor; } + + void max_load_factor(float ml) { + m_max_load_factor = std::max(0.1f, std::min(ml, 0.8f)); + m_load_threshold_rehash = + size_type(float(bucket_count()) * m_max_load_factor); + + const float max_load_factor_with_deleted_buckets = + m_max_load_factor + 0.5f * (1.0f - m_max_load_factor); + tsl_sh_assert(max_load_factor_with_deleted_buckets > 0.0f && + max_load_factor_with_deleted_buckets <= 1.0f); + m_load_threshold_clear_deleted = + size_type(float(bucket_count()) * max_load_factor_with_deleted_buckets); + } + + void rehash(size_type count) { + count = std::max(count, + size_type(std::ceil(float(size()) / max_load_factor()))); + rehash_impl(count); + } + + void reserve(size_type count) { + rehash(size_type(std::ceil(float(count) / max_load_factor()))); + } + + /* + * Observers + */ + hasher hash_function() const { return static_cast(*this); } + + key_equal key_eq() const { return static_cast(*this); } + + /* + * Other + */ + iterator mutable_iterator(const_iterator pos) { + auto it_sparse_buckets = + m_sparse_buckets_data.begin() + + std::distance(m_sparse_buckets_data.cbegin(), pos.m_sparse_buckets_it); + + return iterator(it_sparse_buckets, + sparse_array::mutable_iterator(pos.m_sparse_array_it)); + } + + template + void serialize(Serializer &serializer) const { + serialize_impl(serializer); + } + + template + void deserialize(Deserializer &deserializer, bool hash_compatible) { + deserialize_impl(deserializer, hash_compatible); + } + + private: + template + std::size_t hash_key(const K &key) const { + return Hash::operator()(key); + } + + template + bool compare_keys(const K1 &key1, const K2 &key2) const { + return KeyEqual::operator()(key1, key2); + } + + size_type bucket_for_hash(std::size_t hash) const { + const std::size_t bucket = GrowthPolicy::bucket_for_hash(hash); + tsl_sh_assert(sparse_array::sparse_ibucket(bucket) < + m_sparse_buckets_data.size() || + (bucket == 0 && m_sparse_buckets_data.empty())); + + return bucket; + } + + template ::value>::type * = + nullptr> + size_type next_bucket(size_type ibucket, size_type iprobe) const { + (void)iprobe; + if (Probing == tsl::sh::probing::linear) { + return (ibucket + 1) & this->m_mask; + } else { + tsl_sh_assert(Probing == tsl::sh::probing::quadratic); + return (ibucket + iprobe) & this->m_mask; + } + } + + template ::value>::type * = + nullptr> + size_type next_bucket(size_type ibucket, size_type iprobe) const { + (void)iprobe; + if (Probing == tsl::sh::probing::linear) { + ibucket++; + return (ibucket != bucket_count()) ? ibucket : 0; + } else { + tsl_sh_assert(Probing == tsl::sh::probing::quadratic); + ibucket += iprobe; + return (ibucket < bucket_count()) ? ibucket : ibucket % bucket_count(); + } + } + + // TODO encapsulate m_sparse_buckets_data to avoid the managing the allocator + void copy_buckets_from(const sparse_hash &other) { + m_sparse_buckets_data.reserve(other.m_sparse_buckets_data.size()); + + try { + for (const auto &bucket : other.m_sparse_buckets_data) { + m_sparse_buckets_data.emplace_back(bucket, + static_cast(*this)); + } + } catch (...) { + clear(); + throw; + } + + tsl_sh_assert(m_sparse_buckets_data.empty() || + m_sparse_buckets_data.back().last()); + } + + void move_buckets_from(sparse_hash &&other) { + m_sparse_buckets_data.reserve(other.m_sparse_buckets_data.size()); + + try { + for (auto &&bucket : other.m_sparse_buckets_data) { + m_sparse_buckets_data.emplace_back(std::move(bucket), + static_cast(*this)); + } + } catch (...) { + clear(); + throw; + } + + tsl_sh_assert(m_sparse_buckets_data.empty() || + m_sparse_buckets_data.back().last()); + } + + template + std::pair insert_impl(const K &key, + Args &&...value_type_args) { + if (size() >= m_load_threshold_rehash) { + rehash_impl(GrowthPolicy::next_bucket_count()); + } else if (size() + m_nb_deleted_buckets >= + m_load_threshold_clear_deleted) { + clear_deleted_buckets(); + } + tsl_sh_assert(!m_sparse_buckets_data.empty()); + + /** + * We must insert the value in the first empty or deleted bucket we find. If + * we first find a deleted bucket, we still have to continue the search + * until we find an empty bucket or until we have searched all the buckets + * to be sure that the value is not in the hash table. We thus remember the + * position, if any, of the first deleted bucket we have encountered so we + * can insert it there if needed. + */ + bool found_first_deleted_bucket = false; + std::size_t sparse_ibucket_first_deleted = 0; + typename sparse_array::size_type index_in_sparse_bucket_first_deleted = 0; + + const std::size_t hash = hash_key(key); + std::size_t ibucket = bucket_for_hash(hash); + + std::size_t probe = 0; + while (true) { + std::size_t sparse_ibucket = sparse_array::sparse_ibucket(ibucket); + auto index_in_sparse_bucket = + sparse_array::index_in_sparse_bucket(ibucket); + + if (m_sparse_buckets[sparse_ibucket].has_value(index_in_sparse_bucket)) { + auto value_it = + m_sparse_buckets[sparse_ibucket].value(index_in_sparse_bucket); + if (compare_keys(key, KeySelect()(*value_it))) { + return std::make_pair( + iterator(m_sparse_buckets_data.begin() + sparse_ibucket, + value_it), + false); + } + } else if (m_sparse_buckets[sparse_ibucket].has_deleted_value( + index_in_sparse_bucket) && + probe < m_bucket_count) { + if (!found_first_deleted_bucket) { + found_first_deleted_bucket = true; + sparse_ibucket_first_deleted = sparse_ibucket; + index_in_sparse_bucket_first_deleted = index_in_sparse_bucket; + } + } else if (found_first_deleted_bucket) { + auto it = insert_in_bucket(sparse_ibucket_first_deleted, + index_in_sparse_bucket_first_deleted, + std::forward(value_type_args)...); + m_nb_deleted_buckets--; + + return it; + } else { + return insert_in_bucket(sparse_ibucket, index_in_sparse_bucket, + std::forward(value_type_args)...); + } + + probe++; + ibucket = next_bucket(ibucket, probe); + } + } + + template + std::pair insert_in_bucket( + std::size_t sparse_ibucket, + typename sparse_array::size_type index_in_sparse_bucket, + Args &&...value_type_args) { + auto value_it = m_sparse_buckets[sparse_ibucket].set( + *this, index_in_sparse_bucket, std::forward(value_type_args)...); + m_nb_elements++; + + return std::make_pair( + iterator(m_sparse_buckets_data.begin() + sparse_ibucket, value_it), + true); + } + + template + size_type erase_impl(const K &key, std::size_t hash) { + std::size_t ibucket = bucket_for_hash(hash); + + std::size_t probe = 0; + while (true) { + const std::size_t sparse_ibucket = sparse_array::sparse_ibucket(ibucket); + const auto index_in_sparse_bucket = + sparse_array::index_in_sparse_bucket(ibucket); + + if (m_sparse_buckets[sparse_ibucket].has_value(index_in_sparse_bucket)) { + auto value_it = + m_sparse_buckets[sparse_ibucket].value(index_in_sparse_bucket); + if (compare_keys(key, KeySelect()(*value_it))) { + m_sparse_buckets[sparse_ibucket].erase(*this, value_it, + index_in_sparse_bucket); + m_nb_elements--; + m_nb_deleted_buckets++; + + return 1; + } + } else if (!m_sparse_buckets[sparse_ibucket].has_deleted_value( + index_in_sparse_bucket) || + probe >= m_bucket_count) { + return 0; + } + + probe++; + ibucket = next_bucket(ibucket, probe); + } + } + + template + iterator find_impl(const K &key, std::size_t hash) { + return mutable_iterator( + static_cast(this)->find(key, hash)); + } + + template + const_iterator find_impl(const K &key, std::size_t hash) const { + std::size_t ibucket = bucket_for_hash(hash); + + std::size_t probe = 0; + while (true) { + const std::size_t sparse_ibucket = sparse_array::sparse_ibucket(ibucket); + const auto index_in_sparse_bucket = + sparse_array::index_in_sparse_bucket(ibucket); + + if (m_sparse_buckets[sparse_ibucket].has_value(index_in_sparse_bucket)) { + auto value_it = + m_sparse_buckets[sparse_ibucket].value(index_in_sparse_bucket); + if (compare_keys(key, KeySelect()(*value_it))) { + return const_iterator(m_sparse_buckets_data.cbegin() + sparse_ibucket, + value_it); + } + } else if (!m_sparse_buckets[sparse_ibucket].has_deleted_value( + index_in_sparse_bucket) || + probe >= m_bucket_count) { + return cend(); + } + + probe++; + ibucket = next_bucket(ibucket, probe); + } + } + + void clear_deleted_buckets() { + // TODO could be optimized, we could do it in-place instead of allocating a + // new bucket array. + rehash_impl(m_bucket_count); + tsl_sh_assert(m_nb_deleted_buckets == 0); + } + + template ::type + * = nullptr> + void rehash_impl(size_type count) { + sparse_hash new_table(count, static_cast(*this), + static_cast(*this), + static_cast(*this), m_max_load_factor); + + for (auto &bucket : m_sparse_buckets_data) { + for (auto &val : bucket) { + new_table.insert_on_rehash(std::move(val)); + } + + // TODO try to reuse some of the memory + bucket.clear(*this); + } + + new_table.swap(*this); + } + + /** + * TODO: For now we copy each element into the new map. We could move + * them if they are nothrow_move_constructible without triggering + * any exception if we reserve enough space in the sparse arrays beforehand. + */ + template ::type * = nullptr> + void rehash_impl(size_type count) { + sparse_hash new_table(count, static_cast(*this), + static_cast(*this), + static_cast(*this), m_max_load_factor); + + for (const auto &bucket : m_sparse_buckets_data) { + for (const auto &val : bucket) { + new_table.insert_on_rehash(val); + } + } + + new_table.swap(*this); + } + + template + void insert_on_rehash(K &&key_value) { + const key_type &key = KeySelect()(key_value); + + const std::size_t hash = hash_key(key); + std::size_t ibucket = bucket_for_hash(hash); + + std::size_t probe = 0; + while (true) { + std::size_t sparse_ibucket = sparse_array::sparse_ibucket(ibucket); + auto index_in_sparse_bucket = + sparse_array::index_in_sparse_bucket(ibucket); + + if (!m_sparse_buckets[sparse_ibucket].has_value(index_in_sparse_bucket)) { + m_sparse_buckets[sparse_ibucket].set(*this, index_in_sparse_bucket, + std::forward(key_value)); + m_nb_elements++; + + return; + } else { + tsl_sh_assert(!compare_keys( + key, KeySelect()(*m_sparse_buckets[sparse_ibucket].value( + index_in_sparse_bucket)))); + } + + probe++; + ibucket = next_bucket(ibucket, probe); + } + } + + template + void serialize_impl(Serializer &serializer) const { + const slz_size_type version = SERIALIZATION_PROTOCOL_VERSION; + serializer(version); + + const slz_size_type bucket_count = m_bucket_count; + serializer(bucket_count); + + const slz_size_type nb_sparse_buckets = m_sparse_buckets_data.size(); + serializer(nb_sparse_buckets); + + const slz_size_type nb_elements = m_nb_elements; + serializer(nb_elements); + + const slz_size_type nb_deleted_buckets = m_nb_deleted_buckets; + serializer(nb_deleted_buckets); + + const float max_load_factor = m_max_load_factor; + serializer(max_load_factor); + + for (const auto &bucket : m_sparse_buckets_data) { + bucket.serialize(serializer); + } + } + + template + void deserialize_impl(Deserializer &deserializer, bool hash_compatible) { + tsl_sh_assert( + m_bucket_count == 0 && + m_sparse_buckets_data.empty()); // Current hash table must be empty + + const slz_size_type version = + deserialize_value(deserializer); + // For now we only have one version of the serialization protocol. + // If it doesn't match there is a problem with the file. + if (version != SERIALIZATION_PROTOCOL_VERSION) { + throw std::runtime_error( + "Can't deserialize the sparse_map/set. The " + "protocol version header is invalid."); + } + + const slz_size_type bucket_count_ds = + deserialize_value(deserializer); + const slz_size_type nb_sparse_buckets = + deserialize_value(deserializer); + const slz_size_type nb_elements = + deserialize_value(deserializer); + const slz_size_type nb_deleted_buckets = + deserialize_value(deserializer); + const float max_load_factor = deserialize_value(deserializer); + + if (!hash_compatible) { + this->max_load_factor(max_load_factor); + reserve(numeric_cast(nb_elements, + "Deserialized nb_elements is too big.")); + for (slz_size_type ibucket = 0; ibucket < nb_sparse_buckets; ibucket++) { + sparse_array::deserialize_values_into_sparse_hash(deserializer, *this); + } + } else { + m_bucket_count = numeric_cast( + bucket_count_ds, "Deserialized bucket_count is too big."); + + GrowthPolicy::operator=(GrowthPolicy(m_bucket_count)); + // GrowthPolicy should not modify the bucket count we got from + // deserialization + if (m_bucket_count != bucket_count_ds) { + throw std::runtime_error( + "The GrowthPolicy is not the same even though " + "hash_compatible is true."); + } + + if (nb_sparse_buckets != + sparse_array::nb_sparse_buckets(m_bucket_count)) { + throw std::runtime_error("Deserialized nb_sparse_buckets is invalid."); + } + + m_nb_elements = numeric_cast( + nb_elements, "Deserialized nb_elements is too big."); + m_nb_deleted_buckets = numeric_cast( + nb_deleted_buckets, "Deserialized nb_deleted_buckets is too big."); + + m_sparse_buckets_data.reserve(numeric_cast( + nb_sparse_buckets, "Deserialized nb_sparse_buckets is too big.")); + for (slz_size_type ibucket = 0; ibucket < nb_sparse_buckets; ibucket++) { + m_sparse_buckets_data.emplace_back( + sparse_array::deserialize_hash_compatible( + deserializer, static_cast(*this))); + } + + if (!m_sparse_buckets_data.empty()) { + m_sparse_buckets_data.back().set_as_last(); + m_sparse_buckets = m_sparse_buckets_data.data(); + } + + this->max_load_factor(max_load_factor); + if (load_factor() > this->max_load_factor()) { + throw std::runtime_error( + "Invalid max_load_factor. Check that the serializer and " + "deserializer support " + "floats correctly as they can be converted implicitely to ints."); + } + } + } + + public: + static const size_type DEFAULT_INIT_BUCKET_COUNT = 0; + static constexpr float DEFAULT_MAX_LOAD_FACTOR = 0.5f; + + /** + * Protocol version currenlty used for serialization. + */ + static const slz_size_type SERIALIZATION_PROTOCOL_VERSION = 1; + + /** + * Return an always valid pointer to an static empty bucket_entry with + * last_bucket() == true. + */ + sparse_array *static_empty_sparse_bucket_ptr() { + static sparse_array empty_sparse_bucket(true); + return &empty_sparse_bucket; + } + + private: + sparse_buckets_container m_sparse_buckets_data; + + /** + * Points to m_sparse_buckets_data.data() if !m_sparse_buckets_data.empty() + * otherwise points to static_empty_sparse_bucket_ptr. This variable is useful + * to avoid the cost of checking if m_sparse_buckets_data is empty when trying + * to find an element. + * + * TODO Remove m_sparse_buckets_data and only use a pointer instead of a + * pointer+vector to save some space in the sparse_hash object. + */ + sparse_array *m_sparse_buckets; + + size_type m_bucket_count; + size_type m_nb_elements; + size_type m_nb_deleted_buckets; + + /** + * Maximum that m_nb_elements can reach before a rehash occurs automatically + * to grow the hash table. + */ + size_type m_load_threshold_rehash; + + /** + * Maximum that m_nb_elements + m_nb_deleted_buckets can reach before cleaning + * up the buckets marked as deleted. + */ + size_type m_load_threshold_clear_deleted; + float m_max_load_factor; +}; + +} // namespace detail_sparse_hash +} // namespace tsl + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_map.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_map.h new file mode 100644 index 0000000..601742d --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_map.h @@ -0,0 +1,800 @@ +/** + * MIT License + * + * Copyright (c) 2017 Thibaut Goetghebuer-Planchon + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_SPARSE_MAP_H +#define TSL_SPARSE_MAP_H + +#include +#include +#include +#include +#include +#include + +#include "sparse_hash.h" + +namespace tsl { + +/** + * Implementation of a sparse hash map using open-addressing with quadratic + * probing. The goal on the hash map is to be the most memory efficient + * possible, even at low load factor, while keeping reasonable performances. + * + * `GrowthPolicy` defines how the map grows and consequently how a hash value is + * mapped to a bucket. By default the map uses + * `tsl::sh::power_of_two_growth_policy`. This policy keeps the number of + * buckets to a power of two and uses a mask to map the hash to a bucket instead + * of the slow modulo. Other growth policies are available and you may define + * your own growth policy, check `tsl::sh::power_of_two_growth_policy` for the + * interface. + * + * `ExceptionSafety` defines the exception guarantee provided by the class. By + * default only the basic exception safety is guaranteed which mean that all + * resources used by the hash map will be freed (no memory leaks) but the hash + * map may end-up in an undefined state if an exception is thrown (undefined + * here means that some elements may be missing). This can ONLY happen on rehash + * (either on insert or if `rehash` is called explicitly) and will occur if the + * Allocator can't allocate memory (`std::bad_alloc`) or if the copy constructor + * (when a nothrow move constructor is not available) throws an exception. This + * can be avoided by calling `reserve` beforehand. This basic guarantee is + * similar to the one of `google::sparse_hash_map` and `spp::sparse_hash_map`. + * It is possible to ask for the strong exception guarantee with + * `tsl::sh::exception_safety::strong`, the drawback is that the map will be + * slower on rehashes and will also need more memory on rehashes. + * + * `Sparsity` defines how much the hash set will compromise between insertion + * speed and memory usage. A high sparsity means less memory usage but longer + * insertion times, and vice-versa for low sparsity. The default + * `tsl::sh::sparsity::medium` sparsity offers a good compromise. It doesn't + * change the lookup speed. + * + * `Key` and `T` must be nothrow move constructible and/or copy constructible. + * + * If the destructor of `Key` or `T` throws an exception, the behaviour of the + * class is undefined. + * + * Iterators invalidation: + * - clear, operator=, reserve, rehash: always invalidate the iterators. + * - insert, emplace, emplace_hint, operator[]: if there is an effective + * insert, invalidate the iterators. + * - erase: always invalidate the iterators. + */ +template , + class KeyEqual = std::equal_to, + class Allocator = std::allocator>, + class GrowthPolicy = tsl::sh::power_of_two_growth_policy<2>, + tsl::sh::exception_safety ExceptionSafety = + tsl::sh::exception_safety::basic, + tsl::sh::sparsity Sparsity = tsl::sh::sparsity::medium> +class sparse_map { + private: + template + using has_is_transparent = tsl::detail_sparse_hash::has_is_transparent; + + class KeySelect { + public: + using key_type = Key; + + const key_type &operator()( + const std::pair &key_value) const noexcept { + return key_value.first; + } + + key_type &operator()(std::pair &key_value) noexcept { + return key_value.first; + } + }; + + class ValueSelect { + public: + using value_type = T; + + const value_type &operator()( + const std::pair &key_value) const noexcept { + return key_value.second; + } + + value_type &operator()(std::pair &key_value) noexcept { + return key_value.second; + } + }; + + using ht = detail_sparse_hash::sparse_hash< + std::pair, KeySelect, ValueSelect, Hash, KeyEqual, Allocator, + GrowthPolicy, ExceptionSafety, Sparsity, tsl::sh::probing::quadratic>; + + public: + using key_type = typename ht::key_type; + using mapped_type = T; + using value_type = typename ht::value_type; + using size_type = typename ht::size_type; + using difference_type = typename ht::difference_type; + using hasher = typename ht::hasher; + using key_equal = typename ht::key_equal; + using allocator_type = typename ht::allocator_type; + using reference = typename ht::reference; + using const_reference = typename ht::const_reference; + using pointer = typename ht::pointer; + using const_pointer = typename ht::const_pointer; + using iterator = typename ht::iterator; + using const_iterator = typename ht::const_iterator; + + public: + /* + * Constructors + */ + sparse_map() : sparse_map(ht::DEFAULT_INIT_BUCKET_COUNT) {} + + explicit sparse_map(size_type bucket_count, const Hash &hash = Hash(), + const KeyEqual &equal = KeyEqual(), + const Allocator &alloc = Allocator()) + : m_ht(bucket_count, hash, equal, alloc, ht::DEFAULT_MAX_LOAD_FACTOR) {} + + sparse_map(size_type bucket_count, const Allocator &alloc) + : sparse_map(bucket_count, Hash(), KeyEqual(), alloc) {} + + sparse_map(size_type bucket_count, const Hash &hash, const Allocator &alloc) + : sparse_map(bucket_count, hash, KeyEqual(), alloc) {} + + explicit sparse_map(const Allocator &alloc) + : sparse_map(ht::DEFAULT_INIT_BUCKET_COUNT, alloc) {} + + template + sparse_map(InputIt first, InputIt last, + size_type bucket_count = ht::DEFAULT_INIT_BUCKET_COUNT, + const Hash &hash = Hash(), const KeyEqual &equal = KeyEqual(), + const Allocator &alloc = Allocator()) + : sparse_map(bucket_count, hash, equal, alloc) { + insert(first, last); + } + + template + sparse_map(InputIt first, InputIt last, size_type bucket_count, + const Allocator &alloc) + : sparse_map(first, last, bucket_count, Hash(), KeyEqual(), alloc) {} + + template + sparse_map(InputIt first, InputIt last, size_type bucket_count, + const Hash &hash, const Allocator &alloc) + : sparse_map(first, last, bucket_count, hash, KeyEqual(), alloc) {} + + sparse_map(std::initializer_list init, + size_type bucket_count = ht::DEFAULT_INIT_BUCKET_COUNT, + const Hash &hash = Hash(), const KeyEqual &equal = KeyEqual(), + const Allocator &alloc = Allocator()) + : sparse_map(init.begin(), init.end(), bucket_count, hash, equal, alloc) { + } + + sparse_map(std::initializer_list init, size_type bucket_count, + const Allocator &alloc) + : sparse_map(init.begin(), init.end(), bucket_count, Hash(), KeyEqual(), + alloc) {} + + sparse_map(std::initializer_list init, size_type bucket_count, + const Hash &hash, const Allocator &alloc) + : sparse_map(init.begin(), init.end(), bucket_count, hash, KeyEqual(), + alloc) {} + + sparse_map &operator=(std::initializer_list ilist) { + m_ht.clear(); + + m_ht.reserve(ilist.size()); + m_ht.insert(ilist.begin(), ilist.end()); + + return *this; + } + + allocator_type get_allocator() const { return m_ht.get_allocator(); } + + /* + * Iterators + */ + iterator begin() noexcept { return m_ht.begin(); } + const_iterator begin() const noexcept { return m_ht.begin(); } + const_iterator cbegin() const noexcept { return m_ht.cbegin(); } + + iterator end() noexcept { return m_ht.end(); } + const_iterator end() const noexcept { return m_ht.end(); } + const_iterator cend() const noexcept { return m_ht.cend(); } + + /* + * Capacity + */ + bool empty() const noexcept { return m_ht.empty(); } + size_type size() const noexcept { return m_ht.size(); } + size_type max_size() const noexcept { return m_ht.max_size(); } + + /* + * Modifiers + */ + void clear() noexcept { m_ht.clear(); } + + std::pair insert(const value_type &value) { + return m_ht.insert(value); + } + + template ::value>::type * = nullptr> + std::pair insert(P &&value) { + return m_ht.emplace(std::forward

(value)); + } + + std::pair insert(value_type &&value) { + return m_ht.insert(std::move(value)); + } + + iterator insert(const_iterator hint, const value_type &value) { + return m_ht.insert_hint(hint, value); + } + + template ::value>::type * = nullptr> + iterator insert(const_iterator hint, P &&value) { + return m_ht.emplace_hint(hint, std::forward

(value)); + } + + iterator insert(const_iterator hint, value_type &&value) { + return m_ht.insert_hint(hint, std::move(value)); + } + + template + void insert(InputIt first, InputIt last) { + m_ht.insert(first, last); + } + + void insert(std::initializer_list ilist) { + m_ht.insert(ilist.begin(), ilist.end()); + } + + template + std::pair insert_or_assign(const key_type &k, M &&obj) { + return m_ht.insert_or_assign(k, std::forward(obj)); + } + + template + std::pair insert_or_assign(key_type &&k, M &&obj) { + return m_ht.insert_or_assign(std::move(k), std::forward(obj)); + } + + template + iterator insert_or_assign(const_iterator hint, const key_type &k, M &&obj) { + return m_ht.insert_or_assign(hint, k, std::forward(obj)); + } + + template + iterator insert_or_assign(const_iterator hint, key_type &&k, M &&obj) { + return m_ht.insert_or_assign(hint, std::move(k), std::forward(obj)); + } + + /** + * Due to the way elements are stored, emplace will need to move or copy the + * key-value once. The method is equivalent to + * `insert(value_type(std::forward(args)...));`. + * + * Mainly here for compatibility with the `std::unordered_map` interface. + */ + template + std::pair emplace(Args &&...args) { + return m_ht.emplace(std::forward(args)...); + } + + /** + * Due to the way elements are stored, emplace_hint will need to move or copy + * the key-value once. The method is equivalent to `insert(hint, + * value_type(std::forward(args)...));`. + * + * Mainly here for compatibility with the `std::unordered_map` interface. + */ + template + iterator emplace_hint(const_iterator hint, Args &&...args) { + return m_ht.emplace_hint(hint, std::forward(args)...); + } + + template + std::pair try_emplace(const key_type &k, Args &&...args) { + return m_ht.try_emplace(k, std::forward(args)...); + } + + template + std::pair try_emplace(key_type &&k, Args &&...args) { + return m_ht.try_emplace(std::move(k), std::forward(args)...); + } + + template + iterator try_emplace(const_iterator hint, const key_type &k, Args &&...args) { + return m_ht.try_emplace_hint(hint, k, std::forward(args)...); + } + + template + iterator try_emplace(const_iterator hint, key_type &&k, Args &&...args) { + return m_ht.try_emplace_hint(hint, std::move(k), + std::forward(args)...); + } + + iterator erase(iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator first, const_iterator last) { + return m_ht.erase(first, last); + } + size_type erase(const key_type &key) { return m_ht.erase(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + size_type erase(const key_type &key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type erase(const K &key) { + return m_ht.erase(key); + } + + /** + * @copydoc erase(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type erase(const K &key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + void swap(sparse_map &other) { other.m_ht.swap(m_ht); } + + /* + * Lookup + */ + T &at(const Key &key) { return m_ht.at(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + T &at(const Key &key, std::size_t precalculated_hash) { + return m_ht.at(key, precalculated_hash); + } + + const T &at(const Key &key) const { return m_ht.at(key); } + + /** + * @copydoc at(const Key& key, std::size_t precalculated_hash) + */ + const T &at(const Key &key, std::size_t precalculated_hash) const { + return m_ht.at(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + T &at(const K &key) { + return m_ht.at(key); + } + + /** + * @copydoc at(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + T &at(const K &key, std::size_t precalculated_hash) { + return m_ht.at(key, precalculated_hash); + } + + /** + * @copydoc at(const K& key) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + const T &at(const K &key) const { + return m_ht.at(key); + } + + /** + * @copydoc at(const K& key, std::size_t precalculated_hash) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + const T &at(const K &key, std::size_t precalculated_hash) const { + return m_ht.at(key, precalculated_hash); + } + + T &operator[](const Key &key) { return m_ht[key]; } + T &operator[](Key &&key) { return m_ht[std::move(key)]; } + + size_type count(const Key &key) const { return m_ht.count(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + size_type count(const Key &key, std::size_t precalculated_hash) const { + return m_ht.count(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type count(const K &key) const { + return m_ht.count(key); + } + + /** + * @copydoc count(const K& key) const + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type count(const K &key, std::size_t precalculated_hash) const { + return m_ht.count(key, precalculated_hash); + } + + iterator find(const Key &key) { return m_ht.find(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + iterator find(const Key &key, std::size_t precalculated_hash) { + return m_ht.find(key, precalculated_hash); + } + + const_iterator find(const Key &key) const { return m_ht.find(key); } + + /** + * @copydoc find(const Key& key, std::size_t precalculated_hash) + */ + const_iterator find(const Key &key, std::size_t precalculated_hash) const { + return m_ht.find(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + iterator find(const K &key) { + return m_ht.find(key); + } + + /** + * @copydoc find(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + iterator find(const K &key, std::size_t precalculated_hash) { + return m_ht.find(key, precalculated_hash); + } + + /** + * @copydoc find(const K& key) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + const_iterator find(const K &key) const { + return m_ht.find(key); + } + + /** + * @copydoc find(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + const_iterator find(const K &key, std::size_t precalculated_hash) const { + return m_ht.find(key, precalculated_hash); + } + + bool contains(const Key &key) const { return m_ht.contains(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The + * hash value should be the same as hash_function()(key). Useful to speed-up + * the lookup if you already have the hash. + */ + bool contains(const Key &key, std::size_t precalculated_hash) const { + return m_ht.contains(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * KeyEqual::is_transparent exists. If so, K must be hashable and comparable + * to Key. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + bool contains(const K &key) const { + return m_ht.contains(key); + } + + /** + * @copydoc contains(const K& key) const + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The + * hash value should be the same as hash_function()(key). Useful to speed-up + * the lookup if you already have the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + bool contains(const K &key, std::size_t precalculated_hash) const { + return m_ht.contains(key, precalculated_hash); + } + + std::pair equal_range(const Key &key) { + return m_ht.equal_range(key); + } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + std::pair equal_range(const Key &key, + std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + std::pair equal_range(const Key &key) const { + return m_ht.equal_range(key); + } + + /** + * @copydoc equal_range(const Key& key, std::size_t precalculated_hash) + */ + std::pair equal_range( + const Key &key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range(const K &key) { + return m_ht.equal_range(key); + } + + /** + * @copydoc equal_range(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range(const K &key, + std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * @copydoc equal_range(const K& key) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range(const K &key) const { + return m_ht.equal_range(key); + } + + /** + * @copydoc equal_range(const K& key, std::size_t precalculated_hash) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range( + const K &key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + /* + * Bucket interface + */ + size_type bucket_count() const { return m_ht.bucket_count(); } + size_type max_bucket_count() const { return m_ht.max_bucket_count(); } + + /* + * Hash policy + */ + float load_factor() const { return m_ht.load_factor(); } + float max_load_factor() const { return m_ht.max_load_factor(); } + void max_load_factor(float ml) { m_ht.max_load_factor(ml); } + + void rehash(size_type count) { m_ht.rehash(count); } + void reserve(size_type count) { m_ht.reserve(count); } + + /* + * Observers + */ + hasher hash_function() const { return m_ht.hash_function(); } + key_equal key_eq() const { return m_ht.key_eq(); } + + /* + * Other + */ + + /** + * Convert a `const_iterator` to an `iterator`. + */ + iterator mutable_iterator(const_iterator pos) { + return m_ht.mutable_iterator(pos); + } + + /** + * Serialize the map through the `serializer` parameter. + * + * The `serializer` parameter must be a function object that supports the + * following call: + * - `template void operator()(const U& value);` where the types + * `std::uint64_t`, `float` and `std::pair` must be supported for U. + * + * The implementation leaves binary compatibility (endianness, IEEE 754 for + * floats, ...) of the types it serializes in the hands of the `Serializer` + * function object if compatibility is required. + */ + template + void serialize(Serializer &serializer) const { + m_ht.serialize(serializer); + } + + /** + * Deserialize a previously serialized map through the `deserializer` + * parameter. + * + * The `deserializer` parameter must be a function object that supports the + * following calls: + * - `template U operator()();` where the types `std::uint64_t`, + * `float` and `std::pair` must be supported for U. + * + * If the deserialized hash map type is hash compatible with the serialized + * map, the deserialization process can be sped up by setting + * `hash_compatible` to true. To be hash compatible, the Hash, KeyEqual and + * GrowthPolicy must behave the same way than the ones used on the serialized + * map. The `std::size_t` must also be of the same size as the one on the + * platform used to serialize the map. If these criteria are not met, the + * behaviour is undefined with `hash_compatible` sets to true. + * + * The behaviour is undefined if the type `Key` and `T` of the `sparse_map` + * are not the same as the types used during serialization. + * + * The implementation leaves binary compatibility (endianness, IEEE 754 for + * floats, size of int, ...) of the types it deserializes in the hands of the + * `Deserializer` function object if compatibility is required. + */ + template + static sparse_map deserialize(Deserializer &deserializer, + bool hash_compatible = false) { + sparse_map map(0); + map.m_ht.deserialize(deserializer, hash_compatible); + + return map; + } + + friend bool operator==(const sparse_map &lhs, const sparse_map &rhs) { + if (lhs.size() != rhs.size()) { + return false; + } + + for (const auto &element_lhs : lhs) { + const auto it_element_rhs = rhs.find(element_lhs.first); + if (it_element_rhs == rhs.cend() || + element_lhs.second != it_element_rhs->second) { + return false; + } + } + + return true; + } + + friend bool operator!=(const sparse_map &lhs, const sparse_map &rhs) { + return !operator==(lhs, rhs); + } + + friend void swap(sparse_map &lhs, sparse_map &rhs) { lhs.swap(rhs); } + + private: + ht m_ht; +}; + +/** + * Same as `tsl::sparse_map`. + */ +template , + class KeyEqual = std::equal_to, + class Allocator = std::allocator>> +using sparse_pg_map = + sparse_map; + +} // end namespace tsl + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_set.h b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_set.h new file mode 100644 index 0000000..3ce6a58 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/tsl/sparse_set.h @@ -0,0 +1,655 @@ +/** + * MIT License + * + * Copyright (c) 2017 Thibaut Goetghebuer-Planchon + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#ifndef TSL_SPARSE_SET_H +#define TSL_SPARSE_SET_H + +#include +#include +#include +#include +#include +#include + +#include "sparse_hash.h" + +namespace tsl { + +/** + * Implementation of a sparse hash set using open-addressing with quadratic + * probing. The goal on the hash set is to be the most memory efficient + * possible, even at low load factor, while keeping reasonable performances. + * + * `GrowthPolicy` defines how the set grows and consequently how a hash value is + * mapped to a bucket. By default the set uses + * `tsl::sh::power_of_two_growth_policy`. This policy keeps the number of + * buckets to a power of two and uses a mask to map the hash to a bucket instead + * of the slow modulo. Other growth policies are available and you may define + * your own growth policy, check `tsl::sh::power_of_two_growth_policy` for the + * interface. + * + * `ExceptionSafety` defines the exception guarantee provided by the class. By + * default only the basic exception safety is guaranteed which mean that all + * resources used by the hash set will be freed (no memory leaks) but the hash + * set may end-up in an undefined state if an exception is thrown (undefined + * here means that some elements may be missing). This can ONLY happen on rehash + * (either on insert or if `rehash` is called explicitly) and will occur if the + * Allocator can't allocate memory (`std::bad_alloc`) or if the copy constructor + * (when a nothrow move constructor is not available) throws an exception. This + * can be avoided by calling `reserve` beforehand. This basic guarantee is + * similar to the one of `google::sparse_hash_map` and `spp::sparse_hash_map`. + * It is possible to ask for the strong exception guarantee with + * `tsl::sh::exception_safety::strong`, the drawback is that the set will be + * slower on rehashes and will also need more memory on rehashes. + * + * `Sparsity` defines how much the hash set will compromise between insertion + * speed and memory usage. A high sparsity means less memory usage but longer + * insertion times, and vice-versa for low sparsity. The default + * `tsl::sh::sparsity::medium` sparsity offers a good compromise. It doesn't + * change the lookup speed. + * + * `Key` must be nothrow move constructible and/or copy constructible. + * + * If the destructor of `Key` throws an exception, the behaviour of the class is + * undefined. + * + * Iterators invalidation: + * - clear, operator=, reserve, rehash: always invalidate the iterators. + * - insert, emplace, emplace_hint: if there is an effective insert, invalidate + * the iterators. + * - erase: always invalidate the iterators. + */ +template , + class KeyEqual = std::equal_to, + class Allocator = std::allocator, + class GrowthPolicy = tsl::sh::power_of_two_growth_policy<2>, + tsl::sh::exception_safety ExceptionSafety = + tsl::sh::exception_safety::basic, + tsl::sh::sparsity Sparsity = tsl::sh::sparsity::medium> +class sparse_set { + private: + template + using has_is_transparent = tsl::detail_sparse_hash::has_is_transparent; + + class KeySelect { + public: + using key_type = Key; + + const key_type &operator()(const Key &key) const noexcept { return key; } + + key_type &operator()(Key &key) noexcept { return key; } + }; + + using ht = + detail_sparse_hash::sparse_hash; + + public: + using key_type = typename ht::key_type; + using value_type = typename ht::value_type; + using size_type = typename ht::size_type; + using difference_type = typename ht::difference_type; + using hasher = typename ht::hasher; + using key_equal = typename ht::key_equal; + using allocator_type = typename ht::allocator_type; + using reference = typename ht::reference; + using const_reference = typename ht::const_reference; + using pointer = typename ht::pointer; + using const_pointer = typename ht::const_pointer; + using iterator = typename ht::iterator; + using const_iterator = typename ht::const_iterator; + + /* + * Constructors + */ + sparse_set() : sparse_set(ht::DEFAULT_INIT_BUCKET_COUNT) {} + + explicit sparse_set(size_type bucket_count, const Hash &hash = Hash(), + const KeyEqual &equal = KeyEqual(), + const Allocator &alloc = Allocator()) + : m_ht(bucket_count, hash, equal, alloc, ht::DEFAULT_MAX_LOAD_FACTOR) {} + + sparse_set(size_type bucket_count, const Allocator &alloc) + : sparse_set(bucket_count, Hash(), KeyEqual(), alloc) {} + + sparse_set(size_type bucket_count, const Hash &hash, const Allocator &alloc) + : sparse_set(bucket_count, hash, KeyEqual(), alloc) {} + + explicit sparse_set(const Allocator &alloc) + : sparse_set(ht::DEFAULT_INIT_BUCKET_COUNT, alloc) {} + + template + sparse_set(InputIt first, InputIt last, + size_type bucket_count = ht::DEFAULT_INIT_BUCKET_COUNT, + const Hash &hash = Hash(), const KeyEqual &equal = KeyEqual(), + const Allocator &alloc = Allocator()) + : sparse_set(bucket_count, hash, equal, alloc) { + insert(first, last); + } + + template + sparse_set(InputIt first, InputIt last, size_type bucket_count, + const Allocator &alloc) + : sparse_set(first, last, bucket_count, Hash(), KeyEqual(), alloc) {} + + template + sparse_set(InputIt first, InputIt last, size_type bucket_count, + const Hash &hash, const Allocator &alloc) + : sparse_set(first, last, bucket_count, hash, KeyEqual(), alloc) {} + + sparse_set(std::initializer_list init, + size_type bucket_count = ht::DEFAULT_INIT_BUCKET_COUNT, + const Hash &hash = Hash(), const KeyEqual &equal = KeyEqual(), + const Allocator &alloc = Allocator()) + : sparse_set(init.begin(), init.end(), bucket_count, hash, equal, alloc) { + } + + sparse_set(std::initializer_list init, size_type bucket_count, + const Allocator &alloc) + : sparse_set(init.begin(), init.end(), bucket_count, Hash(), KeyEqual(), + alloc) {} + + sparse_set(std::initializer_list init, size_type bucket_count, + const Hash &hash, const Allocator &alloc) + : sparse_set(init.begin(), init.end(), bucket_count, hash, KeyEqual(), + alloc) {} + + sparse_set &operator=(std::initializer_list ilist) { + m_ht.clear(); + + m_ht.reserve(ilist.size()); + m_ht.insert(ilist.begin(), ilist.end()); + + return *this; + } + + allocator_type get_allocator() const { return m_ht.get_allocator(); } + + /* + * Iterators + */ + iterator begin() noexcept { return m_ht.begin(); } + const_iterator begin() const noexcept { return m_ht.begin(); } + const_iterator cbegin() const noexcept { return m_ht.cbegin(); } + + iterator end() noexcept { return m_ht.end(); } + const_iterator end() const noexcept { return m_ht.end(); } + const_iterator cend() const noexcept { return m_ht.cend(); } + + /* + * Capacity + */ + bool empty() const noexcept { return m_ht.empty(); } + size_type size() const noexcept { return m_ht.size(); } + size_type max_size() const noexcept { return m_ht.max_size(); } + + /* + * Modifiers + */ + void clear() noexcept { m_ht.clear(); } + + std::pair insert(const value_type &value) { + return m_ht.insert(value); + } + + std::pair insert(value_type &&value) { + return m_ht.insert(std::move(value)); + } + + iterator insert(const_iterator hint, const value_type &value) { + return m_ht.insert_hint(hint, value); + } + + iterator insert(const_iterator hint, value_type &&value) { + return m_ht.insert_hint(hint, std::move(value)); + } + + template + void insert(InputIt first, InputIt last) { + m_ht.insert(first, last); + } + + void insert(std::initializer_list ilist) { + m_ht.insert(ilist.begin(), ilist.end()); + } + + /** + * Due to the way elements are stored, emplace will need to move or copy the + * key-value once. The method is equivalent to + * `insert(value_type(std::forward(args)...));`. + * + * Mainly here for compatibility with the `std::unordered_map` interface. + */ + template + std::pair emplace(Args &&...args) { + return m_ht.emplace(std::forward(args)...); + } + + /** + * Due to the way elements are stored, emplace_hint will need to move or copy + * the key-value once. The method is equivalent to `insert(hint, + * value_type(std::forward(args)...));`. + * + * Mainly here for compatibility with the `std::unordered_map` interface. + */ + template + iterator emplace_hint(const_iterator hint, Args &&...args) { + return m_ht.emplace_hint(hint, std::forward(args)...); + } + + iterator erase(iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator pos) { return m_ht.erase(pos); } + iterator erase(const_iterator first, const_iterator last) { + return m_ht.erase(first, last); + } + size_type erase(const key_type &key) { return m_ht.erase(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + size_type erase(const key_type &key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type erase(const K &key) { + return m_ht.erase(key); + } + + /** + * @copydoc erase(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type erase(const K &key, std::size_t precalculated_hash) { + return m_ht.erase(key, precalculated_hash); + } + + void swap(sparse_set &other) { other.m_ht.swap(m_ht); } + + /* + * Lookup + */ + size_type count(const Key &key) const { return m_ht.count(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + size_type count(const Key &key, std::size_t precalculated_hash) const { + return m_ht.count(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type count(const K &key) const { + return m_ht.count(key); + } + + /** + * @copydoc count(const K& key) const + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + size_type count(const K &key, std::size_t precalculated_hash) const { + return m_ht.count(key, precalculated_hash); + } + + iterator find(const Key &key) { return m_ht.find(key); } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + iterator find(const Key &key, std::size_t precalculated_hash) { + return m_ht.find(key, precalculated_hash); + } + + const_iterator find(const Key &key) const { return m_ht.find(key); } + + /** + * @copydoc find(const Key& key, std::size_t precalculated_hash) + */ + const_iterator find(const Key &key, std::size_t precalculated_hash) const { + return m_ht.find(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + iterator find(const K &key) { + return m_ht.find(key); + } + + /** + * @copydoc find(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + iterator find(const K &key, std::size_t precalculated_hash) { + return m_ht.find(key, precalculated_hash); + } + + /** + * @copydoc find(const K& key) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + const_iterator find(const K &key) const { + return m_ht.find(key); + } + + /** + * @copydoc find(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + const_iterator find(const K &key, std::size_t precalculated_hash) const { + return m_ht.find(key, precalculated_hash); + } + + bool contains(const Key &key) const { return m_ht.contains(key); } + + /** + * Use the hash value 'precalculated_hash' instead of hashing the key. The + * hash value should be the same as hash_function()(key). Useful to speed-up + * the lookup if you already have the hash. + */ + bool contains(const Key &key, std::size_t precalculated_hash) const { + return m_ht.contains(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * KeyEqual::is_transparent exists. If so, K must be hashable and comparable + * to Key. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + bool contains(const K &key) const { + return m_ht.contains(key); + } + + /** + * @copydoc contains(const K& key) const + * + * Use the hash value 'precalculated_hash' instead of hashing the key. The + * hash value should be the same as hash_function()(key). Useful to speed-up + * the lookup if you already have the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + bool contains(const K &key, std::size_t precalculated_hash) const { + return m_ht.contains(key, precalculated_hash); + } + + std::pair equal_range(const Key &key) { + return m_ht.equal_range(key); + } + + /** + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + std::pair equal_range(const Key &key, + std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + std::pair equal_range(const Key &key) const { + return m_ht.equal_range(key); + } + + /** + * @copydoc equal_range(const Key& key, std::size_t precalculated_hash) + */ + std::pair equal_range( + const Key &key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * This overload only participates in the overload resolution if the typedef + * `KeyEqual::is_transparent` exists. If so, `K` must be hashable and + * comparable to `Key`. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range(const K &key) { + return m_ht.equal_range(key); + } + + /** + * @copydoc equal_range(const K& key) + * + * Use the hash value `precalculated_hash` instead of hashing the key. The + * hash value should be the same as `hash_function()(key)`, otherwise the + * behaviour is undefined. Useful to speed-up the lookup if you already have + * the hash. + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range(const K &key, + std::size_t precalculated_hash) { + return m_ht.equal_range(key, precalculated_hash); + } + + /** + * @copydoc equal_range(const K& key) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range(const K &key) const { + return m_ht.equal_range(key); + } + + /** + * @copydoc equal_range(const K& key, std::size_t precalculated_hash) + */ + template < + class K, class KE = KeyEqual, + typename std::enable_if::value>::type * = nullptr> + std::pair equal_range( + const K &key, std::size_t precalculated_hash) const { + return m_ht.equal_range(key, precalculated_hash); + } + + /* + * Bucket interface + */ + size_type bucket_count() const { return m_ht.bucket_count(); } + size_type max_bucket_count() const { return m_ht.max_bucket_count(); } + + /* + * Hash policy + */ + float load_factor() const { return m_ht.load_factor(); } + float max_load_factor() const { return m_ht.max_load_factor(); } + void max_load_factor(float ml) { m_ht.max_load_factor(ml); } + + void rehash(size_type count) { m_ht.rehash(count); } + void reserve(size_type count) { m_ht.reserve(count); } + + /* + * Observers + */ + hasher hash_function() const { return m_ht.hash_function(); } + key_equal key_eq() const { return m_ht.key_eq(); } + + /* + * Other + */ + + /** + * Convert a `const_iterator` to an `iterator`. + */ + iterator mutable_iterator(const_iterator pos) { + return m_ht.mutable_iterator(pos); + } + + /** + * Serialize the set through the `serializer` parameter. + * + * The `serializer` parameter must be a function object that supports the + * following call: + * - `void operator()(const U& value);` where the types `std::uint64_t`, + * `float` and `Key` must be supported for U. + * + * The implementation leaves binary compatibility (endianness, IEEE 754 for + * floats, ...) of the types it serializes in the hands of the `Serializer` + * function object if compatibility is required. + */ + template + void serialize(Serializer &serializer) const { + m_ht.serialize(serializer); + } + + /** + * Deserialize a previously serialized set through the `deserializer` + * parameter. + * + * The `deserializer` parameter must be a function object that supports the + * following calls: + * - `template U operator()();` where the types `std::uint64_t`, + * `float` and `Key` must be supported for U. + * + * If the deserialized hash set type is hash compatible with the serialized + * set, the deserialization process can be sped up by setting + * `hash_compatible` to true. To be hash compatible, the Hash, KeyEqual and + * GrowthPolicy must behave the same way than the ones used on the serialized + * set. The `std::size_t` must also be of the same size as the one on the + * platform used to serialize the set. If these criteria are not met, the + * behaviour is undefined with `hash_compatible` sets to true. + * + * The behaviour is undefined if the type `Key` of the `sparse_set` is not the + * same as the type used during serialization. + * + * The implementation leaves binary compatibility (endianness, IEEE 754 for + * floats, size of int, ...) of the types it deserializes in the hands of the + * `Deserializer` function object if compatibility is required. + */ + template + static sparse_set deserialize(Deserializer &deserializer, + bool hash_compatible = false) { + sparse_set set(0); + set.m_ht.deserialize(deserializer, hash_compatible); + + return set; + } + + friend bool operator==(const sparse_set &lhs, const sparse_set &rhs) { + if (lhs.size() != rhs.size()) { + return false; + } + + for (const auto &element_lhs : lhs) { + const auto it_element_rhs = rhs.find(element_lhs); + if (it_element_rhs == rhs.cend()) { + return false; + } + } + + return true; + } + + friend bool operator!=(const sparse_set &lhs, const sparse_set &rhs) { + return !operator==(lhs, rhs); + } + + friend void swap(sparse_set &lhs, sparse_set &rhs) { lhs.swap(rhs); } + + private: + ht m_ht; +}; + +/** + * Same as `tsl::sparse_set`. + */ +template , + class KeyEqual = std::equal_to, + class Allocator = std::allocator> +using sparse_pg_set = + sparse_set; + +} // end namespace tsl + +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/types.h b/packages/leann-backend-diskann/third_party/DiskANN/include/types.h new file mode 100644 index 0000000..953d59a --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/types.h @@ -0,0 +1,22 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include +#include +#include "any_wrappers.h" + +namespace diskann +{ +typedef uint32_t location_t; + +using DataType = std::any; +using TagType = std::any; +using LabelType = std::any; +using TagVector = AnyWrapper::AnyVector; +using DataVector = AnyWrapper::AnyVector; +using Labelvector = AnyWrapper::AnyVector; +using TagRobinSet = AnyWrapper::AnyRobinSet; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/utils.h b/packages/leann-backend-diskann/third_party/DiskANN/include/utils.h new file mode 100644 index 0000000..355a613 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/utils.h @@ -0,0 +1,1455 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include + +#include "common_includes.h" + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#ifdef _WINDOWS +#include +typedef HANDLE FileHandle; +#else +#include +typedef int FileHandle; +#endif + +#include "distance.h" +#include "logger.h" +#include "cached_io.h" +#include "ann_exception.h" +#include "windows_customizations.h" +#include "tsl/robin_set.h" +#include "types.h" +#include "tag_uint128.h" +#include + +#ifdef EXEC_ENV_OLS +#include "content_buf.h" +#include "memory_mapped_files.h" +#endif + +#ifdef __APPLE__ +#ifdef __arm64__ +#define _MM_HINT_T0 1 +#define _MM_HINT_T1 2 + +static inline __attribute__((always_inline)) void _mm_prefetch(char const *p, int i) +{ + switch (i) + { + case _MM_HINT_T0: + __builtin_prefetch(p, 0, 3); + break; + case _MM_HINT_T1: + __builtin_prefetch(p, 0, 2); + break; + } +} +#endif + +#define LAPACK_COL_MAJOR 1 +#define LAPACK_ROW_MAJOR 0 +#ifdef __APPLE__ +typedef int clp_int; +#else +typedef __CLPK_integer clp_int; +#endif + +inline void _sge_trans(int matrix_layout, clp_int m, clp_int n, const float *in, clp_int ldin, float *out, + clp_int ldout) +{ + clp_int i, j, x, y; + + if (matrix_layout == LAPACK_COL_MAJOR) + { + x = n; + y = m; + } + else + { + x = m; + y = n; + } + for (i = 0; i < MIN(y, ldin); i++) + { + for (j = 0; j < MIN(x, ldout); j++) + { + out[(size_t)i * ldout + j] = in[(size_t)j * ldin + i]; + } + } +} +inline clp_int sgesdd_rm_work(char jobz, clp_int m, clp_int n, float *a, clp_int lda, float *s, float *u, clp_int ldu, + float *vt, clp_int ldvt, float *work, clp_int lwork, clp_int *iwork) +{ + clp_int info = 0; + clp_int nrows_u = ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && m < n)) ? m : 1; + clp_int ncols_u = ((jobz == 'a') || ((jobz == 'o') && m < n)) ? m : ((jobz == 's') ? MIN(m, n) : 1); + clp_int nrows_vt = ((jobz == 'a') || ((jobz == 'o') && m >= n)) ? n : ((jobz == 's') ? MIN(m, n) : 1); + + clp_int lda_t = MAX(1, m); + clp_int ldu_t = MAX(1, nrows_u); + clp_int ldvt_t = MAX(1, nrows_vt); + float *a_t = NULL; + float *u_t = NULL; + float *vt_t = NULL; + + // check leading dimensions + if (lda < n) + { + info = -6; + return info; + } + if (ldu < ncols_u) + { + info = -9; + return info; + } + if (ldvt < n) + { + info = -11; + return info; + } + + // query for optimal work size if lwork = -1 + if (lwork == -1) + { + sgesdd_(&jobz, &m, &n, a, &lda_t, s, u, &ldu_t, vt, &ldvt_t, work, &lwork, iwork, &info); + return (info < 0) ? (info - 1) : info; + } + + // setup temp arrays + a_t = (float *)malloc(sizeof(float) * lda_t * MAX(1, n)); + if (a_t == NULL) + { + info = -1011; + return info; + } + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m < n))) + { + u_t = (float *)malloc(sizeof(float) * ldu_t * MAX(1, ncols_u)); + if (u_t == NULL) + { + info = -1011; + free(a_t); + return info; + } + } + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m >= n))) + { + vt_t = (float *)malloc(sizeof(float) * ldvt_t * MAX(1, n)); + if (vt_t == NULL) + { + info = -1011; + free(a_t); + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m < n))) + { + free(u_t); + } + return info; + } + } + + _sge_trans(LAPACK_ROW_MAJOR, m, n, a, lda, a_t, lda_t); + sgesdd_(&jobz, &m, &n, a_t, &lda_t, s, u_t, &ldu_t, vt_t, &ldvt_t, work, &lwork, iwork, &info); + + if (info < 0) + { + info = info - 1; + } + /* Transpose output matrices */ + _sge_trans(LAPACK_COL_MAJOR, m, n, a_t, lda_t, a, lda); + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m < n))) + { + _sge_trans(LAPACK_COL_MAJOR, nrows_u, ncols_u, u_t, ldu_t, u, ldu); + } + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m >= n))) + { + _sge_trans(LAPACK_COL_MAJOR, nrows_vt, n, vt_t, ldvt_t, vt, ldvt); + } + /* Release memory and exit */ + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m >= n))) + { + free(vt_t); + } + if ((jobz == 'a') || (jobz == 's') || ((jobz == 'o') && (m < n))) + { + free(u_t); + } + free(a_t); + return info; +} + +inline clp_int LAPACKE_sgesdd(int matrix_layout, char jobz, clp_int m, clp_int n, float *a, clp_int lda, float *s, + float *u, clp_int ldu, float *vt, clp_int ldvt) +{ + // internal SGESDD vars + clp_int info = 0; + clp_int lwork = -1; + clp_int *iwork = NULL; + float *work = NULL; + float work_query; + + // allocate space for iwork + iwork = (clp_int *)malloc(sizeof(clp_int) * MAX(1, 8 * MIN(m, n))); + if (iwork == NULL) + throw; + /* Query optimal working array(s) size */ + info = sgesdd_rm_work(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, &work_query, lwork, iwork); + if (info != 0) + { + free(iwork); + info = -1010; + return info; + } + + lwork = (clp_int)work_query; + /* Allocate memory for work arrays */ + work = (float *)malloc(sizeof(float) * lwork); + if (work == NULL) + throw; + + /* Call middle-level interface */ + info = sgesdd_rm_work(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork); + /* Release memory and exit */ + free(work); + free(iwork); + return info; +} +#endif + +// taken from +// https://github.com/Microsoft/BLAS-on-flash/blob/master/include/utils.h +// round up X to the nearest multiple of Y +#define ROUND_UP(X, Y) ((((uint64_t)(X) / (Y)) + ((uint64_t)(X) % (Y) != 0)) * (Y)) + +#define DIV_ROUND_UP(X, Y) (((uint64_t)(X) / (Y)) + ((uint64_t)(X) % (Y) != 0)) + +// round down X to the nearest multiple of Y +#define ROUND_DOWN(X, Y) (((uint64_t)(X) / (Y)) * (Y)) + +// alignment tests +#define IS_ALIGNED(X, Y) ((uint64_t)(X) % (uint64_t)(Y) == 0) +#define IS_512_ALIGNED(X) IS_ALIGNED(X, 512) +#define IS_4096_ALIGNED(X) IS_ALIGNED(X, 4096) +#define METADATA_SIZE \ + 4096 // all metadata of individual sub-component files is written in first + // 4KB for unified files + +#define BUFFER_SIZE_FOR_CACHED_IO (size_t)1024 * (size_t)1048576 + +#define PBSTR "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||" +#define PBWIDTH 60 + +inline bool file_exists_impl(const std::string &name, bool dirCheck = false) +{ + int val; +#ifndef _WINDOWS + struct stat buffer; + val = stat(name.c_str(), &buffer); +#else + // It is the 21st century but Windows API still thinks in 32-bit terms. + // Turns out calling stat() on a file > 4GB results in errno = 132 + // (OVERFLOW). How silly is this!? So calling _stat64() + struct _stat64 buffer; + val = _stat64(name.c_str(), &buffer); +#endif + + if (val != 0) + { + switch (errno) + { + case EINVAL: + diskann::cout << "Invalid argument passed to stat()" << std::endl; + break; + case ENOENT: + // file is not existing, not an issue, so we won't cout anything. + break; + default: + diskann::cout << "Unexpected error in stat():" << errno << std::endl; + break; + } + return false; + } + else + { + // the file entry exists. If reqd, check if this is a directory. + return dirCheck ? buffer.st_mode & S_IFDIR : true; + } +} + +inline bool file_exists(const std::string &name, bool dirCheck = false) +{ +#ifdef EXEC_ENV_OLS + bool exists = file_exists_impl(name, dirCheck); + if (exists) + { + return true; + } + if (!dirCheck) + { + // try with .enc extension + std::string enc_name = name + ENCRYPTED_EXTENSION; + return file_exists_impl(enc_name, dirCheck); + } + else + { + return exists; + } +#else + return file_exists_impl(name, dirCheck); +#endif +} + +inline void open_file_to_write(std::ofstream &writer, const std::string &filename) +{ + writer.exceptions(std::ofstream::failbit | std::ofstream::badbit); + if (!file_exists(filename)) + writer.open(filename, std::ios::binary | std::ios::out); + else + writer.open(filename, std::ios::binary | std::ios::in | std::ios::out); + + if (writer.fail()) + { + char buff[1024]; +#ifdef _WINDOWS + auto ret = std::to_string(strerror_s(buff, 1024, errno)); +#elif __APPLE__ + auto ret = std::to_string(strerror_r(errno, buff, 1024)); +#else + auto ret = std::string(strerror_r(errno, buff, 1024)); +#endif + auto message = std::string("Failed to open file") + filename + " for write because " + buff + ", ret=" + ret; + diskann::cerr << message << std::endl; + throw diskann::ANNException(message, -1); + } +} + +inline size_t get_file_size(const std::string &fname) +{ + std::ifstream reader(fname, std::ios::binary | std::ios::ate); + if (!reader.fail() && reader.is_open()) + { + size_t end_pos = reader.tellg(); + reader.close(); + return end_pos; + } + else + { + diskann::cerr << "Could not open file: " << fname << std::endl; + return 0; + } +} + +inline int delete_file(const std::string &fileName) +{ + if (file_exists(fileName)) + { + auto rc = ::remove(fileName.c_str()); + if (rc != 0) + { + diskann::cerr << "Could not delete file: " << fileName + << " even though it exists. This might indicate a permissions " + "issue. " + "If you see this message, please contact the diskann team." + << std::endl; + } + return rc; + } + else + { + return 0; + } +} + +// generates formatted_label and _labels_map file. +inline void convert_labels_string_to_int(const std::string &inFileName, const std::string &outFileName, + const std::string &mapFileName, const std::string &unv_label) +{ + std::unordered_map string_int_map; + std::ofstream label_writer(outFileName); + std::ifstream label_reader(inFileName); + if (unv_label != "") + string_int_map[unv_label] = 0; // if universal label is provided map it to 0 always + std::string line, token; + while (std::getline(label_reader, line)) + { + std::istringstream new_iss(line); + std::vector lbls; + while (getline(new_iss, token, ',')) + { + token.erase(std::remove(token.begin(), token.end(), '\n'), token.end()); + token.erase(std::remove(token.begin(), token.end(), '\r'), token.end()); + if (string_int_map.find(token) == string_int_map.end()) + { + uint32_t nextId = (uint32_t)string_int_map.size() + 1; + string_int_map[token] = nextId; // nextId can never be 0 + } + lbls.push_back(string_int_map[token]); + } + if (lbls.size() <= 0) + { + std::cout << "No label found"; + exit(-1); + } + for (size_t j = 0; j < lbls.size(); j++) + { + if (j != lbls.size() - 1) + label_writer << lbls[j] << ","; + else + label_writer << lbls[j] << std::endl; + } + } + label_writer.close(); + + std::ofstream map_writer(mapFileName); + for (auto mp : string_int_map) + { + map_writer << mp.first << "\t" << mp.second << std::endl; + } + map_writer.close(); +} + +#ifdef EXEC_ENV_OLS +class AlignedFileReader; +#endif + +namespace diskann +{ +static const size_t MAX_SIZE_OF_STREAMBUF = 2LL * 1024 * 1024 * 1024; + +inline void print_error_and_terminate(std::stringstream &error_stream) +{ + diskann::cerr << error_stream.str() << std::endl; + throw diskann::ANNException(error_stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); +} + +inline void report_memory_allocation_failure() +{ + std::stringstream stream; + stream << "Memory Allocation Failed."; + print_error_and_terminate(stream); +} + +inline void report_misalignment_of_requested_size(size_t align) +{ + std::stringstream stream; + stream << "Requested memory size is not a multiple of " << align << ". Can not be allocated."; + print_error_and_terminate(stream); +} + +inline void alloc_aligned(void **ptr, size_t size, size_t align) +{ + *ptr = nullptr; + if (IS_ALIGNED(size, align) == 0) + report_misalignment_of_requested_size(align); +#ifdef _WINDOWS + *ptr = ::_aligned_malloc(size, align); // note the swapped arguments! +#elif __APPLE__ + int err = posix_memalign(ptr, align, size); + if (err) + { + std::cout << err << std::endl; + throw; + } +#else + *ptr = ::aligned_alloc(align, size); +#endif + if (*ptr == nullptr) + report_memory_allocation_failure(); +} + +inline void realloc_aligned(void **ptr, size_t size, size_t align) +{ + if (IS_ALIGNED(size, align) == 0) + report_misalignment_of_requested_size(align); +#ifdef _WINDOWS + *ptr = ::_aligned_realloc(*ptr, size, align); +#else + diskann::cerr << "No aligned realloc on GCC. Must malloc and mem_align, " + "left it out for now." + << std::endl; +#endif + if (*ptr == nullptr) + report_memory_allocation_failure(); +} + +inline void check_stop(std::string arnd) +{ + int brnd; + diskann::cout << arnd << std::endl; + std::cin >> brnd; +} + +inline void aligned_free(void *ptr) +{ + // Gopal. Must have a check here if the pointer was actually allocated by + // _alloc_aligned + if (ptr == nullptr) + { + return; + } +#ifndef _WINDOWS + free(ptr); +#else + ::_aligned_free(ptr); +#endif +} + +inline void GenRandom(std::mt19937 &rng, unsigned *addr, unsigned size, unsigned N) +{ + for (unsigned i = 0; i < size; ++i) + { + addr[i] = rng() % (N - size); + } + + std::sort(addr, addr + size); + for (unsigned i = 1; i < size; ++i) + { + if (addr[i] <= addr[i - 1]) + { + addr[i] = addr[i - 1] + 1; + } + } + unsigned off = rng() % N; + for (unsigned i = 0; i < size; ++i) + { + addr[i] = (addr[i] + off) % N; + } +} + +// get_bin_metadata functions START +inline void get_bin_metadata_impl(std::basic_istream &reader, size_t &nrows, size_t &ncols, size_t offset = 0) +{ + int nrows_32, ncols_32; + reader.seekg(offset, reader.beg); + reader.read((char *)&nrows_32, sizeof(int)); + reader.read((char *)&ncols_32, sizeof(int)); + nrows = nrows_32; + ncols = ncols_32; +} + +#ifdef EXEC_ENV_OLS +inline void get_bin_metadata(MemoryMappedFiles &files, const std::string &bin_file, size_t &nrows, size_t &ncols, + size_t offset = 0) +{ + diskann::cout << "Getting metadata for file: " << bin_file << std::endl; + auto fc = files.getContent(bin_file); + // auto cb = ContentBuf((char*) fc._content, fc._size); + // std::basic_istream reader(&cb); + // get_bin_metadata_impl(reader, nrows, ncols, offset); + + int nrows_32, ncols_32; + int32_t *metadata_ptr = (int32_t *)((char *)fc._content + offset); + nrows_32 = *metadata_ptr; + ncols_32 = *(metadata_ptr + 1); + nrows = nrows_32; + ncols = ncols_32; +} +#endif + +inline void get_bin_metadata(const std::string &bin_file, size_t &nrows, size_t &ncols, size_t offset = 0) +{ + std::ifstream reader(bin_file.c_str(), std::ios::binary); + get_bin_metadata_impl(reader, nrows, ncols, offset); +} +// get_bin_metadata functions END + +#ifndef EXEC_ENV_OLS +inline size_t get_graph_num_frozen_points(const std::string &graph_file) +{ + size_t expected_file_size; + uint32_t max_observed_degree, start; + size_t file_frozen_pts; + + std::ifstream in; + in.exceptions(std::ios::badbit | std::ios::failbit); + + in.open(graph_file, std::ios::binary); + in.read((char *)&expected_file_size, sizeof(size_t)); + in.read((char *)&max_observed_degree, sizeof(uint32_t)); + in.read((char *)&start, sizeof(uint32_t)); + in.read((char *)&file_frozen_pts, sizeof(size_t)); + + return file_frozen_pts; +} +#endif + +template inline std::string getValues(T *data, size_t num) +{ + std::stringstream stream; + stream << "["; + for (size_t i = 0; i < num; i++) + { + stream << std::to_string(data[i]) << ","; + } + stream << "]" << std::endl; + + return stream.str(); +} + +// load_bin functions START +template +inline void load_bin_impl(std::basic_istream &reader, T *&data, size_t &npts, size_t &dim, size_t file_offset = 0) +{ + int npts_i32, dim_i32; + + reader.seekg(file_offset, reader.beg); + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (unsigned)npts_i32; + dim = (unsigned)dim_i32; + + std::cout << "Metadata: #pts = " << npts << ", #dims = " << dim << "..." << std::endl; + + data = new T[npts * dim]; + reader.read((char *)data, npts * dim * sizeof(T)); +} + +#ifdef EXEC_ENV_OLS +template +inline void load_bin(MemoryMappedFiles &files, const std::string &bin_file, T *&data, size_t &npts, size_t &dim, + size_t offset = 0) +{ + diskann::cout << "Reading bin file " << bin_file.c_str() << " at offset: " << offset << "..." << std::endl; + auto fc = files.getContent(bin_file); + + uint32_t t_npts, t_dim; + uint32_t *contentAsIntPtr = (uint32_t *)((char *)fc._content + offset); + t_npts = *(contentAsIntPtr); + t_dim = *(contentAsIntPtr + 1); + + npts = t_npts; + dim = t_dim; + + data = (T *)((char *)fc._content + offset + 2 * sizeof(uint32_t)); // No need to copy! +} + +DISKANN_DLLEXPORT void get_bin_metadata(AlignedFileReader &reader, size_t &npts, size_t &ndim, size_t offset = 0); +template +DISKANN_DLLEXPORT void load_bin(AlignedFileReader &reader, T *&data, size_t &npts, size_t &ndim, size_t offset = 0); +template +DISKANN_DLLEXPORT void load_bin(AlignedFileReader &reader, std::unique_ptr &data, size_t &npts, size_t &ndim, + size_t offset = 0); + +template +DISKANN_DLLEXPORT void copy_aligned_data_from_file(AlignedFileReader &reader, T *&data, size_t &npts, size_t &dim, + const size_t &rounded_dim, size_t offset = 0); + +// Unlike load_bin, assumes that data is already allocated 'size' entries +template +DISKANN_DLLEXPORT void read_array(AlignedFileReader &reader, T *data, size_t size, size_t offset = 0); + +template DISKANN_DLLEXPORT void read_value(AlignedFileReader &reader, T &value, size_t offset = 0); +#endif + +template +inline void load_bin(const std::string &bin_file, T *&data, size_t &npts, size_t &dim, size_t offset = 0) +{ + diskann::cout << "Reading bin file " << bin_file.c_str() << " ..." << std::endl; + std::ifstream reader; + reader.exceptions(std::ifstream::failbit | std::ifstream::badbit); + + try + { + diskann::cout << "Opening bin file " << bin_file.c_str() << "... " << std::endl; + reader.open(bin_file, std::ios::binary | std::ios::ate); + reader.seekg(0); + load_bin_impl(reader, data, npts, dim, offset); + } + catch (std::system_error &e) + { + throw FileException(bin_file, e, __FUNCSIG__, __FILE__, __LINE__); + } + diskann::cout << "done." << std::endl; +} + +inline void wait_for_keystroke() +{ + int a; + std::cout << "Press any number to continue.." << std::endl; + std::cin >> a; +} +// load_bin functions END + +inline void load_truthset(const std::string &bin_file, uint32_t *&ids, float *&dists, size_t &npts, size_t &dim) +{ + size_t read_blk_size = 64 * 1024 * 1024; + cached_ifstream reader(bin_file, read_blk_size); + diskann::cout << "Reading truthset file " << bin_file.c_str() << " ..." << std::endl; + size_t actual_file_size = reader.get_file_size(); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (unsigned)npts_i32; + dim = (unsigned)dim_i32; + + diskann::cout << "Metadata: #pts = " << npts << ", #dims = " << dim << "... " << std::endl; + + int truthset_type = -1; // 1 means truthset has ids and distances, 2 means + // only ids, -1 is error + size_t expected_file_size_with_dists = 2 * npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_with_dists) + truthset_type = 1; + + size_t expected_file_size_just_ids = npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_just_ids) + truthset_type = 2; + + if (truthset_type == -1) + { + std::stringstream stream; + stream << "Error. File size mismatch. File should have bin format, with " + "npts followed by ngt followed by npts*ngt ids and optionally " + "followed by npts*ngt distance values; actual size: " + << actual_file_size << ", expected: " << expected_file_size_with_dists << " or " + << expected_file_size_just_ids; + diskann::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + ids = new uint32_t[npts * dim]; + reader.read((char *)ids, npts * dim * sizeof(uint32_t)); + + if (truthset_type == 1) + { + dists = new float[npts * dim]; + reader.read((char *)dists, npts * dim * sizeof(float)); + } +} + +inline void prune_truthset_for_range(const std::string &bin_file, float range, + std::vector> &groundtruth, size_t &npts) +{ + size_t read_blk_size = 64 * 1024 * 1024; + cached_ifstream reader(bin_file, read_blk_size); + diskann::cout << "Reading truthset file " << bin_file.c_str() << "... " << std::endl; + size_t actual_file_size = reader.get_file_size(); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (unsigned)npts_i32; + uint64_t dim = (unsigned)dim_i32; + uint32_t *ids; + float *dists; + + diskann::cout << "Metadata: #pts = " << npts << ", #dims = " << dim << "... " << std::endl; + + int truthset_type = -1; // 1 means truthset has ids and distances, 2 means + // only ids, -1 is error + size_t expected_file_size_with_dists = 2 * npts * dim * sizeof(uint32_t) + 2 * sizeof(uint32_t); + + if (actual_file_size == expected_file_size_with_dists) + truthset_type = 1; + + if (truthset_type == -1) + { + std::stringstream stream; + stream << "Error. File size mismatch. File should have bin format, with " + "npts followed by ngt followed by npts*ngt ids and optionally " + "followed by npts*ngt distance values; actual size: " + << actual_file_size << ", expected: " << expected_file_size_with_dists; + diskann::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + + ids = new uint32_t[npts * dim]; + reader.read((char *)ids, npts * dim * sizeof(uint32_t)); + + if (truthset_type == 1) + { + dists = new float[npts * dim]; + reader.read((char *)dists, npts * dim * sizeof(float)); + } + float min_dist = std::numeric_limits::max(); + float max_dist = 0; + groundtruth.resize(npts); + for (uint32_t i = 0; i < npts; i++) + { + groundtruth[i].clear(); + for (uint32_t j = 0; j < dim; j++) + { + if (dists[i * dim + j] <= range) + { + groundtruth[i].emplace_back(ids[i * dim + j]); + } + min_dist = min_dist > dists[i * dim + j] ? dists[i * dim + j] : min_dist; + max_dist = max_dist < dists[i * dim + j] ? dists[i * dim + j] : max_dist; + } + // std::cout<> &groundtruth, + size_t >_num) +{ + size_t read_blk_size = 64 * 1024 * 1024; + cached_ifstream reader(bin_file, read_blk_size); + diskann::cout << "Reading truthset file " << bin_file.c_str() << "... " << std::flush; + size_t actual_file_size = reader.get_file_size(); + + int nptsuint32_t, totaluint32_t; + reader.read((char *)&nptsuint32_t, sizeof(int)); + reader.read((char *)&totaluint32_t, sizeof(int)); + + gt_num = (uint64_t)nptsuint32_t; + uint64_t total_res = (uint64_t)totaluint32_t; + + diskann::cout << "Metadata: #pts = " << gt_num << ", #total_results = " << total_res << "..." << std::endl; + + size_t expected_file_size = 2 * sizeof(uint32_t) + gt_num * sizeof(uint32_t) + total_res * sizeof(uint32_t); + + if (actual_file_size != expected_file_size) + { + std::stringstream stream; + stream << "Error. File size mismatch in range truthset. actual size: " << actual_file_size + << ", expected: " << expected_file_size; + diskann::cout << stream.str(); + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + groundtruth.clear(); + groundtruth.resize(gt_num); + std::vector gt_count(gt_num); + + reader.read((char *)gt_count.data(), sizeof(uint32_t) * gt_num); + + std::vector gt_stats(gt_count); + std::sort(gt_stats.begin(), gt_stats.end()); + + std::cout << "GT count percentiles:" << std::endl; + for (uint32_t p = 0; p < 100; p += 5) + std::cout << "percentile " << p << ": " << gt_stats[static_cast(std::floor((p / 100.0) * gt_num))] + << std::endl; + std::cout << "percentile 100" + << ": " << gt_stats[gt_num - 1] << std::endl; + + for (uint32_t i = 0; i < gt_num; i++) + { + groundtruth[i].clear(); + groundtruth[i].resize(gt_count[i]); + if (gt_count[i] != 0) + reader.read((char *)groundtruth[i].data(), sizeof(uint32_t) * gt_count[i]); + } +} + +#ifdef EXEC_ENV_OLS +template +inline void load_bin(MemoryMappedFiles &files, const std::string &bin_file, std::unique_ptr &data, size_t &npts, + size_t &dim, size_t offset = 0) +{ + T *ptr; + load_bin(files, bin_file, ptr, npts, dim, offset); + data.reset(ptr); +} +#endif + +inline void copy_file(std::string in_file, std::string out_file) +{ + std::ifstream source(in_file, std::ios::binary); + std::ofstream dest(out_file, std::ios::binary); + + std::istreambuf_iterator begin_source(source); + std::istreambuf_iterator end_source; + std::ostreambuf_iterator begin_dest(dest); + std::copy(begin_source, end_source, begin_dest); + + source.close(); + dest.close(); +} + +DISKANN_DLLEXPORT double calculate_recall(unsigned num_queries, unsigned *gold_std, float *gs_dist, unsigned dim_gs, + unsigned *our_results, unsigned dim_or, unsigned recall_at); + +DISKANN_DLLEXPORT double calculate_recall(unsigned num_queries, unsigned *gold_std, float *gs_dist, unsigned dim_gs, + unsigned *our_results, unsigned dim_or, unsigned recall_at, + const tsl::robin_set &active_tags); + +DISKANN_DLLEXPORT double calculate_range_search_recall(unsigned num_queries, + std::vector> &groundtruth, + std::vector> &our_results); + +template +inline void load_bin(const std::string &bin_file, std::unique_ptr &data, size_t &npts, size_t &dim, + size_t offset = 0) +{ + T *ptr; + load_bin(bin_file, ptr, npts, dim, offset); + data.reset(ptr); +} + +inline void open_file_to_write(std::ofstream &writer, const std::string &filename) +{ + writer.exceptions(std::ofstream::failbit | std::ofstream::badbit); + if (!file_exists(filename)) + writer.open(filename, std::ios::binary | std::ios::out); + else + writer.open(filename, std::ios::binary | std::ios::in | std::ios::out); + + if (writer.fail()) + { + char buff[1024]; +#ifdef _WINDOWS + auto ret = std::to_string(strerror_s(buff, 1024, errno)); +#elif __APPLE__ + auto ret = std::to_string(strerror_r(errno, buff, 1024)); +#else + auto ret = std::string(strerror_r(errno, buff, 1024)); +#endif + + std::string error_message = + std::string("Failed to open file") + filename + " for write because " + buff + ", ret=" + ret; + diskann::cerr << error_message << std::endl; + throw diskann::ANNException(error_message, -1); + } +} + +template +inline size_t save_bin(const std::string &filename, T *data, size_t npts, size_t ndims, size_t offset = 0) +{ + std::ofstream writer; + open_file_to_write(writer, filename); + + diskann::cout << "Writing bin: " << filename.c_str() << std::endl; + writer.seekp(offset, writer.beg); + int npts_i32 = (int)npts, ndims_i32 = (int)ndims; + size_t bytes_written = npts * ndims * sizeof(T) + 2 * sizeof(uint32_t); + writer.write((char *)&npts_i32, sizeof(int)); + writer.write((char *)&ndims_i32, sizeof(int)); + diskann::cout << "bin: #pts = " << npts << ", #dims = " << ndims << ", size = " << bytes_written << "B" + << std::endl; + + writer.write((char *)data, npts * ndims * sizeof(T)); + writer.close(); + diskann::cout << "Finished writing bin." << std::endl; + return bytes_written; +} + +inline void print_progress(double percentage) +{ + int val = (int)(percentage * 100); + int lpad = (int)(percentage * PBWIDTH); + int rpad = PBWIDTH - lpad; + printf("\r%3d%% [%.*s%*s]", val, lpad, PBSTR, rpad, ""); + fflush(stdout); +} + +// load_aligned_bin functions START + +template +inline void load_aligned_bin_impl(std::basic_istream &reader, size_t actual_file_size, T *&data, size_t &npts, + size_t &dim, size_t &rounded_dim) +{ + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (unsigned)npts_i32; + dim = (unsigned)dim_i32; + + size_t expected_actual_file_size = npts * dim * sizeof(T) + 2 * sizeof(uint32_t); + if (actual_file_size != expected_actual_file_size) + { + std::stringstream stream; + stream << "Error. File size mismatch. Actual size is " << actual_file_size << " while expected size is " + << expected_actual_file_size << " npts = " << npts << " dim = " << dim << " size of = " << sizeof(T) + << std::endl; + diskann::cout << stream.str() << std::endl; + throw diskann::ANNException(stream.str(), -1, __FUNCSIG__, __FILE__, __LINE__); + } + rounded_dim = ROUND_UP(dim, 8); + diskann::cout << "Metadata: #pts = " << npts << ", #dims = " << dim << ", aligned_dim = " << rounded_dim << "... " + << std::flush; + size_t allocSize = npts * rounded_dim * sizeof(T); + diskann::cout << "allocating aligned memory of " << allocSize << " bytes... " << std::flush; + alloc_aligned(((void **)&data), allocSize, 8 * sizeof(T)); + diskann::cout << "done. Copying data to mem_aligned buffer..." << std::flush; + + for (size_t i = 0; i < npts; i++) + { + reader.read((char *)(data + i * rounded_dim), dim * sizeof(T)); + memset(data + i * rounded_dim + dim, 0, (rounded_dim - dim) * sizeof(T)); + } + diskann::cout << " done." << std::endl; +} + +#ifdef EXEC_ENV_OLS +template +inline void load_aligned_bin(MemoryMappedFiles &files, const std::string &bin_file, T *&data, size_t &npts, size_t &dim, + size_t &rounded_dim) +{ + try + { + diskann::cout << "Opening bin file " << bin_file << " ..." << std::flush; + FileContent fc = files.getContent(bin_file); + ContentBuf buf((char *)fc._content, fc._size); + std::basic_istream reader(&buf); + + size_t actual_file_size = fc._size; + load_aligned_bin_impl(reader, actual_file_size, data, npts, dim, rounded_dim); + } + catch (std::system_error &e) + { + throw FileException(bin_file, e, __FUNCSIG__, __FILE__, __LINE__); + } +} +#endif + +template +inline void load_aligned_bin(const std::string &bin_file, T *&data, size_t &npts, size_t &dim, size_t &rounded_dim) +{ + std::ifstream reader; + reader.exceptions(std::ifstream::failbit | std::ifstream::badbit); + + try + { + diskann::cout << "Reading (with alignment) bin file " << bin_file << " ..." << std::flush; + reader.open(bin_file, std::ios::binary | std::ios::ate); + + uint64_t fsize = reader.tellg(); + reader.seekg(0); + load_aligned_bin_impl(reader, fsize, data, npts, dim, rounded_dim); + } + catch (std::system_error &e) + { + throw FileException(bin_file, e, __FUNCSIG__, __FILE__, __LINE__); + } +} + +template +void convert_types(const InType *srcmat, OutType *destmat, size_t npts, size_t dim) +{ +#pragma omp parallel for schedule(static, 65536) + for (int64_t i = 0; i < (int64_t)npts; i++) + { + for (uint64_t j = 0; j < dim; j++) + { + destmat[i * dim + j] = (OutType)srcmat[i * dim + j]; + } + } +} + +// this function will take in_file of n*d dimensions and save the output as a +// floating point matrix +// with n*(d+1) dimensions. All vectors are scaled by a large value M so that +// the norms are <=1 and the final coordinate is set so that the resulting +// norm (in d+1 coordinates) is equal to 1 this is a classical transformation +// from MIPS to L2 search from "On Symmetric and Asymmetric LSHs for Inner +// Product Search" by Neyshabur and Srebro + +template float prepare_base_for_inner_products(const std::string in_file, const std::string out_file) +{ + std::cout << "Pre-processing base file by adding extra coordinate" << std::endl; + std::ifstream in_reader(in_file.c_str(), std::ios::binary); + std::ofstream out_writer(out_file.c_str(), std::ios::binary); + uint64_t npts, in_dims, out_dims; + float max_norm = 0; + + uint32_t npts32, dims32; + in_reader.read((char *)&npts32, sizeof(uint32_t)); + in_reader.read((char *)&dims32, sizeof(uint32_t)); + + npts = npts32; + in_dims = dims32; + out_dims = in_dims + 1; + uint32_t outdims32 = (uint32_t)out_dims; + + out_writer.write((char *)&npts32, sizeof(uint32_t)); + out_writer.write((char *)&outdims32, sizeof(uint32_t)); + + size_t BLOCK_SIZE = 100000; + size_t block_size = npts <= BLOCK_SIZE ? npts : BLOCK_SIZE; + std::unique_ptr in_block_data = std::make_unique(block_size * in_dims); + std::unique_ptr out_block_data = std::make_unique(block_size * out_dims); + + std::memset(out_block_data.get(), 0, sizeof(float) * block_size * out_dims); + uint64_t num_blocks = DIV_ROUND_UP(npts, block_size); + + std::vector norms(npts, 0); + + for (uint64_t b = 0; b < num_blocks; b++) + { + uint64_t start_id = b * block_size; + uint64_t end_id = (b + 1) * block_size < npts ? (b + 1) * block_size : npts; + uint64_t block_pts = end_id - start_id; + in_reader.read((char *)in_block_data.get(), block_pts * in_dims * sizeof(T)); + for (uint64_t p = 0; p < block_pts; p++) + { + for (uint64_t j = 0; j < in_dims; j++) + { + norms[start_id + p] += in_block_data[p * in_dims + j] * in_block_data[p * in_dims + j]; + } + max_norm = max_norm > norms[start_id + p] ? max_norm : norms[start_id + p]; + } + } + + max_norm = std::sqrt(max_norm); + + in_reader.seekg(2 * sizeof(uint32_t), std::ios::beg); + for (uint64_t b = 0; b < num_blocks; b++) + { + uint64_t start_id = b * block_size; + uint64_t end_id = (b + 1) * block_size < npts ? (b + 1) * block_size : npts; + uint64_t block_pts = end_id - start_id; + in_reader.read((char *)in_block_data.get(), block_pts * in_dims * sizeof(T)); + for (uint64_t p = 0; p < block_pts; p++) + { + for (uint64_t j = 0; j < in_dims; j++) + { + out_block_data[p * out_dims + j] = in_block_data[p * in_dims + j] / max_norm; + } + float res = 1 - (norms[start_id + p] / (max_norm * max_norm)); + res = res <= 0 ? 0 : std::sqrt(res); + out_block_data[p * out_dims + out_dims - 1] = res; + } + out_writer.write((char *)out_block_data.get(), block_pts * out_dims * sizeof(float)); + } + out_writer.close(); + return max_norm; +} + +// plain saves data as npts X ndims array into filename +template void save_Tvecs(const char *filename, T *data, size_t npts, size_t ndims) +{ + std::string fname(filename); + + // create cached ofstream with 64MB cache + cached_ofstream writer(fname, 64 * 1048576); + + unsigned dims_u32 = (unsigned)ndims; + + // start writing + for (size_t i = 0; i < npts; i++) + { + // write dims in u32 + writer.write((char *)&dims_u32, sizeof(unsigned)); + + // get cur point in data + T *cur_pt = data + i * ndims; + writer.write((char *)cur_pt, ndims * sizeof(T)); + } +} +template +inline size_t save_data_in_base_dimensions(const std::string &filename, T *data, size_t npts, size_t ndims, + size_t aligned_dim, size_t offset = 0) +{ + std::ofstream writer; //(filename, std::ios::binary | std::ios::out); + open_file_to_write(writer, filename); + int npts_i32 = (int)npts, ndims_i32 = (int)ndims; + size_t bytes_written = 2 * sizeof(uint32_t) + npts * ndims * sizeof(T); + writer.seekp(offset, writer.beg); + writer.write((char *)&npts_i32, sizeof(int)); + writer.write((char *)&ndims_i32, sizeof(int)); + for (size_t i = 0; i < npts; i++) + { + writer.write((char *)(data + i * aligned_dim), ndims * sizeof(T)); + } + writer.close(); + return bytes_written; +} + +template +inline void copy_aligned_data_from_file(const char *bin_file, T *&data, size_t &npts, size_t &dim, + const size_t &rounded_dim, size_t offset = 0) +{ + if (data == nullptr) + { + diskann::cerr << "Memory was not allocated for " << data << " before calling the load function. Exiting..." + << std::endl; + throw diskann::ANNException("Null pointer passed to copy_aligned_data_from_file function", -1, __FUNCSIG__, + __FILE__, __LINE__); + } + std::ifstream reader; + reader.exceptions(std::ios::badbit | std::ios::failbit); + reader.open(bin_file, std::ios::binary); + reader.seekg(offset, reader.beg); + + int npts_i32, dim_i32; + reader.read((char *)&npts_i32, sizeof(int)); + reader.read((char *)&dim_i32, sizeof(int)); + npts = (unsigned)npts_i32; + dim = (unsigned)dim_i32; + + for (size_t i = 0; i < npts; i++) + { + reader.read((char *)(data + i * rounded_dim), dim * sizeof(T)); + memset(data + i * rounded_dim + dim, 0, (rounded_dim - dim) * sizeof(T)); + } +} + +// NOTE :: good efficiency when total_vec_size is integral multiple of 64 +inline void prefetch_vector(const char *vec, size_t vecsize) +{ + size_t max_prefetch_size = (vecsize / 64) * 64; + for (size_t d = 0; d < max_prefetch_size; d += 64) + _mm_prefetch((const char *)vec + d, _MM_HINT_T0); +} + +// NOTE :: good efficiency when total_vec_size is integral multiple of 64 +inline void prefetch_vector_l2(const char *vec, size_t vecsize) +{ + size_t max_prefetch_size = (vecsize / 64) * 64; + for (size_t d = 0; d < max_prefetch_size; d += 64) + _mm_prefetch((const char *)vec + d, _MM_HINT_T1); +} + +// NOTE: Implementation in utils.cpp. +void block_convert(std::ofstream &writr, std::ifstream &readr, float *read_buf, uint64_t npts, uint64_t ndims); + +DISKANN_DLLEXPORT void normalize_data_file(const std::string &inFileName, const std::string &outFileName); + +inline std::string get_tag_string(std::uint64_t tag) +{ + return std::to_string(tag); +} + +inline std::string get_tag_string(const tag_uint128 &tag) +{ + std::string str = std::to_string(tag._data2) + "_" + std::to_string(tag._data1); + return str; +} + +}; // namespace diskann + +struct PivotContainer +{ + PivotContainer() = default; + + PivotContainer(size_t pivo_id, float pivo_dist) : piv_id{pivo_id}, piv_dist{pivo_dist} + { + } + + bool operator<(const PivotContainer &p) const + { + return p.piv_dist < piv_dist; + } + + bool operator>(const PivotContainer &p) const + { + return p.piv_dist > piv_dist; + } + + size_t piv_id; + float piv_dist; +}; + +inline bool validate_index_file_size(std::ifstream &in) +{ + if (!in.is_open()) + throw diskann::ANNException("Index file size check called on unopened file stream", -1, __FUNCSIG__, __FILE__, + __LINE__); + in.seekg(0, in.end); + size_t actual_file_size = in.tellg(); + in.seekg(0, in.beg); + size_t expected_file_size; + in.read((char *)&expected_file_size, sizeof(uint64_t)); + in.seekg(0, in.beg); + if (actual_file_size != expected_file_size) + { + diskann::cerr << "Index file size error. Expected size (metadata): " << expected_file_size + << ", actual file size : " << actual_file_size << "." << std::endl; + return false; + } + return true; +} + +template inline float get_norm(T *arr, const size_t dim) +{ + float sum = 0.0f; + for (uint32_t i = 0; i < dim; i++) + { + sum += arr[i] * arr[i]; + } + return sqrt(sum); +} + +// This function is valid only for float data type. +template inline void normalize(T *arr, const size_t dim) +{ + float norm = get_norm(arr, dim); + for (uint32_t i = 0; i < dim; i++) + { + arr[i] = (T)(arr[i] / norm); + } +} + +inline std::vector read_file_to_vector_of_strings(const std::string &filename, bool unique = false) +{ + std::vector result; + std::set elementSet; + if (filename != "") + { + std::ifstream file(filename); + if (file.fail()) + { + throw diskann::ANNException(std::string("Failed to open file ") + filename, -1); + } + std::string line; + while (std::getline(file, line)) + { + if (line.empty()) + { + break; + } + if (line.find(',') != std::string::npos) + { + std::cerr << "Every query must have exactly one filter" << std::endl; + exit(-1); + } + if (!line.empty() && (line.back() == '\r' || line.back() == '\n')) + { + line.erase(line.size() - 1); + } + if (!elementSet.count(line)) + { + result.push_back(line); + } + if (unique) + { + elementSet.insert(line); + } + } + file.close(); + } + else + { + throw diskann::ANNException(std::string("Failed to open file. filename can not be blank"), -1); + } + return result; +} + +inline void clean_up_artifacts(tsl::robin_set paths_to_clean, tsl::robin_set path_suffixes) +{ + try + { + for (const auto &path : paths_to_clean) + { + for (const auto &suffix : path_suffixes) + { + std::string curr_path_to_clean(path + "_" + suffix); + if (std::remove(curr_path_to_clean.c_str()) != 0) + diskann::cout << "Warning: Unable to remove file :" << curr_path_to_clean << std::endl; + } + } + diskann::cout << "Cleaned all artifacts" << std::endl; + } + catch (const std::exception &e) + { + diskann::cout << "Warning: Unable to clean all artifacts " << e.what() << std::endl; + } +} + +template inline const char *diskann_type_to_name() = delete; +template <> inline const char *diskann_type_to_name() +{ + return "float"; +} +template <> inline const char *diskann_type_to_name() +{ + return "uint8"; +} +template <> inline const char *diskann_type_to_name() +{ + return "int8"; +} +template <> inline const char *diskann_type_to_name() +{ + return "uint16"; +} +template <> inline const char *diskann_type_to_name() +{ + return "int16"; +} +template <> inline const char *diskann_type_to_name() +{ + return "uint32"; +} +template <> inline const char *diskann_type_to_name() +{ + return "int32"; +} +template <> inline const char *diskann_type_to_name() +{ + return "uint64"; +} +template <> inline const char *diskann_type_to_name() +{ + return "int64"; +} + +#ifdef _WINDOWS +#include +#include + +extern bool AvxSupportedCPU; +extern bool Avx2SupportedCPU; + +inline size_t getMemoryUsage() +{ + PROCESS_MEMORY_COUNTERS_EX pmc; + GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS *)&pmc, sizeof(pmc)); + return pmc.PrivateUsage; +} + +inline std::string getWindowsErrorMessage(DWORD lastError) +{ + char *errorText; + FormatMessageA( + // use system message tables to retrieve error text + FORMAT_MESSAGE_FROM_SYSTEM + // allocate buffer on local heap for error text + | FORMAT_MESSAGE_ALLOCATE_BUFFER + // Important! will fail otherwise, since we're not + // (and CANNOT) pass insertion parameters + | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, // unused with FORMAT_MESSAGE_FROM_SYSTEM + lastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPSTR)&errorText, // output + 0, // minimum size for output buffer + NULL); // arguments - see note + + return errorText != nullptr ? std::string(errorText) : std::string(); +} + +inline void printProcessMemory(const char *message) +{ + PROCESS_MEMORY_COUNTERS counters; + HANDLE h = GetCurrentProcess(); + GetProcessMemoryInfo(h, &counters, sizeof(counters)); + diskann::cout << message + << " [Peaking Working Set size: " << counters.PeakWorkingSetSize * 1.0 / (1024.0 * 1024 * 1024) + << "GB Working set size: " << counters.WorkingSetSize * 1.0 / (1024.0 * 1024 * 1024) + << "GB Private bytes " << counters.PagefileUsage * 1.0 / (1024 * 1024 * 1024) << "GB]" << std::endl; +} +#else + +// need to check and change this +inline bool avx2Supported() +{ + return true; +} +inline void printProcessMemory(const char *) +{ +} + +inline size_t getMemoryUsage() +{ // for non-windows, we have not implemented this function + return 0; +} + +#endif + +extern bool AvxSupportedCPU; +extern bool Avx2SupportedCPU; diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/windows_aligned_file_reader.h b/packages/leann-backend-diskann/third_party/DiskANN/include/windows_aligned_file_reader.h new file mode 100644 index 0000000..0d9a317 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/windows_aligned_file_reader.h @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once +#ifdef _WINDOWS +#ifndef USE_BING_INFRA +#include +#include +#include +#include + +#include +#include +#include +#include "aligned_file_reader.h" +#include "tsl/robin_map.h" +#include "utils.h" +#include "windows_customizations.h" + +class WindowsAlignedFileReader : public AlignedFileReader +{ + private: +#ifdef UNICODE + std::wstring m_filename; +#else + std::string m_filename; +#endif + + protected: + // virtual IOContext createContext(); + + public: + DISKANN_DLLEXPORT WindowsAlignedFileReader(){}; + DISKANN_DLLEXPORT virtual ~WindowsAlignedFileReader(){}; + + // Open & close ops + // Blocking calls + DISKANN_DLLEXPORT virtual void open(const std::string &fname) override; + DISKANN_DLLEXPORT virtual void close() override; + + DISKANN_DLLEXPORT virtual void register_thread() override; + DISKANN_DLLEXPORT virtual void deregister_thread() override + { + // TODO: Needs implementation. + } + DISKANN_DLLEXPORT virtual void deregister_all_threads() override + { + // TODO: Needs implementation. + } + DISKANN_DLLEXPORT virtual IOContext &get_ctx() override; + + // process batch of aligned requests in parallel + // NOTE :: blocking call for the calling thread, but can thread-safe + DISKANN_DLLEXPORT virtual void read(std::vector &read_reqs, IOContext &ctx, bool async) override; +}; +#endif // USE_BING_INFRA +#endif //_WINDOWS diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/windows_customizations.h b/packages/leann-backend-diskann/third_party/DiskANN/include/windows_customizations.h new file mode 100644 index 0000000..e6c5846 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/windows_customizations.h @@ -0,0 +1,16 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#ifdef _WINDOWS + +#ifdef _WINDLL +#define DISKANN_DLLEXPORT __declspec(dllexport) +#else +#define DISKANN_DLLEXPORT __declspec(dllimport) +#endif + +#else +#define DISKANN_DLLEXPORT +#endif diff --git a/packages/leann-backend-diskann/third_party/DiskANN/include/windows_slim_lock.h b/packages/leann-backend-diskann/third_party/DiskANN/include/windows_slim_lock.h new file mode 100644 index 0000000..7fc09b8 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/include/windows_slim_lock.h @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. +#pragma once + +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include "Windows.h" + +namespace diskann +{ +// A thin C++ wrapper around Windows exclusive functionality of Windows +// SlimReaderWriterLock. +// +// The SlimReaderWriterLock is simpler/more lightweight than std::mutex +// (8 bytes vs 80 bytes), which is useful in the scenario where DiskANN has +// one lock per vector in the index. It does not support recursive locking and +// requires Windows Vista or later. +// +// Full documentation can be found at. +// https://msdn.microsoft.com/en-us/library/windows/desktop/aa904937(v=vs.85).aspx +class windows_exclusive_slim_lock +{ + public: + windows_exclusive_slim_lock() : _lock(SRWLOCK_INIT) + { + } + + // The lock is non-copyable. This also disables move constructor/operator=. + windows_exclusive_slim_lock(const windows_exclusive_slim_lock &) = delete; + windows_exclusive_slim_lock &operator=(const windows_exclusive_slim_lock &) = delete; + + void lock() + { + return AcquireSRWLockExclusive(&_lock); + } + + bool try_lock() + { + return TryAcquireSRWLockExclusive(&_lock) != FALSE; + } + + void unlock() + { + return ReleaseSRWLockExclusive(&_lock); + } + + private: + SRWLOCK _lock; +}; + +// An exclusive lock over a SlimReaderWriterLock. +class windows_exclusive_slim_lock_guard +{ + public: + windows_exclusive_slim_lock_guard(windows_exclusive_slim_lock &p_lock) : _lock(p_lock) + { + _lock.lock(); + } + + // The lock is non-copyable. This also disables move constructor/operator=. + windows_exclusive_slim_lock_guard(const windows_exclusive_slim_lock_guard &) = delete; + windows_exclusive_slim_lock_guard &operator=(const windows_exclusive_slim_lock_guard &) = delete; + + ~windows_exclusive_slim_lock_guard() + { + _lock.unlock(); + } + + private: + windows_exclusive_slim_lock &_lock; +}; +} // namespace diskann diff --git a/packages/leann-backend-diskann/third_party/DiskANN/pyproject.toml b/packages/leann-backend-diskann/third_party/DiskANN/pyproject.toml new file mode 100644 index 0000000..3871c71 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/pyproject.toml @@ -0,0 +1,58 @@ +[build-system] +requires = [ + "setuptools>=59.6", + "pybind11>=2.10.0", + "cmake>=3.22", + "numpy==1.25", # this is important to keep fixed. It also means anyone using something other than 1.25 won't be able to use this library + "wheel", + "ninja" +] +build-backend = "setuptools.build_meta" + +[project] +name = "diskannpy" +version = "0.7.1" + +description = "DiskANN Python extension module" +readme = "python/README.md" +requires-python = ">=3.9" +license = {text = "MIT License"} +dependencies = [ + "numpy==1.25" +] +authors = [ + {name = "Harsha Vardhan Simhadri", email = "harshasi@microsoft.com"}, + {name = "Dax Pryce", email = "daxpryce@microsoft.com"} +] + +[project.optional-dependencies] +dev = ["black", "isort", "mypy"] + +[tool.setuptools] +package-dir = {"" = "python/src"} + +[tool.isort] +profile = "black" +multi_line_output = 3 + +[tool.mypy] +plugins = "numpy.typing.mypy_plugin" + +[tool.cibuildwheel] +manylinux-x86_64-image = "manylinux_2_28" +test-requires = ["scikit-learn~=1.2"] +build-frontend = "build" +skip = ["pp*", "*-win32", "*-manylinux_i686", "*-musllinux*"] +test-command = "python -m unittest discover {project}/python/tests" + +[tool.cibuildwheel.linux] +before-build = [ + "rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux", + "dnf makecache --refresh", + "dnf upgrade -y almalinux-release", + "dnf install -y epel-release", + "dnf config-manager -y --add-repo https://yum.repos.intel.com/mkl/setup/intel-mkl.repo", + "rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB", + "dnf makecache --refresh -y", + "dnf install -y wget make cmake gcc-c++ libaio-devel gperftools-libs libunwind-devel clang-tools-extra boost-devel boost-program-options intel-mkl-2020.4-912" +] diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/CMakeLists.txt b/packages/leann-backend-diskann/third_party/DiskANN/python/CMakeLists.txt new file mode 100644 index 0000000..66a5ba3 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/CMakeLists.txt @@ -0,0 +1,82 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +cmake_minimum_required(VERSION 3.18...3.22) + +set(CMAKE_CXX_STANDARD 17) + +if (PYTHON_EXECUTABLE) + set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE}) +endif() + +find_package(Python3 COMPONENTS Interpreter Development.Module NumPy REQUIRED) + +execute_process(COMMAND ${Python3_EXECUTABLE} -c "import pybind11; print(pybind11.get_cmake_dir())" + OUTPUT_VARIABLE _tmp_dir + OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ECHO STDOUT) +list(APPEND CMAKE_PREFIX_PATH "${_tmp_dir}") + +# Now we can find pybind11 +find_package(pybind11 CONFIG REQUIRED) + +execute_process(COMMAND ${Python3_EXECUTABLE} -c "import numpy; print(numpy.get_include())" + OUTPUT_VARIABLE _numpy_include + OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ECHO STDOUT) + +# pybind11_add_module(diskannpy MODULE src/diskann_bindings.cpp) +# the following is fairly synonymous with pybind11_add_module, but we need more target_link_libraries +# see https://pybind11.readthedocs.io/en/latest/compiling.html#advanced-interface-library-targets for more details +add_library(_diskannpy MODULE + src/module.cpp + src/builder.cpp + src/dynamic_memory_index.cpp + src/static_memory_index.cpp + src/static_disk_index.cpp +) + +target_include_directories(_diskannpy AFTER PRIVATE include) + +if (MSVC) + target_compile_options(_diskannpy PRIVATE /U_WINDLL) +endif() + +target_link_libraries( + _diskannpy + PRIVATE + pybind11::module + pybind11::lto + pybind11::windows_extras + ${PROJECT_NAME} + ${DISKANN_TOOLS_TCMALLOC_LINK_OPTIONS} + ${DISKANN_ASYNC_LIB} +) + +pybind11_extension(_diskannpy) +if(NOT MSVC AND NOT ${CMAKE_BUILD_TYPE} MATCHES Debug|RelWithDebInfo) + # Strip unnecessary sections of the binary on Linux/macOS + pybind11_strip(_diskannpy) +endif() + +set_target_properties(_diskannpy PROPERTIES CXX_VISIBILITY_PRESET "hidden" + CUDA_VISIBILITY_PRESET "hidden") + +# generally, the VERSION_INFO flag is set by pyproject.toml, by way of setup.py. +# attempts to locate the version within CMake fail because the version has to be available +# to pyproject.toml for the sdist to work after we build it. + +if(NOT VERSION_INFO) + set(VERSION_INFO "0.0.0dev") +endif() +target_compile_definitions(_diskannpy PRIVATE VERSION_INFO="${VERSION_INFO}") + +# Add a post-build command to automatically copy the compiled Python module +if(UPDATE_EDITABLE_INSTALL) +add_custom_command( +TARGET _diskannpy +POST_BUILD +COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/_diskannpy.cpython-*.so + ${CMAKE_SOURCE_DIR}/python/src/ +COMMENT "Copying Python module to python/src directory" +) +endif() \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/README.md b/packages/leann-backend-diskann/third_party/DiskANN/python/README.md new file mode 100644 index 0000000..a0c9475 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/README.md @@ -0,0 +1,55 @@ +# diskannpy + +[![DiskANN Paper](https://img.shields.io/badge/Paper-NeurIPS%3A_DiskANN-blue)](https://papers.nips.cc/paper/9527-rand-nsg-fast-accurate-billion-point-nearest-neighbor-search-on-a-single-node.pdf) +[![DiskANN Paper](https://img.shields.io/badge/Paper-Arxiv%3A_Fresh--DiskANN-blue)](https://arxiv.org/abs/2105.09613) +[![DiskANN Paper](https://img.shields.io/badge/Paper-Filtered--DiskANN-blue)](https://harsha-simhadri.org/pubs/Filtered-DiskANN23.pdf) +[![DiskANN Main](https://github.com/microsoft/DiskANN/actions/workflows/push-test.yml/badge.svg?branch=main)](https://github.com/microsoft/DiskANN/actions/workflows/push-test.yml) +[![PyPI version](https://img.shields.io/pypi/v/diskannpy.svg)](https://pypi.org/project/diskannpy/) +[![Downloads shield](https://pepy.tech/badge/diskannpy)](https://pepy.tech/project/diskannpy) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +## Installation +Packages published to PyPI will always be built using the latest numpy major.minor release (at this time, 1.25). + +Conda distributions for versions 1.19-1.25 will be completed as a future effort. In the meantime, feel free to +clone this repository and build it yourself. + +## Local Build Instructions +Please see the [Project README](https://github.com/microsoft/DiskANN/blob/main/README.md) for system dependencies and requirements. + +After ensuring you've followed the directions to build the project library and executables, you will be ready to also +build `diskannpy` with these additional instructions. + +### Changing Numpy Version +In the root folder of DiskANN, there is a file `pyproject.toml`. You will need to edit the version of numpy in both the +`[build-system.requires]` section, as well as the `[project.dependencies]` section. The version numbers must match. + +#### Linux +```bash +python3.11 -m venv venv # versions from python3.9 and up should work +source venv/bin/activate +pip install build +python -m build +``` + +#### Windows +```powershell +py -3.11 -m venv venv # versions from python3.9 and up should work +venv\Scripts\Activate.ps1 +pip install build +python -m build +``` + +The built wheel will be placed in the `dist` directory in your DiskANN root. Install it using `pip install dist/.whl` + +## Citations +Please cite this software in your work as: +``` +@misc{diskann-github, + author = {Simhadri, Harsha Vardhan and Krishnaswamy, Ravishankar and Srinivasa, Gopal and Subramanya, Suhas Jayaram and Antonijevic, Andrija and Pryce, Dax and Kaczynski, David and Williams, Shane and Gollapudi, Siddarth and Sivashankar, Varun and Karia, Neel and Singh, Aditi and Jaiswal, Shikhar and Mahapatro, Neelam and Adams, Philip and Tower, Bryan and Patel, Yash}}, + title = {{DiskANN: Graph-structured Indices for Scalable, Fast, Fresh and Filtered Approximate Nearest Neighbor Search}}, + url = {https://github.com/Microsoft/DiskANN}, + version = {0.6.1}, + year = {2023} +} +``` diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/apps/cli/__main__.py b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/cli/__main__.py new file mode 100644 index 0000000..d2c9990 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/cli/__main__.py @@ -0,0 +1,152 @@ +import diskannpy as dap +import numpy as np +import numpy.typing as npt + +import fire + +from contextlib import contextmanager +from time import perf_counter + +from typing import Tuple + + +def _basic_setup( + dtype: str, + query_vectors_file: str +) -> Tuple[dap.VectorDType, npt.NDArray[dap.VectorDType]]: + _dtype = dap.valid_dtype(dtype) + vectors_to_query = dap.vectors_from_binary(query_vectors_file, dtype=_dtype) + return _dtype, vectors_to_query + + +def dynamic( + dtype: str, + index_vectors_file: str, + query_vectors_file: str, + build_complexity: int, + graph_degree: int, + K: int, + search_complexity: int, + num_insert_threads: int, + num_search_threads: int, + gt_file: str = "", +): + _dtype, vectors_to_query = _basic_setup(dtype, query_vectors_file) + vectors_to_index = dap.vectors_from_binary(index_vectors_file, dtype=_dtype) + + npts, ndims = vectors_to_index.shape + index = dap.DynamicMemoryIndex( + "l2", _dtype, ndims, npts, build_complexity, graph_degree + ) + + tags = np.arange(1, npts+1, dtype=np.uintc) + timer = Timer() + + with timer.time("batch insert"): + index.batch_insert(vectors_to_index, tags, num_insert_threads) + + delete_tags = np.random.choice( + np.array(range(1, npts + 1, 1), dtype=np.uintc), + size=int(0.5 * npts), + replace=False + ) + with timer.time("mark deletion"): + for tag in delete_tags: + index.mark_deleted(tag) + + with timer.time("consolidation"): + index.consolidate_delete() + + deleted_data = vectors_to_index[delete_tags - 1, :] + + with timer.time("re-insertion"): + index.batch_insert(deleted_data, delete_tags, num_insert_threads) + + with timer.time("batch searched"): + tags, dists = index.batch_search(vectors_to_query, K, search_complexity, num_search_threads) + + # res_ids = tags - 1 + # if gt_file != "": + # recall = utils.calculate_recall_from_gt_file(K, res_ids, gt_file) + # print(f"recall@{K} is {recall}") + +def static( + dtype: str, + index_directory: str, + index_vectors_file: str, + query_vectors_file: str, + build_complexity: int, + graph_degree: int, + K: int, + search_complexity: int, + num_threads: int, + gt_file: str = "", + index_prefix: str = "ann" +): + _dtype, vectors_to_query = _basic_setup(dtype, query_vectors_file) + timer = Timer() + with timer.time("build static index"): + # build index + dap.build_memory_index( + data=index_vectors_file, + metric="l2", + vector_dtype=_dtype, + index_directory=index_directory, + complexity=build_complexity, + graph_degree=graph_degree, + num_threads=num_threads, + index_prefix=index_prefix, + alpha=1.2, + use_pq_build=False, + num_pq_bytes=8, + use_opq=False, + ) + + with timer.time("load static index"): + # ready search object + index = dap.StaticMemoryIndex( + metric="l2", + vector_dtype=_dtype, + data_path=index_vectors_file, + index_directory=index_directory, + num_threads=num_threads, # this can be different at search time if you would like + initial_search_complexity=search_complexity, + index_prefix=index_prefix + ) + + ids, dists = index.batch_search(vectors_to_query, K, search_complexity, num_threads) + + # if gt_file != "": + # recall = utils.calculate_recall_from_gt_file(K, ids, gt_file) + # print(f"recall@{K} is {recall}") + +def dynamic_clustered(): + pass + +def generate_clusters(): + pass + + +class Timer: + def __init__(self): + self._start = -1 + + @contextmanager + def time(self, message: str): + start = perf_counter() + if self._start == -1: + self._start = start + yield + now = perf_counter() + print(f"Operation {message} completed in {(now - start):.3f}s, total: {(now - self._start):.3f}s") + + + + +if __name__ == "__main__": + fire.Fire({ + "in-mem-dynamic": dynamic, + "in-mem-static": static, + "in-mem-dynamic-clustered": dynamic_clustered, + "generate-clusters": generate_clusters + }, name="cli") diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/apps/cluster.py b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/cluster.py new file mode 100644 index 0000000..27a34bb --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/cluster.py @@ -0,0 +1,28 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import argparse +import utils + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + prog="cluster", description="kmeans cluster points in a file" + ) + + parser.add_argument("-d", "--data_type", required=True) + parser.add_argument("-i", "--indexdata_file", required=True) + parser.add_argument("-k", "--num_clusters", type=int, required=True) + args = parser.parse_args() + + npts, ndims = get_bin_metadata(indexdata_file) + + data = utils.bin_to_numpy(args.data_type, args.indexdata_file) + + offsets, permutation = utils.cluster_and_permute( + args.data_type, npts, ndims, data, args.num_clusters + ) + + permuted_data = data[permutation] + + utils.numpy_to_bin(permuted_data, args.indexdata_file + ".cluster") diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-dynamic.py b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-dynamic.py new file mode 100644 index 0000000..f97e131 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-dynamic.py @@ -0,0 +1,161 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import argparse + +import diskannpy +import numpy as np +import utils + +def insert_and_search( + dtype_str, + indexdata_file, + querydata_file, + Lb, + graph_degree, + K, + Ls, + num_insert_threads, + num_search_threads, + gt_file, +) -> dict[str, float]: + """ + + :param dtype_str: + :param indexdata_file: + :param querydata_file: + :param Lb: + :param graph_degree: + :param K: + :param Ls: + :param num_insert_threads: + :param num_search_threads: + :param gt_file: + :return: Dictionary of timings. Key is the event and value is the number of seconds the event took + """ + timer_results: dict[str, float] = {} + + method_timer: utils.Timer = utils.Timer() + + npts, ndims = utils.get_bin_metadata(indexdata_file) + + if dtype_str == "float": + dtype = np.float32 + elif dtype_str == "int8": + dtype = np.int8 + elif dtype_str == "uint8": + dtype = np.uint8 + else: + raise ValueError("data_type must be float, int8 or uint8") + + index = diskannpy.DynamicMemoryIndex( + distance_metric="l2", + vector_dtype=dtype, + dimensions=ndims, + max_vectors=npts, + complexity=Lb, + graph_degree=graph_degree + ) + queries = diskannpy.vectors_from_file(querydata_file, dtype) + data = diskannpy.vectors_from_file(indexdata_file, dtype) + + tags = np.zeros(npts, dtype=np.uintc) + timer = utils.Timer() + for i in range(npts): + tags[i] = i + 1 + index.batch_insert(data, tags, num_insert_threads) + compute_seconds = timer.elapsed() + print('batch_insert complete in', compute_seconds, 's') + timer_results["batch_insert_seconds"] = compute_seconds + + delete_tags = np.random.choice( + np.array(range(1, npts + 1, 1), dtype=np.uintc), + size=int(0.5 * npts), + replace=False + ) + + timer.reset() + for tag in delete_tags: + index.mark_deleted(tag) + compute_seconds = timer.elapsed() + timer_results['mark_deletion_seconds'] = compute_seconds + print('mark deletion completed in', compute_seconds, 's') + + timer.reset() + index.consolidate_delete() + compute_seconds = timer.elapsed() + print('consolidation completed in', compute_seconds, 's') + timer_results['consolidation_completed_seconds'] = compute_seconds + + deleted_data = data[delete_tags - 1, :] + + timer.reset() + index.batch_insert(deleted_data, delete_tags, num_insert_threads) + compute_seconds = timer.elapsed() + print('re-insertion completed in', compute_seconds, 's') + timer_results['re-insertion_seconds'] = compute_seconds + + timer.reset() + tags, dists = index.batch_search(queries, K, Ls, num_search_threads) + compute_seconds = timer.elapsed() + print('Batch searched', queries.shape[0], ' queries in ', compute_seconds, 's') + timer_results['batch_searched_seconds'] = compute_seconds + + res_ids = tags - 1 + if gt_file != "": + timer.reset() + recall = utils.calculate_recall_from_gt_file(K, res_ids, gt_file) + print(f"recall@{K} is {recall}") + timer_results['recall_computed_seconds'] = timer.elapsed() + + timer_results['total_time_seconds'] = method_timer.elapsed() + + return timer_results + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + prog="in-mem-dynamic", + description="Inserts points dynamically in a clustered order and search from vectors in a file.", + ) + + parser.add_argument("-d", "--data_type", required=True) + parser.add_argument("-i", "--indexdata_file", required=True) + parser.add_argument("-q", "--querydata_file", required=True) + parser.add_argument("-Lb", "--Lbuild", default=50, type=int) + parser.add_argument("-Ls", "--Lsearch", default=50, type=int) + parser.add_argument("-R", "--graph_degree", default=32, type=int) + parser.add_argument("-TI", "--num_insert_threads", default=8, type=int) + parser.add_argument("-TS", "--num_search_threads", default=8, type=int) + parser.add_argument("-K", default=10, type=int) + parser.add_argument("--gt_file", default="") + parser.add_argument("--json_timings_output", required=False, default=None, help="File to write out timings to as JSON. If not specified, timings will not be written out.") + args = parser.parse_args() + + timings = insert_and_search( + args.data_type, + args.indexdata_file, + args.querydata_file, + args.Lbuild, + args.graph_degree, # Build args + args.K, + args.Lsearch, + args.num_insert_threads, + args.num_search_threads, # search args + args.gt_file, + ) + + if args.json_timings_output is not None: + import json + timings['log_file'] = args.json_timings_output + with open(args.json_timings_output, "w") as f: + json.dump(timings, f) + +""" +An ingest optimized example with SIFT1M +source venv/bin/activate +python python/apps/in-mem-dynamic.py -d float \ +-i "$HOME/data/sift/sift_base.fbin" -q "$HOME/data/sift/sift_query.fbin" --gt_file "$HOME/data/sift/gt100_base" \ +-Lb 10 -R 30 -Ls 200 +""" + diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-static.py b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-static.py new file mode 100644 index 0000000..9fb9a2c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/in-mem-static.py @@ -0,0 +1,149 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import argparse +from xml.dom.pulldom import default_bufsize + +import diskannpy +import numpy as np +import utils + +def build_and_search( + metric, + dtype_str, + index_directory, + indexdata_file, + querydata_file, + Lb, + graph_degree, + K, + Ls, + num_threads, + gt_file, + index_prefix, + search_only +) -> dict[str, float]: + """ + + :param metric: + :param dtype_str: + :param index_directory: + :param indexdata_file: + :param querydata_file: + :param Lb: + :param graph_degree: + :param K: + :param Ls: + :param num_threads: + :param gt_file: + :param index_prefix: + :param search_only: + :return: Dictionary of timings. Key is the event and value is the number of seconds the event took + in wall-clock-time. + """ + timer_results: dict[str, float] = {} + + method_timer: utils.Timer = utils.Timer() + + if dtype_str == "float": + dtype = np.single + elif dtype_str == "int8": + dtype = np.byte + elif dtype_str == "uint8": + dtype = np.ubyte + else: + raise ValueError("data_type must be float, int8 or uint8") + + # build index + if not search_only: + build_index_timer = utils.Timer() + diskannpy.build_memory_index( + data=indexdata_file, + distance_metric=metric, + vector_dtype=dtype, + index_directory=index_directory, + complexity=Lb, + graph_degree=graph_degree, + num_threads=num_threads, + index_prefix=index_prefix, + alpha=1.2, + use_pq_build=False, + num_pq_bytes=8, + use_opq=False, + ) + timer_results["build_index_seconds"] = build_index_timer.elapsed() + + # ready search object + load_index_timer = utils.Timer() + index = diskannpy.StaticMemoryIndex( + distance_metric=metric, + vector_dtype=dtype, + index_directory=index_directory, + num_threads=num_threads, # this can be different at search time if you would like + initial_search_complexity=Ls, + index_prefix=index_prefix + ) + timer_results["load_index_seconds"] = load_index_timer.elapsed() + + queries = utils.bin_to_numpy(dtype, querydata_file) + + query_timer = utils.Timer() + ids, dists = index.batch_search(queries, 10, Ls, num_threads) + query_time = query_timer.elapsed() + qps = round(queries.shape[0]/query_time, 1) + print('Batch searched', queries.shape[0], 'in', query_time, 's @', qps, 'QPS') + timer_results["query_seconds"] = query_time + + if gt_file != "": + recall_timer = utils.Timer() + recall = utils.calculate_recall_from_gt_file(K, ids, gt_file) + print(f"recall@{K} is {recall}") + timer_results["recall_seconds"] = recall_timer.elapsed() + + timer_results['total_time_seconds'] = method_timer.elapsed() + + return timer_results + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + prog="in-mem-static", + description="Static in-memory build and search from vectors in a file", + ) + + parser.add_argument("-m", "--metric", required=False, default="l2") + parser.add_argument("-d", "--data_type", required=True) + parser.add_argument("-id", "--index_directory", required=False, default=".") + parser.add_argument("-i", "--indexdata_file", required=True) + parser.add_argument("-q", "--querydata_file", required=True) + parser.add_argument("-Lb", "--Lbuild", default=50, type=int) + parser.add_argument("-Ls", "--Lsearch", default=50, type=int) + parser.add_argument("-R", "--graph_degree", default=32, type=int) + parser.add_argument("-T", "--num_threads", default=8, type=int) + parser.add_argument("-K", default=10, type=int) + parser.add_argument("-G", "--gt_file", default="") + parser.add_argument("-ip", "--index_prefix", required=False, default="ann") + parser.add_argument("--search_only", required=False, default=False) + parser.add_argument("--json_timings_output", required=False, default=None, help="File to write out timings to as JSON. If not specified, timings will not be written out.") + args = parser.parse_args() + + timings: dict[str, float] = build_and_search( + args.metric, + args.data_type, + args.index_directory.strip(), + args.indexdata_file.strip(), + args.querydata_file.strip(), + args.Lbuild, + args.graph_degree, # Build args + args.K, + args.Lsearch, + args.num_threads, # search args + args.gt_file, + args.index_prefix, + args.search_only + ) + + if args.json_timings_output is not None: + import json + timings['log_file'] = args.json_timings_output + with open(args.json_timings_output, "w") as f: + json.dump(timings, f) diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/apps/insert-in-clustered-order.py b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/insert-in-clustered-order.py new file mode 100644 index 0000000..25cb9d5 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/insert-in-clustered-order.py @@ -0,0 +1,103 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import argparse + +import diskannpy +import numpy as np +import utils + + +def insert_and_search( + dtype_str, + indexdata_file, + querydata_file, + Lb, + graph_degree, + num_clusters, + num_insert_threads, + K, + Ls, + num_search_threads, + gt_file, +): + npts, ndims = utils.get_bin_metadata(indexdata_file) + + if dtype_str == "float": + dtype = np.float32 + elif dtype_str == "int8": + dtype = np.int8 + elif dtype_str == "uint8": + dtype = np.uint8 + else: + raise ValueError("data_type must be float, int8 or uint8") + + index = diskannpy.DynamicMemoryIndex( + distance_metric="l2", + vector_dtype=dtype, + dimensions=ndims, + max_vectors=npts, + complexity=Lb, + graph_degree=graph_degree + ) + queries = diskannpy.vectors_from_file(querydata_file, dtype) + data = diskannpy.vectors_from_file(indexdata_file, dtype) + + offsets, permutation = utils.cluster_and_permute( + dtype_str, npts, ndims, data, num_clusters + ) + + i = 0 + timer = utils.Timer() + for c in range(num_clusters): + cluster_index_range = range(offsets[c], offsets[c + 1]) + cluster_indices = np.array(permutation[cluster_index_range], dtype=np.uint32) + cluster_data = data[cluster_indices, :] + index.batch_insert(cluster_data, cluster_indices + 1, num_insert_threads) + print('Inserted cluster', c, 'in', timer.elapsed(), 's') + tags, dists = index.batch_search(queries, K, Ls, num_search_threads) + print('Batch searched', queries.shape[0], 'queries in', timer.elapsed(), 's') + res_ids = tags - 1 + + if gt_file != "": + recall = utils.calculate_recall_from_gt_file(K, res_ids, gt_file) + print(f"recall@{K} is {recall}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + prog="in-mem-dynamic", + description="Inserts points dynamically in a clustered order and search from vectors in a file.", + ) + + parser.add_argument("-d", "--data_type", required=True) + parser.add_argument("-i", "--indexdata_file", required=True) + parser.add_argument("-q", "--querydata_file", required=True) + parser.add_argument("-Lb", "--Lbuild", default=50, type=int) + parser.add_argument("-Ls", "--Lsearch", default=50, type=int) + parser.add_argument("-R", "--graph_degree", default=32, type=int) + parser.add_argument("-TI", "--num_insert_threads", default=8, type=int) + parser.add_argument("-TS", "--num_search_threads", default=8, type=int) + parser.add_argument("-C", "--num_clusters", default=32, type=int) + parser.add_argument("-K", default=10, type=int) + parser.add_argument("--gt_file", default="") + args = parser.parse_args() + + insert_and_search( + args.data_type, + args.indexdata_file, + args.querydata_file, + args.Lbuild, + args.graph_degree, # Build args + args.num_clusters, + args.num_insert_threads, + args.K, + args.Lsearch, + args.num_search_threads, # search args + args.gt_file, + ) + +# An ingest optimized example with SIFT1M +# python3 ~/DiskANN/python/apps/insert-in-clustered-order.py -d float \ +# -i sift_base.fbin -q sift_query.fbin --gt_file gt100_base \ +# -Lb 10 -R 30 -Ls 200 -C 32 \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/apps/utils.py b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/utils.py new file mode 100644 index 0000000..a526984 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/apps/utils.py @@ -0,0 +1,120 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import numpy as np +from scipy.cluster.vq import vq, kmeans2 +from typing import Tuple +from time import perf_counter + + +def get_bin_metadata(bin_file) -> Tuple[int, int]: + array = np.fromfile(file=bin_file, dtype=np.uint32, count=2) + return array[0], array[1] + + +def bin_to_numpy(dtype, bin_file) -> np.ndarray: + npts, ndims = get_bin_metadata(bin_file) + return np.fromfile(file=bin_file, dtype=dtype, offset=8).reshape(npts, ndims) + + +class Timer: + last = perf_counter() + + def reset(self): + new = perf_counter() + self.last = new + + def elapsed(self, round_digit:int = 3): + new = perf_counter() + elapsed_time = new - self.last + self.last = new + return round(elapsed_time, round_digit) + + +def numpy_to_bin(array, out_file): + shape = np.shape(array) + npts = shape[0].astype(np.uint32) + ndims = shape[1].astype(np.uint32) + f = open(out_file, "wb") + f.write(npts.tobytes()) + f.write(ndims.tobytes()) + f.write(array.tobytes()) + f.close() + + +def read_gt_file(gt_file) -> Tuple[np.ndarray[int], np.ndarray[float]]: + """ + Return ids and distances to queries + """ + nq, K = get_bin_metadata(gt_file) + ids = np.fromfile(file=gt_file, dtype=np.uint32, offset=8, count=nq * K).reshape( + nq, K + ) + dists = np.fromfile( + file=gt_file, dtype=np.float32, offset=8 + nq * K * 4, count=nq * K + ).reshape(nq, K) + return ids, dists + + +def calculate_recall( + result_set_indices: np.ndarray[int], + truth_set_indices: np.ndarray[int], + recall_at: int = 5, +) -> float: + """ + result_set_indices and truth_set_indices correspond by row index. the columns in each row contain the indices of + the nearest neighbors, with result_set_indices being the approximate nearest neighbor results and truth_set_indices + being the brute force nearest neighbor calculation via sklearn's NearestNeighbor class. + :param result_set_indices: + :param truth_set_indices: + :param recall_at: + :return: + """ + found = 0 + for i in range(0, result_set_indices.shape[0]): + result_set_set = set(result_set_indices[i][0:recall_at]) + truth_set_set = set(truth_set_indices[i][0:recall_at]) + found += len(result_set_set.intersection(truth_set_set)) + return found / (result_set_indices.shape[0] * recall_at) + + +def calculate_recall_from_gt_file(K: int, ids: np.ndarray[int], gt_file: str) -> float: + """ + Calculate recall from ids returned from search and those read from file + """ + gt_ids, gt_dists = read_gt_file(gt_file) + return calculate_recall(ids, gt_ids, K) + + +def cluster_and_permute( + dtype_str, npts, ndims, data, num_clusters +) -> Tuple[np.ndarray[int], np.ndarray[int]]: + """ + Cluster the data and return permutation of row indices + that would group indices of the same cluster together + """ + sample_size = min(100000, npts) + sample_indices = np.random.choice(range(npts), size=sample_size, replace=False) + sampled_data = data[sample_indices, :] + centroids, sample_labels = kmeans2(sampled_data, num_clusters, minit="++", iter=10) + labels, dist = vq(data, centroids) + + count = np.zeros(num_clusters) + for i in range(npts): + count[labels[i]] += 1 + print("Cluster counts") + print(count) + + offsets = np.zeros(num_clusters + 1, dtype=int) + for i in range(0, num_clusters, 1): + offsets[i + 1] = offsets[i] + count[i] + + permutation = np.zeros(npts, dtype=int) + counters = np.zeros(num_clusters, dtype=int) + for i in range(npts): + label = labels[i] + row = offsets[label] + counters[label] + counters[label] += 1 + permutation[row] = i + + return offsets, permutation diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/include/builder.h b/packages/leann-backend-diskann/third_party/DiskANN/python/include/builder.h new file mode 100644 index 0000000..56677ac --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/include/builder.h @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include "common.h" +#include "distance.h" + +namespace diskannpy +{ +template +void build_disk_index(diskann::Metric metric, const std::string &data_file_path, const std::string &index_prefix_path, + uint32_t complexity, uint32_t graph_degree, double final_index_ram_limit, + double indexing_ram_budget, uint32_t num_threads, uint32_t pq_disk_bytes, + const std::string &codebook_prefix); + +template +void build_memory_index(diskann::Metric metric, const std::string &vector_bin_path, + const std::string &index_output_path, uint32_t graph_degree, uint32_t complexity, float alpha, + uint32_t num_threads, bool use_pq_build, size_t num_pq_bytes, bool use_opq, + bool use_tags = false, const std::string &filter_labels_file = "", + const std::string &universal_label = "", uint32_t filter_complexity = 0); + +} // namespace diskannpy diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/include/common.h b/packages/leann-backend-diskann/third_party/DiskANN/python/include/common.h new file mode 100644 index 0000000..7c63534 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/include/common.h @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include +#include + +namespace py = pybind11; + +namespace diskannpy +{ + +typedef uint32_t filterT; + +typedef uint32_t StaticIdType; +typedef uint32_t DynamicIdType; + +template using NeighborsAndDistances = std::pair, py::array_t>; + +}; // namespace diskannpy diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/include/dynamic_memory_index.h b/packages/leann-backend-diskann/third_party/DiskANN/python/include/dynamic_memory_index.h new file mode 100644 index 0000000..02d6b8c --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/include/dynamic_memory_index.h @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include +#include + +#include "common.h" +#include "index.h" +#include "parameters.h" + +namespace py = pybind11; + +namespace diskannpy +{ + +template +class DynamicMemoryIndex +{ + public: + DynamicMemoryIndex(diskann::Metric m, size_t dimensions, size_t max_vectors, uint32_t complexity, + uint32_t graph_degree, bool saturate_graph, uint32_t max_occlusion_size, float alpha, + uint32_t num_threads, uint32_t filter_complexity, uint32_t num_frozen_points, + uint32_t initial_search_complexity, uint32_t initial_search_threads, + bool concurrent_consolidation); + + void load(const std::string &index_path); + int insert(const py::array_t &vector, DynamicIdType id); + py::array_t batch_insert(py::array_t &vectors, + py::array_t &ids, int32_t num_inserts, + int num_threads = 0); + int mark_deleted(DynamicIdType id); + void save(const std::string &save_path, bool compact_before_save = false); + NeighborsAndDistances search(py::array_t &query, uint64_t knn, + uint64_t complexity); + NeighborsAndDistances batch_search(py::array_t &queries, + uint64_t num_queries, uint64_t knn, uint64_t complexity, + uint32_t num_threads); + void consolidate_delete(); + size_t num_points(); + + + private: + const uint32_t _initial_search_complexity; + const diskann::IndexWriteParameters _write_parameters; + diskann::Index _index; +}; + +}; // namespace diskannpy \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/include/static_disk_index.h b/packages/leann-backend-diskann/third_party/DiskANN/python/include/static_disk_index.h new file mode 100644 index 0000000..a3b79c4 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/include/static_disk_index.h @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include +#include + +#ifdef _WINDOWS +#include "windows_aligned_file_reader.h" +#elif __APPLE__ +#include "apple_aligned_file_reader.h" +#else +#include "linux_aligned_file_reader.h" +#endif + +#include "common.h" +#include "pq_flash_index.h" + +namespace py = pybind11; + +namespace diskannpy +{ + +#ifdef _WINDOWS +typedef WindowsAlignedFileReader PlatformSpecificAlignedFileReader; +#elif __APPLE__ +typedef AppleAlignedFileReader PlatformSpecificAlignedFileReader; +#else +typedef LinuxAlignedFileReader PlatformSpecificAlignedFileReader; +#endif + +template class StaticDiskIndex +{ + public: + StaticDiskIndex(diskann::Metric metric, const std::string &index_path_prefix, uint32_t num_threads, + size_t num_nodes_to_cache, uint32_t cache_mechanism, const std::string &pq_prefix, + const std::string &partition_prefix); + + void cache_bfs_levels(size_t num_nodes_to_cache); + + void cache_sample_paths(size_t num_nodes_to_cache, const std::string &warmup_query_file, uint32_t num_threads); + + NeighborsAndDistances search(py::array_t &query, + uint64_t knn, uint64_t complexity, uint64_t beam_width, + bool USE_DEFERRED_FETCH = false, bool skip_search_reorder = false, + bool recompute_beighbor_embeddings = false, bool dedup_node_dis = false, + float prune_ratio = 0, bool batch_recompute = false, + bool global_pruning = false); + + NeighborsAndDistances batch_search( + py::array_t &queries, uint64_t num_queries, uint64_t knn, + uint64_t complexity, uint64_t beam_width, uint32_t num_threads, bool USE_DEFERRED_FETCH = false, + bool skip_search_reorder = false, bool recompute_beighbor_embeddings = false, bool dedup_node_dis = false, + float prune_ratio = 0, bool batch_recompute = false, bool global_pruning = false); + + private: + std::shared_ptr _reader; + std::shared_ptr _graph_reader; + diskann::PQFlashIndex

_index; +}; +} // namespace diskannpy diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/include/static_memory_index.h b/packages/leann-backend-diskann/third_party/DiskANN/python/include/static_memory_index.h new file mode 100644 index 0000000..6ed5a08 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/include/static_memory_index.h @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +#pragma once + +#include +#include + +#include +#include + +#include "common.h" +#include "index.h" + +namespace py = pybind11; + +namespace diskannpy +{ + +template class StaticMemoryIndex +{ + public: + StaticMemoryIndex(diskann::Metric m, const std::string &index_prefix, size_t num_points, size_t dimensions, + uint32_t num_threads, uint32_t initial_search_complexity); + + NeighborsAndDistances search(py::array_t &query, + uint64_t knn, uint64_t complexity); + + NeighborsAndDistances search_with_filter( + py::array_t &query, uint64_t knn, uint64_t complexity, + filterT filter); + + NeighborsAndDistances batch_search( + py::array_t &queries, uint64_t num_queries, uint64_t knn, + uint64_t complexity, uint32_t num_threads); + + private: + diskann::Index _index; +}; +} // namespace diskannpy \ No newline at end of file diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/src/__init__.py b/packages/leann-backend-diskann/third_party/DiskANN/python/src/__init__.py new file mode 100644 index 0000000..c2e1b07 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/src/__init__.py @@ -0,0 +1,138 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +""" +# Documentation Overview +`diskannpy` is mostly structured around 2 distinct processes: [Index Builder Functions](#index-builders) and [Search Classes](#search-classes) + +It also includes a few nascent [utilities](#utilities). + +And lastly, it makes substantial use of type hints, with various shorthand [type aliases](#parameter-and-response-type-aliases) documented. +When reading the `diskannpy` code we refer to the type aliases, though `pdoc` helpfully expands them. + +## Index Builders +- `build_disk_index` - To build an index that cannot fully fit into memory when searching +- `build_memory_index` - To build an index that can fully fit into memory when searching + +## Search Classes +- `StaticMemoryIndex` - for indices that can fully fit in memory and won't be changed during the search operations +- `StaticDiskIndex` - for indices that cannot fully fit in memory, thus relying on disk IO to search, and also won't be changed during search operations +- `DynamicMemoryIndex` - for indices that can fully fit in memory and will be mutated via insert/deletion operations as well as search operations + +## Parameter Defaults +- `diskannpy.defaults` - Default values exported from the C++ extension for Python users + +## Parameter and Response Type Aliases +- `DistanceMetric` - What distance metrics does `diskannpy` support? +- `VectorDType` - What vector datatypes does `diskannpy` support? +- `QueryResponse` - What can I expect as a response to my search? +- `QueryResponseBatch` - What can I expect as a response to my batch search? +- `VectorIdentifier` - What types do `diskannpy` support as vector identifiers? +- `VectorIdentifierBatch` - A batch of identifiers of the exact same type. The type can change, but they must **all** change. +- `VectorLike` - How does a vector look to `diskannpy`, to be inserted or searched with. +- `VectorLikeBatch` - A batch of those vectors, to be inserted or searched with. +- `Metadata` - DiskANN vector binary file metadata (num_points, vector_dim) + +## Utilities +- `vectors_to_file` - Turns a 2 dimensional `numpy.typing.NDArray[VectorDType]` with shape `(number_of_points, vector_dim)` into a DiskANN vector bin file. +- `vectors_from_file` - Reads a DiskANN vector bin file representing stored vectors into a numpy ndarray. +- `vectors_metadata_from_file` - Reads metadata stored in a DiskANN vector bin file without reading the entire file +- `tags_to_file` - Turns a 1 dimensional `numpy.typing.NDArray[VectorIdentifier]` into a DiskANN tags bin file. +- `tags_from_file` - Reads a DiskANN tags bin file representing stored tags into a numpy ndarray. +- `valid_dtype` - Checks if a given vector dtype is supported by `diskannpy` +""" + +from typing import Any, Literal, NamedTuple, Type, Union + +import numpy as np +from numpy import typing as npt + +DistanceMetric = Literal["l2", "mips", "cosine"] +""" Type alias for one of {"l2", "mips", "cosine"} """ +VectorDType = Union[Type[np.float32], Type[np.int8], Type[np.uint8]] +""" Type alias for one of {`numpy.float32`, `numpy.int8`, `numpy.uint8`} """ +VectorLike = npt.NDArray[VectorDType] +""" Type alias for something that can be treated as a vector """ +VectorLikeBatch = npt.NDArray[VectorDType] +""" Type alias for a batch of VectorLikes """ +VectorIdentifier = np.uint32 +""" +Type alias for a vector identifier, whether it be an implicit array index identifier from StaticMemoryIndex or +StaticDiskIndex, or an explicit tag identifier from DynamicMemoryIndex +""" +VectorIdentifierBatch = npt.NDArray[np.uint32] +""" Type alias for a batch of VectorIdentifiers """ + + +class QueryResponse(NamedTuple): + """ + Tuple with two values, identifiers and distances. Both are 1d arrays, positionally correspond, and will contain the + nearest neighbors from [0..k_neighbors) + """ + + identifiers: npt.NDArray[VectorIdentifier] + """ A `numpy.typing.NDArray[VectorIdentifier]` array of vector identifiers, 1 dimensional """ + distances: npt.NDArray[np.float32] + """ + A `numpy.typing.NDAarray[numpy.float32]` of distances as calculated by the distance metric function, 1 dimensional + """ + + +class QueryResponseBatch(NamedTuple): + """ + Tuple with two values, identifiers and distances. Both are 2d arrays, with dimensionality determined by the + rows corresponding to the number of queries made, and the columns corresponding to the k neighbors + requested. The two 2d arrays have an implicit, position-based relationship + """ + + identifiers: npt.NDArray[VectorIdentifier] + """ + A `numpy.typing.NDArray[VectorIdentifier]` array of vector identifiers, 2 dimensional. The row corresponds to index + of the query, and the column corresponds to the k neighbors requested + """ + distances: np.ndarray[np.float32] + """ + A `numpy.typing.NDAarray[numpy.float32]` of distances as calculated by the distance metric function, 2 dimensional. + The row corresponds to the index of the query, and the column corresponds to the distance of the query to the + *k-th* neighbor + """ + + +from . import defaults +from ._builder import build_disk_index, build_memory_index +from ._common import valid_dtype +from ._dynamic_memory_index import DynamicMemoryIndex +from ._files import ( + Metadata, + tags_from_file, + tags_to_file, + vectors_from_file, + vectors_metadata_from_file, + vectors_to_file, +) +from ._static_disk_index import StaticDiskIndex +from ._static_memory_index import StaticMemoryIndex + +__all__ = [ + "build_disk_index", + "build_memory_index", + "StaticDiskIndex", + "StaticMemoryIndex", + "DynamicMemoryIndex", + "defaults", + "DistanceMetric", + "VectorDType", + "QueryResponse", + "QueryResponseBatch", + "VectorIdentifier", + "VectorIdentifierBatch", + "VectorLike", + "VectorLikeBatch", + "Metadata", + "vectors_metadata_from_file", + "vectors_to_file", + "vectors_from_file", + "tags_to_file", + "tags_from_file", + "valid_dtype", +] diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.py b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.py new file mode 100644 index 0000000..6567020 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.py @@ -0,0 +1,349 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import json +import os +import shutil +from pathlib import Path +from typing import Optional, Tuple, Union + +import numpy as np + +from . import DistanceMetric, VectorDType, VectorIdentifierBatch, VectorLikeBatch +from . import _diskannpy as _native_dap +from ._common import ( + _assert, + _assert_is_nonnegative_uint32, + _assert_is_positive_uint32, + _castable_dtype_or_raise, + _valid_metric, + _write_index_metadata, + valid_dtype, +) +from ._diskannpy import defaults +from ._files import tags_to_file, vectors_metadata_from_file, vectors_to_file + + +def _valid_path_and_dtype( + data: Union[str, VectorLikeBatch], + vector_dtype: VectorDType, + index_path: str, + index_prefix: str, +) -> Tuple[str, VectorDType]: + if isinstance(data, str): + vector_bin_path = data + _assert( + Path(data).exists() and Path(data).is_file(), + "if data is of type `str`, it must both exist and be a file", + ) + vector_dtype_actual = valid_dtype(vector_dtype) + else: + vector_bin_path = os.path.join(index_path, f"{index_prefix}_vectors.bin") + # if Path(vector_bin_path).exists(): + # raise ValueError( + # f"The path {vector_bin_path} already exists. Remove it and try again." + # ) + vector_dtype_actual = valid_dtype(data.dtype) + # vectors_to_file(vector_file=vector_bin_path, vectors=data) + + return vector_bin_path, vector_dtype_actual + + +def build_disk_index( + data: Union[str, VectorLikeBatch], + distance_metric: DistanceMetric, + index_directory: str, + complexity: int, + graph_degree: int, + search_memory_maximum: float, + build_memory_maximum: float, + num_threads: int, + pq_disk_bytes: int = defaults.PQ_DISK_BYTES, + vector_dtype: Optional[VectorDType] = None, + index_prefix: str = "ann", + codebook_prefix: str = "", +) -> None: + """ + This function will construct a DiskANN disk index. Disk indices are ideal for very large datasets that + are too large to fit in memory. Memory is still used, but it is primarily used to provide precise disk + locations for fast retrieval of smaller subsets of the index without compromising much on recall. + + If you provide a numpy array, it will save this array to disk in a temp location + in the format DiskANN's PQ Flash Index builder requires. This temp folder is deleted upon index creation completion + or error. + + ## Distance Metric and Vector Datatype Restrictions + | Metric \ Datatype | np.float32 | np.uint8 | np.int8 | + |-------------------|------------|----------|---------| + | L2 | ✅ | ✅ | ✅ | + | MIPS | ✅ | ⌠| ⌠| + | Cosine [^bug-in-disk-cosine] | ⌠| ⌠| ⌠| + + [^bug-in-disk-cosine]: For StaticDiskIndex, Cosine distances are not currently supported. + + ### Parameters + - **data**: Either a `str` representing a path to a DiskANN vector bin file, or a numpy.ndarray, + of a supported dtype, in 2 dimensions. Note that `vector_dtype` must be provided if data is a `str` + - **distance_metric**: A `str`, strictly one of {"l2", "mips", "cosine"}. `l2` and `cosine` are supported for all 3 + vector dtypes, but `mips` is only available for single precision floats. + - **index_directory**: The index files will be saved to this **existing** directory path + - **complexity**: The size of the candidate nearest neighbor list to use when building the index. Values between 75 + and 200 are typical. Larger values will take more time to build but result in indices that provide higher recall + for the same search complexity. Use a value that is at least as large as `graph_degree` unless you are prepared + to compromise on quality + - **graph_degree**: The degree of the graph index, typically between 60 and 150. A larger maximum degree will + result in larger indices and longer indexing times, but better search quality. + - **search_memory_maximum**: Build index with the expectation that the search will use at most + `search_memory_maximum`, in gb. + - **build_memory_maximum**: Build index using at most `build_memory_maximum` in gb. Building processes typically + require more memory, while search memory can be reduced. + - **num_threads**: Number of threads to use when creating this index. `0` is used to indicate all available + logical processors should be used. + - **pq_disk_bytes**: Use `0` to store uncompressed data on SSD. This allows the index to asymptote to 100% + recall. If your vectors are too large to store in SSD, this parameter provides the option to compress the + vectors using PQ for storing on SSD. This will trade off recall. You would also want this to be greater + than the number of bytes used for the PQ compressed data stored in-memory. Default is `0`. + - **vector_dtype**: Required if the provided `data` is of type `str`, else we use the `data.dtype` if np array. + - **index_prefix**: The prefix of the index files. Defaults to "ann". + """ + + _assert( + (isinstance(data, str) and vector_dtype is not None) + or isinstance(data, np.ndarray), + "vector_dtype is required if data is a str representing a path to the vector bin file", + ) + dap_metric = _valid_metric(distance_metric) + _assert_is_positive_uint32(complexity, "complexity") + _assert_is_positive_uint32(graph_degree, "graph_degree") + _assert(search_memory_maximum > 0, "search_memory_maximum must be larger than 0") + _assert(build_memory_maximum > 0, "build_memory_maximum must be larger than 0") + _assert_is_nonnegative_uint32(num_threads, "num_threads") + _assert_is_nonnegative_uint32(pq_disk_bytes, "pq_disk_bytes") + _assert(index_prefix != "", "index_prefix cannot be an empty string") + + index_path = Path(index_directory) + _assert( + index_path.exists() and index_path.is_dir(), + "index_directory must both exist and be a directory", + ) + + vector_bin_path, vector_dtype_actual = _valid_path_and_dtype( + data, vector_dtype, index_directory, index_prefix + ) + _assert(dap_metric != _native_dap.COSINE, "Cosine is currently not supported in StaticDiskIndex") + if dap_metric == _native_dap.INNER_PRODUCT: + _assert( + vector_dtype_actual == np.float32, + "Integral vector dtypes (np.uint8, np.int8) are not supported with distance metric mips" + ) + + num_points, dimensions = vectors_metadata_from_file(vector_bin_path) + + if vector_dtype_actual == np.uint8: + _builder = _native_dap.build_disk_uint8_index + elif vector_dtype_actual == np.int8: + _builder = _native_dap.build_disk_int8_index + else: + _builder = _native_dap.build_disk_float_index + + index_prefix_path = os.path.join(index_directory, index_prefix) + + _builder( + distance_metric=dap_metric, + data_file_path=vector_bin_path, + index_prefix_path=index_prefix_path, + complexity=complexity, + graph_degree=graph_degree, + final_index_ram_limit=search_memory_maximum, + indexing_ram_budget=build_memory_maximum, + num_threads=num_threads, + pq_disk_bytes=pq_disk_bytes, + codebook_prefix=codebook_prefix, + ) + _write_index_metadata( + index_prefix_path, vector_dtype_actual, dap_metric, num_points, dimensions + ) + + +def build_memory_index( + data: Union[str, VectorLikeBatch], + distance_metric: DistanceMetric, + index_directory: str, + complexity: int, + graph_degree: int, + num_threads: int, + alpha: float = defaults.ALPHA, + use_pq_build: bool = defaults.USE_PQ_BUILD, + num_pq_bytes: int = defaults.NUM_PQ_BYTES, + use_opq: bool = defaults.USE_OPQ, + vector_dtype: Optional[VectorDType] = None, + tags: Union[str, VectorIdentifierBatch] = "", + filter_labels: Optional[list[list[str]]] = None, + universal_label: str = "", + filter_complexity: int = defaults.FILTER_COMPLEXITY, + index_prefix: str = "ann", +) -> None: + """ + This function will construct a DiskANN memory index. Memory indices are ideal for smaller datasets whose + indices can fit into memory. Memory indices are faster than disk indices, but usually cannot scale to massive + sizes in an individual index on an individual machine. + + `diskannpy`'s memory indices take two forms: a `diskannpy.StaticMemoryIndex`, which will not be mutated, only + searched upon, and a `diskannpy.DynamicMemoryIndex`, which can be mutated AND searched upon in the same process. + + ## Important Note: + You **must** determine the type of index you are building for. If you are building for a + `diskannpy.DynamicMemoryIndex`, you **must** supply a valid value for the `tags` parameter. **Do not supply + tags if the index is intended to be `diskannpy.StaticMemoryIndex`**! + + ## Distance Metric and Vector Datatype Restrictions + + | Metric \ Datatype | np.float32 | np.uint8 | np.int8 | + |-------------------|------------|----------|---------| + | L2 | ✅ | ✅ | ✅ | + | MIPS | ✅ | ⌠| ⌠| + | Cosine | ✅ | ✅ | ✅ | + + ### Parameters + + - **data**: Either a `str` representing a path to an existing DiskANN vector bin file, or a numpy.ndarray of a + supported dtype in 2 dimensions. Note that `vector_dtype` must be provided if `data` is a `str`. + - **distance_metric**: A `str`, strictly one of {"l2", "mips", "cosine"}. `l2` and `cosine` are supported for all 3 + vector dtypes, but `mips` is only available for single precision floats. + - **index_directory**: The index files will be saved to this **existing** directory path + - **complexity**: The size of the candidate nearest neighbor list to use when building the index. Values between 75 + and 200 are typical. Larger values will take more time to build but result in indices that provide higher recall + for the same search complexity. Use a value that is at least as large as `graph_degree` unless you are prepared + to compromise on quality + - **graph_degree**: The degree of the graph index, typically between 60 and 150. A larger maximum degree will + result in larger indices and longer indexing times, but better search quality. + - **num_threads**: Number of threads to use when creating this index. `0` is used to indicate all available + logical processors should be used. + - **alpha**: The alpha parameter (>=1) is used to control the nature and number of points that are added to the + graph. A higher alpha value (e.g., 1.4) will result in fewer hops (and IOs) to convergence, but probably more + distance comparisons compared to a lower alpha value. + - **use_pq_build**: Use product quantization during build. Product quantization is a lossy compression technique + that can reduce the size of the index on disk. This will trade off recall. Default is `True`. + - **num_pq_bytes**: The number of bytes used to store the PQ compressed data in memory. This will trade off recall. + Default is `0`. + - **use_opq**: Use optimized product quantization during build. + - **vector_dtype**: Required if the provided `data` is of type `str`, else we use the `data.dtype` if np array. + - **tags**: Tags can be defined either as a path on disk to an existing .tags file, or provided as a np.array of + the same length as the number of vectors. Tags are used to identify vectors in the index via your *own* + numbering conventions, and is absolutely required for loading DynamicMemoryIndex indices `from_file`. + - **filter_labels**: An optional, but exhaustive list of categories for each vector. This is used to filter + search results by category. If provided, this must be a list of lists, where each inner list is a list of + categories for the corresponding vector. For example, if you have 3 vectors, and the first vector belongs to + categories "a" and "b", the second vector belongs to category "b", and the third vector belongs to no categories, + you would provide `filter_labels=[["a", "b"], ["b"], []]`. If you do not want to provide categories for a + particular vector, you can provide an empty list. If you do not want to provide categories for any vectors, + you can provide `None` for this parameter (which is the default) + - **universal_label**: An optional label that indicates that this vector should be included in *every* search + in which it also meets the knn search criteria. + - **filter_complexity**: Complexity to use when using filters. Default is 0. 0 is strictly invalid if you are + using filters. + - **index_prefix**: The prefix of the index files. Defaults to "ann". + """ + _assert( + (isinstance(data, str) and vector_dtype is not None) + or isinstance(data, np.ndarray), + "vector_dtype is required if data is a str representing a path to the vector bin file", + ) + dap_metric = _valid_metric(distance_metric) + _assert_is_positive_uint32(complexity, "complexity") + _assert_is_positive_uint32(graph_degree, "graph_degree") + _assert( + alpha >= 1, + "alpha must be >= 1, and realistically should be kept between [1.0, 2.0)", + ) + _assert_is_nonnegative_uint32(num_threads, "num_threads") + _assert_is_nonnegative_uint32(num_pq_bytes, "num_pq_bytes") + _assert_is_nonnegative_uint32(filter_complexity, "filter_complexity") + _assert(index_prefix != "", "index_prefix cannot be an empty string") + _assert( + filter_labels is None or filter_complexity > 0, + "if filter_labels is provided, filter_complexity must not be 0" + ) + + index_path = Path(index_directory) + _assert( + index_path.exists() and index_path.is_dir(), + "index_directory must both exist and be a directory", + ) + + vector_bin_path, vector_dtype_actual = _valid_path_and_dtype( + data, vector_dtype, index_directory, index_prefix + ) + if dap_metric == _native_dap.INNER_PRODUCT: + _assert( + vector_dtype_actual == np.float32, + "Integral vector dtypes (np.uint8, np.int8) are not supported with distance metric mips" + ) + + num_points, dimensions = vectors_metadata_from_file(vector_bin_path) + if filter_labels is not None: + _assert( + len(filter_labels) == num_points, + "filter_labels must be the same length as the number of points" + ) + + if vector_dtype_actual == np.uint8: + _builder = _native_dap.build_memory_uint8_index + elif vector_dtype_actual == np.int8: + _builder = _native_dap.build_memory_int8_index + else: + _builder = _native_dap.build_memory_float_index + + index_prefix_path = os.path.join(index_directory, index_prefix) + + filter_labels_file = "" + if filter_labels is not None: + label_counts = {} + filter_labels_file = f"{index_prefix_path}_pylabels.txt" + with open(filter_labels_file, "w") as labels_file: + for labels in filter_labels: + for label in labels: + label_counts[label] = 1 if label not in label_counts else label_counts[label] + 1 + if len(labels) == 0: + print("default", file=labels_file) + else: + print(",".join(labels), file=labels_file) + with open(f"{index_prefix_path}_label_metadata.json", "w") as label_metadata_file: + json.dump(label_counts, label_metadata_file, indent=True) + + if isinstance(tags, str) and tags != "": + use_tags = True + shutil.copy(tags, index_prefix_path + ".tags") + elif not isinstance(tags, str): + use_tags = True + tags_as_array = _castable_dtype_or_raise(tags, expected=np.uint32) + _assert(len(tags_as_array.shape) == 1, "Provided tags must be 1 dimensional") + _assert( + tags_as_array.shape[0] == num_points, + "Provided tags must contain an identical population to the number of points, " + f"{tags_as_array.shape[0]=}, {num_points=}", + ) + tags_to_file(index_prefix_path + ".tags", tags_as_array) + else: + use_tags = False + + _builder( + distance_metric=dap_metric, + data_file_path=vector_bin_path, + index_output_path=index_prefix_path, + complexity=complexity, + graph_degree=graph_degree, + alpha=alpha, + num_threads=num_threads, + use_pq_build=use_pq_build, + num_pq_bytes=num_pq_bytes, + use_opq=use_opq, + use_tags=use_tags, + filter_labels_file=filter_labels_file, + universal_label=universal_label, + filter_complexity=filter_complexity, + ) + + _write_index_metadata( + index_prefix_path, vector_dtype_actual, dap_metric, num_points, dimensions + ) diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.pyi b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.pyi new file mode 100644 index 0000000..223e6c9 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_builder.pyi @@ -0,0 +1,74 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +from typing import BinaryIO, Optional, overload + +import numpy as np + +from . import DistanceMetric, VectorDType, VectorIdentifierBatch, VectorLikeBatch + +def numpy_to_diskann_file(vectors: np.ndarray, file_handler: BinaryIO): ... +@overload +def build_disk_index( + data: str, + distance_metric: DistanceMetric, + index_directory: str, + complexity: int, + graph_degree: int, + search_memory_maximum: float, + build_memory_maximum: float, + num_threads: int, + pq_disk_bytes: int, + vector_dtype: VectorDType, + index_prefix: str, +) -> None: ... +@overload +def build_disk_index( + data: VectorLikeBatch, + distance_metric: DistanceMetric, + index_directory: str, + complexity: int, + graph_degree: int, + search_memory_maximum: float, + build_memory_maximum: float, + num_threads: int, + pq_disk_bytes: int, + index_prefix: str, +) -> None: ... +@overload +def build_memory_index( + data: VectorLikeBatch, + distance_metric: DistanceMetric, + index_directory: str, + complexity: int, + graph_degree: int, + alpha: float, + num_threads: int, + use_pq_build: bool, + num_pq_bytes: int, + use_opq: bool, + tags: Union[str, VectorIdentifierBatch], + filter_labels: Optional[list[list[str]]], + universal_label: str, + filter_complexity: int, + index_prefix: str +) -> None: ... +@overload +def build_memory_index( + data: str, + distance_metric: DistanceMetric, + index_directory: str, + complexity: int, + graph_degree: int, + alpha: float, + num_threads: int, + use_pq_build: bool, + num_pq_bytes: int, + use_opq: bool, + vector_dtype: VectorDType, + tags: Union[str, VectorIdentifierBatch], + filter_labels_file: Optional[list[list[str]]], + universal_label: str, + filter_complexity: int, + index_prefix: str +) -> None: ... diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/src/_common.py b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_common.py new file mode 100644 index 0000000..2b28802 --- /dev/null +++ b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_common.py @@ -0,0 +1,251 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT license. + +import os +import warnings +from enum import Enum +from pathlib import Path +from typing import Literal, NamedTuple, Optional, Tuple, Type, Union + +import numpy as np + +from . import ( + DistanceMetric, + VectorDType, + VectorIdentifierBatch, + VectorLike, + VectorLikeBatch, +) +from . import _diskannpy as _native_dap + +__ALL__ = ["valid_dtype"] + +_VALID_DTYPES = [np.float32, np.int8, np.uint8] + + +def valid_dtype(dtype: Type) -> VectorDType: + """ + Utility method to determine whether the provided dtype is supported by `diskannpy`, and if so, the canonical + dtype we will use internally (e.g. np.single -> np.float32) + """ + _assert_dtype(dtype) + if dtype == np.uint8: + return np.uint8 + if dtype == np.int8: + return np.int8 + if dtype == np.float32: + return np.float32 + + +def _assert(statement_eval: bool, message: str): + if not statement_eval: + raise ValueError(message) + + +def _valid_metric(metric: str) -> _native_dap.Metric: + if not isinstance(metric, str): + raise ValueError("distance_metric must be a string") + if metric.lower() == "l2": + return _native_dap.L2 + elif metric.lower() == "mips": + return _native_dap.INNER_PRODUCT + elif metric.lower() == "cosine": + return _native_dap.COSINE + else: + raise ValueError("distance_metric must be one of 'l2', 'mips', or 'cosine'") + + +def _assert_dtype(dtype: Type): + _assert( + any(np.can_cast(dtype, _dtype) for _dtype in _VALID_DTYPES), + f"Vector dtype must be of one of type {{(np.single, np.float32), (np.byte, np.int8), (np.ubyte, np.uint8)}}", + ) + + +def _castable_dtype_or_raise( + data: Union[VectorLike, VectorLikeBatch, VectorIdentifierBatch], expected: np.dtype +) -> np.ndarray: + if isinstance(data, np.ndarray) and np.can_cast(data.dtype, expected): + return data.astype(expected, casting="safe") + else: + raise TypeError( + f"expecting a numpy ndarray of dtype {expected}, not a {type(data)}" + ) + + +def _assert_2d(vectors: np.ndarray, name: str): + _assert(len(vectors.shape) == 2, f"{name} must be 2d numpy array") + + +__MAX_UINT32_VAL = 4_294_967_295 + + +def _assert_is_positive_uint32(test_value: int, parameter: str): + _assert( + test_value is not None and 0 < test_value < __MAX_UINT32_VAL, + f"{parameter} must be a positive integer in the uint32 range", + ) + + +def _assert_is_nonnegative_uint32(test_value: int, parameter: str): + _assert( + test_value is not None and -1 < test_value < __MAX_UINT32_VAL, + f"{parameter} must be a non-negative integer in the uint32 range", + ) + + +def _assert_is_nonnegative_uint64(test_value: int, parameter: str): + _assert( + -1 < test_value, + f"{parameter} must be a non-negative integer in the uint64 range", + ) + + +def _assert_existing_directory(path: str, parameter: str): + _path = Path(path) + _assert( + _path.exists() and _path.is_dir(), f"{parameter} must be an existing directory" + ) + + +def _assert_existing_file(path: str, parameter: str): + _path = Path(path) + _assert(_path.exists() and _path.is_file(), f"{parameter} must be an existing file") + + +class _DataType(Enum): + FLOAT32 = 0 + INT8 = 1 + UINT8 = 2 + + @classmethod + def from_type(cls, vector_dtype: VectorDType) -> "DataType": + if vector_dtype == np.float32: + return cls.FLOAT32 + if vector_dtype == np.int8: + return cls.INT8 + if vector_dtype == np.uint8: + return cls.UINT8 + + def to_type(self) -> VectorDType: + if self is _DataType.FLOAT32: + return np.float32 + if self is _DataType.INT8: + return np.int8 + if self is _DataType.UINT8: + return np.uint8 + + +class _Metric(Enum): + L2 = 0 + MIPS = 1 + COSINE = 2 + + @classmethod + def from_native(cls, metric: _native_dap.Metric) -> "_Metric": + if metric == _native_dap.L2: + return cls.L2 + if metric == _native_dap.INNER_PRODUCT: + return cls.MIPS + if metric == _native_dap.COSINE: + return cls.COSINE + + def to_native(self) -> _native_dap.Metric: + if self is _Metric.L2: + return _native_dap.L2 + if self is _Metric.MIPS: + return _native_dap.INNER_PRODUCT + if self is _Metric.COSINE: + return _native_dap.COSINE + + def to_str(self) -> _native_dap.Metric: + if self is _Metric.L2: + return "l2" + if self is _Metric.MIPS: + return "mips" + if self is _Metric.COSINE: + return "cosine" + + +def _build_metadata_path(index_path_and_prefix: str) -> str: + return index_path_and_prefix + "_metadata.bin" + + +def _write_index_metadata( + index_path_and_prefix: str, + dtype: VectorDType, + metric: _native_dap.Metric, + num_points: int, + dimensions: int, +): + np.array( + [ + _DataType.from_type(dtype).value, + _Metric.from_native(metric).value, + num_points, + dimensions, + ], + dtype=np.uint64, + ).tofile(_build_metadata_path(index_path_and_prefix)) + + +def _read_index_metadata( + index_path_and_prefix: str, +) -> Optional[Tuple[VectorDType, str, np.uint64, np.uint64]]: + path = _build_metadata_path(index_path_and_prefix) + if not Path(path).exists(): + return None + else: + metadata = np.fromfile(path, dtype=np.uint64, count=-1) + return ( + _DataType(int(metadata[0])).to_type(), + _Metric(int(metadata[1])).to_str(), + metadata[2], + metadata[3], + ) + + +def _ensure_index_metadata( + index_path_and_prefix: str, + vector_dtype: Optional[VectorDType], + distance_metric: Optional[DistanceMetric], + max_vectors: int, + dimensions: Optional[int], + warn_size_exceeded: bool = False, +) -> Tuple[VectorDType, str, np.uint64, np.uint64]: + possible_metadata = _read_index_metadata(index_path_and_prefix) + if possible_metadata is None: + _assert( + all([vector_dtype, distance_metric, dimensions]), + "distance_metric, vector_dtype, and dimensions must provided if a corresponding metadata file has not " + "been built for this index, such as when an index was built via the CLI tools or prior to the addition " + "of a metadata file", + ) + _assert_dtype(vector_dtype) + _assert_is_positive_uint32(max_vectors, "max_vectors") + _assert_is_positive_uint32(dimensions, "dimensions") + return vector_dtype, distance_metric, max_vectors, dimensions # type: ignore + else: + vector_dtype, distance_metric, num_vectors, dimensions = possible_metadata + if warn_size_exceeded: + if max_vectors is not None and num_vectors > max_vectors: + warnings.warn( + "The number of vectors in the saved index exceeds the max_vectors parameter. " + "max_vectors is being adjusted to accommodate the dataset, but any insertions will fail." + ) + max_vectors = num_vectors + if num_vectors == max_vectors: + warnings.warn( + "The number of vectors in the saved index equals max_vectors parameter. Any insertions will fail." + ) + return possible_metadata + + +def _valid_index_prefix(index_directory: str, index_prefix: str) -> str: + _assert( + index_directory is not None and index_directory != "", + "index_directory cannot be None or empty", + ) + _assert_existing_directory(index_directory, "index_directory") + _assert(index_prefix != "", "index_prefix cannot be an empty string") + return os.path.join(index_directory, index_prefix) diff --git a/packages/leann-backend-diskann/third_party/DiskANN/python/src/_diskannpy.cpython-310-x86_64-linux-gnu.so.bak b/packages/leann-backend-diskann/third_party/DiskANN/python/src/_diskannpy.cpython-310-x86_64-linux-gnu.so.bak new file mode 100755 index 0000000000000000000000000000000000000000..5741ecd7dd00337e060d91bb8b4cff466d2f082d GIT binary patch literal 33617584 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%0DGN06ChV-L>z@BSxXN*MF0mwg# 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 z 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

p^r6FkERzm#ertE`!K;1-0z1%{=M%Sccz}F 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≥kaUM!^b4_B0hGOb(qNI27agO`Le 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⪻rcP&5USd!^2Z4jQ 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%0DN+I1J!k9FR-7CH{wAA9ve7l|q!0C!X7 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

u6kQ&G0U@>)hCjx6ea&gHkQMBdu~p> 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%0AxuG`kCaCv_n6;rw}(0=qEw06Ak(svP7SMOQX4_ zp6#SwB3nX~at9w>7Q0Ebl2;_)T#%dwWQE9io-3G+oX&;GS&gOzIXfzM@v0xX9XuGF zxVa5}v&GzH*Nxbm5V80J|B0NbT=+DTv$?G>Pt48ZN6nle=(_q)LTpcc z6Q`tjy^0fo%;a+UQ{Ptp_@($0)_3XLX#sT+bTy+Q%^n_>E8GwQwRCRxFFlvihHc(TwSIPo!$b~cv4m2`&oGT#@MFtuZ(l?mLi2uD*ONo zFW>g|%Hp?vcK8>(N&E$`t?apJp)kyuTWA=DHAA#T*Ru7}T3&e zfYZY36}~8s{;RGa{RMB6Jhh;@t=?4BO)!CryM_t>QX@WZ)=#Tm3p+)%?|jWxHZfjE zc1*pVn@H9Y5BgTU&iUS{*959d%}lmmq#rM<1Qnt%MuOE=BJ%C}am{Kc!HZ#%A#o$Y zQ5N1vFsTy!VXTv2g~BHR$OxB(mv7gPd;H+=Z!Yi!`*Ht*g1sjZ>BkjUi(s|BY%YUg zRF+yu7zDk8W?MmDYO)8I?B9k;X)EX+k{uKDv5$+OJKt^v{nJ_}=)+ZCj5NnsZsogB zKi&}|3SvAey~#!>B*tCP{^EV8Cg`dCqXa&=KiTutf_uG__$f%RrMPAb2~D~iXpfpK z4JVvxAOG)nu8+^|Lq%XbfwtZ_Jy-CeT_pO69|ThR_!tMNB9_Es9OUN#L z%Dta5X34kH#l!A%y8Ca1FA}8=Td%7xp_&xz{TCEe(r-74^!|H>u)I6@T&tf-7w*^G zH>$IPG}|iW6v>V$<@1k_wZuaitCR!2bxQdtoid{sU8R9bYUV`;fZbjc$%K@nX^m5k zM^B}sW6II{ca#w2=qiJ}=)nyRGNc@PI>>zk$dd`_l}#^kEzAAS+On05sfJs2QsI{U z=4;ooAIui|P0LQT@X?k%yWX|z!wR3@vSW4EL{gi)T>i*i*4?IEQLts(w2HLsG#%HZ zU{r{!*MCb{OC#TFp#8*ELE=bWB0p#g2 zl`Cs3b}j#?S<}kvW?Rc96>~X1orE)`5Y87IE86q#0LOVD9FY4#7@k#`)*TsBrbeqA zB6Vjb8oqSOl*U%|z)Z}y@KI$dy~in2ABE3Xrk;#e7B&;t7F4F}pUYXZU;-DHU(WK* zOq{KsR+*l~DoA)}J5sZ)GTkZJF=e`~L6qs*v{j}qtDG|3I170?l!Pu#xJ74?q8RR| z^WF)BQPD%ajd535vZq%LDz#p@5IUF%6dLpPd`-kV0L?9zny3rhZT%u3VIqg=p_d8g zmY3J}3Jr7SHkwB_*&q!|ZIem)LNq*#{aB{D4bt%Kr4bsA5*qx(y)D`kyhQyLRN-tc zeIfueG5gr*XVid1KXI)ofI$42g!IbhZ0U6Wi8NE}49x67QnsaQzCqh>@;x()!%Bq} zcQ!YQOM6~@DOk2}>bB2(R$TlhW`M{60v9@NSyDTNTXdg}Y|$+@^8X$KTsZEh<{Wo2 z>>1U$H)C+x`LRA>;B0$79D}nByJ`>OS`oiigJq+<(C0&96kt zBn=A(piC^ICP8v1Rd;;i=$jyZn_JVcD9nuEsDWeZg#fZd;u?Q0~bz@!is(K z7KY+z^&?_vtkRDV0rZa_t^ ziq&W-?jK9H6pzQIzOWz3GPz-jzl8tQa!C+BA7IG+bdZ%ov={C{oca)` zX4nExZ=k@B?O7lcaJNS470yxe!^expGC7;u8tzUm%a4(B80CuI#;&_Z|JUdj7Tk=5 zJn?2{YISd0N$qn_5_JxVVsLC* zSZB_qR@#C7=~g<>KX@#gl>>dLh(X-pTTP;$s5S*K&<|xI_P=f92Kq*>QDsGb@TeGk z)2^GYw#>+PA!dG(nY%B{7K#-FkIp=TdzqXdus>sm0#O1Ye3y1b2AU z2~Mue_seE~K{1HBKUit`*LD{EkK@r{adaLPNJ$*(AVcwlc7-5Q{|{^L0Uu?xypJc! zDk34VL{U*=2P<|EOAvw!g65(W6%cz@l%UuH$tvsXYE+_l6^$J`7K#WO5M0ED73`p* z?;2F}a+RX;f1a6h&Rcf5_xk<){rDmKo-$`<&di)Sa~evjr+(algw6@Q;mo)QXPgrJ z_K8!P&t4R4kCfgBf=lx4lwgN(PHCRh@n%L=*({8azUz$Tc^Dgvu$-OSk%8wc`)E$ayPjL*QxSyLG7a_ z_P2dxRB-~}6fkW47rQ<>R6`3YF{vh7UcOzQUUh@(qm8w^(31{=H1dtz6T~}HGHR)V zzvy|90qIlY2b=xo8Y(~Z8OfKfu{YS29~so&TJj4T##sfse&=5zhA}%#x?b7`!=~$} z;EB)2^;4!j{aCV%ZL}G9K0C%i<~yhiTGEx`rfX3crecTHLRYyrC^;^ zLo5klTZH?yq|V8vPSm}e>*_?k-lt;e)*h_H%5~UTtB;klhT$zK2Qu$~H@6=5vP&2E zkgvfC1YWQ0jeTNZi;Ps2$I`8={)t8Hu$OCluPTP_N3n9Y_qI3XEc>61m9xF~@2yEb z$eIcNFh-UY)#tES7WNQDW+7oG-9Q5rJA;()pT8AKfb1XOC-{%>WBnfD3J$;NS?zgv zKRu;P{xr6hKN&tM5nmszo5f7{cf4gq&EP`_!K!$Ska}{3shC0e<|1&W1%ITleCq?;oyIx?xRDm#PYb*2`{kP#_hm{x3`W3Do~HKqLwf_7lF04;(tZVv z)K9xHhuf!&sxH9Q4{9A( zCu?ED)xoxKh^s$+<{;Ne;V@SZD#+EXTLP}WIyl1BvhomDAJRO_)s@&C0R7kPBR6WE zZsw&^}dFJMm3Fu?8sFn=IF#>}PJjO`X1vz)g%!X7R1nWK)#?tAtclwc(5sAot>C$~(M8B^ALPb|iP% z*9@As`e$6AeSKB!ywxA$;#6bgY7yH4P(=yz)s1LdaLHJ|TFB*S0yG$)LuY=DPg8Fd zc8%uRLHuy`McNhnT)s)*(0=TLA1)J?w|x3SXE|PyOvN~p9F9g5$Y>xx0A*=qU-v(x zB0IW<14Pd^9bK1WngqH!oSm(zrLqhF#>yheqcvU430M{<*lBF2W~V;Yu@% z{*y=k?3Mcm2oknWl z>Q7dl1_Be%r;S}i$TO`~)}^%0h)N!nKA%kb&pU=^oG7ELm6Lt)1~l%;!;v85q~Evm z{~buL_Lk>5?Q*W?q*Z-`)Jh&LNsBDzjus&^3ZC`<4IRN%YB+JTYk*tnG}%vw(>F{! z8)v^dg9a%OT(tb=RRqeJt!Ndb3DU3;+|JxW(u^swB}DH3GK3&MEI~x8rC6d`%*SaG;==^*4|$0F9#AHdRPD={_2Z($qvqiy9POWhK@1 zGu@17ei6Wwj@<=ivZ;gcdmHj2#vQ{_fx2k_ZHjWGnBrwq9Z{VBIi4dXKx}c%CR06Q z3b4mgdE4d;Upu5rx8e$*Y~%*}P1HWM)*_RA%0%D{5pmQ-H0v z!?%SEKHxvWIPxseMUud!&Om~{TJR>0b;a^qZHpSDfu%k9x0~>HBwnXwT3Wt5K{TDJ zKuVqP4VRRWechz*O2@v!zMjbJpfNdC<{4jD)M6bvB8@|7F?6JwGU3`YflgW7oMPO2 zZsd9ftrdSG76$lcZB#<4Q#y;%2)pw%ssl6iF+A2YvM>;-6wavtpohEEK+h^%~TD5%G5C$Am#Ten-`lrVeFozuUvQJvvQuZ=f_P6j+W(G;&g zyW&@TmNB&$zoux$<(28*wQTWUkcD;cStq4Y>)WnO@^$fyX;Lmo$|PP~z#ifxaPYS} zIwU)>V`cM{w2q4))I0eZ$Eq-FOjyQpqNvyEve^ihgACr%C|x|@6c*u9%eg>XvQfGxc3J>8 z+*P_+%14#bS40}-t=$u7o+L@Q##CCIhv)FdrJj|x8}(1P?|#TiKUl!0aN^+lOH+kQ z{c$dXGm$GuVV(3-hy$=xl2kf2DQ=-@0psB?62J(R6|6L3znrNW?xjC9Zs=LRhdKu5 zLlOE3)vBX!8MaL|7qy%nxM^05KHmpo6h0ZQ5{LaVn68GE)MB$2;pQvp!!<+__nTvs z_3z?GbiSj$Q#0i-J&P_#Obp_kvM) z`=fw;CZ!GFzUs9f$tp|}SyilgifPvGZ}P;vE<>Q%k&OFaB`?yO34i~Qq%^U^U^@yg zndwI1-Nv&Agr%~l2F>}4?8w{M-YAir0omh!JIaFqCvZ+Sd&vewZl$nYMGnIFX<>TFj$R|HxP;2Vf=MwRwKOrWNbB31*6ZdB)}=9W z-OCV!%uu;7=1n9j7NSA>TX~p_4=Fnt5Gq+;e4wxVdphrnVdT2zbc%xMHHvs@lqX$g z!FiR#@s!{n_>{3blWc{b4#>Oy!0&^OXW8Ny71E3@c(9 zF2jW$-?8$(+{7j3Bm)166G$*z(gfR_sb(da}7yqjm3NzbBbnR9gRB zpk?IIm!q&%3U8Xnz0F4vt_eGm*8cp269NddRW-5lm{=ieh~6-TnptQ_tdJUE+&3kK z;OAWcK`yX1IR0X?8SyXduxyBHz!l6KGq)LtNB7gpi@a2s^sM>DgQ%5+5d|xfD;VyN$=z?CRYD1iPg_fr?x~|)q}A)m}NP570)ki-x{sgNmIq% z#7HYye>ravaj%JpZ;Fe94OZFI67wrJ6dmU^@-vF!H7_WNtpr8>8%43SZaW$B@`ada zN_j;S;v!aCZDi@xqS9BI=dFP^zGgFt#6WbJ50}|4JBThA{od|f)$i~?Hrt!hTJUKU zqoIK3t-crmZv6k1zv13?WNS<0GxBevprpczva?m5+wCOJM;Pt3R$}?i-$B^4f)o8C zu3V3>Ik9AAuO&e>IO?`_m5%V4nbaf!Rm4oqi zH_K-Z%CHm+t(u}=yiL+?K#XU@rU9)wfdhNN!rfAA;<9J6Dc=CkjiQXoXUGXuNDHY( zt5DEuGYk-pc6BYeG zh;5x@tVi@K-eMzB9}c1~74dSS0;UFpM89<>EBZyq_hiqZ<&2D3f#`3sLm|=sWkf-!fbW(V*a!^gXLEuG!J_e{aSuR z_GRd-m@&hG9#1;+A}BTvPv3N=318lT_Mof`8aM%8X*^v^>y4xeBsJh?%rWv(gnc6J&XA;LxB~KWte)??VhNUE*^Kpo^}BK)oudIc2*DHIh24Rw!aIj{WbcU-9ZcC4y-jUp@xSck%+ z-rSR@wRNa%Zcy7G4~vzsOp3)J3jO#1`aysm@Xf4 zX7Jx33#Q5ixV1X{6*hPo8a;K>F##@}DvF_xgAa$`+Ad#H0!%WqwAy~t(x}O^_o#){HlkgE%CNc(Z<>dZLTMJubdwCNXs&HF)-nH1rRh zzV2a_$4ugY7x^pe&#DfKzgf6c&I%1j(5QqaGa--iN?JMNQd%6O&Iv$+-I*4ic$KZw zsSZ>qt7YSO!>cE*J_4;Dg0B>^cm2$1J8`hCZ!du3lN%jK@R+Dn!2V&em!#ow?xeR@ z+x4-{7}=ULmz*-!3?RBv0hAYOSJK`Zp?sZ|-$NvVohc&Ey9DZH(Lfi~SePKCZdLK9 zt>&#MlMxJmOFlmx?`5qTG`pp>O$7qdKo9{V6nH@Jgy}ajlVhM1QZrtIA;6LIDYvk9 zmF!U)Pp3?@B)CVGvz)z9e~GCtoe%QQ-45*TD#>Q!7asz};Lg`q*m9sMr)sFX(iqY* zY~DexwYl9jx5DH;C7fHF^ak*KpEscmXF1eOJorx=}M3jKaPX*j#dspdy9)YGD17PQIEwD!maL zHla~7ws^tXaK0Im)Y!@JvWE82)i+Nn6-iG>zSvKb4`IG^8iYAjPxzV$5xAPe%$q!- zjexhbob^ZIS{o+Mf$)2cq4GM|KMWJB!jL>;q2r=7IJX^VSeQ{{%r4%NpP!}#N&mDJ z-;*NI4+YBq4067fy6B z@cA;hur9X)2Ybh$TGFHRTnK+#PDS*{Wbl{b|Txzr96sV5s)0tKCm5*Yk1ge}WCFzI*cc5`X9+`ZR38QoB8)_j!>v9f9&q~5hdUrF z;&>AP;^n@o(LHhpsZn`92hv-Dz zEb8pKQEgNSw!wxffKa=D`Trr#XxNK6@N|qLHDMnQ`28YrthF;62eT>1M=6t$0l_HJ z{aU)SV5Em73W;blieV@CP6fxvOCb0{1zVoDA|!MY|5xBEyJGb zID6?`|CAGVBJpZ8@gC5@j(EFx{NzinYcS>VGTN^6i|CuII9dTRv*HlreO3=TXv!;MaS=xSK0OuEVm-{fynWf$aNC@2rdxA@;=20D?s2}%H-{4{O4YGGx z-(a!CPhj7AINE5{xH-uVr6QS+;6RC^y>@5hLjX!$8LY>j5(dy3(i$_;J-$VOG|#Dw z6J-&we{oNU5lFMfIPpZ=lbvNjlZ=xg3(93Z6ufV=0u^o7NazS)rVHS#-x_Ozu;UH< z3{v}Z-mCT-w_#^A8~ooE_K?xoS}o2Vz_xHh;%*kZOoPtySV~RD(I@OwB(wKX+d-M7 zw#83q8w-LtYYAGC`^Jogv#C<_Mz{d5`6;v6NOZxlL??xL}(aLtKrD zJO+YX?`Za9qX^pVyy+zUzOLM45|fiECDT+&9%!^u^6sPjmGw{U?z$^rQCJGT%u1#W4+{rSr0EHm6X*%0QLPf@Lkd*27dM0Q zA(Fr_-pu_~fvLDwKbNp?0dHS4DK33*m3V3WA7Dc6SN!9qfX)f|YrE(K&!XOIamcy+ zBv!~Gx|1m+qw0&XLe*kpv;H4guWjJ!&uiHDt?SeQZty&p9}jwf`K~y+63kEp~V}l&x|4HE7O`dC#36t!{^dyJP9Lv%8}?ovKDS`cF6u z55fhow_ zkpS;iNga*!@!7;KCT!&;?t4kYs006Gx$;-#Q%u6c2f_V?)UL~YLGf1@SHbAE5q-$< zloeCml!M(VHJ`vvLX)F*oRd?@X$W$3no+gT+q((~ud++J>Zz6v2Hq+L zx~iU1``2zP>|fPW#omCYOj*3wH0QDp`SE(?RmDbc*#^!xo=ZOKG&!fgMTWn?@Aw@1 zjFus;^R@OglnP0Nf_X5ODDX0b9S4~3AMMLz-H+nm&5!8rKkn-gS3N!JT#>>l!|^At z^YwhEyHQ|-6cyGk!vSRs6;j!bpWMKO)N({TzX-CA0a*;Y zoV5wHy!IO6LvJP7L)EH9$DwU*wQ4m@P|x~{4hwTTANH{dyQ;|oPqe2;0|BTLR?Y^x zm?I1Tcf{Af_B0N%7FQYQtD2OjpZ0<4>9X>hss=zS>F83tM{zcAGpEPbaX~GJP)x?I z>bPuP-BJ?>J9wP+Z^A7ZVPO}jQvfNPSj&=4(L`tKlW3=a5Ud)s$xj}uc>6p1m*#8kd1F`1IX zGwfXHg`KFoHn=NZf)u7qf}u?){A_m$h7?|TjufsI6_myP@RYX}h5Ix)$XO{IUcg&j zFrswIqrn2+hPZSD*k}V;|HOql;y00l-)|v#f*C%$n7n4@y{UOha@Ox4d9ek&t&>DP z(P|$%eSZBmH+|mpJmi^`5oc*S2bSjQTsYr&>XkwMlROpV>YH$qQX$&v1^I!!(SEk^ zkTQXm^(*c{Q)!)Znk_sa@Q05iwKWRm7(@hu48 z8NNAlaU#HTGo}$?bIF5BU~;G!4Fgzb2Lz({KiEs`#(JA=Psjo1&cbO4&_JfTRH0!x zd}dA!?xeB>;`qpE=mfjio%Qe3PZblqxAY8UB(lArEuGvA!cH!SC&(xEQLABz`G0SR zWnR?DBpB>v=E zKxWb%G_OllqNc{=?p(^|X!?{@LEu}y)%0~A=M2>D5>+)s%Tig`n$h$PIl`H~)mXA| zeJ|@|Qn*rN2fdmp+3#Kl`7J3NHho8LQYe@{{DHvqwJsI&CIG>+lim!8!t!>KS8Y1? z2$Lrguu$`qWV|mbd0{cce5L~f4VlCy9j)nm^JZuIWc?2Nw8?U3`V7 z$u!AX|JL3#pj&QeD`Kj`z_|9-#?o7fOYSCv$n%4rQdjrKpOvri*1kE4ts&U>m4DM+ zEW#}<$D8U{Vwe)EXZ^_o4K~HZM(g)+^*aXjM@fA;yGFFSNa;m>2UogPQ2H2_#sx>{ z&GU=Shj^AB+`}B~)2N?r`j7yi>^Ob}OcSmoHi5IwmsRmyl&d8h;-s!RGRj!-X~EF` zl^_8-ZxvD0LP=)4MnZDHIH8Zc3=2@8@ zAbByFuIB7MlQ?1*E7R+4bTZxZ)Q{GgRctc`;QoV03qLPgZH#Hddh*o-X8jSGUz(bL z7re11V=ZC+Zl#TO5&@#DnLwRJ9~i5%BpnTC0gT}q@(o$rITg~6w($e|1Njxjh(K@> z*?6bbtj{K?X5F!z;L87yPqAi8xsVi*;!7(3vlL^^O{Dm!jZ}(rJK~B#w04eb?cm3> zwcXI#t4S31_nL-w)30}*30X(wDU~8hzx$*1qkS+@U6YD^jt3#tF)n|IxQIiT%NH#- zFsR&%{HF&C)ZwPbb{H%?veLENK;+VNgk99DsscnHSjAFiwriw%1d6K!h>%~>pT+HM zVwxfB91A!ci2}{+{0T`9c^TY>D#|AKsh9ED^-eRJWfj|c85Op$w4sBxw&yf}Px7MYsYV z-=4IL_T@LRvX^P8o|`F(6-N`T5J{7PfCEYO%GAHb@QP&u>ts5^@3EtI)It4W7TUu$;^;2Zx&f;7Du(6 ze(BlV$&F{g)7Zd+V{KXg$|*%Sc*9*Oe7WBC>N>VvCwOuZm4+;-Z@KADtb*fMQCBHY zdh;P*nJs0bZ$`|8lDndVz~+Li8;mtVwm(+XLEZ#u$&S*MNNEbCIIl4?f`h1C$QGQi zLZmh{#KL!|p$2{D!L0iSd6o6w=75U>;)HK|HR~@mxzB3u^q}?iTJm$bI2VZ9_HDn$ znRz)lURJXFFzn}BJ8U-3l{ZUEi8F7rw)=ZowTFIvM?*q}u!y;6aFIWPJ35e@Npv$+ zU;&?GS;YSyqCyFGS0jSy&62H3o}7p4>t%>Ggkh3kFZ;sbV;kNMM&h7#Q%ET3!$v%#-$r9~K$mEJw15PZp>HZ3^i-TDwRHtQb`C&5Mk+`ych z1w3*^7|#O4n^=5AtT}66rn5ql<{pKPjTN%oxI+p7r;`PzZxnACKB{V2k@s^Hx|3rK zZp;W1X$QNbO{;?1N3lW{we7>GO^y|^sPR4vL^;3mUxl8=??p15Su-&j2eADyB$jSF zvnSFE!~rHAq@4d~sN;N9{kNs{d>|sW%#ypYL{?z;=W+L1?9?x?4PSnI zG~M>$lD(o!ZI*kzV&!d5?ThpRTs`JM3Dz83+m227q%Wt}6pVdkH@lVQd>AJ)`9} zkCrF)W&r89FNtM&Ni^`k-U;xFVVlhN`~1d!_0l^Lkf})|>#D{TPq+1 z_y?qKjf_DCw1$vznxGwu3U;?YgYGykdG{nS^$HO-+?Ys;)) z5VmORKzXdGfG!*>CE@6UgjDnBjpr`K>Cu*QmV57qx+TTQP3ACZ&b&2)n;qVA%eYdb zBxucF_naTE`Rkqw=KVVOjd^Q^y@%@%7Q(H9Re9I{!=aK*J8Am;ON+E}U66k828;B= zLCLpm$*OT8o{RjeS}zgdq5J%6UpEL;i%5&mW>Ur*cAo(30uAIZNb}}F$x6*nV`hd--Rf0ZzevjE~y1tz~MoJ)Rt=}7SIX+#r1m9#x zrJ%V43Te@vonF{!ex}1ll8|W-46sGhbXoh|xE<0q_Nhd3<)UpgF1*KBN(lEH!;?uHfqS7B55?; zdzo{=obmwO$>hyv2$p7Las!4J<@!s%sB#+XboIU=>x3&WXm^D!-pj#l%aq-!Ntg(G zx+i8ZEeAu1`k9_YZey}EU>wTA4BM&52(EWYZNz^@sZWLMz~nv4wLRX4Y)sNR@tdp0 zwG2eHT4MjU43Je#DADBM3>_)IY;XB0^D_MM^j41fut8gzbeZz;_7^NVmsv;$jwdpL zA|Ok*4NtJ!M%|G#2G8*0f_*GMxJ3+g7J3=s3F8U!27yY|FP#y=5zgXH5E-nj;Y?Oq zkkme0*1#RcH^6S%(UxYzYYd@}gWa6N>Ikf4meyT?zQP0;>C$z(B!0-Y+Ak`NDp6i4yXRogl^2_?o zEGzv`0yVFDT8h-o;-8|@)NB!aig#DBStHw8N0Vs|o8~f#-vJp*?+DqS*%w7jFNxea z6%^xkF)VA#Fz3(HP-XqQF)u+oz<) z_VS}7tvQ(GJ=z! zG@p5#QyMwW0j)9r>BcBJqHG|8SWf$sKnX(QsLwbgPUB5zOExx$Ci`dV09 zn8u67sCs&dvIcdEie#q-_jM5<*v*qZZeQ0IpDyEQ*K9PQ4&$!+um_J+K=5H-`H-lW z?;+b$g!ye{txrP@OIBcw1CZCXoMh=MM8d2iWQRr7&9;y^PVsx1Lcoh6%q?MLs@Lyk zF-91-BHOBJGWmO_A~&Fej;wziFbXRTx&ZeXp=yD?zkOFG<8*RA^nHpS@xIsdiiP%o zy5(u772nPy0E%;iE~QXmg<}hX99^<@Juo@Q(a<5sX{mE3b25qhC3esC%Oh^lF5Tw? zB28Cef^qgfyGm0siSed1`fVc?^U5!|)j91aN(eNOau8cG3h}e|1BhN_7Xvj#s9yQL z0e~$Oz#s?U2?OAt0)XDt1f0gGAWJ{lmBNji4VFN})X*NJ0KX7AgvL1tZ-B-v9Ke$d zz}_K%ZaMhqop%CAvDvvR1-IJ+P**6ZudcHi(9VGR>pc>uxH;83Zx>=Gpzc#p#{{7E zR!~nmP_N1UgslHU7}P4WNPWY}4yzLs)F0Ba5V*882=o$bJTjV{INE@kuz|8XlNe%} zL6@B%@TF(XF5J?o&BSt%Kln)@_<;cQ4FsJ@?B}rD-heJ46tDd9py(-5R6W4`ZbGh! z6YiqFA*ES=YyI8C-<$GxWC$7Ea%o^qA)%PRq@!xq%*6L&i2`|6EK!=6gv0_0SD5==IdrNG$G`IjeOt(*vom_e+1@ zQr0)U&VP3Et&4iYP3m2jP4-Luc4bTNOjYZo+pVUgatV>6a7M#}vW)n|AvCT+p;tMA zTiB|aX2355+a&)6E-zRPV1_BTm$nSCRjNnmErxh=rYov~9p;Y1a2vhQhPmu85B~0e zuX(%$Q=q$|wpoeSIL325XLjk>tH__MI9|ZEC^udXVkU07+UoWJX*FCsze90>!bn+B z=tch9@aJ?CyTVj}{;YbNiLe5C+>&uP_KW@z2*NldK>7~d!&!$~0`tl{$xanf>2{cb z{cm7a><%!9V~pqSp;S&h^8envUDWGLCYVW@jtH+1UdCKWrn5KA*beySdJ%rGw7(RE zxuk5 z>M4v{2H4d8@gY=R1=pqu9yiJyr!;jms|IYVps$rN=N`>+jFjIP{A4%Y%}`>U$eW8g z*7;C(Nh%$CBF=3xo>C{bw-nV}0ZK%)>ipJZ`g)1!utBohM3$^+m#k|^GAw-Mf~|^L za{m!PrW#O#22>ud{*y%0cp(zS$(V^uj69UWTs7YX?MmyHQNKRJKY@8~V72yGA!?9~ zv&`t7&h|@vTXR6)^a?K7cESa;5e2IAll?LWwd&XPyP9?|Rmr~T-~E|y0Qn#LrT?g% zMblPPb8zx+7{}Lf5Z8YJoflmTQku#`G~F-jXb77PAX$2)2lg0FXGj2atiWDF|4Dv~ znadGF4*7H+*8S8_EK=`YXhJT=6FQ*SLLyz3*3+_Sne&GS8Grv~aJ^cJVmI{RU@>ir zTe|*1fsJwh@XaJ3X&W?^sUg}X2yL|y+G^KN+ak((K-;6E9But})|@bH z_lyi^D+$q79Hp&)QvurgwI{s9VSifM{y5Fi*1fB)G3wH@uy=gi6{KMm^WrFH7t6UuJz>>tL}9XDV`!DU%HV-J)PMV|KfHzx(K*kt_**| zim11sXa(GNf$irQt3)r2g8^1t%cF(jeD6}HZbP?|7~iVt4~-Sq1BK3=%tE5T*t5W9 zunJ5g;0XrMWEo>LYKD456+2nX(d+YnZeNt!Oa^!daU<7khq2o1+`)Ox?j-swUS!bh z;QzJRb^k`Q!7UKGzCaqNGRG5t4GltTGL7;r=bcI(yUZ!ViwB`RQp1XH`v_5l$&{g1 zT!6H|vi<-pr!&sOlay}Fr@EYF5=X4D!oO~q6aJnw&EA0E{}BZo%@2cUD<;Hw<;`{)pWPVt-sML~_VcBHPA^ z94AD|m=q>b5`w`ZM&u0#C@B~$NaU;$j>tbcXik{OJ{Jc>&g8$+XxPv3W6WIINpnou#V6H! z;c7p^xrhjjf>dJ3DBZ8Nr!LUIY^pq0l|lB|$zcmBt_;dcG)X+&eH!Efl}D3-yMGvB zqiRB{uT@*N>IAW64EhOhaA?3<8NVk36i~o;o{~y^J#4#}rD1b~cQXS3m|>#jt=CN< zGO(i93&;vbu4*s0VB~mEDFk@takll-P3u?XxBl1@EX1`^ZGBq3ZGF=J*7|ovxM>DE z&*ZgSRh$o=CJb1Isz(4?FClvbUvQX8va%8)>VM&WD2CLC{9h0_6f-}Qe89l_j1yF= zBje+yWh{_bwbBawjFX(euj`Dwh*vnMr8>|6aVbtg17SgwmL9#!Ncu&~C~!-nKob6) zr2q_!-hmV7r}<&8Ya?{N$Q#63nsj{Tz!ZJYIxI;#7AK`l);|Y+16UV$$saQa#RYg7 z?J$c_+qv{Pz>E$OCvuSJV+INM#?C|51^TFof47~Iu`$RXIX|xy>o*!`yxJOQ`|X}$ z#%tQ6#RxmW?dq=AA!kyT2)4%Rvrfe7OG01}rLfpB>Go0kkY^aY)FA$Jfis9L^mjr7 zYv1(ue%JGsq8E0N3P5wxCsITdg)Gb+6>h@1yuigE6uTLK&pG38=?C7#ZpA5epG%t zs(&9}fa+h{22}qv$Wh$_&Z`Q{v-}(kXjTQ7C{6T;Cc3sfwpCUCTTRI;?I9vWbP~j- zUwXL(F_%8~LGW}VKKD0^$W+cXBSS=AV98FXKR6Gq*{ES*I<%gOCOWiM-jRpaW(Cli z2)8VPmb~|nkJgk;6|EoP7x?0{6a(a*ac5<-%wgRf~{U(7bd~>2xg(Z6` z^{al48Gx-HV}_x+4Fgy8KL^Q4+E+nk>8H$ z-x>-~{Y&eB>K{*VRQ~|Z#|*$AK+Ds#qoawgt((|Z)BrpNv56ai1K|=zH0|pT$kaRo za4fK-DA(J*KXdPP^trs^|w3fq#@E_wx%m74u z$hx_;2!H92CrjMnv0VdR*3XX zERZ;~dZGjW+#-r0IUpU&C-|K^oiI>y1;?ikwH0%E&>m+pP6pr=j zp2m)V|2f3j&S2cjxH9{;Nbj2vXZ3@mhZFSc1&zNO;#{~3>PzPjpjcdax)Y0D?KH>Q zXmWY{seu4&v{3S;Z`Qoa-!3?I?9ByapjRuFNgSB7GVt$yP6iI62%=Z|{~)xP5N8b{ zr4icxW{7j831mX-N!wnhIoi&Lw@9kPv`rrt(6*=0qjI-Hl(tK}0<@jKq0lzSx3p~& z&^Bz>Jo$d}odWVbHJa#{`PWTG#OJ|Vi->p)Y7`LhFE(H@-cx`ls)K-2tp3q9l)xjR ziLT+4ZMbi|;k9oUZ1_ym@V$E>I~L+hGS8XUkZ&b7>gen|yta_9W>%?=>&4Xsu4$@L z$(+3E)4!onGmDi$D~)gP`S)Rs`s+UC{@*p~x(d_}H0sn-oz$&tqd8%zJ9WGl`|ktkgZ!$7z&L^9>;=Qre70?Hs4=Z)((oJ1PZ6qh=0s zw6!ll+u5fCv@L!!pzSUB?P%M+5N++1wuGZC+uPCB7PQ3#`$~Y!8!^s|Cb|Zny3uIV zNcfczjoO)*n3`=4 zka=qMXEu`P8my8A;We~{s~C~?mrtM@2I!V`9+S(+65Rlc zn`fyKnM@7;*l|u`YBzq!l+g5`wEkNxmH*GqA|gJ+beBt9BpqM?P%K!w8d28I)Kd6$@8L#uEFPOjcSaB(-%>VJ&0NU z(ATg^b#i|Gn45^Up*p$ZwFow@;V!n}b?_Y{4L^e#1sdMkG<-Z7_S^6yq=aOFMBv4H zoQxsxKkZDx@^})OwEm&*lwXJfB5$);4x0q4i^x(+)BgAc96&pZ~}R=_)bw}`}7}yK=z%3md&iXQhqxR<+kezDBI1y z0q;!W%FnE_b*pp&S-Z8;HsN!j%_!T9J7To`H)Xq?3=a&+Vda9MrR~xa9Bq^75yfV1 ze^m#xjhG$KcBcGxv`x9T0Bw{1EwoMi)Y5k9QI58U!Qq&)Z3d8e%JxTdB+)h4QyRno zxG9{(h|JGGjRG>i3z31KoC2>R*6@UA8>(z|(L~qqo7WgEza4I6q~Y#`8-79-g|hzF zbgE)5!Y#}jGnYyh^)sXUjCCNB(`q>TK|M-mdg5OwUl;kKcl5iL4?D61UOueEUo=^P z!LI^8!%8Xh0VjsV1=#bM{+%j zjU=5>#uN0C?qPBv0IROa%&5r&v1p8S*M4a~ndSjFzw{OWt(yxhUqcj4H)JGUwVfEO zc9hm{$;G)gZU+YzN?B=|F_*4TgswU*6&Mq5J(*K3B^Nv1P%S2fH19^ zkpGu;y0Q?thI>WZ(1!PqCc1{Nv<+9r8~*v_f(;Kg z4L86g^pE97{tfa7y+Wa`g^rC{64v`w+&zku-H?Xay+7h(HNRmd^cxM6IjC^e#kj-^ z->bsXwG2xBxVx5guE&$n#xVi^8}TVmKglV~TxfZ;!}M)nn8Kh%9BiZLds z7@YaJt(RtG5-X3R1j*TxnJn#S;A3mK4wZ#8JpZwry$0!5`FK@1j3PjlAx7Z zj6aOdH_A6|c;X)FOi9lJosf2Fhboy=la^m%%gZ;mZEN|ra{B`TnJ2840B34~miKLW z`Nr!KTK+>JLCU`&<>e7IprP=jSofEHz)|%4hs9154N*wwr`0bBe%fBv?{hij)F6iJ zPc>W7&-#0rY@rj`FKf1PBkQ-7?AS20@lT>wE8n+jHT6(uJJymr%5GjYi>-^D@X5}m z3=M@0#X1v5He$~#mewC8hbY|JV8@8<(@*Xd&Xgy*vOA=I7u=f%Qbpm?o|=(KJkrm} z$GxUBE?Wx{ZG#=u*mhJvV<)+Htb3q3E z+Qdmx3Ho%Kz_==aacT$#nALeYE)C?OzyDhrMZ;3M!b*{mQk9aD`#L)*t=m+ZHB!3D zmN!ybp;EW|_fASr(DFr+5yrpIWCF@)3yoSa#bVuG`n8}q&g)HsEk)Sn=T8$vq#`~~ z(N8OWPmPR9=i!=d#V;e-G4UJ6RhLX+)IuwMhaT+2@0zw~Ei8Ve^;0<|$)+ZQ1^88z zOYz&2@9tQUGo~RkK`+a1WH~1Z(u4EGxe#G^V8gA8dZsIaN^nh3S5z&+BIw@{mt-O1a8mE|z#viY?873^9x;dQ0 zo1pQGP&kS2m!?zWgQR3aF3w}W@ZvUe;-}_xOOZM2y6N%Alw&uYd83Z*D|+3N_A;Xr zJ-rNJ_VffNFT*yy#!$=LGB;4&wb2)Y-Ml5uFd9vl@Z!1P^Qj*A%!+|z2jM5Bga6^@ zbo?}_&B4$4=4b9(?M(6n#|SDYaGSPlWpJ;M+ki4GET))SVp9uQ)YCsGz1OGUJZ{Eg zsx$f%_@(A$?O7Bk7#lUyHMGrRx7uoIdcJHkGTrCWq|i4pcftei!7?M24zodahxJfDThx5S>4VV801No2i$ z;WDMAHE8i)<44{uPKhBkQ>W9jIC+dah2XN zf{o?rz88deI$QHBPd7Jt!qZ1I&+_!Q^I0#((_g+8o_?9NJZ;+B@pKvc-|!S&v@QJG zGyqF1)THAS{VF8GVeV;5CfXx*!7jaqH;l+|JepS~d3xs4>tC5(WP&E?kL7_zd1M-Q zQM6QA7-m2}?C(Ob^}WjKq`nL)T85WFbKRg|&frwl62a8dQEOuv{PuYv1`m%FvYeh| z3JIsX#R^%L*GVB5%0BQA3v3Y|xm1nIlWoG&dO^;AsxWe$!^piBD`b)5`!<+9>1L?= zVudVn-<``sK*T(Gm@D}Ex|B4gS)ZKr1hXT zDa?{=Z;ZpO$?x+ZMQQ!}D5n#Xq1Re#P%Dk3hU1SYxO@WulQSjX?e5g}2QEcptoQ>N zUZXajkzzVs-u4AiQRdHp0RREwc|UTP%qpZB_^{=ZQcCM({e*r>qsSe2P60mu<103t zICAb+#^x1ua{5_SB;cBah^+tJmGaqaJ{RFLo9c-#5RSM0>g0DZ{6(o?*rfjADG#G6 zRrQDV>>WL%KM)Z(Tmh7&QW0imLM;HzTm5tMyw%sIi1obHAEz25OFpSn58T8nvDqpb zVj07UmpE_41O0Pk029V%5V@EY}xX-(X{9s7Q??)6j;WVZ>`N=q$z0T#|Vvc`-<#!{98 zVERj5M)|WWoTQQpU;m^A^Go~o)nkD%E(m9emyrw$R46*WUg)>Yl>HZUM*y6nTM|O< zQ(37BqdQ#|iu2K}{4eO1{TFnb>KwW=aAjJN>&M6LXQWRl&oml3YXd%9!8oH8W&38h zaK)5XO@6%rXQZMXym!$3U!OrBF-6(u3b8P$jU^1>WPB=v)#Au07FmDpmZ;5M!|gp6 zhOlX=Ht_!a z4JnCr-LyKUa0}9Gz5GDgEFx;qUf0^J80H>90mLh%ZN&fdQ|tw(I+jKv?8%hY?*pyN z@is&^$U6>AMCI_TVu=Boilti?zI~b*7{|jY#cUyWAE+YOXm6gqGr*o2q>C&8xo6%% z^_G2u3~T;*eoyg;0@@ycK&wS--&nC`gYL&P(g91d_zXj{yxH#+ie273rnRj7Wc^Aw zp#EB}k&Kzk5jQ$|^A1vZ=>)G6u4T7RSt5TL7voRfIGoZlS$}O0c4vl#NJwm0p7#c(046T7oz8%ARh z35$%jKS~@nW<>nURP_>^KcKuKp7obJ7~$4?`YAxc%Q^aK`~JY0AI4m@()xSB%iQe| z2_9~EJr}kF_v}~=E)r|;m!J6)t~`h=IilBDO_VCm-9+jZ^uD`SsA%s7{w*|M0mWW zMrFF{+m=1~;o%yls&5g{-y)eA@NEdl?kJ5MUaeI1Eq=(|#%PTBi;qkzvpG zOwYj)O=gS$G8;hl6U*^G1hddGe<1Xr5=Z?gOJ(cKG!2Uix+8dnXp6ivAK$7-a1eac33$AMZ^Q(&IE9_ z3Gl=bm2VB@+`ly`5m&5UmbcAIpYpDU6fRjAIm-@q zkoT0r;jqI#;Anm*=atSu*x_uhO2Tj%9!xt~9OJ4cvb~Sy31;}b$K*AOY-yg7jQ8m! zFDC6*y^n6gn^V)i0$Ui$>D0kZYcA%l1=C}CZ=7@l*WO*dq+X0o_>25Tp~E=-ml17F%aKO~Rp7yvT= zFkQ0+0U4xpqegL3pu#e1$nrG1^>#yaAl-i2^Z!muY~(R zW-W=OvSdsb@0`Qc#oMu#t;{h{#1S2`36i|>QBp!o!^wzm=;XTSVixC2K!qbU9gT;@ zxEV9+C%1Hx*&u^?sx3-^mS$U6zE$Q2zU5^83>5YnNePD%(pP) z8zZTxPs!fFVt5B>6G0&R1XxDOs1hDEgQ6K$m46gel{@wcRHYky1R$VLaK27I6(8J> zGe|VYU0zip*{Vpqp93|Oe4Jm>q8hka_D{(x65EmW50Si>BJKaKDAEoue#K5oW)e%< zJ4M!xKJEW0H z2{0A>qcE;`TphfDaK5ssR>nhsq$!oQBONutZmGFyE z6YFyLH=QcOzpz8>Sh@1Aw0=4uA%&f;mjLqBW{t2ql0J+Nd_Tv^fQ$ zkIn7o^G!znRao`@^3wXpX|Ig@W*S;!CWBk0q_~)3eMy#Ds&St!EHuq9)!UPQ z|Fapsj6ToVS@n5tSD)wlQrb#BJ2z@y{>u7Cz~i=hy{FS_F(G++ed%^a5Jny1HL6jS zZIUXJ^B$&7*K|OaXm!&8A|sF9jR_`}9|Lm6KOwTMIvbYldmdHUE~crnEXRK3jWL(| z^gnl01A7`obfY}j z{14rmy~}p5C1*EAYA|!A(A!QFN$86iAHzbXdzI~oU%w+-S)(ZqPk7pQBvtsK*R+r4X&=wr)b{bGduktFHI1xm z987$0T7ZA7r!Cm6e1M|wV0Qy-x?uDuiZKR=XOT^H#3z_o)N&zU@xvh~-L@Ni1FwCM zrI^pE1eLF_;iuaxbm_2nHkfCjN1eJYBB)7)uC|FrH~+hvPyMljmZE ztgNnv2MtrEj@8YvLKQ?B*nTL5up)L3ys`qzb#v#T*HG>cY$c2#*EI&R(tzA4mM$Cs zi1QR5=M%1O03YQ10`4cm?=Ybvyr^?tLm zSbRE@#0QQ5P;+~x=Z{Mrjvw*3M#jvZRG(CopZ}2(rx#5E^G!y4L{Eveji)r0=Eo?s zS#Ms@k)92ddPA&S;=P0l!YdioHu z1--oW`Iu<0*4M{6R7VsxK3`H2ZUXK)p=VZZNRd>Op~Oz-~DiZ7wwF zFYHF~urIP2#EW!*pCo0(`T7GRm^xpIolvvrMAQvHO?sN2dRwGf0o z#VY}+rsvA!qKv{lH{-ZMJ!iV7AglI9$O1e?w-SGEK-qfx6r_tw)_1w~DF`If*dZ5O zDJI;?&&+afvO(1n`D`Remn!9^l*mIbccXcW>W`iFjBCc^-H2yl{+=w9{r{mE8?_iN z2Dqg93WJ)ILGlNTICfJ>9T80(qp72jYVS;!5~y$hs4U1i*IgTtL232+3i0zgLNI}u zOaVTAD|`%QH<8YGgB^-BX5tHMYUQ($h`LnijE=~lqa}By2TZ6vmThPKM}-R4Pv@EB zMM&0-fL8Xp3bG8s*px=3$lW}$`uGd;gUltDi!VfBXEXcIRtJV=7}x3pWd7Ah7%>^h z2M=+}5}DU{At}NxWua3jns*+i@nvc?@!%P6>aV%jn;0pW^{?JUU@lRH$RAxMogjp0 zP%YCa2wJoSyw7~|?%;?L^z64iL!Q$Wnx~j%{rM)ZnG$h|<_U@Td`j|S zk*LRJlG4QZ2fl(3F%mU!BNvIf2M1U2M4U*6JpBu&mjgSxPGm)mu{k39n~o=vkH+@% zunmSU&$7sG$6fuC7f96boZ%r zKl>xFya0h@N$Jrtqb$Q)2}@Uy8np3CGn)_Hk)Y3<=6JJa zup(?3dCo{oQ-b%$%yS4?|4Bdzr>jI{{SS7*g!(3oIWh0^fqsF7Dap`^yJ=0b7j5F3^O^us5 z0ShCpT*4doJ9)DKK$o5c`Lc%+xI`q?kkK=V?s}Yyces$(ZIvvozf)XKRt_FC9o>p1 zFnG}PMg4AW8G!zq&Soy&NJ?N`N*;j%Qg}sT2iiaGtZM>HS#0wY?*h11F(mKX_{rn6kNX*8St~AvFiKihX=Hb3- zn48OkfNsX3Zn);&NalcTnU?iuaLp|JY2WmB#ORtErP}mZC!GbhV)#UOyK0G7 z)U|4S{0v&nR$y|_ko3ip6kr)5T9b&(fXVtT*;7F*5#JJgXRt49y09w!{#3BlZg_Wl zJngFj^GR*^wOVsL4MUw|Gp?$W7$2{yJv564xx<sp+Ofw0#|iYXSiLo90An{SJzaDGz~hN!wB zWzVBU3a6t7pp;pE@!KD+o40BZ*C(o)LIgfIoP!xPQ;Pi}b8pCKhEEr|L+&&F!CoJL zilZiLQTzVx3d|F^oYG;sET@QF%T;0N0f};rIWv!C=C6aX9L?$F_d;U1R< z_fWva{+qg4l&7MazQB#Y$ji^AFqq>_l%$MWwPz)nQ+fX?EkQPhwWBMN(SNZe{+h$V zX)%)*As?D3FA$5XShJJO>Msx(xD=^Z+D{lO$~exggH2c4(~v8rbXobpIk&%r%a)rB zhIfNurq!O{sp){Fhhss&vXpvfSo#p6kFTdLKmucSgPAe467TJn*3YKFH8ea9n2fuc z>uS&xUP>@&wBV*{vd*t%)d+5!R)_B+PC(o{P}MHL}DAy*3{ zVhy2051#1*CWS`ETM!t=_XH3;pBM~Nk#EX4q6}5u->A3nWF!i&!#Dkj@TeU%H>IOg+ zBeiN@d8+!VZNgupHuW!SQiX1*vQ2Sxg{)S#nzv?{)S-bxUql4@g6Se;s599_uTCm~ zKhQo_tS5@4+vny0i!frvrKx9`WQdy&9WyPKm7MkhU4cQf*=j9P4GLu?$xsITzcR5+ z^VXcykEP%d!hN_LFZV^zoXaRadOM>=QpN1qwqjt*&_d&`qCb&34X6W%l7%8=EgLtq zv}%xbwyFlVnK?}D6*{&f(M#T}yvkarL zOrTy!#u@81lp zSOne&l?h++2XAGCYvjLxO}dg^veNzJJ}AB(FN?*`J*^nN ztQhup7&eqEhGoPs*qX8w_UiT22Y^Wt5!iOQRN7M+UVDUy4C)OhdsHT-wn3t)V^+@x zJVQytPS!aU^3WkcNMTt$Z?CMCKOp=Ntfaw2HvxuC+C`FRUv0`iIvKTciZT#D*>s{n@g(2^M{e}SbC<5!v$>_5+WOuPbxVqqo6KR- zoOx^L<&>3d_AK3@lV(G369e#jBx~&5+_D2RdrIbz*^-o$ZDFu4waNYEHBE8x4vTT7 z+tZda9rJ=@rf>rLv&O zymZ(boAgjc>URNRtUmztr7>5d_kf_rk9TcV)DY>BwfQ}=7Co{SJ+ii}WYN>;k+mni zH+Sjk>lWgli<|vj6ELl-_e<0uYh=5*OV{q*4D>6|d`l-*86s8KPeD$SJ7V}Bx=V_J z-K=3Mg0J!=F%seSLw~a8OlnyEUu1^mzuomG{v?E3*6-XdKAYO(Ov+(u6}mmQgZNy! zQiTew;ono&KSZAJkz>6I_0!KwLq*cxjar}|G9{q+;;YOQR!ae`@*7g&sFr&Iud7&) zJnLO=HvEXz8y|tO<46F(lLn)rs@}lo6k(Ig-^4oDBDLgHE*(1&Fr?f&kJwUe<8)js zbU1cAUM8YUPJzc7O_T0eI7ZjsXInmjcO80BA!bSFFw>8~hl5w%6si}xm-Lxf;uBm2 zT)&;$qAU9+ww2@^NSUo;?A%3pq`vpw3H=<8V$1R6a>B59!aNn~V$q(V`Z3?RM!SROrS-;VeiYdHh)eDh7OI7tYX_ z)OF!yn3UM$N;UTDfp~B}LpOZX+S#_Z5$An>>TJEBjselvE1*y_A@ z1o-TQ>_^(t9pb*`LG5&3^D!r|V0qDI{1mn~-V{{*8!aCC{3xX3K*rOH|KRuOjcz^;-*idBNZ`m%B|YFa(;->w za=VN7SLGwbUI9NC1L5{kDzS=A4q6)eaYdmxPMLw#C0(^Lw*c}KtyS`Ag`E0;{v|p+ zv_Bxto^d?RoZ|C`Wp*a8yp8(VlWrp&K+QG!&L^l2(vx2QE>!UVZ&_$s^q@klR)`ZE z#Hj}2z&wbLf()Rl&9tY-58BFK2G7$F3}mSHe#~#QG{U7W=3tbcOjmdDSakreymPOa z{EGQ`U>kKWP7@gsj_QUxLg!9{!F5DK$X+b%QoAL>vSu;a99}N{RVES?^>bK7Uq_Th zP5IX4(uw~cXI}yzRguIUz!5}Zq7ucE$m$B70bND#2uj@Of*TMN4-jv3JrIfFfd-P1 zjL)a>h~j$1bMaaMjUoz!bMOQO6;UDHFUA8r0S~_azpA_6dovUF`#yiWOuD_Vc?5+XQ&H0-vkE6D+W##plT1S6C^)Jq0+r zT{;qs&)zP5`S)gLzR&p=2UAiTfWBfQoIY;@*ZGku(g#8B9c;Y7TcDt&?1u ztd>RUqW6{R_$n?c&_zF3@ko6xcWpAg#;Rr=riS^IvFV3LT4=&__#>8E|{l-`$} z^JE_drd$PB(yH_eAE2!eJsz#Vy%l)01(vib{UIG`kp!6cLF0E>F3PF&=}n>1UphvV zUK_xCx@SZSPSi4`6!J18tN0J&CcCtkU=S!YTcgb5Q1~8<2y` zZ;8^23__(>Er8PdZtG_5ddSn){TG`nGvie#pzFMgE)t}wv(-IT6218ZwK3Obi6=8n z);W-!WaU7^M$Lg*jj@uDw90tVS|{VjWux0rDWNivv8bBLcS1QGCK&GOqs~|L@m=UL;g~hA>#-B zEi%68dMo1-K65g@9UB!^#@PmHAckK{Km3znpgzLBr+OZG%E_wcUQx1VWdK>U~hJos^FzeuNX&WeO1*MrRcF6#;%stxx33Go&uprt^ z%jF|2af#f-9bkw%Zvm|59!%h7KdfZ@Oa*ULkKsuNe!w`(WMUJ=t0*t$UN-MomNf-| zT%f^R=b_AvlTFJpPRz#WxA&+66Q~38-iK64y5jq6p)OHCf4vTiL5YMSRrp5 z4sH@Fg$E85sF*Bn|8F`k1OhpoF@=FQ9KVPt%5Ff}QVtyK(s@*Q?zV`fJMKEumPRwR zM4Xa&HPm$irh{Xq14_`~`?-0PIa~I0*>aFgaJf@fm!ikU!cugKf1&=63pu0MGAwBn z1m_e|To?gJEth7)a_AKC+iSEgf~+r?JFAuMspYCSe3mXhdb|#(>atnwT7Qzk>m~z1kVh9U93E6Ri)gW*5?)t4V(3ZfBBPo)cgVOodmoC9Tu$vhdK~%K{uV$#d{P zMYgY5@k3~mH|YBl+5qlj?iMl0A8MIU2IlQ=$}lo8KWmwE5y@?(EW;#ssVDJ?jaONd z{L&g{lJlOY5DZuC@~H&SdrN<~Vjh{Nx>ht$bm2Nlib9=z4GuV6SpaD%hVq16m0ZuA z0njt}KK#0KlxIS)dQJHK-WkGTFfUVBHLIMkE_gO7tXUQ~BCKETa>6>Cz?l?%!-za6 zdg)&NGU75?W^U=o)xt&i!x~D&3_C^+{)ugwC|f8|alV>UoRijv;_P(>`e&QK+j){K zYajvJXpxoX8M~;Yn^^Y!D5++pd5n~0Nb|_sMVk9gu+seILnqBXs-~sj578ZXKF@wy z73X$XU7ZG&&~?Wmy=2ePrcY@c+#dS?%2^wCvTFJLGZ8Vsp5m-N5FU)Gm~isYl%@Qz zxqPjQNLbKXX~p5!@$q5Z4O8QI#_h5;-`Bg3XiN#kqiu?KwnjUtZq?FIJA{$^dL_>^ zCoo?kDyOw29!3C%%;${*_m_9 z)1A3S(_OE0EHuqRiYIw_iA^gjB9Jm&RoqsbC#Eesd>@*+dk(OpNBEEm&k8GFaN^9* zKlU9rdiIrh&s-gm+Z-~~B(SWe?!`OY==nosJc3-%y+{F;w3@oQ-yP<+1UNc2zRWo` z&iytV8~L2je0RBbRJVw!ThH^=;g0Chrc4IMJ6fh)P6vOLvW&s8N1Y6gZ7SEAxor9S zZg3RMKv`NIe5F#RTt!vjcu~H{SlH!oWX91v@n>ijL5q!X^T0sGilw3Wd&RsXchJ zO={IEn9&OHL=^ahd&mvlYE=JBiive9-{TOxQ)vrKTU@DIuOpBb-^d z@*~l?KxYbQe*x9=1a<1vcT}go{aeauKhZO+&ckaQ3vDOdwy2x<^x(BoNJ&zvQbflG+@g0lodfTv*a zhJ+VVCaWd(V+hA1wK)mDWhJ&yEp5oJljf~)7X({Ayh9!iZ8`{{CDz32Xd+HkgqN3rWX5zxM7)`V z?awyskL{%PJo8;0pZmI|11a5Z_1tZ{V%(mOx7=ERw#7<;UHzYs;#zjs(qAiWdvc2m zCfoc`x{S+#dsS?5et2>R>skRXqA1k~Qu{lV?WWh!BJ=jRlU@h?`QSTEJ|hW?Lg9L5=?l zqYc$kA)^@rk9*nTb@7AAO`%M*TNBvWU*mxIekF2s&Dv!SYE;YXOc_lOW*jB~>D>}p zx^Qw>^phPa7k{rKWhC}Bb-%3?RY><4_-L}*Z#%%twcoZ1p&p$+HZN0zFelp+lUH=@ z4@4}oI`b0bgl_Ll-5S<0fbW6cguVEaaRDSFqO~>l9;2Zi3x6W6=(@>6(`^FpCJ-*kT716pR1EnsL@IG-oUx^$L&vaHU zwM}GIvug&BCGs2r0+IXXCUTe|@+P7{l(S)=8#TWUJ$L9E*>#R2&a* z;RBp5b$q`h1IP~e=M9kX{kRMuE1X*e2wfThXO;J)x@Qyq#*Oh)6qX&8T#DOu5AK%$ zEJq0CsH95nN*;>L@P7ZoGDQC{+h<4rMj-k(Ei0aan2~O(;#Wi6)g|=pJQhe`te~cQ zBtwE@EW!~31Ec{m#Gdf=pOa|~rK%~{AlWo~@_eP(k}{^Rz0z?*Xc!eJ}xP9(;?T$g#y#q283`CPQ${=-DD`kjt6I-i!l4t0Y@Yv zmI$U+gP7R9Hcy^xV0RJO68~6suW)6i8&WC1EB?h*87dM_({{lxuFT}&Crf7Tkj~bH zJmIb1vG-hVzUGcaRanPj{(u|ry~Fv6+|u(HCOT*V#F|~MFzDp)<>)9hU9$Ti+uWqt zYKr=Y9k9xSvHfI;+D1PyK~A2ggNAYFw}~;1FDB1;hC3Zh-AI1Oo(i_m#>RIXuB|csN&Gy6xCe+lGDq<1$+p+*5ksiFbFqfnUR=Fe_mCb_QIqFlfKPBax#c)=ND zlzsr%=1Qw$F)z?)96)-EWV&=D3*BMB`@WRAW@w^p-9S{EL^jLG@x>p?0L6&3>CHswW?tmy8 zz2Q@h7L5T#($g^OHDt98v7iwD9fZ-d;bI%jit4B9ZJRxHGpK=1ZX@N)AZjjg%W7HW*g3|KH@wPp zsh(A+31QX-WFgFHB)Uj&VmHn4u#j4Q!6(FOuj^`;>f&9}v$oPJ6N|?6S)ftcBp$sR zpT9B&nTj+w-{Xq#GM?7vn_2WKw@Bv4Du;2`QnlvvdHTJ zcwiWpW<7cA22Ug+%WLEWRgUip$dBmOW|`17H|8M=AHN-t+JNK1O9m=Kn-&9H@A!&@ zb6NZvI8Sjs{N6+x*oe`Ik0+8;ZV;9V19kd*7ow;&I>Gq@_siurx_Snu(QHL0=zAY2?v9eK8;(C z!5AiD{=$Hh^qy_?*QM~>W~C~hOAVi%8vN8in9YHy!H-1U0^FHRm%WbO{T@G$ek93syB)eB_!>jb(4 zYEkG-e8d|(%^Uud2M*#BdZhX!m46D3)Y>5RVJ}|qE-p`vTrMd6I{BWTOs(Q-c^&au zN7?J`yt3E(mpxZ7ndY^%FIfvJ%4&WdpFfv9BC^qEtu*VI*mr7sU9G%4^I@{FEOvb; zpJo2J&2Whaj2tj3ygdYJ!2o=#CRMo(mH53H5Sb3HyT+YLi1rpN^ z-lXsb1FMPjWxQK3>FWjxOV8=yo&E~2EUFRVK|Q$I6Ld%6Z{>cXFtE$x6F$}D@sT|_ zX&3!Rj%mmobrW`|s0w*452>jf!SN@{1bggE-eR7O&=$Wbi5 zQaU*v#e%7x)JBIOZkLar0L4G>A8cOn`Wis-#j1ExnJTm_c^z zvUWJ^Ogofn-?~p55X)!7;|xC*@)cUH7W@dpkw!}agA$lGCu5^Ok|)QSj|^cTb4LMr z!+oBna=%NQs-^B8%r$7v)sCLgle6Dm;{?^fFnL2@0xYtaeyzvFL)8O=H z6GhpppfOx~=&8#vRd7oJ-jO= z$iq!y-BV?CvI8Uu@qhBanoTW|*=Siks@m^%mrWH&*j%KWGAr~PLla_o_^8(yCJoac5%aODmo)sQv7;XJ!7_b#`KWS*^%wJyPI6&UUm+`TN)bN*Mjcz;|FI;xBHGZupN?C(q?Juna zKmt$h$v8>fOfSB;mZU*rRWr4T8)Qf=bb53o&Z=Zd=dkdb4hH9r zxxf;^^vhL<0gg5X4>J)z(E{<6LVRFW@TE}^>Z$fscG~G!iB8CbP$;*Ic$;M~ zIgN@-_(1|6JVXb+!Jq{gW;q5|OlDu~hO)AJfdWUlO!lPXWTn&uEU|;%8?j8!no&x* zXid$T#izkjjnnZHrB-JY<~qApd&*k-oZ@$!Dd2mX2@Z4L&RQDT9N|#R0Ie3IT0}gHGIb)YO01$o=3;d0O%8oCTZJjeruyMf6HaV*?gH- z-rW}Xu;n#=O?S*1#h!Y4{f)McG7)2^#w*B!nc~I zX;SDwA2(w04~=(k$ECDby9t{i#Tmx)ow3knKe1r=T9KBYsG04I=PSINfOqnwn~j1- zr78DvsHNl1L^WKqCPWzjpH>VNH=hx%D8ZkC0W)q*AB~t;1?t2VsL>}?pd~Lk1@gL6 zPE;U4@0FGqCF&zVLn_gLmz@%gG|+ycZSK>>-uX!Ht|zy`p1696cjAC?D+RsSeJ=`vIzh%g8$1DaDWI zl%$;wp8u@V!9h0*uijMn4HjO~P6rRIbUL`J!e{H?_CkM79sDe(4&MBFOa~9*o@A(l zdumeYN(Yrc$8|8F#oA5mFGz8Q4i345T}vE!qSe8?SxyJbZb6w<0lAoFv_ZY9-x&hY>2gcj@>hbS=<6cLxv7w)5Wy z-a$yO==XP>CHe&0P--@68G03;UDYI^{MVE!;dvSLPFAV6^S1Ld96@dXS z-ksCBlq?nNQf$VjLj-COTSGYUr?Vf9i*}UeT542n{FbeliqP+>R(|O)JOBAnPr~w zmSj%pbc!%%x-h?fmi#m}sVLZo@crmRFQ#+sJgs>Lvo-ak_$l$4?(vCq-jzfg^~6@o z8E9#h=j*aOv2W&~1{Bgy%oRwP8oL=tKd~gt?4UipXr=4vkbeT9Ri3DOHfz7IK-{yA zQYjr=%AlWD)HB49AHf01t>L8PC50EbdcXy+{EebdF*~UGrx4hUssB2#F6xPin)vy> zpK|KD!xUkRDvW$NBC7tyqMrG0UEeY7vTmUGsekyEcnERM~ZzxQE% z^F57p@U14TA|Lf#+(ItXVyno-Qk}lx7{|ZUQ+Ukiscn8Za@5Teuvw-l;Kg zg6T~Zz;5$#IPHW4oV%E*`Dk%B*vkuSVO{)=D7&FOI&a8?~}6*$b(BjDWSICnDX9CU*C z{HS9w+EDewfgHtIGx#7=sU}v*k~|lc+VDmmMp4w8C^qeQ8Tq!CD_Y}Y?d%LV+sh{f z4!s-)udWTxYR9c}_ND4z6&pQQLY1sz#zd zjT&0n{^ zPjc5FLNJ{;wM|(E%b)4ezHy*#Ay8>pmFs3xwcP%hF0C+CS&}Xt8%ZrG9dG-xq_i^p z^9oB&!SfZx22pLrm8KzN?%^^gn7@{kUKQ5AI#Pcx2YQY9%f1*ns)gcGg53wAhquQE zqHSg~Xr*-b{51k8r*V)ukAVOS*;k~S4mRmg4|a7))mUU&Wap);#xZHr<%tQV%E_-e zJZX73`dbbLi)tU$j+5a2}_n#^+cVJ$P%IhO9oBcBh1v3t?A&(h_bmeu#-m?hmadg^~Jbi zVrlfJ^2XM@ax@c^y$=o{(#WSI(N1F%`d^;X*EgQ6FkY0Zckk*7nfA+0bE3F zIP@3CA)fcKO(ygM)9K*RkDNrx6Qc=%zSTuDr<%-bqM6H0=6TUfIn;padz|EO+9PIX zPyv)e=eZZu9EV(W9Z#Uv$;yel5m*Uv|5{u@Npqv!&)@jqfgn#dJl1ee+E4x<+>wU^ z1z6I2a?;Nqc%E|_XDIOZ3S4M0OWJI&`1zkbE8Xt2yF-FNqgv zw;x{MHlCl@OFllS>CpnvJBq-ev0t+t0OIMpL*Ewc0Jjlyj8s&-`(0RPfo*Da{Va= zJzdI|N3Cg*)3f+Qbfma6RxANZsYpcfC1Y6^7;HFvi;<-XIWwz`_~Iw567wNTuzPoK z))%KH&Ec=5VfnRMPFIJc``MuYcZhYTNmfGBw?cs%Q{`5a!c@=K6^m@o8mku^=@^4{ z#oXF+Z9>spX?vXiB5HvKn)8v16>cH-c|{hP})? z(Q(0uiM#W{U3B`|`2sy1O z1X;Tjh1_tHW>a<3b()F8JVKa?EgTTPQxR)QEU*A|aX|W63%zLK9HvtNgttgbZG$)? zT*Zkx3tMl&W*x^=-S}KUT?DABYqBX9(3hC^;s02dx3+?}c(s4ip!kkU-M3IKjnPRy zgkb0PL}ADQeOQm5F#M6cG$Jzr_Zj%)uLj)VLPZWC34;fE(+yuJ<$>Nb!%C*SsWIl0 zI5z!w2MWk*j5USxNyExg>&sF>>U{!@y`&uvCl$8v>ZJ+Wm(_e$P}2@G*j)NWcxkc; zjRapDfy*4NU{tuu9*bc^B>k~X8C_?pflLS0a8WRg>mp#bT>!#53Op{MfpBLipK6w#vniLi-ycPcNN&l8^IQK0 zR@qq81<*qeR|lJLmgj%JUp-`)dB1wosY~$`a^g6qf55}+crLjNfAc+SJc^9>tnp6r z!7TjMzLOk#&$@aJ`H?q%E8HdIU#$r_iiWRDHzQU3eY={sD?64~Pb|zEza=&e3tJPj zp+tH7fR;Zek2XCuU-}kYu=74JtRXr%D`3F!=>kC~pY;mSl>r@%JRB3gK_PdoJzvD7 zJGcWVnRd9Eu3O*GoP;LFtdIkLO;@k!W(HhsP^s zWR4Bl_8)fJ*RR3Z-9qz3K%;=cYM@Q?itqMcqj_5&uS7{@_Z{Mwc7m0$G^T?t@5*fF zc2vrbUdv*YSvvTM%h*sk#?#uUveCNS-dU2W%jsaz07;e#;W)# zYB`?9Tq(nokgmD}m(019(S+*(xNxRafgtV*5rwm!m0mhH6FYp-d{qPZR=5=(nOUuh zs#c)JvJm1RW^G@JIW>`59>^w-PilNX` z+gZaKh?pzT9F;!*hgRB+%AK*J_6p15F=tFGyhMO$g(q{Prl05f{Gvn7mIyKn%O!#= zfBAJ1{*pVsVi3;QO=d__C}A*$oYX=c9V?V@m>frxntR0xB`hZKcq!}@DKrib+)%t- zMjhYfVD_}E%BEW{m2_=u|8gI>fOv)1;pC$`xX0u3+@WBdsV|5jiSG%@{;7h0^&$}X zIMOTC1+?Qx`Ht^@p_9@#ue2v$j$=$Pn&u~ETpCylhmg^lm9Rd|ckg3!fs@5}&X9&x zQW%m(m~u&`gLhVke_yYEFDJ<>&Lx?8Ml`K|gVXSt^zR1#{S5!M1lX`*XW4QvR9R24 z#AaHbukV~lH?7ZiQ2PjEvnV&dw5C86Ae3E#pVac&#j#PEhMhH+k$lFz(9+x_HoF?=50EcS-bDU=IVI6|| zbvjg&g<<&}v2q=)$>Okle5_mtY_cRQABOU(IixX9#)%S-H&^g7rfnDf-Rh)vc`asH zPZ0C$wRsTlG}w0yY*!+btD(SBX(Krmz!D6Vv@bpw!qvNZ2ZE0>ceg)}10*?yJxnDV zEWD%vPc(jhvcd%f-4Emrc=!4|fd&7t@XEiM&q;Cm=<=sF^HZ@amS z97w#e&stPrsQZ>%TyStDxufz&TBAGGV1GggZrNA%R|0c)TrDw3*Zx)t|WM>!30G8UTmxi^$ z2(M7ssOT}GG+Ao+^2Y0it7KbZgE0eF;$$9UVQ(X?`c;JBYD~Xo#d_i7e}AZ74{^iW z^unvxUTSBI{z)%H(Pm@b1bT5GM?N50Ae{sGuNTC~pQA}j{x(8>#{9k2KsKECxu+HD zEZ>Rsce2(DYa^}XSPB5Qiui*TujbjGlb=ddIEY4Hi*sZ1g-y|Wtu-* zCOLe1;Ra=_pEzD9!MdRj8ZsmJ1=%Sscp)y9bpr@dbobMa-Ph>`nb<5ex7k-(jZMkp z*fGjuCc>wafN*bKj^!sy9VeImPflJxI>hf=PCi-dIJs7KhKvc-krEl`>lcN!LF_{e z;)I;MU6YoRpTR01JgIga(05$tIQii5%E?mEgT$s9%gOzPl5{W&lWsa$j_$x7=C9GtGIsVc= zsqo8tr1j6}ct;?h&yNAJI%sE%+X0AN<>>qQM*+&n#w*(DNvDtBV!T&N|8RFvx@mgh zmG`yu$rcko5?3(!Jg%%l8JFS&jqx!GY8Gq6-b`KcAj?cfPc+!7?8iI;9U89% zJO>i$_p_Q5VxiAlz^qWeZRH<(fTgA_b1oz~K{}>CsIp$HvNiNlh}^Ad-SEx|U|a5n zdI6`k^`m=9QI(>RA5_>R%co>*JolXQ1-4Fd>$T9Aln3?e=td8?{y$a?`LtEl1!Z#CG+96$TUpy ziiXP}5h>`0y{~FvJ#3b=_@_2Yo<+3GP6s#9`wEl3>W&hF+xiJL38J_-PaZ8zHbVqC zJeR6a%L^g~3UXLJKWa0QLGJq6XBh>{MhJ1D*zmupz<$vwlc*6=e&Dbe@r6pQCH~BK zbL;+RbECDnCU(Fzw@wCyG}m-uthoob5a!tCzQ>>pEn;%R|7>o(jB&H_v%Q-VHa8^R zT%UMz)uy>BBbx)h`3zLoOVY|y^rLf6Qf;OOoygS#IA|!Az7`bgKRmC2r1T!bTJyEw zlcWU_e6#m%1K)9Re3KPlgQ4$c#V5%az6;yJ_m4QfK8ml|;5$xKh*3lLE){-#FyW-S}t1!vpAAvjN-FRae$pGP`8t zTeQQ7w&iStOS@okt;&mc&Ejgx$hWvUSrV7wE$56Q>T12x!9Zwh%Z~^|*bsS0`UMVc zob(|X`L?;cxzpY=PYWUfzI~otIhEz5^Xbmq?rLZaXp_=$Ktv_Bi{;} z{!(2F1DcWU8EUD;ClHk7m=r z-GFc5DZh}WQd6|M^ke^6nQi8w40N{6SF_pok8}3@k~Zo*FLmzES*Kqcbtbb;>!^@u zOW0PdaALEkrf-I;aw*V5N>V=mBA*->R=FGu`Aa)79P81&ttG6-9UBreF5}~O0ICO?68{!zA0Azc%>^pSj(GZ z<=cn#yRux_7Kxv4qSjj~l1tH#sKaikR_zz6M{$(l9wxVeoCo}ENX6W8DYxV0fsK+Z zHDh#Lqjpl$$>smEx$g!^{o+`2SB1^}Gu~WDytzs7=2rdB=Bl*0(pYmlgv~YoJ=VMV z8)CiNF5X<`>c=p1G?DA-WLwjm;m+HLXhQ|+mATQ??wDQKkoC|-^VQDWGZ?OHDoIs@ zR4mtf8M@GtJF9c*_G_`I$LE3ldg-1SK#JzG(`Ao~h@l%iAdEL`>WhU9Q97D;X@icU zVL}H7N`#IFe-Uu$v87H{2vdp2t5>phVPokLE!%yNpqm~?H&oCi1s%-IF`AU#AbGGR zg=i%A(qx`+J00x6B<^n#V}BXNm7{Rt3*RQb-1_k^)vF)>~%W_DU4CbIS%rY5Hfh*;uMJ}RgQW1~GO|LS>!62)&~=3NiZ%+T zg!(nQdnGb43aTnq_ANjW2^0SF+U*^Ny}!LFI2uD7|Bm2*1M%U+k=)u|HGU8NA+N;Ux_;qS5*D4|02`H>&|DmI57MN`LYj((jv&X~iVL z2D~^3(#_s1&6^_IWP%C3c=SiPE9IZ>EO%hY6wRQdvJfuKpRW2REnc3FL*Kw zdlF+}dj49`7e6s>95qz-=w3KZT5CXkH{!<>aKsnXd9Rx5PIr%rz{ z-)0Aa_uWBOkSYS4F_I`leHA(EYhW@qc5nC~M8`&o-*6fI%^Z0gB(~9Ew1(LL)=#M1c zMg;vbWgFtn-eWpA92;IOrwLKMU{E!S;@@~AF-$NR(#dPhU-IrBS#6{`;Ak|QO4bRh z>h&iY#(S`SC7!yz6vdq*wYHX8qV)z(3-?cX;7?#_EO_mAS#a531%IvL*B?1&VD>5p z06+LIlJorN7*NT-^#;mAa&H?T=-MRr`#UVT`H@ z$(;>59NvNGg-fpIrIO>o2fWmXfAcB}vGL0^vd7}5HQ%IDA}oB;0-1Q6+ZRz83GYW2 zPdRht((hS0X2s5cgCiUcOQjr%sz&VoHM`?NoJ}69gjJipG~8p zp(QtMy?!iE=bBtkMD#kV%@a(Um#V*SHS6!|h(zoWhe}^f+WF@3t)x^(Y*w7Hf;3us zWV%gp-^Ci)ba4Dr5#!_+jsF+Nqgea8M+9&*^wOD`c3X>MaiKGoGS5Ya%gzO;Wrmqw z$IVJKrnCyyO|`CE?-P?^R@&u&6VQ%?Oc&KKRK$-8*PkpH^%q zY)DSdjv4Aae1t)zw?ywi2@d^M$~54RZ>30{BE!QP$W`7nvqp828T?j?smZUtFiXCb zq7>n^oGD~M;!9)lyhN#-hd}&|3p5OGSH0Yj^WIfj;3pQFO7I8TXF}Tp#*aJb`$OoJ zZ$)wQ(Nx*u%RkLxzBYuNCa~PC(9YVUbocLpKI)89=Gqt))*G8q&z`nh)dT0wv|hfe zcT`xfZ;Up%&8O6@odD{*qFUjPD9gp%VX$=BlXr(a3;g!g&5LcZH=@M+InZmEMYS{a z%mKNsxH_R%o<`d%PpPyg%Te9i^%`ZD+}8TK(}`uNkMXiLHLvk7xTrWO{1O8J)K^YL z$bb54>_Pq7uCk*Pv?j!FM7c~=DEHeaZ!q;QZlk=)ln-vB+=f#wK0J5(#kPJM)$1T_4pD<`pYAXEpA6S!?uQ8#9Wp*@IwZ>yVw$4(ib7syu zgW9Nbhtzom(#US7TN`yoOP$z59@wMEs|msY15itYOr<6$e#)eMUpBW zi&%c7n=!G*>KmE%6gY(7zx#m?f`1zAo|Ww#i$PXAU}-6S*5yS8Dt^bFdv}w8g;wHU}tJ;*IEAE=Sta!K#{^P4{MN@mL?<&iTJ@t1fJ- z)V6g|?zR?7$YA7#=)1Y@jsCIdU2UqeCWTJ;JfU7&RuzpX$|E!QqJlY}R90iA)uw0J zFT9asj-`)IBW?cfdc;cHf5FOCpU^qC50i^+@`_kR{B2J+b(Z;}nk{PpVd&pf@vg$s&DUg-c?2KiO|2f3`hrSx%cd1%0B#w`C(NfB9ayz_1w7r# zGi-0i^k(01F(TTC@?|iJgb|t?bs`}x`sP_uZyL}~2Ve1wwy4g)de3(H36P zu>1<&a+bsY?IFaU^V!NlTjmPGTve%I7-9lzcmGuA)An#ajYyzJ||yOBl@3RUW77?)%ZJnhy$UzN7W97;(RY3vQFtxZ^Wty0zRQ%+I>k z5IWS~e#T__iMs?+mI(i5rdQNqvI~d?zX@XDV(c}>e= z3Zf5X-ts;X<$O)@#GLBZ`EpS=!GvBs(=3EYi%2$TQt86^#(U%1H%W`No0u=8I77YO z=t_)<*&D5TT|3ID*ZjYsta=XR7aPYLXCPk`#&EF8azxT@96vb1aqtG%Kych}u-3vG z4wfnhdv|vnJW1h80mulKg_pD&#}}O8@c&idbB^Ovax!+tWwCL5(psTU+e-)k!8FR< zG9e6%K2(b>qiap^Xk!JsX|ZMW1yY>B=ySGb3yC2cETgv{=@>mi^~G>=s_m_$bB*J^ za262bQSLPwrjQu-K>J%A){@_rz$@2C_bh=+|IO}sYQa5uyhf1VNOAR65}I^1NA4jt z1(A;NT}HVv-aH?LDaI3M>y6XnU7(qMVq1ZfG5)-RR2EC-nGW*zk;EyPHyKFW=Lj>e zbk%#Zp)iiJyF>9=2z?x(y`q^Dok6(^ldR4`M?6F7BBQ?{#%(wHKOgRN>s7h~e)1^k zqP+VlbC#r?E>`a9bobv1pO-cIZ+(Y|a*qCUaw=(;OJk#d#)m>kvC+DRG^uo@gCC~G zb+%fIt;|8`kB zAJ<|l*-dxKXpVoP^rvk|QR0&ytYjY<;UwE~Aj;h6XAny)NsbRSoUxlQC?eq9PIUtQ zgsUqNuo;vkW(cRw)dD{;RiH)4&lzZ3x(hQOa43WVwE)Mv>X(O*m4x()*6`&{_3{_~ zD72Mk4YPe1x3spKPQq1EDII(~Q*it{#BqHD2h4m0re{^A9i9YeRGFHratPO*nV37o zDbvIINwX?6dFdmEnK+@FQ>M!mK3kbCe2a*3D$|uYmFe>fW6E^nDj~!w(>0p3%Jljj zab-GPi>)#}EyWpTVp^ z<~5pLZPTzSCgNN)H0|@hY3LHCVWiODC!RZ*ib8FCwvxO{2M^B%G8sOR$@7G>G!x7= z6%dHOijZE>Cs#P#Pp@Z=U4fZ1NZM_2e!rycH|3sL#bKwyvK!x@=GLB9Ux+SSI2~1U z{wpqiGYdfEbpjVLEd@2tW52iMDg47wna2IBsujL#Ls6Qq<~$vYxGk=80Vcv|+)oET z_9qOSm1k21oE2;*fkS+7*;04cqFIT=nQs#`_1if}EC@Vs%Q53Jpe`jA&<` zDeB|U#e2PTM!xOMS!~7`qIB^6%6PABZ~6%wdecsO6N@RDwjY}gvbHi5$D6+=1FdEH zr*-k>FVBFpWWHqJEZ6>#0cXj)UEo0Gscm{?A8Qab!#HAUK3A&%mz<)!C9YAOo!> zt5-(8CF?S2&dxmPpj`%>CF?j#R$<#@HU1Z5bu(lsCrb@io_M=W6}<&TQHEKHugu7| z6wkXkt|R}WNEfc$7fRtHerdO;XJxB0)mWoe2l#4*IF9|F|^TjA9< zDr_eeA^~@6q~6~H#w_!MX(ISO!R&Of&w&Vkea^(BMT~OAUt|COi+*9l%~;5bzNIA< zQ>NmbO;a#=p(i(8M|)$0?$EP9ZSF*3}O_M1r|CsSxDJ(fE;BQPOT*ecW-* z={R6dRB`L-F&19NwsTVME_6=EAAb>ewGqj&7GBbBE%Qp~)VwM1IoH(>=k!HRIV-lV z{$p9By>#%;o8tPmR*S7EDlx@Y6PmPGxseXGmEsKFq{|j;A+a&AzR632oo|x2m$YuU zIl=Z;(w;;$!8>hC4k|SF5P0Ue_}HYc)@&A;Sfcig6LqbJE-^T^Evz%wQWbWhfAwOW z=x5IaR+;DvL4om+A2peN;(k*B6MY>sasKTRH_@-bUJ{N4Q$Fyh7<|*Ao2;^(k#w%k zY%iVhrL(zW1>r|$7Vxzh%Lts$cvHAwZNxn{Qf6k2U>Ab&KxbIx&~2rPut=i>&Hp4D zMBQi4K%w+s!MqHx)xggI2qq1Dev7m2h zQt3(uJyP+(GEj~ElJpWD&!^zm*qd`~l(PL43T)OsLbTGMlcf=IM#|2eJOYZ}gs9~E5 zJUI;8*nv()!@IL1HelFb;p2v_X=^8=y%b*hlL~`0lE&!?((UKpKG@;^X?MXdGBtj% zId86^^5Hv6xroNTU{`c{SpRQQp3^YS$tn8Mkuk&g`Kw|3VA#8w6grViYf^iY4!TW= zYr-@wwq|qV4O%?f=ut|G)$HN>k5ZhWDDV7%ojH8}@l&fPHRVoGUQu37C(}U8)!Nl2 zCe32P(+wiC!T`+l&&gmnDR%q`y^FS3Q1c*W-j=&!?w{5B_g}FdLVVeDP=5 zIM@GVM*lP5EF<0$ICwGi7wN$+i1}BReaE}%QJqZ(x3PN5%{lArkWt4D(os_9R8uGJ z^?tH6-fhc{S2OahJ=o54)3W2C3^?27SJ>eeuXhH#xi*}&lODkUU5FVa^m=Xc|Hwd_ zXSjb*M!wb6T{7~m(w;43gx>HE>3Dao^!gjP(Waf(GT^NAwzu6{{Z>}Dtg0^C(YB$Y z6P<;6Uim%rG2262{wueq@jZpT;2|z#qHPax9jD*aoNm0lpK2_WpZZSnco=nUYV z3Vfgfms(&+^Wi=}|NAnB`Int&eFmdF*_W>x@Zy0vjg~ipMhmsUq=S~QPEs342Q`yr z(3Lf?Y)36qO4Gp@Q`W??Ul&U~?J~Y^B4ttAfKAT7^PGU6IC!nKMn50ptWp16P#-%C z=usrV6ms=nccEM+7sFNe-hG6tI~?iy{%bd($8fd6GAhE=owjsbeN%xAS4UXj2v@t5 zJIoIXaFnYD=j7_&P7b;H(ITP7a`k{o5w6bHGRxKNOqp=?Q7yAv{ke+uGPt^agK%}t zN0zG%M?0>5P7P45;y8ppTbb0BWa596bBHT95hiU-%9D|D&x`{(3o8S}1lwMoVoyN! zI6W23J+)Eiimbea4;_l1qj@<-tkHUG(LEM`^D{)&I;-Uj79aL>+>C=4M z^cdvlFsG9YvKPC`w zyzyN;oNA2R{oE+UJ2FBG)~n-)a0yIh74&ifa}5PBY%hO^q^Y;V*O*VYf%@U@i?l2D zxoGduq5W|fG222|-lBI8cb4NlDO8I6^3iBSkxT&b{0JPa?2_Pn4rJG_(Liz5p{`$d zV3~wNPrII%F00~T84ik-S=#So@l;vvK0kpd6ku(iPrJ51XA_MiqM@Aaoen9=hXdu0KnM(LBa(W~| zREbSTvxkhEUn2(-aDVGzqU3^4q0_+ygI8`|^zp{)n()shpkrx_kBeLB$UOEdBFMV!{lE`8T;AI?e0tchp(|=cBDczq&2!_K!kDj+ znFIGR2KP0<9UQ`h9DO8V_6~U`vi(nd5Il9yPoHECA2p>*O0VG(PVBS0jr8ADpe3E` z3%-L1kZC>tgxovHk3#E;DE~2$`E<&5%Co$oL>*TSFJzmfe_ zX?ad)cW^%^rNcMO9krF@QWsl}79}$SJRNL5T%JhJC@1^K13sTcwomoFp$6? ze1Z}oKcc{VeYva_3Pw$4LMqL?ekZ(vYrYb)Co!1O;MI>MhLFl*a#49*HTZ$`H$X$- z30;uF`S%0eVNzIdTNAGiN&m2F7827zF}H#IdKuX^SE#zOGmS+-@;+#b8WcWdCDk>V zYQi!<4`>P|{{=AV;^4N;Zj-#IZ{oTaL;m(Q&_#A9o{`RdcBI)ihm;( z2K;7!Rzj*P?v+8)jm>6_sD3QekKwVN88YLMOXYlC0uK7QD(e*L!pl&HA<*|7;-wm; zgP|KiMbs-Ce?sfuL%WUJBi-k1`QIi;hF#xT;gR z4sC9*7t6e|bp%e-N=R3g6mF0F~$dM_$mpmG%m+awz-x<_i@V$3q|V! zVTXRr!rY_v%!iakax3l^Fj z*W6jNKp$6ac~Pza0U^{`m_w1bjgX1>zA%uW>IMRLWA>aG?~cj|K3yC8S5x@@E)8(4#So z@cZD(JbO;~l?^2peu=_MEF=~Jp7RV5Mt7O^=*$15IA^nKh4Vu@>oUtH#H-B zxOQN_!NUGn90otPATenX2U~3Qp<}SkSWfm(G=?jCfn3A2hBK4d3*>Vm<-Fm^D0vvP zcpjlmRoQ*T@QEQ8m6f!Hg3jFE>Fcqb0PiRFQQ*G#5nxGcDCo1FowDwvz`YchmQ{cy zO>foDKlCt%`D=vg%VVLS$MBL)w%%498wM?UJ}1;@1L@$Zu_D~E2C~14mMNv_V5BK) zV%a*ljp&7T8Ry5PEJJ+{4@7-?y5_*S*=UxTw{_8B|m6ntjJhK3<5WUtY zoBxTBX^hSEj5680X*Bs?QXWY16K@|v32_m4MTO1|=haiNa`IT3#X}J4o#Y>Z0~Y1kxPCC zkR1oZ4Uh;Zz@!(oo>o#N0>t&}Y_WbVHyXPvu`8wGsf@aoiXShEP%$L~$WpP)00|Xm zWdKg(`Zo4f=6W>{%YieOhpe@zjK(0Ayyax*`bcF31~;9(|9 zQGz5c9Tx3}9L5Ro$VEC>J64n-PbwnbHI2%UWQ*mVe7Rl!gmx7?vmAI7P+A!Fm{grb zSS-8ogVAs6mX~1JB}Ldz7UW_C3I{~$!2aD!k)@MOs0=~pwKPEK7H>ScY4NYyCYKU% zI=S4IO$GpvjwUwkkm>3*kDKTR$XEwx^s`=nx2>-w5`46ZKb8`q{-l$IKLUW(3Q@^a z#%JYzE%e#?;vYtYlvE2PT!R{xl)&5)FCHP65hw&p04CT9PPW8jK+&pb)5&J0JpBRt z<^Awfa(X=X>Qz*hB-z(G24qVypwGfd3($tI+ijZ+P>9c^Q5zQjx(~=aMY0zEI!anx zjL+fKCZ8c*zg~Z$vRnE(jh{n&75#rFFKte^H1=R!CSS=OR*Re>9Dt>gtb)nq;$NB; z(m`q^#4P@(Rjl(*XU=@fz0_*shMxONL@?=KG(tb1%ho!Rk*=t18h>%?d7+yo`USph zx*KW~y&0|=hx0N(7ahD7?^Y5)%L;BSXeQr*53_90$V7a-qrOuU^)NMuE=a~WMDLi3 zQ&95QeCX`FGSTuw0}~PhlDSgS>gex&4T67ViI~2t^yfd)4Ph>}+=}Q%do@SyLwF zwS$&vm(#&8DT_%n5&Uy4dzv_Wk)4JA=;>zRV`xg1rHEn|QZg4^VrSkG`=UhoZ0H{U z>n*hlaMS|eRO-=@u&MpVVsIDF3zR`;iK{p zgS3^ZfO{YsAwhT$)S;Q5&%&!W3r1M-8Fp&Qt~tim^g<+F>6r3%obe5I;Ltz4ittZ3 z+Vlj`SXWWH2s{_QQ6_XZ-I%msy7XH=N(_dLK>zW%3;aulw5%mdGvs#HM=Lf5Lot6^ zoL+fPubx$0M(GHlq#ZtLX*VRItv`5?W#S0k8Y9;|pD1L7%8fDaK9XWF8XXwpDmooV zv6rkbKG530dtg6IBiA*hWC(fnqMjP%NflajUg>CjO7J%%W$yONw}>KH7K}eJ(mTMm z%jiWhncRDgm1r?tLE(T*z?<fh*z0qRtr_l5O5$xyfMz$KpidQzM`U&(_C9*H^}ptjV3u2w?*p zstT*YmY=4v?hXRWlkMy<+Wa=ods0Gq1vN9mQAQs9_VJ3%E%>H+rnk8W{zcSBwDzaV z*%ABmKn9RCL|>kzKw^ll&H%C&X@LO2&r3m(bL zd0P1*FNaKO&Qb|#G&adk{Ve(Mr{f3v6w~mNJ%30Iqv+RPpd%z}d=`r))e}*97(PGi zHa-{6z^{a)ISC90)zTg&ld-I%v7ZZ%fr^;O<)|Lgx1==ejpY>y(J9qhnMouq;BT40 zW;!@IfPz}kbkOq^U`Z!efgBu? z`AO`OF;%JhF(gDgI2Xc1NjjJdh-x7Kk!5KOFI}S1g6frywEjYK!Q>NBzhw@xgI%$R zD4%LNU+$gS*Tm|7kXZfFRI)2Ty?Xu|p=RlqZBRo(&ITcPK4NrMt=rnF<@&G*5Z-;- zWH!U9iuFx3mb7baR~PT*cwa%;>8;;L4X_oTO0iFZ#%PfA@RQaTQ4N3vI2I# zt^oJ*C5Msp0RX&dsQaX9uf8i#`9_M-h6 zH7{$crjzvhglL2Rg3PHttpOnU6IcD;NNu$gw4wTsoRw4cr6RtZsE9cNBC5aPF01-^ zDEH*dq2-LsS)uCpzA=~T7u@vOX3?OuiW+Jgrv$hqH-KV*8b}eu^`S!Tn6c&SmJTm@&hg9#6`D4m~yw&!CjwfRs19 z8+ulV5jYj86h2)`>y4~pWYyu%49Cbz5(hTq$-IKRh7Vf~5j32Fm4Upj)Wm>hLV2TQa}C>cuSl3R`NyB=OT zC#+DZSX31>)IF1MUeRm)*p3*+>DX2C>P1-;v1Wf%+KZ&^<47wpq!njTF~LzWOtD`a zVjl|ZA>Yi7m`YDt@1em|k(v6shOEy$+68qdjC23cNMixNs?z1Ju)*_b^i)}~07ih1 z14AAr8$TK%u_EtwH7N1tNK%g+*j_g(9@Ey>oi1#5Txw%@)9LJ+KnY&ejNrO<2W)cQ zA;NR`XI;gf)^jLYx|Nf?o8`%0bykhfYHA4!zI*EbkuaDIQ4(0oOu{}b5_Vht`0-3p z!*xoN{6K52P0^nbiHmRPC${*IBY6Jo6viKfzT38{kA9+}n17{%4_=O{zuCA{&PpFn zqfv=0W+EQtRkU)(rS#NQQNCOTG8oxO2~WJzPO0Rs98h+Y)$)Z`Ph5QjT34bERN-a8 zlW%nAWL?uu5N9rKrm?T>@G()T&>q-mFWHClu}$orwmaT7V|44-)5t0F%mAV*#UOc= zvQ6ttHy;rhBN9Pj%E04W0@ZV9p!3FCoajpRhIW-ZEZ$ToGZ=pJH@(>>Z}Enc=eKsU zxgbCq2qR#`0uKnDF#Sdrat;(AHRIzk1-R}^y$szsOo}Tz&Z17VCU{1ctDJpNzuDBc zQomse*nOB}n}c8c5GW>hetm^4heKuJK|pOyKF+`3@D7sJ=ANOY#bW#rj~C9xXTX9Q ze0w3U<#_zVsWh?^)#J{1gu)`d5Fr?6$bZL1T{MhQYMLrDKur|qsth32Mx0+0Ao%@X zK9Dm)QTQr)gZkyzaB%ay8^sT8ho&R%c3P}AGC%T=s?8tT$C9dZswH*Po3S%Pj(I&Y z;EPSyzB+~a7w01Uh_hc&V(SxJ~5F>h@Ft0;Yp+=ZI_uH+jSFE%z!L z%00fCh`UWtw$wsOO$2iOw&vNvh$nPW>$#4{itIr_mfh2LM*_pyenmsLwMk(x7sDxPW_i=R~eMUs$2A4Q+p)KaF|dj{{{$VV;))N`GCPPLHD%MO9euS-`if*q%Dgf@Ho1j$ zlWUexqZ5}sX+5rk3Z2I_fyXQHYACuEUN)goGY&$4y^*loOi60!8k8Z9@URLT=c zNcjd{0W$bO-(@dAnUgidubEJRYdFok#w*&08cWOR;MOj(y;rjU%J0=j;B``a1SVLO zq5SOSj*HUZCs%WYg%yQwPVwgF@9c!XkNBQciNOFU+9fQ>GW1gcJnm zJ7s!oI=NSGY+#`mb+(2daQV?E=>S4?#$Z+&;{K zPsg~fChW%pidJ*kZ-iMtf=xL-3XCrkf*DA2-WO=qM!hVNOGVcJ47YLi$YE9nKbM!M z1dqW17w^7^-N9(dZgCz^$%$-XldrC{OnW-U)sw!esXIHbMibuydeC*=Zu%Zr;Y5Qa zm*;D{A{QBNvg2qK$gGMZjK7H0LjfH&oKB7gE+YQqDA%mo-0>$EW_q*6hojZ2n~uaF z&s6uxO|LP^i0ZF9ojiaK2%wR4aPuwr#j>rHu}HE(5tMs#rcLLoN)5Stu zC~^8$)dRAH0u-P%g~5Kj_%)WpouI85M*7SOU`X+vO05hQQTSbVb7<{8`b$j=jd35n zL^d?ZIH3W9E3`^0c;>|RRYFIgZk8ZU2Y$eQKU%2i}ykimih(Q?X5rt6h!aEC!;xkN=k}uNOtTjW3;~-qxKP zKk>&KswFR|mdtBswd9-aR7)m4?X)ChQB(_ldr`zvAto&y+_!*+&IlauNh8RJq*a-D zdm*4>28P+mwBcdl0ElgP0_FtcgoD%Sb-5xfG;N$RSca}Oj8E`i(PT4a3w(pn zq`36qQ{n|RzkvxY-{T**1awZwuC;d6q!(;0>E{fLIG4Xni33?ek1{|qtG=B9WLdPc z0AUsQ@vU|h7}AD?Rc8h?K>5+QLlmx11m*P(rA+@C0=_Vw>3T90`7O_YldhBMf%S9n z+Cxj%Wb7l?aaZa%q3hGuD_rZ&HJIBJUpwl+P6vnJYIgK!mgO4XTZ-meMqL3skXfOT z=#+o#fZMNOb5^v=-i@QR)4>ZF`BvCxpgCQR#W*?(&H_2Q?o%wso@By5H^4UkfRW*C z7Q0rR8eMhiS0AS8d@E+P@--bWYcw2n^B)HovwCi!4wykt0KHcxbu`k)&nBKErSy_t z-b=%%<1gT#Ec!^2ViFcK!2N~RZf^OA>aRGihSBXT|fba?Y!Yn z8CZO;X~DRaOe`tAx}6!fYyinEt^E$5A{wD+ znlds4-;>D9u>@Z(GmbbH<1kHjc(mmhkm{r+ZOgtbht@JHU^` zR3Vk^{K+HDQh3OX(L%%eI#ak)Shz%(53wp9=fqVkr&~q=51(ZVjWcCV38_T>SSD}{ zfU{qXz~4f`sc(tPb_ujEZyPo1UgF5VsP_GQ9_SMfo4xk(WJTz-X2nIa9BeX6g{wI8 zdPRMtuHfGBe&iV0wobOIwy#A&El0%jixImR#A4dzs!h1YXRo0?^j7X%s>7;P=b=M? zwZrP2d>vLlJw^$(jr#({UDjZM65XKHRDcJCmGeO^)(FGF9r5+=d4rRz#U~SeS%dO) z!}D-GT~T&7E&)QT=@2QtNAWgjGuNhflfRt}eslNiz|%FY<3nW!kJG`lNii#_W_<;= z=At8@ijZ^TnXaAl&`yp)Ft1Su!7poI_+~N@k3$XPC@97}h$vJb6K12DQVB3;4~A7{ zQvIb6&GEw?OOhegvn)&{O^xyMPu)o2iWH9G*tNl3@e%}>Ithk0 z0QmPMR15*$PJt_A2+C%Ebje!<;4u;a6X4HR5OZ_`Z)47g(pB4q8+dzEQLEitH|}tq z@f*nagq8_qNS+3&}oV_3_s4SLZ! zdgj!CeY>P2v@~}Q2Yy#>!bzoJ`76n2xd|sJn`E>;9+rppM&+zCusN)Qt{mABs8YJ- z40AgjExFt?ZD9}*Ov;ny@dh%S2D;L^*ROqWR_w;tXq}8M*ykoh&)mXL>gl-aqtMD? zb7IScqoR9KlV2CRwmUp<)2M2tboCNkYi+qp?NFNy9f5{Ov$SOR>deJBpyy#s8>!Tr z-Kv4-y&^`#AlB6ZktqF5GsSMS+3X?29CEJuUNF_yr)F%f^r15@o^ok$CkI=ojtk$A zu~KRn|C}aOP13=+I5too)wzP2E_8C+N1a@~ano<2wKf_4-(eAbFUkN?so?&b0TRVu zcWoS#9RYm>2%5e52J7KQ0`G~S=L~cO+BSN1#KU#tZZ&Q*L=2zV-pBVuGxBZMFWiaR znc-33`@amippjn@)d`+w0{17ujU4wUxq62M9HADlLVoJY@sn)tT!TDHof){Lg_i3QH|?Wn*id)X%wU`gxQg~6RTPm1aL z3i~^8(|7b%xq|7}<%g#4uh&o+9jmWAG@=TfwM-34IylXgi3WTtJJ)WD>L@9Tsv%5Y zKL#57#NKyU)7P@WnLgRS!(nf-+&Nj=O&JUKGlbyEjp}6Z+%~msH-ZFX>lEx5^b>wI}B7 zCHw?MLY|-4OfQ2ZHcO%f+TTwis5N7O!Xh$svZC?xcp6e{C?v z)ju|@f4kI|s|*woiPd?cpM&lZLZ3@$JjMdh3-d07dKR7djJepSQ9nKOApt-+aXc4H z6R!NF63#lmtcrAAOBLCW+0`AMj5AhzS}=6%Q|Q8B3$xs~pj^A|ls^xXPNpi}{+(0B z3Ea1~L7(twRYVon%yFvt4+XALy)CquC9T71+b!I%+FgL7dV6Y4y`9-9v}LDW0qT7X z?xB-U_KDcCBel%x^ev{WiR#ru%dAdcE@c@yeF<0he&V!StWNLtqtofLUR$x*>|#5E z_~v%GKQCKhX7T^FQLZKskzy?`NKVBUym1^N!%`}(Vo3J%-H0-QI*mRsR%g338rVV{ zqq#t`HeYZw-z0LhjSrc-!W>rOBJ$bxc4Tersv~O#PO(8zcP?U55Nzf~QcR2er~X`v zvF9dQJaU|BaZ7hRF^JZZuC)`l*Vc|fYxBwh9vt@`qazV*y={+ z8rj9RUPiG6md16G7&zOF%oz%-gCksEnPFUo>1RiY4-3({KOP;Km**Ur-4fx*Y#ImZ zt)0Mq&I2PO^ARmmwxolf4v5S)wOVFH@V=B~jLek`5crAto*kLh>)gm(nwGIq4n6To zx4?pg3WGaalJ1g9jt|o~0##bb1OF4kJg>AXHdQ(Xy{Ex3#U`Ms*fo{B7C>p)PJ<>= z_mp?I+k160&atsrciaIA-t&AF@d|#VJ!u*3%ipBRKBlGP+$>S7I+|#OXqrp}oKXBk z;mF-(2#tfU<4HRy-QhDz%`l5@jkG*MDxI#IO)+JwDBQ_^lgPSd^q&1>Q*0>+!%3_< z{#aVl!AJ9{`Ae|t#d5r?$A9OLm1c8P+Zmji&y(Ev40s9$cyO%^`^$}axOl@;Dg1K1 zZLFGYSIZs^H&Mj}&~LfvpV$S*wW7lWpx~xMz%mPEqi@ln(-@xwN`zQ98LPGGjU9Dx zW-17=sFYU?ksRkWKKUUhQM-{XG+~EGZD@prUvq>S@|_2>8%H>L-pUEr?J`;$vU!e{ zzM-YF!q(fgySv6Pj^DT`rCn=6C)N&hz~`YCi9kHxZYgnEX2}0==TdHfl|O z8cIV#h7iO&H27X{Gq1<~AJ*Ol&gyCXAD_}z$=Gvf6iT^wL+&M)i8i|wailmdp-4h% zh7cw*J8d7EaT(%>anHRdsw1XUJNL>hxfF`en2>uHNB{TxdDdE=&u8!5Imh?+_d2K9 zpS7N~)^l6Wde*aUNXC0+rU*Qt*9nXGU)wL+};`p^(-ctv0@l;s-;Y)!gpp^8tJ| zTmsLC0XCW4>Xi5ROQRE2Tm058Aq%v74v@uQqyegDga5{r7CJfA$+OkogaE-8+!mg3 zfy0M~JVeH3{Y&5^xagl7n47b7LlMTa0P#A4-;&duwJ#rb4w=V`a)2y1rV9{o8h0ge z3O_rpY~lSJh3@2Nn^U1x)S;$TLG5Q;s}bgeMXgsDwRduWENZ;Z0S4VKVTI)#*H&BYekXi#Ne10>2*p95r-r-cB48}C*qH%SB+QkrObi_&1#z#tyG{SIRx0!R4v`7>vAy|taMw@}+TdjJ)UPMEG7 z;YG&yN?z_5j8p*@MxMrx(2eH4;q1L2o{Hj`cnEgrT>PaB^)B{%_*C z;y4^C;m4w+^yn9f-}x7d%9>vlcc4=0 zkQN4OsuB9wQV)7Tx<`Eb0J2Q;)0mkdQ@47>t3Q%% zBHwZYj9Gx6nv8MmKu1^%=*8?9&2fJQzGu1bR^(}-p1Y2a3W(TPNm&92Sb?m+<^?IS z+QjRR|x+hnbTp1KQq4%1H?Q~kM^~jNA)m+-wqImVCvJs3{y_Xp4 zimhuJ{vl~J-Ca{+?`6sZ-b^DeHXO?P*=S3_@S=uOL@wIFjdi-`-jH>|l^28+x_B=K zw=Gk56H_q}_H^;|3R(_^67}=(*8Id|Y0xCVLI8FuatqhHq%`6`xVeH=Av-X6Z*y&r z_aPgT)SeMs+>6|J8Xzl)eWMJJFp6HH&chix(l@4?e3f_^etCK;$70x^)+Sx(=j|_8 zbS|+qom@m@1Vz*=V!Q5giml>~q%nAgAL)B6Ke$B|i1 zStANE&b0!|fjj&J?^ngGo-iLS3M&jRde~LD4v=picj_KDK=~Dw${;Pn!~2Pge-V* z4+JX2RT?e(Gy4O?NJ;e0bwM$1H^Z_vp6&d38mg@S(x)&rjqQR|*qp3?E z?dh5*e27<9!rH<#df#dH^kVz{!C)u$+xE77f)&ES=1HGKy+Lc!aglvp4`SR^cku5k zwIVov_dOdqCatwCfd34}qUjYTR&CP$N8I zQ|rU5)hq2ERB(V+P~j?Ayg^Z#B^A)Snr!#*|6W7o#?1x;pkkbDtn^RO3O7lsg3&63 zH-Pm4uEHx#g%^e@bj!g*Z(+bys%oxPO$(~3)vEset?dEbOjYf|RgE(%%QxOi?4+uf z`7(o7Iy|VVpH}s{tLh8cpOE#J9!WkanJx_c$RdZ;Hms=hRUt}v_Xw-b#0EGldzq@cvKFuO&H(f( z0i|YT{Q-QoNGt&EXVu@((yV`o{;uQi&ioy*rsEnf53H%w69Y`Ro7J=6x?iJ-Qu8M{ ziPFR(Bo^q99k^(TiUz-k4!OOoV20av0q^5Feu4yFrT15n@^T#9y#gqn3s+YvjRc(v^iG}Mup zn7a&TWiM~X|20YWTt22XDV(=zt7H@XQ&ryrPda7mQAVgdx$FCz`=%H6O`lb?DAfju zO$KC!w@7A=Me3pf>2DfK`lmPhZ(mnh)E912->PhKKnL%ccD6Gg!e zbH`!0jbUiRTy~gOe;?GZdAtQvuSt}DISnt!c&_Kni{EfH`I8mL3)mJl+$je!V^hDe zeS6@qYIn*Ghd|TlFam4rRwMj5wT88(0Q%340*S7x$1NF$qg?cl)F6yQ0<>??9nL!3 z&&s^g<7KCcC{ee|*}eXkYPMrFh-2KzO|hv4@yP#sIlHLWolG#3G*#bEZ%2I@b0?_I z-ZY~p8frL>^#@D)n*q!{joqXg<+hnDp6OBUJYLmNP6rW0D&pi>V_G(}mG!TUk;S?Z zEJ)qwI!R5Uq}=U@hRfIxm^Z#kH-L7+wY>RFxddaqoQoqNzWq{57BOpJcxHeVrcvR*%@zgOa8nEpsww*EO9?f!$!0!cq zQjGU7lvpMD=Aw>OKDxUk#cwzj=QbHnsgm1UipsA9C8AnYehV^vi^Q~Rn(Q@&kmcJY zs~VFWFz-GTq4|dYSV3kWY7H7teYoc$5>4ZUNEBy%CNgo`!&K(PVt1@PUcH9>>l6GF zn0J^*oZrC;QH^YzWk%n0c0g)%`GNh@>$qgw85ht-I#89L9FRG<*?^v3mv0ACmF%DX z-CuDCkpFH#`j5)FG;KxYha~@kaa@Fhxc*WIFS-__G#$hVrlD!BtfL`pHi%@oORYYf z2vR}EcG&0Xzs`>d3pirPA)nr7_dX{Si`2Up>X3`^gbpaSkci0AdRjIubN=ukBgcS@ z&B5!caBg+-uch!lCv^$;zdDI;IH zmPS3D*%SZbb~*ZHxLvLUf5IJ6Z$Z%lS^vl3BwqWaaWFvlKY6r}oiWz?2Xz}xU&syh z<)$TV5VYt7^0Iwr0n%&bi zd-(U-?3dUnmecIf(x1hP44S3Q_@A1ca08kRZh<(agY7aW5r608W@_bI&N~$^{M>bf zWn2hHYPcgz`&2r@H0sdq15jTkrIlsf~tLd)g4Or5aUQmA;dx76S{bggbT=UsP z*dJ;Q3(rd`DSB9F?$X5Hbr^JAfgax#d=9scuNmcKKtNjS)A|g})`mtn`9#Gjw7ieHMRi6_j(0vLyY(d490lY+$ z#M9lkMlMi!EE%}_Lu5&dCiKzU#$7Mi`_;gMN}-BZ$Z2i1UTIpN{Ayn73wIvsTi-RL^~kt1S`>7uS3qHE)(R8)gQ-?utAiBz#s~+ z*fA0N9bAYBtp2vkok46V9$_%B_D_G~5B^{!q_Bq+0Gf-qE7aJ;Ir7`!0{h*xfKA*Q zWXdrQ=te40!s4lrGpnBT{u1~ZC)!GFXT7F)E+H4nK zq6`A(MiX6IPhefWCQD&Q3ZV7gm5Np?pye;(hjYPupVj;9;HHcJ zp`R!7->ui~UM3wV>z{dI8(hz~AgS>_s$}(`90Tz8Gl&n&xVpRPFK7d@{`zPC-weRo zE0oMV>-6uoXYp^y0Ca5~>I%F5Sgw|hJzRBX+=ai-vC@xu0nVaV|5N%pJNp+53Sdui4Lv5 z<)gJ<0kr18VT_=45tsV%(ONcE(b@)R`3w1xV*nyPWYvO7guisilO^u(*scLDGcx#3 zz@tcGEjKgBt>`O+ShNT(UPR^?-2iiPwFq_N7dTO0w>&!N2gQ1 zaI`aD>O+i)m(#Z5(%CR){7wcw>C$OE)~9<0I|Baa5N9`o@i61c^dC$LY>4yH?Ns_U zzW7%|oZp*3CRBrJarZk;Erwl9nMJ+!=idwzV9z501!yb3U2yE8^#ycb*l5-lJ9&`R zfgR>J9T-9tgj7bKCbXFl=k17;{=bAcw~x}+_iabpB=}9aw0-zSKwGj`K-&@W+tHT! zy#Q^KE)&`+PPMchHrvrQ9@{2z^t%CzZF&0rel*cF*iIURihl*~Dx%`I%bFcS`wNqj{P1t4Z;i}tc&EY*-(VV^b2qq=6XLvpdCt6sd@H$8 zM`!2ZwT1j{W;@j=?siIZO;bCS%*hig{z8vhaS3pNwrx*5@pt3j`PcTSc8KgowC*o1 z8r&ymf@w~rM_v1-)4J`iL_0Y>YUtuX>z4Hhv~H37cCu)Ld0AdyeS6Z8iETdFYTdjS zoz`v5AU1gYMp(#hP??#n*J?e&NqHFMtpN(SQ2EQ`WqsoX`{-E)Mth{9X zFW}ncG`wrH4ee1aqlvEJlWoIoa~sYcTCm~nrr{CvDRX*MYvxT@z^?N@jbG{7GcizY zxnJFhPCZFbjlY<=9-y8SF#Sw}5vNT23*Bt&NFWFmeCiJUd&fZjwcTtcBAeRHu9NZe zzYbgiCcc0~7Y@;&s_kZHFLtW<)L68W)6F(42vqUnLjqMiM}DUig{(jA#{#PO6c;Nq zvB@XeZg$2CP8A=xNojlOB%#f8vyTzWjL`Pqx>*iwr{iE9DKOovW|5=qU2&wMgL3;2 zZMPmA&{ieC9c}Mpj+58T-j(J5*vkVfZPz{TXnPGD&e8Vns4}mc?GjCN4W2IzV&Lim z_b}4UKIU%E{BCv(k%7Wo4R0W);g?V%ui=NHiLT*qe=z-fI()!L!$S)<{JKPDvwjo0 zAvxXb8RmrsuE?BV!rH&!C)xq5>u1=enJTB&o9*zR`M6TDMEAJj=2>QDG6qJ+InnwX z-)E`NcptA`jivJc*_m7^YafV*!6_lDH}~gX+b4HxX7yHD#uP)=l()QIE?_~Qd{9=g zo!)N0(CKZP(P$^9PY$0K^vRD72=w+%`K=5BitWBHpto&E2j03l!Rqaz=bYZQx>0G{ zLuoU8GJ$Zf_DMtAf9sPuv@O(_rR|e{%y+c)66Y`4C)4!-ZJW9WwEZBz9c^Xb6`-vb zS7|e`PW>!x-#+VT+kawS*SHT==5>u5qlvD;ch{P(aTlz8q-!LIS$>~-;fy zk7ye@^lcYSbPbtkhBZYcFVp2Z8yko zN85W11!#MR%ORQAzmBuCUHg=yZ9X`hGY;*KD)Tzq&e25I;Ca#@nBN)xV5GAx?^aOf zdlMO$ysO|<CU^LM++~AvDJ`HYVq~UW4H@p~ObT(W>cP3{5e42R^7O;~= z{mke-V~v8$l%A88jj-uVA1F3DUk~}Ccl5iL4?7_-jh7G0@E1*XOs3^J({Lx12)cO! z!W|Wu3s0+0{KZGLoIYU+%&*>&H?Q!38CxSQ!!U!w=3%5LPFeq_V}wdOyI(!VbazZFk0j=crUhPSU@pB=}b&_gt6pFGoC7yV?KCI$h(ns3i!~ zub%5V+qrbeLMv7@B+tzjLo$tA*$o6CU)GXJ<+lsfUhuVcwn&WrTrP2DVkaJJJ6p+A z*VzU!IF33m>BGOFEhsl{VghZ6A@ctemESr_2q}Doqco9@JrN~z z_zsj2yEA@3c${3_C*n6q!^5I&s1#3%Cc1|2UTrMO*|`lD7jF0p)9|w?4Br>=Ba?T7 zJVLMNP}ic5Rjdm4`}I7ckU&4l`YUI?$H!`Z!%XNm8YXj4;p$6qi5I@thqqd7g;rh< zPSESVk4kQhN7$Zk+2X}8{0XBNx|UE&vVa{pFByl zy(xsf^D7ut@k)=)vap1sI`RJBP+>kM_7BAPHDW&p;ZfD-se)E&IsPy@Un}3Z;ptCc zn<+l;0jH$LOE5N7r|_#RynJKZw!-gz8PB51JfV%kPgZ!}!pk>amr(eh=D7O5k$|W? zq6RdyJ^|}J`&%4E&wp5KjPww#2@GqqH#9=L|!8ok1OnZGW`wR_{OTy46nHouTaJRkPSb*cqP`HidZ&bVvh+bqMGmG)+!{rc#dmC)H*gpN_Ug1pX9*>e;B457+=t&pQk6Wi{TbbBvvk5I{ljay` zT(%Y@J}QYEuq>YM&0tyC@|$$kJQb7}%MxDcr?Sp3Xw2ifmKA@ka#QuMeUL%FHg=^H zLVx-pD9bndpd)n(&TO<4%(b9ERi;R}4mK48ypVOiTCBSL5biIW)TG~;y zZu}^xrI#ywkz|DNAHm(Gc-U1lv|x&0y=VVaP#wRTxssfann1;*J%oNKh|jC^)2iPa zE2G+ZhGtv!drGo%)bFvu;6^5P#}QWj20iH1?_Tb22&-Sb`bADjvZ-lc0e%%Vr1DRAgY*|JPwWmToA%JO%MrwEzX4~!>gB-7WGMYG%X}EljZu?LWQQI5S9QnE4?&5 zpT=ONfA(oOfrrQI(Fl)ZjAmot%K5ZqJtf&ZB6^1SVq){WN_qDtHAyiex?W{HOjtT~ zb2y1NLF2Bxa1!4yO{eY*l9DmGI1f#J{|#dI=EP6=d6pt`*7epk$dqF@-Fc&q?kig4 zNqd=bu|8ggb@uTDCojV`@kDQ^88~mJsk=7rQm~b`q!}BGri*#;T=0n*3{G1h})(1Zqo1YDR z#f?EJqEB5B8pUEtQv8NyH=6GJNz`6FnFFVY zV}7$j;fB&|Ld|Z-ffId0`WpfV!*E+CosfhBif|g|P>TTf6NXiKt2zplnOeJ{)`lu{ z0q4j%v-`K42CeaPyv>2#%MCdjlV5W4-nZU`NGIr1E%<$keLz|%Csq!FGnBA(0BgYR^d?<5gf z%hS;oIK0Ec;+Ey&ZqKNIkD)6OsmwgH^~`Y6QH zm6~UH+TG*{PhZnK%hT49m&4OIq9Nev9|u{UzB1YIbSug~h==S9|2B<^B^GMZaf*ID zlHoA-v5>L0bV(r6qR;J+HjY;&d3xs4JEbiB5k43wO@Am4G|D5>xQn8(%+_HB^jALn zi#6EtUfIB;z6>h83@?K=^g;)721j-EVeCE+TNSIcjUR*>oH903opz!ve_22d}v{_9x$&OvVLoGLAHCx(&x0$Z=c6jnVo;DNVLF#^KiF zqj=X+ym}enbozV^!m4TwDy5OsQ2dcTE8nPq$(iD2cerlbLZZg0p?@I5tJUT+0;bdD z9v!5MGJg&f8`X>F{n}$IiI5b7m=A0tP+BhQ@1dX4D00i+E5PT=P9RCKGrQaVxofTK zpXW=MK2;|~Wc_A{n4z(H^Z6@6J=s(re1ULWKw2fgo4{X`0)|aG9lffAE(Z>*f7_PQ z(L?&>s1H{FW!b4%XJ&FGDq6VVhx&yZu1^u`g&RIh)kv0nQj=fBq|cL<&=6q^CqCl5 z5m#ADO4d(uNk1$pcR%rV-CU0B#&sDVVC)U(Y1oHWCX=zWpx&@1te2>KYP2+$8i79| zU-?!nT)i1av~jhj!E8HBXVG;s_54;`K&^gxoGjE9IG5LuX~chg!IPPL=I@*uoV9 ztvz}5A6N&73bdNAwQ{wUJebMV0 zcpIV{M;(X$g~H)ca+Rs{;hc0UrpC8vh%stEzl+Qk8tw;GtTsGoz<<33ck!GPq>C;A zxwkNXt7+UX$gt+0=l2wkXhpqH5hQ5Q>YoEvZ_xdPMmpon{Th6RYqPu=(1rZY+tj&t zg2`F`Y&f9)PW+g#fFo{n^yVF;oj5x7%g>zS+MPwjI2$s31L3X}DBnuhwk41q{U z&anKi{gI2<8V65ca3*ydF=X>OKtIdO=TZ1WTb=+pJC&^i>wA@qym#0ve0L} z#p-KKu2w4=Hmr>N+fuQ;rI=t9wJVo27rXK&Xp6rzg?~`HRO=b~rS`jgE;O_SVM7fi z)x!mmB7T~oPAzh)mOv!eh-?kI+4W+aYye&n$Ng{IpB-@P2mO>v!OKHPAgDr+%!q$gX$hLV?w9RXxZH|hz`Pn|;h`g==i&a$XTePYx2y%EBQ>BE`;%L4O3z@0{S~7GlN!#D(M4g2M`H1%dpvr`hx7 z>>=J>?6zthfHJXd9_FvCe^Pg{%~5cQ)+jL@TyTtvq4=0_q=a{FYC0Tm*J=-})TycP z1$TQ96Y&Fhr7xEGo_ZyhKIJ8b_M+Um3UD~= zurD~8AIkakzLjjMlB})fsw51T;lT%sXj{y#pAniTm;rRQ$*X6%{+g#G<9&L`3lG+a z5KcY{oWYw@d)R5s@sr%N=H_!mq#`lBH%@<|mvdsGZwXD9I~sUZ-Zi-hSJh8SZN-nd z{I{rl2!tf+2V90tgrIv#5m}-r?}bd3Og5>X!_vu~OOo;9;Y*w6hvZQmQ-PiaRJZT| zR%FyjH=4v>lvXF{4iej>-e~3NimL8h35p3Tt+MLNtvG~0Y|^Q9{Nu^kiLXlil0P8h z^x0G-jq`f$owcoa9VXTW0Naq34&oxgL$G0pmy@+c9`0blzjBIb3q0kOaPP^iCAL|X zjOpT~WNSs%KXNVGo^NUqNA&6nN~rV>fe_O$4)G10Ti5` z^c=lJ4ASf>*@-%K7T(X{$jA951=YaKR+?8Nwj=AGDtS2_>7-u7Hg-fu+mZgPb{*+h z_(_#>IUE#~?-zfumP3L!Q@96TjU$0oXsjr8*sL$l#Z&u16C9H}Iwo%})u+))kZrr# zQAR7cYLgW1i#GJ{C*z1B9)53EZv_C^GXT-p5rhj&Mn&rBdaa6K)XBWtP&7ADhsQ)> zsUz{o5*`z&w^%!Cez!alT#}qHpJy5RbNOtp7<4N|Z{|=S*EhWZ22Uc6;C%1R%TQ~g zo=>2(My^uqW%%3R#aFac!FKx*BVVRgkc|w9fBf{7Tt;WMM1ZnecA`LP*(p&?NB+?| zYOz6^4&G_-2eYYW$l%bF6|Lp3hJ}2G&(@B!BEO(b?cJWdR$H~Is3oq1UyhPkm&3p5 zR0;lt9im{(^SHB66H+L2y#$c2HVZO#G!qHUxB(X$-V9hY*d3Kn6^B*_QVUZ1Nh-G) zSh%%SgyYO!>P_1~#NCpvBpY5u7|;Xx2o&#B5TQMQ5ZV}MaOso<7qPkBd^QY}Pns{i zzdT<31nrg4-%L#l%w%w@lz@wg8vHs+0JV&$kP*T5ce!fpExOZtvfbdSMphy6lB*hP zSfM8mppiq%USOrx3`-_b$IF&T(d35D$x=%-?z4p}Lo-Zk=E=YR*$j`N&+~GB^?7br zpJ&Q7w3U2z?v8u;3-1BL8P777(I$67z6kh+e|v)513fgI0|*~!yzbr;#l|w9s>F{OPbM+zx*0xm6$Gs zaqcxu?)mK&#<|vOkx?ZLa#x4el=bJq?ZXZrHf?qQja4@FATsD78^8ZbG-uBZq_9@- z&dA_rO!B)7CWN;S#H&Am!Dx6B|F}q=I$6J92_X{3Gi@9(Cp0m6HwVb-Y8wMoPpqEI z0qRJkk^U3hYzh3$hUZmaMeNH1DDVD@n3x`KAlP814jVZ zbNi$hPf8tuAGvXjjF~-Ye^OO`{yS=%UNi~J_xbcadP*#9Jf$0GeoTip>&+*=O1pwi zy%pR8yqC}s`D!u{f&Q9#=!1eCBip?<<7&mZB@}cfvkn#G&T9Od^zFB7;lCvkm1y-bv@F?H{BoTT#HL*p4}WQj>%dYhzA<)@)9 zV;;uRXGj_H|H$8&Q>ZjYXr7ZWJ^j~uBnDM2!umEW0-JEDLUsG3EIX#RO!=lRv>ECg z8p+)$54skX+)>;Xm?t@hekJrkrRrGK46*|7OTO`U|##(v*jP^3plDb5tYwuhRp8#ciatWcJt0)R2Rh~UjDue$o`w1Q`B%*Q|D$JY-DtQN zu&t$3E`c*(SZ5e?(Uok{zA9}~AJEis0J3+ck2VDcg35xNb7y<@B!klG^%dgheXPL* zW-;Up{Mzs7n=L9ES`#T5@N4z=URBvTfWrC{#F;^xYSl z{40`mBcRp2!GbIUk2d86q{!VovicZT<*=E5ehF2zofXke+Umg2jOSW?fXtQBsstQ^ zhqz^l43Bn^BJ5HYI)$RIK4@L!m1zIMgJ-;{zx+~fN(3Ke|l%q7b5H zBvad6jfJ8u)o)Eg%v%AGc6UKW)iZ3SiFx=suhA=j8XPv`xE#&8Z4@Kxf5W{~*l1h} zgyYpgNcU*5q5)@v@RneuA>D5;p_eC)+`F)5jq^-*m_TV+r+^T@Y5Yd`sJ4V+l( zboVQBKTknm`3(euWyRqN(?EM|po42*ifQ1pHp0Ua>I+zN-Dvq-M{4jH-+R zup4T_d&s(T4_Uh6mt=Yn&TI`>)j!RpvBY|B*2|(EiS>QFN*)xD#7R7B(BB)dic<*> zrDXHj+7_EDmSb|0rC?;24o2vj*P|!AsuonDsmbYzJJHmn^njW^=|nZ-jFnhZ8z)9V zuJs*_pSgagJm8x3_gxA@Vh<&7iAai}>kJTu*TE&Pz;oTP5SwchPH*!oh>4ca5f! z1`nDp)9?DmLFl}*NWslx1On?)@(2{%fUJMt4B9`2KI>4YtYzV4%5A(scZ&JJDi+?Y ztp`_@q>pK4E9$_C^tm@wEOzwm%f$=0Q?Wv0w1v^73lS}4y?DWs z-F|s5?e-69uS}1y-Tu^@wA&xwTKXNhTvkDgeGsZ-e76$+6rZ>cLdWa(pBJAfPYx^R zsZLlJ#{CdNoLp=y-$V3!TEkL`DT53E#lawmXO$xqqj75t5%7C(@DU^19ULf9d`>L{ za_;Bs0t{K76)xEi$?T|>X<2_c*UZu@`lr8UWB2|n#b)IQsS0ex@QLttVwG3aGjV6` z+GF{SU~;i^7eRDJqgVAW@6TGgk;_Mj87cT;Zz z!-QrDy26z0s%5uxWe1qDZ~aZmTAVrnVXs!^|4@tDp%&$B&9_BUINzCsA*ybge0I4g z*eoywoigkH*7Lp13)c_k`b45GL}2|}C`OVMEG~0zh&RKh3*902<#Q>wK`2-;O+oGZ zyW72kda;~x_@1(yBIl$V5?FdbqFiIn%!`=$(-1Z;52uFO|NdgZb5g^-2)T#SKh$*S zmgv_cV^|i5(L(%==nCD>z)wIM?2yuU{BG$vN1;0Z+!Ew%xGpTv>k8L9DzDx_s2BTh zs^(Ikipu)~H~u0oHwrMA<4uvIj9Rs~C7Dxsf3iZ5jp5!g7|D=d&Jut55#Tfk%=#Yk z(Gydrq9Jh=%XhO`qoqa$E>)?7_RGJgSQ3-mI@pJo3O8#S;?ypyA2@$FQqnCqYYgwM zP%BiAZjS#umY%Usz*6=*!_tQleO#2f7zvEo4PnNMWq5BlUOkTn*U*qfoeW}|>uS(c z)_=jIjYAnzG>Ip7nf3j7Ac31 zi5|T5B3lSX#-|6%_hb;fm>7&dM84}9K2!TVnTdx@ki;dq^$HRil_-~bv;GlU9@-#0 zaVUg9`x?-{2`JT(+$#jx!9X?_Bz1>S+OCM*@UkG4t5p}L#Ev&t*>JgzGEyJ6b25X` z9Rxkb!@6<wmM9=h_wJTY<0L?Jf&`t;%R~+*Yo+gG_c<)8LI=Y`g@&FyD085 znEgJ8Z<)InUc;w{GooLTQwVH*K(9d`H!!p#*Z_ODL-19#zG*x)5w(huTECw>RekkN z;jfBTe$BSpp&JvnDUPn_{$NzGE;=V>7GcA@BU*CbQz~FgowGycYg_7b6LK*P?O2jrT+<5u`Lct@1 z`)~zb?u)elC8PL6Q;noz`t~^Kj3sEHmT&9ilzA3qP@`l4q@=NVO=GhfS%^v0xXsKL z&@Ke#VBrM?%|V+HI(WZ^O^I5A2={0tqi_#44ozyuoxbd`yiJ7;)d8WJFOJrX@}g>U zFDzvE;;B~Hiwf-BK+$Jc4iu-?gA&8A5*hieaUZj12$4JVQiK4JJj*Z+%LM9$M6Uf9 zxik12dR{EJ{geAulQd@Oxr;FaOV3;&^RU`k{K(YfU&M|%#SA+bde<^R;C-+&0Y~`* zX07zYv(4!Tso(ITj{V!8ZT*HGH>lsRq$M!3rOm5GZa(yIE!9HYWXkfCS6G{S>}Fn9~57Ym&M|^!SG*-;pnq0hR;q=4EH03 z!Pb<`uvd#x@1ahrh}3PDOQk*4;hlIWRTO)uD3R#I`&S69QpU`z$L>r`3s%org(#4$ zp0`!j${!GZDpt~9*Xz)(P3kR4w68YhvOC!_Hy5ZRttlNW*V{1$0;fiz8G=)Hg!MU~ z?MNL6YU#`!w&{7E1YF?AjcdN(i;Z3C8%s&l(r>F)HA%Ld&!qVaH`2=~Dc*kKiN%roanQc|{s!M;=`50KY1#l<@ut%o^t`c9TJoiHo&YDozayG&?93upOA*Q`$VqZX4F7|;bQ`8;cVn_3_$q&7=}ovj z?;=Xhq#E8y#xiDD{@Y!D;!i@kW&O_W;;FUL%-7Bg6(8Lm-#Cvi|)8NeKHz)^EBKf4ly-d9L&ZNHXiU zpU>ZJ$KY~CErWre@6XHdS?en|G@2*e;Qk46Ba4Bu;caMj5K|-zq-G${P#w-vWM*Q~ zx~B0`S3pxMiqI!@3xyyR`T(FAN_3R%6{74|^!YGMnZfH<#!d5=mT%$A z8w^>5%?in!=))M9m51M_Ha9+nBZDZk-je`e(z|w5G6(<~6FPb_C_u5Bggqej)51)Jm+l zCs$GEPY&nQK;@H2`RZ4A)RB<^AX?N2uiY+vgn%A>7zRXusF>=@deGlvQqLu0 zFe$OgWoqoVP~+e8Yt%|G9@{E-_`%jD`>}EU;rVb9W(hk5-(_jefJtb2;OIt|0Vcln z8hfS;YUyJ}gMMo>?^(T)-A|Zf;zX7?>eA{$)oilH?9k@sxToG}51D5D&#}?N7U#Vq zz^5y+UmK^6kr%7Dn#&SdfB35eEZy~5ehS-P_$?^<7h2wGnYKJEzvT+Fe4cB0(^cAX zBgD&jSwQo5U#;AXL92@ld@pa$f$!|lz{d#11w050ZsJOFQy~`GA7o8l={DCm8h-c{ zDP|wZZ0(hmq_%3d*c+>)<@%}Wg#G0jJq;a58Pz!4*#x+3sNrJN7V6ik;N7CtwvSfZ zl-1^U`G0Q5#B#MIRzo%p5U4d_#}RM+Eh?Ga9Wp#Q~g?4&b+ zlW^t~pDj+Ye)cx9w+r^`-!R!k%{96%?BW65ve0yhsd1pz_~Oa7#`mvK z&%Hda#swe)sA@B9>G6ZMgZ6=4NkcJ^q2BxO^Jr;=OFhiNC_kAV*u!JdLA>(Ly=GEU z%q#CG>EJfpIx+%#aoA~Ro{E3Ng3!4W^AHUod$F`jK$)bs1;zBngXPi^nMhF8FJuvY z9Z?oFVi+5AUgPobw1qwVGe*{>*snwa{>-M1_1bD0h4_DxE7FfQ;=P2$g ztQ6qm1US50dKMU;zg)WFBA6dzzHj(Qu+avfuUH7D&s#^fU!Zx4Dc%=0dG*Zer+G>; z_Ww&B1QNb%@UB*@J65&sGt;dTgV>1~fAMeP%9)Ef<#D-;dZm#bS~y%bY(F7n`;$3P zJ}2yW_2ZDM?2DkdWt~v_@O>ZJL0uOQExD_250QIi4v?k$RRbh+pOOP)8E~%vfv|IN zWUs)Uw41g8z2MvYgJ2M@YGuJBp4W zLF(scN-8a3!vb~Ddr0xDzX1j4q93gFNRw9SnWjp=huD^|((m#($)VC8BsEDyMD$p` zRp}QEa7zD_temF~RABZk0hVu7`p$bfrN2&r4^ZHt7FfPj=}#T&YUX*+=vkIg1(kly z1%c9M-e;MVHh}T8CZq+IYo1~Xd6_&B{vgd$k`cd@yd0%}um$Um-SVAP`hll7rLXOb zJWt(#0$e^)lwM>ID7|U{ls@C4U7wx>dE$UB`D0UMbiW%Jbe(t6NrDu0wz^FElzD>M zm}@h|laVHGAIM=cbD)f+rI2CMmJ{``RbQUqB$1VcZiA(S%0$MZYAWNz9!|#hDzMQW zXV{GPRHEkf=eU|L5#X?48(UDuO@;?Deqx!(*ve|-Eg>0aG|zT|&rP1l_;Srtk|BS| z%aQTitwqL9Hd+~v8t7y^9Sap!#`y-S54vB&;rJ)VKy6wYHBeSHj}4>!VGfYh(Otv% zPtO6e4A_t%17M))KPhOS8e+g325Ptc^EUpTy@e_tlPb+%(K83gGIxRj66Utf0kT{^ z(;~M=VdVN75j$t2gZdB!qP?{EDE zNyb>`ApBtOg_&v*Tcu&ZElX9Jcxb7k+En(rBjU zh*R>}IuIg&S^wO2@_QPwOO2w;*|LWz7-%}kesH>zs7cdfV`dqM;xCjrc_c>^n};cl zf?%IQT26&eHcpW(X&kbhd(e1EWj(;tS&ej0Emyrkvvm4VMyRU9tR}8>&%~@TANb=J zizKj$6l;E&^4N<#cL_UH)_>r6X2K2)ssoWz%}nNFa)U2L>vATTBqs27`s0QbykD82 zwR#DyQTLl2&8j%Vn0K)@gBixrtlul0dMTTeN-_<~w~#k;c;i9AWI>qQ>0;?n%OfsG zdCaeC$~Lgy0p6H@2S3F1&mH4A4yWgKf~C&WR6T6)V%e2u8+YJqKJozTrb(8$uy$;r<(Pf5=D`%7MqN$%2w zfItYivT27unhE%DdwqdXUa)nmfHPeEN_VKJDOE3Ak5IAPt`fh3rvm0;6lNLXjJ zcfvY@z_}Q;G8lc_f|x;MA`T!it^8vY&$H@HwudLfwKZ}9{;A` zJ5=1XtlvXEp;TZ=H_Z~%@pT)TN!&ds}eQ&^43p?I`S(X-BIC*8J6 z8ft*Zap|AC7Kv%g58nr-ZuY&< zF6lkOhjg%4SoxB`&{#aIx9dH9RcsnameU;4)#O{f&kj4g-qTKjhmZ?;z(9cITTR`w z7rB~$*d@1bd{eM*RGqOBJk<$jR}N?ycertiZ`wL_i7E zv)b;;(C#!n>Psx8_TbJo$*5H@qZdNQgK$Y0P)b2aIDR-3a9Gfc^}CSz$DwJ}a2=W^ zKf#I+^A_$%NBZDENdovW1{}s_w1p!sr~ygOIJm9>T#|5J>2#@HP`L}Ci^lyC4`;y~ z^K{cOrYWOAQXr+8oFr|K(-j|6G4+I)<(t4=`++X$JWIf+%vx`y&r*ipS`vQQrVQM~2^Ml)ud6lK^ZF=l z*!0xl8?3lsx;X^Hk*@ zeN2_kGdEZRtB?GFCz8n04FV(T_4#K3*|BjZ9)8(LAlx7y~{vv3|E#AX)e8fSH#Dp-+FdPUMC7KZI40swbzMV1T9;crciQf#?Icr&8{tReK(sB? zf?cQYDA|)j63k2z{5?5E29s@mlr>9(*mwOlzXGA4g8ppWc`{n9uvi#ix^5cAV^vDlI5xI-6cF!MB2|ZoE}c0m zmfM+fnjp*=3<5&kB3b$2;PBze87>ieT2qj2xj9J)XV1P70hS*cq?>?9vTZ)=|4U$c@JI~)2 zTaw`SmGtZum~VSucd+eyFDwQzScd8rv+BLhmGAn-tCHqG)E=)($`U{z!iD{9vWz6> z#N_+fFC>4JLkPwKCud-n1;MiPy!4XJi!<%EmIQl{ori*CY&!LuWjs(|8ryLhDvKVP zIv*<@9DPP%^r=A|p@>+_fAI&1BC@W{ohR!_E+Sjv0?XhS31)g|Kg|&6^XlP zx5Zx^nJL1bJej#oI=4P1W6%fy!449Ze7H?hM{8mS}FJ5RIzE1!dI6JxynX7UUT0jU>< z<2P(IutA(@cU`7G*`&aA;|)&uA}J3e;QXLW?v^qu*v4(o=dNJV$uC>05=_oAXjsl$K@Xe5LlcCe=uvOe$EM`{_7 z4N}K))}_mi4M*_QpIsb6{O4~vKkA_+tW3@=6PbYD=5YkGHBm5XrkT@nD1Pl|+3L5u zP;JX)LWUCxI!C z1IS3=+;Z21mB7I7LlS^fOb$rx+#<|=i2p-9t{lOp^tif7+Eco(_;wA`*>8f=>{orQ z>^uUM!82!-^|*(I!Yw})60!Vk0$!mN@|Qp^N2q(`DCs;ynITFQ4hWuw%mOEW+6$$& zwlLRUZi?Ch3~zjsjM4{yZK||-3&sT+js2uql}wkhWTD#(_^-e7Q%=&kR4M!A0xkP6 z?m?@ZEBYC)ZmS^!RRElI`kBYiXiVIx#Ok=%Z@aXb-_yE`C-cK{p4Ijs`$p@y$pk^els6&B+X)CUna@h^8NCf-6nH->!cvnFFh;D6`0d4clA|&DQ z+urH**dDy7kMgH}A;l^$s)>XPS^S6KJVo`eq#;iaH#dOy5)UgA2I}znAw)6B=mf_L zoG-tOy+}QSt7x{u19ZHaS4B4P{F3v}RC4#DSmSXyiD@Pt5F|3i(wP_5%Cv#pVnK>*;cJBgXcCYT`?m)Xj*!}(|uqz`=kdv z5_Su4W;UC63)B=faKHPjl~8g24)K^?>#e5^aa<5)pRe`c^U%3ZGiZ zvh3U(9_coRfDSZ3Rr96$>j1h4YEj}{`-nGSsyFCq4;;i3dc^uPl|LP+mHs}b;6537 z`}nLSQe~z_-t!aTh^rO9AGdWR-fH3{-s+W@5x;@Py0Hhj2rLrSzm*riLW)?~b?+=Q z^O?vywa0(0yu3aRspDXGc&k-c=4FPjf=k@{tlnn_r-y(o7=X8G(iQ7aXuUN%_kCkk ztZjc;gT`e8*rSTQbJ)w5M2E!R%X{eGzR6_fi0yFBc3m=!5e;tyAS|~uIXT!>SD+PP z`>Jwfd)0ij($v)61C^L|a3_T~0JWM(U(US+6V}#ISh`OS_w)}0%fcEFY}A9RJx*5? z4oPNW`<-g1$D>X<7Ugjt|D9x6=|b72Ar|CGtU}4LiH3*NR1T3&9^PCgdw=I(I?ew& za4+WW$$6`qvc6BN*o(zw%F3xy;91mAOKihkusr79zIxeaf51y@UPCx0fRYib;z?nu z(7XPEHL^&wyQU>Gtr-zUed?GsLEx8mDBZNN%N8J(%z?)lJQmVo4TEsyD1#sz|5ywd zl)$m=8?ewHN|XHoM+GpDxx;|G;W`gY@U~H`7Q1sW_kd7WI){xIcxH~%)+j^0C(Pbb z>z}V4OeM}W6R4;>Zixn`o9d>AN@z@Yqu)#jt>G#BBW9>-W0UfB5eRU;?N{1e25w7P z!9RVS--$`OID1AVQ@N5Z);*o5krg2M;HZ}=Zm|!wNJgXYngH0ntvy*FWr0l>mQHKp z7M5NU$O@FlX%?DmTqH<}XRm>1aL`En{+0gdJ}YUs>xfs;v!Tkl{~{DsSpAITDT-PD z5XsBYu7>&LFi+U1~ZS1P@jr9HO_hd!ja+fZdVKA;bV<9*?aLhX*q0kR0p5FnVS zYoO8LD^mO}#I%6@|3ZcECg!dFM1F*}JyLeulgoWOGINKKs>|!(aGu?gdl#-2fM@GD zK-%j_w&9HwMGfZOixBi5612x%K7>w(eZTwQWo8pEvm82XsK{AdiQ+vh8P3uNVV*43 z;xX1hTOK5}{1(p8Q33~qK9D97t5Dl2udSDO8ILuj2fZ9=w9RvJdY?6;#7^Q&%N!Kn z(#qDT5}w>sQIrlfR5X(&ps_mk_nk$CbGly_=}#+I`HnKLdX4d(dVZgIaRKS{4Bm7w zV22a}i}~-YR3UEN5<;BEkLZpTh_4J|44751B$*zxI4nZl)xO*gJ9~WrMv7-sBBzXa znq>evje?8#AVCH^1j4O~xgr7LmNU3w5>KlJ6`Gn%V=I?Qeqg4|l zKDI!%MPR=LEA~p)$ftn50S&ixfS>Le6spO@HT(7&P!cxnEo`NHb5JQ@D@K#(CiSSE$C{#1^rUg^0(9mj?0pnMQTQ62mY_XnsBzDq9Q zOey||PRX~^!BhvQgCjQzuijDk^%h>foeoaf=ydRKh0oW)0|ftqI=H%^4nEx@qJt-M zO)}8IWAsz;%KCSl7uCT%G+W8U`-hU9ql1^N5FI@8RjY%$?&);!{7uNSDj)~bj5f%L zI$WAhe&D`?eK1Xx-xd~O?aoelRHPrgPmNS{GSi|mIS9<{s<5@#iK>sR3pgBnQ+?F) zqPyHM8UMHmpzCmlK8nag6~xV{ZiRZvs!B)AE`GjPq#eW@s4(_tWpdj|mGn(nVKD^mNHk z9RVjxPnubSKlvjdGdZV1cyM>90fF3rSo?|@5c79$y$ZE}U8*qKq`lal$5N9qUz*4c zPkm%n#*kfULvpbbO#zIC&lA!s-9-wDB`U(onwpKr7zNesdIq~3?u0k;CXBi<~w^^;9QV()J&`-f0pL?IJiZ#@9 zrWZ9^nUnRKOLmU2Y5E}%jQudj8k^}IoU!?h#OvGi(Ft`*2&BWYOPLC^RZ7HE-kYBy zrqf@x6Y68Q)66o@cuNAZ_d;RLG+}=2Ecr9DUPVC~g8QQfeN2Dbd0L;_2c zhv-218K-)Yfpop>ftFUezb?-cYt>B?GqFzvQijGu4P+*^I!N4&iC*bVLbz0T*}srt zl_%_;eKtU1eqQNuK^_%r ziUUNir6y3Zi+T;xB0jg(Ppimh{Ud52zq_BU8HW@5|0Fv{k$b);ioEwMtH^#kr^x%t zsSMRH)n{4f?TnjN>?kSb&uvd#P9=oMV1RyDDqCtyzU-+nh&%1Fsi`Qy*<-_x zGKCard9_SUFH6q*vMG+3@L1i`tk+=RCb7dA@lV5nGX#oK&H02Aqm(r3AbSbqJV2_% zqygh(KjX8D81K|bSZZ2}4A^a64yQ!OjvcR-xOjp%33=Ba1wy?kMA<>snB7Z)wvu}R z=A`MiT23|{n*!t*HzV@1=aTph>qTW^?;cCtqow$wD3oCnT z4qeuT2@TirYDSA1p2I(ZZ()_`)%&8pfz`RkbJEL*VjBKHPP*_G=^qV=n$rt&;H+JJ zPT(+3UjgT?z`m0QmVgM>hn+EjlQh({{x{TGAW$;W6nZF9$fEq|KeyVB#MTjKJT$FrC;*~%}8e4je{emkT^z-5Sx${q?d8seN|#c6T*23tj5kC z^AbWK^;!t`S)N{i9g!%@EF$u5A+VS~0#Scv*ZmHz{evITD2rVynXtAax&dMszG&3U zRq{u#(n@ER;0yPGEyka)Tc;O}YKg4>+%>cvrC+Z;hBil2F#(W$f8M|rCN1rL*;SPN zdDoFCU^aw~4<%*GI+44kB20c+r`9g>VELIX>k$QN8vvCBMLBOaMU(btwrrp&%A9Q3 z=+M`qvT}>sqOywM=M@&6_=^KOnu;b3ywWs;#NAxtIP+^!*;PULt3&1Ya-i3kU-rhx z@q-|FgRpxbdhDfmAlfFb0DgG6Xm{`cnWS-c1HHl{Y^Aq3@B8|LC679^a2hqv&@BTBqN5nIq zI4Ag;Q*^uQ(n?}CF0!C%!=XJ)E0b!t-^Vr?(+8%r{%d`mM3S+ggaB>Nh7%{7#CyVt zOH5*QI8in=p!m`AX&ZzKaMNXr**R1Im!wN!@#?-v)tS>MYMsoSxEg_(5ZAB8b(C)| zv}cOjZ0G#OKez)vllob>BNqn>uzd5%$xQL{jr)TZ3HQCLz&|N)iLF__&GJg7xM|!~ z{(!&_K$AFBssO!b?+dOLi2v=gl6Z_3q%r^DGF~R7En)t1vJ7Rw2V9x0d5Ut@-^S!k zW8M_aQ`&LA>p+&vSwU@BOp;?CK4bmK$=f@B@-tncr;3^NW$x>n6?85uhk)Z7hv#s- zt>sII#vR8yTHp}J%f59SKTClP$GO))#1rLseX*;2UxClz_#p*3{>okv zj-P)=gyS<#3UT~+&9fYzZ1RNTT{X{ge7xl4aQw=waD3R)mg9T>&2ju<>WC_|SJr}a zzEr^5`-kQ5w!7s(h_`)PIr8_D#c`|6JuGmDx2t`}+a?NZcw1(Hqr9CF2yQ8sS>dKc zwfXRZyghHv2ydI;9^vf}oNGXTP;G9!P4X;nk1%<{+jlk3^0uSomALS)unHQMa zP&~~T5FupGtTvJnKVi9;51E3^sc_a8yC&PxqryJBwbzBa+@is>R0%lO}A?ZBv2)^EG7SQTrR z89OVpd~_2{X;i5gy*M;P>C6jneFj{(?pin488LBnUbqXQubAS*f?V8qUEa~=X5@?z zzCx8=CXscRoj(JV|P^j$^u}yik)}1gN!Zvc3>d z3_$RItjjxTAW!jXV^g8{j!Q?5RxXXuK|X*WamOGt;DBDN$0rPbAuo-{Ou+pG@iQ23 zhYJ}3>?H#5={_9va1NdK5f`{|DfH1g6W z+?-U>z@wLDMw+Nz9j|VJ5$qNEMYw6Q9*y|Tp2T5}MldRvWsgR;VI`+ynKC@jR0Emy zAB2nI%+|p_kuiUknP! zp9~|*c(bOhcWp>)}=W_xr0atH&WW-e0}( zjK#PLId&nxf5ye^xGwp8{N{buxD*-pS>vAMQ<%BQ-jf`;&$?S*NQnD7n?Icx1@L|nRp+dGZzK-gvZlVjguM|K9ZTvH)IvDs}z zDL?u-`4lTK_BoE;HLabdp@kl%h1(s}GzWFKOJj&zOC}|aI{`N%4Rhlbz`Lf# zPacbIoksAzR?^`K3OzFA{Zvl6n-rmNglQj>)qrgaNp?nGgR`rJ=8Axs0tSPGHq9-* zJMe)`TOMzyN@4d7@yA?ovp8n`F2~3~rYn&!7#BPXPv1%?>+hhSRyl5`wNYiGbvb&3 ze5x*I{V$)9&oV(AH-Ir$F$>LhtD$u97c=A~gf4nRX{r{pDE3MB@aBdz8Qa2IoUEIq zb2R#@UeIXWC{OyWlW*44R4k9f#sg)G)R~~5p&u>0VumXr#Z6>!2`-ss$m=cw-0px2 zMoJY3;;s-;Fs@m7BC3QHzHqv#0eq{n$jE9{9DCg{V+|K5F^s#PGufa=w!b($W(3@y zcR@7Wis2tmN7F6ow*kJuib0QAI#i6tu1ZU+;SEI08EAn*TbV+=xE0fj9_Rb!C8qHz zYB#Q6Sm7Z83@hB38#evi*M|*n???ohnaMQeA-^&;68@6?tzr&PD5#$vu(a<+!;zm2_;8NH+B zn;Y4|ah!*Tb~4;|D77wW&5p*;tUp86LlwNm-b}}qUMVi1dtpm4Hf%ndG=zI)oiLJ> zGbSjsnr}WS-=>HH)I*L>d6q~I9dcy^d@5>mLlu(oz^*&Xnnqu zFAXKG66MBwOR`95XtzFJhlxQ$#?_lKHYjXdy+@~pps))R$gDaqNW$ki_@r8Lb854_ zI-$w(n1A&QZcb&tc`SM1ZpXu9H@hQBubC(^L^J;85*f#$m?gYgbK`1o_WL^0l|7ItKZ- zNAk79rn(3DV~}4tmpB$lKT+hf{v6zlY1;+8Tb{#02suOy;QRmeatUyHk(8C^O`NxlaG>}W9a{!P7cHx@3O(cXEwo%bJ$(!|3vPn z{1I2W!Z3Wyc2Gl?D(|a}Z{?DbG26NB#L_tT||_KswL^p?hJL6%j^nkK>ydL9|6 zO_P>0xotN1JWFTj#*lC=l@ZU*96OwP)<*7W4f(hmg z_X7>nS6`Bq;`mEZv26D&AxdA`$+7!BT_BU*facok=4t!6EBlTa6U;#P=8vetb@b7E zveaUqTKr!*Ipr;K%GhSh$=82zocy<}3>g!uJtfr9;|C}wjm4{H5GOF7)AiH#l%@!L zBRr{g9i%;v^JIpTZI&n}%R~=iZGW_!JV7wY`X6G@&8Cw7A8B6#r}gyxKSPfSW1@x- z#$MTyP~XBtlZncZC`+3C0*tiQ^#MC0vvZXG2? z#@BQMPLy%hHhCpDf092V#|#E#UnF?c^Wa5-I`YmhiU1CwJ%1rS(I$;^6$X!9F}NoR zoTbCtr9*rJqd7WuAAG-nTG4Q$?xs<1HZp@*Hux_Z6i9==!s9ntG^f2SdjMpGmurk$ zPeiV=&>rW8iy50_!Qp#3dE6CSV->7uzk$4P)I9Ayd{})m0h`634iYGHqZ#mbh^BiV;%4ISo zBc&F9z$WzPhCy6bt1My>drt(jY);zS&Lhx9J0P(uhe^^}iVrm@$fEQhm=(&mmG?dF z1xrm|=3Gd8gb=1bXp+x)B4G`^6e70`t(zM9x`#L)`nLYgYAGsLF!F;2Eja@u;$y?P zqj@Yd5wDWmYAsAj%2FgOtKWudhF2DOQHS;bH~n zf$lmFD0kw^fJK&}tq~_c@Mtc({>F<-NkOV$=sIVKZk|tcjENGgf-Xn=$k5Q7P$o$Q zkN2rGsko%Q5$(b@y)`zPjU`IGtComF;XKOtdsF)rkZ`p{G_L}22Mx)v0?XH#tz@MT$O%?3sceflfX@FO6 z4H4$p?wWko5U;`idiXm?7MkS6n$$2#+Uu>!98-Ds9)=V#^-m{TK{0WNjr%+*Qm@Fge_QGy zB2a}x-Z=kV_mY2jfYNHJo$8t^Yb}~>Bl#BWP=c+y+`v*2EUZ7S50hqLEsx||Sch2@ zf4(K-h`L&@w09ZgtnPONB5a7eE$Qdx@%Bj7Am zO(OZWn^NhfYgSmFTxU5HM){3Mz8!4(OI39YXa>kPD38S?Qa{Mgw|EVSz^XAL-7k`F z`=~h_eFWctw5gAUL@bzsOKX2Ii~&uag>&oL@v|*dos-={B@i= z^d4mbPjn(YEmuCs0)6KLUowYWoA(zogVdH2H+1-TJ568?FO=rsJP=-~be^e%uXKtj zK7eyUiaWzJN%)Z`a7>^#eGK^~Tl}`P3BZ}sYv>53Qf99^+V)H>eJ?xYqqJ0Z)J?wu z$oVWyP7aikGY^d-ha!yYQh$7=d<@Q3Gv<{b8bLtiaOS+uOoaF9^mgx5-4oCmZaUr2 zL^XpDiBt*xjj|kX5^?&-wh{0)v=N@RDbL&p;QZp3XKn-}Lgkqo0oVBDxVw>yj~3Jb z6^u^~{+#OnIn)1>D^ICl7cTKyU0&rQTwZ5g;>ItMm)jBdKM$JQ-D4qOM)IyOr6y8%W?9emTZ;XDrw{M6@9S)ymx9 zYIn?7_G>+Kk$kl?)xF@#CgK#u0M}19c%dhER%gUr-(XRX&jaJ~H!&~@q+pg`Bzs&0 z4B6lTVZ32eT_|h_;<4@S2Jpx~SMZ>s1n_w4a`LBID7G>oD}>hwCt0m%>pIHfBU09~ zr+}lf1;7mvaB%?#b91RCg&HK!(WD@aWYC-!Qogcr~ogZ)4r<|Je%M1<-$<42h z&EbB{uZwN(9DF%uueB>&?V*0{7g;-5u-6WbHCuJ}O2)(psEX9(7oaL4VZwi2yPam( zyH96<@v$U@12Y3KFmj1Y?XwDJ9Y^GN0Lo~v2ONE?YM`g`Hhkf%ps_y_Neo_ZvGpZw z6+7>gS#A&Yc{Ly+H6i?;c%{AAerlNnJZe{)+Qt(6(2B*ul@~VVSIIIx_Q9=o7p-c!+eQ0yx=2_J+B=OO zb2~LYzw&DhDhmriBD+YYWVF=^_5aSvFXr3KAaIY-N{PX3vqTxH%gN!C1|~zgTmF>~ zj*)Pq=4~k9(x}rsxfVNnhK3gVh_1wrTc&!Lip~0lf8o4Hh0s(Rq-ol1O4I&WrlEJ1 zf#=k-*#SQ%eW$dvLow*+&`|V85^o~{f0?ok@@DTb?OlKkueu8bsgyuaF$==q3%dhp ziCPmvIzH0Cl6U_ot!B_K;dYh@Ij5?tgk!UuEpcMh~_BdtX04V=c@7UzLK zsY`9=wcjP)y%PlfSOKgd?UbA|Fng7k06zFHBcDtKbwEdcZKn`proQmk=r(ic<^|Bb zOWadJGWT?yt9|@RdX0G0wsNgolPc3;Hf)|Fc-*Kdd^7p}}PI58_ z-I#r-jhr*U5lLpM0iA$3o1aaiprI!>ZT&P2T*x-L-gI7;KCd@@4px8PO4gMZ$;gR( z0<-fpY3G~tFm_>$=0+gk8_i^@lsH;^WV-zqcf)P{v^S__z&ND}CVWnP6ifYLGwF69 zac7Qi(ma5`rB|1}F1!~LxxN^NuOmequ)xI0vPhG6ltfx@URAQ zl{eeiq9V==ek(<4C5wviGCH&5TPccB+I#tKvLF_dX^V5?fK9aIh`*f-auT$Zrg@1$ z=Re_^ zRE2i`ZlJuzv`;orUT(^-YoOeQQ<78gxNesI3vK%b%58Y%%m&JHO#36Wyd>zHCrRPn@-Z{aI9D=+?Nk1#&Wqv}?^TGSCi-Oq^?{SiEdV`!PIa^==ob7zU3=5sVZ}@ z9WIU-*nQg4z@jACuVaZEX~+99>#}xz7JCcF`uKLv|K8V&ZCqbPwy%4#_w}8G3_^DR z?7K4+YleWjv58@o2@sLu@$Iq2<-v%eJTikXDwy+0#g%4SU48)i=Vy-0vGhBSnc9Rrx@1tOw{#E zd~06nnbg?tVaP9NVNW;hEb~R(Q!-5zkHxWKdm8XAWaYnBTy9RhZs2_5chXt9Ev^A# zpl_mhSAOY!C=H`|A&@FbeAzSc1F3r9Dk9AfhxDxh;S-Gv{BfO}0J+3cJ4S-&xEK-a zMEPLYy zK?2TM(fJxh0d#)m4yHqAaCUTBD?0lqbO!&I6Yv zLk}y7EPaMrs=9${F)u&P?6h|}R(#$LOjIlw0@c+ICAhmT8b4pjB`LmM#f3m(dZGMO zx0Ih$GyDYQU6ea6Rb2#K&8TqmZkT`E4rJq;{5a3{=$Yab2XeT$lv^ioq{DQo7Nvb#l>5?X#FCsKhV~fG%UZ?Z@k38-&N{o zeYUdaPT9gR53bTM3?YHFUCshYKt%dWd#PP?f)m70yq^{;`k4Pr@j%mhTW@Kt+`#wx zq&VpLAS`o+gehVt4zgjHP4Bs|%*iy_j+=ulwE{1hDkM^dsk$KF{|Twj?%n$8t!v~} zQyCVE*HvM>X6y{AD!w`q7u+VPamV-HcWb$CF+b~CL-0_4`+bv{icOcA zvP784%w)lVzmP5wpq+GUPq-L*2mA&G9?iJZcE;ZLSywiPV9ygUzLBKBm^Ua;74H-G zvQfYOVw3|?I3&b3CsnzNoRs{)D^*SkN7(vC3JX=Letp_W;cHqyM+$G z;j;B5?ezHWcOCq0Qa`I6_s`1MCEtYfxa>@o7U?hTEyOg+-7-N8jP9$&meJ3c;(^2) z#V2U7W%S)r9AWh6yM)n$uds|h_HD=LTU1`Oy*ys&Tg7a8d>)(y#CVi@(+yLIjC-Jc z?O=4{YijiwLY_tNhn++c)Pg7F@frbwBgGX>B{bG-yzC_1;tGTaV^Ep!!_c{E`YS+9qM~HC`H7H#ih#mae zSF?7qU}+s0EXH6uCRv?>F5H(W2eiM&%9b$4Y5$J%oNRe?2U779_P^AXqmcD2*(a#fSY{vBVms#R8)eb{ zpGT6k*q4`Dp`5hH3FRs}Wl5ddI?Dj(S1bxo00WZ3nSgM#lBrvGzUl~aIwBn7S96eGGsT+8f#nnI$U3s6UxY^XKRT~TL)eoaG-*fn#2v#U zo7Q4GvMr@JVs4rre_tV4to*XfSIVZ!VxwTU(a#E zG#5wJeKWDx)(;EQdy}0o-KX_)GVmYEXk~UYF+8gC?YmX__?>@(2Dq4sF9Y+%7nzVjs{M8GLb3xMP#sTX)IA;0o99?^Y1bVS#R+R>-lNEX+~P(cIbmTepetCDGNr${|9Kj^Ku zsmDQP@5?b^2IGTvU=Ndeh!6e@$BRdF*M>sFw)tbOc~F(p9=~r>Rrh+RO_AyHI<$#I zJ9A7?sRO6f6`K5xk$g){IlBo^-7HeiQqxcBftmx9novy9^sxXt_H|7S#^LT~6@{5( znVuWz{=P^(i{=+w6-~>vYa;b5nlDQ|pg980B$<9&D1L66w{^|KOdrbTb=^%HCBbs` z4@{rIakiZ0{h46CwPA-Dl#2{^UW?STC~w1U*edQOErdQq;>Z@?YvB;qy#&98k>4;{ zmqfr?v`&xYTeR+#?tC#nAX3kwb+tw7=!VhycpsqE(x9cBwA3!f{MLYozJQ`2!z{+t zk$j8sH#oEx6ww90Uj64t+*I(nu&n<)Zb}+*NaVcTyhd{N!Ht;b2 z1$Dq8(M}o!0`AsGZQvRudcrj3H5Haw!Y}L5k$Oi{D5;hT4{Z?5%D3mzNFn+=11SDS;JeE*+1*@WL95f_y?hN zb*nBQ$)5;r*cg_#KY3Woq7VCTimfCp*J9;H+B-&yBfd%7A;d7YS6}O!d@;-UCi`oE z%5c-gZ6uwPs3tns&g7uNw(-JE=D7ISW9NOdUB<*B)gz45!?<%R!Li+8oq@=gZ`g_6 z`$8xBW&3kjIng(hVHJ0HzR66*-Y^X?(Z9${oPYbuP4rv2N0pX|6do0WZ>qZSayxXA z&PL3!LQG1C%@!;0KRUDh3GmJ`0_QXSA%kLV#4LOq2Vo;!BiMzYJkaSk>3fG`oLMJq zd!1|$abLEdrC+BUp}%4wT7W63*eaDUfp|jyY&9!UQ$6*2b|G|n>V`98L!5C+ z(0-azn!Plpak7ktA6$~OQ-W_NIHmb%+s&8U_^{*ld+pbVXu%ja_WTjR0f95wau|%QTaXt0|p#SZt=}{PL+=f>KOgd z)Q*u+#fgBE#juT^>c;414K1j|#A|H*uwgs-J~u|EX?>w5;Rk6XjnfmvJC*k`URyUO zu$pUq8B^m2oAc%xD!+M*jJXU=%6{+aHotuzDbE^koRf9v2fQ6Jj60qvLofY7z?=`8^AinrpSP~X#u`&nW7c|8KjU4?;ii6+u~fmKBsI zUUh=|%EvMD);$<<|Ae_{ zyy18|;j8~;$v#C8_x-6Qk$R4PQ_s;Ksb?9n_E$0jUJU(3da(0C{*`S$$Tbg6#-NeS z>&9no(;?EvD(OgRbAf3Sb}w^W8_l=u@H&LqVeLUXLEmRbZKR&nJh{3F}L5 znBGi&s+-79iXWAT?vGZ?VIllGzOtfba0NoJDpEtFojhSGW>C`H@=fL4^KWOP2CEGk zsFge7M=DENKfwL-IA;J))yl_cW%qo)r1@}PDzBM80~Sc-Ug%Hu<;%OyIwq^pdUgSg z7FvTzXSWvY7Ta zY`EIbRt|8r?W+#*TT(g5)ec#?+GoDc)h+EpTF*D}l17E%`B zYW|hN)vY}&SKoZmadk&Z0QPOj1-FN^i2Tl^-*K%SfsTY{g@+YK+_)2-l*iqLlV-SWZG0m85!=LoP=sTtz$Wz40~Rn|8m$ zfYt2=@x$F0=~wJ?L9y@9?lG5;Z6Pdg!S7R?<@isnbgL~(23q7(BY=Eg)TNbOy3-lRiiL_{31bRq-oSB+#eb}eCN&<5g* zm#J7m@tt=QN>Z_wFOfpV%^#A33An$-fQu~nw07FN8@D(YtlD&EE&jQ&mJVLQB!cDY z(tA@Flpp(H zzcS#DC}Wx+GYjlX4eW;i+dG#DIr>P%>>ctZWcy$EAb9GYpFWAIkDAg&MYnSa*ODxD zw~^lC?oT@25t(2D#i^n|t^8S}01d%(I z%6ExGRy*t>pS5FUAU=XW_9P?)n6EDvkA;9yl9`Z3OY8T-8@T4&*Cb@b)A)l5C(99lYI4)%N?+Bt z&{*WhCqr7)pztXxX|BmcEtdH?XqP|wVAM&+JK*oV$&Uzk3`+%SbKp~#k0o9@-Wt{U zpW``V0>suDXJZN+@mHK}h`i51 z>j&^{VT0TIOv;3D+ex5{B!Nrq40ZMRCXRK*GFz0O1!-XIr2N}i__SY zB3_7`3gH_bDI@zj%h=_Qev@N8nZoxOi6~7=cAKG5{aC0U!(%(62osP?;e1U34*Iz&>lEt3 z%U}ly@AxUBVyTNxFD-BjQB=dUzumm37>waTL-R&!9?FV8Tfy-FOkZ6rfWxdT$%T{&zl|! z0dF}-h$RVjnR(*Lq z$Ps+OCcpACSfaZ3@Q>3J*V`rNt$~fkZYT<_TrB=aM)EBoWpJcn9vtXKk$RS*o>C7U zTyuDjks!}N!=ss$j7;C`!1I`m?{(b;b#1}Ks0CEE(CR~Vu)$bPrYai4rQdZhhEk;Q z39dDqnao@uj}Dach9{%se$e6*ge+BLj}XHrhFnBe(i#f7>metvSLnUewpzI(ex$Ob zH57E&NGGf(YUMUsnU+;5OPbzlDzER;4)V@YIT*Bf1~2Jk%I%}m{GdhmLJ?Z+AniT) zbzm*sR?8IAw0FBHtL4z_re#Vp&W}r3M0_vcRGf;P-pPt@(?^~7_NI4ec%Cf9-G7~> zl11%G@?V+=c9Zq*M;F`Pr;&KJjIr%`3Pan2K9AxBDup>RhF(homfNAd)CWAc6 zuN;W^tqz}K@MGkV`1T5~x`Ll>Ewp<)}eaN3O z1~Tnkf&45s`i@d&r@iU7!bT5aqJaoePBREk#jc0s;6pqk_`pbF&cyod+woz{`2F}z zOs~Sf5o?{SW+umU4To3;{mAN%w)2x|J^LIBPcvSG5+rf?u;5hWFkXPiF0h`5B|>qI zG{pH^oEU-RvB#36e8FA+gmmSQaT#E=EZB8?B~wZL0sFfz1V0k-so~tJZjwv()n5&? zr5LqG;KT)R!&mNhk9#P@XYoWR7H;XU=`91KyMPq3+K{V`)K#IL}@Dgd{N z%K$fA+MCq78`m?qAQ?ddD`c1g41l4Mto+eE#5;6SRC^Ke=g9;sSHCP_&Rom9#Fxe! z9k3xVE@^K#mzjR65&uRqXqw7ysK3hh)P2b8!|*KG5#FJge#mm+X-Bvj&7@#?iXj*;csj}6=*sOiKojK#ObnOGo*RN_OR7?dPR;UtJeNGKi%?c38f>}Szu z@ToSltg?4Jygyd~cuwhW?o>_5XysO@9!b9VtQ=sL$oEG&Ro5zJ`oZ^QH>j z`e|Y?tRJw)M=$U%8B(``ERBrYOFf_=*JAdxFq0*%lhthEGK%^MCiq-~jeLcApWMyy zLO00B^<;`5WSz?GvE*c;Vj&u|uW${W3?xXU3^P5T72c9YM_>}Uvo;|rl&lu<)L2iV znFW_D8i)@HZbfn+J4ux^3IbW;jeE-AROKYi0j+q}l| zl!FG2g^|PuM}Q9=uMZDhN6{r&*@o%u??9DW3AX$+ot@}vV3D$iRio`6;nXKbC?~)2 zWnat4qZYjpjmDSFqrT?X2-*ZaL~DNz!Ayenba4$E&xlmAhG_c-0WWVtq>{BrUrHs& z%i|E_EIWknbSInf{=*Ogi)g?LEF86<7Kn#W)yj8ysWOQse`vy+X>ahkz|B_0c|DxxsY=I}0VD8(HdNu2 z(B|l$FbDX`EGi_=8G`*0I+Lyl%C(f=b>I0#(me2#0p6^sv8T)2*U~0&Q`M~ zS|?lLOS)2G2o>+;?Gz)r*-BnQ2|B>Wh>MrsNRo`HN>mRbTqW>L3?@qOZ6MUB5Cjlk zmfrB*B|6Qo_{5>sS#ZuD-3RUK<{;baz$+{h4e=$(3p$#J{cjSnUz~`yAhFf_H-OE` zJ`G?)L~aKn_>9QFj8@Mz)XLGY2bv})YnPb}n>bEiR%1zSeQs5l%+c+DV>nk(<15Wyb?0N?lGRLxQJj`k6dMVO{5OnZeno*yd6_~?G^M_x z32_mttu}JuW;o_>x|**6Z%`vZa~bOz^r18 z3SloLqC(h z9a5|X6D!bie@!+`ybS@K3ws2#Dg+KJ1uJ)svx}iGrQ@CfUN@N1DanBQr;wIXfi|LI zvYP*biLmNw(avgMyl57#D5Y7*kLQWpM_S(7P)j$`8(72INZ-5QB(zLdN%oPm|dg(>UH#`Mo)K6gu5i0X*tQ zx;3wYsKpVss`}0@*UZ`Qhj9PDs=m1^(CVGTJ)Roq@txn$W9CYD3F8Ams4;f7ym?Gy zSqU>rnAOWkq+SKZ#>wfKNYx;f?AsEQHG}R=L@I%g*3x1ls}NaL_%q@RCF6vFt#~po zzrtTk-;bECE~bs6LfH&DDsZavP8sEvyoWFrfp8H=F(DiKQd!cvm_FyqV?c+5r#4(D zl|>ryRd}?K%97T_bo^ci`5mboTufh$r*bp*4+cE!FQ#`wzzf)D2Z(K#j z6bhzkud^wuW!VQ>rX;7m1Eee{DP=KlpDsi`*7!iXn0`C%7Sp?3j54F#_8Zf(VQvh| z9-Txe3r*jraiyA2>tu`+kYH|S85cctQTZ+HUn+Lrc=Ck7>9tR5aC(I-y?F}hc~gdS zC+|om-|?avlB)G*w#d=xZ5smbdTeQ|-{2vIqN2chpL?INUb0~AGcLIO$$=lkPKvN7 zV6~JFy>>WJ>+MiG*Pzxd1B>e&79$k;eLnPC0Nv-C*$dOr6NB7c!>1xm>faiMexKyj zpe}@&_MbZ*OqHi^%XP^sY)GbL!ncdw{MSS=^t0dtAu4vryZpe>og+y-Y+$LLu5e6W zYnoh}+as~bzvFcIIADVJGy|||Mq|x&zYLy(|MmCeY&BKU;;o!Kaiu)=s}8F1Q%x&j zL36%7@plk|*?_pDJy^>qVvT`VKt4P!CY@&>6FS<}{D+>5jJWudsaVye)Zn?Z6VN{l zde=Kt9#gThar_JKAG8*@i%Fcjm#CZ-8t$S|2`pd&UgWK`a>k7`j)?N58fb7h6T*{Z zQIkZx71hUT*;u~qniTgQ-q(Tm-QhV5PjfaisJDVfr>da&^cumCP=B+ zm^*Aw%PyT0Jw_IC4wOo2#>+4TIC4hv z=t3tc9@cm!WuiXD)3M;qup`iZrD<4(D4syGQC58q#hP`3rNgEau&PydwM70QeEN zF=3z3bZ_wSUCTi@P&5SxifR&lCq?`K9P0gnN?rT|6x=)sTs#Bk4QFy@?u)-Laj)S2 zJUNg+*ljbpv+YLq#foWf54_fby1i>Y+)M$i^vNoo!mhw{S*_e-$Ven2jDC%t}`v3L~ z89@$Fvly|UK>FK zZs#=f4lidTQY?_M|BQ1`%$^J3PgV!&>!kJ+Ot1<=f~SUu`298hkqay=C{pJ5ZeIH_ zZg|duxj-R?rxz*|6!|5GavM!nPxKEPPgehM@Mk2xptU50oV=FwBJ?=ps;$yShUioI z+l}TTBwq(o+w1n{T<`c(PI8odJhdvW;)QPm3aGHOOXe-R3s;pJ@fu~9{D6lK$y;k0 zh)QZ9a*vxpI3hrG7fDP*YoKUx>yORB?1?_(-C<9oH$vW^<#?yvVmnrkSF5U|s->;b zq1CA7&ey73O8d8pEW;UenLYYWQ_Nw^;~gK88}hlh?~o!FQbRvk)ib?T7fkq3)-QBld| zOZ`+S02#ClKdc5Y_GqF}C6|r0A75iiu*X!dpa3CbGF%a7; z@Vn^3L7S4*G}bUB*b8!mmtxO}UeO3C!T_e6FumJ~+^aSwu$c^ljQzakx(Q!_;6%k7 zs_gb*JF61xjgwRWp=KfN&Ezv03LNS$A56kGV;re5`_+K4KLTa5Gn%OG$F3Y7rA|ub z1H+AWT3e-2Z%Jem(X&wvr)&?*VpV#-nvT*;L7E8}9A}Tvl{HrU&2?u<0L{&Zdq>wGdZ)&*Vbg!R3v&PP4g7FnVcSEM8%pW=Xd4H0q7*{ z-Fq*7v1+Sl5Rz7i^tThyMR$p}uo>JFf z=OMHPxbhX-SHdT-Z~Hph{AH8Qq{1L?oh!#->4Pw~5P*F2rgd<>T-+L~qD>&J5hFe3 z4M0e6su?T8C}6uL99X+`zVb*rlI>&46j=;Q`0vPKjYy)EW zs+jb1tGVpepcJ0LPH8dte=+PK!?5LAog?6rc&Hf@Fhv)6tfjNg;CB1x$l`t2zEEaq zZSfP@7J^_dTKt}#(Q7M_BQnLC6D=4+cN4l4kKTVnJil@)m{7MK|F{*Pb3(fQZWl-9`2w-kX)iG~ z;9IteRI-R(VJgY2y5YAlq*4Rv6sd$o;7;&Db!*zktt{pp!*~WTzxwRpYC}LiavS?~b%IssCZe z`NAv0`F6m6yEmL~8TAO@V9c5smb5&y1+KmN-Pxi2{nT)CI~{x-$+v@DiSBeY7UJkP za2CkXf>Nx;mNJpL(!Dj6=%QYM|?OLlbiIJ)? zL-qvxWU;i-NFP6#c$<{cO%O7*u#)2`E!W`epefPC23NgO@{wPn%Z%csrevlmfm#=;aqlD`l0_X8#n0Eb zGVnGs&{h1r8o<&EU;vAs&rSAy-qgjHn&u7tgo#B(x8)keWgnOyx{}el{yswg2EK@I z2_g~ppQCxdiEhG@MS)U)4rn*ZxdGC5$Zaa6$=GH0s`TyiF}Xt*n^a>m zrzUwei3C}-Ye!THiuKzHG#EHkvt*4kCu8j(-S5b^v%xON0W(vu;U z?_EQB=&c;lTeYfQ=b?+Pwpz9MR@JI~ng{ur3H$4>1$J?bWmc>ugqq{Os0%qc7wBS* zfE(Ys7^~%;h(A6eFmdc5nOl4SRX4Tv2Z<%;?@Mg-#Z?Z$KOoxb0NsL)mrjn+}r1I{(l4B}MuFI*r zHn=OErBtR&f}=I4{7_FyhEzU5E0-$d*7ymodCO6GoCLt6a#N`s+`!wEHKH{6PJaWh zc#UAA9i+Vnrs$MkLl(BtGQkYV+e}$4%ks2LNltqMq%5+5*T0akW8GtR{oLeQYN9Au zFIvZ>IWJ&ryK#O*-R8^lj4DkmZ;Lk7I|3zO?T3D-F(yZCys)GqPYGnh-g2D?@3giuaV( zRu-F6S|%P9+>_ep3$bha!>=}-s#FT8^Poy~52_(*u%nmI5pkBD4Bwr-c%Y-P7mBty zYoii)kL>cB~~jK|{h?$lQmGf{eBx}=rqhurL#{!myQFL**3SWXk4jMc|UaoX!62hR(3 z9mAv`_-l^6@BJXct|~yL$8}&zu*X`+#Hj;ZkB4iIW63%_QYMupt#fCryAze1* zi3h${F~J+WNAtLnRLin`v`jHgd)G->WZbXXo9$zLwtWo* zd0wR8ayRZ5`~ziXTx0e_sdwy$aS^9f2E&=;9c2SD?R|J44QPuUZ9^NSHWB7H&v0&sVgTNqKrMHRhY5jKZAr8AA*EV^9=`mTejs4oq-V z6lYxML~+sysBb03KUx(K#oJDEqBvM9m#f@1vydgNYIVE>E5(gFRVoMN_JXW(`&pT9 z%kKPEu+a|E-jYWHw(K%3Q>DTESW{NZ0qw43R;C}6vWQGi*pskhcWtpU-F2Xo=`kl_ zB?R`cfQYx-uNJ=)rozQX$<(hotVh?W}|s;+C>2~<0x1KXjxt$--q(I}2%G-|>$GG;^_*DW-T|)0By3KCfkV2>yJS?IN1FaSy_deZRqK=D#j- znz@Etz`ZQUNwTOB791P>V!- zBr2t4KMit8*|VgL`C&QEv9Z|fxW`9gpm@HDa0NcnN$DB=%iqMxKBJ|QVwNaY+DvFg zBuyp)PAI9^yUSXM3OxW{Cn^0Tbc@f(n|xPHHb3f~B9>MRtIV#LvQ-4`$K67*-tr&{ zx4A1ZxeEA!L~B=bMXDEJ+iNk&Op&nU9J12vj%q)>5_5Ty8y^7Y0UlgsOMACY&%tFI zo=V|2>+PsE&qrq!f+u%TOHo{+Uvbkvu?>!`kT+3!G94BbA*UvgqO0wv^JDe(w!h^5@otH0hGn%W)@tOIzM<&pWy~&hu>mM~*5b z@PnZrX=yu?oR4JP4e*Q@VGA7XyY5T7q|`kR+x(RW0v4!yq>{y8ys1>n4iAh}veJ8v zRDv(qZgtirZ~xuM*tB;aoCFvCa})CsY+aXw`OHVWhSjHi5k}nFm(A6RxZsqERI=Ro zR4M_dN#E&?j=#mCk$`j2Fxx8}T_OOj%2%3R1+~2*l`LwP1W{YRER4TJ?H?Ak+ziy5 zL3nMLZL2e$9gjyN`F1eJAU{hSV8yP=`MpkXoG-3ionJ|Aze#@r`|d>$Oz*SbKippT z6EgfUDCZa)9ihPzddvL*;b|JFWRX4FRFZ*O{kf$`#n1}Rkx~f*_1h{PsIz<#v2}iL ziaoL{r$4L8EX**MW*#2Sw_|uvqwrpv<=)sxeLGS^ke`LCiCvVdb35QSG8NyzGF{7L zI};juDK{})ZivaVgPaz5SveAQv6slm3Cs)lHxa*r3a>B0$_t?Ok=3-fE50q8lyYpJ z=>7xtvpDk-G`he6QTv2!aZL%FAb(Az^Xb%&bw2Gr9b}|pcV1y_=g(zoJHMGl+UbPp z&QaQ1u^dhgHW_9w+0f^^ryp5RSdv&=vf-x^d|G|(#>ORcH=R6JZvY*n(rzH*vspONMBR~TFDk@1Amupt>So2%O-@5Pck0no* z$Hi4c3;YahxD;3AkLFoyn`zDvT(}G79y#e$$a{;)UR4tE#N}>&=p6fd)P%~-#G72> z1M4QPD-*&65`N6V{5V8LM(dv&u21aE1aj?8B$o9h)4)H3^>bmHOu7ZrIIo`n00J^) zv6717vAOuCivB@A=|{fus(%{)fb?yaImm$45Hb!t?1ol?o$b`Xz`~r*n6-jEz=+gb zW`}#*P#x}HW{_(74%%84@ekpMwhm#+G{6upkeYDxK|;KCMB@dkHn**Rn@5Ag)TQn*#HDoebR2U=8` z`lxhrNGsO`>D2>l%^xmRDuHyqtyw%)#Pf4+4yz>#uDaPt;+enD)J4>MOk-BNc;nmd zEl7Dg60bzUZ8;E&%gF9}Kb{1S=r&+N9YHro;3|%QWbn;(Dc}y_uyz=h9tPoL?CP6z zSk8Y=Q1;77yS7lA2>CgwekQ=pV&s{!kcS; z(oKcyp*C`{BCu6Z7V~Du&>}RJ+#eS^p)Z;T?Q}w(@`#LN#T?q#oczigL!E{SY-yi!BAibL!3!(o{K(b(*tNz&hcX3))?wi*Ir8 z+%jdicnX%QNj((v@Fubo``em)x132VmimrGT?~L-icGtioMLOle|qVBj$+^B{aVkK zzDepTesl5I`t#7NoXzrEON|=zRg=UWI#NFLNJ%wIrkG0VOB{<~gIbt;S@QA4m*N^c zTVfy$yPn7hihwM`_QW?FwqgG)F$T}@z2hWJ1&C+B_c*3Q*e0@Nr?6{_g;0R~& z4v0)v)^L^-S&-B|JkY=+#=P5YXIq+$WOV?2TIEuJM!5`?3oxXZYxMib9)I zNbe-<dFhnRVMrT^Wb7pym}XNR^5?{K?6W&lSO^cy|(;b@Q&)(PW;(rnVVb@a7iY zz!oSAtOYXs(B7`kEQ5z7rDB!=uCvnen@(8g1WYm61@g6$nC zF+2M(s>ZM$#y0Mpk{a8cW=URcNuuxK`V&fwk^e!Uvoa2_!8)b-PK1|PZq9bJ+Y@a} z&2?I`R{OvWwcwmU#Hf!X%v zGZ8)$6F3(}6Ucj6@+0OmgLCR*I)+sle0QlKep={GL;Nx$$Sd2@oMqBZ#7mo`^*}_% znXdhX4`p}3EWXlTRWlhoZ;(1f-CrQVG)e>(In#B>E1@%8?>xb}T!D-{Q{li9j1fSx z;Kpm5-`5Ah4Dh^`3_JX7bI_~4za`Bbj|yOa4zNex#p7%xbCqK3MyoZr!n#9=PDjaJ zjH*Aw6_!)cOK|IbtJU9R`S=7-$eg7N*aElM% zLIv=c1F&AU?9<-2&k+IoRTJ&;{R98xGZU~xvmjycu@J@>sQ?f40q(2-FLVGOHvsPo z0CXF{W!v`yNC9=Mg8EVj5O%$V7zx;QxC3>b0o6SS%5HHU`zn=AK>dIN)!@^;KBzJU z_1k%t^Sc;OTb}jFbOGQG+A{zwpdL|B-F#4O2r3yn^$HFGx1Vd}ue7)FO9~z}?J3g@ zhU^i6FC%Nt-{!woOVFQtH5GzoonRsaf3Olcsn~Fb<&_3>UqVS1yy;hcQmU%&H~ca- zQ{BBz|Av&}eQN!?hJW|r-=SsQi29p+I|>QK_i0flI4jjMbDv12K#oN+rHgf!qKiy3 z+=E+<05s|#=wlbzy9~}(UC-}&URQHVb}^S>`hA$7{at))Elf;H8fSZQg!7oN?5lT# z_No%~m$)v_n!2GNjp+BLI?#FM`T@B5PoP~dL1vxJiabuR`Zbk8Vq#t{oSD9<75~pI z>9lNU3sN|D<&Gt}`cqNc1fOwA*8(}A^7aQm+TJ6vut(zJoJH}ykeS;nb!C&1)M?0F z)GP60eY2j4?cRo;n&{>G$9wFE!dvzahW5IF&YfE{nwEiO7q;!bBS%~kP2siAP>P^1 zQdhL_bFTm%wW`)zrUCS)NNU1D>6c6xf#bO7k3bN{@m6BmyK6gbm#Fk&xP?%rn=W%! z^gOJ+{x>ik2?i02`)hfpr%rtF|K7db&TA*U*5#Rs?@ol5G7pdi3ob`NU3bFwH}%^f zkEa=r6fi30W>qw11K`-89+u6lB0X@~Y$A0gsFn8qbrZR%kLlP@7ru}9ljL$p=jKC9UQzDp45}m1N}`Y4`GMo@&tN)W=MH=vZ29B?Fu!8 z(5I@|ml5he8L{-SS^NnMiV<9!D|jrC)lGi5>X zA@b(pjTIi$U9$2=pNlJ-jHFb^yDd3o!$FCNR)yDuOmC2wRy&k*p3ItMyOmVbmvF+I z`$Y4c`ntaakSYaKzXKJN`Ja+#8ZUfFipww)Nq9Y9B}Zmi&?AxV6<=M}zGq?`H*4GAx!I5cRd^-6QXLxg>hwd|ZZK6PJrf(eMnwMS zUWu*cb7ckpTYQFhP}FzZXQ^f8aJn3uy~0O;u0 z3KPk1>ya3>fHQ{N@98?A>m`9Gq@H)LK`G{wK_W_W>jUq+^pljV_Jfm*TmUjQ2j2`n z0qBT_Edz~S_qc-Uf%)Fvv{k5I5TgnAKxe*$MH7x!Y|bq^tfXS|4*8WEi9qm85|Gh} zn4{56JS>Ud{>zvy9;-LLZwr>A$v?X@e-9_DW7S{dox^lTLhYQ4wMB8vmngvek}iuTUv_>OQNs!D^xnXcoh2vx%ntnh|MJ3cIX z$M>$)j?*oHSIBpac{j6c)BnKt@U1q+781+Qz5ai)qIl2gVSFRa; zf{Li`pJ)TD{|AyMs+Y#W04o+A$y_?$*IlS?L&dR-Y?Yl;;#ZnFR+>_Qaaw`hVE>n? zq+kF|mN`ZPm1sv)afZd*x*oR^Cg9y=g4dZA-S&3fUU7kTyK82**N8q#xX|yGM(2O( zw(<5oa_amCAg)i62CB?i#NRo&scK2fRj0hQXE;UJ$}Mo@29^BF5>bSyl%bxpSZ;u& zy~)@}XM~5BDBXJ~6Mq)rkAGx^|MU}`@QawB6u02*8F{r(XnXE{CfrSXo_=((1duy9#bbMsE z5AArbaHi|{65H`%(T+dmfr8AAPc|Ljf{wjonHaTzb~1WHS-ltT^D|I|KrVy{n?;FU z<=u2^24+*`xwsi*pMxBKy{;=B8!<+KM)=)}Hi%Zgy#U_u%5 z6X4*`WKk|?fe8Z3`LF~|0^-2M91WNwu$$@&zzh?uX|jDfk%1M(DL}ILiVLwW!Ktr0 zUQr4FZsdA@&h$R-h>YIXjwTnmORD2A_)VtS`;`B!_g$|rz4HsXsyO?OAq-fD;->*x zpC5Y~saiNo`Q4q8zuFkpBF@r;(|m`b(W_Dp7-_HH5Eb}9j5_A^@kHQ@-nRn3LwhIi zr#D68kXLwqeW|Yj;!-^MN>~G=r(XseNuLh?EX!@Hiw($}lCy6u6 zBmv*pdC0moAE*oc+{=)07X3Z+d*b^fOTy@HH38b*d6g`fuOr$6VJEmnCnP&vM5CL=BYl_zsTQ?>QipWLiIns_o+Ui zoum4=ovbZhX!%(KXm%1{rZ6@c&UAf!d_DRquKc4c@6DDF5hA({4D6LyV?ivCc=hba z6mbMm&a~9`uO{=;-g}sURWlu0O~V){TED*(!quVGB@?awSP^r4RR1i0JE~8!U##24F217&QR5!RXSxqFp|04Tf{=apQeP9+dtA6$~aVKe254!a+Auts*4lL z0=ZF7r>$2FR*q)Pc9&dg3rD!V>Et_YXFZ2*O%&)f{TsdD`>$82n1&p<3Cn>o?*GlV z4qVsPPFBa@)P)KKS1jVM{r0Rs{>-c);N_7_>8*|QhL!I+xOky4e+<=i%!!GMdp02^ zfK~*@z}xZ-5*2I8v)pYrmR^^9!DwgZsP{7_{_KZZU01qv3dj0%ui)js z|2f2Y9+3pb<1wl8_m=rg+Ysl(+jR8*uOZHs+|w72T|%65|KY@9JUl9v1fw5cpXduf z?vIRV;+{>!KBD*4;dHskUvv`za;XnU;I(st>gj<#pO z;fQ=U2S{t*oP2M4CY0$q>@FQb#Pi?=heZ4hw8$djhY}eu^I~|Sk&Yh@_o0dv4`;fL z-@lBMqT~DFq=h;@Eqlk$%btDOTg^E)GWu04bLKVRTfwr9TBED;;NC)}n%TXBW)D!! zxTmQ~C2R6Czx*2-)yUx4#rOt?)RJLVqq-xq8e) z8uil#rNGeE$fs=}+^;BYFCOR9Rv4hIMVPiLvHHrOZ6E``saUT$mbQGKwsSExMFe~9 zlOg3%!G1oR>6rODE+L3uzYf1LB-q!YMHY?vSax30-Y#%xBORB7`_PV$3un5HZ?_$v z8twSkC$e^Yf$4YxeaeVNoy@XP3#dB()BKgFz6cXl!+JHo8@{9~pNM2EDw$$!+{NYO zrmB|s09Pllvx&1XWB!J=J@6UuM57Nd&-3@SH~4F{ZQ0FMB5!9;@M>fmtKls=sU|Lg z1R45iY}IPps18osKA_hW(Y98{`Vu+*arA6_i_!9TTv14SA7c@eA(0=*rg7}`*;XR& zIKXM!JchAB+n28kZD#)3ijbyS5<}a6)3yk0BXP5i6c}xLrM;tVz4%k%xw)vFPusK_ zpSEY@Z%5k(EOjzyTQ8>oVk>4@+8*EE(e?v491;3H0GTm=ogB_|9gdL>F^%+sml)Ev zt&fpE+?o!#Xjc*$Fmp1Tf=I_-qD4l>3&WYN<2>8(CvXKr9n1GFGCN))0ot^82)&Vr zwk>5@gY(zl@D}Yfc1a=D2y&kR>SbNXYxg8a^o%Q>o~1^lQf0mh8sGfxPcoJftFdAJ zKf9DW8bUkM`2(j9p2c6QlEp);*h(rye4jQ9CJ% zX8b#x>6rN&Ld`M(&W0lw(u`}+B8y6Xv{ae7GrWpO$ESz;&G(cO`Cd;Z8q~q5m=>HM|Iw(NQIX!3FHUjL4^gfRa;*m z$McSjo&V%-=cjypUKWA;-~;v)d;JwFkax6n$~Mm&Zus(5q0P>J*F|XiZ^{;-ZKUj- zJ45oy5stR?^nD_8dr=#owrLOfv^^t#JK8q%%|hFHZi=L0E2df69^cE+_5(N^k@-FV znK2EW9L{tdj*$*I|G_H^DcjbG(_SSK>Mt%lQK)T2bI8~%mzb(9}{q~Cq{ur+Jo z%ZCys*DoIyA}gq*5=S@RfZ$08S?{faqtz|{wWqb6e!LXAHF9?wf?;pew$`@LI{ zE82{l2Tmf_(>PAj4t0`(UWxk{xe$Q8*OJt*splc=huzm+39lr<3vgckcmS>7HTC(3 zrRlMZ(;u{h=x>YXSGM35-OlbD2ewN-whi_~18z4azWm?LXq@*hIFHW9(;LL^Eidy| zL z+k3FdNoO;3Bqsh2dx{Nx$tqii7Eal2Wr!Rw@0%(_GN7ta&Z$>Ni2Ogr=G)eVh`jW0 zM`R6MqQK@HiTvddpU8pLK9T3j-;T(q&(1<*4R={mvDAx}$g`R|BJT&QeZ>|Y<^p6; zu`xTRy*2lTGF^uqq(dOM1=nUmiv1i~s73LG5dq}pvgL#CJ%s!Q>3D3o4~@Uy9L{td zzg|j8(edbL$H!*x_+i;~!Fw}s3B42({uA=#0C&+5fQ3Tc0UaB*GN|_(c~PMldXn~b zJm@2St>zCbg#MsmGDe{MMm*w$^v2+UtHaUD+y49XditZB2jmgF=eKNeGYvn%o*2AO z#Y#mOc!r~koGwUvM@l4!ktS*A-~9P_f3lgEQ%*3AaDsl@Eyzq3TzwqJS&UTA7n$QX z#!>h9g^2X4L@&RBKp5SeB51{z;fFE$YDwdTC!VBE<&D|J3F&nbl8x7B{gt-9q;Ys# z>%aN?(Lg{J$DOtQM6K`H`jW;MNwof+z7p&r_2naKKtth4wXU;%!d3Ll4~sn@8lsRe zPMs%!q*Pq{OMBz6!wGs6F%-AbVnrX{r!d7rCyM{PPg*NCa6V9qBhyfiMWR+G{M)M4 z#(bw%C-J0%vK#kf@u{D(Hb`=?DMQ;|BfCR`iHjSN&n)Iw{zI-(xNn0c#P(^DCx%l6 zr|-_;kn!DhSO!SAj}V1dT4@1prya`LlDWLhW`6HyzAc$N24eA)_Ziq?g?GIJv&3)l zAX_90a^#GIpz%F-x9sp&D>qgC5`F>w+SnsG)Kz0DtAw#hFe@x~rT87(wAoP1MV*)vV_vL5AhaJIQ?! zhGXw&k<%?vXnH^+d5|@krP0%9gpEKgN_?1@M`HkKO5=7QK3k7YcrjxLI|EmK#Ksve zXD~Z|f?UM8fUc7gk}Q`G-^9l%W<)nxUJDbJh>r_q@g-<{M<|%Z@0TXx_xo8TF?l$T z(ls9^$;`cPt93AC2+hTz zUL?$39KvfrDOMI!%)>(QrAVQ3`2j9BOyl6H^>;>}s2KBd(#a^tK;o&raKjGS8md@} z)O353lE{XV>G!w=J4hwDLRbKg@0shK3u*!xA-Q-lC{FY#D?%fuzfO{sKe`b)l#2a( zAGL1DSkoh@2WfAU#8+r#l@PIfPwhoQIbBXP4PYaeNKNjI&LnmJ!@EC<1>d-_2+7li zfA`&=?kz1gyZhL5b$BZu1@AR`+M2)Y?acUIt|qx;Z2LUcOcq=xT#zv+M7!BZ%eQiS$imI7*B1ysN}vd-)tAL-EA-~A%_7U3%e5#LSt52mev zFKpbSw0Dw4xRD_Ioz_vbEV0jKzsA0Yq2&y?2wsedjI*4w4_Ql{PR!xrG3p@dl?M0d z(o{7hvdm24N-XtfOp$Z$axbLl(78LEs-kx;#JQ8S1Z?u2&vkR=eG(asch|~Xgi2*e zGe(ojySv^^m{(}!Vy(=8vQ(C|J_Wtc{tohqQn{CjSn>(;c{ui&>B_ykk1Te|IpjCX z#2eQR(%u5>3~{|%!?N?WOfgM+Q%qSc%Q|bBk_`V(%7TKAwaDFXko&Q+$L$n)!cJ}q zy`4uL9HZrZvAECE7y3tdI>=HU;Ay`cNBKz-k+nSKQZmZZ<9>2HZKjnCPe<6w0iN!* zpM(4zH;_Zm!l$$HbokyrPY<{o*ryy%hnyDR>5f`vd3vrX6Q2G!M%r1Pc9gORPme=1 z1UxOQu{`~@k>ly%9Dl=84ADODZxaA4u~3tbyYw584Trg#tr=^H*ae5Q$!m5>8=>z{ zsKlRBl=$2PO%k8U7aHXw(|C}gzR1Eb6Z)d*e-najpDZdZ(NBX)pNZ1ay3SBAXK?iS zm2^C8Ev(SypBiBB6Ol@m(?22POUV{a-w~-~S-wyz!GjuiZ&pJ&U3O2>-p|+qk094J z0@5Nk)bv|J7RMr$EOPw5jYDo_WtdEhTx*Nm+VNSDYiW=x1#;m@2)ek1dn2P3(CSH0 z&z*O}n!Fj-UyMt8xmcg@N$-zPPZuVS^|jWZTsnyl#E&Srqyd20 zsl3+PkF=1Fl&Eoh;8qkQtF`--RMX}1MM+ULmd}O(00H88|G0;&Dx?{P>%0o7rR~z* z>6(;IQ9AJy4q8M%|2aeSvwV`(&r@@qe%>u%`gn~Hfq3OP0=?EG_eL@u?}iiz$H)FE z4NlN5*So9^OCv?O*h7((^5#%%{?Oo3u{oqKs_let2bS3)L1!7Ogo928Npr`I| zTA5VJ(t@6XlF&+a9O6R+f%qW&$oNVc&p;#XI((TCZ9J_hRnuO3hznFFRm-%B!fZUV zZUy0Bde*K~#ycQ@Pb2DFA?XE_dTFiwnGJ{V~0XyLag!A8lV0KMln@2U@)= zyI1rAESzU$=M`6tr7oS~#Bx4Hd8}*-#Y+^v{>1w+rDK~5_>ftlFPV}83sfRK_gy6P z+iuR0jvGdI+QAmxyZ~~oGSJ;DSLHI%9WDDj4WoMw;Qtl6-_ku&0%qgMv>Z2%bqKj# zl~Br4)rQV;pAWPCNx(*w?FX@iE2g$;a+7QL(QrHbGQdar!+%H@0*NTf;IqWS#2ZT( z!l}YW2CK!9Q!LWnPTZB^sHMGqiv!rmN3)IA&~SY2tw9Ju);$KAWHyHL>aJy z!zHfQJ+`X;2;tbDm(naM|J;Zylst{V8DC;}5_T+EP1^yE(FB(yn$h!WK|hA!pmX=r zMO!x$<1u`VO*G2dejvE0HgHu_LrScxX%6~!WxHg-FgYtCYH)$>wOKJdg5islvu&+3 zNrO-Br5*&4K}(rmc@(s+j;|rQdDL-e#U0@ZaHZi*I+AaPDgPfd0hqNvgL8!-dEKL+ zieST|IR!h~^_TehB1=GS-7{!jf3#m<&HsbY;NZ%`_IC*n+?iPi?T19FS(dZ}x&f9n zb=WIfmNz#&Kq1T68azYxe$w7(IH2B1OpIE<88J(om+(KSYUnxJ;%kYyi z5686*)>jNSCR40LLL$@hibsUL98R8~ubi@t7_v#;q{$+aybQ^@g%qPyN?IVAjiR7& zKSg!}QUbt~1}yZbjs#zAN{a-nNZ453Fi17j>^j64vo^U(?)@Fyz^qTN=)NLv#CSt`q{d zs>v9ocx_p0%sA(M#bx%~*$0ca7n{D09yve3a&$hYBE%aek!_BG(F##wI(Xn1fFbx; zam0mpZfSbMzs$n&r*d7I3SaR07BLY&fKU2jn_tptZ}9o3|NmHf7dR`YE`EGUheT$= z5W>hUg`zOYWuoCokxS&3@p|Q+WFi!knZq29!+14}OAJD}B$sX!)Ai(DQ4(Gudd7qh zDwlrW?^=8B=Q1bn@Av=weLgz#?7jBdYp=ET+H0?U!;3VyOxU~=ll2=PQ8JsY0|jA+ z!%qT;cmUj)0M6C}pE#oOt)ZMRe{{2q1+u(tUiy@GJp?$9g*BAZXN3zpJgC4cg~Zfk zi&?%kl(YYKF6?lX0Ea_42Z5u_Lpga{2VsW^T$P03GCbIDs5r)@^V;29-D<6cyqJE&I`ez8PmlTmDit=8_WXWWUhSyj+*>h1c|3vuG z=J_FcRL3BY`G=WW4kRK&R9c>O%AYE=R_hKDTczG><(Y*`bD@}OUs_pdl~o@##r|kg zlTNMWkEe6jw0Tj>z5FwJUn-Kuc|Di9|D%$+2qhcS(m`A#c+``6Q&@ZC;U*URE62l? zk#aFyn5VoL?n9ZiB=+9cx_A?1Yem+-Xb@|eW3Y%L`Y4VL!h4%05Mml0L3~3e*T*5$ zsyeUAk(!Rm!)n}snf3Q;oX#)FQWH|!0tzi`u)y-IIzQlJr}Iw%*sEo8P^1jqLI>1G z8Q#mJS}Tr)7KeOeB$e*dc4)8|K3M8R5Xe3OmJt}80F3z$2?}?W({gr|rHP=cjOJE! zQxmjqsD3IvS^v$h(sSI|u2UsjJJRtAs?E>(V--}RO8aY`@-gd=l)P9+y6zcLn<%@> zcBGC!xsG%x{G^Im91ilz56+)j%OSy=BHV+o#*x4(bk;w0&rSOBTz=|cXo6#Mkz?|e zm2yj4RROYXS3AaN1y^m7!hO+(VT}BlH;vQb_jdJe0B~qIAexH6GHF~!Me6B#t%{)r zW0ApLT93y>5)&tO%j07r4VG$W%^!Q5eX}4rW)4p@^g{r{naoEOx~9F5>O3@~EvRuhmwr%-b4Q z!Y@ZjtjpowbgBUV!VXcea`9h&)pTG&3Wcs$0rJ&mA;ykoBBA9!;8vx(0E-H{0SWDP z)!IO6LF!ORDqm-8>8(u{ia6a-8DBdL}K_`MB)G@%&(yu!@ z6gIb;&$fvD;FC5>?=R1Q(31zy$f4i%BvNaJB@?Ojb&^WuX#6i(YFnN4e}yZ< znZ>hs)sU(l~RyM8Suq*=edVK<`)BM$d! z)u_tor8@b*ts;^R5Q!Ey0uUYXuf?<(%a1{Gmfa@0t$jAE+n-~4&dEy)F|~%}*sqLp zG>t3%Sx`$TX>jo-toT@Y8rk$5{|~aEXoV1M$#ddT>p+`B9j-F9jMq4V7Sy)`u^m9v zChOmT)kBC^4Wvt*&G?uK-HKNrK=bW5P5u8Y-Z6_*yc1NsUwvc6yS$Z(xBlM$d-2xo z@=xNOKKdWTyEV>gsCaF2E@h+!GiS0R(r@m@j4vc!HAndb``qdd`cIJYf zW2Q|l=fun~GoyXQ*4}eoz|7G2LcL7K#+QQ0Vri6)oa4(#K!nE^(>Y3nI0<`pn+6=V zm3U9N^=8`spBuI9r&F~9i_~;98zPtRmjZb*m_d0graqp{)=c|nW{@Tj8!xk#z znfH)&wS!m|rv><9J#C?G!6>S}Gl!#rn=TkViWV3H#IwkzI^h#c%xk&|xcK1+ln#6; zd;_n2kfnl>tUp&H3n4w}LKx@fYA?Frtj&yb#e8hhob5-@xs|&JI>>b^u+c zY$_%(=plQY_mybQJ{#D=TA@25gP$?Uzc82(KE;(^wG;-U@g4l*B6+%8*ZzuF7|+yE zwqIys^2_B>Agimr43NxF-j4wlk!Vo6lK^1~@;N-O9Qzu!d=ydx+%fPUW5nGYLs?=_ zUK~po4gke-@aSn;%M4sEz$MK(dDmDOQC^g}LCdIf*d_*K8+y6`p$)s_Zo_fov<)|5 zJ7f@|w4G4TH#ZAhv^9lFBZX|0$38)n%?d5&)Es0NppgF#KgP^sBqJJe)CdPRh9Sbi z{(yIn_^&<|pUx!lfg=FyxqZ?Lt5Zkek9b@oV`fjF&)~hH=p$Y?Fu^e7FfB&qX}>c+z!-EtC)vADAd8n_@ehFT(CH+fC9{9)&emu zz{bBxPai_IsMoZ<0u${G`kFZTQS<|Vco*9{!t;T0lU!bfo>65-CN-VF7NAH!i z*4Y5qC<3x|3mfYQ8x%cNK5L26r3&2d-_S=G@nDG56ASl`_l%>)lKR{|V>@Zt{~tYL z%O=CcfNecj3ft;Qx2MkpgSVNlC3RRdb*`q4M5?_xT_8}P9IedBIVY|p8I)G9FBd-> zh`|JAGCBCTAIgVkHxXfM!@^i&CcU6$4&|GvC7~`=gmDEj=xE8!=>ZdZe8IZ2zAvqC zCTVw*ybG$dTdiZMvC0fBdd?yMH^gZ$5VwoDm$yWhPFB|H1%Ao4~Ti@ zza&Nij=@9RvP6bQyHp^PrJd5Et&YPqzCcY89z5fH{pCZwaS_0*KTA7@m^NFn5V}Gd zqGlvhD+Jm$3Hr`#hi+8@QJ-Uv0-lHy?U1K`;q-D~hv-CR zYK+Yh+28031d_P+Vyt@eRf7@qtZ$yDo^=O~op|A8x%I5K6wYM*e^rUL%AjiIkw3}c zkoDW04ky++-F-{kpQj_R{5Ar?vf{9-sbF`l;CNTT?Deb)`#D%a;8;BInS8Dl)yw+b zA7u5Rr5%0dw2}8~2JV(+VIg92do zdas&i4f=WgS8^)hp_FVsThn^eh~=2vWGOb;r30_4=B?-nugZB9sH!eKVl1kvPWP|r zlP;}doUsCHYTV2TTo`fX>dv^|$*0?Z`n02ANbI2mE)hvFWZYhawd{#pyu-D;ZmVQ| z)&2Auq;T+{>1&_StOgI7{-)mzO#{(+r?Z;LVtBdoC{ICwsH{K!F4{kaKI?%~*0S(2 zWgBncSi6eFds)DhMd{;OSwzPZkv{hZ#9~K(`dqw#u}T$U%~CtYdu`$F@+lViW}51t ziBBRV=HWdbn?7Dksm zL`#VmFL<)skD9IB{&DSz6FCC=gHc^KL5 z<3N$(n`$ADR9}KHWPL%nD=(za@J;8cV`=1mAPKQoAGL6n4YA+v929 z7FfvEhF_~S2e%nhr{T~8+_)>7vte{6*^H~*NsNzI+8#ZN2f4#ND|*@Sx}Kofbgul= zms<&clPE$)E&ha3VHC!uTqh}_sd;dZ%&0N2LDi?Ts?X3RR(+~|RrNXW7OIaf*8y+a zTfsE51igzX+eOPB>dIbg%B~$PWi18AgJ7?gEv8!VTvT~`^KHo#&i7}-5LGu#nX0{e zI)p2|eOCn6=C41S>l3B*p$4uhHceKr?lSj=j%N6DAa@Jp3-S`kf?xFOJA4@uP zOY{qdQ3&y+S%}|}TuE6BKLK^HLrUfO4@l2B2I&0MDCBLpB`nYK~^1q0D z^h9}qSX{;Oy=>N4!N|a+XuY<*_FUd&&nt+o*Y;#==s>=Ewn>1Q* zQ#6UUd6~7n+)0Ajp5*nMGkmWYz)#$I%Rq@Bg#C_jFF&;%qoPWX3snd<4OFb{2qvY2 zk#P}EPVx~`^YnN9D{=~ft);)BHozY45PVgxZ<(LE9azOktv^_vs=jHL@YjfK{8vY6 zhi)phRdIBMu9mc#zj3gXp@D-eA`1ONjpz`{z@SO=>S0{F$yjy->~?^q+c(Yu6=A|! zPkM9(&YsO$D?o=Kp`h)Zp$zzc1!9}#Z#<_zq2Lk1eYhU)_eJX8 z(vqo0QYrmum2}1e)KJS8c4B3gU_=E*$pT10(^fT2t!iW;rnJUwX1-))IxMf-ljr_>W~oTd!m@F+5YmwT!t?{ zwGFn;f_gVlTy`f1igRS37zXrY94(MF?!)&95i(6LMFVul?Iy>Xc!@IKg?K%@MCSzF+2 zNHE(RI79u0sXF!_{0^pYj+Pws=_>+!N!{K|Bt@O7nd>|2(?CEqKBr<1~9 zYs%iTeg8w?q>2b`yId;usSY2#lc)^Jl?l~ie%9k0kS$|o)(_lHP2Un!*t^A^n+Yf5j%d;oJhR}2-!uoXg zccKmiSo(8^ZF;sR0T(!OBe$CO<;KnpO@)j~FaEA_WsBt2bC@(|{ziH^1#Qo`1B$%y zoY_#^!~^*II+i%Fp=l3h-Y%Kv&z7X5Yzu>ZsYo6oZ)%E*cVvt+qf?eMoiHo&YS|hr z&XYe};KTO91u2n2)8G)@wPN(KmDLJN8hKAQv| zz8HkD{6LhK%3KNWprAz8VLRm2L?rS@bBX)`iTnYH{87+$m)jwcKh9Y^@5>FhEW$rS z8~h=kb2RCin3{rswww3m9|tyo{32A}bO4JyiuCz^P)mi87J;dkIl`0hI`xFK= z^!1OBCw!#0u3qAgcS=QhBJWxS=#NZU8UBrHRLW`r&?3ckVy_E5!PiqPNZf7BuQD5c zq}LlC;o?zjZ76`?Nrh2WRd3)kP-=7eH>nP`NOdgc(y>zk)0F>?Bem?d@pep>b~tu4 z;ix!($SLqxLr5Zy?cp-h>6vZ$1l|qagB@ZP?K*bq5qTMSODYl7Eqmp(#3Z{@>T5FmL1n$Qk?NiqFBCiPr2 z9Fr1LD<7g};$|@3&>W*8!FX&@$ll?Aa5?|*vdcwVFiY4a_%2Cv22A+$fMHE815A8( zF6os)Eq&ZDwBOpySp%@I)>NnDI_9WLtE(w9$QrXln+F1h^z8tdX8o4?(>B-!^CE!q zF34WJN*yCF@!+?;1u)%(fQ833@>AIU@xOwi{|`04(O+w>#_o|=%_C6r?XKoMP0jhN z8S}EB&F#=;3|gIK;9GeMN3p@7fsYZ2J9!Wo+{`3SGzf8wZax$RZ8&(fYr_s~gV{&& zx%SEmvgMh5#okyYts9(qo<)q7p`i$#MuP6Y`}02u!Z`yD)@jX+TKyL`w?yP zF8}6DOwRhhV?OJ@%#X;K7kjH)xNGW-Zaxm*6enRMaO9_i9&nrK(5y|3`-%5g>LbKn z1V0#a>)iz^v7Sy2YI%UUZy{;KX zAI$)%T1|U;{Ak=eX^X1aNmj=tFPan_Dl+p^IuUH7D&s$Hn->G>@Y1aSLyjcmC4cku$+5X9#=)SsVAXnKJ zL2=7|0qw&L$3+(pZF5_PoBMDK$hQ0Izm+G_?(1VfmH}@F5R6y~NA_~;tDAH^+6%sY z`xp$u+k-qMn-!m9;wnQJ=0X_PZZk{R{CRiu=c&XV3LT4=&^jO(tkI@Dg6hsa-KR= zf!VhNSiV*1-+Pv}LiG3v1wKT9%Pg>btJ07B!eQol(CAr~t8yy+)*l8+|5Ax4y;gwn z6kEQW(${L9QVMxtIhuJQ{2Mh-n~eCSiH_tzn4y3V`lBteQgTm5h8Q|2LRW3J5147 zxXAeZv#pG4W;z)!#X^OZadQLJ2i>pnNcUp?!?^04ZBu}oA3~<=f(WM$$nVL=$;C^Lbv8J?sVWY#?4G7S62okA<7y#V_DkZ zcRrj(3}c;#Jl9W-VmCAkqwAkm2gX+iW|t{cNxI@!ea64Aid05vqqvDR{C*|<5=ILL z@Rk{`e}kAbTyUsBMJ&{3xCH_^Z7_s^H|)QND9UO;=|XlKtkR)4QWhDr=$&Qi(rBjU zh*Q$y0_r*evwo@?P=Y4wPh76bi95bHAOOO?Vr_-D0o?5PY1E=fs4J&xRGDB+( z5?bR7qtkON#2LmnA8R$3VO&i7Ug5hdSe+nw2@&#Gr$4f(doWp;OtSiYOy)Ls{pSs3 z9f)_p8}p~}LtOv(7|(GyJ*yKebu&%X!v<4JZZO-pgVWXvw=t}cIc`$-+KQExxv>tr z*S*Z9$w)dVLvEO8eQ-3pKt>MnH7AXCCb^3OYhWrknl0Zt?6wOw{r!CxF^5g^EL>30 z+}HfiJAp|)lKZ!9i#Z2-kSCgJZuhXqb z{%fi;$;aJIAsDXO=~FjAU;c^Jwa1pLuAPl-f6#>n`4nAv>I`gfx*;FZQVhw2ot4by z$^huOX9RxTKFW(ASUo1ZTbr1$7|e?cYr$kEtmnM2u%=t!kg!@j>4bF)f#Vc)H5C0- zPRbZ@DH9(`8ZuLE|0u=KDxpM-u+PfIKT(u7N3ia&IN#1G&be;|;=J+*5vNv>_0N}2 zC>2;TK(nkgAOA%qEz<0vc~+V!$%{#|;!2W}xO#wpfSi*fhK>M=+$T$+vo+b02fPr$m7Vkqf#ODZuirrf$hnhj|A94)=}KIs3*l3xd9J zDhITTJKS5pHe~9$Yn}~+SD8HN96M{CHaY8GCV8>Waq(r+IR^B%on!l#UFSGEjl8Vf z$WEoq%4s0})p(t(o;tPuJAu$@Ezb%?)nLJ7S+j{rboh}5HX`TYU1F&@^rYF=n5t(P zurhee8f*8}bzq4M?078{7(ibk+5gd-9S##MxpoyOfYWp=fg$Xn{ z5S$8{hQ$Y@4nS(-AsnJJ?w*ZpFVdCkZpyQ6v@RfS1QrocLiMaRk|}ildWYnzYSk*3 z(F@6+50``ir4)pOi!gjM8RYPu)L;jT2onThKth$|Q9x)%uA zOF(5m!RrsJQ@@ou^?fEPr!$Fv%f3hW8w1gfD4F*T;fN~xj4B(7acnMEO?OI7nnT9R z@j1n#yVB%3cd?^-(PS zhLMCI7K`rj5Ds7xqI*2@Z@WY;97}Am*s6TH4^-vf+Fn#1rP(b^d&^&ABMWyI7*Vg5 z*lTQSNQ^Y`@Hh9|(V3ZqyaoVn^tb}^58NpseODG{8t-MlGmSLEm2C)^@Uj2E zC5$#yN=~dA0uP^Q@w)iIyt+Up+N_bRY`-WV-mgTe+TBxXQKC|AXNpxpnBkb3OY0WM z)P;k?mhao1^5WatQy#;*rmnY@pa|)H98V{^^|oOb=UQ*u^$|9a!$!jmT;C2)J!)u5DhU9*YgdO{p-wR%RYcsc zWq@D>v0p6)WJlhU1qe2B`@?cZw0d2r61)!nTa38LSX2xXXXh|=(e%=K)?XP-bXM-2 zZ$q=1!7(69(Tivd~Td?-L@(nB~X$OpFeY)*Lo#nD|9mL1bL6%Ulh z{})@oJQ-faDNp!gE>Nb-;HJo!_j?KR5dFhw-#q#^2+_X@&EhGD8R?=bel^rx*^R!P z#|#OKv8Sxx?Q9xiDQfaHNH)RlJpV{+Nh!Z?pl3JFeB1lF zgKgg@VKIooGN4;X)F-_s-wjPSCe4AU6QSCGSOkbggxH@eM|w_7zAx=B`70ekjN`4O zT^0gM(zDZx4p^A!u%#r}gX}y6BxBRaGvq*lsq9DzeGhEV%EeCKffWyqK38G%sR542 z`reB3Kuly^n>$a|v$=?D$rvlES2!}$9$)Fqj`$ZxWvEEl7o6G_zc@0Jho5FLbDMOU zc(J;!J-`kUmVEeLQ-|@>Zg$K1yG$Z1xuyFt%x+=}AT65mg214W0~ev84aWB^N3uCd zv%`PXKimSdJlMv49<%=8YqIkcH%sU#NmGKpHTnEa466)e+t)Mfh9ObT2# z-r$5U^1|?cdJ{^dVSybT`;n)5a1A(x;^XP4n-!?7bc3oe*SKWAoreb5$rHy%;Wd3{ zKC46A&=f)R8bU4j6k6ZF{dNmdM}QQxkr3utWp}WT_v<6IL^(WCXwLc%aMq>Ej*Un0 z)Sq1(Li}em{cN}RSY%41p11t2EmmBbBNTPg%*nA9uYOLp`gN36XH2=wWr9({RcB$N zQR55fvf2cUiQ1|`i~dOh3AsW`(51l|q2TcE;u08tPBRJ2=4z*rKx(C{0zv;G%Dw#D zkObfqvz>yS(^vLG{132)KVnsSBHbh0(el*Nvu7&g{aR zR+Z`Bew&f3g{QZ|Vq6Ejuw1pMAI2=}ulgJg*|*9L%ds_sQ4+0(hby>5Oj}bqT&pTj zp7d9kCVk8zL>VL3tyDl#Z>KZ1OFb_pcM=0dD7;5Eny30{io^y$yvHVh5NfCMb1h-^%OFL5u|i7 zVR2MQ4RUW>FpNX9o?Lc=D-zKnZwd#fB;FN}A8F+#8PGOO$wLwzzwMn~kL|$=`lu~w zm`^syi)zA=To!);oTsQB_At=~R$>gw-e-|it|FEQ19kXZ22oTSolsG4_>{d!J%e#H zTj2pZzlv8yHuC(E^Uu^u&Ox!J6Jm)kF!7Kev4Of&$HWe?#7ZUxC;GMeJy?BnPi`6< z3?lk*6c)pt>gfs@nypYH>+*(cq9eAq3(nb~aVyJ$^b zBlo+%SpgOIr-{cjx3``)#Bo7$1Rbv*`{2fOtCbg?q8uGFhh^>aEOeVgKt~#&$~oOE z1jcEoMS(YZyw`t%H}H869K;iPr1~tCKOLzr{CBeZ@pyMpGJU}!L7AzM_xwaS;%a>l z2cxp|-4OrgDoPmCyrcfrV5dFYOg$9dHLkcWMlNz z;8U5Gxnw0=;@%hZ9vqw=0<{HT?RqSUuSFrgR|6ume#047#oG6iHE3KmfIX_%JBPh| zNvu5M_u69pJt>*Y9JL+J*{)5dF{0s(0EFchC+mV;bvbH5tvEm4FH}oQgS{9?Og*@h z!s`#LCejzXw_wbgdJ0ST>EWLK0bp5JBZ7^3aJ5J3io#*ZOycwgJ3X#>U8lztc^JUG z!baJqAr|C)tU}4LiN+_?R1RYQlWBt8c82)WqU39sPV>J#xfioza`wuWY**e|ib8y) ztQ-Oboq3J5q&D0IF_oD*0E&MtP9(w3NEI0kpk&0V=m}D)&dcL+O@Hoi_uq=rwqp!DAr@p2i?tIm#di#~(`pgAy1wZ^J@=C{4CC9}~bp z=8ggq&UGG`;BBK+Ep+E#W}%_3ba;=R?EUtpjMUmFL%k==-csvlXzO|Isd5&9^2+mV zqrvI@bkjoxG=_5z-PM_2H3dRzd=CGJZK~YZqP#-{0-QhURLTh68O~?&_x!{7TUxD) zv$w3_7dJPFbx)Vp$O@2raMa7RJ@7tik&H&|h5|Ta9(pdV6G&NL(}kstx4VU<)mIa8 z1j^$y3(Yky5@d^Kd;`(oppp3fU-)Au%TiH2>Dp&kI+yMh=@H99Q}EWBrzB?mb0jaO zVP~GgDie=&x646I4^ZjFEG4fAhd!jbDZ51D1NtgD-WOgPs<$QvWC>U^euTC?Qg+;v%Y8dCbBB?tZ`Q%#Ji8_LQ@C0HbR9TA+UrQ# z@J5QfMsx2)2)f8X|1glH!oFVvj+u0(Nuo#8BfAm+(pE#4*u+VUXj zAdt{>jKG1Q4N^tvN?=>*wf9PA;<1MGz?qRsd*KiTU(e9F{?X!0%N!JQf2pN2P{NaY zE=tn5vh;wrucQiStd9Lx^UWhj*(c5i_<;v14G!@0O~eq?@TCwnRl_IOqhnmw~shHEK|6&tvC_&_9q{=yL1es+>BwXnaHmM{rFt(7_@4sdQ!i zY41mM@I=klW@0`i*)biw?*uk2QPIWf;Bhrh2k*F)Of@PX2h)r;s8^L*PJZCNgZ(j0 zmA@@4!rBKoA-9P31LvhbH000$p;^7Aw5dC^^NtiwNUR_Hq1 zx!5qinOBdGMOJuKqR80L{bT8>sM!C9d0n_KZz_nE7s8-ZCkh-KlI<|Kh8+^yuK@Fk zxO&SY?SOySp%kn|_L*?*nz!X{RJfV8ToLKEdk?ZZ5hx<+fscsM(E@DF=ie|y66gt-a}lbBVe6KdP)s`nva0Yi_~Pyml%0YQy+=S7_x_LNG>tl6u@Y>>}NoF zg~v)ku|)e|Wlhb-+YG&m&#r0`3|;bVENQ0g@H?E@IGYPh8F`mIi3=%ExeQ$kNrf{r zD@Hl9vA@EL+3;$G*i75EUUB%ch-28^kH_1@x)i<=k-)?b z`&(nP)N{sWS1j5=L{|90gnFVhkPgSO&#OSY{zTBix)=B8jc%$Y3AubnPGQyNqhY(sE=blnJ$7kFAN*f1S?T(8(I6FxY(%wI|%GX)PF5l7xu(TMBUn6SLM`o z(1j@C)PKE&H|k%c@Soo3)W4I$=SfDmX?sf3a(Zqr<<#qk#zjWWV`bDe?`dESRX>Fe zv~f%}Y9ZTcwpHYRNp?(;FF2M>OZ45xD)P2zr^u(tsSMRH)n{4fJpebY*in*7jwLy> znPoY@ATlVyU&o32X7XiEjTr|uf1C9?U|Zz`6p&fxPcnrRX?e9wO)p8#{;DNHM_jyl zo_GxfZW5bj#6Jz)Gaj`l)qhXqNGyFXnC@OEkh84>Gg5(xNi04S1*~^!OoCu4z&sIl zo0r3BBP8JD)shxZ2xmh+@NYsxy>TSjLDrbvOG36bclqx-VE2-ilTF8_06E6Zi2Uri zDF3$gqB4nJUbLpaaDrNj#P_26Lnk^*aRz6uxs|<`Lzi`7A^{&piyB|VKOCy{jFhNv z8t*Z;j`{|oy-0s2mR>>Zf9Gww2${ zB{$H@SK*><#v3_D_Ru!-M&|TV25kH{ypbvV7&DJvN7Nhn$EZ)XRK^m7(H82`&xq+s z7wI5#&wP~q1)-G6^)2MA`8OkI#b&?OT84(i&|6gzGl`N({447p*ah45OJ8NLZ8{o7 zLs6gK*_YCDy@9VLGw#O0ySApF7&Ss{LROGg;=23F(pOs$&O;Oi5#ebFg*0fPtiS65 zwmZg-NR(wd3HfDy4zPrO7oz^mo`+G`zm*@+D2rVy8MCGc-2gER*~^F5YenFCl~y{l z2w%7lY$1NaZk=8@swJ}ihpV@T?I=8V0Qw}JCKUt-w#dFeZ$N94mUe&HRg|-N)r~1& z))DFt3X-xVoyc8-2$NspRO~VjmOry4#ZjR40Z>U$l=Eg&G-?0LmJBdOnUgIU7W!IH zQf^6GP%gsD4)kX8m%TBvem2FW z1iJ^KA6T)Y#gj~|1g(_rkPkzUc_K*Mw>>D7SZorH(ybnB>Vk@4NVLd?WGjaA(|#ut zBTbP9pLBS#a&z<#>p@tKytT0@aX*>|D;pLC%7TPAC%)*^TJHr@II45hUu))~x^Jk0FdQbOUnI zkuqQ_0qafit*#6bGj%+%^=1;)_;MF9k zE|ozGD)!~PvGW*1TcltQ-@mS1%eQg!B3L#>mU6IUZJ6XN={xQ_D875z-xUNsseD{&J=O|E$0T7PEYt<&{j^{cd*1=L&p(REa~S3ebDT zLEvhR_}_ivMcUV;dpg>%kjRW9mnsXj;KO=C9N^W=cfYR&RK-aur_zI90>9D z>Kk11PnX4UtIfq0IKgi3N`Gc6lJUUr%EzV!S;vCvR`BiSV||-z@30 zdDLqm-sWqbVG;-KYBb_w*i5os%rme7ZX9-M@B*v37`crAcN&KYvL#$I3lvMJY`6 zGCE_??RdJ(+j(cl7)%Yt+}eF@Lf1pPi}|sP-%ZvI4En5p)Pt0tl5JvVB|$69L{lo& zR*dZt8lrUOg||KfEEpM^Q-Po2tp2P3PIMkK_(a6RAe=ib(o35d<*t_16nyCzEcsYN-VGdZR>!h z=K^{JK)8#v#8!ws!WA5-n_;_7uvy13T~nS5=oA6k(N)=y3+MmTfMRoI_&W@-AT(zKucgg{peZNbe+1&us< zX+qtlRjcx=T3`fwgMJZinruKNey5$Vcd!YJ3TD~E&~1ohG?ppD5qvd}S${rU6b$1! z2oH(@S^HIQfW&@vj{({Kbh7|4{=J3FI2*g>BxD_ST<0R>s4yWP#DFXzJBJB*HU?w~ z`T12g353jOsf0WY7B%O{m9gTMBd2yTb(Jk>-z*Y%|)QD+b4X_oh@R0=ibn%<_N93T?ymcJlA^Yr8#r0 zQ{TPs9y!X2fd{FleG`~{nMsiTig2QAsYBue_vE7A&Vs&1M8ol+n7tlFhCUYJgPnI> zzABWs(sZe@zl9R(OyUuL=4iEfE?{nBP{7QJU){smZaa6rZdK4a(z6_&5-W)8@w=ll za3T9mjL{fOqMQ7#U}kuepSx3p=Pm}(9Ys`tfw?KGB&MaoP6P$;#h`%vWEfe-n>Fpd z(M8^fPG0|R-oO&CG})(G)>BHVXUzmaN%fTJ_^Hmk%71Go^Ir*PhNBAHE}?;NXDF-h zmX@`Gk z_b<4Z9oHq_fxmg5H7-TQeb%@q`Fdu$dy*sfSy#>?Kk~}A##sse)s&E}Xn19MCB7eqa{4KE96!=14 z_$A*FFQH|j!Y+slbU%eIlJWxmw?KmmzB47h)RB!sm*JA86)RatqXuf)2`-K5sA<=` zG%Ba2m1r7jC^j`rbx>4Zg&OSA7~W_1hN^g%OQxc1B-=v#W*XihwD@hz+I}b(&jzci;n?wmfc$lEUsC z;=j1!W@*g&r%aMz*R81Bxhp({ysWXjO`yRGZ@~Wv7CYCD73#RbRh~QV=HRgFfST&#<0Re1Q=Gh zGdFDdxvwu%*#1b&D(w?rln22eP6>a>t##559{-h?ZKj05 zb$WvsJ`wM@5FiHp!2j@XZ0VJ60X^w3dB=BB(zMMh>BO7k7!wpmm~TEQu5=@ zXZlb4+Y(^Iiv48CL2GuN;z=|O7ScM1MT^Bi2#xM4f-5=Mwvg5xJUpCey}*M?B($r= zt@C##oK9DqVPw)-8BVl}dMFhl$@+XhGA3ecw?5xZwV_1o^Nm;$N?a+*o%QS2gc7aK zcl^%*NygP%{zU+1T)nq;49GE)yy_J}LAK)k?enOX+??8K-%h9!yN@0%3g1fX&QI`! z28xXOlUBBL{ToG`l_TMv);adFE|Sby#dxp=q3mw>NiV8S9f;p>PgN&vkN{=<N0X5ovOF+@(p;R$+Ug!JQon$QQ^xJeu9OU?@X#e;qSS`;a?>k zEkoxIzJuZuu--Fx$h>)w`ZjC=-2A5uSH*u=Z_L09+;};SX&eaL zE=vBU)l$fkKVUq`kBRl<4unY*x3FT}c!?A1v1;+9w;5@rhEV`GRm30EICC(HC z95v~XGl{IQ?;WI9M%Jzfc!X-Jr+LrRnm(#D2;AyT`d-|>#P87FjN_h7)PQa%8`08*Z&8qmVPaO6_YZ8$(0!Dg&_Zo0^+=aujVHm{ze9}P-_!h^q+&j!){ ztiPvzTKNupBBY*xE*d0`MkjDGaW*Z}?AK(F!_y0cm9d$`T|x=w4Q+tg^wnvyQk*|6 zDwaccB}Cz;DaY;xT_6*ih3a|_QCf{nIgYw$#so7E{&)eBTt^?qCrceC7yeI9&X$g> z;&Gh(zRYoQuO6)5m{2jv;f~&YT!gw+tK`#ia;bh=PVNV*fbgW+bu?`mmh#L!53dhY zPL_xsB#yeka`GCXBMgmdXY#=2q-gj%HIUq)Hw>iF9qu4J-1ICZ^9I-ZO?!w->sQ8|qG1oJW?DYf{6H=sTz260(! zXAz4y-0T}QwqWmHg6bgBR@?^?3}nB4DW5_ta!-I+p?+I^Km3nHPUL1^NNS`sOn*?M zJI4uU=p_@W{d-C(@isol@i4IUPqdJ%3PmG7C~%ZapHkJ))TfUX*cwT#)y#~1K|W$n zgk||x0?hEr5-;81tjn0;EcaGXXQx9?_Be-+9KRuID^jZI8{Zv}A{v(e> zZF)Z}G#g8F$Z2Yc=-0v!ygbNSq7Fg{?!#(DOEdt@5li%lSfVq{CvFRJ%2k1U962TT zb!fdEK@71(gf?kk?I&qYYlMSsIl85}D^a4%?Cj7dQ<~C~P=384Qg_;?t5Zdbv+FOV=Fi;=t z%i7rb5)r1fej|seI7_~nhD5_8ukZocBqGqGu&h-ntcT5#8voH|$+d`<*;)U6dSAik z2dXxLR>aFdxyePIEmJ1&~ z$MuqH4~!6hx>9S2fAYadb!-1;bx(8?bPa5PtM1UCx|Y%EzWz+WZFN1O)vf=Z)pghE zRz|9OOZuSLi2J%kT2~&eZa!=P4RD2#&9M25`PRy(m8a-OzdWKb!-Edw>H!>ddJ9@x zjZ)Qn}6$~<kAD>3E2NAL`RRP6u$nzxaB z-S}d#d4Sq#z=pWu%34e2DY0~m_I{#myx8EakY%4TU>oDiS3lca7^Cz zrrV)Ojq4DI2-X8^b6 zQcdrixYmE1o8*u5YEl4q+~6+>ss94KYJ%-QzIn<=v% zG5(syM{|}LwV5*WSf*)kK(r<7WEME0d3txIhwjX@@Vmt-uzcA9>F99{hE401%4fa# z{6;@3%;z$EhWmlFNPok@38xns_-|wB)<(S_OV2a#Q^iqQo(vxfMmYO}tw9uw?^fM$ zcwr7da78D=({kj4EYN#C@RB+7+T6d;JV-(s`y5zS1G) zat{@G8LkY|B;iM{z%eJJnjR*jWQpJAwgx(ro1r6^$(Xh7c-d<-_ubr>Pt#mkQ8)F5 zFn4FJH!hS*&dmBA!*%>{$Wcv)HP?^(azQ5is}PMKqVaIX{0sRJU8~d6y_0oKKu5SK zbVJj%3__$cN&FjUIqoFl@R4gF;Cu8&c-khv`9c84mmt6SLcj}={N@V*nIIo$H(KD) zf_jhw`Q+ix$-$q~gFiX*6aed`Hw)T{+iiU@ao*12T*ty^{hjYYXT`Vlo=ir1O{Q@8 zDbAI>UqfFFRCkx()ZgV_Z$e{{{DDFFvzV`J3&qbjQtK@hsfB1q*kLzRtM&`k_3UN1 z_kznn&I9fi)RMQCE*q54~F(St5Nl2yn=^muX(zAzEEgq`KFGM&DZ$scv|* zy1AK1b<6)}>*nmEduT-7oYu@)|C;thF{Jw)fo%6qn58#=7wjx z&#nu5)S~%nXKMSyl})Fpija!s`jv}ZGu&RCN18sxq#n-$XKG7Gf$2bs=D+6yjnfSt zuE!lVwaWD{9UV7ENB)^Y2RllLj;}u;9ktS8OPx5zD}G@ts8-3=XsV@0w5)wUK{q*y zZmgh72|AdYlzvKU@Oiy{3eotyR6p~C+gX1QKXHDO7<)-C9x)g@zVJ5j$<~km>+0U( z$AAAaK?~2ihMz)iukRLb(yN?y;L8jS4V#-^RmCn8W?p{Pwc4w!JpO1W@{muxPUS7B zRgmAp>eAc?CB$iPva^E}i74b!2l;RSndcw} zku?lmD)ciB`u+fV$xEorE9^DYv8G5@^+YCS%BMWLV*x-B2^0SFfc`SW-eaB-9KXw_ zaNsjP1e*09Tr5I$5ZiAZLdX#rP{@K;+ z@%dGsX;4{gEJVaAyo^X&t#>?pP$6PuwP^?jh=Xyu1(9n)i&*cX&P#8 zAWhBvoTl%jq!qJ z(2dzgw~>7Y*dob9HK0>5R`S_2DjI5X!`60tvK2W7*V;Kb>a3~LIq z6J6yd{j}pv)0d+EBKLG^JqQSlrt`AO#PrB;`_68HP2sctT~#6DlqsBgJo}?q>LsHD zkVRdWJpOBOEUs|IQl~qi?sEQWkYl=8riP1^V29EwSdY4h4Ht)A&l8hfwk==0B30VY z0&SWSulI9U)Nx}oNMxZGe)3Ou58BM`a=uCO?USK8o$&AogG#S;w*W@pN|^v0@>YtJ zQ)FH(QZlLOy&NlNciTNAk0MC9Q(d_+LAjfxT&Uev40{pUD|}n{Bg*pP zN~RdP?9RLGFTz$gEX9m%fa`j-&GrU$Gk^B+>ZeofOgXbb?yNt!8;+M*m)Rpv>8vNy zQC-{hrpPL}Ew!fg8KvnjakDl@rx$y+ke$M>GY~+1HN)eN^RU?RM~e|#Nk&sb{6^$A znEVemlV5N0U))T7g~`8XGx;{0^5TxU>o2n9HMQ;np6Eb zWuA~Sk&DRPdiCwh%N0FqOJq5sXTQRJ=Zc%vvnoxyH9l>T{0muHwWgOCY<*+tb+nIA>i^slvi$h&7=yF&xkBI& zfZ9g-n}8~6^!HHh^2nKep-ZupDx z9{7Dh6h6$gU}zW}x&D@$Z+S~irp9b+ z#~y7lu*ckwYMA2lbwLed&&A(%cT*b~FB-?oFjZQOZN+vs;H^l?pITaBcD(-1@g}I`LaDa29)zKN zb>dwGxxJAaCG*xFN#=@v>2KMp#Y?C>d^kj&Ft0N@um$2v?$f zxd&NNgMQX`38U|Luauhr^pnBY2?qVA+t8_PeoLddrk-+AFOe5Yi&EaW7<~e}NwkvP zHcw7ol$>@Ea_+0iNlrf{XIE`qyz0Lfp^(vuuLj|7N(|E-z3jT^NUQ*G(IIqLGIFsJ zT7dm}Jy~%KEa7+mNxSZqnDP1h@uPCyFmzpgD8Zef)cE;IPD$~46(<7eDMj*A+g^S$ z1^5Z;yL9f9fVv2}no;5Ab1>^T9mv9Y`Kj}uU%IDw3xsFYBCi#^sR8(rse^oD4kO#y z+CJBVj;l-^YVuJ8Pthv;APXB5SVVKwZYZ!(#gY#vt3w>H2&ZgX;1Dp_s?B1HK#w)QgHTKV=eMNBqKRc;=)oxrntH^2IN>8HHr zTf$(Lt~*}~;m!J=UXNB)eVSkOBdv$Ui1QtPk+kqV;6L?rbGa=a1&%a*ZlObG13zKV z*4e-(0x463&zR^HmY&OYi2`-jr9I(d!Ij!3FP^Tqr+6peCg(EGz(ZV9t!f{=k7OvP<;PWISe4FIr zmza_BHpw$`s$0L4Mco7wn)%aoK`b@m^DF(d>eYQjRQu*?wl)*vg=ELnE1zp_nZ%!q zt$Mw2xKpn!s4kVWD8EQQ?sX^9!yK%z9FeMAKmNL#&MR>;qYH3@HzYOIXM~o%Sn-bTsKYV)B3W0BZg7gTuQ>g=o>X# z$X*o;qWyG|v*)MhR34?hPnGClw^vQe3&UgeJ}HwORkM4e>sH!Qrlt zcYFwF)9m9qP)K)vueT;<5@!gcB(6tnOCgoTlK7;9JT`!Q-$3F#N02zf74Jli2;wMZ z4#j=}v`1*KaNR&>P(HyRt7FiucaRW<6AicPt!~M;>;3y5>~w2ex&xWiv8sy`EWCU> zU3_eRr@NnViQ3%VAF*B^zQBx}z5m}imGqPoBfbBZR|T={{j2m->B{EI zzLR9fl(Jo;DCOVpS*2_^)G1|xN@f(Jmk2n&azS(exb642a+Ju>Ek-<1hw^ddn0%}z zW)cqzr0Bt?4_L^Ma@_79?+PGaBBWQi>zPin-2beSeTp&Fuw*A&Nkt{w|3D|%L$^W^ zC)w#1J}TMy`#Qe=4UAeLB?91k@-{%c&o7s{w80^Wx+IT5hw zl-Jm&?4mDYHi};An{9+Xedx8;VxHvN&q>HkX~WY=}z*A_mE=yYgiap zJsV_*lkoa!ER^;4_5{ag@+nQ2{cZ>p{uzd6Ri;6e$OtP_gH?{GGUau4%JfYu!KFfz zn?A&dN0n*h-cFgOD138edVV4inj5`uHuYOb;IHlt%AkG%&`!+R=uSd$17!|q)Wn$6JJd;)K&}r+6O#1n;blaNo zmq%OOBL-*586|LN&GB#}W6@6A6u%l|ZEYxyR{#0)wv|z)?;ERrN(|1D`PXGirmZRy zgR^8V6*!Rj2%JeW{iaC#+!jB@6%X6btbad?H=bb1D5-gdgS)yi(WdeIOgO%5ZCGDJ za)~Lw0>f_@&XU~GlH7>?uo=$Y4TrGtMff$0{6@*DjG-+u)m<4&w`9F?X;k3H$KWhk zp1^^Vr*EFD-){$5?G0JVN!!{r&u&&l7b7do2utydSh}USMU3KmV{n$@Pq4YKhI``c z;Z$yhk)@!x>GB|cUS_y;w8I%yh!k<^L!g>r3v9cY0%uBrP{7?9sogfhn8kOPCj1`% zWpdWPYAb}l_UFf#d5m&JZ)5-e7X8A4o3U+^Zg!>?`yR2kEx+mmjMCPs+W5D;pJl=u z9*2m^Sp~olnOA>(6Vk=$7$C?~W%!X%QNG>0+S|)H9mD=av)sJ;G7B$#+xkXr-`UMM z9VH51qWFhdc=>j7nQa26ra<6x&a0oy>5DvkWMp1lG678jAyQw~zxUtK9~ggo)VycA^{Tix^7H3jg3yG5DrkH&tOpC*QdmGmyO^lMy;|#R`H)XZFsQ z>zix??|NDqXl=yj|Dw!{hi)f=uSO?=H_ALR90}|wtrBPC&$Mm7%30d~%psbHbN!+A zJIGKxVRSCY34l~jebNm?#0kCOOm&1at`nTKhwC)GG^TNkNFxX?$+znS_qTVQW*ddi zqd|*I=vy+zncGu;IcM(}eMH1l@2ESDij1Y)K|htQtpD$eqMc>kc-Cf`ne|I0JJuUY zK9SyV&>OZl{Mga;h8|RiY-$jiOx4O~ z1H)(A;#jb#dXM^G(81(h{>7qAjl5h?Wz+@%AnvC5ehFdHGZ(!Z?2*82Ywb)AfmB1*cCn+ zl)pjpa~j53IYoclVG+Z)|C1t2sUHk$ub)CEKDX9SZB5oc_rj`WXBX`=Z{5ETFtbIvY^N*$~Nnz?UTtg5HnMo+Q3gUnecRh$jm?hGx-}b z*bRzX(j-P(gQ zi3?0FF=Ad-A7zKF^FV<^Gk<|2wHarv4m<4{=fVmEUayr#CWbc8R5v1)Zgus7Sh|(o zQ&?yZlY3YU&Ps2zfwSyy8-ugb8z^vSR)^-zvZ~q+dwNxqRCJ=V(6Ae67MpvB+keDl zyr%#^!B6mG^B&?_4!`MH?Rj`VJ*7Z?YFo=shL1|b*GDU7F%$kBZ&^_@xCKJ6O4l$c zCs&w?nUZfV`DWTq+S%Et`_u-NDR41<1X#ZH0q%+0I|DdGfx9ZOyS`t(Go=;4+#?tP zdkS!W)Fqeu6(qPgE8SGM8LDpYzu86m^o_XhJo>H3ipEY?6%sX21 zw8?niMDoJ60gIgJCE$G~as4!Fjfy)sYcyI8bEL@lP=G1m>I(>eM!4$kyAN@7&`yr4 zM{^+@PM$JqKn|{+(av$TK!FWc2U*|{S5GN&n7@`C?drI?KQ#dBHspd^!`GT*;9t!# z#O0d^lh!8r*-*Y``ho0)6^tg>R(BY$2;>gPVm^9p;NYwZ@9A>O%h%>5dfX4WhD6oo zG27IwQK`Ki5#QHxqO-t7qEh#wmo?rIwzI0WZ$2C~l9th14GJ;(p%{>@=c}_7NH{(s z24q=3OMqaPs^Grmcopr156~#|gKsdZI%})Mb&R33#9d+Pt!KHv9*VZW5?2}~Zg~vI z5?5r2TMg$i2XO_4xTGO2+>vmvD-Jq@&8e;WSss9BZcgXEuPyxpzLh_fA7kdxY{qtr zjakFnoMB7ZonT7`$WJZ1Ew)#c;HSAQWhQprLo1{Z!pFFSt!XQKYcbgr<)3~ZO@Vf8 zIHN?!y||geQ3dRzqPTC|CYyuKp1))f6t!29FkkIUgbR|H z{uR*6kwj=HfM8~RhEG$j{fBUPw}blO?2FVZ_POx#z@a_-AY!(eu)Kxs3!UZIMKYD* zOtK7>D3XyNejs3JWf%B8*pXek%79{gzH8SqOp~zbsl$+LX$3pWKv1mA(srMKtIBe> zdCe7(Hjg{Ww0Sfz$Zj_vt2fBZjm?*`rKah-i|y9!N~dwnPpHNG1b_Pt_Y#?Qa7>-Z zKz;bgNTb`UR2lRJ(us6dbw;$+(<1Z9Y{FX}Pbg7G zS*lU?$s5#_eg%#MAt$}WNb=8rvArrS&k1eW7LqF6H%P7L`HQr?P1AUsD4FTtS$`n< z2(D7YiJN@_+VZE#emb1KVd4;+{pyA`2taVra+f!WlrvlDRnR7A!w|TWjf>c3Oo?qn zgTh#SNJGsd3O2H7LBwN{Z`ex&hPtJfO+HZEwJ2Q$6taF62jyJBFo#^$5_@n2#x5 zHq{B>{Lk?mF#%F*jk7TY*z&2ot)68X?-(}~k;iQ6K;S^Fd5ztm4F2};{F4_ix9mKA z232S_`jV~){{E9(w~p5e9G0~Oi#PE-T53dA{B5Dic7tN+P&hBy;M6W?pk!uL+f-)` zMb|_VguR&@Z2cL&Eo|_i|AgbwiD(y_1TJ+mt!u)YIMx+wUh7pT!8Q=ulYe^&f3L&q zv`kCOmnVd#Q$&uW|Xs8Qv})W`5x&gjBaq*6Jj zO29#%tFlg^PP`0t(D34=#7i~G`eSLcBQEeMO(zCc8r>83$-%CMt+W(8j|H0>`*rh~ z410|onEq;hME9a&Q~3I1dc<1Px!xWu^Ges|PlKCMx_(GnEK|(|bFBr}m4+hp57_YK z5?q$7(k{027Ew;B z+GcSqzFcf<<8t;3g>yT_%XynSOXln4s*SIxeYW%V5paP}qkQTq^!s*j-pP9GI74O$ zbTAr1eX}~qkYRp1*{6c@_87{+kRcv{v>NBKL8VNU z4HvZ9wr8|<4p;HlLafFxQtK_eGEd)@$h6(2m752)R`|ST^l!R@MCIJ9u?0M?=I6L? z+A9(Q-V?1rql$pyO5KFfWse>a8^Wac- ziow|y4HGy}dIY@3&BU%gqh>VkuBCI(Hn4DX6S`|LKgP^sXN$}}v=44Jmeaf|8pEaU zIv7JK+PHvo4QD2sPmrGu<@1CmqvS!*V*OyYflh1}F??dkMP=n%LqSg_oW54Cq)=0x z6}T8b0xaJe3Ocx@Q`Yko_y7f_WffrgrqiBjdt*C?`CtJK2Q8k)O*+l>cFrC_(Bg`_ zL=Clqtp9par^)qX|0$ZMlw$v=$!lQVp_->n#{O~1i>dD|9EvlEE1$CJdr%vvzQgGq z8lHOtaQ0tEDX*kkGXKRnaD`f7%;t$X*?iva0h_mgm+dOR%ikx4*evUZRv|DBnml3i zJ9kPs%jOP}7i06z^ocWxR^u(37qoV4-UccWxL!>cSU#Jm&YZn%RHrQIwehCV$w*>h zKz>fAD1OFg0Y6*duPK^weM$Ovg>CUSbYatC>!j3bc`M2!Ul-4qD&>NtOkziw=5i7^ zy%VX-`V+3EU}fjARO{{)IkgZOUg7!!2qzu&b6qwYMmUuGK~~62PtN*Z@H5Pt{HijH zYmIn@A&8BaRr1-knIN#7$6Z)=NOQc)Nldf{1wK73lw)6yDUal zsrUf{X4vvtDh>}*@m37TQqe9<#rPPIrD9DVwg*(af_-N(8*I5a0VlXZew1Tp4bpSi z=7}?zob|u_2DbSTerzT(lve=9qjKAQ^6&u9NM0kWb7k6#Cwg$h|sj>JsW~DvJ zLPsfELlKM62enwdiBF}Ce6uS&%v1?-@QFi*g+r0TH~}uX$ohMoBt0ch3S$4~C@N2i zH6}fIxn2K+cICgg2zV4wYPkJ3v?7z5PFPI4@q^xP%O<K%_y6@M%xLVaCV;g0~IwgMC~h4HN19|alKKL3|N0VS0}3Fn}7f)ggUrzGJL za_NCWumoWIli_4bJO&gk4_BR9DP{Es?3eq))2YeP)R~j1EW+8Q%Rshd1A6?$LNi{s zYnSp-B>xT3hWUSV2AStb()>RLOO5mK9A0(mMX9@1f5NisyRFE05?vQ~A|RLjpI=s?kxyp+@18;i_@iF9USpPHL&~h_|@|)oKQb#Qo-9p_BeT z9Usy8j`~gw)Wh^Fx*)NBh}JO`yP)v2a(EQp<}B7ne#p#OLqRfD>P%YJy{7)z1$d>K zJS=O|sXpYoMoR=(zSY_JX~RJlc&Gv&ufQYmBf#>l&dya^yYaoZ0Eb86@@;cDJ4*|L zQFwHvD2rBr`>Js+0iJAWJy~^;<|(CF|7DZcz`Rn;(@f-W)^xB|CYwEaDPM1_>oC@TjGZj?vmjo7yYq z4AP}Ba^1@ig>(WgjCtcoip6Ni?&AtN9gtSCywRLL$`8OWa!W&6x{y~Z>Zwtlbb&?Z zm6YKr!9Vd?#*&$2EBxt@eBe**5^5b_Tf|yXL?&N1)k?I8uAp#02H;J2$P@PLDV$!G zPLB&uv?;7CU7*W0lza!Pbw)ITw!=T8-R%g9mey2AuWV?A6X(WuZ0a14&9xs;@%|J` zBsdl&5>JhQ9$Z@=6Erx3{V4Wm>C1I7O9m0!OwdK zikxF@aNW!3`Y3-OHuKcPd%(xc95b&0gh%(&%8R`0GU-_hC8#l_L4Ind%TH!9ey~n4 z0YA;h4=G_3{k)yk%rxttMWRWyM3fA|=i{&7_3jM(N=TZ6z(7zf^AwKxlE}A!FE)YAtp8vGRLX+lopJ2gsmZ36gCg*QHdOKb zAJ)DEKB^*#J3&VA2nh;`%4$4N#0zf_kDx>bBpMF{Sp-y2yg9;(*BVGhGd@Qn62$|J zH@c{Jpoj(o0)u!EypL6)qP`GZ5nTmz<@^7uy8FF1Gq~&befx9CygsU{s;jE2tFJh1 zj{bx>!27Z&;GI4eDOF^AZ^5~6${DEN(tu=tI1jH(H^j%ip*>Bk{zr+`FHI&oqNrELe?!=8 zvpH;t$Ro(a^${bpYQ6XBf1}|TRP|jhpNe>>q4HeL@94AvJ3Rs1*TXPT7>fk=d;qkIT92eT{(ul%Kjo!g=HDrqX;n-OUx z?GMBTso*sc@lA1Yu)!*wXg0rE&Oyg{b^MH?_|IPy#kPVX|Ba$pShcGRdD%itG^M7IcXegR?A3QqKAH2gQQ ziOoleDq%9^qDq*Io{2CQ{@;D!o~Z=qTOMV&-z-oRUIdhqi8G0MVi^9dYR=obDJehk zpbQc)gJXAD%a9={LV5WL;Z@~Oj9 zECoZWrsxN6>*VVY;{~v3K&wjNz+SL$?*y9||8zRx8{jPyDWmckasm}n6V+%v3VLbsXW(_b_WHLuV(6ee~M>CdS7+~#UJBeyH6JAyO#FTkAW(;A>8|3pRqH)2~Q z8JiLP%A%a2FBS1}q5`G{ghYSLWmfd_knhQ!L(3T%vjWkda9%FaKW!9Vfu`(|`REb; z(H<$BaurcFQrZtHLI$416{NI;fJiiI2!k{s9Bs(Iq$EynPTd#E!U*N?f~Qeamm=M`T}y&Waf` z%<1tYQ_q89NAW!BMRt2jF z&z=N(BNJ=mv`|9BP756Df^)ue6YCR}lD}rjUY7TzaEbP6Jqj1Mx`}lsEiBTAx8YGn z3d^@ntRMQ-LH5&x9G+NTh#NYyR}rq=GMHHJjqn$+(FU-;v`5IXZKrvH8F+uT$!las ztkJbZB^momB`+)~=(L_#q>iUzT~l^q{p}AW=pY$H4tSk?sH0n|R`#wSHbx%k7%{v6 z+G$hL{{GwJ6U(pc0%NLx1XFuUzv$MB>Mtq$so2vS$rFaE3%2J}9{cxX8qU2)%S;}2 zpZF#u5&-<9!wz|hUl)Ymb@S4rL4_9;ii!fuedzzh#R{)e!47OkMz?h->~^RVVNt-E ze1G9SMD0?C+V~EN+Id-6oawN*L!mz{R0#BGfFAJ8tcYpvN&cv~^r!Th`nm?Kl^*Sa zGTaRQf8W+vz}1yH{Z;m+X!O)g#{{_W1yKySn5<$Xy2N(*(9_vcgM8|i155QB(@jeW zr)o{Ri}U*@Hv}i0&bb+wR4pnB!J7Xs%)h2d=Q;QrPa~yuR7H!oa`KR7x$;+?RpYao zTEc=u5`Pjgm<K=!J#qCBXnhZSr3f$gKYXGK2kYw20yuMWGn4$!$77;W0sDu=UXq5b zxs%>rZ8yL+V`OX3t;s2K%>be+#X$KZ?Mm8PBb56v%IqN$!Oj%L<6Qz(4K&bs6&5B) zsal^uamU3Qi(~}D--2TvJ2-Fg`oRlY+u2kgAPoc&FhYR`1W%ZLBQrS$N+C7l6&L~> zIY*BLIlUx%;#PAh6Rk1sk>xCBf7EX_^`-Mc{?ZX(cP~jc8^8DvC!blC3CzQ7&RgdgK8`_OoU1Bc}5sWiHZm zH}Uay%Q4tigo_L()+Yzuo8bpwYwtHy>e6qZ;4f25@cTvVI-JXqc@Tafe7=(ZasNOP zA-Ij?P8VEkss+=2k2|Dq${M{v_r|@6^>L54CSv6az>=@A*Q7%pZ^1-3gMv$2M>`&~ z)wKUr9f4(*i}^3tE2TeTpbe@B;Bo-YQ6p(;EIB!)qrMrS(7N@$vI>3 zCs}u?e8@q(FuUYR&IC(hJ)*)qH~QdLY8wya6Yigi900UbXijcKYc|YvV!q3_i|d-Mh3pH?*uj%>?Ej2;aOT( z#V65ZATE9J}3Bm!JopwCN(fuwAAtKdI!vUjYJ%x5naV_*e!i+xp5 z#TCCp^Q>@xyN~A0W=CJGc}hFHcFFTfc_(GtuH7Iy5bq`Tk>uEORo3I0=$C*U;&IL6 zW&_+B3etkZCNyfs7I!ZJUM}AZNowq5co|Cj=<>~zN_j$*xh)9 zle$KS%2CYivQ@d1`khac{h`%w(i#}5z4CJR6RY)n8~bjsLABTGMOwK2s1hs#ZKn2q zzSi~Nt}kmp%_DP-2yghAnxuVl$%TMtfg!%W7gZ%g9bUYLFk%l^T6MVKYo`wX;06eb zIIi$NpRr(34zHwK9)pnZxJ^u19trjl9vwvP!YRT@k~I5alIbf#7Vok z@_rlmU3B4~P1x)%xM16l#ge3^%IOse(b7ExBRwmTOGK|gF>D0iBZpOqKcAPU2#>-37H>w#>_A(xTPz1C*^n)4N~tF; zqn_%xI?|8Mz{?4^-buOae|(iA-mV>Q_q*#F%(%Riwk!Q2`X&pGR)EZ;IK=q=tR8gG zj#~)VX0tsz&SAapNY|{I+=^2SGrhSLfwp?Jv+*&|)38S>MQ(a?!i>PoZEzpnAAk`g z?I&-=Urdf#8Hywu6hPc-(Dri!xHzwmT!(3nEcG=&Lg;RRZCIE^OzZ|lz423Z4IWn4 zpxZxb4RG)))=R=Cux~d8((W#G(UDXnb4zYDRP?ZAdQbE%1fUSDX&Ibf5x2&2xE-W5 z!$?2e4G@wXYHFk#1?&jkz-I)~EHVB*-S%V;SK)B$dAJj7e47Y5hfAdAe>#Nqkxz>%Jk@oZN zicTF>v2h6TG1O_x3^GAtRjVS5~Y4Vud{>Dwck9Zt8y!N#Ye>9(^U zt3t6_Dw5rt^sDJ!PBDF^#gYHl-%up~z(8=Un@&f4=`j!rX5n@r9JCI@O=tj4{U zfbdFsCQE0vb}{hQGtgB!OAX-VOJD#?XXSf?W|^{huW8}<_xQ1-4<&1DzTtbN;qD}!5p|h{^|dDR zuR-P#VLrV$LBe@)&2p_LJ9yAsn`yi$vr9;OcfOiUx?!b{VAagl|+z zy;$Y1Dt$eV2Y%vWlWGix+&W=}X2(*Q4&qa0yRRHhS~^XXsseiG-;iRu_MpGoS=$iLo9E-hV;-|+4?=zs#YC`u71~QRcFB*=K{D!6wAdsn7hlc~ElxGSEe6sAmqqxC3!8OuJAdBigAx!X3U&$18YE6Sz*(9efu;ErC&hz&6HY1#^0yrx z&NtyCWs|6DtGe=pAJ`l1XPu#%%{m~ZaVvJ9PCA3siz_9SYo;v>B7#YI(tO%~6)Qya zrFE@eX>e9-mr|KkDP!z)6NXGPGn9I&cnkYVX=Sn5u~jE^t%L|QJpmMh;%@M(O`|H6 zlGzMZYPnMl(PkTZ3k?xxY02>2*^B2NHugf5%UtrH5;*e#u^I-jP7eq~@n3VR7>><0 z`!?wdICsRwlnA|Q#-<7l$6TOugFC2ffjGt<6*g9Te9tZ2ErgN*!TPPFWQMzU5m@-ve(t(|3b}RW}#GtA{l^;B9C6 z&ep=(_p(kVrcb_g@4~Ik4)Os~IBfb(*g97*z47b7^o=b-(jCNS?)}qlBxR47=p_;rcW`E z{KiPWF@1`SA`|sQ_DqIPg1P)71xk|idr!?% zOcBwNyo`RYPDsCxyV&;oVar{=Pogn1{TiboWrO!5(J$hZN@qBeyvO}C$!Y)l6#k|< zZec58s=~;)_SRO?Te0PzkwN5n-CE^&8Qs?qRNLBt(wYpwtGS|>6B5= zI+VBHr`ViJY-ssc`cJs}H9`IN5op#m3L{!QrSymXwXXE2p!8!bjSG&@n-}L@4Dsw# zccVGjr(r+c^dS*I*>OA{OcSn*E`zs@XrfLME6IjT#-30UWvq<7VCbR8Vnpion&Dsx zs;Ve<-$PmEgg+0upDBv(r=2LydyqYCqCUaas*os-eBFs+N()!2+!k5L@~vuhh6F3c zjTd;cQ(F)%dpw z4tlZP-;w6D|08y)K~RUurvT_PCR2)+SO2jTW6@1u-9JF3xMg=-F^JaEuC=;WZ7qS; zUX7!;?@5?vNuO6Bu&6wzL`3Nq|NRNH4<@W@QnAnRDx^BbWe*W=ar2eS7cIBKgKquM zFPI@vbx^^3_xB2qRD2PoyPH;kLGI9~^GPy51bjMI$}Dh=l#fMml>ia)<#({Sy-iFr zgq>dk4o9LuGi(0>WW!ztx1)+?O7rSv^j_pNv-p0&R$&GcEcw)XWgi1K3SOqkIIwlj>qEK4a(;$hIJ!@DVKK(Q7V`H{iaZg+e zc5;6e;R<|wd(tx6m*2$7UZ$mbZl)+!98I`FBuxeal9!5Ap1CUsP5aNo*YTvCq%QFp zp_bRhWbvcrVPffI-K>g*1oyD7BC?JfssP!Xo0w4x{6M0W{M|*WmtfgzDalNcFt35E zG^?Z9PFZpRcXHzyaBkqiu{NBto0ErwH{6xNm+Nh>j$qqWf+tr|bi_03xHrNbhcbY1ypIH4{F z$BPOEUXT5JzYbr(bLEYMm5METpL$ELsNXl#3g{O-QDF#+n2QEK^qY7*7Rh+e%v6B| z+*ZBTif>s}4Aa?&V0sO*Rmqd{a09&*(S|V06zpYRIDBlw+aX9CylKvC)6^1sj?kak zSIvG%4nF%TWU|tJ`#a^+O5J3&@g?kjkg*m+6zcXcpI_j!hj7|Gb!%1-AKZkdJ)^5qe zcoraD&*Dv`QN*o%=^V!C9~p%#H-5|~b--!fsk)*QEU_qCct1z3J2{4C0JO}1PyiZ( zeMCkfi`sRjkg%&LqmV_7_gM&PyJw;148nU~MB@OqKVHd5x1ISg(sRTC{xeBAf5d~1 z^QG0R3aiQO`Sd5S?p^}H^nV%&;aQD@pbsk92Lo|`NH|_%37wV~5}tiC3Rz^YFolF0 zZ88d3;Ta%>&`}*=wYc9YlXu9pglCjaXHp{(7Gs@eZ zx&`SuxcbLmouU+_9z)S0sD=A zlZjFImrdZ0+yfe1p4uHR%zBcKT|v73fb}enyabIVutC&bBwJb^hcE|oDjiQppQ_{O zs6A+7WA`>$+qvx*YCC`JO54d$kFFfyOvC^j1HmH0yyd@~@zo>uEGmvCm&Sit9mfOf z3)XKHU$Ei$cyd{Mzb504Ji+CtB&}?j0S+ts2%&nN+JEV+?2k0^>BLyz4XNbCo|E)v zNjzOzsY#_Z=5HDwq{kO8eBWSk~wk6PrV zYt+C%6oHqSb%8xVkIaADc6XPRB|s3n$oD4I^c}Re%nDw_7H#dqf0zpB!Y?I+14kbu zBpN4ewdf0+9&PQ!aw}F>HRs2-UdW_{i#HBw3`pqdekuuCb6xkPnKjpSU$%JNkk=P) z9KHhAAvD3QYUH7VVQ*Sg_6<-OET|A^<+>o<#v$D{D0!eQSz06F`Jw;mGImae zlX9&`Mo(5X(7xssR$neV!D!Wci?N=#Wo^q}C5@(ge{(LFQy!o@o4o0bsBv0sDHxvD za=P@3DyOkdpN8%_~VS_rFbeZz;_7|)=7gNI&N;R)jj@&I~!>bFS zkAvNu!|DjEWENIkiN3-F80pe=du4ZBu|u^O1B*9@Lg1xXBmW0C#9%&hoDj;*0Kd&) zL}J0bdW5|2dD(NS`Kj2+68y$`>j(;KL_p@jtI^>LmIHVA3Ep+m$~vz>+MFX_dRL#R z4Mm4yS6mc)Vq1O1PzM`Vf2X9bLRyxzSAcKW(ukKqf(1iO1_hg>padcQja`SB^^$PJ z1n{S~h(+O)H^_ByfQ+Ct^%A39SXBjfMssw$Y`K^jQe6k!mP4}{|JW6lC1J*o6~@{bJ#a;|2S(=T0ja(W@LVTU#5UIn*=6HWR{G&GsCm_sQlzSZfAR_w3qvWade%Nf>|8`ozi%%Z=J%$cF5L z)c_9&+IR|Vnp&ZuSl*Ewv$7APY7A>%*5USh*{7t&cJHo|)`+yFtw+XTS!womoH7MGH6_~#O9I10_i8;f;HH$R zW0~w_;eTDMjN1oh+y8Rma8)f#;FVu* zwgV9XuWU`T!AKhsFKr(0Bc+#}y{GFK;X}psFpDb|t7>|&iuX!T9^==}Rv!o~V^7x! zyGQnP`R!SjGmyJqR5);7_aXqV)6MS_p74Dff*Ig>Bf*zq1Ga4RZ#~xn~Ge1E*L$B6}qs#fct6xK2*)o z?Z1rCZa;V`x_vc2vh-sN^dr~qPq#45E)lj2z|s)Jk2^7S5rqmMIX!|LU91i^)de{k zG~@^^b$;8LOpe7QYR?$mL+@yZ-o6tu&`B~I64B`MDyd+%ZG6pj+ode#b$b6@*KPA8 z_!(<8WxUvF24bHOL=W>GxJ2mp*7;;dr)dFzs}w+k15jiD;_5ff!*^x9VK(`P)^%90!1=OhuYQ3~C?E0)s*j4I4 zRTxmC!l3LD=c&b1CIQt}K|L9OnyR2WI8gf;P&N2Rb5=}}H+49jXFC1BHMkD#CJ8d@ zXf_;kDPC$zZ>5-+m|G0zrpI;RfBErVAC2!w3KukQ5zp5@RgLZNm{YnDb%e^hwpg*L ze{ymEh0}tJ3kZ#Lri?_D_|z z0|^oWw4`$JkmGMkQpI}uMc2@_3WZ+DSlR4aKMx)u*d_~%YpPwo%q`^#!`5N8O8HnU zX#pv`Hq%Rh<9S^o9%*CN)wpR)ieI|n)vYf>~|htES7^oEFvv%+N{wm z8`Mhsi$5bbb+=uRdc|2}ymY4A>WGF*gs*9T5q5sF;coc$1bpvU}ic zlgmxm5xG2*UY~l}a&~faot4@SY6_uG)v+xj)Vod+CRuF0DFOOMa4n94$9FQjDNLNe zssY<>5RcOwc{B?#QvR}w^}?;Y7(}cRd2{i`Dj(`DNrh9+#F0%#QmW+Mmb{89L5b*O zmEVp`-z+g*+QfU$V9AR1@v7E12h5f25tMKFLjb9AKn)sDLHVK&i7u_DET770n2AYz zd<})Ubg2v16;^*u{rVLD1m+#)5&Idi08=YlW|`4HnJ!DLsyK9DaxE8Y_ruk*5e2I9 z<7KJC+m`kErlLJeReWIb7k^J8|6N(~x5@^Zw!DfX;(x+8F2NaGe`nAUy_sEUy5{nL zrWk3GfrMmrwCD79V=w@8oP`~peg}R`Uc?bY&iC{g-e*K83aR_u>yeA`WQ>TCoce%w zPxBs6%4|P8$jAX8>2S93!h=AE&WiQ}QpzPfgz?^^C(<+nir?-PBUW9oS;;{&PKwI|qZ7{@(Ug0{rOR{fncVV~cL{99V7v^8wxSBSRh zLR)2ow#v=ZcI>rmktYj;w(SDip1VME!nEawXq&*zp+9#junMf!EZo~91hez zLTGPqYnf_=aerYxr%1s$mFL`gMn7G~73L!%zNI8~(Z)e=|6A8}lYFqJ~9p z(Y3zZN2+^0MT+Oh$d?qOo=okHG~6pk-wgN472!`<5%vBPt&sLVW`J9t)r%Vk1FZOp zrwSozUM!hr$E5uSX7G4@#p$6!Z~w$XqQKa#z-F-iOKa>22GC>~V>D2SdPEg_Sj?&G z&u{6F*U~`-cpYic$fd5?DND53?%B=WDEcg3WY8>)&i~Zx**Buu-~x!7ejyE1nNx|s zb8=I4@-0W53JPRmFG{}4RVa_tup+E~UX*+`*>o|N9xX83_y2_oKaZul`%qpun=oPz z9cP7q^g|?86#EHoZtw;L$5;!idt%bmauEJerGV@E9x-5RzhOPCb(?UyAtUYgk(MEh z?GC0e`U8_+wzkbQpZUW6P-|Fn?o8|eyL^iN?Rh-^ii@LGX0V))3RqTJDU*V+G-! zS28my*ef9NymK`tOyulm10wen!gSuWW0c4XSLPt{yupMQJM|b#WQTyrvnGY@nh4Ho zSn&%RRP;*Pe=3^jMCs?xja_RvAj7U*%7sI5Bm#kj2)%z6nV0qpDzh3M5N$&VJR+Lt z8otgp+&8n~AGx6*yWwG`;c3^ygE^HSlNZrWW}Z-1@1<5O=ylT($OZjaEJ~JD_SK~s zm`#=E(jp@kVGAm*49ZJ1Nj%-dYUS>fMpoWo8)Y`AF9fO%OZqz8Z*CR)>O(;P}1tSEK?lEpi&;WcuLiduL?DFk>= z*ZNY^dh?xGtrsvrg2g`D`d?h@Gyk{N=l^6{=R3KoIP!ix6{qwOfY$5B9>Eu!ih={5 zbxQuu1T>A*i2OetI7@pLi;@Ed-uwHf3Vg(a70$+Te)9TS!tBZPtgImip zT#5y|M>RlN+D=-6(R>&FS&q|IznwvbrTxR&W@P6@p#A@jimz#uR7z*RkyNq^8`;x)8&(PF{%rYrr_l*RjunW3$#4DppZq6!VK1owuD9oYP-FPp$ZvxS?Dr=* zY~m@WH<<@VQ?UUvoOJY~=mFe_p8PASs8s)5)WJ|a?#-N3>o6ed8>ZUmvz;?!Q2q7T z2-P<}?Wq1My}S&nAD+XH-;U~YKF&e)kkbOH&%D=BeHyk2sR}H%{G8t< zPyr^&Ant$s+`Ui65YZp-a#-qT%e50$ zV*t)TYu_jaiq`hgM2FVUY_zUKzhh31LpbbDI{Hgyp z1914M%Kb|x>EAPt;NOq|m>|16j4E7!Vd4Lm0r=!Hv=kVCGiEteC?BFZVFPgA;}KOT z*d+Ec_{)T?d zM5|3ETF=Px8#awahsIqDTBidozknYZ2Eg5NLm#qg5uzy#I^@lv9EFu#172oi@K?M5 z)y7h8YLHvb)xhHm5cr6*QdoU0e7TnK_{R z;Iv)FwLTLCI#++Am9#(S9Tn4v12=mBfyHJVY#q1})10h6e2Enb7Xs=4c)>_x8u<;& zcHu;6t)H}pv8X+K$cQL5$XX%$JQ6V6hnN7(;cyK6o%vC4y7F{m${FJZuyk2bCeBJIyTh<|N}^Aki$Beea=5a&=6q=nd1M|L-+w)hIvw_VNip5F+>^26+Dcv>X3g zHTw@Dn<|Qb7sdXs1D6yN?U3lgbsAJfs7Z|bqxDYBemohFGd!0*GXhb3t{@P_$K-cH zQAqpiG5g6u6hYlcQ~0(3T_+(Y8&1FA28DJOw`EHa0kJk^#D9oyVuRNUXE+I4+%~N~BU1{A0&C zk^0noObNNPh1ILDRQ^9Zllw{x8u2hVC6wEKUHRAQwAx*txBA~Xn1?Y^nkV#w+?7KN`5=q zY8L09t?F2zZS0O8lHFBuN&&Mb; z4}w3Dp_7+H+b9*k<*aC;YxurJ#u$vwY`A0YhOaXX&%t2tkL5>535khB;Kh5KjUn)l zcBWu?oKg494}A-cAnk~}HLx5u@RiG-@a7b=ko}kBpBMn=^;X`kqt^t1{A3UQwaWGz zqL~q2?7u17^+YOAwrhu?exPgz-t7c(o%l{sfh@Tr5XfhFy2dEmqw?E%D8DSsA&~2i zW=pY^yIX;LpxO!KHw5Mca-_+ZK+t#Z`{BZ9rRw%wGwRSp(pC(L~qa6AO&YkArs?QMO`YmOTI_ z5o9Mb7i5pTzqifNa7#4NHGGI|cshh!HF7juWEzg6;miT>r=CcgyogE`^)sXU zjCCNJBbt+xjj+j7Uq~#Juc!P;^}wIt&BJc^O5)8!36SfXhs8(=E2%7)nb#k<2SR3g zv2IP9`WC+Mh}P4`OTn^Xi|igVwnionJU})N$AcBNPq0-7IoL=ds0ex(Y*puVB*v<1 zJT-ClSqS)H-L)*~$CEtz=6AXUK&yB_{WV0`qo*1`Fba)g8Gww~bkxWArWg zuB~u1DsZ7O`N{vbJLBr3R2-hAJBSAF{tN$Vxb zegv1t+tC}LS18nV(6NclVZC3^BMPO^leE9@Elqr<=4Z@=ex_kEMxgR?T;GN7_2I2n zC!>|ugPY2A-$y04#v^RcS8VZC82*G?V%RK?(p{5e{&hN?6UMKH<_OlqNv0ShURmLXw#9tBPSBY-3fN1P4ob zc|HwjC_E|F=cU!LT(_XktECxGNa&{#zq5xE+Fsh9J&)pI5JPr}W-Iz>|2C5?bRv5X z%~o!t{qd5WF%P@!P__^ox|3C_F4sD>I+uGKl-;~!7W;1Y!zVkNGPD=BR3#&wi6a{s z4=ff|A5BRyyhp7k#rA1eaIbKx(XYh$)(+P~wsCS!MpA^aPW(zRBKjFhUB6ttb_q_jl>oK{NL z+ww+Ai&g5jo8+YQB`u#P8Dacq|3v&#+CrUHOt4s=m)7MJ$Ng^+aTG}Cyry4;eyNDh z1^Q{lZ~M7X>6G^`tTG~A^`ct!Nc{R=2NPoK(~egBW?bdO@5^%Jg~hM1`UOr&(uvt% z0e3&gcOUo!#x$g+>oL|kmUEII-SYctz@+%B^ar(UpVv2898{94SiKyTUPmPl z?MPN~MRFmdc95pSZ~_m{)}s*~$r#JVz?E%_(eu3|**qUQl&+KF=2gm*H;Ed>Y!d!> zm5nfA$;8d!B;Emy7lgt|e7Q84m=+|(V{&C4`=t(EnmO@Pah|2f9CaOcJ2K_iO%L9s zqx*`Mc+y^KQmn6+BFw&?;N+#)CLZSvH3R4EEOpl=T@H3*r<`p8O&8#1mC)y`6QzS_ zu-HN9D@q6dho5tU)W+cFQuDKAm3Ah1Vo!69JJ{lme!@LKDHfKPDYpqFnpo7+KfvWS zZfL@tcuaLhpQsq~a_$opD3}j5s6oXcxhkqyi`0ziZYxS+P;qxw%ooB!cx=s7cTrF~ z$Oy^BT|o(=PgxNfIsEmKq{1m}$)Qwi`3-88yx4(vmH<(_C;U$eEKQ;kB9?Dyl_sWQ zub2w3kw1RQM6Qa?CCUH8jX#P7Z?~}s$)$#W_Qs!!t1UK11lWugY>2n=QSdHucyAw+ z?CnaDOUAZ;GX*el{!O?beNe&0F-3GqNd-W`(me8npJePe!^$IQeXpu$?o?S%lA(azMD7ApDiOt%{Z<_APO$vKB*+ zq(%U>%i$vU`|%@d7pKIK8mZIC22LI`9Yj6M;I3Pmt%gLVnH~{Ar!B;}lWz&w6f|At#>_bq8BLs|g@@pe6qawsF;WFp7hvnc`GR#=4m=7Pwzzc)G3TS)LA)ybPWW-dA|qcRS0|Eyp>Yp3MF?JVh7n0{=D% zz!D2J={QBd9?5W+``VJR&WK&GOTYB&kT!{zC3$-0(>uK+`JoA#BtMY18RdCtTt(4Z zVqus8z5dTau=RsSK}E~(C}>M>D3~)idhtr@4^cB{h4!$gLJVG#QOI(-y(uJ|ejuZe zWqHe!gao@Y8xCX+L-}!6%4OQ`aB6s3U&*9XGC*47?hueBK)GK=A&cBNQ%I0&n^DLj zH_#%tLvG}bG00V%LLxHcW_M;zUPP-WK|Qysg*kZ<=H%;9VZD7b^rNIo!sLZBX(f$s z7TjN_Gwmig=Cq(2Y4zsxkUw?Z@F&ZjrX(|!XvQ!)59)(zvbc43A%$6z?Ok!WhaB@0 zUgrG{%IWm^HAFYn8dORniIMmt3NGIOz~ofHz)PIkmY*n)NB)KkuTGm!Nil7?5+g5K zX8t@F0Du>(wC(jWtB`8w)2qK%{G?UH|MXKDMeZyA$ie3q_hOaU!|kkoUT|3n$Q9`S zkWhA_-hdl8U!XUd&tvhKPV~hW2*)#jRq`7*Ki5eG!zP`MF7Q#6p7ZL?>>WL%{|W%$ z@}D%7iZD~tD*@=3AXYB^s%XRBz4Wel#ne;~+dO4_fz zL_XPp+Eeq1Bmtb&*5&AX3pV2~7<&VHTK1)tNu?|;XelfSB@&fSj1>eDWAI1%SH5wT zHojeh?=zx}OEsk^+K0Fx@{nrew~E5Ntpzs`v3^ewJ)0~29TLFT5e9GJ(FfEN03fLA zv8aJjT;SE|AJdw+dx_enO-m9dB72)qt?!RvEqVbK&ReqbibKXymY#C*b6!I^Xb*uO zSNQrTF@#^*w_O1rGAs0XDao)vg`zo2k#AFQenuMJJh~s;YSAqS)hfwCcel-;`)KhW zqx(0&|08s_4A7m2%hK{(KNhTFq)#bN)fqb3(}oY9Z6aVJ%JwO2;fg7(ntZ_f*c}$_ z-~)p0kIy8K3`M#9WhzQxVk-$lI92F!6e(pFDi&$KJ6EOHYq-z)nGiO$m1x0e4ORO? zzX%ZqcCoE1iTlHOby_U8hLA@0K~Y-{ue6Sl&t@SU>+_PEL*?HFyRs;G9f31a@(}Ep zS0`HRC1`@vY#m1S4wjcU^0<(the{A*0@qQKFw>FVO5WTd;a)gJ5CxfzY}Z-h=1{dB>qGP&pK+ zR`U)htu4`X+f9c(YDVpiaG(&YZn+Os5p1+K-^7Y`>xdv-WC>t9VjpI0>p?+=HUB)n z7oK_8_No8~J=kn$ot9Co(WD;(bWyC{d>-hqSF|i|>e`@K_R`?xe_?XkfAl2GW6tHr zZs``K;5=67zWjK3f)3j8ZA7VMf)El|BD(0!Rq}lN++ok37uWI+LqlMZ#uD zuyb?OE|+S8Rn)G`St)kqchFY&;tc))bODPe?D(bf`*|aa;VM`sc5l+~r|R-ZSY)(4 z;|pYD8j({#H&rjj`2)%;;%Wb+ZwbY5>nQycpx|XU{j`05S6-$IQCNL1c-b;FBEcgK zue$@out3^2-}xre=4<+C+k9R>ZJS-uW&p(U1b6)W0wCFP_{}a%PW!v{g&cm&4^t)U zUbt>>BR|5@PE(fL@%ml7_edMbYkfW5C{>PV6Vs)uC#OwTN^Tam$@6Bp8YRinRju7w z-NQ9ZrK=Fo-yxnFv?>JTW|T$_uU0Bug&&MKv9)qcQ%tLHlzJ@~|59)VqM(rWPum?0 zWz)WTXC|lpJ?Tw`%@-!OZ!?e8BYaTLxR@&o$%ge3HJY;)f0A`;U>k@-$e1|oe=)n=obE(hc>L8@{M5?C^z^+TwM!5R)`_19f z7bpw~>jW^yXlgtP`BF`l*E@o;muo6tsQ?y|3EZCN7Nzvmyw}e=_ zMZC-x%lz_<7nxqe(Pg|vgKLBxngs^UtaYFu>@ai=`H&Pn$?#`PNX*$ydAiORW?xYlMi`0~A6z z2ZE#7p`5)Z24ROczZ7h=0mNtTr)@D4&)J$Mn4uT)O(Y>XLEKyYSMkZ^<^Bd=}cDz?pys#g9Y4h-qJf~v-$o#`hEw3UV zgH%$wv+xCJwMKW4*d`O)8G?c(Y(sah1l5F3)!o4fAmRP?@ zs$pL2txEO?UfNp3wig;G;)pIRV-I!uR7!|xXhaA>C)XDs)T%PC!jYJZ#=~L^87$~< zwv)`C4@3D>Vmp)qEseIYe5=e4JjcoW>nQBiksMSR2~MlIU&!!YD$!11EVVG?8zZTx zPr=k+F?@=&i6D@D{7cT>nx1~-_vHW+6OfvP+J9{~tROJLbl{ZxE#Kh8a( zIqveR36fn}Pww)54o5!DFKJQUUW)$JJmq8BzgO}yhK)OSVEtJ2daFn$o#PbAgP&B{ zz~LaT;-JD8>Nq5LbA)^F)i@GZfyRAPyKmAr=L!=CK@uF3iyf0cT-yP0zQXDvWLs4` z&PWAUKjOlDk%nn|$~dBkhhN&&TLD1YZz$1P48o;MO1sq4^;(^WJ-;9CHWbM%t;aJW zv9~(mc_lm}(rB@E*4)0KF?k`+G7RMMS%VmK+l$_ukwC70asv#WL>$50KAYYF)Y3*i ze$o-SO0k#XZ-W=#&r$)q=yi;IaOEgTks-0~8_jYVU9geigC8h9byP}#5sg(CpM9qe z-dS+I(uuan=g^cEspYSh#e9L!LdRK=x6r0)x0m<`#jBe0w#H@f{E2lr{F_V^;a}Jx zcC1|aS6Dq4kdVSo*GmBTUb7%$M>FZ6--hBs!<$hS4fX&KirdU#L9Yd=Qzez#3~af> zC53?qft$2}h?Rep`a-hdRfGYR$VZ@f=bQ*#0))^;xxr=Z{Sa$xZa1HY>?fZzUwU(S zVfEv*S4MtQwe2vI!L3qKTujvc51w{Ym?4vbxQ-Oz#U23Iu_g!GqO)mTe_ zo;-a<4()=C_vjL#Fi2e_TOvi0TRtaCE!Am%XIN;OVOld!{{3S!Jf1$!up#R6OjV!f z>oe3MWADIt{=$9bo0dDh?(XzjEM}HoU%9Ihgo#Ibb!t>)^irAJ;ydbeMHh65Ru4bZ zw%zA&?6Le9khAe$BHOC7VcE`aRoTuLQ)^g`{mLg}F89eFcht}9X%KZER(x!Knrk%A zDf)xHVb`jG5rJNQLQp-2IMkX}mTDY9E9$F(o_jp-9&UQkF%y{7h%mu_St_aQblbhO zO2qkzL%3byPj>HhXKDA&)b8E#blbhZjn(d5^q>E|d#CUGN8P)3>mPLQfmm@r81k%otw|?;@5)@yI#8+=~+7@x>@di6AGw_L+MDhNUv?-&(O5+F$ruX+K?U z{}4l7;S(f;W>LwfIf}#^1d;<>weVe72N>=fi z$U;a@R0!kTYibWBFWk&HH*66ys-!{g>aa9#Ei_BA*#R^mJVd7b6VlBhIeTv)g>`~= zN(Mh;l6PVNBYGa`eHe_EH}H>(~!p>fd80*-2E9KOAN>xGtz|v0I?h%Jx%LKQ*H#x z#m(gEjEp)Wyr^@J)=}s1po~J6(7#C`&~Plg#~e$J7i_IG+;?brZ-!OEZYMDpL5R=^ zF-+GEF_kWgRI*K;-#%xh-#9e~+J~c(|2;n@FJdGk8gbMJ2RDWx!a?E1i%0xdpNUVV z;`qQ30BUaE+RAP}iO8VuJTB!`3ZrHrrX_8ul&(;9|DcJz|&gn>p*-nZ_@0GOE*#Oum9c0@U zHon5LLDdQJSx1mARm$y(46yqyFw~-Y#^qfzHDgCy&b>MQHr~d({~wyMWvk(0fJ5N;DK}SpOOb?jw&8@@@FCr4hAbGh-J{HM3 zBwE?KUyx^}j%MewotcZ5fRtJV=5!dR2R?n7JCEyr5!7WQ< zUfreIA+v=}p=kf7I^=mpYKrjG*|bJXH!k;PL<*+;FUm-unl{_8Ao{yI@Q)xG8;$FLaQGqk z8^wwSoDITT!f6fZ9(oeJJaIF3+Cz9Ln1{k!N=a!wVquS*?7~~CVfq~7<$3SSkZ$n> z4swGOE^CatknTvqOOkW`Ai8|~k zks*5`J?kq6sAt`UV`nP1v@iL=*Vwy{=C8DW!&-XQIyRYkWT!T&K1a-l6KkFB0VVF| z=?E+@Lm*gI9CkDf{6!nM&^7S&C~crC8webWC2?WtS`odpKRAZZFlY3E(-z*W8LS9f zM!xl82kguV(k=5l07^K$*+B0#1{3O=Fy>@Jl`Om~+;a4WxgPu9f4*cDNA!1|Z_MOZPgEk3h-$*;vZz1{uyyp>s85JJ zWIectEIIL~cybWVY?U<+)HgfVdvjkA@hDy2*Q?|~0Wf>LSHrUg1HH25I2>0GwPf?z zns%EeeuT+Qn#jreF}$wY*P|!AsuoqEsp-jy)6i5+vaGgmvb36U#!9TIaWf}iVZ=?0 z#m`K?laICm^u)(uNbI2mE)hvJWIS;*y6bVcynr#?ZIvvnzJp$aR1Tgp{X9+~4W2UH zrN4YPwhoG$r%c})ASqavl1HG#@A>G8RZmcT(*u`>EPLpjx@2 z#H#(h=c!iSx`t{`E|*NC#Xbxm8Q-nMKLvMeIw)`P`hyn~-XM<+E9WuE(RJie{e-W) z*jUz;>-Bqf%L;Z=N*}EqtliP<2*qd&6zTWi+B}SGw{xIK@HMqik;h+P5r(YK3D=y8 zWGbp<8s-FFvEU~IliyIFzJxl9EJQo$jmPO3S0KDy+U(`^DxH>j2CZU8Fga*Q`r;%g zv?bzlc4KPLZ2gw(E=VHc9l`e;@6+~VoWgE+cY8eTs{%_&ZTOv9c&0oI&6qk3M^a8m z+;T=)n)o;p%Yv6u?6sOW6IEts?(3Mq{j-YJ@M9KiXH`^#Yz{vPhoB_~RInQ)&MV;F`z18}kbrmBJRlvgnjxbYWx zd4eDT=6EwCDWz7elO&6S(yX?XYz%A1{bClg)a)2=S}gy&$cHA%+r#22R_tN3=2`^x zIVt7FOG`u5T))y}^K8lA-t{f^uL8hYgWr-S8tItX4$ z3>Fp0cYVueYM&9{Nc-2z)=F;6(R&yyT)nGD;J$JT>mgpK^&t(LEqa?NdbSj$IFfrV zt`Y)zp(%N)AgMcql6FOG*)+j4Q>vajN9_1k+BaOTV;`xHyI(wo(H&U+s~L6Gwa2$; z&dG%uif)I}u+`yug$Z?w6i*Y*I+tr|G!o-Ez{rI;?u(! z(J#ea@3ZNBdJX!xfuSA22H3+Lg0HIeZ3+`N0IC?N^#{o#)mQHv{+hV0|IsQ{=+;u( z6h~LcYDwG08;46B8aVVtM4(sv26GHHib0dkd-XK<1D!L9J%M7$&MgapMHsRC!o<@| zGQ=Gev{+P-{)Mi<;00{85_lLCiVB_zWx)R{65F(R%odn1xjxhETkB#l}{DTK!IHWfNlhlC(McU%NA>Wiqw1ahX~D@<&Q&8NWL z4HP&3%z@%;87R!)AtS#v?&J3kA@Zp>IUz){EW;!$6Q~ywx%T7Pbr6Tp^J2m6pWLq+ zr!h-5EX5otIcJf~l#&%HR3FW^bmo$OFdttHw}WQ) zBjkB?{1=#!uDBO3aX+~aitonDVsZL7#qedtaPAQn!=Gh~4I-mo0K;HwN%hY69--3w~4KZWd!WOPRyCY}=5(TvmP+g>Ip?L+J*I)M9ur0)x>ua~7suB?d* z%0SaZa95u-#6yI-}IOEo_B(>F{Z6(nA%g-xG+j{vgzs#$1i3?*bQ0jWhn) zA+I*lBfn<%$gk*;U(qAK78M-34n6Yg*((-(vElDc_~-IQ|EB&hts4%Geewf3sQscZ zem$TO=oh2;*8NyzA<`HB%6Xj!v?BP*`arVYh}70}y=-b&{&!)9 z<-gta*Nv4S+_HX`H0w~#@qBzHJ?WDWnzg>a20U#cJ8X{*gqLtNe&-C=xQ5{ zoqHGiWYo@;FvbEhqYSdW1>C+tSW76z?*XzG%;{ghJJ_!jw6s6^ZvJ*V28*?%jq~01 z290(d#|RYCRN)5qPmmjF43sTzL8^n;Az2`hfj~=jI7^q$|AR&A+Sbcm1x;=E2wK^C zqDwV^x6q*5UW5&5cjt$RH}20ASp^t{L8z4FDPuSn&(2Q*hRl9)l0=z+<36&GrkJYHuo` z|5nw&fAcB|yaay$)gS5h1%3AuLZkS!{6FzQDuVLsDE%!x{xs|##7eBVCs$GEPY&ml zK;@J4@O$2^WR2OO&G`QwOLjq@ru}_x7wt8?V*y34@Vww0sU@X)}=6XZ|r#YzyA*d+!arphf0^LU+3Kf}>*6lpLvCSUDM zCE4=EZDMb%kiMdyDo%K>Q=_M$3yUso9qnvFX+0r42OSUTwF-De6zu3I*Z~Bat@2-e zqbk2Eb};xK@FQ~O#op=`R!zOp&Bx)Jo^conzNStOc$>M9tW7QZi1%0O7rszg3_lnH z;a{XwY(1SE;Qrb!U6`6N->4`uuzDs-e`;9Sv#dGpG10 z?{59<(@)izK>H6!2T*g39?t48M{)1;o>cJwZ&_&i_hAaLTp|9xpM}`PKz!x>Oo-d< z+9eODYBQbb@q@N&Hlb&e5Da9f_x|M39MgqMJ9Oh{UU}!9KOXY+a$I@G zo(^uqttTVGQQdGy=-g=txQ=KD*^8xJYPU?%NB)Iu4lkDunPNr#LRQg7Gi6azzIC~D z3n5*+8-ELmZ{h+i%o(K=mTyXRs^BDHn-qRo3y;>qlWbx67N4Wwwo}MdDSV3*E^EZ# z4KO?ba}F4vyhADa}(%aewE0?#_uUzVECas0n9KoTkK@Q* zjy-Aba25@|ZL=K=!eV}eu4)ce9ps*!CY4SdE#?%X)3e2ssgSie{{%sl#-pGX?nsVg zqRoAdkW^a2mPP8K_mt{*6}P8GK@V3r(xer7rm4_hBDN(g^ygoX?i2fdm_U+XyK8zuzah~-+Quy%=4hpvn-e9 z6#4^?4}|{xS%Qr=0RCJQ68e`kPccP*nY>1J-VDuCk`ccg!+IG)-_k5X|G{D_^wYaL zq5mu&?Rx44$f8u~H`D0UMbYF>%rt7?`P7?Ev{lx|-$yqC@?WDv z$W6{DWSRTADI~}Z%P3^I{IC=Pa+f@p6S--hDROUa3F~)xBVu28`Vv$VMQPMC5#r9%N>VhjbhSp!J!r^W~DKobDG3LKxZ3B2zW#NMMP0n z14@_DIAWE~qsU{yN6q5X3r$-Z&D0!mO1i#IS!cnt|M*WRC1BG2TYc3)fpW}bK+|D@ z20l35DXmS?V`F9sh~h8QAAB)K6q|=BjTXT^g=Be&{8r1Q$*>%#3OD_{A{s9N))PFP z+e-J;a@89&SEnB}ELBxHH{aFnRXTV4`~ISO>4}-(?5X{f$6oB0QYuy2|Mn(k!VZb@ z&onccJzfKyNi3`AawcdO6Zi@Jal;DUuguU|qlDHtI1k*3pg6NgU;*JtrckV_G%1C3XW#Ww+_2U1e^Z$l){uxYmysqK}EK&`NC0wNgn7H?DC)v458p=l)DOIQFndYQS8IH|qZHb4mfCJ{JW7ME< zio635r0IGG8U3%ONu8s zp@;oeR)k6lJL*5(HBU@iX0#$a!^odtwMY1n4E72uU&Q;IwX@Tn+qBy>kSwP;MAhV5 zP2HxhPJ2da;UOeR*CM5`e5-r#H>Vue{2O^`xsjbhnU>Q){M9mnu@tK( zxSwS_LaTK=D-;!j)m>!GCZk8kA8pD;`g#2R8L2tsBx`F-^%D$O88~L`VetFbAu5JL zq(H4l1Qoww5k-OeqI?lum|Tg(D43!@0+V?v=nyXTVgfBv?M?-KnwHdZq_!NwAv)#m z+34|>u4eU6p7o%00djZkD>YQk>LQtf=gyQK+}S3z>a>`V3(0SROTvIs0-c28ha*uA z3!1U1$5Z}z4_UY4O7JV~H&13mhLtr@n849MJ5VL#}z>A;MC7q`L zIHS*oy=%K(mz~7wc`2chBNMjw<`UBrfev@2v7DK>@{#CVMLSE;-cnTd6a2D=I`vzr zQ$MDYayk{Ok$sQwHx_`7sA$c3ha;-&GpcIriDPrQT6zli8+ir?GG30)DIDFECfB)( z9o35_a{;+XfbbGpLhx53#vl#r;AQuGiQ=-vhyGG2A%(w#@&CN6LtJ?ejuFc5D*O3kd(p<4jDEkI8EQ zNF4IPuE;cIL>6XRZlm6ra%Q-)ga~_Iet%bNR}sDS?2x>ca;!Qt59-TJTef?odApt| z0Or+fpNCDGu7uzcX`)LOR?gJnTnaK7(-{)-W*j}kS<@1!lxN|RqD;BPcANXxGj7LyP z)+9EzPqZN3uSBZK(D;1Lisg2uj3!uSJO%-wZi!4?I5>1a+G@(XN2;d0hILJi$Cj{N z;Jp}+CcE{vY0Go1w;k7xm0;6jqdO`$+4>@jAG74EFmq{TYc^k&c9AUS4 z%M{6VKPr;iiIxus?7$|nV+_@%)+?q~XsKgEU6eF&JU~SsgRPMCUPd9S@Lj?rJ)Kd= zBJ~S)e*&qM{`~t%(pRm!yU2*+&0))KIK$A5T5N&EC+dyysk|7jGH1eyx%1A z5dFhwpB?=hg6QAOtau8J4(OsP{%WYZst0{Lj~NmeE3DoDetZ-}b)l;6T)6;=ct4qAu%2g)D7sy((@FL|p>W zMoJSJY+~al%Q6zLP}FblCCP7g2r-V=OuH-ymLwM>oAz6p>awLI*n{jm1SDhAy{~e2 zv2AQP;>(EVH0rnL{y(td!O`bZj6Su15n12+JPwdq#nBq%aU8V zAHzfk?QS@s=;NKG42T@m1VS5)k(-WW3`h+64(_b};TD+X;WNIi^$$Onou_Gk%NIen zi7|dMiabL@K9S+XF+BBW7l#o4X+dxTu2N5}Vf*Cq&X(WiaRjq9 zQ7{^)nGE8hLx`CqZ;NEGZcij3+0;vk2xwgMYHT!Wc@iqCBw$Qbs;)i8u_s3l#N-Ms z0ha`8q^Y52k)Uu7EM1({17BZ{LZ$~EALyE}JurPqs0ZK_lLG>sTZE~H_&>zs)e<(9 zC>Q={(xsxl;@h=6L%j(OtS`X+Rp56*~V`nr3%T*`c zhIZNwK*0JNWryWhk+jXAj#x|;{R1f+j;cz7f2ASm*JVOdBS^AI!vO_hPSc~^l^%== z%5}2>wtOE#wa0apq}nJ+y4Q9jDKxQY9G?Xk#ZBVTRl5R;Y3Qi0gzQHB7Ae^qZBxRG z{nv_V|Ml%C?%Zo{Q!bGdIV<^k2O&348SD2yg=KM6NDXoyTriA7vtC0H@^M8X|DD4D zDvoyrojMd}GGpxFu!(1q2tuqZ7&zvTQgwUXcTgNt}l zM&b%49ug!<1FtZ#OGe^jObkx+Yx5_t`D{n^Q#csJbO#I${@eVB_zQi`(sQ;|Yf9j` z%}q{xJ~?Q1vTRmgn9aV)vWLTN0nW^(OWy=Fc`e-U{%R#e-2YTOrq}xDX+xaAgxTk7 zJ$U`t2RG(|qeX1L*WT=WN+s)3xj8)2Z4MRcXbM#=6!q5ubP2?w$h+=guWY6_XqE>K z;t4%seU|n=9jTT6_rH8nrT>Ss_kgdeXx_&Y!M157npx7hH)m)E9V+mqGWAB0`f(RNExY!_85DVDw zTw||*h5z%+?Cv?|=HmPP{r$Wzxw|_%J3Bi&J3BkO2NT6BFX_dkXpo=pZ(AkTCUWw+Ws1;(;P+SLkZ3E-OZgkpBMf|Mm=(kEOFfiXqkV_fK(tMV z#TkAqq-rLea3l^+IR3E|&?&(qA{_Kb@+3asfDi^_?kFH{c+LYAyl$MTdF~#}XXvP_ z9gWeG*l(|eyh1t0P~Qo&uha%lQ`cv3Fj+T~Kt(mBfD>?V`cMsesD;Et1N~YsXt~Gn zkLaelmBo1AGYSFDSHGy!Wg_lpa?EP)<=@H%J)FI7I7g7dO`_d1m5p)&Bnh!POR84w z0J3B?+KZ?7?%UcE1yT;!^k8XVi91+YMF&kVVWqA@dZaRreyn2s44l3BP71V;&Yci6#Hb+7T?c8Hg$QJbtI6sA0TibXftV|aw)Ja^}2hNGw`v7%+MLJ zMn_yLxA%z|HBMPfl(Gj!T3R_ANMOl59w+HaIeNhRYovh^t84#Fjbu2t`^~ZWw3x_G zmVMQ$jTZQUgA0sK-|(9b2Im!pz!JfKrs*Iajv#@cD--dE77Sk!YYdn*wk?$zIxjke z8r8nYE<5MGfKG^IQzo~Jc$;MiIgN^Q`9T67JVXbMM$k6Eu*%W7VlwZh*45lp2BBOg z`)glzO0B>W3;Z5|ZF+|lCCN=|X67_(FR-Fa!JjC#x}q@G>9y}CEw;}o{=k(2wzu)H zPL_?LCTV8)<=;xctBmFDBgt`E+{7l+abfV*37Y9A5^FezYZpR#BUd{0w>P8oee-2rd3Rgj+t@Mla2z*AhMNu*&nB ze-6Yji1OT(*B$Uqo^-QC(CBE&y&OvEq6bmUe4;n>|9>lIGSgVitLlw%!GIOFes}el z=!oKeBzK@jo>YK#Dxz4(SpRey$B6=@n3BDX5KVN4z7GquSeLIFXg_gxnE8}Lp)3-} z<6QOeA!I!vz4Gt2a5DJL9m2e1hcWCsE-VlkY>-OX;76{gUiqUTjvFF4I6m;As0?l^ zn;pSeCrPqUifvIRJyXkNBhQQ@Ek4HZsPlgQk*A)Q=btTeBd@KgCqZPGWhtr zD6=9^m2^MhwdQr3v`8i1JJ=rERQYXT0np0{k4n`0?@=OEoXoapD>{!<9qUGOitv{L z2m{}skJ?qG^)#1r6Y-DR6}ky`b6g_aMFgo08U#}$x;+*64Y7H{Sv=@!IKCYS}WWAxU`5DRG2nH6^b_1{gYP_SR3 z=Q%@pBr2oGUbZf|!~|0T$B!#d7AU!^OD6o{ z)W&7=!3$r$%MLZePezEEnaBE0&FsCVQyYgVyojyWB*gk9-)+JE$WEXguQ#Ehh%Y|g zCfc!lVOZ|*bP6vFsM<`*AA#=w!tDjM%Y=1By9h!ss^6ueT?8?bJ84qzAi0?)g?c2< z+gk;z+DxW@WO+5~G`@Et#d*r+(5FaXVxL>AvRUzmQ#J?iG)})wAKy^FB^{)}aawmB z(4$Y1VVbeATQKgu)o!Q{Vx*a6p0So>B+r{9%$Xw0Z<;25T3U4|*oW}_=oz1ZywK9x zmK`&e6h9?izeRi@-IjaL*g~2ViltS?*LASOjz(}cGyTLirf-nFD-9&#{=>|(nCX?j zBOMonQ*S|z6`rVhw)q8Nfh>*Z8g9MM_0B85A;fWE1P4ZPz&HY=g%=3Z=LT4QqiE2x z3yk>xFbF_V@&6I5i&|nLCVt6nKRWThTrSyL@n3G?jrdoHc$Vx_zBI5R?X97)ivMK$Ogw~(hBl}d&D*5URo@(8Z5X*it_~d>c>Tp&ug@T z-1|2t$YbSJhDw;qvz+tx!b>Z5l@#^o!c!Mf2x;{#47Qvs=9?*(m>RPVYWc3GuaB_G zM^FI^T~Y2Q{9{JTYhrHZoz$$)*T5AM9^O1byoLg|iG7kD{|sc$%v2GoHJ;=y_^pe(-pkq^k9AhvdlYQGt$1fL=No*wH?9>!}H&jj0>o}49o6DW1 zxR^WF!oq$cmo96c&Qo0cnFDOeBWs@9;tcEYTh zHNA^04T+oEsRVgd>-0^ydS`>G+ZMp*^BiYw`~IjJ@%n74t`%?Sb19#1PRcx*0a081cl~@W|Il9*!7=bL3fyDRI zXLGc*zllC3vsyzvh;wf3Xk=PsBeS(*n6&9sVw|Zmv(zEa%FEH;b23=OJdko${IR>s zP*Qlngsp7P8hLnzgvsB=<*x|yF|a)?(oAEKp3Q65yCC73_(Ge|5+32ZlJCNjxwSn} z5)#>)=)k9EW=RyKR+eQ6nOS~*&34De^uF_uEZ7RU+*IFjVVLPpk0lWH4vsm;!<-I9kaA&0hh9AdnWBThdsoekF6 z%8f`WQB4SRrjkplm$ zz-4GafF*5?SNxJgzjnyKZYA;|XcCu76#(CA1y>9B|5klOI_&YoX6K?Cep*|?{->8L z*q{eoDb_M2IU5{h%BHaFD<1#Z5EVr5NmTWz9@)Mh1W9`YM-#B}6TRDW1`DxCV z8P_*0oLqJsLXIDFKpw}tTfRg%{@s_3Dev%X+;N=2Q~4aP`rUE-K?OD(XRJX1j&})% zbF9GUaeS|W9AE377{?z!C&ux=wvTZ9MlG`(Uuw#P;}>d~^c4dzTgvh{{_;J-@h9pn z$Ir_-jz3EoQGxc7UAX5LC}#&o ztg=CMg5&4-O5d4dhudgMqq?)2)*M-)bmxU{eTKc9JJc<9s$Ob%IxoY5PG3IB4GT)~ z;&n}hE!8_hNJWr6TLRK`Sx3 zB=?>X-%r{_I0q92%eXGWm*)Xl{WaSFiT)av2W02dJpx4k_xZBp% z&FzPW6)LqB`dI}_tx-Sh`5uw?^=!MM;6dtX$AoG>!JP!@zd4#IA$7>y5;3M7yKHws zo#|n*$op{C6AzC)ZKmCK`Bjn3rDjS^J2jFy(PW-5sz9&J=K{VS8dfm7;ziemT`@C1 z%{{jvfb4Krr|Alc9|4SyQ^=lE~a z6#gsj%&1p^;S%aea*A^OZDrMBQ!el3gTy1b79Y-U-wRBzzNiI|Ll0L6TM^6izu&K( zIuV!H_v7LJ6P!6NuG{jb=^$z zqo}4U?h^7>dqP6d@RjMMNY(vZT>sA4&Z)X9%8F{%!l7YVdty3-sE8lX@@E!Nr)OqK z-+~1vGwL%$C$Rzs9G@-_bUzj&q$fmI33OEQFiiLch1|9Fd>Jl1!R?|4aRIDi;O!_d5Zg1J3`su1Wj7u zSWIoB!ba_~LJeb;Z3Vb+rPKj|-xVSkt{Nd{vpC_4=BpUMw%RzhvRV)Hdo;F%5ERJ8O7@A?6OWK&8V>r8)|C z-ig|-EQ|Y`v8?bC0hSfU<3?3KmL*kvIgsNJmi<(DDE!?$Ep&VbBe5xrcm5q zbUA6^Be6nphe6t|d!)Jx%ckwRnezzpRBZ(zXHLD_wN8G$!zeKoQEoS)j!NfNUu~E&~xE4f_8r@WjgL9d-9bv z`UIt~Ce2UExHKBRs0o-%R>ImeLpR6$04^3aTpJ;DTdY9>el8v^W=~uW9t2NSO{lKz3*xxP>2ErF?S3KvygmvU%WpLF=TLR zr)_(pNkkvLa((nwVt0RnH#AV?^1rBME0@1i!Cg5ro~>yRnui*`AP}=u;n^i(-mR) z;#j#(*mUo(d^*Z&XOhMunI}qoHkgi=F)dx_@0!OJ7v;>ho*-C=DzNo758|DGQCG+I zM?Enh;@D0~8|jGv7H6oWeX+sduC80)yn&-+BBV!=1NiE)g_ktoiN-J4;B)5??4$72 z3jc_Om$aX5RrqJ$cKEvpyiel~wu9mmu>LRbl6glb_bq|A1qBnj-iJ3*5zHd(;r)sA zb)gqTDBf6$m3-{&Z84ie@k(w+uxtu9a9>=C^A!ES>!>0Udz^2bgTKA&oP+x^tU~1j zex-{H!^f-#F?6}|eYMNiaapN^om?N|&^UYwFT)*)r6oPZa!zRTe99|IwcBD<&F2}o z9Rgnp{PJ7c9A|fVfaU&DVY!U#^fH;iQaec(m#Ga#{B(>Y6+ON;smY|_%O2efSH*r< zZq&dhc>99Buy>GF`MM0w)tG!ui}k{df2WYjE|Fe%P1;NCj2@Say5IG3Iu=!+7X$Lu zFGLEYb0B~BIQd)0$*(CR`FX>7eghFFPCVBR>*nvcVLk0pl$mL7Mk_s<1Atpa{DT&k zz77!F6^`dF=4*R+nFYD+SAe}%EZ^bc=|MM%sFhANf7&<#;HfH;@2+KKMp>!+Tp~r6+H|UM8jaV5!F5)TU~fa8j->_n$DkG9 zo>aY#uC2sTp5f%KA1f!5A_s};*DNP*c~d#L`B+4Zq*Le)^g&UMhwj<*V3TYgX<1_5 zOJu(J_%dgu&A2jgjx3hfC6Gij6fX#A3kDhFYO~ zTg`F&nV{9QW#U58$NiGrY3I%XGN(Jr=mm?-)0R2E*B1a2?pXpRNM~ zbsbRdq!)pT0z=y@Mu5<9f@m6J#raa;mrtL^i74eS-br$diV~`#n&_=gv7xz=@#%hA z(PxA6HL0{@gI2t@C7Q^L>u4Mt8%^}!Le)gHYoQ1}m~AytQYgs=w~nSJszP@#GDW$& zL=zojl6Wo130EzOapjcU*QNEb?x2aQEul@`TDNeF7=Wr$BaGjTtD9u1;7MkWZKXD7 z8vBY7a0Z?X%2+y|jKaG1_Ih{N*`rmNZR_5r2_VYl+V$V$J>dKbxC-m!NBnHFs>-+;;Ki zI>(zE9&c{>|7>oUHn%j^+;=hurT0^@a7Tt_qCC3c6mAYWfYZ8G*o~>W8{M`|lCVe~MpvkHH$C_#|n81YgDK@Esh-7aSt8(`@MbwYShG z$r!%2b5=uNWgOo`#kbVpdqD9?(g?hEYvoYwmVrA(tF@ZsQE{pc)?}?I-4n@ne$(un zS5@tJiQHGT4zj_AJD@vW`9WVhV_|zeuz_pqk;3Wgiddyj~` zkvRIwLT@B)G8J6O&^+sJ5W+kgsx-W`%+YW^U6F9{8v37;lRD!U$p#NmmPWCIlo}hs62GGS5X zSeb36OCCB~r%LL4RgM=^oD~Ls?Yw-eqke`#6rE2+ z27a*^N{do?muY{&R+-9o$9r&jVHp#6q7&|Ex$?oT>N_9!k~!qsyuZ-VNo_gTvToZd zs=y*%C@n%f5MHTtW|+9Ibcyl*pyu>>GE9|(Kk@{QvE55yaKl`Yqe@fS1?Wua(=-Hq z-<);l*S$qc-zb&1y*kRl)IyMnpb0bSu*XohB*=!D4lDg2wya=b~zrLfRJKsU@@SlXt%<3Rw|m$1C! zLBQLw@{R`qPlx5WyHSjf7Bqttj874MP6>Zb3x9IwDFAlkl5Ry#)btgz+uCAcyj=?U zhHNB_`1bpgaW!U-=KC^h{PGFYohdtAU0okHdhgA zZpjOdDJ?jx0)E@vg#Ba9eZ3;q+@k;4+%g_CgWOnimxs*_j5oJ^yt#4l=9U(2uA0bo z4}Y;~&WJ!Ct>2`~jc)DcSCcMlp^N0Jo@p8aQ#O;PC`Q?K)L-=O| z`r|bz+3HQT^oW#oA1vrN*&^ts!Igrfpo6-3RFl#hB=69q5RIg#$s*x4&Mle5{Y_%* zC$o6$$%y#Ew~41&JATW>YR7lmf}rJ>e&lTE5%BfsQ%)Q3%M1<;yIWdc&ne_47MNFB ze}T>_E0$Ya8A>UG?)>uarm|Jx#eJKjxeVi=ggAAM44I1>$n+D-1X8?l;~bC-EWD)c#4Z^z$DN`6sxw-o#!N7!za4jOq2Wx&k~$R#*8hdU7~PJCr6b>v zV=}>nUaW&&p#M@4$-nwYQt8SDLw-}uRBgob6D?M~2!E6mM|WO0nD0err=R%GQT7yV z(evb}oY8G|gGg92G>Mz>^N;3?FRlMroyvk6U8J({d>L)kLdSjKwJ zc##vOPp#2DtwiV9r_HfVL+dOv3SxT1f+`&*HSJJLfmbOq6!#*Dw-G_VEZK&5bM}}G z?!&1~?gSyq7Yr(9QT!utI*=8wH8EtkKAvPa{I|p z-A;J;2!oE^PIrYc`mK~lfJ45OBJ~s*9@apvE*Jw@qb|)1ek(E?fZw#7` zrixK)`rr3e>VE4E6(FHZN1rHy${Mse^}2(+r7k)K&^M7 ztM_17?{29V>9-w*NlsQa^cY-cHGPl(-!a#^ZS?-v9j6)JBw_1|4hd95jbb~WYJo$_ui9@j0< zeub^SnsV!2xn(uwMW+6RTAqp;C#CfbSdVj8;-AoIkTexe{TA9J_bnFGu*}ZpWjL^l z`f_ZYU8K$_1?xPsnmQ|Su-}+_4WrSqohw&UXRg$VJw)y{R!oG)~R#n)4OH46|DKsEmSRs54-mSo+fj64J)JW>^y!=*^pUlf|Hu*jC z@@q|g8S>E$J0tsF5htU3ii}Bs9;gz4eyhZkoIhF03VO**z|4H$d3E^ z_;$|!y{+GIPGZ_h+P2=ASFo)eJGN!tovHhFGE_xe@#Dzpb7C7l#qi_cOm1-IbMsQqmrDR;TA0SIyNzyITh@!*1F}q2HXy9nMgv}j ztkUNzYfZ%KA6#$3M(U*5%4QIT{!J9?Dl9z%rExOvKLK6LEFPR$Mxpub020j)hsejW zCmI&ni zZx8pZ`dfY!yy+_Zk*$NIv1gEQwvq+SG+brt@Z4pnf={X{{BR2|X{>Duf6sHy-%_ve zNrkVr@RGK#SC$;{u)}|hz!!YBa`0M(+%QXCP&W))25alL=ZsEkd)eUqFLZ&kH<-@Q zVkIBzpDC7pqV_;7R&L;XeNr5?eBhS3`2=zxaaGc~W%~2#ks7<#P-Wwza@yNbwzrb@ z{0e3prYbi_UMlcx-tDhCA0)4uiW|(*_0)FKD@)g^&(W*;k4o!*p!TpBalhj%hfW^K z^2^H~a(lTQ5TB=e4WWYsFAT~}rl0uxLEW4nvxu2q`B`(>FA<=_ah6A}%J4>CV{D;2 z(G*a3COS!_Z1CSzAjK=+HpH=Z1P56C(Y9^I>v!)T0F~|$w)IU-HD zdE9xD%)Z6Q}?rszT{rV z=$BMpw7xuE8EVBs^Z0HU3-IwM_gV~7NX!dZyfKNg!9FQ86B78zRxwG~MF~_5?o}nR z-U||h6xVeX*QD#(t7pi-Nl*1`;p+Ryb(yCF>G{lXU#$y;%<-R|L=9y6iHikNGJ7~k z9a726I>^&P$e-Z_)9NRNnV*k=H z!|i4(TatFO|FAopZ1tu&;HM8%S$xF8OWMiercXK9EmHWR4zvFc+^b#9>_5GrkdApa zHv2c)lJ(u}@1jYiD;pg5NnB=g>e&R{L6^{PJ!ml)WfqMlkxx z0GHOyjV}NXohF=#2*>HNbc=BGf@`sZaJ=_8YKU;WERZ4xtJbuT5#e~uK~4!F-zTJ3 zen6`mS;jx>$i7COYIJ0$*pZ5l>;)6u$R2y4&~HX|nuU*#Z2u?R$Zn_b9Y=OE2KpA( z>*p36*@;ibMs|Om35FxPize;JUiDFYWJ|T!j%>9Q=Z)+Mbc*5|o_*}du06?(>=6<} zVP`*`SfWV^e5hfL?Dtd|==915X8jf5$#`iCLpN5wMo1730?-^-kUb(m(2^e#q?ge5asDH|N}2k7$3i$WY< znR79t$DhaYtip8p59~rjO|)9!hzrv;6Pz%0y?`9IYGR&+j|3@ak)MuKs!n8Y1S-5s3P4O#QY=vn9Db5q7^^PQ|i9h$U z!Zh;^CroRML7D31$fF6@=q^$O!(DaWU@07;V5+w!%*EtjuL5LfyYe9Pzpr_ZAr=bo z)gW6QHBl3||El*)CI|TUO{M3yFNZ8*SIwGXUZc5j$!cj>WQR=Z7g~3>`#;byCQiev z3x(Z@P41$g&}7|sx=LeLnyfN?B8%s9vXkTD`RAQl0S5Atf5_tU6kn~?g?Hz@(NWVe z>tQjhl&Lv{OM@x*%q|Wm6_(xEVBK?wvZ+iau4)3sJoPCt@t3jy9R2ca!bQG*Tw4D; zLv){rh3HyQy9jS{#QcE<%S#``W$y4iIGy~64>oWdWVXIt9-JN6^8}9Zudr|#qWeS4 zHEgSYjrBI_h_luCeVfMIi?KRM)8wVu{Ghs&Nc{^=a*8L6dlXW!|$D1$CL#t~j-p|i#{zI%$(ZR7~ZfW3bQ%~o?Su$7P zf>I-cj$2_&lIfSm{O7j%7*{>2KXK2U)pG+)9qoeU>;bM$ylcEa6D8T|u=9kJP>214 zz{4ne3bBU;% zS%#e0zPd9}iP2Fd!0BrIkyTOBZeKmwcSgspqfo`|t4CRQncHqJbI5(p=r~>BRY#;p zTX;#kz09tmQM0GO7u;9hU(gnL`Jvdp`t%KDMb`GRK}%bFhE!^?RYem_v6Y1Fv{<>3 z4K9}A=xPN2*q9VKkQlMEwN19X+1Vx|)j?&rInMT0(w=xVo$(;v#(`%FH`%=NkA1z% z;#D#xmZ+N;V1`GOfQ{1i`2uu_&arOL&LCu~CcDu0enuDi3Ywi6?vl%-j+n#im`p#> z$yC5X|NHNN^vXv(>lXR}bfsoxcP?9dXJ6LZ&d5|Q)R{{-D|}z*EaWQ)KRR>BW#C=t zESREUJ61;&vx6XB2FY#&<$=zy%A}!=amEuk@K&-x#Jz&OlK$&BOaI@Pq?vxAmq1G9 z?^xwJm_+v$f_xK@YN@{ir>RaFB{d)k{csW;iW$r`8bQT9tt*p}dt%o9msR?0UNNeF~WdVwP%GTbVSQ2~Q7*%nk!EQ@$dD z-J-ZNm2$Mj()xR`^5$-fnSWO94+OnYtHpNv+SlXV-Y5^w_20m`{+Gn@Sw`$5aIm{* zFVcd2C1zjQ>Qh|xsLW=A<*$L9+zkcmT%K3QPSV*@=Xg^mZeFHbow(K8J1^hrgK@+K zCMV4>cgcgZZB_{!y19{dvyjz0BftcG6ut z&5M(JTppYqy?YIuW&dt@aCY=A5jb=!3Hvb52DPHP7h-y&-4&UIcut~P>}VnGon$t? zr*IZ5#9mCS-a`Bl%)S5{OFZVwl%iqvSS zm*y*#qNXIxBVWJdojRwZrm7CAR^UDsSkn3d?rm>(3h+7w-c^C!^ZkYfU0xH{YdN4PrXdWX5Q07tpHXF;ysd1uJggAv9AYAjc8 zofF~e_F87SI?j{{SJ%-p%heO5ERUl$F-Sd^p3M5jD9H($Z~uw10)>3 zJrBqd{n@L;1ikbK?6U%2MSHs+I)!=A^$dNkRFu6EH!u&SCGG}6DbI-F{mMKbOWauo zNQnCj=W9`=ZHXITiCd>IaeEr#{);6)+`8M^%Z`n!Q`_`>QWXW>K;-dmEb#s17^6hUSX{rn`EpKD5!}zem*Ajbb5{I-2ehxMtevys13a8+lw2pcjDb{1!hZF6 z_6Q$S8&V6o97lwP0u1PkkC8O>_B#;k>3R@9+kCEBRT27Xspjeru{T_&? z$_n?n3@&QG+CI-}F@3%Q7$n*a$eIl@^J4Rv?5XK`f6?6-^O7iZHdt`ef>pCW zTXAJ8{yDFeQ}Lu4qNN+Xx2cca^+Z&}MmDB4_(DML2K?iMUuWijsX99v42eF>&IbGA zTr97~zNir~J(M43;Jh-LiDAU|_~f{=gS+a{eH8a+)tEhZF(ILkY{uRp??Sf!iw%OO z?)mAH{OO~rbZ+u8Zs9~fyW2<`G9V?J?gPGq2^iBR{=~Re~z12S5k8DhjU@+>8z(>KhWJw$RTi@AeD$jk)K z2A5!t;3+lSxY;J8t#qoy)8Y0FGe_d?S8wz|0K$iskJyn&xwDm71!;mbTnBS9*Tz0$ zON_egzP|ruIs(s~aD=Zai{`le3weK+z#x2_5+Q#?fC*RG00E;UyGq?>Z-_T=%~wLM zBL*`Yye63jA(fBrP=LxWv&h8$8;ym7Cv;&H-ufKq`buHx&A6HXTa!e=9VjH?`?2uW zf*mrmZLW0X6Wrh-{3J+=Dil6tCDk>VX~j0b2xv;jZw;7idQbe`nEc4&j$x@_JpuIO zO0mVurh5XM|2dw+CqQcP`WkaRqYB(x*iZB_op+2|Jc=T=6QE^edP5k3ynn z%AW|6%FMBtngA2_7GmpvFj@#a-QD8%8$057r5ycYm%ydoAcDWz@l711s8EeY)L$J?vNXnBwX3`bNsT028kutKcpNw7U_?I}=lUN)!CfCY5V^_(vsDl({ zx`z;^15!Ru_%l%Oh2yHu*dNj6a(l7NtNgKaD$JD1?-WMI4TSU=UI2S2i!`Iwdvs52f%{{C0!|vN}hY5rhC8@C@Q?GK? zNspycn1l>MA!!xS8DIPw7RWNc`(50l;J!UbfiL`MNeXBmxHHgz-~d2ZL|f~=dI3D4 zx&xG6<6btXlzp|~f;L-nag8&$PCP=IRUbxrxrJBe8LwZ-wb!|Q;7$r()Per3h5mxy z2VWBwSI2wYcl$9H@WFoyAr(Z7PVK2lr7Ihxr^+tH^|@S&wVQa;T#92Np9oIbl^7F; zZ)kUYWtX^J-_R3Sj)SI_2Ti|syi z4zAXh({U;q#no|x{0;XSPHT7EAio|d=M7JK$wQ|_5BOwNWOo$BCyHD|R?_MU%3k2) z^@+iN_tQHla3A~;U`fkXqvWv$C#+W~a4!X>W))yb(`ffgCSBn$A0@z1r^Q2fNvEUS zF1s#tTHLT)sL=+p!II}>a4Vb1{xMpnlxBlhO<60;j@2^lGUCUjEKhvz<5KJ=ZtP~o z_sEN!_)eg8Xn5{b;qJdKnv6Uvo%{++p)Tlal+7)0g~r&-r8}R^)uSCVDi4#688*{y z%4hSz*E%+LS75{D;TAZ;<}+p6DeGXnY-gfuezYK)ugZjM-u@4v#DH@Lo$}W9 zT4-dzqLZ289mS#e8Obu{7UNfo7F?9f{GqVL|3DU2y={$@CarIWGR3cp`=&{GAjwbk zk!>zFfgj(htHYZJQ!^)p(mEc3Q0wHvt5M*U_n1I9SvHE{`M}f}O*qKl`U8bI)h4+n zlTqH3)>mU)%i%K&p>JIGgcE;@>pVLyOP`L6%Y}JBb{@QFfMkFU&jYd}H9>&5e}(ek z0mXGu<*QVzpI6sXaeS1D@31OG)w88yuP7Ds@_;NAWtNJC{|FTkd&zO}%>lLnonDrm z&mq5nZhosLv$H|sDCp)^CRXDaDk_8FQMc|kMfd>EI6f?rnK`i?Chm`!rbhg2NZ*Qo z^R%=lMHu4hZ#l#==$D_nU==@=cGr%(z`{%?QGz5c9hTpW9Qq0H$VE1&Yyl~V!IX;G zVA;1wdTF+p^5o0y`V-PsI=RgON(<9rP9bL+VX^JTAE*jjH`N4Y-x==*$oLV^ z=x3Au?bg&lB=~3*|5!?d`Wbf$e*^%nm7$WUjL*vbS?06#Ill}KDX9}mxCb>X=?!&D zym*9MW}px(4w&HleL{*BMVn49Wy;e(V86T{o=H!M=PvC5F5%HBv0S*7DsVir0v`T=2UIxVbVz17Sv&9dCfEH>BM&iErT zFt{Je{beYQS$evnx~b;e_K~5PMg~!ct3QPpMQ?_y#35b==%SO?Qgc4>b~K=RZp&=o zgL5F*l!^F$M{TE8%3)?EO_02Kh~6<5QBe4_am^%Wv!FtzNQ)fFTQtL~)b+-vbD zw+g>}FyQ_40CHWuB?2sIHFnOeb*u2r3Vg5vkHa4Umb4l>jbk0=GXyxg3fHV#$kIF93l?bfNmp|NIipqg04N+R9YHJP?TxCp-u`Ya2`ca7#YjPOTkljs}eIM`Pr= z=M#mvTX`_%O(H24qp`l`Pq9pNG9bNVeX)U-1V4STJ(iIxTQf3+ye1J(_3~uOEIKb) zjZX>wg`}+AeyS6GIwT8%#kWOz2iW4gUR03Dw{2yKsh}w+9FPTg6+Yw%eFoD@-DP<2 zM7zSqGG%&f!;$Y{rOq%%&?f&K?Sc1mXsJzw^t#qgxDswO>edmm%{weVZ)u4H$Kpid zQzM`U&(_C>u8+(m+0#0i5yBpJsH&_4TYj3x(hdUKllAR1TJ;X%J;~gn()y>vSw zvilZfGyGpEwwN~q{@fgeSI=$*;qiD{`64f;OlIah*|4{?%Aclb^2eWoKRBm&1b;fN zA5y~z`d3e`W`0(PBsCFHDs-RE`(O!^@bZaEnv1|tP%Z6YF&WKDdXUj}El4+>%h@BP zZ)s`R8_g>cB2y~0vXV$zz~45G&1^7pC(vd=v%w9B#A(c?7l9)1gF004rKofCC)5GH zFAD(gsL?nXp*iV_FuB@Nq9}Sw*VLa2kMFnaVx1&A8O}58=-TVf+c_BEE+Cl9Emtj`3!c+sH#lUC=#L_dtV-t~@XgZ(rj_+f9^}mR(eqJWMAwaz*{u`lYm(@{2 zLS925J|I%vq1N&p|5qQXQPrEIO?G71veWfVHI@{&7dOVcIleb&%%(p^Av#vnKGJLA zZzo*B^ZS8<&iXRx75@##nQG<2P$VMKQ8gUF!Gz`FRXne>dl$4`CruT5lVYu8gV6|( z3cn^IwkaMCHdJNPOUt5+?b!ldn*V0AkX%eNOi07<0 z4-RhpZ%J_661%dkOX7X`w@FA+VFm0g-2vYG_7e0v|D0*`yGtN!TEU6_tX}_1Y1ByM~2T7UqF(f^GBL1ygTGX{IBR}y$ z8DwAw$KkS?Ax}c2tdQn_y!=1c0U>$X=2tdtv`sesB~l{h2RqbNq3kAy=qImh<~4}%Ea)_lRVR3$F9_T(%_hc7&ZYx{JU5myD#?fusF>O~jg|w@YvR9P zB6PdVv2HzAGhS2%Iys(ui-v z14e))tsCp?nGW;10vz2~pNSVbJDwsmj|n%{DY(BtjW&Sz(z_yt?M_-Il!5nGn6g$5 zM46Upml0noWl>2%KX8rsr1xL#|9Vb_i7m|(3DA%O+v^rH zO!J7R?%OVB7Z1v;2yZ%_bUi4+tC|s9pC6C?*R3*mPIYWf{BSE1iJ@CLiBD4T$zR%! zur2hDsU<8J`qTd-VNe?o7kr1CEQ%902!uuCK%}m6iyo6fLn3SHHDq3eD z$l!vO5uSL-E}3)>^2ka{17CRcEZ^QkA1GuCfi`{V`S@zd&nvC%mBPA6(D($vW@!I2<6%`#_&XN6h-9umO$N1 zD(E7I6J4oWUOe_cb5@qg3WmQW)f?b@S<8pbYVTrmL4Y(6dccSU77#39+Knva8Yn=j z#%r(yxbFPJV~D;|Jht;R%0zpDF|yp{?1=hHO?^A+-@dVg@XR)WU;Gd#7I%Jq1-~NV z{l&#VZB;(vUqmlDojXTMt*V1J`4 zVW2PakgCP{5_G|ryK1Z85Tuc1H=V*^Q5Wq6_)0pnTfcKHB_yv2C9k7 z%yAU)Ov`Be$u#{}5^@nQ$}V}5GfhaGN7R_ljqY-`>c*Y<33oqnW|h^AhgGX?-1e{e z*qRX~luMeQCZ zT%YcUGQ1j!u7#IPsJ)CXKKzMjxrwDwWhcw(l^;jT%_o(LWF(~g%ec(Ej#UU*)zWe{_yf^U%$^0|_nIQ`x~Sa^6|BOLVeIheu)RSqFF{AJq3}%* zZ%NI`Zg_5jxtL(H=13Ld=W&g%5BcI-to7V-O=vj!BwoY3xi4b0t$+jpu2z(`4f!)8WQ{6`m<}IxCQM@9w{|*QcchyR z3m5=l3CB}*r?rKtD*A%eJ#I67%Ojb8F&>>j9(m$Sr@>=qSP?mcPjzr0Q~;j%XFgoP z2$N^t$PA^kathY+{xbpUxTx@^m%pDkNsO1Qm-U?$20VqXl3WNJAV%As= zcY(C#Dd~B)0z-yNO@j=hpshQ_p|!{8TP5sB_LlQZGEP=3Os-HX?Msz!hekX{pl+HV z&IbNBY)X7hk=%tdC3hl#@EEqQ#o+%vIHII8wwAT?ySS~%f$-`kk5H;~p6;?~k!;?_ zZi>k)wJm+px6Vy4tg&ecTl$LYi_vg4S3uXr3Qwn`i8YeBU`|{&=w#V}C*`bQ>!i#V zY*XX2HEoTG4h%$h%YFe7xb262csKK*lgvAMaN{Sw8=+D%Ri$LRfmTY68OC3DFYPBM zC55HnG#-apE@XpFvP_r(N4)m|QfftJJFvq}40Diay~Dx*GSb z1dGmId>8sAbT?Ft-Ke%hRk4O9mvU@@@7c4A2bx0cw&kKssA5i{iujp<= zP%eAJ5+}>QdVt@KXS$xefc)HKaME>>x04W0?%=hDmag2j>>=oy0y~VM>KD1~kuwdp zO~eRr<2-4YaE&5q{Vz2F(8Z zT>TAt;orvZ{5|$*?I*g?*V_F66&ZTnZEu&CDfqe(cRs>Iu*2Uv=!{1RHe(_l{l~Zt zvDGs(M~S$#RO3&F!Ponp&OJO@K!vqu-AxACa>Msp!`-{)M+*(>8%^O=Vc}e1KCL(* z!dY>ho`;U3S(_O;%@!JK%0vn2h&I#1fbg6P=^J^JN~xE4;7pai z6CWqjXkxS1SPZdDJE7V4=_O|5V2dpYmNv65<+n>!L4D=t$T35ERMzg=z7_ej3=zvO zM(d@ZRa!Eg_4u`~SH{p`vAh52sj`0!*32fHebno#QAO0z6KEt7HnwVSjYbTMOX%p~vbl0gfKv zttjYGT5@c7fOqX|p++0X28(KS$#3Quoug$!8Im(hSu4wq&@%0EHfWZzyaT*DmxKF$ zqTv&}e?Igew|~Bo8qAzoIZe|$)HJJZkCq!#JsFno`g*k7xRbOOGF?l<@=)LCIO`78 z1nZzHUtS1Q8QpY-xi@?(xjZw?(TRv5E0X53!526oqAjgw{d)T6wAcX*3N`n`GxoU& zku$e5lzKYxmN61EFJjC1qoQY0Cju$-+UBsUO`|H6($!9wO1axq5v{hNpU@C#mccZ9 zclu&cnb8+2!Y1NICGgD>(HaJ^ZV!k==`Z_h6Y7-JHv2RC7jo{n4=54()QruQK2*P> zdxHs_Y@uo0Ykdqtc=EA{CRI$b!5b%224dj_>(a_yBWmU9jhp6KRT0}fXWSS5d&QuxzR1G13jp!vE~7`w0u zoXD#BlvSbQThglf=Jau@?=f+!noi46SyY=*^|c=3RNoZ}oRmo?=VSsbX^mZYcCf=- zCBRYDcTm?t&h#&j3{~ItFUN%IlglEaFj~u0p=5(urc5N@7%kH-+x4u7w+f@a~wD=>K5^b>+GEu*`Yw;{?v4O19z%l`r zw62|39pwaQKLL))#NdK5(RPH$L^EgSxS7%=Z2(cKmuQz{+)vapr8FBnDP?)%{s?^s zu#u;LS#{arU_RvFDyZ52)?X}bWyIBY{+Nq$Y0}(726yPJ@!#_1@WEA!BCeS z?vr$yaYhu2pm_2{am5}^6hGy;wRQ7_p;Zx4{PhSYicc$Wt;%hg#Vl!^Ru_x2Qf$6@ z0glS;@df3!`;btVwN4jmw1I5U?c#_odqB&qO#gOKM5Y_G%*ynKQkEyv?{RnUCuY5C zWxB49lj(V-*a?CCR2o(x?m4XR=VhxzlV^hsS5vMkFdO`Otkf?}PsA6zaYku1p}D`W zw2C6R?rl(}<;GK|-UqsDZI|W(TZp5YJ0xpR2#$foVRP`^6CFj?F@bNkN_W@lQGB1(S*E0$0{7`Lv;MV#YT$aReCxJ3N)Qj{q&%MA{luDf*= zv(1j^eO&-<0pO)ui`sxrZUqoF{PSB#2&P$DU}iZYszw7`B|wDymo?ae3GFrof@iJY z%V6q8H(1YQ(7Mb_Z7$qkNm{Lp5xw2a9I%d1tBr*lEJ^Dkar|I6GdEITogCo?%S_{1 zEI(INI?Q@L9-WyN7Mz(^4hm=Hc2k8KJNquiW&_^x%4RC}wY5ws%?2l!vR0OT|Gd<* zLvWy!<;~1}=^^kF+qc=7ncLIN%w5(+ecaK4oOsDj*pN_QYEq@NSgUF8c%fkwQVd@Xc253Puj`o5uXuy`dRdBB=-QR zbaTO+ibVu><|Q#%zwSy3x4AblsS)%=B>!NM>bW@fn#XSX?3g!`tTd;i+Rl*7EJkwU zGvEy1!L_z*aA8XkF5WOIgqncyeb#h3~j=^!1+*bffuiu*r)b*sJ zVYumwA~JRnn7}ip3HxY!`0_9b6B*$5e-L~Y%+~sWALgR=?b!dcz zM_nhfCe1htrj9clJwNg%+6?BLP!$z&&oHHXXz8@D_0?+fZ|6z(thn7f<0HHnC>O`e zN=CQuj63Bg&*HuER^sv#L4T{e&pAr9=?S+1fiQ$1=Aprb!LRTXi8@QXY^uOu*_E(f z`NX4HRTR?|@L+l~B~;0i`*4FjpJYQA9uev#E*v(t;q7o_4qMeS#WXe7-Xjd&oU%lW zmxvq`BZ>t{s|a>qQ<8QdA5 z-_DC@poTmkOF^3fYGs3`ZU=n7C`}9UfGjsQvNU~)$q;{hNZG>oISReWab+Gt%lx_LM%Z;+9*`yN zUIQfT+A|NxlE(Ke;O1Ns9Nd94rx2D8v3=JS&yL5^ynH*D^N?S_53uD|%K78gbDXcN z|FX26+msaAOE9ynDV|e<G+?Nh6GOBr97^`sofCwl&X^DM5sM2#j8AZj0yt!z%g`Uv+_ z+@Sf1iZ^sUZSbji60Q4L-MQ-!)ty`1OhM!JNKcONrZGQji$jL#3;sCziwEzVU6IPn zOa1Xp3LjXXwY+m`)`|mDnb%Xj+U$N2VVSCBFEGfVWna6AoGjn{aHnNAVhBc7{E(1J zKI}OTUBItoDqC5rS(OduZzKQazQ8}Wd$K*QY#dV_X5hf3vaxhL0s$SAi6NNu1+8RW z;i};6MQ=!>xIA&uo1Z(!`5tG&+;`Yzp8XkakG7Yy^4s6kEiF!UeT7-C%vm|SHS9tk_fxx|HGke=UVhD= zcX)ly&%ii9{>ch3M@Z(LF=RBQ0cQgKezk8r}?}k9K(~Azvft<5F7M0eYCy`*(>itAnk6o)VcY@?mb?<2I1#`;-a;K0NBj7d8iY^7ii*iTF zxaj0G+G*9N5$%L0FQ|8=UwoH?am$q5%17X$@-!&sDNkSJm+ACKp<1aE@KVr3O)Drr%2_TjMxh8SN1y=hllstvCxLOw2b za}TR4uy(Vw?qZA;Ho(Z2q1(FS&<${;R$yWAS||jb&l<%)xg`es{l}!E3H=h3XgAsKyeapygj^W!YW)= zCN2F$EK0|}L9UAdWCW$HuPE)(x;n5kUZP7^?rauFbzN|CyLV*#8y{JgL>bQ|toWz8 zTycc=OCE8&->{$Z{(0qn`R11Q{r2K7>|b8%!245OLs8yKLqFGjQ*7BU8UNIMUko%7 zHqB+*jKKNv5vVRO0#f~T;B$j8@q*P2LPyyD3apI7O_=6&PYOugO#Ue zxzIV;AWP6N3{I8fGt|r-Pd5)+#O!QPS6pCa-i3v+m6PYx7>y*y-E8d&o_J zd4Vt;8MppIW!#}q+d+bfcuY(rE=(<_7Rm^2f>M2U;G9}lj$w_4-XY^ipBB1kh~AA+ zUfG%^PD&dQEA3N6LxN4{M2DEJYM_9Ix(aIXx7~DVdWnfiHHaG0>@Z`xh%7IrYoxb? z3tg*GM(bk9)g8!7TPq%zuZIwUS3ae`+krH}nW44t+S$D((5wA8+cg&+6`}rCP>;4N zueU(vD#fzXIsV*WmEmf*XQ;_ioN6qmQn;U2hTO+}|@)ZZVVf$20 zvJ#~Z<5+|7j0i?A*~eflC04I|T8LnhBKT}qD`R^a1ltG#+Eo*6`2K0{W9ovlbvHr6 zbg6r32SIpdh;XnXoa7LGAu#}0PsX!HiqIVdKfjRYm7=XLR8&1eRK<$wEQe~MLDdjN zWsf*7yq=RuQ1w()Z%bE%^UuG4#{I-z4%HBYYX2yz<>q+0Y#lm)1=S~r%?8J=2~nLx zR9>QfKMn#1aSelNt7j>AJX>D2i<@bmT+Lp~$eQ?DJT*kr3xm&35Y#({sLPbf7ff|8 z@vt<4*XoGHD=!K`znX>|F>tfN3;W9NR*ub+`WsS;_;3B)%->D?9oyE8Yri1Wqma;S zZ~A-*=#SCHfLx+FZ-M%%J7n4HY-h=0nDwv6vz3XlV}&B{rRV?0lCW|fY=l+9$t zP(gVkF z(LaJg7{^j{PmYVhUYSWU2cQ0-Om9oo z9A`=ygdLO1akTo(kn-;2>ITbS7t<6%?>Dh6Bh&|eDNM4|to$S2-6gAZ{4uz)Nl!|hyxUS#b1`}% zqE#1kA=6jenI3DT`b{Ea&3dW2_7qP+*1QZ(`P{!E@T-6|Y(NDi@f15v<%LsKZo`aE z;_t7K58srtk4x*n;{5su|Agut>M<-uRv=5idM(xJu}( zY!p{l12^7^iNa77?WU;cwU{#Q9C;-^yC; z+h-%GVIqB-D1EDq^{saGeLE%49$+D7-+G6ATlkKaMEkbwHeugxV{oYHnMfTu$|C?o3&*lt^zoKhxxkWnn`iK;_$jX-yrJnJ(K_1?fqltib<;w6UIuZ5# z6RnU9PI`QHgpa6)`O4)^+f0X;H45EbzM0qS?kyw%Lbv*Jcmz*zDsnpT&v{o2Ab9KQ(*W zS7yoB2tBrxi7Ht{8fKWf>%$$F06BTPiY#X1YPkZC6;oRZhc2I-`%bkR=g(&rY7 zyiS(IJ9)^Ku9MdwLLy&|-rGFv_2kmUJ=Z4JGbSXri2A?Z zYwf*1mviEIzQ2F3S93ml@3r?{YwfkyUVH5u7Fu$MylI{gdG#bqopOa zud(76)@x`Lyde;cbQQLf3L#1>>tcGXh6{(HP$Q>=f13+rP+(W=@(VP%R6I0VhfWL! zMI&9s|32O*)FJVTcg$aLg{gRYGc1^^85ldCdNO`OS*;hY^V3lUM=t2cVo|zZMIT+7 zf!b7gE^7nXXCsF-sF*T<7jKeSx(C(B-6@YH19N}A?Dn7v{jihjvT@LEP@(ksN#Wqo z3h7+v%*F}4bRjv1oq*VIF-slhaP0a6P%zy@t6FWCN@So#u?vtaUR?&W4qMinctj~w z@G-9TRi^fqxwUttg9M9xw)T@87hIivMQG7wgX z5)oL>0xZf}ntcP8U;?c_au=r%M~Foj46J?AUuWm-^buNNPsso@4;(KtA-ZaB`8K%V zJ)2|l=)~c(mzW1f{lw5MoOE19(L-^Sj|kQ5ic0lE(j5%dwcYYkt;2wH-!RptKijb` zM)ej^s-N1~QGFw=ypTCTsu#D7P<=!?pt_5EJF3T)<)M1?tbpo~tsK=OuuaGq3YMRr zRR>*Q0V0L5i=&aQu42|zR`pAH;q0~$5h8jZ#HL?*RWOdAaU z*c$du46PHQ7${nYMk5_sW3bR4L+f6&YaFe8;%L2hb6&KLGH6{3yC8cY1I`5Rb#||F zLNB)deLqj;zF4o_z0~yXMH9Bg#eDOV>fobDE`#SRq5xibfNa7bqULUTC3Qe1yZ)K~ zHw7^8CFOn%ECZG|^56UoDS*2Ml0Bv?j6WoAS5UL>e^dbLKR``^0=TxV>k8%bHN}ny zl(4zQk*?77rl2eACErdCuIZhpD_k`*=n7XPTvxdCBc*y=y-*z}0KO0EsGfLmUaJ33 z3ZPY#>L+(}RF4t6Evok3*gisa53VJe-q~5c9n}@R@=!f$MnLtoEgjY6ALjJ5l~s8Z zz#Gv>SJ(EeE2;pxLTutaZ5AxE$lUjGl$S>VygOYRq42XDw2qHrpbFrSXrx2yhSD6g z?m@f8(b_wX*1NL&Mqfb0bnR)-x&|ghwkrcM1>kPEp$%C%AKsK%I^@aXc6e-8hnE={ zvOn*Eu8pN!e}G%gRmbBr2zr->koT^Aargp(WIQXk4K0H=S52+?!n7f#yViRBq`qMk-uzk19Z&75rx7nfp2 z+iu$iM%(Skxk6-Zsr8v?02P`+JTRAOG1Gc6wT z9Lq~wcBhrPPV1c14W|GJJpdmOW`9NHeD;}`FL*IL?6{@u}bCpaAIQJbR39Krr>R3y?>c&Jo}9`z?I ztcYMgjU0Iv4T{AJoyqotX&0+_e6$XXtzi0yXr!xn77h|%;gzjdT?*#iUB4{Z3eJk#1H-%yQS}o_SiC`4y~zSjBrr>(Fktbu`jde7dc8 z*LcNmT${JzLrle2$Ogx#?{O!lg$Az3oZx@56YT)@_*xt~k&_JQTh@4deh@L!-L1HE zmR-X4%lTu+IWcMccXB2WUtp>HzcwaM5Fa%BVK7SACoj95zqU{MNg}}oGO79R`=o#c zeX@|N@qsZpW(y~`l~Xh&Y)rnH2;}x?+03cUdYF706mY)ez&vtW$u%55G3+)gw+H^@ zzv6#S(uzO8V4t1HK&TTE zlL5)}m%6qy8AIS-?M%V)IKA#0ANtBX)&eORxnQ*u$kue_gSI`CHZuVB=@X;v?>bwIw)qPpw5{9J(RR4l zh0)Gd-6Ejv_p1WhzLRf9+ffJPq3!U;gtmP=OIy?TjaQ9Cob&sYbtsnT=OvJp1z_km!e^L3LSy`JB_dDsDwX}ozT4sw0-umn-z zPAVRB^ZJ83D$o&@R-dA2k7_=BycF{H)tT1$!rCa2!|LeMU4ZdZamr-RxfztCGuTMd z1u&kVmvm2(3jtVlP5L7ypAN->b=Q9BY%J=bNjpTHlgMZ#9)nmW6oVB8v zJxS0?EyoYN^R*Jj-A?O)E$(Ih+zIIm;*3qzD}1AcmoT<%EBuKq+?`~V3SX!2Sqm>= zyhWn$=LDVLRDqZ0(}0GSCt$s1e1k*ixlf9H`UiW6mV|byyp)|JrS-vIfwfK0qlh8- zLQPim@oK6`7CMn!rpd~UO!iJmj=4K-e?Yp`m`dBNO0%w8rMSmI+09F4vG1lMf^2Nc z(6P6%YeX6oM>b*)EEZKAE{7=Gt6*=6?$aRm3j4*kHL*FQeNXF`QzRYP?`PNjWaXpt zdO}O&-UixFbP6K3kw|Wews<~xD+?8W_!L*njzNwUeUa`JCuMhopwWrTZMOMqm76Mm z=LHG0YZIT#<^c4k-cm-(po}K2jRh?=bBMiIwL(rHg`{+~l_DdhDkX&-RyrvyPD+7}{-vTCemuT~R=$SN~ln}2%p1es_ zD`rI3t7w1#fL;>)G!)WjevnUE{pCJ) zj@@+OT{^m~v(S_J{E>-1p3gG-c!HDXvratD8>$Az+v#eqjT{Pg^BrBIgHd%Mubc~l zPaiD}M1{o$LR(Qf_z$1cgV=`PbCLOM`a&C1n$R2>s=XJR!M=9W7tiOeXGL5)Wi&xxe-sPeZetOWOAY_m8-H$HZLt{?V3QWV5b;(% z3f>1hyblc^&vlUGlF{w035oM>!UbuAIxdbWq6X zXnNCbQGK;T3{DZp{KmiyrancJe0P4dJdroVA1ZKA41dCQ%d_)wZ&@=!c@1i<>J&qi zF>=?T)TT;w0cXgn0!Pvfu?j_TBmSaTyhZpw?W2Sp8H2M3rvwfN_Z5UcS0*W1me?P} zsLELkJ(E2GC`^EfknP8SeQwuUp=u{KuurFFaq<{95cM#FyKZT+DiWDydN>Tr{&Q2Q zGwzN%2+c1()MMFI^t6Q-cM=wdP2o=;u=~gu_mDSlm%GAdI|LTzqpcb6yScwV_8T9{RBA7(@b8T zzVbuB(@V|;_P*ok^qoUIJwekfPwz8n!qd*0W_em6X)&ITxGu(!qcr`V zyv-=jOXDhv=2BaR8PNCrUrVt0gGWK7m!#<`j-zyi#;dRJ~cDJ)>QS!QY%6 z1+ttz&;SXi7sP-p%L@evdgmP&ka-m4pR#(A$sPhbHiq2rSdkXFnLCA$>lXvE$kiGk zL9Rm#$RamPfPma#`H>rJkgLPWd~^^(Up$(LW9L)riBr$5YGF>^26OVY7`4{gH$%@a zQArp(cM`RvvCV?}>r{g-gJDh$`a8AW)GqQ<+W|j0`qY<1Kh=m~bSC$p8&x=a6opx$ z?Ok#3k6?bn%e>zLoKBy=?qsz=g;bInj33bk5=H@x_6vu-@49XIvr_WlKak+nYW2Q= zsSIeLQs&=_A*-5E>+q)B!J(-)!oFS56CG6 z0Po{u0W8&D%B$5MQ=6E3PyDfD!@|_jNNydqhC{BOMYbdXi zg_BfL%h#XOK!&t!k3;#8S)tGKCBYV|_QSzKzpdsTSvK1^y1%cp=oW^MyHIk4(e1qv zbYHs#=wJ-l7`peM{J%nX-vHg2xGb%}wPV-*OX2BL%KchHXGOq=7BKysDBGv7g)0VH zdvgC?d@kHJzcldvLGxd}Jqw9-lo$6A4U^hj+z_rSl#2JAJW(ugNA3dBj#k5c*1LwV zsi{B>rq`&)=U})HWZq-)%B12XP~dv8=o*%kmK_+b4&9HbDh#QYNot-hzXt5eq2yaQ z&Ulr^!_Z@1t@L6q)j@a&2UgC#<>5Ofu0x&SPhfxY&b<+c&ip8o~ZoyV#MZ5XjAYNn% z$aT9B*_#gt60G{?`MvPW!xr>7x7wLe2l=PRz#0s?g9k)dax#M9(kyRg3?;vF<}njw z?I)9c?Rm^&QVfip&k;8|dUNNpym5ke3D=R=Qyb-{b~%1>#^IF0;H8b9*d9KCNJwm0 z-ltsXE8yS>`WEdebd;Fj3=Ni=;FAb8Eua|rzT_~YYDml8EUN*&6kt+A8v4~XEWXyH zYOx|=%f#8av1}70TZ-ADdgTKgXoX%`588@eyq`ZPU5dqmEiQQ_d zaKE;IghfW%Yw5X-E0N)#n_Vx#`2*k;@l5v8QzP6uOM_AwL`h3fz_aygcEmgUGDuiwRckJOR8*4N{WQn0X}au-=6wm{;Top0FW}JMF6j^WB2>s^KqG}$E0ukL4<4;#ZM;#*)CxnX`<&r3 zf;$ie1?=DSKvyp9Ta#R1ehjV2u=;{Qy(T4b=(mykxMX*830D@DpBi z@YxD|(sOYHc{#qkvNqMVS$tHd-of7-#-*5-7_>hE7I`|=g(H^dVtcle*lvjRv;ydL z@dXL{-tM&`486LCK#N-^C}WMrCZi?)qOtNiM*zE4WBE!2u#iOHwwzm>QVr!DFyj35 zHK*BgX6`B0UgFP1Iso~JYrf_e{0-DCL5Z`qMDgk1YGV`(!N-gvCA@P}(>J%%2}$KQ z6*@H)zTn<1A(mzlFZ0DRzl8B3Q)hT*@fHoP5q4;HHE8Cn0|jn}F}s5japiDl0{C5z z^2898u)1g8ie(>K_Emmd;u4NPOitp)v7YD!jYPe z%EMyZfSL6n3!G%OlfgW-mCz*b<_NHaRpwWJ?qvSk2bVxIksJu-U~~)B>tE5m=cig} z8H;R%62?d>-KTI`uo(Urib+ZzF^_-w0;65!)k~Qe?kXqe?JB!|8g!Kfun~ZOmXgU% z)1cym`*B)H&vBPm-6hG|k$67`aw_?m?8lpHCzFnJrKS~#?#N^tBrVpFUb>OkCMI2I zJJO}Ex{mZLSX(iR!$Cp$0Y%elIV5;fg?q5oI1*Ta#@*h#ZO}L8ic$wa5*(9D9Fvbe zM;}FNgJj#)dK#(V>PJ$zFVZmmR&*BgnsGY((yrbLfPPtW8}2SE0pUWNuTARddaX9Y z@>mMC=Fir&=0K<>Eo zZ%}yRaTEpr7D_E^;NvITBULH(e103e_9JZyi!;^0I~~SXCe;$@9GWsBwft&Yz!&&z={PIW9d&B&_T-(~%Ep2%a2fn^ zA}gIfooa(`=pi<&c^G#(Ni zMM!(eRgE<)(37Xn$f2Itc#kF#3WM0}Fjgg!-1I3~YN^g-kA#Ni9g*zbp8Wl5H9VX) zPr(Z6yE!u_sLiuQgKA_yvEfsG;lA?Af_}ZP>(`<}a{BePI~ze5ai~|TN>xTLmB}m5 zlqT5)O`_Su&$M+p9urI~KL+HqKTBj=`>Yvjq-poUW&=)MT8OGOEXRK37vT>3@UI)H z-B#ot?vKWbk8Mx0CO&rbU$hOIRuEB2etafq+C1Vgh4O@2R$<2TX`|cNEe?@bHo9$Ifk0_X?#FQSzc%mgpJ?+=(&pWFwr$>$PqcZn|N8Hnw{EAu zYTlZGf6=@rV-;PS*OK!rj8{4*&HS;kou%`@1muo$68ho!j_@WRdxR&90w zU9D{DMr6=KEtF*{2{=o`wXr-RyvXy4=79x-z$q~xOXxiU1RBnR z^_XYLar_9SVeSLry&1L}^o4gYkKc{e*(z_oK5wQHlW8C_Ww&Es?0kAMq8>-H zdxC=mUOYmR;>9EW)o0?wYn4&?cekrakgB^cL3roY>(?k5K#j5DGM{*mQK1`clHf2 zg3Nm@d{o+s{Z*sE(coU?3EMbe+{<18;uO_no%rG3&#sgqP;HsOczKDtRMpBvRW-yP zD5l0sEYCeOpNUGAnfN2$llVzOrdntANi12z`(it=>@%IL_ z*=UsGmEE3b*p}bO&M)A0@Y%B_mmdGPKUHxwpnvBiMXAij-s& z`O9n;iRE>%=)KZbIvW5RrGaeS!p26z23hZtU@ePuu>yA#62R`e!BC6pub=N3?-}(4 z8}Av%3uXU*^o-4#4HpAkM(iVOt5*ie4;b<8OTxBc(bz3tme`SqwRffq1Twr#j^^W> zYpxnHD6O_&K7O{+bZH7d4Ki^AQWHM5NC%9#a%&WbeS+Gl4atcK!wZk;NjjAF%b;g_e%ZGaRM*uU~ z#7rPy{9{(b38H%tQTVAvOVsL*p-GA#&UEwSK&0NAkx=;`R@1^fd7V?~XFDNp_j$%} zIf_+SF9zPL;od21G_D20;fLU#5-l2VHgInVr`4r<`t!8%#E|R3)p@H21NW9v0+R*z zT)stHQGmBrU}d~K?=8MC39C!D&s(nKmC%z>Kh=&HPjX$lBVG^uRJ(FSu?)^+hyEP0 zoLXp_UORqaLT9U=|XaRy**&23d`21Fg6)Rqduwoc@ z^5iapZ2|8ETcg)Rn1z3cv(;RS8s0aX0P?CdDft>*RPRN2@kns^VzCa8%8Y0386A=?H4yA}9T zIP)^Nj@NdcQ*@I&Hmsb-N~^9TSHD17y<+H#F~ln)iB_cZSK^P4ij|ylr6d)RJO~#RP~&d0P{bngT^0d=rLO65g&Nzdtt;)HD@Qx~zQQ z{NXbZs%s24KQn^@x_Lv0r3*2nT9&fk8J0c_@8iPMWr(29ZXgq;mExt{qN+JmxQ2#< zga&h;kgxZr?q=d-Ak(bL%4`KmKJ#%7-!ur8I6Bd_UWbJ3vE^e7A*T7~wh)yoeZNuaj_n(lpd4Y^~(B9K8|AmMchT zxsAUwUnV{kRYHY&2J-5AS-9>HO4}8&?+Vb|99g1L_5Q2$ zaFlPZZNud{wvpPn9g{vN1(w@#lNfujghhI;9L0P^saAl7t`6rbN~u|-cp7(BGoFVt z?yN*Tc-7bIfYL;8dqVB^fq%=icV`4WoDuzuoPuNPU0MzLxIt2BhqD3taJwK>xptGH z)J-T=l+@Y-%{W3Lmnhc5lQAq36Yd+dsKqHA!Wbp0x-wu=LdVG7qbr&Vb*5zwjM%iWxRA z^sZ%s!1`ck0*>+nW}Sd-oWX3fc%hE{({$_~^N_V09$Bb%!x1L}Gn?DIYUF&*MITa% z?XI6Tra5MC`(#>n|1`Dbl7BEC-+G`f7cU2DUM>HkY|@qVlBMpG`=I!4yet-9y+AR1 zNiqER-xkAm2E%*$0f}I1%4JZl3sY~SOp1tK9%9rcf_0y+`)pi$VBN&LaXF4 zGwT)SP|||ca~2^2B&+9bm9_E%);3@z4cf3C_1dWaNEG#}jrnLfYv$$xZAq(2=ZUe6 zg&Wd^`{35+fVKl=ASk7l$}>I36Nd{7xsjXCU-|pK4b8dkK|8(So|n9HcS z3x21S)28s=b7>9@nghX2tibox%&~t%b9*K(k;H$_k*K6>3xj^CNOqOiG{wX_+;Y=! zX2IE(GadL?c`d2I;yn37R}Us;rWKmc3E}+-)}3T4t8FkL@_prgv^?6gfeWR@Yxb$kLl!``z zCi>>?w|@iBFG2Oq9hv1T#4lLKb_!CG+!4cn zXf6Q-yP3me1Yad2%ZI}4PBgu2Y*_w#GQslS?)npZ68w<$JGYC^#xCY@k#uS;n!TyL z*j&0&g$xsJz<`Fm1MeVB_(;K4p+4*asi;8OyH)}EAyIsUJ%=$-SS{Y+4Md4t$Da zfs_otT2oaxNs-wdy8&yOhq??JyRr{@W%JQ4*3r=$#e`gt3VlC(pP@)c+3hU?%AQ4^ z55rgz&!gWo*B$sfXU|~Bffe}mLXK0ols}c3b$CC#x$!CN8AK-I08Dx}G$sQFpb>#L ze}#4m&YIF<$bvht7^qNl?E=Qyn@VWERnFqyg7QKy#SfsmBR1%uSuJ60f0Cf(|0P?m zZ~}0aeoKqL4gCkP5-sk@RTTQk;hYkv#fi*+h1q*X)G`n)Xol5pmp(#3+hn0Y1V|o# z7C(Y5zO)aneC6w$615PF$F>OBI~*V`=O3PTsh|b3gq?zL zDLR*CP4^$x>=MAlH|DWt%Al6+Jq+|)otfx}%NR{{cIC$~M@?E?O_@Q~m>t^m|9{+T zC$woMd;A8UYNa9-&Bw--~U+zMeI6kqXw-AFHrAk=*f-Cn=f)Y0VW$t zcprT{)UQ<`)J2O;M~fZGVspFv=BF|`lRauQRseoKgTe7H@7PQs#;B3TKuT^!ONgm(hv+JsP+ElW7IUl zrEcb6R5qFJ-_2vz0lf0gy=F4{WL|m4mJV*ittTVGUfpm*=-g=_xDIa!*^8xJ1hnF+ zG}#4{uh&Wy3azMz)_!f$+J;E~KhjV5=QlHxVd5Gui%F_jlxe z-YyDc>E6!(3Ei_}K$ZcU2@sUnVjS7avnTBr&Z5D$14cq2G%*mms@bgynp+}NI#qK{ zEkUE_iYH?sYf1hDPLwYmW=GL6B#1r!-x5nr*fd{F^lp+plfCE>dd1SIgS8x~(h5D} zROoLL-4Yi1o0~}vh5jHZNjxGV#}ZbdKX8H*%^hXsJawP~vu_EogjMJtebEX1H*j;K z%Bkeku_9-*D{FRego;aXO z{@7R<-8V%7P3N6;k|0@~u6|njlzD>MsB1IDlaVH8AIQTpb6^`wO(DgmHDk@sFFdiv zwZuVO^|ttkZ&BJFT^~e8m$%8yD{= zZEV}>;{2O;RTTIdZCQaJ-6HQZ+(f*PaYvYb5kkZ5sU2GdKpXl0nSIVPl<6H&R z2i>pfaQulWs7p|5SV5`mXR^=Y+`Lmzy<^ky||+ z+Vd#}aIzm-GP=(e@6W9o!krF$z&J-`a&@JDGRd`Up0O-z$PV8cVj$i+q`7`l#cpU8 zMwh=pft@oms|L(@K1GtI_>?L9%4B!z&eleDvmSBQa&%4c7WU^YGhV+28OL$Kp#qgK z(=EqaAfVG4Ls)}a=kO@XYCzc{b{wqIAvFZm%E57mP@V~x$u1rY zC@ChB{b4eB&ze1*wj5*wobHs>q-n7+u@pq{3;EBulp~5w!<0rruumb)i4lNQb7?d* z2eQIUziBj;mlW0wJe}T5^VD+H8!%m`A5RmivTS+_m%Dq}^x^MjvvNX)t4N8fUr-)< ziJhNkr^;lv{1p^&tQk-b!X}xSOj&2fVp&BOoID*gQMAPWaJQA^Umj-O1@fw)iD(u&6cnZyMuyFf5!+gplE-oXw)K3$zq&Z2+b-5L!3@lM(WEtylgDeClAOujD`}C|No4OVBc+MTeXU9^ zyUnTO@fWiZ3|H;+sSBW=d(O(**OOJ&9;BngD{l3ilZ9{h!(|=U7NNDYgk-|bO13x` z-5BV--w(fTALV&ySUo0uf!qocYAibQ;*GU++BMdX7la#Yx&;n3R@1Ytu@(|Ij?uMT zs{lr2#3&6h5Bqjo3KwAyt1FT74CwhN0L=G^k3pgCVClI9#NW?Clu zhy-=!P^U?@HJe@!jRB)I&9>%ZNsG1SqN9mUVrmE5n%DZSHDA6^*i=dz2ei)Ekq=u~ z5$AGPO^rI1fR|&D9z&(>X7+Epk6rd`L z`8-&28G&O$^9b7eU74F|$n{ExLDDRwSdv$Fv0-IJ2vWw1`Ny^^5Y-mfdF9KjG^39I$_)YGo_R4ed6azPIm2(W}z)wO%Zm3)=}hgIFz zdHcrq4+MSVE)HnEJKURH6jF7gG)*z(ndDICI9Jn@D^5>h`joq6}Ugku8OjY4F_(7#r zcnDT}wku$8-bqLeUzX6clP>8z!<1;7RUBoTUYDIj>v_J=$dL)F$oa(d5}?CfX@oNq zS3VM*5A+BD?IEDDpWxw1)B|&7ZmvfCEn}6_e&T7__XvBV6FDRHf;~h3K~IjTSjFeD zxo$W%m#?O`QbbBq$apzEr{(CbG`Y@Q^r&7mnXeFE3Q0GJUA-c^HGB+Gv7%%5e35Qr zd9Qkh5Ueh{4LWatcpHl6Yp;h8$0fCS5#Nb*;sgsz)$3{v_PjnS!iP7Hw9N$_-`bE$ z;o;oHDVITT>sCr>7)bj#h<1Ug5#}X$zVMTt><0|soG?O%rF62~%z180USONjKH z6}{k)HXB^*ki1&3k-9&{jDiP{ZSzR=cDsud@aa!&3b1L@K?p99DoS&(3i0wwB+{ot zpP4Ph(KC)YEs;uj{9c{if2IJK1y)^d_1tN@wLeN?h#$@UQMYI*uxqL2ttPn^|7v|% zK~9lDWqbNj+A+TY496fK z)Gd^$3kQc2AG1B>*N3#He2sNYwU$beg?KmN(PX#YHoZr_^|tfNnF)$Mk*?4JF;?8q zlDy*09$~@KR?WQbC@_1EfDwwI_JK_HiX*WWe+CYK#5`KHShov1jV$~puY^pYVKE>T zMBJ}sfS?7jUo8e?N8URG2x{-l!n{tS%EL$=?`zNTXsyNSa~L^0hiQz)m(?@>>(NN3 z<+ckW`B)6dBKh5Hk_#lKVyw*LcKh^DMREs&WZ2}z`oxWrdwDXv%z<44lT5D0b8|@B zHHL^79-!hPL4=kt0&81D>9-xe)Bp+J-;M#<#@X4D^cfBc@|@Ie&NJe8b4HKoE(*(z z4V;Px!qWv{d0Z&39->TX0rHYw*bS4&{)cJs{$aGw_5KZn_is{;KLtJ`T~x)dy1Fa7 z(6;lKAda!3s@*~n;v8cVwip;7b&$dLgp+}1P#a2Cldev(Np|P?JEBX<7`~QEh4W3= z-q#%*h`L?uvfx0}?T?b~vWDjClIB3vZ4hn5EJKCMSoxKlr|UT}2|o*y4dF(I5dC?a2bOl9N5^$l;Ngr)B<#fk?PA1YiR_KdWcS?@bQ^c;`epJxnMm#NB>5q0Dp;o9Lzn4K zHZgFU@&+e_$P2^&g89gih6Z+c3_XbDNgJR{LCvF~E)clGY^JNinx;Juw&P=oj*r4? z+Rl7dhh;-jq@YdSkb(r)%}~(7)L}pcG!jA&I|RqIc)vbkOO?YT4To27)}_miO-Jz5 zpIsb+|7QTLU$^*Z+hlQ-<+php!E8+wjD~36qg2T1cNbiNl>^2R&^zpBKT}Us!aPfXg;Kv(OAB+o!?CC; z!0^W+az!5iwy{#{?-&=TG!7s>re*GYk-%mpF_Yb=PVy!N!o*766SvU3594;XidiC` zMOAIpWuO9pvrgT3{EW(k$Is+cVpWmoZ@aXb+tcoBAoIiR+_DQ|w71%Z{IQE|$S%2E z$-Xhp6%b{kH=xc)(VD}^89C!&qXq!U=94Wbn!i0FAP)7hI&XA!cF@J3dK$S?+0N|3 zoK_9i@9Zi4Sqo2Zg`4pRlnc#Oi~6C=GTHs7!65re*}s#_D77u z&@U|bR~V9ZQ<55Bdf2FOh=QBbwCIUaCRWoN58JT%LA;j%1CSoqRg!9=B82>$-z70}R`S~$h?pBe z-u{BHI4YzHxfd=N#-UkHF1x`MiC~jAl><}~?+VC|$kqlK&^AmhKolOo?Ui1O?ZFHC zs4i((0B}9y+ksi~Y5c8WJVoVjwDC4Dhw+D9b^uZ3l&4e}sKe)bXo_kh6WY|hrmz>O zW$-1{R(OCes^V3VO+3Hk>@#I(Yh-IaCKmbg3yAC*L^iN78yUGvEb?_m1}FNp`ioh8 z?qb*m7#J+*FbodaH4H@Tgc7s?<^LpuNL!7`gN6_*5aTeT|4vvac&g1PHB9+X`&duRb4k!me z4;Uab)6@ZUA;hAMcf%uIze(PJr#)~GPv{Zr)3yC+NUg};ap#^q-d&PRpAG8+Mfx@J zo}V<1m|CMg!)+a9Z?y2r-sn*_rDz=0YjZcU7Fd*3{Zd{yn-sCIZ?;`xrV2bF|W;tr-$5IHR%znk%{ls07;yx-`|Q@+rF{}jmrkG zM-_YLu$M21m1q23)lGkoOD6pzw#GTz)pEubZv?mKArcb(7j1+AQ55$0nK{QdK#S{ZBV7>nA1#*e5U((`o+Oje9ZoNX}{8 zgxpKQFOQ*oBoZ>Ia{L9J1x>ZYHrxdY?-|&HHWyV%bbsoWWxu2DRqYLPn!lR$MYcX*GU?EUtpl2=G)8|pn__Lkc0yVUh* z3_z8$2vksB1ULZ)r-vTEVv!i00T)$GMWZ!6g+HR3Dt~WLzDooGoUhu4ZG?M~`s?o_ zh5Rk6*2UR{VtI3MRp72a)IjFy;DT zj-)kjq$p@I_g;jchZyKX37rnxeyw0-X3Ab>J_uJR%d1>M;{4j@EPVjx$zm#P%Mz%| zgQyXRYVIj;K&Y2gA@lG?udP@1G9GJ44|q9JY2}Y*vb~5Tq>f>cG6zLiY8j3~V97ld zMd=|~dcfOPoroGFR>%ISe~`1B?$<~9(}yg4oXo4{)mY#~*sGG$I^Bae9ZZ@3&Igvr z9{vw)#NqwWh@BXS?r1^tm16h?vqmgSrUxtvH=*uoUv7t;+xG$yV%fBjQ${y5VgMkg zk#Ql`dVp{v3ApxTu1J8m<#eu?$hp+I8kAh66ez~Q))mdk&WM#n5O59D5adV zre{s()!^x=lkpSAR!0=ZI=!}S>ksU8ir;gjfbDHOtZ#P(IwnXn!!K@g2UUi&<>_yc zXSBFknsmqavp-}s(ob|8N=Pvb_9vuQTzjh0%NT*8@B{D@3R*va4z7dRPw zucuVIMB&$3cnLch?BzQdd`#hUW$^ybSx{aX{35Rmw!I-DgR{O7L`sYjct(SYS0=mR zv8W8*rpZbs=2Ma!lfjSLv&6)rO|1-$AL3+i=}|~C5~h2Yj5MfKm0C`I;J$->Fin+j z3k&PDBejo!t4ezJ9ZICem}$|||8eSACz_Lmzid4i__&jw!Kmd$bGfMwf5h^VMpRkI zWFKmR=b;i~sxvuU&%GH*;RP4VzAIz#(p4ZUFJfMY(aZJaV`FfF7~pObI2a_SV{i={ zB*;71G|@US^>WrwF63?n6mj1%Y9pyYT3X)AZj_dnkd%*>hhyBV6%1&(-%VSEq2pfF#tG%8x+znsIkt z?J{$uXcs9E!g#KXkgnVG*PxVx)Lt4C>=B&skP4R6hVUMmtjxjtf|49lHbdJH!Nge` zmP>>9iCr&r%I18o#_8Mi(FyerLLeLT<|=K_YhNX3abt=>X{H6Z2uLT?y}8rOGSBov z0hzFcFlVwbzjnI(Ol{DnAPvF&(T)9}3xghf+?RrwWaLxgRl7w8(&IX?V693A(hCJ+ zsg?WdaxAfHhiRmrNE+H8dk+~%KhZyk^cm?D|00A-fgf#<+N4n;=1uQUf&>x&+YPsV z<9O#4KOdBFSEvlM+>kE_kP=?t=m96d@{Ob`c3Wb^e>*sKBjUdrtP5LWic#T9|8(M5 zf0$sT0wYf}g~h)_#Ix}8o1FL$Q}_ZE-@*LR*1hCo7L<3?d@iqCe>NgAYThiPuCv@m zYS0Sus}DvsE^4;B#=Bb3KJj*(7N8GexM@dnC zZhPu-3ZdFZWjl-cX3}L(jTr|u{nTY`u&r_uGH~|T^n*+xrM0|T#$sh@&S#szb;QM+ zr&+GSz)fP`q{lyv>8Md-B2;^qa3oGiwGQ%eft&+K;gl~G7@x#WoDN#+)F?P9X&@4y zw|P075+M#Jua>xYf;b6Tnw{IOU4eH$QFf3uX7`eyt>l(~+;m&bC!3B<26Bv>5gF{h ztZ3X?5t&4fYRVop#n~0ADf%s7TNFomo^oVn%~_6iPN)`W?i?4-A-=~?^c@@(nYvKU0L zJeZ(?k))j|lf40@=1j#C+4r{BOj}1XS(KB=v=PgyQw+-zLuGL+-cot?ebK)5?TRQj zER}}{9H{&Qrq@QSk$=CGmzLIsmflCg8u@cOz>J+wt0QWS{H50?Qzl~x+-QrEvh*`z zdeV71#A@TME4(ca*qoWIWN1iCJ3|H0PgLK;uS~XlQ*75So5Eh(d?d1l zygo;%YsDKdCF#R=uPW~yh>vtrE^x>SQipx%!k^NDa2~uc@Cd&MS4e|q!hMzxIiTx!$8!_V%JK>t|~z{fDa=pEj_hSe)KA>w7(1?+y}M@ zKVh>@FC5hzne5IDMbI6^z4t+%^z@OwG@LE6@6YSs%EYDJmt94<7x$jn3}zi68;Z)5 zb|806L74oqOs!Mq!Sb0Y?G^=U8vvCCSvhYuS(ElNQ`+BTWlE-WSSYlxwA`Y$uyjQ5 zd5uMmra;%`757#MxGJ{f z{Xe#HF5$bB;vi*VMF*q=a9vm&`1D?>vO31>B-MPpDvJ8jz zbR6P-A4je}FrCSEzSXrzGBKDCAfsJ4vd%;%!ja2Nb)a(v%QBOG7)zMy3}UNSMn@fS4Ba=fKU6OP}dX_n*JJD4xV z@z1wp*@7t>Pe2b_v|Y~7~XcX zz!Fwzt{>%idxZiU-j-Tm2|H;n2^#K5fsgU_@VvZTG9<#=tKSo}EN|ye2=Vp|O|!h6 zWYUDUJv7bo_7+Kt@%HA{EIU#Dz2)tpr#aq^qBK}(<`&iR-AvHzh8@BAr|8p6DQ_ON zss+iVyeue`TpCH1o3kXNr>p0BFQ6?A+0*m^5kmINY9+qd3Cl%&h%QI_%v?ZVF}X3f7e-nF$?EIH$#uwkd_Fp06_&-HxYPZ}|6%En|{q?~dKq zCU|}Jvox4x`~|XhV3cGgTXmJlxX?r;48E3H%H2d$D%F|Q!firBl+L{H)@MNFDGS{g zr0S)dtMkHL5M6PRpt!NPAGk+tc56Zk3?Rtb zQ;^67H*K<-$vVtLVGbZn|CSDj?^GZV1=>P@wsJuFtVImy3k<@zi?q~Mh&{p;=FaD6 zX)giL>u(LmbWM4_D(@7a?Ol}(`GBqh5bPgo@>cifDPFB?5(M9I>4_;t!lfZP$OjPQ z(lba5IG`8n@d?A9$ZgYP#^Jsj>eKa4m{6fjNW$Pg-ekiUwsIeDl3^u7UR{LwM2=M- z#H!nPQzKPjf6{4X=^x6{+4KhldTeM5Zcb{`#G{vHMp{<&MNw4?j9{~A7vZMK22_$A z_TAzQP0e6bFv}i>Zo@(rycwM*TD4UOy9L9z4#M>@AgjN!z57HIpyZTIe(Krdp$Z)E+zMsaF&{P%VDGh>Al|O-_lJ`7LqrI{gY!bJzl2+v&% zq&W(&03CBvzo1*sI6L7KK!{EO`SIyl#+x;5y&For5gojKUAzIMURknFwXCOzwbDE|p(>=RPkA;NQ~i<##Ja6LXeHLQ0~6kdgT%*D~g zt#MN%j;o3r5Qn*OE8tyIlbv!iyCR(LwGt0YQ0S5Qak4#oqKOd--!b)LiV(1^E6Mit zH8{IkXs!sDDqx;0Nt#=Hx8nnwHa~8OB8P1q*q`^BRH-;-vUlDjgN$2Id5iN_+d`S_ zjT*GVv7XvSg^k+fsi!5VvYg4DxJH7df_NtDGu0E!%x-GhhgA@|qG>*PiAEQ>!NzDK z#mtI*(%rmSAxXxzuvRDQCh3?&e|aM$S~tpPS)MWS?Q*{e$ac{2K-nU-2oy9OPYth_ z;Yvs`6PZ1sBZ$b}H~#_L9)Jr*N^KDMUFUon-nZ^vcy7iDUoe1LF@SBAij1sQ#Bu)Q zhvktBZ4BdDBc5C~Ju>}lc+3d6-|4Ane1XZHSsjhHr2qLOIFY-x{*ga0TR~%fyjQTy zV0eRA&Oq~Iy3%BN9GQ|{^f=$COpE%QF|6LqbPDA5=^FhhC48yN8D z7i14N4r_Qs32?yn-{u}kAF+Tq^$m%sgO10M9_~AoQjZvfXbIvSV=g2b@bXLfjV-+r z7SP)Zd3VQ%XOf0Cue1Y3vU2(ag%KvqCuLk172neWC7Gy%wQ0Wmwa8qG!x7T(Q4#~x z2$M9Zz0QHwe2>uYWu)rt9R%eDexI!0Vq=!+cRk~~^V=d|-HH=s$w6y&mg4PH4HnWG zh(n$TMOwRX#jH@IH3y#zM_MazL|bv~3W=ucX0mN3g|b`Y&kILdM)mzZ1UZr#0Tdnf zUWg)V^Ub{?6lra~SeQE^|tvo1chCoK&J2G zK@@_oKUP#gvE=4dz3myh)4y7~ICLwqJ3qk_8ptyG4{F)6wX;h&D@VlpjRbf0p1CJh z5@&V8gEeqvcfn73S#@fE{Dym~8fgOsD3cxk27FL>IEO*oPg4cFfJ3FfCx;oAu3a_N zCP;4|N!Q+*DhblpzZ%Z39X8b^NdFY+6|;zAf%Fqa9Iy8CI#P827H6o0eX+sdu713S^9J4`9U(P@97w0?Exd#Q z&tm+-XNNe4;6D|9u)UFe2irl*6R=)0c*s20$^GJK;ue&W zK>9y9oxo-msSo#0jM0H!3PSRcnylz&vbWk~R)^&Fnp`T}z2TI9^p89N*kv8jlyziSsd76|B&1l(#2(RgAv7Z zB&fyXy-5w08or!ygW;;!4{MDYXpz;snBGEIS0nN@Jwk~UnsE@x8@tbUMrTraPaiNduiUH7tPNywg7ml z%48d2l*Ue%#IDl+#IQT!VU~!kBYn^oYJy*f*)H~oOgNYL%E)>x93G+CvhOljYx=0- zAaI>=u!{#l&nF|bYSOakD9J8;5W!d3_*Q&nEtM8+M~)p%JR3k^pg8i0=cybZ*&MyWU1riqQB+j7TW~n`?jMWBKS*J{?}GaH!4(Aa=4?98WH3Mz5CCSpylMQ z8nm1o3atS5r0R7*x9{vY`TF_F$x@MnMAaddlP`8tPWE287{~jPAP4%Opoxp_nN(jB zY`)mC#NNq8Kr{CoD9g-{aYCE8DcFBf^kRW&49dPp@VBdNA35|OMF2Yy+t%~!9y7Pl zGPv~$lWjY0R{$T}?;aHXbv2j(^1eRT`&-*J|c$C2-me$t1ti$bQM!b^6u_<3An;v;cI z<1Xe5Drn=^dN>=SsA_?F?A3_S3t66Lly5D7WvE3u{t&V=U&lXlYY>Ct*&Up?J|P`X z#C7Htk}e{L5uae5&kD`RRQDU|bIl+otL-eJ5odlJ zLW_|fWT=wqQ>r=|``wOGOpV0WYN9V8!$2Jb&p4VyDX%Q@(j6Ws6>6;}Iw@)l4ZB>j z3Go&`$#(4HIu0D89Z}L(Y|aXeipnuL zei$amHW;JgA4|32l1x@#fCOXXoaa)iRt_mdM$SJw6L+g?%;Kb3E&?au*4Myb{sSyqi;OLg- zu2ki{M3&xeA`^EX;FQy-d)YZz9+VS*@+zkg4#x`)SWP??r8(tvY#!wl%2aGJ?aEAU zq!|bL{({=ZO5&TNphCsY7KluC;VFO&6x5FE^RT41bcq;CI@KVfVUkz8;&i98=D$g{ zuqx;*sqrs$mRyTynVre*a9B_*I@gXfBv@)BtJO43HNoFhvNSc-h${0~E){{4-yKp= zDE!RfVV#l6=FhKUAiZFa<`==X!*cQGU0pAk(K3SkJyRpdH(wR0ZuQ?*_f0Fw-#`Lf zb=L>g9UrZ3zi4%%qt&hb+v-MXb&Zkgwh5~H2m`lmad7YDDG}-lO?Ap{bk+Omwyl+* zZC>e16PH88?C_uixmp1KIt5c-3yS%lmM_$!x*=Mg1TB!1*Joqp-54!zD=n|y$WB`= zPlA#1etLf+_>GO0_wozM4pZKu`-I*`293ZgS=}&&Cs_tArP&%x@EQ#Y8ldtL4OW=c zfe1G9O|#oNtJ?7rg{QEm;pVS9QN34u@u{xkouCVL-O$it``;@{wBF@>`(({Ik2z)A z&_Dya;H3|PI}#^;vwxm9$$IX|Oq{}8WD10NcAetznV=+%k)bORE?$HGa@acvmYCqH z8dNt*COcDu1t#?=2EC9kwy0`0ER?1x_!F!;HyG$6pSRv>J-=@U>C{j&ycoFR7@Qr3 z&bDyIxc~OKXnCb3{~-d${ogO?YW%ao=7CVNKI5`0Yb~00#^Pi-G3>;*2E-CbQqxaxL3b_-m*$#d2Cr7V)3@IX)o0@(V-b4-=O>x z29f3=LA)*N<7cC6sW+`NKNfH6*ot+8?|`(dKh;T~^4AjBBUVtOsbEjQH*uF=fRoKK z=`zyMDUxQZ**{jC%~LLUR_3LB?K4ptZJtue^FZD_^EZ-bE9PlFCqUXFb_X*YmK#5c z@u532E&K(s3M^kvKs&WmvnJo=@9eW1=O5ASB9yQ@FQ2?7~B0I7~HTQWU11mwnA|x z^<5f*zHipL<9T1y)Hm{%e7B~`ih6FzqnPU5A4(->5)1P%?uh0?a^>Tr1$iJ7*(q28 zU_q;3jAb8ZAi7qkYXXyXO+ZJusWd~=we%yT{UrXzS&lo2I27hv2si}25d*qO&s_-M z_!6Y&E(H7xr5&W_E(E+Aq~q*H3p`p-4^+@T1^ApCd`=HOIr9_%J7Y{WASP`3irMX_ zv@?k5`Tz}k3y<@)m!PvETu*WKeF5}~XYTDx*-zE=)euQPC`g}eTw{^+`-Aicn67LK z`Okl+)LSf4i}GWw(l1zN*~@V61($)G1w1mSCHb4AYmQ8|~E{PPOB@4RJUnR-3M5#Lix73nNLKj+cH|+^1rRFwN_Uesjhx6*9MnHt2-fD-F+8D zsB6q$-C!23bNG9?t{rgapPIi`nH!$%u6cui#(|@fuX^U~elTUzDT-o<4KGYmHlQZA zSLcg)%i)j4^T2+skY_rO7SsN0S>s}tf^2YuFz&FaEfF?^@wjwjc=S6>@L)#?;jy3K zQ7aVNMiQfR50-;tumY~$REv*D+39_yICi#BaUa8#f}j)!b+cH5LJfkmH7H0U_^bvC zgxk1(l|h`}WQjeb7mqjxJHGHX@jt8`Uv`XIrwXUA90U9v&1a@vkBGq_?% zF7}_W3%QO3<`q?4rM=3E<wy}8Zw!LBRO*cvzM+Ig4BUA=j?&nACx$>8;B@WyGWfVphI0jnP zlqkrm13~q0+@DfHbBGHA-C(x@UlGaxBl}Jql|02QPH-u@%6v2AU=!@3P zT`V1cm@Jb?NuZ)Ls377-{z^2ccxAFzou{f|ut{!VphYjjA0^3NXyye=rXQW1e&X=i zb`|Z9Jt(2FM%U|ik+6E?cRha1E9~(_RUfNUSy%`XS%v3IYby)x_}s}a#@k#c@YID$ ziNWn+acb07ki)(@CL?`!=0`zs9z5Zun|GvyOQ!B~+$E$1cROu^;2X|5F^%HyT z!7uC=StK+yglTGTXljpX8fs@6n9P1QGh{&>G*5Ecrg&#~q$w64h`SMizYN(1d9(Hi z{~MNRn$8lWd?`W2EL?siRtGZTwPp#K)M!(d-1`@5^w+tZl}^kwIdtcB+-*^+ta46GC_*@Oz@#dhJtimeIwLlVKy-KrBgHBOJZ1D3T84MCC9ttBd-7*)6M)EE>;>K zQ)*Rr5-w(qo+l=|EG_%oB30Vpz!^fC)C4~8ehyo7T-gkiw$KYd`RVRKYq^!2Z<2KT zWT+Zd9*&V|>-BFH!01~klTe1dl_L4HFt3)e%9~4>qcX(^zLg?SEU&vn$y+IkQ6~G! z&16C1s$Es(d5PDKRMTVTIFN(x?Xo8gI_K@H34Y=vlL@2zEpceO!T2Bt-64QJCj#x^ z(o|XEy9@JTbt7&Tz#b^DT&+-I?N+)!KH3SQAS2Gwjy7M`Xl`Ki`&dQ>`Rs1H<7;>j zPV(L5^1T}5n=AQ3blYb57ool4ZDqfRh~TeWVX%1Fop&W~V_zGVVkS1gbiKkRdjq?e z&puxLbc&tHXEw+^z+CL)a|hcaPw9*&(@|a9^`^=yxy`kz)v0CamAF}(qf>Ktn5ft( z{1P1jlvgu69(F$#Th_H0vAHBPC&X?rMV&@5`UR!lb{yk#y@$`E}Le zy!DsZ{2NKP?v)oel3rl)-=*nEFJzn)RaIj=ZW@C>fzzPWWVmS{v`Nz{45&ex?ai%0 zOxX8h^PD1i&dZzUJuLF&%hO)+yo%Pyt>>YQ%hhUVNL4G~ef1uL8*I=%%$e?Y%QW-lU>uR-=_hTuAQHv&&Yx#9RmBdMcf@eL;a!dQI0 ziSHYWuQ2fkBOYYf9(hqy6pa!C)-M)sd*C6l_yPmJE8_DwI1gRSXxvAQy_4CF4EPtV zj(ImLS7B(lA#(jKH{bG>8o$PDY{wpLQLr}+1@=tw26juzmUi49a|q&ceXB3Mf!dpCg7E_?4x<*H$zt~x!UDh(ohZr`phs|b4(<&qh^s9-ik zl~tKx_4o@}7ca%vtBb$kgwuRK@a^Ia$6?Iko%vwz_i!B_mtJ6l1&JjH&QF@H*#KzY ziDhx@ll|j}`RAe~c#2_l-*i*o^k?R#o>qN>8b0QP-0p5_E#pPgBQi{tRbyK*Z&u;_ z?MD0-O)IM~J6?a~coS6e`2MW6tR9GgzB;k4g48rpqiAL_g#WN_`YTek(^C{4J{&Tj z9)#B!890CPVoV)JoNK9FgZ*Xzn;fY``SL!Jqy`OUHw_nm>AwWINhp3Yil1bP-xDVw zFi^+dcPXke*VMC})JkNlh)~XX0$monNwks+HjYj*iq4=2Iv)+mi_XN)1)X+EUA*dJ zP&IG|CU{?oP7$^kraKxlWLsRF%|(aMVadqFN|LWPptS#lz!KR}uad2q>{(85a?W1GV7 z*~9r;CMkTW!Vk9a5;o_U{KBiZbLEc|_`KIv_T4O>8)nnJ)eXa%!P-f8fFvLy^<}cZ zoumVtJ;9XLWJMq2pGg)vk^53jR&L7DE z@vbXQF3R$YyKhU*iV&QL@mc2@f(H?PKil0z`ib2IQX>DsNUzvG&^bhh|3|qh%^SW4 z`~x}&O}kTfCOSx_OtuDVktpN1po|0lKi1v_PU~s=AD^K|7c%2$oFW>zB_#Kf%an$Z zA`!_g_e4r2C1GmjVICh3b7;sV1|gTorG&}UWo!e!y*+v)L-1+M;C0-sZlPs_>JUY#R)yy_NV zthSf&_rowMn@fop7(HLJEu;TovWJ=M2Q=F<`p4r~I>zX4BxsoUXoh91XtCc%i zUM{Z;tYR)bUchzcbggo4wqXj9aTm0o{v4VKG&Mhp;2=d%Ex0F_*GMJUQe4?uLX++e z>95|Fju1+9ZQ-G<$#v235o0I_oLB2WA?jSTy(Xp;cMGH>mN-adu_QKku#h(dklPu^ zbfO|i%y-4RP$Ggj$_!V<=&)|ipzMr6R>z>s*=&>HM8oYmD_ipIw13nV zPPR^_JCIHusj@i3!ppal#rqC)vb(Fo=ZR2>G( z!ci?lw+P1ogch@eW8FVBF`f8aAVm&#agZV5c+){H3n15zLUFI?+`V1Ta{sgT?0?Q= z)uEo9WqT^xv$ZW;&rVnw?%BB(KH9U5`@5d)r|{W5+q(*F=kD2&IeT{Aj**@{$76Zd zvxD^0_UwblM0@rC&9*&TCE2l_y^cXqyx}?B_H4J-u4k{1Jrq{^8N?DxlH;LKP3(mNJO?7V)I?q2-W!*hL=My2M`^jF zuZ+Vg=;k(>JD%Sp4l8Vz2~N4j-F|-ohud$6@bjyqgx!fFTB#;@iNkj%?=t>AmjF=I zCp37j_=hH@6P-)}c+Hy=(kr@@x7O;wd*TC3QNnD5#jsLT^K#mLlkb^X99AkUyEA@w z?s@iV3qi7l)0)41Qe6C1%m9+D1TGSbox?4F(zMt=0x(4Yu0mcZ*f4V<_&= zk2U{0#;7p*7R^!vH_VXpUJTBnxuZpM&CSa636c1@Eq=Qz9%cHcINwy$bhIg>B;=VU z&vj*@r1AVr7-eh2Ze?AN<`PrBa}3U+JVM~W+5Hq{txNH;_`VN^u<0rIHH`d5(R!^i z+I+ET?%7znMeEliqiA_CIE&W10tdA2f|_ok!;d6d?G0Lrv8DDvR2vJ(=NZg8#9Fi% z=f~15#>d7m{$O&HVvF(47GwXWO=6tJns)QWLHvA}!71tLj0(gXM}S-U5NNbVPToX; zd!#@p;BJl7dGElOWrvR^&S7%Ke-2)oKZ+ld7Bb2ey^URWkN(~07Z%)%ZM*ORT2eFq zac^5e)ms>)tyOi_d6vM7b$*vaL}h&;QX=!}y-q^9I2{88I5`YIGAhcqn^(WPz6%Bd ziI2@)hSuG@dboub-L}3_+n2gHr=wco)kY*oTX^|)bD5I@r)G%2=bTqRn9~>e{2!5d zb#(1I@s?Wo_9Uta+_W*_<_Ml4)f5*W+w$%e8>LSyQnRlUk}OhN5Ge-7wt;o# zTq@rV^e6A61AX7~*sYu;7YZB1pWW9arW0LE0SxrpGZFjWI=O*1rVmdKEASH2o2N`mS8goH@hw)ISeLtVTia6~voT-j* z#wo$QKRczV)R@K*(i=f=Nxq#DT)&%Bnv)bhj|MIB?oB^NE^~Y8&*apO#)62aK0dohmr#wi|wOeY8?T3o0?mIP`+KCuHMD<(NhX9^rYl*7J-*< z?4BUr>9#xm;p)Fm;iXTFA8huUt6^QagpAY~xxK-z=*!<-`F~4(PQzHAv+I|%jTpvJ zS5tJ{dsoBsQ}6`;PSj7O2Jg!q5|xDgHCvg3_XSP1wNTq?w(>gTpD)=lK{@*=5tRN@ zte|YY-U-S{ONI7XA_ll05ho|XXXC92~n@ZlKuF>QL=l*;2ix1&e0!(vy3=h;4m)GUxeS)v>@VN+2YHtvgm{d zt#hY%>Y!%ZI%lh z$m|8LZxin2s*~YEz5*){c)hka-WzYpkD^;2OSiK6P%Pc{-hZ&r9!B??7@Y0BMgwQr zKR56vdmi3T%`TLm+E((D&cjc9eYCQknegv;%Zi%8`IcwBN^Me%z5EcqB1zi0v!k?b9i!y3p z4zBjv$#Hdv0voOlvA`j&-oDP&yq5rnxq4tuuKv4az}1V!Mz}h6zYtfC(>%-7drY2i zbzjZ1T&cu^mFMtu#E5fq!3)AuivXa?{o%zaW(F z89k7_u%aL)*w%Hr-2vHyk6s%%IIF^Yy4>>ewRwpi_d_luQnh)^Hf^g5dD=bV`&v$n z5x7WH>R-^ZrW?X`R;9LOdDNO&@jan?h|#OBhyvMmx*8ziczq1WvOXa|uuHGQKg;nd z+J7GbQP6{Z;6*xXtH_OrRcVoXX5SEUr7<9jT-pE$a>X$qi`;Ml0&@H2MsA2ft_DMX zFm<=3+hENyY));{KP(_gS>|+0Q`u3d%>UzIz)V_5vl-hhHfb$ybA~OYI>D9>l%HCv zEw)#c;3wObG84P*Ar(>x;bYvv*4z@`T1+-Y`FBZ3RmB+2C@bV%+;q`GpGqo%yT$3; z@m_vv~e$W6VK5@_DWzHmt*{Kd|O=4()c>~=$C zb*3_NWAjC%)R10#0N~Abr8`H<-@rEGr}4MnY6L4&1;^Bh3^Z@aC|2Wdq9j2Zh%auY zB7o*}W56bzsQQr65tns3~1kay6%LVxQe;iE9&+!~F0b+}5Hks-fQ-Cd> z%G;&2hIq%gKM;A$B=-h1TFq$ZDT(^$b3S2Ec zn%>yR_h=~*8S%IA2aRZZ{&jAN zzeAhr?7=dx^t*!R;iizRj?rRUB(f!bg~U9~>zH-Rrzu^mqp;iRZ-vW^aY#KtzQpy(@{+bLeo z+uT{QKrdHqdRFzr&fDv`*V}}Ib*I=z&CWY1!Hzj(O6VdILT!mauFa5P{*+c4HGdh) zjfjPhlTR@(XCR#6K;chgx3$izf9#12@d$)!oXZB5GF3KQ&}Q4-y^8pVSXRIQqArbL z1n+~(w~hL>Z7y{4z<~;%2OWYzRgwj%V}=o_oI5%&>;!bnPj);81Pu@+^5@Rattna`t+^p}adB_XjU{g@_ zKI~7^>-fiMifiq)3pcsYI15>-N72~T)L6PDWEC7~m6 z#lDeE8)`;*!jn<*AZSs7n5>HIUQ$F1xrnTMYbdDs6DO}r=dx3iT@|y6yZXSM!wu91dDMjGJ__<+jZ)lw0+VpMm=aY_x%lzd2?M z^l|FQ{@XQAG0pg26>DAt^CoDXl8pW1k{1)-MI4ILiD$2|;yZS=6W zvbTF#!BY$13ejr~v-tyrLL+RZXB201)yIw*7h~NbVDmr=9AfhwZ5^8rQ((hpx@d7W zdot}5gHs^DVKzUSlg$tQH(>K|=SA3jPp1%@W&O|!1YSindBWyxwVY-1`H~l7^V#%? z(~15QEt|Lg%(3|-h(zFeHD6%)Y@#|R-)f^e!^*ri-fTJ<@aRNSyg}@W_whOo58Gf2 zsV!t~{ttL#SOKmqN&TW_^8bKLY<$}~E45mW?b0&7GM+R|%SB0;%*k|@lfiX)I!gGZ z>|oh}ELh+|2=!8K!SN~#A3Zj6OQ}2R@|mh=#_#rwboDS6gJ^c*XP8F?Rl_j8HQ_GD zAV#jz{~U&_ux!i9<(jeQnlt5|f4 zm9_~GyYPf=djUDQ<$9b zcYYZ*`eS}gdE-VrjG3H*-_-0H{2Q~@UM&-$zQfkC zPi1(Xic3xSWZK+2_J*gKEI|%Farm(4Nu)4dfXgm0pWj(DEl&#KeiYpx%NEN#dBI)( zgme`=wG{OzptP|2`=BD7oJ&|tzwrYr;3c&{S$B8~k_D$iDi>pL>-V8D8UGbHM>Uv+ zHlQ%Irs+NiUE}&w8ybJzCb^guXOc^8-ejs3ToBf#1Q}9)KkZG8f&h*001Y~8^>>@v zYF2{BtN3Fv5$spAd{Y1kfYu68$P~u&a=#X)*?QxTLjp`H1ryFimBNzlFuSZ5mywGG z3c?bI@jW=(5|;r+E5c1DSMkf!AF%%!S>jL5il+WnO<@tvHeUp^B^%Id5KjPZxU+Pd zq>mza7Egqt@z>Mz``5FixyE0IHc()mkfv+(C){<%O_px3_5LQ|a@$>+Dopxujn0&9}@;eQ3PVvwjKnOUD14)6AgM zns4zLHcjOtn=cH!H4!hc<(htwqVNH66}XH)1=WS-JPwz28(_!C*7 zPWC0!HD)5f@~tkz9Xe*&jduL)Zts;Sdl90?|8>m3^`zS+(X*WU z(fM(kpmwgw!s7TGr4d9b3u>Skl%)p3Nf3#UP&^R2p~j*=#G=pOQ$u#i;kKj~RN|Ek z=Oz_XWojVm(AvGwpK!P752CTD`%vgY@SOe%V#b-dA*I+%S};rK)~AUfa6^DS9=*W7 zWJuFWvNYCjJKPKnd7l$Ni$hr#ua-qzLdg)p1kW|t$XBHG)~5B!1w(X!j9mB9tU~6g zTpshL5fxjbL3?SnWulV-p_1jr1H$V6vAbgsxwauCD&*CQcxtRCRcNd8N`~Pq&9?9rb1YvT?CEfD z8TMJ$#5JG;Gbb%<0OHYIwel`6RVG!xSV9}K8|0^UuKc8D;RmY~Gw_o=en<%;=wBt3 z*ID{mERs~qipqi@`j>rpDLccz5}4*7Fc?@%dobUlSx6&5-~0&FP5g58J3?Dh8umu> zpoGYjO0A3}@-5(RoA74F|7a?3v!K|ohy6G;ndAy!1b)zlYJFw2Ir=Be0bZE}fH!C~ z)<@_}x-2NyQoie=;asG50kVwyt|f_;^4X%P8Z{#fCsaFIO-PjX+T$f%$uWeA_i_-3 zOXbYj0Xb*@3nMOG{vk;+rYcoCob@V!FQYS&lkxl9iRT&x0mPT3HQaZJMhhyJIn;Uy z&IOZCLiwh8B>Qz-2b^k%FY|`>FcJG7C1Srgm25|1Yx!>ooBo@^hKPKHOk5%{EUVOZ zn=0jKxE2uJG;K1QVJ+U)o7I?;-<)3)C3A9j;Fw8%j7$)g*L zitD_XJZ-WJ5D~Kx*qNW$w6QapBVP5AVIX+puoN^SYyd#zKi zLV)MP9s#XNsRx#Vz`c@eV$4$+dFr0UnnqDN|#&eN>FT;E(o2 z!Q|_RvXRePCpa>6j-DYufhXHfaO~!)8D`A zYCc$i!;|TYa8+*h`oWSxHSpt5%~O&yz9)HM zNx@dq>nliU;))CGWcr{bZZbWA5gDW0=^EL!f@qkuB!=bMYeYme1$TUNriz7E=_36B z5=`wS{i2&Ls#Zfd(cVWUbyYf(`k+;YDU;k=^Lo7s+FUV`;BuU3RbE7s)1ubqk7iw?DhCPi(Q z3C09ithmKuv4%?(UeWJDh19VwnC@8%HA}Mp2{C4y#;ebG2}|J@?ogjcKM91Y^h#8b+dt`dba7N#jK}tZL1Oa z$EMZ?XPl-H6Wpg6s%tB(>o-l2&U5vbv3>-SwacY0<>Vo&r8zN(l?DJM(WM z2D2eT(jptND;9~E3PF&MlR0yBo`DSLNZksi-q0@oWID0yPt@S~FQ%Y>==7QMRUXrc zRZIC7?mrkQ^$Jz)T%vMTXlULEG=wHFAusZ3S~=rJ8b?I=lFtzb-I)@ecqOe;$&OSg zD=pQ$+tm~I9#QM1;44M=Eq|Np4jiVdwwH?Sgr*Tpp}@=_|0T@B5@i@p5O0>h5N+UI zetWH5KiiOzuDRpLD|5vFVk*TzdIbyG@~j!Wj#%FUb(Fk#8j@! zAG;k!cNxR*+qU{Typ^@?)cMV=Y$|G&27)flPACok z`CM{~jiK#&6*;#ewmSgtF61@!!#^BML#t1-j*dnXtSMi&S;&-oF`yFD)Vl_#foNP9 z15$a+_)iKDeEzWmbH*j^odEPv{(USmxRKuJad&J22;bRhYi-Z;PTBCQR!3vx7S-zO zqUn~-SuyxxL)sdVzbF?mD1CpGBD*J$_1EyjUZUx4;p5Gg!?C4k2DTK{m8AwxjkyBY z*ZU>)y7WuvxLoFlzn{mJ!?_%s2jee{-7EQ@?8QaoZ3EeJ5iTiJK)io?nRE`uYH#q= zG7rsoyfYE!U!ZlVS5S@aTK#c8CcrToE^WTRagEJl|BciZhfDYgL+jxWggQnmz6%w{ zWenVTcf4|EOO)^z@gwSI4OUO9nx-OEKb}IKnmt;6YKO~@oWlzjW zfkiz1J2jB|@CEmD;--1lK#qQ04P?LJY&$7+!ono^CYNq8swsk&%HqX9>FFegEAfit zo1SaBZ7-=%T&QAMUN^cX<6qc?0;k))`K|M}e&o(i>xd+2@dQ|8%DBkswx7O69HsJC z1bzUTL~Kg|dcSZ0h|2c5PJWMGmpfpwo?B;ZOSoTSBjaAiBmYG6tb}(nd9&Ep^EFRt z&-nk4Jg=0uO}5yr3#13V*mfMLNNhOWI$rY{oa2=*23PtcIBi19X8eT9v77?NOV_%Q zNiCij?EA~Y`Q}ZfJn0F^pA^amy3?PBJSVGIzg7w%xSFHQ>pY{4fU&fU`(kjf4U>5g z&Z`Z<>)5t@u0X4Zar^M-pv4h;ai)ctMcVA+ZCks zNEv`TSH)+1xh-l*aV12lm&6YSvtg5xtW$=`58C?ea+c7Dl&6_Uy`Agby3Mrd3<+*1 z1hV!TX?JK(4Oox<)?J@wSwYBqt+VV3)&8zF`67AgS}Ci7zSExEA8Pk6t7J;~Gm#Q05(eO?Li~0G>qs;Wu?q2cy;F$qxc9*#j$8cCTN-=~WFS~$<2EsE zc_i3Jcr>w#u#z4V{T{1BdE`vmcp1{yZ;W7A6FcR};0t-%F60YCdhdFGIxgxJ#;AuC z8qulTk|XeE{Zq}j*0+D^TNzr!61|WL$S@w*!Iv5Te!(!Tv%vil%-+WzYO%57$71P~ z48-CSog)#16gn{NgsIy(ZS`UAgYLygWttVr*^kriBa-v?aU6S5TGg$rd)H#ia&6iIXb1y41@i;PnJt@g%5b z{2d25>g~$$U6;DP!Q9JBYs1npqHwa@XeG!@k3*b4n_V09P|YNIj2gkfb>z}R8UM?z zU9)O+%a1qQ^yZca>gv_Z!bgA46i>6bH#^J;%;8S$%{v6p2;Q`~1;3cTH8UJZK4=AH zUi~c6o6cRqh`io%C8jyHG{IB?A}qScVATt=3Gokl`RX4`SO4JB=V%Ua_$zUZ1X6I{ z>aalE-7qB*sslzpZZ}l)ux+|CIu{a9fYuZy((>?x^J zk%|kk)0$2GV}X(Z*$M?`4+JFcX0c1x=yZ=zI_%V6)ge!&@nd&@HcM%XpU}2PJ|+^F zyaX*JmW$#O1D7hGdt;D?(NCIvMnu8xDL7!XWe2X6vx2Q!85eBBz!Co=`chT)#DjTy)m7|0SZj)-vu#yB(N{ z&ic8E97TQa;yAqc^}%i81y#R+2~9uXA2$c z=L4iSJq1oWBGm<(@8EU2yTz-u#cL@XF>aB((zR}elZ;<_d2|Y?ijDL1GotC1YlD|X z(=DTZA06q@2^SaO0Bq2l?b=fi*AA!K;oyi^y6x;Q-zDof+lz4Y$V-%?L%Bd1ol<_e!OV#{Bqn z;>VIpKe^BQ8nxWefm&H~o_vZ;C_51jFvNCa(Si76Pbqmk z?rkzT=7ov|lXGB@qce?CxMNagdy@mTE>`2-Q>ySvdZbF9Xzpn0TgQ-B=@V)IpSc$X zu=I(1Z}1Za7H>8!7_*EYi%KTs8^vWC7$1^kv`&`O`nL%2B>WwpX`k18hUSLFOW1KDt%wacGp_=%5As&W2Y25NFy$`094W`y{J zyS>u?V=Gcq^t==nfP0Qdis{_Z2iS?*T9Hu85^??_*e>c?m?xVw47t4f8uG(<#^bA0 zubOovn)kTXtD%BB&Rd+yF5Gn8Bed?)It!F&53!~M>@L3De4vYI!r(d+cqqP>!>p}O zhWgSvW$HCz3vhTbZ+*_N((em`#k_~QQ>@)^_w!mE z^y|pNl;#O$`25i1H85|a<|)Z|Usv*Ci+L}cPf8OHA8V)3!=H3h=$W)(p01)fThm?0 z6m{Ei3*hDQ)z*YhD-Sq0oNr=E$|fnlPmmv29PMWt6DgF|uqSG7RF%?sr`f^-0$+#I zfK;xZHXTQ431+7IeMsEVMY6%cV(Bbd_3kpoRMyyQCq&ZR^l+WXluYcqE3`7%?AbCw zsqhNb!vKSA+X-&C6gEo|YP^Q^!CKfIYKk`5P%qTLIe?l!<-D^PKTU*fNWo&LdYQ`} zR0e&nEx4}GDFQ1|)6ssUn2t?0dl=~pcsEvJk$UBfO_dHiqo2+XrjRv(K$c!B+EQZr z>R|m;LBTFExd$h**ToJl7h?Q4zSC67AeH;Zd| z*r`pHJL9KhiY^pmS{>vYekqVd{4eo1S+E6}46x^#=9O1zP3@lDpo?6E@G!lpZvUI`Y#Yp2aNOiUn&DD=tX&nV`c9K?v9ZC+(jeg zQxH4>2mds*``=%!0I6V004&^M17xD^0oP(uTdWpo75gi|@~xxi)hnC;4H4k5O!Utw z6Kh`*nW&?7PGJbe25>U|7hi-lf4t@?rkJlvUaa32o+S%x}8g=C&ZFD-4foZ?%-(N)*f?gUIvu7OT6PrUM(Q z)wXu3v?e}o*XPK3ZgBZ_wid_cl)-{YXC2hd+3HVsgkpb>c^Af83GY3NV4fJhWj_8h+qrU@Po?FN6HFRbD_ zuc?A;h%@%m3!;n_w-zLP*a0IF_IWA?gI!r8){`FEG9!w4(EYe57S%aX+`u(#D=EQ7 ztB@#u_ns5QHx#%+<+jk)EZ?eDw@JWKyuLaC4$JM(oN{~M3xO^Bcz2OoZ2OGtD>AI*mXuU}s5MO~>8UF^qF0 zYxAX!b6JN?LHz78AopE9oUO}1^FhyA&APf#HR}K#cl3(xkx!{$Qb}Bj3(ov=DaOj1 zNb$OBv#j>5A`M3jE(_7KsQLzv4KEjM+jTQ^{=)T)CD{QGj@k(I8-F|+~&Q|dGRIFl!u*+%nh7o0A6G0i-MF@kjBsKcygChm8d*-w`%${;6RNedjp zq`=_RmV9rON|p!T*bY@v$c_KwgEX(C9adIa`p;s;t{F>#reM2Naw32-$xHDsB$2Xb zNn6wPL+ol}wkO#D1v|OdiuFqU`1Yh_v@d@XD|@MyN{X4HSaCD~3z0M#2sogm6W<)y zUR3BO_&T1nlae;AyfMmyCmiKP`oyKyumxTPmWWc^AGxG8gTVp85{TEgb8~Jq4iPrh~yU3+0xuLaKAf9wKU1O`qX96V%kytCPhuv91pCrUDV0 zp}eXKr8uu~pEL(iT~Br_%r+-{U)a{>Jed2q;t0w|o+%8S#rkcpX8cJe_XN$I8??Sj zOWukrbb+|lcli(})PL>Dv+iwgIu(2Sem!eG&y_bwONkawTHAfY%W6%>(GwMh5X4+K zxZE$~z78a(6CcggBJhNcBdk~S+`m~=4AY&6VtV!LLEMMI3i^9#q77k~A&Ig}96q+; z?GPlMx^Xt?W>bsoNkZT6sAfMT2Rrg^A8Q{o{_&&avx3!vgY%CA2ZJH1yXJPMG$40p zd^U}QXT%s=Xq(@w*by3@@|GC*Z9WQFpy@FnYl_x>s6Y*D;kp=*wMiKP!j$*sE;*;X z&krJF@jfz~1Q!5w19OU{oANN81&G%XyfD_BwJ$@$I5p#fi!gPT8wXgNHb5Do7hh;3 zfcJCcx|8FsScR7Pt3L>_Yitb2qE>H!gk1w;Ko&LLXMsTHO8@LE)SN+R_hK{-VEf~@ z7ozF5GuI$JM;zer6P5F0CpgZRR;?+hBDY_rKY_LP5=fVSU{46o*GLHZpn`pHQ^zQK zEuqU+gt&2049Ft;lmQZM^oapk;ki+Oz>O2(g0iDd2t>rf3_2d`WQSy@e=|4A4cqW` zSV{~P+^;l;nH>YV%ve-=@#;k0np0$E7u6ih=|zxs=uv zOvZjd2W9pVyl?{SsvPJl<|#&RK#hbvanzg7o@0%Vny~r^4jSYdmQo_y2R%qTUD#|2pbI+-BpiK^kZc&=a^Ytix;8WyvGChpSFXx0YrTL;3mP{JX$VN@ z;r>(-wB!$67spHf&~-`U4?|vU+;G<0xDa6}+$va=xBPpiTU0IzP`N{*NpyIG3p$nQ z--pqJ=`gjQ5XXjVfy{yyiH9h3{06n=Q0lk=2rPAzz z(z)*YCHZdP)+3|>;s#D(Qdr;ibdCEWt_Y<{SJ>}Ia2XK3SK*rsDG@YRK_M;L^HWRr zT%7K>g(ReF1Osf;G+j2gH#bGv#wKtbM=#t)(S%j7fu<@k5=wrAq zxkfH_Lhm;Z+v${C>=En9%6i(@yn?FBWH%VCdM`27W4EYjI$hFey7w~YgE{2^y0gfe zs}VKM$m9kL&ubba{i4cgtkVwk`mA-rr5CijLKko5;O1q@Zs`n6S3TVrv+i)R6Z=T@ zbI(R{8Af6_VT0P4beZz;U=Y@w3vEsB<2`B5Iay%j?W; z8+%)sF?fa_TlTa3;65>wS?Z;QCyXb^TLda){~CY@j&K&Yg2-TH4QE-2t&-Y@>l(Pv zm?ypMXiKx<)rQc=0dLM>bp%#23o6HKE)I|pl%+kzXctsgf}PPE9lDxEFhh##fZMcx zHsilK#Lcn)Ft-&Z!}hj{-huJbZSOY-I`@8>A*_q);Z{?z;V7v?VqW%2%6*HD=E z($Ei;U*}u)OTr(O-{hkj**i_vnI0Gw?SWxAdO(UVL4B?hp8I4|osbP%EwIuLGoj{{ zGXmsyO%VrVhc%Y zC`%1q+}yj&nEe&f#=utM2f}{JHYV6Dd8Hw(m`HrIk$|Sq@|OHt-jV=&1)UPq4)L7< z5MYS=vmYmV;qk3!^Zo&=1!gW`ve%5aIf}^{|5(^`zXdpc zW!+2#J4prfyr$Y+?PvBz$AYuh{0<2tnk)UeJo@JqofA}ev{rbBtMC)qC6Mvo_=YrU zg$cWOdsi8Qu~OAYt!lfVs$X}bOeW5ARo!Z;njEgmE`q-I8?lqBI%`$02`R$)Sz6V; zuBu~9RfmMDT4xrp+l+HqEyoUS5LgjZbpfmL64%aPC$JNLlfN*YbRvQ5vQ>9EO!ZE=!| zk*KKtLg?doenj-K_o=;4>1|HbF4mE)eas3k-md{BhN*#qRv4A~CvV-80YeNGXATOf zOAby4Rc*0N3Ekv>6hHR(moLvn^hGI|L0C6BBdO;oQvS9r<5=SGKw}Rie^6Stmv&fQ>Fh( zHRY@ZF^(w+WECWv#9RO0>8Tj5JF%0`K+FtGVuEn6Xlja}mi(AL=ei z1(Q$4$xg;vD&?M+yz+6NL`197htpfQX<|BVR@Q48Abh zy3#=dDi0flXc{j>DmYOyQHx(rqA-^(b|>Eps=lCpeT07k^IpSZ_h5;pMmE(lENI1A2a0zBNo$S^v~8ehHEP&w$i#74Lx$^dc5VALktM+VnnqsNL{X)Yya=8>8c zK0^L$jcn>@AQ2_!n*XNj=&SV53ow#dzyHVqe>(nEHl;3{}Y0CI7 z?7-jB3Z?C%clZ^eZK}{#5uvSO)3lv_GFyb7Ez1^dy9TtqeT3$OY3mfC?O)tJYG_N! z-;TETu}qyc@qYV2)|Ys>gQczFT1Q(WIIIe^P>=zc`=d&AoOG?aj

    O>_-jAPs^^ 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⋘nFO>_&5<8EwBH!*-75UY3 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

    PSWv|^?Lwn9$(3Wrqc3~a3za!5h`uQxcd3k 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

    =Y9q8mpYhi*XS@U&u?0eWdH-Lmk-B{aks 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%0Dh2v^TLs{7>RGP*yJ&#Jckx2P;eQ-s&~rF? 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

    }}&Q6u5Jy`1F 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 h9$vIdJ-n+PP2l6HD|gMu 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 z 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

    $?V0e=Gd+@RQ8?-S-6u?}b;uKW}oLA-mj-@hJRT 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

    pBce(!d8?Z=DoX19FjZ=`kOefY8j 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

    _-6eQ{EpAE&uTl(b-tF)HAQ+}t63aNl=@ym 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