1483 lines
279 KiB
Plaintext
1483 lines
279 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "71f85f2a-423f-44d2-b80d-da9ac8d3961a",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import simpy\n",
|
||
"import random\n",
|
||
"import numpy as np\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import pandas as pd\n",
|
||
"from enum import Enum\n",
|
||
"import os\n",
|
||
"import shutil\n",
|
||
"from tqdm import tqdm\n",
|
||
"\n",
|
||
"# Types of cache\n",
|
||
"class CacheType(Enum):\n",
|
||
" LRU = 1\n",
|
||
" RANDOM_EVICTION = 2\n",
|
||
"\n",
|
||
"# Constants\n",
|
||
"SEED = 42\n",
|
||
"DATABASE_OBJECTS = 100 # Number of objects in the database\n",
|
||
"ACCESS_COUNT_LIMIT = 2000 # Total time to run the simulation\n",
|
||
"EXPERIMENT_BASE_DIR = \"./experiments/\"\n",
|
||
"TEMP_BASE_DIR = \"./.aoi_cache/\"\n",
|
||
"\n",
|
||
"ZIPF_CONSTANT = 2 # Shape parameter for the Zipf distribution (controls skewness) Needs to be: 1< \n",
|
||
"\n",
|
||
"# Set random seeds\n",
|
||
"random.seed(SEED)\n",
|
||
"np.random.seed(SEED)\n",
|
||
"\n",
|
||
"os.makedirs(TEMP_BASE_DIR, exist_ok=True)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9a37d7a3-3e11-4b89-8dce-6091dd38b16f",
|
||
"metadata": {},
|
||
"source": [
|
||
"How to set certain parameters for specific scenarios\n",
|
||
"\n",
|
||
"\n",
|
||
"| Name | Cache Capacity | MAX_REFRESH_RATE | cache_type | CACHE_TTL |\n",
|
||
"| -------------------- | -------------------- | ---------------- | ------------------------- | --------- |\n",
|
||
"| Default | DATABASE_OBJECTS | 1< | CacheType.LRU | 5 |\n",
|
||
"| No Refresh | DATABASE_OBJECTS | 0 | CacheType.LRU | 5 |\n",
|
||
"| Infinite TTL | DATABASE_OBJECTS / 2 | 0 | CacheType.LRU | 0 |\n",
|
||
"| Random Eviction (RE) | DATABASE_OBJECTS / 2 | 1< | CacheType.RANDOM_EVICTION | 5 |\n",
|
||
"| RE without Refresh | DATABASE_OBJECTS / 2 | 0 | CacheType.RANDOM_EVICTION | 5 |\n",
|
||
"\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "3d0ab5b1-162a-42c8-80a3-d31f763101f1",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Configuration (Just example, will be overwritten in next block\n",
|
||
"CACHE_CAPACITY = DATABASE_OBJECTS # Maximum number of objects the cache can hold\n",
|
||
"\n",
|
||
"# MAX_REFRESH_RATE is used as the maximum for a uniform\n",
|
||
"# distribution for mu.\n",
|
||
"# If MAX_REFRESH_RATE is 0, we do not do any refreshes.\n",
|
||
"MAX_REFRESH_RATE = 0\n",
|
||
"\n",
|
||
"cache_type = CacheType.LRU\n",
|
||
"\n",
|
||
"# CACHE_TTL is used to determin which TTL to set when an\n",
|
||
"# object is pulled into the cache\n",
|
||
"# If CACHE_TTL is set to 0, the TTL is infinite\n",
|
||
"CACHE_TTL = 5\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "3ff299ca-ec65-453b-b167-9a0f7728a207",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"configurations = {\n",
|
||
" \"default\": (DATABASE_OBJECTS, 10, CacheType.LRU, 5),\n",
|
||
" \"No Refresh\": (DATABASE_OBJECTS, 0, CacheType.LRU, 5),\n",
|
||
" \"Infinite TTL\": (int(DATABASE_OBJECTS / 2), 0, CacheType.LRU, 0),\n",
|
||
" \"Random Eviction\": (int(DATABASE_OBJECTS / 2), 10, CacheType.RANDOM_EVICTION, 5),\n",
|
||
" \"RE without Refresh\": (int(DATABASE_OBJECTS / 2), 0, CacheType.RANDOM_EVICTION, 5),\n",
|
||
" \"No Refresh (0.5s ttl)\": (DATABASE_OBJECTS, 0, CacheType.LRU, 0.5),\n",
|
||
" \"No Refresh (1.0s ttl)\": (DATABASE_OBJECTS, 0, CacheType.LRU, 1),\n",
|
||
" \"No Refresh (2.0s ttl)\": (DATABASE_OBJECTS, 0, CacheType.LRU, 2),\n",
|
||
" \"No Refresh (3.0s ttl)\": (DATABASE_OBJECTS, 0, CacheType.LRU, 3),\n",
|
||
" \"No Refresh (4.0s ttl)\": (DATABASE_OBJECTS, 0, CacheType.LRU, 4),\n",
|
||
" \"No Refresh (5.0s ttl)\": (DATABASE_OBJECTS, 0, CacheType.LRU, 5),\n",
|
||
"}\n",
|
||
"\n",
|
||
"experiment_name = \"No Refresh (5.0s ttl)\"\n",
|
||
"config = configurations[experiment_name]\n",
|
||
"\n",
|
||
"CACHE_CAPACITY = config[0]\n",
|
||
"MAX_REFRESH_RATE = config[1]\n",
|
||
"cache_type = config[2]\n",
|
||
"CACHE_TTL = config[3]\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "5cea042f-e9fc-4a1e-9750-de212ca70601",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"class Database:\n",
|
||
" def __init__(self):\n",
|
||
" # Each object now has a specific refresh rate 'mu'\n",
|
||
" self.data = {i: f\"Object {i}\" for i in range(1, DATABASE_OBJECTS + 1)}\n",
|
||
" self.lambda_values = {i: np.random.zipf(ZIPF_CONSTANT) for i in range(1, DATABASE_OBJECTS + 1)} # Request rate 'lambda' for each object\n",
|
||
" # Refresh rate 'mu' for each object\n",
|
||
" if MAX_REFRESH_RATE == 0:\n",
|
||
" self.mu_values = {i: 0 for i in range(1,DATABASE_OBJECTS + 1)} \n",
|
||
" else:\n",
|
||
" self.mu_values = {i: np.random.uniform(1, MAX_REFRESH_RATE) for i in range(1, DATABASE_OBJECTS + 1)}\n",
|
||
" self.next_request = {i: np.random.exponential(1/self.lambda_values[i]) for i in range(1, DATABASE_OBJECTS + 1)}\n",
|
||
"\n",
|
||
"\n",
|
||
" def get_object(self, obj_id):\n",
|
||
" # print(f\"[{env.now:.2f}] Database: Fetched {self.data.get(obj_id, 'Unknown')} for ID {obj_id}\")\n",
|
||
" return self.data.get(obj_id, None)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "499bf543-b2c6-4e4d-afcc-0a6665ce3ae1",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"class Cache:\n",
|
||
" def __init__(self, env, db, cache_type):\n",
|
||
" self.cache_type = cache_type\n",
|
||
" self.env = env\n",
|
||
" self.db = db\n",
|
||
" self.storage = {} # Dictionary to store cached objects\n",
|
||
" self.ttl = {} # Dictionary to store TTLs\n",
|
||
" self.initial_fetch = {} # Dictionary to store when an object was fetched from the databse to determine the age\n",
|
||
" self.cache_size_over_time = [] # To record cache state at each interval\n",
|
||
" self.cache_next_request_over_time = []\n",
|
||
" self.request_log = {i: [] for i in range(1, DATABASE_OBJECTS + 1)}\n",
|
||
" self.hits = {i: 0 for i in range(1, DATABASE_OBJECTS + 1)} # Track hits per object\n",
|
||
" self.misses = {i: 0 for i in range(1, DATABASE_OBJECTS + 1)} # Track misses per object\n",
|
||
" self.cumulative_age = {i: 0 for i in range(1, DATABASE_OBJECTS + 1)} # Track cumulative age per object\n",
|
||
" self.access_count = {i: 0 for i in range(1, DATABASE_OBJECTS + 1)} # Track access count per object\n",
|
||
" self.next_refresh = {} # Track the next refresh time for each cached object\n",
|
||
" self.object_start_time = {} # Used as helper variable to determine the starting time of an object in the cache\n",
|
||
" self.cumulative_cache_time = {i: 0 for i in range(1, DATABASE_OBJECTS + 1)} # Stores the cumulative time the object has spent between its eviction and when it was first pulled into the cache\n",
|
||
" \n",
|
||
" def get(self, obj_id):\n",
|
||
" if obj_id in self.storage and \\\n",
|
||
" (self.ttl[obj_id] > env.now or CACHE_TTL == 0):\n",
|
||
" # Cache hit: increment hit count and update cumulative age\n",
|
||
" self.hits[obj_id] += 1\n",
|
||
" self.cumulative_age[obj_id] += (env.now - self.initial_fetch[obj_id])\n",
|
||
" self.access_count[obj_id] += 1\n",
|
||
" else:\n",
|
||
" # Cache miss: increment miss count\n",
|
||
" self.misses[obj_id] += 1\n",
|
||
" self.cumulative_age[obj_id] += 0\n",
|
||
" self.access_count[obj_id] += 1\n",
|
||
" self.initial_fetch[obj_id] = env.now\n",
|
||
" self.object_start_time[obj_id] = env.now\n",
|
||
" \n",
|
||
" # Fetch the object from the database if it’s not in cache\n",
|
||
" obj = self.db.get_object(obj_id)\n",
|
||
" \n",
|
||
" # If the cache is full, evict the oldest object\n",
|
||
" if len(self.storage) > CACHE_CAPACITY:\n",
|
||
" if self.cache_type == CacheType.LRU:\n",
|
||
" self.evict_oldest()\n",
|
||
" elif self.cache_type == CacheType.RANDOM_EVICTION:\n",
|
||
" self.evict_random()\n",
|
||
" \n",
|
||
" # Add the object to cache, set TTL, reset age, and schedule next refresh\n",
|
||
" self.storage[obj_id] = obj\n",
|
||
" if CACHE_TTL != 0:\n",
|
||
" self.ttl[obj_id] = env.now + CACHE_TTL\n",
|
||
" else:\n",
|
||
" self.ttl[obj_id] = 0\n",
|
||
" if MAX_REFRESH_RATE != 0:\n",
|
||
" self.next_refresh[obj_id] = env.now + np.random.exponential(1/self.db.mu_values[obj_id]) # Schedule refresh\n",
|
||
"\n",
|
||
" \n",
|
||
" def evict_oldest(self):\n",
|
||
" \"\"\"Remove the oldest item from the cache to make space.\"\"\"\n",
|
||
" oldest_id = min(self.initial_fetch, key=self.initial_fetch.get) # Find the oldest item by age\n",
|
||
" print(f\"[{env.now:.2f}] Cache: Evicting oldest object {oldest_id} to make space at {self.ttl[oldest_id]:.2f}\")\n",
|
||
" del self.storage[oldest_id]\n",
|
||
" del self.ttl[oldest_id]\n",
|
||
" del self.initial_fetch[oldest_id]\n",
|
||
"\n",
|
||
" def evict_random(self):\n",
|
||
" \"\"\"Remove a random item from the cache to make space.\"\"\"\n",
|
||
" random_id = np.random.choice(list(self.storage.keys())) # Select a random key from the cache\n",
|
||
" print(f\"[{env.now:.2f}] Cache: Evicting random object {random_id} to make space at {self.ttl[random_id]:.2f}\")\n",
|
||
" del self.storage[random_id]\n",
|
||
" del self.ttl[random_id]\n",
|
||
" del self.initial_fetch[random_id]\n",
|
||
" \n",
|
||
" def refresh_object(self, obj_id):\n",
|
||
" \"\"\"Refresh the object from the database to keep it up-to-date. TTL is increased on refresh.\"\"\"\n",
|
||
" obj = self.db.get_object(obj_id)\n",
|
||
" self.storage[obj_id] = obj\n",
|
||
" if CACHE_TTL != 0:\n",
|
||
" self.ttl[obj_id] = env.now + CACHE_TTL\n",
|
||
" else:\n",
|
||
" self.ttl[obj_id] = 0\n",
|
||
" self.initial_fetch[obj_id] = env.now\n",
|
||
" # print(f\"[{env.now:.2f}] Cache: Refreshed object {obj_id}\")\n",
|
||
" \n",
|
||
" def check_expired(self):\n",
|
||
" \"\"\"Increment age of each cached object.\"\"\"\n",
|
||
" for obj_id in list(self.ttl.keys()):\n",
|
||
" # print(f\"[{env.now:.2f}] Cache: Object {obj_id} aged to {env.now-self.initial_fetch[obj_id]}\")\n",
|
||
" if CACHE_TTL != 0 and self.ttl[obj_id] <= env.now:\n",
|
||
" # Remove object if its TTL expired\n",
|
||
" # print(f\"[{env.now:.2f}] Cache: Object {obj_id} expired\")\n",
|
||
" self.cumulative_cache_time[obj_id] += (env.now - self.object_start_time[obj_id])\n",
|
||
" del self.storage[obj_id]\n",
|
||
" del self.ttl[obj_id]\n",
|
||
" del self.initial_fetch[obj_id]\n",
|
||
" del self.object_start_time[obj_id]\n",
|
||
"\n",
|
||
" \n",
|
||
" def record_cache_state(self):\n",
|
||
" \"\"\"Record the current cache state (number of objects in cache) over time.\"\"\"\n",
|
||
" self.cache_size_over_time.append((env.now, len(self.storage)))\n",
|
||
" self.cache_next_request_over_time.append((env.now, self.db.next_request.copy()))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "7286d498-aa6c-4efb-bb28-fe29736eab64",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def age_cache_process(env, cache):\n",
|
||
" \"\"\"Process that ages cache objects over time, removes expired items, and refreshes based on object-specific intervals.\"\"\"\n",
|
||
" last_full_second = 0\n",
|
||
" while True:\n",
|
||
" cache.check_expired() # Age objects and remove expired ones\n",
|
||
"\n",
|
||
" if MAX_REFRESH_RATE != 0:\n",
|
||
" # Refresh objects based on their individual refresh intervals\n",
|
||
" for obj_id in list(cache.storage.keys()):\n",
|
||
" # Check if it's time to refresh this object based on next_refresh\n",
|
||
" if env.now >= cache.next_refresh[obj_id]:\n",
|
||
" cache.refresh_object(obj_id)\n",
|
||
" # Schedule the next refresh based on the object's mu\n",
|
||
" cache.next_refresh[obj_id] = env.now + np.random.exponential(1/cache.db.mu_values[obj_id])\n",
|
||
" \n",
|
||
" cache.record_cache_state() # Record cache state at each time step\n",
|
||
" yield env.timeout(0.05) # Run every second"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "687f5634-8edf-4337-b42f-bbb292d47f0f",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def client_request_process(env, cache, event):\n",
|
||
" \"\"\"Client process that makes requests for objects from the cache.\"\"\"\n",
|
||
" last_print = 0\n",
|
||
" with tqdm(total=ACCESS_COUNT_LIMIT, desc=\"Progress\", leave=True) as pbar:\n",
|
||
" while True:\n",
|
||
" obj_id, next_request = min(cache.db.next_request.items(), key=lambda x: x[1])\n",
|
||
" yield env.timeout(next_request - env.now)\n",
|
||
" if (int(env.now) % 1) == 0 and int(env.now) != last_print:\n",
|
||
" last_print = int(env.now)\n",
|
||
" pbar.n = min(cache.access_count.values())\n",
|
||
" pbar.refresh()\n",
|
||
" if env.now >= next_request:\n",
|
||
" # print(f\"[{env.now:.2f}] Client: Requesting object {obj_id}\")\n",
|
||
" cache.get(obj_id)\n",
|
||
" \n",
|
||
" # print(f\"[{env.now:.2f}] Client: Schedule next request for {obj_id}\")\n",
|
||
" next_request = env.now + np.random.exponential(1/cache.db.lambda_values[obj_id])\n",
|
||
" cache.request_log[obj_id].append(next_request)\n",
|
||
" cache.db.next_request[obj_id] = next_request\n",
|
||
" if all(access_count >= ACCESS_COUNT_LIMIT for access_count in cache.access_count.values()):\n",
|
||
" print(env.now)\n",
|
||
" event.succeed()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "c8516830-9880-4d9e-a91b-000338baf9d6",
|
||
"metadata": {
|
||
"scrolled": true
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Initialize simulation environment\n",
|
||
"env = simpy.Environment()\n",
|
||
"\n",
|
||
"# Instantiate components\n",
|
||
"db = Database()\n",
|
||
"cache = Cache(env, db, cache_type)\n",
|
||
"stop_event = env.event()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "2ba34b36-9ed5-4996-9600-11dfd25d8e60",
|
||
"metadata": {
|
||
"scrolled": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Progress: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉| 1999/2000 [00:10<00:00, 183.69it/s]"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2114.009548152859\n",
|
||
"CPU times: user 9.85 s, sys: 1.31 s, total: 11.2 s\n",
|
||
"Wall time: 10.9 s\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"%%time\n",
|
||
"\n",
|
||
"# Start processes\n",
|
||
"env.process(age_cache_process(env, cache))\n",
|
||
"env.process(client_request_process(env, cache, stop_event))\n",
|
||
"\n",
|
||
"# Run the simulation\n",
|
||
"env.run(until=stop_event)\n",
|
||
"simulation_end_time = env.now"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "3b6f7c1f-ea54-4496-bb9a-370cee2d2751",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Object 1: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 2: Hit Rate = 0.94, Average Time spend in Cache: 0.87,Average Age = 2.32, Exprected Age = 0.44\n",
|
||
"Object 3: Hit Rate = 0.84, Average Time spend in Cache: 0.82,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 4: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.10, Exprected Age = 0.35\n",
|
||
"Object 5: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.26, Exprected Age = 0.41\n",
|
||
"Object 6: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.09, Exprected Age = 0.35\n",
|
||
"Object 7: Hit Rate = 0.96, Average Time spend in Cache: 0.87,Average Age = 2.40, Exprected Age = 0.46\n",
|
||
"Object 8: Hit Rate = 0.84, Average Time spend in Cache: 0.82,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 9: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.03, Exprected Age = 0.35\n",
|
||
"Object 10: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.04, Exprected Age = 0.35\n",
|
||
"Object 11: Hit Rate = 0.91, Average Time spend in Cache: 0.89,Average Age = 2.26, Exprected Age = 0.41\n",
|
||
"Object 12: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.04, Exprected Age = 0.35\n",
|
||
"Object 13: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.10, Exprected Age = 0.35\n",
|
||
"Object 14: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.07, Exprected Age = 0.34\n",
|
||
"Object 15: Hit Rate = 0.91, Average Time spend in Cache: 0.86,Average Age = 2.25, Exprected Age = 0.41\n",
|
||
"Object 16: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.28, Exprected Age = 0.42\n",
|
||
"Object 17: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.01, Exprected Age = 0.35\n",
|
||
"Object 18: Hit Rate = 0.83, Average Time spend in Cache: 0.80,Average Age = 2.13, Exprected Age = 0.35\n",
|
||
"Object 19: Hit Rate = 0.94, Average Time spend in Cache: 0.87,Average Age = 2.32, Exprected Age = 0.44\n",
|
||
"Object 20: Hit Rate = 0.83, Average Time spend in Cache: 0.80,Average Age = 2.04, Exprected Age = 0.35\n",
|
||
"Object 21: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 22: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.09, Exprected Age = 0.35\n",
|
||
"Object 23: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 24: Hit Rate = 0.91, Average Time spend in Cache: 0.88,Average Age = 2.28, Exprected Age = 0.41\n",
|
||
"Object 25: Hit Rate = 0.84, Average Time spend in Cache: 0.80,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 26: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 27: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.15, Exprected Age = 0.35\n",
|
||
"Object 28: Hit Rate = 0.96, Average Time spend in Cache: 0.86,Average Age = 2.41, Exprected Age = 0.46\n",
|
||
"Object 29: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 30: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 31: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.06, Exprected Age = 0.34\n",
|
||
"Object 32: Hit Rate = 0.95, Average Time spend in Cache: 0.86,Average Age = 2.36, Exprected Age = 0.45\n",
|
||
"Object 33: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.12, Exprected Age = 0.35\n",
|
||
"Object 34: Hit Rate = 0.95, Average Time spend in Cache: 0.87,Average Age = 2.37, Exprected Age = 0.45\n",
|
||
"Object 35: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.05, Exprected Age = 0.35\n",
|
||
"Object 36: Hit Rate = 0.83, Average Time spend in Cache: 0.83,Average Age = 2.02, Exprected Age = 0.34\n",
|
||
"Object 37: Hit Rate = 0.84, Average Time spend in Cache: 0.82,Average Age = 2.05, Exprected Age = 0.35\n",
|
||
"Object 38: Hit Rate = 0.94, Average Time spend in Cache: 0.87,Average Age = 2.36, Exprected Age = 0.44\n",
|
||
"Object 39: Hit Rate = 0.98, Average Time spend in Cache: 0.76,Average Age = 2.44, Exprected Age = 0.48\n",
|
||
"Object 40: Hit Rate = 0.83, Average Time spend in Cache: 0.79,Average Age = 2.07, Exprected Age = 0.34\n",
|
||
"Object 41: Hit Rate = 0.95, Average Time spend in Cache: 0.85,Average Age = 2.38, Exprected Age = 0.45\n",
|
||
"Object 42: Hit Rate = 0.95, Average Time spend in Cache: 0.86,Average Age = 2.37, Exprected Age = 0.45\n",
|
||
"Object 43: Hit Rate = 0.91, Average Time spend in Cache: 0.88,Average Age = 2.24, Exprected Age = 0.41\n",
|
||
"Object 44: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.04, Exprected Age = 0.34\n",
|
||
"Object 45: Hit Rate = 0.83, Average Time spend in Cache: 0.83,Average Age = 2.11, Exprected Age = 0.35\n",
|
||
"Object 46: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.12, Exprected Age = 0.35\n",
|
||
"Object 47: Hit Rate = 0.98, Average Time spend in Cache: 0.78,Average Age = 2.45, Exprected Age = 0.48\n",
|
||
"Object 48: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.14, Exprected Age = 0.35\n",
|
||
"Object 49: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.12, Exprected Age = 0.35\n",
|
||
"Object 50: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.06, Exprected Age = 0.35\n",
|
||
"Object 51: Hit Rate = 0.96, Average Time spend in Cache: 0.87,Average Age = 2.41, Exprected Age = 0.46\n",
|
||
"Object 52: Hit Rate = 0.98, Average Time spend in Cache: 0.81,Average Age = 2.46, Exprected Age = 0.48\n",
|
||
"Object 53: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.06, Exprected Age = 0.35\n",
|
||
"Object 54: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.05, Exprected Age = 0.34\n",
|
||
"Object 55: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.09, Exprected Age = 0.34\n",
|
||
"Object 56: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.07, Exprected Age = 0.34\n",
|
||
"Object 57: Hit Rate = 0.84, Average Time spend in Cache: 0.83,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 58: Hit Rate = 0.99, Average Time spend in Cache: 0.68,Average Age = 2.46, Exprected Age = 0.49\n",
|
||
"Object 59: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.23, Exprected Age = 0.41\n",
|
||
"Object 60: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.07, Exprected Age = 0.35\n",
|
||
"Object 61: Hit Rate = 0.99, Average Time spend in Cache: 0.57,Average Age = 2.47, Exprected Age = 0.49\n",
|
||
"Object 62: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.07, Exprected Age = 0.34\n",
|
||
"Object 63: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 64: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.27, Exprected Age = 0.41\n",
|
||
"Object 65: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.06, Exprected Age = 0.35\n",
|
||
"Object 66: Hit Rate = 0.98, Average Time spend in Cache: 0.78,Average Age = 2.46, Exprected Age = 0.48\n",
|
||
"Object 67: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.05, Exprected Age = 0.35\n",
|
||
"Object 68: Hit Rate = 1.00, Average Time spend in Cache: 0.29,Average Age = 2.49, Exprected Age = 0.50\n",
|
||
"Object 69: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.04, Exprected Age = 0.34\n",
|
||
"Object 70: Hit Rate = 0.83, Average Time spend in Cache: 0.83,Average Age = 2.06, Exprected Age = 0.35\n",
|
||
"Object 71: Hit Rate = 0.91, Average Time spend in Cache: 0.84,Average Age = 2.25, Exprected Age = 0.41\n",
|
||
"Object 72: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.09, Exprected Age = 0.35\n",
|
||
"Object 73: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.10, Exprected Age = 0.35\n",
|
||
"Object 74: Hit Rate = 0.84, Average Time spend in Cache: 0.82,Average Age = 2.06, Exprected Age = 0.35\n",
|
||
"Object 75: Hit Rate = 0.94, Average Time spend in Cache: 0.88,Average Age = 2.31, Exprected Age = 0.44\n",
|
||
"Object 76: Hit Rate = 0.91, Average Time spend in Cache: 0.86,Average Age = 2.28, Exprected Age = 0.41\n",
|
||
"Object 77: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.25, Exprected Age = 0.42\n",
|
||
"Object 78: Hit Rate = 0.94, Average Time spend in Cache: 0.88,Average Age = 2.32, Exprected Age = 0.44\n",
|
||
"Object 79: Hit Rate = 0.99, Average Time spend in Cache: 0.71,Average Age = 2.46, Exprected Age = 0.49\n",
|
||
"Object 80: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.10, Exprected Age = 0.35\n",
|
||
"Object 81: Hit Rate = 0.83, Average Time spend in Cache: 0.80,Average Age = 2.06, Exprected Age = 0.34\n",
|
||
"Object 82: Hit Rate = 0.96, Average Time spend in Cache: 0.85,Average Age = 2.41, Exprected Age = 0.46\n",
|
||
"Object 83: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.32, Exprected Age = 0.41\n",
|
||
"Object 84: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.05, Exprected Age = 0.35\n",
|
||
"Object 85: Hit Rate = 0.83, Average Time spend in Cache: 0.82,Average Age = 2.06, Exprected Age = 0.35\n",
|
||
"Object 86: Hit Rate = 0.91, Average Time spend in Cache: 0.86,Average Age = 2.28, Exprected Age = 0.41\n",
|
||
"Object 87: Hit Rate = 0.84, Average Time spend in Cache: 0.82,Average Age = 2.09, Exprected Age = 0.35\n",
|
||
"Object 88: Hit Rate = 0.91, Average Time spend in Cache: 0.86,Average Age = 2.24, Exprected Age = 0.41\n",
|
||
"Object 89: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.04, Exprected Age = 0.35\n",
|
||
"Object 90: Hit Rate = 0.84, Average Time spend in Cache: 0.81,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 91: Hit Rate = 0.91, Average Time spend in Cache: 0.88,Average Age = 2.26, Exprected Age = 0.41\n",
|
||
"Object 92: Hit Rate = 0.91, Average Time spend in Cache: 0.84,Average Age = 2.28, Exprected Age = 0.41\n",
|
||
"Object 93: Hit Rate = 0.94, Average Time spend in Cache: 0.89,Average Age = 2.38, Exprected Age = 0.44\n",
|
||
"Object 94: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.09, Exprected Age = 0.34\n",
|
||
"Object 95: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.25, Exprected Age = 0.41\n",
|
||
"Object 96: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.04, Exprected Age = 0.35\n",
|
||
"Object 97: Hit Rate = 0.83, Average Time spend in Cache: 0.81,Average Age = 2.08, Exprected Age = 0.35\n",
|
||
"Object 98: Hit Rate = 0.99, Average Time spend in Cache: 0.47,Average Age = 2.48, Exprected Age = 0.49\n",
|
||
"Object 99: Hit Rate = 0.95, Average Time spend in Cache: 0.86,Average Age = 2.38, Exprected Age = 0.45\n",
|
||
"Object 100: Hit Rate = 0.91, Average Time spend in Cache: 0.87,Average Age = 2.26, Exprected Age = 0.41\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"statistics = []\n",
|
||
"# Calculate and print hit rate and average age for each object\n",
|
||
"for obj_id in range(1, DATABASE_OBJECTS + 1):\n",
|
||
" if cache.access_count[obj_id] != 0:\n",
|
||
" hit_rate = cache.hits[obj_id] / max(1, cache.access_count[obj_id]) # Avoid division by zero\n",
|
||
" avg_age = cache.cumulative_age[obj_id] / max(1, cache.access_count[obj_id])\n",
|
||
" avg_cache_time = cache.cumulative_cache_time[obj_id] / max(1, simulation_end_time) # Only average over hits\n",
|
||
" expected_age = (0.5*pow(hit_rate,2))\n",
|
||
" print(f\"Object {obj_id}: Hit Rate = {hit_rate:.2f}, Average Time spend in Cache: {avg_cache_time:.2f},Average Age = {avg_age:.2f}, Exprected Age = {expected_age:.2f}\")\n",
|
||
" statistics.append({\"obj_id\": obj_id,\"hit_rate\": hit_rate, \"avg_cache_time\":avg_cache_time, \"avg_age\": avg_age, \"expected_age\": expected_age})"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "3f9f5442-dee5-4545-b7b0-6a716e9d943b",
|
||
"metadata": {
|
||
"scrolled": true
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[{'obj_id': 1,\n",
|
||
" 'hit_rate': 0.8343359555761222,\n",
|
||
" 'avg_cache_time': {0.810432254071845},\n",
|
||
" 'avg_age': 2.068923674198366,\n",
|
||
" 'expected_age': 0.34805824338356045},\n",
|
||
" {'obj_id': 2,\n",
|
||
" 'hit_rate': 0.9368521766863339,\n",
|
||
" 'avg_cache_time': {0.8697853571068594},\n",
|
||
" 'avg_age': 2.3207402902916767,\n",
|
||
" 'expected_age': 0.4388460004809609},\n",
|
||
" {'obj_id': 3,\n",
|
||
" 'hit_rate': 0.8387391502969392,\n",
|
||
" 'avg_cache_time': {0.8200673629152411},\n",
|
||
" 'avg_age': 2.083112933481689,\n",
|
||
" 'expected_age': 0.3517416811204158},\n",
|
||
" {'obj_id': 4,\n",
|
||
" 'hit_rate': 0.8345864661654135,\n",
|
||
" 'avg_cache_time': {0.817667207716411},\n",
|
||
" 'avg_age': 2.098241838496266,\n",
|
||
" 'expected_age': 0.3482672847532365},\n",
|
||
" {'obj_id': 5,\n",
|
||
" 'hit_rate': 0.9079009995240361,\n",
|
||
" 'avg_cache_time': {0.8745472033792867},\n",
|
||
" 'avg_age': 2.2637599890084745,\n",
|
||
" 'expected_age': 0.41214211246837196},\n",
|
||
" {'obj_id': 6,\n",
|
||
" 'hit_rate': 0.8327790973871734,\n",
|
||
" 'avg_cache_time': {0.8080445983334636},\n",
|
||
" 'avg_age': 2.0885926647923605,\n",
|
||
" 'expected_age': 0.3467605125224976},\n",
|
||
" {'obj_id': 7,\n",
|
||
" 'hit_rate': 0.9611706197398623,\n",
|
||
" 'avg_cache_time': {0.8721183854707718},\n",
|
||
" 'avg_age': 2.396789243995202,\n",
|
||
" 'expected_age': 0.4619244801255555},\n",
|
||
" {'obj_id': 8,\n",
|
||
" 'hit_rate': 0.8350230414746543,\n",
|
||
" 'avg_cache_time': {0.8224079743937736},\n",
|
||
" 'avg_age': 2.0748384445301578,\n",
|
||
" 'expected_age': 0.34863173989679114},\n",
|
||
" {'obj_id': 9,\n",
|
||
" 'hit_rate': 0.8310523831996225,\n",
|
||
" 'avg_cache_time': {0.808204836664193},\n",
|
||
" 'avg_age': 2.030852029418002,\n",
|
||
" 'expected_age': 0.3453240318108861},\n",
|
||
" {'obj_id': 10,\n",
|
||
" 'hit_rate': 0.8308288899660689,\n",
|
||
" 'avg_cache_time': {0.8177615771744638},\n",
|
||
" 'avg_age': 2.0440294768985754,\n",
|
||
" 'expected_age': 0.34513832220112506},\n",
|
||
" {'obj_id': 11,\n",
|
||
" 'hit_rate': 0.9088757396449704,\n",
|
||
" 'avg_cache_time': {0.891248201160126},\n",
|
||
" 'avg_age': 2.2625636303653898,\n",
|
||
" 'expected_age': 0.413027555057596},\n",
|
||
" {'obj_id': 12,\n",
|
||
" 'hit_rate': 0.8373071528751753,\n",
|
||
" 'avg_cache_time': {0.8102551278956152},\n",
|
||
" 'avg_age': 2.0383876738470725,\n",
|
||
" 'expected_age': 0.35054163412796613},\n",
|
||
" {'obj_id': 13,\n",
|
||
" 'hit_rate': 0.8361344537815126,\n",
|
||
" 'avg_cache_time': {0.8105750271598551},\n",
|
||
" 'avg_age': 2.0954043404028435,\n",
|
||
" 'expected_age': 0.34956041240025426},\n",
|
||
" {'obj_id': 14,\n",
|
||
" 'hit_rate': 0.8290556900726392,\n",
|
||
" 'avg_cache_time': {0.8201096214390584},\n",
|
||
" 'avg_age': 2.0706796740450875,\n",
|
||
" 'expected_age': 0.34366666862091},\n",
|
||
" {'obj_id': 15,\n",
|
||
" 'hit_rate': 0.908745247148289,\n",
|
||
" 'avg_cache_time': {0.8605605035087328},\n",
|
||
" 'avg_age': 2.2466123908950646,\n",
|
||
" 'expected_age': 0.4129089621073024},\n",
|
||
" {'obj_id': 16,\n",
|
||
" 'hit_rate': 0.9110956360259982,\n",
|
||
" 'avg_cache_time': {0.8747680644435698},\n",
|
||
" 'avg_age': 2.2834548671334542,\n",
|
||
" 'expected_age': 0.41504762899280906},\n",
|
||
" {'obj_id': 17,\n",
|
||
" 'hit_rate': 0.8320683111954459,\n",
|
||
" 'avg_cache_time': {0.8150399870989544},\n",
|
||
" 'avg_age': 2.0097170455667013,\n",
|
||
" 'expected_age': 0.3461688372478207},\n",
|
||
" {'obj_id': 18,\n",
|
||
" 'hit_rate': 0.8342067651262506,\n",
|
||
" 'avg_cache_time': {0.8032009912464316},\n",
|
||
" 'avg_age': 2.1273968056684316,\n",
|
||
" 'expected_age': 0.3479504634912017},\n",
|
||
" {'obj_id': 19,\n",
|
||
" 'hit_rate': 0.9354469684588985,\n",
|
||
" 'avg_cache_time': {0.8651012574814502},\n",
|
||
" 'avg_age': 2.3206810673715705,\n",
|
||
" 'expected_age': 0.43753051539947174},\n",
|
||
" {'obj_id': 20,\n",
|
||
" 'hit_rate': 0.833976833976834,\n",
|
||
" 'avg_cache_time': {0.7986061563297104},\n",
|
||
" 'avg_age': 2.0432248271474878,\n",
|
||
" 'expected_age': 0.34775867980501185},\n",
|
||
" {'obj_id': 21,\n",
|
||
" 'hit_rate': 0.8348837209302326,\n",
|
||
" 'avg_cache_time': {0.8152281904411368},\n",
|
||
" 'avg_age': 2.0677338592418755,\n",
|
||
" 'expected_age': 0.3485154137371552},\n",
|
||
" {'obj_id': 22,\n",
|
||
" 'hit_rate': 0.8338068181818182,\n",
|
||
" 'avg_cache_time': {0.8174427840452981},\n",
|
||
" 'avg_age': 2.086382182099578,\n",
|
||
" 'expected_age': 0.3476169050232438},\n",
|
||
" {'obj_id': 23,\n",
|
||
" 'hit_rate': 0.8357510528778662,\n",
|
||
" 'avg_cache_time': {0.8057637380263669},\n",
|
||
" 'avg_age': 2.0794074474530007,\n",
|
||
" 'expected_age': 0.34923991119323095},\n",
|
||
" {'obj_id': 24,\n",
|
||
" 'hit_rate': 0.9097920074783828,\n",
|
||
" 'avg_cache_time': {0.8768806713137},\n",
|
||
" 'avg_age': 2.277444995774618,\n",
|
||
" 'expected_age': 0.4138607484357729},\n",
|
||
" {'obj_id': 25,\n",
|
||
" 'hit_rate': 0.8363039399624765,\n",
|
||
" 'avg_cache_time': {0.8033370429558485},\n",
|
||
" 'avg_age': 2.0831638192632096,\n",
|
||
" 'expected_age': 0.3497021399983808},\n",
|
||
" {'obj_id': 26,\n",
|
||
" 'hit_rate': 0.8382218148487626,\n",
|
||
" 'avg_cache_time': {0.8105553974196054},\n",
|
||
" 'avg_age': 2.0739601366722598,\n",
|
||
" 'expected_age': 0.3513079054441766},\n",
|
||
" {'obj_id': 27,\n",
|
||
" 'hit_rate': 0.8346604215456674,\n",
|
||
" 'avg_cache_time': {0.8174373373929206},\n",
|
||
" 'avg_age': 2.1512142438129023,\n",
|
||
" 'expected_age': 0.34832900964739566},\n",
|
||
" {'obj_id': 28,\n",
|
||
" 'hit_rate': 0.960876670191291,\n",
|
||
" 'avg_cache_time': {0.8625135261787757},\n",
|
||
" 'avg_age': 2.4084789355150056,\n",
|
||
" 'expected_age': 0.4616419876589515},\n",
|
||
" {'obj_id': 29,\n",
|
||
" 'hit_rate': 0.8324705882352941,\n",
|
||
" 'avg_cache_time': {0.8104802301710875},\n",
|
||
" 'avg_age': 2.0824021086384605,\n",
|
||
" 'expected_age': 0.3465036401384083},\n",
|
||
" {'obj_id': 30,\n",
|
||
" 'hit_rate': 0.8315191670610507,\n",
|
||
" 'avg_cache_time': {0.8174875104134197},\n",
|
||
" 'avg_age': 2.072225068112276,\n",
|
||
" 'expected_age': 0.34571206259495174},\n",
|
||
" {'obj_id': 31,\n",
|
||
" 'hit_rate': 0.8260656540911318,\n",
|
||
" 'avg_cache_time': {0.8153992880564279},\n",
|
||
" 'avg_age': 2.061721077642618,\n",
|
||
" 'expected_age': 0.3411922324345047},\n",
|
||
" {'obj_id': 32,\n",
|
||
" 'hit_rate': 0.952234570820525,\n",
|
||
" 'avg_cache_time': {0.8556777555326739},\n",
|
||
" 'avg_age': 2.3617840905668293,\n",
|
||
" 'expected_age': 0.4533753389328747},\n",
|
||
" {'obj_id': 33,\n",
|
||
" 'hit_rate': 0.8347378277153558,\n",
|
||
" 'avg_cache_time': {0.8177898808005426},\n",
|
||
" 'avg_age': 2.1157873141297703,\n",
|
||
" 'expected_age': 0.3483936205094755},\n",
|
||
" {'obj_id': 34,\n",
|
||
" 'hit_rate': 0.953300196509074,\n",
|
||
" 'avg_cache_time': {0.8723919138738911},\n",
|
||
" 'avg_age': 2.37152246660409,\n",
|
||
" 'expected_age': 0.4543906323321196},\n",
|
||
" {'obj_id': 35,\n",
|
||
" 'hit_rate': 0.8371985157699443,\n",
|
||
" 'avg_cache_time': {0.8056650949556616},\n",
|
||
" 'avg_age': 2.0546440283833953,\n",
|
||
" 'expected_age': 0.35045067740369884},\n",
|
||
" {'obj_id': 36,\n",
|
||
" 'hit_rate': 0.8293269230769231,\n",
|
||
" 'avg_cache_time': {0.8321331411343728},\n",
|
||
" 'avg_age': 2.019798753122858,\n",
|
||
" 'expected_age': 0.3438915726701184},\n",
|
||
" {'obj_id': 37,\n",
|
||
" 'hit_rate': 0.8385178408051235,\n",
|
||
" 'avg_cache_time': {0.820059027970993},\n",
|
||
" 'avg_age': 2.0459185671323534,\n",
|
||
" 'expected_age': 0.3515560846742432},\n",
|
||
" {'obj_id': 38,\n",
|
||
" 'hit_rate': 0.9372218690400509,\n",
|
||
" 'avg_cache_time': {0.8698808303188571},\n",
|
||
" 'avg_age': 2.3594967138941594,\n",
|
||
" 'expected_age': 0.43919241590346314},\n",
|
||
" {'obj_id': 39,\n",
|
||
" 'hit_rate': 0.9754142169962586,\n",
|
||
" 'avg_cache_time': {0.7626087843902165},\n",
|
||
" 'avg_age': 2.4388237909562465,\n",
|
||
" 'expected_age': 0.47571644735921215},\n",
|
||
" {'obj_id': 40,\n",
|
||
" 'hit_rate': 0.8275,\n",
|
||
" 'avg_cache_time': {0.794355906656446},\n",
|
||
" 'avg_age': 2.0686563554852295,\n",
|
||
" 'expected_age': 0.34237812500000003},\n",
|
||
" {'obj_id': 41,\n",
|
||
" 'hit_rate': 0.9524259237398182,\n",
|
||
" 'avg_cache_time': {0.845923081620667},\n",
|
||
" 'avg_age': 2.3773225761537065,\n",
|
||
" 'expected_age': 0.453557570105823},\n",
|
||
" {'obj_id': 42,\n",
|
||
" 'hit_rate': 0.9532319832888476,\n",
|
||
" 'avg_cache_time': {0.8603717658690662},\n",
|
||
" 'avg_age': 2.368518600216613,\n",
|
||
" 'expected_age': 0.45432560698239494},\n",
|
||
" {'obj_id': 43,\n",
|
||
" 'hit_rate': 0.9076295585412668,\n",
|
||
" 'avg_cache_time': {0.876926816727247},\n",
|
||
" 'avg_age': 2.244802766787443,\n",
|
||
" 'expected_age': 0.41189570776890744},\n",
|
||
" {'obj_id': 44,\n",
|
||
" 'hit_rate': 0.82810236600676,\n",
|
||
" 'avg_cache_time': {0.8224668160130034},\n",
|
||
" 'avg_age': 2.0368413613592855,\n",
|
||
" 'expected_age': 0.34287676429299696},\n",
|
||
" {'obj_id': 45,\n",
|
||
" 'hit_rate': 0.8323863636363636,\n",
|
||
" 'avg_cache_time': {0.8319088220634105},\n",
|
||
" 'avg_age': 2.1104292351117517,\n",
|
||
" 'expected_age': 0.3464335291838843},\n",
|
||
" {'obj_id': 46,\n",
|
||
" 'hit_rate': 0.8343443770415305,\n",
|
||
" 'avg_cache_time': {0.8225991984196005},\n",
|
||
" 'avg_age': 2.1195374144133803,\n",
|
||
" 'expected_age': 0.3480652697504098},\n",
|
||
" {'obj_id': 47,\n",
|
||
" 'hit_rate': 0.980509111403344,\n",
|
||
" 'avg_cache_time': {0.7793000913510133},\n",
|
||
" 'avg_age': 2.4490817341548503,\n",
|
||
" 'expected_age': 0.4806990587724876},\n",
|
||
" {'obj_id': 48,\n",
|
||
" 'hit_rate': 0.8343675417661098,\n",
|
||
" 'avg_cache_time': {0.8080294162265821},\n",
|
||
" 'avg_age': 2.136948776052968,\n",
|
||
" 'expected_age': 0.3480845973764105},\n",
|
||
" {'obj_id': 49,\n",
|
||
" 'hit_rate': 0.8318116290245074,\n",
|
||
" 'avg_cache_time': {0.8130078566363472},\n",
|
||
" 'avg_age': 2.1232360998461477,\n",
|
||
" 'expected_age': 0.3459552930902024},\n",
|
||
" {'obj_id': 50,\n",
|
||
" 'hit_rate': 0.8326159732185557,\n",
|
||
" 'avg_cache_time': {0.817458050161407},\n",
|
||
" 'avg_age': 2.055003674129556,\n",
|
||
" 'expected_age': 0.3466246794293414},\n",
|
||
" {'obj_id': 51,\n",
|
||
" 'hit_rate': 0.9612454770519901,\n",
|
||
" 'avg_cache_time': {0.8652760189728331},\n",
|
||
" 'avg_age': 2.4115942850497527,\n",
|
||
" 'expected_age': 0.46199643357645404},\n",
|
||
" {'obj_id': 52,\n",
|
||
" 'hit_rate': 0.9782768777614138,\n",
|
||
" 'avg_cache_time': {0.8078795902330617},\n",
|
||
" 'avg_age': 2.457015718981127,\n",
|
||
" 'expected_age': 0.4785128247813101},\n",
|
||
" {'obj_id': 53,\n",
|
||
" 'hit_rate': 0.8317399617590823,\n",
|
||
" 'avg_cache_time': {0.8224509800875742},\n",
|
||
" 'avg_age': 2.0588664125261387,\n",
|
||
" 'expected_age': 0.3458956819934998},\n",
|
||
" {'obj_id': 54,\n",
|
||
" 'hit_rate': 0.8293036750483559,\n",
|
||
" 'avg_cache_time': {0.8081452701769272},\n",
|
||
" 'avg_age': 2.053967188615532,\n",
|
||
" 'expected_age': 0.34387229272435454},\n",
|
||
" {'obj_id': 55,\n",
|
||
" 'hit_rate': 0.828125,\n",
|
||
" 'avg_cache_time': {0.8176938747650575},\n",
|
||
" 'avg_age': 2.085346884674153,\n",
|
||
" 'expected_age': 0.3428955078125},\n",
|
||
" {'obj_id': 56,\n",
|
||
" 'hit_rate': 0.8280565026790063,\n",
|
||
" 'avg_cache_time': {0.8173220706448464},\n",
|
||
" 'avg_age': 2.074950238616093,\n",
|
||
" 'expected_age': 0.3428387858144936},\n",
|
||
" {'obj_id': 57,\n",
|
||
" 'hit_rate': 0.8393339333933393,\n",
|
||
" 'avg_cache_time': {0.8270340728801309},\n",
|
||
" 'avg_age': 2.0691955449482378,\n",
|
||
" 'expected_age': 0.3522407258727672},\n",
|
||
" {'obj_id': 58,\n",
|
||
" 'hit_rate': 0.9883888888888889,\n",
|
||
" 'avg_cache_time': {0.6768908831920782},\n",
|
||
" 'avg_age': 2.4643101465551154,\n",
|
||
" 'expected_age': 0.48845629783950617},\n",
|
||
" {'obj_id': 59,\n",
|
||
" 'hit_rate': 0.9093491124260356,\n",
|
||
" 'avg_cache_time': {0.8748411466058176},\n",
|
||
" 'avg_age': 2.2267777175980874,\n",
|
||
" 'expected_age': 0.4134579041350093},\n",
|
||
" {'obj_id': 60,\n",
|
||
" 'hit_rate': 0.8384580082606701,\n",
|
||
" 'avg_cache_time': {0.8104072319895872},\n",
|
||
" 'avg_age': 2.0723452264510507,\n",
|
||
" 'expected_age': 0.35150591580822493},\n",
|
||
" {'obj_id': 61,\n",
|
||
" 'hit_rate': 0.9923634975181367,\n",
|
||
" 'avg_cache_time': {0.5747045857007451},\n",
|
||
" 'avg_age': 2.472985486607898,\n",
|
||
" 'expected_age': 0.49239265560321444},\n",
|
||
" {'obj_id': 62,\n",
|
||
" 'hit_rate': 0.8294685990338164,\n",
|
||
" 'avg_cache_time': {0.8224411637289837},\n",
|
||
" 'avg_age': 2.0655736147672212,\n",
|
||
" 'expected_age': 0.3440090783915611},\n",
|
||
" {'obj_id': 63,\n",
|
||
" 'hit_rate': 0.8315939278937381,\n",
|
||
" 'avg_cache_time': {0.8105502727907914},\n",
|
||
" 'avg_age': 2.0794497864895076,\n",
|
||
" 'expected_age': 0.3457742304548678},\n",
|
||
" {'obj_id': 64,\n",
|
||
" 'hit_rate': 0.9081364829396326,\n",
|
||
" 'avg_cache_time': {0.865498922040767},\n",
|
||
" 'avg_age': 2.2665026207308543,\n",
|
||
" 'expected_age': 0.41235593582298274},\n",
|
||
" {'obj_id': 65,\n",
|
||
" 'hit_rate': 0.8366013071895425,\n",
|
||
" 'avg_cache_time': {0.8129554073994908},\n",
|
||
" 'avg_age': 2.0648277501716747,\n",
|
||
" 'expected_age': 0.34995087359562566},\n",
|
||
" {'obj_id': 66,\n",
|
||
" 'hit_rate': 0.9804088183921069,\n",
|
||
" 'avg_cache_time': {0.781811758702253},\n",
|
||
" 'avg_age': 2.4642764008736737,\n",
|
||
" 'expected_age': 0.48060072559050365},\n",
|
||
" {'obj_id': 67,\n",
|
||
" 'hit_rate': 0.839392544868845,\n",
|
||
" 'avg_cache_time': {0.8057032348271645},\n",
|
||
" 'avg_age': 2.0516174721394225,\n",
|
||
" 'expected_age': 0.35228992219069794},\n",
|
||
" {'obj_id': 68,\n",
|
||
" 'hit_rate': 0.9971018872070984,\n",
|
||
" 'avg_cache_time': {0.28694251969249696},\n",
|
||
" 'avg_age': 2.4912476009423554,\n",
|
||
" 'expected_age': 0.49710608673597856},\n",
|
||
" {'obj_id': 69,\n",
|
||
" 'hit_rate': 0.8279362010633156,\n",
|
||
" 'avg_cache_time': {0.8104624011213533},\n",
|
||
" 'avg_age': 2.044782938269008,\n",
|
||
" 'expected_age': 0.34273917651557745},\n",
|
||
" {'obj_id': 70,\n",
|
||
" 'hit_rate': 0.8330975954738331,\n",
|
||
" 'avg_cache_time': {0.827067381762729},\n",
|
||
" 'avg_age': 2.061054243655572,\n",
|
||
" 'expected_age': 0.3470258017921412},\n",
|
||
" {'obj_id': 71,\n",
|
||
" 'hit_rate': 0.9102174421323358,\n",
|
||
" 'avg_cache_time': {0.8438498811202659},\n",
|
||
" 'avg_age': 2.245598184286809,\n",
|
||
" 'expected_age': 0.414247895980966},\n",
|
||
" {'obj_id': 72,\n",
|
||
" 'hit_rate': 0.8317490494296578,\n",
|
||
" 'avg_cache_time': {0.8103677547984748},\n",
|
||
" 'avg_age': 2.094107348921501,\n",
|
||
" 'expected_age': 0.34590324061356964},\n",
|
||
" {'obj_id': 73,\n",
|
||
" 'hit_rate': 0.8348666053357866,\n",
|
||
" 'avg_cache_time': {0.8222844065855565},\n",
|
||
" 'avg_age': 2.097902145286362,\n",
|
||
" 'expected_age': 0.34850112435245},\n",
|
||
" {'obj_id': 74,\n",
|
||
" 'hit_rate': 0.8388838883888389,\n",
|
||
" 'avg_cache_time': {0.8223920952154627},\n",
|
||
" 'avg_age': 2.059451157427686,\n",
|
||
" 'expected_age': 0.35186308909918895},\n",
|
||
" {'obj_id': 75,\n",
|
||
" 'hit_rate': 0.936951316839585,\n",
|
||
" 'avg_cache_time': {0.884020791397808},\n",
|
||
" 'avg_age': 2.313501961216909,\n",
|
||
" 'expected_age': 0.4389388850637162},\n",
|
||
" {'obj_id': 76,\n",
|
||
" 'hit_rate': 0.9075005990893842,\n",
|
||
" 'avg_cache_time': {0.8603442007780137},\n",
|
||
" 'avg_age': 2.278602079093859,\n",
|
||
" 'expected_age': 0.4117786686737956},\n",
|
||
" {'obj_id': 77,\n",
|
||
" 'hit_rate': 0.9112534309240622,\n",
|
||
" 'avg_cache_time': {0.8674652781940188},\n",
|
||
" 'avg_age': 2.2542752448800436,\n",
|
||
" 'expected_age': 0.4151914076854373},\n",
|
||
" {'obj_id': 78,\n",
|
||
" 'hit_rate': 0.9380210791253736,\n",
|
||
" 'avg_cache_time': {0.8839771052976533},\n",
|
||
" 'avg_age': 2.324935499962482,\n",
|
||
" 'expected_age': 0.4399417724417652},\n",
|
||
" {'obj_id': 79,\n",
|
||
" 'hit_rate': 0.9867845598022438,\n",
|
||
" 'avg_cache_time': {0.705585200712788},\n",
|
||
" 'avg_age': 2.46010684921625,\n",
|
||
" 'expected_age': 0.48687188373205403},\n",
|
||
" {'obj_id': 80,\n",
|
||
" 'hit_rate': 0.8322211630123928,\n",
|
||
" 'avg_cache_time': {0.8177314370626462},\n",
|
||
" 'avg_age': 2.097477368005882,\n",
|
||
" 'expected_age': 0.3462960320828498},\n",
|
||
" {'obj_id': 81,\n",
|
||
" 'hit_rate': 0.8304836345872008,\n",
|
||
" 'avg_cache_time': {0.8034749610214771},\n",
|
||
" 'avg_age': 2.0624698657772527,\n",
|
||
" 'expected_age': 0.3448515336585836},\n",
|
||
" {'obj_id': 82,\n",
|
||
" 'hit_rate': 0.9619305958282668,\n",
|
||
" 'avg_cache_time': {0.8509832375052683},\n",
|
||
" 'avg_age': 2.41091877839736,\n",
|
||
" 'expected_age': 0.46265523559526217},\n",
|
||
" {'obj_id': 83,\n",
|
||
" 'hit_rate': 0.9100070307007265,\n",
|
||
" 'avg_cache_time': {0.8722800197572179},\n",
|
||
" 'avg_age': 2.3170644212278697,\n",
|
||
" 'expected_age': 0.41405639796237653},\n",
|
||
" {'obj_id': 84,\n",
|
||
" 'hit_rate': 0.833254828073481,\n",
|
||
" 'avg_cache_time': {0.8177016874896731},\n",
|
||
" 'avg_age': 2.0464469902323,\n",
|
||
" 'expected_age': 0.3471568042538831},\n",
|
||
" {'obj_id': 85,\n",
|
||
" 'hit_rate': 0.833255269320843,\n",
|
||
" 'avg_cache_time': {0.8247840962323026},\n",
|
||
" 'avg_age': 2.061285101346782,\n",
|
||
" 'expected_age': 0.34715717192547535},\n",
|
||
" {'obj_id': 86,\n",
|
||
" 'hit_rate': 0.9074074074074074,\n",
|
||
" 'avg_cache_time': {0.8555887732493566},\n",
|
||
" 'avg_age': 2.2769598734065584,\n",
|
||
" 'expected_age': 0.41169410150891633},\n",
|
||
" {'obj_id': 87,\n",
|
||
" 'hit_rate': 0.8397639582387654,\n",
|
||
" 'avg_cache_time': {0.8224276969838862},\n",
|
||
" 'avg_age': 2.0870135852266167,\n",
|
||
" 'expected_age': 0.35260175277841943},\n",
|
||
" {'obj_id': 88,\n",
|
||
" 'hit_rate': 0.907762338284619,\n",
|
||
" 'avg_cache_time': {0.8602891254952841},\n",
|
||
" 'avg_age': 2.235994985739091,\n",
|
||
" 'expected_age': 0.4120162314039796},\n",
|
||
" {'obj_id': 89,\n",
|
||
" 'hit_rate': 0.8307105388650453,\n",
|
||
" 'avg_cache_time': {0.8080035927903887},\n",
|
||
" 'avg_age': 2.035873238721567,\n",
|
||
" 'expected_age': 0.34503999969072696},\n",
|
||
" {'obj_id': 90,\n",
|
||
" 'hit_rate': 0.8352996696554978,\n",
|
||
" 'avg_cache_time': {0.8079407137714084},\n",
|
||
" 'avg_age': 2.0794798223111317,\n",
|
||
" 'expected_age': 0.3488627690632919},\n",
|
||
" {'obj_id': 91,\n",
|
||
" 'hit_rate': 0.9086402266288952,\n",
|
||
" 'avg_cache_time': {0.8794285016730224},\n",
|
||
" 'avg_age': 2.2588139685983926,\n",
|
||
" 'expected_age': 0.41281353072410504},\n",
|
||
" {'obj_id': 92,\n",
|
||
" 'hit_rate': 0.9085754783841248,\n",
|
||
" 'avg_cache_time': {0.841418447951084},\n",
|
||
" 'avg_age': 2.2786416827720615,\n",
|
||
" 'expected_age': 0.4127546999604706},\n",
|
||
" {'obj_id': 93,\n",
|
||
" 'hit_rate': 0.9372827804107425,\n",
|
||
" 'avg_cache_time': {0.8936600617349919},\n",
|
||
" 'avg_age': 2.378841722682071,\n",
|
||
" 'expected_age': 0.4392495052272461},\n",
|
||
" {'obj_id': 94,\n",
|
||
" 'hit_rate': 0.8275355218030377,\n",
|
||
" 'avg_cache_time': {0.8105095792801881},\n",
|
||
" 'avg_age': 2.094877983310673,\n",
|
||
" 'expected_age': 0.3424075199229129},\n",
|
||
" {'obj_id': 95,\n",
|
||
" 'hit_rate': 0.9085263912108908,\n",
|
||
" 'avg_cache_time': {0.8700376807857447},\n",
|
||
" 'avg_age': 2.2455942083568528,\n",
|
||
" 'expected_age': 0.41271010176334233},\n",
|
||
" {'obj_id': 96,\n",
|
||
" 'hit_rate': 0.8329366968110423,\n",
|
||
" 'avg_cache_time': {0.812733015130395},\n",
|
||
" 'avg_age': 2.0386270901405714,\n",
|
||
" 'expected_age': 0.3468917704472451},\n",
|
||
" {'obj_id': 97,\n",
|
||
" 'hit_rate': 0.83082158483228,\n",
|
||
" 'avg_cache_time': {0.8084037771066447},\n",
|
||
" 'avg_age': 2.0786109804084023,\n",
|
||
" 'expected_age': 0.3451322529116107},\n",
|
||
" {'obj_id': 98,\n",
|
||
" 'hit_rate': 0.9946180888462768,\n",
|
||
" 'avg_cache_time': {0.4651534320375863},\n",
|
||
" 'avg_age': 2.4811043242858535,\n",
|
||
" 'expected_age': 0.49463257133011007},\n",
|
||
" {'obj_id': 99,\n",
|
||
" 'hit_rate': 0.952843435525392,\n",
|
||
" 'avg_cache_time': {0.8627920808474391},\n",
|
||
" 'avg_age': 2.375694850086415,\n",
|
||
" 'expected_age': 0.4539553063119159},\n",
|
||
" {'obj_id': 100,\n",
|
||
" 'hit_rate': 0.9087917254348848,\n",
|
||
" 'avg_cache_time': {0.8674273959799007},\n",
|
||
" 'avg_age': 2.2584215419035614,\n",
|
||
" 'expected_age': 0.4129512001094576}]"
|
||
]
|
||
},
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"statistics"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "b2d18372-cdba-4151-ae32-5bf45466bf94",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"stats = pd.DataFrame(statistics)\n",
|
||
"stats.to_csv(f\"{TEMP_BASE_DIR}/hit_age.csv\",index=False)\n",
|
||
"stats.drop(\"obj_id\", axis=1).describe().to_csv(f\"{TEMP_BASE_DIR}/overall_hit_age.csv\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "80971714-44f1-47db-9e89-85be7c885bde",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>access_count</th>\n",
|
||
" <th>hits</th>\n",
|
||
" <th>misses</th>\n",
|
||
" <th>mu</th>\n",
|
||
" <th>lambda</th>\n",
|
||
" <th>hit_rate</th>\n",
|
||
" <th>avg_age</th>\n",
|
||
" <th>expected_age</th>\n",
|
||
" <th>age_delta</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>2161</td>\n",
|
||
" <td>1803</td>\n",
|
||
" <td>358</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.834336</td>\n",
|
||
" <td>2.068924</td>\n",
|
||
" <td>0.348058</td>\n",
|
||
" <td>1.720865</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>6271</td>\n",
|
||
" <td>5875</td>\n",
|
||
" <td>396</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>3</td>\n",
|
||
" <td>0.936852</td>\n",
|
||
" <td>2.320740</td>\n",
|
||
" <td>0.438846</td>\n",
|
||
" <td>1.881894</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>2189</td>\n",
|
||
" <td>1836</td>\n",
|
||
" <td>353</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.838739</td>\n",
|
||
" <td>2.083113</td>\n",
|
||
" <td>0.351742</td>\n",
|
||
" <td>1.731371</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>2128</td>\n",
|
||
" <td>1776</td>\n",
|
||
" <td>352</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.834586</td>\n",
|
||
" <td>2.098242</td>\n",
|
||
" <td>0.348267</td>\n",
|
||
" <td>1.749975</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>4202</td>\n",
|
||
" <td>3815</td>\n",
|
||
" <td>387</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0.907901</td>\n",
|
||
" <td>2.263760</td>\n",
|
||
" <td>0.412142</td>\n",
|
||
" <td>1.851618</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>96</th>\n",
|
||
" <td>2101</td>\n",
|
||
" <td>1750</td>\n",
|
||
" <td>351</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.832937</td>\n",
|
||
" <td>2.038627</td>\n",
|
||
" <td>0.346892</td>\n",
|
||
" <td>1.691735</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>97</th>\n",
|
||
" <td>2057</td>\n",
|
||
" <td>1709</td>\n",
|
||
" <td>348</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>1</td>\n",
|
||
" <td>0.830822</td>\n",
|
||
" <td>2.078611</td>\n",
|
||
" <td>0.345132</td>\n",
|
||
" <td>1.733479</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>98</th>\n",
|
||
" <td>78225</td>\n",
|
||
" <td>77804</td>\n",
|
||
" <td>421</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>37</td>\n",
|
||
" <td>0.994618</td>\n",
|
||
" <td>2.481104</td>\n",
|
||
" <td>0.494633</td>\n",
|
||
" <td>1.986472</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>99</th>\n",
|
||
" <td>8546</td>\n",
|
||
" <td>8143</td>\n",
|
||
" <td>403</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>4</td>\n",
|
||
" <td>0.952843</td>\n",
|
||
" <td>2.375695</td>\n",
|
||
" <td>0.453955</td>\n",
|
||
" <td>1.921740</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>100</th>\n",
|
||
" <td>4254</td>\n",
|
||
" <td>3866</td>\n",
|
||
" <td>388</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>2</td>\n",
|
||
" <td>0.908792</td>\n",
|
||
" <td>2.258422</td>\n",
|
||
" <td>0.412951</td>\n",
|
||
" <td>1.845470</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>100 rows × 9 columns</p>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" access_count hits misses mu lambda hit_rate avg_age \\\n",
|
||
"1 2161 1803 358 0 1 0.834336 2.068924 \n",
|
||
"2 6271 5875 396 0 3 0.936852 2.320740 \n",
|
||
"3 2189 1836 353 0 1 0.838739 2.083113 \n",
|
||
"4 2128 1776 352 0 1 0.834586 2.098242 \n",
|
||
"5 4202 3815 387 0 2 0.907901 2.263760 \n",
|
||
".. ... ... ... .. ... ... ... \n",
|
||
"96 2101 1750 351 0 1 0.832937 2.038627 \n",
|
||
"97 2057 1709 348 0 1 0.830822 2.078611 \n",
|
||
"98 78225 77804 421 0 37 0.994618 2.481104 \n",
|
||
"99 8546 8143 403 0 4 0.952843 2.375695 \n",
|
||
"100 4254 3866 388 0 2 0.908792 2.258422 \n",
|
||
"\n",
|
||
" expected_age age_delta \n",
|
||
"1 0.348058 1.720865 \n",
|
||
"2 0.438846 1.881894 \n",
|
||
"3 0.351742 1.731371 \n",
|
||
"4 0.348267 1.749975 \n",
|
||
"5 0.412142 1.851618 \n",
|
||
".. ... ... \n",
|
||
"96 0.346892 1.691735 \n",
|
||
"97 0.345132 1.733479 \n",
|
||
"98 0.494633 1.986472 \n",
|
||
"99 0.453955 1.921740 \n",
|
||
"100 0.412951 1.845470 \n",
|
||
"\n",
|
||
"[100 rows x 9 columns]"
|
||
]
|
||
},
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"access_count = pd.DataFrame.from_dict(cache.access_count, orient='index', columns=['access_count'])\n",
|
||
"hits = pd.DataFrame.from_dict(cache.hits, orient='index', columns=['hits'])\n",
|
||
"misses = pd.DataFrame.from_dict(cache.misses, orient='index', columns=['misses'])\n",
|
||
"mu = pd.DataFrame.from_dict(db.mu_values, orient='index', columns=['mu'])\n",
|
||
"lmbda = pd.DataFrame.from_dict(db.lambda_values, orient='index', columns=['lambda'])\n",
|
||
"hit_rate = pd.DataFrame(stats['hit_rate'])\n",
|
||
"hit_rate.index = range(1,DATABASE_OBJECTS + 1)\n",
|
||
"avg_cache_time = pd.DataFrame(stats['avg_cache_time'])\n",
|
||
"avg_cache_time.index = range(1,DATABASE_OBJECTS + 1)\n",
|
||
"cache_time_delta = pd.DataFrame((hit_rate.to_numpy()-avg_cache_time.to_numpy()), columns=['cache_time_delta'])\n",
|
||
"cache_time_delta.index = range(1,DATABASE_OBJECTS + 1)\n",
|
||
"avg_age = pd.DataFrame(stats['avg_age'])\n",
|
||
"avg_age.index = range(1,DATABASE_OBJECTS + 1)\n",
|
||
"expected_age = (0.5*pow(hit_rate,2)).rename(columns={'hit_rate': \"expected_age\"})\n",
|
||
"age_delta = pd.DataFrame((avg_age.to_numpy()-expected_age.to_numpy()), columns=['age_delta'])\n",
|
||
"age_delta.index = range(1,DATABASE_OBJECTS + 1)\n",
|
||
"\n",
|
||
"merged = access_count.merge(hits, left_index=True, right_index=True).merge(misses, left_index=True, right_index=True) \\\n",
|
||
" .merge(mu, left_index=True, right_index=True).merge(lmbda, left_index=True, right_index=True) \\\n",
|
||
" .merge(hit_rate, left_index=True, right_index=True).merge(avg_cache_time, left_index=True, right_index=True).merge(cache_time_delta, left_index=True, right_index=True) \\\n",
|
||
" .merge(avg_age, left_index=True, right_index=True).merge(expected_age, left_index=True, right_index=True).merge(age_delta, left_index=True, right_index=True)\n",
|
||
"merged.to_csv(f\"{TEMP_BASE_DIR}/details.csv\", index_label=\"obj_id\")\n",
|
||
"merged"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "01f8f9ee-c278-4a22-8562-ba02e77f5ddd",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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M7y/tLQ0/Prrr7jpppsUzlcyr776KgYOHIipU6ciLS0NAHDhhRdi4MCB3Hs67bTT8NBDDyk+Gzt2LC644AI0b94cXbt2xYsvvojCwkLFbyMjI3HXXXdh5cqVuPzyy9GiRQtMnjzZsP1GREZGYtiwYb5/y+/Y5s2b8frrr6Nz585o3749XnzxRdTU1KCoqAhDhw5Fhw4d0KFDB7z33nuaMp5m74kgCIIgCIIgCIIgiIYPOWARBEEQBEEQBEEQBNEg6dWrF4YOHYpffvkFGRkZtp770UcfhcfjwejRo9G/f3988cUXGDt2LG655Racdtpp+Prrr3HWWWfhnXfeQXR0tOb3X375JaKiovC///0Pr7/+OlavXo1BgwYpnJPWrVuHG264ASUlJfjkk0/w1VdfoaioCDfddBNiYmI053z44YdRUVGBr776Cs8//7yw7dnZ2bjmmmuwcuVKvPLKK/jyyy9RVVWFe+65B3/99RcA4IYbbvCVV7vlllswe/ZsTbk1lqVLlwIAhg4dyv0+IiICTzzxBAoLCzUOZLNmzcK4cePw6quv4v3338eBAwdw0003ITs7W3g9wNuHQ4cORZ8+ffD999/jzTffxNq1a3HDDTegqKjId9zq1atxww03ID4+Hm+88QbGjBmDgQMH4p9//gEAvPjii7jlllsAwHef8r2uXr0ajz/+ODp06ICvv/4ao0ePxo033qi5Bys88sgjKC0txahRo/DII49gxowZGDlypO5vEhMTcfjwYdx3331o06aN4TVKSkowdepU3Hjjjfj666/x6aefIjc3F4MHD8bevXsVxz777LN488030aNHD3z99dcYPnw4mjdvju3btyuO27x5M1555RU89thj+Oabb1BVVYUHH3wQ+fn5vmOys7Nx1VVXYc2aNXjttdfw448/4qyzzsKzzz6LsWPH6rZ5+fLlcLvdwjEEeMeXy+XyOX49+uijiI6ORlZWlqatGRkZeOyxx3yfvfjii3j33Xdx7bXX4scff8QzzzyDuXPnYvDgwZrMYUeOHMHjjz+OW265BT/++CMuueQS3bYHwn/+8x8kJiZi5MiRuOeeezBlyhSMGDECd999N9xuN7766itcd911+PbbbzXvoJV7IgiCIAiCIAiCIAiigSMRBEEQBEEQBEEQBEE0IKZPny4BkHbu3CkdPXpUioiIkF5//XXf9wMGDJAuuOAC379TUlIkANL06dM15wIgffLJJ75/f/LJJxIA6YUXXvB95nK5pNNPP11yOBzS6NGjfZ8XFhZKLVq0kJ5++mnfZ+vXr5cASKeddppUUlLi+3zevHkSAOnHH3+UJEmSPB6P1KdPH2nw4MGSx+PxHVdRUSH16tVLuuWWWzRtevzxx031z5tvvikBkDZt2uT7rLS0VOrVq5cUGRkpud1uxf2/+uqrhue87777JABSYWGh8JhFixZJAKRx48ZJklTX7y1atJDS0tJ8x+3YsUMCIL311luae5RJTU2VwsPDpS+//FJxjf3790sRERG+z10ul9SrVy+pZ8+emrax/frqq69KPDXXG2+8IbVt21ZyuVyGfaBGNHb+7//+T3Hc/fffL3Xq1En3XEuWLJEASD/88IOpa7tcLqm6ulrxWWFhodS1a1fF9detWycBULwfMmz/AJCaNm0qJSUl+T7bt2+fBEAaP36877Nnn31WOvXUU6W8vDzFuR577DGpXbt2UkVFhbDN8riMjY0VHrNnzx4JgPT2229LkiRJR44c0bRBkiTplVdekVq3bu273qZNmyQA0ty5cxXHrVixQvN5z549JQDSihUrhO0QccEFF0gDBgzgftezZ0/FXCDPU+p3/Oqrr5YcDof00ksv+T6T5xj23FbuiSAIgiAIgiAIgiCIhg9lwCIIgiAIgiAIgiAIosFy5pln4qmnnsKUKVOQmZlp23mfe+4539/h4eG4/PLLIUkSnn32Wd/n7du3xznnnIPk5GTN74cOHarIZPTQQw/h1FNPxbJlywAAe/fuRWJiIp544gnk5+cjLy8PeXl5KC8vx80334zo6Gh4PB7FOV966SVTbV+2bBmuvPJKRZnC1q1b44UXXkBqairi4+PNdQJDaWkpAOhmZ5K/KykpUXx+33334bTTTvP9+8orr0T//v19fcFj0aJF8Hg8eOSRR3x9k5eXh27duqFPnz6+UnuxsbFISUnBm2++ifbt2yvOoVdSUaZ9+/YoLy/H6tWrDY81i/o5XX/99cjPz9f0C4v8nZnsV4B3TDZt2hSAt0xdQUEBXC4XLr/8cuzZs8d33MKFC+FwOPDJJ59ozqHun0GDBqF3796+f/ft2xdt27b1jW9JkrBw4ULcfffdkCRJ8VwGDx6M4uJixbXV+DOGzj77bFxyySX4888/fce43W4sWLAAd999N1q0aAEAmD9/Ptq1a4dbbrlF0a5+/fqhdevWmtKMvXr1wuDBg4XtsJNnn31W0df9+/fXzCXyHMPOJVbviSAIgiAIgiAIgiCIhk1EfTeAIAiCIAiCIAiCIAhCj48++gizZ8/G6NGj8eOPP9pyzjPOOEPx73bt2qF58+Y45ZRTNJ+zJdpk+vTpo/i3w+HAWWedhdTUVADeknMA8PTTTwvbUFxcjA4dOvj+3atXL1NtP3bsGPr376/5/LzzzvN9f+GFF5o6l4zsGFNaWqpxdJIROdio+wLwOtbMmzdPeL3ExERIksT9LQA0adIEAHD06FEAsHw/Mq+88grmzZuH22+/HaeddhpuvfVWPPLII7jtttv8Oh+gHTvyMywsLETbtm25v5E/l/vQDDNnzsSYMWNw+PBhRTk6dpwcPXoU3bt3R8eOHS23W257YWEhACA3NxdFRUWYMmUKpkyZwj1HTk6O8PzsGBLBG0OPPvooPvjgA6Snp+O0007Dhg0bkJOTg0cffdR3TGJiIoqLi9GlSxdT7TL7LtkBby4BgB49emg+l/sasH5PBEEQBEEQBEEQBEE0bMgBiyAIgiAIgiAIgiCIBs2ZZ56JIUOGYMqUKRg+fLjme1EmJLfbLTxneHi4qc8Ab2Ygq8jZrb799ltccskl3GNat26t+Lec7ac+OO+887B48WLExcXhhhtu4B4TFxcHADj//PMDvp7H44HD4cDy5cu5/a7uG3/p0qUL9u7di5UrV2L58uVYvnw5pk+fjqFDh2LmzJl+ndOfcXLuuecCAPbv32/qGnPmzMGwYcNw33334d1330WXLl0QHh6OUaNG+ZzSrGLUbnnMDhkyROg42LdvX+H5ZQfAuLg44ZjnjaFHH30U77//PubPn48333wT8+bNQ7t27RROch6PB126dMHcuXO55+3cubPi36F8l0T9yvucHSNW74kgCIIgCIIgCIIgiIYNOWARBEEQBEEQBEEQBNHg+eijjzBnzhx8/fXXmu/kDERFRUWKz48dOxa09sgZrmQkSUJSUpLPQUUu9da2bVsMGjTI1mv37NkTR44c0Xx++PBh3/dWueuuuzBq1CjMmjWL64Dldrvx22+/oUOHDrj22msV36n7AgASEhIQGRkpvF7v3r0hSRJ69eqFs88+W/c4ADhw4IBuP+qVI2zatCnuvvtu3H333fB4PHjllVcwefJkjBgxAmeddZbwd3Zy9tln45xzzsGSJUvw448/GjqYLViwAGeeeSYWLVqkuDd1qcHevXtj5cqVKCgoMJUFS4/OnTujTZs2cLvdfo3Z22+/HeHh4Zg9ezaGDh3KPWbWrFmIiIhQOFf16tULV155Jf7880+89tprWLRoEe677z40a9bMd0zv3r2xZs0aXHvttfXqqGgnJ+M9EQRBEARBEARBEMS/mbD6bgBBEARBEARBEARBEIQRvXv3xpAhQzB58mRkZWUpvmvbti1OOeUUREdHKz6fOHFi0Noza9YsRam1BQsWIDMzE7fffjsAoF+/fujduze+++47lJWVaX6fm5vr97XvuOMOxMTEYNu2bb7PysvLMWXKFERGRvqVoeqaa67BoEGDMH36dPzzzz+a7z/88EMkJCTgvffe0ziLLF68GOnp6b5/x8TEYMeOHb6+4PHAAw8gPDwcI0eO1GSOkiTJV/bxsssuQ69evTB27FiNgx37u1atWgHQOuGpy0eGhYX5nOSqq6uF7QsGI0eORH5+Pp577jm4XC7N96tWrfL1vZw9ib3HHTt2KJ45ADz44IOQJAkjR47UnM9q5rbw8HA8+OCDWLhwIQ4cOKD53mjM9ujRA8888wzWrFmDn3/+WfP9pEmTsG7dOjz77LM4/fTTFd89+uij2L59O6ZNm4a8vDxF+UEAeOSRR+B2u/H5559rzutyuTTPvTFwMt4TQRAEQRAEQRAEQfyboQxYBEEQBEEQBEEQBEE0Cj788EPMnj0bR44cwQUXXKD47rnnnsPo0aPx3HPP4fLLL0d0dDQSEhKC1paOHTviuuuuwzPPPIPs7GyMHTsWZ511Fp5//nkAXkefqVOn4vbbb8cFF1yAZ555BqeddhrS09Oxfv16tG3bFkuXLvXr2sOHD8fvv/+O22+/Ha+//jo6duyImTNnIiUlBQsXLkRYmH/xdrNmzcLNN9+Me++9F0888QSuv/56VFdXY9GiRdiwYQMeffRRvPvuu5rfnXXWWbjuuuvw8ssvo7q6GmPHjkWnTp3w3nvvCa/Vu3dvfPHFF3j//feRmpqK++67D23atEFKSgr++usvvPDCC3jnnXcQFhaGn3/+GXfffTcuueQSPPPMMzj11FNx+PBhHDx4ECtXrgTgdXgDgNdffx2DBw9GeHg4HnvsMTz33HMoKCjATTfdhNNPPx3Hjh3D+PHjcckll/hK5oWKRx99FPv378eXX36J2NhYPP744+jZsyfy8/OxYsUKrF27Fr/99hsAb0ayRYsW4f7778edd96JlJQUTJo0Ceeff77CoW/gwIF46qmnMG7cOCQmJuK2226Dx+PBpk2bMHDgQLz22muW2jh69GisX78e/fv3x/PPP4/zzz8fBQUF2LNnD9asWYOCggLd3//www84fPgwXnnlFaxYscKX6WrlypVYsmQJBgwYgDFjxmh+98gjj+Cdd97BO++8g44dO2oycA0YMAAvvvgiRo0ahb179+LWW29FkyZNkJiYiPnz5+PHH3/EQw89ZOle65uT8Z4IgiAIgiAIgiAI4t8MOWARBEEQBEEQBEEQBNEoOOusszBkyBDMnDlT893HH3+M3NxcLFiwAPPmzcPtt9+O5cuXo0uXLkFpywcffIC4uDiMGjUKpaWluPnmmzFx4kS0bNnSd8yNN96Ibdu24fPPP8dPP/2EsrIydOvWDf3798eLL77o97W7du2KrVu34n//+x/Gjx+Pqqoq9O3bF0uXLsWdd97p93lPPfVUxMTEYMyYMZg/fz4WLlyIiIgI9O3bFzNmzMDQoUO5pf6GDh2KsLAwjB07Fjk5Objyyivx008/4dRTT9W93vDhw3H22Wfjhx9+8GVw6tGjB2699Vbcc889vuMGDx6M9evXY+TIkRgzZgw8Hg969+7tc3YDvBm1/vOf/+CPP/7AnDlzIEkSHnvsMQwZMgRTpkzBxIkTUVRUhG7duuHRRx/Fp59+6rejWiB88cUXuOmmmzBu3Dj8/PPPKCgoQIcOHXDVVVdhyZIlvvseNmwYsrKyMHnyZKxcuRLnn38+5syZg/nz52PDhg2Kc06fPh19+/bFr7/+infffRft2rXD5ZdfjmuuucZy+7p27YqYmBh89tlnWLRoESZOnIhOnTrhggsu4Jb/VNO6dWusXbsWEydOxJw5c/Duu+9CkiSce+65GDt2LF555RU0adJE87vTTz8d11xzDbZs2YLnnnuOe8ykSZPQr18/TJ48GR988AEiIiIQGRmJIUOGaMpiNhZOxnsiCIIgCIIgCIIgiH8rDslqPnKCIAiCIAiCIAiCIAiCsMCIESMwatQobuk9giAIgiAIgiAIgiAIgmjshD7UjyAIgiAIgiAIgiAIgvhXkZmZiVNOOaW+m0EQBEEQBEEQBEEQBEEQQYFKEBIEQRAEQRAEQRAEQRBBITk5GX/99Rfmz5+Pu+66q76bQxAEQRAEQRAEQRAEQRBBgTJgEQRBEARBEARBEARBEEEhOjoaI0eOxIABA/D999/Xd3MIgiAIgiAIgiAIgiAIIig4JEmS6rsRBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQjRHKgEUQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBOEn5IBFEARBEARBEARBEARBEARBEARBEARBEARBEAThJxH13YCGgMfjQUZGBtq0aQOHw1HfzSEIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIop6RJAmlpaXo3r07wsLEea7IAQtARkYGevToUd/NIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiigXHixAmcfvrpwu/JAQtAmzZtAHg7q23btvXcGoKH0+nEqlWrcOutt6JJkyb13RyCIAiCIPyA1nOCIAiCaPzQek4QBEEQjR9azwmCIAii8UPrOUGEjpKSEvTo0cPnWySCHLAAX9nBtm3bkgNWA8XpdKJly5Zo27YtLSAEQRAE0Uih9ZwgCIIgGj+0nhMEQRBE44fWc4IgCIJo/NB6ThChR/YtEiEuTkgQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEHoQg5YBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQfkIOWARBEARBEARBEARBEARBEARBEARBEARBEARBEH5CDlgEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRB+Qg5YBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQfkIOWARBEARBEARBEARBEARBEARBEARBEARBEARBEH5CDlgEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRB+Qg5YBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQfkIOWARBEARBEARBEARBEARBEARBEARBEARBEARBEH5CDlgEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRB+Uq8OWNHR0bj77rvRvXt3OBwOLF68WPG9JEn4+OOPceqpp6JFixYYNGgQEhMTFccUFBTgySefRNu2bdG+fXs8++yzKCsrC+FdEARBEARBEARBEARBEARBEARBEARBEARBEATxb6VeHbDKy8tx8cUXY8KECdzvv/nmG4wbNw6TJk3Cjh070KpVKwwePBhVVVW+Y5588kkcPHgQq1evxj///IPo6Gi88MILoboFgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiD+xUTU58Vvv/123H777dzvJEnC2LFj8dFHH+Hee+8FAMyaNQtdu3bF4sWL8dhjj+HQoUNYsWIFdu7cicsvvxwAMH78eNxxxx347rvv0L1795DdC0EQBEEQBEEQBEEQBEEQBEEQBEEQBEEQBEEQ/z7q1QFLj5SUFGRlZWHQoEG+z9q1a4f+/ftj27ZteOyxx7Bt2za0b9/e53wFAIMGDUJYWBh27NiB+++/n3vu6upqVFdX+/5dUlICAHA6nXA6nUG6IyIQ5Oci/39uzAn8EXMCHVs3xXcPXoTObZrVZ/MIgiAIgjCBej0nCIIgCKLxQes5QRAEQTR+aD0nCIIgiMYPrecEETrMvmcN1gErKysLANC1a1fF5127dvV9l5WVhS5duii+j4iIQMeOHX3H8Bg1ahRGjhyp+XzVqlVo2bJloE0ngsjq1asBAOP3hCO/2gFkAxMWrcOVnaV6bhlBEARBEGaR13OCIAiCIBovtJ4TBEEQROOH1nOCIAiCaPzQek4QwaeiosLUcQ3WASuYvP/++3j77bd9/y4pKUGPHj1w6623om3btvXYMkKE0+nE6tWrccstt6BJkyb4dN96AF4vwwsv6os7LjutfhtIEARBEIQh6vWcIAiCIIjGB63nBEEQBNH4ofWcIAiCIBo/tJ4TROiQq+oZ0WAdsLp16wYAyM7Oxqmnnur7PDs7G5dcconvmJycHMXvXC4XCgoKfL/n0axZMzRrpi1Z16RJE5qcGjjyMyqsqEvxFh4WjiZNmsDjkbAztQDhYQ7069kBDoejHltKEARBEIQIkrkIgiAIovFD6zlBEARBNH5oPScIQo/k3DK0bBqBbu2a13dTCILQgdZzggg+Zt+xsCC3w2969eqFbt26Ye3atb7PSkpKsGPHDlx99dUAgKuvvhpFRUXYvXu375h169bB4/Ggf//+IW8zERqSckoV/5bgLT+45lA2Hp2yHQ9N2oYtSfn10TSCIAiCIAiCIAiCIAiCIAiCIAiCaNQUlNfgpjEbcdWotcYHEwRBEAQBoJ4zYJWVlSEpKcn375SUFOzduxcdO3bEGWecgTfffBNffPEF+vTpg169emHEiBHo3r077rvvPgDAeeedh9tuuw3PP/88Jk2aBKfTiddeew2PPfYYunfvXk93RQSbE4WVin9LXv8rHC+oq7uZUaw8hiAIgiAIgiAIgiAIgiAIgiAIgiAIY1Lyyuq7CQRBEATR6KhXB6xdu3Zh4MCBvn+//fbbAICnn34aM2bMwHvvvYfy8nK88MILKCoqwnXXXYcVK1agefO6VJdz587Fa6+9hptvvhlhYWF48MEHMW7cuJDfCxE6alwexb9r/a9QUePWfkgQBEEQBEEQBEEQBEEQBEEQBEEQhGkksrMRBEEQhGXqtQThjTfeCEmSNP/NmDEDAOBwOPDZZ58hKysLVVVVWLNmDc4++2zFOTp27IjffvsNpaWlKC4uxrRp09C6det6uBsiVKgdsGRiUgp8f8eeKPL9ve9EESKHR+GjxfuD3TSCCIgVBzLxfzN2oqC8pr6bQjRCJEnC8IVxGLc2sb6bQhCNlt3HCjB0WgyScijCjyCIk5cJ65Pw7vx9kEibThAEQRAEQRAEQQgQ2eIIgiAIghBTrw5YBOEP1eoMWLV2g9bN6hK6/R5z3Pf3vRO2AADmbD8OgmjIvDRnD9YdzsF3q47Ud1OIRsjBjBL8sfMEvl+dUN9NIYhGy4M/b0N0Qi6en7WrvptCEAQRNL5deQTzd6cpglYIgiAIgiAIgiAIgqWcqTrj8VAAD0EQBEGYgRywiEaHtgShV/BzkQBInCQUlFEGLMI6VU638UEEQZgirbCivptAEAQRdEh2IAiCIAiCIAiCIEREhDl8f3sogzJBEARBmIIcsIhGR6XKUCDLfS5Pw0uHWlrlxP60YirvcZJRVFGDWdtSUVbtUnzucnuw53ghnO7AxqLDYXwMQQSThj53HcsvR3pRZX03gziJaaBDnyAIwlbMbp+SckqRU1oV3MY0AtIKK3A8nxx0CYKoX4ornDiYUVzfzQgKCdmlyCurru9mnLTklFRRqXWCIAjCb/anNx75I7e0GonZpaaOdbk92H0scJsOERryy6qRYPLZNiQOpBejpMqp+fxIVinyTcq/kiRh74kiVNZQMB1BNHTIAYtodBzOLFH8W7aRNkQB6c5xm3H3T5ux/khOfTeFsJFLPluNj5ccxIWfrFR8/vk/8Xhg4laMXHowoPOrHbsIwgw7UwttO1dDnrvKql0Y8O0GXDt6HaW+JoIGjSyCIP4N/LHTuER7elElBn0fjSu/XBuCFjVc3B4J1329Hjd8ux4VNSSrEwRRfwwcswF3jtuMnakF9d0UWzmWX45bf4jG5V+sqe+mnLRc+dVaDPp+I7KKyamaIAiCsM79E7diR3J+fTfDFFd8uQa3/BCNEwXGATRfrziMB3/eihGLD4SgZUSg9PtiDW79IbpROZVHJ+TirvGbMfiHaMXnSTmlGDw2Gv1Myr+/xRzHfRO24OlpMcFoJkEQNkIOWESjo33LJsoPatNUON0Nz1x6vFbA+2dfZj23hAgFM7cdAwDM2W5szFLDZhpKK6TMPoR11h7Ktu1cDXnuyimpUxa7KU0RESQorTpBEP8G/okzXucPNKIo52BS46oL9skrpXLhBEHUHwXl3jlodbx9+7+GwJ7j9gUUEfocyioxPoggCIIgOKw93PCCdfWISzPez/6yKQUA8MfOE8FuDmEju481nmCE5Qe8updMlRP8jhRr9/DbDq/dMeYkC8QgiJMRcsAiGh0VqvSKDTkDlg8qKUcY4GYy+ZDhn/CHsLC6ica20oENcO4KY2p0uikDFhEkaBomCILwEka1sQEAEpMbkbqEIIiGgKsBBiEGgqMhbj5PUmzTFxAEQRAnPw7dfzZ4JMpxf9LSuGRHflsb1z0QBGEFcsAiGh1rVFleZL0BT/mkVirUl7F+0Z70gEtlFVc68eyMnVi6L8OmVnmZvS0Vr87d07Ad2BoQwSrJ5mrADliSJOGDv/bj+1VH6rspjQpJkvD+ojiMXZMQkusx/lewbaqzeJ7Ryw/j078DK8FphMgBq8blwctzdmPO9mNBvf6/mS+j4vHFP/Ehu976wzkYNj0Gi2PT8fS0GFNpw+uTn9Yl4j+/xzYKx8A18dl4ZnoMckqp/EhD4+MlB/DtysOKzypqXHhu5i4s3J1m6hwrDmRhyNQdOJZfzv2+vNp7vkV7zJ2POLmwanSdsTXF7982dkYvP4z/LYiDJEkNMtuyGY7mlmHotJiTrlQZEXxcbg9e/W0PZmxJMT44SOxMLcBTv+7A0Vz7yotUOd14YdYuzDsJMhyk5DWesitmSCsMnax/29hoRA6PwmdLQ7e3aUg0ZvWfPDfN3JoalPPvTC3A0Gkxts47BEE0fhbtScNzM3ehvFpZivyndYl4Z/4+v/dJ36w4jI+XNK6yd44QR6PM23UCz8/ahUpVUgazyNmtiODw0eL9eH/R/vrRFZwEvkusXs5MHx7Pb9i68YbAp38fxKjlh+q7GQRBDlhE46Nt8ybcz3kORGpF+YYgOc+Y4WBGYCm+x69NxNrDOfjP77E2tcjLiCUHEbU/03bHrpOVZ6bvDMp5Waerq3p1Cso1/OVobhl+23Ec49Yl/esMb4FwMKMEv8ecwNg1iSG53nVnneL72y4HECtnqXK6MWnjUczYmoqs4uA5dbD7fNZxcdGeNCw/kIWPFjcuxUVjobjCiV82pWDq5hQUVYSm9NIzM3Ziw5FcvPnnXmxMyMVbf+4NyXX95btVCVi6LwPbk/PruymGPDdrF9YfycXn/9CGtCFxPL8Cs7Ydw4T1RxXr7bTNKVhzKBv/nb/P1HlemrMbm5PyMGYV3wH4l03JWHMoG2/PM3c+4uRCnfLeiC1JdXNaetG/p0y20+3BpI1H8eeuE0jKKUNxhbO+m+QXr8zZg+iEXDw8aVt9N4VoZETtz0RUXCY+rUcHlYcnbcOmxDy8MGuXbeecve0YVsVn472Fcbads74IDzsJrE4M3wnklmBwOKsUADCtHh0M65PGEDAiYtmBLETFZeKTIAV+PTxpG6ITcvHS7N1BOT9BEI2Tt+ftw5pD2fhlU7Li8+9WJWDB7jTsOV5k+Zxuj4SJG45i1rZjDT7gkCXU2YDfWxCH1fHZmLvDv4DbfSeK7G0Q4SO/rBpzth/H7zHHkVtWHfLrNyZJ2O3he7/vOlZXgvtQZqnhecJOMvnfbjKLKzFjayomb0xGtcs/p02CsAtywCIaHVW1E2f3ds0B1HkG8xywalSflfvpKW8HgaY7LQyy0l8dwUGEFtaR5IyOLeuxJVqqnHXvUWNW1IWaSmdo55sezLixK4uaFZGevWQwM+qxGw02s2BpFc1hwcTNPOD6ygKSVdI4sjX5G5VXH+RSBqwGBascYOfUgnL/ZMCUPH4GrILy0DhREg2TQGT+k63clR6szFvpdCv2la5GJA9nFv97nOYIe2lIsrVoPfOHwhAFEoSCk7lEbDADvyiorHHrdSpCpLv8NzmdEwRhnvwyvhxR7YcOmNXdVrsacWrCENGQZFPCC6sfbsyyRSho14KfVITFjD3ntPYt7GjOSQvZMYmGBDlgEY2OEwXeTXCrZhEA6jK08BThNSrhVeRpbERplRP704otKWrUGWAC1fGonZsLymswe1uqfQtJI1LeFVc4ER9gRrH6pMrpxubEPIWR3s0IrGmFgSl6DmYUI8/GqAN27PpjcErJK8dfsaEpc1TldCP2eGHAJT8BILukSjHOjudXWCqLwPabHe0BvEpAUUkpNgW0XYZB3lkKymtwIL2Yc2zd0cHSaVfWuLGXiSpzMnN6I5rCQkqNy4M9xwsDXitYp7pAHYoBZbvcHgl7jhdq1mw17CaqvsguqTIsR2HHWHS5Pdw+8XgkxB4vRFWIHTz/TdRnH7Nvlh2OtGrZUX7XgnlvSTlliIrL/NeVtj5RUIF5u07ozrWS5B1bZrIIysduO5pvu1NnhYnzSZKEA+nFKK1SOv8ZjUtJkrDvRFHATn6lVU78vS8Df8WmafZf8vwY7DHmUTkesw6SwXa09fcec0qrkJSjjJptEq6v8imvdmGPBdn5WH45MsgozWVxbDoOZYZ+j5pRVIlUCw5KZo+vT3V1RY1Lka1APTyLK53Yd6LIL0ca0sN7Ka5w4mCGdk8XCmR5RC8qXTboZRVX2eqAB9AYAACXn7rRUJNdUoWkHOXey6zjYWZxJebt1JfNTgaqXW5b9vt2UFBeg8NZoV8HzV632uXG2kPZGn2yxyNh9rZUW/WoIqqc5p9XSZWTq3sLFkk5ZcgRBL1lFldanotzOO+vv9i5R5ffmVUHs/BLdLJlfa1Ib+X2QyZhx4FVmUbed4UioF7dtuX7M4Mi80qShP1p2j2oTNMI86Zsq/3Z2JIKJWaX6s5ZB9KLUVyp7MfM4kok6+gzTxRUWMrEVuV0YzeTvamgvMY2e11GUSUOZZZgL0feZ99ZM+Uwy6pdmL/rBD5ecqBe9VRm2mpGxtHTyeRUWs94bpac0irM23miwWeVUutxCKI+IQcsolHBCrk+B6zaedTJEYDVmwN/J927x2/G3T9txtpD5ksYXjVqreLfgTpEqNffyz5fjRFLDuLRyfaUk2hMcuZ1X6/DHeM2Yc/xQuODGyCjlx/GkF93KEqlsRu1P3ed8PvcR7JKcee4zRgydUdAbWRZfiDT97c6q5wZBn63AW/9uQ+/7ThuW5tEvDB7N+6fuBXTt6YGfK77JmzBHeM24WhuGSpr3Ljh2/W47uv1poV1VuDzZyOuxu2RcO3odRjw7QbuBtuhOtYOeBvWp6fF4K7xmzWKIPaadtwvj2dmxODV3/b4/r2OmZNP5gjwQBi+MA4PTNyKMauOBHSeV+bW9bsdj/e9RQfwwMStGLsmAd+vPoIHJm7Fewv0y6GFQiFqRP+v1uLmMRuRo5M5yo6h+N2qBDwwcSs++Gu/4vO5O47h/olb8fS0mMAvAooG4jFrWyrun7gVz820r9yRWdh3K6Ooboz5PaZUP/xxbSIemLgV83bVOUXbmQWipMqJQd9vxKu/7cHIpcEpC9NQuf6b9XhvQRx+WC0un7QxIdf02Pot5jjun7gVj/+y3bb3XYbN0ClSYm9MyMVd4zdj8A/Ris+NHLB2phbi3glb8NSvgcmhd43fjNd/j8Vbf+7Dr5uV5aG+XnEYD0zcig9V86PdKOQaj6TYhw5fFNzSZaOWe+9xhMWyyld+uRaDvo9WBAwYveHv1coJyxh5X0RZtQsDvt2Aa0avowwyKlbHZ+PNP/fi9h83hfza14xehxu/24ASgbGKRZIk88fX4zN+fMp23Dthi/D7V+buxr0TtmDb0YZf9rmhcsO363HnuM3Yfawg5Nf+aV0SHpi4VbcU8rrD2QC8erWB321AoY3ZO0n+bTwGqf5frcWg75V7L1bXoOfUfvWodXhvYRzenrc3mE2sd978Yy8emLgVE9Yn1XdTcNnnq3Hb2E0hd8K6/AvvdROy9Us3/ee3WDw7cxfuGLdJ4bD+5NQdGLHkIC7/Yk2wm4rXf4/FAxO3Ykp0suGxt34fjbvGb0Z0Qm7Q25VdUoVB32/ElV+t5X5/9ah1GPjdBo1Dhx5X1r6/2TZkMv9lUzLun7hVoZfyl3fme2XfF2bvxpfLDlkuZ8rq7Nn15MuoQ5bbwu6trM7Kf+/LwL0TtuChEJQZV/vspuZX4PYfN9keHL/ucA7u/mkz7h6/mbl2Xc80NQgsYbG61jcm0SA1rxy3/BAtnLO2Hc3HXeM34+YxGxWfXz1qHW4as5ErU9W4PLj+m/W4/pv1ph0dX527R6Gjv3PcZtwxbhNibbDXXTN6HW7/cRPum7AFv8co7WRfLat718yoyt6Ztw/vLojDrG3H0OfD5QG3zQ5EzqmBOMgXVTjx5d4I3PBdtPHBfnDll2vx3sI4xfvZEClh1inXvywwlGh4kAMW0agoY5wOTu/gTbcoy0dORlLq17MDAGiUiv6WzUjN9yqxl8Zl+PV777UDm/BFzgVsneBAaEy+C6W142DDYfMOccHGimA/o9Y5aOGeOgOoXUrArUfzAACHs4xrRptlcWy67+9ASs+MWm59M2oVWTEx0wYHLDli4EC6MqOY2Y2IwgHLhufLOn7xUl6zc4RdGbd4Z9lf63i1XvX+hWKzuj1ZaSBg5+TGFq0UKhbVvr8TNxwN6DxsVJMd9rio/VkAgMnRyfi5tm2L9/q/xoaaozlKB2/WEO2wwaV50kZvnyzYrcweOLfWkXVHij3GsmYR4bac52RiTm0fb07Kq9d27A9CtLM8rljsnLvTCuqy4szZHnyn64bITzrGr+W1854Z2f33mLr+i0m11zjOOhLd3bc79xi5rRmq6Emj8SLLYQcDVMYfy69zIPp2pdKB+JdNXocs1pEwGLC6T5fbo+i3uLTgZiOQnc7+2OlfUAbb/0YrUlSc1/Fq1rZjhudlMzyTA4MSdn4NpXMaK/OrM3Bzj2eallnUcMsQ7zN4x7YkeR2vlvghO9qRyfVkQDair7EQZGgXk6O974s8//BYuk/53TELGRmMUM9f/0aH0sZmkErKrjNUsvqYnFLjAB1/5gmgXn1QLbH8gFdmm7rJ2KEnVGwPsXOs/EobOeWuis/2/b0rtU4e35YcuvbKbfh1s/Hzyqp1XJKfcTDRy2bEzpHpflRsOGKDflqWjdfZYAdYuk85J8zebiwDi2CdJfzRw7PLkdUM2Av3eHV9oci+Kmrb5iR7nQPl+TqV2QtWMdl22rU0LuEmYzURQkQjUiobJSRYedA7Z4iCWJPztM4/rM3VbKnHtYL3ccORwMaF2qbxx06lbmkqE6Bl5imvOBj8OdQM7AgTZaENxEHeTllZj4RsezIbBgtWzrerQgxB+As5YBGNCjn7TniYA+G1gpG8EWCdEzq3buY9XpUVK9A0k2bnbJ4CJ1AltZk0lQGdv1HlwKqlnr3G2JrLRqWzjLBLIAhGFiB27DWWkkKBlm5SOFM4HH4NNbYJdhipPIo2ab9nP7OtBKHOadRfsRukUCmx2X4Na0Sb5caOnRnOwhz1W+LGX5qEK8cb+8oFc2my+9WyosD6t9BQFG+sgdjvBFgG/wbsdaKwo2ziyYyV/gmmXG5GlgsTaAmMxkswXp/6eicVqes9EqoDlPVDCdtjHVo1te284cyzaCTJU0JGMDLRmsEtWVsrlJkW9NvZGB4xrTuBY1fgjhXC/RCW7dxfqvcy/0bbTGMzSLE6Kfbx0RxQR0PSh9RXW6xMLVZKmQWDhjZ09WwOrFzjj67DDv1IQw0aDyRIGdBm3LVCKLtE1DS7TQS8OZ21t1jZF1rtT7nSzskA731h5T3evlahX6/n982pygKl9ywbi50KUFaVaSZYgwJxkGcfW33I9w0FVsZtTOODODkhByyiUSFPmk3CtWaJooq6bFeywKYWKNhJNy6tCOd/vAL9v1qjW/+YhScIFlc68eyMnfibiaDgKTMCLZfHCj9sWQnAq4x6b8E+jFubyG3bPyYyd8Wk5GPotBjLNd1FSJKE/l+tQeTwKGQUWY+QMcPaQ9nGB+mwZG86npu5U1Nb/PlZuxA5PEpTYk0Na4SoqPGv5rosWIkEo30nihA5PIpbguT3mON4cfYuRQQgq+hYfyTwyKCB321AOvP8+n+1Ft8xmQiO5Zdj6LQYYaSZ0ilH+73L7cFln69G5PAoS3XGZU4UVCByeBTuUJX7CFSZwc4nDiijLM1u4thIE3ZO2JSYi6enxWjeYwDYmVqAodNiuHMSGwUxd8dxvDJ3N2pcHkQOj0Lk8ChFKm67FJF6Z/leVWaJnW8DkfM3Jnj7x8y8cTS3br7KsDGKv6iiBv83Yyd+23Ec/zdjp250dkNhwLfrETk8ShG1ZMT3q47gg7/2KwwaLnfdmBIZOr5bGVg5Q5Yqp3Yz9FdsGp6Zzi+59cU/8fgyKt6Wa3/+T7widbXenL8lKU9RUkvtdLtgd12WEocqG13fT1cicngUcpjU+1VONy78xPs5by5gUZaSqnsmz87YieIKfgmACeuTEDk8CqOWHdLMKawsFBWXiSV703mn0MCTdz5avN83XmZvSzV1nl+ikzFseoyifEFuaTUih0eh1/tRqKwxl2UwUIortDJScm6ZInKV/W7U8kO4ecwGDJtubn7iEZ9Rgqd+3YEle9MxdFoMdqkyG5UzskRJZd3fe08U+f6OHB5luvSaWvHGU7TpldPUo7za5Xv2sixjV9au71cdwW1jo/HUrzt876W83t80ZoNmbkrKKcVTv+7wZQENBEmS8MFf+/G9qmxrldONF2fvwh8xyuhLj0fC+R+vMHVus2ujxyNp+jLHj9IdTrcHr/62R5MVNPZ4ke9vtyDFvSglvpF8YTZgZMHuNDw/a5cp+TncpAa4ssbtm0fsMNSzBvoTBRWmsgvN23UC/zdjp6XyLMEgzOHwyVNsuyOHRyky27KY6WXWaeLCkWtQVk+3+fOGo3j7z70BKZbLql14buZO/BWrzaS2ODYdw6bHoKC8BtO3pOC13/boKsOzS6oUme1kuX/5/kxEDo/Cq3P36I7Ju8ZvQuTwKFNjTA27L1GPu9IqJ56buRNL9qb75rBHJteVqTmery9/bKnnTJBm8GsE+PGj1DzvnneHH1lSiiudiBwehcu/WG35t9G173G6QO4wmnKLK5wYNj0Gr/8eiyd+2Y64tCIASjl2cnSy7/Ng8fGSA/hmxWHfv/1xzrDTjKTezz8/a5cmy/UPqxMQOTzKttJf2SVVGDY9RpNFWsSXUfF4f9F+v9cznq6ogCk5FIoMWOsOZ2PY9Bi/ZBhA7PTBVjow6/xwUe2+66hJ3a8eI5cexKhlh/DtysP4eMkBTN2UjNd/j1W0V9brbEnK88nL6mPspkiwLwSAFQeyfO0IBcEOILaDYGaC/mrZIbxlIKdYGQm/x4gzC49YfABv/hHrG2/+ws41q1TZYk4wWa/YR3sgvRhDpu7A7mOF+PCv/RjD7J/Y821OtNYu3r4rlA5rrPxkRKAOWOwYEe2/RGxk1ie24sSo5YcQOTwK25PzsT+tGJHDozDwuw0BBY6L5BDRXtIM49Ym4o0/YhV9sJGz5vrT7uiEXIX+ziqRw6NMlfa2SkWNd/8xh8m6NmrZIYxcqi2DGZ9RgiFTd2h0RoCx/McL5qoQyAMy7PrEjuptR732wmP55Xhn/j5T5W4DfV3V75VeedlyCzrwYCLv+yKHRwnby+o6RU7AZhzkedn2PB4J7y6ssx3WmJTznG4PXp27R5HNee6OY3hu5k6/bZ12klfm1RVfO3qd6d+w4yfQOdosP65JxPCFcQHroVYdzMIz02OE2euIxgc5YBGNCqfLO4k1CQ9TbOiKKpSCg2wcUAtpZ3Vp7fv7vglbUFHjRnZJteka4rxJ9Kd1iVh7OAev/x7r+4y3qf5uVYLmMyuwmY2GL1Qa3uLSijFvV5rGIWLsmgSsPZyD136LhRGL92YgOiEXr/1mri+MOJxViuwS72Lx/iJzhkKrBFre5I0/9mLNoRxNyYjVtSmh77JQ09hf5w85DapIwLp3whYA/JTI7y/aj5UHszGPqT/PGkZenL3brzax8Bzy2PI6b/25F9EJuXj8l+3c329PqVNSDzy3i+b7ZQeyfIL/2/P2Wm6ffN14VcrlQB2QfmM2+g4HMGljXXpwPcUWyxdRdRtgdk546tcYbEzIxf8Wxml+8/CkbYhOyMVLc7TPjj3HpI1HsWx/lsJ5hCVUEa3VTCpotqRmIALn09O8/fOBCQeDXKbkAK+0lr+MXZOIdYdz8MFf+7HucI6ipn1DRS7X9O78faZ/M25dEn7bcVzhyMaWIWE/Z/lLYLy1i7f+3If1gpTVUzen4JdNKQEbt/PKqvHr5hRMiU72KVb01qonp+7AJkZxOFPlbPQ/Zl1mVR3xmSUoqU3f/RHjSDtn+zGfs9zb8/Sf2bvz6+YK9tVeezgHP6zhyxZyya7J0cmITsjFy3PqxrA65f4bf+zVvb7Mj2uU8k5WcZWizNyIJVqlEY8vlx3ChiO5Ckeuz//xOtVJkrZvg8X4WvmNlZHUc6/8XWWNG5M3JuNobjk2HMlVPEsrPDl1OzYl5uGNP7xr50OTtim+Z0s6FDKyrdpQKZeiNMJMVswp0f6VK/mFKXOyrLYshh3yniRJGLcuCYezSrEpMQ+P1joLvFAr0yTnlvtKBMuMXBqPTYl5+I8JedeIo7nl+G3HcYxbl6RYy/6IOY6VB7MxXHWPMakFqDDpNGh2bdzOMfCPXGrd8XTZ/kxExWXik7+V7yYrx4nkhZ1MWRYWo1swm4n1nfn7sDo+G9OY8gEimoSbU1nMqp07JCnwPQKgNIiYjZx8b0Ec1h3OUSjVQ4Uye2udPKV2zH7zz73c35t5dE0ilAf9cbR+1ElfrziMRbHpin2GVaZEJ2PNoRy89ad2DX7zz73YcCQX0zanYOTSePwTl6lbukK9Jsgy+8u1Ooao/ZlIFgQ5SZKEA+ne8frAxC2W74PdH/yoCsaavNF7j2/8sRe/185hrAMmby/CsvJgXbBTQ42iDlX2m5fn7kF0Qi4encLf8+rxQ62OJq+sRmjAFDG09j22It+z/L7zuE/m2no037e/WqwyKj/481a/zm+GEwUVmLXtGCZuOOpz+jHjf9X39HZBa5N6PK87nKORreT3aeg0flCIVT5ecgAbjuTimRk7DY+tqHHhl00p+D3mONL8KPcF1OmK5jPlzJ+bWXftUOgL/m/GLmw4kouPTe4R1LBrLytfrGDKsZldn0tr18LnZ+3yqy0yOSVVmL4lFZOjkzFh/VHM2nYMX0Qdwt/7MhTOdbJe58mpdQ4Af+/LwAYbgiT9gadfshvWsJzth0Oxv7D2gNYWMtiYdfC3SpXTjSnRyfgrNl23JJ3V9Yu3DqfklWP29mM+fT473gLhBZUueeB3G3x/s44d7y/aj81JeXjw562Yu+M4xjP7J1Y+mWxxvzlv1wnuvitU/LzhqE9+khEZw10BOCAByoCPL6P4+l0e6iCqyRuTfY4ok2v1149N2Y77a2XLlLxyhc7WKrK+Rk0gvrzfr07Akr0Z2Mk4GPFK37FBZGbXrqHTYrCHkXnNoHbEnrDO2NHIKgt3p2HNoRzf3qG82oXJ0cmYviVV80w/Wux9v3h7N6Ppg7evW76/LrCY59TGrqfsfPP4L9sRnZCLAd9uwILdaT5dox6BOjurn3PzJmKH2S5tmwd0Lbt4mbEt3/pDNPeY7kwlHVHGc38zNm1LzlfsN5MF+nw16w/nIGp/JkYvrwuU+PCvA1hzKAfzd/k/Z9jFF7VzT3pRpelgXTaDWqBztFl+WJOAP3aeCFgP9cLs3Vh/JBejlh02PphoFJADFtGokBehpowiXpKActUELK/TrHMAALRr0URzDACNIUcET8DJ53iNByO9Ibs3zCxWKmEqnfwFiOfRboTZvjCCbZO6vQ2NgvI6Q76ViDR2w+yv8lfeIKmjRqw4sJQwjgisjSrQsohmMIrUrmay2/RhHCBl2OxjJwqsjxNWIcn2WaC6+GwmStMBh0KpY1Z4Y52DeONKr+/SOYpW3nVzBUoAu4wkRuNQFHVvh0JX3T+hKmsI+Dd3NhRySs1FSYgMy5XOOoWH3hxi5/PwR/UZaPQwGwUj1d6mlew9eg4XrLKDjTpi5xXWuSbbICo8m1HEqNcangzCg83YZCVLmugcQOBrTCUTTcWeO1SZYwoqtH3Hm3sBbb/nmnzP1BSadOAFlO+oP6V6AHPv1jGDDCgiCpmxV2Fj1KE6Uk+W8VMZZZL67ZczhJl9H3Svz4xrdp4pEoxLKxnbzMqKvPlFtN7rUcJRYKuxGhFoNPdaHaqsDC7CrIHM7PpnFnVpN6NybYq2+JntIxBY2cuv8jAmZgz1McU19ZvhQm0osYI6gIsHuzbpRVerxx6vVLOorWyG2wx/MmAx1ypRzVOsrMFbW62sSXaWn7YTf/Y8/tyJUbZSPRRZkf3UE/mbeVMtr8jOfmoDpzOI0eE8w6loXr+Ycbrq1LqZ4js7hyBvr1psYk4IBCsZ7tgMwYGWvy1jnjVrmAtlCcJsP7OtKh2w6j73xxgvYyXrOm/d13se5SYyRZh12m+MsPqqUJaGZPcO1pyqgtNGdr23sx94Y11t8wgFrIzJ05/IzQxkjlHLM4D5IA874OkD2T0Ta5MKdC5lx4iVvQxvD8eT1dj28fo1UALJgCUjsmnJVAv253aj7j6zwddWyCtTji32mamfqexA5o8jNu9tKVbYjrRHsGtuoHJ/oLpCtbys9/43r+dyslZowTiSsWM5slNL39/+ZmxS71XNvisiPRcgdjwNJUrZ1dy4YvswmHscHnatywXl9d/3hD00nhmKIFA3aTaNCPMJExIkhREPqBNg1YuPaO0pq3ZhxYEsHMxQbh6qnG7MZ7ILeSQJ6UWVOJbPeBEz51y4Ow2ZxZVBSdfPZvxSC/isGMIaqNjPzRo0eYak8moX9p0oMm1wL692KVIMy0qGnNIqJOXURQAdyy/3RYEWVzg1/W+GrZy+PlFQYUmxokhhrurbf+IyFEZGFo9HQkJ2KfLKqrmbrsTsUizdl6Hbb7JMqdbF8gQlkYKZPX2oUn3LhiWj67EbJZ4AzhpyrKSNLa50KqJkAKXipaLGhT3HCzV9ll1Shf1pxuNM7UTJPo8tSfnCsl8irG4SeUfzziEaW3ZtSqtdHsRy+lEmr7QGcWneuYG9pl3X33eiyJfyNpRKYiO9nZwpb8aWFIVwLc8HZvB4JMQeL0SV043M4sqAyr+y44Btu55RSmFYZn5zJKsuUknP2GynTjWQR5tXVq1I71xW7cKO5HzdMXgkqxT5zGZGdJ81Lg/2HC/knqupTkaWw5l17WH7aV9ase9c7OdGfZmcWw5JkrA/rVhjMDOr1GWPMrtK5JZWI5Hp2yRVFJs/CmXWEMhmtXEyfWwmYqja5fbN8YezSoTrNIskSb45pbzahUV7tJncRJtztUFFrbBafyQHsQGWmgaUCgU2uEA0RnNLq/HJkgNCo57D4ZWv4nX61N+IMHb9Nyt6uD0SdiTn676jIsOWwqij+i0vUlYmv6waS/amY8WBLM01D6QXa0oLsPcya9sx32/sSF1udq7jHSY3q7C8Bocytc9Tfiesrr/s2upye7BoT5quDG303rOvhpl9Q25ZNQ5n6b/zZg0ubIr85k2Uc/TBjGKh7HY8v0LTp9UuN3YzJeUkWJNDZENC3dztvwJ/c2IeYlK0pSfUsGN0IWd+M4LtZqfbg48W71eU5i2pcmoMbWp56WhumaFTsRnKq10++dIMW5LyNKXhXG7vGi4KjDIzqtTrUVJOGde5Tn0ut1tSjB9APLep9QZWS6my82FKXjnyGTmUXav0ujK7pApJOWWQJK9synNOU88t8RklKKqo4c6jRhzJKvW1U35H/C3zsud4ESpr3KhyunX3LGZw1o4Zl9uDNfHZeH7WLtS4PMgtrdasMwfSi00HbBjtl83oQUTyiToLNODVQcjylmjOFrXocFYJlu3PRHGFEztqSxfZGXThdHtQWeNWGCA3J+Yhu6TKK6cx+/StR/MUz3PPsUKsPZQNNTUuD5buy0BqXjmKKmp0+/JYfjkyiiq5/VKjs85vO5qPJXvTheWhiipqfLKWaP5is58ZBWyy+8sqp9vynMgGQJZV171brD4mv6xacV63R8Ke44VcnY3oPa9xebA1KQ+7jxWiTKeNsceL/HKYZce9QyBf5DF7C49HwtpD2bolNQM1xAWq57AjQ6cegbyvR3PLsWhPGiRJgscjYXtyPrYk5XHvOaekCrO3pSrGKnucFUeoyho3Jm5IwvbkfL/az8o/eg4m6nPboV6Sdd9sP7Dv0J7jhUJjrFVnPPVeKPZ4oSLgVcaMvtPtkTBza6piD718vzjTpxXk+c1MYLokSdh7okhjh2DXTXk+UwS5+encIesDjGDHcpXTjeIKpyK7Lat7NnOfR7JKMWNLCnfPo7ePBbz3Onv7Mc0+hnddyaApZsZ8RY0Ley3Yf2S9YmF5DQ5nlSC9qFKT/UheX0TzhYgZW7yZ79n1I5h6YbXOxZ9yyZav6eft6Ol3PB4J+0yWlj6SVYrskiqUV7sU5dSNno/R+OB1nfy+l1e7sPtYoTCQrcbl0ex99XQQhzJL8U9cXXZ9tU1Qr3whj8oarx5At4QsM3c53R5umcgalwc7kvMV89Ve5rmwY1nhiGdRPyfSBZo9DxtMqZ5nzAYbutwerI7PFsrg8tyrtvsl5ZQaBreyQ2nXsbp5xOX2YPa2VKTklWv2K6xj6O5jhZrxqt43Hs4q8SsQn91z6cHTRbFtyCquwj9xGSonSXLbOVkwn5uVIBoAsoDZJDzMNwNLElBZw3eW2JKkLksgdlaQUzKv++8AnNnZm6nnznGbFCWYSipdvpqzB0cORqtmEQqj4X/9TA1vBtb4oM5WwG5ObvxuA+I/G4yWTZWv98UjVyF19J2G1+FFHjwyeRsOZpTgx8cuwb2XnGZ4jgd/3qpItSx761/55VoAwJbhN6Ft8wgM+HYDACBl1B247pt1KK1yYdEr1+CyMzoIz31Apfh/YuoOrHrrBpzdtQ0Ar4Bz/TfrAQCHP79NN02pTFRcJiY84f1bnXlBLj+UOvpOJKs2ERnFVb60ovNevFrxXY3Lg1tqv8svq8awa3txrz1ubSKe6H+GxtiVkF2G87u3VXz25bJDGHHX+ZpzsKNanSUjLq0IfU9vz712IFz51Vqkjr7TULHCpjr/aX0S3hl8jvDYUgsOWK/M3a15v3cx5XJKqlx4YOJWjLjrfDx7XV3f3zdhCzKLq7D0tetwkU5ZA2VEk0eRPe+Tvw9i2f5M/Kl65nrwBF+97QpPGcMz/i4TKEns2pSujs/G6vhs/PeWs/Gfm/tovh82PQbJeeX484WrFBsiOxywDmeV4t4JW3DRae2w9D/XWTJ+ezxSQJtlo1rpq+KzfSU+lx/Iwp8vXo3UvHLffGBmrp22JQVfRB3CDWd3RnSCt9ze3o9vQfuWTS23lxXS2bXiV1Vpp30ninBxj/YAlM9IdoQsrnQqSjnmlFbjAsE1PZKEML9yV9mDvIG6/Is1AOrW7rf/3ItV8dn44r4LMeSqnprfJWaXYvBYZTroiho32rfUHIp35u/D3/sy8PpNZ2m+0zOmfbnsEG48pzP6dG2j2ej9uDYRb99ytkL5ZSarys8bj+KbFZxU3368akv2ZhgfBOCKL719G/3uQJzRqaXQ6GQF+ZyA15lehlVKRCfkIialAFf26ig8zxu/78WKg1m486JTEbU/E+FhDhz96g7day/em463/tyHvqe3Q5xAMS1699WlnyOY+eVobhmeme4t6XLos9vQoqmx3CGCXSpYmUOUmUbuz5nbjnHnHQccuHr0WlTUuLHolWu45/DXscgfA8nYNQkYX5vK/5Ube+O9287VHMOWb2FhDWbs/GWU3r7fF3Vj7j83nYX/3uqVQzYn5mHIrzvQtW0z7PhgkO8Ydg797J94bErMxfRnrlSU7fMXs06LvKAJ2Qmw/1drUeP24J//XIcLT6uTY96ZH4el+zLwxs198NYtZ2t+n5pXjshTWmk+Z5VTI5YcwO8xJzTHWLkHVlE0Z8dxPMWZh1lF3tJ9GVi6LwPLXr9eI/fKtG/ZhPu5GlZ22pVaiLO6tKn9uwAPTdqGNs0jsP/TwYrfVLvcGPT9RtS4Pdj03kD06OhdDN78Yy+WMyWOJMmabDNvVxq+eehirDmUg+dn7UKvU1ph/Ts3mv49y5BfveVkFr58Nfr1FM+LrHNUVFym8DgR7LJ2wccrUeP2YM7240gZdQccDgduH7tJUz6tRURdn+SUVuHmMRsBmJOD9Lh/4hYkZJfhpycuxV19uwuPi07IQ+fWzX0ld9a8fYPvuX/+TzxmbjuGIVedgS/uu0jzWzNBK0cYhX1WcTUGfc+/P7Wxv7CiRlPS7YfVCZj9bH/FZ/tOFGnKkT3xyw4kfHG7Yo3Ugx2XJVUu9Ptija99Rs6LXdt6Mwz1/8q7R//2ob54d0EcrojsgPkvKdcMp9vj21fHHi/E/RPr7u+09i2wZfhNptqbwMhhqaPvxMaEXAybvhM9OrbApvfMnYPleEEFnp4eg2YRYdiUmIeP7zof/3cdf98twxpUyqpdvpJVH9fOgaxsfvZHyzW/P5BejLvGb8aFp7XFP/+53rCNHo7MzTLgu/UoqnBi/ktX44pI/jsuMqKcKKjEztQC3+9OFFT4dBCpo+8UGvZ4Q8Pl9uC2sZs0n8945grceE4X/olMUdcIp1vCRZ+uUHwrz3G/Pa98PxbtSceltfsWwCtf89rz3oJ9WFwr20aEOeDySPjrlWtwqUqnVFrl9OmfeON10sajGH67Vi4BvOV3ZHj7tatHrUOl043Fr16L9xbsQ0J2GSY8cRnu7Huq7xjW6eyLf+Ix8t4LudcClHJxWmEl3p63FwnZZZj45GW446JThb9j2yMzYf1RvDvYe1+sI+gvm1Kw/kguknLK8POTlyE+swTj1yXhgctOw/ePXOI7bktSHp6cqpWXAGXfy0wa0g+3XdhN06ZzR6ywvDawGTAW7E7zrYEdWjVFaq1O9OW5e3znnRtzHCNqyzpt8HPNNWxTgHqOSRuP4t3B5wSt/N34dUl4naO3YZEkibsG3jbOW6qsyulBq2bhvvJr79x6Nl67SXnOK2vXjV83p2DDuwMBKGV1K6UAz/u4bk4wq3NmWcmUCB6x5CCeujqSe5z60YlkWlH/8HhvYRyi4jLx4oAz8f7t5wEA/mFksI+XHMSOlAJMeOIyAEqnGSMnIrWDDdu/si6pG6f01t0/bTbUhd82NhqJOWX45O+DSB19J7Yk5eHPXfp7ALNYCV6Zt+sE/rdwPy7v2QELXq6TO9juv3rUOs3c8dafezHhycssty1qf6ZPx68HW7r1P7/HYnW81vlXZv2RXN1z5ZRUKfRPOz8chM5t6jI8yrIzwF+bL/t8NcqqXRix+ICiH0ZwSrsa7dPM6J0en7Id+9KKMebhi/Fgv9MNj5eH6WVfrPbJHOFhDuz+aJBvrZy4PgljVidg8AVdMfmpywGYcw75dGk8Pl0aj7O71lXTcJtweMsXBMUavdvq7guB/xVGLzdXdrLK6fa909uO5mOqStfLMnNbKnYy9hEZtZ0wrbACt/0Yje7tWqBN8wiFHc/o8fy9L0N3rubJu/L7LvNQv9Px3cMXa47jyRaso6I6ePmHNd5S32EOBwad11VhE0wvqhSWAxTx0eIDWLgnTfcd+GPnCby/aD+ujOyIAed05pZl/GFNAn7ecBSvDTwL7ww+B8UVTsUend3Dsf1t5Ciu1sNdNcprn4sIV/a5Wd3FSKa86MWfKW3HUzen4COOHVLNtyuP+ErNbnz3RvTspNQ7/b0vA2/8sRfnn9oWy97w7p1OFFRg0PcmbCjMO/vM9J24/cJu+HlIP/zn91iFvubXpy/Hzed1BaDsw48WH0CLJuGKZ/nszJ3YkpSPkfdcgP5ndsRtYzchzAEkjzIvp6r3XEyDFcftSM7Ho1O2o1Orptg94hbFvWxLzsdn917ALdUdEYoJiAgJ5EpHNCpqfA5YDt9iLgGocatLEHonWlao9X5ufI0DjBf5UVW9XFbpLHu4hirVJSsjntGxzlJ8fZ9TNMfm1yp37MqGJEdpmY2m1qtzDwCHMkoUHtouj+QTpjYIDG8yG45ov9/ORDyz3tT+RNLqbRK3J4ujz1nB5txubRQlnvTq3WfVRlGrryrf07nd2vg+UztT8FArcmTlcbCwU3Fk5VRa50pg7SHt2Jim6jO5xKZRNAhrpHR7JI0ScYeJTAQsdjgkWVH22Z3y/dct/LEnp4JdfiBLYVywMypJNig6OTvA+y/lb/gCvX+j5/U3sxmUx4I604ER07ekAlC+o/6U4QS8xicZdtqfrnpu7LWUmfPk6ysdQZvprG92PeLT2rfw63fqy8v9v6pWOfbnTr4CkZehUqT8/Huf9zlP3HCU+70e8hyu7qdfatcDK6WsAPCdr2B+rKujhqwQe4J/fKBDQJEBS6VIYxXpPFbUfh+136vAMDPHzt/lVaSKnK/0WKeSTVgHz21H69ajwgDL17AG9z6MotHv4CdHnVOKSL6yY73gKdhOaa11JmUdPEXv1dJ9xg6CbITgbo5yUQR7zRUHvWMnu0SpoFXLIkZKdfWtX3eWVi6XMdvVnVpp+y6r2NtOeS+knsvkfmP7mEX0HrPrNet8dbHASd3oVWvBZJ6auTWVewwvU6Re9uC7L+Y74Ki3Oew8spYZ72tq5UNehHlZlcvXp2zmJlaZB3jfE39kuSV7vXunQLJcyvDkXJaNCfrfG8G+x6wzqnzbaucrAOjdtq5PErMDd9KVSag91+JY/b3nigNZivuOSakb5zO3eTMVzNl+nPtbq6Vs9MoUq4cGr7TrpkTtGN8gmF+sZAUOpETIfSrDybh1iQDgM9qw5ePZ8a9uN29siNiuylQmG6r9lYEBICalwNe/s5kMFSLYeY/NaCbPgUb7542138vl/IxgdVI8+U8ucbNGx8CrzJyqPAc7N8SqMnuInKV5o1/khL7iQGBZUdjT6pVg5OlaeO+vOksLa6STn210gvZ9yyhi9E9+loIElPsuGTmIcVNCrm/+kud/HvL8JILdm4Q5zM+JgL6DvHodk4MrFu9N9zmaqzPEyjK5Wl7y/k4rs5mR48zCjsk/mL3dI5f34B4/g9n77rEhMy2vK+2Qm81kzPGX71cnGB5jJM78sCYBUzfV9aWeoT+VWe9Yhwo5QNYqCxjHF7PwshrzUD87UT9YyZImG9NZmXe+6h5Yg7uVTHDqY9l5a+Y27/WyBFlHjUrNJaoCq+Q9tUwXlS2FxegdkHXqTsV4aM09Vl531foJnozGfqZur1nMjhUWPecrwHjOS1DJx+rAbpanOc6DZQKZkCerGMmEZqYvOROlWYc8eTyw53Z7JEXZvCmbvDqwlQfr+tJKEBjbh2Z0zWpbnozR/durReejHtrs/lvv+mw5xFXx+nLZbIGMcVoHpe71QHoxJMkrx6vteEZjyehd4m2zZqnaJZrvebIFyx6BPnPqpmRFRuziSid2WrTdAMDCPd526a19c3d47yUmtYDrfAUAP9fqnmT56oSqnDnbx26FPUVfRhC9Ah1UwQFmdRd2mI9Yu+deTpZB+VmzmXvN6mXV+jlZT6PW17DrgroP5+9WzmeyTXHWtlTf31ZVPaxugJW91WNfnvfyVRm2ttXuiecI9q7h4dZ0FUTDhRywiEaFvBFqEh7mm9AkCahxKWdJeZFRp4s0s6joTW/sRkP+q0mIHLDYBacTY9Q6pXUzzeQu/9vuqdrfdNYtVJE3YWHKhY0VCoyuwCvfwG6Q2d+LMkbooacMqdGp48veQ5vmEarUl0z7TJaMk4WFbu20EU1qPDoLfbAJ9fX04AmpwrIjBu1mx5kdZYe4gq/F07otpKG1o808ROO3SbhDmT43CGmheffUlRPxBwTuHBRh4O3AM55YvaSd745yjqn7XK9NihKEgmP0hpxVByIRnThOGmZQD0W1w7EocwRPocpTIrZkshjxlDxG66H8E6GC0qZXxPSyHMB4E91DoAaIJsyGUt08UamGQAiWwzA79Kwa9NWw7zI7Vp0u//razC376zBr5OR/5ilaRbuZwABRmS4WRQY/P7tc9KwCXT/0staYXRt5Y1Uk66tRvJaKeZ7/A5G80LYFP+uU0T2wpxMdy2u7P2sKG5ACqPYDgtK8aqw4r/gj2/grD7Vtrs0cYTTWAx27ovPr3YPCmTuwy3PhzRnq9Vcp95jvBKtzh5V1ybTCW9BeK2uJn1VkAWjnK/XrwMpoLhvmXUDbNzxZIpASWmZ+q1xDrN+M1Z+0amYyM6bJ86r7kB1H6lOIhiLvvkVOB010ym6bQZHxRUfXwpureXO0GflTnQUAsKd8FaCvY4pg+ioQuVOhi7D47vm7FohObbQvVmNnySZWRmHPKrpCFVOOzeZ4NB926DmCoSsJ9PrsRxFhDsV7a3ZNYp+Xv/tEf+Zks3sZdZtE64U/DnJsE/T0xoE8efY+jZ6J1SGmdko9VSdIzmj8ynpZdjyc242f5VY0Xag/t6sUrp0ldc2eUy3rReisqYHqK9TPRp2UwMr9my5BaGKw8e5KMb8z47mdYA9q6XqCbjTMEKZx0rR/vOjJELol7xSynvIc6t9p5XutjdQjSbrrpJH9wWis8ublQGQvFp6MB3jnV+Vc7Amazcqf/Ze6LWwfs/KukROwyEFLPV6DKWv07MQpIaEDb80yu283W16ezRil7kM9tby/Q4R9BwJ5l0RzgrrCEdF4IQcsolEhe8o2jagrfCRB0tSYdXsk5JVVY5EqQsyMAJks8JQHoPDgr/PyD83mmV2s2L8d0C4WgTpfpBVW4OlpMdicmIdZtZE1QJ13b43Lg5fn7OZ66arrNAPeiECPjqKTVTClciKGAW8E4XMzdypSt8tsrY2a356cj6dqU9gD3rHx587jeGHWLkX0kCRJeEdVLvLtP/fC45G4pd9kMgR1lYG61PmAd/yxgk4OUw9YJABpHbC8/1Zv/lccyMT/zdipqE380zpxWZzZ248hcngUHp28DS/O3mW7UZsdi5HDoxA5PMpvIU/+VWmV03cuNoOPxyP5Puehzt4DKPuejUw6msN/z4dNj0Hk8CiMXn7Y95nT4wFPB8NmMxi/NhHvLdjnmw/UEcxj1yTi3fn7FPOFBO/zeWXubu5GRN2XViLxzGwUJUnChZ+sROTwKKyJz8bQaTHYmVqAm8Zs0BxbVOHE/xbECZ9teFiYpgTh7G2peHXuHqw7nI0np273PTt15gtJ0n+u3uvXKN5tmcnR/Ewf6rb85/dYfLPiMPdYHrxMFewcon4WkcOjFHOKv1HVZuTrT/8+iMjhUfhtR11EODsfmB0lx/Lr7pF1aGbRG0dOt4TskipEDo/COR8tR1ax9+8LP1kJSZKw9Wie77luPaqMQrdj2VSvve/M36cYQ80iwjBhfRIih0dh4Hcb8PS0GGw4ksMto6eOADXTRqN3TH5X1IdVOt1Ysjdd8ftAsj6YVQpZmZe/WXEYzzIlkTwe4J84bRQaNypcdZ3Lv1jjGwfsvAoAx/Pr7lv9DPRkMT0+/fsgvua86zUuDzf7iBl4GSnYzfY6JvPEbzv40UvxGSUYOi3G8Fpspssp0cl4YOIWSJKEmFTjyL3I4VGauYfNJiEaAgdNZvBQo85ios7YwjOaqvV0LrcH//k9VpGt0oxizm3BAGHmd+y6ZKYcApuBQn11t0fC8v1eWa1QFeVm9n3lHZVbqlw7RYoakXFblIljW7I2o6geRqVI2TlAvZbmlVXj8i/W4Lqv12t/p9M1oqhSdZYhNkKdfdZ6CmL2uNd/j0V0Qi6e5ryrHknyy1lR7VBY4/Lglbm7MXv7MeSUVuGZ6THcOcasAXLezhO+fc6M2syaZhi17BAen7Id/T5f7ftsU2IeErK1WYz1xq1LYr1R6/5cHJvum/vZeSmnpArDpsdg7aFsJOWU4alfd+hmP2Mf3UeL9+O7lUcUY8UjKVW3clNFWWJ+3nAUb8/b6y1Bwnz+0uzd+D3meO05+PfLZkgzNj6afNcFh8nZFEVzCYueEyF7L9mcLBnj1yUp9oasrgNQ3ud+JkqZN/+sPZSNYdNjkFNShYTsUjz16w7EcjLQsOcsr3Yhnbnmq3P34OcNRw1LgbPR7WrM9LxLsb+yLrOzGafe/nOv4fFsadYB327AS7VlzNVM3piModNiuGVo5RZ/+vdBjFLJU5JUJ/+oM4CL3t+MYq3sOXEDX6dgxgFr5lbvvo/Xn+waqyfz8tZzntFl/u40VLvcuODjFcL9Iy9jCZs9YoYgQ6MZ5GZWOd2aPewPTPah5QeyEDk8CjmlYh2SCLa8MtunW49q1+yyapdivvXXYMz+6vN/4vHM9Bjc8eMmTBNkwhYhz9vLdTLUZBZXYtj0GG52e8CblWPotBgMXxTn+8zhcMDl9uDu8ZsxfNF+7u/YbHxWemFLknff+unfyhIw1S6PZk2ww6D5+u+xmKzKWBqXVoSh02JwKNM/uZwlcngUiiucqKxx4/lZu9D7g2WK73ljZFuOUt/MZkMpKK/B7Fq98I9rEvH2vL2K3x7O8rbZycmeaRUHvBkpRPtHHur9T+TwKIxapi3rpRbxRZmNLqjVkRkZfdn3tMblwVO/7sDC3WlCvV1SThn6frpK8dkBQXbNeydswUWqY9n+5WXaZNGbB3iZ29Vyy74TRUKdltFW6YlfdiApp1Rhl1C35uFJWxE5PAp7jhdxzi/hq2XK5/7dKv5eQI9Fe9Lw3MydeGn2bvy84ShKq5zGmY0BRbUOM6iHydwdx/DS7N2odrmxP60YT/2q3Ffo7Uuszrdq1POTev8oGhaztx/Dy3OUeumdqYUYOi0G3686wt0byWw7ms+VnUXXeurXHZAkSbHn3sfJmCPi+9UJ+N+COF1bnKiHjeRL9bO0qqdLySv3zV07kvMxdFoMUvPKMWr5IYxcqi0xppZhXLW2pNd/j8XUTcpKKp8tjcfW2rVKPU5W18rgW5LyMHRajCablfx+J+bUfe72GATsGrzn6w7n4OwPtWW6fW2Kz9bMoUb9D/D3K2pEjuEeSbke/Lg2UVHyUARrk3hx9i7f54cySxA5PEox/n/bcRyRw6MUmZzMopZz3/qzzobAjmejvQlPDokcHoUHf96m+CzTxFzGu5Y6i3nk8ChIkqRooxm7s9PtwXVfr0Pk8Chf9mAWddY8HpHDo3xZ+ZS/1R7Pzq3q88nVW2ZvP4bbf6wrt56cW45UxjYi28gqGdtwTEoBhkzd4ZN1ZNiAYnbNfWDiVoW9xSjr7RGO/gUw1rsRjQdywCIaFYW1SpOMoiqFwfiLKOXmyuWR8BVvw2ViEyjXDjZCnltD5H+lUMRrDFiqG5MFljidUgl6vDs/DhsTcjHk1x2KOrSy0uqv2DQsP5CFjxYf0Pz2kcnbNJ8BSmVRmMOh8HReyaSNFKXvfeOPvVhzKAerOalW5TIjj03Z7iuXCHg3hv9buB+r4rMVzgp7jhdqUp0uik3H9pR8ZHKUkYBXQWzW69rtkYSCpUghr1aey8JM93bKyKOX5uzBusM5eGxKXT+z51RvtOVU8TtSCrDyYLawLJe/8Dyyec/IDHLTWUPbyKV1tajVxl41RQZptv/ze6zvb9HGllcKxO2RuMaNgd9t8P09ZnUC5u1K86VafW7WLsWxf+/LwPzdaZpSFSMWH8Cy/VlCQxGbVponkLZpps2QAJgz/BxIL/Gls35u1i5EJ+Ti4UnbhI4Pf+46ISzD2STcgUt7dFC0dcSSg4jan4n/m7FLUTLyzT/2Kn7LOm2KlB3Tt6Qq3m0Z9rGc0rouuot9D2KPF2LpvgxM3HDUtMKUt5li5xCjDC1mUqL7E8xQUuX0GQw++KtuI8mW1bqmdyff32qHUvbuX2feB1lFoY5A0TPqRSfk+taAapcHV41aC8BrBNieXIAnfqlzmGP/BoCjgeuVDdfzphFhvrkkJa8cGxNyMWz6Tm4q9Zfm7NZmzDRQ2xtd3+ekzTnPG6p3ANA3JgbSjrrz142F+y7hl/MCvAqLiRuOKsp3uSUJr/0WqzmWp9hlN9aZxZUKo5u6NJqevOVPtoX0okrM2JqKnzcc1Tgb/7mTX4LKDOr5HFAqT9i+GidwiH5y6nZhSSPWMKcucbXneBFXMS1Cb3MvWkOvOasT93Mj1Iq9Kapyy7zxoVY6rYrPxtJ9Gfjsn7q13owxXOFI5edulm3KrT9E+/42E834JmNwV99mk/AwvDzXK6upy8CYfV/NGE+triF6BgdeubOOnDKIgNcoq4ee/PFl1CFu+UHAuFSKUckWtePexT3a+/7Wc2Zix1JGcRWGTosRKgj9Mbqqy5cujk3Hsv1ZGLH4AD7/5xDWH8nlzjE8eJd/b2EcVsVnY+6O474SWGaYHJ2Mbcn5mlT4Q3/lO5+JYF9X1imHfUfYuf7TpQex4Ugunp25C19ExWNTYh5e+22P8PzynJGaV44524/jp/VJCoPNrRd05WaoflPgFPP1isNYtCcdO1IKFFlaVhzMwvu1Bv1DmXwlaPsWde+Eep5Sl+oJNGJedsaV55Ixq8WGR/1oeeM2Ld0nllnZ9/kZxjGbZzt8duYubDiSi5FL4/HM9J3YlJiH+ydu1baXacevm1MUGUej9mfi6xWHFVlseHy2VDwPmen7bkwGXdYpxyys8Vod8Meja1vl+FjBlFlWz23RCbn4qbYUpJqMWjnnV1VJlMziKp/842TmwuJKp3Ddmbwx2dRngLnyyp/87d33/c0pG8OWf2WNf2p440qkU1mwOw3lOoFzvPInYxgD/twd/suF8hD7jLMe8tr78KRtlsqOAUoDJGvk4pXS/V2h5yrSXatuOLsz93P1a/Pr5hSsP5IbkIHx5bniuX3E4gPYcMS7N+PxwM9bEZ2Qq9A93N33VCw7kKVbDpZFby5QB+49OdW7V+U55qnlcDvKB649nKNxpLx3whZEJ+RqnDX8Zdy6RMzenorV8dmmMg/OS66bi3kOIiNq9cI/rEnQlJ6S22xHRnSHAwod9KSNRw2D23iy5+Ro7Xymvu9/4vR1NtGJ+s46X6jmgE2Jefjv/H244Wx+OfJB32/UfPbwJL7+nOeQYqVP9Y598Gft2swzprPl4m46t0vduQ3W2SPZpRi5NF4hrylkNUnylTrmcSBD+45PWH/UUrljAHh73j6sOZSDFQez8PWKw8Iy7QBw2RntfX+zejYzsPo3APjwrwNYcTALC3en46FJ2r5ms7TkqJxNArUvGY2RKkFA9ojFB7D8QJav9JpMdEIuxq1L4u6NZJqEO/i6WkYKLWHWrk2JedifXqx4b9k9s1GSg2qXB3/uOsG9powoE+PiWP3SduqMYZt1gkR4sDaCR6d49T//N3MnJm9MxvQtqZrnrcbt8WD94Rz8vS9DY+dcfiALT0zVBiUDwIuzd2PDkVw8OXUHV+ckr1usY6PHY5QBy3gwGjlUqYMIzTjtfLxEa2dUw+4dWK7o2QFOpt16JW1Z/Svr6MLOezLs+Lc6P8hUOd2Kd1+NogShQT+ZXQvM9OUyju3ik7+1zoLH8iuElYxERMVlaoJ7WNigEbVzkxG88oWsrlEtN8jOqCMWH9A4urOlMWUbGRvs/9afe7E5KQ8fL1b2Cxtgo+6OAd9uMHEX+vgjgxMNE3LAIhoVsnL93ku6G6btzCzSCjZ2lUySzwYEJyUpD0W5G9W9azfU3v8bKXpECluRE5JMSaV1QzFbtzzc4VAYuPLK+cYYHlZSlrIbQ3ZhrxYodaucbqHhzeWWTCtb3JIkFJhEAqo6JaW8GWnehC9YihxVjJroj5JZhMcjcQ2AZdX8cXf/padpPuP9XuSlL9ossu2x8rlZnG7J9DkqdRTBgHJMshvLUo7xE1C+NzzFkkiJakYYNupPo/awRISFoQtjXNDLIKKeXyoUmaX4v+NlN1PDKj7Y22cNkmYym4hgFd7VBnOrqJ9Y/ClVJgmazzpwsEYl9RrAjovjnD5VDxt23F/KKKUAb6Y6UXQSL3KfxelRZnH0ByPFX5vm+qnLWSTJm+lO/ZkepjPZCA4zmxLZxBUs/6JfZEfhd1bKLfLWuXJGkRFIinF/3lV2k61ucqGNax9g/f3Vu76hotSC0U4vS4pozlc7DvhLgeravGGj7rfSKm2/mEn2qFeCw+x6zTr5sW23OvbU61bTiLr2aPvE7Lxh095CME4fu6KH4t+8+VQUnW3kgKyXYl0vopVnVFaeV79P1Hs81ilbL327WQWmR+WAdf6p/FIqRrDrY7bFCPtWAmUzAJQZ9J9ZsmqfEVu6Qq+P2Oqoom7OK617D+TAEKAuo5Le/Ci/3+z+SV3SRtE8k+9OpdMtLr8sOEcbpiykej/Xr2cH9eGmEF3rRKFSRiss928NYU8vKo+q5/wo2s/qLYG5ZdW6RlK264oqnNw53+i9zCk1rzvg0aIpWyYuoFOZoqnORXhjQO0YCXifpeh5sE5XTSPq5gm3R7JlPbFyDnUGLkApqeo5xPK+E40Ff/RR6jXZX+RmqjOLiDiWX6GRr61UmTKSS1KYKHvJoKTQud3amL+wn5iRkY3eYd4e4uIe7S2tdYHqgGTUcri/pbuNkJ+byFHdKgXlNcI9udEtWK2CJr8LTsVezE8HLM5nRmcyK7tb1d2XGIw3XlYOAIjs1Mr0NXjO86J5z0pGfKuOgry+Yff1lzCBDWb6ce+JIuW7wvxpdB9mytH7Q4GOLMUGbmSYdPSSx3h3QbnG0ion917YKdLI4dwqRvNTswj9kshmHK7VOBwOrr6CHSanqfqoxuURjlHeHVzfR+vUqDfGRXIXT0ZhaWJjCV0ZVpftFNhQZNwepX7cLpwuba96swiLx4sdtk71+DejQmP3iiy9TqmbV5sJ9jS9OrdSyMR6sO+KnkO/Xbg9knAvJn8v408GLB5m7stonfNdU5IUY8LMultuEGTMPiveuqAnR/DWTlb+tLJe8mD1VvK+ducxpUOhsuRhcNYt4uSAHLCIRoXsmNGhpb5hNb2okj/R27hXltc7f2SS4/kVGDY9BusP5yBRkGpQkiRExWVi/q4TKK5wKrJXsAtdan65L5WijKjM3BFVtgJRpLSR8ZwV0oyOldnGlKAKcygXJ5FD1NHcMqyJz1Y4M4iEA57jC5vef39ase88IsXfmkM5qHHz+8Tp8ZjeHLk94sWXpzidu+MYtjIZggAgraACKXnlQieDZirHrBqXB7tSCwwNtU63B/+dt8+UQ4tRdIbLI3ENdCKZmick8o5VpwLPK6tGQnapwruch2gsqh0rNN+7PdhzvFAYWVftcuuWrmIjbI2yD7AbQXV7eanAE3PKfKnNeUZNkeAtC8a7jxUoUvtLkoR9J4pQUePyyzki9gQ/Ui0i3KF4T/UckMIcDiRml/oUdewcKNrkGQnu6t+6PRJcbg9+23Fc4Wgk91eV040VB7JwNLfM99/eE0W6Aj57/iqDvttncC63RzJMGw94Mz6wCiCRAwVrmPt1c4pvDVBveN0eCWXVLsSlFak2JN6/1VmY2PGlVmJ7JCAxm58Sl7cGbU7MQ43Lg/zyGmQxOi1R2Vkjig0casIt6k7Uc7PZpV2en9Q43RISs0vxlyAzgqav5YxZkiQsRcCDfcYHM4qRV1aNTQbRunpKCd6cclSQFY93rGLMmOjEKqebW6KouNKJtMIKHGfGR0J2KdIKxeOFdU5Xt80uoxt7viRBFgd2/qtxedcXPfQCCqxSVCm+T5FBzCPVrQ2yLCVJEkYtP4Txa71ZONRzEf88yj4/WhtJuDo+GwfSi33zDwtv2eWtdX+rsqNuPZqHrUneOUV9X0aKY1kWFvWH1ZJ8akU32w3q6Dq2j/JrDWzynCyvGU63BzEp/DETl1bk+zv2RBFijxfC45E0MrAkSUjJK0ecoJyDenlaHJuuKRdo5BAlk5hdiqziKiTllCKntEojL8nvnscjceWcuus5fW3fzzFoyXO0aG1Vf/ztyiPYWRt1yz5q9fps1pBa7XIrZJHM4kokM6VnvH2gnya+oLwGh5jozt2cueFYfrlwnlOU3vNImMdktY2wuujpcCSrVDEr6YnRVczQExnGD2QU+2ReVj7gOZkAyv0Hb51hsw4mZJf6tRk/mlPG3YR4PJKwL7OYdmUWVWH2tlTffk89jtQZAUWI1ib1fcdnliCzuBJTNyUjOiHXN4YlSeKuMWXVLsSkFBiuP4C+vKO+L1k+0etyNrMtoM2wp96r8vabRvspPSX3iYJKxB4vNJDD6/4W6SHsRK+/eEYx0UMRGa7Yz9m+cXsk7t6KN8fqwXOSTMwu5TqKuNzeMel0e1Dj8uDDv/ZjGZNlRs/xdBen3DIvQ6NZtiTlocrphtvjbZPdjjNGuhIWXsAkq4+JzyhRONGzY/TDv5QZDHYfK0SNy4NDmSUoKK/BRibDZUR4GPeZy+uVyOFSgvmptLjSqbtXMePUyMpgZh2lnG6PpaCEYzr6Lr2xoB6HHma+jUsrUpRNVaOXkcUKvD6RJAmzt6Viyd50FJTX+LJF6PWfaI+hHo9qGVCUscIoQwW7nzYKlhLB09VmFVdh3q4TqHa5kVZYodl7m8mqAvDlmeM6uogalwduj4Q5248p5ruiihoczCgW6rzMlNlS43J7sPVoHkqrnEJdrZUgEatt4PUgO7b09EKiE7LrUVJOmW+/o3cfJVVOzDYo16THqoPe6gJW5mcAvvdaLqNsBrlPRHpkUYCBfPtOt0eYobqs2oXfY45zg5X00JufAO8+aPqWFBzPr4DT7cFP6xKxlcnyZPZdYhH9Qm+edbol3z5NJiWvHInZpdw9KE8fHxEWBkmS8FdsGlJVc5iRo4+r1gagliczLAbHmIHVu5ZXu3SziR3KLLHsAGsGnq3kRGFFwBmwjAh3OHCioMKnN+M9F00WOMG5FHK9oI8kyfw8yc6zRoH0gLeSTpEfDooy5dUuXV2IIoicaY8kSZi9/ZgiCYNVeVa2eSVml2JxbLqiL83KYJLKASuvrMYwO6Uo45dsf2PvY1dqASpqvO+HrB/Wc8blB3vW/R3o+N2RXKCZHyQJmLopGavjsxGXVqSQSXn2tdIqp+U9F3Fywq9dRBANFLl8RkR4GFOCUDup5pXVIK9MuzCanX9dbg8iDDQHvhKE5k6p4IZv1wOoK3e26b2B6NGxpeKYf+IyfSXT5vdKUygz2TTYvPI08sR/Sutmis3z4LHRiP9sMFo29b76T/yynds+o0wRrEf6Td9twO4Rt+geDyjL4jgcDkXqcN6imlNahZvHaFM0i/iUkyKTvcbawzm4Z/xmrHvnRmFU/287jqOtIGuK2yMJ09hqj/Vwxx/A35yplWqAt5zBoth03HFRN+551BEdY9ckKMqQiRhfWx5p4Z40pI6+U/dYXtkIlj93Huc7YDEfhTnq3jszERSbORury79YAwD44r4LdX8rcuRwuiXwKvXlllajc5tm+HjJQfwecxzPXBvJ/f03K8RlPzYm5CrqgT87c5duv2aV1L2P7Hs2d8cxblmfcWsTMWF9EnZ/NIjrwc+WsGBxuSUUlNf4aoCvfPMGnNOtDf6KTcfb8/bhgu5t/dpci0pTNAl34H2mtjqvXJnMicIK3FJb7mnnh4MUaZBFQjIvDbAadnhJkoQnpu7QGIHkPnx6Wgx2pGiV/F/cdyGGXNWTe/4f1ybirVvOBiCOuJGZtysN1/fpjLsv5pd6+22HsVKptMqJG7/bAABIGXUHHA4HPlminOeScspwVpfWCuVfYk4ZzvloBX57rr/mnE3Cw/DAxC1IUDlO7TlehLO6tMEQVUprRYph1fubWVQpNJDxlLZDft2Bey/pjiV7MwDUOZCqlQGi7H5qXv1tD9b9d4Dwe70Iex6a98Hg9ZC7Q56f1PywJgFfrzjM/Q7QKsQPpBXjmrNO8ZVKNIusjNp9rMD3vhsxWqddvM28yJDMU6zP3JqKey/xZjs0E/n87MydihKlMvEZJbjua6+sFP/ZYJRWuXDrD9Fo0zwC+z6+lXsutvR0UaUTrZiJn1dShCUhuxRnnmI+Wnl/ejEGfR+Nzf8bqPnurnGbsOFd7+cf/LVfN/U54F85UkCZ+U5mzvbjeO+2c7nHCx2wPBLm707DewvicHGP9ljy6rX4aV2Sb75v2SzCtz7JcxEPdVa90moXVh3Mwgu1zvCf3XuB5jffM2W1KmvcaNE0HB1aakvfKUum1q3Lr9zYG93aNVd81++LNb51mKdQGjw2GmveHsDN9pqSV6675vNQvzPsOpacV46ckip0qc1MyB4qt/OenzYjObcck4ZchtsuPBWTNx4Vlsi456ctvr+j4jIRFZeJj+48D8sPKGWB+bvS8N7COGGb1fLYx0u0MrTaGZ5HdkkVBo+N1t1fXfb5aqSOvhOToo/qKtFkGXv9kRz83wxtST7ZmX79kRzNd4A2U2ZxpRMPT9qG3R8Nwo6Uujnm3glb8MOjF+P+S08HYF7pOHaNsiRYYYUTN43ZiN0fDUKn1s18ZXhZ1Iq4fl+sVsgq7Fg5UVCBjq2a+tLVt22uFVzZ5zZ6xWHF3KxX0sAqg8dGo0ubZr4MJW5JnEUns6LuuqJSigczSnDzmI3Y9dEgTSlumYyiSl8GgSu/qutLWc5lL8/OB7O2HcPtF9btlfSeJnsPX0QdwqOX99Ac88umZFzHibKX70Nm8FivHDtz2zGseXuAximcV/6Mh6gMmlomSckrx9Wj1vn+/fOTl+H2i07FHztP+Eonsvx33l6N7Hy8gG+UE5Xx8LZDOYbvGr8Zvz9/FX7ZZM7BDAAu+GSlYm/041rlu6QuZwvUOaiKEO3XZe6fuBW/DL0ct5zflfs9+y49MXWH4Z7YiLyyakXWPb3rqZm+NUXzGU++0nM6Y8cb62DjkSTu/Hz3T5uF5+KhNhYez6/by6WOvlMxTr6slcUev7IHfo/Rlv3+aT2/VDPAL5UrCr4zMvoA3rJyQ6/uiQ4tm2rGnYiKGpdPVyZCfjyi7Dc8eGvN9d+sx+HPb0Nidhnu/mkzWjYNR/xnt3mP13EUfvDnrTi7a2vNfs7bNok7fm4asxGpo+/EHzu1z4S9JzPcPGYj8sqqMZez1wT0M2DJetZjTNau52ftwq/DrjC8LqszMMPPOrqxgd9tEL73D6lKwsl71Z2phXhksv5ea0p0Mm46twuuOtO/8t4ys7alYti1vRSfTduSqtEXrXjzer4TJ7wOHKJHwY7H/LJq3PrjFsX3IuPubWM36bZbWXJO99C636jeZZ4+6PpvvHvC2duOITWvHKXVLsR8cLNPvm7bvIkwiz4LT3dxw7frcaj2vVPzS3QyFuw+ge3JBfho8QHfmLn+m/W6gQrxfjji/bo5BaOWH8at53fFKoEMbkV/tzg2A8NvN5+tlZdldermFDx25RkAtMGORnhUVSGOZJfinp+2YOKTl+Ha3nw5CwD6frrKdJvVRCfk+vadVpH7nJVBjdhyNB8Dzu4szLQi2s/Jc/Qnfx/EbwI58MJPVgKARsY7ll+OnjoZ1ob8qi/TrD2cg7WHczByaTyu73OKxrHJH0dlSZK4+gH23VZ//crc3Rq7E1u+zwzhYQ7M3JqKT2vLUrP3LfLBke0oo5Yfxq+bU/DYFT0w+sG+AMwnFwiEW2tlJxFv/rkXH915nu3XfWjSVsR8OEjx2YT1RzHu8UuFv/HXiZZlU1IuXph9DBU1buz+aBA3WOfKr9Yqx6wo2Ir5W8/HymzmozvHbfZd93GBbZTlAQP7mBEf/HUAaw6J9SvsvBrLyPX/nb8Pi/akYwSzBpnVX8h2C/VcU1rtwlO1dg9eyUoeLk7Jysd/2Y75L10j/I1IHnxg4lb837W9cGbnurnsi6hDirKbf75wFbJ1sqXysrex85BRIgYjkvPK8dFfB/D1Q30Vn6tLg8rwsuvdMW4TTqj23/ll1eiks2ckTk4oAxbRqOhaW+Kq1ymtGAcsZT1ymRac0m1mSxDK2U30dNnyBsTIqUTO1tX39HbCY3hKWtZYqHYiMEKOdrnvEq3xP59xDLKiNGJp3qRu6hBFL+sRHuZQKMF5kWwJWfpR5CzndG2DP3fxlUkscqYwPeeJVfF8hxan24NTVUY+EW6PuFyh0+KGhlcmDNAats04X1lFr3wE4DUaGDk53Hp+nVGE966oP5mr45iyz6QxQ41IQStnlvo9xiuITt+SavncvwgcE9h3hCVW5SwpkyzIMAN4x1NaYaUlD36PJCElr+4diqk1Ps7f5XUEOJhRgiMmI7vMEB4WJiyjqIbNJJeoyiATyBaP7R+3R+LOm/IxPOcrQGwIUzPoPO2ao0aU+QgApggMV+zrlMGU0ZXbrXa401sbeM55PTu15Crr5chpTQlChaJN+d0BHcWiyJjndb7S55DJ2u8peeW6il2RsVhkjNOUIDQYjUZrv1GGuTM6KZ2uo2uVX1FMlgArrD3Ed0rgodc2M5v59rVyDS9TEesQbnSqh/udznW+AoDOTFm8/LIaX1RjaZVLmJadHfNWMybsSM43zGzHg5cBgHUGNnK+CoQcQXp2vUxVPDnGI0n4s9YgJ6+zY1Yn+L5njT16z7RdC61B/LtVdc5MagcWAApndTl71wOXacsVi5i44ShX3pcRKZF3phagUyut4kOv70Ql59QyhvqSiUxWJH5WCu/YlufH71YlaI7RY9a2Y5poSj0DNyBea3lOP3ocyiwxbWD7dZPWyYBFLuG2dB9/DpSNOP8Ivo8T7GlS8yvQXuXUx76XgWZEUWchZqmoceEBpvy23rKx+1ihIsMST3nMNlXtGCsKLvGXa8+qM4559zX8xndoaq7/jEoqWcn8qIbNHmAlkjuTkx1h+pZUS/K2nPXMqKQJAFysowtQY2T0kOcL0b6JF7hwOJMvX/XScT7m9cXq+GzT5Sr8xcgIJpLlWP7cKZbp7YjqZzlqkP1O73JTOXMjT4/QRCc4kHU8YIMy3B7JtjJsLOqMyDynBp7zlZ0YZUmTmbXtmNAIzqPIRMlqf8ryiN7p0ioXNiZ4ZXg2473Rc+Pt54DaspMCcVYvMMJsuTi3R/LN56sEgWB6yI7YrOGdzWrYEJENiFFxxvtYoM6B/bIz2hseK3rOczg6CV6wXkxKgW/8qMkqrhLOG+wYVme/CgRWVjA796id81vryKL704t9Oid2v3XHRaeavBZ/3hBlED6SXYrtyVp9i1GW2K1HrWXTBeBzjhQ5XwHWShxZ2YN6PBL6nt5e8zmb2VWhazMxX0jgZ6L5Kzbdb8O40dqvzpjMb5V1LujO3wMu3+/dk1gtXy/3pcj5Sg8zmU3NwssqZca5mUerZtr9ODtm1GYDo6B/M4SFASM58yIgHqOnd/AGe/y62St7sU7JdpV/DRTWTsezdfqDqOyvbgUIG+THf/Zl+mSbjKIqU89ddFVFEJNOu/0JNA8Fes5XgPKeOjMOOov2aO0KZvUX/7npLADaueYbJiC3hU4gDovHo91n70zVn4/0MnRP25KCPl1aC79fHZ+NxTo2FUBb2pSdZ9TjgGcfN8KMnVmmvFopX1zf5xSN8xXgrWJlFpFdkWh80JMkGhXyBOqdZL0zq4Q6Zyu2NCFPCDYrP8iCol593rpU1Prn+u+t5wAAurfj1wUH+AJGIHp0OZV+uJn83xaQDTOBGivCHEoFk1FddCM6tNKPglXTXMdYJypDoOdUpcYjKe+PxeqGRrSXY4Wzc7u1sXROu3B7JG6ZL/bZsX8blasC9A1I/mYJEaXftiNbgEiBL3rfA3l3rPzW5VFGIRmVbwyUJn6WvlHPn2aVvzzY/hF1lZFyxOxdRJjoT/3NrMkL1SIyfFp9J0RjSORspJdq3m7jla8tnH6bLoiK1muDqM9EGQp4G3UzTtj+oi156P23v/Ocv79TY2aead9CdsAyOlL/XHoKdrZ7w8IcijVPXb7R6Pdm8Pdp2hAYqBjHV/bqqPs9i2htEymdJPCj0NySeZlT753jvRPNIurkLb3Sl0Bdu/UyJ/DQcwQXtVcki4n6VJIkXxCI9lzqayj/zd6P3njxdyzxbt9IvhHNX0ZZP8yeh4dRFll5fIjWTp8MzpyG3feJluWm4WGa9UuUhcpfRG32SPp7SRZ1VClvz6EnV9iZAUt9fUkS74EEiTcsE8hp2Geo10dm1jcJkl9jwsxv1I6AehgZPeT33oo8KZrf9K4VaPSwv4j20fLzNTP3+LM2+ItRQJKeUz8vEI23jrduFm5K1mPP5xFkQ2IRORfrob7f+jB1WXmEVuQKM2PD5Ydjm+h4h4O//vubecKt88x1HVRNXk8dxNGplXZe08s+YUdGDR6B6BCMqAu8NdsW7/+NKioA4jnW7JLeLCIMNYL+dro9QuMd+xzs2kMCyrnLrIyoPsqsPKOQU0zOQqL32wGHbhZDqxjteXiYuW9r+kDzbXBL/HK16mNkzDxaSeLPBd7P/ZMtjK5rFABnNL+L5hFRthL5fGYz7sjo9TW7t+Fhru9Do3OWcXskrtzCBp+LyqEGgsutzcjDton7G537C5Z+0yo1jKOoWecY/68lfmfsKNvMjkWz87To/WB/r/cO1dfexV98exumv41KyJodq614pWBUvzcrI0swXifUGNmh9M7m1tE/yD9WB4CGM/ei1vfxgkXtRN1WUb9a6cJubc0lASEaPlSCkGhUyAtpE0UJQvhqR7MRPjwh+OlpMRhwdmfDzD7H8ysMU7P/vTcD53Vrq5vlBKibdOUNC08YzuV4o5tJoSziv/P3ITzMgfGcVOuBGI195UFUUWrPTI/BkKt64ubzjKNRZdhIN57i8UlVKSw9jnBKF+iht4iLxobLIxkKQTJuj4TkPH5UotXNWbwgWpktA8kr3WCGe3/a7IuuWPb69TifieyZaqK0RGJOGS6vzVjAwsq77HhbeTAb1S63wiCrFor0FNjzdvmXSeTKL9fi4MjBms/tyBawLZkf3SZ6ygWC0pRGFFc6FaUOjfB4JBxksgl88Nd+LNmbLsz8FCi88kVmGKq6p4Jy/yOh2Gw8T/3Knz/iM0rQ5ZzAhdjPBJFWLKIxcDCjWDjPSJI3MvON3/cqFKZOjwctoN18v79oP+7qy4/4nMWUfZUZySnVCgDHBOU7PZKEpJwyDPpeWw5WXY7ELnilp0RZC9mSc2qi9vOzpPwVy59HePXdwxwO4Zq5PbmAW/rWLD+sUWa5OZTpncf9mecqalyYsD6wLIiSJGHXsUK8M3+f4bHyfj3JIOPDiMX6/aOXdZDVKQyZukMRnd3fRGmAwWOjLZUU8nisKxQA4OW5e7ifRw6PMn2O3NJqX+ktXlY7UZaH3YKIM14JUABIzinjZir0SJJCKbpM8O4A3rHWNEJrbJu9/Zii7LMM65xrlCXR6fZg4oYkyyUAeSv5gfRiXHhaO6ECTiSLiZzXSqpcmtJIn/59EOd3b6sp9afOJPDr5mQ8/st2fH7fhbrKshUHszRl9PxFlJXJJ4MJmpHFyQjEY+HuNPwTlyHMwKFm7JoE7l6H5dOl8Rh2bS+hgbOgvAYtmoYrokALK5xIzStH5CmthEoup8ejUS5vPZqPZ6bHILO4ym8ZWkaSgA2C9dDNSdUvwuX2KPaIPKX35OhkXylxNXYH3fzDZGN0S3zDCgAcKPRed8UB40wo9+jsrd+Ztw9JN5bh1YFncb/Xm5/ZbEyio7Ym5Wn6ND5DO2dll1QrMpCaJdFgPQSsGXZ2HePP7zJy2VErRkxRZh+RgaWoogZunvE0AHebLUnKbAuibCSVAgcsjwSEO4C35xnLKqvjs/Hegn34+sG+cDgc2JlagPHrkvDJ3edrytHN2paKIf17mrwLLcMXxeHW87th+O3nYnV8Np6ftQvndmuDZa9fj/zyGnz41wHNb/TkhFXx2ZrvUwWyupoiJnvY1E0phtln9UpQsojKLKbmlQfdqMHDSlYrKw4mFTVuzNiSgp067+CDP29FlzbWnDW2HNVmGgG8sjSbdVTGX7unxyOea/TmUbMZ99nS0TO3HUNHjgPWwj1pGPPIxdzf9/10FXe8jFp+yFf6WlTaUA+XR7IcECa/Y9882Ff3OLnbZm8XZ2pnWXMoG8l5ZcgxIVPVuDxoGh6mKTOWkF2GyOFR+OuVa3DpGVp9m8z/Fu7Hyzf25n53OKuUm+EG8OrHZIZdE2nYTjM8P2sX0pk9yNvz9uG+S05DWJgDybll+HRpPNIKKnDrBd65EgCSckox6HtlSS4zGbMBbxlsmcOZYlmuosaFe37agqScMox+4CLuMZ/8fcCU08rO1AI8rCpRyYO35zEKxNXLcigjX/vw5/ySiSxWnMD6fLhc+F3k8CikjLoD65hs2wnZpZgcnYw3bu4j/F2l083VX0o6MqUR6gwyz0yPwaNX9ECT8DA8O5NfBpulXCBbyAiDOAXPTp5r91usLKInDxo7iQV2fiNk25oVPFJddQkWvRKEdnDXePG+4o8YfnaxxbHpwsyvRg588jFXjVqLgvIavDqwN/anl+D7Ry621YEzNa9O3rMzi+mMLSmaz95dEMc50svQX2Ow+u0bNPY/K2Qwds17ftoiPE4uy7Y4Nl1Yrl6SgC+j4iFJwNW9+WV+HY6GmwFLhPedlhT7MaOxyEtiwePblUd8WTlZKmrcGDY9Bjee3dlE5sC6do5cqtXvRg6Pwh8vXKX47I0/9mLfiWJM44w5Fj3ZM7e0WrcfZm8/prGXbmb2mer9bViYA/MtZLSyygd/KeU4kb3EUgCJzQF2RP1BGbCIRoW8kIaH1ZmKJEg4tdZwxWYOEKUy3JiQa2g0NHK+ArxK8I2JxgZoeR8l+RywtMfw0kmLDGhmefPPvdw0o4EEh8nexGqDy/ojuaY2PDIeSRnhU2axVJAaq+lr/Vl0XW4JTpNh3m6PhCYCT2+r6YmDCZva9o5xmxTfieoaq+EZvNowWU3UwsV8lXOBWijyJwrXDNM2awU/M0oOfxEpcKykMGVhyziZwe2RMELlFBUs56tAUCsHZm5LtXwOua/ZsSQyqA6bvlP/XJavrnMuwcme+EXsXOqRJMzbeQIrDmZhMaN81NtErrOwIRY5QBwUlBP0SBLX+SrUiDKIsKV6zVLFyXJ43VmnaMaiBONoIH+uLyI6AIe293QUJzJndhaXGAK8DinDF8YJnfFYZAPO6OX664TIQdUMrFFZ7dBiVo7hOXeL6NauOdfQHApGMf3IU96JFHpfChwQRc9F9P5LkqTwYnpl7h5h2WxRmVae8xUAbjkLES6PZNn5CuArdB+Z7DVQiJ4pTzFdXOEUOjNMidYaemdsTeW+e0dVJYXX1BosRiw+YOjk918TDpCBsHC313kp0Ax+/52/D+uP5BoGtMjwyk/ySCusEK7DY9ck4CuObHrjdxsAKMuWsizdl8HNPLT+SG7AzleA9/15RiBbWIlA79K2mWGksZ4S0u4MWCxuj2QYTfzSnN2G5xGViQS889O3K8Xvv1ljklD2mroDb/25V/FZniAo4pO/tc4ydhCMPaAZxy8jRMrvr5YdUmQvYOnOKWerh7zXVwdYiUotiTJgqcutGjFvV5pvv/vwpG2ITsjlyrUfLzkYUGae5NxyTNp4FFVON16ufRcOZ5ViQ0KOYo0PFKNMW4DSecGMnKqXGZxl9PK6ciVsK75decSWLAnBxEoGrNnbU/Hp0njDkuCicj4i3vqTv77/3wz++uGv0dUtSSgWlFPTG+Oid07NL6qSmf5kWuGVGJWdrwBrgZgygTgcqB3p1VjVGR0vqMCGI7mmnCZXx2cjPrNEUQaL5f6JW31/i0pRndNVnA1f5IDFYtd+Vr4XxfVrjaGvzN2D6IRcJOd550rZ+VbtfGUF9pl34DgCykzfkurT/w9XObrJrDyYbUo2NuN8JcKoLKFeqSY1ZkrXidZvfziaW66QN0YujUd0Qi4e/Hmrzq/4TgISxNldii3q9dcfycVLc/aYtkUYzeuiMSDaH8p9rJfVm3sdnWdjNAy7msiIEsia7M9cKkkS3vhjr63tCJT5ghKcq+KzcfuPm7jfmQlqWB2fjYJy7xo7Yf1RRCfkYoZOUKE/HMmu25/amZXr06XGQcQsNW4P3vhjr+Xf+YMc1Pimaq/GUlzpxC+bUjB1c4rvGaiRJP/LaNYXHknS2FhFASpyyXujUu0yFTVu4dqz4UiupWebU1olDBZ+bMp2zWdGzlcA8D0nAEEms7hKd11ezgn+YnU7Ggcsh0PocGhHIInIpqLGUgb5YHiuEvUCOWARjQpZ+GgS7lBkwKquNbINYjIwtQ1BJF5Ftb6iYszDF/sUZfLcH6y022YJ5Op2zf3qBaecMQraVeNaD7PCCovL4/EJ5IMMMn25PZIwOtisE1dDY83bN2Dfx7dqPuf5mTVhnCXUSjlZYJRRbyiMUi77S3GlE3cKMgUFA7s3m9kWM+I1dEW4iHQTjqftWzZRZF6Tb9XfVOYs8ng9u6u4Frnpcwk+15t/PBLfoVTv3iTJ2LnGXwLp0gu62+dMabaEk7/07txKYxj1SJKwpFVDw4wR6BIDRxi3R9I4joiQp3U264jd2KE4saKwatE0ot7kM/b58ZQtogxwIsxmMZJxeyRNFqmLBeMl32IWRyvKDDvmcBnZkChaC3nP2snIeWqMsjeZxWiIZagcmq4+kx/d6S+ltTJYQ5UQnG5JaMwtKK/RnetEBtL8shrY5W9/w9mdNZ/pTTNuSbwfUNMsItySQk7tmBkeRAWdx2NvBLYVetfKN2b7Rm/ezxco69WIHLN4nN6BX3KcB8//6qLT+M6u3uND0+elVXy5NLO4itufDjjwYL/TLV3DqtOnqNRwuR9BW2pnbKvlanhcGaktFyyfm113yqrdltdNPYJRZs3sOp1fVjf/stPN0dwybt+d2q45Bp6jnTPNYHdAlpXZsTCAbMz+IHJ88tdR2uORhFk+gyHmhnJleOyKHsLv7JQh1TSNCN76Wlzp5AYH8RDtrdsHSX9mB5W1c7laxyPKcmgFdq516zg4l5jU/QZ7yRUFHcuB41b2e0Um7ikQxw11VjSRM4A/6GXAqnbbdx1/EPWZqMxnjZ/9oqdzMJr72Sz5kZ1a+nV9PRwOh2XdoqjN7HMOhSNBoDKSvHaKSrcCfF1uTqm+7qVVAGUE67ssYmZxYIkhzGLGDsCu82I5x3zlmoaCRwLKqpXjSpThSqr9uD7GRU2IbZk1Lk9A67JaLhT1WY+OLfCQxX1tqAimfocILY3EtEQQXuQIg4jwMF+5FAl1Xq5sfVsz6UMDpaBCX6HWqll4XQlCjwS3R8KUaOPSbsEkECOSJGkdaPzBIylLcrAe2WGO4CgXA8Xllnwb3T4GzhlZJVUagbCkyol5O08Yjpn6ZPexQhSU1+AXzhjt2akV2nGUO7xscnml1YhLK4IkSRqBafn+LBzOqvMML1UZ8IPVP2FhDo0hY96uE5iwnl/KJVDsTnsrKkElItDsFvWFmY3E6R1aoFPruijHrJIqJOWUmt6E/BMnTrF7OKsUO1MLUFIpNvAc5JSs4RGXVmTqOJaMokokZGszcsSkFAgVy00jwmzRfvPm3UCMf3aV0gKgKFsaDGZvP6bJJCaXIAwlx/LNOUCpMZP5JImTFp4l9oT5rBLpRZW6hg5/DKSac9igmC+tcmHfiSJTMoXb41GUsggpTPN4Bgmr07lZQ46MR9K+r+uP8DPruT0e5JR651wzqNd4PcymUlejN95E68KB9GLNO+GRJFQL+s6O8QhoM4UdUP1b3V4z0fBW1nv5+g3VR3vviUJF6TuWfWnFwr1dTmmVUO5ye/wvdaIm9rh2ntSbX6woRytq3Ciz8L6onYaDuVy5JQm5ZeL9o51KYHaPAHgNHQnZpb5MckbsTC0IqbOYxyNhq6C0mBqXxwOX24M9xwvhdHuQmleOtEKxrLQoNl34XSB0bat03jsukNdKqlzCCHO7hptIlhA5pfgTYBKXVmRKLim0YQ+qdhyLPV5oa8nuYGzvzL6/cWnF2JiQi12pBYq10uWRuMb5iHAHDpiMBldje+CFhQGrzuATauQ1xd+ggNjjhYgX9HswDHai0qbBQK/9wSw5FEy1SnJuuek9s8jgbEc2z2Cx4UguDmeVaAziZjOu6VHN6MdEe4g18dlYfYifaVGNP0G6VhCttYk5Zah2uS29n+b2thKKKmqQU1KFpJwy7E8rRqFJR3S1vtvOd2D9kVyUC5ysN5vI2BZMRHsqUb9tTy7wOglYnFtrXB7hePNIEMpeALAztRCztx9DcaVTuE6IxpopJAlZFoN/xSWuxRnNg0F6USWSDXReesgyaWQnsQMab4w44MDR3DJhxtNA9Aj+6kfsIrvEniA0I6pdbuw+pl+xg936LtvP1xd4JHscfENJUk4ZThQoHdBEdtsNCTmYvPEoiurBrsjTgwST/enFft2nJEnYd6JIo9s9IpCVThRU6trbthlkr7RKSaUTaYUVOG4iS+qR7NIGaR8nrGMtTyZB1DNyRoQmjLGRVWq1YFKoh8IBa8Ri/RIF7Vo0RaXTu5B6JAmPTN5mOXW+3TwyeRtSR9/plyNW8ybh6PvpKuH3ZjeNHo+ewcihqBMdDPxJL+nySD6Bw4wX8sI9ytScev3WUNBLIS1yROBFictpPScNuUzznPenF+O2sZuQOvpOAMBPKgcof8oPmSHM4dC0Zda2Y0G5FmB/BiqrZTYbawYsURkrltS8CrRtXvcOXzt6HQBx+SE1r/0Wq/u9Xmr51Lxy3DnOuEQt4FVESJJkqlyIzCu1qZfV/Of3WDzZ/wzud5JkT2bFeZzymH5HX0v2ZkcKdgYsjwR8teyw5vNQR5wM+HaDX78z877HpRUjr6xaWM5OrzQmjz4fLhd+d/HIVYj7VJsxMdTcP3ELMourMPbRSwyPdbkl0++23cjvmdPt4T7LYDvUFlc6NXKXqAx286bhuPLLtabPbSb1uMxMP0ugqMvtsoiM+zwnH7dHQlx6Efd4o5IVZlErd+4av1nzvcNRZ+gw4wRqxej4T1wmnr/enFNifSAq0SQTk8pXzF755Vp8ft+F3O9aNA23VI5UD55Dod76uzg23bTR6vlZ5ku5A4BTtc8N5hMtrnTivglbhN8/N5svu/jDbWOVZUHyympw6w/mSxStis/GlE2hC3bKKqkyvX66PRI++yces7Ydw32XdFeUmubxTpBKkqrnlfVH+A5C+04UcT/3SGbzuhkjMtqJSlLoZTkR8dWyw1gcq9/XAHD1qHWmzylal/t9sUbx7+k2l6UJxtStZ+hlyS+vwdPTYjSfu9wefMYpYaI2Jlmho045MX+wIs2Hwkisxwd/7ceoB/r67Ug6bp04uCxYgWehQk/XaFQmN9DrBktumr39GGZvN6eTEs1/bHnQhsYfO09wyyvmllaje3vzGSR5sE5dIt3/cxZlq2Ci95z+O28fguFD2P+rtQoHjkvPaI9JQ/oZ/s5q2U2rPDCRr3d+e15wS7EbIcpYKXJoKq504v1F+y3r4r6IOoTTBOPfLUm47PPVwt9+vcI7jkYsPiA8hxW5WY0E6w6SogzF8h5VHVwRLK77ej0AYPdHg/z6vTynqMd/elGlr6/V2aoBoLTaiZvHaMtb28HmpPp1SgwVRRVOPPizfolXds4X9YtHkvDWvL12Ni3o3DFOWxIzWSCL8kp9horJ9ZBMxGyFBpYlezO4pSy3JYsdqfTK+j7+i7a8YiC8MHu3peM9EmChQjHRQKEMWESjwSPVRWxHhIf5In1Z5SBrgLcz7eTtF3bz63dX9uroU3JKEoTOV/+77VzNZ91M1PYOhEROlhUjenfRz/xkNvW3OgOWEkkYtWcXA/0oc+j2SD4lgZka78l+CAoNGdnn8av7LzL9m79i0xtMloUwR2Dl1GTuvEi/jOGZp3ijZdSZCUJNfZWKCQVl1S605KRxtqtElIgrIjtYdqC1M9J4rmBT4JakgB00nrqqJ3fT4ZYkwzHPbZPN4z/YDlg8moQ7EGYis1RDoNqkc8ExE1E2duDySMgrrf9sj5m1TkVqh2ge6ncolCVrZUSONMF2qOUpEkVcdkYH44P8ZImBM4I/WJmDXW7JLwd9O6modiucI8IcwNzn+uv+xmpk7Pbk/AZbgjAQRKVb+vfqGNTMGHpDbP7utKD1dZXquQdT7jMqCbs5yd7I0ECZttm842co8Uh1wR9Gzldmub7PKZZ/E2h2zxq3x7LcGYiYOviCrr6//V0P7c5qVF9zaCDy/lkCPU6gewinW8Law+Yy1PF45HJt2Y8bz+mMKyLtkzcaizwPAL/HeJ1VgjGlT9xw1P6ThhA9Jwd5nRc5JASCvu4yuHRvV6cTrm8Z1U7sKBnJOl0FK/j63ku6h0QP8U9cpiU5zux4VO8RYo8XGWZMG3hOZzRVOaA01uz6VjnqR/akhXvSLOv8UvLKNQ4k8j7GirNnMLIamrn8ud3amDqX3L4tId4npHKyyt9yvleWlPX1POTglibhDox//FLf50cYBzKeg7jdpYu7mAwsbmgMv11r1zTLhTol2a3gkYyzwctyp7wdaoi2k2DIMsFGVJ49lHRo2cSU7pcgQg05YBGNBnZNjAh3cCPZWKO8nZuwn01EifAID3P4sp/oCcctODWmg73B9keBaWRU523MeM5l3shZcakQMxuJlk3D8dcr1xgeZxcut8c3pvSE9pMVeRw/0f8MfHjHeQCA9pyShCx60YKhFnJ5GbD84erenXS/P71jSwDBTYNvhvquFR9sQl0aDgC6tm1uucSPHZmpjJAkCYH6O7VsGs5tq8cjoa0fa5HdSlCRYT2YuDwSrNprbrvAP2ftQNFTMgw6r87hOFj9KCu0WOzLjxEa1DLR+ae2Ddm15SuL1igj54dAsTKv2b12B9smKj9XI3kF8DoVhCJ7rlEb2Mx74WEOXHuWvoOFuuSVEY4AS31feFro3o1OrZqadjARjU2XRwqqU7zeOxFMWUx9brdkfc0yC++9COUcaZVQiohWspwGw4DJZv82S1iAokCV0209qCWAW//pict8f7vcwctEY4X6MkYHMpcN5+hkgMCDHAKdX285v5vmnXU4HBj1QN+Azqs4n21nsoeenVoaHnOy7eXNyGFG6OkvZd2L0V7n0jPaW76u2xOaPT2ProwDVk0965fsxI5gada5KFhlujq2aooONoxdGZEjLGDtnQ9kn20kK/Y9vb0mA1Bjza5vhot7tPf97X/298D7Z3CtHslKVwdjXjJzL6xcpoecmTDUchtPNr/xnM4A9N9Bucxrk/AwnN21zsmsWUS45hiWQOVqzfnqQddtBy9cf6bfv/VnP8PDzFgbenVk7bHefXx9rO83GSSFYPfeF59uj3NasPHHbmA3fbq2sbQ3bwyEN6IgEkIMlSAkGg2snNMkLIw7qTZjHJnqu1ayjGxI0RNk3ZK3/NPq+GyMe+xStGgaHnTFnj9KHadL/ze8c/LuY9j0ncJzrD+SKyyFwBIe5vBrIfJ4/ItgO5pXjr212dbqIxtLQ0RUNkLG7ZGwKZGfGtblkfD1Mn6N9GCw/kgODtqQWc1ozEXXlkS1I6ovEP4bpLIlDYX62JRKkvGYV3PORyuwZfhN2JyYi7WHcnC5jdHcMnakIRalE/ZIwO8x4nS8IuxWENfHnOvPOlFfm6OMYnEGI7Zk1l3jN+PPF64KRZMaTPZDAMJ1iMWoNGkwOZZfgRMFFdiXVsT9/qU51tJUW8XKWN+Rwi8B5y/BHCcutwf/xHmzzPBKx2mPlzBza/BKE5uFNUrxlLxqjKI81YQ5HAFlcjiQHpoyEoBXgW52XhUZh7Yk5ZnqR3/R209JErBgd2iiMD/860DQzj2JIyNENOBc+Nklwc2IymJlP233fLfneKFfmYcC9UdctCfd+jUDmHTYkWY2UCvYxB4vqpfrDvre/7JCTQSydKClpgJ93yRJQpjDoTSASZKtMnVDM2Zml1Tpfi9JEmb4WZa5odDnw2WKf1vdQ/PQc3iWDf1GpQh5WbSNePU3+8rsWiX2eBEih0ehZdNww7JgzSLCGowO3IgnftmBX5++PKBzjF+XhLJqF64+s1PQynT5qzsWoRfoYSVT44T1/meze+pXbSlZljCHA01UMt7Iv8Xl3hs77FKTmudftvBl+7MCboe8TFmRcYJRAcDMeI8wuT4vic3AukM5uKB7aIM2yqu1+349u1zk8Cj0Pb0d7qjN/N80IkzhXC479qYVVvhKQLLYneEry0BGaKgEkm1UrzycFXalGlesYB21iyudaOGHXBAoRuW/04sqcdf4TZjzbH/sSysOUasCY82h7PpuAtweCQfTG0d/Ef8uyIuAaDSwunOR0pf1TK9xWatbHSxkGUSSxBG5Ho+E9xbEYXV8NmZuSwUQ3DIvgH9RLDGp+oY3nr4jWJmAmoSH+aVMS84r80sJPGJxnWFDnZLZH9Sb2sbEioPmNphJOimcc0qr8GsIS4TY4XwF6EfMsJzMUWINgceu7BHya7o9kuVMIwBwy/cb8b+F+7EqPhtfLdNu2Bsy/o5jux0Q7Zhz/cHq7YeFOTDoPG02qGBTxlEyyaSrysu9+ede269/SmttmvQ4gTMRwef6b9YLncAKbTBa2UVjMggeyS7F2DWJAMwps51uj63ly+1gY4JxQII/NJZSIuFh5g3nonv6Jy4zqBmw9NY7f2SGhkg0Zxw+3E9bNozQRy8q259yIw9M3OqXM1J9OIsHEl3Otrdzm2a0x/KTJoLnzpunzgthhrtLerTXjOOyarciG2SgNDD/K13H6V6ntLJNb1GfsI7Pl/mRdYqH3rsvjyG3ge7xyf49bWlLqDFyvgIaTgCyWZ6duSvgc0zfkooXZgcvUMUtScix0cmlytkwbBR6hIdp7S2NxQHAH1jx5LN/4uuvIQ0EM3tEs3JkTGoB1h7Owbh1SYE2yxLjOdeTnYNEcnNcWrHP4T85txw9OtZlqpQd1d85yYOcTwbM2KrY4N4J65PqJbBDTu6gx4H0EoxZlYAeHRtfOcL6wuWRkG/g3NaYMJMxl2gckAMW0WhQOGCFObiKFNZIK29ApzzlX/nAQNn54SAAdelP3ZKEBy7lK6tZpWRhhXex6NrWvrrP3zykTeEeDCGDJ6xXB8kRLiLM4Vf0dXm129S9P3ddL2wZfhP3O1EEqRWaR1jzsueVeKoviivNGYPLq8XP3kyZH7ORNcHinou7az5r36IJWjfTTx4pSQ0jOvtkZsDZnUNynd+fvwof3OEt2eGv8ciMwrShITsa+qsktLuMV305YFlNlx7uAO67VDtvBBu9ZqqfRWax/RF1zSLCcJ2qTJq/454tmVjf7Pv4Vs1ndpUgfv3mPpZ/c0bHlpj1f1da/t2dtdGcMg1JnggmVrMeqR1pot8diDsuqp+yosHE4WcGrL71kP4+3OEwXVZPL+AjkAxYV0Z21P1ez2mvvkta8vZ/drDm7QG46kz9ktwnM/4qQ/Xeu3GPX+pna6wTeUorrP3vgJBdD/Df6fPqMzvB4XCgY6umALxGk4a0xzq9Q+MxikQIZOkzOirlmoHndMay16/jOtcHCqu/axYRhi3Db0KXts3RRxXg5JEkm0v62KNT+Piu8y0dv+btGzSfGcmRd/U9VbGuPHNtpKVrNkTeE5S/tIreuy/LcEYOmtf2NlfWuDFS37qzkxEzy8253doYH1RLY3CSczgc6N6+8axtANCmuf/FfRqKRBGIaNPLJv0EYM5OFKosuP6uf4XlNejXU5nQINxnlxP/Tr71i3u0Q9vmTXyOZvJP1IGNjQEr85MV2JKBL9/YG/s/1erN6gsj/Q0rD+eX19ga2DH/paux+i2t7GeWtqq5LL9c3wH4/67t5fe1GhMXdG+LSUOMS5+6OUF3bQzsdw2ZFW/4P5aIhgU5YBGNBlkP4XW+csDBUaSwSh15c9PbZMYau+lcG8kqC21Otwexx/npMNkot/jav+2sQ3xh93aKTUlKXjnm7Tph2/lleJH6wSrF1iQ8zK/IyPIal6mNb/uWTXCaYOMZaKp+wHp61lb1kBZVhMvkM9VLq2omTXj7lk1NtykYRHI2sg4H0MXAOfJkiFpt6ISqrnfPTi3RrraW+baj+bZGQDZk5A11Xpl/93s4y753wOEILJ11IJSYKFvGEuZwIMJei1HA6K13Z3S0L6JGrfjz10AqG1kbAu1aNsHlKuXdqe2b23Juf1LxeyQJN/jhfKpWvHVqQH0cTNZZLM3FyiydWjXFGZ1a4vo+5vu7sdi9DmeW+FUKqFk9lIINq93zmUEv25RZuZXHpT3b635frZPJJJilD80QLOeQs7q0Dpkc1hDx986PZJcKv5NlzVAQEeZAZCf7jHVm0HtP9GhVqzTvXOsM5PFIho6Np7QO3RrHGqAaOqJXVp2V+4Lu7eBwOHBON/t1aGxGQ1bX0kG155fLEtqFv/sZNVbL153VRWv4bGPwrrs8kkLHVR9l2O3GLscgPblOnheM9h92Og40NLmPsgPazz4TWUqsBCiwgawNac/LEuZw2JqB0CyRAWT60CtPaoTVgLtgEcg92Pm4zNhvQqXveufWc/z6XUmVE8fyleUkZbvcIZ1Snxm1DlZyZR1ZRolLK4IkSQGX8K4PRPJ+oPuOti3q7Iv9zuiANs2Dt4+x6mBo9JzYjLAeSUJSjnh/ZoV+PTvgisiO6NPVf6e3UzgZkfUye3aycc/jTzbmUDHwnC64zoRejheQd1ojCpZRUx/lMYng0Ph3c8S/Bnke1ds08xQ1dipv/EFe2+PSipGcV849Zum+DN/fmxK9jil2+i2FhzkUGUQGfrfBsmHKDLzSRi2aBsfb+LKeHfwyysdnlGD4wjjD4/T2YXYoW8xmkZJZvDfD+KAQ0a1d4Aboj5cctKElwYXnPS9J+mMDAO4avzlILSJCTUS4A4ezvBuysmoXZm07Vs8tCg37a+umT9+S6tfvtyTl29aW+lAA+sui2PSQGlHNoJdN066UxpIkaQz9k6OP+nkuO1oUOLICQi1ndG9nzwben1GdVuhf1GW4Sm5Wv1KBKHwbMuPWJlo6ni2FIitprcw/rYIk79rN/N1phiXFedSHw02Yw4HY40Wmjv1uVYLwu0CMkkYZa6v1MmDVc0nL4iCWL21ohudQEgyHiECyN1ilvNoV8ud36w/RSNRxQBMht1Nei50eCT+t1y9lE4zMTd7zao0ciTllQbmWWexwjO3SVrmv71q7zw+GDo11jimprHOaVa9JklQ/pTKNaN8ycBnf6LbcHklx7/tPgtJfeqXS7WJKdDIA4/XezmEdylKdRP1gJrDS32ynDdXYnZpXXi/Bb4GsOc4A5PyGksmyewBBXkYVGqyQqnJc4hGqbHv+ygHZJdUax2t5TOfqBNTO3u7V9cpjUb7+x0sOYsOR3KCWtA8WYuf7wORHVmcX7D2MVdnLSA5gM2AVVjjx4M/b/GqX5rw2vBdqvZzTLenej50yTUMONo8Id5iqisFzwg+FDEoQRpADFtFo8Dlg1XrbywsNu8bxFh+eE4WaEXedL0zdOPbRSwAAYx6+2HRbWfzdSPgbiXExJwInzAE0D2GEJvtMBpx9il+ZHowYfvu5fhnmmzcJR7mJ0khy7/MM1Lzsa3bx2sCzbDnPg5fxy136w2f3XqD491uDzrbt3P5ihwJUjzdu7sN9dyWAu/FS95HMb8/3t7tpQWXgOaEp7SfCTIrkf/5zXQha4qVJWBi2CLK1XdO7k6m57YUbzrS7WZa5+dyGU9aNZcFLVxse0xANMHpcdaa4XJXed1YxO8e/fYs4cvCTu/nzllUkAE9fE6n47ERBnbNQhyDP1/5yjk502j2XeEtJquWM9+84T5jx4s1B5ssKhjI4QKsMUv6bIua1yPOOlcf0YD/75C6ZhlROpj7aEh7mCDhzybnd2gSUiepUg6CD+i4zqMfxAmMjir/Ud4BTfaIu2WYHdjh1mZUxskuqQuJQySrKK51ubE+27pwvjzN5/vF4JPy6OcX3/agHLlIcP+i8rngoCHMxAPzPhjJqdpcKsZKRSfTEn7qqp+Lf9196GoDgy9+VOmXOPVLo5hgr5T/79Qxcjje6L7XxaOtR+4Ja6ovsEvvLn6tZfiALgHEGLDv1eDNNlgWXHW1+f/4q264t4rnr7C9HdFOI9AiThvQLyXXsRi+wVq9kUrDWqkCJPVHo1/wbaKmzQKb8QDLdjrznQuF3z3Lep4cDeG5X9uKvIbec3xX/9TPbE+DNXBlK1MFdwcKOyiMyVmxH8mVZMWhpXEaDKoEdKOrsp/7w+b0X4OmrewrHdaCc2dm733rAgm3rvFPbGpY9Z5N6HMvnJ8nwBzsybKqryLRsGq57P3YGK9vpyGk3TcLD0DQiDO8O1p8nee9ofhm/Ms+g8xqmjYQ4OSEHLKLRIM+j8qLmUH3+yOWn+50B69nreuHju8/nRjbeV6uE8tew4m/0iJFwd/6pbbkLxruDtcrBsDBHSFMXsh7lDocDXz/Y19bzx382GKe1b6GrGPz07vO5n5t1bJMPEykcrj6zk+9vOzfPdjkW9bfR0D/06kjFv9vVszG9Z6eWPuVwsHjrlrOFJRB5aU1FaXGv6tUJqaPvxJCrzrC1fcFi0lP1q/gy2ix9evf5uPA0r4Lh9gv1a7vbQUQ4v9wtANzZ91REvX49UkffqXuOhlBzvLNNEZZP9Ld3HF8eaTxPNTQHLKPnLTJqdmzVFBOftO/9GvOIOadwvTXFrnEhSfpO3p/fJ1Zsas4VYFuu6d3J+KBaztIpUS2nnlePv46tmuLQ57dxM529eENv09cOpe+CukyAJgNWQ0k71oBQR76aIRjZ784PQgCDv1jpCzMRisNUTps89C750xPmjObndGsTkGHG6F2tdhkHddQXwZxn/q0OWF6HF/vnzCY2lHP54wW+U/vXDyqdlORn9/TVPXmH20bCl7cHfA65W+T5R60fefxKpVw69enL0SwIQWc/PHqxLWU+PhboJ/zFqnHyurNO8f094OzOSB19J5o3UZ5DdjKvz3fcI0lBlf/lskIAcMt5XQ1lexk7HJGNzhAKA++dF50qzJDLC+as71JpPB3t7o8GcZ+bUYYSO4e12Wx7q98agNTRd+Jqk3sUtWOpFT6663zb5dEfagOSg82N9RwI6C+ivf+jl/fAbReeKvxdQygvys6FMuFhYX4Z9c3K5SICWXP8nTYfufx0XX0ILwjjWz8D8wHxGB/32KUBBcyHuoyinUE5t57fVfidnWKAFXHJlwmbbYDUMIPW1r9zo+73otcqUBnP4QCeujoSI++9MGhBHev+eyNSR9+JljrvRphDeY+ntW9unAGLea52vjqi0pw9OprPsqfew7RsGq57P3bK6iKbcUPI9ik/s1cHnoUrIjtovv/xsUsA8N9RUcDH1KevsK+BJvjhUf/XDqLxU/9WQYIwiSgDlkxEeBhXoWFFGAiGosefU0YOjzJ06vF2By9Dj3bBCXUJJ/X17IxcYM+n59wmeu5mZWa5H3mbC4dDOVbs3DzXR4kXq4RKISu6jCSFZkyLAhh4mRRExkZfyQxXw9usAd7IF/Z+7DAABUJCtn4pD/adD8UwjAgLE16HNwbV/Ql4yz3VN3YpC+pjdjpZjLxuj9TgyinaEfkG8OWO+sKKHGfmcYjkDJ6i00p/hjQDlqpd6lvKE0SF/ZsJ80W+1u8ztVt+DgQr8mmTcAeMks2a6S+999ls5pclAZbwNrrvb1YcCej8wSSY80w9i4v1RkSYQxOdbAehdJbzZREPsYP7CD/Kz1c5vc4UR3O9+4PdxwsNf9MkKPoccUBGfWLFCOpQGank+VU9PkSfhxJJCq7MnF5Ul6XViuxmR9YPo36dsTUVf+w8HvB19MgsrvS9W2p480Kgxv3ADZzaNvHkg5dm7xbel+9M9TGsLV4z0CnM7nsMVTDUybLnlzHaHzfUuy2pdPol4wX6/NIKK40Pshmj+cLujDAiXWugQz/UsVQiRxN/0Jtf7LSNWDmXPJbZMb0oNt22ttiJ0foskl0b0z7OaHg7mGPWHMoxPB/7XO3MFh2XVsT93Io8qw6K+D3mhO7xdi6borLmDSEeWpHkgzOmZQfWQILugk3T8NAlRSEaHo1oyiX+7cj2Y1lJohagmoQ5/Fp82jL1io3SwlvJrCCTXeJf6YwFBkZ7nqD1+s19kJKnTaEZHqavMrzhbP+ijfpyIuQA5QLdu3NrOG1eBGVloz+KObMKpFvP92bXCedIpj07tVSMNTOR/maxLWItiJswXq+f0VFbqjFQ/nMTvxzjSwN6KwSwYDHgHH72M167jJzwSqrEqcnrE7WzkB3GmGDqzthTh8JZMSLcIcz6xFMyOd2SJpIwmCWAzHLfJfZkjLvv0tMwwM/1wgy8vrZSs93u0i5q3rjZfIk5Na8O7I2Wzaxvus4UZNczi16ZPbsU6kbLqloCGXyBONIxUAWiFWOkGUWx6Hy8ZlrqTweCnslRRpMBCw50NyirFih6mdeCZcixUorJiMeu8M5FVpaZYIglDakEoRW785smSlXfbCLtu9472rJpaOLICoPgbBMqzEbT62UDVCOXKzvZDKU87rm4u+aziPAw0/KnlWwerQI08ull2r2+j7Id79WW0mtI84uIdYe9hpTSKq8s+POGo4a/CcYac0VkR8Rnlth+3kDJKDZf2u2szm0UY1fuJ9E8UZ/D49YLuqGVBZk5EFnZyngRvTNWjPRPXnUGXh2onzGVdQro3TmwfQCvbXuOFwnL5952gTbDdGGFsR6DV6pL5pIz2hv+XkT3ds0x8h5tyXTePLziYJbh+exypOzXU5uBQXhNi5cMVMfx+k3+71d5hCqAiPd+9Q9SaatQsD25QPf76/rUf8Yvng43vajSr3U00KBkvbK0wcIo6D1Q2UxN2xb88wX6it1/WWh0CjJ2yo/nBFi60gynd2iB+AzzMlxDcES3i2ev56/NLw/g21rM8sqN/N93a+vVMflrY+RhtA7wqgDpEaznKpKVrFzPqm1xzaFsS8fr8epA/jNtCO+BIliC0xw5ey8v8PzmEJVRNsKOEpVE44UcsIhGgy8DlqoEoUx4mFchamVt2PTeQGx7/2bfv++4SJwiGABmPHMl1v53AGb935WKz5e8ei1iPryZ+xuPIPPI9X1O4X4eCG8N6sMtjxYW5tDdRE17+nKseXsADowcbPpay9+4Hr078xX2YWEO7P34Fmx//+aglGSRlRL+eO2bSQRzSutmvrIvPPmnTfMmCiHEnywirwuci1iHQJbP7tUqnnSxaW0//Plt2lNzzn1XX/13xx9kI4+ax6/soenzFwecafv1eWUFHQCGXt0Tq9+6QfG5kcKhoZVRk2HTaqvraf/vtnMNUxqrueX8rlxnn7X/HYDLAlC++mAGXyg2AhFhDo3hitMUH13aNMOatwegUz2XamDZ8M6NuFKwaZU3yCxr3r6Bc6RXcXFFZEdMffpyXMmUDry4R3vd63927wVY/Oq1hu/AoPO64vN7L8Tqt25A9LsDdY7rglsEqcof7HeaptQOAOz8cJDutVlE9w94S5MCwN6Pb9E9B++9ebJ/TzQJD8OSV69VfM4rq8EySCctu5EBBwA66IzFiLAwzXsv4pIe7bH341u4G1h5Wf3ozvO4v5Ug4eDIwfjk7vPxxwtX4ecn+2Hpa9cJjw0Eo3HGOtGZyoDFHPTBHfrKHauRlc9fL163ePKYvCaafWYyaiWpwwGs/e+NmrFoFx/ecR4evaIH97tP7j4fG965UdcxkCXu01sx/Zkr8JyOYU/m9+evwsKXr+F+N+/FqzFt2OWaz1uoDM+yDCaXn1aPJ7b8NMv6d27UPH87ln2rxoxfhmrv0SxGz8SKHPOcQNnLItpDsOit82EOB35+8jLfv9vUPrsuOqVE5jzbX/gdr6w7UD8GIR7qsWoG9TNTy66Ad82Lev06PHK5uXLqr9fOoXbIYEZjTvRMQsXw27VzfoRBUBPL+SZLNpzbrU3A2e5EJT23Dr8J3VQOt7IjvZ0ZsJ7sfwauOrNONnzxBvv3ZSLUgTF2Zg6875Lu2DL8JnRv3wJVAc4Fe0boy47jHr8UYwSljba9fxP3c7NG0DVvD0C7lk0UY9cX0CY4R30ZCu67pDsuPK0dN9iKJ6PfdkE3LHvjesVn3z18MRablHH8yYrBcnnPDtj+wc3Y9P/s3XecXFX9//H3ndnZXpJN3U3vvffeE0iA0FuASK9SQpcmTYqKWFDsyvcnKopiiyBNmnQQRIMQ6Sg1gUDqZnd+f8zemTN37r1z7+zM7iS8no8HD7JTz9xy7jnnnvP5nOfddzEtHdlT5ywN3o5ra/q/x77gMUbpseJhuEu95ZamzOmoGf10z5q5OmleZt/Erb+Zzf4Te+muM+fq3rPna4XLOJN93J63h/u29Bp3CLq7nelNTb8+aYZ+fvz0YB+k9OPmouXufaU0bVyMcvSs/ml//+7UWXrg3Pl65IKFev6LS/Vto+0URNgx133GNequM+fqrjO9+9ROz1yyxPWa9H8+7bZi4rZft/iEgr395JmuY41S7uf8KfOzjwuYRjTUqtpj7DmXSXe5tFMLZd/xmRPoTS9euYfuO3te1kkiXpNrwy5k+tVJM/T0xYtVVuI14blt19vpA7u4jj+ZaSFrPPa1n+8dOUk3HZ5ZX7Sl/bjAsTihc6X/8X7v2fPS/v7XFcv0w9XB+7sPnDtf96yZpx0hggLY+6MtY/hh7k98ab8xvpOY/fhdLm4/eaYm9nWfLHzYVPexmmuzpMC9Z81c3bNmro7ySGN+/znz9eC5C7L2gZ7waJu46VNfqd6dvdshJ80bGDISfeCXSpLOXDwko0/6lSypSM3tG+Z8iUUjnvcK3fTq5B4I4cJx7ouY/RbCHuoxfudWPa3MUsfmm7mg1G1r2ukTm1vi6tclfZtMH9jFM7pXe/Lrsz3xhUX6xQnT9fD5qb7E4hHe+wq7no4/AoGA7HlFybCtjrrLvuAGjZ5QVxFTn/rKtFUN2QbsSksiGtStOuN1w3rWqHuNeyPcq9FW28aJSfF45oXQawApalm+26UkGtHg7tWhVu+NaKj17ChEI5Y6VZYmB3wLNVHCr2Po9VSQaCr9jQu2WwSsxOPmBKzwVanXe7yOl46ade6+KjazLIUIuOV1PFtW5oTCXAb2cpFI32BpiOOmUTE06HJh3tx1DprEopbnwJCXMb3qXLeFW72ZC3O3t8cZYVmW5wC12zlZFouoojSq/m2MWpRP/btWeTb23U6xugr3QRB7hWQsGtFAYzW2X2dYko6a0V/j+3TSJI/Ov1mWaCRxbvml+OjXpcpzACliWRrqckO3m88Neae+9dn3XbbIK51cru/2edG/S/rnZwvh3uwza7it4d+jESvwYGmvzhXqVFmqoT6rFP0GqarKSnT0rAGaPrCLIhFLYzwiaLb1YpJtoMyMzBTkumqe/2kDhG0spyX/srq1x+wIamEnfTu/x1JikMJ5LObLgK5VnikW7LZ30Bu7teUxLRjWPdDq2JKopUn9OruukqwuK1FteeZ56YzQuqk1yopb6gH7O9xUlkYz6tN8rJoOuwqyoQ2RzbJFQQrTDg1yQzvIoHb28zl1TtoRcvwGt7wmI0tSmUddmC09SXvJJbKAs/3ibLtK0uDuNSorifpO1jXZ9U8+5u74tR8Gdq0qWB0VlNuxVBKx1BxwsCHoOROmjeLFqz3gVickbyzlsW8Zi0Y0Y2BqcVmdTxTEQsvnopfailigySdBZLup3rWq1DN6ZLnHTdug11L7ODDrhGzbqaPGHvz6UIO7Z9ZhA7tVZYxXVMSiBYnO7VYn1FbEVF1Woj4Bv68kasmyrMCLdfz6AUF4je+FiTgbdMHC4O416lOfeb7kEnVqQJcqDetZk7yp5mTXX179mAFdPRaKBq2XfRbITO5fn3FN9vtY86kg13KvsYegnG2wqrKo+nWpUq9OFaotj2VddOwUti4oiVga1rMmVGQbr/qxrVGV2ovb2ERzi3f70e08seUa9c452TqbAV0rPdtyXhMGula3vb3SHob19J/8UR6LamCQhSAe2yFsOtr6qlJ1qS7zvGbn43rrNm5r9iOzTXRys3RUT03IxyJag7NOz9Zkc46rVZaWaFGIiQn9uiTaCGGahqkIWMHf4xR0sZkkDetZrVGNwRZtOPllePEby/fqq3fJco4P7l6jwd1rPN9fURpVX0fGGKfenSvUPeT9m/E+i34ty9LwLOe8KWw/oTyWuIaasl2bzO2z1WcyrlPEstQ7RPvVa6iop8dH+AXI8Lv/5tStna8FZt3pVky7n/Th5h16/cP0DCQt8Xi7RNrLxu+4615b3jpRLFU/7gqRqhHcrtGaBSS9u9V5AynYTRGviRFugxlBB7GcN7/sBrM9kGzm7fWqZNtalQYd5JESq5b8Onm5auzk3mj6yBF6M5fVFkH45gv3ePyGu19K+9ttpbzZAfK66JkPv/zep96F9HC3R6hQrwbRay6pJf0UIvKYza3BE48rbVJGoTlvGrR1cDIorzQN2SZCNDoG73OJmlYI5nZ0bsOgg3/mrrAkPf5qerh1ewC8d+e2D4Sb9X57tUe9riFu54F9HBTH3k3xGjxyrg6RvG/4m8fHL55M5aIP3DHI8jLzab+PjMe9B/IjLpMzwwry9my/2W1Qzl7Jbzk2b7by+g10ds3DTdsuWSJw2ezf7HbNtKsKr4E9t4kvXrrVtu03vZMlHY/l+He2CSt2+iMpfV+19eZIc0s8dMo8u77evD1cFI63Nm5N+9seRHEei/lSU16if/73Y9fn7Hoz7EDzB59mTwNn34RzXoOkRPve7ca2W5jyRPns/zv6GmEmyeehWRI2AklbBvDf3eR/7vz73U9y/mw3QSaX+a0YrSyNukbM81vh7DdY6rWava1Rb/IlaF1tCtMXcIug7MbeJ/lIA93g0Y+UpN71ldqSZdsXut8RiVgZN4WjUStwezZw86h1W3YOMGnJa7N71RVu+8m+lvXI4+KV7rVlab/3xf/lt77w45zIks8+1v899nry32297mdTWxHzrKNiHo9nu8lss68ND738QfKxbG3ZfE08swWNGPKwUUY3zkP6kf986PqaQvTF3NrsYfsd9nYPujCpVxv6z36LLIb2dJ984HYz162/6GRfG5w3viR57gy/befWlkv/vtb/e1SKpSVtG4PNdhPaaYDPhGFziwaZ7JzvYa22Tu4IO1m3WCO/F0o8Hnf9zX6pO/3GDnNtX3WpCnfMvvL+5owxSpvXPve7bpREIm1OpZcvXpOZQ3+ORzs67AIBu89jLxZxKtQpY577b2xwqZsDyPf53FiXfsxlO97buuDQ5rWw3v21iTI995b7eEYQYSa8WZb7OEUQXlHVpOzjCG7f+en27CmHg2ivyZp2RG2ve5NuwtaxnStj2uwI5BDLcl70MAJ0vP3RVp9Xpgub7jzs+VkTYlzW5vYN3ds4ZtuWMrjdC/Ab42mOx/MybtFWYRcftvc2RmExAQu7DLseev/T7a7PezWovDoVbpGQvFbsOzlDotuV/U+PmaoVYxr0m5NTIc89J2BZVtbQuH6+tN9o1wuhW389alm6ej/3UKJDe2Rf+eHl6FkDAr0uzGSxMJw3Zr52iBEGNMAFdvGIHrr1+GkZYc3Nt3qlnzEv4H9b/4Eu3HO4Tpw7MCPk997j3Pfx8y6N+Ql9O2lSv86urw/bEFuSh3CVl+/jnvbQbRAnrrh+tHpKm78zKOcEB7Mze9Ck3loxtsEzfG6Y8858ba9OFWk3XcyQoNkaU86Q4HYqM6fpA+v1lYPGeYbNP9vjfZK0YmxD1vzotvP2GKaDJ/fWNCOdkjPNjj34Z4autn390PHJf//fManQ8JGIpVcdkwV/cnTiuLjIIz1ZGGkRsAKc43Z6t/0nZqZFlKQVYxqy3hDwutHmPgGrfRr2P/BIMzV7cFedv4d/mjTbirENuuHg8WmPje5Vq7rKmGvKU6/7TkE7fdlelVbv+uzbuOL6eKv7wEA00vZBIq9BanMintekAHulm/M4GGtEe3L+Nq+BkWNnD9CaJUN1zOz+Gc/ZK8D2n+B+XIex19hg9aG9XQ+anBma2r5Z45WKNkzK5aNm9NfswbmnaP7X/zZ5pvKVpKjZfrOkP34+MxWiW6h9Kdix9YsTgqUk2bKjOXTbyP7+oBOORzTU6tcnzdCzb25Me9w+BN1+zYoxDaEjH5pWz+inqQPq9fB69xuo9vkVdgxkvTHRfWRDrZaP6ZnxGr+VzNFIIjJD0HQAqYlizs9x7yeURDIjzebj/pnfTbPTFmSGp49EpJ8dl56uxW8BhnnOvviO/4QJ15uqAXhNKgkSISdipS9qMY1qrHU9F8b17qT9J/bSARODpdSzHTvb/dgo1AT/5WN66u6z5ibTXWYTtM9l2nN0g1ZNS6RRypYea6fLxLUbDs5Mr2D3ld2qw/0m9NKfTp+trtVlGtOrLpl+aEr/9L7N1AH12mdco85dOlzfPCyzjSlJ5+8xTO+5TArca2xDou82pkE/Wj1FV6wcpdUz+uV9soiUuF7/8oTpaRFkYpGILtt7pOv17oI9h6dNCgs62Gu/6pcnztBSn7TDkjzT94aJMmvvO78UWya/9JSlJRHtN6GXjpk1IK1t9DeXSTHZfCdkWizbYdP6av+JvZLHUpibbL86aYbv82a97ja30+7jZOOVimXFmMQ5euzsARrVWOua5vbcZcM8oxgFTcPjdihmS4ly2sLBeUsx0lBXrq8fNsEzgsHpRnrop17f6Poam7Pd9tybH2W8JmKFb2eYZfBiWVbGPs/W93OmB7XrBbP9P8QnAuWle43MWi4vbimpbD87Nnt7tUtVqVaMbciaakdK9QWefC1z4pRlJVL4OPlFYvJqR9rs/pTX5vea5B30uDjUIz2T069OmqEVYxt03YFjA71+RZboU787dVbO6djNtJtrjDGjMH3j7xw+PuOxSMRKS/Warf9pft8ZLudV1xwmlAfVP8BkQUme6bNy5beNnW0gyT8iolt7LIg9RvfUFStHBY6G++I7n+jMxZlji3eeOcfz+uA3ocOZ5tbmNaYclHN887K9s9eJfhFvzXFM27nLMlOZnrV4qMZ5XLOu3tc/TZuT3ef36kt5tRe9vj+ooM2hLywf7hmxyavO/NVJMzLSCWZz2oLBOtMxnh2xLN12YmZbzP7efEVU9ZpM5yYfczXmDe3mWx+Z9xkilqX5Q3NLu96nvlKnzB/kmo4322KnrxyYeW33S50axkGTe3tG9QqynuFWx3iG12/5fuu4+Iku6Y/z4cBJvbX/xN4Zk6jc0mTPN86H4+cO0H4TeunmIyZ5frZXGzvM4Rd27Ntr8dL1Pm0Yt684cJJ3G+lkj3S4R07P/bprLoJxnp/nLB2qqjLviYgtLXHPtqJXGuu28LofE41Yrm3AGqOPZ+7PVdPy205Bx2ICFnYZO1v7IbMGJW7MOStdtxnIfpGX3G4wBV1pbg60TO2fatwP6latm1ZN1EijoeF388QtFYTTEo+B2DAhO6MRy3OVq1/5vrTfGL127YqMvNu2Qud5v2zvkb4hb80b2d9ZNVH7TQh3s2X24C4a3L0m42aruU2cDZqDp/RufU3qMcuydOK8Qbpw+Qhdtnd6B3NkQ23GwJub165dod+eMsuz8xU2fVtb8rLb5VntUW7XiX9x/5QBftwmAWZbaemcLGmek33qK3XT4RN16NS+roMbfqtEnHoZ6VGcjbPZg1OD5Nm2tzMVkVfagWv2H6sDJ/XWlz0GOj/vMzh80+ETNSFLmjfbKfMH6/oDx8m8Rexc2W3/6ZygsXxMT43t3Sn5t1+482kD6pM3xZ374rVrVyT/82NOXkmLthXgEH/q4iV67doVuv4A9w7FTasmas6QcAMHNre6M98rxLzyfg/sVuXaYfvGYRN0wCT3QdFbj091Ykf3qtVNh09UY6cKnWUMvJ29NHGMuw3AeKXcCboqNsxAht9Ny3hcGu4RQtiyrDavkvM6l4OUf0hrXeY8Nn5v3DB1HiNex8z5ewzX6YuGuNZX9oSEtqQ4++flyzy/38w9b7Pr2OqyEs8b+W4DEVK4VWYVsajrpE/7u01ug6XRiKVDPW4q33bijLQRn4hlqUt1WUYd5JyUbTOPLa9xo+mOm6crxze6DhjZN1fCnBf2ceUVtclp7emzNbl/5gC0vWrMeZx2qozpplUTNdC4ls8dmr1+NNs4l68cLcuysqabCbsKrcyYhPOVg8bp26sm6ccBb3xLqeP3wj1HBLqhbB8mmeer++sjEUstBZio47eZZrlMVIxaVsbjR03v7/kZ5qQVM2rMEdODTcwI4lRjoljYScpeKdSPnT1AlmVlpJCUpMqyEt1w8PiMyXZeE0GvWDlKr127wnPgLpeoN16TUU3fXjVJQ3rU6EefC3YcV/sMLHqJRhILcF67dkXWCZ9NjuO3riKW1p+1pVIQZu7Lrx0yXqMa6/TUxYv1h8/P1rCeNXrt2hX61Ukz0163YFh3feOwCaqrjHlez+urSjO+Y+7QbvrW4RM1c1BX3bRqovp3rdJRM/rr8pWjfX9briJWIi3yd45I9ROjEUtdq8v0LZeJuifNG5QWFSFo1BH7tBjao0bf85hgL0lfPnCsRvdyT98b5tyy69+gqZ3cJl7b9hrboK8dMr41vYvZfw5cnKQ9xzToC8uDLSIwlZVEdcPB45OLnsJEDpzico304hYZyCt1a42jvbJ4hPuNtZtWTdTV+43RJXuNTLRhHRtueM+aZB16+LT0enlEQ63nxCwn1wlYWY7PmvKYvn6oe3ssG+fh+MPVUzSlf70WDHPfDpM9FqBNH5i5f0Y11umZS5b4fr9fO8TrpuiIgOlJ5g/rriv3TdU52fp+btdq5/uOn+s9OTxMitIexmr5Ry5YmOyjuy1E8rqpbbbPxvXppJsOn6iGuuwTXO3Jym7HlSXpzMVDM9rbYdMsm5Ipojy2v9fYWdD2Z1lJVN/wmCBsmtK/XjcdPlE9A47NRiOW5/hHeSyicX065RQBq6asJG2C4+hewcajneYMzpwEKqWPSYzyuA7ZzGPbbXHp6hn9A5dHksZ5pa134XXj16kti00kpe2/bPsrbApOt/SZQS7x0Yilo2b0163HB1sMJLlHSh3YtdqzXsvW1nA7v7zGlIN+7i9PnKEnL1qc/DtIaje3z7ts75F67doVWjk+sz48dcHgtOv5yIZaneEyadSWa2SSsJMr3SZlhxGkvhvTq04nzB2kq/dzb0t7jfVN6V+vb6/ynlzi5hyXCeVxxTV1QL32c0zsbOs56hRmy+cjRXckYunmI923z+R+ndMimEasxOu9+kSS/+SV8/YYrlPmZy7MynaN9QpWkQ+15THPRTbZFjd1rynTTEfbqZdH2nr7HpSz3Z3NoVOyT7KORS195aBxikUjadfR2YO7uvY1pg1Ina+VpSX62iHjtcfozEWDtv09FosFbdtL4SLE1ZaXuB4T/75qDx3s0derKS9xbUN4LZCTpONmD3C9j33lvqNDLcw1mYtrnMU5beEQ3+3QEvduBzkXhnz/qMmeCx+CpDZfMKybZgxyr7dLIhHXPoH5mHnt8tvG2PWwN7HLaGodY7cHC53Vp9uNP7/OpttTQW+exxwRFHJheZTByS/1hXsquMzGTK6TcbJ1EAodxXHLjmbffZhLCsIg79+4JZXqxtl5a9qZ2CbbmlI3ffy+68NPt2v7zravIgg7AauQgh53Qb29MTMka7aPcx7T5t/mM267OE9RjNNk66Q5n/U6ru3jLddTK+zNzR07Uxvauc29bjrG4+m/1/xK53EQ9OaOH3Nbbd9pnnfBf6tfPZLPlCLtdZ62xKUPXVJytcTjnr81krbPUv82O4/2xEa3utFrOwWNDhJuf3k/F4/HPW+uRS0rp5t+QQTZt/Z29Q/Pb/n+bSt0+ga/z3c7hvx2cz6z8kQty7PecBbZbduVRCKev835eNgtbB4CgVO0yv2aaW/PMAN89jc2twRbGW0PunrtO+d+dqaPlrKHV5fc94NXGrhkBKysn5qu3JiImEubyuwjOLe520CUvc2C3rQqiVh5TxmTjVuaLbeBdr9j1XzGPD/yMfCc/A7jS8KmwXGLViylrltmGyb5XOvvcKYP9vpue+KcVx2fSxuhrel+3BQ4+1lGxIVoxHI9t5M3vdvwG9PajR6viVpWRt35P58UDoXok9r9BfPcyJZ23ixG0PZI0AkBftvcawJ0Pvgde+YxYu7XXOuQMNGrvBQqGq1be9fr5pYzUnOup69Z/zTtTD9HLRXX+IApI31v6/bwKm7YdLth+91p741YrhPZw2xL8xjLdrx5Pf3eJiOqfwHqd3Mb5Xo+Bp3wL0lNrWls3b7Lq45ry7lqf+amrV7thLafG/lsCwVhN+/bMq5mM29G5qNPmdZezPJxXuMMyedDlidM+zof15CwWuJx3+tk2Ek3ZS43XcPsw1wjaNlKSyKex35bF/nmQ5AyuLWXstUJZrTlbNeknNvAIU/ttlZjQUqZjIzt8Zv8jr181C1eC5jy3ZcKU6/mKwqU13nk7GMF+a1h20lS9nOl0OONXnX3zixjWW7bI9s2CvtbnNk/spUjPQCDe/aksOerVxsoTNsrzHkSibiPs/p+Rlx67cPNGQ/7TXjyGkOQck+xm7b9XWo2v/2fuEfi9bnpT/jtwyDX8ohleY4dRSOZYxt+5SnEeBI6TnH22AEX9hh7cgKWoy5yuxFhV8JuYd9PdFlp5hxE84pcZDZ+cm2zWJayphmQpIde9g+/7TTfZWWh3+DBcXO8V9xla6MW+npwx7NvJ1P62fvSDMNrXpDsotqzxYOkMPK6+JtpWJwXPTu6xQMvve/5ueZ+/cnfXtPPn3gza1myOcgn/UN7c2vwtGWcaLNPB8cZdtkO4Z2ZFih4A8+Zd97puNkDkv/ec3QqioFbJBFbtnrAWT6vxpQ9wcjvhp9bVC+7rgo7KHLgpNRxZXdK7VXI5qoFM9JMSzyedmPB/C3OvkLQsKl+dYm5Gu3S3/0z+e/n3/oo0Gdn+/wjPFYTZVt15XZsfdCaIjdIqqBgK1vcj4OWeNw1NUNteSzQBCyz7OaxaV/b3H6beT00O1S/efbtQCsRvbazverk0Cmplf1uv2FQa7jkfcY3et4kiVhWwQZe1/ik/7TZK7PCDFQ5IybZ/E7lI30i2gRllmOWx2pn0++f+2/y387V+LmmynATiXjf0HRGpnLbzp9u3+nZ5imJWGkl3TdkCscNm91TX9qf7eXspZnHjj3YGKbOvvOF/0mSVjiiEmZLPetMu/vYK4nUUF71ormN3vvEPe23yXmj2Y/9nc50zVm/wzgkclkRa+4f53Gzxm3/xN0jlB06pa9rlINoxMpY6bcgYGo5SaoqDRfdaOHw7q7Hv9tjfuUwt+UgI4WjvSLTXKXolTrKyU79Z0f6XDC8WzJa8JdaU0PbEYrN9pabF9/5xLV2sfenW5RcM1qfyate/v5Dr0pKv/nevaZMESsRfSbgfMc0YSKWSInoc9kEja5h8zpPzGPN3P7Owd7PLxzsej212wdtudSai1i8UgdalpWxz7wm5EnBo15I8kyJ4ZSaVJ3bjw2bgjBreXyK4TYOYtpnXPbIf25jI5L/TSvzsDH3zwebMxcJ+Dmmtd3svJaevjBzRX82YfeXWzRNN27ntdcNXWcZcu0nm+M0v3r6rbTnLCvE4kGXbRI0jfW8AJEwna5zRB7OFq3Ia595bbdsu3h8n06eUQ0Pn9rXdTJdmJubZjsz2019r33kvPnnllrZZvezlo3yHzs0x2jMr/XqGzqjqknp9WPQCf+SkmnPTnCpR7y2rF8bOEh0Ckm67s4XXR//ZJt3m70Q/K775QEXpNltT3syW1uYx7PbMXhQ6xiQGXWmvizu2cc2rwPRLMf8uv9tSv57RM/M623YG+VmP3NqlqiFQT/abIe0lVc9Zbebg0SAMtnt6GE9apL75/SF2VOk2vIR1carjvXq79rtcbc+rx97fMetL2YyI3W5Re1y6lqdeT6GmVCZ7RjN9R6QX9pVN0tHel8Xgvjfx6lU3uP7dHLtN9nHr9dv8mvLeh0PfeqDH4P25dgcl5akE3zuU0nhF/q63SfzcrujvZUrr6hN0YjlGiXHL4JyWyZjrHakXLXbG267b9agrnmcmOVeOdoZNk7x6LudsiDz8WxlCjqJvrK1H3znC+9kfa3X+FHEslzryDCThU+eP8j1Ny0d2SPwAmcpMTYeNK1vxLI8o5TanOdVXNIHLgu//fqdbn34VBkyHwsS6c8s9odGH9O+R+E3FtvSEvesx5zbw7IszfNIrXrpXtnT6R40ubfn/otGLP3p+f9lPG62ccztH3Y8CcWNCVjYZexsSVSMZckIWM6Zqm6zpBP//9Pps/VdI/zn/hN7uYZYdA4CeIUeNG8O5to4sSQN7h4s1HkYg7tX66HzFqTdeLDLeLojfdntJ8/UAS4hyW3ZLvuFnpH7ybad2mtso+5ZM08vXrmH7jt7nm47MRVS2W3bP/aFRXrovAXq37VKz39xqX7sk9rDLL8z5G3qNel/982SGk9SWrhyr9nrfuFgn7t0qX56zNTk3w115Z5hLDuCXzSPfLvtxOm67+x5+uUJ0/Xz46frZ8cl9n/GTHXPBlXmY9VGatK/nDVXvzxhuh7/wqLE8XL0FF20YkTy+dG96vSn02frnjXzMm4SWR4TWtxYlqUHzp2fKpfH7rc/xi2qg+2h8xboYqOM84d1S9ZVYVeSmseVvQ9/esxU/fWc+RpqTKpxdo68Vuw4B6CcIXdfuHyZrt1/jJ51pI5wmxT3+9Nm6bELF6mzx43JbY4oKJfvM0qPf2GRvuqSvtFv/4zr00m3nzxT3ztyku5ZM0/Pf3Gpvn/UZP3p9FTaOHN7Jz/T5bPsyWJeKcxMT1y0SA+eu8D3NV4Dem4T9OoqYr4DEeYmMPtLbqu43epWM1y7M695kBQNi0e6D3r8svUcNycJuF1b/nT6HP31nPma1K/es8MXiQQ/B3536iw98YVF+u0pqdRIl+/j3qm6bO+RnhOyzRSq9nXX73gzn/v6oeM9Qxl7fca9Z88LdHxlY9aZP/5c6npTX1Xqeu3fYUReKI9F9ddz5if/zvXGolsKmGgkMwVPn/oKPXDufI0zUp9GLPd9PaBrlecAovO49koL48U878zf/PD5C/Tspe7pcCKWpePnDNTdZ811/awwVba9GtM5EearB4/TPWvmeqbkcab/sCNIebXhzJsswwKk5HG7sevF/k639A9+zMXcnSqDDTKZoh4DaJL7TWh70zhfu2B4d913zjzXz3emaxvqkZpKktaePift7+e/uCyZFjSI7x45yXWg0Xk87TGqZ9q13Gls7zo9duEi/f3SJWmTgMb16aT7zp6n7x2ZSofmNYhsumfNXF1/YOLG+4PnLdBD5y3Q4O41+vHRU3TPmnk6cFJvPXTeAj124SJJ0heWj8g4NzK41C92H7BHbXlGe9quP5wpWr3OtY9ao96a+7qhrlx/PWeBfnXSjIzr7dQB9Xru0qX65QmZKV7+79ipeuKiRcnBXS/PXbo07e+zA0zwLc/ymWtPn6OfHTdNz126VA+cO19/PmOO6+vMdBgX7Jm6lps/8541c/W5mf19r6dt6QN2rUmdw1VlJXrg3Pn65QnTM26sZgyK+nzm4VP76p41c3WYRwpak9eN/amOyazRZJvI/XO6uwyMmkUOuo382gxfMdq0fp+X7cZDkAlYx84eoPvOnqd/X7WHSxnd32NGLthqLKjJlpL11yfNSPvbbmc769yzWs8Nt8Unf/z87IzHpPBRAsw0qX7KY5nnoN93PX1xKmVSrhPVD5qUnwVYbhNdnOldJLnexDnGmKj59UPH+37P6QsH689nzNEBjnLbbU6vOsVrO3pGyHP5nPVX76nrDxyrh89foO615a4To245ZqoWj+zhOj5jXksOnNQ7YxGY1/ebv6mLy3Fqfu7vTp3l+ZlX7TvG87nfnTZLfz1nftaUmWn1j9lX96gerlo5Oq2/e9neI9MmLoS5CWhfcxe7LDD1qj/8rjHORVzfXpWZ9tXP2BBp67yEucyVx6J68qLFGRPpzt9jeOBoXHZ7o7HOf8L1xStG6OYjJuo/X1ru+ZpYlvHqaw8Yq3vWzNUNB6euMfMaWhSJWHr64sW69fhpeuSChfq7S/8m20SWZqNB0dnlnAg7fG7OA/x/x03TvWdntsNtzqJ5pVLvWZe/G5st8Xja99555hx947AJyTGGvcY2ek5wfv6LSzMem9Svs/56znz97rRZ+spBiT7eamPhirMe/snRU9JS9Dnbv2E8d1miPN6LmdyP5V+dmLimnzxvUFq7fqHLIpA9RqXOkav3G6N71szVyfPcJ2LY4ySlJRE9edFiPXXxYt/xrj+clhi3rXBpM4c5n7Md427tMa9Umf2M8Q63eunxLyxK/ts8tpeP6el7HXLj7EvubInrxSv30PeOnKTfnjJTPz9+um4/eabrog5nW9ROH+d3vrq1Lcb36aRzlgab2C6l6j3nuIy5AH3dFXvoJ0dP0YtXptqnX3EZ8/UzuHu1JrpMQHPzic+CDyn7Yn+73qwsLXHt50Yjlvp0zhwHm2iM2Tj3kdv1uLY8/Vz/1xXL9MW9R+qeNfPS+pqX7T0qLSjFN1rTS7vtv/5dq3TR8syx71x4jRHOb53gcu6yYbr7rLka4QiY4ZZu0e04PG+P1HHmd1/2ugPG6IXLl+nh8xfoida6cvvOzEm4zgUHae0oRzSsbi6TPIOOid5x6iydt2yYa5m/e+SkUBGwxvWu06MXLtKPj56ScTw4RSyv++apx56+eLEePj91j8JrEY5f3zUa8ZuAlfn4rcdP00Pn+d8XMe//j2hIjW3Z98H8FoS2xL3rdGfzLGJZaYsSTUtG9tBD5y1wnchqmzW4q5p8olBu2eFft0Rb22BPXLTItd+JXVfuLTOgnW1rHdPzioDl1rG1LwqWZWmZ0dAf3rMm64SJ8ljEe5WeUbmHzenuLFtbeH13n/pKDe5erb+/+VHrdyUed16QnTflMmRpQRR6ApZ90bYnNQx0XAjN3WMXtbqsJHkTvLY85rvy3xlG1PU1OUywy5ZrO/G5kjwCP9VVxjIaf85UKsnPsQo3+cmL2+SPfEZAMZWVRDWwW3XGvnfuL6/95HaOmMet88bkApeVMaMasw/gBQlp3K9LKhpBtihFfo22qrKStEkbw3rUJH9/W1ar2Pu1qqwkY+AmbbKZ0ldOmD8lW6qe6rISHRrg5pgkjW2dbOG1rZz71l5dmMuqP2dd6IxkEnRST5g6sbK0RH275NYMc1uQnG2FhNdK6PQIWK0pCEOGeM4WecHvM+1zPK2sLtVdeSyq/q0RPbwG/yKWpXjAXVBfVaruteXqbgxueEXiGN6z1vOaPbBrtV5699Pk94fRo7ZcG0JGifDqEIZl1pnmQGZdRSxQfdbfiK6Sa+2fbQDA1rW6TP26VOnxVzakvddtBbZleV8PohGrTdEazfKag2C9XQbQUgVK1J9DHNca++1h2pBeh1csGlHvzpWe1w23lV2Jx90/z9xEQc7tMDe7c71CtTVVbNqkYccP97sxZm47O2pTZWlmvR02TY05cVNKHFtuN0y8jo9YNOKe1sVRjt5ZJk1FI5Z6tt7oc36Xs14OwlxYYrYlqspKkm35Pkb7JRLJPDecml32vfkze3eu0CsfpELj28esV7vZya3O2b6zJbngwvn9/eorVVcZ07SBXbR4RHfds+695HO15TF1ryl3vV5MH1ivx1rrsDrHxPJ89AnNCYDOzze5XfOl9DrN3o9+53Y++4D9ulSpX5cqjetTpydeS2yjeNx7taoby7I0uHuNJvbtpJ8/8UbG83UVMX28NRERxesa4Zw8kZqI6ZFmzvVz0gfog/B7ndnezyUKQRgtcffzPq5EHbfT5Vw0zw9zYUS2mweZ/YzE/52/w/7Nbn1rr4mOhUpB6NY28p6AHFcX4+aM2+YIUkz/Cf3Z3x+W26XWvP7WlqfqFsvKfP2QHjUZN9Ls10re9YbndvSKgGVlnmcl0YjrAkuTfR1yj4CVKoO9QOC51rG0zNe696PcbpbEjGtRZ48J5HHFfScV2H2gbP18c3+Y7RLPlf8RS8ONCEXOPnSYCVh+vD7G7/c4rz9Bot6YOuLGVbeaMvXvkh59MmhkCin4mJ5lWdpjtP9inGxppaMRy3MxcJfqMs2sdkY7Nt/rX75cJq/4Mb+7tCTi2xd2fnbPWvfxkVwiW/bvUqnXPtyS8bizjzK8Z23aeSWlR3Q3mXVq2ncZ/ezB3WvSIkw665EwkX38dKspS55nXvvI65y1609nn9f58j71FRrTu053/jMRfSYW9T4OpfRta491fbLN+wb2GJ+Jl2GOuqwRsFyeH9u7k5576+PM1/rUxRWxqHoYY1Hm8eA1LuUno22lRF24tPVeWHksqkn9Oqt7bZne2bQt7bXOn2RHkQzbRxnUrTrU+eVV75nfW1EazTjOg/bzTP27VumZNz4K/T6n7h71is1cLNbDZUJtNGLJMorvtol7da5I20duYyHOMYzK0hJ9ziUTQyRiaVD3av2rNTphtjHfto67pD7H/XH74+36wnlNCXrMpS0k9umzDupWnXaf0IvzvDf/di6wKSvJbGMEvSdmL6Z0q2csy8q6iMX5+ljU0oJh3VVTHtMmn/oxEQHL7TNS/64pj6nGqIdyORK8JnpJ7vWwZVlp40Pdasr0viMKf7b7tb4RsOJxnwAI6e/L1jfrU1+pKpexwNT7Lc+2czwed60bnadbF5fJfdj1EQELu4z/tvZ17BsEznrxvx9tzXiPV4Oivip7heY34GBWmtnaBrUV7pVzYYYGU8yw6/Z2CJJKxlTX2nD0GsAo0PhmUrYbR+bFMpcJQGZnyG0GuxRsPzlXppgdsr71lcmbdibn4Ew2XpO6OmJwye0mr1uY57bolyXSmHMltDm4ld44zv7eXJkr+sJO1PMaRLQ7ktn268vvfZr8t1c6ubCChjiNK+7ZwA0ycSM046vM7fbGhswBMCloar9wutW4rRLLfJ0ZIaQhy+rVILy2ZnnMZeJJ6/+9Op/mcWLWfWbH3d6v2cZM0kMwB6uHwhyb2QZtvCaF+OWbD1Ie7/s/3se1GRXRbeW7n8rSaEE7WNlWULtpifvfBHKTewSszOug24CvfWNuu3Fzt099pWsbrzQa8dymQUOTezGPGb+by14DpgONwXSvFHdBxdIWAqT/38n5HfafXoPrFcb5HOQmSQ+XVbRe15MnX9uY9fNs5rXa7fNqQtT1Zj3nPF7d6oLy1kE184aH34C/WxvA77QIOrDY0+ccdhv4c5YjW/1iDiBlSxdhfnKh2/8mt/5YWpvYURb7eHRuY3OilKmPSxRCMxW58/hOH4xN/46ymB2lOVOvTt7t2iBVqN9gXxhebaQeLjcT/K7bzutlmOtNpwr3a2VPIxpqSTSScZwF2U5eEfLM9mN9wCh6dv23xWMlfLa+StCbzM5JD3afpmt1qXwO9TTZ6hS3vqiTZxso7n0zxrzebTdSOtlphbw42412+b2OuSE9Mm9ee/3mXFNGujH7t26RXDwjN8X9/5baPokxl0WA2SZVux3TZp1h9r0GhBjLSKXzzH5T37wWNXmkwDO3nV90RufxZPezd7qMZaS1qyz/rWt+/2sfbnZ9jR0hz2x7eh2adRWxQBPesx0zH3yaGuszX/vXF92vf4nXeX++WTc5+zhhJjp6vdJv7MH5+WH7Gl6T3QrtH2+nT8DI5TyvzTLZzC06+ABHnZs2STHgvqryuUyY2z/bts32fWEndIQZX3KOsZltOLM+r68qTbYlg6Y27+dR5wW5V97W49HcYkEmnuTSTjev2177sH/INPDOPnHf+krfdrSTW6Rwv4WqfkJFwMphA8YVd41AE+aTzK99a+PWjMfC2tbkvuLbdRKE49FkMIOQ39m9tsx18YyXJ179MOQ3JLzz8bbsL3IIE7XbT5i08G7b76GXP0h73G7qmO0tZ3vMbbw1aN0luU9G9TrOw0549lLhMUacOVEw+1HmNqaRNqbts287uVwz/TIoJV9jfP5d/3w3+W/LslzHS2s8JtR68brHFyYClsleVF5f5V6OiGW5ti/86uGw9y2lxP781383pT2WzGQVoCJ2SyFtvs/t/POrs+urSrMGQPD6201jJ+/zP2JZnguE4nIf22vneBroIEzAwi6jc2ufJRmyz1ExvuDo7EqZF9AbDh6ngyb11r7js4fhb2r2rgbNAZJsbcts4Und0mUFZbYxbjo8PSy32dm0bzy98r77AJGXFa05yp0dJ7sh1ZYV29cfOFaHTumjm4/wDid+YYjQp34T5sz0kyaz+GaI2/TXZP+N5y7LDLG7oDWs6u0nz9R5Ls9fsXJ01s8NUg5nw2/F2AbdfvJM19fazMbJzBxSGzr7vAO6VukYl5UWQc0Y2EU/+lwizc2swV2019iGZAobL3s6Vv3Zx6qT23ZbPqZBh07poy9n+Y5sVoxp0CGTE5/jNgHtKEeudUn60n5jtGpaX80d4h4O3R7oHNqjWsfNHqAzjLShZkPzsVdSHVWz3e42IeFgj2Pb9pWDxmnvcY06KMuqYZsly3NQJq5E6hrJ/fe31R0+qRtso3vV6phZA3TZ3ukpZC9eMULHzxmgq/dLnHv/79hpgb936SiXdApGR/Gnx0zVPuMadf6yVDqf/zt2asZ7bN8x0ij8/Pjp2ntco77nqKf89tvAbtUZDXu7s+C1kjLt5rlxzLitHHJ2YOYP8w7HHItG1NipQifOG6hTF6SHj9/TSEHpPBf/7+jJ8uIWNt7kFbHGsjLL7pWixmvFkSuXy8s1+4/R4dP66oI9hidvbO7nk9LXdNneI3X0rP4a06tOK8Y0ZA0X7cdMt/TTY6ZqxdgGXXfAGK0Y06BbQhzjtnhc6u4y4dBv8C/XCIjX7D9Ge41t0G0nztBpCwbr3GXDXAcz7ONy45ZUZ/yyvd3TRXarKdNKjzbeoG5VbZokGvRmk5lC2Kwnvmqk+bBXtrl9op2Gy+8aZYbdT0W0yj75MvF3+v+dzDZftkGInrXlOnBSbx04qbduPGR88nGvst/21JvJf2ebZP8LI8XbMbMGaL8JvdLajFmjuBrMfbfdkb7W7aanfYPhfy6LO/IhYrkPuv3k6FTa7M6VMZ2xeEjGa2yuKTxb99d3Vk3U/hN66WgjZYkbc/LR8XMHas/RPQOllC10BNxsGnyO0WONdFlBHD/X//XO9GTpk5nTX2tHPHDbPhetGKG9xzW6tz2Meun0hanv+/5RqeukWzrQTpUxrRjboN+flr1tZBvTq861jXT6oiFaOb5RP1yd+k6/GxXOCYA3Hup/3Hy+9XeNaKjNSE9ts9uN/bpUug6WBqm+Fw3vrsOm9tW1+4/RhUaKRfO6sHSU+/c7P9/+9v953OS54eDxmju0m/rUV+jHreeuWeSgp8lZjhSUtx4/XSvGNOjnx09Pi74V5Ly79Tj36/7UAfVaPaOfrljpfu2U3K/9UuIab24aux0tpZ9vZl/8ttZ0RIdNde9buNVfkveEphNc0jd5bY2gURnNFCtmapZr9k+lgrtkr9Rr9hrbqEMcfaWg0QPc2h5eu/Pa1u832xJ+zNRW3ztykvYZ16gzPa4dD523UJK0nyP17h2nztKKsQ2u9f+kvp11+LS+umSvkXr2jdQk6i/t750yT5JOc0nt6JmSxKhqrtkv1X4w01p6fc4X9vQeL/r9abO0YkyD9p/YS6cvGpK8gec2bGROlLIs//PXbFM86xFN47etfVazjeF1Di8Z2TPQjWGz/3Xr8enn+mFT+6TdWDM/7r+OOswrsp79r1uPm6a9xzXqkr1S14mfO9LuPnnR4uQNNb/26pmLh3imRDt29gDdfvIM1+ecfT2vSaC/OcV93GvW4K46eHJvXbR8hKb0T7QXzTaWm1uOmar9J/ZKngdueyvbefnQyx+k/e13HP1w9eSMqPdSYnzuiOl9M9oYdRUx7Tu+UcuNca/ftZ67zrFg873ZJpN89aBxOnBiL03s6neRTT03b1g3HTG9b9q1wJQtG0Cpo442U3N+M0AbVJJnKrG5Q7pp1bS+Wji8u/Yd36iT5g3Slw8cq/0n9NJdZyZSM/fqVKGZg7rot6fO1IoxDfrR5/yPC9t1B4zVirENGSl0g/Qt3VLxhVFVVqKzFg/V6YuGBFpM+vvTZmvFmAbf49VeRHz7yTO1YmyDbjh4fNrzZhvKdtW+o7XPuEb9OMs2+/HRU7TPuEataU1FZ3/Hlw8cl1Z/mtfQU+anjyOtGNuQ1ne25RqZL8ykZa9zxi/tXTwu/eqkzPooTJfJrI/tCIw/WD1ZK8b6R7wLzaVQzofsfRO0/AdO6q2V4xt1yvxB2polzZbdRpS8F8hk43b/L5ug7cNsQz7OvqH5+iDjRc0tcdco22N61enoWf112d4jdfGK1PX3+DkDNMSIovfbUxLnU7a00KbPt/bz7PsuUnqbYtqA+uQY9b4TeumgSb31tUPSj/fvhEwF3LdLpU6aN0ifm9lfK8Y2aOX4Rq2e0S95TU6Ww9hkZvo704EuKbmzLUQ/f4/hOnHeQNcoe+6LaByTcTzT6GXeh5O8072bqYlvMepkZ8RYu48WdGzVOc5z/p7DtXxMT32jdb999cD0dnrEStx7C+L3pyXaFjcfkX6PYkr/zsn0ut09JtFXlEbTFrNJ0m9PSVznnfWJW19hW5P/JNtTFgzWvuMb08ZJ3Cbgff3Q8dp/Qi8dMb2fdyRYy/l34gFnm8p04Z6JMR23+z2WJU3s21mrprlnfbGztpgKEcMAxYcUhNhl2HWS18oTt8gGzgvm/hN7a/+J/pMRbH7RS7xSNrjxvKHb+vABk3pr1uCumn7NvYHK5fXZzka5WyUe5sbj3uMaPTsei0a0PczxwZP7ZA0THyaaiN+EuWWjeurq/Ubrot++kPa4+ftKo15RvoLMgM68ifjjo1MX474ux6zZWDln6dCM54MyO62LR/TwbSjYetSUJQfivnrwOM245r5Q3+k85m88ZHzWCRMLhnXT/f9+3/W5sX3qtHB4D7127YrAZXAem14TMtyO4WjE0rUHtG3ylf051/kMOLrlhj7coyHmZFmWLt5rpLbuaNbX731ZkvdNxWwrHK8/cJxue+otz++yb54H5TbJxRaPJ8Kkh9mX9mcG0SVAGH/LsnSp48aiJB03J3WDYtW0cJPDskXOmTe0W8YAqlc4dee2mTGoi2a0ToTsWVueDDXd2KkiI/SuKeNGobEN5w/rpr86zrf0dB3unVW74+K8oeS8UWM+bw+yXth6A+T7D72qHTsTnSavFAGHDmzW9IH1rs/Zykoi2r7TvfPlNbARsayMso/u5R6K3q1uDzOl4LCpfXVY67//8cVlGc/PG9pND7zkXucdbUxYjVrS819cpv4X/CnEt6dcs/+YtJuF9nF4yJRgdY2XkQ21yTDlWeXYaexeW65vtV6zpg7wPh7s+t0c6OhSVaq3NrpHwfMa+G9rmq+gk07MNBPmWyb0TQ02JVMQunzmPq0TBQ6a3EcX/fYF7Wid9WwGgjDbHdkmVDkjPcR9vtssWxCPfWGRpMwBaa8oYOap+90jJ2nFNx72/GwzRXBFaVRfMyZ4SeH2p1nPOcO6+92YiuWQ3kBKrLTza3JblqX9JvTSL40JaVJ6GpFvHT7Rc0Kt/Rle9hzToD09JqZL0pDu1bp7zby0x7rXlOs7R7gvWHBKnAsdN1pknuLOm4xhI8N2yRIVOTNiVOp3m3WC2a73ir7qdWPR3JIrxjbqG/etl5S4Se7Xnjpsal+dv0fmDTI/Xm2kmvKYvu6YRBVmol22CZVnLx2ms5dmLkgxxaKR0O1Hp0jESrsmXvPnFyUl9mO2z3YOeCej9njcsGnsVJE2kJ5RlgDb74erJ2esNB/ao0Y3td7k+IeRzibIHOCZg7sqGslMf2BZli73WfzjddNAkhRPb3OumtbPtR1trti2J7ok0rin13NlJRHP+succDZnSGoRW7bz1BR0srTZp9h/Yi/960+JNs8Yo91ofq/d7zPrbb8FKX5/S951+KFT+wZK126/fdW0fvrug69IkuYO7aalo3rqx4+86vqennXlrufB+D6dPMcQIhFLX9ovcU6d8Ytnk4831vmf8yfPH6Rv3b8+raxBIvGYq8P71ldm3MSR0s8Fv0iPoxrrkueSyW0yT1qkKsvyPX/T+07ur7PbQWa0Gq/2RtBoK+bLZg5KnR/7jm/UNfuP1d3/ujvQZ3pFurVPv5mDu2qmYxHpUEe64M5Vpfr3VXv6lvfUBYN05mLvca5EOqz65DE54pI7tbU1YktGBCyPz3CLwiolfv/1Bybapse7TOB0mtK/s+YO7aa5LhOibJ+b2d91wpTze8361+8ysGhEDy0a0SOjD2hZlq7ad4yu2ndM8rkbDxmvfSdkLvQZ53HupvX1s1yLDpjUW/uM7aG1a1/3fZ35eVftm6gTnOOrifL7vz+uxFi7PbnZjHC497hG3XT/+rTz3q09Pb5PZ9dUYpGIpav3S7/pfNDkPsmFhmb951U/eOlZV+66rYP0m8JGy3djL8p4+d3MOtFpdK/gv21Sv86ui1pOnDco2Yay1VXEAi3UWDCsuxYYfRrzO9LSwhsHy8Lh3fXtv/5HUiJamdc1Keeb1Vl2gTle7VX/j/NJcRhXYrFEbXlJWhqwMG1p8zCx2wgLh/fQwuE99KfncxsrcuNWImcx7XIHnbi2cHj35OTQbOeEOe6T66mRS5SyoNHQ/T571bS+aZOK5w3tpp8eMzVZVwf9DnN7299nWVbaIkOzvrr96dR4/oS+nXXT4ZnnrJ9a135e6t/fXjUx2Z6KRSP6cuvYzlm/fE6StHhEd9+xBS8XuEzkzGBsjN6d3RdouN7vtcznM/fZyY5JnWlcjlHnV3hdOyMuEbDqKmKekcNOmT9Ya/+RSLs6y2hbmcfZpH6dddSM/t7lNXj1Z3t1qtC3V01SU1OT1q6T9hnXoHF967X4hgcktUZ3DVgfje3t3rYwJ5kO61mTkWXJLfjFD46arJGNiclmzm8/ModF+9VlJRkLv9xO2ZXje2nl+F6ezyced0y6a/1zxdgG/ekfPZP7zdTZZ0xHSmznq/cbo589/kbGc15R4bD7IwIWdjl2heisP91DSObe0fFrdJkX4jDhVb3k2uj0+31uk63ChLKM+aWdaKeV72Ea1W6h5E1uZU6fuOL1vsBF8OS2L8zf1pY0gpG0Dmz492QbkHHjHLQMsp/8Gnr5CgXspj3T5Dhlm7kfhHnTxzx/vSbT5BqSOwzL8t6u+coXbzI/sqOjbpgKURTndt283X3lt+S/rbMNqpjb0ZyMYHdcnYOEznM8rbPr6Hyag85eNy2DHKV+R5LXwEbEshRtw8o2r3oql6O6iA7VUOz0Ms7f7Nd8KPQ0DHtClTlg61fX+W37tpQ1l33q9Ra/FIRmm8Ec3DEfN9+WHCD1KKDfBHW/snmVLwjPFYMuEz7bg9nWcbaF/doguaatTExPyrZAI6eP9hV0xWRb+y4dXb95tYFyWRUftl2R1iYxjmdzAPLDzTtCl8NmphjOtlK74LshxBcU5Hh2RhFqQw0e5J1eE9tzbXsG6R9l+2yzegpajFz6Pn51QtCt7tYudXuv1+R6Kb2uNutft23p1Q72WpTj5LXtzfMu18uUs2jOib+J78/ts232293OixwDhGRl/i639nbc49/JFJMe29y8wWveRPM6h8z2TtCIFia3Yydtv1v+51vaBCxH5Cwn58SutvC7GdhagkDf5XXstXWhQub3hPs8t6jMNq/zPV9jPW6TDJzFD5ImMkxqxjDC7pq0fn+em9u5THwwtbTEPdNlSpkTBN3quHy3Odqy31ri8XaNYJG3r+qgsBtmnZnexgk2rp3reGO2Pey1QDHtM/zGGFqL5SydXz241ZEiMG0btFM32e7LeE1ECHqumfulPQ6tXCY17nCMH3nGSvD50Vs8InPanNcJz/FFj/6kl0IcD2YZsrWdC7lPc61+zfHAsNclt5/jdQ5kvC6SmQrWa2J75ncEelnemMfj23mO7O52bLu1k7zuQ0jBhxqyvS5b+9U7U4DjdY5MH2Flu0a4n8eEwPosYAIWdhmpFfvp/7ft7bJysy2dQ7/3mhfbrgEisri95gAzEpdPMd2i3tihJu0w+GNcInwc5PKc2UBxS5snJdJ3SdKBWdKW5ZMz9KYtyKCNHa51RpZUettd8p9v3JK6QeIZEj9AGXLJkW1e2L0aa/ZqZDscs1suYfO7DwuwWlZKpW6qKS9Rp8rgUcZsznCtQTpldghOtxXy+VgRFtTiPERvC+qnf3utzZ9hDgaZkwzN9C3vbkqlFbjj2bddP2dYD/doTLmwLCst9Uy3mrLkfnWmhgzKmd7FDNl6/4upsNTmwPOCYf4rUAutEEftqUbqoSUje2i7zySTNY6UNWE6HeY595tnUseM3fF2diidA/7m+zc4bjSfbUT0W+aR5ifQjSGf1/jdbDHPGTMy5NmO7eWagtDjM4e7pH7Kxo4OYaeTywczGkShBYmYmWwvhIigl4vVMzNXRg3sWq1PjNWldjjtI6b3c71ue6VBysZMqxnmxpSdzsgZddVus9ir35znsSTNNlLUmu0Dr/PGrVRmeqfGTunRAbLtWbs9PbBrVXLVmBnVKwivttMlRjh98xwc35oGw3bivOzRCrxUubSVzDrLeWg72yBjjdXNVaW5B4teOtK9/rPZx4ZX/WI+fvyczL6AU3VZiToHbNOFmahkr/Y2o9a6TaDwixrRFme1Rs/43Mz+yUG9KUa92tYbxvaKzKDMGwxex/lPQrb/zGPSXJThjOY3zREpMNc2V1Bu55KXQkyQdx6mzpQfYTjPe7N/bfevDnVcJ+xjy6yfsg2wH97aF5vQt5PrIPvAbulRkc2Ubm7MevLp1zcmP9tPmDQ79m/zi0o9vGdNMlrzkdO9Vyq73RSdMziz3eJ3PXnJiOyRLY1VN4/UF9lupNufO2WAez1SbvRxcj2uP78w/Vh1jYCVp56EmTrS/m3ZovTkyoyUlm0Rl7nK245qbp7T5jnoFglCSh/b8Erh5RVt1499XTl0Suq4N6+fW3e0+F5bzDJmG29Mm2xgvNSZgieIaQO7yLISKbVNqbK6X5/GOdpYXlFyRzd6R3eRpL1CpsHy24bOc0RKn9SXsV09mi1B0rH5md1aRx3l0tcwI9dKwSZ3Om/YBTnP7XPhdJdtkqu+9ZWqiEXVtbo0L4sdzerd3K/mWOSswam+mOkYI/KzlGgv+i0OOXleou9ln59uXVK3sf+wx6fp4hXeqUyzaYlL01ojezvHUILwu6668Yoy7OWI6e7ne9hbvl7ppsLyioBlnvJ+7T331GGZxjqiVU3Pknor4lEuU0OWyI+SMjas130X1zIYX/vRlqa0547zyIbgl7llvsd4qfnzTmqNEOj8yW9tDDZZw96fE9MifQc/uq7ZP5VRwhl1308u4/q3OiLSXO+RFcPeJqcvykznvK31vpIdxcvOcGGPhzmjPrpFvOnVqSKtvxck88vUAYnjN1vbOIz6qlJVl5WotrzE9V6TlGqrBL3XlAv7Gmimiw/il0+mItKGvc65jXU6o2We7FEPRSwro6/hl9XGrLNyHbcIct/ZTVsnTPuxr13mmJX9+8zrlNn2P8oR8crcHnY73y1qmluUxjCcm8E+X/0m3b1j3KNaPKKH6+cuG5X+uHkcOuuPwd2qXa8thVo0g+JCCkLsMuw6ySsUqttNzraMBfsNKpmNc3OQzssD5y7QqMvukiQtGt5dF+81UgO6uqdSdFo1ra9++HAijPx+E3rplPmDkgNNs4d01f3nzM+4uSYlbu7df858zwa5M8e67dcnzdT/Pt7mWz7zovT3S5do09ad+tb9LyfTnL145R6+v+mJ1pQ1tt+ekvjOBV/5q+/73Dx64SJt3LxDfer9O2KdszRqPfe38XBtuXuVmW0w3q2RFbWyd/BuOHicTl80OLm/n7hosT7askNzrr8/ORBhNsAXeAxMmh48d4H6dqnUQ+ctUOeqUpWWRPTUxYslJRoLv37mLa3OEga0xpESJ8jg9KIRPXTf2fMUi0Y05/r7057LJQpXUGaki3vWzAvcYc/Fi1fuoT89/z+d/avnJEmbtjZleUd25rHTZPyWUcYNQ3MA64NP0yfDPP/FpZKkm1ZN0OIbHmxzeaTEKRGNWHr64sVqjsdVHovq7rPm6b1PtnmmiM1mREONXng7le7MTBdoTrIwD5Ufrp6igV9Ym9P35WLW4C56ZP2HOb//8wsH67jZ/pMKDp/aV2N7dVJ1eYkGdK1yjexnDxCeMHegXvtws37+RKLj6Ray3JS+8iT170+3p7av3ZF0TjpwdtzMv0Y5bl6fPG+QZg/uqtrymPp7XEeCjMn4RbowB7fP22OYrr/z38lymfXRKmOg4LSFg/XEaxv00MsfSAo38dMvvYmXJSN76N6z56mPRxhtp/VX76l71r2nslhEExw3Sl68cg899PIH7TqBNIgg7YV8VO9zhmQOHtZVxtRkTAL56TFT9ebGLRrUrdp1comdKiPs6r1zlg7TTfcn0iGEuVb95hT3beNssxw5vZ8u/8O/ks9fd8CYtPeYq8i8IlO5XYOPNerQSsf5nG1y3aR+nfXXc+arZ125ymPR5L+HX3Jn8jXzh3XLCGNvMk+vK/cdrUvuSKQo2Wtc6uaI+dsu3HO46qtKNbBbtV55/9OcbqjaLthzuC753T8lJSYqfNeRVs88PtwWAJghxYNEO3BjWYmJPacvGqJvtKYRtj17yRJJiYFbt3b6c5ct1ZYdO9PqnQv3HKGDJ/dRZVlJchKf031nzwscUTXMBKzbTpqhtzdu1UBjn3StLk22N/7v2Knq1aki2E2JHJy+aLCWj+mpQd2qdfbSodq0bWdaCs62RC347SkzQ9+8TY/KmfNXOz7TiHrnE03l/46dpjc3blFjXUWb2lxBZbvZ/OfPz9Se3/ybpMJEwDLrvHvWzG1TveBsU6wc35jsXz976ZKMY9xkpri6cuUo19fYFgzvrvvOnqdenSv0K5f03z9aPUXzjf5utujU5nXHjpTwixOma9jFd3q9JdS++OWJ031/u5RoA526YLCWjerpuw92utxQ79+1SiMaarXOSGnsdxNh287Ugikzvf3Olsz2sLM/anNO0r//nPla9NW/Jge4n75ksTZt25l2c8B8R60xoSDXw9q5gM6trmhz/dG6oytKo3riokUqiUSSbdvB3au1aHh33WssYskH8waI23FmPmT3FVviqYml5qS5C40bmyi+oQAAiDVJREFULOb7zOiYc4d2031nz9OO5hb1d9R3z16yRDuaW3JaCHfC3IFaNKK7BnRNHc/mtbU5HvfdP2YZs12DzHPY7E/98oQZ+utL76VNCvjqQeOS4whuBnSt0l/PmZ+xgM7+ihaP69PqGf205s2Pkn8vcowZPXfZUm3evtNzUqPtm4dN0H4TemlalokMtvF9Mid0PXfZUj37xsa0lMs2c0s6b6Z69QvLAozFemmsK9ePj56iNzZsca3betSW69cnzdCBNz8qKVg/IDP6SfZyXLR8hA6d0if0Ygc/NeUx3X/OfMWiVl4WO3pdqf52wUK9+sFmda0uU6fKmF7/cIuG9kj/HRevGKHDpvZRQ6cK13FbZz9mj9E9dfdZc5PjCG7fPb5PJy0e0UP3rHs3+di1HpMpglg9s79mDOqqO/7+tr7TmgbP5JUOT0q04Xp3rtTD5y/IqT66fJ9R+r/HXg/8+qqyEk3tX68nXtsQ6PVX7DNaq2f015KvpY8Fhj0q/nrufNfHve4reCnxiG5pHgd+k9JqymN6/AuLVBqN6Nk3N+qYnzzl+rqfHTdNb3+0Vb07V+qjLTs8U5ulvj/1b7P5e9zsAfpBa3vRTD3302OmavWPnjA+wY4YkHrk1uOnpaWLzcbcBhMdE0C/sHyE7n3xPb36wea0x39zysy0v+cN7aYHXkqkUhzc3X2Rj7nv7YW9zvNwy46dro87PXPpEn3i6JsFWcj31MWL9e93PklLyXbDweO019iGrJPlJGmIx28L6vMLB+ugyX3U2KlCq37weNpzdjCDsxYP0dwhXbVjZ4sOb32Nfcz+v2On6a2NW5Lt5+sOGKuT5g3MuJaYbaEpV98jKXFfz62N5KdXp4qc6xgv5bGo7jt7nizL8oz287Pjpqf9zkJYMaZBQ86sUf+u4e7VmOPYzuvckCzXU+cRunJ8oyb27ayHzlug2oqY3v9km2efJ2Klp/I7ad4g34Usdp2VywRd28PnL9SGzTvS6qAgco3mbtp/Qi/9xmWh/5KRiXt8nStLNeHKRApse6t0rSlLRtwyx51mDu6aNj5mVi/fXjVRb3+0VVWlJbrWkf62MeTE468fOj7tb+f9keta2wuZE7BSfw/vWaPHX01cZxd5jMPfdPhEvfbhFtVWlKT1w6RE/bH32AZ1rS7T9p0tqquM6b1Ptrl+DnZ/TMDCLsOusu2KMzNUYOZ72rIaN2hHNcgtDPMiGYtGMm7IuQ1Y2sxOyc6WuIY4Itn43fh0Pue1cslUHotmnRxmbptOlaXqVFma1iDza0AO71mj7rXpN5uCfKeX6rISVQdohLjdbDIHzLy2h3kMeQ305sI8vLxTIETSOk32b7WUOu7Czmjv2zoByRz46Grc5HOLuJZN0DIM7Fat9zZlNjjyuIgjg3lu5XNQy015LBpoElyuzMk43n3a1BPzh3VTbesxm89UT/a5Yt4criiNtulGoHMlj3luekWbaM/IaVLmJIawl5f+XapUV+lfh1iWpTHGaj23KCP2hE/Lsjw7hW5FMycte6Vftbe7M62I8xw394lzVZdlWRrbu5NruZLv9302wW+CgDm4bUZ3s6z0Y8eZ/mRI95rkBCy3QfR830AOc7O4JBpJi2xnKo9FtWSk+6qbjhTk2l3IcOVmGPnSkkhye7tVDfYxHLY4QdMhOHltG2ebxXluzRiYPkhr1t3pp4Tl+s9cyurGnDzpNpGyoa7CdwDQrGMqjTrC/D3mb4+VRJLtW2c7Nyzz2jBvaLeMNqeZastM92Yz67Tc+xGJ9zmjfnaqjKUtCHA7RuoqYhnbNhKxsm4X5+/045YOy0tZSTRj0NXcj3UVsbwOykas9GPdslK/vaY8lrkIIMeDvaasJCO6RRDmlitE1Cfz+uusP816rtCTr4IwJ6oUYluYP9/rJlLgz3JGvjPK63aMm8L2tQYmr0WZ73OuMM+2iMftu9sy4cDts4Kcv+Z56MUr4sGInjVpE7CCtgvS02UHe4+Uvs1GNtRqQNcqRSOWWlr7hG71iMm8QZJLWlMpc1zBfWFE/s4ZMwqWrW8BFh35RZN041zAYLbfvSZ4OifQeR2f2RbX+bEsK6NOMfsF8XjcP4WfUfRs9YP5WmfKoYXD09v2nauyjzW51f12Ecxz0K9czp/m1u5wf5+lRR5RANy4bcO6ipjr5Csn53FQiP5ENJq46ezXXzNv+gW5FORyszNIGy8XPX0i44Tltf2ryko02si4MMwlqqv5+9zGbZ2HifN643VtGeC4WZ/rogn7O4f1rPGclOR3PtnlyzbBx0su7dhskyWdn+92fIU9pZxjYTa3CD9+Yo50r6l/m2Pz/p9hT4z3u47WlMc0vGeiXgtyv8ArBaFbul0pc3F2MmOL8Vi2yVcZ97TMaJyOPmokYmlA16qMCVjOgABekYzSvzfzPojzV9qLfLPti9ryWHLM2Rbk2OpaXaaug9OP4zDXGLNcpSUR7fBJb+3GXoAzyyVSq/3ZlmVpsiPQg729Sksiae2TaCSzXWFztoXszw+7yDPXOsZPtvED5+8sBLv+DcvvHkdllnPeeVmxr5f2fTL/ca70v4d0r87apu8RYpzGTXksGnoSkpSftMh+16iB3aqTUeHS3mO8xdmXMqO4mp9cHotqULdq/TcPqRKdx4ZzAZ1dxzubbGYdbPZTvBZMJe7ZetyTcek7ux0nQSasYtdX1CkIm5ubdckll2jAgAGqqKjQoEGDdOWVV6YdnPF4XJdeeqkaGhpUUVGhxYsX6+WXX/b5VOyqnA1aZ7XldvFd/96nOX9f0JsTYS+kztQDkv9F0bwA/OG5/4b6rkJxi6oVNMxs3yyRqkxt6UQ7OTsFUvrFzzsFofn63L7b7YJqNmLqAwy2mcwLfCEGV8MK06ZzO0q65hBdxs8//5sa5G/v7WMeR92y1A1BBgJM5go/83z7/XOp1QjmZ5oNXXOiQk3I720Pzhv85nb0Ws0rpW5c9W+H/dzW2ihoZBKTW8rOIOVwq6vMS6R5Xelh3LSxOxl+KQel9IlhuUyeDXK58BsMN6/35nYtiUbSjh1nZ8+8drnV+WHPyd2Zc3WyX3h7U76iDNqRKfxSYHmlW/MbAPG63to3XP3KX5vHFYe2zJu06c+bbUbz31aWtolfypN8dPF//fSbvs+bZTKjSpinXZgIErlyq2vM9r1bhDrz5lmu+9wlG5AkZZ2cWijOqFnZou5k47ViPVdm32BYz3ApAZ8zono4+a00deuPBWGmYAn607NdW8y9YUb9aMtK2fZgdtMKcQY3tHGw2k+Y671ZPYU5ddyuN872VLZxhGhafzFYf8lt8n5YA1vbdmHqZq8oeM4bBr1c2rY289plnl9uk2W9mOeQHSU8Wz3VxYjKZU6Ka8pTXohuLn1dZxq5bJz1uDMCrVPPApw/6ROorIxUWNm2ljNyk82cGF2o9kA2zsllfuem2X7ZaKRid0bpktL7KdmOw1wjW9ifa96I92sL5yv9ZTZhFy+a555zIpNZZ/eozc/Ykdv+8hXgou/sR+RromU+o57koqosfxN/nbJtoX4e48fOSUj5WHBo1kVmJK/aCu82Q+9O7T8em4/JdUGidNup0Tr7LCKsD5kay6sPUVkWrP4y5XPsJj0dYurfXm1R53fbYydhznnnK823urWp3MZj/CK4BP1eN/Yxn0sN1h71lfk7g06+Mu+jmO8J08bMhyApB5GdX5XvNo5uyoiqGaK57zzH8jFGaLanvcY4c5GP62K2cWC3Ot3cQtWO/ouZ2s9tMUY+onY59695L81tAqotbQKW8bu8siGF5dbFIQXhZ0NRj+pdd911+s53vqNvfetbWrduna677jpdf/31+uY3v5l8zfXXX69vfOMbuvnmm/X444+rqqpKy5Yt07ZthHXb3aRSECb+72xX5ju37cYtO3yf/8FRk7VyfKNOW+idn9z5+r3GNuh4Iy2MrXttuU7zyi/cQYNQTrMGp8LAnjI/s6zZclH/4oTp2mtsg67ab3Sg7+tTX5FT2icvC10iE5kRhczNfOMh443H3S/AbWUpkWrosKl9tGSke9QTL987crJWjG3QHz8/W5fvM0p7j2vUrcdPy3jd1w8drwMn9dYhPuFQ88Gtk5kt5KvtoEm9dUBr/uV8eXj9B8l/33DwOK0Y25ARmrlQzGPk8x7ntO3XJ8/QijENumfNXB05vZ+u2tf/3Hjp3dSEUrONZqYgPMII122mkdu6I7Uq4bentm1bFKJKunjFyLS/o2mD4N6ree84ZZZWjGnQjz43Jf+Fcsg8zMNtiFyuUdfsP0Yrxjbo1yfNcC2I98TXzO9KH1RKPW6me0xGwHKU1S/lwoXLR3g+5yVIH+P7R03WijGJes7JXBXdtbpMZywaojVLhiYiBPqU9ZjWCH+9O1ek3RC5bO+ROnpWf413pP6TpJ8cXfhjq9BuO3GG9hrbkP2FSkUUu3rf0dprbEMyVdAdp84K9P4rVga7xmdzy7FTtWJMg359snd9dfi0vtp/Qi/ftBBSetqIvcc26uDJvfXVg8alveaOU2dpxdgG/dilLrly39E6cno/zRwULOVKWzjPvS8fmCrn945MpdKLZ7lZ6Tf26rXA4Eefmxy0mGnXHTdmfTOwW7VOmjdIF+w53HPie65t+BsOTmwfc9tkW0Ft1puX7p249swbmkpzGTNuAE7p3zn575M9Umxc4ZKSzP5aZx193rJhrp/RVtki5P36pJlaMSZVBwRdNOHFa0Jvrsx69mfHZbZnc+XWt/pd67n+rSz1hpdTjM8M+tt/ZV7DXZi7o6I0qnOWDtXnFw4OFdWsUL5x2AStHN+ofcc36muHpNeb5vlciLHD0xcP0crxjaHqJi/OxTD9u1Yl66Vs0n5niB+6dGRPHTa1j647YIxOnDdQF+45POOYOTBLH8h8/b7jG5P/nmGkZ7ls7/Q2dD788HNTtGJMg353WrBrvySdvXSo9hnXmNFuctadzja/F/Oy4FxBbNb5Tma0itMWDkk8luUas9fYRh0yuY++fODYtGuqWypwp6t9xjZuOnyi9p/QS0fOSPXPcq2DvrTfmLS/z1w0xPf1q2f2D9RGCqOytERnL0nUT12ry/TTY6amXVuyGde7TsfMGqBL90o/BswFE/ke08tFXHEdO3uA9pvQy/V5s4jmhMIvHzRWK8Y26PaTU3V+bXlMZy0eqtMXDckaCXli385aNa2v72vc2NWE10JHZ71VgICFab6490h9bmZ/TezbKdT7ehoTDpwLl6YOqE/We852ws+Om6a9xzXq6Fn9Jcl1XMz065MS/SKzje0l7LUtl36xny/tN0arpvXVXJd07O1pZEOtjp09QJfslZ/rjTmZPVu642sPGKu9xjZktKWOmtE/7e98VB3mufLz46cn/z3DJSWaPb59xb7+qYlt1x2QqMN/uLrtbZozcmgf3XXmXEmJbb/X2AZ9cZ/s5f7FCdO1YkyDfnliZjvWHmv2S73lxpwQYLZxBnWrTraVgppspMVtq4hHv/TgKX20cnxjRkqrIT1qdMLcgZrQt5P2GdeYvM5nOw7PXJy6djvbhOafbu3Dc5cN0z7jGnXxCqOecXxfrvePnMMDe49LtDlLohGdG7L/GqZdkKtc2grnLE39jo1bmpL//s3Jwdu6balnvnnYBO0/sZcOy+E6D+n6A8ZqRENq8YHfGPXlAeq3MB69cGHy33a/8Nr9x+iwqX0z0jqHcWtr+8Xsyy0b1VNjjawYbeGMJpqLk+YN0r7jGz37XlGXsTezbpvjiDL3jpEVx22yZreaMn1+4WCtntFPe41t0C9PmJ7xGjdHGX0tv/66XzYi80+zLs1XnVaIiOHYNRT1Uv+//e1vWrlypVasWCFJ6t+/v37+85/riScSeZbj8bhuvPFGXXzxxVq5cqUk6ZZbblGPHj10xx136NBDD+2wsiP/MlMQOm4Q53mwJlvqoMUje2hxiJRA2V5/zrJh+tb96zMe92tUtKfTFgzRI+s/lCTXvMNuEaZM0wd2CZTL2/bQeQuzvygEt47IDo9B1RnGTVZz8+cS8jPxGZnfHZd0yJS+OmRK+MZ3/65VaYOp3zxsguvrVo7vpZXje+niO/4R+juyWTaqh+76Z2IWuVsjYnL/zjpocm99ae2LGc+ZvnxQ9oGvbMwbp1J6XdC7c2VeB56zMb/bOdPfaXjPWt20KlG2K7NMvnLyalCaDVhzt5g3W9uaxqUQNVK9YxVQWhQjo+zOc2lkY2obFppf4zyIXKryhrqKjOPXKxJD9og45mek/jJXtNodNOeEDuf11QxB77ci0kuQVR79u1Z57ltzVUw0Ip21ZKjr69wmar927YqM1x09a4Dr+3t1qgiUJqPYTR1Qr6kD6vXM6/fqvx/7L1A4aX5iQl732vKcJigMzDGdsNOgbtVZz+3yWFQ3GBOmvawwJp+VRCO63uWGy4iGWs9rxZHGxFYnvwhdQZ25eIhuvCcRvddZz/SsK3c9Zs1rgFv71/lIXUVMH29NDDR6TZ5ypsJpC7NMpdGI6yQHs57JdTBi/4m9tf/E9AFqK+3fmZ9r/nw7AueFy4frgZfel5Qe4cOy3OsMW8TKvAGUeF/i/84tnWs7MptsfZZhPWt006qJ+tMFf5LU9ghYXmk6cjWwW7Xvds6V2V+xVz2P69Mpa7vQK6rmsB41aSveg/z0ZaN6pA0WB2FPGikG+4xr1D7jGl2fS0sRV4Dw+bXlMX39UPc+TlhuxQsy+Srjc0Lcjo9ELF2z/9i0xz5yLPDKtsrXPL/M4/mgyb316CuJfrmzDsyHAT5tMC+dKkv1DZc+qXPcwNnm9+IXpcdv0ql5bbGjRmUbT4lGLF134NiMx93qysHdq9OirK+a1k+vfbBZ33/o1YzXrhjbkNYGkYLVQW7MiEyzB3fNOkEzaBsprM8bE78Gd69Ou7ZkY1lWcuKzyZyAlY+V720Vjye239cOGa/fPvt25vPGv82UoG79NikxWSIIy7J09X5j9Pvn/qtPtu0MXF67f9zsUQ87Hy308OLnPPpV2filYbEsSz/3uAk3a3DXZBqpy/bOftN1cv/6jLRS+eKMbNLWTX14kdyotywrb5OvpET0oPc+2R7otT08+qTOSXr5iDZmHoNdqst826Zhx7eDjP2aCz/85NI+GtazJnRbe0iPGs+2gD3WHFaJx0QnSbpwz3ATGPOZytcsitlmqCwt8dzWX3CZcJmtTGcuHprq9zt+v9mudktRbbez1r/3ia7607rW70t/TZD5FtkWKEnpC+xPXTBYX77r35Kk6QOz153ZJlXmQy673ozcb75/ZGOt/nn5Mo267K6sn9GW+3N7j2tMTmxDeAdP6aMZg7pozvX3S/Ifg8iWZSVst9WMSGcf3odO7atDp4b7HKeZg7tqpmOCUjRi6ftHTda0L93btg9XfiZgVZWV6Eaf603EZUwvbfG3Yz81BVjccvbS8IsWr1g5Wrc8+nrW15l1tPMQMo8p81qVrzrNbcyTAFifDUU9AWvmzJn63ve+p5deeklDhw7Vc889p4cfflg33HCDJOnVV1/VO++8o8WLFyffU1dXp2nTpunRRx/1nIC1fft2bd+eauxv2pRIV9XU1KSmpibX96BjNTU1JWuleEuzmpqa1Nycnmc23rxTTU2ZVVfu+zReFMdDS3P64EtbytQST13own7Ozp2pcri9t7ml2ff5sNpj22/dvjP5PTuM70vUBYkOfbwltc1iUcu1XNnK2rwzcwAt8R3tM8AYNwY187VdzYHnluadGZ8bkdTcnHm87XC8Lj/lST9Xrbx9bngtxm/euTNzu7SV/XnOz7X/NuvFlpYWY7v7n7+hxAtfN8abm1O/qQDHb04cvbTmnc2hyhP29V5amlP7defO1P6Om/slnrnNzGPjvU+2JR9vMa+lzc1qirdkDIDb112beR7vdKnfsv6GeBv3pXG9cZbNtLPN27w42gH5Yvb3vH5X3Kg3ctG0M/w1MqiWltzaMAXdh1bbP98yzje366kbs06Pt563phbHeWGe0zs99nHY3+H3+rR2T9z9PIy3pF6Tz+ulWdfF45m/dWdzZnt1xw6jvC7b049XuZuamtTkqB+bd+5UU1P+73w693c2H21pW5/X/AVBj9lcteW4NPsm8RBtlxaP17Y4jqd/v/NJ1rJGA9QRbsfkrqC52WgX7Ej1nYrRzubw7QHXerKN7QpnmynbZ5njAM1GPZlWt7TslNfHFOPx5Hf9MfvdbvW3za/tafbF7G1mRu0Ls02278isK+MubWyzfRL2O4Iyf7OzLioWzTley7ftSL2npXmnmtT2NJpt0dzs304y+0GlHuNDbWF2wwJ9duvx0OzRTm52jCe25FAftoeWYunzG8z2rF+f09biGKMu1m3t5DXGVChu9Whb5eNzdrqMX7anSB76lcXOMur3fPch2vRZaeNfbRkDCn5sO/e3efz51R3Nxhhg4rqbes4K8P1u559znL6leaeaWlz6rG0YC87nvm4JOAaZNh6SNoaYfp0321h+4xLx3Wx8cFdjtmf86sts+8g53h2mnxhmTCFXYfuLbq9tampSJFri+lyun51Nc7JO966HtjcVftyj2Wd/mseNs31snvtWAdopO5szP6eljePv6FhB911RT8C64IILtGnTJg0fPlzRaFTNzc26+uqrtWrVKknSO++8I0nq0SN9BVyPHj2Sz7m55pprdPnll2c8/pe//EWVle2fvxvBtLRmzPznP/+ptR++oJfetiSlBnrvvuuu1pnI6Yf12rVrQ35T4v0bN2zM4b1tM64+ouc2pE/Kuf++e5NlilnxNpVpZMzS44pqSG1L6M/Z3KRkOdze+8J7qf2RexkTn9+nqm2/M9vn22Lvv6i1rRGaEn2dxPOPP3if7AUnd7+V+l0D4u8my7WkV0R3vx3Rwsbs2/ITY9vZ/vbXe+WyqKUg3ng9IjvjbL6263/eT/2eB/76V3VpXYTbsyKqd7Za6rblVUV3SJai6lud+t6dxnYe3yX8cWia2CWiZz6MaETE3i+Jz13Za1u7n7u2xLhh63H02GP6cF0+PjXxeZ1KU+fFlp2px+c3pLbjJ1tTj/ds+p/Wrv1vxutz3Ta9q6J6a7OlXk1vae3aN3P6DD/D6yJ68ePEcfrQfXcnV5Z0i0X1ybZE57+j9qsk9WtJv+Y888zTanot23qF1HkS7PXeyqJRbW+2tOPN57X2/eclSdEtqe/4+ONNye0zMJ4oa//q1DHzrnFsPPPGR8nHtxnHxp13/tm17L+7/3F9uC5V9mffya2+r41FtanJ0ujOcd19992B3+f04bZU+e67/wH1zGi6JZ57+5+Pa+1LuXxD4v1bt27t0GMu37ZujcqeOuH8XVErqua4pU3/eVZr33o25+8w940k7dG7bfW86V//DXPcpcpQyPZE886dbf78x19JXaPvufde1QUIDrJ+U6oMd/75z8bkusRjzz3/D1W9+3zy9dubUvt+TpctyTJXlkS1ZWfQ+jW1TbuW+bfTmlqk0khUcSXaVG6BwrY3pz7zoYce0itVWb4+oH+8mzpOSo12nu399zPbRN71oJfWbRF3bofE49u3JdohTY7zwby25Ufis//zn1e0dm1mFF2v10u5nhetdeOWzbKPp388/qBeyvu8mzDl9O73xY3rXlXzJ4E/a8vmLWmvHdM5on9sjGhyzaa0x597y+u7U4+/+87/tHZtZgQVU7i6rXg0m21eo+9UTDqVRvXRDktlH/xba9f+O8A7vI69xOMvvPCC1n6Qe2ThrUZdk/kdmTbtSL3+3nvvVW3r9eHvRr/7nr/8xbHtC339y0WiTCM6tbieJ/ZjsY9Tv6vrlje0du3rGZ9hvt6N2Rf7+6MPaF1UWtTD0m9ei2pqt2BtErtNtPHlZ7T2jfTnPv00sy1V+lGq3OPq89fuMZljMcOj7xfRvpWS2/vvf1ckhzbkK0ab5q477yxIuvtgEmVY/5//aO3al9Mek1L7+2XjOP3k4w153xdNTd7tdZM97tJ182tau/Y1jSu39HdFHeeZ9Nx76X3Y+++7T538g0N0iPGVll5QVCM7FeYcykWTMXZV+eFLWpulY7lhe+r1kvTss89Kb+468Q3a0j8PY1qdpVc/jGpsm+vL/F7vOn2S+Myu5YUaj3Y3pVtET74f0djSD4rm2C+UfxvXy7/ef38e6qL8HAP//W+qf/j2W29prfPiH9CCbpZu3xzVpK7ex/aM7hE9+l5ESxua0vstRvvl+cce0L89+lfvGf2bu//yFxkB7dVrR2L79qr0PoY3bsi8xrz5aeozJenPf07vDw+ti+iljyMaEQt2jI6tj+j5DRFN6dqiJz+IqHee7/F86nKPxY35nTuMsYdX//MfrW16Ofmc2XZ88qH79Zxj2/eqjOrtLZYat7+Z87GBtjPHtHdu/dS1r9avOvuxtmVL6hyQpFdeeVVr1/4ny7cnPv+tN9909E/yz7xvJuVWt6Wu5+mfs7yPpbVvRtMea7vEd7z5j8e18UVp4wbve5A9W/ehXx2Vq4gVVUvc0kfrn1H6LavUNihTc/J7nW225x9/SK+0JvioaL3XMrAmf+V0fp8kDYu+t9tf93dnW7ZsCfS6op6Addttt+lnP/uZbr31Vo0aNUp///vfdeaZZ6qxsVGrV6/O+XMvvPBCrVmzJvn3pk2b1KdPHy1dulS1teFSBKB9NDU16QcvJsIvjhkzWsun9NGbD76qP76RajCtWL6nIhFLZzz6l7T3Ll++PNR32e/v0qVey5dPaWPJw1m6rEWvb9iqPb7xSOqxJUt00VOJEJsrJ/TW8uWjcv785ZIOfX+z+tRX5BTefc6CbaqIRV3z9G5/9r/62X9eSHxPyG1uW7SkWQ++/KEWj+iW13DCNvPYuOPk6RrVmH6+z5y/XXGlhyt96d710puvSJJO2G+hutUkntszHtf69zdrUNeqQHnW587fpiN+9KTe2LBVkrTPXrlto1w88Yd10ruJ1keu+8bJ3JaLFi5IptVZuKRZ727arn6t6VsWLtiiLlWlaSlbZs7frlc+2KxJfTu3KXXNoqUtenPDlmRamalzt+vl9z7VjBChwAvhrMcS22ba9OmaNqDt4e3tbT2yTxctXz45+fi46Z/qn//dpJXjGpLny7amZl3990RdeeRe89SvPjUzZfZ87/M3iEVLmvW/TdvUv0ue7pK7fP5Tb3ykod2rk+eZJP1uw7N65d/vS8rf8ZuL5ZL2/2Czln49UT9PmjRJi0f4p6d7Kv6i/u+xNwK/3s/cRTv10ZYm9e6cnsLquucSx0enujotXz49WdYDPtisxk4VKmu9K/fah5v1pb+nri3mtpw1f5tKSyLqXJma+WGe49MmjdfycakUKh8+9ob06osZn5PN/MU79e5HW7TuqYe1ZMkSxWK5HYvbm5p1xbOJ43zOnLka0iM9/dasBU3asqNZDXX+6Vm82L+9oqJCy5fPzekzitFXXnxIG7YnrkHO/TZn4U59sq2pzSnS3ty4RVc8+7Ak6TcnTdPoxtq8Xc/f/dvruuP1xA30bMedefwWot6wP780FtPy5cva9FkP3/FP6d3EBI1Fixape032kejHX92gb/7zKUnSihWp32eXa/bUidpjVGqByoVP3yu1rsr/0tF7JPfJ1156WK99mOg0htmmF68cp+Vjevq+fsa87YrH42lpk0zbd7bovCfukSTNmTNHw3u2LT2ubfPTb+kXr/xLknT8QZm/6f/970lp00ZJ2etBL/a2iEQiafvffrzSqDsWLtiq5pa4qsui6pIlHH5Y9vcNHDhQy5e5p2J1e72U23lhv7+mulq/P2OKdrbEAx2vYS3bI657X3xPi4Z3z9pOzNbv+9LfE88P7d8nax8q9fuqtHz57OTjdv9sYNfKtPrM67u/uf4RrX9/sySpb5/eWr7cP830O4+8pjtef8m1/MWsqalJW3berblz56mhc2Hahm01f/FOffDpDvU12sN+vM6RZFt85Cgtn557SqhPtu3UBU/eJ0k6eFKvrMfkB59u1yVPPyBJWrJkcTK91SdPvSX9J1HP7dU6BpLtN3Qku0wnLh2fvHbYj8WiVrKc//t4m771rwclSccfsCSt/3jDvx/W6xuCXa9mzt+RVj/tGY/r+Pc3a0DXqkB9zzkLd2rTtib1cmkTfXP9I3p36+a0cozZuEXfWZdo+/zklMVp5c6n6XO36INPd2hCn04F+fxc2fty0sQJ2nO0f9vAzVOvb9TX//mkJGmvFR13zNq/Y4BxTbUfqyqLavnypZKUSP/5r6clST27d9Py5ZPyWo7zn7pHao1m5XesO8ddlks67P3N6usY69v89NvSf/6Zet+iheqZJYVlR1gu6QiX8ne0CTO3aOOWJo3rXZf1tW9/tFWXP/NQ6r0TJmRtLxeDpqYm3X333W3qn4exZzyuz32wRf3qK9qU2mfuop36+r3rdeLcAVlTTgW1YvEW9agty0hxWEiLd7bo9Q1bNKS7f0rx3UGXVzfo2+sSfdjFi4P1e/0s2yOue9a9p0XDu7XpWHrgNy/oyfcTi1f798veZ/CyZzyu47K0N5a1xPXqB5s1qFtVxjjJDEf7xc3rG7bo6r8n2hx7LFumCsdKp5UfblZDbbnKPI7hn/3vSf3nk/S+8PNvfSz94/Hka5zXnsVLW/TWxq0a2C1Ye9/sO72+YYtveXLx8dam5H0y08lzB+g7D6ZSQjt/x7lPJK7pgwYP1vLFg9OemzF/h+LxuGtdUuixcATz8nufSn//mySpX0M3LV+eSpE6d9FOPfPGR5o5sD5rXXDtvx6UdmxL/j1w4AAt38M/7Z3dHuzbN/f6IYyzH8+tP+e8ntvlXjG6p5YvH6s943Gd9v5mVZZGVVteoprytl/znePvv3z3Kb28aYNn2ffJUkflymtM2+wbd6mr1vLlsyQl+p2XP5Pod952/FRN6Nsp7X1LFmxR1+pSVeWpX2d+3wNnz9G2ppbAdSqKk51VL5uinoB17rnn6oILLkimEhwzZoxef/11XXPNNVq9erV69kx0ZN599101NKRuDL777rsaP3685+eWlZWprCzzghqLxdqls4G2iZWUKBaLKRpNVdSWJZWVud8wyXWfRiJWux8PsZg0vDH92CwrM8pgtb1Mwxo75fzePl28v7ukJLU/ci1jLBbT8nG9cnpvWOP7ZU7S6dk5s9xRI2dBSawk7beN7BUgTEWrvl1jqiqLSUrc/G7PY8syOn6F+N6y0tLk58ZiMdVUpgb0BvfIHKhq6BxTQ+e2Dy7EYtKIXqnzJV+fmy8lJSV53d6W4/wf2auzRvbqnPaaZqWO15jj+/3O3yBisZiGVBZusDYWi2n+8MwBSnNQoqOv0UMbOiX/HWT/ptUfbTweOsdi6lztPTnGeXyYZZUSE0VM5mt7Zzk2yksdZbeM4yzEb6qLxVRZWqJ1aluby4qkrjfOelmSuubpOHFu011d1OdaUB+Lqb6mbZOvJClWkl5HleaxUx2J5HbcFXIf5qOtWGK0Z4PWE5Gof5ur1HFemFHWS0tTbRcj20uo35FRJ7joVe//fCSa+vJoNH/Xy2iWbWOmtQ1TD7qxLPfvMOuOAd0LX4dEIpHQ268t29uyLPXoVLjBopikFeN65/Zer98Voj53ntdu/TO/7zbbLWUl0azfG4m0vQ/VUWpiUkPnqqItd10sprqq3K5tbr8pl3PNVGakcwlSj5aUpNLRlBrtJsu4HnqNgUjFdzxFopnnQ4mxTUtKUqkgEu3E1HCleYMx2+/q0Snz+REh+u1+bSK3fonZ9qkoK1WsQDfuB3av08Dc13IUnLPvGVTUSJFSDMes23leYbSrzPKWuBzTbRW0beYcd5Gk4S5jfVHHjchYSfGOe7uVv6MNchnP8lJSkp6KJBqgDVBM2vOeyPDG4HWyl86xmL64ckweSpMyuGfw/Z0vsZg0slcRhqUrgPLS1PFVmofjLSZpr/G59RlM5oSNaBvr9WztjZjPa9zaL05lRtkSY2Hpt3aH9Ozk+/6Iy5iQObZgPp76WxpWEfwYNftOQ3q2/Vx3Km12f7yzY/KU1360XMZwevps+0KPhSMY8zh1tr86x2JaNDJYn885NdKygvfv2toXDCoWtdSUCDed0/c5r+dmvzPMvcwgnOPvZrvTrezZ6qhcBRnTNsfvSmOpimRgj9qMsua7PWD2c2sqy9WvKv91I9pX4HqjwOVoky1btqTdbJESDaGW1tVAAwYMUM+ePXXvvfcmn9+0aZMef/xxzZgxo13LisKzxyHsC6W5UMC8sdSjNj8dFyvjktwxosYPLcQq83zpVLnrDCyEYU6gKG3jSrzmlpbsLyqA7jWF7Sh0XJqA4lZVmt85zg112TsTZr1YWoy5YHLQEi/OsP015eH2b9jXh9WnPktHow3XtBJHW8ycwNARzIlE5SWFW526u61wixQgsqRTmVHvtMPXdbgBXdt+jKx/75Pkv0sCXlCzXV9qHSvZvMppR00Iq1OAKFHZmD/VuXK3Leoq/MvWq3P+0s0P6uY+6bt/1/ZNad/eNXKxXpf9hClyvzbW/Q3GqsuSaPZzup7Bt11GfRsjbJjX4SDXZLPvaR5LLT7tsEGtK2mLsX9W47KC2Lw+mX2X6C7UiPistX281OYYZTleZNcUt/IMMK7rlUabxS1KWlsNzEPb0uRsF8XbvdXw2eEcfymyQxvocObkn7ZkQ8i32556K/nv3z7jnzq8o5n95lzG+Nzek8++eHvwakM7xy29dPBwJnJkjv326pT7fS5nXz/c4dA+9VY+xhlNn+X+SRBBx2HbwjzOdqV+LtquqCNg7b333rr66qvVt29fjRo1Ss8++6xuuOEGHXPMMZISq8/OPPNMXXXVVRoyZIgGDBigSy65RI2Njdp33307tvDIO7uishtaXpXVlStH64T/e7qdSlUYR83op1seTeQUjkYsff+oyfrT8//VKQsGZ3lnx5k/tLtWTeurUY3tv2IoqMOn9dWtj7+hv12wMPB7qo1JE2294bizg1r5x88ZqFc/2KxlowoT/rwQ6SJ3ZZfsNVJvb9yq0b3yk9L2/x07Tb986k19YfmIrK8tK4nq3GXDtHVHc6AJW7uCYuscX7lylNa/92no9JL5SEfp5ufHT9fPHn9dl+3tHwa5LadpzHEDubmDR5Mty9L5ewzXx1ub1DfHCSR+fn3SDP3kb6/p4hUj8/7ZHaodquruteX6/MLBKiuJqKyAk+OCOnJ6v4J87m9PmakfPPyqLtxzeJs/66nXNyb/HTRF3djedTp6Vv+MtFpXrhyll9/7VNMHptc3Nx8xSdfd9aJOmjso7fHrDxyrq/60TkfP7J/1O68/cKzO+/XzOnxa37zUZ5Zl6cI9h2vD5h15HWBaMrKHDpvaR+M9UjRdutdIxeNxHT4t9zRif/z8bH3ngf/ovGXpoepvP3mGfvTIa7p4RfbrdT4V283rYhTkhvNtJ87QLY++pkv3Clb3f2H5cH1p7YsZj5++cLAefCmROjnIjYCV4xv1+KsfatqAjk2hDW/XHTBGT7y6UXu0sS9ltsWCTMCqq4zpjEVDFLGstIm1fn3KH66eoi//5d86ed4gz9e0t2v2H6N/vP2x5g3tlnzsD6fN1s0P/kfnL0tdR7tWl+n0hYMVi0Z2qZuBdtunPBYtirZPe7ty39F66Z1PNHNQbnVYsV3BzEvqb06ZqR8+/GpaP3x8n04a2LVKr3ywWecs9U9Zk4vvHjlJ19+Vv3N46cgeaX+3x4KMz6ruNYm64Jv3rZdUfMc20NHSJ6J3YEF8bG3yCK9UJOy2UkmObSW3rsnwnvkZu24vXsdObDdZhAx3/btWaURDrdb9b5PWtKH99dWDx2nVDx7Xqx8kUoqHG0ppnyv7d4+crK/c9W+dPL94+nNBFds9wq7VZfrg0+0Zj5uLCiPtcEEyF1BFAyzSw+6jqCdgffOb39Qll1yiU045Re+9954aGxt14okn6tJLL02+5rzzztPmzZt1wgkn6KOPPtLs2bN15513qryc0JC7G7tetOtxc7WEmaO5a56iRHXk9cK8ERWxLC0Z2UNLHAMnxSYSsXT1fvkN/5xvX9pvjL4Usoz5vKnVUVFjKkqj+toh4wv2+cXace4ox84ekNfPmz2kq2YP6Rr49acW8UTNXBRbpI0jZ/TP6X2F6oTMGNRFMwLc8GhLh8L53o6OgCWpoB3Ryf3rNbl/YSbMdaT2uuFydgFuRuVq1uDCTGiY0Lezbjq8c/YXBpBLFWdZluukS6/6qW+XSt10+MSMxxvqKlwfd3Pw5D46eHKfUOXM5sQCTBCIRixds/9Yz+e71ZTpWwF/s5fRvepct9ukfvWa1K/96472rpI7/gqQgwCFnjqgXlNDTC70WnRiRoFxTmB2UxKN6PoDxwX+XrS/Q6b01SFTcp+0aTMvw0EDK5+1ZGjGY37nfP+uVYHr9fZy2NS+Oszx2Jje7vVoW26otAevplQxtX3aW6Emu3cU8/Sa2LezJjrae5Zl6b5z5hfs+/t1ye85HIlYOmHuQH3vwVckEQWh0M5eOiw1AavIxjGAjmYOK7XHDe/dVVvaSl5Rs24+YqJO+n/P5Py57clrXCvGMbXb+/MZc9r8GY2dKnT/OfPV/4I/SSrOyKADulbpplXF1Z/bVY1qrNUDrYvjTOa9pvaISGU2CYmA9dlS1BOwampqdOONN+rGG2/0fI1lWbriiit0xRVXtF/B0CGSKQhbKykzDL85gLk79HHNm9vFFJYXbVMMkxYKgWMUKH75PEv9Ut+geH0Wq+rdoU0IZNPux/kueF4Vosheg//m4yVtTF+O3Yt506st5y3tMOxOiq2tVmyLf/IhbPQ9ACiEsKmYkX9em313uPTR70Iuwh37u2a91Z6lLrYt5NWuNx9uj+uRWQ4uf58tXJmwy7DrKfsGolfDfXC36jZ9jx0toSNX8t334nvJf38Wb5gWk3wOwNkRW/Ya25C3zywGxRZeFLuXXXkQfJ/xjZKkgd3ym789F23pUIx2RPlYMioRkbFbniJOon0cP2egJGnxiOKOqOll/rDukqQ6I7qMF/twn9A3P1GqCun6A7yjNQF+BrZGzN1rXLB25XGtETpPXZBb5LHlYxLp106YOzCn9xdCtrKMakyk1DhwUu+8f7fXAgTzcVZi71pqywu7PtE8HO41+vthdXQq6M8yuy1V7NHJdyXDetZ0dBHS7I6n1/4TUtdAM50pCsOOfrk7RlQG2qJP50rFopY6VcZUTrq4DnFE670uZ9Tfif0S4ya7wvB+qWOiVUUsqq7VpWmpkA9y6fv1qa+QJO05um0pxQF4WzUtETU6TGTxQjrC4/6+eT+jtB2uRz1qU9nanHUYdm9FHQELMKUiYKX/X0q/sVxXGdOjFy7Uveve00GTww+2//hzU/Xmxi0a1MaJXG3x8dam5L+Z3LL7OHxqX00bUK/+XTp+MkZbHTd7gH7w8KuSmCSIwmpp6egS5G5i38766znz1bOu49Mim5eSqSEHg50TrYb3rNVD5y1Ql+rSfBQN7eTASb01oW9n9e9S2dFFycng7tV66LwFqq/Kftw9f9lSbdq2syjOvWwOntJHjZ0qNKKhuG5AovitPWOO3t20Tf0Ctiu/sHyEDpnSR4O759bH+cahE7RmyRYNKoJJxbbz9xieTKu0b+ukZ9PtJ8/U/z7elpbePV/McbOuxvUwSgSsXdbfL12qv/zrXS0c3r0gn2+OWWxvas75c3bXqMq7gl29LVWM6qtK9eiFC1VZWhzD07tj2rhhPWt0+8kz1bW6tF1uMn3WPXPJEm3atlO9OlV0dFGAolJXGdMD5y5QaUmENnIHWTaqp+49e576dE5vx/SoLdffLlio6gIvRsgHZ/rK+8+Zr1jUUpfqMj18/gK9/8l2je3dKeN9fzlznt77JHjfGZ8NYdp9u+ot2vYs91KPOqajLBvlPuGyPBbVExctUtSy2iWzT0Vp4vtKIhFS8H7GFP9VFWhlXw7tgUtzANNZUTbUVXjOcM2mtCTSoZOvJGln8+436LOryuf4m2VZGtx997jBWhZLdZYJHY1CKsZ87GH0L8BN31yYp6l5/uaqT31xdKYQXOIa1LHtm7YKetzVlMdUswut8J89pGtHFwG7oPJYNNQAciRiaUiP3NuhJdFI0dUhZh/QbdFKeSxakMlXUnr7tzwWNcqRek1JlDbyriQSsbRHAVfFm8dGrA2TIEhB2HF2h7ZUMWqoK56JKrvr2TWpX/FHhd1d7Gr9EKA9NTIxscN53fPaVfeNueiud+dK9faY+FFRGq7vjM+G3bXd15E6+r56UN1r2nfBbnt/H4oD082xy7AnwtiD6+ZwdnvMVG1P5Xm4OY78oCHmrlhWqGL3t6sOAhQb80Zx785sUwDA7sUM694ezBTJZhj59BSE9OmQYk4SbEsasM4BIkHubpj4j/ayGwbAAgBgt2JHGKwu494E2qZbdVn2F7XaVe8+M/EwoS/9SXQArlLYZSRTENr/N656u1sAnqE9avTcWx93dDEgBuC8dK5MDfxX0eFBAV28YqSamuM6ZHKfji7KLs28TJ40b1DW1w/vWaMX3/mkcAUCACAPfnDUZP3h+f/qtIWD2/V7t+5I5Ug2U/WaE7B2t0VCyJ8xvetyfu/Bk/vo2Tc+0tyhn53oiVfvN1plJZGco5wDQe3q0ZcBALk7a/HQji4CArjl2Km64S8vtXv/D7uPm4+YqLv++a6OmzMw8Ht2tfvP31k1UWtfeEdHzvhs959uO3GGbnn0NV2y18iOLgo+g7hrjl1IeupBcwVpdFe7AmbBkE/xYAAO6Fj1VaX65mETOroYuzzzmllRGvV5ZcL0gV2YgAUAKHqLR/bQ4pE92v17ze6nGWUyLc0cKQjhoS3jF6UlEX314HF5LE3x615Trm8dPrGji4HPADJ8AsBnV2MnUkTtCgZ1q9ZNq2gXInd7jG7QHqMbQr3H2sViYO05pkF7jgn3G3dHUwfUa+qA+o4uBj6j2hwTf9OmTbrjjju0bt26fJQH8GRHIrIXEu/OKQhbGPUpGkTAcrebzXkEdnvxkJVZC5UfAACevJrC5sSayG7WR0X+7G7jF8Dugi4QAHx2WQx2A/BA9QAgrNATsA4++GB961vfkiRt3bpVkydP1sEHH6yxY8fq9ttvz3sBAZud5MG+2JkrjSO72RXwgEm9JUmjGms7uCRYPCKxor5riJzQnwUzB3WRJFUGiKQDYNezz7hGSdLg7tUdXBIAAIqP1w2amvJY8t8bPt3RXsXBLoYJWEBxGdajRpK07/jGDi4JAKCjTCNKCgAHe1zcHicHgKBCpyB88MEHddFFF0mSfvvb3yoej+ujjz7ST3/6U1111VU64IAD8l5IwGQlUxCmHou0OZZbcZk1uKvuP2c+oW+LwLCeNXrw3AXqWlPa0UUpKv26VOmh8xaocxXbBdgVhF3JN7l/vf56znz1rOM6BACAk9dltbRkN+uYoiBKmIAFFJXfnTZL73y8Tf27VnV0UQAA7ai+qlQbNicWTfSpr+zg0gAoNn/8/GzaiAByEnp08OOPP1Z9fWI2+J133qkDDjhAlZWVWrFihV5++eW8FxCw2aHA7aFKM+pVdDeLgCVJA7pWqayE6ELFoG+XSlWWhp6vutvrU1+p6jK2C7ArCJuCUJL6d61SeYzrEAAAudgNu6jIE9JTAsWlPBblxhoAfAbRJAPghzYigFyFnoDVp08fPfroo9q8ebPuvPNOLV26VJK0ceNGlZcTJQGFY986jrhGwKK1DACAl5JoqslXGiU6BwAAbWEuQojLfZJzU3P4yc/4bNgdF5ABAADsagYwsQIAABRA6NAlZ555platWqXq6mr169dP8+fPl5RITThmzJh8lw9IsoN32OkGrd08AhYAAPlSVxHTWYuHqiUeV6dKUocCANAWoxprk/+25N4XJR0hvLCADAAAoOPdeOgEfWntOh07e0BHFwUAAOxGQk/AOuWUUzRt2jS98cYbWrJkiSKts2EGDhyoq6++Ou8FBGz2+mF7gNscsowwAQsAAF9nLB7S0UUAAGC3YC4GinjMs6oqJY0v3DF6AQAA0PF6darQTYdP7OhiAACA3UzoJZlXXHGFRowYof3220/V1dXJxxcuXKh77rknr4UDTMkJWK2jlZEAg94AAAAAABQKi4EAAAAAAAAASDlMwLr88sv16aefZjy+ZcsWXX755XkpFODGTkForzY2x7mjhPAHAAAAALSTGQO7SJJWTeuX9nhdRUySNGdot3YvE3YNTNoDAAAAAADYPYVOQRiPx9PC7duee+451dfX56VQgB97rhUpCAEAAAAAHeGnx0zVmxu3aFC36rTH/3bBQm3YvEN96is7qGQodgxfAAAAAAAA7J4CT8Dq3LmzLMuSZVkaOnRo2iSs5uZmffrppzrppJMKUkhAklpa/x9JRsAyUhAyggkAAAAAaCelJZGMyVeSVFVWoqqy0Gvd8BnC6AUAAAAAAMDuKfCo4I033qh4PK5jjjlGl19+uerq6pLPlZaWqn///poxY0ZBCglIRgrC1r9JQQgAAAAAAHYl9dWlHV0EAAAAAAAAFEDgCVirV6+WJA0YMECzZs1SSQkrOtEx7MhXESJgAQAAAACAXcCNh4zXw+s/0MGT+3R0UQAAAAAAAFAAkbBv2Lx5s+69996Mx++66y79+c9/zkuhADetAbCSka/MKVfR0EcyAAAAAABA+9h3Qi995aBxijGAAQAAAAAAsFsKPepzwQUXqLm5OePxeDyuCy64IC+FAtzYKQjtaFcR4+glAhYAAAAAAAAAAAAAAAA6QugJWC+//LJGjhyZ8fjw4cO1fv36vBQKcGNHwIokI2AZKQgjTMACAAAAAAAAAAAAAABA+ws9Aauurk6vvPJKxuPr169XVVVVXgoFuLEjYCVTEBpzrqJEwAIAAAAAAAAAAAAAAEAHCD0Ba+XKlTrzzDP1n//8J/nY+vXrdfbZZ2ufffbJa+EAkx0By2qdbGUZk66iRMACAAAAAAAAAAAAAABABwg9Aev6669XVVWVhg8frgEDBmjAgAEaMWKEunTpoq985SuFKCMgyZiA1fp/c84VAbAAAAAAAAAAAAAAAADQEUrCvqGurk5/+9vfdPfdd+u5555TRUWFxo4dq7lz5xaifECGiB0BS0YELGZgAQAAAAAAAAAAAAAAoAOEnoAlJVK/LV26VHPnzlVZWVlaKjigUFpaQ2DZE7DMCFikIAQAAAAAAAAAAAAAAEBHCJ2CsKWlRVdeeaV69eql6upqvfrqq5KkSy65RD/84Q/zXkDAlkxBaM+1SktByAQsAAAAAAAAAAAAAAAAtL/QE7Cuuuoq/eQnP9H111+v0tLS5OOjR4/WD37wg7wWDkjTOgPLnmtlpiAkABYAAAAAAAAAAAAAAAA6QugJWLfccou+973vadWqVYpGo8nHx40bpxdffDGvhQNMyQhYIgUhAAAAAAAAAAAAAAAAikPoCVhvv/22Bg8enPF4S0uLmpqa8lIowI09ASvSetSaaQcjpCAEAAAAAAAAAAAAAABABwg9AWvkyJF66KGHMh7/9a9/rQkTJuSlUICbeOsMLHuylRn0iglYAAAAAAAAAAAAAAAA6AglYd9w6aWXavXq1Xr77bfV0tKi3/zmN/r3v/+tW265RX/84x8LUUZAkpmCsPX/aROw2rs0AAAAAAAAAAAAAAAAQA4RsFauXKk//OEPuueee1RVVaVLL71U69at0x/+8ActWbKkEGUEJBkTsFpnXpkpCKPMwAIAAAAAAAAAAAAAAEAHCB0BS5LmzJmju+++O99lAXylUhAm/m9OubJIQQgAAAAAAAAAAAAAAIAOEDoCFtBRnBGwIsakKwJgAQAAAAAAAAAAAAAAoCMEioBVX1+vl156SV27dlXnzp19ow1VV1dr1KhRuu666zR27Ni8FRSwJ2DZk60ipCAEAAAAAAAAAAAAAABABws0AetrX/uaampqJEk33nij72u3b9+utWvX6uijj9bTTz/d5gICNjsFodWafNCcB0gKQgAAAAAAAAAAAAAAAHSEQBOwVq9e7fpvL3vuuacmTZqUe6kAH25zrf70/H+1ZsnQ9i8MAAAAAAAAAAAAAAAAPtMCTcBy89RTT2ndunWSpBEjRmjy5MnJ5/r06aP33nuv7aUDDMkIWFb635L0n/c3t3+BAAAAAAAAAAAAAAAA8JkXegLWW2+9pcMOO0yPPPKIOnXqJEn66KOPNHPmTP3iF79Q7969811GQJJkz7ey0w2SdRAAAAAAAAAAAAAAAAAdLRL2Dccdd5yampq0bt06bdiwQRs2bNC6devU0tKi4447rhBlBCSlJmBFmHgFAAAAAAAAAAAAAACAIhE6AtYDDzygv/3tbxo2bFjysWHDhumb3/ym5syZk9fCAaZkBCwxAwsAAAAAAAAAAAAAAADFIXQErD59+qipqSnj8ebmZjU2NualUICr1hlYpB4EAAAAAAAAAAAAAABAsQg9AevLX/6yPv/5z+upp55KPvbUU0/pjDPO0Fe+8pW8Fg4wJSNgMQELAAAAAAAAAAAAAAAARSJQCsLOnTvLMma9bN68WdOmTVNJSeLtO3fuVElJiY455hjtu+++BSkoEG9NPUgKQgAAAAAAAAAAAAAAABSLQBOwbrzxxgIXAwjOngvYEo8nH3vkgoUdVBoAAAAAAAAAAAAAAAB8lgWagLV69epClwPwFTcmW0VaZ2C1pB5SY115excJAAAAAAAAAAAAAAAACDYBy/T222/r9ttv10svvSRJGjZsmPbff3/16tUr74UDbOZkKyv5WOpBM0UmAAAAAAAAAAAAAAAA0F5CTcD69re/rTVr1mjHjh2qra2VJG3atEnnnnuubrjhBp1yyikFKSQQT5tslfj/oG7VHVQaAAAAAAAAAAAAAAAAICES9IV/+tOfdPrpp+u0007T22+/rY8++kgfffSR3n77bZ1yyik644wztHbt2kKWFZ9hRgCsZLSruoqYHrtwkf5+6ZKOKRQAAAAAAAAAAAAAAAA+8wJHwPryl7+sCy64QFdddVXa4w0NDbrhhhtUWVmp66+/XsuXL897IYG0FIRGtsGedeXtXxgAAAAAAAAAAAAAAACgVeAIWM8884yOPPJIz+ePPPJIPfPMM3kpFJDBTEHYgcUAAAAAAAAAAAAAAAAATIEnYDU3NysWi3k+H4vF1NzcnJdCAU5uKQgBAAAAAAAAAAAAAACAjhZ4AtaoUaP0u9/9zvP5O+64Q6NGjcpLoQAnIwCWIsy/AgAAAAAAAAAAAAAAQJEoCfrCU089VSeffLLKysp0wgknqKQk8dadO3fqu9/9ri6++GJ9+9vfLlhB8dnWkpaCkBlYAAAAAAAAAAAAAAAAKA6BJ2CtXr1a//jHP3Taaafpwgsv1KBBgxSPx/XKK6/o008/1emnn67Pfe5zBSwqPsvSUxB2WDEAAAAAAAAAAAAAAACANIEnYEnSV77yFR144IH6+c9/rpdfflmSNG/ePB166KGaPn16QQoISOkpCJmABQAAAAAAAAAAAAAAgGIRagKWJE2fPp3JVmh3cVIQAgAAAAAAAAAAAAAAoAhFOroA2bz99ts64ogj1KVLF1VUVGjMmDF66qmnks/H43FdeumlamhoUEVFhRYvXpyMzoXdBykIAQAAAAAAAAAAAAAAUIyKegLWxo0bNWvWLMViMf35z3/Wv/71L331q19V586dk6+5/vrr9Y1vfEM333yzHn/8cVVVVWnZsmXatm1bB5Yc+WamIIwwAwsAAAAAAAAAAAAAAABFInQKwvZ03XXXqU+fPvrxj3+cfGzAgAHJf8fjcd144426+OKLtXLlSknSLbfcoh49euiOO+7QoYce2u5lRmG0pKUgBAAAAAAAAAAAAAAAAIpDUU/A+v3vf69ly5bpoIMO0gMPPKBevXrplFNO0fHHHy9JevXVV/XOO+9o8eLFyffU1dVp2rRpevTRRz0nYG3fvl3bt29P/r1p0yZJUlNTk5qamgr4i5Arc7/s3NkkiyhYAADscuzrOe0tAAB2XVzPAQDY9XE9BwBg18f1HGg/Qc+zop6A9corr+g73/mO1qxZoy984Qt68skndfrpp6u0tFSrV6/WO++8I0nq0aNH2vt69OiRfM7NNddco8svvzzj8b/85S+qrKzM749AXnzSJNmH65///OcOLQsAAGibu+++u6OLAAAA2ojrOQAAuz6u5wAA7Pq4ngOFt2XLlkCvCzQBa8KECYEjDj3zzDOBXhdES0uLJk+erC996UvJcrzwwgu6+eabtXr16pw/98ILL9SaNWuSf2/atEl9+vTR0qVLVVtb2+ZyI//+u/FT6am/yZK0fPnyji4OAADIQVNTk+6++24tWbJEsViso4sDAABywPUcAIBdH9dzAAB2fVzPgfZjZ9XLJtAErH333Tf5723btunb3/62Ro4cqRkzZkiSHnvsMf3zn//UKaecEr6kPhoaGjRy5Mi0x0aMGKHbb79dktSzZ09J0rvvvquGhobka959912NHz/e83PLyspUVlaW8XgsFqNyKlIlJYn9YlliHwEAsIujzQUAwK6P6zkAALs+rucAAOz6uJ4DhRf0HAs0Aeuyyy5L/vu4447T6aefriuvvDLjNW+++WaIImY3a9Ys/fvf/0577KWXXlK/fv0kSQMGDFDPnj117733Jidcbdq0SY8//rhOPvnkvJYFHSsej0tS4EhsAAAAAAAAAAAAAAAAQHuIhH3Dr371Kx111FEZjx9xxBHJyFT5ctZZZ+mxxx7Tl770Ja1fv1633nqrvve97+nUU0+VlJiMc+aZZ+qqq67S73//e/3jH//QUUcdpcbGxrSoXdj1xVv/H2H+FQAAAAAAAAAAAAAAAIpIoAhYpoqKCj3yyCMaMmRI2uOPPPKIysvL81YwSZoyZYp++9vf6sILL9QVV1yhAQMG6MYbb9SqVauSrznvvPO0efNmnXDCCfroo480e/Zs3XnnnXkvCzpWPJ79NQAAAAAAAAAAAAAAAEB7Cz0B68wzz9TJJ5+sZ555RlOnTpUkPf744/rRj36kSy65JO8F3GuvvbTXXnt5Pm9Zlq644gpdccUVef9uFA9SEAIAAAAAAAAAAAAAAKAYhZ6AdcEFF2jgwIH6+te/rv/3//6fJGnEiBH68Y9/rIMPPjjvBQQkUhACAAAAAAAAAAAAAACgOIWegCVJBx98MJOt0K5a7AhYHVwOAAAAAAAAAAAAAAAAwBTJ5U0fffSRfvCDH+gLX/iCNmzYIEl65pln9Pbbb+e1cICtdf4VKQgBAAAAAAAAAAAAAABQVEJHwHr++ee1ePFi1dXV6bXXXtNxxx2n+vp6/eY3v9Ebb7yhW265pRDlxGecnYKQ+VcAAAAAAAAAAAAAAAAoJqEjYK1Zs0af+9zn9PLLL6u8vDz5+PLly/Xggw/mtXCALZ5MQcgMLAAAAAAAAAAAAAAAABSP0BOwnnzySZ144okZj/fq1UvvvPNOXgoFOKVSEHZsOQAAAAAAAAAAAAAAAABT6AlYZWVl2rRpU8bjL730krp165aXQgFOyQlYHVsMAAAAAAAAAAAAAAAAIE3oCVj77LOPrrjiCjU1NUmSLMvSG2+8ofPPP18HHHBA3gsISFJL6wysCCGwAAAAAAAAAAAAAAAAUERCT8D66le/qk8//VTdu3fX1q1bNW/ePA0ePFg1NTW6+uqrC1FGQK0BsEhBCAAAAAAAAAAAAAAAgKJSEvYNdXV1uvvuu/Xwww/r+eef16effqqJEydq8eLFhSgfkBDP/hIAAAAAAAAAAAAAAACgvYWegGWbPXu2Zs+enc+yAJ7iIgUhAAAAAAAAAAAAAAAAik9OE7Duvfde3XvvvXrvvffU0tKS9tyPfvSjvBQMMLW0RsBi/hUAAAAAAAAAAAAAAACKSegJWJdffrmuuOIKTZ48WQ0NDbKYEYN2ELcnYHVsMQAAAAAAAAAAAAAAAIA0oSdg3XzzzfrJT36iI488shDlAVyRghAAAAAAAAAAAAAAAADFKBL2DTt27NDMmTMLURbAkx0BixBYAAAAAAAAAAAAAAAAKCahJ2Add9xxuvXWWwtRFsATKQgBAAAAAAAAAAAAAABQjAKlIFyzZk3y3y0tLfre976ne+65R2PHjlUsFkt77Q033JDfEgIiBSEAAAAAAAAAAAAAAACKU6AJWM8++2za3+PHj5ckvfDCC2mPW0yOQYG02BGwOMQAAAAAAAAAAAAAAABQRAJNwLr//vsLXQ7AV7w1ByHzrwAAAAAAAAAAAAAAAFBMImHf8PHHH2vDhg0Zj2/YsEGbNm3KS6EAT4TAAgAAAAAAAAAAAAAAQBEJPQHr0EMP1S9+8YuMx2+77TYdeuiheSkU4BTv6AIAAAAAAAAAAAAAAAAALkJPwHr88ce1YMGCjMfnz5+vxx9/PC+FAjK0zsAi/hUAAAAAAAAAAAAAAACKSegJWNu3b9fOnTszHm9qatLWrVvzUijAyY6ARQZCAAAAAAAAAAAAAAAAFJPQE7CmTp2q733vexmP33zzzZo0aVJeCgU4xeOJKVgWMbAAAAAAAAAAAAAAAABQRErCvuGqq67S4sWL9dxzz2nRokWSpHvvvVdPPvmk/vKXv+S9gIBEBCwAAAAAAAAAAAAAAAAUp9ARsGbNmqVHH31Uffr00W233aY//OEPGjx4sJ5//nnNmTOnEGUE1BoAi/hXAAAAAAAAAAAAAAAAKCqhI2BJ0vjx4/Wzn/0s32UBsiICFgAAAAAAAAAAAAAAAIpJThOwbNu2bdOOHTvSHqutrW1TgQA38WQSQgAAAAAAAAAAAAAAAKB4hE5BuGXLFp122mnq3r27qqqq1Llz57T/gEKIJ+dfEQILAAAAAAAAAAAAAAAAxSP0BKxzzz1X9913n77zne+orKxMP/jBD3T55ZersbFRt9xySyHKCCSRghAAAAAAAAAAAAAAAADFJHQKwj/84Q+65ZZbNH/+fB199NGaM2eOBg8erH79+ulnP/uZVq1aVYhy4jPOjoDF/CsAAAAAAAAAAAAAAAAUk9ARsDZs2KCBAwdKkmpra7VhwwZJ0uzZs/Xggw/mt3RAq7gSM7CIgAUAAAAAAAAAAAAAAIBiEnoC1sCBA/Xqq69KkoYPH67bbrtNUiIyVqdOnfJaOMCWioDFDCwAAAAAAAAAAAAAAAAUj9ATsI4++mg999xzkqQLLrhAN910k8rLy3XWWWfp3HPPzXsBARMRsAAAAAAAAAAAAAAAAFBMSsK+4ayzzkr+e/HixXrxxRf19NNPa/DgwRo7dmxeCwfY4h1dAAAAAAAAAAAAAAAAAMBF6AlYTv369VO/fv3yURbAUyoFIQAAAAAAAAAAAAAAAFA8AqcgvO+++zRy5Eht2rQp47mPP/5Yo0aN0kMPPZTXwgG2uB0DixyEAAAAAAAAAAAAAAAAKCKBJ2DdeOONOv7441VbW5vxXF1dnU488UTdcMMNeS0ckEQELAAAAAAAAAAAAAAAABShwBOwnnvuOe2xxx6ezy9dulRPP/10XgoFOLXOvyIAFgAAAAAAAAAAAAAAAIpK4AlY7777rmKxmOfzJSUlev/99/NSKMApHk9MwWICFgAAAAAAAAAAAAAAAIpJ4AlYvXr10gsvvOD5/PPPP6+Ghoa8FArwYpGEEAAAAAAAAAAAAAAAAEUk8ASs5cuX65JLLtG2bdsyntu6dasuu+wy7bXXXnktHGCLZ38JAAAAAAAAAAAAAAAA0O5Kgr7w4osv1m9+8xsNHTpUp512moYNGyZJevHFF3XTTTepublZF110UcEKis+21gyEpCAEAAAAAAAAAAAAAABAUQk8AatHjx7629/+ppNPPlkXXnih4q0zYizL0rJly3TTTTepR48eBSsoPtvsCFjMvwIAAAAAAAAAAAAAAEAxCTwBS5L69euntWvXauPGjVq/fr3i8biGDBmizp07F6p8gCQlJ/wxAwsAAAAAAAAAAAAAAADFJNQELFvnzp01ZcqUfJcF8Jacf8UMLAAAAAAAAAAAAAAAABSPSEcXAAgimYKQ+VcAAAAAAAAAAAAAAAAoIkzAwi6F+VcAAAAAAAAAAAAAAAAoJkzAwi4hHs/+GgAAAAAAAAAAAAAAAKC9BZqANXHiRG3cuFGSdMUVV2jLli0FLRTgFG9NQmiRgxAAAAAAAAAAAAAAAABFJNAErHXr1mnz5s2SpMsvv1yffvppQQsFONkRsJh+BQAAAAAAAAAAAAAAgGJSEuRF48eP19FHH63Zs2crHo/rK1/5iqqrq11fe+mll+a1gIAk2RkICYAFAAAAAAAAAAAAAACAYhJoAtZPfvITXXbZZfrjH/8oy7L05z//WSUlmW+1LIsJWCiIuB0CCwAAAAAAAAAAAAAAACgigSZgDRs2TL/4xS8kSZFIRPfee6+6d+9e0IIBbixCYAEAAAAAAAAAAAAAAKCIBJqAZWppaSlEOYBAmH4FAAAAAAAAAAAAAACAYhJ6ApYk/ec//9GNN96odevWSZJGjhypM844Q4MGDcpr4QAbGQgBAAAAAAAAAAAAAABQjCJh33DXXXdp5MiReuKJJzR27FiNHTtWjz/+uEaNGqW77767EGUEZM+/IgMhAAAAAAAAAAAAAAAAiknoCFgXXHCBzjrrLF177bUZj59//vlasmRJ3goH2OKtIbCYfwUAAAAAAAAAAAAAAIBiEjoC1rp163TsscdmPH7MMcfoX//6V14KBTilImAxBQsAAAAAAAAAAAAAAADFI/QErG7duunvf/97xuN///vf1b1793yUydO1114ry7J05plnJh/btm2bTj31VHXp0kXV1dU64IAD9O677xa0HGh/rQGwiIAFAAAAAAAAAAAAAACAohI6BeHxxx+vE044Qa+88opmzpwpSXrkkUd03XXXac2aNXkvoO3JJ5/Ud7/7XY0dOzbt8bPOOkt/+tOf9Ktf/Up1dXU67bTTtP/+++uRRx4pWFnQ/uwIWMzAAgAAAAAAAAAAAAAAQDEJPQHrkksuUU1Njb761a/qwgsvlCQ1Njbqi1/8ok4//fS8F1CSPv30U61atUrf//73ddVVVyUf//jjj/XDH/5Qt956qxYuXChJ+vGPf6wRI0boscce0/Tp0wtSHnQcixlYAAAAAAAAAAAAAAAAKCKhJ2BZlqWzzjpLZ511lj755BNJUk1NTd4LZjr11FO1YsUKLV68OG0C1tNPP62mpiYtXrw4+djw4cPVt29fPfroo54TsLZv367t27cn/960aZMkqampSU1NTQX6FWiLnTt3SpLi8Rb2EQAAuyj7Gs61HACAXRfXcwAAdn1czwEA2PVxPQfaT9DzLPQELFOhJ15J0i9+8Qs988wzevLJJzOee+edd1RaWqpOnTqlPd6jRw+98847np95zTXX6PLLL894/C9/+YsqKyvbXGbk3wvvW5Ki2vDhh1q7dm1HFwcAALTB3Xff3dFFAAAAbcT1HACAXR/XcwAAdn1cz4HC27JlS6DXtWkCVqG9+eabOuOMM3T33XervLw8b5974YUXas2aNcm/N23apD59+mjp0qWqra3N2/cgf7Y89aa0fp26du2q5csnd3RxAABADpqamnT33XdryZIlisViHV0cAACQA67nAADs+rieAwCw6+N6DrQfO6teNkU9Aevpp5/We++9p4kTJyYfa25u1oMPPqhvfetbuuuuu7Rjxw599NFHaVGw3n33XfXs2dPzc8vKylRWVpbxeCwWo3IqUpFoJPH/iMU+AgBgF0ebCwCAXR/XcwAAdn1czwEA2PVxPQcKL+g5VtQTsBYtWqR//OMfaY8dffTRGj58uM4//3z16dNHsVhM9957rw444ABJ0r///W+98cYbmjFjRkcUGQUSjyf+b8nq2IIAAAAAAAAAAAAAAAAAhlATsJqamrTHHnvo5ptv1pAhQwpVpqSamhqNHj067bGqqip16dIl+fixxx6rNWvWqL6+XrW1tfr85z+vGTNmaPr06QUvH9pP3P4H868AAAAAAAAAAAAAAABQREJNwIrFYnr++ecLVZac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23777XPNNdd84DVbWjnWtCHlWqsAFhWh+I9NCA3AAgAAAAAAAAC2pFdeeSUnnHBC+vXrl/bt22e77bbLt7/97bz55pvv+1pPPvlkTjnllE1W26YIJG2qml588cUcf/zx6d+/fzp06JABAwbkqKOOylNPPfWBr13uBLCoKLYgBAAAAAAAAAC2lP/5n//JPvvskxdeeCG33357XnzxxUyePDkPPvhghg4dmsWLF7+v6/Xq1SudO3feTNW2zqao6amnnsree++dv/zlL7nxxhszd+7c3HHHHRk8eHDOOuusTVRp+RLAoiLYghAAAAAAAAAAPjyKxWJWrF5Tkq/i+wghjB07Nu3bt88DDzyQz33uc9l2221zyCGH5Le//W3+93//N+eee26L9cuWLctRRx2VLl265GMf+1iuv/76Fuf/eWLVkiVLctJJJ6VXr16prq7OQQcdlGeeeabFc6ZNm5Z99903HTt2TM+ePfOlL30pSXLAAQdkwYIFOeOMM1IoFFL4x1SbBQsW5LDDDstWW22VLl26ZJdddsn06dM3eI//XFOhUMhPf/rTfOlLX0rnzp0zcODA/Od//ucGn18sFnPcccdl4MCBeeyxx3LooYfm4x//ePbcc89MnDgxd911V/PaCRMmZKeddkrnzp2zww475LzzzktDQ8NG3e9aK1asyAknnJBu3bpl2223zU033dTi/CuvvJKvfe1rqampSY8ePXL44Yfnr3/96wbr3xTabtarb0HXX399rrzyytTV1WWPPfbIddddl/3226/UZbHJGYEFAAAAAAAAAJXu7YbGfOL8+0vy2nMvGpnO7d87MrN48eLcf//9ueSSS9KpU6cW52pra3P00Udn6tSpmTRpUnP46corr8z3v//9XHjhhbn//vvz7W9/OzvttFMOPvjg9b7GV7/61XTq1Cn33ntvunfvnhtvvDGf//zn85e//CU9evTIPffcky996Us599xzc+utt2b16tXNYarf/OY32WOPPXLKKafk5JNPbr7m2LFjs3r16sycOTNdunTJ3Llz07Vr1/f1Hl144YW54oorcuWVV+a6667L0UcfnQULFqRHjx7rrH366afz3HPP5bbbbktV1bqzoGpqapq/79atW6ZMmZJ+/frlz3/+c04++eR069Yt3/ve95LkXe93rR//+Me5+OKL8/3vfz+//vWvc+qpp+Zz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Sl0OANAK+jkAVD79HAAqn34OAJVPP4ctZ22WaG22aEMEsJIsW7YsSbLNNtuUuBIAAAAAAAAAAKCcLFu2LN27d9/g+ULxvSJaHwFNTU157bXX0q1btxQKhVKXw3rU19dnm222ySuvvJLq6upSlwMAtIJ+DgCVTz8HgMqnnwNA5dPPYcspFotZtmxZ+vXrl6qqqg2uMwErSVVVVfr371/qMtgI1dXVGggAVDj9HAAqn34OAJVPPweAyqefw5bxbpOv1tpwNAsAAAAAAAAAAIB3JYAFAAAAAAAAAADQSgJYVIQOHTpk4sSJ6dChQ6lLAQBaST8HgMqnnwNA5dPPAaDy6edQfgrFYrFY6iIAAAAAAAAAAAAqkQlYAAAAAAAAAAAArSSABQAAAAAAAAAA0EoCWAAAAAAAAAAAAK0kgAUAAAAAAAAAANBKAlhUhOuvvz7bb799OnbsmCFDhuSJJ54odUkAQJILLrgghUKhxdfgwYObz69cuTJjx47N1ltvna5du2bMmDFZuHBhi2u8/PLLOfTQQ9O5c+f07t073/3ud7NmzZotfSsA8JExc+bMHHbYYenXr18KhULuvPPOFueLxWLOP//89O3bN506dcrw4cPzwgsvtFizePHiHH300amurk5NTU1OPPHELF++vMWaZ599Np/97GfTsWPHbLPNNrniiis2960BwEfGe/Xz4447bp0/r48aNarFGv0cAErnsssuy7777ptu3bqld+/eGT16dObNm9dizab6fP2RRx7JJz/5yXTo0CE77rhjpkyZsrlvDz6SBLAoe1OnTs2ZZ56ZiRMn5k9/+lP22GOPjBw5Mq+//nqpSwMAkuyyyy75v//7v+avxx9/vPncGWeckWnTpuVXv/pVHn300bz22mv58pe/3Hy+sbExhx56aFavXp3f//73ueWWWzJlypScf/75pbgVAPhIeOutt7LHHnvk+uuvX+/5K664Itdee20mT56cP/7xj+nSpUtGjhyZlStXNq85+uij89xzz2XGjBm5++67M3PmzJxyyinN5+vr6zNixIhst912mT17dq688spccMEFuemmmzb7/QHAR8F79fMkGTVqVIs/r99+++0tzuvnAFA6jz76aMaOHZs//OEPmTFjRhoaGjJixIi89dZbzWs2xefr8+fPz6GHHpoDDzwwTz/9dMaPH5+TTjop999//xa9X/goKBSLxWKpi4B3M2TIkOy77775yU9+kiRpamrKNttsk9NOOy1nn312iasDgI+2Cy64IHfeeWeefvrpdc4tXbo0vXr1ym233ZavfOUrSZLnn38+O++8c2bNmpX9998/9957b774xS/mtddeS58+fZIkkydPzoQJE7Jo0aK0b99+S94OAHzkFAqF3HHHHRk9enSSv0+/6tevX84666x85zvfSfL3nt6nT59MmTIlRx55ZP77v/87n/jEJ/Lkk09mn332SZLcd999+cIXvpBXX301/fr1yw033JBzzz03dXV1zf387LPPzp133pnnn3++JPcKAB9W/9zPk79PwFqyZMk6k7HW0s8BoLwsWrQovXv3zqOPPpphw4Ztss/XJ0yYkHvuuSdz5sxpfq0jjzwyS5YsyX333VeSe4UPKxOwKGurV6/O7NmzM3z48OZjVVVVGT58eGbNmlXCygCAtV544YX069cvO+ywQ44++ui8/PLLSZLZs2enoaGhRR8fPHhwtt122+Y+PmvWrOy2227NfzhMkpEjR6a+vj7PPffclr0RACDz589PXV1di/7dvXv3DBkypEX/rqmpaf6ftUkyfPjwVFVV5Y9//GPzmmHDhrUIU48cOTLz5s3L3/72ty10NwDw0fbII4+kd+/eGTRoUE499dS8+eabzef0cwAoL0uXLk2S9OjRI8mm+3x91qxZLa6xdo3/1w6bngAWZe2NN95IY2Nji6aRJH369EldXV2JqgIA1hoyZEimTJmS++67LzfccEPmz5+fz372s1m2bFnz35Ctqalp8Zx39vG6urr19vm15wCALWtt/323P4fX1dWld+/eLc63bds2PXr00OMBoEyMGjUqt956ax588MFcfvnlefTRR3PIIYeksbExiX4OAOWkqakp48ePz6c//ensuuuuSbLJPl/f0Jr6+vq8/fbbm+N24COrbakLAACgch1yyCHN3+++++4ZMmRItttuu/zyl79Mp06dSlgZAAAAfHQdeeSRzd/vtttu2X333fPxj388jzzySD7/+c+XsDIA4J+NHTs2c+bMyeOPP17qUoAPwAQsylrPnj3Tpk2bLFy4sMXxhQsXpra2tkRVAQAbUlNTk5122ikvvvhiamtrs3r16ixZsqTFmnf28dra2vX2+bXnAIAta23/fbc/h9fW1ub1119vcX7NmjVZvHixHg8AZWqHHXZIz5498+KLLybRzwGgXIwbNy533313Hn744fTv37/5+Kb6fH1Da6qrq/0latjEBLAoa+3bt8/ee++dBx98sPlYU1NTHnzwwQwdOrSElQEA67N8+fK89NJL6du3b/bee++0a9euRR+fN29eXn755eY+PnTo0Pz5z39u8aHvjBkzUl1dnU984hNbvH4A+KgbMGBAamtrW/Tv+vr6/PGPf2zRv5csWZLZs2c3r3nooYfS1NSUIUOGNK+ZOXNmGhoamtfMmDEjgwYNylZbbbWF7gYAWOvVV1/Nm2++mb59+ybRzwGg1IrFYsaNG5c77rgjDz30UAYMGNDi/Kb6fH3o0KEtrrF2jf/XDpteoVgsFktdBLybqVOn5thjj82NN96Y/fbbL9dcc01++ctf5vnnn19nv1oAYMv6zne+k8MOOyzbbbddXnvttUycODFPP/105s6dm169euXUU0/N9OnTM2XKlFRXV+e0005Lkvz+979PkjQ2NmbPPfdMv379csUVV6Suri7HHHNMTjrppFx66aWlvDUA+NBavnx58/SLvfbaK1dddVUOPPDA9OjRI9tuu20uv/zy/PCHP8wtt9ySAQMG5Lzzzsuzzz6buXPnpmPHjkn+vg3xwoULM3ny5DQ0NOT444/PPvvsk9tuuy1JsnTp0gwaNCgjRozIhAkTMmfOnJxwwgm5+uqrc8opp5Ts3gHgw+Ld+nmPHj1y4YUXZsyYMamtrc1LL72U733ve1m2bFn+/Oc/p0OHDkn0cwAopW9961u57bbbctddd2XQoEHNx7t37948mWpTfL4+f/787Lrrrhk7dmxOOOGEPPTQQzn99NNzzz33ZOTIkVv4ruHDTQCLivCTn/wkV155Zerq6rLnnnvm2muvbf5bOABA6Rx55JGZOXNm3nzzzfTq1Suf+cxncskll+TjH/94kmTlypU566yzcvvtt2fVqlUZOXJkJk2a1GKrggULFuTUU0/NI488ki5duuTYY4/ND3/4w7Rt27ZUtwUAH2qPPPJIDjzwwHWOH3vssZkyZUqKxWImTpyYm266KUuWLMlnPvOZTJo0KTvttFPz2sWLF2fcuHGZNm1aqqqqMmbMmFx77bXp2rVr85pnn302Y8eOzZNPPpmePXvmtNNOy4QJE7bIPQLAh9279fMbbrgho0ePzn/9139lyZIl6devX0aMGJGLL764xV9q1s8BoHQKhcJ6j99888057rjjkmy6z9cfeeSRnHHGGZk7d2769++f8847r/k1gE1HAAsAAAAAAAAAAKCVqkpdAAAAAAAAAAAAQKUSwAIAAAAAAAAAAGglASwAAAAAAAAAAIBWEsACAAAAAAAAAABoJQEsAAAAAAAAAACAVhLAAgAAAAAAAAAAaCUBLAAAAAAAAAAAgFYSwAIAAAAAAAAAAGglASwAAAAAKt5xxx2X0aNHl+z1jznmmFx66aUbtfbII4/Mj3/8481cEQAAAABbSqFYLBZLXQQAAAAAbEihUHjX8xMnTswZZ5yRYrGYmpqaLVPUOzzzzDM56KCDsmDBgnTt2vU918+ZMyfDhg3L/Pnz07179y1QIQAAAACbkwAWAAAAAGWtrq6u+fupU6fm/PPPz7x585qPde3adaOCT5vLSSedlLZt22by5Mkb/Zx99903xx13XMaOHbsZKwMAAABgS7AFIQAAAABlrba2tvmre/fuKRQKLY517dp1nS0IDzjggJx22mkZP358ttpqq/Tp0yf/9m//lrfeeivHH398unXrlh133DH33ntvi9eaM2dODjnkkHTt2jV9+vTJMccckzfeeGODtTU2NubXv/51DjvssBbHJ02alIEDB6Zjx47p06dPvvKVr7Q4f9hhh+UXv/jFB39zAAAAACg5ASwAAAAAPpRuueWW9OzZM0888UROO+20nHrqqfnqV7+aT33qU/nTn/6UESNG5JhjjsmKFSuSJEuWLMlBBx2UvfbaK0899VTuu+++LFy4MF/72tc2+BrPPvtsli5dmn322af52FNPPZXTTz89F110UebNm5f77rsvw4YNa/G8/fbbL0888URWrVq1eW4eAAAAgC1GAAsAAACAD6U99tgjP/jBDzJw4MCcc8456dixY3r27JmTTz45AwcOzPnnn58333wzzz77bJLkJz/5Sfbaa69ceumlGTx4cPbaa6/87Gc/y8MPP5y//OUv632NBQsWpE2bNundu3fzsZdffjldunTJF7/4xWy33XbZa6+9cvrpp7d4Xr9+/bJ69eoW2ysCAAAAUJkEsAAAAAD4UNp9992bv2/Tpk223nrr7Lbbbs3H+vTpkyR5/fXXkyTPPPNMHn744XTt2rX5a/DgwUmSl156ab2v8fbbb6dDhw4pFArNxw4++OBst9122WGHHXLMMcfk5z//efOUrbU6deqUJOscBwAAAKDyCGABAAAA8KHUrl27Fo8LhUKLY2tDU01NTUmS5cuX57DDDsvTTz/d4uuFF15YZwvBtXr27JkVK1Zk9erVzce6deuWP/3pT7n99tvTt2/fnH/++dljjz2yZMmS5jWLFy9OkvTq1WuT3CsAAAAApSOABQAAAABJPvnJT+a5557L9ttvnx133LHFV5cuXdb7nD333DNJMnfu3BbH27Ztm+HDh+eKK67Is88+m7/+9a956KGHms/PmTMn/fv3T8+ePTfb/QAAAACwZQhgAQAAAECSsWPHZvHixTnqqKPy5JNP5qWXXsr999+f448/Po2Njet9Tq9evfLJT34yjz/+ePOxu+++O9dee22efvrpLFiwILfeemuampoyaNCg5jWPPfZYRowYsdnvCQAAAIDNTwALAAAAAJL069cvv/vd79LY2JgRI0Zkt912y/jx41NTU5Oqqg1/jHbSSSfl5z//efPjmpqa/OY3v8lBBx2UnXfeOZMnT87tt9+eXXbZJUmycuXK3HnnnTn55JM3+z0BAAAAsPkVisVisdRFAAAAAEClevvttzNo0KBMnTo1Q4cOfc/1N9xwQ+6444488MADW6A6AAAAADY3E7AAAAAA4APo1KlTbr311rzxxhsbtb5du3a57rrrNnNVAAAAAGwpJmABAAAAAAAAAAC0kglYAAAAAAAAAAAArSSABQAAAAAAAAAA0EoCWAAAAAAAAAAAAK0kgAUAAAAAAAAAANBKAlgAAAAAAAAAAACtJIAFAAAAAAAAAADQSgJYAAAAAAAAAAAArSSABQAAAAAAAAAA0EoCWAAAAAAAAAAAAK30/wBF0hX4glGKdwAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 3000x500 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Extract recorded data for plotting\n",
|
||
"times, cache_sizes = zip(*cache.cache_size_over_time)\n",
|
||
"\n",
|
||
"# Plot the cache size over time\n",
|
||
"plt.figure(figsize=(30, 5))\n",
|
||
"plt.plot(times, cache_sizes, label=\"Objects in Cache\")\n",
|
||
"plt.xlabel(\"Time (s)\")\n",
|
||
"plt.ylabel(\"Number of Cached Objects\")\n",
|
||
"plt.title(\"Number of Objects in Cache Over Time\")\n",
|
||
"plt.legend()\n",
|
||
"plt.grid(True)\n",
|
||
"plt.savefig(f\"{TEMP_BASE_DIR}/objects_in_cache_over_time.pdf\")\n",
|
||
"\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "f30a0497-9b2e-4ea9-8ebf-6687de19aaa9",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAq4AAAIjCAYAAADC0ZkAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABBCElEQVR4nO3deVxV1f7/8fdB5YADg6AMDjiR8xSmoqldo8zMMsnSryUO35sZ5kBp0qRZiWmlWQ7XrqkNXrtqWnavmqlhmlMOqZlDhGkqOAIOCQbr90c/zrcjUHg8etj2ej4e+/HwrLXO3h8WR3i7XWcdmzHGCAAAACjhvDxdAAAAAFAcBFcAAABYAsEVAAAAlkBwBQAAgCUQXAEAAGAJBFcAAABYAsEVAAAAlkBwBQAAgCUQXAEAAGAJBFcAuEpbtmxRmzZtVK5cOdlsNu3YscPTJTmpUaOG7rnnHpefb7PZNGbMGPcVVEwHDx6UzWbTa6+95vI5+vbtqxo1aritJnefryhz5syRzWbTwYMHHW1X+30EbgQEV8AivvvuOz388MOqUqWK7Ha7wsPD1bt3b3333XeeLu0v7dKlS+rRo4dOnz6tSZMm6f3331dERISnywKAG1JpTxcA4M99/PHH6tWrlypWrKgBAwaoZs2aOnjwoGbNmqWFCxdq/vz5uv/++z1d5l9SSkqKfvrpJ73zzjv63//9X0+Xg2vsnXfeUV5enqfLAP6yCK5ACZeSkqJHHnlEtWrV0tq1a1WpUiVH39ChQ9WuXTs98sgj2rlzp2rVquXBSgu6cOGCypYt6+kyrqnjx49LkgICAjxbCK6LMmXKeLoE4C+NpQJACTdx4kRduHBBM2fOdAqtkhQcHKx//OMfOn/+vCZMmODUd+TIEQ0YMEDh4eGy2+2qWbOmBg0apJycHMeYjIwMDR8+XDVq1JDdblfVqlXVp08fnTx5UlLh6+wk6csvv5TNZtOXX37paLvtttvUqFEjbd26Ve3bt1fZsmX1zDPPSJI++eQTdenSxVFL7dq19dJLLyk3N9fpvPnn2LNnj/72t7+pbNmyqlKlSoGvTZIuXryoMWPG6KabbpKPj4/CwsLUvXt3paSkOMbk5eVp8uTJatiwoXx8fBQSEqKBAwfqzJkzxZr71atXq127dipXrpwCAgJ033336fvvv3f09+3bVx06dJAk9ejRQzabTbfddtsfnjMjI0PDhg1TtWrVZLfbVadOHb366qsF7uK99tpratOmjYKCguTr66uoqCgtXLiw0HN+8MEHatmypcqWLavAwEC1b99en3/+eYFx69atU8uWLeXj46NatWrpvffeK9Y8XO6nn37S448/rrp168rX11dBQUHq0aNHgddJ/utn3bp1GjJkiCpVqqSAgAANHDhQOTk5ysjIUJ8+fRQYGKjAwECNHDlSxphCrzlp0iRFRETI19dXHTp00O7duwuMWbJkiRo1aiQfHx81atRIixcvLvRcVzK3l7t8jevv1+HOnDlTtWvXlt1u1y233KItW7YU65zfffedOnbsKF9fX1WtWlUvv/zyH97V/fzzz9WsWTP5+PioQYMG+vjjj4t1HeBGwB1XoIRbunSpatSooXbt2hXa3759e9WoUUP/+c9/HG1Hjx5Vy5YtlZGRoUcffVT16tXTkSNHtHDhQl24cEHe3t46d+6c2rVrp++//179+/fXzTffrJMnT+rTTz/Vzz//rODg4Cuu9dSpU+rcubN69uyphx9+WCEhIZJ+CzDly5dXQkKCypcvr9WrV+uFF15QVlaWJk6c6HSOM2fO6K677lL37t314IMPauHChXr66afVuHFjde7cWZKUm5ure+65R6tWrVLPnj01dOhQnT17VitXrtTu3btVu3ZtSdLAgQM1Z84c9evXT0OGDFFqaqrefvttbd++XevXr//Du2dffPGFOnfurFq1amnMmDH65Zdf9NZbb6lt27batm2batSooYEDB6pKlSoaN26chgwZoltuucXxNRfmwoUL6tChg44cOaKBAweqevXq+vrrr5WYmKhjx45p8uTJjrFvvvmm7r33XvXu3Vs5OTmaP3++evTooc8++0xdunRxjHvxxRc1ZswYtWnTRmPHjpW3t7c2bdqk1atX684773SM++GHH/TAAw9owIABiouL07vvvqu+ffsqKipKDRs2LP43Wb+9Ge3rr79Wz549VbVqVR08eFDTp0/Xbbfdpj179hS4y/7EE08oNDRUL774ojZu3KiZM2cqICBAX3/9tapXr65x48bpv//9ryZOnKhGjRqpT58+Ts9/7733dPbsWcXHx+vixYt688031bFjR+3atcsx359//rliY2PVoEEDJSUl6dSpU+rXr5+qVq1aoP7izu2VmDdvns6ePauBAwfKZrNp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vv3220K3DMofk//u/N+vvczNzdXMmTOLXX/+najf33nKycnRtGnTin2Oy8XGxurkyZN6++23C/TlX+fBBx9Ubm6uXnrppQJjfv311z8MWWFhYWrWrJnmzp3rNG737t36/PPPdffdd7tU94MPPqgNGzZoxYoVBfoyMjL066+/Svptzmw2m9Od7YMHD2rJkiVOz+nWrZu8vLw0duzYAnc6r+WdvlKlShU4/1tvvVXknfirtWTJEh05csTxePPmzdq0aZNjl4nff79+v1Rh5cqV2rNnT4HaizO318vdd9+tjRs3avPmzY62EydOFPk/BUePHnX6O5uVlaX33ntPzZo1Y5kA/hK44wqUcJGRkZo7d6569+6txo0bF/jkrJMnT+pf//qXI2RK0rhx4/T555+rQ4cOevTRR1W/fn0dO3ZMCxYs0Lp16xQQEKARI0Zo4cKF6tGjh/r376+oqCidPn1an376qWbMmKGmTZuqYcOGat26tRITE3X69GlVrFhR8+fPdwSs4mjTpo0CAwMVFxenIUOGyGaz6f3337+qYNWnTx+99957SkhI0ObNm9WuXTudP39eX3zxhR5//HHdd9996tChgwYOHKikpCTt2LFDd955p8qUKaMDBw5owYIFevPNN/XAAw8UeY2JEyeqc+fOio6O1oABAxzbYfn7+2vMmDEu1T1ixAh9+umnuueeexxbUZ0/f167du3SwoULdfDgQQUHB6tLly564403dNddd+l//ud/dPz4cU2dOlV16tRxWjZSp04dPfvss3rppZfUrl07de/eXXa7XVu2bFF4eLiSkpJcqvPP3HPPPXr//ffl7++vBg0aaMOGDfriiy8UFBR0Ta5Xp04d3XrrrRo0aJCys7M1efJkBQUFOS25SEpKUpcuXXTrrbeqf//+On36tN566y01bNhQ586dc4wr7txeLyNHjtT777+vu+66S0OHDnVshxUREVFoPTfddJMGDBigLVu2KCQkRO+++67S09M9dscYuO48sZUBgCu3c+dO06tXLxMWFmbKlCljQkNDTa9evcyuXbsKHf/TTz+ZPn36mEqVKhm73W5q1apl4uPjTXZ2tmPMqVOnzODBg02VKlWMt7e3qVq1qomLizMnT550jElJSTExMTHGbrebkJAQ88wzz5iVK1cWuh1Ww4YNC61l/fr1pnXr1sbX19eEh4ebkSNH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AC7n8j6uGRkZ+uc//6nExESdPn1akrRnzx4dP37cbcUBAAAA+Vy647pz507dfvvtCggI0MGDB/X3v/9dFStW1Mcff6xDhw7pvffec3edAAAA+Itz6Y5rQkKC+vXrpwMHDsjHx8fRfvfdd2vt2rVuKw4AAADI51Jw3bJliwYOHFigvUqVKkpLS7vqogAAAIDLuRRc7Xa7srKyCrTv379flSpVuuqiAAAAgMu5FFzvvfdejR07VpcuXZIk2Ww2HTp0SE8//bRiY2PdWiAAAAAguRhcX3/9dZ07d06VK1fWL7/8og4dOqhOnTqqUKGCXnnlFXfXCAAAALi2q4C/v79Wrlyp9evX69tvv9W5c+d08803KyYmxt31AQAAAJJcDK752rZtq7Zt27qrFgAAAKBILi0VGDJkiKZMmVKg/e2339awYcOutiYAAACgAJeC66JFiwq909qmTRstXLjwqosCAAAALudScD116pT8/f0LtPv5+enkyZNXXRQAAABwOZeCa506dbR8+fIC7cuWLVOtWrWuuigAAADgci69OSshIUGDBw/WiRMn1LFjR0nSqlWr9Prrr2vy5MnurA8AAACQ5GJw7d+/v7Kzs/XKK6/opZdekiTVqFFD06dPV58+fdxaIAAAACBdxXZYgwYN0qBBg3TixAn5+vqqfPny7qwLAAAAcHJV+7hKUqVKldxRBwAAAPCHXHpzVnp6uh555BGFh4erdOnSKlWqlNMBAAAAuJtLd1z79u2rQ4cO6fnnn1dYWJhsNpu76wIAAACcuBRc161bp6+++krNmjVzczkAAABA4VxaKlCtWjUZY9xdCwAAAFAkl4Lr5MmTNWrUKB08eNDN5QAAAACFc2mpwEMPPaQLFy6odu3aKlu2rMqUKePUf/r0abcUBwAAAORzKbjy6VgAAAC43lwKrnFxce6uAwAAAPhDLq1xlaSUlBQ999xz6tWrl44fPy5JWrZsmb777ju3FQcAAADkcym4Jicnq3Hjxtq0aZM+/vhjnTt3TpL07bffavTo0W4tEAAAAJBcDK6jRo3Syy+/rJUrV8rb29vR3rFjR23cuNFtxQEAAAD5XAquu3bt0v3331+gvXLlyjp58uRVFwUAAABczqXgGhAQoGPHjhVo3759u6pUqXLVRQEAAACXcym49uzZU08//bTS0tJks9mUl5en9evX66mnnlKf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4uHKS45BgwYZf39/8+WXX5pjx445jgsXLjjGPPbYY6Z69epm9erV5ptvvjHR0dEmOjrag1WXPKNGjTLJyckmNTXV7Ny504waNcrYbDbz+eefG2OYw6vx+10FjGEui+PJJ580X375pUlNTTXr1683MTExJjg42Bw/ftwYwxwW1+bNm03p0qXNK6+8Yg4cOGA+/PBDU7ZsWfPBBx84xvB7pnhyc3NN9erVzdNPP12gz9OvR4LrVXjrrbdM9erVjbe3t2nZsqXZuHGjp0sq0dasWWMkFTji4uKMMb9tVfL888+bkJAQY7fbze2332727dvn2aJLmMLmT5KZPXu2Y8wvv/xiHn/8cRMYGGjKli1r7r//fnPs2DHPFV0C9e/f30RERBhvb29TqVIlc/vttztCqzHM4dW4PLgyl3/uoYceMmFhYcbb29tUqVLFPPTQQ+aHH35w9DOHxbd06VLTqFEjY7fbTb169czMmTOd+vk9UzwrVqwwkgqdG0+/Hm3GGHN97u0CAAAArmONKwAAACyB4AoAAABLILgCAADAEgiuAAAAsASCKwAAACyB4AoAAABLILgCAADAEgiuAAAAsASCKwDcAA4ePCibzaYdO3Z4uhQAuGYIrgDgJn379pXNZtP48eOd2pcsWSKbzeahqgDgxkFwBQA38vHx0auvvqozZ854uhS3yMnJ8XQJAOBAcAUAN4qJiVFoaKiSkpIK7R8zZoyaNWvm1DZ58mTVqFHD8bhv377q1q2bxo0bp5CQEAUEBGjs2LH69ddfNWLECFWsWFFVq1bV7NmzC5x/7969atOmjXx8fNSoUSMlJyc79e/evVudO3dW+fLlFRISokceeUQnT5509N92220aPHiwhg0bpuDgYHXq1Mn1yQAANyO4AoAblSpVSuPGjdNbb72ln3/+2eXzrF69WkePHtXatWv1xhtvaPTo0brnnnsUGBioTZs26bHHHtPAgQMLXGPEiBF68skntX37dkVHR6tr1646deqUJCkjI0MdO3ZU8+bN9c0332j58uVKT0/Xgw8+6HSOuXPnytvbW+vXr9eMGTNc/hoAwN0IrgDgZvfff7+aNWum0aNHu3yOihUrasqUKapbt6769++vunXr6sKFC3rmmWcUGRmpxMREeXt7a926dU7PGzx4sGJjY1W/fn1Nnz5d/v7+mjVrliTp7bffVvPmzTVu3DjVq1dPzZs317vvvqs1a9Zo//79jnNERkZqwoQJqlu3rurWrevy1wAA7kZwBYBr4NVXX9XcuXP1/fffu/T8hg0bysvr/35Eh4SEqHHjxo7HpUqVUlBQkI4fP+70vOjoaMefS5curRYtWjhq+Pbbb7VmzRqVL1/ecdSrV0+SlJKS4nheVFSUSzUDwLVW2tMFAMCNqH379urUqZMSExPVt29fR7uXl5eMMU5jL126VOD5ZcqUcXpss9kKbcvLyyt2TefOnVPXrl316quvFugLCwtz/LlcuXLFPicAXE8EVwC4RsaPH69mzZo5/Xd7pUqVlJaWJmOMY4ssd+69unHjRrVv316S9Ouvv2rr1q0aPHiwJOnmm2/WokWLVKNGDZUuzY9/ANbDUgEAuEYaN26s3r17a8qUKY622267TSdOnNCECROUkpKiqVOnatmyZW675tSpU7V48WLt3btX8fHxOnPmjPr37y9Jio+P1+nTp9WrVy9t2bJFKSkpWrFihfr166fc3Fy31QAA1wrBFQCuobFjxzr9d379+vU1bdo0TZ06VU2bNtXmzZv11FNPue1648eP1/jx49W0aVOtW7dOn376qYKDgyVJ4eHhWr9+vXJzc3XnnXeqcePGGjZsmAICApzW0wJASWUzly+2AgAAAEog/okNAAAASyC4AgAAwBIIrgAAALAEgisAAAAsgeAKAAAASyC4AgAAwBIIrgAAALAEgisAAAAsgeAKAAAASyC4AgAAwBIIrgAAALCE/wdDda1wJWY5swAAAABJRU5ErkJggg==",
|
||
"text/plain": [
|
||
"<Figure size 800x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from collections import Counter\n",
|
||
"# Count occurrences of each number\n",
|
||
"count = Counter(list(db.lambda_values.values()))\n",
|
||
"\n",
|
||
"# Separate the counts into two lists for plotting\n",
|
||
"x = list(count.keys()) # List of unique numbers\n",
|
||
"y = list(count.values()) # List of their respective counts\n",
|
||
"\n",
|
||
"# Plot the data\n",
|
||
"plt.figure(figsize=(8, 6))\n",
|
||
"plt.bar(x, y, color='skyblue')\n",
|
||
"\n",
|
||
"# Adding labels and title\n",
|
||
"plt.xlabel('Number')\n",
|
||
"plt.ylabel('Occurrences')\n",
|
||
"plt.title('Occurance of each lambda in db')\n",
|
||
"plt.savefig(f\"{TEMP_BASE_DIR}/lambda_distribution.pdf\")\n",
|
||
"\n",
|
||
"# Show the plot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "c192564b-d3c6-40e1-a614-f7a5ee787c4e",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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/Tlrv/32W9cazuy50+k0Q4cOLfY9qlGjhomMjDQ5OTnFjnvm68zTHs2ePdtIMnfddddf1p5pxYoVRpJp3LixyczMdI0fPXrUNGzY0EgyK1eudI2XNVRLMsOHD3cL/G+99ZaRZIYMGeJWf+211xrOvwGlw+UfACqswMBA1ahRo9h4p06dFBsbq++++67E+40ePVqXX36563bdunXVoUMHZWVl6Z///KdCQ0Ndc3Fxcbr88sv1yy+/nPVYderUcd12OBx65plnJMntv92LLiGZOHGi/P39XeO1a9fW6NGjSzx2dHR0sTFvb28NHTpUhYWF+v7770u835mqV6+uHj16aOvWrVq/fr3b3Pvvvy9Juuuuu9zGq1SpoipVqhQ7VkhIyF8+XpGiNyj269fPNVb056K5IqtXr9batWvVsWNH3XfffcWOdWZ/3333XeXk5OjBBx9Uq1atzln76quvSpJmzpzp1nObzaZnn31WNptNH330kdv9HQ6HvLy8ih33z68zT3qUmppabK2l8e6770o6fRlTYGCgazw4OFiPP/64JJ3z8prS8vf313PPPSe7/f9HgP79+8vb21tr1qzx+PjApYo3KgKo0JYvX66XX35Zq1at0uHDh1VQUOCaczgcJd6nZcuWxcYiIiLOObdq1aoSj3XNNdcUG4uPj5e3t7c2bNjgGisK5SXVlzQmSceOHdO///1vLViwQL/99ptycnLc5g8cOFDi/f7s7rvv1kcffaT3339fV155paTTbyJcuHChmjVr5rbDRO/evTVu3Dg1bdpUd955pzp16qQOHTooICCgVI8lSbm5ufrggw9UvXp19ezZ0zXeqVMn1a1bV/Pnz1dGRoaCg4MlnQ7VktSlS5e/PPb51P7888/y9/c/664jfn5+2rZtm+t279699dprr6lp06bq3bu3OnXqpPj4ePn5+bndz4oelUXR6+m6664rNtepUydJ0saNGz1+nIYNG6patWpuY97e3goLC1NmZqbHxwcuVYRqABXWJ598ojvuuEPVqlVTYmKi6tWrp6pVq7renHW2N+eVFH68vb3POXdmWD9TWFhYsTEvLy+FhIQoKyvLNZaVlSW73a6aNWuW6hh5eXm67rrrtH79erVq1Up33323QkJC5O3trd27d+vdd99Vbm5uiWv6sy5duigsLExz587Vv//9b3l5eenTTz/VyZMndffdd7vVPvTQQwoJCdHrr7+uF154Qf/+97/l7e2tbt266aWXXirx7PmfLViwQEeOHNGAAQPcAqndblffvn317LPP6sMPP9SIESNcvZFOn7X/K+dTe/ToURUUFOiJJ544a82Zv6hMnTpV0dHRmjVrlp5++mk9/fTT8vX11e23364XXnjB9b3ztEfh4eGSpP379//lczhTdna27Ha72/+kFAkLC5PNZlN2dvZ5HbMkZ/vlwNvbu9ibOwGUHqEaQIU1adIk+fr6at26dWrQoIHb3Ny5cy/IGtLS0hQTE+M2VlhYqCNHjriF5cDAQDmdTh0+fLhYKEpLSyt23M8//1zr16/XoEGD9NZbb7nNzZ0713UpQGl4eXmpT58+evnll/Xdd98pMTFR77//vux2u+688063WpvNpoEDB2rgwIE6cuSIfvjhB3300Uf6+OOPtWPHDm3atKnEyyPOVHR5x6xZszRr1qyz1hSF6qCgIEmlC5ln1tarV++ctQEBAbLZbDp8+PBfHlc6HRofeughPfTQQzpw4IBWrFihWbNm6b333lNqaqq++eYbSZ736Oqrr5Z0+n9ZnE6n22UWf/V8nE6nDh06pFq1arnNpaenyxjjFoiLjlvSL4Rn/sIH4MLgmmoAFdZvv/2mxo0bFwvUBw8e1O+//35B1vDDDz8UG0tOTlZBQYHbNb9Fl1iUVF/SWNGWgDfffHOp6v9K0RnpDz74QPv27dOKFSvUqVOnc57xDQkJUY8ePTRv3jxdf/312rp1q3bu3HnOx9mzZ4+WLl2qsLAwDRo0qMSv6OhobdiwwXU5Q9u2bSVJ33777V8+j/OpjYuL05EjR7Rjx46/rP2zyMhI9enTR4sXL1b9+vX13Xff6eTJk8XqytKj+vXrq2PHjtq3b99f/nJ05v9GFL2eStpmr2jszMuXii6vKemXlTMvTfJE0S8PnMEG/hqhGkCFFRUVpZ07d7qd6T116pSGDRtW4j7Rf4epU6fqjz/+cN3Oy8vTP//5T0ly26+3KNQ++eSTbpcc7N+/X1OnTi123KioKEnSjz/+6Da+YsUKvfnmm+e9ziuvvFJNmjTR/Pnz9cYbb8gYU+zSD+l0ODPGuI3l5+fr6NGjkiRfX99zPs6sWbPkdDo1ZMgQvfXWWyV+PfLII5L+/xntq666SldddZVWrlxZ4nM7MxT2799f1apV0wsvvFDi9cNn1o4aNUqSXGeU/yw1NVW//vqrpNPhNSkpqVhNTk6Ojh8/ripVqrjO/HraI+n068bPz08jR47UvHnzSqz54YcfdP3117tu9+/fX5L0xBNPuF3mkZWV5brEpahGklq3bi2bzaa5c+fq1KlTrvEdO3aU+Jori6I3cO7bt8+S4wEXMy7/AFAuNm/efNYPkWjUqJEeeeQR3X///br//vvVqlUr3XrrrSooKNCSJUtkjFGLFi3OumOHldq1a6cWLVrojjvukL+/vxYuXKjt27frlltuUa9evVx1nTp10oABA1wfOtOzZ0/l5uZq3rx5ateunRYtWuR23O7du6tevXqaMmWKtmzZoqZNm2r79u1atGiRevbsqU8//fS813r33XdrwoQJmjJliqpWreq2viI9evRQQECA2rVrp6ioKOXn52vJkiXaunWrbr31VlfYL4nT6dSsWbP+8gNA7rjjDo0ZM0Zz5szRv//9b/n6+mrOnDm67rrrNHjwYL3//vuKj4/XqVOnlJKSog0bNrhCca1atfTee++pd+/eatu2rf7xj38oJiZGhw8f1qpVq1SvXj0tWLBAktS1a1c99thjeuqpp1S/fn117dpVUVFROnLkiHbu3KkffvhBTz/9tBo3bqyTJ0/q6quvVsOGDdW6dWtddtllOn78uBYtWqTU1FQ99NBD8vHx8bhHRVq2bKmFCxfq9ttvV+/evfXkk0+qY8eOqlGjho4ePaqffvpJmzdvVv369V336dixo+6//3698soratq0qXr16iVjjP7zn//ojz/+0KhRo9SxY0dXfdHZ9g8//FCtW7dW165dlZ6ervnz56tr167n/WE+Jbn++uv16aefqlevXrrxxhvl6+urFi1auD4tEsAZynM/PwCXnqJ9qs/1de211xpjTu83PGPGDBMbG2t8fX1NeHi4GTRokElPTy9x/9yifaq///77Yo9btO/0rl27is2VdKyi+t9++808++yzpn79+sbhcJioqCgzadIkk5ubW+w4BQUFZvLkyebyyy83DofDXH755eZf//qX2blz51n3qe7Vq5cJDQ01VatWNVdddZWZO3fuWfcY/it79+41drvdSDJ9+vQpsea1114z//jHP0xUVJTx9fU1ISEhpm3btub11183eXl55zz+N9984/b9OZe+ffsaSWbOnDmusdTUVDN69GhXf2rU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lyo0NFSNGzfWDTfcoLp168rLy8utxmazaerUqZYsEgAAAKjIyhSqX331VdefFy1aVGINoRoAAACXijKFaqfTafU6AAAAgEqrTNdUAwAAAPj/CNUAAACAh8p0+Yfdbi/VJyYWFhaW5fAAAABApVKmUD1x4sRiobqwsFC7d+/WggULFBMTo5tuusmSBQIAAAAVXZlC9aRJk846d/DgQbVr104NGzYs65oAAACASsXya6ojIiI0dOhQPfXUU1YfGgAAAKiQ/pY3Kvr7+2vXrl1/x6EBAACACsfyUL1lyxZNmzaNyz8AAABwySjTNdXR0dEl7v6RmZmprKwsVa1aVQsWLPB0bQAAAEClUKZQfe211xYL1TabTcHBwbriiivUu3dv1ahRw5IFAgAAABVdmUL17NmzLV4GAAAAUHlZck31yZMndfLkSSsOBQAAAFQ6ZQ7Ve/fu1YABAxQWFqZq1aqpWrVqCgsL08CBA7Vnzx4r1wgAAABUaGW6/GPbtm3q0KGDMjMzdcMNN6hx48au8ffee08LFy7Ujz/+qJiYGEsXCwAAAFREZQrVjzzyiOx2uzZs2KBmzZq5zW3ZskWdO3fWI488ovnz51uySAAAAKAiK9PlHytWrNCoUaOKBWpJatq0qUaOHKnly5d7ujYAAACgUihTqM7Pz5efn99Z56tWrar8/PwyL+psCgsL9dhjjyk6Olp+fn664oor9NRTT8kY46oxxmjixImKiIiQn5+fEhIStGPHDrfjHD16VH379lVAQICCgoI0aNAgHT9+3K1m06ZNuuaaa+Tr66u6detqypQpxdbzySefqFGjRvL19VWzZs301VdfWf6cAQAAUPGVKVS3atVKb731lrKysorNZWdn6+2339aVV17p8eL+7LnnntPrr7+uV199Vb/++quee+45TZkyRa+88oqrZsqUKZo2bZpmzJihVatWyd/fX4mJiTp16pSrpm/fvkpJSdGSJUu0aNEirVy5UoMHD3Z7Dl26dFFUVJTWrVun559/XpMmTdLMmTNdNUlJSerTp48GDRqkDRs2qEePHurRo4e2bNli+fMGAABAxWYzZ57mLaVly5apa9euCgkJ0YABA1wfSb59+3a9++67OnLkiBYvXqxOnTpZutibbrpJYWFhevvtt11jvXr1kp+fnz744AMZYxQZGakHH3xQDz30kCQpKytLYWFhmj17tnr37q1ff/1VTZo00Zo1a9SmTRtJ0uLFi/U///M/+uOPPxQZGanXX39d//znP5WamiqHwyHp9HXkCxYs0LZt2yRJd9xxh3JycrRo0SLXWtq1a6eWLVtqxowZpXo+2dnZCgwMVFZWlgICAjzuj9PpVHp6umrVqiW73fJPoL+k0Evr0Etr0Efr0Evr0Evr0EvrWN3L0ua1Mr1R8frrr9dXX32lhx9+WM8++6zbXMuWLfX+++9bHqglqX379po5c6b++9//qmHDhvrll1/0448/6sUXX5Qk7dq1S6mpqUpISHDdJzAwUHFxcUpOTlbv3r2VnJysoKAgV6CWpISEBNntdq1atUo9e/ZUcnKyOnbs6ArUkpSYmKjnnntOGRkZCg4OVnJyssaOHeu2vsTExHN+PHtubq5yc3Ndt7OzsyWd/uY7nU6PelN0HGOMJce61NFL69BLa9BH69BL69BL69BL61jdy9Iep0yhWjodRDds2KDU1FTXvtRRUVEKDw8v6yH/0iOPPKLs7Gw1atRIXl5eKiws1DPPPKO+fftKklJTUyVJYWFhbvcLCwtzzaWmpqpWrVpu897e3qpRo4ZbTXR0dLFjFM0FBwcrNTX1nI9TksmTJ+uJJ54oNn7o0CG3y1PKyul0KisrS8YYfsv1EL20Dr20xqXQR6fTqb179+r48eOqVq2aLrvssr/luV4KvbxQ6KV16KV1rO7lsWPHSlVX5lBdJDw8/G8N0mf6+OOPNWfOHH344YeKjY3Vxo0bNWbMGEVGRqp///4XZA2emDBhgtvZ7ezsbNWtW1ehoaGWXf5hs9kUGhrKD6SH6KV16KU1LvY+Jicn6/WZb2n77v3KLyhUFW8vxdSrrWGD71V8fLylj3Wx9/JCopfWoZfWsbqXvr6+paordajesWOHmjVrplGjRpW4E0aRhx9+WK+++qq2bt1a7Gyvpx5++GE98sgj6t27tySpWbNm2rNnjyZPnqz+/fu7wn1aWpoiIiJc90tLS1PLli0lnf4lID093e24BQUFOnr0qOv+4eHhSktLc6spuv1XNef6BcPHx0c+Pj7Fxu12u2U/QDabzdLjXcropXXopTUu1j4mJSVp/MSndDKwnqK7DpZ/zXDlHE7VtrXfafzEpzTlqYlq3769pY95sfayPNBL69BL61jZy9Ieo9SPNG3aNIWHh+uZZ545Z90zzzyj8PBwTZs2rbSHLrUTJ04Ue2JeXl6ua12io6MVHh6upUuXuuazs7O1atUq15mO+Ph4ZWZmat26da6aZcuWyel0Ki4uzlWzcuVKt20BlyxZopiYGAUHB7tqznycohqrz6gAwMXM6XRq+oyZOhlYTy26D1RgRJS8q/goMCJKzW8aqFNB9fTaG29ynSmACq/Uofrbb79V7969VaVKlXPWORwO9e7dW19//bXHi/uz7t2765lnntGXX36p3bt3a/78+XrxxRfVs2dPSad/KxkzZoyefvppffHFF9q8ebP69eunyMhI9ejRQ5LUuHFjde3aVffdd59Wr16tn376SSNHjlTv3r0VGRkpSbrzzjvlcDg0aNAgpaSkaN68eZo6darbpRujR4/W4sWL9cILL2jbtm2aNGmS1q5dq5EjR1r+vAHgYpWSkqLtu/cr+qoE2Ww2tzmbzaaoNp21bdcfSklJKacVAkDplPryj7179yomJqZUtQ0aNHC9edFKr7zyih577DENHz5c6enpioyM1JAhQzRx4kRXzbhx45STk6PBgwcrMzNTHTp00OLFi92uh5kzZ45Gjhypzp07y263q1evXm5n1gMDA/Xtt99qxIgRat26tWrWrKmJEye67WXdvn17ffjhh3r00Uf1v//7v2rQoIEWLFigpk2bWv68AeBilZGRobyCQvnXLPnSuWoh4corKFRGRsYFXhkAnJ9Sh2ofH59inzp4Njk5OW7b0VmlevXqevnll/Xyyy+ftcZms+nJJ5/Uk08+edaaGjVq6MMPPzznYzVv3lw//PDDOWtuu+023XbbbeesAQCcXXBwsBzeXso5nKrAiKhi88ePpMrh7eW69A4AKqpSX/7RqFEjfffdd6WqXbp0qRo3blzmRQEALg2xsbGKqVdbu9d+pz9/FpkxRnvWLlWj6DqKjY0tpxUCQOmUOlTfcccdWrRo0Tk/3ESSPv/8cy1atEh33HGHp2sDAFzk7Ha7RgwdLN/M3dq06B1lHtytgrxTyjx4+rZv5m4NH3IfuyEAqPBK/bfU8OHD1apVK912220aNmyYfvrpJ2VnZ8sYo+zsbP30008aNmyYbr31VrVo0ULDhw//O9cNALhItG/fXlOemqgY/1Pa8/VMbZj9uPZ8PVONquX+LdvpAcDf4byuqf7mm2/Uv39/vfHGG5o5c2axGmOMunbtqvfee6/E/ZgBAChJ+/bt1a5dO6WkpCgjI0PBwcGKjY3lDDWASuO8PlExJCREixYt0urVq/XFF1/o119/VXZ2tgICAtSoUSN1795d7dq1+7vWCgC4iNntdjVr1qy8lwEAZVKmjylv27at2rZta/VaAAAAgEqJ/1cDAAAAPESoBgAAADxEqAYAAAA8RKgGAAAAPESoBgAAADxkaaj+/fff9euvv1p5SAAAAKDCK1OonjZtmnr37u02NmDAADVo0EBNmzZVmzZtlJ6ebskCAQAAgIquTKH6rbfeUlhYmOv2N998o3fffVeDBw/WK6+8ot9//11PPPGEZYsEAAAAKrIyffjLnj171LhxY9ftjz/+WNHR0Xr99dclSampqXr//fetWSEAAABQwZXpTLUxxu32t99+qxtvvNF1u169ekpNTfVsZQAAAEAlUaZQ3bBhQ82fP1/S6Us/Dhw44Baq//jjDwUFBVmyQAAAAKCiK9PlHw899JDuvPNOBQcHKycnR40bN1ZiYqJrftmyZWrZsqVVawQAAAAqtDKF6t69eyskJERfffWVgoKCNHz4cHl7nz7U0aNHVaNGDd19992WLhQAAACoqMoUqiXphhtu0A033FBsvEaNGvrss888WhQAAABQmZQ5VP/ZiRMnNHfuXOXm5up//ud/FBUVZdWhAQAAgAqtTKF60KBBWrVqlbZs2SJJysvLU7t27Vy3AwMDtWzZMrVq1cq6lQIAAAAVVJl2//j+++91yy23uG5/+OGH2rJli+bMmaMtW7YoPDycD38BAADAJaNMoTo1NVX16tVz3V6wYIHatGmjPn36qEmTJrrvvvu0atUqq9YIAAAAVGhlCtX+/v7KzMyUJBUUFGj58uVuW+pVr15dWVlZliwQAAAAqOjKdE31lVdeqTfffFOdOnXSF198oWPHjql79+6u+d9++01hYWGWLRIAAACoyMoUqp955hklJiaqTZs2Msbo1ltvVdu2bV3z8+fP19VXX23ZIgEAAICKrEyhuk2bNtq2bZuSkpIUFBSka6+91jWXmZmp4cOHu40BAAAAF7My71MdGhqqm2++udh4UFCQRo8e7dGiAAAAgMqkTG9UlKTCwkLNnTtXQ4YMUc+ePbV582ZJUlZWlj777DOlpaVZtkgAAACgIitTqM7MzNTVV1+tO++8Ux999JG++OILHTp0SJJUrVo1jRo1SlOnTrV0oQAAAEBFVaZQ/cgjjyglJUXffPONfv/9dxljXHNeXl669dZb9dVXX1m2SAAAAKAiK1OoXrBgge6//37dcMMNstlsxeYbNmyo3bt3e7o2AAAAoFIoU6jOyspSdHT0Wefz8/NVUFBQ5kUBAAAAlUmZQvUVV1yh9evXn3X+22+/VZMmTcq8KAAAAKAyKVOovvfee/XOO+9o3rx5ruupbTabcnNz9c9//lOLFy/WkCFDLF0oAAAAUFGVaZ/q0aNHKyUlRX369FFQUJAk6c4779SRI0dUUFCgIUOGaNCgQVauEwAAAKiwyhSqbTab3nzzTfXv31+ffvqpduzYIafTqSuuuEK33367OnbsaPU6AQAAgAqrzJ+oKEkdOnRQhw4drFoLAAAAUCmV6ZrqXbt2aeHChWedX7hwIVvqAQAA4JJRpjPVDz30kLKzs9W9e/cS56dPn66goCDNnTvXo8UBAAAAlUGZzlQnJyfrhhtuOOt8586d9cMPP5R5UQAAAEBlUqZQnZGRoerVq591vlq1ajpy5EiZFwUAAABUJmUK1Zdddpl++umns87/8MMPqlOnTpkXBQAAAFQmZQrVffr00UcffaRp06bJ6XS6xgsLCzV16lTNmzdPd955p2WLBAAAACqyMr1RccKECfrxxx81ZswYPfPMM4qJiZEkbd++XYcOHdJ1112nf/7zn5YuFAAAAKioynSm2sfHR99++63efvtttW3bVocPH9bhw4fVtm1bvfPOO/ruu+/k4+Nj9VoBAACACqlMoVqS7Ha7BgwYoIULF2rr1q3aunWrFi5cqHvuuUd2e5kP+5f279+vu+66SyEhIfLz81OzZs20du1a17wxRhMnTlRERIT8/PyUkJCgHTt2uB3j6NGj6tu3rwICAhQUFKRBgwbp+PHjbjWbNm3SNddcI19fX9WtW1dTpkwptpZPPvlEjRo1kq+vr5o1a6avvvrq73nSAAAAqNDKlH6PHj2qTZs2nXV+8+bNysjIKPOiziYjI0NXX321qlSpoq+//lpbt27VCy+8oODgYFfNlClTNG3aNM2YMUOrVq2Sv7+/EhMTderUKVdN3759lZKSoiVLlmjRokVauXKlBg8e7JrPzs5Wly5dFBUVpXXr1un555/XpEmTNHPmTFdNUlKS+vTpo0GDBmnDhg3q0aOHevTooS1btlj+vAEAAFDBmTLo16+fiYuLO+t8fHy8GThwYFkOfU7jx483HTp0OOu80+k04eHh5vnnn3eNZWZmGh8fH/PRRx8ZY4zZunWrkWTWrFnjqvn666+NzWYz+/fvN8YY89prr5ng4GCTm5vr9tgxMTGu27fffrvp1q2b2+PHxcWZIUOGlPr5ZGVlGUkmKyur1Pc5l8LCQnPw4EFTWFhoyfEuZfTSOvTSGvTROvTSOvTSOvTSOlb3srR5rUxvVFy2bJmGDRt21vnu3btrxowZZUv55/DFF18oMTFRt912m1asWKHatWtr+PDhuu+++ySd/vj01NRUJSQkuO4TGBiouLg4JScnq3fv3kpOTlZQUJDatGnjqklISJDdbteqVavUs2dPJScnq2PHjnI4HK6axMREPffcc8rIyFBwcLCSk5M1duxYt/UlJiZqwYIFZ11/bm6ucnNzXbezs7MlSU6n020XlbJyOp0yxlhyrEsdvbQOvbQGfbQOvbQOvbQOvbSO1b0s7XHKFKoPHTqkmjVrnnU+JCRE6enpZTn0Of3+++96/fXXNXbsWP3v//6v1qxZo1GjRsnhcKh///5KTU2VJIWFhbndLywszDWXmpqqWrVquc17e3urRo0abjXR0dHFjlE0FxwcrNTU1HM+TkkmT56sJ554otj4oUOH3C5PKSun06msrCwZY/7W69ovBfTSOvTSGvTROvTSOvTSOvTSOlb38tixY6WqK1OojoiI0IYNG846v27dOoWGhpbl0OfkdDrVpk0b/etf/5IktWrVSlu2bNGMGTPUv39/yx/PahMmTHA7u52dna26desqNDRUAQEBHh/f6XTKZrMpNDSUH0gP0Uvr0Etr0Efr0Evr0Evr0EvrWN1LX1/fUtWVKVT36NFD06dP14033qh//OMfbnOff/65Zs2adc7LQ8oqIiJCTZo0cRtr3Lix/vOf/0iSwsPDJUlpaWmKiIhw1aSlpally5aumj+fRS8oKNDRo0dd9w8PD1daWppbTdHtv6opmi+Jj49PiVsN2u12y36AbDabpce7lNFL69BLa9BH69BL69BL69BL61jZy9Ieo0yPNGnSJMXExKhnz5668sor1a9fP/Xr109XXnmlbrnlFjVs2LDEyxw8dfXVV2v79u1uY//9738VFRUlSYqOjlZ4eLiWLl3qms/OztaqVasUHx8vSYqPj1dmZqbWrVvnqlm2bJmcTqfi4uJcNStXrlR+fr6rZsmSJYqJiXHtNBIfH+/2OEU1RY8DAACAS0eZQnVgYKB+/vlnPfroo8rPz9enn36qTz/9VPn5+Xrssce0atUqBQUFWbxU6YEHHtDPP/+sf/3rX9q5c6c+/PBDzZw5UyNGjJB0+reSMWPG6Omnn9YXX3yhzZs3q1+/foqMjFSPHj0knT6z3bVrV913331avXq1fvrpJ40cOVK9e/dWZGSkJOnOO++Uw+HQoEGDlJKSonnz5mnq1Klul26MHj1aixcv1gsvvKBt27Zp0qRJWrt2rUaOHGn58wYAAEAFZ8leIyU4evTo33LchQsXmqZNmxofHx/TqFEjM3PmTLd5p9NpHnvsMRMWFmZ8fHxM586dzfbt291qjhw5Yvr06WOqVatmAgICzIABA8yxY8fcan755RfToUMH4+PjY2rXrm2effbZYmv5+OOPTcOGDY3D4TCxsbHmyy+/PK/nwpZ6FRe9tA69tAZ9tA69tA69tA69tE55balnM8YYqwJ6bm6uvvjiC82ZM0eLFy+2ZEeLi1l2drYCAwOVlZVl2RsV09PTVatWLa7H8hC9tA69tAZ9tA69tA69tA69tI7VvSxtXivTGxXPZIzR0qVLNWfOHM2fP1/Z2dkKDQ3VnXfe6emhAQAAgEqhzKF63bp1mjNnjubOnavU1FTZbDb17t1bI0eOVLt27WSz2axcJwAAAFBhnVeo/v333zVnzhzNmTNHO3bsUO3atdW3b1+1bdtWd9xxh3r16sXuFwAAALjklDpUx8fHa/Xq1apZs6ZuvfVWvfXWW+rQoYMk6bfffvvbFggA5cnpdColJUUZGRkKDg5WbGws1zsCAIopdahetWqVoqOj9eKLL6pbt27y9vb4cmwAqNCSkpI0fcZMbd+9X3kFhXJ4eymmXm2NGDpY7du3L+/lAQAqkFKfbnn11VcVERGhnj17Kjw8XEOGDNH3338vCzcPAYAKIykpSeMee1Lbjvuq3o1D1GrAk6p34xBtz/HVuMeeVFJSUnkvEQBQgZQ6VA8fPlw//vijfvvtN40ZM0Y//PCDOnfurNq1a2vixImy2Wy8ORHARcHpdGr6jJk6GVhPLboPVGBElLyr+CgwIkrNbxqoU0H19Nobb8rpdJb3UgEAFcR5XxgYHR2tRx99VFu3btWaNWvUu3dvLV++XMYYDR8+XIMHD9aiRYvYoxpApZWSkqLtu/cr+qqEYicLbDabotp01rZdfyglJaWcVggAqGg8erdN69at9eKLL2rfvn369ttvlZiYqHnz5ukf//iHatasadUaAeCCysjIUF5Bofxrhpc4Xy0kXHkFhcrIyLjAKwMAVFSWvIXdbrcrISFBs2fPVlpamj766CN17tzZikMDwAUXHBwsh7eXcg6nljh//EiqHN5eCg4OvsArAwBUVJbvC+Xr66s77rhDn3/+udWHBoALIjY2VjH1amv32u+KvRnbGKM9a5eqUXQdxcbGltMKAQAVDZutAsCf2O12jRg6WL6Zu7Vp0TvKPLhbBXmnlHnw9G3fzN0aPuQ+9qsGALiw2TQAlKB9+/aa8tTE0/tUfz3TtU91o+g6Gv7gRPapBgC4IVQDwFm0b99e7dq14xMVAQB/iVANAOdgt9vVrFmz8l4GAKCC43QLAAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgoUodqp999lnZbDaNGTPGNXbq1CmNGDFCISEhqlatmnr16qW0tDS3++3du1fdunVT1apVVatWLT388MMqKChwq1m+fLmuvPJK+fj4qH79+po9e3axx58+fbrq1asnX19fxcXFafXq1X/H0wQAAEAFV2lD9Zo1a/TGG2+oefPmbuMPPPCAFi5cqE8++UQrVqzQgQMHdMstt7jmCwsL1a1bN+Xl5SkpKUnvvvuuZs+erYkTJ7pqdu3apW7duqlTp07auHGjxowZo3vvvVfffPONq2bevHkaO3asHn/8ca1fv14tWrRQYmKi0tPT//4nDwAAgAqlUobq48ePq2/fvnrzzTcVHBzsGs/KytLbb7+tF198Uddff71at26tWbNmKSkpST///LMk6dtvv9XWrVv1wQcfqGXLlrrxxhv11FNPafr06crLy5MkzZgxQ9HR0XrhhRfUuHFjjRw5Urfeeqteeukl12O9+OKLuu+++zRgwAA1adJEM2bMUNWqVfXOO+9c2GYAAACg3HmX9wLKYsSIEerWrZsSEhL09NNPu8bXrVun/Px8JSQkuMYaNWqkyy67TMnJyWrXrp2Sk5PVrFkzhYWFuWoSExM1bNgwpaSkqFWrVkpOTnY7RlFN0WUmeXl5WrdunSZMmOCat9vtSkhIUHJy8lnXnZubq9zcXNft7OxsSZLT6ZTT6SxbM87gdDpljLHkWJc6emkdemkN+mgdemkdemkdemkdq3tZ2uNUulA9d+5crV+/XmvWrCk2l5qaKofDoaCgILfxsLAwpaamumrODNRF80Vz56rJzs7WyZMnlZGRocLCwhJrtm3bdta1T548WU888USx8UOHDunUqVNnvV9pOZ1OZWVlyRgju71S/idEhUEvrUMvrUEfrUMvrUMvrUMvrWN1L48dO1aqukoVqvft26fRo0dryZIl8vX1Le/lnLcJEyZo7NixrtvZ2dmqW7euQkNDFRAQ4PHxnU6nbDabQkND+YH0EL20Dr20Bn20Dr20Dr20Dr20jtW9LG3mrFShet26dUpPT9eVV17pGissLNTKlSv16quv6ptvvlFeXp4yMzPdzlanpaUpPDxckhQeHl5sl46i3UHOrPnzjiFpaWkKCAiQn5+fvLy85OXlVWJN0TFK4uPjIx8fn2Ljdrvdsh8gm81m6fEuZfTSOvTSGvTROvTSOvTSOvTSOlb2srTHqFTftc6dO2vz5s3auHGj66tNmzbq27ev689VqlTR0qVLXffZvn279u7dq/j4eElSfHy8Nm/e7LZLx5IlSxQQEKAmTZq4as48RlFN0TEcDodat27tVuN0OrV06VJXDQAAAC4dlepMdfXq1dW0aVO3MX9/f4WEhLjGBw0apLFjx6pGjRoKCAjQ/fffr/j4eLVr106S1KVLFzVp0kR33323pkyZotTUVD366KMaMWKE6yzy0KFD9eqrr2rcuHEaOHCgli1bpo8//lhffvml63HHjh2r/v37q02bNmrbtq1efvll5eTkaMCAAReoGwAAAKgoKlWoLo2XXnpJdrtdvXr1Um5urhITE/Xaa6+55r28vLRo0SINGzZM8fHx8vf3V//+/fXkk0+6aqKjo/Xll1/qgQce0NSpU1WnTh299dZbSkxMdNXccccdOnTokCZOnKjU1FS1bNlSixcvLvbmRQAAAFz8bMYYU96LuFRlZ2crMDBQWVlZlr1RMT09XbVq1eJ6LA9dCr10Op1KSUlRRkaGgoODFRsb+7c810uhlxcCfbQOvbQOvbQOvbSO1b0sbV676M5UA/hrSUlJmj5jprbv3q+8gkI5vL0UU6+2RgwdrPbt25f38gAAqHT4VQi4xCQlJWncY09q23Ff1btxiFoNeFL1bhyi7Tm+GvfYk0pKSirvJQIAUOkQqoFLiNPp1PQZM3UysJ5adB+owIgoeVfxUWBElJrfNFCngurptTfe5BO9AAA4T4Rq4BKSkpKi7bv3K/qqBNlsNrc5m82mqDadtW3XH0pJSSmnFQIAUDkRqoFLSEZGhvIKCuVfs+QPKaoWEq68gkJlZGRc4JUBAFC5EaqBS0hwcLAc3l7KOZxa4vzxI6lyeHspODj4Aq8MAIDKjVANXEJiY2MVU6+2dq/9Tn/eTdMYoz1rl6pRdB3FxsaW0woBAKicCNXAJcRut2vE0MHyzdytTYveUebB3SrIO6XMg6dv+2bu1vAh97FHKgAA54l9qoFLTPv27TXlqYmn96n+eqZrn+pG0XU0/MGJ7FMNAEAZEKqBS1D79u3Vrl27C/KJigAAXAoI1cAlym63q1mzZuW9DAAALgqclgIAAAA8xJlqoBJyOp1cugEAQAVCqAYqmaSkpNNvMty93/Umw5h6tTVi6GDeZAgAQDnh1BZQiSQlJWncY09q23Ff1btxiFoNeFL1bhyi7Tm+GvfYk0pKSirvJQIAcEkiVAOVhNPp1PQZM3UysJ5adB+owIgoeVfxUWBElJrfNFCngurptTfelNPpLO+lAgBwySFUA5VESkqKtu/er+irEmSz2dzmbDabotp01rZdfyglJaWcVggAwKWLUA1UEhkZGcorKJR/zfAS56uFhCuvoFAZGRkXeGUAAIBQDVQSwcHBcnh7Kedwaonzx4+kyuHtpeDg4Au8MgAAQKgGKonY2FjF1Kut3Wu/kzHGbc4Yoz1rl6pRdB3FxsaW0woBALh0EaqBSsJut2vE0MHyzdytTYveUebB3SrIO6XMg6dv+2bu1vAh97FfNQAA5YB9qoFKpH379pry1MTT+1R/PdO1T3Wj6Doa/uBE9qkGAKCcEKqBSqZ9+/Zq164dn6gIAEAFQqgGKiG73a5mzZqV9zIAAMD/4dQWAAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI1AAAA4CFCNQAAAOAhQjUAAADgIUI18CdOp1NbtmxxfTmdzvJeEgAAqOC8y3sBQEWSlJSkV19/Q5t/3aF69S7T7t171axxA40cNkTt27cv7+UBAIAKilAN/J+kpCQNHfWA9h85Li9ff9VyVlFaToEO/LhWW37dphnTXiJYAwCAEnH5B6DTl3xMevJp7U7NkO/lbRSeOFShV9+u8MSh8r28jXanZuiJp57hUhAAAFAiQjUgafPmzVq3KUX+V1yl8Gv7yiekjmxe3vIJqaPwa/uq6hVttO6XLdq8eXN5LxUAAFRAlSpUT548WVdddZWqV6+uWrVqqUePHtq+fbtbzalTpzRixAiFhISoWrVq6tWrl9LS0txq9u7dq27duqlq1aqqVauWHn74YRUUFLjVLF++XFdeeaV8fHxUv359zZ49u9h6pk+frnr16snX11dxcXFavXq15c8ZF8b69euV67QpuEUn2Ww2tzmbzaYaza/XKadN69evL6cVAgCAiqxSheoVK1ZoxIgR+vnnn7VkyRLl5+erS5cuysnJcdU88MADWrhwoT755BOtWLFCBw4c0C233OKaLywsVLdu3ZSXl6ekpCS9++67mj17tiZOnOiq2bVrl7p166ZOnTpp48aNGjNmjO6991598803rpp58+Zp7Nixevzxx7V+/Xq1aNFCiYmJSk9PvzDNgOVsXt7yqhpU4pxX1UDZvHgLAgAAKJnNGGPKexFldejQIdWqVUsrVqxQx44dlZWVpdDQUH344Ye69dZbJUnbtm1T48aNlZycrHbt2unrr7/WTTfdpAMHDigsLEySNGPGDI0fP16HDh2Sw+HQ+PHj9eWXX2rLli2ux+rdu7cyMzO1ePFiSVJcXJyuuuoqvfrqq5JOX5Nbt25d3X///XrkkUdKtf7s7GwFBgYqKytLAQEBHvfD6XQqPT1dtWrVkt1eqX5fumCcTqdSUlKUkZGh4OBgxcbGym6365dfflHCP25T1Q79VbNRW9llVL96oXYe85JTNh3etkonfnxP333xiVq0aFHeT6NS4XVpDfpoHXppHXppHXppHat7Wdq8VqlPvWVlZUmSatSoIUlat26d8vPzlZCQ4Kpp1KiRLrvsMleoTk5OVrNmzVyBWpISExM1bNgwpaSkqFWrVkpOTnY7RlHNmDFjJEl5eXlat26dJkyY4Jq32+1KSEhQcnLyWdebm5ur3Nxc1+3s7GxJp7/5VrwBzul0yhjDm+nOIjk5Wa/PfEvbd+9XfkGhqnh7KaZebQ0bfK/i4uLUOjZG63ck61hwmKoHhUrVveXMzdOxzEM6ueNntW4ao9jYWPp7nnhdWoM+WodeWodeWodeWsfqXpb2OJU2VDudTo0ZM0ZXX321mjZtKklKTU2Vw+FQUFCQW21YWJhSU1NdNWcG6qL5orlz1WRnZ+vkyZPKyMhQYWFhiTXbtm0765onT56sJ554otj4oUOHdOrUqVI863NzOp3KysqSMYbfcv/k119/1ew5c1UYWFdX33qTfAKClZudobSdv2jmrPeUl5en8Q+P1etvzVJW1kZVcUSpRm6IIk4cUc2sPQpsUEPD7h2gw4cPl/dTqXR4XVqDPlqHXlqHXlqHXlrH6l4eO3asVHWVNlSPGDFCW7Zs0Y8//ljeSym1CRMmaOzYsa7b2dnZqlu3rkJDQy27/MNmsyk0NJQfyDM4nU69Pfs9bTvuqxZXd9Nxm03HjaTq1VS1ZR1t+nK23nn3fc16a6YcDodee+NNpfy0UF716umP3bvVtNEVGjZ0iOLj48v7qVRKvC6tQR+tQy+tQy+tQy+tY3UvfX19S1VXKUP1yJEjtWjRIq1cuVJ16tRxjYeHhysvL0+ZmZluZ6vT0tIUHh7uqvnzLh1Fu4OcWfPnHUPS0tIUEBAgPz8/eXl5ycvLq8SaomOUxMfHRz4+PsXG7Xa7ZT9ANpvN0uNdDFJSUrRt1x+qd+MQyWaX25sIbDZd1vp6/fr1TP3666+6+uqrFR8fry1btriux2ratCn99BCvS2vQR+vQS+vQS+vQS+tY2cvSHqNSfdeMMRo5cqTmz5+vZcuWKTo62m2+devWqlKlipYuXeoa2759u/bu3es6yxgfH6/Nmze77dKxZMkSBQQEqEmTJq6aM49RVFN0DIfDodatW7vVOJ1OLV26lLOZFVBGRobyCgrlX7PkX3iqhYQrr6BQGRkZkk7/8DRt2tT1xV9uAADgr1SqM9UjRozQhx9+qM8//1zVq1d3XQMdGBgoPz8/BQYGatCgQRo7dqxq1KihgIAA3X///YqPj1e7du0kSV26dFGTJk109913a8qUKUpNTdWjjz6qESNGuM4iDx06VK+++qrGjRungQMHatmyZfr444/15ZdfutYyduxY9e/fX23atFHbtm318ssvKycnRwMGDLjwjYFLSbt7BAcHy+HtpZzDqQqMiCp2n+NHUuXw9lJwcHA5rBgAAFwMKlWofv311yVJ1113ndv4rFmzdM8990iSXnrpJdntdvXq1Uu5ublKTEzUa6+95qr18vLSokWLNGzYMMXHx8vf31/9+/fXk08+6aqJjo7Wl19+qQceeEBTp05VnTp19NZbbykxMdFVc8cdd+jQoUOaOHGiUlNT1bJlSy1evLjYmxdx4SQlJWn6jJnavnu/8goK5Thjd4+YerW1fe13an7TQLcPdzHGaM/apWoUXUexsbHluHoAAFCZVep9qis79qm2TlJSksY99qROBtZT9FUJ8q8ZrpzDqdq99jv5Zu7W3bf31Psfz9epoHqKatNZ1ULCdfxIqvasXSrfzN2a8tREtW/f3nW8S7mXVqOX1qCP1qGX1qGX1qGX1mGfaqCMnE6nps+YqZOB9dSi+/8/Ex0YEaXmNw3UpkXv6Iekn/XsE4+e3qf665muM9mNouto+IPugRoAAOB8EapR6aWkpGj77v2KvnGI26Ud0ul3/0a16axtX89UYGCg3p/9TomfqAgAAOAJQjUqvfPZ3cNut6tZs2YXeIUAAOBixyk6VHpn7u5REnb3AAAAfzdCNSq92NhYxdSrrd1rv9Of33fL7h4AAOBCIFSj0rPb7RoxdLB8M3dr06J3lHlwtwryTinz4Onbvpm7NXzIfVw7DQAA/jZcU42LQvv27TXlqYmn96lmdw8AAHCBEapx0Wjfvr3atWvH7h4AAOCCI1TjosLuHgAAoDxwCg8AAADwEKEaAAAA8BChGgAAAPAQoRoAAADwEKEaAAAA8BChGgAAAPAQW+rhgnE6newhDQAALkqEalwQSUlJeuW1Gfpp7S86lV8g3yreurpNC90/fCifdggAACo9QjX+dklJSbqj3yBl+kXK54rr5VWthk4cP6pFG3/Rj/0Gad57bxOsAQBApUaoxt/K6XTqvqHDleEbqepX9VSVwFqyO3zlzDulKmFXKGP1fN03dLg2b1zPpSAAAKDSIsXgb7Vx40bt2Juqqo2ulm+taHn5+Mtm85KXj798a0Wrakx77diXqo0bN5b3UgEAAMqMUI2/1dtvvy3jVUU+EQ1LnHdENpSxV9Hbb799gVcGAABgHS7/gGUKCgr0+eef68CBA4qMjNTNN9+szMxMyVko58lsyT+42H3MiWOSs/B0HQAAQCVFqIYl3njjDf1rygtKO5otYySbTQobN0FXtWouZ16OjqcsV3DHfrLZbK77GGN0fOtyOfNy1KpVq3JcPQAAgGcI1fDYG2+8odEP/6+cjmqy+9eQzauKVJivg1k5WvjtMnkVFujkzlWyeztUtVEHeQfUUkF2uk5s+1End66Sj5dNo0aNKu+nAQAAUGaEanikoKBA4yY8qkKHv6o2jJd/k46qEhiu/KxU5WxdoRP/TZY9P1eFJ7KUs/0nndq3WTYvh0xhngpPZMt5IksjRwyWw+Eo76cCAABQZoRqeOTTTz/V8VO5qtb8WgVdc5fr8g5HzShVueZumcJC5Wxeov+5/hot+yFJebnHZWx22YxTPnaj4SMGa8qUKeX8LAAAADxDqIZH5s2bJ5uPv/xjO7ldLy1JNptN1WKv04n//iRvb29lpB/Uq6++qj179igqKkojR47kDDUAALgoEKrhkby8PNns3vKqGlTivN0/WDa7t/Ly8uRwODR27NgLu0AAAIALgH2qUWonTpzQPffco2uvvVb33HOPTpw4oU6dOskU5Cn34A7JGPc7GKO8g/+VKchTp06dymfRAAAAFwBnqlEqXbp00dIVP8nmV102b4d++mW73v8oVJ2uiZd34Smd2P6jvIPC5R0QIpu3j0xBrgqyj+jE9p/kXXiK3T0AAMBFjVCNv9SlSxctS16nqrGd5N+ssxw16ijv6B/K2fydlq/6WbVDgnRg9wZlS/Kt10re1Wqo4PhRndq9Qbm7N+iB4UO4dhoAAFzUCNU4pxMnTui7FT/JP7aTgjsPlt1ul2w2+YY3kKPWFZKkfVuX6/4h9+rt9z5Q9h9bJHsVyZkvHxXogWGD2N0DAABc9AjVOKdhw4bJ7ldd/s06y+7l9f8nbDbZvbzkH9tZJ39fp8zMTB1NY3cPAABwaSJU45xSUlJk83bIUaNuifNVQurI5u1QSkoKu3sAAIBLFrt/QJK0c+dOORwO2Ww2ORwO7dy5U5IUGhoqU5CnvKP7Srxf/tE/ZAryFBoaeiGXCwAAUKFwphqy2WyyOfxkr1pD3t4OOQvy1DC2uUzeSf3888/6pmMn5WxeKkdY/dPXVP8fp9OpnC3L5DyZrUmTJpXfEwAAAChnhOpLnM1mk1e1GvJrEH96Z4+Quso7sk85m5fq5I5ktWvXTmHhkTq8I1mS5N/0elWpUVf5R/cpZ8synfxvkmqFBOuqq64q52cCAABQfgjVl7CdO3fK5vCTX4N4BScMcZ2F9o1oKEdYfUlSTsoyPT/lWd0/eqyyU77Xyd/XyubtkCnIk/PUMQVUrarPPv3E7Qw2AADApYYkdAlr0qSJ7H4Bp3f2+FMottvt8m96vex+ARo0aJC+WvS5br2lhwJ9veTIP65AXy/ddktPfbXoc7Vv376cngEAAEDFwJnqS1h+fr68vR1yhJxlZ48adWXzdig/P1/t27dXu3btlJKSooyMDAUHBys2NpYz1AAAAOJM9SVj7ty5p9+Q+H9fc+fOVZUqVU7v7HHkbDt77JMpyFOVKlUknT573axZM3Xs2FHNmjUjUAMAAPwfzlRfAmw2m+TtI7t/DdnsdhmnU33uvkcqyJftZPZf7uyxbevW8ls8AABAJUCovsjZbDbZfKvLyz9Ydl9/2byqyBTmy3nquApzMmVOHdPJc+zsYfJOqn79+uX8LAAAACo2QvVFbO7cuZKXQ17+QaraMF7+TTrKOzBcBVmpytm6Uif+m6SC/FwVHj+qnJRl7jt7nMyWyTspY0x5Pw0AAIAKj4tiL2J9+vSRrYqP/Oq3VWCHvnLUjJK9io8cNaMU2KGv/Oq3la2KryTpvymbZD9xVAVH9sl+4qj+m7KJQA0AAFBKnKm+yNl9/VWtSaeSt8xrfJ1ObP9JhaeyVb9+feXl5ZXTKgEAACo3zlRf5Gx2b9n9g0qc86oWJJud36sAAAA8Rai+iNlsNpmCXOUd3FHsUg5jzOnxgtzTu4MAAACgzAjVHpo+fbrq1asnX19fxcXFafXq1eW9JJe9e/eq8ES2Tmz/UXlH9smZe0LGWShn7gnlHdl3+tKPE9nau3dveS8VAACgUuP//j0wb948jR07VjNmzFBcXJxefvllJSYmavv27apVq1Z5L0916tRRFZtTJ39fJ0nyrddKXtVqqPD4UZ3avUEnf1+nKjan6tSpU84rBQAAqNwI1R548cUXdd9992nAgAGSpBkzZujLL7/UO++8o0ceeaScV3daXl6eHA6Hcrb9qFN7N8vmXUWmIF+FJ7JVxVbImxMBAAAsQKguo7y8PK1bt04TJkxwjdntdiUkJCg5ObnE++Tm5io3N9d1Ozs7W9LpTy90Op0er8npdMoYU+xYp06d0v79+9W8eXPlHMtQNX9/bfr9v6pdu7Ylj3sxOlsvcf7opTXoo3XopXXopXXopXWs7mVpj0OoLqPDhw+rsLBQYWFhbuNhYWHatm1bifeZPHmynnjiiWLjhw4d0qlTpzxek9PpVFZWlowxxbbQq1Klin799Ve3sfT0dI8f82J1rl7i/NBLa9BH69BL69BL69BL61jdy2PHjpWqjlB9AU2YMEFjx4513c7OzlbdunUVGhqqgIAAj4/vdDpls9kUGhrKD6SH6KV16KU16KN16KV16KV16KV1rO6lr69vqeoI1WVUs2ZNeXl5KS0tzW08LS1N4eHhJd7Hx8dHPj4+xcbtdrtlP0A2m83S413K6KV16KU16KN16KV16KV16KV1rOxlaY/Bd62MHA6HWrduraVLl7rGnE6nli5dqvj4+HJcGQAAAC40zlR7YOzYserfv7/atGmjtm3b6uWXX1ZOTo5rNxAAAABcGgjVHrjjjjt06NAhTZw4UampqWrZsqUWL15c7M2LAAAAuLgRqj00cuRIjRw5sryXAQAAgHLENdUAAACAhwjVAAAAgIcI1QAAAICHCNUAAACAhwjVAAAAgIcI1QAAAICHCNUAAACAh9inuhwZYyRJ2dnZlhzP6XTq2LFj8vX1teSz7i9l9NI69NIa9NE69NI69NI69NI6VveyKKcV5bazIVSXo2PHjkmS6tatW84rAQAAwLkcO3ZMgYGBZ523mb+K3fjbOJ1OHThwQNWrV5fNZvP4eNnZ2apbt6727dungIAAC1Z46aKX1qGX1qCP1qGX1qGX1qGX1rG6l8YYHTt2TJGRkec8882Z6nJkt9tVp04dy48bEBDAD6RF6KV16KU16KN16KV16KV16KV1rOzluc5QF+GiHQAAAMBDhGoAAADAQ4Tqi4iPj48ef/xx+fj4lPdSKj16aR16aQ36aB16aR16aR16aZ3y6iVvVAQAAAA8xJlqAAAAwEOEagAAAMBDhGoAAADAQ4RqAAAAwEOE6ovE9OnTVa9ePfn6+iouLk6rV68u7yVVeCtXrlT37t0VGRkpm82mBQsWuM0bYzRx4kRFRETIz89PCQkJ2rFjR/kstoKbPHmyrrrqKlWvXl21atVSjx49tH37dreaU6dOacSIEQoJCVG1atXUq1cvpaWlldOKK67XX39dzZs3d31oQXx8vL7++mvXPH0sm2effVY2m01jxoxxjdHL0ps0aZJsNpvbV6NGjVzz9LL09u/fr7vuukshISHy8/NTs2bNtHbtWtc8//aUTr169Yq9Jm02m0aMGCGpfF6ThOqLwLx58zR27Fg9/vjjWr9+vVq0aKHExESlp6eX99IqtJycHLVo0ULTp08vcX7KlCmaNm2aZsyYoVWrVsnf31+JiYk6derUBV5pxbdixQqNGDFCP//8s5YsWaL8/Hx16dJFOTk5rpoHHnhACxcu1CeffKIVK1bowIEDuuWWW8px1RVTnTp19Oyzz2rdunVau3atrr/+et18881KSUmRRB/LYs2aNXrjjTfUvHlzt3F6eX5iY2N18OBB19ePP/7omqOXpZORkaGrr75aVapU0ddff62tW7fqhRdeUHBwsKuGf3tKZ82aNW6vxyVLlkiSbrvtNknl9Jo0qPTatm1rRowY4bpdWFhoIiMjzeTJk8txVZWLJDN//nzXbafTacLDw83zzz/vGsvMzDQ+Pj7mo48+KocVVi7p6elGklmxYoUx5nTvqlSpYj755BNXza+//mokmeTk5PJaZqURHBxs3nrrLfpYBseOHTMNGjQwS5YsMddee60ZPXq0MYbX5Pl6/PHHTYsWLUqco5elN378eNOhQ4ezzvNvT9mNHj3aXHHFFcbpdJbba5Iz1ZVcXl6e1q1bp4SEBNeY3W5XQkKCkpOTy3FllduuXbuUmprq1tfAwEDFxcXR11LIysqSJNWoUUOStG7dOuXn57v1s1GjRrrsssvo5zkUFhZq7ty5ysnJUXx8PH0sgxEjRqhbt25uPZN4TZbFjh07FBkZqcsvv1x9+/bV3r17JdHL8/HFF1+oTZs2uu2221SrVi21atVKb775pmuef3vKJi8vTx988IEGDhwom81Wbq9JQnUld/jwYRUWFiosLMxtPCwsTKmpqeW0qsqvqHf09fw5nU6NGTNGV199tZo2bSrpdD8dDoeCgoLcaulnyTZv3qxq1arJx8dHQ4cO1fz589WkSRP6eJ7mzp2r9evXa/LkycXm6OX5iYuL0+zZs7V48WK9/vrr2rVrl6655hodO3aMXp6H33//Xa+//roaNGigb775RsOGDdOoUaP07rvvSuLfnrJasGCBMjMzdc8990gqv59v77/tyAAuSSNGjNCWLVvcrrfE+YmJidHGjRuVlZWlTz/9VP3799eKFSvKe1mVyr59+zR69GgtWbJEvr6+5b2cSu/GG290/bl58+aKi4tTVFSUPv74Y/n5+ZXjyioXp9OpNm3a6F//+pckqVWrVtqyZYtmzJih/v37l/PqKq+3335bN954oyIjI8t1HZypruRq1qwpLy+vYu9oTUtLU3h4eDmtqvIr6h19PT8jR47UokWL9P3336tOnTqu8fDwcOXl5SkzM9Otnn6WzOFwqH79+mrdurUmT56sFi1aaOrUqfTxPKxbt07p6em68sor5e3tLW9vb61YsULTpk2Tt7e3wsLC6KUHgoKC1LBhQ+3cuZPX5XmIiIhQkyZN3MYaN27supSGf3vO3549e/Tdd9/p3nvvdY2V12uSUF3JORwOtW7dWkuXLnWNOZ1OLV26VPHx8eW4ssotOjpa4eHhbn3Nzs7WqlWr6GsJjDEaOXKk5s+fr2XLlik6OtptvnXr1qpSpYpbP7dv3669e/fSz1JwOp3Kzc2lj+ehc+fO2rx5szZu3Oj6atOmjfr27ev6M70su+PHj+u3335TREQEr8vzcPXVVxfbbvS///2voqKiJPFvT1nMmjVLtWrVUrdu3Vxj5faa/NveAokLZu7cucbHx8fMnj3bbN261QwePNgEBQWZ1NTU8l5ahXbs2DGzYcMGs2HDBiPJvPjii2bDhg1mz549xhhjnn32WRMUFGQ+//xzs2nTJnPzzTeb6Ohoc/LkyXJeecUzbNgwExgYaJYvX24OHjzo+jpx4oSrZujQoeayyy4zy5YtM2vXrjXx8fEmPj6+HFddMT3yyCNmxYoVZteuXWbTpk3mkUceMTabzXz77bfGGProiTN3/zCGXp6PBx980Cxfvtzs2rXL/PTTTyYhIcHUrFnTpKenG2PoZWmtXr3aeHt7m2eeecbs2LHDzJkzx1StWtV88MEHrhr+7Sm9wsJCc9lll5nx48cXmyuP1ySh+iLxyiuvmMsuu8w4HA7Ttm1b8/PPP5f3kiq877//3kgq9tW/f39jzOmtjR577DETFhZmfHx8TOfOnc327dvLd9EVVEl9lGRmzZrlqjl58qQZPny4CQ4ONlWrVjU9e/Y0Bw8eLL9FV1ADBw40UVFRxuFwmNDQUNO5c2dXoDaGPnriz6GaXpbeHXfcYSIiIozD4TC1a9c2d9xxh9m5c6drnl6W3sKFC03Tpk2Nj4+PadSokZk5c6bbPP/2lN4333xjJJXYn/J4TdqMMebvOw8OAAAAXPy4phoAAADwEKEaAAAA8BChGgAAAPAQoRoAAADwEKEaAAAA8BChGgAAAPAQoRoAAADwEKEaAAAA8BChGgDwt6lXr55uuummMt9/9uzZstls2r17t3WLAoC/AaEaAC4yRUF07dq15b0UALhkEKoBAAAADxGqAQAAAA8RqgHgEpOXl6eJEyeqdevWCgwMlL+/v6655hp9//33bnW7d++WzWbTv//9b02fPl2XX365qlatqi5dumjfvn0yxuipp55SnTp15Ofnp5tvvllHjx4t8TG//fZbtWzZUr6+vmrSpIk+++yzYjUpKSm6/vrr5efnpzp16ujpp5+W0+ksVvf555+rW7duioyMlI+Pj6644go99dRTKiwstKZBAFAGNmOMKe9FAACsM3v2bA0YMEBr1qxRmzZtis0fPnxYzZs3V58+fdSgQQMdO3ZMb7/9tn7//XetXr1aLVu2lHQ6VEdHR6tly5bKy8vTvffeq6NHj2rKlCm68sordf3112v58uXq3bu3du7cqVdeeUX33HOP3nnnHddj1atXTz4+PkpPT9fQoUNVq1YtzZo1SykpKVq8eLFuuOEGSVJqaqqaN2+ugoICjR49Wv7+/po5c6b8/Py0adMm7dq1S/Xq1ZMk9ezZUw6HQ1dddZWqVaumZcuW6ZNPPtFDDz2k559//m/vLwCUyAAALiqzZs0yksyaNWtKnC8oKDC5ubluYxkZGSYsLMwMHDjQNbZr1y4jyYSGhprMzEzX+IQJE4wk06JFC5Ofn+8a79Onj3E4HObUqVOusaioKCPJ/Oc//3GNZWVlmYiICNOqVSvX2JgxY4wks2rVKtdYenq6CQwMNJLMrl27XOMnTpwo9pyGDBliqlat6vbYAHAhcfkHAFxivLy85HA4JElOp1NHjx5VQUGB2rRpo/Xr1xerv+222xQYGOi6HRcXJ0m666675O3t7Tael5en/fv3u90/MjJSPXv2dN0OCAhQv379tGHDBqWmpkqSvvrqK7Vr105t27Z11YWGhqpv377F1uPn5+f687Fjx3T48GFdc801OnHihLZt23ZevQAAqxCqAeAS9O6776p58+by9fVVSEiIQkND9eWXXyorK6tY7WWXXeZ2uyhg161bt8TxjIwMt/H69evLZrO5jTVs2FCSXPtP79mzRw0aNCj22DExMcXGUlJS1LNnTwUGBiogIEChoaG66667JKnE9QPAheD91yUAgIvJBx98oHvuuUc9evTQww8/rFq1asnLy0uTJ0/Wb7/9Vqzey8urxOOcbdz8jW/VyczM1LXXXquAgAA9+eSTuuKKK+Tr66v169dr/PjxJb6xEQAuBEI1AFxiPv30U11++eX67LPP3M4gP/7443/L4+3cuVPGGLfH+u9//ytJrjcfRkVFaceOHcXuu337drfby5cv15EjR/TZZ5+pY8eOrvFdu3b9DSsHgNLj8g8AuMQUnWE+84zyqlWrlJyc/Lc83oEDBzR//nzX7ezsbL333ntq2bKlwsPDJUn/8z//o59//lmrV6921R06dEhz5sz5y7Xn5eXptdde+1vWDgClxZlqALhIvfPOO1q8eHGx8euuu06fffaZevbsqW7dumnXrl2aMWOGmjRpouPHj1u+joYNG2rQoEFas2aNwsLC9M477ygtLU2zZs1y1YwbN07vv/++unbt6ralXlRUlDZt2uSqa9++vYKDg9W/f3+NGjVKNptN77///t96yQkAlAahGgAuUq+//nqJ43v37tXx48f1xhtv6JtvvlGTJk30wQcf6JNPPtHy5cstX0eDBg30yiuv6OGHH9b27dsVHR2tefPmKTEx0VUTERGh77//Xvfff7+effZZhYSEaOjQoYqMjNSgQYNcdSEhIVq0aJEefPBBPfroowoODtZdd92lzp07ux0PAC40PvwFAAAA8BDXVAMAAAAeIlQDAAAAHiJUAwAAAB4iVAMAAAAeIlQDAAAAHiJUAwAAAB4iVAMAAAAeIlQDAAAAHiJUAwAAAB4iVAMAAAAeIlQDAAAAHiJUAwAAAB76fxTESeCyZoiWAAAAAElFTkSuQmCC",
|
||
"text/plain": [
|
||
"<Figure size 800x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Plotting lambda against access_count.\n",
|
||
"\n",
|
||
"plt.figure(figsize=(8, 6))\n",
|
||
"plt.scatter(merged['lambda'], merged['access_count'], alpha=0.7, edgecolor='k')\n",
|
||
"plt.title('Lambda vs Access Count', fontsize=14)\n",
|
||
"plt.xlabel('Lambda', fontsize=12)\n",
|
||
"plt.ylabel('Access Count', fontsize=12)\n",
|
||
"plt.grid(alpha=0.3)\n",
|
||
"\n",
|
||
"plt.savefig(f\"{TEMP_BASE_DIR}/lambda_vs_access_count.pdf\")\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "00a12eea-c805-4209-9143-48fa65619873",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAIjCAYAAAAZajMiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABEDElEQVR4nO3dfXzO9f////sxsxMnO3OyGYuZ5TxENHLy0aJSUStv3sppUZGkE1ahkCHvEpG33oV6V4qik/cbCRFJYs6iYm0RNiezE/Y2bM/vH/12/Drapu3YseOYV7fr5XJcLh3P19njeHiNe689X6/DZowxAgAAACzAy9MFAAAAAK5CuAUAAIBlEG4BAABgGYRbAAAAWAbhFgAAAJZBuAUAAIBlEG4BAABgGYRbAAAAWAbhFgAAAJZBuAXwl7Z9+3Z17NhRVatWlc1m065duzxdkoMGDRrotttu83QZTrPZbHruuefK/TjdunVTt27d7O+//PJL2Ww2LV++vEz7nTlzppo0aaL8/PwyVugZzz33nGw2m0v3+cde79+/X97e3tq3b59LjwM4i3ALuMH333+ve++9V3Xr1pWvr6/Cw8M1YMAAff/9954u7S/t4sWLuueee5Senq6XX35Zb7/9turXr+/pslBBZGVlacaMGRo3bpy8vPjnsjjNmjVTr169NHHiRE+XAkiSvD1dAGB1H330kfr376+QkBANGzZMkZGRSklJ0RtvvKHly5dr6dKluvPOOz1d5l9SUlKSfvnlF73++uu6//77PV2OJf3vf/+Tt/eV+U/Nm2++qUuXLql///6eLqXCe/DBB3XrrbcqKSlJUVFRni4Hf3FX5t84wBUiKSlJ9913nxo2bKhNmzapVq1a9mWPPvqoOnfurPvuu0979uxRw4YNPVhpYTk5OapSpYqnyyhXJ06ckCQFBQV5thAL8/Pz83QJTlu0aJHuuOOOP/0Mly5dUn5+vnx8fNxUWcUTGxur4OBgLVmyRJMnT/Z0OfiL4/csQDl68cUXlZOTo4ULFzoEW0mqWbOm/vnPf+rcuXOaOXOmw7KjR49q2LBhCg8Pl6+vryIjI/XQQw/pwoUL9nUyMjL02GOPqUGDBvL19VW9evU0cOBAnTp1SpK0ePFi2Ww2paSkOOy7YC7il19+aR/r1q2bWrRooR07dqhLly6qUqWKnn76aUnSxx9/rF69etlriYqK0pQpU5SXl+ew34J97N+/X//3f/+nKlWqqG7duoU+mySdP39ezz33nK6++mr5+fmpTp06uuuuu5SUlGRfJz8/X7Nnz1bz5s3l5+en0NBQjRgxQmfOnClR79evX6/OnTuratWqCgoKUu/evXXgwAH78sGDB6tr166SpHvuuUc2m81hHmFRMjIyNGbMGEVERMjX11eNGjXSjBkzCs3HnDVrljp27KgaNWrI399fbdu2LXbu57///W+1b99eVapUUXBwsLp06aLPP/+80HqbN29W+/bt5efnp4YNG+qtt9760x6kpKTIZrNp1qxZmjdvnho2bKgqVaqoR48eOnLkiIwxmjJliurVqyd/f3/17t1b6enpDvsobs5sgwYNNHjw4D+t4Y/bF8wBPXTokAYPHqygoCAFBgZqyJAhysnJ+dP9SdLChQsVFRUlf39/tW/fXl999VWx6+bl5enpp59WWFiYqlatqjvuuENHjhz502MkJydrz549io2NdRj/fU9nz56tqKgo+fr6av/+/ZL+/LyTfjv3GjRoUOiYRc2PtdlsGjVqlFauXKkWLVrI19dXzZs31+rVqwttv3nzZl133XXy8/NTVFSU/vnPfxb7+f7973+rbdu28vf3V0hIiPr161dkX0ra68qVK6tbt276+OOPiz0m4C5cuQXK0aeffqoGDRqoc+fORS7v0qWLGjRooP/85z/2sWPHjql9+/bKyMjQ8OHD1aRJEx09elTLly9XTk6OfHx8dPbsWXXu3FkHDhzQ0KFDde211+rUqVP65JNP9Ouvv6pmzZqlrvX06dO65ZZb1K9fP917770KDQ2V9FtIrlatmsaOHatq1app/fr1mjhxorKysvTiiy867OPMmTO6+eabddddd6lv375avny5xo0bp5YtW+qWW26R9FvYuO2227Ru3Tr169dPjz76qLKzs7V27Vrt27fP/ivNESNGaPHixRoyZIhGjx6t5ORkvfrqq0pMTNSWLVtUuXLlYj/LF198oVtuuUUNGzbUc889p//973+aO3euOnXqpJ07d6pBgwYaMWKE6tatq2nTpmn06NG67rrr7J+5KDk5OeratauOHj2qESNG6KqrrtLXX3+t+Ph4HT9+XLNnz7av+8orr+iOO+7QgAEDdOHCBS1dulT33HOPPvvsM/Xq1cu+3vPPP6/nnntOHTt21OTJ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3XffderYZe1rcduXZb/FnUcl5apzpbzUqFFDly5dUnZ2dpG/fbncfN0/U9qfTVf2Kj8/XzabTatWrSpyv8VdqS6JgrDtzJx/wJUIt0A5uu222/T6669r8+bNuuGGGwot/+qrr5SSkqIRI0ZI+i20BQQE/Ok3/URFRf3pOgVXwjIyMhzGC67IlMSXX36p06dP66OPPlKXLl3s48nJySXexx9FRUVp27ZtunjxYrE3hUVFRemLL75Qp06dSh0iCr6E4ccffyy07IcfflDNmjWdunoWFRWls2fPFrp7/o8+/PBD+fn5ac2aNfL19bWPL1q0qND+8vPztX//frVu3brU9bhLcHBwoXPowoULOn78uNtrKfizPXjwoLp3724fv3jxopKTk9WqVatC2xw8eNDhvTFGhw4d0jXXXHPZYzVp0kTSb+f6n637+9pKct4V1VOpdD+bv1erVi35+/sX+qxF1RMVFSVjjCIjI+3/Q1YUZ3qdnJwsLy+vy+4XcAfm3ALl6Mknn5S/v79GjBih06dPOyxLT0/Xgw8+qCpVqujJJ5+UJHl5ealPnz769NNP9d133xXaX8GVmri4OO3evVsrVqwodp2COXq/nwual5enhQsXlrj+gis7v79CdOHCBc2fP7/E+/ijuLg4nTp1Sq+++mqhZQXH6du3r/Ly8jRlypRC61y6dKnIYFCgTp06at26tZYsWeKw3r59+/T555/r1ltvdaruvn37auvWrVqzZk2hZRkZGbp06ZKk33pms9kcrsKlpKRo5cqVDtv06dNHXl5emjx5cqEr4BXl6qX023n0+3NI+u3xUGW9cuuMdu3aqVatWlqwYIHDY/EWL15c7Dnx1ltvOUwNWr58uY4fP25/ekdxYmJiJKnIn8OilOa8i4qKUmZmpsNvdY4fP17kz3NJVKpUST179tTKlSt1+PBh+/iBAwcKna933XWXKlWqpOeff77QeWaMsf895Uyvd+zYoebNmxc7JxdwF67cAuUoOjpaS5Ys0YABA9SyZctC31B26tQpvffeew43i0ybNk2ff/65unbtquHDh6tp06Y6fvy4li1bps2bNysoKEhPPvmkli9frnvuuUdDhw5V27ZtlZ6erk8++UQLFixQq1at1Lx5c11//fWKj49Xenq6QkJCtHTpUnsIK4mOHTsqODhYgwYN0ujRo2Wz2fT222+XKXwN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hx/UtGlTbd26Vddff32J9puVlaXAwEBlZmYqICCgPD+C3fTEU245DgAAQHkY36amW49X0rxWoa/c/lFmZqYkKSQkRJK0Y8cOXbx4UbGxsfZ1mjRpoquuukpbt24tdj+5ubnKyspyeAEAAODKd8WE2/z8fI0ZM0adOnVSixYtJEmpqany8fFRUFCQw7qhoaFKTU0tdl8JCQkKDAy0vyIiIsqzdAAAALjJFRNuR44cqX379mnp0qVl3ld8fLwyMzPtryNHjrigQgAAAHiat6cLKIlRo0bps88+06ZNm1SvXj37eFhYmC5cuKCMjAyHq7dpaWkKCwsrdn++vr7y9fUtz5IBAADgARX6yq0xRqNGjdKKFSu0fv16RUZGOixv27atKleurHXr1tnHfvzxRx0+fFgxMTHuLhcAAAAeVqGv3I4cOVLvvvuuPv74Y1WvXt0+jzYwMFD+/v4KDAzUsGHDNHbsWIWEhCggIECPPPKIYmJiSvykBAAAAFhHhQ63r732miSpW7duDuOLFi3S4MGDJUkvv/yyvLy8FBcXp9zcXPXs2VPz5893c6UAAACoCCp0uC3JI3j9/Pw0b948zZs3zw0VAQAAoCKr0HNuAQAAgNIg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIAAMAyCLcAAACwDMItAAAALINwCwAAAMsg3AIA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yb5d27ZtnaoZAMqbt6cLAIC/qi5duqhnz56Kj4/X4MGD7eNeXl4yxjise/HixULbV65c2eG9zWYrciw/P7/ENZ09e1a33367ZsyYUWhZnTp17P9dtWrVEu8TANyJcAsAHjR9+nS1bt3a4Vf7tWrVUmpqqowx9seDufLZtN988426dOkiSbp06ZJ27NihUaNGSZKuvfZaffjhh2rQoIG8vfknAsCVh2kJAOBBLVu21IABAzRnzhz7WLdu3XTy5EnNnDlTSUlJmjdvnlatWuWyY86bN08rVqzQDz/8oJEjR+rMmTMaOnSoJGnkyJFKT09X//79tX37diUlJWnNmjUaMmSI8vLyXFYDAJQXwi0AeNjkyZMdpg40bdpU8+fP17x589SqVSt9++23euKJJ1x2vOnTp2v69Olq1aqVNm/erE8++UQ1a9aUJIWHh2vLli3Ky8tTjx491LJlS40ZM0ZBQUEO83sBoKKymT9O7AIAAACuUPxvOAAAACyDcAsAAADLINwCAADAMgi3AAAAsAzCLQAAACyDcAsAAADLINwCAADAMgi3AAAAsAzCLQAAACyDcAsAAADLINwCAADAMv4fVvQCaHUDfkEAAAAASUVORK5CYII=",
|
||
"text/plain": [
|
||
"<Figure size 800x600 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"from collections import Counter\n",
|
||
"# Count occurrences of each number\n",
|
||
"count = Counter(np.array(list(db.mu_values.values())).round(0))\n",
|
||
"\n",
|
||
"# Separate the counts into two lists for plotting\n",
|
||
"x = list(count.keys()) # List of unique numbers\n",
|
||
"y = list(count.values()) # List of their respective counts\n",
|
||
"\n",
|
||
"# Plot the data\n",
|
||
"plt.figure(figsize=(8, 6))\n",
|
||
"plt.bar(x, y, color='skyblue')\n",
|
||
"\n",
|
||
"# Adding labels and title\n",
|
||
"plt.xlabel('Number')\n",
|
||
"plt.ylabel('Occurrences')\n",
|
||
"plt.title('Occurance of each mu in db (rounded)')\n",
|
||
"\n",
|
||
"# Show the plot\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"id": "adbfeb40-76bd-4224-ac45-65c7b2b2cb7b",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def plot_requests(object_id: int):\n",
|
||
" mu = db.mu_values[object_id]\n",
|
||
" lmb = db.lambda_values[object_id]\n",
|
||
" rq_log = np.array(cache.request_log[object_id])\n",
|
||
" df = rq_log[1:] - rq_log[:-1]\n",
|
||
" pd.DataFrame(df, columns=[f\"{object_id}, mu:{mu:.2f}, lambda: {lmb:.2f}\"]).plot()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"id": "1f550686-3463-4e50-be83-ceafb27512b0",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def print_rate(object_id: int):\n",
|
||
" # Calculate time intervals between consecutive events\n",
|
||
" intervals = np.diff(np.array(cache.request_log[object_id])) # Differences between each event time\n",
|
||
" \n",
|
||
" # Calculate the rate per second for each interval\n",
|
||
" rates = 1 / intervals # Inverse of the time interval gives rate per second\n",
|
||
" \n",
|
||
" # Optional: Calculate the average event rate over all intervals\n",
|
||
" average_rate = np.mean(rates)\n",
|
||
" print(\"Average event rate per second:\", average_rate)\n",
|
||
" print(\"The mu is: \", db.lambda_values[object_id])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"id": "b47990b1-0231-43ac-8bc5-8340abe4a8b3",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# os.makedirs(EXPERIMENT_BASE_DIR, exist_ok=True)\n",
|
||
"# folder_name = experiment_name.replace(\" \", \"_\").replace(\"(\", \"\").replace(\")\", \"\").replace(\".\", \"_\")\n",
|
||
"# folder_path = os.path.join(EXPERIMENT_BASE_DIR, folder_name)\n",
|
||
"# os.makedirs(folder_path, exist_ok=True)\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"id": "db83cad4-7cc6-4702-ae3a-d1af30a561d2",
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# file_names = os.listdir(TEMP_BASE_DIR)\n",
|
||
" \n",
|
||
"# for file_name in file_names:\n",
|
||
"# shutil.move(os.path.join(TEMP_BASE_DIR, file_name), folder_path)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "graphs",
|
||
"language": "python",
|
||
"name": "graphs"
|
||
},
|
||
"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.12.7"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|