commit f38b2138cb9662db0ac6f3acfe31251776e322d9 Author: unknown Date: Sun Dec 21 17:15:00 2025 +0800 initial commit diff --git a/Readme(未完成).md b/Readme(未完成).md new file mode 100644 index 0000000..62888b4 --- /dev/null +++ b/Readme(未完成).md @@ -0,0 +1,63 @@ +# OrisysSDK API 文档 + +本文件提供了 OrisysSDK 的各类方法 + +--- +## `Sensor` 类别 +### 描述 +创建一个传感器实例 +### 输入参数 +* **cam_id** (`int | str`, 可选): 传感器 ID、序列号或视频路径。默认为 `0`。 +* **isstitch** (`bool`,可选): 是否启用图像拼接,默认为 `True`。 +* **cuda** (`bool`,可选): 是否使用 GPU cuda 加速,默认为 `False`。 +* **cfg** (`str`,可选): 指定拼接标定数据,默认为 `/config/cal.npy`。 + +### 返回 +* `Sensor` 对象 +### 示例 + +```python + +# Example 1: 用相机编号创建 +from xensesdk import Sensor +from src.sensor import Sensor +sensor = Sensor(0) + +# Example 2: 用视频文件创建 +sensor = Sensor("/data/data.mp4") + +# Example 3: 用相机编号开启 +sensor = Sensor.create(0) +``` + +--- + +## 2. `get_img` 方法 + +### 描述 + +从传感器获取图像,进行复眼图像提取和拼接。 + +### 返回 + +* 提取(`issitch = False`)或拼接后(`issitch = True`)的图像 + +--- + +## 3. `compute_deformation` 方法 + +### 描述 + +计算传感器变形和应力 + +--- +## 4. `compute_deformation` 方法 + +### 描述 + +计算传感器变形和应力 + +--- + +## 常见问题解答 (FAQ) +TBC \ No newline at end of file diff --git a/build_multi_version.py b/build_multi_version.py new file mode 100644 index 0000000..c936177 --- /dev/null +++ b/build_multi_version.py @@ -0,0 +1,388 @@ +""" +Build script to create PyArmor-obfuscated distributions for multiple Python versions. + +This script builds separate wheels for Python 3.8, 3.9, and 3.10 for Windows and Linux. +""" +import os +import shutil +import subprocess +import sys +import platform +from pathlib import Path + + +# Python versions to build for +PYTHON_VERSIONS = ['3.8', '3.9', '3.10'] + +# Detect platform +IS_WINDOWS = platform.system() == 'Windows' +IS_LINUX = platform.system() == 'Linux' +PLATFORM_NAME = 'win' if IS_WINDOWS else 'linux' if IS_LINUX else 'unknown' + + +def clean_build_dirs(): + """Remove previous build artifacts.""" + dirs_to_clean = ['build', 'dist', 'orisys.egg-info', 'dist_obfuscated'] + for dir_name in dirs_to_clean: + if os.path.exists(dir_name): + print(f"Cleaning {dir_name}...") + shutil.rmtree(dir_name) + + # Ensure dist directory exists with platform subdirectories + os.makedirs(f'dist/{PLATFORM_NAME}', exist_ok=True) + + +def get_python_executable(version): + """Get the Python executable for a specific version based on platform.""" + # First check if current Python matches the requested version + current_version = f"{sys.version_info.major}.{sys.version_info.minor}" + if current_version == version: + return [sys.executable] + + if IS_WINDOWS: + # Windows paths - including conda environments + username = os.environ.get("USERNAME", "") + possible_paths = [ + f'py -{version}', # Windows py launcher + f'python{version}', # Direct version command + # Conda environments with various naming patterns + f'C:\\Users\\{username}\\anaconda3\\envs\\py{version.replace(".", "")}\\python.exe', + f'C:\\Users\\{username}\\anaconda3\\envs\\py{version.replace(".", "")}-env\\python.exe', + f'C:\\Users\\{username}\\anaconda3\\envs\\python{version.replace(".", "")}\\python.exe', + f'C:\\Users\\{username}\\anaconda3\\envs\\orisys-py{version.replace(".", "")}\\python.exe', + f'C:\\Users\\{username}\\miniconda3\\envs\\py{version.replace(".", "")}\\python.exe', + # Standard Python installations + f'C:\\Python{version.replace(".", "")}\\python.exe', + f'C:\\Program Files\\Python{version.replace(".", "")}\\python.exe', + ] + else: + # Linux/Unix paths + possible_paths = [ + f'python{version}', + f'/usr/bin/python{version}', + f'/usr/local/bin/python{version}', + f'~/.pyenv/versions/{version}/bin/python', + f'/opt/python{version}/bin/python', + ] + + for path in possible_paths: + try: + # Expand user home directory + if path.startswith('~'): + path = os.path.expanduser(path) + + if IS_WINDOWS and path.startswith('py -'): + # Test Windows py launcher + result = subprocess.run( + path.split() + ['-c', 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")'], + capture_output=True, text=True, shell=True + ) + if result.returncode == 0 and result.stdout.strip() == version: + return path.split() + else: + # Check if file exists first + if not os.path.exists(path): + continue + + result = subprocess.run( + [path, '-c', 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")'], + capture_output=True, text=True + ) + if result.returncode == 0 and result.stdout.strip() == version: + return [path] + except (FileNotFoundError, subprocess.SubprocessError, PermissionError): + continue + + return None + + +def obfuscate_code(): + """Obfuscate the source code using PyArmor (version-independent).""" + print("\n=== Obfuscating code with PyArmor ===") + + # PyArmor 9.x generates version-independent obfuscated code + # Output directly to dist_obfuscated/src (PyArmor will create orisys subdirectory) + if IS_WINDOWS: + cmd = 'pyarmor gen --output dist_obfuscated/src --recursive src/orisys' + print(f"Running: {cmd}") + result = subprocess.run(cmd, capture_output=True, text=True, shell=True) + else: + cmd = [ + 'pyarmor', + 'gen', + '--output', 'dist_obfuscated/src', + '--recursive', + 'src/orisys' + ] + print(f"Running: {' '.join(cmd)}") + result = subprocess.run(cmd, capture_output=True, text=True) + + if result.returncode != 0: + print(f"Error obfuscating code:\n{result.stderr}") + print(f"stdout:\n{result.stdout}") + sys.exit(1) + + print("Code obfuscation successful!") + print(result.stdout) + return True + + +def copy_additional_files(): + """Copy non-Python files that don't need obfuscation.""" + print("\n=== Copying additional files ===") + + # Copy config directory + if os.path.exists('config'): + print("Copying config directory...") + shutil.copytree('config', 'dist_obfuscated/config', dirs_exist_ok=True) + + # Copy README and other metadata files + files_to_copy = ['README.md', 'Readme(未完成).md', 'requirements.txt', 'LICENSE'] + for file in files_to_copy: + if os.path.exists(file): + print(f"Copying {file}...") + shutil.copy(file, f'dist_obfuscated/{file}') + + +def create_setup_for_obfuscated(python_version=None): + """Create a modified setup.py for the obfuscated package.""" + print(f"\n=== Creating setup.py for obfuscated package (Python {python_version or '3.8-3.10'}) ===") + + if python_version: + version_constraint = f'=={python_version}.*' + py_tag = f'py{python_version.replace(".", "")}' + else: + version_constraint = '>=3.8,<3.11' + py_tag = 'py38.py39.py310' + + setup_content = f'''from setuptools import setup, find_packages +import os +from pathlib import Path + +# Read requirements +with open('requirements.txt', 'r') as f: + requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')] + +# Find all packages including pyarmor_runtime +packages = find_packages(where="src") + +# Collect all package data including PyArmor runtime files +package_data = {{}} +for pkg in packages: + pkg_path = Path('src') / pkg.replace('.', '/') + if pkg_path.exists(): + # Include all .pyd, .so, .dll files (PyArmor runtime) + data_files = [] + for pattern in ['*.pyd', '*.so', '*.dll', '*.dylib']: + data_files.extend([str(f.relative_to(pkg_path)) for f in pkg_path.glob(pattern)]) + if data_files: + package_data[pkg] = data_files + +setup( + name="orisys", + version="0.1.0", + description="Orisys - Optical Tactile Sensor SDK (Protected)", + author="Your Name", + package_dir={{"": "src"}}, + packages=packages, + package_data=package_data, + include_package_data=True, + install_requires=requirements, + python_requires="{version_constraint}", + # Include PyArmor runtime files + zip_safe=False, + options={{ + 'bdist_wheel': {{ + 'python_tag': '{py_tag}', + }} + }}, +) +''' + + with open('dist_obfuscated/setup.py', 'w') as f: + f.write(setup_content) + + print("setup.py created successfully!") + + +def get_platform_tag(): + """Get the platform tag for wheel naming.""" + system = platform.system() + machine = platform.machine().lower() + + if system == 'Windows': + if machine in ('amd64', 'x86_64'): + return 'win_amd64' + elif machine in ('x86', 'i386', 'i686'): + return 'win32' + elif machine in ('arm64', 'aarch64'): + return 'win_arm64' + elif system == 'Linux': + if machine in ('x86_64', 'amd64'): + return 'manylinux2014_x86_64' + elif machine in ('aarch64', 'arm64'): + return 'manylinux2014_aarch64' + elif machine in ('i386', 'i686'): + return 'manylinux2014_i686' + elif system == 'Darwin': + if machine == 'arm64': + return 'macosx_11_0_arm64' + else: + return 'macosx_10_9_x86_64' + + return 'any' + + +def build_wheel_for_version(python_version): + """Build the wheel distribution for a specific Python version.""" + print(f"\n{'='*60}") + print(f"Building wheel for Python {python_version} on {PLATFORM_NAME}") + print('='*60) + + python_cmd = get_python_executable(python_version) + + if not python_cmd: + print(f"⚠️ Python {python_version} not found on {PLATFORM_NAME}, skipping...") + return False + + print(f"Using Python: {' '.join(python_cmd)}") + + # Verify Python version + result = subprocess.run( + python_cmd + ['-c', 'import sys; print(f"Python {sys.version}")'], + capture_output=True, text=True + ) + print(result.stdout.strip()) + + # Get platform tag + plat_tag = get_platform_tag() + py_tag = f'py{python_version.replace(".", "")}' + + os.chdir('dist_obfuscated') + + # Build the wheel using setup.py with explicit tags + cmd = python_cmd + ['setup.py', 'bdist_wheel', + '--python-tag', py_tag, + '--plat-name', plat_tag, + '--dist-dir', f'../dist/{PLATFORM_NAME}'] + print(f"Running: {' '.join(cmd)}") + result = subprocess.run(cmd, capture_output=True, text=True) + + os.chdir('..') + + if result.returncode != 0: + print(f"❌ Error building wheel for Python {python_version}:\n{result.stderr}") + return False + + print(f"✅ Wheel for Python {python_version} on {PLATFORM_NAME} built successfully!") + print(f" Expected: orisys-0.1.0-{py_tag}-none-{plat_tag}.whl") + return True + + +def build_universal_wheel(): + """Build a single universal wheel compatible with all Python versions.""" + print(f"\n{'='*60}") + print(f"Building Universal Wheel (Python 3.8-3.10) for {PLATFORM_NAME}") + print('='*60) + + os.chdir('dist_obfuscated') + + # Build the wheel + cmd = [sys.executable, '-m', 'pip', 'wheel', '.', '--no-deps', '-w', f'../dist/{PLATFORM_NAME}'] + print(f"Running: {' '.join(cmd)}") + result = subprocess.run(cmd, capture_output=True, text=True) + + os.chdir('..') + + if result.returncode != 0: + print(f"❌ Error building universal wheel:\n{result.stderr}") + return False + + print(f"✅ Universal wheel for {PLATFORM_NAME} built successfully!") + print(result.stdout) + return True + + +def main(): + """Main build process.""" + import argparse + + parser = argparse.ArgumentParser(description='Build orisys package with PyArmor') + parser.add_argument('--mode', choices=['universal', 'multi-version', 'current'], default='current', + help='Build mode: universal (one wheel for all), multi-version (separate wheels), current (use current Python only)') + parser.add_argument('--versions', nargs='+', default=PYTHON_VERSIONS, + help='Python versions to build for (only for multi-version mode)') + + args = parser.parse_args() + + # Get current Python version + current_py_version = f"{sys.version_info.major}.{sys.version_info.minor}" + + print("=" * 60) + print("Building Orisys Package with PyArmor Obfuscation") + print(f"Platform: {PLATFORM_NAME} ({platform.system()})") + print(f"Current Python: {current_py_version} ({sys.executable})") + + if args.mode == 'current': + print(f"Mode: Building for current Python version ({current_py_version}) only") + args.versions = [current_py_version] + # Use multi-version logic but with current version only + build_mode = 'multi-version' + else: + print(f"Python Versions: {', '.join(args.versions)}") + print(f"Mode: {args.mode}") + build_mode = args.mode + + print("=" * 60) + + # Ensure we're in the right directory + script_dir = Path(__file__).parent + os.chdir(script_dir) + + # Step 1: Clean previous builds + clean_build_dirs() + + # Step 2: Obfuscate the code (once, version-independent) + if not obfuscate_code(): + print("\n❌ Build failed during obfuscation!") + sys.exit(1) + + # Step 3: Copy additional files + copy_additional_files() + + # Step 4 & 5: Build based on mode + if build_mode == 'universal': + # Build one wheel for all Python versions + create_setup_for_obfuscated() + if not build_universal_wheel(): + print("\n❌ Build failed!") + sys.exit(1) + else: + # Build separate wheels for each Python version (or just current) + success_count = 0 + for version in args.versions: + create_setup_for_obfuscated(version) + if build_wheel_for_version(version): + success_count += 1 + + if success_count == 0: + print("\n❌ Build failed - no wheels created!") + sys.exit(1) + + print(f"\n✅ Successfully built {success_count}/{len(args.versions)} wheels") + + print("\n" + "=" * 60) + print("✅ Build completed successfully!") + print("=" * 60) + print(f"\nPlatform: {PLATFORM_NAME}") + print(f"Obfuscated source: dist_obfuscated/") + print(f"Distribution packages: dist/{PLATFORM_NAME}/") + print("\nGenerated wheels:") + for wheel in Path(f'dist/{PLATFORM_NAME}').glob('*.whl'): + print(f" - {wheel.name}") + print("\nInstall with:") + print(f" pip install dist/{PLATFORM_NAME}/orisys-0.1.0-*.whl") + + +if __name__ == '__main__': + main() diff --git a/config/cal.npy b/config/cal.npy new file mode 100644 index 0000000..cf2d210 Binary files /dev/null and b/config/cal.npy differ diff --git a/config/compound_eye.png b/config/compound_eye.png new file mode 100644 index 0000000..3e3e6b9 Binary files /dev/null and b/config/compound_eye.png differ diff --git a/config/compound_eye_sample.png b/config/compound_eye_sample.png new file mode 100644 index 0000000..ef3b17b Binary files /dev/null and b/config/compound_eye_sample.png differ diff --git a/dist_obfuscated/Readme(未完成).md b/dist_obfuscated/Readme(未完成).md new file mode 100644 index 0000000..62888b4 --- /dev/null +++ b/dist_obfuscated/Readme(未完成).md @@ -0,0 +1,63 @@ +# OrisysSDK API 文档 + +本文件提供了 OrisysSDK 的各类方法 + +--- +## `Sensor` 类别 +### 描述 +创建一个传感器实例 +### 输入参数 +* **cam_id** (`int | str`, 可选): 传感器 ID、序列号或视频路径。默认为 `0`。 +* **isstitch** (`bool`,可选): 是否启用图像拼接,默认为 `True`。 +* **cuda** (`bool`,可选): 是否使用 GPU cuda 加速,默认为 `False`。 +* **cfg** (`str`,可选): 指定拼接标定数据,默认为 `/config/cal.npy`。 + +### 返回 +* `Sensor` 对象 +### 示例 + +```python + +# Example 1: 用相机编号创建 +from xensesdk import Sensor +from src.sensor import Sensor +sensor = Sensor(0) + +# Example 2: 用视频文件创建 +sensor = Sensor("/data/data.mp4") + +# Example 3: 用相机编号开启 +sensor = Sensor.create(0) +``` + +--- + +## 2. `get_img` 方法 + +### 描述 + +从传感器获取图像,进行复眼图像提取和拼接。 + +### 返回 + +* 提取(`issitch = False`)或拼接后(`issitch = True`)的图像 + +--- + +## 3. `compute_deformation` 方法 + +### 描述 + +计算传感器变形和应力 + +--- +## 4. `compute_deformation` 方法 + +### 描述 + +计算传感器变形和应力 + +--- + +## 常见问题解答 (FAQ) +TBC \ No newline at end of file diff --git a/dist_obfuscated/build/lib/orisys/Stitcher.py b/dist_obfuscated/build/lib/orisys/Stitcher.py new file mode 100644 index 0000000..4880976 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/Stitcher.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.610893 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\xf6J\x00\x00\x12\t\x04\x00\xcb\xe7\x1d\x1c\xd4\xcb\x1f\xa0Yy\xbb\x9b\xa6\x8f\xca\x97\x00\x00\x00\x00\x00\x00\x00\x00;\xaa\x03P\x1e\x12\xf3\x01\x86\x971\x12xGD\xa1\x81t\xac6\x05\xb04&\x92\x84\xe2\x8b\x95F?\x93\x12\x01>\x0e\x9d\x1b\xd6\xe9\xd5H,\x07V\xb1O\x9dJ\x02\xeb\n,\xa6\xd0\xc8\x05\xf0l\xf0<\x12\xa4*\xb4D*\xb6c\xb9\xff\x0e\x1c\xde9\x82\xce\xf4\xef\xda\xa7\x9a\xbe4B\x1e:\xf3"h\xad}\xa2\xc8`\xd8\x1cS\t\xa2\xa3\xe4\xb4\x7f\xc6\xc8\x1e\xb7k*\xed\x1fj\xc5,(@4\x92\xc0y\x17\xed&Q\xa4\xd9\x97G_\xd0Pq\x90\xb38\x1f\xbc\x9d\\\x1f\xd5\xcaj\x0c\x1fO\xf9\xd0\xd0\x88\xbes\xbb5\x80\xe7\xb9%\x1d\x01\xcbC=\xcd\x8d\xb1\xc4\x83\x89\xb0\x82P\xe5\xaa?\x9cH\x8e\xb8\x88\x87\xc9/\x83\x05F\xe5\x1f\xbd\x82b\xd0\xe1\xd9D[k\xb5"\xe53Z\xb4\xb5\xde\xa2\x84\n\x19\xa3\xfa\x7f\x07\xfd\x1b\xc4.#;\xaa\x88\xed{\x95f\xd5T\xa5;\xdeq0\xc2\xfb\x90B\xa9\x7f\xe3h\r\x04?\x01\xc4(=bH\xc3=\xd2\x18\x93*VS\xde\xfdPha\x0eQ}w\xa5\xfdf\x8b\x1d\xbd\xbc4\xb3\x04ET\x04p\xd9\xf0@jK\x02\xb6&\xf7\x1dqTa\xcb\x91e\x95C*\xa7Y;5\x10 ^\x01\x10\xfd\xe1\xc3\xd8\x85s\xb5\n\x1cmA\x92wt\xdd\x11\xd4\xe5\x85\xd8\x11\xa3F\xb6\xb7`\x9f\xee\x131\x02\x87\x9e\x1e\xf3\xbb/\xf8\x82\xf3\x86\x88\x91\t\x04~\xf8\xb0v\x82\xc6,\xa9"KPZ\x05Cn\xe7\x1b%\xcd\x94M\x03\xa4\x96\xc0h\x84\x94\xcc\xbb\xdcA\xb9\x88B\x11\xf4r\xef\xddK\x0c\x1d\x9b\x06\x81\xe3\xf5Z\x0e\x9f\x0c)\x7f-\xbc+\xdb@.3\xf2\xb0\xd2\x06\x14\xb34\xa3\x85\xe8\xdf\xf0-\x86\x1cR\x90@\xceJ\x9ehF\xf31\n\x99\xaa\xaa\\o\x1f\xbe\xb0e\xc4\x96\xf0@\xfc\x19d\xba\xb4m\xbf\x85\x05a\x10\xd1\x19ST4\xa1\xb4\xd3DS)\xddS(\x0844w@\x00\xc3#\xed\xdf/\xc8\x90\xd9\x97!~\x93[\x07\'\xdb\xdd\xb90w\xca\xaa\xd9\xc1\xc10\x9ac\xd1\xd5-s\x0e\x9d\x85ah\x1e\xf2\xe4<\x91a\xe5G\xee5$\r\x9e\x18\xe4+\xa8\x879?\xcbw\x9f\xd8\xd1\xe6qy&\xe0\x99\x80[\xdd\x883\xab\xa5\xb2\xed\xba\x96m\xa4Eh%\xa8w\x89\xfc_\xd4Q\xc1\xe0\xeb\x88\xc2\x8d\xb7\x8c0\xc4=:\xd8b\x82_+\xeb\x834f\x9a\x0f\xe3\xa0\xd5\x1b>\x1f\xc2[\xc7\x94Tk<\xef{5R\x13n\x9f\x81\\\x11\xee$\xf5p\xc0\xb6su\x18\xebl\xb2^\xaf5,\n\xc4\xd9\n\r\xb1\xc5\xf7\xb5\xb2W\x9aV\x06\x8b\xf41\x03\x0c\xf6\x1f`\x8c\xd5W\xb5\xf5\x02|\xb1W3\xe3\xb5\xf9Y5_\xfd11{3{Ec\xf4\xdeH\xff<\xdb\x05\x86\x1b(\xc4;F\xd0\x16N\xe7Y\xc2F\x8c\xe6\xe3Q\xa3oeq\xc8\xe9W>I\x7fj\x1d\xb7l\xcd\x10\x9a[*\xc7\xbc\xf9\xfe\xd1\x1a*h\x0f\x8f(\xf2\x106\x9ec\x17c0\r\x1b\xffG\xf6\x94l\xc5\x11\xce\xae\x7fF\xe6@\xde\xfbG\x05\xc1\x8e!@5\xb4\xcbiM\x15\xff\x0e\x91\x9b\xe0\x9f\xb8\'\x13\x90\xe6,\xc3\x00\x9cH\xe8\xfe\x86\xd8\xafX\xd7\x96\xe3CUvI4%\x90\xc7N\x88y\x1d9[\xc9\x8d\xf4\xe8U\xc9\xd67\xf3\x83\x9fX\xbdPZ\x9d\x04\x97Q\xa8\xb9\xc3:6\xd4{\x10\xae \xab\x9b\xabX\xb4\x8c\x05\xe2A\xb1s\xe5"G\x87\xb9\x89ry\xfa]\xd21\xc3x\xf6\xde\x12\x16`<\x7f3o\xe3\xee\xc6\xa4/\xb72\xd7y\xee\xfa\xba\xb0\xfe\x9d\xdbj{\x02\x8b\x17\xa4%\x16\xdb\x13\x8a\x95\x04y$\x1d\xa8T\x94\xaf`\xdd\x1d\xdd\xc5\x8bQ\x10y8\'\x8b\x83\x946x\xd8\x9b\xde\x86"}\n\xb6\x84GK\xdb\xad\x8fB+\xe6(\x8c\xdd9<\xe9\xba\xed\x1e WAc\x95!A\xfc\xad\x88\x1b7vT\xadnV\x8f\xc48\xe8\xe0\x84\x80\x1cVa\xa9\xb5G]\xec\xb8Xj_\xd7\xce\xe84\x05(,\xb1\x93\xa3?^\xc9M\xc1\xca\x91\x8e\'\xd0\x0b\x16i\xaf\xd9\xec\xae\x08\xbfI@E\x06v+,\xa8;\x81\xd0\xcd\xc8\x010\xb2\xba\xb8\xce\xa9\xc6\xbc\xb8\xc3\xe2\x89\x08\xfdMn\xd3\xca\x89\xbefx\xbb\xf0i\x80\xa1Ec\xaf\xe9g<\x8c\xf4\xc5\xfa\xc8b\xffHTVK\xbd\xee\x96\xe4r\'\xb5\x94g\xa08\x85\xb5\xca\xd8\'\x10\xa0\xdeG\x8e\x18\xa9\x9ef\xb5I\xfa\xac\xcc\xeb\x13\x0c|\xf51\xdcY\xdby\x1a\xc3\xa3 \xd1F\xb9\xf2\xf6%\xb0\xcc\x96\xd2hA\x11\xd8\xa4[\xa0<)3r \'\x98\x08(\t\xe9\xf2ms&\x96q\x18\xb4\x06\x94W\xdc\xaf3\x82X\x0c\xfef\xee\x80\x11l\x03\t\x8e\xe4\xf6\xdf\xf2\xf5\xd5\x97\x14\xea\x98\xd2\x17\x08\x11\xbbn"\x18!\xffs\x9a\x03\xeb\xde<\xee\xa2\xb4\xdb\xdd"\xf0\x01\xf3o9\x81\xb9\x84\x9c\xe9\xec\xa4\xe1\xe4\x918\xc5x~\xef\xc5p\x1a\xe2\x83\xdb7\xf7\xda\x85\xddJ\xb8\x8fp\xda2" \x8b\xb3\xaf\xd7E\x19W$\x13\x1cpAgD\x08=MU)\xadd\xe9M\x8b\x9f\x10D\xcc\xb6\xbe\xe9]\x1cq\xd0\xef\r\x1a\xba\xafG\x17\x85v\x01\x13x\x8f\xb7vY\x1ci\xd1\x9eb\n\x1a\x97\x1a\xa3\xa0\xab\xb2\xd9\xdc\xe5_R]G\xed\xc1\xeb\xc5\xb5\x99\xdabN\xea\x1ck\xec\x13\xaa\xd227\xa7\x03N\x8e\xe9!\xb4\x98\x0eL.o\xed\x11V2\x80`\x15\xc0\xb0\x11L[\xd51\xdf\xe2\x19l\xa9\x1dc\x1f\x9d\xed\xbbI\x0e\x8aC\xbb\x92T]\xd5\xfef; P\x81;p"\xdd\x0b\x05\x8f\x9e\x8d\n\x8d\xdd\x0b\xd0\xa5chY\xda\x9ez\xa8\xc3\xf2\xf1\x1af\xd4\xc1@3\x85$/\xf7,Hj\xc6u\x02]R\x002q\x8ct/\x8e\x96\xec\xc7L\xeb\x87\xf8\xe9k\xbc}\x03\xcd\xb8R\xe7\xd8\xc9\xd5sW\xff\x82\xa1\xa7\x11\xbd\\\xf50eq}\xac\x8f\xfc\x905G\xc2A\x00\x9am\xf7\xd0\x8c\x1c\x9dg\x1a^\xe0\xe2\xc6h\xb1\x93\xb0\xcd\x03\xa8\x06\xb2\xba\x87\x80\x10\xaa\x947\xdf|\xfe\xb9\xa0\xa4\xbb\xb1\xea\'\x84\x03\xe4\x00\x98h\x90D\xd3\xbd\x1e\x94\xb8\xca\xb9j\x86W\xb6.x\xdcD\x8f\xf8O\\\x9f\x96Q\xbb\xec]\x94\x9a\x9dl\x84Z\x11\xef\xdf\\\x9cK\x14T\x00/\xec\xfdXd\x9f\x1b\xfa\xab\xcd\xfa~\xdf_POi\x97\xdab\xf8\x8a\x02\xef\xb4\x11nXE\xc5Q\x81gw zQ\x1d\xb2#\xbe\x08\x18\xd5z:\x1e\x0c G\xd9}\x10.\x859\xf6\xf6\'\x7f.r\xa3\x1d7L\x84\xf1,\x11\xfb\xc48\t\x01gz\xc0\xba\xab.w"L\xe4\xacM\xd2\xc8\xb7c\xfd\xc25f\x98\xe0y[\x86\x0b\xce\xf0$0\x19\x83\xb6\x1c\'\xbe\x94B\xd5[\xed\x94Z\xc0\xee\xd8K\x02\xb3w\xbfD\x85\xfa\xf6b\xd6\xfeR?\xf1[\x1aV8\x96\xbb\x98\xbem\xc9\xe8e\x81\xffY\n\xe7~\xfa]\xf2\xfa\x03\xc0e\xd2\xc1\xf5\xdc\x19|(\x1bj$\xaa\xbc\x95\xfb\x9ee\x15\xe2cd\xa0\x07U\xd3/\x94\x10Y\xebx\x1e]\xddL\xa8KoJ\t\x12}.0"\x10\x8ev\x80\xca\xba\xa9"\x98\xadCo\xf5\xf7\xf6\xee\xb9\xb6\xb0\x952\xe2t\x83\xaf\xb8\xcb\x9b\xad\xd1\xd4s\x9dN\x8d\xb1\xbfsZ\xd0)\xfd\x11\x18\xf5\x94\xdf\xcf\xeaf\x81\x04\x16\x8a\xb7n\xed,\x03@M:s\xfe\xa3\xb5\x04\x1cj#\x83v\x8c\xac\x8c\xe3\xaf\x98u\xfc\xeb\xe5\xbd\x9f\xa6\xa0\xb6\x12\xd9\xd2\x16\xec\xef\x0c\xf1\xf1\xbf\xd2\n#\xe2\x19\x89A\xfaq#g1\x96\x9e\xffj\x18\x9d\xb8\xe6\x07;\xafe\x9e\nD\x97Z/6\xe3\x9bcz$\xfb5_\x8a\xef:\xcc\x8c\xf9`\x1e\xea\xcf\xdbl\x86\xf8\x04c\xf6X\xe5\x9c\xd0]\x82\x9aVPy\xdb\xbe\x9b=\xa8\xcd\xda\xb9\xe6\xf2\xa2\x0fi\xf8#/K\n\xb2\x01\xe6!|\x1b\x14\x15\xee`\x10\xb1pr$\x0ep4\xd7g\xff\xe96\xe0\xecme\xf4\xc8\xc9c\xd5\x9d\x0b\xb5\xb3{8\x0e\xf9\x0f!\x80\xb8\xb0\xeb3\xdbp\x0e\xb9\xd3\xac\x02\xdc5\xa4F\x9a\x12\x98\xefa\xed\x01\xab%!\xacC\xdco\xfd\x8f\xed\xc7I&\x84\xb9\xdepZ\xe5\xd0\x964-\xa4c\r\xab\xe4\xf9?\xf4E\xf1n\xdb\xcfl\xdc^D<\x87W\xf7\x19\\\xbfD\xc4\xca\x85y\xf3\xe6`^\xd0\xe8\xc8\xb1\xe3\x1f\xf6\x00W\xceY\xaf\xe4\xca\x19\xe8\x1a\x07b\x9e\xe9\xf2}\xb6e\x81\x00\xfd\x19\xca\xda\xc0?\xd9GT\x12rA(\xd3\x952\xdb/\xc6\x04\x10\xd9}\r\xc7f\x9c\t\xe9\xc2$=\xc1yk\x7fun\xd0I \xde\r\x8f\x9cv\xe6us\xa9l\xf4\x95\xcc\xf3\xe2z\x1czo\xfe\xa8\xe4w\x1aN5A\xa3\xe2`\xbe|\xe9v>\x0b*9\xe6\x1a\xe7\xc6\x15\x9e\x1a Su\xd7\xd3\x1b\xb5\xb6\x86\r\x11\xb7n\xa3\xf9\xe6P\xf6\x9b\xa5d\xda\x84MS\xc8\xc9\x8c\xb9\x17\xf8\xb8\xfayA\xa2\x1b>]7\x88bc\x0b\xe2\xd7a\x04\xed0m\x94\xa0\xec:\x10U+\x9dz\x1f)\x93\xeb\xa0{1\x98\x9dW~\xeb\x92\xaa\xeaP\xbb\xcc\xd7X\xdf"\xf1\x06Lj\xdf\x9d\xca\xdc\x90\xcd\x0c\xdb[\x04\xa0\xeb[U@S\x04\x99\xdc\xbfn\xce\xaaJ\xa6\x86Hp E\x12\x8e\x10\xdf_n\xe7\xef\x16\xcf\xf1\x99\xdaE\n1m\x19\xcb\xff\x9f\xb7\x96-\x97y\xf0\x9d\x96\xa4\x971\x14\xe1\xa8\xad\xaf\x9e\xa1Z\x9d+\xe3\xf1\x9b\xda\x11.H@\x92\xbe\xe3ng\xde\xda\xff\xa3y\x86j\x81\x19\x99\xb1(\xc4f\x12\xe8\xb7\xc5\xc1\xd11\xa4x)n\x1a\xd15\x102\xaf\xa4\xf4M\x02\xc5\xe2U\xa3X\x8c\x0e\x8f\xd0sel\xeb\xf4\x1c\x89\xcf\xdc\x8d\xc5\x96\x94\xe8)\xf5\x98*Y\xe6J\x01X4\xa1fo\xcc\xa1\xca(\xef\xc7%ZP\x80\x90\xdfe^\xc8\x0eg2\x0b(\xb4\xdcW\xe9\xd6_\x1c4\xf8\x02t\x9a\x91\xe6\xd7\xdc?\x96L\x1b0\x10\xe7.uO\xb2#\xf6\xba!U\xbb\xe9\x17\xf6j\xdc\x07\x97\x19\xad\xc2\xb0\xca0Ly\xa3\xab\x9a\x92\x05\xb2\xbe\xc9\xe4I\xcf\xcbsuZ\xf8\xcbl"N\x10\x95\xae\xa9\x8b\x81"\x0b\xbcs\xaeK#\xadT2\'\x1e\xc9\x19\xc9\x90A~\x04\xd4UC_\x878\xd5\xea\t\x82\x8b\xb7Qjc1\xe6\xea\xed^\x1c\xeb\xd7v\x00\x1fG\xd5\xdf\xc9>\x1dN\xb5Cvv\xb7\xb1a\x12\xb2\x89\xe1\xa7\xec\x14\x11\xcc\xa3\xa0\xbb\xe1\xf5\xbc\xa0_\\\xc3\xaf\xba0T1\xfe[7\xd0)\xfc\x0f\xb9\xbct\xc7\xe6\xa8[\x0eZf\xb4u\xf1\xaa\r\xa6\x05\xc7T\xa0]\xd0a\xbayD4\x15e\x8e\xeai\x01oq\xed\xa6\x18*\xbcHqm\x08=\x8e\xdb[\xe4\xa9\x01\xae\x97\x9f:cm\xa9\tH\xb7\xf2\xc4\xed\xae\x1f\x99n\xd5\xdc\xb7\xec\xbb\xfe_\xe6\xbe\x03Q\xc8\xcc\x93\x13\x8f\x86\x18\xde\xed\x1c\xe9\x8dDN\x85\xf5(\xbf\xf1Q\x11\xee\x15\xcd\xbf\xd9\xf5\x1a\x91\x19Lc\x9a\x1e\xe1\x000\xbe\xc3\xbe\xb3w\t/\x05je\x9bhD\x12\x00!\x81\x9c%\x16C%\xdf\x14$\xf9\t\x17f\xb0\xd6\xd3\xca\x12.:\x1c+\xbb\xf5@\xf4\xfd,\xfdAX\x8e/f \x89p\xe6X\x17\xff\xe4\x93\x0f\nbU\x87\x0b&\xa1\xe6\'\xe4\x1e.\xba/\xaf\x89(%\x02\xf8\xe0\x13\x1dw\xf4\xae\xc3<\xe0\xde\xf8\xad\xf9\x9a\x9c\x17-E\x90\xac\xdf\x83G\xeeF\x919\x03\x97\xb6,\xbe\x81\x0elQ\xdcv\x99\x08 \x82[\xa6\xb6uGT*\xba\xb8\x97!c\xffQs\xf7$q&\t\xd5w\xb6`<\xad\xc1\x9d\x10O\xfdi*E\xc2\xba\xfft\xd7\x17\xc6\xea\xce\xa2Zt\x19\x8e\x87\x9f>\xc1\x9bb\x18\xea-\x04\xce\x0e\xe9\xe8\x08\x84\x9c\x15wYv\xeb\x85\xc7\x9c0\x02\x1b\t\x02OF\xb5P\x91uv\x9f\xcf \xc8\xa0a\xd2\xae\x98\xc0\xc5\xf64N\xf7\xf3\x89\xff\xe0\xac,Y\x9c\xd5\x9b\xb5\x88\x0b\x1e\xba\x13\x877|/\xcd \xf8]\xd3Zwk\x11t\xfd\xc2\xe7\x8b\x82\xc1u\xa6\x1e1\xd1\xd2\x87X\x84\xe8\x04\xafvq\xe3l\x9cV\xcd\xc0\x9f\xaf\x1au\xd6\x1d\x06_\xb2\x07ZgT\xc9\xa7m\\\xd4R[\xa3\xe9\x05v\x1e\r\x00\xdfb\xe4\x94\xda\xbb\xc8\xbbL\xa4HVF\xceUs\xa6\xce@\xf1w\xe1\r\x86^\xe2\xd9\xe4n\xf6+\\\x9aa\x9eZ\xc8\x9f4\x8c\xf1(\x93+[\xaf\xe8l\xb0\x991\x86\'\x85u*{\xe8K\xe2\xc8tA\x87\xad\xe6\x81{\xfd\xe7\x9c3\x94\x8co/\r\xba\xd5\xc5\x14g\x13\x0e\x16\xcc$\xa7\xbc\xf6zl\xd7y\x7f\x82\x82e\xe0\xb5\xc0-\x07\xefb\xc9\x90\xca\x8f0\xc4`\xe1\xaa\x12\xd0\x9dk\xc7\x90TO\x0b"<:`\x9f\xe5\x14\xbf\xdb\x0f\xa4\x91\x11I\x94\xdd\xf4_\xcc\x99d\x0c\\\x9fT\xedf\x81Ll\x89\x920\xf4\xde\xc2\xb5\xd4\x86cq\xd6X\xc6\xf7\xcd\xffi\xd1\x02\x1c\x90\xcd\xfe2\x04\xd0\xb2D\xf2%\x97\x86O%\x95\xbb\xc2\xb9Lc\xd2\x8f\x1d\x10\x99)\x1a\x1b\x0bt\xabD\x7f\x98\xf6\xc9D\xd5\xe9\x94\xff\x1b;l\xe4f\xff\n\xb3tg\xba0\xfb\xb4\x00\x1cSv\xe2\xdeO &M\x8e\xd3\xe2\x8b\xca\x95\x8c\xf0M\x02\xb2\xb8\xb9p\x0c\xd4\xa36\n\xf9\x88\x85_!3\xb4\xac\xc5U\xc6\xd9u,\x13\xbbq\xa1\xc75\x8dQQ\xe4\xb6\xf8W\\>\xa8\xc4f\x9e\xe1\xfc\xe0\xbe\x91J\xd9\x1f<\x98\x14\xd5\xc8\xd2\x06\xbcH\xaf\xcea\xfc\xf5\xd5\x82^eT5\xc0IF\xe1q?\xf0\x0f|\x84*\x1bx\x8e\xaaL\xa1\xa5\xc8\xdc\x92\x94wKK\x9f\xc1(\x1a\x85N>{\x1f\xba\x867w\x80\xc3\xd0\x1e\xef\xfd\x1an\x13R\x83\xc5iY\xb0\xe2\xd2Ruv\xad\xbb \x8c\xd7\xa1Z\xc6\x8d\x9d\xaf60\\}\x10<\xe2y\xa2p\xa0c\xb4\x7f\x86\xe7(\xa7\xf8\xd0\xf3%\xc9!\xf7{\x7f\xa8 \xd8g\xbb\xb1\xb4\x8c\x91\x14S1kbk\xa2\xeb\xfd\xa8\xf5D\xf9k\x15\'\x14\x95\x0eg\x9f\xd4}\xfd{\xce\xdeU\x82\xae8\x16\xef\xbb\xd6\xd7U1\xac\xd3\xb5\x01b5\xbb\xcc6\x82\xd4\xaf\xa9`\x9a\x15[\n\xac\x03\xc9\x98\x169\x99\x1e\xd2V\'\x9fE\xb5d \xcf\xa8\xb1n\xbf\xb9\x90\x15\'\xf7\x9b\x8eas\xdc\xee\x0f\x13\x8e\xc0\x99\xc8\xe0\xb1{3\x15\xfe\xceZ\xaa\xd6]\xfb\xc4\xfb\xb3_v\x00\xfc"\xde\xac4\x01\xcb\x0e\xbeRB*)\x12H\x8a\x13\x19zq\x1c\x92)\x1a\xa9\xe2\x16Z~B\x0bs\x9b\x83\xce7DAg2\x08\xc5\xb1G\x95\xdd\x05+\xe7"&\\I\x9b\xfa]\x9fJ7\x05\x93\x15w\xf7\xd835D\x04\xf6\xa0\xc1\xec\xde~]\xec\xdb\xb1\x92\xdeE\xe0 \xf1\xd0\x979%\x03g\xeb\x0e\xc5uNd\xd1i\x10LX\x1a\x80\x89\xca1\x8e\xed\x87\xe8<\xc4\x99"\x1a\xa9\xcd~\xbeY\xe8\xe6\xf6\xe7\x7f\x8f\xd4\x17>\xb5|\xff\xf8\xfc<\xc4\xb1\x02{\x81T7\x08@\xe9;\xbd\x87\xa4$J\xc1\xddp\x0c\xd7\xa5EyT\xb3\x0b\xd1\xb8c[\'\xb1\x11\xb6\xad\x8a\x90t`\xf6\xf4V@\x90\x07\x9e\xb9\xcf\x12\xfdV\xd9\x1f\xb74\xbc\\\xefdm`\xf4g\x0b\xf0\xedtuiX\xce\xe6\xdb\x95o\xf9V\xc9\xf1e\xda\'\xbc\x06p:Ca6\xfcw\xb5\x00\xf0=\xeco\xf4\xffE\x90\x06\xa5\x87,qk\x11\xa4h9\x81\xedW\xa2\x1c\x87\x00,\x9c\xd5\xbf\xf9XY\x94\xa3(\x91 >n.\xc7\xd7\x82\xcfY\x0b\x11\x1e\xceVS\xea\xc0`Y\xf1\xdf\xe0\xc3\xc5SMQ\xb7\n\xa8\xec\x05\x9fCu<\xad\xcaN\xd5\x10\xc4ND\xa8\xaa\x97\xba\x11\xfe\xe4\xcd\x00K\xb6\xd1\xa4\xc7\xae\xba\xbb\x85\x8a\xbe\xedM;\xe3"\xd2c\x10\xa1\xc8\xaa\xa5f\xf1\xc5x\xd9V\t{\x0e\xca\xc1\xdd\xcdGA\x85\x84\xa3\x82\x8f-\xbaMu\x9b\xa0\xdd\n\xf1\xed\x0f*\xacx\xe0J\xd8h\xab\xef\x1a\xb3\xb2{\xf2\x8c\xb1\xe7\xfe\x17\x89\xd8ZA\x02\xec\xa3Bj\x04\xccT\x03\xbd,\xfd%\xfbZ\xecZ\xa6\x1b\xd3\xed6x]\x19\xa6\xbc\xa9.\x90l^\xbd=1\xb3rR\xd1\x13Q\xec\x0b \xcdM\x1f^W4S,\xf8\x138i\xad\x82\x80wW,\xc0\x8c\xdc\x90\xed\xc3Fi\x916u\t\'!3\xdb\x02\xe1V\x1cG\xd9\xe1\xa8\x87\xc5V\x96\x9b\xc7y\x14\xdf\x8c\xc7\xc7>z S\x04\x06\xb2r)\xc6`\xf97\xb9^sF\x86\xf3\x15\xe2\x84\xf5\xcf6=@H-n\xfe\x98\x0eh-baiX>\xf35\xad\nl\xba\x9c\x1f\xb1\xfeC\x95\x1epo\x95\x0bL6\x13\x02\xb2@\xab\xfc\xd5\xd3\x04\xf5\xe1F\\\xb7\xf5P\xa1\x1c\\74\xcd}\xe3=\xec\xfc=bjb\x82\xe1]S\xde\xc1\x18\x1b\xeb\x15^\x19qk6\xc1y5\x89.\x03\xedQn\x96\xd6\xdbB\r\x8b\xcc,DD\xe0\x8a\xdc@\xde\xa1uK\xb1IB\xf3\xb2i\xd7\xa8Kc\xd8\x85\x10\xff~\xd3\x93\n\xff\xa2sL\x1d4\xf3\xcd1E\xcd,\xd9t4\x1bw\x95P\xe0\x1e\x7fl\xd1Jx#\xc6A\xa8\xaaY\xe7\xa2\x909\t\xa2\xa6$\x0b\xc2\xe7\x85\'\x83\x18\xcb(\xca\xe0\x00\xa5+V|\xc1\x17\x05\xf0\xdd`\x06:=G\x12\xaaX\x1ee\xdeO\x81\xd6Xe(\xfe\x8a@\xa4;\xb6\xba\x03\xde<\xb9\x88%\xe6A\xf2o3?3v\xad\x83\xe7}2\x12\x1a\x9f\x94\xdd\x80\x06\xae\t9$\xc4\x8f;Z\x06\x14\x1a!O\xe1\x07bP\x0b\xdc\xa1\xeb\t\'\xedlc\x8d\x8c\xca\x11\xf9W}\x9d\xb0\xb0T\xa7\x91\x9d\xc7w$\xd7\x84T\xe2$xb\x0e\xf0\xd38\x87\xdd\x83\xf7yKGb\xb6o\x0b\xee($p\xb8V\xdb\xef4aS/\xac\x94h\x1eJR{\xa1e\x9bg\xa5\x8d\xc3\x9a\x07\x1f\rr\x9e\x0b\xa4\xca\x7f\xda`J7\xc6Mi\x0b,L\x97#\xde\xeaP8\x0e\xc5G\x9b\xc2\x9ab\x15\xd3B\xfa\x96\xb3\x94\xe4\x81\xb9\xd9\x96\xf3\xb3\xa4\xf1/I2D\x99>\x83\x8b\x800\'\x80N\rg\x9bO\xbf\xef\x91n\x95\xf3\xd9?E\\\xf9B\xa78\x87w\x8f\xb3\xb371\xbb\xb7\x96\x88\xc3\xdd:1% \x1b\xba)\xa0\x82\x18"&f\xf4V@&\x17\xf2\xbf5\x99\xa3\x94\xd4~\xfc`\xc6\x86\x80\xe8\xcf\x89\xcak\x88n\xec\x8f\xcf\x06\xdbh3N\xf5\x99\x01\xad\xf1\xbd+\xa3R\x90\xb1+/\xcc\xdf\xff\x19\xa6\xa9D\x1d(\xe5\x9b\xeb\\V9\x8e>I`\x08\xd2cs~\xc3sT\xd8\x9b\x10\xca\x05\x9e\xd7\xa7\xd0\x95\xfb~pA\xa5_[\xf9\xcf\xf4i\xf0\xd5\xd2\xa8(#_\xd6\xdb\xb1\x8aL!\xa5\xe7\x7f\xe2\n;\x05,\x02\xcem\x94/\xe6[\xd7\xd4\x82\x9a8\x83l\x87\xa5C\x02\xb4^\xf2*L\x12\x0c\xab\xa27+\xa1v\xbd\xaac\xfa8\xa3\x04\x9b\xe5\x1b\x1b\xe1\x97y\xe2m\xf1Ip&\xf8\x06N)\x19\x15sxvLt\xc1h\xcb\xa9"\x82Q\xfe\xff\xd0\x88w< D\xb0cG"t\xa6u\xf3,\xfc\x82h\xc0\x86\xa2\xfe\x9e\x80\xb7\x85#\xcdR\xce\xb0\xf4i\x89\xd2\xfb\xfd\x1d\xed\xe3l\x86I\xa2/\xd4N\x06\x13y\\\xd1t\xd8\xab\x15gc\x9f\x180\x19t\x94Yr\x14\x98\xf4d\x85\xe4\xf9\x14\xf2h4\xd7\xdd\x9fx\xb8\xcb\'\xb7\x8c\xe5\x8b\x1b\x90\xc9\xf6\x14\xe6\xdb3e\x05\xb0\xce\x06;\x08Z\xfcmV{\xa9o\xbf\xa4\x8a\xa7w\xc0v\x04\xdbR\xf4b\xac\xf9T\xa0\xef\xfe\xac\x86\x12.\xbe\x9d\x85d\x9f\xfd\xeb+\xd8\x15\xf4Y\xb5\xeb\x08T+\x88U\x05\xeaW\xc8\\\x80.\x0c\xc7\xd6\xe1\xa6g~9\xf0f\xfd\x1b0F\xf1\xc9\x9e\xd5*\xe4\xc4\xa0\xb1\x97\xa8\xaec*\xce\xfe\xc9\xcbT\xda\xf76\x8f\xcdR\r\xf2\x8f\xba\xe0\xe7\xcb\xea\x87\x06WT\xea\x1d!o\xec\xb8I\xef\x98U\xb4\x83\xaf\x17I\xbf\xc7My;\xe95\x99|\\\x08h\xe1\x8e\xdb\xe5YK\x88\xdeA*\x10Y\x80\xb4\xd5\xfd\x7f\x88\x8c\xeb\xa6\x85Gro\xf1xR\x1dS7\x0f\x06:\xfelX\xd3`\x1f]g\x8f\x05\x13s\x02\xd5\xdc=\xe6\xe6\x96\xa1c\xb0\xb7\x08e\x8c\xc6"\xfa\x17\x80\x86N\x813\x19n\xa4\\\xbd_j\x90\xd2\x88D\x0bS\x01\xca\x1c\x85\xad\xef9g\xd7\x94\r\xaf#\xed\x026\xba\xb70\xcf\xe1\xdd v7\xc4\x8e\x0c\x9d\xf0\xd8\xf1\xd9-Q: \xce@w\xc8\xa4\t\x07u\x19\xc5#b\xa1^\xd6F\xd6\x95E\xde\x87\xfa\x94\xf87M5B\xb9\xe3P{P\xc4\xf6\xfa\xa5\xc9%\xa6\xa6\x9e,\xfc\x90\xa2&\x99\x19\xf5>\xb1\x9b\xbcVt\xf5\xf2\xee\xef\xff\xe9\x85\x8d\xba\xda\xf8\x0c(c\xd2\x99\x06\x98+!\x11/\xb7\x9fhEPI\xa9\xf9j\x86B\x9f\x9cL\xf3\x8f\xec[\x01\xa8\x9c\xbcB\xf8\x85n\x98\xc0\xba\x89/\xf2\x0f\x9f?\x01g\xf4\xc3R@{t\x80\xa9\x13\x89\x83\xf7\x10\x1d\\\x13 y#\x90\xb8?\xc0)\x7f\xec\x86\xa7\xf3\x99(\x9b\x8b\xaf\xe5.\xef\x81\xa6v\xa2`\x91\xf7\xe4\xc4\x12@\n\xcf\x95\xeaG\xf5\xa1\xae\xb2\x01\x82\x8c"\x87s\x91\xed\xfc\xc5|*\xbf9\x02\xf9y\x0f\xe0\x8f\xeab\xa2\xb0L\xeb\xcf_\xe2d\xff&\xfa\xf49\x16l\x1f\x082U\xad\x0cA\x86\xa3\x1d\x86u8\xf5\xe0\x96\xdd{T\xf1\xd5\xb9\x89\xd0\x99W\rY\xd8b\x87\x8a\xc5\xd9Sx\x1fx\xdf\xbd>w\x8f\xe3}M\xe1\xe6]\xae8#e\x07S\x1e\xd3\xf4\x8d.\x03z\xb1(\x8d\x94\xed\x12$B\xc2L\xbbU)\xeb\x97>\x9bM\xed!\x05BU\xb9\xedp\'1\x9a\x9byr\x18\x0c*[\x8fo\xe7\x97T\x03\xe2\x01T\x9eC\xae\x821\x9ap\xf8&\x8btOo\xc1\xe5\xf9k\xd4\xe3\x8b\\$\xfc\x93\xe4\x1f\x99\xa4\x154G\xd0\x7f\xd1ou6\xa1n\x1c^|\x16\x16U@M\x17\xcd\x99\xcfL\x08\xe1\xda\xf8\xd8\xac\xf8\xebY&GKv\nc\x14\x04i\x1f\x11Bjw\x83o\xcf\xf9q\xedC3k\x1d\xc5\xc3\x1b\x98\xfe\xfaycp/\x04\xdc\xabG\x02\xc4kU\xc2\xa2\xcb\xa0\xd1Y\x1a\x00\x98\xeb\xa2\x86\x9ea\xf4\xe81\r,V\xc4\xbd\x9aU\xcf\xb7\x96N\xe1\xa9oI\xe7\x87\xe1\xa01,+\xad\xd3\x01\x823W\xde\xe7`\xc6\x01\x8e\xca^\x97\r^\xe6V\xc2\'\x02\xa4pW)9\xf4rW\x02\xabh\xc4\xf7\x08\xf5r\x12\xcf\x10\xd2\x9f\xb0>\x98p1D\x88|d\x0c\xb8C\xf9\x87\xa5\xbcC/\xc8Q\xe6B\xa2\xcf\xe4\x94\x12\xab\x7f\x19\xd0o\x11\r\xa8\xa3t~\xcdi\x9eQ?\x16K\xb5k\xd2\xb22\x98\xd1\x9e\xfcF\xe1\xc7\xc1\xc3P\xe6\x84\x01\xdf\x17\xd0W)\x03\xfd\x80\xd7\xe6>\xb4\x8b\xf7\xael\x96\x0c\x86\xfdZ\xb1ZT\xfd\x18\xcc\xb3\xa2\\\x88\xe7o\x1d\xa1\xc3\xd5\x16\xbd\xachkV\x15\xda\x86/\\\xbeD:\x99\x08\x11\xdca?\xfa(,[o\xea\xc6\x9d\xec\xf4\xed\xc1\x83\x16\xf9}=:0Ij\xe4g\xd4V\xafz\x88\xc1\xefZ%\xa7\xd7qCY\xc5\x02{k\x08\xeb\x17\x9fZ"\x1c"\xdaS\x94\xabR\x84a\xd3+\xc5$>\xf1\xf1\xc9\xf8\xb2\x8dR1+\xfd\\\xd0,\x92U>L\x86\x1d.\\\xeb9\xb4\xbc\x86\x03W\xeeP\x7fFf\x0c\x82\xf0-\x18H%)2]m\x8f\xf0N\xb6c\xe1\xaf\xc5Dw\xad\xac\xd4s\r\xe4_\x15\x94#e\xab\x93\x12{|\x9b\xfb}\xa9\x8b\xda\xb7\xf0\xc6\xdf\xcb\xab\x90\x854\x7fY\xe8L\xee\x1e\x14\xaf\xdf0-\x14\x94\xbaD\xd9\xc4\xa9I\xcc\x0bg\xd3\xc7\x90\x81%4K\x15\xfc\xc9j\xe4\xa7]\xa56Mk\x84\xc1A\xe7\xab\xdd\xb4\xeam\xa9\xcda\xeft\xe1\xd9#\x1a\xde\xfd\'\xfas\x85\x18q\xe3|\x07\xe3\xa9Q\xfbbh\x1f\x0ex\xab\x7f]\xe5w\xa3]\x85\x11F\x97g\x18\x11\x86y\xc1\xd6\x02S\x9b\xa7\x15\xfd\x95\xe7Y\xd6\xf3\x88\xde\xdc\xb4\x84Fu8\x9d\xda\x909\xa1rN\t\xe8\xb3\x86|\xff\xef\x11Dq\x1aT\xc17"\xe0n\x15pY\xa0`}1,\xe1-F\x90\x81\x94#\xab\x15w\x1c@\x1cwQo\x15\x19I\xc3y\xb6\x0cW\xdfU\xe37j\xdbAA\xcb\x19B%\x18X\xac\x0e]\x9bCL!\xd5\xc1\x9e\xd9\x98\xf9\xbc\x07J\xf7NmA\xe5\xe9\xc3\xa6\xdf\xca_C`\x99\xbb\x7f-\xfe\xd3\xea\xe6\xbc-\xccSv\xf4\xdf\xfb\xd2\xf6+%\xd7_K\xe9\xab\xe4\ttV\x91\x94\n\x89\x9b\xc2\x7fKMD0\xc9\xb0\xc0\xa1\xed\x9e\x02\xc7\xc3%\xa5\xb0\\\xfc8\xa0\xc2*\x93\xd3\xd5/\xa8]J\xf8\x13\xc0=@`..\xb3\x14\xf7Y\x8b\xea\x18\xf7\xa5I\xc9\x92\x9a\xe1&\x95\x1dR\xb2uD\t\xd6\x1a^^\x85\xe8\xa4\xbc\x04\xbb\x99\xadN\x96@\xe2=\x82\x9b\x82\xb4\xb1\xbc\xd7\xc3tLg9l\x065\x98\xb2\'@\xa6\x91\x1d\xf3\xee\x1dv\xd9a\x01\x7f\xa2\xa6\xd7(>\t\x0eT\x1c\xd8\xae+.!\xc0\xbf\xa2$\xbd\x1a\x0b\x17\x88n\xa7\xd6$)\xc5s9N\x1e\xc7\xab\xf6\xad\xd3\x1d\x95!WOP\xbb\xde]\xf5\x835\x8dy*G\xedAE2\xff\xc5".\xb2\xf8\xf6\xa9~\xff7\xde/\xac@\x97x\\\x00\x8dX\xeczk\x84Z\xb4\n\x9c\xab\xb3\xbe5\xd0\x81\xa60\'\x0b=\x00\xcf\xce+V\x8f\x0e\xf2\\z\ru\xfd\x9e\x85/H|\xfe\x97L\xe3n\xf7\x8a\xc3\xb6\x15f\xf8EX\xc3\xb2Y\xc25 [\x9c\xb0Z\xb8-\xc0\xb7\x00\xf7\xdd\x82\x8f\xed\xe7\xd2\x93\xa5\x92YkdBwcV\xad\x0eS\xe0\xd2\x08Z\\"ZX\x94\x938C\xd1\x100\xc8\x04Ux\x05m\xa5\xff]c\x80\xdcE\xa8:Q\x9f?Wf\xe3\xf0L\xc4r\x95w\xe0A\x08\xf9\x1a\xeb\xe3\x14\x0f\n\x80(\xb9\xfa#\xd5\x07Z^\xf9\x0c\xd7\xbb\xec\xde\x98\n\xd7\xa9a\t1\xfa^\x92\x9f\xd7\xf8\x0e\xb2*\xc5BO\x92\xb6I\x98\x1bzKX\xc3\x821\x01\x1bSO\xb4\x13\xadM\x8c\xc8\xac\x7f\n\xf4\xe4/\xabu\x07b\xaa\x82(\xd5\x8f\x9and\xaa\x07\xf5/\xfa{\xd6{\xa9\xcc\xc0\x1av\x95\xbd\xd5\x99\x83\xca\xdf4\xe0\x80\x96\xd9\x0cDr\x19\xd1\x97K<2\x87\xc7\xd5\x87\x9fY~`U\x1a\xfb\x1bI\xef\xa2p*\xddj\t\x8b@\xb9\x1e<\xa0\xb7\xf1\x8d\xc9\t\xaa\x82\x82J\xe1\xb8az\xb6\x13\x8c\xcb[i\x82gz\x13b\xa0\x16\xb8^\xc7i\x85@\xb4\xb3\x12\xfc\x8e\xe2\xd3\x01)\x07`/k\xe2\xe6\xc7\xfe\xc0\x1e\xb2L\xb0t\xdbj\xe2p\xaa\xffL\r\xc0D.\xa0\xc4\xfcqQ\x8c\xab\x87\x908\xe1\xc6\x06\x1dV2\x19-/_/R\xa2v\x99Jh\x89\x10\x85\x16\x0f\x1a=\xad\xe9\xf2\x86\x80_gCQT\xc5\x99\xb7)\x95I+\xa6\xc6\xd87\xaa\x84\x12\xde\x1c\x0c]J\x87;\xd6\xc0cpV9\xab\xc7\x8d9$m\xba\xa6Q\xdb\x14V&\x93\x1f\xe0\xcc\xb2%\xbc)\xc1DMu\xfb\xa8(\xe7HH\xbb\x1d:\x8b\xa8D\xbc[\xe4\xb3\x07>\xbfg\x9b\x06\xaa\x05\xf5\x15\xba\xd0\x17\xacr\x03)\x85\x1ep\x04\xe1\xd8t\xb0\x8da0H\xf7\x82\x19\x1d\x01y\xbb\xa2\x91[\x8b\xe3\xfa\xcea\xc5[\xa6\xd3\xd5\xe5\xae$\x05\x81/z\x0f,\x00P\xdfb\xa1\x0e\xd9\xac\x1fr\xac\x9a*\xa1.\x86\xd8\x17\x98\x07\x8ce\xd1\x9fJDd\x9a\xf91\x11\xb5tBg\xa6]\xfc\xb6\xbbZ\xe1g5\x8c\x8e2\x18C\xac\xeep\x9d\x1e\xdd\x94>\x8b-\xf8\x1a\xbb\xed[s\x069r[wRs\x02\x84>\xcd8o\xa6\xe2\xc7\xdc]W\xc4\x93\x7fmC\xd5Lz\xf2~\xc7\x85l\xfe\xf4U\xd1\x1d\x7f\xad\x03[\xed\nj\xc9c51u>\xbewvf\xe1\xcb\xb1.eN\xde\xfe\xfb\x7f\\\xa4Nx\xfa\x89\xc0\xe8\x9e\xe6\xdb\xff\x1d\x02\x0e\xd4\xe7\xea\xf1XL\x90`-\xd1E\x1d= \xd6a`\xe9\x9fh\xfbfI\x82j=\x99\x9d9\n\xc9,\x0f\xb6\xe6\xbe\x91\x98\x12\x9c\x1a\xfe\x1b]\xbfP+\x18|\xd3\xf1\xed\xf0E\x03\xc3yt.c\xe0\x98\xb4\x1aZ\xd02\x7fQ\xa4k,@_\x95\xb5\xbb\xde\x89\x84\xd9\x04QUN\xf0\x8f\xe1,O\xd5r\xd4o\xe6\xef\x94V\x8b\x15\xe1j\x82w\x89+\xf9%s\xe9\xe0\xea\xdb\x12\xf1k>I\xfa\x16\xbcx\xa3\x02\xdc\xdd+\x1cp\xbeK\x89\x8e\\\xa2*\x85\xde\x80ZI\x1f0\xf1U\xc9Z\xce\xf3\\\xe1\xc6\x0fq\x872\xa1\x1c\xa99\xe6\x17SjS9Q\x92\xaauN\xb6\xa8^\xf5\xcbx\xb4\xc6O\xa2\xb0\x12c\xc9Z\x17\x0c\t\x8cV\xc5G\x03\x82\xd0^\'u\xa4\xe2\x80\x96\x1b\xedw\xd0W\xd2h\x01\x99q\xe2"\x8eS\xb6\n\x00\x1cIs\x9dk\x93\xbb\xb8\x19`r\xc9\x1d^\xd69\xec\xda\xb4\xfd \xfa\xef\xd2$\x81>+E\xd8\xda\xb5\x83#\xddQ\xde\xcd\x9a\xc1\xe0\x14\x80\x9c\xc4J\xa8X\xdb\xed\x9f\x04d\x14\xdeY\xca\x05UF|\xb2\xf4Y\xb36\xec\x81\xda\xde\xaf\x91\xbam\xd4\xb2\xbb\x16\xce\xc8L\xa1\x9eR\xb7\xa6\x97\xad\xa3[\xe9\xe6\xf0\xb4a\xed\x9f\xd0\x0b\xafq\xa57\x8aP.\xf4\xe4Uo\x1dNH\xca\xfb\xed=\xfb\xd0\x86\xd5.\xba\x97\xf7=>\xf6\x08MD1\xc1\x1a;\xc8O\x13\xb0\xa1\x1e\x04\xdbL\xcc>\xc0\xcd\xed\x07\x06.\x98\xe9P\xd7\xdd6\x9fp\x80\xf5\xf9]\x06\xe8\xb7\x047\xf8d\xf9\x9c\xf7\xfc\xa1\xc7\xd2\xa0k\x84\x17\xa8\x7f\xcb\xdd\xbfb\x14\xb8\xa8H\xbd\xd5\xdeGl\xa2\xad\xb8\x0cE7\x0c\x1c\xb5\xe3L\xebDO{\xd54\x15\x9f\xffk\x85\xae\xa7e\xf1\xac\xde\x14\x8b\xb3\xb19\xe1\x00\xb9\x07\xff\x88\xdb$\xa5\xe7\xb2\x8c\x9b P\x1d9i\xc71&L\x92\xc9L\xa8\x12\x0c\xc8\xb8Xp\x10l\xb0\xf8\t\xae\x9c\x17\x9d%[\xaa\r:\xbd\xdf\xd3\xfcjT\x05\xd3F\xbe\xb9\x056\x1c\xedL+X\xa3\xefW\x96\xa2\xd3\xee\x16\xcf\xc7xD\xe7\x86\xd1\x80\xaa!\x1a\xdc\xc9\x8f_\x88\n\xbdv/\xfd\xa4\xfas\xa4\x8b\x81\xca\xae\x9f\xcda\xb0\xba\xbf\x94\xf2\x18\x07\xf3>\xcc\xda\xbf\x99\x9f\xb4\xbbG`Y\x8c\xc5\xd6\x7f)\xc8Q\xab\xfbx\xce\xca\xf7\x81\x0f\rD\xf1\x07:\x1c\x0c\xa1\x0b+\xd2\xb9\x89\x03\xcb\x9b\xa9\x11\xe0\xcf\xa2\xcc\x87\xeb\xd4y\xcc\x85\xa0SA\x8d\xad\x1b*\x0c\xdf\x9a\xd1\xa9\xcc\xad\xd2=\xdc\x9c\x87Q\x85R\x88\xb91\xcdCy\x95\x16u\xdc\xe0*\x81\xbb\x92\xde\xd6z\xdd\xd3=\xca\xbf\x88\x9b\x80EK\xef\x0f/\xc1g\xc7\xcf\xda\x9cu`\x91\x14\xeaRV\xe6xF\xd7\x062jM\xd7[[i\x83\x0b\x08\xdb\xbe~\x87\xf1p\x80z\x14\xa8\xfe\xf6(\xc5\x1b0f\x9b\x1c\x85\x1b\xde\x9b\xacCw\xc8|\xac\x0b\xb9\xcdF\xde\xe8<~\x04\x99P\x9c\xea\x1d\x94\xbd&\xc6\x91\x88\x82\xd0\xbc\x9a\xcf\xd8F\x1aK\x93\xc2IG\x1eV2u\xc5\xd7`\xee\\Ma5a\x00>X\x94,g\xb2T\xa6\xefd\xb0\xe8\x7f\xea2\x9f\xe4r\x7f\\\\K*\xcf\xd2\xd3R\x02\xdf\xf0\x12\x84\xea\xe8&\xbeH\xed\xf0w\x90\xa3|H\x95\x8c\xa1\xbc\xb4Q\'\xb8\x19\x05\xd8\x8b\x86\xad\xfb\xe3\xd5\x00\x8bW/-\x16f\xe1\rq\x00\xa43o\x81\xf7H\x02\xc2\xef\x82i>\xd1\xadf\\\xb1\xb1J\x1d[b$u\t/\x9a:k7\xda\xbf\x0c*\x04\x95 6\x1b\x98"\xc3\x7f\xa3\xcf\xb5\x14z\xd5m\xf8v\xd3\xb5ah\xdf\xb7d\xcf\xcdEOpc\x9f\x1b\x8b\xe8z!\xaa\xebLj~\xd0\xe3*\xe4\xf4_U\x18q\xe6\xd6QoK}Z\xf7\xb7+\xd5\n\x8a\xc0OD\xea0\x17=\x15\r"\xecl\xd5\xd1\xd3\xf4\xc8\xb4\x81`L\tub\'\xaeC\x14\\\xb7\xe4\x19=3:\xa6w\xdbLW\x92\xc0`[\x10]\x9d\xb5Q\x99\xe7\xc1\xba\x1e\xf8\xdfx\x90K\xaf\xe6\x8b\xc7"Yb\xa7&^O\xfd\x12 \xd3g\t\x01XH&\xdbe\x06\x8f\x0e\xeb\x06\xbb\xb6H"5\x17\xa7\xc9A\x89\x02\xe2\xcc\xd42\x0f>\x9d\xce1hL\xf3\xc7m\x13\xdeA\xd3\xf2\xfa\x98\xb0{\xb5m\xee\xf8r\xc4u\xf8\xdc\xb2\xca\x1e\x98c\x13\xc8\xdc\x953\x91\x0eZ\x11\xd8\x15\x86\xc9D#W\xdc\xbe\x96\x8e\x93\x089\xc6\xc3\xb0\xe4 \xf2uu6\x8d9\xc8\xda\x9b\x94\x88\xdc$\x07\xd0\x00a\xd8\x90\xba\x0c\x90\xa4\x0e\x9d\xcdhA\xa7\xe1\xa0\x83@\xcc\x94Q`\x88[i\xdf\r\xc1\xe7\x83\xf0m\xe0t31\x83*\xd8\xd7\xab`\xb4\x923\x929\xe9\x854=\x95\xc4J\xc6\xff\x83\xc1\xdb\xf8\x8bT4#\x1aKJ-2\x8d\xab\xf8~\xf4\xe5\x1a "X\x8b \x19[Q\xc7\xd5"\xc4\xa5\x92\xe5\xf6-(\x89\x99~\x9d\xae\xfe\xc6\x12\x94\x08c\xf3RI\x10@U}\xceB\xed\x0f\x08\x04\x04u\x83\xae\x06/\xcc\xfe\xado\x03\xce\xb9\xe7\xd27EV\xd4\xa4\x82\xf3\xec\x97o\xcd\xe7\x8eh\xa3\x00\x88a?@\xb6\xb1\xa9\xc1\xfb\'\xd1\x05\xcf\xbe\xb1\x97\xdd\x90\x0b\x19)\x88\x01PN\xa6g\x87\xcep\x92\x0c\x1e\x0fk-\xd9\xc4\xb1\x15\xb9\xb6V\x1b\xbf@[\xb8\xc9i*}\x0eW\x0cx\x90\x9b\x1f\xca\x9f\x07\xf7s\\\x85\x96\x07\xfa\xce(5\xc4j\xf1\xcfRG\xeb\xe4\x1c\x05\xf8P\ne!y\xab\xb4:\n\xbbIrQ\xf8&\x04\xd7\xed\xfe\xe6E=\xa52z\\\xa0!z\xf0t\x10S\xbc\xa5\x1aR\x98\x80\x83\x81dy\xf4\x12\xa6D\xb8\xf0\xbf\x85Y\x00Vn\xb4t\xce\xe4\x01\x91\xa6\x02\xba\x8b\xfd\x90\x8e\xa6\xd8\x9b\xaf\x0f3.\xcb&\xe4\x18M\x90?p3|\xa1JY\xc1.\xfb\xac&?\xf9\xe4\x1c@\xd8R\x81\xe3\xe7\x9e\xee\xaa\xeb\x03\x03\xc0i\xa1\x97\xb6\xb1\x08\xc4\xc4\xdd1\x96\x1d\x87p\x94\x9bi\xf0\xfd\x87\xe9\xcb\xc3\xda\xda\'\xe7\xfa\xb49\xb8\xbd\xf8{\xe0w\xda\xf7#\x8a\xb7\x11\xc5Mj\x9a"?w{\xdct\xde\xcc>\x93\xf6\xedRs\'\xe8?\xba\xce%W\xe5xX\x0c\xa6\x97\xc6\x9ds\xf3\xaf\xe4\xa4\xfbx\xbb\x90?\x1b?\x18j\x1d\xd8o\xcf@\xec\x90\x1e\xaa\x15\x835\xa5\x8c\xb6\x94\xc1\xf1\xae\x8812\xe0@\xeb\xa3m\x1f0\x8b\xaa\x88/\xe1yP!a"\xa5\xae\xf7\x1d(_v~[>\xcdH\xb4h\xe8V\xc9\xf2\xad3R\xfb\xd8\xf3I\xa70\xef\xba\x8d\xf4\xca!\x90\x86\xd1m(\xdb\xe7\x0eNZY\xe9\xa7 \xc7 \x01\x1eF\xf1\xbd\x9ddT\x92(m\xb2\xe3aF#}\x83$\x93\xb0[\x0bt\xa1\xc2\xadM\x9d\xf9\xef\x97\x97\x11\x84`M\xbe\x03_\xbak\xaf\xbdIL*"\\s\xfd\x19r\x025\xffr\x9f\x8a\xf7\xa1@x\xf2\'\xdb\xee\xdfN\x91\xde\x91M\xeb\xf3\x15\xfeK\x0f\xcfJ\xba)\xac7Y\x9e\xc4Q\xdfD\xe69]\xf7\xbf\x10S\xf1Zy\xef\xc4\x9c\xdd\xab\x04\xcb\xe9\x1aw\r\x88\xe5\x82F\x13\xd0\xd5\x94t\xc1\xbeP\xca\xc1\x17\xa7y[\xbf,\xf3W\xfe\xe9~\xbf\xac\xb8\xbd\x19\xadm\xe3TE\x814\xf4\x9c\xc6Q\xc2\xbe\xd8\x8e#?\x01}\x91,5E!\xce\xa9Tj=\xa9\x9fY"a\x18\xc0\xde\xbf\xd3e \'\xd3\xa1Z,.\x92RmO\x12\xccE\xd5\xa6P\x069\xe2\xab\x9cM\xf2\xc36]\xf8\x1a9\xc4pW\xd7\x8e4\xdc\x12.-|\'y&-:#h\xea\x9dUs\xb6\x93/\xc0\xb4A\xeb \xaf\'#\x86H\xdc\xd2\x80\xe2"L[`\xd5 AXZ\xa5\x10\xc3_\xae)D\x8e|\xed8\x8f\xcc\xf6\xd7_e\xff.s\xb5\xb6m\xa9\xaf\xd7\xaafb4P\xd4N\xcd\xb1\xc6\x91\xd0\xf8C\xb7{\x82E\xe1\x052\x914\xa5\x0e\xfcW\x92%;TTXE\x97\xda\x94\x92\xa9\xc7\xea\xc4\xc5\xef\xbd{\xfa:\xa3\xa4\xee\xc5=\xf7\x15~\x13\xcfo\xbb4}\'\xc8z\x95\x0c\xa1\xd5~\xf0\x9a\x07\xf3\x17\xbd\xf8\xa5.\xacF\x81\xe6!G\xf1$B\xcc\xc6X&\x98\x10\x17\xe3\xa1\xd6\xf78g\xdb*\xc6\xb0\x03\'\x0cm\xfe%\x19\x12\xfa\xe8\x83\xfe\x82\x8e\xd0\x9e\xdbG\x02\xdb\x9e,\xe3\x8a\xee\xc0n\x8bg\x97\x8eI\xda\xf6\xb8\x89r\x9c\x14\x19\xf3\x08J\xben\xf5\xce\xa9\x11\xd5\xe4\x17\xa1\xdc\xa5m\xc1\xd8\x82m\xe3\xbc,\x97\x9da|\xde\xad\xb58\xf9F,\xc9H\x0e7\xb1RmF\xf0Zz\xd5P%\x01<\xe3\x97\xc6\x9e6=\t\x9f\xaaolGNn\xd9\x93uSW5\x19\xf2\xebz\x05\xc4\xd4\x86\xd4\x82"\xde_H\xd92i\x94\xaa#\x15\xa8\n\x12TX\x9b\xc3\xab#=\xf2\xf3N\x95\x0e\xf2\xc6)3\xc8_\xf9\x1b\x8c.\xd6}\x19\xcay\xb8\xb4c\xcc~6\xc3\xb3b\xb7\x0c\xbf\x82\xcaN\x82\x8b$H\xe0)\xb2\x05\xfb\xc6\x979\xb1\xa2+n\x0bSyI_\xa2\xf4\xf3}\x99\xf7\x89\x01\xdb\x02Eo\xef\x04[\xa5\xd9\xdd\xfc\x9c\rJ\r\x80t\xb26\xcf\x95)\x83-\x94yX\x8f_\xa3\xf9\xf5y\xc9\x05\x05 \x14\xddf\xa75 \x9cm2\x1c\xff\x98JK\x1a\xf1\xbaj\xe0Po2\xdd\x06\xcfz\x0f\x99\xa0\xecaFN\xce!\xd7\x81_\xe6\x17;2\xb1j\x1e\xdb\x89\x10\xf6J\xb4\xdb\x9f\xfb\xd8\x9fz\xeb\xc4\xb3\xbd7z\xeb8\x84\xb62\x19\xa8\x18B\x9f\xf5B\x19P\x9dk\xdc\xb37\x92\x90\xaa#_\r\x1c\x02\xaa6\x19Z\xa8\x90\x8dXa6\xe5\x9e\x9f\x96\xdd\xc40mY\x89\xab\xa1j\x8d\xb7\xd6\xaf\x04\xc9\x9b\xaa\x9c\xe87t\x16\xda\x93\xceP\xe4\xcf\xdc\xb8\\KC\xf0\x8dUS\x0e\x04m\xe3E.n\x99\xc2\xd7y:\xf9\xe2q\xbe-\xe8\xa3$\x02\xa9\xaa\xd7Th\x9b\xcd\xd8\x9c*.\x9e\xb9\xe3F2\xef"\xe0%\xd3t\xbb\xb5\xda\x0b\xf1\xb4X\x91h;\xf2K\xf8\x07\xd6u^\xa37{\xbe\xb0\xe7\x8do}\x1d\xf4\xb7)"\xae\x04\xab\xa7\xf8\x9d\x85\xca\xc44\x93|\x86\x1b\x04.v\t\xf0#\x87d\xdd"\xde\xe6\x86\x87\x94i\xc4\xe0(\x19:\xa9f\x88\nA\xbc\xe2\xe6\xb0\xb8oJ\xb3\xf5\xc1\x13\xbaA\xc0#\xe1\x7f\x08\xfd\x15\xf4\x92@sFBx\xe69\x12\x81\xd3q]\x86\xec\x8a\xfc2\xe4\xf3Z8\xc4N\x80\x93\xbb\x1d7|eH=}\xf2\xae\xba\x8dG$\xb2\xecq_"\xe1\x7f5\xcaw\x14?)\xb9\nyL\xc2\x190\xe1\xa0z=x\xadZ#O\xc5\xd4h\xb1Z\xcfrQE\xe3\xack\x15\x9f\xa9B\x000\xcd\x98a\x03\x95\xcf\x08\xc9h\x8b\x8f\x0ck\xe2\xe3\x14\x07\xe4\\ar\xb7]\xe0\x8e\x96d+-\xaf\xf7?\x9c\xfa\x96i\xa2\xb9\r\x85K\xa8\xb8\x88\x0e\xa9d\xfb\xb7\x89K`)\x00|.a/d\xdc\x1aN\x9b\xa7\x1b*a\x01\t\xfaT}`\rO\x06J[l<|\xa1K\xa5z\xa3Ugl\xb7Tq\xa9\xe6\xbd[+-\xab\xf9~\xf1\xbe`g\xfd\xf46\x93\x11\xe5\xf2\x9e`\xa3\xbbd\x83\xa6\xbe\xae\xd9\xc8O\xfcA\x7fcD\x1f\xf9\xbcP\xbfpf\xa2\x89\xcd\xc6/\xe8\xeaZ{S\x19b\xe2\xc4g\xfd\x80\xb4\xfd1\xf6;nJ.\x8d\x07\xf6\xf0\xbb\xcf7V\'\x90\x8d\xaa\xa1W\xff\xfd\x07y=\xdf\\\xf0!i$ni\xe3d?U?\x88v\xf2\xac\x855?\x08s\x13\x9a\xbf\xdb\x8d\xb7\xee\xfbfhf\x94\xe4\xfe\n_\xe8\xfdM\xa0\xc5;\xe6\xa1\xfcQD.\x1e\x05X\xacmH\x07\xff\x039\x05\x89\xb8T\\\xd6\xb2\xc7\xfe\xc3%\x84\x9b\x03l\xf0\x03Jj9\xa2\xdb?\xb7\x146\xd5\xd2B\xd6V\xef\xb7\x1b\xee\xe8\x10:\xae\x8e\xe2iy\xa9L\x1d(a\xf0:ie\x08\xc9d\x05\'\xbc \xd9\x8d\xa42\xaco\n\xdb!<8MC\x9d\x8e\n`\xedQoVu\x86\xe1\xce9\xbc\x85qn:\xc6\xdb\x1ch\xf6\x81qy\xed\xfd1\xded\x12,B\xc3]YuI\x1c3&\xd4\xc82P\xda)\x07{Y\xae\xd1\xf7\xa2\x14\xe8p?\xeeE\x04\x02\xd2\xf3,\xbcg\xb1\x946v7*\xcd8\xc9dz\x96\x8bg\x86\xd1\xe3\xa4\xa2Ww.\x1f\x82g\x97A\xa5\x9b\xa1j\xde\xa2~\xed\xbc\xd0\xa2 a3:\xb5\xd8oT\xa8]\x17O\xc1kv\xc8\xdfq\tm\xf1\xbc\x86\xdc\x1a\xc6\xcd\x95M\x8a\x1d\xda\xe5\xea\x02d\xec\x97\xc4L\x82\xeb(\xcf\x8d\x1fr\xe3\xef\x1f]h\xec\xd74$jcm)\x0b\xfa\xc9\x86\x93\x0e\x9dF\xf4\x8b\xf8\xf1\xf0aZr\xc5aF\x85\xbb\x0b\xd9\x91\x9b;\x99y_\x1d\x9f\xaa\xc0\xbbC\xe9K\xea\xc0\xacr\x1f\xbb+\xc6\xa1\xb2\xcfUK\x13\xaa\xdf\xe9W~\xda\xeaB#\x8e\x8d\x16\x17k\xdc!\xa3\x0f\xb1\xf8\xf1^\x1f\xbf#}\x92Dl.\x0bkb\xcdL9xR\xbf\xe0\xe5\\\x1d\xee\xc5F|T7rFl\x8f7L\xd7\xe2s\xebS\x0fv77Z\x109\xbd\xce\xb9\x1d\xcaE\x9c\xae\xfc\xc8\xc4]\xd3\x89\xa82\x08\xc4V\xcf\xb9\x84\xfc\x07\xc2\x81E\xc4*?\x15\x88iQw\xffF\x95\xaf\xa5\xe7\xa0\x84\xf1n\xcc\x9a}\xe7\x15\x15\x03\x8e\xcej\xa2\x14\\\x99\x87v\x9a\xce\xa7\x13\xcaS\xa8\x07)\x92\x88R\xa2\xa6\x92\x087\xe5\xd8\xc3Z\xbe6\xf4\x1bs\xe7\x95\x1a\x9fi\xbf\xd3\xe7#\x93\xadd\x86[\xf1\xab\xf4\xfe\xc6\xfdT\xe3\xd0~\xe9\xcd\xa6\xc0\x01\xd9\x06\x0cW\xbd\\s\xb2)kFr\xe9\xbd\xcaa4q\xbc\x19\x19{51\xfb\x1f\xf6\xc3\xa4bk\xc0\xf2\xb0\t\x9a\xc8\\R\x8cy\xce\xc6\x1b\xd6\x98P\xc9\x8b=\xd0r\xaa\xc9\xc7.Z\xbc\xe8\xd1\xf9\xf4/B\xc4\xbfn\x81,U\x92\xc8\xb7Y\xfa\xe4R\xd8_\xa7\x18\x98\x10j\xdf$\x7f\xf1"w\x9e\x03\xc8\xa9$d\xb9\xb0\xed7\x87\x19J\xa92\xcd\xd7\xd7`\xd7\x08\xb8\x91\xb8\xe3\x8fB\x96l\xd9\x05k\xd1\xca\xcf\xf6X\x99\xb9\xe2|$2\x06aK\xd0\xf3\xe4\x92Iy\xe2\xcdD\x95\xd7\x18\xf0\xaa\x1a1\xb3Zq\x0e>\xd4\xea\xbe\xce\xf4\xba\x9c\xc6\xe2\x8d\xc9\x1f\xda\t*\xe6\xff\xb8`\xab\\W8\xa8\xce\xe9\x8d\xd4\xb5\xac\x14g\xe0\x1eB\xd4i\xb6E\x1c\x9f\xb6\xc4\xfcG}\xed\xc3\xf03\thOY\x9e\xfc\xff\x81\xbf>\x1e0m\xfbgg\xede\xf8n\x95-\xd0\x8b\xb3\x03\xb9^\x1dT\xc9\xb9Ndj\xa0\x04I\xbc\xab\x89\xc9YT7\xe9T\x8b\x888m\x99oK3\xd0\xe9\xb4\xaag\x9b\x1d\xb65\xa4\xeb\x03\xfa8\x12\xd8Ks\x11\x08\xde\x89A\xdfV\x1f\x8a\xa4\x99\x84_\x12\xff\xac\xae`Sq2\xcbsK\xc6\x1c\xf85>\x83K.\xf1\x89\xb3\xe5#P\xe93\xb6\xb6\x8a\x12h\x08\x86Q\xbcU\xee\x99v\x8f\x08#\xadE\xd4\x18\x10\x18\x12\xbc\xb7\xb0\x0cAC\xe2S\x01$\x1b\xa4\x06\x87\xae{2l\x9f\xdb\x1f\x9c\xd1\xff\x16t68\x7f\x96\xdc^\xb5\xa9\r\xcf[-w\xf6\x1b\x06:\x81Iqd/\xed\xca\x8e\x9c\x0b\xc4\x19H\xad\x88%\xbbIA\x9d\x11\xca# \xf3\x8d\xa9\x93)\x06\x17\xc3\x10\x90\x7f\x96;\t}\xb3\xb5:u\x96\xe08"\x92\x17u\x9d\x1b\xf5\x1a\xa1\xa8|\xed\xeb_\xbb\xaa3\xcfu\xe5H\xb9&#(\x90\xb9\x88\x050{e;\xbe\xaf\x18\xef\x89\x1dp\xe9\xeak\xea|A\x17\xb7v\xa9H\xca\xcd\x0c\x8c\xa0O]Z\xe1\xe5\x0f\x8d\xf8\xe3Q!\xb3c\xe1Z\x8du:\x96\xd8\xb8\x86\xf7\xa1\xa7\x90\xaaj\xf4\x9f\xa1q\xd6\xc0\x88\xc3\x16\xc5\xf2\x99\x87A\x89\xd1\xfd\xbfj\xefSVNs\xaew\xde\x9a\xeay\xa6\x96ef\xb6\xb1\xe4\x13\xb1=\xc8\xe1vjbV\xb9U\xf95\x0eL0\xcd\x1e%\x91vN\xe6S\xb9\xe7\xfal\x8e\x15\x80[\x03\xdd\x0b\xb4W\x9dA\xf2Sa6\xd1\xbc\t\x99a\xbe#\xbe\xb4\xc1\xed\xa8\xd5\xa3\xbb\xdd[\x1es\x95p\x06\xd1\x0f\xc7R\xea\x82u\x8f\x04\x8c\xe7\xab\x8d\xec\xa8g(\xc4\xfaN\xfe!\x80\x95\x01\xaf\xa1\xb7{p\xb2L\x84\xb0^\xdbT\xfc\xd9\x91+1\xe6a\xadm\x1a\x9e\x91b!\x9f\xb9\xb5B\xdb\xf2\xc9\xec\xd2p\xaa\xa3"\xe4\x8c\x92\x10\x1eg\xc6\x9fWX\xa0\xb8\x11\xaf\xe6\x05\xd8\xf5\x1ab\xfb{\x0cs\x81I\xfaw\xac\x16\xd3.w\xa0\x12B3\xf6x\xfab2\xa6\xbfb\xb8\xaa\x0e4lue\xfa\x99\xca\xfb\xb9X\xde\x87x\x18\x97\xe5W\xc4Yj0\xfb\xb0\\Q\xe5uiP\x00\x93c\x12\xda\xa0,\x99M\xdfUP\xc5L\xfd\x10\x02\x03e\x17\xa8_\xa8\x91\x84\xda\x00\x1c\xc1\x9e\xfd\x03\x08\xea\x88\x0fP\x17\x12\xed5<\xcb\xac\xa8PH\x17\xa4\x1aRjRI/\xe1\xf5\xe0X\xa7\xdf\xdf\xfd\x1dF\xcc\x08\x940\xb4\xa8\xe2U\xe4MS\xf8\xef$Z\x84!:o\xca\xfb[\x16eg\xeaJn\xe2\xcf\xb9\xbe\x13\xfez\xeat\xb5di\xfb\xa4\xf0pPh\xb9\xadq\xef\x85\'\x83\xce\xd1\t\xb5\xc9\x9e\xd2\xd0\xd6NBj\xc3L\x00C\x8f\x9d\x16B\x01\x1b?X\xba7\x82\xa58\x05I\x7f\xac\xcfy\xe1\xd1\xe2\xd2\x84{\x87\xe4\xfc>\x96\xa4\x04?[-\x8d;N\xabE\xc4Zz\xd1\xbd\xa3lko\x1f\xc6\x97\x8c>D\x02}t\xe77\xc2\xdeq\xc1\x05$\'\xa56\x02jx\x1fN\x84M\x039\xc92\xbeh[\xb5[\xc1O\x8a\'\xc2r\xf0\xa1\xde\x83%\x9b83"\x9e\xbb\x95\x0b\x84\x94\xb1\xd0\x8e\xe3\x82\xf5\xd9\xd4`\x0f\xfc\x83^\xdb\xf7G\x90\x81\x0em\x1b\x84\xd2dNb$\xb3\xeb\xbf0\\ms\x8e\xa6\x00\x06\xa8m\x99\x9d\xeb\xe95\xad\x97\x95\xe6d\xb7\xacG\x7f\xc5\xcf\x06\xc7U?f\xa1291\x88\xf7#\xb4\x90\xf6\x9d\xd6\x0f\xf1+\xa6`\x85,\xfc\x8a\x8e"\xdfp\xcd\xdeNB\xd5\xb8\x983h\xb0\x0c\x1c\x82\xa1&\xadn\xa6o5j1\xb3\xd5\xa9\xed\x9d|\xf2\xfe\xd7\xa2\xecX3\x06W\x0eX`\xe7Z\xcbQ\xc2\xcb\x98M\xae\xda\xff\xc8\x9b\x8d\x92\x99Zf\xf3\x1a\xd6\xcc\r\xb0\xea\xc9\x0e\xd4u\xfcr\xc0o\x9c\x01#\xc8\xb3\x08\x00\x9b\xdd.\x08\x8b.\xac]@\xa8\xda\x8b\xb6\'\xa0g\xa6\xde\xdb\xe7Zw\x19\xbb\xb3\xe1\x9e#\xa6\xa5>\x83(\xed\x1bB\x8d\x83m)\xce2\x10./\xf5\x06\xfb\x90L\x1e\xea*+\x7f\xd4\xcf\xd7\xb3\x9a\xc6\xdfM\xc8\x0c\xc3\xbf\xddn\x9d\x00dg\xdfp\xf6\xb0m@\xf79\x84\n\x9c\xf1\x1a\xbe\xf3V]t\xb7BwF\x15\x9d\xca\x80\r#o\x8a\x16^:\x92c\n\x01\xee}\xdb\x1e\x04\xfeQ\x0f\xc3eD\xf6\xd1\xec:j\x9bd\x8f\xa2\xa4\xd92\xe9\xcc\x92\x112L\xa8\xdb\t\xd1\x18\xe3\x9f\xc6\x9as\x90\xf3\xd8I\x19\xcb!\x88\xd4\x7f\xa9\xb7U\xf0\xd6\xe7{\x1f\xdd6{4\x02\xf9v\xd1\xca\x1c\xa2\xe7\x83{\xd5\x07\x9bHc\x02\xe9^\x13h\xe5\x05\xb5{qIA\xb0t\xf9\xd3\x97\t\x1fWs\xe2N\x12s*\x829j\x93^)\xec\x1f\x96\xad\xaa\x04\x01?\xfeWw\x15\xe4\xfatIIW\x03\xcb\x996nH\xceF\x14\x07\x85\x1e\xfa\x88{:\r\xe3\xcam\x93V\x88Q\xfb\xd9\xb3\xc4\xb1\r\x01*\xfe\xdc\xee\x8b\xdc\xd5\xf4\x8ds\xd8\xc02r\nF\xd3U\x9b3\xb5sed+\x89\xe2d\xa5[\x7f\xf2\xa6\xfd\x98Trmz\\\x19\xb8#\xc6\xb8\xe5\x9b!\xbd\xb6\xd0\xf4\xc9\xea\x1ei+\xb0\x83\xdf\nV\xd0\xe3$i\x96)\x07|\x1e\xf6\xbeRVw\xd3\x80\xad\xe0\x80\xcbN\xcb\x13&\x1c\xf0\x96mS\xe8D\xbc\xbd\xfc\r\xaez\xf9{.\x14i\xff\x19\n\xb8 \xb4n\x16H\x85\xf7\x033\x05\xa0Z\x8b\xd5/\x0e\xe6\xceza\xab\xbe\xc9SL\xa5\x15\\h[GF\x086\x90\xc5@\x9c\xc7Q\x94\x92\x95W\xde\xa5c\x91\x82\xb0\xdb\xdd\x1cU<\x0c\x96\x9d\xd8Z\x10\xa6\xac\x0b\x92)\xb1\x89\x10\x96\xf1\xb2\xae\x87\xba\xfa_?\x1f\x80-\x8f\x7f\xfb\x02U\xf0\xb3\xb1B\xc0\x16\xe3\xa2\xff\xff/ju\xfa\x85\xba\xea\x9a\n)GN\x82\xd3\x8d07\xe7\xb8\x18\xb9\x9cS\xde\x8c\xab\x1e\xd3\xd41\x81\xd2\xb5\xb6#Nu;\x8f\xc5\x11KIgs(s\xb1\xa6\xac\x83j:C\x1b\xff\xda\xbd@\xaf-\x16\x1a`$\xd46(U\xc0*sI\xca\xfd\x8e\xbfB\x0c\xe4\x90\x82\xcc\xf3\xd0\x0fJ\xd4\x03\x8b\xfe]\x16\xef\x87\xde\xa3\xafn\x86l\xe9\xfe\x89!7\xf9\xa8O\xbd\xb3\xe4\xdbs&T\xfa\xf9\x87N\xf6Y\x8aP\xb0\x85\x0cZ_x\x88\xcf\x9c\x13\xe5F\x89:\x87\x00\xbc\xb2\xea\xfdv~\x179\x16\xd1IF\x80\x1c+\x9e\x99\xbe]L\x8fuWv"}j\x8a\xa2\xacH\t\x13\xcecm\xef\xb4E\xa2\xe0\xb2\x89\x1bB\xfe\x9e\xd1+\xb8O\xea\xa6`&\xe9)\r\xd0w\xd5\xb9m\xb0l\xe9\xa3\x96\x8f\x99\xf5\x12\x1c\xec_ c\xb4\x0cgla{_3\xcc\xe2\x1a`\x19\xa3\xb5\xf8\xf0et\xf5\xf4\x0e\xcc\x07\xbar\x80nS\x9dO^\xac\xaf\xc6?\xd7\xbd \xb67\x99\xd7\xc4\xf9\xc9\xa0S8p\xf6\xeb\x9a:\xbd\x947Z2\xdd\x8e-\xfd.\x87r\x0b\xd5\xc1\xfd^\x83!\xaf\x18\t\xd5\xa6\x02W \xbc\\\x8b$\xade\xc1mR\x7f\x0etS\xc4\x07\x91i;RW\xd3\x17,\x08\xcc\xa5\xb0\x83!\xcc\xa5\xc4\xec\xef8\xf5\xb00\xed\x14l\xae g\x89K\xa9\x90\x9a\x1d\xbfyJj\xad`\xfc\x02\x81,\xaf3[R\xa9\x16,\xa3hM\xe1\x14\x0fd\x9dS-\xa1}B\xe1\x98\x87\xd7z\xcb\xc2\\\xd2WE\xfa\x92\x9c\xfa\xb6\x83\xf3\xd8\xa6\nw.zX\x00\x01N\x12\x9e\xca\xc8\xaf\xfe\xea\xac<\xbbl\x9d\xb9\'\xb0l\xd4\xec\x1e\x10-\xb6\xaf\xf9=\xb1@m\xcb\x85\xa5\xb1\x98\xfbp\xb4\xe2\x891x0\x80?YQ)hZ\xe2{\xf9LPNi\x94\xf1\xf0\x1b\x81\xe7\xd2\xb8\xc0/\xda\xd0#\xa5$\x17K\nN\x03\xc5<}\x198)w\x16a?\x19\x01\x192\x99\x88\x9f\xed<\xf0\xf9\xe67\x87\xa8|LC>\x13I\x05 \xfe%\xcb\xb95\xdd!\xdbl\xed\xc9\xbf^\'\x8f\xb6\xaf\xeaM\x0c0\xcb\r?$C\xd1\x11=\\\x87\xe7G\nK;Ua\r\x0e\x8eoj\x843\xa5V\x0c|Me\xc3\xe8\x85\xa7\x04F\xf6F\x93\xa5*\xc9\t\xbe\xeb\xcb\xc9\xa5=\xd4\xcf~\xea\xfc\xe2\xc6\xaa\x7ff\xf0&\x95ZEZ@\x98\xf6vX\xc3\xe2&\x18\x12\xca\xb57\xcd%\x93\xf7\xb5K\tXe\xc1D\xceo\x08\xc5\x1c\xcbT\'tQ\x98N\xd1\xc4m\xf2ysut\x89\x8f\x12\xa5t\x9b\r\x9d\xd2\x11\x99\xbb\xf8\xb5\xbd\xd3;\xfa\n\x8e\x1c\tO\xc7\xf9Q\xa4\xbc\x8a\xae 1\xd0\x8d\xa6\xc3`\x11R3e\x8e\xdc\xf7\xdd\xbc\x9c\xe0I\xd7\xae& *\xf7\x99qG?#?~\xa4\xa6\xf3\x88\xcc\x8c\x98w\x1d\x85\x8bu\xa73\x96\xcd\x03TD|\xdd\xa9\x93\x1b\x7f\xd5\xd9J\t:\x96\x15\x02\x84\x18\xb7\xbcR\xeb\xbe3\xa4\xd7\xfa\x1a\xc0\xcd\x94\xf8u\x0e\x1a\x89\x93\x91\x7f\xae\xc6\xac\x91\xbdW\xbd\xc0!\xba\t\x9d\xc8\x8f\x18\x9dj\xf2\xd2/\x07\x9d\xd4,\x84y\xa8\xe19c~\x8e\xc2\x83~\x96\xf2(k.\xabO^\x98\tm\x11:\xf4\xd5=j\xc0;\xb6\x1b\x1e\xf4\x0b\x9d\xcckh\xb5\x89:T\xb2\x90\x96i\xd1B\xf3\x12K(\x8b\xf8\x17j\x1f`x\xd06\xf1J\xd3\xd0\xcd\xff\xf92\xda\xc3Z66\xf1\xb7\xe0\x9c\x0e\xfc\xe2\xe3f\xe8\x95\x92c\r\xc6B\x81[\xab\x13d\x0e.\x93\x007\xe1\xd6+r\x1b\xb0z\x7f\xbf?\xaeq\x15\x97\xe3e\x86\x8b\xa2r6\x95\xfe(Ff\xce\x1c\xb2"\x90\x0f\xff\x1b\xa7i\x97F\xd3r\xcf\\t<\x94\x8d\xae\x81\x0e&\xc6[\xe2\xe1\x97\xae\x8b\xa7\xfaf\xa4O\xe5[\x8a\xae\xf1\xc9\x0b\x1c\x04\xe22\xedRi\x02o\x04K$`\xa6\xe4\xc8\xb3\x061\x93\'\xdfWu>j\xcf\xbf\xe8\xaa7\x1cJ\xe5\xea\x00\x93\xc3S\xf9\x00\x10K\x9clQ\xb74\xdd?\xf3a\xaeD\xa1\xd7U\x03\xc2\xbet\xaa\xa2\xe8\xd3\xdcQf\xb5\x13\x1e\x91\xaeF\xf3\xa1\x92X\x15\x93!\xdf\xaa\xecj\xda\x16\xe4\x05\xeeo\xacC\xb4u\xef\xd8\x1dm\xa3\x15\x99Ev\x1f\x91\x00\xeaW\x81\x1fj\x9c\x01\xad\x1b\x91\xb1r\x86>\xbef\xd4\x90\xc43,\xb9 \x15WlGK\xd7\x92\x826X\xa7?i\x1c\xd7\x9c\x0e\x0f\n$\xd1\xbeu\xce6\xcf?\xa3\xd2\x89\xf8\x0f\xf1\xb6\xe7P\xd4\xc75}b\xea\xbeL\xd3\xf4NJ\xa7)\x96\xec\xd9\xae{\x02\xe2\x98J\xa2\xc9\xc6:\x95\x94\xa2\xb2\x18\xe3=i\xca\xf3~\x19\xe50\x1c\xca\xb0\x1e07\xb8T\xe5\xed\xc2E7\x0f\xf8\x13J\xbf:G\xcd\x8f\xcdz\x16\xa8\xdcX9\x85L\xa2\x82\x18\x86\xbc\xec\x89~P\x07?9\xa7\xc1\xf0\x8c\xe5\xa9\xcb\xc6\x98\x1a\xfalh\x9f\x92)\xa3\x12\xe2k\x0f\x1cwY\x17xX\xc8\x06\xc9U\'\xff\x1d\x99\xe4\x17\x01\x9fo\x8d\x14\xb7\x98\x80#\x04\xc8dK\xa9\xe7\x9bC\xe5\x11\xaet\xc3\x94@m\xc6B\xb7\x18t\x15\t\x12I\xfe\x8d\xe2\x19n/\x11\x86\x99]@\xfb\xda\x05\xf9\xc5\xf7L\xb1+\x8f\x8c\xb7\xe6\x1a\xf7\xaag\x83#\x0e\xcf)W\xae\xf0\xc9\xac\x12\x81\xb8!{&K\x14J;\xf26\xbe\x964\x13\x9f-\xfe\x82\xf4K~\x97\x94h\xdd\x8b\x12\xe4\x12XLt\x12\xfc`^-\xa9\xad6l_PY\x02\x0e\xe1\xe0ZR\xa9P\xbb\xdaS\xc67Gx\xde\xcbm\xac\xa7\xcez\xa8\xa5oQ9\x87e[\xc2\xf5b\xd9i\xfct\x1d\x1b\xdd;\xfe\x82\xb2\xde\xed\xec\x16D\xf1 \x00\x80\n\xdfrA\x18\xda\x1b\x05G\x82\x04\xb3\xf7,_\xe0\x08\x1a5\xbey\x1e\xd9\xa2\x10o\xedUB6\x04PTgxq\x90A\xcd\xc2N\x8c\x1a\xa4]\xb85\xdb[+\xc1/3\xdal\xa4e\x82\xf85\x8en9\xa5\x9cO\x8b\xf0\xb6\xf4/\xea\x8a~5;\xf5\x0el\xe7\x10\xd99\xc8-\xfc<\x06kt:.\xb3\x92(|\x85)\xc9\xc2\xc1\x9a\x8fV\x0e\xa8w\xf5\xac[\n\x81I\xb5\x1a\x99O\xc59\x08\x1f\xe3\xf9\xbd\xc6YA\xd7\x02$o\x04P\xe7a0@\xc5;\xdd6rI\x90\xd0RW%{\xd7\xcb@\xdb\x06mu,\xd8\xb0\x8e\xbe\xcd\x1f\xb7\xd7_\xe6\xfc\x1d\x8e\xd3\x1eSv\xb6\\(\xea\xc5\\&\xfb/\x8fYD\x9c\xda=H\xaa@\xdd\xab\x88kM\xeb\xf5\xdb*\x85\xe9H\x1e\x02\xfc\xbe\x0c\x83\xa9\xc0\xc1\xd0\xe4:\xf5\xf6\xa1/c\xe7\xad\xe0\xefRP\x9e\x9b\x9c\x96+\xc3WM\xfcaC-ZY\xdcA\xfc\x86\xf2%\xc8]\x01\x89\x08\x82\x94\xe2\x92;@\x88\x8e\x18\xa7\xbe\xda\xa7R\xe3\x1d\x08>\xb4\xdd\x8e\xc6\xe07\x96\xcd{\x91$ECM\xa22\rt\xf1{Hm\x15\xaf\x8d\xaa/\xab\xc4\x7f\xe6\xadm\xd6(9m\x1e\x0e)\xeb\xdb\x0c{\x88\x08\xacn\xa92\x82\xb6\xa5|\x9f\xa4\x91\x147\x91x\x80\xcc\x05\xae\x17\xc1\xc5\x15-4\xb5\x10\t\x06\xf1`8\xb4\xe6\x10h\xc5\x0b\xdc\xe3P#m(\xc1\xb6\xce\xcf\'"\x07\xdfa\xcf\x19\xaeEw\xbeUhh\xb4\xf2Y\x0bL\x14\xcd\xff\xb1\xa0\xa9Y\xc5&\xb0\xfa\x8d\xbd\xdf\xba\x0bc\xeb~\x85SA\xc5\xbdHoMQ\x8d\xca\xce\xc6\x11f\x8f-\xb2m\xfc\xdc\x87\xea\x13N\xa9\x1b\xae\'e\xde\xd9\xb2g\x8f{\xc8\xa9i.\xe8\x19\x8d\x86\x06k\x90/4\x04\xf0\xef\x9bV\x93&Y\x11\x03A\x99\x1e(\xf5_\x8eM\x03\xd9\x1b\xafM\x10\xb5\xa7\xa9;2\xfa`\xd7Ym\xd7\xfb\xbem4-\xd3\xf1\xfcj\xa2{\xf9\x98\x9bx\xbf^\xd4ff/\xe1\xb3\x06\x03B\xe3\x1dt]\x82\xb9\xd1\xff\xfe\xa0j\x97r\t\x7fY~\xc9\xff\xe1\xa1\xc8\xb7r\xdd\xbc@\xfa-\x85O\xa8\xb8\x9d\xa4\xa9YX\xb0\x83\x84|\xb3\xea%\x12\x13\x9a\x9b\x8f\x93\xb4\xba\xd88\xc5\x1e\xc14-\x00\xa5Y \xce\xdf\xdf\xa4\xae\x85}4:k\xf1n<\xfc\xf3\xacI\x02\xf6\xcb\xfb\xd1\xb4\x89\xcc\x11\x18v\xbe\x8c\xcb\xe6U&\xff\xe9`\x88\x1c\x18:\x15\x124\xc0\xeb\x1b\x87\xbe\x0eTa\xc7|\xdc\xact\x80:\xf58\x15\x80\x83I\xafwNd\xd0\xd4k}\xf4~\xfc\xa0\xe0;\xc5l\xe6\x15+\xc3R\x06\x93\x0eo\xb8\xe8\xb2\xef\x04\xeb\x8e3$\xaaL}\x1b\xd0z"\xd6)#H\xad\xf5sN\xe7\xb6)\x9d\xd1l{\xcc(\xc4\x0b\xf3\x8ad\x03\xe2#\x9c9\xe6\xea\xbe\x10\xd7\xe2}C\xd1\xebT]L\xfa\xd6\xb6\xb1\xbd\x8byA\xa6|]J\xd2n\xae\x8b\xe11\xaa!\xc4\xbb\xc72\xad#\xa9{\xa8D\xa0:v\xc6ec\n%\xf5\xfa:f\xcb\x10$\xdb8\xf0\xb8\xed\xf4\x8eZ\xed\t\x1c\x96(Iw|\xb0xfj\xd1\x91~?\x02%\xf7\xc3$\xc4\xd9~|g\xc3\xef\xa9\x16j\xb1w\x89\xa2\xb2b\x95\x98\x97\xe0\n\x8e\xe9\x8e\xee\xa5\x92\x93\xe2\x0b\x9b\xfa\xef\x02\xdc\x17H\xed\xaf\xd2\x85vuo_\xdfQ\xe0zR\xb5\x05r<\xae\xaa\x8fs@\x01v\x8b\xca\xd2\xf1\x08^\x9e\xba\xc6\xb5\x987\xab\xa0\xf3\xa0+~\x1e~\x00\xea\x1a\xda\xbdQ\x00\xa5\x161\xc9e\xf1{\xc3\x18\xb1\xc8\x8d\n\xcf\x94\xbb+I\xac\xc1\xffEzR\xb72\xc0\x99=\xcc2W\x06B\xd9F\xa8\x97\x8fb\xeb\x1f\xa7YdA8\x8e\xf1\xadW\x9c8U/\xe2\xe1\x98\xf8hYt\xea~\t\\m\x99\xbc{y\xbe=\xecpz\x8b\xa8\xb7\xb4\xa5,?\xcc$\xa35\x11\x8a5W\x06\xaf\xa1\x1e"j\xd8\x9a\xeb\xaf\x19\xc9\x85g\x1b[\xa6p:\xc7t\x99\xa4\xabQW\x0f\xb6\xa9.\n\xcf\xdc+a\xdf\xea\xb2\xe6\xd5\x00\xb5\xe9\x97\x0f\x08Z1\xdd|\x17\xf0\xed\\\xc0\t\x87\x0bN\xedq\xfb\x8fS#O\n[\xfc\x8dTAj\xbbT!\xb6ppxu\x7fr\xcc\n\x02`\x14c\xa6\xc6\xb7>E\xa6\x1c$\xca\xf6<\x82D\x87\x0by\xb9\xe6\x1b\xf5\xed7\xd7\x85\xda\xbd|\t\x08\xb5\xb53\x8b\x00\xf9\x8f\xbd\x17\xb4\x02_\xb9\'\x99\x90\x96H\x12\x81\t\xc3;\xf5\xd5\x81{\x0b\x14*(\xc8\x1d\x8cu\x9d\x8b\xce\xca\xe5\xb9\x11I3\xcd\t\x99\xbd\xd27\xaaz\xc9\x07\x11\xc5-o\x86\xc5\xd4\x81$\xfe\x18jr5E\xa5\x85\xb5tJN\x9d\x03\xcc\x7f\xcbv-\x99\x14\x98\x12\x1e{d\xbf.\x84\xb2\xeb\xc5\'%o\\C\xea\x95\xe4\xa6d\x96\xf5\xa9\x91\xb0\xc8\xfa\x07;I\x8e\xfdB\xe2w(\xa8\xc7\x9a|\xb0\x9a\xa7H=e\xd4\x03;\xb5[\xd6\xa8\x1c\xc7\x979I\xba\x8f5\x15\xc6\xb0\xb3\xfd\xedr\x153;\xb2\xffhY\xd2LBpN\x91\xd2\xfa\x10y\x1bQv^\x8f\nG\x86o\x1d\x82\xc6\xa3\'^\x8a.\xaf\xd81)\\\xbf\xe0\xba!\x19n\x94\xde`\xaf$\x17\xa4RF\xe7\xf1\xf3\x17N\xcf>X\x06;\x81\xa4\xbcX\x01\x12\x13\xa8\x9a\\\xd5icH\x90.d0X\x11`\x1f\xd3\xc6\xfd\x91\x06\xeb@ub\xc4\x85\xc62\nKu\xc2\x102P\xad\xc7p\xad\xe8\xc2\x97 \xf9\x07\xf0b\xc4\'\xf3\xda\x1d\x7f\xb7\xc9\xdfk\xfa\x8b\xf8E\xcc\x91C\x0c6\xf2\x94\x12\n\xbeA\xb3\xcb_\x15\xcarA\xcc\xf0\xce3_\x8cp\n\xcf\x02\xbe\x1c`\xc7\x96\xbb\xf9e\xb4\x91\xab?_\xd6\x90V\xcbO\xac\xed\xa0S\x99\x98\x0f]\x92,\x02\x91\x95\x90K6\xc1\xeb\xa9\xed\x15\x92Ck\xe8\x91\xc3\x02j\xa5\tKm0\x90,\x17\x8f\xeay?\xeb\x94\x160\xd4\xe1r\x9c9\xd6\xac\x7f:\xf2w\x151\xed\xa2\x87?\xb6\x8b\xafR\xcft\xdf\xd7MQ\xc6\xe4\xd4\xf7\x92\xc7\x83\xbfC<3\x1a\x03\xd7LR\xbf\x9f\x00\x0bB\xf9w\x9d\x8do\x88\xea;\x10?\x1a\xc2\x9eL\x0b\xe3^S\x035\xd1\x9cuF\'\xe4\x10\xb7;>\x07\xfe v\xbe\x01j\x86\x8a[2\xec\xaa\x02\xcf\xa3|`\x05\xac*\x97\xb4gD{U\xa1Wd`)\x9d\x94\x8a\x92\xc1s\xb6eNBr!\xeb\xb8\xce\xcb\xacw5\x10C\x98\xdf\x0c\\\xee\x001R\x15o\xfb\xb8\xbam\xc9\x19\x18|\x0fy\xb6\x8a\xee@\xa5\xc2\x8aE+})]\x01\xb6\xa9\xfbu\xbe9\x18e\xd7\x97\x94\xab\xb9\xe3{s\xfd\x9c\xae\x9f9\xf3<\xbd\xb2\xe0\xdf\\\x16\xd9\xbc\x10\xc3\x8cQ\xf4"\xfc&\xf1\xb0\x16\xf8"fue\xaa\xd0\xd4>\x18\xf7\xf19\xc4@\xa4\x87\x1d\xc9/7\x98\xc6\x1f\x959\xbe\r\x9e;b!c\x11\x9eK\x8a8\xbb5?\x91\xb7\xde\x0b\xc8\xc7\xe6d?\xa5\x12\x80i-\x06d\x06DE\x91\x1e\xf5\x83r\xc2\x11\x06. \xf2\xb7\xcbAa\x18\x989\xe7[\x03\xac<\xee\xd0\xday\xe8\xb1tnw\xea\xe8F\x97*\xcb\xb5\xb8\x8f\x8b\xb4\x9cv\xa5\xb2N\x1c`\x06\xdfWd\xb9\x1e\xa4+Q\x90SM\x87\x81!ym \xcb\x1e\xb0\x8f\xb9\xbd"\xc4Xz]\x08QIG?\x11j>{5}T\x10\xfc\x07\r\x19u\x98E4\xfd\xbb8m*\xf0g\xac\x0c\x9d\xc1\xca\xf3\xd7\x1d$\x10\x93\x93\x12\x88y\x056\x0c\xd8\xf6{T\xf5\xd4\n\xd7\xab\xe8_\x17v\x15\x10\xc4%\xb6\x9b\xba\xa6\xcf\x0e\x8a\xf2\xb4C>\x90y\x12\x84\x8eg\x15\xb2q\xd6\x97\xb3N\x89t\xd1U\x01\xe5J=\x11j\x0c{\xbcp\xe6\xe9\xbd\x0c\x06\xff\n\x84\x12\xdf\xe7xpo\x95\xe1\xd6E\x935\x93v\x91\x90\xf3\xb2\xa3\x85g\x98\x00(\xb1P\xe0\xd1\xa4v\x99\xad=\xa4\x0eRC\xd8\x8f+\xf5s\xbc\xb2l\xedv8\t{\xbfM\x96\xa9\xcf\xd4\xf0p\xa4\n\xd7\x9a\xe7\xc2\x92wW-M\xa4*\x9e\xdc\xed\xc7\x0c\xfd\xecG.\x14\x1dobDd/*\xfa\x14G`\xa6\xc3s4\xbe\xf5\xb5qmZ\xa5\xacw\x9b\xc5\x81Ek\xa68\xf2\xed\x06E\xb9\xee\xe0?\xa2\n\x12\x9c\xb5\xa0\\\x18\xaa|\xbd\xee\x81f\x8d\xad\xe3\xed\xb7\xc6Wo\x18\x96\xe1D\xa4hzU\xc38\xf9Si\xd4\x1b\xda\x90\x8c\xc2\xa0%\xc2\x14\xa9\xa8\xee!,\x90\x91\xab\xa4\xa0\x03)\xe9\xf7|\xe6\x0eB\x97\x13\x9de\xd8\xccL\x87&\xa7i\x1a^tyg\xb2\x16\x0e\x15\x07.\xec\xc0\xe4K\xa3\x14\xb4\xf0\xc4\xfdS`B\xefQ\nvkuF\x8a{\xf9k\x98a\xce\xe5)\xce\xbe\x91M6\xf9\x9e0@&*\xf1D\xc5uKF9_5\rwH`G\x1d8z\xb9\xd7)\xe3\x82Q\x10\xe3\xaf1\x90\xe9;\xb5\x08V\xb5\xb9{z{e\x1a\xce\xeb\xf2:\xfc\xb7\xc8Uf\x9c\xedQb@\xf5\xcekys\xf8+\x81\xd3\xb6g\x8b\x01"\xd6\x10}8f\xd29\xad;R\x8al\x11\xa0\t/\xd1>\xe9\xf8\xf7\x19iOJ\xd2\x95!\x06c\'\xbf\x96\x02\xf8\xd0\x89\r\x13\xa3\xb5\x96\\\x8cC\xfe\xa6\xb9(\xb5\x88A5r0\xed\xa2k\xba\xcbi\xdck\x80\xc3[\xf5\xbf\xa7\xf4\x9e\x03Z\xd7Ju\xdb\xb4`\t\xa8\xd7W\xfd\x880\xe7\xb2\x9d\xa6\x98\xc2)k\xc7\x1d9\xedi\x804\xa3\xde\xc8\xa5\xcb\xa4L{\x0f6i*\xe3\xbd\r\xed\x9c+b\xb5e)n\x80\xc8\x16\xbe8\x08\xb9T\xbbfz\xb8C%\x80\x96\xcf\x89\xff{\xc5\x9ax\xbc\xee\xe6\x19,\x19\x97\xd1\xa4o\ri\xc5\x18<\x98\xf9\xac\xe9\xef\xee\x8e&\x82\xb7\x8f\x98\x10@\xab\x06`\xda^\x98x*s\xf9\x88?On\xd5G.4\x7f\x04\xffg\xc8\xe4\xd1\x04\xc8[a\x99 \xf03_\xa9W\xc53\xf0C2}\x1e\x17\x9d\xab\x99K\x88\xd4\x18\xab|\xc0-q\x1a|[\xeb\xae\x95,\x14j3\x8a\xc3\x99G:\xd4\x9e\xce\xa4i\x16I\xc4YT\x88\xb7\x8c\xc7\x886Q\xb7\xe9o\x8a\x9d\xb5n\x99\xbd4o\x12\x86\xe4/c\x80<\x1a\xe49\x93C\xaf\xef\x9d\x92\xb3\x90\xe1\x82g3fA\xd6+E\xb5\xc7\xc4\xb7\xe2\xbf\x06\xc0\xd1W/\xf6\xb03\xe8E\x03') diff --git a/dist_obfuscated/build/lib/orisys/StructuredGrid.py b/dist_obfuscated/build/lib/orisys/StructuredGrid.py new file mode 100644 index 0000000..960a107 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/StructuredGrid.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.655504 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\x153\x00\x00\x12\t\x04\x00\x99\xb7\x91eK\xb4\x1f\xcf\xf3>\x8f\xd540\xafQ\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf2\xfe}F).\x1aU\xbd\x81\x18Hep\t\x8e/\xbd6\xa25\x86\x99\xca"\xe7\xd7\x01S\xecF-\x1a\xc2\x9f\xfc\xe2[t`\xbepk\x14KNkG\xe0\x0e\\\xbe>@\x14\xc5\xc2\xff?w\x00\x9c\xd03UG\x9d\xe0\x83\xdf\xbb\xefo\xc1\xa4t\xd3\xdf\xb9\x00)\xfa\x94\xd5\x8b\x11\xf5\xb61\xa7\x8dp\xb0\x96\x7fs\xdc\xac\t\x85\xb9\x11>\xa4\x86Q\xd7\x9a\x96\xd0\xf9\xf1}\xaf\x14\x0b\xe5P\xa2\xc8*\xf8\xa1q\xa7\xa9\'\x9c\x01\xad\xfbm\x11\xc6jc0\xe7\xcep\x0f\xcdRT2f\xa9\x91\xeb\x1f\xa7a5\xb5\xe2\xfe\xb0\x0f7\x8d\x15\xe4\xcb\xbc\xf5\xf7\x85\xa1\x1a!s\xe5\x1d\xafE\xef\'$0i\x15r\xf9\xea\xa6\xe1l\xf9\xd7Z\x11\xf2|\xad\x89\xadV\xc0\xad\x98\x88\xea\xfa4\xd1\x96\x07\xbfl\x80\x04\xbf?Q\\#\xae\x92\x94N\xd2\xf1 \xec(\x18\xf2B\xf3\xf3\xf7<\x01\x1f$\xdc\x88\xc0\xd8~\x874XITk=\x11"tVr\x9f9\x08C\xbb\t\xe7\xcd\x846\x8c>\xc4\xc26\xc2Z\xa5\xa8*\xd1\xda\xd0\xc6\x9fI\xb9q:H/T\x1b\xfcR"T\xb2\xb4\x17\xa8\xf9\x84#b\x82\x10\xc8R\xbc\xad\xeb\x04\x9a\x8e\x17\xd0\xaf\x1b\xf6\xf6\xf0\x13\xe5\xa1=\xe2s\xb4S\x1f\x06\xd5jz\xc6\x1b\xbb9\xfe\x05E+\xfc\xe3\xde\x11\x13^\x0c\xe0\x8f\xac\xcb\xd3E\xfb\xf5\x08\xba\xb6\xb3\xcaN\xae}\xa3\xe9t\xc9\xca\x93-\xb5*\x17\xcb~\x92\xc2\x14=\xf5\x05^\xe9\xf1\x11\x95\xe4\x1d5^\x99\xdc.\xd4\xa5(\x0e\x8b\xeb\xeb\xed=\xee\x8b0xF\x0e\xe1\xc8\x89k\x14\x99\xd6\xa9A\x8e\x10\xc7\xb0\x11\xba\xe7\xa3\x8a\xbc\xef\xb0\x84\xd1\xf2\x92\xe7\xd0P[\xf8\xa8\xffnT\x8b\xd6\xa30\xb2d\x80h\xb9\xb5\xf9\xc6\xbd\xdd\x15\xa8R"w\xb7\x7f&\x17\xc8[\x8e-^\xe70X\xf1}VI\x93Q\xa2Z\xa2\xea70\x16\x7f$\xd8nX\xb5J\xfc\\\x1a\xc40=\x98g\x06L\x9e\x90\xb6\x91\r\x11\xbcI[)Eu7\xd1\xd8+D\xc4\xcbP\x7f^TkI\xc4\xdb\x9f\xa6-=\xcb\x9b\xc0\x91k\x0e\x1c{\x9b\xa3\x81\x9a\t\x01\x06Q\xd2\x99\xe1\xd3\xf0%t$\xdd\xfa<\xab\xc1\x15\xa33\xe3\xfb\xd1\x8a\xc3~w\xca\x0bM\xccw4\xbc\x8a7\xa6A\xcd\xbc\xddN\x17Q\xcb\x95\x8e\xa5\x8c\x18v\x94dI\xaa\xa0\xe5\x03\xa7\x81\xe6\x86\xec;^K\x89\xe2}\xd2\x96\xa5\x8a\xbeAT0F\x8faFy>\x84Iy\xd0()\xf4\x89\xf8\x1c\xbd\x1e-\xc6\xa0c\x88h/\xbc\xf3> \xfd3\xbf\xa97\x9ai\xf6\xc6&\xba\xf6\x19(\xe2\xc0\xf3{\r/S\xda\x08\x85@\x8as\xa25\x9cq!\xfc\xda\xe5\n\x87\xfe6\x8d\xb1\xd16\x8a7\xe3\x0eR\xba-\xb9\xceh\xf3\xfc\x1fK\xa9\xe9\xc9\xb6t\xf5\xa9|\x92WTGG\xae\x05K/\x81\x8b\xb7y{W\x19!\xd0\xd9\x1e\xa5\xc0\xb9\xa4_\xaf/W\xd6U\xa6\xe5\xd7A\xe68y)\xe4\x9b\x81\x02\x93\xd7\x85\xca\\\xb2\xda\x90U\xa5x\x02\xf8\x91\x07\xf4o\xd3\xab\x84j\x9fF\x17\xa7n\x88\x87\xcf\xa7\xc1\xa8N\x0fV\xef\xe8\nc\xf4\t\xdat7\xcb\xea\xc9\xc7"\xb5\xbc\xf7T\x00Q\x00\x074\xdf\xcc\xa9\xda@\xce\x04\xfc2q\xa5%]=\xc0\t\xfe\xb3\x91\x81\x17\xc9D\x7f\x8er\xa1M \xf0\xfemB{\xad4\x90\x83W\xf9SQ+\xab\x9e\xa7y\xb0\rRZQ\xb1\xd0\x91\xd2\x8d.KZ\xc4Y\x93H2\x96\xb2U\xc3\x95\xacG\xeeE\xcf\xc0\x8es\xb70\x07\x03\xb4V\xc2\x8e\xc2\x1b}8L\xe6\xf8\xdd\x89\xd4\x8fmy\x90\xf8r\xec\xaeC%\xdc\x92\x1a\xce \xd6gR\xa6\\V\xb6>\xba$KCO;9\x16\xc2\xb3\x14\x80U\x19T\xed=J\xb8F\xce\xec\x85k<[\x0c`\xb1\x00^\xe2\x91\x02\x13G\xd1\x9aD7\xaf\xc2\x1b5[\xd9b\x1b\xad\xde\x81\x8a\xc4s\n\xec\x8f\t$-,\x11T\xddxuf\xd7\xc3\xe8\x8d\xd6\xb1\r\x03\xd2\tD\x97\xf9X\xa1]\x8e\x11\xa9\xb5v\xc0\x0eq\xec\xcb\x7f\xd2\xf2\xcb\xb4\x9a\xb0F\x12y1\x8dY\xc0\xef\x04-\xf4\xd8~\xcc\xa1\xc47\xa5ux\xd5CSHF\xba\xaa\xda\xa2\x8e\xa6\xd9\xcb6j_\xdb\x02\xb2&\xe8\xb4w\xce\x8e9R\xe0\r\t\x82\x17N\xd2\xda"]\x97\xe1T\xfb\xfflm;\x0f\x03^\x9e\x05\xcfE\xce^\xdb\xc9\xd8\xf6\x9c\x0b\xc86 -\xd3x\x922T\xd5@<\xd2\xb5\xb5\xa9\x9a\x91\xa6\xa6_\x83\xcc&0\xbdK;\xfd\xd3\x0e\x03Gh\x86\x11,X\xaa\xfc}u\x06,\xfd\xdf\xf7bBF\x18\xad\xca\xd7\x9bg\\#\xb1K%\xcb\xc2\x13#/\xd1\xd5\xccr~\x97\xc9O\rX6\x03\x8e\xacF\xb1\x0c8\xdf\xe1\x85\x9a\x18\xda^\x9anV\x94\xf6gLs\xdd|\x1cY\x9c\\\xaew\x80\xf0\xe0\xf1\xb5Q\xd8?Wy\x92\xea\xd3\x92\xc3\x0eg\xcf\xe8\x86\x87\x86o\x05\xa2\xf4zv\xcc\tgt]\xbf\x17L\xb62\xcd<\x8ce\x9c\xe3]z=\x16<\xc0\xe4\x84*\xfa\xb8#\x149\xf7\xcb\xb4\xf2\xb6I\x06\xbf\x8egJ\x18\x97\xe0$\xe5MKE\x0e\xf8\xefw5kk\xbb\xef2\xc0\x87Ntn\x0fu\xb1\xca\x12Q\x9a\xdc\xc6\x82\xf5\xf06#\x14\x02\x9f\xe8\xa7\xeb\x13\xc5\x95\xa9s \xdf\x07\x8b\x7f.\x14\xda\xc8\x1d5W,\xa1\xca\xeb5q\x0f\x8a0;}\x0b\x11\x0f\xf7\xcb\xff*\xa8H\xa0\xac\x13\x90\x01\x03\x98\x89\xb8\xf4\x8c\xf6r#\x91\xa7\x8e\xf5\x9b\xfc@2V\xa5\xc7\r\x15\xde \xc3n<\x81\xc2\xd9\x01\xbf\xe0Z\xdcF`\xe8^g\x8a*\x93\r\\\x00vv"\xc8\xdf\xf3\xb8\x93\xd5PYC\\W\xe0\xc2\xd7D\xb8\x03\x9c\xc76\x8a5\x9fG\xe0\xa8\xb7\xc4\xfb\x1dT\xc8\xdb\x12\xbd\xa6uy\xda\x9b\n\xb45x(?\n\xa9\xe2VJ/o\x90}\x06\xa9\xc4j\xbb\xb85\xfc\x99\xde\x98\xe4B\x9b{\x8a\x02\xfc\x05\'\xbb\xa6w\xcd\x1c\x06\xfa\xe7V\xa9F\xbc\x05\xaa\xf4\xc2\n@\xa1\xbcY\xd2)\x94\x01\xe85\xe3\xa5\xd4T\xa2\xbcz\xc5gYF%\xf0\xec\xd6"\xf8\x16\x1e\x91\xc8\xb1\xbe\x02\x96\xe7\xba\xb0\x82\xc5\xac\xfb\xc7\xf2a\xe87\t\xb5x\xab\x83\xeb\x13l\xe6\x85$Y\xbf\xf2<\xfd\xdb\x02vN\x1f$\xe5\xe0\x0b\x9cV5r\x9a\x94\xb8\xb9\x8aI\xb5\xd1\xb5g\\\xf1\xfe\xffKr\xd0\xe4\xefy\xc2\xc1>\x135R\xbeC\xf3\xba\x1e\r\x8a\xde\xc0\xe6\xa4\xcc\xdc\x01*\x90m\x04\xf8\x1d\xce\x19c\xe6\x1e\x1c)J9\xa4\xceDN_|\xb0"\xab\x88\x80\x8e\xf0M\xa4"\xb4\'C\x00\x99\x12\xd4|~\xfd\xc4\x9a\xd6\x83\xdc.\xc1\xf0p\xfc\x9eR\x05RFS\xfd\xbd\xc2\xcc\xdb,6x]\xaa!AC\xf1.\x18\xcb.\r\xd2\xf2\xaf\xa7\xc7\xbc\xb3\xcb)0\x9eX/o\x9a\x12j>\xea\xfa\xdb\x1eq\x1a\x97\x00j\'\x82\xffi\\\x16!\xec^#\x15\xb4I\xd4)\xb7\xec~oV\xbe\xc1\xb0\xd0\xbd\xbd\x9b\x19\x8da8[>\xd8g\xabMD+\x81\x94\xbb\xbd\x90\x16\x9e\xeb\xab\xd7\xd7\x84\x00\xb4\xb0f\xff\xcaf\x0e\x15\xde?\x158q|\xbc8\\\xbb\x8d\xfeHm3V\x9d\x15\x0f\x10\x9c\xb3\x8c\xd7Pl%\x99i\xd7-I\xc4\xa8\x8e?\x1c\xec-J\xab\x9c\x8b\xc1\xce \xe3\xce\xb7\xc8\xd6h\xf9\xd4Kc,\xbc\xd4w\xff\xe9\xc2\xdb>\x90\xfe\xc29f\xce\xe0\xcf\xbf\xcb\xc9 \xe0c\x14\xa9\xc1\xf9sR+\xb0\xd1\xd2\x87\t\x98v\x8el\xc3\xcc\xd0\xf3\x87\xfc]j\xa5i\x99\xf0\xfb\x0e\xcad~i\xa6\x85\x99\xa5btt\x8dQa7c\x1f9\x9d\x03\x1e\x85\xdeS\xf6aCB\xd0\xd2th\xc1"$\xe2\x96\x9el\xa8\x9e\xa4PuPc\x8e\x1b\xc1\x06\x83\xdf\x90\xcf\xdc\x14XSXW\xe1\xa3M;\xc5\xeb\x95\'<3\x88\x824~L\xe8\x96kz59\xe6\xf4{,"I6bc\x149\x19\xafq\xfd3\xdff\xa5\xc5\xedr\xd2\x10H<\x1d\x93C\xf7\xfb\xec(*\x92\r|"\xca\xa4o\x8d\xbb\x1c[\x9cA\t\x1c@\\;+pQ\x83\xadpk\xb7\x1b\xdb\x02\xfc\x82\xb4\xdak\xaf\x9c\'\xba\xda\xd5\xb8\xa0r=\x18\rr\x15\x8b\xaa3[t\x87UH:\x189\x9f\xe6\x02\xd5\xabC\xdd\xea\r7\x18OCB\xd7\x13;\xfc\xd6_?(|\x18RV!V\xe9@^q\x87\x86VSE\xee\x7f\x9e\xb3\xc7\x02\xd1<\xbc$\x12\\|\x16\xf1\xc9\xac\xad\xddj}\xc7\x02\x87Rgz\x96\n\xb8\xaa\xf6\x02\xaf"\x7f@\xcc\xf7\xe10g\x97d\x91\x85nF\xf8\x1b\xae%r\xf3\rjN\xe2\'\xcc\x0c\xce=\xe1\x8b\n\x1a\x8d\x18L\xe8\x81\xbb\xf2\x8c\x99\xb4*\xae\x9f\x855\x0e\xf4\xc0\x8eW!W\xab~m\xf2\x99\xa1\xe9-\xb6\x8f\x1e\xdb\x13I^\xc5>S\x19C\x7f:\xb2Ri6b\xd9\x8a\x88cm\x8b@g}\xee\xf5a\x8b\x87\xd0=g\x08\xc3X\xd0\xf1\x00\x83\r\xa4(\xf1\xb3\x0b\xbfL\x80\x87\xbb0kZj\x92he\xac\xf9\x08\xf8\x7f+\xad\xf6\xdc\xd1\xe1C z\xd4\x1a_m\xca\xdb\xf0d(%\x10\xef\x87E\xa7\x87\xaa\xe8\xe4\x12?\xbb\xe2\xbf\x19\xa1\xf7\xeb\xc0~\xcbK2\xc8\xf6.\x9f\xfa\xfc\xec\xc9\xf8\xd7\xdb\x0f\xb9a\x9a\xb1\xc9R\xb9\x17F\xdbG\xff\xe1\xbc\xd6\xdc1\xf76(\xd3\xca\xe7W\xe2\xf4\xb3l\xe4\xb7\xb3\x94\x80\xd3\xe58SE1\xac\x80\x95\x8c\x10\x0e{\x1c\xa3\xe4oG\xf1F_?$\xffAP%\xb2\xd5v68\xffdr\xfa\x95dj\xc5^"WC\x9d\xe9\x03\x03+\x13\xf1P_Z\x97\xecs\x0f\xe9OC\xdb\x8d\x92S\xd9\xaazI\'!\xd9_\xcf\x90\xdb \xe3.Li\x81\x9a\xaa`\xf2\x9c\xf7\xd7o\x080u\x9a\xc7i\xbc \xdaqHP\xafD\xe9\x81V\x9es\xc7\xcc\x98I\xb3\x1au\'\xfc\x18P\x8eF\xb4n\xb5\xf6\xe4\x81\xe1Y\xa8db\x7fI$\xfb\xfd\x1e\xc07\xde&\x19\x91\xdf-Cny\x0e<\xd393\xd1\x17\xc8\xc5\x94\xa6\xa8\xf3J\x95\x07%|\xc5\xe60\x98\xcb\xa8\xc6xW*Ih\xbfP\xc2\x089\x9f\x80\xa3\xc1\x1a\xb5N\xcfE\xbd\x81\x9e\xfd*\xefw;\x8f\xb6)\xb64G\x14|\xb5\x11\xd1#;\x11\xcb\x995\xed\xdb\xb5\xca]\xa5\x9a/f\xcb"\x910&\'\x0e\xb7\xc4\x9cW\xca\xb6\x04<\xbf\x8b\xeb\x1d\xe0\xdc\xa2\xf0\xe3[\xf2H\xb0\xdbd\xf2%\xfe\xe2\xe2w\x98w\xca\x08\x86}\xf0\x98\xe0\xca\x8b\x81\xdc\x9f\xaf\xebV\x1a\xdd\x8c\x84\x8a-\x97Xn\xff\xcfd\x85\xa8\xd0\xea\xcc\xd1\x16\x0f\xc0\xa6\xd6\xdfnIz\xb5\xa6F\x8eK\xd3\xa9R\xf3?\x1b\t\xc10]\x14\x91g\x06\x03KgC\x10\\\xed\xe0S\x1e\xe5\x81[\xa9_f\x08r\xb2\xce\xd6S\x11\xbb`\xc4\x1c(|\xe7\xa8\x07\x9d\x7f}\xf2\xf7K\xa7\xdc\x19\x80\x84\xd3\x1f\x7f\'\xb6\x1f\xd2\xc0\x93\xf19\x94_\x96\xady&J\x85\x8d\xf0g\xd7?\xe5\xd6\xc3R\x915\x85W\xa2\x801\xa8|\x95\xdc\xec`\'"N0I\xedKV\xcb+\x14\x7f\xbb\xba\xb6z\x84\xd1a\xe5\x93\x0f}\xdd7\xb5\xe9\xee+\xa1o\x82\xd5%*\xffR\x85\xbe\x1ci\x8fZ\x95\xb1\xfc\xf6\x08\xd2\xce\xfad\x88\xf1\x92#\x94\xdeM\xcb\x93e\x15\x806\x08\rbO\x95\x05U\xff\xdc\x1d:\x08x\x8cD\xf2%\xc1\x04\x8c\xa3\x0e\x82\xe4\xff?~@M\x15\xfb\xdc\xd4\x17`VOwt\x18?\xd8`\x0eOzW\xe75\xa80\xc2\xdb\xd0I\xb0\xa9\x08\x9ey\xb8{\xa8t\x8d\x8e"(;\xca\xca&\x13\xf9j\x02w\x12\x9fA8/\xdf\x9d\x83+\x15A\xc6\xf6\x9f\x9b[\xbf\xac2\x1a-\x8b+\xad\xae\x9e\x99\x13\xb2\xaa\xf48\x81\xed\x85\xb5\x98H\x7f\xafr\xe4\x1e\x97\xc9\n&\x07\xae\xf0R!\xa0\x92\x9d\xb5\x7f\xc7\x1b\xa4}\x13u\x0bx\x82\n\x81\x98\xday\xbaFUf\x9b\xe8\xb9\xd6\xf7s~#\xa3]Jo\xb1L[T\xcb\r\xa8v\xd3$\x04j\xda(\x86\xdb\xe9e\x1e\x99\xb6\xcdjB\t\xfb\x8c\xb39F\xae\x0f\xfd\xc6\x1d4\xe1X!1$fY\xf6\xfd\x12X\xee\xdb\xd6\x19(\xaa\x03?6=D\x89\x89.\xfaY"\xab!\\\xcd9\x03\x9d\xa2\x94g\xac\t\xb9\x0cT\xd3\xf4\xe4\x13\xbc\'\xdd\xe2\x86\r\x9f\x85\xf9_\xe0Ml\xe7\x04V\xafx(\x84\x03\xe9#\x83T}\xe4w2\xa8WA\xf5\x84>\x91\xd3XZ\r|`+\xe8\xae\xa9\xa9\t\x87\xc1\x9c\xf05{\x011\xa6\xeba\xf0\x8d\x1b\r,8\x10\xc39\x0cr-E\x83\xba\xe9#\x7f\xc8\x13gm$Xh\xa1_$\xacX\xa4\xf8y\xd9z+\xf2\x87uVR\x87/\xa5tA=E\xe81\xf0u\xcfM\x8e\xf1\xa1\x14\xfc:\xcc\xe4\xe5\xaem\xfc\xf4]m\x89\x1c\xed\xacn\x9e\x98\x0c\x8c\xee\x13\x01\xb0s\xe2\x05:\x99\xc1i\x065\xee\x97\xff\xc16x?`5p\x95\xbc\x8e]\xa8\x111\xd7\x85@W\xe7\x97\x9dd\xe8\xdb\xf7\x98,\xd1%\x9f:y\xa2\xa3\xe6\xb0\x16\xec\xc4\xa86\xc5\x87\x80\xcfj\xb3$aX\xbb`\x97+I(\x0f"\x15\xd2\xe9\xd8Jx\xca\x86\x85\xdd\xbf\xf9\x0f\x1bCB\xef\x0f2\xffe\x88\xff/\x10\xf5\x11\xee\xe3N\x02\xb5\xbfo\x9c\x11c\x9b\x9d\x1c\xe7\xeb\xb3)\xf1\x90I\x1d"+J\x06\x109j]\xfa \xd3\xb9\x94*\xbc\x10\x0ef\x9b\x93\xf0b\xcaG\x94\n\xed<\xc3\x85\xbba\xb0Q\xb6\xcads\xf7\xe4\x9cQ0\xfb\x80\'\x8a\xf0\x94"O\x80S\xe1\x11\xca\xd8\xa0\x08\x10\x0et\xa4kK]\xf1\xee\xca6X-\x82\xaaGJm\x91\x81\xfc\xac\xe8\xbf\n\n\x9b\xa6U\xa5\xd8\xc7p\xb0\xebE\xb8\xa8\xd3\x9b\xb8\xeaJ\xb8d\t|$\x0e\xcf\x17\xabhW/Cs/\xbe\x8bw\xdfG7!\xd0\x12\x0b\xb4\xb2\x04\xab\xcc\xdf\x8e:\xc5sj\xb0\x9d\x95ov\x1b\xbc\xac\xf2Dj\xd8p1\'\x00\x9c\x99\x88\xef\x9ck\xa4\xc8\xd6\xcck\x8b\xb2\x10\x84\x98\t,n\xb1\xee\x7f\xb8(\x9cve\xa4\x9a\xd1\x89\\\xc5.\xcc\xf0B%\xfdbb\xd9\xf8\xb1\xdd\xec\xb8;\x9b\x18\xe6\xcb\xdf\x18\x98\x84ju\x844\xd80\x18\xc0\x14\x03\xe1\'\x1f{\x8c\xcb\xddMgr\xcd\x0c\x91h\xe4\xab\xf2o\x1a\xab\xed&\xd79\x174\xa0DNZ\xa4\xf6\xf8\xfe-bJH\x1d\xabB\xb9v:\xbbQ\xea\x99"\xc1\x1a\x80e\xed\x91Fl\x82\xd7^\x1e>\xbfb\xa0L\xfa\xadvZ\x92\x04B}f\xd7\xef\xf7\xf7\x00l\xb5\xff\xa4)\x9c"\x04\x80\xb7\xe8#q\xfc\x9dZ\x07\x85\x00\xd5\xb8\xfe\xf5\xdd\x8d;\xb3\xa0I\x1d\x19\x03`LR\x8d\x8b0Y\x89\xf5~\xa1\xc5I)\x03xfvGZ@i\\\xff|\xf4~\x07\x1dx\xe9O%\xb1?\x8d\xfe:L\x0bjDY\xf8nO\xdc\xb7\x06\x03\x06\t\xe1A[,\x9a!\xe4\x179\xbd\x9a[\x9dH\x85\xff{\xcaD\x00\xb2\xce\xee\x19\x1a\xe0\xc8\x08\xa3G8\xe4\x1alf\xcc#\x18m\xedb%\xd7\xe2\x88\x83\xfdH)\x9fh\xc2Z\xa2\xcf\x08\x15\x80\xf4\x0f&kY\x16k\xa6\xf8O\xc9A\xc6\xb6z\xfa\x1a\xbd\xe7fNFG@\xb1w\xe2\xcbQ2\xfb\xe7\x02e*5\x0e\xf0\x12B\xa1l\xc9\xe0\x9d\x90e\xbe\xd6\xd6d)Z\x88\x0f\xca\xfdc)\xcc\x94\xccDe\x95\xdcK9\xb8a\xc9^IF\x00\xab\xaa:\x03K\xd6M#M\xe5\xb9\xadL;\xb4\xb9\x99\xc0^\x02\xe9\xf8\x87\xdd\x9ee{\xb8\xd8\xc5"8\xc6\x85G\x9es1+\x8c\x88\xa3jnr\x07\t=\x99\xa6\xe0:\x0bOx\xe4gx\xd2\xa2\x81\x1f\x06\x1a\xc1\xf7\xa8\xe8\x19\x86iM\xa51\xe0\x9e\xa6u\xef\xab\xef\xeb\xae\xb3~\xaa\n\xe1\xa4\xef\xb1\xa1\xc0%\xc0\x97\x86u\xe4=\xab\x9aX\xf6\xe0\xa6@y\x9c\x0c\t\xbc&O\x85\xf1\xe0\xf7K\xe4\x9a\xca\xff\x0c)\xb53\xd1\x0b\xaaA\x13\xf2\xff\xd2\xb7Z\xf9_<\x9f\x9d8\x0c}\xb6\x88\xa4\xa2A8\rv\xf9\xb6\xfe\xeb\xa5F\xccN;\x1cB0p\xc4\xce\x0b\x00\xe3\xc4\x1f\xdd?\xf6\xc0\xba\x82\x84\x1f\x06\xc6\xec\x19p\xa6I\x16\x84\xccV\x98\xc0mfv\x80\xb6\xea\xbfc\xda\rz\x17\x03\x11\xa1\xa6\x11\xb7\xdf\xef\x08\x11\xdb.>\xb7<\xd9\xb1\xbf\xab\x08)eX\xa7\\\xd3\xf2\x93\x96||\x89\xf5\xcfK\x1e\x13\x97z\xbe?\xf1\xe2\x13\xbcO\x1f\xa0\xcb\xa8z\xc3\xd2\x92*\xa2\x8eL\xb3M^\xfa\x85\x85\x87WT\xe1!\xb4\\\x18\xb2{\xf0\x18cr\xb1d+2\\K\x19\xff\r`\xb4^\'\xc4\xea\x9f\xd9\xd1\x07\xc4\xe4V\x89\xa9U\xb4\x94\x1a\xdf\xaed\x9d\xaf\xc0\x94\xa1D\xc1\x9f\x82\x15\x91r)\xaa)h\x0c\xe2\xa3\xcd\x9e\xc9\xf0\x01\n\x01\xb0Ja\xeb0w\xcd\x16\xc1v\xe2\xe7\x9d\xac5R",\xa3\x14^\x96\x0c\x92\xa41\xfe\xa5\x1d\xdb\x10\xea\xc5\x8c\x06 \x8f\x7fr\x91\xa4-\xf3\xad8\x84;\xfe\x88\x13\x9a\xcb\x8fl\xc2 :\x85\xbc\x82\x99\xf6\xc8,C\xed\xbfR\x15L;\xfa4\x02y\x91\xb0\xfb\xf4,\x1f\x9b\xd5\xfbD\xb0\xd02\xad\x05n7\xbby\x89$\x9e\xe4\x06\x82@^\x8b\xb2\xb7[y\xe07%\xa8\x91\xefz\x04\xcd\xad\x8a?W\xca\n\xf9*q\xbe\xa0)\xaa\x91\xcc%\x0f\x839\xcb\xa6\x85}\x10\xfe\xcb\xeb\x1d1\xf2\xea\xe5\x8dh|\xd8\x83\xa1+\xa3\x14\x98\xa6\xb9N(\xa8\x9f\xbc\xb6>d\xbbC4$\xa4F\xf7}\xc67\xac\x81\x18\x13\xd3\xfd*\xe6\xb5\xb2#_aBJ]\x7fcbB\xec6\xf9{\xbf\xa21#M\xfd\r&\xcd\xff#|\xa1~#\x81\xa4\xa0K)\x15\xd4\x9e\xa4\xca292"\x95\x00\xd1\x00Y\xc4\xb5\x92\x86\x82\xe9\x0fu0\x02)\xa22\xf8D>h@\x0c\x15\xb6\xe7V\xf4IY\xae\x0e1\xdf\x0ey\xf1\x13\x16Iof\nc\x9c4\x11{\xe6Q\xab\x15\xda~u\xa81O\xbf0+\x1c\xeb\xbe\x9b\x1b\xea\x04\x8a\x92\x1dS"b]\x836_\x10\xcbCZ\x81\xbb\xac\x8e\xda\x1d\xe8\xa7 UJ\x9c\x05\xfd\'T\x9b\xd5\xf3\xf8c\x1c\x1a\xd3\xb9\xcd\xffej\x7f\xb1[\x88\xfb\x82>\x8edoe\xf35op\x83\xa6/o\xce\xa4\x06p|F\x92_,\xe8\xa2\xd0\xeb\xb2\xa1v\x87\x01\xb6\x8f\xd3\x9f3\xb3\xe4\x17q\x89\xb9\xd11\x9aGk\xb3\x03\xa0\x8cL\xbe\xc9\xd3\xe9H\x13OI\x1e\xa9\xb4\'\x1eE\xfc\x99\x18\xea\x95\xbc9\xf8\x04\xcf\xf9D;m\x93uV\xbf\xecU,<\r.1S\xc5K\xad\x9e\xf9\x1f\x10\x08\xa9\xa9\x94$,R\x0c\xb2jb.\x96\xd8\xf3\xb2\xcb\xd5\xa8xRs\xbe\xe8\x10%\xb7J\xac\x90?\xc8\xd8Gz\xb2\xdc\x83\xbd\x1d)\x8f\xd4\xbb \xc6U\xe7}\xc8\x08]\x1d\x16&\xf3gV+B6\x83\x97;\x86\xac\xf2\xe3\xcb\x061\xb1\x1a>\xe0\xccZ\rv\xc1\x82\xa7\x1d\x8b/^O\xc8]Ytl[\x1d\xe9\xe3\xc7\xfb\x82"MQ\xe0\xd6]^\xbb\x97#\x83\xfa\x1a\x1fE\xb3\xa2\x1aN\x1c\xa6\xe4\xb4\x8f\x89]\x8d\xf4?\xbb\xe6\xafx\x0e\xff7\xab\xc0\xae\xd16.\xf5\x9b_\\\x94\x00\xb4\xe7\xf6\xc4\x13b\x15\x8fd<\x04\x1a\xcf\xc2\xe3\x85\x92y\xfa\xb1\x8fA\xd5\xc0BN\xec\xe5\x8b\xc1b\xf8l\xfb\xb9\x93\xf2\xb8a\t\x8b\x95\x9c\xbb\xf1A\x84\xddT\xa7\r\xcb\xb0\xbb\xb8\r"M\xb8e\x90\x9e\x1d\xa2\xc6\x1e\xd5\xc0\xda\rN\x84\xb4\xb2\xad\x8c\xbf\xaaP\xd7Q\xea$p4Z_\xb5\xc2r\xbbs\\O\xe1\xed\r\xc8\xb3\xae\xa8\x89a\xf5\x8b!aO[\xce\xebQ\x06\xa0\xdb\xa7\xdb\x08\xed\xea\x92J\xfe-\xe3\x04\x05\xba\x94\xea`\xb3(F\x07\xc1^!\xe7Z!\xc3\x0b\x88\xa2\xd5.\xe8\xfe\xf31JY4\xfc\x91\xbe%-\x9b\xe2\xf6\xa3B\x82\xde\x8c\x9b\x1d\xcd\x16#\xe1\x1f#\xad}\x16vyuR\xb3k\xe6\xcbE\x7f\x1e\xc3i\xd1~\xc8\xd4\x14U\xc4\xd9:/Z\x19y\xc3\xb9G\x9b\x18\xfbN\xfe\xebq\xf8\xef\x83\xfd\x1c\x98n\xdc\xda\xe4KV\xea\xd1\xd8\xfe{]5\xa3Y\\\x89\x8e\xfa\xe7"z\xec}&\xe4\x8c;\xae\x80C\x9c\x00\x88/\n\xb1\x11\xf4\xf7 jV\xeaNz"\xb1\xfa\x86\xda\xaa*\x0c\xb4\x81\tR\xe9\xc3\xdb\x9b>\x03;\x9e\x8c\xad\xbcz\x8bJ\x14\xc8\xb5\x8b\xff\x13\xd4\xf1\xe2\xc9k?\x15\x0b\xad\xb5\xe8\xd4\xb5\xf1\xd7\xb1\x80\x16"\x04\x9e\xdahR\n\xae-\x00\xb4\x83\x16!\xf6\xb5\xe4\xd0m\xa1\xed?\xe2\x91\x90\xc9\xb0\xe8\xe9\xfe\xe8\x19\xd8\xd3\xa4\xaf\xba\x9a\xdf\xa8\xf2H\x17%\x8b\xff\xa0\x081)\xc4\x80\xe6 \xb4\xb1\x93\x9b\x0b\xd5\xcc\xe4\xa2Y\xffDu\xc1"w\x9bm\xd6\xcf\xb8\xe2Z\xc2&a\xa8\x97\xd0\xa7\xba\x93\x14$!\xc8y\xbd"yi?\x17\xc4\xbf\tO\x15\xe9\x98&C0\x93\x19\xd5?\xb7\x8eh\xfd\xf5\xa8A\xfc\x04\x13Y:\xbet\xa2\xb0\xd2^\xb1\x93\xf5\x881\xfdiR\xde\xeeyhy4>\xfa\xba/\xb7,rn\xdel\xd4VD\xfe\xb4\x9e=m\xe7\x9b\xb0J,\xf8qm\xe2\xfd6\xa7.\x8d\t\x96\xf5\x8d\xf5{9`o\xb9\x15R\xc6\x1b\x07\x18}\xcf@m\x11\xc8\x84\xef\xa5\xc7\x85\x9d\xcb \x9fd\xfdD\x1b-\x9d\x00\x9c\xf8\x93i\ny\x97\xb5j\x8e\x8fYU<\xc3\x86s7Y\x12\xac\x1ff\n\x0fe~@\xd1\x01\xeb2\xca\xb7\x87\xb3\xc5n]\xc1\x9f\x81zH\\\x12:\xc5O\xe1\x16\xb3\xa1{\x02\xec}\x00\xb2\t\xdb\x9d\x15\x06\x19\x16\x8bK\xb3\xf0#\x12\xeaq\x8b+\x04b\t\xafc?\x11w\x8e\xea\xb4R\xa3\xbd\x13\x8a\xba\xa2W\n\xa8\x96\x97_G\x04\xde\x004\xb6\x85P\xa7Jx\xf7\xb2 \xfd4\xe8\x93k\xb4\xf2^*\xa2E\xbb\x84E\xbd\xf7.L\xc4\x9c\x9b\xc1w\xef\x86\xef\xc6\xa6L\xcb\xbcJ\x86\xc5hBg\xd6\xc1\xca\xd4\xf2t\x1b\xed\x105m\xee\xa2\x0f\xf2aJ\xb2\x8d\xe2\xde\xee\x81\xa9h\xc56_\xf2\'\x81=\xe7!\x92\'\xad\x9c\xc3\xac\x1c)J\xaf\xbfc\x8a\x8d8\x8e\xf6\xafrd8(\xa1\xcey\xa5\x12\x88\xc7\xd1y\x9ax\xafo%\xcb\xfc\xff\xf5\xba\xec\xb2\xe2\n\xbf\x85ZnWAL\x8d\xd7:\x08\x12o,\xacHWz\x9ed_\x8c2:\x9dC\x82\xef\xe7\xf1g!L\x87z\x0fN\x97\x18H\x96\xb3\xbf\xef\xe7\x0c\xae[=\x0f\xa8W;A\xc9AGI\x00\x86\x84\xc3\xaf\xd51Ch\x97\x87\xbb\n\xec\xed\xfb\xbd^\xe6\x9b\xf4M\x1f\x1b6\x15\x9e^y\x0e\xb1\xe1~Z\xb5\x12\x8e%LH97\x8a\x9b\xcf?\xe3U\xc9{\x07\x93C"\xca\xad%\xab\xb6\xb7\x19J;q\xc2\xd4^\x0e\x92Ym|\xbe\xee\\\x12\xe3\xbf\xf2\x15L\xc8\xd4\xc7\xc6\xe3\xd0m\xfa\x95\x88\xd9}\rf\xc2\xd9P\xfcr\x15\x01\xc0\xfe\xe6\xb0\xdb8x\xad\xcdUr\x13\xd7lT\x81/\xf3\x0b\x80\xccnQ\x9bv\xd6\xa1Gq\xbb\xca\xf9+\x96\x94z\x92z\xbc-\x92\xeb\xf3\x8c\xa8\xc4\x8au,\xd8\xe4\x1c\xc3V*u\xef/\xcd]\x0f\xd9\x08\x85\xa0\x8d\x91e\xab:r\xd6\x0e\x86\xe2o\xac\xe9;\x1b\x00Ne%\xe4VA\xa4\x9c\xed\xa8\x873H\x914M\x88\x13\x01\xdd9\xc6\t\x81o\xbb&\x1b2\xa21\x01sA\xd2\xda\x7f\xbc\xdc\xc3\x18\xef\xc7O\x1bO\xd7G\x12\xcd\\\xc1\xc2\x8a\x03B\x19%\xd6\xdb\xc8\x93\x9c\xeb\xb6\xba\x88r\x1dR\xec\xcc\x80\xa6=lAD\xe3pmC\x0eIF\xe7\xbe\t\xde\xef\xf6\x14\x88\x8d\xaa\xa5\xed \x13\x7f\x18\xb7\x8a\x93\xdd5\xa60, \xcf\x11v.Q\x1a\xe5=|\xe03fk\xe6\x89\xe1\xb1\x8d\xc5\x92\xbaQ\x1c\x1aZ\x1bo\xc1\xad\xb0\xa0fu\xe2@\xf9 \xfcB\x91F\xe8@\xf5YmkU\xc5~pY!\xcc\x074-\xbbA ,\xbd\xf3\x16N\xc2Mj\xe6?\xf1\x9c\t\x15\x08\xa8;\xf2\xca\xb6"\x9e\xe8\xee\xc3\x19\x12\xec\t\xff\xaa\x92T/\xb0v\xd2\xbc\xcd;\xce\xcc\x0c\x11\xc0v|\x93c\x86\x96\x10G\x7ff+\xb1\xc44\xe1b\x9exR-\x93m\x7fJM\x1e\xf3\xa9OX0M\xaa\xed\x9f\x07\xf9lA\x07\xdf\'G\x9e\xf3L\xc0<\xe9\x83\x85\x05\xb0\xbd\xedq"\xc8\xe8\x90\xe9\xd7m\x89\x80(\x058n$\xfc\xae\x84\xfd\xb0\x90\xabh\xad=\x94\'\x90\xf3\xd4\x94\xbd\x030uT\xba\xd9a\xb9\xe0b\x90\x1aW\xe6\x17\x1db\xa917\x84\x91\x89df\xc8\xd2\x96\x1f\xbad\xd3\x18Do^\xa5\xfe\x97\xf3\rB\x16\xb5\xf9\xae\x1a"\xac\xdf\xbe+L\xd6\xd7\x92\x92\x10\xd3F\x12U\xc9F))\x10\x95\x87U\x87\x00k\'3\x91\\\x84\x7f\x82ZE\x8b\xc8 @\xf3\x84\xb1p\x18\xc5\xdb\x99\x1b\x91\x94.\xe1\xeca\xa3#u\'\x8e\xc2\x98\x04\x7f\xfd\x11g\xba\x99\xca\xa9\xf78\xf0\x17\xb4\x98Pe\xad\xd1\x85^\x92\x07m\x1a>s]\x03\xc2Xb.\xf6\xe7\xb5\xd1\x04\xda\x12\xfap\x8d\xf5\x15\xab*\xfc[i\xa7gu\x18\xa8\xed\xe7\xf8]\xe1}\x01\xe0S5\xb7M\x9f\xffe\x9f\xb2\xcc\xdb\x0e\x90i\x0b\xe3t\xbc\xe9\xfa\xb4\x14.^+\xfbu8 @\xd9\x1ed\xa8\x92\x94\xc9\x04\xa2\x1d\r\x18\xa4\\}\xd3`\x05\xedw^\xc2\r\xae1\xf8\x9c\xfe\xb5\xee\x9a\xfd\x11[[\xa1\x8d&\xee\x10 /;\xb2\x08\x9a\x9c\xef\x14S\xf8\xca\xc8\xbb\x10\x15\n\x96\xb0\xe5\x94#\x1c\x0bU\xf4\xdd5\xc6(\xe2\xe5A\xbb\xb0\x9f\xdd\x14\x81\x7f\xb1\xee\x84h\xdfK\xf6\t\x92\xc6\xdf\x13<\x9f\'&\x9e\x1cE\xfe\xb50\x8d^)\x85\x95\xea\xa5\x97\xae\xef\xe1\xefh\xac:\x0b\x8c\xea\xac_\'m\xf9f\xf1\x13\xa1j\xf9!J%6\x83\x7f\x8a\x0f\xf8Q\xc9\xd7\xb8\x9d\xe1t\x01\xeeL\x82\xc1m\xd5\xddbV\xd0\x1b\xa18]>\xec\xaa\x83{u`/)\x06{\x8a0\xf3\x95\x06\xa4\x8a\x15/\x83\xebOqS\x92\x80\xc9\x14K\xd9\xf3\xda\xb7r\xf9%\x1c#\x80Q\xbf \x15o\xdb\xbd\xab\x96\xfdO\xa2\x8e\xd8?\xacQO8\x14\xd5?{F!4v<3m\x1e[\xac\xf6Z p\x81c\x94wa\xc2}\x05\xe7\'g\xc5R?\xf2\xc0\xa8E\nN\xa9\xac3\xe7$O\xebF\r\x05\xf6Y\xee\x9d\xf9\x85\xc3e\x89\xd66O \xc5\x80%\xeaK\xb7\xc3E\x0fm\x92\xd3\xae$\x12B\xc9\xeb;\x9f\xe2y\xe3.\xfd&\x9a\xb1\x14$\xb3\xd3\x879\xd5o\xd2\xefc\xe9\xfb;\xbc`\x97}UR|m\x01\x8d\xe7\x1akH3\x0eu:K7I\x89\xf6\xdb\x08\xaa\xc3\xd9\xc4\\]LDU%y\x91\x05S,\x84\xdb\x81\xa5\xe5\x96^)YU\xd39\x95\xf8\x06\xc5yi\xe9+2\xbd\x9d\xb4\xe4\xbd\xc6$\xc9`)_\xbaW`\xb4\xf3\xac\xb7<\xa8W\xd1\xc4\xe5\xfa\x1e\x80\xeaj]\xdd\xba]q\xc0\xc1\xf3\xefMt\xf8\x07\xd6gx\xaa0DX\x89A\xf0@\\\xa3\x84\x81>5\xb4}\x84[\x9c9<\xfat\x92Y\xa0\x9a\xe6S^ ^\r\xe6!Q\x1e\x06\x95q\x0bS{\xe9\xad\x14?\x1c\x1b\x04\x8cv\x05.\x96&*^3\xa4\x9d\xcf\x81\xde[\xa2\xcd\x05\xc5\xde\xe9r\x18\x8a\x7f\xe3S\rMBw<\xf7\xb3\xd9:\xca\xc5\x15\x1d\x0f\xb2K\xf1\xb8\x80d\x89\xfc\xdd\xe9;w\xed\xcf\xa2\xa3\xa6\xd9W[\xf0\xf6\x12\xd0\x0f\xcc\x1f\x0c\xa1\xf59\xb5k0:F\x96\x97\xec\x8e\x90\xfb\x80\xbb\xcb+\xcf2\xdbl\xd9n\xec\x05\x0c\x94\xa3\x82\xbe\xf1d\x0e\xbb\xc1\n\xd86^\xae\xe0fpuu\x13\x1f\r[\x10\xc6 \x11\xdb\xf4\xfe\xa2q\xe9!;\xd0N\xe3\x1f\xac\xfb\xcd\xdd%\xfa\xaf\x0b\xf7\x92T\xe0\xa5Y|\x14k\xd4\xef`k\xe4\xcd\xf9\xbd\x96l\xbf\x13\xe5\xb8L\xa7H\x05\xd4V\x13\x0c\xf4\x90\xa2\xac\x1dt\xe5\xdd3mhk\x80/S\x0e\xceS+\x8f\x02\xefda\x12}-)f\xc2Z\xe8\xea\xe7;\xbf\xfa\xcf;\x978n\xd1\xf8\xb9\xa0\xa8k\xa1nw\xee\x92*-\xa9\xe2$\x00\xad\xe9\x0c\xd5i\xd5\xe3\xa6\x12\xfeK\xeb\xd5\xf6\xf0R\x1b\xbap\x81\xca\xda\x15T\x8fs\xd6\xa9$\xf3\x9b\x00\xf7\x8e"\x94D\xd9=\xfb2\xec\x0c\x7fI\x8aFv\x91\t\xb0\x91\x93\x98v\x1b\x188&\x7f\x82\xa3r\xa7\x9a\xe0\n$w\xf2\xd8\x91>\xb8\x9c\xd0#\\@\x1c\xd8\xdc\xf1\xa9\xf8\xf5\xfa\xd1\xa6\xadK0d(\x96\x00M2E\x92=\xaa\x15~I\x83={w\x06\x8a\xfd/P\xf1\x9b\xbd\xcf&2h[\r\x8d\xf8"\x03d\x8f\xfa\xbb&CS\xbe\x83\x82\x81_\xd5\xb9\xba\xde\xe3\x85S\x16f\xb0\x89\x925\x11\x19\xcf\xa1b\x955\xaf\xf4v:Nv\x0c\xc7y\xd7\xa4\x8bp\xcc\r\xd4\xc3+\x8dk\xc7w\x0c\xc0\xcbGs\xcf&\xb3\xae\xe51\x02a\x1f3\xf8j\xe9\xc6\x9e\xae\xab\x1c\xb3\xa4U\xdd\xde0z\xcb\x9d \xa3 f\x1d\x82O\xe2U\x830\xef%\xb5S\x90wf\x18\xd7\xca*V\x84\xbd\xd6\xad\xdd\x9a\xb7\xab\xa7\xc8V6y\x17:\x17VQ\xbe\xcd\xf6P\x9cjB!V\x1e\xd8m\xc1\x07\xabw\xb4{nR\x13\x90z\xdf#\xce\xe2\xfb\x99\x14N\xec\xb5&\x0e\xb5KBQ\xca\xaa\x8a89,\xe1.)\x1f\x02\x08\xddWb\x10\xfc\x80\xcb4~)\x85\xc0fiL\xda\x89\xda\xd1\'p\xd2yD\'Lzf>\xf3\x01%\xb4\xa9\xb2\xa3\xbf)\x80\xd3B\x01\x9f0eC\x03\xd4\x89\xec1@Z\xe8\x992\xa5o\xdem=2Z\x97\xb9\xe8\x19\xd0\xa08\xa2R\xce\'\xd0Z\xbd\x10!j\xf2\xbb\xe56\xae\xe2\xa3}\x01v\xc7\xb4i\x82] 2\xc6\x83V\xd8\xb5\xed\x03\xa7655\t\xb9\xc11\xf1@\x86l-\x96\n\xdb\xf1\xc7\x97\xbbk\'\x96F\xb5\x94}\xaa\x13\xa7y)\x07\x14/\xc5\xa9b\xff\x97Jn\xa9\x85\x0e\x9f\xf4\x14\x19q"\xfa\x0f\x11\xdb+C7\xfb\x0e\x98\xfas.\xb50\x88Ra\x8d\x04l\x80\xf8i\xf2\x03\xab\xab \x9e\x97m\xab\x88@\xc8m\xbb\xfe\xb2\xee\x05\x90\x019\xfa\xdbq+\xc7Ln\xa0\x8f*\xe1\x1c)l\xe2\xd5%\xe2L\xc3:\x9b\x7f\x96\x19\x1deS\xa2\xc0\xf0\xe2\xf3C+\xfa<\x8d\xa6\xd4P}6\xea\x91h3J\xee\x01\x01d\x87\xa6=QK\xd5e\xedp"\xf9\xec\xaeb\xee\x9cUo\t\x07\x05Y\x18\xdfm\xc1\x97;\xca\xb6o\xbc9;\xe9\xfeg|\r\xdc\xba\x95-\'\xbd\x9b\xbfY\xe3\xe8\xdbsr0\xaf\x87\t\x16\x84A\x13\x07N\xe9\x8c\xa2E\x9f!\x81\x1fS\xd0^\xa2\xa8X\x81XK\x8e\t\xd9\x9c\xcb\x0b\x9d\xdbS\x8a~\xd7\xc5q[\xbfTW\x83[\xef\xde\x931\xdb\x05\x0e\n\xd5%\x07\x03\xfe2\'VG\x9aD\xa8\xa7:?\xba\xa3\xb9#\xf1\x04>S\xc2&O\xde\x95\x0e\x02\xd1\xa1\xf6\x99\x81DuU\xd6\t\x93\'@V\x7fV`\xf9^h\xbd\xd5\x8e\xbb\xb1G\x95[\xecFl\x8e\xd5\x95h$\xe8\xd0\x184\xba\x86b\xac\xf39\xca\x89.\xec k\xe0\xff\x073\x87\xd6\xb5\xaf\x9d\x18\x91\xe6\xf0\xd1\xa7\xf3\x95\xf7\xab[\xe7\xdb\x83\xdb\xa6L\xbf\xd2\xc8\xcc_cS\xd7\x81,l) \xcbV\xde`!\xc1\xcb\x08\x87\xaa?\xc7,\xf4\x0bST\xa3|\x8an\x0eyD\x82}\x83\xf2\x08]b3\xbd\xa6$\xa7\x04\x05\xaf\x13\x17\x1d\xcb\xcdr{|!\x8c\xefA9\x10\xd6\xccy\xf1$l\x17v\x1b\xf6\xa4\x0b@\xec\x83\xbe\x84\xc1<\x1a}\xf6\xb9J\xab\xcbO{\x92\xa0\xb8\x154\x018\\\x1c\xae\xbe\x1aU\xfc\xf3\x99$\x940\xbb*x\xd8\x1b\x07\x06\xf4\xba\xf9D\x8f8\x07N\xe8\xc0\xc0\x14j\xab\x94\xe0\xc4\x1c\xf2*\x9d-z\xf5\x9e\xfc\xbfK\xdf\xa5\x19\x8b\xd4e\xaf2\xd18\xac\x15\x10\x04\xab\x89v\x05\x7f\xa7\x92\x9d56k"\xe2\x8b^\xaa];\x98\xa4bK\xd2\x1b\xdf\xc5A\xc6G\xe5\x18q!\x1e\xa4V\xcch!\xbc\xaai5dD\x05z\xa2M\xb0\x8e\x9e\x0c\x1c\xfe\xf1\x9d=\xa1\xf2.\xc7\xdd\xce\xd4xom\xdc\x81\xdb\x06\x99/\xfd/\x1f^\x9d\x89Xw\xf4\x8d\xae\n\x01\xbf\xdc\xafw\xf7\xad\x8ax\xf8\x8b0c\xb8\xc5C\xb5\t\x86Ck^\x90\xb9\xbcO\x11\xcep\xa6!\x98\x90 \xf5\x1a\xac)\x8f\x80\x12\xfb3\xf8\xaa\x13\x15\xbd\xff\xca\xd1$\xd1\re\x1ao\xb34S\xc5\x0e\x0f\xfd\x96\x06@,X%\xa7\xc6K\x81\xeb\xfa*\n\xdf\xec\x87X,\x83D\xa4\xc5d\x07\x1fJ,\xb3i\xe27.\xd5Z\xcc+\x881\xe2z\x95\xc9\xf6\xc1\x14\xb8 \xbdt\x95\x10|v\xa6\x91>f\x8a\xe9\xad\x7f\x889R)rb2\xc9`\x89\x12s\xa7\x1aCS\x87>s\x8a!\xe7\xc7\x04}\x12\x81N\xb1\xb73\xe3\xc6\x91D\xd0\xd1]0\x95\xe5\xe3\xd7I\xf2\x1e\xd2 +\xd7L\xd9\xa9\xb5"\xb3\xed\'\xf7\xebI\xd60\x81\xff\x84\n\xe8l\x92\x88\xa7\xa4\xb6\x1e\xa5\xd0\x19\xdf\xaa1\x0c\x06\xa1\xbb\xbfe\x98gw\x89\x8d\x83,E\xd0.\xfb\x94\r\x93\xf6\x16\xbc\xc2\x8b#\xaa\xa7\x97\xa8\xab\xa3\xee\xa4m\x7f+F7y\x9b\xea\xb8L\xb895-\x01\xbez\x12y\xb6\xf9f\x1c\x16HR\xfa\x82-\xdaU.\xc5n/\x1d\xaaD\x96\xaf\x01\x93X!M}\xab\x92\xd8;\x9f\xa7\x80o\xb6\x7f\\\xa3\x7f\x0bf\xb6|h4\xd9\xaa\xda\xd3\xacGh\xb4\xb3\xa8P\xad\x91\x9e\x80u$\x9e\xd9n\xb4\xfa\x01s\xcb\xc5J5v\x8e\x14}Pc\'\x1e\xc7\xdadL\x17\xb2\x15\xc6\xaf\n\x81\xd5Z\x10\xef^WnS\xb7t\x1do\xa5A\x1fg\x03\x1e\xf1\xba\xb9`\x9eE\xb9\x1fj\xae\xdeL=\xd6N\x89^\xf3\xc1\xc2\xa1\xeeM\xbb5\xad\xa4\x0cZ\x17\x01!\x8dY\xf4w\xbb\xba\x03\xf0\x1e\xa1\x11\x13\xdf\xb1t\x00k\xc6\x08v\x1d\xa7l\x9dz\x85G\x99L\xd8HaY4\n*t\xa0\x91\xb5\xf1\xbd\xd1\xa2\xd7\x86\'`\xbdJ\x8d~b\xcf\x82%\xc4I\x8a+\xd8d\x8f\xff\xfb\xcc\xd9\x8b\x7f2b\xa3\x06\x03\xc3\xdf0\xcc\x12\x1c\xd2\x19\x7f\xb1\x000\xe5]\n\xfdix\xef?\x86\xfe#\rv\x18M;TL\xe6\xe6\xe8}\xf7\x89k\xb5\'\x17\xaf\xacg\x00I\xe6\x15\xd7ZG`\xe4\x82\x81J\x93X\x17m*\x7fs\x1e\x8edCS\x9b)\x90\xe5\x01%D\x8e\xaa\xbfQ\x18\xa6\xb0\x16\x0f\x966\xd4\x07\x864\x96+\xbb\xa8d\xe8=\xed\x18dd\x04t\xea" \xfb\xe5\xa4V\x96\xfe\r\xff5\xa6\x07\'@w\xf7\xda\x1be\x1a\xf4<\xac\x1f\xfc\x10}\xbc\npNS\xbe\xc2&X\xb5\x18\xeb\x10\xb30\xa09("/\x12;`\xe0\x12RO\xd5\x1es\xc3\xd3\x0c\x8c\xa7\x98\x08\x84\xf4\x0b4\xf9\x99\xe2\x81\x9b\x90L\xf5U\x0b\xf2\xfb\xd6\xfav\x88\x9b\xdc\xc4\xc4\xeb\xf0\xed\n\xd6O\\ \x9a\xa1\xd7\xa5\xf8\xc9\x96az\x16p\xb8\xaa\xb5\x9b-\x81\x122\x81v\xe57\x0e\xb1\x95\np\xde\xb6O\xd1\x80w\xad\x99Q\xbbBi\x9a\xfdUf\x96\xca\xf4\xfd\x0b\x19\x8bu_P\xa0\xc8+\ti\x17\x96.]n\xec\xef\x1a\x82\xb0o\xb3\xb4\'\xb8\x99u\x0e@\x92*\x00\x0f\xa0J\xae\x96\xc7\x86,,l\x84M\xfe\x1d\xa9\xf9\xd5qT\x11\x97#\x86A|\xc8\xdd\xe8\x9e6\xc5Wy\xb0\x03\x9f/!l\x11\x89\xb3\x00cq\xee&\xb0\xf3\x99g\x06\x13\x95f$J)n\r%20l\xde\x13\xf6\xf6\xd7\xf4\x81N{M:\xa8\xab.^\x80\xee@\x8e`0\xe2\xa9>Z\xd6\x9f\xf4\xbfA\x1d\x85p\xa8\xad8\xa0\xf6W\xa2\x80-\xaa\xea\xac\xcbj\xa1L\xc8\xc1\x1c\x9f\x8fQ\xb6Q\x17\xfb/\xcf\x8d\xc0\xa2\x95\x02\xcf\x92:\xb6\xfc\xfc\x91\xdc\xa8\xd8\x8d\x91\x0f\xc2\xd3\xbb\x97i\x96C\xbff\x8d\x10O\'z`\x97\xf5\xfe\xa1\xaa\x133U\xec\xdc\xb4\x8a\x9d\xce\xa1\xe5+8;n>.\xdd\xb5@\t\xf8\x8c\x1a\xf6\x01[t\xbe\x17\xd6\xbak~\xe5@\xae\x17uW\x0f\xbf1E\xf8W\x131:\x90B\x93L\xfb\x9d\xeaZ{\x87KPY\x98_\xfdO\xac\xc0l\x00u\xac\x8d\xf7\xd40\xf5\x8f=\x00,\x05\xfb\xd6`:\xa9\xf7\x00M2\x88\x1a\x9b\x94\xa50\xb1\x9eC^\x119\xba"\x1bf\xde\xf7\x97\xb6\xcd\xf6f\x9d\x03z\x1f\xb1\xd6\xdc\xbd\x06h)\xbcZW\x18\xd4z\x07\x94\x02\x101\xab*`#\xe6|\'\xd9\x0c\xf2\xa5\x96\xb7\x14\xff1\xd7\xb0\xc8\x10\x8bQ3\xc9\xddx(S>BD\x8f^R\xd7;\xd2J\xf1ds\x93\xc2\x90\xfc/\xbaH\x07\x03W\x0e\xbd\xca\x92\x0b\xd8S\xf6q\xe4\xdf\xcbdu\x11 \xac:\xc6\xb7\xdc\xdf\x11\x8f\x90\x17F/\x14\xf5|L\xe1j.\x16\x8c\xe4\x8f\xb4/H\x1f\x05j\xd7:\xadX\xb6\x96\x04IK{\xa0\xdb\xac\x1f^#]\xa9#\x02\xdc\xa3ohc\x1b\xf0p!U\xa61\xa2_\x89m\xb3\xdao;i\xd9{i\xd6SX\xa1\x1a\x07\xc2\xc0\n4\x8a\x06\xea\x91H\n\x1dQ[=\xe4\xb3S\x0b\xa0\x07\xfd\x80\xe8*\xc2EAU\x81q0}\x86\x89$=<\xfcu\xa8J\xb4\xb4d\x13\x04\xae\xdb\xacwe\x1c\xef\x04\x8b\xd7\x08\xc0tH\t\xee\xcf\x1e\xa2\x9f?\x01UEm\x18\xd8\n\x1d$\x1d7R\x1a\xbc\x88\xa5\x9b\x90l\x99uX\x83\xb2W4&\x8c_\xff}\x0e\xea,\x1dK\xbe\xa6\xe4Ld\x87Ao\x12\xef\x1aD{\x08\xb8\x1b\xe3\xb7:w\x0c4\xd7 \x1a\xc2\xc6\x07\x16%\xa9\x9a\x0e$\xd3\x99<`\x18b\x90\x89GZ$T9\x16\xe3L\xce\xe9\nkp\x94\xf0\xb0\x7f\x01\xa4\xb7\x12H\xe9\x9f\xd1\xedE7b\xd6U\x8a\x97\x9d\xc7\xb1\x0e\xb9/\xc9,\xc6\x80\xf7\x82X\'\xb3\x99h\xa7\xd0\xae\x03\xb0\xa1arqLQK\xd2\x97\x924\x8b\xce\x1c|\x91\x0c\xd2_\xbbI\xebEX\xffFD\xb1k\x8dQ\xae>\xf8\x7f\x07\x9a\xc7)\xbb\x1d>\xa7\x02\xac`\xed\xd0>r\tpi\xda\xd5\x06\x18\xd1\x02&\x7f\xa3\xe3\xe2y\xd6>J\x07\x16\x13]\x01U\xd5\xdf\x17\xd7\x18\x9b\xe2\xe50\xab!z\x18\x13\x03~\x18\xe1;\x85E\xd3\xbc\xd8\xa0\x1a\x8d\xd8\x8d\x08P\xd0=YH\xdb\x98b\n?\xb3\'\xce\xb6]\x9aw\xa5Q\xcbQP\xdaQ\x9e(\x81f\xe8\xa9\x06\xfc\x10\xcb^\xbc\x17\x89\xf60\x11\x7f\x1a\x07\xb7A?a\x05U;\xb2wS\xeb\x1d\x8a\x8f\x16\xbf\x19\x93\xfa\xd39)(QWrw\xa8J]\xfa\x9ea~\x9c\xc4=\x9d\xcfh\x9a\xf4\xf9`\xde\x15\xc0\xc3\x87\xd8$\x1e:\xd1p@\xd8\x11\xd3D\xc0DD\xea8\x80\x87\xa5\xda\xcd$\xc1\x14\xc2\x0beK\xee4\xff\xc5\xb7\xdd1y\xe4\xf9\xd9\xeb\xd8\xfd\x85i\xe9\xef\x16\x0c\xfb\x87\xa2\x1d\x1f\x1c\xec\xc8d\x88B\x05 n\x1d\xd8\xc0u\xacy\xef\x9a.\xaa\xa7S\xc9g\xb7,\xa1o\xf6\xb2j\xfe\x8fr\x89t?\x1e\x89\x12\xc4\x89\xf6\xe4\xd1\xca\x83\x9bYe+N\xc3\x0e\xb1\xba#\raj=\xf0\xdeec\x11\xcf\x18G\xd4r\x10C9\xd3x\xf4-\xef\xa7\x83\x91UR\xd1N\xe7F\x820u\xd6h\xb6_Ck}\x9d\xbe4\xda|@[@\x86\x02;\x83\x01\xd7\xdf1\x99\xe0\xed\x8bC\x13p\xc9\x96\x90\x8cQg\x93(\xf1My\xff\x1e\xa0\x9c\xf2h\xa6j\xfd2\xbf{Sw\x90\xad\xc3\xea\xcbe\x10\xaa\xfa\xf1f\x99\x9070\xbe\xc2Wfj\xd6J\x05\xde\x0c\xe7\xd9\x18A"\x935\xa6\x7f\xfd\xc2\xbf\xa8 g\x91\x0e\x87\xbb3\x7f\xc9\x94\x95i\xde\xc8"\x92\xb1\xe7\xca\xab\x8c\x05\xfd\xd3\xba\x19\xd2\xd1!=:]\xf22u\xbf/$Z{\r\x16\xfa\xee\x06\x96\xdb\xa8\xee\xbb7z6\xe0\xaf\xf9\x9eR\xdd\x86\x15\xf2\x1c\xab\xf2rZ\x85\xc3[\xbd\x05K\xb0\xded4\x0f\x97-\x03\x17\xa5,\x8e\xaa\xc9\x15\xa0-\xdf\x01E\x7fr\xaf\x1f\x06\xc6_^1i\xb8\xd6\xffhy\xb1FH\x0b\xa8\xd9\xb0\x9b,\xa3yS\n\xf7p.BH\xcc6G\xe8\xba\xbd\xed\x03x\xe5&\x0c\xdd\xa8:\x10y/uF\xb8?\x15@\xd4\xfe\x88\xbb\xfa{\xac\x9e\xbevqc\xf0\xf7\xb6\x84\x91\xdcAj&\xe6\tB\x02\xc7\xbc\xa0G\xcf\xda\xc6\xe2\xb0\x1ax\x9e\xe9\xcf\x1f\xc5%\xd4\xadP\xaf8\xb2\xb9\xe9\\\xa1\xdff\xa4\xd8\x0e-r.\xd8\x1aw\xb1:mB\xeb\xaf\xf9\xbc\xc4\xffg\xd8\x0e\xe9\xf2\xc4x\x05Z<\xe5G%8\xf3\xe6\x94\xf0`0\xe7\xc98\x83e\x7f1 WC\'\x04\xbb\x0ebOB*.\xdb\x11\x8ec\x8d\xf7\xcc\x94\x10\xd8\xec\xe6\xa5\xff\xc5\x1a+\xf9\xabm\xc1*\xbc\xf72d^\xcc\x01\xd4\x07\xbd\x96E\x89\xf3\xfb3kG\xb3\x15}!\xb1\xa1S\xd7?ym\x91\x8c\xc0|a\x9a%\xb8oO@j\xc56f\xed\x85\x8b\xb8\x83\x872\x1d~') diff --git a/dist_obfuscated/build/lib/orisys/UnstructuredGrid.py b/dist_obfuscated/build/lib/orisys/UnstructuredGrid.py new file mode 100644 index 0000000..6724d94 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/UnstructuredGrid.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.763914 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00(5\x00\x00\x12\t\x04\x00\x04G#k\xe1\xbd\x9fU\x96\xafq\xacZ\x19\x16\xc9\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xdb\xeb\x02VX\xe8\xe1\xf6\xfcP\x1f\x94\xc9\xd8S\x99\xb2P\xd8\xf5\xdd\x8a\x94g\xec\x17;)5\x1b\x80\xf9\x9b,\x90\xa2\xd5\xcd$jy\xea\xb9\x9e\xb8$F\x97\xa7odL\xc2\xb3\xea\xc8TX\xa0\x93X\xafEWC\xff\x15\xda\xd1\xa4\x0c\x8ds\x13W\x9d8\xc7a\xe8{\xb4\x07\x99\xe2\x96\x9a\xd7\xe2\xdc\xcd\xb2%q\x93\xce\xf5\xb0\xc7k\xa5a\x80\xebr\xe2\xde\xb1kW0\xcc<7BU\xbd\xae\x8fd\xed>\t\xa1\xfe\xc9\xda\x0eK\\\xe4\xaaCD\x08\x14\xc5&V\x8e\x8cd\xb2\xa2\xe5R\xee\xfd\xad\xdfk\xb3\xdf\xc0z\xf7>\x13\xcb]\x12\xf9\x8d\x1fh0\x1a\xbee\x9b\x1cm#C\xdc\xc8\xc7\x82e\t\x93@u\x86\xe0x\xf4\x1b>1\x18igK;P]\x1e\x19\xaa\xf5:\xb8-EZ\xb4\n\x8ejF\xf6\xcbH\xb5\xb9M\xd5\xa8\xbe#n@\x08\xdb\xd8\xef\x88\xe0\xf5)\xf9G\xa2\xed\x91\xfbH\xa5\xe7f\xac\xc3\xc1\xa65x\xb2\xb4\x9c\xe4J\x8b\xaa\n\x0e-B\x90\\\xeb\xf9I\x83\xc7\x84\xb10Dm\xc2\xcf\xb4\xf3a\x0bE\xa1b\x80\xbdPGL\xc1\xda\x041d\xd1\xa9=\x8b\xda\xab\'\x87\xff\x94\xcc\xda`do\xa4\xafk?r\xe8\xfe\xa8\xdd0|\x04}a\xf8Jq\xe0q;\xdfO\x91\xce(MU\xf9|-\xa1 w\xed\xfc\xfc[!j\x9b\x07\xc3\x1b\xd2\xc6\xa4y\x97D\xca\xce\x11\xb7e\xf5\xa9\xe2\xdf\xf0x\xf7]^5\xe0\xcf\'\x126\x11\xb7\x7f;\xc6\xd4\x01\xbf\x94\xa6\x16\xe5UrH\x85\x1d{\x95\xb4-\xffK\x14\xe6\xc3\xcfYuM\xc3\xb1D\xc9K\x16R\\J\xf8\x0b\x0f\xe9v\xd7\\!\x10\xb1\xf8\xdd\x89\x98$\xbd\xda\x81\xb2\xa6\xd5x{\xba\x1a\'\x82\xdd,\xf0\xfe\xe6\xbf\xd5\x1d\xber3\xb0\x11\xf8Lk6x\xf7Q5r\xba\rs\xf4\xf9\xd2\x1cZ\x9b\xc0\x85*\xf7\x16\xea@t\xfck\x9bPm\x1e<\xac\xcc\x0e\xca^\xd9\x1b\t\xc6\xdc\xd2R\xeb\x9f\xd8\xfdk\xf0\xedE\xe7N\xbbs)\x17\xdb\n\xde\xa0\xe2\x94\x88\xf9C\xd8\xc8g6T\xce\xa6\xb9\xe9J+\x83\xa4h3)\xa5\x1c\x83\xe4\x1d\x0e\xac\xd3\xc2\xa3;\x90P/\rDZ\x84<9E \xf3\x02\xf7\xc3\xa3d\xaf\x02\x9a]K\xcaX\xdb\x1a\xc4\x89\x8e\xac1ZA\xe3\xcc\x1e\x1c\xf5-\x0c\x17\xce\xde5GB\xac,\xf8 \xa7\x82xL\x12\x8f\n\x0c\xc2Qv7\x9cN\xe2\x8fw\x93\x96\xdc\xd2\xcf\x9c\xfaA\xf3\x9a\xc3\xeb\xd6\xa4\xa4\x17f2\x06\xec\xa9i0\xa5\xac\xc0y\xef\x0b\xf5\xbf\x9e\xa5\x0fI\xc0sg!\x97I\xdeF\x1f\r\x19\x19#\x1el\xe8z\xa1@\xd1R\xbb\xado\x19~\xfe\xeeIW\t\x00\x15K\x88_Kv\x9d[OC\x8a\x0e\xbbCQF\x01U\xb7\x0f\x11\xecJu\xb0\xa1\xbd(\xe5\xe5>?\x0c\x0f\xdc\x9d&\xd8I\xba\x86#\x01\x17-\x84\xa8\x86!\x894~G,)\xfb\x06\xa6\x91\x12\x9dm\xf6\xebDwR\\\x89\x16\xa9\xd3\xd8\xe47\x9c\xadu\x02>\xc7}\x03\xeaS\xd9\xa1@\xe8[\xf6T\xaeN\x884Q*\x1c\rx\x1ft\xce\r\xef\xce\xaby\x96\x9e\x04\xa3\xd0\xae \xe7\\\xb9MZ`\x88\x85\xf7\xe3\x13\xef[s#j\x18I(g\x12m\xb6\xac\xa5\xce\xe0\xb4M\xb5h\xce\xd1\xc6d\xac\x9c\tQ\x92^\xbc\xd5\xf3DS+\xa9xA\xefv\xea)8\x02\xdb,4x-~\xccj\xec#4O\xdfg\xd8\xb9\xc0yJ\x96<\xa1\xbcT \xbb\x14\x98\xdf\xb8\xb6\xd7\xe4\xba\x8c>\xbf\xd5\x08\x0b9\x93\t\xb5\xee\xd3\xfa\x8dv\xd0\xa8\xae\xdf\xf5\xcd\xfd\xc6\x01\x84M\xb2A\x99\x9d\x92b\xb2?,G\xf6/c\x1aI1\x1a\xebS\xc7\xb9\x89\xfb\xdd\xd7f\x04\xa1\xfdW\x886\t\xdarm\xd3-a\x90]\r\xae\xcc\x06\xc6q\xe8\xf0\xdfp\xc3\x18\xd8@\xb2\xf4\xd7\x13\xdb\xcf;\x87\x9a\xac\xa3\xf6x\xbb\xa7\x1d\x1a%\x8f;;I\xa1\x8f\xd97\x19\xb0\xb9\x88n\xb1\xc7\xdb=\x9d\x97S\x15\x84\xbbh\x7f\xc4\xf9\x93\x84\xd9\x0b\x0fK\x9f\xd7\xd9\x13aYYUd\xee\x13\xf6\x1e\xc5\x98\x0f!~\x0e\x9d3\xa1\xe4\xa0\xdb+\xe4\x04\xfe6\xd5=M*p\x07\xc5\xb6\xd5H\xe3\xbd^"zp\x92\xaf&\x7f\xd6.\xe3<\x8f\x99\xc5\x83\x04c\x1e\x89\xbd=~\'o\xbc\x0f1\x0c\xcfh\xe9\xfc\xe47z\x03D\xcc\r\x7fG\xd8\xcb\xcd\xc3\xf9\xb0<9\x9dn<\x9ao\x95H\xf2\xdf\x89\xb9\\\x99\xb6\xc8\x82P\x9f\xd4\xa5\xe0\x98\xf8\xea\x9a\x1e\xf4\x16\xedk\x17J\xa6\xc2C!\xeb\xe1j\x1d\xd0\x8a\xb8Hlgp\xcf\x8a;\x8fI\r\xaf\xd1C\x86\xd0\xd8"\xe6k\x95\xc3+\x140\xff\x8c\xcb\xb3\xb0H\xa1a\xba\x0b\x1a\x8f2S\x7f\xa7G~\xd5j\x84nR\xe2<\xbdYw\xc6\x16\x89\xde\x98\x13\xde%\x04\x05F\x82\x9dj\xf1\xc1Qx~0.u\xe7\rZ\xb4\xdb\xad{\xb6[x\x07T\xe3\x98\x8d\xf7\x1d\xc3\xa1\xb9\ng\xc6,>6~,\xe7fC\xa0\x84$\xf0.$\xbb$\n\x9c\xf62\xf6\xcb\xbb\x91y-\xfe\xd8\xe7\x10:\xb0\x8c\xb5\xbfW\xc5\x05\xd3-\x8e$\x11]\xad\xd3\x80\x13!\xbb\xc7\x04\x93x\xf4\xa9\x05%L\xd5\x95\x87nY\xb6\x10\xb3[\xb7\xdc&h\x1c\x1bw_\xd1\x8c\x9ep\xfb\xec\x19P]+D\x1a\x9a\xe6V\xec\xd2P\xbeko\xc5\x16\xdf\xd3\x94\xde\x8fA\x8fA\x86M\xfa:\xd1\xa9\x1b\xf0\xad\xb4#\xf3\xff\xf27~\x8b\xef\xcc\xbe\xf4Aq\x03\xb4\xe9\x80*\x18:7\x89e]\xcc\xf4+u\x06\xd2J\x95=\x8fH(\xdb\x9exe\xc0n\xed\xe9B\x90(\xdc\xf5\x8ae:6\xca\x80\xf6\x0c\xd6Q\xbdk\xbb\x0e\xa29I\x89\xb7\x04\xebU\xddX\x81\n\xc9\xd1 \x1e\xd7\xd7y\x0c\x1a\xb7\x0b \n-g\x95Jc\xc8\xdd\xe5\xa6\xf7\xdd\xdds\x83\x8aT?\x9d^?\xd1\xe8m\x94\xf4\x1a\x1b\x02\xa0\'q\x83\xdbnA[\xa56HC\x1f\xd5+\xd1\xa9\xf9\xfe\x05xd\xf7\x123\x8d\x021\x14\x90\x08c\xbd\xbf\x8e>_\x03\x9d8\x1b\xee.\xfe\xb8\x93{HqT\t\xb9\x19\xccI\xdd[\xb5\xfd\xdfS\xc8,\x8a\xaf\xfc\xa6\xb8a /\x97t\xabEl\x89c\x08\x15\x8e\x96.\xb0-\xaeR"\xd5[pk\x08\xa1c\xfb\xbe\x13\xed\x16@\xfaw5\xbc\xcd\xec!\x94\x1d\x8d\xb5l\xb9\xbd\t2@F\x8e\xd1\x1b\x14\x1c\x08{\x8c%B\x7f\xcf\x1cP\xd7\xc5}z\x9a\x07I\xd8\x18\xf6\xad\xddYv\x9d\xf7\xbe\x97\x1b\xeb\xb3a\x13\x83\xaa\x19\xcf\x19X\t\xee\x0e[\xcd\x1aZZF\xfae\x0b\xa3d\xf9\xd9\x9f\x83\x9e\xd7z\xe7\x1d\xb43\xc4/\xc1\xc5\xdcC\x90\xda\x961\xf0\xa6\x89D\xfbZ5\xffF\xa9\xc5\xba\xde\\8\x98\x94 \xe5\xbf)\xf2\xb0\xa0\x99Qv\xbb\xe3\xe9\xef-q{\xa0?\x93c\xe1\xa7rI\xe8\xd0\x02\xa0d\x02\xbe\xf8\x1f\xbfHKl\xbe\x16\xcfu\x83\x18yj\xc9M2\x9e\xe8g\x1c\xdbx \xbd\x0e\x82\x87\xd3W\x86\x8ez\x12C\xe7\xad\xa7f\x82\x08|\xbf{0\xa9\xac\xfdlD\xac\xd0\xd8\x92\xa2\xa9C\xb6\xbdp\t*\x13\xd7\xa15\x0e\x0f\x96BH\x00\xe8\xdb\x1b\xaeJ\xbaqw\xe8\x1b\x8c\xc4\xf0\xf2\xab\x91U\x03\xf6[\x1e\x8c\xc1Y\xf8:\xa5Zq\x96\x0b\xaeI1\x92\x04"\xca\xfc\xbcW\xa9-/\xd3\xc0\xa4\xd5 \x1a!:\xcd\xe4\xa3\xb0e0^\n\xcc[(cV\\k\xc5\xf76\xed,S\x16\x1a ,\xd47$\x1fP\xe2&\x0f\xdf9\x0bf\xb5\xe3[\x1d\xd1\xea==\xc3\x97\x9c\x9c\xa7>\x13N1\x9c^\x0cr\xaaP}\xf4\x12\xab\xb8a\xd3U\x83]\xd1\x12\xf1\xc2E3\xdd\x11@\xd8\xa3\x19\xa4\xb7\xd7\x1d\xea]\t\xed9=0\x9d\x7f3%n\x81\x9e)\x01\x91\xff\x84\x808"!\x96G\x93\xcd(.\xaf\xb2\xdb\x83\x0eE\xd5\x18R\t\x16V\xfbF\x83\x83\x84\xc7\xbe|JR\xc1\x8dgTW\xcc\xb7\x94\x1dv2\x8b\xb7,q-O\x9d\xf6\x0c\xe0\'\x1d\xd9\x9f\x94\x9a\x0f\xbf\xe0e\xd0\x905I\xea\x04\xd2\xadV\xf7\xd0\x192J\xa8yV\xb5\x1ah|P\xed\xd3\r9\xfb\xa3\x9cd\x13\xc6\x1d:\x06\x06a4Y\x04P\xd4\x1fP\xe7\x0f+\x9f\xe1\xa9E\xb1\x81\xa7f\x18C\xde\xfb\x1b\x94\xae\xd8\xe0\x9f\xf0\xd0}\x91\xb92\xe5\xb5\xdf\x13\x1d\xef\x15\x90\x0b\xe5\xdb\xb2\x1a@+{*)\xf31\xbdL\xe3\xa4\x87\x10\x04\xaf).\x92\xc2\x98\x04/ \xb8\x91\xa2\xa4\xbe>\xa9\xca,\xdco\xb2\x96R\xe8\xa8a\xeec\x04\xc2p\x86\x06\xd6M\xad\x14\r\x80\xed\xd4j\x06\xa1\x1d\xc6oH\xd6\x93\xb0\xcdR\xb7\x7f\xda\xf9\\a\x10\xd5\xf9\x99\xdc+A\x13\x07\xae\x8ao\xe6A\x92"\x1a\x85a\xf5YS\x94\xe0R\\2\xe2\xd2h|8\x9a\x93G\x8c\xf1\x888k\x0eK\x9b\xba\xe3\xe4s\x1dhd\x99\x964\xa3\x0c\xeb\xadm\xe9\xc5!\xec\xfdys=\x1a\x94&I\xb0\x98\xeaIVu\x10h\xd9\xfd*\xc7\xb1\xa7\xc5:\rC\xee\x02\x89\xd1\x1b\x1d1,\xd7\xf3\x17\xea\xca\x0e\xbd6\xb1,\xf4\xd1P\x92v\xe9$\x06\xc8!a^\x12/;\xea\xa2y\x08S\x9a\xa4\x1d\xc3K\x83\x9cd\xc8\x05\xc1\xc6chR=\x8f\xe0\x9b2\xd2\x8a\x8e\xe5D\xb5\x00\xcb\x02\x8b@\xedm\x13\x84\x8f\xbb\xcc\x8ew2C\xcct\xc8\x8e\xc7\r\xe8.Vf%\xd9{\x9b\x8ce(\xd8\xc4k}\xba\x02*\x08*~\x97V\x02\xedz\\4\xc7\xe7\xe65)\xbf\xaa_+\xdf\xccc\x86\x84#\x97sx,;h0VT\x8e\x9e`\xc9#sU\xaeY\xf4\x07\x8f7\x9b"~^N\x074\xac\x11N\xee\xfa\xc6\x196\xe9Y6\x0bEcY~!\xd8(\xc1\xc3\x92k\x03EO \x8c\x85\x06\xf8+ :\xa1-\xf3Y5:#\x8b1\x9f\x1a\x03^\xe9z\x833\xbat\xa5|\x1d\x02\x0e\xe3\xc1\xf3Sq\x00\x15\x03\xe0\x8a\x86\x9bk"\x7f\xa8P@5\x1cv\x80\x89Oh\xa4a{\xce\x16T[\xe7\x8b\xfa\xd06\x0b\x8b\x0eun?6(!L\x85\x95#l\x1f\xb0:\x82\xe2\x9a\xd9F\x05\xc3p\xdb\xc7q\x0b\xbd\x10"\xcd%sL\x8em\x93\xdb=\x85\x85\xc1\x80\xc3\xee\xaf\xc5{\xb2\xb0+P\xc7\xb2_\xee\xc1Pu\xc1T\x8bo7:\xc5\x1a\xff\xa4i\x9f=\xba2\x16t\x1be\xd5\x9f#\x91\x14\'\xef\x0b\xd1\x02\x96\xf2\x0b\xff\xd7w\x0e\xdat\xa4\x11\xc2\xb1\xaa\xe7M\xde\x82#d\x8f@\xc4\x01\xa2\xeb\xaa\x0c\xbfM\x9amsw\xc30?\x04\xc8\x81\'\\\x7f\x1c\xed\xdb\xde\x97\x1e_\x1b\xffp\r\x97\xfb\xcf\xeb\x08 3\xf9\x072$\x8foCx\xdc\xa1q!\xf1\xb2\xbb\xcb\x00\x19\xa1\xf4(\x8d\xcc\xa8\x88,\x82Dm|\'\xea\x9aL\x89`Z\x16b\xd8(59{^\xb0\xf6\xb0\x89\x99\xd7O\xc5*>\x85Z\x1dR\x14\xafS\x96+\xa2n}\xdc}\xa7\x02\xe2<\xda:\xd6\xc67\xee\xceJW\xe7@|M\x8b\x03n\xf5Qu\x1329\xcf;R\x8f6\xb1\xe5\x8c\xd9\xa9!\x85Y\xe3\xb3\x03\xa0\xd0N\xc7u\x11\x9br\x0b@\xe7\x82\xaa\xc4\xdd~\xff\xde\x01-\xfb\xe5\xbe\x85K]\x1cc\x07a\xe0"rE~z\x13\xff\x8ee\xd4S\xe8\xb3\x0e\x8b{\xf4\xad\r\xd7\'~\x0f\xa0\xd4\xf5\xe0q\x9c<\xef\x1a\xf4uJ);6\x16\n\xa0\x8f\xb6\xa7\x9dEi\xbf(7\x91j\x83\xf6,\xc8/g0\x17\t\xe6\x8d\x110\x8b\x11\xdf\x9f\xcdL\xf1*\xb7\xa4\x1d]0\\\xc7\xae\xc4\xb0\x1e\xe4\xeb"\xaf*\x08\xf1\xf3\x16,8\x80-\x93^\xb36\x04?\xac\xfd\x18\x13\x07\x19\xa3u 2\x19Q\xa9\x92\xd4ZH\x10\xc7%\x95\x992\xe5\xf9\xa8X\xfd\xdb\x1e\x1bY\xc8\x86d\xfe\xd6+\xfdH\x81\xfc\x8c>\xb5\xfa{\xb9f\xe0p\x1a2\x9a\x01}c6\x0c6%|\xbbW\xc2|\xc5\n7q\x14\xc0S\rr\xcb\xf4\x86d\xc6 5\xae\x1d\xcf$d\xe6\xebr2\xb9T\x8b\xfc\x9b\xe0\xb9j\x8f\xba\x96\xa8e\x87\xc1\x9b\x15\xafh\xba,\x14\x82W\xa26zb\xd6\x06\xfd\xec\x15H\xfa\xa5\xac\xdb\xad\xca\xa6V>\xbe,2\xb8+9=\xdc\x04l\xa7\xf5+\x902\xf3\x902\x18\xbb\xf2\x07\xcc|\xcd\xd9\xc2\x17x3\xc4mo\xf4v\x04\xa8\x94^[\xa1\x17\xbf\xc3\x91\xday\xa6\xb5\xe0n\x02\x96\x18\xd3\xf0\xa9:\xd8?\x0c\x08m\xdd\xf8dR\xfeD19D\xcd!\xa9\x85\xf99H\x0c\xdc\x80\xd5\x83r\x05(90v\x88\xa5\xbdl-\x8ao\x1f\x16\xec\ngQ\xf1\xcb]\x0ci\xa4\xfbj\xffDM\xb7\xfd\x8bp<\xaf%B\xaf \xd1\x10\xa0\xe4\xc3\xdf\x0e\x84\xe2\x9b\x8f0d#Ks:2r\x1fEQ\xe1{\xcc\xect\x14\xa7r\x87\xdd\x9fN\x14\x1f\xa2\xb2$\xc0&b;U\x95\r\x9a`\x1c%\x17\xdf\x16\xbb\xbf\x90\x9fQ\xe6\'\x7f\xfd\xbc.\xc7\xf6D\x92\xac^\x12__\x84\xdf\x0b\xd7$\xe3\\.\x1d\x8a\x97\xcb\xcc\xfd\xddog\xd9\xa3\xf9F\xd2K\xc0P\xd6@\xe3^\xed\xf7\xb9@\xa5\xa1\xce\x03\xee\x8a\x04,\x02\xf3\x17\xf6g\xe5\xca\x13>\x92{\x1a\x1d\x0f\x1c\x12\xbeR5\xcf\xdfw\xbc\x16\xe4@C\x12\x88\xde\xd2S\xac\xaeN\x15\x9cf\xa7I.<\x9d\xf2\xaf`\x98\xfdHMtF;\x98\xd7ph\xb55\x8c:\xa5p*\x10\x138\xdd\xae\x0c\xcdg\xd0\x8fs\x81\xa3\xc0\xb1\xb6\xfe\x1cS\x03\x1a\x891\xe0X\x1dYD\x82\x89Pl\xb8q\xff\x9b \xd9e\x1eW.\x91\xb1\x87/\x8b\xde\xd1\xc5\xaa\x80z\xb5q\x84\x10<\xa3\xd3\xf9a\xe9N\x12\xd06P\xc4\xd1B\x8fc\xe1Y\x17\x08\xc3\x0b\x16G\x05yhq\xa5\xc1\x12\xa48\xf0\xeft\xd9\x17\x145\x97S\x02\xcbW2\xc5\x82\xe5\x9d\x99\xb7\xa4\x90\x9d\x0fs\xe9\xb3\xac\x89\xa4\x08\xb6WD\x977\xde\x8a\xff,\x9e\xc9F>2\xb8\xd2\xa6\x84\xd2\x8c\x85\x0em\x90A\xd0\xf3j\r2S\x1b\xd2t\x06@\x1d\xde6\xff0X\x13\xcdy|\xd5\xc0\x1a\xae\x04\xa1\x8c\x19\xc2\x97\xd4\xe2\xd6"\xf2W\x02s\xc5\xf6\x94w\xb1|r\xc31\xb5\x97\x800\xed#\xd4\x1d\xb5\\\xc71\xbf_\x95\xe2t\xf3\xa4DC\x04\xa4P:\x12\xfa\xfb\x95\\\xfa\x8f\x86I\xfb\x17\x85\xe8\xde=$\xd1\x15\x0b$[E}\xc2\xdb\x98V\xbc\xb6\xc8\xd1D2\'\x0e\xa6\x9a\xf9\x9e\xdc\x0f\xb58\x90L\xbaN\x8e\x97\x12?\r\xbe2\x90\xa7\x92\x15j\xc0\xf1\x04\x12\xcf\x08?M\xf0~G\x84\xc3\xe5+l\t\x8c[M\x9d\xce6,x\x923q\xcf\xcfy@\x13\xce\xbc\xcc\x7fX\xfc\x0b\xbb\xbc\xd4*p\xc0\x04\xcf\xbb\xef\xdc\x15\xd9\x80\xc6\x8e\x9f/DV_\x1a\t\x08\x938\xbe\xad<\xcae\x16jU\xc0#\x038x\x83\xe9V\x1d\xe6\xc9\tB\x8cU%Yd\xb2S\x08\xbb^\x8e\t6\xe1/\x87\xaa,*L\xf7T\x14\x82\xe3_)\xa4\x94\x91\xa8\x81\x8f$\x89\xc5EJ\xe9\x94"y\xf1\xf69\xa9\x82\x89\xd6}=\xde\x01\xfd\x97iF\xd3\xe0\xa8.\x08J\xfb\x7fer\xf8\xc7=\x0cJ\xbc\\\xb9|\x89\x912 \x9a\xcb\xc6c\xd4\x1d\x8cU\xdd\x9b\x9f\xdd.\n\xa3\xe7[]&wG\x06h\xec\x19}\xf4\xc2\xe3?#\x14\x922u\xaa\x1b\xcf\xa0{\x85`\xac\xdc\x15\x0b\xcb\x99r\xdd\xeawMx\xfb\xb9\x92\x11\xf8\x83\x87\xb4\xd8\xaa\x16y\x17\x81\x00\xc4\xe0\xba\x0b\xc0\x026\xb2\xa8U\t\xc3\x87.A\xcf\xa2+\x01\x84\x93\xaf\x9d(\xe0AG\x9b\x11\xf6X\x03\xc75\xf7\xa2\xaf\xfe\x910Dz\xe9\xcaT\xf5x\xd5y\xf4\xff\xbb\xae\r\xeb\xe8\x86\xb2\xbd.\x93v&\xe9\xbd\x02M\xaeN\x9b/\xbd\xf9%\xfap(\xca\xd0I\xb0\x1aI@08\xe1\xe4\x98\x9b,f\xf1\xbd\x0brn\xb6p\x1b\xb2\x0cp\x80\xbd?o\xb9^O\xba\xa4\xccl\x1c\xf1\x84\xd2JpU\x7fL\x9e\xb5\x00J\xbf\xa5(G\xf3\xba\xec\xb7$x>_zXS\xc7\xbeP\xd1\xf8\xeaW\xc2\xa2\xb204M\x19\x15\xbb\xdc\xbft\x7fG F~\xe3\xdaW\xa2Mz\xa0#\xec4F\x83\xca\xe1\x92i\x02\x1b\x08?\xfb3\xc9\xdcDlA\x08\xe9\x7f\xc9I\x80h\xa7\xa9W\xc41\xcb\xd9\xd0,\xba\x18\xc2\x87\x18\n\xc7)\x88\xc5\xa5o\x01T\xf5\xfb\xb1\x0e\xf2\x8d\xfa\n\xf4\xdc\x91h>\xaf\xc0\x94\x88\xa5q\xa3R\x0ee\xcc\xfd\x17\xa8\xd2`\x97\x1f\xa4\x05!\xce\xdd\xd2\xd7\xe1\x92x\xeb\xd4\xcf\xf0\x1ci\xbc\xd8\xba\x8f\x99\xcd\x8d\xf2\x18\xce\xd8\x90\xa1<\xc0R0\xc0\x0b\x9b\x15Ndn\xd2\x06\xae\xe6\x95\xebH\x81e\xf7y\xdb\xd5\x00fF\xc0$NQ\xb8\xffF\xcelRF\x18W\x843\xc9\xb6v\xe6\xdc\x8fln\x9d\xa3\xa7\xf0\x83\x07\xf11@1\x85\x84\x92\x880,\x90g\xd7\xeco0\'\xfd3\x91\xe5s\xd3\xc9k\xd5J\xa6\x03\x9f~\xa1\xfb\xba\xb9S\xa9Mp\x9cz"\xa3\xaeO\x16\x9ep\xe7\x08\xc3\xbb\xbf\xd5\x85\xa3\x14K\x97l\xf8,\x08{N\x07\n\xd8\xf7\xb1Z\x87\xa8\x8b\xe0o\xcc-\xfbjr(\xf4I\x17\xea\xb5x:\x8e\x90\xc8\x82\xe6ip\x8e[ygL(}@\x1dr,\xb9\xd4\x81\xdaM\x86E"\xae\xa9\x16\x95{eZ\xb8\xf2~\xc0\x04\xe8o\x13\x06\xf4\xc1\xb1\xab\x96~\x05\xd7K\xa4F\xa2\xca\xa4\x19gf\xb1\xba\xb4\x9f\r\x0b\xeea\x87\xc3\xc0e;{&f\xc7\x9d\xe1\xeb[\xea\xb3\xeeQ\x8e\xf9g\xa2\xd4*\x88@\r4"\xc0\xdc\xaa\xe7\x80\xb9\xee i\xa3\xae\xecI1\x9dJ/\x842B\xcdI\x01\xe5&\x1cN\xee\x1b\x16)\xd6\xd5\x14\xb3\xa8\x19\xfeVP:\xfe\x0b\x0c_\xc9\xbb\xc2\x8ai\x919\x0f\x7f\xad\x94H\x1e\xd8\xd2\x99\x8ds\xa7\xca\xd6\xddt\xfcu\x1b\x1e\xb4c,\x85\xad\xce\xdc/\xce_x7\xda\x8f\xcf\x14x\xbe\xf8J\x19*,W!\xff\xf9PuF."]p\xacx\xb0\xa4u!\xb9\xd4\xf2\xca/\xdb\x80\xae\xd3j\x8aw\x06k\x0b\x7fa\xfd\x89+x\xf4\xfd \xa9\xb8\xe8\xd2+~\xab\xb6\x8a\xe3\xc0\x06\xc3)\xf4\xb1\x8a\x8d;w5_\x1bG\xd3i\x9b5M\xca\xd9eS>\xdfM\xdd\x8aqy\x0f~\xac\x90\x9d\ng\x915\xf0d\x9e\xf9\xc6\x1fp\xf9\x92J\xe4(\x91)\xb3\xef\x06\x13\x8a0\x15\x9dK8\xf5&\x16\xd9?\x89HQ\xcb\xe4\x9c^\x15d\x99\xa2\xb9m\xcc\xac`\xa6(\x99\xe6\xcb\xa3\xa8\x11\xa8\xbb&\x9e\xba\xd6\t\xb1c`\'/L\xa3\x19\x99F\x0e%2\x0c\xbf4\x12\xa7\xbc\x9a\x06\x80\x89\xfc^\x12\xef\xc2\x80q\x88\n\xca\x9d\x90/?\xab\xabe\xc1\xad\xd7\xb6e\xcf\x8eue\x0b[\xe5\xf8Q\xee\xb9\xb3\x994mm\rc6|y\xd0\xe0%\xc6\xd8\xc0\n\xed\xe5\xe1\xc3Ls\x05^OVc\x86i\xed|j"\xf8\xda \xd1\xe4\x9e\x92\xa6\xb4%q\xbb\xfdyH\xc4\xb3L\t\x99\x03\xf9\xd7\x15\x8eVd\xc7\xf57\xea};\xed\x8d\xcd\n\x83\xfe\xcb"\xe7\xe3\x18\x0c\xbc=\xf9]\x81\x97+\xd8\xd7\xbcXj\x1d2\xa4%\xe9\xe2\xcaO\x7f"\xc2\xcb\xcf\x90\xbc.\xe6@\x9e}\xed\xd4\x85\xf2=w\xd4\xea\xcf\x10C\xe8\x13~\xd9\xcd\xe0\xc8s\xe8<=\x8b\xa8\xfe\x89vd\x08\x939\x02\xe4 +O\xdd\x1e\x18\xdc)\xda\xeb{\xf5\xa6[\xcf\xd7V\x9b\x80\xaf\xbf\xbc\x0e\x05\x98:\xdf\xf3\x9f\xe7\xe1\xed\xb4e\x81\xe1\xb2Oh\xe8\xd6\xa52\xd9q\xda\xa7\x8a\\\xda)@JiI\x17\x8bI\xfa@\xcf\xb9\xb0\x07\xfa\xb0\xeb\x00SS\xa6?Y+\xad\xe9Z\x04&\xf7\xac1\xca[\xcd@7\xdf&\xe1\xa4\xce4\xeb\xcc_\xa1\xb1c\x1a\xb7$1u\xc3{1\xc2\xbaU8`<\xda\x95\xe5\'\xb0\xcf\xa4Pi\xd4\xcc@\x88\x91\'n\x91naG\x97\x8f[=\x11\t1\x17\xaf\xbcz\xb2M\x0e\x95d\xd7\xd9\x8a\xb9Xi\xc3\xe7o\x7fa#o\'\xdf\x01\xf4\xcb\x91\xd0\xa9\x8c\x11s\x80\xd4\xc8\xd2_\x17\xa5\x93\xbf\x0c\x0e\xa7{$\xf8K\x92"\xebo\x0bP\xf4\x16\xc4Ba\x8c\xfaHUgL\x87\xea\'\xb7J&\x92\x02\xad\xf2l+o\x1b\xe3\xfb6s\xd5\xb9A-\x9e\x99\x07@\xaf\xa7 \xa2\xff\xe2!4\xb5)\xc7&,\xdeu\x8d\xf7\xe1}\xc4NEM\xbd8i\x9d\x9e\xc79\xc3\xd5\x9d\x0c\xaf\xad\xc7\xaf\xb4\xea\xb9\xb4\x80\xc1\xe1\xd3\xe0\nw\xaa \xf1V\x07F^\xcb\xb9\xc6A\x92\xf7vM\x90\xd2%\xd6G\xd2\x8b\xbfYy4\x17\xe6\x0b\xd3\xeb\xff-! \xf6\xf7!\x05%Qx&\x06\xf6\xcfIJ\xcb\xc9\xbe*\x1a\x9ec\xdd\x1a\xda\x0b\x8a?\x18\xe3\xcfT!\xd0\x9e\xc1B\x18\xded\x05\xc7\xff(\x80\xa7S{\xac\x90\xff?\xc1\xf3\xe2\xbf\xb0\xbb\n0\xff\x1a>\xa3\xaf\xd3J\xaa\x19\x93\xc8ml7\xc0\xfa\xbb\xd7\x14\x1c\x85\xec\x994Omz)\n\x81\xd5\tf/K\x97[\xf23\xd2;~\x9e\xb9\xdfAo*Y\xd2\x9e\x85\x10\xd2rX\xab_\xf6Cem\x8a:r\xbb\xcfj4\xcb7\x92\x05\x9aI\x9c\xf0p\x07\xc0\x9cyP$\xb1<\n\xb0\x8c\xdaS\x946\x0e\x90\xe3\x90\\\xca\xee\xc6\xe3uL\n\xc4\x95\x0c\'\x90\x0e\xfe\xb1\x02\xba\x89\x9c\xef\x1b\xaf\xbe\xa1R5\xcc\xc7d\xd8S[\xb9\x88\n\x8bc]\xb3\xb9\x80\xd1\xc1\xe1=\x0f\x86\xf1uT\xb0\x1bC\xad\x01\xac\xca9\xef#\xff\x86\xa5\xe0\x91&\x9bd\x00\xb2\xaaP\xa8\x9b\x87\x80\xe7\xe9?Q\xa5\x83$ibr\xbc\xf7\xd8}\x9en\x0b\xb8L\xbe\xa4\xc1\x15\xedy\x08\xac0\xb0L\xeb\xa1O\xac\x12\xd3\xb5\xeeD\xc70kd,\xc475(\xb8`\xad+\xd5\x01\x1fBT\xae\xb7$\xcc=i/@&\x8dd\n\x8fQ\xc9\xa7\xae$\x04\x0b.w,|\xfc\xf8h\xb5i\xdfY\x8a\xae\x11\xe8\xa0\xae\xf2\xf4\xadW&\xca\x9be\x8e S\xaeI\xf6]\xad\xf4\x95\xc1I\r"94\xdfk\xbf#\xa2Y\xab\x90\xcd\xc8i\xda\x18\xc2\x9e\x84\xe2X\xdf~\x9dOE\x7fu"\x84\x00\x99\xc0\x8a<\xa0\xd84e\xbca\xdd\xedD\x88s\xcb4\x98g\x82:\xde\x01a"\x0fbe\x1c\x15\x8el\x02:\xb0\xd21\x0e<\x8e-\xd1\xef4\xcaO\x89T\x909\xb7\xf7H\xadLy\xd1\xa5\xfe\xdfo\'\xb6%\x8fWKN\x83r4\xc1\xc0l\xdf\xb3\xbfV\x0f$ty\xec8eBcR\xe6\xc8\xf4\xdd\x9f\x8b\xe0K\xa0\x9e\xe0g]f\x84\x08\x17\xf5)\xc1\x1d\x8f\x88W\x16\xf6!v2i\xd0\xf5\xfe\xf9\xf1\x04p\x8d|\xb9\xc5To4\xac\xc2i\xf5\x1a\x7f\xd4m\xeb\xcf<\xfd\xa97\xd3\xd1\x1e\x97e\x84\xfa\xc5\xb5\xcfm\xf7\xc7\xef\x1a\'J\xec2_\xb5z<\xb30\xbb;!\xaa%c\xe3"V\x11\xa2|\xa8\xe3\xaa\xc1\x04u\xf4\xe8\xa8\xc2\xa98A\xd5\xe6\x7f\x03\x95$\xcb\xdb*\xe3\x95\x7fH\x8f\xd9\x90\x8a#U\x00\x9ea"\x89$\xa8Y_\xef\x90\xd2\\\x0cu\xfc\xd3\x81r\xce\xd7I\xb7r\xce\x87C\x96\xd8!V\xb0\xa5\xe6\xed\xf30\x1b`\xb06\t\xbd0\x86\x81\xa5\xff\xf4\xaf%\x0eqr=\x10\x1f\xeb\xb0G\x1e5\xe0\x0b3+\x15\xd4\x8cm\x8b\r\xf0\xa8\x80e\x00r"\xfa\xdf\x94\xe2\\\xfc\r\xb6\x13\xb5-x\xa7o\xdd\xa4\n\x95\xd2\xb0\xabT\xb1)\xe7\x1c\x0b\xc4P\xc4\xe9\x18\xf0T\xc7\xc7\x12\xc3\xb8\xe2\x1b\x98\xbb\n\x7fO\x9a\xac\x16J\xc4\xe5\x99\x14\x0e{\xf3x$;\x99R`f\xfb/q\x927\xf5\xc4z\x8f&?7\x82\xc0G\x9aw\xccM\xbb\x83\xee\x03n\xa9Z\x07E\x84\xe0\xa3\xf3\x11\x83\xd8\x96\xfc\xf5\x1d\x90\x8e7\xf5\x9b-u\xf4L\xf7\x05m\xcdT\xf7\x93\xa6\x9e\x90\xce\x8c+8B\x16\xc7O\x18\x1a\x8f\xcbM\xff\xe8|;t#\x0c\t\x95\xb3B\xf1\xa9\xa9\x14^\x93K\x87E\x8bL\xfa\x1aV\xe5vP\xa9\x1a\x05\x7fUw\xa3|\x0b\x92\xfb\xe7>\x92\xe9\xdc\xc1p=\x83\xcb\x87\xe7\xdd\xc7\xc0\x93\x93\xfa0=\xe0\x1f|\xb2\xc8\xd4`y\xc4i\xcf\x8cO\r\x92\xe2Q\xcb$\xa7_\xbf\x92\x03\xbb\xb0/\xef4Cv\xa6)\x83\x86\xfe\xeavW\xc2\xd1v\x86\x9f\x95fP\xf7b\xe4\xa2\xe8\x02\x9a[\xd3\xa3\xf4\xbd\xed\x91\xecZe\x91F\xa4\xa4\xc3\xb3\xd3\xf9w\x9b\x8c\xe3\x90:\x88\x0fv\xcf\x83*\x15\x88\xc1\xf2\x91\x95\x93\xf1*\x00\xb5\xdbY\x87\x003D\xd5\t\xd7\xb4[\x18\x85\xa6B\xa1G+-\x9b\xdd\x99\xe2\x97\xba\xa6\xfb\x7f\xa9\xe0\x92^\xb4t\x83*)J\xa9\x11\x89T\x83`\xe8\xde\x10\xe6\x17\x08\\T\xf6F\xb6u\xc5\x83i\xd8r5\x12\xbfU\xf5\x7fW\xaaC\x984P\x11\xf5^\xd1\xa8\xf9>X\xa2\xcf$@F\xe8\x1bF\xa0/N\xb4S\x95\x1b\xff(\xc9_d\xff\xbc\x19u\xf4Q\xa7>U){\xc4\x11=r\x80\xa6\xae\xae[\xff\r=\x9b \xd9E\xb9|b\x14\x0e\x0c\xcb\xfdT\xb0Yua\xa6\x9d\xe9a\\\xf3\xd50\x1aJ\x9d\x17\xef\xbf\x13\xfa\xd8Cm\x8c\xc1\tq8\x88\x01K\x93\x81C\x8e(\x82\x88Mu\xe1\x8ax\xcc\x15X\x85\xb5\x13X\xc4\x92\x02\xf7X7\x8f\xcag\xd8\'\xfeJa\xaa61\x88\xab\xd8\xb8\x06\xd9\x01\xa3PI$\xa5P\x0er\xf8)ofP\xd2ef\xe9lW\xfda\x9fm\x9a\'\x93\xbc\xcb\xd5\x98\x1a^\xa59\x13\\\x85\xeao\xee$\xcay\x8bx\xef\xe1\x91\x0c\xfb\xd5\xbc\xee{\xe1&\'\xf0[1\xe0\xff5\xbe\n\x05\xaf\xcc\xdc\xc8\xcb\xd7\xc3-\xdb\xc8\xba Ud\xbc\xd4\x94\x19\xda2>\x8f\x1d# \xb7\xc6{t9\xd5\xa5_\xd5|\x01NZ\x8a\xad\x96`\xc0\xf5\x03\xa2AvZ\xdb\xad\xca\xd3\x1a\x87J\x80\x7f\xb1a\x84\xd0\xb8_\xfe\xd8\x83G\x92\x99\xafmMq\xefM\xcf\xce~\xf9\xd931\x8d\x8e\xdci\x87iz;\xfd\xc8\xb5\x08\x1cJ\xafov_\x1a\xfa\x80S\xb3\xdbn\xa7\xf3\xecn.\x1e\x17\xb9\\\xe8\xccdFPCM\xf1\xbaJ\x12&\xa5\xcb\xed\xf6\x9c\x16\xc1\x82\x08\xde\xbc\xfb\xb8\xa3\x90\xe5\xba\x98\xe2\r\x1b\xd0\xdf\x94|)\xed|\x85\x85e|\x90\x9c\xcc\xc0\xf0\x196\xe5#\xd1.\xe7\x8eP\xf7\x7f\x02\xd2 \xb6\xb2\xdc\x84\xaa\x1f\xacq\x12\xe5\xa4\xc0\x8b0\x12\'\x06X\x07\xaaz\xdaE\xf1@\xa0\x86A\xd7\x80\x9c4\xc0\xad\xec\x81\xf9\x06\xb7\xf1\x91hu\xd9\xe9\xc8\x83\x19Z\x0c\xc4uQ\t\xc5w\xd5\xa0\xf0I\xe9\xc0\xb0\x9cS\xce\xd3h\xd5FZ\xef\xac\xdbN\xe3^\x97\xa2\xab/\xc7)\x91\x87^\x07\x15\x8a\'\x8e\x9f)\xa0`\x93\xaeh%f\xa0\xb8Q\x98)uD\xbb\xaa;s\x93\xdat =\x86^\xcc\xc2\xb4\x0b\xf9\xd6\xd5\xfe\xbay\x14al>\x02\x89\xb5\x13\x1cR\xed\x89\x9b\xaa\xe5j`Y\n\xf7)R\xb2\xcbj\xfa\xbc7\x93\x02\xa9\x9fI\x92O\x1c\xbd\x12\xb6(\xc9^\xd9v\x14>HQ*P^\xea\x15It~G\xcd\x97\xecI\xe0\xf4\xe9\xc8(\xff\x1d\xb0\x93Y\x85Fl\xdc{\x10h\xff9\x80\x82\xd0\xab\xf9AGa\xd5\x86l>\xd7@$n\xb4\x04\x9ab\xab\x9ddN\xc7\x1c\xbfb\xa7\xe8\x88\x17\x1dY\xf15s\x8e\xee\xdf\x1f:99\x02\xbc_\xe5\x8d\xe8Z!\xb4W\x02S#\xcfv\xb6\\\xa0kdW\x02\x91\x87\xc4\xbc\xd9=\x8ci\x16|\xd6\xda\xf4\xaaV\xb3Z\xcb\xaao\xde\x9e\xc8\xd6\x0e\xfb\xc1\xf7d\xe88\xc4\x01r\x1a\x9d$\xc3\xeb\x07ru-P\x9c\xef\x1bf\x1e\xb7o\x9d-E\xde\x0c\x9c\xc2\\\xdf\xf0%\x97\xb1\x19\x9b\x00zP\xab\x82m\xed\x98\xf3\x11W\xbay\xc6\xe4\xf6\x82\x102\x0c\x82\x8f\x946\xec\xbf\x1cb\xd8\x060~F\x03\x9f\xcf\x98\x98\xda\x07\xca\x9b\xd8\xb9\x8f\x10\x1cY\x12\x19\xe6\xbf\xa3\x16Wh\xf5\xdb\xbe\xb3B\xdbLv\x04,\x9d\xa7\x88\x01\x94\x84\x91\xbdm\xf9\x9a\x80\xd3/\xc1oQ\xa09.\x07\xa1\xd3\x1f\xea\xe5\xcdJ\x06J\x7f\xf6\x03Kp&\xbah\x7f\x92\xac\x97\xd0O\xec\xe6\xf9\xb2\xb0e\x85\xae\xe8\xa0Q\\\x1d\x98\xe7\xe3\xff\x0f\x90z\xfeh\xfc\xf6#;\x80\x8d\x16\xad\xc2}y*v9\xe7\x83\xa2\xa1\xa2I1\x83B\xc6\xac\xe1\x8d\xc1(\x90*0s\xc7"\x8d\xe1\xd9\xa0\xact#\x1aCd\x1e\xb6\xf9\xee_\xe4uV\xc6a\xc8\xc6\x9c\xd5\x97\x97\x92\xb1R\x9f\xff\x8dlz\xf6\x9bNe\xd3\xf1\xaf\xd7{\x1c\xa2g\x00m\xca0\xca\xc1qx\xcd\x9bdJ,\x00\xf2\xdav\x83\x8f\xe6\xee\x8b\xce`\xa7\rL\xdd\xb6\x1b\x9c\r\xdd\xe0\xc3<\xd6\x99\xdd\xb1\xb1\x0e\x9c\x1e\x0biX\xc5\x85m~\x82S^;\x93\xb0s\xbea\xd7\xe35X\x19\xc6BI\xa0\x16\x87\x1e.\x87\xc4\x02a\xe1\x0e\xd6\x05q\xd9v\xce;I|\x1d\x97\xd4\xd7\xd5\xfb#\xc1s\xa4!\x87"\xd3A\xb1n\x15q\xaf\x95h\xb5\xa7\x82uqB\xec\xa3|T\xf1\xa3N\xd8\x07KO\x88\xf1\x11\x8b*\x96\xd78\xaa+ \tw\xac\xe6\x8f\xd7M\xdePK\x9e\xd2\xc5\x82\xe9m\x08-`\x16\xcc\xcb\xca\x1e|\x15\xb2`\xd42\xbfy~\xd2\xba\xf1\x94\xb1\xe6\xc3\x03s\xcf\x8a\xa1\x17\xc5\xa7\x85\x0f|Q)`\xc3\xb9K\x86%\x8a&S9\xe1\xa9\xaa\x1a\xefc\xca\xba\xd6\xf5\xe0k\n\xfdG\xf1t\xe6O\xe7\xeb;N\xdaj=\xbd:\xf7P @\xa9\xb9\x86D.\xc6L\x89\xc2\x17!\xca\x97\xe7CJ8\xceU\x1a\x92e\xb9\xf1\x19h\x1d\xab\xeaW\x06\xfc\x90\x0c\xb4\xffm\x06\x92[f\x8e\x19\x88\xe9\x00i\x935\xb4\xd5J\xea\xae\x10\xca\xffFn\x97\x89\x14j\x02\xf0d\xees\xa0$\x13\xa2\xe7W\x1d\x02\xdd \xfd\x06\x9fD\xf3\x18\xc66\x05\x9a\x84L3\xb1\xa9\x06\xa6\x1a\x9a\xf1g\x81q\x9c\x86j\x03L\xd4m\x94\xd4\xdd\xee\x17\x88\t\xa0\xd3/>vR\x14z\xa8\xbc\xfdj\x10\x84\x10\x84\xcf\xea\xddV&\x04\xd9\x9d\x1d\x10\xbc\x1b\x08~<\xa8\x82\x97)u\x9f\xb0\xa3,\x9f\x1fn\x9a*5\xda>\x11I\xfcq>\xa4\xf3\xc5j\x1f\xc0f\xb5\xb1Ug\x9bU\xfb\x8f@-\x95\xcdo\xff\xbc\x05\x82b\xe1\xce/\x82\x1f\x91m\xab\xa0\xb5\xee\xf6\x90\x9d\xb4\xbe\x9f;\xf3Cy\xdb\x1fT\xe6q\x08o0\xaa\xc7D\xca\xfe\x99\xd9<\xf8\x15\xf8\xe5S\x07^[`\xed\x94\xfb\xdf\x1cuV=\xea\tM\x11\xedtJ\x10\'\xea\x01\xd8\x84\x95&\xaa\x9e\x14ss\xf3\xa8m?q4\x89\x86=\x85w4{\\\xe0<\xaa"=wY\xf7xu[\xc8\xb3P\xc5\xeb\xfb\xf2\'\xcc:1\x9e*\xf8\xf9\xc8\x1e\xf5\x7f\x15\x03\xcf0\xb4b\xbe!\xfe!a\xf9\xcc,$7\xd6b\xc3\x0f\x035\xf7\x17\xbe5\xce\x94\x9f\xe7\xf0\xdf(\xdb\xe6\x9b\xffdZ\xc6\xdf]\xd3\n\x8dK\xdf\xbc\xa0f\xbe|;]%\xe9\x80\xf2)\x8d\x05\x7f\xbd\xb3\xec\xa3b\x9b?\xf2\xc2m\xf20\x18\x8a\x0f\xf6\x04k\xc3\xedf\xd3s4\xa0\x8b\xd6\xb0zR\xa2#uLz\xc5\xf7F\x87o\x91K *\xf70\xcbe\x1d\xed\x99h\x0e\x8c\xfd\xbd\xb87\x10@\x0f\x07&\xfe\xf2\x88\xee\xc5\xf9\xb57\\\xeb\x85\xaevi\x99\xab\x7f\xc4\x87\xc8\x19\x99\xaa\x17oD\xc0>\xf0\xfb%xU\x16\xfaM\xb2U\xe6\x1cq\xdf\x91\xf1h\xea,a%x\x99u\x10w\xdaE\xf9H\x87\xd3\xdes\xb6\x06\xb0r\xf8\x1a\xa3\xac\xbe\x94\x88\xe6\xd6\x8f\x7f\n\xc9\xc3X\xce\xf4)\xda\x80\xdc\x10/\xdd\xa9S\x1eG\x195$\xd1\x0cN\x90\xf1\x96\xf8\xa5\x02S\x89\xde\x95\xff\x9b\xb1\xabH\xef6\xc3\x00\xba\x02I\xc1\x02\xb6\x08\xceZ\x1b\xefm\x0e\xad\x9c>\xb1)H&\xda\x08\xf6\xa7zIR\xe43@\xae<\xa9Cp\x03\xaf\xf3\xa0\xee\x99\x89/\xd8\xf2\xeb\x0e\xa5\x11W\x97\x90\x12\xca\x89\x14\x8d\xfa\x15H\xbfn\x90Y\xdd\xbbj\xa8vWl\x9a\xe2\xe0\xa6\xbe\xab\xcc\x96\x9e\x16\x9d\x194\xd9"d@(\xd3dk1s\xb1\x07\x08A\x0f\xa0\x01(X\xcb\x15\xf0X\xbf\xe0\xcf\xc9\xfdA\xb9\x120%\x16W\x0b\xa9\xe1t\xd6Z\xd1H&\x83\xceG\xdf\x1dN\xd4h\x0cT\x99\xbc\x03\x88\\\xab%\x8b\x97\xe8\xa2ad|\xaa\xb9\xac\xf3l\xb5\xads\r\xe7\x92x\x86\x8d/\xca\x08\x08\xdcjR\xfc<\x1f\x81\xa8\xe5\x02h\x19\xb4\x8c\x1f\x03\x0f)\x9e\x1eQw\x8e^8\xe4Gx\xce\xeb\x12\x16p\xf4\x98{\xa3C\x97\x9c\x07\xdb\x14\xfd\x12\x13\tNK[\x82\xa8\x9b\xd4\x8d,6\xabNN\x1bKjG\xc4\xd9(\x90\xe0[d\xa5jn\x8f\xad\xd0)\xb0;O\xc0-H\xcb\xa1>Q]\xfd\x1e\xce\xe8\x1f\xc8G7\x88P\xef\x02\x81e#\x9fr\xb1_\x033\xfatw\xfd1\xf0@\xfc7\xac6s/\x9emx\xe4\xbb=^AZ{\xf9\xd3/w\xbc\xb9\xdf\x97\xf9\xa51c]`\xb3\xdf\x92\xe6\xf3\xfd\xf0m\xac\x9f)f\x96MaB{\xff\xed\nI!\x9b\x7f\xaa(\xbe\r\xae\xb1\xc3y@Q()!\xcd\re\x07\x8cM\xf0+\x94\xef6\xeb\x19\xbdB\xd8\x9c\xd0\x19\xe7x9\x8a*{\xbd\xaf\xd6\x0bMK\x85\xf6\xd1qI\xb8ky\x9d\xf3[\x05L\x9fl\x84kZ\xfc\x05\xae/:pz\xcfg\xbc!\xf2\x0e8A\x90\xa5\xafi\xc3M:3d9\x8e\xf0\x86j\xa7\x13\xd2\xb1\xec"/v\x0e`\xb1\xf6k\n\xbf\xdc\x1e\xb2\x07\x96\xeeDE\xe0&\xef\x93-K[<\xc4>\xb04\x84\x1e\xb2\xc9\x1dR9-\t\xf8\xa7\x8e3A\xcb2\xee\xd9\x0b\xf6.\x9a\xb5\x9a\xfc\x1dvc8\xa7W\x91\xea~*8\nXD2\xb0k\xaf\x96\x8c}1\xed\x10\xcdv^@\x9b\x0c?*k\x9dK\x1c\xd2#,\x1e\x88\xb6P\xf9\x9eZ\xcf\xd1"bh\xa9R\x93]\xb1\x03(\x1b%\xbb_\xc1\xa5\xcf\x0b*\xde\xcau\x84\xe9$V\xa4\x8b:`\x9e\xe5\xe2\x838!\x14\xc0\xa4\xbe\xafd\xd1\xf8\xd8N.\xc5\xc6K;\xc7\x19\'\xd4q\x8f\xc0\xad\x95~\xaaP\xab\x9e\x95t\x01\x11|\x1e#F\x1a\xa5\x90}\xca\xd4\x19\x1e\x1f\xb7\x8clHs\x17\xff\xf1\x9dr>!\x9f\xad\xc2\x8bRiM\x0c\xfd6\x16~\xe4\x96\x17_Z~j6\x1b\x99^B\x1a=R;\xb4(5\xf7sF\xe9\xb2\xb4\x94"u\x05\xbc\x8c\x10\x07@~J\x9e\x18\xe7\xbe\\\x8b\xa3\x99\xaf\xbf8\xb0\x7f\xdb\xd4\xee\x9c\xe7\x1e\x15\xf3\xd1\xa5d\xbb\xd3\x85\rUC/;#\x08\xa6\xa7\xdf\xdcj\x95\x0bd/\x04\xbd\xdf\xd9-\xde\xa7\xd0\x00\x06(J\xde\t\x02\x88\xdc\x8e\x00*\x1b\xf7<\xfc\x0fL:\xce\xfd\x1cY5\x1e\xcf\'\x91\xa4\x16.s\xdd\xe3\x8d\xd0\xe7z\xd6\x00\x1e\x00\x058Z`\xcb\x9f>\xef\xf3\xe7(\x04\x80o\xd3 \xf52\xb9\xe0\xebg@\xa1\xe5o\x07\n\xa7\x8d:\xda\xa5\xc2\x08=\xfd\xb1\x05\xeds\x1d(\x81\xc0\xb8}\'\xd1\xc7\x01^\x13\x1b-\xbbLF\xa9iX\xbe\xdd\x1d\x11@\xc3W;\r\xfe\x19\xe9\xe2\t\xa6\x8e%\xff\xe3\xb7J\x9b%\xfc\x88B\xba3\x7f\xc6\x97Oj/\xee\x0f\xea,\xb7\xad\xa5$\x903\xeb\xdeN\x13\x7fGc\xcfp\x00\xc9M\x0f<\xaa\xa5J\xe1\xf8\xe2\xa1\\X\x85\x00 \xff\xfe\xbe\x07\xf2/P\nE\xc1jA\x18R\xbb\xbe\xc2\xf9\xe6\x97|8\xef\x8f\x96,\x9b\x86e\x8cS\xfe\xb0\x06>V\x11\xc2\x89\'\x1a6\xf8^\xc7\xa4\xcd\xdcQ\xa7>\x9acE\x8f\xdc\xc3l\xae\xaf\xa3\x0eyc&\xa9\x83\xbd;\xc6\x86\xcbH\xa6\xd0\x13\x07H\x93H\xf4\xf5\xe7\xde\x89\x90\xe0.\xdc\xf1%\xab\x9d\x11v\xaeU\xf7u\xd9\x1b}&7\xad\xfd\xa2\x05\xd6\xff4*\xa1Wvo%\xa8\xfat?A\xdci\t\xe7\x17\xf7\xe9\x87\x0c\xff\xf4\xc7\x98\x9b\xb2\xb3\xf9\xfa\x1eZ\x86\x92\xc9\x01iQ\x91\'\xdfe\xf3cY\x8d|t\x08\xb2h\xe1\xf4O\x16\x98\x03\x87\xb0\x00@\xb5GL\xc7\x15w\xcb\xe649\x94\xd1G\xd7\xc2\xd9\xca\xeb\x02\x85q|D\x905AC q\x14^\xa3\x89QZc\xdb\xb1]^d\'\x91\x03\x10\xb3\x1f\x15\xf7\xa17\x0f|\x18F5\x85\x04R\xc7r\xf8\xc7p*\x92\xb8\xda7\xb7\x1b\xf3H\x12\xda;p5/\xb9\x1d\xf7\x9f\x16B>7H\x83^\xe7\x9db\x06ZN\x97\xb9jH9l\xb7\x19\xe1\x81_\x98H\x1eK\x0b\xa2\x1d\xa3\x8d\xc7r?o$\xbf6\xd0\r\xd6\xe5\x0f\xeb\xcb\xecVz\xab\xcf\x9c\xa8\xd4\xc6\xfdw"`\x95\xa4f\xf9\xb8Z\xedu\xe6uh2o\x1c\xd0\xc6&\xf0\x8a\x1f\x08\xf9\x0e\xce4\xa4\x98Z\x897\xed\xb2\x90yl\xa7\x00_5\xb6u\x99\x87\xb5pZ\xdd\xe4/\x8a\xc1\xc97L5\x1c\x02\xb9\xb3\x98/\xf7q\x99\xa2\x17\x8dB\xban\xf1\x90vj\xfc\x19\xc5cm\xf1U\xef\xd5u\x93\x04<\xbe\xed\xf7R\x14\xe9\xb4\x89\xb9\xe7G\rv\xde\x02\\\xc4\x02T\x1f\x9fL\xc4_|\x06\xb8m(\xc8\xa0#\xa0\xcc\x94\xe5\x92\xfaK\xa7\x90\x8f\xb8\xcdS\x0f-G\x92L\x9a\xcd\x90\xda\xaf\xd5\x08%k\x7f\xa3\xb5\x85\xf9y1%\x83\xf3B\xf4\xfen\xb6Z\x8es\xaf\x826\xf3\x9cnc\\c}\xb5m\xeb\x1e\xd2\x1c0\x065\x0e=\xd8\xd9"\x18Y\x15N\xdc\xbaK>b\xcc\x0f\xca\xa2\x8a|\x8a\xa6\xc5\x97\xc4\xa4\xb7\x91o\x1e\xf6\xd7\x07\x0b\xcbv\xc1\xc3,\xd6e@\xb8\t\xbeR\xd0\xd4\xfb\x7f\xee\x92\x1c}IG\xcd\xeeb\xd5\xda\xba\x1ax\x81@*\x8f;=\xee\xbe\xec\x88\x87\xf9\x93w\xb7S\xdfZ\x02\xdd0\x9f\xa12>\xac\xcaS\xb6\xcb\xff\xcbWz"22\x95\x89Z\xd3]L\x8c\xaag\n&\x82j$V\x96\xb6\xa2=\xca\n\xb0\xfa\x7f\xf9"\xf8\x97{\xab\x93]4\xf5\xeb\x9b\xf3\xf79>\xd1g\xcc;\xddD\xd6\x9f\n\xf0R\xaf\xb2\xdb7\x84\xc4\xc9\xb0\xf9\x9ef\xebDN\x88\xd0L\xa5&\xce\xa0\xdf\xberD\'=f$r\x87\x96\xb7B\x90"\x8e)\xec08\x1aEm\xf6V\xf4\x05@0\x03V\xcdL5\xb9\xd0\x1ftdouD\x8by\x03\xf7\x04\x0c`\xeam\xfa\xec\xb3T\xdf\xf6~"1\x0c\x84e\x9d/\x14A\xf8D\x16\xa9\xfePt\x90\xfa\xb2_>\x90\x0fS\x8b&-\x83\x1d,\xa9\x8cE0\xbe\xfb.n%\xdf\x88\xa0Nv\'\xa3u\xb63\x02\x12k\xe6Fq\xd7\xcc\xb1\x97\x88\xee\xda\x0f\xad\x11\xe2An\xc4#\xcb9\x1d\xf4*\xad\xa1\xa3%v\xa2\x15\xd3\x8e\x9e;/E\xfc~\xa5&\xad\xc8/\xc5\xff\xa9$)\x1c\xe6i.C\xa9\x9b\x88\x80\xa6\x9c\xd2\xe1;\xfc\xb8\xb9\xae\x87\xcd\x81\xb6r,\xb5\xb3\xbc\xfb\xcb\x99\x07\x8a1\x1f\x05\x13\x17\xdc\x91C\x9d\x19:vZ\xf2\xc6\'\n\x1fu\xb1\xc7\x90\x87\x9aP\xda\xfe\\g\x18\xc2\x99*@\x10HP\xdb:\x84\xa4\x01\xab0\xd0\x8c>\xd6\xad\xa2j\xe8\xf0\x99\x90#v\x02B$\xb65}P\xab\x0e\xfc\xbcV\xcc\xaf\x04DU\xee\xee\xff\xa54Jm\x8d&\x1cl\x02x\xebi~\xc9\xc5O\x8e\x14\x8f\xbb\xdc\x1bf=\xaf\xc5\x9c\xfa?\x10\x80\xbbRInLb\x8a\xe4\x93\xf4zKE\xc9\xcd\xb5\x02\xc7\xaf(?(\xeb\x8eAV\xdc\xb6\xf3\xa5F6U\xb2\xc9G\xee\xd8\x80\x8a\x07S\x17\xe0\t\xbd\xc8\xfb*K\x83z\xe9j*C\xc3\xce\xe7cu\xb8\xc2Y`\xa1\x880?a"\x1a\xdbV/I\xdc>\xf0\xab\xd4\xaa\xfa\xc9\xf2\x96\xcc\x13\x0b,\x01\xb7\xed\xe3wu\x10\xfe\xce\xd3W\xc2\x02\x1e"\xc5Tg\xa0`\xbbc\xa5C(\xca@\x89\xfdgP\x90\x1c\xb7\x0c\xe7}\x83t*\xf9\n:\x8d\xf8(\xea\xf0\x9f\x04\xf1\xe2\xd9\xb7m\xc5_\x03f\xa5\xfa}\xf2\xe32Ko\xe2\x8c\x0b2\xfe\xe30fA-\x06\x1cK1\xb0k\x93\xe4\xf82\x03x+GHb\xd3q$\xe8^\xf1\x87;c\xdb\xb9=#z\r#8t\x8aJC)\xb9\'W\x0f\nrY+\x03^|\xc98\x84V\xfb\xeeb\x9d\x0f\x0f\xda\x81\r&\x00c\x86w\xbajg\xec\xa1HkF\x84^\' q+u9G{e\xc1/\xf8\xb6\xa2\x82hg\xfc\xf3\x16[\xc0\xd4\x18\xb2\xc8t\xf7\xb93vVZ\x9cC,X\xfdJ"%ve\x08U_\xf7}$z;\xb2\x1b6[4\xb3\x82\xbe\xf3\xcd\xf00\xefA\xcc\xc3\xf9>\xa1\x88WY3\x1f\xa0 \xfc\x90O[\x97\xc0U{\x1d\xe4G\x92\xc9\xdb\xbdf\x98<\xcc\x88\xb9p]\x12\x9e\xa0\xccc\xb9\x9fu\x12\xdb(\xa2t\xf6V\x19\xc9\xb4E\xe5\x9c\x94\xa0N\x1b\xd1TM\xf0\xa3\xb8\x90\x9f\xc0\x123\x8e\x05\xb0\x95\xb5\x91\x07\x8c\t\xe3\xd2\xa12\x7f\x02\x0f&&\x00\xc5g\xdeRM\xf1w\xdbv%A2\xdd\xeaR.N\xfb\t\xda\x1b\x0f\x87$@\xa3\x15E\xa3\x88\xe3Az\xcd`)\xe5\xdd\xd7!\xef\xcdZ;\xdc\xe7\xd6\x80_\xed \xf2z\xf7G\xccX\\G\x19\x0c2bX&\xc3z\x84\xa8\x9c=]v\xe5\xa5\xd7X\xb7\x91\x06\xbf\xa0O\xbc\xee\xed\xe2\xda~\xab\x90\x99\x9co\xac$\x88\x10\xd3\xfb\x9b%\xf4\xbbbkX\xe0\x01,\x19\xb5\x95\x14/#\x08\x9c\xb94A\xd0\xbd\x00\'\x0b\x13\x0c\x1ebu&\xe6@.\xfc.\xe2\x0f]\x1e28\x17:\xe5\x03>#]J\xbb\xaa\x0f\xd3\x1d\xc5\x0e\xf4\xac\xfa\xe3k\xd1\xc0k\xdf/\x08\xa3\xce\x04\xc1\x80\x9c\x1c\x02P\x13\xe4*O\xd7\x14\x04\xacp){nPE\xce\\z\xc4\xe1K^\xedN\xa0\x00\xae\xdaA#\xe6p\xe5\xf8z\xdc\xd9\x9a\x86\x1a\xa3\x03\xd1\xb4\x10m\x89\x94q\xddWA\x9d\x9er\x81\x94\xd3\xc2\x8c\x85=X\xf9b\x18\xdeXWS\xec\xcf\x01by\xf02k\xdf\xfei\x01h\x99\xaf\xe1\x865z\x13\x89\xee.\x1d\x000b\xa4\xa5\xd0\x18\x80gF8\xf1\x0c\xf4\xcf\x11p\x919q?\xeb\xd0b\x1b\xe8\xaf\x9e9\xc7F\xa1\xa4\xa3}(k\x95\xad[\xc7\xfc\xf5n\xc1\xec.\x9eQ\x0bn\xafu\xa56\x943\x15tr\xe6\x05\x11\xc1*rd\xcf)\xaf\xbc|\x99q\xd7\xd1a\x04\x8e\x1d&[\xe9\xdfv\x96\x94B\xd8\x04\xc7He\x05r6\xb5\xdf`"\xb1\xf9<\xde\x0c\xcd\xd8N=\xcd N\xfa\x10\x87D3\xf7\xe1qo\xef\x9f\xd3\x06&\xb1\xdc\x0c\x14ho\x13\xd8\xec#^FZ\x85p\xc7\xc3\r\x87\x12\t\xce\x7f\xd0\xa5#\x1f\xb2\xc0I>\xf3n\x9d\xd4\xac\xd2\x82P4,z\xbe\xdd\xedJ\xb9\xd6\x9cx\xb7\xa2\x16\xe0\xb3w@\xb5\xe1y\xe2H\x8c\\ e>\xd3\xb1lL\x97\xde\x96\xe3\xed\xd9)E\xa5t\xab_\x1f(\xc7:\xe7R\xf1\xee\xfe\xaa\xfeLp\xe7\xcf\x0c\xd0;\xb2\x9d\xba\x1f\xb1n\x14J\x81\xf6j\xcf\xca\xf7\xa89\xb3\xf6\x87\xbd\x89}\x9c\xea\xb5\xb8\xa5\xaf5\x86\x7fDR?6\x88c\xca\x05~\x8ciU\xeb\xea\x8eP\x19?/\xe2\xd6&P\xa64\xf6\xb4\xe74\xe6T\x02\xd6\xb7\x9d\xe4+\x92\xc0\xfd(y\xa5\\p\x18dB\x06\xa8\x16\x184\x88\xe27AD\xa7\x03\x13\nrd\xb9\xa5=\xb7up\xa6\x8d\xd2\xd5\xc6zi\x1f\xd4^\xdaf\xb7\x8a\xa8\xe8&2\xaaz\xbc\xa6\xd3\x97\x85\\SE\xb3\xb9Q](x\xd7\xaah\xcfY)a\xb6\x97R\x96%\xab\x97\x93\x81\xe5\x061\x1fJ\xad\x95;\xfem\xea>\x8a.!\xb5\x93\xea\xdbU\xd7\xb2;\xe5@\xb0\x08t\xef+\xca:\x0b\x00]\xfd\x16\xbd\x86Q<~\\4 \x87\x02\xba\xccf\xdb\xca_pi\xef\x16\xf3t\xac\xa6\x94A=\xd0\xb2}\xbbW\xe8N\x03\x0cS$\xfe9\x82\xb0@\xae\xf8>;\x03\xe3A\xa5\xd4\x8e\x85 R\xa3\xf9\xb4c}\x07c\xd8\x9aY\x1c\xd3\x8b\x17\x83\x8f\x99\x8a\x98w\xe4\x99Y^0\xed\x80~\xe3\x85[\xe6\x0c\xb8C\x8bCY\xc7}\x10\x08\xc9\xf0/\xf7\x80\x87R\xdb\xf5\xa9\xfb\x85\xa2\x95+\x7f^\xbe\x90\xd0\xa8=\x1b\xab\xb0\xb3t\x81m\xc0\xcaT\x0e0\xdf6\xba\x86\xb2h\xb3Jt\xe3\xc4a\xca9?\xb9\x8bz>\xb7.\xea\x8e\xf0JW\x10\xdf\x88\xf5e\xa9\'\xf1"\xcc\x94tsm\x13\x91\x06\xe1\xbc\x9d\xa9j\x84\xff\xa6X\xef\xeag\xc5_\xb8\x85\xce\xce$f\xd3\xab\xad\xce\xf0Y\xa70\x94\x1a\xde=\xff\x0b\x10\xbco\x13w\x8c\xd1^u\xabQ\xdf\x92\xa0DD\xc3\xe8\x05\xc81\xe7\x8e\xeb\x1d\xcc\xe3\xfd\x1e\xdd\xaf1\x85v\xdf\xd2a@\xe6\x92\x960\xf8\x7f\x8a\xe2T\x8f\xbd\xf5\xd3`2\xbf^\xc1T+\xdc\xb6A]\xfcz\xaa\x8a\xcc"\xddt\xf1\xd6t&\xc5]\x88\x11\x15+%\xce\xa7(\xc2\x84N\x8a\n;\xb1\rn\x10=O)\x9b\x1cxw\xaa\x8f\x89\x80m\x00\xf5\xaa!+\x9c\x83\x984\xd3(\xcfW\x81&\xa8\xa7#\xef\xe0j\x90oh\xebg\xd4y\xad\xc8\xc5\xa7^\xb6\xd0\x9e<\xf3C\xe5\x85\x1e\x01\x8epE\x1cz_`\xd1&\t\x98\xf2\x91\xac\x92&\xbd\xc1I\xd5\xd0\xfcw\'S\x9f\xa3\xbb\xd2\x96\x8a#\xb6\xa6\xa8\xcc\x1d\x1d\xfe\x0f\x86\x8a\xef\xa9\xb6\xac\xf1Y\x89\xb6B\x92\x01\xfcR\xa5wJ\xaf\xa0\x94\xff\xf2\xe5%#\x12r\x82\x05!r\xf2`\xa0\x04\xd8 0\x0c\xcdY\xba\x1aT\x1c\'\xb1\xf2\xd0d\xf0\x90\xf0v\x04\x05$b\x8062>R\x94\x99n\xae\xef\xb2*\xe2\xb2;&x\xc5\x07\'\x14\x03y\xba>\x03&H\xae-s+\xb3g\xb0}eOR\xf1\x82R0z\xb3\\U:V\x04 \xa9\x0c\xeb O\x1d\xb2\xa1`\x0ca\xe8\xc0\xafw\xbc\xf1B\x84\x83\x0c\xc2\xfe7\x9a\xcc\xc7\xdbE\xda\x0fFD)K\xcd\x14\xf8\x10j\x07zS\xa6\xa2mfq\xf2{\xc48\xb8\xc0oK\xa2\x1cM\n\xd4i\x87\x12\x1f\xe9Z\x8axs\\\x1a\xc2\xa2\x92\x1f\xfdR\xb8\x06\x13\xee|OZ\xfb\xe3A\xca\x1c]q#:\x04L\x1f\x9e\xf8\xbeqTr\xe9\x0e\xf1k\'$\x96d\xf6\xf4\xbf4\xe3y\xa9\x96\xbd\x95ME\xb5\xe7\x82\xd9c\xfa\x94\xc2L\x99\x05\xdc\x0c\xbf>\xca\x91\xe9\xf5\xd8S^\xc0?\x00\x92\xc8Z\xbe\x04@\x93o^\xb2ET2\xa5v\xd52u\xbfDk@3\xa5\xff@\x86n\x9b\xfeh\xd5\x97D\xd1\xe4\x1d') diff --git a/dist_obfuscated/build/lib/orisys/__init__.py b/dist_obfuscated/build/lib/orisys/__init__.py new file mode 100644 index 0000000..f34be36 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/__init__.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.768373 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00~\x02\x00\x00\x12\t\x04\x00\x12\xaa\x82i\x1d>\x02\x90i|\x16H\xd7\xed\x8e\x88\x00\x00\x00\x00\x00\x00\x00\x00\xe0$\xf1\xe0\x96\x7f\xad\xebdIP\x04\xd2\xf2L\x88lwh\xfb\xe6\xea5\xcd\x0f\x81\xa4\x8c\xd1a\xae\x80\x1c\x063\xbe*<2d\xa2\x9a+R\x1a\xdcL2\xd7\x83\xa5\xfc7R8\x1f\x19f\xa2\x9b\x17\xae\xf9\x881f\xd1\x85\x0b\x1a\x07Mz\xcb\x01o\x91\xa8\xe6<\xbc\xff\xca\xf7W\xd0].}^\xc2\x02\r\x9a\xdd\xe6\xa0\xc1\x8d8\xee\x1f{\xc1AE\xd0\xa5x\xce\xe5\x071YEN\xaf\xeak\xe9~\xd4K)\x07**\xf8#\xccoS\xa9\xeby\x07H\xe67B\xf3!\x88\xe3\x87^R\x1b\x03d\x19\xa4O\xedr\xe0\x05\r\xd8%\x97\xd4XE\x8c,\x90l\xa7 kBj\xf5\xf42\xc0\x1d=\xdb\x13\xbb^0@\xf3)\xb6\xc4\x84+N${\x82\xfc\xac3\x0f\x1b\xcfz\x9f\xaa\x98\xd9*\xcc\xb5\x84^!\x11[U(\xf6\x0c\xc5\xa5W\xe6]\xfa\xd8\x98\xf7\xd1\x1a\x81\'\x1a\x9b\x8c\xe6\x8fH\n\xc567c\xe5\x9d\x1avT\'\xd9"m\xfe\xe3o\xaa|\xdf%a\xcb\xcb\\\xaa\xe9OM\x965\x90\xb4n&\x86\x85\x9f0%,g\t\xb3|\xd5\xd2ip\xdf[}\xac\x93\xe3\xae0\xae\xad\x02\x9f\x8f\x1d\x12*xM?\xa1vU\x80\x91\xb3\x05\x8d#5\xa4\x0b\x00\\iw\xd9\xec\x9a<\xeb\xca\xa2\xb7\xcc\xcc\x03\x1a\xd5\xb6\xed\xc6\x80\x1f\xb0\xd8\xaa%\xb3\xa2\xf97AYB(\xd2^:/>1\xce)\xc1x\x90\x11I\x98\xc6\xfe\x978\xfa\xf0\x05+\x95\xd8\xda|\x93C8\xc8\xbc\xe24\x96\xe7*\x823\xbf\xfe\x94=\x86\xd4\xf5t\x1aR\xfd\x97\x1eM\x9a\xaf/\xbd\xc2\xfd\xbd\x9a\xdd\xefz\xab\x04\xf3h\xc6\xa5\xfe\x11\xe2\x80`<\x10b\xf8\xa2\xd2^=\xde\xaa\xb9\x8c\x164\xbb/U~<\xe3\xbfG\xc8\x1ev(\xd0\xd3F\x9e\x99\x1b|/\x99u\xdf\x12z\xcd\x07R\x92w*z\x11)\x03\xcf\xe1\xfd\xab]\xeb\nc\x84\xbc\xf5h\x1dM\x9b\xb5\x12v\x16\xf5\x86\x0b\xa4$sa\x15n\x90\xc2\x15"\x15\x08z \xfe\x00\xa3\')\xed\xa8f\x0c\x86J{\xa5>\xaaV\xcb}\x9c\x0f\xe7\xbcEX!\t\xd5\x1f\x0f\x1c\xb92\x9c\x07B#yn@\xf3C\xae\xca7\x0fPV\xe6\x9b)Q\x85\xd5\x1e\xea\'.?8\x92$\x9eH5\xad*:\x17QK\xba+d\xbd\x88p\x16j\xea\x90 It?b\xf9\x19q\xf8\x86\xff\x004\xf2\xfd\xe6\xe8\xc1\x1b\xad\x82\xb9CF\xfa\x9f\x01\x82\xf3\x84\xf5.oo\xb5\xda\x1b\xd8\x98*\xb7\xec\xa0&%\xfa\xc4\xab') diff --git a/dist_obfuscated/build/lib/orisys/nHHD.py b/dist_obfuscated/build/lib/orisys/nHHD.py new file mode 100644 index 0000000..2d494d6 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/nHHD.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.454402 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\n!\x00\x00\x12\t\x04\x00\xef*\xcb\xe5W+;\xaf\x7f\xb1\x17\xc3\xa4\x8f"m\x00\x00\x00\x00\x00\x00\x00\x00\x81K1u\xf1\x1ad\x01@\x16\xdc\xd6\xd4\x17\xe4\xb3\x01\xf4\x9f\xdf\xb3.\x03\x8f\xefw\x91q\xc2\xa3\xd2\x16\x89r\xfanz\xc1cEw\xb8\xa9\xdf\x8fJ5,(\xecxY\x19\x8b\xa6\xac\x9d9K6B4\x17;[\xc2\xd9\xd3\xad\x9d\xd6\rX\xa08|\xe4\xf8\xe7\x89\x19>X\xa9{\xa2m\x05+\x04\xd8\x069\x07E98\x04Vk,\xb2t\x82W\x0e\xa2|\xe5\x06c\xe4x?\xcf\x95\xa4\xac\xc3\xc4\xa7\x87Y\x94\xf1&\xd7\xee\x197\xaf_\'\xd8\xc5/S\xea\xfc\xd1\xd2\xd24;\xea?;-u\xfa\xdb\xff\x98%q u\xfe\x00\xc2\x85=\xe7i\xce\xdc\xc5\x1c>\xd6FBH-\xf2\x0f"\x03\x93\xba7\t\x10L\x1f[5\x12\x11O\xcbA\x02\xf5R\xa6 \x96/\x8f>\'\xb5-#\x1d\x17\x82\xcd\x90\x0c>pL\xa9\x17\x8a\xa6\x86d>\x80\xf8\xce\xa1\xfb\xa9T\x1c-/\x06{{\xa1\x93\xde\xd1g-:\xf6\xc1\xa4\xa6$\xc4\xe1\x08\x84\xa6\x98\x96s\xa1/\x17\xec\x1b\xf9!\xbf\xbdD\xd7?1\'\nT\xc1\xf8-\xbd\xaa]\x08h\xf6\xfex\x1f\x85\xece\xd0\x13L\xa4\xd2\xc0\xd3\xe4\x1fce\xe9\x1e&\t\xbc\x13\x08\x88.\xba~ws\xc5|C\x1bc\x87\xc8\x8f\xf4 T\xae\x0fI78H\xd3,\xbb<7\x84:\xa4V3r\x1b\xd2M\xab\x11[\xc1$\xdb\xeaT\x02\x0c\xfa\xa7\x14\x8e\xf7\x1cA\xba\x9f\x11q\x96\xd3\\d\xc9\xfc\xbe\xf8z\x83Y]7\xda\xac\x9ds\x97\x94\x86\x94\x01{\xb8-l%\xb7\x17\xb1?\xfb\x01eni\xdc\xe0\x88B\x1b\xf8\x16\x89\xaf\x0e\xa2\x9a\x0f\xa5\x7fn\xcd\x12Y\xa4\x1c.\xa5\xb8\xca\xc6\xfa8%\xd6X"\xa0:Vy_\x07\xc4\xc9{|\x8d\xe9\xe9\x9a\xf5\x86\x06\x81I\xb0z\xacZI2\xbb\xe6\x963\x96\x9a?-\x1cO0*\x1d`3\xf6\xc1\xb5\xdf\xe7G\xe8\xf3\xa0\x96\xc5j\xa51\x93[\xf9tm\xc8\xe7\xdc\xc7\xe7\xec\xce\x04\xac\x1e!\x8e+\x84\x01\xa3\x0b\xf4T\xbf\xd3\xbc\xf5\n\'\x1c\'\xbbT\xa9F\x11dl\x122\xe1C\r\xa4\xac\x9f\xa0\x96\x87j9\xe2\x8aQ^\xbc`\xf1\x13\xc4\x08\xae\x07\xb6\xc8a\xdc"\x9a^\xaa\xf0\xd2\r\xbe\xf8\x932A$d\xc7p\x9f\x90I\x98\xec\x92m@k\x12\xe4\xdb\xfc\xabx\x01i?=\xa0\xe1\xf3\xa8\xe0\xd6\xbc\xd5M\xaa,\xa6\x80\xf0>\xa0zv\xf7\xe0\xdb\xc8L\x80\xf4_\xcc\x9e\xf1\xe2\x98`\xb0_\x12\xb8^\x8e\x80U)\x153T\xe3\x92\xb4\x17\xad\xd1&H\x0e\r\xc5s\x00\xeeE8\x0bR\xf0\x07(\x1b\xcc\xb5\x89\x06\x8b\x01\x83\x992\xb1c\xf0\xc4p\x00\n\n\x94\x08<(Mz+\x88\x1eO&\x1c\x974\xe8o\x82\xba\xfeNB\x1f>I\x915\x06]>>\xec\xfd\x1cQp\x1b\'\x13\x04\x92Ej[]>H\xeeG\t\xaa.\xdd\rV\xe3\xcd*<\x9b\xfa7\xae\xd5\xa9+\x9a\x9e\x0c\xbaK\xd2:\xd8-n\xbc o5\x02F\x07v\xd4\xba\xe5O3\xe2V\xed\x98\x1f\xe0\x99k\x11\x96\xd0+\xfd\xca-\xc0c\x05\xa3\x1ebHQ\x8b\xdc\xe0\xd0@\x00\x0c\x0f\xaa\x0c\x02\x08\xe4\x02\xc6,\x9d_\x07a\xb1\x8b\x15\xe5\xaf\xf7\xd7\xb0\\9\xaf\xa0}\x963\x05\x93\xf8W\xbb6X\xa8U\x85,\xcb\x0eg\xed\x98\xe798\xa1\x19\xd2\xef\xae\x87c\xc2\xa0\x8d_\xfc\x17\xc7\xe3K)>d5m\x84\x83\x1f}B3\xc5\xa8\x8b\x01I\xf3\xcc\xfa\x1e(w\xab\xed\x99\x82\xc2\xcf]^J\x03>\xe1\xa66\xe13\x99\xb6j\x98W\xe2_\xa7\xe5\x81\xfe\x1d\xe4\xceiT\xf2\xbc\xf7\xf8\x98\xbf\xfa=\x10J#"\x08\x96\x10x\xd4\xa10\x96\x91%\x9bB\xb5\xcf>I\xeb\x96\x12\x1c\xc4{\x94\x1c\xa2\xc4\xe3|@\x9bf\x0e\x90\x9e\x13\x8a\xa4T\x085~\x06t\xf8\x95\x07\xc6Ml;H\xa2#3R\xbdF\xa6\xf7\x8eP\x81\xe2y\xc0\xefaA\xb2\xb9*\xe0B\x7f\x05\xfc\xd8)\x83it0 \xb4\x9a@\x9a\xe3\xf5\xb5\x85\x93\xab\xc4Kn<\xe2\x8fJM\xed\x05\x83\x1c\x14\xc2\x01%\xdd\x0b_{\x89\xc0\xb1\x92B\xa2)\xf1:a\xeajh\x0e\xad(\x82|*p\xb9\x9c\xa49):\xb17\xc7\x8e\xaek\x99x_\xb2\xf0`\x904o,>\xb4\xaa \xe8D5\xecS\xc8\xdb\x83S1\xa8;\x07\xd5\x19C\x0f*AF\xc5\nm\x83\xd5\x03x\x9a\x8bY\x8c\xdf-.\xbe22\x04\xd0>\xac\xcb8\xdclq\xd0\x07\xe8\xcf\x94\\\x82\x16\xfc\xa7\x93a\x84\x0f\xfa\x1bD\x15`\xc7 *\'\x94\xe0\xf1\xb8\t\xe49R[H\x01\x05\xb1\xb3]s\xdc\x8d\x19\xca\xe4z\x80\x02/_\xf5\\h\xd9\xc2\xe4\x8a9:X\xb8\x93\x1d\xd5\xc0Q\xf2\ruCL3\xea\x0bv\xbd\x9c\x19-\xecn\x87\xe4zt^\x9b\x19\xb6!H\x0c\xfd\xac\x8cnG\xb1\xe6\xbc,\xdc\xf4\x16\x06\xf5\x085\xf6\x1a&\xd3KTJ\xbd\x8e\xaa\x1eP\xfeK\xef\x87\xd68\xd0\xc4\xb3c>g\xb8:\x1d\xbfGm:]\x06:D\xd3\xd6\xaa\n\xbf\xa7\xa9\xcbU\x11\x81v\xb6\xad{`\xeb.u\xe6S\xe01\x9f\x01\xfa\x8b\x1a\x836\x14\xa9\xe5\x06\t\t\xd1\xe8}\xd8\x82.@\xbf1\xa7\xb4;\x9dY\xees\xb4\xe0H\x81\x90\x86\xd3\x13\x88\x94\xfe\x02\xdd!\xfa\xc5\xdfE. \x8ay\xf8\xd7\x05\xe5\xcd~\xc6H\x9c9\xd6\xa6N\xc1\xa3=>\xee\xb2F\x04\x8f\xd9\x88j\xd1\x14^\x15Gv\x07\x9bA\x85\xa9A\xc5\xe5\xf0\xae\xe2\xab.\x15\x05\x1c\xf3\xe7\xdf\xd3Sm\xa8\t\xbd\xf3<\xf6@\xe4\x98\xb4%\xc8`Zj`,\x89\xdc\xc6\x177S\xd6\xa1xB\x14$\x1aGx\xe90|\xe1w\x94\x1b)\x8c\x15H"\x1a\xfb\xcbj\x80\xd1w\xcf\x12\x9ec\xa3a\xc0U\x00\x1c\x91\x03\xe4\xf0\x01\x96Q)|U\x91\xb2\x9bd\xcc8\x97$\xbb\xacA\x19\x97UJ\xfd\xd7x\x1e\xc0\xd5\xee\x8f\xad\xafr\xe1!|\xdb\x9eBC\xcet~\x9f`,\x9ai#\x98\xf0e\xf09\xddE\xe9\xc32\xe1kb\xf6\xaf9\xef\x8dDbr\xc46&Y\xcd\x9c\xfdN|\x02\x82\xe8\x1e9\x8do\x03\xfcyV\xe5\xab\x12[i\x02\xe9?\x18\x86\xe6\x08X\xb8_Ub\xab\xe9\x8fW"v\xf0U9\xabG\x19`qL\xf4\xce\xbejBu\x02r\x9ebG\xd2\x03\x8b\xf7cWC\x12\xe8\x19\xad[\t\xb0\xf2\xd8>\xb97\xa2\x88\xc7\xcf\x18\x9a\xd1=\xc7F9C\xc0\x1e\xbe||D\xe8 \x1a\xcb\x83_\x8c\x9cO\x1f\x1b\x04l\x93\xb4\x82\xbb\xc0\xde\x8e\xd0\xe4\xd2\x01\xd7\xf2\xa4\x97\xee(\xd5\x7fpo\xbd\x81\n\x9f\x1aTT\x0f \xb7VS\xf9UK\xf8.;\xd3IM\xbd`\xb9\xa1\x02\xb4p&\xae\x8e\xaaWt\ty\xa9n\x10-/V\xe3b[\x86\x10\x86\x03c\x17=\xcd\xf1\xe7\xb9\x9a\x96c%\x01\xed\x86\xba\x88,\xcaU%6\x94\xfe\tu|f<\x8f\xdc\xe8r\xc0BM\x06N\'\xdf\x81\x11\x91\xear\xba\x8b\xca\xf6\x0f0\xb8xC\xb2t}h|a\x9bT#\xc0w?h6\x8d\x8c\x10~`\t\x93 S\xb8HJ\xe7:\x0f\xcc\x99a\xf9\xb8\xdew\x98*4y\xe5\x8b]u\x1f\x1a\xae!\xf3LE\xa1\x89\xf1S+\xcf\x98\x1eR\xca\xdfl\x86jB\xb7\xb0H\x08\xfa"\xcd\xcf+\xd2+\xbe\xeb\xa0;\xe3d\xdc\xca\xbd\xc2\xe6!E\xe7\xec\xfd\xf4!}\xf1*H\x1f\xc0\xb0\xad\xb9\xd5\xfbF\xe9\xba\xf9\xc0P\xca\xabr0\xf4>HVm\xb7\x93\x9fIO\x06\x04\x1a\xd1\r\xd9\x8cL\xde\xde\xed\x0b8\x9cb\xbc\x15\xfe\xc9\x92\xba}\xf9\xa6\x95\x81\xd5K\x10\xe3\x91\xf0\xa9\x97\xb4/\xe7\xa1\xd8\xd9}\xd4;!\xdb\x93\x9a+j/\x07\x0f\xaa\xebH\x8e\x96?\xa5\x0f\xf72\xa7\xe1>\xc0\xf3\xf3X\xb5\xad\t\x103\xadM\xf6\xbf\xd3\x96\xb8\x97|5;9s$Y\x02\xe5g?\xb6[?\xd0\x82H\x90\x147\xe2\x8d\x90\x04\x01\xd4=\x9d\x1d8\r\xe6\xa3\x9d\xe8s\xf6\xf9\x1e\xa4\x92\xe5\xbd\x15\xee\x81\xa6|\x1a\x038\xa8\xf7\xaa\xd8\xef\xf6\xd4\xc2e\x982J\xa5;\xbc\xeb\xa7\xc4\x12[\xc7\xee\xc9\xbe\xe8N\xe3j\x85IH\xcc[\xe1E\xd9?M\xcbS\x13\x8b\x1e\x86GU\x1eT\x1c+\xc7Y\x99\x9d\xa7\x88\xec_Y\x00iK;\x92\x91|\xe5\xdfj\xd1<\xc9b\xce\xac\xa6\x8565>\xacM\xdaU\x99\x93\xac\xe5\x0e-\xa5\xbc\xf5\x0b\xd7\xdc\xcc\xdbz\xf8\xe1\xb4\xd2\xc5J4a\xfd\x05\xff\x07w<\xa9\x90oN\xdd5>\\1\xc6h\x0e\xdb\x1a\xd1\xdcH\xc4L!l\x83{^|\xbb\xa6\x9b\';\x98?\xcf"X\xf12D\xb4uU-s\xb8\x98\x0bqd\x0fs\xcb\xa6\xbeC\x0e[\xa7$Lk\xe3W\xf4\xdd.b\xa5\xdc7\xb5\xf9\x8f)\xe1\xa1\xbf\x08*\n\xb1\x0efN\x83\xcb\xa5Sx\xf9%/+\x0f\xb0^\x06\x1e\xea\xd6\x0fRQU\xf0\xdb\x81}\xd2K\xd9\xd6W\x9d\xe1\xb9\x9a\xd4\xd6F/\xef\xb2r\xb4F\x9d\xe4\xadT\xa8\x0b\x90tW>%\xcf\x05\xde\x0b\xd1\xe1r\xea\x05\x98\xad\x87\x9f3/\xc3\xbc\xdaUB\xad\x06\x05\x17~u\xf3\x1c\x99\x1d\x9e\xce\xf82o)#G\rI@\r\n\xeb\xfd\xb1\xac-F\xeb\xb3\xb2\xd5\x8bPt\xd4\xe4\xef\xdc|\x10\x95\x17\x95ES\xcc\x82\x93\xa0\xef\xba\xd2!jl\xd9\xa0\x93E\x08*\x9b\x9e\xac\xc5;\\\xc4N\x03\t\xe2\xa3\xaf\x17\xd5\xfc+~8\xbd\x1c:I@\xee,\xc9\x03\x80\xa2\x14\\\xb2\x91\x01\xc4(\xdfZ\x8f\xb8\xcb\x10[\x04\xae\x14\xd1O\xc6z\xa6\xc85\x94b\x04\x1a\xfd\xad\xca\xf8t\xe0\x16\xcb.\x1f\xf9\x91u\xb3b\xaa\xf2\xc2N5\xc9\x07\xbab\xd0\xe1n\x8c\xaf;\xedd#p^,\xfa\xcb\x96\x9bK\xa1mL\xa1\xfc\x05^Gu\xb3#\x8e,<\n\x9c\x0b\x9fv\x12U*\x07\x12r\xe4y\x96G\x93\xdc\xdfJ,\xf6\xfb\xe0\x06\x93\x9e\xebuT_\x89\xd8\xa0\x19a\xf4\xeb3\xfc\xed\x9b\xf7\xc27f\xfcI\xf3/\xcc\xf6*\xe3\xbf\xfce\xadhP\xb8\xe2\xed\xe6.T\xfc\xbe\x9exT\xb5h\xf0\xcf{\x03\t\x90\x98\x9a\xd8\xad),3"Vu0X\xf0\x90$\xfd\xf8\xaa\xa2\xa6\x88D\x1aB5\xc6\x116\x01\x85Y\x01b~\xf5\xc0H>\x19/\x8a\xeb\xc7\x83\xb9\xceI\xferR2P\xecY\x15>_0\xf0\xb5U^/Z\x91eU\xc0\x1c\xcd\t\xc1>\x85B{pCF\x80\x97\x06V6\x97BZ\xb5\x86\xb9\xed\xad4\xd0\xf6\x85\x19G\xff\xe2b\xbf\xa1\xe7%B~\xa85\x97\tC\xac\xca\xd5\xaf\xafB\x13\xed\xe1\x13d\xcaqu\xa4\xf6M+\x9a\x8b1L\x1d\x97aY\xa5\x08\xa9c"?o\xa4o\x1e\xa5\xe6\xf0s\xe2D5\xb3\x0f\xc0\x99N\xeaq\x103R\x02\xd7{\xe7\xfeYU\xfa\x17\x99\xc3\x1b*\xf5\xfd\xdb\xed2\xa7\x0fl?Z\x03\xa6\xe8\x92E\xbe_H\x8c\x95\xbc\xd6y=\xa6\xb9`\x02\x87\x05P\xed\'2\xe6R\xc9\xcd\x97\r/\xe0\xf6\xf6\xeb\xe8\xa6\xc4\xbf\xfeu\tk}\x91N\x05\x8d2H\x12~i\x98\x16\xb8)\x15\x813\x00\xcf\xdb\xcc\xa8Y)\xd1\xcc\x8b7\x81\xb7\xbf\x85rS&\xcbs\xda\t\xfe\x8c\xedF\xc9Z\xa2\x17\x9bB\xb1\xf8\x88\xd8\xef\xae"nc h\x18\xd8\xf5CNL\x19\x1b\xa0\xe5\xf9~_v\xa1\xdbYpg/\x0c\xf0=\xf5\x07Aj\xcd\x8eNBO`\x840\xa6\xd0\xdd0\xeb\xaf\xae7\x9fV\xc7\xadF\x11/{\x12`\xca\x1fj)( \xe7\x8d\xb6\xe2\x0f\x18\xc7\xfc0\xc7\xe5H\xa0\xc8\xa9<\x0c:\x00K\xd4\xc2\xf2Zr\xb7\xdaT>W\xee\x8f\xc0C8N\xad\xdbL\x89\xac\x01\x8dDs\xf6\xfcI\xeb\x16\xc6O+\xefuk\xde\x83T\x99\xa7\xbbb\x97\x04a\xd1\x1cd\xf5\xea\t\x04*=\xb4\xf9\nJ2\xca\x8c\r\x07\x18Q\x9cs\xc1\x03\xb1/\x11\xae\x82\x00x`"\x86\xd6~\xc6 \x1d\xb8\xd6\x96\x91;]\xa7\x01Rt\xb9\xbdE\x08\xc3\x00e\xec\x08\x9b@I\x9a\x8d\x8fRN\xa2\xe1Sqc\xd9}oF\xd4\xd1H\xcfQu\xaam\xcex\xff\xdc\xe4\xb1\xe3\xe4/\xf6#,~\xb6&\xd0\xcdjv\xfa\xea\xfe\xbfZ\xa7\xb85+H\xdd\xb0\xc8\x95\x8a\x8e\xe2\x18\x98i.\xab\xfa\x8e\xd9qn\xe7\xd8}\x89\xbd\x92n\xc3\xe4\xd8|\xcf\x90\xc6\x14{\x87`B\xdc=\xa4\xbbF\xa8\x08[\x0f;f\xd9U`Z\xf5\x83\xfe\x7fr\x06\xaf\x81\xf1x\xbcu\x8a}[H\xc2oH\xbep\xa4\xc9\xe2+\x92A=\x03\x8a\xe7K\x8f\r\xdf\xb7r\xe3:h\x8c\xda\x02\xf5\xb3\x01\xd7h\xb5@\xae\xb0o!t\x9d\xbe\x86\xa84\xfdMm\x81_\xef+\xbb\xb2\x06\xf4t\xb9G\xcf\xae8\xba\\>=\xb4\xf6\xc7\xa0\xee\xad\xf8~\x06\xc2\xcf\xa6c\x8e\xb5\xcb\xcaw\xc2j\x19\x92\xccW\xbf<\xf6o\x10av\n<|\xe9\x8f\xe4A\xb7`\xeaq\xea~\x12v\x7fI\xab\xda\xf0c!\xe7\xb6\xf9\xc9~\x87(AlRq\xa9\x9d\xb1\x13\xf9\x97`_\x88\x957\x1f\x8f\xef\xb1M\xa3VSy\xcd\xe8*\x17\xce\x9f\xd7w\xe3\x8fu\xb8/\x06\xff\x8d\x04\x9c\xc0\x0b\x9f:\xc3\xa4\xa5u\x14\x97\xef\xf3\xae\xd3Bj\x94i15l\xf2.[\x9a\xef\xf7Ov\x17\x8d\xb5\x9f\r\xbc\xeaSpy\x91\xd2\xb3[\x8e=.\x9d(\x82\x85\x8c#=^cy\xe2py@\xce\xb8\x1aR!\xa4\x87\x1f\'\xb4v;\'Q\xe3\xf5\xa6\n\xe7\xd07}\x15\xd1Q\x92\xb1\xf0\xd3\xf0\x18.\xd9\xa3\xfe\\\xa5\xbf\x9c\xc6\xc0\x82\x1a\xc4\x04\xf6j\xe9\xfa\xf2\xe8,\x17u\x14.B?\xebNi.:\x06k(1\x02mav\x9ec\xea4\xd1\xfc#\xb1w\xbfD\xb4\x0b\xb2\xf7B\xdb`BWp8+\x9eQ;\x95\x98F\xfeukG]-\t\xb7FTe\x8eo\xac\xae\x92\xa1\x8a!\x16"\x17b\xcc9~\r\x93\xa5\x01\xcb{d\xff\xb25%lm\xc0\x02\x01\x00\xc8\xa9\xa4\xf4yb\x92\x10\xc8\x04\xa7n\xb0\xd7\xc1K\xe1\xb4\x1b\x90\xd6\xafx\x9c\x87\x0b`>\xa4`\x1f\xbd\x16\x95/\x84\xc4\xe5\xd6\xd6Z\x06\t}\xcf\x0c+\xc8\xa4\x06\xe5\xf2\xce\x0f\xc0\x85\xf4c\xe9P\xd3\xd5\xf6\xa7\x03\x9d\x88I\x8as\xa68\xdch\x1ew\x8c\x97\xe2\x03\x88\x0e\xa8\xf8Q\xae\xed\xcc/B\xd8\x99\xe8\x1f\xf18\xa2\xc7\x04\xe1$\xc5\x0eK\x8b\x82\x15T3\x88\x11\x97n\xe9\xff\x16Q\xffT\xb6\xce\xa0\x1b\xd1\n\xc4Z\x8f\xdd{\xd5R\xc9\xe5\xb1\xe9\x05.bp\xa2\xb8u\x05e\x98\x03\x86\xaeQ\x14\xc4\xb83\xd4\x86\xb7E+]U\x0f4\xd6~\\\xae\xaf\x94s<\x0c\xa9\xe4}\x14\xc9\xfe\x8f\x15\xb1\xefk\x95c\xdfy#\xaf\xcb\nO\xb0\x98\xf5|!\xf1\xb5\xa4\xf2\xddbN\xac\xd8c8k-\xfa\r\x08\x96!MH\xe0\x82Sy\xa2f\xbf\xc5\x9e\xd3k0\x0b\xa5e`\xe0\xb4R\x08\x99\xbc\xdf\x1d#\x192\x85 ^5E\xfbJ\x16\x98\xa6\x92\x97\xb3\xd2\x8b\xd3\xb8\xdfU\xeff{$\xd0\x11\xa5\x111\xaa\xa0Z\xa0\x02\xb4\xbb"\xa3Sg\xb0\x81\xe9\x13g:L#\xfe\x12H\xe3\x8a%2\x9eU(0u\xe5\xc3\xc8\xe3z!\x9b8g}t\xdf\xbb\xb4\x97RF\xc0\xe2\x8a`X1~4%U\x17\x1cEE\xc6\xcc3\xb4\xdd\xf1\x8fK\x93J\xe1\xce#\x8c_\xcc}/\x0c\xe0Q\x83\x02\xebRT)\x89\xae\x8f\\\xed!\xcb\'\x1f\xc2\xd4\xb5NYtZK\x1a\x05dj\xe5\xa8\xc1\xaa^\xd4\x1dV\xef3\xcf\x9b\x91n\x97\xd7\xe2y\xca\xee\xd1M\x12\x8b?\x90\x0f\xa3\x0b\xd0P9\x9f[\xad\x05\xed0\x92\xfb\xf3\x0fM\xd8\x16\x9f\xfa\xfe4\xe7I\xc9\xa7\xbd\xcc_\x10>\x9e\xc7o\xe7T\xe8\xf61f\x9a%\xd7F?\t\x13\n>\xc5\x1e\xc9\xa0M\xb8\x932\xd2\x7f/z\n\x1f\xfc\xae\xe7}\xf90\xcd\x95\x11\'\x9a>k5g\x97x\x98\x99Y\xcb\x93\x8b\x87\xa8B\xe0\x9c\xebY\xbb\x9fo\x84q8%\x89\x9d\x896\xb7Z\xcd9\xc5\xef\x1d\x94,\xe4\x98\xf0\x0f\xa2.2\xf3\x0fG\x9a`U\x7f\xf8\x08\x01)\xaf\xb1\x96P\xbe\x87,@\xd1\x1b\xfc\'\xd8\xe56\xf9\xf8\xb7\x9av\xca\xb2{n\xb9\xb5\xbe\tK\x03vJzW\x83Hy\xd8\xfd\xc8O\xe04v\x0bd\xd9\xd0\xa7\x00\xc3yo\xa7\xff\ngl\xec\xb0\xad\xa5a\\2J\x91\xf0\x12{\x97\xa8\xa8U\xac\xe4H\xb1\xb5\xd8m\xe5#\x86S\x8bt\xd2oV\xe4w\xfc%\x99X\xeb\xed\x1f\xef*2\x07\xf5bk\xe4kt"\xcf\x01\xf8\x06g\xfa_\xaa\xf1}0<\n;!\xa1\x9c\xbc\x15\xcd*%\xd0$B\xd4@1P\xa0\xb4\t&C8\xa8\xb9\x9ed\xa1\xd0\xd2\xfd\xc7\x92\xbe_f.\r\x94`\xde\x7f\x15+\x08\xc1\x8d\xe4^\x87T\x92\x85\xf5)-d$\x95\xb3\xcb\xc2\xad\xf2Y\x96\xfb\xa6?\x8f\x08U\xcf\xa2q\xefM\x1f\x00(C\xae;\xb0\xc4y\x1d\x89B\xde\xd8\xcf"I\x81\x9e&>:\xd1\x9a\xaa@\x91\xfcdc}\x9eI\xe5K\xf4\x1ay\x87\xaf\xf6fI\xed\xeb\x9be\xbfk.\xb0\x80x\xc1\xfa\x91\x86\\\x9dk\xd7C\xe0e\xb0-\xf9\x8c\x06\xc6\xed\x9b6$\xaf\xc6\xdd(:\xb9P\xa7\x08\xac\xf2\xf7\xcc4N\xd0\xc8hTS\xf4\xcao\x02g2\xcb\xf9\x8f\xac\xa3@\xfcr\x0ey\x12\t\x13\xe5Z>\x9eX\xfdS\xac\x19G\xbd\xfc\xe6\x1b\x91\xb1\x7f\xd1A\xa2\xd3\xe1\xba\x11\xa2\xc5\t{^\xe1\x10\xe2\x03>\xf6O\x07w9\xd9\x96)Mz\xea\t6\x92f\x89\xfd3\xf5O\x87\x14\xb4xL\x0e$\x1e\xe9&\x17\xb1\xca\x83jb\xa3\x1a\x01=\xb9\xe0\xc3\xb8|\xff\xa7~\xd0Pfo?\xa7T\x0c\x1e\x7f\xb1?\x88\xca`\xdd\xce\xf9\xcf\xb7y*\x80HB\x93\x1ft\x84-\x84\x17\xf4\xb4\xde\x14|\xb3W\xe2c\x01\xb5\xa4\xcd\x98f\x08\xab\xd4\xcfFMN\xe1^}8#b\xfc\xe3\x14M\xf5\xe5x;xWSj\x03\x9b\x04\x1f\x06A\x11\xc5\x85W:\x844\xe8$\x07)r\x10?D\xf1\xb6\x07\xb9yR\x85\xae\xc8\x10i=Hn\ti\x9d\x13\xf2m6\xee\xa1\xd2r\xe1\x0f\xfb1\xec7(sw?\xd2\xb0\xe5\xa1\xe7r\x14\xb8\xaf\x06\xea\xb4&\x9d\xe6\x87\xea\x7fo\xfd@Ct\xb6a\xfb%6\xe4?\xdcE\x89M3\xcf\xea\xf9\xc0/\xe8\x94[\xd4DdT\x17\xcf\xc2\xd1\xbf\x7f}\xb0Hl\x19\xe7]\x82\xc7\xdcN\x12\xcb\x91\xffC~j]?\x07\xa2\x8d-MOt\xdd3\x9bB\xa2\xbb\xae\xdf\xb1Ih\x98{N\xf9\xfeg\xd7\x80\xaf:\xef\xd4\xfd\xaai R\xb9\xf9]\x12*\x86?\x1c\x07\x86$\x9e\xec]\xf4\x11\x19\xaf}S\x05\x90\xb6+G\x8f\xde\xe8\xe7\x97\x1b\xe1y\xaf\xe9X\\\xfdE\x80b\xb7_\x11\x14\x9d\xb6#\x08h\xf0\xefw\xc4\xf0\xfe\xdb\xee58\xd7\xf2\xb0\x84\tC\xbe\x11K\xca\xa9\xc6\x15\x87m\xcf\x7f4(7O\xcaW\x01.Y\xdd\xe0\xab\xd1\x8d\xca\x92\x9eP^0_\x86`\x91\x10\x8f`lY\x9aU? \r\x7f\x8a\\\xfd\x92\x12\xd0(u\x7f\xe0&\xdb\x1ai8\x8c8\x9f\xd1\x8a;h\x14\x07\xa7\xce\xf7\x94\xd9x\xbc\x15\xa0\xb3\x9f\x1f\xcb\xaa\x84\xa0\x04N"NHBN\xab\xa9\xd2\xb9\xf2\xde\xde\x01\x8f\x9d\nb\xa1\x07\x0eLA&\x87\xda~\xca\x9e\xc4{\xbf\xf6~\x19\x82\x08\xc9p\x96f\xf2\xd2\xfa8BVz\x8a\xe7@\xb8D.a\xee\xb2\x86\xfe\xab7\x05\xc4U\xa6h)t3:\x94\xe6c\xbf\'\xabki\xb7v\xb7\x05\xb0\x02"\xcc\xc1t\x8d\x9c,\xd7\x19\xeb\r\xca:\x0b\xccZ\x9d\x8c\x84\x9a\xf4\xba\xedk\xf4)C>.}\x8f\xd6w"\xa9\x90\xee\x93\xb0\x8d\xa0s \xa4\x92[\xaa~\x1bG{Z\x07\xfbwZ\xfcj\x16\x19oE\x19%\xd1\x1f[\xa2\x04\x81{\x13\x95\x00\xb3\xcb\xe7]\x16\xe0Q}D\xcc~\x98\x18\xad\xb4\x8f\xb9\xf9\xa8\xfd\xd9\'\xac\xda\xa6\x9b`\xff\xbee\xb6\x8e\x9a"v=\xb9\x86\xdb\xd9ErY\x9fk=>v\xc9=J\xe7\xd0\xa4\xd6eVX\\\xf4\x82\xfar\'3\xect\x95h\x16\xd1\x99^\xd6\x12\xc8/(\xe7\xdf\xa6]|$\xdb\xc0dx\xae7\xf6\x94\x95\x7f\xf5\xc99\xcf\xde[<;\xfa\x969\x88\xde#\xf5G\x8c\xe0\xeb\xc5\xfa\xdaa\xb6\xef\xad\xe1?\x1b\xca\x94[\x97\xbbZ\x9d\xe6*p\x88\xd7\x19\x13\xa4\xd84N\xf27\x81\x94\x99\xa1\xd2\xc3\x1fj\xbcn\x1b-:\x063\xf8C\xf9\x17\xeeU\xee\x8eb\xd8\xc8\x08\x01\x82y\n~\xf6\x0b\x95\x02hB\x8d\x02 \xd5\x94\x83\xcc\xd7"%x\x86\x1e3{$=(\x1fx^\xf6\xe5\x9f*rn:\x0c\xfa\xd3\xc0\xf1\x12*z\xb8\x8e\xfc\xcfh\xd0\x173\t\xc0U\xef\xb7\xc00\xe9\x7f\x94\x06\x07\xc1\xa07"7\xb5\xac\x16\xa6\xa5R\xaf\xcci\x8e\x1e\xcb\xc0\xd0\xbc\x8e\x99b\xcd\xe5s\xe7\x9fK\x10\xf9\xa6\no\x08\xac]\x87nP\xfc\xf7_;\xa6\xbc\xfb\'I\x05\x12\xf4\'X\xd3\x8a6[Y\x95C\xecHkN\xc4\xa6\x07\x8c\xc6\x93\xad\xe14tO\xfbA\xf1\xb8p\n\x18,\xb8\xc7\xf6\xb5\x87)\xdf\x9c@_>\x10\x98{\x118\x15\xc0\x1cl]xB\xee\x06j\x11\xba\xb0\x1e\x0e\x84\xc9\xd0>\x16\xfb\nX\x92\x9a\xdel.o\xfeV\xb0\xb8\xdey\xf4\xa4\xda\x8c+\xfe\xdf\xa2\xc6\xf1\xca%a\xcc\x0b\xae\x9b\x81I\xb35\xd8\xb2\xbd\x1an\x98hy\x04\xc3tbb\x9c\x85c\x07\xe054\x7f\xfb\x15P\xbe\xe7b.X\xa2\x8e\xa7%\xf6\x17v\x19m\x94\x8d\xef\xe0p\x05\xfc\xba\xf6\x0b\xf9`\x11\x94sp\x83\x0e\x80#3\x19!\x8d\xd0*\x08#\xcc\x1b/\xa0\xben\xafZ-\xab\xe1\xe2\xaa\x8er\x1aV\xb2=Z\xefpQq\xea\x0c\tr|\xb6N!\xc7>\x9dc\x9a\xde\x99\xd3!\xc1\x7fy|\x82\x07\x08yO\x9a\x8a]\x8a\xe8\xaf\x96z\xe2\x9cU+c Y\xaa\x8f\xd1\x87[\xa0-pb\xd9!\xd9n\x01f\x01\x16\xa5\xf0\x11J\x92\xf4\xa2\x9c#M\xff\xdd\x80n\xdb\\\xf6\xc8Y3\xb7\x1d{\x97\xa4\x93\x87\xc5\xaa\x16c\x0c\xd0\x1a^\xc0\xc5\xe8\xf3a\xf7\x0c\xe9\x9e,\x8eP\xb6\x9c\xe5\xd1\x00o\x9b\xb7\xb2)nKI\xf8\x01\x85\xf0f\x1b7C\xc6b\xae\xf0u\x96RbP\x04GGJM\xdc\xcd\xfb\xa7\xb72>\xd4H\xfa\x9c\xdfj,\x02@\xe8\xc4\xd2\xa2\xeb\x03\x14\x1c9\xf8\x03y\xee\x1c\x94\xd9\xff\xcb[\x81<\xc3<[\x1dG\x9b\xc0\x9d~\x12m\x9bX3\xe5\xc9\x8e\x99\xa1$i\x9a\xa4V@\xb6\xcd\x08\xe6\xbf\xeb\x0b\x9d1\xfa1_\xbd\xdc\xb2\xcd -\xf9\xf1\xd0\x12\xba|O\xfb\xeb\xfa\xd4I\xfa\xd2\x9b\xc4\xb1\x9fe\xd6\xf0\x8b\xa0\xe3\xa5\xbfIYf\x02\xc9\xe6\xca\x9f\xbf\x81\xce\xdd\xa6_>\xc6?\x0e\xcdK\xe32\xd3$\xd3\xac\x15\xcb\x14\xd6H\xf5\xe5\xc6*\xf9\\\xf6*\x85\x19\xf8\xaaY\x02vE\x80J\x18\xbc\x13\xe4\x98j\x97\xc2\x8b6\xb2\x17{U=\xda\xde\xa4%\x8c\x7f2\xe8\x9d\x1f\x9a\xd1\x16\xa2v\xc7_\xce\x19\x89\xd8\x15\xe0\xb5Y\x1e\xe9\x1a\xf9wpt\x0f\x1a\x7fR\xce\xaf0\xc0a\xfay\x04\xb7\xd3\xcd\xc2:\xd6~\x96\xc9\xe7t\xa7\xfc~\n\n\xdc\x1c\x11S=x\xb5L\xb6\xc0\xe7\xd9\xb9\xce\n\x8b\xdd\xb7in\xb3Ba\xb8\xec\xa8\x83te\x16\x10W^\x08M\xb1ta\x07\x95\xb5K\x1c\x1eU\x96|\x8bv?Z\x0bL\x07\xa3\xff\x83#\x8d<\x17:\x0c2\x19\x8d\xb8p\xa6\x86\x1b\t\xa4NlH\xee\xd2\x7f&\xb7;\xcc\xffQ\'FRmW\x88\xfd\x7f\xc2\x8f\xfb\xcc\xaf\xfc\x16\xd5\xa5l5I\x88\xf7\x02\xd1y\xe5\xa1\xb7>\x87\x01\xeaQ\xa0\xbc\xfa\n\xdf\xee\x05V\xc6\x17@\xccp \xbdD\xb1\x14\xb0\xf0\xedO(\x8f&\x0bF\x87)`\x08f\xb5\xa4\xad\xd1\x86\x1d\xb9\x1f1\t\xdc\xd2SJO\x1c\x98\x94\x8b\x0b\xd7LW\x14pw\x7f\xfd\xa2\xc34eT\xdd\x03\xb7}\xa2\x19r\xa1tGz\x16Q\xf2\x17c\x8c]\xedM[\xad\x00]\x84;\x05\xe3<>\x8a\xc2SxZ\xe6m\x82\xec\xfbkP^#\xa18\x10\xeb"\x9a\x0c|\xd6\tO-\xdf\x89\x0f\xe5\x94\xf2-\t\xbd\x08\n\x10\x8c\xf3\x95g\x0fL\x12\x036\xde\x8f\xf3\x8c\xc8d\t\xc4\xbf\xd7\xbf\xb9\xa8\xad\x7f9-O\xed7\xd1\x81$\xc3\xdc\xf2j\x08\xea$HB\x0f\x15\xaa\x84\\\x809\x07\x08\x0b`X\xe5AXBK\xae$\xac\x9eL\x8f\xbd\x91\xf12\xfd\x95\x93\xa9P_\xcd/\xfa\xad\x97\x8d\xb9+ \x96D\xf8\nx\x805\xdc+\x84\xdf\x82\xa7\tP\xb9\xf3y\xde\x88+\xc2\x80\xae\x90u\xf7\x02\x10xi\xa9\x92\xebzHvqB\xc4\xb30\xc4\x14>K\\\x9f\xe1\xf3xtz\xe8f\xdadz\x8cy\x87\x9e\x19\xe8&\xd6\x15\x90\xf4\x05\xbb\xa1\xbb#\x92sJI\x93+\x0f\x0c\x01\t\x1e\xce\xfd\xdeM\x9b%\x1et+\x06O6x^\xf0\xe0\xe9/\xbf\xeemZ|K\xa3fZ\xd4yXd\x98?\xfcL\x07\xa5CUO\x0c[O\x12KZ\x07\x1d\x1c6Km\xd7&\xe2O\xc2\x15\xe7\xf6\xa2\x08O\xf3\xd0\xa8\x9c\xf7(D\xd5T\xc9,8\x88\x9c\x9d\xc1\x17\xb97\xb2SW/\x1b\xa3\xca\xa7Z\xbfV\xb5\x05\xd9\xae\'\x110)"\xfe\xd0\x01\x11\x0c\x9f\x88\x8cU\xcdN\x08\x10\xdb\xdc\xd8\x07X\xcb\xc6cuh\x96\x9b\xe1\x88%\x18a\x04\xfd\xd6>\x1d\x045\x07\xaeN\xa0\x88\xf4\x92U\xaawQ\xea\x1c\xd4\xec|\x8e\xbdW\x9ce\xf6\x92\x0e\x98\r\x84\xd3\x87\x8a\xea\x01R\x1f\x00\xfer!\xbe\x0e\x9c\xb0\xf4o\xab\x18\xb0_et\xafZ\xf5\xd3\xe0/\xcb\xca\xec\x12\x93\xb5\xe8+\x0bV\xb9\xa35s\xc8\x11\x1f-9\xf0\x1d.\xa5\xb2\xb8\xab\xf2V\xd4\xe8|\x1c\x04\x93\x1c7v:\x94\x91\x1d\xeb\xe7#\xc4-p\xdba\x0f\xcf\xbd\x81s.\xc6\x15C*3\x8c\xf2,\xaa\xe4\xf9\xa5\x92|\x9e\x96\xd2\xbcm\xd8\xc1w\x0f+)QU\xbd\xa4\x84f\xf6\xc7\n{\xdd\x91\x13\x89\x16\x0e\xaf(\t\xaf\x9c\xa7\xd9\xcc9\xb1\x91\xc7\xf1#\xf0\x05\x0b\x9a\xa8\x04A\x16\x1f2\xd5\xc6\x12\x1e\'\x00\xa4T\xbfPp\x9b>\x17\xcd]%\x83\x7f\x0b\xc8\xcd\x16|\xeb\xdd]\x8a\xd1\xcd\xb3\xd1}\xbe\xda\xfaZ)!\x036\x15\xee\xf2\x94\xaa\x03\xb5`\xce\xe1\x8b\xa9\xaf\x19,\x02\xd2\x91\t\xf2@\x00\xc6\x98\x1c\xcb\xdc\xaf\xaa\xe4\xf7\xdc\xb4V}Q\x04OK\xd5\x00:\x81\'cU\xb1\xf7T7`\xaaO:N\xe2E\xc3\xcd\xac\xbe&6m\xcf\xed\xc2c\xe3\xfa\xfa\x8d+\xf2;\x82\x89\xe8\xc18\xda\x99\xb4w\x03\x88\xb1d@\x83\x1c\xbb\xf8v(k\xe0\'\xa7\x1e\xd7[\x8e\xd9\xcfPu\xf4\x85\xcb\xe7\x8c?r_O\xe0\xbf\xc9\xd6\x80v\xc4&\x1c\xb9`V\x80^y\xf7\xf0\\W+\xe0\x86B\xd5\xef\xca\x03\x83+E\x8f~cF\xbb\xd9\xee\xdb\xc3\xb2\xa7L>\x93\xe7_\x1cJ\xf3Bw\x7fF\xf9\xd84\x15\xc6\x8c/,\x88\xeb\\\xe5\xfd\xdb/\r\xff)\xe4m4#\\_{7\x13,\x91\xa5=\x9e\xbbH\x97gb\xe8l=\xf9\xb0\x15\xf4kf`\xc0JdF\x8dW\x91D\xab\x9b{\xfd%\xd3C\xd6pe\xfce\xd4\xfa`K\xa8N)\xaf\x0e\x1f@i\xd9\xc0\x10\x90\x05\xa8<\x86\x9f\xa6\xc4\x13\xf8\xf4r\xaa\xb6A\xb5\xf0p\x85\x1c\n\x81\x1cy\xc5\x0e\x97\xfa)\xac\x8f\xc5_X\r\x0c\x13\xde\x9d\xb5\xd88pR*t\xf6\xe0l\xcd\x07\x87W\xf2\xd2s\xabQ.x\x98\x88-\xb5\x9eT\xf7&x\xf8\xe0\x98\xe7\x127\x81\xc8$6\x14\xb0\x11\xbf\x83\x81\xcd\x98\x19\xbd\x0eY!\xfev\x00\xe2\xe4\xe8hd\x03j\xa6\xe8D\xa9C\xc8\x97\xb6\xd9\x80\xbbV\x9eXO\x14\x8en\x93\x1a\xc7\xde\x86T\xa6\xdd\x14\xd7\n9\xe4#\xeeT\xb5]\x01\x90\x84rT\xaf\xb7[\\Hxd\x08\xe2\xf9\xb7;\'\xa8\x14\x99\x02\xd0\n\xf4ee\x05Gk\xdd\r\x0c&C\xff\xc9\xcf\xf0\n*\x89\xfd[E-\xeci4\xa0\x86d\x01\x85\t\xe1K^\xf5\x14\x04\xe4\xaf\xc4\xf4!\xd3\xb6Y.\x92l\xb3w\xc8Lll\xae.\xa8\xed\x05\xebaL\xf2\xd0\x9b\xd7\x0fg\x07%A\xf7\xcf\'\x91N\xde<^\x0b\xae\xce\xce\xd3\xb1\xff\x9b\x84\xa0\xca\x88D\x05*dI\x14\x9a4\xff=@cZ\x8a\xa8x\xecve\x19\x87\xfdK\xf8z\xb9V\xff dd\xfb\'UK\x87\x9e(\x15\xe9\x90\x0f\xc8{A+\x1e(\x92\xaa\xe7\x9e\xd8\xf5*Q 3\x99\xaas\x18\x88\x84p\xb2w\xad\x12\xfb\x9d|\xb2\xc7&\xfc\x80\x94\xe7}\xe4\xc6\xae1>\xb6\xd4\x9e\xc3\xbf\xe8\x8e\xe2\xba\x02\xe4r&\xe8\x95E\xb9XM\x1c\x99$S\x020\xcb&\x95N\xf0\xeb\x86m~u\x93!E\xf6\xca\xcd&\x07ro\xdaK\x01\x06\x95\x13x\x0c1\x00O\xcd\xa2Pw.\xd3\xcc\xb3\xfbe\xa2\x0f\r\x98\n~\x8f\xff\xf3s\xafs.cx\x9b\xe9\xa4\xb0\xd4\xf4\x1d\xc3=\xb9\xeaB\xe5\xd4\xdeE\x1d\x10Y\x91\xfd\x01\xa3\x85\xbf\xf9$\xdc\x90cw\xcc\x04\xe2r-\xa5\'\xb4>\n\xcdD\xc07\xf9\xce\x9buB\xf3-\xaaf*\x13`\x9a"\x916I\xb1\xcb\x1c\x1fT}\xa3\x96;\x1bS\x82B\xfd\xa5E0-\x8c\xe4x\x88".\x8d\xbek\xc5\xc5\xcc3\x90\xca\xe9\xe5\xed\xe1\x1e\x12\x02\x89\xfdm\x80\xb5\x1b\xa3\x9e\xe7\xb1\x86q\xcd\xb0jQck%e\xf6=Nj\x97\xb4\xba\xce\x8e\x8e\xfb:2\xd2\xc5\xd4\xb2WnHq\n\xfa\t\x05\xfc\xeb\xfc\x05vu\xf9"\xb4\x85\xedVi\xab\xf6\xbf\x93y\x8f\x8c\xd9\x80N\x93\x06F-hZ\xe1+l\x98\xb1\xc2z{\xf2c+\x8bT\xcbF]\xc5\x0f\x19\xb3\xe8\x18\xc6\xb1\xfc\x97\xa1b\x12\xb9\x8dIf~\xe0{\x06\xc3p\xfd\x04\x83\x19\x0f!\xf9\xc3&S\xb8]\xca\xf9o/da\r\xb8&Jt\t\xf0W\xba\xd6$\x97\xed\xd4J\xc3a$\x0f\x94R\xcb\xb5\x81\x94\x7f9\xc4`\xd3\x08\xd9\x84I\xfe\x02@\xbfR\xab(X\x87\xedjF\xcbc\x1cm\xe7<+\x94\x9f9\xe5\x06\x1f\x0f#e\x95v~\xc6\xb1\xa1Gb\xb3&(\'\xf4\xdf\xb2\xa9\x84x\x88\xffJ:%\xb9\xe6?\xff\x8a\x18\x15\xca\xa1\xa6X\t\x88\xc7b\x91k\xc2\xc2\x19\xe0v\xdd\xfaVL\x1b\x08\x9f\x0b\xebg\x18`\xe8\x9f.)\x88\xd0\x15)\x1a\t\x92\xe6~y\xb4\x8f\x01P\xd3\x17\x81s\xcb\x1f\xb7\x1b\x11\xe7\x03|\x9c\x94\x8aa7\xd5F\x13\xad\xeb\x1f\x8e\x91?\xe8\x80\x16&\xa7\xd3x\xe5#\xec\xf3\xa5W\xbe\x88\xc5\xaa\t\xbe\xe2\xb3#\xbf7\x0e\x10\xe3\xb7HHXX|\xb2\xb9\xdc\xa6\x9eT\x00\xa0\x9e\xfc\xc3\x13^\xf7\n\xe0m\xb9\xd5\x80\x8b\x15|\xdc\xee\xadt\x02(:\xeda\xc4\xb0\x8bKd\xd4f#F&\xe8\x9c\x10\x99\x01Y\x08\xe9EvR\xedd\x8e\x0fU\xcd\xa6\x1e\xbd\xect(\xce\xdb\xa8O\xc2\xad\xd2\xe8\xbb\x11;\x8cN\xfc\r\x9f\xc4\xda\xae') diff --git a/dist_obfuscated/build/lib/orisys/nPoisson.py b/dist_obfuscated/build/lib/orisys/nPoisson.py new file mode 100644 index 0000000..799a59f --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/nPoisson.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.488851 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\xa3/\x00\x00\x12\t\x04\x00"\xbf\xfd\xa2\xae\x0f\x19pT;\xd7\x9bo\x9f\xbd\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x84\xb9!T\xb9\xcbh`\xa4\x03v\xddgDC\x0e\x02\x13\x8f\xb8ig\xe2\xa51P\x11\xadT\x879I\xd7\x00\xec\x14X\xf8\xbb\x19\xcb\x0e\x86\x01l\x00\xbb\xcdF\x1a\xc4\xac\xe8\x92\xeb\x89\x19\r\x9c\xe8\xe2\xd4&\xacd\xa3\xe3\xbd\x9dL\xe4\x06Y1=\xe89?2\x98\x95\xf5\x0e \xd3\x1a\x93w\xf8\x0e\xb3\x06\xa3\x18\x9d\xe6\xd6\xa7F\x1eT\xeb\x0f\x15\xf4,T20\xf2c\x10\xb1\x02wO\x87}\x80\x15\x98\x82h\xd2&\xf3\x06\xc7\'\x9c\xf2\xf0{\xba\xc9\xfc\x9f\xa3\xaa2qW\xdb$vdz+)\xa5+\x9e\x16\xaa\x86\xa9\xff\xfd\x82=\xdd\x87\x88.\x1e\x83\xb4]\xdf\xd8\x9b\x95R@\xf8\xd4,Rw\x80\xca~;\xd6g\x9dBs\xd4\xfeT?\x8aG\xcd\xfe\x08h\x9e]X\x04\xd1\xe7\x00\x8eH,R\xac-\x08\xc1\x0b\xbd\x1c\\K\xf5Q\x91\xfc\xd8\x11\x96\xb9\xc2\xfa[\xd2\x14j&\xe0\xdc\x9b\n\xc4M\x95rl\x03\xe4\x13\xf2\xfdG\xf8\xa9g\xf7K\x06\x12\xbb\xb1\x1e\x9f\xf9\x83\\\xe3<\x0e\x1d\x869\x80\xbe:\x04\xf2H\x9f\x81R#\xc2\x80\xd5$q\x043\xc6\xb4\x138w\t\xe5G\x7f>\x93\x07\xe0\xaa\xd71}\x06\xee*mS\x0c"\xb8\xf5\xf6A\xff\xec\x94\xc4\x18908d\x11\xba\xbb`y\xefK\x87,-h\xb8\x17\x7f,\x85G\xc6%\x92\x01\x93\r\xad\xcd\x0c\x9b\xa9\x03\x00\x00\xb8\xc3zK\xb0>\x8e\x1d\xf0@\x85\xb6a\xd6\xef\xe2\xee\x9c\x1c\xb9TD\x9b\x89\'Dc\x16B\xa7\x9d\xca\xeb4.\xd1\x8a\x08S\xe1\x84TD\xde\xcb\xd5\x11>\x1e\xf4\x8cn.\xc25\xf8\x890\xd2\x7f\xb7b)\xd2Ch\xb7[\x05\x8c\x12<7\x1c\xfaiq\x05\x7fv\xad\xc1\xd1Q\xd8X\xd8\xa1(\x85\xe0\x1e\xfe\x1dS\x99$X\xfa\xdb\x96\xab\x10[\xc5\xbb=\xfaU\xfb\xf28\xbe\xe2&\xc0H\xd0\xe7\xc6\xc5{\xf8:\xa6\x16\xd7]b\xe0-\x08\x83Z\x82\xc9\xe1]\x10\xdd\xf7gH\xa7\x91\x01t\xe8\xa9RTu+5=\xa9I\xdc\xde^\x88\xdeh\xa6\xe4\xe6$?\xa1\x1f\x8e\x1f\xe0\x18\xf6#q\xd1\xda\x88;\xf7k@\xc6\x9eE\x96k\x9e"{\x86Vs\x88\\AHV5_bE[l\xe4dq\xeb\r\xe0\xe3l0\xe1\xfc\xa9\x00\x06\xc8\x8c\xa1\t\xbbn\x0f<\x13f\x9e1\x07(\xe9\xe8j\xd9\r\xe6\x0b\x90q|\xd3\xba`nE\x92\x05\xe0\xc6\xba\xdd\xe3\xc9\x0b~\x87m\xfa>\x9d-\xf5\x8f\n\xf5\x1f\xa6\xa27\x90\x05\xcfR\x0f\xd9\x81\x9c\xf5\xdb+\xa2f\x98\xf8G7C\xe6\xeak\x8a\xb4\xecR$\xff?\x15#\r^#\xfd)%8\xafP\xfd\x86\xbc\xa9\xc7\xfb\x08\xc9\xf9\xf0\xa88=O\xdb\xe5f\xc2_@\x1f\x8a\x85y+\x85\xe8\x1e7-\x13\xbe\r$-\xbaTa\xbf\xca\x04=\x82y\xba\xb8\x91\x871x\xbf\xc9\xe9~\xd4fV\x19\xe2\xf4\xa3#H9=\xc7\n\xd0\xfe\x10\x0bB\xe79k\xdd\xf2\xc6\xc7\x80\xeeF\xdeVQB;\xea\xd9b\xfa\x1a\xd8\x00\x15\x03B\x83\x1f\xfa\x13[(\xbb\xc3\xd7\xec\xd7\x9e\xfa\xdfg\x13\xa1}\'\x8a4S\x80\xe5\xe5"\xc5\xc8\xb5\x9fB\xa9\xf3\xfdT\xe0\xe5\xbe\xcf\xcd\x91\xf8Bl\x80\xd0/\x90\x84\xfeT\xb2@)!\x10\x83\xc9\x92B\x85\xcd\x99\x92\xde8O\xe1,\xa7\xe5\x951O\xab\x81_\xf9\x12\xf8\xaen\xe3\xc3\xed%-R\xa0\x93+\xacC=\xfa\x8cm\xb8\xd3\xac\xb5\x01\x087K\x83@\xbd\xcbc\x93\xc2\x01\t\x18\xddy\x12H\xa2m\x0b\tx\xab\xe2\xe5\x9f\xaf\x13\xe1`\xd2\xa9\x9f\xbe\xa4\x80\xbb\xf5\x85\x96\xa4\xa1\x8c(\x17]\x07\xbd\xea\xf8\xc7}\x11\r\xa5\x96\xf4^J\xdf2\xa2CU\xf8.\xb9n\xb7S7\xc1\xb4\n\xf8"\xdb\x12\xe4ltaS\xe3\xcb\x0e\x8f\xff\xf4\x83\x9c\x17r\x89\x98\xea\xc9T\x93gT\x99\xa7\x91Y\x8d\x94\x00\xdd\xdf\x02Bo\x91l*<\x06\xadX\xae\xec\xa5\x02\xc8N\xd5\x195\xcc84q"\x97\xb7\xa6G\xb7\xf1\xb7\xed\x8e\x1d\x97o(\xbb\x99F\xaa\x1d\xea\x16I\x81\xad\xeb\xaa8\x90Z\x99\x94\x80\xb1;_\xf9\x1e-4\xb9\x19f\xe7\x18\xd0b<\xca\xed^\x7f/\x9e\x86\xaeH\xe8&\xbdN4K\xd7\xc5\xef\xddA\x0b$\xd3s$\x12\xec\x9b\xa8$\x18\xae\x96\xd8\xb0[\xd2\xe3\x18\xa8e\xa9\x95\xdcR!$}\xf0:Lp/\x04\xa8[n\n\xe7\xbf\x9e\xb6\xde\xb2\xf5\xccY\x18\xc9_\x1db\xdf/\xb6\xdf&,h\xf1\x15dv@\x19\x14]\xdd//\xf9\xc76\xe6\x8b\x9fZb\x88\xf2\xafVr4^\xb7\x18D\x00\x88\xb3\xde\xca\xa3\xcc\xf5l\xb42^\xfb:r*\xa5kQ\xe5\x85\xe0\x01\'\x0e\xfb\x19\x1cJ\xb0^\x9bJ\x90\x90^\xa0ne\x17\xba\x1be\x02\xf3\xb7qkPle\\\x84\xbe\x85\xc9~\xd0\x8f\x15\x1a\xc8S\xa1r\xd4-\xa1\xbb\x19\x86\x1dLX\x81\xc7\xa2\x82\xdbi\xb9\xfb\xde\xd0\xc6\x06j+/\xc5Df\x01l\x92\xb5f%w\x06`\xed\x19\xba\x7f\x9b\xd4\xbeT=\xfe\xcd\xcc\xaeU\x06\xc1o|}~k+\xae\xa7-u\x1b\t\xd6\xbc\x9bE\xcc\xf0n\xe5\xc0\xf8z\x15\x0e\xcd\x97n?\x15\xb0\xe9\x03\x99\x84\n\xa4\x82\x10d\x9d\x17\xaeV\xff=\xc8\xdb\x87U\x94\x1aP\x86\xbf>/s\xa4Bz|\x1c\x15\x15}\xb3qPG39E\xbb\x83\x18\xdb\xfc0\x7f\xdck\xb59B\x91k\xa8\xf5\xc0b\x11\x8f\ti*}\xaa\x12s)\xf8\xa1\xec\x11\x9b\x19\xcbq\x17\x0e,6\xb1A\xf1N_\xd4*\xdb\xe2\xd5\xf3M]\xdd\xfb\xa8\x8eL\xfe\x80\rw|#\xf8\x88\xfbb\xea\xb4\xf0\x8c\\\x05\xe5O\x07\x8f\xb4 \xe4S\xddIZ R\x86\x82\x91\xab\x8a\xa6\x0f\xab\xd20w\x91\xbaA\xa0\xd4\x8d\xdc\xd5$\x84i\x87\xf3\x8fX^\tN\xb1PLy\x1a\x81\xeda\x8a\xce^\x12\x93d\x9f\xcb\x1b]5\xba\n3\x04\x19>\xf2uG"\xb9\xc4i:\x18\xdb\xb2\\\xcf\x96\xb3I\xcc\xdb5,^\xca\xb8w \xe0\xec\xd5\x18O\xecjn2\x9a\xfe\xd4qVOY\x9c\xe4\xf91\xfd{5\x11\x00\xa0}\xa1\xfe$)o\x98\xcd\xbc8\xf0\x17H\x9d\xbc9\xde\xc2\x04\x08\xdc\x06\x8a\xd5\\\xe5\xae\x19_\xb1\xe9k#\xdc\xaf]\x03#\t&A\x98t\xc4\x95\x1fg\x8e\xba\xc97O\xd4o\xa3F\x8c\xec\xca(yP\xc6}\x9fl\xc59\xfdy\x84y\xd2\x9f\xa2\xb1\xd7[\x07\x9b\xe9\xfa\xe4\xed1\x00\x95\xda3R\xb0\x96\x89\xb7,\xf6\x0eJ\xa7\x8a\x91RB\x14\x0c\x84<\xf7N\xbd\x1f\x88\xb0\x80\x0c\xad\xa3\xae\xfa\x9f\xb3\x11\xc77\x1f\x15\xfd\xeb\x03\xdfH\x8a\x97\xe5L\x9d<\x9d\xc9gG\xaa\xa5Rz\x17\r\xad\x94u\xd232v\xaf\x98\xcfI:\xeb\x8aw\xd8\x97\x8bGSv8\xd6=R\x92\xf4\x19]\xa6\xb6`\xcaU\xf5\xbe\x92#\xf4E\x159v\x85\xee;n\xa1!l\xe4\xa7\x07\xf8n\xe7\x0c\xc6\xb7\x0c\xbf\x11v\x02\xfb\xff\x16\xc3\xedC\xac\xd9\x1e\xf0V\xe5\x06\xf4\xc8H7\xfb\x99\xf0]\xdcAZk\xad\xde\xe6!\xea\xad\xc7\xcal\xdc\x9c\xb0\xd9)\xc4^\x9b\x7f l\xa8\xdf$\xd5\xff\x8e+3X^A\xa3I<\xbc\xde\x9f<\xe8%e\xab\xee\xe2\xc0\t\x02\x85\x7f\xe0\xe31\x1f9\xc5\xe0\xffy\xf5\xd2}\x93\xf5$\xccn(\xe05\xdb\x96\xe6\xff\xbc^\x03\xa8-\x18F\xcf\\0\xdf\x9aL\r\x00\xca\x96\xb4\xbdc,\xe8*\x9d\x88\x8d\x13\xfa\x0c\xbf\x8f9_N\x8a`PR\xda\x1f\x94\x7f\xdf\t\x16\xfa\xe4\xa3\x18\xf6\x9cD\x01\xa5\xb0hm\xc2y\xf9r\xf4\xc0\xff\x89R\xc9*\xf2`\x98\xb6\xdbJ\xebf\xb0\xd8t\xf5g\x01\x7fR#"=\xb2\x1d\x97\x00\xa7\xd0D\xc6\xb4\xe0\xfecK\x94\x8cc\xba\xb5/\x17\x18\x13\x84\xd1\xe3\xe2\xb7>*c\x1a\x81\xdc\xfb\xad\x938\x0c\xf7+\xd4\x9b4\x1fs\xe9\xa6\xbc\x1e\xee\xc1\xe6\xceL\x9b\xe2y\xb0\xdbS\xe8\x8e)\xe4|2#\xfc\xb6d\x06\xba^\xd4\xf4\xeeU\x89\xdb\xbb\x91&~_\x12\xb4\xe1\xd1$\xea\x0e\x05\xa8\xfa\xa2\xa6\x99\xcf\x0e\x00\x12\xb5\x9eT\xfdf\xe4\xec\x90\xf3\xc0`[\x11G\x98i^2f\x19\xab\x88\xa1\xb6\xb2\x16?\x93\x83\x05\x16l\x19\xea\n\x8a\xae\xd6{\x86Go\n\xff\xc5S\xcen.\x82:\xf0\xf9\x91m\xc7\xac\xa8\x9e\x87\xf5\xc5\x87P\xa3V\xdb\'\x19g\x1ft\xa8#\x97\x8a\x16\x01\x1b\xf8u\xe04\x11mj\x0c\xa7\xcc\xa6\xa9K\x8a_\xf9\xda\xae\xfd\xa4\xce\\\xed\x0c]\x13\xecv&\xf8\n\x89\x81\xf5\xa0&2K\xbeD3\x1f\xb3\xd8 \x92z\x86\x8b\xd95F"rU~\x91z\xb0g=\x1e"\xce\x8a\xe2\xffL\xd1\xdfn\xf8.\xd3\xe5},\xe8\xca\xcb\xecm\t}=\xa05>\xcf\x8f\xcd\x8c"\xcbv\x162\xa2b.\xda\xa1I?\x9e\xcfN\xa9w\x0c\t\xb1{@\xf3[\xe3\x95\xb0\x95\x85\xdc\xe3{\x8f\xbe3\x1c\x80\xc2PBAi{\x80\xf7\x9eh\x90i\xc0Q\x96\x17\xe9\xd2,\xf0)\xa7\xa6\xe7Zs@\xe8\x973\xd6kY\r\xab:\x83},\x91i\x81\x87 \xd98P\xcf9\xae\xe7\x8f\xd9\xcc\x13:\xb2\xe7\x94\xd6\xf8c\x08\x17\xa6\xfb\x02\xd5!\x0e\xca\xc2?\xa0\xa4\x17\x1d\xf7\xdc\x0e\xd5.\x92\xd4KQ!_\xb1\xd3e\xda\x0eDq\xa467\xab0\x0c\x97\xecs\xae@1{\xd4\xb1\xd0\x88Fn\x0f|0\x19\xf6\x99\xde\xb1 Y$d}s\xd9\xfe\x02\xb3\x14\xdc~\xd1\xd9pd\xb9\x92\xf4\xa2\x0e\x0fz[?\xf5\xba\xdf\xe4\xb3w\x1d\xb2{\xafS\xc6\x9d\x14\xbe\xd9\x7f\xd04)6\x15c\xc0\x1f\x0c<\x0f\x18\xf4\xb3\xe9\xb9\x8f\xbfbQ\xfcnp\x1c0k,\xda`5i\xf2d1\xd8,\xdc\xeb\xf7\x88\xee\xbby\xe7\x05%I\\\x14\x16f\xa8\'V\xe5\x16{\xbde\x18\xb4\x87\xb4G=\xf5c;F:\x00\xb2\xbd\x1e\x05\xc6\x14\x12"\x97\x1a\xd9$\xfeQ\xe0\x1av"\x01\t\xe6\xfb\x95o(\xdd\\\x81\x9c@\xc4KI\x16\x94EIQ9T\xe7\xd3\x11f\x17\xd9|\xf1\x01\xf0\xcc\x06\xe0\xb3\xce.7~\x97^L\xf8\x9ct] \xecW,\x99\x9e$,\xa7*<\xab~I\x92\xec\xd8;f^]R>I\x83N\x00\xfcV\xff\\o\xe3c\xcc\xb7#\x8b\x1e\xb7\xf5\x01\xae<\xd7\xd9\xab\x1a\xcb\xb8\xb8\xab\x95\xf0\xfeY\x06\xa6\xfb\x1c\x96\xeb9\xcc\x08I\xc8\x00\xdfKt\x11E\xf1\x19V\xa35\x92Sj\x9a\x88K9\xbc\xedv\xe5\xf6\x0cO\x95}T\x1c\xd9\x98^\x89\x9a\xed)\x13\xe4\xc83\xb2\x16!\xe4\xb7$\xa2\x18\xc9\x8d6\x08\x1c\xe4+\xa7\xb2\xe6\xd7\xa2\'$V\xd5\xbf\x17\xf6Lf\x93.\x1c\x95\xf6K\xd8g6\xb5\x85\xdc\x9bG\xd4\xb5\x88\xc5\xfe\xdd\x08\xf5\xaf\xbf\xfcj\xb3\xbf\x92\xf5\xfb\xf0\xea]8\x0c\x0f\xbe(?;\xa9\xba\xdd6\x93\xfen\xd7&\xe1\x9d*\x10\xcd\xda\xa0cm^\xc1\x91o\xee6\x07\xfd\xddu"\x10\x8d\xe7\x81\x0c\xcc\x18\x9c\x8c\xf3N\x1c\x98w\xbb_\x05/5?\xe4\xbf\xbcOh\xf7\x04\xb8u\x12\xbc.\x15\x84\xb0\xa6\xed\xf6\xc5\xf2*\xb2$7!!Uf\x9b\x8d\xa4iu\x93\x07N\x84\xe9n\xe8r\x04\x8fky\xa8\x1d\xac\xf4\x82\xc32\xe2\xde\x9f\xd3jN\xf2O\xb2\x7fJk\x04\xbe\xb4\x03cYD\xda\xaa\x0b\xa62\xa5\xf5\xf8\xf0LK\xbay`\xe7\xcf\xf1\xa2:\xb2\xe9\xe1(\xac\xd0\xe6\x15\xd7B\xa1\x82\xc6\x0f\xf4I\xaf\x93\x8e\x9f\x0ff\xad\xe4\x9b\xd9a~r\xcf6\xce\xccm\xa5\xb6x\xe8R@\x96\xbcf|2\x7f~\xaf\xa3\xc1\xe2f\xeb\xf9\x1f\x06\x1dgz\x01{-\x1b\x9a\xa1\xf3\xe4}|\x1fva\xaa\x14\xe4\x96]\xc9J\xee\x8em\xc2R\xa3\x12\xfak\xf3UE\xec\x11\x91p\x8a\x1a\xab\x95\xde3\x0f\xa4\x8c\xdc\x9f \n\xa7Q\xcc\x9e\xc6\xd5\xbc\xcc\xef1\x98\xc0K\xe4\xd8\xaf\x1d\xc5\'\xfc[\xb0\x04Q\xf8\x86\xd5k\xebf\x1b;R\xa8\xecJ\x07\xf0\xb9\x14\xe06\x8b\x91\xae\x1d\xa3\\\xc2_\x14\x96\x01\xbb\xb2\xba\xf2/\\/#@\rt\x0ep>\xc4w\x08\xcagly\x04}\x91z!\xf8L\xa4Y\x15aR\xadj*2-\xa7\x8e\x8f\\\xd7>\xef?\x99\xc2<\x96;\'%7>\x8a\xcc\xdb\xe4\'\x7fW\x82Q\x86\x05\x92\x01\xe3\x0440M\xe4\xe3\x1b-H3\x12\xe2\xf2M\xe1\x0e\xfa\xf6\x90\xc1}c\x1d;?\xea\xdb!TvM\xb7\x97\xa6\x1b\x88\\-R\xe0}\x88\xf5uqNn\xfe\xc3%\x10\xf4\x9e\x1c\x8dU\xd1\xc5e_\xa3\xee\x88\xcd\xce\xd0\xfb#\xfe,\xc96\x055\xc0\xff\xc3?W\x85S\x14y@\\\xe4\xbc\xc71\x94\xf3\xc7\xb7\x98#\xe9\xf3\xd9\xaa\x00\xd3\xc0\xe5[\xad\xb0\x17:p}\x0fK\xea\xc3\xfa\x88\x90\xcc\xac%\xfb|\x8f\xf4\xf0yW)j\x19\xb2g\xf2/|[\xd3b\xf3\x1b\x16%\x9c\xc7\x13E.\x86\xcbm\xbb\x9a\x9a1\xe6ps\xd7\x15\r\x07$\xa9\x0eW\xeeG>\x01\xba\x89(\xdc\x96\x16\xfc\x1c\x19\xfa\xb8\xe3V\xda\xb0\xdcH\xb5\xff\xc2\xdd\xdc\x9fQ\xf8o\xf5\xe4\x87\x9fnJ C>\xe0\xb7\xacH \x94C\xca\xb0\xfd\xc2\xdc\x9e\x9e|\x16ft\x9e[\xdcH\x95t\xd9Q$\xe0\x9a\xb7\xa2\x15\xa5}& 7\x18\xd4\xc7\x0e\xcc\xbd\xd37\x1d\x1d\xa7\xe4\x83\xea>\xff\xf26\xaeC\x17\x1f#\xa0J9\xe1\xd7\x1du*w"\xf3=(T\xcf\x17]$&\xb0\x1aX\x92\xeb7\x17\xc3<\xbf\x00\x02\x8b\xa3\xeeh|LtB!\xc07c\xad\xff R\xd5b\x90\xc1\xb0\x08\x88\\\x9fb\xad\xd5\x14\xa2\x0e\x1a\x8a\x14qU0{\xfbw\x88o\xb1&\x8fx\xb3\xd3g\xf0\x13\x143\xa50?\xe66\x0c\xfc\xa7a\x9d\xd8\xcb70g\xa1\xfc\r\xe7\xc8\x1d\x0b\xccSt\xbduDD-!*\\\xb7\xbaH\x81\xd9\x01\xf7\x98\xad\xfc\xed@\xffcz\xe5\xe6\xef\xcbg\xab\xf6\xc9\xe0\x88\xbdj\xef\xc3\x0b\x8c\x8a\x1e\xf0\xf8F\xc78\xa6V\xaa\xbe\xe6\x19\x11\rae\x9eV\x17R\xfbHa]\x85je\x04\xdb\x12X\xb5x\x10\xac0\x93\x98H{@\x134\xc5\x9e\xd2\x91\xcd\x8c\xbdI$\xcc1`\xe2)\xca\x0e\xe6\xbeVpz,\xd9\x14`\x18\xf2N\x05_\x7f\xba\xa3\x08ZM\x8f\x92\x13B0\x10\xd7\xd9"\xd0\xfd\xc6\xbb\xb9\x9e\xeb\xb9\xe2\xaa%\xa3\\$g\x8e\x04\x937\xbc\xc3$\x95\xab\xb6\xfc\x88\x18\x94\x07\xa9\x1b\x03\xc1XR\x18\xee\x1a\x88*\xe7aD\xed1\x9c\x18\'\xea\x15\xcdn}\xda;\xaav\x1c\xe2\xe9jX\x8b\xd3\xdd\x0bu\x8ek\x13\xd9\xd0\xf3\x01|\xc5M}\x14+\x96\xf4pb\x9cl\x92\x1e\x18\x89\xba.gq\xfc\x95x\xffzyl\'=\x84LZ9\xb0\xea I\x18\xb4\x1d\'\xa5\xdb\x1e\x8b\x1a\xdc\xfa\x8a\x83:~o\x0f\x10~\x02\xe8\xfa\x84\xf0qs\x97E:_a\xceG\xb4\x1b\xa6A8\xff\xee\xe3\t%\x9fH\x05\'\x87\xa4d\x91a\xc4\xc5\xacG\x86\x8e}\xc5\xee\x16E!\xec\x8d\x188\xbaAN\xd5L\xcd\xadh\x81R\xdd\xfb2\xfe\xdd\xe8|>\xb1\xeaq\x07 \xa8\xa7\xa9\x1f\xd4\xa5\x83\xe5\n\x9c\xa6\t\xc4\xf9\xa4qNt\xab\x95\xe8\x0c\xfbX\xbf\x97\xc4]\x01\xac+\xe7<\xc8\xaaF\xefv\x02A\xb9\xffR\x90q\xb7\xb8L\xefv\xb0\'ss1\x14\x88T\xfcm\xede\x92\x7f2\xf7\xcd \xf3\x1a\xda)Y\x06`\xc7x\x9a\x8d\x8fD2\\\x85\x80g\x159\x85\x8aA({\x82\xcd\xc69`\xe2el\\\x16\xdb\'\xed\xcc\xbe\x05"\xd6GY\xecX\xb0\xddv\x0e\x10\xbf{\x08<\xa7\xa1\xfd\x07\x12l\xde!\x1dG\x12\xd3$z\\\xb2\xe5\xbb(Oh\x03\x87\x96\xf9\xbcd\xe3\xad\xc9\x1aT\xe4]\xe2\xf65=\xcf\x06\xff\xd6\xef\x9d]\xf8\xcb\x99}\xb7\xd3\x93D\xcf-\x81\xdf\xadm\xa0?\xdd\n\xd5k-4\xf4\xdc\x9b\xcf\xfd\xe0\xa2\xf2]Tr\xf9\xb8_\x14\x07\xc3\x8d\xaf\xdb\x0e\xa9\xcd\x02\xed\x89\x7fw\xe7w\xe11#\xc62~\xd8\x94(u\xd3\xe2\xc2Y\xd4\xd90\x83\xfa\xff]3\xd77x<\x11\xefw\x8e9/\xd0N\xb2\x1b/\x96)\x9ao\xc1\xfaU4\xa5\xe9\rmE.\x17\xf8z\xc2\x14\xac\xfd?\xe6\x0e\x11$\xff!\xc3\x0b\x16\xdc\x0fo)\xea\x9a\x05\xb7\xf9\xd4\xa7\x00\\9\x11?\x05\xc4\x0bi\xb3\xf2u\xf3\x1b\x07\xb7I2<$\x07\x11\xe9\x8fN\x0e\'\x0f\x1e\x80\xa2\xcf_\xf6(~f\xe9\'\x14\x1f\r\x97\xa4\x88\xdb\xd9S\x93\x0c\x0e\xaa\x94\xdd\x8c\xb7l.\xc0\x0b\xb0w\xc7\r\xcb#F\xe1\xddv^0[L.\xd8SC\xf6\xdb\x04p\x88\x08\xb4\xc6\t\x88Ql\x94^\xc9\xd0\xab\xcbF\xd6\x05~\xc0\xb0|\x00\xe1\x1d\xd0p\xdf\xab\xe1:\xa6\x8cd\x93\xbc2u\xb8\x8b\xccQ\x18:ur\xc5k\xed\xc8M\xb6\xbe\xec\x91H\x9e\x83\xa7W>-\x07Jj\'\x91\xd9=\x01\x93\xc6C\xf8*O3\x06]\x90\x11?z\xb0.+He\x81\xd7B\x00l\xe8\xdc\x94tB\xafM\xdf\xd5\x07\xed\x80\x8c\xb1A\x13\xa3\x98\xaa\xdd\xb0\x97_\x87Q\xc8\xc6\xff\xf2(\xff\xcf\xe7Gx\x9a\xcePC\xbb\xd2u\xf5\xd8#\xd1\xa9\xb1\xdeE\xe6\xd0\x04\xeaK\x8fWZ\x16c\x86{\xc0\x83\xa0\x80cj\xcc\xcd\x15\xc8\x061\xf9\xcc\x9c+\x1a%7\xca^\xaa\xf3\xce\x87z\xff+\n\x01\xb5h&f\x97\xac\x8c\xe1\xb3\xd6\xd3\x9d\xe9\xe5*\n\xdd\xa9(\x88_"x\xb0\xba\x1efjB\xd7\xc3\x96\x928\xd5\x0f{\xa6\x80\x13\xebo\x08\xbbL\x149\x83\x18r\x86\x8a\xc6\xdd\x86\xc1\xea2A@\x06\xca\xe6\x0f\xd9o:\xe8\xfd\xee\xda#\xa2\xaeW\x8c\xc8\xe4\xf8\xdcQV\xd2\x08\xa4\x91\x7fh\xce\xda"0\xac\xa7\x19\x9e\xe2i\xac\xd8\xac\x07\x83\xed\xe7 N3!\x0e\xe0\xf6T\xc8~^\xdat\xf9\x99\xcb\x91\xdc]\xcc\xba-;\'\x1b\x93\xd3r\xa0}\x81\xa6\xfd\xd4\xd2O \x8a\xdf\n\xcb\x99\xb6xg0\xdf15[\x7f0\xac\xa1\xe4G:\x13\xdb^\x8d\x83\xf7\x17=M\xdd\xd6?\x15\xff\x88/\xc5jb>\t\x8f6\xbf\xffo^\x11\n\xc1\xec\xb7n\x1cY\xb5Jv\xa3\x9c\xa5w`\xf2\xb6 j\xad\xd7i\xf8L,\xd5\x03\t\xc9\x80\xb9l}%\xf5\xafv\xe4n#\xda\xf3$cKTqm\x85;\x00\xa9\x08\xcb\xa5\x00f\xfd\xa3KM\x97y\x8a%V\xa4k\xa8\xd7\xb2\x87\xbd\xb9\xfc\xc5\x86x\xdf\xd7\xa2\xb4p.\x90\x10\\\x81\xf3\x9e\x9d-\x10\xe6\xda>k\xe21\xd2T\x86\xf5t\x12x\x9f\xbfX\xb0\xb6\x86\x1a\\0\x7f\xbd\x16\xea\x97\x1d\x9f\xe0\x9a15\x12\xfc\x87\xe1za\xf1\xfe\xa4\x04!\xba\xd4\x805\x0c\x86\x14/?6m\xa7\xa9\xc2R\xe9Q\x93\xa2\xe0\x012\xdd\x06Hd\xb3\x9d\x92r>l7\xb9\xf0\xcf\x93\x95\xf6U2fg\x83\xe3\xdc\xc3\x00%\x90g\x10\xc3\xdc\x8f{\xe1\xffy\\\x0b\xb5V\xc9\xdcv[i\xde\x88\x7fpP\xe1Kyk\t\x96\xee. \x9ad|\x83b(\x04\xf24&\xa14\x17\xbf\xe8\xe8\xf2\xf6\xfa\xdc\xdc_\x90\xd9y\xf5\x94\xe4\x01m\xf4\xd0l7\x8d\x01\x00\xc4\x0c&}\x1c\x99\xceJ\x8c\xfd_\x01\xf6\x14b\x14\xd6\xc7Q\xb5\xd7U\x03&\xe3\x7f\xb98\xd8G\x06d{c\x81\xaa\xfc\xed\xb3\xacu\xbb\xe0\x01BF6A\xcbQ?\x05#\x95\xb8\xf4\xbfD\xd9\x14\x7f\xcc\x1e\x99L1\xec\xf2\x90\xee1\xbc\x0fZ\xcd\x94\x1b.\x06~\xbf\xcc2\xbc\xae\x8e\x86\xaf\xa6L3\xe22\x12\xdfT!\xd2c=\x83\xe12-\x0b+\xf0S\x80]\xa7\x87\x8a\x1e\xbdm\xaa!x\x8b/\x9d\x82$\x96\xa6\xa1\x80\x8e\xe1\x1a=\xc0\x8d-c\xd5/\x8f\xe6\x9d,\xc1\xf2\xe4q-\x18%\xef\x99j\x15\x10lB\x067\xabq\xcd\xe0/f\xf9\x86\xbb\xd3\xbd\x9eg\'\xb9"=\x89\xe9"\xbd!\xceoD\thE\xd1\x95\xee\xc9\xa9\xff\xda\x8b\xefY`9\xa8\x07\xed\x14l} \xd7@!\xf8\xfb\xdb`\xd6\x9d\xff\xdb\xa6=\x17\xa0\x05\xb0\x1d;\xb9\xe2\x93\xfc\xf2\x94r\x1d\xce\x01\x15\xa0;,\xbeo:\x1f`\xc1(\x87\xfe\xf4`\xce7\xe3\x9c\xb5\xdbk\x08\xa5\xcb\xf2P\xb0g-\xfb\xb5qY\xdc\x12ha\x90F\x03\xf0\xae\xb9\xc7\xe4\xa1)\xe1A/^z\xa8\xcf\x08\xb0;>\xd4\x8f\x14\x0e\xfec\x96\xc9\xa8yB\x8b\xd2bw\xaelW\x83\x83\x80\x92\xaa\xccyHW\xdeFyF\xb4\xe8\xce\xc3NK.m\xf3\xc6\xcac\\\x0cv\x15\xc7\x06\xc9Ge\x83Q\x10\x86\xa6\xf5U\x06}\x95\xc7I\x986\xcd?\x94U\x1c5:i6\x8d\x84\xdf\xbb/\xc9c\x894\xb8\x9d:\xd0\xb3\x12\xce\xfeqd:8C\x97\x95)\xa6cS\xa8\xb6M\xe0\xee\xc5\xb4?w\x11\xe7\xf8\'g\xa63\xb0\x0ez\x9e?\xaf\xe1\xf3\x8f8\x83&\xe17\xac\x03Z\xfc\x06HF\xc6Ou\xa1#\x1du\x8e\x98H\xfe\xc5\x80\xaa\xe1\x90\x17"\xc2\x9a\x9b`/R\xef)&2~\x0f\x90\rl\x921\xe9U\xde\xf5d\xd8\xfc\n[]LS\xb4\x1d\\\xe1\x9a\x81\x91\x03\x1f\xb5,\x83\xe6\xbbd\n\x9c\xc7\xa7\x8dO\xb3\x03\x04\xfc\xb0\xcc\x82\x16#\x1e\xf9\xfc0lW\x125F\'\xaaZ|&N\x83\xa10.\x01\x07\xd3i\x92\xaa\xdf\xe8r\x10\xa7\xb0k\x9a\xa9gaD\xe5\x02l\xff\xb0\x12\xe3\x82H\x89\xcfm\x83 \x15\xad\x0bF\x17\xf6\xaf\xccU\x1e\xa0\xb8\x7f\xe1\xb1\x1f\xd9\xe0\xaf\x0c\xd83<\xdbm\xf3\xd2\xeb&\xd5\xb1P\xe8H\xe1\n\x06a\xd0U\xa8\xc7\xe9\xf8\xa5x\xd1\x9a\xce\x89\xa9mR\xa6\x8cs\xe8[3kv\x86\x9e\xc6\xed\t\x87\xf2\xdf\x07n\xd9\x15\xcf\x13\xde\xdf\xc7/\x8eN\x97\x92\xd6\xb3==\xb5\x81\x82b\xf5\x86\x80W\xa3\r\xbbg_g$)\xea\xca\xc3\xfa\xd1\xfd\xe482;\x06m\x04]m\xc9\x1b\x8d\xb4\x13\xdc\x91i\x93\xe0n3\xc4IfA\xa8\xe8)l\xc6\xb6=\x08\\\r\xea\x95x\x00hWo\xa7\x93\x91\xd5\x83\x16\x15\x0c,\x98F\x1d/7\xe4\x0b1$\xd5\xfa\xbfp\xe4\x85>\x90\xbc|\x90(\r\xdd\xaffQ^\\\x1a\ny\xd6(\xce\x8a\x95Bh\x9aN\xdf7\xc6\xb4aZu\x0c\x89\x1eVSV\x7f\xc0\x87\xd1b\xfbP*\xab*qr/z\xd8\xa4\xf8\x08P(d-&_\x97M\x1d\x06\t\xe9my\x92\x90]m\xfc\xfa\xe5\\\xda\xb4\xc5\x97\\\xcd\x1e\x98\xee\x18\x822w(\xe1rK\xba\xfc^\x7f\xa3\xb1{\xb2Z\xc5\xec\xfb~W~\xa1\xfa\x15\x14+\xe8\xc5\xed\x9d:+\x8d\xca]\xa6\x8f\x90\x8f\xa1\xe5(h\xa2\x84I\x89>BL\x19i\xca{\xd1\xfc\x05]\xf1\xbe\xb5\x83W\x11\x02\xac\xfa\xc3z\x07\xe0\x05\x18\xf7:\xd9su{g\x81\x84\xbc\xccaQ\x906\xa3\'6\x9f\xcc\xfc\xbbY\xb521i\x9a\x89\xd5\x89k\xf3\xc4#.\x8bn\x91\x95_G\x8f\xa9\xaa\xfb\xe1G\xb1\xc8\xe0`;\x86]\xb8<\xea \xda\xe0\xe38<\xdbcuXl[Nn\x9bW\x89p\xa0\x05d\xc5\x1f\xe4\xe3Y-\x7f,\xa1\xd7W\xe9\xcd\x985\xa8\xcd>\xee\xb0\x18\x84f|\xa8#\xb6\xc9\xa4\xe2\x87\xd9L\x9b\xba\x8cy\xa78\xedi\xe0\x13I\xa3\xdf@\xc0\xaa\x9e\x03\x88Xc6\xda2#\x06E\xb4\x12\xdb\xa2t\xe49v2\xbf\x83\x16:\xe8>\x15\xe1\xe3\xc8\xd3\x85\xa1\x1fC2\x8f\x85U;\x93\xfa{]N\xc9\x86\x82\x83\x98\x0b\xdf\xe6\x0b\x13 \xadXX\xedA\xd1e\x9eS\xcf\xce<^ID%\x946\xf5\xb0\x0b\xd19\xde\x90m\xf9\xdbw\xdd\xb2\xafuY\xa46!:\xbeo\xd5\xce\xdb\xcb\x07Q\x9b\x07~\xfd\x18\xea\x12m\xa7\x8a%L\xc8\xe2&\x99\xaf\xd9\xd4\xd3\x04\xb6\xe4D\x9c\xe8\x12h\x99\x97:\xac\x86?\xd5\xe6\x8fw\x16Ork\'M\xd4\'\xf4\xb5\xc01\xc5\x96%t\xacR\x97jjPsF\xd5e9^u\x96OW\xa4\xcfo\xfd\xa1\xba\x0c\\0\x95;\xa1\x06{\xbb\xa2\x81|\xca$;\x98\x9cb\xfe`4\x1d)0\xdcb\x18;~\xe9\x8a\x8e\xbe\x04x\xd0\xbc\xd2\x06\x8a?\xed~\xf6=D\x9c\xce\x8bH\xad\xd6\xe8\xc23\xa2\x89}\xd7\x1a8R\xf1\xf8oZ\xd4QK)\x1d\xc1\xb4\xb6 \x9f9\xcc[\xa5\xf0\xc55Lj\x01\x12\xe8\xbb|\rM\x87M\xb7z6\xa2\xf1V\x93\xff\xbc\x9f\x013O[\xc6\x00\x90\xe4\xa8\xd2\xaaD9\xf2"\x98e\x85\x9b\xd7\xe4\xd2}\xfd2\xf1u\x81\xc1\xb77\xeb Z$A\x1fz2\x822M9;e\xf5\xecb\xf9\x81y\xc6\xc9RW\x91\x1a]\xed^U\xc8;\xec\xc3\x83\x87\xd0\x86\xe7\xdelb\x8b!\xb0\x1e\xe5P\xdbi],^#GW\xdd_\x1c/\x98\xee\x17i\xfc\x04\x19\xed\xfcvC[\x12\xa5\xd6P\x81\x1f\xa3\x9dx\x1c\xcd\x12\x8ca0\xcd\x94\xa3\xf6Y\x94\x05\xccA\xf2\\\x87]\xab\xc6\xca.0\x13\xd9E\xfc\x0e58\x8f\xfa\xb4v\xdf\xc3\x94:\x96\xda?\xb9;\xa6mKl\x95}d\xfc\\\xf1\xca\xcd\xdf9K\x13\xbf\xeb\x813\xf1\xb0\xd8t6@H\x83U\x03r\xe8\xf6q\x1f\xf8\xe0\xd6\x0c{\xb4\x03\xc3K\xdb\x8c\xff\xac.\xdb\xc4\x85\x8d\xc4~\xf3\x195n\x00\x81\xf5\xae\xf1>%\x9am`\x11K~\xe7\xb2\xb5\x14\x15\xb1d\xf8\xf8\xd7\xb7C\x07\xf6\xb7\x10\x04*\x8ct\x1f\xebq\x05\x05Ct\x89\xd9\xce\x95i\xa2\xd0X\xa2\xae\x8a\xa5\xbc\xd7\xab\xc2\xf4\x80\xad\xb6\xaa\x0b\xc3\x12\xe1\xdb\x1b\xfaS@\xa4Tp\x9e\xa1\x19\xf8\x91\x89\x14\xbc|-fo8\x92G\xd7\xf3L\xd8\xbc>\xc7H\x04\xbd\xa6\x94\xa8\t.\xb1c\xb52\xd0\xf6\x8a/\x91\xcd\xc2x\x008\xd2i\xd4\x89R\xd4\x83\xc4\x0fG\x0c\xdf\x86\x16.\xf0\xe3P\xa1\xa9\xdd\xd2\xbc\n\xb8\x9d\x92\xe2i\xd1F\x98!\x9b\xc2G\x11r\xcc\x11e0l\xb8Y\x86\xab\xa2Y\xe9\xd5\xe1\t.\xc9\x83\xdeDq\x9e\x99\xa7\x05^\xf6\xe5\xd2X>lr6\x9f\xc9\x18i\x0e\x07\x13\x10\x8c\xc8=d\xd8\xcc\x90\xb9\xe35\xe2\xda\x92\x0b\xdeQ\xcb\x1dLM\x91a\t6d\x1f\x999\x904\x16\xeb\xa6\xef\x04\xa5\x08\xb3\xe2\xd5\x89\xad\xbb\x81\xcdC\x9c\x07\x8c\x16\xb6W/x\xc0Y\x07\x98\xe0\xa6\x92(\xbc\xbe"\x06C\x01\xbb8\xce\x92\xa9\xc2\xe6\x0cA\x81\x15c\x9c\x0eb\xcd5\xfcsa\x9a\xcd\x0e\xd5\xb7\xd4\xc2 lI\x10\xcbAq$\xbb>\xea\x90\xef;w\xf1\x13C^\xcb\xa6(\xbf\xdc#\x173,\x8e"\x9b.\xacc4\xf2\xbc\x9c{\x80\xac\xd3\x8a\xcdM{\x0f\x15\x0b\xc6\x8e\xbd\x12 J\x1e\xb2\x077\xc4\xc3\x13\x97\xa6\xac\xb4\x8a\x7f\x0c\xe9\xb64/r;\xf1\x04\x1c\x13\xff\xcc3\xa1EEG\x89\xb0S\xda\xec\xc6\xe0\xafW\xe8\xd8\xe6\xa0\x96\x96\x84\xd5\x95\xf8\x95T\xef)\xbd}\xb9%\x85\xadi@T\x93X4\x8df\xa8N^\xb3K\xd1\x1d\xf3\xf2{\x91\xd6\xad\xd6\x94YMBB\xae\x19\xab\xf4p\x19\x01n]\xdc\x94\'\xc6\x9d\x08^\x9f*\xf1(\xf7\x98\x1b3]\xb2u`\xbd\x0b\xfb\x82\x87\x07\xde\xf9L\x01\xcb\x85R\x16\xbe\xf8\xbb8\xe0i\x01\xb3\xee \xf0\xc9\xca`O\xff\xe2\xfa,\x10i\x9dP\xf7\xe3B\xfc\x81\xca\xfe\x91\xe2c\xe2,j\x91\xb9\xbeR\xf1E\x8c\x9bE\xab\tD\xe0\xec\xd0>\x1a\xfa\xe5\x04-8\xb3Q\xdd\x9dR&\x89\x8d\x99\x03\xea\x80\xa3-z2\xaf\x017\xfa[\x06m,NN\x92\xc4\x06\xdc\xc8\xca4=O\\\xd1\xeb\x8b\xbc\\1\xad\nm\xed\xf8\xe9\xbf\xc3\xf4\x1c4\xa0\xe6\xdd\x87\xf3W\x82\x99\xb9\xac\xfao\xba\xc2\xa6\xe7\xd6b\xf5]\x06\xd4\xc4\x1d\x98/`\x9fs\xb0\xfb\xeb\xc8\xba\xaf\x97c\x1dSQ\xf5\xce\x16\x7fB\r\xd8\xf2\xe5\xe1\xfb\xa4/\x1c\xa7X%\x1b"\xfbm&\x91e^Wu\x8e[QlE\x8b\x7f\x83`\\\x00\xce\x8c\xe5\x83w\x10\x8b\\[w\x85\xbb\xa5qNt\xf6g\xed\n:\xe4\x94d\x87\xa1\x95\xd0\xd9\x15t\xf2\xa9\x82\xd2\xef\xf4\xc5.\x93\xc0~\xc0z\xeb\x13@\xae\xe7\xe8R\x14\xd4\xfcU0t\x19\x9c}4\x93\x86s0Yi\xfe\x07\xab\xe0.Z2\x95\xdf\xe2\xeb\xac#}\x8b?\xc8\xc1\xf1\x1ds\xe3\xb6\x16J\xc1\xa3pMH\xdf\x9c\x8b\xa94"S\xf5\xa4Y\xd4\xdfZ}6\xac3l\x94\xdd\xfc\xdc\xdb\xd5\xa7\xd3\x87\xce\xef\xf8z\x1b\xe3\x11\xc2\xef-\xa2\xdf\x99k\xb7\xb7\xce\xff\xd4\xc6\x93\xfa\x0c\x1e\x9d(\xe96\xf5\xcd\xd0C.\x9b\rG\x84\x1b$\x95\x116jL\xf4\xb4\xf6q|\x1c\x05\x19-sN&f\x8d\x98=z\x8a\xc6\xec\x94#\xe4\x8e\xa7\xcaUo\x0c\x06\x99H\xeag\xff\x00\xdcF1\xd8\x18\x17\x81\xbf\x15\xab\xa9_\x8c\xb3\x93m\tQ{1W&G\x0f#\x9c\xf5?i\xa9\x86\xa1\x82\xda\xc9\x87U6\xc3\xcf\xb4%\x13\xa2\x99\x1a\xa3\xfb<\xe5\xebs\xae\x0f\xb5\xde=\x9eA\x8c\xdb\x1d\xe8\x95tB\xb6\x9ah<\xa6\xa1\xa0\xa3\xd7\x98\x05\x00\xe1\x88\xe5\x01\xde\x16b\xff\xbb\xfdG\x84D\x95\xf8I!\x03)\xf9\x01F\x0e\xb8k\x06\xf0\xc6Wp\x9b\xdfx\x0e0\xe5\xf3\xc3\x10\x92\xce\xfa\xe6\xfd\xca\xc4n\xf4\xfcG\xf5\x84\x19\xac]\x067\x99\x8b>5\x80\xd6\xf5\x91\x0c\xc9Z\xaeX\xdd\x02\xfc\\\xbe\\N\xefB\xfa\xa5P\xa7\x9e\x7f\xe9\xaa\x83\xaa\xdf\xcc\xe6\xff\r\xc1)\xaa\x91-)|hc\xf7VZ\x7fXN\xd0\x05\xcb\xb4\xdc#\x103Sm\xaau\xc3\xfd\x10:\xd26P\x82)\xad\xd0GI\xf9\x86m\xb0\x7f5\xd6\x94\x18_\xd17\x0e\xf3\x83\xa8A\xaa\xd4\x0c\x1c\xaf\x0b\xabJ\x17h\xb1w\xee\xbc\xd7C\xa5\xf0(CV\x97\xd7$;\x85\x18\xa1\xd1[\x80\xbf\xe7\x16\x83\xa5D\x82\xd3<\x0e\x97`XC\x11pbH\x89#\xe1B\x7f\x99\xdeJ\x99cX\xd3\xb3N\x92\x85\xf9\x83I\x18\x86\xa3\xb07n\xeat\x00\xae\x04\x8b\xd93\xd4\x83.a\x19\x0c\xbd\x9amq\xd1s\xba\x07\xd8\x1a\x12z(\xb1\x13\xb4\xc0\xd0\x92\x81\xde\x0esf\x90\xda/Io\xf7\x82H\xc0\x13\x17K\x03xz>=:\x92\xf1@\r\x95f\x19K\xee\xd1E\xc4\x8a\x85xE\xc3\x87\x1b\x81amj\xdf\x99\xa5\x86\x9f\x0e\xad\xb0\x90\xa4AZ\xe9f\x9b\xeeU\xae\x82\x9d#\xed}\xdc \xc1^\xf6\xb2\x05\xc1U\xed\x83\x89]\x02A-\x96{\xfef\xc0\x81\xd2Y\x1f\xe8\x9b`\xc5\xcc\xee"8\xf9\xff\xcc\x1f\xb8\xe1\xad\xdb\xda\x95\xfa\xf6\xe9\xbd\xf5\xb4\xcaZ2c}\xde\xc8N\xfe\xfa@\x8a\xfc\xeaG\xcc\xdb\xd6\x84D\x10\xc1 \xaf\xae-\x9c\x80\x1c\xd4\xb7\x0e\x0e\x1a\x95\'\xce\x10\x84)\xa2\xa8\xc8\xa2\xb8SF!KF\xd0W]\x93\xea\x83\x9e\x8a;t.\xe3_\xed\x0c\xfb\x9aY2\xc5\xcc\x81\x8a->\x8a\xe3D\xea\'\xcf\xfb\xf1\x18U\xf2\xbc%\x1d$^0vU{\xd5\xe9BP=8\xa6\'\x16N\xd4\xb0\x8e\x98\xd4%\xa5\xfb#\xbd\x91.0n\x1er\xa3[r\xd9<\xaa\xf4(\x19\xc9)\x13\xf5O\x02o\xfe\xdcGZ\x9eA\xa5D\x9d>Q"\xa2\x17\x0cP2\xa6\xb4\x8fo\xf5\x96L!\xf5\xd5Pqk1n\x9c\x06\x0e\x91\xbc\xd66\\\xbf^\t\xe3\xd5F@X]%\xc2\na\x80\xe8\x83q\xc3<@\x9b\x97\xb6\xa5\x0ci\x9c\xeb2U&\xa9}f\x85\xcc>\xf1\xbb\xb5O\xf0\x9dM\xf7\xe5\x02\xb1\xd4\x98W\xbd\xac\xfeM\xb7\xdbx\x98b)\x86:\xc7\xc6#\x1a\xce\'\xb9\x04\xd4\xc4i\xb4P\\\xcc\xc2\x1a\xea\xb3\xa2fJ\xcfT\xb8\xd5\x7f\xb6\x9e\x137\xe8\xdc\xb9\x9a\xf6\xa8\x0c5x\xf7\x1e\xc3\xd4\x90\xabV\xa6)@\x95I\xc2\xbf\xc8\x7f\xab\xfe\xd5\x91"\xcb\xc5\x07\x1d\xbcJ\xce\x19?\x1b\xff\x13i\xfc\x95\x07\x11ui\x11O\x9bW\x0c\x8b)*\x81\xe4BB\xd0\xcb\x87\xb6\x86\xaa\xbef\xa0\x94\x19\x16\xfdXH\xae\xa6\x17jv\x80\xce#,n\xfd\xc7\x05\xf6\x96K\x9bx\x9e\xc2\xe5\x0e\x94\x0bE\x8af\x13s\x07\x15\xb8#\xe9\x05\xfa\xedu\x08\xe5aJ\xa3\x189,7A\xf3\xbc\xf2\xbdD(4\xe3x\x13\xf7\x054\xdcp\xc0\x9e\xa0\xcc\xf4\xeb\x958U:\xfa?\xd3k\xd9\x94S\xd7,\xe0\x13N\x94\xff\x9c.\x9e\x03p47u\x90R\x8ax\x8eXs\xc7\xc0/\xa8\xd7>%S(}\x8e\x1b\x90o\xbf\x9a\x04\x0e\xaa\x06\xbf\xcf\xbf`s\xa7p5\xf9H\xc7\xbee\x0f\xben|\x07RC\x0f\xb1a\x1a\x13\xc7+]\xff\xdeh*\x86E\x03\x96\x1b\x99rG\xba\xdcCGQR\xcb!C(y\xb3\xe8),!r\xf1P\xe3\x13G\xdc\xd09\x89\xcf\x9b\xfe<\x08\x02\xb7\xe3\x9d\x81>\xc5\x14V\xe4\xa7\xa1^\x07_\xdelat\\.\xa9\x1b\\\xa6\xc0Z\xf1\x94\xaeo%G_{\xbc\x9c\x06ITm\xefkZ\xed[\xb3=\xbb\x91\x87\xcc\xac`\xdcuio\xe4\xe6c\x95N\x1f\x8a\xb2\xfe\xbe\xce\xa5\x97\xb9\x03Q\x1aq\x9bq\xa8\xd3\xb3\x86\xf8;\xfd2f\xf7\xa5b\xe4\x7f$\x1a\x16\xba]\xe9\xebX\xe1\x96\x90i\xdf\x92\x8fp\xdc\xab1S\x0c\xfa\xeb|\xf2\x02\x99-\xbf\x97\x18\xab\xbd\xfe{\x83\xa0N#\x84\x80wZ\xde~\xb0)\x88\x0b\xb2\xe3\xfa\xadt\xf2\xc4$\xf93\xac}\xa8"&;{6#\xc2\x19\xb7\xc0\xa4\xcb\x0f\xdf\x17\'\x93$+j\xc8\xdd\xfeJz\xaaga\xf2\xe7\x02\xb4\x12d\xd3\x04\xad\xa9[\xa1\xd6Y\x9aXJK\xf006\x17\xd4\xe1uZwX\xd3R\x9b\xac\x06g\x95\x19\x06\x1e\xe2\xbe\xce\xc6ZJ\x87\x1a\x14\xe3\x9bl{|\x18Ix\xc1=m\xa2\xba\x03\xc0\xeb$\xb4}\xd1sy\\\xcf\xab\xd8>\xe1\xa7\x02\xf8\x12A"jQ\xad\xbd\x8d\xc8o\x14\xfee\xf6\xf5\xed\xddk`\x04\x19\xd9M\x13x]\x11\xd1(\\\xb4a\xe6\x98\x1f\xca\xfbr\xbb\xa0\x90\xe9\xbb\xf2;O\xd8*\xaa\x07\x16al5\xca\x97\xf4\xf7\xd5\xe7}\xf0\xbdO\x9a\x96\xb1\xb3\xbb\x9b1\x8a\x01r\xa1\x04\'\xc3\x03\xd7\xd5\x1a\xcc\x1fR\x12\x1d\x98\x1fr\xd1\xf4\x1eE\x99\x8c\x1eP\xe8:m\xf7r~p\x86\xf4\xc5\xf7\xa6\xbf\xf4o\xc5.\rH\x1b\xc8\xe5m\xce\xa6f\x83\x0f$Y\'B\x05U\\\x06\x85\xf0\x08\xc6\xddb\x0fL.\x9b2\x04Sp?\xe3u-\xbf\xdbXE\xb9\x9a8\x1a\x8b\x18\x95/\x02\x12\xee\xa7\xcb\x15\r\xd2#\x90\xf5\xd23\xa7m\xaa\xd1\xfaH\xe0\xfbG\xe9\xb3mFHN\x9c\xe1\xd6Q.\xae\xb2\x04/\xdeO\x8e\xe8\xfb\x06,\xf4\xb1\xe5\xc0\xce\xd9\x85\x9d\xa9\xf2Y@\xe8\xf3\x18\xddX\x15\xaeZ\xacbZs\x92\xf4\xa4\x05\xf2\xdeh\x07\xc8\xb9y\xcd\x07q\x02u\xc2\xbe\xb9\xf5{?\xa0\x1f\xd9\xda\xf6Ay\xba\x87M\xf9Y\xea\x94\xb80+*\xc0\xac\\\xb5\xed \x15U\x13\x12u\x9a\x19\xcc\xf5\x1fM,\xb1\xaa\x1d:\xc3\x0cf\xcb\x1c\x98\xd8\xee~\xce+\xe0\xa3[/\x8br\xec1\xd1\xc8q+\xbe\x86\xb4%\xa89P\xab\xde~\x98\x91\xd4\xf5\x88\x8c=\xff\n\xd5cu\xd5\x96/e\x03\xb5\x9fI\xbePM\xacM\xfbM).\x04\x9cS\x14\x82\xa2\xd2\x111\xdb\x03\xbe\xe1\x88K\xcd\x1fQ$\xd9\xe7\x05\xac\x06\xceW\xc2\xe5_\t(\xdfDh\xf2\x9a\xd1\x8e\x88\xc1K.7\x1b\x93\x12\xefl>\x14J:x\x90\xc2\x00\xd9-\xea\xa7;z3z`r\xa6\xe5\x01\x8di\xb2H\xfc\xa5\xc2\xc3vJ\x8c\x14T\xfa\x0f\x9a\xcc\xcdEEKW*`+\x8a\xef\x85A\x91S\x10\x080\x84C\x1a\x0f\x90\xff\xda\xf6\xe3k\xaa\xf8\xbd\x98\x8agp-g\xa9\xdfbC\xd3\xfc\xda\xee\x0f\xfb \xf6\xf7\xca\xa4c\xd6\xa3\x10\xf0IWM\xa9\xedy\x90\x8a]\xcbt\xe1\xe7\x9b\x9f!]\xa8\x1c\x83\xcd\xee\x8dH \x1eJ\xdc\xa5O\xf6\xe1\x99\x88\xf9\xd2[Xjb<\xb2\xc6"%\x9d\x82\xadQ\xafv\xa44Z\xa0\x90\x98BC\xc2?\x1d\x19(\xba\xd5/\xdcVA\x8dpE\x0c}5\xe6\x8a\x00\xf8\xd4\x9d\x97\xe6J@\x13m\x99\x80k\x82T\x01\x93\xd5$4\xd9\x07\xae\xb6i\xb9\x97)\x0e\xe5]@\x90\xcf\xdcL\xea2^\xc0\xef\x88\x91\x98\xe6F2\x81\xe4;\x83\xbd\x99\xc3]\xa2\xa8\x08\xe7\x04\xeb\xee\x81\xf5\x9f\x8e1\xee\x1e\xe5b\xc0#i*\x93\xe4\xa5\tl\x1f\xf14%\xa0\xb4\xc9\x12[\x999\xde\xf5\x05\xf3\x83\xa0\xbaJ\x14\xe4*M\xd9\xa5#\x17\x9c\xcdCZ\xc6\x06I\xec\x88\xf2\x93\xcdp\xa9\xcb\x89\xb3\xc8oIe\xc7j\xcf\'\x1fN\x1a\xad;\x88Ei^\xa2;\x13\x8e\xda\xe5F\xf4\xddQBtPe>-\xb4\x19\xc8\xb0\xb7I\xd2\xff\x8f\xef\xc2M\xe3\x8f\xb5\xfc\xb3\x11\x90\xdd\x8eA,\xf8\xc4\xe5 %\x06\xb0\'\x9eR\x14\x8acs\x10\xcd\xbb\xb3\xbb![\xad\xc8 \x19U\x80\r@\xe5 \xfb\x82\x0f\x12\xfb\xcb\xcae<\x0f`H\xe1^\xff\x18VU\x97\x1d\x9d\xd0\xa9l7\xbf\x0f\x0c3*\x14ZOc\x13&\x94\xb7l\xd07\x96\xdc\x11F\x85\xd2\xd9\x84\xc0\xd62\xee\xdc\x13\x9fz\xd8\x1ew\xe7\xdb\x06\xf3\xe0\x18\xfc\xf8QK\x86]\xe8\x0f\xee\xa6.\xbaa9\xdf\x95\x13R\xbc#\x14\xe4\xc9+\xeb\x1b\x84\xf3\xf6\x00\x9a\xd9qu\xf7\xdc\r\\\x8f\xd6\x12\xf6\xe9\x10@\xbd,\xd7\xbe\x85\xe4}M)/\xc9\xe61E@H\x90/\xfae\xf7;\xb5\xfcs\x9b\x9b\x831 \xbd\xc4\xc3\xe7\xdf\xfb\x83Q\x90P\xc84\xc3\xf1\xc2*\xaff0P\x10\x06w\x15\x9c-V4\x1fm\xb3\x91\xdct\xb7\xde\xd0m\x02*\x02\x87\xd9\x87T\xf4B\r\x02\xc7\xae\xec\x10C\xca\x1co\x95\xf8\r\x05\xc3Yt\x06M\xaa\x97\x17Q\xc1o4*\xa4\x8c@\x7f\xaf\x0e\x89{\x88$\xae\x97\xab\x91+l,V=D\x97\x95\x91\xfbQ\xfb\x90,s\x006ek\xc5@\xd0Fe\xd7\x16\xf0\x194\xac\xd2\xb4\x9a\xfb\xfb7\xc8\xb7](K;\xe6\xba\xee\xee>=\x9e\xd4E\x11\x9c\xbd\xb6\xbe&\\Y\x99\r\xa9\xceLn\xc9\x0c\xe8\x85\xfcm\xadD\xb6\x90\xd4\x16w\xb6\xeb\xd0\xfd\xbe\x7f9lg\xcc\xb6Dq\x1c\xb9J\xa5\xf613,\xd6z\x11vH\x1f\xf0\x88)\x14\x10*[<\x03F\xe9\xb5\xc2_\xea\x0e\xcd\x93#-\xe6\xc3\xfem\x8e\x8a\x936&\xf9\x00\x98\x0f\x87\xa2\x93r\xc5{\r\xb4\x1d(q\xc5\x12\x85&\x0f!\xdcK\xbf8F\xd9\xee=\xbcb\xff\x9fJ\xca\xab\x9dg_\xc8n\xbe\x11\xa3\xeazn\x82\xf9\xfe\xeas\\\x08\x18^\xdaO\x04\xcd /\xbe\x8eo\x93d\x05\xaf\xd9\x13\xdboE\xd0\xd1\xdb\xa3\xdc\xf4}\x91sd\xbf\xe6\x98+\x18\xdaf\r\xb8\x0b\xcf\x9eM\x0e"\xc9\xeb\xb6RDHC\x04:\x84\xa9V@\xfa +\xdb\xa8\xda?\xcd\xf7\x97#\xc0\xa3lr\xae\xed5E\xe0\x96\x92\xeb\x91&\xad\x07\x8b\x1e>?+s\xa9\x8c\xc5\x18\xbf\xf3Y.1\x9a\xe4h\x87\x98U\xa9\xac\x8c\x007\x01(\xf4\x02y\x94\x1e\xfd\x1c\xeep\x1d\r\xfc.A\xf5 \x97s\xcc\xf9<\xc2I\xcd\x0b\x17\xc3\xf5\x17&r\xcf0\x12s\xb6A\x807\xf6\xc4o\n\xe2zy\xf5\xef\x1d\xd9\xc9\xc9^\x87\xb6\xaeD\xe2\xcd\xf1\xca\xd9\xef\xd0\x81S\xc5" |\x179C\x9ce\xba\xa5\xc0M\xdf\\`\xc3\x87W\x80_+8\xe1\xea8O\xdfRJ\xa2\x0c\xdc\xe7J\x11\xc0\xf7,\x8e\xf6!,\xd7vnK\xc9[D)-)\xf7\x8e\\\xa7\xbd\xbc\xe9\xdf\x96Z\xa3][\x8e\x89-\x03\xca\xa9\xb4\xee\x1d\xec\x1d\x16\xb31~\xf9\xedg\xcfp\x07\xbc\xff\x7f\xc1vT(4GVOc\x8ec\xf3\xab\xa2\xdc\xdc\xeeb\xfd\x15\xf0\xf36\xc2P!\xe47j\xddmT\xa3\xa2\x1c\xff\xe4\xdc?k@\xa6z\xc4C\x1c\xfe\xddu\xa9\xe8\xb8T\x9c\xc4\xba\xf4r"=^\xe6z\\\xd5\xd5]\xd2Sq:\x08\xcc\xd9\x87\xe7sq\x12Y\x8a\xe0\xf0\x80olV\xe4\xc4\xdf\xa5\xe3\xf2\xae\xccA@\xf6@\r2@\xbb\xe2\x04\x10{Y\xf9\xce\x81\x8b\x8d\xde\xe7\xd0\x9e\x00lQ\xfb\x8f\xeb`\xed\xabcFR\xd4\x89\x98\x10\xd1\x16G%\x84\x83mG#:\xec\xb1\xbf\x0e>\x1d\x82\xf5\xcf\x05\xe4\x8e\xa9g\xba\x1f\xc5!\xdesV\xd0\x98V\x8b\x8a\x8d\x98\x0e|;Ka7\xc2\xed\xca\x81\xe0\xbe)F\xcf\x7f~7@\xb1~\xbd\xf8\xe6\xde+L\xf5\x15U\x86\x8f\xcd\x16\xcc*o\x0c\x15\xad/Wr\xfa\x89\xd8\x82H\x87\xa5\xee\xbdA\x17m\x82\xdf\x0es\x9d\x9a\xccl%-t\x97\xe7\x85|\xf6\xf32\xc2\x92\x12\xf8\xcc\xab|K\xc0fGd\xde\xa4%\x08y\xe9f2y\x89\xd2\xea') diff --git a/dist_obfuscated/build/lib/orisys/sensor.py b/dist_obfuscated/build/lib/orisys/sensor.py new file mode 100644 index 0000000..8b8b7a4 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/sensor.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.543686 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00sD\x00\x00\x12\t\x04\x00`\xf5<\x88[\xc6\xd22\xe0U\xbd\xa3\xd4\xfe\xf3\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x80\xd7\x1c;A\xb1\xf1\x86\xbd\x8e\x939\x04ht\x7f\x1a\xa6\x84q\xd9E\xe7z\xc9\xad\x9c\xb0\x8d\x945\xe7\xc2)9w\xb4\xd38!\xdb\xcb\x0e"u4X\xc1" \x18\xcd\xeb$\xb0m\x00b!b\xdb\xbd\xb9\x08UY\x12\n\x8b\x14\xfeM\xf7!\x81G\x0f\xf0\x96x\xfft,\xd0\x94rK~\x1a\xb6\x17\xbc\xe9\x91[\x1e\x86z!\xa9T\xb5\xa5\xe0n{\x13\xafh,b\xeaY(\xa4li\x9ch\x16<\x01\x1ah\xfd\x06d\x13\xb03\xc1\x16k\n\xf8P)\xc2\xeb\xaa\xd4\x02u\x07\xdb\x0b\x1d.\x88g\xce\xa7\xdfR\xba\xfe\xedP\x14\x1f/\xd7\xc5\xab$5\xc0\xc8\x05\x8ey\xe0\x16\xb0\x06\x10T]n\\$`o\x9f?\xc2\x85\x82\xa8\xa2\xe9w\xbffm\x82\xe7\xec\x15^\x81>W\xade\xdaN\xf7\xa3v\x83\xac\xbd\xfa\x81\x19\xc7(\xd8\xe2*E\xb5\xddL\xc1\xd0\xbe\x0e\xe8a\xa3\xfavm\x08R\x890\x9a\xafD~\x7f\x89kV\xdbC\xfd\n\xb3#\xc9 \xb8\x8c\x17\xf1y\x12x?\n\x151\xd5{\xb2\xec\xb4\xbe\x0c\x95\xf5@\xd1J0\x87"\xc0\x11gR\x084\xe9\xc0B\x97[\n\x82\xe4\x17\x05r\xee\xb1(c\xa84/\x8en|\xad\xc6\xcelk\\\xae\x81{\x80\xa6\x10|F\xa9\xc3\xc2\xad\xfe\x1fXd\xee\x91\x99;i\x86\x86f\xe3\x10\x893S&e\xb5\xf2(\xe7Q{n&\xd7\x80\x9b\xa1\xeb\x97\x93\xeb6\xbd\xe9\xb4\x9b\xb0\xaf\xef\xe9\xbc\xc5\xae?\x84\xd8\xe2\xedK\xb8\xbc\xca\x96\xe9\xe4\x81\xfc9\xb5\x890\xe9\xe85\x05\xa4\xf6\x1a\xfe\x85\xab\x8c5\xa9\xc4\x97\xa5H\x1d3\xbeJ\xc4-\xb0\xb8ZX@\xaaU\xf7\x13\xb1\xabZR\xfb^A\xb04\x84w\x03\xae\xec\x0b\x0b0\x93`\xdc\xe3\xc2\xcf\x1f?\x81\x17\xc7\xd9E\xdayu\xce\xf7\xa3/\x03\x97`,L\xa0\xc2t\xd9#,&\xf3\x1b\x1f\x1dT\x104\x016\xb5\xc5\xdeQ\x11aho\x94\x9a\xf6\xec/\x96;Vz\xb5\x9el[T\xa0T\xf8\xc1\x04\xaay]g\x16\xf9\xf1\xf4\x84\xec\xd0\xa7\x98\xf3H\x92R2\x12y\x992\xb9\xb0\xfe\x81$\xc0\x9a\x98\x10\xd9\xf60\xa7\xab/4Z\xf2\x04\xf6\x99f\xe8\xf6\xe4H\x85\x1a&\xb7\xfe\x9e\xd4\x19G3\xeb`]z\x08\xc4\x7f@\xac\xc8\xc5DLG\x80\xd0\xac\x9cm\xf3B\xb6NYKv\xff\x0ee\xd7\x05h$nwr4\x7f\xafn\xd3\xb6gS\xd1\x95G\x96XUc\xcd1\xcfj#\xc7_\xa3\xact:\xd2J\xd0?l\x8e7,\xe6\x17\x8b\x07\xed\x0b8\xdb&\xe5\x81\xdc\xe2\xb7=V\xfc\xd8\xfdZ\xe5\xc8\x0e\xb3\x8c~F\xb4\t\xf5\xa1\xe5\xf2\xb2\xd1\xb3\xcd\x89G\x11\xa8\xa6\xf6\xeb\x18\xab@\x99\xc9\x00\x14\x1a\xeeg+\x8bL\'gT\xb4\r\x0c.>7cx^\x96\xf7\xd1\x9b\xa6\xfdy\x07\xa5Q\xca\x12\xd6\x02\x0e\xd8\xa9Q,Z\xfa\xa7P\x11|\x021\xa2\xec\x01\x19-Zu\xf3(\\\x03\xdf\x86\xa0\xbd\x1c\xb4\xecl\xcf\x9b\x1c\xf1}\xa4PD\xefWg\x1er\xe2\x0c]\x98\xe8\xd8\xd4\x1b\xd6\x03\xef\xee\xdal\x9epw\xcao\xbb\xa1\x8a@\xa1B\x14\xe9\xbbM\x1f\xe9(\x9d\xf9z\xe0J\xb4\x13)\xbbr\x83\x95sj\xd7!\xcf\xb8\x9f\x19\x95A!\xe9-E\xfb\xfe\x006c\x13\xb5\xb4\x1c\xf0\xc7K<\xa0\xe7p\xa9\x80\x1b\x18\x18\xedU\x12\xe15\xcd\xbecH\x8e\xd8\xb5\xba\xc0\xc9\xbc\xf0<\xc4m\xe6D\x02\xca\xd6\x913\x977w+|\r\x0e\x17\xbfrb~\xde*\xb4}\x92>\x14:>\xe3\xc8\x80\x97\xdc\xdcT\x02\x11Xm\x8d,S\xa9M\x04\x8f\nR G\xe7\xccK\xc4J\x95S\x89\x08\x1d\x0f@\x17\x8er\xa9\n\x85h\x9e\xfc1\xa2\xa4U\x8e&\xc7z\x83\'\xf9N:\x9a\x99\xe5\x07\xdb\x01\x87K\x97@5\xdf[Pz\xaf\xdd\x83\xf0V\x1f?\xd0S\x96\x8a\xb4f\'\x16\x81\xb2\xc5Y\x1e`\xfa\xfd\xbc,\xbd@\xf4\xc6\x19\x16lq\xa9Cm\xa9\xf5C\xf9W\xee\xfd\xad)\xf9\xb2\x10\xdb\xe8\xc1\xbf\x8c?-\xe3\xfa4`\xb6h\x83\xd8\xf3\xc8i!\xe5$_|u\xa2\xbb\xff"\xbc\xd6\x0b\r\xd9t\xcf\x05|6\xca\x838|5\x06\x81\xddn\xca\x8e\xd71\xf7\xbb\xa4\xb5\xeb\n\xac\x1e\xd4w\x8a\x9ee\x1cP[x-\xf9oA\xe91[Y\xec\xf3\x83\xefp9&u\xe6\xe7O[:\xfd\x19\x80\xe9\xdcj\xc9\xa9A\x88L\xd4\xcf\x80\x9f"\xb5\xb1\xecK\xd1{W\x92\x0f\x86\xe49h3\xff\xd6f\x13=\x8e\x82O"\xcc\xba\x88\xc1U\x8b|\x81\r\x10b.\xbd{[w\xc9O38\xac\x01USrd=\xc1\x83^\xeej\x17\xb8\x98\xbf\xe8\xcb\x98?\x07\xec\x9b$~\xe4do&6\x0eJ\xd1]\x85\xb3 \xe4 \xe8\xed\x80\x9f\xf5\xb9"\x0f\xe2\xa6\xec]\xf8n\x15\xd1\x87\xbe\xe9Z^5"\xd2\x9eP\x90\xb67\xca\xbe\x123\x7f*Y\x80\x11wL\x05\x9c\xe9"\xbe}Pu\xf8\xf6[\x91u7\xd9\x9d\xaa\xd2\xd4\x02\xf6.\xa5\xcb%O\xfbT\x0bD\xb1VH\xee\xb1kj\x01\\\xef\x00,.\xb4R\x97P\x81\xe1\xec\x86v\xf3\x8a\x14\x11\xef>\xbcA\x14b\xd6eR!\x1b\xe0\xd5v\x12\x946\x00\xfc!\x14\x9d\x12eT\xa0\x92\x13\x96X\x80\xca\xc9\x89.C\x1d\x05\xf8{\xc4\tQ\xa8\xbb\x91\x9586\xb1\xbey\xcc\xf9\xa6\x85\x08D>u\xa3\\\x86\x8a_\x12\xb5\x9fry\xd2\x9c\xff\x83\xad\xe9L\xe8\x91\xb6\x12\xcd\x1cx::\t\xfa\xfe\x17\xfd\x85\x80b\xc3\xb1\xbe\xa1\xf1$\\\xb4\xdd\xc2\x0eu\x15\x7f\x89%\xc5\xabk\x16\x1e\xcb&5\xab\xb2\n}N\xffs Wnc\xedh%c\x80\xe1\xc0$\x18P\xa5\xe5\xb9t\xb2Z-\xa5\xfe\xcc\xeb\xba\x886m\xf7H(9k\xae7U\xa9P\x05\xb8\xb8\x9c}\x00\xe1\x8b\xf5\x11\xf9\xecbu?\xeb\xea$\'\xd3\x08$\x8f\x123y\xbd\x9f\xf8\xd2\xdf\xe1\x155\xdf\xd9\x1d\xb05\xd2\xae\xa3\xec\xf2\xd7}\xeb\xe5\xfc\xab\x8c\x90\xb0\xac%\x8d\x1d\xf1\x90T\xa5\xc0\xdb\xfbf\x18\xf1\x8e,[wD\xe6\xf96\x1e)\x85U\x97b!G\xbe\xa7\x0f\xba\x9a\xfa\xfbt\r!\x05\xd8L\x9a\x9f\x0c\xa3\x16,\x88\xd2B\xfe\r\x90{\xefe\xbd8\xe3\xc9\xc0z^\xa1\xe3Q\xcd\xdes8\x8f\x00X;\x06\xa1H\x13r\xe2\x8f\xa89\xc0-\x8d8\xa6\x01\x7f\x9b\x19,h\xeb\xdd\x99\x0f8\x19\x16\x01"\xa50\xbcb\x1e\xeaP[\x1f\xba\xd2\x85\x1e\xfd\x1b\x9e\xdd\x169\x83\x899\x96\x0bFh=\x85\x9d1\x99\xbdA\xeb\x9f\x95\xb22\xb6\xf8\\\xea\xc5\x1f\x9b7\xa0R\x00\xf8\x00ef\xf6\xc6\x05\xc1\xf4\xbel\r\x8a"\xd7?&\rA\x10ScxZr\x0f\x1a~\x15\xce\xb8\x9d\x91\xf0\x8f\x08E\xd5\xab\xa2\xf7\xf1\xb7\x01\xd4\xe5\xcf\xed~\xb5\x80\xcb\x8f\xf2a?\xb9\xeb1]\xe4\x8a\xc4\xfe\x148\x08\xaa\xcf\xaf.7r\xcb\xaa\xdbo\x17y\xf1\xbe\xad%\x15\x1e\xa9N\xd9\xb4\xd0\x81\xe6"SK&w\x9b\t\xfd\x06*\xf6@\x81\x9c5\t\xc4\x922n?\xaa\x87\xd9D\xa8\x1c\x8f\x8c\xa2\x86\x81\x86`\x17\x9a\n\x05C\xc1\xe1\x9fjr\x0f9\xaf}\xa88\xff\xdc1\xb3!\x82\xe6\xef\x18\xb0k\xfd[\xdf\x93\xdc\x1f\xe01\xbeI]\xaa\xe0\xb7|p\xf5V\x93\xec\x87\xee\x02\x11\x8f\x1b\xe7\xcf7n\xae\xb8\xf6\x03\xe3\xfd\x9f\xac!^\xee\xa24\xa3\xcbP\xa1\xe1\x11\x00\xee\xd7\x9b[\x99\x85rU\x94\x18We\x08\xcb\xb5h\x86o*\xcf\xe7\x1d\xc7\x91\x0f\xfb\n\x9fs;@\x96\xaa<\xb22\xbdg\x0ce\xf8\xb8\xe3\xe6\x8c\xa8\xa0\xe8\xbc\x05^\xba2\xe0\xd8\xe8\x8buH~3\x0e\xc4\xb8\xd0eWm\xc3\xc9k\xe9\xb5\xf0\xca\x1c{\x96\xa6\xf2BY59\x15.!G\xee\x8f\x11\x80*\x13wF?\xa9\xa0\xff\xe8\x19\xa3\xb2\xeb`:7\xb3BsF\xd5L\x0e\xcd\xa7)\xa8t\x96\x0e\xec\xa6\xec\xd0\x88\x80r\x16&Xt\x97c\x8d\xcc?\\\r\xcc\xd5\x80\xe7\xa7{\x16z:\njj\xfc1\x0e[0?\xcb@>z\xf8\x06\xcc\xd6x\x9b\xb0"\xae\xaf\x8b\xac`\x96\x97B<\x01\xd3)M\xe0HA\xf5s\x8d\x1a\x92;z\x06YA\x7f.>\xf4IPg\xd8\x04\xb2e\x02\x01;\xa7\xc8\x95\x97^\x01\xee\x9f\x88\xec@V.\x14\xb6\x84\x18\xc0\xf0(\x087)n\xfb\x13v\xf2;OwU%\xb3Ol\xe2D\x19\xfb\xac`\xbaP\xa5\x0fC\x1b\x01\x17\x10s\xd9KYK\xda\x03\x1c\xaf\x87=\xc3\xbf\x04nq\x9b\xc3\xf2\x07\xd5\x07A\x1a\x8c\xd4\xaf\xfd;c\xa3b1\x89\x12w\x17\x06Nt\xae\x91\xf1\xc5\xd9\x93_\xe7\xc5\xda!|\xc1 \xd1\'\\P\x8eu\xdd\x0c\xd7E\xad\x1c\x85tL\x9f\x152\xbcP\xaa\xcd\xdf\xd3\x0f\x9d9\xa1\x82B6\xfe1\x0eR\x1aq0\x8d\xa9\xa1\x83\xf6$\xf9\xd5g\xd8\x8ch\x9d\xdf\x86\xc6M$\xf08\xa0$\x14\x9db\xfe\xde)\xa1\xe83\xa4F(g\xd6\xa1@0\xd3\xea\x9f\xe4\xfc=\xadL\xbd{\x0f\xa5:m\xfb6\x9d\xd4\x0e\xdb\x17S#E\xc0S\xf1U/\xc6\xdav\x1a\xbe\xd3[\xdd\x12\xa9\xf0\x07u\xc2"\xb1\x04\xf7 `1\xf3\x85\xd8\xe3H\xac1p\x9dM\x90\xa6r\x85\x872\t\xf8\x17\xa0\xb8]\xd5\xb4\xb8\x92\xe3Jj5\xdf\xe4\\[x\xb4\x8b\xf3\xbe\x8c\xb4Q\xf8\xf2\xdcP\xbc\xd4\x8b\x8c%\xb2\x01\x1c\xcc\x8c\xf4\xadP\xca\xb6Fw\x90\xe9\xc1\xe6\xabW\x9bQt\xba\x0e\xb1t*w1@I\x1b\xcd\xed3\x194\x9c\';GL;\x1bK\xf5\xb9\xbb8<\xab8M8\xbfm\xbf\x00[P\xcaFS:%\'\xb0\\N\x1d\xe1)W\x97\x84\x17m\x17=\xf6vH\xf4\xe6#\xce\xdd\x11\'\xb4{b+t\x98\x99Vq\x0e\xbb\xe8\xeb_\x14\x19\xa9\xff\xbc?N\x154Ec\xee\xba\xa9%N\xdc+^\xa9+\x07C\xeeO\xcb\xd0\x0b \xe7\xad\xa8n\xfd\xa4\x0c?T\x8dz~V\x845(\xea\xf2\xc2\xa3l\xd1\xcf)\xbc\xb2\x91F\xe7r]\x80\xb4\x8d5J\xd8i\xa0\x81|4\xd3\x8d}\x13M\xa2\xa46\xf2j\x90\xb4\xef\xbanL\xc7\xb7\xaf\xa5\x953+\x0cd]GQ\x0f\xcb\xcc\xe8\xa6\xa4er\xed\xee\x82\xe6Q \xffj\xa4q}\xacQK \x87\xf3ZTR\xe0\x1b\xc4\x88o\n\xfe<\xc0D\xe1\x11\xa6G\xf83v\xd6\xff?\x18}K\xe7\xccQZ\xa8x\x8c\xf9\x94\xefz7\xd1\x9c\xfes6\xf1T\xa7\xf7\xe1\xceoE0\x8e\xd8\x03\xa0\xd5\x04\xe9\xe1\x9f\x1ev\xd4Y\xda\xf1\xaelqy<\x11i\x8a7\x9a\xady\xfc\xe48";\x7f\x93\x82\xc2@?vZ\x9d\xce\xb6#\xf7\xb0\xa0bf\xe7L\xef\xda\x83Hr?\xb8\xa5\xa3\xd39:\xa2\xc8\x88"\x16%\xdbU^w\xaf!2\x015\x80\xb1\xfd\x10\x96@.\xb9)w\xef\xcc\xe8\xe6\xb1M\r\xb1u!:M\x00%!\xd3\x97\xc6\xe9 \x0b\x18\xcfD8`\x95fq\x0b\xea\xb2\xce\xd0\xcc\xd7P\x1c\xd8\xf3o\xe8\xc4\xdc\xd4?\'\xbfv\xd3\x8f;\xc8\xf9\x154!A\xf1\xd6\x87@rT\xd9\x17\xec\n\xe9\x85\xee\x95\xf8b\xcel\x98)6\x87X\xa9z\x8d\x11_\x1bZb\\\x140\x86E\x0b<\x87\x88Uz\x03j<\x1ar\xc8cd\tF\t\xe0\x86\x0f\x8e\x83,\xd9ME\xa4\xffV\xb5\x7f\x85\xc9\xc8gY\xd6\x04kbWD\xa1\xc6pv\xa4\x84N\xddPA\xad\xa3\xd1\x1c\xa2\xb0\xa5\x8c\xe5\x14\x86\x88\x89J\xd0 \xe0\x87\xe0\xa6#\xb3)\x85#E\xbb\xf2\xa5\xa96\xce\xb4\xabD\xd8\x01<\x98M\xdbu>\xe5\xe6\xb7\xb5\x954H\xa3\x8d\xc7T\x02\xb4Cv\xf6g\xfeh\x08\xbc\xc3\x10\x96\xc4\x85\xd5{\xb0\xda\x18\xf4t\xdf\x11\x1a\xd7\xe9@\xe9|3\xcdG2_\x85\x90\xcc\xfd\x0cCb\xb3\x1d\xea+\x14%\x87\xaek\xe6\xa9\xe0\xcc\xdc\xbc~\xa7\x18\xc3\xe2\xad"\xcc\xe4\t}\x02\xaeC\x1c\xf3\x1a\xaf\xf3L\xb5Fv\x1b\x11\x06\xa0\x92\xcfu-\xe3A\x1e\xdb5\xafu\x96\x18\x8b$/\xf9~\xae\xf3\xceb\x8e(\xf9\xa5N\x84c\x06t\xb9\xaa4\xab\xf7\xec=D\x0f\xe5\x9f\x15\xdd\xb9!\xe9,#\xc4\xa5\xf0t\x95\xdc\x93\xea \xe3\x11v`\xec\xe1\xe7\xad\xf8bC\x8e\xf3\x16P\x13\xbb\x05?\xcb\xb4\xc5)B\xa7&\x0f\xe0\xf6\xad\xbd!cmw\xb6W\x93=A?\x02\xe1\x9ffw\x84\t\xd7E\xa2=\x038\x17\x9d\t\x80\xcd\x9d\x86\xd5\xa5\r\xd6\xde\x16\xef\xf6\x9f\xf0\xf3\xc7\xa2\xfe\x03\x11gu\x08\x91\xe1/\xc5\xaa\x9e\x14\x1a\xf2\xcbLqP\xe2\xdd?Y\xaf\xc4s\xcb\xf2\xbf\xde\x8a-\xad\x12\xf7\x9c\xce\xcb\xf3?\xf8\xd6g[\xb0\xce\xd93\x03\x19X4\xe2x\x10\xdb\xfa\xdc>p\xa6j\x9dX\x0eL9\x88\xca\xfb\xa1\xd2c#\xe4;x\xe7\t\xb6\xe1\xe9\x1bG\xf1/\x82\x8b\xb1\x0f\r\xab0\xea\x90Kp\x17E\xfe\xd95\x8d\x1b\'\xda`\x8a>X}/\xff\x13\xb0\x199\xb55O\xd5.Z\x8f\xf4R\x035\xca\xdd\xe1\x9fMJa$\x8d\xbcS4\xe3w3)\xd4_1~\\9\x05V9Jv\xbf\xd9\xc2!8\x02\xdb\x04\xe7N\r\xad\xb6tb\x02\xb9\xfe\xa2U\x89\xb9\x05D&\xa7\xc5U\x87\x86\xa1\x05\x14av4}\xc47J\xb0\xcf\x14\x8a\x9e\xcfV_\xeb\xcb\xfa&\x88\xb9\xa4\xad\x88\x86\xff\xfe\xe5\x07\\Ac!j\xb7X\xa9\xbdv\xe4\xd2\xc1\xc2\xfb\x18\xc5ky.\xcf\x7f\x0c\x80\xcb\x08[\xb8\xb5\xea\xc9+\x06\xee\xcd:`\xa8q\xd6e\xaf_\xff\x0eri\xdb\xf6\xe8\x10^.\xdb\x17;\r\xcb+\xfb(Q\xbc\xd0j\xb7\xbe\x92{\n\xbd\xe3\xa4\xfa\xfc3\x8dA\xce\xd6\x12\x13\x964A\x0b\xd3Szc\xda\x0c\xb7\x91Dg/\xebB\xe2\x19{\x84\x97\xbbq\xd7\xe8\xb7\xb9\xee\xdc\xdaW\xe1\xdak\xcbq\xca#y\x08\xb9/\x81\xa1_^\x12R\xaa8N\xc1\xc9\xc2z\xc1\x8a\x00\xc1*e\xb9\x97\xcf\xb5Q\x00\x97\xa7\xb6r\xd3\x18\x8f\x01\x05\x82\x03\xe3\xa1\xf3\xc2;LV<\xfe\x8d\xad\xe2\xaa\x02N\xa7\x12\x9f8\xb0\x9e\xb1\x8f\xb6\xfb5\x92p\\_:/\xba\xfb\xb5Z\xce\x1d\xc1h\xa9\xb2\xb7S\x10\xdf\xa7K\xda7\xb0\xbd\xbd\xde\x96\x84\':#\xdb\xfb\x0b\xd5\x94\xc4\xf7<\xea_!:\xec\xdf\x1ed\xc4$\xb0\xc3\xf4\x08\x93\x8ej;\x0c\xd8x\x16\xa2j\xde\r\x0e\xd2\\\x96\xf0~\xc5\x91\xc2\xdc&\xeeq\x92iD\xf4-Y\xd6y\x9a\\\xab,\xae@ih\xc9\x03\x1e9\x89-\xe7`\x87\xb0\xef\xcaZ5\xbf\xfaf\xb4\xe7\xd6\x99\x9b\xb4p\x8d\t\xdf\xdc\xdf\t\x94G\x8fi}\xe4\xdc7\x15].\x05\xd7\xb3A\xe0\x00Jwv;\x98\xd5\xd4jL\xa3dj\x16\x1dq\xc4\x96\xc2\x1b\xf8\x1d\x07*\xf2k\x19n\xee\xc9>7\x88\x9d,\xe8\xcc\ni\xd9\xcd\x06\xbcQ\xc0g\xf88=K@\xc7*\xcf\xc9\xcb\n\xe2\r\x9f\xa6\xd5\xcd\\V"\xcd\x9b\xd3\x1aZ\xd3h\x1c\xdfa\xe3\xa9\xfei\xe7g0\xb8\xc3:S&\x0bJ\x82\x9c3jk\xa1n^\xe0\x0e\x9f\xd21t\xaf8\tixi\r2nJ\xae\x01\xa6\x9eS\xda\xf1\x8f1\x94g\xc2\xc7\xdf\xd5\x7f\xe4\xeez\xbaDB\x7f\x12H\r\xd5\x8b\xc3#\x89q*;Ws\x03\x98Q\x0fX\x81\xad*\xe6\xd9\xf4\xd0\xac]\x7f\xd1\xb7\xba,\xc2r\x86\xca\x0fW\xfc\xa3\x1b\xf3\xe5\x91\x08%\x00\x04\xbe\xb5oF94`\xa2\xbbV\x89\x9aeE\x04x\xf2\x8f\xe6\x87\xa9\x18y\x12\xf9@\xe2v c\xe7\xb5Or\x10\xcd\x1f\x00\\\x8c\xd0\xe1\xc2\'\x13\x1fkL!WU@\xa9\xef\x98\x88(\xc0-5:\x14CA\xb4$f\x12B8\xc5\xc1\xad\xafw\xfa\xd6\x141\ne\x10\xb8\x88`\xc1\x16\xaa\x91\x19\x85|bD_\xef\x94c\xf5\xff\x99\xe0\xe1\x04<\xa0\xc0\x0f\x81\x11\x16\xb0D\x99z\xa5\xd81\xae\x9e\x0c\x88\xc1G\x00\x00\xbcs=\xcf\xf4\x02\x0f`s\xd7s\xfa\xc3\xea\x8bcc\xf3\x13p\x03\xf3=%\xc2V%\x0c8M\x05\x08\xe2\xa5\x99\x0bw\x8c\xe6\xaf\xb1T\x01\x92Ec+\x9d\x00\xd2T\xd8\xac$&\xf9\xa1\xb2%\xc4lm`\xec\xa0U#\x14\xdf\'\xb8{\xe2\xa6\x0c\xc69\xe4\xb7Dj\x07C\xe7\x91\x00\x8c`\xfcBn0\x06"\x94wnl\xa4\xa59?\x92\xb7\xd1\x9f\xcb\xb4\x1a\x195\xceI$\x1b\xa9}\xdb+\xe1x\xeb\x19\xcd\x8f\x88\xb0\x94\xf1n\x1ap\x9ew\xa3\x05\x0e8\xcf\xde\n\x105\x8cv -M|\x80\xd9\x9f\xd3\xc6\x9d\xdf|\x00/vn\x92a(\x0b\x84\x94\x1b\xed\xd2\xf0\xe4\x9bWw\xf8]`I\x11\xed\xc6\xc6\x18\x1d\xb0\x8cC\xea\x10\xd4\xc0\xb2*\xac0\x80\xa1\xfc\x1b2\xaf\x97S\x8d\xeb\xe1\xa3\x9d\xd0\xf2_\xd6\x13J9\x871\xba\x05\x16\x8b\x07\xc7\x8f2\xc8\x0f\x85n\n\xd41\xc6\x16:,\xd9\x91\x97|GW\x05+\xecJ\xb8CN\x99(M\x82w\x84t\xf8o\xfeV\xf2\x0b\xbb\xced\xf9e+\xe40\xaaU\xd1\xe3\xa9\x7f$l\xf4$j\xfb#\xa9\xc9k\xf1\xf2\xee\x82G\xfb\x9d4\xbe\xe7n\x1b\x18\xf1\xa7\xa0o\xc96G4\xe0;pa\x90\xcf6w\x10Vk\xa0\x06\xc8-\xc5\x9aS\x8fp\xb8$\xfc\xaf\xc5arD2\x82;G#\x9c\xf5\x01W\xdb\xf1\x1c\rO\'\xe3\xd3\x87\x11\xbaH\x10=\xde\xb0\xf8V5\x1d.\xaa\x7f\x87\x04\x1e\xf1\xc71\x03\xde6q\xeaq\xda\xd6\xde\t\x03\xa6\xf9\xe2,\x1e(.Z\xf9\x97\xfe\x92\x83\x86\xf8\x82\xa7\x9d5\xe2\xe9 \x1e\x12x(\xc4\xe3V\xe1\xfe\x92C\xb7\xefq\xed\xd8D\xdd\xb5\x18p<\xc2?\xa0\x03\x98\xc2\xaf\x9b2\xb0f\xbd\xfbM\x7fc\x0fq6L\xc7Q&m\x8c\xc2\x15\xb5T\xe0hl\xb3\xa3W\xf2Y\xd8\x0f\xe7\xa7\x19\x85[\x96\xf7-]\xe26\x11\xf9/TU\xa6\x11B\xeaG\xdfRJ4\x89\xfa=\x1c\x92\xe6\xc1|\x82Q\x95t\x91\xb9\xb2R\xd0\xdc\xe7b\x15\x9a\xf8Fa\x19TM\xc9\xa7\xa0${\xae$\x9c\'\xe0\x0b+\xdcj\xab!\x18{\x052\x87*\xda\xe1\x1b\x8a\xd4\xef\xf8-\xe4\x7f\xd1\x1e:\x90d\x02\xe0Mw\xc1\x03\x04\x08\x04\xe6\x94\xd9i]p\xf1. \x1bdo\x9d=\x0e\xef\xdf\xac\t\xeb\xfe\xe5\xf4\xef \xda\xb8\xd1\xd2\xea\xc7\x97\xd6\x98\xae\xe9\x96\xdeA\xdb\x89}\x80\x1c\r\x96\\(Sa=R\xf0\xde\xd9"\x85mN\xe8\xe1\xc6*@z\x16\x03\xa8\xac\xb8Un\xa9|\xf1\x8f\xc6_A\xfe\xd3FW7G\x82\xc2\xcf\xdcCi\x84\x9b\xd9.\x103\xfdS\xa3=\x99\xa2\x85\xff"w\xc1\xe2\x08\x0c\x18`\xfc\xa3\xf4\xabzF\xba(\xf6\x13\xa9\x0fMy\xc3t=\xb0\x84z\xfc\xfe3\x19B\x0c\xea\xcbD\xc4\'\x81\xcf\xe0\xb1eM\xd79p\x1c\xb5\x8c\xe4`\xec\xd8\x88\xb6=\xbb\x06\xfd\xc6V\xd9\x15\x81\x98\xcbJ\x0ch\x11|\x10\x8e\xc2\x07\xaatM\x1f\x9a\x91@\xd7\xef\xd6\x9b\x84\r\x95\xf0@\xcf$\xc4\xb3\x184Hf\x99}\x8e\x8b\xe0\x90\x96\xbaB\xb8\x90\xa9t:\xb3y\xf23\x9d4D\xe4(\xaa\x99,\r\xad\x8a2\x9a\xf1&\xa5\x8a\xcd3\x08z\xca\x8f\xcekn\xcag\xec%\x05\xbb\xf9\xb5\xa0ts\x84\xe1e\x82\xe4\xa97f\tk\xe2\xb0b\xfa\x08\xb7\x10\xdb\xcf\t\'\xf2B:C~\x8a}u\xcb\xe4\xcb\x86[Bnt\x8d\x8b:\x97\xb2M>f\x1e\x01h\xaf,\xb3v\xc9E\x90!|\xff\xf7\x99\xfc\x8bg\x076\xba\x0b\x9b\xe6!F\xc2\xe5\xab|\x8ce\x15~=>x\x04\x9b[\xb1\xdc"Q\x85\xad\xe98f\x8et\x051\x8b\xc5\x8962\xbd\x1f\xfbo)-cj\xf3\xf7?\x1d\x80\x1e\xb3\x8c\xea\x83\xa5\x8c\x8f:\x89;\xb9\x15\xe0W:h\xf2`\x18\xd4\xc2>\xbb\xb1\xba\x85\xcc\xf9\xca\x86\xc0\xe8\x8cP\x19u\xf7\xda\x0e\xad\x0enm\xfa\x80\x98\x17\xb7\xa21\x948+yG\xa7-M\x04\x97\xde\xab\xc5\xe5&\x98x7\xa3\x01R\xd2\xc0\x92\x1a\x7fSmP\x97y\x02\x13\xab\xca$N\xeb\xc3\x92\xd7m\xcd\xb9\xc2\x92\x9e\xee\x02DM\xa0\xd5\x8d}\xea\xd5M\xf3R5+u\x82vP\xee\x83\x03\x19\xae\xae-\x89\x0e\xe7\xaf^\x9f\x1a\xd7\x99\x8c\x18^\x00\x06(\xc2\xab\x91\xd2\xad\xd6\xc2I\xd1\x83\xef\xb4\x1f\xb8B\x12P~\x0f8D\x11\xa9M<\x13\x83\x98d$u\xdd\xe3 \xceyw\xf9``\x7f.\x9a\x11\xc4A_u\x10\xbf\x03\x89\xf9A\x1e\xe6\x857K\xf8\x0e]}\xfd\xb7\xdeX*QhA\x19\rg\x8c\xa0\xee\xbe\xe9h\xad\x99\xaaGX\xfb_\xbc\xb33H!xk\xfb\x0c\x81*"\x02\x0fq\xed\x1a\x83\xfe\x1eos\x12Ga\xc7\xe2\xc2D:`\xed\xfb\\6o\xac\x8d2R \x8dv\xb8\x99v\x8e}\xecX\xc1\x1b\xda.\r&\x84\x08s\xc3\xf9\xcc\x96C\xcd\xcc\xf1\xb0\xf3\xe7$\t\xad\x90\xbf\xb3\x16\\\x05>\x059\x8d\xb1+\xab\xf6\x92]\xf5\x9e\x89\xc0\xa7\x11\xc8\n\xd0\x91\xda\x1e\x98d\xeeK\xf4N\xb3\xe4\xc5\xce\x8d\xb9P\xb5\xea\xd0\x9e+GR[\x11\x03\xb0\xe6\xc5\x8a\x16\xf2\x92\x11\xe8\x1c\x86^Fb\xc2&\xcc\t@\xbf\xf2\xda0\xde9|c\x02\x07\xdb\xa6\x08\xb9\x8f\xcf\x911\xcc\xc7\xaa\x8ef|.{\x88\xbb\x03@\xbd\xb2\x87A\xaa\xf1\xbd\xfe\xdaYh\xec4\x14\xf8\xa4\xa1\xca2\xcf^84Z\x07\x16\xdd\x0bI\xb7Gi\xca\xb7u\x1a\'\x82NBJf\xbaH\xa6\x9d*\xa3\xfb\xf1g\\\x98\xac\x802\xfd\xa3\t\xbfT1\xd7F\xbb2\xd3\xf8(\x06\xce=\xf7z\xc7VH\x81X;\xd6z\xcc5\x86\xad\x13\n\xea\x031=Y\x11\x97O\xf6b\x0b{\x00\xbf\x1a\xbf!S\xc2\x8c\x9eG\x03cF~\xa4\xef|\xc6\xc6\x0eD\x8c\x81,\xcc\x1d\x08\x93\x0f\x88\xe4\\[\xf2\xf4-\\\x1a\x06\xba\xa8\xde\xf6\x88NH\xbd\x96\x8c\x07*\xf8\x83M\x90v\x06. V\x90\x8f\xa7\x93lO\x87yCV\xe6\x19\xfefFb3*\xbd\x90\x16\xc4\xd2\x08\x8d\x16J\xfd\xd8\xe6\x84n\xf0\xee:\xac\xe3p,\x0b\xf9\x12\xffj\xd1\x13\xdf\x16\xd1\xcb\xf0,\x01>\xcaMr\x9a\xddr#<\x8d\x11\x14\xf4\xf8\xbb\xcb*U\xe3\x0b\xb54\x0e\xbc\xb3\xaay\xc7\xcc\x158\xcd\x14\xbe\x83h\xef\xe1\r\x81\xdf\xd3\\,\xec&\x13%\xe6\xcb=\xb3r\r@=\x9a{\xa0k \x0e\xfd\xb8G\xcc\xeb\xda\xdepk$r\x167\xa6\xf7\x00\xf3\xa1\xc8\xf0U\x10\xbcC\xd9\t9\xe4G\xcc\xd10\xb4Y\xb1\x91\xa1 \x10\xacTu\xde\xd6\xc0\xec\x13\xa8:@\xc5\xc3_\x01A\xb7\xadV\x00\xb6\xa7\n\xa6\xa7/\x17R\xb4;Y\xb1e\n\x18\xffc[\x9c\xa9_\xb1R@\x98\xb9\x1e`\xc0\x8d\xf2vc\xf7\n\x909\th\xcf\xe8j\xe2\xb0P\xf3\xfeE!1\xda\x88DR\xcb\x89na\xc3.K\xd02e\xf9\xd3\x82\xc9\x0e\xd6\x11g\xc3\x82c\x90\x95t\x97\x1c2\xbb\xee}\xf3w\x90D\x8au\xba\xc1\xb86=\x83\xea\x1e\xa48\'\x90\xf5rYw\xad\xdcG+\xfc\xb5\xe7<\x9a\xeei\x98V\xf4\xe6Y< \x82\x93h\xad\x95Z\xe7\xd7\xda\xfdV\xd2\xf3\xe4\xc1K\x03"\x958\x9d:_0F\x14\xd7~?{\x07\xda\xb0\xa1u\xb6\xc9zO\x17\\g-\xef\x04\xe6\x8e\x05\xb9b\x7f2q\xe4>%\xab,\x8f\r\xce\xfb\x11\x08\xc3f\x883[\xc7X\x8c,\xb5)\xe5\xbb\rJ\r{\xf8C\x8d\x04FpwO\x97e\xfa]\xb6-\x9a\xe8/U1\xc9\x0c\x1d\xec\xb6\xd0\x04"\x82\x9d\xbcR\xecI^@\xe1\xecH\xcc+\xac\xc0i\x1b\xe3\xb5\xb0\x0f*lo\xbb4\x8e\xd3\x93\xa2\x00\x98U\xe8\xdb\xdf\xda\xdfx\xa8\xe7\x01\xd3\xf0.\x80^v\x87\x8a\x1e`\x112\x88\xb6@%\x86Q\x85\x14\xff\x81\xd2\xd8\x1d\xcf\x91\x98\x03\xd7\xc2\xa6|]\xeb\x91\r\xcdT\xd2|\x82\x00\x82}@\xe8\x7f?\xbe\x8f\xb8\xc6yhE\xc4&\x8aT\xc3S/\x9f\x85\xfd^s\xe4\xea\xff\xb0\xd5\xc8\x05\x1f4e\xaf}\x1dz\xa6k}hT9\xd6c\xe0\xfd\xb4\xba\xc6\x02\x8b\xb8(zd\x1e\xf4NLEVE\xf1pF\xc9\xbf\x8e\xa4K}\xd2\xc4\xc1!f?k\n\xf55\xdeK\xde\xd1\'\xbc/\xd9{\x91\x8d7M\xae\xa6\xc8?|\xa8w\xb1m\x8b\xdekQ|\xd2\xd9\xc0\x98\xf0RU\xdf\xa4\xdaI\xc96\xe6\xeae\x04\xb6\xd5:\xff\xe0\'\x1d\x82\x9a\x9f\x83%Z\xf9\xa4}\xde_T\xa6\x12\xb3\xcf:J~\xe6\xfa\x90+\xbf3mM\\\\\xc1\x97\x0f\xfcQDl\xa7+}\x84\x08\x89\xa0{\x86+\x93\x05X9h\x19\x8d\xc7\x08\xb8\xc6mx\xa8\x05A\xe7\xae\x0c\x94\xc0\x0f\xe3\xe8U\xe9\x86\x07\xdb\xc8\xfe\xd7\xfe\xccr=\x92\x99\x93\x8b\xd7\xd6L0*gj\xd9\xd1\xc9\xaa\xd2\x08\x0f\xd4\xd4Y\xd4\x93\x0eh\xb7\xac\xe0~XW\xceR1V\xfe\x02\xac\xd3\xf2\xc3\t\xf5\xa6\xd4:\x98\xe6\xa0O\rD\xee.\x80\x16,(\x0e\x12\xbf\xbc\xb4\x96z\xf5\x15n\xeb[\xe1\xa0\n\xcdIA\x96\x01q\x16\xab\xd7\xc8\x8a\x85\xb3C"^\x9d]#\xc4\xc3u\x8e\xdb\xc1#\xc7\xf4\n\xa4\x8f^\xecFuiQ\t\xe1m\xcd\x9b\xf3\xc4\xe3K&\x9ciOA]\xae\xf4+\x07&a}h\x81>Q\xae\xf3\x1a\x8a\xb5\x9c\x1b\xbb\x93\x87\xa74[%\xa9\xecxI\xfe;fqqd\x17\x90\xfa\xbb2\x0f\xc2%\xae\xf4\xc2d\x00\x9d\xdd\xb0Cv\xc4\x04\xc5\x91n\xd4\xd0\xa7\xaf9\xe1\xf7\xd6\xdbK\xf0\x9c\x10\x8f8Y\xa3\xb6\x04\x7fOd(\x885L\xa5Jcc\x86{\xdb>\xdfo#\xb7\xad\xe7\x9f\x81J\x93\xf6!\xd0\xe3)\xee`\xaa\xc6\xa0y#,y\xb6\xbe\x0b\xc2jd\xc2\x111L\xe7D\x17^\xfc/\x81\xbb\xa1\xb8\x8e\x99\xd1\x9a\x98+\xc7{\xdf*\xddv\xbc\xea:i\x8b\x83\xb1tW\xa0\xdb\xf6\xb5iP^\xd72\xfbZ-\x98x\\/\x9dc\xf5\xf7\xb4h\xf3\xc9R\xf8B\x8c\x92\xb0\x8bV\xf23\xec\x9d"\xc5\xae**l\xfd\xc3\x14d\x1d\xc1\x08\x98\xbd\x0b\xf1z\x17+y\\}\x0f\x08P\xbc\xcd\xcc\x8bI\xad\x97\xb5\xd8\'\xc3$T\xddnnE\xce\xa2W\x8dRCH\xaf\xd7\xe0\xee!\xef\x162\xd0@\xc7\xc0_\xab\x18b"\x19\x0b\xd7\x8a\x18\x99t\x91\xa3&\x87\x7f\x00\xea\xbeVG\xa4\x80q^\x04\xd8\xf7|jA\xa42Y\xe1\x8f\xbe\xeb\xba\xab\xd5\x8e7\x18\xdeTk\xb8\xfaN\xec\x819\x18\x0b\xd6\x8c\r\xbev|\xad\xac\xc7\x13\xe7\xeeeHE\xb0LO\x89%\x8b\xe2V\xe8_\x089\x1c\\_\x0fx\x082R\xe8\xb6\xf5\xa3\xbeV\x82\x9b\xbd\xd6g\xcfcs\x18\xd4\x0b>t#\xf2\x05n\xf5\xd0\xaf\xaa\xcd,\x82(M\x85\x7f\xcd\xe7\x19\x9b\x19*\xef\xa3\xc8\xc0\x85R.\xdbH\xa2&<\x8e\xd5?\xcf6fO9O\x88?\x1a\xe4\x031S"\xe4\x82%\x05\x18\xfaH1O\xfc\xf0?\xcbUZoL\xb6\xe3\xb3\x84\xda\x06\xaf\xbf\x8e\x9c[]\xd6\xdc\xd1O{@T\xfe\xfc9\xa5\xf7/\xc7\xa7\xefA:f\xf6\x99\xdd\xc6U\xa2\xb1\x07\xef\x18{\x04zk,\xa7\xd0\x18\x06\xdf{\x1e\xd1\xdc.\xf1\xb7/\x8e\xe0\xdc\x17\xe9\xb2\xa4\xd4%\x9b\xa6\x1b7E\xa9n[b\x00\xac\x06l\x8b\x1a\xbd\x97{\x97\xd0\n~\x92\xab\x02\xf2\x9e\xb3\xa3\xf3hI\xfc\xc0ik\x0ci\xa0_\xf0\xb7\x81\x16\x03\x97\x16\x8e\xa5Q>\xea\xcd\x92\xbb\xe8\x90z\x13Z/1\xe2\x93\xb1c\xcf\xe3.\x95\xd5T\xfa\xed\xcf\xcdVI\xf7\x1d}\xd6\xcb\xc4\xa8\xce\x84M\xbb\x8c\xce?[\xc4\x07b\xbeR\x9do\xbb\xaf\x0e\xf7\xac\xcd\xea\xa7\x1c\x15\x93\x13\xb5\xee\x97ip\xa8\xa0Z(\xc5d\x86\xcc\x7f\x82S\x91\x8c\xb7C\x18\x82\x13G=/;\x97\xa7@L\x12\xa5\xa8\xb1u\xdf=O\\\xdc\xdb&$\x05\xbc\x1f\xc0\x17\xd3\xc8\x08\x85t\x07BX\xeaT\xe3\xf5F\x1f\xb2\x9f^ZIi!\x17Hg\xbd\xaa\xf4\xbe\x91\x98\x80\xfc\x0e\xceX\x17\x13\xcc\xde\x8bW^\xd9NA\xdb\'\xbeF\x7ft\rl^\xc8\xc6\x156}\xb4Ud\xca\xf5\x0f\x08\xf7\xc5$\xd8{\xba\x86\xb6\xcea\x11\xed0\xaa\xe0\xc9\xc8Z\xd8\x16\xb71\x87\xd3\xedp\x8b8\xc8gS\x87\xed\xee\x19\xe4\x11)\xa3a)p\xe6\xfc\xa2<4y\xf5\x07\'\x9cv[?\xa1\t\xcd\xb9{\x8e\xa4\x9aX\xechtY\xa7:\xf6\x8c]\xd6\x1b\x0c\x07\xcfw\x94\xfb\xefx\xdf:\xe5\x05\x80\xdd\xe3m-\xaa\xe7{\x13cM\xcc6\xa5o\xb2"\x80\x9f\n\x91\xbaI\x0b\xb2\x97*\xa6~\xf8\xe4\xea<\xfca\x86\xc7\x80\xdb\x12>\x84\x1fS\x17\x17\x87\xa6\xf5\xac:GHk\x8bd\x8eu\x03\xbe\x18\x9dr\x84\x98\xe9\xfb\xe3u\xff\xf9\x07\xd0K\x15\x11\xe3\xaf\'\xa9\xeb\xb27\xe7\xf6\xfa\x91\xd3?\xa1\x1cbB!\xd6\xb6I\xe1\n\x0f-{P.\xba4\x9e\xc1"\xa6\xaeR\xbe/\\k(\xce \x92q\xd9\xb0\x87\xbd@\xdf)\x82\xa9\x8e\x95q\xb3\xaa&u]\xcb\xa7\xea\xa2\xe9B2\xb5\xf1\x1f\xa8d\xee\xfazwf\xe8\x85_\xb5`v\xa8\xbc\x98q\x96$Q~\x90 \xbd\x02\xe0\xc6it\xf1>\xfe7\xf0\xbe\x83\xc9K\xb4\xbd3\x9a\xe9\xb5\x8eK\xbf\xde\r\xbf\xc1<\x14\x9a\xbbD\xe8o3\xfdI=\xef-\xc6\xac\x8ao\xfd\x85W\xfc#\xd9\x16w\r\x10\xf3(\x8cv\xb4\xfe\x96\x1ch9\x8b\x03P]\x80\xfal\x18\tD\xd7R\x07^\x07s\x85!\x83\x08*n\xaf\xefY\n\xe5E\x10\xa6[b\xac\x8f1\x85\xcb\xee\xad4\x9a\xd7\xfb[<.\xe6\x9bV7b\xc4\x01\x1c~<\xb3\xd8\x0e"\x04p\x95I\xf0=\xef\xf6\x1a\x80\xc9v\xd9QI2AJ\xff\xde\xe7\xe8\x90l\xeb\x1en\x7fg\xdf\xc2?\x94\x81\x9cyz\xdd\x9a\'C\xb4\xc9w\xf0o\x08\x1c\xfdw\x05\xbbS.H\xe6)\t\xb2\x17\x05K\x14@C\x90\xc5`\xc8*^\xd6\x13jd\x08\x8d\x8a{\xd0\xb2\xf2\xfe\x8e\x80>\\7\xf3\x934\xc4E\xa0\xa4w\x10R\xd5\xdeq\xffdSO\x11,_\xc9\xe20\xc6\x1aT\x98\x1fi\xd2\xe2T:\xd7\x1a`\x08tB{N|\xff\xe8p\x121\x8e\xbda=\xbf\xdf\x04\xf9p%\xf2}\x12r\xe4\x1b\xdd"7y\xe6Yl\x03Lv\xc0\nT|\x1cl\xa86\x8bc\xcf\xe3\xb3SNu\n\xf1\x1a74\xd3=|\x96\x17\xab\x02zW\xefa\r\x04\xd7(\xe5\xc1\xecV,K\xa0z\xf5\no\xb9T9\xeb\x17/[F\x98\x9ew:\xbe\xb1\xbd\x94$\x1fp\x93Mzm\x14\x9461.\xe0\x14L6|]\xf5*\xc1H\x92C\x93%\xdc}\xfa\xa3\x94\xcc\x13\xca\xfd`-<\xdd\xac\x7f\xcbn\x8c\x02\xdb\xc5\xa8Qdf\xe7\xc5]\xb8\x0c\x8f\x0f/C\x19\x13\x82}1sf\xb83\t\xa6O5]\xcd\x8a\x9esd3\x93\xe6\x81\xaa\x1e\xb3\x9f&\xc6\x8c\xaa\xf6\xc90\x82\xe3\xcd\xc1\xdcS-r\xdc\xc3\x8f/\xd3\x83G\xce\xee\xe6\x93\x1e|\xbc1\\\xf9\xc3\xbeC\xc2\xc0\xce\x1f)\x82+s\xb3\x9bD\xcbC\x15\xa0\xca\xf5n\x89\x15\xc2\xce\xbf\x93L\xcag@\x17)@\xec\xc9a\xbf@\xe6B\xf4)`\x95STO\xde\xcbUQ5\xae\xc3\x81\x81s\xcdm\x0c@\xcd`\xda\xb6\xa3\x19\x84\x8f\xa9\xd0W\xa7\xc1P\x16\xb1\xc6\xcb\x8d\xc9\x02\xb1_A\xc6\x95\xb1\x12b\x08\xd4-\x12<\x95G\xfa\xabl\x012RY\xb2{\xcer\xc7\xef\x00\x05\nzQK\xc9\'\x83\xe4\xc9\x05\x06E\x17K\xe3\xde\xbd\x01\x14\xdcs#\x19\xbew\xc5 #5FZ\'\xbc7\xdc_-\x19\xcc_\xe2\xed\x0f\xa8\x81\xb4#\x88\x06*\x8dY\x1b\x86 YT\xba\x99R\xe7\x06Q\x0f\xfb\xb8\xe6\xd6!I\xc2\x8c^\xdf\x0c\x9d~h7f\rf\xa8\x9d\xb5\xb3\x00\x1e\xe9g\xf7\xb55\xf2\x1f{\x89\xd8dg\'\xf5"\xd2\x86G\x03rW\xa1\x81\xcc\xec\xee\xe5\x9a)#[8/\xf9\xc1\x0f\x03~x!\xb0,H\xef\xde\xc1C4S\xedQ\x15\xbd<\xb4\xcc\x94\x93\x02\x83yrq\xd3\xc4T\xfd\xf8\xae\xc3\t\xc2\xe6,\xe1\x9c\x1dD%\x80W\x8e\xbbnX\xe4%^V\xc3K\x8a\xc9\xccU\x97\x8f\xf7\x83\xacm\x8d~\x94\x8dAu\x05\x02\xb2u\xfe\x99\x87:\xcbt\xd1\xa5\x80\xacR\xea\xb01\xc6Bc\x05\xe8\xfa\xbd=\xf8F\xa6q\xf9K\xeb\x9b\xfcV\xfbf%"\xb0\xb9\xe6&oDr\xa3\xeb\x12A\x05\xd5*\xdf\xfa\x07\rX}\xf5\xed\xb1\\\x86\x81xW\xb5\xa6\xdc\x1eW\x8e\x19\x91\xdb\xcc\x83\x94\xc5\n\xe0\xff\xf8io\xc4\xa7\x08\x96\xe7\x8f\x13NwP\xc4\x80\xe9[@F\x95\xd5\x1d`\xdd\xc3.\xe1\xbc2?7\xf8\t6\xeb\xe2~O_\xd7\xd8%\xbb\x17\x08\xdb\xc3\xca\xc0ay=\x947<\x83\xad\xeb\xe9\x85\x8a\xe6\xe2\x97\x9f\xfb\xab0\x9e,\x92B\x1d\xfc\x98\x96|\xf8o\xad\'\xb4[\xacu5\xd0$\xd8P\xec*B\xb4\xe4 B\xb4\x87{\x1fQ\xf8OJW\xbb\x8cw\xa7\xe9\x9cN/jr\xea\x14t$\xf4\t\xcb\x0e\x10\xf1\xdb\xf7\x8emiV_\t\xbfo\xfe\xacw\xbfw\xed;\x00\x80\xfeA\x1d\x90.\x95\xf63\x83k\x15\xc5y\xb4\xef\xd5\xa7\xc6\x9a\x07\x94\x0f\xc3\xba\x1e\xd6\xdd\xa1\x0eg\x06f\x1f!\xf7\xe2_\x124\xcb\xe6\x87W\x0f\xc5\x9c\xd6\x1a\xc9Ia\xd4\xd2\\\x08\xe4c\xa2\xcb\x89\x97\xd3\xd2A\xa2\xfb7\x05n\xd5DC\x8f\r\xbf\xac\xce\xa7\xc5qI\xb2\xf4\xc6\xdb\xfd\xe2/\xdbT\xa4@H>\xd3\xc2q?h\xa6\x86B\x9f\xde\xc6\xbb0\xabT2\xfc\x07~\xb7P\xc9\x9c/\xbcd\x17\xe0\xf1\x80\x115\x19f\x169\xbbS+\xe8\x06b\xce\xe1\xf7u\xba\xec\xa43\x90\xb2\x1f\x8ap\xce>\xd0\xa4\xe5\'\xc3\x01L\xd9\xa2\xe6\xada%gQs~\x91\xc8j\xf8\xcd\xa3I\x99\x1a\x94kP\xd5 |\x9a\xe6\xa0t<\xf4pI\x81\xdcCs\xb5\x93G\x93\xa2r\xcc\x8d\xd3\xf5Z\x94\xc8\xdaC\xb3\xcf\xea\xe5\x00q\xb0\x9c/\x95]P\xb7\x0c\x8b\xe6jg\xe6\xe6nZ\xf7\xe2$b\xc7\xb0\x87\x9dm\xfe\xbd#\x84c \xbe1\t\x14;t\x11\x80\xecv#t-v\xde\x93\xe2E\xf7\x14\xaf\xec\xd5\x18\x17\xe5\xde\x8c\xe1\x08\xb0#\xdf\x1ep(|\xbb>J?T\xb4\xc81\xea\x06\xc5V\xee\x96\xba6\xbc\x97\x13\x96\xa2\xeej{\xf7?t*\x87\x00\xd2\x96M\x19\xf5\xe8\xdaH$1R\xc1\x96\x12\x88^w|%\xef\xb0\x8e\x04Y\x99\xeadLl\xf9\xa3\xc5\x18\x19\xb6=[\xdfHE\xc3\xe8\xfc\xfcF!\xd4t\xff.u\xe33\xe8\xef\xb4\xfd:\xe2\xfc\x7fxj\xeba\xb5T4-\xd4{C\xf2\x12\xe8\x13]`\xab\x97zy\x8c\x11\x15%@\xbd]\xc8%i\xbbV=!\xfb\x84v\x83d\xff\x9d\x7f\xaf\x8b\x08\x89\x81\xaf\xab\xa2]U\xae\xb2L[=\xdb\xc6\xc3\xad]v:\xbdY\x960\xca\x8eW\x93\xe0\x00\xc0":z^\xa6\x04l~\xb9Ay\x0b\xc4\x19R\xac1\x9c\xba\xe6.\xa0\xdc\x96\xa04\xfc\x17\x97\xe8\xe3< TP@?\\\x13\x9e\x8d_\xf3\xff\x9a/p\x18\xf4\xe6\x85F(L+\xa3e\x11\xf1D\x02\xd5\xbd\xa6\x11~1?\xbaB\xf8\x82u\xc4\x14\xf4\xd3\xf1\x93\xcb\x9aG=\xc3\r\xdb>\xb7\xa9\x00\xe3\xa1\xe4\x92\xe3\xf7\x9ak\xc2&\xc33\x8a\xcaR\xf5\xae}\xb9\xee&+\x93r\xa8\x14@\xc08\x85W\xa1\x9d2s\xde\xc6\x9e\t\xa7x\x18\xe6\x80\xc4\xf02\x94}\x0e\x1b\x06\xf2\xe8\x8f\xb6!_\xd7$~\xbe\x88%\xb9Q\xfb\x9fS_\x01\xad\x84\xf5\x95\xf51K\x9ck\x86p$+\x0b\x83d"\xe0b(\'\x92FF\xc9G\xc9Wx[9\xf7\xefd\xc3\x8c\xe9\xa8\xa1\x11x\xcb\x11\x8e\xf3^\x07\'\x88\xa2\x84\xf9\\\x92\xe0\x06\xb20\xa6\xc2A\x99\xffmN\xbc\x0b\xc1\xcc\xa7\x1c\xebvHN\x17\xe7\xd7!\x84)\xe1`Qt\xa8\xce\x08\xb4\xc2>\x95&\xbaZi\t\xe4\xc3\x18TXI7\xcc\xfeq\x03N\x15Y,\xdbO\x03\xdd\xbc\xa5\xf7\x10\x92\xa4.\xe2\x93\x0f\x16~h\x15\x1d$9D+\x90\x87%\xfbYR\xc5\x8c\xe6\x89\xf8o\xe1\xd9\xb8f\xf0\x82\xce\xbf\xccN\xca^\xc6*@\x9ch\x1f\x89\xc0\x9d/\x00\xd458\xb3\xce\xfb\x8c\xd5\xb6].\xa1Z:\xbd\x18:\xf9\xc2\xd1`\t\xb8D\x8a2\xc3t\xfd\xcf\x1b-\xae\x13 \xd0$\xb8W\xadv\xe07UDn}\xbb\xed\xac\xf9s\n\x8cD\xd9\xd2\x98\xbdm\xf3[E\'ao\'vLx\xb8\tP$\xee\x07N\x19\xc1\x0b\rE\xe0\xe3\xf4\xb6\x92\'V\xdc\x8b\xe1+\xf0\x0f\xa8\xaf7}\xeex\xf1\x84\xc0G\xd2Xh\x0bR\x8d\xd1\x08:_6m\r\xa7\xd0\'\xb8\xd1H\xb8\x82\x0b\xdd\xd9\xc7\xd3p\xcf\xc1v\xf5\xc9t\xf1i\x7f\x10J\x9a\x9f\x8c\xd0\xa4\xbcKT\xecB\xa9\x9c\xf7C\xbc\xbd\x9bD\xb6\xccP}\xc7\x11\x8c\x10$X\x18\x96\x9d\xa3\'Q`\xb6;-\xd9(\xd4\xa6\xceS\x8a\x9c\x9e\xa0J\xf0\x9bI\xc5\x8b0\x12^\xd2\xdf\xfd\xb8k\x8b6\xad\xab\xc9\xea\x8e\xad\xbeh\x14\x97\xb7\xc7\x85\x15\xe5\xcc\xdf\xc5\x99v\xe71\xda\x10\x1e\xdeO\xf8!s\xc2?\x8c\x97}\xe8\xce\xd3\x16Nc\xdb\x1cjs"\x8e@I\xf8\xd3\x0c\x8c\x1c\xd4\xf8\x9b\xb8\x1f(\xe8\xb4M\xf7n\x85X\x1f\xfdsx(\xe6;&\x1bD\xbaA\xb8#D\xc4\xcbL\x0fk\t\x03\x1d 4\x06\x03\x1d@\xb6w\x00oc\xd7?:\x97}\xa1\xb0\xad\xecm>\x0b5\x89x\xcd\xd0\xfe\xbc3[{\x96\x8ek\xd8\x04]\x96"n\xcf\x98b\'\xf6PDh\xb3#/\'\x13\xfb\xc4\xbeC\xd0P\xbfv-\xa44\xb0\xd1f\x1a&$\x84\x82\x0by\xf1\x1c\x00\xbcN\x14V\xf8\x87h\xea5\xde\xeb\xa5\xf2D\xab\x0e\xbc\xef\xe4\xce\xb2C\x90D\xff\x05\xf7p2\xaf\x04\xbb_`\xca\x1d\xad\xf0\xa2\xa2"\x96e+\x12`\x96LOj\xbc\xb6\xf0\xe4\x92\t\x85\xfc6\xea=#t\xba\x85\xb1\xc5\x1a\xafT/\xcd\x1a\x04\xc6\x8dR\xb5\x08\xdb\x17\xb0\x0b|Pl&P\x11`\x13\r\tm\xcc\x1cWXs\x9e\xc0RoR].$\xbb\xd3\xfd\xbc\x93"d\xc1\xb87-\xc9%$\xec\x85T\xb5\xe5s\x9c\xfaz\x8f\x08\xbd)`\xfd!.=\x86\xb2\x9b\xf6L\xe8u^`\x88\xb0V7m37L\xbe\xa9N\x84\x9ck<\xdf}\xc6Xn\xf2wh\xcdP\xe0D\xa9\r\'0\xa4~&\xb3Y\xc3_\x95\x9f\xed\x1b\xa53QxQ\xaf\xfc\xb1\x139BP*\x04\x0b\x9d\xa4\x0b\xa4\xbd\x8a\xf3\xebK6\x80G\x8bqx=ts\x87h||\x01\r=\xb5[(\xfb\xcft\x10\xf9\xd6\xd0\xfb{`J\xd6\xf9m7\x9e\xd0\x82\xcfV\xa6\xec:\x1c\x8b\x94\xc2I\xcb=a\xfb[\x96\xad\xfbZ&\xc0\x024\xb2\xedoD\x05\x02\xbd\xc0\xd3\xa10\xfc\x0e\xd7a\x17\ry+/\xa4\xc0\xa6\x82\xf0!b\xbas\xa3\xfe?yq\xd4 G\xac\x96\xb29\xf4\xed\xee`\xb9\x91]b\x14 \x07\x9a\xe6\x15he>k9.HjD6\x10\xbb\x02:\x04\x1dbq.K\x81<\x01\xae}\xbe\xa2)\xfaW\xc1:r\xf2\x92R\xe3\\\xcd\xdap`S\xefu\xe9M\xcb\x84\xd9p\x91\x90.\xf7\xfb\xee\xb5\xa6\x06\xf0\x14\xf8\xf3\xaenT0^\xf6\x13\x00\xd2i\xfan/\x04T\x84\xddN\xe5T\xf5\xa3#,b\t\xc1\x16\x0e\xdcu\xa3\x0f\x9a\x94\xbf\xfab\xfc\x1e\xf7\x03\xa3\xd3~\x9e\x15Kq\x8d\xf4\xdbU\x008h\xcci~\xb9\x0b\x95\x01R\xd7n\xbb?\x833(W:\xa6\x8b\xa5w)\x1b\xbe\xd4\xf5\xbd\xca\x17\x1c\xc2\x17\x85\x89\xed\x159\xd0\xb6\x19\xee\xf3\xeeJH\x16p\xf1\x07\xe3\xf9y,\x01\xf43V\xa7\x0f\xc7K\x10\x83\x01\xa1\x13\x81\xd5\xabz-\xccd/\xa1\xcay\xfdH\x82=\x0e\xe6\x05\xdd\xcf~)~\xb6\x10\xfde\x92F\xbf\xb0\xa2\xdb\xe1\xd6D\xd3\xca\xc4\xa6$yT\x0f\xef\xe6+\xb8\x0b\x84`Y\x82JXp\xc0\x91\xef\\\x10~\xa0$U\xc4\xa0\xa7f)r\xe8b\\\xfe\x14\xe2\xb2\xd6\xf7-\xdb \xfc\xd1\x9aD\xe6\x18,\xd85\xbd\xfb^;P\xf0\xc2E\x1f\xa2H\xbdz\xd1D\xaa\x94\x00X\x82HQ=f\xb0\x12aJ\xb0\xa2\xfbNC{\xd3\x99\x9b\xe1\xe1\xa4\xdc\x99\x10V\x86\x19j\xc6c\xab\x16\xa9:\x8a\xeb\xddA\x0f!\x81\xac\x00\xc5\x08Su\xd7K\x15\xd2B_m\x1b\xf3P\x0e\xba+\xed\xd70alu\xd76\xc1\xf7\\y\xbe\xbd\x9dFfYJ\xf5\xee\xa4\x7f\xf9\nVs!5\x99\xffx\x7f\x8b\x91\xc1\xfa\xd0+P\xaeC\x18\xbb\x02\xe0\xeeX\xe1\x8b\x84\xfb2\x08\x94)]\x88-2\xc5\xb3\xc1`<~\x9ad8\xcaq\xdc\x0cb\x82\x1d:8~\xe4|\x1a\xd2\x8d\xa4!\xc5\xdb%\xa8\x1c\xf4Yj\x9b\x87C\x00\x1a\xd3\x19\x00z\x18\xb6\xb2Q\xb0\x04\xfd\x86\x9b\x0f\xd20F\x0e\x94\xb6\xec\xedGHh8\xbf\xcc\xdd\xff)a#&\xa0^3\x15\x07\x1d\xa1|%\xba\x83O0\x98-J\xe2Q/u\x80\x87\xe1\x80\xefo\x95\xfc\x91-\x8b3\x1d9U\xd6\xdc\xd8FG\xce\x98\xbe\xb7\xcc\x9e\xe9\x80\xc5\xb9\xd6\xd5?\x8c\xb1\xe1\xb5\x89\xf1\xaaA\x02\x9c\xb9&\x86\xd4\r(\xaf\xfb\xc55\xf1\xc0&\xf8\xad5\xe8\x98\xe0\xec\xcd\xa1,5\xe3\x87B\xcc#14M\x88\x96\xeb\x89\xc0\x9by\xc8\xde)\x0f\xda\xa6\xeaQ\xed\\j]\x0e8\x88A\xa6\x8b\xe1\xc1\xa0\xa8\x1f9U\xd4^\xc4q\x95\x92\xa4\xa5\xe9\xa9\x15\x9d\x88\n\xa1\xfdcz\xa9\xeaM4\xaa\x85!\xa7\x81\xd6p\xd5\xadt\x90\xe5\t\xfd\x99\xa70\x9cR\xc3%\x071\xb3\x96t\x01\xcc\x0c(\xb5Z4\x10\xa1\xb0\xc0\xdbNr\x06n\xf2\xd7tZ\x86\x9f\xfb!\xdd:\x9c\xb0\xb3\x90\xb6\xec\xc8tY\xfeG\xee\x8f\xcd\xe6\xaf\xd2\ne^\xdaG\xd9\xc2\xe0\x02\x97Q\xf0\x95S\x91(\xed\xe1&\x85\x7f\x14x\x1d\x16Q\xa4\x93+gQq\xc6*\'M\xb9\x92Y\xf9\xb2\xfc$f\xff\xc9`Y\xaf.\xd4\xc5}\x04\x1bvZ(\xf0\x98\x1fB\xd4uX\xe9\x18\n\x0f \xb2@\xebuE\xd6Q\xdb\xab\x0e\x92\x86d\\3i\x87d\x1c1\xe3\x1a\xbe\x01\xdc\xe7\xb9\x08\xcb\xa9b\xc7at\x08\x8f\x93\x07\x1d2kv\xb7\xa8P\xc5\x12\xfa\xd3\xda\xcd\x14;+S\xf3\xc2\xe1\xc2\xac\x00_\xeb\x83\x86\xc6\xc2\xc4/\x9cA\xf8+\xdb"\\Pu\xf0k\xc6.\xed\xd1\xc6\xdaV\xac\n\xad\x06\x19\x1aj\xf2T\x19\x7fF\xb2_|]\xce\xd8\x08\xe2L\xbd\xca\xae\xf5\xd5\x94U-\xad\x04\xd5\x06\x0ewq\xe9\xf3\xcc{F\x01AE\xe3kO\xcf\x0b\xad\xaa\x8f\xdb\xe2^\xae\x925\xeb\xd9O\x86,bb\xea\xa5\x81\xf9m\x06\x0e} \xedG\xf5\x0c\xdb\xe8\xcd|Jc\xcc\xadI\x15\xf1\xf3w\n\xbd\xb4\x9b~\x19\xa34\x84\x9eD/\x975\x0eka-\x11O\xc1$\x1a\xe49(\xdc\xa6.?\xc4\x175\x8f\xac\xe0\x03\xde\x02\xc8K\x8dY\xc8\'\xd1\xa38\xe1\xf4\xeb\xddr\xe8\x8e)\xa5w\x88\x8d\x19\x84\x99U\x86\xa0\x8air\xb1H<*\xfbT\xcb\xd2[\x83\'\xed\xd7\x16Z]5\x86\xba\xcfO.MRK\xdb\x88RKeP>\xd3}\xaa\x19s\xd9h\x8c7\xdc\x8c,i\x0b\x15\xb9\xa5\xc8\xfd\x7fY\x1b\xebw\xd7\xce%*H\xa3q\xdd{\xf4\x16z\xc6\xb2i\x8b\xfa\xd4\xc3\x9a\xfd4\x1f]\x8a3\x1a\xf1\\Dlb%1"\xf7Y8\x06TR\xa5`\x0cK\xfb\x9aY\xde\xe697! \xd3\x91;\xef\xec\x03\xda\x9d\x15\xd3\x94\r\xf8*\xf6\xb8\x0b\xf8\xc0\xd1n|\xe1\x90Bt\r7\x9a\xdbI\xf0\xddS\x97\x00\x915\xe3\xa9=I\xae(\x9bck\xf6\x06\xfd\xe0d\xf2\xe9\xb9\xeb\x06\x7f\xbcN\xc6\xad\x0f\xcd\x9epA\x91\'Q\x000\nj\xee?\xd8w!"\xa3\x15\xa1:\x18\x04\x91A\x18\x1a\xbe\xb8\x006+\xfd\xb7\xf7)\xdbzN\xcb\x022\x83\x1a"\xcb\x9c5\xc0\x9a\xf1\xd0\x16\xbd\x8d\xdeBQod\xbd\x9f\xa5m\xa1\xd7\x1ftOk\xfc\xb9\xc3\xb7bgdb\x19\x92\x83?\xc2\xe0\xfb\xe9\xdd:\xa4G\xcf\xd5\xeal\xaa^+\xf5\x8cgc:<8\x0c\xf9\x08\xaa\x7f5\xf4\x88\x05\x8a\xf3Q\x14\xdb\xadq\xf7\x18\xb8\xe8\xd6\xad\xfc\t!\xa5\xd0\\\xbb\xd8\x12\xc9\x05\x1f+\xe0\x0f\x98\x99\x91\xfb7}\x8e\xdc\xb1T\x04\x91i\x96JGZ\x19\xe5\x10\x933h\xd1\xbbi\x1e\xdf\xb0\xdc\r\x9f\xdb=/zq\x9a\xbc\xe48fn\x1c\xd5\x8e?\xbd\xda\x1eP\x1c\xdac\xc8\x1c\xec\x97\xa5\xd0\xd0\xebt\xf9\x00<\x88p7\xd3,\x13\x0b\xedi\x93[\xdb\x84\x8c\x98\x111\xf95P\xc9#\x9ar\xfe\x05\x92\xe9\xee=0\xfb\x87p\xf8\x9d:\xaa8\xaf%E\xa5\xb6S\xbc\xf4N\xa1sgw\x1a\x8b\x85?\x95\x13\xbc\xfd\xf5\xc5\xb6\xd4\x08\x998\xcd\xae&4\xd3\xd6g-GlU\x89X\xfd;\xbc\xc3\x83\x91~\x9c\x8a\x10\xab\xf4f\x07\x7f\x91\x01\xa9\x1ag\xb9%PJ\xa1g\xd4u\x9cp\xf9\x95\x03\xe4~\xec\xee\x91\xe9\xff\x885\xcbA\x1a\x1f\xe1\x15?t$p\x9e+-Q\x0c\x1ac\x92\xc4\xa3\x1d9u\x93*\xd8S\xd4\xeb\x8d\x87D\x9c\x8f\xa4e\x02\xcd\x80\x19\x0c\x19`\xdbW\x04\xc3\xf4\xbf\x1f\x81\xb6\xc35\x84b6Z\xad%\xb5S\x1d\r(\xa6\x82\xe9\x82^\x98\xcaB:\x88\xd2\x85L\x9bf\xe1\x7f\x19\xe6\xca\xf8\xc0\xb8p\xb5\x92\x12\x93\xce\xae\xd7\x15;S\xaeH\xcb\xac\x8fm\xf0\x07F\x9ai\x8el\xd4\x0cX2lh^v&\xe5\x06q+`\x88\rm\xae\xac\x94L\x9b\xaa\x84*\x89\x89\x0cf\x8fA\x91\x8a\xebW\xf3r\xc4\xfa\xff\xf3\xf8\xd6)/\x8a\x06f\xc4\xdcA{\x03 h\xff\xaa\x18\x8b\x1c\xa1Q@\xa8\x16K\n\x8c)\x04\x11\xc4\xb9e\xb5\xa1\x01Z\x10\r\xcf\xe8\x8c\x03\xf3\xdcr\xf4\x82HG.\xf1 \xabK\xb2\x865\xf6\xf75\x0fU&\xc5B\xaf\xa8\x98tb\xe1\xceF \x05vP\xc5\xe6d?\x8a\xf7M\x93\xc5\xb9Z\xc9\xc1\xcf\x881\x94\x92O\xf4;\x05K\xc3\xf1\x1fDv\xc6\x8e\x07;\xe0\x1eG\xae\x90\x1a\xcb\xec\xff\xa7y\x0f\xb8\x16\xdb\xc6]v\x84\xda\xcb\xce\x93\xd2\xdbz\xf4\x0e\xc2jH\x98S\xbc.\xf5\xdb\xf8\x91\xec)\x1c\xcf~UD\x90 N\x85Y\xd4\xe4I\x0e\xa4\xa0\x8c\xeci9\x0f\xbe\x98\xact\x15L+F\x10\xc4vc\x01(\xd4\x1d\xd1\x05;\x99\xd6\xeaT*\x06T[\xcc\xbd\xe4\xb7\x81\xbdD\x18IQ\xdb=\xb3\x1c\x92\xbe\xbeD\xcb\x07\xe9,\xb8\\5\xf5\xe8\xf6\x91\xd1\x83\xf3\x8c\x9e\x1d\xc7\xfa\xe2K\xaes\xfc\xfa\xfc\x0e\xa92xV\x93\x94n\x1d\xdd\x14#^&\x9b\xee5\xb9E\x01\x1e\x1cK\xa4`]\xdf0\xf9<\x85Y\xc6\x93\xee \x12\xd3\xc9<\xcev\x08\xa4\xd1\x1dv\xe8\xc5\x94\x0b\xea1\xfct\xc5\x85\xf3m\xee\xe7\x0e\x1a\t\x8f\x05\xc5\xbe\xd1\x1b\xa1\xd0\xef{n\xb1-\x96Xo\xbc\x94\xb6\xad\xa5\xee@\x95)4$}\xc7\x9f\xca\x16\xf3\xd0\xcb\x7f\xefS\xc7\xe4\xd8\xd3a\xa0\xb5\x1e-\x7f\xe9\xac1i\x01ym\xbe\x9a\x85\xbf\xae\x90*\x1d\n\xfeB\r\xa9\xe6\xa8\xd6\\\x96+r\xccq\xc4\x083\xe1.G\xf2G\t\xf7\xf1\xd7I`\xa2%\xf1r\x806\x10\xa3{n\xc7\xe2\xf1\xc2\xa0\xa3\x8eS#\xec"!\xd3\xc3\xf0L\xaa\x90\x92\xccL\xdb\x18\x08L]i1~\x95^\x1d\xca\x02LO\xba(\x17s\xa1XLK"\xe5R\xcfc\x99\xa1\xd6N|\x05b;\xee<\xf2\x0e\xb1\x17e\x03\xf3U\x90m.?\x0f\x8dI\x13R\x14x\x03\x12k\x8e-x\x8c\x86n\xb1\xc1i\x0c0l\xe2\x90T\x040e(o6\x94!-\xc5\xba\x87+\xbc\x88\xa9F\xc2x&\xf9\x0b\xe0SCzOk\x8e\xf1\x11\xe7\x97j\x1a\x1d5\x95\xa8$H`\xb7\x90\xc1\x1f2\x9dz\x89\x91\xa9&:\xb4\x174\x10\xb0n\xa5>!\xd2\xa8*<\xb4\xbdC]\x0c=\x15\xd2\x1c\x88\x83~H\xca%\x90\xd5A\xed\xaavc\n{>\xd1\xbe[I\x963};b\xc6\xe3)\xf8\x8e\x05)ebSfh\xfc\x15iW\\\xda)\x07\xf9\xf7{3F\x10\xba\xbe\x1b\x1b!\xa3\x86\xd1^\xc6\xab\xa4vi\xe2"\xda\xfd\x8f\x9d\x9a\x1d\xdf\x81\xec\x0bK\xc1y\xed\xa8\x8fY\x03\x8c\x8f\xa6h.8\xa5g\xfc\xe5\xc0\x81`\xef\xf9\x06\xd1\xff\xe6\x16Z7\x8b\x1c\xa8g\x88H\xb0{-\xd1\x7f\xf6\x8a\x17>\x11\xe9\x8f\xc1?\xd6\x94\xaf\xe3\xff\xee\xdd\xa8W\x00$\x9f6\xe7d\x0e\x03\xb8"pcZ\xea\x89\xf7G\x81%\x95\x92\x13\x05\xc7\x8b\x85\x08\x07\x00\xf2&\xeb\x85\x93t\xb0\x0f7\xcd\x14\xf6J\x8c\xf49\x9d\xeeh[\t\xe9\xea\x9e+\x11/>\xa0Z\xd4\x07\xac\xa9\xe8z\xf7\xcbG\x97W\x99T\x07n\x94\xb4X& \xb0\x95\xce\xf8\xc2\x04\xea-\'q\xd3\\\xfd]\xb9I\x87\x18\x15Dg\xb3\x1a~\x04l\xf0\xbb\x16\xfa\x83\xaf\xf4sh\n\xcb\x8d\xa1\tw\x11\xca\x05\xa1\x85C\x10\x01\xd8\x81\xc5\xcf\xd2jl~P\xd4\x12\xaf\x81o\x05;\xc1\x04\x12\x86\x83\xafW\xda\x0f\xbf\xe5\x89\xd0\x00c\x07\xed\xb3\xe3\xd0\xb2\xeb\x05\xbc\xc4\x93C\x14\xa6\xcfU\xf2\xa5c|\xca`\xbe\xea\x1d\x18\xe3\x14I\x90\x87=\xf8P&_\xd2\r\xfd\x0b\t\xea0Z\xef\xff\xc5\xea(n\xee\x1b\xac\xea\xac\x9a\xc9\x06qCF\xd6\xd9n\x05\xc8X\xb6\x9d\x99\xec\xe5\xbf\xb9PC,R\x0e?\xd9\xfd$\x97q\xde\x16\xe9$H;\x87\x9e\\\x88\\S\x0f\xa9Zq\x9f\xff{\xc3\x8c\xe9"\xd2)\x0f\xcduc\xe1\xce\xd6\x03/\xd2\xa8\xdaf\xaa.\x99\x9a\x00\xee\'\x80\x84\xd0n{Jx\x83\x85\xcb\x18U\x8bX\xfe]o\xd9q\x01\xca\x8d\xfa\x1e^\x06&\x03\x10\xab\xc2\x93\x1f\xbc\xdb\xe2Yu[s-\xa8\x8d\xbc\xde\xdcw`\x7f\xb9\xfb\xa5\xea\xb5\xc9n\xcce\xe2\xcf\x8dJ_\xf4f\x7f\xd5\xe7\x8a\xfedu\xdb@\xf8^2tf\xce\xb9`\xa8\xe9)\x82\x97R\xb31\x9a\xff\xdcDP\\\xbf:*\t/`1g \xf1W\x91\xd8\x89\xa8\xae\xfc;\xe1\xbd$\xf4\xf3\xc2\xd9\x8f\x8eO\xab<\xee5F\xc4\t\xc0\xa2I\xf8\x13\x9e%M\xc7i\xd6.E\xd4\xc8\x1fHQ)]\xd1=l\xb3\xd3\xe3\x12\x89\xef\xc8\xc9\x93\x82\xdd\xe9>C,p\xdaq7\x02eH\x8f\xfeBx\xbc\x0e\x1f\x1fB\x14\xb5\xc7^\xe4^\x9f+\xafaS[=\xc2\xf8_\x9c\xd9v\xe2\xa5CSRO\xd0-@\x99\x1f\xfb\xb3\xfcN\x17\xfd*\xeb{\x8dv\xe4\xf2\xae\xc2TAM\xe8\x1c|\x9b)i\xe9nUm\xd4\xa4\x1bU\xaa\xe0\x9f\xe6("\xa6\x15\x1b\xa8^\xc8\x94\x11u\xb2\x9f\x14{\xcb\x7fm\x1f\x84\xb7\x80J \xad\xa7\xbfR\x8eS\x880$\x93i\xdc\xc4\x88j6vH+r#\xc1\x88Z\xd1\x0e\xdav\x11v`Z,\x7f\x0e\xdb\xbb\x14\xc1\x80\xf3\xb6\xad\xc3q\x10\x8c\xfd\x9a\xc9\x97RxD\xb2\x04\xfd\x7fS\xc7\xa5P0\xdfo\xb1G\x97\xcd\xb0\xdf\xe2}\x91\xb8\xa4%\xe2D\x86Q\x8a\xec\x10qH^\xc9\xd0?\xcf\xd9\xde\x90\x1a\xa1\x94j\xfd2\x08\x03\xca\xc6V\x94G\xc3UQ\x88k\xd5b\xeb\x1e9\xb3K\xb6?\xe3x\xe9\x83\xc2~\xa5((\xb3\xf8g\x8a@aj\xd6YW~\'8}~\xb0\xd0\x9d\x87^\xa3\xd8\x023a\x84\x97\x88V\xd5*\x9b\xf6\xf8\xb2\x9f\x14\xff\xcb\x08|\x99x\x1a\xaeTa{\x80\xb9=\xc2\'\xbb\x15\'\x98\xee\x13\n\x96\xb1\x89\xb1\xbc\x11\xae\xe9\xe4[)\xebn\x90\x0e$\xda*\xf6\x00\xfe\xb3}\x1f\xc9\x0e\xb5\\\n4\x9e\xc3\xf7ru6T\xfd\x1e\x1dH\xd6A\xb3\xeb\xff\xfb\x7f\xa3\x0e\xed\x82\t<\xd3:\xb0\x02\x18\x88\xc8\xb5\x08X\xa9\xad)\xb4d\xbc\x03;5\xbde\xa79\xe4_0\x9c\x05\xb5\xbb6<;\xcf\xae\xbf`\n\xc9\xc6\x85G\xe8\x14I\xfe\xb4\xe1\xe3\xbf\x01{7uFT\xbb\xcc\x1a\xf6\xe1\x83\x08\x84\xd9\x93\x15\x7f(\xc8!\xf3J{\x03\x00h\xa0\xfcc\xeb&8\x1dT\x8a\xda\x1e\x85}\x0cA\xdf\x1e\xac\xa2\xd3\x1c\x11*,/\x08\xd2\x8e\xe8\xca\xec\x0b\xff\x00\x96\xe2s\xad\xc6\xc7\xc1=\xc4o\xfdw\xf1\xda\xdaD"7\xe9q\x8f\xea/\xf7\xdeY-\x99\x18\x8c\x1eM\xed\xde\x1f\xba\xcc>S\xd7I\xb0?\xc51\xef\xe7\xe3\x93\xf7\xaf\xf4/sX\xef\xdc\x08\xeb\x8c\xd0\xce\xba]\xe5\xdb\x9fg\x8a\xaf?\xc8/\x17\xe5\x00\xbc\x93B*\xae\xb5\xe3\x1f\xd5\x8et\xf7\xad\xc1j/\xe2\xf2\xc6\xec\x14\xbb\xc6\xa8$\xa1\xa2\x89\xdf9\xe0\x81\xe5\x96\x80\x9e\xf2\xd1\xb5\rC\xe8e9\x16\xfd\xc3\x82Yrci\xb3\x86BV\xb5\xb5\xbd\xe3\x8d7ec\xef\x80n\x1d/\xfb\x0b\x90\xa2\xb6`(z\x0c\xba\xb3C\x1f\xd9\xa3lB\xd0\x88uX"x\xdfE\x8c\xa4\xc9\xe7\x81\xbci\x87\xff\x17\xb7@+j*J\xd0\xe0=\x1e\xef\xbd~\xbd/<\xdc\x85\x0cV\xb9\x03i\x8c\xa5\x88\x825!\xab\xdeN\xa9\x0eJ*\x97\x92\xcfcm/\x8eW@\x91\x8c\x16\xbaP\xf3\xb7\x9f11\x9f\xcc\xef\xe3\ty1\xdb\x121\x1b=\xbb\xdd\x0f3J\xba\x9ch\x86;\xb7{\xe1\xc5(\x9c\xb1\xd7\xf5s\xde\xb7\rn\x83X\x16k\r\xf5\xf6xf\xc5\r\xed\xad\xe1\x05\x04\x9f\x8e<\x9e\xd8l\xc9\x87\xe2\x93dxB\xb0g\xcc\xdd\x16\xd1\xd0\xac\x16\x9bb,eN\xd0B\x17\xaf\xdd\x0b2\xc5\xd4\xa0\x08\x8c\xca+/\xd8\xcf\x7f\x9cK\xfb)1\x8f\x00\x8e\ti\xb2I\xfc\xc6\xcd\xbb(\x06&\xee\xeb\xe4v\x19\x1a\x85\x0e(\x14\xc8\xb32\x1f\xe8\x10c\x9a\x92y\xca\xe6\xad\xa5\xfc\xce\xb405\x1f\xaf\xd4\xa2\x10\x9e\xb1\xb6\x80\\J<{\xae\xd0\xdf\x19\xd9|\xde\x0e`\x01\nW1\x9c\t\x85u\'\xef\xce\x12\x1e\x04e\x81\x916\xaf\xf4\xfc\xa0\xd1j\xb7\x99\x94\xf9J\xff\x1f\xa5\xde\x06\xd81\xd9\x9b\xe8\x87\x85\x07\x82\x81\x92\xff\xd0\xa5\xe5\xe5\xa7\x02[S@ZK\x07%b<\n\xdax\xff^\xbe-\xa9\xc1\x8f\xe0\x8e\x87\xe8\xca\xc0\x97\xa2\xc7\xcb\r\xac\xa7\x8d\\\xc4\x00\x0e\xdc\xa0\xf0\x1d\x85\x8b\rR\x18>\xb7\xd2)RE\xbb=\x10\xe5| \xf3\xd6\x92\x92Gl\x00W\xba\xed\xaf\x1bz\xe8\x88]j\xa3\x84s\x14s\x83\xa7\r8\xa6\xd6\x1eu\xf7\xa4\xf2\x91\xd6\xa5\xc2;z\x92\x93A{\xf9K\xbarR\xf1\xe7\xee$?\xe4\x8b)\xf5h#4\xe9EA\xd4\x1b\xc1\x12\xba\x01\x18o\x9fu\xff\xaejx\r\xc1\xa9&\xf1\xdb;\x81\xb6S\xebG\xf5\xa2\x005O:\xb8\xef\xb5\x89\x96n\x88dx#<=\x9a\xeaT*\x7f\x98\x1aM\x84\x18\x06\xf1\x1dX\xb5=\x0e|\x18\xfay\xa4KN@\x11\xaf@\xd9\x97.\xc9\xebP\x88\xb8\xa8$6\xa2\xf4>\xc8\xfeq\x18\x06\x0c\x9e4a\xfd\x84\xd7\xe2u\xf3\xd1T\x10\xdc 0\x13Ih!\xb4\xe2&#\x8ez\xa97\xf4\x18E\xbf\x10\x88\'C\x92A\xaa\x1c\xd7]\xcb`\xe4"=R\xfct\xf5]k\xee-\xe7\x12\xe9?\xfb\xa6I\xf8\xd5{}\xca\x88\x00\xaczFo\x91\xd80\xf8`\xb4\xa1\xb70\xc2\x00q0\xb1p\x8b\xdc\xee5E\x10\x16\x89\xbb\xaa\xf2"\xdd\xac\x1d\x95X9\x83[^\xb0\xa8\xe9=\xbc\xe2\xbb\xbfh\xd9r\xe0\xb8l\x91\xd2}k\xf6\xd3\xed\xe7\x90\x1es\x00\x9fa4\t\xea\xddi\x11[>\xe5bo\xed!\xd2\xe8\xd6\xb4\xa1D,\x90\x03\xf0\xe7\xd7x\xe4%4\x9f\x0e\xe5\xfd\xfe(\xbaN\xec\xe2\xec\x99\xae\x81\x8c\xeep\'\x1c\xd3vf<\xb8\x1a\xae\x16\xa2\xd9I\xe7\xeb\x87\xf4\xf7\xc8\x06\x8b]\xf39~\xe8\xb4P8\nJ\x07\xc0\x9d\xf5\xca\x8bW\xe1,`\xea_A|H-\xf4\xec@\x00\x02\x12!\xe17_\x03\xc0=[\x9bZ\x8f\x94\xc7~l\xa5\x8e\x92\xe5\x03@\xf4\x0evb\x01y\xc3J\xf8\xa6\xbdx\xe5\x13\x82\xef\x0f\xdb\xf3\xd9\x02\x8e\xfe7\xabA<\x955Zn\x97\x9c\xcaz\x16\x1e?\xb4\xbe\x94Fe\x84m\xe0\x17\x8bx\x97\xd7\xd2\x82\x84\xd9\x9a\x97\xdc\x17\xbf\x03%\xff4\xb9M[\x19W\xa2\x04\x96\x1a\x9a.\xf4.\xff\x07{\x16\xf4d(\n\x17\xb0/}\x13\x88/wU\xab\xcf\xb9\x80\x86_\xb8\x024fP\x189\xf1\x9cKk\xed\x9e_\x82S\xf4\xf4d\xa1i\x99\x10a\xc1Y\xe6hN\x94P\x9e%\xa1u\xf5;Q\xcb\x80\xb2\x92\xd3\xb62\xeb\x9d\xd3\xfa\x1f\x15|\xf8\xa7z\x05\xe0\xf6\xca\x1d\x1c\x02\x9aP\x8f\x8f\x1c(\xe9\xc1\xac\xdf\xfc\xcf\x95-m\x8f\x08\xf32\xc4\xb4\xe0hv\xad\xd8\x1b\x15\xf2\xabb\x98\x82\xb3\x9e}\xce\xc5\xe2\xeda0\xa3\xbc\xcc\xe73\xa6\xa0:\x80\x19\xbb\r\x07\xf6\xf9\xadR\x10\xcd\xb7F\x959\x8c\xf6Y\x07\xe0[\n\xfcP\'\x8f\x88-\xea\xf0\r\xa3\x95\xe7\xc6f\\\xcc\xf5h\xe0\xa4\xad|*\x8d\xdeV\x9f\xbd\x1ce\x91w\xa5\t\xc2\x00\xe8/\x81\x0bb\xaf\xcc\xd4\xe3\xb9.e\xd1\xc1:\xcc\x8b\x83\x1e\xbf\xc8\x88\x10r\xbfK\xf0\xa4\x92\xee.Y\xe2\xa2\x90\x16\xaf\xa6q\xe3\xa6\x7f\x9f\xf4\xcc\x14\xfd\xad\x97\xf6\xc9RPH\x97\xd81oluY\xab\xc3\x9bk\xea\xe4\xc4p_Jj\x8e\xb49\xd0\x95\xdfa\x9c.\xbc\xc2\x0bQ}\xafz\x89\xf1\x94\xa57\xe4\x94\xa6\x99\x11*\xf7\xf0\xdc\x05\xea\xe9\x8a\xbe\xa6\x8f\x1d\x7f\x82\x05t\\\xa8\xe3\x16\x19Q\xbbV*\t\x9e\xf1\x9d\x14@\x8c\xecS\xbc\xe2\xa7\x84\x88\xc4;\xabBR*Q\xd2\x8d\r\xa2\xa4q\xd8\xb9YXA\x9be\x0b\xe6\xb6<\xa5\xd3B\xfd=\xde\x16w\xec\xbb\x13\xd4}f\xd8\x8a|v\xc3B\x88M#\xcf\xc8\x06\xd5\xac\x96\xc0\xdd\x82D\x7f\x8ax\x02HU\xe9\xbc\x8c\xfb\xc4\xf1\x0fTer\x88\x84\xf0I\xa3\xbb\xff\xab\x9e%\xb4\xba?\xecI\xd5X\xcfq\xcf\x12\x9d\x00\xc5\xe5b\xf3\x9dp\x84Z\xc2~\xdeq\xec\xea\xeb\xde8_\xccG\x90N\x81_\xa1>\xf0S*Of\x98*\x89h\xfa\x1aM\xe7\xce\x8b\xb1\x1b\xbc\xd8\xf4\xb9\xee(\xe6h\x1b\xd6\xa6\x14\xeaU\xe6\xa4c\n\xae\x12\xb3\x07\x0fou\xc7\xd7\xe7\\n\x16b!\xbfg_\t\xe9\x15T\xee\xdf)\x0e\x82\x92\x81Yi\xffWL\xcfm\xf7\xc1\x81\x8a\xae\x7f"}Q4\xd1\x91\x98\xd3\x15\xda\xeb`\xc7"\xb5R\xc5\x0cI\xeb\x0e\x8c\x88\xda\xf2P\x85\x1c\xfe\xf2\xa9tO\x82\xadrm7vxC\xfc\x94t\xc4\xe2\x00}\xb1\xf3b\xa6\xdb\x83\x94f\xbe\xf1\xd6z\xb5bc(?%\xa4@r\xc8\xfb\xdep\x88\x13\xb8\xdcrh.j\x9d\xc9\xb7\xd9\x08\xdc\xc5\xa4a\xc8\x11\xc9>\x12\xa2\xfc[s\xfb\x96K5Y2\xa7\xcd\xd2\x9e\xc3\xec\xb7\xf7\x13G>\xb5\xe9a\xf7\x0bw\x82\x0bd\xf2\xab\xc2\xd5"\x8c\xb9\x0e\xfb\x95J\xf6p\x926\xd4\xeb\xa4\xa7;\xac1\xd2Y\x1c)\xf11\xb3\x94\xcbU$\xef\xab\xab/p:\x08\xfe\x06\xdc$\x89[\xbdAgD\x8aH\xa8\xb7x\xee\xeb9\xdam\x07\xa2\x05\x8er\x82H#\xa3\x08\x88\xf4?\xec\xab\xa8wt,GW\xfc\x80l\xc7\x1eS\xc2/d^\xdbn\x1b\x8d+\xa5\x1bB\xca\x0e\x80\x89i\xff\xd7\xb8\xb0\xab\xd8\n\xcd|\x02\xfa\x96w\n\x17\\\x1e=q}(\x0f\x83\xb77\x90\x87\xa7fI>\x87N\xbct\xdb\x9a\xc5G\xbd\x9e\x1b\xd6*T\xc3\x14\x97\x97\xbbk\xe5\xf3\x8b\xd2:\x8c\xd6x\x04\x07Z\xb8\xf4Zhf\x1bT\x12P\xb0\x91\x9f\x06\xb2\x03\x03\xb2\xee)\x99a\x86}@4J\xbd\xab\x82\x1cz\xa43A\x1b\x1523\r\xd9\xee\xdd\x87\xa77[\xc3_\x97AyL\xaaRL\r\xfc\xdd\xd7\x1d@5\xca\x13,`\xa8\xe1\xb9y\xa1M\x1b\xed\xa5\xdeo\x888D\\\x85\xbe\xf3\xf2\xf8\xe4ox9\x90\x8eU}\x1bc6\xcd\xac\xc2F2:\xbde\xae#\\\x14v\xb7\x844\xb1z\x81\x96\xbd^\xe3\xe6>\x9e\x07\xc4\n\x1f\xe3\x82\x83\xd7N\xe0\xa6\xd2\xa1\x89G\xae\x83\x1d|(Q\xaa\tx\xece\xa5-hff\xf6d\xd8\xd4\x1bV\x03\xda\xf1\x12/Y\x94\xdf\t$\x85B\xbc\xcex\xdbM\x9e\x83\xb4\x97C(0\xa4\x84\xa9d\xa2J\x8b\x97o\xec\x8d\x19+\xe8\x19\xfez\xf57\x88\xac\xe0\x9f\xeb\x99G\x0b\xce\x88\x079\x00\x9e\xcaK\x8d`\x03\x83\xfb\xa0\x97\x0c\xce:\x07ht\x7f P\xa3\x88\x0e\xa2\xe6:\xcd\x96{\x96\xa2\x1d\x04\xa1\xb1\xe6\xed\xeb\x111b\x1d\x9bK\xb8^\xee\x00S`\x08V\xf2\xaa\xf3]fr"4u\xa0^\x92Fn\xafg\xd7\x02\x7f\x00#63p\x97C\xe4 |\xf1q?\x03\xb1\x92\xef\x97\xc7\xf7V\xe6\xd6\xb7[\xfd\x85hI\x01^B\x88\xd3\x84\x89G\xe9\xd3\xb6n\xad\x16\xb8\xd3\xbaD{V\xae%u^\xc89)#\xd0\xea\xa230\x1aI\x84\x9d)#\xc6\xb8\x1dIQ\x1b3\xb2H2\xc6/\xe7\x9fN~S\x80"\x91f\xfd\xfc+\xb2\xd8\x18\xe4\xb4`\xa1\xb74\x98T\xc5t\x86\xc9u\x1cm\x1c\x1a\x11\xfc\xbd\tQ\xf3uz\xbe\x88\xdb.\xc1n\xcb\x10\x03\xc8P1i\xad\r\xb5\x0e\xfa\x88;\xd7\xb4=\xfb\xd8\xfc\x85\xe5\xb5\xedg\xbd!>\x10\x9d\xb7\xdf\xea\xedi%\xee5d\xa4\xa6>|;\x17Xw\xb7\x80m\x13\xe2su\xb4Wkt\x12\xc8v\xa3o\xeaQ~\x15\x98,h+$\xe0\x0b\xd8\x84\x9f\x82\x13\x8d\x81b\xa7%\x9d\x93\x95O\xb4f2\x1d\x9c\xae\xbf\xee\xf6 \xf1\xa0\xcdOr\xfc\xb1\x81\xfc\xbf\xf9Q)8u<\xe0:\xca\xcd\xa9\xf4\x01\xf8\xed\x18\xd5A\x1f\x87\xab\x8c\xf5\xcd\xd3&*\xfaP\x0f-\xe6\x80\x19\x00\x16]\x89\xce\x1e\xe9\xc6\x13S=,\xa4\xfd\x806 \xee\xbbk\xb0}\xe7A\xc0\xa3T\xff=mkE\xc5\xc9j\x00\xb2!\xd3\\\x0f\xc6X\xd7|\x95$\xc7\xd4\xacV\x85\x1551\x8ed\xb5\x94\x85\xaf\x08;&m\x90\xd2\xc3Z\xfd\xe7\xa7Q\xb1K\'+\xe8j\x8b5\x13\x9cc\xecH\xc7\xeb\xafp+I\x9f\xb3u\xdd\xa8\xf8\xfc\xa0\x00R\xe6\xe6\xb7\x9f:P\xc5\xb58\x8bi\xbb\x8b\xed\xe7\xfa\xd7\x10\xc9m\x88~\xf6\xd8\x81\xe6\x91\xe0_\xd5\x93\xb6T\\,\x11"\xca#\x0c\xbcq\xc6$\x9bLe\xceT\xbe\xc8\xc1\x86d\t\x1a\xa5o\xdb\x0bw\x11\xb2^L\x85\xaeMeI\x86\xc2}\x14\x02\x8a\x17\xf2G\xe6I\xc4ipm6\x0bO0\xf7a\x86~R/\xbb\x17/\xbe\x82\x89z\xfaP\xaa\t\x00\xbb\xd0Q\x9a\xdf\xca\xf0-\xff(\xcc&H\xbd\xd7\x1at\x96u\x071\x0b\xbd\xca=K<\xd6\'\x1by\xe0\xf9t \x86\xb1\xdf\xb2\x88\x18?\x1a\xf8\xbc"\xccotw\xa6\xbb\xee\x1d\xb4\xb4\x1b\xe8\'\xe9\x80\x8dQ\xa5\x85\x0b\xcc\xb2\x7f!\xd8R:\x9b\xe2>4\x02\x04\x0c\xf0\x06h\xe7w\x98\xb2|\x9b\xac\x17Rz\xbc\x08/\xec^\x07\xff\x87U^NM\xe3&\x1c\x1fs\x0b\xea\xde\xd3\xed\xf5\xe5\xa5\xc8\x1b\xcf\xee\xa9&\xb9\x00\x95\x08\x88\xcf\x84\x1b\xdf\x86\xb5h4\x84%{G\xac\x8e\nb\xf5K\x9e\xcbA\xb4\xec\x8ef\x16\xaf\xa7\xb23J\xa2ld|a/\r\x06\xach\x03\x08\xb6\xc9\xfb^ ]Y\xd4c\x12&\xc7]?r\x8a\xa0i\x0c\xd2\xb4f\x858A8\x80\xab.;T\xe8\x96\x1e\xd5\xca)\r\x96\xe5\x16\x94\xbc\x88\x16\xe1\xc5Z^\xae\x04\xd3\xaf\xc78\xb2\xe2\xe0\xeav(*H\xd2\x98bv\xdcs\x1c\xff"OC^\xe5\xc9r\x95\x96\x0e\xbb\t\x03\x99\x8f\x88i@\x8do\xb4\xc7q\xd7\xcd\x96(\x0fQ0;\xb4y\xef\xb5\x0b\x07\xb5\xdf\xdf(NL1\x07`\x14\xf7\x9b:^\x8e\xe6A\x84V\x0c\xd4\x8ev\xbc\x1d\n\xe6\x8e\xb8\xfe\'\xc8\x1d\xfe92\xee8k\x9b\xa3\x81\xe7\x9c?US"\xee\x98\x93\xb8\x92\xdb_\x98\x93r\xa1\xbfEq\x0b\xf9\x15^\xebn\xfe\xae\xbb6H\xb9H\xb3\x803\xe3g\xc8D_\x08\xbd*\xa3q\xab\x03\xae\x82\xa9\xe7\xef\x94\\I)6\xbe\xef\xa8\x07\xf1\xf4F\xf2\x1a\r\n\x00\xd3\x9d\xe9\x8fX\xbc\xa6`\x90\x0c\xe8\x01\xd3\x1a{\xf0\x118\x17\x98y\x83\xd8\xd1C\xd7\xdd~\x88\x1cdI\xa9\xa1\x92\xfa\xda\xc1V(Mt$\x13\x91\x8d$\xaf\xbd$\xff\xecL\x15/F/u\xaf7e\xc6\x84\xc8\xd7Dx\xd3\xe8\xd0\x19\xc7\xeb\xf5\xd1\x91i\xa1>\xf6ho\x06\x9f\xcf8?@C1<\xaf\xafs\xffQ\x02\xf8<\xb9\xa7\xee\xdb?$\x92\x86\xae\x90\xaf\xc0\xb7[+[ ml\xfa\xaab\xb9S\xc1\x90DR\x00\xaf4\xf9\xbb\x0bJ}\xcd\x01;H\xe6\xabW\xed\xf3^\xf3\xc8jV\xf7f\xf01\xd2UAZ\xc8d\xcd7\xf3\xebE\xf1\x00\xdb1\x8e\x81\x8b\xa1\xaf\xb7\x9fg@\xa7ei\x1b\xe9I\xd7\x81l\xe1h\xaf\xeaG\t\xcd\x86\xecTRyie&\xee{\xd4`|\xf8\x07\xa1\x8b\x8b\x1d\xce\x81\x94\xf5\x80\xfcK\x1b\xf4Y9\xd9S\x92\xf7-\x05uZi\x81\xbfYUv\xb2\x07&9wh-\xe7pV\xcd\x19E\xa0\xfc\x9d\xdbW?\xbd\xa0\\G\xb1,\x1d\n\x1a\xdbu\x83\x94\xe8\xf0\xc3\x8f\xd2\xa8Ic4r7\xe2\x82\xb2\xc9[\xe5\xadUK\x0e!\x11\x98\xf5\x10\xdaU\xc2\xef\xa6\xf9\x9d\x16\xe4\x88}Ts\xdb\xff\xdb\xa6\xe6\x96\xe7\xb2\x99\x97\x88\xc2\xe9[\xb4L\xf4\xc8\x07\x9d\xd8V\x86\x874\xd9\xb1oVM\xf0\xa7\x8bKO8\x19\xef\xab4\x86\xf3\xab\xf3\xf6\x1b2|5\xec\x1c\xfb\xb9\xe3|4\xe2AU^\xc8\x7f\'\xc5\x12\x8e&9\xbc\x0e\xb06 Z\x9bj)\xcbG\xd8.\x8b\x00\x9e\xa3\xd6\xf7\xcaZ\xcb\x07B\xbe\x1e7~w\xa6\x16\xf3\xbe\xa21\x8ck\xcd\xa0C\x15\x13Q~kd\xcc<9\xb6\x04\x0c\x80\xb3\x1a\x91~\x1b!_\x19\x87\xa9\xe1fi:\x81ko\x00eN\x92\xee\xe7\xe5I\xec%E\xf6\xbb\xd0\x98U\xda\x07fy\xd1\xb9\xedLB\x92\xea\xb4\xf8p\xc7\xff\xb0\x1d\xbf%:\xdd\x19\x08\xe6(\x181\xb9l\xf6\x8a\xba\x9aG)\xa7\xbdV\xfe\xa7\xa6s<\xc3\xff\xcc\x0f\xf1\x86\xb2\xfa\xd1i\x03\x82Dm\xb6\xcc\x98H\x07\xd3!_\nN~Pi\x07\xd5>\xdfH\x89\xb3\xf2\xa7\xd7|\x1ek!n\xd3\x88\x8d\xfb\xec\x8d\xfe\xf6\x9d\xa5D?\x0e\xb5\xf2Q\xfd\x1fC}{\xd72\xe8\x91\x97\xfa;\x81\xce\xe6\xdb\x0b\xd9Q\xe1\x91@\xc8F*\xa3\x0eX\xff\xc9\xaeR#:\xd6\xe1\x1ce\x8a\xb4\x02\x973E\xf4m_\xf6\xb6i\x1dS\xa4~R?\x1f\xa9\xdd\xe1\x1cD\xbf\x89^\xa1\x18\xffI\x85?\x04\xa5\x03\x01\x90\xeb\xa6v(\x17\x9f\x1bd\xff\x14\x80\xb5\xcb\t7\x050\x0f\xc6\xa5zy\xf83\x9f\x9c\xd1I\xb3\xf3\x16+?#\xc0\x92\xceB\x11y\x90\xeb\x86\x99)\xde\x02\x11\x8a\x0e\xbe\x16y\x93\xce\t\x05.\xab\xdbj\xd22\x1c!\xaffg\xc6\xde\xac\x1e\xe8f\\Y-\xa7;m{\xfd\xd9\xf4Rm\x9fX\x9e\xe9\xdfU\xbf\xbbZ6hu\x027\xe9\xf3\xcd\xb8\x89\xcd\x02]\x92\xbb]\x08\xae\x03\xfb\xb9\x0e\xc9jt T\xb1\xf9L\xa9\x80$\x9e\xae\x80\xcbd\xf7Q\tY\t\x945b\xd3\xfaw\xa3\x06\x03\xb7\x014\xe6\xf6]\x8a\xc2\xd0U\x0c\xcd\xa9X{\xf8\x12\x11\x1e.\x01\xde6\xd6\x9c\xf4;s\xf3\xc4\xc4\xc8\x0b>\x0cGx\xc5\x84\r&S\xafa\xb3\xa6\xef`p\x94\x11\n\xb9\xf5\xdc\x12\x92\x80\x9f\x1b\xc86\t\xd0\xe4\x19\xc1*\xb21\x0b\x92\xbc\x7f\xde\x86\\\x08\xac\x9fM\x10\xc9@\x92za\x12k^\xa00;\x1aN\x13\xe3\xeb\xb6H\x10\xcd\xe0L\xde\xee\xfe\xa9S\x83\xe8-oS\x9dr\x0b\xf7>\x8e\x90\xb6+\xc6\x08\xee\x85\xa0\xa0R\xd1W\xfa\x1bhu\x10\x89\xe7C\x8e\xa4?\x03\x87R}\x16\x809%\xf59\x88\xd3G\x8a:>\x19\xf9\xb9r\xc3\x13\xe1\xfe\xe8\x91\x10\xac\x0bDY\xb9\xe6\xac\x01\x1c~\xf4\x01\xa0]\x9a\x13&\x83\xc7\x17\xf9\x08\xa3\x88fy6\x13:\x07]\x08\xf6^7;\x94\xf9\x93\xaf\xd4tSj\xdd?\xf8\xa8\x0f\xde\xc9a\x1e\xb6Ql`\xef\xed\xb0\x04P\xa4\x9f\x8d\xe1>\x06Z\xbd\x96\xe1cO\xcb\xa1\xbd0\xa5{\xfb\xd11\xfa\x1co\x9dw\xb4\\\xaa\xa6\xcd2 X\xed6\xa0.?\xd0\xc3M\xc3Ey\xbd\\\xc5\x8cL\x9dy\xd5\xfe\xdb\x8e\xc1\xc8\xedM\xe3PH\r\xc2\xa8\xbfT\xd6\xb3V\x87\xdf\xf0\xdf9\xf1%\x81\xeaY\xdc\x07\xb1\xf0\x87k\xa4lp\x04\xdf\xff\x18\xbd\xb9J+\x14\x89\xdc\x0b\xc97\xe2Ix\xa2\xb6\x8f\x8blp"(\xb0\xcc\xa0\xf6\'<\xfb\xabR\x8bx\xae \xeb\xd9G\x80\xeaf\x962\x15\x07\xf8\xf4\xa2\xca\x9dvO\xfa?\xb3\x1d\x938:b\xba\xaa\xccx\xe8\xdeT6\x0cRv\xe0G\xe3\x85b\xfcm\xc5\xc1\xb4\xcb\xc3\xf0\xfb\x8c\x85\x9f~\x81`\xea\x9b\xc7su\xb4M]p\xae\xb9r\xa2pA\xc2\xd8\xf8%\xb9\xe19\xec\xb2\x8d\x96\xf3\xee\x1cb\xb1\xe4\x08j^ih0o\xffMh\xae9[KH\xf6\x9e z:Q/\x8b\x16\x05\x1a(\\\x03S\xb9&\xc9\x88/N\x98\xd5\xcf\x07\x8a\xd1Q\x0c\xc9\x10\xbeh\x80\x17D\xf7\x98\xd7\x85\x86\x02U\xe3\x9e\x82\x97\xee\xc9.\x0e\r\xeeZq\xa7a3\xd60H\x03S\xae\xbdD2\x0b\xb0]\xf9\xc1\x7f\x96\xae\xa2M\x140r\xe4\x81\x8bRBCl4\x1a\\\x13\x9b\xb0\'ktUP\xe2P\x14\xe1\xd2\xd4\xf3)\xfd1\xa5\xc9\x00\xb0k]E\t\x10E\xe3y\xdd\x03}\xf3\x82\xfd\x0c\x1daq)\x88\xc2\x1d\xde"@\xfe\xbd\x0c]\xa7\x1dOvF[b\r\x85-\xbf\xb8Jq \xfd\x84e\xea\x8f)\t\xb2\xc1\xee\xa5\x02\xc7\xe6g;\x04a\x1b\xe9\x93\x1fv\x10j.N\x13\xc0?H\x9ciL\x14\x02\xc4,\xbe\xd8\xb6(q \x08\xe5\xe6\x87[\x80\xb8\xe5| \x15\x82\xb2\x17J\x9d\xaa\x89\xd9\x99\x19Q\xaeckQ7\x1c\xd1_\xdc\x93\xfe\x93\x0e\xe2\x9f\xef\xf1\xf7\xf0\x9clt\xe4[$\x19S\xbf\xa0\x9fO\xf1\x05\xa3\x94\xa1\x83R\xdc%|\x9a\x93\xc9=5\xe9\x0c\x0f_\xc6\xd3Ne7]\xc3\x9a\xfe\xca;\x90+\x07\xd7\xa1\x9b7\x85A\x1bt\x9b\xb4\xb1\xa7\xcf\xf0\xc7\x84\x18\xdc\x9a\xc9\xb4*ds\xc7\xbe\xed\xfd\x00\x885\x00\xcbbi \x16eB\xcc"\xb7\xc2\x8a\xa6\x92+\x837N\xafC\xef\xe5Y\x95j\x15\xdeS,S%\xc1\xae\xfb_\x9d\xc1\xed\x86\x00\xc7\xc9\xda)\'\x99\xf0\x90\x85\x17\x08:W\xb0\xd8d\xf7\x13\x18\xba\x8bS\x0e0z\xab,\x02-\xff\x14J\xb9\xb0\xaa\x82\xd3\xb5m\x0c\xcc\xf7\xba\xaer\xe4u\x00J\xae6WpAQi\xe6lj\x82\xb4g\xeaSM\x1aZ\x9b\xd3\xebZ=\x10\x90\xcf*\x14\x02l]R\x1a\x83\x0c\x05GE\xfbQ\xff\xfb\xf7\xbd\xe3\x82\x8b\xd6\xc1\x1c3\xe0\xb2\xdc\xe8\xea4]\x00\xeb,\x98\x8d\x8dH\xb3\xa0B4\x854\x14-\x06\x9b?\x98\xc0\x1c\xfdq\x9a\xd1w\xfdb\xef\x90n+\xb5\xc8\n\x8cX\xa6\x04\xe2x=-\x9f\xbe\t\x8f,\x02H\xb9Y\xfc\x86\xfa{\xd0\xcb6Bj\xea\x1b\xe8\xb2?3\x90]\x8aI\xbcCK\xd7\x13gj\xc2\x0e\x06\xd1\x0e\x93\xbe\xa1\xa94\'{\xac\xa8z\xb6\x97\x8f\xac\x1f\xb7\xea\xf6\xc9\xe7@mW,8c\xe4r\xc5\xeeYX\x01$\x13\xdc\x11\xeb\x05\x87\xb0\xdc\xc0\x96#(\xa6\x95\xfc@S\xcb7\x95\x90\xef\xc8\x898\xfb\x01\x8a\x14\x95\xff\xde\x8cN<\xf5\x99\t\x00^\xe3e>#\\\x1e\x94\xb4\x87\xfa\xd93\xf7\xca7\xac\x02\xeb\xb0m\xb8q$L\xdb\x85O\xa4\xa7\x84\xceEE\x84O\x98\x967\x81\xda\xc3\xe7\x0b\x19~B\xdb\xef \x87\x05\xb9\xd3\xd1I\x99\x0eRu%C\xd8\xf5\xd9\xc4\x98\xb2yJ\x8f\x10\xe8\x14\xd3\x07\x86\xee^j\xd9\xdf/-\xe1\xfe\xd1/\xd9\xcb\xb2\x1d\xae\xff\x12#\x84\x99\xef\xc77vh8"\xf6\x05j\xef\xd0(\xb4\xb1\x062\xe7\xc5\xc2\xee\xa0\xfe\x87\x9a?L\x92c\xc3\xb1\xa2\xb1q\x08\xce,h\xb4H!\x99\xa9\x16#\x03\x0fy \x89\x96\x88\x87/\xad\xd8\xd7\xaf~\xda,j\xbd\x14@\x8dbG\x16\xde\xf1[\x8a~-\x8d\x9f>*\x83[\xaa3\x85\x90\xb4$\xcb\xc6\x9e\x97J\xa3w\x8f\n\x06\xee\xf5e\x92\xf0+v-\xfe\x1d\x9d\xbc\xa9\x1as\x88\xbe\xa1\x85i\x1c\x08f\xa1\x12\xf1\x18x\x12\xba\xb0\x16\x99\xb4\xc4\xf4\xab^\x1cP\x10r\xf6\xbe=N\xfe\x0b\xfc\x04\xf5\xb8\x9e\x1c\xd9O\x01O\rnz\x08s\xb9-I\x0f\x1c\x9a\x8d\x87pJ\x94\x86\xd4\x01y\xdd>\xe6&~;\xa8\tU8\xe8(\x12\xe3\xd5\xa5\x0b\x1d\xc8z\xca\xd6<\xaa\xc9F,\x10\xffp\x02v!\x94\x18\xdf\x1a\xf9\xdc\x97b\x8c\xba\xf0\ny\x0f\xc9\x9a\xdc\xba\x04\x06\xa4H\xd9\xa2m\x19\x94\r\xba\x04//\x88\xcd\x0fa\xfe\xde#\xf2\xe4~=6Hm\xf2\x97\xa1\x91\xb6\x9cX8\xaa\x13\x84l=F\xef\xd2Nu\x93V\x92\xbd\xb2\xfe\x1c\xaa\x86\xce\xae=\x98\x08}\xd6VY\xe9\n\xab\xc6#k,\x9cj\xc2\x9c\xc2<\x17\xe8\x97\x17\x91:\x94j,\xcf\xd5\xcb\xa1\xf4T\x18\xba\xa4\xea\xaeJ\x9d_yf9Q\xb9\x9dk\xe3\x117\x91\xd9D\xffI\x13\x97\xe5a\x05\xea]\xd0h\x1c\xb9cL=J\xa2\xc6\xe2\xdb\x9f\xd4\x99IE\xda\xbf\xcc"!\xf3\x05Hhk\x957\xfa\x9e\x8aG\x18\x91\xd1\xe7\xda\xb2\xaa\x96\x15\xf1y\x8e\xab\x80\xe3\xaa\x02l\xf7ur\xf94\xd4nB\x08\x0cP\x8e\xb0\x9f\xfc\xb39\xfc\x88\x05jm\xbd\xcc\xee\x1b\x0e:\xa6\x82\xd7\xb2\x90\xe40\x08\x92\x92\xc1S\xa0\x1eJL\xab\xeeh\x1b*\xd0xL\xde\xa4\xecu\x07N\xfe\x8c\xcd\x9ahL\xc3\xb7\xc5v\x1b\xdf\x100\'\x94\x14\x18\x9c\x9b\xd8\xfe\xf4$I\x03B\xe4\xc4%\xef@\xacr\xe8u\xb1\x97x\xccF&DsQ\xbe\xe5\x16M\xc0\rG\\e\xd6\xdd\x9bT\x81\xf6\xd4\xf6\xcabv\x08:h\xd2!\xa9V\xf5\x00\xefy\xdabY\xa19$P\xb43\xa7\xe0t\x88&%\x19-JWJ\x01\x8f+\xba\x17S@\x8b\xfa\xfc\x92g"\x05\x8du\x8a') diff --git a/dist_obfuscated/build/lib/orisys/tracker.py b/dist_obfuscated/build/lib/orisys/tracker.py new file mode 100644 index 0000000..4e70de9 --- /dev/null +++ b/dist_obfuscated/build/lib/orisys/tracker.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.700438 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\x04\x1e\x00\x00\x12\t\x04\x00\xd7 \xdc\xdf%R\x06\x81\xd4\xe8\xfc`\x99[$\x93\x00\x00\x00\x00\x00\x00\x00\x00j\xd4\xe3)g\xff\xbc\xaa\xf4sT({\x8b\xed\x00\x8f\x91\xb3,\xec\xac\x8f /\x05Q\xa5\x80\xc8\x19\x92\x9c\x89\xdb\xb6ik\x04l\xa08\xbe\xb7DO>$;\xe7vyc\x87\x02\xb4\x80\x89\x1e\xec}\xe3\xeaW\xd1\'\x156\xde\x87\xd7\x8c\x87f\xb8x\xb78\x04\xc9\x1c\xe4\xe4\xc4w\x96\xabM\xeaA\xdf(\x8b\xd1fZRk\xe2L\x19\xee\xcb\xeb\xeat\xae\x07\xb2 \xa5Y\x1e\xab\x8a\xea\xea\xf2\xe4\xd7\x80HD\xe6\x8b\xe7\xf0d\xcf=\xe4\xb2\x91\x89\xcb\xfdK\x82\x0b\x12\xe7\xc8Fx\x87\xc0$\x86\x0f\x81\xb8\x84\x80\xc63S\x1c^$<\xa3P\xe0,:K\x96\x8c\xc6x\x80t%\xa5\x85\xed\xe3\x9f\x1c.q\xeb\xa9\x0e\xdaR\xcc\x03\xad\xca$\xf7\xd2\xd9;T\xadHA\x98"\xbb!\x8d";U\xe4\xfa\xaet\xe6\xd7oE\xedR\xa3s\xb0\x8c\xf1\xfd({!\x91\xaf\xccn\xae:w\xb5\xd0\xbf{\xbb\xcc\xd3\x82KAb\xff\x03b\xb9Y\xa8p\xc0\\\x11\xafW\xe9\x0f\xb8]\x96.\x8fR\xd3\xdf\xaf\xe0\\\x93\x84\x19R:\xe4\x9fO\x97\xdb&\xe1!ss\xe9\n8\x95-\xd9Ls\x0f\x92\xdd\xac\xa7\x82\xc0\xa9(m\x94DA\x82\x8b!\x9e\xa9\xeag\x03\xa4\xc40\x96\xbbh\xa7&\xdd\xddr\x970\xa8f\x82r\xeds\x1e\n\xc9\xedu\xaf*B\xbe1\xb5\xc8\xf7\x12$\x92a\xb8\x82\xa3\r\xc8`N\x8bV\xf3\xe1!\x14\xa7\x81\x16\xb0\x8d\xe5q\xb9\xa7\x90C\x96\xeeMj\x99\x1b\x86\xc0{u\xf1Q\xa0\xcf\n\xe1\x94h5|\x91T\xc2P\xce\x055\xc9\xc0\xdcN\xf9\xec0\xa1)\x81y,\xee\xe2\x12\x92\xb9a=7\xc8\xa7xd\xec\x13U\xa8\xd5\x18\x83\xfe\x85\'p7\xc6\x82\xb3\x13D0\x8fg\x880\xab>h\xa8Q}\x11\xdd\tn\xf1\xbf\xcap\xe7rPU\xf2\xd13\x05n\x0c^\xafA\x17Cks8\xc6#\xde\xe5\'W\x9f K\xdc\x03&WJ\xe9\xfe\x7fn\xaaR1\x80\x08g\xe5S\x1f\xaf\xa7\xebw\x98\xad\xc0\xc2\xbd\xf98\xad\xef\x02\x16\xbf\xc8\xda\x11?\x85\xbb\xf2\xf4\xb5\x8a\xa4\x02\xb1~\xfb\x83B\x83\xde\x82d\xe8f8\xc5v,\xb0\xf4v[\xee\xab$\xad=\x11\x80\xb3\xc2\r\xd2\x1b\xd1\x8a7\xf6eO~\x8f\xb0\xf1\x9a\xfc?\x8c\x8f\xcfNU;\xa9\x06&\x1ad<\x9a0\xc6\xa2\xab\xe8\x82m\x804\xc0\xa2\x14E\xec\xc5\x194^2\x10Lm$F\xf2\xcd\xd6L\x1a\xbd\x88\xd5\xd1\x99\x17\xfd\x8e7Xv\xe0\x00Dr\x1c\xbd\xd5\x89\xcf\x06\xecBj\x97\xb3\xd9\xc6(DZn\x07\x02e\xf7(\x8a\xa6\x03\x8b\xd1\xfc\xd8)\xf8\x80\xf0o3\x97\xc7Ow4\xf7\x06\xcf\xa4|\xa4\xe5\x83\x871\x1b\xfd1\xe3T\xd5\xe6\x9c\xff$|4\x9e\xaff%a\xe8\x1a\xebF\x15\xf11oo\xaf\xe9:.\xa8>\xc9d\xfe\xb2N\x88\xba2\xa2\xa4\x00\x99\xc8\xc4\x98\xac\xfb\xcc\x10%\xc4A\xd62\xbf}\x93\xc0\xfa~a1\xbaE1vP"\x88N\xbd\r\xa6\xf8\xe1\x86\xb3\x18[\xa1\x8d\x19\x86t.\xf9\x10\xda\x98\xef\xc2@\xf1e\xee@Z\x8b\x0f\xbd\x87\xe9\xc7f\x8f1\x8f8\xa9+\xc1.\x97\xfa\xf2\xc7~?a\xf6\x01\xd9\xb8\xc6R\x9e\x0blu\xce\xda*L\xcb/\x82\x12\xc2H)|\xe6\x82\xab\xde\x82\xbfi\x80\xfe!\xaf\xf1j\x10G\xfd\xf9\xfd\xb67\x80z.\x8d\xc0\xe4a\xf4\xd7\xba\xb5kr\x9f\xbe\xa0\x93\x00\x0eG\xc7\xbf\x97+\xfa\x86\xc2M\x11\x177\xc5\x94- ^\xb6G\xa9\x95\xe8\xd1\\\xe2H\xc5\x9en\x89\xbf\xd8;\xf8\xcb-\xb1\x0ej0\x11\x9djA0\xbf\xf0mB\x85~o0=\xe8\x13\x18\xfe\xe6l\x91\xa9\x8c\xcd=\x180\x0b\xeaF\xd72Wt\x06\x87\xb5\xed\xbcu4UX\xab\x1d\xdd_0-\xce\xe0\x8e\x05F\x13}[\x87n\xb9\xb0\x0cH]WTMt\x9aaXeV\xf0/Kg\xdb\x13\x94\x14@\x99\x17C\x96\x0b\x91\xa1{:\xa7\x00\n\x83\xad\xb6Et8C\xb0\xec\xa7kWy=\xeaQ"\xb5\x7f\xbb\xab\xb0\xcbk\xe3\x02\x971\x8a\x1d\x10\xee\x82\x80\xb4\xd9\x1b\xb8N\x1ex~\xa0@\xbd!\xd2\x89\xec[\xc0\xbc\xae\x8b\xb1~\n_\xb3\x99\x02\xca\xeb\xf7\x1a\xa0 6\xc9<\xf9\x13\x04\xd1\xce\xf8\xe1t\xe2#`\xab\xeb\x05\xe5\x0e\\?\xbb\xd2\xab\x01Yw\xe1\xba,\x03\x85\xd0T\x83\x05^\xb6\x02$8\xb1\xcf[?\x01a\xe1\xcfC\xd0\x8c\xc8\\N}Y\xb3\x90\t\x18\xc1B\x8cg\x9eja\xb0\x85:\xf7\xcc\xa1p1\xcd\x82W>BUof\xbbs\x04\xb8x\xd2\xc4B8b\x196\x9cJ\xafj\xc8SD\xf9\x1dAE-\xb1\xd2k\x18\xd5\x1a@\x07\xd9\rLe\xe8\x1a\xeb\x0fr\xae\xcc-0\x0e\x14\xd8\xa3T\xb1b\x91\x9e}\x0c\x87\x13\x90mPog\xe5mE\x1aB\xc5\x0e@,o\x8c^\xf1)\xc3\x96"\x89\xf3\x9a\xd2\x12\xd8\x0c\xd7Mi+\x7f\x11\xfb\xa0\x12\xe7\xb4\xdaAj\xa0\xba\xd31\x8fb\x03\xc4\xc4!\x80\x90Z\xda\xd04\xde\xear\xc1\xfa_g\xb2R4dr\xa7\xe5V\xe2\xf9\xf1\xb2\xd9\x8e\xd0#tz\xab\xaaZ\x97[\x94\x13\xe3\xc1\x07I\xd9]\x19\x94\x88\x9c\xfa~i\xf8{A\xc4-oA\xd6\x0b\x15\xa4\x93\x0e\x01\x06M\x97\x8a\xfa\x1aJd\x9e\xeb\x1f\xd6\xb5\xe7\xf6.\x0f\xdd\xf8}F5\x15\xf6\xd7\xbcP\xd6\xa7\x86\x03x\x97`4tH\xef$6\x94\x08\x8c#\x86\x87\xa7\x9do\x06\xacE\x1a\xc4\x05\xa2\x92\xe1\xae\xcb\xcdS\xd6\xb4\x1bjD)7\x9a\x01\xbf\xfe\xe8\x1e\x9a\x1fw \xe3=\xc6`Q\xdd\x190m\x03"\\O\x8a\xc2E\xb5\x08\x11\xf8H\xf55\xf0=y7\xec\x94\xb1{\xf4\xe6\xb3-\xbdb\x162\x9c\xb5\xfbz\xb2\x9b\xcf\xb0\xe7\xff*0\xe2\xf9v\xba\xa0\xf8\x0b\xcb\xb8J\xad\x9dXa\x83|\xf3\xaeX\xa1Q\x98\x1f\xaf{-\xe98v\xb5@:\x98\x9bw"@\x836\xfd\x00d\xd2S\n\x12p\x833\xdf\x0b\xc8?\xb7#\x94\x90\xdc"\xe5\xa8\ry\xf7i\xe7\'O\r]\xbb`4\x1cr\xf3\xf5\x8e\x0b(;\xc6\xf69jv\x7f\xbdS\xb8X\x17\x7f\xa0%\xd8\xf9!M\xfb\xb9\xde\xd0\x84i\x18\xcf\xb8\xa4\x80Z\x0e\xa2\xb8\x9cq\xf6r"\x16\x1b\xe4\xc9\xfc)\xb1oT\xce$\xf7y\rd\xa5\xf2\xae\xd8\x9a\xe7 9U\xd6(\xceE\xf8W>\xea\xbf\xaag\xe3\x8a\xf8EQX\xe6\xdd\r\xe8\x0c\x81q\tO\xb5oHT\xc0/\xe9LsY\xdcI\x1f0?\r\xe8\x19\xd6\x15e\n\x9c\xb1\xf2\x9e\x03\x10T&iz\xee\xe0\xfb\xd1~\xbd\xf1L\x14\x82\xd1\xde\t\xaf@\xf5\'\xef\xe7\xcd$2\xa6\xa9f\xfb\xc6\xbf\xc9\xb7\xec\xfd\xc0\xf9\x9c\xf2>\xf7h\xbc\x84r*\x84\xd8[\x01V\xa1\xc0\xc4\xa0(I\x01\x8dh\xbd\xe9\x84\xb3^\x05\x83t\xd2G\xab\xa7\xaf\xf6\xfd\x89o\x98\xf2>\x07\xb1l\x03C3\x9f\xf4\xa3V\xf5\x91m]\xddtOg\xbc\x8cM\xd9_O\xa7Cx\x99\xbag\xf2v\x16\t\xce\xb0\xf7Y>\xb9/-\xe58\xa2\x8e\xd3\x01\xe0\xd7\x02\xbe\xb7\xb4,Qb\xafC\xbb\xfebr\x9a\xb1uc-\x11\xd1E\x90\x14C\xf3\x11\x12\xaf\x0b\xacHD\xf1\xc981\x86\xa7>\xa3\xef\xfb\xa2m\x0e*\xe5Q\xe6H8A\x0f\x1f\xf2\x13%QXq\xbf\xab\xcd\x1c\x98c\x90\x91\x90\xc3\xdc\xb1s\x1b\x87\x8a\x16\xb2N\x96D\x14L\x1b\x0b\x05\xe97\xee\xc5\xaeS*e\xe5\xab\x179]\xf2y\x0b\x14\xdfi\r\xa2V\x83ND\xb6\xe5\x82\xae@\x88|\x89\xa9\xd29\xd6\\K\x97\xe2\x1fO\x91\x80\x9f\xa6\xed\xdcJ\x7f\xb0`K\xffl\xca\x8b\xd5\x9d\x89\xf5\x1fD\x00\x08F\xfa\x19\xad#\xe2\xd0V\x86.\x91G#w7\xee\xce\xe6Q\xea\x97\xc9`\x1f\xa7O\xd3\r\xbat8\x81J\x12 \xee\x8f\xecP\x16\x1b 8]\xc3\xd75\xf8\xd3e\xea\x8e\xa8\xf5/\x05\xa9B\xc80D\x8d\x9b\xb5\xc1Z\xfb\x91\xde)\x87*\xeb\xc1\x13\x0f\xfb^\xa7S\xbe5\xees\xfa[\xe5\x9e(iH4\xae\x85o[\xf0H\x97\x0e=A\xf6D\xe1\xce~av\x93\xcb7I\xfe\x1a\xea\xe4\xc5\xbc\xb6\xbe\x1eQ\xfd\xbc\x04\xad\xbd\x18\xa97\x9f\xcb?\xf1\xd4E\xb5N\xa5\xff\xa8Fk^\x82\x10\x10S\xf6W\xeb\x9c\xa5\xaf\x0f\xe7\xc6$*\xbc\xd248\x05\xf8\xd5\xb0\x1a\xa7z{\xe6\xdd\xfbF\x1a\x92\x99|\xd5A\xa5y8\x94\xb3T1=Q\xfc\x04 ~\xab!\x14\xc3P\x05\x8fS\xf8I\xf3\x9d\xa2L\x1b\xde\x06\x99\xd8\xb3POUK:\xb0\xd2\xa5,g2\x7f\x8c\xb4\xbe\x9e\x9bN\xd6\xb9\xdb@j\x9f\xf7(;\xaf=\x90K\xb2 -)!\x07\xf9\x87B}\x94\x9a\x15f\x9e\xaa\x82\x9ch%\xcb\xad\xb2\xa0=y\x86\xfe\xe6\x95\xa5"\xf7\x98.l\xf3@\xcf\x1e\xcc_u\xe8\xea&\xc6w\xc8\xeds\xb0\x1d\xeb])x \xdc\xe9\xdce\xc6\xf2\x14\x98\x88\n\xc9l\x9fX\xd2\xe7\x7fi\x1c\x9f=\xedG\xec\xd4u\xc9\xa2\xa8V\xdb\xf7\xdd\x9a\x90aC\n0\x8e\xb4w\x17\x12G\xa7.4Zz\xf7_\xf1\xfa\x98\x1f\xdc\xfa\xe9]T9\x8f\xe5\x1aV\xd0\xb2\x12\x1c\x93\x1b\'R\xfc\x8e\x13\xcd\x16\x06\x9f\xf2\xad\r\xce\xb6\x0e\xa7\xb6q}\xae$\xf7\xf9U`\xadG\x92\xe2\xe5qzn"\x95o\xaa\x90\x9aL\x07\x11F\xbf85JQ\xfa\x82jL\xb2\xec}\xde%\xff\xa0\xc4\xa9\xb4\xb8\xf7g\xa9\x0b\x1c\xdf5\x0f9\xbc\xd6G\xc2\xaf[\xdc\xb7\xc5\xf7,\x0b\x11\xa2\xdb8>\xa8[Rb\x11\x9d\x16R\x02U/\x9c\xe5`"\xf1\xa4wpF\xf3\xd5(0N|\xc11:<(\'\xc8"9rzxs[L\xacM\x1c\x1d\xfc\xe6\xfa\x11l\x15\xc84\x055\xea\x97\xc84\x1e\xc8n\xff\x1c\x03v:\x16;\x15r\xdcN\x95\x87\xeb\xe4\xccX\xed\xfa\xa6:\x8dy\xf8\xed\n"\r\x1cC\xa4\x9b\xf7,\xd8U\xd7\xda\xffPK\x7f\xc8\xa9\xc6a\xf0\x04M\xcao\xa6\xa9e\xd5S*\x06+\x8f.\xaa\xe8N;&N?\xedb\xb5!Uy\x08\xb8\x06~\xedd\xea\x89\xd2\xf7\x12\xc8\xe0\x01\xd9So\x85\x86\x15\xfdC\t\xb2(\x96\xd5\xe8)Y\x00\xb5)Cz\xca\xde\x95)z\x1bB\xcb\x89\xba\xceq\xb3\xe8;j\xdb\x85\x87\xc5@G\xb6\x1b{\xdc\xa71\x98\xe5\xaf\x97z/\x00Y$\x018F\xb2m\xc4W\xd9\x1c\x90w\xc3\xdd>\x9bp\xf0+\xf4\xc5+ \x9a\xcf\xd6\xf1T\x18\xed.\x0c\xe1\x98\xdea\xa7m\xaf\x18\xd2\x8eI\x9er\xe6\x8f5\'\xa3\xab\xa4\xff\xed\xc2\xd2`z\x19\xaf\x13\xce\xb6\x0f\xfb\x80G\x95%\x96\xd8\x8b\xed98\x87\xdb\xb5K\xd1\xf1\x8a\x0c\xda^\xfe\x99\xf83\xe3WR\x86\xce7Z\xe6\xe0\x8f]\x7f(\x15A-(\x87\x9c\xd8D\xba\xc8\x8d\x9d\x8dGN\xc9\xcb{2\x01\x12\xe6\x9a\x8d\x86c\x88\xef\r\x17\xc0\x06\xa8W\x04\xffFv|\x18\x00\xf5\xde\xcb\x99+oJ\x85\xb5\x1cJg\xbb\xf3\xa4j\x82M\x1d\xe3\x97}\x93wk\xab@\\\xf8\x7f\xf5U&\xbc\xc2H\x99\x81W!7@D\xa9\xe5\xb0\x01\xda\xcbU@\xcfDQ\xae\xdd\xdc\x07\xe3h\x1d\x0e=\xad\x04\x03\x8bU\x9a5l\x90\x15^\xd4uL\xb6;\x007|\xe50\xd2\xd1*\xcd[\xe2,\x1d\x06\x9a\xad\x93\x91\xee\x92\x96\xe7\xf9\xd4k%\xc8\xc6\xdb?^\xc0l\xbd\xf8\x08\xc0\xed\x01\'>#\xbd\x84v\x8f\xc0m\xa0\xc2\xa8\xfa\xe6S\x02H\'F\xe5\x82C1K\x9fHV\xc9\xb4\xad1l\x18\xf2\xd2\xa1\xd8\x8f\x805\xda\x0b\xbdF\xef\x99?\n\x92\x1e\xd7WJKV\xc0\xbc3\x8c\xa8:4NU\x03\x80y[\xc4\xfb\xa0\xb9~\xdc\x8e\xb2\x8a\xf96E\xa4-\xe1\x1b\x8a\xdc_\x9elpCU\x9f2Q\xe4\'\xf3\xca\x06SS.\xfa\xed\xf3BM\x1f\xb5\x81\xf7g|p\xc5m\x16W%+\x9f\xb4\xe6\x97\xe8\x8d:w\x8c@mT\x9c\xff\xf0\xae\x13\x99\x16\xa7\x10[\x18D\xfe\xc5o\xd7\xad\x1b\xf2\xb7\xc8\xc8\x0c\xefR\xdd\xa9w\xf1\x8d\xac\xb58\xf99\xf3\xe7U2\x92\x82\x19"\x83h\x03\xcb\x82\xfcwtv7\xe9\x00\xa7\x17\xa4\xcb!\xd2\xd4\xfd\xb6\xb1\xfe\x9e\x1e-\xff3\x01\x1a\x04\xeexf\xf5\t\xb7\xd5\xb2\x82S\xce2]\xd1\xe4\x8e\x08\x04\xe0\xc8H-\x9b\x00z\x93\xee\xa5i"\x9d\xf5\xf5\xc9\xdbG\r\xd7O\xbfR\xaa\x96\xb6\xa8\x81\xe0\xebNZ\xf2\x14n@\x94r\x03\xc0\x17mb\xfbg\xadI\x0e1\x8do\xd1\xd0\xaaK\\Ei\xfa\xbf\x05U\xcc\xca\xd0~\xd3\xfb\xf0\xbe\xff"A]\x90\x0f\xc9U\xc6"\x83s\xd99\x9d\xa5W\xe1\x16\xe8\xa2\xc5\xfc\x8a\x86\xcdS\x0c\xc3\'\xd9\x93\x9e\xf4~\xfb;\x04\xb5\x8c\x8bE\xab\x84v?\xc19\x9c\xa3\x8cE\x01\xbdcoJ\xb9W(\x8c\xa7\xc8k<]\x14\x17\xb1\xf7\x0b\xf0:)7ONLe]\xd68d\xceO\x02\xdb\x85\x19\xb1\xda\x86&Ox/\x8d/^\x0e\xdf\xdd\xbe,\xb7e\xe43\xe6*\xf9\x17\xc0\x8cR\x16\xf0%\xdfS\xd3\xc8\x10\xa7\xdcT(\x90\xa0Vh$\xa0P\xadik\x11"\x81\xe1\xf8\x13\xcd\xc7Kh\';\x00H\xcc\xdc\x1e\xbb\xb6\xde\xf0ae\xb8/d\xa4\x95cw\xb8M\x17U\xa5@\xa8j`E$0Y5\x00\xd8%o\xc0\xe5B9\x81{\x9b\xf1@3U\xf5\x96\xda\xb0;V\x9fC:&,\xcdQ\xd8hP|\xba\\\x16\xad_\x04[\x8bo:\xd7\xb9\xe3\xc4\xbe\x07yh\xfdR\xac\x9ca\xf3\xdep4c\xacs%~\xb0C\xfe\x00\x18\tf\xb36\x89cVv\x9f\n>\xd7\xea\x06\xec\xa8\xf4~f\xc1\xe5\xe6\xa2ou\xac\xb0\x13\xdcPBH\xfarI]&\xcd\xdb8.\xe0JbS\xcb\xd3\xb2\xc2\x0b8\x13\xfa\xce"\xda<\t\xe4\xae\xbc\rH\xc6W{\xf9\xec\x17=\x85\xc8\xdd\xc1LY\xf3\'\xc4p\xaa\xd5Og\xa0\xf2\x92\x04r\x01\x19Ni-\xfd!\xbbwl2\r\xcc\x91\xfc\x91\xfc\xe6\xc0R\x90\x1b\xa5\xab\xd5\xf5\x10-\xd3\x07\x07\x11!\xb62\x9eG\x7f\x86\xb79\xe5\xbd\x80\nt \x96_\x8ab\xe6\xd4\xe1\xe8\xbf/V\xad\xa5y\x83\x89j\xb1\xc3\x82\x82\xf3g\x8f\xc89\xaec\x89\x1a\x9eP={\xed;w\xd9\x04\x02xu\xaahd\x8c\x18\xd7\xc8s(\x8b#6[\xf2l\x08\r\x0b\x98\xbb^\x08\xdeX\xb7ZP\x06.R\xfd|\xcd\x15\xdb\x84@^\x93\xfb\x8e\x7f\x89l\x94\x19\t\x17\xd1x\xf6\xb8\xc4\x14\x99\xd0\x18N\xde*\x05\xdf\x10\x99\x99\xa8\x1c/J\xde\x9a5\xbf\x153g\x84\xa2\x1c\x10p\xf0N\x0fzw\xcf\xa3\x813?\'?SUUQ\xe3\xb9y?e9\xe2\x7fq\xf46jn7\x85\x03\xfa\xc0C\xb1\x80\x9e\xa7a9\x8am\x8ex\xb0\xd0\xdeu\nxCS\x04?E\xc7s\x11V\x0cRf+\x89\x9b\x95\xedj\xbf)\xe0\x88\xe7=\xf6!\x18F\x1dl\xbb\xdf\xd6\xec\n\xc0\xad\x11|(\xb1tVdJ&M5W\xa9F\xba\x06oU\xe6\x19\xc6?\x89\xa4\xce%\x973x\x8a\x00\nh\xbck\xd1\xd6(?\xafLK\xcf\x1bM\n\x97\x8f\xd5\x11\xdeYk\x91\xd5:C\xfd\xdf\xa1\xc6\xff\xbbH\xc6\xca%\x85\xf5J\xbex\xa6\xb0c\xe7S~f\xfd\xb1\xacW\x8d\xc0\xd2!\xcb\xde\x9eFa\x15\xf6\x99k\xba\xca\x12\xc1\xce\xcbU\x05\x8d\xbcN\xe5\'2\xef\x8a[\x93s\xdd]\xd2\\VE//\x81o\xe9\xf9\xe2\xe9\xe5\x85\xcfz\xfby\xd5p\xb4Y\xf4\xcfa\xccN;\xd3\xa2-\x06i7\x99x\xad\x1f~\xc5\xd7\x0cV*\x8c4\xac/(q/\xdc\x8b\x049d\x01W\x86\x9b\xb76z\xbe\xbaN\xb1\x9e\xd8\xde\xd5\xf4\xafE\x80\xcc\xc1\x0f?3\xe4\xec_\x11\xa9 \x9d\xaf\tu\xc1;\x9c\x04\x80\x00\xf2\x15ya\x1eG&]V\xe8\xfa\x03Z+\xd6\xe0M\x84\x96G\x86\x84\x05\x01-\xda\x9c\x07\xaet\x9e\x13\x03q>\x16\x0c\xa4=z"\xb51lQy@ce\x1c\xa5\xb5\x165c\x8f\t\'kcN\xb67\x92\x0b\t\x7f\x07\xa1\x93A\\\xc4\x84\xaf\x87\xfa\x98\xa0\xd9+\xe5N\xef\x91\xdf25J,\xc8\t\x04\xd0\xe5\xaa>;\xb66(\': \xac\xbem\x1c\xe7W]\xa2\xb9*6\x8f\xa1\x04\x8d\xc0"j\x84O4\x97\x1a\x07\xd7\xb5\xf1\xa8R>\xf5\xe6\x01B\xe5a\xa6\x08!w\xf87\x8a\xb6x\xe4\x06=;%\xcf\x0f\x18\xc9\t2\x98\xb6K\xfeT\xc0\xfb_\xc4\x14k;\xf7T\xb0#a\xeeJ_=^K\xe9\xfe\xc4\x15\x95\xb5\x82\x83\x800\x89o\xa3H#oy\xa4Y\x10\xd8\xbd\xcb_\x8d\x03\x08{0y\xa9\xdc\xd0+\xbb\xb1\x0f\xe7\xb5)\x86\x89\xbf\x9a\xb9\xde\x1c\x81\x99+\x89,J\xc5\xcdT\x15\xdf;!#\x9d\x1e\x87\x7fl\'\xf0\x8c@\x15\xfa\x8d\nT\xdd>\x8bE\xfd<|\x17\xd3\x07\x94l\xa2\x8cM\xc29\xe3H\xb6K^\xeb\xdb\xb8\xe7K\xcb\x92\x9c9\x08\x9bA\xea,\x9d\x8d\x14\xc8\'\x12Gr[\xe4vp\xc8\xee\xbf\xc1ep\xa1h\xf3\xadj@\x17\x8f\xf4WR\xc1\xc0H`\xbd\xf4\x91E\xf2\xfefz\xd2V\x00\xdf\xa7W.\x87w\xa5_\x8c\xa7a\xb8\xed\x82U\xbc}\x04\xd4$\xddH\xb4\x96\xf5\xe4t\xb5\r\x857\xf9\xb3\x0b\x00M\xeb\xcd\xfc\x9e:\x1a\xdd\x1bs\xd9\xc7\x90@\xfd\x0b\xaa\x8d{\x99u\xc5\x0e\x8fg\xf9`\xbcZx\x81=U\xfe\x9e\xa0X\xbd\xad\xad!\xca\xee\xdc\xc8\xdb\x0b\xce\xab}\xea0\x080N\x07^]\x0fg\xc5/d\xfd\x03!\xd15\xaf\xdc\xf21\x06o\x02"$\x9e\xb0f\x02oI+\x9d\x9a\x84\xea\xed\xa2\x01y\xe5\xd4d\xeb\x84\xa4m%\x087\x9dH\xb2\xc3\xe6\x87\xdd\xac\x13\x8e\xc7\'\x1c3\xce\xa3K\xd2u\xb02~\xb5\x1d7T\x1boY\xdbA\x90\x88v\x8amHW9\t\x99\x8b\xbfT\x93G\xfb\x1b]jO\x06\x17\xc1\x91\xa6\xd8\x0c?\x1e\xa5tq\x19\xc7\x15h\xf0:\x9f\x9a\x88\xbew4\xb4h\xcd1\xef\xeb\xaf0\x85\x98\xec,\xe2q\xa2\x08W\x05_\x11V$c\n9\x15HT\xac\x89\x18\x1d\x85\xf7\xe9\xe1\x19\x01\xa7^\x96\xdf\x1bE\x8bc\xa63\nc\xbc\xdd"a\x9bR;\xc1\tr\n\xa0\xe2\x1e\xdb\xc0b\xdb\xf2?n]Y\xf5\x13"\xecI\x8a\xc8\xc8z\xa4%\x14\xbf\x8aK\xbb\xe85b\x17\xc3fY\tK2\xb3\x02\xb6\x1c\xa0i\xb09\x06\xdc\x11w\x98\x94\xd45E\x07\xe8\xf1\x83\xe1\x8f\xb2f\x05\xd4\xdbN\xa6\xebV\xf0\x01\xc0![\x8d\xb8\xaej"\x93\xf0k\x81\x90\xf2"\xc0\x84i\xc1U\xcf\x8f\x01\x8a\x0e`\xab\xf40\xf5Nv\xaa\xa1uD\xa3\xc0/e\x00C\x88&\x19\xa4\xb18Ga`a\x87\xec\r\xf6\xcf\xb0v\xfe4\t\xf2\xbf6\xe0\x8962]\xfb\xe2\\\xb2n\xc8jZ\xf3\x06\xad\xa5\x08;\xd9\xb8\x04\xac\x97\x83\xea\xd6^\x92\xc3s:\xd3\'\r\xdb\x1aJyd\x1e\x11\x9b\xa2+\xf0\x02\xf1C\xbc\xa76=u\xf3k\x90\x9b\xf7\xc0\x1a\xd4\x82\xaa\x9a*M\x7fc\xb1\x0b\x05\xa7s\xdb\xb3=\x06\xdf\r\x93\x08(\xb0\xdfJ\xa66h(\x91\x00M\x07\xca\xa8\t{"\x90\x8c\xf1\x02\xa3C\xea\x13\xb4LY\xd0\x025E\x192[@\xff\t\xe0\xbc\'-\xdeZ\x8f\x8eL\x7f\xc5\x02\xee58^\xed\xbb\xf4\xa3\xa3\x08\x95\xed\x08\xbd0\xfd.\x9b\x0f\x8f\xa5\xd6\xbc\xf7\x9eE\x98\xfe\xf6\xe0\x13\x00}\xdd\xd4\xee@T\xd0\xf7\xa0AE\xb49\x07Y\x00\xd0\x18i*\xcbS\x96\x9a\xa4\xbb\xb7\xb5\xfbI\xca\xd5\xf4\xc3kT\xfd\xc6HK\x1d\xc2,\xce]\x86F\\:\xe6m\xab\xe2R\xe6^$\x96\xd2m\x08:\xf4\xcek3\xb3o\xa7\xf1\xe8k\xe9r\x9c\xd2\x06\x1f\xfe?\x16+\x82o!\xa7\xdf\xb4\x1e}q\xcb\xc1\x12\xf1\xd5\x1a\x9d\x80\x1cU\x07\x0e/\xf3\x08\xc3\xaf\x96\x15x\xbd\x07\xb1W\n\xa7:%\xc0\xde\xa6N\x07\xfd\xc4}\x13[\xb4t\xe0;j~7\x17\xc3\x1a\xa5\xb9\xce>\xd1\x9a\xca\xa6\xd0\xca\x94\xf2I\xca\xb3\x10Oz`NY\xec\xb9\xe4rd\xce\x0f\x82\xbcP\xb0\xc22\x16\xbe\x1c}&w\x01\xbf\x8b%_\xb0\xf2$\\2S\x8d\xb4s\r\xa9t\xdb\xcc\xfb\x9d\x97\x8e_x\x9f\x04?\x06\xd5\xc1\x08_\x9c(\x0c\xcd\xc2\xa1\x98E\x95\x087\xe6r(\xc6\xef\x1d\x86\xceD\xc3F\x8ac2\xf0\x84\x05\x18\xbbk\xb7d\xbaC\x8f\xb5\xac\x93\xf7\xbd\xf9\x88\x91\xacy\x98\x913\xe8\xfb\xc9 \xfa!\x85\xe8\x0c\xa8CVyjZ\xd9\x1c\x8fbWV\x87\xfa\xb9\x97\xa9\x91G\xfc\xd3\x94\xfe\xbe\xf2J\x08\xfb\xd3\x0b@\x0f\x90\xb0\xed[@\x80\x99\x14^\x02\x13\xbe}\x08\xa9\x93\xd4\x10\xa6\xb5\x81\xc7\xc7\xac%\xfe\xc7~\xb1\xf6 C\xcf\n\xe5\x1a\xa1\xa5\xce\xba\x7fJ\xa3,\xa7oB\xa1)\xf5\xabt\x0b\xcd\x89\x88_\xa8=\x84\\\x12\xa8\xdc\xc21\xb4\xbb\xcd\xc9\x91 6y\xbc\xe9g\xf5\x82\xa17a\xb8\xf8<\xe5:\xa2\xecu\x8d\xbf\x96\x1d~\t\xba\xc0\xca,\x8f\x8fi\xaa>\xb9\xdb\xb5\x8d\xaa\xde\xe1\xa9"!\x1c\xec+]\xf5U\x92E\xc5X\xc7\xa4\x1a\xf6<\xd6%\x9f\x17-\x04\x04*\xe2@e\x05\xeb\xa6t\xfa\x1dC\xa3\xe0X\xdb\x04\xf4Nec\x1eT\x16\xd0\x00?BKP\xbfq<\xb5\xfc\xe5\xbb\x9dy\xaf,\x98\xa9?\xed\x1f\x93\xb7\rx\x06(\xb0W\xad\x02a=\xe9DG\xea\xd5\x18\x85\x0e\xa3l\xc4\x83K\xd9+s*a\x9f\xdf\xdd\xdb\xd0R\x0c#') diff --git a/dist_obfuscated/build/lib/pyarmor_runtime_000000/__init__.py b/dist_obfuscated/build/lib/pyarmor_runtime_000000/__init__.py new file mode 100644 index 0000000..3f3767d --- /dev/null +++ b/dist_obfuscated/build/lib/pyarmor_runtime_000000/__init__.py @@ -0,0 +1,2 @@ +# Pyarmor 9.2.2 (trial), 000000, 2025-12-15T17:04:23.412278 +from .pyarmor_runtime import __pyarmor__ diff --git a/dist_obfuscated/build/lib/pyarmor_runtime_000000/pyarmor_runtime.pyd b/dist_obfuscated/build/lib/pyarmor_runtime_000000/pyarmor_runtime.pyd new file mode 100644 index 0000000..9fa7153 Binary files /dev/null and b/dist_obfuscated/build/lib/pyarmor_runtime_000000/pyarmor_runtime.pyd differ diff --git a/dist_obfuscated/config/cal.npy b/dist_obfuscated/config/cal.npy new file mode 100644 index 0000000..cf2d210 Binary files /dev/null and b/dist_obfuscated/config/cal.npy differ diff --git a/dist_obfuscated/config/compound_eye.png b/dist_obfuscated/config/compound_eye.png new file mode 100644 index 0000000..d9f4f09 Binary files /dev/null and b/dist_obfuscated/config/compound_eye.png differ diff --git a/dist_obfuscated/config/compound_eye_sample.png b/dist_obfuscated/config/compound_eye_sample.png new file mode 100644 index 0000000..ef3b17b Binary files /dev/null and b/dist_obfuscated/config/compound_eye_sample.png differ diff --git a/dist_obfuscated/requirements.txt b/dist_obfuscated/requirements.txt new file mode 100644 index 0000000..783a40a --- /dev/null +++ b/dist_obfuscated/requirements.txt @@ -0,0 +1,5 @@ +cupy_cuda12x>=12.3.0 +numpy>=1.24.4 +opencv_python>=4.10.0.84 +scipy>=1.10.1 +setuptools>=45.2.0 diff --git a/dist_obfuscated/setup.py b/dist_obfuscated/setup.py new file mode 100644 index 0000000..3fb9dff --- /dev/null +++ b/dist_obfuscated/setup.py @@ -0,0 +1,42 @@ +from setuptools import setup, find_packages +import os +from pathlib import Path + +# Read requirements +with open('requirements.txt', 'r') as f: + requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')] + +# Find all packages including pyarmor_runtime +packages = find_packages(where="src") + +# Collect all package data including PyArmor runtime files +package_data = {} +for pkg in packages: + pkg_path = Path('src') / pkg.replace('.', '/') + if pkg_path.exists(): + # Include all .pyd, .so, .dll files (PyArmor runtime) + data_files = [] + for pattern in ['*.pyd', '*.so', '*.dll', '*.dylib']: + data_files.extend([str(f.relative_to(pkg_path)) for f in pkg_path.glob(pattern)]) + if data_files: + package_data[pkg] = data_files + +setup( + name="orisys", + version="0.1.0", + description="Orisys - Optical Tactile Sensor SDK (Protected)", + author="Your Name", + package_dir={"": "src"}, + packages=packages, + package_data=package_data, + include_package_data=True, + install_requires=requirements, + python_requires="==3.8.*", + # Include PyArmor runtime files + zip_safe=False, + options={ + 'bdist_wheel': { + 'python_tag': 'py38', + } + }, +) diff --git a/dist_obfuscated/src/orisys.egg-info/PKG-INFO b/dist_obfuscated/src/orisys.egg-info/PKG-INFO new file mode 100644 index 0000000..a1264e1 --- /dev/null +++ b/dist_obfuscated/src/orisys.egg-info/PKG-INFO @@ -0,0 +1,11 @@ +Metadata-Version: 2.1 +Name: orisys +Version: 0.1.0 +Summary: Orisys - Optical Tactile Sensor SDK (Protected) +Author: Your Name +Requires-Python: ==3.8.* +Requires-Dist: cupy_cuda12x>=12.3.0 +Requires-Dist: numpy>=1.24.4 +Requires-Dist: opencv_python>=4.10.0.84 +Requires-Dist: scipy>=1.10.1 +Requires-Dist: setuptools>=45.2.0 diff --git a/dist_obfuscated/src/orisys.egg-info/SOURCES.txt b/dist_obfuscated/src/orisys.egg-info/SOURCES.txt new file mode 100644 index 0000000..bb659ad --- /dev/null +++ b/dist_obfuscated/src/orisys.egg-info/SOURCES.txt @@ -0,0 +1,18 @@ +setup.py +src/orisys/Stitcher.py +src/orisys/StructuredGrid.py +src/orisys/UnstructuredGrid.py +src/orisys/__init__.py +src/orisys/nHHD.py +src/orisys/nPoisson.py +src/orisys/sensor.py +src/orisys/timer.py +src/orisys/tracker.py +src/orisys.egg-info/PKG-INFO +src/orisys.egg-info/SOURCES.txt +src/orisys.egg-info/dependency_links.txt +src/orisys.egg-info/not-zip-safe +src/orisys.egg-info/requires.txt +src/orisys.egg-info/top_level.txt +src/pyarmor_runtime_000000/__init__.py +src/pyarmor_runtime_000000/pyarmor_runtime.pyd \ No newline at end of file diff --git a/dist_obfuscated/src/orisys.egg-info/dependency_links.txt b/dist_obfuscated/src/orisys.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dist_obfuscated/src/orisys.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/dist_obfuscated/src/orisys.egg-info/not-zip-safe b/dist_obfuscated/src/orisys.egg-info/not-zip-safe new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dist_obfuscated/src/orisys.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/dist_obfuscated/src/orisys.egg-info/requires.txt b/dist_obfuscated/src/orisys.egg-info/requires.txt new file mode 100644 index 0000000..783a40a --- /dev/null +++ b/dist_obfuscated/src/orisys.egg-info/requires.txt @@ -0,0 +1,5 @@ +cupy_cuda12x>=12.3.0 +numpy>=1.24.4 +opencv_python>=4.10.0.84 +scipy>=1.10.1 +setuptools>=45.2.0 diff --git a/dist_obfuscated/src/orisys.egg-info/top_level.txt b/dist_obfuscated/src/orisys.egg-info/top_level.txt new file mode 100644 index 0000000..b5bd4b5 --- /dev/null +++ b/dist_obfuscated/src/orisys.egg-info/top_level.txt @@ -0,0 +1,2 @@ +orisys +pyarmor_runtime_000000 diff --git a/dist_obfuscated/src/orisys/Stitcher.py b/dist_obfuscated/src/orisys/Stitcher.py new file mode 100644 index 0000000..4880976 --- /dev/null +++ b/dist_obfuscated/src/orisys/Stitcher.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.610893 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\xf6J\x00\x00\x12\t\x04\x00\xcb\xe7\x1d\x1c\xd4\xcb\x1f\xa0Yy\xbb\x9b\xa6\x8f\xca\x97\x00\x00\x00\x00\x00\x00\x00\x00;\xaa\x03P\x1e\x12\xf3\x01\x86\x971\x12xGD\xa1\x81t\xac6\x05\xb04&\x92\x84\xe2\x8b\x95F?\x93\x12\x01>\x0e\x9d\x1b\xd6\xe9\xd5H,\x07V\xb1O\x9dJ\x02\xeb\n,\xa6\xd0\xc8\x05\xf0l\xf0<\x12\xa4*\xb4D*\xb6c\xb9\xff\x0e\x1c\xde9\x82\xce\xf4\xef\xda\xa7\x9a\xbe4B\x1e:\xf3"h\xad}\xa2\xc8`\xd8\x1cS\t\xa2\xa3\xe4\xb4\x7f\xc6\xc8\x1e\xb7k*\xed\x1fj\xc5,(@4\x92\xc0y\x17\xed&Q\xa4\xd9\x97G_\xd0Pq\x90\xb38\x1f\xbc\x9d\\\x1f\xd5\xcaj\x0c\x1fO\xf9\xd0\xd0\x88\xbes\xbb5\x80\xe7\xb9%\x1d\x01\xcbC=\xcd\x8d\xb1\xc4\x83\x89\xb0\x82P\xe5\xaa?\x9cH\x8e\xb8\x88\x87\xc9/\x83\x05F\xe5\x1f\xbd\x82b\xd0\xe1\xd9D[k\xb5"\xe53Z\xb4\xb5\xde\xa2\x84\n\x19\xa3\xfa\x7f\x07\xfd\x1b\xc4.#;\xaa\x88\xed{\x95f\xd5T\xa5;\xdeq0\xc2\xfb\x90B\xa9\x7f\xe3h\r\x04?\x01\xc4(=bH\xc3=\xd2\x18\x93*VS\xde\xfdPha\x0eQ}w\xa5\xfdf\x8b\x1d\xbd\xbc4\xb3\x04ET\x04p\xd9\xf0@jK\x02\xb6&\xf7\x1dqTa\xcb\x91e\x95C*\xa7Y;5\x10 ^\x01\x10\xfd\xe1\xc3\xd8\x85s\xb5\n\x1cmA\x92wt\xdd\x11\xd4\xe5\x85\xd8\x11\xa3F\xb6\xb7`\x9f\xee\x131\x02\x87\x9e\x1e\xf3\xbb/\xf8\x82\xf3\x86\x88\x91\t\x04~\xf8\xb0v\x82\xc6,\xa9"KPZ\x05Cn\xe7\x1b%\xcd\x94M\x03\xa4\x96\xc0h\x84\x94\xcc\xbb\xdcA\xb9\x88B\x11\xf4r\xef\xddK\x0c\x1d\x9b\x06\x81\xe3\xf5Z\x0e\x9f\x0c)\x7f-\xbc+\xdb@.3\xf2\xb0\xd2\x06\x14\xb34\xa3\x85\xe8\xdf\xf0-\x86\x1cR\x90@\xceJ\x9ehF\xf31\n\x99\xaa\xaa\\o\x1f\xbe\xb0e\xc4\x96\xf0@\xfc\x19d\xba\xb4m\xbf\x85\x05a\x10\xd1\x19ST4\xa1\xb4\xd3DS)\xddS(\x0844w@\x00\xc3#\xed\xdf/\xc8\x90\xd9\x97!~\x93[\x07\'\xdb\xdd\xb90w\xca\xaa\xd9\xc1\xc10\x9ac\xd1\xd5-s\x0e\x9d\x85ah\x1e\xf2\xe4<\x91a\xe5G\xee5$\r\x9e\x18\xe4+\xa8\x879?\xcbw\x9f\xd8\xd1\xe6qy&\xe0\x99\x80[\xdd\x883\xab\xa5\xb2\xed\xba\x96m\xa4Eh%\xa8w\x89\xfc_\xd4Q\xc1\xe0\xeb\x88\xc2\x8d\xb7\x8c0\xc4=:\xd8b\x82_+\xeb\x834f\x9a\x0f\xe3\xa0\xd5\x1b>\x1f\xc2[\xc7\x94Tk<\xef{5R\x13n\x9f\x81\\\x11\xee$\xf5p\xc0\xb6su\x18\xebl\xb2^\xaf5,\n\xc4\xd9\n\r\xb1\xc5\xf7\xb5\xb2W\x9aV\x06\x8b\xf41\x03\x0c\xf6\x1f`\x8c\xd5W\xb5\xf5\x02|\xb1W3\xe3\xb5\xf9Y5_\xfd11{3{Ec\xf4\xdeH\xff<\xdb\x05\x86\x1b(\xc4;F\xd0\x16N\xe7Y\xc2F\x8c\xe6\xe3Q\xa3oeq\xc8\xe9W>I\x7fj\x1d\xb7l\xcd\x10\x9a[*\xc7\xbc\xf9\xfe\xd1\x1a*h\x0f\x8f(\xf2\x106\x9ec\x17c0\r\x1b\xffG\xf6\x94l\xc5\x11\xce\xae\x7fF\xe6@\xde\xfbG\x05\xc1\x8e!@5\xb4\xcbiM\x15\xff\x0e\x91\x9b\xe0\x9f\xb8\'\x13\x90\xe6,\xc3\x00\x9cH\xe8\xfe\x86\xd8\xafX\xd7\x96\xe3CUvI4%\x90\xc7N\x88y\x1d9[\xc9\x8d\xf4\xe8U\xc9\xd67\xf3\x83\x9fX\xbdPZ\x9d\x04\x97Q\xa8\xb9\xc3:6\xd4{\x10\xae \xab\x9b\xabX\xb4\x8c\x05\xe2A\xb1s\xe5"G\x87\xb9\x89ry\xfa]\xd21\xc3x\xf6\xde\x12\x16`<\x7f3o\xe3\xee\xc6\xa4/\xb72\xd7y\xee\xfa\xba\xb0\xfe\x9d\xdbj{\x02\x8b\x17\xa4%\x16\xdb\x13\x8a\x95\x04y$\x1d\xa8T\x94\xaf`\xdd\x1d\xdd\xc5\x8bQ\x10y8\'\x8b\x83\x946x\xd8\x9b\xde\x86"}\n\xb6\x84GK\xdb\xad\x8fB+\xe6(\x8c\xdd9<\xe9\xba\xed\x1e WAc\x95!A\xfc\xad\x88\x1b7vT\xadnV\x8f\xc48\xe8\xe0\x84\x80\x1cVa\xa9\xb5G]\xec\xb8Xj_\xd7\xce\xe84\x05(,\xb1\x93\xa3?^\xc9M\xc1\xca\x91\x8e\'\xd0\x0b\x16i\xaf\xd9\xec\xae\x08\xbfI@E\x06v+,\xa8;\x81\xd0\xcd\xc8\x010\xb2\xba\xb8\xce\xa9\xc6\xbc\xb8\xc3\xe2\x89\x08\xfdMn\xd3\xca\x89\xbefx\xbb\xf0i\x80\xa1Ec\xaf\xe9g<\x8c\xf4\xc5\xfa\xc8b\xffHTVK\xbd\xee\x96\xe4r\'\xb5\x94g\xa08\x85\xb5\xca\xd8\'\x10\xa0\xdeG\x8e\x18\xa9\x9ef\xb5I\xfa\xac\xcc\xeb\x13\x0c|\xf51\xdcY\xdby\x1a\xc3\xa3 \xd1F\xb9\xf2\xf6%\xb0\xcc\x96\xd2hA\x11\xd8\xa4[\xa0<)3r \'\x98\x08(\t\xe9\xf2ms&\x96q\x18\xb4\x06\x94W\xdc\xaf3\x82X\x0c\xfef\xee\x80\x11l\x03\t\x8e\xe4\xf6\xdf\xf2\xf5\xd5\x97\x14\xea\x98\xd2\x17\x08\x11\xbbn"\x18!\xffs\x9a\x03\xeb\xde<\xee\xa2\xb4\xdb\xdd"\xf0\x01\xf3o9\x81\xb9\x84\x9c\xe9\xec\xa4\xe1\xe4\x918\xc5x~\xef\xc5p\x1a\xe2\x83\xdb7\xf7\xda\x85\xddJ\xb8\x8fp\xda2" \x8b\xb3\xaf\xd7E\x19W$\x13\x1cpAgD\x08=MU)\xadd\xe9M\x8b\x9f\x10D\xcc\xb6\xbe\xe9]\x1cq\xd0\xef\r\x1a\xba\xafG\x17\x85v\x01\x13x\x8f\xb7vY\x1ci\xd1\x9eb\n\x1a\x97\x1a\xa3\xa0\xab\xb2\xd9\xdc\xe5_R]G\xed\xc1\xeb\xc5\xb5\x99\xdabN\xea\x1ck\xec\x13\xaa\xd227\xa7\x03N\x8e\xe9!\xb4\x98\x0eL.o\xed\x11V2\x80`\x15\xc0\xb0\x11L[\xd51\xdf\xe2\x19l\xa9\x1dc\x1f\x9d\xed\xbbI\x0e\x8aC\xbb\x92T]\xd5\xfef; P\x81;p"\xdd\x0b\x05\x8f\x9e\x8d\n\x8d\xdd\x0b\xd0\xa5chY\xda\x9ez\xa8\xc3\xf2\xf1\x1af\xd4\xc1@3\x85$/\xf7,Hj\xc6u\x02]R\x002q\x8ct/\x8e\x96\xec\xc7L\xeb\x87\xf8\xe9k\xbc}\x03\xcd\xb8R\xe7\xd8\xc9\xd5sW\xff\x82\xa1\xa7\x11\xbd\\\xf50eq}\xac\x8f\xfc\x905G\xc2A\x00\x9am\xf7\xd0\x8c\x1c\x9dg\x1a^\xe0\xe2\xc6h\xb1\x93\xb0\xcd\x03\xa8\x06\xb2\xba\x87\x80\x10\xaa\x947\xdf|\xfe\xb9\xa0\xa4\xbb\xb1\xea\'\x84\x03\xe4\x00\x98h\x90D\xd3\xbd\x1e\x94\xb8\xca\xb9j\x86W\xb6.x\xdcD\x8f\xf8O\\\x9f\x96Q\xbb\xec]\x94\x9a\x9dl\x84Z\x11\xef\xdf\\\x9cK\x14T\x00/\xec\xfdXd\x9f\x1b\xfa\xab\xcd\xfa~\xdf_POi\x97\xdab\xf8\x8a\x02\xef\xb4\x11nXE\xc5Q\x81gw zQ\x1d\xb2#\xbe\x08\x18\xd5z:\x1e\x0c G\xd9}\x10.\x859\xf6\xf6\'\x7f.r\xa3\x1d7L\x84\xf1,\x11\xfb\xc48\t\x01gz\xc0\xba\xab.w"L\xe4\xacM\xd2\xc8\xb7c\xfd\xc25f\x98\xe0y[\x86\x0b\xce\xf0$0\x19\x83\xb6\x1c\'\xbe\x94B\xd5[\xed\x94Z\xc0\xee\xd8K\x02\xb3w\xbfD\x85\xfa\xf6b\xd6\xfeR?\xf1[\x1aV8\x96\xbb\x98\xbem\xc9\xe8e\x81\xffY\n\xe7~\xfa]\xf2\xfa\x03\xc0e\xd2\xc1\xf5\xdc\x19|(\x1bj$\xaa\xbc\x95\xfb\x9ee\x15\xe2cd\xa0\x07U\xd3/\x94\x10Y\xebx\x1e]\xddL\xa8KoJ\t\x12}.0"\x10\x8ev\x80\xca\xba\xa9"\x98\xadCo\xf5\xf7\xf6\xee\xb9\xb6\xb0\x952\xe2t\x83\xaf\xb8\xcb\x9b\xad\xd1\xd4s\x9dN\x8d\xb1\xbfsZ\xd0)\xfd\x11\x18\xf5\x94\xdf\xcf\xeaf\x81\x04\x16\x8a\xb7n\xed,\x03@M:s\xfe\xa3\xb5\x04\x1cj#\x83v\x8c\xac\x8c\xe3\xaf\x98u\xfc\xeb\xe5\xbd\x9f\xa6\xa0\xb6\x12\xd9\xd2\x16\xec\xef\x0c\xf1\xf1\xbf\xd2\n#\xe2\x19\x89A\xfaq#g1\x96\x9e\xffj\x18\x9d\xb8\xe6\x07;\xafe\x9e\nD\x97Z/6\xe3\x9bcz$\xfb5_\x8a\xef:\xcc\x8c\xf9`\x1e\xea\xcf\xdbl\x86\xf8\x04c\xf6X\xe5\x9c\xd0]\x82\x9aVPy\xdb\xbe\x9b=\xa8\xcd\xda\xb9\xe6\xf2\xa2\x0fi\xf8#/K\n\xb2\x01\xe6!|\x1b\x14\x15\xee`\x10\xb1pr$\x0ep4\xd7g\xff\xe96\xe0\xecme\xf4\xc8\xc9c\xd5\x9d\x0b\xb5\xb3{8\x0e\xf9\x0f!\x80\xb8\xb0\xeb3\xdbp\x0e\xb9\xd3\xac\x02\xdc5\xa4F\x9a\x12\x98\xefa\xed\x01\xab%!\xacC\xdco\xfd\x8f\xed\xc7I&\x84\xb9\xdepZ\xe5\xd0\x964-\xa4c\r\xab\xe4\xf9?\xf4E\xf1n\xdb\xcfl\xdc^D<\x87W\xf7\x19\\\xbfD\xc4\xca\x85y\xf3\xe6`^\xd0\xe8\xc8\xb1\xe3\x1f\xf6\x00W\xceY\xaf\xe4\xca\x19\xe8\x1a\x07b\x9e\xe9\xf2}\xb6e\x81\x00\xfd\x19\xca\xda\xc0?\xd9GT\x12rA(\xd3\x952\xdb/\xc6\x04\x10\xd9}\r\xc7f\x9c\t\xe9\xc2$=\xc1yk\x7fun\xd0I \xde\r\x8f\x9cv\xe6us\xa9l\xf4\x95\xcc\xf3\xe2z\x1czo\xfe\xa8\xe4w\x1aN5A\xa3\xe2`\xbe|\xe9v>\x0b*9\xe6\x1a\xe7\xc6\x15\x9e\x1a Su\xd7\xd3\x1b\xb5\xb6\x86\r\x11\xb7n\xa3\xf9\xe6P\xf6\x9b\xa5d\xda\x84MS\xc8\xc9\x8c\xb9\x17\xf8\xb8\xfayA\xa2\x1b>]7\x88bc\x0b\xe2\xd7a\x04\xed0m\x94\xa0\xec:\x10U+\x9dz\x1f)\x93\xeb\xa0{1\x98\x9dW~\xeb\x92\xaa\xeaP\xbb\xcc\xd7X\xdf"\xf1\x06Lj\xdf\x9d\xca\xdc\x90\xcd\x0c\xdb[\x04\xa0\xeb[U@S\x04\x99\xdc\xbfn\xce\xaaJ\xa6\x86Hp E\x12\x8e\x10\xdf_n\xe7\xef\x16\xcf\xf1\x99\xdaE\n1m\x19\xcb\xff\x9f\xb7\x96-\x97y\xf0\x9d\x96\xa4\x971\x14\xe1\xa8\xad\xaf\x9e\xa1Z\x9d+\xe3\xf1\x9b\xda\x11.H@\x92\xbe\xe3ng\xde\xda\xff\xa3y\x86j\x81\x19\x99\xb1(\xc4f\x12\xe8\xb7\xc5\xc1\xd11\xa4x)n\x1a\xd15\x102\xaf\xa4\xf4M\x02\xc5\xe2U\xa3X\x8c\x0e\x8f\xd0sel\xeb\xf4\x1c\x89\xcf\xdc\x8d\xc5\x96\x94\xe8)\xf5\x98*Y\xe6J\x01X4\xa1fo\xcc\xa1\xca(\xef\xc7%ZP\x80\x90\xdfe^\xc8\x0eg2\x0b(\xb4\xdcW\xe9\xd6_\x1c4\xf8\x02t\x9a\x91\xe6\xd7\xdc?\x96L\x1b0\x10\xe7.uO\xb2#\xf6\xba!U\xbb\xe9\x17\xf6j\xdc\x07\x97\x19\xad\xc2\xb0\xca0Ly\xa3\xab\x9a\x92\x05\xb2\xbe\xc9\xe4I\xcf\xcbsuZ\xf8\xcbl"N\x10\x95\xae\xa9\x8b\x81"\x0b\xbcs\xaeK#\xadT2\'\x1e\xc9\x19\xc9\x90A~\x04\xd4UC_\x878\xd5\xea\t\x82\x8b\xb7Qjc1\xe6\xea\xed^\x1c\xeb\xd7v\x00\x1fG\xd5\xdf\xc9>\x1dN\xb5Cvv\xb7\xb1a\x12\xb2\x89\xe1\xa7\xec\x14\x11\xcc\xa3\xa0\xbb\xe1\xf5\xbc\xa0_\\\xc3\xaf\xba0T1\xfe[7\xd0)\xfc\x0f\xb9\xbct\xc7\xe6\xa8[\x0eZf\xb4u\xf1\xaa\r\xa6\x05\xc7T\xa0]\xd0a\xbayD4\x15e\x8e\xeai\x01oq\xed\xa6\x18*\xbcHqm\x08=\x8e\xdb[\xe4\xa9\x01\xae\x97\x9f:cm\xa9\tH\xb7\xf2\xc4\xed\xae\x1f\x99n\xd5\xdc\xb7\xec\xbb\xfe_\xe6\xbe\x03Q\xc8\xcc\x93\x13\x8f\x86\x18\xde\xed\x1c\xe9\x8dDN\x85\xf5(\xbf\xf1Q\x11\xee\x15\xcd\xbf\xd9\xf5\x1a\x91\x19Lc\x9a\x1e\xe1\x000\xbe\xc3\xbe\xb3w\t/\x05je\x9bhD\x12\x00!\x81\x9c%\x16C%\xdf\x14$\xf9\t\x17f\xb0\xd6\xd3\xca\x12.:\x1c+\xbb\xf5@\xf4\xfd,\xfdAX\x8e/f \x89p\xe6X\x17\xff\xe4\x93\x0f\nbU\x87\x0b&\xa1\xe6\'\xe4\x1e.\xba/\xaf\x89(%\x02\xf8\xe0\x13\x1dw\xf4\xae\xc3<\xe0\xde\xf8\xad\xf9\x9a\x9c\x17-E\x90\xac\xdf\x83G\xeeF\x919\x03\x97\xb6,\xbe\x81\x0elQ\xdcv\x99\x08 \x82[\xa6\xb6uGT*\xba\xb8\x97!c\xffQs\xf7$q&\t\xd5w\xb6`<\xad\xc1\x9d\x10O\xfdi*E\xc2\xba\xfft\xd7\x17\xc6\xea\xce\xa2Zt\x19\x8e\x87\x9f>\xc1\x9bb\x18\xea-\x04\xce\x0e\xe9\xe8\x08\x84\x9c\x15wYv\xeb\x85\xc7\x9c0\x02\x1b\t\x02OF\xb5P\x91uv\x9f\xcf \xc8\xa0a\xd2\xae\x98\xc0\xc5\xf64N\xf7\xf3\x89\xff\xe0\xac,Y\x9c\xd5\x9b\xb5\x88\x0b\x1e\xba\x13\x877|/\xcd \xf8]\xd3Zwk\x11t\xfd\xc2\xe7\x8b\x82\xc1u\xa6\x1e1\xd1\xd2\x87X\x84\xe8\x04\xafvq\xe3l\x9cV\xcd\xc0\x9f\xaf\x1au\xd6\x1d\x06_\xb2\x07ZgT\xc9\xa7m\\\xd4R[\xa3\xe9\x05v\x1e\r\x00\xdfb\xe4\x94\xda\xbb\xc8\xbbL\xa4HVF\xceUs\xa6\xce@\xf1w\xe1\r\x86^\xe2\xd9\xe4n\xf6+\\\x9aa\x9eZ\xc8\x9f4\x8c\xf1(\x93+[\xaf\xe8l\xb0\x991\x86\'\x85u*{\xe8K\xe2\xc8tA\x87\xad\xe6\x81{\xfd\xe7\x9c3\x94\x8co/\r\xba\xd5\xc5\x14g\x13\x0e\x16\xcc$\xa7\xbc\xf6zl\xd7y\x7f\x82\x82e\xe0\xb5\xc0-\x07\xefb\xc9\x90\xca\x8f0\xc4`\xe1\xaa\x12\xd0\x9dk\xc7\x90TO\x0b"<:`\x9f\xe5\x14\xbf\xdb\x0f\xa4\x91\x11I\x94\xdd\xf4_\xcc\x99d\x0c\\\x9fT\xedf\x81Ll\x89\x920\xf4\xde\xc2\xb5\xd4\x86cq\xd6X\xc6\xf7\xcd\xffi\xd1\x02\x1c\x90\xcd\xfe2\x04\xd0\xb2D\xf2%\x97\x86O%\x95\xbb\xc2\xb9Lc\xd2\x8f\x1d\x10\x99)\x1a\x1b\x0bt\xabD\x7f\x98\xf6\xc9D\xd5\xe9\x94\xff\x1b;l\xe4f\xff\n\xb3tg\xba0\xfb\xb4\x00\x1cSv\xe2\xdeO &M\x8e\xd3\xe2\x8b\xca\x95\x8c\xf0M\x02\xb2\xb8\xb9p\x0c\xd4\xa36\n\xf9\x88\x85_!3\xb4\xac\xc5U\xc6\xd9u,\x13\xbbq\xa1\xc75\x8dQQ\xe4\xb6\xf8W\\>\xa8\xc4f\x9e\xe1\xfc\xe0\xbe\x91J\xd9\x1f<\x98\x14\xd5\xc8\xd2\x06\xbcH\xaf\xcea\xfc\xf5\xd5\x82^eT5\xc0IF\xe1q?\xf0\x0f|\x84*\x1bx\x8e\xaaL\xa1\xa5\xc8\xdc\x92\x94wKK\x9f\xc1(\x1a\x85N>{\x1f\xba\x867w\x80\xc3\xd0\x1e\xef\xfd\x1an\x13R\x83\xc5iY\xb0\xe2\xd2Ruv\xad\xbb \x8c\xd7\xa1Z\xc6\x8d\x9d\xaf60\\}\x10<\xe2y\xa2p\xa0c\xb4\x7f\x86\xe7(\xa7\xf8\xd0\xf3%\xc9!\xf7{\x7f\xa8 \xd8g\xbb\xb1\xb4\x8c\x91\x14S1kbk\xa2\xeb\xfd\xa8\xf5D\xf9k\x15\'\x14\x95\x0eg\x9f\xd4}\xfd{\xce\xdeU\x82\xae8\x16\xef\xbb\xd6\xd7U1\xac\xd3\xb5\x01b5\xbb\xcc6\x82\xd4\xaf\xa9`\x9a\x15[\n\xac\x03\xc9\x98\x169\x99\x1e\xd2V\'\x9fE\xb5d \xcf\xa8\xb1n\xbf\xb9\x90\x15\'\xf7\x9b\x8eas\xdc\xee\x0f\x13\x8e\xc0\x99\xc8\xe0\xb1{3\x15\xfe\xceZ\xaa\xd6]\xfb\xc4\xfb\xb3_v\x00\xfc"\xde\xac4\x01\xcb\x0e\xbeRB*)\x12H\x8a\x13\x19zq\x1c\x92)\x1a\xa9\xe2\x16Z~B\x0bs\x9b\x83\xce7DAg2\x08\xc5\xb1G\x95\xdd\x05+\xe7"&\\I\x9b\xfa]\x9fJ7\x05\x93\x15w\xf7\xd835D\x04\xf6\xa0\xc1\xec\xde~]\xec\xdb\xb1\x92\xdeE\xe0 \xf1\xd0\x979%\x03g\xeb\x0e\xc5uNd\xd1i\x10LX\x1a\x80\x89\xca1\x8e\xed\x87\xe8<\xc4\x99"\x1a\xa9\xcd~\xbeY\xe8\xe6\xf6\xe7\x7f\x8f\xd4\x17>\xb5|\xff\xf8\xfc<\xc4\xb1\x02{\x81T7\x08@\xe9;\xbd\x87\xa4$J\xc1\xddp\x0c\xd7\xa5EyT\xb3\x0b\xd1\xb8c[\'\xb1\x11\xb6\xad\x8a\x90t`\xf6\xf4V@\x90\x07\x9e\xb9\xcf\x12\xfdV\xd9\x1f\xb74\xbc\\\xefdm`\xf4g\x0b\xf0\xedtuiX\xce\xe6\xdb\x95o\xf9V\xc9\xf1e\xda\'\xbc\x06p:Ca6\xfcw\xb5\x00\xf0=\xeco\xf4\xffE\x90\x06\xa5\x87,qk\x11\xa4h9\x81\xedW\xa2\x1c\x87\x00,\x9c\xd5\xbf\xf9XY\x94\xa3(\x91 >n.\xc7\xd7\x82\xcfY\x0b\x11\x1e\xceVS\xea\xc0`Y\xf1\xdf\xe0\xc3\xc5SMQ\xb7\n\xa8\xec\x05\x9fCu<\xad\xcaN\xd5\x10\xc4ND\xa8\xaa\x97\xba\x11\xfe\xe4\xcd\x00K\xb6\xd1\xa4\xc7\xae\xba\xbb\x85\x8a\xbe\xedM;\xe3"\xd2c\x10\xa1\xc8\xaa\xa5f\xf1\xc5x\xd9V\t{\x0e\xca\xc1\xdd\xcdGA\x85\x84\xa3\x82\x8f-\xbaMu\x9b\xa0\xdd\n\xf1\xed\x0f*\xacx\xe0J\xd8h\xab\xef\x1a\xb3\xb2{\xf2\x8c\xb1\xe7\xfe\x17\x89\xd8ZA\x02\xec\xa3Bj\x04\xccT\x03\xbd,\xfd%\xfbZ\xecZ\xa6\x1b\xd3\xed6x]\x19\xa6\xbc\xa9.\x90l^\xbd=1\xb3rR\xd1\x13Q\xec\x0b \xcdM\x1f^W4S,\xf8\x138i\xad\x82\x80wW,\xc0\x8c\xdc\x90\xed\xc3Fi\x916u\t\'!3\xdb\x02\xe1V\x1cG\xd9\xe1\xa8\x87\xc5V\x96\x9b\xc7y\x14\xdf\x8c\xc7\xc7>z S\x04\x06\xb2r)\xc6`\xf97\xb9^sF\x86\xf3\x15\xe2\x84\xf5\xcf6=@H-n\xfe\x98\x0eh-baiX>\xf35\xad\nl\xba\x9c\x1f\xb1\xfeC\x95\x1epo\x95\x0bL6\x13\x02\xb2@\xab\xfc\xd5\xd3\x04\xf5\xe1F\\\xb7\xf5P\xa1\x1c\\74\xcd}\xe3=\xec\xfc=bjb\x82\xe1]S\xde\xc1\x18\x1b\xeb\x15^\x19qk6\xc1y5\x89.\x03\xedQn\x96\xd6\xdbB\r\x8b\xcc,DD\xe0\x8a\xdc@\xde\xa1uK\xb1IB\xf3\xb2i\xd7\xa8Kc\xd8\x85\x10\xff~\xd3\x93\n\xff\xa2sL\x1d4\xf3\xcd1E\xcd,\xd9t4\x1bw\x95P\xe0\x1e\x7fl\xd1Jx#\xc6A\xa8\xaaY\xe7\xa2\x909\t\xa2\xa6$\x0b\xc2\xe7\x85\'\x83\x18\xcb(\xca\xe0\x00\xa5+V|\xc1\x17\x05\xf0\xdd`\x06:=G\x12\xaaX\x1ee\xdeO\x81\xd6Xe(\xfe\x8a@\xa4;\xb6\xba\x03\xde<\xb9\x88%\xe6A\xf2o3?3v\xad\x83\xe7}2\x12\x1a\x9f\x94\xdd\x80\x06\xae\t9$\xc4\x8f;Z\x06\x14\x1a!O\xe1\x07bP\x0b\xdc\xa1\xeb\t\'\xedlc\x8d\x8c\xca\x11\xf9W}\x9d\xb0\xb0T\xa7\x91\x9d\xc7w$\xd7\x84T\xe2$xb\x0e\xf0\xd38\x87\xdd\x83\xf7yKGb\xb6o\x0b\xee($p\xb8V\xdb\xef4aS/\xac\x94h\x1eJR{\xa1e\x9bg\xa5\x8d\xc3\x9a\x07\x1f\rr\x9e\x0b\xa4\xca\x7f\xda`J7\xc6Mi\x0b,L\x97#\xde\xeaP8\x0e\xc5G\x9b\xc2\x9ab\x15\xd3B\xfa\x96\xb3\x94\xe4\x81\xb9\xd9\x96\xf3\xb3\xa4\xf1/I2D\x99>\x83\x8b\x800\'\x80N\rg\x9bO\xbf\xef\x91n\x95\xf3\xd9?E\\\xf9B\xa78\x87w\x8f\xb3\xb371\xbb\xb7\x96\x88\xc3\xdd:1% \x1b\xba)\xa0\x82\x18"&f\xf4V@&\x17\xf2\xbf5\x99\xa3\x94\xd4~\xfc`\xc6\x86\x80\xe8\xcf\x89\xcak\x88n\xec\x8f\xcf\x06\xdbh3N\xf5\x99\x01\xad\xf1\xbd+\xa3R\x90\xb1+/\xcc\xdf\xff\x19\xa6\xa9D\x1d(\xe5\x9b\xeb\\V9\x8e>I`\x08\xd2cs~\xc3sT\xd8\x9b\x10\xca\x05\x9e\xd7\xa7\xd0\x95\xfb~pA\xa5_[\xf9\xcf\xf4i\xf0\xd5\xd2\xa8(#_\xd6\xdb\xb1\x8aL!\xa5\xe7\x7f\xe2\n;\x05,\x02\xcem\x94/\xe6[\xd7\xd4\x82\x9a8\x83l\x87\xa5C\x02\xb4^\xf2*L\x12\x0c\xab\xa27+\xa1v\xbd\xaac\xfa8\xa3\x04\x9b\xe5\x1b\x1b\xe1\x97y\xe2m\xf1Ip&\xf8\x06N)\x19\x15sxvLt\xc1h\xcb\xa9"\x82Q\xfe\xff\xd0\x88w< D\xb0cG"t\xa6u\xf3,\xfc\x82h\xc0\x86\xa2\xfe\x9e\x80\xb7\x85#\xcdR\xce\xb0\xf4i\x89\xd2\xfb\xfd\x1d\xed\xe3l\x86I\xa2/\xd4N\x06\x13y\\\xd1t\xd8\xab\x15gc\x9f\x180\x19t\x94Yr\x14\x98\xf4d\x85\xe4\xf9\x14\xf2h4\xd7\xdd\x9fx\xb8\xcb\'\xb7\x8c\xe5\x8b\x1b\x90\xc9\xf6\x14\xe6\xdb3e\x05\xb0\xce\x06;\x08Z\xfcmV{\xa9o\xbf\xa4\x8a\xa7w\xc0v\x04\xdbR\xf4b\xac\xf9T\xa0\xef\xfe\xac\x86\x12.\xbe\x9d\x85d\x9f\xfd\xeb+\xd8\x15\xf4Y\xb5\xeb\x08T+\x88U\x05\xeaW\xc8\\\x80.\x0c\xc7\xd6\xe1\xa6g~9\xf0f\xfd\x1b0F\xf1\xc9\x9e\xd5*\xe4\xc4\xa0\xb1\x97\xa8\xaec*\xce\xfe\xc9\xcbT\xda\xf76\x8f\xcdR\r\xf2\x8f\xba\xe0\xe7\xcb\xea\x87\x06WT\xea\x1d!o\xec\xb8I\xef\x98U\xb4\x83\xaf\x17I\xbf\xc7My;\xe95\x99|\\\x08h\xe1\x8e\xdb\xe5YK\x88\xdeA*\x10Y\x80\xb4\xd5\xfd\x7f\x88\x8c\xeb\xa6\x85Gro\xf1xR\x1dS7\x0f\x06:\xfelX\xd3`\x1f]g\x8f\x05\x13s\x02\xd5\xdc=\xe6\xe6\x96\xa1c\xb0\xb7\x08e\x8c\xc6"\xfa\x17\x80\x86N\x813\x19n\xa4\\\xbd_j\x90\xd2\x88D\x0bS\x01\xca\x1c\x85\xad\xef9g\xd7\x94\r\xaf#\xed\x026\xba\xb70\xcf\xe1\xdd v7\xc4\x8e\x0c\x9d\xf0\xd8\xf1\xd9-Q: \xce@w\xc8\xa4\t\x07u\x19\xc5#b\xa1^\xd6F\xd6\x95E\xde\x87\xfa\x94\xf87M5B\xb9\xe3P{P\xc4\xf6\xfa\xa5\xc9%\xa6\xa6\x9e,\xfc\x90\xa2&\x99\x19\xf5>\xb1\x9b\xbcVt\xf5\xf2\xee\xef\xff\xe9\x85\x8d\xba\xda\xf8\x0c(c\xd2\x99\x06\x98+!\x11/\xb7\x9fhEPI\xa9\xf9j\x86B\x9f\x9cL\xf3\x8f\xec[\x01\xa8\x9c\xbcB\xf8\x85n\x98\xc0\xba\x89/\xf2\x0f\x9f?\x01g\xf4\xc3R@{t\x80\xa9\x13\x89\x83\xf7\x10\x1d\\\x13 y#\x90\xb8?\xc0)\x7f\xec\x86\xa7\xf3\x99(\x9b\x8b\xaf\xe5.\xef\x81\xa6v\xa2`\x91\xf7\xe4\xc4\x12@\n\xcf\x95\xeaG\xf5\xa1\xae\xb2\x01\x82\x8c"\x87s\x91\xed\xfc\xc5|*\xbf9\x02\xf9y\x0f\xe0\x8f\xeab\xa2\xb0L\xeb\xcf_\xe2d\xff&\xfa\xf49\x16l\x1f\x082U\xad\x0cA\x86\xa3\x1d\x86u8\xf5\xe0\x96\xdd{T\xf1\xd5\xb9\x89\xd0\x99W\rY\xd8b\x87\x8a\xc5\xd9Sx\x1fx\xdf\xbd>w\x8f\xe3}M\xe1\xe6]\xae8#e\x07S\x1e\xd3\xf4\x8d.\x03z\xb1(\x8d\x94\xed\x12$B\xc2L\xbbU)\xeb\x97>\x9bM\xed!\x05BU\xb9\xedp\'1\x9a\x9byr\x18\x0c*[\x8fo\xe7\x97T\x03\xe2\x01T\x9eC\xae\x821\x9ap\xf8&\x8btOo\xc1\xe5\xf9k\xd4\xe3\x8b\\$\xfc\x93\xe4\x1f\x99\xa4\x154G\xd0\x7f\xd1ou6\xa1n\x1c^|\x16\x16U@M\x17\xcd\x99\xcfL\x08\xe1\xda\xf8\xd8\xac\xf8\xebY&GKv\nc\x14\x04i\x1f\x11Bjw\x83o\xcf\xf9q\xedC3k\x1d\xc5\xc3\x1b\x98\xfe\xfaycp/\x04\xdc\xabG\x02\xc4kU\xc2\xa2\xcb\xa0\xd1Y\x1a\x00\x98\xeb\xa2\x86\x9ea\xf4\xe81\r,V\xc4\xbd\x9aU\xcf\xb7\x96N\xe1\xa9oI\xe7\x87\xe1\xa01,+\xad\xd3\x01\x823W\xde\xe7`\xc6\x01\x8e\xca^\x97\r^\xe6V\xc2\'\x02\xa4pW)9\xf4rW\x02\xabh\xc4\xf7\x08\xf5r\x12\xcf\x10\xd2\x9f\xb0>\x98p1D\x88|d\x0c\xb8C\xf9\x87\xa5\xbcC/\xc8Q\xe6B\xa2\xcf\xe4\x94\x12\xab\x7f\x19\xd0o\x11\r\xa8\xa3t~\xcdi\x9eQ?\x16K\xb5k\xd2\xb22\x98\xd1\x9e\xfcF\xe1\xc7\xc1\xc3P\xe6\x84\x01\xdf\x17\xd0W)\x03\xfd\x80\xd7\xe6>\xb4\x8b\xf7\xael\x96\x0c\x86\xfdZ\xb1ZT\xfd\x18\xcc\xb3\xa2\\\x88\xe7o\x1d\xa1\xc3\xd5\x16\xbd\xachkV\x15\xda\x86/\\\xbeD:\x99\x08\x11\xdca?\xfa(,[o\xea\xc6\x9d\xec\xf4\xed\xc1\x83\x16\xf9}=:0Ij\xe4g\xd4V\xafz\x88\xc1\xefZ%\xa7\xd7qCY\xc5\x02{k\x08\xeb\x17\x9fZ"\x1c"\xdaS\x94\xabR\x84a\xd3+\xc5$>\xf1\xf1\xc9\xf8\xb2\x8dR1+\xfd\\\xd0,\x92U>L\x86\x1d.\\\xeb9\xb4\xbc\x86\x03W\xeeP\x7fFf\x0c\x82\xf0-\x18H%)2]m\x8f\xf0N\xb6c\xe1\xaf\xc5Dw\xad\xac\xd4s\r\xe4_\x15\x94#e\xab\x93\x12{|\x9b\xfb}\xa9\x8b\xda\xb7\xf0\xc6\xdf\xcb\xab\x90\x854\x7fY\xe8L\xee\x1e\x14\xaf\xdf0-\x14\x94\xbaD\xd9\xc4\xa9I\xcc\x0bg\xd3\xc7\x90\x81%4K\x15\xfc\xc9j\xe4\xa7]\xa56Mk\x84\xc1A\xe7\xab\xdd\xb4\xeam\xa9\xcda\xeft\xe1\xd9#\x1a\xde\xfd\'\xfas\x85\x18q\xe3|\x07\xe3\xa9Q\xfbbh\x1f\x0ex\xab\x7f]\xe5w\xa3]\x85\x11F\x97g\x18\x11\x86y\xc1\xd6\x02S\x9b\xa7\x15\xfd\x95\xe7Y\xd6\xf3\x88\xde\xdc\xb4\x84Fu8\x9d\xda\x909\xa1rN\t\xe8\xb3\x86|\xff\xef\x11Dq\x1aT\xc17"\xe0n\x15pY\xa0`}1,\xe1-F\x90\x81\x94#\xab\x15w\x1c@\x1cwQo\x15\x19I\xc3y\xb6\x0cW\xdfU\xe37j\xdbAA\xcb\x19B%\x18X\xac\x0e]\x9bCL!\xd5\xc1\x9e\xd9\x98\xf9\xbc\x07J\xf7NmA\xe5\xe9\xc3\xa6\xdf\xca_C`\x99\xbb\x7f-\xfe\xd3\xea\xe6\xbc-\xccSv\xf4\xdf\xfb\xd2\xf6+%\xd7_K\xe9\xab\xe4\ttV\x91\x94\n\x89\x9b\xc2\x7fKMD0\xc9\xb0\xc0\xa1\xed\x9e\x02\xc7\xc3%\xa5\xb0\\\xfc8\xa0\xc2*\x93\xd3\xd5/\xa8]J\xf8\x13\xc0=@`..\xb3\x14\xf7Y\x8b\xea\x18\xf7\xa5I\xc9\x92\x9a\xe1&\x95\x1dR\xb2uD\t\xd6\x1a^^\x85\xe8\xa4\xbc\x04\xbb\x99\xadN\x96@\xe2=\x82\x9b\x82\xb4\xb1\xbc\xd7\xc3tLg9l\x065\x98\xb2\'@\xa6\x91\x1d\xf3\xee\x1dv\xd9a\x01\x7f\xa2\xa6\xd7(>\t\x0eT\x1c\xd8\xae+.!\xc0\xbf\xa2$\xbd\x1a\x0b\x17\x88n\xa7\xd6$)\xc5s9N\x1e\xc7\xab\xf6\xad\xd3\x1d\x95!WOP\xbb\xde]\xf5\x835\x8dy*G\xedAE2\xff\xc5".\xb2\xf8\xf6\xa9~\xff7\xde/\xac@\x97x\\\x00\x8dX\xeczk\x84Z\xb4\n\x9c\xab\xb3\xbe5\xd0\x81\xa60\'\x0b=\x00\xcf\xce+V\x8f\x0e\xf2\\z\ru\xfd\x9e\x85/H|\xfe\x97L\xe3n\xf7\x8a\xc3\xb6\x15f\xf8EX\xc3\xb2Y\xc25 [\x9c\xb0Z\xb8-\xc0\xb7\x00\xf7\xdd\x82\x8f\xed\xe7\xd2\x93\xa5\x92YkdBwcV\xad\x0eS\xe0\xd2\x08Z\\"ZX\x94\x938C\xd1\x100\xc8\x04Ux\x05m\xa5\xff]c\x80\xdcE\xa8:Q\x9f?Wf\xe3\xf0L\xc4r\x95w\xe0A\x08\xf9\x1a\xeb\xe3\x14\x0f\n\x80(\xb9\xfa#\xd5\x07Z^\xf9\x0c\xd7\xbb\xec\xde\x98\n\xd7\xa9a\t1\xfa^\x92\x9f\xd7\xf8\x0e\xb2*\xc5BO\x92\xb6I\x98\x1bzKX\xc3\x821\x01\x1bSO\xb4\x13\xadM\x8c\xc8\xac\x7f\n\xf4\xe4/\xabu\x07b\xaa\x82(\xd5\x8f\x9and\xaa\x07\xf5/\xfa{\xd6{\xa9\xcc\xc0\x1av\x95\xbd\xd5\x99\x83\xca\xdf4\xe0\x80\x96\xd9\x0cDr\x19\xd1\x97K<2\x87\xc7\xd5\x87\x9fY~`U\x1a\xfb\x1bI\xef\xa2p*\xddj\t\x8b@\xb9\x1e<\xa0\xb7\xf1\x8d\xc9\t\xaa\x82\x82J\xe1\xb8az\xb6\x13\x8c\xcb[i\x82gz\x13b\xa0\x16\xb8^\xc7i\x85@\xb4\xb3\x12\xfc\x8e\xe2\xd3\x01)\x07`/k\xe2\xe6\xc7\xfe\xc0\x1e\xb2L\xb0t\xdbj\xe2p\xaa\xffL\r\xc0D.\xa0\xc4\xfcqQ\x8c\xab\x87\x908\xe1\xc6\x06\x1dV2\x19-/_/R\xa2v\x99Jh\x89\x10\x85\x16\x0f\x1a=\xad\xe9\xf2\x86\x80_gCQT\xc5\x99\xb7)\x95I+\xa6\xc6\xd87\xaa\x84\x12\xde\x1c\x0c]J\x87;\xd6\xc0cpV9\xab\xc7\x8d9$m\xba\xa6Q\xdb\x14V&\x93\x1f\xe0\xcc\xb2%\xbc)\xc1DMu\xfb\xa8(\xe7HH\xbb\x1d:\x8b\xa8D\xbc[\xe4\xb3\x07>\xbfg\x9b\x06\xaa\x05\xf5\x15\xba\xd0\x17\xacr\x03)\x85\x1ep\x04\xe1\xd8t\xb0\x8da0H\xf7\x82\x19\x1d\x01y\xbb\xa2\x91[\x8b\xe3\xfa\xcea\xc5[\xa6\xd3\xd5\xe5\xae$\x05\x81/z\x0f,\x00P\xdfb\xa1\x0e\xd9\xac\x1fr\xac\x9a*\xa1.\x86\xd8\x17\x98\x07\x8ce\xd1\x9fJDd\x9a\xf91\x11\xb5tBg\xa6]\xfc\xb6\xbbZ\xe1g5\x8c\x8e2\x18C\xac\xeep\x9d\x1e\xdd\x94>\x8b-\xf8\x1a\xbb\xed[s\x069r[wRs\x02\x84>\xcd8o\xa6\xe2\xc7\xdc]W\xc4\x93\x7fmC\xd5Lz\xf2~\xc7\x85l\xfe\xf4U\xd1\x1d\x7f\xad\x03[\xed\nj\xc9c51u>\xbewvf\xe1\xcb\xb1.eN\xde\xfe\xfb\x7f\\\xa4Nx\xfa\x89\xc0\xe8\x9e\xe6\xdb\xff\x1d\x02\x0e\xd4\xe7\xea\xf1XL\x90`-\xd1E\x1d= \xd6a`\xe9\x9fh\xfbfI\x82j=\x99\x9d9\n\xc9,\x0f\xb6\xe6\xbe\x91\x98\x12\x9c\x1a\xfe\x1b]\xbfP+\x18|\xd3\xf1\xed\xf0E\x03\xc3yt.c\xe0\x98\xb4\x1aZ\xd02\x7fQ\xa4k,@_\x95\xb5\xbb\xde\x89\x84\xd9\x04QUN\xf0\x8f\xe1,O\xd5r\xd4o\xe6\xef\x94V\x8b\x15\xe1j\x82w\x89+\xf9%s\xe9\xe0\xea\xdb\x12\xf1k>I\xfa\x16\xbcx\xa3\x02\xdc\xdd+\x1cp\xbeK\x89\x8e\\\xa2*\x85\xde\x80ZI\x1f0\xf1U\xc9Z\xce\xf3\\\xe1\xc6\x0fq\x872\xa1\x1c\xa99\xe6\x17SjS9Q\x92\xaauN\xb6\xa8^\xf5\xcbx\xb4\xc6O\xa2\xb0\x12c\xc9Z\x17\x0c\t\x8cV\xc5G\x03\x82\xd0^\'u\xa4\xe2\x80\x96\x1b\xedw\xd0W\xd2h\x01\x99q\xe2"\x8eS\xb6\n\x00\x1cIs\x9dk\x93\xbb\xb8\x19`r\xc9\x1d^\xd69\xec\xda\xb4\xfd \xfa\xef\xd2$\x81>+E\xd8\xda\xb5\x83#\xddQ\xde\xcd\x9a\xc1\xe0\x14\x80\x9c\xc4J\xa8X\xdb\xed\x9f\x04d\x14\xdeY\xca\x05UF|\xb2\xf4Y\xb36\xec\x81\xda\xde\xaf\x91\xbam\xd4\xb2\xbb\x16\xce\xc8L\xa1\x9eR\xb7\xa6\x97\xad\xa3[\xe9\xe6\xf0\xb4a\xed\x9f\xd0\x0b\xafq\xa57\x8aP.\xf4\xe4Uo\x1dNH\xca\xfb\xed=\xfb\xd0\x86\xd5.\xba\x97\xf7=>\xf6\x08MD1\xc1\x1a;\xc8O\x13\xb0\xa1\x1e\x04\xdbL\xcc>\xc0\xcd\xed\x07\x06.\x98\xe9P\xd7\xdd6\x9fp\x80\xf5\xf9]\x06\xe8\xb7\x047\xf8d\xf9\x9c\xf7\xfc\xa1\xc7\xd2\xa0k\x84\x17\xa8\x7f\xcb\xdd\xbfb\x14\xb8\xa8H\xbd\xd5\xdeGl\xa2\xad\xb8\x0cE7\x0c\x1c\xb5\xe3L\xebDO{\xd54\x15\x9f\xffk\x85\xae\xa7e\xf1\xac\xde\x14\x8b\xb3\xb19\xe1\x00\xb9\x07\xff\x88\xdb$\xa5\xe7\xb2\x8c\x9b P\x1d9i\xc71&L\x92\xc9L\xa8\x12\x0c\xc8\xb8Xp\x10l\xb0\xf8\t\xae\x9c\x17\x9d%[\xaa\r:\xbd\xdf\xd3\xfcjT\x05\xd3F\xbe\xb9\x056\x1c\xedL+X\xa3\xefW\x96\xa2\xd3\xee\x16\xcf\xc7xD\xe7\x86\xd1\x80\xaa!\x1a\xdc\xc9\x8f_\x88\n\xbdv/\xfd\xa4\xfas\xa4\x8b\x81\xca\xae\x9f\xcda\xb0\xba\xbf\x94\xf2\x18\x07\xf3>\xcc\xda\xbf\x99\x9f\xb4\xbbG`Y\x8c\xc5\xd6\x7f)\xc8Q\xab\xfbx\xce\xca\xf7\x81\x0f\rD\xf1\x07:\x1c\x0c\xa1\x0b+\xd2\xb9\x89\x03\xcb\x9b\xa9\x11\xe0\xcf\xa2\xcc\x87\xeb\xd4y\xcc\x85\xa0SA\x8d\xad\x1b*\x0c\xdf\x9a\xd1\xa9\xcc\xad\xd2=\xdc\x9c\x87Q\x85R\x88\xb91\xcdCy\x95\x16u\xdc\xe0*\x81\xbb\x92\xde\xd6z\xdd\xd3=\xca\xbf\x88\x9b\x80EK\xef\x0f/\xc1g\xc7\xcf\xda\x9cu`\x91\x14\xeaRV\xe6xF\xd7\x062jM\xd7[[i\x83\x0b\x08\xdb\xbe~\x87\xf1p\x80z\x14\xa8\xfe\xf6(\xc5\x1b0f\x9b\x1c\x85\x1b\xde\x9b\xacCw\xc8|\xac\x0b\xb9\xcdF\xde\xe8<~\x04\x99P\x9c\xea\x1d\x94\xbd&\xc6\x91\x88\x82\xd0\xbc\x9a\xcf\xd8F\x1aK\x93\xc2IG\x1eV2u\xc5\xd7`\xee\\Ma5a\x00>X\x94,g\xb2T\xa6\xefd\xb0\xe8\x7f\xea2\x9f\xe4r\x7f\\\\K*\xcf\xd2\xd3R\x02\xdf\xf0\x12\x84\xea\xe8&\xbeH\xed\xf0w\x90\xa3|H\x95\x8c\xa1\xbc\xb4Q\'\xb8\x19\x05\xd8\x8b\x86\xad\xfb\xe3\xd5\x00\x8bW/-\x16f\xe1\rq\x00\xa43o\x81\xf7H\x02\xc2\xef\x82i>\xd1\xadf\\\xb1\xb1J\x1d[b$u\t/\x9a:k7\xda\xbf\x0c*\x04\x95 6\x1b\x98"\xc3\x7f\xa3\xcf\xb5\x14z\xd5m\xf8v\xd3\xb5ah\xdf\xb7d\xcf\xcdEOpc\x9f\x1b\x8b\xe8z!\xaa\xebLj~\xd0\xe3*\xe4\xf4_U\x18q\xe6\xd6QoK}Z\xf7\xb7+\xd5\n\x8a\xc0OD\xea0\x17=\x15\r"\xecl\xd5\xd1\xd3\xf4\xc8\xb4\x81`L\tub\'\xaeC\x14\\\xb7\xe4\x19=3:\xa6w\xdbLW\x92\xc0`[\x10]\x9d\xb5Q\x99\xe7\xc1\xba\x1e\xf8\xdfx\x90K\xaf\xe6\x8b\xc7"Yb\xa7&^O\xfd\x12 \xd3g\t\x01XH&\xdbe\x06\x8f\x0e\xeb\x06\xbb\xb6H"5\x17\xa7\xc9A\x89\x02\xe2\xcc\xd42\x0f>\x9d\xce1hL\xf3\xc7m\x13\xdeA\xd3\xf2\xfa\x98\xb0{\xb5m\xee\xf8r\xc4u\xf8\xdc\xb2\xca\x1e\x98c\x13\xc8\xdc\x953\x91\x0eZ\x11\xd8\x15\x86\xc9D#W\xdc\xbe\x96\x8e\x93\x089\xc6\xc3\xb0\xe4 \xf2uu6\x8d9\xc8\xda\x9b\x94\x88\xdc$\x07\xd0\x00a\xd8\x90\xba\x0c\x90\xa4\x0e\x9d\xcdhA\xa7\xe1\xa0\x83@\xcc\x94Q`\x88[i\xdf\r\xc1\xe7\x83\xf0m\xe0t31\x83*\xd8\xd7\xab`\xb4\x923\x929\xe9\x854=\x95\xc4J\xc6\xff\x83\xc1\xdb\xf8\x8bT4#\x1aKJ-2\x8d\xab\xf8~\xf4\xe5\x1a "X\x8b \x19[Q\xc7\xd5"\xc4\xa5\x92\xe5\xf6-(\x89\x99~\x9d\xae\xfe\xc6\x12\x94\x08c\xf3RI\x10@U}\xceB\xed\x0f\x08\x04\x04u\x83\xae\x06/\xcc\xfe\xado\x03\xce\xb9\xe7\xd27EV\xd4\xa4\x82\xf3\xec\x97o\xcd\xe7\x8eh\xa3\x00\x88a?@\xb6\xb1\xa9\xc1\xfb\'\xd1\x05\xcf\xbe\xb1\x97\xdd\x90\x0b\x19)\x88\x01PN\xa6g\x87\xcep\x92\x0c\x1e\x0fk-\xd9\xc4\xb1\x15\xb9\xb6V\x1b\xbf@[\xb8\xc9i*}\x0eW\x0cx\x90\x9b\x1f\xca\x9f\x07\xf7s\\\x85\x96\x07\xfa\xce(5\xc4j\xf1\xcfRG\xeb\xe4\x1c\x05\xf8P\ne!y\xab\xb4:\n\xbbIrQ\xf8&\x04\xd7\xed\xfe\xe6E=\xa52z\\\xa0!z\xf0t\x10S\xbc\xa5\x1aR\x98\x80\x83\x81dy\xf4\x12\xa6D\xb8\xf0\xbf\x85Y\x00Vn\xb4t\xce\xe4\x01\x91\xa6\x02\xba\x8b\xfd\x90\x8e\xa6\xd8\x9b\xaf\x0f3.\xcb&\xe4\x18M\x90?p3|\xa1JY\xc1.\xfb\xac&?\xf9\xe4\x1c@\xd8R\x81\xe3\xe7\x9e\xee\xaa\xeb\x03\x03\xc0i\xa1\x97\xb6\xb1\x08\xc4\xc4\xdd1\x96\x1d\x87p\x94\x9bi\xf0\xfd\x87\xe9\xcb\xc3\xda\xda\'\xe7\xfa\xb49\xb8\xbd\xf8{\xe0w\xda\xf7#\x8a\xb7\x11\xc5Mj\x9a"?w{\xdct\xde\xcc>\x93\xf6\xedRs\'\xe8?\xba\xce%W\xe5xX\x0c\xa6\x97\xc6\x9ds\xf3\xaf\xe4\xa4\xfbx\xbb\x90?\x1b?\x18j\x1d\xd8o\xcf@\xec\x90\x1e\xaa\x15\x835\xa5\x8c\xb6\x94\xc1\xf1\xae\x8812\xe0@\xeb\xa3m\x1f0\x8b\xaa\x88/\xe1yP!a"\xa5\xae\xf7\x1d(_v~[>\xcdH\xb4h\xe8V\xc9\xf2\xad3R\xfb\xd8\xf3I\xa70\xef\xba\x8d\xf4\xca!\x90\x86\xd1m(\xdb\xe7\x0eNZY\xe9\xa7 \xc7 \x01\x1eF\xf1\xbd\x9ddT\x92(m\xb2\xe3aF#}\x83$\x93\xb0[\x0bt\xa1\xc2\xadM\x9d\xf9\xef\x97\x97\x11\x84`M\xbe\x03_\xbak\xaf\xbdIL*"\\s\xfd\x19r\x025\xffr\x9f\x8a\xf7\xa1@x\xf2\'\xdb\xee\xdfN\x91\xde\x91M\xeb\xf3\x15\xfeK\x0f\xcfJ\xba)\xac7Y\x9e\xc4Q\xdfD\xe69]\xf7\xbf\x10S\xf1Zy\xef\xc4\x9c\xdd\xab\x04\xcb\xe9\x1aw\r\x88\xe5\x82F\x13\xd0\xd5\x94t\xc1\xbeP\xca\xc1\x17\xa7y[\xbf,\xf3W\xfe\xe9~\xbf\xac\xb8\xbd\x19\xadm\xe3TE\x814\xf4\x9c\xc6Q\xc2\xbe\xd8\x8e#?\x01}\x91,5E!\xce\xa9Tj=\xa9\x9fY"a\x18\xc0\xde\xbf\xd3e \'\xd3\xa1Z,.\x92RmO\x12\xccE\xd5\xa6P\x069\xe2\xab\x9cM\xf2\xc36]\xf8\x1a9\xc4pW\xd7\x8e4\xdc\x12.-|\'y&-:#h\xea\x9dUs\xb6\x93/\xc0\xb4A\xeb \xaf\'#\x86H\xdc\xd2\x80\xe2"L[`\xd5 AXZ\xa5\x10\xc3_\xae)D\x8e|\xed8\x8f\xcc\xf6\xd7_e\xff.s\xb5\xb6m\xa9\xaf\xd7\xaafb4P\xd4N\xcd\xb1\xc6\x91\xd0\xf8C\xb7{\x82E\xe1\x052\x914\xa5\x0e\xfcW\x92%;TTXE\x97\xda\x94\x92\xa9\xc7\xea\xc4\xc5\xef\xbd{\xfa:\xa3\xa4\xee\xc5=\xf7\x15~\x13\xcfo\xbb4}\'\xc8z\x95\x0c\xa1\xd5~\xf0\x9a\x07\xf3\x17\xbd\xf8\xa5.\xacF\x81\xe6!G\xf1$B\xcc\xc6X&\x98\x10\x17\xe3\xa1\xd6\xf78g\xdb*\xc6\xb0\x03\'\x0cm\xfe%\x19\x12\xfa\xe8\x83\xfe\x82\x8e\xd0\x9e\xdbG\x02\xdb\x9e,\xe3\x8a\xee\xc0n\x8bg\x97\x8eI\xda\xf6\xb8\x89r\x9c\x14\x19\xf3\x08J\xben\xf5\xce\xa9\x11\xd5\xe4\x17\xa1\xdc\xa5m\xc1\xd8\x82m\xe3\xbc,\x97\x9da|\xde\xad\xb58\xf9F,\xc9H\x0e7\xb1RmF\xf0Zz\xd5P%\x01<\xe3\x97\xc6\x9e6=\t\x9f\xaaolGNn\xd9\x93uSW5\x19\xf2\xebz\x05\xc4\xd4\x86\xd4\x82"\xde_H\xd92i\x94\xaa#\x15\xa8\n\x12TX\x9b\xc3\xab#=\xf2\xf3N\x95\x0e\xf2\xc6)3\xc8_\xf9\x1b\x8c.\xd6}\x19\xcay\xb8\xb4c\xcc~6\xc3\xb3b\xb7\x0c\xbf\x82\xcaN\x82\x8b$H\xe0)\xb2\x05\xfb\xc6\x979\xb1\xa2+n\x0bSyI_\xa2\xf4\xf3}\x99\xf7\x89\x01\xdb\x02Eo\xef\x04[\xa5\xd9\xdd\xfc\x9c\rJ\r\x80t\xb26\xcf\x95)\x83-\x94yX\x8f_\xa3\xf9\xf5y\xc9\x05\x05 \x14\xddf\xa75 \x9cm2\x1c\xff\x98JK\x1a\xf1\xbaj\xe0Po2\xdd\x06\xcfz\x0f\x99\xa0\xecaFN\xce!\xd7\x81_\xe6\x17;2\xb1j\x1e\xdb\x89\x10\xf6J\xb4\xdb\x9f\xfb\xd8\x9fz\xeb\xc4\xb3\xbd7z\xeb8\x84\xb62\x19\xa8\x18B\x9f\xf5B\x19P\x9dk\xdc\xb37\x92\x90\xaa#_\r\x1c\x02\xaa6\x19Z\xa8\x90\x8dXa6\xe5\x9e\x9f\x96\xdd\xc40mY\x89\xab\xa1j\x8d\xb7\xd6\xaf\x04\xc9\x9b\xaa\x9c\xe87t\x16\xda\x93\xceP\xe4\xcf\xdc\xb8\\KC\xf0\x8dUS\x0e\x04m\xe3E.n\x99\xc2\xd7y:\xf9\xe2q\xbe-\xe8\xa3$\x02\xa9\xaa\xd7Th\x9b\xcd\xd8\x9c*.\x9e\xb9\xe3F2\xef"\xe0%\xd3t\xbb\xb5\xda\x0b\xf1\xb4X\x91h;\xf2K\xf8\x07\xd6u^\xa37{\xbe\xb0\xe7\x8do}\x1d\xf4\xb7)"\xae\x04\xab\xa7\xf8\x9d\x85\xca\xc44\x93|\x86\x1b\x04.v\t\xf0#\x87d\xdd"\xde\xe6\x86\x87\x94i\xc4\xe0(\x19:\xa9f\x88\nA\xbc\xe2\xe6\xb0\xb8oJ\xb3\xf5\xc1\x13\xbaA\xc0#\xe1\x7f\x08\xfd\x15\xf4\x92@sFBx\xe69\x12\x81\xd3q]\x86\xec\x8a\xfc2\xe4\xf3Z8\xc4N\x80\x93\xbb\x1d7|eH=}\xf2\xae\xba\x8dG$\xb2\xecq_"\xe1\x7f5\xcaw\x14?)\xb9\nyL\xc2\x190\xe1\xa0z=x\xadZ#O\xc5\xd4h\xb1Z\xcfrQE\xe3\xack\x15\x9f\xa9B\x000\xcd\x98a\x03\x95\xcf\x08\xc9h\x8b\x8f\x0ck\xe2\xe3\x14\x07\xe4\\ar\xb7]\xe0\x8e\x96d+-\xaf\xf7?\x9c\xfa\x96i\xa2\xb9\r\x85K\xa8\xb8\x88\x0e\xa9d\xfb\xb7\x89K`)\x00|.a/d\xdc\x1aN\x9b\xa7\x1b*a\x01\t\xfaT}`\rO\x06J[l<|\xa1K\xa5z\xa3Ugl\xb7Tq\xa9\xe6\xbd[+-\xab\xf9~\xf1\xbe`g\xfd\xf46\x93\x11\xe5\xf2\x9e`\xa3\xbbd\x83\xa6\xbe\xae\xd9\xc8O\xfcA\x7fcD\x1f\xf9\xbcP\xbfpf\xa2\x89\xcd\xc6/\xe8\xeaZ{S\x19b\xe2\xc4g\xfd\x80\xb4\xfd1\xf6;nJ.\x8d\x07\xf6\xf0\xbb\xcf7V\'\x90\x8d\xaa\xa1W\xff\xfd\x07y=\xdf\\\xf0!i$ni\xe3d?U?\x88v\xf2\xac\x855?\x08s\x13\x9a\xbf\xdb\x8d\xb7\xee\xfbfhf\x94\xe4\xfe\n_\xe8\xfdM\xa0\xc5;\xe6\xa1\xfcQD.\x1e\x05X\xacmH\x07\xff\x039\x05\x89\xb8T\\\xd6\xb2\xc7\xfe\xc3%\x84\x9b\x03l\xf0\x03Jj9\xa2\xdb?\xb7\x146\xd5\xd2B\xd6V\xef\xb7\x1b\xee\xe8\x10:\xae\x8e\xe2iy\xa9L\x1d(a\xf0:ie\x08\xc9d\x05\'\xbc \xd9\x8d\xa42\xaco\n\xdb!<8MC\x9d\x8e\n`\xedQoVu\x86\xe1\xce9\xbc\x85qn:\xc6\xdb\x1ch\xf6\x81qy\xed\xfd1\xded\x12,B\xc3]YuI\x1c3&\xd4\xc82P\xda)\x07{Y\xae\xd1\xf7\xa2\x14\xe8p?\xeeE\x04\x02\xd2\xf3,\xbcg\xb1\x946v7*\xcd8\xc9dz\x96\x8bg\x86\xd1\xe3\xa4\xa2Ww.\x1f\x82g\x97A\xa5\x9b\xa1j\xde\xa2~\xed\xbc\xd0\xa2 a3:\xb5\xd8oT\xa8]\x17O\xc1kv\xc8\xdfq\tm\xf1\xbc\x86\xdc\x1a\xc6\xcd\x95M\x8a\x1d\xda\xe5\xea\x02d\xec\x97\xc4L\x82\xeb(\xcf\x8d\x1fr\xe3\xef\x1f]h\xec\xd74$jcm)\x0b\xfa\xc9\x86\x93\x0e\x9dF\xf4\x8b\xf8\xf1\xf0aZr\xc5aF\x85\xbb\x0b\xd9\x91\x9b;\x99y_\x1d\x9f\xaa\xc0\xbbC\xe9K\xea\xc0\xacr\x1f\xbb+\xc6\xa1\xb2\xcfUK\x13\xaa\xdf\xe9W~\xda\xeaB#\x8e\x8d\x16\x17k\xdc!\xa3\x0f\xb1\xf8\xf1^\x1f\xbf#}\x92Dl.\x0bkb\xcdL9xR\xbf\xe0\xe5\\\x1d\xee\xc5F|T7rFl\x8f7L\xd7\xe2s\xebS\x0fv77Z\x109\xbd\xce\xb9\x1d\xcaE\x9c\xae\xfc\xc8\xc4]\xd3\x89\xa82\x08\xc4V\xcf\xb9\x84\xfc\x07\xc2\x81E\xc4*?\x15\x88iQw\xffF\x95\xaf\xa5\xe7\xa0\x84\xf1n\xcc\x9a}\xe7\x15\x15\x03\x8e\xcej\xa2\x14\\\x99\x87v\x9a\xce\xa7\x13\xcaS\xa8\x07)\x92\x88R\xa2\xa6\x92\x087\xe5\xd8\xc3Z\xbe6\xf4\x1bs\xe7\x95\x1a\x9fi\xbf\xd3\xe7#\x93\xadd\x86[\xf1\xab\xf4\xfe\xc6\xfdT\xe3\xd0~\xe9\xcd\xa6\xc0\x01\xd9\x06\x0cW\xbd\\s\xb2)kFr\xe9\xbd\xcaa4q\xbc\x19\x19{51\xfb\x1f\xf6\xc3\xa4bk\xc0\xf2\xb0\t\x9a\xc8\\R\x8cy\xce\xc6\x1b\xd6\x98P\xc9\x8b=\xd0r\xaa\xc9\xc7.Z\xbc\xe8\xd1\xf9\xf4/B\xc4\xbfn\x81,U\x92\xc8\xb7Y\xfa\xe4R\xd8_\xa7\x18\x98\x10j\xdf$\x7f\xf1"w\x9e\x03\xc8\xa9$d\xb9\xb0\xed7\x87\x19J\xa92\xcd\xd7\xd7`\xd7\x08\xb8\x91\xb8\xe3\x8fB\x96l\xd9\x05k\xd1\xca\xcf\xf6X\x99\xb9\xe2|$2\x06aK\xd0\xf3\xe4\x92Iy\xe2\xcdD\x95\xd7\x18\xf0\xaa\x1a1\xb3Zq\x0e>\xd4\xea\xbe\xce\xf4\xba\x9c\xc6\xe2\x8d\xc9\x1f\xda\t*\xe6\xff\xb8`\xab\\W8\xa8\xce\xe9\x8d\xd4\xb5\xac\x14g\xe0\x1eB\xd4i\xb6E\x1c\x9f\xb6\xc4\xfcG}\xed\xc3\xf03\thOY\x9e\xfc\xff\x81\xbf>\x1e0m\xfbgg\xede\xf8n\x95-\xd0\x8b\xb3\x03\xb9^\x1dT\xc9\xb9Ndj\xa0\x04I\xbc\xab\x89\xc9YT7\xe9T\x8b\x888m\x99oK3\xd0\xe9\xb4\xaag\x9b\x1d\xb65\xa4\xeb\x03\xfa8\x12\xd8Ks\x11\x08\xde\x89A\xdfV\x1f\x8a\xa4\x99\x84_\x12\xff\xac\xae`Sq2\xcbsK\xc6\x1c\xf85>\x83K.\xf1\x89\xb3\xe5#P\xe93\xb6\xb6\x8a\x12h\x08\x86Q\xbcU\xee\x99v\x8f\x08#\xadE\xd4\x18\x10\x18\x12\xbc\xb7\xb0\x0cAC\xe2S\x01$\x1b\xa4\x06\x87\xae{2l\x9f\xdb\x1f\x9c\xd1\xff\x16t68\x7f\x96\xdc^\xb5\xa9\r\xcf[-w\xf6\x1b\x06:\x81Iqd/\xed\xca\x8e\x9c\x0b\xc4\x19H\xad\x88%\xbbIA\x9d\x11\xca# \xf3\x8d\xa9\x93)\x06\x17\xc3\x10\x90\x7f\x96;\t}\xb3\xb5:u\x96\xe08"\x92\x17u\x9d\x1b\xf5\x1a\xa1\xa8|\xed\xeb_\xbb\xaa3\xcfu\xe5H\xb9&#(\x90\xb9\x88\x050{e;\xbe\xaf\x18\xef\x89\x1dp\xe9\xeak\xea|A\x17\xb7v\xa9H\xca\xcd\x0c\x8c\xa0O]Z\xe1\xe5\x0f\x8d\xf8\xe3Q!\xb3c\xe1Z\x8du:\x96\xd8\xb8\x86\xf7\xa1\xa7\x90\xaaj\xf4\x9f\xa1q\xd6\xc0\x88\xc3\x16\xc5\xf2\x99\x87A\x89\xd1\xfd\xbfj\xefSVNs\xaew\xde\x9a\xeay\xa6\x96ef\xb6\xb1\xe4\x13\xb1=\xc8\xe1vjbV\xb9U\xf95\x0eL0\xcd\x1e%\x91vN\xe6S\xb9\xe7\xfal\x8e\x15\x80[\x03\xdd\x0b\xb4W\x9dA\xf2Sa6\xd1\xbc\t\x99a\xbe#\xbe\xb4\xc1\xed\xa8\xd5\xa3\xbb\xdd[\x1es\x95p\x06\xd1\x0f\xc7R\xea\x82u\x8f\x04\x8c\xe7\xab\x8d\xec\xa8g(\xc4\xfaN\xfe!\x80\x95\x01\xaf\xa1\xb7{p\xb2L\x84\xb0^\xdbT\xfc\xd9\x91+1\xe6a\xadm\x1a\x9e\x91b!\x9f\xb9\xb5B\xdb\xf2\xc9\xec\xd2p\xaa\xa3"\xe4\x8c\x92\x10\x1eg\xc6\x9fWX\xa0\xb8\x11\xaf\xe6\x05\xd8\xf5\x1ab\xfb{\x0cs\x81I\xfaw\xac\x16\xd3.w\xa0\x12B3\xf6x\xfab2\xa6\xbfb\xb8\xaa\x0e4lue\xfa\x99\xca\xfb\xb9X\xde\x87x\x18\x97\xe5W\xc4Yj0\xfb\xb0\\Q\xe5uiP\x00\x93c\x12\xda\xa0,\x99M\xdfUP\xc5L\xfd\x10\x02\x03e\x17\xa8_\xa8\x91\x84\xda\x00\x1c\xc1\x9e\xfd\x03\x08\xea\x88\x0fP\x17\x12\xed5<\xcb\xac\xa8PH\x17\xa4\x1aRjRI/\xe1\xf5\xe0X\xa7\xdf\xdf\xfd\x1dF\xcc\x08\x940\xb4\xa8\xe2U\xe4MS\xf8\xef$Z\x84!:o\xca\xfb[\x16eg\xeaJn\xe2\xcf\xb9\xbe\x13\xfez\xeat\xb5di\xfb\xa4\xf0pPh\xb9\xadq\xef\x85\'\x83\xce\xd1\t\xb5\xc9\x9e\xd2\xd0\xd6NBj\xc3L\x00C\x8f\x9d\x16B\x01\x1b?X\xba7\x82\xa58\x05I\x7f\xac\xcfy\xe1\xd1\xe2\xd2\x84{\x87\xe4\xfc>\x96\xa4\x04?[-\x8d;N\xabE\xc4Zz\xd1\xbd\xa3lko\x1f\xc6\x97\x8c>D\x02}t\xe77\xc2\xdeq\xc1\x05$\'\xa56\x02jx\x1fN\x84M\x039\xc92\xbeh[\xb5[\xc1O\x8a\'\xc2r\xf0\xa1\xde\x83%\x9b83"\x9e\xbb\x95\x0b\x84\x94\xb1\xd0\x8e\xe3\x82\xf5\xd9\xd4`\x0f\xfc\x83^\xdb\xf7G\x90\x81\x0em\x1b\x84\xd2dNb$\xb3\xeb\xbf0\\ms\x8e\xa6\x00\x06\xa8m\x99\x9d\xeb\xe95\xad\x97\x95\xe6d\xb7\xacG\x7f\xc5\xcf\x06\xc7U?f\xa1291\x88\xf7#\xb4\x90\xf6\x9d\xd6\x0f\xf1+\xa6`\x85,\xfc\x8a\x8e"\xdfp\xcd\xdeNB\xd5\xb8\x983h\xb0\x0c\x1c\x82\xa1&\xadn\xa6o5j1\xb3\xd5\xa9\xed\x9d|\xf2\xfe\xd7\xa2\xecX3\x06W\x0eX`\xe7Z\xcbQ\xc2\xcb\x98M\xae\xda\xff\xc8\x9b\x8d\x92\x99Zf\xf3\x1a\xd6\xcc\r\xb0\xea\xc9\x0e\xd4u\xfcr\xc0o\x9c\x01#\xc8\xb3\x08\x00\x9b\xdd.\x08\x8b.\xac]@\xa8\xda\x8b\xb6\'\xa0g\xa6\xde\xdb\xe7Zw\x19\xbb\xb3\xe1\x9e#\xa6\xa5>\x83(\xed\x1bB\x8d\x83m)\xce2\x10./\xf5\x06\xfb\x90L\x1e\xea*+\x7f\xd4\xcf\xd7\xb3\x9a\xc6\xdfM\xc8\x0c\xc3\xbf\xddn\x9d\x00dg\xdfp\xf6\xb0m@\xf79\x84\n\x9c\xf1\x1a\xbe\xf3V]t\xb7BwF\x15\x9d\xca\x80\r#o\x8a\x16^:\x92c\n\x01\xee}\xdb\x1e\x04\xfeQ\x0f\xc3eD\xf6\xd1\xec:j\x9bd\x8f\xa2\xa4\xd92\xe9\xcc\x92\x112L\xa8\xdb\t\xd1\x18\xe3\x9f\xc6\x9as\x90\xf3\xd8I\x19\xcb!\x88\xd4\x7f\xa9\xb7U\xf0\xd6\xe7{\x1f\xdd6{4\x02\xf9v\xd1\xca\x1c\xa2\xe7\x83{\xd5\x07\x9bHc\x02\xe9^\x13h\xe5\x05\xb5{qIA\xb0t\xf9\xd3\x97\t\x1fWs\xe2N\x12s*\x829j\x93^)\xec\x1f\x96\xad\xaa\x04\x01?\xfeWw\x15\xe4\xfatIIW\x03\xcb\x996nH\xceF\x14\x07\x85\x1e\xfa\x88{:\r\xe3\xcam\x93V\x88Q\xfb\xd9\xb3\xc4\xb1\r\x01*\xfe\xdc\xee\x8b\xdc\xd5\xf4\x8ds\xd8\xc02r\nF\xd3U\x9b3\xb5sed+\x89\xe2d\xa5[\x7f\xf2\xa6\xfd\x98Trmz\\\x19\xb8#\xc6\xb8\xe5\x9b!\xbd\xb6\xd0\xf4\xc9\xea\x1ei+\xb0\x83\xdf\nV\xd0\xe3$i\x96)\x07|\x1e\xf6\xbeRVw\xd3\x80\xad\xe0\x80\xcbN\xcb\x13&\x1c\xf0\x96mS\xe8D\xbc\xbd\xfc\r\xaez\xf9{.\x14i\xff\x19\n\xb8 \xb4n\x16H\x85\xf7\x033\x05\xa0Z\x8b\xd5/\x0e\xe6\xceza\xab\xbe\xc9SL\xa5\x15\\h[GF\x086\x90\xc5@\x9c\xc7Q\x94\x92\x95W\xde\xa5c\x91\x82\xb0\xdb\xdd\x1cU<\x0c\x96\x9d\xd8Z\x10\xa6\xac\x0b\x92)\xb1\x89\x10\x96\xf1\xb2\xae\x87\xba\xfa_?\x1f\x80-\x8f\x7f\xfb\x02U\xf0\xb3\xb1B\xc0\x16\xe3\xa2\xff\xff/ju\xfa\x85\xba\xea\x9a\n)GN\x82\xd3\x8d07\xe7\xb8\x18\xb9\x9cS\xde\x8c\xab\x1e\xd3\xd41\x81\xd2\xb5\xb6#Nu;\x8f\xc5\x11KIgs(s\xb1\xa6\xac\x83j:C\x1b\xff\xda\xbd@\xaf-\x16\x1a`$\xd46(U\xc0*sI\xca\xfd\x8e\xbfB\x0c\xe4\x90\x82\xcc\xf3\xd0\x0fJ\xd4\x03\x8b\xfe]\x16\xef\x87\xde\xa3\xafn\x86l\xe9\xfe\x89!7\xf9\xa8O\xbd\xb3\xe4\xdbs&T\xfa\xf9\x87N\xf6Y\x8aP\xb0\x85\x0cZ_x\x88\xcf\x9c\x13\xe5F\x89:\x87\x00\xbc\xb2\xea\xfdv~\x179\x16\xd1IF\x80\x1c+\x9e\x99\xbe]L\x8fuWv"}j\x8a\xa2\xacH\t\x13\xcecm\xef\xb4E\xa2\xe0\xb2\x89\x1bB\xfe\x9e\xd1+\xb8O\xea\xa6`&\xe9)\r\xd0w\xd5\xb9m\xb0l\xe9\xa3\x96\x8f\x99\xf5\x12\x1c\xec_ c\xb4\x0cgla{_3\xcc\xe2\x1a`\x19\xa3\xb5\xf8\xf0et\xf5\xf4\x0e\xcc\x07\xbar\x80nS\x9dO^\xac\xaf\xc6?\xd7\xbd \xb67\x99\xd7\xc4\xf9\xc9\xa0S8p\xf6\xeb\x9a:\xbd\x947Z2\xdd\x8e-\xfd.\x87r\x0b\xd5\xc1\xfd^\x83!\xaf\x18\t\xd5\xa6\x02W \xbc\\\x8b$\xade\xc1mR\x7f\x0etS\xc4\x07\x91i;RW\xd3\x17,\x08\xcc\xa5\xb0\x83!\xcc\xa5\xc4\xec\xef8\xf5\xb00\xed\x14l\xae g\x89K\xa9\x90\x9a\x1d\xbfyJj\xad`\xfc\x02\x81,\xaf3[R\xa9\x16,\xa3hM\xe1\x14\x0fd\x9dS-\xa1}B\xe1\x98\x87\xd7z\xcb\xc2\\\xd2WE\xfa\x92\x9c\xfa\xb6\x83\xf3\xd8\xa6\nw.zX\x00\x01N\x12\x9e\xca\xc8\xaf\xfe\xea\xac<\xbbl\x9d\xb9\'\xb0l\xd4\xec\x1e\x10-\xb6\xaf\xf9=\xb1@m\xcb\x85\xa5\xb1\x98\xfbp\xb4\xe2\x891x0\x80?YQ)hZ\xe2{\xf9LPNi\x94\xf1\xf0\x1b\x81\xe7\xd2\xb8\xc0/\xda\xd0#\xa5$\x17K\nN\x03\xc5<}\x198)w\x16a?\x19\x01\x192\x99\x88\x9f\xed<\xf0\xf9\xe67\x87\xa8|LC>\x13I\x05 \xfe%\xcb\xb95\xdd!\xdbl\xed\xc9\xbf^\'\x8f\xb6\xaf\xeaM\x0c0\xcb\r?$C\xd1\x11=\\\x87\xe7G\nK;Ua\r\x0e\x8eoj\x843\xa5V\x0c|Me\xc3\xe8\x85\xa7\x04F\xf6F\x93\xa5*\xc9\t\xbe\xeb\xcb\xc9\xa5=\xd4\xcf~\xea\xfc\xe2\xc6\xaa\x7ff\xf0&\x95ZEZ@\x98\xf6vX\xc3\xe2&\x18\x12\xca\xb57\xcd%\x93\xf7\xb5K\tXe\xc1D\xceo\x08\xc5\x1c\xcbT\'tQ\x98N\xd1\xc4m\xf2ysut\x89\x8f\x12\xa5t\x9b\r\x9d\xd2\x11\x99\xbb\xf8\xb5\xbd\xd3;\xfa\n\x8e\x1c\tO\xc7\xf9Q\xa4\xbc\x8a\xae 1\xd0\x8d\xa6\xc3`\x11R3e\x8e\xdc\xf7\xdd\xbc\x9c\xe0I\xd7\xae& *\xf7\x99qG?#?~\xa4\xa6\xf3\x88\xcc\x8c\x98w\x1d\x85\x8bu\xa73\x96\xcd\x03TD|\xdd\xa9\x93\x1b\x7f\xd5\xd9J\t:\x96\x15\x02\x84\x18\xb7\xbcR\xeb\xbe3\xa4\xd7\xfa\x1a\xc0\xcd\x94\xf8u\x0e\x1a\x89\x93\x91\x7f\xae\xc6\xac\x91\xbdW\xbd\xc0!\xba\t\x9d\xc8\x8f\x18\x9dj\xf2\xd2/\x07\x9d\xd4,\x84y\xa8\xe19c~\x8e\xc2\x83~\x96\xf2(k.\xabO^\x98\tm\x11:\xf4\xd5=j\xc0;\xb6\x1b\x1e\xf4\x0b\x9d\xcckh\xb5\x89:T\xb2\x90\x96i\xd1B\xf3\x12K(\x8b\xf8\x17j\x1f`x\xd06\xf1J\xd3\xd0\xcd\xff\xf92\xda\xc3Z66\xf1\xb7\xe0\x9c\x0e\xfc\xe2\xe3f\xe8\x95\x92c\r\xc6B\x81[\xab\x13d\x0e.\x93\x007\xe1\xd6+r\x1b\xb0z\x7f\xbf?\xaeq\x15\x97\xe3e\x86\x8b\xa2r6\x95\xfe(Ff\xce\x1c\xb2"\x90\x0f\xff\x1b\xa7i\x97F\xd3r\xcf\\t<\x94\x8d\xae\x81\x0e&\xc6[\xe2\xe1\x97\xae\x8b\xa7\xfaf\xa4O\xe5[\x8a\xae\xf1\xc9\x0b\x1c\x04\xe22\xedRi\x02o\x04K$`\xa6\xe4\xc8\xb3\x061\x93\'\xdfWu>j\xcf\xbf\xe8\xaa7\x1cJ\xe5\xea\x00\x93\xc3S\xf9\x00\x10K\x9clQ\xb74\xdd?\xf3a\xaeD\xa1\xd7U\x03\xc2\xbet\xaa\xa2\xe8\xd3\xdcQf\xb5\x13\x1e\x91\xaeF\xf3\xa1\x92X\x15\x93!\xdf\xaa\xecj\xda\x16\xe4\x05\xeeo\xacC\xb4u\xef\xd8\x1dm\xa3\x15\x99Ev\x1f\x91\x00\xeaW\x81\x1fj\x9c\x01\xad\x1b\x91\xb1r\x86>\xbef\xd4\x90\xc43,\xb9 \x15WlGK\xd7\x92\x826X\xa7?i\x1c\xd7\x9c\x0e\x0f\n$\xd1\xbeu\xce6\xcf?\xa3\xd2\x89\xf8\x0f\xf1\xb6\xe7P\xd4\xc75}b\xea\xbeL\xd3\xf4NJ\xa7)\x96\xec\xd9\xae{\x02\xe2\x98J\xa2\xc9\xc6:\x95\x94\xa2\xb2\x18\xe3=i\xca\xf3~\x19\xe50\x1c\xca\xb0\x1e07\xb8T\xe5\xed\xc2E7\x0f\xf8\x13J\xbf:G\xcd\x8f\xcdz\x16\xa8\xdcX9\x85L\xa2\x82\x18\x86\xbc\xec\x89~P\x07?9\xa7\xc1\xf0\x8c\xe5\xa9\xcb\xc6\x98\x1a\xfalh\x9f\x92)\xa3\x12\xe2k\x0f\x1cwY\x17xX\xc8\x06\xc9U\'\xff\x1d\x99\xe4\x17\x01\x9fo\x8d\x14\xb7\x98\x80#\x04\xc8dK\xa9\xe7\x9bC\xe5\x11\xaet\xc3\x94@m\xc6B\xb7\x18t\x15\t\x12I\xfe\x8d\xe2\x19n/\x11\x86\x99]@\xfb\xda\x05\xf9\xc5\xf7L\xb1+\x8f\x8c\xb7\xe6\x1a\xf7\xaag\x83#\x0e\xcf)W\xae\xf0\xc9\xac\x12\x81\xb8!{&K\x14J;\xf26\xbe\x964\x13\x9f-\xfe\x82\xf4K~\x97\x94h\xdd\x8b\x12\xe4\x12XLt\x12\xfc`^-\xa9\xad6l_PY\x02\x0e\xe1\xe0ZR\xa9P\xbb\xdaS\xc67Gx\xde\xcbm\xac\xa7\xcez\xa8\xa5oQ9\x87e[\xc2\xf5b\xd9i\xfct\x1d\x1b\xdd;\xfe\x82\xb2\xde\xed\xec\x16D\xf1 \x00\x80\n\xdfrA\x18\xda\x1b\x05G\x82\x04\xb3\xf7,_\xe0\x08\x1a5\xbey\x1e\xd9\xa2\x10o\xedUB6\x04PTgxq\x90A\xcd\xc2N\x8c\x1a\xa4]\xb85\xdb[+\xc1/3\xdal\xa4e\x82\xf85\x8en9\xa5\x9cO\x8b\xf0\xb6\xf4/\xea\x8a~5;\xf5\x0el\xe7\x10\xd99\xc8-\xfc<\x06kt:.\xb3\x92(|\x85)\xc9\xc2\xc1\x9a\x8fV\x0e\xa8w\xf5\xac[\n\x81I\xb5\x1a\x99O\xc59\x08\x1f\xe3\xf9\xbd\xc6YA\xd7\x02$o\x04P\xe7a0@\xc5;\xdd6rI\x90\xd0RW%{\xd7\xcb@\xdb\x06mu,\xd8\xb0\x8e\xbe\xcd\x1f\xb7\xd7_\xe6\xfc\x1d\x8e\xd3\x1eSv\xb6\\(\xea\xc5\\&\xfb/\x8fYD\x9c\xda=H\xaa@\xdd\xab\x88kM\xeb\xf5\xdb*\x85\xe9H\x1e\x02\xfc\xbe\x0c\x83\xa9\xc0\xc1\xd0\xe4:\xf5\xf6\xa1/c\xe7\xad\xe0\xefRP\x9e\x9b\x9c\x96+\xc3WM\xfcaC-ZY\xdcA\xfc\x86\xf2%\xc8]\x01\x89\x08\x82\x94\xe2\x92;@\x88\x8e\x18\xa7\xbe\xda\xa7R\xe3\x1d\x08>\xb4\xdd\x8e\xc6\xe07\x96\xcd{\x91$ECM\xa22\rt\xf1{Hm\x15\xaf\x8d\xaa/\xab\xc4\x7f\xe6\xadm\xd6(9m\x1e\x0e)\xeb\xdb\x0c{\x88\x08\xacn\xa92\x82\xb6\xa5|\x9f\xa4\x91\x147\x91x\x80\xcc\x05\xae\x17\xc1\xc5\x15-4\xb5\x10\t\x06\xf1`8\xb4\xe6\x10h\xc5\x0b\xdc\xe3P#m(\xc1\xb6\xce\xcf\'"\x07\xdfa\xcf\x19\xaeEw\xbeUhh\xb4\xf2Y\x0bL\x14\xcd\xff\xb1\xa0\xa9Y\xc5&\xb0\xfa\x8d\xbd\xdf\xba\x0bc\xeb~\x85SA\xc5\xbdHoMQ\x8d\xca\xce\xc6\x11f\x8f-\xb2m\xfc\xdc\x87\xea\x13N\xa9\x1b\xae\'e\xde\xd9\xb2g\x8f{\xc8\xa9i.\xe8\x19\x8d\x86\x06k\x90/4\x04\xf0\xef\x9bV\x93&Y\x11\x03A\x99\x1e(\xf5_\x8eM\x03\xd9\x1b\xafM\x10\xb5\xa7\xa9;2\xfa`\xd7Ym\xd7\xfb\xbem4-\xd3\xf1\xfcj\xa2{\xf9\x98\x9bx\xbf^\xd4ff/\xe1\xb3\x06\x03B\xe3\x1dt]\x82\xb9\xd1\xff\xfe\xa0j\x97r\t\x7fY~\xc9\xff\xe1\xa1\xc8\xb7r\xdd\xbc@\xfa-\x85O\xa8\xb8\x9d\xa4\xa9YX\xb0\x83\x84|\xb3\xea%\x12\x13\x9a\x9b\x8f\x93\xb4\xba\xd88\xc5\x1e\xc14-\x00\xa5Y \xce\xdf\xdf\xa4\xae\x85}4:k\xf1n<\xfc\xf3\xacI\x02\xf6\xcb\xfb\xd1\xb4\x89\xcc\x11\x18v\xbe\x8c\xcb\xe6U&\xff\xe9`\x88\x1c\x18:\x15\x124\xc0\xeb\x1b\x87\xbe\x0eTa\xc7|\xdc\xact\x80:\xf58\x15\x80\x83I\xafwNd\xd0\xd4k}\xf4~\xfc\xa0\xe0;\xc5l\xe6\x15+\xc3R\x06\x93\x0eo\xb8\xe8\xb2\xef\x04\xeb\x8e3$\xaaL}\x1b\xd0z"\xd6)#H\xad\xf5sN\xe7\xb6)\x9d\xd1l{\xcc(\xc4\x0b\xf3\x8ad\x03\xe2#\x9c9\xe6\xea\xbe\x10\xd7\xe2}C\xd1\xebT]L\xfa\xd6\xb6\xb1\xbd\x8byA\xa6|]J\xd2n\xae\x8b\xe11\xaa!\xc4\xbb\xc72\xad#\xa9{\xa8D\xa0:v\xc6ec\n%\xf5\xfa:f\xcb\x10$\xdb8\xf0\xb8\xed\xf4\x8eZ\xed\t\x1c\x96(Iw|\xb0xfj\xd1\x91~?\x02%\xf7\xc3$\xc4\xd9~|g\xc3\xef\xa9\x16j\xb1w\x89\xa2\xb2b\x95\x98\x97\xe0\n\x8e\xe9\x8e\xee\xa5\x92\x93\xe2\x0b\x9b\xfa\xef\x02\xdc\x17H\xed\xaf\xd2\x85vuo_\xdfQ\xe0zR\xb5\x05r<\xae\xaa\x8fs@\x01v\x8b\xca\xd2\xf1\x08^\x9e\xba\xc6\xb5\x987\xab\xa0\xf3\xa0+~\x1e~\x00\xea\x1a\xda\xbdQ\x00\xa5\x161\xc9e\xf1{\xc3\x18\xb1\xc8\x8d\n\xcf\x94\xbb+I\xac\xc1\xffEzR\xb72\xc0\x99=\xcc2W\x06B\xd9F\xa8\x97\x8fb\xeb\x1f\xa7YdA8\x8e\xf1\xadW\x9c8U/\xe2\xe1\x98\xf8hYt\xea~\t\\m\x99\xbc{y\xbe=\xecpz\x8b\xa8\xb7\xb4\xa5,?\xcc$\xa35\x11\x8a5W\x06\xaf\xa1\x1e"j\xd8\x9a\xeb\xaf\x19\xc9\x85g\x1b[\xa6p:\xc7t\x99\xa4\xabQW\x0f\xb6\xa9.\n\xcf\xdc+a\xdf\xea\xb2\xe6\xd5\x00\xb5\xe9\x97\x0f\x08Z1\xdd|\x17\xf0\xed\\\xc0\t\x87\x0bN\xedq\xfb\x8fS#O\n[\xfc\x8dTAj\xbbT!\xb6ppxu\x7fr\xcc\n\x02`\x14c\xa6\xc6\xb7>E\xa6\x1c$\xca\xf6<\x82D\x87\x0by\xb9\xe6\x1b\xf5\xed7\xd7\x85\xda\xbd|\t\x08\xb5\xb53\x8b\x00\xf9\x8f\xbd\x17\xb4\x02_\xb9\'\x99\x90\x96H\x12\x81\t\xc3;\xf5\xd5\x81{\x0b\x14*(\xc8\x1d\x8cu\x9d\x8b\xce\xca\xe5\xb9\x11I3\xcd\t\x99\xbd\xd27\xaaz\xc9\x07\x11\xc5-o\x86\xc5\xd4\x81$\xfe\x18jr5E\xa5\x85\xb5tJN\x9d\x03\xcc\x7f\xcbv-\x99\x14\x98\x12\x1e{d\xbf.\x84\xb2\xeb\xc5\'%o\\C\xea\x95\xe4\xa6d\x96\xf5\xa9\x91\xb0\xc8\xfa\x07;I\x8e\xfdB\xe2w(\xa8\xc7\x9a|\xb0\x9a\xa7H=e\xd4\x03;\xb5[\xd6\xa8\x1c\xc7\x979I\xba\x8f5\x15\xc6\xb0\xb3\xfd\xedr\x153;\xb2\xffhY\xd2LBpN\x91\xd2\xfa\x10y\x1bQv^\x8f\nG\x86o\x1d\x82\xc6\xa3\'^\x8a.\xaf\xd81)\\\xbf\xe0\xba!\x19n\x94\xde`\xaf$\x17\xa4RF\xe7\xf1\xf3\x17N\xcf>X\x06;\x81\xa4\xbcX\x01\x12\x13\xa8\x9a\\\xd5icH\x90.d0X\x11`\x1f\xd3\xc6\xfd\x91\x06\xeb@ub\xc4\x85\xc62\nKu\xc2\x102P\xad\xc7p\xad\xe8\xc2\x97 \xf9\x07\xf0b\xc4\'\xf3\xda\x1d\x7f\xb7\xc9\xdfk\xfa\x8b\xf8E\xcc\x91C\x0c6\xf2\x94\x12\n\xbeA\xb3\xcb_\x15\xcarA\xcc\xf0\xce3_\x8cp\n\xcf\x02\xbe\x1c`\xc7\x96\xbb\xf9e\xb4\x91\xab?_\xd6\x90V\xcbO\xac\xed\xa0S\x99\x98\x0f]\x92,\x02\x91\x95\x90K6\xc1\xeb\xa9\xed\x15\x92Ck\xe8\x91\xc3\x02j\xa5\tKm0\x90,\x17\x8f\xeay?\xeb\x94\x160\xd4\xe1r\x9c9\xd6\xac\x7f:\xf2w\x151\xed\xa2\x87?\xb6\x8b\xafR\xcft\xdf\xd7MQ\xc6\xe4\xd4\xf7\x92\xc7\x83\xbfC<3\x1a\x03\xd7LR\xbf\x9f\x00\x0bB\xf9w\x9d\x8do\x88\xea;\x10?\x1a\xc2\x9eL\x0b\xe3^S\x035\xd1\x9cuF\'\xe4\x10\xb7;>\x07\xfe v\xbe\x01j\x86\x8a[2\xec\xaa\x02\xcf\xa3|`\x05\xac*\x97\xb4gD{U\xa1Wd`)\x9d\x94\x8a\x92\xc1s\xb6eNBr!\xeb\xb8\xce\xcb\xacw5\x10C\x98\xdf\x0c\\\xee\x001R\x15o\xfb\xb8\xbam\xc9\x19\x18|\x0fy\xb6\x8a\xee@\xa5\xc2\x8aE+})]\x01\xb6\xa9\xfbu\xbe9\x18e\xd7\x97\x94\xab\xb9\xe3{s\xfd\x9c\xae\x9f9\xf3<\xbd\xb2\xe0\xdf\\\x16\xd9\xbc\x10\xc3\x8cQ\xf4"\xfc&\xf1\xb0\x16\xf8"fue\xaa\xd0\xd4>\x18\xf7\xf19\xc4@\xa4\x87\x1d\xc9/7\x98\xc6\x1f\x959\xbe\r\x9e;b!c\x11\x9eK\x8a8\xbb5?\x91\xb7\xde\x0b\xc8\xc7\xe6d?\xa5\x12\x80i-\x06d\x06DE\x91\x1e\xf5\x83r\xc2\x11\x06. \xf2\xb7\xcbAa\x18\x989\xe7[\x03\xac<\xee\xd0\xday\xe8\xb1tnw\xea\xe8F\x97*\xcb\xb5\xb8\x8f\x8b\xb4\x9cv\xa5\xb2N\x1c`\x06\xdfWd\xb9\x1e\xa4+Q\x90SM\x87\x81!ym \xcb\x1e\xb0\x8f\xb9\xbd"\xc4Xz]\x08QIG?\x11j>{5}T\x10\xfc\x07\r\x19u\x98E4\xfd\xbb8m*\xf0g\xac\x0c\x9d\xc1\xca\xf3\xd7\x1d$\x10\x93\x93\x12\x88y\x056\x0c\xd8\xf6{T\xf5\xd4\n\xd7\xab\xe8_\x17v\x15\x10\xc4%\xb6\x9b\xba\xa6\xcf\x0e\x8a\xf2\xb4C>\x90y\x12\x84\x8eg\x15\xb2q\xd6\x97\xb3N\x89t\xd1U\x01\xe5J=\x11j\x0c{\xbcp\xe6\xe9\xbd\x0c\x06\xff\n\x84\x12\xdf\xe7xpo\x95\xe1\xd6E\x935\x93v\x91\x90\xf3\xb2\xa3\x85g\x98\x00(\xb1P\xe0\xd1\xa4v\x99\xad=\xa4\x0eRC\xd8\x8f+\xf5s\xbc\xb2l\xedv8\t{\xbfM\x96\xa9\xcf\xd4\xf0p\xa4\n\xd7\x9a\xe7\xc2\x92wW-M\xa4*\x9e\xdc\xed\xc7\x0c\xfd\xecG.\x14\x1dobDd/*\xfa\x14G`\xa6\xc3s4\xbe\xf5\xb5qmZ\xa5\xacw\x9b\xc5\x81Ek\xa68\xf2\xed\x06E\xb9\xee\xe0?\xa2\n\x12\x9c\xb5\xa0\\\x18\xaa|\xbd\xee\x81f\x8d\xad\xe3\xed\xb7\xc6Wo\x18\x96\xe1D\xa4hzU\xc38\xf9Si\xd4\x1b\xda\x90\x8c\xc2\xa0%\xc2\x14\xa9\xa8\xee!,\x90\x91\xab\xa4\xa0\x03)\xe9\xf7|\xe6\x0eB\x97\x13\x9de\xd8\xccL\x87&\xa7i\x1a^tyg\xb2\x16\x0e\x15\x07.\xec\xc0\xe4K\xa3\x14\xb4\xf0\xc4\xfdS`B\xefQ\nvkuF\x8a{\xf9k\x98a\xce\xe5)\xce\xbe\x91M6\xf9\x9e0@&*\xf1D\xc5uKF9_5\rwH`G\x1d8z\xb9\xd7)\xe3\x82Q\x10\xe3\xaf1\x90\xe9;\xb5\x08V\xb5\xb9{z{e\x1a\xce\xeb\xf2:\xfc\xb7\xc8Uf\x9c\xedQb@\xf5\xcekys\xf8+\x81\xd3\xb6g\x8b\x01"\xd6\x10}8f\xd29\xad;R\x8al\x11\xa0\t/\xd1>\xe9\xf8\xf7\x19iOJ\xd2\x95!\x06c\'\xbf\x96\x02\xf8\xd0\x89\r\x13\xa3\xb5\x96\\\x8cC\xfe\xa6\xb9(\xb5\x88A5r0\xed\xa2k\xba\xcbi\xdck\x80\xc3[\xf5\xbf\xa7\xf4\x9e\x03Z\xd7Ju\xdb\xb4`\t\xa8\xd7W\xfd\x880\xe7\xb2\x9d\xa6\x98\xc2)k\xc7\x1d9\xedi\x804\xa3\xde\xc8\xa5\xcb\xa4L{\x0f6i*\xe3\xbd\r\xed\x9c+b\xb5e)n\x80\xc8\x16\xbe8\x08\xb9T\xbbfz\xb8C%\x80\x96\xcf\x89\xff{\xc5\x9ax\xbc\xee\xe6\x19,\x19\x97\xd1\xa4o\ri\xc5\x18<\x98\xf9\xac\xe9\xef\xee\x8e&\x82\xb7\x8f\x98\x10@\xab\x06`\xda^\x98x*s\xf9\x88?On\xd5G.4\x7f\x04\xffg\xc8\xe4\xd1\x04\xc8[a\x99 \xf03_\xa9W\xc53\xf0C2}\x1e\x17\x9d\xab\x99K\x88\xd4\x18\xab|\xc0-q\x1a|[\xeb\xae\x95,\x14j3\x8a\xc3\x99G:\xd4\x9e\xce\xa4i\x16I\xc4YT\x88\xb7\x8c\xc7\x886Q\xb7\xe9o\x8a\x9d\xb5n\x99\xbd4o\x12\x86\xe4/c\x80<\x1a\xe49\x93C\xaf\xef\x9d\x92\xb3\x90\xe1\x82g3fA\xd6+E\xb5\xc7\xc4\xb7\xe2\xbf\x06\xc0\xd1W/\xf6\xb03\xe8E\x03') diff --git a/dist_obfuscated/src/orisys/StructuredGrid.py b/dist_obfuscated/src/orisys/StructuredGrid.py new file mode 100644 index 0000000..960a107 --- /dev/null +++ b/dist_obfuscated/src/orisys/StructuredGrid.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.655504 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\x153\x00\x00\x12\t\x04\x00\x99\xb7\x91eK\xb4\x1f\xcf\xf3>\x8f\xd540\xafQ\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xf2\xfe}F).\x1aU\xbd\x81\x18Hep\t\x8e/\xbd6\xa25\x86\x99\xca"\xe7\xd7\x01S\xecF-\x1a\xc2\x9f\xfc\xe2[t`\xbepk\x14KNkG\xe0\x0e\\\xbe>@\x14\xc5\xc2\xff?w\x00\x9c\xd03UG\x9d\xe0\x83\xdf\xbb\xefo\xc1\xa4t\xd3\xdf\xb9\x00)\xfa\x94\xd5\x8b\x11\xf5\xb61\xa7\x8dp\xb0\x96\x7fs\xdc\xac\t\x85\xb9\x11>\xa4\x86Q\xd7\x9a\x96\xd0\xf9\xf1}\xaf\x14\x0b\xe5P\xa2\xc8*\xf8\xa1q\xa7\xa9\'\x9c\x01\xad\xfbm\x11\xc6jc0\xe7\xcep\x0f\xcdRT2f\xa9\x91\xeb\x1f\xa7a5\xb5\xe2\xfe\xb0\x0f7\x8d\x15\xe4\xcb\xbc\xf5\xf7\x85\xa1\x1a!s\xe5\x1d\xafE\xef\'$0i\x15r\xf9\xea\xa6\xe1l\xf9\xd7Z\x11\xf2|\xad\x89\xadV\xc0\xad\x98\x88\xea\xfa4\xd1\x96\x07\xbfl\x80\x04\xbf?Q\\#\xae\x92\x94N\xd2\xf1 \xec(\x18\xf2B\xf3\xf3\xf7<\x01\x1f$\xdc\x88\xc0\xd8~\x874XITk=\x11"tVr\x9f9\x08C\xbb\t\xe7\xcd\x846\x8c>\xc4\xc26\xc2Z\xa5\xa8*\xd1\xda\xd0\xc6\x9fI\xb9q:H/T\x1b\xfcR"T\xb2\xb4\x17\xa8\xf9\x84#b\x82\x10\xc8R\xbc\xad\xeb\x04\x9a\x8e\x17\xd0\xaf\x1b\xf6\xf6\xf0\x13\xe5\xa1=\xe2s\xb4S\x1f\x06\xd5jz\xc6\x1b\xbb9\xfe\x05E+\xfc\xe3\xde\x11\x13^\x0c\xe0\x8f\xac\xcb\xd3E\xfb\xf5\x08\xba\xb6\xb3\xcaN\xae}\xa3\xe9t\xc9\xca\x93-\xb5*\x17\xcb~\x92\xc2\x14=\xf5\x05^\xe9\xf1\x11\x95\xe4\x1d5^\x99\xdc.\xd4\xa5(\x0e\x8b\xeb\xeb\xed=\xee\x8b0xF\x0e\xe1\xc8\x89k\x14\x99\xd6\xa9A\x8e\x10\xc7\xb0\x11\xba\xe7\xa3\x8a\xbc\xef\xb0\x84\xd1\xf2\x92\xe7\xd0P[\xf8\xa8\xffnT\x8b\xd6\xa30\xb2d\x80h\xb9\xb5\xf9\xc6\xbd\xdd\x15\xa8R"w\xb7\x7f&\x17\xc8[\x8e-^\xe70X\xf1}VI\x93Q\xa2Z\xa2\xea70\x16\x7f$\xd8nX\xb5J\xfc\\\x1a\xc40=\x98g\x06L\x9e\x90\xb6\x91\r\x11\xbcI[)Eu7\xd1\xd8+D\xc4\xcbP\x7f^TkI\xc4\xdb\x9f\xa6-=\xcb\x9b\xc0\x91k\x0e\x1c{\x9b\xa3\x81\x9a\t\x01\x06Q\xd2\x99\xe1\xd3\xf0%t$\xdd\xfa<\xab\xc1\x15\xa33\xe3\xfb\xd1\x8a\xc3~w\xca\x0bM\xccw4\xbc\x8a7\xa6A\xcd\xbc\xddN\x17Q\xcb\x95\x8e\xa5\x8c\x18v\x94dI\xaa\xa0\xe5\x03\xa7\x81\xe6\x86\xec;^K\x89\xe2}\xd2\x96\xa5\x8a\xbeAT0F\x8faFy>\x84Iy\xd0()\xf4\x89\xf8\x1c\xbd\x1e-\xc6\xa0c\x88h/\xbc\xf3> \xfd3\xbf\xa97\x9ai\xf6\xc6&\xba\xf6\x19(\xe2\xc0\xf3{\r/S\xda\x08\x85@\x8as\xa25\x9cq!\xfc\xda\xe5\n\x87\xfe6\x8d\xb1\xd16\x8a7\xe3\x0eR\xba-\xb9\xceh\xf3\xfc\x1fK\xa9\xe9\xc9\xb6t\xf5\xa9|\x92WTGG\xae\x05K/\x81\x8b\xb7y{W\x19!\xd0\xd9\x1e\xa5\xc0\xb9\xa4_\xaf/W\xd6U\xa6\xe5\xd7A\xe68y)\xe4\x9b\x81\x02\x93\xd7\x85\xca\\\xb2\xda\x90U\xa5x\x02\xf8\x91\x07\xf4o\xd3\xab\x84j\x9fF\x17\xa7n\x88\x87\xcf\xa7\xc1\xa8N\x0fV\xef\xe8\nc\xf4\t\xdat7\xcb\xea\xc9\xc7"\xb5\xbc\xf7T\x00Q\x00\x074\xdf\xcc\xa9\xda@\xce\x04\xfc2q\xa5%]=\xc0\t\xfe\xb3\x91\x81\x17\xc9D\x7f\x8er\xa1M \xf0\xfemB{\xad4\x90\x83W\xf9SQ+\xab\x9e\xa7y\xb0\rRZQ\xb1\xd0\x91\xd2\x8d.KZ\xc4Y\x93H2\x96\xb2U\xc3\x95\xacG\xeeE\xcf\xc0\x8es\xb70\x07\x03\xb4V\xc2\x8e\xc2\x1b}8L\xe6\xf8\xdd\x89\xd4\x8fmy\x90\xf8r\xec\xaeC%\xdc\x92\x1a\xce \xd6gR\xa6\\V\xb6>\xba$KCO;9\x16\xc2\xb3\x14\x80U\x19T\xed=J\xb8F\xce\xec\x85k<[\x0c`\xb1\x00^\xe2\x91\x02\x13G\xd1\x9aD7\xaf\xc2\x1b5[\xd9b\x1b\xad\xde\x81\x8a\xc4s\n\xec\x8f\t$-,\x11T\xddxuf\xd7\xc3\xe8\x8d\xd6\xb1\r\x03\xd2\tD\x97\xf9X\xa1]\x8e\x11\xa9\xb5v\xc0\x0eq\xec\xcb\x7f\xd2\xf2\xcb\xb4\x9a\xb0F\x12y1\x8dY\xc0\xef\x04-\xf4\xd8~\xcc\xa1\xc47\xa5ux\xd5CSHF\xba\xaa\xda\xa2\x8e\xa6\xd9\xcb6j_\xdb\x02\xb2&\xe8\xb4w\xce\x8e9R\xe0\r\t\x82\x17N\xd2\xda"]\x97\xe1T\xfb\xfflm;\x0f\x03^\x9e\x05\xcfE\xce^\xdb\xc9\xd8\xf6\x9c\x0b\xc86 -\xd3x\x922T\xd5@<\xd2\xb5\xb5\xa9\x9a\x91\xa6\xa6_\x83\xcc&0\xbdK;\xfd\xd3\x0e\x03Gh\x86\x11,X\xaa\xfc}u\x06,\xfd\xdf\xf7bBF\x18\xad\xca\xd7\x9bg\\#\xb1K%\xcb\xc2\x13#/\xd1\xd5\xccr~\x97\xc9O\rX6\x03\x8e\xacF\xb1\x0c8\xdf\xe1\x85\x9a\x18\xda^\x9anV\x94\xf6gLs\xdd|\x1cY\x9c\\\xaew\x80\xf0\xe0\xf1\xb5Q\xd8?Wy\x92\xea\xd3\x92\xc3\x0eg\xcf\xe8\x86\x87\x86o\x05\xa2\xf4zv\xcc\tgt]\xbf\x17L\xb62\xcd<\x8ce\x9c\xe3]z=\x16<\xc0\xe4\x84*\xfa\xb8#\x149\xf7\xcb\xb4\xf2\xb6I\x06\xbf\x8egJ\x18\x97\xe0$\xe5MKE\x0e\xf8\xefw5kk\xbb\xef2\xc0\x87Ntn\x0fu\xb1\xca\x12Q\x9a\xdc\xc6\x82\xf5\xf06#\x14\x02\x9f\xe8\xa7\xeb\x13\xc5\x95\xa9s \xdf\x07\x8b\x7f.\x14\xda\xc8\x1d5W,\xa1\xca\xeb5q\x0f\x8a0;}\x0b\x11\x0f\xf7\xcb\xff*\xa8H\xa0\xac\x13\x90\x01\x03\x98\x89\xb8\xf4\x8c\xf6r#\x91\xa7\x8e\xf5\x9b\xfc@2V\xa5\xc7\r\x15\xde \xc3n<\x81\xc2\xd9\x01\xbf\xe0Z\xdcF`\xe8^g\x8a*\x93\r\\\x00vv"\xc8\xdf\xf3\xb8\x93\xd5PYC\\W\xe0\xc2\xd7D\xb8\x03\x9c\xc76\x8a5\x9fG\xe0\xa8\xb7\xc4\xfb\x1dT\xc8\xdb\x12\xbd\xa6uy\xda\x9b\n\xb45x(?\n\xa9\xe2VJ/o\x90}\x06\xa9\xc4j\xbb\xb85\xfc\x99\xde\x98\xe4B\x9b{\x8a\x02\xfc\x05\'\xbb\xa6w\xcd\x1c\x06\xfa\xe7V\xa9F\xbc\x05\xaa\xf4\xc2\n@\xa1\xbcY\xd2)\x94\x01\xe85\xe3\xa5\xd4T\xa2\xbcz\xc5gYF%\xf0\xec\xd6"\xf8\x16\x1e\x91\xc8\xb1\xbe\x02\x96\xe7\xba\xb0\x82\xc5\xac\xfb\xc7\xf2a\xe87\t\xb5x\xab\x83\xeb\x13l\xe6\x85$Y\xbf\xf2<\xfd\xdb\x02vN\x1f$\xe5\xe0\x0b\x9cV5r\x9a\x94\xb8\xb9\x8aI\xb5\xd1\xb5g\\\xf1\xfe\xffKr\xd0\xe4\xefy\xc2\xc1>\x135R\xbeC\xf3\xba\x1e\r\x8a\xde\xc0\xe6\xa4\xcc\xdc\x01*\x90m\x04\xf8\x1d\xce\x19c\xe6\x1e\x1c)J9\xa4\xceDN_|\xb0"\xab\x88\x80\x8e\xf0M\xa4"\xb4\'C\x00\x99\x12\xd4|~\xfd\xc4\x9a\xd6\x83\xdc.\xc1\xf0p\xfc\x9eR\x05RFS\xfd\xbd\xc2\xcc\xdb,6x]\xaa!AC\xf1.\x18\xcb.\r\xd2\xf2\xaf\xa7\xc7\xbc\xb3\xcb)0\x9eX/o\x9a\x12j>\xea\xfa\xdb\x1eq\x1a\x97\x00j\'\x82\xffi\\\x16!\xec^#\x15\xb4I\xd4)\xb7\xec~oV\xbe\xc1\xb0\xd0\xbd\xbd\x9b\x19\x8da8[>\xd8g\xabMD+\x81\x94\xbb\xbd\x90\x16\x9e\xeb\xab\xd7\xd7\x84\x00\xb4\xb0f\xff\xcaf\x0e\x15\xde?\x158q|\xbc8\\\xbb\x8d\xfeHm3V\x9d\x15\x0f\x10\x9c\xb3\x8c\xd7Pl%\x99i\xd7-I\xc4\xa8\x8e?\x1c\xec-J\xab\x9c\x8b\xc1\xce \xe3\xce\xb7\xc8\xd6h\xf9\xd4Kc,\xbc\xd4w\xff\xe9\xc2\xdb>\x90\xfe\xc29f\xce\xe0\xcf\xbf\xcb\xc9 \xe0c\x14\xa9\xc1\xf9sR+\xb0\xd1\xd2\x87\t\x98v\x8el\xc3\xcc\xd0\xf3\x87\xfc]j\xa5i\x99\xf0\xfb\x0e\xcad~i\xa6\x85\x99\xa5btt\x8dQa7c\x1f9\x9d\x03\x1e\x85\xdeS\xf6aCB\xd0\xd2th\xc1"$\xe2\x96\x9el\xa8\x9e\xa4PuPc\x8e\x1b\xc1\x06\x83\xdf\x90\xcf\xdc\x14XSXW\xe1\xa3M;\xc5\xeb\x95\'<3\x88\x824~L\xe8\x96kz59\xe6\xf4{,"I6bc\x149\x19\xafq\xfd3\xdff\xa5\xc5\xedr\xd2\x10H<\x1d\x93C\xf7\xfb\xec(*\x92\r|"\xca\xa4o\x8d\xbb\x1c[\x9cA\t\x1c@\\;+pQ\x83\xadpk\xb7\x1b\xdb\x02\xfc\x82\xb4\xdak\xaf\x9c\'\xba\xda\xd5\xb8\xa0r=\x18\rr\x15\x8b\xaa3[t\x87UH:\x189\x9f\xe6\x02\xd5\xabC\xdd\xea\r7\x18OCB\xd7\x13;\xfc\xd6_?(|\x18RV!V\xe9@^q\x87\x86VSE\xee\x7f\x9e\xb3\xc7\x02\xd1<\xbc$\x12\\|\x16\xf1\xc9\xac\xad\xddj}\xc7\x02\x87Rgz\x96\n\xb8\xaa\xf6\x02\xaf"\x7f@\xcc\xf7\xe10g\x97d\x91\x85nF\xf8\x1b\xae%r\xf3\rjN\xe2\'\xcc\x0c\xce=\xe1\x8b\n\x1a\x8d\x18L\xe8\x81\xbb\xf2\x8c\x99\xb4*\xae\x9f\x855\x0e\xf4\xc0\x8eW!W\xab~m\xf2\x99\xa1\xe9-\xb6\x8f\x1e\xdb\x13I^\xc5>S\x19C\x7f:\xb2Ri6b\xd9\x8a\x88cm\x8b@g}\xee\xf5a\x8b\x87\xd0=g\x08\xc3X\xd0\xf1\x00\x83\r\xa4(\xf1\xb3\x0b\xbfL\x80\x87\xbb0kZj\x92he\xac\xf9\x08\xf8\x7f+\xad\xf6\xdc\xd1\xe1C z\xd4\x1a_m\xca\xdb\xf0d(%\x10\xef\x87E\xa7\x87\xaa\xe8\xe4\x12?\xbb\xe2\xbf\x19\xa1\xf7\xeb\xc0~\xcbK2\xc8\xf6.\x9f\xfa\xfc\xec\xc9\xf8\xd7\xdb\x0f\xb9a\x9a\xb1\xc9R\xb9\x17F\xdbG\xff\xe1\xbc\xd6\xdc1\xf76(\xd3\xca\xe7W\xe2\xf4\xb3l\xe4\xb7\xb3\x94\x80\xd3\xe58SE1\xac\x80\x95\x8c\x10\x0e{\x1c\xa3\xe4oG\xf1F_?$\xffAP%\xb2\xd5v68\xffdr\xfa\x95dj\xc5^"WC\x9d\xe9\x03\x03+\x13\xf1P_Z\x97\xecs\x0f\xe9OC\xdb\x8d\x92S\xd9\xaazI\'!\xd9_\xcf\x90\xdb \xe3.Li\x81\x9a\xaa`\xf2\x9c\xf7\xd7o\x080u\x9a\xc7i\xbc \xdaqHP\xafD\xe9\x81V\x9es\xc7\xcc\x98I\xb3\x1au\'\xfc\x18P\x8eF\xb4n\xb5\xf6\xe4\x81\xe1Y\xa8db\x7fI$\xfb\xfd\x1e\xc07\xde&\x19\x91\xdf-Cny\x0e<\xd393\xd1\x17\xc8\xc5\x94\xa6\xa8\xf3J\x95\x07%|\xc5\xe60\x98\xcb\xa8\xc6xW*Ih\xbfP\xc2\x089\x9f\x80\xa3\xc1\x1a\xb5N\xcfE\xbd\x81\x9e\xfd*\xefw;\x8f\xb6)\xb64G\x14|\xb5\x11\xd1#;\x11\xcb\x995\xed\xdb\xb5\xca]\xa5\x9a/f\xcb"\x910&\'\x0e\xb7\xc4\x9cW\xca\xb6\x04<\xbf\x8b\xeb\x1d\xe0\xdc\xa2\xf0\xe3[\xf2H\xb0\xdbd\xf2%\xfe\xe2\xe2w\x98w\xca\x08\x86}\xf0\x98\xe0\xca\x8b\x81\xdc\x9f\xaf\xebV\x1a\xdd\x8c\x84\x8a-\x97Xn\xff\xcfd\x85\xa8\xd0\xea\xcc\xd1\x16\x0f\xc0\xa6\xd6\xdfnIz\xb5\xa6F\x8eK\xd3\xa9R\xf3?\x1b\t\xc10]\x14\x91g\x06\x03KgC\x10\\\xed\xe0S\x1e\xe5\x81[\xa9_f\x08r\xb2\xce\xd6S\x11\xbb`\xc4\x1c(|\xe7\xa8\x07\x9d\x7f}\xf2\xf7K\xa7\xdc\x19\x80\x84\xd3\x1f\x7f\'\xb6\x1f\xd2\xc0\x93\xf19\x94_\x96\xady&J\x85\x8d\xf0g\xd7?\xe5\xd6\xc3R\x915\x85W\xa2\x801\xa8|\x95\xdc\xec`\'"N0I\xedKV\xcb+\x14\x7f\xbb\xba\xb6z\x84\xd1a\xe5\x93\x0f}\xdd7\xb5\xe9\xee+\xa1o\x82\xd5%*\xffR\x85\xbe\x1ci\x8fZ\x95\xb1\xfc\xf6\x08\xd2\xce\xfad\x88\xf1\x92#\x94\xdeM\xcb\x93e\x15\x806\x08\rbO\x95\x05U\xff\xdc\x1d:\x08x\x8cD\xf2%\xc1\x04\x8c\xa3\x0e\x82\xe4\xff?~@M\x15\xfb\xdc\xd4\x17`VOwt\x18?\xd8`\x0eOzW\xe75\xa80\xc2\xdb\xd0I\xb0\xa9\x08\x9ey\xb8{\xa8t\x8d\x8e"(;\xca\xca&\x13\xf9j\x02w\x12\x9fA8/\xdf\x9d\x83+\x15A\xc6\xf6\x9f\x9b[\xbf\xac2\x1a-\x8b+\xad\xae\x9e\x99\x13\xb2\xaa\xf48\x81\xed\x85\xb5\x98H\x7f\xafr\xe4\x1e\x97\xc9\n&\x07\xae\xf0R!\xa0\x92\x9d\xb5\x7f\xc7\x1b\xa4}\x13u\x0bx\x82\n\x81\x98\xday\xbaFUf\x9b\xe8\xb9\xd6\xf7s~#\xa3]Jo\xb1L[T\xcb\r\xa8v\xd3$\x04j\xda(\x86\xdb\xe9e\x1e\x99\xb6\xcdjB\t\xfb\x8c\xb39F\xae\x0f\xfd\xc6\x1d4\xe1X!1$fY\xf6\xfd\x12X\xee\xdb\xd6\x19(\xaa\x03?6=D\x89\x89.\xfaY"\xab!\\\xcd9\x03\x9d\xa2\x94g\xac\t\xb9\x0cT\xd3\xf4\xe4\x13\xbc\'\xdd\xe2\x86\r\x9f\x85\xf9_\xe0Ml\xe7\x04V\xafx(\x84\x03\xe9#\x83T}\xe4w2\xa8WA\xf5\x84>\x91\xd3XZ\r|`+\xe8\xae\xa9\xa9\t\x87\xc1\x9c\xf05{\x011\xa6\xeba\xf0\x8d\x1b\r,8\x10\xc39\x0cr-E\x83\xba\xe9#\x7f\xc8\x13gm$Xh\xa1_$\xacX\xa4\xf8y\xd9z+\xf2\x87uVR\x87/\xa5tA=E\xe81\xf0u\xcfM\x8e\xf1\xa1\x14\xfc:\xcc\xe4\xe5\xaem\xfc\xf4]m\x89\x1c\xed\xacn\x9e\x98\x0c\x8c\xee\x13\x01\xb0s\xe2\x05:\x99\xc1i\x065\xee\x97\xff\xc16x?`5p\x95\xbc\x8e]\xa8\x111\xd7\x85@W\xe7\x97\x9dd\xe8\xdb\xf7\x98,\xd1%\x9f:y\xa2\xa3\xe6\xb0\x16\xec\xc4\xa86\xc5\x87\x80\xcfj\xb3$aX\xbb`\x97+I(\x0f"\x15\xd2\xe9\xd8Jx\xca\x86\x85\xdd\xbf\xf9\x0f\x1bCB\xef\x0f2\xffe\x88\xff/\x10\xf5\x11\xee\xe3N\x02\xb5\xbfo\x9c\x11c\x9b\x9d\x1c\xe7\xeb\xb3)\xf1\x90I\x1d"+J\x06\x109j]\xfa \xd3\xb9\x94*\xbc\x10\x0ef\x9b\x93\xf0b\xcaG\x94\n\xed<\xc3\x85\xbba\xb0Q\xb6\xcads\xf7\xe4\x9cQ0\xfb\x80\'\x8a\xf0\x94"O\x80S\xe1\x11\xca\xd8\xa0\x08\x10\x0et\xa4kK]\xf1\xee\xca6X-\x82\xaaGJm\x91\x81\xfc\xac\xe8\xbf\n\n\x9b\xa6U\xa5\xd8\xc7p\xb0\xebE\xb8\xa8\xd3\x9b\xb8\xeaJ\xb8d\t|$\x0e\xcf\x17\xabhW/Cs/\xbe\x8bw\xdfG7!\xd0\x12\x0b\xb4\xb2\x04\xab\xcc\xdf\x8e:\xc5sj\xb0\x9d\x95ov\x1b\xbc\xac\xf2Dj\xd8p1\'\x00\x9c\x99\x88\xef\x9ck\xa4\xc8\xd6\xcck\x8b\xb2\x10\x84\x98\t,n\xb1\xee\x7f\xb8(\x9cve\xa4\x9a\xd1\x89\\\xc5.\xcc\xf0B%\xfdbb\xd9\xf8\xb1\xdd\xec\xb8;\x9b\x18\xe6\xcb\xdf\x18\x98\x84ju\x844\xd80\x18\xc0\x14\x03\xe1\'\x1f{\x8c\xcb\xddMgr\xcd\x0c\x91h\xe4\xab\xf2o\x1a\xab\xed&\xd79\x174\xa0DNZ\xa4\xf6\xf8\xfe-bJH\x1d\xabB\xb9v:\xbbQ\xea\x99"\xc1\x1a\x80e\xed\x91Fl\x82\xd7^\x1e>\xbfb\xa0L\xfa\xadvZ\x92\x04B}f\xd7\xef\xf7\xf7\x00l\xb5\xff\xa4)\x9c"\x04\x80\xb7\xe8#q\xfc\x9dZ\x07\x85\x00\xd5\xb8\xfe\xf5\xdd\x8d;\xb3\xa0I\x1d\x19\x03`LR\x8d\x8b0Y\x89\xf5~\xa1\xc5I)\x03xfvGZ@i\\\xff|\xf4~\x07\x1dx\xe9O%\xb1?\x8d\xfe:L\x0bjDY\xf8nO\xdc\xb7\x06\x03\x06\t\xe1A[,\x9a!\xe4\x179\xbd\x9a[\x9dH\x85\xff{\xcaD\x00\xb2\xce\xee\x19\x1a\xe0\xc8\x08\xa3G8\xe4\x1alf\xcc#\x18m\xedb%\xd7\xe2\x88\x83\xfdH)\x9fh\xc2Z\xa2\xcf\x08\x15\x80\xf4\x0f&kY\x16k\xa6\xf8O\xc9A\xc6\xb6z\xfa\x1a\xbd\xe7fNFG@\xb1w\xe2\xcbQ2\xfb\xe7\x02e*5\x0e\xf0\x12B\xa1l\xc9\xe0\x9d\x90e\xbe\xd6\xd6d)Z\x88\x0f\xca\xfdc)\xcc\x94\xccDe\x95\xdcK9\xb8a\xc9^IF\x00\xab\xaa:\x03K\xd6M#M\xe5\xb9\xadL;\xb4\xb9\x99\xc0^\x02\xe9\xf8\x87\xdd\x9ee{\xb8\xd8\xc5"8\xc6\x85G\x9es1+\x8c\x88\xa3jnr\x07\t=\x99\xa6\xe0:\x0bOx\xe4gx\xd2\xa2\x81\x1f\x06\x1a\xc1\xf7\xa8\xe8\x19\x86iM\xa51\xe0\x9e\xa6u\xef\xab\xef\xeb\xae\xb3~\xaa\n\xe1\xa4\xef\xb1\xa1\xc0%\xc0\x97\x86u\xe4=\xab\x9aX\xf6\xe0\xa6@y\x9c\x0c\t\xbc&O\x85\xf1\xe0\xf7K\xe4\x9a\xca\xff\x0c)\xb53\xd1\x0b\xaaA\x13\xf2\xff\xd2\xb7Z\xf9_<\x9f\x9d8\x0c}\xb6\x88\xa4\xa2A8\rv\xf9\xb6\xfe\xeb\xa5F\xccN;\x1cB0p\xc4\xce\x0b\x00\xe3\xc4\x1f\xdd?\xf6\xc0\xba\x82\x84\x1f\x06\xc6\xec\x19p\xa6I\x16\x84\xccV\x98\xc0mfv\x80\xb6\xea\xbfc\xda\rz\x17\x03\x11\xa1\xa6\x11\xb7\xdf\xef\x08\x11\xdb.>\xb7<\xd9\xb1\xbf\xab\x08)eX\xa7\\\xd3\xf2\x93\x96||\x89\xf5\xcfK\x1e\x13\x97z\xbe?\xf1\xe2\x13\xbcO\x1f\xa0\xcb\xa8z\xc3\xd2\x92*\xa2\x8eL\xb3M^\xfa\x85\x85\x87WT\xe1!\xb4\\\x18\xb2{\xf0\x18cr\xb1d+2\\K\x19\xff\r`\xb4^\'\xc4\xea\x9f\xd9\xd1\x07\xc4\xe4V\x89\xa9U\xb4\x94\x1a\xdf\xaed\x9d\xaf\xc0\x94\xa1D\xc1\x9f\x82\x15\x91r)\xaa)h\x0c\xe2\xa3\xcd\x9e\xc9\xf0\x01\n\x01\xb0Ja\xeb0w\xcd\x16\xc1v\xe2\xe7\x9d\xac5R",\xa3\x14^\x96\x0c\x92\xa41\xfe\xa5\x1d\xdb\x10\xea\xc5\x8c\x06 \x8f\x7fr\x91\xa4-\xf3\xad8\x84;\xfe\x88\x13\x9a\xcb\x8fl\xc2 :\x85\xbc\x82\x99\xf6\xc8,C\xed\xbfR\x15L;\xfa4\x02y\x91\xb0\xfb\xf4,\x1f\x9b\xd5\xfbD\xb0\xd02\xad\x05n7\xbby\x89$\x9e\xe4\x06\x82@^\x8b\xb2\xb7[y\xe07%\xa8\x91\xefz\x04\xcd\xad\x8a?W\xca\n\xf9*q\xbe\xa0)\xaa\x91\xcc%\x0f\x839\xcb\xa6\x85}\x10\xfe\xcb\xeb\x1d1\xf2\xea\xe5\x8dh|\xd8\x83\xa1+\xa3\x14\x98\xa6\xb9N(\xa8\x9f\xbc\xb6>d\xbbC4$\xa4F\xf7}\xc67\xac\x81\x18\x13\xd3\xfd*\xe6\xb5\xb2#_aBJ]\x7fcbB\xec6\xf9{\xbf\xa21#M\xfd\r&\xcd\xff#|\xa1~#\x81\xa4\xa0K)\x15\xd4\x9e\xa4\xca292"\x95\x00\xd1\x00Y\xc4\xb5\x92\x86\x82\xe9\x0fu0\x02)\xa22\xf8D>h@\x0c\x15\xb6\xe7V\xf4IY\xae\x0e1\xdf\x0ey\xf1\x13\x16Iof\nc\x9c4\x11{\xe6Q\xab\x15\xda~u\xa81O\xbf0+\x1c\xeb\xbe\x9b\x1b\xea\x04\x8a\x92\x1dS"b]\x836_\x10\xcbCZ\x81\xbb\xac\x8e\xda\x1d\xe8\xa7 UJ\x9c\x05\xfd\'T\x9b\xd5\xf3\xf8c\x1c\x1a\xd3\xb9\xcd\xffej\x7f\xb1[\x88\xfb\x82>\x8edoe\xf35op\x83\xa6/o\xce\xa4\x06p|F\x92_,\xe8\xa2\xd0\xeb\xb2\xa1v\x87\x01\xb6\x8f\xd3\x9f3\xb3\xe4\x17q\x89\xb9\xd11\x9aGk\xb3\x03\xa0\x8cL\xbe\xc9\xd3\xe9H\x13OI\x1e\xa9\xb4\'\x1eE\xfc\x99\x18\xea\x95\xbc9\xf8\x04\xcf\xf9D;m\x93uV\xbf\xecU,<\r.1S\xc5K\xad\x9e\xf9\x1f\x10\x08\xa9\xa9\x94$,R\x0c\xb2jb.\x96\xd8\xf3\xb2\xcb\xd5\xa8xRs\xbe\xe8\x10%\xb7J\xac\x90?\xc8\xd8Gz\xb2\xdc\x83\xbd\x1d)\x8f\xd4\xbb \xc6U\xe7}\xc8\x08]\x1d\x16&\xf3gV+B6\x83\x97;\x86\xac\xf2\xe3\xcb\x061\xb1\x1a>\xe0\xccZ\rv\xc1\x82\xa7\x1d\x8b/^O\xc8]Ytl[\x1d\xe9\xe3\xc7\xfb\x82"MQ\xe0\xd6]^\xbb\x97#\x83\xfa\x1a\x1fE\xb3\xa2\x1aN\x1c\xa6\xe4\xb4\x8f\x89]\x8d\xf4?\xbb\xe6\xafx\x0e\xff7\xab\xc0\xae\xd16.\xf5\x9b_\\\x94\x00\xb4\xe7\xf6\xc4\x13b\x15\x8fd<\x04\x1a\xcf\xc2\xe3\x85\x92y\xfa\xb1\x8fA\xd5\xc0BN\xec\xe5\x8b\xc1b\xf8l\xfb\xb9\x93\xf2\xb8a\t\x8b\x95\x9c\xbb\xf1A\x84\xddT\xa7\r\xcb\xb0\xbb\xb8\r"M\xb8e\x90\x9e\x1d\xa2\xc6\x1e\xd5\xc0\xda\rN\x84\xb4\xb2\xad\x8c\xbf\xaaP\xd7Q\xea$p4Z_\xb5\xc2r\xbbs\\O\xe1\xed\r\xc8\xb3\xae\xa8\x89a\xf5\x8b!aO[\xce\xebQ\x06\xa0\xdb\xa7\xdb\x08\xed\xea\x92J\xfe-\xe3\x04\x05\xba\x94\xea`\xb3(F\x07\xc1^!\xe7Z!\xc3\x0b\x88\xa2\xd5.\xe8\xfe\xf31JY4\xfc\x91\xbe%-\x9b\xe2\xf6\xa3B\x82\xde\x8c\x9b\x1d\xcd\x16#\xe1\x1f#\xad}\x16vyuR\xb3k\xe6\xcbE\x7f\x1e\xc3i\xd1~\xc8\xd4\x14U\xc4\xd9:/Z\x19y\xc3\xb9G\x9b\x18\xfbN\xfe\xebq\xf8\xef\x83\xfd\x1c\x98n\xdc\xda\xe4KV\xea\xd1\xd8\xfe{]5\xa3Y\\\x89\x8e\xfa\xe7"z\xec}&\xe4\x8c;\xae\x80C\x9c\x00\x88/\n\xb1\x11\xf4\xf7 jV\xeaNz"\xb1\xfa\x86\xda\xaa*\x0c\xb4\x81\tR\xe9\xc3\xdb\x9b>\x03;\x9e\x8c\xad\xbcz\x8bJ\x14\xc8\xb5\x8b\xff\x13\xd4\xf1\xe2\xc9k?\x15\x0b\xad\xb5\xe8\xd4\xb5\xf1\xd7\xb1\x80\x16"\x04\x9e\xdahR\n\xae-\x00\xb4\x83\x16!\xf6\xb5\xe4\xd0m\xa1\xed?\xe2\x91\x90\xc9\xb0\xe8\xe9\xfe\xe8\x19\xd8\xd3\xa4\xaf\xba\x9a\xdf\xa8\xf2H\x17%\x8b\xff\xa0\x081)\xc4\x80\xe6 \xb4\xb1\x93\x9b\x0b\xd5\xcc\xe4\xa2Y\xffDu\xc1"w\x9bm\xd6\xcf\xb8\xe2Z\xc2&a\xa8\x97\xd0\xa7\xba\x93\x14$!\xc8y\xbd"yi?\x17\xc4\xbf\tO\x15\xe9\x98&C0\x93\x19\xd5?\xb7\x8eh\xfd\xf5\xa8A\xfc\x04\x13Y:\xbet\xa2\xb0\xd2^\xb1\x93\xf5\x881\xfdiR\xde\xeeyhy4>\xfa\xba/\xb7,rn\xdel\xd4VD\xfe\xb4\x9e=m\xe7\x9b\xb0J,\xf8qm\xe2\xfd6\xa7.\x8d\t\x96\xf5\x8d\xf5{9`o\xb9\x15R\xc6\x1b\x07\x18}\xcf@m\x11\xc8\x84\xef\xa5\xc7\x85\x9d\xcb \x9fd\xfdD\x1b-\x9d\x00\x9c\xf8\x93i\ny\x97\xb5j\x8e\x8fYU<\xc3\x86s7Y\x12\xac\x1ff\n\x0fe~@\xd1\x01\xeb2\xca\xb7\x87\xb3\xc5n]\xc1\x9f\x81zH\\\x12:\xc5O\xe1\x16\xb3\xa1{\x02\xec}\x00\xb2\t\xdb\x9d\x15\x06\x19\x16\x8bK\xb3\xf0#\x12\xeaq\x8b+\x04b\t\xafc?\x11w\x8e\xea\xb4R\xa3\xbd\x13\x8a\xba\xa2W\n\xa8\x96\x97_G\x04\xde\x004\xb6\x85P\xa7Jx\xf7\xb2 \xfd4\xe8\x93k\xb4\xf2^*\xa2E\xbb\x84E\xbd\xf7.L\xc4\x9c\x9b\xc1w\xef\x86\xef\xc6\xa6L\xcb\xbcJ\x86\xc5hBg\xd6\xc1\xca\xd4\xf2t\x1b\xed\x105m\xee\xa2\x0f\xf2aJ\xb2\x8d\xe2\xde\xee\x81\xa9h\xc56_\xf2\'\x81=\xe7!\x92\'\xad\x9c\xc3\xac\x1c)J\xaf\xbfc\x8a\x8d8\x8e\xf6\xafrd8(\xa1\xcey\xa5\x12\x88\xc7\xd1y\x9ax\xafo%\xcb\xfc\xff\xf5\xba\xec\xb2\xe2\n\xbf\x85ZnWAL\x8d\xd7:\x08\x12o,\xacHWz\x9ed_\x8c2:\x9dC\x82\xef\xe7\xf1g!L\x87z\x0fN\x97\x18H\x96\xb3\xbf\xef\xe7\x0c\xae[=\x0f\xa8W;A\xc9AGI\x00\x86\x84\xc3\xaf\xd51Ch\x97\x87\xbb\n\xec\xed\xfb\xbd^\xe6\x9b\xf4M\x1f\x1b6\x15\x9e^y\x0e\xb1\xe1~Z\xb5\x12\x8e%LH97\x8a\x9b\xcf?\xe3U\xc9{\x07\x93C"\xca\xad%\xab\xb6\xb7\x19J;q\xc2\xd4^\x0e\x92Ym|\xbe\xee\\\x12\xe3\xbf\xf2\x15L\xc8\xd4\xc7\xc6\xe3\xd0m\xfa\x95\x88\xd9}\rf\xc2\xd9P\xfcr\x15\x01\xc0\xfe\xe6\xb0\xdb8x\xad\xcdUr\x13\xd7lT\x81/\xf3\x0b\x80\xccnQ\x9bv\xd6\xa1Gq\xbb\xca\xf9+\x96\x94z\x92z\xbc-\x92\xeb\xf3\x8c\xa8\xc4\x8au,\xd8\xe4\x1c\xc3V*u\xef/\xcd]\x0f\xd9\x08\x85\xa0\x8d\x91e\xab:r\xd6\x0e\x86\xe2o\xac\xe9;\x1b\x00Ne%\xe4VA\xa4\x9c\xed\xa8\x873H\x914M\x88\x13\x01\xdd9\xc6\t\x81o\xbb&\x1b2\xa21\x01sA\xd2\xda\x7f\xbc\xdc\xc3\x18\xef\xc7O\x1bO\xd7G\x12\xcd\\\xc1\xc2\x8a\x03B\x19%\xd6\xdb\xc8\x93\x9c\xeb\xb6\xba\x88r\x1dR\xec\xcc\x80\xa6=lAD\xe3pmC\x0eIF\xe7\xbe\t\xde\xef\xf6\x14\x88\x8d\xaa\xa5\xed \x13\x7f\x18\xb7\x8a\x93\xdd5\xa60, \xcf\x11v.Q\x1a\xe5=|\xe03fk\xe6\x89\xe1\xb1\x8d\xc5\x92\xbaQ\x1c\x1aZ\x1bo\xc1\xad\xb0\xa0fu\xe2@\xf9 \xfcB\x91F\xe8@\xf5YmkU\xc5~pY!\xcc\x074-\xbbA ,\xbd\xf3\x16N\xc2Mj\xe6?\xf1\x9c\t\x15\x08\xa8;\xf2\xca\xb6"\x9e\xe8\xee\xc3\x19\x12\xec\t\xff\xaa\x92T/\xb0v\xd2\xbc\xcd;\xce\xcc\x0c\x11\xc0v|\x93c\x86\x96\x10G\x7ff+\xb1\xc44\xe1b\x9exR-\x93m\x7fJM\x1e\xf3\xa9OX0M\xaa\xed\x9f\x07\xf9lA\x07\xdf\'G\x9e\xf3L\xc0<\xe9\x83\x85\x05\xb0\xbd\xedq"\xc8\xe8\x90\xe9\xd7m\x89\x80(\x058n$\xfc\xae\x84\xfd\xb0\x90\xabh\xad=\x94\'\x90\xf3\xd4\x94\xbd\x030uT\xba\xd9a\xb9\xe0b\x90\x1aW\xe6\x17\x1db\xa917\x84\x91\x89df\xc8\xd2\x96\x1f\xbad\xd3\x18Do^\xa5\xfe\x97\xf3\rB\x16\xb5\xf9\xae\x1a"\xac\xdf\xbe+L\xd6\xd7\x92\x92\x10\xd3F\x12U\xc9F))\x10\x95\x87U\x87\x00k\'3\x91\\\x84\x7f\x82ZE\x8b\xc8 @\xf3\x84\xb1p\x18\xc5\xdb\x99\x1b\x91\x94.\xe1\xeca\xa3#u\'\x8e\xc2\x98\x04\x7f\xfd\x11g\xba\x99\xca\xa9\xf78\xf0\x17\xb4\x98Pe\xad\xd1\x85^\x92\x07m\x1a>s]\x03\xc2Xb.\xf6\xe7\xb5\xd1\x04\xda\x12\xfap\x8d\xf5\x15\xab*\xfc[i\xa7gu\x18\xa8\xed\xe7\xf8]\xe1}\x01\xe0S5\xb7M\x9f\xffe\x9f\xb2\xcc\xdb\x0e\x90i\x0b\xe3t\xbc\xe9\xfa\xb4\x14.^+\xfbu8 @\xd9\x1ed\xa8\x92\x94\xc9\x04\xa2\x1d\r\x18\xa4\\}\xd3`\x05\xedw^\xc2\r\xae1\xf8\x9c\xfe\xb5\xee\x9a\xfd\x11[[\xa1\x8d&\xee\x10 /;\xb2\x08\x9a\x9c\xef\x14S\xf8\xca\xc8\xbb\x10\x15\n\x96\xb0\xe5\x94#\x1c\x0bU\xf4\xdd5\xc6(\xe2\xe5A\xbb\xb0\x9f\xdd\x14\x81\x7f\xb1\xee\x84h\xdfK\xf6\t\x92\xc6\xdf\x13<\x9f\'&\x9e\x1cE\xfe\xb50\x8d^)\x85\x95\xea\xa5\x97\xae\xef\xe1\xefh\xac:\x0b\x8c\xea\xac_\'m\xf9f\xf1\x13\xa1j\xf9!J%6\x83\x7f\x8a\x0f\xf8Q\xc9\xd7\xb8\x9d\xe1t\x01\xeeL\x82\xc1m\xd5\xddbV\xd0\x1b\xa18]>\xec\xaa\x83{u`/)\x06{\x8a0\xf3\x95\x06\xa4\x8a\x15/\x83\xebOqS\x92\x80\xc9\x14K\xd9\xf3\xda\xb7r\xf9%\x1c#\x80Q\xbf \x15o\xdb\xbd\xab\x96\xfdO\xa2\x8e\xd8?\xacQO8\x14\xd5?{F!4v<3m\x1e[\xac\xf6Z p\x81c\x94wa\xc2}\x05\xe7\'g\xc5R?\xf2\xc0\xa8E\nN\xa9\xac3\xe7$O\xebF\r\x05\xf6Y\xee\x9d\xf9\x85\xc3e\x89\xd66O \xc5\x80%\xeaK\xb7\xc3E\x0fm\x92\xd3\xae$\x12B\xc9\xeb;\x9f\xe2y\xe3.\xfd&\x9a\xb1\x14$\xb3\xd3\x879\xd5o\xd2\xefc\xe9\xfb;\xbc`\x97}UR|m\x01\x8d\xe7\x1akH3\x0eu:K7I\x89\xf6\xdb\x08\xaa\xc3\xd9\xc4\\]LDU%y\x91\x05S,\x84\xdb\x81\xa5\xe5\x96^)YU\xd39\x95\xf8\x06\xc5yi\xe9+2\xbd\x9d\xb4\xe4\xbd\xc6$\xc9`)_\xbaW`\xb4\xf3\xac\xb7<\xa8W\xd1\xc4\xe5\xfa\x1e\x80\xeaj]\xdd\xba]q\xc0\xc1\xf3\xefMt\xf8\x07\xd6gx\xaa0DX\x89A\xf0@\\\xa3\x84\x81>5\xb4}\x84[\x9c9<\xfat\x92Y\xa0\x9a\xe6S^ ^\r\xe6!Q\x1e\x06\x95q\x0bS{\xe9\xad\x14?\x1c\x1b\x04\x8cv\x05.\x96&*^3\xa4\x9d\xcf\x81\xde[\xa2\xcd\x05\xc5\xde\xe9r\x18\x8a\x7f\xe3S\rMBw<\xf7\xb3\xd9:\xca\xc5\x15\x1d\x0f\xb2K\xf1\xb8\x80d\x89\xfc\xdd\xe9;w\xed\xcf\xa2\xa3\xa6\xd9W[\xf0\xf6\x12\xd0\x0f\xcc\x1f\x0c\xa1\xf59\xb5k0:F\x96\x97\xec\x8e\x90\xfb\x80\xbb\xcb+\xcf2\xdbl\xd9n\xec\x05\x0c\x94\xa3\x82\xbe\xf1d\x0e\xbb\xc1\n\xd86^\xae\xe0fpuu\x13\x1f\r[\x10\xc6 \x11\xdb\xf4\xfe\xa2q\xe9!;\xd0N\xe3\x1f\xac\xfb\xcd\xdd%\xfa\xaf\x0b\xf7\x92T\xe0\xa5Y|\x14k\xd4\xef`k\xe4\xcd\xf9\xbd\x96l\xbf\x13\xe5\xb8L\xa7H\x05\xd4V\x13\x0c\xf4\x90\xa2\xac\x1dt\xe5\xdd3mhk\x80/S\x0e\xceS+\x8f\x02\xefda\x12}-)f\xc2Z\xe8\xea\xe7;\xbf\xfa\xcf;\x978n\xd1\xf8\xb9\xa0\xa8k\xa1nw\xee\x92*-\xa9\xe2$\x00\xad\xe9\x0c\xd5i\xd5\xe3\xa6\x12\xfeK\xeb\xd5\xf6\xf0R\x1b\xbap\x81\xca\xda\x15T\x8fs\xd6\xa9$\xf3\x9b\x00\xf7\x8e"\x94D\xd9=\xfb2\xec\x0c\x7fI\x8aFv\x91\t\xb0\x91\x93\x98v\x1b\x188&\x7f\x82\xa3r\xa7\x9a\xe0\n$w\xf2\xd8\x91>\xb8\x9c\xd0#\\@\x1c\xd8\xdc\xf1\xa9\xf8\xf5\xfa\xd1\xa6\xadK0d(\x96\x00M2E\x92=\xaa\x15~I\x83={w\x06\x8a\xfd/P\xf1\x9b\xbd\xcf&2h[\r\x8d\xf8"\x03d\x8f\xfa\xbb&CS\xbe\x83\x82\x81_\xd5\xb9\xba\xde\xe3\x85S\x16f\xb0\x89\x925\x11\x19\xcf\xa1b\x955\xaf\xf4v:Nv\x0c\xc7y\xd7\xa4\x8bp\xcc\r\xd4\xc3+\x8dk\xc7w\x0c\xc0\xcbGs\xcf&\xb3\xae\xe51\x02a\x1f3\xf8j\xe9\xc6\x9e\xae\xab\x1c\xb3\xa4U\xdd\xde0z\xcb\x9d \xa3 f\x1d\x82O\xe2U\x830\xef%\xb5S\x90wf\x18\xd7\xca*V\x84\xbd\xd6\xad\xdd\x9a\xb7\xab\xa7\xc8V6y\x17:\x17VQ\xbe\xcd\xf6P\x9cjB!V\x1e\xd8m\xc1\x07\xabw\xb4{nR\x13\x90z\xdf#\xce\xe2\xfb\x99\x14N\xec\xb5&\x0e\xb5KBQ\xca\xaa\x8a89,\xe1.)\x1f\x02\x08\xddWb\x10\xfc\x80\xcb4~)\x85\xc0fiL\xda\x89\xda\xd1\'p\xd2yD\'Lzf>\xf3\x01%\xb4\xa9\xb2\xa3\xbf)\x80\xd3B\x01\x9f0eC\x03\xd4\x89\xec1@Z\xe8\x992\xa5o\xdem=2Z\x97\xb9\xe8\x19\xd0\xa08\xa2R\xce\'\xd0Z\xbd\x10!j\xf2\xbb\xe56\xae\xe2\xa3}\x01v\xc7\xb4i\x82] 2\xc6\x83V\xd8\xb5\xed\x03\xa7655\t\xb9\xc11\xf1@\x86l-\x96\n\xdb\xf1\xc7\x97\xbbk\'\x96F\xb5\x94}\xaa\x13\xa7y)\x07\x14/\xc5\xa9b\xff\x97Jn\xa9\x85\x0e\x9f\xf4\x14\x19q"\xfa\x0f\x11\xdb+C7\xfb\x0e\x98\xfas.\xb50\x88Ra\x8d\x04l\x80\xf8i\xf2\x03\xab\xab \x9e\x97m\xab\x88@\xc8m\xbb\xfe\xb2\xee\x05\x90\x019\xfa\xdbq+\xc7Ln\xa0\x8f*\xe1\x1c)l\xe2\xd5%\xe2L\xc3:\x9b\x7f\x96\x19\x1deS\xa2\xc0\xf0\xe2\xf3C+\xfa<\x8d\xa6\xd4P}6\xea\x91h3J\xee\x01\x01d\x87\xa6=QK\xd5e\xedp"\xf9\xec\xaeb\xee\x9cUo\t\x07\x05Y\x18\xdfm\xc1\x97;\xca\xb6o\xbc9;\xe9\xfeg|\r\xdc\xba\x95-\'\xbd\x9b\xbfY\xe3\xe8\xdbsr0\xaf\x87\t\x16\x84A\x13\x07N\xe9\x8c\xa2E\x9f!\x81\x1fS\xd0^\xa2\xa8X\x81XK\x8e\t\xd9\x9c\xcb\x0b\x9d\xdbS\x8a~\xd7\xc5q[\xbfTW\x83[\xef\xde\x931\xdb\x05\x0e\n\xd5%\x07\x03\xfe2\'VG\x9aD\xa8\xa7:?\xba\xa3\xb9#\xf1\x04>S\xc2&O\xde\x95\x0e\x02\xd1\xa1\xf6\x99\x81DuU\xd6\t\x93\'@V\x7fV`\xf9^h\xbd\xd5\x8e\xbb\xb1G\x95[\xecFl\x8e\xd5\x95h$\xe8\xd0\x184\xba\x86b\xac\xf39\xca\x89.\xec k\xe0\xff\x073\x87\xd6\xb5\xaf\x9d\x18\x91\xe6\xf0\xd1\xa7\xf3\x95\xf7\xab[\xe7\xdb\x83\xdb\xa6L\xbf\xd2\xc8\xcc_cS\xd7\x81,l) \xcbV\xde`!\xc1\xcb\x08\x87\xaa?\xc7,\xf4\x0bST\xa3|\x8an\x0eyD\x82}\x83\xf2\x08]b3\xbd\xa6$\xa7\x04\x05\xaf\x13\x17\x1d\xcb\xcdr{|!\x8c\xefA9\x10\xd6\xccy\xf1$l\x17v\x1b\xf6\xa4\x0b@\xec\x83\xbe\x84\xc1<\x1a}\xf6\xb9J\xab\xcbO{\x92\xa0\xb8\x154\x018\\\x1c\xae\xbe\x1aU\xfc\xf3\x99$\x940\xbb*x\xd8\x1b\x07\x06\xf4\xba\xf9D\x8f8\x07N\xe8\xc0\xc0\x14j\xab\x94\xe0\xc4\x1c\xf2*\x9d-z\xf5\x9e\xfc\xbfK\xdf\xa5\x19\x8b\xd4e\xaf2\xd18\xac\x15\x10\x04\xab\x89v\x05\x7f\xa7\x92\x9d56k"\xe2\x8b^\xaa];\x98\xa4bK\xd2\x1b\xdf\xc5A\xc6G\xe5\x18q!\x1e\xa4V\xcch!\xbc\xaai5dD\x05z\xa2M\xb0\x8e\x9e\x0c\x1c\xfe\xf1\x9d=\xa1\xf2.\xc7\xdd\xce\xd4xom\xdc\x81\xdb\x06\x99/\xfd/\x1f^\x9d\x89Xw\xf4\x8d\xae\n\x01\xbf\xdc\xafw\xf7\xad\x8ax\xf8\x8b0c\xb8\xc5C\xb5\t\x86Ck^\x90\xb9\xbcO\x11\xcep\xa6!\x98\x90 \xf5\x1a\xac)\x8f\x80\x12\xfb3\xf8\xaa\x13\x15\xbd\xff\xca\xd1$\xd1\re\x1ao\xb34S\xc5\x0e\x0f\xfd\x96\x06@,X%\xa7\xc6K\x81\xeb\xfa*\n\xdf\xec\x87X,\x83D\xa4\xc5d\x07\x1fJ,\xb3i\xe27.\xd5Z\xcc+\x881\xe2z\x95\xc9\xf6\xc1\x14\xb8 \xbdt\x95\x10|v\xa6\x91>f\x8a\xe9\xad\x7f\x889R)rb2\xc9`\x89\x12s\xa7\x1aCS\x87>s\x8a!\xe7\xc7\x04}\x12\x81N\xb1\xb73\xe3\xc6\x91D\xd0\xd1]0\x95\xe5\xe3\xd7I\xf2\x1e\xd2 +\xd7L\xd9\xa9\xb5"\xb3\xed\'\xf7\xebI\xd60\x81\xff\x84\n\xe8l\x92\x88\xa7\xa4\xb6\x1e\xa5\xd0\x19\xdf\xaa1\x0c\x06\xa1\xbb\xbfe\x98gw\x89\x8d\x83,E\xd0.\xfb\x94\r\x93\xf6\x16\xbc\xc2\x8b#\xaa\xa7\x97\xa8\xab\xa3\xee\xa4m\x7f+F7y\x9b\xea\xb8L\xb895-\x01\xbez\x12y\xb6\xf9f\x1c\x16HR\xfa\x82-\xdaU.\xc5n/\x1d\xaaD\x96\xaf\x01\x93X!M}\xab\x92\xd8;\x9f\xa7\x80o\xb6\x7f\\\xa3\x7f\x0bf\xb6|h4\xd9\xaa\xda\xd3\xacGh\xb4\xb3\xa8P\xad\x91\x9e\x80u$\x9e\xd9n\xb4\xfa\x01s\xcb\xc5J5v\x8e\x14}Pc\'\x1e\xc7\xdadL\x17\xb2\x15\xc6\xaf\n\x81\xd5Z\x10\xef^WnS\xb7t\x1do\xa5A\x1fg\x03\x1e\xf1\xba\xb9`\x9eE\xb9\x1fj\xae\xdeL=\xd6N\x89^\xf3\xc1\xc2\xa1\xeeM\xbb5\xad\xa4\x0cZ\x17\x01!\x8dY\xf4w\xbb\xba\x03\xf0\x1e\xa1\x11\x13\xdf\xb1t\x00k\xc6\x08v\x1d\xa7l\x9dz\x85G\x99L\xd8HaY4\n*t\xa0\x91\xb5\xf1\xbd\xd1\xa2\xd7\x86\'`\xbdJ\x8d~b\xcf\x82%\xc4I\x8a+\xd8d\x8f\xff\xfb\xcc\xd9\x8b\x7f2b\xa3\x06\x03\xc3\xdf0\xcc\x12\x1c\xd2\x19\x7f\xb1\x000\xe5]\n\xfdix\xef?\x86\xfe#\rv\x18M;TL\xe6\xe6\xe8}\xf7\x89k\xb5\'\x17\xaf\xacg\x00I\xe6\x15\xd7ZG`\xe4\x82\x81J\x93X\x17m*\x7fs\x1e\x8edCS\x9b)\x90\xe5\x01%D\x8e\xaa\xbfQ\x18\xa6\xb0\x16\x0f\x966\xd4\x07\x864\x96+\xbb\xa8d\xe8=\xed\x18dd\x04t\xea" \xfb\xe5\xa4V\x96\xfe\r\xff5\xa6\x07\'@w\xf7\xda\x1be\x1a\xf4<\xac\x1f\xfc\x10}\xbc\npNS\xbe\xc2&X\xb5\x18\xeb\x10\xb30\xa09("/\x12;`\xe0\x12RO\xd5\x1es\xc3\xd3\x0c\x8c\xa7\x98\x08\x84\xf4\x0b4\xf9\x99\xe2\x81\x9b\x90L\xf5U\x0b\xf2\xfb\xd6\xfav\x88\x9b\xdc\xc4\xc4\xeb\xf0\xed\n\xd6O\\ \x9a\xa1\xd7\xa5\xf8\xc9\x96az\x16p\xb8\xaa\xb5\x9b-\x81\x122\x81v\xe57\x0e\xb1\x95\np\xde\xb6O\xd1\x80w\xad\x99Q\xbbBi\x9a\xfdUf\x96\xca\xf4\xfd\x0b\x19\x8bu_P\xa0\xc8+\ti\x17\x96.]n\xec\xef\x1a\x82\xb0o\xb3\xb4\'\xb8\x99u\x0e@\x92*\x00\x0f\xa0J\xae\x96\xc7\x86,,l\x84M\xfe\x1d\xa9\xf9\xd5qT\x11\x97#\x86A|\xc8\xdd\xe8\x9e6\xc5Wy\xb0\x03\x9f/!l\x11\x89\xb3\x00cq\xee&\xb0\xf3\x99g\x06\x13\x95f$J)n\r%20l\xde\x13\xf6\xf6\xd7\xf4\x81N{M:\xa8\xab.^\x80\xee@\x8e`0\xe2\xa9>Z\xd6\x9f\xf4\xbfA\x1d\x85p\xa8\xad8\xa0\xf6W\xa2\x80-\xaa\xea\xac\xcbj\xa1L\xc8\xc1\x1c\x9f\x8fQ\xb6Q\x17\xfb/\xcf\x8d\xc0\xa2\x95\x02\xcf\x92:\xb6\xfc\xfc\x91\xdc\xa8\xd8\x8d\x91\x0f\xc2\xd3\xbb\x97i\x96C\xbff\x8d\x10O\'z`\x97\xf5\xfe\xa1\xaa\x133U\xec\xdc\xb4\x8a\x9d\xce\xa1\xe5+8;n>.\xdd\xb5@\t\xf8\x8c\x1a\xf6\x01[t\xbe\x17\xd6\xbak~\xe5@\xae\x17uW\x0f\xbf1E\xf8W\x131:\x90B\x93L\xfb\x9d\xeaZ{\x87KPY\x98_\xfdO\xac\xc0l\x00u\xac\x8d\xf7\xd40\xf5\x8f=\x00,\x05\xfb\xd6`:\xa9\xf7\x00M2\x88\x1a\x9b\x94\xa50\xb1\x9eC^\x119\xba"\x1bf\xde\xf7\x97\xb6\xcd\xf6f\x9d\x03z\x1f\xb1\xd6\xdc\xbd\x06h)\xbcZW\x18\xd4z\x07\x94\x02\x101\xab*`#\xe6|\'\xd9\x0c\xf2\xa5\x96\xb7\x14\xff1\xd7\xb0\xc8\x10\x8bQ3\xc9\xddx(S>BD\x8f^R\xd7;\xd2J\xf1ds\x93\xc2\x90\xfc/\xbaH\x07\x03W\x0e\xbd\xca\x92\x0b\xd8S\xf6q\xe4\xdf\xcbdu\x11 \xac:\xc6\xb7\xdc\xdf\x11\x8f\x90\x17F/\x14\xf5|L\xe1j.\x16\x8c\xe4\x8f\xb4/H\x1f\x05j\xd7:\xadX\xb6\x96\x04IK{\xa0\xdb\xac\x1f^#]\xa9#\x02\xdc\xa3ohc\x1b\xf0p!U\xa61\xa2_\x89m\xb3\xdao;i\xd9{i\xd6SX\xa1\x1a\x07\xc2\xc0\n4\x8a\x06\xea\x91H\n\x1dQ[=\xe4\xb3S\x0b\xa0\x07\xfd\x80\xe8*\xc2EAU\x81q0}\x86\x89$=<\xfcu\xa8J\xb4\xb4d\x13\x04\xae\xdb\xacwe\x1c\xef\x04\x8b\xd7\x08\xc0tH\t\xee\xcf\x1e\xa2\x9f?\x01UEm\x18\xd8\n\x1d$\x1d7R\x1a\xbc\x88\xa5\x9b\x90l\x99uX\x83\xb2W4&\x8c_\xff}\x0e\xea,\x1dK\xbe\xa6\xe4Ld\x87Ao\x12\xef\x1aD{\x08\xb8\x1b\xe3\xb7:w\x0c4\xd7 \x1a\xc2\xc6\x07\x16%\xa9\x9a\x0e$\xd3\x99<`\x18b\x90\x89GZ$T9\x16\xe3L\xce\xe9\nkp\x94\xf0\xb0\x7f\x01\xa4\xb7\x12H\xe9\x9f\xd1\xedE7b\xd6U\x8a\x97\x9d\xc7\xb1\x0e\xb9/\xc9,\xc6\x80\xf7\x82X\'\xb3\x99h\xa7\xd0\xae\x03\xb0\xa1arqLQK\xd2\x97\x924\x8b\xce\x1c|\x91\x0c\xd2_\xbbI\xebEX\xffFD\xb1k\x8dQ\xae>\xf8\x7f\x07\x9a\xc7)\xbb\x1d>\xa7\x02\xac`\xed\xd0>r\tpi\xda\xd5\x06\x18\xd1\x02&\x7f\xa3\xe3\xe2y\xd6>J\x07\x16\x13]\x01U\xd5\xdf\x17\xd7\x18\x9b\xe2\xe50\xab!z\x18\x13\x03~\x18\xe1;\x85E\xd3\xbc\xd8\xa0\x1a\x8d\xd8\x8d\x08P\xd0=YH\xdb\x98b\n?\xb3\'\xce\xb6]\x9aw\xa5Q\xcbQP\xdaQ\x9e(\x81f\xe8\xa9\x06\xfc\x10\xcb^\xbc\x17\x89\xf60\x11\x7f\x1a\x07\xb7A?a\x05U;\xb2wS\xeb\x1d\x8a\x8f\x16\xbf\x19\x93\xfa\xd39)(QWrw\xa8J]\xfa\x9ea~\x9c\xc4=\x9d\xcfh\x9a\xf4\xf9`\xde\x15\xc0\xc3\x87\xd8$\x1e:\xd1p@\xd8\x11\xd3D\xc0DD\xea8\x80\x87\xa5\xda\xcd$\xc1\x14\xc2\x0beK\xee4\xff\xc5\xb7\xdd1y\xe4\xf9\xd9\xeb\xd8\xfd\x85i\xe9\xef\x16\x0c\xfb\x87\xa2\x1d\x1f\x1c\xec\xc8d\x88B\x05 n\x1d\xd8\xc0u\xacy\xef\x9a.\xaa\xa7S\xc9g\xb7,\xa1o\xf6\xb2j\xfe\x8fr\x89t?\x1e\x89\x12\xc4\x89\xf6\xe4\xd1\xca\x83\x9bYe+N\xc3\x0e\xb1\xba#\raj=\xf0\xdeec\x11\xcf\x18G\xd4r\x10C9\xd3x\xf4-\xef\xa7\x83\x91UR\xd1N\xe7F\x820u\xd6h\xb6_Ck}\x9d\xbe4\xda|@[@\x86\x02;\x83\x01\xd7\xdf1\x99\xe0\xed\x8bC\x13p\xc9\x96\x90\x8cQg\x93(\xf1My\xff\x1e\xa0\x9c\xf2h\xa6j\xfd2\xbf{Sw\x90\xad\xc3\xea\xcbe\x10\xaa\xfa\xf1f\x99\x9070\xbe\xc2Wfj\xd6J\x05\xde\x0c\xe7\xd9\x18A"\x935\xa6\x7f\xfd\xc2\xbf\xa8 g\x91\x0e\x87\xbb3\x7f\xc9\x94\x95i\xde\xc8"\x92\xb1\xe7\xca\xab\x8c\x05\xfd\xd3\xba\x19\xd2\xd1!=:]\xf22u\xbf/$Z{\r\x16\xfa\xee\x06\x96\xdb\xa8\xee\xbb7z6\xe0\xaf\xf9\x9eR\xdd\x86\x15\xf2\x1c\xab\xf2rZ\x85\xc3[\xbd\x05K\xb0\xded4\x0f\x97-\x03\x17\xa5,\x8e\xaa\xc9\x15\xa0-\xdf\x01E\x7fr\xaf\x1f\x06\xc6_^1i\xb8\xd6\xffhy\xb1FH\x0b\xa8\xd9\xb0\x9b,\xa3yS\n\xf7p.BH\xcc6G\xe8\xba\xbd\xed\x03x\xe5&\x0c\xdd\xa8:\x10y/uF\xb8?\x15@\xd4\xfe\x88\xbb\xfa{\xac\x9e\xbevqc\xf0\xf7\xb6\x84\x91\xdcAj&\xe6\tB\x02\xc7\xbc\xa0G\xcf\xda\xc6\xe2\xb0\x1ax\x9e\xe9\xcf\x1f\xc5%\xd4\xadP\xaf8\xb2\xb9\xe9\\\xa1\xdff\xa4\xd8\x0e-r.\xd8\x1aw\xb1:mB\xeb\xaf\xf9\xbc\xc4\xffg\xd8\x0e\xe9\xf2\xc4x\x05Z<\xe5G%8\xf3\xe6\x94\xf0`0\xe7\xc98\x83e\x7f1 WC\'\x04\xbb\x0ebOB*.\xdb\x11\x8ec\x8d\xf7\xcc\x94\x10\xd8\xec\xe6\xa5\xff\xc5\x1a+\xf9\xabm\xc1*\xbc\xf72d^\xcc\x01\xd4\x07\xbd\x96E\x89\xf3\xfb3kG\xb3\x15}!\xb1\xa1S\xd7?ym\x91\x8c\xc0|a\x9a%\xb8oO@j\xc56f\xed\x85\x8b\xb8\x83\x872\x1d~') diff --git a/dist_obfuscated/src/orisys/UnstructuredGrid.py b/dist_obfuscated/src/orisys/UnstructuredGrid.py new file mode 100644 index 0000000..6724d94 --- /dev/null +++ b/dist_obfuscated/src/orisys/UnstructuredGrid.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.763914 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00(5\x00\x00\x12\t\x04\x00\x04G#k\xe1\xbd\x9fU\x96\xafq\xacZ\x19\x16\xc9\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xdb\xeb\x02VX\xe8\xe1\xf6\xfcP\x1f\x94\xc9\xd8S\x99\xb2P\xd8\xf5\xdd\x8a\x94g\xec\x17;)5\x1b\x80\xf9\x9b,\x90\xa2\xd5\xcd$jy\xea\xb9\x9e\xb8$F\x97\xa7odL\xc2\xb3\xea\xc8TX\xa0\x93X\xafEWC\xff\x15\xda\xd1\xa4\x0c\x8ds\x13W\x9d8\xc7a\xe8{\xb4\x07\x99\xe2\x96\x9a\xd7\xe2\xdc\xcd\xb2%q\x93\xce\xf5\xb0\xc7k\xa5a\x80\xebr\xe2\xde\xb1kW0\xcc<7BU\xbd\xae\x8fd\xed>\t\xa1\xfe\xc9\xda\x0eK\\\xe4\xaaCD\x08\x14\xc5&V\x8e\x8cd\xb2\xa2\xe5R\xee\xfd\xad\xdfk\xb3\xdf\xc0z\xf7>\x13\xcb]\x12\xf9\x8d\x1fh0\x1a\xbee\x9b\x1cm#C\xdc\xc8\xc7\x82e\t\x93@u\x86\xe0x\xf4\x1b>1\x18igK;P]\x1e\x19\xaa\xf5:\xb8-EZ\xb4\n\x8ejF\xf6\xcbH\xb5\xb9M\xd5\xa8\xbe#n@\x08\xdb\xd8\xef\x88\xe0\xf5)\xf9G\xa2\xed\x91\xfbH\xa5\xe7f\xac\xc3\xc1\xa65x\xb2\xb4\x9c\xe4J\x8b\xaa\n\x0e-B\x90\\\xeb\xf9I\x83\xc7\x84\xb10Dm\xc2\xcf\xb4\xf3a\x0bE\xa1b\x80\xbdPGL\xc1\xda\x041d\xd1\xa9=\x8b\xda\xab\'\x87\xff\x94\xcc\xda`do\xa4\xafk?r\xe8\xfe\xa8\xdd0|\x04}a\xf8Jq\xe0q;\xdfO\x91\xce(MU\xf9|-\xa1 w\xed\xfc\xfc[!j\x9b\x07\xc3\x1b\xd2\xc6\xa4y\x97D\xca\xce\x11\xb7e\xf5\xa9\xe2\xdf\xf0x\xf7]^5\xe0\xcf\'\x126\x11\xb7\x7f;\xc6\xd4\x01\xbf\x94\xa6\x16\xe5UrH\x85\x1d{\x95\xb4-\xffK\x14\xe6\xc3\xcfYuM\xc3\xb1D\xc9K\x16R\\J\xf8\x0b\x0f\xe9v\xd7\\!\x10\xb1\xf8\xdd\x89\x98$\xbd\xda\x81\xb2\xa6\xd5x{\xba\x1a\'\x82\xdd,\xf0\xfe\xe6\xbf\xd5\x1d\xber3\xb0\x11\xf8Lk6x\xf7Q5r\xba\rs\xf4\xf9\xd2\x1cZ\x9b\xc0\x85*\xf7\x16\xea@t\xfck\x9bPm\x1e<\xac\xcc\x0e\xca^\xd9\x1b\t\xc6\xdc\xd2R\xeb\x9f\xd8\xfdk\xf0\xedE\xe7N\xbbs)\x17\xdb\n\xde\xa0\xe2\x94\x88\xf9C\xd8\xc8g6T\xce\xa6\xb9\xe9J+\x83\xa4h3)\xa5\x1c\x83\xe4\x1d\x0e\xac\xd3\xc2\xa3;\x90P/\rDZ\x84<9E \xf3\x02\xf7\xc3\xa3d\xaf\x02\x9a]K\xcaX\xdb\x1a\xc4\x89\x8e\xac1ZA\xe3\xcc\x1e\x1c\xf5-\x0c\x17\xce\xde5GB\xac,\xf8 \xa7\x82xL\x12\x8f\n\x0c\xc2Qv7\x9cN\xe2\x8fw\x93\x96\xdc\xd2\xcf\x9c\xfaA\xf3\x9a\xc3\xeb\xd6\xa4\xa4\x17f2\x06\xec\xa9i0\xa5\xac\xc0y\xef\x0b\xf5\xbf\x9e\xa5\x0fI\xc0sg!\x97I\xdeF\x1f\r\x19\x19#\x1el\xe8z\xa1@\xd1R\xbb\xado\x19~\xfe\xeeIW\t\x00\x15K\x88_Kv\x9d[OC\x8a\x0e\xbbCQF\x01U\xb7\x0f\x11\xecJu\xb0\xa1\xbd(\xe5\xe5>?\x0c\x0f\xdc\x9d&\xd8I\xba\x86#\x01\x17-\x84\xa8\x86!\x894~G,)\xfb\x06\xa6\x91\x12\x9dm\xf6\xebDwR\\\x89\x16\xa9\xd3\xd8\xe47\x9c\xadu\x02>\xc7}\x03\xeaS\xd9\xa1@\xe8[\xf6T\xaeN\x884Q*\x1c\rx\x1ft\xce\r\xef\xce\xaby\x96\x9e\x04\xa3\xd0\xae \xe7\\\xb9MZ`\x88\x85\xf7\xe3\x13\xef[s#j\x18I(g\x12m\xb6\xac\xa5\xce\xe0\xb4M\xb5h\xce\xd1\xc6d\xac\x9c\tQ\x92^\xbc\xd5\xf3DS+\xa9xA\xefv\xea)8\x02\xdb,4x-~\xccj\xec#4O\xdfg\xd8\xb9\xc0yJ\x96<\xa1\xbcT \xbb\x14\x98\xdf\xb8\xb6\xd7\xe4\xba\x8c>\xbf\xd5\x08\x0b9\x93\t\xb5\xee\xd3\xfa\x8dv\xd0\xa8\xae\xdf\xf5\xcd\xfd\xc6\x01\x84M\xb2A\x99\x9d\x92b\xb2?,G\xf6/c\x1aI1\x1a\xebS\xc7\xb9\x89\xfb\xdd\xd7f\x04\xa1\xfdW\x886\t\xdarm\xd3-a\x90]\r\xae\xcc\x06\xc6q\xe8\xf0\xdfp\xc3\x18\xd8@\xb2\xf4\xd7\x13\xdb\xcf;\x87\x9a\xac\xa3\xf6x\xbb\xa7\x1d\x1a%\x8f;;I\xa1\x8f\xd97\x19\xb0\xb9\x88n\xb1\xc7\xdb=\x9d\x97S\x15\x84\xbbh\x7f\xc4\xf9\x93\x84\xd9\x0b\x0fK\x9f\xd7\xd9\x13aYYUd\xee\x13\xf6\x1e\xc5\x98\x0f!~\x0e\x9d3\xa1\xe4\xa0\xdb+\xe4\x04\xfe6\xd5=M*p\x07\xc5\xb6\xd5H\xe3\xbd^"zp\x92\xaf&\x7f\xd6.\xe3<\x8f\x99\xc5\x83\x04c\x1e\x89\xbd=~\'o\xbc\x0f1\x0c\xcfh\xe9\xfc\xe47z\x03D\xcc\r\x7fG\xd8\xcb\xcd\xc3\xf9\xb0<9\x9dn<\x9ao\x95H\xf2\xdf\x89\xb9\\\x99\xb6\xc8\x82P\x9f\xd4\xa5\xe0\x98\xf8\xea\x9a\x1e\xf4\x16\xedk\x17J\xa6\xc2C!\xeb\xe1j\x1d\xd0\x8a\xb8Hlgp\xcf\x8a;\x8fI\r\xaf\xd1C\x86\xd0\xd8"\xe6k\x95\xc3+\x140\xff\x8c\xcb\xb3\xb0H\xa1a\xba\x0b\x1a\x8f2S\x7f\xa7G~\xd5j\x84nR\xe2<\xbdYw\xc6\x16\x89\xde\x98\x13\xde%\x04\x05F\x82\x9dj\xf1\xc1Qx~0.u\xe7\rZ\xb4\xdb\xad{\xb6[x\x07T\xe3\x98\x8d\xf7\x1d\xc3\xa1\xb9\ng\xc6,>6~,\xe7fC\xa0\x84$\xf0.$\xbb$\n\x9c\xf62\xf6\xcb\xbb\x91y-\xfe\xd8\xe7\x10:\xb0\x8c\xb5\xbfW\xc5\x05\xd3-\x8e$\x11]\xad\xd3\x80\x13!\xbb\xc7\x04\x93x\xf4\xa9\x05%L\xd5\x95\x87nY\xb6\x10\xb3[\xb7\xdc&h\x1c\x1bw_\xd1\x8c\x9ep\xfb\xec\x19P]+D\x1a\x9a\xe6V\xec\xd2P\xbeko\xc5\x16\xdf\xd3\x94\xde\x8fA\x8fA\x86M\xfa:\xd1\xa9\x1b\xf0\xad\xb4#\xf3\xff\xf27~\x8b\xef\xcc\xbe\xf4Aq\x03\xb4\xe9\x80*\x18:7\x89e]\xcc\xf4+u\x06\xd2J\x95=\x8fH(\xdb\x9exe\xc0n\xed\xe9B\x90(\xdc\xf5\x8ae:6\xca\x80\xf6\x0c\xd6Q\xbdk\xbb\x0e\xa29I\x89\xb7\x04\xebU\xddX\x81\n\xc9\xd1 \x1e\xd7\xd7y\x0c\x1a\xb7\x0b \n-g\x95Jc\xc8\xdd\xe5\xa6\xf7\xdd\xdds\x83\x8aT?\x9d^?\xd1\xe8m\x94\xf4\x1a\x1b\x02\xa0\'q\x83\xdbnA[\xa56HC\x1f\xd5+\xd1\xa9\xf9\xfe\x05xd\xf7\x123\x8d\x021\x14\x90\x08c\xbd\xbf\x8e>_\x03\x9d8\x1b\xee.\xfe\xb8\x93{HqT\t\xb9\x19\xccI\xdd[\xb5\xfd\xdfS\xc8,\x8a\xaf\xfc\xa6\xb8a /\x97t\xabEl\x89c\x08\x15\x8e\x96.\xb0-\xaeR"\xd5[pk\x08\xa1c\xfb\xbe\x13\xed\x16@\xfaw5\xbc\xcd\xec!\x94\x1d\x8d\xb5l\xb9\xbd\t2@F\x8e\xd1\x1b\x14\x1c\x08{\x8c%B\x7f\xcf\x1cP\xd7\xc5}z\x9a\x07I\xd8\x18\xf6\xad\xddYv\x9d\xf7\xbe\x97\x1b\xeb\xb3a\x13\x83\xaa\x19\xcf\x19X\t\xee\x0e[\xcd\x1aZZF\xfae\x0b\xa3d\xf9\xd9\x9f\x83\x9e\xd7z\xe7\x1d\xb43\xc4/\xc1\xc5\xdcC\x90\xda\x961\xf0\xa6\x89D\xfbZ5\xffF\xa9\xc5\xba\xde\\8\x98\x94 \xe5\xbf)\xf2\xb0\xa0\x99Qv\xbb\xe3\xe9\xef-q{\xa0?\x93c\xe1\xa7rI\xe8\xd0\x02\xa0d\x02\xbe\xf8\x1f\xbfHKl\xbe\x16\xcfu\x83\x18yj\xc9M2\x9e\xe8g\x1c\xdbx \xbd\x0e\x82\x87\xd3W\x86\x8ez\x12C\xe7\xad\xa7f\x82\x08|\xbf{0\xa9\xac\xfdlD\xac\xd0\xd8\x92\xa2\xa9C\xb6\xbdp\t*\x13\xd7\xa15\x0e\x0f\x96BH\x00\xe8\xdb\x1b\xaeJ\xbaqw\xe8\x1b\x8c\xc4\xf0\xf2\xab\x91U\x03\xf6[\x1e\x8c\xc1Y\xf8:\xa5Zq\x96\x0b\xaeI1\x92\x04"\xca\xfc\xbcW\xa9-/\xd3\xc0\xa4\xd5 \x1a!:\xcd\xe4\xa3\xb0e0^\n\xcc[(cV\\k\xc5\xf76\xed,S\x16\x1a ,\xd47$\x1fP\xe2&\x0f\xdf9\x0bf\xb5\xe3[\x1d\xd1\xea==\xc3\x97\x9c\x9c\xa7>\x13N1\x9c^\x0cr\xaaP}\xf4\x12\xab\xb8a\xd3U\x83]\xd1\x12\xf1\xc2E3\xdd\x11@\xd8\xa3\x19\xa4\xb7\xd7\x1d\xea]\t\xed9=0\x9d\x7f3%n\x81\x9e)\x01\x91\xff\x84\x808"!\x96G\x93\xcd(.\xaf\xb2\xdb\x83\x0eE\xd5\x18R\t\x16V\xfbF\x83\x83\x84\xc7\xbe|JR\xc1\x8dgTW\xcc\xb7\x94\x1dv2\x8b\xb7,q-O\x9d\xf6\x0c\xe0\'\x1d\xd9\x9f\x94\x9a\x0f\xbf\xe0e\xd0\x905I\xea\x04\xd2\xadV\xf7\xd0\x192J\xa8yV\xb5\x1ah|P\xed\xd3\r9\xfb\xa3\x9cd\x13\xc6\x1d:\x06\x06a4Y\x04P\xd4\x1fP\xe7\x0f+\x9f\xe1\xa9E\xb1\x81\xa7f\x18C\xde\xfb\x1b\x94\xae\xd8\xe0\x9f\xf0\xd0}\x91\xb92\xe5\xb5\xdf\x13\x1d\xef\x15\x90\x0b\xe5\xdb\xb2\x1a@+{*)\xf31\xbdL\xe3\xa4\x87\x10\x04\xaf).\x92\xc2\x98\x04/ \xb8\x91\xa2\xa4\xbe>\xa9\xca,\xdco\xb2\x96R\xe8\xa8a\xeec\x04\xc2p\x86\x06\xd6M\xad\x14\r\x80\xed\xd4j\x06\xa1\x1d\xc6oH\xd6\x93\xb0\xcdR\xb7\x7f\xda\xf9\\a\x10\xd5\xf9\x99\xdc+A\x13\x07\xae\x8ao\xe6A\x92"\x1a\x85a\xf5YS\x94\xe0R\\2\xe2\xd2h|8\x9a\x93G\x8c\xf1\x888k\x0eK\x9b\xba\xe3\xe4s\x1dhd\x99\x964\xa3\x0c\xeb\xadm\xe9\xc5!\xec\xfdys=\x1a\x94&I\xb0\x98\xeaIVu\x10h\xd9\xfd*\xc7\xb1\xa7\xc5:\rC\xee\x02\x89\xd1\x1b\x1d1,\xd7\xf3\x17\xea\xca\x0e\xbd6\xb1,\xf4\xd1P\x92v\xe9$\x06\xc8!a^\x12/;\xea\xa2y\x08S\x9a\xa4\x1d\xc3K\x83\x9cd\xc8\x05\xc1\xc6chR=\x8f\xe0\x9b2\xd2\x8a\x8e\xe5D\xb5\x00\xcb\x02\x8b@\xedm\x13\x84\x8f\xbb\xcc\x8ew2C\xcct\xc8\x8e\xc7\r\xe8.Vf%\xd9{\x9b\x8ce(\xd8\xc4k}\xba\x02*\x08*~\x97V\x02\xedz\\4\xc7\xe7\xe65)\xbf\xaa_+\xdf\xccc\x86\x84#\x97sx,;h0VT\x8e\x9e`\xc9#sU\xaeY\xf4\x07\x8f7\x9b"~^N\x074\xac\x11N\xee\xfa\xc6\x196\xe9Y6\x0bEcY~!\xd8(\xc1\xc3\x92k\x03EO \x8c\x85\x06\xf8+ :\xa1-\xf3Y5:#\x8b1\x9f\x1a\x03^\xe9z\x833\xbat\xa5|\x1d\x02\x0e\xe3\xc1\xf3Sq\x00\x15\x03\xe0\x8a\x86\x9bk"\x7f\xa8P@5\x1cv\x80\x89Oh\xa4a{\xce\x16T[\xe7\x8b\xfa\xd06\x0b\x8b\x0eun?6(!L\x85\x95#l\x1f\xb0:\x82\xe2\x9a\xd9F\x05\xc3p\xdb\xc7q\x0b\xbd\x10"\xcd%sL\x8em\x93\xdb=\x85\x85\xc1\x80\xc3\xee\xaf\xc5{\xb2\xb0+P\xc7\xb2_\xee\xc1Pu\xc1T\x8bo7:\xc5\x1a\xff\xa4i\x9f=\xba2\x16t\x1be\xd5\x9f#\x91\x14\'\xef\x0b\xd1\x02\x96\xf2\x0b\xff\xd7w\x0e\xdat\xa4\x11\xc2\xb1\xaa\xe7M\xde\x82#d\x8f@\xc4\x01\xa2\xeb\xaa\x0c\xbfM\x9amsw\xc30?\x04\xc8\x81\'\\\x7f\x1c\xed\xdb\xde\x97\x1e_\x1b\xffp\r\x97\xfb\xcf\xeb\x08 3\xf9\x072$\x8foCx\xdc\xa1q!\xf1\xb2\xbb\xcb\x00\x19\xa1\xf4(\x8d\xcc\xa8\x88,\x82Dm|\'\xea\x9aL\x89`Z\x16b\xd8(59{^\xb0\xf6\xb0\x89\x99\xd7O\xc5*>\x85Z\x1dR\x14\xafS\x96+\xa2n}\xdc}\xa7\x02\xe2<\xda:\xd6\xc67\xee\xceJW\xe7@|M\x8b\x03n\xf5Qu\x1329\xcf;R\x8f6\xb1\xe5\x8c\xd9\xa9!\x85Y\xe3\xb3\x03\xa0\xd0N\xc7u\x11\x9br\x0b@\xe7\x82\xaa\xc4\xdd~\xff\xde\x01-\xfb\xe5\xbe\x85K]\x1cc\x07a\xe0"rE~z\x13\xff\x8ee\xd4S\xe8\xb3\x0e\x8b{\xf4\xad\r\xd7\'~\x0f\xa0\xd4\xf5\xe0q\x9c<\xef\x1a\xf4uJ);6\x16\n\xa0\x8f\xb6\xa7\x9dEi\xbf(7\x91j\x83\xf6,\xc8/g0\x17\t\xe6\x8d\x110\x8b\x11\xdf\x9f\xcdL\xf1*\xb7\xa4\x1d]0\\\xc7\xae\xc4\xb0\x1e\xe4\xeb"\xaf*\x08\xf1\xf3\x16,8\x80-\x93^\xb36\x04?\xac\xfd\x18\x13\x07\x19\xa3u 2\x19Q\xa9\x92\xd4ZH\x10\xc7%\x95\x992\xe5\xf9\xa8X\xfd\xdb\x1e\x1bY\xc8\x86d\xfe\xd6+\xfdH\x81\xfc\x8c>\xb5\xfa{\xb9f\xe0p\x1a2\x9a\x01}c6\x0c6%|\xbbW\xc2|\xc5\n7q\x14\xc0S\rr\xcb\xf4\x86d\xc6 5\xae\x1d\xcf$d\xe6\xebr2\xb9T\x8b\xfc\x9b\xe0\xb9j\x8f\xba\x96\xa8e\x87\xc1\x9b\x15\xafh\xba,\x14\x82W\xa26zb\xd6\x06\xfd\xec\x15H\xfa\xa5\xac\xdb\xad\xca\xa6V>\xbe,2\xb8+9=\xdc\x04l\xa7\xf5+\x902\xf3\x902\x18\xbb\xf2\x07\xcc|\xcd\xd9\xc2\x17x3\xc4mo\xf4v\x04\xa8\x94^[\xa1\x17\xbf\xc3\x91\xday\xa6\xb5\xe0n\x02\x96\x18\xd3\xf0\xa9:\xd8?\x0c\x08m\xdd\xf8dR\xfeD19D\xcd!\xa9\x85\xf99H\x0c\xdc\x80\xd5\x83r\x05(90v\x88\xa5\xbdl-\x8ao\x1f\x16\xec\ngQ\xf1\xcb]\x0ci\xa4\xfbj\xffDM\xb7\xfd\x8bp<\xaf%B\xaf \xd1\x10\xa0\xe4\xc3\xdf\x0e\x84\xe2\x9b\x8f0d#Ks:2r\x1fEQ\xe1{\xcc\xect\x14\xa7r\x87\xdd\x9fN\x14\x1f\xa2\xb2$\xc0&b;U\x95\r\x9a`\x1c%\x17\xdf\x16\xbb\xbf\x90\x9fQ\xe6\'\x7f\xfd\xbc.\xc7\xf6D\x92\xac^\x12__\x84\xdf\x0b\xd7$\xe3\\.\x1d\x8a\x97\xcb\xcc\xfd\xddog\xd9\xa3\xf9F\xd2K\xc0P\xd6@\xe3^\xed\xf7\xb9@\xa5\xa1\xce\x03\xee\x8a\x04,\x02\xf3\x17\xf6g\xe5\xca\x13>\x92{\x1a\x1d\x0f\x1c\x12\xbeR5\xcf\xdfw\xbc\x16\xe4@C\x12\x88\xde\xd2S\xac\xaeN\x15\x9cf\xa7I.<\x9d\xf2\xaf`\x98\xfdHMtF;\x98\xd7ph\xb55\x8c:\xa5p*\x10\x138\xdd\xae\x0c\xcdg\xd0\x8fs\x81\xa3\xc0\xb1\xb6\xfe\x1cS\x03\x1a\x891\xe0X\x1dYD\x82\x89Pl\xb8q\xff\x9b \xd9e\x1eW.\x91\xb1\x87/\x8b\xde\xd1\xc5\xaa\x80z\xb5q\x84\x10<\xa3\xd3\xf9a\xe9N\x12\xd06P\xc4\xd1B\x8fc\xe1Y\x17\x08\xc3\x0b\x16G\x05yhq\xa5\xc1\x12\xa48\xf0\xeft\xd9\x17\x145\x97S\x02\xcbW2\xc5\x82\xe5\x9d\x99\xb7\xa4\x90\x9d\x0fs\xe9\xb3\xac\x89\xa4\x08\xb6WD\x977\xde\x8a\xff,\x9e\xc9F>2\xb8\xd2\xa6\x84\xd2\x8c\x85\x0em\x90A\xd0\xf3j\r2S\x1b\xd2t\x06@\x1d\xde6\xff0X\x13\xcdy|\xd5\xc0\x1a\xae\x04\xa1\x8c\x19\xc2\x97\xd4\xe2\xd6"\xf2W\x02s\xc5\xf6\x94w\xb1|r\xc31\xb5\x97\x800\xed#\xd4\x1d\xb5\\\xc71\xbf_\x95\xe2t\xf3\xa4DC\x04\xa4P:\x12\xfa\xfb\x95\\\xfa\x8f\x86I\xfb\x17\x85\xe8\xde=$\xd1\x15\x0b$[E}\xc2\xdb\x98V\xbc\xb6\xc8\xd1D2\'\x0e\xa6\x9a\xf9\x9e\xdc\x0f\xb58\x90L\xbaN\x8e\x97\x12?\r\xbe2\x90\xa7\x92\x15j\xc0\xf1\x04\x12\xcf\x08?M\xf0~G\x84\xc3\xe5+l\t\x8c[M\x9d\xce6,x\x923q\xcf\xcfy@\x13\xce\xbc\xcc\x7fX\xfc\x0b\xbb\xbc\xd4*p\xc0\x04\xcf\xbb\xef\xdc\x15\xd9\x80\xc6\x8e\x9f/DV_\x1a\t\x08\x938\xbe\xad<\xcae\x16jU\xc0#\x038x\x83\xe9V\x1d\xe6\xc9\tB\x8cU%Yd\xb2S\x08\xbb^\x8e\t6\xe1/\x87\xaa,*L\xf7T\x14\x82\xe3_)\xa4\x94\x91\xa8\x81\x8f$\x89\xc5EJ\xe9\x94"y\xf1\xf69\xa9\x82\x89\xd6}=\xde\x01\xfd\x97iF\xd3\xe0\xa8.\x08J\xfb\x7fer\xf8\xc7=\x0cJ\xbc\\\xb9|\x89\x912 \x9a\xcb\xc6c\xd4\x1d\x8cU\xdd\x9b\x9f\xdd.\n\xa3\xe7[]&wG\x06h\xec\x19}\xf4\xc2\xe3?#\x14\x922u\xaa\x1b\xcf\xa0{\x85`\xac\xdc\x15\x0b\xcb\x99r\xdd\xeawMx\xfb\xb9\x92\x11\xf8\x83\x87\xb4\xd8\xaa\x16y\x17\x81\x00\xc4\xe0\xba\x0b\xc0\x026\xb2\xa8U\t\xc3\x87.A\xcf\xa2+\x01\x84\x93\xaf\x9d(\xe0AG\x9b\x11\xf6X\x03\xc75\xf7\xa2\xaf\xfe\x910Dz\xe9\xcaT\xf5x\xd5y\xf4\xff\xbb\xae\r\xeb\xe8\x86\xb2\xbd.\x93v&\xe9\xbd\x02M\xaeN\x9b/\xbd\xf9%\xfap(\xca\xd0I\xb0\x1aI@08\xe1\xe4\x98\x9b,f\xf1\xbd\x0brn\xb6p\x1b\xb2\x0cp\x80\xbd?o\xb9^O\xba\xa4\xccl\x1c\xf1\x84\xd2JpU\x7fL\x9e\xb5\x00J\xbf\xa5(G\xf3\xba\xec\xb7$x>_zXS\xc7\xbeP\xd1\xf8\xeaW\xc2\xa2\xb204M\x19\x15\xbb\xdc\xbft\x7fG F~\xe3\xdaW\xa2Mz\xa0#\xec4F\x83\xca\xe1\x92i\x02\x1b\x08?\xfb3\xc9\xdcDlA\x08\xe9\x7f\xc9I\x80h\xa7\xa9W\xc41\xcb\xd9\xd0,\xba\x18\xc2\x87\x18\n\xc7)\x88\xc5\xa5o\x01T\xf5\xfb\xb1\x0e\xf2\x8d\xfa\n\xf4\xdc\x91h>\xaf\xc0\x94\x88\xa5q\xa3R\x0ee\xcc\xfd\x17\xa8\xd2`\x97\x1f\xa4\x05!\xce\xdd\xd2\xd7\xe1\x92x\xeb\xd4\xcf\xf0\x1ci\xbc\xd8\xba\x8f\x99\xcd\x8d\xf2\x18\xce\xd8\x90\xa1<\xc0R0\xc0\x0b\x9b\x15Ndn\xd2\x06\xae\xe6\x95\xebH\x81e\xf7y\xdb\xd5\x00fF\xc0$NQ\xb8\xffF\xcelRF\x18W\x843\xc9\xb6v\xe6\xdc\x8fln\x9d\xa3\xa7\xf0\x83\x07\xf11@1\x85\x84\x92\x880,\x90g\xd7\xeco0\'\xfd3\x91\xe5s\xd3\xc9k\xd5J\xa6\x03\x9f~\xa1\xfb\xba\xb9S\xa9Mp\x9cz"\xa3\xaeO\x16\x9ep\xe7\x08\xc3\xbb\xbf\xd5\x85\xa3\x14K\x97l\xf8,\x08{N\x07\n\xd8\xf7\xb1Z\x87\xa8\x8b\xe0o\xcc-\xfbjr(\xf4I\x17\xea\xb5x:\x8e\x90\xc8\x82\xe6ip\x8e[ygL(}@\x1dr,\xb9\xd4\x81\xdaM\x86E"\xae\xa9\x16\x95{eZ\xb8\xf2~\xc0\x04\xe8o\x13\x06\xf4\xc1\xb1\xab\x96~\x05\xd7K\xa4F\xa2\xca\xa4\x19gf\xb1\xba\xb4\x9f\r\x0b\xeea\x87\xc3\xc0e;{&f\xc7\x9d\xe1\xeb[\xea\xb3\xeeQ\x8e\xf9g\xa2\xd4*\x88@\r4"\xc0\xdc\xaa\xe7\x80\xb9\xee i\xa3\xae\xecI1\x9dJ/\x842B\xcdI\x01\xe5&\x1cN\xee\x1b\x16)\xd6\xd5\x14\xb3\xa8\x19\xfeVP:\xfe\x0b\x0c_\xc9\xbb\xc2\x8ai\x919\x0f\x7f\xad\x94H\x1e\xd8\xd2\x99\x8ds\xa7\xca\xd6\xddt\xfcu\x1b\x1e\xb4c,\x85\xad\xce\xdc/\xce_x7\xda\x8f\xcf\x14x\xbe\xf8J\x19*,W!\xff\xf9PuF."]p\xacx\xb0\xa4u!\xb9\xd4\xf2\xca/\xdb\x80\xae\xd3j\x8aw\x06k\x0b\x7fa\xfd\x89+x\xf4\xfd \xa9\xb8\xe8\xd2+~\xab\xb6\x8a\xe3\xc0\x06\xc3)\xf4\xb1\x8a\x8d;w5_\x1bG\xd3i\x9b5M\xca\xd9eS>\xdfM\xdd\x8aqy\x0f~\xac\x90\x9d\ng\x915\xf0d\x9e\xf9\xc6\x1fp\xf9\x92J\xe4(\x91)\xb3\xef\x06\x13\x8a0\x15\x9dK8\xf5&\x16\xd9?\x89HQ\xcb\xe4\x9c^\x15d\x99\xa2\xb9m\xcc\xac`\xa6(\x99\xe6\xcb\xa3\xa8\x11\xa8\xbb&\x9e\xba\xd6\t\xb1c`\'/L\xa3\x19\x99F\x0e%2\x0c\xbf4\x12\xa7\xbc\x9a\x06\x80\x89\xfc^\x12\xef\xc2\x80q\x88\n\xca\x9d\x90/?\xab\xabe\xc1\xad\xd7\xb6e\xcf\x8eue\x0b[\xe5\xf8Q\xee\xb9\xb3\x994mm\rc6|y\xd0\xe0%\xc6\xd8\xc0\n\xed\xe5\xe1\xc3Ls\x05^OVc\x86i\xed|j"\xf8\xda \xd1\xe4\x9e\x92\xa6\xb4%q\xbb\xfdyH\xc4\xb3L\t\x99\x03\xf9\xd7\x15\x8eVd\xc7\xf57\xea};\xed\x8d\xcd\n\x83\xfe\xcb"\xe7\xe3\x18\x0c\xbc=\xf9]\x81\x97+\xd8\xd7\xbcXj\x1d2\xa4%\xe9\xe2\xcaO\x7f"\xc2\xcb\xcf\x90\xbc.\xe6@\x9e}\xed\xd4\x85\xf2=w\xd4\xea\xcf\x10C\xe8\x13~\xd9\xcd\xe0\xc8s\xe8<=\x8b\xa8\xfe\x89vd\x08\x939\x02\xe4 +O\xdd\x1e\x18\xdc)\xda\xeb{\xf5\xa6[\xcf\xd7V\x9b\x80\xaf\xbf\xbc\x0e\x05\x98:\xdf\xf3\x9f\xe7\xe1\xed\xb4e\x81\xe1\xb2Oh\xe8\xd6\xa52\xd9q\xda\xa7\x8a\\\xda)@JiI\x17\x8bI\xfa@\xcf\xb9\xb0\x07\xfa\xb0\xeb\x00SS\xa6?Y+\xad\xe9Z\x04&\xf7\xac1\xca[\xcd@7\xdf&\xe1\xa4\xce4\xeb\xcc_\xa1\xb1c\x1a\xb7$1u\xc3{1\xc2\xbaU8`<\xda\x95\xe5\'\xb0\xcf\xa4Pi\xd4\xcc@\x88\x91\'n\x91naG\x97\x8f[=\x11\t1\x17\xaf\xbcz\xb2M\x0e\x95d\xd7\xd9\x8a\xb9Xi\xc3\xe7o\x7fa#o\'\xdf\x01\xf4\xcb\x91\xd0\xa9\x8c\x11s\x80\xd4\xc8\xd2_\x17\xa5\x93\xbf\x0c\x0e\xa7{$\xf8K\x92"\xebo\x0bP\xf4\x16\xc4Ba\x8c\xfaHUgL\x87\xea\'\xb7J&\x92\x02\xad\xf2l+o\x1b\xe3\xfb6s\xd5\xb9A-\x9e\x99\x07@\xaf\xa7 \xa2\xff\xe2!4\xb5)\xc7&,\xdeu\x8d\xf7\xe1}\xc4NEM\xbd8i\x9d\x9e\xc79\xc3\xd5\x9d\x0c\xaf\xad\xc7\xaf\xb4\xea\xb9\xb4\x80\xc1\xe1\xd3\xe0\nw\xaa \xf1V\x07F^\xcb\xb9\xc6A\x92\xf7vM\x90\xd2%\xd6G\xd2\x8b\xbfYy4\x17\xe6\x0b\xd3\xeb\xff-! \xf6\xf7!\x05%Qx&\x06\xf6\xcfIJ\xcb\xc9\xbe*\x1a\x9ec\xdd\x1a\xda\x0b\x8a?\x18\xe3\xcfT!\xd0\x9e\xc1B\x18\xded\x05\xc7\xff(\x80\xa7S{\xac\x90\xff?\xc1\xf3\xe2\xbf\xb0\xbb\n0\xff\x1a>\xa3\xaf\xd3J\xaa\x19\x93\xc8ml7\xc0\xfa\xbb\xd7\x14\x1c\x85\xec\x994Omz)\n\x81\xd5\tf/K\x97[\xf23\xd2;~\x9e\xb9\xdfAo*Y\xd2\x9e\x85\x10\xd2rX\xab_\xf6Cem\x8a:r\xbb\xcfj4\xcb7\x92\x05\x9aI\x9c\xf0p\x07\xc0\x9cyP$\xb1<\n\xb0\x8c\xdaS\x946\x0e\x90\xe3\x90\\\xca\xee\xc6\xe3uL\n\xc4\x95\x0c\'\x90\x0e\xfe\xb1\x02\xba\x89\x9c\xef\x1b\xaf\xbe\xa1R5\xcc\xc7d\xd8S[\xb9\x88\n\x8bc]\xb3\xb9\x80\xd1\xc1\xe1=\x0f\x86\xf1uT\xb0\x1bC\xad\x01\xac\xca9\xef#\xff\x86\xa5\xe0\x91&\x9bd\x00\xb2\xaaP\xa8\x9b\x87\x80\xe7\xe9?Q\xa5\x83$ibr\xbc\xf7\xd8}\x9en\x0b\xb8L\xbe\xa4\xc1\x15\xedy\x08\xac0\xb0L\xeb\xa1O\xac\x12\xd3\xb5\xeeD\xc70kd,\xc475(\xb8`\xad+\xd5\x01\x1fBT\xae\xb7$\xcc=i/@&\x8dd\n\x8fQ\xc9\xa7\xae$\x04\x0b.w,|\xfc\xf8h\xb5i\xdfY\x8a\xae\x11\xe8\xa0\xae\xf2\xf4\xadW&\xca\x9be\x8e S\xaeI\xf6]\xad\xf4\x95\xc1I\r"94\xdfk\xbf#\xa2Y\xab\x90\xcd\xc8i\xda\x18\xc2\x9e\x84\xe2X\xdf~\x9dOE\x7fu"\x84\x00\x99\xc0\x8a<\xa0\xd84e\xbca\xdd\xedD\x88s\xcb4\x98g\x82:\xde\x01a"\x0fbe\x1c\x15\x8el\x02:\xb0\xd21\x0e<\x8e-\xd1\xef4\xcaO\x89T\x909\xb7\xf7H\xadLy\xd1\xa5\xfe\xdfo\'\xb6%\x8fWKN\x83r4\xc1\xc0l\xdf\xb3\xbfV\x0f$ty\xec8eBcR\xe6\xc8\xf4\xdd\x9f\x8b\xe0K\xa0\x9e\xe0g]f\x84\x08\x17\xf5)\xc1\x1d\x8f\x88W\x16\xf6!v2i\xd0\xf5\xfe\xf9\xf1\x04p\x8d|\xb9\xc5To4\xac\xc2i\xf5\x1a\x7f\xd4m\xeb\xcf<\xfd\xa97\xd3\xd1\x1e\x97e\x84\xfa\xc5\xb5\xcfm\xf7\xc7\xef\x1a\'J\xec2_\xb5z<\xb30\xbb;!\xaa%c\xe3"V\x11\xa2|\xa8\xe3\xaa\xc1\x04u\xf4\xe8\xa8\xc2\xa98A\xd5\xe6\x7f\x03\x95$\xcb\xdb*\xe3\x95\x7fH\x8f\xd9\x90\x8a#U\x00\x9ea"\x89$\xa8Y_\xef\x90\xd2\\\x0cu\xfc\xd3\x81r\xce\xd7I\xb7r\xce\x87C\x96\xd8!V\xb0\xa5\xe6\xed\xf30\x1b`\xb06\t\xbd0\x86\x81\xa5\xff\xf4\xaf%\x0eqr=\x10\x1f\xeb\xb0G\x1e5\xe0\x0b3+\x15\xd4\x8cm\x8b\r\xf0\xa8\x80e\x00r"\xfa\xdf\x94\xe2\\\xfc\r\xb6\x13\xb5-x\xa7o\xdd\xa4\n\x95\xd2\xb0\xabT\xb1)\xe7\x1c\x0b\xc4P\xc4\xe9\x18\xf0T\xc7\xc7\x12\xc3\xb8\xe2\x1b\x98\xbb\n\x7fO\x9a\xac\x16J\xc4\xe5\x99\x14\x0e{\xf3x$;\x99R`f\xfb/q\x927\xf5\xc4z\x8f&?7\x82\xc0G\x9aw\xccM\xbb\x83\xee\x03n\xa9Z\x07E\x84\xe0\xa3\xf3\x11\x83\xd8\x96\xfc\xf5\x1d\x90\x8e7\xf5\x9b-u\xf4L\xf7\x05m\xcdT\xf7\x93\xa6\x9e\x90\xce\x8c+8B\x16\xc7O\x18\x1a\x8f\xcbM\xff\xe8|;t#\x0c\t\x95\xb3B\xf1\xa9\xa9\x14^\x93K\x87E\x8bL\xfa\x1aV\xe5vP\xa9\x1a\x05\x7fUw\xa3|\x0b\x92\xfb\xe7>\x92\xe9\xdc\xc1p=\x83\xcb\x87\xe7\xdd\xc7\xc0\x93\x93\xfa0=\xe0\x1f|\xb2\xc8\xd4`y\xc4i\xcf\x8cO\r\x92\xe2Q\xcb$\xa7_\xbf\x92\x03\xbb\xb0/\xef4Cv\xa6)\x83\x86\xfe\xeavW\xc2\xd1v\x86\x9f\x95fP\xf7b\xe4\xa2\xe8\x02\x9a[\xd3\xa3\xf4\xbd\xed\x91\xecZe\x91F\xa4\xa4\xc3\xb3\xd3\xf9w\x9b\x8c\xe3\x90:\x88\x0fv\xcf\x83*\x15\x88\xc1\xf2\x91\x95\x93\xf1*\x00\xb5\xdbY\x87\x003D\xd5\t\xd7\xb4[\x18\x85\xa6B\xa1G+-\x9b\xdd\x99\xe2\x97\xba\xa6\xfb\x7f\xa9\xe0\x92^\xb4t\x83*)J\xa9\x11\x89T\x83`\xe8\xde\x10\xe6\x17\x08\\T\xf6F\xb6u\xc5\x83i\xd8r5\x12\xbfU\xf5\x7fW\xaaC\x984P\x11\xf5^\xd1\xa8\xf9>X\xa2\xcf$@F\xe8\x1bF\xa0/N\xb4S\x95\x1b\xff(\xc9_d\xff\xbc\x19u\xf4Q\xa7>U){\xc4\x11=r\x80\xa6\xae\xae[\xff\r=\x9b \xd9E\xb9|b\x14\x0e\x0c\xcb\xfdT\xb0Yua\xa6\x9d\xe9a\\\xf3\xd50\x1aJ\x9d\x17\xef\xbf\x13\xfa\xd8Cm\x8c\xc1\tq8\x88\x01K\x93\x81C\x8e(\x82\x88Mu\xe1\x8ax\xcc\x15X\x85\xb5\x13X\xc4\x92\x02\xf7X7\x8f\xcag\xd8\'\xfeJa\xaa61\x88\xab\xd8\xb8\x06\xd9\x01\xa3PI$\xa5P\x0er\xf8)ofP\xd2ef\xe9lW\xfda\x9fm\x9a\'\x93\xbc\xcb\xd5\x98\x1a^\xa59\x13\\\x85\xeao\xee$\xcay\x8bx\xef\xe1\x91\x0c\xfb\xd5\xbc\xee{\xe1&\'\xf0[1\xe0\xff5\xbe\n\x05\xaf\xcc\xdc\xc8\xcb\xd7\xc3-\xdb\xc8\xba Ud\xbc\xd4\x94\x19\xda2>\x8f\x1d# \xb7\xc6{t9\xd5\xa5_\xd5|\x01NZ\x8a\xad\x96`\xc0\xf5\x03\xa2AvZ\xdb\xad\xca\xd3\x1a\x87J\x80\x7f\xb1a\x84\xd0\xb8_\xfe\xd8\x83G\x92\x99\xafmMq\xefM\xcf\xce~\xf9\xd931\x8d\x8e\xdci\x87iz;\xfd\xc8\xb5\x08\x1cJ\xafov_\x1a\xfa\x80S\xb3\xdbn\xa7\xf3\xecn.\x1e\x17\xb9\\\xe8\xccdFPCM\xf1\xbaJ\x12&\xa5\xcb\xed\xf6\x9c\x16\xc1\x82\x08\xde\xbc\xfb\xb8\xa3\x90\xe5\xba\x98\xe2\r\x1b\xd0\xdf\x94|)\xed|\x85\x85e|\x90\x9c\xcc\xc0\xf0\x196\xe5#\xd1.\xe7\x8eP\xf7\x7f\x02\xd2 \xb6\xb2\xdc\x84\xaa\x1f\xacq\x12\xe5\xa4\xc0\x8b0\x12\'\x06X\x07\xaaz\xdaE\xf1@\xa0\x86A\xd7\x80\x9c4\xc0\xad\xec\x81\xf9\x06\xb7\xf1\x91hu\xd9\xe9\xc8\x83\x19Z\x0c\xc4uQ\t\xc5w\xd5\xa0\xf0I\xe9\xc0\xb0\x9cS\xce\xd3h\xd5FZ\xef\xac\xdbN\xe3^\x97\xa2\xab/\xc7)\x91\x87^\x07\x15\x8a\'\x8e\x9f)\xa0`\x93\xaeh%f\xa0\xb8Q\x98)uD\xbb\xaa;s\x93\xdat =\x86^\xcc\xc2\xb4\x0b\xf9\xd6\xd5\xfe\xbay\x14al>\x02\x89\xb5\x13\x1cR\xed\x89\x9b\xaa\xe5j`Y\n\xf7)R\xb2\xcbj\xfa\xbc7\x93\x02\xa9\x9fI\x92O\x1c\xbd\x12\xb6(\xc9^\xd9v\x14>HQ*P^\xea\x15It~G\xcd\x97\xecI\xe0\xf4\xe9\xc8(\xff\x1d\xb0\x93Y\x85Fl\xdc{\x10h\xff9\x80\x82\xd0\xab\xf9AGa\xd5\x86l>\xd7@$n\xb4\x04\x9ab\xab\x9ddN\xc7\x1c\xbfb\xa7\xe8\x88\x17\x1dY\xf15s\x8e\xee\xdf\x1f:99\x02\xbc_\xe5\x8d\xe8Z!\xb4W\x02S#\xcfv\xb6\\\xa0kdW\x02\x91\x87\xc4\xbc\xd9=\x8ci\x16|\xd6\xda\xf4\xaaV\xb3Z\xcb\xaao\xde\x9e\xc8\xd6\x0e\xfb\xc1\xf7d\xe88\xc4\x01r\x1a\x9d$\xc3\xeb\x07ru-P\x9c\xef\x1bf\x1e\xb7o\x9d-E\xde\x0c\x9c\xc2\\\xdf\xf0%\x97\xb1\x19\x9b\x00zP\xab\x82m\xed\x98\xf3\x11W\xbay\xc6\xe4\xf6\x82\x102\x0c\x82\x8f\x946\xec\xbf\x1cb\xd8\x060~F\x03\x9f\xcf\x98\x98\xda\x07\xca\x9b\xd8\xb9\x8f\x10\x1cY\x12\x19\xe6\xbf\xa3\x16Wh\xf5\xdb\xbe\xb3B\xdbLv\x04,\x9d\xa7\x88\x01\x94\x84\x91\xbdm\xf9\x9a\x80\xd3/\xc1oQ\xa09.\x07\xa1\xd3\x1f\xea\xe5\xcdJ\x06J\x7f\xf6\x03Kp&\xbah\x7f\x92\xac\x97\xd0O\xec\xe6\xf9\xb2\xb0e\x85\xae\xe8\xa0Q\\\x1d\x98\xe7\xe3\xff\x0f\x90z\xfeh\xfc\xf6#;\x80\x8d\x16\xad\xc2}y*v9\xe7\x83\xa2\xa1\xa2I1\x83B\xc6\xac\xe1\x8d\xc1(\x90*0s\xc7"\x8d\xe1\xd9\xa0\xact#\x1aCd\x1e\xb6\xf9\xee_\xe4uV\xc6a\xc8\xc6\x9c\xd5\x97\x97\x92\xb1R\x9f\xff\x8dlz\xf6\x9bNe\xd3\xf1\xaf\xd7{\x1c\xa2g\x00m\xca0\xca\xc1qx\xcd\x9bdJ,\x00\xf2\xdav\x83\x8f\xe6\xee\x8b\xce`\xa7\rL\xdd\xb6\x1b\x9c\r\xdd\xe0\xc3<\xd6\x99\xdd\xb1\xb1\x0e\x9c\x1e\x0biX\xc5\x85m~\x82S^;\x93\xb0s\xbea\xd7\xe35X\x19\xc6BI\xa0\x16\x87\x1e.\x87\xc4\x02a\xe1\x0e\xd6\x05q\xd9v\xce;I|\x1d\x97\xd4\xd7\xd5\xfb#\xc1s\xa4!\x87"\xd3A\xb1n\x15q\xaf\x95h\xb5\xa7\x82uqB\xec\xa3|T\xf1\xa3N\xd8\x07KO\x88\xf1\x11\x8b*\x96\xd78\xaa+ \tw\xac\xe6\x8f\xd7M\xdePK\x9e\xd2\xc5\x82\xe9m\x08-`\x16\xcc\xcb\xca\x1e|\x15\xb2`\xd42\xbfy~\xd2\xba\xf1\x94\xb1\xe6\xc3\x03s\xcf\x8a\xa1\x17\xc5\xa7\x85\x0f|Q)`\xc3\xb9K\x86%\x8a&S9\xe1\xa9\xaa\x1a\xefc\xca\xba\xd6\xf5\xe0k\n\xfdG\xf1t\xe6O\xe7\xeb;N\xdaj=\xbd:\xf7P @\xa9\xb9\x86D.\xc6L\x89\xc2\x17!\xca\x97\xe7CJ8\xceU\x1a\x92e\xb9\xf1\x19h\x1d\xab\xeaW\x06\xfc\x90\x0c\xb4\xffm\x06\x92[f\x8e\x19\x88\xe9\x00i\x935\xb4\xd5J\xea\xae\x10\xca\xffFn\x97\x89\x14j\x02\xf0d\xees\xa0$\x13\xa2\xe7W\x1d\x02\xdd \xfd\x06\x9fD\xf3\x18\xc66\x05\x9a\x84L3\xb1\xa9\x06\xa6\x1a\x9a\xf1g\x81q\x9c\x86j\x03L\xd4m\x94\xd4\xdd\xee\x17\x88\t\xa0\xd3/>vR\x14z\xa8\xbc\xfdj\x10\x84\x10\x84\xcf\xea\xddV&\x04\xd9\x9d\x1d\x10\xbc\x1b\x08~<\xa8\x82\x97)u\x9f\xb0\xa3,\x9f\x1fn\x9a*5\xda>\x11I\xfcq>\xa4\xf3\xc5j\x1f\xc0f\xb5\xb1Ug\x9bU\xfb\x8f@-\x95\xcdo\xff\xbc\x05\x82b\xe1\xce/\x82\x1f\x91m\xab\xa0\xb5\xee\xf6\x90\x9d\xb4\xbe\x9f;\xf3Cy\xdb\x1fT\xe6q\x08o0\xaa\xc7D\xca\xfe\x99\xd9<\xf8\x15\xf8\xe5S\x07^[`\xed\x94\xfb\xdf\x1cuV=\xea\tM\x11\xedtJ\x10\'\xea\x01\xd8\x84\x95&\xaa\x9e\x14ss\xf3\xa8m?q4\x89\x86=\x85w4{\\\xe0<\xaa"=wY\xf7xu[\xc8\xb3P\xc5\xeb\xfb\xf2\'\xcc:1\x9e*\xf8\xf9\xc8\x1e\xf5\x7f\x15\x03\xcf0\xb4b\xbe!\xfe!a\xf9\xcc,$7\xd6b\xc3\x0f\x035\xf7\x17\xbe5\xce\x94\x9f\xe7\xf0\xdf(\xdb\xe6\x9b\xffdZ\xc6\xdf]\xd3\n\x8dK\xdf\xbc\xa0f\xbe|;]%\xe9\x80\xf2)\x8d\x05\x7f\xbd\xb3\xec\xa3b\x9b?\xf2\xc2m\xf20\x18\x8a\x0f\xf6\x04k\xc3\xedf\xd3s4\xa0\x8b\xd6\xb0zR\xa2#uLz\xc5\xf7F\x87o\x91K *\xf70\xcbe\x1d\xed\x99h\x0e\x8c\xfd\xbd\xb87\x10@\x0f\x07&\xfe\xf2\x88\xee\xc5\xf9\xb57\\\xeb\x85\xaevi\x99\xab\x7f\xc4\x87\xc8\x19\x99\xaa\x17oD\xc0>\xf0\xfb%xU\x16\xfaM\xb2U\xe6\x1cq\xdf\x91\xf1h\xea,a%x\x99u\x10w\xdaE\xf9H\x87\xd3\xdes\xb6\x06\xb0r\xf8\x1a\xa3\xac\xbe\x94\x88\xe6\xd6\x8f\x7f\n\xc9\xc3X\xce\xf4)\xda\x80\xdc\x10/\xdd\xa9S\x1eG\x195$\xd1\x0cN\x90\xf1\x96\xf8\xa5\x02S\x89\xde\x95\xff\x9b\xb1\xabH\xef6\xc3\x00\xba\x02I\xc1\x02\xb6\x08\xceZ\x1b\xefm\x0e\xad\x9c>\xb1)H&\xda\x08\xf6\xa7zIR\xe43@\xae<\xa9Cp\x03\xaf\xf3\xa0\xee\x99\x89/\xd8\xf2\xeb\x0e\xa5\x11W\x97\x90\x12\xca\x89\x14\x8d\xfa\x15H\xbfn\x90Y\xdd\xbbj\xa8vWl\x9a\xe2\xe0\xa6\xbe\xab\xcc\x96\x9e\x16\x9d\x194\xd9"d@(\xd3dk1s\xb1\x07\x08A\x0f\xa0\x01(X\xcb\x15\xf0X\xbf\xe0\xcf\xc9\xfdA\xb9\x120%\x16W\x0b\xa9\xe1t\xd6Z\xd1H&\x83\xceG\xdf\x1dN\xd4h\x0cT\x99\xbc\x03\x88\\\xab%\x8b\x97\xe8\xa2ad|\xaa\xb9\xac\xf3l\xb5\xads\r\xe7\x92x\x86\x8d/\xca\x08\x08\xdcjR\xfc<\x1f\x81\xa8\xe5\x02h\x19\xb4\x8c\x1f\x03\x0f)\x9e\x1eQw\x8e^8\xe4Gx\xce\xeb\x12\x16p\xf4\x98{\xa3C\x97\x9c\x07\xdb\x14\xfd\x12\x13\tNK[\x82\xa8\x9b\xd4\x8d,6\xabNN\x1bKjG\xc4\xd9(\x90\xe0[d\xa5jn\x8f\xad\xd0)\xb0;O\xc0-H\xcb\xa1>Q]\xfd\x1e\xce\xe8\x1f\xc8G7\x88P\xef\x02\x81e#\x9fr\xb1_\x033\xfatw\xfd1\xf0@\xfc7\xac6s/\x9emx\xe4\xbb=^AZ{\xf9\xd3/w\xbc\xb9\xdf\x97\xf9\xa51c]`\xb3\xdf\x92\xe6\xf3\xfd\xf0m\xac\x9f)f\x96MaB{\xff\xed\nI!\x9b\x7f\xaa(\xbe\r\xae\xb1\xc3y@Q()!\xcd\re\x07\x8cM\xf0+\x94\xef6\xeb\x19\xbdB\xd8\x9c\xd0\x19\xe7x9\x8a*{\xbd\xaf\xd6\x0bMK\x85\xf6\xd1qI\xb8ky\x9d\xf3[\x05L\x9fl\x84kZ\xfc\x05\xae/:pz\xcfg\xbc!\xf2\x0e8A\x90\xa5\xafi\xc3M:3d9\x8e\xf0\x86j\xa7\x13\xd2\xb1\xec"/v\x0e`\xb1\xf6k\n\xbf\xdc\x1e\xb2\x07\x96\xeeDE\xe0&\xef\x93-K[<\xc4>\xb04\x84\x1e\xb2\xc9\x1dR9-\t\xf8\xa7\x8e3A\xcb2\xee\xd9\x0b\xf6.\x9a\xb5\x9a\xfc\x1dvc8\xa7W\x91\xea~*8\nXD2\xb0k\xaf\x96\x8c}1\xed\x10\xcdv^@\x9b\x0c?*k\x9dK\x1c\xd2#,\x1e\x88\xb6P\xf9\x9eZ\xcf\xd1"bh\xa9R\x93]\xb1\x03(\x1b%\xbb_\xc1\xa5\xcf\x0b*\xde\xcau\x84\xe9$V\xa4\x8b:`\x9e\xe5\xe2\x838!\x14\xc0\xa4\xbe\xafd\xd1\xf8\xd8N.\xc5\xc6K;\xc7\x19\'\xd4q\x8f\xc0\xad\x95~\xaaP\xab\x9e\x95t\x01\x11|\x1e#F\x1a\xa5\x90}\xca\xd4\x19\x1e\x1f\xb7\x8clHs\x17\xff\xf1\x9dr>!\x9f\xad\xc2\x8bRiM\x0c\xfd6\x16~\xe4\x96\x17_Z~j6\x1b\x99^B\x1a=R;\xb4(5\xf7sF\xe9\xb2\xb4\x94"u\x05\xbc\x8c\x10\x07@~J\x9e\x18\xe7\xbe\\\x8b\xa3\x99\xaf\xbf8\xb0\x7f\xdb\xd4\xee\x9c\xe7\x1e\x15\xf3\xd1\xa5d\xbb\xd3\x85\rUC/;#\x08\xa6\xa7\xdf\xdcj\x95\x0bd/\x04\xbd\xdf\xd9-\xde\xa7\xd0\x00\x06(J\xde\t\x02\x88\xdc\x8e\x00*\x1b\xf7<\xfc\x0fL:\xce\xfd\x1cY5\x1e\xcf\'\x91\xa4\x16.s\xdd\xe3\x8d\xd0\xe7z\xd6\x00\x1e\x00\x058Z`\xcb\x9f>\xef\xf3\xe7(\x04\x80o\xd3 \xf52\xb9\xe0\xebg@\xa1\xe5o\x07\n\xa7\x8d:\xda\xa5\xc2\x08=\xfd\xb1\x05\xeds\x1d(\x81\xc0\xb8}\'\xd1\xc7\x01^\x13\x1b-\xbbLF\xa9iX\xbe\xdd\x1d\x11@\xc3W;\r\xfe\x19\xe9\xe2\t\xa6\x8e%\xff\xe3\xb7J\x9b%\xfc\x88B\xba3\x7f\xc6\x97Oj/\xee\x0f\xea,\xb7\xad\xa5$\x903\xeb\xdeN\x13\x7fGc\xcfp\x00\xc9M\x0f<\xaa\xa5J\xe1\xf8\xe2\xa1\\X\x85\x00 \xff\xfe\xbe\x07\xf2/P\nE\xc1jA\x18R\xbb\xbe\xc2\xf9\xe6\x97|8\xef\x8f\x96,\x9b\x86e\x8cS\xfe\xb0\x06>V\x11\xc2\x89\'\x1a6\xf8^\xc7\xa4\xcd\xdcQ\xa7>\x9acE\x8f\xdc\xc3l\xae\xaf\xa3\x0eyc&\xa9\x83\xbd;\xc6\x86\xcbH\xa6\xd0\x13\x07H\x93H\xf4\xf5\xe7\xde\x89\x90\xe0.\xdc\xf1%\xab\x9d\x11v\xaeU\xf7u\xd9\x1b}&7\xad\xfd\xa2\x05\xd6\xff4*\xa1Wvo%\xa8\xfat?A\xdci\t\xe7\x17\xf7\xe9\x87\x0c\xff\xf4\xc7\x98\x9b\xb2\xb3\xf9\xfa\x1eZ\x86\x92\xc9\x01iQ\x91\'\xdfe\xf3cY\x8d|t\x08\xb2h\xe1\xf4O\x16\x98\x03\x87\xb0\x00@\xb5GL\xc7\x15w\xcb\xe649\x94\xd1G\xd7\xc2\xd9\xca\xeb\x02\x85q|D\x905AC q\x14^\xa3\x89QZc\xdb\xb1]^d\'\x91\x03\x10\xb3\x1f\x15\xf7\xa17\x0f|\x18F5\x85\x04R\xc7r\xf8\xc7p*\x92\xb8\xda7\xb7\x1b\xf3H\x12\xda;p5/\xb9\x1d\xf7\x9f\x16B>7H\x83^\xe7\x9db\x06ZN\x97\xb9jH9l\xb7\x19\xe1\x81_\x98H\x1eK\x0b\xa2\x1d\xa3\x8d\xc7r?o$\xbf6\xd0\r\xd6\xe5\x0f\xeb\xcb\xecVz\xab\xcf\x9c\xa8\xd4\xc6\xfdw"`\x95\xa4f\xf9\xb8Z\xedu\xe6uh2o\x1c\xd0\xc6&\xf0\x8a\x1f\x08\xf9\x0e\xce4\xa4\x98Z\x897\xed\xb2\x90yl\xa7\x00_5\xb6u\x99\x87\xb5pZ\xdd\xe4/\x8a\xc1\xc97L5\x1c\x02\xb9\xb3\x98/\xf7q\x99\xa2\x17\x8dB\xban\xf1\x90vj\xfc\x19\xc5cm\xf1U\xef\xd5u\x93\x04<\xbe\xed\xf7R\x14\xe9\xb4\x89\xb9\xe7G\rv\xde\x02\\\xc4\x02T\x1f\x9fL\xc4_|\x06\xb8m(\xc8\xa0#\xa0\xcc\x94\xe5\x92\xfaK\xa7\x90\x8f\xb8\xcdS\x0f-G\x92L\x9a\xcd\x90\xda\xaf\xd5\x08%k\x7f\xa3\xb5\x85\xf9y1%\x83\xf3B\xf4\xfen\xb6Z\x8es\xaf\x826\xf3\x9cnc\\c}\xb5m\xeb\x1e\xd2\x1c0\x065\x0e=\xd8\xd9"\x18Y\x15N\xdc\xbaK>b\xcc\x0f\xca\xa2\x8a|\x8a\xa6\xc5\x97\xc4\xa4\xb7\x91o\x1e\xf6\xd7\x07\x0b\xcbv\xc1\xc3,\xd6e@\xb8\t\xbeR\xd0\xd4\xfb\x7f\xee\x92\x1c}IG\xcd\xeeb\xd5\xda\xba\x1ax\x81@*\x8f;=\xee\xbe\xec\x88\x87\xf9\x93w\xb7S\xdfZ\x02\xdd0\x9f\xa12>\xac\xcaS\xb6\xcb\xff\xcbWz"22\x95\x89Z\xd3]L\x8c\xaag\n&\x82j$V\x96\xb6\xa2=\xca\n\xb0\xfa\x7f\xf9"\xf8\x97{\xab\x93]4\xf5\xeb\x9b\xf3\xf79>\xd1g\xcc;\xddD\xd6\x9f\n\xf0R\xaf\xb2\xdb7\x84\xc4\xc9\xb0\xf9\x9ef\xebDN\x88\xd0L\xa5&\xce\xa0\xdf\xberD\'=f$r\x87\x96\xb7B\x90"\x8e)\xec08\x1aEm\xf6V\xf4\x05@0\x03V\xcdL5\xb9\xd0\x1ftdouD\x8by\x03\xf7\x04\x0c`\xeam\xfa\xec\xb3T\xdf\xf6~"1\x0c\x84e\x9d/\x14A\xf8D\x16\xa9\xfePt\x90\xfa\xb2_>\x90\x0fS\x8b&-\x83\x1d,\xa9\x8cE0\xbe\xfb.n%\xdf\x88\xa0Nv\'\xa3u\xb63\x02\x12k\xe6Fq\xd7\xcc\xb1\x97\x88\xee\xda\x0f\xad\x11\xe2An\xc4#\xcb9\x1d\xf4*\xad\xa1\xa3%v\xa2\x15\xd3\x8e\x9e;/E\xfc~\xa5&\xad\xc8/\xc5\xff\xa9$)\x1c\xe6i.C\xa9\x9b\x88\x80\xa6\x9c\xd2\xe1;\xfc\xb8\xb9\xae\x87\xcd\x81\xb6r,\xb5\xb3\xbc\xfb\xcb\x99\x07\x8a1\x1f\x05\x13\x17\xdc\x91C\x9d\x19:vZ\xf2\xc6\'\n\x1fu\xb1\xc7\x90\x87\x9aP\xda\xfe\\g\x18\xc2\x99*@\x10HP\xdb:\x84\xa4\x01\xab0\xd0\x8c>\xd6\xad\xa2j\xe8\xf0\x99\x90#v\x02B$\xb65}P\xab\x0e\xfc\xbcV\xcc\xaf\x04DU\xee\xee\xff\xa54Jm\x8d&\x1cl\x02x\xebi~\xc9\xc5O\x8e\x14\x8f\xbb\xdc\x1bf=\xaf\xc5\x9c\xfa?\x10\x80\xbbRInLb\x8a\xe4\x93\xf4zKE\xc9\xcd\xb5\x02\xc7\xaf(?(\xeb\x8eAV\xdc\xb6\xf3\xa5F6U\xb2\xc9G\xee\xd8\x80\x8a\x07S\x17\xe0\t\xbd\xc8\xfb*K\x83z\xe9j*C\xc3\xce\xe7cu\xb8\xc2Y`\xa1\x880?a"\x1a\xdbV/I\xdc>\xf0\xab\xd4\xaa\xfa\xc9\xf2\x96\xcc\x13\x0b,\x01\xb7\xed\xe3wu\x10\xfe\xce\xd3W\xc2\x02\x1e"\xc5Tg\xa0`\xbbc\xa5C(\xca@\x89\xfdgP\x90\x1c\xb7\x0c\xe7}\x83t*\xf9\n:\x8d\xf8(\xea\xf0\x9f\x04\xf1\xe2\xd9\xb7m\xc5_\x03f\xa5\xfa}\xf2\xe32Ko\xe2\x8c\x0b2\xfe\xe30fA-\x06\x1cK1\xb0k\x93\xe4\xf82\x03x+GHb\xd3q$\xe8^\xf1\x87;c\xdb\xb9=#z\r#8t\x8aJC)\xb9\'W\x0f\nrY+\x03^|\xc98\x84V\xfb\xeeb\x9d\x0f\x0f\xda\x81\r&\x00c\x86w\xbajg\xec\xa1HkF\x84^\' q+u9G{e\xc1/\xf8\xb6\xa2\x82hg\xfc\xf3\x16[\xc0\xd4\x18\xb2\xc8t\xf7\xb93vVZ\x9cC,X\xfdJ"%ve\x08U_\xf7}$z;\xb2\x1b6[4\xb3\x82\xbe\xf3\xcd\xf00\xefA\xcc\xc3\xf9>\xa1\x88WY3\x1f\xa0 \xfc\x90O[\x97\xc0U{\x1d\xe4G\x92\xc9\xdb\xbdf\x98<\xcc\x88\xb9p]\x12\x9e\xa0\xccc\xb9\x9fu\x12\xdb(\xa2t\xf6V\x19\xc9\xb4E\xe5\x9c\x94\xa0N\x1b\xd1TM\xf0\xa3\xb8\x90\x9f\xc0\x123\x8e\x05\xb0\x95\xb5\x91\x07\x8c\t\xe3\xd2\xa12\x7f\x02\x0f&&\x00\xc5g\xdeRM\xf1w\xdbv%A2\xdd\xeaR.N\xfb\t\xda\x1b\x0f\x87$@\xa3\x15E\xa3\x88\xe3Az\xcd`)\xe5\xdd\xd7!\xef\xcdZ;\xdc\xe7\xd6\x80_\xed \xf2z\xf7G\xccX\\G\x19\x0c2bX&\xc3z\x84\xa8\x9c=]v\xe5\xa5\xd7X\xb7\x91\x06\xbf\xa0O\xbc\xee\xed\xe2\xda~\xab\x90\x99\x9co\xac$\x88\x10\xd3\xfb\x9b%\xf4\xbbbkX\xe0\x01,\x19\xb5\x95\x14/#\x08\x9c\xb94A\xd0\xbd\x00\'\x0b\x13\x0c\x1ebu&\xe6@.\xfc.\xe2\x0f]\x1e28\x17:\xe5\x03>#]J\xbb\xaa\x0f\xd3\x1d\xc5\x0e\xf4\xac\xfa\xe3k\xd1\xc0k\xdf/\x08\xa3\xce\x04\xc1\x80\x9c\x1c\x02P\x13\xe4*O\xd7\x14\x04\xacp){nPE\xce\\z\xc4\xe1K^\xedN\xa0\x00\xae\xdaA#\xe6p\xe5\xf8z\xdc\xd9\x9a\x86\x1a\xa3\x03\xd1\xb4\x10m\x89\x94q\xddWA\x9d\x9er\x81\x94\xd3\xc2\x8c\x85=X\xf9b\x18\xdeXWS\xec\xcf\x01by\xf02k\xdf\xfei\x01h\x99\xaf\xe1\x865z\x13\x89\xee.\x1d\x000b\xa4\xa5\xd0\x18\x80gF8\xf1\x0c\xf4\xcf\x11p\x919q?\xeb\xd0b\x1b\xe8\xaf\x9e9\xc7F\xa1\xa4\xa3}(k\x95\xad[\xc7\xfc\xf5n\xc1\xec.\x9eQ\x0bn\xafu\xa56\x943\x15tr\xe6\x05\x11\xc1*rd\xcf)\xaf\xbc|\x99q\xd7\xd1a\x04\x8e\x1d&[\xe9\xdfv\x96\x94B\xd8\x04\xc7He\x05r6\xb5\xdf`"\xb1\xf9<\xde\x0c\xcd\xd8N=\xcd N\xfa\x10\x87D3\xf7\xe1qo\xef\x9f\xd3\x06&\xb1\xdc\x0c\x14ho\x13\xd8\xec#^FZ\x85p\xc7\xc3\r\x87\x12\t\xce\x7f\xd0\xa5#\x1f\xb2\xc0I>\xf3n\x9d\xd4\xac\xd2\x82P4,z\xbe\xdd\xedJ\xb9\xd6\x9cx\xb7\xa2\x16\xe0\xb3w@\xb5\xe1y\xe2H\x8c\\ e>\xd3\xb1lL\x97\xde\x96\xe3\xed\xd9)E\xa5t\xab_\x1f(\xc7:\xe7R\xf1\xee\xfe\xaa\xfeLp\xe7\xcf\x0c\xd0;\xb2\x9d\xba\x1f\xb1n\x14J\x81\xf6j\xcf\xca\xf7\xa89\xb3\xf6\x87\xbd\x89}\x9c\xea\xb5\xb8\xa5\xaf5\x86\x7fDR?6\x88c\xca\x05~\x8ciU\xeb\xea\x8eP\x19?/\xe2\xd6&P\xa64\xf6\xb4\xe74\xe6T\x02\xd6\xb7\x9d\xe4+\x92\xc0\xfd(y\xa5\\p\x18dB\x06\xa8\x16\x184\x88\xe27AD\xa7\x03\x13\nrd\xb9\xa5=\xb7up\xa6\x8d\xd2\xd5\xc6zi\x1f\xd4^\xdaf\xb7\x8a\xa8\xe8&2\xaaz\xbc\xa6\xd3\x97\x85\\SE\xb3\xb9Q](x\xd7\xaah\xcfY)a\xb6\x97R\x96%\xab\x97\x93\x81\xe5\x061\x1fJ\xad\x95;\xfem\xea>\x8a.!\xb5\x93\xea\xdbU\xd7\xb2;\xe5@\xb0\x08t\xef+\xca:\x0b\x00]\xfd\x16\xbd\x86Q<~\\4 \x87\x02\xba\xccf\xdb\xca_pi\xef\x16\xf3t\xac\xa6\x94A=\xd0\xb2}\xbbW\xe8N\x03\x0cS$\xfe9\x82\xb0@\xae\xf8>;\x03\xe3A\xa5\xd4\x8e\x85 R\xa3\xf9\xb4c}\x07c\xd8\x9aY\x1c\xd3\x8b\x17\x83\x8f\x99\x8a\x98w\xe4\x99Y^0\xed\x80~\xe3\x85[\xe6\x0c\xb8C\x8bCY\xc7}\x10\x08\xc9\xf0/\xf7\x80\x87R\xdb\xf5\xa9\xfb\x85\xa2\x95+\x7f^\xbe\x90\xd0\xa8=\x1b\xab\xb0\xb3t\x81m\xc0\xcaT\x0e0\xdf6\xba\x86\xb2h\xb3Jt\xe3\xc4a\xca9?\xb9\x8bz>\xb7.\xea\x8e\xf0JW\x10\xdf\x88\xf5e\xa9\'\xf1"\xcc\x94tsm\x13\x91\x06\xe1\xbc\x9d\xa9j\x84\xff\xa6X\xef\xeag\xc5_\xb8\x85\xce\xce$f\xd3\xab\xad\xce\xf0Y\xa70\x94\x1a\xde=\xff\x0b\x10\xbco\x13w\x8c\xd1^u\xabQ\xdf\x92\xa0DD\xc3\xe8\x05\xc81\xe7\x8e\xeb\x1d\xcc\xe3\xfd\x1e\xdd\xaf1\x85v\xdf\xd2a@\xe6\x92\x960\xf8\x7f\x8a\xe2T\x8f\xbd\xf5\xd3`2\xbf^\xc1T+\xdc\xb6A]\xfcz\xaa\x8a\xcc"\xddt\xf1\xd6t&\xc5]\x88\x11\x15+%\xce\xa7(\xc2\x84N\x8a\n;\xb1\rn\x10=O)\x9b\x1cxw\xaa\x8f\x89\x80m\x00\xf5\xaa!+\x9c\x83\x984\xd3(\xcfW\x81&\xa8\xa7#\xef\xe0j\x90oh\xebg\xd4y\xad\xc8\xc5\xa7^\xb6\xd0\x9e<\xf3C\xe5\x85\x1e\x01\x8epE\x1cz_`\xd1&\t\x98\xf2\x91\xac\x92&\xbd\xc1I\xd5\xd0\xfcw\'S\x9f\xa3\xbb\xd2\x96\x8a#\xb6\xa6\xa8\xcc\x1d\x1d\xfe\x0f\x86\x8a\xef\xa9\xb6\xac\xf1Y\x89\xb6B\x92\x01\xfcR\xa5wJ\xaf\xa0\x94\xff\xf2\xe5%#\x12r\x82\x05!r\xf2`\xa0\x04\xd8 0\x0c\xcdY\xba\x1aT\x1c\'\xb1\xf2\xd0d\xf0\x90\xf0v\x04\x05$b\x8062>R\x94\x99n\xae\xef\xb2*\xe2\xb2;&x\xc5\x07\'\x14\x03y\xba>\x03&H\xae-s+\xb3g\xb0}eOR\xf1\x82R0z\xb3\\U:V\x04 \xa9\x0c\xeb O\x1d\xb2\xa1`\x0ca\xe8\xc0\xafw\xbc\xf1B\x84\x83\x0c\xc2\xfe7\x9a\xcc\xc7\xdbE\xda\x0fFD)K\xcd\x14\xf8\x10j\x07zS\xa6\xa2mfq\xf2{\xc48\xb8\xc0oK\xa2\x1cM\n\xd4i\x87\x12\x1f\xe9Z\x8axs\\\x1a\xc2\xa2\x92\x1f\xfdR\xb8\x06\x13\xee|OZ\xfb\xe3A\xca\x1c]q#:\x04L\x1f\x9e\xf8\xbeqTr\xe9\x0e\xf1k\'$\x96d\xf6\xf4\xbf4\xe3y\xa9\x96\xbd\x95ME\xb5\xe7\x82\xd9c\xfa\x94\xc2L\x99\x05\xdc\x0c\xbf>\xca\x91\xe9\xf5\xd8S^\xc0?\x00\x92\xc8Z\xbe\x04@\x93o^\xb2ET2\xa5v\xd52u\xbfDk@3\xa5\xff@\x86n\x9b\xfeh\xd5\x97D\xd1\xe4\x1d') diff --git a/dist_obfuscated/src/orisys/__init__.py b/dist_obfuscated/src/orisys/__init__.py new file mode 100644 index 0000000..f34be36 --- /dev/null +++ b/dist_obfuscated/src/orisys/__init__.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.768373 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00~\x02\x00\x00\x12\t\x04\x00\x12\xaa\x82i\x1d>\x02\x90i|\x16H\xd7\xed\x8e\x88\x00\x00\x00\x00\x00\x00\x00\x00\xe0$\xf1\xe0\x96\x7f\xad\xebdIP\x04\xd2\xf2L\x88lwh\xfb\xe6\xea5\xcd\x0f\x81\xa4\x8c\xd1a\xae\x80\x1c\x063\xbe*<2d\xa2\x9a+R\x1a\xdcL2\xd7\x83\xa5\xfc7R8\x1f\x19f\xa2\x9b\x17\xae\xf9\x881f\xd1\x85\x0b\x1a\x07Mz\xcb\x01o\x91\xa8\xe6<\xbc\xff\xca\xf7W\xd0].}^\xc2\x02\r\x9a\xdd\xe6\xa0\xc1\x8d8\xee\x1f{\xc1AE\xd0\xa5x\xce\xe5\x071YEN\xaf\xeak\xe9~\xd4K)\x07**\xf8#\xccoS\xa9\xeby\x07H\xe67B\xf3!\x88\xe3\x87^R\x1b\x03d\x19\xa4O\xedr\xe0\x05\r\xd8%\x97\xd4XE\x8c,\x90l\xa7 kBj\xf5\xf42\xc0\x1d=\xdb\x13\xbb^0@\xf3)\xb6\xc4\x84+N${\x82\xfc\xac3\x0f\x1b\xcfz\x9f\xaa\x98\xd9*\xcc\xb5\x84^!\x11[U(\xf6\x0c\xc5\xa5W\xe6]\xfa\xd8\x98\xf7\xd1\x1a\x81\'\x1a\x9b\x8c\xe6\x8fH\n\xc567c\xe5\x9d\x1avT\'\xd9"m\xfe\xe3o\xaa|\xdf%a\xcb\xcb\\\xaa\xe9OM\x965\x90\xb4n&\x86\x85\x9f0%,g\t\xb3|\xd5\xd2ip\xdf[}\xac\x93\xe3\xae0\xae\xad\x02\x9f\x8f\x1d\x12*xM?\xa1vU\x80\x91\xb3\x05\x8d#5\xa4\x0b\x00\\iw\xd9\xec\x9a<\xeb\xca\xa2\xb7\xcc\xcc\x03\x1a\xd5\xb6\xed\xc6\x80\x1f\xb0\xd8\xaa%\xb3\xa2\xf97AYB(\xd2^:/>1\xce)\xc1x\x90\x11I\x98\xc6\xfe\x978\xfa\xf0\x05+\x95\xd8\xda|\x93C8\xc8\xbc\xe24\x96\xe7*\x823\xbf\xfe\x94=\x86\xd4\xf5t\x1aR\xfd\x97\x1eM\x9a\xaf/\xbd\xc2\xfd\xbd\x9a\xdd\xefz\xab\x04\xf3h\xc6\xa5\xfe\x11\xe2\x80`<\x10b\xf8\xa2\xd2^=\xde\xaa\xb9\x8c\x164\xbb/U~<\xe3\xbfG\xc8\x1ev(\xd0\xd3F\x9e\x99\x1b|/\x99u\xdf\x12z\xcd\x07R\x92w*z\x11)\x03\xcf\xe1\xfd\xab]\xeb\nc\x84\xbc\xf5h\x1dM\x9b\xb5\x12v\x16\xf5\x86\x0b\xa4$sa\x15n\x90\xc2\x15"\x15\x08z \xfe\x00\xa3\')\xed\xa8f\x0c\x86J{\xa5>\xaaV\xcb}\x9c\x0f\xe7\xbcEX!\t\xd5\x1f\x0f\x1c\xb92\x9c\x07B#yn@\xf3C\xae\xca7\x0fPV\xe6\x9b)Q\x85\xd5\x1e\xea\'.?8\x92$\x9eH5\xad*:\x17QK\xba+d\xbd\x88p\x16j\xea\x90 It?b\xf9\x19q\xf8\x86\xff\x004\xf2\xfd\xe6\xe8\xc1\x1b\xad\x82\xb9CF\xfa\x9f\x01\x82\xf3\x84\xf5.oo\xb5\xda\x1b\xd8\x98*\xb7\xec\xa0&%\xfa\xc4\xab') diff --git a/dist_obfuscated/src/orisys/nHHD.py b/dist_obfuscated/src/orisys/nHHD.py new file mode 100644 index 0000000..2d494d6 --- /dev/null +++ b/dist_obfuscated/src/orisys/nHHD.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.454402 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\n!\x00\x00\x12\t\x04\x00\xef*\xcb\xe5W+;\xaf\x7f\xb1\x17\xc3\xa4\x8f"m\x00\x00\x00\x00\x00\x00\x00\x00\x81K1u\xf1\x1ad\x01@\x16\xdc\xd6\xd4\x17\xe4\xb3\x01\xf4\x9f\xdf\xb3.\x03\x8f\xefw\x91q\xc2\xa3\xd2\x16\x89r\xfanz\xc1cEw\xb8\xa9\xdf\x8fJ5,(\xecxY\x19\x8b\xa6\xac\x9d9K6B4\x17;[\xc2\xd9\xd3\xad\x9d\xd6\rX\xa08|\xe4\xf8\xe7\x89\x19>X\xa9{\xa2m\x05+\x04\xd8\x069\x07E98\x04Vk,\xb2t\x82W\x0e\xa2|\xe5\x06c\xe4x?\xcf\x95\xa4\xac\xc3\xc4\xa7\x87Y\x94\xf1&\xd7\xee\x197\xaf_\'\xd8\xc5/S\xea\xfc\xd1\xd2\xd24;\xea?;-u\xfa\xdb\xff\x98%q u\xfe\x00\xc2\x85=\xe7i\xce\xdc\xc5\x1c>\xd6FBH-\xf2\x0f"\x03\x93\xba7\t\x10L\x1f[5\x12\x11O\xcbA\x02\xf5R\xa6 \x96/\x8f>\'\xb5-#\x1d\x17\x82\xcd\x90\x0c>pL\xa9\x17\x8a\xa6\x86d>\x80\xf8\xce\xa1\xfb\xa9T\x1c-/\x06{{\xa1\x93\xde\xd1g-:\xf6\xc1\xa4\xa6$\xc4\xe1\x08\x84\xa6\x98\x96s\xa1/\x17\xec\x1b\xf9!\xbf\xbdD\xd7?1\'\nT\xc1\xf8-\xbd\xaa]\x08h\xf6\xfex\x1f\x85\xece\xd0\x13L\xa4\xd2\xc0\xd3\xe4\x1fce\xe9\x1e&\t\xbc\x13\x08\x88.\xba~ws\xc5|C\x1bc\x87\xc8\x8f\xf4 T\xae\x0fI78H\xd3,\xbb<7\x84:\xa4V3r\x1b\xd2M\xab\x11[\xc1$\xdb\xeaT\x02\x0c\xfa\xa7\x14\x8e\xf7\x1cA\xba\x9f\x11q\x96\xd3\\d\xc9\xfc\xbe\xf8z\x83Y]7\xda\xac\x9ds\x97\x94\x86\x94\x01{\xb8-l%\xb7\x17\xb1?\xfb\x01eni\xdc\xe0\x88B\x1b\xf8\x16\x89\xaf\x0e\xa2\x9a\x0f\xa5\x7fn\xcd\x12Y\xa4\x1c.\xa5\xb8\xca\xc6\xfa8%\xd6X"\xa0:Vy_\x07\xc4\xc9{|\x8d\xe9\xe9\x9a\xf5\x86\x06\x81I\xb0z\xacZI2\xbb\xe6\x963\x96\x9a?-\x1cO0*\x1d`3\xf6\xc1\xb5\xdf\xe7G\xe8\xf3\xa0\x96\xc5j\xa51\x93[\xf9tm\xc8\xe7\xdc\xc7\xe7\xec\xce\x04\xac\x1e!\x8e+\x84\x01\xa3\x0b\xf4T\xbf\xd3\xbc\xf5\n\'\x1c\'\xbbT\xa9F\x11dl\x122\xe1C\r\xa4\xac\x9f\xa0\x96\x87j9\xe2\x8aQ^\xbc`\xf1\x13\xc4\x08\xae\x07\xb6\xc8a\xdc"\x9a^\xaa\xf0\xd2\r\xbe\xf8\x932A$d\xc7p\x9f\x90I\x98\xec\x92m@k\x12\xe4\xdb\xfc\xabx\x01i?=\xa0\xe1\xf3\xa8\xe0\xd6\xbc\xd5M\xaa,\xa6\x80\xf0>\xa0zv\xf7\xe0\xdb\xc8L\x80\xf4_\xcc\x9e\xf1\xe2\x98`\xb0_\x12\xb8^\x8e\x80U)\x153T\xe3\x92\xb4\x17\xad\xd1&H\x0e\r\xc5s\x00\xeeE8\x0bR\xf0\x07(\x1b\xcc\xb5\x89\x06\x8b\x01\x83\x992\xb1c\xf0\xc4p\x00\n\n\x94\x08<(Mz+\x88\x1eO&\x1c\x974\xe8o\x82\xba\xfeNB\x1f>I\x915\x06]>>\xec\xfd\x1cQp\x1b\'\x13\x04\x92Ej[]>H\xeeG\t\xaa.\xdd\rV\xe3\xcd*<\x9b\xfa7\xae\xd5\xa9+\x9a\x9e\x0c\xbaK\xd2:\xd8-n\xbc o5\x02F\x07v\xd4\xba\xe5O3\xe2V\xed\x98\x1f\xe0\x99k\x11\x96\xd0+\xfd\xca-\xc0c\x05\xa3\x1ebHQ\x8b\xdc\xe0\xd0@\x00\x0c\x0f\xaa\x0c\x02\x08\xe4\x02\xc6,\x9d_\x07a\xb1\x8b\x15\xe5\xaf\xf7\xd7\xb0\\9\xaf\xa0}\x963\x05\x93\xf8W\xbb6X\xa8U\x85,\xcb\x0eg\xed\x98\xe798\xa1\x19\xd2\xef\xae\x87c\xc2\xa0\x8d_\xfc\x17\xc7\xe3K)>d5m\x84\x83\x1f}B3\xc5\xa8\x8b\x01I\xf3\xcc\xfa\x1e(w\xab\xed\x99\x82\xc2\xcf]^J\x03>\xe1\xa66\xe13\x99\xb6j\x98W\xe2_\xa7\xe5\x81\xfe\x1d\xe4\xceiT\xf2\xbc\xf7\xf8\x98\xbf\xfa=\x10J#"\x08\x96\x10x\xd4\xa10\x96\x91%\x9bB\xb5\xcf>I\xeb\x96\x12\x1c\xc4{\x94\x1c\xa2\xc4\xe3|@\x9bf\x0e\x90\x9e\x13\x8a\xa4T\x085~\x06t\xf8\x95\x07\xc6Ml;H\xa2#3R\xbdF\xa6\xf7\x8eP\x81\xe2y\xc0\xefaA\xb2\xb9*\xe0B\x7f\x05\xfc\xd8)\x83it0 \xb4\x9a@\x9a\xe3\xf5\xb5\x85\x93\xab\xc4Kn<\xe2\x8fJM\xed\x05\x83\x1c\x14\xc2\x01%\xdd\x0b_{\x89\xc0\xb1\x92B\xa2)\xf1:a\xeajh\x0e\xad(\x82|*p\xb9\x9c\xa49):\xb17\xc7\x8e\xaek\x99x_\xb2\xf0`\x904o,>\xb4\xaa \xe8D5\xecS\xc8\xdb\x83S1\xa8;\x07\xd5\x19C\x0f*AF\xc5\nm\x83\xd5\x03x\x9a\x8bY\x8c\xdf-.\xbe22\x04\xd0>\xac\xcb8\xdclq\xd0\x07\xe8\xcf\x94\\\x82\x16\xfc\xa7\x93a\x84\x0f\xfa\x1bD\x15`\xc7 *\'\x94\xe0\xf1\xb8\t\xe49R[H\x01\x05\xb1\xb3]s\xdc\x8d\x19\xca\xe4z\x80\x02/_\xf5\\h\xd9\xc2\xe4\x8a9:X\xb8\x93\x1d\xd5\xc0Q\xf2\ruCL3\xea\x0bv\xbd\x9c\x19-\xecn\x87\xe4zt^\x9b\x19\xb6!H\x0c\xfd\xac\x8cnG\xb1\xe6\xbc,\xdc\xf4\x16\x06\xf5\x085\xf6\x1a&\xd3KTJ\xbd\x8e\xaa\x1eP\xfeK\xef\x87\xd68\xd0\xc4\xb3c>g\xb8:\x1d\xbfGm:]\x06:D\xd3\xd6\xaa\n\xbf\xa7\xa9\xcbU\x11\x81v\xb6\xad{`\xeb.u\xe6S\xe01\x9f\x01\xfa\x8b\x1a\x836\x14\xa9\xe5\x06\t\t\xd1\xe8}\xd8\x82.@\xbf1\xa7\xb4;\x9dY\xees\xb4\xe0H\x81\x90\x86\xd3\x13\x88\x94\xfe\x02\xdd!\xfa\xc5\xdfE. \x8ay\xf8\xd7\x05\xe5\xcd~\xc6H\x9c9\xd6\xa6N\xc1\xa3=>\xee\xb2F\x04\x8f\xd9\x88j\xd1\x14^\x15Gv\x07\x9bA\x85\xa9A\xc5\xe5\xf0\xae\xe2\xab.\x15\x05\x1c\xf3\xe7\xdf\xd3Sm\xa8\t\xbd\xf3<\xf6@\xe4\x98\xb4%\xc8`Zj`,\x89\xdc\xc6\x177S\xd6\xa1xB\x14$\x1aGx\xe90|\xe1w\x94\x1b)\x8c\x15H"\x1a\xfb\xcbj\x80\xd1w\xcf\x12\x9ec\xa3a\xc0U\x00\x1c\x91\x03\xe4\xf0\x01\x96Q)|U\x91\xb2\x9bd\xcc8\x97$\xbb\xacA\x19\x97UJ\xfd\xd7x\x1e\xc0\xd5\xee\x8f\xad\xafr\xe1!|\xdb\x9eBC\xcet~\x9f`,\x9ai#\x98\xf0e\xf09\xddE\xe9\xc32\xe1kb\xf6\xaf9\xef\x8dDbr\xc46&Y\xcd\x9c\xfdN|\x02\x82\xe8\x1e9\x8do\x03\xfcyV\xe5\xab\x12[i\x02\xe9?\x18\x86\xe6\x08X\xb8_Ub\xab\xe9\x8fW"v\xf0U9\xabG\x19`qL\xf4\xce\xbejBu\x02r\x9ebG\xd2\x03\x8b\xf7cWC\x12\xe8\x19\xad[\t\xb0\xf2\xd8>\xb97\xa2\x88\xc7\xcf\x18\x9a\xd1=\xc7F9C\xc0\x1e\xbe||D\xe8 \x1a\xcb\x83_\x8c\x9cO\x1f\x1b\x04l\x93\xb4\x82\xbb\xc0\xde\x8e\xd0\xe4\xd2\x01\xd7\xf2\xa4\x97\xee(\xd5\x7fpo\xbd\x81\n\x9f\x1aTT\x0f \xb7VS\xf9UK\xf8.;\xd3IM\xbd`\xb9\xa1\x02\xb4p&\xae\x8e\xaaWt\ty\xa9n\x10-/V\xe3b[\x86\x10\x86\x03c\x17=\xcd\xf1\xe7\xb9\x9a\x96c%\x01\xed\x86\xba\x88,\xcaU%6\x94\xfe\tu|f<\x8f\xdc\xe8r\xc0BM\x06N\'\xdf\x81\x11\x91\xear\xba\x8b\xca\xf6\x0f0\xb8xC\xb2t}h|a\x9bT#\xc0w?h6\x8d\x8c\x10~`\t\x93 S\xb8HJ\xe7:\x0f\xcc\x99a\xf9\xb8\xdew\x98*4y\xe5\x8b]u\x1f\x1a\xae!\xf3LE\xa1\x89\xf1S+\xcf\x98\x1eR\xca\xdfl\x86jB\xb7\xb0H\x08\xfa"\xcd\xcf+\xd2+\xbe\xeb\xa0;\xe3d\xdc\xca\xbd\xc2\xe6!E\xe7\xec\xfd\xf4!}\xf1*H\x1f\xc0\xb0\xad\xb9\xd5\xfbF\xe9\xba\xf9\xc0P\xca\xabr0\xf4>HVm\xb7\x93\x9fIO\x06\x04\x1a\xd1\r\xd9\x8cL\xde\xde\xed\x0b8\x9cb\xbc\x15\xfe\xc9\x92\xba}\xf9\xa6\x95\x81\xd5K\x10\xe3\x91\xf0\xa9\x97\xb4/\xe7\xa1\xd8\xd9}\xd4;!\xdb\x93\x9a+j/\x07\x0f\xaa\xebH\x8e\x96?\xa5\x0f\xf72\xa7\xe1>\xc0\xf3\xf3X\xb5\xad\t\x103\xadM\xf6\xbf\xd3\x96\xb8\x97|5;9s$Y\x02\xe5g?\xb6[?\xd0\x82H\x90\x147\xe2\x8d\x90\x04\x01\xd4=\x9d\x1d8\r\xe6\xa3\x9d\xe8s\xf6\xf9\x1e\xa4\x92\xe5\xbd\x15\xee\x81\xa6|\x1a\x038\xa8\xf7\xaa\xd8\xef\xf6\xd4\xc2e\x982J\xa5;\xbc\xeb\xa7\xc4\x12[\xc7\xee\xc9\xbe\xe8N\xe3j\x85IH\xcc[\xe1E\xd9?M\xcbS\x13\x8b\x1e\x86GU\x1eT\x1c+\xc7Y\x99\x9d\xa7\x88\xec_Y\x00iK;\x92\x91|\xe5\xdfj\xd1<\xc9b\xce\xac\xa6\x8565>\xacM\xdaU\x99\x93\xac\xe5\x0e-\xa5\xbc\xf5\x0b\xd7\xdc\xcc\xdbz\xf8\xe1\xb4\xd2\xc5J4a\xfd\x05\xff\x07w<\xa9\x90oN\xdd5>\\1\xc6h\x0e\xdb\x1a\xd1\xdcH\xc4L!l\x83{^|\xbb\xa6\x9b\';\x98?\xcf"X\xf12D\xb4uU-s\xb8\x98\x0bqd\x0fs\xcb\xa6\xbeC\x0e[\xa7$Lk\xe3W\xf4\xdd.b\xa5\xdc7\xb5\xf9\x8f)\xe1\xa1\xbf\x08*\n\xb1\x0efN\x83\xcb\xa5Sx\xf9%/+\x0f\xb0^\x06\x1e\xea\xd6\x0fRQU\xf0\xdb\x81}\xd2K\xd9\xd6W\x9d\xe1\xb9\x9a\xd4\xd6F/\xef\xb2r\xb4F\x9d\xe4\xadT\xa8\x0b\x90tW>%\xcf\x05\xde\x0b\xd1\xe1r\xea\x05\x98\xad\x87\x9f3/\xc3\xbc\xdaUB\xad\x06\x05\x17~u\xf3\x1c\x99\x1d\x9e\xce\xf82o)#G\rI@\r\n\xeb\xfd\xb1\xac-F\xeb\xb3\xb2\xd5\x8bPt\xd4\xe4\xef\xdc|\x10\x95\x17\x95ES\xcc\x82\x93\xa0\xef\xba\xd2!jl\xd9\xa0\x93E\x08*\x9b\x9e\xac\xc5;\\\xc4N\x03\t\xe2\xa3\xaf\x17\xd5\xfc+~8\xbd\x1c:I@\xee,\xc9\x03\x80\xa2\x14\\\xb2\x91\x01\xc4(\xdfZ\x8f\xb8\xcb\x10[\x04\xae\x14\xd1O\xc6z\xa6\xc85\x94b\x04\x1a\xfd\xad\xca\xf8t\xe0\x16\xcb.\x1f\xf9\x91u\xb3b\xaa\xf2\xc2N5\xc9\x07\xbab\xd0\xe1n\x8c\xaf;\xedd#p^,\xfa\xcb\x96\x9bK\xa1mL\xa1\xfc\x05^Gu\xb3#\x8e,<\n\x9c\x0b\x9fv\x12U*\x07\x12r\xe4y\x96G\x93\xdc\xdfJ,\xf6\xfb\xe0\x06\x93\x9e\xebuT_\x89\xd8\xa0\x19a\xf4\xeb3\xfc\xed\x9b\xf7\xc27f\xfcI\xf3/\xcc\xf6*\xe3\xbf\xfce\xadhP\xb8\xe2\xed\xe6.T\xfc\xbe\x9exT\xb5h\xf0\xcf{\x03\t\x90\x98\x9a\xd8\xad),3"Vu0X\xf0\x90$\xfd\xf8\xaa\xa2\xa6\x88D\x1aB5\xc6\x116\x01\x85Y\x01b~\xf5\xc0H>\x19/\x8a\xeb\xc7\x83\xb9\xceI\xferR2P\xecY\x15>_0\xf0\xb5U^/Z\x91eU\xc0\x1c\xcd\t\xc1>\x85B{pCF\x80\x97\x06V6\x97BZ\xb5\x86\xb9\xed\xad4\xd0\xf6\x85\x19G\xff\xe2b\xbf\xa1\xe7%B~\xa85\x97\tC\xac\xca\xd5\xaf\xafB\x13\xed\xe1\x13d\xcaqu\xa4\xf6M+\x9a\x8b1L\x1d\x97aY\xa5\x08\xa9c"?o\xa4o\x1e\xa5\xe6\xf0s\xe2D5\xb3\x0f\xc0\x99N\xeaq\x103R\x02\xd7{\xe7\xfeYU\xfa\x17\x99\xc3\x1b*\xf5\xfd\xdb\xed2\xa7\x0fl?Z\x03\xa6\xe8\x92E\xbe_H\x8c\x95\xbc\xd6y=\xa6\xb9`\x02\x87\x05P\xed\'2\xe6R\xc9\xcd\x97\r/\xe0\xf6\xf6\xeb\xe8\xa6\xc4\xbf\xfeu\tk}\x91N\x05\x8d2H\x12~i\x98\x16\xb8)\x15\x813\x00\xcf\xdb\xcc\xa8Y)\xd1\xcc\x8b7\x81\xb7\xbf\x85rS&\xcbs\xda\t\xfe\x8c\xedF\xc9Z\xa2\x17\x9bB\xb1\xf8\x88\xd8\xef\xae"nc h\x18\xd8\xf5CNL\x19\x1b\xa0\xe5\xf9~_v\xa1\xdbYpg/\x0c\xf0=\xf5\x07Aj\xcd\x8eNBO`\x840\xa6\xd0\xdd0\xeb\xaf\xae7\x9fV\xc7\xadF\x11/{\x12`\xca\x1fj)( \xe7\x8d\xb6\xe2\x0f\x18\xc7\xfc0\xc7\xe5H\xa0\xc8\xa9<\x0c:\x00K\xd4\xc2\xf2Zr\xb7\xdaT>W\xee\x8f\xc0C8N\xad\xdbL\x89\xac\x01\x8dDs\xf6\xfcI\xeb\x16\xc6O+\xefuk\xde\x83T\x99\xa7\xbbb\x97\x04a\xd1\x1cd\xf5\xea\t\x04*=\xb4\xf9\nJ2\xca\x8c\r\x07\x18Q\x9cs\xc1\x03\xb1/\x11\xae\x82\x00x`"\x86\xd6~\xc6 \x1d\xb8\xd6\x96\x91;]\xa7\x01Rt\xb9\xbdE\x08\xc3\x00e\xec\x08\x9b@I\x9a\x8d\x8fRN\xa2\xe1Sqc\xd9}oF\xd4\xd1H\xcfQu\xaam\xcex\xff\xdc\xe4\xb1\xe3\xe4/\xf6#,~\xb6&\xd0\xcdjv\xfa\xea\xfe\xbfZ\xa7\xb85+H\xdd\xb0\xc8\x95\x8a\x8e\xe2\x18\x98i.\xab\xfa\x8e\xd9qn\xe7\xd8}\x89\xbd\x92n\xc3\xe4\xd8|\xcf\x90\xc6\x14{\x87`B\xdc=\xa4\xbbF\xa8\x08[\x0f;f\xd9U`Z\xf5\x83\xfe\x7fr\x06\xaf\x81\xf1x\xbcu\x8a}[H\xc2oH\xbep\xa4\xc9\xe2+\x92A=\x03\x8a\xe7K\x8f\r\xdf\xb7r\xe3:h\x8c\xda\x02\xf5\xb3\x01\xd7h\xb5@\xae\xb0o!t\x9d\xbe\x86\xa84\xfdMm\x81_\xef+\xbb\xb2\x06\xf4t\xb9G\xcf\xae8\xba\\>=\xb4\xf6\xc7\xa0\xee\xad\xf8~\x06\xc2\xcf\xa6c\x8e\xb5\xcb\xcaw\xc2j\x19\x92\xccW\xbf<\xf6o\x10av\n<|\xe9\x8f\xe4A\xb7`\xeaq\xea~\x12v\x7fI\xab\xda\xf0c!\xe7\xb6\xf9\xc9~\x87(AlRq\xa9\x9d\xb1\x13\xf9\x97`_\x88\x957\x1f\x8f\xef\xb1M\xa3VSy\xcd\xe8*\x17\xce\x9f\xd7w\xe3\x8fu\xb8/\x06\xff\x8d\x04\x9c\xc0\x0b\x9f:\xc3\xa4\xa5u\x14\x97\xef\xf3\xae\xd3Bj\x94i15l\xf2.[\x9a\xef\xf7Ov\x17\x8d\xb5\x9f\r\xbc\xeaSpy\x91\xd2\xb3[\x8e=.\x9d(\x82\x85\x8c#=^cy\xe2py@\xce\xb8\x1aR!\xa4\x87\x1f\'\xb4v;\'Q\xe3\xf5\xa6\n\xe7\xd07}\x15\xd1Q\x92\xb1\xf0\xd3\xf0\x18.\xd9\xa3\xfe\\\xa5\xbf\x9c\xc6\xc0\x82\x1a\xc4\x04\xf6j\xe9\xfa\xf2\xe8,\x17u\x14.B?\xebNi.:\x06k(1\x02mav\x9ec\xea4\xd1\xfc#\xb1w\xbfD\xb4\x0b\xb2\xf7B\xdb`BWp8+\x9eQ;\x95\x98F\xfeukG]-\t\xb7FTe\x8eo\xac\xae\x92\xa1\x8a!\x16"\x17b\xcc9~\r\x93\xa5\x01\xcb{d\xff\xb25%lm\xc0\x02\x01\x00\xc8\xa9\xa4\xf4yb\x92\x10\xc8\x04\xa7n\xb0\xd7\xc1K\xe1\xb4\x1b\x90\xd6\xafx\x9c\x87\x0b`>\xa4`\x1f\xbd\x16\x95/\x84\xc4\xe5\xd6\xd6Z\x06\t}\xcf\x0c+\xc8\xa4\x06\xe5\xf2\xce\x0f\xc0\x85\xf4c\xe9P\xd3\xd5\xf6\xa7\x03\x9d\x88I\x8as\xa68\xdch\x1ew\x8c\x97\xe2\x03\x88\x0e\xa8\xf8Q\xae\xed\xcc/B\xd8\x99\xe8\x1f\xf18\xa2\xc7\x04\xe1$\xc5\x0eK\x8b\x82\x15T3\x88\x11\x97n\xe9\xff\x16Q\xffT\xb6\xce\xa0\x1b\xd1\n\xc4Z\x8f\xdd{\xd5R\xc9\xe5\xb1\xe9\x05.bp\xa2\xb8u\x05e\x98\x03\x86\xaeQ\x14\xc4\xb83\xd4\x86\xb7E+]U\x0f4\xd6~\\\xae\xaf\x94s<\x0c\xa9\xe4}\x14\xc9\xfe\x8f\x15\xb1\xefk\x95c\xdfy#\xaf\xcb\nO\xb0\x98\xf5|!\xf1\xb5\xa4\xf2\xddbN\xac\xd8c8k-\xfa\r\x08\x96!MH\xe0\x82Sy\xa2f\xbf\xc5\x9e\xd3k0\x0b\xa5e`\xe0\xb4R\x08\x99\xbc\xdf\x1d#\x192\x85 ^5E\xfbJ\x16\x98\xa6\x92\x97\xb3\xd2\x8b\xd3\xb8\xdfU\xeff{$\xd0\x11\xa5\x111\xaa\xa0Z\xa0\x02\xb4\xbb"\xa3Sg\xb0\x81\xe9\x13g:L#\xfe\x12H\xe3\x8a%2\x9eU(0u\xe5\xc3\xc8\xe3z!\x9b8g}t\xdf\xbb\xb4\x97RF\xc0\xe2\x8a`X1~4%U\x17\x1cEE\xc6\xcc3\xb4\xdd\xf1\x8fK\x93J\xe1\xce#\x8c_\xcc}/\x0c\xe0Q\x83\x02\xebRT)\x89\xae\x8f\\\xed!\xcb\'\x1f\xc2\xd4\xb5NYtZK\x1a\x05dj\xe5\xa8\xc1\xaa^\xd4\x1dV\xef3\xcf\x9b\x91n\x97\xd7\xe2y\xca\xee\xd1M\x12\x8b?\x90\x0f\xa3\x0b\xd0P9\x9f[\xad\x05\xed0\x92\xfb\xf3\x0fM\xd8\x16\x9f\xfa\xfe4\xe7I\xc9\xa7\xbd\xcc_\x10>\x9e\xc7o\xe7T\xe8\xf61f\x9a%\xd7F?\t\x13\n>\xc5\x1e\xc9\xa0M\xb8\x932\xd2\x7f/z\n\x1f\xfc\xae\xe7}\xf90\xcd\x95\x11\'\x9a>k5g\x97x\x98\x99Y\xcb\x93\x8b\x87\xa8B\xe0\x9c\xebY\xbb\x9fo\x84q8%\x89\x9d\x896\xb7Z\xcd9\xc5\xef\x1d\x94,\xe4\x98\xf0\x0f\xa2.2\xf3\x0fG\x9a`U\x7f\xf8\x08\x01)\xaf\xb1\x96P\xbe\x87,@\xd1\x1b\xfc\'\xd8\xe56\xf9\xf8\xb7\x9av\xca\xb2{n\xb9\xb5\xbe\tK\x03vJzW\x83Hy\xd8\xfd\xc8O\xe04v\x0bd\xd9\xd0\xa7\x00\xc3yo\xa7\xff\ngl\xec\xb0\xad\xa5a\\2J\x91\xf0\x12{\x97\xa8\xa8U\xac\xe4H\xb1\xb5\xd8m\xe5#\x86S\x8bt\xd2oV\xe4w\xfc%\x99X\xeb\xed\x1f\xef*2\x07\xf5bk\xe4kt"\xcf\x01\xf8\x06g\xfa_\xaa\xf1}0<\n;!\xa1\x9c\xbc\x15\xcd*%\xd0$B\xd4@1P\xa0\xb4\t&C8\xa8\xb9\x9ed\xa1\xd0\xd2\xfd\xc7\x92\xbe_f.\r\x94`\xde\x7f\x15+\x08\xc1\x8d\xe4^\x87T\x92\x85\xf5)-d$\x95\xb3\xcb\xc2\xad\xf2Y\x96\xfb\xa6?\x8f\x08U\xcf\xa2q\xefM\x1f\x00(C\xae;\xb0\xc4y\x1d\x89B\xde\xd8\xcf"I\x81\x9e&>:\xd1\x9a\xaa@\x91\xfcdc}\x9eI\xe5K\xf4\x1ay\x87\xaf\xf6fI\xed\xeb\x9be\xbfk.\xb0\x80x\xc1\xfa\x91\x86\\\x9dk\xd7C\xe0e\xb0-\xf9\x8c\x06\xc6\xed\x9b6$\xaf\xc6\xdd(:\xb9P\xa7\x08\xac\xf2\xf7\xcc4N\xd0\xc8hTS\xf4\xcao\x02g2\xcb\xf9\x8f\xac\xa3@\xfcr\x0ey\x12\t\x13\xe5Z>\x9eX\xfdS\xac\x19G\xbd\xfc\xe6\x1b\x91\xb1\x7f\xd1A\xa2\xd3\xe1\xba\x11\xa2\xc5\t{^\xe1\x10\xe2\x03>\xf6O\x07w9\xd9\x96)Mz\xea\t6\x92f\x89\xfd3\xf5O\x87\x14\xb4xL\x0e$\x1e\xe9&\x17\xb1\xca\x83jb\xa3\x1a\x01=\xb9\xe0\xc3\xb8|\xff\xa7~\xd0Pfo?\xa7T\x0c\x1e\x7f\xb1?\x88\xca`\xdd\xce\xf9\xcf\xb7y*\x80HB\x93\x1ft\x84-\x84\x17\xf4\xb4\xde\x14|\xb3W\xe2c\x01\xb5\xa4\xcd\x98f\x08\xab\xd4\xcfFMN\xe1^}8#b\xfc\xe3\x14M\xf5\xe5x;xWSj\x03\x9b\x04\x1f\x06A\x11\xc5\x85W:\x844\xe8$\x07)r\x10?D\xf1\xb6\x07\xb9yR\x85\xae\xc8\x10i=Hn\ti\x9d\x13\xf2m6\xee\xa1\xd2r\xe1\x0f\xfb1\xec7(sw?\xd2\xb0\xe5\xa1\xe7r\x14\xb8\xaf\x06\xea\xb4&\x9d\xe6\x87\xea\x7fo\xfd@Ct\xb6a\xfb%6\xe4?\xdcE\x89M3\xcf\xea\xf9\xc0/\xe8\x94[\xd4DdT\x17\xcf\xc2\xd1\xbf\x7f}\xb0Hl\x19\xe7]\x82\xc7\xdcN\x12\xcb\x91\xffC~j]?\x07\xa2\x8d-MOt\xdd3\x9bB\xa2\xbb\xae\xdf\xb1Ih\x98{N\xf9\xfeg\xd7\x80\xaf:\xef\xd4\xfd\xaai R\xb9\xf9]\x12*\x86?\x1c\x07\x86$\x9e\xec]\xf4\x11\x19\xaf}S\x05\x90\xb6+G\x8f\xde\xe8\xe7\x97\x1b\xe1y\xaf\xe9X\\\xfdE\x80b\xb7_\x11\x14\x9d\xb6#\x08h\xf0\xefw\xc4\xf0\xfe\xdb\xee58\xd7\xf2\xb0\x84\tC\xbe\x11K\xca\xa9\xc6\x15\x87m\xcf\x7f4(7O\xcaW\x01.Y\xdd\xe0\xab\xd1\x8d\xca\x92\x9eP^0_\x86`\x91\x10\x8f`lY\x9aU? \r\x7f\x8a\\\xfd\x92\x12\xd0(u\x7f\xe0&\xdb\x1ai8\x8c8\x9f\xd1\x8a;h\x14\x07\xa7\xce\xf7\x94\xd9x\xbc\x15\xa0\xb3\x9f\x1f\xcb\xaa\x84\xa0\x04N"NHBN\xab\xa9\xd2\xb9\xf2\xde\xde\x01\x8f\x9d\nb\xa1\x07\x0eLA&\x87\xda~\xca\x9e\xc4{\xbf\xf6~\x19\x82\x08\xc9p\x96f\xf2\xd2\xfa8BVz\x8a\xe7@\xb8D.a\xee\xb2\x86\xfe\xab7\x05\xc4U\xa6h)t3:\x94\xe6c\xbf\'\xabki\xb7v\xb7\x05\xb0\x02"\xcc\xc1t\x8d\x9c,\xd7\x19\xeb\r\xca:\x0b\xccZ\x9d\x8c\x84\x9a\xf4\xba\xedk\xf4)C>.}\x8f\xd6w"\xa9\x90\xee\x93\xb0\x8d\xa0s \xa4\x92[\xaa~\x1bG{Z\x07\xfbwZ\xfcj\x16\x19oE\x19%\xd1\x1f[\xa2\x04\x81{\x13\x95\x00\xb3\xcb\xe7]\x16\xe0Q}D\xcc~\x98\x18\xad\xb4\x8f\xb9\xf9\xa8\xfd\xd9\'\xac\xda\xa6\x9b`\xff\xbee\xb6\x8e\x9a"v=\xb9\x86\xdb\xd9ErY\x9fk=>v\xc9=J\xe7\xd0\xa4\xd6eVX\\\xf4\x82\xfar\'3\xect\x95h\x16\xd1\x99^\xd6\x12\xc8/(\xe7\xdf\xa6]|$\xdb\xc0dx\xae7\xf6\x94\x95\x7f\xf5\xc99\xcf\xde[<;\xfa\x969\x88\xde#\xf5G\x8c\xe0\xeb\xc5\xfa\xdaa\xb6\xef\xad\xe1?\x1b\xca\x94[\x97\xbbZ\x9d\xe6*p\x88\xd7\x19\x13\xa4\xd84N\xf27\x81\x94\x99\xa1\xd2\xc3\x1fj\xbcn\x1b-:\x063\xf8C\xf9\x17\xeeU\xee\x8eb\xd8\xc8\x08\x01\x82y\n~\xf6\x0b\x95\x02hB\x8d\x02 \xd5\x94\x83\xcc\xd7"%x\x86\x1e3{$=(\x1fx^\xf6\xe5\x9f*rn:\x0c\xfa\xd3\xc0\xf1\x12*z\xb8\x8e\xfc\xcfh\xd0\x173\t\xc0U\xef\xb7\xc00\xe9\x7f\x94\x06\x07\xc1\xa07"7\xb5\xac\x16\xa6\xa5R\xaf\xcci\x8e\x1e\xcb\xc0\xd0\xbc\x8e\x99b\xcd\xe5s\xe7\x9fK\x10\xf9\xa6\no\x08\xac]\x87nP\xfc\xf7_;\xa6\xbc\xfb\'I\x05\x12\xf4\'X\xd3\x8a6[Y\x95C\xecHkN\xc4\xa6\x07\x8c\xc6\x93\xad\xe14tO\xfbA\xf1\xb8p\n\x18,\xb8\xc7\xf6\xb5\x87)\xdf\x9c@_>\x10\x98{\x118\x15\xc0\x1cl]xB\xee\x06j\x11\xba\xb0\x1e\x0e\x84\xc9\xd0>\x16\xfb\nX\x92\x9a\xdel.o\xfeV\xb0\xb8\xdey\xf4\xa4\xda\x8c+\xfe\xdf\xa2\xc6\xf1\xca%a\xcc\x0b\xae\x9b\x81I\xb35\xd8\xb2\xbd\x1an\x98hy\x04\xc3tbb\x9c\x85c\x07\xe054\x7f\xfb\x15P\xbe\xe7b.X\xa2\x8e\xa7%\xf6\x17v\x19m\x94\x8d\xef\xe0p\x05\xfc\xba\xf6\x0b\xf9`\x11\x94sp\x83\x0e\x80#3\x19!\x8d\xd0*\x08#\xcc\x1b/\xa0\xben\xafZ-\xab\xe1\xe2\xaa\x8er\x1aV\xb2=Z\xefpQq\xea\x0c\tr|\xb6N!\xc7>\x9dc\x9a\xde\x99\xd3!\xc1\x7fy|\x82\x07\x08yO\x9a\x8a]\x8a\xe8\xaf\x96z\xe2\x9cU+c Y\xaa\x8f\xd1\x87[\xa0-pb\xd9!\xd9n\x01f\x01\x16\xa5\xf0\x11J\x92\xf4\xa2\x9c#M\xff\xdd\x80n\xdb\\\xf6\xc8Y3\xb7\x1d{\x97\xa4\x93\x87\xc5\xaa\x16c\x0c\xd0\x1a^\xc0\xc5\xe8\xf3a\xf7\x0c\xe9\x9e,\x8eP\xb6\x9c\xe5\xd1\x00o\x9b\xb7\xb2)nKI\xf8\x01\x85\xf0f\x1b7C\xc6b\xae\xf0u\x96RbP\x04GGJM\xdc\xcd\xfb\xa7\xb72>\xd4H\xfa\x9c\xdfj,\x02@\xe8\xc4\xd2\xa2\xeb\x03\x14\x1c9\xf8\x03y\xee\x1c\x94\xd9\xff\xcb[\x81<\xc3<[\x1dG\x9b\xc0\x9d~\x12m\x9bX3\xe5\xc9\x8e\x99\xa1$i\x9a\xa4V@\xb6\xcd\x08\xe6\xbf\xeb\x0b\x9d1\xfa1_\xbd\xdc\xb2\xcd -\xf9\xf1\xd0\x12\xba|O\xfb\xeb\xfa\xd4I\xfa\xd2\x9b\xc4\xb1\x9fe\xd6\xf0\x8b\xa0\xe3\xa5\xbfIYf\x02\xc9\xe6\xca\x9f\xbf\x81\xce\xdd\xa6_>\xc6?\x0e\xcdK\xe32\xd3$\xd3\xac\x15\xcb\x14\xd6H\xf5\xe5\xc6*\xf9\\\xf6*\x85\x19\xf8\xaaY\x02vE\x80J\x18\xbc\x13\xe4\x98j\x97\xc2\x8b6\xb2\x17{U=\xda\xde\xa4%\x8c\x7f2\xe8\x9d\x1f\x9a\xd1\x16\xa2v\xc7_\xce\x19\x89\xd8\x15\xe0\xb5Y\x1e\xe9\x1a\xf9wpt\x0f\x1a\x7fR\xce\xaf0\xc0a\xfay\x04\xb7\xd3\xcd\xc2:\xd6~\x96\xc9\xe7t\xa7\xfc~\n\n\xdc\x1c\x11S=x\xb5L\xb6\xc0\xe7\xd9\xb9\xce\n\x8b\xdd\xb7in\xb3Ba\xb8\xec\xa8\x83te\x16\x10W^\x08M\xb1ta\x07\x95\xb5K\x1c\x1eU\x96|\x8bv?Z\x0bL\x07\xa3\xff\x83#\x8d<\x17:\x0c2\x19\x8d\xb8p\xa6\x86\x1b\t\xa4NlH\xee\xd2\x7f&\xb7;\xcc\xffQ\'FRmW\x88\xfd\x7f\xc2\x8f\xfb\xcc\xaf\xfc\x16\xd5\xa5l5I\x88\xf7\x02\xd1y\xe5\xa1\xb7>\x87\x01\xeaQ\xa0\xbc\xfa\n\xdf\xee\x05V\xc6\x17@\xccp \xbdD\xb1\x14\xb0\xf0\xedO(\x8f&\x0bF\x87)`\x08f\xb5\xa4\xad\xd1\x86\x1d\xb9\x1f1\t\xdc\xd2SJO\x1c\x98\x94\x8b\x0b\xd7LW\x14pw\x7f\xfd\xa2\xc34eT\xdd\x03\xb7}\xa2\x19r\xa1tGz\x16Q\xf2\x17c\x8c]\xedM[\xad\x00]\x84;\x05\xe3<>\x8a\xc2SxZ\xe6m\x82\xec\xfbkP^#\xa18\x10\xeb"\x9a\x0c|\xd6\tO-\xdf\x89\x0f\xe5\x94\xf2-\t\xbd\x08\n\x10\x8c\xf3\x95g\x0fL\x12\x036\xde\x8f\xf3\x8c\xc8d\t\xc4\xbf\xd7\xbf\xb9\xa8\xad\x7f9-O\xed7\xd1\x81$\xc3\xdc\xf2j\x08\xea$HB\x0f\x15\xaa\x84\\\x809\x07\x08\x0b`X\xe5AXBK\xae$\xac\x9eL\x8f\xbd\x91\xf12\xfd\x95\x93\xa9P_\xcd/\xfa\xad\x97\x8d\xb9+ \x96D\xf8\nx\x805\xdc+\x84\xdf\x82\xa7\tP\xb9\xf3y\xde\x88+\xc2\x80\xae\x90u\xf7\x02\x10xi\xa9\x92\xebzHvqB\xc4\xb30\xc4\x14>K\\\x9f\xe1\xf3xtz\xe8f\xdadz\x8cy\x87\x9e\x19\xe8&\xd6\x15\x90\xf4\x05\xbb\xa1\xbb#\x92sJI\x93+\x0f\x0c\x01\t\x1e\xce\xfd\xdeM\x9b%\x1et+\x06O6x^\xf0\xe0\xe9/\xbf\xeemZ|K\xa3fZ\xd4yXd\x98?\xfcL\x07\xa5CUO\x0c[O\x12KZ\x07\x1d\x1c6Km\xd7&\xe2O\xc2\x15\xe7\xf6\xa2\x08O\xf3\xd0\xa8\x9c\xf7(D\xd5T\xc9,8\x88\x9c\x9d\xc1\x17\xb97\xb2SW/\x1b\xa3\xca\xa7Z\xbfV\xb5\x05\xd9\xae\'\x110)"\xfe\xd0\x01\x11\x0c\x9f\x88\x8cU\xcdN\x08\x10\xdb\xdc\xd8\x07X\xcb\xc6cuh\x96\x9b\xe1\x88%\x18a\x04\xfd\xd6>\x1d\x045\x07\xaeN\xa0\x88\xf4\x92U\xaawQ\xea\x1c\xd4\xec|\x8e\xbdW\x9ce\xf6\x92\x0e\x98\r\x84\xd3\x87\x8a\xea\x01R\x1f\x00\xfer!\xbe\x0e\x9c\xb0\xf4o\xab\x18\xb0_et\xafZ\xf5\xd3\xe0/\xcb\xca\xec\x12\x93\xb5\xe8+\x0bV\xb9\xa35s\xc8\x11\x1f-9\xf0\x1d.\xa5\xb2\xb8\xab\xf2V\xd4\xe8|\x1c\x04\x93\x1c7v:\x94\x91\x1d\xeb\xe7#\xc4-p\xdba\x0f\xcf\xbd\x81s.\xc6\x15C*3\x8c\xf2,\xaa\xe4\xf9\xa5\x92|\x9e\x96\xd2\xbcm\xd8\xc1w\x0f+)QU\xbd\xa4\x84f\xf6\xc7\n{\xdd\x91\x13\x89\x16\x0e\xaf(\t\xaf\x9c\xa7\xd9\xcc9\xb1\x91\xc7\xf1#\xf0\x05\x0b\x9a\xa8\x04A\x16\x1f2\xd5\xc6\x12\x1e\'\x00\xa4T\xbfPp\x9b>\x17\xcd]%\x83\x7f\x0b\xc8\xcd\x16|\xeb\xdd]\x8a\xd1\xcd\xb3\xd1}\xbe\xda\xfaZ)!\x036\x15\xee\xf2\x94\xaa\x03\xb5`\xce\xe1\x8b\xa9\xaf\x19,\x02\xd2\x91\t\xf2@\x00\xc6\x98\x1c\xcb\xdc\xaf\xaa\xe4\xf7\xdc\xb4V}Q\x04OK\xd5\x00:\x81\'cU\xb1\xf7T7`\xaaO:N\xe2E\xc3\xcd\xac\xbe&6m\xcf\xed\xc2c\xe3\xfa\xfa\x8d+\xf2;\x82\x89\xe8\xc18\xda\x99\xb4w\x03\x88\xb1d@\x83\x1c\xbb\xf8v(k\xe0\'\xa7\x1e\xd7[\x8e\xd9\xcfPu\xf4\x85\xcb\xe7\x8c?r_O\xe0\xbf\xc9\xd6\x80v\xc4&\x1c\xb9`V\x80^y\xf7\xf0\\W+\xe0\x86B\xd5\xef\xca\x03\x83+E\x8f~cF\xbb\xd9\xee\xdb\xc3\xb2\xa7L>\x93\xe7_\x1cJ\xf3Bw\x7fF\xf9\xd84\x15\xc6\x8c/,\x88\xeb\\\xe5\xfd\xdb/\r\xff)\xe4m4#\\_{7\x13,\x91\xa5=\x9e\xbbH\x97gb\xe8l=\xf9\xb0\x15\xf4kf`\xc0JdF\x8dW\x91D\xab\x9b{\xfd%\xd3C\xd6pe\xfce\xd4\xfa`K\xa8N)\xaf\x0e\x1f@i\xd9\xc0\x10\x90\x05\xa8<\x86\x9f\xa6\xc4\x13\xf8\xf4r\xaa\xb6A\xb5\xf0p\x85\x1c\n\x81\x1cy\xc5\x0e\x97\xfa)\xac\x8f\xc5_X\r\x0c\x13\xde\x9d\xb5\xd88pR*t\xf6\xe0l\xcd\x07\x87W\xf2\xd2s\xabQ.x\x98\x88-\xb5\x9eT\xf7&x\xf8\xe0\x98\xe7\x127\x81\xc8$6\x14\xb0\x11\xbf\x83\x81\xcd\x98\x19\xbd\x0eY!\xfev\x00\xe2\xe4\xe8hd\x03j\xa6\xe8D\xa9C\xc8\x97\xb6\xd9\x80\xbbV\x9eXO\x14\x8en\x93\x1a\xc7\xde\x86T\xa6\xdd\x14\xd7\n9\xe4#\xeeT\xb5]\x01\x90\x84rT\xaf\xb7[\\Hxd\x08\xe2\xf9\xb7;\'\xa8\x14\x99\x02\xd0\n\xf4ee\x05Gk\xdd\r\x0c&C\xff\xc9\xcf\xf0\n*\x89\xfd[E-\xeci4\xa0\x86d\x01\x85\t\xe1K^\xf5\x14\x04\xe4\xaf\xc4\xf4!\xd3\xb6Y.\x92l\xb3w\xc8Lll\xae.\xa8\xed\x05\xebaL\xf2\xd0\x9b\xd7\x0fg\x07%A\xf7\xcf\'\x91N\xde<^\x0b\xae\xce\xce\xd3\xb1\xff\x9b\x84\xa0\xca\x88D\x05*dI\x14\x9a4\xff=@cZ\x8a\xa8x\xecve\x19\x87\xfdK\xf8z\xb9V\xff dd\xfb\'UK\x87\x9e(\x15\xe9\x90\x0f\xc8{A+\x1e(\x92\xaa\xe7\x9e\xd8\xf5*Q 3\x99\xaas\x18\x88\x84p\xb2w\xad\x12\xfb\x9d|\xb2\xc7&\xfc\x80\x94\xe7}\xe4\xc6\xae1>\xb6\xd4\x9e\xc3\xbf\xe8\x8e\xe2\xba\x02\xe4r&\xe8\x95E\xb9XM\x1c\x99$S\x020\xcb&\x95N\xf0\xeb\x86m~u\x93!E\xf6\xca\xcd&\x07ro\xdaK\x01\x06\x95\x13x\x0c1\x00O\xcd\xa2Pw.\xd3\xcc\xb3\xfbe\xa2\x0f\r\x98\n~\x8f\xff\xf3s\xafs.cx\x9b\xe9\xa4\xb0\xd4\xf4\x1d\xc3=\xb9\xeaB\xe5\xd4\xdeE\x1d\x10Y\x91\xfd\x01\xa3\x85\xbf\xf9$\xdc\x90cw\xcc\x04\xe2r-\xa5\'\xb4>\n\xcdD\xc07\xf9\xce\x9buB\xf3-\xaaf*\x13`\x9a"\x916I\xb1\xcb\x1c\x1fT}\xa3\x96;\x1bS\x82B\xfd\xa5E0-\x8c\xe4x\x88".\x8d\xbek\xc5\xc5\xcc3\x90\xca\xe9\xe5\xed\xe1\x1e\x12\x02\x89\xfdm\x80\xb5\x1b\xa3\x9e\xe7\xb1\x86q\xcd\xb0jQck%e\xf6=Nj\x97\xb4\xba\xce\x8e\x8e\xfb:2\xd2\xc5\xd4\xb2WnHq\n\xfa\t\x05\xfc\xeb\xfc\x05vu\xf9"\xb4\x85\xedVi\xab\xf6\xbf\x93y\x8f\x8c\xd9\x80N\x93\x06F-hZ\xe1+l\x98\xb1\xc2z{\xf2c+\x8bT\xcbF]\xc5\x0f\x19\xb3\xe8\x18\xc6\xb1\xfc\x97\xa1b\x12\xb9\x8dIf~\xe0{\x06\xc3p\xfd\x04\x83\x19\x0f!\xf9\xc3&S\xb8]\xca\xf9o/da\r\xb8&Jt\t\xf0W\xba\xd6$\x97\xed\xd4J\xc3a$\x0f\x94R\xcb\xb5\x81\x94\x7f9\xc4`\xd3\x08\xd9\x84I\xfe\x02@\xbfR\xab(X\x87\xedjF\xcbc\x1cm\xe7<+\x94\x9f9\xe5\x06\x1f\x0f#e\x95v~\xc6\xb1\xa1Gb\xb3&(\'\xf4\xdf\xb2\xa9\x84x\x88\xffJ:%\xb9\xe6?\xff\x8a\x18\x15\xca\xa1\xa6X\t\x88\xc7b\x91k\xc2\xc2\x19\xe0v\xdd\xfaVL\x1b\x08\x9f\x0b\xebg\x18`\xe8\x9f.)\x88\xd0\x15)\x1a\t\x92\xe6~y\xb4\x8f\x01P\xd3\x17\x81s\xcb\x1f\xb7\x1b\x11\xe7\x03|\x9c\x94\x8aa7\xd5F\x13\xad\xeb\x1f\x8e\x91?\xe8\x80\x16&\xa7\xd3x\xe5#\xec\xf3\xa5W\xbe\x88\xc5\xaa\t\xbe\xe2\xb3#\xbf7\x0e\x10\xe3\xb7HHXX|\xb2\xb9\xdc\xa6\x9eT\x00\xa0\x9e\xfc\xc3\x13^\xf7\n\xe0m\xb9\xd5\x80\x8b\x15|\xdc\xee\xadt\x02(:\xeda\xc4\xb0\x8bKd\xd4f#F&\xe8\x9c\x10\x99\x01Y\x08\xe9EvR\xedd\x8e\x0fU\xcd\xa6\x1e\xbd\xect(\xce\xdb\xa8O\xc2\xad\xd2\xe8\xbb\x11;\x8cN\xfc\r\x9f\xc4\xda\xae') diff --git a/dist_obfuscated/src/orisys/nPoisson.py b/dist_obfuscated/src/orisys/nPoisson.py new file mode 100644 index 0000000..799a59f --- /dev/null +++ b/dist_obfuscated/src/orisys/nPoisson.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.488851 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\xa3/\x00\x00\x12\t\x04\x00"\xbf\xfd\xa2\xae\x0f\x19pT;\xd7\x9bo\x9f\xbd\xdf\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x84\xb9!T\xb9\xcbh`\xa4\x03v\xddgDC\x0e\x02\x13\x8f\xb8ig\xe2\xa51P\x11\xadT\x879I\xd7\x00\xec\x14X\xf8\xbb\x19\xcb\x0e\x86\x01l\x00\xbb\xcdF\x1a\xc4\xac\xe8\x92\xeb\x89\x19\r\x9c\xe8\xe2\xd4&\xacd\xa3\xe3\xbd\x9dL\xe4\x06Y1=\xe89?2\x98\x95\xf5\x0e \xd3\x1a\x93w\xf8\x0e\xb3\x06\xa3\x18\x9d\xe6\xd6\xa7F\x1eT\xeb\x0f\x15\xf4,T20\xf2c\x10\xb1\x02wO\x87}\x80\x15\x98\x82h\xd2&\xf3\x06\xc7\'\x9c\xf2\xf0{\xba\xc9\xfc\x9f\xa3\xaa2qW\xdb$vdz+)\xa5+\x9e\x16\xaa\x86\xa9\xff\xfd\x82=\xdd\x87\x88.\x1e\x83\xb4]\xdf\xd8\x9b\x95R@\xf8\xd4,Rw\x80\xca~;\xd6g\x9dBs\xd4\xfeT?\x8aG\xcd\xfe\x08h\x9e]X\x04\xd1\xe7\x00\x8eH,R\xac-\x08\xc1\x0b\xbd\x1c\\K\xf5Q\x91\xfc\xd8\x11\x96\xb9\xc2\xfa[\xd2\x14j&\xe0\xdc\x9b\n\xc4M\x95rl\x03\xe4\x13\xf2\xfdG\xf8\xa9g\xf7K\x06\x12\xbb\xb1\x1e\x9f\xf9\x83\\\xe3<\x0e\x1d\x869\x80\xbe:\x04\xf2H\x9f\x81R#\xc2\x80\xd5$q\x043\xc6\xb4\x138w\t\xe5G\x7f>\x93\x07\xe0\xaa\xd71}\x06\xee*mS\x0c"\xb8\xf5\xf6A\xff\xec\x94\xc4\x18908d\x11\xba\xbb`y\xefK\x87,-h\xb8\x17\x7f,\x85G\xc6%\x92\x01\x93\r\xad\xcd\x0c\x9b\xa9\x03\x00\x00\xb8\xc3zK\xb0>\x8e\x1d\xf0@\x85\xb6a\xd6\xef\xe2\xee\x9c\x1c\xb9TD\x9b\x89\'Dc\x16B\xa7\x9d\xca\xeb4.\xd1\x8a\x08S\xe1\x84TD\xde\xcb\xd5\x11>\x1e\xf4\x8cn.\xc25\xf8\x890\xd2\x7f\xb7b)\xd2Ch\xb7[\x05\x8c\x12<7\x1c\xfaiq\x05\x7fv\xad\xc1\xd1Q\xd8X\xd8\xa1(\x85\xe0\x1e\xfe\x1dS\x99$X\xfa\xdb\x96\xab\x10[\xc5\xbb=\xfaU\xfb\xf28\xbe\xe2&\xc0H\xd0\xe7\xc6\xc5{\xf8:\xa6\x16\xd7]b\xe0-\x08\x83Z\x82\xc9\xe1]\x10\xdd\xf7gH\xa7\x91\x01t\xe8\xa9RTu+5=\xa9I\xdc\xde^\x88\xdeh\xa6\xe4\xe6$?\xa1\x1f\x8e\x1f\xe0\x18\xf6#q\xd1\xda\x88;\xf7k@\xc6\x9eE\x96k\x9e"{\x86Vs\x88\\AHV5_bE[l\xe4dq\xeb\r\xe0\xe3l0\xe1\xfc\xa9\x00\x06\xc8\x8c\xa1\t\xbbn\x0f<\x13f\x9e1\x07(\xe9\xe8j\xd9\r\xe6\x0b\x90q|\xd3\xba`nE\x92\x05\xe0\xc6\xba\xdd\xe3\xc9\x0b~\x87m\xfa>\x9d-\xf5\x8f\n\xf5\x1f\xa6\xa27\x90\x05\xcfR\x0f\xd9\x81\x9c\xf5\xdb+\xa2f\x98\xf8G7C\xe6\xeak\x8a\xb4\xecR$\xff?\x15#\r^#\xfd)%8\xafP\xfd\x86\xbc\xa9\xc7\xfb\x08\xc9\xf9\xf0\xa88=O\xdb\xe5f\xc2_@\x1f\x8a\x85y+\x85\xe8\x1e7-\x13\xbe\r$-\xbaTa\xbf\xca\x04=\x82y\xba\xb8\x91\x871x\xbf\xc9\xe9~\xd4fV\x19\xe2\xf4\xa3#H9=\xc7\n\xd0\xfe\x10\x0bB\xe79k\xdd\xf2\xc6\xc7\x80\xeeF\xdeVQB;\xea\xd9b\xfa\x1a\xd8\x00\x15\x03B\x83\x1f\xfa\x13[(\xbb\xc3\xd7\xec\xd7\x9e\xfa\xdfg\x13\xa1}\'\x8a4S\x80\xe5\xe5"\xc5\xc8\xb5\x9fB\xa9\xf3\xfdT\xe0\xe5\xbe\xcf\xcd\x91\xf8Bl\x80\xd0/\x90\x84\xfeT\xb2@)!\x10\x83\xc9\x92B\x85\xcd\x99\x92\xde8O\xe1,\xa7\xe5\x951O\xab\x81_\xf9\x12\xf8\xaen\xe3\xc3\xed%-R\xa0\x93+\xacC=\xfa\x8cm\xb8\xd3\xac\xb5\x01\x087K\x83@\xbd\xcbc\x93\xc2\x01\t\x18\xddy\x12H\xa2m\x0b\tx\xab\xe2\xe5\x9f\xaf\x13\xe1`\xd2\xa9\x9f\xbe\xa4\x80\xbb\xf5\x85\x96\xa4\xa1\x8c(\x17]\x07\xbd\xea\xf8\xc7}\x11\r\xa5\x96\xf4^J\xdf2\xa2CU\xf8.\xb9n\xb7S7\xc1\xb4\n\xf8"\xdb\x12\xe4ltaS\xe3\xcb\x0e\x8f\xff\xf4\x83\x9c\x17r\x89\x98\xea\xc9T\x93gT\x99\xa7\x91Y\x8d\x94\x00\xdd\xdf\x02Bo\x91l*<\x06\xadX\xae\xec\xa5\x02\xc8N\xd5\x195\xcc84q"\x97\xb7\xa6G\xb7\xf1\xb7\xed\x8e\x1d\x97o(\xbb\x99F\xaa\x1d\xea\x16I\x81\xad\xeb\xaa8\x90Z\x99\x94\x80\xb1;_\xf9\x1e-4\xb9\x19f\xe7\x18\xd0b<\xca\xed^\x7f/\x9e\x86\xaeH\xe8&\xbdN4K\xd7\xc5\xef\xddA\x0b$\xd3s$\x12\xec\x9b\xa8$\x18\xae\x96\xd8\xb0[\xd2\xe3\x18\xa8e\xa9\x95\xdcR!$}\xf0:Lp/\x04\xa8[n\n\xe7\xbf\x9e\xb6\xde\xb2\xf5\xccY\x18\xc9_\x1db\xdf/\xb6\xdf&,h\xf1\x15dv@\x19\x14]\xdd//\xf9\xc76\xe6\x8b\x9fZb\x88\xf2\xafVr4^\xb7\x18D\x00\x88\xb3\xde\xca\xa3\xcc\xf5l\xb42^\xfb:r*\xa5kQ\xe5\x85\xe0\x01\'\x0e\xfb\x19\x1cJ\xb0^\x9bJ\x90\x90^\xa0ne\x17\xba\x1be\x02\xf3\xb7qkPle\\\x84\xbe\x85\xc9~\xd0\x8f\x15\x1a\xc8S\xa1r\xd4-\xa1\xbb\x19\x86\x1dLX\x81\xc7\xa2\x82\xdbi\xb9\xfb\xde\xd0\xc6\x06j+/\xc5Df\x01l\x92\xb5f%w\x06`\xed\x19\xba\x7f\x9b\xd4\xbeT=\xfe\xcd\xcc\xaeU\x06\xc1o|}~k+\xae\xa7-u\x1b\t\xd6\xbc\x9bE\xcc\xf0n\xe5\xc0\xf8z\x15\x0e\xcd\x97n?\x15\xb0\xe9\x03\x99\x84\n\xa4\x82\x10d\x9d\x17\xaeV\xff=\xc8\xdb\x87U\x94\x1aP\x86\xbf>/s\xa4Bz|\x1c\x15\x15}\xb3qPG39E\xbb\x83\x18\xdb\xfc0\x7f\xdck\xb59B\x91k\xa8\xf5\xc0b\x11\x8f\ti*}\xaa\x12s)\xf8\xa1\xec\x11\x9b\x19\xcbq\x17\x0e,6\xb1A\xf1N_\xd4*\xdb\xe2\xd5\xf3M]\xdd\xfb\xa8\x8eL\xfe\x80\rw|#\xf8\x88\xfbb\xea\xb4\xf0\x8c\\\x05\xe5O\x07\x8f\xb4 \xe4S\xddIZ R\x86\x82\x91\xab\x8a\xa6\x0f\xab\xd20w\x91\xbaA\xa0\xd4\x8d\xdc\xd5$\x84i\x87\xf3\x8fX^\tN\xb1PLy\x1a\x81\xeda\x8a\xce^\x12\x93d\x9f\xcb\x1b]5\xba\n3\x04\x19>\xf2uG"\xb9\xc4i:\x18\xdb\xb2\\\xcf\x96\xb3I\xcc\xdb5,^\xca\xb8w \xe0\xec\xd5\x18O\xecjn2\x9a\xfe\xd4qVOY\x9c\xe4\xf91\xfd{5\x11\x00\xa0}\xa1\xfe$)o\x98\xcd\xbc8\xf0\x17H\x9d\xbc9\xde\xc2\x04\x08\xdc\x06\x8a\xd5\\\xe5\xae\x19_\xb1\xe9k#\xdc\xaf]\x03#\t&A\x98t\xc4\x95\x1fg\x8e\xba\xc97O\xd4o\xa3F\x8c\xec\xca(yP\xc6}\x9fl\xc59\xfdy\x84y\xd2\x9f\xa2\xb1\xd7[\x07\x9b\xe9\xfa\xe4\xed1\x00\x95\xda3R\xb0\x96\x89\xb7,\xf6\x0eJ\xa7\x8a\x91RB\x14\x0c\x84<\xf7N\xbd\x1f\x88\xb0\x80\x0c\xad\xa3\xae\xfa\x9f\xb3\x11\xc77\x1f\x15\xfd\xeb\x03\xdfH\x8a\x97\xe5L\x9d<\x9d\xc9gG\xaa\xa5Rz\x17\r\xad\x94u\xd232v\xaf\x98\xcfI:\xeb\x8aw\xd8\x97\x8bGSv8\xd6=R\x92\xf4\x19]\xa6\xb6`\xcaU\xf5\xbe\x92#\xf4E\x159v\x85\xee;n\xa1!l\xe4\xa7\x07\xf8n\xe7\x0c\xc6\xb7\x0c\xbf\x11v\x02\xfb\xff\x16\xc3\xedC\xac\xd9\x1e\xf0V\xe5\x06\xf4\xc8H7\xfb\x99\xf0]\xdcAZk\xad\xde\xe6!\xea\xad\xc7\xcal\xdc\x9c\xb0\xd9)\xc4^\x9b\x7f l\xa8\xdf$\xd5\xff\x8e+3X^A\xa3I<\xbc\xde\x9f<\xe8%e\xab\xee\xe2\xc0\t\x02\x85\x7f\xe0\xe31\x1f9\xc5\xe0\xffy\xf5\xd2}\x93\xf5$\xccn(\xe05\xdb\x96\xe6\xff\xbc^\x03\xa8-\x18F\xcf\\0\xdf\x9aL\r\x00\xca\x96\xb4\xbdc,\xe8*\x9d\x88\x8d\x13\xfa\x0c\xbf\x8f9_N\x8a`PR\xda\x1f\x94\x7f\xdf\t\x16\xfa\xe4\xa3\x18\xf6\x9cD\x01\xa5\xb0hm\xc2y\xf9r\xf4\xc0\xff\x89R\xc9*\xf2`\x98\xb6\xdbJ\xebf\xb0\xd8t\xf5g\x01\x7fR#"=\xb2\x1d\x97\x00\xa7\xd0D\xc6\xb4\xe0\xfecK\x94\x8cc\xba\xb5/\x17\x18\x13\x84\xd1\xe3\xe2\xb7>*c\x1a\x81\xdc\xfb\xad\x938\x0c\xf7+\xd4\x9b4\x1fs\xe9\xa6\xbc\x1e\xee\xc1\xe6\xceL\x9b\xe2y\xb0\xdbS\xe8\x8e)\xe4|2#\xfc\xb6d\x06\xba^\xd4\xf4\xeeU\x89\xdb\xbb\x91&~_\x12\xb4\xe1\xd1$\xea\x0e\x05\xa8\xfa\xa2\xa6\x99\xcf\x0e\x00\x12\xb5\x9eT\xfdf\xe4\xec\x90\xf3\xc0`[\x11G\x98i^2f\x19\xab\x88\xa1\xb6\xb2\x16?\x93\x83\x05\x16l\x19\xea\n\x8a\xae\xd6{\x86Go\n\xff\xc5S\xcen.\x82:\xf0\xf9\x91m\xc7\xac\xa8\x9e\x87\xf5\xc5\x87P\xa3V\xdb\'\x19g\x1ft\xa8#\x97\x8a\x16\x01\x1b\xf8u\xe04\x11mj\x0c\xa7\xcc\xa6\xa9K\x8a_\xf9\xda\xae\xfd\xa4\xce\\\xed\x0c]\x13\xecv&\xf8\n\x89\x81\xf5\xa0&2K\xbeD3\x1f\xb3\xd8 \x92z\x86\x8b\xd95F"rU~\x91z\xb0g=\x1e"\xce\x8a\xe2\xffL\xd1\xdfn\xf8.\xd3\xe5},\xe8\xca\xcb\xecm\t}=\xa05>\xcf\x8f\xcd\x8c"\xcbv\x162\xa2b.\xda\xa1I?\x9e\xcfN\xa9w\x0c\t\xb1{@\xf3[\xe3\x95\xb0\x95\x85\xdc\xe3{\x8f\xbe3\x1c\x80\xc2PBAi{\x80\xf7\x9eh\x90i\xc0Q\x96\x17\xe9\xd2,\xf0)\xa7\xa6\xe7Zs@\xe8\x973\xd6kY\r\xab:\x83},\x91i\x81\x87 \xd98P\xcf9\xae\xe7\x8f\xd9\xcc\x13:\xb2\xe7\x94\xd6\xf8c\x08\x17\xa6\xfb\x02\xd5!\x0e\xca\xc2?\xa0\xa4\x17\x1d\xf7\xdc\x0e\xd5.\x92\xd4KQ!_\xb1\xd3e\xda\x0eDq\xa467\xab0\x0c\x97\xecs\xae@1{\xd4\xb1\xd0\x88Fn\x0f|0\x19\xf6\x99\xde\xb1 Y$d}s\xd9\xfe\x02\xb3\x14\xdc~\xd1\xd9pd\xb9\x92\xf4\xa2\x0e\x0fz[?\xf5\xba\xdf\xe4\xb3w\x1d\xb2{\xafS\xc6\x9d\x14\xbe\xd9\x7f\xd04)6\x15c\xc0\x1f\x0c<\x0f\x18\xf4\xb3\xe9\xb9\x8f\xbfbQ\xfcnp\x1c0k,\xda`5i\xf2d1\xd8,\xdc\xeb\xf7\x88\xee\xbby\xe7\x05%I\\\x14\x16f\xa8\'V\xe5\x16{\xbde\x18\xb4\x87\xb4G=\xf5c;F:\x00\xb2\xbd\x1e\x05\xc6\x14\x12"\x97\x1a\xd9$\xfeQ\xe0\x1av"\x01\t\xe6\xfb\x95o(\xdd\\\x81\x9c@\xc4KI\x16\x94EIQ9T\xe7\xd3\x11f\x17\xd9|\xf1\x01\xf0\xcc\x06\xe0\xb3\xce.7~\x97^L\xf8\x9ct] \xecW,\x99\x9e$,\xa7*<\xab~I\x92\xec\xd8;f^]R>I\x83N\x00\xfcV\xff\\o\xe3c\xcc\xb7#\x8b\x1e\xb7\xf5\x01\xae<\xd7\xd9\xab\x1a\xcb\xb8\xb8\xab\x95\xf0\xfeY\x06\xa6\xfb\x1c\x96\xeb9\xcc\x08I\xc8\x00\xdfKt\x11E\xf1\x19V\xa35\x92Sj\x9a\x88K9\xbc\xedv\xe5\xf6\x0cO\x95}T\x1c\xd9\x98^\x89\x9a\xed)\x13\xe4\xc83\xb2\x16!\xe4\xb7$\xa2\x18\xc9\x8d6\x08\x1c\xe4+\xa7\xb2\xe6\xd7\xa2\'$V\xd5\xbf\x17\xf6Lf\x93.\x1c\x95\xf6K\xd8g6\xb5\x85\xdc\x9bG\xd4\xb5\x88\xc5\xfe\xdd\x08\xf5\xaf\xbf\xfcj\xb3\xbf\x92\xf5\xfb\xf0\xea]8\x0c\x0f\xbe(?;\xa9\xba\xdd6\x93\xfen\xd7&\xe1\x9d*\x10\xcd\xda\xa0cm^\xc1\x91o\xee6\x07\xfd\xddu"\x10\x8d\xe7\x81\x0c\xcc\x18\x9c\x8c\xf3N\x1c\x98w\xbb_\x05/5?\xe4\xbf\xbcOh\xf7\x04\xb8u\x12\xbc.\x15\x84\xb0\xa6\xed\xf6\xc5\xf2*\xb2$7!!Uf\x9b\x8d\xa4iu\x93\x07N\x84\xe9n\xe8r\x04\x8fky\xa8\x1d\xac\xf4\x82\xc32\xe2\xde\x9f\xd3jN\xf2O\xb2\x7fJk\x04\xbe\xb4\x03cYD\xda\xaa\x0b\xa62\xa5\xf5\xf8\xf0LK\xbay`\xe7\xcf\xf1\xa2:\xb2\xe9\xe1(\xac\xd0\xe6\x15\xd7B\xa1\x82\xc6\x0f\xf4I\xaf\x93\x8e\x9f\x0ff\xad\xe4\x9b\xd9a~r\xcf6\xce\xccm\xa5\xb6x\xe8R@\x96\xbcf|2\x7f~\xaf\xa3\xc1\xe2f\xeb\xf9\x1f\x06\x1dgz\x01{-\x1b\x9a\xa1\xf3\xe4}|\x1fva\xaa\x14\xe4\x96]\xc9J\xee\x8em\xc2R\xa3\x12\xfak\xf3UE\xec\x11\x91p\x8a\x1a\xab\x95\xde3\x0f\xa4\x8c\xdc\x9f \n\xa7Q\xcc\x9e\xc6\xd5\xbc\xcc\xef1\x98\xc0K\xe4\xd8\xaf\x1d\xc5\'\xfc[\xb0\x04Q\xf8\x86\xd5k\xebf\x1b;R\xa8\xecJ\x07\xf0\xb9\x14\xe06\x8b\x91\xae\x1d\xa3\\\xc2_\x14\x96\x01\xbb\xb2\xba\xf2/\\/#@\rt\x0ep>\xc4w\x08\xcagly\x04}\x91z!\xf8L\xa4Y\x15aR\xadj*2-\xa7\x8e\x8f\\\xd7>\xef?\x99\xc2<\x96;\'%7>\x8a\xcc\xdb\xe4\'\x7fW\x82Q\x86\x05\x92\x01\xe3\x0440M\xe4\xe3\x1b-H3\x12\xe2\xf2M\xe1\x0e\xfa\xf6\x90\xc1}c\x1d;?\xea\xdb!TvM\xb7\x97\xa6\x1b\x88\\-R\xe0}\x88\xf5uqNn\xfe\xc3%\x10\xf4\x9e\x1c\x8dU\xd1\xc5e_\xa3\xee\x88\xcd\xce\xd0\xfb#\xfe,\xc96\x055\xc0\xff\xc3?W\x85S\x14y@\\\xe4\xbc\xc71\x94\xf3\xc7\xb7\x98#\xe9\xf3\xd9\xaa\x00\xd3\xc0\xe5[\xad\xb0\x17:p}\x0fK\xea\xc3\xfa\x88\x90\xcc\xac%\xfb|\x8f\xf4\xf0yW)j\x19\xb2g\xf2/|[\xd3b\xf3\x1b\x16%\x9c\xc7\x13E.\x86\xcbm\xbb\x9a\x9a1\xe6ps\xd7\x15\r\x07$\xa9\x0eW\xeeG>\x01\xba\x89(\xdc\x96\x16\xfc\x1c\x19\xfa\xb8\xe3V\xda\xb0\xdcH\xb5\xff\xc2\xdd\xdc\x9fQ\xf8o\xf5\xe4\x87\x9fnJ C>\xe0\xb7\xacH \x94C\xca\xb0\xfd\xc2\xdc\x9e\x9e|\x16ft\x9e[\xdcH\x95t\xd9Q$\xe0\x9a\xb7\xa2\x15\xa5}& 7\x18\xd4\xc7\x0e\xcc\xbd\xd37\x1d\x1d\xa7\xe4\x83\xea>\xff\xf26\xaeC\x17\x1f#\xa0J9\xe1\xd7\x1du*w"\xf3=(T\xcf\x17]$&\xb0\x1aX\x92\xeb7\x17\xc3<\xbf\x00\x02\x8b\xa3\xeeh|LtB!\xc07c\xad\xff R\xd5b\x90\xc1\xb0\x08\x88\\\x9fb\xad\xd5\x14\xa2\x0e\x1a\x8a\x14qU0{\xfbw\x88o\xb1&\x8fx\xb3\xd3g\xf0\x13\x143\xa50?\xe66\x0c\xfc\xa7a\x9d\xd8\xcb70g\xa1\xfc\r\xe7\xc8\x1d\x0b\xccSt\xbduDD-!*\\\xb7\xbaH\x81\xd9\x01\xf7\x98\xad\xfc\xed@\xffcz\xe5\xe6\xef\xcbg\xab\xf6\xc9\xe0\x88\xbdj\xef\xc3\x0b\x8c\x8a\x1e\xf0\xf8F\xc78\xa6V\xaa\xbe\xe6\x19\x11\rae\x9eV\x17R\xfbHa]\x85je\x04\xdb\x12X\xb5x\x10\xac0\x93\x98H{@\x134\xc5\x9e\xd2\x91\xcd\x8c\xbdI$\xcc1`\xe2)\xca\x0e\xe6\xbeVpz,\xd9\x14`\x18\xf2N\x05_\x7f\xba\xa3\x08ZM\x8f\x92\x13B0\x10\xd7\xd9"\xd0\xfd\xc6\xbb\xb9\x9e\xeb\xb9\xe2\xaa%\xa3\\$g\x8e\x04\x937\xbc\xc3$\x95\xab\xb6\xfc\x88\x18\x94\x07\xa9\x1b\x03\xc1XR\x18\xee\x1a\x88*\xe7aD\xed1\x9c\x18\'\xea\x15\xcdn}\xda;\xaav\x1c\xe2\xe9jX\x8b\xd3\xdd\x0bu\x8ek\x13\xd9\xd0\xf3\x01|\xc5M}\x14+\x96\xf4pb\x9cl\x92\x1e\x18\x89\xba.gq\xfc\x95x\xffzyl\'=\x84LZ9\xb0\xea I\x18\xb4\x1d\'\xa5\xdb\x1e\x8b\x1a\xdc\xfa\x8a\x83:~o\x0f\x10~\x02\xe8\xfa\x84\xf0qs\x97E:_a\xceG\xb4\x1b\xa6A8\xff\xee\xe3\t%\x9fH\x05\'\x87\xa4d\x91a\xc4\xc5\xacG\x86\x8e}\xc5\xee\x16E!\xec\x8d\x188\xbaAN\xd5L\xcd\xadh\x81R\xdd\xfb2\xfe\xdd\xe8|>\xb1\xeaq\x07 \xa8\xa7\xa9\x1f\xd4\xa5\x83\xe5\n\x9c\xa6\t\xc4\xf9\xa4qNt\xab\x95\xe8\x0c\xfbX\xbf\x97\xc4]\x01\xac+\xe7<\xc8\xaaF\xefv\x02A\xb9\xffR\x90q\xb7\xb8L\xefv\xb0\'ss1\x14\x88T\xfcm\xede\x92\x7f2\xf7\xcd \xf3\x1a\xda)Y\x06`\xc7x\x9a\x8d\x8fD2\\\x85\x80g\x159\x85\x8aA({\x82\xcd\xc69`\xe2el\\\x16\xdb\'\xed\xcc\xbe\x05"\xd6GY\xecX\xb0\xddv\x0e\x10\xbf{\x08<\xa7\xa1\xfd\x07\x12l\xde!\x1dG\x12\xd3$z\\\xb2\xe5\xbb(Oh\x03\x87\x96\xf9\xbcd\xe3\xad\xc9\x1aT\xe4]\xe2\xf65=\xcf\x06\xff\xd6\xef\x9d]\xf8\xcb\x99}\xb7\xd3\x93D\xcf-\x81\xdf\xadm\xa0?\xdd\n\xd5k-4\xf4\xdc\x9b\xcf\xfd\xe0\xa2\xf2]Tr\xf9\xb8_\x14\x07\xc3\x8d\xaf\xdb\x0e\xa9\xcd\x02\xed\x89\x7fw\xe7w\xe11#\xc62~\xd8\x94(u\xd3\xe2\xc2Y\xd4\xd90\x83\xfa\xff]3\xd77x<\x11\xefw\x8e9/\xd0N\xb2\x1b/\x96)\x9ao\xc1\xfaU4\xa5\xe9\rmE.\x17\xf8z\xc2\x14\xac\xfd?\xe6\x0e\x11$\xff!\xc3\x0b\x16\xdc\x0fo)\xea\x9a\x05\xb7\xf9\xd4\xa7\x00\\9\x11?\x05\xc4\x0bi\xb3\xf2u\xf3\x1b\x07\xb7I2<$\x07\x11\xe9\x8fN\x0e\'\x0f\x1e\x80\xa2\xcf_\xf6(~f\xe9\'\x14\x1f\r\x97\xa4\x88\xdb\xd9S\x93\x0c\x0e\xaa\x94\xdd\x8c\xb7l.\xc0\x0b\xb0w\xc7\r\xcb#F\xe1\xddv^0[L.\xd8SC\xf6\xdb\x04p\x88\x08\xb4\xc6\t\x88Ql\x94^\xc9\xd0\xab\xcbF\xd6\x05~\xc0\xb0|\x00\xe1\x1d\xd0p\xdf\xab\xe1:\xa6\x8cd\x93\xbc2u\xb8\x8b\xccQ\x18:ur\xc5k\xed\xc8M\xb6\xbe\xec\x91H\x9e\x83\xa7W>-\x07Jj\'\x91\xd9=\x01\x93\xc6C\xf8*O3\x06]\x90\x11?z\xb0.+He\x81\xd7B\x00l\xe8\xdc\x94tB\xafM\xdf\xd5\x07\xed\x80\x8c\xb1A\x13\xa3\x98\xaa\xdd\xb0\x97_\x87Q\xc8\xc6\xff\xf2(\xff\xcf\xe7Gx\x9a\xcePC\xbb\xd2u\xf5\xd8#\xd1\xa9\xb1\xdeE\xe6\xd0\x04\xeaK\x8fWZ\x16c\x86{\xc0\x83\xa0\x80cj\xcc\xcd\x15\xc8\x061\xf9\xcc\x9c+\x1a%7\xca^\xaa\xf3\xce\x87z\xff+\n\x01\xb5h&f\x97\xac\x8c\xe1\xb3\xd6\xd3\x9d\xe9\xe5*\n\xdd\xa9(\x88_"x\xb0\xba\x1efjB\xd7\xc3\x96\x928\xd5\x0f{\xa6\x80\x13\xebo\x08\xbbL\x149\x83\x18r\x86\x8a\xc6\xdd\x86\xc1\xea2A@\x06\xca\xe6\x0f\xd9o:\xe8\xfd\xee\xda#\xa2\xaeW\x8c\xc8\xe4\xf8\xdcQV\xd2\x08\xa4\x91\x7fh\xce\xda"0\xac\xa7\x19\x9e\xe2i\xac\xd8\xac\x07\x83\xed\xe7 N3!\x0e\xe0\xf6T\xc8~^\xdat\xf9\x99\xcb\x91\xdc]\xcc\xba-;\'\x1b\x93\xd3r\xa0}\x81\xa6\xfd\xd4\xd2O \x8a\xdf\n\xcb\x99\xb6xg0\xdf15[\x7f0\xac\xa1\xe4G:\x13\xdb^\x8d\x83\xf7\x17=M\xdd\xd6?\x15\xff\x88/\xc5jb>\t\x8f6\xbf\xffo^\x11\n\xc1\xec\xb7n\x1cY\xb5Jv\xa3\x9c\xa5w`\xf2\xb6 j\xad\xd7i\xf8L,\xd5\x03\t\xc9\x80\xb9l}%\xf5\xafv\xe4n#\xda\xf3$cKTqm\x85;\x00\xa9\x08\xcb\xa5\x00f\xfd\xa3KM\x97y\x8a%V\xa4k\xa8\xd7\xb2\x87\xbd\xb9\xfc\xc5\x86x\xdf\xd7\xa2\xb4p.\x90\x10\\\x81\xf3\x9e\x9d-\x10\xe6\xda>k\xe21\xd2T\x86\xf5t\x12x\x9f\xbfX\xb0\xb6\x86\x1a\\0\x7f\xbd\x16\xea\x97\x1d\x9f\xe0\x9a15\x12\xfc\x87\xe1za\xf1\xfe\xa4\x04!\xba\xd4\x805\x0c\x86\x14/?6m\xa7\xa9\xc2R\xe9Q\x93\xa2\xe0\x012\xdd\x06Hd\xb3\x9d\x92r>l7\xb9\xf0\xcf\x93\x95\xf6U2fg\x83\xe3\xdc\xc3\x00%\x90g\x10\xc3\xdc\x8f{\xe1\xffy\\\x0b\xb5V\xc9\xdcv[i\xde\x88\x7fpP\xe1Kyk\t\x96\xee. \x9ad|\x83b(\x04\xf24&\xa14\x17\xbf\xe8\xe8\xf2\xf6\xfa\xdc\xdc_\x90\xd9y\xf5\x94\xe4\x01m\xf4\xd0l7\x8d\x01\x00\xc4\x0c&}\x1c\x99\xceJ\x8c\xfd_\x01\xf6\x14b\x14\xd6\xc7Q\xb5\xd7U\x03&\xe3\x7f\xb98\xd8G\x06d{c\x81\xaa\xfc\xed\xb3\xacu\xbb\xe0\x01BF6A\xcbQ?\x05#\x95\xb8\xf4\xbfD\xd9\x14\x7f\xcc\x1e\x99L1\xec\xf2\x90\xee1\xbc\x0fZ\xcd\x94\x1b.\x06~\xbf\xcc2\xbc\xae\x8e\x86\xaf\xa6L3\xe22\x12\xdfT!\xd2c=\x83\xe12-\x0b+\xf0S\x80]\xa7\x87\x8a\x1e\xbdm\xaa!x\x8b/\x9d\x82$\x96\xa6\xa1\x80\x8e\xe1\x1a=\xc0\x8d-c\xd5/\x8f\xe6\x9d,\xc1\xf2\xe4q-\x18%\xef\x99j\x15\x10lB\x067\xabq\xcd\xe0/f\xf9\x86\xbb\xd3\xbd\x9eg\'\xb9"=\x89\xe9"\xbd!\xceoD\thE\xd1\x95\xee\xc9\xa9\xff\xda\x8b\xefY`9\xa8\x07\xed\x14l} \xd7@!\xf8\xfb\xdb`\xd6\x9d\xff\xdb\xa6=\x17\xa0\x05\xb0\x1d;\xb9\xe2\x93\xfc\xf2\x94r\x1d\xce\x01\x15\xa0;,\xbeo:\x1f`\xc1(\x87\xfe\xf4`\xce7\xe3\x9c\xb5\xdbk\x08\xa5\xcb\xf2P\xb0g-\xfb\xb5qY\xdc\x12ha\x90F\x03\xf0\xae\xb9\xc7\xe4\xa1)\xe1A/^z\xa8\xcf\x08\xb0;>\xd4\x8f\x14\x0e\xfec\x96\xc9\xa8yB\x8b\xd2bw\xaelW\x83\x83\x80\x92\xaa\xccyHW\xdeFyF\xb4\xe8\xce\xc3NK.m\xf3\xc6\xcac\\\x0cv\x15\xc7\x06\xc9Ge\x83Q\x10\x86\xa6\xf5U\x06}\x95\xc7I\x986\xcd?\x94U\x1c5:i6\x8d\x84\xdf\xbb/\xc9c\x894\xb8\x9d:\xd0\xb3\x12\xce\xfeqd:8C\x97\x95)\xa6cS\xa8\xb6M\xe0\xee\xc5\xb4?w\x11\xe7\xf8\'g\xa63\xb0\x0ez\x9e?\xaf\xe1\xf3\x8f8\x83&\xe17\xac\x03Z\xfc\x06HF\xc6Ou\xa1#\x1du\x8e\x98H\xfe\xc5\x80\xaa\xe1\x90\x17"\xc2\x9a\x9b`/R\xef)&2~\x0f\x90\rl\x921\xe9U\xde\xf5d\xd8\xfc\n[]LS\xb4\x1d\\\xe1\x9a\x81\x91\x03\x1f\xb5,\x83\xe6\xbbd\n\x9c\xc7\xa7\x8dO\xb3\x03\x04\xfc\xb0\xcc\x82\x16#\x1e\xf9\xfc0lW\x125F\'\xaaZ|&N\x83\xa10.\x01\x07\xd3i\x92\xaa\xdf\xe8r\x10\xa7\xb0k\x9a\xa9gaD\xe5\x02l\xff\xb0\x12\xe3\x82H\x89\xcfm\x83 \x15\xad\x0bF\x17\xf6\xaf\xccU\x1e\xa0\xb8\x7f\xe1\xb1\x1f\xd9\xe0\xaf\x0c\xd83<\xdbm\xf3\xd2\xeb&\xd5\xb1P\xe8H\xe1\n\x06a\xd0U\xa8\xc7\xe9\xf8\xa5x\xd1\x9a\xce\x89\xa9mR\xa6\x8cs\xe8[3kv\x86\x9e\xc6\xed\t\x87\xf2\xdf\x07n\xd9\x15\xcf\x13\xde\xdf\xc7/\x8eN\x97\x92\xd6\xb3==\xb5\x81\x82b\xf5\x86\x80W\xa3\r\xbbg_g$)\xea\xca\xc3\xfa\xd1\xfd\xe482;\x06m\x04]m\xc9\x1b\x8d\xb4\x13\xdc\x91i\x93\xe0n3\xc4IfA\xa8\xe8)l\xc6\xb6=\x08\\\r\xea\x95x\x00hWo\xa7\x93\x91\xd5\x83\x16\x15\x0c,\x98F\x1d/7\xe4\x0b1$\xd5\xfa\xbfp\xe4\x85>\x90\xbc|\x90(\r\xdd\xaffQ^\\\x1a\ny\xd6(\xce\x8a\x95Bh\x9aN\xdf7\xc6\xb4aZu\x0c\x89\x1eVSV\x7f\xc0\x87\xd1b\xfbP*\xab*qr/z\xd8\xa4\xf8\x08P(d-&_\x97M\x1d\x06\t\xe9my\x92\x90]m\xfc\xfa\xe5\\\xda\xb4\xc5\x97\\\xcd\x1e\x98\xee\x18\x822w(\xe1rK\xba\xfc^\x7f\xa3\xb1{\xb2Z\xc5\xec\xfb~W~\xa1\xfa\x15\x14+\xe8\xc5\xed\x9d:+\x8d\xca]\xa6\x8f\x90\x8f\xa1\xe5(h\xa2\x84I\x89>BL\x19i\xca{\xd1\xfc\x05]\xf1\xbe\xb5\x83W\x11\x02\xac\xfa\xc3z\x07\xe0\x05\x18\xf7:\xd9su{g\x81\x84\xbc\xccaQ\x906\xa3\'6\x9f\xcc\xfc\xbbY\xb521i\x9a\x89\xd5\x89k\xf3\xc4#.\x8bn\x91\x95_G\x8f\xa9\xaa\xfb\xe1G\xb1\xc8\xe0`;\x86]\xb8<\xea \xda\xe0\xe38<\xdbcuXl[Nn\x9bW\x89p\xa0\x05d\xc5\x1f\xe4\xe3Y-\x7f,\xa1\xd7W\xe9\xcd\x985\xa8\xcd>\xee\xb0\x18\x84f|\xa8#\xb6\xc9\xa4\xe2\x87\xd9L\x9b\xba\x8cy\xa78\xedi\xe0\x13I\xa3\xdf@\xc0\xaa\x9e\x03\x88Xc6\xda2#\x06E\xb4\x12\xdb\xa2t\xe49v2\xbf\x83\x16:\xe8>\x15\xe1\xe3\xc8\xd3\x85\xa1\x1fC2\x8f\x85U;\x93\xfa{]N\xc9\x86\x82\x83\x98\x0b\xdf\xe6\x0b\x13 \xadXX\xedA\xd1e\x9eS\xcf\xce<^ID%\x946\xf5\xb0\x0b\xd19\xde\x90m\xf9\xdbw\xdd\xb2\xafuY\xa46!:\xbeo\xd5\xce\xdb\xcb\x07Q\x9b\x07~\xfd\x18\xea\x12m\xa7\x8a%L\xc8\xe2&\x99\xaf\xd9\xd4\xd3\x04\xb6\xe4D\x9c\xe8\x12h\x99\x97:\xac\x86?\xd5\xe6\x8fw\x16Ork\'M\xd4\'\xf4\xb5\xc01\xc5\x96%t\xacR\x97jjPsF\xd5e9^u\x96OW\xa4\xcfo\xfd\xa1\xba\x0c\\0\x95;\xa1\x06{\xbb\xa2\x81|\xca$;\x98\x9cb\xfe`4\x1d)0\xdcb\x18;~\xe9\x8a\x8e\xbe\x04x\xd0\xbc\xd2\x06\x8a?\xed~\xf6=D\x9c\xce\x8bH\xad\xd6\xe8\xc23\xa2\x89}\xd7\x1a8R\xf1\xf8oZ\xd4QK)\x1d\xc1\xb4\xb6 \x9f9\xcc[\xa5\xf0\xc55Lj\x01\x12\xe8\xbb|\rM\x87M\xb7z6\xa2\xf1V\x93\xff\xbc\x9f\x013O[\xc6\x00\x90\xe4\xa8\xd2\xaaD9\xf2"\x98e\x85\x9b\xd7\xe4\xd2}\xfd2\xf1u\x81\xc1\xb77\xeb Z$A\x1fz2\x822M9;e\xf5\xecb\xf9\x81y\xc6\xc9RW\x91\x1a]\xed^U\xc8;\xec\xc3\x83\x87\xd0\x86\xe7\xdelb\x8b!\xb0\x1e\xe5P\xdbi],^#GW\xdd_\x1c/\x98\xee\x17i\xfc\x04\x19\xed\xfcvC[\x12\xa5\xd6P\x81\x1f\xa3\x9dx\x1c\xcd\x12\x8ca0\xcd\x94\xa3\xf6Y\x94\x05\xccA\xf2\\\x87]\xab\xc6\xca.0\x13\xd9E\xfc\x0e58\x8f\xfa\xb4v\xdf\xc3\x94:\x96\xda?\xb9;\xa6mKl\x95}d\xfc\\\xf1\xca\xcd\xdf9K\x13\xbf\xeb\x813\xf1\xb0\xd8t6@H\x83U\x03r\xe8\xf6q\x1f\xf8\xe0\xd6\x0c{\xb4\x03\xc3K\xdb\x8c\xff\xac.\xdb\xc4\x85\x8d\xc4~\xf3\x195n\x00\x81\xf5\xae\xf1>%\x9am`\x11K~\xe7\xb2\xb5\x14\x15\xb1d\xf8\xf8\xd7\xb7C\x07\xf6\xb7\x10\x04*\x8ct\x1f\xebq\x05\x05Ct\x89\xd9\xce\x95i\xa2\xd0X\xa2\xae\x8a\xa5\xbc\xd7\xab\xc2\xf4\x80\xad\xb6\xaa\x0b\xc3\x12\xe1\xdb\x1b\xfaS@\xa4Tp\x9e\xa1\x19\xf8\x91\x89\x14\xbc|-fo8\x92G\xd7\xf3L\xd8\xbc>\xc7H\x04\xbd\xa6\x94\xa8\t.\xb1c\xb52\xd0\xf6\x8a/\x91\xcd\xc2x\x008\xd2i\xd4\x89R\xd4\x83\xc4\x0fG\x0c\xdf\x86\x16.\xf0\xe3P\xa1\xa9\xdd\xd2\xbc\n\xb8\x9d\x92\xe2i\xd1F\x98!\x9b\xc2G\x11r\xcc\x11e0l\xb8Y\x86\xab\xa2Y\xe9\xd5\xe1\t.\xc9\x83\xdeDq\x9e\x99\xa7\x05^\xf6\xe5\xd2X>lr6\x9f\xc9\x18i\x0e\x07\x13\x10\x8c\xc8=d\xd8\xcc\x90\xb9\xe35\xe2\xda\x92\x0b\xdeQ\xcb\x1dLM\x91a\t6d\x1f\x999\x904\x16\xeb\xa6\xef\x04\xa5\x08\xb3\xe2\xd5\x89\xad\xbb\x81\xcdC\x9c\x07\x8c\x16\xb6W/x\xc0Y\x07\x98\xe0\xa6\x92(\xbc\xbe"\x06C\x01\xbb8\xce\x92\xa9\xc2\xe6\x0cA\x81\x15c\x9c\x0eb\xcd5\xfcsa\x9a\xcd\x0e\xd5\xb7\xd4\xc2 lI\x10\xcbAq$\xbb>\xea\x90\xef;w\xf1\x13C^\xcb\xa6(\xbf\xdc#\x173,\x8e"\x9b.\xacc4\xf2\xbc\x9c{\x80\xac\xd3\x8a\xcdM{\x0f\x15\x0b\xc6\x8e\xbd\x12 J\x1e\xb2\x077\xc4\xc3\x13\x97\xa6\xac\xb4\x8a\x7f\x0c\xe9\xb64/r;\xf1\x04\x1c\x13\xff\xcc3\xa1EEG\x89\xb0S\xda\xec\xc6\xe0\xafW\xe8\xd8\xe6\xa0\x96\x96\x84\xd5\x95\xf8\x95T\xef)\xbd}\xb9%\x85\xadi@T\x93X4\x8df\xa8N^\xb3K\xd1\x1d\xf3\xf2{\x91\xd6\xad\xd6\x94YMBB\xae\x19\xab\xf4p\x19\x01n]\xdc\x94\'\xc6\x9d\x08^\x9f*\xf1(\xf7\x98\x1b3]\xb2u`\xbd\x0b\xfb\x82\x87\x07\xde\xf9L\x01\xcb\x85R\x16\xbe\xf8\xbb8\xe0i\x01\xb3\xee \xf0\xc9\xca`O\xff\xe2\xfa,\x10i\x9dP\xf7\xe3B\xfc\x81\xca\xfe\x91\xe2c\xe2,j\x91\xb9\xbeR\xf1E\x8c\x9bE\xab\tD\xe0\xec\xd0>\x1a\xfa\xe5\x04-8\xb3Q\xdd\x9dR&\x89\x8d\x99\x03\xea\x80\xa3-z2\xaf\x017\xfa[\x06m,NN\x92\xc4\x06\xdc\xc8\xca4=O\\\xd1\xeb\x8b\xbc\\1\xad\nm\xed\xf8\xe9\xbf\xc3\xf4\x1c4\xa0\xe6\xdd\x87\xf3W\x82\x99\xb9\xac\xfao\xba\xc2\xa6\xe7\xd6b\xf5]\x06\xd4\xc4\x1d\x98/`\x9fs\xb0\xfb\xeb\xc8\xba\xaf\x97c\x1dSQ\xf5\xce\x16\x7fB\r\xd8\xf2\xe5\xe1\xfb\xa4/\x1c\xa7X%\x1b"\xfbm&\x91e^Wu\x8e[QlE\x8b\x7f\x83`\\\x00\xce\x8c\xe5\x83w\x10\x8b\\[w\x85\xbb\xa5qNt\xf6g\xed\n:\xe4\x94d\x87\xa1\x95\xd0\xd9\x15t\xf2\xa9\x82\xd2\xef\xf4\xc5.\x93\xc0~\xc0z\xeb\x13@\xae\xe7\xe8R\x14\xd4\xfcU0t\x19\x9c}4\x93\x86s0Yi\xfe\x07\xab\xe0.Z2\x95\xdf\xe2\xeb\xac#}\x8b?\xc8\xc1\xf1\x1ds\xe3\xb6\x16J\xc1\xa3pMH\xdf\x9c\x8b\xa94"S\xf5\xa4Y\xd4\xdfZ}6\xac3l\x94\xdd\xfc\xdc\xdb\xd5\xa7\xd3\x87\xce\xef\xf8z\x1b\xe3\x11\xc2\xef-\xa2\xdf\x99k\xb7\xb7\xce\xff\xd4\xc6\x93\xfa\x0c\x1e\x9d(\xe96\xf5\xcd\xd0C.\x9b\rG\x84\x1b$\x95\x116jL\xf4\xb4\xf6q|\x1c\x05\x19-sN&f\x8d\x98=z\x8a\xc6\xec\x94#\xe4\x8e\xa7\xcaUo\x0c\x06\x99H\xeag\xff\x00\xdcF1\xd8\x18\x17\x81\xbf\x15\xab\xa9_\x8c\xb3\x93m\tQ{1W&G\x0f#\x9c\xf5?i\xa9\x86\xa1\x82\xda\xc9\x87U6\xc3\xcf\xb4%\x13\xa2\x99\x1a\xa3\xfb<\xe5\xebs\xae\x0f\xb5\xde=\x9eA\x8c\xdb\x1d\xe8\x95tB\xb6\x9ah<\xa6\xa1\xa0\xa3\xd7\x98\x05\x00\xe1\x88\xe5\x01\xde\x16b\xff\xbb\xfdG\x84D\x95\xf8I!\x03)\xf9\x01F\x0e\xb8k\x06\xf0\xc6Wp\x9b\xdfx\x0e0\xe5\xf3\xc3\x10\x92\xce\xfa\xe6\xfd\xca\xc4n\xf4\xfcG\xf5\x84\x19\xac]\x067\x99\x8b>5\x80\xd6\xf5\x91\x0c\xc9Z\xaeX\xdd\x02\xfc\\\xbe\\N\xefB\xfa\xa5P\xa7\x9e\x7f\xe9\xaa\x83\xaa\xdf\xcc\xe6\xff\r\xc1)\xaa\x91-)|hc\xf7VZ\x7fXN\xd0\x05\xcb\xb4\xdc#\x103Sm\xaau\xc3\xfd\x10:\xd26P\x82)\xad\xd0GI\xf9\x86m\xb0\x7f5\xd6\x94\x18_\xd17\x0e\xf3\x83\xa8A\xaa\xd4\x0c\x1c\xaf\x0b\xabJ\x17h\xb1w\xee\xbc\xd7C\xa5\xf0(CV\x97\xd7$;\x85\x18\xa1\xd1[\x80\xbf\xe7\x16\x83\xa5D\x82\xd3<\x0e\x97`XC\x11pbH\x89#\xe1B\x7f\x99\xdeJ\x99cX\xd3\xb3N\x92\x85\xf9\x83I\x18\x86\xa3\xb07n\xeat\x00\xae\x04\x8b\xd93\xd4\x83.a\x19\x0c\xbd\x9amq\xd1s\xba\x07\xd8\x1a\x12z(\xb1\x13\xb4\xc0\xd0\x92\x81\xde\x0esf\x90\xda/Io\xf7\x82H\xc0\x13\x17K\x03xz>=:\x92\xf1@\r\x95f\x19K\xee\xd1E\xc4\x8a\x85xE\xc3\x87\x1b\x81amj\xdf\x99\xa5\x86\x9f\x0e\xad\xb0\x90\xa4AZ\xe9f\x9b\xeeU\xae\x82\x9d#\xed}\xdc \xc1^\xf6\xb2\x05\xc1U\xed\x83\x89]\x02A-\x96{\xfef\xc0\x81\xd2Y\x1f\xe8\x9b`\xc5\xcc\xee"8\xf9\xff\xcc\x1f\xb8\xe1\xad\xdb\xda\x95\xfa\xf6\xe9\xbd\xf5\xb4\xcaZ2c}\xde\xc8N\xfe\xfa@\x8a\xfc\xeaG\xcc\xdb\xd6\x84D\x10\xc1 \xaf\xae-\x9c\x80\x1c\xd4\xb7\x0e\x0e\x1a\x95\'\xce\x10\x84)\xa2\xa8\xc8\xa2\xb8SF!KF\xd0W]\x93\xea\x83\x9e\x8a;t.\xe3_\xed\x0c\xfb\x9aY2\xc5\xcc\x81\x8a->\x8a\xe3D\xea\'\xcf\xfb\xf1\x18U\xf2\xbc%\x1d$^0vU{\xd5\xe9BP=8\xa6\'\x16N\xd4\xb0\x8e\x98\xd4%\xa5\xfb#\xbd\x91.0n\x1er\xa3[r\xd9<\xaa\xf4(\x19\xc9)\x13\xf5O\x02o\xfe\xdcGZ\x9eA\xa5D\x9d>Q"\xa2\x17\x0cP2\xa6\xb4\x8fo\xf5\x96L!\xf5\xd5Pqk1n\x9c\x06\x0e\x91\xbc\xd66\\\xbf^\t\xe3\xd5F@X]%\xc2\na\x80\xe8\x83q\xc3<@\x9b\x97\xb6\xa5\x0ci\x9c\xeb2U&\xa9}f\x85\xcc>\xf1\xbb\xb5O\xf0\x9dM\xf7\xe5\x02\xb1\xd4\x98W\xbd\xac\xfeM\xb7\xdbx\x98b)\x86:\xc7\xc6#\x1a\xce\'\xb9\x04\xd4\xc4i\xb4P\\\xcc\xc2\x1a\xea\xb3\xa2fJ\xcfT\xb8\xd5\x7f\xb6\x9e\x137\xe8\xdc\xb9\x9a\xf6\xa8\x0c5x\xf7\x1e\xc3\xd4\x90\xabV\xa6)@\x95I\xc2\xbf\xc8\x7f\xab\xfe\xd5\x91"\xcb\xc5\x07\x1d\xbcJ\xce\x19?\x1b\xff\x13i\xfc\x95\x07\x11ui\x11O\x9bW\x0c\x8b)*\x81\xe4BB\xd0\xcb\x87\xb6\x86\xaa\xbef\xa0\x94\x19\x16\xfdXH\xae\xa6\x17jv\x80\xce#,n\xfd\xc7\x05\xf6\x96K\x9bx\x9e\xc2\xe5\x0e\x94\x0bE\x8af\x13s\x07\x15\xb8#\xe9\x05\xfa\xedu\x08\xe5aJ\xa3\x189,7A\xf3\xbc\xf2\xbdD(4\xe3x\x13\xf7\x054\xdcp\xc0\x9e\xa0\xcc\xf4\xeb\x958U:\xfa?\xd3k\xd9\x94S\xd7,\xe0\x13N\x94\xff\x9c.\x9e\x03p47u\x90R\x8ax\x8eXs\xc7\xc0/\xa8\xd7>%S(}\x8e\x1b\x90o\xbf\x9a\x04\x0e\xaa\x06\xbf\xcf\xbf`s\xa7p5\xf9H\xc7\xbee\x0f\xben|\x07RC\x0f\xb1a\x1a\x13\xc7+]\xff\xdeh*\x86E\x03\x96\x1b\x99rG\xba\xdcCGQR\xcb!C(y\xb3\xe8),!r\xf1P\xe3\x13G\xdc\xd09\x89\xcf\x9b\xfe<\x08\x02\xb7\xe3\x9d\x81>\xc5\x14V\xe4\xa7\xa1^\x07_\xdelat\\.\xa9\x1b\\\xa6\xc0Z\xf1\x94\xaeo%G_{\xbc\x9c\x06ITm\xefkZ\xed[\xb3=\xbb\x91\x87\xcc\xac`\xdcuio\xe4\xe6c\x95N\x1f\x8a\xb2\xfe\xbe\xce\xa5\x97\xb9\x03Q\x1aq\x9bq\xa8\xd3\xb3\x86\xf8;\xfd2f\xf7\xa5b\xe4\x7f$\x1a\x16\xba]\xe9\xebX\xe1\x96\x90i\xdf\x92\x8fp\xdc\xab1S\x0c\xfa\xeb|\xf2\x02\x99-\xbf\x97\x18\xab\xbd\xfe{\x83\xa0N#\x84\x80wZ\xde~\xb0)\x88\x0b\xb2\xe3\xfa\xadt\xf2\xc4$\xf93\xac}\xa8"&;{6#\xc2\x19\xb7\xc0\xa4\xcb\x0f\xdf\x17\'\x93$+j\xc8\xdd\xfeJz\xaaga\xf2\xe7\x02\xb4\x12d\xd3\x04\xad\xa9[\xa1\xd6Y\x9aXJK\xf006\x17\xd4\xe1uZwX\xd3R\x9b\xac\x06g\x95\x19\x06\x1e\xe2\xbe\xce\xc6ZJ\x87\x1a\x14\xe3\x9bl{|\x18Ix\xc1=m\xa2\xba\x03\xc0\xeb$\xb4}\xd1sy\\\xcf\xab\xd8>\xe1\xa7\x02\xf8\x12A"jQ\xad\xbd\x8d\xc8o\x14\xfee\xf6\xf5\xed\xddk`\x04\x19\xd9M\x13x]\x11\xd1(\\\xb4a\xe6\x98\x1f\xca\xfbr\xbb\xa0\x90\xe9\xbb\xf2;O\xd8*\xaa\x07\x16al5\xca\x97\xf4\xf7\xd5\xe7}\xf0\xbdO\x9a\x96\xb1\xb3\xbb\x9b1\x8a\x01r\xa1\x04\'\xc3\x03\xd7\xd5\x1a\xcc\x1fR\x12\x1d\x98\x1fr\xd1\xf4\x1eE\x99\x8c\x1eP\xe8:m\xf7r~p\x86\xf4\xc5\xf7\xa6\xbf\xf4o\xc5.\rH\x1b\xc8\xe5m\xce\xa6f\x83\x0f$Y\'B\x05U\\\x06\x85\xf0\x08\xc6\xddb\x0fL.\x9b2\x04Sp?\xe3u-\xbf\xdbXE\xb9\x9a8\x1a\x8b\x18\x95/\x02\x12\xee\xa7\xcb\x15\r\xd2#\x90\xf5\xd23\xa7m\xaa\xd1\xfaH\xe0\xfbG\xe9\xb3mFHN\x9c\xe1\xd6Q.\xae\xb2\x04/\xdeO\x8e\xe8\xfb\x06,\xf4\xb1\xe5\xc0\xce\xd9\x85\x9d\xa9\xf2Y@\xe8\xf3\x18\xddX\x15\xaeZ\xacbZs\x92\xf4\xa4\x05\xf2\xdeh\x07\xc8\xb9y\xcd\x07q\x02u\xc2\xbe\xb9\xf5{?\xa0\x1f\xd9\xda\xf6Ay\xba\x87M\xf9Y\xea\x94\xb80+*\xc0\xac\\\xb5\xed \x15U\x13\x12u\x9a\x19\xcc\xf5\x1fM,\xb1\xaa\x1d:\xc3\x0cf\xcb\x1c\x98\xd8\xee~\xce+\xe0\xa3[/\x8br\xec1\xd1\xc8q+\xbe\x86\xb4%\xa89P\xab\xde~\x98\x91\xd4\xf5\x88\x8c=\xff\n\xd5cu\xd5\x96/e\x03\xb5\x9fI\xbePM\xacM\xfbM).\x04\x9cS\x14\x82\xa2\xd2\x111\xdb\x03\xbe\xe1\x88K\xcd\x1fQ$\xd9\xe7\x05\xac\x06\xceW\xc2\xe5_\t(\xdfDh\xf2\x9a\xd1\x8e\x88\xc1K.7\x1b\x93\x12\xefl>\x14J:x\x90\xc2\x00\xd9-\xea\xa7;z3z`r\xa6\xe5\x01\x8di\xb2H\xfc\xa5\xc2\xc3vJ\x8c\x14T\xfa\x0f\x9a\xcc\xcdEEKW*`+\x8a\xef\x85A\x91S\x10\x080\x84C\x1a\x0f\x90\xff\xda\xf6\xe3k\xaa\xf8\xbd\x98\x8agp-g\xa9\xdfbC\xd3\xfc\xda\xee\x0f\xfb \xf6\xf7\xca\xa4c\xd6\xa3\x10\xf0IWM\xa9\xedy\x90\x8a]\xcbt\xe1\xe7\x9b\x9f!]\xa8\x1c\x83\xcd\xee\x8dH \x1eJ\xdc\xa5O\xf6\xe1\x99\x88\xf9\xd2[Xjb<\xb2\xc6"%\x9d\x82\xadQ\xafv\xa44Z\xa0\x90\x98BC\xc2?\x1d\x19(\xba\xd5/\xdcVA\x8dpE\x0c}5\xe6\x8a\x00\xf8\xd4\x9d\x97\xe6J@\x13m\x99\x80k\x82T\x01\x93\xd5$4\xd9\x07\xae\xb6i\xb9\x97)\x0e\xe5]@\x90\xcf\xdcL\xea2^\xc0\xef\x88\x91\x98\xe6F2\x81\xe4;\x83\xbd\x99\xc3]\xa2\xa8\x08\xe7\x04\xeb\xee\x81\xf5\x9f\x8e1\xee\x1e\xe5b\xc0#i*\x93\xe4\xa5\tl\x1f\xf14%\xa0\xb4\xc9\x12[\x999\xde\xf5\x05\xf3\x83\xa0\xbaJ\x14\xe4*M\xd9\xa5#\x17\x9c\xcdCZ\xc6\x06I\xec\x88\xf2\x93\xcdp\xa9\xcb\x89\xb3\xc8oIe\xc7j\xcf\'\x1fN\x1a\xad;\x88Ei^\xa2;\x13\x8e\xda\xe5F\xf4\xddQBtPe>-\xb4\x19\xc8\xb0\xb7I\xd2\xff\x8f\xef\xc2M\xe3\x8f\xb5\xfc\xb3\x11\x90\xdd\x8eA,\xf8\xc4\xe5 %\x06\xb0\'\x9eR\x14\x8acs\x10\xcd\xbb\xb3\xbb![\xad\xc8 \x19U\x80\r@\xe5 \xfb\x82\x0f\x12\xfb\xcb\xcae<\x0f`H\xe1^\xff\x18VU\x97\x1d\x9d\xd0\xa9l7\xbf\x0f\x0c3*\x14ZOc\x13&\x94\xb7l\xd07\x96\xdc\x11F\x85\xd2\xd9\x84\xc0\xd62\xee\xdc\x13\x9fz\xd8\x1ew\xe7\xdb\x06\xf3\xe0\x18\xfc\xf8QK\x86]\xe8\x0f\xee\xa6.\xbaa9\xdf\x95\x13R\xbc#\x14\xe4\xc9+\xeb\x1b\x84\xf3\xf6\x00\x9a\xd9qu\xf7\xdc\r\\\x8f\xd6\x12\xf6\xe9\x10@\xbd,\xd7\xbe\x85\xe4}M)/\xc9\xe61E@H\x90/\xfae\xf7;\xb5\xfcs\x9b\x9b\x831 \xbd\xc4\xc3\xe7\xdf\xfb\x83Q\x90P\xc84\xc3\xf1\xc2*\xaff0P\x10\x06w\x15\x9c-V4\x1fm\xb3\x91\xdct\xb7\xde\xd0m\x02*\x02\x87\xd9\x87T\xf4B\r\x02\xc7\xae\xec\x10C\xca\x1co\x95\xf8\r\x05\xc3Yt\x06M\xaa\x97\x17Q\xc1o4*\xa4\x8c@\x7f\xaf\x0e\x89{\x88$\xae\x97\xab\x91+l,V=D\x97\x95\x91\xfbQ\xfb\x90,s\x006ek\xc5@\xd0Fe\xd7\x16\xf0\x194\xac\xd2\xb4\x9a\xfb\xfb7\xc8\xb7](K;\xe6\xba\xee\xee>=\x9e\xd4E\x11\x9c\xbd\xb6\xbe&\\Y\x99\r\xa9\xceLn\xc9\x0c\xe8\x85\xfcm\xadD\xb6\x90\xd4\x16w\xb6\xeb\xd0\xfd\xbe\x7f9lg\xcc\xb6Dq\x1c\xb9J\xa5\xf613,\xd6z\x11vH\x1f\xf0\x88)\x14\x10*[<\x03F\xe9\xb5\xc2_\xea\x0e\xcd\x93#-\xe6\xc3\xfem\x8e\x8a\x936&\xf9\x00\x98\x0f\x87\xa2\x93r\xc5{\r\xb4\x1d(q\xc5\x12\x85&\x0f!\xdcK\xbf8F\xd9\xee=\xbcb\xff\x9fJ\xca\xab\x9dg_\xc8n\xbe\x11\xa3\xeazn\x82\xf9\xfe\xeas\\\x08\x18^\xdaO\x04\xcd /\xbe\x8eo\x93d\x05\xaf\xd9\x13\xdboE\xd0\xd1\xdb\xa3\xdc\xf4}\x91sd\xbf\xe6\x98+\x18\xdaf\r\xb8\x0b\xcf\x9eM\x0e"\xc9\xeb\xb6RDHC\x04:\x84\xa9V@\xfa +\xdb\xa8\xda?\xcd\xf7\x97#\xc0\xa3lr\xae\xed5E\xe0\x96\x92\xeb\x91&\xad\x07\x8b\x1e>?+s\xa9\x8c\xc5\x18\xbf\xf3Y.1\x9a\xe4h\x87\x98U\xa9\xac\x8c\x007\x01(\xf4\x02y\x94\x1e\xfd\x1c\xeep\x1d\r\xfc.A\xf5 \x97s\xcc\xf9<\xc2I\xcd\x0b\x17\xc3\xf5\x17&r\xcf0\x12s\xb6A\x807\xf6\xc4o\n\xe2zy\xf5\xef\x1d\xd9\xc9\xc9^\x87\xb6\xaeD\xe2\xcd\xf1\xca\xd9\xef\xd0\x81S\xc5" |\x179C\x9ce\xba\xa5\xc0M\xdf\\`\xc3\x87W\x80_+8\xe1\xea8O\xdfRJ\xa2\x0c\xdc\xe7J\x11\xc0\xf7,\x8e\xf6!,\xd7vnK\xc9[D)-)\xf7\x8e\\\xa7\xbd\xbc\xe9\xdf\x96Z\xa3][\x8e\x89-\x03\xca\xa9\xb4\xee\x1d\xec\x1d\x16\xb31~\xf9\xedg\xcfp\x07\xbc\xff\x7f\xc1vT(4GVOc\x8ec\xf3\xab\xa2\xdc\xdc\xeeb\xfd\x15\xf0\xf36\xc2P!\xe47j\xddmT\xa3\xa2\x1c\xff\xe4\xdc?k@\xa6z\xc4C\x1c\xfe\xddu\xa9\xe8\xb8T\x9c\xc4\xba\xf4r"=^\xe6z\\\xd5\xd5]\xd2Sq:\x08\xcc\xd9\x87\xe7sq\x12Y\x8a\xe0\xf0\x80olV\xe4\xc4\xdf\xa5\xe3\xf2\xae\xccA@\xf6@\r2@\xbb\xe2\x04\x10{Y\xf9\xce\x81\x8b\x8d\xde\xe7\xd0\x9e\x00lQ\xfb\x8f\xeb`\xed\xabcFR\xd4\x89\x98\x10\xd1\x16G%\x84\x83mG#:\xec\xb1\xbf\x0e>\x1d\x82\xf5\xcf\x05\xe4\x8e\xa9g\xba\x1f\xc5!\xdesV\xd0\x98V\x8b\x8a\x8d\x98\x0e|;Ka7\xc2\xed\xca\x81\xe0\xbe)F\xcf\x7f~7@\xb1~\xbd\xf8\xe6\xde+L\xf5\x15U\x86\x8f\xcd\x16\xcc*o\x0c\x15\xad/Wr\xfa\x89\xd8\x82H\x87\xa5\xee\xbdA\x17m\x82\xdf\x0es\x9d\x9a\xccl%-t\x97\xe7\x85|\xf6\xf32\xc2\x92\x12\xf8\xcc\xab|K\xc0fGd\xde\xa4%\x08y\xe9f2y\x89\xd2\xea') diff --git a/dist_obfuscated/src/orisys/sensor.py b/dist_obfuscated/src/orisys/sensor.py new file mode 100644 index 0000000..8b8b7a4 --- /dev/null +++ b/dist_obfuscated/src/orisys/sensor.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.543686 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00sD\x00\x00\x12\t\x04\x00`\xf5<\x88[\xc6\xd22\xe0U\xbd\xa3\xd4\xfe\xf3\xfb\x00\x00\x00\x00\x00\x00\x00\x00\x80\xd7\x1c;A\xb1\xf1\x86\xbd\x8e\x939\x04ht\x7f\x1a\xa6\x84q\xd9E\xe7z\xc9\xad\x9c\xb0\x8d\x945\xe7\xc2)9w\xb4\xd38!\xdb\xcb\x0e"u4X\xc1" \x18\xcd\xeb$\xb0m\x00b!b\xdb\xbd\xb9\x08UY\x12\n\x8b\x14\xfeM\xf7!\x81G\x0f\xf0\x96x\xfft,\xd0\x94rK~\x1a\xb6\x17\xbc\xe9\x91[\x1e\x86z!\xa9T\xb5\xa5\xe0n{\x13\xafh,b\xeaY(\xa4li\x9ch\x16<\x01\x1ah\xfd\x06d\x13\xb03\xc1\x16k\n\xf8P)\xc2\xeb\xaa\xd4\x02u\x07\xdb\x0b\x1d.\x88g\xce\xa7\xdfR\xba\xfe\xedP\x14\x1f/\xd7\xc5\xab$5\xc0\xc8\x05\x8ey\xe0\x16\xb0\x06\x10T]n\\$`o\x9f?\xc2\x85\x82\xa8\xa2\xe9w\xbffm\x82\xe7\xec\x15^\x81>W\xade\xdaN\xf7\xa3v\x83\xac\xbd\xfa\x81\x19\xc7(\xd8\xe2*E\xb5\xddL\xc1\xd0\xbe\x0e\xe8a\xa3\xfavm\x08R\x890\x9a\xafD~\x7f\x89kV\xdbC\xfd\n\xb3#\xc9 \xb8\x8c\x17\xf1y\x12x?\n\x151\xd5{\xb2\xec\xb4\xbe\x0c\x95\xf5@\xd1J0\x87"\xc0\x11gR\x084\xe9\xc0B\x97[\n\x82\xe4\x17\x05r\xee\xb1(c\xa84/\x8en|\xad\xc6\xcelk\\\xae\x81{\x80\xa6\x10|F\xa9\xc3\xc2\xad\xfe\x1fXd\xee\x91\x99;i\x86\x86f\xe3\x10\x893S&e\xb5\xf2(\xe7Q{n&\xd7\x80\x9b\xa1\xeb\x97\x93\xeb6\xbd\xe9\xb4\x9b\xb0\xaf\xef\xe9\xbc\xc5\xae?\x84\xd8\xe2\xedK\xb8\xbc\xca\x96\xe9\xe4\x81\xfc9\xb5\x890\xe9\xe85\x05\xa4\xf6\x1a\xfe\x85\xab\x8c5\xa9\xc4\x97\xa5H\x1d3\xbeJ\xc4-\xb0\xb8ZX@\xaaU\xf7\x13\xb1\xabZR\xfb^A\xb04\x84w\x03\xae\xec\x0b\x0b0\x93`\xdc\xe3\xc2\xcf\x1f?\x81\x17\xc7\xd9E\xdayu\xce\xf7\xa3/\x03\x97`,L\xa0\xc2t\xd9#,&\xf3\x1b\x1f\x1dT\x104\x016\xb5\xc5\xdeQ\x11aho\x94\x9a\xf6\xec/\x96;Vz\xb5\x9el[T\xa0T\xf8\xc1\x04\xaay]g\x16\xf9\xf1\xf4\x84\xec\xd0\xa7\x98\xf3H\x92R2\x12y\x992\xb9\xb0\xfe\x81$\xc0\x9a\x98\x10\xd9\xf60\xa7\xab/4Z\xf2\x04\xf6\x99f\xe8\xf6\xe4H\x85\x1a&\xb7\xfe\x9e\xd4\x19G3\xeb`]z\x08\xc4\x7f@\xac\xc8\xc5DLG\x80\xd0\xac\x9cm\xf3B\xb6NYKv\xff\x0ee\xd7\x05h$nwr4\x7f\xafn\xd3\xb6gS\xd1\x95G\x96XUc\xcd1\xcfj#\xc7_\xa3\xact:\xd2J\xd0?l\x8e7,\xe6\x17\x8b\x07\xed\x0b8\xdb&\xe5\x81\xdc\xe2\xb7=V\xfc\xd8\xfdZ\xe5\xc8\x0e\xb3\x8c~F\xb4\t\xf5\xa1\xe5\xf2\xb2\xd1\xb3\xcd\x89G\x11\xa8\xa6\xf6\xeb\x18\xab@\x99\xc9\x00\x14\x1a\xeeg+\x8bL\'gT\xb4\r\x0c.>7cx^\x96\xf7\xd1\x9b\xa6\xfdy\x07\xa5Q\xca\x12\xd6\x02\x0e\xd8\xa9Q,Z\xfa\xa7P\x11|\x021\xa2\xec\x01\x19-Zu\xf3(\\\x03\xdf\x86\xa0\xbd\x1c\xb4\xecl\xcf\x9b\x1c\xf1}\xa4PD\xefWg\x1er\xe2\x0c]\x98\xe8\xd8\xd4\x1b\xd6\x03\xef\xee\xdal\x9epw\xcao\xbb\xa1\x8a@\xa1B\x14\xe9\xbbM\x1f\xe9(\x9d\xf9z\xe0J\xb4\x13)\xbbr\x83\x95sj\xd7!\xcf\xb8\x9f\x19\x95A!\xe9-E\xfb\xfe\x006c\x13\xb5\xb4\x1c\xf0\xc7K<\xa0\xe7p\xa9\x80\x1b\x18\x18\xedU\x12\xe15\xcd\xbecH\x8e\xd8\xb5\xba\xc0\xc9\xbc\xf0<\xc4m\xe6D\x02\xca\xd6\x913\x977w+|\r\x0e\x17\xbfrb~\xde*\xb4}\x92>\x14:>\xe3\xc8\x80\x97\xdc\xdcT\x02\x11Xm\x8d,S\xa9M\x04\x8f\nR G\xe7\xccK\xc4J\x95S\x89\x08\x1d\x0f@\x17\x8er\xa9\n\x85h\x9e\xfc1\xa2\xa4U\x8e&\xc7z\x83\'\xf9N:\x9a\x99\xe5\x07\xdb\x01\x87K\x97@5\xdf[Pz\xaf\xdd\x83\xf0V\x1f?\xd0S\x96\x8a\xb4f\'\x16\x81\xb2\xc5Y\x1e`\xfa\xfd\xbc,\xbd@\xf4\xc6\x19\x16lq\xa9Cm\xa9\xf5C\xf9W\xee\xfd\xad)\xf9\xb2\x10\xdb\xe8\xc1\xbf\x8c?-\xe3\xfa4`\xb6h\x83\xd8\xf3\xc8i!\xe5$_|u\xa2\xbb\xff"\xbc\xd6\x0b\r\xd9t\xcf\x05|6\xca\x838|5\x06\x81\xddn\xca\x8e\xd71\xf7\xbb\xa4\xb5\xeb\n\xac\x1e\xd4w\x8a\x9ee\x1cP[x-\xf9oA\xe91[Y\xec\xf3\x83\xefp9&u\xe6\xe7O[:\xfd\x19\x80\xe9\xdcj\xc9\xa9A\x88L\xd4\xcf\x80\x9f"\xb5\xb1\xecK\xd1{W\x92\x0f\x86\xe49h3\xff\xd6f\x13=\x8e\x82O"\xcc\xba\x88\xc1U\x8b|\x81\r\x10b.\xbd{[w\xc9O38\xac\x01USrd=\xc1\x83^\xeej\x17\xb8\x98\xbf\xe8\xcb\x98?\x07\xec\x9b$~\xe4do&6\x0eJ\xd1]\x85\xb3 \xe4 \xe8\xed\x80\x9f\xf5\xb9"\x0f\xe2\xa6\xec]\xf8n\x15\xd1\x87\xbe\xe9Z^5"\xd2\x9eP\x90\xb67\xca\xbe\x123\x7f*Y\x80\x11wL\x05\x9c\xe9"\xbe}Pu\xf8\xf6[\x91u7\xd9\x9d\xaa\xd2\xd4\x02\xf6.\xa5\xcb%O\xfbT\x0bD\xb1VH\xee\xb1kj\x01\\\xef\x00,.\xb4R\x97P\x81\xe1\xec\x86v\xf3\x8a\x14\x11\xef>\xbcA\x14b\xd6eR!\x1b\xe0\xd5v\x12\x946\x00\xfc!\x14\x9d\x12eT\xa0\x92\x13\x96X\x80\xca\xc9\x89.C\x1d\x05\xf8{\xc4\tQ\xa8\xbb\x91\x9586\xb1\xbey\xcc\xf9\xa6\x85\x08D>u\xa3\\\x86\x8a_\x12\xb5\x9fry\xd2\x9c\xff\x83\xad\xe9L\xe8\x91\xb6\x12\xcd\x1cx::\t\xfa\xfe\x17\xfd\x85\x80b\xc3\xb1\xbe\xa1\xf1$\\\xb4\xdd\xc2\x0eu\x15\x7f\x89%\xc5\xabk\x16\x1e\xcb&5\xab\xb2\n}N\xffs Wnc\xedh%c\x80\xe1\xc0$\x18P\xa5\xe5\xb9t\xb2Z-\xa5\xfe\xcc\xeb\xba\x886m\xf7H(9k\xae7U\xa9P\x05\xb8\xb8\x9c}\x00\xe1\x8b\xf5\x11\xf9\xecbu?\xeb\xea$\'\xd3\x08$\x8f\x123y\xbd\x9f\xf8\xd2\xdf\xe1\x155\xdf\xd9\x1d\xb05\xd2\xae\xa3\xec\xf2\xd7}\xeb\xe5\xfc\xab\x8c\x90\xb0\xac%\x8d\x1d\xf1\x90T\xa5\xc0\xdb\xfbf\x18\xf1\x8e,[wD\xe6\xf96\x1e)\x85U\x97b!G\xbe\xa7\x0f\xba\x9a\xfa\xfbt\r!\x05\xd8L\x9a\x9f\x0c\xa3\x16,\x88\xd2B\xfe\r\x90{\xefe\xbd8\xe3\xc9\xc0z^\xa1\xe3Q\xcd\xdes8\x8f\x00X;\x06\xa1H\x13r\xe2\x8f\xa89\xc0-\x8d8\xa6\x01\x7f\x9b\x19,h\xeb\xdd\x99\x0f8\x19\x16\x01"\xa50\xbcb\x1e\xeaP[\x1f\xba\xd2\x85\x1e\xfd\x1b\x9e\xdd\x169\x83\x899\x96\x0bFh=\x85\x9d1\x99\xbdA\xeb\x9f\x95\xb22\xb6\xf8\\\xea\xc5\x1f\x9b7\xa0R\x00\xf8\x00ef\xf6\xc6\x05\xc1\xf4\xbel\r\x8a"\xd7?&\rA\x10ScxZr\x0f\x1a~\x15\xce\xb8\x9d\x91\xf0\x8f\x08E\xd5\xab\xa2\xf7\xf1\xb7\x01\xd4\xe5\xcf\xed~\xb5\x80\xcb\x8f\xf2a?\xb9\xeb1]\xe4\x8a\xc4\xfe\x148\x08\xaa\xcf\xaf.7r\xcb\xaa\xdbo\x17y\xf1\xbe\xad%\x15\x1e\xa9N\xd9\xb4\xd0\x81\xe6"SK&w\x9b\t\xfd\x06*\xf6@\x81\x9c5\t\xc4\x922n?\xaa\x87\xd9D\xa8\x1c\x8f\x8c\xa2\x86\x81\x86`\x17\x9a\n\x05C\xc1\xe1\x9fjr\x0f9\xaf}\xa88\xff\xdc1\xb3!\x82\xe6\xef\x18\xb0k\xfd[\xdf\x93\xdc\x1f\xe01\xbeI]\xaa\xe0\xb7|p\xf5V\x93\xec\x87\xee\x02\x11\x8f\x1b\xe7\xcf7n\xae\xb8\xf6\x03\xe3\xfd\x9f\xac!^\xee\xa24\xa3\xcbP\xa1\xe1\x11\x00\xee\xd7\x9b[\x99\x85rU\x94\x18We\x08\xcb\xb5h\x86o*\xcf\xe7\x1d\xc7\x91\x0f\xfb\n\x9fs;@\x96\xaa<\xb22\xbdg\x0ce\xf8\xb8\xe3\xe6\x8c\xa8\xa0\xe8\xbc\x05^\xba2\xe0\xd8\xe8\x8buH~3\x0e\xc4\xb8\xd0eWm\xc3\xc9k\xe9\xb5\xf0\xca\x1c{\x96\xa6\xf2BY59\x15.!G\xee\x8f\x11\x80*\x13wF?\xa9\xa0\xff\xe8\x19\xa3\xb2\xeb`:7\xb3BsF\xd5L\x0e\xcd\xa7)\xa8t\x96\x0e\xec\xa6\xec\xd0\x88\x80r\x16&Xt\x97c\x8d\xcc?\\\r\xcc\xd5\x80\xe7\xa7{\x16z:\njj\xfc1\x0e[0?\xcb@>z\xf8\x06\xcc\xd6x\x9b\xb0"\xae\xaf\x8b\xac`\x96\x97B<\x01\xd3)M\xe0HA\xf5s\x8d\x1a\x92;z\x06YA\x7f.>\xf4IPg\xd8\x04\xb2e\x02\x01;\xa7\xc8\x95\x97^\x01\xee\x9f\x88\xec@V.\x14\xb6\x84\x18\xc0\xf0(\x087)n\xfb\x13v\xf2;OwU%\xb3Ol\xe2D\x19\xfb\xac`\xbaP\xa5\x0fC\x1b\x01\x17\x10s\xd9KYK\xda\x03\x1c\xaf\x87=\xc3\xbf\x04nq\x9b\xc3\xf2\x07\xd5\x07A\x1a\x8c\xd4\xaf\xfd;c\xa3b1\x89\x12w\x17\x06Nt\xae\x91\xf1\xc5\xd9\x93_\xe7\xc5\xda!|\xc1 \xd1\'\\P\x8eu\xdd\x0c\xd7E\xad\x1c\x85tL\x9f\x152\xbcP\xaa\xcd\xdf\xd3\x0f\x9d9\xa1\x82B6\xfe1\x0eR\x1aq0\x8d\xa9\xa1\x83\xf6$\xf9\xd5g\xd8\x8ch\x9d\xdf\x86\xc6M$\xf08\xa0$\x14\x9db\xfe\xde)\xa1\xe83\xa4F(g\xd6\xa1@0\xd3\xea\x9f\xe4\xfc=\xadL\xbd{\x0f\xa5:m\xfb6\x9d\xd4\x0e\xdb\x17S#E\xc0S\xf1U/\xc6\xdav\x1a\xbe\xd3[\xdd\x12\xa9\xf0\x07u\xc2"\xb1\x04\xf7 `1\xf3\x85\xd8\xe3H\xac1p\x9dM\x90\xa6r\x85\x872\t\xf8\x17\xa0\xb8]\xd5\xb4\xb8\x92\xe3Jj5\xdf\xe4\\[x\xb4\x8b\xf3\xbe\x8c\xb4Q\xf8\xf2\xdcP\xbc\xd4\x8b\x8c%\xb2\x01\x1c\xcc\x8c\xf4\xadP\xca\xb6Fw\x90\xe9\xc1\xe6\xabW\x9bQt\xba\x0e\xb1t*w1@I\x1b\xcd\xed3\x194\x9c\';GL;\x1bK\xf5\xb9\xbb8<\xab8M8\xbfm\xbf\x00[P\xcaFS:%\'\xb0\\N\x1d\xe1)W\x97\x84\x17m\x17=\xf6vH\xf4\xe6#\xce\xdd\x11\'\xb4{b+t\x98\x99Vq\x0e\xbb\xe8\xeb_\x14\x19\xa9\xff\xbc?N\x154Ec\xee\xba\xa9%N\xdc+^\xa9+\x07C\xeeO\xcb\xd0\x0b \xe7\xad\xa8n\xfd\xa4\x0c?T\x8dz~V\x845(\xea\xf2\xc2\xa3l\xd1\xcf)\xbc\xb2\x91F\xe7r]\x80\xb4\x8d5J\xd8i\xa0\x81|4\xd3\x8d}\x13M\xa2\xa46\xf2j\x90\xb4\xef\xbanL\xc7\xb7\xaf\xa5\x953+\x0cd]GQ\x0f\xcb\xcc\xe8\xa6\xa4er\xed\xee\x82\xe6Q \xffj\xa4q}\xacQK \x87\xf3ZTR\xe0\x1b\xc4\x88o\n\xfe<\xc0D\xe1\x11\xa6G\xf83v\xd6\xff?\x18}K\xe7\xccQZ\xa8x\x8c\xf9\x94\xefz7\xd1\x9c\xfes6\xf1T\xa7\xf7\xe1\xceoE0\x8e\xd8\x03\xa0\xd5\x04\xe9\xe1\x9f\x1ev\xd4Y\xda\xf1\xaelqy<\x11i\x8a7\x9a\xady\xfc\xe48";\x7f\x93\x82\xc2@?vZ\x9d\xce\xb6#\xf7\xb0\xa0bf\xe7L\xef\xda\x83Hr?\xb8\xa5\xa3\xd39:\xa2\xc8\x88"\x16%\xdbU^w\xaf!2\x015\x80\xb1\xfd\x10\x96@.\xb9)w\xef\xcc\xe8\xe6\xb1M\r\xb1u!:M\x00%!\xd3\x97\xc6\xe9 \x0b\x18\xcfD8`\x95fq\x0b\xea\xb2\xce\xd0\xcc\xd7P\x1c\xd8\xf3o\xe8\xc4\xdc\xd4?\'\xbfv\xd3\x8f;\xc8\xf9\x154!A\xf1\xd6\x87@rT\xd9\x17\xec\n\xe9\x85\xee\x95\xf8b\xcel\x98)6\x87X\xa9z\x8d\x11_\x1bZb\\\x140\x86E\x0b<\x87\x88Uz\x03j<\x1ar\xc8cd\tF\t\xe0\x86\x0f\x8e\x83,\xd9ME\xa4\xffV\xb5\x7f\x85\xc9\xc8gY\xd6\x04kbWD\xa1\xc6pv\xa4\x84N\xddPA\xad\xa3\xd1\x1c\xa2\xb0\xa5\x8c\xe5\x14\x86\x88\x89J\xd0 \xe0\x87\xe0\xa6#\xb3)\x85#E\xbb\xf2\xa5\xa96\xce\xb4\xabD\xd8\x01<\x98M\xdbu>\xe5\xe6\xb7\xb5\x954H\xa3\x8d\xc7T\x02\xb4Cv\xf6g\xfeh\x08\xbc\xc3\x10\x96\xc4\x85\xd5{\xb0\xda\x18\xf4t\xdf\x11\x1a\xd7\xe9@\xe9|3\xcdG2_\x85\x90\xcc\xfd\x0cCb\xb3\x1d\xea+\x14%\x87\xaek\xe6\xa9\xe0\xcc\xdc\xbc~\xa7\x18\xc3\xe2\xad"\xcc\xe4\t}\x02\xaeC\x1c\xf3\x1a\xaf\xf3L\xb5Fv\x1b\x11\x06\xa0\x92\xcfu-\xe3A\x1e\xdb5\xafu\x96\x18\x8b$/\xf9~\xae\xf3\xceb\x8e(\xf9\xa5N\x84c\x06t\xb9\xaa4\xab\xf7\xec=D\x0f\xe5\x9f\x15\xdd\xb9!\xe9,#\xc4\xa5\xf0t\x95\xdc\x93\xea \xe3\x11v`\xec\xe1\xe7\xad\xf8bC\x8e\xf3\x16P\x13\xbb\x05?\xcb\xb4\xc5)B\xa7&\x0f\xe0\xf6\xad\xbd!cmw\xb6W\x93=A?\x02\xe1\x9ffw\x84\t\xd7E\xa2=\x038\x17\x9d\t\x80\xcd\x9d\x86\xd5\xa5\r\xd6\xde\x16\xef\xf6\x9f\xf0\xf3\xc7\xa2\xfe\x03\x11gu\x08\x91\xe1/\xc5\xaa\x9e\x14\x1a\xf2\xcbLqP\xe2\xdd?Y\xaf\xc4s\xcb\xf2\xbf\xde\x8a-\xad\x12\xf7\x9c\xce\xcb\xf3?\xf8\xd6g[\xb0\xce\xd93\x03\x19X4\xe2x\x10\xdb\xfa\xdc>p\xa6j\x9dX\x0eL9\x88\xca\xfb\xa1\xd2c#\xe4;x\xe7\t\xb6\xe1\xe9\x1bG\xf1/\x82\x8b\xb1\x0f\r\xab0\xea\x90Kp\x17E\xfe\xd95\x8d\x1b\'\xda`\x8a>X}/\xff\x13\xb0\x199\xb55O\xd5.Z\x8f\xf4R\x035\xca\xdd\xe1\x9fMJa$\x8d\xbcS4\xe3w3)\xd4_1~\\9\x05V9Jv\xbf\xd9\xc2!8\x02\xdb\x04\xe7N\r\xad\xb6tb\x02\xb9\xfe\xa2U\x89\xb9\x05D&\xa7\xc5U\x87\x86\xa1\x05\x14av4}\xc47J\xb0\xcf\x14\x8a\x9e\xcfV_\xeb\xcb\xfa&\x88\xb9\xa4\xad\x88\x86\xff\xfe\xe5\x07\\Ac!j\xb7X\xa9\xbdv\xe4\xd2\xc1\xc2\xfb\x18\xc5ky.\xcf\x7f\x0c\x80\xcb\x08[\xb8\xb5\xea\xc9+\x06\xee\xcd:`\xa8q\xd6e\xaf_\xff\x0eri\xdb\xf6\xe8\x10^.\xdb\x17;\r\xcb+\xfb(Q\xbc\xd0j\xb7\xbe\x92{\n\xbd\xe3\xa4\xfa\xfc3\x8dA\xce\xd6\x12\x13\x964A\x0b\xd3Szc\xda\x0c\xb7\x91Dg/\xebB\xe2\x19{\x84\x97\xbbq\xd7\xe8\xb7\xb9\xee\xdc\xdaW\xe1\xdak\xcbq\xca#y\x08\xb9/\x81\xa1_^\x12R\xaa8N\xc1\xc9\xc2z\xc1\x8a\x00\xc1*e\xb9\x97\xcf\xb5Q\x00\x97\xa7\xb6r\xd3\x18\x8f\x01\x05\x82\x03\xe3\xa1\xf3\xc2;LV<\xfe\x8d\xad\xe2\xaa\x02N\xa7\x12\x9f8\xb0\x9e\xb1\x8f\xb6\xfb5\x92p\\_:/\xba\xfb\xb5Z\xce\x1d\xc1h\xa9\xb2\xb7S\x10\xdf\xa7K\xda7\xb0\xbd\xbd\xde\x96\x84\':#\xdb\xfb\x0b\xd5\x94\xc4\xf7<\xea_!:\xec\xdf\x1ed\xc4$\xb0\xc3\xf4\x08\x93\x8ej;\x0c\xd8x\x16\xa2j\xde\r\x0e\xd2\\\x96\xf0~\xc5\x91\xc2\xdc&\xeeq\x92iD\xf4-Y\xd6y\x9a\\\xab,\xae@ih\xc9\x03\x1e9\x89-\xe7`\x87\xb0\xef\xcaZ5\xbf\xfaf\xb4\xe7\xd6\x99\x9b\xb4p\x8d\t\xdf\xdc\xdf\t\x94G\x8fi}\xe4\xdc7\x15].\x05\xd7\xb3A\xe0\x00Jwv;\x98\xd5\xd4jL\xa3dj\x16\x1dq\xc4\x96\xc2\x1b\xf8\x1d\x07*\xf2k\x19n\xee\xc9>7\x88\x9d,\xe8\xcc\ni\xd9\xcd\x06\xbcQ\xc0g\xf88=K@\xc7*\xcf\xc9\xcb\n\xe2\r\x9f\xa6\xd5\xcd\\V"\xcd\x9b\xd3\x1aZ\xd3h\x1c\xdfa\xe3\xa9\xfei\xe7g0\xb8\xc3:S&\x0bJ\x82\x9c3jk\xa1n^\xe0\x0e\x9f\xd21t\xaf8\tixi\r2nJ\xae\x01\xa6\x9eS\xda\xf1\x8f1\x94g\xc2\xc7\xdf\xd5\x7f\xe4\xeez\xbaDB\x7f\x12H\r\xd5\x8b\xc3#\x89q*;Ws\x03\x98Q\x0fX\x81\xad*\xe6\xd9\xf4\xd0\xac]\x7f\xd1\xb7\xba,\xc2r\x86\xca\x0fW\xfc\xa3\x1b\xf3\xe5\x91\x08%\x00\x04\xbe\xb5oF94`\xa2\xbbV\x89\x9aeE\x04x\xf2\x8f\xe6\x87\xa9\x18y\x12\xf9@\xe2v c\xe7\xb5Or\x10\xcd\x1f\x00\\\x8c\xd0\xe1\xc2\'\x13\x1fkL!WU@\xa9\xef\x98\x88(\xc0-5:\x14CA\xb4$f\x12B8\xc5\xc1\xad\xafw\xfa\xd6\x141\ne\x10\xb8\x88`\xc1\x16\xaa\x91\x19\x85|bD_\xef\x94c\xf5\xff\x99\xe0\xe1\x04<\xa0\xc0\x0f\x81\x11\x16\xb0D\x99z\xa5\xd81\xae\x9e\x0c\x88\xc1G\x00\x00\xbcs=\xcf\xf4\x02\x0f`s\xd7s\xfa\xc3\xea\x8bcc\xf3\x13p\x03\xf3=%\xc2V%\x0c8M\x05\x08\xe2\xa5\x99\x0bw\x8c\xe6\xaf\xb1T\x01\x92Ec+\x9d\x00\xd2T\xd8\xac$&\xf9\xa1\xb2%\xc4lm`\xec\xa0U#\x14\xdf\'\xb8{\xe2\xa6\x0c\xc69\xe4\xb7Dj\x07C\xe7\x91\x00\x8c`\xfcBn0\x06"\x94wnl\xa4\xa59?\x92\xb7\xd1\x9f\xcb\xb4\x1a\x195\xceI$\x1b\xa9}\xdb+\xe1x\xeb\x19\xcd\x8f\x88\xb0\x94\xf1n\x1ap\x9ew\xa3\x05\x0e8\xcf\xde\n\x105\x8cv -M|\x80\xd9\x9f\xd3\xc6\x9d\xdf|\x00/vn\x92a(\x0b\x84\x94\x1b\xed\xd2\xf0\xe4\x9bWw\xf8]`I\x11\xed\xc6\xc6\x18\x1d\xb0\x8cC\xea\x10\xd4\xc0\xb2*\xac0\x80\xa1\xfc\x1b2\xaf\x97S\x8d\xeb\xe1\xa3\x9d\xd0\xf2_\xd6\x13J9\x871\xba\x05\x16\x8b\x07\xc7\x8f2\xc8\x0f\x85n\n\xd41\xc6\x16:,\xd9\x91\x97|GW\x05+\xecJ\xb8CN\x99(M\x82w\x84t\xf8o\xfeV\xf2\x0b\xbb\xced\xf9e+\xe40\xaaU\xd1\xe3\xa9\x7f$l\xf4$j\xfb#\xa9\xc9k\xf1\xf2\xee\x82G\xfb\x9d4\xbe\xe7n\x1b\x18\xf1\xa7\xa0o\xc96G4\xe0;pa\x90\xcf6w\x10Vk\xa0\x06\xc8-\xc5\x9aS\x8fp\xb8$\xfc\xaf\xc5arD2\x82;G#\x9c\xf5\x01W\xdb\xf1\x1c\rO\'\xe3\xd3\x87\x11\xbaH\x10=\xde\xb0\xf8V5\x1d.\xaa\x7f\x87\x04\x1e\xf1\xc71\x03\xde6q\xeaq\xda\xd6\xde\t\x03\xa6\xf9\xe2,\x1e(.Z\xf9\x97\xfe\x92\x83\x86\xf8\x82\xa7\x9d5\xe2\xe9 \x1e\x12x(\xc4\xe3V\xe1\xfe\x92C\xb7\xefq\xed\xd8D\xdd\xb5\x18p<\xc2?\xa0\x03\x98\xc2\xaf\x9b2\xb0f\xbd\xfbM\x7fc\x0fq6L\xc7Q&m\x8c\xc2\x15\xb5T\xe0hl\xb3\xa3W\xf2Y\xd8\x0f\xe7\xa7\x19\x85[\x96\xf7-]\xe26\x11\xf9/TU\xa6\x11B\xeaG\xdfRJ4\x89\xfa=\x1c\x92\xe6\xc1|\x82Q\x95t\x91\xb9\xb2R\xd0\xdc\xe7b\x15\x9a\xf8Fa\x19TM\xc9\xa7\xa0${\xae$\x9c\'\xe0\x0b+\xdcj\xab!\x18{\x052\x87*\xda\xe1\x1b\x8a\xd4\xef\xf8-\xe4\x7f\xd1\x1e:\x90d\x02\xe0Mw\xc1\x03\x04\x08\x04\xe6\x94\xd9i]p\xf1. \x1bdo\x9d=\x0e\xef\xdf\xac\t\xeb\xfe\xe5\xf4\xef \xda\xb8\xd1\xd2\xea\xc7\x97\xd6\x98\xae\xe9\x96\xdeA\xdb\x89}\x80\x1c\r\x96\\(Sa=R\xf0\xde\xd9"\x85mN\xe8\xe1\xc6*@z\x16\x03\xa8\xac\xb8Un\xa9|\xf1\x8f\xc6_A\xfe\xd3FW7G\x82\xc2\xcf\xdcCi\x84\x9b\xd9.\x103\xfdS\xa3=\x99\xa2\x85\xff"w\xc1\xe2\x08\x0c\x18`\xfc\xa3\xf4\xabzF\xba(\xf6\x13\xa9\x0fMy\xc3t=\xb0\x84z\xfc\xfe3\x19B\x0c\xea\xcbD\xc4\'\x81\xcf\xe0\xb1eM\xd79p\x1c\xb5\x8c\xe4`\xec\xd8\x88\xb6=\xbb\x06\xfd\xc6V\xd9\x15\x81\x98\xcbJ\x0ch\x11|\x10\x8e\xc2\x07\xaatM\x1f\x9a\x91@\xd7\xef\xd6\x9b\x84\r\x95\xf0@\xcf$\xc4\xb3\x184Hf\x99}\x8e\x8b\xe0\x90\x96\xbaB\xb8\x90\xa9t:\xb3y\xf23\x9d4D\xe4(\xaa\x99,\r\xad\x8a2\x9a\xf1&\xa5\x8a\xcd3\x08z\xca\x8f\xcekn\xcag\xec%\x05\xbb\xf9\xb5\xa0ts\x84\xe1e\x82\xe4\xa97f\tk\xe2\xb0b\xfa\x08\xb7\x10\xdb\xcf\t\'\xf2B:C~\x8a}u\xcb\xe4\xcb\x86[Bnt\x8d\x8b:\x97\xb2M>f\x1e\x01h\xaf,\xb3v\xc9E\x90!|\xff\xf7\x99\xfc\x8bg\x076\xba\x0b\x9b\xe6!F\xc2\xe5\xab|\x8ce\x15~=>x\x04\x9b[\xb1\xdc"Q\x85\xad\xe98f\x8et\x051\x8b\xc5\x8962\xbd\x1f\xfbo)-cj\xf3\xf7?\x1d\x80\x1e\xb3\x8c\xea\x83\xa5\x8c\x8f:\x89;\xb9\x15\xe0W:h\xf2`\x18\xd4\xc2>\xbb\xb1\xba\x85\xcc\xf9\xca\x86\xc0\xe8\x8cP\x19u\xf7\xda\x0e\xad\x0enm\xfa\x80\x98\x17\xb7\xa21\x948+yG\xa7-M\x04\x97\xde\xab\xc5\xe5&\x98x7\xa3\x01R\xd2\xc0\x92\x1a\x7fSmP\x97y\x02\x13\xab\xca$N\xeb\xc3\x92\xd7m\xcd\xb9\xc2\x92\x9e\xee\x02DM\xa0\xd5\x8d}\xea\xd5M\xf3R5+u\x82vP\xee\x83\x03\x19\xae\xae-\x89\x0e\xe7\xaf^\x9f\x1a\xd7\x99\x8c\x18^\x00\x06(\xc2\xab\x91\xd2\xad\xd6\xc2I\xd1\x83\xef\xb4\x1f\xb8B\x12P~\x0f8D\x11\xa9M<\x13\x83\x98d$u\xdd\xe3 \xceyw\xf9``\x7f.\x9a\x11\xc4A_u\x10\xbf\x03\x89\xf9A\x1e\xe6\x857K\xf8\x0e]}\xfd\xb7\xdeX*QhA\x19\rg\x8c\xa0\xee\xbe\xe9h\xad\x99\xaaGX\xfb_\xbc\xb33H!xk\xfb\x0c\x81*"\x02\x0fq\xed\x1a\x83\xfe\x1eos\x12Ga\xc7\xe2\xc2D:`\xed\xfb\\6o\xac\x8d2R \x8dv\xb8\x99v\x8e}\xecX\xc1\x1b\xda.\r&\x84\x08s\xc3\xf9\xcc\x96C\xcd\xcc\xf1\xb0\xf3\xe7$\t\xad\x90\xbf\xb3\x16\\\x05>\x059\x8d\xb1+\xab\xf6\x92]\xf5\x9e\x89\xc0\xa7\x11\xc8\n\xd0\x91\xda\x1e\x98d\xeeK\xf4N\xb3\xe4\xc5\xce\x8d\xb9P\xb5\xea\xd0\x9e+GR[\x11\x03\xb0\xe6\xc5\x8a\x16\xf2\x92\x11\xe8\x1c\x86^Fb\xc2&\xcc\t@\xbf\xf2\xda0\xde9|c\x02\x07\xdb\xa6\x08\xb9\x8f\xcf\x911\xcc\xc7\xaa\x8ef|.{\x88\xbb\x03@\xbd\xb2\x87A\xaa\xf1\xbd\xfe\xdaYh\xec4\x14\xf8\xa4\xa1\xca2\xcf^84Z\x07\x16\xdd\x0bI\xb7Gi\xca\xb7u\x1a\'\x82NBJf\xbaH\xa6\x9d*\xa3\xfb\xf1g\\\x98\xac\x802\xfd\xa3\t\xbfT1\xd7F\xbb2\xd3\xf8(\x06\xce=\xf7z\xc7VH\x81X;\xd6z\xcc5\x86\xad\x13\n\xea\x031=Y\x11\x97O\xf6b\x0b{\x00\xbf\x1a\xbf!S\xc2\x8c\x9eG\x03cF~\xa4\xef|\xc6\xc6\x0eD\x8c\x81,\xcc\x1d\x08\x93\x0f\x88\xe4\\[\xf2\xf4-\\\x1a\x06\xba\xa8\xde\xf6\x88NH\xbd\x96\x8c\x07*\xf8\x83M\x90v\x06. V\x90\x8f\xa7\x93lO\x87yCV\xe6\x19\xfefFb3*\xbd\x90\x16\xc4\xd2\x08\x8d\x16J\xfd\xd8\xe6\x84n\xf0\xee:\xac\xe3p,\x0b\xf9\x12\xffj\xd1\x13\xdf\x16\xd1\xcb\xf0,\x01>\xcaMr\x9a\xddr#<\x8d\x11\x14\xf4\xf8\xbb\xcb*U\xe3\x0b\xb54\x0e\xbc\xb3\xaay\xc7\xcc\x158\xcd\x14\xbe\x83h\xef\xe1\r\x81\xdf\xd3\\,\xec&\x13%\xe6\xcb=\xb3r\r@=\x9a{\xa0k \x0e\xfd\xb8G\xcc\xeb\xda\xdepk$r\x167\xa6\xf7\x00\xf3\xa1\xc8\xf0U\x10\xbcC\xd9\t9\xe4G\xcc\xd10\xb4Y\xb1\x91\xa1 \x10\xacTu\xde\xd6\xc0\xec\x13\xa8:@\xc5\xc3_\x01A\xb7\xadV\x00\xb6\xa7\n\xa6\xa7/\x17R\xb4;Y\xb1e\n\x18\xffc[\x9c\xa9_\xb1R@\x98\xb9\x1e`\xc0\x8d\xf2vc\xf7\n\x909\th\xcf\xe8j\xe2\xb0P\xf3\xfeE!1\xda\x88DR\xcb\x89na\xc3.K\xd02e\xf9\xd3\x82\xc9\x0e\xd6\x11g\xc3\x82c\x90\x95t\x97\x1c2\xbb\xee}\xf3w\x90D\x8au\xba\xc1\xb86=\x83\xea\x1e\xa48\'\x90\xf5rYw\xad\xdcG+\xfc\xb5\xe7<\x9a\xeei\x98V\xf4\xe6Y< \x82\x93h\xad\x95Z\xe7\xd7\xda\xfdV\xd2\xf3\xe4\xc1K\x03"\x958\x9d:_0F\x14\xd7~?{\x07\xda\xb0\xa1u\xb6\xc9zO\x17\\g-\xef\x04\xe6\x8e\x05\xb9b\x7f2q\xe4>%\xab,\x8f\r\xce\xfb\x11\x08\xc3f\x883[\xc7X\x8c,\xb5)\xe5\xbb\rJ\r{\xf8C\x8d\x04FpwO\x97e\xfa]\xb6-\x9a\xe8/U1\xc9\x0c\x1d\xec\xb6\xd0\x04"\x82\x9d\xbcR\xecI^@\xe1\xecH\xcc+\xac\xc0i\x1b\xe3\xb5\xb0\x0f*lo\xbb4\x8e\xd3\x93\xa2\x00\x98U\xe8\xdb\xdf\xda\xdfx\xa8\xe7\x01\xd3\xf0.\x80^v\x87\x8a\x1e`\x112\x88\xb6@%\x86Q\x85\x14\xff\x81\xd2\xd8\x1d\xcf\x91\x98\x03\xd7\xc2\xa6|]\xeb\x91\r\xcdT\xd2|\x82\x00\x82}@\xe8\x7f?\xbe\x8f\xb8\xc6yhE\xc4&\x8aT\xc3S/\x9f\x85\xfd^s\xe4\xea\xff\xb0\xd5\xc8\x05\x1f4e\xaf}\x1dz\xa6k}hT9\xd6c\xe0\xfd\xb4\xba\xc6\x02\x8b\xb8(zd\x1e\xf4NLEVE\xf1pF\xc9\xbf\x8e\xa4K}\xd2\xc4\xc1!f?k\n\xf55\xdeK\xde\xd1\'\xbc/\xd9{\x91\x8d7M\xae\xa6\xc8?|\xa8w\xb1m\x8b\xdekQ|\xd2\xd9\xc0\x98\xf0RU\xdf\xa4\xdaI\xc96\xe6\xeae\x04\xb6\xd5:\xff\xe0\'\x1d\x82\x9a\x9f\x83%Z\xf9\xa4}\xde_T\xa6\x12\xb3\xcf:J~\xe6\xfa\x90+\xbf3mM\\\\\xc1\x97\x0f\xfcQDl\xa7+}\x84\x08\x89\xa0{\x86+\x93\x05X9h\x19\x8d\xc7\x08\xb8\xc6mx\xa8\x05A\xe7\xae\x0c\x94\xc0\x0f\xe3\xe8U\xe9\x86\x07\xdb\xc8\xfe\xd7\xfe\xccr=\x92\x99\x93\x8b\xd7\xd6L0*gj\xd9\xd1\xc9\xaa\xd2\x08\x0f\xd4\xd4Y\xd4\x93\x0eh\xb7\xac\xe0~XW\xceR1V\xfe\x02\xac\xd3\xf2\xc3\t\xf5\xa6\xd4:\x98\xe6\xa0O\rD\xee.\x80\x16,(\x0e\x12\xbf\xbc\xb4\x96z\xf5\x15n\xeb[\xe1\xa0\n\xcdIA\x96\x01q\x16\xab\xd7\xc8\x8a\x85\xb3C"^\x9d]#\xc4\xc3u\x8e\xdb\xc1#\xc7\xf4\n\xa4\x8f^\xecFuiQ\t\xe1m\xcd\x9b\xf3\xc4\xe3K&\x9ciOA]\xae\xf4+\x07&a}h\x81>Q\xae\xf3\x1a\x8a\xb5\x9c\x1b\xbb\x93\x87\xa74[%\xa9\xecxI\xfe;fqqd\x17\x90\xfa\xbb2\x0f\xc2%\xae\xf4\xc2d\x00\x9d\xdd\xb0Cv\xc4\x04\xc5\x91n\xd4\xd0\xa7\xaf9\xe1\xf7\xd6\xdbK\xf0\x9c\x10\x8f8Y\xa3\xb6\x04\x7fOd(\x885L\xa5Jcc\x86{\xdb>\xdfo#\xb7\xad\xe7\x9f\x81J\x93\xf6!\xd0\xe3)\xee`\xaa\xc6\xa0y#,y\xb6\xbe\x0b\xc2jd\xc2\x111L\xe7D\x17^\xfc/\x81\xbb\xa1\xb8\x8e\x99\xd1\x9a\x98+\xc7{\xdf*\xddv\xbc\xea:i\x8b\x83\xb1tW\xa0\xdb\xf6\xb5iP^\xd72\xfbZ-\x98x\\/\x9dc\xf5\xf7\xb4h\xf3\xc9R\xf8B\x8c\x92\xb0\x8bV\xf23\xec\x9d"\xc5\xae**l\xfd\xc3\x14d\x1d\xc1\x08\x98\xbd\x0b\xf1z\x17+y\\}\x0f\x08P\xbc\xcd\xcc\x8bI\xad\x97\xb5\xd8\'\xc3$T\xddnnE\xce\xa2W\x8dRCH\xaf\xd7\xe0\xee!\xef\x162\xd0@\xc7\xc0_\xab\x18b"\x19\x0b\xd7\x8a\x18\x99t\x91\xa3&\x87\x7f\x00\xea\xbeVG\xa4\x80q^\x04\xd8\xf7|jA\xa42Y\xe1\x8f\xbe\xeb\xba\xab\xd5\x8e7\x18\xdeTk\xb8\xfaN\xec\x819\x18\x0b\xd6\x8c\r\xbev|\xad\xac\xc7\x13\xe7\xeeeHE\xb0LO\x89%\x8b\xe2V\xe8_\x089\x1c\\_\x0fx\x082R\xe8\xb6\xf5\xa3\xbeV\x82\x9b\xbd\xd6g\xcfcs\x18\xd4\x0b>t#\xf2\x05n\xf5\xd0\xaf\xaa\xcd,\x82(M\x85\x7f\xcd\xe7\x19\x9b\x19*\xef\xa3\xc8\xc0\x85R.\xdbH\xa2&<\x8e\xd5?\xcf6fO9O\x88?\x1a\xe4\x031S"\xe4\x82%\x05\x18\xfaH1O\xfc\xf0?\xcbUZoL\xb6\xe3\xb3\x84\xda\x06\xaf\xbf\x8e\x9c[]\xd6\xdc\xd1O{@T\xfe\xfc9\xa5\xf7/\xc7\xa7\xefA:f\xf6\x99\xdd\xc6U\xa2\xb1\x07\xef\x18{\x04zk,\xa7\xd0\x18\x06\xdf{\x1e\xd1\xdc.\xf1\xb7/\x8e\xe0\xdc\x17\xe9\xb2\xa4\xd4%\x9b\xa6\x1b7E\xa9n[b\x00\xac\x06l\x8b\x1a\xbd\x97{\x97\xd0\n~\x92\xab\x02\xf2\x9e\xb3\xa3\xf3hI\xfc\xc0ik\x0ci\xa0_\xf0\xb7\x81\x16\x03\x97\x16\x8e\xa5Q>\xea\xcd\x92\xbb\xe8\x90z\x13Z/1\xe2\x93\xb1c\xcf\xe3.\x95\xd5T\xfa\xed\xcf\xcdVI\xf7\x1d}\xd6\xcb\xc4\xa8\xce\x84M\xbb\x8c\xce?[\xc4\x07b\xbeR\x9do\xbb\xaf\x0e\xf7\xac\xcd\xea\xa7\x1c\x15\x93\x13\xb5\xee\x97ip\xa8\xa0Z(\xc5d\x86\xcc\x7f\x82S\x91\x8c\xb7C\x18\x82\x13G=/;\x97\xa7@L\x12\xa5\xa8\xb1u\xdf=O\\\xdc\xdb&$\x05\xbc\x1f\xc0\x17\xd3\xc8\x08\x85t\x07BX\xeaT\xe3\xf5F\x1f\xb2\x9f^ZIi!\x17Hg\xbd\xaa\xf4\xbe\x91\x98\x80\xfc\x0e\xceX\x17\x13\xcc\xde\x8bW^\xd9NA\xdb\'\xbeF\x7ft\rl^\xc8\xc6\x156}\xb4Ud\xca\xf5\x0f\x08\xf7\xc5$\xd8{\xba\x86\xb6\xcea\x11\xed0\xaa\xe0\xc9\xc8Z\xd8\x16\xb71\x87\xd3\xedp\x8b8\xc8gS\x87\xed\xee\x19\xe4\x11)\xa3a)p\xe6\xfc\xa2<4y\xf5\x07\'\x9cv[?\xa1\t\xcd\xb9{\x8e\xa4\x9aX\xechtY\xa7:\xf6\x8c]\xd6\x1b\x0c\x07\xcfw\x94\xfb\xefx\xdf:\xe5\x05\x80\xdd\xe3m-\xaa\xe7{\x13cM\xcc6\xa5o\xb2"\x80\x9f\n\x91\xbaI\x0b\xb2\x97*\xa6~\xf8\xe4\xea<\xfca\x86\xc7\x80\xdb\x12>\x84\x1fS\x17\x17\x87\xa6\xf5\xac:GHk\x8bd\x8eu\x03\xbe\x18\x9dr\x84\x98\xe9\xfb\xe3u\xff\xf9\x07\xd0K\x15\x11\xe3\xaf\'\xa9\xeb\xb27\xe7\xf6\xfa\x91\xd3?\xa1\x1cbB!\xd6\xb6I\xe1\n\x0f-{P.\xba4\x9e\xc1"\xa6\xaeR\xbe/\\k(\xce \x92q\xd9\xb0\x87\xbd@\xdf)\x82\xa9\x8e\x95q\xb3\xaa&u]\xcb\xa7\xea\xa2\xe9B2\xb5\xf1\x1f\xa8d\xee\xfazwf\xe8\x85_\xb5`v\xa8\xbc\x98q\x96$Q~\x90 \xbd\x02\xe0\xc6it\xf1>\xfe7\xf0\xbe\x83\xc9K\xb4\xbd3\x9a\xe9\xb5\x8eK\xbf\xde\r\xbf\xc1<\x14\x9a\xbbD\xe8o3\xfdI=\xef-\xc6\xac\x8ao\xfd\x85W\xfc#\xd9\x16w\r\x10\xf3(\x8cv\xb4\xfe\x96\x1ch9\x8b\x03P]\x80\xfal\x18\tD\xd7R\x07^\x07s\x85!\x83\x08*n\xaf\xefY\n\xe5E\x10\xa6[b\xac\x8f1\x85\xcb\xee\xad4\x9a\xd7\xfb[<.\xe6\x9bV7b\xc4\x01\x1c~<\xb3\xd8\x0e"\x04p\x95I\xf0=\xef\xf6\x1a\x80\xc9v\xd9QI2AJ\xff\xde\xe7\xe8\x90l\xeb\x1en\x7fg\xdf\xc2?\x94\x81\x9cyz\xdd\x9a\'C\xb4\xc9w\xf0o\x08\x1c\xfdw\x05\xbbS.H\xe6)\t\xb2\x17\x05K\x14@C\x90\xc5`\xc8*^\xd6\x13jd\x08\x8d\x8a{\xd0\xb2\xf2\xfe\x8e\x80>\\7\xf3\x934\xc4E\xa0\xa4w\x10R\xd5\xdeq\xffdSO\x11,_\xc9\xe20\xc6\x1aT\x98\x1fi\xd2\xe2T:\xd7\x1a`\x08tB{N|\xff\xe8p\x121\x8e\xbda=\xbf\xdf\x04\xf9p%\xf2}\x12r\xe4\x1b\xdd"7y\xe6Yl\x03Lv\xc0\nT|\x1cl\xa86\x8bc\xcf\xe3\xb3SNu\n\xf1\x1a74\xd3=|\x96\x17\xab\x02zW\xefa\r\x04\xd7(\xe5\xc1\xecV,K\xa0z\xf5\no\xb9T9\xeb\x17/[F\x98\x9ew:\xbe\xb1\xbd\x94$\x1fp\x93Mzm\x14\x9461.\xe0\x14L6|]\xf5*\xc1H\x92C\x93%\xdc}\xfa\xa3\x94\xcc\x13\xca\xfd`-<\xdd\xac\x7f\xcbn\x8c\x02\xdb\xc5\xa8Qdf\xe7\xc5]\xb8\x0c\x8f\x0f/C\x19\x13\x82}1sf\xb83\t\xa6O5]\xcd\x8a\x9esd3\x93\xe6\x81\xaa\x1e\xb3\x9f&\xc6\x8c\xaa\xf6\xc90\x82\xe3\xcd\xc1\xdcS-r\xdc\xc3\x8f/\xd3\x83G\xce\xee\xe6\x93\x1e|\xbc1\\\xf9\xc3\xbeC\xc2\xc0\xce\x1f)\x82+s\xb3\x9bD\xcbC\x15\xa0\xca\xf5n\x89\x15\xc2\xce\xbf\x93L\xcag@\x17)@\xec\xc9a\xbf@\xe6B\xf4)`\x95STO\xde\xcbUQ5\xae\xc3\x81\x81s\xcdm\x0c@\xcd`\xda\xb6\xa3\x19\x84\x8f\xa9\xd0W\xa7\xc1P\x16\xb1\xc6\xcb\x8d\xc9\x02\xb1_A\xc6\x95\xb1\x12b\x08\xd4-\x12<\x95G\xfa\xabl\x012RY\xb2{\xcer\xc7\xef\x00\x05\nzQK\xc9\'\x83\xe4\xc9\x05\x06E\x17K\xe3\xde\xbd\x01\x14\xdcs#\x19\xbew\xc5 #5FZ\'\xbc7\xdc_-\x19\xcc_\xe2\xed\x0f\xa8\x81\xb4#\x88\x06*\x8dY\x1b\x86 YT\xba\x99R\xe7\x06Q\x0f\xfb\xb8\xe6\xd6!I\xc2\x8c^\xdf\x0c\x9d~h7f\rf\xa8\x9d\xb5\xb3\x00\x1e\xe9g\xf7\xb55\xf2\x1f{\x89\xd8dg\'\xf5"\xd2\x86G\x03rW\xa1\x81\xcc\xec\xee\xe5\x9a)#[8/\xf9\xc1\x0f\x03~x!\xb0,H\xef\xde\xc1C4S\xedQ\x15\xbd<\xb4\xcc\x94\x93\x02\x83yrq\xd3\xc4T\xfd\xf8\xae\xc3\t\xc2\xe6,\xe1\x9c\x1dD%\x80W\x8e\xbbnX\xe4%^V\xc3K\x8a\xc9\xccU\x97\x8f\xf7\x83\xacm\x8d~\x94\x8dAu\x05\x02\xb2u\xfe\x99\x87:\xcbt\xd1\xa5\x80\xacR\xea\xb01\xc6Bc\x05\xe8\xfa\xbd=\xf8F\xa6q\xf9K\xeb\x9b\xfcV\xfbf%"\xb0\xb9\xe6&oDr\xa3\xeb\x12A\x05\xd5*\xdf\xfa\x07\rX}\xf5\xed\xb1\\\x86\x81xW\xb5\xa6\xdc\x1eW\x8e\x19\x91\xdb\xcc\x83\x94\xc5\n\xe0\xff\xf8io\xc4\xa7\x08\x96\xe7\x8f\x13NwP\xc4\x80\xe9[@F\x95\xd5\x1d`\xdd\xc3.\xe1\xbc2?7\xf8\t6\xeb\xe2~O_\xd7\xd8%\xbb\x17\x08\xdb\xc3\xca\xc0ay=\x947<\x83\xad\xeb\xe9\x85\x8a\xe6\xe2\x97\x9f\xfb\xab0\x9e,\x92B\x1d\xfc\x98\x96|\xf8o\xad\'\xb4[\xacu5\xd0$\xd8P\xec*B\xb4\xe4 B\xb4\x87{\x1fQ\xf8OJW\xbb\x8cw\xa7\xe9\x9cN/jr\xea\x14t$\xf4\t\xcb\x0e\x10\xf1\xdb\xf7\x8emiV_\t\xbfo\xfe\xacw\xbfw\xed;\x00\x80\xfeA\x1d\x90.\x95\xf63\x83k\x15\xc5y\xb4\xef\xd5\xa7\xc6\x9a\x07\x94\x0f\xc3\xba\x1e\xd6\xdd\xa1\x0eg\x06f\x1f!\xf7\xe2_\x124\xcb\xe6\x87W\x0f\xc5\x9c\xd6\x1a\xc9Ia\xd4\xd2\\\x08\xe4c\xa2\xcb\x89\x97\xd3\xd2A\xa2\xfb7\x05n\xd5DC\x8f\r\xbf\xac\xce\xa7\xc5qI\xb2\xf4\xc6\xdb\xfd\xe2/\xdbT\xa4@H>\xd3\xc2q?h\xa6\x86B\x9f\xde\xc6\xbb0\xabT2\xfc\x07~\xb7P\xc9\x9c/\xbcd\x17\xe0\xf1\x80\x115\x19f\x169\xbbS+\xe8\x06b\xce\xe1\xf7u\xba\xec\xa43\x90\xb2\x1f\x8ap\xce>\xd0\xa4\xe5\'\xc3\x01L\xd9\xa2\xe6\xada%gQs~\x91\xc8j\xf8\xcd\xa3I\x99\x1a\x94kP\xd5 |\x9a\xe6\xa0t<\xf4pI\x81\xdcCs\xb5\x93G\x93\xa2r\xcc\x8d\xd3\xf5Z\x94\xc8\xdaC\xb3\xcf\xea\xe5\x00q\xb0\x9c/\x95]P\xb7\x0c\x8b\xe6jg\xe6\xe6nZ\xf7\xe2$b\xc7\xb0\x87\x9dm\xfe\xbd#\x84c \xbe1\t\x14;t\x11\x80\xecv#t-v\xde\x93\xe2E\xf7\x14\xaf\xec\xd5\x18\x17\xe5\xde\x8c\xe1\x08\xb0#\xdf\x1ep(|\xbb>J?T\xb4\xc81\xea\x06\xc5V\xee\x96\xba6\xbc\x97\x13\x96\xa2\xeej{\xf7?t*\x87\x00\xd2\x96M\x19\xf5\xe8\xdaH$1R\xc1\x96\x12\x88^w|%\xef\xb0\x8e\x04Y\x99\xeadLl\xf9\xa3\xc5\x18\x19\xb6=[\xdfHE\xc3\xe8\xfc\xfcF!\xd4t\xff.u\xe33\xe8\xef\xb4\xfd:\xe2\xfc\x7fxj\xeba\xb5T4-\xd4{C\xf2\x12\xe8\x13]`\xab\x97zy\x8c\x11\x15%@\xbd]\xc8%i\xbbV=!\xfb\x84v\x83d\xff\x9d\x7f\xaf\x8b\x08\x89\x81\xaf\xab\xa2]U\xae\xb2L[=\xdb\xc6\xc3\xad]v:\xbdY\x960\xca\x8eW\x93\xe0\x00\xc0":z^\xa6\x04l~\xb9Ay\x0b\xc4\x19R\xac1\x9c\xba\xe6.\xa0\xdc\x96\xa04\xfc\x17\x97\xe8\xe3< TP@?\\\x13\x9e\x8d_\xf3\xff\x9a/p\x18\xf4\xe6\x85F(L+\xa3e\x11\xf1D\x02\xd5\xbd\xa6\x11~1?\xbaB\xf8\x82u\xc4\x14\xf4\xd3\xf1\x93\xcb\x9aG=\xc3\r\xdb>\xb7\xa9\x00\xe3\xa1\xe4\x92\xe3\xf7\x9ak\xc2&\xc33\x8a\xcaR\xf5\xae}\xb9\xee&+\x93r\xa8\x14@\xc08\x85W\xa1\x9d2s\xde\xc6\x9e\t\xa7x\x18\xe6\x80\xc4\xf02\x94}\x0e\x1b\x06\xf2\xe8\x8f\xb6!_\xd7$~\xbe\x88%\xb9Q\xfb\x9fS_\x01\xad\x84\xf5\x95\xf51K\x9ck\x86p$+\x0b\x83d"\xe0b(\'\x92FF\xc9G\xc9Wx[9\xf7\xefd\xc3\x8c\xe9\xa8\xa1\x11x\xcb\x11\x8e\xf3^\x07\'\x88\xa2\x84\xf9\\\x92\xe0\x06\xb20\xa6\xc2A\x99\xffmN\xbc\x0b\xc1\xcc\xa7\x1c\xebvHN\x17\xe7\xd7!\x84)\xe1`Qt\xa8\xce\x08\xb4\xc2>\x95&\xbaZi\t\xe4\xc3\x18TXI7\xcc\xfeq\x03N\x15Y,\xdbO\x03\xdd\xbc\xa5\xf7\x10\x92\xa4.\xe2\x93\x0f\x16~h\x15\x1d$9D+\x90\x87%\xfbYR\xc5\x8c\xe6\x89\xf8o\xe1\xd9\xb8f\xf0\x82\xce\xbf\xccN\xca^\xc6*@\x9ch\x1f\x89\xc0\x9d/\x00\xd458\xb3\xce\xfb\x8c\xd5\xb6].\xa1Z:\xbd\x18:\xf9\xc2\xd1`\t\xb8D\x8a2\xc3t\xfd\xcf\x1b-\xae\x13 \xd0$\xb8W\xadv\xe07UDn}\xbb\xed\xac\xf9s\n\x8cD\xd9\xd2\x98\xbdm\xf3[E\'ao\'vLx\xb8\tP$\xee\x07N\x19\xc1\x0b\rE\xe0\xe3\xf4\xb6\x92\'V\xdc\x8b\xe1+\xf0\x0f\xa8\xaf7}\xeex\xf1\x84\xc0G\xd2Xh\x0bR\x8d\xd1\x08:_6m\r\xa7\xd0\'\xb8\xd1H\xb8\x82\x0b\xdd\xd9\xc7\xd3p\xcf\xc1v\xf5\xc9t\xf1i\x7f\x10J\x9a\x9f\x8c\xd0\xa4\xbcKT\xecB\xa9\x9c\xf7C\xbc\xbd\x9bD\xb6\xccP}\xc7\x11\x8c\x10$X\x18\x96\x9d\xa3\'Q`\xb6;-\xd9(\xd4\xa6\xceS\x8a\x9c\x9e\xa0J\xf0\x9bI\xc5\x8b0\x12^\xd2\xdf\xfd\xb8k\x8b6\xad\xab\xc9\xea\x8e\xad\xbeh\x14\x97\xb7\xc7\x85\x15\xe5\xcc\xdf\xc5\x99v\xe71\xda\x10\x1e\xdeO\xf8!s\xc2?\x8c\x97}\xe8\xce\xd3\x16Nc\xdb\x1cjs"\x8e@I\xf8\xd3\x0c\x8c\x1c\xd4\xf8\x9b\xb8\x1f(\xe8\xb4M\xf7n\x85X\x1f\xfdsx(\xe6;&\x1bD\xbaA\xb8#D\xc4\xcbL\x0fk\t\x03\x1d 4\x06\x03\x1d@\xb6w\x00oc\xd7?:\x97}\xa1\xb0\xad\xecm>\x0b5\x89x\xcd\xd0\xfe\xbc3[{\x96\x8ek\xd8\x04]\x96"n\xcf\x98b\'\xf6PDh\xb3#/\'\x13\xfb\xc4\xbeC\xd0P\xbfv-\xa44\xb0\xd1f\x1a&$\x84\x82\x0by\xf1\x1c\x00\xbcN\x14V\xf8\x87h\xea5\xde\xeb\xa5\xf2D\xab\x0e\xbc\xef\xe4\xce\xb2C\x90D\xff\x05\xf7p2\xaf\x04\xbb_`\xca\x1d\xad\xf0\xa2\xa2"\x96e+\x12`\x96LOj\xbc\xb6\xf0\xe4\x92\t\x85\xfc6\xea=#t\xba\x85\xb1\xc5\x1a\xafT/\xcd\x1a\x04\xc6\x8dR\xb5\x08\xdb\x17\xb0\x0b|Pl&P\x11`\x13\r\tm\xcc\x1cWXs\x9e\xc0RoR].$\xbb\xd3\xfd\xbc\x93"d\xc1\xb87-\xc9%$\xec\x85T\xb5\xe5s\x9c\xfaz\x8f\x08\xbd)`\xfd!.=\x86\xb2\x9b\xf6L\xe8u^`\x88\xb0V7m37L\xbe\xa9N\x84\x9ck<\xdf}\xc6Xn\xf2wh\xcdP\xe0D\xa9\r\'0\xa4~&\xb3Y\xc3_\x95\x9f\xed\x1b\xa53QxQ\xaf\xfc\xb1\x139BP*\x04\x0b\x9d\xa4\x0b\xa4\xbd\x8a\xf3\xebK6\x80G\x8bqx=ts\x87h||\x01\r=\xb5[(\xfb\xcft\x10\xf9\xd6\xd0\xfb{`J\xd6\xf9m7\x9e\xd0\x82\xcfV\xa6\xec:\x1c\x8b\x94\xc2I\xcb=a\xfb[\x96\xad\xfbZ&\xc0\x024\xb2\xedoD\x05\x02\xbd\xc0\xd3\xa10\xfc\x0e\xd7a\x17\ry+/\xa4\xc0\xa6\x82\xf0!b\xbas\xa3\xfe?yq\xd4 G\xac\x96\xb29\xf4\xed\xee`\xb9\x91]b\x14 \x07\x9a\xe6\x15he>k9.HjD6\x10\xbb\x02:\x04\x1dbq.K\x81<\x01\xae}\xbe\xa2)\xfaW\xc1:r\xf2\x92R\xe3\\\xcd\xdap`S\xefu\xe9M\xcb\x84\xd9p\x91\x90.\xf7\xfb\xee\xb5\xa6\x06\xf0\x14\xf8\xf3\xaenT0^\xf6\x13\x00\xd2i\xfan/\x04T\x84\xddN\xe5T\xf5\xa3#,b\t\xc1\x16\x0e\xdcu\xa3\x0f\x9a\x94\xbf\xfab\xfc\x1e\xf7\x03\xa3\xd3~\x9e\x15Kq\x8d\xf4\xdbU\x008h\xcci~\xb9\x0b\x95\x01R\xd7n\xbb?\x833(W:\xa6\x8b\xa5w)\x1b\xbe\xd4\xf5\xbd\xca\x17\x1c\xc2\x17\x85\x89\xed\x159\xd0\xb6\x19\xee\xf3\xeeJH\x16p\xf1\x07\xe3\xf9y,\x01\xf43V\xa7\x0f\xc7K\x10\x83\x01\xa1\x13\x81\xd5\xabz-\xccd/\xa1\xcay\xfdH\x82=\x0e\xe6\x05\xdd\xcf~)~\xb6\x10\xfde\x92F\xbf\xb0\xa2\xdb\xe1\xd6D\xd3\xca\xc4\xa6$yT\x0f\xef\xe6+\xb8\x0b\x84`Y\x82JXp\xc0\x91\xef\\\x10~\xa0$U\xc4\xa0\xa7f)r\xe8b\\\xfe\x14\xe2\xb2\xd6\xf7-\xdb \xfc\xd1\x9aD\xe6\x18,\xd85\xbd\xfb^;P\xf0\xc2E\x1f\xa2H\xbdz\xd1D\xaa\x94\x00X\x82HQ=f\xb0\x12aJ\xb0\xa2\xfbNC{\xd3\x99\x9b\xe1\xe1\xa4\xdc\x99\x10V\x86\x19j\xc6c\xab\x16\xa9:\x8a\xeb\xddA\x0f!\x81\xac\x00\xc5\x08Su\xd7K\x15\xd2B_m\x1b\xf3P\x0e\xba+\xed\xd70alu\xd76\xc1\xf7\\y\xbe\xbd\x9dFfYJ\xf5\xee\xa4\x7f\xf9\nVs!5\x99\xffx\x7f\x8b\x91\xc1\xfa\xd0+P\xaeC\x18\xbb\x02\xe0\xeeX\xe1\x8b\x84\xfb2\x08\x94)]\x88-2\xc5\xb3\xc1`<~\x9ad8\xcaq\xdc\x0cb\x82\x1d:8~\xe4|\x1a\xd2\x8d\xa4!\xc5\xdb%\xa8\x1c\xf4Yj\x9b\x87C\x00\x1a\xd3\x19\x00z\x18\xb6\xb2Q\xb0\x04\xfd\x86\x9b\x0f\xd20F\x0e\x94\xb6\xec\xedGHh8\xbf\xcc\xdd\xff)a#&\xa0^3\x15\x07\x1d\xa1|%\xba\x83O0\x98-J\xe2Q/u\x80\x87\xe1\x80\xefo\x95\xfc\x91-\x8b3\x1d9U\xd6\xdc\xd8FG\xce\x98\xbe\xb7\xcc\x9e\xe9\x80\xc5\xb9\xd6\xd5?\x8c\xb1\xe1\xb5\x89\xf1\xaaA\x02\x9c\xb9&\x86\xd4\r(\xaf\xfb\xc55\xf1\xc0&\xf8\xad5\xe8\x98\xe0\xec\xcd\xa1,5\xe3\x87B\xcc#14M\x88\x96\xeb\x89\xc0\x9by\xc8\xde)\x0f\xda\xa6\xeaQ\xed\\j]\x0e8\x88A\xa6\x8b\xe1\xc1\xa0\xa8\x1f9U\xd4^\xc4q\x95\x92\xa4\xa5\xe9\xa9\x15\x9d\x88\n\xa1\xfdcz\xa9\xeaM4\xaa\x85!\xa7\x81\xd6p\xd5\xadt\x90\xe5\t\xfd\x99\xa70\x9cR\xc3%\x071\xb3\x96t\x01\xcc\x0c(\xb5Z4\x10\xa1\xb0\xc0\xdbNr\x06n\xf2\xd7tZ\x86\x9f\xfb!\xdd:\x9c\xb0\xb3\x90\xb6\xec\xc8tY\xfeG\xee\x8f\xcd\xe6\xaf\xd2\ne^\xdaG\xd9\xc2\xe0\x02\x97Q\xf0\x95S\x91(\xed\xe1&\x85\x7f\x14x\x1d\x16Q\xa4\x93+gQq\xc6*\'M\xb9\x92Y\xf9\xb2\xfc$f\xff\xc9`Y\xaf.\xd4\xc5}\x04\x1bvZ(\xf0\x98\x1fB\xd4uX\xe9\x18\n\x0f \xb2@\xebuE\xd6Q\xdb\xab\x0e\x92\x86d\\3i\x87d\x1c1\xe3\x1a\xbe\x01\xdc\xe7\xb9\x08\xcb\xa9b\xc7at\x08\x8f\x93\x07\x1d2kv\xb7\xa8P\xc5\x12\xfa\xd3\xda\xcd\x14;+S\xf3\xc2\xe1\xc2\xac\x00_\xeb\x83\x86\xc6\xc2\xc4/\x9cA\xf8+\xdb"\\Pu\xf0k\xc6.\xed\xd1\xc6\xdaV\xac\n\xad\x06\x19\x1aj\xf2T\x19\x7fF\xb2_|]\xce\xd8\x08\xe2L\xbd\xca\xae\xf5\xd5\x94U-\xad\x04\xd5\x06\x0ewq\xe9\xf3\xcc{F\x01AE\xe3kO\xcf\x0b\xad\xaa\x8f\xdb\xe2^\xae\x925\xeb\xd9O\x86,bb\xea\xa5\x81\xf9m\x06\x0e} \xedG\xf5\x0c\xdb\xe8\xcd|Jc\xcc\xadI\x15\xf1\xf3w\n\xbd\xb4\x9b~\x19\xa34\x84\x9eD/\x975\x0eka-\x11O\xc1$\x1a\xe49(\xdc\xa6.?\xc4\x175\x8f\xac\xe0\x03\xde\x02\xc8K\x8dY\xc8\'\xd1\xa38\xe1\xf4\xeb\xddr\xe8\x8e)\xa5w\x88\x8d\x19\x84\x99U\x86\xa0\x8air\xb1H<*\xfbT\xcb\xd2[\x83\'\xed\xd7\x16Z]5\x86\xba\xcfO.MRK\xdb\x88RKeP>\xd3}\xaa\x19s\xd9h\x8c7\xdc\x8c,i\x0b\x15\xb9\xa5\xc8\xfd\x7fY\x1b\xebw\xd7\xce%*H\xa3q\xdd{\xf4\x16z\xc6\xb2i\x8b\xfa\xd4\xc3\x9a\xfd4\x1f]\x8a3\x1a\xf1\\Dlb%1"\xf7Y8\x06TR\xa5`\x0cK\xfb\x9aY\xde\xe697! \xd3\x91;\xef\xec\x03\xda\x9d\x15\xd3\x94\r\xf8*\xf6\xb8\x0b\xf8\xc0\xd1n|\xe1\x90Bt\r7\x9a\xdbI\xf0\xddS\x97\x00\x915\xe3\xa9=I\xae(\x9bck\xf6\x06\xfd\xe0d\xf2\xe9\xb9\xeb\x06\x7f\xbcN\xc6\xad\x0f\xcd\x9epA\x91\'Q\x000\nj\xee?\xd8w!"\xa3\x15\xa1:\x18\x04\x91A\x18\x1a\xbe\xb8\x006+\xfd\xb7\xf7)\xdbzN\xcb\x022\x83\x1a"\xcb\x9c5\xc0\x9a\xf1\xd0\x16\xbd\x8d\xdeBQod\xbd\x9f\xa5m\xa1\xd7\x1ftOk\xfc\xb9\xc3\xb7bgdb\x19\x92\x83?\xc2\xe0\xfb\xe9\xdd:\xa4G\xcf\xd5\xeal\xaa^+\xf5\x8cgc:<8\x0c\xf9\x08\xaa\x7f5\xf4\x88\x05\x8a\xf3Q\x14\xdb\xadq\xf7\x18\xb8\xe8\xd6\xad\xfc\t!\xa5\xd0\\\xbb\xd8\x12\xc9\x05\x1f+\xe0\x0f\x98\x99\x91\xfb7}\x8e\xdc\xb1T\x04\x91i\x96JGZ\x19\xe5\x10\x933h\xd1\xbbi\x1e\xdf\xb0\xdc\r\x9f\xdb=/zq\x9a\xbc\xe48fn\x1c\xd5\x8e?\xbd\xda\x1eP\x1c\xdac\xc8\x1c\xec\x97\xa5\xd0\xd0\xebt\xf9\x00<\x88p7\xd3,\x13\x0b\xedi\x93[\xdb\x84\x8c\x98\x111\xf95P\xc9#\x9ar\xfe\x05\x92\xe9\xee=0\xfb\x87p\xf8\x9d:\xaa8\xaf%E\xa5\xb6S\xbc\xf4N\xa1sgw\x1a\x8b\x85?\x95\x13\xbc\xfd\xf5\xc5\xb6\xd4\x08\x998\xcd\xae&4\xd3\xd6g-GlU\x89X\xfd;\xbc\xc3\x83\x91~\x9c\x8a\x10\xab\xf4f\x07\x7f\x91\x01\xa9\x1ag\xb9%PJ\xa1g\xd4u\x9cp\xf9\x95\x03\xe4~\xec\xee\x91\xe9\xff\x885\xcbA\x1a\x1f\xe1\x15?t$p\x9e+-Q\x0c\x1ac\x92\xc4\xa3\x1d9u\x93*\xd8S\xd4\xeb\x8d\x87D\x9c\x8f\xa4e\x02\xcd\x80\x19\x0c\x19`\xdbW\x04\xc3\xf4\xbf\x1f\x81\xb6\xc35\x84b6Z\xad%\xb5S\x1d\r(\xa6\x82\xe9\x82^\x98\xcaB:\x88\xd2\x85L\x9bf\xe1\x7f\x19\xe6\xca\xf8\xc0\xb8p\xb5\x92\x12\x93\xce\xae\xd7\x15;S\xaeH\xcb\xac\x8fm\xf0\x07F\x9ai\x8el\xd4\x0cX2lh^v&\xe5\x06q+`\x88\rm\xae\xac\x94L\x9b\xaa\x84*\x89\x89\x0cf\x8fA\x91\x8a\xebW\xf3r\xc4\xfa\xff\xf3\xf8\xd6)/\x8a\x06f\xc4\xdcA{\x03 h\xff\xaa\x18\x8b\x1c\xa1Q@\xa8\x16K\n\x8c)\x04\x11\xc4\xb9e\xb5\xa1\x01Z\x10\r\xcf\xe8\x8c\x03\xf3\xdcr\xf4\x82HG.\xf1 \xabK\xb2\x865\xf6\xf75\x0fU&\xc5B\xaf\xa8\x98tb\xe1\xceF \x05vP\xc5\xe6d?\x8a\xf7M\x93\xc5\xb9Z\xc9\xc1\xcf\x881\x94\x92O\xf4;\x05K\xc3\xf1\x1fDv\xc6\x8e\x07;\xe0\x1eG\xae\x90\x1a\xcb\xec\xff\xa7y\x0f\xb8\x16\xdb\xc6]v\x84\xda\xcb\xce\x93\xd2\xdbz\xf4\x0e\xc2jH\x98S\xbc.\xf5\xdb\xf8\x91\xec)\x1c\xcf~UD\x90 N\x85Y\xd4\xe4I\x0e\xa4\xa0\x8c\xeci9\x0f\xbe\x98\xact\x15L+F\x10\xc4vc\x01(\xd4\x1d\xd1\x05;\x99\xd6\xeaT*\x06T[\xcc\xbd\xe4\xb7\x81\xbdD\x18IQ\xdb=\xb3\x1c\x92\xbe\xbeD\xcb\x07\xe9,\xb8\\5\xf5\xe8\xf6\x91\xd1\x83\xf3\x8c\x9e\x1d\xc7\xfa\xe2K\xaes\xfc\xfa\xfc\x0e\xa92xV\x93\x94n\x1d\xdd\x14#^&\x9b\xee5\xb9E\x01\x1e\x1cK\xa4`]\xdf0\xf9<\x85Y\xc6\x93\xee \x12\xd3\xc9<\xcev\x08\xa4\xd1\x1dv\xe8\xc5\x94\x0b\xea1\xfct\xc5\x85\xf3m\xee\xe7\x0e\x1a\t\x8f\x05\xc5\xbe\xd1\x1b\xa1\xd0\xef{n\xb1-\x96Xo\xbc\x94\xb6\xad\xa5\xee@\x95)4$}\xc7\x9f\xca\x16\xf3\xd0\xcb\x7f\xefS\xc7\xe4\xd8\xd3a\xa0\xb5\x1e-\x7f\xe9\xac1i\x01ym\xbe\x9a\x85\xbf\xae\x90*\x1d\n\xfeB\r\xa9\xe6\xa8\xd6\\\x96+r\xccq\xc4\x083\xe1.G\xf2G\t\xf7\xf1\xd7I`\xa2%\xf1r\x806\x10\xa3{n\xc7\xe2\xf1\xc2\xa0\xa3\x8eS#\xec"!\xd3\xc3\xf0L\xaa\x90\x92\xccL\xdb\x18\x08L]i1~\x95^\x1d\xca\x02LO\xba(\x17s\xa1XLK"\xe5R\xcfc\x99\xa1\xd6N|\x05b;\xee<\xf2\x0e\xb1\x17e\x03\xf3U\x90m.?\x0f\x8dI\x13R\x14x\x03\x12k\x8e-x\x8c\x86n\xb1\xc1i\x0c0l\xe2\x90T\x040e(o6\x94!-\xc5\xba\x87+\xbc\x88\xa9F\xc2x&\xf9\x0b\xe0SCzOk\x8e\xf1\x11\xe7\x97j\x1a\x1d5\x95\xa8$H`\xb7\x90\xc1\x1f2\x9dz\x89\x91\xa9&:\xb4\x174\x10\xb0n\xa5>!\xd2\xa8*<\xb4\xbdC]\x0c=\x15\xd2\x1c\x88\x83~H\xca%\x90\xd5A\xed\xaavc\n{>\xd1\xbe[I\x963};b\xc6\xe3)\xf8\x8e\x05)ebSfh\xfc\x15iW\\\xda)\x07\xf9\xf7{3F\x10\xba\xbe\x1b\x1b!\xa3\x86\xd1^\xc6\xab\xa4vi\xe2"\xda\xfd\x8f\x9d\x9a\x1d\xdf\x81\xec\x0bK\xc1y\xed\xa8\x8fY\x03\x8c\x8f\xa6h.8\xa5g\xfc\xe5\xc0\x81`\xef\xf9\x06\xd1\xff\xe6\x16Z7\x8b\x1c\xa8g\x88H\xb0{-\xd1\x7f\xf6\x8a\x17>\x11\xe9\x8f\xc1?\xd6\x94\xaf\xe3\xff\xee\xdd\xa8W\x00$\x9f6\xe7d\x0e\x03\xb8"pcZ\xea\x89\xf7G\x81%\x95\x92\x13\x05\xc7\x8b\x85\x08\x07\x00\xf2&\xeb\x85\x93t\xb0\x0f7\xcd\x14\xf6J\x8c\xf49\x9d\xeeh[\t\xe9\xea\x9e+\x11/>\xa0Z\xd4\x07\xac\xa9\xe8z\xf7\xcbG\x97W\x99T\x07n\x94\xb4X& \xb0\x95\xce\xf8\xc2\x04\xea-\'q\xd3\\\xfd]\xb9I\x87\x18\x15Dg\xb3\x1a~\x04l\xf0\xbb\x16\xfa\x83\xaf\xf4sh\n\xcb\x8d\xa1\tw\x11\xca\x05\xa1\x85C\x10\x01\xd8\x81\xc5\xcf\xd2jl~P\xd4\x12\xaf\x81o\x05;\xc1\x04\x12\x86\x83\xafW\xda\x0f\xbf\xe5\x89\xd0\x00c\x07\xed\xb3\xe3\xd0\xb2\xeb\x05\xbc\xc4\x93C\x14\xa6\xcfU\xf2\xa5c|\xca`\xbe\xea\x1d\x18\xe3\x14I\x90\x87=\xf8P&_\xd2\r\xfd\x0b\t\xea0Z\xef\xff\xc5\xea(n\xee\x1b\xac\xea\xac\x9a\xc9\x06qCF\xd6\xd9n\x05\xc8X\xb6\x9d\x99\xec\xe5\xbf\xb9PC,R\x0e?\xd9\xfd$\x97q\xde\x16\xe9$H;\x87\x9e\\\x88\\S\x0f\xa9Zq\x9f\xff{\xc3\x8c\xe9"\xd2)\x0f\xcduc\xe1\xce\xd6\x03/\xd2\xa8\xdaf\xaa.\x99\x9a\x00\xee\'\x80\x84\xd0n{Jx\x83\x85\xcb\x18U\x8bX\xfe]o\xd9q\x01\xca\x8d\xfa\x1e^\x06&\x03\x10\xab\xc2\x93\x1f\xbc\xdb\xe2Yu[s-\xa8\x8d\xbc\xde\xdcw`\x7f\xb9\xfb\xa5\xea\xb5\xc9n\xcce\xe2\xcf\x8dJ_\xf4f\x7f\xd5\xe7\x8a\xfedu\xdb@\xf8^2tf\xce\xb9`\xa8\xe9)\x82\x97R\xb31\x9a\xff\xdcDP\\\xbf:*\t/`1g \xf1W\x91\xd8\x89\xa8\xae\xfc;\xe1\xbd$\xf4\xf3\xc2\xd9\x8f\x8eO\xab<\xee5F\xc4\t\xc0\xa2I\xf8\x13\x9e%M\xc7i\xd6.E\xd4\xc8\x1fHQ)]\xd1=l\xb3\xd3\xe3\x12\x89\xef\xc8\xc9\x93\x82\xdd\xe9>C,p\xdaq7\x02eH\x8f\xfeBx\xbc\x0e\x1f\x1fB\x14\xb5\xc7^\xe4^\x9f+\xafaS[=\xc2\xf8_\x9c\xd9v\xe2\xa5CSRO\xd0-@\x99\x1f\xfb\xb3\xfcN\x17\xfd*\xeb{\x8dv\xe4\xf2\xae\xc2TAM\xe8\x1c|\x9b)i\xe9nUm\xd4\xa4\x1bU\xaa\xe0\x9f\xe6("\xa6\x15\x1b\xa8^\xc8\x94\x11u\xb2\x9f\x14{\xcb\x7fm\x1f\x84\xb7\x80J \xad\xa7\xbfR\x8eS\x880$\x93i\xdc\xc4\x88j6vH+r#\xc1\x88Z\xd1\x0e\xdav\x11v`Z,\x7f\x0e\xdb\xbb\x14\xc1\x80\xf3\xb6\xad\xc3q\x10\x8c\xfd\x9a\xc9\x97RxD\xb2\x04\xfd\x7fS\xc7\xa5P0\xdfo\xb1G\x97\xcd\xb0\xdf\xe2}\x91\xb8\xa4%\xe2D\x86Q\x8a\xec\x10qH^\xc9\xd0?\xcf\xd9\xde\x90\x1a\xa1\x94j\xfd2\x08\x03\xca\xc6V\x94G\xc3UQ\x88k\xd5b\xeb\x1e9\xb3K\xb6?\xe3x\xe9\x83\xc2~\xa5((\xb3\xf8g\x8a@aj\xd6YW~\'8}~\xb0\xd0\x9d\x87^\xa3\xd8\x023a\x84\x97\x88V\xd5*\x9b\xf6\xf8\xb2\x9f\x14\xff\xcb\x08|\x99x\x1a\xaeTa{\x80\xb9=\xc2\'\xbb\x15\'\x98\xee\x13\n\x96\xb1\x89\xb1\xbc\x11\xae\xe9\xe4[)\xebn\x90\x0e$\xda*\xf6\x00\xfe\xb3}\x1f\xc9\x0e\xb5\\\n4\x9e\xc3\xf7ru6T\xfd\x1e\x1dH\xd6A\xb3\xeb\xff\xfb\x7f\xa3\x0e\xed\x82\t<\xd3:\xb0\x02\x18\x88\xc8\xb5\x08X\xa9\xad)\xb4d\xbc\x03;5\xbde\xa79\xe4_0\x9c\x05\xb5\xbb6<;\xcf\xae\xbf`\n\xc9\xc6\x85G\xe8\x14I\xfe\xb4\xe1\xe3\xbf\x01{7uFT\xbb\xcc\x1a\xf6\xe1\x83\x08\x84\xd9\x93\x15\x7f(\xc8!\xf3J{\x03\x00h\xa0\xfcc\xeb&8\x1dT\x8a\xda\x1e\x85}\x0cA\xdf\x1e\xac\xa2\xd3\x1c\x11*,/\x08\xd2\x8e\xe8\xca\xec\x0b\xff\x00\x96\xe2s\xad\xc6\xc7\xc1=\xc4o\xfdw\xf1\xda\xdaD"7\xe9q\x8f\xea/\xf7\xdeY-\x99\x18\x8c\x1eM\xed\xde\x1f\xba\xcc>S\xd7I\xb0?\xc51\xef\xe7\xe3\x93\xf7\xaf\xf4/sX\xef\xdc\x08\xeb\x8c\xd0\xce\xba]\xe5\xdb\x9fg\x8a\xaf?\xc8/\x17\xe5\x00\xbc\x93B*\xae\xb5\xe3\x1f\xd5\x8et\xf7\xad\xc1j/\xe2\xf2\xc6\xec\x14\xbb\xc6\xa8$\xa1\xa2\x89\xdf9\xe0\x81\xe5\x96\x80\x9e\xf2\xd1\xb5\rC\xe8e9\x16\xfd\xc3\x82Yrci\xb3\x86BV\xb5\xb5\xbd\xe3\x8d7ec\xef\x80n\x1d/\xfb\x0b\x90\xa2\xb6`(z\x0c\xba\xb3C\x1f\xd9\xa3lB\xd0\x88uX"x\xdfE\x8c\xa4\xc9\xe7\x81\xbci\x87\xff\x17\xb7@+j*J\xd0\xe0=\x1e\xef\xbd~\xbd/<\xdc\x85\x0cV\xb9\x03i\x8c\xa5\x88\x825!\xab\xdeN\xa9\x0eJ*\x97\x92\xcfcm/\x8eW@\x91\x8c\x16\xbaP\xf3\xb7\x9f11\x9f\xcc\xef\xe3\ty1\xdb\x121\x1b=\xbb\xdd\x0f3J\xba\x9ch\x86;\xb7{\xe1\xc5(\x9c\xb1\xd7\xf5s\xde\xb7\rn\x83X\x16k\r\xf5\xf6xf\xc5\r\xed\xad\xe1\x05\x04\x9f\x8e<\x9e\xd8l\xc9\x87\xe2\x93dxB\xb0g\xcc\xdd\x16\xd1\xd0\xac\x16\x9bb,eN\xd0B\x17\xaf\xdd\x0b2\xc5\xd4\xa0\x08\x8c\xca+/\xd8\xcf\x7f\x9cK\xfb)1\x8f\x00\x8e\ti\xb2I\xfc\xc6\xcd\xbb(\x06&\xee\xeb\xe4v\x19\x1a\x85\x0e(\x14\xc8\xb32\x1f\xe8\x10c\x9a\x92y\xca\xe6\xad\xa5\xfc\xce\xb405\x1f\xaf\xd4\xa2\x10\x9e\xb1\xb6\x80\\J<{\xae\xd0\xdf\x19\xd9|\xde\x0e`\x01\nW1\x9c\t\x85u\'\xef\xce\x12\x1e\x04e\x81\x916\xaf\xf4\xfc\xa0\xd1j\xb7\x99\x94\xf9J\xff\x1f\xa5\xde\x06\xd81\xd9\x9b\xe8\x87\x85\x07\x82\x81\x92\xff\xd0\xa5\xe5\xe5\xa7\x02[S@ZK\x07%b<\n\xdax\xff^\xbe-\xa9\xc1\x8f\xe0\x8e\x87\xe8\xca\xc0\x97\xa2\xc7\xcb\r\xac\xa7\x8d\\\xc4\x00\x0e\xdc\xa0\xf0\x1d\x85\x8b\rR\x18>\xb7\xd2)RE\xbb=\x10\xe5| \xf3\xd6\x92\x92Gl\x00W\xba\xed\xaf\x1bz\xe8\x88]j\xa3\x84s\x14s\x83\xa7\r8\xa6\xd6\x1eu\xf7\xa4\xf2\x91\xd6\xa5\xc2;z\x92\x93A{\xf9K\xbarR\xf1\xe7\xee$?\xe4\x8b)\xf5h#4\xe9EA\xd4\x1b\xc1\x12\xba\x01\x18o\x9fu\xff\xaejx\r\xc1\xa9&\xf1\xdb;\x81\xb6S\xebG\xf5\xa2\x005O:\xb8\xef\xb5\x89\x96n\x88dx#<=\x9a\xeaT*\x7f\x98\x1aM\x84\x18\x06\xf1\x1dX\xb5=\x0e|\x18\xfay\xa4KN@\x11\xaf@\xd9\x97.\xc9\xebP\x88\xb8\xa8$6\xa2\xf4>\xc8\xfeq\x18\x06\x0c\x9e4a\xfd\x84\xd7\xe2u\xf3\xd1T\x10\xdc 0\x13Ih!\xb4\xe2&#\x8ez\xa97\xf4\x18E\xbf\x10\x88\'C\x92A\xaa\x1c\xd7]\xcb`\xe4"=R\xfct\xf5]k\xee-\xe7\x12\xe9?\xfb\xa6I\xf8\xd5{}\xca\x88\x00\xaczFo\x91\xd80\xf8`\xb4\xa1\xb70\xc2\x00q0\xb1p\x8b\xdc\xee5E\x10\x16\x89\xbb\xaa\xf2"\xdd\xac\x1d\x95X9\x83[^\xb0\xa8\xe9=\xbc\xe2\xbb\xbfh\xd9r\xe0\xb8l\x91\xd2}k\xf6\xd3\xed\xe7\x90\x1es\x00\x9fa4\t\xea\xddi\x11[>\xe5bo\xed!\xd2\xe8\xd6\xb4\xa1D,\x90\x03\xf0\xe7\xd7x\xe4%4\x9f\x0e\xe5\xfd\xfe(\xbaN\xec\xe2\xec\x99\xae\x81\x8c\xeep\'\x1c\xd3vf<\xb8\x1a\xae\x16\xa2\xd9I\xe7\xeb\x87\xf4\xf7\xc8\x06\x8b]\xf39~\xe8\xb4P8\nJ\x07\xc0\x9d\xf5\xca\x8bW\xe1,`\xea_A|H-\xf4\xec@\x00\x02\x12!\xe17_\x03\xc0=[\x9bZ\x8f\x94\xc7~l\xa5\x8e\x92\xe5\x03@\xf4\x0evb\x01y\xc3J\xf8\xa6\xbdx\xe5\x13\x82\xef\x0f\xdb\xf3\xd9\x02\x8e\xfe7\xabA<\x955Zn\x97\x9c\xcaz\x16\x1e?\xb4\xbe\x94Fe\x84m\xe0\x17\x8bx\x97\xd7\xd2\x82\x84\xd9\x9a\x97\xdc\x17\xbf\x03%\xff4\xb9M[\x19W\xa2\x04\x96\x1a\x9a.\xf4.\xff\x07{\x16\xf4d(\n\x17\xb0/}\x13\x88/wU\xab\xcf\xb9\x80\x86_\xb8\x024fP\x189\xf1\x9cKk\xed\x9e_\x82S\xf4\xf4d\xa1i\x99\x10a\xc1Y\xe6hN\x94P\x9e%\xa1u\xf5;Q\xcb\x80\xb2\x92\xd3\xb62\xeb\x9d\xd3\xfa\x1f\x15|\xf8\xa7z\x05\xe0\xf6\xca\x1d\x1c\x02\x9aP\x8f\x8f\x1c(\xe9\xc1\xac\xdf\xfc\xcf\x95-m\x8f\x08\xf32\xc4\xb4\xe0hv\xad\xd8\x1b\x15\xf2\xabb\x98\x82\xb3\x9e}\xce\xc5\xe2\xeda0\xa3\xbc\xcc\xe73\xa6\xa0:\x80\x19\xbb\r\x07\xf6\xf9\xadR\x10\xcd\xb7F\x959\x8c\xf6Y\x07\xe0[\n\xfcP\'\x8f\x88-\xea\xf0\r\xa3\x95\xe7\xc6f\\\xcc\xf5h\xe0\xa4\xad|*\x8d\xdeV\x9f\xbd\x1ce\x91w\xa5\t\xc2\x00\xe8/\x81\x0bb\xaf\xcc\xd4\xe3\xb9.e\xd1\xc1:\xcc\x8b\x83\x1e\xbf\xc8\x88\x10r\xbfK\xf0\xa4\x92\xee.Y\xe2\xa2\x90\x16\xaf\xa6q\xe3\xa6\x7f\x9f\xf4\xcc\x14\xfd\xad\x97\xf6\xc9RPH\x97\xd81oluY\xab\xc3\x9bk\xea\xe4\xc4p_Jj\x8e\xb49\xd0\x95\xdfa\x9c.\xbc\xc2\x0bQ}\xafz\x89\xf1\x94\xa57\xe4\x94\xa6\x99\x11*\xf7\xf0\xdc\x05\xea\xe9\x8a\xbe\xa6\x8f\x1d\x7f\x82\x05t\\\xa8\xe3\x16\x19Q\xbbV*\t\x9e\xf1\x9d\x14@\x8c\xecS\xbc\xe2\xa7\x84\x88\xc4;\xabBR*Q\xd2\x8d\r\xa2\xa4q\xd8\xb9YXA\x9be\x0b\xe6\xb6<\xa5\xd3B\xfd=\xde\x16w\xec\xbb\x13\xd4}f\xd8\x8a|v\xc3B\x88M#\xcf\xc8\x06\xd5\xac\x96\xc0\xdd\x82D\x7f\x8ax\x02HU\xe9\xbc\x8c\xfb\xc4\xf1\x0fTer\x88\x84\xf0I\xa3\xbb\xff\xab\x9e%\xb4\xba?\xecI\xd5X\xcfq\xcf\x12\x9d\x00\xc5\xe5b\xf3\x9dp\x84Z\xc2~\xdeq\xec\xea\xeb\xde8_\xccG\x90N\x81_\xa1>\xf0S*Of\x98*\x89h\xfa\x1aM\xe7\xce\x8b\xb1\x1b\xbc\xd8\xf4\xb9\xee(\xe6h\x1b\xd6\xa6\x14\xeaU\xe6\xa4c\n\xae\x12\xb3\x07\x0fou\xc7\xd7\xe7\\n\x16b!\xbfg_\t\xe9\x15T\xee\xdf)\x0e\x82\x92\x81Yi\xffWL\xcfm\xf7\xc1\x81\x8a\xae\x7f"}Q4\xd1\x91\x98\xd3\x15\xda\xeb`\xc7"\xb5R\xc5\x0cI\xeb\x0e\x8c\x88\xda\xf2P\x85\x1c\xfe\xf2\xa9tO\x82\xadrm7vxC\xfc\x94t\xc4\xe2\x00}\xb1\xf3b\xa6\xdb\x83\x94f\xbe\xf1\xd6z\xb5bc(?%\xa4@r\xc8\xfb\xdep\x88\x13\xb8\xdcrh.j\x9d\xc9\xb7\xd9\x08\xdc\xc5\xa4a\xc8\x11\xc9>\x12\xa2\xfc[s\xfb\x96K5Y2\xa7\xcd\xd2\x9e\xc3\xec\xb7\xf7\x13G>\xb5\xe9a\xf7\x0bw\x82\x0bd\xf2\xab\xc2\xd5"\x8c\xb9\x0e\xfb\x95J\xf6p\x926\xd4\xeb\xa4\xa7;\xac1\xd2Y\x1c)\xf11\xb3\x94\xcbU$\xef\xab\xab/p:\x08\xfe\x06\xdc$\x89[\xbdAgD\x8aH\xa8\xb7x\xee\xeb9\xdam\x07\xa2\x05\x8er\x82H#\xa3\x08\x88\xf4?\xec\xab\xa8wt,GW\xfc\x80l\xc7\x1eS\xc2/d^\xdbn\x1b\x8d+\xa5\x1bB\xca\x0e\x80\x89i\xff\xd7\xb8\xb0\xab\xd8\n\xcd|\x02\xfa\x96w\n\x17\\\x1e=q}(\x0f\x83\xb77\x90\x87\xa7fI>\x87N\xbct\xdb\x9a\xc5G\xbd\x9e\x1b\xd6*T\xc3\x14\x97\x97\xbbk\xe5\xf3\x8b\xd2:\x8c\xd6x\x04\x07Z\xb8\xf4Zhf\x1bT\x12P\xb0\x91\x9f\x06\xb2\x03\x03\xb2\xee)\x99a\x86}@4J\xbd\xab\x82\x1cz\xa43A\x1b\x1523\r\xd9\xee\xdd\x87\xa77[\xc3_\x97AyL\xaaRL\r\xfc\xdd\xd7\x1d@5\xca\x13,`\xa8\xe1\xb9y\xa1M\x1b\xed\xa5\xdeo\x888D\\\x85\xbe\xf3\xf2\xf8\xe4ox9\x90\x8eU}\x1bc6\xcd\xac\xc2F2:\xbde\xae#\\\x14v\xb7\x844\xb1z\x81\x96\xbd^\xe3\xe6>\x9e\x07\xc4\n\x1f\xe3\x82\x83\xd7N\xe0\xa6\xd2\xa1\x89G\xae\x83\x1d|(Q\xaa\tx\xece\xa5-hff\xf6d\xd8\xd4\x1bV\x03\xda\xf1\x12/Y\x94\xdf\t$\x85B\xbc\xcex\xdbM\x9e\x83\xb4\x97C(0\xa4\x84\xa9d\xa2J\x8b\x97o\xec\x8d\x19+\xe8\x19\xfez\xf57\x88\xac\xe0\x9f\xeb\x99G\x0b\xce\x88\x079\x00\x9e\xcaK\x8d`\x03\x83\xfb\xa0\x97\x0c\xce:\x07ht\x7f P\xa3\x88\x0e\xa2\xe6:\xcd\x96{\x96\xa2\x1d\x04\xa1\xb1\xe6\xed\xeb\x111b\x1d\x9bK\xb8^\xee\x00S`\x08V\xf2\xaa\xf3]fr"4u\xa0^\x92Fn\xafg\xd7\x02\x7f\x00#63p\x97C\xe4 |\xf1q?\x03\xb1\x92\xef\x97\xc7\xf7V\xe6\xd6\xb7[\xfd\x85hI\x01^B\x88\xd3\x84\x89G\xe9\xd3\xb6n\xad\x16\xb8\xd3\xbaD{V\xae%u^\xc89)#\xd0\xea\xa230\x1aI\x84\x9d)#\xc6\xb8\x1dIQ\x1b3\xb2H2\xc6/\xe7\x9fN~S\x80"\x91f\xfd\xfc+\xb2\xd8\x18\xe4\xb4`\xa1\xb74\x98T\xc5t\x86\xc9u\x1cm\x1c\x1a\x11\xfc\xbd\tQ\xf3uz\xbe\x88\xdb.\xc1n\xcb\x10\x03\xc8P1i\xad\r\xb5\x0e\xfa\x88;\xd7\xb4=\xfb\xd8\xfc\x85\xe5\xb5\xedg\xbd!>\x10\x9d\xb7\xdf\xea\xedi%\xee5d\xa4\xa6>|;\x17Xw\xb7\x80m\x13\xe2su\xb4Wkt\x12\xc8v\xa3o\xeaQ~\x15\x98,h+$\xe0\x0b\xd8\x84\x9f\x82\x13\x8d\x81b\xa7%\x9d\x93\x95O\xb4f2\x1d\x9c\xae\xbf\xee\xf6 \xf1\xa0\xcdOr\xfc\xb1\x81\xfc\xbf\xf9Q)8u<\xe0:\xca\xcd\xa9\xf4\x01\xf8\xed\x18\xd5A\x1f\x87\xab\x8c\xf5\xcd\xd3&*\xfaP\x0f-\xe6\x80\x19\x00\x16]\x89\xce\x1e\xe9\xc6\x13S=,\xa4\xfd\x806 \xee\xbbk\xb0}\xe7A\xc0\xa3T\xff=mkE\xc5\xc9j\x00\xb2!\xd3\\\x0f\xc6X\xd7|\x95$\xc7\xd4\xacV\x85\x1551\x8ed\xb5\x94\x85\xaf\x08;&m\x90\xd2\xc3Z\xfd\xe7\xa7Q\xb1K\'+\xe8j\x8b5\x13\x9cc\xecH\xc7\xeb\xafp+I\x9f\xb3u\xdd\xa8\xf8\xfc\xa0\x00R\xe6\xe6\xb7\x9f:P\xc5\xb58\x8bi\xbb\x8b\xed\xe7\xfa\xd7\x10\xc9m\x88~\xf6\xd8\x81\xe6\x91\xe0_\xd5\x93\xb6T\\,\x11"\xca#\x0c\xbcq\xc6$\x9bLe\xceT\xbe\xc8\xc1\x86d\t\x1a\xa5o\xdb\x0bw\x11\xb2^L\x85\xaeMeI\x86\xc2}\x14\x02\x8a\x17\xf2G\xe6I\xc4ipm6\x0bO0\xf7a\x86~R/\xbb\x17/\xbe\x82\x89z\xfaP\xaa\t\x00\xbb\xd0Q\x9a\xdf\xca\xf0-\xff(\xcc&H\xbd\xd7\x1at\x96u\x071\x0b\xbd\xca=K<\xd6\'\x1by\xe0\xf9t \x86\xb1\xdf\xb2\x88\x18?\x1a\xf8\xbc"\xccotw\xa6\xbb\xee\x1d\xb4\xb4\x1b\xe8\'\xe9\x80\x8dQ\xa5\x85\x0b\xcc\xb2\x7f!\xd8R:\x9b\xe2>4\x02\x04\x0c\xf0\x06h\xe7w\x98\xb2|\x9b\xac\x17Rz\xbc\x08/\xec^\x07\xff\x87U^NM\xe3&\x1c\x1fs\x0b\xea\xde\xd3\xed\xf5\xe5\xa5\xc8\x1b\xcf\xee\xa9&\xb9\x00\x95\x08\x88\xcf\x84\x1b\xdf\x86\xb5h4\x84%{G\xac\x8e\nb\xf5K\x9e\xcbA\xb4\xec\x8ef\x16\xaf\xa7\xb23J\xa2ld|a/\r\x06\xach\x03\x08\xb6\xc9\xfb^ ]Y\xd4c\x12&\xc7]?r\x8a\xa0i\x0c\xd2\xb4f\x858A8\x80\xab.;T\xe8\x96\x1e\xd5\xca)\r\x96\xe5\x16\x94\xbc\x88\x16\xe1\xc5Z^\xae\x04\xd3\xaf\xc78\xb2\xe2\xe0\xeav(*H\xd2\x98bv\xdcs\x1c\xff"OC^\xe5\xc9r\x95\x96\x0e\xbb\t\x03\x99\x8f\x88i@\x8do\xb4\xc7q\xd7\xcd\x96(\x0fQ0;\xb4y\xef\xb5\x0b\x07\xb5\xdf\xdf(NL1\x07`\x14\xf7\x9b:^\x8e\xe6A\x84V\x0c\xd4\x8ev\xbc\x1d\n\xe6\x8e\xb8\xfe\'\xc8\x1d\xfe92\xee8k\x9b\xa3\x81\xe7\x9c?US"\xee\x98\x93\xb8\x92\xdb_\x98\x93r\xa1\xbfEq\x0b\xf9\x15^\xebn\xfe\xae\xbb6H\xb9H\xb3\x803\xe3g\xc8D_\x08\xbd*\xa3q\xab\x03\xae\x82\xa9\xe7\xef\x94\\I)6\xbe\xef\xa8\x07\xf1\xf4F\xf2\x1a\r\n\x00\xd3\x9d\xe9\x8fX\xbc\xa6`\x90\x0c\xe8\x01\xd3\x1a{\xf0\x118\x17\x98y\x83\xd8\xd1C\xd7\xdd~\x88\x1cdI\xa9\xa1\x92\xfa\xda\xc1V(Mt$\x13\x91\x8d$\xaf\xbd$\xff\xecL\x15/F/u\xaf7e\xc6\x84\xc8\xd7Dx\xd3\xe8\xd0\x19\xc7\xeb\xf5\xd1\x91i\xa1>\xf6ho\x06\x9f\xcf8?@C1<\xaf\xafs\xffQ\x02\xf8<\xb9\xa7\xee\xdb?$\x92\x86\xae\x90\xaf\xc0\xb7[+[ ml\xfa\xaab\xb9S\xc1\x90DR\x00\xaf4\xf9\xbb\x0bJ}\xcd\x01;H\xe6\xabW\xed\xf3^\xf3\xc8jV\xf7f\xf01\xd2UAZ\xc8d\xcd7\xf3\xebE\xf1\x00\xdb1\x8e\x81\x8b\xa1\xaf\xb7\x9fg@\xa7ei\x1b\xe9I\xd7\x81l\xe1h\xaf\xeaG\t\xcd\x86\xecTRyie&\xee{\xd4`|\xf8\x07\xa1\x8b\x8b\x1d\xce\x81\x94\xf5\x80\xfcK\x1b\xf4Y9\xd9S\x92\xf7-\x05uZi\x81\xbfYUv\xb2\x07&9wh-\xe7pV\xcd\x19E\xa0\xfc\x9d\xdbW?\xbd\xa0\\G\xb1,\x1d\n\x1a\xdbu\x83\x94\xe8\xf0\xc3\x8f\xd2\xa8Ic4r7\xe2\x82\xb2\xc9[\xe5\xadUK\x0e!\x11\x98\xf5\x10\xdaU\xc2\xef\xa6\xf9\x9d\x16\xe4\x88}Ts\xdb\xff\xdb\xa6\xe6\x96\xe7\xb2\x99\x97\x88\xc2\xe9[\xb4L\xf4\xc8\x07\x9d\xd8V\x86\x874\xd9\xb1oVM\xf0\xa7\x8bKO8\x19\xef\xab4\x86\xf3\xab\xf3\xf6\x1b2|5\xec\x1c\xfb\xb9\xe3|4\xe2AU^\xc8\x7f\'\xc5\x12\x8e&9\xbc\x0e\xb06 Z\x9bj)\xcbG\xd8.\x8b\x00\x9e\xa3\xd6\xf7\xcaZ\xcb\x07B\xbe\x1e7~w\xa6\x16\xf3\xbe\xa21\x8ck\xcd\xa0C\x15\x13Q~kd\xcc<9\xb6\x04\x0c\x80\xb3\x1a\x91~\x1b!_\x19\x87\xa9\xe1fi:\x81ko\x00eN\x92\xee\xe7\xe5I\xec%E\xf6\xbb\xd0\x98U\xda\x07fy\xd1\xb9\xedLB\x92\xea\xb4\xf8p\xc7\xff\xb0\x1d\xbf%:\xdd\x19\x08\xe6(\x181\xb9l\xf6\x8a\xba\x9aG)\xa7\xbdV\xfe\xa7\xa6s<\xc3\xff\xcc\x0f\xf1\x86\xb2\xfa\xd1i\x03\x82Dm\xb6\xcc\x98H\x07\xd3!_\nN~Pi\x07\xd5>\xdfH\x89\xb3\xf2\xa7\xd7|\x1ek!n\xd3\x88\x8d\xfb\xec\x8d\xfe\xf6\x9d\xa5D?\x0e\xb5\xf2Q\xfd\x1fC}{\xd72\xe8\x91\x97\xfa;\x81\xce\xe6\xdb\x0b\xd9Q\xe1\x91@\xc8F*\xa3\x0eX\xff\xc9\xaeR#:\xd6\xe1\x1ce\x8a\xb4\x02\x973E\xf4m_\xf6\xb6i\x1dS\xa4~R?\x1f\xa9\xdd\xe1\x1cD\xbf\x89^\xa1\x18\xffI\x85?\x04\xa5\x03\x01\x90\xeb\xa6v(\x17\x9f\x1bd\xff\x14\x80\xb5\xcb\t7\x050\x0f\xc6\xa5zy\xf83\x9f\x9c\xd1I\xb3\xf3\x16+?#\xc0\x92\xceB\x11y\x90\xeb\x86\x99)\xde\x02\x11\x8a\x0e\xbe\x16y\x93\xce\t\x05.\xab\xdbj\xd22\x1c!\xaffg\xc6\xde\xac\x1e\xe8f\\Y-\xa7;m{\xfd\xd9\xf4Rm\x9fX\x9e\xe9\xdfU\xbf\xbbZ6hu\x027\xe9\xf3\xcd\xb8\x89\xcd\x02]\x92\xbb]\x08\xae\x03\xfb\xb9\x0e\xc9jt T\xb1\xf9L\xa9\x80$\x9e\xae\x80\xcbd\xf7Q\tY\t\x945b\xd3\xfaw\xa3\x06\x03\xb7\x014\xe6\xf6]\x8a\xc2\xd0U\x0c\xcd\xa9X{\xf8\x12\x11\x1e.\x01\xde6\xd6\x9c\xf4;s\xf3\xc4\xc4\xc8\x0b>\x0cGx\xc5\x84\r&S\xafa\xb3\xa6\xef`p\x94\x11\n\xb9\xf5\xdc\x12\x92\x80\x9f\x1b\xc86\t\xd0\xe4\x19\xc1*\xb21\x0b\x92\xbc\x7f\xde\x86\\\x08\xac\x9fM\x10\xc9@\x92za\x12k^\xa00;\x1aN\x13\xe3\xeb\xb6H\x10\xcd\xe0L\xde\xee\xfe\xa9S\x83\xe8-oS\x9dr\x0b\xf7>\x8e\x90\xb6+\xc6\x08\xee\x85\xa0\xa0R\xd1W\xfa\x1bhu\x10\x89\xe7C\x8e\xa4?\x03\x87R}\x16\x809%\xf59\x88\xd3G\x8a:>\x19\xf9\xb9r\xc3\x13\xe1\xfe\xe8\x91\x10\xac\x0bDY\xb9\xe6\xac\x01\x1c~\xf4\x01\xa0]\x9a\x13&\x83\xc7\x17\xf9\x08\xa3\x88fy6\x13:\x07]\x08\xf6^7;\x94\xf9\x93\xaf\xd4tSj\xdd?\xf8\xa8\x0f\xde\xc9a\x1e\xb6Ql`\xef\xed\xb0\x04P\xa4\x9f\x8d\xe1>\x06Z\xbd\x96\xe1cO\xcb\xa1\xbd0\xa5{\xfb\xd11\xfa\x1co\x9dw\xb4\\\xaa\xa6\xcd2 X\xed6\xa0.?\xd0\xc3M\xc3Ey\xbd\\\xc5\x8cL\x9dy\xd5\xfe\xdb\x8e\xc1\xc8\xedM\xe3PH\r\xc2\xa8\xbfT\xd6\xb3V\x87\xdf\xf0\xdf9\xf1%\x81\xeaY\xdc\x07\xb1\xf0\x87k\xa4lp\x04\xdf\xff\x18\xbd\xb9J+\x14\x89\xdc\x0b\xc97\xe2Ix\xa2\xb6\x8f\x8blp"(\xb0\xcc\xa0\xf6\'<\xfb\xabR\x8bx\xae \xeb\xd9G\x80\xeaf\x962\x15\x07\xf8\xf4\xa2\xca\x9dvO\xfa?\xb3\x1d\x938:b\xba\xaa\xccx\xe8\xdeT6\x0cRv\xe0G\xe3\x85b\xfcm\xc5\xc1\xb4\xcb\xc3\xf0\xfb\x8c\x85\x9f~\x81`\xea\x9b\xc7su\xb4M]p\xae\xb9r\xa2pA\xc2\xd8\xf8%\xb9\xe19\xec\xb2\x8d\x96\xf3\xee\x1cb\xb1\xe4\x08j^ih0o\xffMh\xae9[KH\xf6\x9e z:Q/\x8b\x16\x05\x1a(\\\x03S\xb9&\xc9\x88/N\x98\xd5\xcf\x07\x8a\xd1Q\x0c\xc9\x10\xbeh\x80\x17D\xf7\x98\xd7\x85\x86\x02U\xe3\x9e\x82\x97\xee\xc9.\x0e\r\xeeZq\xa7a3\xd60H\x03S\xae\xbdD2\x0b\xb0]\xf9\xc1\x7f\x96\xae\xa2M\x140r\xe4\x81\x8bRBCl4\x1a\\\x13\x9b\xb0\'ktUP\xe2P\x14\xe1\xd2\xd4\xf3)\xfd1\xa5\xc9\x00\xb0k]E\t\x10E\xe3y\xdd\x03}\xf3\x82\xfd\x0c\x1daq)\x88\xc2\x1d\xde"@\xfe\xbd\x0c]\xa7\x1dOvF[b\r\x85-\xbf\xb8Jq \xfd\x84e\xea\x8f)\t\xb2\xc1\xee\xa5\x02\xc7\xe6g;\x04a\x1b\xe9\x93\x1fv\x10j.N\x13\xc0?H\x9ciL\x14\x02\xc4,\xbe\xd8\xb6(q \x08\xe5\xe6\x87[\x80\xb8\xe5| \x15\x82\xb2\x17J\x9d\xaa\x89\xd9\x99\x19Q\xaeckQ7\x1c\xd1_\xdc\x93\xfe\x93\x0e\xe2\x9f\xef\xf1\xf7\xf0\x9clt\xe4[$\x19S\xbf\xa0\x9fO\xf1\x05\xa3\x94\xa1\x83R\xdc%|\x9a\x93\xc9=5\xe9\x0c\x0f_\xc6\xd3Ne7]\xc3\x9a\xfe\xca;\x90+\x07\xd7\xa1\x9b7\x85A\x1bt\x9b\xb4\xb1\xa7\xcf\xf0\xc7\x84\x18\xdc\x9a\xc9\xb4*ds\xc7\xbe\xed\xfd\x00\x885\x00\xcbbi \x16eB\xcc"\xb7\xc2\x8a\xa6\x92+\x837N\xafC\xef\xe5Y\x95j\x15\xdeS,S%\xc1\xae\xfb_\x9d\xc1\xed\x86\x00\xc7\xc9\xda)\'\x99\xf0\x90\x85\x17\x08:W\xb0\xd8d\xf7\x13\x18\xba\x8bS\x0e0z\xab,\x02-\xff\x14J\xb9\xb0\xaa\x82\xd3\xb5m\x0c\xcc\xf7\xba\xaer\xe4u\x00J\xae6WpAQi\xe6lj\x82\xb4g\xeaSM\x1aZ\x9b\xd3\xebZ=\x10\x90\xcf*\x14\x02l]R\x1a\x83\x0c\x05GE\xfbQ\xff\xfb\xf7\xbd\xe3\x82\x8b\xd6\xc1\x1c3\xe0\xb2\xdc\xe8\xea4]\x00\xeb,\x98\x8d\x8dH\xb3\xa0B4\x854\x14-\x06\x9b?\x98\xc0\x1c\xfdq\x9a\xd1w\xfdb\xef\x90n+\xb5\xc8\n\x8cX\xa6\x04\xe2x=-\x9f\xbe\t\x8f,\x02H\xb9Y\xfc\x86\xfa{\xd0\xcb6Bj\xea\x1b\xe8\xb2?3\x90]\x8aI\xbcCK\xd7\x13gj\xc2\x0e\x06\xd1\x0e\x93\xbe\xa1\xa94\'{\xac\xa8z\xb6\x97\x8f\xac\x1f\xb7\xea\xf6\xc9\xe7@mW,8c\xe4r\xc5\xeeYX\x01$\x13\xdc\x11\xeb\x05\x87\xb0\xdc\xc0\x96#(\xa6\x95\xfc@S\xcb7\x95\x90\xef\xc8\x898\xfb\x01\x8a\x14\x95\xff\xde\x8cN<\xf5\x99\t\x00^\xe3e>#\\\x1e\x94\xb4\x87\xfa\xd93\xf7\xca7\xac\x02\xeb\xb0m\xb8q$L\xdb\x85O\xa4\xa7\x84\xceEE\x84O\x98\x967\x81\xda\xc3\xe7\x0b\x19~B\xdb\xef \x87\x05\xb9\xd3\xd1I\x99\x0eRu%C\xd8\xf5\xd9\xc4\x98\xb2yJ\x8f\x10\xe8\x14\xd3\x07\x86\xee^j\xd9\xdf/-\xe1\xfe\xd1/\xd9\xcb\xb2\x1d\xae\xff\x12#\x84\x99\xef\xc77vh8"\xf6\x05j\xef\xd0(\xb4\xb1\x062\xe7\xc5\xc2\xee\xa0\xfe\x87\x9a?L\x92c\xc3\xb1\xa2\xb1q\x08\xce,h\xb4H!\x99\xa9\x16#\x03\x0fy \x89\x96\x88\x87/\xad\xd8\xd7\xaf~\xda,j\xbd\x14@\x8dbG\x16\xde\xf1[\x8a~-\x8d\x9f>*\x83[\xaa3\x85\x90\xb4$\xcb\xc6\x9e\x97J\xa3w\x8f\n\x06\xee\xf5e\x92\xf0+v-\xfe\x1d\x9d\xbc\xa9\x1as\x88\xbe\xa1\x85i\x1c\x08f\xa1\x12\xf1\x18x\x12\xba\xb0\x16\x99\xb4\xc4\xf4\xab^\x1cP\x10r\xf6\xbe=N\xfe\x0b\xfc\x04\xf5\xb8\x9e\x1c\xd9O\x01O\rnz\x08s\xb9-I\x0f\x1c\x9a\x8d\x87pJ\x94\x86\xd4\x01y\xdd>\xe6&~;\xa8\tU8\xe8(\x12\xe3\xd5\xa5\x0b\x1d\xc8z\xca\xd6<\xaa\xc9F,\x10\xffp\x02v!\x94\x18\xdf\x1a\xf9\xdc\x97b\x8c\xba\xf0\ny\x0f\xc9\x9a\xdc\xba\x04\x06\xa4H\xd9\xa2m\x19\x94\r\xba\x04//\x88\xcd\x0fa\xfe\xde#\xf2\xe4~=6Hm\xf2\x97\xa1\x91\xb6\x9cX8\xaa\x13\x84l=F\xef\xd2Nu\x93V\x92\xbd\xb2\xfe\x1c\xaa\x86\xce\xae=\x98\x08}\xd6VY\xe9\n\xab\xc6#k,\x9cj\xc2\x9c\xc2<\x17\xe8\x97\x17\x91:\x94j,\xcf\xd5\xcb\xa1\xf4T\x18\xba\xa4\xea\xaeJ\x9d_yf9Q\xb9\x9dk\xe3\x117\x91\xd9D\xffI\x13\x97\xe5a\x05\xea]\xd0h\x1c\xb9cL=J\xa2\xc6\xe2\xdb\x9f\xd4\x99IE\xda\xbf\xcc"!\xf3\x05Hhk\x957\xfa\x9e\x8aG\x18\x91\xd1\xe7\xda\xb2\xaa\x96\x15\xf1y\x8e\xab\x80\xe3\xaa\x02l\xf7ur\xf94\xd4nB\x08\x0cP\x8e\xb0\x9f\xfc\xb39\xfc\x88\x05jm\xbd\xcc\xee\x1b\x0e:\xa6\x82\xd7\xb2\x90\xe40\x08\x92\x92\xc1S\xa0\x1eJL\xab\xeeh\x1b*\xd0xL\xde\xa4\xecu\x07N\xfe\x8c\xcd\x9ahL\xc3\xb7\xc5v\x1b\xdf\x100\'\x94\x14\x18\x9c\x9b\xd8\xfe\xf4$I\x03B\xe4\xc4%\xef@\xacr\xe8u\xb1\x97x\xccF&DsQ\xbe\xe5\x16M\xc0\rG\\e\xd6\xdd\x9bT\x81\xf6\xd4\xf6\xcabv\x08:h\xd2!\xa9V\xf5\x00\xefy\xdabY\xa19$P\xb43\xa7\xe0t\x88&%\x19-JWJ\x01\x8f+\xba\x17S@\x8b\xfa\xfc\x92g"\x05\x8du\x8a') diff --git a/dist_obfuscated/src/orisys/tracker.py b/dist_obfuscated/src/orisys/tracker.py new file mode 100644 index 0000000..4e70de9 --- /dev/null +++ b/dist_obfuscated/src/orisys/tracker.py @@ -0,0 +1,3 @@ +# Pyarmor 9.2.2 (trial), 000000, non-profits, 2025-12-15T17:04:23.700438 +from pyarmor_runtime_000000 import __pyarmor__ +__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x08\x00U\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00\x04\x1e\x00\x00\x12\t\x04\x00\xd7 \xdc\xdf%R\x06\x81\xd4\xe8\xfc`\x99[$\x93\x00\x00\x00\x00\x00\x00\x00\x00j\xd4\xe3)g\xff\xbc\xaa\xf4sT({\x8b\xed\x00\x8f\x91\xb3,\xec\xac\x8f /\x05Q\xa5\x80\xc8\x19\x92\x9c\x89\xdb\xb6ik\x04l\xa08\xbe\xb7DO>$;\xe7vyc\x87\x02\xb4\x80\x89\x1e\xec}\xe3\xeaW\xd1\'\x156\xde\x87\xd7\x8c\x87f\xb8x\xb78\x04\xc9\x1c\xe4\xe4\xc4w\x96\xabM\xeaA\xdf(\x8b\xd1fZRk\xe2L\x19\xee\xcb\xeb\xeat\xae\x07\xb2 \xa5Y\x1e\xab\x8a\xea\xea\xf2\xe4\xd7\x80HD\xe6\x8b\xe7\xf0d\xcf=\xe4\xb2\x91\x89\xcb\xfdK\x82\x0b\x12\xe7\xc8Fx\x87\xc0$\x86\x0f\x81\xb8\x84\x80\xc63S\x1c^$<\xa3P\xe0,:K\x96\x8c\xc6x\x80t%\xa5\x85\xed\xe3\x9f\x1c.q\xeb\xa9\x0e\xdaR\xcc\x03\xad\xca$\xf7\xd2\xd9;T\xadHA\x98"\xbb!\x8d";U\xe4\xfa\xaet\xe6\xd7oE\xedR\xa3s\xb0\x8c\xf1\xfd({!\x91\xaf\xccn\xae:w\xb5\xd0\xbf{\xbb\xcc\xd3\x82KAb\xff\x03b\xb9Y\xa8p\xc0\\\x11\xafW\xe9\x0f\xb8]\x96.\x8fR\xd3\xdf\xaf\xe0\\\x93\x84\x19R:\xe4\x9fO\x97\xdb&\xe1!ss\xe9\n8\x95-\xd9Ls\x0f\x92\xdd\xac\xa7\x82\xc0\xa9(m\x94DA\x82\x8b!\x9e\xa9\xeag\x03\xa4\xc40\x96\xbbh\xa7&\xdd\xddr\x970\xa8f\x82r\xeds\x1e\n\xc9\xedu\xaf*B\xbe1\xb5\xc8\xf7\x12$\x92a\xb8\x82\xa3\r\xc8`N\x8bV\xf3\xe1!\x14\xa7\x81\x16\xb0\x8d\xe5q\xb9\xa7\x90C\x96\xeeMj\x99\x1b\x86\xc0{u\xf1Q\xa0\xcf\n\xe1\x94h5|\x91T\xc2P\xce\x055\xc9\xc0\xdcN\xf9\xec0\xa1)\x81y,\xee\xe2\x12\x92\xb9a=7\xc8\xa7xd\xec\x13U\xa8\xd5\x18\x83\xfe\x85\'p7\xc6\x82\xb3\x13D0\x8fg\x880\xab>h\xa8Q}\x11\xdd\tn\xf1\xbf\xcap\xe7rPU\xf2\xd13\x05n\x0c^\xafA\x17Cks8\xc6#\xde\xe5\'W\x9f K\xdc\x03&WJ\xe9\xfe\x7fn\xaaR1\x80\x08g\xe5S\x1f\xaf\xa7\xebw\x98\xad\xc0\xc2\xbd\xf98\xad\xef\x02\x16\xbf\xc8\xda\x11?\x85\xbb\xf2\xf4\xb5\x8a\xa4\x02\xb1~\xfb\x83B\x83\xde\x82d\xe8f8\xc5v,\xb0\xf4v[\xee\xab$\xad=\x11\x80\xb3\xc2\r\xd2\x1b\xd1\x8a7\xf6eO~\x8f\xb0\xf1\x9a\xfc?\x8c\x8f\xcfNU;\xa9\x06&\x1ad<\x9a0\xc6\xa2\xab\xe8\x82m\x804\xc0\xa2\x14E\xec\xc5\x194^2\x10Lm$F\xf2\xcd\xd6L\x1a\xbd\x88\xd5\xd1\x99\x17\xfd\x8e7Xv\xe0\x00Dr\x1c\xbd\xd5\x89\xcf\x06\xecBj\x97\xb3\xd9\xc6(DZn\x07\x02e\xf7(\x8a\xa6\x03\x8b\xd1\xfc\xd8)\xf8\x80\xf0o3\x97\xc7Ow4\xf7\x06\xcf\xa4|\xa4\xe5\x83\x871\x1b\xfd1\xe3T\xd5\xe6\x9c\xff$|4\x9e\xaff%a\xe8\x1a\xebF\x15\xf11oo\xaf\xe9:.\xa8>\xc9d\xfe\xb2N\x88\xba2\xa2\xa4\x00\x99\xc8\xc4\x98\xac\xfb\xcc\x10%\xc4A\xd62\xbf}\x93\xc0\xfa~a1\xbaE1vP"\x88N\xbd\r\xa6\xf8\xe1\x86\xb3\x18[\xa1\x8d\x19\x86t.\xf9\x10\xda\x98\xef\xc2@\xf1e\xee@Z\x8b\x0f\xbd\x87\xe9\xc7f\x8f1\x8f8\xa9+\xc1.\x97\xfa\xf2\xc7~?a\xf6\x01\xd9\xb8\xc6R\x9e\x0blu\xce\xda*L\xcb/\x82\x12\xc2H)|\xe6\x82\xab\xde\x82\xbfi\x80\xfe!\xaf\xf1j\x10G\xfd\xf9\xfd\xb67\x80z.\x8d\xc0\xe4a\xf4\xd7\xba\xb5kr\x9f\xbe\xa0\x93\x00\x0eG\xc7\xbf\x97+\xfa\x86\xc2M\x11\x177\xc5\x94- ^\xb6G\xa9\x95\xe8\xd1\\\xe2H\xc5\x9en\x89\xbf\xd8;\xf8\xcb-\xb1\x0ej0\x11\x9djA0\xbf\xf0mB\x85~o0=\xe8\x13\x18\xfe\xe6l\x91\xa9\x8c\xcd=\x180\x0b\xeaF\xd72Wt\x06\x87\xb5\xed\xbcu4UX\xab\x1d\xdd_0-\xce\xe0\x8e\x05F\x13}[\x87n\xb9\xb0\x0cH]WTMt\x9aaXeV\xf0/Kg\xdb\x13\x94\x14@\x99\x17C\x96\x0b\x91\xa1{:\xa7\x00\n\x83\xad\xb6Et8C\xb0\xec\xa7kWy=\xeaQ"\xb5\x7f\xbb\xab\xb0\xcbk\xe3\x02\x971\x8a\x1d\x10\xee\x82\x80\xb4\xd9\x1b\xb8N\x1ex~\xa0@\xbd!\xd2\x89\xec[\xc0\xbc\xae\x8b\xb1~\n_\xb3\x99\x02\xca\xeb\xf7\x1a\xa0 6\xc9<\xf9\x13\x04\xd1\xce\xf8\xe1t\xe2#`\xab\xeb\x05\xe5\x0e\\?\xbb\xd2\xab\x01Yw\xe1\xba,\x03\x85\xd0T\x83\x05^\xb6\x02$8\xb1\xcf[?\x01a\xe1\xcfC\xd0\x8c\xc8\\N}Y\xb3\x90\t\x18\xc1B\x8cg\x9eja\xb0\x85:\xf7\xcc\xa1p1\xcd\x82W>BUof\xbbs\x04\xb8x\xd2\xc4B8b\x196\x9cJ\xafj\xc8SD\xf9\x1dAE-\xb1\xd2k\x18\xd5\x1a@\x07\xd9\rLe\xe8\x1a\xeb\x0fr\xae\xcc-0\x0e\x14\xd8\xa3T\xb1b\x91\x9e}\x0c\x87\x13\x90mPog\xe5mE\x1aB\xc5\x0e@,o\x8c^\xf1)\xc3\x96"\x89\xf3\x9a\xd2\x12\xd8\x0c\xd7Mi+\x7f\x11\xfb\xa0\x12\xe7\xb4\xdaAj\xa0\xba\xd31\x8fb\x03\xc4\xc4!\x80\x90Z\xda\xd04\xde\xear\xc1\xfa_g\xb2R4dr\xa7\xe5V\xe2\xf9\xf1\xb2\xd9\x8e\xd0#tz\xab\xaaZ\x97[\x94\x13\xe3\xc1\x07I\xd9]\x19\x94\x88\x9c\xfa~i\xf8{A\xc4-oA\xd6\x0b\x15\xa4\x93\x0e\x01\x06M\x97\x8a\xfa\x1aJd\x9e\xeb\x1f\xd6\xb5\xe7\xf6.\x0f\xdd\xf8}F5\x15\xf6\xd7\xbcP\xd6\xa7\x86\x03x\x97`4tH\xef$6\x94\x08\x8c#\x86\x87\xa7\x9do\x06\xacE\x1a\xc4\x05\xa2\x92\xe1\xae\xcb\xcdS\xd6\xb4\x1bjD)7\x9a\x01\xbf\xfe\xe8\x1e\x9a\x1fw \xe3=\xc6`Q\xdd\x190m\x03"\\O\x8a\xc2E\xb5\x08\x11\xf8H\xf55\xf0=y7\xec\x94\xb1{\xf4\xe6\xb3-\xbdb\x162\x9c\xb5\xfbz\xb2\x9b\xcf\xb0\xe7\xff*0\xe2\xf9v\xba\xa0\xf8\x0b\xcb\xb8J\xad\x9dXa\x83|\xf3\xaeX\xa1Q\x98\x1f\xaf{-\xe98v\xb5@:\x98\x9bw"@\x836\xfd\x00d\xd2S\n\x12p\x833\xdf\x0b\xc8?\xb7#\x94\x90\xdc"\xe5\xa8\ry\xf7i\xe7\'O\r]\xbb`4\x1cr\xf3\xf5\x8e\x0b(;\xc6\xf69jv\x7f\xbdS\xb8X\x17\x7f\xa0%\xd8\xf9!M\xfb\xb9\xde\xd0\x84i\x18\xcf\xb8\xa4\x80Z\x0e\xa2\xb8\x9cq\xf6r"\x16\x1b\xe4\xc9\xfc)\xb1oT\xce$\xf7y\rd\xa5\xf2\xae\xd8\x9a\xe7 9U\xd6(\xceE\xf8W>\xea\xbf\xaag\xe3\x8a\xf8EQX\xe6\xdd\r\xe8\x0c\x81q\tO\xb5oHT\xc0/\xe9LsY\xdcI\x1f0?\r\xe8\x19\xd6\x15e\n\x9c\xb1\xf2\x9e\x03\x10T&iz\xee\xe0\xfb\xd1~\xbd\xf1L\x14\x82\xd1\xde\t\xaf@\xf5\'\xef\xe7\xcd$2\xa6\xa9f\xfb\xc6\xbf\xc9\xb7\xec\xfd\xc0\xf9\x9c\xf2>\xf7h\xbc\x84r*\x84\xd8[\x01V\xa1\xc0\xc4\xa0(I\x01\x8dh\xbd\xe9\x84\xb3^\x05\x83t\xd2G\xab\xa7\xaf\xf6\xfd\x89o\x98\xf2>\x07\xb1l\x03C3\x9f\xf4\xa3V\xf5\x91m]\xddtOg\xbc\x8cM\xd9_O\xa7Cx\x99\xbag\xf2v\x16\t\xce\xb0\xf7Y>\xb9/-\xe58\xa2\x8e\xd3\x01\xe0\xd7\x02\xbe\xb7\xb4,Qb\xafC\xbb\xfebr\x9a\xb1uc-\x11\xd1E\x90\x14C\xf3\x11\x12\xaf\x0b\xacHD\xf1\xc981\x86\xa7>\xa3\xef\xfb\xa2m\x0e*\xe5Q\xe6H8A\x0f\x1f\xf2\x13%QXq\xbf\xab\xcd\x1c\x98c\x90\x91\x90\xc3\xdc\xb1s\x1b\x87\x8a\x16\xb2N\x96D\x14L\x1b\x0b\x05\xe97\xee\xc5\xaeS*e\xe5\xab\x179]\xf2y\x0b\x14\xdfi\r\xa2V\x83ND\xb6\xe5\x82\xae@\x88|\x89\xa9\xd29\xd6\\K\x97\xe2\x1fO\x91\x80\x9f\xa6\xed\xdcJ\x7f\xb0`K\xffl\xca\x8b\xd5\x9d\x89\xf5\x1fD\x00\x08F\xfa\x19\xad#\xe2\xd0V\x86.\x91G#w7\xee\xce\xe6Q\xea\x97\xc9`\x1f\xa7O\xd3\r\xbat8\x81J\x12 \xee\x8f\xecP\x16\x1b 8]\xc3\xd75\xf8\xd3e\xea\x8e\xa8\xf5/\x05\xa9B\xc80D\x8d\x9b\xb5\xc1Z\xfb\x91\xde)\x87*\xeb\xc1\x13\x0f\xfb^\xa7S\xbe5\xees\xfa[\xe5\x9e(iH4\xae\x85o[\xf0H\x97\x0e=A\xf6D\xe1\xce~av\x93\xcb7I\xfe\x1a\xea\xe4\xc5\xbc\xb6\xbe\x1eQ\xfd\xbc\x04\xad\xbd\x18\xa97\x9f\xcb?\xf1\xd4E\xb5N\xa5\xff\xa8Fk^\x82\x10\x10S\xf6W\xeb\x9c\xa5\xaf\x0f\xe7\xc6$*\xbc\xd248\x05\xf8\xd5\xb0\x1a\xa7z{\xe6\xdd\xfbF\x1a\x92\x99|\xd5A\xa5y8\x94\xb3T1=Q\xfc\x04 ~\xab!\x14\xc3P\x05\x8fS\xf8I\xf3\x9d\xa2L\x1b\xde\x06\x99\xd8\xb3POUK:\xb0\xd2\xa5,g2\x7f\x8c\xb4\xbe\x9e\x9bN\xd6\xb9\xdb@j\x9f\xf7(;\xaf=\x90K\xb2 -)!\x07\xf9\x87B}\x94\x9a\x15f\x9e\xaa\x82\x9ch%\xcb\xad\xb2\xa0=y\x86\xfe\xe6\x95\xa5"\xf7\x98.l\xf3@\xcf\x1e\xcc_u\xe8\xea&\xc6w\xc8\xeds\xb0\x1d\xeb])x \xdc\xe9\xdce\xc6\xf2\x14\x98\x88\n\xc9l\x9fX\xd2\xe7\x7fi\x1c\x9f=\xedG\xec\xd4u\xc9\xa2\xa8V\xdb\xf7\xdd\x9a\x90aC\n0\x8e\xb4w\x17\x12G\xa7.4Zz\xf7_\xf1\xfa\x98\x1f\xdc\xfa\xe9]T9\x8f\xe5\x1aV\xd0\xb2\x12\x1c\x93\x1b\'R\xfc\x8e\x13\xcd\x16\x06\x9f\xf2\xad\r\xce\xb6\x0e\xa7\xb6q}\xae$\xf7\xf9U`\xadG\x92\xe2\xe5qzn"\x95o\xaa\x90\x9aL\x07\x11F\xbf85JQ\xfa\x82jL\xb2\xec}\xde%\xff\xa0\xc4\xa9\xb4\xb8\xf7g\xa9\x0b\x1c\xdf5\x0f9\xbc\xd6G\xc2\xaf[\xdc\xb7\xc5\xf7,\x0b\x11\xa2\xdb8>\xa8[Rb\x11\x9d\x16R\x02U/\x9c\xe5`"\xf1\xa4wpF\xf3\xd5(0N|\xc11:<(\'\xc8"9rzxs[L\xacM\x1c\x1d\xfc\xe6\xfa\x11l\x15\xc84\x055\xea\x97\xc84\x1e\xc8n\xff\x1c\x03v:\x16;\x15r\xdcN\x95\x87\xeb\xe4\xccX\xed\xfa\xa6:\x8dy\xf8\xed\n"\r\x1cC\xa4\x9b\xf7,\xd8U\xd7\xda\xffPK\x7f\xc8\xa9\xc6a\xf0\x04M\xcao\xa6\xa9e\xd5S*\x06+\x8f.\xaa\xe8N;&N?\xedb\xb5!Uy\x08\xb8\x06~\xedd\xea\x89\xd2\xf7\x12\xc8\xe0\x01\xd9So\x85\x86\x15\xfdC\t\xb2(\x96\xd5\xe8)Y\x00\xb5)Cz\xca\xde\x95)z\x1bB\xcb\x89\xba\xceq\xb3\xe8;j\xdb\x85\x87\xc5@G\xb6\x1b{\xdc\xa71\x98\xe5\xaf\x97z/\x00Y$\x018F\xb2m\xc4W\xd9\x1c\x90w\xc3\xdd>\x9bp\xf0+\xf4\xc5+ \x9a\xcf\xd6\xf1T\x18\xed.\x0c\xe1\x98\xdea\xa7m\xaf\x18\xd2\x8eI\x9er\xe6\x8f5\'\xa3\xab\xa4\xff\xed\xc2\xd2`z\x19\xaf\x13\xce\xb6\x0f\xfb\x80G\x95%\x96\xd8\x8b\xed98\x87\xdb\xb5K\xd1\xf1\x8a\x0c\xda^\xfe\x99\xf83\xe3WR\x86\xce7Z\xe6\xe0\x8f]\x7f(\x15A-(\x87\x9c\xd8D\xba\xc8\x8d\x9d\x8dGN\xc9\xcb{2\x01\x12\xe6\x9a\x8d\x86c\x88\xef\r\x17\xc0\x06\xa8W\x04\xffFv|\x18\x00\xf5\xde\xcb\x99+oJ\x85\xb5\x1cJg\xbb\xf3\xa4j\x82M\x1d\xe3\x97}\x93wk\xab@\\\xf8\x7f\xf5U&\xbc\xc2H\x99\x81W!7@D\xa9\xe5\xb0\x01\xda\xcbU@\xcfDQ\xae\xdd\xdc\x07\xe3h\x1d\x0e=\xad\x04\x03\x8bU\x9a5l\x90\x15^\xd4uL\xb6;\x007|\xe50\xd2\xd1*\xcd[\xe2,\x1d\x06\x9a\xad\x93\x91\xee\x92\x96\xe7\xf9\xd4k%\xc8\xc6\xdb?^\xc0l\xbd\xf8\x08\xc0\xed\x01\'>#\xbd\x84v\x8f\xc0m\xa0\xc2\xa8\xfa\xe6S\x02H\'F\xe5\x82C1K\x9fHV\xc9\xb4\xad1l\x18\xf2\xd2\xa1\xd8\x8f\x805\xda\x0b\xbdF\xef\x99?\n\x92\x1e\xd7WJKV\xc0\xbc3\x8c\xa8:4NU\x03\x80y[\xc4\xfb\xa0\xb9~\xdc\x8e\xb2\x8a\xf96E\xa4-\xe1\x1b\x8a\xdc_\x9elpCU\x9f2Q\xe4\'\xf3\xca\x06SS.\xfa\xed\xf3BM\x1f\xb5\x81\xf7g|p\xc5m\x16W%+\x9f\xb4\xe6\x97\xe8\x8d:w\x8c@mT\x9c\xff\xf0\xae\x13\x99\x16\xa7\x10[\x18D\xfe\xc5o\xd7\xad\x1b\xf2\xb7\xc8\xc8\x0c\xefR\xdd\xa9w\xf1\x8d\xac\xb58\xf99\xf3\xe7U2\x92\x82\x19"\x83h\x03\xcb\x82\xfcwtv7\xe9\x00\xa7\x17\xa4\xcb!\xd2\xd4\xfd\xb6\xb1\xfe\x9e\x1e-\xff3\x01\x1a\x04\xeexf\xf5\t\xb7\xd5\xb2\x82S\xce2]\xd1\xe4\x8e\x08\x04\xe0\xc8H-\x9b\x00z\x93\xee\xa5i"\x9d\xf5\xf5\xc9\xdbG\r\xd7O\xbfR\xaa\x96\xb6\xa8\x81\xe0\xebNZ\xf2\x14n@\x94r\x03\xc0\x17mb\xfbg\xadI\x0e1\x8do\xd1\xd0\xaaK\\Ei\xfa\xbf\x05U\xcc\xca\xd0~\xd3\xfb\xf0\xbe\xff"A]\x90\x0f\xc9U\xc6"\x83s\xd99\x9d\xa5W\xe1\x16\xe8\xa2\xc5\xfc\x8a\x86\xcdS\x0c\xc3\'\xd9\x93\x9e\xf4~\xfb;\x04\xb5\x8c\x8bE\xab\x84v?\xc19\x9c\xa3\x8cE\x01\xbdcoJ\xb9W(\x8c\xa7\xc8k<]\x14\x17\xb1\xf7\x0b\xf0:)7ONLe]\xd68d\xceO\x02\xdb\x85\x19\xb1\xda\x86&Ox/\x8d/^\x0e\xdf\xdd\xbe,\xb7e\xe43\xe6*\xf9\x17\xc0\x8cR\x16\xf0%\xdfS\xd3\xc8\x10\xa7\xdcT(\x90\xa0Vh$\xa0P\xadik\x11"\x81\xe1\xf8\x13\xcd\xc7Kh\';\x00H\xcc\xdc\x1e\xbb\xb6\xde\xf0ae\xb8/d\xa4\x95cw\xb8M\x17U\xa5@\xa8j`E$0Y5\x00\xd8%o\xc0\xe5B9\x81{\x9b\xf1@3U\xf5\x96\xda\xb0;V\x9fC:&,\xcdQ\xd8hP|\xba\\\x16\xad_\x04[\x8bo:\xd7\xb9\xe3\xc4\xbe\x07yh\xfdR\xac\x9ca\xf3\xdep4c\xacs%~\xb0C\xfe\x00\x18\tf\xb36\x89cVv\x9f\n>\xd7\xea\x06\xec\xa8\xf4~f\xc1\xe5\xe6\xa2ou\xac\xb0\x13\xdcPBH\xfarI]&\xcd\xdb8.\xe0JbS\xcb\xd3\xb2\xc2\x0b8\x13\xfa\xce"\xda<\t\xe4\xae\xbc\rH\xc6W{\xf9\xec\x17=\x85\xc8\xdd\xc1LY\xf3\'\xc4p\xaa\xd5Og\xa0\xf2\x92\x04r\x01\x19Ni-\xfd!\xbbwl2\r\xcc\x91\xfc\x91\xfc\xe6\xc0R\x90\x1b\xa5\xab\xd5\xf5\x10-\xd3\x07\x07\x11!\xb62\x9eG\x7f\x86\xb79\xe5\xbd\x80\nt \x96_\x8ab\xe6\xd4\xe1\xe8\xbf/V\xad\xa5y\x83\x89j\xb1\xc3\x82\x82\xf3g\x8f\xc89\xaec\x89\x1a\x9eP={\xed;w\xd9\x04\x02xu\xaahd\x8c\x18\xd7\xc8s(\x8b#6[\xf2l\x08\r\x0b\x98\xbb^\x08\xdeX\xb7ZP\x06.R\xfd|\xcd\x15\xdb\x84@^\x93\xfb\x8e\x7f\x89l\x94\x19\t\x17\xd1x\xf6\xb8\xc4\x14\x99\xd0\x18N\xde*\x05\xdf\x10\x99\x99\xa8\x1c/J\xde\x9a5\xbf\x153g\x84\xa2\x1c\x10p\xf0N\x0fzw\xcf\xa3\x813?\'?SUUQ\xe3\xb9y?e9\xe2\x7fq\xf46jn7\x85\x03\xfa\xc0C\xb1\x80\x9e\xa7a9\x8am\x8ex\xb0\xd0\xdeu\nxCS\x04?E\xc7s\x11V\x0cRf+\x89\x9b\x95\xedj\xbf)\xe0\x88\xe7=\xf6!\x18F\x1dl\xbb\xdf\xd6\xec\n\xc0\xad\x11|(\xb1tVdJ&M5W\xa9F\xba\x06oU\xe6\x19\xc6?\x89\xa4\xce%\x973x\x8a\x00\nh\xbck\xd1\xd6(?\xafLK\xcf\x1bM\n\x97\x8f\xd5\x11\xdeYk\x91\xd5:C\xfd\xdf\xa1\xc6\xff\xbbH\xc6\xca%\x85\xf5J\xbex\xa6\xb0c\xe7S~f\xfd\xb1\xacW\x8d\xc0\xd2!\xcb\xde\x9eFa\x15\xf6\x99k\xba\xca\x12\xc1\xce\xcbU\x05\x8d\xbcN\xe5\'2\xef\x8a[\x93s\xdd]\xd2\\VE//\x81o\xe9\xf9\xe2\xe9\xe5\x85\xcfz\xfby\xd5p\xb4Y\xf4\xcfa\xccN;\xd3\xa2-\x06i7\x99x\xad\x1f~\xc5\xd7\x0cV*\x8c4\xac/(q/\xdc\x8b\x049d\x01W\x86\x9b\xb76z\xbe\xbaN\xb1\x9e\xd8\xde\xd5\xf4\xafE\x80\xcc\xc1\x0f?3\xe4\xec_\x11\xa9 \x9d\xaf\tu\xc1;\x9c\x04\x80\x00\xf2\x15ya\x1eG&]V\xe8\xfa\x03Z+\xd6\xe0M\x84\x96G\x86\x84\x05\x01-\xda\x9c\x07\xaet\x9e\x13\x03q>\x16\x0c\xa4=z"\xb51lQy@ce\x1c\xa5\xb5\x165c\x8f\t\'kcN\xb67\x92\x0b\t\x7f\x07\xa1\x93A\\\xc4\x84\xaf\x87\xfa\x98\xa0\xd9+\xe5N\xef\x91\xdf25J,\xc8\t\x04\xd0\xe5\xaa>;\xb66(\': \xac\xbem\x1c\xe7W]\xa2\xb9*6\x8f\xa1\x04\x8d\xc0"j\x84O4\x97\x1a\x07\xd7\xb5\xf1\xa8R>\xf5\xe6\x01B\xe5a\xa6\x08!w\xf87\x8a\xb6x\xe4\x06=;%\xcf\x0f\x18\xc9\t2\x98\xb6K\xfeT\xc0\xfb_\xc4\x14k;\xf7T\xb0#a\xeeJ_=^K\xe9\xfe\xc4\x15\x95\xb5\x82\x83\x800\x89o\xa3H#oy\xa4Y\x10\xd8\xbd\xcb_\x8d\x03\x08{0y\xa9\xdc\xd0+\xbb\xb1\x0f\xe7\xb5)\x86\x89\xbf\x9a\xb9\xde\x1c\x81\x99+\x89,J\xc5\xcdT\x15\xdf;!#\x9d\x1e\x87\x7fl\'\xf0\x8c@\x15\xfa\x8d\nT\xdd>\x8bE\xfd<|\x17\xd3\x07\x94l\xa2\x8cM\xc29\xe3H\xb6K^\xeb\xdb\xb8\xe7K\xcb\x92\x9c9\x08\x9bA\xea,\x9d\x8d\x14\xc8\'\x12Gr[\xe4vp\xc8\xee\xbf\xc1ep\xa1h\xf3\xadj@\x17\x8f\xf4WR\xc1\xc0H`\xbd\xf4\x91E\xf2\xfefz\xd2V\x00\xdf\xa7W.\x87w\xa5_\x8c\xa7a\xb8\xed\x82U\xbc}\x04\xd4$\xddH\xb4\x96\xf5\xe4t\xb5\r\x857\xf9\xb3\x0b\x00M\xeb\xcd\xfc\x9e:\x1a\xdd\x1bs\xd9\xc7\x90@\xfd\x0b\xaa\x8d{\x99u\xc5\x0e\x8fg\xf9`\xbcZx\x81=U\xfe\x9e\xa0X\xbd\xad\xad!\xca\xee\xdc\xc8\xdb\x0b\xce\xab}\xea0\x080N\x07^]\x0fg\xc5/d\xfd\x03!\xd15\xaf\xdc\xf21\x06o\x02"$\x9e\xb0f\x02oI+\x9d\x9a\x84\xea\xed\xa2\x01y\xe5\xd4d\xeb\x84\xa4m%\x087\x9dH\xb2\xc3\xe6\x87\xdd\xac\x13\x8e\xc7\'\x1c3\xce\xa3K\xd2u\xb02~\xb5\x1d7T\x1boY\xdbA\x90\x88v\x8amHW9\t\x99\x8b\xbfT\x93G\xfb\x1b]jO\x06\x17\xc1\x91\xa6\xd8\x0c?\x1e\xa5tq\x19\xc7\x15h\xf0:\x9f\x9a\x88\xbew4\xb4h\xcd1\xef\xeb\xaf0\x85\x98\xec,\xe2q\xa2\x08W\x05_\x11V$c\n9\x15HT\xac\x89\x18\x1d\x85\xf7\xe9\xe1\x19\x01\xa7^\x96\xdf\x1bE\x8bc\xa63\nc\xbc\xdd"a\x9bR;\xc1\tr\n\xa0\xe2\x1e\xdb\xc0b\xdb\xf2?n]Y\xf5\x13"\xecI\x8a\xc8\xc8z\xa4%\x14\xbf\x8aK\xbb\xe85b\x17\xc3fY\tK2\xb3\x02\xb6\x1c\xa0i\xb09\x06\xdc\x11w\x98\x94\xd45E\x07\xe8\xf1\x83\xe1\x8f\xb2f\x05\xd4\xdbN\xa6\xebV\xf0\x01\xc0![\x8d\xb8\xaej"\x93\xf0k\x81\x90\xf2"\xc0\x84i\xc1U\xcf\x8f\x01\x8a\x0e`\xab\xf40\xf5Nv\xaa\xa1uD\xa3\xc0/e\x00C\x88&\x19\xa4\xb18Ga`a\x87\xec\r\xf6\xcf\xb0v\xfe4\t\xf2\xbf6\xe0\x8962]\xfb\xe2\\\xb2n\xc8jZ\xf3\x06\xad\xa5\x08;\xd9\xb8\x04\xac\x97\x83\xea\xd6^\x92\xc3s:\xd3\'\r\xdb\x1aJyd\x1e\x11\x9b\xa2+\xf0\x02\xf1C\xbc\xa76=u\xf3k\x90\x9b\xf7\xc0\x1a\xd4\x82\xaa\x9a*M\x7fc\xb1\x0b\x05\xa7s\xdb\xb3=\x06\xdf\r\x93\x08(\xb0\xdfJ\xa66h(\x91\x00M\x07\xca\xa8\t{"\x90\x8c\xf1\x02\xa3C\xea\x13\xb4LY\xd0\x025E\x192[@\xff\t\xe0\xbc\'-\xdeZ\x8f\x8eL\x7f\xc5\x02\xee58^\xed\xbb\xf4\xa3\xa3\x08\x95\xed\x08\xbd0\xfd.\x9b\x0f\x8f\xa5\xd6\xbc\xf7\x9eE\x98\xfe\xf6\xe0\x13\x00}\xdd\xd4\xee@T\xd0\xf7\xa0AE\xb49\x07Y\x00\xd0\x18i*\xcbS\x96\x9a\xa4\xbb\xb7\xb5\xfbI\xca\xd5\xf4\xc3kT\xfd\xc6HK\x1d\xc2,\xce]\x86F\\:\xe6m\xab\xe2R\xe6^$\x96\xd2m\x08:\xf4\xcek3\xb3o\xa7\xf1\xe8k\xe9r\x9c\xd2\x06\x1f\xfe?\x16+\x82o!\xa7\xdf\xb4\x1e}q\xcb\xc1\x12\xf1\xd5\x1a\x9d\x80\x1cU\x07\x0e/\xf3\x08\xc3\xaf\x96\x15x\xbd\x07\xb1W\n\xa7:%\xc0\xde\xa6N\x07\xfd\xc4}\x13[\xb4t\xe0;j~7\x17\xc3\x1a\xa5\xb9\xce>\xd1\x9a\xca\xa6\xd0\xca\x94\xf2I\xca\xb3\x10Oz`NY\xec\xb9\xe4rd\xce\x0f\x82\xbcP\xb0\xc22\x16\xbe\x1c}&w\x01\xbf\x8b%_\xb0\xf2$\\2S\x8d\xb4s\r\xa9t\xdb\xcc\xfb\x9d\x97\x8e_x\x9f\x04?\x06\xd5\xc1\x08_\x9c(\x0c\xcd\xc2\xa1\x98E\x95\x087\xe6r(\xc6\xef\x1d\x86\xceD\xc3F\x8ac2\xf0\x84\x05\x18\xbbk\xb7d\xbaC\x8f\xb5\xac\x93\xf7\xbd\xf9\x88\x91\xacy\x98\x913\xe8\xfb\xc9 \xfa!\x85\xe8\x0c\xa8CVyjZ\xd9\x1c\x8fbWV\x87\xfa\xb9\x97\xa9\x91G\xfc\xd3\x94\xfe\xbe\xf2J\x08\xfb\xd3\x0b@\x0f\x90\xb0\xed[@\x80\x99\x14^\x02\x13\xbe}\x08\xa9\x93\xd4\x10\xa6\xb5\x81\xc7\xc7\xac%\xfe\xc7~\xb1\xf6 C\xcf\n\xe5\x1a\xa1\xa5\xce\xba\x7fJ\xa3,\xa7oB\xa1)\xf5\xabt\x0b\xcd\x89\x88_\xa8=\x84\\\x12\xa8\xdc\xc21\xb4\xbb\xcd\xc9\x91 6y\xbc\xe9g\xf5\x82\xa17a\xb8\xf8<\xe5:\xa2\xecu\x8d\xbf\x96\x1d~\t\xba\xc0\xca,\x8f\x8fi\xaa>\xb9\xdb\xb5\x8d\xaa\xde\xe1\xa9"!\x1c\xec+]\xf5U\x92E\xc5X\xc7\xa4\x1a\xf6<\xd6%\x9f\x17-\x04\x04*\xe2@e\x05\xeb\xa6t\xfa\x1dC\xa3\xe0X\xdb\x04\xf4Nec\x1eT\x16\xd0\x00?BKP\xbfq<\xb5\xfc\xe5\xbb\x9dy\xaf,\x98\xa9?\xed\x1f\x93\xb7\rx\x06(\xb0W\xad\x02a=\xe9DG\xea\xd5\x18\x85\x0e\xa3l\xc4\x83K\xd9+s*a\x9f\xdf\xdd\xdb\xd0R\x0c#') diff --git a/dist_obfuscated/src/pyarmor_runtime_000000/__init__.py b/dist_obfuscated/src/pyarmor_runtime_000000/__init__.py new file mode 100644 index 0000000..3f3767d --- /dev/null +++ b/dist_obfuscated/src/pyarmor_runtime_000000/__init__.py @@ -0,0 +1,2 @@ +# Pyarmor 9.2.2 (trial), 000000, 2025-12-15T17:04:23.412278 +from .pyarmor_runtime import __pyarmor__ diff --git a/dist_obfuscated/src/pyarmor_runtime_000000/pyarmor_runtime.pyd b/dist_obfuscated/src/pyarmor_runtime_000000/pyarmor_runtime.pyd new file mode 100644 index 0000000..9fa7153 Binary files /dev/null and b/dist_obfuscated/src/pyarmor_runtime_000000/pyarmor_runtime.pyd differ diff --git a/example1_basic.py b/example1_basic.py new file mode 100644 index 0000000..8fd7c36 --- /dev/null +++ b/example1_basic.py @@ -0,0 +1,38 @@ +import os +os.environ["OPENCV_VIDEOIO_MSMF_ENABLE_HW_TRANSFORMS"] = "0" +import cv2 +from orisys import Sensor +import numpy as np + + +def main(): + global start_time + + # 打开视频 + # sensor1 = Sensor("./s1.mp4",isstitch=True,cuda = True,verbose = True) + # 打开摄像头 + sensor1 = Sensor(0,isstitch=True,cuda = True,verbose = True) + while True: + sensor1.get_img() # 提取并拼接复眼图像 + sensor1.compute_deformation() # 计算形变和分解 + # 提取信息: + # 向量场: VRAW, VNORMAL, VSHEAR: 原始,法向,切向 + # 帧率,时间戳: FPS, TIMESTAMP + # 变形量总和: FNORMAL , FSHEARX, FSHEARY : 法向,切向(X),切向(Y) + fps, fn, fx, fy, flow = sensor1.read_info(sensor1.info.FPS, sensor1.info.FNORMAL, sensor1.info.FSHEARX, sensor1.info.FSHEARY, sensor1.info.VRAW) + print(fps,fn,fx,fy) + # 显示向量场 + arrows = sensor1.draw_arrows(sensor1.info.VRAW, threshold=5, grid_spacing=40, arrow_scale=1.0) + cv2.imshow("Deformation", arrows) + + key = cv2.waitKey(1) + if key & 0xFF == ord("q"): + print("\n 停止程序") + break + + sensor1.disconnect() # 断开传感器连接 + + + +if __name__ == '__main__': + main() diff --git a/release/win/orisys-0.1.0-py310-none-win_amd64.whl b/release/win/orisys-0.1.0-py310-none-win_amd64.whl new file mode 100644 index 0000000..c2a6d9b Binary files /dev/null and b/release/win/orisys-0.1.0-py310-none-win_amd64.whl differ diff --git a/release/win/orisys-0.1.0-py38-none-win_amd64.whl b/release/win/orisys-0.1.0-py38-none-win_amd64.whl new file mode 100644 index 0000000..7d43e48 Binary files /dev/null and b/release/win/orisys-0.1.0-py38-none-win_amd64.whl differ diff --git a/release/win/orisys-0.1.0-py39-none-win_amd64.whl b/release/win/orisys-0.1.0-py39-none-win_amd64.whl new file mode 100644 index 0000000..295c36a Binary files /dev/null and b/release/win/orisys-0.1.0-py39-none-win_amd64.whl differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e8d7b3f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +cupy_cuda12x>=12.3.0 +numpy>=1.24.4 +opencv_python>=4.10.0.84 +opencv-contrib-python +scipy>=1.10.1 +setuptools>=45.2.0 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..b4c8593 --- /dev/null +++ b/setup.py @@ -0,0 +1,16 @@ +from setuptools import setup, find_packages + +setup( + name="orisys", + version="0.1.0", + description="Orisys - Optical Tactile Sensor SDK", + author="Your Name", + package_dir={"": "src"}, + packages=find_packages(where="src"), + install_requires=[ + "numpy", + "opencv-python", + "scipy", + ], + python_requires=">=3.8", +) diff --git a/src/__pycache__/Stitcher.cpython-310.pyc b/src/__pycache__/Stitcher.cpython-310.pyc new file mode 100644 index 0000000..3f57f03 Binary files /dev/null and b/src/__pycache__/Stitcher.cpython-310.pyc differ diff --git a/src/__pycache__/Stitcher.cpython-313.pyc b/src/__pycache__/Stitcher.cpython-313.pyc new file mode 100644 index 0000000..1383c94 Binary files /dev/null and b/src/__pycache__/Stitcher.cpython-313.pyc differ diff --git a/src/__pycache__/StructuredGrid.cpython-310.pyc b/src/__pycache__/StructuredGrid.cpython-310.pyc new file mode 100644 index 0000000..15d28d5 Binary files /dev/null and b/src/__pycache__/StructuredGrid.cpython-310.pyc differ diff --git a/src/__pycache__/StructuredGrid.cpython-313.pyc b/src/__pycache__/StructuredGrid.cpython-313.pyc new file mode 100644 index 0000000..15c4047 Binary files /dev/null and b/src/__pycache__/StructuredGrid.cpython-313.pyc differ diff --git a/src/__pycache__/UnstructuredGrid.cpython-310.pyc b/src/__pycache__/UnstructuredGrid.cpython-310.pyc new file mode 100644 index 0000000..8643a84 Binary files /dev/null and b/src/__pycache__/UnstructuredGrid.cpython-310.pyc differ diff --git a/src/__pycache__/UnstructuredGrid.cpython-313.pyc b/src/__pycache__/UnstructuredGrid.cpython-313.pyc new file mode 100644 index 0000000..312c41b Binary files /dev/null and b/src/__pycache__/UnstructuredGrid.cpython-313.pyc differ diff --git a/src/__pycache__/__init__.cpython-313.pyc b/src/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000..b23eeeb Binary files /dev/null and b/src/__pycache__/__init__.cpython-313.pyc differ diff --git a/src/__pycache__/nHHD.cpython-310.pyc b/src/__pycache__/nHHD.cpython-310.pyc new file mode 100644 index 0000000..e1cfd6f Binary files /dev/null and b/src/__pycache__/nHHD.cpython-310.pyc differ diff --git a/src/__pycache__/nHHD.cpython-313.pyc b/src/__pycache__/nHHD.cpython-313.pyc new file mode 100644 index 0000000..708856b Binary files /dev/null and b/src/__pycache__/nHHD.cpython-313.pyc differ diff --git a/src/__pycache__/nPoisson.cpython-310.pyc b/src/__pycache__/nPoisson.cpython-310.pyc new file mode 100644 index 0000000..6ba95db Binary files /dev/null and b/src/__pycache__/nPoisson.cpython-310.pyc differ diff --git a/src/__pycache__/nPoisson.cpython-313.pyc b/src/__pycache__/nPoisson.cpython-313.pyc new file mode 100644 index 0000000..8ce3b8b Binary files /dev/null and b/src/__pycache__/nPoisson.cpython-313.pyc differ diff --git a/src/__pycache__/sensor.cpython-310.pyc b/src/__pycache__/sensor.cpython-310.pyc new file mode 100644 index 0000000..9004435 Binary files /dev/null and b/src/__pycache__/sensor.cpython-310.pyc differ diff --git a/src/__pycache__/sensor.cpython-313.pyc b/src/__pycache__/sensor.cpython-313.pyc new file mode 100644 index 0000000..e095b87 Binary files /dev/null and b/src/__pycache__/sensor.cpython-313.pyc differ diff --git a/src/__pycache__/timer.cpython-310.pyc b/src/__pycache__/timer.cpython-310.pyc new file mode 100644 index 0000000..670b04f Binary files /dev/null and b/src/__pycache__/timer.cpython-310.pyc differ diff --git a/src/__pycache__/timer.cpython-313.pyc b/src/__pycache__/timer.cpython-313.pyc new file mode 100644 index 0000000..73dcba4 Binary files /dev/null and b/src/__pycache__/timer.cpython-313.pyc differ diff --git a/src/__pycache__/tracker.cpython-310.pyc b/src/__pycache__/tracker.cpython-310.pyc new file mode 100644 index 0000000..c8e58e0 Binary files /dev/null and b/src/__pycache__/tracker.cpython-310.pyc differ diff --git a/src/__pycache__/tracker.cpython-313.pyc b/src/__pycache__/tracker.cpython-313.pyc new file mode 100644 index 0000000..f870f06 Binary files /dev/null and b/src/__pycache__/tracker.cpython-313.pyc differ diff --git a/src/__pycache__/utils.cpython-310.pyc b/src/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000..199575d Binary files /dev/null and b/src/__pycache__/utils.cpython-310.pyc differ diff --git a/src/orisys.egg-info/PKG-INFO b/src/orisys.egg-info/PKG-INFO new file mode 100644 index 0000000..275450a --- /dev/null +++ b/src/orisys.egg-info/PKG-INFO @@ -0,0 +1,13 @@ +Metadata-Version: 2.4 +Name: orisys +Version: 0.1.0 +Summary: Orisys - Optical Tactile Sensor SDK +Author: Your Name +Requires-Python: >=3.7 +Requires-Dist: numpy +Requires-Dist: opencv-python +Requires-Dist: scipy +Dynamic: author +Dynamic: requires-dist +Dynamic: requires-python +Dynamic: summary diff --git a/src/orisys.egg-info/SOURCES.txt b/src/orisys.egg-info/SOURCES.txt new file mode 100644 index 0000000..906a421 --- /dev/null +++ b/src/orisys.egg-info/SOURCES.txt @@ -0,0 +1,15 @@ +setup.py +src/orisys/Stitcher.py +src/orisys/StructuredGrid.py +src/orisys/UnstructuredGrid.py +src/orisys/__init__.py +src/orisys/nHHD.py +src/orisys/nPoisson.py +src/orisys/sensor.py +src/orisys/timer.py +src/orisys/tracker.py +src/orisys.egg-info/PKG-INFO +src/orisys.egg-info/SOURCES.txt +src/orisys.egg-info/dependency_links.txt +src/orisys.egg-info/requires.txt +src/orisys.egg-info/top_level.txt \ No newline at end of file diff --git a/src/orisys.egg-info/dependency_links.txt b/src/orisys.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/orisys.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/src/orisys.egg-info/requires.txt b/src/orisys.egg-info/requires.txt new file mode 100644 index 0000000..e759064 --- /dev/null +++ b/src/orisys.egg-info/requires.txt @@ -0,0 +1,3 @@ +numpy +opencv-python +scipy diff --git a/src/orisys.egg-info/top_level.txt b/src/orisys.egg-info/top_level.txt new file mode 100644 index 0000000..10e41e4 --- /dev/null +++ b/src/orisys.egg-info/top_level.txt @@ -0,0 +1 @@ +orisys diff --git a/src/orisys/Stitcher.py b/src/orisys/Stitcher.py new file mode 100644 index 0000000..241c8e9 --- /dev/null +++ b/src/orisys/Stitcher.py @@ -0,0 +1,567 @@ +import os +import numpy as np +import scipy.fft +from scipy import ndimage +import cv2 + +class Stitcher: + + def __init__(self,isstitch=False, n=[3,3], index=np.array([1,2,3,6,7,8,11,12,13])): + + # Settings + self.isstitch = isstitch + + # stitch related + self.stitch_valid = False + self.boxes = self.units = None + self.index = index + self.stitch_calibration = self.tile_list = [] + self.ncol = n[0] + self.nrow = n[1] + self.nominal_ov_pos=100 + self.margin=10 + self.bound=self.nominal_ov_pos - self.margin + # for sensor 1 + self.pos_default = [(260, 56), (577, 62), (897, 69), (1214, 75), (1530, 81), (256, 391), (570, 397), (889, 403), (1208, 409), (1523, 416), (248, 724), (563, 730), (882, 738), (1201, 743), (1516, 751)] + # for sensor 2 + # self.pos_default = [(195, 61), (511, 61), (831, 61), (1150, 60), (1464, 58), (195, 396), (512, 395), (830, 394), (1149, 394), (1465, 393), (197, 731), (512, 728), (831, 730), (1151, 728), (1466, 728)] + # for sensor 3 + # self.pos_default = [(207, 39), (547, 40), (887, 42), (1227, 42), (1564, 44), (207, 397), (546, 399), (884, 399), (1225, 401), (1563, 403), (200, 755), (543, 757), (883, 758), (1223, 758), (1562, 760)] + + def stitch_rt_optimized(self, change_sv=False, s_mean=28., v_mean=180.): + tile_list = self.tile_list + stitch_calibration = self.stitch_calibration + ncol = self.ncol + nrow = self.nrow + + processed_tiles = tile_list + img_stitched_height = None + + for i in range(nrow): + # Start with first tile of the row + img_stitched_width = tile_list[i * ncol] + + # Stitch horizontally within the row + for j in range(1, ncol): + img_1 = img_stitched_width # Already stitched part + img_2 = processed_tiles[i * ncol + j] # if change_sv else tile_list[i * ncol + j] + + ov_pos = int(stitch_calibration[i * ncol + j - 1][1]) + ov_pos, ov1, ov2 = self.__find_ov(img_1, img_2, ov_pos, dim=1) + + # Use optimized stitch function + img_stitched_width = self.__stitch_optimized(img_1, img_2, ov_pos, ov1, ov2, dim=1, blend=True) + + # Stitch rows vertically + if i == 0: + img_stitched_height = img_stitched_width + else: + # Handle width mismatch more efficiently + width_h = img_stitched_height.shape[1] + width_w = img_stitched_width.shape[1] + wdiff = width_h - width_w + + if wdiff != 0: + # Use numpy pad instead of hstack for better performance + if wdiff > 0: + # Pad right side of the narrower image + padding = ((0, 0), (0, wdiff), (0, 0)) if len(img_stitched_width.shape) == 3 else ((0, 0), (0, wdiff)) + img_stitched_width = np.pad(img_stitched_width, padding, mode='edge') + else: + # Crop the wider image + img_stitched_width = img_stitched_width[:, :width_h] + + ov_pos_h = int(stitch_calibration[(i + 1) * nrow - 1][1]) + ov_pos_h, ov_h1, ov_h2 = self.__find_ov(img_stitched_height, img_stitched_width, ov_pos_h, dim=0) + + img_stitched_height = self.__stitch_optimized( + img_stitched_height, img_stitched_width, ov_pos_h, ov_h1, ov_h2, dim=0, blend=True + ) + + return img_stitched_height + + def __find_ov(self, img1, img2, ov_pos, dim=1): + + _dim = len(img1.shape) + + if dim == 1: + if _dim == 3: + # RGB case + ov_1 = img1[:, -ov_pos:, :] + ov_2 = img2[:, :ov_pos, :] + else: + # gray scale + ov_1 = img1[:, -ov_pos:] + ov_2 = img2[:, :ov_pos] + elif dim == 0: + if _dim == 3: + ov_1 = img1[-ov_pos:, :, :] + ov_2 = img2[:ov_pos, :, :] + else: + # gray scale + ov_1 = img1[-ov_pos:, :] + ov_2 = img2[:ov_pos, :] + + return ov_pos, ov_1, ov_2 + + def find_stitch_boxes(self,img_src,show = False): + + img_corr = self.__correct_edge_bloom(img_src) + self.__detect_nonblack_regions(img_corr,show = show) + return len(self.boxes) + + # return self.boxes + + + def get_stitch_unit(self, img, flip_x=True, flip_y=True,index = np.arange(15)): + """ + Extract each tile given by boxes (x0,y0,x1,y1), default flip both X and Y due to inverting lens. + - img: source image (use corrected image if you prefer) + - boxes: list of (x0,y0,x1,y1) + - flip_x, flip_y: booleans (performed sequentially: X then Y) + - overlay_original: if True paste onto original image copy, otherwise onto blank background + - bg_color: background color for blank canvas (B,G,R) + Returns: canvas image and list of flipped tiles as (x0,y0,flipped_tile) + """ + h, w = img.shape[:2] + if self.units is None: + flipped_units = [] + for i, (x0, y0, x1, y1) in enumerate(self.boxes): + + # clamp coordinates + x0 = max(0, int(x0)); y0 = max(0, int(y0)) + x1 = min(w, int(x1)); y1 = min(h, int(y1)) + if x1 <= x0 or y1 <= y0: + continue + tile = img[y0:y1, x0:x1].copy() + # flip X then Y in default + if flip_x: + tile = cv2.flip(tile, 1) # horizontal + if flip_y: + tile = cv2.flip(tile, 0) # vertical + flipped_units.append((x0, y0, tile)) + self.units = flipped_units + else: + flipped_units = self.units + index = self.index + for i, (x0, y0, x1, y1) in enumerate(self.boxes): + if i not in index: + continue + # clamp coordinates + x0 = max(0, int(x0)); y0 = max(0, int(y0)) + x1 = min(w, int(x1)); y1 = min(h, int(y1)) + if x1 <= x0 or y1 <= y0: + continue + tile = img[y0:y1, x0:x1].copy() + # flip X then Y in default + if flip_x: + tile = cv2.flip(tile, 1) # horizontal + if flip_y: + tile = cv2.flip(tile, 0) # vertical + # Assign instead of append + flipped_units[i] = (x0, y0, tile) + self.units = flipped_units + + return True + + def extract_tiles(self): + if not self.isstitch: + tile_idx = self.__get_tile_index_by_position(self.pos_default[7][0], self.pos_default[7][1]) + if tile_idx is None: + tile_idx = 7 + # Ensure index is always iterable (list or array) + self.index = [tile_idx] if isinstance(tile_idx, int) else tile_idx + self.ncol = 1 + self.nrow = 1 + + tile_list = self.__get_tile_by_index(self.index) + self.tile_list = tile_list + + return tile_list + + def stitch_cal(self): + + # init + tile_list = self.tile_list + img_stitched_height = None + stitch_calibration = [] + # Flip col and row for porting + nrow, ncol = self.ncol, self.nrow + if not self.isstitch: + return self.tile_list[0], None + + for i in range(ncol): + img_stitched_width = None + for j in range(nrow): + if j == 0: + img_j0 = tile_list[i*ncol] + img_stitched_width = img_j0 + else: + img_1 = tile_list[i*ncol + j-1] + img_2 = tile_list[i*ncol + j] + + ov_pos, ov1, ov2, c_corr = self.__get_ov(img_1.astype(np.float32), img_2.astype(np.float32), dim=1) + + stitch_calibration.append(["hor {}".format(j-1),ov_pos]) + + # stitch images with stacking + img_stitched_width = self.__stitch_optimized(img_stitched_width, img_2, ov_pos, ov1, ov2, blend=True, dim=1) + + if i == 0: + img_stitched_height = img_stitched_width + stitch_calibration.append(["ver {}".format(i),0]) + pass + else: + width = img_stitched_height.shape[1] + width_new = img_stitched_width.shape[1] + wdiff = width - width_new + if wdiff > 0: + img_stitched_width = np.hstack((img_stitched_width, img_stitched_width[:, -wdiff:])) + elif wdiff < 0: + img_stitched_width = img_stitched_width[:, :wdiff] + + ov_pos_h, ov_h1, ov_h2, c_corr = self.__get_ov(img_stitched_height, img_stitched_width, dim=0) + + stitch_calibration.append(["ver {}".format(i),ov_pos_h]) + + img_stitched_height = self.__stitch_optimized(img_stitched_height, img_stitched_width, ov_pos_h, ov_h1, ov_h2, blend=True, dim=0) + + self.stitch_calibration = stitch_calibration + + return img_stitched_height, stitch_calibration + + def __stitch_optimized(self, img1, img2, ov_pos, ov1, ov2, blend=True, dim=1): + _dim = len(img1.shape) + + # Early return if no blending needed + if not blend: + ov = ov1 + elif ov_pos <= 1: + ov = ov1 + else: + # Vectorized blending + blend_coef = np.linspace(1.0, 0.0, ov_pos, dtype=np.float32) + + # Prepare blend_coef for broadcasting + if dim == 1: # Horizontal blending + if _dim == 3: + # Shape: (1, ov_pos, 1) + blend_coef = blend_coef.reshape(1, ov_pos, 1) + else: + # Shape: (1, ov_pos) + blend_coef = blend_coef.reshape(1, ov_pos) + else: # Vertical blending + if _dim == 3: + # Shape: (ov_pos, 1, 1) + blend_coef = blend_coef.reshape(ov_pos, 1, 1) + else: + # Shape: (ov_pos, 1) + blend_coef = blend_coef.reshape(ov_pos, 1) + + # Compute blended overlap in one operation + ov = (ov1.astype(np.float32) * blend_coef + + ov2.astype(np.float32) * (1 - blend_coef)).astype(np.uint8) + + # Avoid unnecessary .copy() calls when possible + if dim == 1: + if _dim == 3: + # Use np.take or slicing without copy when safe + left = img1[:, :img1.shape[1] - ov_pos, :] if img1.shape[1] > ov_pos else img1[:, :0, :] + right = img2[:, ov_pos:, :] + stitched_img = np.concatenate((left, ov, right), axis=1) + else: + left = img1[:, :img1.shape[1] - ov_pos] if img1.shape[1] > ov_pos else img1[:, :0] + right = img2[:, ov_pos:] + stitched_img = np.concatenate((left, ov, right), axis=1) + else: + if _dim == 3: + top = img1[:img1.shape[0] - ov_pos, :, :] if img1.shape[0] > ov_pos else img1[:0, :, :] + bottom = img2[ov_pos:, :, :] + stitched_img = np.concatenate((top, ov, bottom), axis=0) + else: + top = img1[:img1.shape[0] - ov_pos, :] if img1.shape[0] > ov_pos else img1[:0, :] + bottom = img2[ov_pos:, :] + stitched_img = np.concatenate((top, ov, bottom), axis=0) + + return stitched_img + + def __get_ov(self, img1, img2, dim=1): + ''' + default dimension is along axis 1 (width of the images) + ''' + # pass parameters + nominal_ov = self.nominal_ov_pos + bound_ov = self.bound + + cross_corr = [] + h1, w1 = img1.shape[:2] + h2, w2 = img2.shape[:2] + # clamp tested overlap to valid range (1..min dimension) + max_possible = w1 if dim == 1 else h1 + max_possible = min(max_possible, w2 if dim == 1 else h2) + lo = max(1, nominal_ov - bound_ov) + hi = min(max_possible, nominal_ov + bound_ov) + ov_space = range(lo, hi + 1) + + for ov in ov_space: + if dim == 1: + ov_area1 = img1[:, max(0, w1 - ov):, :] + ov_area2 = img2[:, :min(ov, w2), :] + elif dim == 0: + ov_area1 = img1[max(0, h1 - ov):, :, :] + ov_area2 = img2[:min(ov, h2), :, :] + + # require exact shape match (detect_nonblack_regions guarantees uniform tile size) + if ov_area1.size == 0 or ov_area2.size == 0 or ov_area1.shape != ov_area2.shape: + cross_corr.append(-1.0) + continue + + # multi-channel cross correlation (average over channels) + corr = 0.0 + for i in range(min(3, ov_area1.shape[2])): + a = ov_area1[:, :, i].astype(np.float32) + b = ov_area2[:, :, i].astype(np.float32) + denom = np.sqrt(np.sum(a * a) * np.sum(b * b)) + 1e-12 + corr += float(np.sum(a * b) / denom) + corr = corr / float(min(3, ov_area1.shape[2])) + cross_corr.append(corr) + + # pick best overlap (ignore invalid entries) + best_idx = int(np.argmax(cross_corr)) + ov_pos = list(ov_space)[best_idx] + + # extract the overlap regions (assume shapes match) + if dim == 1: + ov_1 = img1[:, max(0, w1 - ov_pos):, :].copy() + ov_2 = img2[:, :min(ov_pos, w2), :].copy() + else: + ov_1 = img1[max(0, h1 - ov_pos):, :, :].copy() + ov_2 = img2[:min(ov_pos, h2), :, :].copy() + return ov_pos, ov_1, ov_2, cross_corr + + +# Helper functions for stitching + def __get_tile_index_by_position(self, x, y, tol=20): + """ + Find flipped tile whose top-left matches (x,y) within tol pixels. + flipped_units: list of (x,y,tile) + """ + i= 0 + for xi, yi, tile in self.units: + if abs(int(x) - int(xi)) <= tol and abs(int(y) - int(yi)) <= tol: + # return tile + return i + i += 1 + return None + + def __get_tile_by_index(self, idx): + """ + Retrieve tile by index + """ + if isinstance(idx, int): + idx = [idx] + + if len(idx) > len(self.units): + raise ValueError("Index exceeds number of tiles.") + + tile_list = [] + for i in range(len(idx)): + [xi, yi, tile] = self.units[idx[i]] + tile_list.append(tile) + + return tile_list + + def __correct_edge_bloom(self, img, method="divide", kernel_size=None, clip=True): + """ + Simple illumination correction to reduce edge bloom / vignetting. Only for getting tile boxes. + - method: "divide" (default) or "subtract" + * divide: img_corrected = (img / (bg + eps)) * gain -- preserves colors + * subtract: img_corrected = img - (bg - mean_bg) -- removes low-freq background + - kernel_size: size for large-kernel blur used as background estimate (odd int). + If None, chosen from image size. + Returns corrected uint8 image. + """ + if img is None: + raise ValueError("Input image is None.") + + h, w = img.shape[:2] + if kernel_size is None: + # choose large kernel relative to image size, ensure odd + k = max(31, min(h, w) // 2) + if k % 2 == 0: + k += 1 + kernel_size = k + # convert to float32 for stable ops + img_f = img.astype(np.float32) + # estimate background by large Gaussian blur (works well for smooth bloom) + bg = cv2.GaussianBlur(img_f, (kernel_size, kernel_size), 0) + if method == "subtract": + # remove low-frequency background but keep overall brightness + mean_bg = bg.mean(axis=(0, 1), keepdims=True) + corr = img_f - (bg - mean_bg) + else: + # divide: normalized gain correction + eps = 1e-6 + # compute gain so that mid-level stays near 128 + mean_bg = bg.mean(axis=(0, 1), keepdims=True) + eps + gain = (mean_bg * 0.5) # target scale; 0.5 keeps values reasonable + corr = (img_f / (bg + eps)) * gain + if clip: + corr = np.clip(corr, 0, 255).astype(np.uint8) + else: + corr = corr.astype(np.uint8) + return corr + + def __get_unit_pos(self,idx): + + if isinstance(idx, int): + idx = [idx] + + if len(idx) > len(self.units): + raise ValueError("Index exceeds number of vision units.") + + pos_list = [] + for i in range(len(idx)): + [xi, yi, tile] = self.units[idx[i]] + pos_list.append((xi, yi)) + + return pos_list + + # Computation Functions + def __detect_nonblack_regions(self, img, morph_k=3, n_boxes_target=15, bk_thresh_step=10, bk_thresh_max=100,show = False): + """ + Return binary mask of non-black regions and list of bounding boxes (x,y,w,h). + Uses adaptive thresholding on grayscale + small morphology to be robust to illumination. + + New behavior: after finding candidate boxes, center-crop all boxes to the same + width/height (smallest found) so returned boxes share a common size. + """ + if img is None: + raise ValueError("Input image is None.") + + h, w = img.shape[:2] + n_boxes = 0 + bk_thresh = 35 # initial black threshold + bk_thresh_step = 5 + bk_thresh_max = 100 + + # Also include a low global V threshold to capture colored but dark tiles + hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) + v = hsv[:,:,2] + ww = hh = 0 + while n_boxes != n_boxes_target and bk_thresh <= bk_thresh_max: + _, v_mask = cv2.threshold(v, bk_thresh, 255, cv2.THRESH_BINARY) # tune 50 if needed + + mask = v_mask + + # Morphology: remove small specks, fill small holes + k = max(1, morph_k) + kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (k, k)) + mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations=1) + mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel, iterations=2) + + # find contours of candidate regions + contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + + boxes = [] + for c in contours: + x,y,ww,hh = cv2.boundingRect(c) + boxes.append((x,y,ww,hh)) + + # filter boxes by size (ignore too small or too large tiles) + boxes = self.__filter_boxes_by_size(boxes, (h, w)) + n_boxes = len(boxes) + bk_thresh += bk_thresh_step + + # print("Detected {} candidate boxes with bk_thresh={}".format(n_boxes, bk_thresh - bk_thresh_step)) + if n_boxes == 0: + self.boxes = [] + return n_boxes + # compute common center-crop size: use minimum width/height among boxes + widths = [b[2] for b in boxes] + heights = [b[3] for b in boxes] + target_w = max(1,int(min(widths))) + target_h = max(1,int(min(heights))) + + # center-crop each box to (target_w, target_h) inside original box bounds + cropped_boxes = [] + for (x, y, ww, hh) in boxes: + cx = x + ww // 2 + cy = y + hh // 2 + nx0 = int(cx - target_w // 2) + ny0 = int(cy - target_h // 2) + # clamp to image bounds + nx0 = max(0, min(nx0, w - target_w)) + ny0 = max(0, min(ny0, h - target_h)) + # Convert to (x0, y0, x1, y1) format for direct image region retrieval + nx1 = nx0 + target_w + ny1 = ny0 + target_h + cropped_boxes.append((nx0, ny0, nx1, ny1)) + + # sort boxes left-to-right, top-to-bottom (useful for grid) + cropped_boxes = sorted(cropped_boxes, key=lambda b: (b[1], b[0])) + + self.boxes = cropped_boxes + img_with_boxes = self.draw_boxes(img= img) + if show: + cv2.imshow("Detected Boxes", img_with_boxes) + cv2.waitKey(0) + + img_path = "./config/compound_eye.png" + if os.path.exists(img_path): + cv2.imwrite(img_path, img_with_boxes) + else: + os.makedirs(os.path.dirname(img_path), exist_ok=True) + cv2.imwrite(img_path, img_with_boxes) + # print("Check if compound eye detection image valid: {}".format(img_path)) + return cropped_boxes + + def draw_boxes(self, img, thickness=2): + """ + Draw bounding boxes on the image. + - img: input image (will be copied, not modified in-place) + - thickness: line thickness + Returns: image with drawn boxes + """ + if self.boxes is None or len(self.boxes) == 0: + print("No boxes to draw") + return img + + img_draw = img.copy() + color=(0, 255, 0) + + for i, (x0, y0, x1, y1) in enumerate(self.boxes): + # Draw rectangle + cv2.rectangle(img_draw, (x0, y0), (x1, y1), color, thickness) + + # Draw index + text_size = cv2.getTextSize(str(i), cv2.FONT_HERSHEY_SIMPLEX, 0.6, 2)[0] + text_pos = (x0 + 5, y0 + text_size[1] + 5) + # Draw text background and text + cv2.rectangle(img_draw, (text_pos[0] - 2, text_pos[1] - text_size[1] - 2), + (text_pos[0] + text_size[0] + 2, text_pos[1] + 2), (0, 0, 0), -1) + cv2.putText(img_draw, str(i), text_pos, cv2.FONT_HERSHEY_SIMPLEX, 0.6, color, 2) + + return img_draw + + + + def __filter_boxes_by_size(self, boxes, img_shape, min_area_frac=0.018, max_area_frac=0.035): + """ + Remove boxes that are too small or too large relative to the image. + - boxes: list of (x,y,w,h) + - img_shape: (height, width) + - min_area_frac / max_area_frac: allowed area fraction of image + Returns filtered list of boxes. + """ + h, w = img_shape + img_area = h * w + min_area = img_area * float(min_area_frac) + max_area = img_area * float(max_area_frac) + filtered = [] + for (x,y,ww,hh) in boxes: + area = ww * hh + if area < min_area or area > max_area or (abs(ww - hh) > 20): + continue + filtered.append((x,y,ww,hh)) + return filtered \ No newline at end of file diff --git a/src/orisys/StructuredGrid.py b/src/orisys/StructuredGrid.py new file mode 100644 index 0000000..ea4d117 --- /dev/null +++ b/src/orisys/StructuredGrid.py @@ -0,0 +1,408 @@ +''' +Copyright (c) 2015, Harsh Bhatia (bhatia4@llnl.gov) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' + +import numpy +import sys +from .timer import Timer + +# Try to import CuPy for GPU acceleration +try: + import cupy as cp + CUPY_AVAILABLE = True +except ImportError: + cp = None + CUPY_AVAILABLE = False + +# ------------------------------------------------------------------------------ +class StructuredGrid(object): + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- + def __init__(self, **kwargs): + + ''' + kwargs: + grid: ndarray of grid dimensions (Y,X) or (Z,Y,X) + spacings: ndarray of grid spacings (dy, dx) or (dz, dy, dx) + verbose: verbosity level + ''' + + args = kwargs.keys() + + if ('grid' not in args) or ('spacings' not in args): + raise SyntaxError("Dimensions and spacings of the grid are required") + + verbose = 0 + if 'verbose' in args: + verbose = kwargs['verbose'] + + self.dims = kwargs['grid'] + self.dx = kwargs['spacings'] + self.dim = len(self.dims) + + if self.dim != 2 and self.dim != 3: + raise ValueError("StructuredGrid works for 2D and 3D only") + + if self.dim != len(self.dx): + raise ValueError("Dimensions of spacings should match that of the grid") + + # Initialize GPU cache + self._gpu_divcurl_cache = None + + if verbose > 0: + print(' Initializing', self.dim, 'D structured grid...', end ='') + sys.stdout.flush() + mtimer = Timer() + print(' Done!', end ='') + mtimer.end() + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- + def divcurl(self, vfield, verbose=False): + # compute div and curl of vfield (vector field) + #if (vfield.shape[-1] != self.dim) or (vfield.shape[0:self.dim] - self.dims).any(): + if (vfield.shape[-1] != self.dim) or (vfield.shape[0:self.dim] != self.dims): + raise ValueError("Dimensions of vector field should match that of the grid") + + if verbose: + print(' Computing div and curl...', end ='') + sys.stdout.flush() + mtimer = Timer() + + if self.dim == 2: + + # self.dx = (dy,dx) + dudy, dudx = numpy.gradient(vfield[:,:,0], self.dx[0], self.dx[1]) + dvdy, dvdx = numpy.gradient(vfield[:,:,1], self.dx[0], self.dx[1]) + + numpy.add(dudx, dvdy, dudx) + numpy.subtract(dvdx, dudy, dvdx) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return (dudx, dvdx) + + elif self.dim == 3: + + # self.dx = (dz,dy,dx) + dudz, dudy, dudx = numpy.gradient(vfield[:,:,:,0], self.dx[0], self.dx[1], self.dx[2]) + dvdz, dvdy, dvdx = numpy.gradient(vfield[:,:,:,1], self.dx[0], self.dx[1], self.dx[2]) + dwdz, dwdy, dwdx = numpy.gradient(vfield[:,:,:,2], self.dx[0], self.dx[1], self.dx[2]) + + numpy.add(dudx, dvdy, dudx) + numpy.add(dudx, dvdz, dudx) + + numpy.subtract(dwdy, dvdz, dwdy) + numpy.subtract(dudz, dwdx, dudz) + numpy.subtract(dvdx, dudy, dvdx) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return (dudx, dwdy, dudz, dvdx) + + def divcurl_gpu(self, vfield, verbose=False): + """ + GPU-accelerated computation of divergence and curl of vector field. + Uses CuPy for faster gradient computation on GPU. + """ + if not CUPY_AVAILABLE: + if verbose: + print('CuPy not available, falling back to CPU') + return self.divcurl(vfield, verbose) + + if (vfield.shape[-1] != self.dim) or (vfield.shape[0:self.dim] != self.dims): + raise ValueError("Dimensions of vector field should match that of the grid") + + if verbose: + print(' Computing div and curl on GPU...', end ='') + sys.stdout.flush() + mtimer = Timer() + + if self.dim == 2: + # Transfer to GPU + vfield_gpu = cp.asarray(vfield, dtype=cp.float32) + + # Compute gradients on GPU + dudy, dudx = cp.gradient(vfield_gpu[:,:,0], self.dx[0], self.dx[1]) + dvdy, dvdx = cp.gradient(vfield_gpu[:,:,1], self.dx[0], self.dx[1]) + + # Compute div and curl on GPU + div_gpu = dudx + dvdy + curl_gpu = dvdx - dudy + + # Transfer back to CPU + div = cp.asnumpy(div_gpu) + curl = cp.asnumpy(curl_gpu) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return (div, curl) + + elif self.dim == 3: + # Transfer to GPU + vfield_gpu = cp.asarray(vfield, dtype=cp.float32) + + # Compute gradients on GPU + dudz, dudy, dudx = cp.gradient(vfield_gpu[:,:,:,0], self.dx[0], self.dx[1], self.dx[2]) + dvdz, dvdy, dvdx = cp.gradient(vfield_gpu[:,:,:,1], self.dx[0], self.dx[1], self.dx[2]) + dwdz, dwdy, dwdx = cp.gradient(vfield_gpu[:,:,:,2], self.dx[0], self.dx[1], self.dx[2]) + + # Compute div and curl components on GPU + div_gpu = dudx + dvdy + dwdz + curlu_gpu = dwdy - dvdz + curlv_gpu = dudz - dwdx + curlw_gpu = dvdx - dudy + + # Transfer back to CPU + div = cp.asnumpy(div_gpu) + curlu = cp.asnumpy(curlu_gpu) + curlv = cp.asnumpy(curlv_gpu) + curlw = cp.asnumpy(curlw_gpu) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return (div, curlu, curlv, curlw) + + def curl3D(self, vfield, verbose=False): + + #if (vfield.shape[-1] != self.dim) or (vfield.shape[0:self.dim] - self.dims).any(): + if (vfield.shape[-1] != self.dim) or (vfield.shape[0:self.dim] != self.dims): + raise ValueError("Dimensions of vector field should match that of the grid") + + if self.dim != 3: + raise ValueError("curl3D works only for 2D") + + if verbose: + print(' Computing curl...', end ='') + sys.stdout.flush() + mtimer = Timer() + + # self.dx = (dz,dy,dx) + dudz, dudy, dudx = numpy.gradient(vfield[:,:,:,0], self.dx[0], self.dx[1], self.dx[2]) + dvdz, dvdy, dvdx = numpy.gradient(vfield[:,:,:,1], self.dx[0], self.dx[1], self.dx[2]) + dwdz, dwdy, dwdx = numpy.gradient(vfield[:,:,:,2], self.dx[0], self.dx[1], self.dx[2]) + + numpy.subtract(dwdy, dvdz, dwdy) + numpy.subtract(dudz, dwdx, dudz) + numpy.subtract(dvdx, dudy, dvdx) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return (dwdy, dudz, dvdx) + + def curl3D_gpu(self, vfield, verbose=False): + """ + GPU-accelerated computation of curl for 3D vector field. + Uses CuPy for faster gradient computation on GPU. + """ + if not CUPY_AVAILABLE: + if verbose: + print('CuPy not available, falling back to CPU') + return self.curl3D(vfield, verbose) + + if (vfield.shape[-1] != self.dim) or (vfield.shape[0:self.dim] != self.dims): + raise ValueError("Dimensions of vector field should match that of the grid") + + if self.dim != 3: + raise ValueError("curl3D works only for 3D") + + if verbose: + print(' Computing curl on GPU...', end ='') + sys.stdout.flush() + mtimer = Timer() + + # Transfer to GPU + vfield_gpu = cp.asarray(vfield, dtype=cp.float32) + + # Compute gradients on GPU + dudz, dudy, dudx = cp.gradient(vfield_gpu[:,:,:,0], self.dx[0], self.dx[1], self.dx[2]) + dvdz, dvdy, dvdx = cp.gradient(vfield_gpu[:,:,:,1], self.dx[0], self.dx[1], self.dx[2]) + dwdz, dwdy, dwdx = cp.gradient(vfield_gpu[:,:,:,2], self.dx[0], self.dx[1], self.dx[2]) + + # Compute curl components on GPU + curl_u = dwdy - dvdz + curl_v = dudz - dwdx + curl_w = dvdx - dudy + + # Transfer back to CPU + curlu = cp.asnumpy(curl_u) + curlv = cp.asnumpy(curl_v) + curlw = cp.asnumpy(curl_w) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return (curlu, curlv, curlw) + + def rotated_gradient(self, sfield, verbose=False): + + if (sfield.shape != self.dims): + #if (sfield.shape - self.dims).any(): + raise ValueError("Dimensions of scalar field should match that of the grid") + + if self.dim != 2: + raise ValueError("rotated_gradient works only for 2D") + + if verbose: + print(' Computing rotated gradient...', end ='') + sys.stdout.flush() + mtimer = Timer() + + ddy, ddx = numpy.gradient(sfield, self.dx[0], self.dx[1]) + ddy *= -1.0 + + grad = numpy.stack((ddy, ddx), axis=-1) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return grad + + def rotated_gradient_gpu(self, sfield, verbose=False): + """ + GPU-accelerated computation of rotated gradient for 2D scalar field. + Uses CuPy for faster gradient computation on GPU. + """ + if not CUPY_AVAILABLE: + if verbose: + print('CuPy not available, falling back to CPU') + return self.rotated_gradient(sfield, verbose) + + if (sfield.shape != self.dims): + raise ValueError("Dimensions of scalar field should match that of the grid") + + if self.dim != 2: + raise ValueError("rotated_gradient works only for 2D") + + if verbose: + print(' Computing rotated gradient on GPU...', end ='') + sys.stdout.flush() + mtimer = Timer() + + # Transfer to GPU + sfield_gpu = cp.asarray(sfield, dtype=cp.float32) + + # Compute gradients on GPU + ddy, ddx = cp.gradient(sfield_gpu, self.dx[0], self.dx[1]) + ddy *= -1.0 + + # Stack and transfer back to CPU + grad_gpu = cp.stack((ddy, ddx), axis=-1) + grad = cp.asnumpy(grad_gpu) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return grad + + def gradient(self, sfield, verbose=False): + + if (sfield.shape != self.dims): + #if (sfield.shape - self.dims).any(): + raise ValueError("Dimensions of scalar field should match that of the grid") + + if verbose: + print(' Computing gradient...', end ='') + sys.stdout.flush() + mtimer = Timer() + + if self.dim == 2: + + # self.dx = (dy,dx) + ddy, ddx = numpy.gradient(sfield, self.dx[0], self.dx[1]) + grad = numpy.stack((ddx, ddy), axis = -1) + + elif self.dim == 3: + + # self.dx = (dz,dy,dx) + ddz, ddy, ddx = numpy.gradient(sfield, self.dx[0], self.dx[1], self.dx[2]) + grad = numpy.stack((ddx, ddy, ddz), axis = -1) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return grad + + def gradient_gpu(self, sfield, verbose=False): + """ + GPU-accelerated computation of gradient for scalar field. + Uses CuPy for faster gradient computation on GPU. + """ + if not CUPY_AVAILABLE: + if verbose: + print('CuPy not available, falling back to CPU') + return self.gradient(sfield, verbose) + + if (sfield.shape != self.dims): + raise ValueError("Dimensions of scalar field should match that of the grid") + + if verbose: + print(' Computing gradient on GPU...', end ='') + sys.stdout.flush() + mtimer = Timer() + + # Transfer to GPU + sfield_gpu = cp.asarray(sfield, dtype=cp.float32) + + if self.dim == 2: + # Compute gradients on GPU + ddy, ddx = cp.gradient(sfield_gpu, self.dx[0], self.dx[1]) + grad_gpu = cp.stack((ddx, ddy), axis=-1) + + elif self.dim == 3: + # Compute gradients on GPU + ddz, ddy, ddx = cp.gradient(sfield_gpu, self.dx[0], self.dx[1], self.dx[2]) + grad_gpu = cp.stack((ddx, ddy, ddz), axis=-1) + + # Transfer back to CPU + grad = cp.asnumpy(grad_gpu) + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return grad + + def clear_gpu_cache(self): + """Clear GPU cache to free GPU memory""" + if self._gpu_divcurl_cache is not None: + self._gpu_divcurl_cache = None + if CUPY_AVAILABLE: + cp.get_default_memory_pool().free_all_blocks() + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- diff --git a/src/orisys/UnstructuredGrid.py b/src/orisys/UnstructuredGrid.py new file mode 100644 index 0000000..698247a --- /dev/null +++ b/src/orisys/UnstructuredGrid.py @@ -0,0 +1,424 @@ +''' +Copyright (c) 2015, Harsh Bhatia (bhatia4@llnl.gov) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' + +import sys +import numpy +from scipy import spatial +from .timer import Timer + +class UnstructuredGrid(object): + + '''Class to support nHHD on unstructured grids (triangular and tetrahedral)''' + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- + def need_volumes(self, verbose=False): + + ''' Compute volumes/areas for vertices, simplices, and corners''' + + if self.pvolumes.shape != (0,): + return self.pvolumes + + def tri_area(o,a,b): + return numpy.linalg.norm(numpy.cross(b-o,a-o)) / 2.0 + + def tet_volume(o,a,b,c): + return numpy.abs(numpy.dot(a-o,numpy.cross(b-o,c-o))) / 6.0 + + if verbose: + print(' Computing point areas/volumes...', end ='') + sys.stdout.flush() + mtimer = Timer() + + self.svolumes = numpy.zeros(self.nsimplices,) + self.pvolumes = numpy.zeros(self.nvertices,) + self.cvolumes = numpy.zeros((self.nsimplices,self.dim+1)) + + # triangulation + if self.dim == 2: + + for sidx in xrange(self.nsimplices): + + simp = self.simplices[sidx] + verts = self.vertices[simp] + + self.svolumes[sidx] = tri_area(verts[0], verts[1], verts[2]) + + # edge weights + e = [ verts[2]-verts[1], verts[0]-verts[2], verts[1]-verts[0] ] + l2 = [ numpy.dot(e[0],e[0]), numpy.dot(e[1],e[1]), numpy.dot(e[2],e[2]) ] + ew = [ l2[0]*(l2[1]+l2[2]-l2[0]), l2[1]*(l2[2]+l2[0]-l2[1]),l2[2]*(l2[0]+l2[1]-l2[2]) ] + + # corner areas + if (ew[0] <= 0): + self.cvolumes[sidx,1] = -0.25 * l2[2] * self.svolumes[sidx] / numpy.dot(e[0], e[2]) + self.cvolumes[sidx,2] = -0.25 * l2[1] * self.svolumes[sidx] / numpy.dot(e[0], e[1]) + self.cvolumes[sidx,0] = self.svolumes[sidx] - self.cvolumes[sidx,1] - self.cvolumes[sidx,2] + elif (ew[1] <= 0): + self.cvolumes[sidx,2] = -0.25 * l2[0] * self.svolumes[sidx] / numpy.dot(e[1], e[0]); + self.cvolumes[sidx,0] = -0.25 * l2[2] * self.svolumes[sidx] / numpy.dot(e[1], e[2]); + self.cvolumes[sidx,1] = self.svolumes[sidx] - self.cvolumes[sidx,2] - self.cvolumes[sidx,0]; + elif (ew[2] <= 0): + self.cvolumes[sidx,0] = -0.25 * l2[1] * self.svolumes[sidx] / numpy.dot(e[2], e[1]); + self.cvolumes[sidx,1] = -0.25 * l2[0] * self.svolumes[sidx] / numpy.dot(e[2], e[0]); + self.cvolumes[sidx,2] = self.svolumes[sidx] - self.cvolumes[sidx,0] - self.cvolumes[sidx,1]; + else: + ewscale = 0.5 * self.svolumes[sidx] / (ew[0] + ew[1] + ew[2]) + for d in xrange(3): + self.cvolumes[sidx,d] = ewscale * (ew[(d+1)%3] + ew[(d+2)%3]) + + self.pvolumes[simp[0]] += self.cvolumes[sidx,0] + self.pvolumes[simp[1]] += self.cvolumes[sidx,1] + self.pvolumes[simp[2]] += self.cvolumes[sidx,2] + + # tetrahedralization + elif self.sdim == 3: + + raise ValueError('TODO: pvolumes for 3D') + for sidx in xrange(self.nsimplices): + + simp = self.simplices[sidx] + verts = self.vertices[simp] + + self.svolumes[sidx] = tet_volume(verts[0], verts[1], verts[2], verts[3]) + + for v in simp: + self.pvolumes[v] += self.svolumes[sidx] / 4.0 + + + if verbose: + print(' Done!', end ='') + mtimer.end() + + return self.pvolumes + + def need_adjacentfaces(self, verbose=False): + + ''' + Find adjacent faces for each vertex + as list of lists + ''' + + if len(self.adjacent_faces) != 0: + return self.adjacent_faces + + if verbose: + print(' Computing adjacent_faces...', end ='') + sys.stdout.flush() + mtimer = Timer() + + numadjacentfaces = numpy.zeros(self.nvertices, dtype=int) + for f in self.simplices: + for i in xrange(3): + numadjacentfaces[f[i]] += 1 + + # can be optimized further by avoiding "append"? + self.adjacent_faces = [[] for _ in xrange(self.nvertices)] + for fidx in xrange(self.nsimplices): + for i in xrange(3): + self.adjacent_faces[self.simplices[fidx, i]].append(fidx) + + if verbose: + print('Done!', end ='') + mtimer.end() + + return self.adjacent_faces + + def need_acrossedge(self, verbose=False): + + ''' + Find adjacent faces for each face (across each edge) + as ndarray of ints: shape (nsimplex, 3) + -1 denotes a face on the boundary (no face across edge) + ''' + if self.across_edge.shape != (0,0): + return self.across_edge + + self.need_adjacentfaces(verbose) + + if verbose: + print(' Computing across_edge...', end ='') + sys.stdout.flush() + mtimer = Timer() + + self.across_edge = -1 * numpy.ones((self.nsimplices, 3), dtype=numpy.int) + + for fidx in xrange(self.nsimplices): + for i in xrange(3): + + if self.across_edge[fidx, i] != -1: + continue + + v1 = self.simplices[fidx, (i+1)%3] + v2 = self.simplices[fidx, (i+2)%3] + + for other in self.adjacent_faces[v1]: + + if other == fidx: + continue + + if other not in self.adjacent_faces[v2]: + continue + + oface = self.simplices[other] + j = numpy.where(oface == v1)[0] + j = (j+1)%3 + + if oface[(j+1)%3] != v2: + continue + + self.across_edge[fidx, i] = other + self.across_edge[other, j] = fidx + + if verbose: + print(' Done!', end ='') + mtimer.end() + return self.across_edge + + def need_boundary(self, verbose=False): + + ''' + Find boundary of the triangulation + as collection of boundary edeges as an array of [face, k] + ''' + + if self.bedges.shape != (0,0): + return self.bedges + + self.need_acrossedge(verbose) + + if verbose: + print(' Computing the boundary...', end ='') + sys.stdout.flush() + mtimer = Timer() + + # find all boundary faces and edges + bfaces = [fidx for fidx in xrange(self.nsimplices) if -1 in self.across_edge[fidx]] + bedges = [] + + for fidx in bfaces: + face = self.simplices[fidx] + nbrs = self.across_edge[fidx] + bedges.extend( [[fidx, k] for k in xrange(3) if nbrs[k] == -1] ) + + self.bedges = numpy.array(bedges) + if verbose: + print(' Done! found', self.bedges.shape[0], 'boundary edges', end ='') + mtimer.end() + + return self.bedges + + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- + def __init__(self, **kwargs): + + ''' + kwargs: + vertices: ndarray of shape (nverts, dim) # dim = 2,3 + simplices: ndarray of shape (nfaces, dim+1) + verbose: verbosity level + ''' + + args = kwargs.keys() + + if 'vertices' not in args: + raise SyntaxError("Mesh object needs vertex data") + + verbose = 2 + if 'verbose' in args: + verbose = kwargs['verbose'] + + self.vertices = kwargs['vertices'] + self.dim = self.vertices.shape[1] + self.nvertices = self.vertices.shape[0] + + if self.dim != 2 and self.dim != 3: + raise SyntaxError("Mesh object works for 2D and 3D only") + + if verbose > 0: + print(' Initializing', self.dim, 'D mesh with', self.nvertices, 'vertices...', end ='') + sys.stdout.flush() + mtimer = Timer() + + if verbose > 1: + print('') + + # create simplices if needed + if 'simplices' in args: + self.Delaunay = None + self.simplices = kwargs['simplices'] + if verbose > 1: + print(' got', self.simplices.shape[0], 'simplices') + else: + if verbose > 1: + print(' creating Delaunay mesh...') + sys.stdout.flush() + + self.Delaunay = spatial.Delaunay(self.vertices) + self.simplices = self.Delaunay.simplices + + if verbose > 1: + print(' Done! created', self.simplices.shape[0], 'simplices') + sys.stdout.flush() + + self.nsimplices = self.simplices.shape[0] + if self.dim != self.simplices.shape[1]-1: + raise SyntaxError("Dimension mismatch! pdim = "+str(pdim)+" and sdim = "+str(sdim)+" do not match!") + + self.adjacent_faces = [] + self.across_edge = numpy.empty((0,0)) + self.bedges = numpy.empty((0,0)) + self.pvolumes = numpy.empty(0) + + self.need_volumes(verbose > 1) + self.need_boundary(verbose > 1) + #self.need_meshmatrices(verbose > 1) + + if verbose > 0: + print(' Done!', end ='') + mtimer.end() + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- + def divcurl(self, vfield, verbose=False): + + if vfield.shape != (self.nsimplices, self.dim): + print('UnstructuredGrid.divcurl', vfield.shape, self.dim, self.vertices.shape, self.simplices.shape) + raise ValueError("UnstructuredGrid requires a valid-dimensional vector field") + + if verbose: + print(' Computing divcurl...', end ='') + sys.stdout.flush() + mtimer = Timer() + + div = numpy.zeros(self.nvertices) + curlw = numpy.zeros(self.nvertices) + + # for each face + for sidx in xrange(self.nsimplices): + + simp = self.simplices[sidx] + + for k in xrange(3): + + v = simp[k] + a = simp[ (k+1)%3 ] + b = simp[ (k+2)%3 ] + + # normal and tangent vectors + tvec = self.vertices[b] - self.vertices[a] # counterclockwise + nvec = numpy.array([-tvec[1], tvec[0]]) # inward + + dn = numpy.dot(nvec, vfield[sidx]) + tn = numpy.dot(tvec, vfield[sidx]) + + div[v] += dn + curlw[v] += tn + + # fix for boundary edges + for bedge in self.bedges: + + sidx = bedge[0] + eidx = bedge[1] + + a = self.simplices[sidx][(eidx+1)%3] + b = self.simplices[sidx][(eidx+2)%3] + + tvec = self.vertices[b] - self.vertices[a] # counterclockwise + nvec = numpy.array([-tvec[1], tvec[0]]) # inward + + dn = numpy.dot(nvec, vfield[sidx]) + dt = numpy.dot(tvec, vfield[sidx]) + + div[a] += dn + div[b] += dn + curlw[a] += tn + curlw[b] += tn + + div = -0.5 * div + curlw = 0.5 * curlw + + if verbose: + print(' Done!', end ='') + mtimer.end() + #print('\tdiv =', div.shape, div.min(), div.max()) + #print('\tcurlw =', curlw.shape, curlw.min(), curlw.max()) + + return (div, curlw) + + def gradient(self, sfield, verbose=False): + + if sfield.shape[0] != self.nvertices: + print('UnstructuredGrid.gradient', self.dim, sfield.shape, self.vertices.shape, self.simplices.shape) + raise ValueError("UnstructuredGrid requires a valid-dimensional vector field") + + if verbose: + print(' Computing gradient...', end ='') + sys.stdout.flush() + mtimer = Timer() + + grad = numpy.zeros((self.nsimplices, self.dim)) + + # for 2D + for sidx in xrange(self.nsimplices): + + deb = sidx==0 + + simp = self.simplices[sidx] + f = 0.5 / self.svolumes[sidx] + + if deb: + print(sidx, simp, self.svolumes[sidx], f) + + for k in xrange(3): + + v = simp[k] + a = simp[ (k+1)%3 ] + b = simp[ (k+2)%3 ] + + # normal and tangent vectors + tvec = self.vertices[b] - self.vertices[a] # counterclockwise + nvec = numpy.array([-tvec[1], tvec[0]]) # inward + + grad[sidx] += f * sfield[v] * nvec + + if deb: + print('\t', k, nvec, sfield[v],grad[sidx]) + + if verbose: + print(' Done!', end ='') + mtimer.end() + return grad + + def rotated_gradient(self, sfield): + + rgrad = self.gradient(sfield) + + rgrad[:,[0, 1]] = rgrad[:,[1, 0]] + rgrad[:,0] *= -1.0 + + return rgrad + + # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- diff --git a/src/orisys/__init__.py b/src/orisys/__init__.py new file mode 100644 index 0000000..c3cf38a --- /dev/null +++ b/src/orisys/__init__.py @@ -0,0 +1,13 @@ +""" +Orisys - Optical Tactile Sensor SDK + +A Python library for processing and analyzing optical tactile sensor data, +including image stitching, optical flow tracking, and deformation decomposition. +""" + +__version__ = "0.1.0" +__author__ = "Your Name" + +from .sensor import Sensor + +__all__ = ['Sensor'] diff --git a/src/orisys/__pycache__/Stitcher.cpython-310.pyc b/src/orisys/__pycache__/Stitcher.cpython-310.pyc new file mode 100644 index 0000000..674fbfb Binary files /dev/null and b/src/orisys/__pycache__/Stitcher.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/StructuredGrid.cpython-310.pyc b/src/orisys/__pycache__/StructuredGrid.cpython-310.pyc new file mode 100644 index 0000000..a525ab4 Binary files /dev/null and b/src/orisys/__pycache__/StructuredGrid.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/UnstructuredGrid.cpython-310.pyc b/src/orisys/__pycache__/UnstructuredGrid.cpython-310.pyc new file mode 100644 index 0000000..eac6192 Binary files /dev/null and b/src/orisys/__pycache__/UnstructuredGrid.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/__init__.cpython-310.pyc b/src/orisys/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..095dfca Binary files /dev/null and b/src/orisys/__pycache__/__init__.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/nHHD.cpython-310.pyc b/src/orisys/__pycache__/nHHD.cpython-310.pyc new file mode 100644 index 0000000..c78b090 Binary files /dev/null and b/src/orisys/__pycache__/nHHD.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/nPoisson.cpython-310.pyc b/src/orisys/__pycache__/nPoisson.cpython-310.pyc new file mode 100644 index 0000000..da82c77 Binary files /dev/null and b/src/orisys/__pycache__/nPoisson.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/sensor.cpython-310.pyc b/src/orisys/__pycache__/sensor.cpython-310.pyc new file mode 100644 index 0000000..8e19865 Binary files /dev/null and b/src/orisys/__pycache__/sensor.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/timer.cpython-310.pyc b/src/orisys/__pycache__/timer.cpython-310.pyc new file mode 100644 index 0000000..4313402 Binary files /dev/null and b/src/orisys/__pycache__/timer.cpython-310.pyc differ diff --git a/src/orisys/__pycache__/tracker.cpython-310.pyc b/src/orisys/__pycache__/tracker.cpython-310.pyc new file mode 100644 index 0000000..c3cf7d4 Binary files /dev/null and b/src/orisys/__pycache__/tracker.cpython-310.pyc differ diff --git a/src/orisys/nHHD.py b/src/orisys/nHHD.py new file mode 100644 index 0000000..444646b --- /dev/null +++ b/src/orisys/nHHD.py @@ -0,0 +1,288 @@ +''' +Copyright (c) 2015, Harsh Bhatia (bhatia4@llnl.gov) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' + +import numpy +from .nPoisson import PoissonSolver +from .StructuredGrid import StructuredGrid +from .UnstructuredGrid import UnstructuredGrid +# import matplotlib.pyplot as plt + +# --------------------------------------------------------------------------- +class nHHD(object): + + # constructor + def __init__(self, **kwargs): + + args = kwargs.keys() + + if ('grid' in args) == ('points' in args): + raise SyntaxError("nHHD Solver needs either shape of a regular grid or the points in an rectilinear/unstructured grid") + + if ('grid' in args) != ('spacings' in args): + raise SyntaxError("nHHD needs spacings for regular grid") + + if 'grid' in args: + + self.mesh = StructuredGrid(grid=kwargs['grid'], spacings=kwargs['spacings']) + self.psolver = PoissonSolver(grid=self.mesh.dims, spacings=self.mesh.dx) + + elif 'points' in args: + + if 'simplices' in args: + self.mesh = UnstructuredGrid(vertices=kwargs['points'], simplices=kwargs['simplices']) + else: + self.mesh = UnstructuredGrid(vertices=kwargs['points']) + + self.psolver = PoissonSolver(points=self.mesh.vertices, pvolumes=self.mesh.pvolumes) + + self.dim = self.mesh.dim + if (self.dim != 2) and (self.dim != 3): + raise ValueError("nHHD Solver works only for 2 and 3 dimensions") + + self.psolver.prepare(False) + + # create the 3-component decomposition + def decompose(self, vfield, verbose=0): + + if vfield.shape[-1] != self.dim: + raise ValueError("nHHD.decompose requires a valid-dimensional vector field") + + if verbose > 0: + print( '\n ==> nhhd.decompose', vfield.shape) + + if self.dim == 2: + + # compute div curl + (self.div, self.curlw) = self.mesh.divcurl(vfield) + + if verbose > 0: + print( 'div =', self.div.shape, self.div.min(), self.div.max()) + print( 'curlw =', self.curlw.shape, self.curlw.min(), self.curlw.max()) + + # compute potentials + self.nD = self.psolver.solve_gpu(self.div, verbose > 0) #1) + if verbose > 0: + print( 'nD =', self.nD.shape, self.nD.min(), self.nD.max()) + + self.nRu = self.psolver.solve_gpu(self.curlw, verbose > 0) #1) + if verbose > 0: + print( 'nR =', self.nRu.shape, self.nRu.min(), self.nRu.max()) + + # compute fields as gradients of potentials + self.d = self.mesh.gradient(self.nD) + if verbose > 0: + print( 'd =', self.d.shape, self.d.min(), self.d.max()) + + self.r = self.mesh.rotated_gradient(self.nRu) + if verbose > 0: + print( 'r =', self.r.shape, self.r.min(), self.r.max()) + else: + + # compute div curl + (self.div, self.curlu, self.curlv, self.curlw) = self.mesh.divcurl(vfield) + + if verbose > 0: + print( 'div =', self.div.shape, self.div.min(), self.div.max()) + print( 'curlu =', self.curlu.shape, self.curlu.min(), self.curlu.max()) + print( 'curlv =', self.curlv.shape, self.curlv.min(), self.curlv.max()) + print( 'curlw =', self.curlw.shape, self.curlw.min(), self.curlw.max()) + + # compute potentials + self.nD = self.psolver.solve_gpu(self.div, verbose > 0) #1) + if verbose > 0: + print( 'nD =', self.nD.shape, self.nD.min(), self.nD.max()) + + self.nRu = self.psolver.solve_gpu(self.curlu, verbose > 0) + self.nRu *= -1.0 + if verbose > 0: + print( 'nRu =', self.nRu.shape, self.nRu.min(), self.nRu.max()) + + self.nRv = self.psolver.solve_gpu(self.curlv, verbose > 0) + self.nRv *= -1.0 + if verbose > 0: + print( 'nRv =', self.nRv.shape, self.nRv.min(), self.nRv.max()) + + self.nRw = self.psolver.solve_gpu(self.curlw, verbose > 0) + self.nRw *= -1.0 + + if verbose > 0: + print( 'nRw =', self.nRw.shape, self.nRw.min(), self.nRw.max()) + + # compute divergent field as gradient of D potential + self.d = self.mesh.gradient(self.nD) + if verbose > 0: + print( 'd =', self.d.shape, self.d.min(), self.d.max()) + + # temporary use of r + self.r = numpy.stack((self.nRu, self.nRv, self.nRw), axis = -1) + + # compute rotational field as curl of R potential + (cu, cv, cw) = self.mesh.curl3D(self.r) + self.r = numpy.stack((cu, cv, cw), axis = -1) + if verbose > 0: + print( 'r =', self.r.shape, self.r.min(), self.r.max()) + + self.h = numpy.add(self.d, self.r) + numpy.subtract(vfield, self.h, self.h) + + if verbose > 0: + print( 'h =', self.h.shape, self.h.min(), self.h.max()) + + def decompose_batch(self, vfield, verbose=0): + + if vfield.shape[-1] != self.dim: + raise ValueError("nHHD.decompose requires a valid-dimensional vector field") + + if verbose > 0: + print( '\n ==> nhhd.decompose', vfield.shape) + + if self.dim == 2: + + # compute div curl using GPU + (self.div, self.curlw) = self.mesh.divcurl(vfield) + + if verbose > 0: + print( 'div =', self.div.shape, self.div.min(), self.div.max()) + print( 'curlw =', self.curlw.shape, self.curlw.min(), self.curlw.max()) + + # compute potentials using batch GPU solver + batch_inputs = [self.div, self.curlw] + batch_results = self.psolver.solve_gpu_batch(batch_inputs, verbose > 0) + + self.nD = batch_results[0] + self.nRu = batch_results[1] + + if verbose > 0: + print( 'nD =', self.nD.shape, self.nD.min(), self.nD.max()) + print( 'nR =', self.nRu.shape, self.nRu.min(), self.nRu.max()) + + # compute fields as gradients of potentials + self.d = self.mesh.gradient(self.nD) + if verbose > 0: + print( 'd =', self.d.shape, self.d.min(), self.d.max()) + + self.r = self.mesh.rotated_gradient(self.nRu) + if verbose > 0: + print( 'r =', self.r.shape, self.r.min(), self.r.max()) + else: + + # compute div curl + (self.div, self.curlu, self.curlv, self.curlw) = self.mesh.divcurl(vfield) + + if verbose > 0: + print( 'div =', self.div.shape, self.div.min(), self.div.max()) + print( 'curlu =', self.curlu.shape, self.curlu.min(), self.curlu.max()) + print( 'curlv =', self.curlv.shape, self.curlv.min(), self.curlv.max()) + print( 'curlw =', self.curlw.shape, self.curlw.min(), self.curlw.max()) + + # compute potentials using batch GPU solver + batch_inputs = [self.div, self.curlu, self.curlv, self.curlw] + batch_results = self.psolver.solve_gpu_batch(batch_inputs, verbose > 0) + + self.nD = batch_results[0] + self.nRu = batch_results[1] * -1.0 + self.nRv = batch_results[2] * -1.0 + self.nRw = batch_results[3] * -1.0 + + if verbose > 0: + print( 'nD =', self.nD.shape, self.nD.min(), self.nD.max()) + print( 'nRu =', self.nRu.shape, self.nRu.min(), self.nRu.max()) + print( 'nRv =', self.nRv.shape, self.nRv.min(), self.nRv.max()) + print( 'nRw =', self.nRw.shape, self.nRw.min(), self.nRw.max()) + + # compute divergent field as gradient of D potential + self.d = self.mesh.gradient(self.nD) + if verbose > 0: + print( 'd =', self.d.shape, self.d.min(), self.d.max()) + + # temporary use of r + self.r = numpy.stack((self.nRu, self.nRv, self.nRw), axis = -1) + + # compute rotational field as curl of R potential + (cu, cv, cw) = self.mesh.curl3D(self.r) + self.r = numpy.stack((cu, cv, cw), axis = -1) + if verbose > 0: + print( 'r =', self.r.shape, self.r.min(), self.r.max()) + + self.h = numpy.add(self.d, self.r) + numpy.subtract(vfield, self.h, self.h) + + if verbose > 0: + print( 'h =', self.h.shape, self.h.min(), self.h.max()) + + def get_force(self, vfield, verbose=False): + + mgrid = numpy.mgrid[0: vfield.shape[0], 0: vfield.shape[1]] + grid = numpy.stack((mgrid[0], mgrid[1]), axis =2) + # print(grid.shape) + + + self.decompose(vfield, verbose) + + self.Sn = numpy.sum(numpy.absolute(self.d)) + # print("Sn is:", self.Sn) + + self.Stx = abs(numpy.sum(self.h[:, :, 0])) + self.Sty = abs(numpy.sum(self.h[:, :, 1])) + # print("Stx is:", self.Stx) + # print("Sty is:", self.Sty) + + nR_max_loc = numpy.unravel_index(numpy.argmax(self.nRu, axis = None), self.nRu.shape) + nR_min_loc = numpy.unravel_index(numpy.argmin(self.nRu, axis = None), self.nRu.shape) + + # print(nR_max_loc) + + r_p = grid - nR_max_loc + r_n = grid - nR_min_loc + + self.Stor = numpy.sum(numpy.cross(r_p, self.r)) + numpy.sum(numpy.cross(r_n, self.r)) + # print("Stor is:", self.Stor) + + output = numpy.array([self.Sn, self.Stx, self.Sty, self.Stor]) + + flag = False + if self.Sn >=300 and self.Stx >= 300 and self.Sty >= 300 and numpy.abs(self.Stor) >= 1000: + flag = True + # print(flag) + return flag,output + # return self.d, self.h, numpy.cross(r_p, self.r) , numpy.cross(r_n, self.r) + + def get_shear(self): + + return self.h + + def get_normal(self): + + return self.d + + # def plot_2d_information(self,value): + # fig,ax = plt.subplots() + # x,y = [],[] + # for i in range (1000000000000): + # x.append(i) + # y.append(value) + # ax.cla() + # ax.plot(x,y,'b',lw=1) + + # plt.pause(0.1) +# --------------------------------------------------------------------------- diff --git a/src/orisys/nPoisson.py b/src/orisys/nPoisson.py new file mode 100644 index 0000000..4bcee3b --- /dev/null +++ b/src/orisys/nPoisson.py @@ -0,0 +1,518 @@ +''' +Copyright (c) 2015, Harsh Bhatia (bhatia4@llnl.gov) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' + +import numpy +from scipy import signal, spatial +from .timer import Timer + +# Try to import CuPy for GPU acceleration +try: + import cupy as cp + import cupyx.scipy.signal as cp_signal + CUPY_AVAILABLE = True +except ImportError: + cp = None + cp_signal = None + CUPY_AVAILABLE = False + + +''' +# ------------------------------------------------------------------------------ + Poisson Solver for 1D, 2D, and 3D scalar fields. + Data may be defined on a rectlinear grid or unstructured points. + + 1) create an object + PoissonSolver(args) + 'solver' : type of solver + 'S' for spatial convolution + only option for unstructured points + 'F' for convolution in frequency space + default option for regular grids + + --> for regular grid + 'grid' : shape of the rectlinear grid + tuple of dimensions (Z,Y,X) + 'spacings' : spacings of the rectlinear grid + tuple of spacings (dz,dy,dx) + + --> for unstrucutred points + 'points' : unstructured points + numpy array of shape (N, dim) + 'pvolumes' : point volumes for each point + numpy array of shape (N, 1) + + 2) call prepare() + this initializes internal datastructures depending upon the mesh. + + Once initialized, solve() can be called any number of times to + solve the Poisson equation on the same domain. If the domain + changes (e.g., a Lagrangian mesh), create a new object. + + 3) call solve(f), where, f is a numpy array defining a scalar field + + for rectlinear grid, f.shape = grid.shape + for unstructured points, f.shape = (points.shape[0], 1) + +# ------------------------------------------------------------------------------ +''' + +class PoissonSolver(object): + + # constructor + def __init__(self, **kwargs): + + args = kwargs.keys() + + if ('grid' in args) == ('points' in args): + raise SyntaxError("Poisson Solver needs either shape of a regular grid or the points in an rectilinear/unstructured grid") + + if ('grid' in args) != ('spacings' in args): + raise SyntaxError("Poisson Solver needs spacings for regular grid") + + if ('points' in args) != ('pvolumes' in args): + raise SyntaxError("Poisson Solver needs point volumes for unstructured points") + + # (default) data type + self.dtype = numpy.float32 + if 'dtype' in args: + self.dtype = kwargs['dtype'] + + if 'grid' in args: + self.ptype = 'G' + self.stype = 'F' # default + self.gdims = kwargs['grid'] + self.gdx = kwargs['spacings'] + self.dim = len(self.gdims) + if self.dim != len(self.gdx): + raise ValueError("Dimensions of spacings should match that of the grid") + + elif 'points' in args: + self.ptype = 'P' + self.stype = 'S' # only option + self.points = kwargs['points'] + self.pvolumes = kwargs['pvolumes'] + self.dim = len(self.points.shape) + if self.pvolumes.shape[0] != self.points.shape[0]: + raise ValueError("Number of pvolumes should match that of the points") + + if 'solver' in args: + if (kwargs['solver'] != 'S' and kwargs['solver'] != 'F'): + raise SyntaxError('Solver can be only of type S(patial) or F(requency)') + + if (kwargs['solver'] == 'F') and ('points' in args): + raise SyntaxError('Only Spatial solver supported for unstructured points') + + if (kwargs['solver'] == 'S') and ('grid' in args): + raise SyntaxError('Frequncy solver strongly suggested for structured grids') + + self.stype = kwargs['solver'] + + if (self.dim > 3): + raise ValueError("Poisson Solver works only for 1, 2, or 3 dimensions") + + self.ready = False + self._gpu_cache = None # Cache for GPU arrays + # if (self.ptype == 'G'): + # print( 'PoissonSolver:', self.dim, 'D grid =', self.gdims, 'with spacings', self.gdx) + # elif (self.ptype == 'P'): + # print( 'PoissonSolver', self.dim, 'D points =', self.points.shape) + + # -------------------------------------------------------------------------- + # create the Green's function in appropriate representation + # -------------------------------------------------------------------------- + + # generate a grid -(N-1) to (N-1) to define distance function + # where N is the size of the original grid + def _create_radialGrid(self, verbose): + + mtimer = Timer() + if verbose: + print( ' - creating distance kernel:', end ='') + + rdims = tuple(2*d - 1 for d in self.gdims) + + R = numpy.indices(rdims, dtype=self.dtype) + for d in range(self.dim): + R[d] += 1-self.gdims[d] + R[d] *= self.gdx[d] + + if self.dim == 1: + numpy.absolute(R[0], R[0]) + R = R[0] + + elif self.dim == 2: + numpy.hypot(R[1], R[0], R[0]) + R = R[0] + + # half of the average grid spacing + zval = 0.5 * (self.gdx[0]+self.gdx[1]) / 2.0 + R[self.gdims[0]-1, self.gdims[1]-1] = zval + + elif self.dim == 3: + numpy.hypot(R[2], R[1], R[1]) + numpy.hypot(R[1], R[0], R[0]) + R = R[0] + + # half of the average grid spacing + zval = 0.5 * (self.gdx[0]+self.gdx[1]+self.gdx[2]) / 3.0 + R[self.gdims[0]-1, self.gdims[1]-1, self.gdims[2]-1] = zval + + if verbose: + print( R.shape, R.min(), R.max()) + mtimer.end() + + return R + + # -------------------------------------------------------------------------- + # scale a function by point volumes for correct integration + def _scale(self, func): + + if self.ptype == 'P': + return numpy.multiply(func, self.pvolumes) + + elif self.ptype == 'G': + sfunc = func * numpy.prod(self.gdx) + + ''' + # volume of the boundary elements is only half the voxel + if self.dim == 1: + sfunc[ 0] *= 0.5 + sfunc[-1] *= 0.5 + elif self.dim == 2: + sfunc[ 0, :] *= 0.5 + sfunc[-1, :] *= 0.5 + sfunc[ :, 0] *= 0.5 + sfunc[ :,-1] *= 0.5 + elif self.dim == 3: + sfunc[ 0, :, :] *= 0.5 + sfunc[-1, :, :] *= 0.5 + sfunc[ :, 0, :] *= 0.5 + sfunc[ :,-1, :] *= 0.5 + sfunc[ :, :, 0] *= 0.5 + sfunc[ :, :,-1] *= 0.5 + ''' + return sfunc + + def prepare(self, verbose=False): + + # ---------------------------------------------------------------------- + gtimer = Timer() + if verbose: + print( '\nInitializing Poisson solver, type =', self.stype) + + # ---------------------------------------------------------------------- + # generate a grid to store pairwise distances to store Green's function + self.G = None # definition depends upon solver type + + # ---------------------------------------------------------------------- + # for Fourier solution, + if self.stype == 'F': + + if self.ptype == 'G': + self.G = self._create_radialGrid(verbose) + + elif self.ptype == 'P': + raise SyntaxError('Frequncy solver not supported for unstructured points') + #self.G = create_distArray() + + # ---------------------------------------------------------------------- + # for spatial solution, + # use the pairwise distance matrix, N x N + # where N is the number of points + elif self.stype == 'S': + + if self.ptype == 'G': + raise SyntaxError('Spatial solver not suggested for structured grids') + #self.G = self.create_points(verbose) + + elif self.ptype == 'P': + # for 1D points, add an extra axis + if (self.dim == 1) and (len(self.points.shape) == 1): + self.points = self.points[:,numpy.newaxis] + + # create pairwise distance matrix now + ltimer = Timer() + self.G = spatial.distance.cdist(self.points, self.points) + + # TODO: use a good approximation here + zval = numpy.power(10.0, -10.0) + self.G += zval * numpy.identity(self.G.shape[0]) + + if verbose: + print(' - created pairwise distance matrix:', self.G.shape, self.G.min(), self.G.max(), end = "") + ltimer.end() + + # ---------------------------------------------------------------------- + # compute the Green's function + ltimer = Timer() + if verbose: + print( ' - computing the Green\'s function:') + + if self.dim == 1: + numpy.multiply(self.G, 0.5, self.G) + + elif self.dim == 2: + numpy.log(self.G, self.G) + numpy.multiply(self.G, (0.5 / numpy.pi), self.G) + + elif self.dim == 3: + numpy.reciprocal(self.G, self.G) + numpy.multiply(self.G, (-0.25 / numpy.pi), self.G) + + if verbose: + print( self.G.shape, self.G.min(), self.G.max(), end = "") + ltimer.end() + + # ---------------------------------------------------------------------- + self.ready = True + + if verbose: + print( 'Poisson solver initialized', end ='') + gtimer.end() + + # -------------------------------------------------------------------------- + # compute the integral solution + # -------------------------------------------------------------------------- + def solve(self, f, verbose=False): + + if not self.ready: + init(verbose) + + fshape = f.shape + + gtimer = Timer() + if verbose: + print( '\nSolving Poisson Eq.') + + # ---------------------------------------------------------------------- + # regular grid + if self.ptype == 'G': + + #if (self.gdims - fshape).any(): + if self.gdims != fshape: + print( self.gdims, fshape) + raise ValueError("Shape of function should match shape of grid") + + # convolution in frequency domain + if self.stype == 'F': + p = signal.fftconvolve(f, self.G, mode='same') + numpy.multiply(p, numpy.prod(self.gdx), p) + + # convolution in spatial domain + elif self.stype == 'S': + raise SyntaxError('Spatial solver not suggested for structured grids') + #p = (self.G).dot(f.reshape(-1)).reshape(fshape) + + # ---------------------------------------------------------------------- + # unstructured points + elif self.ptype == 'P': + + if (self.points.shape[0] != fshape[0]) or (1 != len(fshape)): + raise ValueError("Shape of function should be (N,1) with N as the number of points") + + # convolution in spatial domain + # Dec 13, 2017 -- pre scaling works for unstructured grids! + if self.stype == 'S': + p = numpy.multiply(f, self.pvolumes) + numpy.dot(self.G, p, p) + #numpy.multiply(p, self.pvolumes, p) + + elif self.stype == 'F': + raise SyntaxError('Frequncy solver not supported for unstructured points') + + # ---------------------------------------------------------------------- + if verbose: + print( 'Poisson solver finished') + gtimer.end() + + return p + + # -------------------------------------------------------------------------- + # GPU-accelerated solve using CuPy + # -------------------------------------------------------------------------- + def solve_gpu(self, f, verbose=False): + """ + GPU-accelerated Poisson solver using CuPy. + Falls back to CPU if CuPy is not available. + + Args: + f: Input field (numpy array) + verbose: Print timing information + + Returns: + p: Solution (numpy array on CPU) + """ + if not CUPY_AVAILABLE: + if verbose: + print("CuPy not available, falling back to CPU solver") + return self.solve(f, verbose) + + if not self.ready: + self.prepare(verbose) + + fshape = f.shape + + gtimer = Timer() + if verbose: + print('\nSolving Poisson Eq. on GPU') + + # ---------------------------------------------------------------------- + # regular grid + if self.ptype == 'G': + if self.gdims != fshape: + print(self.gdims, fshape) + raise ValueError("Shape of function should match shape of grid") + + # convolution in frequency domain using GPU + if self.stype == 'F': + # Initialize GPU cache if needed + if self._gpu_cache is None: + if verbose: + print(' - Transferring Green\'s function to GPU...') + self._gpu_cache = { + 'G_gpu': cp.asarray(self.G, dtype=cp.float32), + 'gdx_prod': numpy.prod(self.gdx) + } + + # Transfer input to GPU + f_gpu = cp.asarray(f, dtype=cp.float32) + + # Perform FFT convolution on GPU + # CuPy's fftconvolve is GPU-accelerated + p_gpu = cp_signal.fftconvolve(f_gpu, self._gpu_cache['G_gpu'], mode='same') + + # Scale by grid spacing (on GPU) + p_gpu *= self._gpu_cache['gdx_prod'] + + # Transfer result back to CPU + p = cp.asnumpy(p_gpu) + + elif self.stype == 'S': + raise SyntaxError('Spatial solver not suggested for structured grids') + + # ---------------------------------------------------------------------- + # unstructured points - not optimized for GPU + elif self.ptype == 'P': + if verbose: + print(' - GPU solver not optimized for unstructured points, using CPU') + return self.solve(f, verbose) + + # ---------------------------------------------------------------------- + if verbose: + print('Poisson solver (GPU) finished') + gtimer.end() + + return p + + def solve_gpu_batch(self, f_list, verbose=False): + """ + Batch GPU-accelerated Poisson solver for multiple inputs. + Solves multiple Poisson equations in a single GPU call. + + Args: + f_list: List of input fields (numpy arrays) + verbose: Print timing information + + Returns: + List of solutions (numpy arrays on CPU) + """ + if not CUPY_AVAILABLE: + if verbose: + print("CuPy not available, falling back to CPU solver") + return [self.solve(f, verbose) for f in f_list] + + if not self.ready: + self.prepare(verbose) + + gtimer = Timer() + if verbose: + print(f'\nSolving {len(f_list)} Poisson Eq. on GPU (batched)') + + # Verify all inputs have same shape + fshape = f_list[0].shape + for f in f_list: + if f.shape != fshape: + raise ValueError("All input fields must have the same shape for batch processing") + + # ---------------------------------------------------------------------- + # regular grid + if self.ptype == 'G': + if self.gdims != fshape: + raise ValueError("Shape of function should match shape of grid") + + # convolution in frequency domain using GPU + if self.stype == 'F': + # Initialize GPU cache if needed + if self._gpu_cache is None: + if verbose: + print(' - Transferring Green\'s function to GPU...') + self._gpu_cache = { + 'G_gpu': cp.asarray(self.G, dtype=cp.float32), + 'gdx_prod': numpy.prod(self.gdx) + } + + results = [] + + # Process all inputs in batch + for i, f in enumerate(f_list): + # Transfer input to GPU + f_gpu = cp.asarray(f, dtype=cp.float32) + + # Perform FFT convolution on GPU + p_gpu = cp_signal.fftconvolve(f_gpu, self._gpu_cache['G_gpu'], mode='same') + + # Scale by grid spacing (on GPU) + p_gpu *= self._gpu_cache['gdx_prod'] + + # Transfer result back to CPU + results.append(cp.asnumpy(p_gpu)) + + if verbose: + print(f' - Solved {i+1}/{len(f_list)}') + + if verbose: + print('Poisson solver (GPU batch) finished') + gtimer.end() + + return results + + elif self.stype == 'S': + raise SyntaxError('Spatial solver not suggested for structured grids') + + # ---------------------------------------------------------------------- + # unstructured points - not optimized for GPU + elif self.ptype == 'P': + if verbose: + print(' - GPU solver not optimized for unstructured points, using CPU') + return [self.solve(f, verbose) for f in f_list] + + return results + + def clear_gpu_cache(self): + """Clear GPU cache to free GPU memory""" + if self._gpu_cache is not None: + self._gpu_cache = None + if CUPY_AVAILABLE: + cp.get_default_memory_pool().free_all_blocks() + + \ No newline at end of file diff --git a/src/orisys/sensor.py b/src/orisys/sensor.py new file mode 100644 index 0000000..e9e033b --- /dev/null +++ b/src/orisys/sensor.py @@ -0,0 +1,486 @@ +""" + Stch Calibration OK +""" +import os +import numpy as np +from scipy import ndimage +import cv2 +from .Stitcher import Stitcher +from .tracker import Tracker +from .nHHD import * +import time +from scipy.interpolate import griddata +from enum import Enum, auto +from typing import Optional, Tuple, Union, Any + +class Sensor: + """ + Sensor helper that can decompose optical flow via Fourier methods. + Stores the decomposed components and global norms as attributes after compute(). + """ + def __init__(self, vid_src, isstitch=False, verbose=True, cuda=True): + """ + Initialize Sensor with video source and configuration. + + Args: + vid_src: Video source (int for camera ID, str for file path, None for default camera) + isstitch: Whether to use stitching mode for multi-tile sensor (default: False) + verbose: Whether to print initialization logs (default: True) + cuda: Whether to use CUDA acceleration for optical flow & decomposition (default: True) + """ + try: + import cupy as cp + import cupyx.scipy.signal as cp_signal + self.CUPY_AVAILABLE = True + except ImportError: + self.CUPY_AVAILABLE = False + + # Initialize settings + if vid_src is not None: + vid_src = vid_src + else: + print("User must specify a video source.") + self.vid_src, self.isstitch, self.cuda, self.verbose = vid_src, isstitch, cuda, verbose + self.index = np.array([1,2,3,6,7,8,11,12,13]) + + # Initialize components + self.__stitcher = Stitcher(isstitch=isstitch, index=self.index) + self.tracker = Tracker(adaptive=True, cuda=cuda) + self.hhd = None + + if self.verbose: + print("Components initialized") + + # Setup video capture + self.cap = cv2.VideoCapture(vid_src) + self.cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('M', 'J', 'P', 'G')) + self.cap.set(cv2.CAP_PROP_FPS, 30) + self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920) + self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080) + + if not self.cap.isOpened(): + raise RuntimeError("Could not open video source") + + # Wait for first valid frame + if self.verbose: + print("Sensor connecting to video source...") + frame = None + while frame is None: + ret, frame = self.cap.read() + if not ret: + time.sleep(1) + if self.verbose: + print("Video source connected.") + + # Initialize and calibrate + self.__find_stitch_boxes(frame, show=False) + self.__get_tiles(frame) + self.stitch_cal() + if self.verbose: + print("Sensor initialized and calibrated.") + + # Initialize state variables + self.stitch_valid = False + self.n_boxes = None + self.stitch_calibration = [] + self.img = self.flow = self.normal = self.shear = self.force = None + self.fnormal=self.fshearx=self.fsheary=self.ftor=0.0 + self.imgupdate = self.vupdate = False + self.pos_default = [(260, 56), (577, 62), (897, 69), (1214, 75), (1530, 81), (256, 391), (570, 397), (889, 403), (1208, 409), (1523, 416), (248, 724), (563, 730), (882, 738), (1201, 743), (1516, 751)] + + # Logging state + self.last_log_time = time.time() + self.fps = 0 + + if self.verbose: + print("Settings:") + print(f" Video source: {vid_src}") + print(f" Stitch mode: {isstitch}") + print(f" CUDA acceleration: {cuda}") + print(f" Cupy available: {self.CUPY_AVAILABLE}") + print(f" OpenCV CUDA devices: {cv2.cuda.getCudaEnabledDeviceCount()}") + + class info(Enum): + VRAW = auto() + VNORMAL = auto() + VSHEAR = auto() + FPS = auto() + TIMESTAMP = auto() + FNORMAL = auto() + FSHEARX = auto() + FSHEARY = auto() + + + def get_img(self): + """ + Capture frame from video source, convert to grayscale, and perform stitching. + + Returns: + np.ndarray: Stitched grayscale image (contiguous array) or None if capture fails + """ + ret, frame = self.cap.read() + if not ret: + print("Failed to get_img from video source.") + self.cap.release() + exit(1) + return None + + gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + self.__stitcher.get_stitch_unit(gray_frame) + self.__get_tiles(gray_frame) + img = np.ascontiguousarray(self.__stitcher.stitch_rt_optimized()) + self.img = cv2.resize(img, (400, 400), interpolation=cv2.INTER_CUBIC) + self.imgupdate = True + return self.img + + + + def compute_deformation(self): + """ + Track optical flow and decompose into force field. + + Returns: + tuple: (flow, force) where: + - flow: Optical flow field (2D vector field) + - force: Decomposed force components from nHHD, ([normal, shear_x, shear_y, torque]). Note: torque is experimental. + + """ + + flow = self.tracker.track(self.img) + + if hasattr(flow, 'download'): + flow = flow.download() + + if self.hhd is None: + self.hhd = nHHD(grid=(flow.shape[0], flow.shape[1]), spacings=(18, 18)) + + self.hhd.decompose(flow) + self.imgupdate = False + self.vupdate = True + self.flow = flow + self.normal = self.hhd.get_normal() + self.shear = self.hhd.get_shear() + flag, [self.fnormal,self.fshearx,self.fsheary,self.ftor] = self.hhd.get_force(flow) + + self.fps = 1/(time.time() - self.last_log_time) + self.last_log_time = time.time() + + return self.flow + + def read_info(self, *args: info) -> Tuple: + """ + Get sensor data according to specified info types. + + Args: + *args: Variable number of info enum values specifying desired data + + Returns: + Tuple: Data in the order specified by args. Each element corresponds to: + - VRAW: Raw optical flow field (np.ndarray) + - VNORMAL: Normal component of flow (np.ndarray) + - VSHEAR: Shear component of flow (np.ndarray) + - FNORMAL: Normal force magnitude (float) + - FSHEAR: Shear force magnitude (float) + - FPS: Current frames per second (float) + - TIMESTAMP: Current timestamp string (str) + + Example: + normal, shear, fps = sensor.read_info(sensor.info.VNORMAL, sensor.info.VSHEAR, sensor.info.FPS) + + Note: + Must call compute_deformation() before reading flow/force data + """ + if not self.vupdate: + print("Warning: Update field first via compute_deformation() before reading flow/force info.") + + results = [] + for arg in args: + if not isinstance(arg, self.info): + print(f"Warning: Invalid argument type {type(arg)}, skipping") + continue + + if arg == self.info.VRAW: + results.append(self.flow if self.flow is not None else np.array([])) + elif arg == self.info.VNORMAL: + results.append(self.normal if self.normal is not None else np.array([])) + elif arg == self.info.VSHEAR: + results.append(self.shear if self.shear is not None else np.array([])) + elif arg == self.info.FNORMAL: + results.append(self.fnormal) + elif arg == self.info.FSHEARX: + results.append(self.fshearx) + elif arg == self.info.FSHEARY: + results.append(self.fsheary) + elif arg == self.info.FPS: + results.append(self.fps) + elif arg == self.info.TIMESTAMP: + results.append(time.strftime('%H:%M:%S')) + + return tuple(results) if results else () + + def disconnect(self): + """ + Release video capture resources. + """ + if self.cap.isOpened(): + self.cap.release() + if self.verbose: + print("Sensor disconnected.") + cv2.destroyAllWindows() + + def __get_tiles(self, img_src): + """ + Extract individual tiles from source image for stitching. + + Args: + img_src: Source image (grayscale) containing multiple vision tiles + + Returns: + bool: True (always succeeds) + """ + self.__stitcher.get_stitch_unit(img_src) + self.__stitcher.extract_tiles() + return True + + def __find_stitch_boxes(self, img_src, show=False): + """ + Detect vision tile boxes in the frame, waiting for camera stabilization. + + Args: + img_src: Initial source image (not actively used, boxes detected from live capture) + show: Whether to display detected boxes visually (default: False) + + Returns: + int: Number of boxes detected (should be 15 for valid stitching) + """ + n_boxes, v_mean0, timeout = 0, 0, 10 + start_time = cv2.getTickCount() + + # print("Waiting for camera stabilization...") + while n_boxes < 15: + ret, frame = self.cap.read() + v_mean = np.sum(cv2.mean(frame)) + + if abs(v_mean - v_mean0) < 5: + n_boxes = self.__stitcher.find_stitch_boxes(frame, show=show) + + if (cv2.getTickCount() - start_time) / cv2.getTickFrequency() > timeout: + print("Timeout for finding valid vision units.") + self.isstitch = False + self.__stitcher.isstitch = False + break + v_mean0 = v_mean + + # print("Camera stabilized.") + # print("Checking validabity for stitching...") + self.n_boxes = n_boxes + self.stitch_valid = self.isstitch and n_boxes == 15 + + + if self.isstitch: + print("Sensor is valid for stithcing." if self.stitch_valid else "Sensor not valid to stitching, switching to non-stitch mode") + else: + print("Using non-stitch mode.") + + return n_boxes + + + + def stitch_cal(self): + """ + Load or create stitch calibration for aligning multiple tiles. + + Returns: + np.ndarray: Stitched image after calibration + + Note: + - Loads calibration from ./config/cal.npy if exists + - Creates new calibration and saves to ./config/cal.npy if not found + - Calibration contains transformation parameters for tile alignment + """ + cal_path = "./config/cal.npy" + + if os.path.exists(cal_path): + print("Loading existing calibration from", cal_path) + self.stitch_calibration = np.load(cal_path, allow_pickle=True) + self.__stitcher.stitch_calibration = self.stitch_calibration + img_stitched_height = self.__stitcher.stitch_rt_optimized() + else: + print("Calibration file not found, creating new calibration...") + img_stitched_height, self.stitch_calibration = self.__stitcher.stitch_cal() + os.makedirs("./config", exist_ok=True) + np.save(cal_path, self.stitch_calibration) + print("Calibration saved to", cal_path) + + # print("Image stitched with shape:", img_stitched_height.shape) + return img_stitched_height + + + def draw_arrows(self, info_type: info,fps=True, threshold=5, grid_spacing=40, arrow_scale=1.0) -> np.ndarray: + """ + Draw colored optical flow arrows on sensor image based on flow magnitude. + + Args: + threshold: Minimum flow magnitude to display arrow (default: 10.0) + grid_spacing: Spacing between arrows in pixels (default: 20) + arrow_scale: Scale factor for arrow length (default: 3.0) + + Returns: + np.ndarray: 400x400 BGR image with colored arrows (JET colormap) + + """ + # Create working copies to avoid modifying originals + image = self.img.copy() + if info_type is None: + print("Flow field type not specified, defaulting to show raw vector field.") + optical_flow = self.flow.copy() + elif info_type == self.info.VRAW: + optical_flow = self.flow.copy() + elif info_type == self.info.VNORMAL: + optical_flow = self.normal.copy() + elif info_type == self.info.VSHEAR: + optical_flow = self.shear.copy() + + # Convert grayscale to BGR to enable colored arrow drawing + if len(image.shape) == 2 or image.shape[2] == 1: + image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR) + + # Calculate scaling factors between image and flow dimensions + img_height, img_width = image.shape[:2] + flow_height, flow_width = optical_flow.shape[:2] + scale_x, scale_y = img_width / flow_width, img_height / flow_height + + # Create sampling grid for flow field (used for interpolation source points) + sample_step = 19 # Spacing between sample points + flow_start = np.stack(np.meshgrid(range(0, flow_width, sample_step), range(0, flow_height, sample_step)), 2) + flow_end = (optical_flow[flow_start[:, :, 1], flow_start[:, :, 0], :] * 2.0 + flow_start).astype(np.int32) + + # Create regular grid for arrow placement in image coordinates + grid_x, grid_y = np.mgrid[grid_spacing//2:flow_height:grid_spacing, grid_spacing//2:flow_width:grid_spacing] + x_axis = (grid_y.reshape(-1) * scale_x).astype(np.int64) # Scale to image width + y_axis = (grid_x.reshape(-1) * scale_y).astype(np.int64) # Scale to image height + + # Interpolate flow vectors from sample grid to regular arrow grid using cubic interpolation + grid_vector = griddata( + flow_start.reshape(-1, 2), + (flow_end - flow_start).reshape(-1, 2), # Flow from start to end (original to new position) + (grid_y, grid_x), method='cubic', fill_value=0 + ) + grid_vector[np.isnan(grid_vector)] = 0 # Replace NaN with zero for stability + grid_flat_scaled = grid_vector.reshape(-1, 2) * np.array([scale_x, scale_y]) + + # Compute arrow endpoints and ensure they stay within image bounds + end_x = (grid_flat_scaled[:, 0] / arrow_scale + x_axis).astype(np.int64) + end_y = (grid_flat_scaled[:, 1] / arrow_scale + y_axis).astype(np.int64) + valid_mask = (y_axis >= 0) & (y_axis < img_height) & (x_axis >= 0) & (x_axis < img_width) + valid_mask &= (end_x >= 0) & (end_x < img_width) & (end_y >= 0) & (end_y < img_height) + + # Filter arrows by magnitude threshold and compute colors using JET colormap + magnitudes = np.linalg.norm(grid_flat_scaled, axis=1) + valid_mask &= (magnitudes >= 0) # Only show arrows above threshold + valid_indices = np.where(valid_mask)[0] + mag_range = magnitudes.max() - magnitudes.min() + # Normalize magnitudes to 0-255 range for colormap application, but set below-threshold values to 0 (blue) + norm_magnitudes = ((magnitudes - magnitudes.min()) / mag_range * 255.0).astype(np.uint8) if mag_range > 0 else np.zeros_like(magnitudes, dtype=np.uint8) + norm_magnitudes[magnitudes < threshold] = 0 # Keep lowest color (blue) for below-threshold magnitudes + colors_array = cv2.applyColorMap(norm_magnitudes.reshape(-1, 1), cv2.COLORMAP_JET) # JET: blue (low) -> red (high) + + # Draw arrows at each valid grid point with magnitude-based coloring + for i in valid_indices: + color = tuple(map(int, colors_array[i, 0])) + # Scale arrow length and thickness based on threshold + if magnitudes[i] < threshold: + # Below threshold: draw as small dot (zero-length arrow with larger tip) + cv2.circle(image, (x_axis[i], y_axis[i]), radius=1, color=color, thickness=-1) + else: + # Above threshold: draw full arrow with thickness proportional to magnitude + # Arrow rooted at original position (x_axis, y_axis), head points to new position (end_x, end_y) + thickness = max(1, int(2 * magnitudes[i] / magnitudes.max())) if magnitudes.max() > 0 else 2 + cv2.arrowedLine(image, (x_axis[i], y_axis[i]), (end_x[i], end_y[i]), color, thickness=thickness, tipLength=0.3) + out_img = cv2.resize(image, (400, 400), interpolation=cv2.INTER_CUBIC) + # if fps: + # out_img = self.draw_fps(image=out_img) + + return out_img + + def draw_magnitude_map(self, info_type: info = None, threshold=3.0, colormap=cv2.COLORMAP_JET) -> np.ndarray: + """ + Draw color map of pointwise magnitude of velocity field. + + Args: + info_type: Type of flow field to visualize (VRAW, VNORMAL, VSHEAR, or None for total) + threshold: Minimum magnitude to display (below threshold shows as zero/blue) + colormap: OpenCV colormap to use (default: COLORMAP_JET) + + Returns: + np.ndarray: 400x400 BGR image with colored magnitude map + """ + # Get the appropriate flow field + if info_type is None or info_type == self.info.VRAW: + flow_field = self.flow.copy() if self.flow is not None else None + elif info_type == self.info.VNORMAL: + flow_field = self.normal.copy() if self.normal is not None else None + elif info_type == self.info.VSHEAR: + flow_field = self.shear.copy() if self.shear is not None else None + else: + # For combined normal + shear magnitude + if self.normal is not None and self.shear is not None: + flow_field = self.normal + self.shear + else: + flow_field = None + + if flow_field is None: + # Return blank image if no flow data + return np.zeros((400, 400, 3), dtype=np.uint8) + + # Compute magnitude at each point + magnitude = np.sqrt(flow_field[:, :, 0]**2 + flow_field[:, :, 1]**2) + + # Smooth by downsampling and interpolating back + downsample_factor = 10 + h, w = magnitude.shape + magnitude_downsampled = magnitude[::downsample_factor, ::downsample_factor] + magnitude_smoothed = cv2.resize(magnitude_downsampled, (w, h), interpolation=cv2.INTER_CUBIC) + + # Apply threshold - set below-threshold values to zero + magnitude_thresholded = magnitude_smoothed.copy() + magnitude_thresholded[magnitude_smoothed < threshold] = 0 + + # Normalize to 0-255 range + mag_min, mag_max = magnitude_thresholded.min(), magnitude_thresholded.max() + if mag_max > mag_min: + magnitude_norm = ((magnitude_thresholded - mag_min) / (mag_max - mag_min) * 255).astype(np.uint8) + else: + magnitude_norm = np.zeros_like(magnitude_thresholded, dtype=np.uint8) + + # Apply colormap + magnitude_colored = cv2.applyColorMap(magnitude_norm, colormap) + + # Resize to output size + out_img = cv2.resize(magnitude_colored, (400, 400), interpolation=cv2.INTER_CUBIC) + + return out_img + + def draw_fps(self, image=None): + """ + Draw FPS counter on the top left corner of the image. + """ + font_scale=0.5 + thickness=2 + color=(0, 255, 0) + image = image.copy() + fps = self.fps + + # Draw FPS text + fps_text = f"FPS: {fps:.1f}" + position = (10, 30) # Top left corner with margin + font = cv2.FONT_HERSHEY_SIMPLEX + + # Draw FPS text + cv2.putText(image, fps_text, position, font, font_scale, color, thickness, cv2.LINE_AA) + + return image + + + + diff --git a/src/orisys/timer.py b/src/orisys/timer.py new file mode 100644 index 0000000..b24f2df --- /dev/null +++ b/src/orisys/timer.py @@ -0,0 +1,59 @@ +''' +Copyright (c) 2015, Harsh Bhatia (bhatia4@llnl.gov) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' + +import numpy +import timeit + +class Timer(object): + + def display(self): + + tseconds = self.etime - self.stime + + print(' [[ elapsed time:', end = "") + if tseconds < numpy.power(10.,-6.): + print("%.3f micro-sec." % (tseconds*numpy.power(10,6)),end = "") + + elif tseconds < numpy.power(10.,-3.): + print("%.3f milli-sec." % (tseconds*numpy.power(10.,3.)),end = "") + + elif tseconds < 60.0: + print("%.3f sec." % (tseconds),end = "") + + else: + m = int(tseconds/ 60.0) + print("%d min. %.3f sec." % (m, (tseconds - 60*m)),end = "") + + print(']]') + + def start(self): + self.stime = timeit.default_timer() + + def end(self, print_time=True): + self.etime = timeit.default_timer() + + if print_time: + self.display() + + def __init__(self): + self.start() diff --git a/src/orisys/tracker.py b/src/orisys/tracker.py new file mode 100644 index 0000000..85a7f3a --- /dev/null +++ b/src/orisys/tracker.py @@ -0,0 +1,235 @@ +import cv2 +import numpy as np +from .nHHD import * +# import src.utils as utils + + + +class Tracker: + def __init__(self, + adaptive, + cuda, + lower_threshold=12.0, + upper_threshold=18.0, + loop_closure_interval=1, + dis_preset='medium'): + # Check if OpenCV is built with CUDA support + if cuda and not cv2.cuda.getCudaEnabledDeviceCount(): + # print("Warning: CUDA requested but OpenCV not built with CUDA support or no CUDA device found. Falling back to CPU.") + cuda = False + + self.cuda = cuda + self.__loop_closure_interval = loop_closure_interval + self.__frame_count = 0 + + if not cuda: + # DIS method - optimize for speed + if dis_preset == 'ultrafast': + preset = cv2.DISOPTICAL_FLOW_PRESET_ULTRAFAST + elif dis_preset == 'fast': + preset = cv2.DISOPTICAL_FLOW_PRESET_FAST + else: + preset = cv2.DISOPTICAL_FLOW_PRESET_MEDIUM + + self.__tracking_inst = cv2.DISOpticalFlow_create(preset) + + + # Aggressive optimization for CPU + # self.__tracking_inst.setFinestScale(1) # Skip finest pyramid level (2x faster) + # self.__tracking_inst.setPatchSize(8) # Smaller patches (default 8) + # self.__tracking_inst.setPatchStride(4) # Larger stride = fewer patches + # self.__tracking_inst.setGradientDescentIterations(12) # Reduce iterations (default 25) + # self.__tracking_inst.setVariationalRefinementIterations(3) # Reduce refinement (default 5) + else: + # CUDA flow method with stream support + self.__tracking_inst = cv2.cuda.FarnebackOpticalFlow_create() + # Create CUDA stream for async operations + self.__cuda_stream = cv2.cuda.Stream() + + self.__fine_base_frame_queue = [] + self.__fine_flow_queue = [] + self.__prev_fine_flow = None + self.__adaptive = adaptive + self.__lower_threshold = lower_threshold # error lower than threshold will close the loop + self.__upper_threshold = upper_threshold # error greater than threshold will add new reference frame + + + def track(self, frame): + """Main tracking function that dispatches to CUDA or CPU implementation""" + if self.cuda: + return self.track_cuda(frame) + else: + return self.track_cpu(frame) + + def track_cuda(self, frame): + """CUDA-accelerated optical flow tracking""" + frame_height, frame_width = frame.shape[:2] + frame = cv2.cuda_GpuMat(frame) + + if self.__adaptive: + if not self.__fine_base_frame_queue: + self.__fine_base_frame_queue.append(frame) + # Pre-compute meshgrid for remap operations + x = np.linspace(0, frame_width - 1, frame_width, dtype='float32') + y = np.linspace(0, frame_height - 1, frame_height, dtype='float32') + self.map = np.array(np.meshgrid(x, y)).transpose((1, 2, 0)) + + cuMat = cv2.cuda_GpuMat() + cuMat.upload(self.map) + self.map = cuMat + self.__fine_flow_queue.append( + cv2.cuda_GpuMat(frame.size(), cv2.CV_32FC2, (0.0, 0.0))) + self.__prev_fine_flow = cv2.cuda_GpuMat( + frame.size(), cv2.CV_32FC2, (0.0, 0.0)) + return self.__fine_flow_queue[-1] + else: + self.__frame_count += 1 + + # Only check loop closure periodically (expensive operation) + if self.__frame_count % self.__loop_closure_interval == 0: + self.__checkLoopClosure(frame) + + # Use CUDA stream for async optical flow computation + self.__prev_fine_flow = self.__tracking_inst.calc( + self.__fine_base_frame_queue[-1], frame, + self.__prev_fine_flow, self.__cuda_stream) + + final_flow = cv2.cuda.add(self.__fine_flow_queue[-1], + self.__prev_fine_flow, + stream=self.__cuda_stream) + + # Use fine flow for error estimation + error = self.__getForwardBackwardError( + self.__fine_base_frame_queue[-1], frame, + self.__prev_fine_flow) + + if error > self.__upper_threshold: + self.__fine_base_frame_queue.append(frame) + self.__fine_flow_queue.append(final_flow) + self.__prev_fine_flow = None + return final_flow + else: + if not self.__fine_base_frame_queue: + self.__fine_base_frame_queue.append(frame) + + self.__prev_fine_flow = self.__tracking_inst.calc( + self.__fine_base_frame_queue[-1], frame, + self.__prev_fine_flow, self.__cuda_stream) + return self.__prev_fine_flow + + def track_cpu(self, frame): + """CPU-based optical flow tracking""" + frame_height, frame_width = frame.shape[:2] + + if self.__adaptive: + if not self.__fine_base_frame_queue: + self.__fine_base_frame_queue.append(frame) + # Pre-compute meshgrid for remap operations + x = np.linspace(0, frame_width - 1, frame_width, dtype='float32') + y = np.linspace(0, frame_height - 1, frame_height, dtype='float32') + self.map = np.array(np.meshgrid(x, y)).transpose((1, 2, 0)) + + # Pre-allocate with correct dtype + self.__fine_flow_queue.append( + np.zeros((frame_height, frame_width, 2), dtype=np.float32)) + self.__prev_fine_flow = np.zeros( + (frame_height, frame_width, 2), dtype=np.float32) + return self.__fine_flow_queue[-1] + else: + self.__frame_count += 1 + + # Only check loop closure periodically (expensive operation) + if self.__frame_count % self.__loop_closure_interval == 0: + self.__checkLoopClosure(frame) + + # CPU optical flow computation + self.__prev_fine_flow = self.__tracking_inst.calc( + self.__fine_base_frame_queue[-1], frame, + self.__prev_fine_flow) + + # Direct numpy addition is faster than cv2.add + final_flow = self.__fine_flow_queue[-1] + self.__prev_fine_flow + + # Use fine flow for error estimation + error = self.__getForwardBackwardError( + self.__fine_base_frame_queue[-1], frame, + self.__prev_fine_flow) + + if error > self.__upper_threshold: + self.__fine_base_frame_queue.append(frame) + self.__fine_flow_queue.append(final_flow) + self.__prev_fine_flow = np.zeros( + (frame_height, frame_width, 2), dtype=np.float32) + return final_flow + else: + if not self.__fine_base_frame_queue: + self.__fine_base_frame_queue.append(frame) + + self.__prev_fine_flow = self.__tracking_inst.calc( + self.__fine_base_frame_queue[-1], frame, + self.__prev_fine_flow) + return self.__prev_fine_flow + + def track_2dto3d(self, flow): + decompose_obj = nHHD(grid=(flow.shape[0], flow.shape[1]), spacings=(18, 18)) + flag,output = decompose_obj.get_force(flow, verbose=0) + return output + + def __getForwardBackwardError(self, I0, I1, flow): + if self.cuda: + flow_map = cv2.cuda.add(self.map, flow) + map_x, map_y = cv2.cuda.split(flow_map) + z = cv2.cuda.remap(I1, + map_x, + map_y, + interpolation=cv2.INTER_CUBIC, + borderMode=cv2.BORDER_REPLICATE) + t = I0.clone() + t = t.convertTo(rtype=cv2.CV_32FC1, dst=t) + z = z.convertTo(rtype=cv2.CV_32FC1, dst=z) + rev = cv2.cuda.absSum(cv2.cuda.subtract( + t, z))[0] / t.size()[0] / t.size()[1] + else: + # Optimized CPU path - avoid redundant type conversions + flow_map = self.map + flow + z = cv2.remap(I1, + flow_map[:, :, 0], + flow_map[:, :, 1], + interpolation=cv2.INTER_CUBIC, # INTER_LINEAR faster than INTER_CUBIC + borderMode=cv2.BORDER_REPLICATE) + # Use in-place operations when possible + if I0.dtype != np.float32: + diff = z.astype('float32') - I0.astype('float32') + else: + diff = z - I0 + rev = np.mean(np.abs(diff)) + return rev + + def __checkLoopClosure( + self, frame + ): # update (prune) the frame queue with loop closure detection + for i in range(len(self.__fine_base_frame_queue) - 2, -1, -1): + f = self.__tracking_inst.calc( + self.__fine_base_frame_queue[i], frame, None) + error = self.__getForwardBackwardError( + self.__fine_base_frame_queue[i], frame, f) + if error < self.__lower_threshold: + print("loop closed at frame ", str(i)) + self.__fine_base_frame_queue = self.__fine_base_frame_queue[: + i + + 1] + self.__fine_flow_queue = self.__fine_flow_queue[:i + 1] + return True + return False + + def reset(self): + self.__fine_base_frame_queue = [] + self.__fine_flow_queue = [] + self.__prev_fine_flow = None + self.__frame_count = 0 + self.__vpi_prev_frame = None + self.__vpi_prev_pyramid = None + + def getFrameQueueLength(self): + return len(self.__fine_base_frame_queue) + \ No newline at end of file