diff --git a/.gitignore b/.gitignore index 092d05c7..01b2ec58 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ .pio node_modules +dist +WWWData.h .vscode .DS_Store .idea \ No newline at end of file diff --git a/data/svelte/build_interface.py b/data/svelte/build_interface.py new file mode 100644 index 00000000..7571ede5 --- /dev/null +++ b/data/svelte/build_interface.py @@ -0,0 +1,168 @@ +# StarBase modified version from https://github.com/theelims/ESP32-sveltekit/blob/main/scripts/build_interface.py + +# ESP32 SvelteKit -- +# +# A simple, secure and extensible framework for IoT projects for ESP32 platforms +# with responsive Sveltekit front-end built with TailwindCSS and DaisyUI. +# https://github.com/theelims/ESP32-sveltekit +# +# Copyright (C) 2018 - 2023 rjwats +# Copyright (C) 2023 - 2024 theelims +# Copyright (C) 2023 Maxtrium B.V. [ code available under dual license ] +# Copyright (C) 2024 runeharlyk +# +# All Rights Reserved. This software may be modified and distributed under +# the terms of the LGPL v3 license. See the LICENSE file for details. + +from pathlib import Path +from shutil import copytree, rmtree, copyfileobj +from os.path import exists, getmtime +import os +import gzip +import mimetypes +import glob +from datetime import datetime + +Import("env") + +project_dir = env["PROJECT_DIR"] +buildFlags = env.ParseFlags(env["BUILD_FLAGS"]) + +interface_dir = project_dir + "/data/svelte" +output_file = project_dir + "/src/WWWData.h" +source_www_dir = interface_dir + "/src" +build_dir = interface_dir + "/dist" +filesystem_dir = project_dir + "/data/www" + + +def find_latest_timestamp_for_app(): + return max( + (getmtime(f) for f in glob.glob(f"{source_www_dir}/**/*", recursive=True)) + ) + + +def should_regenerate_output_file(): + if not flag_exists("EMBED_WWW") or not exists(output_file): + return True + last_source_change = find_latest_timestamp_for_app() + last_build = getmtime(output_file) + + print( + f"Newest file: {datetime.fromtimestamp(last_source_change)}, output file: {datetime.fromtimestamp(last_build)}" + ) + + return last_build < last_source_change + + +def gzip_file(file): + with open(file, 'rb') as f_in: + with gzip.open(file + '.gz', 'wb') as f_out: + copyfileobj(f_in, f_out) + os.remove(file) + + +def flag_exists(flag): + for define in buildFlags.get("CPPDEFINES"): + if (define == flag or (isinstance(define, list) and define[0] == flag)): + return True + return False + + +def get_package_manager(): + if exists(os.path.join(interface_dir, "pnpm-lock.yaml")): + return "pnpm" + if exists(os.path.join(interface_dir, "yarn.lock")): + return "yarn" + if exists(os.path.join(interface_dir, "package-lock.json")): + return "npm" + + +def build_webapp(): + if package_manager := get_package_manager(): + print(f"Building interface with {package_manager}") + os.chdir(interface_dir) + env.Execute(f"{package_manager} install") + env.Execute(f"{package_manager} run build") + os.chdir("..") + else: + raise Exception( + "No lock-file found. Please install dependencies for interface (eg. npm install)" + ) + + +def embed_webapp(): + if flag_exists("EMBED_WWW"): + print("Converting interface to PROGMEM") + build_progmem() + return + add_app_to_filesystem() + + +def build_progmem(): + mimetypes.init() + with open(output_file, "w") as progmem: + progmem.write("#include \n") + progmem.write("#include \n") + + assetMap = {} + + for idx, path in enumerate(Path(build_dir).rglob("*.*")): + asset_path = path.relative_to(build_dir).as_posix() + asset_mime = ( + mimetypes.guess_type(asset_path)[0] or "application/octet-stream" + ) + print(f"Converting {asset_path}") + + asset_var = f"ESP_SVELTEKIT_DATA_{idx}" + progmem.write(f"// {asset_path}\n") + progmem.write(f"const uint8_t {asset_var}[] = {{\n\t") + file_data = gzip.compress(path.read_bytes()) + + for i, byte in enumerate(file_data): + if i and not (i % 16): + progmem.write("\n\t") + progmem.write(f"0x{byte:02X},") + + progmem.write("\n};\n\n") + assetMap[asset_path] = { + "name": asset_var, + "mime": asset_mime, + "size": len(file_data), + } + + progmem.write( + "typedef std::function RouteRegistrationHandler;\n\n" + ) + progmem.write("class WWWData {\n") + progmem.write("\tpublic:\n") + progmem.write( + "\t\tstatic void registerRoutes(RouteRegistrationHandler handler) {\n" + ) + + for asset_path, asset in assetMap.items(): + progmem.write( + f'\t\t\thandler("/{asset_path}", "{asset["mime"]}", {asset["name"]}, {asset["size"]});\n' + ) + + progmem.write("\t\t}\n") + progmem.write("};\n\n") + + +def add_app_to_filesystem(): + build_path = Path(build_dir) + www_path = Path(filesystem_dir) + if www_path.exists() and www_path.is_dir(): + rmtree(www_path) + print("Copying and compress interface to data directory") + copytree(build_path, www_path) + for current_path, _, files in os.walk(www_path): + for file in files: + gzip_file(os.path.join(current_path, file)) + print("Build LittleFS file system image and upload to ESP32") + env.Execute("pio run --target uploadfs") + + +print("running: build_interface.py") +if should_regenerate_output_file(): + build_webapp() + embed_webapp() diff --git a/data/svelte/index.html b/data/svelte/index.html new file mode 100644 index 00000000..3c941432 --- /dev/null +++ b/data/svelte/index.html @@ -0,0 +1,33 @@ + + + + + + + + Star + Vite + Svelte + + +
+ + + diff --git a/data/svelte/main.ts b/data/svelte/main.ts new file mode 100644 index 00000000..8fe1989f --- /dev/null +++ b/data/svelte/main.ts @@ -0,0 +1,8 @@ +import { mount } from 'svelte' +import App from './src/App.svelte' + +const app = mount(App, { + target: document.getElementById('app')!, +}) + +export default app diff --git a/data/svelte/package-lock.json b/data/svelte/package-lock.json new file mode 100644 index 00000000..9c50b535 --- /dev/null +++ b/data/svelte/package-lock.json @@ -0,0 +1,1274 @@ +{ + "name": "starbase-svelte", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "starbase-svelte", + "version": "0.0.0", + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "svelte-hamburgers": "latest", + "vite": "^6.0.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", + "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", + "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", + "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", + "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", + "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", + "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", + "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", + "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", + "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", + "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", + "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", + "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", + "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", + "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", + "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", + "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", + "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", + "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz", + "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", + "debug": "^4.4.0", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.15", + "vitefu": "^1.0.4" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "svelte": "^5.0.0", + "vite": "^6.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", + "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.7" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.0", + "svelte": "^5.0.0", + "vite": "^6.0.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": ">=8.9.0" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/esm-env": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.1.tgz", + "integrity": "sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/esrap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.3.2.tgz", + "integrity": "sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svelte": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.16.0.tgz", + "integrity": "sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "acorn-typescript": "^1.4.13", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^1.3.2", + "is-reference": "^3.0.3", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-hamburgers": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/svelte-hamburgers/-/svelte-hamburgers-5.0.0.tgz", + "integrity": "sha512-MMb47VCozKDgn/jtmeqw+CbI3cZmkDXd/FG3VCkReMdw2YCSOaWYLsqsXiWTWoQE/oSmw1vH/Tm5mChqlsldHQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "svelte": "^5.0.0" + } + }, + "node_modules/vite": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.6.tgz", + "integrity": "sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.4.tgz", + "integrity": "sha512-y6zEE3PQf6uu/Mt6DTJ9ih+kyJLr4XcSgHR2zUkM8SWDhuixEJxfJ6CZGMHh1Ec3vPLoEA0IHU5oWzVqw8ulow==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "dev": true, + "license": "MIT", + "peer": true + } + } +} diff --git a/data/svelte/package.json b/data/svelte/package.json new file mode 100644 index 00000000..7ed3978c --- /dev/null +++ b/data/svelte/package.json @@ -0,0 +1,16 @@ +{ + "name": "starbase-svelte", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^5.0.3", + "vite": "^6.0.5", + "svelte-hamburgers": "latest" + } +} diff --git a/data/svelte/src/App.svelte b/data/svelte/src/App.svelte new file mode 100644 index 00000000..fcdea3ad --- /dev/null +++ b/data/svelte/src/App.svelte @@ -0,0 +1,27 @@ + + + + + + + + + + + + + diff --git a/data/svelte/src/AppCounter.svelte b/data/svelte/src/AppCounter.svelte new file mode 100644 index 00000000..bb4b68a2 --- /dev/null +++ b/data/svelte/src/AppCounter.svelte @@ -0,0 +1,26 @@ + + +
+

Star + Vite + Svelte

+ +
+ +
+ +

+ Check out SvelteKit, the official Svelte app framework powered by Vite! +

+ +

+ Click on the Vite and Svelte logos to learn more (ewowi) +

+
+ + + \ No newline at end of file diff --git a/data/svelte/src/Counter.svelte b/data/svelte/src/Counter.svelte new file mode 100644 index 00000000..da25338b --- /dev/null +++ b/data/svelte/src/Counter.svelte @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/data/svelte/src/Menu.svelte b/data/svelte/src/Menu.svelte new file mode 100644 index 00000000..117cfc75 --- /dev/null +++ b/data/svelte/src/Menu.svelte @@ -0,0 +1,40 @@ + + +{#if open} +
+ {#each ['Home', 'Example', 'About', 'Contact'] as link, i} +

+ {link} +

+ {/each} +
+ +
+{/if} + + diff --git a/data/svelte/vite.config.js b/data/svelte/vite.config.js new file mode 100644 index 00000000..d32eba1d --- /dev/null +++ b/data/svelte/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [svelte()], +}) diff --git a/misc/misc.txt b/misc/misc.txt index 07f62573..a52b7bbd 100644 --- a/misc/misc.txt +++ b/misc/misc.txt @@ -22,6 +22,7 @@ cp ./tools/* ../../ewowi/StarBase/tools cp ./misc/* ../../ewowi/StarBase/misc cp ./data/* ../../ewowi/StarBase/data cp ./data/newui/* ../../ewowi/StarBase/data/newui +cp ./data/svelte/* ../../ewowi/StarBase/data/svelte cp ./platformio.ini ../../ewowi/StarBase cp ./src/* ../../ewowi/StarBase/src diff --git a/platformio.ini b/platformio.ini index 4ba6b8b9..7b1a7481 100644 --- a/platformio.ini +++ b/platformio.ini @@ -126,6 +126,7 @@ build_flags = -mtext-section-literals ;otherwise [UserModLive::setup()]+0xa17): dangerous relocation: l32r: literal target out of range (try using text-section-literals) ;for StarLight, first only for s2, now for all due to something in UserModLive.Setup... ${ESPAsyncWebServer.build_flags} ;alternatively PsychicHttp + -D EMBED_WWW ;embed the svelte web interface in the firmware ;optional: -D STARBASE_ETHERNET ; +41.876 bytes (2.2%) ${STARBASE_USERMOD_E131.build_flags} ;+11.416 bytes 0.6% @@ -196,6 +197,7 @@ lib_deps = ${STARLIGHT.lib_deps} extra_scripts = pre:tools/webbundle.py + pre:data/svelte/build_interface.py post:tools/post_build.py diff --git a/src/Sys/SysModWeb.cpp b/src/Sys/SysModWeb.cpp index 418f7b50..4c05c6e7 100644 --- a/src/Sys/SysModWeb.cpp +++ b/src/Sys/SysModWeb.cpp @@ -25,6 +25,7 @@ #include "html_ui.h" #include "html_newui.h" +#include "WWWData.h" #include "AsyncJson.h" @@ -193,6 +194,33 @@ void SysModWeb::connectedChanged() { server.on("/", HTTP_GET, [this](WebRequest *request) {serveIndex(request);}); server.on("/newui", HTTP_GET, [this](WebRequest *request) {serveNewUI(request);}); + //StarBase modified version from https://github.com/theelims/ESP32-sveltekit/blob/main/lib/framework/ESP32SvelteKit.cpp + + #ifdef EMBED_WWW + // Serve static resources from PROGMEM + ESP_LOGV("ESP32SvelteKit", "Registering routes from PROGMEM static resources"); + WWWData::registerRoutes( + [this](const String &uri, const String &contentType, const uint8_t *content, size_t len) + { + server.on(uri.c_str(), HTTP_GET, [this, content, len, contentType](WebRequest *request) { + WebResponse *response; + response = request->beginResponse_P(200, contentType.c_str(), content, len); + response->addHeader("Content-Encoding","gzip"); + // response.addHeader("Cache-Control", "public, immutable, max-age=31536000"); //from svelte + // setStaticContentCacheHeaders(response); + request->send(response); + }); + + // Set default end-point for all non matching requests + // this is easier than using webServer.onNotFound() + // if (uri.equals("/index.html")) + // { + // _server->defaultEndpoint->setHandler(handler); + // } + }); + + #endif + //serve json calls server.on("/json", HTTP_GET, [this](WebRequest *request) {serveJson(request);}); diff --git a/src/html_newui.h b/src/html_newui.h index e69de29b..a08a5f1a 100644 --- a/src/html_newui.h +++ b/src/html_newui.h @@ -0,0 +1,619 @@ +<<<<<<< HEAD +======= +/* + * Binary array for the Web UI. + * gzip is used for smaller size and improved speeds. + * + * Please see https://mm.kno.wled.ge/advanced/custom-features/#changing-web-ui + * to find out how to easily modify the web UI source! + */ + +// Autogenerated from data/newui/index.htm, do not edit!! +const uint16_t PAGE_newui_L = 9657; +const uint8_t PAGE_newui[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xed, 0x7d, 0xd9, 0x76, 0xdb, 0x48, + 0xd3, 0xd8, 0xbd, 0x9e, 0x02, 0xc6, 0xcc, 0x67, 0x11, 0x43, 0x10, 0x04, 0x57, 0x49, 0xa4, 0x20, + 0x7f, 0x94, 0x2c, 0xdb, 0xf2, 0x22, 0x6b, 0xb4, 0xd8, 0x1e, 0x3b, 0x3e, 0xa3, 0x26, 0xd1, 0x24, + 0x61, 0x81, 0x00, 0x07, 0x00, 0x45, 0x51, 0x1c, 0xbc, 0x41, 0xae, 0x72, 0x72, 0x91, 0xbb, 0xff, + 0x3a, 0x27, 0xef, 0x90, 0x8b, 0x3c, 0x4a, 0x9e, 0xe0, 0x7f, 0x84, 0x54, 0xf5, 0x82, 0x85, 0x84, + 0x16, 0x7b, 0xe6, 0x3f, 0xc9, 0x77, 0x4e, 0xbc, 0x90, 0x40, 0xf5, 0x56, 0x5d, 0x55, 0x5d, 0x4b, + 0x6f, 0x54, 0x76, 0x9f, 0x3c, 0x7f, 0x7f, 0x70, 0xfe, 0xdb, 0xc9, 0xa1, 0x32, 0x8e, 0x26, 0xee, + 0x9e, 0xb2, 0x2b, 0xbf, 0x28, 0xb1, 0xe1, 0x6b, 0x42, 0x23, 0xa2, 0x0c, 0xc6, 0x24, 0x08, 0x69, + 0x64, 0xa9, 0xb3, 0x68, 0x58, 0xd9, 0x56, 0x13, 0xb0, 0xef, 0x45, 0xd4, 0x03, 0xf0, 0x82, 0x86, + 0xaa, 0xb2, 0xe1, 0x91, 0x09, 0xb5, 0x54, 0x32, 0x9d, 0xba, 0xb4, 0x32, 0xf1, 0xfb, 0x0e, 0x7c, + 0xcd, 0x69, 0xbf, 0x02, 0x80, 0xca, 0x80, 0x4c, 0x49, 0xdf, 0xa5, 0x49, 0xc9, 0x8d, 0xa4, 0xe8, + 0xdc, 0xb1, 0xa3, 0xb1, 0x65, 0xd3, 0x6b, 0x67, 0x00, 0xd9, 0xf1, 0x45, 0x77, 0x3c, 0x27, 0x72, + 0x88, 0x5b, 0x09, 0x07, 0xc4, 0xa5, 0x56, 0x4d, 0x55, 0x78, 0xc5, 0xd7, 0x0e, 0x9d, 0x4f, 0xfd, + 0x20, 0x4a, 0x2b, 0x11, 0x0d, 0xce, 0xa2, 0xb1, 0x1f, 0xa8, 0x29, 0x36, 0xef, 0x7c, 0xdf, 0x7b, + 0xe7, 0xdb, 0x33, 0x97, 0x86, 0x0a, 0xf1, 0x6c, 0xc5, 0x89, 0x42, 0x96, 0x18, 0x38, 0xfd, 0x59, + 0xe4, 0x07, 0x21, 0x56, 0xe0, 0x3a, 0xde, 0x95, 0x12, 0x50, 0xd7, 0x52, 0x1d, 0x48, 0x02, 0xe4, + 0xc7, 0x01, 0x1d, 0x5a, 0xaa, 0x4d, 0x22, 0xd2, 0x71, 0x26, 0x64, 0x44, 0xab, 0x53, 0x6f, 0xd4, + 0xed, 0x93, 0x90, 0xb6, 0x9b, 0xba, 0xf3, 0x61, 0xff, 0xfd, 0xe9, 0xdc, 0x7c, 0xf3, 0x72, 0xe4, + 0xf7, 0xe0, 0xcf, 0xf1, 0xd9, 0xc5, 0xf8, 0xf0, 0x62, 0x04, 0x4f, 0xfb, 0xf8, 0xda, 0xfb, 0xf5, + 0xa0, 0xf7, 0x1b, 0x7e, 0x0f, 0xb7, 0xab, 0x3b, 0x63, 0x06, 0xf9, 0x74, 0x7c, 0x76, 0x6a, 0x1e, + 0xf5, 0x82, 0xb0, 0x39, 0x68, 0xff, 0x0a, 0xef, 0x87, 0xa7, 0xee, 0xc7, 0x43, 0x77, 0x72, 0x7e, + 0x61, 0xf6, 0xde, 0x60, 0xb9, 0x1e, 0x7c, 0xfc, 0x66, 0x4f, 0xa1, 0x68, 0x4f, 0xd6, 0xf2, 0x92, + 0xc1, 0xe1, 0x4f, 0x1b, 0xdf, 0xdf, 0x09, 0xf8, 0x61, 0xaf, 0xf7, 0xa6, 0x77, 0x90, 0xcd, 0x77, + 0xf8, 0xa6, 0xf7, 0x3c, 0xf7, 0xce, 0x4b, 0x99, 0x1f, 0x3e, 0xbd, 0x5a, 0x20, 0xac, 0x7e, 0xe8, + 0x1e, 0xfe, 0xfa, 0xe1, 0xd7, 0xe6, 0xe1, 0x6f, 0x1f, 0xce, 0xce, 0x2f, 0xa2, 0xfe, 0xc5, 0x69, + 0x6f, 0x67, 0xfb, 0xe6, 0xcd, 0xb9, 0xfb, 0x72, 0xff, 0xe2, 0xf6, 0xf0, 0xf3, 0x9b, 0x17, 0x17, + 0xaf, 0xf6, 0xdd, 0xc1, 0x07, 0xe7, 0xc5, 0xbe, 0x7d, 0x76, 0xe0, 0xbe, 0x26, 0x67, 0x57, 0xaf, + 0x1b, 0x9f, 0x68, 0x70, 0x10, 0x9d, 0x5f, 0x7f, 0x3a, 0xfd, 0xb0, 0x78, 0xdd, 0xec, 0x6d, 0xfb, + 0x6f, 0xa3, 0x9b, 0x9a, 0xb7, 0xe8, 0x45, 0xfd, 0x2b, 0xff, 0x53, 0xf0, 0xf1, 0xc0, 0xf5, 0x6d, + 0xf3, 0x8f, 0x17, 0x47, 0x9f, 0xc8, 0xf8, 0xf4, 0x65, 0xff, 0xe3, 0xcb, 0x63, 0x7a, 0x76, 0xdc, + 0x32, 0x5b, 0x41, 0xeb, 0xe4, 0xa4, 0x79, 0xf4, 0x7c, 0x6b, 0xa7, 0x76, 0xdb, 0x6a, 0xcd, 0x6f, + 0xed, 0xad, 0x71, 0xe3, 0x60, 0xbf, 0x7e, 0xb0, 0xa8, 0x5e, 0x0d, 0xea, 0xd7, 0xe7, 0x07, 0xe6, + 0xf3, 0x57, 0xe5, 0xb3, 0xfd, 0xf7, 0x6e, 0xbf, 0x61, 0xbf, 0x6e, 0x7f, 0x24, 0x67, 0xc3, 0xdb, + 0x9b, 0x13, 0xbf, 0xe5, 0xb6, 0x0f, 0x9a, 0xe1, 0xa7, 0x39, 0x1d, 0xdd, 0x9e, 0xbc, 0x3f, 0x1c, + 0x3c, 0x9f, 0x98, 0x8e, 0xf9, 0xc1, 0x19, 0xdf, 0xdc, 0xce, 0x3e, 0x5d, 0x0c, 0xca, 0xb5, 0x9e, + 0x77, 0x3b, 0x7f, 0xe7, 0xbf, 0xaf, 0x6e, 0x5f, 0x6c, 0x8f, 0x4e, 0x8e, 0x26, 0x6f, 0x7a, 0xe1, + 0x6d, 0xf3, 0x5b, 0xb4, 0xf5, 0xf1, 0xdd, 0x4d, 0xb0, 0x73, 0x71, 0x72, 0x7c, 0xeb, 0x8e, 0xaa, + 0xef, 0x3e, 0xfa, 0xb5, 0x6b, 0xfb, 0xf9, 0x59, 0xf0, 0x6b, 0x6f, 0x16, 0xbc, 0x1e, 0xbf, 0xde, + 0xdf, 0xdf, 0x5a, 0x0c, 0x6f, 0xcd, 0xe0, 0xed, 0xb0, 0xd1, 0xb4, 0x3f, 0x85, 0xe7, 0x27, 0x6f, + 0xbe, 0xfd, 0x36, 0xf9, 0xbc, 0xf5, 0xa6, 0xd7, 0xdc, 0x1a, 0x9f, 0x2d, 0xb6, 0xdf, 0x96, 0xfb, + 0xa3, 0x4f, 0x3b, 0xf5, 0xb3, 0xb3, 0x97, 0xa7, 0x5b, 0xd3, 0xfe, 0xc5, 0xc4, 0xe9, 0xbd, 0xbe, + 0x0a, 0x3f, 0xbc, 0x1e, 0xbc, 0x7b, 0xff, 0xf2, 0xf9, 0xd5, 0xf8, 0xdb, 0x89, 0x77, 0x35, 0xeb, + 0xb5, 0x66, 0xc7, 0x2f, 0x9e, 0x0f, 0xcb, 0xf5, 0xa3, 0xf2, 0xcd, 0xe7, 0xe0, 0x7c, 0xfe, 0xc7, + 0x1f, 0xa7, 0xa3, 0xc6, 0xeb, 0xf2, 0x61, 0xe3, 0x70, 0x78, 0x70, 0xf2, 0xee, 0x68, 0x3e, 0x75, + 0xce, 0x3f, 0x97, 0xcf, 0xe7, 0x1f, 0xc7, 0x9f, 0x06, 0xfd, 0xf1, 0x84, 0x4c, 0x6e, 0x7f, 0x7b, + 0xd3, 0x9f, 0x7f, 0x7e, 0xfe, 0x87, 0xfd, 0xb2, 0x5d, 0xdf, 0xea, 0xf5, 0xb6, 0x3f, 0xdc, 0x1c, + 0xf6, 0xce, 0xae, 0xcf, 0x47, 0xd5, 0x73, 0x33, 0x78, 0x33, 0x78, 0xf3, 0xf9, 0xac, 0x3f, 0x26, + 0xd1, 0xf6, 0xf4, 0xd8, 0x1b, 0xf6, 0x4e, 0x6a, 0xd5, 0xda, 0xbc, 0xff, 0xb9, 0xbc, 0x28, 0xb7, + 0xf7, 0xdb, 0x5b, 0xdf, 0xbc, 0xdb, 0xad, 0xf1, 0x81, 0xe9, 0xb9, 0x47, 0xcd, 0x9d, 0x6b, 0x0f, + 0xc8, 0xf5, 0x5b, 0xf4, 0xfe, 0xec, 0x73, 0xf9, 0xb4, 0x1d, 0x98, 0x93, 0x85, 0xd9, 0x9e, 0x1e, + 0x8e, 0xde, 0x06, 0xd5, 0xd9, 0x69, 0x3f, 0xda, 0x99, 0x1e, 0x6c, 0x8f, 0x3e, 0xed, 0xbf, 0x38, + 0x5c, 0x98, 0x53, 0xf3, 0xf9, 0xfb, 0xcf, 0xb5, 0xf0, 0xf4, 0xe3, 0xd5, 0xa2, 0xb7, 0xef, 0x84, + 0x67, 0x2f, 0x1b, 0xbd, 0xed, 0xd7, 0x5b, 0xaf, 0x5f, 0x4c, 0x6f, 0x07, 0x6f, 0x83, 0x8f, 0x37, + 0xaf, 0xbe, 0x11, 0x93, 0x2c, 0x60, 0x98, 0x9c, 0x05, 0xaf, 0x7c, 0x77, 0xf4, 0xdc, 0x9b, 0x9f, + 0x6f, 0x95, 0x3f, 0x0e, 0x17, 0xb3, 0x77, 0x1f, 0x3f, 0x7f, 0xae, 0xde, 0x0c, 0x76, 0x5a, 0x64, + 0xd4, 0x7c, 0x77, 0x70, 0xfe, 0xf9, 0xa2, 0x7c, 0x5a, 0x7d, 0xdf, 0x38, 0x70, 0x46, 0xd3, 0x5f, + 0x6f, 0x3f, 0x1e, 0x8d, 0x83, 0xfa, 0x8b, 0xd3, 0x37, 0x6f, 0x5f, 0x39, 0xaf, 0xaf, 0x8f, 0xdf, + 0xb8, 0x6f, 0x5f, 0xef, 0x9f, 0x4e, 0x68, 0xb3, 0x3d, 0xfe, 0xbc, 0xfd, 0x5b, 0xa3, 0xb1, 0x4d, + 0x9d, 0x6f, 0x57, 0xb5, 0x8f, 0xad, 0xab, 0xdb, 0x57, 0xd3, 0xfe, 0x76, 0x74, 0xf5, 0xb2, 0x37, + 0x3b, 0xf8, 0x30, 0xff, 0x74, 0x42, 0x9b, 0xd3, 0xd1, 0xc1, 0xd9, 0xe0, 0xe6, 0xac, 0xe7, 0xce, + 0xe9, 0x8b, 0x93, 0x76, 0xf9, 0x60, 0x18, 0x7c, 0xa8, 0xbe, 0x6f, 0x7d, 0x7c, 0xf5, 0xa6, 0xd1, + 0xbc, 0xad, 0xb6, 0x4c, 0x72, 0x34, 0x18, 0xff, 0xfa, 0x6a, 0xbf, 0xc5, 0x45, 0xf3, 0xf5, 0xe9, + 0x45, 0xeb, 0x30, 0xb8, 0x7a, 0x3d, 0x1a, 0x8d, 0x2c, 0x4b, 0xdd, 0xdb, 0x50, 0x76, 0xc3, 0x41, + 0xe0, 0x4c, 0xa3, 0xbd, 0x6a, 0x55, 0xf9, 0xa7, 0x0b, 0x63, 0xdd, 0x0b, 0xa9, 0xa2, 0x28, 0x2f, + 0x8f, 0x2f, 0x94, 0x97, 0x87, 0xc7, 0x87, 0xa7, 0xbd, 0xb7, 0xca, 0xc9, 0xc5, 0xfe, 0xdb, 0xa3, + 0x03, 0x05, 0xfe, 0x1f, 0x1e, 0x9f, 0x1d, 0x2a, 0x1f, 0x68, 0x10, 0x3a, 0xbe, 0xa7, 0x34, 0x74, + 0xa5, 0xbe, 0xa3, 0xbc, 0x9e, 0x79, 0x54, 0xa9, 0x9b, 0xe6, 0xd6, 0x46, 0xbe, 0x82, 0x17, 0x7e, + 0xa0, 0x78, 0x90, 0xeb, 0xe5, 0xc9, 0xdb, 0xca, 0x75, 0x43, 0x99, 0x85, 0x30, 0x74, 0x75, 0x18, + 0xed, 0x93, 0x09, 0x0d, 0x06, 0xa0, 0x44, 0x14, 0x91, 0x35, 0x54, 0x26, 0xb3, 0x30, 0x52, 0xfa, + 0x54, 0x99, 0xce, 0x02, 0x50, 0x67, 0x21, 0xb5, 0x0d, 0xe5, 0x00, 0x94, 0x02, 0x19, 0x44, 0xca, + 0x04, 0x14, 0xc6, 0x84, 0x2b, 0x8c, 0x7f, 0x3a, 0x03, 0xd7, 0x9f, 0xd9, 0x06, 0xd4, 0xb0, 0x31, + 0x70, 0x49, 0x18, 0xb2, 0x4c, 0x81, 0xef, 0xba, 0x34, 0x58, 0xce, 0x43, 0xcb, 0x9b, 0xb9, 0x6e, + 0x37, 0x5c, 0x84, 0x47, 0xde, 0xd0, 0xb7, 0x96, 0x71, 0x57, 0x14, 0xe3, 0xf0, 0x68, 0x4c, 0x41, + 0x21, 0xb1, 0xc7, 0x09, 0x71, 0xbc, 0x63, 0x72, 0xcd, 0x5f, 0x7c, 0xef, 0xad, 0x4f, 0xec, 0x92, + 0xb6, 0xb4, 0xfd, 0xc1, 0x6c, 0x02, 0x3a, 0xca, 0x88, 0x9c, 0x08, 0x54, 0x1b, 0x68, 0xc6, 0x63, + 0x50, 0x61, 0x25, 0xad, 0xac, 0xfe, 0xfb, 0xbf, 0xfd, 0x97, 0xff, 0xa1, 0xf4, 0x17, 0x4a, 0x56, + 0x77, 0xfd, 0xfb, 0xbf, 0xfd, 0xe7, 0xff, 0xaa, 0xea, 0x73, 0xc7, 0xb3, 0xfd, 0xb9, 0xe1, 0xfa, + 0x03, 0x12, 0x01, 0x3d, 0x0c, 0x54, 0x54, 0x86, 0xe3, 0x0d, 0xdc, 0x99, 0x4d, 0xc3, 0x92, 0x5a, + 0xab, 0x6f, 0x19, 0x26, 0xfc, 0xad, 0xa9, 0xda, 0xb3, 0x68, 0xec, 0x84, 0xc6, 0x90, 0x46, 0x83, + 0x31, 0x54, 0x41, 0x5d, 0xa0, 0xcd, 0x5b, 0xe7, 0x9a, 0x9e, 0xd1, 0xe0, 0x9a, 0x06, 0x25, 0xad, + 0xc3, 0x92, 0x27, 0xe4, 0x8a, 0x7e, 0x3c, 0x2b, 0x69, 0x3a, 0x7f, 0x93, 0xe8, 0xd3, 0xb9, 0x22, + 0x9a, 0xed, 0xba, 0x34, 0x52, 0xa8, 0x35, 0x3a, 0xb2, 0x4b, 0x6a, 0xdf, 0xb7, 0x17, 0xaa, 0xd6, + 0xa5, 0xd0, 0x9e, 0x47, 0x83, 0x57, 0xe7, 0xef, 0xde, 0x96, 0x2d, 0x75, 0x77, 0x5c, 0xdb, 0x3b, + 0x8b, 0x08, 0xd4, 0x3d, 0x1a, 0x47, 0x0a, 0x22, 0xbe, 0x5b, 0x05, 0x90, 0xca, 0x6b, 0x14, 0x34, + 0x80, 0xfa, 0xce, 0xf1, 0x29, 0x03, 0x34, 0x06, 0x01, 0x25, 0x11, 0xc5, 0x5a, 0x64, 0xf3, 0x1c, + 0x3e, 0xa2, 0x11, 0xcb, 0x0b, 0xd0, 0xc7, 0x77, 0xf6, 0xe9, 0xd3, 0x52, 0x0e, 0xad, 0xcd, 0x5d, + 0xc7, 0x9b, 0xce, 0x22, 0xc5, 0xb1, 0x2d, 0x15, 0x7b, 0x6d, 0xa0, 0x56, 0x8f, 0x16, 0x53, 0x30, + 0x10, 0x83, 0x31, 0x1d, 0x5c, 0xf5, 0xfd, 0x1b, 0x30, 0x11, 0xc8, 0xd1, 0x1c, 0x00, 0x9f, 0xa8, + 0xbd, 0xb7, 0x29, 0xe9, 0x21, 0xd9, 0x86, 0xf4, 0xe0, 0xcf, 0xa5, 0x2c, 0xa1, 0xf0, 0x9b, 0xba, + 0xf9, 0xcc, 0xf9, 0x7e, 0xcd, 0x42, 0x1a, 0xbc, 0x98, 0x79, 0x67, 0x34, 0x9a, 0x4d, 0x4b, 0x5a, + 0x4c, 0xc2, 0x85, 0x37, 0x50, 0xee, 0xe4, 0xc9, 0x92, 0x13, 0x9b, 0xcc, 0x89, 0x13, 0x95, 0xd8, + 0x27, 0xcf, 0x5b, 0x52, 0xab, 0x13, 0x27, 0x1c, 0x54, 0x59, 0x73, 0xc6, 0xb7, 0x10, 0x3a, 0xa3, + 0x69, 0xec, 0xbb, 0x84, 0xec, 0x08, 0xc1, 0x0c, 0x96, 0x4a, 0xc3, 0x99, 0x37, 0x40, 0x2a, 0x95, + 0x80, 0xca, 0xda, 0x32, 0x80, 0x16, 0x03, 0x0f, 0xb0, 0x8e, 0xc6, 0x06, 0xe9, 0x87, 0x40, 0x1d, + 0x5f, 0xab, 0x24, 0x6f, 0x11, 0xbc, 0xc5, 0x9a, 0xd6, 0x1d, 0xfa, 0x41, 0x09, 0xdb, 0x8c, 0x14, + 0x7f, 0xa8, 0x50, 0x2d, 0xd7, 0x37, 0x62, 0xdb, 0x5c, 0x06, 0x4a, 0x91, 0xc6, 0xa4, 0x20, 0xb2, + 0x96, 0x42, 0xd4, 0x3b, 0xcb, 0x38, 0xee, 0x46, 0x86, 0x78, 0x33, 0xfa, 0x3e, 0x09, 0x80, 0xce, + 0x34, 0x9c, 0x36, 0xea, 0xc0, 0xf7, 0x04, 0xee, 0x05, 0xef, 0x87, 0x27, 0x8e, 0x17, 0x5a, 0x4d, + 0x33, 0x03, 0x9d, 0x3a, 0xde, 0x39, 0x30, 0x22, 0xb4, 0xbe, 0x7c, 0x4d, 0xda, 0xa7, 0x96, 0xd9, + 0xa5, 0xbb, 0xeb, 0x25, 0xbb, 0xb4, 0x5c, 0xd6, 0xd6, 0x8b, 0x7e, 0xa1, 0x5f, 0x2d, 0xd6, 0x97, + 0xc0, 0x9f, 0x79, 0x76, 0xa9, 0xf1, 0x0b, 0x7f, 0x01, 0xeb, 0xee, 0x4f, 0x4a, 0xd0, 0x2d, 0xd6, + 0x8f, 0x80, 0x0e, 0x28, 0xd0, 0xf6, 0x39, 0xd8, 0x70, 0xe8, 0x81, 0x94, 0x25, 0xf0, 0x5b, 0x8e, + 0xc0, 0x31, 0x08, 0xae, 0x89, 0x9b, 0x21, 0x99, 0xb6, 0x64, 0x02, 0x2e, 0x25, 0x45, 0x33, 0x84, + 0x24, 0x3c, 0x7d, 0x3a, 0x48, 0xc6, 0x7b, 0x42, 0x98, 0x11, 0x05, 0x31, 0x03, 0x16, 0xb3, 0x9a, + 0x81, 0x8c, 0x7a, 0x8d, 0x36, 0x1e, 0xac, 0x9f, 0xf7, 0xf2, 0x8b, 0xa9, 0xd7, 0xf4, 0xba, 0xde, + 0xd0, 0x9b, 0x5f, 0xbb, 0xce, 0xb0, 0x44, 0xbf, 0x98, 0xb9, 0x8e, 0xd4, 0x57, 0x3a, 0xa2, 0x9b, + 0x96, 0x85, 0x79, 0x78, 0xf1, 0x88, 0x8f, 0x42, 0xa4, 0x0b, 0x27, 0x39, 0x8c, 0x45, 0xa8, 0x04, + 0x98, 0x9d, 0xb0, 0x11, 0xc8, 0x18, 0xed, 0x66, 0x50, 0x5e, 0xa3, 0x67, 0x04, 0xf4, 0xa4, 0x5f, + 0xa2, 0x72, 0x2b, 0xdf, 0x6e, 0xab, 0xbd, 0x4a, 0xc2, 0x82, 0x7e, 0x4f, 0x03, 0x8a, 0x4e, 0xd7, + 0x3e, 0x36, 0x5d, 0x8a, 0x74, 0xaa, 0xc5, 0x31, 0x75, 0x41, 0xed, 0x0a, 0x19, 0x2f, 0x51, 0x46, + 0x0b, 0xd3, 0xd4, 0x62, 0xa9, 0x55, 0x96, 0x88, 0x1e, 0xf2, 0x62, 0x1e, 0x6a, 0x5c, 0x20, 0x85, + 0x3a, 0x29, 0xa9, 0xe3, 0x28, 0x9a, 0x86, 0x1d, 0xd5, 0xb2, 0x56, 0xc7, 0xf8, 0x34, 0xf0, 0x23, + 0x7f, 0xe0, 0xbb, 0xcf, 0xd4, 0x79, 0x18, 0xaa, 0x1d, 0xf8, 0x54, 0x41, 0x21, 0x76, 0xaa, 0x55, + 0xb5, 0xbc, 0xa6, 0x0e, 0xfc, 0x30, 0x42, 0xa7, 0xaf, 0xac, 0x56, 0x21, 0x17, 0xa2, 0x1c, 0xfa, + 0x2e, 0x85, 0xf4, 0x51, 0x49, 0xe5, 0x28, 0x28, 0xb3, 0xc0, 0x55, 0x01, 0x53, 0x5d, 0x60, 0xc1, + 0x46, 0xf2, 0x47, 0xda, 0x3f, 0xf3, 0x81, 0xbb, 0x51, 0x29, 0x4d, 0x30, 0xfa, 0x8e, 0x47, 0x82, + 0xc5, 0x39, 0xd3, 0x10, 0x24, 0x08, 0xc8, 0xa2, 0x3f, 0x1b, 0x0e, 0x69, 0xa0, 0x26, 0x19, 0xc0, + 0x26, 0xd0, 0x10, 0xed, 0x89, 0x45, 0xad, 0x3d, 0xec, 0x18, 0x35, 0xd0, 0x3d, 0x54, 0x80, 0xaa, + 0x11, 0xf1, 0x06, 0x14, 0x06, 0x50, 0x0f, 0xcb, 0xed, 0xb3, 0x72, 0x92, 0x63, 0xd8, 0xde, 0x85, + 0xe3, 0x45, 0xdb, 0x2c, 0x4d, 0x94, 0x61, 0x6c, 0x03, 0xd6, 0x46, 0x09, 0x6b, 0x69, 0x01, 0x6b, + 0xe9, 0xd3, 0xa7, 0xb9, 0xf1, 0x98, 0x23, 0x3f, 0x8e, 0xf1, 0x3c, 0xf5, 0xc5, 0xbb, 0x6c, 0x97, + 0x19, 0xa0, 0x60, 0xb1, 0x8c, 0xac, 0xd7, 0x67, 0xef, 0x8f, 0x8d, 0x29, 0x7a, 0xec, 0xb2, 0xf9, + 0x18, 0xe8, 0x07, 0x4a, 0xc5, 0xd7, 0x96, 0x3c, 0xa3, 0x2e, 0x29, 0x47, 0x83, 0x00, 0x24, 0x49, + 0xd2, 0x0e, 0xf5, 0x8b, 0xc2, 0x40, 0xaa, 0xee, 0xeb, 0xb2, 0x2c, 0x93, 0x38, 0xfc, 0x30, 0x50, + 0x9d, 0x3e, 0x7d, 0xfa, 0x05, 0x5d, 0x7c, 0xc0, 0x51, 0xd5, 0x55, 0x44, 0x85, 0x3f, 0x81, 0xdc, + 0xe1, 0xc3, 0xd7, 0x54, 0x59, 0xf3, 0xec, 0x9a, 0xec, 0xee, 0x93, 0x5a, 0x32, 0xf6, 0x7d, 0xd4, + 0x3d, 0x05, 0x5a, 0xd5, 0x37, 0x40, 0x79, 0x5b, 0x11, 0x7c, 0xa2, 0x72, 0xb7, 0x9e, 0x98, 0x5a, + 0xf7, 0x09, 0xd2, 0xc4, 0xf0, 0x9f, 0xdd, 0xa9, 0xa7, 0x3a, 0x39, 0x19, 0xc0, 0xd0, 0x05, 0x2b, + 0xe7, 0x39, 0x15, 0xe2, 0x82, 0x66, 0xb6, 0x17, 0x8a, 0x1c, 0xbf, 0x80, 0xa8, 0x24, 0x22, 0xe3, + 0x8e, 0xe1, 0x84, 0x9c, 0x4b, 0x91, 0xf6, 0x2c, 0x57, 0x0f, 0x84, 0x23, 0x0a, 0x93, 0x09, 0xf0, + 0x2d, 0x00, 0xf9, 0x9b, 0x29, 0x1d, 0x88, 0xd2, 0x9d, 0x02, 0x4d, 0x13, 0xc7, 0x19, 0x99, 0x01, + 0xf7, 0x21, 0xe4, 0x12, 0x93, 0xab, 0x11, 0xa8, 0xcb, 0x52, 0x58, 0x40, 0x02, 0x23, 0x23, 0x58, + 0x30, 0x29, 0x05, 0xe5, 0x71, 0xee, 0x4c, 0xa8, 0x3f, 0x8b, 0x4a, 0x9c, 0x07, 0x7a, 0xad, 0x05, + 0xe3, 0x29, 0x95, 0x5e, 0x60, 0x56, 0xb6, 0x76, 0x7f, 0x4a, 0xbd, 0xc2, 0xca, 0x31, 0x01, 0x6b, + 0xcc, 0x66, 0x66, 0x9c, 0x2c, 0xcc, 0x2d, 0x78, 0x8c, 0x03, 0x3a, 0xa0, 0x7f, 0xcc, 0x68, 0x18, + 0xbd, 0x46, 0xd3, 0x42, 0xd9, 0xf8, 0x7d, 0xbc, 0x0d, 0x06, 0x91, 0x45, 0x01, 0x84, 0x32, 0x4f, + 0x0a, 0x06, 0xbd, 0x10, 0xc4, 0x10, 0xe2, 0x2e, 0x6f, 0xe4, 0x0c, 0x61, 0x2c, 0x08, 0x3d, 0x0d, + 0xc8, 0x85, 0x14, 0x94, 0x50, 0xc4, 0x9a, 0x4f, 0x29, 0xc9, 0x9b, 0x77, 0xc2, 0xf7, 0xfd, 0x6f, + 0x40, 0x6f, 0x78, 0xd5, 0x72, 0xd6, 0x8a, 0x83, 0x8d, 0x2b, 0xba, 0x08, 0x4b, 0x52, 0xae, 0x7c, + 0xd0, 0x96, 0xd1, 0x57, 0xdd, 0x03, 0xa9, 0x09, 0xa7, 0x2e, 0xd8, 0x50, 0xd5, 0x50, 0x81, 0xaa, + 0x56, 0x4e, 0x5e, 0x86, 0xd0, 0xa1, 0x0f, 0x24, 0x28, 0x79, 0x30, 0xfa, 0x74, 0xef, 0x4b, 0xed, + 0x2b, 0x1b, 0x8e, 0xa1, 0xb6, 0xbc, 0x26, 0x01, 0xf6, 0xfb, 0xdc, 0x3f, 0x40, 0xbf, 0x00, 0x20, + 0x39, 0xc6, 0xfa, 0x5c, 0x54, 0x54, 0xa1, 0x52, 0x41, 0x73, 0x45, 0x20, 0x97, 0xac, 0x66, 0xe9, + 0x00, 0x42, 0x96, 0x38, 0x16, 0xf4, 0x4a, 0xf5, 0x27, 0xd3, 0x01, 0xa9, 0xdb, 0xc8, 0xd4, 0x54, + 0xa4, 0x5c, 0x1c, 0x1d, 0x9f, 0x6f, 0xff, 0xfe, 0xae, 0xf7, 0xc9, 0xaa, 0xb7, 0x5a, 0x3a, 0xbe, + 0xd5, 0xda, 0xec, 0xb5, 0xdd, 0x6a, 0x35, 0x5a, 0x5d, 0x69, 0x39, 0x14, 0xd4, 0x0b, 0x34, 0x31, + 0xe7, 0x89, 0xc7, 0x08, 0x4e, 0xd2, 0xa1, 0x4b, 0xf1, 0x71, 0x7f, 0xc1, 0x72, 0xc4, 0x49, 0x89, + 0xc1, 0x61, 0x51, 0x01, 0xee, 0x95, 0x88, 0x32, 0xf9, 0xfc, 0x07, 0x87, 0xdc, 0x65, 0xe0, 0x14, + 0xbc, 0xa3, 0x04, 0xf8, 0x00, 0xa2, 0x4a, 0x6a, 0xc0, 0x80, 0x07, 0x86, 0x1d, 0x8c, 0x1d, 0xd7, + 0x06, 0xb2, 0xe8, 0x7e, 0x5a, 0x97, 0x13, 0xbe, 0xf5, 0xe7, 0x10, 0x3e, 0x12, 0x54, 0x36, 0x09, + 0x12, 0xd4, 0x88, 0xfc, 0x14, 0xae, 0x81, 0x4d, 0xcb, 0x94, 0x80, 0xe8, 0xfe, 0x80, 0x4c, 0x05, + 0xb7, 0x55, 0x2e, 0x1e, 0xea, 0x13, 0x0b, 0xb5, 0x05, 0xf3, 0x49, 0x78, 0x1d, 0xaa, 0x2a, 0x84, + 0x08, 0x1e, 0x12, 0xc5, 0x01, 0xd6, 0xce, 0xdf, 0x05, 0x31, 0xa6, 0xde, 0x28, 0x1a, 0x77, 0x7d, + 0x30, 0x6d, 0xa0, 0x54, 0x41, 0x3b, 0x94, 0x2d, 0xf0, 0x2e, 0xc7, 0x24, 0xe8, 0x45, 0x80, 0x1e, + 0xb4, 0x7d, 0x01, 0xf8, 0x8a, 0xb6, 0x3b, 0x4f, 0x72, 0x28, 0xa6, 0xd9, 0xc0, 0x83, 0x2c, 0x4e, + 0xa9, 0xd4, 0x34, 0x0d, 0xab, 0x54, 0x15, 0xb5, 0x9c, 0xc9, 0xdf, 0x51, 0x2b, 0x20, 0x02, 0x19, + 0xc0, 0x9f, 0x7f, 0xaa, 0xbf, 0xe7, 0x21, 0xa2, 0x54, 0x27, 0x8f, 0x8f, 0x24, 0x63, 0x94, 0xa5, + 0x5a, 0x22, 0xe3, 0x82, 0x64, 0x4f, 0xf2, 0x0a, 0x89, 0xa2, 0x7f, 0x8b, 0x83, 0xff, 0x09, 0x34, + 0x00, 0x8f, 0xaa, 0x2c, 0x8a, 0x52, 0x28, 0x08, 0x05, 0xed, 0xfb, 0xac, 0x96, 0x0c, 0x4c, 0xcb, + 0xb0, 0x99, 0x39, 0x92, 0x3d, 0xcf, 0x3e, 0xbc, 0xa1, 0x83, 0x59, 0x44, 0x91, 0xe5, 0xa0, 0xd5, + 0x3d, 0x9d, 0x6b, 0x15, 0xf0, 0x21, 0x98, 0xa3, 0x49, 0xcb, 0x91, 0xbe, 0x9c, 0xd0, 0x68, 0xec, + 0xdb, 0x1d, 0x15, 0x84, 0x4c, 0x8d, 0x35, 0x74, 0xcb, 0x41, 0x19, 0x58, 0x7b, 0xe0, 0x1a, 0x5d, + 0x3d, 0x03, 0x5e, 0xd2, 0x9b, 0x08, 0x08, 0x59, 0x0a, 0x9f, 0x3e, 0x85, 0xf1, 0xff, 0xc2, 0x01, + 0xcd, 0xaa, 0x96, 0xa3, 0xb2, 0xca, 0x94, 0xe3, 0x10, 0xfd, 0x09, 0x18, 0x73, 0x2a, 0x3a, 0xa8, + 0xb2, 0xe0, 0xd2, 0x2b, 0xf9, 0xa8, 0x5d, 0xc0, 0xad, 0x62, 0x86, 0x27, 0xe3, 0xaa, 0x6a, 0x4b, + 0x56, 0x8d, 0xaf, 0xab, 0x87, 0xa8, 0x84, 0x40, 0x37, 0x47, 0x11, 0x08, 0x00, 0xd6, 0xa8, 0xe9, + 0x59, 0x3d, 0x85, 0xc5, 0x35, 0x1c, 0xbb, 0xc4, 0x75, 0x17, 0x25, 0x10, 0xa2, 0xbd, 0x65, 0xac, + 0xc5, 0x1b, 0xbb, 0x55, 0x11, 0x48, 0x26, 0x11, 0xe5, 0xc6, 0xbf, 0x5c, 0x48, 0xc9, 0xa2, 0x9d, + 0x65, 0x36, 0x6c, 0x58, 0x66, 0xc2, 0xad, 0x6c, 0x54, 0x73, 0xb9, 0x3b, 0xdd, 0xdb, 0x75, 0x49, + 0x9f, 0xba, 0x7b, 0xac, 0xd0, 0x6e, 0x95, 0xbf, 0x28, 0xff, 0xc9, 0x03, 0x4c, 0x81, 0x04, 0xd4, + 0x05, 0x01, 0x10, 0x13, 0x64, 0x2c, 0x9a, 0xaa, 0x70, 0x90, 0xca, 0x02, 0xa1, 0x3c, 0x04, 0x8c, + 0xd3, 0x98, 0x78, 0x23, 0x8c, 0x88, 0x52, 0x5f, 0x8f, 0x87, 0x60, 0xa1, 0x0c, 0xc1, 0x98, 0x7a, + 0x03, 0x57, 0x76, 0x46, 0x35, 0x75, 0x8f, 0x37, 0x02, 0xcd, 0xf8, 0x53, 0x26, 0x51, 0x0c, 0x6e, + 0xc1, 0x90, 0x25, 0x01, 0xce, 0x8c, 0xa9, 0x2c, 0x0c, 0xdc, 0x87, 0xa7, 0xdd, 0x2a, 0xcf, 0x71, + 0x5f, 0x09, 0x17, 0xc3, 0x45, 0x35, 0x8d, 0x1c, 0x1f, 0x2a, 0x33, 0x77, 0xc1, 0xe2, 0xee, 0x7d, + 0x7c, 0x7b, 0xf8, 0xfc, 0xa1, 0x9c, 0x23, 0x18, 0x31, 0x14, 0xcc, 0xdf, 0xde, 0x4b, 0xfe, 0xf0, + 0x50, 0x7e, 0xb0, 0xee, 0xea, 0xde, 0x73, 0x7a, 0xfd, 0x50, 0x3e, 0x81, 0xf1, 0xa3, 0xb0, 0xb5, + 0x49, 0x70, 0x85, 0x95, 0x82, 0x4f, 0x8d, 0x3d, 0x7c, 0x28, 0x7b, 0x1f, 0x3e, 0xd5, 0xbd, 0x7d, + 0xf8, 0x7c, 0x28, 0x27, 0x44, 0x40, 0x50, 0x31, 0xf8, 0x89, 0x57, 0x0f, 0x12, 0x79, 0x4a, 0x06, + 0xc8, 0x13, 0xfc, 0x7a, 0x28, 0xaf, 0xb7, 0x20, 0x40, 0xaf, 0x63, 0xf8, 0x5c, 0xcf, 0x59, 0xe5, + 0xf2, 0xb2, 0xb7, 0x0b, 0x15, 0x7a, 0x7b, 0xca, 0x9f, 0x08, 0xc1, 0x27, 0x11, 0x60, 0xf3, 0x98, + 0xba, 0x3f, 0x8b, 0x22, 0x8c, 0xb0, 0x45, 0x7d, 0xcc, 0x80, 0x3a, 0x83, 0x8b, 0x23, 0x2e, 0x77, + 0xfd, 0xcc, 0x3b, 0xba, 0x44, 0xce, 0xe0, 0x0a, 0x67, 0x7a, 0x99, 0x9d, 0x44, 0x4f, 0xa5, 0xb4, + 0xf9, 0xf3, 0xb2, 0xd0, 0xcd, 0x08, 0xe8, 0xd4, 0x05, 0xf4, 0x21, 0xfc, 0x05, 0x1b, 0x3a, 0x73, + 0x54, 0x54, 0x2b, 0xf1, 0xa6, 0xa2, 0x6f, 0xfe, 0x0e, 0x48, 0x0d, 0x37, 0xb5, 0xae, 0xba, 0xb7, + 0x5b, 0x65, 0x78, 0x64, 0xf0, 0x9d, 0xee, 0x5d, 0xc6, 0x89, 0x00, 0x83, 0x82, 0xc9, 0x79, 0x3b, + 0x32, 0x81, 0xb9, 0x5b, 0xd8, 0x98, 0x7b, 0x16, 0xf9, 0x01, 0x0c, 0x69, 0x16, 0xb8, 0x45, 0x74, + 0x52, 0xe2, 0xa3, 0x84, 0xa5, 0x27, 0xa6, 0x50, 0x3e, 0x08, 0x63, 0x68, 0xb0, 0x71, 0x8b, 0x73, + 0x35, 0x60, 0xc9, 0xd2, 0xe9, 0x0a, 0xe1, 0xda, 0xe6, 0x6a, 0x1d, 0xe5, 0x6b, 0x65, 0x5e, 0xbd, + 0x8a, 0x0a, 0x17, 0x4c, 0x1c, 0x6a, 0x72, 0x36, 0xd0, 0x73, 0xe3, 0x52, 0xe3, 0xe3, 0xcd, 0x42, + 0x6f, 0x2c, 0xa7, 0xde, 0xa2, 0x85, 0x4b, 0xf7, 0x36, 0x3a, 0x81, 0xef, 0x47, 0x3a, 0xfb, 0x34, + 0xe4, 0xc8, 0x5b, 0x56, 0x2a, 0xfd, 0x51, 0x05, 0x62, 0x26, 0x3f, 0xe8, 0xfc, 0x54, 0xab, 0xe3, + 0xdf, 0x6e, 0xa5, 0x82, 0x7a, 0x5a, 0x02, 0x07, 0x43, 0xdb, 0xdc, 0x69, 0x23, 0x70, 0x9c, 0x80, + 0xea, 0x5b, 0xb4, 0x8d, 0xa0, 0x75, 0x48, 0xdf, 0x0f, 0x6c, 0x1a, 0x24, 0x60, 0x9b, 0xd8, 0x6d, + 0x02, 0x60, 0x8e, 0x60, 0xd2, 0x0e, 0xd9, 0x26, 0xc3, 0x21, 0x80, 0x99, 0x0a, 0x92, 0xd0, 0xed, + 0xc6, 0xa0, 0x45, 0xfb, 0x00, 0x65, 0x0a, 0xd2, 0x4b, 0x72, 0xb7, 0x76, 0xb6, 0x49, 0xb3, 0x01, + 0xf0, 0x21, 0xe8, 0x9a, 0x4a, 0xe8, 0xdc, 0xd2, 0x4e, 0xad, 0x39, 0xbd, 0x89, 0xd3, 0x8e, 0xb0, + 0xe1, 0x95, 0xed, 0x89, 0xeb, 0x78, 0x94, 0x04, 0x15, 0x18, 0xce, 0xb6, 0xc3, 0x3c, 0x10, 0x5f, + 0xe9, 0xfb, 0x20, 0x66, 0x13, 0x5d, 0xf9, 0x69, 0x38, 0xec, 0xd3, 0x46, 0x43, 0x31, 0xff, 0x01, + 0xcf, 0xfd, 0xb6, 0x39, 0x6c, 0xd7, 0x15, 0x08, 0x3c, 0xff, 0xa1, 0xad, 0x74, 0xdb, 0x6c, 0xe0, + 0xdf, 0x5c, 0xb7, 0x79, 0xee, 0xed, 0x5a, 0xb6, 0xe3, 0x1c, 0xb6, 0xd6, 0xf1, 0x36, 0x23, 0x46, + 0xbe, 0xd7, 0x2f, 0xd8, 0x9f, 0xb5, 0x5e, 0xb7, 0x69, 0x7f, 0x7b, 0xa5, 0x77, 0x66, 0xd2, 0x3b, + 0x54, 0x5d, 0x0f, 0xb3, 0x68, 0xc8, 0x88, 0x99, 0x20, 0x1a, 0x8c, 0xfa, 0x25, 0xf4, 0x0c, 0x95, + 0x5a, 0xdb, 0xd4, 0x15, 0x53, 0xcb, 0xe0, 0x5b, 0x90, 0x94, 0x43, 0xbc, 0x20, 0x3d, 0xd7, 0x89, + 0x82, 0xf4, 0x42, 0xbc, 0x85, 0x22, 0x7d, 0x2c, 0x4f, 0x76, 0xb6, 0x76, 0xea, 0x3b, 0x4d, 0xce, + 0x93, 0xe6, 0x56, 0xb3, 0xd5, 0x2c, 0xe6, 0xc9, 0xb0, 0x3f, 0x6c, 0x0e, 0x9b, 0x39, 0x9e, 0xd4, + 0x6b, 0xcd, 0xed, 0x7a, 0x3f, 0xcb, 0x91, 0x04, 0x92, 0xe7, 0x48, 0x02, 0xce, 0x33, 0x25, 0x01, + 0xe7, 0xbb, 0x91, 0x05, 0x54, 0xc2, 0xce, 0x76, 0xd2, 0x31, 0xd0, 0xf8, 0xff, 0xa2, 0x43, 0x26, + 0x65, 0xce, 0xda, 0x70, 0x91, 0x02, 0x94, 0xe9, 0x42, 0xad, 0xde, 0xc8, 0x22, 0x6b, 0xb2, 0x3f, + 0xb9, 0x1e, 0xb5, 0xed, 0xf6, 0x76, 0x9b, 0xb0, 0xd1, 0x90, 0x47, 0x55, 0x26, 0x48, 0x8a, 0x81, + 0x3d, 0x7b, 0x98, 0x64, 0xed, 0x9d, 0xb6, 0xbd, 0x65, 0x8b, 0x22, 0x68, 0xd3, 0x72, 0x45, 0xcc, + 0x56, 0x63, 0xa7, 0xbd, 0xbf, 0x52, 0xe4, 0x70, 0xeb, 0x45, 0xed, 0xc5, 0xe1, 0xe3, 0x47, 0x68, + 0x1e, 0x4b, 0x99, 0x55, 0x34, 0x89, 0xc6, 0x71, 0x85, 0x24, 0x03, 0x62, 0x37, 0x57, 0x9a, 0xa4, + 0x5b, 0xad, 0xe6, 0xb6, 0xb9, 0x56, 0x17, 0x07, 0x4b, 0x85, 0x84, 0x56, 0x33, 0x8f, 0x3d, 0xa7, + 0x5c, 0x56, 0x90, 0xeb, 0x7d, 0xbb, 0xc6, 0x78, 0x3f, 0xaa, 0xcc, 0x02, 0xb7, 0x03, 0xff, 0x4b, + 0x9b, 0x6c, 0xc5, 0x10, 0xd7, 0x3c, 0x1d, 0x6e, 0xc7, 0xaa, 0xfe, 0x20, 0xa2, 0xc0, 0xbd, 0x08, + 0xbc, 0xbb, 0x89, 0x5c, 0x40, 0xdc, 0x4c, 0x86, 0xdc, 0x90, 0x4c, 0x1c, 0x77, 0xd1, 0xd9, 0x3c, + 0x09, 0x28, 0x38, 0x82, 0xe8, 0x2a, 0x44, 0x4a, 0xfd, 0x64, 0x53, 0x1f, 0xcc, 0xc0, 0x35, 0xbd, + 0xa6, 0x02, 0x1b, 0x34, 0xcf, 0x79, 0x64, 0x6a, 0x8d, 0x46, 0x7b, 0xab, 0x50, 0x81, 0xfc, 0x0d, + 0xc8, 0x1c, 0xf8, 0x13, 0x67, 0xa0, 0x1c, 0xd3, 0x19, 0x4d, 0x11, 0x41, 0x4b, 0xc4, 0x0c, 0x50, + 0x6e, 0xe5, 0x86, 0xad, 0x5b, 0x30, 0xb3, 0x2b, 0x5d, 0x3f, 0xe6, 0x3c, 0x0f, 0x1d, 0x01, 0x55, + 0x70, 0x4e, 0xdc, 0x23, 0xd7, 0xc6, 0xb7, 0x90, 0x25, 0x00, 0x42, 0x22, 0xa1, 0x6e, 0xd6, 0x9b, + 0x20, 0x41, 0x3b, 0x0c, 0x0c, 0x66, 0xde, 0xe7, 0x60, 0x3e, 0x2b, 0x58, 0xad, 0x8e, 0x9c, 0x68, + 0x3c, 0xeb, 0xa3, 0x8f, 0x5c, 0xa5, 0x73, 0x7f, 0xee, 0x54, 0x65, 0xfd, 0xba, 0x12, 0xce, 0xfa, + 0x13, 0x27, 0x52, 0xb8, 0xef, 0x1a, 0x2a, 0xa0, 0x81, 0xd0, 0x49, 0x55, 0x58, 0x9b, 0x24, 0x54, + 0x4e, 0x4e, 0x19, 0x2c, 0x5f, 0x8a, 0xb5, 0xd2, 0x63, 0x0b, 0xc3, 0xe1, 0x63, 0x5a, 0xa9, 0xe2, + 0x50, 0x74, 0xa2, 0xb0, 0x8a, 0xf8, 0xb3, 0xc2, 0x07, 0xfe, 0x74, 0x11, 0xb0, 0x15, 0x8e, 0xff, + 0xf5, 0xdf, 0x19, 0xf2, 0xca, 0x4b, 0x56, 0x38, 0xe9, 0x38, 0xb8, 0xfa, 0x58, 0x44, 0x11, 0xad, + 0xfc, 0x2b, 0x45, 0x21, 0x1b, 0xd5, 0x5f, 0x7e, 0xd9, 0x50, 0x7e, 0xc1, 0x38, 0x84, 0x31, 0x4c, + 0xc9, 0x88, 0x0c, 0x5f, 0x23, 0xc1, 0xd4, 0x93, 0xc0, 0xb9, 0x46, 0xf6, 0x4d, 0x59, 0x70, 0x18, + 0x2a, 0x24, 0x80, 0x67, 0x70, 0xd2, 0x9c, 0x1b, 0x6a, 0x2b, 0x73, 0x20, 0x86, 0x42, 0x94, 0xcd, + 0x9f, 0x36, 0x95, 0x10, 0x19, 0x42, 0x17, 0x00, 0x72, 0x5d, 0xc4, 0x63, 0x02, 0x11, 0xfe, 0x04, + 0x94, 0x97, 0x8d, 0xeb, 0x59, 0x90, 0xa2, 0xf4, 0x21, 0x42, 0x84, 0x50, 0x03, 0xea, 0xac, 0x8a, + 0x00, 0x48, 0x2c, 0xad, 0x28, 0xcb, 0x8d, 0x0d, 0x45, 0xc9, 0xc6, 0x41, 0x00, 0x41, 0xa9, 0x40, + 0xbf, 0x0a, 0x83, 0x21, 0xc5, 0x52, 0xb2, 0xeb, 0x50, 0x1b, 0x2c, 0x11, 0x5f, 0xb8, 0x43, 0xf6, + 0xd6, 0x81, 0x9e, 0x97, 0x2d, 0x45, 0xb5, 0x2b, 0x43, 0x97, 0xde, 0x28, 0xf8, 0x81, 0x83, 0x63, + 0x36, 0xf1, 0xd4, 0x6c, 0xe6, 0x24, 0xa0, 0xc2, 0xcc, 0x97, 0xbb, 0x4f, 0x2a, 0x15, 0xa5, 0x07, + 0x08, 0x45, 0xac, 0x4f, 0x44, 0x09, 0x71, 0x83, 0x00, 0x89, 0x18, 0xae, 0x91, 0x3f, 0x55, 0x48, + 0xdf, 0xbf, 0xa6, 0xec, 0x8d, 0x11, 0x07, 0xc4, 0xd9, 0x19, 0x71, 0x1f, 0x15, 0x8a, 0xb9, 0xfe, + 0x9c, 0x25, 0x8d, 0x29, 0x13, 0x0e, 0x94, 0xbc, 0x9b, 0x29, 0x4e, 0xea, 0x5d, 0x43, 0x85, 0x40, + 0x43, 0x08, 0x56, 0x11, 0x38, 0x04, 0xc9, 0x20, 0xde, 0x42, 0x6e, 0x4a, 0x50, 0x36, 0xb8, 0xb8, + 0x2b, 0xc0, 0xd5, 0x70, 0x1c, 0xe0, 0xe6, 0x03, 0x07, 0xe7, 0x40, 0x29, 0xd0, 0x14, 0x64, 0x19, + 0x02, 0xe9, 0x31, 0x06, 0xc1, 0x50, 0x30, 0x1c, 0x43, 0x03, 0xd0, 0x2a, 0xb6, 0x41, 0x32, 0x48, + 0x56, 0x2a, 0x7b, 0x50, 0xc7, 0xae, 0xed, 0x5c, 0x33, 0x0f, 0x9b, 0x27, 0x25, 0x2b, 0x5a, 0x5c, + 0x2d, 0x50, 0x5c, 0x87, 0x50, 0x40, 0x21, 0xf0, 0xf9, 0xbd, 0x3d, 0xd6, 0x28, 0xeb, 0xee, 0x09, + 0x7a, 0xd5, 0x69, 0x9d, 0x0a, 0xe6, 0xc7, 0x56, 0x88, 0x32, 0x25, 0xb6, 0x0d, 0xac, 0xc2, 0x7a, + 0x19, 0x23, 0x81, 0x0e, 0x73, 0x88, 0xe2, 0x15, 0x27, 0xda, 0x64, 0x78, 0x21, 0xcb, 0x43, 0xec, + 0x41, 0x5a, 0x98, 0xe1, 0x23, 0xb9, 0x3d, 0x76, 0xa0, 0xbc, 0xc7, 0xb1, 0x13, 0x8d, 0x31, 0x24, + 0x05, 0x62, 0x53, 0x52, 0x69, 0x28, 0x19, 0xec, 0xd4, 0xbd, 0xd0, 0x9f, 0x64, 0xb1, 0xd8, 0xad, + 0x42, 0xee, 0x3d, 0xd1, 0x3b, 0xf6, 0x0c, 0x0f, 0x1b, 0xa2, 0xa6, 0x77, 0x79, 0xfa, 0x2b, 0x7d, + 0x12, 0x28, 0x20, 0xe2, 0x80, 0x36, 0x97, 0x42, 0xc1, 0x04, 0x24, 0x3f, 0x20, 0x0f, 0x24, 0x07, + 0x5a, 0x12, 0x77, 0x4e, 0x16, 0xa1, 0x72, 0xed, 0x84, 0x4e, 0x1f, 0x34, 0xc4, 0x0a, 0xdd, 0x90, + 0xa3, 0x15, 0xa8, 0x31, 0xa1, 0x9c, 0x10, 0x1d, 0x02, 0xe6, 0xd5, 0x63, 0x8a, 0x32, 0x1a, 0x8c, + 0xb9, 0x20, 0x71, 0x3e, 0x55, 0x4c, 0x0c, 0x39, 0x18, 0x5e, 0x39, 0xac, 0x18, 0x11, 0x90, 0xbb, + 0xf0, 0x12, 0x32, 0xe2, 0x4c, 0x61, 0x84, 0x26, 0xfc, 0x46, 0x94, 0x40, 0x43, 0xb9, 0x80, 0x08, + 0x5d, 0x11, 0x0b, 0x46, 0xc8, 0x6b, 0xe2, 0xb8, 0xb8, 0x23, 0x46, 0xe9, 0x07, 0x7e, 0x38, 0x07, + 0xae, 0x31, 0x03, 0x64, 0x28, 0xef, 0x41, 0x8c, 0x86, 0x28, 0x63, 0xd0, 0x13, 0x08, 0x50, 0x12, + 0xb9, 0x81, 0xb2, 0x9c, 0xd2, 0xd8, 0x51, 0x92, 0x08, 0x9b, 0x02, 0xba, 0x19, 0xe2, 0x78, 0xa4, + 0x8b, 0x47, 0xaf, 0xb1, 0x1a, 0x10, 0x9f, 0x50, 0x87, 0xee, 0x40, 0x1d, 0x4c, 0xa2, 0xa0, 0xb1, + 0x21, 0x98, 0x14, 0x48, 0x42, 0xd7, 0x8d, 0x0a, 0xc2, 0x09, 0x69, 0xe7, 0xae, 0x5c, 0x11, 0x8d, + 0x12, 0xfa, 0x30, 0x52, 0x8c, 0x02, 0x7f, 0x5e, 0xa9, 0x29, 0xbe, 0x40, 0xae, 0xc2, 0x51, 0xc9, + 0x0a, 0x18, 0xa3, 0x49, 0xd2, 0x79, 0xa4, 0x0d, 0xe7, 0x53, 0x48, 0x01, 0x08, 0xce, 0xc4, 0x02, + 0x46, 0x99, 0x4d, 0xb3, 0xbc, 0x44, 0x0a, 0x11, 0x41, 0xc7, 0x21, 0x0c, 0x0b, 0x46, 0x96, 0x41, + 0x04, 0xb6, 0x87, 0x53, 0x32, 0x11, 0xa9, 0x1c, 0xeb, 0x44, 0x13, 0xab, 0xec, 0x1b, 0x57, 0xc0, + 0xf3, 0x14, 0xf8, 0x64, 0x8a, 0xf0, 0xd6, 0x73, 0xfc, 0xce, 0xb1, 0x36, 0xed, 0xd1, 0xa2, 0x42, + 0x66, 0x91, 0x9f, 0xd6, 0x20, 0x25, 0x31, 0x57, 0x1d, 0xe2, 0x55, 0x48, 0x98, 0x6c, 0xa5, 0xb5, + 0xb5, 0x4a, 0x15, 0x66, 0x48, 0x21, 0x00, 0x06, 0x97, 0xb1, 0xd2, 0x87, 0xfe, 0x5e, 0x75, 0x14, + 0xf6, 0x55, 0x41, 0x88, 0xba, 0xb7, 0xb1, 0xde, 0x68, 0x2a, 0x71, 0x82, 0xbe, 0xe7, 0x68, 0xf2, + 0x50, 0xba, 0x3d, 0xd0, 0x37, 0x64, 0x32, 0x05, 0xc9, 0xf1, 0x87, 0x6c, 0xf8, 0x8e, 0x28, 0x1f, + 0xb5, 0xb2, 0x55, 0x66, 0x0d, 0xb9, 0x58, 0x64, 0x74, 0x92, 0x8e, 0xfa, 0x66, 0xe1, 0xcf, 0x40, + 0x4c, 0x80, 0xfd, 0xac, 0x40, 0x76, 0xcc, 0x3e, 0x82, 0xd2, 0x8c, 0xc4, 0x77, 0x13, 0x6c, 0x5c, + 0x93, 0xdd, 0xe4, 0x83, 0xb2, 0xd3, 0xa2, 0x13, 0x75, 0xef, 0x15, 0x85, 0xb8, 0x01, 0xc4, 0xf0, + 0xbd, 0x47, 0xd9, 0x26, 0x81, 0xc7, 0xe5, 0x3e, 0x9f, 0xfb, 0xdf, 0x93, 0x7b, 0x1c, 0xd0, 0xef, + 0xa9, 0xfd, 0x85, 0x3f, 0x0b, 0xbe, 0x27, 0x3b, 0x48, 0x64, 0x9a, 0x3d, 0xc3, 0x23, 0xa4, 0xdf, + 0xf7, 0x30, 0x88, 0xab, 0x03, 0x14, 0x73, 0x20, 0xab, 0x13, 0x08, 0x5d, 0x71, 0x93, 0xe8, 0x53, + 0xb0, 0xb2, 0xb3, 0x48, 0x70, 0x0e, 0x1a, 0xfe, 0xdb, 0x39, 0x26, 0x06, 0xad, 0xec, 0x6b, 0x9f, + 0x0c, 0xae, 0x46, 0x6c, 0x35, 0x58, 0xf8, 0x93, 0xca, 0x28, 0xa0, 0x0b, 0x35, 0xed, 0x9b, 0xa0, + 0x0e, 0x33, 0x1f, 0x80, 0x18, 0x61, 0x52, 0xae, 0x50, 0x3e, 0x23, 0x82, 0xc6, 0x83, 0x59, 0x2f, + 0xe6, 0x08, 0x70, 0xdd, 0x0e, 0x68, 0x0e, 0x70, 0x89, 0x20, 0x00, 0x2d, 0x25, 0x2d, 0x19, 0xc3, + 0x9b, 0x2b, 0xe6, 0x88, 0x5c, 0x21, 0x3d, 0x67, 0x53, 0xae, 0x94, 0x66, 0x20, 0x9f, 0x6c, 0xbf, + 0x1f, 0xd3, 0x04, 0x42, 0x93, 0xe7, 0xdb, 0xcd, 0x8e, 0xbf, 0x82, 0xf1, 0x2e, 0x94, 0xb6, 0x30, + 0x7b, 0xdf, 0xc0, 0x0d, 0x72, 0x86, 0x8b, 0xc4, 0xce, 0x48, 0xcd, 0x89, 0xfc, 0xdd, 0x3b, 0xa7, + 0xe0, 0x29, 0x1c, 0x08, 0xf5, 0xf4, 0x02, 0x9b, 0xfe, 0xc8, 0x9a, 0x2e, 0x2b, 0xaf, 0x28, 0x9f, + 0xde, 0xcb, 0xc8, 0x43, 0xc2, 0xe2, 0x75, 0x66, 0xaf, 0x59, 0xa8, 0x17, 0x5c, 0xb7, 0x66, 0x5d, + 0x08, 0xa1, 0x54, 0x85, 0x87, 0x94, 0x33, 0x54, 0x2b, 0x8a, 0x96, 0x2b, 0xe6, 0x3b, 0x54, 0x53, + 0xd6, 0xa4, 0xb3, 0xe7, 0x28, 0x98, 0x79, 0x03, 0xe6, 0x90, 0x81, 0x4d, 0x55, 0xf7, 0x9e, 0x0e, + 0xc0, 0x43, 0xed, 0x2a, 0x6c, 0x96, 0x4e, 0xd4, 0xb0, 0x89, 0xa0, 0xcd, 0x3d, 0x31, 0x5f, 0x97, + 0xdb, 0x4b, 0xf4, 0xbf, 0xff, 0xdb, 0xff, 0x54, 0x2a, 0xcc, 0x77, 0x05, 0x88, 0x9e, 0x3a, 0xb1, + 0x48, 0xfb, 0x74, 0x33, 0x0f, 0x70, 0x49, 0xb8, 0x95, 0xb6, 0x02, 0x82, 0x01, 0x2d, 0x73, 0xf7, + 0x53, 0x74, 0xfb, 0x92, 0xcb, 0x3b, 0x38, 0xaa, 0x17, 0x53, 0xe6, 0xd9, 0x63, 0x77, 0x07, 0x89, + 0xa3, 0x0c, 0xde, 0x02, 0x14, 0x96, 0xce, 0x0b, 0xef, 0x1c, 0x2b, 0x90, 0x4c, 0xab, 0xfd, 0x31, + 0xa3, 0xc1, 0xe2, 0x8c, 0x45, 0x61, 0x7e, 0x50, 0xda, 0xfc, 0x49, 0x58, 0x26, 0x83, 0xe1, 0x2d, + 0x26, 0xbe, 0xcf, 0x71, 0x48, 0x58, 0x0a, 0xae, 0xa1, 0x3d, 0x87, 0x36, 0x4a, 0x1a, 0x4e, 0xa9, + 0x21, 0xcb, 0x7e, 0xa3, 0x24, 0x28, 0x69, 0x50, 0x61, 0x0c, 0x18, 0x80, 0xd7, 0xb2, 0x0f, 0xae, + 0xdd, 0x06, 0x62, 0xc4, 0xbc, 0x59, 0x05, 0x3c, 0xd6, 0x33, 0x1a, 0x65, 0xcd, 0x08, 0xf7, 0x7c, + 0x79, 0xd2, 0x3f, 0xa7, 0x24, 0x20, 0x13, 0x65, 0xc9, 0x57, 0x4c, 0x62, 0xb9, 0x42, 0x0c, 0x8e, + 0x60, 0x36, 0x5b, 0x15, 0x3e, 0xd1, 0xea, 0xf2, 0x0a, 0x38, 0xed, 0xd8, 0xca, 0xe8, 0x24, 0x79, + 0x94, 0x2e, 0x2a, 0x0c, 0xce, 0xd2, 0x93, 0x2c, 0x98, 0xaf, 0xe3, 0x70, 0x0a, 0xb1, 0x59, 0xf4, + 0x9f, 0x56, 0x6b, 0x81, 0x5e, 0xa5, 0x05, 0x78, 0xc6, 0xc2, 0x09, 0xc9, 0xcd, 0x6c, 0xc1, 0x23, + 0x7b, 0x53, 0xcf, 0x14, 0x33, 0x1c, 0x5b, 0xfa, 0xc1, 0x79, 0x36, 0xac, 0xb8, 0xaa, 0xf7, 0xd0, + 0x1d, 0x7c, 0x58, 0x20, 0xbd, 0x74, 0x84, 0x14, 0x03, 0x72, 0xcc, 0x2a, 0x0e, 0x34, 0x0c, 0x1c, + 0x00, 0x43, 0x7c, 0x48, 0x06, 0xe3, 0x12, 0xc2, 0x10, 0x17, 0xc5, 0xda, 0x13, 0xfd, 0xe5, 0x3d, + 0x96, 0x70, 0xb6, 0x35, 0x00, 0xf0, 0x65, 0x6b, 0xfc, 0x8a, 0x65, 0xdd, 0xd1, 0x63, 0xbe, 0x05, + 0x20, 0xa9, 0x01, 0xc2, 0x43, 0x59, 0x3e, 0xf1, 0xdf, 0x71, 0x35, 0xbf, 0xb4, 0xc9, 0x23, 0x73, + 0x6a, 0x6f, 0x6a, 0x22, 0x6b, 0xac, 0xb0, 0x65, 0xfa, 0x7b, 0x4b, 0x06, 0x74, 0x02, 0xca, 0xad, + 0xa8, 0x30, 0xfb, 0x8e, 0xb5, 0x22, 0x3a, 0xa5, 0x0e, 0xc9, 0x77, 0x10, 0x2b, 0xf5, 0x23, 0xfe, + 0x22, 0xb9, 0x1c, 0xfb, 0x1e, 0x62, 0x01, 0x6b, 0xff, 0x9f, 0x22, 0x55, 0xd6, 0xa1, 0x4d, 0x64, + 0x9e, 0xe3, 0x9e, 0xc6, 0x6c, 0x2f, 0x66, 0x5e, 0x8a, 0x35, 0x06, 0x6b, 0x9b, 0x58, 0x6c, 0x33, + 0xb3, 0x8a, 0x05, 0x62, 0x2f, 0x92, 0x2f, 0x0b, 0x34, 0x79, 0x26, 0x66, 0x53, 0x8a, 0x0d, 0x56, + 0x46, 0x93, 0x67, 0x8a, 0xaf, 0xb8, 0xe8, 0x49, 0x1e, 0x6e, 0xcf, 0x65, 0x58, 0x84, 0xd3, 0x15, + 0xea, 0xde, 0xcf, 0xcb, 0x3b, 0x29, 0x1e, 0x67, 0x35, 0xff, 0x8a, 0xdf, 0x97, 0xd1, 0xd4, 0xbc, + 0x8c, 0x91, 0xf3, 0x8c, 0xd7, 0x5c, 0xa1, 0xbc, 0xd3, 0xc8, 0x5e, 0x2e, 0xc5, 0x5b, 0x01, 0xd5, + 0x4a, 0xc5, 0x38, 0xe9, 0x3c, 0xe2, 0xcd, 0x36, 0xa8, 0x71, 0x66, 0xc5, 0x1b, 0x42, 0xf7, 0x3d, + 0xa4, 0xa1, 0x1e, 0xd6, 0x89, 0x7c, 0x12, 0x05, 0x83, 0x81, 0x00, 0xec, 0xa2, 0xef, 0x25, 0x4a, + 0x5b, 0x24, 0xbb, 0x18, 0x58, 0xcf, 0xc7, 0xb8, 0x5f, 0x85, 0x0d, 0xf0, 0x09, 0xae, 0xe2, 0xd2, + 0x30, 0xaf, 0x4a, 0xf9, 0xca, 0xbd, 0x54, 0xa5, 0xb8, 0x91, 0x4a, 0xa9, 0xf0, 0x29, 0x05, 0xd1, + 0x06, 0x40, 0x78, 0x09, 0xc8, 0x38, 0x1a, 0x31, 0xff, 0xa0, 0xbf, 0x60, 0xd2, 0x29, 0x17, 0x85, + 0xee, 0x54, 0xba, 0x58, 0x5b, 0x29, 0xad, 0x58, 0x4a, 0x18, 0x23, 0x59, 0x81, 0x5a, 0x2d, 0xd8, + 0xbb, 0xc6, 0x77, 0x4e, 0xe2, 0xd6, 0x8f, 0x0c, 0x69, 0x70, 0x7c, 0x4e, 0xf2, 0xda, 0x09, 0xc7, + 0x63, 0xa6, 0xa1, 0x8c, 0xfa, 0x9e, 0xb1, 0x91, 0x70, 0x26, 0xf5, 0xc5, 0x3b, 0xc0, 0xbb, 0x04, + 0xba, 0x57, 0x30, 0xe2, 0x71, 0x04, 0x16, 0x6f, 0xe1, 0x94, 0x0e, 0x9c, 0xa1, 0x93, 0x4e, 0x89, + 0x38, 0x76, 0x31, 0x2d, 0x41, 0x3f, 0xe4, 0x68, 0x28, 0xf3, 0x7d, 0x3f, 0x05, 0x41, 0x88, 0x52, + 0x7d, 0xf2, 0x37, 0xd3, 0x8d, 0x6b, 0x31, 0xa8, 0x3e, 0x21, 0x46, 0x55, 0x79, 0x29, 0xc8, 0x30, + 0xf3, 0x1c, 0x50, 0xa0, 0x5c, 0x82, 0xd2, 0x9d, 0x58, 0x48, 0x69, 0x14, 0x1f, 0x41, 0x54, 0x8c, + 0x16, 0x39, 0x3d, 0x05, 0x82, 0x7c, 0x8b, 0x0c, 0x2f, 0xcb, 0x36, 0x7c, 0xde, 0x83, 0x1c, 0x2b, + 0x00, 0x18, 0xba, 0xe0, 0x3a, 0x94, 0x32, 0x48, 0x82, 0xc3, 0x0c, 0x2e, 0xcb, 0x8d, 0xb4, 0x96, + 0xa1, 0x96, 0xd5, 0xc6, 0x62, 0x0f, 0x46, 0x76, 0x4b, 0xd0, 0x11, 0xe6, 0x2e, 0x31, 0x9d, 0x3d, + 0x91, 0xa2, 0x60, 0xad, 0x8a, 0x87, 0xc6, 0x80, 0xac, 0x62, 0xa9, 0x29, 0x59, 0xf3, 0x13, 0x32, + 0xbd, 0x5f, 0xae, 0x52, 0x8d, 0x8a, 0x16, 0x22, 0x4b, 0x07, 0x88, 0xc2, 0x07, 0xfe, 0x04, 0xcf, + 0xa6, 0xb0, 0xd9, 0x26, 0x17, 0xe2, 0x76, 0x97, 0xf1, 0x34, 0x43, 0x09, 0xb6, 0x91, 0xcd, 0xca, + 0x12, 0x44, 0xf4, 0x83, 0x35, 0xcc, 0x91, 0xdd, 0xcb, 0xa8, 0x7c, 0x5e, 0x4a, 0x6a, 0x77, 0x28, + 0xf9, 0x08, 0xbb, 0xac, 0x3c, 0x53, 0x52, 0x7b, 0xa0, 0x74, 0x94, 0xcd, 0xcd, 0xa4, 0x3a, 0x41, + 0x2d, 0xae, 0xaf, 0x93, 0x05, 0xdc, 0x2c, 0x43, 0xc4, 0xd6, 0xe7, 0xd5, 0x31, 0xcb, 0x37, 0x5e, + 0x65, 0x9d, 0x83, 0x44, 0x5d, 0x26, 0x76, 0x53, 0xa0, 0xc9, 0x66, 0x3f, 0x7e, 0x5e, 0x4a, 0x0c, + 0x62, 0x74, 0x6b, 0x9b, 0xaa, 0x82, 0x65, 0x2b, 0x7c, 0x8d, 0x19, 0xd4, 0x36, 0x7c, 0xc7, 0x4c, + 0x7f, 0xe3, 0x43, 0x5e, 0xa5, 0xc6, 0xd2, 0x84, 0x19, 0xdf, 0x7c, 0xc7, 0x2b, 0x6d, 0x0a, 0x93, + 0xc6, 0x4c, 0x90, 0x74, 0x6e, 0x56, 0xcc, 0x10, 0x52, 0x35, 0x23, 0xb2, 0x0f, 0x78, 0x05, 0x92, + 0x27, 0xc5, 0x8a, 0x20, 0x27, 0xb8, 0x42, 0xac, 0xee, 0x1f, 0x51, 0x4c, 0x5e, 0x1f, 0xd4, 0x45, + 0xf7, 0x39, 0x52, 0x1b, 0xeb, 0x12, 0x22, 0x1a, 0xb9, 0x4b, 0x28, 0xa5, 0x84, 0xac, 0xc9, 0xc7, + 0xda, 0x68, 0xbe, 0xd3, 0x42, 0xde, 0x29, 0x26, 0x3f, 0x24, 0x24, 0x47, 0x76, 0x5e, 0x44, 0x1c, + 0xfb, 0xf1, 0x02, 0x52, 0x10, 0x05, 0x71, 0x71, 0x41, 0x0b, 0xfd, 0xf3, 0x32, 0xd7, 0x25, 0x26, + 0x35, 0x93, 0x15, 0x4b, 0x9f, 0x8a, 0x8f, 0x1c, 0xc6, 0xeb, 0xa2, 0x93, 0xba, 0x7a, 0xf7, 0x09, + 0x8f, 0x54, 0xfe, 0x19, 0x11, 0xba, 0x38, 0x4a, 0x74, 0x71, 0xb5, 0xca, 0x45, 0xe6, 0xe2, 0x08, + 0x23, 0xaa, 0x09, 0xb1, 0xc1, 0x3a, 0x0c, 0x31, 0xd0, 0x21, 0x10, 0x78, 0x4a, 0x59, 0x19, 0x93, + 0x6b, 0x54, 0x05, 0x54, 0x6c, 0xd4, 0xa2, 0x10, 0x95, 0xb1, 0x80, 0xd9, 0x57, 0x88, 0x4d, 0xa6, + 0x11, 0x7f, 0xb0, 0x99, 0x71, 0xe6, 0x45, 0x9e, 0x41, 0xcd, 0xb2, 0xde, 0x9c, 0xda, 0x5b, 0x73, + 0xc6, 0x84, 0xe6, 0x91, 0x9b, 0xae, 0x42, 0x05, 0xa7, 0x80, 0x70, 0xd2, 0x1e, 0x27, 0x76, 0x39, + 0x3d, 0x31, 0x12, 0x27, 0x99, 0xd0, 0xa7, 0xc8, 0x43, 0x41, 0x71, 0xce, 0xbe, 0x6f, 0xac, 0x19, + 0xc7, 0x54, 0x8f, 0x77, 0x1f, 0x63, 0x38, 0x93, 0xb9, 0xfd, 0xbc, 0x44, 0x40, 0x3b, 0x85, 0x5b, + 0x28, 0x56, 0xe3, 0x20, 0xd1, 0x08, 0x73, 0xac, 0x57, 0xc5, 0x37, 0x9f, 0x35, 0xf5, 0x48, 0xef, + 0xb2, 0x7c, 0x99, 0x61, 0xc2, 0x1d, 0xaa, 0xc4, 0xc2, 0xa6, 0xbe, 0x16, 0x53, 0x12, 0x47, 0xb9, + 0x69, 0xfa, 0x15, 0x2b, 0x8f, 0x05, 0x9d, 0x68, 0xcd, 0x9b, 0x4a, 0xd0, 0x5c, 0xed, 0x27, 0x84, + 0xb5, 0x38, 0xf7, 0xf0, 0xf4, 0xe9, 0x9d, 0x11, 0xa2, 0x05, 0xe3, 0x0b, 0xd3, 0xef, 0xd4, 0x23, + 0x7c, 0xef, 0xe3, 0xc3, 0x1d, 0xbc, 0xab, 0x82, 0x2f, 0xe6, 0xd7, 0x0d, 0xe9, 0xf8, 0xaf, 0x38, + 0x32, 0x40, 0x7e, 0x11, 0xd2, 0xcf, 0x82, 0x00, 0x7c, 0x7e, 0x77, 0x51, 0x10, 0x49, 0xa3, 0x7c, + 0x17, 0x45, 0xb6, 0xa0, 0x16, 0x98, 0xe4, 0x87, 0x58, 0x4b, 0x28, 0xa6, 0x78, 0xc4, 0x4e, 0x44, + 0xb6, 0x48, 0xc2, 0x36, 0x21, 0xe2, 0xa3, 0xed, 0x84, 0x53, 0x97, 0x2c, 0x32, 0x92, 0x8d, 0x55, + 0xae, 0x4a, 0x1e, 0xdb, 0xcf, 0xbe, 0x11, 0xaf, 0xef, 0x87, 0xc1, 0x15, 0x1d, 0x1d, 0x07, 0xe3, + 0x52, 0xcc, 0xd6, 0xe1, 0x9e, 0x83, 0xee, 0x84, 0x04, 0x23, 0xc7, 0xeb, 0x98, 0x5d, 0x5c, 0xcf, + 0x00, 0xe1, 0xee, 0x98, 0x31, 0x66, 0x5c, 0xa6, 0xb3, 0x5c, 0x7c, 0x45, 0x37, 0xb3, 0x74, 0x9a, + 0x5d, 0x02, 0x0d, 0x89, 0x17, 0x56, 0x42, 0x1a, 0x38, 0xc3, 0xd8, 0xe8, 0x8f, 0x2a, 0xe1, 0x6c, + 0x30, 0xa0, 0x61, 0xb8, 0x5c, 0x9b, 0x23, 0xfb, 0xa9, 0x39, 0x20, 0xc3, 0x96, 0xc9, 0x32, 0x39, + 0xde, 0xd0, 0x2f, 0xc8, 0x51, 0xaf, 0xed, 0xb4, 0x87, 0x0d, 0x96, 0x63, 0x4e, 0x02, 0xaf, 0x20, + 0xc7, 0x70, 0x38, 0xa8, 0x99, 0x5b, 0x2c, 0x07, 0x5b, 0xa8, 0x29, 0xcc, 0xd2, 0xaa, 0xb7, 0xea, + 0x71, 0x12, 0xa5, 0x17, 0x64, 0x69, 0x34, 0x1a, 0xb1, 0x98, 0x40, 0x29, 0x4c, 0x6d, 0xc6, 0x86, + 0x5d, 0xe9, 0xc3, 0xc0, 0xba, 0x5a, 0x0a, 0x8a, 0x77, 0xd8, 0x1b, 0x82, 0x31, 0x78, 0x4a, 0xa0, + 0xf8, 0x82, 0x40, 0x0f, 0x18, 0x92, 0x00, 0xf1, 0x25, 0x36, 0x32, 0xc1, 0xd9, 0x92, 0x3d, 0xdb, + 0x4e, 0x40, 0x19, 0x4f, 0x3b, 0x1c, 0x2a, 0xb2, 0xf0, 0x69, 0xf0, 0x65, 0xf2, 0xdc, 0xa9, 0x89, + 0x04, 0x19, 0xa0, 0x2d, 0x33, 0x6f, 0xc0, 0x9a, 0x5c, 0x62, 0x2d, 0x97, 0x08, 0x25, 0x57, 0x02, + 0xc0, 0xa5, 0x7c, 0xef, 0xf0, 0xf7, 0x4c, 0x06, 0x1e, 0x79, 0x2d, 0xd3, 0xf7, 0x0e, 0xbe, 0xc7, + 0xc6, 0x1c, 0x03, 0xc9, 0x25, 0x9b, 0x5d, 0x64, 0xe2, 0x11, 0x1b, 0x2c, 0xb4, 0xcc, 0x4a, 0x4c, + 0x0c, 0xe6, 0x09, 0xf0, 0x92, 0x72, 0xc3, 0x5e, 0xeb, 0xf2, 0x15, 0x77, 0x8e, 0x18, 0x93, 0x45, + 0x02, 0xa8, 0x80, 0xa3, 0x86, 0x40, 0x21, 0x66, 0x15, 0x3e, 0xc5, 0x27, 0xb2, 0x05, 0x1c, 0x09, + 0x91, 0xc4, 0xa6, 0xc2, 0x04, 0x1a, 0x53, 0xac, 0x52, 0x0a, 0x24, 0xcb, 0x8c, 0x46, 0x2b, 0x81, + 0xd4, 0xea, 0x02, 0xd4, 0x4c, 0x41, 0x6d, 0x06, 0x5a, 0xa4, 0xb9, 0x58, 0xd3, 0x98, 0x53, 0x4a, + 0xb6, 0x6c, 0x9c, 0x97, 0xce, 0xcc, 0x12, 0x2e, 0xd9, 0x33, 0x9b, 0x13, 0xed, 0x70, 0x88, 0x48, + 0x96, 0x26, 0x73, 0x95, 0x90, 0x5d, 0x96, 0x9a, 0x00, 0xa9, 0xeb, 0x3a, 0xd3, 0xd0, 0x09, 0xbb, + 0xf3, 0x31, 0x58, 0xe1, 0x0a, 0x5b, 0x90, 0x02, 0x39, 0x98, 0x07, 0x64, 0x1a, 0x1b, 0xd9, 0xa9, + 0xd6, 0x25, 0x7f, 0x41, 0x53, 0x1d, 0x26, 0x2d, 0xe5, 0x16, 0xd0, 0x72, 0x39, 0x04, 0x2c, 0x36, + 0xe4, 0x0c, 0x6d, 0x9f, 0x46, 0x73, 0xdc, 0x66, 0x94, 0xcc, 0xd8, 0xf2, 0x29, 0x86, 0x0e, 0x6b, + 0x51, 0xa6, 0xa6, 0xd9, 0x45, 0xa3, 0xab, 0xb9, 0x65, 0xc3, 0xa9, 0xb3, 0xb0, 0xc4, 0xbd, 0x0b, + 0x20, 0xfc, 0x53, 0x30, 0xea, 0x2b, 0x49, 0x9d, 0x31, 0x76, 0x73, 0x7d, 0x9c, 0x04, 0xa3, 0x3e, + 0x61, 0x5b, 0xa3, 0xe4, 0x7f, 0xa3, 0xae, 0xc5, 0x06, 0x1e, 0x09, 0x4f, 0x46, 0x82, 0xe3, 0xe1, + 0x1e, 0x28, 0x3e, 0x92, 0xba, 0x5c, 0xa4, 0x1a, 0xc8, 0x0e, 0x21, 0x4b, 0xec, 0x39, 0x53, 0x6f, + 0x40, 0xa7, 0xa0, 0xc8, 0x80, 0x6e, 0xe2, 0x29, 0x9b, 0x36, 0xf5, 0x43, 0x87, 0x0f, 0x1e, 0x81, + 0x3b, 0x36, 0x54, 0x41, 0xbf, 0x27, 0x8b, 0x19, 0x3b, 0x7e, 0x9e, 0xd9, 0xcf, 0xc1, 0x8f, 0xa3, + 0x87, 0xd7, 0xa3, 0xf2, 0xcd, 0xc4, 0xed, 0xca, 0xa3, 0xf8, 0x17, 0xe7, 0x2f, 0x2a, 0xdb, 0xfa, + 0x2e, 0x80, 0x15, 0x00, 0x7b, 0x38, 0xdd, 0x1f, 0x45, 0xd3, 0x4e, 0xb5, 0x3a, 0x9f, 0xcf, 0x8d, + 0x79, 0xc3, 0xf0, 0x83, 0x51, 0xb5, 0x0e, 0x1a, 0x0f, 0x0b, 0xaa, 0x7c, 0xa2, 0xdd, 0x52, 0x1b, + 0xa6, 0x2a, 0xa6, 0xa2, 0xf9, 0x33, 0x3f, 0x5e, 0x74, 0x63, 0xa9, 0xa6, 0x62, 0x2a, 0x0d, 0xfc, + 0xa7, 0xee, 0xed, 0x4e, 0x49, 0x34, 0x56, 0x70, 0xce, 0xa3, 0xa5, 0x6c, 0x19, 0xad, 0x71, 0xdd, + 0x84, 0x87, 0x9a, 0xf8, 0xae, 0xd7, 0x19, 0x04, 0x17, 0x11, 0x02, 0xff, 0x0a, 0xd7, 0xb4, 0x50, + 0x56, 0xe4, 0x6b, 0x45, 0x34, 0xd3, 0x4c, 0x00, 0x48, 0xba, 0x01, 0x99, 0x5a, 0x2a, 0xeb, 0x9a, + 0x5a, 0xc5, 0xb9, 0xe9, 0xeb, 0xd1, 0xde, 0xa6, 0x96, 0x51, 0x6d, 0x72, 0xd1, 0xa5, 0x01, 0x84, + 0xcc, 0xec, 0x7c, 0xda, 0x96, 0xaf, 0x73, 0x9e, 0xbe, 0x65, 0x9a, 0x71, 0xd1, 0xac, 0xa5, 0x21, + 0x1d, 0xc4, 0x65, 0xdf, 0x47, 0x2d, 0x42, 0x6c, 0x90, 0x65, 0xc7, 0x43, 0xd3, 0x6c, 0x2a, 0x95, + 0xd6, 0xf4, 0x06, 0xbe, 0x7e, 0x6a, 0x6f, 0x0f, 0xe3, 0xcc, 0x2c, 0x9e, 0x54, 0x0d, 0x2d, 0x30, + 0x1c, 0x50, 0xa1, 0x7c, 0x33, 0xd9, 0x08, 0xbf, 0x11, 0xef, 0x40, 0x3d, 0x64, 0xed, 0x6a, 0xa5, + 0x95, 0x1a, 0xab, 0xd2, 0xc4, 0x3d, 0x89, 0xc3, 0x66, 0x5c, 0x3c, 0x37, 0x98, 0x41, 0x6a, 0x4d, + 0x35, 0x03, 0x2e, 0xcd, 0x82, 0x6a, 0x5b, 0xb2, 0x5a, 0x86, 0x2b, 0x9b, 0x7b, 0x1b, 0xd7, 0xf8, + 0x41, 0xe1, 0x44, 0x4b, 0x75, 0xef, 0xac, 0x8d, 0x6d, 0x46, 0x93, 0x9a, 0x01, 0x6a, 0x0a, 0x7d, + 0x17, 0x1c, 0x23, 0x86, 0x62, 0x37, 0xa7, 0x6f, 0xd6, 0xf7, 0xf5, 0xfc, 0x4b, 0xed, 0x9f, 0x67, + 0x71, 0x8c, 0x38, 0x15, 0x7a, 0xf4, 0xde, 0x32, 0x75, 0xf1, 0x7c, 0x4a, 0x89, 0xfd, 0xde, 0x73, + 0x17, 0x56, 0x2d, 0x85, 0x84, 0x78, 0xc8, 0xd6, 0xb6, 0xea, 0x12, 0x72, 0x36, 0x75, 0xac, 0x86, + 0x7c, 0x39, 0xf2, 0xae, 0x41, 0x49, 0xd9, 0x56, 0x72, 0x2c, 0xa7, 0x2b, 0xb6, 0xa6, 0xf0, 0x46, + 0x97, 0xcc, 0x59, 0xc2, 0x13, 0xab, 0x99, 0xed, 0x29, 0x54, 0x27, 0xda, 0x92, 0xa4, 0x51, 0x81, + 0x75, 0x99, 0x2e, 0xc0, 0x19, 0x3f, 0x2f, 0x29, 0x8f, 0x3b, 0x44, 0x9c, 0xa1, 0x17, 0x78, 0x60, + 0x11, 0x0d, 0xa3, 0x92, 0x8a, 0x9f, 0xaa, 0xa6, 0x53, 0xc3, 0x5b, 0x3f, 0xc8, 0x4b, 0x1e, 0x3a, + 0xc8, 0x4b, 0x56, 0x0e, 0xf2, 0x12, 0x76, 0x90, 0xd7, 0xf0, 0xd6, 0x4e, 0x33, 0x11, 0x2d, 0x7b, + 0x30, 0x99, 0x4d, 0x2a, 0x4e, 0x0c, 0x3c, 0xd1, 0xe2, 0xd8, 0x9a, 0x16, 0xc7, 0x0c, 0x15, 0xaa, + 0x2d, 0xe3, 0xf4, 0x34, 0x1d, 0xbc, 0x51, 0x83, 0x87, 0xde, 0xe2, 0x84, 0x1f, 0x9e, 0x6e, 0x41, + 0xc0, 0xb3, 0xe4, 0xa4, 0x7a, 0x27, 0x39, 0xf3, 0x97, 0xa4, 0xa9, 0x17, 0x00, 0x51, 0x3b, 0xea, + 0xd9, 0x22, 0x04, 0xc9, 0x57, 0x93, 0x83, 0xe5, 0xe0, 0xac, 0x4e, 0x67, 0xe1, 0x18, 0xcf, 0x5c, + 0x16, 0x04, 0x85, 0x49, 0x24, 0x23, 0x8e, 0x88, 0xa7, 0xb8, 0x6a, 0xf1, 0x9c, 0xb8, 0x57, 0xe7, + 0x63, 0x10, 0xf3, 0x11, 0x3f, 0x34, 0x8d, 0x74, 0x91, 0x87, 0x56, 0x44, 0xb7, 0x1d, 0xb6, 0xba, + 0xfa, 0x8c, 0x18, 0x5e, 0x27, 0x6d, 0x4f, 0x9e, 0xc1, 0xa4, 0x25, 0xa2, 0x3b, 0xe2, 0xa8, 0xac, + 0x3c, 0x7c, 0x83, 0x6f, 0x8e, 0xe1, 0xe1, 0x09, 0x2e, 0x1e, 0x81, 0x16, 0x34, 0xe2, 0x68, 0x7a, + 0xa4, 0x25, 0x25, 0xe2, 0x38, 0x7f, 0xee, 0x77, 0x59, 0x5c, 0x6c, 0x85, 0x7b, 0x78, 0x4e, 0xb4, + 0x88, 0x17, 0x2b, 0x67, 0x88, 0x63, 0x3c, 0xa9, 0x23, 0xce, 0xa5, 0x65, 0xb9, 0xfe, 0x50, 0x1b, + 0x0e, 0x9e, 0xdb, 0x62, 0x87, 0x31, 0xa7, 0x78, 0x58, 0x92, 0x1d, 0x8f, 0xc4, 0x07, 0x92, 0xa2, + 0x2d, 0x6a, 0x3e, 0x21, 0xe8, 0xc3, 0xff, 0x68, 0xfd, 0xce, 0xd3, 0xa7, 0x8e, 0x51, 0xdc, 0x82, + 0x83, 0x2d, 0xac, 0x9c, 0x4d, 0x25, 0x9c, 0xf4, 0x4e, 0xd7, 0x11, 0xa7, 0xc2, 0xc3, 0x3a, 0x08, + 0x48, 0xc1, 0xb9, 0x64, 0x76, 0xd6, 0xf5, 0x99, 0x0a, 0x23, 0x7e, 0xea, 0x52, 0x10, 0x1a, 0x9e, + 0xb9, 0x71, 0x6f, 0x66, 0x76, 0x58, 0xa2, 0xa3, 0x8e, 0x02, 0x3c, 0xe4, 0x21, 0x4e, 0x85, 0xb1, + 0x28, 0xf1, 0x80, 0x2f, 0xa0, 0x97, 0xd4, 0x3a, 0x9e, 0x40, 0x72, 0xad, 0x7b, 0xce, 0x41, 0xef, + 0x5a, 0x4d, 0xf3, 0x59, 0xbd, 0xd3, 0xd4, 0x83, 0xfb, 0x72, 0x55, 0x5d, 0xdd, 0xe3, 0xc7, 0xa4, + 0xc1, 0x2c, 0xc0, 0xc0, 0x63, 0x86, 0x00, 0x80, 0xd4, 0xe0, 0x46, 0xaa, 0x5a, 0x0a, 0xca, 0x75, + 0x0d, 0x0f, 0x18, 0xd6, 0xcc, 0x5f, 0x3c, 0xdd, 0xb6, 0x02, 0xf8, 0xf4, 0x79, 0x09, 0xf0, 0xa1, + 0x40, 0x36, 0x65, 0xa1, 0x4a, 0xa8, 0x55, 0xeb, 0x9a, 0x3e, 0xc6, 0x3b, 0x22, 0xf0, 0xf8, 0x00, + 0x25, 0xc1, 0x29, 0x1e, 0xf8, 0x32, 0x75, 0x53, 0x17, 0x59, 0x92, 0x5a, 0x21, 0x9b, 0x71, 0x63, + 0xf9, 0xf0, 0xb9, 0xb0, 0x3c, 0x3d, 0x32, 0xfa, 0x14, 0x94, 0xfd, 0x09, 0xd4, 0x89, 0xd7, 0x24, + 0xe0, 0xc4, 0x11, 0x44, 0xc6, 0xb8, 0x64, 0xef, 0x88, 0x37, 0x56, 0x11, 0x14, 0xc1, 0x02, 0x7a, + 0xa8, 0xdb, 0xf9, 0x5c, 0xec, 0x28, 0x0a, 0x9e, 0x2c, 0x51, 0xf5, 0xba, 0x65, 0xb9, 0xcf, 0xf2, + 0x65, 0xca, 0x35, 0xa3, 0x05, 0x38, 0x9b, 0xfa, 0x16, 0x7c, 0x36, 0x7e, 0xf1, 0xb4, 0xce, 0x4a, + 0x7a, 0x5d, 0xa4, 0xb7, 0x44, 0x7a, 0xbe, 0x6e, 0xdc, 0x21, 0x7e, 0x5f, 0xbd, 0x80, 0x51, 0x19, + 0x4a, 0xb1, 0xda, 0xb7, 0xee, 0xac, 0x5d, 0xe6, 0x6a, 0xf1, 0xff, 0xda, 0x7a, 0x9f, 0x81, 0x45, + 0x16, 0xab, 0xb1, 0xac, 0xa2, 0x31, 0xc3, 0xc0, 0x4c, 0xcd, 0x63, 0xd2, 0x77, 0xc1, 0x14, 0x22, + 0x0c, 0x25, 0xa0, 0x87, 0xee, 0xa6, 0xa5, 0x8a, 0xa5, 0x7f, 0x91, 0x11, 0x17, 0x92, 0x4b, 0x77, + 0x49, 0x15, 0x92, 0xbc, 0x2c, 0x71, 0x69, 0x23, 0x0e, 0xd8, 0x29, 0xd4, 0x0e, 0x85, 0x8d, 0xe4, + 0x3a, 0xd1, 0x16, 0xc5, 0x6a, 0x75, 0x78, 0xa8, 0x8b, 0x3e, 0xac, 0x11, 0x8a, 0x2e, 0xd6, 0x0a, + 0x36, 0x58, 0xef, 0xc1, 0x57, 0x40, 0xca, 0x32, 0xea, 0x32, 0x69, 0x1e, 0x58, 0xe6, 0xca, 0xbd, + 0x08, 0x2e, 0xbb, 0x06, 0x21, 0xd1, 0x75, 0x00, 0x73, 0x76, 0x83, 0xae, 0x03, 0x30, 0x36, 0xcc, + 0x02, 0xb4, 0x4b, 0xe1, 0xdc, 0xc1, 0xa3, 0x75, 0x05, 0x1d, 0x4c, 0x2e, 0x4d, 0x18, 0x7c, 0xd5, + 0x96, 0x03, 0x5c, 0xe5, 0x37, 0x3b, 0x50, 0x64, 0x6b, 0x5b, 0xaf, 0x6d, 0x35, 0xf4, 0x96, 0xf9, + 0xb5, 0xcb, 0x76, 0x1f, 0x75, 0x59, 0x52, 0x0d, 0x93, 0xea, 0x35, 0x48, 0x6b, 0xec, 0xe8, 0xcd, + 0x9d, 0x5c, 0x5a, 0x1d, 0xd3, 0x6a, 0xad, 0x36, 0x94, 0xd1, 0xeb, 0xcd, 0xb6, 0x4c, 0xb3, 0xe9, + 0x90, 0xcc, 0xdc, 0x88, 0x25, 0xee, 0xd4, 0xf5, 0xe6, 0xb6, 0xde, 0xd8, 0xfe, 0x1a, 0x67, 0xbb, + 0x7f, 0xc9, 0xfc, 0xea, 0x9f, 0x97, 0xc1, 0x17, 0xf3, 0x6b, 0xac, 0xe3, 0x77, 0x4d, 0x7c, 0xd7, + 0xd9, 0x37, 0xf9, 0x32, 0x28, 0xb7, 0xbe, 0xc6, 0xda, 0x25, 0x93, 0xf9, 0x92, 0x53, 0x36, 0x5a, + 0x1a, 0xf0, 0x7a, 0x55, 0xf8, 0x71, 0x58, 0x98, 0x4c, 0x05, 0x21, 0x73, 0xfe, 0xfc, 0x93, 0xee, + 0x5a, 0xb5, 0xa7, 0x4f, 0x9b, 0x28, 0x7d, 0x25, 0x2a, 0xca, 0xf8, 0x9d, 0x7a, 0xfe, 0xbd, 0xbc, + 0xfd, 0x8b, 0xd7, 0xc9, 0xbc, 0x22, 0xb7, 0x22, 0x83, 0x04, 0x83, 0x64, 0xc8, 0x18, 0x4d, 0x26, + 0xe1, 0xe2, 0xee, 0x85, 0x93, 0x23, 0xc9, 0xba, 0xd2, 0x1d, 0x82, 0xf8, 0xb7, 0xc8, 0xa1, 0x2e, + 0x5a, 0x2f, 0x7b, 0xd5, 0x26, 0x18, 0xc4, 0x72, 0x39, 0x8e, 0xd3, 0xa3, 0x9a, 0x2b, 0xe6, 0x02, + 0x0f, 0x49, 0x72, 0xee, 0x72, 0x13, 0xcb, 0xb9, 0xc8, 0x36, 0x79, 0xaa, 0x1d, 0xa1, 0x85, 0xd9, + 0x0d, 0x2b, 0x00, 0x00, 0x05, 0xef, 0x60, 0x84, 0x83, 0xa7, 0xab, 0x59, 0x2e, 0x6f, 0x36, 0xe9, + 0xa3, 0x3d, 0xce, 0xe4, 0x3b, 0x66, 0xa0, 0xb5, 0x9c, 0xc9, 0x35, 0x28, 0xd9, 0xbc, 0x07, 0x02, + 0xb8, 0x96, 0x3b, 0xc0, 0xed, 0xd7, 0xb9, 0xac, 0xa7, 0x08, 0x59, 0xcb, 0x27, 0x4e, 0x86, 0x65, + 0x33, 0xee, 0x33, 0xd0, 0x5a, 0x4e, 0x71, 0xfe, 0x29, 0x9b, 0x93, 0x2f, 0xbb, 0xaf, 0xe5, 0x9c, + 0x06, 0xfe, 0x08, 0x37, 0xcc, 0xe7, 0xf2, 0x9e, 0x08, 0xe0, 0x7a, 0xbf, 0x08, 0xf8, 0x76, 0xf9, + 0xbc, 0x07, 0x0c, 0xb4, 0x9e, 0x13, 0x54, 0xb6, 0xdd, 0x78, 0x9e, 0xcf, 0xca, 0x61, 0x6b, 0x79, + 0x59, 0x1c, 0x99, 0x27, 0x3f, 0x42, 0xb2, 0xf9, 0x92, 0x81, 0x91, 0xe6, 0xc9, 0x24, 0xc7, 0x31, + 0xf7, 0x30, 0x25, 0x88, 0x9d, 0x53, 0x83, 0xd8, 0x9c, 0xed, 0x85, 0xa1, 0xc2, 0xbd, 0xb8, 0x16, + 0x89, 0x96, 0x70, 0x8b, 0x3c, 0xb0, 0xcf, 0xec, 0xaa, 0x08, 0xf6, 0x06, 0x36, 0xdf, 0xb1, 0x4b, + 0x68, 0x7e, 0xd9, 0x03, 0x4d, 0xbd, 0xd7, 0xf4, 0xe8, 0xb5, 0x95, 0x02, 0x9f, 0xe5, 0xaa, 0xc4, + 0xd2, 0x65, 0x15, 0x5c, 0xc0, 0x3c, 0xd4, 0xb1, 0x3b, 0x8f, 0xcb, 0x56, 0x56, 0x7f, 0x02, 0xf7, + 0x31, 0xe6, 0x8e, 0xda, 0x31, 0xe0, 0xc5, 0xdc, 0xb2, 0x0c, 0x06, 0xd2, 0x03, 0xc8, 0x17, 0x0c, + 0xfc, 0x67, 0x97, 0x7c, 0x93, 0x12, 0x9f, 0xa6, 0xcf, 0x74, 0x84, 0x68, 0x71, 0x32, 0xfb, 0xff, + 0x73, 0xbe, 0xff, 0x46, 0xba, 0xf4, 0x93, 0x03, 0xb3, 0xa3, 0x72, 0xb1, 0xd8, 0xe1, 0x74, 0xd9, + 0xb9, 0xcc, 0xdc, 0xfa, 0xb3, 0x5e, 0x75, 0xb2, 0x8c, 0x54, 0x50, 0xf3, 0xfd, 0xed, 0xca, 0x73, + 0x8d, 0xc5, 0xcd, 0xa7, 0x87, 0x10, 0x2f, 0xf5, 0xdc, 0x25, 0x44, 0x4e, 0x9c, 0x8f, 0x16, 0xb2, + 0xd4, 0xa1, 0xf9, 0x73, 0xbd, 0x3c, 0x70, 0x50, 0x2c, 0x65, 0x0d, 0xef, 0xdf, 0xed, 0x24, 0x86, + 0xe8, 0x72, 0xf5, 0xbf, 0xc2, 0x7f, 0xa2, 0x95, 0xd5, 0xdf, 0xc5, 0x5d, 0x30, 0xea, 0xf9, 0x73, + 0x3c, 0x58, 0xc8, 0xe4, 0x04, 0x3d, 0x74, 0xb0, 0x60, 0x4e, 0xbe, 0x21, 0x7e, 0x60, 0xf8, 0xe7, + 0xa5, 0x3c, 0x77, 0xbf, 0xca, 0x56, 0x2d, 0x96, 0x87, 0x8a, 0x2f, 0xb5, 0xac, 0x2b, 0xce, 0x38, + 0xec, 0x80, 0x67, 0xa7, 0x17, 0x90, 0x00, 0x9a, 0x21, 0x6b, 0x82, 0x26, 0x2e, 0x4f, 0xf8, 0x80, + 0x19, 0x4a, 0x05, 0x85, 0xf2, 0x97, 0x67, 0xdc, 0x99, 0xed, 0x0b, 0xf9, 0x0a, 0xad, 0xae, 0x36, + 0x0b, 0x9e, 0xbb, 0x18, 0x82, 0x4f, 0xac, 0x75, 0x8e, 0x81, 0xcf, 0x5a, 0x44, 0xde, 0x75, 0xa1, + 0xf8, 0x3d, 0xdd, 0xbf, 0xe1, 0x41, 0x9e, 0x94, 0xd2, 0x89, 0x01, 0x4e, 0x2e, 0x27, 0x49, 0x9b, + 0x5e, 0xf3, 0xe7, 0xe9, 0x5a, 0x6c, 0xb5, 0xca, 0x1e, 0x0f, 0x1c, 0x52, 0x68, 0x0e, 0x2f, 0x4f, + 0xc9, 0x12, 0x4a, 0x1e, 0x19, 0x05, 0xaf, 0x10, 0xef, 0x1d, 0xba, 0x38, 0xb2, 0xbe, 0x64, 0x07, + 0xf6, 0xd7, 0x6c, 0xa4, 0x94, 0xbf, 0x99, 0x23, 0xb9, 0x2a, 0x83, 0xd3, 0xad, 0x68, 0xe8, 0xad, + 0xcb, 0x09, 0x88, 0x08, 0x5e, 0x1e, 0x70, 0x76, 0xd2, 0x3b, 0x06, 0x0f, 0xdb, 0x49, 0xa4, 0xe4, + 0x19, 0xbf, 0x5a, 0x20, 0x43, 0xb3, 0xbc, 0xdc, 0x58, 0xc0, 0x2b, 0x99, 0x45, 0xf2, 0xdb, 0x49, + 0x8e, 0xa9, 0x6a, 0x12, 0x95, 0x03, 0x7e, 0x7e, 0x4d, 0x5c, 0xe5, 0x40, 0x39, 0x1a, 0xc4, 0x4a, + 0x14, 0x17, 0x5e, 0x42, 0x03, 0xe9, 0x28, 0x49, 0x2b, 0x5b, 0xff, 0x54, 0x71, 0xf4, 0x0d, 0x84, + 0x98, 0xfc, 0xf9, 0x27, 0x90, 0x08, 0xef, 0xa4, 0x28, 0x2a, 0xa7, 0xa7, 0x39, 0x81, 0xa0, 0xe9, + 0x0e, 0x41, 0x8b, 0x16, 0xdd, 0x1d, 0x92, 0xd4, 0x20, 0x51, 0x59, 0xe1, 0x5b, 0x41, 0x48, 0x9e, + 0x0f, 0x95, 0xd6, 0x34, 0xa1, 0xbe, 0x36, 0x5c, 0xd8, 0xb0, 0xa3, 0x06, 0x1b, 0x32, 0xdf, 0xd3, + 0x63, 0x56, 0x00, 0xfb, 0xfb, 0x2c, 0xd7, 0x0d, 0x5e, 0x51, 0xa7, 0xb0, 0x86, 0xec, 0x44, 0x83, + 0x1c, 0xc6, 0xa2, 0x40, 0x3a, 0x68, 0xcb, 0xf7, 0x17, 0x45, 0x09, 0xe4, 0xac, 0x94, 0xa3, 0xb0, + 0x5a, 0x7d, 0x62, 0x29, 0x26, 0xae, 0xc4, 0x88, 0x4b, 0x5d, 0x14, 0x73, 0x03, 0x32, 0xad, 0x5c, + 0x40, 0x21, 0x32, 0xe3, 0x7c, 0x47, 0x5e, 0xf0, 0x44, 0x42, 0x3a, 0x01, 0x01, 0xde, 0x29, 0xd9, + 0x15, 0x60, 0x79, 0x35, 0x07, 0xc1, 0x5b, 0xbc, 0xd6, 0x06, 0x7b, 0x6e, 0x80, 0xf3, 0x7b, 0x78, + 0xee, 0xcc, 0x24, 0xc8, 0x2c, 0xb8, 0x9f, 0x19, 0xfc, 0x24, 0x3f, 0xf2, 0xc5, 0x9d, 0x49, 0xab, + 0x12, 0x29, 0x0b, 0xe2, 0x34, 0x0b, 0x9e, 0x14, 0x13, 0x9c, 0xea, 0x12, 0xeb, 0x3b, 0xee, 0xd3, + 0x13, 0x97, 0xb0, 0xa9, 0x9d, 0x4b, 0x31, 0xb7, 0x5a, 0x70, 0x6a, 0x5d, 0xdc, 0x48, 0x15, 0x57, + 0xb1, 0x95, 0xea, 0xa5, 0xbe, 0x7a, 0xeb, 0x06, 0x11, 0x08, 0xe4, 0x05, 0x49, 0x5f, 0x99, 0x35, + 0xe0, 0x79, 0xb2, 0x37, 0x37, 0x11, 0x89, 0xb9, 0x01, 0x6e, 0x84, 0xf5, 0xc4, 0xcc, 0xdd, 0x8d, + 0xa1, 0x66, 0x44, 0x9f, 0x1f, 0x84, 0x13, 0x6b, 0xc8, 0x2a, 0xda, 0x23, 0x5b, 0xf6, 0x19, 0x03, + 0xf5, 0x74, 0x16, 0x83, 0x93, 0x57, 0x3a, 0x0a, 0xaa, 0x5a, 0xce, 0xdd, 0x07, 0xd6, 0x5a, 0xb9, + 0x0f, 0x2c, 0x3f, 0xf9, 0x01, 0xa6, 0x50, 0x95, 0xc2, 0xae, 0xaa, 0xba, 0x83, 0xb7, 0xb2, 0xc8, + 0xf1, 0xb6, 0x52, 0x3f, 0x48, 0x8c, 0x95, 0x30, 0xeb, 0xef, 0x18, 0x70, 0x7c, 0x96, 0xe9, 0x12, + 0x2c, 0x58, 0xac, 0xa8, 0x4c, 0x36, 0xd4, 0x8e, 0x50, 0xeb, 0x2b, 0x4d, 0xc7, 0xe0, 0x10, 0xe4, + 0xb2, 0x7d, 0xb9, 0x23, 0x9f, 0xae, 0x7c, 0x6f, 0xc2, 0xd7, 0x4b, 0xec, 0xb4, 0xae, 0xc6, 0x94, + 0xdd, 0x4d, 0x05, 0xd4, 0x73, 0xca, 0x94, 0x83, 0xe4, 0x5d, 0x79, 0xa2, 0x69, 0xa9, 0xaf, 0x3a, + 0xca, 0x9a, 0xf7, 0x80, 0x3e, 0x94, 0x22, 0xe9, 0x2e, 0x08, 0x6d, 0x44, 0xfe, 0x19, 0xdb, 0xfc, + 0x55, 0x6a, 0xb4, 0x35, 0x23, 0xc4, 0xb9, 0xd1, 0x52, 0x1d, 0x9c, 0x97, 0xcb, 0x6e, 0xce, 0x14, + 0xa4, 0x9a, 0x2e, 0x23, 0x23, 0x97, 0xcb, 0xbc, 0x7d, 0x83, 0x62, 0x9d, 0x25, 0x44, 0x57, 0x31, + 0xf4, 0x82, 0xe2, 0x47, 0x04, 0xec, 0xbf, 0xd4, 0x12, 0xcf, 0x33, 0x1b, 0x2f, 0x28, 0xf0, 0x4c, + 0x3d, 0x3b, 0xe3, 0x8e, 0x16, 0xcb, 0xc9, 0x25, 0x34, 0xf1, 0x38, 0x84, 0x65, 0x2b, 0xf9, 0x68, + 0x63, 0xbd, 0x9d, 0xff, 0xef, 0x40, 0x42, 0xf2, 0xc4, 0xf1, 0xd6, 0x13, 0x01, 0x88, 0x49, 0xe4, + 0xa6, 0x20, 0x89, 0xdc, 0xc4, 0xea, 0x3d, 0x7e, 0xe7, 0x0f, 0x0e, 0x72, 0xc1, 0xb2, 0xd5, 0xa0, + 0xef, 0x7b, 0x98, 0xb6, 0xe2, 0xd7, 0xde, 0x47, 0xce, 0xf2, 0x5f, 0x20, 0x68, 0xd2, 0xf5, 0xec, + 0x81, 0x07, 0x1e, 0xc2, 0x4e, 0xd8, 0xdd, 0x2b, 0x92, 0xa5, 0x3f, 0xec, 0x27, 0x09, 0x2b, 0xc9, + 0x5c, 0x1d, 0x71, 0x1b, 0x24, 0x44, 0x61, 0xe8, 0x15, 0xd9, 0x14, 0xc2, 0x79, 0x60, 0x0e, 0x50, + 0xc0, 0xaa, 0xd4, 0x2c, 0x6b, 0x45, 0x99, 0x03, 0x79, 0x59, 0x21, 0xdb, 0x09, 0xf1, 0xd5, 0xc6, + 0x9b, 0xeb, 0xb4, 0xbb, 0x39, 0x52, 0xca, 0xf1, 0x60, 0xd7, 0x68, 0x34, 0x9e, 0x55, 0x6a, 0x9d, + 0x15, 0x60, 0xbb, 0xfd, 0xcc, 0xec, 0xd4, 0x12, 0x06, 0xe5, 0x42, 0xed, 0xff, 0x20, 0xee, 0xdc, + 0xcb, 0x1b, 0x26, 0xaf, 0xa6, 0x10, 0x4e, 0x10, 0xa4, 0xef, 0xe3, 0x56, 0xa1, 0x27, 0x1e, 0x5c, + 0x3f, 0x34, 0x3a, 0xef, 0x65, 0x65, 0x38, 0x9b, 0xa6, 0x9a, 0x31, 0xc9, 0xa1, 0xdd, 0x13, 0x32, + 0x41, 0x83, 0x6b, 0x8c, 0xce, 0x78, 0x62, 0xda, 0x5f, 0x1c, 0x44, 0xf9, 0x59, 0x8e, 0xff, 0x1b, + 0x4c, 0x7a, 0xa4, 0x46, 0xba, 0x3b, 0x12, 0xcc, 0x28, 0x98, 0x3b, 0x88, 0xc1, 0xf6, 0xe5, 0xc8, + 0x1e, 0xe7, 0x67, 0x6b, 0xbe, 0xa7, 0xc7, 0x6b, 0x1a, 0x7e, 0x85, 0x04, 0xff, 0x51, 0xea, 0x7e, + 0xb5, 0x19, 0x7e, 0x7d, 0xd6, 0x0f, 0x34, 0xf4, 0xf0, 0x04, 0x81, 0xb8, 0x45, 0xe9, 0x47, 0xf5, + 0xd1, 0xb0, 0xe4, 0x48, 0x87, 0xcb, 0xc1, 0xb5, 0x8e, 0x5e, 0xc4, 0xef, 0xaf, 0xa7, 0x25, 0x95, + 0x5f, 0xd8, 0x14, 0xf2, 0x09, 0x00, 0xa2, 0xb1, 0x10, 0x93, 0xc8, 0xfb, 0x0f, 0xc1, 0x1f, 0x59, + 0xd3, 0x4e, 0x2c, 0x36, 0x22, 0x72, 0x75, 0x2c, 0x9d, 0x6c, 0x66, 0x77, 0x65, 0x12, 0x2d, 0xb2, + 0xd6, 0x06, 0x03, 0x5e, 0x71, 0x8c, 0x53, 0x94, 0xc9, 0xfd, 0x8e, 0x99, 0xe0, 0x30, 0x17, 0x6b, + 0x5b, 0xe2, 0x9e, 0x3e, 0x9a, 0xa9, 0x36, 0xe2, 0xd5, 0xae, 0x44, 0xe4, 0xb9, 0x0b, 0xa8, 0xc0, + 0x3f, 0x81, 0xea, 0x91, 0x5b, 0x71, 0x72, 0x01, 0xd5, 0x65, 0x9c, 0x0f, 0x33, 0xe3, 0x7b, 0x23, + 0xbc, 0x64, 0x18, 0x1b, 0x82, 0x1c, 0xda, 0xdd, 0x31, 0xcc, 0x83, 0xa1, 0xca, 0xbd, 0x76, 0xc1, + 0xc1, 0x83, 0x59, 0x05, 0xe4, 0xd7, 0xd3, 0xa6, 0x33, 0xb1, 0x0c, 0x0b, 0xc4, 0x1e, 0x2c, 0xd0, + 0xcd, 0x69, 0x2f, 0xd1, 0xbf, 0xef, 0x32, 0x19, 0x66, 0x81, 0xc5, 0xa8, 0x75, 0xea, 0xda, 0xea, + 0xa2, 0x25, 0x6f, 0x28, 0x07, 0xdc, 0x4c, 0x30, 0xea, 0x7c, 0x51, 0xa9, 0x83, 0x98, 0xa9, 0xb7, + 0x73, 0x8a, 0xb7, 0x6d, 0xd9, 0x01, 0x7c, 0x7d, 0xdd, 0x4c, 0x74, 0xda, 0xea, 0x1c, 0xeb, 0x5f, + 0xd0, 0x6a, 0x72, 0x0e, 0xf7, 0x1e, 0xff, 0xe6, 0xfe, 0x81, 0x98, 0x4c, 0x02, 0xc3, 0xe0, 0x92, + 0xcf, 0x7b, 0x89, 0xd7, 0x99, 0x9f, 0xe1, 0xfd, 0x0b, 0x78, 0xf2, 0xd9, 0xe3, 0x1f, 0x52, 0x3e, + 0xbb, 0x55, 0x5e, 0x18, 0xb0, 0xba, 0x7b, 0x1e, 0x30, 0x5f, 0x12, 0xe3, 0x34, 0x79, 0xab, 0x68, + 0x0e, 0x28, 0xc2, 0x3e, 0x4d, 0xe7, 0x0c, 0x5c, 0xd9, 0x85, 0xf0, 0x18, 0xed, 0x9c, 0x9b, 0x9e, + 0xfe, 0x6e, 0x37, 0xdc, 0xe2, 0xb7, 0x84, 0x8a, 0x48, 0x8e, 0x2b, 0x24, 0x5c, 0x07, 0xce, 0x86, + 0x1b, 0xe0, 0x1c, 0xa5, 0x17, 0xa3, 0xad, 0x53, 0x44, 0xc7, 0x2a, 0x1c, 0xa8, 0x82, 0x5f, 0xdf, + 0xa1, 0xaf, 0xcd, 0xaa, 0x71, 0xc5, 0x81, 0xb9, 0x64, 0x4e, 0xfc, 0xd1, 0x11, 0xbc, 0x4c, 0x32, + 0x0a, 0xd4, 0x74, 0x86, 0xc1, 0x29, 0x9c, 0x92, 0xe3, 0xca, 0x4c, 0x62, 0x39, 0x86, 0xfc, 0x6c, + 0x9d, 0xda, 0x49, 0xe6, 0xaf, 0x11, 0x5d, 0x3d, 0x7b, 0x75, 0x9b, 0xc3, 0xb1, 0x8a, 0x32, 0xda, + 0x4b, 0x9a, 0x42, 0x87, 0x9d, 0xab, 0x64, 0x3a, 0x71, 0x75, 0xce, 0x08, 0x37, 0x12, 0x24, 0x93, + 0x60, 0xb9, 0x20, 0x9c, 0x1d, 0x76, 0xe6, 0xb4, 0xc6, 0x7a, 0xb8, 0x6a, 0x53, 0x75, 0x37, 0x11, + 0x18, 0x5d, 0x14, 0xd4, 0x74, 0xf2, 0xe4, 0x7b, 0x27, 0x4b, 0xf9, 0x24, 0x49, 0xc7, 0xcd, 0xe9, + 0x88, 0x25, 0x4b, 0xea, 0x88, 0x6a, 0x79, 0x78, 0x7f, 0x9f, 0x79, 0x59, 0x57, 0x89, 0xda, 0xfa, + 0x94, 0xd5, 0xca, 0x3c, 0x95, 0xe0, 0x56, 0x4a, 0x7d, 0xb0, 0x2d, 0x6b, 0x47, 0x22, 0x19, 0x83, + 0xa4, 0x06, 0x75, 0xd2, 0x2b, 0x59, 0x93, 0x25, 0x4a, 0xce, 0x56, 0xb2, 0xc2, 0x49, 0xf2, 0x08, + 0x4e, 0xe2, 0xc4, 0xf6, 0xbd, 0x5b, 0x59, 0x22, 0xdd, 0xd1, 0x61, 0x60, 0xc4, 0xf1, 0xda, 0x06, + 0x8d, 0x44, 0x17, 0xe4, 0x97, 0x70, 0xfe, 0x82, 0x32, 0xf8, 0x61, 0x3f, 0x24, 0x77, 0x59, 0xa2, + 0x58, 0x92, 0xcb, 0x3b, 0xd1, 0x78, 0xed, 0x6f, 0x5b, 0x55, 0xd8, 0x7d, 0x87, 0x63, 0xdf, 0xb5, + 0x69, 0x60, 0xa9, 0x37, 0xb8, 0x43, 0xee, 0x87, 0x4a, 0x2e, 0x7e, 0xb8, 0xe4, 0x2d, 0xdf, 0x95, + 0xf7, 0x37, 0xc5, 0x4e, 0x18, 0x3a, 0xc1, 0xa8, 0x40, 0xd2, 0x86, 0xec, 0x27, 0x1a, 0x6e, 0xf2, + 0xb0, 0x2f, 0xe6, 0x57, 0x11, 0x60, 0x65, 0x20, 0xd2, 0xe4, 0x1b, 0x37, 0x38, 0xe9, 0xb5, 0x58, + 0x29, 0x51, 0x5b, 0x2b, 0x51, 0x4b, 0x4b, 0x2c, 0xb0, 0xc4, 0xed, 0x4a, 0x89, 0xfa, 0x5a, 0x89, + 0x7a, 0x5a, 0xe2, 0xf6, 0xce, 0xd8, 0xec, 0x72, 0x09, 0x0c, 0xe8, 0xc8, 0xe9, 0x0e, 0xfe, 0x43, + 0x03, 0x6d, 0x73, 0xd5, 0xdb, 0xd7, 0x15, 0x20, 0xf6, 0x63, 0x72, 0xdd, 0x3e, 0x9c, 0x2b, 0xbe, + 0x2c, 0xbc, 0xf2, 0x91, 0xed, 0x5c, 0xcf, 0x6e, 0x4f, 0xef, 0x81, 0x70, 0xb9, 0xfa, 0x2b, 0xea, + 0xf2, 0xcb, 0x64, 0xf4, 0x74, 0xbb, 0x7a, 0xb7, 0x78, 0x83, 0x3b, 0x88, 0x63, 0x29, 0x7b, 0x59, + 0x98, 0x96, 0xd9, 0x59, 0xc9, 0xd3, 0x92, 0x77, 0x2d, 0x1e, 0xd7, 0xf4, 0x71, 0x7d, 0x99, 0x2d, + 0x38, 0x96, 0xa5, 0xd8, 0xd6, 0x57, 0xb9, 0x41, 0x73, 0x7a, 0x13, 0xdb, 0xce, 0xf5, 0x32, 0x0b, + 0xab, 0xc7, 0x6c, 0x16, 0x3a, 0xbf, 0xf9, 0xb9, 0x3d, 0xbd, 0xc9, 0xa1, 0x91, 0xb9, 0xfc, 0x4e, + 0x8b, 0xc5, 0xf4, 0x18, 0xef, 0x1e, 0xeb, 0x6f, 0xc7, 0x89, 0x88, 0xeb, 0x0c, 0xe4, 0xde, 0x6a, + 0x97, 0x0e, 0xd7, 0xab, 0xc8, 0xdd, 0x94, 0xa7, 0xc5, 0x4c, 0xd0, 0xb3, 0x7b, 0xfb, 0x71, 0xbb, + 0xc5, 0x23, 0xba, 0xce, 0x76, 0x40, 0x72, 0xc7, 0x3c, 0x5b, 0xda, 0x54, 0xcc, 0xc7, 0x16, 0xe6, + 0x9e, 0xd3, 0xf2, 0xae, 0xdc, 0x99, 0x4a, 0x79, 0xa2, 0xbc, 0xc2, 0x4d, 0x8b, 0x49, 0x31, 0x85, + 0x59, 0x69, 0x9b, 0x0e, 0xfc, 0x80, 0x4d, 0x28, 0xf3, 0x8d, 0xf7, 0x08, 0xc4, 0x5b, 0x41, 0x32, + 0x5b, 0xd8, 0xbb, 0xd9, 0xd3, 0x0e, 0x62, 0xbf, 0x27, 0x5e, 0xca, 0x38, 0x0b, 0xf9, 0xee, 0xf0, + 0xc7, 0x75, 0x27, 0xe6, 0x0e, 0x8a, 0xa8, 0xb7, 0x01, 0xf2, 0x22, 0xb7, 0x31, 0xc3, 0x63, 0x51, + 0xad, 0x0c, 0x94, 0xdd, 0x51, 0x8a, 0x32, 0xb6, 0xda, 0x16, 0xdf, 0x76, 0x2d, 0x56, 0xbf, 0x63, + 0x03, 0x17, 0xd6, 0x96, 0x59, 0x6e, 0xd6, 0x4d, 0xb6, 0x55, 0x9d, 0xa9, 0xde, 0xc7, 0x8a, 0x75, + 0x72, 0xbd, 0xa2, 0x4b, 0xa6, 0x21, 0xed, 0xc8, 0x07, 0xb1, 0x03, 0x7b, 0x0d, 0x59, 0x33, 0x41, + 0x56, 0x08, 0x95, 0xd8, 0xe2, 0x9e, 0xd9, 0x67, 0x6b, 0xb2, 0xed, 0xb5, 0xd8, 0x15, 0xbc, 0xe8, + 0x53, 0xe0, 0xa3, 0x44, 0xb6, 0x2e, 0x9f, 0xc6, 0xcb, 0xe2, 0xee, 0xca, 0xfd, 0xb3, 0x28, 0x94, + 0xf2, 0x46, 0x1d, 0xb1, 0xcf, 0x3e, 0xf2, 0xa7, 0x71, 0x5a, 0x3c, 0xb3, 0x01, 0x1f, 0xfb, 0xbd, + 0xbe, 0x5b, 0x57, 0xf0, 0x23, 0x61, 0xfe, 0x9d, 0xa3, 0xc4, 0xe0, 0x1b, 0x30, 0x75, 0x31, 0x6b, + 0xae, 0x1b, 0xfc, 0xf7, 0x15, 0x74, 0x43, 0xec, 0xbe, 0x94, 0x98, 0xd6, 0x13, 0x4c, 0x85, 0xb8, + 0x65, 0x6e, 0xa5, 0xbc, 0x4f, 0x1a, 0x8b, 0xc8, 0x27, 0xbb, 0xd9, 0x4a, 0xce, 0x39, 0xb0, 0x47, + 0xc1, 0x5d, 0xbc, 0x3f, 0x00, 0xba, 0xea, 0xfb, 0x6e, 0xe4, 0x4c, 0x97, 0xc9, 0x4e, 0xf6, 0x80, + 0xba, 0x04, 0xcf, 0x02, 0x75, 0x0b, 0xb7, 0xcb, 0xaf, 0xef, 0x4b, 0xb6, 0xe1, 0x91, 0x72, 0xba, + 0x26, 0xb5, 0x29, 0xf2, 0x01, 0xe9, 0xb7, 0x64, 0x17, 0x77, 0x39, 0x10, 0xcb, 0x2e, 0x24, 0x0f, + 0xc5, 0x20, 0xa8, 0x9b, 0xf9, 0x9d, 0xf6, 0x59, 0xe2, 0xa5, 0x1d, 0x5b, 0xd7, 0x2b, 0x77, 0xeb, + 0x91, 0xee, 0xda, 0x89, 0x89, 0x2c, 0x11, 0x94, 0x55, 0x21, 0x43, 0xfe, 0x27, 0x1d, 0x27, 0x7d, + 0xa0, 0x3b, 0x84, 0x77, 0xdd, 0xdb, 0x0a, 0x3b, 0x1d, 0xdc, 0xa9, 0x75, 0x93, 0x83, 0x19, 0xad, + 0x7f, 0x74, 0x99, 0xdc, 0xb7, 0x92, 0x83, 0x49, 0x7c, 0x1c, 0x54, 0xda, 0xd8, 0x05, 0x7f, 0x4a, + 0x06, 0xd8, 0x3b, 0xb3, 0x1b, 0x81, 0x25, 0x10, 0xd5, 0x09, 0xa0, 0x62, 0x34, 0xc2, 0x62, 0xba, + 0x74, 0x3a, 0xec, 0x08, 0xe1, 0x52, 0x1e, 0x7f, 0x80, 0xb8, 0x7b, 0x1d, 0x17, 0x76, 0x56, 0x04, + 0x15, 0x44, 0x71, 0xf3, 0xad, 0x74, 0x90, 0x70, 0x9a, 0xb6, 0x56, 0x47, 0x0d, 0x93, 0xa5, 0x6e, + 0xfe, 0x6e, 0xd3, 0x56, 0xab, 0xa5, 0x30, 0x4c, 0xf9, 0xf2, 0xe2, 0x5d, 0xcf, 0x09, 0xda, 0xfc, + 0xac, 0xc5, 0x9d, 0x4c, 0x15, 0x17, 0xb3, 0x25, 0x64, 0xa8, 0xc5, 0x45, 0x9b, 0xe5, 0x05, 0xbf, + 0xb2, 0x37, 0x76, 0x6a, 0x45, 0x7b, 0xd7, 0x93, 0x2d, 0x54, 0xc9, 0x0e, 0x65, 0x19, 0x35, 0x3f, + 0xa7, 0x13, 0x5f, 0x4d, 0xb7, 0x58, 0xe5, 0x7f, 0x97, 0x69, 0xb9, 0x96, 0x50, 0xf2, 0x92, 0x20, + 0xaa, 0x66, 0x59, 0xf8, 0x53, 0x11, 0x05, 0x77, 0xcd, 0x0b, 0xdf, 0xca, 0x99, 0xe0, 0xef, 0x10, + 0x4e, 0xc8, 0x54, 0x4d, 0x4f, 0xd8, 0x0a, 0x20, 0xc4, 0xd4, 0x99, 0x63, 0xd9, 0x10, 0x97, 0x04, + 0x94, 0xe2, 0x52, 0x90, 0xbc, 0x81, 0x72, 0xe6, 0x4d, 0xaf, 0x46, 0xec, 0x02, 0x4a, 0x96, 0xf4, + 0x4f, 0xd3, 0xa8, 0xb5, 0xda, 0x46, 0xad, 0xda, 0x9f, 0x81, 0xaf, 0xc2, 0x61, 0x62, 0xcc, 0x1b, + 0xdf, 0x20, 0x2e, 0x5f, 0xa9, 0x09, 0xaf, 0xbd, 0x81, 0x08, 0xa4, 0xfa, 0x98, 0x1a, 0xc5, 0x2d, + 0x54, 0x61, 0xf5, 0x5b, 0x38, 0xa9, 0xaa, 0xf9, 0xeb, 0x3e, 0x94, 0x4c, 0xcf, 0xaa, 0xe2, 0x87, + 0x1e, 0xd9, 0x7d, 0x8b, 0xec, 0xf2, 0x6e, 0xf4, 0xff, 0x15, 0xdf, 0x73, 0x7d, 0x62, 0xe7, 0xce, + 0xf3, 0xca, 0x9f, 0x31, 0xc3, 0x40, 0x17, 0x33, 0xed, 0x29, 0x40, 0x21, 0xf6, 0x6b, 0x91, 0xff, + 0x07, 0x8c, 0x4b, 0xb5, 0x35, 0x45, 0x72, 0x00, 0x00 +}; +>>>>>>> ewowi/dev