diff --git a/SAEDashboard/.dockerignore b/SAEDashboard/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..d2a0d4504f88955ba36acd6b64a7d27402b56b14 --- /dev/null +++ b/SAEDashboard/.dockerignore @@ -0,0 +1,184 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# ruff +.ruff_cache + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +*.pkl +*.pt +sae_vis/archive_fns.py +*__pycache__ +mats_sae_training +callum_instructions.md +april-fools +*large.html +requirements.txt +tests/fixtures/cache_benchmark/ +tests/fixtures/cache_unit/ + +neuronpedia_outputs/ +cached_activations/ +wandb/ + + +**.safetensors +**flamegraph.html +artifacts/ \ No newline at end of file diff --git a/SAEDashboard/.flake8 b/SAEDashboard/.flake8 new file mode 100644 index 0000000000000000000000000000000000000000..7c3fd1c4bdae5beda6faf7607763294f58a196e2 --- /dev/null +++ b/SAEDashboard/.flake8 @@ -0,0 +1,8 @@ +[flake8] +extend-ignore = E203, E266, E501, W503, E721, F722, E731, E402, F821 +max-line-length = 79 +max-complexity = 25 +extend-select = E9, F63, F7, F82 +show-source = true +statistics = true +exclude = ./wandb/*, ./research/wandb/*, .venv/* diff --git a/SAEDashboard/.github/workflows/ci.yaml b/SAEDashboard/.github/workflows/ci.yaml new file mode 100644 index 0000000000000000000000000000000000000000..53aea83f0ef510f608473888b66d4a4fa5e48c08 --- /dev/null +++ b/SAEDashboard/.github/workflows/ci.yaml @@ -0,0 +1,117 @@ +name: "ci" + +on: + pull_request: + branches: ["**"] + push: + branches: ["**"] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.10", "3.11", "3.12"] + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Cache Huggingface assets + uses: actions/cache@v4 + with: + key: huggingface-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/pyproject.toml') }} + path: ~/.cache/huggingface + restore-keys: | + huggingface-${{ runner.os }}-${{ matrix.python-version }}- + + - name: Load cached Poetry installation + id: cached-poetry + uses: actions/cache@v4 + with: + path: ~/.local + key: poetry-${{ runner.os }}-${{ matrix.python-version }}-1 # Incremented to reset cache + + - name: Install Poetry + if: steps.cached-poetry.outputs.cache-hit != 'true' + uses: snok/install-poetry@v1 + with: + version: 1.5.1 # Specify a version explicitly + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true + + - name: Check Poetry Version + run: poetry --version + + - name: Load cached venv + id: cached-poetry-dependencies + uses: actions/cache@v4 + with: + path: .venv + key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/pyproject.toml') }}-1 # Incremented to reset cache + restore-keys: | + venv-${{ runner.os }}-${{ matrix.python-version }}- + + - name: Install dependencies + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: poetry install --no-interaction + + - name: List installed packages + run: poetry run pip list + + - name: Check flake8 installation + run: poetry run which flake8 + + - name: check linting + run: poetry run flake8 . + + - name: check formatting + run: poetry run black --check . + + - name: check types + run: poetry run pyright . + + - name: test + run: poetry run pytest --cov=sae_dashboard --cov-report=term-missing tests/unit + + - name: build + run: poetry build + + release: + needs: build + permissions: + contents: write + id-token: write + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, 'chore(release):') + runs-on: ubuntu-latest + concurrency: release + environment: + name: pypi + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Semantic Release + id: release + uses: python-semantic-release/python-semantic-release@v9.8.8 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + if: steps.release.outputs.released == 'true' + + - name: Publish package distributions to GitHub Releases + uses: python-semantic-release/upload-to-gh-release@main + if: steps.release.outputs.released == 'true' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/SAEDashboard/.gitignore b/SAEDashboard/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..21c67716c16d152227be39642f025322c6ef7971 --- /dev/null +++ b/SAEDashboard/.gitignore @@ -0,0 +1,204 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# ruff +.ruff_cache + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +*.pkl +*.pt +sae_vis/archive_fns.py +*__pycache__ +mats_sae_training +callum_instructions.md +april-fools +*large.html +requirements.txt +tests/fixtures/cache_benchmark/ +tests/fixtures/cache_unit/ + +neuronpedia_outputs/ +cached_activations/ +wandb/ +demo_activations_cache/ +test_activations_cache/ +demo_feature_dashboards.html + +**.safetensors +**flamegraph.html +artifacts/ +prof/ + +.vscode/settings.json +dfa_tests.ipynb + +.DS_Store + +# Test and temporary directories +crosslayer-coding/ +SAELens/ +clt_test*/ +test_output/ +test_outputs/ +clt-technical-description.md + +ignore_data/ + +outputs/ \ No newline at end of file diff --git a/SAEDashboard/.vscode/settings.json b/SAEDashboard/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..ba62e2cfde8da8acf4d4e1b871e8d8af5a9aef30 --- /dev/null +++ b/SAEDashboard/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "python.testing.pytestArgs": [ + "tests" +], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, + + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + } + }, + "isort.args": ["--profile", "black"], +"editor.defaultFormatter": "mikoz.black-py", +"liveServer.settings.port": 5501 +} diff --git a/SAEDashboard/CHANGELOG.md b/SAEDashboard/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..77b1ccdb27e8a92acb9b3bcefaa4f46cc577d3b8 --- /dev/null +++ b/SAEDashboard/CHANGELOG.md @@ -0,0 +1,1263 @@ +# CHANGELOG + +## v0.7.3 (2025-10-11) + +### Fix + +* fix: broken dependencies ([`25ce6e8`](https://github.com/jbloomAus/SAEDashboard/commit/25ce6e8ae2debe232b0eff4ba910fa10fc816480)) + +### Unknown + +* Merge pull request #70 from jbloomAus/fix_deps + +fix: broken dependencies ([`352b9b2`](https://github.com/jbloomAus/SAEDashboard/commit/352b9b2148b62c8fabb7adcf6bf0cbacfa345a74)) + +* update .gitignore ([`6133ca6`](https://github.com/jbloomAus/SAEDashboard/commit/6133ca67b39bf6e033e8b4792f5eba9850668821)) + +## v0.7.2 (2025-09-01) + +### Fix + +* fix: use clt pypi library ([`a3197b8`](https://github.com/jbloomAus/SAEDashboard/commit/a3197b8870d43107bba0356af11c64ddc054392d)) + +## v0.7.1 (2025-08-31) + +### Fix + +* fix: force build ([`f432ba2`](https://github.com/jbloomAus/SAEDashboard/commit/f432ba2d14edd4c11ac71e947fbb1e97790e753e)) + +## v0.7.0 (2025-08-31) + +### Feature + +* feat: Merge pull request #69 from jbloomAus/qwen-transcoder + +Transcoder Support + SAELens v6 ([`8f8651e`](https://github.com/jbloomAus/SAEDashboard/commit/8f8651edaf8c20bc8eaff09e05de238a4ce780fb)) + +### Fix + +* fix: relax saelens to not break saelens demo project ([`e38d140`](https://github.com/jbloomAus/SAEDashboard/commit/e38d1408f30f47f9e91646fa8646300750b23fd3)) + +### Unknown + +* Merge branch 'main' into qwen-transcoder ([`ae9dede`](https://github.com/jbloomAus/SAEDashboard/commit/ae9dedead671996ebf4f7de84eb4252b2af85fc2)) + +* Merge pull request #67 from jbloomAus/relax_saelens + +fix: relax saelens to not break saelens demo project ([`fa1691a`](https://github.com/jbloomAus/SAEDashboard/commit/fa1691ab224e684618b2e800b8fda8af741eb81b)) + +## v0.6.11 (2025-08-05) + +### Fix + +* fix: fixes tool.semantic_release subtable (#66) ([`eb36157`](https://github.com/jbloomAus/SAEDashboard/commit/eb361571550a4653f7fbcc5a9cc2c98c329aaf41)) + +* fix: fixes tool.semantic_release subtable (#66) ([`725d76d`](https://github.com/jbloomAus/SAEDashboard/commit/725d76d9ac00e3b295c6b11f4657f4432c925e9e)) + +### Unknown + +* upgrades python-semantic-release (#65) ([`fcdae8b`](https://github.com/jbloomAus/SAEDashboard/commit/fcdae8b0e18bbf2c5184977bdf14cc14280fb6bc)) + +* fix CI ([`d7dffdd`](https://github.com/jbloomAus/SAEDashboard/commit/d7dffdd79b0165cbdfb360f13622385f884a2158)) + +* upgrades python-semantic-release (#65) ([`721d683`](https://github.com/jbloomAus/SAEDashboard/commit/721d683b437f378f22c3e713cb4e3f16bdc82e1a)) + +* converter ([`30ff988`](https://github.com/jbloomAus/SAEDashboard/commit/30ff9881f4ea1adc3305675088f5fb808367d5eb)) + +* bos override ([`bd04133`](https://github.com/jbloomAus/SAEDashboard/commit/bd04133033ce5b422f62fc12099eb6527d6f8070)) + +* add prefix tokens to cli ([`4560dd7`](https://github.com/jbloomAus/SAEDashboard/commit/4560dd7301a713b3b45d836df3e43bf25ba52c64)) + +* add prefix tokens to cli ([`50636fb`](https://github.com/jbloomAus/SAEDashboard/commit/50636fb667384fbf1df8d7809cfe3c5ebc44beab)) + +* top acts group 20 ([`1e3d3d4`](https://github.com/jbloomAus/SAEDashboard/commit/1e3d3d4228b5f526f9a2e1d90cb51ff74d8e60b8)) + +* temp updates for qwen transcoder ([`5727ac9`](https://github.com/jbloomAus/SAEDashboard/commit/5727ac944feed9eb78f60f6553feb40c7b6622d8)) + +* some config fixes ([`51d903a`](https://github.com/jbloomAus/SAEDashboard/commit/51d903a98ebc2402f6d4863f1efc1062420ea3eb)) + +* olved double normalization ([`5293073`](https://github.com/jbloomAus/SAEDashboard/commit/5293073adef90efc0804c61d9dbe3ab55430f62b)) + +* updated readme ([`6ea06f2`](https://github.com/jbloomAus/SAEDashboard/commit/6ea06f2371e80191d8a29cca0c5e134943db02d0)) + +* formatting changes ([`ad7422e`](https://github.com/jbloomAus/SAEDashboard/commit/ad7422e11a5525d8584991e278a3342ebf4ff892)) + +* Update CLT test script parameters ([`9961859`](https://github.com/jbloomAus/SAEDashboard/commit/996185947217ccd13d6763462d764cbd2977a28e)) + +* Merge pull request #64 from jbloomAus/clt-support + +CLT Support ([`57971a9`](https://github.com/jbloomAus/SAEDashboard/commit/57971a9e85b62cc2a9e7bf04ee8d8c26fac9cecc)) + +* Add Cross-Layer Transcoder (CLT) support to SAEDashboard + +- Add CLTLayerWrapper to provide SAE-compatible interface for CLTs +- Integrate CLT loading into NeuronpediaRunner with --use-clt flag +- Add CLT-specific configuration parameters (clt_layer_idx, clt_weights_filename) +- Support JumpReLU activation with learned thresholds +- Add normalization statistics loading from norm_stats.json +- Handle CLT-specific hook naming conventions (tl_input_template) +- Add comprehensive unit tests for CLT functionality +- Fix existing unit tests to use StandardSAE/StandardSAEConfig + +🤖 Generated with [Claude Code](https://claude.ai/code) + +Co-Authored-By: Claude <noreply@anthropic.com> ([`fab4c6c`](https://github.com/jbloomAus/SAEDashboard/commit/fab4c6cc7a026bbf9beed229734a34323f22c158)) + +* Add CLT (Cross-Layer Transcoder) support + +- Add CLTLayerWrapper to wrap CLT models for SAE-compatible interface +- Add CLT loading logic in neuronpedia_runner with local file support +- Add conditional logic to skip fold_W_dec_norm() for CLT wrappers +- Add conditional logic to skip hook_z_reshaping_mode for CLT wrappers +- Add support for additional hook types (hook_mlp_out, hook_attn_out, etc.) +- Add CLI arguments for CLT configuration (--use-clt, --clt-layer-idx, etc.) +- Ensure set_use_hook_mlp_in is called for CLT models ([`0c58760`](https://github.com/jbloomAus/SAEDashboard/commit/0c587608d2da05aa5ed3656afc0ca6b001fbf79b)) + +* script for CLT dashboard generation ([`31e7154`](https://github.com/jbloomAus/SAEDashboard/commit/31e7154363af98af2d6ec269ee9a78f9723048bb)) + +* formatting ([`210fdc4`](https://github.com/jbloomAus/SAEDashboard/commit/210fdc4bd3d8e2dc957c2925719a7a7f7bca1de3)) + +* simplified init function ([`883deb4`](https://github.com/jbloomAus/SAEDashboard/commit/883deb46d75df68af96c2366f59a41dd4a6db964)) + +* formatted tests ([`676b0f1`](https://github.com/jbloomAus/SAEDashboard/commit/676b0f17db4ad919c951414e29c1eb224efa8cef)) + +* added tests and formatting ([`70cbad3`](https://github.com/jbloomAus/SAEDashboard/commit/70cbad3074d2c0a86929921d78d20954e1caf6d8)) + +* Fix compatibility with new SAELens API structure + +- Fix hook_layer extraction from hook_name when not in config +- Remove deprecated unpacking of SAE.from_pretrained() return values +- Handle prepend_bos in both config and metadata locations +- Add support for extracting layer number from hook_name pattern + +Co-Authored-By: Claude <noreply@anthropic.com> ([`9018991`](https://github.com/jbloomAus/SAEDashboard/commit/9018991a40b62b7f4ece4f91aa8f07b9f2119d9f)) + +* Fix indentation and hook_name access for transcoders + +- Fix indentation errors in neuronpedia_runner.py +- Fix hook_name access - it's always in metadata for both SAEs and transcoders +- Add test scripts for transcoder functionality +- Successfully tested transcoder dashboard generation + +Co-Authored-By: Claude <noreply@anthropic.com> ([`31368e4`](https://github.com/jbloomAus/SAEDashboard/commit/31368e4387757063df87e3b04bd512e13a8cc7d5)) + +* Update .gitignore to exclude test directories and submodules ([`5bf67c5`](https://github.com/jbloomAus/SAEDashboard/commit/5bf67c56e242f496b849957675dd610863485aeb)) + +* Add transcoder support to SAEDashboard + +- Update imports from sae_lens to use new API structure +- Add support for loading Transcoder and SkipTranscoder +- Handle differences between SAE and Transcoder configs +- Add support for normalized hooks in transformer_lens_wrapper +- Fix architecture handling in FeatureMaskingContext +- Update ActivationsStore.from_sae() to include dataset parameter + +Co-Authored-By: Claude <noreply@anthropic.com> ([`02f78a0`](https://github.com/jbloomAus/SAEDashboard/commit/02f78a0b2a6d08729e60caf06649fca4dfc38ec7)) + +## v0.6.10 (2025-07-16) + +### Fix + +* fix: relax SAELens requirement ([`a83147e`](https://github.com/jbloomAus/SAEDashboard/commit/a83147efbf30ef4c4380f306a03468a0c8d41be0)) + +* fix: Merge pull request #45 from Hzfinfdu/main + +fix: reading model_from_pretrained_kwargs from SAELens config with th… ([`0a509fe`](https://github.com/jbloomAus/SAEDashboard/commit/0a509fede04737b8087140fb4fe5f7addc259806)) + +* fix: reading model_from_pretrained_kwargs from SAELens config with the correct key ([`9938812`](https://github.com/jbloomAus/SAEDashboard/commit/9938812ad209764ceb021eedffb08c0fc5a31c89)) + +### Unknown + +* Merge pull request #60 from jbloomAus/fix-unit-tests + +fixes unit tests ([`1a3975d`](https://github.com/jbloomAus/SAEDashboard/commit/1a3975df60198dc169dfcf3354a8e8da5383029f)) + +* fixes unit tests ([`2a35d5d`](https://github.com/jbloomAus/SAEDashboard/commit/2a35d5dd4ad08e3d3532158030d86dbef93ad309)) + +* dedupes get_tokens() (#55) + +* dedupes get_tokens() + +* adds newline ([`faeb6f1`](https://github.com/jbloomAus/SAEDashboard/commit/faeb6f119d35a275a304d39c6e8cc9c7c40d31ce)) + +* fixes make commands (#57) ([`cb74411`](https://github.com/jbloomAus/SAEDashboard/commit/cb74411039d0c9d0b0883c85434f27601cf940a5)) + +* deletes print statements in tests (#56) ([`026ba30`](https://github.com/jbloomAus/SAEDashboard/commit/026ba305f4e31f5b47d4f9ada04c7cb0c3aae7f0)) + +* deletes unused direct_effect_feature_ablation_experiment() (#52) ([`391ff94`](https://github.com/jbloomAus/SAEDashboard/commit/391ff949a997a99b605bd55a706d6fed2892249c)) + +* removes unused files (#54) ([`5381cc7`](https://github.com/jbloomAus/SAEDashboard/commit/5381cc7118c7655c6c14cdbbd12e1f6c00278fc2)) + +* Merge pull request #47 from Marlon154/main + +Fixing deprecated fn call for SAE Lens ([`61c9bd4`](https://github.com/jbloomAus/SAEDashboard/commit/61c9bd4ad8ccd5d96cb5c89eb961db0e7fbc2ab0)) + +* Merge branch 'main' into main ([`50b202a`](https://github.com/jbloomAus/SAEDashboard/commit/50b202a0b2fef413dd46b4ce2838bae27c0ac252)) + +* Merge pull request #35 from chanind/relax-saelens-dep + +fix: relax SAELens and einops requirements ([`6c71bbf`](https://github.com/jbloomAus/SAEDashboard/commit/6c71bbfd7b6f1562093f1192616a7a55188631d3)) + +* fixing type checking ([`42a9845`](https://github.com/jbloomAus/SAEDashboard/commit/42a9845bba856c942f6d70182429cdb49e0ea917)) + +* Merge branch 'main' into relax-saelens-dep ([`3e6c870`](https://github.com/jbloomAus/SAEDashboard/commit/3e6c8703afd5ce80c29ec1ed0fc729def3f7f8fa)) + +* also relax einops ([`62614ac`](https://github.com/jbloomAus/SAEDashboard/commit/62614ac27ca50527556cc7c891e589e63a14e9bc)) + +* fix type checks ([`5a2cca0`](https://github.com/jbloomAus/SAEDashboard/commit/5a2cca0334a0907e7685cbef798cda71cd249ba4)) + +* Fixing deprecated fn call ([`f1da0e6`](https://github.com/jbloomAus/SAEDashboard/commit/f1da0e6ea7d663e5ff54612d7979d1b1ed9a6b77)) + +## v0.6.9 (2025-02-25) + +### Fix + +* fix: Merge pull request #44 from jbloomAus/update_saelens + +fix: don't use sparsity ([`f30a19b`](https://github.com/jbloomAus/SAEDashboard/commit/f30a19b9cb42f15302848c31ddf1d14462209a42)) + +* fix: don't use sparsity ([`d5ba79b`](https://github.com/jbloomAus/SAEDashboard/commit/d5ba79bbf3d51cbc67e276297d18d85add9d33e7)) + +* fix: update SAELens version and remove unsupported load_sparsity ([`63192ba`](https://github.com/jbloomAus/SAEDashboard/commit/63192ba7d9de7afae9cb67f65db2e79a39b898c6)) + +### Unknown + +* Merge pull request #43 from jbloomAus/update_saelens + +fix: update SAELens version and remove unsupported load_sparsity ([`c083723`](https://github.com/jbloomAus/SAEDashboard/commit/c083723237090165725e587f8bdb8f01338394b4)) + +## v0.6.8 (2025-02-15) + +### Fix + +* fix: prepended chat template text should not be in activations ([`f3c20ee`](https://github.com/jbloomAus/SAEDashboard/commit/f3c20eec31976db48c1f1d37aabd077e068f66ac)) + +### Unknown + +* Merge pull request #42 from jbloomAus/prepend_text_fix + +fix: prepended chat template text should not be in activations ([`eea0b83`](https://github.com/jbloomAus/SAEDashboard/commit/eea0b830e97e791571986cf1ccae1605606ddb4f)) + +## v0.6.7 (2025-02-13) + +### Fix + +* fix: force build ([`9b96ac5`](https://github.com/jbloomAus/SAEDashboard/commit/9b96ac57e0b23c1a4cc73fbd9fd855ab0961cce7)) + +### Unknown + +* Merge pull request #41 from jbloomAus/prepend_chat_template + +feat: Prepend chat template and activation threshold ([`c7347fa`](https://github.com/jbloomAus/SAEDashboard/commit/c7347faa7d1c800dae398ee8dbded53afced9aa4)) + +* add example ([`9ab42d6`](https://github.com/jbloomAus/SAEDashboard/commit/9ab42d66a2a3e445b300bf83f677f143da3fecd9)) + +* proper 'activation threshold' ([`a6d7c1c`](https://github.com/jbloomAus/SAEDashboard/commit/a6d7c1c8ca4a1ec46676298c4661f623bada9049)) + +* prepend chat template text ([`c8829a1`](https://github.com/jbloomAus/SAEDashboard/commit/c8829a14d6351b5cfd52af927942af5c6897db60)) + +## v0.6.6 (2025-02-11) + +### Fix + +* fix: run_settings.json should properly log model_id and layer ([`2e661d9`](https://github.com/jbloomAus/SAEDashboard/commit/2e661d95f30bc28e7d818bbd67de931a334d837f)) + +### Unknown + +* Merge pull request #40 from jbloomAus/run_settings_fix + +fix: run_settings.json should properly log model_id and layer ([`f3bde39`](https://github.com/jbloomAus/SAEDashboard/commit/f3bde395843720674d4c60e21bc2453d958ff402)) + +## v0.6.5 (2025-02-11) + +### Fix + +* fix: Force Build ([`2e4979c`](https://github.com/jbloomAus/SAEDashboard/commit/2e4979c07ad8bcd2760ee0981ee415d17fef2e5a)) + +### Unknown + +* Merge pull request #39 from jbloomAus/allow_vector_output + +feat: allow outputting raw vector in neuronpedia outputs ([`1444786`](https://github.com/jbloomAus/SAEDashboard/commit/14447862418b18d112053a7af8810b049400089a)) + +* remove debug log ([`6efeb6c`](https://github.com/jbloomAus/SAEDashboard/commit/6efeb6c1976dea8374800e7625d63a14a3b6438d)) + +* allow outputting vector ([`4c6cb35`](https://github.com/jbloomAus/SAEDashboard/commit/4c6cb35752317db9f22476d26dc1bab7e4d6e511)) + +* Merge pull request #37 from jbloomAus/feature/vector-dashboards + +Feature/vector dashboards ([`64c44a9`](https://github.com/jbloomAus/SAEDashboard/commit/64c44a9c11b2dce26b030d5e7bbf782ef90a2985)) + +* typing ([`09aeeab`](https://github.com/jbloomAus/SAEDashboard/commit/09aeeabb4c0f45f4bdabb884f683208eb7073142)) + +* Fixed missing parameter ([`a91d9f5`](https://github.com/jbloomAus/SAEDashboard/commit/a91d9f5dc8c65249c032dc4088aead4364bc42e9)) + +* Fixed parameterization and formatting ([`1956fbc`](https://github.com/jbloomAus/SAEDashboard/commit/1956fbc0ab6e4200d771ad4b504946ff81707969)) + +* Renamed demo notebook, some cleanup ([`6a486a5`](https://github.com/jbloomAus/SAEDashboard/commit/6a486a5834377823f380f59cafcbc3debbdcc3ed)) + +* Working pipeline flow ([`fdb2292`](https://github.com/jbloomAus/SAEDashboard/commit/fdb2292ad84b083246fdf3be2820e0b31168dce2)) + +* First draft of vector vis pipeline ([`4351ef9`](https://github.com/jbloomAus/SAEDashboard/commit/4351ef938a82d2b5e5a37391c236791cc23b41e5)) + +* Merge pull request #38 from jbloomAus/feature/hf-model-override + +enable passing custom HF model to replace model weights ([`5d98417`](https://github.com/jbloomAus/SAEDashboard/commit/5d98417877c2cfe52bb09ddada0b4b53849b344a)) + +* enable passing custom HF model to replace model weights ([`b2d6ae5`](https://github.com/jbloomAus/SAEDashboard/commit/b2d6ae5446fb79f4662bcdac6030cb6072b09b60)) + +* Don't copy to output folder by default ([`4dbde12`](https://github.com/jbloomAus/SAEDashboard/commit/4dbde1214d49eaaf9b591f083f34e57c8c0c1dbd)) + +* Don't save html file for NP outputs ([`a160bff`](https://github.com/jbloomAus/SAEDashboard/commit/a160bff204b7464d2de00e3f80c255123d11171b)) + +## v0.6.4 (2024-10-24) + +### Fix + +* fix: Merge pull request #33 from jbloomAus/fix/topk-selection-purview + +Fix/topk selection purview ([`afccd5a`](https://github.com/jbloomAus/SAEDashboard/commit/afccd5aaa00d00672eb1270b258b69f0e51c046a)) + +### Unknown + +* updated formatting/typing ([`fb141ae`](https://github.com/jbloomAus/SAEDashboard/commit/fb141ae991261408d296286bf6777b2ec5f1f319)) + +* TopK will now select from all latents regardless of feature batch size ([`c1f0e14`](https://github.com/jbloomAus/SAEDashboard/commit/c1f0e14dda7aa3364bfd78ca2b8c04c95b2d14b3)) + +* Update README.md ([`8235a9e`](https://github.com/jbloomAus/SAEDashboard/commit/8235a9e3adaea50b6b9f26f575e25a254d67a135)) + +* Merge pull request #32 from jbloomAus/docs/readme-update + +docs: updated readme ([`b5e5480`](https://github.com/jbloomAus/SAEDashboard/commit/b5e54808ee05fc75e68d74ec319bf49826b45508)) + +* Update README.md ([`a1546fd`](https://github.com/jbloomAus/SAEDashboard/commit/a1546fdef32745cdc862a5a2dd0478e57e45320d)) + +* Removed outdated vis type ([`b0676af`](https://github.com/jbloomAus/SAEDashboard/commit/b0676afcca0845b73a54d983eaa9d72b0e9dff05)) + +* Update README.md ([`9b8446a`](https://github.com/jbloomAus/SAEDashboard/commit/9b8446aa47f287ba80bf0ac4a39f7c77f0492990)) + +* Updated format ([`90e4a09`](https://github.com/jbloomAus/SAEDashboard/commit/90e4a09eedd7f428b64e58d5ca2fd1cfa658b0da)) + +* Updated readme ([`f6819a6`](https://github.com/jbloomAus/SAEDashboard/commit/f6819a6da594673cad65c9ccd3a4f67746de796d)) + +## v0.6.3 (2024-10-23) + +### Fix + +* fix: update cached_activations directory to include number of prompts ([`0308cb1`](https://github.com/jbloomAus/SAEDashboard/commit/0308cb146bf2eb9cee26f03d3098511d03022485)) + +## v0.6.2 (2024-10-23) + +### Fix + +* fix: lint ([`3fc0e2c`](https://github.com/jbloomAus/SAEDashboard/commit/3fc0e2ccb39ed1d3e31d66ae0aba2b2b367d46aa)) + +### Unknown + +* Merge branch 'main' of https://github.com/jbloomAus/SAEDashboard ([`8f74a96`](https://github.com/jbloomAus/SAEDashboard/commit/8f74a969f48a7e0fd8de17cc983acf3886db95ef)) + +## v0.6.1 (2024-10-22) + +### Unknown + +* Fix: divide by zero, cached_activations folder name ([`1792298`](https://github.com/jbloomAus/SAEDashboard/commit/179229805ae6489d86e235240c65d26db64b5cd7)) + +* Merge branch 'main' of https://github.com/jbloomAus/SAEDashboard ([`508a74d`](https://github.com/jbloomAus/SAEDashboard/commit/508a74df8ff279716501e4179c501b5089a8d706)) + +## v0.6.0 (2024-10-21) + +### Feature + +* feat: np sae id suffix ([`448b14e`](https://github.com/jbloomAus/SAEDashboard/commit/448b14e0b3aea8ff854a5365f164b6ce5f419f0d)) + +### Fix + +* fix: update saelens to v4 ([`ef1a330`](https://github.com/jbloomAus/SAEDashboard/commit/ef1a3302d0483eddb247defab5c88816850f7f63)) + +### Unknown + +* Merge pull request #31 from jbloomAus/fix/reduce-mem + +fix: added mem cleanup ([`60bd716`](https://github.com/jbloomAus/SAEDashboard/commit/60bd716c7b52bb0eaea0937e097eb77ed78bd33d)) + +* Fixed formatting ([`f1fab0c`](https://github.com/jbloomAus/SAEDashboard/commit/f1fab0c1fd5be281e2162ab3f54ffc7f4c09a1ce)) + +* Added cleanup ([`305c46d`](https://github.com/jbloomAus/SAEDashboard/commit/305c46d7a30330bbae6893b83cb6d498c2c975f1)) + +* Merge pull request #30 from jbloomAus/feat-mask-via-position + +feat: prepending/appending tokens for prompt template + feat mask via Position ([`4c60e4c`](https://github.com/jbloomAus/SAEDashboard/commit/4c60e4c834dfb5759ce55dc90d1f88768abfea0d)) + +* add a few tests ([`96247d5`](https://github.com/jbloomAus/SAEDashboard/commit/96247d5afaf141b8b1279c17fd135240b0d8e869)) + +* handle prefixes / suffixes and ignored positions ([`bff7fd9`](https://github.com/jbloomAus/SAEDashboard/commit/bff7fd98b09318a1b01d2bc4a06467f8afa156f9)) + +* simplify masking ([`385b6e1`](https://github.com/jbloomAus/SAEDashboard/commit/385b6e116ecac53ad4df8585f7513c3416707d8b)) + +* add option for ignoring tokens at particular positions ([`ed3426d`](https://github.com/jbloomAus/SAEDashboard/commit/ed3426de5cb1495c138f770eefa5f941408aa390)) + +* Merge pull request #29 from jbloomAus/refactor/optimize-dfa-speed + +Sped up DFA calculation 60x ([`f992e3c`](https://github.com/jbloomAus/SAEDashboard/commit/f992e3cf116189625b3a92529cf68d6226a1221c)) + +* Sped up DFA calculation ([`be11cd5`](https://github.com/jbloomAus/SAEDashboard/commit/be11cd5652f0f8a8ae425555666b747b9b99314e)) + +* Added test to check for decoder weight dist (head dist) ([`f147696`](https://github.com/jbloomAus/SAEDashboard/commit/f1476967af5fee95313264ccaee668605d23b9ad)) + +* Merge pull request #28 from jbloomAus/feature/np-topk-size-arg + +Feature/np topk size arg ([`c5c1365`](https://github.com/jbloomAus/SAEDashboard/commit/c5c136576609991177d3a8924b5bf75a42b66399)) + +* Simply updated default value for top K ([`5c855fe`](https://github.com/jbloomAus/SAEDashboard/commit/5c855fec0e58a114a537590d1400eaa42dd3610c)) + +* Testing variable topk sizes ([`79fe14b`](https://github.com/jbloomAus/SAEDashboard/commit/79fe14b840991bd1f8ada8462aeb65d72821c4aa)) + +* Merge pull request #25 from jbloomAus/fix/dfa-for-gqa + +Fix/dfa for gqa ([`85c345f`](https://github.com/jbloomAus/SAEDashboard/commit/85c345f3ad8069a59be8d495242395c50381ab01)) + +* Fixed formatting ([`48a67c7`](https://github.com/jbloomAus/SAEDashboard/commit/48a67c79247d05745d355e6a4bf380e9df20474e)) + +* Removed redundant code from rebase ([`a71fb9d`](https://github.com/jbloomAus/SAEDashboard/commit/a71fb9dde6e880b0f4297277d27696c9d524d052)) + +* fixed rebase ([`57ee280`](https://github.com/jbloomAus/SAEDashboard/commit/57ee28021efd3678bcd9d12d55e048c14a2f2d47)) + +* Added tests for DFA for GQA ([`3b99e36`](https://github.com/jbloomAus/SAEDashboard/commit/3b99e36c74d2c61617cfed107bee3b0eb3b63294)) + +* Removed duplicate code ([`7093773`](https://github.com/jbloomAus/SAEDashboard/commit/7093773d079cd235aea99273a1365363a5bf8b6d)) + +* More rebasing stuff ([`59c6cd8`](https://github.com/jbloomAus/SAEDashboard/commit/59c6cd85ead287b2774aa591463d131840c7f270)) + +* Fixed formatting ([`ed7d3b1`](https://github.com/jbloomAus/SAEDashboard/commit/ed7d3b16a99e3e3a272e73356cc0509b2c59a292)) + +* Removed debugging statements ([`6489d1c`](https://github.com/jbloomAus/SAEDashboard/commit/6489d1c5b52ed86cb280c237c08e10238e0d0564)) + +* more debug prints x3 ([`5ba2b8a`](https://github.com/jbloomAus/SAEDashboard/commit/5ba2b8a69f1881b901131976c7d52f142068dbd2)) + +* more debug prints x2 ([`e124ff9`](https://github.com/jbloomAus/SAEDashboard/commit/e124ff906ec7b37083af4e4721b9e33902146e47)) + +* more debug prints ([`e2b0c35`](https://github.com/jbloomAus/SAEDashboard/commit/e2b0c35467e5d405abd3cca664dfd1960dbba0eb)) + +* temp print statements ([`95df55b`](https://github.com/jbloomAus/SAEDashboard/commit/95df55b29f9250f67c5b986216e587c37f72aa9e)) + +* Lowered default threshold ([`dc1f31a`](https://github.com/jbloomAus/SAEDashboard/commit/dc1f31a55400231e46feb58a8c100f66472baa1b)) + +* updated ignore ([`eb0d56a`](https://github.com/jbloomAus/SAEDashboard/commit/eb0d56a9f813b9cf82742093fae00bb0ccfdac45)) + +* Reduced memory load of GQA DFA ([`05867f1`](https://github.com/jbloomAus/SAEDashboard/commit/05867f1d0c8b5f2a5b76f3ea45ab9c87eaae9c09)) + +* DFA will now work for models with grouped query attention ([`91a5dd1`](https://github.com/jbloomAus/SAEDashboard/commit/91a5dd17a2e567efa7d8a89d228eb7de47ae6766)) + +* Added head attr weights functionality for when DFA is use ([`03a615f`](https://github.com/jbloomAus/SAEDashboard/commit/03a615f7c70a6f6e634845dab4051874698fac5b)) + +* Edited default chunk size ([`7d68f9e`](https://github.com/jbloomAus/SAEDashboard/commit/7d68f9e7131b8c5558e886022625dac267f20aab)) + +* Fixed formatting ([`4d5f38b`](https://github.com/jbloomAus/SAEDashboard/commit/4d5f38beca15f2ce05c89f83eb3e955c291f9687)) + +* Removed debugging statements and added device changes ([`76e17c9`](https://github.com/jbloomAus/SAEDashboard/commit/76e17c91a41b5df6047baa5bcfa33d253b029d29)) + +* more debug prints x3 ([`06535d3`](https://github.com/jbloomAus/SAEDashboard/commit/06535d3df168d92ac79d2f5a14b345c757dfd9de)) + +* more debug prints x2 ([`26e8297`](https://github.com/jbloomAus/SAEDashboard/commit/26e8297888de066f0097e3b73245eb149bfb327f)) + +* more debug prints ([`9ded356`](https://github.com/jbloomAus/SAEDashboard/commit/9ded356ea8c3c5dd841bf5a45ea65ae8c67935f5)) + +* temp print statements ([`024ad57`](https://github.com/jbloomAus/SAEDashboard/commit/024ad578b65b8f3592b42b66dc6a56aeae2a3116)) + +* Lowered default threshold ([`a3b5977`](https://github.com/jbloomAus/SAEDashboard/commit/a3b5977c0f1bb7a865f7349304a5dd8092f7c2e8)) + +* updated ignore ([`d5d325a`](https://github.com/jbloomAus/SAEDashboard/commit/d5d325a63b3b26b890c2bab512f2a8473bdc926a)) + +* Reduced memory load of GQA DFA ([`93eb1a9`](https://github.com/jbloomAus/SAEDashboard/commit/93eb1a9a92320d9f4645b500e22a566135918e3d)) + +* DFA will now work for models with grouped query attention ([`6594155`](https://github.com/jbloomAus/SAEDashboard/commit/65941559bac03a3e4fb128d5327033e01f19c18d)) + +* Added head attr weights functionality for when DFA is use ([`9312d90`](https://github.com/jbloomAus/SAEDashboard/commit/9312d901bf17e14400199c86e0284be6c750162a)) + +* Added tests for DFA for GQA ([`fcfac37`](https://github.com/jbloomAus/SAEDashboard/commit/fcfac37e148461e585f38fddf868ad2a32d908a8)) + +* Removed duplicate code ([`cc00944`](https://github.com/jbloomAus/SAEDashboard/commit/cc00944855720d5b8139d4267b44c1a230ef5319)) + +* Fixed formatting ([`50b08b4`](https://github.com/jbloomAus/SAEDashboard/commit/50b08b4eb50734afe0f085274ccaee71ec4017a4)) + +* Removed debugging statements ([`f7b949b`](https://github.com/jbloomAus/SAEDashboard/commit/f7b949b4af6bc8ca7557bfa5fa2441fbaa0284a0)) + +* more debug prints x3 ([`53536b0`](https://github.com/jbloomAus/SAEDashboard/commit/53536b03d624783b6b2f95b07b9318139ef0c49e)) + +* more debug prints x2 ([`6f2c504`](https://github.com/jbloomAus/SAEDashboard/commit/6f2c504a355f9071e766fc7fa3b6aad9890572a8)) + +* more debug prints ([`e1bef90`](https://github.com/jbloomAus/SAEDashboard/commit/e1bef90d16e8c73c9532b19a08c842757828c7ed)) + +* temp print statements ([`fd75714`](https://github.com/jbloomAus/SAEDashboard/commit/fd75714ee4631463c1f754d68f83b9ef75eb2285)) + +* updated ignore ([`c01062f`](https://github.com/jbloomAus/SAEDashboard/commit/c01062faecfaa132d87c56a7ba7add573c6b0f4e)) + +* Reduced memory load of GQA DFA ([`1ae40e9`](https://github.com/jbloomAus/SAEDashboard/commit/1ae40e9d487af7e8a7b148629588ef87fdd0a6e5)) + +* DFA will now work for models with grouped query attention ([`c66c90f`](https://github.com/jbloomAus/SAEDashboard/commit/c66c90f5d51961cafd5f13c26a94193ee38f828a)) + +* Edited default chunk size ([`3c78bdc`](https://github.com/jbloomAus/SAEDashboard/commit/3c78bdcfda12e5873de082a7f1e631a801bd9407)) + +* Fixed formatting ([`10a36e3`](https://github.com/jbloomAus/SAEDashboard/commit/10a36e3e8da3c7593058d3638ac3b7a32953b1b0)) + +* Removed debugging statements and added device changes ([`0f51dd9`](https://github.com/jbloomAus/SAEDashboard/commit/0f51dd953cd214244c71e8b9156b90483ceaa2be)) + +* more debug prints x3 ([`112ef42`](https://github.com/jbloomAus/SAEDashboard/commit/112ef4292b81a64f6168e7527ec583faa9ba20a4)) + +* more debug prints x2 ([`ef154d6`](https://github.com/jbloomAus/SAEDashboard/commit/ef154d6044bb67d17a2aa225ddf4099ccfc16b55)) + +* more debug prints ([`1b18d14`](https://github.com/jbloomAus/SAEDashboard/commit/1b18d141dd33e3a99c2abd5a6d195ab5142890d8)) + +* temp print statements ([`2194d2c`](https://github.com/jbloomAus/SAEDashboard/commit/2194d2cea16856c96ace47ad5ac560f088e769b0)) + +* Lowered default threshold ([`a49d1e5`](https://github.com/jbloomAus/SAEDashboard/commit/a49d1e5b94c8ef680448f20ded849c7752fb5131)) + +* updated ignore ([`2067655`](https://github.com/jbloomAus/SAEDashboard/commit/20676554541d29fddd87215a47e8e94891e342ac)) + +* Reduced memory load of GQA DFA ([`8ec1956`](https://github.com/jbloomAus/SAEDashboard/commit/8ec19566e8898413d349fe3f2e43fbff232ffa62)) + +* DFA will now work for models with grouped query attention ([`8f3cf55`](https://github.com/jbloomAus/SAEDashboard/commit/8f3cf5532e57abc6e694fb11c5f9c7c2915215c0)) + +* Added head attr weights functionality for when DFA is use ([`234ea32`](https://github.com/jbloomAus/SAEDashboard/commit/234ea3211ce7dbf84d101c4e8bfe844c3903b16a)) + +* Merge pull request #27 from jbloomAus/fix/resolve-duplication + +Removed sources of duplicate sequences ([`525bffe`](https://github.com/jbloomAus/SAEDashboard/commit/525bffee516a630c4b4f033d3971fad8c6dd5a74)) + +* Updated location of wandb finish() ([`921da77`](https://github.com/jbloomAus/SAEDashboard/commit/921da77132a560505fa61decf287ca3833f96ec7)) + +* Added two sets of tests for duplication checks ([`3e95ffd`](https://github.com/jbloomAus/SAEDashboard/commit/3e95ffd1dafd01deb1f7817845ccb6229fb4ae09)) + +* Restored original random indices function as it seemed ok ([`388719b`](https://github.com/jbloomAus/SAEDashboard/commit/388719bec99b4306e81e0cdb772b9924db210774)) + +* Removed sources of duplicate sequences ([`853306c`](https://github.com/jbloomAus/SAEDashboard/commit/853306c4e08d9ec95674fdc5c87f807019055d0d)) + +## v0.5.1 (2024-08-27) + +### Fix + +* fix: multi-gpu-tlens + +fix: handle multiple tlens devices ([`ed1e967`](https://github.com/jbloomAus/SAEDashboard/commit/ed1e967d44b887f4b99d2257934ca920d5c6a508)) + +* fix: handle multiple tlens devices ([`ba5368f`](https://github.com/jbloomAus/SAEDashboard/commit/ba5368f9999f08332c153816ba5836f8a1eb9ba1)) + +## v0.5.0 (2024-08-25) + +### Feature + +* feat: accelerate caching. Torch load / save faster when files are small. + +Refactor/accelerate caching ([`6027d0a`](https://github.com/jbloomAus/SAEDashboard/commit/6027d0a3fc0d70908bad036a9658caa406d9f809)) + +### Unknown + +* Updated formatting ([`c1ea288`](https://github.com/jbloomAus/SAEDashboard/commit/c1ea2882a17e0d1b7b28743a34fca9d0754bd8a7)) + +* Sped up caching with native torch functions ([`230840a`](https://github.com/jbloomAus/SAEDashboard/commit/230840aea50b8b7055a6aa61961d7ac50855b763)) + +* Increased cache loading speed ([`83fe5f4`](https://github.com/jbloomAus/SAEDashboard/commit/83fe5f4bdf1252d533f203bc3f53ea9f71880ab8)) + +## v0.4.0 (2024-08-22) + +### Feature + +* feat: Refactor json writer and trigger DFA release + +JSON writer has been refactored for reusability and readability ([`664f487`](https://github.com/jbloomAus/SAEDashboard/commit/664f4874b585c5510d2d3dd639c5e893023f6332)) + +### Unknown + +* Refactored JSON creation from the neuronpedia runner ([`d6bb24b`](https://github.com/jbloomAus/SAEDashboard/commit/d6bb24b6d773874d8e99be4d84402d559741907b)) + +* Merge pull request #20 from jbloomAus/feature/dfa + +SAEVisRunner DFA Implementation ([`926ea87`](https://github.com/jbloomAus/SAEDashboard/commit/926ea87dd344548489201f68cc92b33662430813)) + +* Update ci.yaml ([`4b2807d`](https://github.com/jbloomAus/SAEDashboard/commit/4b2807dd865904120d236b355c0ccb1680c2919e)) + +* Fixed formatting ([`a62cc8f`](https://github.com/jbloomAus/SAEDashboard/commit/a62cc8f1bdd4c6e49b76d2d594e5a6b4b8183a8c)) + +* Fixed target index ([`ca2668d`](https://github.com/jbloomAus/SAEDashboard/commit/ca2668da03ea4d06cdc9f198988b80e0db844316)) + +* Corrected DFA indexing ([`d5028ae`](https://github.com/jbloomAus/SAEDashboard/commit/d5028aec875db4c03196726400c3b90b5d9d4d01)) + +* Adding temporary testing notebook ([`98e4b2f`](https://github.com/jbloomAus/SAEDashboard/commit/98e4b2f93d300ad4e94985d8d2594739a277e0c8)) + +* Added DFA output to neuronpedia runner ([`68eeff3`](https://github.com/jbloomAus/SAEDashboard/commit/68eeff3172b0c8637a6566c07951c28fd14a1c03)) + +* Fixed test typehints ([`d358e6f`](https://github.com/jbloomAus/SAEDashboard/commit/d358e6f5cc37304935eed949a0b0b985ba12b94f)) + +* Fixed formatting ([`5cb19e2`](https://github.com/jbloomAus/SAEDashboard/commit/5cb19e241051503730b6982813a6730556990c92)) + +* Corrected typehints ([`6173fbd`](https://github.com/jbloomAus/SAEDashboard/commit/6173fbd3824b7cba58e1cf0c7ee239762ee533ce)) + +* Removed another unused import ([`8be1572`](https://github.com/jbloomAus/SAEDashboard/commit/8be1572370b1adf341e2a650953bf17cd179808d)) + +* Removed unused imports ([`9071210`](https://github.com/jbloomAus/SAEDashboard/commit/90712105f74b287d77a06c045e8c32fd05f2e668)) + +* Added support for DFA calculations up to SAE Vis runner ([`4a08ffd`](https://github.com/jbloomAus/SAEDashboard/commit/4a08ffd13a8f29ff16808a20cd663c9d2d369e6a)) + +* Added activation collection flow for DFA ([`0ebb1f3`](https://github.com/jbloomAus/SAEDashboard/commit/0ebb1f3ca61603662f4f2cc8b1341470bf75b5d1)) + +* Merge pull request #19 from jbloomAus/fix/remove_precision_reduction + +Removed precision reduction option ([`a5f8df1`](https://github.com/jbloomAus/SAEDashboard/commit/a5f8df15ef8619c4d08655e777d379a05b453346)) + +* Removed float16 option entirely from quantile calc ([`1b6a4a9`](https://github.com/jbloomAus/SAEDashboard/commit/1b6a4a93403ca2e9a869aa73600f37960090f03d)) + +* Removed precision reduction option ([`cd03ffb`](https://github.com/jbloomAus/SAEDashboard/commit/cd03ffb182e93a42480c01408b47ebae94d4c349)) + +## v0.3.0 (2024-08-15) + +### Feature + +* feat: seperate files per dashboard html ([`cd8d050`](https://github.com/jbloomAus/SAEDashboard/commit/cd8d050218ae3c6eeb7a9779072e60b78bfe0b58)) + +### Unknown + +* Merge pull request #17 from jbloomAus/refactor/remove_enc_b + +Removed all encoder B code ([`67c9c3f`](https://github.com/jbloomAus/SAEDashboard/commit/67c9c3fdc8bd220938f65c1f97214034cc7528b4)) + +* Removed all encoder B code ([`5174e2e`](https://github.com/jbloomAus/SAEDashboard/commit/5174e2e161030dc756c148f1740e50c52baf6a91)) + +* Merge pull request #18 from jbloomAus/feat-seperate-files-per-html-dashboard + +feat: seperate files per dashboard html ([`8ff69ba`](https://github.com/jbloomAus/SAEDashboard/commit/8ff69ba207692d4acb8d5fc19d038090067690df)) + +* Merge pull request #16 from jbloomAus/performance_refactor + +Create() will now reduce precision by default ([`fb07b90`](https://github.com/jbloomAus/SAEDashboard/commit/fb07b90eaac395a58f02ba927460dcc2c9e61d1a)) + +* Removed line ([`d795490`](https://github.com/jbloomAus/SAEDashboard/commit/d795490c1c9d8193c8cf84d0352b9d93c41947fe)) + +* Removed unnecessary print ([`4544f86`](https://github.com/jbloomAus/SAEDashboard/commit/4544f86472480f0df00344fa84111a7c2a52fcef)) + +* Precision will now be reduced by default for quantile calc ([`539d222`](https://github.com/jbloomAus/SAEDashboard/commit/539d222ded9e3a0944f5240f3a4cd84497d11a74)) + +* Merge pull request #15 from jbloomAus/quantile_efficiency + +Quantile OOM prevention ([`4a40c37`](https://github.com/jbloomAus/SAEDashboard/commit/4a40c3704aab9363163fef3e2830d42f2fecdc6b)) + +* Made quantile batch optional and removed sampling code ([`2df51d3`](https://github.com/jbloomAus/SAEDashboard/commit/2df51d353f818a196916a15f2bc56f70480dd853)) + +* Added device check for test ([`afbb960`](https://github.com/jbloomAus/SAEDashboard/commit/afbb960d3c9376ad512607146826b7d1c1e68d48)) + +* Added parameter for quantile calculation batching ([`49d0a7a`](https://github.com/jbloomAus/SAEDashboard/commit/49d0a7ab37896a085f80409900e3d0b261b8c9e0)) + +* Added type annotation ([`c71c4aa`](https://github.com/jbloomAus/SAEDashboard/commit/c71c4aa1c8bc25d85b9a955b482823cbde445a51)) + +* Removed unused imports ([`ec01bfe`](https://github.com/jbloomAus/SAEDashboard/commit/ec01bfefc2f0f4d880cd5744ff6a2ea71991349b)) + +* Added float16 version of quantile calculation ([`2f01eb8`](https://github.com/jbloomAus/SAEDashboard/commit/2f01eb8d9f84a20918f19e81c23df86ddc9d7f0c)) + +* Merge pull request #13 from jbloomAus/hook_z_support + +fix: restore hook_z support following regression. ([`ea87559`](https://github.com/jbloomAus/SAEDashboard/commit/ea87559359f9821e352dcab582e23b42fef1cebf)) + +* format ([`21e3617`](https://github.com/jbloomAus/SAEDashboard/commit/21e3617196ef57944c141563e9263101baf9c7f1)) + +* make sure hook_z works ([`efaeec0`](https://github.com/jbloomAus/SAEDashboard/commit/efaeec0fdf8c2c43bb13bfd652b812a38ebc0200)) + +* Merge pull request #12 from jbloomAus/use_sae_lens_loading + +Use sae lens loading ([`89bba3e`](https://github.com/jbloomAus/SAEDashboard/commit/89bba3e7a10877782608c50f4b8dd9054f204381)) + +* add settings.json ([`d8f3034`](https://github.com/jbloomAus/SAEDashboard/commit/d8f3034c0ed7241c35e9761d60a9ee4072403fd0)) + +* add dtype ([`0d8008a`](https://github.com/jbloomAus/SAEDashboard/commit/0d8008afe93a2a2a5bfc954571c680a529ab883f)) + +* cli util ([`9da440e`](https://github.com/jbloomAus/SAEDashboard/commit/9da440eb3d50d48a7fdc4d3ee3d26de13a458593)) + +* wandb logging improvement ([`a077369`](https://github.com/jbloomAus/SAEDashboard/commit/a077369ca43009f4e50c0b1e7176cae398703856)) + +* add override for np set name ([`8906d10`](https://github.com/jbloomAus/SAEDashboard/commit/8906d103ab8d10bd01b791331dfc5485ac047a4f)) + +* auto add folder path to output dir ([`35e06ab`](https://github.com/jbloomAus/SAEDashboard/commit/35e06ab89bce257fc15ffaa4918b9598577d6df0)) + +* update tests ([`50163b0`](https://github.com/jbloomAus/SAEDashboard/commit/50163b04ca29b492b9fb71244aa26798655b663f)) + +* first step towards sae_lens remote loading ([`415a2d1`](https://github.com/jbloomAus/SAEDashboard/commit/415a2d1e484e9ea2351bf98de221f6a83a805107)) + +## v0.2.3 (2024-08-06) + +### Fix + +* fix: neuronpedia uses api_key for uploading features, and update sae_id->sae_set ([`0336a35`](https://github.com/jbloomAus/SAEDashboard/commit/0336a3587f825f0be15af79cc9a0033dda3d4a3f)) + +### Unknown + +* Merge pull request #11 from jbloomAus/ignore_bos_option + +Ignore bos option ([`ae34b70`](https://github.com/jbloomAus/SAEDashboard/commit/ae34b70b61993b4cce49a758bf85514410c67bd8)) + +* change threshold ([`4a0be67`](https://github.com/jbloomAus/SAEDashboard/commit/4a0be67622826f879191ced225c8c075d34bfe56)) + +* type fix ([`525b6a1`](https://github.com/jbloomAus/SAEDashboard/commit/525b6a10331b9fa0a464ae0c7f01af90ae97d0bb)) + +* default ignore bos eos pad ([`d2396a7`](https://github.com/jbloomAus/SAEDashboard/commit/d2396a714dd9ea3d59e516aa0fe30a9c9225e22f)) + +* ignore bos tokens ([`96cf6e9`](https://github.com/jbloomAus/SAEDashboard/commit/96cf6e9427cadf13fa13b55b7d1bc83ae81d9ec0)) + +* jump relu support in feature masking context ([`a1ba87a`](https://github.com/jbloomAus/SAEDashboard/commit/a1ba87a5c5e03687d7d7b5c5677bd9773fa49517)) + +* depend on latest sae lens ([`4988207`](https://github.com/jbloomAus/SAEDashboard/commit/4988207abaca24256f52235e474fe5fbb5028c1a)) + +* Merge pull request #10 from jbloomAus/auth_and_sae_set + +fix: neuronpedia uses api_key for uploading features, and update sae_id -> sae_set ([`4684aca`](https://github.com/jbloomAus/SAEDashboard/commit/4684aca54b69dbc913c1122f1a322ed4d808dce0)) + +* Combine upload-features and upload-dead-stubs ([`faac839`](https://github.com/jbloomAus/SAEDashboard/commit/faac8398fee8582b12c2d1a29df6d4de7e542bed)) + +* Activation store device should be cuda when available ([`93050b1`](https://github.com/jbloomAus/SAEDashboard/commit/93050b1f5c2b87c8e889fe3449d440016c996762)) + +* Activation store device should be cuda when available ([`4469066`](https://github.com/jbloomAus/SAEDashboard/commit/4469066af06bb4944832f2e596e36afa09adf160)) + +* Better support for huggingface dataset path ([`3dc4b78`](https://github.com/jbloomAus/SAEDashboard/commit/3dc4b783a1ced7b938ab45c4d10effedd148a829)) + +* Docker tweak ([`a1a70cb`](https://github.com/jbloomAus/SAEDashboard/commit/a1a70cb28c726887de9439024b7b1d01082d3932)) + +## v0.2.2 (2024-07-12) + +### Fix + +* fix: don't sample too many tokens + other fixes + +fix: don't sample too many tokens ([`b2554b0`](https://github.com/jbloomAus/SAEDashboard/commit/b2554b017e75d14b38b343fc6e0c1bcc32be2359)) + +* fix: don't sample too many tokens ([`0cbb2ed`](https://github.com/jbloomAus/SAEDashboard/commit/0cbb2edb480b83823dc1a98dd7e5978ecdda0d81)) + +### Unknown + +* - Don't force manual overrides for dtype - default to SAE's dtype +- Add n_prompts_in_forward_pass to neuronpedia.py +- Add n_prompts_total, n_tokens_in_prompt, and dataset to neuronpedia artifact +- Remove NPDashboardSettings for now (just save the NPRunnerConfig later) +- Fix lint error +- Consolidate minibatch_size_features/tokens to n_feats_at_a_time and n_prompts_in_fwd_pass +- Update/Fix NP acceptance test ([`b6282c8`](https://github.com/jbloomAus/SAEDashboard/commit/b6282c83e1898e356e271af0926e2271fb23f707)) + +* Merge pull request #7 from jbloomAus/performance-improvement + +feat: performance improvement ([`f98b3dc`](https://github.com/jbloomAus/SAEDashboard/commit/f98b3dcf84c42687dfc92fa38377edd1c3f6fa30)) + +* delete unused snapshots ([`4210b48`](https://github.com/jbloomAus/SAEDashboard/commit/4210b48608792adc9b841ea92a64050311e66cd6)) + +* format ([`de57a2d`](https://github.com/jbloomAus/SAEDashboard/commit/de57a2d84564fc0eb7d5e42799c00f73c7007cf8)) + +* linter ([`4725ffa`](https://github.com/jbloomAus/SAEDashboard/commit/4725ffa2cbe743aa0bb615213f11105b6911f10d)) + +* hope flaky tests start passing ([`8ac9e8e`](https://github.com/jbloomAus/SAEDashboard/commit/8ac9e8e93127d4ab811019fc62bbe050a9a00e2c)) + +* np.memmap caching and more explicit hyperparams ([`9a24186`](https://github.com/jbloomAus/SAEDashboard/commit/9a24186cc1c118725c6db7dc3c77feb815cf938f)) + +* Move docker" ([`27b1a27`](https://github.com/jbloomAus/SAEDashboard/commit/27b1a27118bcccf54576eb1891b936bd92848f3f)) + +* Add docker to workflow ([`a354fa4`](https://github.com/jbloomAus/SAEDashboard/commit/a354fa47cfb005dd2304b4237f9182e2408daeed)) + +* Dockerignore file ([`ed9fcf3`](https://github.com/jbloomAus/SAEDashboard/commit/ed9fcf3a634cd57f6517170784d56d86431e1710)) + +* new versions ([`f64e54d`](https://github.com/jbloomAus/SAEDashboard/commit/f64e54df5c1b643fc3acaff7f4d40d5597edf61a)) + +* Add tools to docker image ([`2a70f64`](https://github.com/jbloomAus/SAEDashboard/commit/2a70f64cfd4177d807a8345e64699054dd103e8d)) + +* Fix docker ([`3805f20`](https://github.com/jbloomAus/SAEDashboard/commit/3805f20bff622582d16fd6603bef4b77e6bada9e)) + +* Fix docker image ([`7f9ff2f`](https://github.com/jbloomAus/SAEDashboard/commit/7f9ff2f9b10ce08264b2153e8191eca32f9ee48a)) + +* Fix NP simple test, remove check for correlated neurons/features ([`355fad5`](https://github.com/jbloomAus/SAEDashboard/commit/355fad58ab2ab036a33375c02d9006db634702b9)) + +* Dockerfile, small batching fix ([`4df4c51`](https://github.com/jbloomAus/SAEDashboard/commit/4df4c5138341a1c233c3d0fe1a3d399846e92407)) + +* set sae_device, activation_store device ([`6d65b22`](https://github.com/jbloomAus/SAEDashboard/commit/6d65b22ef541326cc9558119b40baeb95cc2e47e)) + +* Fix NP dtype error ([`8bb4d9d`](https://github.com/jbloomAus/SAEDashboard/commit/8bb4d9de0c75ffed5daaba4d5ec563fbbee38f86)) + +* format ([`f667d92`](https://github.com/jbloomAus/SAEDashboard/commit/f667d92d9359e5c7976e21e821ac0dde8a081da6)) + +* depend on latest sae_lens ([`4a2a6a0`](https://github.com/jbloomAus/SAEDashboard/commit/4a2a6a0fd70d7b4a3f1f870a510a800b31f57264)) + +* use a much better method for getting subsets of feature activations ([`7101f13`](https://github.com/jbloomAus/SAEDashboard/commit/7101f13e13b4de5659623433ec359ecf2142daef)) + +* add to gitignore ([`20180e0`](https://github.com/jbloomAus/SAEDashboard/commit/20180e06a279ef93d6127b467511911db352bce5)) + +* add isort ([`3ab0fda`](https://github.com/jbloomAus/SAEDashboard/commit/3ab0fdaf75f735ec2eedc904529909111d0db0de)) + +## v0.2.1 (2024-07-08) + +### Fix + +* fix: trigger release ([`87bf0b5`](https://github.com/jbloomAus/SAEDashboard/commit/87bf0b5f21f0d1f5397e514090601ec21c718e35)) + +### Unknown + +* Merge pull request #6 from jbloomAus/fix-bfloat16 + +fix bfloat 16 error ([`2f3c597`](https://github.com/jbloomAus/SAEDashboard/commit/2f3c597c1795357679e92caec3dd7e522c669fdb)) + +* fix bfloat 16 error ([`63c3c62`](https://github.com/jbloomAus/SAEDashboard/commit/63c3c62f0a03e5656ed78cc0e8f853bea3f0938e)) + +* Merge pull request #5 from jbloomAus/np-updates + +Updates + fixes for Neuronpedia ([`9e6b5c4`](https://github.com/jbloomAus/SAEDashboard/commit/9e6b5c427024b8a468b0d06e4e096c2561c35d5d)) + +* Fix SAELens compatibility ([`139e1a2`](https://github.com/jbloomAus/SAEDashboard/commit/139e1a2f219d790c6f8faa9be34d9fbc9403dda3)) + +* Rename file ([`16709ad`](https://github.com/jbloomAus/SAEDashboard/commit/16709add9ee5063b3682be34eef0aea2ddf4eceb)) + +* Fix type ([`6b20386`](https://github.com/jbloomAus/SAEDashboard/commit/6b2038682ca41423dda3a3597bbe88120b120262)) + +* Make Neuronpedia outputs an object, and add a real acceptance test ([`a5db256`](https://github.com/jbloomAus/SAEDashboard/commit/a5db2560e5f90a49257124635b3fdbee117ed860)) + +* Np Runner: Multi-gpu defaults ([`07f7128`](https://github.com/jbloomAus/SAEDashboard/commit/07f71282681ffa801dd15f9265be349cd5745b42)) + +* Ensure minibatch is on correct device ([`e206546`](https://github.com/jbloomAus/SAEDashboard/commit/e2065462c445df0e0985fb6588d4c01cb39bbef5)) + +* NP Runner: Automatically use multi-gpu, devices ([`bf280e6`](https://github.com/jbloomAus/SAEDashboard/commit/bf280e685dc4dd2018cd41aa94a29bc853fcee18)) + +* Allow dtype override ([`a40077d`](https://github.com/jbloomAus/SAEDashboard/commit/a40077dac1fa2ae880fcdabe3227878ef2cfaebe)) + +* NP-Runner: Remove unnecessary layer of batching. ([`e2ac92b`](https://github.com/jbloomAus/SAEDashboard/commit/e2ac92b036d0192e132c8a8700a5a2f448d1983b)) + +* NP Runner: Allow skipping sparsity check ([`ef74d2a`](https://github.com/jbloomAus/SAEDashboard/commit/ef74d2aeea2463afe150a5e8824da5a5206cd3d0)) + +* Merge pull request #2 from jbloomAus/multiple-devices + +feat: Multiple devices ([`535e6c9`](https://github.com/jbloomAus/SAEDashboard/commit/535e6c9689d855f82a6ddfd9f169720fe367bde3)) + +* format ([`7f892ad`](https://github.com/jbloomAus/SAEDashboard/commit/7f892ad0efb42025df0bcf26bdddd6fac4c2d8b1)) + +* NP runner takes device args seperately ([`8fc31dd`](https://github.com/jbloomAus/SAEDashboard/commit/8fc31dd6ccd59f4f35742a4e15c380673c8cb2a3)) + +* multi-gpu-support ([`5e24e4e`](https://github.com/jbloomAus/SAEDashboard/commit/5e24e4e6598dd7943f8d677042dcf84bc6f7a0a6)) + +## v0.2.0 (2024-06-10) + +### Feature + +* feat: experimental release 2 ([`e264f97`](https://github.com/jbloomAus/SAEDashboard/commit/e264f97d90299f6ade294db8ed03aed9cd7491ee)) + +## v0.1.0 (2024-06-10) + +### Feature + +* feat: experimental release ([`d79310a`](https://github.com/jbloomAus/SAEDashboard/commit/d79310a7b6599f7b813e214c9268d736e0cb87f0)) + +### Unknown + +* fix pyproject.toml ([`a27c87d`](https://github.com/jbloomAus/SAEDashboard/commit/a27c87da987f043b470abce3404e305ec3f0d620)) + +* test deployment ([`288a2d9`](https://github.com/jbloomAus/SAEDashboard/commit/288a2d9bf797a1a2f9947b1ceac5e47edc1684ba)) + +* refactor np runner and add acceptance test ([`212593c`](https://github.com/jbloomAus/SAEDashboard/commit/212593c33b3aec33078a121738c0a826f705722f)) + +* Fix: Default context tokens length for neuronpedia runner ([`aefe95c`](https://github.com/jbloomAus/SAEDashboard/commit/aefe95cb1be4139ac45f042abdc78e0feccfb490)) + +* Allow custom context tokens length for Neuronpedia runner ([`d204cc8`](https://github.com/jbloomAus/SAEDashboard/commit/d204cc8fbb2ef376a1a5e00cd4f1cc5db2afb279)) + +* Fix: Streaming default true ([`1b91dff`](https://github.com/jbloomAus/SAEDashboard/commit/1b91dff045fdbd8c118c5f209750eca60c260f5f)) + +* Fix n_devices error for non-cuda ([`70b2dbd`](https://github.com/jbloomAus/SAEDashboard/commit/70b2dbdb2da51f5d78b1c2ce3210865fc259c97b)) + +* fix import path for ci ([`3bd4687`](https://github.com/jbloomAus/SAEDashboard/commit/3bd468727e2ab0b7d77224b7c0dad88e0727b773)) + +* make pyright happy, start config ([`b39ae85`](https://github.com/jbloomAus/SAEDashboard/commit/b39ae85d938a0db7c70b7dff9683f68f255dfb67)) + +* add black ([`236855b`](https://github.com/jbloomAus/SAEDashboard/commit/236855be1ef1464ea85b2afc6aaee963326f9257)) + +* fix ci ([`12818d7`](https://github.com/jbloomAus/SAEDashboard/commit/12818d7e6cd3e483258598b668805c1a9a048049)) + +* add pytest cov ([`aae0571`](https://github.com/jbloomAus/SAEDashboard/commit/aae057159639cd247a82fdeda9eddb98612ceec6)) + +* bring checks in line with sae_lens ([`7cd9679`](https://github.com/jbloomAus/SAEDashboard/commit/7cd9679cc18c64a7c8a0a07a1f12e6fc87543537)) + +* activation scaling factor ([`333d377`](https://github.com/jbloomAus/SAEDashboard/commit/333d3770d0d1d3c40dfeb3335dcfc46e9b7da717)) + +* Move Neuronpedia runner to SAEDashboard ([`4e691ea`](https://github.com/jbloomAus/SAEDashboard/commit/4e691eaad919e12b9cae6ff707eaa3cf322ea030)) + +* fold w_dec norm by default ([`b6c9bc7`](https://github.com/jbloomAus/SAEDashboard/commit/b6c9bc70dc419d1e32bfb5580997369215e15429)) + +* rename sae_vis to sae_dashboard ([`f0f5341`](https://github.com/jbloomAus/SAEDashboard/commit/f0f5341ffdf31a11884777d6ba8100cd302b9dab)) + +* rename feature data generator ([`e02ed0a`](https://github.com/jbloomAus/SAEDashboard/commit/e02ed0a18e92c497aea3e137cf43e9f354f8f30f)) + +* update demo ([`8aa9e52`](https://github.com/jbloomAus/SAEDashboard/commit/8aa9e5272f54d04b741e63aa335bfa1212a2d0f7)) + +* add demo ([`dd3036f`](https://github.com/jbloomAus/SAEDashboard/commit/dd3036f90e6a4ed459ec21647744d491911900ac)) + +* delete old demo files ([`3d86202`](https://github.com/jbloomAus/SAEDashboard/commit/3d8620204cf6acb21b5e7f9983c300341345cd88)) + +* remove unnecessary print statement ([`9d3d937`](https://github.com/jbloomAus/SAEDashboard/commit/9d3d937e74f5575dde68d5a21fb73ce6f826d0d4)) + +* set sae lens version ([`87a7691`](https://github.com/jbloomAus/SAEDashboard/commit/87a76911ff0f0d46ab421d9b5107aef27216e88b)) + +* update older readme ([`c5c98e5`](https://github.com/jbloomAus/SAEDashboard/commit/c5c98e53531874efab5bc16235d9c72816fa61d5)) + +* test ([`923da42`](https://github.com/jbloomAus/SAEDashboard/commit/923da427b56178acd99b988d6d6b51368b5d2359)) + +* remove sae lens dep ([`2c26d5f`](https://github.com/jbloomAus/SAEDashboard/commit/2c26d5f4c40c41f750971601968577f316e15598)) + +* Merge branch 'refactor_b' ([`3154d63`](https://github.com/jbloomAus/SAEDashboard/commit/3154d636e1a9f8a30b54c17e62a842bed3f8b2a1)) + +* pass linting ([`0c079a1`](https://github.com/jbloomAus/SAEDashboard/commit/0c079a105b1b98e0edf2ff1a15593567c81bb103)) + +* format ([`6f37e2e`](https://github.com/jbloomAus/SAEDashboard/commit/6f37e2eb050a3207a2d3b9defd5d416645215c7c)) + +* run ci on all branches ([`faa0cc4`](https://github.com/jbloomAus/SAEDashboard/commit/faa0cc4eed4ff35f1e04656a968214c4fefbd573)) + +* don't use feature ablations ([`dc6e6dc`](https://github.com/jbloomAus/SAEDashboard/commit/dc6e6dc2d2affce331894d8bb61942e103182652)) + +* mock information in sequences to make normal sequence generation pass ([`c87b82f`](https://github.com/jbloomAus/SAEDashboard/commit/c87b82fdcc5e849d970cdc8bd1e841ec3e3e48ce)) + +* Remove resid ([`ff83737`](https://github.com/jbloomAus/SAEDashboard/commit/ff837373b65e60d8a9ba7c6e61f78bddc4d170f2)) + +* adding a test for direct_effect_feature_ablation_experiment ([`a9f3d1b`](https://github.com/jbloomAus/SAEDashboard/commit/a9f3d1b8021d8eeb60cf465934037d07583fa0b2)) + +* shortcut direct_effect_feature_ablation_experiment if everything is zero ([`2c68ff0`](https://github.com/jbloomAus/SAEDashboard/commit/2c68ff0c8496c58cc0732f3c51905c9c9f405393)) + +* fixing CI and replacing manual snapshots with syrupy snapshots ([`3b97640`](https://github.com/jbloomAus/SAEDashboard/commit/3b97640803cab3e3915202ac80c43b855c69c1cb)) + +* more refactor, WIP ([`81657c8`](https://github.com/jbloomAus/SAEDashboard/commit/81657c8c897a81102c0df7b29c49d526e639bb44)) + +* continue refactor, make data generator ([`eb1ae0f`](https://github.com/jbloomAus/SAEDashboard/commit/eb1ae0fc621407b33481c50b78b041079b08393d)) + +* add use of safetensors cache for repeated calculations ([`a241c32`](https://github.com/jbloomAus/SAEDashboard/commit/a241c322334340a84c2a252bc0b4a40ed2f19bc9)) + +* more refactor / benchmarking ([`d65ee87`](https://github.com/jbloomAus/SAEDashboard/commit/d65ee87cd191b2ed279f9f6efabb9e98bb700855)) + +* only run unit tests ([`5f11ddd`](https://github.com/jbloomAus/SAEDashboard/commit/5f11ddd9bc25f9c9bb7cbeba11224ba12b260ea8)) + +* fix lint issue ([`24daf17`](https://github.com/jbloomAus/SAEDashboard/commit/24daf17cb92534901681affbcebea314e2cf6580)) + +* format ([`83e89ed`](https://github.com/jbloomAus/SAEDashboard/commit/83e89ed4860d886ccf19be591bf72d0e029e7344)) + +* organise tests, make sure only unit tests run on CI ([`21f5fb1`](https://github.com/jbloomAus/SAEDashboard/commit/21f5fb155665329531b16d10673ddd988e7034ea)) + +* see if we can do some caching ([`c1dca6f`](https://github.com/jbloomAus/SAEDashboard/commit/c1dca6faa61de0849453acc83ae23baab6cf48be)) + +* more refactoring ([`b3f0f41`](https://github.com/jbloomAus/SAEDashboard/commit/b3f0f41f36f0eee57a08142880d4b6654309e62c)) + +* further refactor, possible significant speed up ([`ddd3496`](https://github.com/jbloomAus/SAEDashboard/commit/ddd3496206c0f3e751b596ca51e3544c77ddaf94)) + +* more refactor ([`a5f6deb`](https://github.com/jbloomAus/SAEDashboard/commit/a5f6deb4263c58803e7af23d767fc5cb17dfd2b2)) + +* refactoring in progress ([`d210b60`](https://github.com/jbloomAus/SAEDashboard/commit/d210b6056aa5316d2fd917e24ca8a819331a8114)) + +* use named arguments ([`4a81053`](https://github.com/jbloomAus/SAEDashboard/commit/4a8105355d3b86e460f32cd5c736dde0dbeaa2e3)) + +* remove create method ([`43b2018`](https://github.com/jbloomAus/SAEDashboard/commit/43b20184ed5ed0c2f08cfd13423f2271fd871274)) + +* move chunk ([`0f26aa8`](https://github.com/jbloomAus/SAEDashboard/commit/0f26aa85bc9fbe358f4c5f90971d51b86159f095)) + +* use fixtures ([`7c11dd9`](https://github.com/jbloomAus/SAEDashboard/commit/7c11dd914d467957e5c00b914f302c291924e411)) + +* refactor to create runner ([`9202c19`](https://github.com/jbloomAus/SAEDashboard/commit/9202c19f4ad6134eb6b68f857c9e4bfd0b911cf8)) + +* format ([`abd8747`](https://github.com/jbloomAus/SAEDashboard/commit/abd87472b76cfc151abfe2a6e312ea43b29c2250)) + +* target ci at this branch ([`ea3b2a3`](https://github.com/jbloomAus/SAEDashboard/commit/ea3b2a3181f2eb1ff52d83b2040b586d6fdfef4a)) + +* comment out release process for now ([`7084b5b`](https://github.com/jbloomAus/SAEDashboard/commit/7084b5ba3325bb559a8377d379bd2f3ba6d68348)) + +* test generated output ([`7b8b2ab`](https://github.com/jbloomAus/SAEDashboard/commit/7b8b2abd94213d67c378b7746107f6a7c811d93c)) + +* commit current demo html ([`00a03a0`](https://github.com/jbloomAus/SAEDashboard/commit/00a03a02fbf181caa55704defac25578b4444452)) + +## v0.0.1 (2024-04-25) + +### Chore + +* chore: setting up pytest ([`2079d00`](https://github.com/jbloomAus/SAEDashboard/commit/2079d00911d1a00ee19cde478b5cab61ca9c0495)) + +* chore: setting up semantic-release ([`09075af`](https://github.com/jbloomAus/SAEDashboard/commit/09075afbec279fb89d157f73e9a0ed47ba66d3c8)) + +### Fix + +* fix: remove circular dep with sae lens ([`1dd9f6c`](https://github.com/jbloomAus/SAEDashboard/commit/1dd9f6cd22f879e8d6904ba72f3e52b4344433cd)) + +### Unknown + +* Merge pull request #44 from chanind/pytest-setup + +chore: setting up pytest ([`034eefa`](https://github.com/jbloomAus/SAEDashboard/commit/034eefa5a4163e9a560b574e2e255cd06f8f49a1)) + +* Merge pull request #43 from callummcdougall/move_saelens_dep + +Remove dependency on saelens from pyproject, add to demo.ipynb ([`147d87e`](https://github.com/jbloomAus/SAEDashboard/commit/147d87ee9534d30e764851cbe73aadb5783d2515)) + +* Add missing matplotlib ([`572a3cc`](https://github.com/jbloomAus/SAEDashboard/commit/572a3cc79709a14117bbeafb871a33f0107600d8)) + +* Remove dependency on saelens from pyproject, add to demo.ipynb ([`1e6f3cf`](https://github.com/jbloomAus/SAEDashboard/commit/1e6f3cf9b2bcfb381a73d9333581c430faa531fd)) + +* Merge branch 'main' of https://github.com/callummcdougall/sae_vis ([`4e7a24c`](https://github.com/jbloomAus/SAEDashboard/commit/4e7a24c37444f11d718035eede68ac728d949a20)) + +* Merge pull request #41 from callummcdougall/allow_disable_buffer + +oops I forgot to switch back to main before pushing ([`1312cd0`](https://github.com/jbloomAus/SAEDashboard/commit/1312cd09d6e274b1163e79d2ac01f2df54c65157)) + +* Merge branch 'main' into allow_disable_buffer ([`e7edf5a`](https://github.com/jbloomAus/SAEDashboard/commit/e7edf5a9bae4714bf4983ce6a19a0fe6fdf1f118)) + +* Merge pull request #40 from chanind/semantic-release-autodeploy + +chore: setting up semantic-release for auto-deploy ([`a4d44d1`](https://github.com/jbloomAus/SAEDashboard/commit/a4d44d1a0e86055fb82ef41f51f0adbb7868df3c)) + +* Merge pull request #38 from chanind/type-checking + +Enabling type checking with Pyright ([`f1fd792`](https://github.com/jbloomAus/SAEDashboard/commit/f1fd7926f46f00dca46024377f53aa8f2db98773)) + +* enabling type checking with Pyright ([`05d14ea`](https://github.com/jbloomAus/SAEDashboard/commit/05d14eafea707d3db81e78b4be87199087cb8e37)) + +* Merge pull request #39 from callummcdougall/fix_loading_saelens_sae + +FIX: SAELens new format has "scaling_factor" key, which causes assert to fail ([`983aee5`](https://github.com/jbloomAus/SAEDashboard/commit/983aee562aea31e90657caf8c6ab6e450e952120)) + +* Fix Formatting ([`13b8106`](https://github.com/jbloomAus/SAEDashboard/commit/13b81062485f5dce2568e7832bfb2aae218dd4e9)) + +* Merge branch 'main' into fix_loading_saelens_sae ([`21b0086`](https://github.com/jbloomAus/SAEDashboard/commit/21b0086b8af3603441795e925a15e7cded122acb)) + +* format ([`8f1506b`](https://github.com/jbloomAus/SAEDashboard/commit/8f1506b6eb7dc0a2d4437d2aa23a0898c46a156d)) + +* Allow SAELens autoencoder keys to be superset of required keys, instead of exact match ([`6852170`](https://github.com/jbloomAus/SAEDashboard/commit/6852170d55e7d3cf22632c5807cfab219516da98)) + +* v0.2.17 ([`2bb14da`](https://github.com/jbloomAus/SAEDashboard/commit/2bb14daa88a0af601e13f4e51b50a2b00cd75b48)) + +* Use main branch of SAELens ([`2b34505`](https://github.com/jbloomAus/SAEDashboard/commit/2b345052bdc92ee9c1255cab0978916307a0a9dc)) + +* Update version 0.2.16 ([`bf90293`](https://github.com/jbloomAus/SAEDashboard/commit/bf902930844db9b0f8db4fbe8b3610557352660b)) + +* Merge pull request #36 from callummcdougall/allow_disable_buffer + +FEATURE: Allow setting buffer to None, which gives the whole activation sequence ([`f5f9594`](https://github.com/jbloomAus/SAEDashboard/commit/f5f9594fcaf5edb6036a85446e092278004ea200)) + +* 16 ([`64e7018`](https://github.com/jbloomAus/SAEDashboard/commit/64e701849570d9e172dc065812c9a3e7149a9176)) + +* version 0.2.16 ([`afca0be`](https://github.com/jbloomAus/SAEDashboard/commit/afca0be8826e0c007b5730fa9fa18454699d16a3)) + +* Fix version ([`5a43916`](https://github.com/jbloomAus/SAEDashboard/commit/5a43916cbd9836396f051f7a258fdca8664e05e9)) + +* fix all indices view ([`5f87d52`](https://github.com/jbloomAus/SAEDashboard/commit/5f87d52154d6a8e8c8984836bbe8f85ee25f279d)) + +* Merge branch 'fix_gpt2_demo' into allow_disable_buffer ([`ea57bfc`](https://github.com/jbloomAus/SAEDashboard/commit/ea57bfc2ee1e23666810982abf32e6e9cbb74193)) + +* Allow disabling the buffer ([`c1be9f8`](https://github.com/jbloomAus/SAEDashboard/commit/c1be9f8e4b8ee6d8f18c4a1a0445840304440c1d)) + +* fix conflicts ([`ea3d624`](https://github.com/jbloomAus/SAEDashboard/commit/ea3d624013b9aa7cbd2d6eaa7212a1f7c4ee8e28)) + +* Merge pull request #35 from callummcdougall/fix_gpt2_demo + +Fix usage of SAELens and demo notebook ([`88b5933`](https://github.com/jbloomAus/SAEDashboard/commit/88b59338d3cadbd5c70f0c1117dff00f01a54e6a)) + +* Import updated SAELens, use correct tokens, fix missing file cfg.json file error. ([`14ba9b0`](https://github.com/jbloomAus/SAEDashboard/commit/14ba9b03d4ce791ba8f4cac553fb82a93c47dfb8)) + +* Merge pull request #34 from ArthurConmy/patch-1 + +Update README.md ([`3faac82`](https://github.com/jbloomAus/SAEDashboard/commit/3faac82686f546800492d8aeb5e1d5919cbf1517)) + +* Update README.md ([`416eca8`](https://github.com/jbloomAus/SAEDashboard/commit/416eca8073c6cb2b120c759330ec47f52ab32d1e)) + +* Merge pull request #33 from chanind/setup-poetry-and-ruff + +Setting up poetry / ruff / github actions ([`287f30f`](https://github.com/jbloomAus/SAEDashboard/commit/287f30f1d8fc39ab583f202c9277e07e5eeeaf62)) + +* setting up poetry and ruff for linting/formatting ([`0e0eba9`](https://github.com/jbloomAus/SAEDashboard/commit/0e0eba9e4d54c746cddc835ef4f6ddf2bab96844)) + +* fix feature vis demo gpt ([`821781e`](https://github.com/jbloomAus/SAEDashboard/commit/821781e96b732a5909d8735714482c965891b2ea)) + +* add scatter plot support ([`6eab28b`](https://github.com/jbloomAus/SAEDashboard/commit/6eab28bef9ef5cd9360fef73e02763301fa1a028)) + +* update setup ([`8d2ca53`](https://github.com/jbloomAus/SAEDashboard/commit/8d2ca53e8a6bba860fe71368741d06a718adaa27)) + +* fix setup ([`9cae8f4`](https://github.com/jbloomAus/SAEDashboard/commit/9cae8f461bd780e23eb2d994f56b495ede16201a)) + +* Merge branch 'main' of https://github.com/callummcdougall/sae_vis ([`ed8f8cb`](https://github.com/jbloomAus/SAEDashboard/commit/ed8f8cb7ad1fba2383dcdd471c33ce4a1b9f32e3)) + +* Merge pull request #27 from wllgrnt/will-add-eindex-dependency + +Update setup.py with eindex dependency ([`8d7ed12`](https://github.com/jbloomAus/SAEDashboard/commit/8d7ed123505ac7ecf93dd310f57888547aead1d7)) + +* two more deps ([`7f231a8`](https://github.com/jbloomAus/SAEDashboard/commit/7f231a83acfef2494c1866249f57e10c21a1a443)) + +* Update setup.py with eindex + +Without this, 'pip install sae-vis' will cause errors when e.g. you do 'from sae_vis.data_fetching_fns import get_feature_data' ([`a9d7de9`](https://github.com/jbloomAus/SAEDashboard/commit/a9d7de90b492f7305758e15303ba890fb9b503d0)) + +* fix sae bug ([`247d14b`](https://github.com/jbloomAus/SAEDashboard/commit/247d14b55f209ed9ccf50e5ce091ed66ffbf19d2)) + +* Merge pull request #32 from hijohnnylin/pin_older_sae_training + +Demo notebook errors under "Multi-layer models" vis ([`9ac1dac`](https://github.com/jbloomAus/SAEDashboard/commit/9ac1dac51af32909666977cb5b3794965c70f62f)) + +* Pin older commit of mats_sae_training ([`8ca7ac1`](https://github.com/jbloomAus/SAEDashboard/commit/8ca7ac14b919fedb91240630ac7072cac40a6d6a)) + +* update version number ([`72e584b`](https://github.com/jbloomAus/SAEDashboard/commit/72e584b6492ed1ef3989968f6588a17fca758650)) + +* add gifs to readme ([`1393740`](https://github.com/jbloomAus/SAEDashboard/commit/13937405da31cca70cd1027aaca6c9cc84797ff1)) + +* test gif ([`4fbafa6`](https://github.com/jbloomAus/SAEDashboard/commit/4fbafa69343dc58dc18d0f78e393b5fcc9e24c0c)) + +* fix height issue ([`3f272f6`](https://github.com/jbloomAus/SAEDashboard/commit/3f272f61a954effef7bd648cc8117346da3bb971)) + +* fix pypi ([`7151164`](https://github.com/jbloomAus/SAEDashboard/commit/7151164cc0df8af278617147f07cbfbe3977cfeb)) + +* update setup ([`8c43478`](https://github.com/jbloomAus/SAEDashboard/commit/8c43478ad2eba8d3d4106fe4239c1229b8720fe6)) + +* Merge pull request #26 from hijohnnylin/update_html_anomalies + +Update and add some HTML_ANOMALIES ([`1874a47`](https://github.com/jbloomAus/SAEDashboard/commit/1874a47a099ce32795bdbb5f98b9167dcca85ff2)) + +* Update and add some HTML_ANOMALIES ([`c541b7f`](https://github.com/jbloomAus/SAEDashboard/commit/c541b7f06108046ad1e2eb82c89f30f061f4411e)) + +* 0.2.9 ([`a5c8a6d`](https://github.com/jbloomAus/SAEDashboard/commit/a5c8a6d2008b818db90566cba50211845c753444)) + +* fix readme ([`5a8a7e3`](https://github.com/jbloomAus/SAEDashboard/commit/5a8a7e3173fc50fdb5ff0e56d7fa83e475af38a3)) + +* include feature tables ([`7c4c263`](https://github.com/jbloomAus/SAEDashboard/commit/7c4c263a2e069482d341b6265015664792bde817)) + +* add license ([`fa02a3d`](https://github.com/jbloomAus/SAEDashboard/commit/fa02a3dc93b721322b3902e2ac416ed156bf9d80)) + +* Merge branch 'main' of https://github.com/callummcdougall/sae_vis ([`ca5efcd`](https://github.com/jbloomAus/SAEDashboard/commit/ca5efcdc81074d3c3002bd997b35e326a44a4a25)) + +* Merge pull request #24 from chanind/fix-pypi-repo-link + +fixing repo URL in setup.py ([`14a0be5`](https://github.com/jbloomAus/SAEDashboard/commit/14a0be54a57b1bc73ac4741611f9c8d1bd229e6f)) + +* fixing repo URL in setup.py ([`4faeca5`](https://github.com/jbloomAus/SAEDashboard/commit/4faeca5da06c0bb4384e202a91d895a217365d30)) + +* re-fix html anomalies ([`2fbae4c`](https://github.com/jbloomAus/SAEDashboard/commit/2fbae4c9a7dd663737bae25e73e978d40c59064a)) + +* fix hook point bug ([`9b573b2`](https://github.com/jbloomAus/SAEDashboard/commit/9b573b27590db1cbd6c8ef08fca7ff8c9d26b340)) + +* Merge pull request #20 from chanind/fix-final-resid-layer + +fixing bug if hook_point == hook_point_resid_final ([`d6882e3`](https://github.com/jbloomAus/SAEDashboard/commit/d6882e3f813ef0d399e07548871f61b1f6a98ac6)) + +* fixing bug using hook_point_resid_final ([`cfe9b30`](https://github.com/jbloomAus/SAEDashboard/commit/cfe9b3042cfe127d5f7958064ffe817c25a19b56)) + +* fix indexing speed ([`865ff64`](https://github.com/jbloomAus/SAEDashboard/commit/865ff64329538641cd863dc7668dfc77907fb384)) + +* enable JSON saving ([`feea47a`](https://github.com/jbloomAus/SAEDashboard/commit/feea47a342d52296b72784ed18ea628848d4c7d4)) + +* Merge pull request #19 from chanind/support-mlp-and-attn-out + +supporting mlp and attn out hooks ([`1c5463b`](https://github.com/jbloomAus/SAEDashboard/commit/1c5463b12f85cd0598b4e2fba5c556b1e9c0fbbe)) + +* supporting mlp and attn out hooks ([`a100e58`](https://github.com/jbloomAus/SAEDashboard/commit/a100e586498e8cae14df475bc7924cdecaed71ea)) + +* Merge branch 'main' of https://github.com/callummcdougall/sae_vis ([`083aeba`](https://github.com/jbloomAus/SAEDashboard/commit/083aeba0e4048d9976ec5cbee8df7dc8fd4db4e9)) + +* Merge pull request #18 from chanind/remove-build-artifacts + +removing Python build artifacts and adding to .gitignore ([`b0e0594`](https://github.com/jbloomAus/SAEDashboard/commit/b0e0594590b4472b34052c6eb3ebceb6c9f58a11)) + +* removing Python build artifacts and adding to .gitignore ([`b6486f5`](https://github.com/jbloomAus/SAEDashboard/commit/b6486f56bea9d4bb7544c36afe70e6f891101b63)) + +* fix variable naming ([`2507918`](https://github.com/jbloomAus/SAEDashboard/commit/25079186b3f31d2271b1ecdb11f26904af7146d2)) + +* update readme ([`0ee3608`](https://github.com/jbloomAus/SAEDashboard/commit/0ee3608af396a1a6586dfb809f2f6480bb4f6390)) + +* update readme ([`f8351f8`](https://github.com/jbloomAus/SAEDashboard/commit/f8351f88e8432ccd4b2206e859daea316304d6c6)) + +* update version number ([`1e74408`](https://github.com/jbloomAus/SAEDashboard/commit/1e7440883f44a92705299430215f802fea4e1915)) + +* fix formatting and docstrings ([`b9fe2bb`](https://github.com/jbloomAus/SAEDashboard/commit/b9fe2bbb15a48e4b0415f6f4240d895990d54c9a)) + +* Merge pull request #17 from jordansauce/sae-agnostic-functions-new + +Added SAE class agnostic functions ([`0039c6f`](https://github.com/jbloomAus/SAEDashboard/commit/0039c6f8f99d6e8a1b2ff56aa85f60a3eba3afb0)) + +* Added sae class agnostic functions + +Added parse_feature_data() and parse_prompt_data() ([`e2709d0`](https://github.com/jbloomAus/SAEDashboard/commit/e2709d0b4c55d73d6026f3b9ce534f59ce61f344)) + +* add to pypi ([`02a5b9a`](https://github.com/jbloomAus/SAEDashboard/commit/02a5b9acd15433cc59d438271b9bd5e12d62b662)) + +* update notebook images ([`b87ad4d`](https://github.com/jbloomAus/SAEDashboard/commit/b87ad4d256f12c23605b0e7db307ee56913c93ef)) + +* fix layer parse and custom device ([`14c7ae9`](https://github.com/jbloomAus/SAEDashboard/commit/14c7ae9d0c8b7dad21b953cfc93fe7f34c74e149)) + +* update dropdown styling ([`83be219`](https://github.com/jbloomAus/SAEDashboard/commit/83be219bfe31b985a26762e06345c574aa0e6fe1)) + +* add custom prompt vis ([`cabdc5c`](https://github.com/jbloomAus/SAEDashboard/commit/cabdc5cb31f881cddf236490c41332c525d2ee74)) + +* d3 & multifeature refactor ([`f79a919`](https://github.com/jbloomAus/SAEDashboard/commit/f79a919691862f60a9e30fe0f79fd8e771bc932a)) + +* remove readme links ([`4bcef48`](https://github.com/jbloomAus/SAEDashboard/commit/4bcef489b644dd3357b1975f3245d534f6f0d2e0)) + +* add demo html ([`629c713`](https://github.com/jbloomAus/SAEDashboard/commit/629c713345407562dc4ccd9875bf3cfab5480bdd)) + +* remove demos ([`beedea9`](https://github.com/jbloomAus/SAEDashboard/commit/beedea9667761534a5293015aff9cc17638666a5)) + +* fix quantile error ([`3a23cfd`](https://github.com/jbloomAus/SAEDashboard/commit/3a23cfd56f21fe0775a1a9957db340d15f75f51a)) + +* width 425 ([`f25c776`](https://github.com/jbloomAus/SAEDashboard/commit/f25c776d5cb746916d3f2fdf368cbd5448742949)) + +* fix device bug ([`85dfa49`](https://github.com/jbloomAus/SAEDashboard/commit/85dfa497bc804945911e80607ac31cf3afbdc759)) + +* dont return vocab dict ([`b4c7138`](https://github.com/jbloomAus/SAEDashboard/commit/b4c713873870acb4035986cc5bff3a4ce1e466c9)) + +* save as JSON, fix device ([`eba2cff`](https://github.com/jbloomAus/SAEDashboard/commit/eba2cff3eb6215558577a6b4d4f8cc716766b927)) + +* simple fixed and issues ([`b28a0f7`](https://github.com/jbloomAus/SAEDashboard/commit/b28a0f7c7e936f4bea05528d952dfcd438533cce)) + +* Merge pull request #8 from lucyfarnik/topk-empty-mask + +Topk error handling for empty masks ([`2740c00`](https://github.com/jbloomAus/SAEDashboard/commit/2740c0047e78df7e56d7bcf707c909ac18e71c1f)) + +* Topk error handling for empty masks ([`1c2627e`](https://github.com/jbloomAus/SAEDashboard/commit/1c2627e237f8f67725fc44e60a190bc141d36fc8)) + +* viz to vis ([`216d02b`](https://github.com/jbloomAus/SAEDashboard/commit/216d02b550d6fbcb9b37d39c1b272a7dda91aadc)) + +* update readme links ([`f9b3f95`](https://github.com/jbloomAus/SAEDashboard/commit/f9b3f95e31e7150024be27ec62246f43bf9bcbb8)) + +* update for TL ([`1941db1`](https://github.com/jbloomAus/SAEDashboard/commit/1941db1e22093d6fc88fb3fcd6f4c7d535d8b3b4)) + +* Merge pull request #5 from lucyfarnik/transformer-lens-models + +Compatibility with TransformerLens models ([`8d59c6c`](https://github.com/jbloomAus/SAEDashboard/commit/8d59c6c5a5f2b98c486e5c74130371ad9254d1c9)) + +* Merge branch 'main' into transformer-lens-models ([`73057d7`](https://github.com/jbloomAus/SAEDashboard/commit/73057d7e2a3e4e9669fc0556e64190811ac8b52d)) + +* Merge pull request #4 from lucyfarnik/resid-saes-support + +Added support for residual-adjacent SAEs ([`b02e98b`](https://github.com/jbloomAus/SAEDashboard/commit/b02e98b3b852c0613a890f8949d04b5560fb6fd6)) + +* Added support for residual-adjacent SAEs ([`89aacf1`](https://github.com/jbloomAus/SAEDashboard/commit/89aacf1b22aa81b393b10eca8611c9dbf406c638)) + +* Merge pull request #7 from lucyfarnik/fix-histogram-div-zero + +Fixed division by zero in histogram calculation ([`3aee20e`](https://github.com/jbloomAus/SAEDashboard/commit/3aee20ea7f99cc07e6c5085fddb70cadd8327f4d)) + +* Fixed division by zero in histogram calculation ([`e986e90`](https://github.com/jbloomAus/SAEDashboard/commit/e986e907cc42790efc93ce75ebf7b28a0278aaa2)) + +* Merge pull request #6 from lucyfarnik/handling-dead-features + +Edge case handling for dead features ([`9e43c30`](https://github.com/jbloomAus/SAEDashboard/commit/9e43c308e58769828234e1505f1c1102ba651dfd)) + +* Edge case handling for dead features ([`5197aee`](https://github.com/jbloomAus/SAEDashboard/commit/5197aee2c9f92bce7c5fd6d22201152a68c2e6ca)) + +* add features argument ([`f24ef7e`](https://github.com/jbloomAus/SAEDashboard/commit/f24ef7ebebb3d4fd92e299858dbd5b968b78c69e)) + +* fix image link ([`22c8734`](https://github.com/jbloomAus/SAEDashboard/commit/22c873434dfa84e3aed5ee0aab0fd25b288428a6)) + +* Merge pull request #1 from lucyfarnik/read-me-links-fix + +Fixed readme links pointing to the old colab ([`86f8e20`](https://github.com/jbloomAus/SAEDashboard/commit/86f8e2012e376b6c498e5e708324f812af6fbc98)) + +* Fixed readme links pointing to the old colab ([`28ef1cb`](https://github.com/jbloomAus/SAEDashboard/commit/28ef1cbd1b91f6c09c842f48e1f997d189ca04e7)) + +* Added readme section about models ([`7523e7f`](https://github.com/jbloomAus/SAEDashboard/commit/7523e7f6363e030196496b3c6a3dc70b234c2d9a)) + +* Compatibility with TransformerLens models ([`ba708e9`](https://github.com/jbloomAus/SAEDashboard/commit/ba708e987be6cc7a09d34ea8fb83de009312684d)) + +* Added support for MPS ([`196c0a2`](https://github.com/jbloomAus/SAEDashboard/commit/196c0a24d0e8277b327eb2d57662075f9106990b)) + +* black font ([`d81e74d`](https://github.com/jbloomAus/SAEDashboard/commit/d81e74d575326ef786881fb9182a768f9de2cb70)) + +* fix html bug ([`265dedd`](https://github.com/jbloomAus/SAEDashboard/commit/265dedd376991230e2041fd37d5b6a0eda048545)) + +* add jax and dataset deps ([`f1caeaf`](https://github.com/jbloomAus/SAEDashboard/commit/f1caeafc9613e27c7663447cf862301ac11d842d)) + +* remove TL dependency ([`155991f`](https://github.com/jbloomAus/SAEDashboard/commit/155991fe61d0199d081d344ac44996edce35d118)) + +* first commit ([`7782eb6`](https://github.com/jbloomAus/SAEDashboard/commit/7782eb6d5058372630c5bbb8693eb540a7bceaf4)) diff --git a/SAEDashboard/Dockerfile b/SAEDashboard/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..47dc3f8ccdba00df9c04644a419865ae5ddfff59 --- /dev/null +++ b/SAEDashboard/Dockerfile @@ -0,0 +1,45 @@ +# docker build --target development -t decoderesearch/saedashboard-cuda --file Dockerfile . +# docker run --entrypoint /bin/bash -it decoderesearch/saedashboard-cuda + +ARG APP_NAME=sae_dashboard +ARG APP_PATH=/opt/$APP_NAME +ARG PYTHON_VERSION=3.12.2 +ARG POETRY_VERSION=1.8.3 + +FROM pytorch/pytorch:2.2.0-cuda12.1-cudnn8-devel AS staging +ARG APP_NAME +ARG APP_PATH +ARG POETRY_VERSION + +ENV \ + PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + PYTHONFAULTHANDLER=1 +ENV \ + POETRY_VERSION=$POETRY_VERSION \ + POETRY_HOME="/opt/poetry" \ + POETRY_VIRTUALENVS_IN_PROJECT=true \ + POETRY_NO_INTERACTION=1 + +RUN apt-get update && apt-get install --no-install-recommends -y curl git-lfs vim && rm -rf /var/lib/apt/lists/* + +RUN curl -sSL https://install.python-poetry.org | python +ENV PATH="$POETRY_HOME/bin:$PATH" + +WORKDIR $APP_PATH +COPY ./pyproject.toml ./README.md ./ +COPY ./$APP_NAME ./$APP_NAME + +FROM staging AS development +ARG APP_NAME +ARG APP_PATH + +WORKDIR $APP_PATH +RUN poetry lock +RUN poetry install --no-dev --no-cache + +RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash +RUN git lfs install + +ENTRYPOINT ["/bin/bash"] +CMD ["poetry", "shell"] \ No newline at end of file diff --git a/SAEDashboard/LICENSE b/SAEDashboard/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7df5bc56dbc80d5e7a4c53b5728831358e571244 --- /dev/null +++ b/SAEDashboard/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Decode Research + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/SAEDashboard/Makefile b/SAEDashboard/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..101bc873789d3d20ae871bbec5dedf1d6e85165d --- /dev/null +++ b/SAEDashboard/Makefile @@ -0,0 +1,27 @@ +format: + poetry run black . + poetry run isort . + +lint: + poetry run flake8 . + poetry run black --check . + poetry run isort --check-only --diff . + +check-type: + poetry run pyright . + +test: + poetry run pytest --cov=sae_dashboard --cov-report=term-missing tests/unit + +check-ci: + make format + make lint + make check-type + make test + +profile-memory-unit: + poetry run pytest --memray tests/unit + +profile-speed-unit: + poetry run py.test tests/unit --profile-svg -k "test_SaeVisData_create_results_look_reasonable[Default]" + open prof/combined.svg diff --git a/SAEDashboard/README.md b/SAEDashboard/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b9961d27d6d9c99e824f6857d169ab6014d80030 --- /dev/null +++ b/SAEDashboard/README.md @@ -0,0 +1,221 @@ +# SAEDashboard + +SAEDashboard is a tool for visualizing and analyzing Sparse Autoencoders (SAEs) in neural networks. This repository is an adaptation and extension of Callum McDougal's [SAEVis](https://github.com/callummcdougall/sae_vis/tree/main), providing enhanced functionality for feature visualization and analysis as well as feature dashboard creation at scale. + +## Overview + +This codebase was originally designed to replicate Anthropic's sparse autoencoder visualizations, which you can see [here](https://transformer-circuits.pub/2023/monosemantic-features/vis/a1.html). SAEDashboard primarily provides visualizations of features, including their activations, logits, and correlations--similar to what is shown in the Anthropic link. + + + +## Features + +- Customizable dashboards with various plots and data representations for SAE features +- Support for any SAE in the SAELens library +- Neuronpedia integration for hosting and comprehensive neuron analysis (note: this requires a Neuronpedia account and is currently only used internally) +- Ability to handle large datasets and models efficiently + +## Installation + +Install SAEDashboard using pip: +```bash +pip install sae-dashboard +``` + + +## Quick Start + +Here's a basic example of how to use SAEDashboard with SaeVisRunner: + +```python +from sae_lens import SAE +from transformer_lens import HookedTransformer +from sae_dashboard.sae_vis_data import SaeVisConfig +from sae_dashboard.sae_vis_runner import SaeVisRunner + +# Load model and SAE +model = HookedTransformer.from_pretrained("gpt2-small", device="cuda", dtype="bfloat16") +sae, _, _ = SAE.from_pretrained( + release="gpt2-small-res-jb", + sae_id="blocks.6.hook_resid_pre", + device="cuda" +) +sae.fold_W_dec_norm() + +# Configure visualization +config = SaeVisConfig( + hook_point=sae.cfg.hook_name, + features=list(range(256)), + minibatch_size_features=64, + minibatch_size_tokens=256, + device="cuda", + dtype="bfloat16" +) + +# Generate data +data = SaeVisRunner(config).run(encoder=sae, model=model, tokens=your_token_dataset) + +# Save feature-centric visualization +from sae_dashboard.data_writing_fns import save_feature_centric_vis +save_feature_centric_vis(sae_vis_data=data, filename="feature_dashboard.html") +``` + +For a more detailed tutorial, check out our [demo notebook](https://colab.research.google.com/drive/1oqDS35zibmL1IUQrk_OSTxdhcGrSS6yO?usp=drive_link). + +## Advanced Usage: Neuronpedia Runner + +For internal use or advanced analysis, SAEDashboard provides a Neuronpedia runner that generates data compatible with Neuronpedia. Here's a basic example: + +```python +from sae_dashboard.neuronpedia.neuronpedia_runner_config import NeuronpediaRunnerConfig +from sae_dashboard.neuronpedia.neuronpedia_runner import NeuronpediaRunner + +config = NeuronpediaRunnerConfig( + sae_set="your_sae_set", + sae_path="path/to/sae", + np_set_name="your_neuronpedia_set_name", + huggingface_dataset_path="dataset/path", + n_prompts_total=1000, + n_features_at_a_time=64 +) + +runner = NeuronpediaRunner(config) +runner.run() +``` + +For more options and detailed configuration, refer to the `NeuronpediaRunnerConfig` class in the code. + +## Cross-Layer Transcoder (CLT) Support + +SAEDashboard now supports visualization of Cross-Layer Transcoders (CLTs), which are a variant of SAEs that process activations across transformer layers. To use CLT visualization: + +### Required Files + +When using a CLT model, you'll need these files in your CLT model directory: + +1. **Model weights**: A `.safetensors` or `.pt` file containing the CLT weights +2. **Configuration**: A `cfg.json` file with the CLT configuration, including: + - `num_features`: Number of features in the CLT + - `num_layers`: Number of transformer layers + - `d_model`: Model dimension + - `activation_fn`: Activation function (e.g., "jumprelu", "relu") + - `normalization_method`: How inputs are normalized (e.g., "mean_std", "none") + - `tl_input_template`: TransformerLens hook template (e.g., "blocks.{}.ln2.hook_normalized"). Note that this will usually differ from the hook name in the model's cfg.json, which is based on NNsight/transformers. You will need to find the corresponding TransformerLens hook name. +3. **Normalization statistics** (if `normalization_method` is "mean_std"): A `norm_stats.json` file containing the mean and standard deviation for each layer's inputs, generated from the dataset when activations were generated (or afterwards). The file should have this structure: + ```json + { + "0": { + "inputs": { + "mean": [0.1, -0.2, ...], // Array of d_model values + "std": [1.0, 0.9, ...] // Array of d_model values + } + }, + "1": { + "inputs": { + "mean": [...], + "std": [...] + } + }, + // ... entries for each layer + } + ``` + +### Example Usage + +```python +from sae_dashboard.neuronpedia.neuronpedia_runner_config import NeuronpediaRunnerConfig +from sae_dashboard.neuronpedia.neuronpedia_runner import NeuronpediaRunner + +config = NeuronpediaRunnerConfig( + sae_set="your_clt_set", + sae_path="/path/to/clt/model/directory", # Directory containing the files above + model_id="gpt2", # Base model the CLT was trained on + outputs_dir="clt_outputs", + huggingface_dataset_path="your/dataset", + use_clt=True, # Enable CLT mode + clt_layer_idx=5, # Which layer to visualize (0-indexed) + clt_weights_filename="model.safetensors", # Optional: specify exact weights file + n_prompts_total=1000, + n_features_at_a_time=64 +) + +runner = NeuronpediaRunner(config) +runner.run() +``` + +### Notes on CLT Support + +- CLTs must be loaded from local files (HuggingFace Hub loading not yet supported) +- The `--use-clt` flag is mutually exclusive with `--use-transcoder` and `--use-skip-transcoder` +- JumpReLU activation functions with learned thresholds are supported +- The visualization will show features for the specified layer only + +## Configuration Options + +SAEDashboard offers a wide range of configuration options for both SaeVisRunner and NeuronpediaRunner. Key options include: + +- `hook_point`: The layer to analyze in the model +- `features`: List of feature indices to visualize +- `minibatch_size_features`: Number of features to process in each batch +- `minibatch_size_tokens`: Number of tokens to process in each forward pass +- `device`: Computation device (e.g., "cuda", "cpu") +- `dtype`: Data type for computations +- `sparsity_threshold`: Threshold for feature sparsity (Neuronpedia runner) +- `n_prompts_total`: Total number of prompts to analyze +- `use_wandb`: Enable logging with Weights & Biases + +Refer to `SaeVisConfig` and `NeuronpediaRunnerConfig` for full lists of options. + +## Contributing + +This project uses [Poetry](https://python-poetry.org/) for dependency management. After cloning the repo, install dependencies with `poetry lock && poetry install`. + +We welcome contributions to SAEDashboard! Please follow these steps: + +1. Fork the repository +2. Create a new branch for your feature +3. Implement your changes +4. Run tests and checks: + - Use `make format` to format your code + - Use `make check-ci` to run all checks and tests +5. Submit a pull request + +Ensure your code passes all checks, including: +- Black and Flake8 for formatting and linting +- Pyright for type-checking +- Pytest for tests + +## Citing This Work + +To cite SAEDashboard in your research, please use the following BibTeX entry: + +```bibtex +@misc{sae_dashboard, + title = {{SAE Dashboard}}, + author = {Decode Research}, + howpublished = {\url{https://github.com/jbloomAus/sae-dashboard}}, + year = {2024} +} +``` + +## License + +SAE Dashboard is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. + +## Acknowledgment and Citation + +This project is based on the work by Callum McDougall. If you use SAEDashboard in your research, please cite the original SAEVis project as well: + +```bibtex +@misc{sae_vis, + title = {{SAE Visualizer}}, + author = {Callum McDougall}, + howpublished = {\url{https://github.com/callummcdougall/sae_vis}}, + year = {2024} +} +``` + +## Contact + +For questions or support, please [open an issue](https://github.com/your-username/sae-dashboard/issues) on our GitHub repository. + diff --git a/SAEDashboard/docker/docker-entrypoint.sh b/SAEDashboard/docker/docker-entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..6911523002c332b35fe01b28036c6ca2b5446f88 --- /dev/null +++ b/SAEDashboard/docker/docker-entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +# activate our virtual environment here +. /opt/pysetup/.venv/bin/activate + +# You can put other setup logic here + +# Evaluating passed command: +exec "$@" \ No newline at end of file diff --git a/SAEDashboard/docker/docker-hub.yaml b/SAEDashboard/docker/docker-hub.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a3d65f47dc2f6571cae2ba1e1ff1155481049d77 --- /dev/null +++ b/SAEDashboard/docker/docker-hub.yaml @@ -0,0 +1,57 @@ +name: Build and Push Docker Image to Docker Hub + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + REGISTRY: docker.io + IMAGE_NAME: decoderesearch/saedashboard-cuda + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker build --target development -t ${{ env.IMAGE_NAME }} --file Dockerfile . + # test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - name: Test the Docker image + # run: docker-compose up -d + push_to_registry: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v2 + with: + context: "{{defaultContext}}" + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/SAEDashboard/neuronpedia_vector_pipeline_demo.ipynb b/SAEDashboard/neuronpedia_vector_pipeline_demo.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b31dc881d940d5498c8cf84b818e547ed16c8626 --- /dev/null +++ b/SAEDashboard/neuronpedia_vector_pipeline_demo.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of vectors: 1\n", + "Vector dimension: 768\n", + "Vector names: ['sentiment_vector']\n" + ] + } + ], + "source": [ + "# Example usage\n", + "import json\n", + "import torch\n", + "from pathlib import Path\n", + "from sae_dashboard.neuronpedia.vector_set import VectorSet\n", + "\n", + "\n", + "# Load vector from file. Note that the vectors should be stored in this format, as a list of lists of floats:\n", + "# {\n", + "# \"vectors\": [\n", + "# [vector_1],\n", + "# [vector_2],\n", + "# ...\n", + "# ]\n", + "# }\n", + "json_path = Path(\"test_vectors/logistic_direction.json\")\n", + "\n", + "# Load the vector into a VectorSet\n", + "vector_set = VectorSet.from_json(\n", + " json_path=json_path,\n", + " d_model=768, # Example dimension for GPT-2 Small\n", + " hook_point=\"blocks.7.hook_resid_pre\",\n", + " hook_layer=7,\n", + " model_name=\"gpt2\",\n", + " names=[\"sentiment_vector\"], # Optional custom name\n", + ")\n", + "\n", + "# Now you can use the vector set\n", + "print(f\"Number of vectors: {vector_set.vectors.shape[0]}\")\n", + "print(f\"Vector dimension: {vector_set.vectors.shape[1]}\")\n", + "print(f\"Vector names: {vector_set.names}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# You can also save and load the vector set as a VectorSet object as opposed to a simple list of lists of floats\n", + "vector_set.save(Path(\"test_vectors/logistic_direction_vector_set.json\"))\n", + "vector_set = VectorSet.load(Path(\"test_vectors/logistic_direction_vector_set.json\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_dashboard.neuronpedia.neuronpedia_vector_runner import (\n", + " NeuronpediaVectorRunner,\n", + " NeuronpediaVectorRunnerConfig,\n", + ")\n", + "\n", + "cfg = NeuronpediaVectorRunnerConfig(\n", + " outputs_dir=\"test_outputs/\",\n", + " huggingface_dataset_path=\"monology/pile-uncopyrighted\",\n", + " vector_dtype=\"float32\",\n", + " model_dtype=\"float32\",\n", + " # Small test settings\n", + " n_prompts_total=16384,\n", + " n_tokens_in_prompt=128, # Shorter sequences\n", + " n_prompts_in_forward_pass=256,\n", + " n_vectors_at_a_time=1,\n", + " use_wandb=False, # Disable wandb for testing\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Device Count: 1\n", + "Using specified vector dtype: float32\n", + "SAE Device: mps\n", + "Model Device: mps\n", + "Model Num Devices: 1\n", + "Activation Store Device: mps\n", + "Dataset Path: monology/pile-uncopyrighted\n", + "Forward Pass size: 128\n", + "Total number of tokens: 2097152\n", + "Total number of contexts (prompts): 16384\n", + "Vector DType: float32\n", + "Model DType: float32\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/curttigges/miniconda3/envs/sae-d/lib/python3.12/site-packages/transformers/tokenization_utils_base.py:1601: FutureWarning: `clean_up_tokenization_spaces` was not set. It will be set to `True` by default. This behavior will be depracted in transformers v4.45, and will be then set to `False` by default. For more details check this issue: https://github.com/huggingface/transformers/issues/31884\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded pretrained model gpt2 into HookedTransformer\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f1a49eee02cd482e9de6deaa88e4afde", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Resolving data files: 0%| | 0/30 [00:00 1024). Running this sequence through the model will result in indexing errors\n", + "100%|██████████| 2048/2048 [00:18<00:00, 108.67it/s]\n", + "0it [00:00, ?it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "========== Running Batch #0 ==========\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "418cf3ccf15d4ae597e06d24e4c89b11", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Forward passes to cache data for vis: 0%| | 0/60 [00:00┏━━━━━━┳━━━━━━┳━━━━━━━┓\n", + "┃ Task Time Pct % ┃\n", + "┡━━━━━━╇━━━━━━╇━━━━━━━┩\n", + "└──────┴──────┴───────┘\n", + "\n" + ], + "text/plain": [ + "┏━━━━━━┳━━━━━━┳━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mTask\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mTime\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mPct %\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━╇━━━━━━╇━━━━━━━┩\n", + "└──────┴──────┴───────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "1it [00:02, 2.65s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Output written to test_outputs/gpt2_blocks.7.hook_resid_pre/batch-0.json\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "runner = NeuronpediaVectorRunner(vector_set, cfg)\n", + "runner.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sae-d", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SAEDashboard/notebooks/experiment_gemma_2_9b_dashboard_generation_np.py b/SAEDashboard/notebooks/experiment_gemma_2_9b_dashboard_generation_np.py new file mode 100644 index 0000000000000000000000000000000000000000..444fca15e531192038dc2bb805ebe9ebcf15ec42 --- /dev/null +++ b/SAEDashboard/notebooks/experiment_gemma_2_9b_dashboard_generation_np.py @@ -0,0 +1,52 @@ +# I'm running this in an A100 with 90GB of GPU Ram. +# I'm using TransformerLens 2.2 which I manually installed from source. +# I'm a few edits to fix bfloat16 errors (but I've since made PR's so latest SAE Lens / SAE dashboard should be fine here). +import os + +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + +# GET WEIGHTS FROM WANDB +# import wandb +# run = wandb.init() +# artifact = run.use_artifact('jbloom/gemma-2-9b_test/sae_gemma-2-9b_blocks.24.hook_resid_post_114688:v7', type='model') +# artifact_dir = artifact.download() + + +# Get Sparsity from Wandb (and manually move it accross) +# import wandb +# run = wandb.init() +# artifact = run.use_artifact('jbloom/gemma-2-9b_test/sae_gemma-2-9b_blocks.24.hook_resid_post_114688_log_feature_sparsity:v7', type='log_feature_sparsity') +# artifact_dir = artifact.download() + +NP_OUTPUT_FOLDER = "neuronpedia_outputs/gemma-2-9b-test" +SAE_SET = "res-jb-test" +SAE_PATH = "artifacts/sae_gemma-2-9b_blocks.24.hook_resid_post_114688:v7" +print(SAE_PATH) + +# delete output files if present +os.system(f"rm -rf {NP_OUTPUT_FOLDER}") +cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=-6, + n_prompts_total=4096, + huggingface_dataset_path="monology/pile-uncopyrighted", + n_features_at_a_time=1024, + n_tokens_in_prompt=128, + start_batch=0, + end_batch=8, + use_wandb=True, + sae_device="cuda", + model_device="cuda", + model_n_devices=1, + activation_store_device="cuda", + model_dtype="bfloat16", + sae_dtype="float32", +) + +runner = NeuronpediaRunner(cfg) +runner.run() diff --git a/SAEDashboard/notebooks/sae_dashboard_demo_gemma_2_9b.ipynb b/SAEDashboard/notebooks/sae_dashboard_demo_gemma_2_9b.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8ddc3b0d4b02c3f1446fb39fb26096c56e969196 --- /dev/null +++ b/SAEDashboard/notebooks/sae_dashboard_demo_gemma_2_9b.ipynb @@ -0,0 +1,618 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Demo Notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Steps:\n", + "1. Download SAE with SAE Lens.\n", + "2. Create a dataset consistent with that SAE. \n", + "3. Fold the SAE decoder norm weights so that feature activations are \"correct\".\n", + "4. Estimate the activation normalization constant if needed, and fold it into the SAE weights.\n", + "5. Run the SAE generator for the features you want." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Set Up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Download Gemma-2-9b weights\n", + "\n", + "import wandb\n", + "\n", + "run = wandb.init()\n", + "artifact = run.use_artifact(\n", + " \"jbloom/gemma-2-9b_test/sae_gemma-2-9b_blocks.24.hook_resid_post_114688:v7\",\n", + " type=\"model\",\n", + ")\n", + "artifact_dir = artifact.download()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import wandb\n", + "\n", + "run = wandb.init()\n", + "artifact = run.use_artifact(\n", + " \"jbloom/gemma-2-9b_test/sae_gemma-2-9b_blocks.24.hook_resid_post_114688_log_feature_sparsity:v7\",\n", + " type=\"log_feature_sparsity\",\n", + ")\n", + "artifact_dir = artifact.download()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import matplotlib.pyplot as plt\n", + "from safetensors.torch import load_file\n", + "\n", + "# Assume we have a PyTorch tensor\n", + "feature_sparsity = load_file(\n", + " \"artifacts/sae_gemma-2-9b_blocks.24.hook_resid_post_114688:v7/sparsity.safetensors\"\n", + ")[\"sparsity\"]\n", + "\n", + "# Convert the tensor to a numpy array\n", + "data = feature_sparsity.numpy()\n", + "\n", + "# Create the histogram\n", + "plt.hist(data, bins=30, edgecolor=\"black\")\n", + "\n", + "# Add labels and title\n", + "plt.xlabel(\"Value\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Histogram of PyTorch Tensor\")\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "from transformer_lens import HookedTransformer\n", + "from sae_lens import ActivationsStore, SAE\n", + "from importlib import reload\n", + "import sae_dashboard\n", + "\n", + "torch.set_grad_enabled(False)\n", + "\n", + "reload(sae_dashboard)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "MODEL = \"gemma-2-9b\"\n", + "\n", + "if torch.backends.mps.is_available():\n", + " device = \"mps\"\n", + "else:\n", + " device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "print(f\"Device: {device}\")\n", + "\n", + "model = HookedTransformer.from_pretrained(MODEL, device=device, dtype=\"bfloat16\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sae = SAE.load_from_pretrained(\n", + " \"artifacts/sae_gemma-2-9b_blocks.24.hook_resid_post_114688:v7\"\n", + ")\n", + "sae.fold_W_dec_norm()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# _, cache = model.run_with_cache(\"Wasssssup\", names_filter = sae.cfg.hook_name)\n", + "# sae_in = cache[sae.cfg.hook_name]\n", + "# print(sae_in.shape)\n", + "sae_in = torch.rand((1, 4, 3584)).to(sae.device)\n", + "sae_out = sae(sae_in)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# # the cfg dict is returned alongside the SAE since it may contain useful information for analysing the SAE (eg: instantiating an activation store)\n", + "# # Note that this is not the same as the SAEs config dict, rather it is whatever was in the HF repo, from which we can extract the SAE config dict\n", + "# # We also return the feature sparsities which are stored in HF for convenience.\n", + "# sae, cfg_dict, sparsity = SAE.from_pretrained(\n", + "# release = \"mistral-7b-res-wg\", # see other options in sae_lens/pretrained_saes.yaml\n", + "# sae_id = \"blocks.8.hook_resid_pre\", # won't always be a hook point\n", + "# device = \"cuda:3\",\n", + "# )\n", + "# # fold w_dec norm so feature activations are accurate\n", + "#\n", + "activations_store = ActivationsStore.from_sae(\n", + " model=model,\n", + " sae=sae,\n", + " streaming=True,\n", + " store_batch_size_prompts=8,\n", + " n_batches_in_buffer=8,\n", + " device=\"cpu\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sae.encode_fn" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_lens import run_evals\n", + "\n", + "eval_metrics = run_evals(\n", + " sae=sae,\n", + " activation_store=activations_store,\n", + " model=model,\n", + " n_eval_batches=3,\n", + " eval_batch_size_prompts=8,\n", + ")\n", + "\n", + "# CE Loss score should be high for residual stream SAEs\n", + "print(eval_metrics[\"metrics/CE_loss_score\"])\n", + "\n", + "# ce loss without SAE should be fairly low < 3.5 suggesting the Model is being run correctly\n", + "print(eval_metrics[\"metrics/ce_loss_without_sae\"])\n", + "\n", + "# ce loss with SAE shouldn't be massively higher\n", + "print(eval_metrics[\"metrics/ce_loss_with_sae\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from tqdm import tqdm\n", + "\n", + "\n", + "from sae_dashboard.utils_fns import get_tokens\n", + "\n", + "# 1000 prompts is plenty for a demo.\n", + "token_dataset = get_tokens(activations_store, 4096)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# torch.save(token_dataset, \"to\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# torch.save(token_dataset, \"token_dataset.pt\")\n", + "token_dataset = torch.load(\"token_dataset.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "os.rmdir(\"demo_activations_cache\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "\n", + "\n", + "def select_indices_in_range(tensor, min_val, max_val, num_samples=None):\n", + " \"\"\"\n", + " Select indices of a tensor where values fall within a specified range.\n", + "\n", + " Args:\n", + " tensor (torch.Tensor): Input tensor with values between -10 and 0.\n", + " min_val (float): Minimum value of the range (inclusive).\n", + " max_val (float): Maximum value of the range (inclusive).\n", + " num_samples (int, optional): Number of indices to randomly select. If None, return all indices.\n", + "\n", + " Returns:\n", + " torch.Tensor: Tensor of selected indices.\n", + " \"\"\"\n", + " # Ensure the input range is valid\n", + " if not (-10 <= min_val <= max_val <= 0):\n", + " raise ValueError(\n", + " \"Range must be within -10 to 0, and min_val must be <= max_val\"\n", + " )\n", + "\n", + " # Find indices where values are within the specified range\n", + " mask = (tensor >= min_val) & (tensor <= max_val)\n", + " indices = mask.nonzero().squeeze()\n", + "\n", + " # If num_samples is specified and less than the total number of valid indices,\n", + " # randomly select that many indices\n", + " if num_samples is not None and num_samples < indices.numel():\n", + " perm = torch.randperm(indices.numel())\n", + " indices = indices[perm[:num_samples]]\n", + "\n", + " return indices\n", + "\n", + "\n", + "n_features = 4096\n", + "feature_idxs = select_indices_in_range(feature_sparsity, -4, -2, 4096)\n", + "feature_sparsity[feature_idxs.tolist()]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from importlib import reload\n", + "import sys\n", + "\n", + "\n", + "def reload_user_modules(module_names):\n", + " \"\"\"Reload specified user modules.\"\"\"\n", + " for name in module_names:\n", + " if name in sys.modules:\n", + " reload(sys.modules[name])\n", + "\n", + "\n", + "# List of your module names\n", + "user_modules = [\n", + " \"sae_dashboard\",\n", + " \"sae_dashboard.sae_vis_runner\",\n", + " \"sae_dashboard.data_parsing_fns\",\n", + " \"sae_dashboard.feature_data_generator\",\n", + "]\n", + "\n", + "# Reload modules\n", + "reload_user_modules(user_modules)\n", + "\n", + "# Re-import after reload\n", + "from sae_dashboard.feature_data_generator import FeatureDataGenerator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "test_feature_idx_gpt = feature_idxs.tolist()\n", + "\n", + "feature_vis_config_gpt = sae_vis_runner.SaeVisConfig(\n", + " hook_point=sae.cfg.hook_name,\n", + " features=test_feature_idx_gpt,\n", + " minibatch_size_features=16,\n", + " minibatch_size_tokens=4096, # this is really prompt with the number of tokens determined by the sequence length\n", + " verbose=True,\n", + " device=\"cuda\",\n", + " cache_dir=Path(\n", + " \"demo_activations_cache\"\n", + " ), # this will enable us to skip running the model for subsequent features.\n", + " dtype=\"bfloat16\",\n", + ")\n", + "\n", + "runner = sae_vis_runner.SaeVisRunner(feature_vis_config_gpt)\n", + "\n", + "data = runner.run(\n", + " encoder=sae, # type: ignore\n", + " model=model,\n", + " tokens=token_dataset[:1024],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_dashboard.data_writing_fns import save_feature_centric_vis\n", + "\n", + "filename = f\"demo_feature_dashboards.html\"\n", + "save_feature_centric_vis(sae_vis_data=data, filename=filename)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quick Profiling experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def mock_feature_acts_subset_for_now(sae: SAE):\n", + "\n", + " @torch.no_grad()\n", + " def sae_lens_get_feature_acts_subset(x: torch.Tensor, feature_idx): # type: ignore\n", + " \"\"\"\n", + " Get a subset of the feature activations for a dataset.\n", + " \"\"\"\n", + " original_device = x.device\n", + " feature_activations = sae.encode_fn(x.to(device=sae.device, dtype=sae.dtype))\n", + " return feature_activations[..., feature_idx].to(original_device)\n", + "\n", + " sae.get_feature_acts_subset = sae_lens_get_feature_acts_subset # type: ignore\n", + "\n", + " return sae\n", + "\n", + "\n", + "sae = mock_feature_acts_subset_for_now(sae)\n", + "feature_idxs = list(range(128))\n", + "sae_in = torch.rand((1, 4, 3584)).to(sae.device)\n", + "sae.get_feature_acts_subset(sae_in, feature_idxs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for k, v in sae.named_parameters():\n", + " print(k, v.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from torch import nn\n", + "from typing import List\n", + "\n", + "\n", + "class FeatureMaskingContext:\n", + " def __init__(self, sae: SAE, feature_idxs: List):\n", + " self.sae = sae\n", + " self.feature_idxs = feature_idxs\n", + " self.original_weight = {}\n", + "\n", + " def __enter__(self):\n", + "\n", + " ## W_dec\n", + " self.original_weight[\"W_dec\"] = getattr(self.sae, \"W_dec\").data.clone()\n", + " # mask the weight\n", + " masked_weight = sae.W_dec[self.feature_idxs]\n", + " # set the weight\n", + " setattr(self.sae, \"W_dec\", nn.Parameter(masked_weight))\n", + "\n", + " ## W_enc\n", + " # clone the weight.\n", + " self.original_weight[\"W_enc\"] = getattr(self.sae, \"W_enc\").data.clone()\n", + " # mask the weight\n", + " masked_weight = sae.W_enc[:, self.feature_idxs]\n", + " # set the weight\n", + " setattr(self.sae, \"W_enc\", nn.Parameter(masked_weight))\n", + "\n", + " if self.sae.cfg.architecture == \"standard\":\n", + "\n", + " ## b_enc\n", + " self.original_weight[\"b_enc\"] = getattr(self.sae, \"b_enc\").data.clone()\n", + " # mask the weight\n", + " masked_weight = sae.b_enc[self.feature_idxs]\n", + " # set the weight\n", + " setattr(self.sae, \"b_enc\", nn.Parameter(masked_weight))\n", + "\n", + " elif self.sae.cfg.architecture == \"gated\":\n", + "\n", + " ## b_gate\n", + " self.original_weight[\"b_gate\"] = getattr(self.sae, \"b_gate\").data.clone()\n", + " # mask the weight\n", + " masked_weight = sae.b_gate[self.feature_idxs]\n", + " # set the weight\n", + " setattr(self.sae, \"b_gate\", nn.Parameter(masked_weight))\n", + "\n", + " ## r_mag\n", + " self.original_weight[\"r_mag\"] = getattr(self.sae, \"r_mag\").data.clone()\n", + " # mask the weight\n", + " masked_weight = sae.r_mag[self.feature_idxs]\n", + " # set the weight\n", + " setattr(self.sae, \"r_mag\", nn.Parameter(masked_weight))\n", + "\n", + " ## b_mag\n", + " self.original_weight[\"b_mag\"] = getattr(self.sae, \"b_mag\").data.clone()\n", + " # mask the weight\n", + " masked_weight = sae.b_mag[self.feature_idxs]\n", + " # set the weight\n", + " setattr(self.sae, \"b_mag\", nn.Parameter(masked_weight))\n", + " else:\n", + " raise (ValueError(\"Invalid architecture\"))\n", + "\n", + " return self\n", + "\n", + " def __exit__(self, exc_type, exc_value, traceback):\n", + "\n", + " # set everything back to normal\n", + " for key, value in self.original_weight.items():\n", + " setattr(self.sae, key, nn.Parameter(value))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gc\n", + "import torch\n", + "\n", + "gc.collect()\n", + "torch.cuda.empty_cache()\n", + "torch.set_grad_enabled(False)\n", + "\n", + "\n", + "def my_function(sae_in):\n", + " # Your PyTorch code here\n", + " feature_idxs = list(range(2048))\n", + " with FeatureMaskingContext(sae, feature_idxs):\n", + " features = sae(sae_in)\n", + " print(features.mean())\n", + "\n", + "\n", + "tokens = token_dataset[:64]\n", + "_, cache = model.run_with_cache(\n", + " tokens, stop_at_layer=sae.cfg.hook_layer + 1, names_filter=sae.cfg.hook_name\n", + ")\n", + "sae_in = cache[sae.cfg.hook_name]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "tokens.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sae.W_dec.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext memray" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%memray_flamegraph --trace-python-allocators --leaks\n", + "my_function(sae_in)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SAEDashboard/pyproject.toml b/SAEDashboard/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..79cb896017f186fb5dfabaaf671c6d6bead797c1 --- /dev/null +++ b/SAEDashboard/pyproject.toml @@ -0,0 +1,70 @@ +[tool.poetry] +name = "sae-dashboard" +version = "0.7.3" +description = "Open-source SAE visualizer, based on Anthropic's published visualizer. Forked / Detached from sae_vis." +authors = ["Callum McDougall ", "Joseph Bloom, "] +readme = "README.md" +license = "MIT" + +[tool.poetry.dependencies] +python = "^3.10" +torch = "^2.0.0" +einops = ">=0.7.0" +datasets = "^3.0.0" +dataclasses-json = "^0.6.4" +jaxtyping = "^0.2.28" +transformer-lens = "^2.2.0" +transformers = "<4.57.0" +eindex-callum = "^0.1.0" +rich = "^13.7.1" +matplotlib = "^3.8.4" +safetensors = "^0.4.3" +typer = "^0.12.3" +sae-lens = "^6.8.0" +decode-clt = "^0.0.1" +hf-transfer = "^0.1.9" + +[tool.poetry.group.dev.dependencies] +isort = "^5.13.2" +ruff = "^0.3.7" +pytest = "^8.1.1" +ipykernel = "^6.29.4" +pyright = "^1.1.359" +pytest-profiling = "^1.7.0" +memray = "^1.12.0" +syrupy = "^4.6.1" +flake8 = "^7.0.0" +pytest-cov = "^5.0.0" +black = "^24.4.2" +pytest-memray = "^1.7.0" + +[tool.poetry.scripts] +neuronpedia-runner = "sae_dashboard.neuronpedia.neuronpedia_runner:main" + +[tool.isort] +profile = "black" +src_paths = ["sae_dashboard", "tests"] + +[tool.pyright] +typeCheckingMode = "strict" +reportMissingTypeStubs = "none" +reportUnknownMemberType = "none" +reportUnknownArgumentType = "none" +reportUnknownVariableType = "none" +reportUntypedFunctionDecorator = "none" +reportUnnecessaryIsInstance = "none" +reportUnnecessaryComparison = "none" +reportConstantRedefinition = "none" +reportUnknownLambdaType = "none" +reportPrivateUsage = "none" +reportPrivateImportUsage = "none" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.semantic_release] +version_variables = ["sae_dashboard/__init__.py:__version__"] +version_toml = ["pyproject.toml:tool.poetry.version"] +build_command = "pip install poetry && poetry build" +branches = { main = { match = "main" } } diff --git a/SAEDashboard/sae_dashboard/__init__.py b/SAEDashboard/sae_dashboard/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9bed69192f3069afc1eb026d20797f1672fa8ebe --- /dev/null +++ b/SAEDashboard/sae_dashboard/__init__.py @@ -0,0 +1,10 @@ +__version__ = "0.7.3" + +# from .data_fetching_fns import * +# from .data_storing_fns import * +# from .html_fns import * +# from .transformer_lens_wrapper import * +# from .utils_fns import * + + +# from autoencoder import AutoEncoder, AutoEncoderConfig diff --git a/SAEDashboard/sae_dashboard/__pycache__/__init__.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bed120a757b0617bd6c779377c5ccfb16509f60c Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/__init__.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/components.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/components.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ddfb0617b6e30b2d67fd9be33908fb800cc8569 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/components.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/components_config.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/components_config.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..da738eac4612cee5d1f71cb340e16a46eb98bf76 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/components_config.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/data_parsing_fns.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/data_parsing_fns.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49b3ec12e194e3a7d8c8735148fb91397ae25a74 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/data_parsing_fns.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/data_writing_fns.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/data_writing_fns.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6f58e2bb9b9ffe4675ccc301c3b19c24e14e1b6 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/data_writing_fns.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/dfa_calculator.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/dfa_calculator.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..809dcc9b8e4476ff167e88c927d76aff9118533e Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/dfa_calculator.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/feature_data.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/feature_data.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f69b32b4d97a6bc0e32aff922fb333efe732eca Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/feature_data.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/feature_data_generator.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/feature_data_generator.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..527fc12ae2ba1caf70cce8b08cee682f6c13f641 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/feature_data_generator.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/html_fns.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/html_fns.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e11ec698cc15d9fceb839cc10a6133d15e18dd8 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/html_fns.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/layout.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/layout.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..56fa2959f2e2c3ba11fcfcc43bcb4e692882526f Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/layout.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/sae_vis_data.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/sae_vis_data.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bc19aa15c010f45015502ae2575f48bfac95f60 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/sae_vis_data.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/sae_vis_runner.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/sae_vis_runner.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1292f86b15062524db6a82e4025f4f2af1e4bbee Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/sae_vis_runner.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/sequence_data_generator.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/sequence_data_generator.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..756f8ae7ebe8d2f910afa435447cba7093028319 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/sequence_data_generator.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/transformer_lens_wrapper.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/transformer_lens_wrapper.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5faa31e7f24b0dc99f2391918bf88fb42d13e2a7 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/transformer_lens_wrapper.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/utils_fns.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/utils_fns.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b36b41a5ecd305038936ac077b9ae513cfeed007 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/utils_fns.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/__pycache__/vector_vis_data.cpython-313.pyc b/SAEDashboard/sae_dashboard/__pycache__/vector_vis_data.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aa695f31d39200634e7886c7dd236caca150172 Binary files /dev/null and b/SAEDashboard/sae_dashboard/__pycache__/vector_vis_data.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/clt_layer_wrapper.py b/SAEDashboard/sae_dashboard/clt_layer_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..241eaadfc36a1976ba745838073e377ebd3b2754 --- /dev/null +++ b/SAEDashboard/sae_dashboard/clt_layer_wrapper.py @@ -0,0 +1,697 @@ +import json + +# Added dataclass, field, asdict +from dataclasses import asdict, dataclass, field +from pathlib import Path + +# import torch.nn as nn # Unused +# from torch.distributed import ProcessGroup # Unused +# from types import SimpleNamespace # Unused import +from typing import ( # Added Optional, Union and List + TYPE_CHECKING, + Any, + List, + Optional, + Union, +) + +import torch +import torch.nn.functional as F +from clt.models.activations import BatchTopK # type: ignore + +if TYPE_CHECKING: + import torch.distributed # Import for ProcessGroup type hint + from clt.models.clt import CrossLayerTranscoder # type: ignore + + +# Placeholder for dist if torch.distributed is not available or initialized +class MockDist: + def is_initialized(self) -> bool: + return False + + def get_world_size( + self, group: "Optional[torch.distributed.ProcessGroup]" = None + ) -> int: + return 1 + + def all_gather_into_tensor( + self, + output_tensor: torch.Tensor, + input_tensor: torch.Tensor, + group: "Optional[torch.distributed.ProcessGroup]" = None, + ) -> None: + # In non-distributed setting, just copy input to output (assuming output is sized correctly) + if output_tensor.shape[0] == 1 * input_tensor.shape[0]: + output_tensor.copy_(input_tensor) + else: + # This case shouldn't happen if called correctly, but handle defensively + raise ValueError( + "Output tensor size doesn't match input tensor size in mock all_gather" + ) + + def all_gather( + self, + tensor_list: List[torch.Tensor], + input_tensor: torch.Tensor, + group: "Optional[torch.distributed.ProcessGroup]" = None, + ) -> None: + """Mock all_gather for a list of tensors.""" + if self.get_world_size(group) == 1: + if len(tensor_list) == 1: + tensor_list[0].copy_(input_tensor) + else: + raise ValueError( + "tensor_list size must be 1 in mock all_gather when world_size is 1" + ) + else: + # This mock doesn't support actual gathering for world_size > 1. + # It's primarily for the dist.all_gather call in _gather_weight, + # which should ideally not proceed if world_size > 1 and dist is MockDist. + # However, _gather_weight checks dist.is_initialized() and dist.get_world_size() first. + raise NotImplementedError( + "MockDist.all_gather not implemented for world_size > 1" + ) + + +try: + import torch.distributed as dist + + if not dist.is_available(): + dist = MockDist() # type: ignore +except ImportError: + dist = MockDist() # type: ignore + + +@dataclass +class CLTMetadata: + """Simple metadata class for CLT wrapper compatibility.""" + + hook_name: str + hook_layer: int + model_name: Optional[str] = None + context_size: Optional[int] = None + prepend_bos: bool = True + hook_head_index: Optional[int] = None + seqpos_slice: Optional[slice] = None + + +@dataclass +class CLTWrapperConfig: + """Configuration dataclass for the CLTLayerWrapper.""" + + # Fields without defaults first + d_sae: int + d_in: int + hook_name: str + hook_layer: int + dtype: str + device: str + # Fields with defaults last + architecture: str = "jumprelu" + hook_head_index: Optional[int] = None + model_name: Optional[str] = None + dataset_path: Optional[str] = None + context_size: Optional[int] = None + prepend_bos: bool = True + normalize_activations: bool = False + dataset_trust_remote_code: bool = False + seqpos_slice: Optional[slice] = None + model_from_pretrained_kwargs: dict[str, Any] = field(default_factory=dict) + metadata: Optional[CLTMetadata] = None + + def to_dict(self) -> dict[str, Any]: + """Convert config to dictionary for compatibility with SAE interface.""" + return asdict(self) + + +class CLTLayerWrapper: + """Wraps a single layer of a CrossLayerTranscoder to mimic the SAE interface. + + This allows reusing existing dashboard components that expect an SAE object. + It specifically provides access to the encoder and the *same-layer* decoder weights + for the specified layer index. + """ + + cfg: CLTWrapperConfig # Add type hint for the config attribute + threshold: Optional[torch.Tensor] = ( + None # For JumpReLU, set by FeatureMaskingContext + ) + + def __init__( + self, + clt: "CrossLayerTranscoder", + layer_idx: int, + clt_model_dir_path: Optional[str] = None, + ): + self.clt = clt + self.layer_idx = layer_idx + self.device = clt.device + self.dtype = clt.dtype + self.hook_z_reshaping_mode = False # Added to satisfy SAE interface + + # Validate layer index + if not (0 <= layer_idx < clt.config.num_layers): + raise ValueError( + f"Invalid layer_idx {layer_idx} for CLT with {clt.config.num_layers} layers." + ) + + # --- Create the Wrapper Config --- + # Try to get model_name from the underlying clt config if it exists + clt_model_name = getattr(clt.config, "model_name", None) + clt_dataset_path = getattr(clt.config, "dataset_path", None) + clt_context_size = getattr( + clt.config, "context_size", 128 + ) # Default to 128 if not set + clt_prepend_bos = getattr(clt.config, "prepend_bos", True) + # Use the activation_fn from CLT config for the wrapper's architecture and encode method + self.activation_fn = getattr(clt.config, "activation_fn", "jumprelu") + clt_model_from_pretrained_kwargs = getattr( + clt.config, "model_from_pretrained_kwargs", {} + ) + + # --- Load CLT-specific normalization stats if applicable --- + self.clt_norm_mean: Optional[torch.Tensor] = None + self.clt_norm_std: Optional[torch.Tensor] = None + wrapper_will_normalize_specifically = False + clt_norm_method = getattr(clt.config, "normalization_method", "none") + + if clt_norm_method in ["auto", "estimated_mean_std", "mean_std"]: + if clt_model_dir_path: + norm_stats_file = Path(clt_model_dir_path) / "norm_stats.json" + if norm_stats_file.exists(): + try: + with open(norm_stats_file, "r") as f: + stats_data = json.load(f) + + layer_stats = stats_data.get(str(self.layer_idx), {}).get( + "inputs", {} + ) + mean_vals = layer_stats.get("mean") + std_vals = layer_stats.get("std") + + if mean_vals is not None and std_vals is not None: + self.clt_norm_mean = torch.tensor( + mean_vals, device=self.device, dtype=torch.float32 + ).unsqueeze(0) + self.clt_norm_std = ( + torch.tensor( + std_vals, device=self.device, dtype=torch.float32 + ) + + 1e-6 + ).unsqueeze(0) + if torch.any(self.clt_norm_std <= 0): + print( + f"Warning: Loaded std for layer {self.layer_idx} contains non-positive values after adding epsilon. Disabling specific normalization." + ) + self.clt_norm_mean = None + self.clt_norm_std = None + else: + wrapper_will_normalize_specifically = True + print( + f"CLTLayerWrapper: Loaded norm_stats.json for layer {self.layer_idx}. Wrapper will apply specific normalization." + ) + else: + print( + f"Warning: norm_stats.json found, but missing 'mean' or 'std' for layer {self.layer_idx} inputs. Wrapper will not normalize specifically." + ) + except Exception as e: + print( + f"Warning: Error loading or parsing norm_stats.json from {norm_stats_file}: {e}. Wrapper will not normalize specifically." + ) + else: + print( + f"Warning: normalization_method is '{clt_norm_method}' but norm_stats.json not found at {norm_stats_file}. Wrapper will not normalize specifically." + ) + else: + print( + f"Warning: normalization_method is '{clt_norm_method}' but clt_model_dir_path not provided. Wrapper cannot load norm_stats.json and will not normalize specifically." + ) + + # Determine normalize_activations flag for ActivationsStore based on CLT config and wrapper's capability + # This flag in self.cfg controls ActivationsStore. ActivationsStore should only normalize if the wrapper *isn't* doing specific normalization AND the CLT expected some form of normalization. + clt_config_indicated_normalization = clt_norm_method != "none" + normalize_activations_for_store = clt_config_indicated_normalization and ( + not wrapper_will_normalize_specifically + ) + if normalize_activations_for_store: + print( + f"CLTLayerWrapper: Setting normalize_activations=True for ActivationsStore (CLT method: {clt_norm_method}, wrapper specific norm: False)." + ) + elif clt_config_indicated_normalization and wrapper_will_normalize_specifically: + print( + f"CLTLayerWrapper: Setting normalize_activations=False for ActivationsStore (CLT method: {clt_norm_method}, wrapper specific norm: True)." + ) + else: # not clt_config_indicated_normalization + print( + f"CLTLayerWrapper: Setting normalize_activations=False for ActivationsStore (CLT method: {clt_norm_method})." + ) + + # Initialize self.threshold if activation is jumprelu + # This must happen AFTER self.activation_fn, self.device, self.dtype, self.layer_idx, and self.clt are set. + if self.activation_fn == "jumprelu": + if ( + hasattr(self.clt, "log_threshold") + and self.clt.log_threshold is not None + ): + if 0 <= self.layer_idx < self.clt.log_threshold.shape[0]: + # The log_threshold from CLT is [num_layers, num_features] + # We need the threshold for the current layer_idx + layer_thresholds = torch.exp( + self.clt.log_threshold[self.layer_idx].clone().detach() + ) + self.threshold = layer_thresholds.to( + device=self.device, dtype=self.dtype + ) + print( + f"CLTLayerWrapper: Initialized self.threshold for layer {self.layer_idx} from clt.log_threshold." + ) + else: + print( + f"Warning: CLTLayerWrapper layer_idx {self.layer_idx} is out of bounds for clt.log_threshold " + f"(shape {self.clt.log_threshold.shape}). self.threshold will be None." + ) + self.threshold = None + else: + print( + f"Warning: Underlying CLT model for layer {self.layer_idx} does not have 'log_threshold' or it's None, " + f"but activation_fn is 'jumprelu'. self.threshold will be None." + ) + self.threshold = None + # else: self.threshold remains its default None, which is fine for other activation functions. + + # Get the hook name using prioritized templates + hook_name_template = getattr(clt.config, "tl_input_template", None) + if hook_name_template: + hook_name = hook_name_template.format(layer_idx) + print(f"Using TL hook name template: {hook_name_template} -> {hook_name}") + else: + hook_name_template = getattr(clt.config, "mlp_input_template", None) + if hook_name_template: + hook_name = hook_name_template.format(layer_idx) + print( + f"Warning: tl_input_template not found. Using mlp_input_template: {hook_name_template} -> {hook_name}" + ) + else: + # Fallback for older configs without any template + hook_name = f"blocks.{layer_idx}.hook_mlp_in" + print( + f"Warning: Neither tl_input_template nor mlp_input_template found. Falling back to hardcoded: {hook_name}" + ) + + self.cfg = CLTWrapperConfig( + d_sae=clt.config.num_features, # This is the d_sae of the *entire* CLT layer, not a sub-batch + d_in=clt.config.d_model, + hook_name=hook_name, + hook_layer=layer_idx, + hook_head_index=None, + dtype=str(self.dtype).replace("torch.", ""), + device=str(self.device), + architecture=self.activation_fn, # Use the determined activation_fn + model_name=clt_model_name, + dataset_path=clt_dataset_path, + context_size=clt_context_size, + prepend_bos=clt_prepend_bos, + normalize_activations=normalize_activations_for_store, + dataset_trust_remote_code=False, + seqpos_slice=None, + model_from_pretrained_kwargs=clt_model_from_pretrained_kwargs, + metadata=CLTMetadata( + hook_name=hook_name, + hook_layer=layer_idx, + model_name=clt_model_name, + context_size=clt_context_size, + prepend_bos=clt_prepend_bos, + hook_head_index=None, + seqpos_slice=None, + ), + ) + # --- End Config Creation --- + + # Extract and potentially gather weights + # Ensure weights are detached and cloned to avoid modifying the original CLT + # Original W_enc from CLT encoder module is [d_sae_layer, d_model] + # We transpose to match sae-lens W_enc convention: [d_model, d_sae_layer] + self.W_enc = ( + self._gather_encoder_weight(clt.encoder_module.encoders[layer_idx].weight) # type: ignore + .t() + .contiguous() + ) + # For W_dec, use the decoder from the same layer to itself + decoder_key = f"{layer_idx}->{layer_idx}" + if decoder_key not in clt.decoder_module.decoders: # type: ignore + raise KeyError(f"Decoder key {decoder_key} not found in CLT decoders.") + # Original W_dec from CLT decoder module is [d_model, d_sae_layer] + # We transpose to match sae-lens W_dec convention: [d_sae_layer, d_model] + self.W_dec = ( + self._gather_decoder_weight(clt.decoder_module.decoders[decoder_key].weight) # type: ignore + .t() + .contiguous() + ) + + self.b_enc = self._gather_encoder_bias( + clt.encoder_module.encoders[layer_idx].bias_param # type: ignore + ) + # For b_dec, use the bias from the same-layer decoder + self.b_dec = self._gather_decoder_bias( + clt.decoder_module.decoders[decoder_key].bias_param # type: ignore + ) + + # Cache for folded weights if needed + self._W_dec_folded = False + # Thresholds for JumpReLU will be handled by FeatureMaskingContext if architecture is 'jumprelu' + # by setting self.threshold directly on the wrapper instance. + + # --- Façade methods mimicking SAE --- # + def encode(self, x: torch.Tensor) -> torch.Tensor: + """ + Encodes input using the CLTLayerWrapper's own W_enc and b_enc, + respecting masks applied by FeatureMaskingContext. + Applies the activation function specified in self.activation_fn. + """ + # x is [..., d_model] + # self.W_enc after masking (by FeatureMaskingContext) should be [d_model, N_FEATURES_IN_BATCH] + # self.b_enc after masking (by FeatureMaskingContext) should be [N_FEATURES_IN_BATCH] + + original_shape = x.shape + if x.ndim > 2: # Ensure x is [N, d_model] for F.linear + # self.cfg.d_in should be d_model + x_reshaped = x.reshape(-1, self.cfg.d_in) + else: + x_reshaped = x + + x_to_process = x_reshaped + # Apply CLT-specific normalization if stats were loaded + if self.clt_norm_mean is not None and self.clt_norm_std is not None: + # Ensure calculation is done in float32 for precision, then cast back + x_float32 = x_to_process.to(torch.float32) + normalized_x = (x_float32 - self.clt_norm_mean) / self.clt_norm_std + x_to_process = normalized_x.to(x.dtype) + + # F.linear(input, weight, bias) expects weight to be [out_features, in_features] + # self.W_enc is [d_model, N_FEATURES_IN_BATCH], so its transpose is [N_FEATURES_IN_BATCH, d_model] + hidden_pre = F.linear( + x_to_process, self.W_enc.T, self.b_enc + ) # Output: [N, N_FEATURES_IN_BATCH] + + # Apply activation function + if self.activation_fn == "relu": + encoded_acts = torch.relu(hidden_pre) + elif self.activation_fn == "jumprelu": + if not hasattr(self, "threshold") or self.threshold is None: + raise AttributeError( + "JumpReLU activation selected, but 'self.threshold' is not available on CLTLayerWrapper. " + "FeatureMaskingContext should set this if architecture is 'jumprelu'." + ) + encoded_acts = torch.where( + hidden_pre > self.threshold, hidden_pre, torch.zeros_like(hidden_pre) + ) + elif self.activation_fn == "batchtopk": + k_val: float + batchtopk_k_abs = getattr(self.clt.config, "batchtopk_k", None) + batchtopk_k_frac = getattr(self.clt.config, "batchtopk_frac", None) + + if batchtopk_k_abs is not None: + # This k is global. For the current batch of features, we use a per-layer approximation. + k_val = float(batchtopk_k_abs) / self.clt.config.num_layers + k_val = max( + 1.0, k_val + ) # Ensure at least 1 feature is kept if k/num_layers is small + elif batchtopk_k_frac is not None: + k_val = float( + batchtopk_k_frac + ) # Fraction applies directly to current N_FEATURES_IN_BATCH + else: + # Fallback: if neither k nor frac is specified, keep all features currently being processed. + # This matches the fallback in CrossLayerTranscoder.encode for its per-layer batchtopk. + print( + f"Warning: CLTLayerWrapper using batchtopk, but neither 'batchtopk_k' nor 'batchtopk_frac' defined in CLTConfig. Defaulting to keeping all {hidden_pre.size(-1)} features in the current batch." + ) + k_val = float(hidden_pre.size(-1)) + + straight_through_flag = getattr( + self.clt.config, "batchtopk_straight_through", False + ) + encoded_acts = BatchTopK.apply(hidden_pre, k_val, straight_through_flag) + else: + raise ValueError( + f"Unsupported activation function in CLTLayerWrapper: {self.activation_fn}" + ) + + if x.ndim > 2: + # Reshape back to original batch/sequence dimensions, with the last dim being N_FEATURES_IN_BATCH + encoded_acts = encoded_acts.reshape(*original_shape[:-1], -1) # type: ignore + + return encoded_acts # type: ignore + + def turn_off_forward_pass_hook_z_reshaping(self): + """Stub method to satisfy SAE interface. CLTWrapper does not use this.""" + # This mode is not applicable to CLTLayerWrapper, so this method is a no-op. + pass + + # Note: CLTLayerWrapper does not have a separate `decode` method façade + # because the dashboard primarily uses W_dec directly for analysis (e.g., logits). + # The CLT's actual decode logic (summing across layers) isn't needed here. + + def fold_W_dec_norm(self): + """Folds the L2 norm of W_dec into W_enc and b_enc. + + Mirrors the logic in sae_lens.SAE.fold_W_dec_norm. + Important for ensuring that W_enc activations directly correspond + to the output norm when using the wrapped W_dec. + """ + if self._W_dec_folded: + print("Warning: W_dec norm already folded.") + return + + if self.W_dec is None or self.W_enc is None: + print("Warning: Cannot fold W_dec norm, weights not available.") + return + + # Detach W_dec before calculating norm to avoid gradient issues + # W_dec is [N_FEATURES_IN_BATCH, d_model] (after masking context and init) + # Norm should be taken over d_model dim (dim=1) + + # Use W_dec with its original dtype for norm calculation + w_dec_for_norm = self.W_dec.detach() + w_dec_norms = torch.norm( + w_dec_for_norm, dim=1, keepdim=True + ) # [N_FEATURES_IN_BATCH, 1] + + w_dec_norms = torch.where( + w_dec_norms == 0, torch.ones_like(w_dec_norms), w_dec_norms + ) + + # self.W_enc is [d_model, N_FEATURES_IN_BATCH] + # We want to scale each column of W_enc (each feature's encoder vector) + # by the corresponding feature's w_dec_norm. + # Ensure dtypes match for multiplication, then cast W_enc back if necessary + original_w_enc_dtype = self.W_enc.dtype + self.W_enc.data = (self.W_enc.data.to(w_dec_norms.dtype) * w_dec_norms.t()).to( + original_w_enc_dtype + ) + + if self.b_enc is not None: + # self.b_enc is [N_FEATURES_IN_BATCH] + # w_dec_norms.squeeze() is [N_FEATURES_IN_BATCH] + original_b_enc_dtype = self.b_enc.dtype + self.b_enc.data = ( + self.b_enc.data.to(w_dec_norms.dtype) * w_dec_norms.squeeze() + ).to(original_b_enc_dtype) + + # Store the norms for potential unfolding or reference + self._w_dec_norms_backup = w_dec_norms + self._W_dec_folded = True + print("Folded W_dec norm into W_enc and b_enc.") + + def unfold_W_dec_norm(self): + """Unfolds the L2 norm of W_dec from W_enc and b_enc.""" + if not self._W_dec_folded or not hasattr(self, "_w_dec_norms_backup"): + print("Warning: W_dec norm not folded or backup norms not found.") + return + + if self.W_enc is None: + print("Warning: Cannot unfold W_dec norm, W_enc not available.") + return + + # Retrieve the norms used for folding + w_dec_norms = self._w_dec_norms_backup + # Avoid division by zero (should have been handled in fold, but double check) + w_dec_norms = torch.where( + w_dec_norms == 0, torch.ones_like(w_dec_norms), w_dec_norms + ) + + original_w_enc_dtype = self.W_enc.dtype + self.W_enc.data = (self.W_enc.data.to(w_dec_norms.dtype) / w_dec_norms.t()).to( + original_w_enc_dtype + ) + + if self.b_enc is not None: + original_b_enc_dtype = self.b_enc.dtype + self.b_enc.data = ( + self.b_enc.data.to(w_dec_norms.dtype) / w_dec_norms.squeeze() + ).to(original_b_enc_dtype) + + del self._w_dec_norms_backup + self._W_dec_folded = False + print("Unfolded W_dec norm from W_enc and b_enc.") + + def to(self, device: Union[str, torch.device]): + """Moves the wrapper and underlying components to the specified device.""" + target_device = torch.device(device) + + # Move the underlying CLT model + try: + self.clt.to(target_device) + except Exception as e: + print( + f"Warning: Failed to move underlying CLT model to {target_device}: {e}" + ) + # Continue trying to move wrapper components + + # Move the wrapper's stored tensors + if self.W_enc is not None: + self.W_enc = self.W_enc.to(target_device) + if self.W_dec is not None: + self.W_dec = self.W_dec.to(target_device) + if self.b_enc is not None: + self.b_enc = self.b_enc.to(target_device) + if self.b_dec is not None: + self.b_dec = self.b_dec.to(target_device) + if ( + hasattr(self, "_w_dec_norms_backup") + and self._w_dec_norms_backup is not None + ): + self._w_dec_norms_backup = self._w_dec_norms_backup.to(target_device) + + # Update device attributes + self.device = target_device + self.cfg.device = str(target_device) + + # Update activation_fn related thresholds if they exist (e.g. for JumpReLU) + if hasattr(self, "threshold") and self.threshold is not None: + self.threshold = self.threshold.to(target_device) + + if self.clt_norm_mean is not None: # Added to move norm stats + self.clt_norm_mean = self.clt_norm_mean.to(target_device) + if self.clt_norm_std is not None: # Added to move norm stats + self.clt_norm_std = self.clt_norm_std.to(target_device) + + print(f"Moved CLTLayerWrapper to {target_device}") + return self + + # --- Helper methods for Tensor Parallelism --- # + + def _gather_weight( + self, + weight_shard: torch.Tensor, + gather_dim: int = 0, + target_full_dim_size: Optional[int] = None, + ) -> torch.Tensor: + """Gather a weight tensor shard across TP ranks.""" + if not dist.is_initialized() or dist.get_world_size() == 1: + return weight_shard.clone().detach() + + world_size = dist.get_world_size() + # Create a list to hold all gathered tensors + tensor_list = [torch.empty_like(weight_shard) for _ in range(world_size)] + dist.all_gather(tensor_list, weight_shard) + + # Concatenate along the specified dimension + full_weight = torch.cat(tensor_list, dim=gather_dim) + + # Trim padding if necessary + if target_full_dim_size is not None: + if gather_dim == 0: + if full_weight.shape[0] > target_full_dim_size: + full_weight = full_weight[:target_full_dim_size, :] + elif gather_dim == 1: + if full_weight.shape[1] > target_full_dim_size: + full_weight = full_weight[:, :target_full_dim_size] + # Add other gather_dim cases if needed + + return full_weight.detach() + + def _gather_encoder_weight(self, weight_shard: torch.Tensor) -> torch.Tensor: + """Gather ColumnParallelLinear weight (sharded along output/feature dim).""" + # ColumnParallel weight is [d_sae_local, d_model] + # We need to gather along dim 0 to get [d_sae_full_for_layer, d_model] + return self._gather_weight( + weight_shard, + gather_dim=0, + target_full_dim_size=self.clt.config.num_features, + ) + + def _gather_decoder_weight(self, weight_shard: torch.Tensor) -> torch.Tensor: + """Gather RowParallelLinear weight (sharded along input/feature dim).""" + # RowParallel weight is [d_model, d_sae_local] + # We need to gather along dim 1 to get [d_model, d_sae_full_for_layer] + return self._gather_weight( + weight_shard, + gather_dim=1, + target_full_dim_size=self.clt.config.num_features, + ) + + def _gather_bias( + self, + bias_shard: Optional[torch.Tensor], + gather_dim: int = 0, + target_full_dim_size: Optional[int] = None, + ) -> Optional[torch.Tensor]: + """Gather a bias tensor shard across TP ranks.""" + if bias_shard is None: + return None + # Biases are typically sharded along the same dimension as the weight's corresponding output dim + return self._gather_weight( + bias_shard, gather_dim=gather_dim, target_full_dim_size=target_full_dim_size + ) + + def _gather_encoder_bias( + self, bias_shard_candidate: Optional[torch.Tensor] + ) -> Optional[torch.Tensor]: + """Gather ColumnParallelLinear bias (sharded along output/feature dim). + + Defensively checks if the provided candidate is actually a Tensor. + """ + # Check if the provided object is a Tensor + if isinstance(bias_shard_candidate, torch.Tensor): + # Encoder bias shape [d_sae_local], gather along dim 0 + return self._gather_bias( + bias_shard_candidate, + gather_dim=0, + target_full_dim_size=self.clt.config.num_features, + ) + else: + # If it's None, bool, or anything else, treat as no bias + return None + + def _gather_decoder_bias( + self, bias_shard_candidate: Optional[torch.Tensor] + ) -> Optional[torch.Tensor]: + """Gather RowParallelLinear bias (NOT sharded, but might need broadcast/check). + + Defensively checks if the provided candidate is actually a Tensor. + """ + # Check if the provided object is a Tensor + if isinstance(bias_shard_candidate, torch.Tensor): + # RowParallelLinear bias is typically not sharded (added after all-reduce) + # However, let's check world size and return a clone if TP=1, or verify replication if TP>1 + if not dist.is_initialized() or dist.get_world_size() == 1: + return bias_shard_candidate.clone().detach() + + # In TP > 1, the bias should be identical across ranks. Verify this. + world_size = dist.get_world_size() + tensor_list = [ + torch.empty_like(bias_shard_candidate) for _ in range(world_size) + ] + dist.all_gather(tensor_list, bias_shard_candidate) + # Check if all gathered biases are the same + for i in range(1, world_size): + if not torch.equal(tensor_list[0], tensor_list[i]): + raise RuntimeError( + "RowParallelLinear bias shards are not identical across TP ranks, which is unexpected." + ) + # Return the bias from rank 0 (or any rank, as they are identical) + return tensor_list[0].clone().detach() + else: + # If it's None, bool, or anything else, treat as no bias + return None diff --git a/SAEDashboard/sae_dashboard/components.py b/SAEDashboard/sae_dashboard/components.py new file mode 100644 index 0000000000000000000000000000000000000000..7302de66c81f279147f379d692138e9dee32348d --- /dev/null +++ b/SAEDashboard/sae_dashboard/components.py @@ -0,0 +1,774 @@ +from copy import deepcopy +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Callable, List + +import numpy as np +from dataclasses_json import dataclass_json + +from sae_dashboard.components_config import ( + ActsHistogramConfig, + FeatureTablesConfig, + LogitsHistogramConfig, + LogitsTableConfig, + PromptConfig, + SequencesConfig, +) +from sae_dashboard.html_fns import HTML, bgColorMap, uColorMap +from sae_dashboard.utils_fns import ( + HistogramData, + max_or_1, + to_str_tokens, + unprocess_str_tok, +) + +PRECISION = 4 + + +@dataclass +class DecoderWeightsDistribution: + n_heads: int + allocation_by_head: List[float] + + +@dataclass_json +@dataclass +class FeatureTablesData: + """ + This contains all the data necessary to make the left-hand tables in prompt-centric visualization. See diagram + in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + Inputs: + neuron_alignment... + The data for the neuron alignment table (each of its 3 columns). In other words, the data containing which + neurons in the transformer the encoder feature is most aligned with. + + correlated_neurons... + The data for the correlated neurons table (each of its 3 columns). In other words, the data containing which + neurons in the transformer are most correlated with the encoder feature. + + correlated_features... + The data for the correlated features table (each of its 3 columns). In other words, the data containing + which features in this encoder are most correlated with each other. + + correlated_b_features... + The data for the correlated features table (each of its 3 columns). In other words, the data containing + which features in encoder-B are most correlated with those in the original encoder. Note, this one might be + absent if we're not using a B-encoder. + """ + + neuron_alignment_indices: list[int] = field(default_factory=list) + neuron_alignment_values: list[float] = field(default_factory=list) + neuron_alignment_l1: list[float] = field(default_factory=list) + correlated_neurons_indices: list[int] = field(default_factory=list) + correlated_neurons_pearson: list[float] = field(default_factory=list) + correlated_neurons_cossim: list[float] = field(default_factory=list) + correlated_features_indices: list[int] = field(default_factory=list) + correlated_features_pearson: list[float] = field(default_factory=list) + correlated_features_cossim: list[float] = field(default_factory=list) + correlated_b_features_indices: list[int] = field(default_factory=list) + correlated_b_features_pearson: list[float] = field(default_factory=list) + correlated_b_features_cossim: list[float] = field(default_factory=list) + + def _get_html_data( + self, + cfg: FeatureTablesConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + ) -> HTML: + """ + Returns the HTML for the left-hand tables, wrapped in a 'grid-column' div. + + Note, we only ever use this obj in the context of the left-hand column of the feature-centric vis, and it's + always the same width & height, which is why there's no customization available for this function. + """ + # Read HTML from file, and replace placeholders with real ID values + html_str = ( + Path(__file__).parent / "html" / "feature_tables_template.html" + ).read_text() + html_str = html_str.replace("FEATURE_TABLES_ID", f"feature-tables-{id_suffix}") + + # Create dictionary storing the data + data: dict[str, list[dict[str, str | float]]] = {} + + # Store the neuron alignment data, if it exists + if len(self.neuron_alignment_indices) > 0: + assert len(self.neuron_alignment_indices) >= cfg.n_rows, "Not enough rows!" + data["neuronAlignment"] = [ + { + "index": index, + "value": f"{value:+.3f}", + "percentageL1": f"{percent_l1:.1%}", + } + for index, value, percent_l1 in zip( + self.neuron_alignment_indices, + self.neuron_alignment_values, + self.neuron_alignment_l1, + ) + ] + + # Store the other 3, if they exist (they're all in the same format, so we can do it in a for loop) + for name, js_name in zip( + ["correlated_neurons", "correlated_features", "correlated_b_features"], + ["correlatedNeurons", "correlatedFeatures", "correlatedFeaturesB"], + ): + if len(getattr(self, f"{name}_indices")) > 0: + # assert len(getattr(self, f"{name}_indices")) >= cfg.n_rows, "Not enough rows!" + data[js_name] = [ + { + "index": index, + "value": f"{value:+.3f}", + "percentageL1": f"{percent_L1:+.3f}", + } + for index, value, percent_L1 in zip( + getattr(self, f"{name}_indices")[: cfg.n_rows], + getattr(self, f"{name}_pearson")[: cfg.n_rows], + getattr(self, f"{name}_cossim")[: cfg.n_rows], + ) + ] + + return HTML( + html_data={column: html_str}, + js_data={"featureTablesData": {id_suffix: data}}, + ) + + +@dataclass_json +@dataclass +class ActsHistogramData(HistogramData): + def _get_html_data( + self, + cfg: ActsHistogramConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + ) -> HTML: + """ + Converts data -> HTML object, for the feature activations histogram (i.e. the histogram over all sampled tokens, + showing the distribution of activations for this feature). + """ + # We can't post-hoc change the number of bins, so check this wasn't changed in the config + # assert cfg.n_bins == len(self.bar_heights),\ + # "Can't post-hoc change `n_bins` in histogram config - you need to regenerate data." + + # Read HTML from file, and replace placeholders with real ID values + html_str = ( + Path(__file__).parent / "html" / "acts_histogram_template.html" + ).read_text() + html_str = html_str.replace("HISTOGRAM_ACTS_ID", f"histogram-acts-{id_suffix}") + + # Process colors for frequency histogram; it's darker at higher values + bar_values_normed = [ + (0.4 * max(self.bar_values) + 0.6 * v) + / max(max(self.bar_values), 1e-6) # avoid divide by zero + for v in self.bar_values + ] + bar_colors = [bgColorMap(v) for v in bar_values_normed] + + # Next we create the data dict + data: dict[str, Any] = { + "y": self.bar_heights, + "x": self.bar_values, + "ticks": self.tick_vals, + "colors": bar_colors, + } + if self.title is not None: + data["title"] = self.title + + return HTML( + html_data={column: html_str}, + js_data={"actsHistogramData": {id_suffix: data}}, + ) + + +@dataclass_json +@dataclass +class LogitsHistogramData(HistogramData): + def _get_html_data( + self, + cfg: LogitsHistogramConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + ) -> HTML: + """ + Converts data -> HTML object, for the logits histogram (i.e. the histogram over all tokens in the vocab, showing + the distribution of direct logit effect on that token). + """ + # We can't post-hoc change the number of bins, so check this wasn't changed in the config + # assert cfg.n_bins == len(self.bar_heights),\ + # "Can't post-hoc change `n_bins` in histogram config - you need to regenerate data." + + # Read HTML from file, and replace placeholders with real ID values + html_str = ( + Path(__file__).parent / "html" / "logits_histogram_template.html" + ).read_text() + html_str = html_str.replace( + "HISTOGRAM_LOGITS_ID", f"histogram-logits-{id_suffix}" + ) + + data: dict[str, Any] = { + "y": self.bar_heights, + "x": self.bar_values, + "ticks": self.tick_vals, + } + if self.title is not None: + data["title"] = self.title + + return HTML( + html_data={column: html_str}, + js_data={"logitsHistogramData": {id_suffix: data}}, + ) + + +@dataclass_json +@dataclass +class LogitsTableData: + bottom_token_ids: list[int] = field(default_factory=list) + bottom_logits: list[float] = field(default_factory=list) + top_token_ids: list[int] = field(default_factory=list) + top_logits: list[float] = field(default_factory=list) + + def _get_html_data( + self, + cfg: LogitsTableConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + ) -> HTML: + """ + Converts data -> HTML object, for the logits table (i.e. the top and bottom affected tokens by this feature). + """ + # Crop the lists to `cfg.n_rows` (first checking the config doesn't ask for more rows than we have) + assert cfg.n_rows <= len(self.bottom_logits) + bottom_token_ids = self.bottom_token_ids[: cfg.n_rows] + bottom_logits = self.bottom_logits[: cfg.n_rows] + top_token_ids = self.top_token_ids[: cfg.n_rows] + top_logits = self.top_logits[: cfg.n_rows] + + # Get the negative and positive background values (darkest when equals max abs) + max_value = max( + max(top_logits[: cfg.n_rows]), -min(bottom_logits[: cfg.n_rows]) + ) + neg_bg_values = np.absolute(bottom_logits[: cfg.n_rows]) / max_value + pos_bg_values = np.absolute(top_logits[: cfg.n_rows]) / max_value + + # Get the string tokens, using the decode function + neg_str = to_str_tokens(decode_fn, bottom_token_ids[: cfg.n_rows]) + pos_str = to_str_tokens(decode_fn, top_token_ids[: cfg.n_rows]) + + # Read HTML from file, and replace placeholders with real ID values + html_str = ( + Path(__file__).parent / "html" / "logits_table_template.html" + ).read_text() + html_str = html_str.replace("LOGITS_TABLE_ID", f"logits-table-{id_suffix}") + + # Create object for storing JS data + data: dict[str, list[dict[str, str | float]]] = { + "negLogits": [], + "posLogits": [], + } + + # Get data for the tables of pos/neg logits + for i in range(len(neg_str)): + data["negLogits"].append( + { + "symbol": unprocess_str_tok(neg_str[i]), + "value": round(bottom_logits[i], 2), + "color": f"rgba(255,{int(255*(1-neg_bg_values[i]))},{int(255*(1-neg_bg_values[i]))},0.5)", + } + ) + data["posLogits"].append( + { + "symbol": unprocess_str_tok(pos_str[i]), + "value": round(top_logits[i], 2), + "color": f"rgba({int(255*(1-pos_bg_values[i]))},{int(255*(1-pos_bg_values[i]))},255,0.5)", + } + ) + + return HTML( + html_data={column: html_str}, + js_data={"logitsTableData": {id_suffix: data}}, + ) + + +@dataclass_json +@dataclass +class SequenceData: + """ + This contains all the data necessary to make a sequence of tokens in the vis. See diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + Always-visible data: + token_ids: List of token IDs in the sequence + feat_acts: Sizes of activations on this sequence + loss_contribution: Effect on loss of this feature, for this particular token (neg = helpful) + + Data which is visible on hover: + token_logits: The logits of the particular token in that sequence (used for line on logits histogram) + top_token_ids: List of the top 5 logit-boosted tokens by this feature + top_logits: List of the corresponding 5 changes in logits for those tokens + bottom_token_ids: List of the bottom 5 logit-boosted tokens by this feature + bottom_logits: List of the corresponding 5 changes in logits for those tokens + """ + + original_index: int = 0 + qualifying_token_index: int = 0 + token_ids: list[int] = field(default_factory=list) + feat_acts: list[float] = field(default_factory=list) + loss_contribution: list[float] = field(default_factory=list) + + token_logits: list[float] = field(default_factory=list) + top_token_ids: list[list[int]] = field(default_factory=list) + top_logits: list[list[float]] = field(default_factory=list) + bottom_token_ids: list[list[int]] = field(default_factory=list) + bottom_logits: list[list[float]] = field(default_factory=list) + + def __post_init__(self) -> None: + """ + Filters the logits & token IDs by removing any elements which are zero (this saves space in the eventual + JavaScript). + """ + self.seq_len = len(self.token_ids) + self.top_logits, self.top_token_ids = self._filter( + self.top_logits, self.top_token_ids + ) + self.bottom_logits, self.bottom_token_ids = self._filter( + self.bottom_logits, self.bottom_token_ids + ) + + def _filter( + self, float_list: list[list[float]], int_list: list[list[int]] + ) -> tuple[list[list[float]], list[list[int]]]: + """ + Filters the list of floats and ints, by removing any elements which are zero. Note - the absolute values of the + floats are monotonic non-increasing, so we can assume that all the elements we keep will be the first elements + of their respective lists. Also reduces precisions of feature activations & logits. + """ + # Next, filter out zero-elements and reduce precision + float_list = [ + [round(f, PRECISION) for f in floats if abs(f) > 1e-6] + for floats in float_list + ] + int_list = [ints[: len(floats)] for ints, floats in zip(int_list, float_list)] + return float_list, int_list + + def _get_html_data( + self, + cfg: PromptConfig | SequencesConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + ) -> HTML: + """ + Args: + + Returns: + js_data: list[dict[str, Any]] + The data for this sequence, in the form of a list of dicts for each token (where the dict stores things + like token, feature activations, etc). + """ + assert isinstance( + cfg, (PromptConfig, SequencesConfig) + ), f"Invalid config type: {type(cfg)}" + seq_group_id = component_specific_kwargs.get("seq_group_id", None) + max_feat_act = component_specific_kwargs.get("max_feat_act", None) + max_loss_contribution = component_specific_kwargs.get( + "max_loss_contribution", None + ) + bold_idx = component_specific_kwargs.get("bold_idx", None) + permanent_line = component_specific_kwargs.get("permanent_line", False) + first_in_group = component_specific_kwargs.get("first_in_group", True) + title = component_specific_kwargs.get("title", None) + hover_above = component_specific_kwargs.get("hover_above", False) + + # If we didn't supply a sequence group ID, then we assume this sequence is on its own, and give it a unique ID + if seq_group_id is None: + seq_group_id = f"prompt-{column:03d}" + + # If we didn't specify bold_idx, then set it to be the midpoint + if bold_idx is None: + bold_idx = self.seq_len // 2 + + # If we only have data for the bold token, we pad out everything with zeros or empty lists + only_bold = isinstance(cfg, SequencesConfig) and not (cfg.compute_buffer) + if only_bold: + assert bold_idx != "max", "Don't know how to deal with this case yet." + feat_acts = [ + self.feat_acts[0] if (i == bold_idx) else 0.0 + for i in range(self.seq_len) + ] + loss_contribution = [ + self.loss_contribution[0] if (i == bold_idx) + 1 else 0.0 + for i in range(self.seq_len) + ] + pos_ids = [ + self.top_token_ids[0] if (i == bold_idx) + 1 else [] + for i in range(self.seq_len) + ] + neg_ids = [ + self.bottom_token_ids[0] if (i == bold_idx) + 1 else [] + for i in range(self.seq_len) + ] + pos_val = [ + self.top_logits[0] if (i == bold_idx) + 1 else [] + for i in range(self.seq_len) + ] + neg_val = [ + self.bottom_logits[0] if (i == bold_idx) + 1 else [] + for i in range(self.seq_len) + ] + else: + feat_acts = deepcopy(self.feat_acts) + loss_contribution = deepcopy(self.loss_contribution) + pos_ids = deepcopy(self.top_token_ids) + neg_ids = deepcopy(self.bottom_token_ids) + pos_val = deepcopy(self.top_logits) + neg_val = deepcopy(self.bottom_logits) + + # EXPERIMENT: let's just hardcode everything except feature acts to be 0's for now. + loss_contribution = [0.0 for _ in range(self.seq_len)] + pos_ids = [[] for _ in range(self.seq_len)] + neg_ids = [[] for _ in range(self.seq_len)] + pos_val = [[] for _ in range(self.seq_len)] + neg_val = [[] for _ in range(self.seq_len)] + ### END EXPERIMENT + + # Get values for converting into colors later + bg_denom = max_feat_act or max_or_1(self.feat_acts) + u_denom = max_loss_contribution or max_or_1(self.loss_contribution, abs=True) + bg_values = (np.maximum(feat_acts, 0.0) / max(1e-4, bg_denom)).tolist() + u_values = (np.array(loss_contribution) / max(1e-4, u_denom)).tolist() + + # If we sent in a prompt rather than this being sliced from a longer sequence, then the pos_ids etc will be shorter + # than the token list by 1, so we need to pad it at the first token + if isinstance(cfg, PromptConfig): + assert ( + len(pos_ids) + == len(neg_ids) + == len(pos_val) + == len(neg_val) + == len(self.token_ids) - 1 + ), "If this is a single prompt, these lists must be the same length as token_ids or 1 less" + pos_ids = [[]] + pos_ids + neg_ids = [[]] + neg_ids + pos_val = [[]] + pos_val + neg_val = [[]] + neg_val + + assert ( + len(pos_ids) + == len(neg_ids) + == len(pos_val) + == len(neg_val) + == len(self.token_ids) + ), "If this is part of a sequence group etc are given, they must be the same length as token_ids" + + # Process the tokens to get str toks + toks = to_str_tokens(decode_fn, self.token_ids) + pos_toks = [to_str_tokens(decode_fn, pos) for pos in pos_ids] + neg_toks = [to_str_tokens(decode_fn, neg) for neg in neg_ids] + + # Define the JavaScript object which will be used to populate the HTML string + js_data_list = [] + + for i in range(len(self.token_ids)): + # We might store a bunch of different case-specific data in the JavaScript object for each token. This is + # done in the form of a disjoint union over different dictionaries (which can each be empty or not), this + # minimizes the size of the overall JavaScript object. See function in `tokens_script.js` for more. + kwargs_bold: dict[str, bool] = {} + kwargs_hide: dict[str, bool] = {} + kwargs_this_token_active: dict[str, Any] = {} + kwargs_prev_token_active: dict[str, Any] = {} + kwargs_hover_above: dict[str, bool] = {} + + # Get args if this is the bolded token (we make it bold, and maybe add permanent line to histograms) + if bold_idx is not None: + kwargs_bold["isBold"] = (bold_idx == i) or ( + bold_idx == "max" and i == np.argmax(feat_acts).item() + ) + if kwargs_bold["isBold"] and permanent_line: + kwargs_bold["permanentLine"] = True + + # If we only have data for the bold token, we hide all other tokens' hoverdata (and skip other kwargs) + if ( + only_bold + and isinstance(bold_idx, int) + and (i not in {bold_idx, bold_idx + 1}) + ): + kwargs_hide["hide"] = True + + else: + # Get args if we're making the tooltip hover above token (default is below) + if hover_above: + kwargs_hover_above["hoverAbove"] = True + + # If feature active on this token, get background color and feature act (for hist line) + if abs(feat_acts[i]) > 1e-8: + kwargs_this_token_active = dict( + featAct=round(feat_acts[i], PRECISION), + bgColor=bgColorMap(bg_values[i]), + ) + + # If prev token active, get the top/bottom logits table, underline color, and loss effect (for hist line) + pos_toks_i, neg_toks_i, pos_val_i, neg_val_i = ( + pos_toks[i], + neg_toks[i], + pos_val[i], + neg_val[i], + ) + if len(pos_toks_i) + len(neg_toks_i) > 0: + # Create dictionary + kwargs_prev_token_active = dict( + posToks=pos_toks_i, + negToks=neg_toks_i, + posVal=pos_val_i, + negVal=neg_val_i, + lossEffect=round(loss_contribution[i], PRECISION), + uColor=uColorMap(u_values[i]), + ) + + js_data_list.append( + dict( + tok=unprocess_str_tok(toks[i]), + tokID=self.token_ids[i], + tokenLogit=round(self.token_logits[i], PRECISION), + **kwargs_bold, + **kwargs_this_token_active, + **kwargs_prev_token_active, + **kwargs_hover_above, + ) + ) + + # Create HTML string (empty by default since sequences are added by JavaScript) and JS data + html_str = "" + js_seq_group_data: dict[str, Any] = {"data": [js_data_list]} + + # Add group-specific stuff if this is the first sequence in the group + if first_in_group: + # Read HTML from file, replace placeholders with real ID values + html_str = ( + Path(__file__).parent / "html" / "sequences_group_template.html" + ).read_text() + html_str = html_str.replace("SEQUENCE_GROUP_ID", seq_group_id) + + # Get title of sequence group, and the idSuffix to match up with a histogram + js_seq_group_data["idSuffix"] = id_suffix + if title is not None: + js_seq_group_data["title"] = title + + return HTML( + html_data={column: html_str}, + js_data={"tokenData": {seq_group_id: js_seq_group_data}}, + ) + + +@dataclass_json +@dataclass +class SequenceGroupData: + """ + This contains all the data necessary to make a single group of sequences (e.g. a quantile in prompt-centric + visualization). See diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + Inputs: + title: The title that this sequence group will have, if any. This is used in `_get_html_data`. The titles + will actually be in the HTML strings, not in the JavaScript data. + seq_data: The data for the sequences in this group. + """ + + title: str = "" + seq_data: list[SequenceData] = field(default_factory=list) + + def __len__(self) -> int: + return len(self.seq_data) + + @property + def max_feat_act(self) -> float: + """Returns maximum value of feature activation over all sequences in this group.""" + return max_or_1([act for seq in self.seq_data for act in seq.feat_acts]) + + @property + def max_loss_contribution(self) -> float: + """Returns maximum value of loss contribution over all sequences in this group.""" + return max_or_1( + [loss for seq in self.seq_data for loss in seq.loss_contribution], abs=True + ) + + def _get_html_data( + self, + cfg: SequencesConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + # These default values should be correct when we only have one sequence group, because when we call this from + # a SequenceMultiGroupData we'll override them) + ) -> HTML: + """ + This creates a single group of sequences, i.e. title plus some number of vertically stacked sequences. + + Note, `column` is treated specially here, because the col might overflow (hence colulmn could be a tuple). + + Args (from component-specific kwargs): + seq_group_id: The id of the sequence group div. This will usually be passed as e.g. "seq-group-001". + group_size: Max size of sequences in the group (i.e. we truncate after this many, if argument supplied). + max_feat_act: If supplied, then we use this as the most extreme value (for coloring by feature act). + + Returns: + html_obj: Object containing the HTML and JavaScript data for this seq group. + """ + seq_group_id = component_specific_kwargs.get("seq_group_id", None) + group_size = component_specific_kwargs.get("group_size", None) + max_feat_act = component_specific_kwargs.get("max_feat_act", self.max_feat_act) + max_loss_contribution = component_specific_kwargs.get( + "max_loss_contribution", self.max_loss_contribution + ) + + # Get the data that will go into the div (list of list of dicts, i.e. containing all data for seqs in group). We + # start with the title. + html_obj = HTML() + + # If seq_group_id is not supplied, then we assume this is the only sequence in the column, and we name the group + # after the column + if seq_group_id is None: + seq_group_id = f"seq-group-{column:03d}" + + # Accumulate the HTML data for each sequence in this group + for i, seq in enumerate(self.seq_data[:group_size]): + html_obj += seq._get_html_data( + cfg=cfg, + # pass in a PromptConfig object + decode_fn=decode_fn, + id_suffix=id_suffix, + column=column, + component_specific_kwargs=dict( + bold_idx="max" if cfg.buffer is None else cfg.buffer[0], + permanent_line=False, # in a group, we're never showing a permanent line (only for single seqs) + max_feat_act=max_feat_act, + max_loss_contribution=max_loss_contribution, + seq_group_id=seq_group_id, + first_in_group=(i == 0), + title=self.title, + ), + ) + + return html_obj + + +@dataclass_json +@dataclass +class SequenceMultiGroupData: + """ + This contains all the data necessary to make multiple groups of sequences (e.g. the different quantiles in the + prompt-centric visualization). See diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + """ + + seq_group_data: list[SequenceGroupData] = field(default_factory=list) + + def __getitem__(self, idx: int) -> SequenceGroupData: + return self.seq_group_data[idx] + + @property + def max_feat_act(self) -> float: + """Returns maximum value of feature activation over all sequences in this group.""" + return max_or_1([seq_group.max_feat_act for seq_group in self.seq_group_data]) + + @property + def max_loss_contribution(self) -> float: + """Returns maximum value of loss contribution over all sequences in this group.""" + return max_or_1( + [seq_group.max_loss_contribution for seq_group in self.seq_group_data] + ) + + def _get_html_data( + self, + cfg: SequencesConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + id_suffix: str, + column: int | tuple[int, int], + component_specific_kwargs: dict[str, Any] = {}, + ) -> HTML: + """ + Args: + decode_fn: Mapping from token IDs to string tokens. + id_suffix: The suffix for the ID of the div containing the sequences. + column: The index of this column. Note that this will be an int, but we might end up + turning it into a tuple if we overflow into a new column. + component_specific_kwargs: Contains any specific kwargs that could be used to customize this component. + + Returns: + html_obj: Object containing the HTML and JavaScript data for these multiple seq groups. + """ + assert isinstance(column, int) + + # Get max activation value & max loss contributions, over all sequences in all groups + max_feat_act = component_specific_kwargs.get("max_feat_act", self.max_feat_act) + max_loss_contribution = component_specific_kwargs.get( + "max_loss_contribution", self.max_loss_contribution + ) + + # Get the correct column indices for the sequence groups, depending on how group_wrap is configured. Note, we + # deal with overflowing columns by extending the dictionary, i.e. our column argument isn't just `column`, but + # is a tuple of `(column, x)` where `x` is the number of times we've overflowed. For instance, if we have mode + # 'stack-none' then our columns are `(column, 0), (column, 1), (column, 1), (column, 1), (column, 2), ...` + n_groups = len(self.seq_group_data) + n_quantile_groups = n_groups - 1 + match cfg.stack_mode: + case "stack-all": + # Here, we stack all groups into 1st column + cols = [column for _ in range(n_groups)] + case "stack-quantiles": + # Here, we give 1st group its own column, and stack all groups into second column + cols = [(column, 0)] + [(column, 1) for _ in range(n_quantile_groups)] + case "stack-none": + # Here, we stack groups into columns as [1, 3, 3, ...] + cols = [ + (column, 0), + *[(column, 1 + int(i / 3)) for i in range(n_quantile_groups)], + ] + case _: + raise ValueError( + f"Invalid stack_mode: {cfg.stack_mode}. Expected in 'stack-{{all,quantiles,none}}'." + ) + + # Create the HTML object, and add all the sequence groups to it, possibly across different columns + html_obj = HTML() + for i, (col, group_size, sequences_group) in enumerate( + zip(cols, cfg.group_sizes, self.seq_group_data) + ): + html_obj += sequences_group._get_html_data( + cfg=cfg, + decode_fn=decode_fn, + id_suffix=id_suffix, + column=col, + component_specific_kwargs=dict( + group_size=group_size, + max_feat_act=max_feat_act, + max_loss_contribution=max_loss_contribution, + seq_group_id=f"seq-group-{column}-{i}", # we label our sequence groups with (index, column) + ), + ) + + return html_obj + + +GenericData = ( + FeatureTablesData + | ActsHistogramData + | LogitsTableData + | LogitsHistogramData + | SequenceMultiGroupData + | SequenceData +) diff --git a/SAEDashboard/sae_dashboard/components_config.py b/SAEDashboard/sae_dashboard/components_config.py new file mode 100644 index 0000000000000000000000000000000000000000..04443bf4aea99ca63e9583d342b7ea76d88f76c5 --- /dev/null +++ b/SAEDashboard/sae_dashboard/components_config.py @@ -0,0 +1,206 @@ +from dataclasses import dataclass +from typing import Any, Iterator, Literal + +SEQUENCES_CONFIG_HELP = dict( + buffer="How many tokens to add as context to each sequence, on each side. The tokens chosen for the top acts / \ +quantile groups can't be outside the buffer range. If None, we use the entire sequence as context.", + compute_buffer="If False, then we don't compute the loss effect, activations, or any other data for tokens \ +other than the bold tokens in our sequences (saving time).", + n_quantiles="Number of quantile groups for the sequences. If zero, we only show top activations, no quantile \ +groups.", + top_acts_group_size="Number of sequences in the 'top activating sequences' group.", + quantile_group_size="Number of sequences in each of the sequence quantile groups.", + top_logits_hoverdata="Number of top/bottom logits to show in the hoverdata for each token.", + stack_mode="How to stack the sequence groups.\n 'stack-all' = all groups are stacked in a single column \ +(scrolls vertically if it overflows)\n 'stack-quantiles' = first col contains top acts, second col contains all \ +quantile groups\n 'stack-none' = we stack in a way which ensures no vertical scrolling.", + hover_below="Whether the hover information about a token appears below or above the token.", +) + +ACTIVATIONS_HISTOGRAM_CONFIG_HELP = dict( + n_bins="Number of bins for the histogram.", +) + +LOGITS_HISTOGRAM_CONFIG_HELP = dict( + n_bins="Number of bins for the histogram.", +) + +LOGITS_TABLE_CONFIG_HELP = dict( + n_rows="Number of top/bottom logits to show in the table.", +) + +FEATURE_TABLES_CONFIG_HELP = dict( + n_rows="Number of rows to show for each feature table.", + neuron_alignment_table="Whether to show the neuron alignment table.", + correlated_neurons_table="Whether to show the correlated neurons table.", + correlated_features_table="Whether to show the (pairwise) correlated features table.", + correlated_b_features_table="Whether to show the correlated encoder-B features table.", +) + + +@dataclass +class BaseComponentConfig: + def data_is_contained_in(self, other: "BaseComponentConfig") -> bool: + """ + This returns False only when the data that was computed based on `other` wouldn't be enough to show the data + that was computed based on `self`. For instance, if `self` was a config object with 10 rows, and `other` had + just 5 rows, then this would return False. A less obvious example: if `self` was a histogram config with 50 bins + then `other` would need to have exactly 50 bins (because we can't change the bins after generating them). + """ + return True + + @property + def help_dict(self) -> dict[str, str]: + """ + This is a dictionary which maps the name of each argument to a description of what it does. This is used when + printing out the help for a config object, to show what each argument does. + """ + return {} + + +@dataclass +class PromptConfig(BaseComponentConfig): + pass + + +@dataclass +class SequencesConfig(BaseComponentConfig): + buffer: tuple[int, int] | None = (5, 5) + compute_buffer: bool = True + n_quantiles: int = 10 + top_acts_group_size: int = 20 + quantile_group_size: int = 5 + top_logits_hoverdata: int = 5 + stack_mode: Literal["stack-all", "stack-quantiles", "stack-none"] = "stack-all" + hover_below: bool = True + + def data_is_contained_in(self, other: BaseComponentConfig) -> bool: + assert isinstance(other, self.__class__) + return all( + [ + self.buffer is None + or ( + other.buffer is not None and self.buffer[0] <= other.buffer[0] + ), # the buffer needs to be <= + self.buffer is None + or (other.buffer is not None and self.buffer[1] <= other.buffer[1]), + int(self.compute_buffer) + <= int( + other.compute_buffer + ), # we can't compute the buffer if we didn't in `other` + self.n_quantiles + in { + 0, + other.n_quantiles, + }, # we actually need the quantiles identical (or one to be zero) + self.top_acts_group_size + <= other.top_acts_group_size, # group size needs to be <= + self.quantile_group_size + <= other.quantile_group_size, # each quantile group needs to be <= + self.top_logits_hoverdata + <= other.top_logits_hoverdata, # hoverdata rows need to be <= + ] + ) + + def __post_init__(self): + # Get list of group lengths, based on the config params + self.group_sizes = [self.top_acts_group_size] + [ + self.quantile_group_size + ] * self.n_quantiles + + @property + def help_dict(self) -> dict[str, str]: + return SEQUENCES_CONFIG_HELP + + +@dataclass +class ActsHistogramConfig(BaseComponentConfig): + n_bins: int = 50 + + def data_is_contained_in(self, other: BaseComponentConfig) -> bool: + assert isinstance(other, self.__class__) + return self.n_bins == other.n_bins + + @property + def help_dict(self) -> dict[str, str]: + return ACTIVATIONS_HISTOGRAM_CONFIG_HELP + + +@dataclass +class LogitsHistogramConfig(BaseComponentConfig): + n_bins: int = 50 + + def data_is_contained_in(self, other: BaseComponentConfig) -> bool: + assert isinstance(other, self.__class__) + return self.n_bins == other.n_bins + + @property + def help_dict(self) -> dict[str, str]: + return LOGITS_HISTOGRAM_CONFIG_HELP + + +@dataclass +class LogitsTableConfig(BaseComponentConfig): + n_rows: int = 10 + + def data_is_contained_in(self, other: BaseComponentConfig) -> bool: + assert isinstance(other, self.__class__) + return self.n_rows <= other.n_rows + + @property + def help_dict(self) -> dict[str, str]: + return LOGITS_TABLE_CONFIG_HELP + + +@dataclass +class FeatureTablesConfig(BaseComponentConfig): + n_rows: int = 3 + neuron_alignment_table: bool = True + correlated_neurons_table: bool = True + correlated_features_table: bool = True + correlated_b_features_table: bool = False + + def data_is_contained_in(self, other: BaseComponentConfig) -> bool: + assert isinstance(other, self.__class__) + return all( + [ + self.n_rows <= other.n_rows, + self.neuron_alignment_table <= other.neuron_alignment_table, + self.correlated_neurons_table <= other.correlated_neurons_table, + self.correlated_features_table <= other.correlated_features_table, + self.correlated_b_features_table <= other.correlated_b_features_table, + ] + ) + + @property + def help_dict(self) -> dict[str, str]: + return FEATURE_TABLES_CONFIG_HELP + + +GenericComponentConfig = ( + PromptConfig + | SequencesConfig + | ActsHistogramConfig + | LogitsHistogramConfig + | LogitsTableConfig + | FeatureTablesConfig +) + + +class Column: + def __init__( + self, + *args: GenericComponentConfig, + width: int | None = None, + ): + self.components = list(args) + self.width = width + + def __iter__(self) -> Iterator[Any]: + return iter(self.components) + + def __getitem__(self, idx: int) -> Any: + return self.components[idx] + + def __len__(self) -> int: + return len(self.components) diff --git a/SAEDashboard/sae_dashboard/css/dropdown.css b/SAEDashboard/sae_dashboard/css/dropdown.css new file mode 100644 index 0000000000000000000000000000000000000000..d9ed29f9853ef65b05026c31dc8b87992cc824e9 --- /dev/null +++ b/SAEDashboard/sae_dashboard/css/dropdown.css @@ -0,0 +1,40 @@ +/* Styling of the dropdowns */ +select { + appearance: none; + border: 0; + flex: 1; + padding: 0 1em; + background-color: #eee; + cursor: pointer; +} +.select { + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25); + cursor: pointer; + display: flex; + width: 100px; + height: 25px; + border-radius: .25em; + overflow: hidden; + position: relative; + margin-right: 15px; +} +.select::after { + position: absolute; + content: '\25BC'; + font-size: 9px; + top: 0; + right: 0; + padding: 1em; + background-color: #ddd; + transition: .25s all ease; + pointer-events: none; +} +.select:hover::after { + color: black; +} +#dropdown-container { + margin-left: 10px; + margin-top: 20px; + display: flex; + flex-wrap: wrap; +} \ No newline at end of file diff --git a/SAEDashboard/sae_dashboard/css/general.css b/SAEDashboard/sae_dashboard/css/general.css new file mode 100644 index 0000000000000000000000000000000000000000..d64862018a914e9ff2c761df8d7cc4ec90eac4d1 --- /dev/null +++ b/SAEDashboard/sae_dashboard/css/general.css @@ -0,0 +1,53 @@ +/* Styling of the top-level container */ +.grid-container { + font-family: 'system-ui'; + border: 1px solid #e6e6e6; + background-color: #fff; + margin: 30px 10px; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.25); + display: grid; + justify-content: start; + grid-template-columns: auto; + overflow-x: auto; + overflow-y: visible; + grid-auto-flow: column; + white-space: nowrap; + padding-bottom: 12px; + padding-top: 35px; + padding-left: 20px; +} +/* Styling each grid column (note, the max-height controls height of grid-container) */ +.grid-column { + margin-left: 20px; + padding-right: 20px; + width: max-content; + overflow-y: auto; + max-height: 750px; +} +/* Styling the scrollbars */ +::-webkit-scrollbar { + height: 10px; + width: 10px; +} +::-webkit-scrollbar-track { + background: #f1f1f1; +} +::-webkit-scrollbar-thumb { + background: #999; +} +::-webkit-scrollbar-thumb:hover { + background: #555; +} +/* Margin at the bottom of each histogram */ +.plotly-hist { + margin-bottom: 25px; +} +/* Margins below the titles (most subtitles are h4, except for the prompt-centric view which has h2 titles) */ +h4 { + margin-top: 0px; + margin-bottom: 10px; +} +/* Some space below the
line in prompt-centric vis */ +hr { + margin-bottom: 35px; +} \ No newline at end of file diff --git a/SAEDashboard/sae_dashboard/css/sequences.css b/SAEDashboard/sae_dashboard/css/sequences.css new file mode 100644 index 0000000000000000000000000000000000000000..5c6961591b134a3a465ce6e226c5eb40aa053c46 --- /dev/null +++ b/SAEDashboard/sae_dashboard/css/sequences.css @@ -0,0 +1,61 @@ +/* Default font & appearance for the words in the sequence, before being hovered over */ +code { + font-family: Consolas, Menlo, Monaco; +} +/* Margin at the bottom of every sequence group, plus handle how overflow works (maybe not necessary) */ +.seq-group { + overflow-x: auto; + overflow-y: visible; + padding-top: 5px; + padding-bottom: 10px; + margin-bottom: 10px; +} +/* Margin between single sequences */ +.seq { + margin-bottom: 11px; +} +/* Styling for each token in a sequence */ +.token { + font-family: Consolas, Menlo, Monaco; + font-size: 0.9em; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + padding: 1px; + color: black; + display: inline; + white-space: pre-wrap; +} +/* All the messy hovering stuff! */ +.hover-text { + position: relative; + cursor: pointer; + display: inline-block; /* Needed to contain the tooltip */ + box-sizing: border-box; +} +.tooltip { + background-color: #fff; + color: #333; + text-align: center; + border-radius: 10px; + padding: 5px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25); + align-items: center; + justify-content: center; + overflow: hidden; + font-family: 'system-ui'; + font-size: 1.1em; + display: none; + position: fixed; + z-index: 1000; +} +.token:hover { + border-top: 3px solid black; +} +.tooltip-container { + position: absolute; + pointer-events: none; +} +.hover-text:hover + .tooltip-container .tooltip { + display: block; +} + diff --git a/SAEDashboard/sae_dashboard/css/tables.css b/SAEDashboard/sae_dashboard/css/tables.css new file mode 100644 index 0000000000000000000000000000000000000000..66605b061a1d2ac351a8471c47ae7483a58e1c5f --- /dev/null +++ b/SAEDashboard/sae_dashboard/css/tables.css @@ -0,0 +1,81 @@ +table { + border: unset; + color: black; + border-collapse: collapse; + width: -moz-fit-content; + width: -webkit-fit-content; + width: fit-content; + margin-left: auto; + margin-right: auto; + font-size: 0.8em; +} +table.table-left tr { + border-bottom: 1px solid #eee; + padding: 15px; +} +table.table-left td { + padding: 3px 4px; +} +table.table-left { + width: 100%; +} +table.table-left td.left-aligned { + max-width: 120px; + overflow-x: hidden; +} +td { + border: none; + padding: 2px 4px; + white-space: nowrap; +} +.right-aligned { + text-align: right; +} +.left-aligned { + text-align: left; +} +.center-aligned { + text-align: center; + padding-bottom: 8px; +} +table code { + background-color: #ddd; + padding: 2px; + border-radius: 3px; +} +.table-container { + width: 100%; +} +.half-width-container { + display: flex; +} +.half-width { + width: 50%; + margin-right: -4px; +} + +/* Feature tables should have space below them, also they should have a min column width */ +div.feature-tables table { + margin-bottom: 25px; + min-width: 250px; +} +/* Configure logits table container (i.e. the thing containing the smaller and larger tables) */ +div.logits-table { + min-width: 375px; + display: flex; + overflow-x: hidden; + margin-bottom: 20px; +} +/* Code is always bold in this table (this is just the neg/pos string tokens) */ +div.logits-table code { + font-weight: bold; +} +/* Set width of the tables inside the container (so they can stack horizontally), also put a gap between them */ +div.logits-table > div.positive { + width: 47%; +} +div.logits-table > div.negative { + width: 47%; + margin-right: 5%; +} + diff --git a/SAEDashboard/sae_dashboard/data_parsing_fns.py b/SAEDashboard/sae_dashboard/data_parsing_fns.py new file mode 100644 index 0000000000000000000000000000000000000000..8ca3b8a3f4e2f773f1f407825ad9b5a92799a31a --- /dev/null +++ b/SAEDashboard/sae_dashboard/data_parsing_fns.py @@ -0,0 +1,412 @@ +import einops +import numpy as np +import torch +from eindex import eindex +from jaxtyping import Float, Int +from sae_lens import SAE +from torch import Tensor +from transformer_lens import HookedTransformer, utils + +from sae_dashboard.components import LogitsTableData, SequenceData +from sae_dashboard.sae_vis_data import SaeVisData +from sae_dashboard.transformer_lens_wrapper import ( + ActivationConfig, + TransformerLensWrapper, + to_resid_direction, +) +from sae_dashboard.utils_fns import RollingCorrCoef, TopK + +Arr = np.ndarray + + +def get_features_table_data( + feature_out_dir: Float[Tensor, "feats d_out"], + n_rows: int, + corrcoef_neurons: RollingCorrCoef | None = None, + corrcoef_encoder: RollingCorrCoef | None = None, +) -> dict[str, list[list[int]] | list[list[float]]]: + # ! Calculate all data for the left-hand column visualisations, i.e. the 3 tables + # Store kwargs (makes it easier to turn the tables on and off individually) + feature_tables_data: dict[str, list[list[int]] | list[list[float]]] = {} + + # Table 1: neuron alignment, based on decoder weights + # if layout.feature_tables_cfg.neuron_alignment_table: + # Let's just always do this. + add_neuron_alignment_data( + feature_out_dir=feature_out_dir, + feature_tables_data=feature_tables_data, + n_rows=n_rows, + ) + + # Table 2: neurons correlated with this feature, based on their activations + if corrcoef_neurons is not None: + add_feature_neuron_correlations( + corrcoef_neurons=corrcoef_neurons, + feature_tables_data=feature_tables_data, + n_rows=n_rows, + ) + + # Table 3: primary encoder features correlated with this feature, based on their activations + if corrcoef_encoder is not None: + add_intra_encoder_correlations( + corrcoef_encoder=corrcoef_encoder, + feature_tables_data=feature_tables_data, + n_rows=n_rows, + ) + + return feature_tables_data + + +def add_intra_encoder_correlations( + corrcoef_encoder: RollingCorrCoef, + feature_tables_data: dict[str, list[list[int]] | list[list[float]]], + n_rows: int, +): + enc_indices, enc_pearson, enc_cossim = corrcoef_encoder.topk_pearson( + k=n_rows, + ) + feature_tables_data["correlated_features_indices"] = enc_indices + feature_tables_data["correlated_features_pearson"] = enc_pearson + feature_tables_data["correlated_features_cossim"] = enc_cossim + + +def add_neuron_alignment_data( + feature_out_dir: Float[Tensor, "feats d_out"], + feature_tables_data: dict[str, list[list[int]] | list[list[float]]], + n_rows: int, +): + top3_neurons_aligned = TopK(tensor=feature_out_dir.float(), k=n_rows, largest=True) + feature_out_l1_norm = feature_out_dir.abs().sum(dim=-1, keepdim=True) + pct_of_l1: Arr = np.absolute(top3_neurons_aligned.values) / utils.to_numpy( + feature_out_l1_norm.float() + ) + feature_tables_data["neuron_alignment_indices"] = ( + top3_neurons_aligned.indices.tolist() + ) + feature_tables_data["neuron_alignment_values"] = ( + top3_neurons_aligned.values.tolist() + ) + feature_tables_data["neuron_alignment_l1"] = pct_of_l1.tolist() + + +def add_feature_neuron_correlations( + corrcoef_neurons: RollingCorrCoef, + feature_tables_data: dict[str, list[list[int]] | list[list[float]]], + n_rows: int, +): + neuron_indices, neuron_pearson, neuron_cossim = corrcoef_neurons.topk_pearson( + k=n_rows, + ) + + feature_tables_data["correlated_neurons_indices"] = neuron_indices + feature_tables_data["correlated_neurons_pearson"] = neuron_pearson + feature_tables_data["correlated_neurons_cossim"] = neuron_cossim + + +def get_logits_table_data( + logit_vector: Float[Tensor, "d_vocab"], n_rows: int # noqa: F821 +): + # Get logits table data + top_logits = TopK(logit_vector.float(), k=n_rows, largest=True) + bottom_logits = TopK(logit_vector.float(), k=n_rows, largest=False) + + top_logit_values = top_logits.values.tolist() + top_token_ids = top_logits.indices.tolist() + + bottom_logit_values = bottom_logits.values.tolist() + bottom_token_ids = bottom_logits.indices.tolist() + + logits_table_data = LogitsTableData( + bottom_logits=bottom_logit_values, + bottom_token_ids=bottom_token_ids, + top_logits=top_logit_values, + top_token_ids=top_token_ids, + ) + + return logits_table_data + + +# @torch.inference_mode() +# def get_feature_data( +# encoder: AutoEncoder, +# model: HookedTransformer, +# tokens: Int[Tensor, "batch seq"], +# cfg: SaeVisConfig, +# ) -> SaeVisData: +# """ +# This is the main function which users will run to generate the feature visualization data. It batches this +# computation over features, in accordance with the arguments in the SaeVisConfig object (we don't want to compute all +# the features at once, since might give OOMs). + +# See the `_get_feature_data` function for an explanation of the arguments, as well as a more detailed explanation +# of what this function is doing. + +# The return object is the merged SaeVisData objects returned by the `_get_feature_data` function. +# """ +# pass + +# # return sae_vis_data + + +@torch.inference_mode() +def parse_prompt_data( + tokens: Int[Tensor, "batch seq"], + str_toks: list[str], + sae_vis_data: SaeVisData, + feat_acts: Float[Tensor, "seq feats"], + feature_resid_dir: Float[Tensor, "feats d_model"], + resid_post: Float[Tensor, "seq d_model"], + W_U: Float[Tensor, "d_model d_vocab"], + feature_idx: list[int] | None = None, + num_top_features: int = 10, +) -> dict[str, tuple[list[int], list[str]]]: + """ + Gets data needed to create the sequences in the prompt-centric vis (displaying dashboards for the most relevant + features on a prompt). + + This function exists so that prompt dashboards can be generated without using our AutoEncoder or + TransformerLens(Wrapper) classes. + + Args: + tokens: Int[Tensor, "batch seq"] + The tokens we'll be using to get the feature activations. Note that we might not be using all of them; the + number used is determined by `fvp.total_batch_size`. + + str_toks: list[str] + The tokens as a list of strings, so that they can be visualized in HTML. + + sae_vis_data: SaeVisData + The object storing all data for each feature. We'll set each `feature_data.prompt_data` to the + data we get from `prompt`. + + feat_acts: Float[Tensor, "seq feats"] + The activations values of the features across the sequence. + + feature_resid_dir: Float[Tensor, "feats d_model"] + The directions that each feature writes to the residual stream. + + resid_post: Float[Tensor, "seq d_model"] + The activations of the final layer of the model before the unembed. + + W_U: Float[Tensor, "d_model d_vocab"] + The model's unembed weights for the logit lens. + + feature_idx: list[int] or None + The features we're actually computing. These might just be a subset of the model's full features. + + num_top_features: int + The number of top features to display in this view, for any given metric. + + Returns: + scores_dict: dict[str, tuple[list[int], list[str]]] + A dictionary mapping keys like "act_quantile|'django' (0)" to a tuple of lists, where the first list is the + feature indices, and the second list is the string-formatted values of the scores. + + As well as returning this dictionary, this function will also set `FeatureData.prompt_data` for each feature in + `sae_vis_data` (this is necessary for getting the prompts in the prompt-centric vis). Note this design choice could + have been done differently (i.e. have this function return a list of the prompt data for each feature). I chose this + way because it means the FeatureData._get_html_data_prompt_centric can work fundamentally the same way as + FeatureData._get_html_data_feature_centric, rather than treating the prompt data object as a different kind of + component in the vis. + """ + + device = sae_vis_data.cfg.device + + if feature_idx is None: + feature_idx = list(sae_vis_data.feature_data_dict.keys()) + n_feats = len(feature_idx) + assert ( + feature_resid_dir.shape[0] == n_feats + ), f"The number of features in feature_resid_dir ({feature_resid_dir.shape[0]}) does not match the number of feature indices ({n_feats})" + + assert ( + feat_acts.shape[1] == n_feats + ), f"The number of features in feat_acts ({feat_acts.shape[1]}) does not match the number of feature indices ({n_feats})" + + feats_loss_contribution = torch.empty( + size=(n_feats, tokens.shape[1] - 1), device=device + ) + # Some logit computations which we only need to do once + # correct_token_unembeddings = model_wrapped.W_U[:, tokens[0, 1:]] # [d_model seq] + orig_logits = ( + resid_post / resid_post.std(dim=-1, keepdim=True) + ) @ W_U # [seq d_vocab] + raw_logits = feature_resid_dir @ W_U # [feats d_vocab] + + for i, feat in enumerate(feature_idx): + # ! Calculate the sequence data for each feature, and store it as FeatureData.prompt_data + + # Get this feature's output vector, using an outer product over the feature activations for all tokens + resid_post_feature_effect = einops.einsum( + feat_acts[:, i], feature_resid_dir[i], "seq, d_model -> seq d_model" + ) + + # Ablate the output vector from the residual stream, and get logits post-ablation + new_resid_post = resid_post - resid_post_feature_effect + new_logits = (new_resid_post / new_resid_post.std(dim=-1, keepdim=True)) @ W_U + + # Get the top5 & bottom5 changes in logits (don't bother with `efficient_topk` cause it's small) + contribution_to_logprobs = orig_logits.log_softmax( + dim=-1 + ) - new_logits.log_softmax(dim=-1) + top_contribution_to_logits = TopK(contribution_to_logprobs[:-1], k=5) + bottom_contribution_to_logits = TopK( + contribution_to_logprobs[:-1], k=5, largest=False + ) + + # Get the change in loss (which is negative of change of logprobs for correct token) + loss_contribution = eindex( + -contribution_to_logprobs[:-1], tokens[0, 1:], "seq [seq]" + ) + feats_loss_contribution[i, :] = loss_contribution + + # Store the sequence data + sae_vis_data.feature_data_dict[feat].prompt_data = SequenceData( + token_ids=tokens.squeeze(0).tolist(), + feat_acts=[round(f, 4) for f in feat_acts[:, i].tolist()], + loss_contribution=[0.0] + loss_contribution.tolist(), + token_logits=raw_logits[i, tokens.squeeze(0)].tolist(), + top_token_ids=top_contribution_to_logits.indices.tolist(), + top_logits=top_contribution_to_logits.values.tolist(), + bottom_token_ids=bottom_contribution_to_logits.indices.tolist(), + bottom_logits=bottom_contribution_to_logits.values.tolist(), + ) + + # ! Lastly, return a dictionary mapping each key like 'act_quantile|"django" (0)' to a list of feature indices & scores + + # Get a dict with keys like f"act_quantile|'My' (1)" and values (feature indices list, feature score values list) + scores_dict: dict[str, tuple[list[int], list[str]]] = {} + + for seq_pos, seq_key in enumerate([f"{t!r} ({i})" for i, t in enumerate(str_toks)]): + # Filter the feature activations, since we only need the ones that are non-zero + feat_acts_nonzero_filter = utils.to_numpy(feat_acts[seq_pos] > 0) + feat_acts_nonzero_locations = np.nonzero(feat_acts_nonzero_filter)[0].tolist() + _feat_acts = feat_acts[seq_pos, feat_acts_nonzero_filter] # [feats_filtered,] + _feature_idx = np.array(feature_idx)[feat_acts_nonzero_filter] + + if feat_acts_nonzero_filter.sum() > 0: + k = min(num_top_features, _feat_acts.numel()) + + # Get the top features by activation size. This is just applying a TopK function to the feat acts (which + # were stored by the code before this). The feat acts are formatted to 3dp. + act_size_topk = TopK(_feat_acts, k=k, largest=True) + top_features = _feature_idx[act_size_topk.indices].tolist() + formatted_scores = [f"{v:.3f}" for v in act_size_topk.values] + scores_dict[f"act_size|{seq_key}"] = (top_features, formatted_scores) + + # Get the top features by activation quantile. We do this using the `feature_act_quantiles` object, which + # was stored `sae_vis_data`. This quantiles object has a method to return quantiles for a given set of + # data, as well as the precision (we make the precision higher for quantiles closer to 100%, because these + # are usually the quantiles we're interested in, and it lets us to save space in `feature_act_quantiles`). + act_quantile, act_precision = sae_vis_data.feature_stats.get_quantile( + _feat_acts, feat_acts_nonzero_locations + ) + act_quantile_topk = TopK(act_quantile, k=k, largest=True) + act_formatting = [ + f".{act_precision[i]-2}%" for i in act_quantile_topk.indices + ] + top_features = _feature_idx[act_quantile_topk.indices].tolist() + formatted_scores = [ + f"{v:{f}}" for v, f in zip(act_quantile_topk.values, act_formatting) + ] + scores_dict[f"act_quantile|{seq_key}"] = (top_features, formatted_scores) + + # We don't measure loss effect on the first token + if seq_pos == 0: + continue + + # Filter the loss effects, since we only need the ones which have non-zero feature acts on the tokens before them + prev_feat_acts_nonzero_filter = utils.to_numpy(feat_acts[seq_pos - 1] > 0) + _loss_contribution = feats_loss_contribution[ + prev_feat_acts_nonzero_filter, seq_pos - 1 + ] # [feats_filtered,] + _feature_idx_prev = np.array(feature_idx)[prev_feat_acts_nonzero_filter] + + if prev_feat_acts_nonzero_filter.sum() > 0: + k = min(num_top_features, _loss_contribution.numel()) + + # Get the top features by loss effect. This is just applying a TopK function to the loss effects (which were + # stored by the code before this). The loss effects are formatted to 3dp. We look for the most negative + # values, i.e. the most loss-reducing features. + loss_contribution_topk = TopK(_loss_contribution, k=k, largest=False) + top_features = _feature_idx_prev[loss_contribution_topk.indices].tolist() + formatted_scores = [f"{v:+.3f}" for v in loss_contribution_topk.values] + scores_dict[f"loss_effect|{seq_key}"] = (top_features, formatted_scores) + return scores_dict + + +@torch.inference_mode() +def get_prompt_data( + sae_vis_data: SaeVisData, + prompt: str, + num_top_features: int, +) -> dict[str, tuple[list[int], list[str]]]: + """ + Gets data that will be used to create the sequences in the prompt-centric HTML visualisation, i.e. an object of + type SequenceData for each of our features. + + Args: + sae_vis_data: The object storing all data for each feature. We'll set each `feature_data.prompt_data` to the + data we get from `prompt`. + prompt: The prompt we'll be using to get the feature activations.# + num_top_features: The number of top features we'll be getting data for. + + Returns: + scores_dict: A dictionary mapping keys like "act_quantile|0" to a tuple of lists, where the first list is + the feature indices, and the second list is the string-formatted values of the scores. + + As well as returning this dictionary, this function will also set `FeatureData.prompt_data` for each feature in + `sae_vis_data`. This is because the prompt-centric vis will call `FeatureData._get_html_data_prompt_centric` on each + feature data object, so it's useful to have all the data in once place! Even if this will get overwritten next + time we call `get_prompt_data` for this same `sae_vis_data` object. + """ + + # ! Boring setup code + feature_idx = list(sae_vis_data.feature_data_dict.keys()) + encoder = sae_vis_data.encoder + assert isinstance(encoder, SAE) + model = sae_vis_data.model + assert isinstance(model, HookedTransformer) + cfg = sae_vis_data.cfg + assert isinstance(cfg.hook_point, str), f"{cfg.hook_point=}, expected a string" + + str_toks: list[str] = model.tokenizer.tokenize(prompt) # type: ignore + tokens = model.tokenizer.encode(prompt, return_tensors="pt").to( # type: ignore + sae_vis_data.cfg.device + ) + assert isinstance(tokens, torch.Tensor) + + model_wrapped = TransformerLensWrapper(model, ActivationConfig(cfg.hook_point, [])) # type: ignore + + feature_act_dir = encoder.W_enc[:, feature_idx] # [d_in feats] + feature_out_dir = encoder.W_dec[feature_idx] # [feats d_in] + feature_resid_dir = to_resid_direction( + feature_out_dir, model_wrapped + ) # [feats d_model] + assert ( + feature_act_dir.T.shape + == feature_out_dir.shape + == (len(feature_idx), encoder.cfg.d_in) + ) + + # ! Define hook functions to cache all the info required for feature ablation, then run those hook fns + resid_post, act_post = model_wrapped(tokens, return_logits=False) + resid_post: Tensor = resid_post.squeeze(0) # type: ignore + feat_acts = encoder.get_feature_acts_subset(act_post, feature_idx).squeeze( # type: ignore + 0 + ) # [seq feats] # type: ignore + + # ! Use the data we've collected to make the scores_dict and update the sae_vis_data + scores_dict = parse_prompt_data( + tokens=tokens, + str_toks=str_toks, + sae_vis_data=sae_vis_data, + feat_acts=feat_acts, + feature_resid_dir=feature_resid_dir, + resid_post=resid_post, + W_U=model.W_U, + feature_idx=feature_idx, + num_top_features=num_top_features, + ) + + return scores_dict diff --git a/SAEDashboard/sae_dashboard/data_writing_fns.py b/SAEDashboard/sae_dashboard/data_writing_fns.py new file mode 100644 index 0000000000000000000000000000000000000000..389048b32cb2ec6c5bd8de518781bef676b92057 --- /dev/null +++ b/SAEDashboard/sae_dashboard/data_writing_fns.py @@ -0,0 +1,210 @@ +import itertools +from copy import deepcopy +from pathlib import Path + +from tqdm.auto import tqdm + +from sae_dashboard.data_parsing_fns import get_prompt_data +from sae_dashboard.html_fns import HTML +from sae_dashboard.sae_vis_data import SaeVisData +from sae_dashboard.utils_fns import get_decode_html_safe_fn + +METRIC_TITLES = { + "act_size": "Activation Size", + "act_quantile": "Activation Quantile", + "loss_effect": "Loss Effect", +} + + +def save_feature_centric_vis( + sae_vis_data: SaeVisData, + filename: str | Path, + feature_idx: int | None = None, + include_only: list[int] | None = None, + separate_files: bool = False, +) -> None: + """ + Returns the HTML string for the view which lets you navigate between different features. + + Args: + sae_vis_data: Object containing visualization data. + filename: The HTML filepath we'll save the visualization to. If separate_files is True, this is used as a base name. + feature_idx: This is the default feature index we'll start on. If None, we use the first feature. + include_only: Optional list of specific features to include. + separate_files: If True, saves each feature to a separate HTML file. + """ + # Set the default argument for the dropdown (i.e. when the page first loads) + first_feature = ( + next(iter(sae_vis_data.feature_data_dict)) + if (feature_idx is None) + else feature_idx + ) + + # Get tokenize function (we only need to define it once) + assert sae_vis_data.model is not None + assert sae_vis_data.model.tokenizer is not None + decode_fn = get_decode_html_safe_fn(sae_vis_data.model.tokenizer) + + # Create iterator + if include_only is not None: + iterator = [(i, sae_vis_data.feature_data_dict[i]) for i in include_only] + else: + iterator = list(sae_vis_data.feature_data_dict.items()) + if sae_vis_data.cfg.verbose: + iterator = tqdm(iterator, desc="Saving feature-centric vis") + + HTML_OBJ = HTML() # Initialize HTML object for combined file + + # For each FeatureData object, we get the html_obj for its feature-centric vis + for feature, feature_data in iterator: + html_obj = feature_data._get_html_data_feature_centric( + sae_vis_data.cfg.feature_centric_layout, decode_fn + ) + + if separate_files: + feature_HTML_OBJ = HTML() # Initialize a new HTML object for each feature + feature_HTML_OBJ.js_data[str(feature)] = deepcopy(html_obj.js_data) + feature_HTML_OBJ.html_data = deepcopy(html_obj.html_data) + + # Add the aggdata + feature_HTML_OBJ.js_data = { + "AGGDATA": sae_vis_data.feature_stats.aggdata, + "DASHBOARD_DATA": feature_HTML_OBJ.js_data, + } + + # Generate filename for this feature + feature_filename = Path(filename).with_stem( + f"{Path(filename).stem}_feature_{feature}" + ) + + # Save the HTML for this feature + feature_HTML_OBJ.get_html( + layout_columns=sae_vis_data.cfg.feature_centric_layout.columns, + layout_height=sae_vis_data.cfg.feature_centric_layout.height, + filename=feature_filename, + first_key=str(feature), + ) + else: + # Original behavior: accumulate all features in one HTML object + HTML_OBJ.js_data[str(feature)] = deepcopy(html_obj.js_data) + if feature == first_feature: + HTML_OBJ.html_data = deepcopy(html_obj.html_data) + + if not separate_files: + # Add the aggdata + HTML_OBJ.js_data = { + "AGGDATA": sae_vis_data.feature_stats.aggdata, + "DASHBOARD_DATA": HTML_OBJ.js_data, + } + + # Save our full HTML + HTML_OBJ.get_html( + layout_columns=sae_vis_data.cfg.feature_centric_layout.columns, + layout_height=sae_vis_data.cfg.feature_centric_layout.height, + filename=filename, + first_key=str(first_feature), + ) + + +def save_prompt_centric_vis( + sae_vis_data: SaeVisData, + prompt: str, + filename: str | Path, + metric: str | None = None, + seq_pos: int | None = None, + num_top_features: int = 10, +): + """ + Returns the HTML string for the view which lets you navigate between different features. + + Args: + prompt: The user-input prompt. + model: Used to get the tokenizer (for converting token IDs to string tokens). + filename: The HTML filepath we'll save the visualization to. + metric: This is the default scoring metric we'll start on. If None, we use 'act_quantile'. + seq_pos: This is the default seq pos we'll start on. If None, we use 0. + """ + # Initialize the object we'll eventually get_html from + HTML_OBJ = HTML() + + # Run forward passes on our prompt, and store the data within each FeatureData object as `self.prompt_data` as + # well as returning the scores_dict (which maps from score hash to a list of feature indices & formatted scores) + + scores_dict = get_prompt_data( + sae_vis_data=sae_vis_data, + prompt=prompt, + num_top_features=num_top_features, + ) + + # Get all possible values for dropdowns + str_toks = sae_vis_data.model.tokenizer.tokenize(prompt) # type: ignore + str_toks = [ + t.replace("|", "│") for t in str_toks + ] # vertical line -> pipe (hacky, so key splitting on | works) + str_toks_list = [f"{t!r} ({i})" for i, t in enumerate(str_toks)] + metric_list = ["act_quantile", "act_size", "loss_effect"] + + # Get default values for dropdowns + first_metric = "act_quantile" or metric + first_seq_pos = str_toks_list[0 if seq_pos is None else seq_pos] + first_key = f"{first_metric}|{first_seq_pos}" + + # Get tokenize function (we only need to define it once) + assert sae_vis_data.model is not None + assert sae_vis_data.model.tokenizer is not None + decode_fn = get_decode_html_safe_fn(sae_vis_data.model.tokenizer) + + # For each (metric, seqpos) object, we merge the prompt-centric views of each of the top features, then we merge + # these all together into our HTML_OBJ + for _metric, _seq_pos in itertools.product(metric_list, range(len(str_toks))): + # Create the key for this given combination of metric & seqpos, and get our top features & scores + key = f"{_metric}|{str_toks_list[_seq_pos]}" + if key not in scores_dict: + continue + feature_idx_list, scores_formatted = scores_dict[key] + + # Create HTML object, to store each feature column for all the top features for this particular key + html_obj = HTML() + + for i, (feature_idx, score_formatted) in enumerate( + zip(feature_idx_list, scores_formatted) + ): + # Get HTML object at this column (which includes JavaScript to dynamically set the title) + html_obj += sae_vis_data.feature_data_dict[ + feature_idx + ]._get_html_data_prompt_centric( + layout=sae_vis_data.cfg.prompt_centric_layout, + decode_fn=decode_fn, + column_idx=i, + bold_idx=_seq_pos, + title=f"

#{feature_idx}
{METRIC_TITLES[_metric]} = {score_formatted}


", + ) + + # Add the JavaScript (which includes the titles for each column) + HTML_OBJ.js_data[key] = deepcopy(html_obj.js_data) + + # Set the HTML data to be the one with the most columns (since different options might have fewer cols) + if len(HTML_OBJ.html_data) < len(html_obj.html_data): + HTML_OBJ.html_data = deepcopy(html_obj.html_data) + + # Check our first key is in the scores_dict (if not, we should pick a different key) + assert first_key in scores_dict, "\n".join( + [ + f"Key {first_key} not found in {scores_dict.keys()=}.", + "This means that there are no features with a nontrivial score for this choice of key & metric.", + ] + ) + + # Add the aggdata + HTML_OBJ.js_data = { + "AGGDATA": sae_vis_data.feature_stats.aggdata, + "DASHBOARD_DATA": HTML_OBJ.js_data, + } + + # Save our full HTML + HTML_OBJ.get_html( + layout_columns=sae_vis_data.cfg.prompt_centric_layout.columns, + layout_height=sae_vis_data.cfg.prompt_centric_layout.height, + filename=filename, + first_key=first_key, + ) diff --git a/SAEDashboard/sae_dashboard/dfa_calculator.py b/SAEDashboard/sae_dashboard/dfa_calculator.py new file mode 100644 index 0000000000000000000000000000000000000000..a611d2c5848a2f690f24e4d30d693e1b095d55e5 --- /dev/null +++ b/SAEDashboard/sae_dashboard/dfa_calculator.py @@ -0,0 +1,159 @@ +from typing import Any, Dict, List, Union + +import einops +import numpy as np +import torch +from sae_lens import SAE +from transformer_lens import ActivationCache, HookedTransformer + + +class DFACalculator: + """Calculate DFA values for a given layer and set of feature indices.""" + + def __init__(self, model: HookedTransformer, sae: SAE[Any]): + self.model = model + self.sae = sae + if ( + hasattr(model.cfg, "n_key_value_heads") + and model.cfg.n_key_value_heads is not None + and model.cfg.n_key_value_heads < model.cfg.n_heads + ): + print("Using GQA") + self.use_gqa = True + else: + self.use_gqa = False + + def calculate( + self, + activations: Union[Dict[str, torch.Tensor], ActivationCache], + layer_num: int, + feature_indices: List[int], + max_value_indices: torch.Tensor, + ) -> Dict[int, Any]: # type: ignore + """Calculate DFA values for a given layer and set of feature indices.""" + if not feature_indices: + return {} + + v = activations[f"blocks.{layer_num}.attn.hook_v"] + attn_weights = activations[f"blocks.{layer_num}.attn.hook_pattern"] + + if self.use_gqa: + per_src_pos_dfa = self.calculate_gqa_intermediate_tensor( + attn_weights, v, feature_indices + ) + else: + per_src_pos_dfa = self.calculate_standard_intermediate_tensor( + attn_weights, v, feature_indices + ) + + n_prompts, seq_len, _, n_features = per_src_pos_dfa.shape + + # Use advanced indexing to get per_src_dfa + prompt_indices = torch.arange(n_prompts)[:, None, None] + src_pos_indices = torch.arange(seq_len)[None, :, None] + feature_indices_tensor = torch.arange(n_features)[None, None, :] + max_value_indices_expanded = max_value_indices[:, None, :] + + per_src_dfa = per_src_pos_dfa[ + prompt_indices, + max_value_indices_expanded, + src_pos_indices, + feature_indices_tensor, + ] + + max_values, _ = per_src_dfa.max(dim=1) + + # Create a structured numpy array to hold all the data + dtype = np.dtype( + [ + ("dfa_values", np.float32, (seq_len,)), + ("dfa_target_index", np.int32), + ("dfa_max_value", np.float32), + ] + ) + results = np.zeros((len(feature_indices), n_prompts), dtype=dtype) + + # Fill the numpy array with data + results["dfa_values"] = per_src_dfa.detach().cpu().numpy().transpose(2, 0, 1) + results["dfa_target_index"] = max_value_indices.detach().cpu().numpy().T + results["dfa_max_value"] = max_values.detach().cpu().numpy().T + + # Create a dictionary mapping feature indices to their respective data + final_results = { + feat_idx: results[i] for i, feat_idx in enumerate(feature_indices) + } + + return final_results + + def calculate_standard_intermediate_tensor( + self, + attn_weights: torch.Tensor, + v: torch.Tensor, + feature_indices: List[int], + ) -> torch.Tensor: + v_cat = einops.rearrange( + v, "batch src_pos n_heads d_head -> batch src_pos (n_heads d_head)" + ) + + attn_weights_bcast = einops.repeat( + attn_weights, + "batch n_heads dest_pos src_pos -> batch dest_pos src_pos (n_heads d_head)", + d_head=self.model.cfg.d_head, + ) + + decomposed_z_cat = attn_weights_bcast * v_cat.unsqueeze(1) + + W_enc_selected = self.sae.W_enc[:, feature_indices] # [d_model, num_indices] + + per_src_pos_dfa = einops.einsum( + decomposed_z_cat, + W_enc_selected, + "batch dest_pos src_pos d_model, d_model num_features -> batch dest_pos src_pos num_features", + ) + + return per_src_pos_dfa + + def calculate_gqa_intermediate_tensor( + self, attn_weights: torch.Tensor, v: torch.Tensor, feature_indices: List[int] + ) -> torch.Tensor: + n_query_heads = attn_weights.shape[1] + n_kv_heads = v.shape[2] + expansion_factor = n_query_heads // n_kv_heads + v = v.repeat_interleave(expansion_factor, dim=2) + + v_cat = einops.rearrange( + v, "batch src_pos n_heads d_head -> batch src_pos (n_heads d_head)" + ) + + W_enc_selected = self.sae.W_enc[:, feature_indices] # [d_model, num_indices] + + # Initialize the result tensor + n_prompts, seq_len, _ = v_cat.shape + n_features = len(feature_indices) + per_src_pos_dfa = torch.zeros( + (n_prompts, seq_len, seq_len, n_features), device=v_cat.device + ) + + # Process in chunks + chunk_size = 16 # Adjust this based on your memory constraints + for i in range(0, seq_len, chunk_size): + chunk_end = min(i + chunk_size, seq_len) + + # Process a chunk of destination positions + attn_weights_chunk = attn_weights[:, :, i:chunk_end, :] + attn_weights_bcast_chunk = einops.repeat( + attn_weights_chunk, + "batch n_heads dest_pos src_pos -> batch dest_pos src_pos (n_heads d_head)", + d_head=self.model.cfg.d_head, + ) + decomposed_z_cat_chunk = attn_weights_bcast_chunk * v_cat.unsqueeze(1) + + per_src_pos_dfa_chunk = einops.einsum( + decomposed_z_cat_chunk, + W_enc_selected, + "batch dest_pos src_pos d_model, d_model num_features -> batch dest_pos src_pos num_features", + ) + + per_src_pos_dfa[:, i:chunk_end, :, :] = per_src_pos_dfa_chunk + + return per_src_pos_dfa diff --git a/SAEDashboard/sae_dashboard/feature_data.py b/SAEDashboard/sae_dashboard/feature_data.py new file mode 100644 index 0000000000000000000000000000000000000000..9b56ea12b87c1f7802263b3e16d5b68f75d9cee1 --- /dev/null +++ b/SAEDashboard/sae_dashboard/feature_data.py @@ -0,0 +1,211 @@ +from dataclasses import dataclass, field +from typing import Any, Callable, List, Literal, Optional + +from sae_dashboard.components import ( + ActsHistogramData, + DecoderWeightsDistribution, + FeatureTablesData, + GenericData, + LogitsHistogramData, + LogitsTableData, + SequenceData, + SequenceMultiGroupData, +) +from sae_dashboard.components_config import ( + ActsHistogramConfig, + FeatureTablesConfig, + GenericComponentConfig, + LogitsHistogramConfig, + LogitsTableConfig, + PromptConfig, + SequencesConfig, +) +from sae_dashboard.html_fns import HTML +from sae_dashboard.layout import SaeVisLayoutConfig + + +@dataclass +class DFAData: + dfaValues: List[List[float]] = field(default_factory=list) + dfaTargetIndex: List[int] = field(default_factory=list) + dfaMaxValue: float = 0.0 + + +@dataclass +class FeatureData: + """ + This contains all the data necessary to make the feature-centric visualization, for a single feature. See + diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + Args: + feature_idx: Index of the feature in question (not used within this class's methods, but used elsewhere). + cfg: Contains layout parameters which are important in the `get_html` function. + + The other args are the 6 possible components we might have in the feature-centric vis, i.e. this is where we + store the actual data. Note that one of these arguments is `prompt_data` which is only applicable in the prompt- + centric view. + + This is used in both the feature-centric and prompt-centric views. In the feature-centric view, a single one + of these objects creates the HTML for a single feature (i.e. a full screen). In the prompt-centric view, a single + one of these objects will create one column of the full screen vis. + """ + + feature_tables_data: FeatureTablesData = field( + default_factory=lambda: FeatureTablesData() + ) + acts_histogram_data: ActsHistogramData = field( + default_factory=lambda: ActsHistogramData() + ) + logits_table_data: LogitsTableData = field( + default_factory=lambda: LogitsTableData() + ) + logits_histogram_data: LogitsHistogramData = field( + default_factory=lambda: LogitsHistogramData() + ) + sequence_data: SequenceMultiGroupData = field( + default_factory=lambda: SequenceMultiGroupData() + ) + prompt_data: SequenceData = field(default_factory=lambda: SequenceData()) + dfa_data: Optional[dict[int, dict[str, Any]]] = None + decoder_weights_data: Optional[DecoderWeightsDistribution] = None + + def __post_init__(self): + if self.dfa_data is None: + self.dfa_data = {} + + def get_component_from_config(self, config: GenericComponentConfig) -> GenericData: + """ + Given a config object, returns the corresponding data object stored by this instance. For instance, if the input + is an `FeatureTablesConfig` instance, then this function returns `self.feature_tables_data`. + """ + CONFIG_CLASS_MAP = { + FeatureTablesConfig.__name__: self.feature_tables_data, + ActsHistogramConfig.__name__: self.acts_histogram_data, + LogitsTableConfig.__name__: self.logits_table_data, + LogitsHistogramConfig.__name__: self.logits_histogram_data, + SequencesConfig.__name__: self.sequence_data, + PromptConfig.__name__: self.prompt_data, + # Add DFA config here if we create a specific config for it + } + config_class_name = config.__class__.__name__ + assert ( + config_class_name in CONFIG_CLASS_MAP + ), f"Invalid component config: {config_class_name}" + return CONFIG_CLASS_MAP[config_class_name] + + def _get_html_data_feature_centric( + self, + layout: SaeVisLayoutConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + ) -> HTML: + """ + Returns the HTML object for a single feature-centric view. These are assembled together into the full feature- + centric view. + + Args: + decode_fn: We use this function to decode the token IDs into string tokens. + + Returns: + html_obj.html_data: + Contains a dictionary with keys equal to columns, and values equal to the HTML strings. These will be + turned into grid-column elements, and concatenated. + html_obj.js_data: + Contains a dictionary with keys = component names, and values = JavaScript data that will be used by the + scripts we'll eventually dump in. + """ + # Create object to store all HTML + html_obj = HTML() + + # For every column in this feature-centric layout, we add all the components in that column + for column_idx, column_components in layout.columns.items(): + for component_config in column_components: + component = self.get_component_from_config(component_config) + + html_obj += component._get_html_data( + cfg=component_config, + decode_fn=decode_fn, + column=column_idx, + id_suffix="0", # we only use this if we have >1 set of histograms, i.e. prompt-centric vis + ) + + return html_obj + + def _get_html_data_prompt_centric( + self, + layout: SaeVisLayoutConfig, + decode_fn: Callable[[int | list[int]], str | list[str]], + column_idx: int, + bold_idx: int | Literal["max"], + title: str, + ) -> HTML: + """ + Returns the HTML object for a single column of the prompt-centric view. These are assembled together into a full + screen of a prompt-centric view, and then they're further assembled together into the full prompt-centric view. + + Args: + decode_fn: We use this function to decode the token IDs into string tokens. + column_idx: This method only gives us a single column (of the prompt-centric vis), so we need to know which + column this is (for the JavaScript data). + bold_idx: Which index should be bolded in the sequence data. If "max", we default to bolding the max-act + token in each sequence. + title: The title for this column, which will be used in the JavaScript data. + + Returns: + html_obj.html_data: + Contains a dictionary with the single key `str(column_idx)`, representing the single column. This will + become a single grid-column element, and will get concatenated with others of these. + html_obj.js_data: + Contains a dictionary with keys = component names, and values = JavaScript data that will be used by the + scripts we'll eventually dump in. + """ + # Create object to store all HTML + html_obj = HTML() + + # Verify that we only have a single column + assert layout.columns.keys() == { + 0 + }, f"prompt_centric_layout should only have 1 column, instead found cols {layout.columns.keys()}" + assert ( + layout.prompt_cfg is not None + ), "prompt_centric_cfg should include a PromptConfig, but found None" + if layout.seq_cfg is not None: + assert (layout.seq_cfg.n_quantiles == 0) or ( + layout.seq_cfg.stack_mode == "stack-all" + ), "prompt_centric_layout should have stack_mode='stack-all' if n_quantiles > 0, so that it fits in 1 col" + + # Get the maximum color over both the prompt and the sequences + max_feat_act = max( + max(self.prompt_data.feat_acts), self.sequence_data.max_feat_act + ) + max_loss_contribution = max( + max(self.prompt_data.loss_contribution), + self.sequence_data.max_loss_contribution, + ) + + # For every component in the single column of this prompt-centric layout, add all the components in that column + for component_config in layout.columns[0]: + component = self.get_component_from_config(component_config) + + html_obj += component._get_html_data( + cfg=component_config, + decode_fn=decode_fn, + column=column_idx, + id_suffix=str(column_idx), + component_specific_kwargs=dict( # only used by SequenceData (the prompt) + bold_idx=bold_idx, + permanent_line=True, + hover_above=True, + max_feat_act=max_feat_act, + max_loss_contribution=max_loss_contribution, + ), + ) + + # Add the title in JavaScript, and the empty title element in HTML + html_obj.html_data[column_idx] = ( + f"
\n{html_obj.html_data[column_idx]}" + ) + html_obj.js_data["gridColumnTitlesData"] = {str(column_idx): title} + + return html_obj diff --git a/SAEDashboard/sae_dashboard/feature_data_generator.py b/SAEDashboard/sae_dashboard/feature_data_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..ca6616e1f3b0036a877a4f34a5aaf3eecd9adcab --- /dev/null +++ b/SAEDashboard/sae_dashboard/feature_data_generator.py @@ -0,0 +1,313 @@ +from pathlib import Path +from typing import Any, Dict, List + +import einops +import numpy as np +import torch +from jaxtyping import Float, Int +from sae_lens import SAE, HookedSAETransformer +from sae_lens.config import DTYPE_MAP as DTYPES +from sae_lens.saes.topk_sae import TopK +from torch import Tensor, nn +from tqdm.auto import tqdm + +from sae_dashboard.dfa_calculator import DFACalculator +from sae_dashboard.sae_vis_data import SaeVisConfig +from sae_dashboard.transformer_lens_wrapper import to_resid_direction +from sae_dashboard.utils_fns import RollingCorrCoef + +Arr = np.ndarray + + +class FeatureDataGenerator: + def __init__( + self, + cfg: SaeVisConfig, + tokens: Int[Tensor, "batch seq"], + model: HookedSAETransformer, + encoder: SAE[Any], + ): + self.cfg = cfg + self.model = model + self.encoder = encoder + self.token_minibatches = self.batch_tokens(tokens) + self.dfa_calculator = ( + DFACalculator(model.model, encoder) if cfg.use_dfa else None # type: ignore + ) + + if cfg.use_dfa: + assert ( + "hook_z" in encoder.cfg.hook_name + ), f"DFAs are only supported for hook_z, but got {encoder.cfg.hook_name}" + + @torch.inference_mode() + def batch_tokens( + self, tokens: Int[Tensor, "batch seq"] + ) -> list[Int[Tensor, "batch seq"]]: + # Get tokens into minibatches, for the fwd pass + token_minibatches = ( + (tokens,) + if self.cfg.minibatch_size_tokens is None + else tokens.split(self.cfg.minibatch_size_tokens) + ) + token_minibatches = [tok.to(self.cfg.device) for tok in token_minibatches] + + return token_minibatches + + @torch.inference_mode() + def get_feature_data( # type: ignore + self, + feature_indices: list[int], + progress: list[tqdm] | None = None, # type: ignore + ): # type: ignore + # Create lists to store the feature activations & final values of the residual stream + all_feat_acts = [] + all_dfa_results = {feature_idx: {} for feature_idx in feature_indices} + total_prompts = 0 + + # Create objects to store the data for computing rolling stats + corrcoef_neurons = RollingCorrCoef() + corrcoef_encoder = RollingCorrCoef(indices=feature_indices, with_self=True) + + # Get encoder & decoder directions + feature_out_dir = self.encoder.W_dec[feature_indices] # [feats d_autoencoder] + feature_resid_dir = to_resid_direction( + feature_out_dir, self.model # type: ignore + ) # [feats d_model] + + # ! Compute & concatenate together all feature activations & post-activation function values + for i, minibatch in enumerate(self.token_minibatches): + minibatch.to(self.cfg.device) + model_activation_dict = self.get_model_acts(i, minibatch) + primary_acts = model_activation_dict[ + self.model.activation_config.primary_hook_point # type: ignore + ].to( + self.encoder.device + ) # make sure acts are on the correct device + + # For TopK, compute all activations first, then select features + if isinstance(self.encoder.activation_fn, TopK): + # Get all features' activations + all_features_acts = self.encoder.encode(primary_acts) + # Then select only the features we're interested in + feature_acts = all_features_acts[:, :, feature_indices].to( + DTYPES[self.cfg.dtype] + ) + else: + # For other activation functions, use the masking context + with FeatureMaskingContext(self.encoder, feature_indices): + feature_acts = self.encoder.encode(primary_acts).to( + DTYPES[self.cfg.dtype] + ) + + self.update_rolling_coefficients( + model_acts=primary_acts, + feature_acts=feature_acts, + corrcoef_neurons=corrcoef_neurons, + corrcoef_encoder=corrcoef_encoder, + ) + + # Add these to the lists (we'll eventually concat) + all_feat_acts.append(feature_acts) + + # Calculate DFA + if self.cfg.use_dfa and self.dfa_calculator: + max_value_indices = torch.argmax(feature_acts, dim=1) + batch_dfa_results = self.dfa_calculator.calculate( + model_activation_dict, + self.model.hook_layer, # type: ignore + feature_indices, + max_value_indices, + ) + for feature_idx, feature_data in batch_dfa_results.items(): + for prompt_idx in range(feature_data.shape[0]): + global_prompt_idx = total_prompts + prompt_idx + all_dfa_results[feature_idx][global_prompt_idx] = { + "dfaValues": feature_data[prompt_idx][ + "dfa_values" + ].tolist(), + "dfaTargetIndex": int( + feature_data[prompt_idx]["dfa_target_index"] + ), + "dfaMaxValue": float( + feature_data[prompt_idx]["dfa_max_value"] + ), + } + + total_prompts += len(minibatch) + + # Update the 1st progress bar (fwd passes & getting sequence data dominates the runtime of these computations) + if progress is not None: + progress[0].update(1) + + all_feat_acts = torch.cat(all_feat_acts, dim=0) + + return ( + all_feat_acts, + torch.tensor([]), # all_resid_post, no longer used + feature_resid_dir, + feature_out_dir, + corrcoef_neurons, + corrcoef_encoder, + all_dfa_results, + ) + + @torch.inference_mode() + def get_model_acts( + self, + minibatch_index: int, + minibatch_tokens: torch.Tensor, + use_cache: bool = True, + ) -> Dict[str, torch.Tensor]: + """ + A function that gets the model activations for a given minibatch of tokens. + Uses np.memmap for efficient caching. + """ + if self.cfg.cache_dir is not None: + cache_path = self.cfg.cache_dir / f"model_activations_{minibatch_index}.pt" + if use_cache and cache_path.exists(): + activation_dict = load_tensor_dict_torch(cache_path, self.cfg.device) + else: + activation_dict = self.model.forward( + minibatch_tokens.to("cpu"), return_logits=False # type: ignore + ) + save_tensor_dict_torch(activation_dict, cache_path) + else: + activation_dict = self.model.forward( + minibatch_tokens.to("cpu"), return_logits=False # type: ignore + ) + + return activation_dict + + @torch.inference_mode() + def update_rolling_coefficients( + self, + model_acts: Float[Tensor, "batch seq d_in"], + feature_acts: Float[Tensor, "batch seq feats"], + corrcoef_neurons: RollingCorrCoef | None, + corrcoef_encoder: RollingCorrCoef | None, + ) -> None: + """ + + Args: + model_acts: Float[Tensor, "batch seq d_in"] + The activations of the model, which the SAE was trained on. + feature_idx: list[int] + The features we're computing the activations for. This will be used to index the encoder's weights. + corrcoef_neurons: Optional[RollingCorrCoef] + The object storing the minimal data necessary to compute corrcoef between feature activations & neurons. + corrcoef_encoder: Optional[RollingCorrCoef] + The object storing the minimal data necessary to compute corrcoef between pairwise feature activations. + """ + # Update the CorrCoef object between feature activation & neurons + if corrcoef_neurons is not None: + corrcoef_neurons.update( + einops.rearrange(feature_acts, "batch seq feats -> feats (batch seq)"), + einops.rearrange(model_acts, "batch seq d_in -> d_in (batch seq)"), + ) + + # Update the CorrCoef object between pairwise feature activations + if corrcoef_encoder is not None: + corrcoef_encoder.update( + einops.rearrange(feature_acts, "batch seq feats -> feats (batch seq)"), + einops.rearrange(feature_acts, "batch seq feats -> feats (batch seq)"), + ) + + +def save_tensor_dict_torch(tensor_dict: Dict[str, torch.Tensor], filename: Path): + torch.save(tensor_dict, filename) + + +def load_tensor_dict_torch(filename: Path, device: str) -> Dict[str, torch.Tensor]: + return torch.load( + filename, map_location=torch.device(device) + ) # Directly load to GPU + + +class FeatureMaskingContext: + def __init__(self, sae: SAE[Any], feature_idxs: List[int]): + self.sae = sae + self.feature_idxs = feature_idxs + self.original_weight = {} + + def __enter__(self): + ## W_dec + self.original_weight["W_dec"] = getattr(self.sae, "W_dec").data.clone() + # mask the weight + masked_weight = self.sae.W_dec[self.feature_idxs] + # set the weight + setattr(self.sae, "W_dec", nn.Parameter(masked_weight)) + + ## W_enc + # clone the weight. + self.original_weight["W_enc"] = getattr(self.sae, "W_enc").data.clone() + # mask the weight + masked_weight = self.sae.W_enc[:, self.feature_idxs] + # set the weight + setattr(self.sae, "W_enc", nn.Parameter(masked_weight)) + + # Handle architecture as either attribute or method + architecture = self.sae.cfg.architecture + if callable(architecture): + architecture = architecture() + + if architecture in [ + "standard", + "standard_transcoder", + "transcoder", + "skip_transcoder", + ]: + ## b_enc + self.original_weight["b_enc"] = getattr(self.sae, "b_enc").data.clone() + # mask the weight + masked_weight = self.sae.b_enc[self.feature_idxs] # type: ignore + # set the weight + setattr(self.sae, "b_enc", nn.Parameter(masked_weight)) + + elif architecture in ["jumprelu", "jumprelu_transcoder"]: + ## b_enc + self.original_weight["b_enc"] = getattr(self.sae, "b_enc").data.clone() + # mask the weight + masked_weight = self.sae.b_enc[self.feature_idxs] # type: ignore + # set the weight + setattr(self.sae, "b_enc", nn.Parameter(masked_weight)) + + ## threshold + self.original_weight["threshold"] = getattr( + self.sae, "threshold" + ).data.clone() + # mask the weight + masked_weight = self.sae.threshold[self.feature_idxs] # type: ignore + # set the weight + setattr(self.sae, "threshold", nn.Parameter(masked_weight)) + + elif architecture in ["gated", "gated_transcoder"]: + ## b_gate + self.original_weight["b_gate"] = getattr(self.sae, "b_gate").data.clone() + # mask the weight + masked_weight = self.sae.b_gate[self.feature_idxs] # type: ignore + # set the weight + setattr(self.sae, "b_gate", nn.Parameter(masked_weight)) + + ## r_mag + self.original_weight["r_mag"] = getattr(self.sae, "r_mag").data.clone() + # mask the weight + masked_weight = self.sae.r_mag[self.feature_idxs] # type: ignore + # set the weight + setattr(self.sae, "r_mag", nn.Parameter(masked_weight)) + + ## b_mag + self.original_weight["b_mag"] = getattr(self.sae, "b_mag").data.clone() + # mask the weight + masked_weight = self.sae.b_mag[self.feature_idxs] # type: ignore + # set the weight + setattr(self.sae, "b_mag", nn.Parameter(masked_weight)) + else: + raise (ValueError("Invalid architecture")) + + return self + + def __exit__(self, exc_type, exc_value, traceback): # type: ignore + # set everything back to normal + for key, value in self.original_weight.items(): + setattr(self.sae, key, nn.Parameter(value)) diff --git a/SAEDashboard/sae_dashboard/html/acts_histogram_template.html b/SAEDashboard/sae_dashboard/html/acts_histogram_template.html new file mode 100644 index 0000000000000000000000000000000000000000..c950af61a9c465abdc245c0520919e7af115921c --- /dev/null +++ b/SAEDashboard/sae_dashboard/html/acts_histogram_template.html @@ -0,0 +1,2 @@ + +
diff --git a/SAEDashboard/sae_dashboard/html/feature_tables_template.html b/SAEDashboard/sae_dashboard/html/feature_tables_template.html new file mode 100644 index 0000000000000000000000000000000000000000..c0b79f6f4842d87535fd4e04244f3c88b2be2126 --- /dev/null +++ b/SAEDashboard/sae_dashboard/html/feature_tables_template.html @@ -0,0 +1,2 @@ + +
diff --git a/SAEDashboard/sae_dashboard/html/logits_histogram_template.html b/SAEDashboard/sae_dashboard/html/logits_histogram_template.html new file mode 100644 index 0000000000000000000000000000000000000000..d83cf154bceed4d893500639eee6bc1958b1fe5c --- /dev/null +++ b/SAEDashboard/sae_dashboard/html/logits_histogram_template.html @@ -0,0 +1,2 @@ + +
diff --git a/SAEDashboard/sae_dashboard/html/logits_table_template.html b/SAEDashboard/sae_dashboard/html/logits_table_template.html new file mode 100644 index 0000000000000000000000000000000000000000..2224e0d1b7f1e764f269ef788f0c0e7091dbb4a2 --- /dev/null +++ b/SAEDashboard/sae_dashboard/html/logits_table_template.html @@ -0,0 +1,2 @@ + +
diff --git a/SAEDashboard/sae_dashboard/html/sequences_group_template.html b/SAEDashboard/sae_dashboard/html/sequences_group_template.html new file mode 100644 index 0000000000000000000000000000000000000000..46790a4a1ea947aea5bb0d261e081e1725f53303 --- /dev/null +++ b/SAEDashboard/sae_dashboard/html/sequences_group_template.html @@ -0,0 +1,2 @@ + +
diff --git a/SAEDashboard/sae_dashboard/html_fns.py b/SAEDashboard/sae_dashboard/html_fns.py new file mode 100644 index 0000000000000000000000000000000000000000..87731669af37e93a302faae8717d391b4f5f5afd --- /dev/null +++ b/SAEDashboard/sae_dashboard/html_fns.py @@ -0,0 +1,331 @@ +import json +import re +from pathlib import Path +from typing import Any + +from matplotlib import colors + +from sae_dashboard.components_config import Column +from sae_dashboard.utils_fns import apply_indent, deep_union + +BG_COLOR_MAP = colors.LinearSegmentedColormap.from_list( + "bg_color_map", ["white", "darkorange"] +) + + +def bgColorMap(x: float): + """ + Returns background color, which is a linear interpolation of x as follows: + + 0: white + 1: darkorange + """ + # assert min(x, 1-x) > -1e-6, f"Expected 0 <= x <= 1, but got {x}" + x2 = max(0.0, min(1.0, x)) + return colors.rgb2hex(BG_COLOR_MAP(x2)) + + +def uColorMap(x: float) -> str: + """ + Returns underline color, which is a linear interpolation of x as follows: + + -1: blue + 0 : transparent + +1: red + """ + # assert min(x-1, 1-x) > -1e-6, f"Expected -1 <= x <= 1, but got {x}" + x2 = max(-1.0, min(1.0, x)) + + if x2 < 0: + v = int(255 * (x2 + 1)) + return f"rgb({v},{v},255)" + else: + v = int(255 * (1 - x2)) + return f"rgb(255,{v},{v})" + + +class HTML: + html_data: dict[int | tuple[int, int], str] + js_data: dict[str, dict[str, Any]] + """ + Contains HTML strings & JavaScript data to populate them. + + Args: + html_data: + Keys are the columns we'll be storing that HTML in; values are the HTML strings. When we `__add__` 2 objects + together, we concat these across columns. When we use `get_html`, again we'll concat across columns + (wrapping each column's contents in a `grid-item` div), and wrap everything in a `grid-container`. + + js_data: + Structure of this dict (for feature-centric vis) is: + 'AGGDATA' + (all the statistical data across all features) + 'DASHBOARD_DATA' + '0' + tokenData + (data to generate the sequence groups, which will be fed into `tokenScript.js` as + `DATA.tokenData`) + featureTablesData + (data to generate the feature tables, which will be fed into `featureTablesScript.js` as + `DATA.featureTablesData`) + ... + '1' + tokenData + ... + + where the indices 0, 1, ... are the feature indices. For prompt-centric vis, it's the same except that the + 0, 1 ... feature indices keys are actually '|'-separated options for the dropdowns, looking like + "act_quantile|'first' (6)". + + This is the object returned by each of the `_get_html_data` methods in the classes in `data_storing_fns.py`. It + helps standardize the way we create & add to our final HTML vis. + """ + + def __init__( + self, + html_data: dict[int | tuple[int, int], str] | None = None, + js_data: dict[str, dict[str, Any]] | None = None, + ) -> None: + self.html_data = html_data if (html_data is not None) else {} + self.js_data = js_data if (js_data is not None) else {} + + def __add__(self, other: "HTML") -> "HTML": + """ + Merges the JavaScript data and the HTML string together, and returns a new HTML object. + + Further explanation of how this works, for each of the HTML components: + + html_data: + The HTML data for the same column is concatenated together. Note that the column keys can be ints like 1 + or tuples like (1, 0), (1, 1) ... (the latter is what we do when content in a single column overflows + onto multiple columns). + + + This is how we take separate returned objects from the classes in `data_storing_fns.py` and merge them together + into a single object. + """ + # Merge HTML data by concatenating strings in every column + html_data = self.html_data.copy() + for k, v in other.html_data.items(): + html_data[k] = html_data.get(k, "") + v + + # Merge JavaScript data by taking union over data dicts + js_data = deep_union(self.js_data, other.js_data) + + return HTML(html_data, js_data) + + def get_html( + self, + layout_columns: dict[int | tuple[int, int], Column], + layout_height: int, + filename: str | Path, + first_key: str, + # dropdown_names: list[str], # TODO - not implemented yet, I'm guessing best way is to dump this in like START_KEY + ) -> None: + """ + Returns the HTML string, together with JavaScript and CSS. + + Args: + layout: The `SaeVisLayoutConfig` object which contains important data about the full layout (not + component-specific because this has already been handled; either column-specific e.g. width + or applying to the whole vis e.g. height). + filename: The name of the file to save the HTML to. If `single_file` is False, then we'll take the + stem of this file but with "json" suffix to save the data. + first_key: The key that our vis will be initialized with. + + Further explanation of how this works, for each of the HTML components: + + html_data: + We'll concat all the strings for each column together, each each wrapped inside a `grid-column` div, and + then the whole thing will be wrapped in `grid-container`. + + js_data: + The js_data is initially a dict mapping JavaScript filenames "Script.js" to dictionaries which + will be dumped into the first line of those files + """ + html_str = "" + + # Check arguments + if isinstance(filename, str): + filename = Path(filename) + assert ( + filename.suffix == ".html" + ), f"Expected {filename.resolve()!r} to have .html suffix" + assert ( + filename.parent.exists() + ), f"Expected {filename.parent.resolve()!r} to exist" + assert self.js_data.keys() == {"AGGDATA", "DASHBOARD_DATA"} + + # ! JavaScript + + # Get path where we store all template JavaScript files + js_path = Path(__file__).parent / "js" + assert all( + file.suffix == ".js" for file in js_path.iterdir() + ), f"Expected all files in {js_path.resolve()} to have .js suffix" + + # Define the contents of the `createVis` function, which takes in some `DATA[key]` object, and uses it to fill + # in HTML. We create this by concatenating all files referred to in the keys of the `DATA[key]` object, since + # its keys are just JS filenames with the `Script.js` suffix removed. Lastly, note that we put the histograms + # scripts first, because hovering over tokens might require a relayout on a histogram, so it needs to exist! + js_data_filenames = next(iter(self.js_data["DASHBOARD_DATA"].values())).keys() + js_data_filenames = [ + name.replace("Data", "Script.js") for name in js_data_filenames + ] + js_data_filenames = sorted( + js_data_filenames, key=lambda x: "histograms" not in x.lower() + ) + js_create_vis = "\n".join( + [(js_path / js_name).read_text() for js_name in js_data_filenames] + ) + + # Read in the code which will dynamically create dropdowns from the DATA keys + js_create_dropdowns = (js_path / "_setupPageScript.js").read_text() + + # Put everything together, in the correct order (including defining DATA & creating dropdowns from it, which + # is done in DOMContentLoaded). Note, double curly braces are used to escape single curly braces in f-strings. + js_str = f""" +document.addEventListener("DOMContentLoaded", function(event) {{ + const ALL_DATA = defineData(); + setupPage(ALL_DATA['DASHBOARD_DATA'], ALL_DATA['AGGDATA']); +}}); + +function setupPage(DASHBOARD_DATA, AGGDATA) {{ + // Dynamically creates dropdowns from the data (by parsing its keys), and causes `createVis` to be called whenever + // the dropdowns change. This includes the initial call to `createVis` with the first key, which is START_KEY. + + const START_KEY = {json.dumps(first_key)}; + {apply_indent(js_create_dropdowns, " " * 4)} +}} + +function createVis(DATA) {{ + // Create the vis from the data (this is where all the JavaScript files in this repo get dumped into). The DATA + // object here will be DASHBOARD_DATA["8"] in the feature-centric vis, or DASHBOARD_DATA["act_quantile|'first' (6)"] + // in the prompt-centric vis). + + {apply_indent(js_create_vis, " " * 4)} +}} + +function defineData() {{ + // Returns the data - see the docstring of the Python HTML class to understand the structure of this object. + + return {json.dumps(self.js_data)}; +}} +""" + + # ! CSS + + # We simply merge the different CSS files together (they're only kept separate for modularity) + css_str = "\n".join( + [file.read_text() for file in (Path(__file__).parent / "css").iterdir()] + ) + # TODO - add ability for people to control the border (this will be an attribute of the layout config object, like height is, and we'll implement it by directly editing `css_str`) + + # ! HTML + + # Get the HTML string (by column) + for col_idx, html_str_column in self.html_data.items(): + # Ideally layout.columns[col_idx] would be the column object, but we have to deal with 2 special cases: + # (1) we're doing the prompt-centric view, so we always want to use layout.columns[0] + # (2) our column overflowed, then col_idx is actually a tuple (x, y), and we want layout.columns[x] + + if isinstance(col_idx, int): + # Deal with case (1) here, as well as the general case + column = layout_columns[min(len(layout_columns) - 1, col_idx)] + column_id = f"column-{col_idx}" + elif isinstance(col_idx, tuple): + # Deal with case (2) here + column = layout_columns[col_idx[0]] + column_id = "column-" + "-".join(map(str, col_idx)) + else: + raise TypeError( + f"Expected col_idx to be int or tuple, but got {col_idx}" + ) + html_str += "\n\n" + grid_column( + html_str_column, column=column, height=layout_height, id=column_id + ) + + # # Remove empty style attributes + # html_str = re.sub(r' style=""', "", html_str) + + # Create the full HTML string: wrap everything in `grid-container`, and also create object for holding dropdowns + full_html_str = f""" + + +
+ {apply_indent(html_str, " " * 4)} +
+ + + + + + + +""" + + # Polish the HTML string in some ways (e.g. there's lots of line breaks below 'grid-container' which we don't want) + pattern = r"
\n\n+" + full_html_str = re.sub( + pattern, r"
\n", full_html_str + ) + + filename.write_text(full_html_str) + + +def grid_column( + html_contents: str, + column: Column, + height: int | None, + # layout: SaeVisLayoutConfig, + id: str | None = None, + indent: str = " " * 4, +) -> str: + """ + Wraps the HTML contents in a 'grid-column' element. + + Args: + html_contents: The string we're wrapping + column: The `Column` object which contains important data about the column, e.g. width + height: The height of the column (this is only used if the column has a fixed height) + id: The id of the `grid-column` element (this will usually be `column-0`, `column-1`, etc.) + + We pass the `Column` object to this function, because it contains important data about the column, such as its + width. We also pass the `SaeVisLayoutConfig` object, because it contains important data about the full layout (not + column-specific). + """ + # height_str = f"height: {height}px; " if height is not None else "" + # margin_str = f"margin-left: {left_margin}px;" if left_margin is not None else "" + + # Set styles for this column + style_str = "" + if (column.width is not None) or (height is not None): + width_str = f"width: {column.width}px; " if column.width is not None else "" + height_str = f"max-height: {height}px; " if height is not None else "" + style_str = f"style='{width_str}{height_str}'" + + # Set ID for this column + id_str = f"id='{id}' " if id is not None else "" + + # Define full HTML string + html_str = f"""
\n{apply_indent(html_contents, indent)}
""" + + # # Un-indent the final
+ # html_str = html_str[:-len(f"{indent}
")] + "\n" + + return html_str + + +# # TODO - why doesn't fetch work on browsers? Annoying security thing, means I need to have the data in just one file +# filename_json = filename.with_suffix(".json") +# filename_json.write_text(json.dumps(self.js_data)) +# js_str_data_dump = r""" +# fetch('FILENAME'}) +# .then(response => response.json()) +# .then(data => {var DATA = data;}) +# .catch(error => console.error('Error loading the JSON file:', error)); +# """.replace("FILENAME", filename_json.name) diff --git a/SAEDashboard/sae_dashboard/js/_setupPageScript.js b/SAEDashboard/sae_dashboard/js/_setupPageScript.js new file mode 100644 index 0000000000000000000000000000000000000000..dc214471e0935d888d5c1334ceeabb7467e105e7 --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/_setupPageScript.js @@ -0,0 +1,111 @@ +// The start key has already been user-defined, we need to check it's present in DASHBOARD_DATA +if (!Object.keys(DASHBOARD_DATA).includes(START_KEY)) { + console.error(`No data available for key: ${START_KEY}`); +} +const startParts = START_KEY.split('|'); + +// Function which will measure the width of a key (used for dynamically setting the width of our dropdowns) +function measureTextWidth(text, font) { + // Create a temporary span element + const span = document.createElement("span"); + span.style.visibility = "hidden"; // Make sure it's not visible + span.style.position = "absolute"; // Take it out of document flow + span.style.font = font; // Apply font styling similar to the select options + span.textContent = text; + document.body.appendChild(span); + const width = span.offsetWidth; // Get the width of the span + document.body.removeChild(span); // Remove the span from the body + return width; +} + +// Check if there's only one key, in which case we have no selection to make +if (Object.keys(DASHBOARD_DATA).length === 1) { + + const onlyKey = Object.keys(DASHBOARD_DATA)[0]; + createVis(DASHBOARD_DATA[onlyKey]); + +} else { + + // Assuming `DASHBOARD_DATA` is available and d3 has been included + const parsedKeys = Object.keys(DASHBOARD_DATA).map(key => key.split("|")); + + // Determine `n` - the number of dropdowns needed + const n = parsedKeys[0].length; + + // Create a structure to store options for each dropdown + const options = Array.from({ length: n }, () => new Set()); + + // Populate options for each dropdown + parsedKeys.forEach(parts => { + parts.forEach((part, index) => options[index].add(part)); + }); + + // Select the container for the dropdowns + const container = d3.select('#dropdown-container'); + + // Create the dropdowns + options.forEach((opts, i) => { + // We wrap each `select` element in a `.select` div, for styling reasons) + const selectDiv = container.append('div').attr('class', 'select'); + const selectElem = selectDiv.append('select').attr('id', `select-${i}`); + let maxWidth = 0; + + // Set the title of this dropdown + + + opts.forEach(opt => { + // Add this as an option + const optionElem = selectElem.append('option').text(opt).attr('value', opt); + + // If it matches the start key, set it to true + if (startParts[i] === opt) { + optionElem.attr('selected', true); + } + + // Calculate the width of this option, and possibly update the max width (for the select div) + const width = measureTextWidth(opt, "1em system-ui"); + if (width > maxWidth) { + maxWidth = width; + } + }); + + // Set the width of the select div to the max width + 45px (for the dropdown arrow) + selectDiv.style('width', `${maxWidth + 45}px`); + + // Add event listener to update the visualization (and the selection options) when the dropdown changes + selectElem.on('change', function() { + updateDropdowns(); + }); + }); + + // This gets called every time the dropdowns are updated + function updateDropdowns() { + + // Empty all grid-column elements + d3.selectAll(".grid-column").each(function() { + d3.select(this).selectAll("*").html(""); + }); + + // Get the current value of each dropdown + const currentSelections = options.map((_, i) => d3.select(`#select-${i}`).property('value')); + + // Disable options that are not available based on the current selections + options.forEach((opts, i) => { + const select = d3.select(`#select-${i}`); + select.selectAll('option').each(function() { + const optionValue = d3.select(this).attr('value'); + const potentialKey = [...currentSelections.slice(0, i), optionValue, ...currentSelections.slice(i + 1)].join('|'); + d3.select(this).attr('disabled', !DASHBOARD_DATA.hasOwnProperty(potentialKey) ? true : null); + }); + }); + + // Parse these options into the key for our DASHBOARD_DATA object + const selectedKey = currentSelections.join('|'); + + // Create vis using that data + createVis(DASHBOARD_DATA[selectedKey]); + } + + // Initial trigger + updateDropdowns(); +} \ No newline at end of file diff --git a/SAEDashboard/sae_dashboard/js/actsHistogramScript.js b/SAEDashboard/sae_dashboard/js/actsHistogramScript.js new file mode 100644 index 0000000000000000000000000000000000000000..7f59c01cd4aa08edbb33f696600f92e77b76d065 --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/actsHistogramScript.js @@ -0,0 +1,86 @@ +// ! Using `DATA.actsHistogramData` to fill in the activations histogram + +function createActsLine(color, width, height) { + return { + type: 'line', line: {color: color, width: width}, + x0: 0, x1: 0, xref: 'x', + y0: 0, y1: height, yref: 'paper', + visible: false, + } +} + +function createActsAnnotation() { + return { + text: '', showarrow: false, + x: 0, xref: 'x', + y: 0.9, yref: 'paper', + xshift: 3, align: 'left', xanchor: 'left', + visible: false, + } +} + +function setupActsHistogram(histId, histData) { + + // Create layout. This has 2 lines with annotations, both initially set to invisible (first is for dynamic on-hover + // and second is for static, for the prompt-centric vis). We need to define them both so that when JavaScript alters + // 'shapes[0]' or 'shapes[1]' we get no error + var layout = { + paper_bgcolor: 'white', + plot_bgcolor: 'white', + xaxis: { + gridcolor: '#eee', + zerolinecolor: '#eee', + tickvals: histData.ticks, + range: [0, 1.2 * Math.max(...histData.x)], + }, + yaxis: {gridcolor: '#eee', zerolinecolor: '#eee'}, + barmode: 'relative', + bargap: 0.01, + showlegend: false, + margin: {l: 50, r: 25, b: 25, t: 25, pad: 4}, + paper_bgcolor: 'rgba(0,0,0,0)', + plot_bgcolor: 'rgba(0,0,0,0)', + responsive: true, + shapes: [createActsLine('black', 2, 1.0), createActsLine('black', 1, 0.9)], + annotations: [createActsAnnotation(), createActsAnnotation()], + }; + + // Create traces (this is simple) + var traces = [{ + x: histData.x, + y: histData.y, + type: 'bar', + marker: {color: histData.colors}, + }]; + + // Plot the histogram + Plotly.newPlot(histId, traces, layout, {responsive: true, displayModeBar: false}); + + // Maybe add title (if the title already existed then we update it, otherwise we create a new one) + if(histData.title) { + var histogramElement = document.getElementById(histId); + var existingTitleElement = histogramElement.previousSibling; + if (existingTitleElement && existingTitleElement.tagName === 'H4') { + existingTitleElement.innerHTML = histData.title; + } else { + var titleElement = document.createElement('h4'); + titleElement.innerHTML = histData.title; + histogramElement.parentNode.insertBefore(titleElement, histogramElement); + } + } +} + +// 'actsHistogramData' is a dictionary mapping suffixes to histogram data (to make each histogram unique) +// We iterate over it, and create a histogram for each one +Object.entries(DATA.actsHistogramData).forEach(([suffix, histData]) => { + var t0 = performance.now(); + + histId = `histogram-acts-${suffix}`; + setupActsHistogram(histId, histData); + + var t1 = performance.now(); + console.log(`HTML for ${histId} generated in ${(t1 - t0).toFixed(1)} ms`); +}); + + + diff --git a/SAEDashboard/sae_dashboard/js/featureTablesScript.js b/SAEDashboard/sae_dashboard/js/featureTablesScript.js new file mode 100644 index 0000000000000000000000000000000000000000..a57eea0810279f2b8dbffe61625d8f3eeff1ab3f --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/featureTablesScript.js @@ -0,0 +1,73 @@ +// ! Using `DATA.featureTablesData` to create & fill in the feature tables + +function setupFeatureTables(tablesContainerId, tablesData, tableMetaData) { + + // Fetch table data (singular), if it doesn't exist then return early + const tableData = tablesData[tableMetaData.dataKey] || null; + if (tableData === null) { + return; + } + + // Get table container from its ID + const featureTablesDiv = d3.select(`#${tablesContainerId}`); + + // Add a div to hold the header and table, give it a unique ID, and empty it (if that div already existed) + const tableContainerId = `${tableMetaData.dataKey}-${tablesContainerId}`; + const tableContainer = featureTablesDiv.append("div").attr("id", tableContainerId); + tableContainer.selectAll("*").remove(); + + // Add the title + tableContainer.append("h4").html(tableMetaData.title); + + // Create the table, and header / body + const table = tableContainer.append("table").attr("class", "table-left"); + const thead = table.append("thead"); + const tbody = table.append("tbody"); + const headerRow = thead.append("tr"); + + // Append the 3 columns to this table's header row + tableMetaData.columns.forEach(col => { + headerRow.append("td") + .attr("class", col === "Index" ? "left-aligned" : "right-aligned") + .html(col); + }); + + // Append our data to the tbody + const rows = tbody.selectAll('tr') + .data(tableData) + .enter() + .append('tr'); + + rows.selectAll('td') + .data(row => Object.values(row)) + .enter() + .append('td') + .attr('class', (d, i) => i === 0 ? 'left-aligned' : 'right-aligned') + .html(d => d); +} + +// Define some data which will tell us how to create our tables (this isn't a function of data, it's always the same) +const featureTablesMetaData = [ + {title: "NEURON ALIGNMENT", columns: ["Index", "Value", "% of L1"], dataKey: "neuronAlignment"}, + {title: "CORRELATED NEURONS", columns: ["Index", "Pearson Corr.", "Cosine Sim."], dataKey: "correlatedNeurons"}, + {title: "CORRELATED FEATURES", columns: ["Index", "Pearson Corr.", "Cosine Sim."], dataKey: "correlatedFeatures"}, + {title: "CORRELATED FEATURES (B-ENCODER)", columns: ["Index", "Pearson Corr.", "Cosine Sim."], dataKey: "correlatedFeaturesB"}, +] + +// 'featureTablesData' is a dictionary mapping suffixes to feature tables data (to make each table unique) +// We iterate over it, and create a table for each one +Object.entries(DATA.featureTablesData).forEach(([suffix, tablesData]) => { + var t0 = performance.now(); + + // For each set of tables, we need to empty it, then create each of the new tables (up to 3) + tablesContainerId = `feature-tables-${suffix}`; + featureTablesMetaData.forEach(tableMetaData => { + setupFeatureTables(tablesContainerId, tablesData, tableMetaData); + }); + + var t1 = performance.now(); + console.log(`HTML for ${tablesContainerId} generated in ${(t1 - t0).toFixed(1)} ms`); +}); + + + diff --git a/SAEDashboard/sae_dashboard/js/gridColumnTitlesScript.js b/SAEDashboard/sae_dashboard/js/gridColumnTitlesScript.js new file mode 100644 index 0000000000000000000000000000000000000000..1434c01005c8495b2f05fecb1e6841429e68cc32 --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/gridColumnTitlesScript.js @@ -0,0 +1,15 @@ +// ! Using `DATA.gridColumTitlesData` to fill in the titles for each column + +if (Object.keys(DATA).includes("gridColumnTitlesData")) { + + // Iterate through the titles we've been given + Object.entries(DATA.gridColumnTitlesData).forEach(([columnIdx, title]) => { + + // Select the correct title-containing div + var titleDiv = d3.select(`#column-${columnIdx}-title`); + + // Empty this div, and fill it with new title + titleDiv.selectAll('*').remove(); + titleDiv.html(title); + }); +} \ No newline at end of file diff --git a/SAEDashboard/sae_dashboard/js/logitsHistogramScript.js b/SAEDashboard/sae_dashboard/js/logitsHistogramScript.js new file mode 100644 index 0000000000000000000000000000000000000000..205c0af1ed73eb9f4543f54658a7f1decba2f4a0 --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/logitsHistogramScript.js @@ -0,0 +1,94 @@ +// ! Using `DATA.logitsHistogramData` to fill in the feature tables + +function createLogitsLine(color, width, height) { + return { + type: 'line', line: {color: color, width: width}, + x0: 0, x1: 0, xref: 'x', + y0: 0, y1: height, yref: 'paper', + visible: false, + } +} + +function createLogitsAnnotation() { + return { + text: '', showarrow: false, + x: 0, xref: 'x', + y: 0.9, yref: 'paper', + xshift: 3, align: 'left', xanchor: 'left', + visible: false, + } +} + +function setupLogitsHistogram(histId, histData) { + + // Create layout. This has 2 lines with annotations, both initially set to invisible (first is for dynamic on-hover + // and second is for static, for the prompt-centric vis). We need to define them both so that when JavaScript + // alters 'shapes[0]' or 'shapes[1]' we get no error + var layout = { + paper_bgcolor: 'white', + plot_bgcolor: 'white', + xaxis: { + gridcolor: '#eee', + zerolinecolor: '#eee', + tickvals: histData.ticks, + range: [1.2 * Math.min(...histData.x), 1.2 * Math.max(...histData.x)], + }, + yaxis: {gridcolor: '#eee', zerolinecolor: '#eee'}, + barmode: 'relative', + bargap: 0.01, + showlegend: false, + margin: {l: 50, r: 25, b: 25, t: 25, pad: 4}, + paper_bgcolor: 'rgba(0,0,0,0)', + plot_bgcolor: 'rgba(0,0,0,0)', + responsive: true, + shapes: [createActsLine('black', 2, 1.0), createActsLine('black', 1, 0.9)], + annotations: [createLogitsAnnotation(), createLogitsAnnotation()], + }; + + // Create traces. This is a bit messier than for acts_histogram_script.js, because we have 2 different colors + traces = [ + { + x: histData.x.filter(value => value >= 0), + y: histData.y.filter((_, i) => histData.x[i] >= 0), + type: 'bar', + marker: {color: 'rgba(0,0,255,0.5)'} + }, + { + x: histData.x.filter(value => value < 0), + y: histData.y.filter((_, i) => histData.x[i] < 0), + type: 'bar', + marker: {color: 'rgba(255,0,0,0.5)'} + } + ]; + + // Plot the histogram + Plotly.newPlot(histId, traces, layout, {responsive: true, displayModeBar: false}); + + // Maybe add title (if the title already existed then we update it, otherwise we create a new one) + if(histData.title) { + var histogramElement = document.getElementById(histId); + var existingTitleElement = histogramElement.previousSibling; + if (existingTitleElement && existingTitleElement.tagName === 'H4') { + existingTitleElement.innerHTML = histData.title; + } else { + var titleElement = document.createElement('h4'); + titleElement.innerHTML = histData.title; + histogramElement.parentNode.insertBefore(titleElement, histogramElement); + } + } +} + +// 'DATA.ogitsHistogramData' is a dictionary mapping suffixes to histogram data (to make each histogram unique) +// We iterate over it, and create a histogram for each one +Object.entries(DATA.logitsHistogramData).forEach(([suffix, histData]) => { + var t0 = performance.now(); + + histId = `histogram-logits-${suffix}`; + setupLogitsHistogram(histId, histData); + + var t1 = performance.now(); + console.log(`HTML for ${histId} generated in ${(t1 - t0).toFixed(1)} ms`); +}); + + + diff --git a/SAEDashboard/sae_dashboard/js/logitsTableScript.js b/SAEDashboard/sae_dashboard/js/logitsTableScript.js new file mode 100644 index 0000000000000000000000000000000000000000..25cc28b044bec3acd72f13e5ff1f0a2c5e44f7e1 --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/logitsTableScript.js @@ -0,0 +1,72 @@ +// ! Using `DATA.logitsTableData` to fill in the pos/neg logit tables + +function setupLogitTables(logitsTableId, tablesData, tableMetaData) { + + // Fetch table data (singular) + const tableData = tablesData[tableMetaData.dataKey]; + + // Select the table container by its ID + const tablesContainer = d3.select(`#${logitsTableId}`); + + // Select the object that contains this particular table (negative or positive) + const tableId = `${tableMetaData.class}-${logitsTableId}`; + const tableContainer = tablesContainer.select(`#${tableId}`); + + // If this table container doesn't exist, create it + if (tableContainer.empty()) { + const section = tablesContainer.append("div").attr("class", tableMetaData.class); + section.append("h4").html(tableMetaData.title); + section.append("table").attr("id", tableId).attr("class", "table-left"); + } + + // Now we can select the table by its ID, empty data, and add new data + const table = tablesContainer.select(`#${tableId}`); + table.selectAll('tr').remove(); + + // Bind logits data to rows + const rows = table.selectAll('tr') + .data(tableData) + .enter() + .append('tr'); + + // Append token cell + rows.append('td') + .attr('class', 'left-aligned') + .append('code') + .style('background-color', d => d.color) + .text(d => d.symbol); + + // Append value cell + rows.append('td') + .attr('class', 'right-aligned') + .text(d => d.value.toFixed(2)); +} + +// Define some data which will tell us how to create our tables (this isn't a function of data, it's always the same) +var logitTablesMetaData = [ + {title: "NEGATIVE LOGITS", dataKey: "negLogits", class: "negative"}, + {title: "POSITIVE LOGITS", dataKey: "posLogits", class: "positive"}, +] + +// 'logitsTableData' is a dictionary mapping suffixes to logits table data (to make each logits table unique) +// We iterate over it, and create a logits table for each one +Object.entries(DATA.logitsTableData).forEach(([suffix, tablesData]) => { + var t0 = performance.now(); + + // For each set of (pos / neg) table pairs, we need to empty each of them, then create them again + // tablesContainerId = `feature-tables-${suffix}`; + // setupLogitTables(logitsTableId, "negative", tableData.negLogits); + // setupLogitTables(logitsTableId, "positive", tableData.posLogits); + + logitsTableId = `logits-table-${suffix}`; + logitTablesMetaData.forEach(tableMetaData => { + setupLogitTables(logitsTableId, tablesData, tableMetaData); + }); + + var t1 = performance.now(); + console.log(`HTML for ${logitsTableId} generated in ${(t1 - t0).toFixed(1)} ms`); +}); + + + + diff --git a/SAEDashboard/sae_dashboard/js/tokenScript.js b/SAEDashboard/sae_dashboard/js/tokenScript.js new file mode 100644 index 0000000000000000000000000000000000000000..7666a141678d3fa0703a1a6b00ff74856f8a8a0f --- /dev/null +++ b/SAEDashboard/sae_dashboard/js/tokenScript.js @@ -0,0 +1,216 @@ +function addLineHistogram(histogramID, shapeIndex, tok, xValue) { + // Updates histogram with a line (if the histogram exists) + // shapeIndex 0 is for on-hover, 1 is for permanent line + if (document.getElementById(histogramID)) { + Plotly.relayout(histogramID, { + [`shapes[${shapeIndex}].x0`]: xValue, + [`shapes[${shapeIndex}].x1`]: xValue, + [`shapes[${shapeIndex}].visible`]: true, + [`annotations[${shapeIndex}].x`]: xValue, + [`annotations[${shapeIndex}].text`]: `|${tok}|
${xValue.toFixed(3)}`, + [`annotations[${shapeIndex}].visible`]: true, + }); + } +} + +function removeLineHistogram(histogramID, shapeIndex) { + if (document.getElementById(histogramID)) { + Plotly.relayout(histogramID, { + [`shapes[${shapeIndex}].visible`]: false, + [`annotations[${shapeIndex}].visible`]: false, + }); + } +} + +function generateTokHtmlElement( + parent, tok, tokID, uColor, bgColor, isBold, featAct, tokenLogit, lossEffect, posToks, posVal, negToks, negVal, permanentLine, hide, idSuffix, +) { + // Figure out if previous token was active (this affects the construction of the tooltip) + let prevTokenActive = posToks.length + negToks.length > 0; + + // Create the token span (this will contain just the token, not the hoverdata) + let tokenSpan = parent.append("span") + .attr("class", "hover-text"); + + // Get the histogram ids + let histogramActsID = `histogram-acts-${idSuffix}`; + let histogramLogitsID = `histogram-logits-${idSuffix}`; + + // Put actual token in the tokenSpan object (i.e. the thing we see without hovering) + tokenSpan.append("span") + .attr("class", "token") + .style("background-color", bgColor) + .style("border-bottom", `4px solid ${uColor}`) + .style("font-weight", isBold ? "bold" : "normal") + .text(tok); + + // If hide is true, then we just show a box saying "no information was calculated for this token" + if (hide) { + // First define the tooltip div (added to the parent element, i.e. it's a sibling of the token span) + let tooltipHeight = 70; + let tooltipWidth = 150; + let tooltipDiv = parent.append("div") + .attr("class", "tooltip") + .style("height", tooltipHeight + "px") + .style("width", tooltipWidth + "px") + .style("font-size", "0.85em") + .style("white-space", "pre-wrap") + .style("align-items", "center") + .style("text-align", "center") + .style("padding", "15px") + .html("No information was calculated for this token, since you used compute_buffer=False."); + + // Add dynamic behaviour: show the tooltip on hover, and also add lines to the two histograms + tokenSpan.on('mouseover', function() { + tooltipDiv.style('display', 'flex'); + tooltipDiv.style('position', 'fixed'); + }) + tokenSpan.on('mousemove', function(event) { + tooltipDiv.style('left', `${event.clientX - tooltipWidth / 2}px`); + tooltipDiv.style('top', `${event.clientY + 20}px`); + }); + tokenSpan.on('mouseout', function() { + tooltipDiv.style('display', 'none'); + }); + + // If we're not hiding (because we only generated data for the bolded tokens), then create tooltip & add it on hover + } else { + + // First define the tooltip div (added to the parent element, i.e. it's a sibling of the token span) + let tooltipHeight = prevTokenActive ? 270 : 160; + let tooltipWidth = prevTokenActive ? 350 : 250; + let tooltipDiv = parent.append("div") + .attr("class", "tooltip") + .style("height", tooltipHeight + "px") + .style("width", tooltipWidth + "px") + .style("align-items", "center") + .style("text-align", "center"); + + // Next, create a table container, to contain 2 tables: one with basics (acts & loss effect), one with per-token logits + let tableContainer = tooltipDiv.append("div").attr("class", "table-container"); + + // Creat the first table + let tokRow = `Token${tok} (${tokID})`; + let featActRow = `Feature activation${featAct >= 0 ? '+' : ''}${featAct.toFixed(3)}`; + let lossRow = `Loss contribution${lossEffect >= 0 ? '+' : ''}${lossEffect.toFixed(3)}`; + let firstTable = tableContainer.append("table"); + firstTable.append("tr").html(tokRow); + firstTable.append("tr").html(featActRow); + firstTable.append("tr").html(lossRow); + tableContainer.append("br"); + + // If previous token is active, we add logit table + if (prevTokenActive) { + + // Create container for top & bottom logits tables + let logitsTableContainer = tableContainer.append("div").attr("class", "half-width-container") + + // Create the positive table, and fill it with values + let posLogitsTable = logitsTableContainer.append("table").attr("class", "half-width") + posLogitsTable.append("tr").html(`Pos logit contributions`); + posToks.forEach((tok, index) => { + posLogitsTable.append("tr").html(` + ${tok} + ${posVal[index] > 0 ? '+' : ''}${posVal[index].toFixed(3)} + `); + }); + + // Create the negative table, and fill it with values + let negLogitsTable = logitsTableContainer.append("table").attr("class", "half-width") + negLogitsTable.append("tr").html(`Neg logit contributions`); + negToks.forEach((tok, index) => { + negLogitsTable.append("tr").html(` + ${tok} + ${negVal[index] > 0 ? '+' : ''}${negVal[index].toFixed(3)} + `); + }); + + // If previous token is not active, we add a message instead + } else { + tableContainer.append("div") + .style("font-size", "0.85em") + .html("Feature not active on prev token;
no predictions were affected."); + } + + // Add dynamic behaviour: show the tooltip on hover, and also add lines to the two histograms + tokenSpan.on('mouseover', function() { + tooltipDiv.style('display', 'flex'); + tooltipDiv.style('position', 'fixed'); + addLineHistogram(histogramActsID, 0, tok, featAct); + addLineHistogram(histogramLogitsID, 0, tok, tokenLogit); + }) + tokenSpan.on('mousemove', function(event) { + tooltipDiv.style('left', `${event.clientX - tooltipWidth / 2}px`); + tooltipDiv.style('top', `${event.clientY + 20}px`); + }); + tokenSpan.on('mouseout', function() { + tooltipDiv.style('display', 'none'); + removeLineHistogram(histogramActsID, 0); + removeLineHistogram(histogramLogitsID, 0); + }); + + // Add static behaviour: if required, then show the permanent line on the histograms, as shapes[1] + if (permanentLine & isBold) { + addLineHistogram(histogramActsID, 1, tok, featAct); + addLineHistogram(histogramLogitsID, 1, tok, tokenLogit); + } + } +} + +Object.entries(DATA.tokenData).forEach(([seqGroupID, seqGroupData]) => { + const t0 = performance.now(); + + // Find the sequence group container (this is the only thing that already exists) + const seqGroupContainer = d3.select(`#${seqGroupID}`); + + // Empty this container of title & all sequences + seqGroupContainer.selectAll('*').remove(); + + // If title exists, add the title to this sequence group (we need .html not .text, because it could have
) + if ("title" in seqGroupData) { + seqGroupContainer.append('h4').html(seqGroupData.title); + } + + // Get the ID suffix for this sequence group + const idSuffix = seqGroupData.idSuffix; + + // Select all sequences (initially empty), and then add our sequences & bind them to the elems in seqGroupData.data + const seqGroup = seqGroupContainer.selectAll('.seq') + .data(seqGroupData.data) + .enter() + .append('div') + .attr('class', 'seq'); + + // For each sequence, we iterate over & add all its tokens + seqGroup.each(function(seqData) { + + // Get `seq`, which is the individual `seq` element in seqGroup (i.e. the sequence container) + const seq = d3.select(this); + + // Iterate through each token data dict in `seqData`, and add this token to the sequence + seqData.forEach(tokData => { + + generateTokHtmlElement( + seq, // object we'll append the token to + tokData.tok, // string token + tokData.tokID, // token ID (shown on hover, after PR request) + tokData["uColor"] || "#fff", // underline color (derived from loss effect) + tokData["bgColor"] || "#fff", // background color (derived from feature activation) + tokData["isBold"] || false, // is this token bolded? + tokData["featAct"] || 0.0, // feature activation at this token (used for acts histogram line) + tokData["tokenLogit"] || 0.0, // raw logit effect on this token (used for logits histogram line) + tokData["lossEffect"] || 0.0, // effect on loss (used for histogram line), if prev token active + tokData["posToks"] || [], // most-positive tokens (strings) + tokData["posVal"] || [], // most-positive token values + tokData["negToks"] || [], // most-negative tokens (strings) + tokData["negVal"] || [], // most-negative token values + tokData["permanentLine"] || false, // do we show a permanent line on histogram? + tokData["hide"] || false, // do we suppress hoverdata for this token? + idSuffix, // suffix for the histogram ID which the hoverline will be added to + ); + }); + }); + + const t1 = performance.now(); // End timing + console.log(`HTML for ${seqGroupID} generated in ${(t1 - t0).toFixed(1)} ms`); +}); \ No newline at end of file diff --git a/SAEDashboard/sae_dashboard/layout.py b/SAEDashboard/sae_dashboard/layout.py new file mode 100644 index 0000000000000000000000000000000000000000..aa42f234c6b7cbb2dc46c6ea20091c16a12561bb --- /dev/null +++ b/SAEDashboard/sae_dashboard/layout.py @@ -0,0 +1,208 @@ +from dataclasses import asdict, dataclass, field + +from dataclasses_json import dataclass_json +from rich import print as rprint +from rich.tree import Tree + +from sae_dashboard.components_config import ( + ActsHistogramConfig, + BaseComponentConfig, + Column, + FeatureTablesConfig, + LogitsHistogramConfig, + LogitsTableConfig, + PromptConfig, + SequencesConfig, +) + +KEY_LAYOUT_VIS = """Key: + the tree shows which components will be displayed in each column (from left to right) + arguments are [b #00aa00]green[/] + arguments changed from their default are [b dark_orange]orange[/], with default in brackets + argument descriptions are in [i]italics[/i] +""" + + +@dataclass_json +@dataclass +class SaeVisLayoutConfig: + """ + This object allows you to set all the ways the feature vis will be laid out. + + Args (specified by the user): + columns: + A list of `Column` objects, where each `Column` contains a list of component configs. + height: + The height of the vis (in pixels). + + Args (defined during __init__): + seq_cfg: + The `SequencesConfig` object, which contains all the parameters for the top activating sequences (and the + quantile groups). + act_hist_cfg: + The `ActsHistogramConfig` object, which contains all the parameters for the activations histogram. + logits_hist_cfg: + The `LogitsHistogramConfig` object, which contains all the parameters for the logits histogram. + logits_table_cfg: + The `LogitsTableConfig` object, which contains all the parameters for the logits table. + feature_tables_cfg: + The `FeatureTablesConfig` object, which contains all the parameters for the feature tables. + prompt_cfg: + The `PromptConfig` object, which contains all the parameters for the prompt-centric vis. + """ + + columns: dict[int | tuple[int, int], Column] = field(default_factory=dict) + height: int = 750 + + seq_cfg: SequencesConfig | None = None + act_hist_cfg: ActsHistogramConfig | None = None + logits_hist_cfg: LogitsHistogramConfig | None = None + logits_table_cfg: LogitsTableConfig | None = None + feature_tables_cfg: FeatureTablesConfig | None = None + prompt_cfg: PromptConfig | None = None + + def __init__(self, columns: list[Column], height: int = 750): + """ + The __init__ method will allow you to extract things like `self.seq_cfg` from the object (even though they're + initially stored in the `columns` attribute). It also verifies that there are no duplicate components (which is + redundant, and could mess up the HTML). + """ + # Define the columns (as dict) and the height + self.columns = {idx: col for idx, col in enumerate(columns)} + self.height = height + + # Get a list of all our components, and verify there's no duplicates + all_components = [ + component for column in self.columns.values() for component in column + ] + all_component_names = [ + comp.__class__.__name__.rstrip("Config") for comp in all_components + ] + assert len(all_component_names) == len( + set(all_component_names) + ), "Duplicate components in layout config" + self.components: dict[str, BaseComponentConfig] = { + name: comp for name, comp in zip(all_component_names, all_components) + } + + # Once we've verified this, store each config component as an attribute + for comp, comp_name in zip(all_components, all_component_names): + match comp_name: + case "Prompt": + self.prompt_cfg = comp + case "Sequences": + self.seq_cfg = comp + case "ActsHistogram": + self.act_hist_cfg = comp + case "LogitsHistogram": + self.logits_hist_cfg = comp + case "LogitsTable": + self.logits_table_cfg = comp + case "FeatureTables": + self.feature_tables_cfg = comp + case _: + raise ValueError(f"Unknown component name {comp_name}") + + def data_is_contained_in(self, other: "SaeVisLayoutConfig") -> bool: + """ + Returns True if `self` uses only data that would already exist in `other`. This is useful because our prompt- + centric vis needs to only use data that was already computed as part of our initial data gathering. For example, + if our SaeVisData object only contains the first 10 rows of the logits table, then we can't show the top 15 rows + in the prompt centric view! + """ + for comp_name, comp in self.components.items(): + # If the component in `self` is not present in `other`, return False + if comp_name not in other.components: + return False + # If the component in `self` is present in `other`, but the `self` component is larger, then return False + comp_other = other.components[comp_name] + if not comp.data_is_contained_in(comp_other): + return False + + return True + + def help( + self, + title: str = "SaeVisLayoutConfig", + key: bool = True, + ) -> Tree | None: + """ + This prints out a tree showing the layout of the vis, by column (as well as the values of the arguments for each + config object, plus their default values if they changed, and the descriptions of each arg). + """ + + # Create tree (with title and optionally the key explaining arguments) + if key: + title += "\n\n" + KEY_LAYOUT_VIS + tree = Tree(title) + + n_columns = len(self.columns) + + # For each column, add a tree node + for column_idx, vis_components in self.columns.items(): + n_components = len(vis_components) + tree_column = tree.add(f"Column {column_idx}") + + # For each component in that column, add a tree node + for component_idx, vis_component in enumerate(vis_components): + n_params = len(asdict(vis_component)) + tree_component = tree_column.add( + f"{vis_component.__class__.__name__}".rstrip("Config") + ) + + # For each config parameter of that component + for param_idx, (param, value) in enumerate( + asdict(vis_component).items() + ): + # Get line break if we're at the final parameter of this component (unless it's the final component + # in the final column) + suffix = "\n" if (param_idx == n_params - 1) else "" + if (component_idx == n_components - 1) and ( + column_idx == n_columns - 1 + ): + suffix = "" + + # Get argument description, and its default value + desc = vis_component.help_dict.get(param, "") + value_default = getattr( + vis_component.__class__, param, "no default" + ) + + # Add tree node (appearance is different if value is changed from default) + if value != value_default: + info = f"[b dark_orange]{param}: {value!r}[/] ({value_default!r}) \n[i]{desc}[/i]{suffix}" + else: + info = ( + f"[b #00aa00]{param}: {value!r}[/] \n[i]{desc}[/i]{suffix}" + ) + tree_component.add(info) + + rprint(tree) + + @classmethod + def default_feature_centric_layout(cls) -> "SaeVisLayoutConfig": + return cls( + columns=[ + Column(FeatureTablesConfig()), + Column( + ActsHistogramConfig(), LogitsTableConfig(), LogitsHistogramConfig() + ), + Column(SequencesConfig(stack_mode="stack-none")), + ], + height=750, + ) + + @classmethod + def default_prompt_centric_layout(cls) -> "SaeVisLayoutConfig": + return cls( + columns=[ + Column( + PromptConfig(), + ActsHistogramConfig(), + LogitsTableConfig(n_rows=5), + SequencesConfig(top_acts_group_size=10, n_quantiles=0), + width=450, + ), + ], + height=1000, + ) diff --git a/SAEDashboard/sae_dashboard/neuronpedia/__init__.py b/SAEDashboard/sae_dashboard/neuronpedia/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/SAEDashboard/sae_dashboard/neuronpedia/__pycache__/__init__.cpython-313.pyc b/SAEDashboard/sae_dashboard/neuronpedia/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f854d0b697830cf8d31c3431d99125924cab738 Binary files /dev/null and b/SAEDashboard/sae_dashboard/neuronpedia/__pycache__/__init__.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/neuronpedia/__pycache__/vector_set.cpython-313.pyc b/SAEDashboard/sae_dashboard/neuronpedia/__pycache__/vector_set.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bd338e631d5bad573217f7e6b7e6ba1194d4524d Binary files /dev/null and b/SAEDashboard/sae_dashboard/neuronpedia/__pycache__/vector_set.cpython-313.pyc differ diff --git a/SAEDashboard/sae_dashboard/neuronpedia/generating_neuronpedia_outputs.ipynb b/SAEDashboard/sae_dashboard/neuronpedia/generating_neuronpedia_outputs.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..df1c14562b0bdc5f0de42488383f66f5246177af --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/generating_neuronpedia_outputs.ipynb @@ -0,0 +1,172 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generating Outputs for Neuronpedia Upload\n", + "\n", + "We use Callum McDougall's `sae_vis` library for generating JSON data to upload to Neuronpedia.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set Up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_lens.toolkit.pretrained_saes import download_sae_from_hf\n", + "import os\n", + "\n", + "MODEL_ID = \"gpt2-small\"\n", + "SAE_ID = \"res-jb\"\n", + "\n", + "(_, SAE_WEIGHTS_PATH, _) = download_sae_from_hf(\n", + " \"jbloom/GPT2-Small-SAEs-Reformatted\", \"blocks.0.hook_resid_pre\"\n", + ")\n", + "\n", + "SAE_PATH = os.path.dirname(SAE_WEIGHTS_PATH)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Save JSON to neuronpedia_outputs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_lens.analysis.neuronpedia_runner import NeuronpediaRunner\n", + "\n", + "print(SAE_PATH)\n", + "NP_OUTPUT_FOLDER = \"../../neuronpedia_outputs/my_outputs\"\n", + "\n", + "runner = NeuronpediaRunner(\n", + " sae_id=SAE_ID,\n", + " sae_path=SAE_PATH,\n", + " outputs_dir=NP_OUTPUT_FOLDER,\n", + " sparsity_threshold=-5,\n", + " n_batches_to_sample_from=2**12,\n", + " n_prompts_to_select=4096 * 6,\n", + " n_features_at_a_time=24,\n", + " start_batch_inclusive=1,\n", + " end_batch_inclusive=1,\n", + ")\n", + "\n", + "runner.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upload to Neuronpedia\n", + "#### This currently only works if you have admin access to the Neuronpedia database via localhost." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Helpers that fix weird NaN stuff\n", + "from decimal import Decimal\n", + "from typing import Any\n", + "import math\n", + "import json\n", + "import os\n", + "import requests\n", + "\n", + "FEATURE_OUTPUTS_FOLDER = runner.outputs_dir\n", + "\n", + "\n", + "def nanToNeg999(obj: Any) -> Any:\n", + " if isinstance(obj, dict):\n", + " return {k: nanToNeg999(v) for k, v in obj.items()}\n", + " elif isinstance(obj, list):\n", + " return [nanToNeg999(v) for v in obj]\n", + " elif (isinstance(obj, float) or isinstance(obj, Decimal)) and math.isnan(obj):\n", + " return -999\n", + " return obj\n", + "\n", + "\n", + "class NanConverter(json.JSONEncoder):\n", + " def encode(self, o: Any, *args: Any, **kwargs: Any):\n", + " return super().encode(nanToNeg999(o), *args, **kwargs)\n", + "\n", + "\n", + "# Server info\n", + "host = \"http://localhost:3000\"\n", + "\n", + "# Upload alive features\n", + "for file_name in os.listdir(FEATURE_OUTPUTS_FOLDER):\n", + " if file_name.startswith(\"batch-\") and file_name.endswith(\".json\"):\n", + " print(\"Uploading file: \" + file_name)\n", + " file_path = os.path.join(FEATURE_OUTPUTS_FOLDER, file_name)\n", + " f = open(file_path, \"r\")\n", + " data = json.load(f)\n", + "\n", + " # Replace NaNs\n", + " data_fixed = json.dumps(data, cls=NanConverter)\n", + " data = json.loads(data_fixed)\n", + "\n", + " url = host + \"/api/local/upload-features\"\n", + " resp = requests.post(\n", + " url,\n", + " json=data,\n", + " )\n", + "\n", + "# Upload dead feature stubs\n", + "skipped_path = os.path.join(FEATURE_OUTPUTS_FOLDER, \"skipped_indexes.json\")\n", + "f = open(skipped_path, \"r\")\n", + "data = json.load(f)\n", + "url = host + \"/api/local/upload-dead-features\"\n", + "resp = requests.post(\n", + " url,\n", + " json=data,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TODO: Automatically validate the uploaded data" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "mats_sae_training", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_converter.py b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_converter.py new file mode 100644 index 0000000000000000000000000000000000000000..c99db2c148ee3526e707997997576cffec51cf45 --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_converter.py @@ -0,0 +1,399 @@ +import json +from typing import Any, Dict, List, Optional, Union + +import numpy as np +import torch +from transformer_lens import HookedTransformer + +from sae_dashboard.feature_data import FeatureData +from sae_dashboard.neuronpedia.neuronpedia_dashboard import ( + NeuronpediaDashboardActivation, + NeuronpediaDashboardBatch, + NeuronpediaDashboardFeature, +) +from sae_dashboard.neuronpedia.neuronpedia_runner_config import ( + NeuronpediaRunnerConfig, + NeuronpediaVectorRunnerConfig, +) +from sae_dashboard.sae_vis_data import SaeVisData +from sae_dashboard.vector_vis_data import VectorVisData + + +class NpEncoder(json.JSONEncoder): + def default(self, o: Any): + if isinstance(o, NeuronpediaDashboardBatch): + return o.to_dict() + if isinstance(o, np.integer): + return int(o) + if isinstance(o, np.floating): + return float(o) + if isinstance(o, np.ndarray): + return o.tolist() + return super(NpEncoder, self).default(o) + + +class FeatureProcessor: + """ + Class for processing feature data. + """ + + @staticmethod + def round_list(to_round: List[float]) -> List[float]: + """Round a list of floats to 3 decimal places.""" + return list(np.round(to_round, 3)) + + @staticmethod + def ensure_list(input_value: Any) -> List[Any]: + """Ensure the input is a list.""" + return [input_value] if not isinstance(input_value, list) else input_value + + @staticmethod + def to_str_tokens_safe( + model: HookedTransformer, vocab_dict: Dict[int, str], tokens: Any + ) -> Any: + """Convert tokens to string tokens safely.""" + OUT_OF_RANGE_TOKEN = "<|outofrange|>" + vocab_max_index = model.cfg.d_vocab - 1 + + if isinstance(tokens, int): + return ( + OUT_OF_RANGE_TOKEN if tokens > vocab_max_index else vocab_dict[tokens] + ) + + if isinstance(tokens, list): + tokens = np.array(tokens) + + str_tokens = [ + vocab_dict[t] if t <= vocab_max_index else OUT_OF_RANGE_TOKEN + for t in tokens.flatten() + ] + + return np.reshape(str_tokens, tokens.shape).tolist() + + +class NeuronpediaConverter: + """ + Class for converting SaeVisData to Neuronpedia format. + """ + + @staticmethod + def convert_to_np_json( + model: HookedTransformer, + vis_data: Union[SaeVisData, VectorVisData], + np_cfg: Union[NeuronpediaRunnerConfig, NeuronpediaVectorRunnerConfig], + vocab_dict: Dict[int, str], + original_vectors: Optional[torch.Tensor] = None, + ) -> str: + """ + Convert SaeVisData to Neuronpedia JSON format. + + Args: + sae_data (SaeVisData): The SAE visualization data. + np_cfg (NeuronpediaRunnerConfig): Configuration for Neuronpedia runner. + vocab_dict (Dict[int, str]): Dictionary mapping token IDs to strings. + + Returns: + str: JSON string representation of the feature data. + """ + if isinstance(vis_data, VectorVisData): + data_dict = vis_data.vector_data_dict + else: # SaeVisData + data_dict = vis_data.feature_data_dict + + features_outputs = NeuronpediaConverter._process_features( + model, + data_dict, + np_cfg, + vocab_dict, + original_vectors, + ) + batch_data = NeuronpediaConverter._create_batch_data(np_cfg, features_outputs) + return json.dumps(batch_data, cls=NpEncoder) + + @staticmethod + def _process_features( + model: HookedTransformer, + data_dict: Dict[int, FeatureData], # Update to use data_dict directly + np_cfg: Union[NeuronpediaRunnerConfig, NeuronpediaVectorRunnerConfig], + vocab_dict: Dict[int, str], + original_vectors: Optional[torch.Tensor] = None, + ) -> List[NeuronpediaDashboardFeature]: + """Process all features and create NeuronpediaDashboardFeature objects.""" + features_outputs = [] + for feature_index, feature_data in data_dict.items(): + feature_output = NeuronpediaDashboardFeature() + feature_output.feature_index = feature_index + + NeuronpediaConverter._process_feature_tables(feature_output, feature_data) + NeuronpediaConverter._process_feature_logits( + feature_output, feature_data, model, vocab_dict + ) + NeuronpediaConverter._process_feature_histograms( + feature_output, feature_data + ) + NeuronpediaConverter._process_feature_activations( + feature_output, feature_data, model, vocab_dict + ) + NeuronpediaConverter._process_feature_decoder_weight_dist( + feature_output, feature_data + ) + + feature_output.n_prompts_total = np_cfg.n_prompts_total + feature_output.n_tokens_in_prompt = np_cfg.n_tokens_in_prompt + feature_output.dataset = np_cfg.huggingface_dataset_path + + if original_vectors is not None: + feature_output.vector = original_vectors[feature_index].tolist() + + features_outputs.append(feature_output) + return features_outputs + + @staticmethod + def _process_feature_tables( + feature_output: NeuronpediaDashboardFeature, feature_data: FeatureData + ) -> None: + """Process feature tables data and update the feature output.""" + if feature_data.feature_tables_data: + feature_output.neuron_alignment_indices = ( + feature_data.feature_tables_data.neuron_alignment_indices + ) + feature_output.neuron_alignment_values = FeatureProcessor.round_list( + feature_data.feature_tables_data.neuron_alignment_values + ) + feature_output.neuron_alignment_l1 = FeatureProcessor.round_list( + feature_data.feature_tables_data.neuron_alignment_l1 + ) + feature_output.correlated_neurons_indices = ( + feature_data.feature_tables_data.correlated_neurons_indices + ) + feature_output.correlated_neurons_l1 = FeatureProcessor.round_list( + feature_data.feature_tables_data.correlated_neurons_cossim + ) + feature_output.correlated_neurons_pearson = FeatureProcessor.round_list( + feature_data.feature_tables_data.correlated_neurons_pearson + ) + feature_output.correlated_features_indices = ( + feature_data.feature_tables_data.correlated_features_indices + ) + feature_output.correlated_features_l1 = FeatureProcessor.round_list( + feature_data.feature_tables_data.correlated_features_cossim + ) + feature_output.correlated_features_pearson = FeatureProcessor.round_list( + feature_data.feature_tables_data.correlated_features_pearson + ) + + @staticmethod + def _process_feature_logits( + feature_output: NeuronpediaDashboardFeature, + feature_data: FeatureData, + model: HookedTransformer, + vocab_dict: Dict[int, str], + ) -> None: + """Process feature logits data and update the feature output.""" + top_logits = FeatureProcessor.round_list( + feature_data.logits_table_data.top_logits + ) + bottom_logits = FeatureProcessor.round_list( + feature_data.logits_table_data.bottom_logits + ) + + feature_output.neg_str = FeatureProcessor.ensure_list( + FeatureProcessor.to_str_tokens_safe( + model, vocab_dict, feature_data.logits_table_data.bottom_token_ids + ) + ) + feature_output.neg_values = bottom_logits + feature_output.pos_str = FeatureProcessor.ensure_list( + FeatureProcessor.to_str_tokens_safe( + model, vocab_dict, feature_data.logits_table_data.top_token_ids + ) + ) + feature_output.pos_values = top_logits + + @staticmethod + def _process_feature_histograms( + feature_output: NeuronpediaDashboardFeature, feature_data: FeatureData + ) -> None: + """Process feature histogram data and update the feature output.""" + if feature_data.acts_histogram_data.title: + feature_output.frac_nonzero = ( + float( + feature_data.acts_histogram_data.title.split(" = ")[1].split("%")[0] + ) + / 100 + ) + else: + feature_output.frac_nonzero = 0 + + freq_hist_data = feature_data.acts_histogram_data + feature_output.freq_hist_data_bar_values = FeatureProcessor.round_list( + freq_hist_data.bar_values + ) + feature_output.freq_hist_data_bar_heights = FeatureProcessor.round_list( + freq_hist_data.bar_heights + ) + + logits_hist_data = feature_data.logits_histogram_data + feature_output.logits_hist_data_bar_heights = FeatureProcessor.round_list( + logits_hist_data.bar_heights + ) + feature_output.logits_hist_data_bar_values = FeatureProcessor.round_list( + logits_hist_data.bar_values + ) + + @staticmethod + def _process_feature_decoder_weight_dist( + feature_output: NeuronpediaDashboardFeature, + feature_data: FeatureData, + ) -> None: + """Process feature logits data and update the feature output.""" + if feature_data.decoder_weights_data: + feature_output.decoder_weights_dist = ( + feature_data.decoder_weights_data.allocation_by_head + ) + + @staticmethod + def _process_feature_activations( + feature_output: NeuronpediaDashboardFeature, + feature_data: FeatureData, + model: HookedTransformer, + vocab_dict: Dict[int, str], + ) -> None: + """Process feature activations data and update the feature output.""" + activations = [] + for sequence_group in feature_data.sequence_data.seq_group_data: + bin_min, bin_max, bin_contains = ( + NeuronpediaConverter._parse_sequence_group_title(sequence_group.title) + ) + + for sequence in sequence_group.seq_data: + if ( + sequence.top_token_ids is not None + and sequence.bottom_token_ids is not None + and sequence.top_logits is not None + and sequence.bottom_logits is not None + ): + activation = NeuronpediaConverter._create_activation( + sequence, + bin_min, + bin_max, + bin_contains, + feature_data, + model, + vocab_dict, + feature_output.feature_index, + ) + activations.append(activation) + + feature_output.activations = activations + + @staticmethod + def _parse_sequence_group_title(title: str) -> tuple[float, float, float]: + """Parse the sequence group title to extract bin information.""" + bin_min, bin_max, bin_contains = 0, 0, 0 + if "TOP ACTIVATIONS" in title: + bin_min, bin_max, bin_contains = -1, 99, -1 + try: + bin_max = float(title.split(" = ")[-1]) + except ValueError: + print(f"Error parsing top activations: {title}") + elif "INTERVAL" in title: + try: + split = title.split("
") + first_split = split[0].split(" ") + bin_min = float(first_split[1]) + bin_max = float(first_split[-1]) + second_split = split[1].split(" ") + bin_contains = float(second_split[-1].rstrip("%")) / 100 + except ValueError: + print(f"Error parsing interval: {title}") + return bin_min, bin_max, bin_contains + + @staticmethod + def _create_activation( + sequence: Any, + bin_min: float, + bin_max: float, + bin_contains: float, + feature_data: FeatureData, + model: HookedTransformer, + vocab_dict: Dict[int, str], + feature_index: int, + activation_thresholds: Optional[dict[int, float | int]] = None, + ) -> NeuronpediaDashboardActivation: + """Create a NeuronpediaDashboardActivation object from sequence data.""" + activation = NeuronpediaDashboardActivation() + activation.bin_min = bin_min + activation.bin_max = bin_max + activation.bin_contains = bin_contains + + if feature_data.dfa_data is not None: + if sequence.original_index in feature_data.dfa_data: + dfa_data = feature_data.dfa_data[sequence.original_index] + # Round DFA values to three decimal points + activation.dfa_values = [ + round(v, 3) for v in dfa_data["dfaValues"][1:] + ] # Skip BOS token + activation.dfa_maxValue = round( + max(activation.dfa_values), 3 + ) # Recalculate max to skip BOS token + activation.dfa_targetIndex = ( + dfa_data["dfaTargetIndex"] - 1 + ) # Adjust for BOS token + else: + # print( + # f"Warning: DFA data not found for sequence index {sequence.original_index}" + # ) + activation.dfa_values = [] + activation.dfa_maxValue = 0 + activation.dfa_targetIndex = -1 + + activation.tokens = [ + FeatureProcessor.to_str_tokens_safe(model, vocab_dict, token_id) + for token_id in sequence.token_ids + ] + activation.values = FeatureProcessor.round_list(sequence.feat_acts) + if activation_thresholds is not None: + threshold = activation_thresholds[feature_index] + activation.values = [ + v if v >= threshold else 0.0 for v in activation.values + ] + + activation.qualifying_token_index = sequence.qualifying_token_index - 1 + + return activation + + @staticmethod + def _create_batch_data( + np_cfg: Union[NeuronpediaRunnerConfig, NeuronpediaVectorRunnerConfig], + features_outputs: List[NeuronpediaDashboardFeature], + ) -> NeuronpediaDashboardBatch: + """Create a NeuronpediaDashboardBatch object from processed features.""" + batch_data = NeuronpediaDashboardBatch() + + if isinstance(np_cfg, NeuronpediaRunnerConfig): + # Handle SAE case + if np_cfg.model_id is not None and np_cfg.layer is not None: + batch_data.model_id = np_cfg.model_id + batch_data.layer = np_cfg.layer + batch_data.sae_set = ( + np_cfg.sae_set if not np_cfg.np_set_name else np_cfg.np_set_name + ) + if np_cfg.np_sae_id_suffix is not None: + batch_data.sae_id_suffix = np_cfg.np_sae_id_suffix + else: + # Handle Vector case + if np_cfg.model_id is not None and np_cfg.layer is not None: + batch_data.model_id = np_cfg.model_id + batch_data.layer = np_cfg.layer + # For vectors, we'll use the vector names if provided, otherwise a default name + vector_set_name = ( + f"vector_set_{','.join(np_cfg.vector_names)}" + if np_cfg.vector_names + else "vector_set" + ) + batch_data.sae_set = vector_set_name + # No sae_id_suffix needed for vectors + + batch_data.features = features_outputs + return batch_data diff --git a/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_dashboard.py b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_dashboard.py new file mode 100644 index 0000000000000000000000000000000000000000..f2a96637279518e9667cbd37dffd4bd55e8a924f --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_dashboard.py @@ -0,0 +1,348 @@ +from dataclasses import dataclass +from typing import Any, List, Optional + +import numpy as np + +EQUAL_VALUE_TOLERANCE = 0.1 + + +# function to check that each value in a list is a float +def check_list_floats(li: list[float]): + for i in range(len(li)): + if not isinstance(li[i], float): + return False + return True + + +def equalish(a: Any, b: Any, tol: float = EQUAL_VALUE_TOLERANCE): + assert type(a) == type(b), f"types do not match: {type(a)} and {type(b)}" + + if ( + isinstance(a, list) + and isinstance(b, list) + and check_list_floats(a) + and check_list_floats(b) + ): + close = np.allclose(a, b, tol) + if not close: + print(f"Does not match within tolerance: {a} and {b} with tolerance {tol}") + return close + elif isinstance(a, float) and isinstance(b, float): + return abs(a - b) < tol + else: + return a == b + + +@dataclass +class NeuronpediaDashboardActivation: + def __init__( + self, + bin_min: float = 0, + bin_max: float = 0, + bin_contains: float = 0, + tokens: list[str] = [], + values: list[float] = [], + qualifying_token_index: int = 0, + dfa_values: Optional[List[float]] = None, + dfa_maxValue: Optional[float] = None, + dfa_targetIndex: Optional[int] = None, + ): + self.bin_min = bin_min + self.bin_max = bin_max + self.bin_contains = bin_contains + self.tokens = tokens + self.values = values + self.qualifying_token_index = qualifying_token_index + self.dfa_values = dfa_values + self.dfa_maxValue = dfa_maxValue + self.dfa_targetIndex = dfa_targetIndex + + def __eq__(self, other: Any): + if equalish(self.bin_min, other.bin_min) is False: + print(f"bin_min does not match: {self.bin_min} and {other.bin_min}") + return False + if equalish(self.bin_max, other.bin_max) is False: + print(f"bin_max does not match: {self.bin_max} and {other.bin_max}") + return False + if equalish(self.bin_contains, other.bin_contains, 0.001) is False: + print( + f"bin_contains does not match: {self.bin_contains} and {other.bin_contains}" + ) + return False + if self.tokens != other.tokens: + print(f"tokens does not match: {self.tokens} and {other.tokens}") + return False + if equalish(self.values, other.values, 0.5) is False: + print(f"values does not match: {self.values} and {other.values}") + return False + return True + + def to_dict(self): + res = { + "bin_min": self.bin_min, + "bin_max": self.bin_max, + "bin_contains": self.bin_contains, + "tokens": self.tokens, + "values": self.values, + "qualifying_token_index": self.qualifying_token_index, + } + if self.dfa_values is not None: + res["dfa_values"] = self.dfa_values + if self.dfa_maxValue is not None: + res["dfa_maxValue"] = self.dfa_maxValue + if self.dfa_targetIndex is not None: + res["dfa_targetIndex"] = self.dfa_targetIndex + + return res + + +@dataclass +class NeuronpediaDashboardFeature: + def __init__( + self, + feature_index: int = 0, + neuron_alignment_indices: list[int] = [], + neuron_alignment_values: list[float] = [], + neuron_alignment_l1: list[float] = [], + correlated_neurons_indices: list[int] = [], + correlated_neurons_l1: list[float] = [], + correlated_neurons_pearson: list[float] = [], + correlated_features_indices: list[int] = [], + correlated_features_l1: list[float] = [], + correlated_features_pearson: list[float] = [], + neg_str: list[str] = [], + neg_values: list[float] = [], + pos_str: list[str] = [], + pos_values: list[float] = [], + frac_nonzero: float = 0, + freq_hist_data_bar_values: list[float] = [], + freq_hist_data_bar_heights: list[float] = [], + logits_hist_data_bar_heights: list[float] = [], + logits_hist_data_bar_values: list[float] = [], + n_prompts_total: int = 0, + n_tokens_in_prompt: int = 0, + dataset: str = "", + activations: list[dict[str, Any]] = [], + decoder_weights_dist: list[float] = [], + vector: list[float] = [], + ): + self.feature_index = feature_index + self.neuron_alignment_indices = neuron_alignment_indices + self.neuron_alignment_values = neuron_alignment_values + self.neuron_alignment_l1 = neuron_alignment_l1 + self.correlated_neurons_indices = correlated_neurons_indices + self.correlated_neurons_l1 = correlated_neurons_l1 + self.correlated_neurons_pearson = correlated_neurons_pearson + self.correlated_features_indices = correlated_features_indices + self.correlated_features_l1 = correlated_features_l1 + self.correlated_features_pearson = correlated_features_pearson + self.neg_str = neg_str + self.neg_values = neg_values + self.pos_str = pos_str + self.pos_values = pos_values + self.frac_nonzero = frac_nonzero + self.freq_hist_data_bar_values = freq_hist_data_bar_values + self.freq_hist_data_bar_heights = freq_hist_data_bar_heights + self.logits_hist_data_bar_heights = logits_hist_data_bar_heights + self.logits_hist_data_bar_values = logits_hist_data_bar_values + self.n_prompts_total = n_prompts_total + self.n_tokens_in_prompt = n_tokens_in_prompt + self.dataset = dataset + self.activations: list[NeuronpediaDashboardActivation] = [] + self.decoder_weights_dist = decoder_weights_dist + self.vector = vector + for activation in activations: + self.activations.append(NeuronpediaDashboardActivation(**activation)) + + def __eq__(self, other: Any): + if self.feature_index != other.feature_index: + print( + f"feature_index does not match: {self.feature_index} and {other.feature_index}" + ) + return False + if self.neuron_alignment_indices != other.neuron_alignment_indices: + print( + f"neuron_alignment_indices does not match: {self.neuron_alignment_indices} and {other.neuron_alignment_indices}" + ) + return False + if ( + equalish(self.neuron_alignment_values, other.neuron_alignment_values) + is False + ): + print(equalish(self.neuron_alignment_values, other.neuron_alignment_values)) + print( + f"neuron_alignment_values does not match: {self.neuron_alignment_values} and {other.neuron_alignment_values}" + ) + return False + if equalish(self.neuron_alignment_l1, other.neuron_alignment_l1) is False: + print( + f"neuron_alignment_l1 does not match: {self.neuron_alignment_l1} and {other.neuron_alignment_l1}" + ) + return False + + if self.neg_str != other.neg_str: + print(f"neg_str does not match: {self.neg_str} and {other.neg_str}") + return False + if equalish(self.neg_values, other.neg_values) is False: + print( + f"neg_values does not match: {self.neg_values} and {other.neg_values}" + ) + return False + if self.pos_str != other.pos_str: + print(f"pos_str does not match: {self.pos_str} and {other.pos_str}") + return False + if equalish(self.pos_values, other.pos_values) is False: + print( + f"pos_values does not match: {self.pos_values} and {other.pos_values}" + ) + return False + if equalish(self.frac_nonzero, other.frac_nonzero, 0.001) is False: + print( + f"frac_nonzero does not match: {self.frac_nonzero} and {other.frac_nonzero}" + ) + return False + if ( + equalish(self.freq_hist_data_bar_values, other.freq_hist_data_bar_values) + is False + ): + print( + f"freq_hist_data_bar_values does not match: {self.freq_hist_data_bar_values} and {other.freq_hist_data_bar_values}" + ) + return False + if self.freq_hist_data_bar_heights != other.freq_hist_data_bar_heights: + print( + f"freq_hist_data_bar_heights does not match: {self.freq_hist_data_bar_heights} and {other.freq_hist_data_bar_heights}" + ) + return False + if self.logits_hist_data_bar_heights != other.logits_hist_data_bar_heights: + print( + f"logits_hist_data_bar_heights does not match: {self.logits_hist_data_bar_heights} and {other.logits_hist_data_bar_heights}" + ) + return False + if ( + equalish( + self.logits_hist_data_bar_values, other.logits_hist_data_bar_values + ) + is False + ): + print( + f"logits_hist_data_bar_values does not match: {self.logits_hist_data_bar_values} and {other.logits_hist_data_bar_values}" + ) + return False + if self.n_prompts_total != other.n_prompts_total: + print( + f"n_prompts_total does not match: {self.n_prompts_total} and {other.n_prompts_total}" + ) + return False + if self.n_tokens_in_prompt != other.n_tokens_in_prompt: + print( + f"n_tokens_in_prompt does not match: {self.n_tokens_in_prompt} and {other.n_tokens_in_prompt}" + ) + return False + if self.dataset != other.dataset: + print(f"dataset does not match: {self.dataset} and {other.dataset}") + return False + for i, activation in enumerate(self.activations): + if activation != other.activations[i]: + print("".join(other.activations[i].tokens)) + print(" ==================================== ") + print("".join(activation.tokens)) + print( + f"activation {i} does not match: {activation} and {other.activations[i]}" + ) + return False + if self.decoder_weights_dist != other.decoder_weights_dist: + print( + f"decoder_weights_dist does not match: {self.decoder_weights_dist} and {other.decoder_weights_dist}" + ) + return False + return True + + def to_dict(self): + return { + "feature_index": self.feature_index, + "neuron_alignment_indices": self.neuron_alignment_indices, + "neuron_alignment_values": self.neuron_alignment_values, + "neuron_alignment_l1": self.neuron_alignment_l1, + "correlated_neurons_indices": self.correlated_neurons_indices, + "correlated_neurons_l1": self.correlated_neurons_l1, + "correlated_neurons_pearson": self.correlated_neurons_pearson, + "correlated_features_indices": self.correlated_features_indices, + "correlated_features_l1": self.correlated_features_l1, + "correlated_features_pearson": self.correlated_features_pearson, + "neg_str": self.neg_str, + "neg_values": self.neg_values, + "pos_str": self.pos_str, + "pos_values": self.pos_values, + "frac_nonzero": self.frac_nonzero, + "freq_hist_data_bar_values": self.freq_hist_data_bar_values, + "freq_hist_data_bar_heights": self.freq_hist_data_bar_heights, + "logits_hist_data_bar_heights": self.logits_hist_data_bar_heights, + "logits_hist_data_bar_values": self.logits_hist_data_bar_values, + "n_prompts_total": self.n_prompts_total, + "n_tokens_in_prompt": self.n_tokens_in_prompt, + "dataset": self.dataset, + "decoder_weights_dist": self.decoder_weights_dist, + "activations": [activation.to_dict() for activation in self.activations], + "vector": self.vector, + } + + +# TODO: just add the NPRunnerConfig instead + + +@dataclass +class NeuronpediaDashboardBatch: + def __init__( + self, + model_id: str = "", + layer: int = 0, + sae_set: str = "", + sae_id_suffix: Optional[str] = None, + features: list[dict[str, Any]] = [], + # settings: NeuronpediaDashboardSettings = NeuronpediaDashboardSettings(), + ): + self.model_id = model_id + self.layer = layer + self.sae_set = sae_set + self.sae_id_suffix = sae_id_suffix + self.features: list[NeuronpediaDashboardFeature] = [] + for feature in features: + self.features.append(NeuronpediaDashboardFeature(**feature)) + # self.settings = settings + + def __eq__(self, other: Any): + if self.model_id != other.model_id: + print(f"model_id does not match: {self.model_id} and {other.model_id}") + return False + if self.layer != other.layer: + print(f"layer does not match: {self.layer} and {other.layer}") + return False + if self.sae_set != other.sae_set: + print(f"sae_set does not match: {self.sae_set} and {other.sae_set}") + return False + if self.sae_id_suffix != other.sae: + print( + f"sae_id_suffix does not match: {self.sae_id_suffix} and {other.sae_id_suffix}" + ) + return False + for i, feature in enumerate(self.features): + if feature != other.features[i]: + print( + f"feature {feature.feature_index} does not match: {feature} and {other.features[i]}" + ) + return False + # if self.settings != other.settings: + # print(f"settings does not match: {self.settings} and {other.settings}") + # return False + return True + + def to_dict(self): + return { + "model_id": self.model_id, + "layer": self.layer, + "sae_set": self.sae_set, + "sae_id_suffix": self.sae_id_suffix, + "features": [feature.to_dict() for feature in self.features], + # "settings": self.settings.to_dict(), + } diff --git a/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_runner.py b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..b84efb8fe7ca50e6dad1318a8185f9070cb368eb --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_runner.py @@ -0,0 +1,972 @@ +import argparse +import gc +import importlib +import json +import os +from datetime import datetime +from pathlib import Path +from typing import Dict, Set, Tuple + +import numpy as np +import torch +from matplotlib import colors +from sae_lens import SAE, ActivationsStore, HookedSAETransformer +from tqdm import tqdm +from transformers import AutoModelForCausalLM + +import wandb +import wandb.sdk +from sae_dashboard.components_config import ( + ActsHistogramConfig, + Column, + FeatureTablesConfig, + LogitsHistogramConfig, + LogitsTableConfig, + SequencesConfig, +) + +# from sae_dashboard.data_writing_fns import save_feature_centric_vis +from sae_dashboard.layout import SaeVisLayoutConfig +from sae_dashboard.neuronpedia.neuronpedia_converter import NeuronpediaConverter +from sae_dashboard.neuronpedia.neuronpedia_runner_config import NeuronpediaRunnerConfig +from sae_dashboard.sae_vis_data import SaeVisConfig +from sae_dashboard.sae_vis_runner import SaeVisRunner +from sae_dashboard.utils_fns import has_duplicate_rows + +# set TOKENIZERS_PARALLELISM to false to avoid warnings +os.environ["TOKENIZERS_PARALLELISM"] = "false" +RUN_SETTINGS_FILE = "run_settings.json" +OUT_OF_RANGE_TOKEN = "<|outofrange|>" + +BG_COLOR_MAP = colors.LinearSegmentedColormap.from_list( + "bg_color_map", ["white", "darkorange"] +) + + +DEFAULT_FALLBACK_DEVICE = "cpu" + +# TODO: add more anomalies here +HTML_ANOMALIES = { + "âĢĶ": "—", + "âĢĵ": "–", + "âĢľ": "“", + "âĢĿ": "”", + "âĢĺ": "‘", + "âĢĻ": "’", + "âĢĭ": " ", # TODO: this is actually zero width space + "Ġ": " ", + "Ċ": "\n", + "ĉ": "\t", +} + + +def get_sae_loader(loader_name: str): + module = importlib.import_module("sae_lens.loading.pretrained_sae_loaders") + loader_function = getattr(module, loader_name) + return loader_function + + +class NeuronpediaRunner: + def __init__( + self, + cfg: NeuronpediaRunnerConfig, + ): + self.cfg = cfg + + # Initialize core components + self.device_count = self._setup_devices() + self._load_sae_or_transcoder() + if cfg.prepend_bos is not None: + # if metadata doesnt exist, create it + if not hasattr(self.sae.cfg, "metadata"): + self.sae.cfg["metadata"] = {} # type: ignore + self.sae.cfg.metadata["prepend_bos"] = cfg.prepend_bos # type: ignore + self._configure_dtypes() + self._extract_model_info() + self._initialize_model() + self._setup_activation_store() + self._setup_output_directory() + self.vocab_dict = self.get_vocab_dict() + + def _setup_devices(self) -> int: + """Set up device configuration based on available hardware.""" + device_count = 1 + # Set correct device, use multi-GPU if we have it + if torch.backends.mps.is_available(): + self.cfg.sae_device = self.cfg.sae_device or "mps" + self.cfg.model_device = self.cfg.model_device or "mps" + self.cfg.model_n_devices = self.cfg.model_n_devices or 1 + self.cfg.activation_store_device = self.cfg.activation_store_device or "mps" + elif torch.cuda.is_available(): + device_count = torch.cuda.device_count() + if device_count > 1: + self.cfg.sae_device = self.cfg.sae_device or f"cuda:{device_count - 1}" + self.cfg.model_n_devices = self.cfg.model_n_devices or ( + device_count - 1 + ) + else: + self.cfg.sae_device = self.cfg.sae_device or "cuda" + self.cfg.model_device = self.cfg.model_device or "cuda" + self.cfg.sae_device = self.cfg.sae_device or "cuda" + self.cfg.activation_store_device = ( + self.cfg.activation_store_device or "cuda" + ) + else: + self.cfg.sae_device = self.cfg.sae_device or "cpu" + self.cfg.model_device = self.cfg.model_device or "cpu" + self.cfg.model_n_devices = self.cfg.model_n_devices or 1 + self.cfg.activation_store_device = self.cfg.activation_store_device or "cpu" + + return device_count + + def _load_sae_or_transcoder(self): + """Load SAE, Transcoder, SkipTranscoder, or CLT based on configuration.""" + # Validate that only one loader type is specified + flags = [ + self.cfg.use_transcoder, + self.cfg.use_skip_transcoder, + self.cfg.use_clt, + ] + if sum(flags) > 1: + raise ValueError( + "Only one of --use-transcoder, --use-skip-transcoder, or --use-clt can be set." + ) + if self.cfg.use_clt and self.cfg.clt_layer_idx is None: + raise ValueError("--clt-layer-idx must be specified when using --use-clt.") + + if self.cfg.use_skip_transcoder: + # Dynamically import to avoid dependency issues when Transcoder isn't used + try: + from sae_lens import SkipTranscoder # type: ignore + except ImportError as e: + raise ImportError( + "SkipTranscoder class not found in sae_lens. Install a version of sae_lens that provides it or disable --use-skip-transcoder." + ) from e + LoaderClass = SkipTranscoder + loader_kwargs = {} + # TODO: Check if SkipTranscoder supports local loading via path= kwarg + # if self.cfg.from_local_sae: + # loader_kwargs["path"] = self.cfg.sae_path + # else: + loader_kwargs["release"] = self.cfg.sae_set + loader_kwargs["sae_id"] = self.cfg.sae_path + + self.sae = LoaderClass.from_pretrained( # type: ignore + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, **loader_kwargs + ) + # SkipTranscoder doesn't directly support dtype override in from_pretrained, apply after + if self.cfg.sae_dtype: + self._apply_sae_dtype_override() + + elif self.cfg.use_transcoder: + # Dynamically import to avoid dependency issues when Transcoder isn't used + try: + from sae_lens import Transcoder # type: ignore + except ImportError as e: + raise ImportError( + "Transcoder class not found in sae_lens. Install a version of sae_lens that provides Transcoder or disable --use-transcoder." + ) from e + LoaderClass = Transcoder + + if self.cfg.from_local_sae: + # Transcoder might not have load_from_pretrained, use from_pretrained + self.sae = LoaderClass.from_pretrained( # type: ignore + path=self.cfg.sae_path, # type: ignore + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, + # dtype=self.cfg.sae_dtype if self.cfg.sae_dtype != "" else None, # Dtype applied after + ) + else: + self.sae = LoaderClass.from_pretrained( # type: ignore + release=self.cfg.sae_set, + sae_id=self.cfg.sae_path, + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, + converter=( + get_sae_loader(self.cfg.sae_converter_name) + if self.cfg.sae_converter_name + else None + ), + ) + # Apply dtype override after loading for Transcoder as well + if self.cfg.sae_dtype: + self._apply_sae_dtype_override() + elif self.cfg.use_clt: + # Dynamically import CLT components only when needed + try: + from clt.config.clt_config import CLTConfig # type: ignore + from clt.models.clt import CrossLayerTranscoder # type: ignore + except ImportError as e: + raise ImportError( + "CLT components (CrossLayerTranscoder, CLTConfig) not found. " + "Ensure the 'clt' package is installed and available." + ) from e + + if self.cfg.from_local_sae: + # Load CLT config from local path + try: + clt_config_path = Path(self.cfg.sae_path) / "cfg.json" + if not clt_config_path.is_file(): + raise FileNotFoundError( + f"CLT config file not found at {clt_config_path}" + ) + clt_cfg = CLTConfig.from_json(clt_config_path) # type: ignore + except Exception as e: + raise ValueError( + f"Failed to load CLT config from {clt_config_path}: {e}" # type: ignore + ) from e + + # Create CLT instance + self.clt = CrossLayerTranscoder( + config=clt_cfg, + process_group=None, + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, # type: ignore + ) + + # Load weights + self._load_clt_weights() + + # Apply dtype override if specified + if self.cfg.clt_dtype: + try: + dtype_torch = getattr(torch, self.cfg.clt_dtype) + self.clt.to(dtype=dtype_torch) + print(f"Overriding CLT dtype to {self.cfg.clt_dtype}") + except AttributeError: + raise ValueError(f"Invalid clt_dtype: {self.cfg.clt_dtype}") + elif hasattr(self.clt.config, "dtype") and self.clt.config.dtype: # type: ignore + self.cfg.clt_dtype = str(self.clt.config.dtype).replace( # type: ignore + "torch.", "" + ) + print(f"Using CLT configured dtype: {self.cfg.clt_dtype}") + else: + self.cfg.clt_dtype = "float32" + print( + f"CLT dtype not specified, defaulting to {self.cfg.clt_dtype}" + ) + + # Create wrapper for the specific layer + from sae_dashboard.clt_layer_wrapper import CLTLayerWrapper + + assert self.cfg.clt_layer_idx is not None # Already validated above + self.sae = CLTLayerWrapper( + self.clt, + self.cfg.clt_layer_idx, + clt_model_dir_path=self.cfg.sae_path, + ) + print(f"Created CLTLayerWrapper for layer {self.cfg.clt_layer_idx}") + else: + raise NotImplementedError( + "Loading CLT from non-local path (e.g., HF release) is not yet implemented." + ) + else: + LoaderClass = SAE + if self.cfg.from_local_sae: + self.sae = SAE.load_from_pretrained( # type: ignore + path=self.cfg.sae_path, + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, + dtype=self.cfg.sae_dtype if self.cfg.sae_dtype != "" else None, + ) + else: + self.sae = SAE.from_pretrained( + release=self.cfg.sae_set, + sae_id=self.cfg.sae_path, + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, + ) + if self.cfg.sae_dtype != "": + self._apply_sae_dtype_override() + + def _load_clt_weights(self): + """Load CLT weights from file.""" + from pathlib import Path + from typing import List, Optional + + # Determine which file to load + explicit_filename = ( + self.cfg.clt_weights_filename if self.cfg.clt_weights_filename else "" + ) + + candidate_paths: List[Path] = [] + if explicit_filename: + candidate_paths.append(Path(self.cfg.sae_path) / explicit_filename) + + # If no explicit filename or the file doesn't exist, search common patterns + if not candidate_paths or not candidate_paths[0].is_file(): + # Find any *.safetensors file in directory + candidate_paths.extend( + sorted(Path(self.cfg.sae_path).glob("*.safetensors")) + ) + # Add common filenames + candidate_paths.append(Path(self.cfg.sae_path) / "model.safetensors") + candidate_paths.append(Path(self.cfg.sae_path) / "model.pt") + candidate_paths.append(Path(self.cfg.sae_path) / "model.bin") + + # Pick the first existing path + weights_path: Optional[Path] = None + for cand in candidate_paths: + if cand.is_file(): + weights_path = cand + break + + if weights_path is None: + raise FileNotFoundError( + f"No CLT weights file found in {self.cfg.sae_path}. " + f"Expected one of: {', '.join(str(p) for p in candidate_paths)}" + ) + + print(f"Loading CLT state dict from: {weights_path}") + + # Choose loader based on file extension + if weights_path.suffix == ".safetensors": + try: + from safetensors.torch import load_file as safe_load_file + except ImportError as e: + raise ImportError( + "safetensors library is required to load .safetensors files. " + "Install via `pip install safetensors`." + ) from e + state_dict = safe_load_file(weights_path) + else: + state_dict = torch.load(weights_path, map_location=self.cfg.sae_device) + + # Load the state dict + self.clt.load_state_dict(state_dict) + print("CLT state dict loaded successfully.") + + def _apply_sae_dtype_override(self): + """Apply dtype override to SAE.""" + if self.cfg.sae_dtype == "float16": + self.sae.to(dtype=torch.float16) # type: ignore + elif self.cfg.sae_dtype == "float32": + self.sae.to(dtype=torch.float32) # type: ignore + elif self.cfg.sae_dtype == "bfloat16": + self.sae.to(dtype=torch.bfloat16) # type: ignore + else: + raise ValueError( + f"Unsupported dtype: {self.cfg.sae_dtype}, we support float16, float32, bfloat16" + ) + + def _configure_dtypes(self): + """Configure data types for SAE and model.""" + # If we didn't override dtype, then use the SAE's dtype + if self.cfg.sae_dtype == "": + print(f"Using SAE configured dtype: {self.sae.cfg.dtype}") + self.cfg.sae_dtype = self.sae.cfg.dtype + else: + print(f"Overriding sae dtype to {self.cfg.sae_dtype}") + + if self.cfg.model_dtype == "": + self.cfg.model_dtype = "float32" + + # double sure this works + self.sae.to(self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE) + self.sae.cfg.device = self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE + + if self.cfg.huggingface_dataset_path == "": + self.cfg.huggingface_dataset_path = self.sae.cfg.dataset_path # type: ignore + + self._print_configuration() + + self.sae.cfg.dataset_path = self.cfg.huggingface_dataset_path # type: ignore + self.sae.cfg.context_size = self.cfg.n_tokens_in_prompt # type: ignore + + # Skip fold_W_dec_norm for CLT wrappers as they don't support this method + if "CLTLayerWrapper" in str(type(self.sae)): + print("NeuronpediaRunner: Skipping fold_W_dec_norm() for CLT wrapper.") + else: + self.sae.fold_W_dec_norm() + + print(f"SAE DType: {self.cfg.sae_dtype}") + print(f"Model DType: {self.cfg.model_dtype}") + + def _print_configuration(self): + """Print configuration details.""" + print(f"Device Count: {self.device_count}") + print(f"SAE Device: {self.cfg.sae_device}") + print(f"Model Device: {self.cfg.model_device}") + print(f"Model Num Devices: {self.cfg.model_n_devices}") + print(f"Activation Store Device: {self.cfg.activation_store_device}") + print(f"Dataset Path: {self.cfg.huggingface_dataset_path}") + print(f"Forward Pass size: {self.cfg.n_tokens_in_prompt}") + + # number of tokens + n_tokens_total = self.cfg.n_prompts_total * self.cfg.n_tokens_in_prompt + print(f"Total number of tokens: {n_tokens_total}") + print(f"Total number of contexts (prompts): {self.cfg.n_prompts_total}") + + # get the sae's cfg and check if it has from pretrained kwargs + sae_cfg_json = self.sae.cfg.to_dict() + self.sae_from_pretrained_kwargs = sae_cfg_json.get( + "model_from_pretrained_kwargs", {} + ) + print("SAE Config on disk:") + print(json.dumps(sae_cfg_json, indent=2)) + if self.sae_from_pretrained_kwargs != {}: + print("SAE has from_pretrained_kwargs", self.sae_from_pretrained_kwargs) + else: + print( + "SAE does not have from_pretrained_kwargs. Standard TransformerLens Loading" + ) + + def _extract_model_info(self): + """Extract model ID and layer information from SAE configuration.""" + # For transcoders, model_name might be in metadata + if hasattr(self.sae.cfg, "model_name"): + self.model_id = self.sae.cfg.model_name # type: ignore + elif ( + hasattr(self.sae.cfg, "metadata") and "model_name" in self.sae.cfg.metadata # type: ignore + ): + self.model_id = self.sae.cfg.metadata["model_name"] # type: ignore + else: + raise ValueError("Could not find model_name in SAE config") + + self.cfg.model_id = self.model_id + + # For transcoders, hook_layer might be hook_layer_out + if hasattr(self.sae.cfg, "hook_layer"): + self.layer = self.sae.cfg.hook_layer # type: ignore + elif hasattr(self.sae.cfg, "hook_layer_out"): + self.layer = self.sae.cfg.hook_layer_out # type: ignore + else: + # Try to extract layer from hook_name (e.g., "blocks.5.hook_resid_pre" -> 5) + # We need to get hook_name first + hook_name = self.sae.cfg.metadata.get("hook_name", "") # type: ignore + import re + + match = re.search(r"blocks\.(\d+)\.", hook_name) + if match: + self.layer = int(match.group(1)) + else: + raise ValueError( + "Could not find hook_layer in SAE config or extract from hook_name" + ) + + self.cfg.layer = self.layer + + def _initialize_model(self): + """Initialize the transformer model.""" + # If custom HF model path is provided, load it first + hf_model = None + if self.cfg.hf_model_path: + print(f"Loading custom HF model from: {self.cfg.hf_model_path}") + hf_model = AutoModelForCausalLM.from_pretrained( + self.cfg.hf_model_path, + ) + + self.model = HookedSAETransformer.from_pretrained( + model_name=self.model_id, # type: ignore + device=self.cfg.model_device, + n_devices=self.cfg.model_n_devices or 1, + hf_model=hf_model, # Pass the custom model if provided + **self.sae_from_pretrained_kwargs, + dtype=self.cfg.model_dtype, + ) + + # Ensure MLP-in hooks are computed if needed (important for most Transcoders) + # Get hook_name - it's always in metadata for both SAEs and Transcoders + if hasattr(self.sae.cfg.metadata, "hook_name"): + self.hook_name = self.sae.cfg.metadata.hook_name # type: ignore + else: + self.hook_name = self.sae.cfg.metadata["hook_name"] # type: ignore + + if ( + self.cfg.use_transcoder + or self.cfg.use_skip_transcoder + or self.cfg.use_clt + or "hook_mlp_in" in self.hook_name # type: ignore + ) and hasattr(self.model, "set_use_hook_mlp_in"): + # TransformerLens models 1.12+ support this flag + self.model.set_use_hook_mlp_in(True) + + def _setup_activation_store(self): + """Set up the activation store for data generation.""" + # set the context size to the number of tokens in the prompt + self.sae.cfg.metadata.context_size = self.cfg.n_tokens_in_prompt # type: ignore + self.activations_store = ActivationsStore.from_sae( + model=self.model, + sae=self.sae, # type: ignore + dataset=self.cfg.huggingface_dataset_path, + streaming=True, + context_size=self.cfg.n_tokens_in_prompt, + store_batch_size_prompts=8, # these don't matter + n_batches_in_buffer=16, # these don't matter + disable_concat_sequences=True, + device=self.cfg.activation_store_device or "cpu", + ) + self.cached_activations_dir = Path( + f"./cached_activations/{self.model_id}_{self.cfg.sae_set}_{self.hook_name}_{self.sae.cfg.d_sae}width_{self.cfg.n_prompts_total}prompts" + ) + + def _setup_output_directory(self): + """Set up the output directory for results.""" + # if we have additional info, add it to the outputs subdir + self.np_sae_id_suffix = self.cfg.np_sae_id_suffix + + if not os.path.exists(self.cfg.outputs_dir): + os.makedirs(self.cfg.outputs_dir) + self.cfg.outputs_dir = self.create_output_directory() + + def create_output_directory(self) -> str: + """ + Creates the output directory for storing generated features. + + Returns: + Path: The path to the created output directory. + """ + outputs_subdir = ( + f"{self.model_id}_{self.cfg.sae_set}_{self.hook_name}_{self.sae.cfg.d_sae}" + ) + if self.np_sae_id_suffix is not None: + outputs_subdir += f"_{self.np_sae_id_suffix}" + outputs_dir = Path(self.cfg.outputs_dir).joinpath(outputs_subdir) + if outputs_dir.exists() and outputs_dir.is_file(): + raise ValueError( + f"Error: Output directory {outputs_dir.as_posix()} exists and is a file." + ) + outputs_dir.mkdir(parents=True, exist_ok=True) + return str(outputs_dir) + + def hash_tensor(self, tensor: torch.Tensor) -> Tuple[int, ...]: + return tuple(tensor.cpu().numpy().flatten().tolist()) + + def generate_tokens( + self, + activations_store: ActivationsStore, + n_prompts: int = 4096 * 6, + ) -> torch.Tensor: + all_tokens_list = [] + unique_sequences: Set[Tuple[int, ...]] = set() + pbar = tqdm(range(n_prompts // activations_store.store_batch_size_prompts)) + + for _ in pbar: + batch_tokens = activations_store.get_batch_tokens() + if self.cfg.shuffle_tokens: + batch_tokens = batch_tokens[torch.randperm(batch_tokens.shape[0])] + + # Check for duplicates and only add unique sequences + for seq in batch_tokens: + seq_hash = self.hash_tensor(seq) + if seq_hash not in unique_sequences: + unique_sequences.add(seq_hash) + all_tokens_list.append(seq.unsqueeze(0)) + + # Early exit if we've collected enough unique sequences + if len(all_tokens_list) >= n_prompts: + break + + all_tokens = torch.cat(all_tokens_list, dim=0)[:n_prompts] + if self.cfg.shuffle_tokens: + all_tokens = all_tokens[torch.randperm(all_tokens.shape[0])] + + return all_tokens + + def add_prefix_suffix_to_tokens(self, tokens: torch.Tensor) -> torch.Tensor: + original_length = tokens.shape[1] + bos_tokens = tokens[:, 0] # might not be if sae.cfg.prepend_bos is False + + # return tokens if no prefix or suffix + if self.cfg.prefix_str is None and self.cfg.suffix_str is None: + return tokens + + # generate tokens for the prefix and suffix + prefix_tokens = ( + self.model.tokenizer.encode(self.cfg.prefix_str) # type: ignore + if self.cfg.prefix_str is not None + else [] + ) + suffix_tokens = ( + self.model.tokenizer.encode(self.cfg.suffix_str) # type: ignore + if self.cfg.suffix_str is not None + else [] + ) + + # Calculate how many tokens to keep from the original + keep_length = original_length - len(prefix_tokens) - len(suffix_tokens) + + if keep_length <= 0: + raise ValueError("Prefix and suffix are too long for the given tokens.") + + # Trim original tokens + if ( + hasattr(self.sae.cfg.metadata, "prepend_bos") + and self.sae.cfg.metadata.prepend_bos # type: ignore + ): + tokens = tokens[:, : keep_length - self.sae.cfg.metadata.prepend_bos] # type: ignore + else: + tokens = tokens[:, :keep_length] + + if self.cfg.prefix_str: + prefix = torch.tensor(prefix_tokens).to(tokens.device) + prefix_repeated = prefix.unsqueeze(0).repeat(tokens.shape[0], 1) + # if sae.cfg.prepend_bos, then add that before the suffix + if ( + hasattr(self.sae.cfg.metadata, "prepend_bos") + and self.sae.cfg.metadata.prepend_bos # type: ignore + ): + bos = bos_tokens.unsqueeze(1) + prefix_repeated = torch.cat([bos, prefix_repeated], dim=1) + tokens = torch.cat([prefix_repeated, tokens], dim=1) + + if self.cfg.suffix_str: + suffix = torch.tensor(suffix_tokens).to(tokens.device) + suffix_repeated = suffix.unsqueeze(0).repeat(tokens.shape[0], 1) + tokens = torch.cat([tokens, suffix_repeated], dim=1) + + # assert length hasn't changed + assert tokens.shape[1] == original_length + return tokens + + def get_feature_batches(self): + # divide into batches + feature_idx = torch.tensor(self.target_feature_indexes) + n_subarrays = np.ceil(len(feature_idx) / self.cfg.n_features_at_a_time).astype( + int + ) + feature_idx = np.array_split(feature_idx, n_subarrays) + feature_idx = [x.tolist() for x in feature_idx] + + return feature_idx + + def record_skipped_features(self): + # write dead into file so we can create them as dead in Neuronpedia + skipped_indexes = set(range(self.n_features)) - set(self.target_feature_indexes) + skipped_indexes_json = json.dumps( + { + "model_id": self.model_id, + "layer": str(self.layer), + "sae_set": self.cfg.sae_set, + "log_sparsity": self.cfg.sparsity_threshold, + "skipped_indexes": list(skipped_indexes), + } + ) + with open(f"{self.cfg.outputs_dir}/skipped_indexes.json", "w") as f: + f.write(skipped_indexes_json) + + def get_tokens(self): + tokens_file = f"{self.cfg.outputs_dir}/tokens_{self.cfg.n_prompts_total}.pt" + if os.path.isfile(tokens_file): + print("Tokens exist, loading them.") + tokens = torch.load(tokens_file) + else: + print("Tokens don't exist, making them.") + tokens = self.generate_tokens( + self.activations_store, + self.cfg.n_prompts_total, + ) + torch.save( + tokens, + tokens_file, + ) + + assert not has_duplicate_rows(tokens), "Duplicate rows in tokens" + + return tokens + + def get_vocab_dict(self) -> Dict[int, str]: + # get vocab + vocab_dict: dict = self.model.tokenizer.vocab # type: ignore + new_vocab_dict = {} + # Replace substrings in the keys of vocab_dict using HTML_ANOMALIES + for k, v in vocab_dict.items(): # type: ignore + modified_key = k + for anomaly in HTML_ANOMALIES: + modified_key = modified_key.replace(anomaly, HTML_ANOMALIES[anomaly]) + new_vocab_dict[v] = modified_key + vocab_dict = new_vocab_dict + # pad with blank tokens to the actual vocab size + for i in range(len(vocab_dict), self.model.cfg.d_vocab): + vocab_dict[i] = OUT_OF_RANGE_TOKEN + return vocab_dict + + # TODO: make this function simpler + def run(self): + run_settings_path = self.cfg.outputs_dir + "/" + RUN_SETTINGS_FILE + run_settings = self.cfg.__dict__ + with open(run_settings_path, "w") as f: + json.dump(run_settings, f, indent=4) + + wandb_cfg = self.cfg.__dict__ + wandb_cfg["sae_cfg"] = self.sae.cfg.to_dict() + + current_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + set_name = ( + self.cfg.sae_set if self.cfg.np_set_name is None else self.cfg.np_set_name + ) + if self.cfg.use_wandb: + wandb.init( + project="sae-dashboard-generation", + name=f"{self.model_id}_{set_name}_{self.hook_name}_{current_time}", + save_code=True, + mode="online", + config=wandb_cfg, + ) + + self.n_features = self.sae.cfg.d_sae + assert self.n_features is not None + + self.target_feature_indexes = list(range(self.n_features)) + + feature_idx = self.get_feature_batches() + if self.cfg.start_batch >= len(feature_idx): + print( + f"Start batch {self.cfg.start_batch} is greater than number of batches {len(feature_idx)}, exiting" + ) + exit() + + self.record_skipped_features() + tokens = self.get_tokens() + tokens = self.add_prefix_suffix_to_tokens(tokens) + + del self.activations_store + + with torch.no_grad(): + for feature_batch_count, features_to_process in tqdm( + enumerate(feature_idx) + ): + if feature_batch_count < self.cfg.start_batch: + feature_batch_count = feature_batch_count + 1 + continue + if ( + self.cfg.end_batch is not None + and feature_batch_count > self.cfg.end_batch + ): + feature_batch_count = feature_batch_count + 1 + continue + + output_file = f"{self.cfg.outputs_dir}/batch-{feature_batch_count}.json" + # if output_file exists, skip + if os.path.isfile(output_file): + logline = f"\n++++++++++ Skipping Batch #{feature_batch_count} output. File exists: {output_file} ++++++++++\n" + print(logline) + continue + + print(f"========== Running Batch #{feature_batch_count} ==========") + + layout = SaeVisLayoutConfig( + columns=[ + Column( + SequencesConfig( + stack_mode="stack-all", + buffer=None, # type: ignore + compute_buffer=True, + n_quantiles=self.cfg.n_quantiles, + top_acts_group_size=self.cfg.top_acts_group_size, + quantile_group_size=self.cfg.quantile_group_size, + ), + ActsHistogramConfig(), + LogitsHistogramConfig(), + LogitsTableConfig(), + FeatureTablesConfig(n_rows=3), + ) + ] + ) + + feature_vis_config_gpt = SaeVisConfig( + hook_point=self.hook_name, # type: ignore + features=features_to_process, + minibatch_size_features=self.cfg.n_features_at_a_time, + minibatch_size_tokens=self.cfg.n_prompts_in_forward_pass, + quantile_feature_batch_size=self.cfg.quantile_feature_batch_size, + verbose=True, + device=self.cfg.sae_device or DEFAULT_FALLBACK_DEVICE, + feature_centric_layout=layout, + perform_ablation_experiments=False, + dtype=self.cfg.sae_dtype, + cache_dir=self.cached_activations_dir, + ignore_tokens={ + self.model.tokenizer.pad_token_id, # type: ignore + self.model.tokenizer.bos_token_id, # type: ignore + self.model.tokenizer.eos_token_id, # type: ignore + }, # type: ignore + ignore_positions=self.cfg.ignore_positions or [], + use_dfa=self.cfg.use_dfa, + ) + + feature_data = SaeVisRunner(feature_vis_config_gpt).run( + encoder=self.sae, # type: ignore + model=self.model, + tokens=tokens, + ) + + self.cfg.model_id = self.model_id + self.cfg.layer = self.layer + json_object = NeuronpediaConverter.convert_to_np_json( + self.model, feature_data, self.cfg, self.vocab_dict + ) + with open( + output_file, + "w", + ) as f: + f.write(json_object) + print(f"Output written to {output_file}") + + logline = f"\n========== Completed Batch #{feature_batch_count} output: {output_file} ==========\n" + if self.cfg.use_wandb: + wandb.log( + {"batch": feature_batch_count}, + step=feature_batch_count, + ) + # Clean up after each batch + del feature_data + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + if self.cfg.use_wandb: + wandb.sdk.finish() + + +def main(): + parser = argparse.ArgumentParser(description="Run Neuronpedia feature generation") + parser.add_argument("--sae-set", required=True, help="SAE set name") + parser.add_argument("--sae-path", required=True, help="Path to SAE") + parser.add_argument("--np-set-name", required=True, help="Neuronpedia set name") + parser.add_argument( + "--np-sae-id-suffix", + required=False, + help="Additional suffix on Neuronpedia for the SAE ID. Goes after the SAE Set like so: __[np-sae-id-suffix]. Used for additional l0s, training steps, etc.", + ) + parser.add_argument( + "--dataset-path", required=True, help="HuggingFace dataset path" + ) + parser.add_argument( + "--sae_dtype", default="float32", help="Data type for sae computations" + ) + parser.add_argument( + "--model_dtype", default="float32", help="Data type for model computations" + ) + parser.add_argument( + "--output-dir", default="neuronpedia_outputs/", help="Output directory" + ) + parser.add_argument( + "--sparsity-threshold", type=int, default=1, help="Sparsity threshold" + ) + parser.add_argument("--n-prompts", type=int, default=128, help="Number of prompts") + parser.add_argument( + "--n-tokens-in-prompt", type=int, default=128, help="Number of tokens in prompt" + ) + parser.add_argument( + "--n-prompts-in-forward-pass", + type=int, + default=128, + help="Number of prompts in forward pass", + ) + parser.add_argument( + "--n-features-per-batch", + type=int, + default=2, + help="Number of features per batch", + ) + parser.add_argument( + "--start-batch", type=int, default=0, help="Starting batch number" + ) + parser.add_argument( + "--end-batch", type=int, default=None, help="Ending batch number" + ) + parser.add_argument( + "--use-wandb", action="store_true", help="Use Weights & Biases for logging" + ) + parser.add_argument( + "--from-local-sae", action="store_true", help="Load SAE from local path" + ) + parser.add_argument( + "--hf-model-path", + type=str, + default=None, + help="Optional: Path to custom HuggingFace model to use instead of default weights", + ) + parser.add_argument( + "--prefix-str", + type=str, + default=None, + help="Optional string to prepend to each prompt. Example: --prefix-str '<|im_start|>user\n'", + ) + parser.add_argument( + "--no-prepend-bos", + action="store_false", + dest="prepend_bos", + default=None, + help="Don't prepend BOS token to sequences (overrides SAE default)", + ) + parser.add_argument( + "--prepend-bos", + action="store_true", + dest="prepend_bos", + default=None, + help="Prepend BOS token to sequences (overrides SAE default)", + ) + parser.add_argument( + "--use-transcoder", + action="store_true", + help="If set, load a Transcoder instead of a standard SAE", + ) + parser.add_argument( + "--use-skip-transcoder", + action="store_true", + help="If set, load a SkipTranscoder instead of a Transcoder/SAE", + ) + parser.add_argument( + "--use-clt", + action="store_true", + help="If set, load a CrossLayerTranscoder instead of a standard SAE/Transcoder", + ) + parser.add_argument( + "--clt-layer-idx", + type=int, + default=None, + help="Layer index to use for CLT encoder (required if --use-clt)", + ) + parser.add_argument( + "--clt-dtype", + type=str, + default="", + help="Optional override for CLT data type (e.g., 'float16')", + ) + parser.add_argument( + "--clt-weights-filename", + type=str, + default="", + help="Filename of the CLT weights file (supports .safetensors / .pt). If omitted, script will search for a suitable file automatically.", + ) + parser.add_argument( + "--sae-converter-name", + type=str, + default=None, + help="Name of the SAE converter to use, for SAE.from_pretrained's converter argument", + ) + + args = parser.parse_args() + + cfg = NeuronpediaRunnerConfig( + sae_set=args.sae_set, + sae_path=args.sae_path, + np_set_name=args.np_set_name, + np_sae_id_suffix=args.np_sae_id_suffix, + from_local_sae=args.from_local_sae, + huggingface_dataset_path=args.dataset_path, + sae_dtype=args.sae_dtype, + model_dtype=args.model_dtype, + outputs_dir=args.output_dir, + sparsity_threshold=args.sparsity_threshold, + prefix_str=args.prefix_str, + prepend_bos=args.prepend_bos, + n_prompts_total=args.n_prompts, + n_tokens_in_prompt=args.n_tokens_in_prompt, + n_prompts_in_forward_pass=args.n_prompts_in_forward_pass, + n_features_at_a_time=args.n_features_per_batch, + start_batch=args.start_batch, + end_batch=args.end_batch, + use_wandb=args.use_wandb, + hf_model_path=args.hf_model_path, + use_transcoder=args.use_transcoder, + use_skip_transcoder=args.use_skip_transcoder, + use_clt=args.use_clt, + clt_layer_idx=args.clt_layer_idx, + clt_dtype=args.clt_dtype, + clt_weights_filename=args.clt_weights_filename, + sae_converter_name=args.sae_converter_name, + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + +if __name__ == "__main__": + main() diff --git a/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_runner_config.py b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_runner_config.py new file mode 100644 index 0000000000000000000000000000000000000000..e484efd933a2c8b17416f782baa96427d4004e0a --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_runner_config.py @@ -0,0 +1,121 @@ +from dataclasses import dataclass +from typing import List, Optional + +DEFAULT_SPARSITY_THRESHOLD = -6 + + +@dataclass +class NeuronpediaRunnerConfig: + sae_set: str + sae_path: str + outputs_dir: str + np_sae_id_suffix: Optional[str] = ( + None # this is the __[np_sae_id_suffix] after the SAE Set + ) + np_set_name: Optional[str] = None + from_local_sae: bool = False + sparsity_threshold: int = DEFAULT_SPARSITY_THRESHOLD + huggingface_dataset_path: str = "" + + # ACTIVATION STORE PARAMETERS + # token pars + n_prompts_total: int = 24576 + n_tokens_in_prompt: int = 128 + n_prompts_in_forward_pass: int = 32 + + # batching + n_features_at_a_time: int = 128 + quantile_feature_batch_size: int = 64 + start_batch: int = 0 + end_batch: Optional[int] = None + + # quantiles + n_quantiles: int = 5 + top_acts_group_size: int = 20 + quantile_group_size: int = 5 + + # additional calculations + use_dfa: bool = False + + model_dtype: str = "" + sae_dtype: str = "" + model_id: Optional[str] = None + layer: Optional[int] = None + + sae_device: str | None = None + activation_store_device: str | None = None + model_device: str | None = None + model_n_devices: int | None = None + use_wandb: bool = False + + shuffle_tokens: bool = True + prefix_str: Optional[str] = None + suffix_str: Optional[str] = None + ignore_positions: Optional[List[int]] = None + prepend_bos: Optional[bool] = None # Override SAE default if specified + + hf_model_path: Optional[str] = None + + # If true, we load a Transcoder (inherits from SAE) instead of a standard SAE. + use_transcoder: bool = False + + # If true, we load a SkipTranscoder (inherits from Transcoder) instead. + use_skip_transcoder: bool = False + + # CLT (Cross-Layer Transcoder) specific parameters + use_clt: bool = False + clt_layer_idx: Optional[int] = None + clt_dtype: str = "" + # Optional filename for CLT weights (supports .safetensors or .pt). If empty, default search order will be used. + clt_weights_filename: str = "" + + sae_converter_name: Optional[str] = None + + +@dataclass +class NeuronpediaVectorRunnerConfig: + # Vector loading parameters + outputs_dir: str # Where to save outputs + vector_names: Optional[List[str]] = None # Names for each vector (optional) + + # Token generation parameters + n_prompts_total: int = 24576 + n_tokens_in_prompt: int = 128 + n_prompts_in_forward_pass: int = 32 + prepend_bos: bool = True # TODO: eventually include this in vector set export + prepend_chat_template_text: Optional[str] = None + + # Batching parameters + n_vectors_at_a_time: int = 128 # Similar to n_features_at_a_time + quantile_vector_batch_size: int = 64 + start_batch: int = 0 + end_batch: Optional[int] = None + + # additional calculations + use_dfa: bool = False + include_original_vectors_in_output: bool = False + activation_thresholds: Optional[dict[int, float | int]] = None + # Quantile parameters for activation analysis + n_quantiles: int = 5 + top_acts_group_size: int = 30 + quantile_group_size: int = 5 + + # Device and dtype settings + model_dtype: str = "" + vector_dtype: str = "" + model_id: Optional[str] = None + layer: Optional[int] = None + activation_store_device: str | None = None + model_device: Optional[str] = None + vector_device: Optional[str] = None + model_n_devices: Optional[int] = None + + # Dataset parameters + huggingface_dataset_path: str = "" + + # Additional settings + use_wandb: bool = False + shuffle_tokens: bool = True + prefix_str: Optional[str] = None + suffix_str: Optional[str] = None + ignore_positions: Optional[List[int]] = None diff --git a/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_vector_runner.py b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_vector_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..e444eb9244f8b310ba3ea16e71c2f61ba1759c20 --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/neuronpedia_vector_runner.py @@ -0,0 +1,693 @@ +import argparse +import gc +import json +import os +from datetime import datetime +from pathlib import Path +from typing import Dict, Set, Tuple + +import numpy as np +import torch +import wandb +import wandb.sdk +from matplotlib import colors +from sae_lens import ActivationsStore +from tqdm import tqdm +from transformer_lens import HookedTransformer + +from sae_dashboard.components_config import ( + ActsHistogramConfig, + Column, + FeatureTablesConfig, + LogitsHistogramConfig, + LogitsTableConfig, + SequencesConfig, +) + +# from sae_dashboard.data_writing_fns import save_feature_centric_vis +from sae_dashboard.layout import SaeVisLayoutConfig +from sae_dashboard.neuronpedia.neuronpedia_converter import NeuronpediaConverter +from sae_dashboard.neuronpedia.neuronpedia_runner_config import ( + NeuronpediaVectorRunnerConfig, +) +from sae_dashboard.neuronpedia.vector_set import VectorSet +from sae_dashboard.utils_fns import has_duplicate_rows +from sae_dashboard.vector_vis_data import VectorVisConfig +from sae_dashboard.vector_vis_runner import VectorVisRunner + +# set TOKENIZERS_PARALLELISM to false to avoid warnings +os.environ["TOKENIZERS_PARALLELISM"] = "false" +RUN_SETTINGS_FILE = "run_settings.json" +OUT_OF_RANGE_TOKEN = "<|outofrange|>" + +BG_COLOR_MAP = colors.LinearSegmentedColormap.from_list( + "bg_color_map", ["white", "darkorange"] +) + + +DEFAULT_FALLBACK_DEVICE = "cpu" + +# TODO: add more anomalies here +HTML_ANOMALIES = { + "âĢĶ": "—", + "âĢĵ": "–", + "âĢľ": "“", + "âĢĿ": "”", + "âĢĺ": "‘", + "âĢĻ": "’", + "âĢĭ": " ", # TODO: this is actually zero width space + "Ġ": " ", + "Ċ": "\n", + "ĉ": "\t", +} + + +class NeuronpediaVectorRunner: + def __init__( + self, + vector_set: VectorSet, + cfg: NeuronpediaVectorRunnerConfig, + ): + self.cfg = cfg + + self._setup_devices() + + # Load vectors and create VectorSet object + self.vector_set = vector_set + + # Convert vectors to specified dtype if provided + if self.cfg.vector_dtype != "": + if self.cfg.vector_dtype == "float16": + self.vector_set.vectors = self.vector_set.vectors.to( + dtype=torch.float16 + ) + elif self.cfg.vector_dtype == "float32": + self.vector_set.vectors = self.vector_set.vectors.to( + dtype=torch.float32 + ) + elif self.cfg.vector_dtype == "bfloat16": + self.vector_set.vectors = self.vector_set.vectors.to( + dtype=torch.bfloat16 + ) + else: + raise ValueError( + f"Unsupported dtype: {self.cfg.vector_dtype}, we support float16, float32, bfloat16" + ) + + # If we didn't override dtype, then use float32 as default for vectors + if self.cfg.vector_dtype == "": + print("Using default vector dtype: float32") + self.cfg.vector_dtype = "float32" + else: + print(f"Using specified vector dtype: {self.cfg.vector_dtype}") + + if self.cfg.model_dtype == "": + self.cfg.model_dtype = "float32" + + print(f"SAE Device: {self.cfg.vector_device}") + print(f"Model Device: {self.cfg.model_device}") + print(f"Model Num Devices: {self.cfg.model_n_devices}") + print(f"Activation Store Device: {self.cfg.activation_store_device}") + print(f"Dataset Path: {self.cfg.huggingface_dataset_path}") + print(f"Forward Pass size: {self.cfg.n_tokens_in_prompt}") + + # number of tokens + n_tokens_total = self.cfg.n_prompts_total * self.cfg.n_tokens_in_prompt + print(f"Total number of tokens: {n_tokens_total}") + print(f"Total number of contexts (prompts): {self.cfg.n_prompts_total}") + + # TODO: figure out the best way to handle this for VectorSets + # get the sae's cfg and check if it has from pretrained kwargs + # with open(f"{self.cfg.sae_path}/cfg.json", "r") as f: + # sae_cfg_json = self.vector_set.cfg.to_dict() + # sae_from_pretrained_kwargs = sae_cfg_json.get("from_pretrained_kwargs", {}) + # print("SAE Config on disk:") + # print(json.dumps(sae_cfg_json, indent=2)) + # if sae_from_pretrained_kwargs != {}: + # print("SAE has from_pretrained_kwargs", sae_from_pretrained_kwargs) + # else: + # print( + # "SAE does not have from_pretrained_kwargs. Standard TransformerLens Loading" + # ) + + # self.sae.cfg.dataset_path = self.cfg.huggingface_dataset_path + # self.sae.cfg.context_size = self.cfg.n_tokens_in_prompt + + print(f"Vector DType: {self.cfg.vector_dtype}") + print(f"Model DType: {self.cfg.model_dtype}") + + # Initialize Model + self.model_id = self.vector_set.cfg.model_name + self.cfg.model_id = self.model_id + self.layer = self.vector_set.cfg.hook_layer + self.cfg.layer = self.layer + self.model = HookedTransformer.from_pretrained( + model_name=self.model_id, + device=self.cfg.model_device, + n_devices=self.cfg.model_n_devices or 1, + **self.vector_set.cfg.model_from_pretrained_kwargs, + dtype=self.cfg.model_dtype, + ) + + # Initialize Activations Store + # defaults here are copied from the SAE code path + self.activations_store = ActivationsStore( + model=self.model, + dataset=self.cfg.huggingface_dataset_path, + streaming=True, + hook_name=self.vector_set.hook_point, + hook_layer=self.vector_set.hook_layer, # type: ignore + hook_head_index=self.vector_set.hook_head_index, + context_size=self.cfg.n_tokens_in_prompt, + d_in=self.vector_set.cfg.d_in, + n_batches_in_buffer=16, # apparently this doesn't matter + total_training_tokens=10**9, + store_batch_size_prompts=8, # apparently this doesn't matter either + train_batch_size_tokens=4096, + prepend_bos=True, + normalize_activations="none", + device=torch.device(self.cfg.activation_store_device or "cpu"), + dtype=self.cfg.vector_dtype, + ) + self.cached_activations_dir = Path( + f"./cached_activations/{self.model_id}_{self.vector_set.cfg.hook_name}_{self.cfg.n_prompts_total}prompts" + ) + + # override the number of context tokens if we specified one + # this is useful because sometimes the default context tokens is too large for us to quickly generate + if self.cfg.n_tokens_in_prompt is not None: + self.activations_store.context_size = self.cfg.n_tokens_in_prompt + + if not os.path.exists(cfg.outputs_dir): + os.makedirs(cfg.outputs_dir) + self.cfg.outputs_dir = self.create_output_directory() + + self.vocab_dict = self.get_vocab_dict() + + def _setup_devices(self): + """Device setup for vector runner""" + + # Get device defaults. But if we have overrides, then use those. + device_count = 1 + + # Set correct device, use multi-GPU if we have it + if torch.backends.mps.is_available(): + self.cfg.vector_device = self.cfg.vector_device or "mps" + self.cfg.model_device = self.cfg.model_device or "mps" + self.cfg.model_n_devices = self.cfg.model_n_devices or 1 + self.cfg.activation_store_device = self.cfg.activation_store_device or "mps" + elif torch.cuda.is_available(): + device_count = torch.cuda.device_count() + if device_count > 1: + self.cfg.vector_device = ( + self.cfg.vector_device or f"cuda:{device_count - 1}" + ) + self.cfg.model_n_devices = self.cfg.model_n_devices or ( + device_count - 1 + ) + else: + self.cfg.vector_device = self.cfg.vector_device or "cuda" + self.cfg.model_device = self.cfg.model_device or "cuda" + self.cfg.vector_device = self.cfg.vector_device or "cuda" + self.cfg.activation_store_device = ( + self.cfg.activation_store_device or "cuda" + ) + else: + self.cfg.vector_device = self.cfg.vector_device or "cpu" + self.cfg.model_device = self.cfg.model_device or "cpu" + self.cfg.model_n_devices = self.cfg.model_n_devices or 1 + self.cfg.activation_store_device = self.cfg.activation_store_device or "cpu" + + print(f"Device Count: {device_count}") + + def create_output_directory(self) -> str: + """ + Creates the output directory for storing generated features. + + Returns: + Path: The path to the created output directory. + """ + outputs_subdir = f"{self.model_id}_{self.vector_set.cfg.hook_name}" + outputs_dir = Path(self.cfg.outputs_dir).joinpath(outputs_subdir) + if outputs_dir.exists() and outputs_dir.is_file(): + raise ValueError( + f"Error: Output directory {outputs_dir.as_posix()} exists and is a file." + ) + outputs_dir.mkdir(parents=True, exist_ok=True) + return str(outputs_dir) + + def hash_tensor(self, tensor: torch.Tensor) -> Tuple[int, ...]: + return tuple(tensor.cpu().numpy().flatten().tolist()) + + def generate_tokens( + self, + activations_store: ActivationsStore, + n_prompts: int = 4096 * 6, + ) -> torch.Tensor: + all_tokens_list = [] + unique_sequences: Set[Tuple[int, ...]] = set() + pbar = tqdm(range(n_prompts // activations_store.store_batch_size_prompts)) + + prepend_tokens = None + if ( + self.cfg.prepend_chat_template_text is not None + and self.model.tokenizer is not None + ): + print( + f"Prepending chat template text: {self.cfg.prepend_chat_template_text}" + ) + prepend_tokens = torch.tensor( + self.model.tokenizer( + self.cfg.prepend_chat_template_text, add_special_tokens=False + ).input_ids + ).to(activations_store.device) + self.prepend_tokens_length = prepend_tokens.shape[0] + + for _ in pbar: + batch_tokens = activations_store.get_batch_tokens() + if self.cfg.shuffle_tokens: + batch_tokens = batch_tokens[torch.randperm(batch_tokens.shape[0])] + + # Check for duplicates and only add unique sequences + for seq in batch_tokens: + seq_hash = self.hash_tensor(seq) + if seq_hash not in unique_sequences: + unique_sequences.add(seq_hash) + # if we prepend chat template text, then we need to remove the BOS token from the sequence + if prepend_tokens is not None: + all_tokens_list.append( + torch.cat( + [prepend_tokens.unsqueeze(0), seq[1:].unsqueeze(0)], + dim=1, + )[ + :, : activations_store.context_size + ] # trim it back to the context size + ) + else: + all_tokens_list.append(seq.unsqueeze(0)) + + # Early exit if we've collected enough unique sequences + if len(all_tokens_list) >= n_prompts: + break + + all_tokens = torch.cat(all_tokens_list, dim=0)[:n_prompts] + if self.cfg.shuffle_tokens: + all_tokens = all_tokens[torch.randperm(all_tokens.shape[0])] + + return all_tokens + + def add_prefix_suffix_to_tokens(self, tokens: torch.Tensor) -> torch.Tensor: + original_length = tokens.shape[1] + + # return tokens if no prefix or suffix + if self.cfg.prefix_str is None and self.cfg.suffix_str is None: + return tokens + + # generate tokens for the prefix and suffix + prefix_tokens = ( + self.model.tokenizer.encode(self.cfg.prefix_str) # type: ignore + if self.cfg.prefix_str is not None + else [] + ) + suffix_tokens = ( + self.model.tokenizer.encode(self.cfg.suffix_str) # type: ignore + if self.cfg.suffix_str is not None + else [] + ) + + # Calculate how many tokens to keep from the original + keep_length = original_length - len(prefix_tokens) - len(suffix_tokens) + + if keep_length <= 0: + raise ValueError("Prefix and suffix are too long for the given tokens.") + + # Trim original tokens + tokens = tokens[:, :keep_length] + + if self.cfg.prefix_str: + prefix = torch.tensor(prefix_tokens).to(tokens.device) + prefix_repeated = prefix.unsqueeze(0).repeat(tokens.shape[0], 1) + # if sae.cfg.prepend_bos, then add that before the suffix + tokens = torch.cat([prefix_repeated, tokens], dim=1) + + if self.cfg.suffix_str: + suffix = torch.tensor(suffix_tokens).to(tokens.device) + suffix_repeated = suffix.unsqueeze(0).repeat(tokens.shape[0], 1) + tokens = torch.cat([tokens, suffix_repeated], dim=1) + + # assert length hasn't changed + assert tokens.shape[1] == original_length + return tokens + + def get_feature_batches(self): + # Simplified batching for vectors + n_vectors = self.vector_set.cfg.d_vectors + vector_indices = list(range(n_vectors)) + + # Divide into batches + n_subarrays = np.ceil(n_vectors / self.cfg.n_vectors_at_a_time).astype(int) + batches = np.array_split(vector_indices, n_subarrays) + return [x.tolist() for x in batches] + + def get_tokens(self): + tokens_file = f"{self.cfg.outputs_dir}/tokens_{self.cfg.n_prompts_total}.pt" + if os.path.isfile(tokens_file): + print("Tokens exist, loading them.") + tokens = torch.load(tokens_file) + else: + print("Tokens don't exist, making them.") + tokens = self.generate_tokens( + self.activations_store, + self.cfg.n_prompts_total, + ) + torch.save( + tokens, + tokens_file, + ) + + assert not has_duplicate_rows(tokens), "Duplicate rows in tokens" + + return tokens + + def get_vocab_dict(self) -> Dict[int, str]: + # get vocab + vocab_dict = self.model.tokenizer.vocab # type: ignore + new_vocab_dict = {} + # Replace substrings in the keys of vocab_dict using HTML_ANOMALIES + for k, v in vocab_dict.items(): # type: ignore + modified_key = k + for anomaly in HTML_ANOMALIES: + modified_key = modified_key.replace(anomaly, HTML_ANOMALIES[anomaly]) + new_vocab_dict[v] = modified_key + vocab_dict = new_vocab_dict + # pad with blank tokens to the actual vocab size + for i in range(len(vocab_dict), self.model.cfg.d_vocab): + vocab_dict[i] = OUT_OF_RANGE_TOKEN + return vocab_dict + + # TODO: make this function simpler + def run(self): + run_settings_path = self.cfg.outputs_dir + "/" + RUN_SETTINGS_FILE + run_settings = self.cfg.__dict__ + with open(run_settings_path, "w") as f: + json.dump(run_settings, f, indent=4) + + wandb_cfg = self.cfg.__dict__ + current_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + + if self.cfg.use_wandb: + wandb.init( + project="vector-dashboard-generation", + name=f"{self.model_id}_{self.vector_set.cfg.hook_name}_{current_time}", + save_code=True, + mode="online", + config=wandb_cfg, + ) + + # Use number of vectors instead of features + self.n_features = self.vector_set.cfg.d_vectors + assert self.n_features is not None + + feature_idx = self.get_feature_batches() + if self.cfg.start_batch >= len(feature_idx): + print( + f"Start batch {self.cfg.start_batch} is greater than number of batches {len(feature_idx)}, exiting" + ) + exit() + + tokens = self.get_tokens() + tokens = self.add_prefix_suffix_to_tokens(tokens) + + if self.activations_store is not None: + del self.activations_store + + with torch.no_grad(): + for feature_batch_count, features_to_process in tqdm( + enumerate(feature_idx) + ): + if feature_batch_count < self.cfg.start_batch: + feature_batch_count = feature_batch_count + 1 + continue + if ( + self.cfg.end_batch is not None + and feature_batch_count > self.cfg.end_batch + ): + feature_batch_count = feature_batch_count + 1 + continue + + output_file = f"{self.cfg.outputs_dir}/batch-{feature_batch_count}.json" + # if output_file exists, skip + if os.path.isfile(output_file): + logline = f"\n++++++++++ Skipping Batch #{feature_batch_count} output. File exists: {output_file} ++++++++++\n" + print(logline) + continue + + print(f"========== Running Batch #{feature_batch_count} ==========") + + layout = SaeVisLayoutConfig( + columns=[ + Column( + SequencesConfig( + stack_mode="stack-all", + buffer=None, # type: ignore + compute_buffer=True, + n_quantiles=self.cfg.n_quantiles, + top_acts_group_size=self.cfg.top_acts_group_size, + quantile_group_size=self.cfg.quantile_group_size, + ), + ActsHistogramConfig(), + LogitsHistogramConfig(), + LogitsTableConfig(), + FeatureTablesConfig(n_rows=3), + ) + ] + ) + + if self.prepend_tokens_length is not None: + if self.cfg.ignore_positions is not None: + self.cfg.ignore_positions.extend( + range(self.prepend_tokens_length) + ) + else: + self.cfg.ignore_positions = list( + range(self.prepend_tokens_length) + ) + + vector_vis_config_gpt = VectorVisConfig( + hook_point=self.vector_set.cfg.hook_name, + vector_indices=features_to_process, + minibatch_size_features=self.cfg.n_vectors_at_a_time, + minibatch_size_tokens=self.cfg.n_prompts_in_forward_pass, + quantile_feature_batch_size=self.cfg.quantile_vector_batch_size, + verbose=True, + device=self.cfg.vector_device or DEFAULT_FALLBACK_DEVICE, + feature_centric_layout=layout, + perform_ablation_experiments=False, + dtype=self.cfg.vector_dtype, + cache_dir=self.cached_activations_dir, + ignore_tokens={ + self.model.tokenizer.pad_token_id, # type: ignore + self.model.tokenizer.bos_token_id, # type: ignore + self.model.tokenizer.eos_token_id, # type: ignore + }, # type: ignore + ignore_positions=self.cfg.ignore_positions or [], + ignore_thresholds=self.cfg.activation_thresholds, + use_dfa=self.cfg.use_dfa, + ) + + vector_data = VectorVisRunner(vector_vis_config_gpt).run( + encoder=self.vector_set, + model=self.model, + tokens=tokens, + ) + + self.cfg.model_id = self.model_id + self.cfg.layer = self.layer + # add the original vectors if include_original_vectors_in_output is True + json_object = NeuronpediaConverter.convert_to_np_json( + self.model, + vector_data, + self.cfg, + self.vocab_dict, + ( + self.vector_set.vectors + if self.cfg.include_original_vectors_in_output + else None + ), + ) + with open( + output_file, + "w", + ) as f: + f.write(json_object) + print(f"Output written to {output_file}") + + logline = f"\n========== Completed Batch #{feature_batch_count} output: {output_file} ==========\n" + if self.cfg.use_wandb: + wandb.log( + {"batch": feature_batch_count}, + step=feature_batch_count, + ) + # Clean up after each batch + del vector_data + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + if self.cfg.use_wandb: + wandb.sdk.finish() + + +def main(): + parser = argparse.ArgumentParser( + description="Run Neuronpedia vector feature generation" + ) + # Required vector loading parameters + parser.add_argument("--output-dir", required=True, help="Output directory") + parser.add_argument( + "--vector-names", nargs="+", help="Optional names for each vector" + ) + + # Dataset parameters + parser.add_argument( + "--dataset-path", required=True, help="HuggingFace dataset path" + ) + + # Vector set parameters + parser.add_argument( + "--vector-set-path", required=True, help="Path to the vector set JSON file" + ) + + # Token generation parameters + parser.add_argument( + "--n-prompts", type=int, default=24576, help="Total number of prompts" + ) + parser.add_argument( + "--n-tokens-in-prompt", + type=int, + default=128, + help="Number of tokens in each prompt", + ) + parser.add_argument( + "--n-prompts-in-forward-pass", + type=int, + default=32, + help="Number of prompts to process in each forward pass", + ) + parser.add_argument( + "--no-prepend-bos", + action="store_false", + dest="prepend_bos", + help="Don't prepend BOS token to sequences", + ) + + # Batching parameters + parser.add_argument( + "--n-vectors-at-a-time", + type=int, + default=128, + help="Number of vectors to process at once", + ) + parser.add_argument( + "--quantile-vector-batch-size", + type=int, + default=64, + help="Batch size for quantile calculations", + ) + parser.add_argument( + "--start-batch", type=int, default=0, help="Starting batch number" + ) + parser.add_argument( + "--end-batch", type=int, default=None, help="Ending batch number" + ) + + # Device and dtype settings + parser.add_argument( + "--model-dtype", default="", help="Data type for model computations" + ) + parser.add_argument( + "--vector-dtype", default="", help="Data type for vector computations" + ) + parser.add_argument("--activation-store-device", help="Device for activation store") + parser.add_argument("--model-device", help="Device for model") + parser.add_argument("--vector-device", help="Device for vector operations") + parser.add_argument( + "--model-n-devices", type=int, help="Number of devices for model" + ) + + # Quantile parameters + parser.add_argument( + "--n-quantiles", type=int, default=5, help="Number of quantiles" + ) + parser.add_argument( + "--top-acts-group-size", + type=int, + default=30, + help="Group size for top activations", + ) + parser.add_argument( + "--quantile-group-size", type=int, default=5, help="Group size for quantiles" + ) + + # Additional settings + parser.add_argument("--use-dfa", action="store_true", help="Use DFA calculations") + parser.add_argument( + "--use-wandb", action="store_true", help="Use Weights & Biases for logging" + ) + parser.add_argument( + "--no-shuffle-tokens", + action="store_false", + dest="shuffle_tokens", + help="Don't shuffle tokens", + ) + parser.add_argument( + "--prefix-str", + type=str, + default=None, + help="Optional string to prepend to each prompt. Example: --prefix-str '<|im_start|>user\n'", + ) + parser.add_argument( + "--ignore-positions", + type=int, + nargs="+", + help="Positions to ignore in sequences", + ) + + args = parser.parse_args() + + cfg = NeuronpediaVectorRunnerConfig( + outputs_dir=args.output_dir, + vector_names=args.vector_names, + n_prompts_total=args.n_prompts, + n_tokens_in_prompt=args.n_tokens_in_prompt, + n_prompts_in_forward_pass=args.n_prompts_in_forward_pass, + prepend_bos=args.prepend_bos, + n_vectors_at_a_time=args.n_vectors_at_a_time, + quantile_vector_batch_size=args.quantile_vector_batch_size, + start_batch=args.start_batch, + end_batch=args.end_batch, + use_dfa=args.use_dfa, + n_quantiles=args.n_quantiles, + top_acts_group_size=args.top_acts_group_size, + quantile_group_size=args.quantile_group_size, + model_dtype=args.model_dtype, + vector_dtype=args.vector_dtype, + activation_store_device=args.activation_store_device, + model_device=args.model_device, + vector_device=args.vector_device, + model_n_devices=args.model_n_devices, + huggingface_dataset_path=args.dataset_path, + use_wandb=args.use_wandb, + shuffle_tokens=args.shuffle_tokens, + prefix_str=args.prefix_str, + ignore_positions=args.ignore_positions, + ) + + # Note: You'll need to pass a VectorSet instance here + vector_set = VectorSet.load(args.vector_set_path) + runner = NeuronpediaVectorRunner(vector_set=vector_set, cfg=cfg) + runner.run() + + +if __name__ == "__main__": + main() + main() diff --git a/SAEDashboard/sae_dashboard/neuronpedia/vector_set.py b/SAEDashboard/sae_dashboard/neuronpedia/vector_set.py new file mode 100644 index 0000000000000000000000000000000000000000..d6032934487a392196e54d0a331893e64dd37282 --- /dev/null +++ b/SAEDashboard/sae_dashboard/neuronpedia/vector_set.py @@ -0,0 +1,221 @@ +import json +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Dict, List, Optional + +import torch + + +@dataclass +class VectorSetConfig: + # Core vector properties + d_in: int + d_vectors: int # Number of vectors (replaces d_sae) + vector_names: List[str] # Names for each vector + + # Model/hook details + model_name: str + hook_name: str # e.g., 'hook_resid_pre' + hook_layer: int + hook_head_index: int | None + prepend_bos: bool + + # Dataset details (needed for activation store) + context_size: int + dataset_path: str + + # Device/dtype settings + dtype: str + device: str + + # Optional metadata + model_from_pretrained_kwargs: Dict[str, Any] = field(default_factory=dict) + + +class VectorSet: + """Class to handle probe vectors, similar to how SAE handles features""" + + def __init__( + self, + vectors: torch.Tensor, # [n_vectors, d_model] + names: List[str], + hook_point: str, + hook_layer: int, + hook_head_index: int | None, + prepend_bos: bool, + device: str = "cpu", + dtype: str = "float32", + dataset_path: str = "", + context_size: int = 128, + model_name: str = "", + model_from_pretrained_kwargs: Optional[Dict[str, Any]] = None, + ): + self.vectors = vectors.to(device=device) + self.names = names + self.hook_point = hook_point + self.hook_layer = hook_layer + self.hook_head_index = hook_head_index + self.prepend_bos = prepend_bos + + self.cfg = VectorSetConfig( + d_in=vectors.shape[1], + d_vectors=len(vectors), + vector_names=names, + model_name=model_name, + hook_name=hook_point, + hook_layer=hook_layer, + hook_head_index=hook_head_index, + prepend_bos=prepend_bos, + context_size=context_size, + dataset_path=dataset_path, + dtype=dtype, + device=device, + model_from_pretrained_kwargs=model_from_pretrained_kwargs or {}, + ) + + @classmethod + def from_json( + cls, + json_path: str | Path, + d_model: int, + hook_point: str, + hook_layer: int, + model_name: str, + names: List[str] | None = None, + **kwargs: Any, + ) -> "VectorSet": + """Load vectors from a JSON file where they're stored as 1D arrays + + Args: + json_path: Path to JSON file containing vectors + d_model: Model dimension to reshape vectors into + hook_point: Name of hook point (e.g. 'resid_pre') + hook_layer: Layer number + model_name: Name of model + names: Optional list of names for vectors. If None, will generate numbered names + **kwargs: Additional arguments passed to VectorSet constructor + """ + with open(json_path) as f: + data = json.load(f) + + # Convert 1D arrays to 2D tensor + vectors_list = [torch.tensor(vec) for vec in data["vectors"]] + vectors = torch.stack(vectors_list) + + # Reshape if needed + if vectors.dim() == 2 and vectors.shape[1] != d_model: + n_vectors = vectors.shape[0] + vectors = vectors.reshape(n_vectors, d_model) + + # Generate names if not provided + if names is None: + names = [f"vector_{i}" for i in range(len(vectors))] + + return cls( + vectors=vectors, + names=names, + hook_point=hook_point, + hook_layer=hook_layer, + hook_head_index=None, # Assuming these are not head-specific vectors + prepend_bos=True, # Default to True for most use cases + model_name=model_name, + **kwargs, + ) + + @classmethod + def load_vector_json( + cls, + json_path: str | Path, + d_model: int, + hook_point: str, + hook_layer: int, + model_name: str, + names: List[str] | None = None, + **kwargs: Any, + ) -> "VectorSet": + """Load vectors from a JSON file where they're stored as 1D arrays (without config) + + Args: + json_path: Path to JSON file containing vectors + d_model: Model dimension to reshape vectors into + hook_point: Name of hook point (e.g. 'resid_pre') + hook_layer: Layer number + model_name: Name of model + names: Optional list of names for vectors. If None, will generate numbered names + **kwargs: Additional arguments passed to VectorSet constructor + """ + with open(json_path) as f: + data = json.load(f) + + # Convert 1D arrays to 2D tensor + vectors_list = [torch.tensor(vec) for vec in data["vectors"]] + vectors = torch.stack(vectors_list) + + # Reshape if needed + if vectors.dim() == 2 and vectors.shape[1] != d_model: + n_vectors = vectors.shape[0] + vectors = vectors.reshape(n_vectors, d_model) + + # Generate names if not provided + if names is None: + names = [f"vector_{i}" for i in range(len(vectors))] + + return cls( + vectors=vectors, + names=names, + hook_point=hook_point, + hook_layer=hook_layer, + hook_head_index=None, # Assuming these are not head-specific vectors + prepend_bos=True, # Default to True for most use cases + model_name=model_name, + **kwargs, + ) + + def encode(self, acts: torch.Tensor) -> torch.Tensor: + """Compute dot product between activations and probe vectors""" + return torch.einsum("...d,nd->...n", acts, self.vectors) + + def save(self, path: str | Path) -> None: + """Save the VectorSet (vectors and config) to a JSON file + + Args: + path: Path to save the JSON file + """ + save_data = { + "vectors": self.vectors.cpu().tolist(), + "config": self.cfg.__dict__, + } + + with open(path, "w") as f: + json.dump(save_data, f) + + @classmethod + def load(cls, path: str | Path) -> "VectorSet": + """Load a complete VectorSet (vectors and config) from a JSON file + + Args: + path: Path to the JSON file containing the VectorSet + + Returns: + VectorSet: The loaded VectorSet instance + """ + with open(path) as f: + data = json.load(f) + + vectors = torch.tensor(data["vectors"]) + config = data["config"] + + return cls( + vectors=vectors, + names=config["vector_names"], + hook_point=config["hook_name"], + hook_layer=config["hook_layer"], + hook_head_index=config["hook_head_index"], + prepend_bos=config["prepend_bos"], + device=config["device"], + dtype=config["dtype"], + dataset_path=config["dataset_path"], + context_size=config["context_size"], + model_name=config["model_name"], + model_from_pretrained_kwargs=config["model_from_pretrained_kwargs"], + ) diff --git a/SAEDashboard/sae_dashboard/sae_vis_data.py b/SAEDashboard/sae_dashboard/sae_vis_data.py new file mode 100644 index 0000000000000000000000000000000000000000..e15f5ec4c3404ad3b3863f67137be4ba7870d9e7 --- /dev/null +++ b/SAEDashboard/sae_dashboard/sae_vis_data.py @@ -0,0 +1,204 @@ +import json +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Iterable + +from dataclasses_json import dataclass_json +from rich import print as rprint +from rich.table import Table +from sae_lens import SAE +from transformer_lens import HookedTransformer + +from sae_dashboard.feature_data import FeatureData +from sae_dashboard.layout import SaeVisLayoutConfig +from sae_dashboard.utils_fns import FeatureStatistics + +SAE_CONFIG_DICT = dict( + hook_point="The hook point to use for the SAE", + features="The set of features which we'll be gathering data for. If an integer, we only get data for 1 feature", + batch_size="The number of sequences we'll gather data for. If supplied then it can't be larger than `tokens[0]`, \ +if not then we use all of `tokens`", + minibatch_size_tokens="The minibatch size we'll use to split up the full batch during forward passes, to avoid \ +OOMs.", + minibatch_size_features="The feature minibatch size we'll use to split up our features, to avoid OOM errors", + seed="Random seed, for reproducibility (e.g. sampling quantiles)", + verbose="Whether to print out progress messages and other info during the data gathering process", +) + +OUT_OF_RANGE_TOKEN = "<|outofrange|>" + + +@dataclass_json +@dataclass +class SaeVisConfig: + # Data + hook_point: str + features: Iterable[int] + minibatch_size_features: int = 256 + minibatch_size_tokens: int = 64 + quantile_feature_batch_size: int = 64 + perform_ablation_experiments: bool = False + device: str = "cpu" + dtype: str = "float32" + ignore_tokens: set[int] = field(default_factory=set) + ignore_positions: list[int] = field(default_factory=list) + + # Vis + feature_centric_layout: SaeVisLayoutConfig = field( + default_factory=SaeVisLayoutConfig.default_feature_centric_layout + ) + prompt_centric_layout: SaeVisLayoutConfig = field( + default_factory=SaeVisLayoutConfig.default_prompt_centric_layout + ) + + # Additional computations + use_dfa: bool = False + + # Misc + seed: int | None = 0 + verbose: bool = False + cache_dir: Path | None = None # Path to cache the data + + def to_dict(self) -> dict[str, Any]: + """Used for type hinting (the actual method comes from the `dataclass_json` decorator).""" + ... + + def help(self, title: str = "SaeVisConfig"): + """ + Performs the `help` method for both of the layout objects, as well as for the non-layout-based configs. + """ + # Create table for all the non-layout-based params + table = Table( + "Param", "Value (default)", "Description", title=title, show_lines=True + ) + + # Populate table (middle row is formatted based on whether value has changed from default) + for param, desc in SAE_CONFIG_DICT.items(): + value = getattr(self, param) + value_default = getattr(self.__class__, param, "no default") + if value != value_default: + value_default_repr = ( + "no default" + if value_default == "no default" + else repr(value_default) + ) + value_str = f"[b dark_orange]{value!r}[/]\n({value_default_repr})" + else: + value_str = f"[b #00aa00]{value!r}[/]" + table.add_row(param, value_str, f"[i]{desc}[/]") + + # Print table, and print the help trees for the layout objects + rprint(table) + self.feature_centric_layout.help( + title="SaeVisLayoutConfig: feature-centric vis", key=False + ) + self.prompt_centric_layout.help( + title="SaeVisLayoutConfig: prompt-centric vis", key=False + ) + + +@dataclass_json +@dataclass +class _SaeVisData: + """ + Dataclass which is used to store the data for the SaeVisData class. It excludes everything which isn't easily + serializable, only saving the raw data. + """ + + feature_data_dict: dict[int, FeatureData] = field(default_factory=dict) + feature_stats: FeatureStatistics = field(default_factory=FeatureStatistics) + + @classmethod + def from_dict( + cls, data: dict[str, Any] + ) -> ( + "_SaeVisData" + ): ... # just for type hinting; the method comes from 'dataclass_json' + + def to_dict( + self, + ) -> dict[ + str, Any + ]: ... # just for type hinting; the method comes from 'dataclass_json' + + +@dataclass +class SaeVisData: + """ + This contains all the data necessary for constructing the feature-centric visualization, over multiple + features (i.e. being able to navigate through them). See diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + Args: + feature_data_dict: Contains the data for each individual feature-centric vis. + feature_stats: Contains the stats over all features (including the quantiles of activation values for each + feature (used for rank-ordering features in the prompt-centric vis). + cfg: The vis config, used for the both the data gathering and the vis layout. + model: The model which our encoder was trained on. + encoder: The encoder used to get the feature activations. + """ + + cfg: SaeVisConfig # = field(default_factory=SaeVisConfig) + feature_data_dict: dict[int, FeatureData] = field(default_factory=dict) + feature_stats: FeatureStatistics = field(default_factory=FeatureStatistics) + + model: HookedTransformer | None = None + encoder: SAE | None = None # type: ignore + + def update(self, other: "SaeVisData") -> None: + """ + Updates a SaeVisData object with the data from another SaeVisData object. This is useful during the + `get_feature_data` function, since this function is broken up into different groups of features then merged + together. + """ + if other is None: + return + self.feature_data_dict.update(other.feature_data_dict) + self.feature_stats.update(other.feature_stats) + + def save_json(self: "SaeVisData", filename: str | Path) -> None: + """ + Saves an SaeVisData instance to a JSON file. The config, model & encoder arguments must be user-supplied. + """ + if isinstance(filename, str): + filename = Path(filename) + assert filename.suffix == ".json", "Filename must have a .json extension" + + _self = _SaeVisData( + feature_data_dict=self.feature_data_dict, + feature_stats=self.feature_stats, + ) + + with open(filename, "w") as f: + json.dump(_self.to_dict(), f) + + @classmethod + def load_json( + cls, + filename: str | Path, + cfg: SaeVisConfig, + model: HookedTransformer, + encoder: SAE, # type: ignore + ) -> "SaeVisData": + """ + Loads an SaeVisData instance from JSON file. The config, model & encoder arguments must be user-supplied. + """ + if isinstance(filename, str): + filename = Path(filename) + assert filename.suffix == ".json", "Filename must have a .json extension" + + with open(filename) as f: + data = json.load(f) + + _self = _SaeVisData.from_dict(data) + + self = SaeVisData( + cfg=cfg, + feature_data_dict=_self.feature_data_dict, + feature_stats=_self.feature_stats, + model=model, + encoder=encoder, + ) + + return self diff --git a/SAEDashboard/sae_dashboard/sae_vis_runner.py b/SAEDashboard/sae_dashboard/sae_vis_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..5dccd1cddfdd8acf74bbfb923a46b27f9926f697 --- /dev/null +++ b/SAEDashboard/sae_dashboard/sae_vis_runner.py @@ -0,0 +1,363 @@ +import math +import random +import re +from collections import defaultdict +from typing import Iterable, List, Union + +import einops +import numpy as np +import torch +from jaxtyping import Int +from rich import print as rprint +from rich.table import Table +from sae_lens import SAE, HookedSAETransformer +from sae_lens.config import DTYPE_MAP as DTYPES +from torch import Tensor +from tqdm.auto import tqdm + +from sae_dashboard.components import ( + ActsHistogramData, + DecoderWeightsDistribution, + FeatureTablesData, + LogitsHistogramData, +) +from sae_dashboard.data_parsing_fns import ( + get_features_table_data, + get_logits_table_data, +) +from sae_dashboard.feature_data import FeatureData +from sae_dashboard.feature_data_generator import FeatureDataGenerator +from sae_dashboard.sae_vis_data import SaeVisConfig, SaeVisData +from sae_dashboard.sequence_data_generator import SequenceDataGenerator +from sae_dashboard.transformer_lens_wrapper import ( + ActivationConfig, + TransformerLensWrapper, +) +from sae_dashboard.utils_fns import FeatureStatistics + + +class FeatureDataGeneratorFactory: + @staticmethod + def create( + cfg: SaeVisConfig, + model: HookedSAETransformer, + encoder: SAE, # type: ignore + tokens: Int[Tensor, "batch seq"], + ) -> FeatureDataGenerator: + """Builds a FeatureDataGenerator using the provided config and model.""" + activation_config = ActivationConfig( + primary_hook_point=cfg.hook_point, + auxiliary_hook_points=( + [ + re.sub(r"hook_z", "hook_v", cfg.hook_point), + re.sub(r"hook_z", "hook_pattern", cfg.hook_point), + ] + if cfg.use_dfa + else [] + ), + ) + wrapped_model = TransformerLensWrapper(model, activation_config) + return FeatureDataGenerator( + cfg=cfg, model=wrapped_model, encoder=encoder, tokens=tokens # type: ignore + ) + + +class SaeVisRunner: + def __init__(self, cfg: SaeVisConfig) -> None: + self.cfg = cfg + self.device = self.cfg.device + self.dtype = DTYPES[self.cfg.dtype] + if self.cfg.cache_dir is not None: + self.cfg.cache_dir.mkdir(parents=True, exist_ok=True) + + @torch.inference_mode() + def run( + self, + encoder: SAE, # type: ignore + model: HookedSAETransformer, + tokens: Int[Tensor, "batch seq"], + ) -> SaeVisData: + # Apply random seed + self.set_seeds() + + # add extra method to SAE which is not yet provided by SAE Lens. + # encoder = self.mock_feature_acts_subset_for_now(encoder) + + # Skip fold_W_dec_norm for CLT wrappers as they don't support this method + if "CLTLayerWrapper" in str(type(encoder)): + print("SaeVisRunner: Skipping fold_W_dec_norm() for CLT wrapper.") + else: + encoder.fold_W_dec_norm() + + # turn off reshaping mode since that's not useful if we're caching activations on disk + if "CLTLayerWrapper" in str(type(encoder)): + print("SaeVisRunner: Skipping hook_z_reshaping_mode check for CLT wrapper.") + elif encoder.hook_z_reshaping_mode: + encoder.turn_off_forward_pass_hook_z_reshaping() + + # set precision on encoders and model + # encoder = encoder.to(DTYPES[self.cfg.dtype]) + # # model = cast(HookedTransformer, model.to(DTYPES[self.cfg.dtype])) + + # Create objects to store all the data we'll get from `_get_feature_data` + sae_vis_data = SaeVisData(cfg=self.cfg) + # model.to(self.cfg.device) + # encoder = encoder.to(self.cfg.device) + time_logs = defaultdict(float) + + features_list = self.handle_features(self.cfg.features, encoder) + feature_batches = self.get_feature_batches(features_list) + progress = self.get_progress_bar(tokens, feature_batches, features_list) + + feature_data_generator = FeatureDataGeneratorFactory.create( + self.cfg, model, encoder, tokens + ) + + sequence_data_generator = SequenceDataGenerator( + cfg=self.cfg, + tokens=tokens, + W_U=model.W_U, + ) + + all_consolidated_dfa_results = { + feature_idx: {} for feature_idx in self.cfg.features + } + # For each batch of features: get new data and update global data storage objects + # TODO: We should write out json files with the results as this runs rather than storing everything in memory + for features in feature_batches: + # model and sae activations calculations. + + ( + all_feat_acts, + _, # all resid post. no longer used. + feature_resid_dir, + feature_out_dir, + corrcoef_neurons, + corrcoef_encoder, + batch_dfa_results, + ) = feature_data_generator.get_feature_data(features, progress) + + # Get the logits of all features (i.e. the directions this feature writes to the logit output) + logits = einops.einsum( + feature_resid_dir.to(device=model.W_U.device, dtype=model.W_U.dtype), + model.W_U, + "feats d_model, d_model d_vocab -> feats d_vocab", + ).to(self.device) + + # ! Get stats (including quantiles, which will be useful for the prompt-centric visualisation) + feature_stats = FeatureStatistics.create( + data=einops.rearrange(all_feat_acts, "b s feats -> feats (b s)"), + batch_size=self.cfg.quantile_feature_batch_size, + ) + + # ! Data setup code (defining the main objects we'll eventually return) + feature_data_dict: dict[int, FeatureData] = { + feat: FeatureData() for feat in features + } + + # We're using `cfg.feature_centric_layout` to figure out what data we'll need to calculate during this function + layout = self.cfg.feature_centric_layout + + feature_tables_data = get_features_table_data( + feature_out_dir=feature_out_dir, + corrcoef_neurons=corrcoef_neurons, + corrcoef_encoder=corrcoef_encoder, + n_rows=layout.feature_tables_cfg.n_rows, # type: ignore + ) + + # Add all this data to the list of FeatureTablesData objects + if batch_dfa_results: + # Accumulate DFA results across feature batches + for feature_idx, feature_data in batch_dfa_results.items(): + all_consolidated_dfa_results[feature_idx].update(feature_data) + + for i, (feat, logit_vector) in enumerate(zip(features, logits)): + feature_data_dict[feat].feature_tables_data = FeatureTablesData( + **{k: v[i] for k, v in feature_tables_data.items()} # type: ignore + ) + + # Get logits histogram data (no title) + feature_data_dict[feat].logits_histogram_data = ( + LogitsHistogramData.from_data( + data=logit_vector.to( + torch.float32 + ), # need this otherwise fails on MPS + n_bins=layout.logits_hist_cfg.n_bins, # type: ignore + tickmode="5 ticks", + title=None, + ) + ) + + # Get data for feature activations histogram (including the title!) + feat_acts = all_feat_acts[..., i] + + # Create a mask for tokens to ignore based on both ID and position + ignore_tokens_mask = torch.ones_like(tokens, dtype=torch.bool) + if self.cfg.ignore_tokens: + ignore_tokens_mask &= ~torch.isin( + tokens, + torch.tensor( + list(self.cfg.ignore_tokens), + dtype=tokens.dtype, + device=tokens.device, + ), + ) + if self.cfg.ignore_positions: + ignore_positions_mask = torch.ones_like(tokens, dtype=torch.bool) + ignore_positions_mask[:, self.cfg.ignore_positions] = False + ignore_tokens_mask &= ignore_positions_mask + + # Move the mask to the same device as feat_acts + ignore_tokens_mask = ignore_tokens_mask.to(feat_acts.device) + + # set any masked positions to 0 + masked_feat_acts = feat_acts * ignore_tokens_mask + + # Apply the mask to feat_acts + nonzero_feat_acts = masked_feat_acts[masked_feat_acts > 0] + frac_nonzero = nonzero_feat_acts.numel() / masked_feat_acts.numel() + + feature_data_dict[feat].acts_histogram_data = ( + ActsHistogramData.from_data( + data=nonzero_feat_acts.to( + torch.float32 + ), # need this otherwise fails on MPS + n_bins=layout.act_hist_cfg.n_bins, # type: ignore + tickmode="5 ticks", + title=f"ACTIVATIONS
DENSITY = {frac_nonzero:.3%}", + ) + ) + + # Create a MiddlePlotsData object from this, and add it to the dict + feature_data_dict[feat].logits_table_data = get_logits_table_data( + logit_vector=logit_vector, + n_rows=layout.logits_table_cfg.n_rows, # type: ignore + ) + + # ! Calculate all data for the right-hand visualisations, i.e. the sequences + + # Add this feature's sequence data to the list + feature_data_dict[feat].sequence_data = ( + sequence_data_generator.get_sequences_data( + feat_acts=masked_feat_acts, + feat_logits=logits[i], + resid_post=torch.tensor([]), # no longer used + feature_resid_dir=feature_resid_dir[i], + ) + ) + if self.cfg.use_dfa: + feature_data_dict[feat].dfa_data = all_consolidated_dfa_results.get( + feat, None + ) + feature_data_dict[feat].decoder_weights_data = ( + get_decoder_weights_distribution(encoder, model, feat)[0] + ) + + # Update the 2nd progress bar (fwd passes & getting sequence data dominates the runtime of these computations) + if progress is not None: + progress[1].update(1) + + # ! Return the output, as a dict of FeatureData items + new_feature_data = SaeVisData( + cfg=self.cfg, + feature_data_dict=feature_data_dict, + feature_stats=feature_stats, + ) + + sae_vis_data.update(new_feature_data) + + # Now exited, make sure the progress bar is at 100% + if progress is not None: + for pbar in progress: + pbar.n = pbar.total + + # If verbose, then print the output + if self.cfg.verbose: + total_time = sum(time_logs.values()) + table = Table("Task", "Time", "Pct %") + for task, duration in time_logs.items(): + table.add_row(task, f"{duration:.2f}s", f"{duration/total_time:.1%}") + rprint(table) + + sae_vis_data.cfg = self.cfg + sae_vis_data.model = model + sae_vis_data.encoder = encoder + + return sae_vis_data + + def set_seeds(self) -> None: + if self.cfg.seed is not None: + random.seed(self.cfg.seed) + torch.manual_seed(self.cfg.seed) + np.random.seed(self.cfg.seed) + return None + + def handle_features( + self, features: Iterable[int] | None, encoder_wrapper: SAE # type: ignore + ) -> list[int]: + if features is None: + return list(range(encoder_wrapper.cfg.d_sae)) + else: + return list(features) + + def get_feature_batches(self, features_list: list[int]) -> list[list[int]]: + # Break up the features into batches + feature_batches = [ + x.tolist() + for x in torch.tensor(features_list).split(self.cfg.minibatch_size_features) + ] + return feature_batches + + def get_progress_bar( + self, + tokens: Int[Tensor, "batch seq"], + feature_batches: list[list[int]], + features_list: list[int], + ): + # Calculate how many minibatches of tokens there will be (for the progress bar) + n_token_batches = ( + 1 + if (self.cfg.minibatch_size_tokens is None) + else math.ceil(len(tokens) / self.cfg.minibatch_size_tokens) + ) + + # Get the denominator for each of the 2 progress bars + totals = (n_token_batches * len(feature_batches), len(features_list)) + + # Optionally add two progress bars (one for the forward passes, one for getting the sequence data) + if self.cfg.verbose: + progress = [ + tqdm(total=totals[0], desc="Forward passes to cache data for vis"), + tqdm(total=totals[1], desc="Extracting vis data from cached data"), + ] + else: + progress = None + + return progress + + +def get_decoder_weights_distribution( + encoder: SAE, # type: ignore + model: HookedSAETransformer, + feature_idx: Union[int, List[int]], +) -> List[DecoderWeightsDistribution]: + if not isinstance(feature_idx, list): + feature_idx = [feature_idx] + + distribs = [] + for feature in feature_idx: + att_blocks = einops.rearrange( + encoder.W_dec[feature, :], + "(n_head d_head) -> n_head d_head", + n_head=model.cfg.n_heads, + ).to("cpu") + decoder_weights_distribution = ( + att_blocks.norm(dim=1) / att_blocks.norm(dim=1).sum() + ) + distribs.append( + DecoderWeightsDistribution( + model.cfg.n_heads, [float(x) for x in decoder_weights_distribution] + ) + ) + + return distribs diff --git a/SAEDashboard/sae_dashboard/sequence_data_generator.py b/SAEDashboard/sae_dashboard/sequence_data_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..2b9f70b49f251a69352679fd265b7c805dfa912e --- /dev/null +++ b/SAEDashboard/sae_dashboard/sequence_data_generator.py @@ -0,0 +1,372 @@ +import einops +import numpy as np +import torch +from eindex import eindex +from jaxtyping import Float, Int +from torch import Tensor + +from sae_dashboard.components import ( + SequenceData, + SequenceGroupData, + SequenceMultiGroupData, +) +from sae_dashboard.components_config import SequencesConfig +from sae_dashboard.sae_vis_data import SaeVisConfig +from sae_dashboard.utils_fns import TopK, k_largest_indices, random_range_indices +from sae_dashboard.vector_vis_data import VectorVisConfig + +Arr = np.ndarray + + +class SequenceDataGenerator: + cfg: SaeVisConfig | VectorVisConfig + seq_cfg: SequencesConfig + + def __init__( + self, + cfg: SaeVisConfig | VectorVisConfig, + tokens: Int[Tensor, "batch seq"], + W_U: Float[Tensor, "d_model d_vocab"], + ): + self.cfg = cfg + assert self.cfg.feature_centric_layout.seq_cfg is not None + self.seq_cfg = self.cfg.feature_centric_layout.seq_cfg + self.tokens = tokens + self.W_U = W_U + + self.buffer, self.padded_buffer_width, self.seq_length = ( + self.get_buffer_and_padding(tokens) + ) + + @torch.inference_mode() + def get_sequences_data( + self, + feat_acts: Float[Tensor, "batch seq"], + feat_logits: Float[Tensor, "d_vocab"], + resid_post: Float[Tensor, "batch seq d_model"], + feature_resid_dir: Float[Tensor, "d_model"], + ) -> SequenceMultiGroupData: + """ + This function returns the data which is used to create the sequence visualizations (i.e. the right-hand column of + the visualization). This is a multi-step process (the 4 steps are annotated in the code): + + (1) Find all the token groups (i.e. topk, bottomk, and quantile groups of activations). These are bold tokens. + (2) Get the indices of all tokens we'll need data from, which includes a buffer around each bold token. + (3) Extract the token IDs, feature activations & residual stream values for those positions + (4) Compute the logit effect if this feature is ablated + (4A) Use this to compute the most affected tokens by this feature (i.e. the vis hoverdata) + (4B) Use this to compute the loss effect if this feature is ablated (i.e. the blue/red underlining) + (5) Return all this data as a SequenceMultiGroupData object + + Args: + tokens: + The tokens we'll be extracting sequence data from. + feat_acts: + The activations of the feature we're interested in, for each token in the batch. + feat_logits: + The logit vector for this feature (used to generate histogram, and is needed here for the line-on-hover). + resid_post: + The residual stream values before final layernorm, for each token in the batch. + feature_resid_dir: + The direction this feature writes to the logit output (i.e. the direction we'll be erasing from resid_post). + W_U: + The model's unembedding matrix, which we'll use to get the logits. + cfg: + Feature visualization parameters, containing some important params e.g. num sequences per group. + + Returns: + SequenceMultiGroupData + This is a dataclass which contains a dict of SequenceGroupData objects, where each SequenceGroupData object + contains the data for a particular group of sequences (i.e. the top-k, bottom-k, and the quantile groups). + """ + + # ! (1) Find the tokens from each group + indices_dict, indices_bold, n_bold = self.get_indices_dict( + self.buffer, feat_acts + ) + + # ! (2) Get the buffer indices + indices_buf = self.get_indices_buf( + indices_bold=indices_bold, + seq_length=self.seq_length, + n_bold=n_bold, + padded_buffer_width=self.padded_buffer_width, + ) + + # ! (3) Extract the token IDs, feature activations & residual stream values for those positions + # Get the tokens which will be in our sequences + token_ids = eindex( + self.tokens, indices_buf[:, 1:], "[n_bold seq 0] [n_bold seq 1]" + ) # shape [batch buf] + + # Now, we split into cases depending on whether we're computing the buffer or not. One kinda weird thing: we get + # feature acts for 2 different reasons (token coloring & ablation), and in the case where we're computing the buffer + # we need [:, 1:] for coloring and [:, :-1] for ablation, but when we're not we only need [:, bold] for both. So + # we split on cases here. + ( + _, + feat_acts_coloring, + # resid_post_pre_ablation, + _, + ) = self.index_objects_for_ablation_experiments( + token_ids=token_ids, + tokens=self.tokens, + feat_acts=feat_acts, + resid_post=resid_post, + indices_bold=indices_bold, + indices_buf=indices_buf, + ) + + if self.cfg.perform_ablation_experiments: + raise NotImplementedError( + "We are not supporting ablation experiments for now." + ) + else: + # ! (5) Store the results in a SequenceMultiGroupData object + # Now that we've indexed everything, construct the batch of SequenceData objects + sequence_multigroup_data = self.package_sequences_data( + token_ids=token_ids, + feat_acts_coloring=feat_acts_coloring, + feat_logits=feat_logits, + indices_dict=indices_dict, + indices_bold=indices_bold, + ) + + return sequence_multigroup_data + + def get_buffer_and_padding( + self, + tokens: Int[Tensor, "batch seq"], + ): + # Get buffer, s.t. we're looking for bold tokens in the range `buffer[0] : buffer[1]`. For each bold token, we need + # to see `seq_cfg.buffer[0]+1` behind it (plus 1 because we need the prev token to compute loss effect), and we need + # to see `seq_cfg.buffer[1]` ahead of it. + buffer = ( + (self.seq_cfg.buffer[0] + 1, -self.seq_cfg.buffer[1]) + if self.seq_cfg.buffer is not None + else None + ) + _batch_size, seq_length = tokens.shape + padded_buffer_width = ( + self.seq_cfg.buffer[0] + self.seq_cfg.buffer[1] + 2 + if self.seq_cfg.buffer is not None + else seq_length + ) + + return buffer, padded_buffer_width, seq_length + + def get_indices_dict( + self, buffer: tuple[int, int] | None, feat_acts: Float[Tensor, "batch seq"] + ): + # Get the top-activating tokens + indices = k_largest_indices( + feat_acts, k=self.seq_cfg.top_acts_group_size, buffer=buffer + ).cpu() + indices_dict = {f"TOP ACTIVATIONS
MAX = {feat_acts.max():.3f}": indices} + + # Get all possible indices. Note, we need to be able to look 1 back (feature activation on prev token is needed for + # computing loss effect on this token) + if self.seq_cfg.n_quantiles > 0: + quantiles = torch.linspace( + 0, feat_acts.max().item(), self.seq_cfg.n_quantiles + 1 + ) + for i in range(self.seq_cfg.n_quantiles - 1, -1, -1): + lower, upper = quantiles[i : i + 2].tolist() + pct = ((feat_acts >= lower) & (feat_acts <= upper)).float().mean() + indices = random_range_indices( + feat_acts, + k=self.seq_cfg.quantile_group_size, + bounds=(lower, upper), + buffer=buffer, + ) + indices_dict[ + f"INTERVAL {lower:.3f} - {upper:.3f}
CONTAINS {pct:.3%}" + ] = indices.cpu() + + # Concat all the indices together (in the next steps we do all groups at once). Shape of this object is [n_bold 2], + # i.e. the [i, :]-th element are the batch and sequence dimensions for the i-th bold token. + indices_bold = torch.concat(list(indices_dict.values())).cpu() + n_bold = indices_bold.shape[0] + + return indices_dict, indices_bold, n_bold + + def get_indices_buf( + self, + indices_bold: Int[Tensor, "n_bold 2"], + seq_length: int, + n_bold: int, + padded_buffer_width: int, + ): + if self.seq_cfg.buffer is not None: + # Get the buffer indices, by adding a broadcasted arange object. At this point, indices_buf contains 1 more token + # than the length of the sequences we'll see (because it also contains the token before the sequence starts). + buffer_tensor = torch.arange( + -self.seq_cfg.buffer[0] - 1, + self.seq_cfg.buffer[1] + 1, + device=indices_bold.device, + ) + indices_buf = einops.repeat( + indices_bold, + "n_bold two -> n_bold seq two", + seq=self.seq_cfg.buffer[0] + self.seq_cfg.buffer[1] + 2, + ) + indices_buf = torch.stack( + [indices_buf[..., 0], indices_buf[..., 1] + buffer_tensor], dim=-1 + ) + else: + # If we don't specify a sequence, then do all of the indices. + indices_buf = torch.stack( + [ + einops.repeat( + indices_bold[:, 0], "n_bold -> n_bold seq", seq=seq_length + ), # batch indices of bold tokens + einops.repeat( + torch.arange(seq_length), "seq -> n_bold seq", n_bold=n_bold + ), # all sequence indices + ], + dim=-1, + ) + + assert indices_buf.shape == (n_bold, padded_buffer_width, 2) + + return indices_buf + + def index_objects_for_ablation_experiments( + self, + token_ids: Int[Tensor, "batch seq"], + tokens: Int[Tensor, "batch seq"], + feat_acts: Float[Tensor, "batch seq"], + resid_post: Float[Tensor, "batch seq d_model"], + indices_bold: Int[Tensor, "n_bold 2"], + indices_buf: Int[Tensor, "n_bold buf 2"], + ): + if self.seq_cfg.compute_buffer: + feat_acts_buf = eindex( + feat_acts, + indices_buf, + "[n_bold buf_plus1 0] [n_bold buf_plus1 1] -> n_bold buf_plus1", + ) + feat_acts_pre_ablation = feat_acts_buf[:, :-1] + feat_acts_coloring = feat_acts_buf[:, 1:] + # resid_post_pre_ablation = eindex( + # resid_post, indices_buf[:, :-1], "[n_bold buf 0] [n_bold buf 1] d_model" + # ) + # The tokens we'll use to index correct logits are the same as the ones which will be in our sequence + correct_tokens = token_ids + else: + feat_acts_pre_ablation = eindex( + feat_acts, indices_bold, "[n_bold 0] [n_bold 1]" + ).unsqueeze(1) + feat_acts_coloring = feat_acts_pre_ablation + # resid_post_pre_ablation = eindex( + # resid_post, indices_bold, "[n_bold 0] [n_bold 1] d_model" + # ).unsqueeze(1) + # The tokens we'll use to index correct logits are the ones after bold + indices_bold_next = torch.stack( + [indices_bold[:, 0], indices_bold[:, 1] + 1], dim=-1 + ) + correct_tokens = eindex( + tokens, indices_bold_next, "[n_bold 0] [n_bold 1]" + ).unsqueeze(1) + + return ( + feat_acts_pre_ablation, + feat_acts_coloring, + # resid_post_pre_ablation, + correct_tokens, + ) + + def get_feature_ablation_statistics( + self, + feat_acts_pre_ablation: Float[Tensor, "n_bold buf"], + contribution_to_logprobs: Float[Tensor, "n_bold d_vocab"], + correct_tokens: Int[Tensor, "n_bold 1"], + ): + acts_nonzero = feat_acts_pre_ablation.abs() > 1e-5 # shape [batch buf] + top_contribution_to_logits = TopK( + contribution_to_logprobs, + k=self.seq_cfg.top_logits_hoverdata, + largest=True, + tensor_mask=acts_nonzero, + ) + bottom_contribution_to_logits = TopK( + contribution_to_logprobs, + k=self.seq_cfg.top_logits_hoverdata, + largest=False, + tensor_mask=acts_nonzero, + ) + loss_contribution = eindex( + -contribution_to_logprobs, correct_tokens, "batch seq [batch seq]" + ) + + return ( + top_contribution_to_logits, + bottom_contribution_to_logits, + loss_contribution, + ) + + def package_sequences_data( + self, + token_ids: Int[Tensor, "n_bold buf"], + feat_acts_coloring: Float[Tensor, "n_bold buf"], + feat_logits: Float[Tensor, "d_vocab"], + indices_dict: dict[str, Int[Tensor, "n_bold 2"]], + indices_bold: Int[Tensor, "n_bold"], + loss_contribution: Float[Tensor, "n_bold 1"] | None = None, + top_contribution_to_logits: TopK | None = None, + bottom_contribution_to_logits: TopK | None = None, + ): + sequence_groups_data = [] + group_sizes_cumsum = np.cumsum( + [0] + [len(indices) for indices in indices_dict.values()] + ).tolist() + + feat_logits = feat_logits.cpu() + feat_acts_coloring = feat_acts_coloring.cpu() + token_ids = token_ids.cpu() + indices_bold = indices_bold.cpu() + + if self.cfg.perform_ablation_experiments: + raise NotImplementedError( + "We are not supporting ablation experiments for now." + ) + # assert isinstance(loss_contribution, torch.Tensor) + # assert top_contribution_to_logits is not None + # assert bottom_contribution_to_logits is not None + # for group_idx, group_name in enumerate(indices_dict.keys()): + # seq_data = [ + # SequenceData( + # token_ids=token_ids[i].tolist(), + # feat_acts=[round(f, 4) for f in feat_acts_coloring[i].tolist()], + # loss_contribution=loss_contribution[i].tolist(), + # token_logits=feat_logits[token_ids[i]].tolist(), + # top_token_ids=top_contribution_to_logits.indices[i].tolist(), + # top_logits=top_contribution_to_logits.values[i].tolist(), + # bottom_token_ids=bottom_contribution_to_logits.indices[ + # i + # ].tolist(), + # bottom_logits=bottom_contribution_to_logits.values[i].tolist(), + # ) + # for i in range( + # group_sizes_cumsum[group_idx], group_sizes_cumsum[group_idx + 1] + # ) + # ] + # sequence_groups_data.append(SequenceGroupData(group_name, seq_data)) + + else: + for group_idx, group_name in enumerate(indices_dict.keys()): + seq_data = [ + SequenceData( + original_index=int(indices_bold[i, 0].item()), + token_ids=token_ids[i].tolist(), + feat_acts=[round(f, 4) for f in feat_acts_coloring[i].tolist()], + token_logits=feat_logits[token_ids[i]].tolist(), + qualifying_token_index=int(indices_bold[i, 1].item()), + ) + for i in range( + group_sizes_cumsum[group_idx], group_sizes_cumsum[group_idx + 1] + ) + ] + sequence_groups_data.append(SequenceGroupData(group_name, seq_data)) + + return SequenceMultiGroupData(sequence_groups_data) diff --git a/SAEDashboard/sae_dashboard/transformer_lens_wrapper.py b/SAEDashboard/sae_dashboard/transformer_lens_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..b6e4d6baf4c6d46e3586d78d7702b0129be01813 --- /dev/null +++ b/SAEDashboard/sae_dashboard/transformer_lens_wrapper.py @@ -0,0 +1,174 @@ +import re +from dataclasses import dataclass +from typing import Callable, Dict, List, Sequence, Tuple + +import torch +import torch.nn as nn +from jaxtyping import Float, Int +from sae_lens import HookedSAETransformer +from torch import Tensor +from transformer_lens.hook_points import HookPoint + +DTYPES = { + "float32": torch.float32, + "float16": torch.float16, + "bfloat16": torch.bfloat16, +} + + +@dataclass +class ActivationConfig: + primary_hook_point: str + auxiliary_hook_points: List[str] + + +class TransformerLensWrapper(nn.Module): + """ + This class wraps around & extends the TransformerLens model, so that we can make sure things like the forward + function have a standardized signature. + """ + + def __init__( + self, model: HookedSAETransformer, activation_config: ActivationConfig + ): + super().__init__() + self.model = model + self.activation_config = activation_config + self.validate_hook_points() + self.hook_layer = self.get_layer(self.activation_config.primary_hook_point) + + def validate_hook_points(self): + """Checks that the hook points are valid and that the model has them""" + assert ( + self.activation_config.primary_hook_point in self.model.hook_dict + ), f"Invalid hook point: {self.activation_config.primary_hook_point}" + + for hook_point in self.activation_config.auxiliary_hook_points: + assert ( + hook_point in self.model.hook_dict + ), f"Invalid hook point: {hook_point}" + + def get_layer(self, hook_point: str): + """Get the layer (so we can do the early stopping in our forward pass)""" + layer_match = re.match(r"blocks\.(\d+)\.", hook_point) + assert ( + layer_match + ), f"Error: expecting hook_point to be 'blocks.{{layer}}.{{...}}', but got {hook_point!r}" + return int(layer_match.group(1)) + + def forward( # type: ignore + self, + tokens: Int[Tensor, "batch seq"], + return_logits: bool = True, + ) -> Dict[str, Tensor]: + """Executes a forward pass, collecting specific hook point activations and optionally logit outputs""" + activation_dict = {} + + def build_act_dict( + hooks: Sequence[Tuple[str, Callable[[Tensor, HookPoint], None]]], + ) -> None: + for hook_point, _ in hooks: + # The hook functions work by storing data in model's hook context, so we pop them back out + + activation: Tensor = self.model.hook_dict[hook_point].ctx.pop( + "activation" + ) + if "hook_z" in hook_point: + activation = activation.flatten(-2, -1) + activation_dict[hook_point] = activation + + hooks: List[Tuple[str, Callable[[Tensor, HookPoint], None]]] = [ + (self.activation_config.primary_hook_point, self.hook_fn_store_act) + ] + [ + (point, self.hook_fn_store_act) + for point in self.activation_config.auxiliary_hook_points + ] + + output: Tensor = self.model.run_with_hooks( + tokens, + stop_at_layer=self.hook_layer + 1, + fwd_hooks=hooks, # type: ignore + ) + + build_act_dict(hooks) + + if return_logits: + activation_dict["output"] = output + return activation_dict + + def hook_fn_store_act(self, activation: torch.Tensor, hook: HookPoint): + hook.ctx["activation"] = activation + + @property + def tokenizer(self): # type: ignore + return self.model.tokenizer + + @property + def W_U(self): + return self.model.W_U + + @property + def W_out(self): + return self.model.W_out + + @property + def W_O(self): + return self.model.W_O + + +def to_resid_direction( + direction: Float[Tensor, "feats d_in"], model: TransformerLensWrapper +): + """ + Takes a direction (eg. in the post-ReLU MLP activations) and returns the corresponding direction in the residual stream. + + Args: + direction: + The direction in the activations, i.e. shape (feats, d_in) where d_in could be d_model, d_mlp, etc. + model: + The model, which should be a HookedTransformerWrapper or similar. + """ + # If this SAE was trained on the residual stream or attn/mlp out, then we don't need to do anything + if ( + "resid" in model.activation_config.primary_hook_point + or "_out" in model.activation_config.primary_hook_point + or "hook_mlp_in" in model.activation_config.primary_hook_point + or "mlp.hook_in" in model.activation_config.primary_hook_point + ): + return direction + + # If it was trained on the MLP layer, then we apply the W_out map + elif ("pre" in model.activation_config.primary_hook_point) or ( + "post" in model.activation_config.primary_hook_point + ): + return direction @ model.W_out[model.hook_layer] + + elif "hook_z" in model.activation_config.primary_hook_point: + return direction @ model.W_O[model.hook_layer].flatten(0, 1).to(direction.dtype) + + # For hook_mlp_out (output of MLP) + elif "hook_mlp_out" in model.activation_config.primary_hook_point: + return direction + + # For hook_attn_out (output of attention layer) + elif "hook_attn_out" in model.activation_config.primary_hook_point: + return direction + + # For hook_resid_post (always a residual stream direction) + elif "hook_resid_post" in model.activation_config.primary_hook_point: + return direction + + # For hook_normalized (e.g. ln1.hook_normalized, ln2.hook_normalized) + # These are normalized residual stream, already in residual stream basis + elif "hook_normalized" in model.activation_config.primary_hook_point: + return direction + + # For hook_resid_pre (residual stream before MLP) + elif "hook_resid_pre" in model.activation_config.primary_hook_point: + return direction + + # Others not yet supported + else: + raise NotImplementedError( + "The hook your SAE was trained on isn't yet supported" + ) diff --git a/SAEDashboard/sae_dashboard/utils_fns.py b/SAEDashboard/sae_dashboard/utils_fns.py new file mode 100644 index 0000000000000000000000000000000000000000..8956a0f48707aa43a547a286a8f210e092830483 --- /dev/null +++ b/SAEDashboard/sae_dashboard/utils_fns.py @@ -0,0 +1,1196 @@ +import random +import re +from dataclasses import dataclass, field +from typing import ( + Any, + Callable, + Iterable, + Literal, + Optional, + Sequence, + Type, + TypeVar, + overload, +) + +import einops +import numpy as np +import torch +from dataclasses_json import dataclass_json +from eindex import eindex +from jaxtyping import Bool, Float, Int +from sae_lens import ActivationsStore +from torch import Tensor +from tqdm import tqdm +from transformer_lens import utils +from transformers import PreTrainedTokenizerBase + +T = TypeVar("T") + +# from rich.progress import ProgressColumn, Task # MofNCompleteColumn +# from rich.text import Text +# from rich.table import Column + + +def get_tokens( + activations_store: ActivationsStore, + n_prompts: int, +) -> Tensor: + all_tokens_list = [] + pbar = tqdm(range(n_prompts)) + for _ in pbar: + batch_tokens = activations_store.get_batch_tokens() + batch_tokens = batch_tokens[torch.randperm(batch_tokens.shape[0])][ + : batch_tokens.shape[0] + ] + all_tokens_list.append(batch_tokens) + + all_tokens = torch.cat(all_tokens_list, dim=0) + all_tokens = all_tokens[torch.randperm(all_tokens.shape[0])] + return all_tokens + + +def has_duplicate_rows(tensor: torch.Tensor) -> bool: + """ + Check if a 2D tensor has any duplicate rows, with special handling for MPS devices. + + Args: + tensor (torch.Tensor): A 2D tensor to check for duplicate rows. + + Returns: + bool: True if there are duplicate rows, False otherwise. + + Raises: + ValueError: If the input tensor is not 2D. + """ + if tensor.dim() != 2: + raise ValueError("Input tensor must be 2D") + + if tensor.device.type == "mps": + # Alternative strategy for MPS devices + # Convert to CPU and use a different approach + tensor_cpu = tensor.cpu() + + # Convert each row to a tuple (hashable) and count occurrences + row_tuples = [tuple(row.tolist()) for row in tensor_cpu] + from collections import Counter + + counts = Counter(row_tuples) + + # Check if any row appears more than once + return any(count > 1 for count in counts.values()) + else: + # Original strategy for other devices + _, counts = torch.unique(tensor, dim=0, return_counts=True) + return bool(torch.any(counts > 1)) + + +def get_device() -> torch.device: + """ + Helper function to return the correct device (cuda, mps, or cpu). + """ + if torch.cuda.is_available(): + device = torch.device("cuda") + elif torch.backends.mps.is_available(): + device = torch.device("mps") + else: + device = torch.device("cpu") + return device + + +# # Depreciated - we no longer use a global device variable +# device = get_device() + +Arr = np.ndarray + +MAIN = __name__ == "__main__" + + +def create_iterator( + iterator: Iterable[T], verbose: bool, desc: str | None = None +) -> Iterable[T]: + """ + Returns an iterator, useful for reducing code repetition. + """ + return tqdm(iterator, desc=desc, leave=False) if verbose else iterator + + +def k_largest_indices( + x: Float[Tensor, "rows cols"], + k: int, + largest: bool = True, + buffer: tuple[int, int] | None = (5, -5), +) -> Int[Tensor, "k 2"]: + """ + Args: + x: + 2D array of floats (these will be the values of feature activations or losses for each + token in our batch) + k: + Number of indices to return + largest: + Whether to return the indices for the largest or smallest values + buffer: + Positions to avoid at the start / end of the sequence, i.e. we can include the slice buffer[0]: buffer[1]. + If None, then we use all sequences + + Returns: + The indices of the top or bottom `k` elements in `x`. In other words, output[i, :] is the (row, column) index of + the i-th largest/smallest element in `x`. + """ + if buffer is None: + buffer = (0, x.size(1)) + x = x[:, buffer[0] : buffer[1]] + indices = x.flatten().topk(k=k, largest=largest).indices + rows = indices // x.size(1) + cols = indices % x.size(1) + buffer[0] + return torch.stack((rows, cols), dim=1) + + +def sample_unique_indices( + large_number: int, small_number: int +) -> Int[Tensor, "small_number"]: + """ + Samples a small number of unique indices from a large number of indices. + + This is more efficient than using `torch.permutation`, because we don't need to shuffle everything. + """ + sampled_indices = random.sample(range(large_number), small_number) + return torch.Tensor(sampled_indices).to(torch.int64) + + +def random_range_indices( + x: Float[Tensor, "batch seq"], + k: int, + bounds: tuple[float, float], + buffer: tuple[int, int] | None = (5, -5), +) -> Int[Tensor, "k 2"]: + """ + Args: + x: + 2D array of floats (these will be the values of feature activations or losses for each + token in our batch) + k: + Number of indices to return + bounds: + The range of values to consider (so we can get quantiles) + buffer: + Positions to avoid at the start / end of the sequence, i.e. we can include the slice buffer[0]: buffer[1] + + Returns: + Same thing as k_largest_indices, but the difference is that we're using quantiles rather than top/bottom k. + """ + if buffer is None: + buffer = (0, x.size(1)) + + # Limit x, because our indices (bolded words) shouldn't be too close to the left/right of sequence + x = x[:, buffer[0] : buffer[1]] + + # Creat a mask for where x is in range, and get the indices as a tensor of shape (k, 2) + mask = (bounds[0] <= x) & (x <= bounds[1]) + indices = torch.stack(torch.where(mask), dim=-1) + + # If we have more indices than we need, randomly select k of them + + if len(indices) > k: + indices = indices[sample_unique_indices(len(indices), k)] + + # Adjust indices to account for the buffer + return indices + torch.tensor([0, buffer[0]]).to(indices.device) + + +# TODO - solve the `get_decode_html_safe_fn` issue +# The verion using `tokenizer.decode` is much slower, but Stefan's raised issues about it not working correctly for e.g. +# Cyrillic characters. I think patching the `vocab_dict` in some way is the best solution. + +# def get_decode_html_safe_fn(tokenizer, html: bool = False) -> Callable[[int | list[int]], str | list[str]]: +# ''' +# Creates a tokenization function on single integer token IDs, which is HTML-friendly. +# ''' +# def decode(token_id: int | list[int]) -> str | list[str]: +# ''' +# Check this is a single token +# ''' +# if isinstance(token_id, int): +# str_tok = tokenizer.decode(token_id) +# return process_str_tok(str_tok, html=html) +# else: +# str_toks = tokenizer.batch_decode(token_id) +# return [process_str_tok(str_tok, html=html) for str_tok in str_toks] + +# return decode + + +def get_decode_html_safe_fn( + tokenizer: PreTrainedTokenizerBase, html: bool = False +) -> Callable[[int | list[int]], str | list[str]]: + vocab_dict = {v: k for k, v in tokenizer.vocab.items()} # type: ignore + + def decode(token_id: int | list[int]) -> str | list[str]: + """ + Check this is a single token + """ + if isinstance(token_id, int): + str_tok = vocab_dict.get(token_id, "UNK") + return process_str_tok(str_tok, html=html) + else: + if isinstance(token_id, torch.Tensor): + token_id = token_id.tolist() + return [decode(tok) for tok in token_id] # type: ignore + + return decode + + +# # Code to test this function: +# from transformer_lens import HookedTransformer +# model = HookedTransformer.from_pretrained("gelu-1l") +# unsafe_token = "<" +# unsafe_token_id = model.tokenizer.encode(unsafe_token, return_tensors="pt")[0].item() # type: ignore +# assert get_decode_html_safe_fn(model.tokenizer)(unsafe_token_id) == "<" +# assert get_decode_html_safe_fn(model.tokenizer, html=True)(unsafe_token_id) == "<" + + +HTML_CHARS = { + "\\": "\", + "<": "<", + ">": ">", + ")": ")", + "(": "(", + "[": "[", + "]": "]", + "{": "{", + "}": "}", +} +HTML_ANOMALIES = { + "âĢĶ": "—", + "âĢĵ": "–", + "âĢĭ": "​", + "âĢľ": "“", + "âĢĿ": "”", + "âĢĺ": "‘", + "âĢĻ": "’", + "Ġ": " ", + "Ċ": "\n", + "ĉ": "\t", +} +HTML_ANOMALIES_REVERSED = { + "&mdash": "—", + "&ndash": "–", + # "​": "​", # TODO: this is actually zero width space character. what's the best way to represent it? + "&ldquo": "“", + "&rdquo": "”", + "&lsquo": "‘", + "&rsquo": "’", + " ": " ", + "\": "\\", +} +HTML_QUOTES = { + "'": "'", + '"': """, +} +HTML_ALL = {**HTML_CHARS, **HTML_QUOTES, " ": " "} + +HTML_ALL_REVERSED = { + **{v: k for k, v in HTML_CHARS.items()}, + **HTML_ANOMALIES_REVERSED, +} + + +def process_str_tok(str_tok: str, html: bool = True) -> str: + """ + Takes a string token, and does the necessary formatting to produce the right HTML output. There are 2 things that + might need to be changed: + + (1) Anomalous chars like Ġ should be replaced with their normal Python string representations + e.g. "Ġ" -> " " + (2) Special HTML characters like "<" should be replaced with their HTML representations + e.g. "<" -> "<", or " " -> " " + + We always do (1), the argument `html` determines whether we do (2) as well. + """ + for k, v in HTML_ANOMALIES.items(): + str_tok = str_tok.replace(k, v) + + if html: + # Get rid of the quotes and apostrophes, and replace them with their HTML representations + for k, v in HTML_QUOTES.items(): + str_tok = str_tok.replace(k, v) + # repr turns \n into \\n, while slicing removes the quotes from the repr + str_tok = repr(str_tok)[1:-1] + + # Apply the map from special characters to their HTML representations + for k, v in HTML_CHARS.items(): + str_tok = str_tok.replace(k, v) + + return str_tok + + +def unprocess_str_tok(str_tok: str) -> str: + """ + Performs the reverse of the `process_str_tok` function, i.e. maps from HTML representations back to their original + characters. This is useful when e.g. our string is inside a ... element, because then we have to use + the literal characters. + """ + for k, v in HTML_ALL_REVERSED.items(): + str_tok = str_tok.replace(k, v) + + return str_tok + + +@overload +def to_str_tokens( + decode_fn: Callable[[int | list[int]], str | list[str]], + tokens: int, +) -> str: ... + + +@overload +def to_str_tokens( + decode_fn: Callable[[int | list[int]], str | list[str]], + tokens: list[int], +) -> list[str]: ... + + +def to_str_tokens( + decode_fn: Callable[[int | list[int]], str | list[str]], + tokens: int | list[int] | torch.Tensor, +) -> str | Any: + """ + Helper function which converts tokens to their string representations, but (if tokens is a tensor) keeps + them in the same shape as the original tensor (i.e. nested lists). + """ + # Deal with the int case separately + if isinstance(tokens, int): + return decode_fn(tokens) + + # If the tokens are a (possibly nested) list, turn them into a tensor + if isinstance(tokens, list): + tokens = torch.tensor(tokens) + + # Get flattened list of tokens + str_tokens = [decode_fn(t) for t in tokens.flatten().tolist()] + + # Reshape + return np.reshape(str_tokens, tokens.shape).tolist() + + +class TopK: + """ + This function implements a version of torch.topk over the last dimension. It offers the following: + + (1) Nicer type signatures (the default obj returned by torck.topk isn't well typed) + (2) Helper functions for indexing & other standard tensor operations like .ndim, .shape, etc. + (3) An efficient topk calculation, which doesn't bother applying it to the zero elements of a tensor. + """ + + values: Arr + indices: Arr + + def __init__( + self, + tensor: Float[Tensor, "... d"], + k: int, + largest: bool = True, + tensor_mask: Bool[Tensor, "..."] | None = None, + ): + self.k = k + self.largest = largest + self.values, self.indices = self.topk(tensor, tensor_mask) + + def __getitem__(self, item: int) -> "TopK": + new_topk = TopK.__new__(TopK) + new_topk.k = self.k + new_topk.largest = self.largest + new_topk.values = self.values[item] + new_topk.indices = self.indices[item] + return new_topk + + def __len__(self) -> int: + return len(self.values) + + @property + def ndim(self) -> int: + return self.values.ndim + + @property + def shape(self) -> tuple[int]: + return tuple(self.values.shape) # type: ignore + + def numel(self) -> int: + return self.values.size + + def topk( # type: ignore + self, + tensor: Float[Tensor, "... d"], + tensor_mask: Bool[Tensor, "..."] | None = None, + ) -> tuple[Arr, Arr]: + """ + This is an efficient version of `torch.topk(..., dim=-1)`. It saves time by only doing the topk calculation over + the bits of `tensor` where `tensor_mask=True`. This is useful when `tensor` is very sparse, e.g. it has shape + (batch, seq, d_vocab) and its elements are zero if the corresponding token has feature activation zero. In this + case, we don't want to waste time taking topk over a tensor of zeros. + """ + # If no tensor mask is provided, then we just return the topk values and indices + if tensor_mask is None or not tensor_mask.any(): + k = min(self.k, tensor.shape[-1]) + topk = tensor.topk(k=k, largest=self.largest) + return utils.to_numpy(topk.values), utils.to_numpy(topk.indices) + + # Get the topk of the tensor, but only computed over the values of the tensor which are nontrivial + assert ( + tensor_mask.shape == tensor.shape[:-1] + ), "Error: unexpected shape for tensor mask." + tensor_nontrivial_values = tensor[tensor_mask] # shape [rows d] + k = min(self.k, tensor_nontrivial_values.shape[-1]) + k = self.k + topk = tensor_nontrivial_values.topk( + k=k, largest=self.largest + ) # shape [rows k] + + # Get an array of indices and values (with unimportant elements) which we'll index into using the topk object + topk_shape = (*tensor_mask.shape, k) + topk_indices = torch.zeros( + topk_shape, device=tensor.device, dtype=torch.long + ) # ).long() # shape [... k] + topk_indices[tensor_mask] = topk.indices + topk_values = torch.zeros( + topk_shape, device=tensor.device, dtype=tensor.dtype + ) # shape [... k] + topk_values[tensor_mask] = topk.values + + return utils.to_numpy(topk_values), utils.to_numpy(topk_indices) + + +def merge_lists(*lists: Iterable[T]) -> list[T]: + """ + Merges a bunch of lists into a single list. + """ + return [item for sublist in lists for item in sublist] + + +def extract_and_remove_scripts(html_content: str) -> tuple[str, str]: + """ + Extracts JavaScript from script tags in the HTML content, and returns it as a single string, + along with the original content with the script tags removed. + """ + # Pattern to find tags and capture content inside + pattern = r"]*>(.*?)" + + # Find all script tags and extract content + scripts = re.findall(pattern, html_content, re.DOTALL) + + # Remove script tags from the original content + html_without_scripts = re.sub(pattern, "", html_content, flags=re.DOTALL) + + # Join extracted JavaScript code + javascript = "\n".join(scripts) + + return javascript, html_without_scripts + + +def pad_with_zeros( + x: list[float], + n: int, + side: Literal["left", "right"] = "left", +) -> list[float]: + """ + Pads a list with zeros to make it the correct length. + """ + assert len(x) <= n, "Error: x must have fewer than n elements." + + if side == "right": + return x + [0.0] * (n - len(x)) + else: + return [0.0] * (n - len(x)) + x + + +# This defines the number of decimal places we'll use. It's assumed to refer to values in the range [0, 1] rather than +# pct, e.g. precision of 5 would be 99.497% = 0.99497. In other words, decimal_places = precision - 2. + +SYMMETRIC_RANGES_AND_PRECISIONS: list[tuple[list[float], int]] = [ + ([0.0, 0.01], 5), + ([0.01, 0.05], 4), + ([0.05, 0.95], 3), + ([0.95, 0.99], 4), + ([0.99, 1.0], 5), +] +ASYMMETRIC_RANGES_AND_PRECISIONS: list[tuple[list[float], int]] = [ + ([0.0, 0.95], 3), + ([0.95, 0.99], 4), + ([0.99, 1.0], 5), +] + + +@dataclass_json +@dataclass +class FeatureStatistics: + """ + This object (which used to be called QuantileCalculator) stores stats about a dataset. + + The quantiles are a bit complicated because we store a higher precision for values closer to 100%. Most of the + other stats are pretty straightforward. + + We create these objects using the `create` method. We assume data supplid is 2D, where each row is a different + dataset that we want to compute the stats for. + """ + + # Stats: max, frac_nonzero, skew, kurtosis + max: list[float] = field(default_factory=list) + frac_nonzero: list[float] = field(default_factory=list) + skew: list[float] = field(default_factory=list) + kurtosis: list[float] = field(default_factory=list) + + # Quantile data + quantile_data: list[list[float]] = field(default_factory=list) + quantiles: list[float] = field(default_factory=list) + ranges_and_precisions: list[tuple[list[float], int]] = field( + default_factory=lambda: ASYMMETRIC_RANGES_AND_PRECISIONS + ) + + @property + def aggdata( + self, + precision: int = 5, + ) -> dict[str, list[float]]: + return { + "max": [round(x, precision) for x in self.max], + "frac_nonzero": [round(x, precision) for x in self.frac_nonzero], + "skew": [round(x, precision) for x in self.skew], + "kurtosis": [round(x, precision) for x in self.kurtosis], + } + + @classmethod + def create( + cls, + data: Optional[torch.Tensor] = None, + ranges_and_precisions: list[ + tuple[list[float], int] + ] = ASYMMETRIC_RANGES_AND_PRECISIONS, + batch_size: Optional[int] = None, + ) -> "FeatureStatistics": + """Calculates various statistics for a tensor of activations. + + Args: + data: A tensor of activations; should be shape (n_features, n_samples (n_prompts * n_prompt_tokens)). + ranges_and_precisions: A list of tuples of the form (range, precision). + batch_size: The feature batch size to use for processing the acts. Reduce this if you encounter OOM errors. + + Returns: + A FeatureStatistics object. + """ + if not batch_size: + batch_size = 0 if data is None else data.shape[0] + + # Generate quantiles from the ranges_and_precisions list + quantiles = [] + for r, p in ranges_and_precisions: + start, end = r + step = 10**-p + quantiles.extend(np.arange(start, end - 0.5 * step, step)) + + # If data is None, then set the quantiles and quantile_data to None, and return + if data is None: + return cls( + max=[], + frac_nonzero=[], + skew=[], + kurtosis=[], + quantile_data=[], + quantiles=[round(q, 6) for q in quantiles + [1.0]], + ranges_and_precisions=ranges_and_precisions, + ) + + # Process data in batches + n_features = data.shape[0] + _max = [] + frac_nonzero = [] + quantile_data = [] + + for i in range(0, n_features, batch_size): + batch = data[i : min(i + batch_size, n_features)] + + _max.extend(batch.max(dim=-1).values.tolist()) + frac_nonzero.extend((batch.abs() > 1e-6).float().mean(dim=-1).tolist()) + + quantiles_tensor = torch.tensor( + quantiles, dtype=batch.dtype, device=batch.device + ) + + batch_quantile_data = torch.quantile( + batch.to(torch.float32), + quantiles_tensor.to(torch.float32), + dim=-1, + ) + + quantile_data.extend(batch_quantile_data.T.tolist()) + + quantiles = [round(q, 6) for q in quantiles + [1.0]] + quantile_data = [[round(q, 6) for q in qd] for qd in quantile_data] + + # Strip out the quantile data prefixes which are all zeros + for i, qd in enumerate(quantile_data): + first_nonzero = next( + (i for i, x in enumerate(qd) if abs(x) > 1e-6), len(qd) + ) + quantile_data[i] = qd[first_nonzero:] + + return cls( + max=_max, + frac_nonzero=frac_nonzero, + skew=[], # Placeholder for skew calculation + kurtosis=[], # Placeholder for kurtosis calculation + quantile_data=quantile_data, + quantiles=quantiles, + ranges_and_precisions=ranges_and_precisions, + ) + + def update(self, other: "FeatureStatistics"): + """ + Merges two FeatureStatistics objects together (changing self inplace). This is useful when we're batching our + calculations over different groups of features, and we want to merge them together at the end. + + Note, we also deal with the special case where self has no data. + """ + assert ( + self.ranges_and_precisions == other.ranges_and_precisions + ), "Error: can't merge two FeatureStatistics objects with different ranges." + + self.max.extend(other.max) + self.frac_nonzero.extend(other.frac_nonzero) + self.skew.extend(other.skew) + self.kurtosis.extend(other.kurtosis) + self.quantiles.extend(other.quantiles) + self.quantile_data.extend(other.quantile_data) + + def get_quantile( + self, + values: Float[Tensor, "batch *data_dim"], + batch_indices: list[int] | None = None, + ) -> tuple[Float[Tensor, "batch *data_dim"], Int[Tensor, "batch *data_dim"]]: + """ + Args: + values: + Tensor of values for which we want to compute the quantiles. If this is 1D then it is interpreted as a + single value for each dataset (i.e. for each row of the reference data), if it's 2D then it's a row of + values for each dataset. + batch_indices: + If not None, then this should be a list of batch indices we're actually using, in other words we should + index `self.quantiles` down to only these indices. This is useful because often we're only doing this + calculation on a small set of features (the ones which are non-zero). + + Returns: + quantiles: + The quantiles of `values` within the respective rows of the reference data. + precisions: + The precision of the quantiles (i.e. how many decimal places we're accurate to). + """ + rp = self.ranges_and_precisions + ranges = torch.tensor([r[0] for (r, _p) in rp] + [1.0]).to(values.device) + precisions = torch.tensor([rp[0][1]] + [p for (_r, p) in rp] + [rp[-1][1]]).to( + values.device + ) + + # For efficient storage, we remove the zeros from quantile_data (it may start with zeros). So when converting it + # back to a tensor, we need to pad it with zeros again. + n_buckets = len(self.quantiles) - 1 + quantiles = torch.tensor(self.quantiles).to(values.device) + quantile_data = torch.tensor( + [pad_with_zeros(x, n_buckets) for x in self.quantile_data] + ).to(values.device) + + values_is_1d = values.ndim == 1 + if values_is_1d: + values = values.unsqueeze(1) + + # Get an object to slice into the tensor (along batch dimension) + my_slice = slice(None) if batch_indices is None else batch_indices + + # Find the quantiles of these values (i.e. the values between 0 and 1) + quantile_indices = torch.searchsorted( + quantile_data[my_slice], values + ) # shape [batch data_dim] + quantiles = quantiles[quantile_indices] + + # Also get the precisions (which we do using a separate searchsorted, only over the range dividers) + precision_indices = torch.searchsorted( + ranges, quantiles + ) # shape [batch data_dim] + precisions = precisions[precision_indices] + + # If values was 1D, we want to return the result as 1D also (for convenience) + if values_is_1d: + quantiles = quantiles.squeeze(1) + precisions = precisions.squeeze(1) + + return quantiles, precisions + + +# Example usage +if MAIN: + # 2D data: each row represents the activations data of a different feature. We set some of it to zero, so we can + # test the "JSON doesn't store zeros" feature of the FeatureStatistics class. + device = get_device() + N = 100_000 + data = torch.stack( + [torch.rand(N).masked_fill(torch.rand(N) < 0.5, 0.0), torch.rand(N)] + ).to(device) + qc = FeatureStatistics.create(data) + print(f"Total datapoints stored = {sum(len(x) for x in qc.quantile_data):_}") + print(f"Total datapoints used to compute quantiles = {data.numel():_}\n") + + # 2D values tensor: each row applies to a different dataset + values = torch.tensor([[0.0, 0.005, 0.02, 0.25], [0.75, 0.98, 0.995, 1.0]]).to( + device + ) + quantiles, precisions = qc.get_quantile(values) + + print("When 50% of data is 0, and 50% is Unif[0, 1]") + for v, q, p in zip(values[0], quantiles[0], precisions[0]): + print(f"Value: {v:.3f}, Precision: {p}, Quantile: {q:.{p-2}%}") + print("\nWhen 100% of data is Unif[0, 1]") + for v, q, p in zip(values[1], quantiles[1], precisions[1]): + print(f"Value: {v:.3f}, Precision: {p}, Quantile: {q:.{p-2}%}") + + +def split_string( + input_string: str, + str1: str, + str2: str, +) -> tuple[str, str]: + assert ( + str1 in input_string and str2 in input_string + ), "Error: str1 and str2 must be in input_string" + pattern = f"({re.escape(str1)}.*?){re.escape(str2)}" + match = re.search(pattern, input_string, flags=re.DOTALL) + if match: + between_str1_str2 = match.group(1) + remaining_string = input_string.replace(between_str1_str2, "") + return between_str1_str2, remaining_string + else: + return "", input_string + + +# Example usage +if MAIN: + input_string = "The quick brown fox jumps over the lazy dog" + str1 = "quick" + str2 = "jumps" + print(split_string(input_string, str1, str2)) + + input_string = ( + "Before table Table After table" + ) + str1 = r"" + str2 = r"" + print(split_string(input_string, str1, str2)) + + +def apply_indent( + text: str, + prefix: str, + first_line_indented: bool = True, +) -> str: + """ + Indents a string at every new line (e.g. by spaces or tabs). This is useful for formatting when we're dumping things + into an HTML file. + + Args: + text: + The text to indent + prefix: + The string to add at the start of each line + first_line_indented: + Whether the first line should be indented. If False, then the first line will be left as it is. + """ + text_indented = "\n".join(prefix + line for line in text.strip().split("\n")) + if not first_line_indented: + text_indented = text_indented[len(prefix) :] + + return text_indented + + +def deep_union( + dict1: dict[Any, Any], dict2: dict[Any, Any], path: str = "" +) -> dict[Any, Any]: + """ + Returns a deep union of dictionaries (recursive operation). In other words, if `dict1` and `dict2` have the same + keys then the value of that key will be the deep union of the values. + + Also, base case where one of the values is a list: we concatenate the lists together + + Examples: + # Normal union + deep_union({1: 2}, {3: 4}) == {1: 2, 3: 4} + + # 1-deep union + deep_union( + {1: {2: [3, 4]}}, + {1: {3: [3, 4]}} + ) == {1: {2: [3, 4], 3: [3, 4]}} + + # 2-deep union + assert deep_union( + {"x": {"y": {"z": 1}}}, + {"x": {"y": {"w": 2}}}, + ) == {"x": {"y": {"z": 1, "w": 2}}} + + # list concatenation + assert deep_union( + {"x": [1, 2]}, + {"x": [3, 4]}, + ) == {"x": [1, 2, 3, 4]} + + The `path` accumulates the key/value paths from the recursive calls, so that we can see the full dictionary path + which caused problems (not just the end-nodes). + """ + result = dict1.copy() + + # For each new key & value in dict2 + for key2, value2 in dict2.items(): + # If key not in result, then we have a simple case: just add it to the result + if key2 not in result: + result[key2] = value2 + + # If key in result, both should values be either dicts (then we recursively merge) or lists (then we concat). If + # not, then we throw an error unconditionally (even if values are the same). + else: + value1 = result[key2] + + # Both dicts + if isinstance(value1, dict) and isinstance(value2, dict): + result[key2] = deep_union(value1, value2, path=f"{path}[{key2!r}]") + + # Both lists + elif isinstance(value1, list) and isinstance(value2, list): + result[key2] = value1 + value2 + + # Error + else: + path1 = f"dict{path}[{key2!r}] = {value1!r}" + path2 = f"dict{path}[{key2!r}] = {value2!r}" + raise ValueError(f"Merge failed. Conflicting paths:\n{path1}\n{path2}") + + return result + + +if MAIN: + # Normal union + assert deep_union({1: 2}, {3: 4}) == {1: 2, 3: 4} + + # 1-deep union + assert deep_union({1: {2: [3, 4]}}, {1: {3: [3, 4]}}) == {1: {2: [3, 4], 3: [3, 4]}} + + # 2-deep union + assert deep_union( + {"x": {"y": {"z": 1}}}, + {"x": {"y": {"w": 2}}}, + ) == {"x": {"y": {"z": 1, "w": 2}}} + + # list concatenation + assert deep_union( + {"x": [1, 2]}, + {"x": [3, 4]}, + ) == {"x": [1, 2, 3, 4]} + + +# class RollingStats: +# ''' +# This class helps us compute rolling stats of a dataset as we feed in activations, without ever having to store the +# entire batch in data. +# ''' +# def __init__(self): +# self.n = 0 +# self.x_sum = 0.0 +# self.x2_sum = 0.0 +# self.x3_sum = 0.0 +# self.x4_sum = 0.0 +# self.frac_nonzero = 0.0 +# self.max = 0.0 + +# def update(self, x: Tensor): +# x_frac_nonzero = x.nonzero().size(0) / x.numel() +# x_n = x.numel() +# self.frac_nonzero = (self.n * self.frac_nonzero + x_n * x_frac_nonzero) / (self.n + x_n) +# self.n += x.numel() +# self.x_sum += x.sum().item() +# self.x2_sum += x.pow(2).sum().item() +# self.x3_sum += x.pow(3).sum().item() +# self.x4_sum += x.pow(4).sum().item() +# self.max = max(self.max, x.max().item()) + +# @property +# def skew(self) -> float: +# raise NotImplementedError + +# @property +# def kurtosis(self) -> float: +# raise NotImplementedError + + +class RollingCorrCoef: + """ + This class helps compute corrcoef (Pearson & cosine sim) between 2 batches of vectors, without having to store the + entire batch in memory. + + How exactly does it work? We exploit the formula below (x, y assumed to be vectors here), which writes corrcoefs in + terms of scalars which can be computed on a rolling basis. + + cos_sim(x, y) = xy_sum / ((x2_sum ** 0.5) * (y2_sum ** 0.5)) + + pearson_corrcoef(x, y) = num / denom + num = n * xy_sum - x_sum * y_sum + denom = (n * x2_sum - x_sum ** 2) ** 0.5 * (n * y2_sum - y_sum ** 2) ** 0.5 + + This class batches this computation, i.e. x.shape = (X, N), y.shape = (Y, N), where (for example) we have: + N = batch_size * seq_len, i.e. it's the number of datapoints we have + x = features of our original encoder + y = features of our encoder-B, or neurons of our original model (the thing we're topk-ing over) + + So we can e.g. compute the correlation coefficients for every combination of feature in encoder and model neurons, + then take topk to find the most correlated neurons for each feature. + """ + + def __init__( + self, + indices: list[int] | None = None, + with_self: bool = False, + dtype: torch.dtype = torch.float32, + device: torch.device = torch.device("cpu"), + ) -> None: + """ + Args: + indices: list[int] + If supplied, we map y indices (from 0 to y.shape) to these values. Useful when we're working with e.g. + a dataset which didn't start from 0, and we want the "true indices". + with_self: bool + If True, then we take X and Y as coming from the same dataset. This saves us some computation, and it + also means we exclude the diagonal from final topk (since correlation with self is always 1). + """ + self.n = 0 + self.X = None + self.Y = None + self.indices = indices + self.with_self = with_self + self.dtype = dtype + self.device = device + + def update(self, x: Float[Tensor, "X N"], y: Float[Tensor, "Y N"]) -> None: + # Get values of x and y, and check for consistency with each other & with previous values + assert x.ndim == 2 and y.ndim == 2, "Both x and y should be 2D" + X, Nx = x.shape + Y, Ny = y.shape + assert ( + Nx == Ny + ), "Error: x and y should have the same size in the last dimension" + if self.with_self: + assert X == Y, "If with_self is True, then x and y should be the same shape" + if self.X is not None: + assert ( + X == self.X + ), "Error: updating a corrcoef object with different sized dataset." + if self.Y is not None: + assert ( + Y == self.Y + ), "Error: updating a corrcoef object with different sized dataset." + self.X = X + self.Y = Y + + x = x.to(dtype=self.dtype, device=self.device) + y = y.to(dtype=self.dtype, device=self.device) + + # If this is the first update step, then we need to initialise the sums + if self.n == 0: + self.x_sum = torch.zeros(X, device=x.device, dtype=self.dtype) + self.xy_sum = torch.zeros(X, Y, device=x.device, dtype=self.dtype) + self.x2_sum = torch.zeros(X, device=x.device, dtype=self.dtype) + if not self.with_self: + self.y_sum = torch.zeros(Y, device=y.device, dtype=self.dtype) + self.y2_sum = torch.zeros(Y, device=y.device, dtype=self.dtype) + + # Next, update the sums + self.n += x.shape[-1] + self.x_sum += einops.reduce(x, "X N -> X", "sum") + self.xy_sum += einops.einsum(x, y, "X N, Y N -> X Y") + self.x2_sum += einops.reduce(x**2, "X N -> X", "sum") + if not self.with_self: + self.y_sum += einops.reduce(y, "Y N -> Y", "sum") + self.y2_sum += einops.reduce(y**2, "Y N -> Y", "sum") + + def corrcoef( + self, + ) -> tuple[Float[Tensor, "X Y"], Float[Tensor, "X Y"]]: + """ + Computes the correlation coefficients between x and y, using the formulae given in the class docstring. + """ + # Get y_sum and y2_sum (to deal with the cases when with_self is True/False) + if self.with_self: + self.y_sum = self.x_sum + self.y2_sum = self.x2_sum + + # Compute cosine sim + cossim_numer = self.xy_sum + cossim_denom = torch.sqrt(torch.outer(self.x2_sum, self.y2_sum)) + 1e-6 + cossim = cossim_numer / cossim_denom + + # Compute pearson corrcoef + pearson_numer = self.n * self.xy_sum - torch.outer(self.x_sum, self.y_sum) + pearson_denom = ( + torch.sqrt( + torch.outer( + self.n * self.x2_sum - self.x_sum**2, + self.n * self.y2_sum - self.y_sum**2, + ) + ) + + 1e-6 + ) + pearson = pearson_numer / pearson_denom + + # If with_self, we exclude the diagonal + if self.with_self: + d = cossim.shape[0] + cossim[range(d), range(d)] = 0.0 + pearson[range(d), range(d)] = 0.0 + + return pearson, cossim + + def topk_pearson( + self, + k: int, + largest: bool = True, + ) -> tuple[list[list[int]], list[list[float]], list[list[float]]]: + """ + Takes topk of the pearson corrcoefs over the y-dimension (e.g. giving us the most correlated neurons or most + correlated encoder-B features for each encoder feature). + + Args: + k: int + Number of top indices to take (usually 3, for the left-hand tables) + largest: bool + If True, then we take the largest k indices. If False, then we take the smallest k indices. + + Returns: + pearson_indices: list[list[int]] + y-indices which are most correlated with each x-index (in terms of pearson corrcoef) + pearson_values: list[list[float]] + Values of pearson corrcoef for each of the topk indices + cossim_values: list[list[float]] + Values of cosine similarity for each of the topk indices + """ + # Get correlation coefficient, using the formula from corrcoef method + pearson, cossim = self.corrcoef() + + # Get the top pearson values + pearson_topk = TopK(tensor=pearson, k=k, largest=largest) # shape (X, k) + + # Get the cossim values for the top pearson values, i.e. cossim_values[X, k] = cossim[X, pearson_indices[X, k]] + cossim_values = eindex(cossim, pearson_topk.indices, "X [X k]") + + # If we've supplied indices, use them to offset the returned pearson topk indices + indices = pearson_topk.indices.tolist() + if self.indices is not None: + indices = [[self.indices[i] for i in x] for x in indices] + + return indices, pearson_topk.values.tolist(), cossim_values.tolist() + + +@dataclass_json +@dataclass +class HistogramData: + """ + This class contains all the data necessary to construct a single histogram (e.g. the logits or feat acts histogram). + See diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + We don't need to store the entire `data` tensor, so we initialize instances of this class using the `from_data` + method, which computes statistics from the input data tensor then discards it. + + bar_heights: The height of each bar in the histogram + bar_values: The value of each bar in the histogram + tick_vals: The tick values we want to use for the histogram + """ + + bar_heights: list[float] = field(default_factory=list) + bar_values: list[float] = field(default_factory=list) + tick_vals: list[float] = field(default_factory=list) + title: str | None = None + + @classmethod + def from_data( + cls: Type[T], + data: Tensor, + n_bins: int, + tickmode: Literal["ints", "5 ticks"], + title: str | None, + ) -> T: + """ + Args: + data: 1D tensor of data which will be turned into histogram + n_bins: Number of bins in the histogram + line_posn: list of possible positions of vertical lines we want to put on the histogram + + Returns a HistogramData object, with data computed from the inputs. This is to support the goal of only storing + the minimum necessary data (and making it serializable, for JSON saving). + """ + # There might be no data, if the feature never activates + if data.numel() == 0: + return cls() + + # Get min and max of data + max_value = data.max().item() + min_value = data.min().item() + + # Divide range up into 40 bins + bin_size = (max_value - min_value) / n_bins + bin_edges = torch.linspace(min_value, max_value, n_bins + 1) + # Calculate the heights of each bin + bar_heights = torch.histc(data, bins=n_bins).int().tolist() + bar_values = [round(x, 5) for x in (bin_edges[:-1] + bin_size / 2).tolist()] + + # Choose tickvalues + # TODO - improve this, it's currently a bit hacky (currently I only use the 5 ticks mode) + assert tickmode in ["ints", "5 ticks"] + if tickmode == "ints": + top_tickval = int(max_value) + tick_vals = torch.arange(0, top_tickval + 1, 1).tolist() + elif tickmode == "5 ticks": + # Ticks chosen in multiples of 0.1, set to ensure the longer side of {positive, negative} is 3 ticks long + if max_value > -min_value: + tickrange = 0.1 * int(1e-4 + max_value / (3 * 0.1)) + 1e-6 + num_positive_ticks = 3 + num_negative_ticks = int(-min_value / tickrange) + else: + tickrange = 0.1 * int(1e-4 + -min_value / (3 * 0.1)) + 1e-6 + num_negative_ticks = 3 + num_positive_ticks = int(max_value / tickrange) + # Tick values = merged list of negative ticks, zero, positive ticks + tick_vals = merge_lists( + reversed([-tickrange * i for i in range(1, 1 + num_negative_ticks)]), + [0], # zero (always is a tick) + [tickrange * i for i in range(1, 1 + num_positive_ticks)], + ) + tick_vals = [round(t, 1) for t in tick_vals] + + return cls( # type: ignore + bar_heights=bar_heights, # type: ignore + bar_values=bar_values, # type: ignore + tick_vals=tick_vals, # type: ignore + title=title, # type: ignore + ) + + +def max_or_1(mylist: Sequence[float | int], abs: bool = False) -> float | int: + """ + Returns max of a list, or 1 if the list is empty. + + Args: + mylist: list of numbers + abs: If True, then we take the max of the absolute values of the list + """ + if len(mylist) == 0: + return 1 + + if abs: + return max(max(x, -x) for x in mylist) + else: + return max(mylist) diff --git a/SAEDashboard/sae_dashboard/vector_data_generator.py b/SAEDashboard/sae_dashboard/vector_data_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..0206ef049be22d80637143063b670ed5b41a9c7f --- /dev/null +++ b/SAEDashboard/sae_dashboard/vector_data_generator.py @@ -0,0 +1,207 @@ +from pathlib import Path +from typing import Dict + +import einops +import numpy as np +import torch +from jaxtyping import Float, Int +from sae_lens.config import DTYPE_MAP as DTYPES +from torch import Tensor +from tqdm.auto import tqdm + +from sae_dashboard.neuronpedia.vector_set import VectorSet +from sae_dashboard.transformer_lens_wrapper import TransformerLensWrapper +from sae_dashboard.utils_fns import RollingCorrCoef + +# from sae_dashboard.dfa_calculator import DFACalculator +from sae_dashboard.vector_vis_data import VectorVisConfig + +Arr = np.ndarray + + +class VectorDataGenerator: + def __init__( + self, + cfg: VectorVisConfig, + tokens: Int[Tensor, "batch seq"], + model: TransformerLensWrapper, + encoder: VectorSet, + ): + self.cfg = cfg + self.model = model + self.encoder = encoder + self.token_minibatches = self.batch_tokens(tokens) + self.dfa_calculator = None # TODO: implement DFA for vectors + # ( + # DFACalculator(model.model, encoder) if cfg.use_dfa else None + # ) + + if cfg.use_dfa: + assert ( + "hook_z" in encoder.cfg.hook_name + ), f"DFAs are only supported for hook_z, but got {encoder.cfg.hook_name}" + + @torch.inference_mode() + def batch_tokens( + self, tokens: Int[Tensor, "batch seq"] + ) -> list[Int[Tensor, "batch seq"]]: + # Get tokens into minibatches, for the fwd pass + token_minibatches = ( + (tokens,) + if self.cfg.minibatch_size_tokens is None + else tokens.split(self.cfg.minibatch_size_tokens) + ) + token_minibatches = [tok.to(self.cfg.device) for tok in token_minibatches] + + return token_minibatches + + @torch.inference_mode() + def get_feature_data( # type: ignore + self, + feature_indices: list[int], + progress: list[tqdm] | None = None, # type: ignore + ): # type: ignore + # Create lists to store the vector activations + all_feat_acts = [] + all_dfa_results = {feature_idx: {} for feature_idx in feature_indices} + # total_prompts = 0 + + # Create objects to store the data for computing rolling stats + corrcoef_neurons = RollingCorrCoef() + corrcoef_encoder = RollingCorrCoef(indices=feature_indices, with_self=True) + + # Get the selected vectors + print(f"feature_indices: {feature_indices}") + feature_vectors = self.encoder.vectors[feature_indices] # [n_vectors, d_model] + + # if feature_vectors.dim() > 2: + # # Remove any extra dimensions to get shape [n_vectors, d_model] + # feature_vectors = feature_vectors.squeeze() + + # Process each minibatch + for i, minibatch in enumerate(self.token_minibatches): + minibatch = minibatch.to(self.cfg.device) + model_activation_dict = self.get_model_acts(i, minibatch) + primary_acts = model_activation_dict[ + self.model.activation_config.primary_hook_point + ].to(self.encoder.cfg.device) + + # Simple dot product between activations and selected vectors + feature_acts = torch.einsum("...d,nd->...n", primary_acts, feature_vectors) + feature_acts = feature_acts.to(DTYPES[self.cfg.dtype]) + + self.update_rolling_coefficients( + model_acts=primary_acts, + feature_acts=feature_acts, + corrcoef_neurons=corrcoef_neurons, + corrcoef_encoder=corrcoef_encoder, + ) + + all_feat_acts.append(feature_acts) + + # Calculate DFA if enabled + # if self.cfg.use_dfa and self.dfa_calculator: + # max_value_indices = torch.argmax(feature_acts, dim=1) + # batch_dfa_results = self.dfa_calculator.calculate( + # model_activation_dict, + # self.model.hook_layer, + # feature_indices, + # max_value_indices, + # ) + # for feature_idx, feature_data in batch_dfa_results.items(): + # for prompt_idx in range(feature_data.shape[0]): + # global_prompt_idx = total_prompts + prompt_idx + # all_dfa_results[feature_idx][global_prompt_idx] = { + # "dfaValues": feature_data[prompt_idx]["dfa_values"].tolist(), + # "dfaTargetIndex": int(feature_data[prompt_idx]["dfa_target_index"]), + # "dfaMaxValue": float(feature_data[prompt_idx]["dfa_max_value"]), + # } + + # total_prompts += len(minibatch) + + # Update progress if provided + if progress is not None: + progress[0].update(1) + + all_feat_acts = torch.cat(all_feat_acts, dim=0) + + return ( + all_feat_acts, + torch.tensor([]), # No residual post-activation values for vectors + feature_vectors, # The vectors themselves serve as the "residual direction" + feature_vectors, # The vectors themselves serve as the "output direction" + corrcoef_neurons, + corrcoef_encoder, + all_dfa_results, + ) + + @torch.inference_mode() + def get_model_acts( + self, + minibatch_index: int, + minibatch_tokens: torch.Tensor, + use_cache: bool = True, + ) -> Dict[str, torch.Tensor]: + """ + A function that gets the model activations for a given minibatch of tokens. + Uses np.memmap for efficient caching. + """ + if self.cfg.cache_dir is not None: + cache_path = self.cfg.cache_dir / f"model_activations_{minibatch_index}.pt" + if use_cache and cache_path.exists(): + activation_dict = load_tensor_dict_torch(cache_path, self.cfg.device) + else: + activation_dict = self.model.forward( + minibatch_tokens.to("cpu"), return_logits=False + ) + save_tensor_dict_torch(activation_dict, cache_path) + else: + activation_dict = self.model.forward( + minibatch_tokens.to("cpu"), return_logits=False + ) + + return activation_dict + + @torch.inference_mode() + def update_rolling_coefficients( + self, + model_acts: Float[Tensor, "batch seq d_in"], + feature_acts: Float[Tensor, "batch seq feats"], + corrcoef_neurons: RollingCorrCoef | None, + corrcoef_encoder: RollingCorrCoef | None, + ) -> None: + """ + + Args: + model_acts: Float[Tensor, "batch seq d_in"] + The activations of the model, which the SAE was trained on. + feature_idx: list[int] + The features we're computing the activations for. This will be used to index the encoder's weights. + corrcoef_neurons: Optional[RollingCorrCoef] + The object storing the minimal data necessary to compute corrcoef between feature activations & neurons. + corrcoef_encoder: Optional[RollingCorrCoef] + The object storing the minimal data necessary to compute corrcoef between pairwise feature activations. + """ + # Update the CorrCoef object between feature activation & neurons + if corrcoef_neurons is not None: + corrcoef_neurons.update( + einops.rearrange(feature_acts, "batch seq feats -> feats (batch seq)"), + einops.rearrange(model_acts, "batch seq d_in -> d_in (batch seq)"), + ) + + # Update the CorrCoef object between pairwise feature activations + if corrcoef_encoder is not None: + corrcoef_encoder.update( + einops.rearrange(feature_acts, "batch seq feats -> feats (batch seq)"), + einops.rearrange(feature_acts, "batch seq feats -> feats (batch seq)"), + ) + + +def save_tensor_dict_torch(tensor_dict: Dict[str, torch.Tensor], filename: Path): + torch.save(tensor_dict, filename) + + +def load_tensor_dict_torch(filename: Path, device: str) -> Dict[str, torch.Tensor]: + return torch.load( + filename, map_location=torch.device(device) + ) # Directly load to GPU diff --git a/SAEDashboard/sae_dashboard/vector_vis_data.py b/SAEDashboard/sae_dashboard/vector_vis_data.py new file mode 100644 index 0000000000000000000000000000000000000000..aac9d675d61f691ca762b4637c24f375e5d05c03 --- /dev/null +++ b/SAEDashboard/sae_dashboard/vector_vis_data.py @@ -0,0 +1,205 @@ +import json +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Iterable, Optional + +from dataclasses_json import dataclass_json +from rich import print as rprint +from rich.table import Table +from transformer_lens import HookedTransformer + +from sae_dashboard.feature_data import FeatureData +from sae_dashboard.layout import SaeVisLayoutConfig +from sae_dashboard.neuronpedia.vector_set import VectorSet +from sae_dashboard.utils_fns import FeatureStatistics + +VECTOR_CONFIG_DICT = dict( + hook_point="The hook point to use for the VectorSet", + features="The set of features which we'll be gathering data for. If an integer, we only get data for 1 feature", + batch_size="The number of sequences we'll gather data for. If supplied then it can't be larger than `tokens[0]`, \ +if not then we use all of `tokens`", + minibatch_size_tokens="The minibatch size we'll use to split up the full batch during forward passes, to avoid \ +OOMs.", + minibatch_size_features="The feature minibatch size we'll use to split up our features, to avoid OOM errors", + seed="Random seed, for reproducibility (e.g. sampling quantiles)", + verbose="Whether to print out progress messages and other info during the data gathering process", +) + +OUT_OF_RANGE_TOKEN = "<|outofrange|>" + + +@dataclass_json +@dataclass +class VectorVisConfig: + # Data + hook_point: str + vector_indices: Iterable[int] + minibatch_size_features: int = 256 + minibatch_size_tokens: int = 64 + quantile_feature_batch_size: int = 64 + perform_ablation_experiments: bool = False + device: str = "cpu" + dtype: str = "float32" + ignore_tokens: set[int] = field(default_factory=set) + ignore_positions: list[int] = field(default_factory=list) + ignore_thresholds: Optional[dict[int, float | int]] = None + + # Vis + feature_centric_layout: SaeVisLayoutConfig = field( + default_factory=SaeVisLayoutConfig.default_feature_centric_layout + ) + prompt_centric_layout: SaeVisLayoutConfig = field( + default_factory=SaeVisLayoutConfig.default_prompt_centric_layout + ) + + # Additional computations + use_dfa: bool = False + + # Misc + seed: int | None = 0 + verbose: bool = False + cache_dir: Path | None = None # Path to cache the data + + def to_dict(self) -> dict[str, Any]: + """Used for type hinting (the actual method comes from the `dataclass_json` decorator).""" + ... + + def help(self, title: str = "SaeVisConfig"): + """ + Performs the `help` method for both of the layout objects, as well as for the non-layout-based configs. + """ + # Create table for all the non-layout-based params + table = Table( + "Param", "Value (default)", "Description", title=title, show_lines=True + ) + + # Populate table (middle row is formatted based on whether value has changed from default) + for param, desc in VECTOR_CONFIG_DICT.items(): + value = getattr(self, param) + value_default = getattr(self.__class__, param, "no default") + if value != value_default: + value_default_repr = ( + "no default" + if value_default == "no default" + else repr(value_default) + ) + value_str = f"[b dark_orange]{value!r}[/]\n({value_default_repr})" + else: + value_str = f"[b #00aa00]{value!r}[/]" + table.add_row(param, value_str, f"[i]{desc}[/]") + + # Print table, and print the help trees for the layout objects + rprint(table) + self.feature_centric_layout.help( + title="SaeVisLayoutConfig: feature-centric vis", key=False + ) + self.prompt_centric_layout.help( + title="SaeVisLayoutConfig: prompt-centric vis", key=False + ) + + +@dataclass_json +@dataclass +class _VectorVisData: + """ + Dataclass which is used to store the data for the VectorVisData class. It excludes everything which isn't easily + serializable, only saving the raw data. + """ + + vector_data_dict: dict[int, FeatureData] = field(default_factory=dict) + vector_stats: FeatureStatistics = field(default_factory=FeatureStatistics) + + @classmethod + def from_dict( + cls, data: dict[str, Any] + ) -> ( + "_VectorVisData" + ): ... # just for type hinting; the method comes from 'dataclass_json' + + def to_dict( + self, + ) -> dict[ + str, Any + ]: ... # just for type hinting; the method comes from 'dataclass_json' + + +@dataclass +class VectorVisData: + """ + This contains all the data necessary for constructing the feature-centric visualization, over multiple + features (i.e. being able to navigate through them). See diagram in readme: + + https://github.com/callummcdougall/sae_vis#data_storing_fnspy + + Args: + feature_data_dict: Contains the data for each individual feature-centric vis. + feature_stats: Contains the stats over all features (including the quantiles of activation values for each + feature (used for rank-ordering features in the prompt-centric vis). + cfg: The vis config, used for the both the data gathering and the vis layout. + model: The model which our encoder was trained on. + encoder: The encoder used to get the feature activations. + """ + + cfg: VectorVisConfig # = field(default_factory=VectorVisConfig) + vector_data_dict: dict[int, FeatureData] = field(default_factory=dict) + vector_stats: FeatureStatistics = field(default_factory=FeatureStatistics) + + model: HookedTransformer | None = None + encoder: VectorSet | None = None + + def update(self, other: "VectorVisData") -> None: + """ + Updates a VectorVisData object with the data from another VectorVisData object. This is useful during the + `get_feature_data` function, since this function is broken up into different groups of features then merged + together. + """ + if other is None: + return + self.vector_data_dict.update(other.vector_data_dict) + self.vector_stats.update(other.vector_stats) + + def save_json(self: "VectorVisData", filename: str | Path) -> None: + """ + Saves an VectorVisData instance to a JSON file. The config, model & encoder arguments must be user-supplied. + """ + if isinstance(filename, str): + filename = Path(filename) + assert filename.suffix == ".json", "Filename must have a .json extension" + + _self = _VectorVisData( + vector_data_dict=self.vector_data_dict, + vector_stats=self.vector_stats, + ) + + with open(filename, "w") as f: + json.dump(_self.to_dict(), f) + + @classmethod + def load_json( + cls, + filename: str | Path, + cfg: VectorVisConfig, + model: HookedTransformer, + encoder: VectorSet, + ) -> "VectorVisData": + """ + Loads an VectorVisData instance from JSON file. The config, model & encoder arguments must be user-supplied. + """ + if isinstance(filename, str): + filename = Path(filename) + assert filename.suffix == ".json", "Filename must have a .json extension" + + with open(filename) as f: + data = json.load(f) + + _self = _VectorVisData.from_dict(data) + + self = VectorVisData( + cfg=cfg, + vector_data_dict=_self.vector_data_dict, + vector_stats=_self.vector_stats, + model=model, + encoder=encoder, + ) + + return self diff --git a/SAEDashboard/sae_dashboard/vector_vis_runner.py b/SAEDashboard/sae_dashboard/vector_vis_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..35339b7f0a5d30a50035a2b3ab6c656325eea8df --- /dev/null +++ b/SAEDashboard/sae_dashboard/vector_vis_runner.py @@ -0,0 +1,357 @@ +import math +import random +import re +from collections import defaultdict +from typing import Iterable, List, Union + +import einops +import numpy as np +import torch +from jaxtyping import Int +from rich import print as rprint +from rich.table import Table +from sae_lens import SAE +from sae_lens.config import DTYPE_MAP as DTYPES +from torch import Tensor +from tqdm.auto import tqdm +from transformer_lens import HookedTransformer + +from sae_dashboard.components import ( + ActsHistogramData, + DecoderWeightsDistribution, + FeatureTablesData, + LogitsHistogramData, +) +from sae_dashboard.data_parsing_fns import ( + get_features_table_data, + get_logits_table_data, +) +from sae_dashboard.feature_data import FeatureData +from sae_dashboard.neuronpedia.vector_set import VectorSet +from sae_dashboard.sequence_data_generator import SequenceDataGenerator +from sae_dashboard.transformer_lens_wrapper import ( + ActivationConfig, + TransformerLensWrapper, +) +from sae_dashboard.utils_fns import FeatureStatistics +from sae_dashboard.vector_data_generator import VectorDataGenerator +from sae_dashboard.vector_vis_data import VectorVisConfig, VectorVisData + + +class VectorDataGeneratorFactory: + @staticmethod + def create( + cfg: VectorVisConfig, + model: HookedTransformer, + encoder: VectorSet, + tokens: Int[Tensor, "batch seq"], + ) -> VectorDataGenerator: + """Builds a FeatureDataGenerator using the provided config and model.""" + activation_config = ActivationConfig( + primary_hook_point=cfg.hook_point, + auxiliary_hook_points=( + [ + re.sub(r"hook_z", "hook_v", cfg.hook_point), + re.sub(r"hook_z", "hook_pattern", cfg.hook_point), + ] + if cfg.use_dfa + else [] + ), + ) + wrapped_model = TransformerLensWrapper(model, activation_config) # type: ignore + return VectorDataGenerator( + cfg=cfg, model=wrapped_model, encoder=encoder, tokens=tokens + ) + + +class VectorVisRunner: + def __init__(self, cfg: VectorVisConfig) -> None: + self.cfg = cfg + self.device = self.cfg.device + self.dtype = DTYPES[self.cfg.dtype] + if self.cfg.cache_dir is not None: + self.cfg.cache_dir.mkdir(parents=True, exist_ok=True) + + @torch.inference_mode() + def run( + self, + encoder: VectorSet, + model: HookedTransformer, + tokens: Int[Tensor, "batch seq"], + ) -> VectorVisData: + # Apply random seed + self.set_seeds() + + # Create objects to store all the data we'll get from `_get_feature_data` + vector_vis_data = VectorVisData(cfg=self.cfg) + time_logs = defaultdict(float) + + vector_indices_list = self.handle_vector_indices( + self.cfg.vector_indices, encoder + ) + vector_batches = self.get_vector_batches(vector_indices_list) + progress = self.get_progress_bar(tokens, vector_batches, vector_indices_list) + + vector_data_generator = VectorDataGeneratorFactory.create( + self.cfg, model, encoder, tokens + ) + + sequence_data_generator = SequenceDataGenerator( + cfg=self.cfg, + tokens=tokens, + W_U=model.W_U, + ) + + # all_consolidated_dfa_results = { # TODO: implement DFA for vectors + # vector_idx: {} for vector_idx in self.cfg.vector_indices + # } + # For each batch of features: get new data and update global data storage objects + # TODO: We should write out json files with the results as this runs rather than storing everything in memory + for vector_indices in vector_batches: + # model and sae activations calculations. + + ( + all_feat_acts, + _, # all resid post. no longer used. + feature_resid_dir, + feature_out_dir, + corrcoef_neurons, + corrcoef_encoder, + batch_dfa_results, # type: ignore + ) = vector_data_generator.get_feature_data(vector_indices, progress) + + # Get the logits of all features (i.e. the directions this feature writes to the logit output) + logits = einops.einsum( + feature_resid_dir.to(device=model.W_U.device, dtype=model.W_U.dtype), + model.W_U, + "feats d_model, d_model d_vocab -> feats d_vocab", + ).to(self.device) + + # ! Get stats (including quantiles, which will be useful for the prompt-centric visualisation) + vector_stats = FeatureStatistics.create( + data=einops.rearrange(all_feat_acts, "b s feats -> feats (b s)"), + batch_size=self.cfg.quantile_feature_batch_size, + ) + + # ! Data setup code (defining the main objects we'll eventually return) + vector_data_dict: dict[int, FeatureData] = { + vector_idx: FeatureData() for vector_idx in vector_indices + } + + # We're using `cfg.feature_centric_layout` to figure out what data we'll need to calculate during this function + layout = self.cfg.feature_centric_layout + + feature_tables_data = get_features_table_data( + feature_out_dir=feature_out_dir, + corrcoef_neurons=corrcoef_neurons, + corrcoef_encoder=corrcoef_encoder, + n_rows=layout.feature_tables_cfg.n_rows, # type: ignore + ) + + # Add all this data to the list of FeatureTablesData objects + # if batch_dfa_results: # TODO: implement DFA for vectors + # # Accumulate DFA results across feature batches + # for feature_idx, feature_data in batch_dfa_results.items(): + # all_consolidated_dfa_results[feature_idx].update(feature_data) + + for i, (vector_idx, logit_vector) in enumerate(zip(vector_indices, logits)): + vector_data_dict[vector_idx].feature_tables_data = FeatureTablesData( + **{k: v[i] for k, v in feature_tables_data.items()} # type: ignore + ) + + # Get logits histogram data (no title) + vector_data_dict[vector_idx].logits_histogram_data = ( + LogitsHistogramData.from_data( + data=logit_vector.to( + torch.float32 + ), # need this otherwise fails on MPS + n_bins=layout.logits_hist_cfg.n_bins, # type: ignore + tickmode="5 ticks", + title=None, + ) + ) + + # Get data for feature activations histogram (including the title!) + feat_acts = all_feat_acts[..., i] + + # Create a mask for tokens to ignore based on both ID and position + ignore_tokens_mask = torch.ones_like(tokens, dtype=torch.bool) + if self.cfg.ignore_tokens: + ignore_tokens_mask &= ~torch.isin( + tokens, + torch.tensor( + list(self.cfg.ignore_tokens), + dtype=tokens.dtype, + device=tokens.device, + ), + ) + if self.cfg.ignore_positions: + ignore_positions_mask = torch.ones_like(tokens, dtype=torch.bool) + ignore_positions_mask[:, self.cfg.ignore_positions] = False + ignore_tokens_mask &= ignore_positions_mask + + # Move the mask to the same device as feat_acts + ignore_tokens_mask = ignore_tokens_mask.to(feat_acts.device) + + if ( + self.cfg.ignore_thresholds + and vector_idx in self.cfg.ignore_thresholds + ): + # the ignore_thresholds is a dict mapping vector indices to thresholds + ignore_tokens_mask &= ( + feat_acts >= self.cfg.ignore_thresholds[vector_idx] + ) + + # set any masked positions to 0 + masked_feat_acts = feat_acts * ignore_tokens_mask + + # Apply the mask to feat_acts + nonzero_feat_acts = masked_feat_acts[masked_feat_acts > 0] + frac_nonzero = nonzero_feat_acts.numel() / masked_feat_acts.numel() + + vector_data_dict[vector_idx].acts_histogram_data = ( + ActsHistogramData.from_data( + data=nonzero_feat_acts.to( + torch.float32 + ), # need this otherwise fails on MPS + n_bins=layout.act_hist_cfg.n_bins, # type: ignore + tickmode="5 ticks", + title=f"ACTIVATIONS
DENSITY = {frac_nonzero:.3%}", + ) + ) + + # Create a MiddlePlotsData object from this, and add it to the dict + vector_data_dict[vector_idx].logits_table_data = get_logits_table_data( + logit_vector=logit_vector, + n_rows=layout.logits_table_cfg.n_rows, # type: ignore + ) + + # ! Calculate all data for the right-hand visualisations, i.e. the sequences + + # Add this feature's sequence data to the list + vector_data_dict[vector_idx].sequence_data = ( + sequence_data_generator.get_sequences_data( + feat_acts=masked_feat_acts, + feat_logits=logits[i], + resid_post=torch.tensor([]), # no longer used + feature_resid_dir=feature_resid_dir[i], + ) + ) + # if self.cfg.use_dfa: + # vector_data_dict[vector_idx].dfa_data = all_consolidated_dfa_results.get( + # vector_idx, None + # ) + # vector_data_dict[vector_idx].decoder_weights_data = ( + # get_decoder_weights_distribution(encoder, model, vector_idx)[0] + # ) + + # Update the 2nd progress bar (fwd passes & getting sequence data dominates the runtime of these computations) + if progress is not None: + progress[1].update(1) + + # ! Return the output, as a dict of FeatureData items + new_vector_data = VectorVisData( + cfg=self.cfg, + vector_data_dict=vector_data_dict, + vector_stats=vector_stats, + ) + + vector_vis_data.update(new_vector_data) + + # Now exited, make sure the progress bar is at 100% + if progress is not None: + for pbar in progress: + pbar.n = pbar.total + + # If verbose, then print the output + if self.cfg.verbose: + total_time = sum(time_logs.values()) + table = Table("Task", "Time", "Pct %") + for task, duration in time_logs.items(): + table.add_row(task, f"{duration:.2f}s", f"{duration/total_time:.1%}") + rprint(table) + + vector_vis_data.cfg = self.cfg + vector_vis_data.model = model + vector_vis_data.encoder = encoder + + return vector_vis_data + + def set_seeds(self) -> None: + if self.cfg.seed is not None: + random.seed(self.cfg.seed) + torch.manual_seed(self.cfg.seed) + np.random.seed(self.cfg.seed) + return None + + def handle_vector_indices( + self, vector_indices: Iterable[int] | None, encoder_wrapper: VectorSet + ) -> list[int]: + if vector_indices is None: + return list(range(encoder_wrapper.cfg.d_vectors)) + else: + return list(vector_indices) + + def get_vector_batches(self, vector_indices_list: list[int]) -> list[list[int]]: + # Break up the features into batches + vector_batches = [ + x.tolist() + for x in torch.tensor(vector_indices_list).split( + self.cfg.minibatch_size_features + ) + ] + return vector_batches + + def get_progress_bar( + self, + tokens: Int[Tensor, "batch seq"], + vector_batches: list[list[int]], + vector_indices_list: list[int], + ): + # Calculate how many minibatches of tokens there will be (for the progress bar) + n_token_batches = ( + 1 + if (self.cfg.minibatch_size_tokens is None) + else math.ceil(len(tokens) / self.cfg.minibatch_size_tokens) + ) + + # Get the denominator for each of the 2 progress bars + totals = (n_token_batches * len(vector_batches), len(vector_indices_list)) + + # Optionally add two progress bars (one for the forward passes, one for getting the sequence data) + if self.cfg.verbose: + progress = [ + tqdm(total=totals[0], desc="Forward passes to cache data for vis"), + tqdm(total=totals[1], desc="Extracting vis data from cached data"), + ] + else: + progress = None + + return progress + + +def get_decoder_weights_distribution( + encoder: SAE, # type: ignore + model: HookedTransformer, + feature_idx: Union[int, List[int]], +) -> List[DecoderWeightsDistribution]: + if not isinstance(feature_idx, list): + feature_idx = [feature_idx] + + distribs = [] + for feature in feature_idx: + att_blocks = einops.rearrange( + encoder.W_dec[feature, :], + "(n_head d_head) -> n_head d_head", + n_head=model.cfg.n_heads, + ).to("cpu") + decoder_weights_distribution = ( + att_blocks.norm(dim=1) / att_blocks.norm(dim=1).sum() + ) + distribs.append( + DecoderWeightsDistribution( + model.cfg.n_heads, [float(x) for x in decoder_weights_distribution] + ) + ) + + return distribs diff --git a/SAEDashboard/sae_dashboard_demo.ipynb b/SAEDashboard/sae_dashboard_demo.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..acecb3435bfc215113c163a4626ce56c213c70b4 --- /dev/null +++ b/SAEDashboard/sae_dashboard_demo.ipynb @@ -0,0 +1,249 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Demo Notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Steps:\n", + "1. Download SAE with SAE Lens.\n", + "2. Create a dataset consistent with that SAE. \n", + "3. Fold the SAE decoder norm weights so that feature activations are \"correct\".\n", + "4. Estimate the activation normalization constant if needed, and fold it into the SAE weights.\n", + "5. Run the SAE generator for the features you want." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Set Up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "from sae_lens import SAE\n", + "from transformer_lens import HookedTransformer\n", + "from sae_dashboard.sae_vis_data import SaeVisConfig\n", + "from sae_dashboard.sae_vis_runner import SaeVisRunner" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 1. Download / Initialize SAE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# For the most part I'll try to import functions and classes near where they are used\n", + "# to make it clear where they come from.\n", + "\n", + "if torch.backends.mps.is_available():\n", + " device = \"mps\"\n", + "else:\n", + " device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "print(f\"Device: {device}\")\n", + "\n", + "model = HookedTransformer.from_pretrained(\"gemma-2b\", device=device, dtype=\"bfloat16\")\n", + "\n", + "# the cfg dict is returned alongside the SAE since it may contain useful information for analysing the SAE (eg: instantiating an activation store)\n", + "# Note that this is not the same as the SAEs config dict, rather it is whatever was in the HF repo, from which we can extract the SAE config dict\n", + "# We also return the feature sparsities which are stored in HF for convenience.\n", + "sae, cfg_dict, sparsity = SAE.from_pretrained(\n", + " release=\"gemma-2b-res-jb\", # see other options in sae_lens/pretrained_saes.yaml\n", + " sae_id=\"blocks.6.hook_resid_post\", # won't always be a hook point\n", + " device=device,\n", + ")\n", + "# fold w_dec norm so feature activations are accurate\n", + "sae.fold_W_dec_norm()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Get token dataset" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_lens import ActivationsStore\n", + "\n", + "activations_store = ActivationsStore.from_sae(\n", + " model=model,\n", + " sae=sae,\n", + " streaming=True,\n", + " store_batch_size_prompts=16,\n", + " n_batches_in_buffer=8,\n", + " device=device,\n", + ")\n", + "\n", + "# Some SAEs will require we estimate the activation norm and fold it into the weights. This is easy with SAE Lens.\n", + "if sae.cfg.normalize_activations == \"expected_average_only_in\":\n", + " norm_scaling_factor = activations_store.estimate_norm_scaling_factor(\n", + " n_batches_for_norm_estimate=30\n", + " )\n", + " sae.fold_activation_norm_scaling_factor(norm_scaling_factor)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from tqdm import tqdm\n", + "\n", + "\n", + "from sae_dashboard.utils_fns import get_tokens\n", + "\n", + "# 1000 prompts is plenty for a demo.\n", + "token_dataset = get_tokens(activations_store, 128)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Step 3 Evaluate the SAE" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_lens import run_evals\n", + "\n", + "eval_metrics = run_evals(\n", + " sae=sae,\n", + " activation_store=activations_store,\n", + " model=model,\n", + " n_eval_batches=3,\n", + " eval_batch_size_prompts=8,\n", + ")\n", + "\n", + "# CE Loss score should be high for residual stream SAEs\n", + "print(eval_metrics[\"metrics/CE_loss_score\"])\n", + "\n", + "# ce loss without SAE should be fairly low < 3.5 suggesting the Model is being run correctly\n", + "print(eval_metrics[\"metrics/ce_loss_without_sae\"])\n", + "\n", + "# ce loss with SAE shouldn't be massively higher\n", + "print(eval_metrics[\"metrics/ce_loss_with_sae\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Generate Feature Dashboards" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gc\n", + "\n", + "gc.collect()\n", + "torch.cuda.empty_cache()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "test_feature_idx_gpt = list(range(256))\n", + "\n", + "feature_vis_config_gpt = SaeVisConfig(\n", + " hook_point=sae.cfg.hook_name,\n", + " features=test_feature_idx_gpt,\n", + " minibatch_size_features=64,\n", + " minibatch_size_tokens=256, # this is number of prompts at a time.\n", + " verbose=True,\n", + " device=\"cuda\",\n", + " cache_dir=Path(\n", + " \"demo_activations_cache\"\n", + " ), # this will enable us to skip running the model for subsequent features.\n", + " dtype=\"bfloat16\",\n", + ")\n", + "\n", + "data = SaeVisRunner(feature_vis_config_gpt).run(\n", + " encoder=sae, # type: ignore\n", + " model=model,\n", + " tokens=token_dataset,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_dashboard.data_writing_fns import save_feature_centric_vis\n", + "\n", + "filename = f\"demo_feature_dashboards.html\"\n", + "save_feature_centric_vis(sae_vis_data=data, filename=filename)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SAEDashboard/sae_dashboard_demo_mistral.ipynb b/SAEDashboard/sae_dashboard_demo_mistral.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..17e0965b8c6565a610c1ae8bb8c79fb8ef4762b3 --- /dev/null +++ b/SAEDashboard/sae_dashboard_demo_mistral.ipynb @@ -0,0 +1,256 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Demo Notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Steps:\n", + "1. Download SAE with SAE Lens.\n", + "2. Create a dataset consistent with that SAE. \n", + "3. Fold the SAE decoder norm weights so that feature activations are \"correct\".\n", + "4. Estimate the activation normalization constant if needed, and fold it into the SAE weights.\n", + "5. Run the SAE generator for the features you want." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Set Up" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "from transformer_lens import HookedTransformer\n", + "from sae_lens import ActivationsStore, SAE\n", + "from importlib import reload\n", + "import sae_dashboard\n", + "\n", + "reload(sae_dashboard)\n", + "\n", + "if torch.backends.mps.is_available():\n", + " device = \"mps\"\n", + "else:\n", + " device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "print(f\"Device: {device}\")\n", + "\n", + "model = HookedTransformer.from_pretrained(\n", + " \"mistral-7b\", device=device, n_devices=4, dtype=\"bfloat16\"\n", + ")\n", + "\n", + "# the cfg dict is returned alongside the SAE since it may contain useful information for analysing the SAE (eg: instantiating an activation store)\n", + "# Note that this is not the same as the SAEs config dict, rather it is whatever was in the HF repo, from which we can extract the SAE config dict\n", + "# We also return the feature sparsities which are stored in HF for convenience.\n", + "sae, cfg_dict, sparsity = SAE.from_pretrained(\n", + " release=\"mistral-7b-res-wg\", # see other options in sae_lens/pretrained_saes.yaml\n", + " sae_id=\"blocks.8.hook_resid_pre\", # won't always be a hook point\n", + " device=\"cuda:3\",\n", + ")\n", + "# fold w_dec norm so feature activations are accurate\n", + "sae.fold_W_dec_norm()\n", + "\n", + "\n", + "activations_store = ActivationsStore.from_sae(\n", + " model=model,\n", + " sae=sae,\n", + " streaming=True,\n", + " store_batch_size_prompts=8,\n", + " n_batches_in_buffer=8,\n", + " device=\"cpu\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from tqdm import tqdm\n", + "from sae_dashboard.utils_fns import get_tokens\n", + "\n", + "\n", + "def get_tokens_mistral(\n", + " activations_store: ActivationsStore,\n", + " n_batches_to_sample_from: int = 4096 * 6,\n", + " n_prompts_to_select: int = 4096 * 6,\n", + "):\n", + " all_tokens = get_tokens(activations_store, n_batches_to_sample_from)\n", + " return all_tokens[:n_prompts_to_select]\n", + "\n", + "\n", + "# 1000 prompts is plenty for a demo.\n", + "# token_dataset = get_tokens_mistral(activations_store)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# torch.save(token_dataset, \"token_dataset.pt\")\n", + "token_dataset = torch.load(\"token_dataset.pt\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "os.rmdir(\"demo_activations_cache\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "test_feature_idx_gpt = list(range(256))\n", + "\n", + "feature_vis_config_gpt = sae_dashboard.SaeVisConfig(\n", + " hook_point=sae.cfg.hook_name,\n", + " features=test_feature_idx_gpt,\n", + " minibatch_size_features=16,\n", + " minibatch_size_tokens=32, # this is really prompt with the number of tokens determined by the sequence length\n", + " verbose=True,\n", + " device=\"cuda\",\n", + " cache_dir=Path(\n", + " \"demo_activations_cache\"\n", + " ), # this will enable us to skip running the model for subsequent features.\n", + " dtype=\"bfloat16\",\n", + ")\n", + "\n", + "runner = sae_dashboard.SaeVisRunner(feature_vis_config_gpt)\n", + "\n", + "data = runner.run(\n", + " encoder=sae, # type: ignore\n", + " model=model,\n", + " tokens=token_dataset[:4096],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sae_dashboard.data_writing_fns import save_feature_centric_vis\n", + "\n", + "filename = f\"demo_feature_dashboards.html\"\n", + "save_feature_centric_vis(sae_vis_data=data, filename=filename)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quick Profiling experiment" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "activations_store = ActivationsStore.from_sae(\n", + " model=model,\n", + " sae=sae,\n", + " streaming=True,\n", + " store_batch_size_prompts=32,\n", + " n_batches_in_buffer=1,\n", + " device=\"cpu\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sae.cfg.d_in" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import gc\n", + "import torch\n", + "from safetensors.torch import save_file\n", + "from torch.profiler import profile, record_function, ProfilerActivity\n", + "\n", + "gc.collect()\n", + "torch.cuda.empty_cache()\n", + "\n", + "\n", + "@torch.no_grad()\n", + "def my_function():\n", + " # Your PyTorch code here\n", + " for _ in range(5):\n", + " tokens = token_dataset[:32]\n", + " _, cache = model.run_with_cache(\n", + " tokens, stop_at_layer=sae.cfg.hook_layer + 1, names_filter=sae.cfg.hook_name\n", + " )\n", + " sae_in = cache[sae.cfg.hook_name]\n", + " # tensors = {\"activations\": sae_in}\n", + " # save_file(tensors, \"test.safetensors\")\n", + " # del tensors\n", + "\n", + "\n", + "with profile(\n", + " activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], record_shapes=True\n", + ") as prof:\n", + " with record_function(\"my_function\"):\n", + " my_function()\n", + "\n", + "print(prof.key_averages().table(sort_by=\"cpu_time_total\", row_limit=10))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/SAEDashboard/scripts/example_vec_dashboards_with_thresholds_and_chat.py b/SAEDashboard/scripts/example_vec_dashboards_with_thresholds_and_chat.py new file mode 100644 index 0000000000000000000000000000000000000000..a138239f58fbb69362ff0f3db7f0ffe0f68426d7 --- /dev/null +++ b/SAEDashboard/scripts/example_vec_dashboards_with_thresholds_and_chat.py @@ -0,0 +1,15637 @@ +# this is an example of how to run the vector dashboard with thresholds and chat +# activation_thresholds: pass a dict mapping vector indices to thresholds +# activations below the threshold are zeroed out +# prepend_chat_template_text: pass a string to prepend to the prompt to "convert" a non-chat dataset into a chat dataset +# this example uses axbench: https://huggingface.co/pyvene/gemma-reft-2b-it-res + +import torch +from huggingface_hub import hf_hub_download + +from sae_dashboard.neuronpedia.neuronpedia_vector_runner import ( + NeuronpediaVectorRunner, + NeuronpediaVectorRunnerConfig, +) +from sae_dashboard.neuronpedia.vector_set import VectorSet + +# WARNING: you should probably regularly delete the cached_activations folder, as it will screw up your subsequent results otherwise when you run a different dataset +# import os +# import shutil +# if os.path.exists("./cached_activations"): +# shutil.rmtree("./cached_activations") + +path_to_params = hf_hub_download( + repo_id="pyvene/gemma-reft-2b-it-res", filename="l20/weight.pt" +) +params = torch.load(path_to_params, weights_only=True) + +vector_set = VectorSet( + vectors=params, + hook_point="blocks.20.hook_resid_pre", + hook_layer=20, + model_name="gemma-2-2b-it", + hook_head_index=None, + names=[], + prepend_bos=False, +) + +thresholds = { + 0: 69.5, + 1: 43.5, + 10: 48.5, + 100: 34.75, + 1000: 47.25, + 10000: 41.25, + 10001: 55, + 10002: 44.75, + 10003: 70.5, + 10004: 64.5, + 10005: 127, + 10006: 42.25, + 10007: 25.874999999999996, + 10008: 45.75, + 10009: 26.375, + 1001: 47.5, + 10010: 40, + 10011: 44.75, + 10012: 71, + 10013: 71.5, + 10014: 78, + 10015: 58.5, + 10016: 51.5, + 10017: 91, + 10018: 45.25000000000001, + 10019: 89, + 1002: 36, + 10020: 13.188, + 10021: 49, + 10022: 71, + 10023: 63, + 10024: 163, + 10025: 34.25, + 10026: 84.5, + 10027: 36.75, + 10028: 42.75, + 10029: 54.74999999999999, + 1003: 74.5, + 10030: 61.75000000000001, + 10031: 66, + 10032: 54.75, + 10033: 34.5, + 10034: 33.75, + 10035: 39.25, + 10036: 61.75000000000001, + 10037: 43.5, + 10038: 52.25, + 10039: 27.25, + 1004: 33.75, + 10040: 66.5, + 10041: 22.125, + 10042: 45.25000000000001, + 10043: 56.25, + 10044: 45.74999999999999, + 10045: 80.5, + 10046: 57.75, + 10047: 41.5, + 10048: 52.25, + 10049: 32, + 1005: 30.125, + 10050: 51.5, + 10051: 44.5, + 10052: 72, + 10053: 59.99999999999999, + 10054: 68, + 10055: 63.5, + 10056: 82, + 10057: 34.75, + 10058: 25.75, + 10059: 162, + 1006: 56.25000000000001, + 10060: 26.375, + 10061: 33.75, + 10062: 31.5, + 10063: 58.75, + 10064: 42.5, + 10065: 95, + 10066: 38.75, + 10067: 33.25, + 10068: 38.5, + 10069: 56, + 1007: 48.25, + 10070: 61.5, + 10071: 55.75, + 10072: 58.25, + 10073: 0, + 10074: 67, + 10075: 63.25, + 10076: 69, + 10077: 21.125, + 10078: 44.25, + 10079: 41.5, + 1008: 59.5, + 10080: 85, + 10081: 64, + 10082: 33, + 10083: 77.5, + 10084: 47, + 10085: 52, + 10086: 81, + 10087: 39, + 10088: 48.5, + 10089: 63.25, + 1009: 57, + 10090: 62.75, + 10091: 67.5, + 10092: 34.75, + 10093: 17.75, + 10094: 38, + 10095: 65.5, + 10096: 48.99999999999999, + 10097: 44, + 10098: 51.25, + 10099: 48.75, + 101: 69, + 1010: 48.25, + 10100: 57.5, + 10101: 53.75, + 10102: 68.5, + 10103: 57.75, + 10104: 59.75, + 10105: 18.25, + 10106: 48.5, + 10107: 59.25, + 10108: 43.5, + 10109: 71, + 1011: 107, + 10110: 69, + 10111: 31.625, + 10112: 122, + 10113: 90, + 10114: 39, + 10115: 65.5, + 10116: 65, + 10117: 28.875, + 10118: 50.5, + 10119: 24.625, + 1012: 74.5, + 10120: 74, + 10121: 46, + 10122: 70, + 10123: 45.75, + 10124: 46, + 10125: 102, + 10126: 47.75, + 10127: 45.75, + 10128: 54.25, + 10129: 52.24999999999999, + 1013: 56.75, + 10130: 37.5, + 10131: 70.5, + 10132: 48.75, + 10133: 60.5, + 10134: 40, + 10135: 38, + 10136: 65, + 10137: 66, + 10138: 42, + 10139: 55, + 1014: 16.5, + 10140: 25.124999999999996, + 10141: 55.49999999999999, + 10142: 40.25000000000001, + 10143: 33.25, + 10144: 33.5, + 10145: 47.75, + 10146: 60.25, + 10147: 52, + 10148: 68, + 10149: 37.75, + 1015: 44.25, + 10150: 47.25, + 10151: 92.5, + 10152: 69.5, + 10153: 32.25, + 10154: 69.5, + 10155: 69, + 10156: 75, + 10157: 50.5, + 10158: 93.5, + 10159: 68, + 1016: 40.5, + 10160: 78.5, + 10161: 35, + 10162: 94.5, + 10163: 52.25, + 10164: 54.75, + 10165: 41.25, + 10166: 74.5, + 10167: 46, + 10168: 71, + 10169: 37, + 1017: 54.25, + 10170: 70, + 10171: 66, + 10172: 59.25, + 10173: 20.125000000000004, + 10174: 41.25, + 10175: 36, + 10176: 68.5, + 10177: 26.875, + 10178: 52, + 10179: 54, + 1018: 54.75, + 10180: 74, + 10181: 11.812, + 10182: 78, + 10183: 44, + 10184: 54.5, + 10185: 51.5, + 10186: 70.5, + 10187: 53, + 10188: 47.75, + 10189: 74.5, + 1019: 79.5, + 10190: 58.25, + 10191: 64.5, + 10192: 42.25, + 10193: 60.75, + 10194: 34.25, + 10195: 70, + 10196: 54.5, + 10197: 56.75, + 10198: 61.5, + 10199: 23.75, + 102: 60.75, + 1020: 47.75, + 10200: 52, + 10201: 64.5, + 10202: 69, + 10203: 37.25, + 10204: 108.5, + 10205: 42.5, + 10206: 60.5, + 10207: 55.5, + 10208: 76.5, + 10209: 49, + 1021: 56.75, + 10210: 25, + 10211: 54.5, + 10212: 25.25, + 10213: 30.5, + 10214: 40.75, + 10215: 55.5, + 10216: 124.5, + 10217: 63.75, + 10218: 76, + 10219: 66, + 1022: 38, + 10220: 76, + 10221: 40.5, + 10222: 23.875, + 10223: 61.5, + 10224: 89.5, + 10225: 59.5, + 10226: 56.49999999999999, + 10227: 31.75, + 10228: 45.25, + 10229: 33.5, + 1023: 29.499999999999996, + 10230: 45.75, + 10231: 44.5, + 10232: 63, + 10233: 44.25, + 10234: 30.5, + 10235: 53.5, + 10236: 59.24999999999999, + 10237: 53.5, + 10238: 39.25, + 10239: 80.49999999999999, + 1024: 62, + 10240: 78.5, + 10241: 63.5, + 10242: 38, + 10243: 68, + 10244: 51.75, + 10245: 65.5, + 10246: 53.5, + 10247: 66.5, + 10248: 41.5, + 10249: 41, + 1025: 39.75, + 10250: 17.25, + 10251: 86, + 10252: 51.25, + 10253: 74, + 10254: 47.5, + 10255: 56.25, + 10256: 61.25, + 10257: 33.25, + 10258: 64.5, + 10259: 59.75, + 1026: 30.125, + 10260: 0.578, + 10261: 52, + 10262: 69, + 10263: 50.25000000000001, + 10264: 62, + 10265: 76.5, + 10266: 67, + 10267: 74, + 10268: 45.75, + 10269: 77.5, + 1027: 45.5, + 10270: 102.5, + 10271: 66.5, + 10272: 45.25, + 10273: 45.25, + 10274: 119, + 10275: 48.25, + 10276: 58.5, + 10277: 35, + 10278: 34.5, + 10279: 33.25, + 1028: 37.75, + 10280: 53.25, + 10281: 30.375, + 10282: 56.25, + 10283: 70.5, + 10284: 44, + 10285: 72.5, + 10286: 33.5, + 10287: 50.5, + 10288: 51.75, + 10289: 73.5, + 1029: 40.5, + 10290: 71.5, + 10291: 50.75, + 10292: 27.5, + 10293: 60.75, + 10294: 66, + 10295: 43.49999999999999, + 10296: 85, + 10297: 48.75, + 10298: 53, + 10299: 62, + 103: 28.75, + 1030: 42.25000000000001, + 10300: 64.5, + 10301: 74.5, + 10302: 57.75, + 10303: 63.75, + 10304: 64, + 10305: 62.24999999999999, + 10306: 9.438, + 10307: 41, + 10308: 59.25, + 10309: 20.25, + 1031: 47.5, + 10310: 79.5, + 10311: 45, + 10312: 51.25, + 10313: 34, + 10314: 76.5, + 10315: 74.5, + 10316: 57.25, + 10317: 24.375, + 10318: 39.75, + 10319: 31, + 1032: 37.25, + 10320: 62.75, + 10321: 54.25, + 10322: 81.5, + 10323: 103.5, + 10324: 58.75, + 10325: 54.25, + 10326: 54.25, + 10327: 113, + 10328: 7.812, + 10329: 50.5, + 1033: 58.5, + 10330: 11.25, + 10331: 25.375, + 10332: 60, + 10333: 54.5, + 10334: 51.75, + 10335: 49.25, + 10336: 49, + 10337: 59.75, + 10338: 42, + 10339: 54.5, + 1034: 80.5, + 10340: 39.5, + 10341: 42, + 10342: 55.5, + 10343: 47, + 10344: 64.5, + 10345: 30.5, + 10346: 70.5, + 10347: 42, + 10348: 50.25, + 10349: 57.5, + 1035: 21, + 10350: 61.5, + 10351: 53.75, + 10352: 33, + 10353: 70, + 10354: 34.75, + 10355: 62.25, + 10356: 59.75, + 10357: 75.5, + 10358: 46, + 10359: 66.5, + 1036: 42.75, + 10360: 19.875, + 10361: 35.75, + 10362: 74.5, + 10363: 22.75, + 10364: 60.25, + 10365: 58, + 10366: 52, + 10367: 76.5, + 10368: 44, + 10369: 62.74999999999999, + 1037: 94, + 10370: 50.75, + 10371: 45, + 10372: 74.5, + 10373: 78.5, + 10374: 3.359, + 10375: 54.5, + 10376: 29.625, + 10377: 32.25, + 10378: 50.5, + 10379: 71.5, + 1038: 69, + 10380: 68, + 10381: 53.75, + 10382: 75.5, + 10383: 37.5, + 10384: 63.5, + 10385: 53.25, + 10386: 67.5, + 10387: 53.5, + 10388: 134, + 10389: 44.75, + 1039: 42.75, + 10390: 32.5, + 10391: 40, + 10392: 58.5, + 10393: 55.5, + 10394: 51.75, + 10395: 39.75, + 10396: 63, + 10397: 88, + 10398: 28.374999999999996, + 10399: 43.75, + 104: 75.5, + 1040: 132, + 10400: 123, + 10401: 41, + 10402: 63.49999999999999, + 10403: 68, + 10404: 36.75, + 10405: 49, + 10406: 45.74999999999999, + 10407: 39.5, + 10408: 49.25, + 10409: 16.5, + 1041: 60.25, + 10410: 53, + 10411: 67.5, + 10412: 72.5, + 10413: 40.75, + 10414: 64.5, + 10415: 63.5, + 10416: 52, + 10417: 68.5, + 10418: 38, + 10419: 51.5, + 1042: 38.5, + 10420: 68.5, + 10421: 63.25, + 10422: 43.75, + 10423: 50.25, + 10424: 68, + 10425: 48, + 10426: 64.5, + 10427: 55.75, + 10428: 88.5, + 10429: 56, + 1043: 48.25, + 10430: 38.25, + 10431: 14, + 10432: 61, + 10433: 19.875, + 10434: 69, + 10435: 75.5, + 10436: 14.75, + 10437: 71.5, + 10438: 79.5, + 10439: 44.25, + 1044: 65, + 10440: 33.5, + 10441: 63, + 10442: 34, + 10443: 106.5, + 10444: 72, + 10445: 50.25, + 10446: 77, + 10447: 62.49999999999999, + 10448: 61.75, + 10449: 43.25, + 1045: 83.5, + 10450: 43.5, + 10451: 61.24999999999999, + 10452: 42.75, + 10453: 48, + 10454: 64.5, + 10455: 41.25, + 10456: 20.5, + 10457: 14.937999999999999, + 10458: 20.125, + 10459: 158, + 1046: 74.5, + 10460: 44.75, + 10461: 70.5, + 10462: 70.5, + 10463: 36.25, + 10464: 52.75, + 10465: 42.75, + 10466: 76, + 10467: 75, + 10468: 31.25, + 10469: 67.5, + 1047: 28.125, + 10470: 78, + 10471: 42.75, + 10472: 50.00000000000001, + 10473: 34.5, + 10474: 83.5, + 10475: 66, + 10476: 51.5, + 10477: 44, + 10478: 75.5, + 10479: 37.25, + 1048: 73, + 10480: 43.75, + 10481: 46.75, + 10482: 27.375, + 10483: 66.5, + 10484: 62.75, + 10485: 63.5, + 10486: 85, + 10487: 37.5, + 10488: 71.5, + 10489: 70.5, + 1049: 65, + 10490: 21.5, + 10491: 33.25, + 10492: 73, + 10493: 36.5, + 10494: 75.00000000000001, + 10495: 131, + 10496: 52, + 10497: 40.75, + 10498: 93, + 10499: 54.25, + 105: 62.25, + 1050: 75, + 10500: 45, + 10501: 39.25, + 10502: 64, + 10503: 40.75, + 10504: 32.25, + 10505: 14.438, + 10506: 40.75, + 10507: 113.5, + 10508: 21.875, + 10509: 85.5, + 1051: 55.25, + 10510: 95, + 10511: 42.5, + 10512: 65, + 10513: 49.75, + 10514: 58.5, + 10515: 32.5, + 10516: 51, + 10517: 111, + 10518: 70.5, + 10519: 35.5, + 1052: 59, + 10520: 102.5, + 10521: 26.875, + 10522: 63.75, + 10523: 18.25, + 10524: 82.5, + 10525: 45.5, + 10526: 46.5, + 10527: 54, + 10528: 49.5, + 10529: 51.25, + 1053: 34, + 10530: 67.5, + 10531: 77, + 10532: 43.75, + 10533: 73.5, + 10534: 60.75, + 10535: 32, + 10536: 45.5, + 10537: 41.75, + 10538: 21.5, + 10539: 77, + 1054: 75.5, + 10540: 78.5, + 10541: 62.5, + 10542: 68.5, + 10543: 34, + 10544: 35.25, + 10545: 61.25, + 10546: 81.5, + 10547: 41.24999999999999, + 10548: 66, + 10549: 56.75, + 1055: 73, + 10550: 79.5, + 10551: 77, + 10552: 51.5, + 10553: 37.75, + 10554: 76, + 10555: 41, + 10556: 72, + 10557: 67, + 10558: 43.5, + 10559: 75.5, + 1056: 79.5, + 10560: 56.75, + 10561: 68.5, + 10562: 44.75, + 10563: 66.5, + 10564: 70.5, + 10565: 40, + 10566: 90, + 10567: 54, + 10568: 40.75, + 10569: 61, + 1057: 34, + 10570: 52.25, + 10571: 30.875, + 10572: 40.25, + 10573: 66.5, + 10574: 39.75, + 10575: 78, + 10576: 75, + 10577: 109.5, + 10578: 49, + 10579: 0, + 1058: 73.5, + 10580: 72, + 10581: 67.5, + 10582: 28.999999999999996, + 10583: 60.25, + 10584: 101, + 10585: 116.5, + 10586: 40, + 10587: 86, + 10588: 45.5, + 10589: 51.25, + 1059: 47.25, + 10590: 55, + 10591: 63.5, + 10592: 51.25, + 10593: 50, + 10594: 58.5, + 10595: 62.25, + 10596: 46.25, + 10597: 57, + 10598: 42.25, + 10599: 30, + 106: 58.24999999999999, + 1060: 86.5, + 10600: 83, + 10601: 86, + 10602: 19.375000000000004, + 10603: 68, + 10604: 60, + 10605: 51.25, + 10606: 36.5, + 10607: 77.5, + 10608: 13.875, + 10609: 58.75, + 1061: 42.75, + 10610: 72, + 10611: 24.75, + 10612: 44.75, + 10613: 64, + 10614: 70, + 10615: 62.25, + 10616: 109.5, + 10617: 76, + 10618: 46, + 10619: 57.5, + 1062: 61.5, + 10620: 25.125, + 10621: 40.5, + 10622: 53.00000000000001, + 10623: 28.75, + 10624: 73.5, + 10625: 38.75, + 10626: 65.5, + 10627: 51, + 10628: 51.25, + 10629: 63.25, + 1063: 45.5, + 10630: 61, + 10631: 61.00000000000001, + 10632: 60, + 10633: 44.75, + 10634: 41.75, + 10635: 66, + 10636: 91.5, + 10637: 61.5, + 10638: 49.25, + 10639: 48.75, + 1064: 0, + 10640: 47.75, + 10641: 77, + 10642: 117.5, + 10643: 88.5, + 10644: 16.625, + 10645: 79, + 10646: 15.438, + 10647: 60.75, + 10648: 28.5, + 10649: 69, + 1065: 48, + 10650: 39.25, + 10651: 60.75, + 10652: 57, + 10653: 90.5, + 10654: 51.49999999999999, + 10655: 70.5, + 10656: 77, + 10657: 108.5, + 10658: 78.5, + 10659: 15.25, + 1066: 70, + 10660: 16.125, + 10661: 35.5, + 10662: 67.5, + 10663: 38.25, + 10664: 45.5, + 10665: 58, + 10666: 89, + 10667: 59, + 10668: 84.00000000000001, + 10669: 43.25, + 1067: 33.75, + 10670: 33.5, + 10671: 33.25, + 10672: 66.5, + 10673: 10.25, + 10674: 44, + 10675: 75, + 10676: 76.5, + 10677: 41.99999999999999, + 10678: 84.5, + 10679: 34.25, + 1068: 32.75, + 10680: 64, + 10681: 64, + 10682: 35.5, + 10683: 48.5, + 10684: 71, + 10685: 58, + 10686: 49.75, + 10687: 69, + 10688: 45.5, + 10689: 61.5, + 1069: 57, + 10690: 78, + 10691: 37, + 10692: 51.5, + 10693: 48.5, + 10694: 61, + 10695: 92, + 10696: 61, + 10697: 47.25, + 10698: 31.875, + 10699: 46, + 107: 51.5, + 1070: 45, + 10700: 57.5, + 10701: 42, + 10702: 99.5, + 10703: 30.125, + 10704: 47.75, + 10705: 64.5, + 10706: 41, + 10707: 42.25, + 10708: 54.25, + 10709: 72, + 1071: 68, + 10710: 45.75, + 10711: 61.25, + 10712: 58.25, + 10713: 93, + 10714: 39.25, + 10715: 77.5, + 10716: 56, + 10717: 19.875, + 10718: 40, + 10719: 59, + 1072: 39.5, + 10720: 56, + 10721: 86, + 10722: 52.5, + 10723: 52.75, + 10724: 64.49999999999999, + 10725: 61.75, + 10726: 57.75, + 10727: 62, + 10728: 39.5, + 10729: 10.062, + 1073: 63.25, + 10730: 63, + 10731: 28.875, + 10732: 14.875, + 10733: 77, + 10734: 38.5, + 10735: 17.875, + 10736: 57.25, + 10737: 46, + 10738: 18.75, + 10739: 28, + 1074: 83, + 10740: 63, + 10741: 59, + 10742: 13.625, + 10743: 66, + 10744: 72, + 10745: 60.75, + 10746: 48.5, + 10747: 73, + 10748: 150, + 10749: 40, + 1075: 64.5, + 10750: 63.5, + 10751: 36, + 10752: 72, + 10753: 40.5, + 10754: 67.5, + 10755: 39.25, + 10756: 75, + 10757: 47.5, + 10758: 71.5, + 10759: 46, + 1076: 75, + 10760: 64, + 10761: 48.25, + 10762: 52.75, + 10763: 81, + 10764: 104.5, + 10765: 42.75, + 10766: 78.5, + 10767: 66.5, + 10768: 28.375, + 10769: 51.25, + 1077: 12.562, + 10770: 37.25, + 10771: 35.5, + 10772: 76.5, + 10773: 59, + 10774: 34.25, + 10775: 115, + 10776: 61.5, + 10777: 51.75, + 10778: 14.875, + 10779: 63.49999999999999, + 1078: 68, + 10780: 136, + 10781: 82, + 10782: 46.75, + 10783: 51.5, + 10784: 73.5, + 10785: 40, + 10786: 124.5, + 10787: 46.75, + 10788: 73, + 10789: 56, + 1079: 91.5, + 10790: 53.25, + 10791: 33.75, + 10792: 2.969, + 10793: 42.75, + 10794: 57.5, + 10795: 30.625, + 10796: 42.5, + 10797: 49.5, + 10798: 96, + 10799: 41.25, + 108: 42.5, + 1080: 35.5, + 10800: 40.5, + 10801: 28.25, + 10802: 55.5, + 10803: 17.5, + 10804: 44.5, + 10805: 22.625, + 10806: 70, + 10807: 77, + 10808: 71, + 10809: 76, + 1081: 53, + 10810: 70, + 10811: 21.5, + 10812: 52, + 10813: 40.5, + 10814: 73.5, + 10815: 70, + 10816: 62.74999999999999, + 10817: 36.75, + 10818: 70, + 10819: 72.5, + 1082: 15.25, + 10820: 34, + 10821: 42.75, + 10822: 78.5, + 10823: 43.00000000000001, + 10824: 69.5, + 10825: 83.5, + 10826: 55.25, + 10827: 36.5, + 10828: 0, + 10829: 17.75, + 1083: 31, + 10830: 75, + 10831: 117, + 10832: 33.25, + 10833: 77, + 10834: 61.25, + 10835: 59.75, + 10836: 26.125, + 10837: 68, + 10838: 26.125, + 10839: 41.75, + 1084: 69, + 10840: 53.5, + 10841: 70, + 10842: 76, + 10843: 64.5, + 10844: 89.5, + 10845: 39.25, + 10846: 60.00000000000001, + 10847: 46.75, + 10848: 68.5, + 10849: 62.5, + 1085: 69, + 10850: 65, + 10851: 74, + 10852: 51.25000000000001, + 10853: 48.5, + 10854: 51, + 10855: 31.25, + 10856: 69.5, + 10857: 78.5, + 10858: 28.625, + 10859: 60.25, + 1086: 77, + 10860: 40.25, + 10861: 88, + 10862: 63.75, + 10863: 47.5, + 10864: 38.25, + 10865: 66.5, + 10866: 61.25, + 10867: 52.5, + 10868: 66.5, + 10869: 86, + 1087: 67.5, + 10870: 64, + 10871: 63, + 10872: 39.75, + 10873: 67, + 10874: 79.5, + 10875: 54, + 10876: 116.5, + 10877: 66, + 10878: 94, + 10879: 19.375, + 1088: 26.999999999999996, + 10880: 30.75, + 10881: 44, + 10882: 56.75, + 10883: 45.25, + 10884: 49.25, + 10885: 46.75, + 10886: 48.5, + 10887: 37.75000000000001, + 10888: 52.25, + 10889: 35, + 1089: 87.00000000000001, + 10890: 33.25, + 10891: 43, + 10892: 76, + 10893: 68.5, + 10894: 32.25, + 10895: 21.125, + 10896: 53, + 10897: 75.5, + 10898: 60.75, + 10899: 71.5, + 109: 57.5, + 1090: 73, + 10900: 67.5, + 10901: 18.75, + 10902: 45.25, + 10903: 23.625, + 10904: 38, + 10905: 53.5, + 10906: 52.5, + 10907: 57.25, + 10908: 42, + 10909: 68.5, + 1091: 64.5, + 10910: 71, + 10911: 28.875000000000004, + 10912: 57, + 10913: 62.25, + 10914: 40, + 10915: 35.75, + 10916: 39.5, + 10917: 83, + 10918: 61.25, + 10919: 32, + 1092: 26.874999999999996, + 10920: 58.50000000000001, + 10921: 32, + 10922: 55, + 10923: 76, + 10924: 67.5, + 10925: 46.25, + 10926: 53.5, + 10927: 55.75, + 10928: 58.75, + 10929: 64, + 1093: 26.25, + 10930: 76.5, + 10931: 30.75, + 10932: 50.5, + 10933: 80, + 10934: 41.75, + 10935: 22.5, + 10936: 65.5, + 10937: 40, + 10938: 55.75, + 10939: 44.75, + 1094: 48.5, + 10940: 41.25, + 10941: 52, + 10942: 32.75, + 10943: 63, + 10944: 50.50000000000001, + 10945: 71, + 10946: 43.75, + 10947: 29.875, + 10948: 12.688, + 10949: 71.5, + 1095: 57.25, + 10950: 33.5, + 10951: 44.25, + 10952: 80, + 10953: 44.50000000000001, + 10954: 52.5, + 10955: 38.25, + 10956: 53, + 10957: 66.5, + 10958: 28.499999999999996, + 10959: 84.5, + 1096: 100, + 10960: 54.5, + 10961: 90.5, + 10962: 12.312, + 10963: 46.25, + 10964: 49.5, + 10965: 138, + 10966: 41.25, + 10967: 55, + 10968: 37.25, + 10969: 32.25, + 1097: 63.5, + 10970: 55, + 10971: 33, + 10972: 55.75, + 10973: 57.75, + 10974: 49.25, + 10975: 57.25, + 10976: 33.75, + 10977: 42.25, + 10978: 45.75, + 10979: 26.375, + 1098: 37.75, + 10980: 17.5, + 10981: 81, + 10982: 42.5, + 10983: 40.75, + 10984: 35.75, + 10985: 110.99999999999999, + 10986: 20, + 10987: 32.25, + 10988: 42.5, + 10989: 49.25, + 1099: 41.75, + 10990: 74.5, + 10991: 43.75, + 10992: 77.5, + 10993: 31.625, + 10994: 52, + 10995: 106, + 10996: 38.99999999999999, + 10997: 47, + 10998: 115.5, + 10999: 31.375, + 11: 72, + 110: 32.75, + 1100: 17.375, + 11000: 49, + 11001: 52.75, + 11002: 46.75, + 11003: 82, + 11004: 41.75, + 11005: 51, + 11006: 75.5, + 11007: 45.25, + 11008: 16.25, + 11009: 41.75, + 1101: 31.625, + 11010: 55.75, + 11011: 40, + 11012: 67.5, + 11013: 55, + 11014: 33.25, + 11015: 50.75, + 11016: 66, + 11017: 101.00000000000001, + 11018: 92, + 11019: 66.5, + 1102: 112, + 11020: 52.75, + 11021: 68, + 11022: 60, + 11023: 56, + 11024: 34.75, + 11025: 41, + 11026: 45.5, + 11027: 27, + 11028: 90, + 11029: 32.75, + 1103: 44, + 11030: 50.75, + 11031: 48.75, + 11032: 46.99999999999999, + 11033: 123, + 11034: 94.49999999999999, + 11035: 41.5, + 11036: 37.25, + 11037: 77.5, + 11038: 77, + 11039: 26.25, + 1104: 34.5, + 11040: 67, + 11041: 58, + 11042: 64.5, + 11043: 57.75, + 11044: 29.749999999999996, + 11045: 44.75, + 11046: 37, + 11047: 56.25, + 11048: 39.75, + 11049: 20.375, + 1105: 16.125, + 11050: 29, + 11051: 57, + 11052: 61.00000000000001, + 11053: 69, + 11054: 74.5, + 11055: 26.125, + 11056: 60.25, + 11057: 44, + 11058: 50, + 11059: 44.99999999999999, + 1106: 19.5, + 11060: 73, + 11061: 44.25, + 11062: 49, + 11063: 49.5, + 11064: 58.75000000000001, + 11065: 75, + 11066: 30.125, + 11067: 52, + 11068: 34.25, + 11069: 71.5, + 1107: 48.75, + 11070: 32.5, + 11071: 36.25, + 11072: 77.99999999999999, + 11073: 51.75, + 11074: 43.5, + 11075: 51, + 11076: 42.5, + 11077: 108, + 11078: 81, + 11079: 56.5, + 1108: 77, + 11080: 92.99999999999999, + 11081: 24, + 11082: 48.25, + 11083: 63.75, + 11084: 37.5, + 11085: 63.25, + 11086: 42, + 11087: 39, + 11088: 67.5, + 11089: 48, + 1109: 152, + 11090: 39.5, + 11091: 58.5, + 11092: 67, + 11093: 27.750000000000004, + 11094: 40.25, + 11095: 70, + 11096: 52.75, + 11097: 16.25, + 11098: 46.5, + 11099: 49, + 111: 21.25, + 1110: 45.5, + 11100: 64.5, + 11101: 42.75, + 11102: 55.25, + 11103: 82, + 11104: 53.5, + 11105: 39.25, + 11106: 75, + 11107: 68.5, + 11108: 57.75, + 11109: 11.125, + 1111: 67, + 11110: 76, + 11111: 18.25, + 11112: 55.25, + 11113: 66, + 11114: 46.25, + 11115: 55.5, + 11116: 79.49999999999999, + 11117: 53.5, + 11118: 62.5, + 11119: 72, + 1112: 58.75, + 11120: 42.75, + 11121: 63.25, + 11122: 78, + 11123: 49, + 11124: 33.75, + 11125: 19.75, + 11126: 49.25, + 11127: 16.5, + 11128: 70, + 11129: 34.25, + 1113: 54.25, + 11130: 60, + 11131: 66, + 11132: 70.5, + 11133: 56, + 11134: 41.5, + 11135: 44.25, + 11136: 66, + 11137: 43, + 11138: 52, + 11139: 58, + 1114: 46.25000000000001, + 11140: 57.25, + 11141: 31.125, + 11142: 55.25, + 11143: 89.5, + 11144: 98, + 11145: 15.625, + 11146: 66, + 11147: 24.125, + 11148: 64.5, + 11149: 42.5, + 1115: 50, + 11150: 27.375, + 11151: 73.5, + 11152: 58, + 11153: 28.875, + 11154: 38, + 11155: 48.5, + 11156: 41.25, + 11157: 56.99999999999999, + 11158: 70, + 11159: 65.5, + 1116: 69.5, + 11160: 63.75, + 11161: 67.5, + 11162: 30.250000000000004, + 11163: 14.687999999999999, + 11164: 34.5, + 11165: 47, + 11166: 68.5, + 11167: 145, + 11168: 72, + 11169: 57.25, + 1117: 70, + 11170: 51.5, + 11171: 46.75, + 11172: 58, + 11173: 28.000000000000004, + 11174: 52, + 11175: 70, + 11176: 50, + 11177: 46.75, + 11178: 15.938000000000002, + 11179: 54.50000000000001, + 1118: 42.75, + 11180: 63, + 11181: 65.5, + 11182: 48.25, + 11183: 74.5, + 11184: 78.5, + 11185: 92.49999999999999, + 11186: 28.625, + 11187: 28.499999999999996, + 11188: 59, + 11189: 78, + 1119: 52.75, + 11190: 46.25, + 11191: 42.75, + 11192: 104, + 11193: 48.75, + 11194: 73.5, + 11195: 78, + 11196: 55.75, + 11197: 61, + 11198: 66.5, + 11199: 56.75, + 112: 65, + 1120: 67, + 11200: 78.5, + 11201: 60.5, + 11202: 46.25, + 11203: 61, + 11204: 18.5, + 11205: 64, + 11206: 23.25, + 11207: 42.75, + 11208: 83.5, + 11209: 51, + 1121: 47, + 11210: 34.5, + 11211: 97.5, + 11212: 117.5, + 11213: 67, + 11214: 53.5, + 11215: 72.5, + 11216: 53, + 11217: 58.75, + 11218: 38.5, + 11219: 67.5, + 1122: 31.25, + 11220: 34, + 11221: 54, + 11222: 28.625, + 11223: 38.75, + 11224: 52.75, + 11225: 30.875, + 11226: 33.25, + 11227: 7.469, + 11228: 37, + 11229: 17.5, + 1123: 30, + 11230: 42.25, + 11231: 68, + 11232: 33.25, + 11233: 45.75, + 11234: 39.5, + 11235: 49.5, + 11236: 47.25, + 11237: 34.25, + 11238: 75.5, + 11239: 54.5, + 1124: 35.25, + 11240: 71, + 11241: 51, + 11242: 63.75, + 11243: 36.5, + 11244: 61.25, + 11245: 128, + 11246: 45, + 11247: 101.5, + 11248: 49.5, + 11249: 62, + 1125: 40.25, + 11250: 51.75, + 11251: 72, + 11252: 46, + 11253: 62, + 11254: 40, + 11255: 39.25, + 11256: 79.5, + 11257: 50, + 11258: 50, + 11259: 56, + 1126: 44, + 11260: 66, + 11261: 59.49999999999999, + 11262: 30, + 11263: 75, + 11264: 36.25, + 11265: 37.75, + 11266: 67.5, + 11267: 60.75, + 11268: 68, + 11269: 44.5, + 1127: 149, + 11270: 40, + 11271: 59.49999999999999, + 11272: 25, + 11273: 57.25, + 11274: 54.25, + 11275: 21.375, + 11276: 24.75, + 11277: 66, + 11278: 58.00000000000001, + 11279: 55.75, + 1128: 59, + 11280: 78, + 11281: 68.5, + 11282: 77.5, + 11283: 64.5, + 11284: 54.5, + 11285: 41.25, + 11286: 80.5, + 11287: 27.375, + 11288: 48.25, + 11289: 42.5, + 1129: 56, + 11290: 58.25, + 11291: 36.25, + 11292: 82.5, + 11293: 42.5, + 11294: 29.375000000000004, + 11295: 47.25, + 11296: 49.75, + 11297: 53.25, + 11298: 42, + 11299: 75.5, + 113: 54.50000000000001, + 1130: 38.25, + 11300: 12.5, + 11301: 36.75, + 11302: 72, + 11303: 58.74999999999999, + 11304: 75.5, + 11305: 50, + 11306: 54.25, + 11307: 49.75, + 11308: 42.5, + 11309: 64.5, + 1131: 91, + 11310: 34.25, + 11311: 55.5, + 11312: 52.75, + 11313: 22.875, + 11314: 55, + 11315: 72, + 11316: 36.5, + 11317: 93.5, + 11318: 53.5, + 11319: 58, + 1132: 42.25000000000001, + 11320: 36.5, + 11321: 24.5, + 11322: 48.75, + 11323: 53.5, + 11324: 33.25, + 11325: 27, + 11326: 34.75, + 11327: 52.75, + 11328: 42, + 11329: 67, + 1133: 65.5, + 11330: 118.5, + 11331: 42, + 11332: 50.5, + 11333: 55.5, + 11334: 43.74999999999999, + 11335: 30.625, + 11336: 12.75, + 11337: 42.5, + 11338: 18.875, + 11339: 90.5, + 1134: 42.25, + 11340: 16.625, + 11341: 45.74999999999999, + 11342: 48.25, + 11343: 46.5, + 11344: 30.875, + 11345: 40.75, + 11346: 29.25, + 11347: 56.74999999999999, + 11348: 73.5, + 11349: 35.25, + 1135: 40.25, + 11350: 80.5, + 11351: 75.5, + 11352: 59, + 11353: 68, + 11354: 46, + 11355: 60, + 11356: 49, + 11357: 37.50000000000001, + 11358: 74.5, + 11359: 71, + 1136: 79.5, + 11360: 68, + 11361: 24, + 11362: 39.5, + 11363: 41, + 11364: 53.5, + 11365: 64.5, + 11366: 55.25, + 11367: 65.5, + 11368: 49, + 11369: 70, + 1137: 70, + 11370: 57.5, + 11371: 39, + 11372: 68.5, + 11373: 69, + 11374: 68, + 11375: 57.75, + 11376: 52.75, + 11377: 31.875, + 11378: 53.5, + 11379: 58.25, + 1138: 37.5, + 11380: 40.5, + 11381: 40.75, + 11382: 11.688, + 11383: 73.5, + 11384: 12.5, + 11385: 129, + 11386: 72.5, + 11387: 40, + 11388: 35.5, + 11389: 56.25, + 1139: 0, + 11390: 134, + 11391: 96.99999999999999, + 11392: 52, + 11393: 24.25, + 11394: 9.562, + 11395: 54.25, + 11396: 53.5, + 11397: 25.75, + 11398: 22.75, + 11399: 74, + 114: 83.50000000000001, + 1140: 0, + 11400: 59, + 11401: 79.5, + 11402: 62, + 11403: 38.75, + 11404: 77, + 11405: 52.75, + 11406: 37.25, + 11407: 58, + 11408: 21.875, + 11409: 21.375, + 1141: 41.5, + 11410: 49.25, + 11411: 42.75, + 11412: 49.25, + 11413: 18.875, + 11414: 32.25, + 11415: 71.5, + 11416: 45.25, + 11417: 44.25, + 11418: 45, + 11419: 86.50000000000001, + 1142: 13.688, + 11420: 56, + 11421: 41.75, + 11422: 67, + 11423: 51, + 11424: 49, + 11425: 50, + 11426: 72.5, + 11427: 40, + 11428: 38.25, + 11429: 14.625000000000002, + 1143: 51.75, + 11430: 110, + 11431: 42.75, + 11432: 73, + 11433: 51, + 11434: 144, + 11435: 49.25, + 11436: 23.875, + 11437: 37.5, + 11438: 53.75, + 11439: 39, + 1144: 63.5, + 11440: 48, + 11441: 20.125, + 11442: 50, + 11443: 58, + 11444: 85.5, + 11445: 39.5, + 11446: 25.250000000000004, + 11447: 69, + 11448: 32.5, + 11449: 151, + 1145: 62.75, + 11450: 52.75, + 11451: 31.750000000000004, + 11452: 18, + 11453: 63.5, + 11454: 55.25000000000001, + 11455: 63.75, + 11456: 43, + 11457: 81.5, + 11458: 58.25, + 11459: 40.25, + 1146: 41, + 11460: 60.5, + 11461: 56, + 11462: 42.25, + 11463: 50, + 11464: 46.74999999999999, + 11465: 64.5, + 11466: 55.25, + 11467: 76.5, + 11468: 51.25, + 11469: 52, + 1147: 62.25, + 11470: 85.5, + 11471: 70, + 11472: 84.5, + 11473: 26.75, + 11474: 63.25, + 11475: 32.5, + 11476: 42, + 11477: 58.25, + 11478: 50.25, + 11479: 68, + 1148: 12.875, + 11480: 31.375, + 11481: 53.25, + 11482: 69, + 11483: 47.5, + 11484: 86, + 11485: 59.99999999999999, + 11486: 45.75, + 11487: 38.5, + 11488: 52.75, + 11489: 81.5, + 1149: 82.5, + 11490: 62.75, + 11491: 76.5, + 11492: 127.5, + 11493: 41.5, + 11494: 67.5, + 11495: 47.75, + 11496: 49.75, + 11497: 60, + 11498: 59.24999999999999, + 11499: 41.5, + 115: 7.719, + 1150: 111.49999999999999, + 11500: 45.75, + 11501: 21.5, + 11502: 59.5, + 11503: 63.5, + 11504: 84, + 11505: 51.74999999999999, + 11506: 92, + 11507: 72, + 11508: 61.25, + 11509: 62.25, + 1151: 95, + 11510: 109, + 11511: 23.875, + 11512: 39.75, + 11513: 37.25, + 11514: 14.125, + 11515: 73.5, + 11516: 80.50000000000001, + 11517: 0, + 11518: 56.5, + 11519: 66.5, + 1152: 72.5, + 11520: 64.5, + 11521: 26.25, + 11522: 54.25000000000001, + 11523: 83.99999999999999, + 11524: 47.5, + 11525: 40, + 11526: 59.25, + 11527: 40.5, + 11528: 39, + 11529: 54.25, + 1153: 31.625, + 11530: 39.25, + 11531: 74, + 11532: 35.25, + 11533: 47.74999999999999, + 11534: 40.5, + 11535: 43.25, + 11536: 65, + 11537: 71.5, + 11538: 42.5, + 11539: 27, + 1154: 65.5, + 11540: 61.5, + 11541: 31.625, + 11542: 66, + 11543: 74, + 11544: 32.5, + 11545: 50, + 11546: 35.5, + 11547: 85.5, + 11548: 77.5, + 11549: 48.75000000000001, + 1155: 61, + 11550: 51.25, + 11551: 25.125, + 11552: 38.25, + 11553: 14.937999999999999, + 11554: 44.75, + 11555: 81.5, + 11556: 70, + 11557: 68, + 11558: 25.625, + 11559: 66, + 1156: 54, + 11560: 38.5, + 11561: 31.625, + 11562: 56, + 11563: 75.00000000000001, + 11564: 51.25, + 11565: 0, + 11566: 80, + 11567: 42.25, + 11568: 30, + 11569: 71.5, + 1157: 53, + 11570: 0, + 11571: 56.25, + 11572: 114, + 11573: 63.25, + 11574: 31.25, + 11575: 45.75, + 11576: 47.25, + 11577: 74.5, + 11578: 63.25, + 11579: 66.5, + 1158: 45, + 11580: 56.25, + 11581: 14.5, + 11582: 37.75, + 11583: 45, + 11584: 45.5, + 11585: 49.5, + 11586: 51.5, + 11587: 42.75, + 11588: 46.74999999999999, + 11589: 53, + 1159: 56.5, + 11590: 40, + 11591: 39.75, + 11592: 45, + 11593: 52.5, + 11594: 55.75, + 11595: 70, + 11596: 60.75, + 11597: 45.5, + 11598: 37.75, + 11599: 104, + 116: 69.5, + 1160: 75.5, + 11600: 66, + 11601: 57.25, + 11602: 66.49999999999999, + 11603: 38, + 11604: 77.5, + 11605: 40.25, + 11606: 75.5, + 11607: 32.5, + 11608: 51.25, + 11609: 36.75, + 1161: 50.5, + 11610: 53, + 11611: 78, + 11612: 68, + 11613: 24.875, + 11614: 10.688, + 11615: 38.75, + 11616: 59.5, + 11617: 50.5, + 11618: 57, + 11619: 50.75, + 1162: 32.5, + 11620: 41.24999999999999, + 11621: 31.75, + 11622: 30.375, + 11623: 72.5, + 11624: 47.25, + 11625: 51.75, + 11626: 54, + 11627: 39.25, + 11628: 31.125, + 11629: 41.25, + 1163: 53.25, + 11630: 48.50000000000001, + 11631: 64.5, + 11632: 39, + 11633: 67.5, + 11634: 79, + 11635: 70, + 11636: 92, + 11637: 79.5, + 11638: 53.5, + 11639: 59.25, + 1164: 23.375, + 11640: 39.75, + 11641: 39.25, + 11642: 55, + 11643: 26.625, + 11644: 61.75000000000001, + 11645: 14.188, + 11646: 65, + 11647: 81, + 11648: 97, + 11649: 60, + 1165: 54.75, + 11650: 65, + 11651: 79.5, + 11652: 71, + 11653: 58.25, + 11654: 66, + 11655: 71.5, + 11656: 67.5, + 11657: 72, + 11658: 72.5, + 11659: 65, + 1166: 58.99999999999999, + 11660: 25.75, + 11661: 35, + 11662: 21.75, + 11663: 49.25, + 11664: 49.25, + 11665: 65, + 11666: 81.5, + 11667: 73, + 11668: 41.25, + 11669: 44, + 1167: 49.25, + 11670: 61, + 11671: 47.5, + 11672: 39, + 11673: 88, + 11674: 41.25, + 11675: 68, + 11676: 31.5, + 11677: 30.5, + 11678: 70, + 11679: 73, + 1168: 55, + 11680: 54, + 11681: 48.25, + 11682: 124.5, + 11683: 48.75, + 11684: 45.25000000000001, + 11685: 71.5, + 11686: 104.5, + 11687: 58.49999999999999, + 11688: 48.5, + 11689: 58.5, + 1169: 54.5, + 11690: 44, + 11691: 79.5, + 11692: 45, + 11693: 29, + 11694: 67.5, + 11695: 9.5, + 11696: 52.25, + 11697: 59, + 11698: 57.25, + 11699: 48, + 117: 19.5, + 1170: 46, + 11700: 19.375, + 11701: 60.25, + 11702: 62.75000000000001, + 11703: 41, + 11704: 40, + 11705: 11.438, + 11706: 74, + 11707: 59.5, + 11708: 77.5, + 11709: 58.75, + 1171: 39.75, + 11710: 75.5, + 11711: 55.5, + 11712: 54.5, + 11713: 8.75, + 11714: 47.75, + 11715: 81, + 11716: 30.25, + 11717: 68, + 11718: 58.75, + 11719: 40.25, + 1172: 77.5, + 11720: 45.75, + 11721: 29.875, + 11722: 79.5, + 11723: 61.49999999999999, + 11724: 49.75, + 11725: 53.75, + 11726: 13.312, + 11727: 53.25, + 11728: 62.00000000000001, + 11729: 34.75, + 1173: 44.25, + 11730: 53.25, + 11731: 28.25, + 11732: 40.5, + 11733: 96, + 11734: 51, + 11735: 67, + 11736: 42.5, + 11737: 42, + 11738: 43.25, + 11739: 63.75, + 1174: 55.75, + 11740: 63, + 11741: 76, + 11742: 71.5, + 11743: 53.75, + 11744: 38.75, + 11745: 43.75, + 11746: 45, + 11747: 84, + 11748: 71, + 11749: 64.5, + 1175: 68, + 11750: 56.75, + 11751: 72, + 11752: 18.625, + 11753: 14.25, + 11754: 44, + 11755: 107.49999999999999, + 11756: 52.25, + 11757: 62.25000000000001, + 11758: 94, + 11759: 33.5, + 1176: 63, + 11760: 60.25, + 11761: 15.375, + 11762: 40.75, + 11763: 19, + 11764: 66.5, + 11765: 57.5, + 11766: 41, + 11767: 54.5, + 11768: 41, + 11769: 37.5, + 1177: 42.25, + 11770: 54.25, + 11771: 57.49999999999999, + 11772: 46.25, + 11773: 81, + 11774: 60.5, + 11775: 31.125, + 11776: 74.5, + 11777: 43.00000000000001, + 11778: 147, + 11779: 72, + 1178: 21.375, + 11780: 67.5, + 11781: 33, + 11782: 73.5, + 11783: 59.25, + 11784: 53.5, + 11785: 59.25, + 11786: 66, + 11787: 52.75, + 11788: 48.75, + 11789: 56.5, + 1179: 38.25, + 11790: 55, + 11791: 49, + 11792: 30.625, + 11793: 57.25, + 11794: 42.5, + 11795: 55.25, + 11796: 69.5, + 11797: 44.75, + 11798: 58.5, + 11799: 59.5, + 118: 35.75, + 1180: 77.5, + 11800: 68, + 11801: 41.75, + 11802: 81.5, + 11803: 50.5, + 11804: 75.5, + 11805: 68.5, + 11806: 59.25, + 11807: 63, + 11808: 40.25, + 11809: 70, + 1181: 43.5, + 11810: 53.25, + 11811: 85.5, + 11812: 55.5, + 11813: 65, + 11814: 45, + 11815: 55.5, + 11816: 67, + 11817: 71, + 11818: 56.49999999999999, + 11819: 38.74999999999999, + 1182: 35.75, + 11820: 38.5, + 11821: 140, + 11822: 38.50000000000001, + 11823: 44.75, + 11824: 68, + 11825: 56.75, + 11826: 39, + 11827: 53.5, + 11828: 57.25, + 11829: 68, + 1183: 47, + 11830: 7.062, + 11831: 115.5, + 11832: 51, + 11833: 19.5, + 11834: 102, + 11835: 35, + 11836: 60.49999999999999, + 11837: 45.25, + 11838: 61.74999999999999, + 11839: 46.75000000000001, + 1184: 46.25, + 11840: 51.5, + 11841: 68, + 11842: 55.75, + 11843: 60, + 11844: 17.625, + 11845: 24.5, + 11846: 88.5, + 11847: 70, + 11848: 51.75, + 11849: 33.25, + 1185: 52.5, + 11850: 54.25, + 11851: 51, + 11852: 64, + 11853: 34.75, + 11854: 55.24999999999999, + 11855: 18.5, + 11856: 61.75, + 11857: 49.75, + 11858: 71, + 11859: 86, + 1186: 17.375, + 11860: 47.5, + 11861: 20.25, + 11862: 32.5, + 11863: 61, + 11864: 26.25, + 11865: 68, + 11866: 28.625000000000004, + 11867: 51, + 11868: 81.5, + 11869: 77, + 1187: 52, + 11870: 51.5, + 11871: 74.5, + 11872: 48.5, + 11873: 58, + 11874: 28.375, + 11875: 20.5, + 11876: 57.74999999999999, + 11877: 42.5, + 11878: 66.99999999999999, + 11879: 46.25, + 1188: 45.25000000000001, + 11880: 74, + 11881: 53, + 11882: 45.25, + 11883: 18.75, + 11884: 23.125, + 11885: 135, + 11886: 49.5, + 11887: 37.5, + 11888: 61.25, + 11889: 78, + 1189: 38.99999999999999, + 11890: 7.781, + 11891: 53.75, + 11892: 49.5, + 11893: 38.75, + 11894: 67.5, + 11895: 59, + 11896: 40.75, + 11897: 42.75, + 11898: 33, + 11899: 26.625, + 119: 55, + 1190: 63.75, + 11900: 127.5, + 11901: 66, + 11902: 36.75, + 11903: 39.75, + 11904: 45.5, + 11905: 84, + 11906: 52.25, + 11907: 50, + 11908: 68.5, + 11909: 52.5, + 1191: 93.5, + 11910: 33.75, + 11911: 84.5, + 11912: 64.5, + 11913: 46, + 11914: 96.5, + 11915: 73, + 11916: 74.5, + 11917: 14.562, + 11918: 64, + 11919: 54, + 1192: 47.75, + 11920: 97.99999999999999, + 11921: 32.25, + 11922: 56, + 11923: 35, + 11924: 44, + 11925: 40, + 11926: 78.5, + 11927: 68.5, + 11928: 75.5, + 11929: 68, + 1193: 36.25, + 11930: 40.25, + 11931: 108.5, + 11932: 67, + 11933: 43.75, + 11934: 59, + 11935: 44.25, + 11936: 72, + 11937: 40.25000000000001, + 11938: 76, + 11939: 76.5, + 1194: 46.25, + 11940: 72, + 11941: 35.25, + 11942: 58.5, + 11943: 54.25, + 11944: 44.75, + 11945: 50.24999999999999, + 11946: 83.5, + 11947: 81, + 11948: 80, + 11949: 58.75, + 1195: 38, + 11950: 50.5, + 11951: 49.5, + 11952: 52.25, + 11953: 40.5, + 11954: 71.5, + 11955: 47, + 11956: 67, + 11957: 77.5, + 11958: 37.75, + 11959: 22.375, + 1196: 52.25, + 11960: 40.25, + 11961: 59.75, + 11962: 49.25, + 11963: 34.5, + 11964: 54.25, + 11965: 71.5, + 11966: 58.25, + 11967: 74, + 11968: 42.99999999999999, + 11969: 34.5, + 1197: 51.25, + 11970: 24.875, + 11971: 45.75, + 11972: 70, + 11973: 43.75000000000001, + 11974: 65.5, + 11975: 68, + 11976: 54.5, + 11977: 60, + 11978: 31.75, + 11979: 47.75, + 1198: 50, + 11980: 50.25, + 11981: 71, + 11982: 55.75, + 11983: 55, + 11984: 68, + 11985: 36, + 11986: 44.5, + 11987: 67.5, + 11988: 41.5, + 11989: 69.5, + 1199: 65.5, + 11990: 130, + 11991: 34.5, + 11992: 14.25, + 11993: 40, + 11994: 71, + 11995: 41, + 11996: 65, + 11997: 76, + 11998: 38.75, + 11999: 54.75, + 12: 46.75, + 120: 50.50000000000001, + 1200: 43.5, + 12000: 64.5, + 12001: 58, + 12002: 32.25, + 12003: 55.25, + 12004: 57.75, + 12005: 50.5, + 12006: 26.25, + 12007: 56.25, + 12008: 24.625, + 12009: 50.75, + 1201: 57, + 12010: 34.25, + 12011: 40.75, + 12012: 51.25, + 12013: 11.438, + 12014: 42, + 12015: 62.5, + 12016: 31.625, + 12017: 128, + 12018: 66, + 12019: 64.5, + 1202: 66, + 12020: 66.5, + 12021: 33, + 12022: 36, + 12023: 52, + 12024: 70.5, + 12025: 92.5, + 12026: 15.688, + 12027: 114.5, + 12028: 74.5, + 12029: 36.25, + 1203: 43.25, + 12030: 87.5, + 12031: 56.75, + 12032: 63.00000000000001, + 12033: 68.5, + 12034: 71, + 12035: 38.5, + 12036: 61.75, + 12037: 28.75, + 12038: 47.25, + 12039: 78, + 1204: 47.5, + 12040: 56, + 12041: 59.99999999999999, + 12042: 72, + 12043: 63.75, + 12044: 95.5, + 12045: 52, + 12046: 38.75, + 12047: 90.5, + 12048: 45.25, + 12049: 81.5, + 1205: 95.5, + 12050: 31.25, + 12051: 54.25, + 12052: 62.25, + 12053: 56.5, + 12054: 101.5, + 12055: 44.5, + 12056: 76.5, + 12057: 52.25, + 12058: 70, + 12059: 25, + 1206: 124.5, + 12060: 66, + 12061: 54.75000000000001, + 12062: 48, + 12063: 55.75, + 12064: 27.875, + 12065: 61.5, + 12066: 29, + 12067: 59, + 12068: 44, + 12069: 10.438, + 1207: 23.75, + 12070: 65.5, + 12071: 68.5, + 12072: 41.75000000000001, + 12073: 82.5, + 12074: 31.375, + 12075: 51.75, + 12076: 0, + 12077: 8.312, + 12078: 19.625, + 12079: 96, + 1208: 27.125, + 12080: 62.5, + 12081: 59, + 12082: 79, + 12083: 60, + 12084: 63.5, + 12085: 59.5, + 12086: 35, + 12087: 17.75, + 12088: 49.25, + 12089: 46.25, + 1209: 54.75, + 12090: 57, + 12091: 37.5, + 12092: 22, + 12093: 48, + 12094: 55.75, + 12095: 28.125, + 12096: 34.75, + 12097: 43, + 12098: 52.25, + 12099: 59.75, + 121: 29.25, + 1210: 93.5, + 12100: 72.5, + 12101: 67.5, + 12102: 56.5, + 12103: 58, + 12104: 41.75, + 12105: 71, + 12106: 68, + 12107: 61.25, + 12108: 43.5, + 12109: 9.688, + 1211: 30.75, + 12110: 63.5, + 12111: 60.25000000000001, + 12112: 70, + 12113: 64.5, + 12114: 62.5, + 12115: 40.25, + 12116: 62.99999999999999, + 12117: 98, + 12118: 71.5, + 12119: 48.75, + 1212: 9.25, + 12120: 57.75, + 12121: 69, + 12122: 14.125, + 12123: 57.25, + 12124: 63, + 12125: 67, + 12126: 28.375, + 12127: 59.74999999999999, + 12128: 125, + 12129: 50.25, + 1213: 46.25, + 12130: 11.812, + 12131: 46.25, + 12132: 70, + 12133: 69, + 12134: 45.25, + 12135: 53.5, + 12136: 66, + 12137: 129, + 12138: 71, + 12139: 78, + 1214: 60.5, + 12140: 62, + 12141: 46, + 12142: 57.5, + 12143: 52, + 12144: 58.25, + 12145: 35.5, + 12146: 59.99999999999999, + 12147: 55.25000000000001, + 12148: 63, + 12149: 61, + 1215: 81, + 12150: 34.5, + 12151: 66.5, + 12152: 60, + 12153: 51.25, + 12154: 53, + 12155: 41.5, + 12156: 43, + 12157: 33, + 12158: 57.49999999999999, + 12159: 65, + 1216: 0, + 12160: 40, + 12161: 93.5, + 12162: 61.5, + 12163: 31.75, + 12164: 33, + 12165: 8.312, + 12166: 30.5, + 12167: 37.5, + 12168: 84.5, + 12169: 48.99999999999999, + 1217: 55.75000000000001, + 12170: 65.5, + 12171: 63.75, + 12172: 39.25, + 12173: 35.75, + 12174: 39, + 12175: 47.25, + 12176: 79.5, + 12177: 57.5, + 12178: 19.125, + 12179: 60.25, + 1218: 107, + 12180: 75, + 12181: 53, + 12182: 73.5, + 12183: 27.75, + 12184: 52.75, + 12185: 56.25, + 12186: 50, + 12187: 49, + 12188: 123, + 12189: 38.75, + 1219: 39.25, + 12190: 63.25, + 12191: 75.5, + 12192: 69, + 12193: 73, + 12194: 32.5, + 12195: 56.00000000000001, + 12196: 39.5, + 12197: 98.50000000000001, + 12198: 95.5, + 12199: 45.5, + 122: 19.75, + 1220: 63.25, + 12200: 19.5, + 12201: 66.5, + 12202: 47.25000000000001, + 12203: 47.5, + 12204: 37.25, + 12205: 87, + 12206: 68.5, + 12207: 71.5, + 12208: 62.5, + 12209: 32.25, + 1221: 44.25, + 12210: 75.5, + 12211: 26.25, + 12212: 79, + 12213: 51.5, + 12214: 59.5, + 12215: 61.75, + 12216: 46, + 12217: 56.5, + 12218: 28, + 12219: 48.25, + 1222: 41.5, + 12220: 56.25, + 12221: 57.75, + 12222: 36.75, + 12223: 52, + 12224: 107.50000000000001, + 12225: 59, + 12226: 47.75, + 12227: 13.812, + 12228: 62.25, + 12229: 49.5, + 1223: 75.5, + 12230: 69, + 12231: 76.5, + 12232: 19.625, + 12233: 41, + 12234: 49.75, + 12235: 40.25, + 12236: 23.375, + 12237: 37, + 12238: 23.25, + 12239: 74, + 1224: 69, + 12240: 70.5, + 12241: 76.5, + 12242: 82.5, + 12243: 51.5, + 12244: 43.5, + 12245: 85.5, + 12246: 63, + 12247: 27.125, + 12248: 81.5, + 12249: 67.5, + 1225: 45.25, + 12250: 67.5, + 12251: 49.25, + 12252: 44.5, + 12253: 64.5, + 12254: 53.5, + 12255: 26.500000000000004, + 12256: 49.5, + 12257: 53.5, + 12258: 52.75, + 12259: 47.25, + 1226: 46.25, + 12260: 51.25, + 12261: 72.5, + 12262: 54.75, + 12263: 69.5, + 12264: 44.5, + 12265: 39, + 12266: 78, + 12267: 31.375, + 12268: 83.5, + 12269: 42.75, + 1227: 11.5, + 12270: 56.25, + 12271: 73.5, + 12272: 13.688, + 12273: 24, + 12274: 58.24999999999999, + 12275: 70.5, + 12276: 60, + 12277: 93.50000000000001, + 12278: 67, + 12279: 74, + 1228: 64.5, + 12280: 55, + 12281: 63.75000000000001, + 12282: 54.75, + 12283: 59.5, + 12284: 48.5, + 12285: 0, + 12286: 55.5, + 12287: 59, + 12288: 60, + 12289: 36.25, + 1229: 35.75, + 12290: 35.5, + 12291: 114.5, + 12292: 65.5, + 12293: 43, + 12294: 53.75, + 12295: 96, + 12296: 48.5, + 12297: 74, + 12298: 80.5, + 12299: 71.5, + 123: 44.75, + 1230: 57.74999999999999, + 12300: 45, + 12301: 56.75, + 12302: 42.5, + 12303: 65.5, + 12304: 52.25, + 12305: 77, + 12306: 128, + 12307: 82.5, + 12308: 111, + 12309: 42.75, + 1231: 53.75, + 12310: 51.24999999999999, + 12311: 37.25, + 12312: 62.25, + 12313: 47.75, + 12314: 69, + 12315: 100, + 12316: 59.5, + 12317: 42, + 12318: 57, + 12319: 81.5, + 1232: 53, + 12320: 41.25, + 12321: 101.5, + 12322: 88.5, + 12323: 57.75, + 12324: 58, + 12325: 66, + 12326: 68.5, + 12327: 37.75, + 12328: 72.5, + 12329: 73.5, + 1233: 37.25, + 12330: 43, + 12331: 51, + 12332: 39, + 12333: 36, + 12334: 58.5, + 12335: 63.50000000000001, + 12336: 63.75, + 12337: 47, + 12338: 36, + 12339: 77, + 1234: 43, + 12340: 55.50000000000001, + 12341: 10.438, + 12342: 52, + 12343: 50.5, + 12344: 59, + 12345: 61.5, + 12346: 18.5, + 12347: 38.5, + 12348: 53.5, + 12349: 32.5, + 1235: 69, + 12350: 58.5, + 12351: 37.25, + 12352: 91.5, + 12353: 39.75, + 12354: 49.75, + 12355: 24, + 12356: 24.25, + 12357: 43, + 12358: 83, + 12359: 71.5, + 1236: 33.75, + 12360: 50.75, + 12361: 93, + 12362: 79.5, + 12363: 53, + 12364: 28.875, + 12365: 21.749999999999996, + 12366: 43.25, + 12367: 31.625, + 12368: 78, + 12369: 47.25, + 1237: 10.125, + 12370: 20.625, + 12371: 37, + 12372: 19.75, + 12373: 60.25, + 12374: 71.5, + 12375: 74, + 12376: 56.75, + 12377: 37.5, + 12378: 44.75, + 12379: 66.5, + 1238: 57.75, + 12380: 41.25, + 12381: 49, + 12382: 52.5, + 12383: 53, + 12384: 55, + 12385: 47, + 12386: 53.25, + 12387: 61, + 12388: 69.5, + 12389: 52, + 1239: 52, + 12390: 74, + 12391: 54.5, + 12392: 82, + 12393: 121.00000000000001, + 12394: 71, + 12395: 53.75, + 12396: 39.74999999999999, + 12397: 137, + 12398: 67, + 12399: 44.25, + 124: 22.375, + 1240: 54, + 12400: 56.25000000000001, + 12401: 26.625, + 12402: 47.5, + 12403: 71, + 12404: 98.5, + 12405: 28.625, + 12406: 29, + 12407: 56.25, + 12408: 9.438, + 12409: 66, + 1241: 59.25, + 12410: 30.375, + 12411: 44.5, + 12412: 58.25000000000001, + 12413: 79.5, + 12414: 51.5, + 12415: 22.375, + 12416: 70, + 12417: 126, + 12418: 69.5, + 12419: 66, + 1242: 62.25000000000001, + 12420: 64, + 12421: 56, + 12422: 44.25, + 12423: 76.5, + 12424: 7.375, + 12425: 80, + 12426: 44.24999999999999, + 12427: 27.625, + 12428: 123.5, + 12429: 48.75, + 1243: 69, + 12430: 70.5, + 12431: 36, + 12432: 66, + 12433: 63.25, + 12434: 17.125, + 12435: 65.5, + 12436: 54.25, + 12437: 58.25, + 12438: 85, + 12439: 64, + 1244: 16, + 12440: 56.74999999999999, + 12441: 24.25, + 12442: 41, + 12443: 30.625, + 12444: 151, + 12445: 59, + 12446: 92.99999999999999, + 12447: 63.25, + 12448: 64.5, + 12449: 68, + 1245: 48.5, + 12450: 45.75, + 12451: 64.5, + 12452: 42.25, + 12453: 66, + 12454: 72, + 12455: 73, + 12456: 29.125, + 12457: 67.5, + 12458: 108.99999999999999, + 12459: 45.25, + 1246: 76.5, + 12460: 134, + 12461: 24.5, + 12462: 57, + 12463: 58.5, + 12464: 55.75, + 12465: 67, + 12466: 55.5, + 12467: 36.75, + 12468: 65.5, + 12469: 54, + 1247: 48.75, + 12470: 45.75, + 12471: 71, + 12472: 26.25, + 12473: 50.75, + 12474: 27.125, + 12475: 66, + 12476: 44.5, + 12477: 56.25, + 12478: 41, + 12479: 55.75, + 1248: 59.75, + 12480: 10.438, + 12481: 91, + 12482: 49.5, + 12483: 49.25, + 12484: 34.5, + 12485: 22.125, + 12486: 57.25, + 12487: 69, + 12488: 77.5, + 12489: 36, + 1249: 21.5, + 12490: 63, + 12491: 23.875, + 12492: 26, + 12493: 84, + 12494: 55, + 12495: 43, + 12496: 70.5, + 12497: 65, + 12498: 32.25, + 12499: 52.5, + 125: 20.25, + 1250: 50, + 12500: 62.25, + 12501: 79.5, + 12502: 32.75, + 12503: 47, + 12504: 68.5, + 12505: 50.75, + 12506: 56.75, + 12507: 98.5, + 12508: 46.75, + 12509: 62.49999999999999, + 1251: 71.5, + 12510: 51.75, + 12511: 72.5, + 12512: 79, + 12513: 45.25, + 12514: 84, + 12515: 63.25, + 12516: 22, + 12517: 63.75, + 12518: 61.5, + 12519: 78.5, + 1252: 71, + 12520: 43, + 12521: 60, + 12522: 42.25, + 12523: 51.75, + 12524: 62, + 12525: 49.75, + 12526: 55, + 12527: 14.687999999999999, + 12528: 39.25, + 12529: 16.625, + 1253: 58.25, + 12530: 67.5, + 12531: 65.5, + 12532: 67.5, + 12533: 54, + 12534: 38.25, + 12535: 28.75, + 12536: 69, + 12537: 124.5, + 12538: 93.5, + 12539: 53.25, + 1254: 39, + 12540: 31.75, + 12541: 46.00000000000001, + 12542: 33.75, + 12543: 56.5, + 12544: 57.75, + 12545: 24.875, + 12546: 54.25, + 12547: 44.25000000000001, + 12548: 41.25, + 12549: 52.75, + 1255: 80.5, + 12550: 39.75, + 12551: 41, + 12552: 44.75, + 12553: 64, + 12554: 66.5, + 12555: 43.25, + 12556: 55.75, + 12557: 45.5, + 12558: 63.5, + 12559: 69, + 1256: 66, + 12560: 54.5, + 12561: 26.875, + 12562: 44.5, + 12563: 35.25, + 12564: 53.5, + 12565: 64.5, + 12566: 76, + 12567: 65.5, + 12568: 26.625, + 12569: 131, + 1257: 30, + 12570: 65.5, + 12571: 42.5, + 12572: 62.25000000000001, + 12573: 39, + 12574: 74, + 12575: 33.5, + 12576: 31.500000000000004, + 12577: 62, + 12578: 57, + 12579: 67, + 1258: 62.75, + 12580: 68, + 12581: 72.5, + 12582: 14.688, + 12583: 54.25, + 12584: 66, + 12585: 122, + 12586: 17.5, + 12587: 51, + 12588: 57.75, + 12589: 55.5, + 1259: 25.375, + 12590: 81, + 12591: 58, + 12592: 55.25, + 12593: 72, + 12594: 35.75, + 12595: 83, + 12596: 52, + 12597: 60.75, + 12598: 56.00000000000001, + 12599: 55.75, + 126: 99.5, + 1260: 25.25, + 12600: 56.00000000000001, + 12601: 26.75, + 12602: 141, + 12603: 81, + 12604: 49.25, + 12605: 124, + 12606: 40.5, + 12607: 79.5, + 12608: 57, + 12609: 59.5, + 1261: 91, + 12610: 72.5, + 12611: 66, + 12612: 26.625, + 12613: 64.5, + 12614: 70, + 12615: 65.5, + 12616: 76.5, + 12617: 32.75, + 12618: 74, + 12619: 34.75, + 1262: 28.625, + 12620: 66.5, + 12621: 18.375, + 12622: 59.75, + 12623: 37.25, + 12624: 53.5, + 12625: 89, + 12626: 43.75, + 12627: 63.25, + 12628: 73.5, + 12629: 49, + 1263: 37.5, + 12630: 58.75, + 12631: 56.99999999999999, + 12632: 57.75, + 12633: 26.75, + 12634: 66.5, + 12635: 92, + 12636: 34.25, + 12637: 66, + 12638: 62.5, + 12639: 69.5, + 1264: 55.5, + 12640: 48, + 12641: 51, + 12642: 30.875, + 12643: 53.5, + 12644: 40.24999999999999, + 12645: 57, + 12646: 45.25, + 12647: 73, + 12648: 52.75, + 12649: 48.75, + 1265: 94, + 12650: 62.5, + 12651: 20.875, + 12652: 36.75, + 12653: 97, + 12654: 62.5, + 12655: 28.875, + 12656: 54.75, + 12657: 106, + 12658: 37.75, + 12659: 65.5, + 1266: 86, + 12660: 50.75, + 12661: 31.75, + 12662: 69.5, + 12663: 40.75, + 12664: 75, + 12665: 74, + 12666: 45.25, + 12667: 87.5, + 12668: 55.75000000000001, + 12669: 48.75, + 1267: 70.5, + 12670: 0, + 12671: 69, + 12672: 69.5, + 12673: 69, + 12674: 47.75, + 12675: 41.75, + 12676: 66.5, + 12677: 92.5, + 12678: 31.5, + 12679: 39.5, + 1268: 62.74999999999999, + 12680: 61.75, + 12681: 63.24999999999999, + 12682: 47.25, + 12683: 86.5, + 12684: 55.5, + 12685: 40, + 12686: 55.75, + 12687: 85.5, + 12688: 41.25, + 12689: 63.5, + 1269: 60.5, + 12690: 46.5, + 12691: 61.75, + 12692: 85.5, + 12693: 63.75, + 12694: 50.25, + 12695: 48.75, + 12696: 23.875, + 12697: 69, + 12698: 56.5, + 12699: 60, + 127: 71.5, + 1270: 66.5, + 12700: 57, + 12701: 78.5, + 12702: 68.5, + 12703: 56.25, + 12704: 47.5, + 12705: 38, + 12706: 40.50000000000001, + 12707: 62.25, + 12708: 48.5, + 12709: 63, + 1271: 51.99999999999999, + 12710: 39.25, + 12711: 65.5, + 12712: 75.5, + 12713: 40, + 12714: 120.5, + 12715: 74.5, + 12716: 56, + 12717: 42.25, + 12718: 56.75, + 12719: 70, + 1272: 33.75, + 12720: 42.75, + 12721: 51, + 12722: 43.25000000000001, + 12723: 85.5, + 12724: 38.75, + 12725: 52, + 12726: 36, + 12727: 58, + 12728: 33.25, + 12729: 65.5, + 1273: 73, + 12730: 84, + 12731: 72, + 12732: 36.75, + 12733: 48.5, + 12734: 14.75, + 12735: 57, + 12736: 87, + 12737: 40.75, + 12738: 58, + 12739: 69.5, + 1274: 30.75, + 12740: 42, + 12741: 29.125, + 12742: 60.75, + 12743: 46, + 12744: 32.75, + 12745: 58.75, + 12746: 50.75, + 12747: 42.99999999999999, + 12748: 31.75, + 12749: 53.5, + 1275: 61, + 12750: 63, + 12751: 73, + 12752: 45.75, + 12753: 28.5, + 12754: 135, + 12755: 70.5, + 12756: 100, + 12757: 57.25000000000001, + 12758: 52.75, + 12759: 37.25, + 1276: 80.5, + 12760: 42.5, + 12761: 44.25, + 12762: 48.5, + 12763: 70, + 12764: 34.5, + 12765: 49.75, + 12766: 42.5, + 12767: 50.5, + 12768: 42, + 12769: 133, + 1277: 73.5, + 12770: 133, + 12771: 36.75, + 12772: 29.375, + 12773: 38, + 12774: 41.24999999999999, + 12775: 70.5, + 12776: 54.25, + 12777: 66, + 12778: 71, + 12779: 91.00000000000001, + 1278: 60.5, + 12780: 23.5, + 12781: 73.5, + 12782: 59, + 12783: 68, + 12784: 70, + 12785: 121.5, + 12786: 70, + 12787: 63.25, + 12788: 65, + 12789: 74.5, + 1279: 73.5, + 12790: 53.25, + 12791: 32.75, + 12792: 13.938, + 12793: 78, + 12794: 49.25, + 12795: 37, + 12796: 64.5, + 12797: 61.75, + 12798: 96, + 12799: 28.625, + 128: 13.438, + 1280: 67, + 12800: 46.75, + 12801: 43.75, + 12802: 13.75, + 12803: 55.25, + 12804: 153, + 12805: 66.5, + 12806: 38, + 12807: 85, + 12808: 42.25, + 12809: 71.5, + 1281: 68, + 12810: 44.5, + 12811: 71.5, + 12812: 52, + 12813: 56.5, + 12814: 68, + 12815: 86, + 12816: 69, + 12817: 38, + 12818: 35, + 12819: 123.5, + 1282: 12.625, + 12820: 44.5, + 12821: 34, + 12822: 41.75, + 12823: 26.5, + 12824: 47.75, + 12825: 117, + 12826: 52.25, + 12827: 66.5, + 12828: 48.25, + 12829: 39.75, + 1283: 0, + 12830: 23.874999999999996, + 12831: 75.5, + 12832: 69.5, + 12833: 51.25, + 12834: 67, + 12835: 68.5, + 12836: 56.25, + 12837: 46, + 12838: 118.5, + 12839: 34.5, + 1284: 53.25, + 12840: 58.75, + 12841: 58.25, + 12842: 69.5, + 12843: 51.25, + 12844: 75, + 12845: 52.5, + 12846: 38, + 12847: 45, + 12848: 59, + 12849: 56.5, + 1285: 62.75, + 12850: 70.5, + 12851: 57.25, + 12852: 42.75, + 12853: 41.25, + 12854: 59.25, + 12855: 43, + 12856: 61.25, + 12857: 41.5, + 12858: 29.25, + 12859: 21.375, + 1286: 57.74999999999999, + 12860: 70, + 12861: 74.5, + 12862: 51.75, + 12863: 43.75, + 12864: 50, + 12865: 58, + 12866: 62.5, + 12867: 71, + 12868: 24.25, + 12869: 47.5, + 1287: 33.25, + 12870: 62.75, + 12871: 28.25, + 12872: 35.25, + 12873: 67.5, + 12874: 17.75, + 12875: 53.5, + 12876: 65, + 12877: 48.5, + 12878: 61.75, + 12879: 25.75, + 1288: 69.5, + 12880: 27.875, + 12881: 118.5, + 12882: 43.25, + 12883: 52, + 12884: 38.25, + 12885: 45.25, + 12886: 25.125, + 12887: 63, + 12888: 52.25, + 12889: 85, + 1289: 43, + 12890: 74.5, + 12891: 55.5, + 12892: 105.5, + 12893: 50, + 12894: 76, + 12895: 62.74999999999999, + 12896: 40, + 12897: 46.75, + 12898: 79.5, + 12899: 28.749999999999996, + 129: 53.75, + 1290: 18.625, + 12900: 58.5, + 12901: 38.5, + 12902: 81.5, + 12903: 71, + 12904: 50.5, + 12905: 12.438, + 12906: 51, + 12907: 157, + 12908: 57.75, + 12909: 89, + 1291: 68.5, + 12910: 65, + 12911: 78, + 12912: 85.50000000000001, + 12913: 73.5, + 12914: 30.249999999999996, + 12915: 71.5, + 12916: 70.5, + 12917: 58, + 12918: 11.5, + 12919: 59.5, + 1292: 23.375, + 12920: 69.5, + 12921: 53.75, + 12922: 70.5, + 12923: 53.75, + 12924: 87.5, + 12925: 55.25, + 12926: 25, + 12927: 43.75, + 12928: 55.25, + 12929: 55, + 1293: 82, + 12930: 49.75, + 12931: 41.24999999999999, + 12932: 29.25, + 12933: 74.5, + 12934: 52, + 12935: 29.999999999999996, + 12936: 106.5, + 12937: 46.5, + 12938: 33.75, + 12939: 59.5, + 1294: 72, + 12940: 52.49999999999999, + 12941: 84.5, + 12942: 59.25, + 12943: 50.25, + 12944: 63.5, + 12945: 75, + 12946: 66, + 12947: 41.5, + 12948: 43.5, + 12949: 31.749999999999996, + 1295: 48.5, + 12950: 69, + 12951: 31.5, + 12952: 50, + 12953: 53.75, + 12954: 34.25, + 12955: 46.75, + 12956: 45.5, + 12957: 57.25, + 12958: 74, + 12959: 19.625, + 1296: 26.875, + 12960: 36.75, + 12961: 14.999999999999998, + 12962: 119, + 12963: 9.938, + 12964: 62.5, + 12965: 37.75, + 12966: 39.25, + 12967: 39.25, + 12968: 54.75, + 12969: 25, + 1297: 54.75, + 12970: 34, + 12971: 55, + 12972: 57.25, + 12973: 72, + 12974: 54, + 12975: 52.25, + 12976: 69.5, + 12977: 29.125, + 12978: 72.5, + 12979: 50.75, + 1298: 45, + 12980: 65, + 12981: 18.624999999999996, + 12982: 40.5, + 12983: 42.25, + 12984: 52.25, + 12985: 52.25, + 12986: 67, + 12987: 54, + 12988: 59.75, + 12989: 73, + 1299: 95.5, + 12990: 82.5, + 12991: 68.5, + 12992: 46.75, + 12993: 35.75, + 12994: 49.99999999999999, + 12995: 45.75, + 12996: 39.75, + 12997: 92, + 12998: 18.5, + 12999: 66.5, + 13: 42.75, + 130: 42.25, + 1300: 41.5, + 13000: 69, + 13001: 39.5, + 13002: 52.25, + 13003: 60.75, + 13004: 45.5, + 13005: 55, + 13006: 147, + 13007: 69, + 13008: 55.25, + 13009: 52, + 1301: 82, + 13010: 61, + 13011: 72.5, + 13012: 98.5, + 13013: 65, + 13014: 66.5, + 13015: 58.5, + 13016: 0, + 13017: 72, + 13018: 56.5, + 13019: 94.5, + 1302: 51.99999999999999, + 13020: 27.75, + 13021: 48.75, + 13022: 82, + 13023: 72, + 13024: 97, + 13025: 19.25, + 13026: 101, + 13027: 60, + 13028: 48.75, + 13029: 65, + 1303: 69, + 13030: 60.75, + 13031: 71, + 13032: 46.25, + 13033: 85.5, + 13034: 55.25, + 13035: 40.75, + 13036: 54.75, + 13037: 57, + 13038: 64.5, + 13039: 27.999999999999996, + 1304: 35.5, + 13040: 53.5, + 13041: 49.25, + 13042: 66.5, + 13043: 119, + 13044: 30.125, + 13045: 0.021, + 13046: 83.5, + 13047: 59, + 13048: 90.5, + 13049: 66.5, + 1305: 32.75, + 13050: 27.375, + 13051: 29.875, + 13052: 91.5, + 13053: 37, + 13054: 67.5, + 13055: 32.74999999999999, + 13056: 29.375, + 13057: 66, + 13058: 37, + 13059: 50.5, + 1306: 42.5, + 13060: 61.5, + 13061: 41.25, + 13062: 67, + 13063: 53, + 13064: 46.5, + 13065: 58.25, + 13066: 42.75, + 13067: 65, + 13068: 44.25, + 13069: 7.25, + 1307: 133, + 13070: 40, + 13071: 21, + 13072: 49.75, + 13073: 53.5, + 13074: 49.75, + 13075: 41.5, + 13076: 44.75, + 13077: 72, + 13078: 28.750000000000004, + 13079: 40.5, + 1308: 53.5, + 13080: 74, + 13081: 54.00000000000001, + 13082: 86.5, + 13083: 53.75, + 13084: 59.5, + 13085: 57.5, + 13086: 67, + 13087: 99, + 13088: 65, + 13089: 63.49999999999999, + 1309: 76, + 13090: 36.25, + 13091: 58.25000000000001, + 13092: 46.75, + 13093: 74.5, + 13094: 110, + 13095: 63.25, + 13096: 58.75000000000001, + 13097: 71, + 13098: 60.74999999999999, + 13099: 81.5, + 131: 70.5, + 1310: 52.25, + 13100: 44.75, + 13101: 53.75, + 13102: 70, + 13103: 52.75, + 13104: 28, + 13105: 66.5, + 13106: 42.5, + 13107: 54.25, + 13108: 46.5, + 13109: 41.75, + 1311: 33, + 13110: 37.75, + 13111: 61.5, + 13112: 39.5, + 13113: 40.25, + 13114: 45, + 13115: 40.5, + 13116: 54.25, + 13117: 39, + 13118: 59.00000000000001, + 13119: 47.74999999999999, + 1312: 0, + 13120: 38, + 13121: 48.5, + 13122: 33.5, + 13123: 26, + 13124: 55, + 13125: 87.5, + 13126: 44.25, + 13127: 20.25, + 13128: 43.75, + 13129: 27.25, + 1313: 34.75, + 13130: 75, + 13131: 60.74999999999999, + 13132: 55.49999999999999, + 13133: 52, + 13134: 78, + 13135: 119.5, + 13136: 22.25, + 13137: 47.75, + 13138: 86.5, + 13139: 57.5, + 1314: 46.75000000000001, + 13140: 96.5, + 13141: 73.5, + 13142: 75, + 13143: 34.5, + 13144: 46, + 13145: 54.25, + 13146: 46, + 13147: 35.25, + 13148: 66.5, + 13149: 42.75, + 1315: 51.75, + 13150: 40, + 13151: 83.5, + 13152: 48.25, + 13153: 50.5, + 13154: 33.75, + 13155: 70, + 13156: 50.25, + 13157: 52, + 13158: 53.5, + 13159: 45, + 1316: 23.125, + 13160: 53, + 13161: 78, + 13162: 124.5, + 13163: 19.5, + 13164: 71.5, + 13165: 59.75000000000001, + 13166: 49.25, + 13167: 55, + 13168: 109, + 13169: 51.25, + 1317: 120, + 13170: 50.25, + 13171: 40.75, + 13172: 43, + 13173: 65, + 13174: 67, + 13175: 57, + 13176: 125.50000000000001, + 13177: 51, + 13178: 52.5, + 13179: 73.5, + 1318: 35, + 13180: 36.75, + 13181: 8.875, + 13182: 53, + 13183: 27, + 13184: 77.5, + 13185: 58.75000000000001, + 13186: 60.5, + 13187: 59.25, + 13188: 47.25, + 13189: 48.75, + 1319: 45.75, + 13190: 55.75, + 13191: 47.75, + 13192: 71.5, + 13193: 67.5, + 13194: 52, + 13195: 69.5, + 13196: 51, + 13197: 41.5, + 13198: 77, + 13199: 34.75, + 132: 50.25, + 1320: 36.25, + 13200: 53, + 13201: 94, + 13202: 121, + 13203: 76.5, + 13204: 39.25, + 13205: 55.75, + 13206: 40.25, + 13207: 34, + 13208: 37.5, + 13209: 49.5, + 1321: 52.75, + 13210: 56, + 13211: 70, + 13212: 69.5, + 13213: 62.75, + 13214: 36.5, + 13215: 60.25, + 13216: 69.5, + 13217: 33, + 13218: 101, + 13219: 37.5, + 1322: 16.75, + 13220: 71, + 13221: 22.875, + 13222: 48.5, + 13223: 68, + 13224: 54.75, + 13225: 63.75, + 13226: 59.5, + 13227: 131, + 13228: 44, + 13229: 33.5, + 1323: 32, + 13230: 97.5, + 13231: 29.375, + 13232: 31, + 13233: 49.5, + 13234: 86, + 13235: 94, + 13236: 85.5, + 13237: 26.625, + 13238: 53.25, + 13239: 64, + 1324: 37, + 13240: 43, + 13241: 148, + 13242: 70.5, + 13243: 53.25, + 13244: 23.5, + 13245: 53.5, + 13246: 51.50000000000001, + 13247: 14.25, + 13248: 51, + 13249: 54.25, + 1325: 46.75, + 13250: 50.75, + 13251: 45, + 13252: 48.25, + 13253: 50.5, + 13254: 73, + 13255: 38, + 13256: 33.75000000000001, + 13257: 67.5, + 13258: 51, + 13259: 67.5, + 1326: 65, + 13260: 87.5, + 13261: 27.75, + 13262: 33.25, + 13263: 95, + 13264: 25.5, + 13265: 65, + 13266: 68, + 13267: 58.00000000000001, + 13268: 62.75, + 13269: 60.25, + 1327: 82, + 13270: 70.5, + 13271: 48.5, + 13272: 71, + 13273: 61.5, + 13274: 28.625, + 13275: 42.5, + 13276: 70.5, + 13277: 75, + 13278: 14.061999999999998, + 13279: 52.5, + 1328: 59.75, + 13280: 53.5, + 13281: 56.00000000000001, + 13282: 59.75, + 13283: 82, + 13284: 50.25000000000001, + 13285: 44.25, + 13286: 62.5, + 13287: 73, + 13288: 64.00000000000001, + 13289: 54.75, + 1329: 36.5, + 13290: 88, + 13291: 54.5, + 13292: 28.375, + 13293: 59.5, + 13294: 54.75, + 13295: 6.688, + 13296: 52.75, + 13297: 58.25, + 13298: 37.25, + 13299: 58.25, + 133: 71, + 1330: 67, + 13300: 27.75, + 13301: 55.5, + 13302: 42.25, + 13303: 51.25, + 13304: 72.5, + 13305: 51.25, + 13306: 58.25, + 13307: 86.5, + 13308: 19.5, + 13309: 34.5, + 1331: 39.5, + 13310: 50.75, + 13311: 0, + 13312: 19.5, + 13313: 49.25, + 13314: 46.5, + 13315: 118.5, + 13316: 75.5, + 13317: 81, + 13318: 68.5, + 13319: 37, + 1332: 34.75, + 13320: 52.25, + 13321: 72, + 13322: 68, + 13323: 66, + 13324: 53.5, + 13325: 78.5, + 13326: 88.5, + 13327: 50.5, + 13328: 37.25, + 13329: 10.625, + 1333: 70.5, + 13330: 77.5, + 13331: 57, + 13332: 57, + 13333: 32.50000000000001, + 13334: 45.25, + 13335: 47.5, + 13336: 103, + 13337: 67, + 13338: 53.75, + 13339: 50.5, + 1334: 56.25000000000001, + 13340: 28.5, + 13341: 82.5, + 13342: 156, + 13343: 31.375, + 13344: 53.5, + 13345: 54.5, + 13346: 57, + 13347: 74.5, + 13348: 44, + 13349: 67.50000000000001, + 1335: 21.75, + 13350: 35, + 13351: 54.5, + 13352: 63.75, + 13353: 55.5, + 13354: 34.5, + 13355: 70, + 13356: 78.5, + 13357: 13.062, + 13358: 24.375, + 13359: 66, + 1336: 61, + 13360: 62, + 13361: 30.375, + 13362: 27.375, + 13363: 78.5, + 13364: 82.5, + 13365: 74.5, + 13366: 60, + 13367: 23.875, + 13368: 46.75, + 13369: 52.75, + 1337: 46.75, + 13370: 70, + 13371: 60.24999999999999, + 13372: 41.5, + 13373: 73, + 13374: 42.25, + 13375: 31.624999999999996, + 13376: 47, + 13377: 121.5, + 13378: 43.75, + 13379: 73, + 1338: 67, + 13380: 68, + 13381: 35.5, + 13382: 72, + 13383: 21.25, + 13384: 57, + 13385: 54.25, + 13386: 32.5, + 13387: 57.75, + 13388: 18, + 13389: 59.25, + 1339: 64.5, + 13390: 34, + 13391: 27.25, + 13392: 21.25, + 13393: 64.5, + 13394: 50.75, + 13395: 38, + 13396: 59.5, + 13397: 80.5, + 13398: 70.5, + 13399: 41.5, + 134: 66, + 1340: 70, + 13400: 50.25, + 13401: 70.5, + 13402: 65.5, + 13403: 37, + 13404: 26.5, + 13405: 69.5, + 13406: 133, + 13407: 68, + 13408: 98.49999999999999, + 13409: 64, + 1341: 10.75, + 13410: 52.75, + 13411: 42.75, + 13412: 54, + 13413: 51, + 13414: 80, + 13415: 71.5, + 13416: 26, + 13417: 0, + 13418: 58.5, + 13419: 38, + 1342: 45.75, + 13420: 34, + 13421: 63.5, + 13422: 33.25, + 13423: 28.375, + 13424: 46.25000000000001, + 13425: 43, + 13426: 66.5, + 13427: 71.5, + 13428: 57.5, + 13429: 60.25, + 1343: 38.25, + 13430: 66, + 13431: 75.5, + 13432: 58.25, + 13433: 36.5, + 13434: 46.99999999999999, + 13435: 38.25, + 13436: 54, + 13437: 16.125, + 13438: 8.438, + 13439: 56, + 1344: 70, + 13440: 23.5, + 13441: 31.75, + 13442: 52, + 13443: 41.75, + 13444: 50, + 13445: 81, + 13446: 40.00000000000001, + 13447: 39.75, + 13448: 54, + 13449: 46.75, + 1345: 60.75, + 13450: 44, + 13451: 32, + 13452: 55, + 13453: 62.75, + 13454: 54, + 13455: 41.75, + 13456: 59.25, + 13457: 113, + 13458: 51.25, + 13459: 20.875, + 1346: 34, + 13460: 27, + 13461: 69.5, + 13462: 54.75, + 13463: 16.375, + 13464: 67.5, + 13465: 47.5, + 13466: 54.25, + 13467: 70.5, + 13468: 17.5, + 13469: 63.75, + 1347: 52.25, + 13470: 34, + 13471: 34.75, + 13472: 64.5, + 13473: 61.5, + 13474: 56, + 13475: 58.75, + 13476: 61, + 13477: 48.25, + 13478: 13.062, + 13479: 55.5, + 1348: 47, + 13480: 52.75, + 13481: 18.25, + 13482: 57.25, + 13483: 57, + 13484: 49.5, + 13485: 64.5, + 13486: 47, + 13487: 71, + 13488: 43, + 13489: 47.5, + 1349: 38, + 13490: 36.25, + 13491: 0, + 13492: 46.25, + 13493: 59.75, + 13494: 65, + 13495: 51, + 13496: 33.5, + 13497: 67, + 13498: 38, + 13499: 54, + 135: 81.5, + 1350: 14.937999999999999, + 13500: 41, + 13501: 75.00000000000001, + 13502: 35.5, + 13503: 56.5, + 13504: 74, + 13505: 73, + 13506: 52.75, + 13507: 34.25, + 13508: 16.625, + 13509: 65.5, + 1351: 36.25, + 13510: 55.75, + 13511: 51.75, + 13512: 49.75, + 13513: 43.75, + 13514: 33.25, + 13515: 87.00000000000001, + 13516: 152, + 13517: 47.50000000000001, + 13518: 103, + 13519: 69.5, + 1352: 36, + 13520: 25.25, + 13521: 77, + 13522: 19.75, + 13523: 6.031, + 13524: 55.75, + 13525: 85.99999999999999, + 13526: 32.5, + 13527: 46, + 13528: 42.25, + 13529: 42.5, + 1353: 66.5, + 13530: 71.5, + 13531: 42.5, + 13532: 42.25, + 13533: 44, + 13534: 44.25, + 13535: 51, + 13536: 79, + 13537: 60, + 13538: 54, + 13539: 35, + 1354: 79.5, + 13540: 51, + 13541: 59, + 13542: 70, + 13543: 84.5, + 13544: 59.25, + 13545: 61.5, + 13546: 63, + 13547: 57.25, + 13548: 52.25, + 13549: 45.25000000000001, + 1355: 52.25, + 13550: 60.75, + 13551: 49.5, + 13552: 63, + 13553: 55.25, + 13554: 66.5, + 13555: 31.875, + 13556: 60, + 13557: 65.5, + 13558: 67, + 13559: 29.875, + 1356: 41.5, + 13560: 18.25, + 13561: 112, + 13562: 85.5, + 13563: 60.75, + 13564: 72, + 13565: 70.5, + 13566: 33.5, + 13567: 88, + 13568: 49.5, + 13569: 46.5, + 1357: 46.25, + 13570: 21.5, + 13571: 78.5, + 13572: 56.5, + 13573: 19.25, + 13574: 61, + 13575: 0, + 13576: 57.5, + 13577: 16.125, + 13578: 49, + 13579: 89.5, + 1358: 25.875, + 13580: 82, + 13581: 38, + 13582: 34.5, + 13583: 99.5, + 13584: 82, + 13585: 44.5, + 13586: 120.5, + 13587: 36.5, + 13588: 42.49999999999999, + 13589: 16.875, + 1359: 37, + 13590: 76, + 13591: 41.25, + 13592: 74, + 13593: 53.50000000000001, + 13594: 46.75, + 13595: 76, + 13596: 45.5, + 13597: 61.5, + 13598: 42, + 13599: 31.125, + 136: 50.75, + 1360: 77.99999999999999, + 13600: 51, + 13601: 23, + 13602: 46.5, + 13603: 36.5, + 13604: 109, + 13605: 58.5, + 13606: 48, + 13607: 62, + 13608: 65, + 13609: 580, + 1361: 29, + 13610: 71, + 13611: 45, + 13612: 90.50000000000001, + 13613: 47, + 13614: 38, + 13615: 60.5, + 13616: 39, + 13617: 68.5, + 13618: 99.5, + 13619: 57.25, + 1362: 52.75, + 13620: 45.25, + 13621: 31.25, + 13622: 125.5, + 13623: 49.5, + 13624: 41, + 13625: 124, + 13626: 45.5, + 13627: 67, + 13628: 80, + 13629: 41.75, + 1363: 73.5, + 13630: 51.75, + 13631: 67, + 13632: 60.75, + 13633: 94.5, + 13634: 77, + 13635: 52, + 13636: 49.75, + 13637: 88.5, + 13638: 60.25, + 13639: 37.25, + 1364: 84, + 13640: 59.75, + 13641: 45, + 13642: 71.5, + 13643: 72.5, + 13644: 73, + 13645: 31, + 13646: 48.5, + 13647: 44.25, + 13648: 47.5, + 13649: 22.375, + 1365: 35, + 13650: 59.75000000000001, + 13651: 51.75, + 13652: 36.75, + 13653: 108, + 13654: 49.75, + 13655: 52.75, + 13656: 51.5, + 13657: 59.99999999999999, + 13658: 75, + 13659: 34.25, + 1366: 13.375000000000002, + 13660: 134, + 13661: 39.25, + 13662: 31.125, + 13663: 48.5, + 13664: 17.5, + 13665: 41.75, + 13666: 56.75, + 13667: 42.99999999999999, + 13668: 16.25, + 13669: 47, + 1367: 60.5, + 13670: 58.99999999999999, + 13671: 35, + 13672: 65.5, + 13673: 46.5, + 13674: 68, + 13675: 57, + 13676: 93.5, + 13677: 19.375, + 13678: 60.25, + 13679: 76.5, + 1368: 78, + 13680: 67, + 13681: 85.5, + 13682: 54, + 13683: 61, + 13684: 77, + 13685: 46.5, + 13686: 27.125, + 13687: 27.375, + 13688: 74, + 13689: 73, + 1369: 51.25, + 13690: 38, + 13691: 42.5, + 13692: 32.75, + 13693: 59.5, + 13694: 64, + 13695: 39.75, + 13696: 62.75, + 13697: 43, + 13698: 70, + 13699: 84.5, + 137: 57.25, + 1370: 118, + 13700: 93.5, + 13701: 14.688, + 13702: 42.5, + 13703: 39.5, + 13704: 69, + 13705: 46.5, + 13706: 40, + 13707: 150, + 13708: 56, + 13709: 56.5, + 1371: 48, + 13710: 36.25, + 13711: 52.75, + 13712: 40.5, + 13713: 69.5, + 13714: 64, + 13715: 62.75, + 13716: 57, + 13717: 115, + 13718: 73, + 13719: 27.875, + 1372: 68, + 13720: 98.5, + 13721: 48.75, + 13722: 75, + 13723: 58.25, + 13724: 40.5, + 13725: 47, + 13726: 60.5, + 13727: 85, + 13728: 63.5, + 13729: 50, + 1373: 34, + 13730: 55.5, + 13731: 0, + 13732: 28.125, + 13733: 73.5, + 13734: 24.875, + 13735: 82, + 13736: 111, + 13737: 62.75, + 13738: 43.5, + 13739: 42.75, + 1374: 74.5, + 13740: 11.625, + 13741: 54.75, + 13742: 62, + 13743: 49, + 13744: 53.5, + 13745: 57, + 13746: 73.5, + 13747: 49, + 13748: 41.75, + 13749: 54.75, + 1375: 56.5, + 13750: 88.49999999999999, + 13751: 118, + 13752: 38, + 13753: 68, + 13754: 91, + 13755: 62.49999999999999, + 13756: 51.5, + 13757: 3.719, + 13758: 41, + 13759: 38.99999999999999, + 1376: 51.75, + 13760: 83.5, + 13761: 95.5, + 13762: 42.5, + 13763: 66, + 13764: 65, + 13765: 79, + 13766: 36.25, + 13767: 32.75, + 13768: 50.5, + 13769: 44.25, + 1377: 73, + 13770: 69.5, + 13771: 86, + 13772: 56, + 13773: 73, + 13774: 42.5, + 13775: 59.5, + 13776: 23.125, + 13777: 63.5, + 13778: 66.5, + 13779: 67.5, + 1378: 74, + 13780: 39.75, + 13781: 49.99999999999999, + 13782: 45.75, + 13783: 45.5, + 13784: 62.25000000000001, + 13785: 47, + 13786: 45.49999999999999, + 13787: 61.75, + 13788: 42, + 13789: 54, + 1379: 43.75, + 13790: 82.5, + 13791: 14.562000000000001, + 13792: 57.25000000000001, + 13793: 39, + 13794: 31.25, + 13795: 49, + 13796: 29.75, + 13797: 67.5, + 13798: 42, + 13799: 37.75, + 138: 48.24999999999999, + 1380: 32.25, + 13800: 54.49999999999999, + 13801: 77, + 13802: 51, + 13803: 105.5, + 13804: 20.25, + 13805: 55.25000000000001, + 13806: 102.5, + 13807: 68, + 13808: 88, + 13809: 33.25, + 1381: 53.5, + 13810: 69.5, + 13811: 73, + 13812: 39.25, + 13813: 33.25, + 13814: 39.75, + 13815: 83, + 13816: 66, + 13817: 50.75, + 13818: 40, + 13819: 80, + 1382: 48.75, + 13820: 44, + 13821: 68, + 13822: 71, + 13823: 23.625000000000004, + 13824: 54.5, + 13825: 64, + 13826: 63, + 13827: 36.75, + 13828: 94, + 13829: 57.99999999999999, + 1383: 33.75, + 13830: 59.75, + 13831: 83, + 13832: 93.5, + 13833: 24, + 13834: 59.75, + 13835: 37.25, + 13836: 60.75, + 13837: 117.5, + 13838: 65, + 13839: 75.5, + 1384: 57.75000000000001, + 13840: 35.75, + 13841: 28.749999999999996, + 13842: 21.875, + 13843: 68, + 13844: 74, + 13845: 43.5, + 13846: 43.25, + 13847: 45, + 13848: 34, + 13849: 53.5, + 1385: 51.25, + 13850: 82.50000000000001, + 13851: 60.5, + 13852: 93.5, + 13853: 9.75, + 13854: 64, + 13855: 59.5, + 13856: 38.25, + 13857: 79, + 13858: 61, + 13859: 60, + 1386: 28.875, + 13860: 44.25, + 13861: 58.24999999999999, + 13862: 53.75, + 13863: 70, + 13864: 52.75, + 13865: 34.5, + 13866: 0, + 13867: 30.75, + 13868: 46.5, + 13869: 47.5, + 1387: 58.50000000000001, + 13870: 25.25, + 13871: 71.5, + 13872: 41, + 13873: 36.25, + 13874: 60.25, + 13875: 74, + 13876: 65.5, + 13877: 52, + 13878: 60, + 13879: 43.25, + 1388: 33.25, + 13880: 25, + 13881: 97, + 13882: 57, + 13883: 49.5, + 13884: 45.75, + 13885: 95.5, + 13886: 54.25, + 13887: 19.75, + 13888: 42.5, + 13889: 39.25, + 1389: 50, + 13890: 49.25, + 13891: 16.375, + 13892: 96.5, + 13893: 27, + 13894: 49.74999999999999, + 13895: 28.125, + 13896: 52.75, + 13897: 68, + 13898: 42.5, + 13899: 16.625, + 139: 38, + 1390: 37.25, + 13900: 70, + 13901: 48, + 13902: 58.5, + 13903: 61.5, + 13904: 70.5, + 13905: 11.062, + 13906: 34.75, + 13907: 58.25, + 13908: 80, + 13909: 94, + 1391: 87, + 13910: 39.75, + 13911: 78.5, + 13912: 75, + 13913: 28.25, + 13914: 70.5, + 13915: 67, + 13916: 59.25, + 13917: 54.25, + 13918: 42, + 13919: 72, + 1392: 47.25, + 13920: 52.5, + 13921: 68.5, + 13922: 51, + 13923: 130, + 13924: 74, + 13925: 3.453, + 13926: 52, + 13927: 41.75, + 13928: 20.375, + 13929: 65, + 1393: 29.499999999999996, + 13930: 51, + 13931: 10.375, + 13932: 108.5, + 13933: 46.25, + 13934: 84.5, + 13935: 67.5, + 13936: 28, + 13937: 31.125, + 13938: 52.5, + 13939: 36.25000000000001, + 1394: 78.5, + 13940: 55.25, + 13941: 54.5, + 13942: 63, + 13943: 62.24999999999999, + 13944: 28.875, + 13945: 36.25, + 13946: 60.5, + 13947: 27.375, + 13948: 67, + 13949: 55.25, + 1395: 38.75, + 13950: 56.5, + 13951: 26.25, + 13952: 70, + 13953: 61.25, + 13954: 13.812, + 13955: 24.75, + 13956: 78.5, + 13957: 39.25, + 13958: 12.25, + 13959: 54, + 1396: 28.375, + 13960: 23.5, + 13961: 55.5, + 13962: 18.625, + 13963: 73, + 13964: 61.5, + 13965: 131, + 13966: 77, + 13967: 38.75, + 13968: 53.99999999999999, + 13969: 75, + 1397: 62.25000000000001, + 13970: 48.5, + 13971: 53.25, + 13972: 79.00000000000001, + 13973: 63.5, + 13974: 56.75, + 13975: 42.25, + 13976: 64.5, + 13977: 81, + 13978: 29.625, + 13979: 43.25, + 1398: 18, + 13980: 81, + 13981: 66, + 13982: 44.75, + 13983: 82, + 13984: 64.5, + 13985: 46, + 13986: 60.75, + 13987: 81.5, + 13988: 59.25, + 13989: 63.5, + 1399: 48.5, + 13990: 118.5, + 13991: 53.25000000000001, + 13992: 76.5, + 13993: 95.00000000000001, + 13994: 85.50000000000001, + 13995: 43.75, + 13996: 51.75, + 13997: 60.25000000000001, + 13998: 59.25, + 13999: 65, + 14: 81, + 140: 54.75, + 1400: 56, + 14000: 74.5, + 14001: 48.75, + 14002: 26.875, + 14003: 65.5, + 14004: 61.5, + 14005: 44.5, + 14006: 30, + 14007: 42.75, + 14008: 75.5, + 14009: 64.5, + 1401: 38.5, + 14010: 49.5, + 14011: 64.5, + 14012: 74, + 14013: 42, + 14014: 19.75, + 14015: 32.75, + 14016: 47.75, + 14017: 42.5, + 14018: 25.375, + 14019: 58.75, + 1402: 61.75, + 14020: 47.25, + 14021: 89, + 14022: 93, + 14023: 46.25, + 14024: 24.375, + 14025: 80, + 14026: 56.5, + 14027: 61, + 14028: 102.5, + 14029: 74.5, + 1403: 75, + 14030: 65.5, + 14031: 90.5, + 14032: 22.5, + 14033: 71.5, + 14034: 75, + 14035: 23.75, + 14036: 39.5, + 14037: 78, + 14038: 75, + 14039: 45.75, + 1404: 27.125, + 14040: 41.75, + 14041: 103, + 14042: 75, + 14043: 114.5, + 14044: 51.25, + 14045: 40.75, + 14046: 76, + 14047: 66, + 14048: 44.75, + 14049: 33, + 1405: 29.375, + 14050: 60.5, + 14051: 39.5, + 14052: 94.5, + 14053: 58.25, + 14054: 61.74999999999999, + 14055: 87, + 14056: 65.5, + 14057: 38.25, + 14058: 46, + 14059: 74, + 1406: 53.25, + 14060: 51.75, + 14061: 57, + 14062: 33.25, + 14063: 56.75, + 14064: 65, + 14065: 24.5, + 14066: 52.25, + 14067: 66.5, + 14068: 41.5, + 14069: 68, + 1407: 37.75, + 14070: 59.5, + 14071: 27.5, + 14072: 49, + 14073: 57.25, + 14074: 34.25, + 14075: 60.75000000000001, + 14076: 48.5, + 14077: 46.5, + 14078: 61, + 14079: 46, + 1408: 49.25, + 14080: 53, + 14081: 65.5, + 14082: 59, + 14083: 62.5, + 14084: 55.24999999999999, + 14085: 13.75, + 14086: 54.75, + 14087: 115.5, + 14088: 52.25, + 14089: 56.25, + 1409: 58.5, + 14090: 26.625, + 14091: 62.99999999999999, + 14092: 69.5, + 14093: 65.5, + 14094: 53, + 14095: 40.5, + 14096: 64.5, + 14097: 72.5, + 14098: 44.25, + 14099: 64, + 141: 53.25, + 1410: 79.5, + 14100: 126.5, + 14101: 135, + 14102: 53, + 14103: 123, + 14104: 66, + 14105: 73.5, + 14106: 57.49999999999999, + 14107: 63.75, + 14108: 65.5, + 14109: 35.25, + 1411: 66.5, + 14110: 14.875, + 14111: 32.75, + 14112: 34, + 14113: 34, + 14114: 41.25, + 14115: 18.75, + 14116: 62, + 14117: 57.25, + 14118: 66, + 14119: 68, + 1412: 33.5, + 14120: 83.5, + 14121: 72, + 14122: 17.25, + 14123: 62.25, + 14124: 67, + 14125: 27.75, + 14126: 82.5, + 14127: 54, + 14128: 34.5, + 14129: 16, + 1413: 85.50000000000001, + 14130: 67.5, + 14131: 62.5, + 14132: 34.75, + 14133: 57, + 14134: 49.5, + 14135: 81, + 14136: 66, + 14137: 43.5, + 14138: 101, + 14139: 50.5, + 1414: 25.875, + 14140: 74, + 14141: 43.25, + 14142: 56.25, + 14143: 66.5, + 14144: 45.25, + 14145: 58.75, + 14146: 23.375, + 14147: 30.75, + 14148: 41.75, + 14149: 61, + 1415: 96, + 14150: 80.5, + 14151: 48.5, + 14152: 53, + 14153: 54.99999999999999, + 14154: 44.25, + 14155: 77.5, + 14156: 58.25, + 14157: 30, + 14158: 33.5, + 14159: 74, + 1416: 66, + 14160: 64, + 14161: 73.5, + 14162: 46.25, + 14163: 71, + 14164: 31.749999999999996, + 14165: 62.5, + 14166: 67, + 14167: 54.25, + 14168: 42.25, + 14169: 69.5, + 1417: 46.5, + 14170: 52.75, + 14171: 18.125, + 14172: 46, + 14173: 74.5, + 14174: 49.50000000000001, + 14175: 72.5, + 14176: 44, + 14177: 29.625, + 14178: 73.5, + 14179: 56, + 1418: 99.5, + 14180: 57.5, + 14181: 32.5, + 14182: 62.5, + 14183: 56, + 14184: 40.25, + 14185: 48.75, + 14186: 6.938, + 14187: 28.75, + 14188: 62.74999999999999, + 14189: 113, + 1419: 42, + 14190: 36.25, + 14191: 66, + 14192: 73, + 14193: 50.25, + 14194: 49.25, + 14195: 61, + 14196: 72.5, + 14197: 64, + 14198: 53, + 14199: 82.5, + 142: 95.5, + 1420: 23.25, + 14200: 53.5, + 14201: 42.5, + 14202: 48.5, + 14203: 17.875, + 14204: 84.00000000000001, + 14205: 35.25, + 14206: 44.75, + 14207: 74, + 14208: 49.75, + 14209: 32.5, + 1421: 37.5, + 14210: 51.5, + 14211: 17.125, + 14212: 112, + 14213: 97.5, + 14214: 27.25, + 14215: 83.5, + 14216: 31.375, + 14217: 59, + 14218: 82.5, + 14219: 125, + 1422: 63.75, + 14220: 57.5, + 14221: 62.75, + 14222: 56.25, + 14223: 73, + 14224: 83, + 14225: 46.25, + 14226: 43.5, + 14227: 23.75, + 14228: 50.75, + 14229: 35.75, + 1423: 78, + 14230: 59.25, + 14231: 19.875, + 14232: 37.75, + 14233: 75.5, + 14234: 44.5, + 14235: 32.5, + 14236: 33.5, + 14237: 22.625, + 14238: 38.25, + 14239: 43.25, + 1424: 48.75, + 14240: 41.25, + 14241: 36, + 14242: 77.99999999999999, + 14243: 59, + 14244: 54.5, + 14245: 46.25, + 14246: 44.75, + 14247: 60, + 14248: 52, + 14249: 27.375, + 1425: 39, + 14250: 56, + 14251: 11.688, + 14252: 13.688, + 14253: 55.25, + 14254: 39.75, + 14255: 30.5, + 14256: 39.75, + 14257: 52.5, + 14258: 35, + 14259: 63.25, + 1426: 41, + 14260: 60.25, + 14261: 63.49999999999999, + 14262: 51, + 14263: 45.75, + 14264: 48.75, + 14265: 43, + 14266: 39.25, + 14267: 70, + 14268: 49, + 14269: 52, + 1427: 81, + 14270: 42.5, + 14271: 56.25, + 14272: 29.375000000000004, + 14273: 49, + 14274: 44.75, + 14275: 60.5, + 14276: 30.75, + 14277: 77, + 14278: 67, + 14279: 43, + 1428: 33.25, + 14280: 48, + 14281: 42.75, + 14282: 56.5, + 14283: 62.75, + 14284: 56, + 14285: 64, + 14286: 96.5, + 14287: 34, + 14288: 22.875, + 14289: 90.5, + 1429: 54.75, + 14290: 76, + 14291: 59.5, + 14292: 28.25, + 14293: 20.5, + 14294: 41.5, + 14295: 36.75, + 14296: 39.75, + 14297: 19.5, + 14298: 49.74999999999999, + 14299: 52.75000000000001, + 143: 0, + 1430: 69, + 14300: 52, + 14301: 42.25, + 14302: 50, + 14303: 68.5, + 14304: 22.125, + 14305: 99, + 14306: 33.25, + 14307: 61.75, + 14308: 72, + 14309: 63.75, + 1431: 43.25, + 14310: 69.5, + 14311: 42.25, + 14312: 60.25, + 14313: 43, + 14314: 75.5, + 14315: 88, + 14316: 36.25, + 14317: 37.5, + 14318: 98.5, + 14319: 71, + 1432: 67, + 14320: 41.75, + 14321: 54.25, + 14322: 19.5, + 14323: 64.5, + 14324: 42.75, + 14325: 54.25, + 14326: 44.5, + 14327: 43.5, + 14328: 23.625, + 14329: 50, + 1433: 72, + 14330: 62.5, + 14331: 37.25, + 14332: 66.5, + 14333: 48.5, + 14334: 81.5, + 14335: 44.75, + 14336: 45.5, + 14337: 94.5, + 14338: 51.75, + 14339: 55.75, + 1434: 5.5, + 14340: 65.5, + 14341: 123.5, + 14342: 25.5, + 14343: 50.5, + 14344: 116, + 14345: 79, + 14346: 82, + 14347: 56.75, + 14348: 19.125, + 14349: 114, + 1435: 69, + 14350: 60, + 14351: 39.75, + 14352: 22.75, + 14353: 65, + 14354: 64.5, + 14355: 55, + 14356: 44.25, + 14357: 52, + 14358: 61, + 14359: 63.25, + 1436: 76, + 14360: 43.75, + 14361: 67, + 14362: 77.5, + 14363: 62, + 14364: 80, + 14365: 67, + 14366: 76, + 14367: 72.5, + 14368: 23.25, + 14369: 49.75, + 1437: 43.75, + 14370: 31.125, + 14371: 35.25, + 14372: 58.75, + 14373: 71.5, + 14374: 40, + 14375: 63.25, + 14376: 38.25, + 14377: 59.5, + 14378: 56, + 14379: 54.75, + 1438: 34, + 14380: 59.5, + 14381: 55, + 14382: 36.75, + 14383: 36.75, + 14384: 66, + 14385: 59, + 14386: 62.75000000000001, + 14387: 57.75, + 14388: 31.875, + 14389: 40.25, + 1439: 42.75, + 14390: 53.25, + 14391: 89, + 14392: 64, + 14393: 42, + 14394: 27.375, + 14395: 65, + 14396: 126.5, + 14397: 31.625, + 14398: 68.5, + 14399: 28, + 144: 55.75, + 1440: 46.5, + 14400: 51.25, + 14401: 34, + 14402: 63, + 14403: 41, + 14404: 57, + 14405: 52.25, + 14406: 62.00000000000001, + 14407: 29.375, + 14408: 85.5, + 14409: 66.5, + 1441: 33.75, + 14410: 40.5, + 14411: 41.25, + 14412: 86, + 14413: 70, + 14414: 59.25, + 14415: 84, + 14416: 13.562, + 14417: 65.5, + 14418: 64.5, + 14419: 49, + 1442: 65, + 14420: 12, + 14421: 65, + 14422: 46, + 14423: 70, + 14424: 52, + 14425: 64.5, + 14426: 65, + 14427: 18.125, + 14428: 28.5, + 14429: 58.75, + 1443: 28.75, + 14430: 71, + 14431: 50.75, + 14432: 62.5, + 14433: 35.75, + 14434: 34.5, + 14435: 23, + 14436: 72.5, + 14437: 38.5, + 14438: 79.5, + 14439: 52.75, + 1444: 45.75, + 14440: 40, + 14441: 77.5, + 14442: 37.75, + 14443: 56.75, + 14444: 37.25, + 14445: 48, + 14446: 81.5, + 14447: 47, + 14448: 78, + 14449: 46, + 1445: 56.25, + 14450: 45, + 14451: 33.75, + 14452: 41.25, + 14453: 59.5, + 14454: 81, + 14455: 59, + 14456: 48.25, + 14457: 41.5, + 14458: 43.5, + 14459: 37.5, + 1446: 38.5, + 14460: 59, + 14461: 56.75, + 14462: 35.75, + 14463: 49.5, + 14464: 27.5, + 14465: 52.00000000000001, + 14466: 0.867, + 14467: 55.5, + 14468: 84.5, + 14469: 57, + 1447: 52, + 14470: 45, + 14471: 61.75, + 14472: 17, + 14473: 35, + 14474: 54, + 14475: 38.5, + 14476: 44.5, + 14477: 35, + 14478: 24.375, + 14479: 71.5, + 1448: 57.25, + 14480: 51.00000000000001, + 14481: 55.25, + 14482: 33.75, + 14483: 80, + 14484: 25.75, + 14485: 55.5, + 14486: 44, + 14487: 88.5, + 14488: 30.625, + 14489: 46.49999999999999, + 1449: 64, + 14490: 51.75, + 14491: 67, + 14492: 130, + 14493: 19.125, + 14494: 88.5, + 14495: 18.875, + 14496: 56, + 14497: 44, + 14498: 17.25, + 14499: 79, + 145: 64.49999999999999, + 1450: 59.25, + 14500: 55.5, + 14501: 54, + 14502: 45, + 14503: 63, + 14504: 50.75, + 14505: 52.5, + 14506: 96.99999999999999, + 14507: 35, + 14508: 58, + 14509: 31.875, + 1451: 43.25, + 14510: 28.625000000000004, + 14511: 44.25, + 14512: 54.75, + 14513: 58.25, + 14514: 38, + 14515: 70.5, + 14516: 52.5, + 14517: 79, + 14518: 18.625, + 14519: 0, + 1452: 57.5, + 14520: 32.25, + 14521: 37, + 14522: 55, + 14523: 64.5, + 14524: 84, + 14525: 66, + 14526: 59.25, + 14527: 67.5, + 14528: 39.75, + 14529: 44, + 1453: 45.75, + 14530: 33.75, + 14531: 42.5, + 14532: 97, + 14533: 32.25, + 14534: 49.75, + 14535: 68, + 14536: 56.25, + 14537: 65, + 14538: 42, + 14539: 57, + 1454: 71, + 14540: 41.25, + 14541: 23.75, + 14542: 46.5, + 14543: 52.5, + 14544: 43.25, + 14545: 20.875, + 14546: 31.625, + 14547: 70, + 14548: 64, + 14549: 47.25, + 1455: 66, + 14550: 45.5, + 14551: 59, + 14552: 34.25, + 14553: 105, + 14554: 56.5, + 14555: 45.75, + 14556: 58.5, + 14557: 90.5, + 14558: 36.25, + 14559: 73, + 1456: 65, + 14560: 35.25, + 14561: 142, + 14562: 42.25000000000001, + 14563: 59.5, + 14564: 70.5, + 14565: 36.75, + 14566: 46.5, + 14567: 69, + 14568: 29, + 14569: 68, + 1457: 82, + 14570: 82, + 14571: 41.75, + 14572: 28.750000000000004, + 14573: 52, + 14574: 24, + 14575: 48.25, + 14576: 63.75, + 14577: 57, + 14578: 89.5, + 14579: 49.25, + 1458: 89.5, + 14580: 63, + 14581: 49.5, + 14582: 43.5, + 14583: 64, + 14584: 24.5, + 14585: 50.75, + 14586: 71, + 14587: 108.00000000000001, + 14588: 58.25, + 14589: 55.25, + 1459: 44, + 14590: 51.5, + 14591: 34.75, + 14592: 61.5, + 14593: 46.25000000000001, + 14594: 19, + 14595: 44.5, + 14596: 56.99999999999999, + 14597: 56.75, + 14598: 39.5, + 14599: 79.5, + 146: 75, + 1460: 22.75, + 14600: 52.25, + 14601: 64.5, + 14602: 69, + 14603: 84, + 14604: 69, + 14605: 57.25, + 14606: 27.75, + 14607: 47.25, + 14608: 73, + 14609: 15.812, + 1461: 64.5, + 14610: 33.5, + 14611: 33.25, + 14612: 46.75, + 14613: 37, + 14614: 6.688, + 14615: 75, + 14616: 40.25, + 14617: 55, + 14618: 47.5, + 14619: 16.75, + 1462: 34.25, + 14620: 44.75, + 14621: 51, + 14622: 33.75, + 14623: 33, + 14624: 51, + 14625: 94.5, + 14626: 58.75, + 14627: 35.5, + 14628: 77.5, + 14629: 60.25, + 1463: 31, + 14630: 17.75, + 14631: 51.5, + 14632: 13.25, + 14633: 43, + 14634: 37.25, + 14635: 70, + 14636: 62.5, + 14637: 18.75, + 14638: 46, + 14639: 41.5, + 1464: 62, + 14640: 29.5, + 14641: 54.5, + 14642: 77.5, + 14643: 52.25, + 14644: 65.5, + 14645: 42, + 14646: 33.25, + 14647: 43.5, + 14648: 84, + 14649: 54.25, + 1465: 72.5, + 14650: 99.5, + 14651: 53, + 14652: 86.5, + 14653: 63.25, + 14654: 54.75, + 14655: 45.75, + 14656: 47, + 14657: 41.75, + 14658: 43.25, + 14659: 75, + 1466: 58, + 14660: 44.5, + 14661: 72, + 14662: 20.25, + 14663: 63, + 14664: 52.5, + 14665: 60.25, + 14666: 63.75, + 14667: 43.5, + 14668: 48, + 14669: 70, + 1467: 55.75, + 14670: 43.5, + 14671: 12.688, + 14672: 42.75, + 14673: 58, + 14674: 24.375, + 14675: 51.25, + 14676: 37.5, + 14677: 34.25, + 14678: 64, + 14679: 70.5, + 1468: 64.5, + 14680: 34.5, + 14681: 69, + 14682: 39.25, + 14683: 68.5, + 14684: 55.25, + 14685: 128, + 14686: 41.75, + 14687: 37, + 14688: 32.75, + 14689: 58, + 1469: 65, + 14690: 43.75, + 14691: 62.25, + 14692: 46.5, + 14693: 63.75000000000001, + 14694: 34.5, + 14695: 31.25, + 14696: 72, + 14697: 62.25, + 14698: 64.5, + 14699: 59.25, + 147: 54.75, + 1470: 69.5, + 14700: 18.875, + 14701: 50, + 14702: 22.125, + 14703: 24.25, + 14704: 44, + 14705: 85.5, + 14706: 60.5, + 14707: 72.5, + 14708: 46.75, + 14709: 69.5, + 1471: 112.5, + 14710: 65, + 14711: 80.5, + 14712: 40.5, + 14713: 53.75, + 14714: 25.375, + 14715: 78, + 14716: 46.25, + 14717: 52, + 14718: 63.25, + 14719: 66, + 1472: 24.375, + 14720: 44.25, + 14721: 15.188, + 14722: 86, + 14723: 58, + 14724: 48.5, + 14725: 59.5, + 14726: 49, + 14727: 75, + 14728: 119.5, + 14729: 80, + 1473: 133, + 14730: 53.5, + 14731: 56.75, + 14732: 24.25, + 14733: 76, + 14734: 36.75, + 14735: 40.25, + 14736: 67, + 14737: 28.625, + 14738: 89.5, + 14739: 58.5, + 1474: 45, + 14740: 32.5, + 14741: 17.5, + 14742: 63, + 14743: 50.25, + 14744: 72, + 14745: 113, + 14746: 48.5, + 14747: 17, + 14748: 40.75, + 14749: 51.5, + 1475: 62.25000000000001, + 14750: 73.5, + 14751: 58.75000000000001, + 14752: 72, + 14753: 90.50000000000001, + 14754: 81, + 14755: 36, + 14756: 35.5, + 14757: 79, + 14758: 51.25, + 14759: 62.75, + 1476: 68, + 14760: 52.25, + 14761: 47.50000000000001, + 14762: 50.75, + 14763: 95.5, + 14764: 21.875, + 14765: 48.25, + 14766: 48.5, + 14767: 50.75, + 14768: 35.5, + 14769: 10.188, + 1477: 40, + 14770: 84.5, + 14771: 40.5, + 14772: 63.24999999999999, + 14773: 40.25, + 14774: 18, + 14775: 36.5, + 14776: 121.5, + 14777: 19.375, + 14778: 59.75, + 14779: 123.5, + 1478: 36.25, + 14780: 33.25, + 14781: 33.75, + 14782: 65.5, + 14783: 67, + 14784: 77.5, + 14785: 40, + 14786: 21.875, + 14787: 40.25000000000001, + 14788: 62.75, + 14789: 39, + 1479: 52.25, + 14790: 50.75, + 14791: 54.75, + 14792: 57.75, + 14793: 112, + 14794: 35.5, + 14795: 50.24999999999999, + 14796: 23.499999999999996, + 14797: 72.5, + 14798: 15.25, + 14799: 47.75, + 148: 83, + 1480: 69, + 14800: 55, + 14801: 24.499999999999996, + 14802: 63.75, + 14803: 53.74999999999999, + 14804: 75.5, + 14805: 57.25, + 14806: 41, + 14807: 52.75, + 14808: 40.25, + 14809: 42.75, + 1481: 50.75, + 14810: 98, + 14811: 60.50000000000001, + 14812: 54, + 14813: 54.5, + 14814: 61, + 14815: 43.25, + 14816: 70, + 14817: 53, + 14818: 79.5, + 14819: 51.75, + 1482: 54.5, + 14820: 35.5, + 14821: 51.75, + 14822: 58.75, + 14823: 113.50000000000001, + 14824: 44.75, + 14825: 11.062, + 14826: 50.75, + 14827: 72.5, + 14828: 54, + 14829: 48.25, + 1483: 95, + 14830: 68, + 14831: 28.375, + 14832: 53.25, + 14833: 51.00000000000001, + 14834: 67, + 14835: 39, + 14836: 70.5, + 14837: 76.5, + 14838: 69, + 14839: 54.99999999999999, + 1484: 46, + 14840: 0, + 14841: 44.75, + 14842: 29.249999999999996, + 14843: 24, + 14844: 76, + 14845: 43.25, + 14846: 61.25, + 14847: 11.438, + 14848: 72.5, + 14849: 62.5, + 1485: 39.75, + 14850: 38.5, + 14851: 25.375, + 14852: 26.375, + 14853: 57.99999999999999, + 14854: 21.75, + 14855: 62, + 14856: 78.5, + 14857: 45.5, + 14858: 110.5, + 14859: 52.5, + 1486: 18.125, + 14860: 37.75, + 14861: 42.5, + 14862: 30.75, + 14863: 85.5, + 14864: 46.75, + 14865: 25.875, + 14866: 64.5, + 14867: 35.25, + 14868: 40.25000000000001, + 14869: 33.75, + 1487: 36.5, + 14870: 55.75000000000001, + 14871: 41.25, + 14872: 45.75, + 14873: 65.5, + 14874: 53.75, + 14875: 66.5, + 14876: 61.75, + 14877: 61.50000000000001, + 14878: 61.5, + 14879: 47.5, + 1488: 72.5, + 14880: 53, + 14881: 65, + 14882: 77.5, + 14883: 60.25, + 14884: 67, + 14885: 71, + 14886: 47.25, + 14887: 30.75, + 14888: 84.00000000000001, + 14889: 43, + 1489: 43.75, + 14890: 35.5, + 14891: 29.5, + 14892: 45, + 14893: 35, + 14894: 20, + 14895: 123.5, + 14896: 52.75, + 14897: 27.75, + 14898: 53.75, + 14899: 55, + 149: 73.5, + 1490: 72, + 14900: 58.5, + 14901: 68, + 14902: 25.25, + 14903: 76, + 14904: 22.125, + 14905: 55.5, + 14906: 61.5, + 14907: 44.25, + 14908: 8.938, + 14909: 31.500000000000004, + 1491: 115.5, + 14910: 73.5, + 14911: 104, + 14912: 73.5, + 14913: 6.188, + 14914: 40, + 14915: 63.25, + 14916: 51, + 14917: 51.5, + 14918: 50, + 14919: 12.561999999999998, + 1492: 70, + 14920: 69, + 14921: 36.5, + 14922: 44.5, + 14923: 54, + 14924: 37.5, + 14925: 56.5, + 14926: 46.25, + 14927: 49, + 14928: 43.5, + 14929: 38.75, + 1493: 69.5, + 14930: 82.5, + 14931: 62.5, + 14932: 40, + 14933: 42.75, + 14934: 81.5, + 14935: 89.5, + 14936: 67.5, + 14937: 41.5, + 14938: 48.5, + 14939: 36, + 1494: 40.75, + 14940: 72, + 14941: 48.5, + 14942: 44.75, + 14943: 46.5, + 14944: 36.75, + 14945: 57.25, + 14946: 34, + 14947: 59.25, + 14948: 84.50000000000001, + 14949: 52.75, + 1495: 25, + 14950: 46, + 14951: 50, + 14952: 38, + 14953: 59, + 14954: 52, + 14955: 78, + 14956: 33.5, + 14957: 59.75, + 14958: 45.75, + 14959: 36.25, + 1496: 16.125, + 14960: 76.5, + 14961: 31.875000000000004, + 14962: 37, + 14963: 78.5, + 14964: 25.5, + 14965: 53.25, + 14966: 28.375, + 14967: 72, + 14968: 50.5, + 14969: 62.5, + 1497: 71.5, + 14970: 38.5, + 14971: 46, + 14972: 72, + 14973: 52.5, + 14974: 49, + 14975: 44.75, + 14976: 80.5, + 14977: 86, + 14978: 61.99999999999999, + 14979: 48, + 1498: 129, + 14980: 65, + 14981: 50.25000000000001, + 14982: 48.5, + 14983: 38.75, + 14984: 69, + 14985: 57.75, + 14986: 46.75, + 14987: 59.25, + 14988: 38.25, + 14989: 77, + 1499: 140, + 14990: 48, + 14991: 23.625, + 14992: 44, + 14993: 21.125, + 14994: 53.75, + 14995: 20.5, + 14996: 38, + 14997: 63.75, + 14998: 54.75, + 14999: 28.125, + 15: 40.75, + 150: 126, + 1500: 38.25, + 15000: 31.375, + 15001: 22.375, + 15002: 11.562, + 15003: 34.75, + 15004: 71, + 15005: 55.75, + 15006: 32, + 15007: 48, + 15008: 74, + 15009: 25.375, + 1501: 54.75, + 15010: 40.25, + 15011: 44.75, + 15012: 29.25, + 15013: 75.5, + 15014: 23.875, + 15015: 55.25, + 15016: 61.5, + 15017: 69.5, + 15018: 40.25, + 15019: 68, + 1502: 76.5, + 15020: 46.74999999999999, + 15021: 63.99999999999999, + 15022: 64.5, + 15023: 88, + 15024: 63.75, + 15025: 45.5, + 15026: 42, + 15027: 64, + 15028: 67.5, + 15029: 55.25, + 1503: 19.5, + 15030: 73.5, + 15031: 57.25, + 15032: 57.75, + 15033: 47.50000000000001, + 15034: 30, + 15035: 30.5, + 15036: 72.5, + 15037: 49, + 15038: 44, + 15039: 47.75, + 1504: 40.25, + 15040: 61.75, + 15041: 74.5, + 15042: 7.406, + 15043: 27.375, + 15044: 53, + 15045: 42.75, + 15046: 58.75, + 15047: 49.75, + 15048: 29.875, + 15049: 48.25, + 1505: 70.5, + 15050: 110.5, + 15051: 40.25, + 15052: 47.25, + 15053: 29.374999999999996, + 15054: 63.25, + 15055: 73, + 15056: 45.75, + 15057: 47.5, + 15058: 38.5, + 15059: 50.25, + 1506: 52.5, + 15060: 24.625000000000004, + 15061: 75, + 15062: 89, + 15063: 49.5, + 15064: 56.75, + 15065: 54, + 15066: 29.25, + 15067: 98.5, + 15068: 20, + 15069: 56, + 1507: 43, + 15070: 95, + 15071: 38.25, + 15072: 39.5, + 15073: 52.75, + 15074: 62.75, + 15075: 59.25, + 15076: 43.75, + 15077: 29.5, + 15078: 17.875, + 15079: 41.25, + 1508: 67, + 15080: 41, + 15081: 35.75, + 15082: 18.625, + 15083: 47.25, + 15084: 81, + 15085: 72, + 15086: 57.24999999999999, + 15087: 50, + 15088: 34.5, + 15089: 43, + 1509: 53, + 15090: 58.75, + 15091: 59.25000000000001, + 15092: 39.75, + 15093: 57.5, + 15094: 65.5, + 15095: 69.5, + 15096: 45.75, + 15097: 41, + 15098: 25.625, + 15099: 38.75, + 151: 25.5, + 1510: 75, + 15100: 67, + 15101: 63, + 15102: 10.188, + 15103: 46.5, + 15104: 53.5, + 15105: 59.5, + 15106: 35.5, + 15107: 46.25, + 15108: 48.5, + 15109: 64, + 1511: 11.188, + 15110: 47.5, + 15111: 77.5, + 15112: 52, + 15113: 63.5, + 15114: 121, + 15115: 37.25, + 15116: 46.5, + 15117: 71.5, + 15118: 25.5, + 15119: 53.5, + 1512: 72.5, + 15120: 72, + 15121: 42.75, + 15122: 75, + 15123: 34.25, + 15124: 84.5, + 15125: 36.75, + 15126: 93, + 15127: 49.25, + 15128: 76.5, + 15129: 58, + 1513: 43.5, + 15130: 33.75, + 15131: 46, + 15132: 10.75, + 15133: 52.5, + 15134: 74.5, + 15135: 83.5, + 15136: 53.75, + 15137: 67.5, + 15138: 66.5, + 15139: 124.5, + 1514: 37.5, + 15140: 56.75, + 15141: 70, + 15142: 53, + 15143: 30.375, + 15144: 43.75, + 15145: 73.5, + 15146: 56.25, + 15147: 47.75, + 15148: 23.625, + 15149: 33.5, + 1515: 58.5, + 15150: 81, + 15151: 49.75, + 15152: 44, + 15153: 48, + 15154: 69, + 15155: 29.75, + 15156: 65, + 15157: 78.5, + 15158: 70.5, + 15159: 59.75, + 1516: 67, + 15160: 17.75, + 15161: 33.5, + 15162: 49.75, + 15163: 33.75000000000001, + 15164: 73, + 15165: 55, + 15166: 66.5, + 15167: 65, + 15168: 33.75, + 15169: 53.5, + 1517: 67, + 15170: 129, + 15171: 60.5, + 15172: 65, + 15173: 52.25, + 15174: 97, + 15175: 28.625, + 15176: 20.125, + 15177: 43.5, + 15178: 43.25, + 15179: 71.5, + 1518: 45, + 15180: 54.25, + 15181: 56.5, + 15182: 46.25, + 15183: 78.5, + 15184: 37.25, + 15185: 56.5, + 15186: 78, + 15187: 51.75, + 15188: 41.25, + 15189: 51.75, + 1519: 76, + 15190: 71.5, + 15191: 48, + 15192: 27.75, + 15193: 65.5, + 15194: 54.25, + 15195: 59, + 15196: 21.5, + 15197: 57.25, + 15198: 49, + 15199: 62.49999999999999, + 152: 63.49999999999999, + 1520: 78, + 15200: 58.99999999999999, + 15201: 53.25, + 15202: 10.625, + 15203: 54.75, + 15204: 57.5, + 15205: 66, + 15206: 41.5, + 15207: 84.5, + 15208: 57, + 15209: 80.5, + 1521: 52.25, + 15210: 55.25000000000001, + 15211: 24.375, + 15212: 32.5, + 15213: 48.50000000000001, + 15214: 29.625, + 15215: 81, + 15216: 67, + 15217: 54.25, + 15218: 66.5, + 15219: 54.25, + 1522: 53.75, + 15220: 31.375, + 15221: 147, + 15222: 56.25, + 15223: 118.5, + 15224: 17.125, + 15225: 45.25000000000001, + 15226: 68.5, + 15227: 63.75, + 15228: 59.75, + 15229: 42.5, + 1523: 80, + 15230: 23.375, + 15231: 51.75, + 15232: 50.5, + 15233: 39.5, + 15234: 32.75, + 15235: 54.25, + 15236: 89.5, + 15237: 42.25, + 15238: 49.5, + 15239: 60, + 1524: 60, + 15240: 45.5, + 15241: 60, + 15242: 46.25, + 15243: 36.75, + 15244: 30.75, + 15245: 59.99999999999999, + 15246: 46.49999999999999, + 15247: 75.5, + 15248: 91.5, + 15249: 34.25, + 1525: 60.25, + 15250: 54.50000000000001, + 15251: 58.75, + 15252: 56.25, + 15253: 77.5, + 15254: 69, + 15255: 51.25, + 15256: 18.125, + 15257: 63.5, + 15258: 72, + 15259: 59.75, + 1526: 82.5, + 15260: 57.25, + 15261: 17.125, + 15262: 70, + 15263: 32, + 15264: 7.905999999999999, + 15265: 61.25, + 15266: 50.25, + 15267: 45, + 15268: 47.5, + 15269: 51, + 1527: 52.75, + 15270: 90, + 15271: 48, + 15272: 74, + 15273: 79, + 15274: 29.125, + 15275: 80.5, + 15276: 35.25, + 15277: 63.5, + 15278: 98, + 15279: 75.5, + 1528: 37, + 15280: 68.5, + 15281: 66.5, + 15282: 52.75, + 15283: 49.25, + 15284: 13.688, + 15285: 48.25, + 15286: 45.25, + 15287: 31.000000000000004, + 15288: 27.875, + 15289: 48.5, + 1529: 60.5, + 15290: 29.5, + 15291: 68.49999999999999, + 15292: 65, + 15293: 35.75, + 15294: 25.875000000000004, + 15295: 78.5, + 15296: 47.75, + 15297: 49, + 15298: 72.5, + 15299: 47.5, + 153: 73, + 1530: 69.5, + 15300: 40.25, + 15301: 38, + 15302: 53.25, + 15303: 66, + 15304: 24.875, + 15305: 67.5, + 15306: 51.25, + 15307: 81, + 15308: 52.5, + 15309: 38.75, + 1531: 74, + 15310: 65.5, + 15311: 66, + 15312: 41, + 15313: 121, + 15314: 64.5, + 15315: 41.5, + 15316: 51.75, + 15317: 51.5, + 15318: 20.5, + 15319: 72, + 1532: 39.75, + 15320: 48, + 15321: 20.25, + 15322: 62, + 15323: 74.5, + 15324: 66, + 15325: 70.5, + 15326: 88.5, + 15327: 28.375, + 15328: 39.75, + 15329: 21, + 1533: 63.25, + 15330: 51.49999999999999, + 15331: 65, + 15332: 32.5, + 15333: 56.75, + 15334: 73, + 15335: 37.75, + 15336: 80.5, + 15337: 29.5, + 15338: 0, + 15339: 80, + 1534: 68, + 15340: 56.5, + 15341: 41, + 15342: 66, + 15343: 43.5, + 15344: 74, + 15345: 47.25, + 15346: 43, + 15347: 52.25, + 15348: 55.5, + 15349: 73, + 1535: 46, + 15350: 63.25, + 15351: 87, + 15352: 50.75, + 15353: 69.5, + 15354: 50.75, + 15355: 44.75, + 15356: 44.5, + 15357: 34, + 15358: 57.75, + 15359: 84, + 1536: 63, + 15360: 48.75, + 15361: 48.75, + 15362: 42.75, + 15363: 45.75, + 15364: 38.75, + 15365: 45.5, + 15366: 28.5, + 15367: 61.75000000000001, + 15368: 39, + 15369: 13.437999999999999, + 1537: 51.5, + 15370: 52.5, + 15371: 38.5, + 15372: 52.5, + 15373: 21.625, + 15374: 46.25, + 15375: 54.5, + 15376: 30.250000000000004, + 15377: 37, + 15378: 53, + 15379: 20.25, + 1538: 83, + 15380: 21, + 15381: 53.5, + 15382: 33.5, + 15383: 72.5, + 15384: 47.5, + 15385: 52.75, + 15386: 52.75, + 15387: 27.375, + 15388: 12.188, + 15389: 35, + 1539: 58.25, + 15390: 54.75, + 15391: 56.25, + 15392: 144, + 15393: 119, + 15394: 55.25, + 15395: 59.49999999999999, + 15396: 81, + 15397: 42.5, + 15398: 61, + 15399: 30.25, + 154: 51.5, + 1540: 57.75, + 15400: 48, + 15401: 23.375, + 15402: 44.75, + 15403: 35, + 15404: 74, + 15405: 44, + 15406: 46.25, + 15407: 129, + 15408: 41.5, + 15409: 99.5, + 1541: 52.5, + 15410: 67.5, + 15411: 61.75, + 15412: 72, + 15413: 58.75000000000001, + 15414: 72.5, + 15415: 75, + 15416: 30, + 15417: 53, + 15418: 64.5, + 15419: 81, + 1542: 78.5, + 15420: 41, + 15421: 69.5, + 15422: 50, + 15423: 44, + 15424: 32.25, + 15425: 46.49999999999999, + 15426: 29.125, + 15427: 67, + 15428: 31.625, + 15429: 61.75, + 1543: 43, + 15430: 62, + 15431: 40.75, + 15432: 93.5, + 15433: 68.5, + 15434: 38, + 15435: 36.75, + 15436: 72.5, + 15437: 41.25, + 15438: 29.875, + 15439: 65.5, + 1544: 55.5, + 15440: 64.5, + 15441: 30.25, + 15442: 57.25, + 15443: 74.5, + 15444: 69.5, + 15445: 69, + 15446: 74.5, + 15447: 32.75, + 15448: 94, + 15449: 27.75, + 1545: 94, + 15450: 50.75, + 15451: 65.5, + 15452: 62, + 15453: 52.75, + 15454: 74.5, + 15455: 29.5, + 15456: 56.5, + 15457: 34, + 15458: 37, + 15459: 59, + 1546: 46.25000000000001, + 15460: 123, + 15461: 54.5, + 15462: 46.5, + 15463: 59.75, + 15464: 22.125, + 15465: 123.5, + 15466: 51, + 15467: 78, + 15468: 54.25000000000001, + 15469: 59.5, + 1547: 46.49999999999999, + 15470: 23.875, + 15471: 60, + 15472: 35, + 15473: 78, + 15474: 26.125, + 15475: 63, + 15476: 0, + 15477: 57.75, + 15478: 50, + 15479: 36.5, + 1548: 46.74999999999999, + 15480: 26, + 15481: 65.5, + 15482: 60, + 15483: 35.25, + 15484: 64.5, + 15485: 32.25, + 15486: 36.25, + 15487: 26.5, + 15488: 0, + 15489: 26.875, + 1549: 60.5, + 15490: 19, + 15491: 64.5, + 15492: 35.75, + 15493: 65, + 15494: 30.5, + 15495: 28.499999999999996, + 15496: 39, + 15497: 58.75, + 15498: 53.25, + 15499: 77.00000000000001, + 155: 61.25, + 1550: 31.5, + 15500: 42.75, + 15501: 61, + 15502: 44.75, + 15503: 62.00000000000001, + 15504: 50.5, + 15505: 51.75, + 15506: 66.5, + 15507: 49.25, + 15508: 44.25, + 15509: 53.75, + 1551: 19.499999999999996, + 15510: 66, + 15511: 49.5, + 15512: 51, + 15513: 93, + 15514: 62.75000000000001, + 15515: 127.5, + 15516: 63.25, + 15517: 42, + 15518: 61.75, + 15519: 67.5, + 1552: 55.75, + 15520: 27.125, + 15521: 46.25, + 15522: 58, + 15523: 20.375, + 15524: 48.25, + 15525: 64.5, + 15526: 69, + 15527: 73.5, + 15528: 34.75, + 15529: 50.99999999999999, + 1553: 33, + 15530: 75, + 15531: 20.125, + 15532: 64, + 15533: 48, + 15534: 78.5, + 15535: 61, + 15536: 30.749999999999996, + 15537: 57.75, + 15538: 13.312, + 15539: 51, + 1554: 40, + 15540: 68.5, + 15541: 45.5, + 15542: 53.5, + 15543: 46, + 15544: 41.25, + 15545: 53.5, + 15546: 59.75, + 15547: 51, + 15548: 48.74999999999999, + 15549: 38, + 1555: 156, + 15550: 46, + 15551: 56.99999999999999, + 15552: 36.75, + 15553: 86, + 15554: 61.25, + 15555: 54.5, + 15556: 63.24999999999999, + 15557: 62.74999999999999, + 15558: 106.5, + 15559: 94, + 1556: 21, + 15560: 74, + 15561: 27.25, + 15562: 71, + 15563: 62.49999999999999, + 15564: 62, + 15565: 17.875, + 15566: 66, + 15567: 79.5, + 15568: 53, + 15569: 77.5, + 1557: 78, + 15570: 24.75, + 15571: 40.75, + 15572: 62.5, + 15573: 37, + 15574: 26.500000000000004, + 15575: 33, + 15576: 37, + 15577: 11.5, + 15578: 51.25, + 15579: 22.25, + 1558: 53, + 15580: 61.5, + 1559: 48.25, + 156: 98, + 1560: 40.75, + 1561: 9.188, + 1562: 80, + 1563: 78.5, + 1564: 42.25, + 1565: 51.75, + 1566: 51, + 1567: 76.5, + 1568: 68, + 1569: 47, + 157: 92.00000000000001, + 1570: 53.25, + 1571: 54.5, + 1572: 45, + 1573: 13.312, + 1574: 73.5, + 1575: 31.625, + 1576: 36.75, + 1577: 117, + 1578: 33.5, + 1579: 50.5, + 158: 49.25, + 1580: 50.25, + 1581: 39.75, + 1582: 56, + 1583: 53, + 1584: 45.74999999999999, + 1585: 28.5, + 1586: 56.25, + 1587: 61.5, + 1588: 67, + 1589: 46.75, + 159: 39.5, + 1590: 88, + 1591: 77, + 1592: 76, + 1593: 68, + 1594: 75, + 1595: 62.25, + 1596: 40.49999999999999, + 1597: 133, + 1598: 94.5, + 1599: 67, + 16: 118.5, + 160: 59.75000000000001, + 1600: 54.5, + 1601: 58.75, + 1602: 26.875, + 1603: 13.999999999999998, + 1604: 61.50000000000001, + 1605: 53.49999999999999, + 1606: 67.5, + 1607: 39.75, + 1608: 60.5, + 1609: 56.99999999999999, + 161: 71, + 1610: 67, + 1611: 59.75, + 1612: 68, + 1613: 23.875, + 1614: 35.5, + 1615: 52, + 1616: 23.875, + 1617: 0, + 1618: 28.125, + 1619: 58, + 162: 51.25, + 1620: 69, + 1621: 34.25, + 1622: 36.25, + 1623: 50, + 1624: 27.875, + 1625: 48.5, + 1626: 66.5, + 1627: 70, + 1628: 46.75, + 1629: 34.75, + 163: 51, + 1630: 80, + 1631: 42.25, + 1632: 81.5, + 1633: 40.25000000000001, + 1634: 53, + 1635: 82, + 1636: 36.25, + 1637: 61.99999999999999, + 1638: 26.375, + 1639: 73.5, + 164: 37.5, + 1640: 44, + 1641: 43, + 1642: 39, + 1643: 61.5, + 1644: 30, + 1645: 35, + 1646: 18.75, + 1647: 43.00000000000001, + 1648: 82, + 1649: 62.5, + 165: 68, + 1650: 42.75, + 1651: 60.75, + 1652: 50.25, + 1653: 44.75, + 1654: 55.25, + 1655: 30.25, + 1656: 24.25, + 1657: 26.875, + 1658: 34, + 1659: 47, + 166: 85.5, + 1660: 55.75, + 1661: 66, + 1662: 41.5, + 1663: 62.5, + 1664: 29.624999999999996, + 1665: 60.5, + 1666: 22.25, + 1667: 63.5, + 1668: 80, + 1669: 37.75, + 167: 26.625, + 1670: 27.5, + 1671: 53, + 1672: 75, + 1673: 40.5, + 1674: 41.75, + 1675: 59.25000000000001, + 1676: 43.75, + 1677: 57.25, + 1678: 73, + 1679: 58.25, + 168: 31, + 1680: 73, + 1681: 33, + 1682: 49.5, + 1683: 53.75, + 1684: 55.25, + 1685: 88, + 1686: 114, + 1687: 85.5, + 1688: 72.5, + 1689: 45, + 169: 58, + 1690: 27.375, + 1691: 62.5, + 1692: 55.25, + 1693: 57, + 1694: 68, + 1695: 13.438, + 1696: 38.5, + 1697: 67, + 1698: 47, + 1699: 74.5, + 17: 60, + 170: 124, + 1700: 44, + 1701: 86.5, + 1702: 28.25, + 1703: 45.25000000000001, + 1704: 40.75, + 1705: 68, + 1706: 46.25, + 1707: 49, + 1708: 13.875, + 1709: 111, + 171: 42.25, + 1710: 71.5, + 1711: 80, + 1712: 28.5, + 1713: 29.375, + 1714: 26.25, + 1715: 60.75, + 1716: 77.5, + 1717: 129, + 1718: 90.5, + 1719: 41, + 172: 29.75, + 1720: 68, + 1721: 116.5, + 1722: 30.874999999999996, + 1723: 68, + 1724: 38.5, + 1725: 73.5, + 1726: 49.75, + 1727: 118.5, + 1728: 86, + 1729: 45.25, + 173: 90.5, + 1730: 65, + 1731: 70.5, + 1732: 115, + 1733: 47, + 1734: 75.5, + 1735: 68, + 1736: 39.75, + 1737: 14.562, + 1738: 62.25, + 1739: 65, + 174: 40, + 1740: 41, + 1741: 63.25000000000001, + 1742: 47, + 1743: 51.25, + 1744: 54.75000000000001, + 1745: 63.25, + 1746: 60.75, + 1747: 55.5, + 1748: 40.75, + 1749: 45.25, + 175: 42.5, + 1750: 51.5, + 1751: 57, + 1752: 54.5, + 1753: 65.5, + 1754: 49.5, + 1755: 20.125, + 1756: 70.5, + 1757: 73, + 1758: 58.75000000000001, + 1759: 81, + 176: 53, + 1760: 46.5, + 1761: 59.25, + 1762: 53.25, + 1763: 42, + 1764: 70, + 1765: 66, + 1766: 54, + 1767: 52, + 1768: 37, + 1769: 75, + 177: 30.5, + 1770: 54.25, + 1771: 73, + 1772: 14.562, + 1773: 25.625, + 1774: 69, + 1775: 56, + 1776: 79.5, + 1777: 30.125, + 1778: 71, + 1779: 63.75, + 178: 0, + 1780: 66.5, + 1781: 87.5, + 1782: 60.25, + 1783: 31.625, + 1784: 9.438, + 1785: 46.25, + 1786: 75, + 1787: 37, + 1788: 38, + 1789: 38.5, + 179: 55, + 1790: 51.25, + 1791: 44.75, + 1792: 66.5, + 1793: 63, + 1794: 83.5, + 1795: 69, + 1796: 46.25, + 1797: 43.25, + 1798: 13.688, + 1799: 55.75, + 18: 69.5, + 180: 69, + 1800: 13.75, + 1801: 20.5, + 1802: 50, + 1803: 122.5, + 1804: 36.5, + 1805: 29.625, + 1806: 73, + 1807: 36.5, + 1808: 65.5, + 1809: 70.5, + 181: 64.5, + 1810: 58.24999999999999, + 1811: 45.5, + 1812: 48.25, + 1813: 90.5, + 1814: 63, + 1815: 58.5, + 1816: 41.75, + 1817: 42.25, + 1818: 35.5, + 1819: 69.5, + 182: 80, + 1820: 34, + 1821: 60.50000000000001, + 1822: 34.75, + 1823: 85.5, + 1824: 66.5, + 1825: 72, + 1826: 35.75, + 1827: 39.75, + 1828: 43.75, + 1829: 64, + 183: 68.5, + 1830: 18.875, + 1831: 56, + 1832: 44.75, + 1833: 34.75, + 1834: 33.75, + 1835: 34.75, + 1836: 41.75, + 1837: 62, + 1838: 52.75, + 1839: 55, + 184: 57, + 1840: 38.25, + 1841: 75.5, + 1842: 53.75, + 1843: 24.125, + 1844: 70, + 1845: 52, + 1846: 75, + 1847: 51, + 1848: 28.125, + 1849: 85.5, + 185: 25.75, + 1850: 49, + 1851: 60.5, + 1852: 77, + 1853: 45.5, + 1854: 66, + 1855: 34.5, + 1856: 73, + 1857: 8.312, + 1858: 74.5, + 1859: 62.75, + 186: 49.25, + 1860: 71, + 1861: 52, + 1862: 85.5, + 1863: 58.5, + 1864: 22.75, + 1865: 59, + 1866: 39, + 1867: 50, + 1868: 59.75000000000001, + 1869: 30.5, + 187: 30.25, + 1870: 61, + 1871: 56.5, + 1872: 49.25, + 1873: 72, + 1874: 59.75, + 1875: 65.5, + 1876: 78.5, + 1877: 54.25, + 1878: 37.25, + 1879: 65.5, + 188: 38.25, + 1880: 55.25, + 1881: 13.312, + 1882: 15.75, + 1883: 58.25, + 1884: 55, + 1885: 51.75, + 1886: 89.5, + 1887: 70, + 1888: 52.75, + 1889: 45, + 189: 31.25, + 1890: 71, + 1891: 35.25, + 1892: 40.5, + 1893: 54.99999999999999, + 1894: 57.5, + 1895: 24.75, + 1896: 65.5, + 1897: 55.24999999999999, + 1898: 57.75, + 1899: 14.562, + 19: 44.5, + 190: 46.5, + 1900: 59.75, + 1901: 63, + 1902: 30.875, + 1903: 51.25, + 1904: 33, + 1905: 66, + 1906: 46.25, + 1907: 59.5, + 1908: 67, + 1909: 71, + 191: 46.5, + 1910: 59, + 1911: 58.75, + 1912: 96, + 1913: 35.25, + 1914: 58.25, + 1915: 40.49999999999999, + 1916: 75, + 1917: 35.25, + 1918: 42.75, + 1919: 49.75, + 192: 113, + 1920: 73.5, + 1921: 55, + 1922: 49.25, + 1923: 42, + 1924: 52, + 1925: 53.5, + 1926: 66.5, + 1927: 50, + 1928: 72.5, + 1929: 61.25, + 193: 62, + 1930: 44.25, + 1931: 54.5, + 1932: 68.5, + 1933: 73, + 1934: 88, + 1935: 62.75, + 1936: 94.5, + 1937: 23.625, + 1938: 45, + 1939: 46, + 194: 58.5, + 1940: 45, + 1941: 42, + 1942: 28.625000000000004, + 1943: 46.75, + 1944: 47.5, + 1945: 55.49999999999999, + 1946: 39.75, + 1947: 73.5, + 1948: 54, + 1949: 48.25, + 195: 63.99999999999999, + 1950: 58.25, + 1951: 76, + 1952: 71, + 1953: 70.5, + 1954: 57.5, + 1955: 47.5, + 1956: 62, + 1957: 37, + 1958: 39.5, + 1959: 56.74999999999999, + 196: 58.25000000000001, + 1960: 57.75, + 1961: 65, + 1962: 43.5, + 1963: 11.5, + 1964: 54.49999999999999, + 1965: 43.75, + 1966: 38.25, + 1967: 68.5, + 1968: 63.75, + 1969: 58.25, + 197: 59.5, + 1970: 59.75, + 1971: 48.75, + 1972: 29.875, + 1973: 64, + 1974: 24.625, + 1975: 54.5, + 1976: 40.25, + 1977: 59.5, + 1978: 81, + 1979: 48.75, + 198: 69.5, + 1980: 57.25, + 1981: 62.75, + 1982: 23.125, + 1983: 80.5, + 1984: 52.75, + 1985: 73, + 1986: 113.5, + 1987: 36.5, + 1988: 58.5, + 1989: 65, + 199: 4.781, + 1990: 44.25, + 1991: 20.25, + 1992: 53.5, + 1993: 53.00000000000001, + 1994: 58.5, + 1995: 65.5, + 1996: 48.25, + 1997: 0, + 1998: 38, + 1999: 34.5, + 2: 46.75, + 20: 56.49999999999999, + 200: 59, + 2000: 67.5, + 2001: 69, + 2002: 60.5, + 2003: 83, + 2004: 16.75, + 2005: 35.25, + 2006: 65, + 2007: 40, + 2008: 61.5, + 2009: 40.25, + 201: 64.5, + 2010: 69.5, + 2011: 39.5, + 2012: 43, + 2013: 48, + 2014: 30.499999999999996, + 2015: 46.25, + 2016: 54.00000000000001, + 2017: 40.5, + 2018: 40.5, + 2019: 45.5, + 202: 71, + 2020: 97, + 2021: 36, + 2022: 48, + 2023: 75.5, + 2024: 64, + 2025: 83.5, + 2026: 29.375, + 2027: 125.5, + 2028: 69, + 2029: 23.25, + 203: 54.25, + 2030: 63.25, + 2031: 38.25, + 2032: 31.125, + 2033: 44, + 2034: 59.25, + 2035: 35, + 2036: 128, + 2037: 36.5, + 2038: 35, + 2039: 18, + 204: 67.5, + 2040: 103, + 2041: 109.5, + 2042: 51.5, + 2043: 52.75, + 2044: 50.75, + 2045: 22.25, + 2046: 92.00000000000001, + 2047: 57.25, + 2048: 122.5, + 2049: 23.25, + 205: 1.227, + 2050: 37.25, + 2051: 51.25, + 2052: 55.75, + 2053: 66, + 2054: 52.25, + 2055: 160, + 2056: 41.5, + 2057: 55.5, + 2058: 69.5, + 2059: 58.5, + 206: 24.375, + 2060: 36.75, + 2061: 72.5, + 2062: 36.5, + 2063: 58, + 2064: 13.75, + 2065: 72, + 2066: 58.75, + 2067: 54.25000000000001, + 2068: 26.625, + 2069: 51.25, + 207: 35.25, + 2070: 48, + 2071: 65, + 2072: 16, + 2073: 34.5, + 2074: 23.25, + 2075: 72.5, + 2076: 29.125, + 2077: 48, + 2078: 37.25, + 2079: 44.25, + 208: 73, + 2080: 50, + 2081: 19, + 2082: 62.5, + 2083: 36.5, + 2084: 76, + 2085: 40, + 2086: 40.75, + 2087: 71.5, + 2088: 15.875, + 2089: 63.75, + 209: 60.5, + 2090: 76, + 2091: 70, + 2092: 76, + 2093: 75, + 2094: 53, + 2095: 43.5, + 2096: 31, + 2097: 83.5, + 2098: 82, + 2099: 47.25, + 21: 42.75, + 210: 83.5, + 2100: 79.5, + 2101: 68.5, + 2102: 60.25, + 2103: 77, + 2104: 81, + 2105: 54.5, + 2106: 45.75, + 2107: 37.5, + 2108: 18.375, + 2109: 57.5, + 211: 50, + 2110: 12.562, + 2111: 38.75, + 2112: 83.5, + 2113: 79.5, + 2114: 56.75, + 2115: 29.25, + 2116: 52, + 2117: 47.5, + 2118: 43.5, + 2119: 44.25, + 212: 34.75, + 2120: 69.5, + 2121: 48.75, + 2122: 43, + 2123: 57.25, + 2124: 40.25, + 2125: 36.25, + 2126: 26, + 2127: 32.5, + 2128: 61.5, + 2129: 19.125000000000004, + 213: 58.75, + 2130: 58.5, + 2131: 66, + 2132: 48.5, + 2133: 51.25, + 2134: 63.25, + 2135: 49.75, + 2136: 49.25, + 2137: 65.5, + 2138: 48.25, + 2139: 42.5, + 214: 17.625, + 2140: 15.5, + 2141: 51.74999999999999, + 2142: 58.75, + 2143: 52, + 2144: 27.25, + 2145: 61.75, + 2146: 25.375, + 2147: 22.625, + 2148: 18.25, + 2149: 69.50000000000001, + 215: 43.25, + 2150: 62, + 2151: 69, + 2152: 48.5, + 2153: 104, + 2154: 46.99999999999999, + 2155: 26.125, + 2156: 70, + 2157: 31.5, + 2158: 42.5, + 2159: 72, + 216: 49, + 2160: 24, + 2161: 78.5, + 2162: 61, + 2163: 49.75, + 2164: 26.75, + 2165: 61.5, + 2166: 70.5, + 2167: 50.25, + 2168: 71, + 2169: 49.5, + 217: 39.49999999999999, + 2170: 67.5, + 2171: 76.5, + 2172: 45, + 2173: 53.00000000000001, + 2174: 37, + 2175: 73, + 2176: 69.5, + 2177: 42.5, + 2178: 47.5, + 2179: 54, + 218: 72, + 2180: 45, + 2181: 33, + 2182: 69.5, + 2183: 76, + 2184: 68, + 2185: 54, + 2186: 104, + 2187: 65, + 2188: 46.5, + 2189: 68.5, + 219: 68, + 2190: 43.5, + 2191: 65.5, + 2192: 49.75, + 2193: 43.75, + 2194: 75.5, + 2195: 56.75, + 2196: 52, + 2197: 54, + 2198: 32.75, + 2199: 47, + 22: 81.5, + 220: 35.75, + 2200: 72, + 2201: 79.5, + 2202: 57.25, + 2203: 44.25, + 2204: 66, + 2205: 59.5, + 2206: 54.25, + 2207: 55.75, + 2208: 81, + 2209: 55.75, + 221: 70.5, + 2210: 65.5, + 2211: 48, + 2212: 50.25, + 2213: 49.75, + 2214: 99.5, + 2215: 72.5, + 2216: 76, + 2217: 58.75000000000001, + 2218: 52.5, + 2219: 36.75, + 222: 95.5, + 2220: 44.75, + 2221: 79, + 2222: 77.5, + 2223: 47, + 2224: 83.5, + 2225: 62.5, + 2226: 87, + 2227: 71, + 2228: 59.25, + 2229: 14.688, + 223: 79.5, + 2230: 54.75, + 2231: 70.5, + 2232: 59.5, + 2233: 147, + 2234: 55, + 2235: 78.5, + 2236: 28.75, + 2237: 53.5, + 2238: 63, + 2239: 47.75, + 224: 36.25, + 2240: 58, + 2241: 74.5, + 2242: 48.5, + 2243: 55.25, + 2244: 47.25, + 2245: 10.562, + 2246: 84.5, + 2247: 45.75, + 2248: 58.75, + 2249: 64, + 225: 57.24999999999999, + 2250: 53, + 2251: 46.75, + 2252: 49.75, + 2253: 95, + 2254: 50, + 2255: 49.75, + 2256: 59.25, + 2257: 86, + 2258: 28.25, + 2259: 19.625, + 226: 63.25, + 2260: 51.25, + 2261: 73, + 2262: 77, + 2263: 66, + 2264: 50.5, + 2265: 75.5, + 2266: 42.25, + 2267: 45.25, + 2268: 40.75, + 2269: 52.25000000000001, + 227: 36.5, + 2270: 55, + 2271: 82.5, + 2272: 85, + 2273: 57.5, + 2274: 67.5, + 2275: 10.938, + 2276: 60.74999999999999, + 2277: 77.00000000000001, + 2278: 20.375, + 2279: 11.125, + 228: 35.25, + 2280: 70, + 2281: 61, + 2282: 41.75, + 2283: 45, + 2284: 40.5, + 2285: 65, + 2286: 69, + 2287: 52.25, + 2288: 64, + 2289: 59.75, + 229: 66, + 2290: 68, + 2291: 7.656, + 2292: 74.5, + 2293: 59.25, + 2294: 38, + 2295: 46.75, + 2296: 49.5, + 2297: 68, + 2298: 66, + 2299: 51.25, + 23: 34.25, + 230: 9.938, + 2300: 21.5, + 2301: 160, + 2302: 46, + 2303: 28.5, + 2304: 19.375, + 2305: 53.5, + 2306: 33.25, + 2307: 60.25, + 2308: 80, + 2309: 61.25, + 231: 65.5, + 2310: 26.25, + 2311: 35.75, + 2312: 61.5, + 2313: 49, + 2314: 64.5, + 2315: 56.75, + 2316: 26.875, + 2317: 47, + 2318: 72.5, + 2319: 46, + 232: 0, + 2320: 58.25, + 2321: 84.00000000000001, + 2322: 122.5, + 2323: 32.75, + 2324: 52.75, + 2325: 75, + 2326: 45.5, + 2327: 38.25, + 2328: 68, + 2329: 22.375, + 233: 30.25, + 2330: 72, + 2331: 41.25, + 2332: 82, + 2333: 63, + 2334: 79.5, + 2335: 70, + 2336: 64.5, + 2337: 48.5, + 2338: 43, + 2339: 75.5, + 234: 53, + 2340: 50, + 2341: 70.5, + 2342: 72.5, + 2343: 27.875, + 2344: 74.5, + 2345: 18.625, + 2346: 71.5, + 2347: 62.25, + 2348: 60.25, + 2349: 66, + 235: 45, + 2350: 53, + 2351: 45.75, + 2352: 50.75, + 2353: 93, + 2354: 62.25000000000001, + 2355: 79.5, + 2356: 61.25, + 2357: 16.25, + 2358: 76, + 2359: 68, + 236: 60.25, + 2360: 52.75, + 2361: 60, + 2362: 43.5, + 2363: 39.25, + 2364: 35.25, + 2365: 59.25000000000001, + 2366: 68, + 2367: 60.5, + 2368: 53.25, + 2369: 68, + 237: 49.75, + 2370: 54.75, + 2371: 62, + 2372: 69.5, + 2373: 57.75, + 2374: 58.25, + 2375: 34.75, + 2376: 45.25, + 2377: 50.75, + 2378: 71.5, + 2379: 62, + 238: 56.5, + 2380: 62.5, + 2381: 58.25, + 2382: 79.5, + 2383: 51.75, + 2384: 70, + 2385: 68.5, + 2386: 70.5, + 2387: 55.25, + 2388: 43.5, + 2389: 64, + 239: 78.5, + 2390: 58, + 2391: 33.5, + 2392: 36.5, + 2393: 75.5, + 2394: 23.375, + 2395: 40.25, + 2396: 39, + 2397: 71, + 2398: 85, + 2399: 35.25, + 24: 58.25, + 240: 36.75, + 2400: 43.25, + 2401: 48, + 2402: 84, + 2403: 58.99999999999999, + 2404: 60, + 2405: 56.25, + 2406: 65.5, + 2407: 50.25, + 2408: 41, + 2409: 60.75, + 241: 36.75, + 2410: 60.75, + 2411: 55.5, + 2412: 32.75, + 2413: 60.50000000000001, + 2414: 63.25000000000001, + 2415: 51, + 2416: 45.5, + 2417: 47.75, + 2418: 30.625, + 2419: 60.5, + 242: 30.625, + 2420: 48.25, + 2421: 45.5, + 2422: 61, + 2423: 63.5, + 2424: 45, + 2425: 57.5, + 2426: 58.5, + 2427: 36.25, + 2428: 68, + 2429: 53, + 243: 66, + 2430: 43.25, + 2431: 20.125, + 2432: 57.25, + 2433: 59.25, + 2434: 54.75, + 2435: 59.74999999999999, + 2436: 66.5, + 2437: 67.5, + 2438: 61.5, + 2439: 85.5, + 244: 39.5, + 2440: 122.5, + 2441: 68.5, + 2442: 45, + 2443: 60.75, + 2444: 52.75, + 2445: 73, + 2446: 49.5, + 2447: 44.75, + 2448: 37, + 2449: 80.5, + 245: 54, + 2450: 24.375, + 2451: 30.75, + 2452: 46.49999999999999, + 2453: 51.75, + 2454: 59, + 2455: 77, + 2456: 62.5, + 2457: 50.25, + 2458: 35.5, + 2459: 54, + 246: 76, + 2460: 61.99999999999999, + 2461: 70.5, + 2462: 36.5, + 2463: 47.75, + 2464: 45, + 2465: 26.625, + 2466: 62.5, + 2467: 99, + 2468: 77.5, + 2469: 38.25, + 247: 21.75, + 2470: 26.125, + 2471: 133, + 2472: 89.5, + 2473: 80, + 2474: 45, + 2475: 122, + 2476: 66.5, + 2477: 59.75000000000001, + 2478: 51.75, + 2479: 62, + 248: 53.5, + 2480: 36.75, + 2481: 43, + 2482: 62.49999999999999, + 2483: 78.5, + 2484: 46.25, + 2485: 36, + 2486: 67.5, + 2487: 65.5, + 2488: 29.625, + 2489: 50.75, + 249: 55, + 2490: 51.75, + 2491: 56.25, + 2492: 42.5, + 2493: 27.375, + 2494: 42.25, + 2495: 44.25, + 2496: 39, + 2497: 56.5, + 2498: 53.74999999999999, + 2499: 76, + 25: 53.5, + 250: 49.75, + 2500: 158, + 2501: 26.5, + 2502: 30.375, + 2503: 39.49999999999999, + 2504: 48.75, + 2505: 66, + 2506: 35.75, + 2507: 64.5, + 2508: 27.125, + 2509: 48, + 251: 60.5, + 2510: 28.625000000000004, + 2511: 62, + 2512: 33.5, + 2513: 42, + 2514: 57.25, + 2515: 58.75, + 2516: 20.125, + 2517: 73, + 2518: 63.25, + 2519: 54.75, + 252: 58, + 2520: 38.5, + 2521: 78, + 2522: 84.5, + 2523: 32.5, + 2524: 42.5, + 2525: 61.74999999999999, + 2526: 68, + 2527: 30.75, + 2528: 45.25, + 2529: 23, + 253: 79, + 2530: 23.25, + 2531: 127.5, + 2532: 49, + 2533: 55.25, + 2534: 96, + 2535: 54.75, + 2536: 33, + 2537: 100.5, + 2538: 101.49999999999999, + 2539: 54.25, + 254: 73, + 2540: 47.25, + 2541: 60.25, + 2542: 55.75, + 2543: 51.5, + 2544: 48.75, + 2545: 0, + 2546: 56.75, + 2547: 39.75, + 2548: 80.5, + 2549: 63.75, + 255: 29.625, + 2550: 24.375, + 2551: 101, + 2552: 56, + 2553: 63.25000000000001, + 2554: 45, + 2555: 21.625, + 2556: 41.5, + 2557: 87, + 2558: 49.25, + 2559: 47, + 256: 56, + 2560: 60, + 2561: 53.75, + 2562: 53.75, + 2563: 67.5, + 2564: 48, + 2565: 17.375, + 2566: 60.5, + 2567: 53.75, + 2568: 42.74999999999999, + 2569: 62, + 257: 52.25, + 2570: 56.75, + 2571: 59.25, + 2572: 57.75, + 2573: 46.5, + 2574: 72, + 2575: 74.5, + 2576: 107.5, + 2577: 54, + 2578: 53.25, + 2579: 126, + 258: 118.5, + 2580: 66, + 2581: 51.75, + 2582: 58, + 2583: 76, + 2584: 61.5, + 2585: 62.5, + 2586: 34.25, + 2587: 48, + 2588: 59.25, + 2589: 32.75, + 259: 96, + 2590: 72.5, + 2591: 36.75, + 2592: 66, + 2593: 56.5, + 2594: 13.375, + 2595: 27.374999999999996, + 2596: 49.99999999999999, + 2597: 58.75, + 2598: 84.50000000000001, + 2599: 72, + 26: 51, + 260: 71.5, + 2600: 28.125, + 2601: 38, + 2602: 48, + 2603: 50, + 2604: 27.875, + 2605: 35, + 2606: 108.5, + 2607: 59.00000000000001, + 2608: 38.24999999999999, + 2609: 46.5, + 261: 72, + 2610: 96, + 2611: 39.75, + 2612: 37.5, + 2613: 63, + 2614: 48, + 2615: 45.5, + 2616: 83, + 2617: 0, + 2618: 53.75, + 2619: 38.5, + 262: 43.75, + 2620: 28.375, + 2621: 44.25, + 2622: 57.5, + 2623: 83.5, + 2624: 29.125, + 2625: 74.5, + 2626: 43.5, + 2627: 38, + 2628: 14.124999999999998, + 2629: 41, + 263: 62.25, + 2630: 63.5, + 2631: 44.25, + 2632: 12.312, + 2633: 69.5, + 2634: 72.5, + 2635: 55.25, + 2636: 110.5, + 2637: 45.5, + 2638: 69.5, + 2639: 25.5, + 264: 60.25, + 2640: 65, + 2641: 50.75, + 2642: 39.5, + 2643: 60.25, + 2644: 12.938, + 2645: 58, + 2646: 59.25, + 2647: 32.75, + 2648: 56.25, + 2649: 28.499999999999996, + 265: 76.5, + 2650: 40.25, + 2651: 62.25, + 2652: 44.5, + 2653: 73.5, + 2654: 38.25, + 2655: 38.5, + 2656: 25.75, + 2657: 53.25, + 2658: 100, + 2659: 76.5, + 266: 69.5, + 2660: 53.5, + 2661: 42.75, + 2662: 85.99999999999999, + 2663: 54.5, + 2664: 42.75, + 2665: 53, + 2666: 67.5, + 2667: 73.5, + 2668: 75.50000000000001, + 2669: 46, + 267: 56.5, + 2670: 48.5, + 2671: 80, + 2672: 90.5, + 2673: 50.75, + 2674: 53.25, + 2675: 40, + 2676: 62.00000000000001, + 2677: 105.5, + 2678: 137, + 2679: 54.75, + 268: 78.5, + 2680: 48.75000000000001, + 2681: 64.5, + 2682: 63.25, + 2683: 39.75, + 2684: 116, + 2685: 57.25, + 2686: 46.75, + 2687: 43.5, + 2688: 77.5, + 2689: 56.75, + 269: 63.5, + 2690: 49, + 2691: 61.25, + 2692: 30.25, + 2693: 81, + 2694: 82, + 2695: 55, + 2696: 51, + 2697: 44, + 2698: 37.5, + 2699: 45.75, + 27: 10.5, + 270: 91.5, + 2700: 54.25, + 2701: 72.5, + 2702: 55.5, + 2703: 84.5, + 2704: 49.75, + 2705: 55, + 2706: 47.75, + 2707: 77.5, + 2708: 41.5, + 2709: 28.875000000000004, + 271: 71, + 2710: 80.5, + 2711: 38, + 2712: 74.5, + 2713: 57, + 2714: 48, + 2715: 38.25, + 2716: 57.5, + 2717: 59.75, + 2718: 123, + 2719: 39, + 272: 75.5, + 2720: 23.375, + 2721: 76.5, + 2722: 62.75, + 2723: 73.5, + 2724: 29.875, + 2725: 66, + 2726: 41.5, + 2727: 77, + 2728: 32.75, + 2729: 22.25, + 273: 71, + 2730: 48.25, + 2731: 78, + 2732: 63.00000000000001, + 2733: 15.562, + 2734: 71.5, + 2735: 38.75, + 2736: 55.5, + 2737: 41.75, + 2738: 54, + 2739: 61.25, + 274: 124.5, + 2740: 70, + 2741: 63.5, + 2742: 62.25, + 2743: 53.25, + 2744: 90.5, + 2745: 59.25, + 2746: 65.5, + 2747: 38.75, + 2748: 55.00000000000001, + 2749: 28.25, + 275: 56.5, + 2750: 36.75, + 2751: 71.5, + 2752: 37.25, + 2753: 44.25, + 2754: 37, + 2755: 22.75, + 2756: 50.25, + 2757: 63.25, + 2758: 98.5, + 2759: 54.5, + 276: 25, + 2760: 26.375, + 2761: 80, + 2762: 53, + 2763: 50.5, + 2764: 55.5, + 2765: 42.75, + 2766: 64, + 2767: 48.25, + 2768: 45, + 2769: 72, + 277: 48.75, + 2770: 39.75, + 2771: 50.75, + 2772: 35, + 2773: 89.5, + 2774: 73, + 2775: 34.75, + 2776: 64.5, + 2777: 30.125, + 2778: 20.125, + 2779: 67.5, + 278: 34, + 2780: 82.5, + 2781: 63.5, + 2782: 14.625, + 2783: 52, + 2784: 61, + 2785: 38, + 2786: 45.25, + 2787: 54, + 2788: 74.5, + 2789: 59, + 279: 60.75, + 2790: 33, + 2791: 18, + 2792: 75, + 2793: 61.75, + 2794: 72, + 2795: 54, + 2796: 39.5, + 2797: 56.25, + 2798: 59, + 2799: 57.5, + 28: 83.5, + 280: 24, + 2800: 76, + 2801: 21.75, + 2802: 56.5, + 2803: 58.25, + 2804: 58, + 2805: 0, + 2806: 71.5, + 2807: 45.75, + 2808: 46.5, + 2809: 22.875, + 281: 18.875, + 2810: 68.5, + 2811: 69.5, + 2812: 51.5, + 2813: 33.5, + 2814: 87, + 2815: 59, + 2816: 20.75, + 2817: 33, + 2818: 49.5, + 2819: 72, + 282: 46, + 2820: 46.75, + 2821: 80, + 2822: 74.5, + 2823: 50.25, + 2824: 86, + 2825: 17.875, + 2826: 38.5, + 2827: 20.125, + 2828: 92.49999999999999, + 2829: 84, + 283: 41.75, + 2830: 0.73, + 2831: 89, + 2832: 71.5, + 2833: 24.125, + 2834: 71.5, + 2835: 45, + 2836: 70, + 2837: 69, + 2838: 48.25, + 2839: 58.25, + 284: 12.188, + 2840: 79, + 2841: 71.5, + 2842: 54.5, + 2843: 68.5, + 2844: 53, + 2845: 9.688, + 2846: 32.75, + 2847: 31.875, + 2848: 62.75, + 2849: 52.75, + 285: 73, + 2850: 53.25, + 2851: 67.5, + 2852: 70, + 2853: 37.5, + 2854: 52.5, + 2855: 34.5, + 2856: 51.25, + 2857: 124.5, + 2858: 65.5, + 2859: 43.25, + 286: 57.5, + 2860: 59.74999999999999, + 2861: 62.24999999999999, + 2862: 59.5, + 2863: 64.5, + 2864: 46.75000000000001, + 2865: 40.25, + 2866: 47.25, + 2867: 13.938, + 2868: 73.5, + 2869: 60.5, + 287: 86.5, + 2870: 40.5, + 2871: 50, + 2872: 34.25, + 2873: 50.25, + 2874: 66, + 2875: 9.438, + 2876: 39, + 2877: 31.75, + 2878: 57.75, + 2879: 79.5, + 288: 51.75, + 2880: 57.5, + 2881: 58, + 2882: 49.75, + 2883: 26.875, + 2884: 42, + 2885: 53.75, + 2886: 56.75, + 2887: 65, + 2888: 41.75, + 2889: 26.125, + 289: 51.00000000000001, + 2890: 86, + 2891: 59.75, + 2892: 22, + 2893: 29.125, + 2894: 74, + 2895: 34.5, + 2896: 51, + 2897: 49.5, + 2898: 75, + 2899: 74, + 29: 38.25, + 290: 78.5, + 2900: 59, + 2901: 40.5, + 2902: 34, + 2903: 76, + 2904: 13.874999999999998, + 2905: 69.5, + 2906: 100.5, + 2907: 54.75, + 2908: 32.75, + 2909: 30.875, + 291: 68, + 2910: 41.5, + 2911: 57.5, + 2912: 44, + 2913: 27.75, + 2914: 108.5, + 2915: 70, + 2916: 30.75, + 2917: 24.75, + 2918: 68.5, + 2919: 116.5, + 292: 28.125, + 2920: 28.375, + 2921: 83, + 2922: 40.5, + 2923: 26.375000000000004, + 2924: 50.25, + 2925: 54.25, + 2926: 46, + 2927: 47, + 2928: 53, + 2929: 61, + 293: 35.75, + 2930: 39.75, + 2931: 26.125, + 2932: 65.5, + 2933: 60.25, + 2934: 10.938, + 2935: 61.25, + 2936: 67, + 2937: 70, + 2938: 63.5, + 2939: 101, + 294: 74.5, + 2940: 61.5, + 2941: 77.5, + 2942: 44.75, + 2943: 15.125000000000002, + 2944: 79, + 2945: 36.25, + 2946: 43, + 2947: 21.75, + 2948: 76, + 2949: 62.25, + 295: 65, + 2950: 70.5, + 2951: 55.75, + 2952: 43.25, + 2953: 51.25, + 2954: 38.5, + 2955: 58.25, + 2956: 80, + 2957: 31.625, + 2958: 46.5, + 2959: 72, + 296: 70.5, + 2960: 38.25, + 2961: 62.5, + 2962: 61.75, + 2963: 66.5, + 2964: 56.25, + 2965: 22.75, + 2966: 61.24999999999999, + 2967: 59.25, + 2968: 72.5, + 2969: 68.5, + 297: 44.25, + 2970: 64.5, + 2971: 57.5, + 2972: 45.75, + 2973: 48.5, + 2974: 23.874999999999996, + 2975: 56.75, + 2976: 40.25, + 2977: 39, + 2978: 49.5, + 2979: 41.5, + 298: 68, + 2980: 47.75, + 2981: 59, + 2982: 58.49999999999999, + 2983: 80.50000000000001, + 2984: 50, + 2985: 32.75, + 2986: 84.5, + 2987: 49.75, + 2988: 56, + 2989: 40.25, + 299: 80, + 2990: 62.75, + 2991: 55, + 2992: 57.5, + 2993: 70.5, + 2994: 56, + 2995: 64, + 2996: 23.75, + 2997: 54.5, + 2998: 55, + 2999: 32.25, + 3: 35.75, + 30: 13.688, + 300: 37.75, + 3000: 35.25, + 3001: 75.5, + 3002: 29.75, + 3003: 54.5, + 3004: 65.5, + 3005: 60, + 3006: 63, + 3007: 56.25, + 3008: 54.25, + 3009: 45.5, + 301: 46, + 3010: 59, + 3011: 50.5, + 3012: 46, + 3013: 65, + 3014: 15.249999999999998, + 3015: 26.375, + 3016: 108.5, + 3017: 72.5, + 3018: 33.5, + 3019: 37.25, + 302: 51.5, + 3020: 63, + 3021: 44, + 3022: 112.5, + 3023: 18.25, + 3024: 22.749999999999993, + 3025: 21.375, + 3026: 46, + 3027: 28.999999999999996, + 3028: 110.5, + 3029: 19.875, + 303: 37, + 3030: 25.875, + 3031: 54.75, + 3032: 35, + 3033: 65, + 3034: 42.25000000000001, + 3035: 52.75, + 3036: 72.5, + 3037: 42.75, + 3038: 47.5, + 3039: 38, + 304: 48.75, + 3040: 71.5, + 3041: 57, + 3042: 78, + 3043: 98, + 3044: 36.75, + 3045: 58, + 3046: 26.5, + 3047: 27.5, + 3048: 38.5, + 3049: 38.5, + 305: 16.75, + 3050: 32.75, + 3051: 40.75, + 3052: 44.25, + 3053: 72, + 3054: 94, + 3055: 52.75, + 3056: 56.75, + 3057: 64.5, + 3058: 84.5, + 3059: 33.5, + 306: 71.5, + 3060: 15.125, + 3061: 67, + 3062: 44.5, + 3063: 57.5, + 3064: 57.75, + 3065: 69.5, + 3066: 25.875, + 3067: 70, + 3068: 37.75, + 3069: 75.5, + 307: 58.75, + 3070: 41, + 3071: 64.5, + 3072: 61.24999999999999, + 3073: 112.5, + 3074: 46, + 3075: 71, + 3076: 73.5, + 3077: 25.875, + 3078: 30.499999999999996, + 3079: 53.75, + 308: 40.75, + 3080: 73.5, + 3081: 84.5, + 3082: 60.5, + 3083: 27, + 3084: 55.75, + 3085: 24.625, + 3086: 22.5, + 3087: 79.5, + 3088: 25.875, + 3089: 66.5, + 309: 62.25, + 3090: 37, + 3091: 61, + 3092: 21.5, + 3093: 28.375000000000004, + 3094: 40.25, + 3095: 26.75, + 3096: 65, + 3097: 58.25, + 3098: 51.5, + 3099: 56.25, + 31: 40.25000000000001, + 310: 28.500000000000004, + 3100: 72, + 3101: 51.25, + 3102: 27.5, + 3103: 60.50000000000001, + 3104: 54.50000000000001, + 3105: 57.5, + 3106: 56.5, + 3107: 40.75, + 3108: 69, + 3109: 54.5, + 311: 52.25, + 3110: 60, + 3111: 46.25, + 3112: 28.999999999999996, + 3113: 44.5, + 3114: 53.75, + 3115: 16.375, + 3116: 56.75, + 3117: 96.5, + 3118: 34.25, + 3119: 27.75, + 312: 80.5, + 3120: 74, + 3121: 108.5, + 3122: 53.5, + 3123: 51.75000000000001, + 3124: 54.75, + 3125: 44.25, + 3126: 70.5, + 3127: 63.5, + 3128: 44.5, + 3129: 53.5, + 313: 35, + 3130: 68, + 3131: 149, + 3132: 79.5, + 3133: 37.25, + 3134: 66.5, + 3135: 67, + 3136: 29.875, + 3137: 74, + 3138: 59, + 3139: 115, + 314: 55.25, + 3140: 52.5, + 3141: 46.5, + 3142: 87, + 3143: 69.5, + 3144: 48.25, + 3145: 44.25, + 3146: 51.5, + 3147: 39.75, + 3148: 53.25, + 3149: 54.5, + 315: 54, + 3150: 37.25, + 3151: 128, + 3152: 30.625, + 3153: 82, + 3154: 54.25, + 3155: 42.25, + 3156: 86.49999999999999, + 3157: 31.125, + 3158: 14.061999999999998, + 3159: 60, + 316: 69.5, + 3160: 24.125, + 3161: 64, + 3162: 24.75, + 3163: 44.5, + 3164: 21.5, + 3165: 63.75, + 3166: 33.75, + 3167: 68, + 3168: 69.5, + 3169: 39.25, + 317: 51.25, + 3170: 52.75, + 3171: 73.5, + 3172: 59.25, + 3173: 56.75, + 3174: 52.25, + 3175: 56.5, + 3176: 40.75, + 3177: 46, + 3178: 62.49999999999999, + 3179: 45, + 318: 32.75, + 3180: 22.125, + 3181: 49.25, + 3182: 55.75, + 3183: 110.50000000000001, + 3184: 71, + 3185: 50.75, + 3186: 50, + 3187: 22.875, + 3188: 40, + 3189: 48.25, + 319: 76, + 3190: 45.25, + 3191: 48.25, + 3192: 50.75, + 3193: 49.5, + 3194: 52.75, + 3195: 120, + 3196: 49, + 3197: 38.75, + 3198: 26.5, + 3199: 10.812, + 32: 50, + 320: 63.50000000000001, + 3200: 54.5, + 3201: 40.5, + 3202: 38, + 3203: 42, + 3204: 76, + 3205: 66, + 3206: 54.5, + 3207: 39.5, + 3208: 111, + 3209: 20.5, + 321: 48.75, + 3210: 58.25, + 3211: 66.5, + 3212: 32.5, + 3213: 41.5, + 3214: 66, + 3215: 54.75, + 3216: 34.5, + 3217: 49.5, + 3218: 74.5, + 3219: 40.5, + 322: 57.75, + 3220: 34.25, + 3221: 45.5, + 3222: 72, + 3223: 55.25, + 3224: 60, + 3225: 55.25, + 3226: 42.5, + 3227: 5.906, + 3228: 59.5, + 3229: 11, + 323: 47.25, + 3230: 26.125, + 3231: 62.75, + 3232: 104, + 3233: 63.25, + 3234: 66, + 3235: 52.99999999999999, + 3236: 34.25, + 3237: 32.5, + 3238: 44.25, + 3239: 68, + 324: 10.375, + 3240: 12.438, + 3241: 82, + 3242: 27.875, + 3243: 21, + 3244: 42.5, + 3245: 53.75, + 3246: 61.25, + 3247: 64.5, + 3248: 74, + 3249: 30, + 325: 62.25, + 3250: 67, + 3251: 33.75, + 3252: 22.5, + 3253: 151, + 3254: 59, + 3255: 53.75, + 3256: 68.5, + 3257: 60.25, + 3258: 18, + 3259: 48.25, + 326: 27.875, + 3260: 3.703, + 3261: 31.625, + 3262: 49, + 3263: 65, + 3264: 45.5, + 3265: 59.25, + 3266: 53, + 3267: 54.49999999999999, + 3268: 29.75, + 3269: 57.25, + 327: 79.5, + 3270: 44.25, + 3271: 38.75000000000001, + 3272: 32.5, + 3273: 61, + 3274: 20.125, + 3275: 40.25, + 3276: 81, + 3277: 67, + 3278: 58, + 3279: 56.75, + 328: 58.5, + 3280: 56, + 3281: 27.5, + 3282: 78, + 3283: 51.5, + 3284: 9.938, + 3285: 78, + 3286: 44.25, + 3287: 60.5, + 3288: 41.5, + 3289: 33.5, + 329: 54.5, + 3290: 43, + 3291: 61, + 3292: 40.5, + 3293: 55.25, + 3294: 71.5, + 3295: 51, + 3296: 110, + 3297: 26.875, + 3298: 37.24999999999999, + 3299: 10.125, + 33: 75, + 330: 39, + 3300: 51.5, + 3301: 20.375, + 3302: 26, + 3303: 124.5, + 3304: 41, + 3305: 72.5, + 3306: 50.75, + 3307: 54.75, + 3308: 56.24999999999999, + 3309: 59.25, + 331: 49.5, + 3310: 8.375, + 3311: 46.75, + 3312: 54, + 3313: 42.50000000000001, + 3314: 90, + 3315: 20.875, + 3316: 30.5, + 3317: 48, + 3318: 54, + 3319: 50.24999999999999, + 332: 85, + 3320: 67.5, + 3321: 96, + 3322: 82.00000000000001, + 3323: 81, + 3324: 100.5, + 3325: 141, + 3326: 58.5, + 3327: 39.25, + 3328: 53.75, + 3329: 56, + 333: 68.5, + 3330: 42.5, + 3331: 60.25, + 3332: 32.75, + 3333: 78, + 3334: 17, + 3335: 60.25, + 3336: 36, + 3337: 16.5, + 3338: 76.5, + 3339: 23.375, + 334: 66.5, + 3340: 46.75, + 3341: 48.5, + 3342: 55.5, + 3343: 51.5, + 3344: 75.5, + 3345: 9.875, + 3346: 51, + 3347: 63.5, + 3348: 9.188, + 3349: 56.99999999999999, + 335: 46.75, + 3350: 55.5, + 3351: 23.625, + 3352: 26.125, + 3353: 22.25, + 3354: 42.5, + 3355: 54.25, + 3356: 26, + 3357: 32.75, + 3358: 64, + 3359: 64.5, + 336: 70, + 3360: 72, + 3361: 0, + 3362: 52.25, + 3363: 44.75, + 3364: 41.75, + 3365: 91.5, + 3366: 56.75, + 3367: 22.5, + 3368: 64.5, + 3369: 49.25, + 337: 46.25, + 3370: 63.5, + 3371: 29.374999999999996, + 3372: 21.625, + 3373: 33, + 3374: 27.5, + 3375: 1.984, + 3376: 43, + 3377: 70.5, + 3378: 51.25, + 3379: 49.25, + 338: 45, + 3380: 52.5, + 3381: 36.5, + 3382: 112, + 3383: 71.5, + 3384: 35.75, + 3385: 126, + 3386: 70, + 3387: 59.75, + 3388: 50.25, + 3389: 21.625, + 339: 125.00000000000001, + 3390: 51, + 3391: 34, + 3392: 68, + 3393: 74, + 3394: 66.5, + 3395: 26, + 3396: 95.5, + 3397: 86.99999999999999, + 3398: 32, + 3399: 54.5, + 34: 27.25, + 340: 40.75, + 3400: 40.25, + 3401: 84.5, + 3402: 55, + 3403: 55.74999999999999, + 3404: 26.875, + 3405: 57, + 3406: 26, + 3407: 78, + 3408: 27.874999999999996, + 3409: 49.5, + 341: 63.75, + 3410: 54, + 3411: 60.25, + 3412: 49.50000000000001, + 3413: 59, + 3414: 89, + 3415: 67.5, + 3416: 66, + 3417: 71.5, + 3418: 40.5, + 3419: 68.5, + 342: 37, + 3420: 24.125, + 3421: 35.25, + 3422: 53.5, + 3423: 14.062, + 3424: 40.5, + 3425: 77, + 3426: 68, + 3427: 35, + 3428: 75, + 3429: 16, + 343: 119.00000000000001, + 3430: 60.5, + 3431: 45, + 3432: 70.5, + 3433: 79, + 3434: 58.75000000000001, + 3435: 49.75, + 3436: 28.375, + 3437: 67, + 3438: 45.75, + 3439: 34, + 344: 50.75, + 3440: 59, + 3441: 45.5, + 3442: 79.5, + 3443: 52, + 3444: 66, + 3445: 48, + 3446: 95.99999999999999, + 3447: 74, + 3448: 81.5, + 3449: 77.99999999999999, + 345: 44.5, + 3450: 66.5, + 3451: 49, + 3452: 29.75, + 3453: 82.5, + 3454: 66, + 3455: 47, + 3456: 55.5, + 3457: 66, + 3458: 67, + 3459: 74.5, + 346: 72.5, + 3460: 33.25, + 3461: 55.5, + 3462: 62.25, + 3463: 36, + 3464: 15.188000000000002, + 3465: 122, + 3466: 74.5, + 3467: 29.25, + 3468: 25.25, + 3469: 81, + 347: 59.25, + 3470: 74.5, + 3471: 21.625, + 3472: 76, + 3473: 71, + 3474: 55.5, + 3475: 51.74999999999999, + 3476: 83, + 3477: 31.249999999999996, + 3478: 60.25, + 3479: 76.5, + 348: 41.5, + 3480: 66, + 3481: 90.5, + 3482: 68, + 3483: 69.5, + 3484: 60.75, + 3485: 49, + 3486: 41, + 3487: 52.75, + 3488: 56, + 3489: 58.25, + 349: 47.25, + 3490: 53, + 3491: 90.5, + 3492: 37.75, + 3493: 61, + 3494: 50.5, + 3495: 53.5, + 3496: 52.75, + 3497: 50, + 3498: 28.25, + 3499: 30.999999999999996, + 35: 55.25, + 350: 49, + 3500: 35, + 3501: 53, + 3502: 22.125, + 3503: 14.311999999999998, + 3504: 15.874999999999998, + 3505: 49.75, + 3506: 75, + 3507: 32, + 3508: 59.25, + 3509: 72.5, + 351: 60.5, + 3510: 39.5, + 3511: 59.75, + 3512: 64, + 3513: 43.75, + 3514: 30.625000000000004, + 3515: 46, + 3516: 84.5, + 3517: 79.5, + 3518: 49.5, + 3519: 58.25, + 352: 52.25, + 3520: 40.75, + 3521: 53, + 3522: 52.25, + 3523: 38.25, + 3524: 17.375, + 3525: 53.75, + 3526: 36.5, + 3527: 50, + 3528: 43.25, + 3529: 48.5, + 353: 65.5, + 3530: 62, + 3531: 85.5, + 3532: 41.5, + 3533: 81, + 3534: 62.25, + 3535: 61, + 3536: 48.25, + 3537: 69.5, + 3538: 33.25, + 3539: 39.25, + 354: 44.25, + 3540: 97.99999999999999, + 3541: 38, + 3542: 128, + 3543: 129, + 3544: 39.25, + 3545: 62, + 3546: 66, + 3547: 79.5, + 3548: 15.312, + 3549: 74, + 355: 51, + 3550: 44.75, + 3551: 85, + 3552: 33.5, + 3553: 47.25, + 3554: 118.5, + 3555: 41.5, + 3556: 60.50000000000001, + 3557: 38.5, + 3558: 78.5, + 3559: 40.25, + 356: 38.75, + 3560: 32.75, + 3561: 111.5, + 3562: 70.5, + 3563: 57.75, + 3564: 52.5, + 3565: 35.5, + 3566: 29.75, + 3567: 133, + 3568: 80.5, + 3569: 119, + 357: 60, + 3570: 63.5, + 3571: 60.25000000000001, + 3572: 41, + 3573: 53.5, + 3574: 55.75, + 3575: 69.5, + 3576: 22, + 3577: 134, + 3578: 43, + 3579: 55.5, + 358: 42.5, + 3580: 51.5, + 3581: 33.25, + 3582: 60.25, + 3583: 38, + 3584: 76, + 3585: 39.99999999999999, + 3586: 50.5, + 3587: 67, + 3588: 35.5, + 3589: 69, + 359: 53.25, + 3590: 90, + 3591: 51.00000000000001, + 3592: 84.00000000000001, + 3593: 46, + 3594: 52.25, + 3595: 51, + 3596: 121, + 3597: 35, + 3598: 50, + 3599: 50.5, + 36: 73, + 360: 48.75, + 3600: 148, + 3601: 83, + 3602: 34.75, + 3603: 89.5, + 3604: 90, + 3605: 85.5, + 3606: 116.49999999999999, + 3607: 21.625, + 3608: 43.5, + 3609: 0, + 361: 133, + 3610: 52, + 3611: 74.5, + 3612: 41.25, + 3613: 47.75, + 3614: 72.5, + 3615: 37, + 3616: 70.5, + 3617: 70.5, + 3618: 101.5, + 3619: 93.5, + 362: 42.75, + 3620: 58.25, + 3621: 20.25, + 3622: 90, + 3623: 52.25000000000001, + 3624: 33.75, + 3625: 47.75, + 3626: 35.25, + 3627: 103, + 3628: 75.5, + 3629: 124.5, + 363: 47, + 3630: 73.5, + 3631: 69.5, + 3632: 104.5, + 3633: 64, + 3634: 19.625, + 3635: 49.25, + 3636: 47.75, + 3637: 14.875, + 3638: 18.875, + 3639: 56.5, + 364: 52, + 3640: 66.5, + 3641: 75, + 3642: 56.50000000000001, + 3643: 65, + 3644: 50, + 3645: 73, + 3646: 70, + 3647: 89, + 3648: 60.5, + 3649: 26.874999999999996, + 365: 140, + 3650: 36.5, + 3651: 26.75, + 3652: 15.250000000000002, + 3653: 67.5, + 3654: 52.5, + 3655: 47.5, + 3656: 84, + 3657: 51.25, + 3658: 93.00000000000001, + 3659: 26.25, + 366: 63.75, + 3660: 45.5, + 3661: 26.5, + 3662: 45.75, + 3663: 59, + 3664: 46.5, + 3665: 69, + 3666: 44, + 3667: 41.75, + 3668: 60.25, + 3669: 90, + 367: 67, + 3670: 34.5, + 3671: 84, + 3672: 59, + 3673: 61.5, + 3674: 78.99999999999999, + 3675: 36.75, + 3676: 46.75, + 3677: 50.75, + 3678: 80.5, + 3679: 60.75000000000001, + 368: 48.75, + 3680: 71, + 3681: 75.5, + 3682: 46.75, + 3683: 75, + 3684: 50.75, + 3685: 123.5, + 3686: 38, + 3687: 46.25, + 3688: 56.75, + 3689: 31.25, + 369: 45.75, + 3690: 117.5, + 3691: 70, + 3692: 80.5, + 3693: 29.375, + 3694: 77.5, + 3695: 31.5, + 3696: 53.75, + 3697: 54.75, + 3698: 48.25, + 3699: 54.25, + 37: 45.5, + 370: 74.5, + 3700: 46.75, + 3701: 67, + 3702: 23.875, + 3703: 44.75, + 3704: 23.125, + 3705: 51.75, + 3706: 74, + 3707: 60.75, + 3708: 32.5, + 3709: 4.094, + 371: 40.25, + 3710: 34, + 3711: 60.25, + 3712: 84, + 3713: 48.75, + 3714: 54.25, + 3715: 48, + 3716: 37.75, + 3717: 39.25, + 3718: 54.75, + 3719: 56.99999999999999, + 372: 81, + 3720: 62.25000000000001, + 3721: 66.5, + 3722: 66, + 3723: 59.75, + 3724: 134, + 3725: 67, + 3726: 50.25, + 3727: 60.25000000000001, + 3728: 59.25000000000001, + 3729: 37.5, + 373: 55.25, + 3730: 56.25, + 3731: 49.75, + 3732: 71.5, + 3733: 59.5, + 3734: 23.75, + 3735: 44.25, + 3736: 68, + 3737: 43, + 3738: 59, + 3739: 71, + 374: 33.5, + 3740: 60.99999999999999, + 3741: 40.5, + 3742: 80.50000000000001, + 3743: 25.625, + 3744: 55.25, + 3745: 55, + 3746: 43.25, + 3747: 82, + 3748: 36.5, + 3749: 110.5, + 375: 52.25, + 3750: 38, + 3751: 39, + 3752: 30, + 3753: 28.125, + 3754: 50.75, + 3755: 57.75000000000001, + 3756: 76, + 3757: 64.5, + 3758: 95.5, + 3759: 104.5, + 376: 62.25, + 3760: 67.5, + 3761: 45.5, + 3762: 73, + 3763: 36.25, + 3764: 45.25, + 3765: 56.5, + 3766: 53.75, + 3767: 74.5, + 3768: 56.5, + 3769: 71.5, + 377: 50, + 3770: 74.5, + 3771: 27.625, + 3772: 58.5, + 3773: 28.625, + 3774: 59.75, + 3775: 32.5, + 3776: 28.625, + 3777: 63.75, + 3778: 23.125, + 3779: 10.438, + 378: 78.5, + 3780: 82.5, + 3781: 38.25, + 3782: 52, + 3783: 73, + 3784: 61.25, + 3785: 41.5, + 3786: 73, + 3787: 61.75000000000001, + 3788: 55.25, + 3789: 51, + 379: 4.156, + 3790: 75, + 3791: 30.875, + 3792: 34.5, + 3793: 72.5, + 3794: 66.5, + 3795: 61, + 3796: 43.25, + 3797: 67, + 3798: 73.5, + 3799: 39.5, + 38: 74, + 380: 63.5, + 3800: 89.5, + 3801: 54, + 3802: 74, + 3803: 38.25, + 3804: 70.5, + 3805: 68, + 3806: 58.25000000000001, + 3807: 75, + 3808: 108, + 3809: 54, + 381: 72.5, + 3810: 70, + 3811: 76.5, + 3812: 56.25, + 3813: 38.75, + 3814: 47, + 3815: 58, + 3816: 31.625, + 3817: 40.25, + 3818: 64, + 3819: 32.5, + 382: 55, + 3820: 59.5, + 3821: 31.875, + 3822: 12.25, + 3823: 40.5, + 3824: 37.75, + 3825: 62.50000000000001, + 3826: 67.5, + 3827: 65, + 3828: 41.5, + 3829: 57.75, + 383: 18.875, + 3830: 55, + 3831: 40, + 3832: 59.25000000000001, + 3833: 51.5, + 3834: 73.5, + 3835: 42.75, + 3836: 143, + 3837: 31.625, + 3838: 54.25, + 3839: 50.75, + 384: 49.5, + 3840: 83, + 3841: 101, + 3842: 0, + 3843: 45.75, + 3844: 26, + 3845: 41, + 3846: 32.25, + 3847: 66, + 3848: 53.99999999999999, + 3849: 72, + 385: 62.75, + 3850: 48.5, + 3851: 67, + 3852: 71.5, + 3853: 62.75, + 3854: 23, + 3855: 55.75000000000001, + 3856: 68, + 3857: 63.25, + 3858: 77.99999999999999, + 3859: 54.75, + 386: 58.75, + 3860: 40.25, + 3861: 38.5, + 3862: 37, + 3863: 79, + 3864: 59.5, + 3865: 34.5, + 3866: 60.25, + 3867: 46, + 3868: 76.5, + 3869: 94, + 387: 45, + 3870: 50, + 3871: 81.5, + 3872: 33.25, + 3873: 55.75, + 3874: 36.25, + 3875: 14.625, + 3876: 89, + 3877: 50.75, + 3878: 80.99999999999999, + 3879: 44.75, + 388: 24.25, + 3880: 56, + 3881: 53.25, + 3882: 58.75, + 3883: 37.75, + 3884: 38, + 3885: 63.5, + 3886: 40, + 3887: 87, + 3888: 62, + 3889: 58.5, + 389: 60.25, + 3890: 77, + 3891: 46.75, + 3892: 66.5, + 3893: 31.625, + 3894: 47, + 3895: 64.5, + 3896: 37, + 3897: 38.5, + 3898: 55.75, + 3899: 78.5, + 39: 49, + 390: 78.5, + 3900: 41.25, + 3901: 67, + 3902: 44.00000000000001, + 3903: 67, + 3904: 38, + 3905: 50.75, + 3906: 48, + 3907: 32.5, + 3908: 60.75, + 3909: 75.5, + 391: 50.75, + 3910: 36.25, + 3911: 43.25, + 3912: 40.25, + 3913: 46.5, + 3914: 38.75, + 3915: 67.5, + 3916: 28.25, + 3917: 54.75, + 3918: 32.25, + 3919: 48.75, + 392: 154, + 3920: 51.5, + 3921: 33.5, + 3922: 46, + 3923: 47.25, + 3924: 105, + 3925: 57, + 3926: 51, + 3927: 81.5, + 3928: 62.25, + 3929: 55.5, + 393: 84, + 3930: 53.75, + 3931: 22.625, + 3932: 39, + 3933: 65, + 3934: 43, + 3935: 85.5, + 3936: 67.50000000000001, + 3937: 38.25, + 3938: 74, + 3939: 32.75, + 394: 57.5, + 3940: 25.25, + 3941: 63.75, + 3942: 36.75, + 3943: 41.25, + 3944: 56.25000000000001, + 3945: 75, + 3946: 23.5, + 3947: 37.25, + 3948: 48.75, + 3949: 38.75, + 395: 56.00000000000001, + 3950: 75.5, + 3951: 72.5, + 3952: 55.5, + 3953: 14.062, + 3954: 61.5, + 3955: 27.375, + 3956: 38, + 3957: 77, + 3958: 49.75, + 3959: 21, + 396: 29.25, + 3960: 80.5, + 3961: 48.24999999999999, + 3962: 53, + 3963: 104.50000000000001, + 3964: 58.75, + 3965: 66.5, + 3966: 31.375, + 3967: 64, + 3968: 60.75, + 3969: 40.75, + 397: 96, + 3970: 37, + 3971: 40.25, + 3972: 41.25, + 3973: 44, + 3974: 78, + 3975: 40.5, + 3976: 67.5, + 3977: 38.75, + 3978: 93, + 3979: 77.5, + 398: 64, + 3980: 48.75, + 3981: 40.75, + 3982: 44.75, + 3983: 50, + 3984: 78.5, + 3985: 49.25, + 3986: 73.5, + 3987: 19.75, + 3988: 49.75, + 3989: 64.5, + 399: 40, + 3990: 63.5, + 3991: 44.5, + 3992: 67, + 3993: 45.25, + 3994: 42, + 3995: 91, + 3996: 63, + 3997: 79.5, + 3998: 74, + 3999: 56.99999999999999, + 4: 58, + 40: 128, + 400: 45, + 4000: 31.625, + 4001: 65.5, + 4002: 50, + 4003: 41, + 4004: 43.25, + 4005: 53, + 4006: 48.75, + 4007: 10.188, + 4008: 100, + 4009: 44.5, + 401: 58.5, + 4010: 32, + 4011: 38.25, + 4012: 60.74999999999999, + 4013: 71, + 4014: 42.25, + 4015: 52.5, + 4016: 64, + 4017: 58, + 4018: 73, + 4019: 46.75, + 402: 42.75, + 4020: 42, + 4021: 87, + 4022: 18.625, + 4023: 68, + 4024: 28.25, + 4025: 48.25, + 4026: 42, + 4027: 52.25, + 4028: 58.24999999999999, + 4029: 47.25, + 403: 67, + 4030: 74.5, + 4031: 50.5, + 4032: 58.75, + 4033: 46.25, + 4034: 52, + 4035: 23.625, + 4036: 68, + 4037: 26, + 4038: 80.5, + 4039: 41.75, + 404: 53.75000000000001, + 4040: 64.5, + 4041: 13.938, + 4042: 0, + 4043: 52.75, + 4044: 53.25, + 4045: 33.5, + 4046: 35.25, + 4047: 70, + 4048: 36.25, + 4049: 53.75, + 405: 78.99999999999999, + 4050: 49, + 4051: 48.75, + 4052: 40.75, + 4053: 69, + 4054: 18.875, + 4055: 47.5, + 4056: 40.5, + 4057: 43.5, + 4058: 68.5, + 4059: 72.5, + 406: 47.25, + 4060: 46.25, + 4061: 51.5, + 4062: 38.5, + 4063: 48.75, + 4064: 32.75, + 4065: 40, + 4066: 82, + 4067: 28.499999999999996, + 4068: 80.5, + 4069: 14.25, + 407: 34.75, + 4070: 63.25, + 4071: 68.5, + 4072: 103, + 4073: 20.25, + 4074: 26.75, + 4075: 69.5, + 4076: 49.5, + 4077: 25.625, + 4078: 37.5, + 4079: 15.374999999999998, + 408: 45, + 4080: 50, + 4081: 58, + 4082: 80.5, + 4083: 75.5, + 4084: 65, + 4085: 49.25, + 4086: 80.5, + 4087: 78.5, + 4088: 55.25, + 4089: 109, + 409: 46, + 4090: 54.25, + 4091: 49.75, + 4092: 82.5, + 4093: 20.625, + 4094: 36.25, + 4095: 49.5, + 4096: 66.5, + 4097: 28.625, + 4098: 50.5, + 4099: 33.5, + 41: 47.5, + 410: 29, + 4100: 48.75, + 4101: 55.25, + 4102: 39.25, + 4103: 51.75, + 4104: 62.25, + 4105: 61, + 4106: 56.5, + 4107: 26.625, + 4108: 39.5, + 4109: 75.5, + 411: 73, + 4110: 22.25, + 4111: 48, + 4112: 66, + 4113: 84, + 4114: 66.5, + 4115: 67, + 4116: 40.75, + 4117: 35.25, + 4118: 67.5, + 4119: 44.75, + 412: 75.5, + 4120: 52.25, + 4121: 74, + 4122: 55.25, + 4123: 56.74999999999999, + 4124: 81, + 4125: 54.75000000000001, + 4126: 64.5, + 4127: 31.75, + 4128: 66, + 4129: 60.75, + 413: 58, + 4130: 138, + 4131: 35.5, + 4132: 48, + 4133: 59.25, + 4134: 42.25, + 4135: 41.49999999999999, + 4136: 113, + 4137: 55.25000000000001, + 4138: 56.5, + 4139: 58.5, + 414: 46, + 4140: 49.5, + 4141: 99, + 4142: 40.75, + 4143: 46.25, + 4144: 63.75, + 4145: 33.25, + 4146: 19, + 4147: 79, + 4148: 71, + 4149: 67, + 415: 37.75, + 4150: 32.5, + 4151: 57.25, + 4152: 49.5, + 4153: 55.25, + 4154: 54.75, + 4155: 83.5, + 4156: 5.999999999999999, + 4157: 39.75, + 4158: 68.5, + 4159: 60.5, + 416: 52.00000000000001, + 4160: 59.74999999999999, + 4161: 25.625, + 4162: 28.875, + 4163: 63.25, + 4164: 69, + 4165: 38, + 4166: 37.25, + 4167: 51.00000000000001, + 4168: 28.75, + 4169: 72.5, + 417: 63.25, + 4170: 50.5, + 4171: 62.25, + 4172: 45.25, + 4173: 47.25000000000001, + 4174: 67.5, + 4175: 70, + 4176: 52.5, + 4177: 55.75, + 4178: 55.25, + 4179: 65.5, + 418: 44.25, + 4180: 21.875, + 4181: 55.75, + 4182: 44, + 4183: 69, + 4184: 50.75, + 4185: 76, + 4186: 45.25, + 4187: 79.5, + 4188: 68.5, + 4189: 66, + 419: 73.5, + 4190: 71, + 4191: 25.875, + 4192: 27.25, + 4193: 56.5, + 4194: 59.5, + 4195: 31, + 4196: 43.5, + 4197: 74, + 4198: 27.875, + 4199: 35.75, + 42: 14.938, + 420: 30.25, + 4200: 29.5, + 4201: 26, + 4202: 67, + 4203: 59.25, + 4204: 0, + 4205: 121, + 4206: 67, + 4207: 31, + 4208: 93.5, + 4209: 75.5, + 421: 54.50000000000001, + 4210: 88, + 4211: 40.75, + 4212: 64.5, + 4213: 36, + 4214: 63, + 4215: 55, + 4216: 66, + 4217: 70.5, + 4218: 63.25, + 4219: 58.25, + 422: 65, + 4220: 35.5, + 4221: 56, + 4222: 129, + 4223: 29, + 4224: 49.75, + 4225: 45.5, + 4226: 73, + 4227: 47.5, + 4228: 37.25, + 4229: 31.249999999999996, + 423: 110.50000000000001, + 4230: 71, + 4231: 56.5, + 4232: 37.25, + 4233: 21.875, + 4234: 82, + 4235: 38.75, + 4236: 60.25, + 4237: 41.5, + 4238: 37.25, + 4239: 0, + 424: 40, + 4240: 13.312, + 4241: 42.5, + 4242: 64, + 4243: 46, + 4244: 62.75, + 4245: 62, + 4246: 38.5, + 4247: 73, + 4248: 43, + 4249: 53, + 425: 41, + 4250: 49.00000000000001, + 4251: 58, + 4252: 29.25, + 4253: 42.25, + 4254: 65, + 4255: 50, + 4256: 69, + 4257: 46.5, + 4258: 67.5, + 4259: 36.25, + 426: 47.75, + 4260: 23.5, + 4261: 65.5, + 4262: 67, + 4263: 57, + 4264: 45.5, + 4265: 75, + 4266: 75, + 4267: 50.5, + 4268: 48.75, + 4269: 52.25, + 427: 56, + 4270: 80, + 4271: 80, + 4272: 23.25, + 4273: 66, + 4274: 68.5, + 4275: 47, + 4276: 37.5, + 4277: 72.5, + 4278: 88.5, + 4279: 26.75, + 428: 72.5, + 4280: 42, + 4281: 48.5, + 4282: 24.75, + 4283: 81.5, + 4284: 46.75, + 4285: 48, + 4286: 89, + 4287: 60.25, + 4288: 28.625, + 4289: 57.5, + 429: 27.875, + 4290: 42, + 4291: 8.625, + 4292: 49.25, + 4293: 77.5, + 4294: 22.125, + 4295: 52.5, + 4296: 92, + 4297: 54.5, + 4298: 72, + 4299: 78.5, + 43: 91, + 430: 46.75, + 4300: 57.5, + 4301: 45.5, + 4302: 64, + 4303: 65, + 4304: 58, + 4305: 89.5, + 4306: 51.24999999999999, + 4307: 0, + 4308: 27.75, + 4309: 19.25, + 431: 24.375, + 4310: 54, + 4311: 60, + 4312: 48.5, + 4313: 42, + 4314: 33.5, + 4315: 89.5, + 4316: 68.5, + 4317: 58, + 4318: 68.5, + 4319: 80.5, + 432: 60.25, + 4320: 40.75, + 4321: 52.75, + 4322: 37.25, + 4323: 41.25, + 4324: 71.5, + 4325: 58.5, + 4326: 45.25000000000001, + 4327: 27.5, + 4328: 19.625, + 4329: 0, + 433: 64, + 4330: 88, + 4331: 0, + 4332: 14.25, + 4333: 27.375, + 4334: 42.75, + 4335: 57.25, + 4336: 45.25, + 4337: 65, + 4338: 63.25, + 4339: 37.5, + 434: 59.75, + 4340: 41, + 4341: 11.5, + 4342: 29.875, + 4343: 78, + 4344: 60, + 4345: 43.99999999999999, + 4346: 57.24999999999999, + 4347: 70, + 4348: 52.25, + 4349: 67.5, + 435: 51.75000000000001, + 4350: 73, + 4351: 41.5, + 4352: 56.24999999999999, + 4353: 56.25, + 4354: 66, + 4355: 62.5, + 4356: 43.25, + 4357: 73.5, + 4358: 7.75, + 4359: 75.5, + 436: 75, + 4360: 23, + 4361: 37.75, + 4362: 84.5, + 4363: 61.5, + 4364: 48, + 4365: 66, + 4366: 27.999999999999996, + 4367: 106.5, + 4368: 60.74999999999999, + 4369: 33, + 437: 71.5, + 4370: 48.75, + 4371: 53.25, + 4372: 124.5, + 4373: 63.75, + 4374: 49.75, + 4375: 54, + 4376: 38.25, + 4377: 72.5, + 4378: 22.5, + 4379: 48.75, + 438: 59.75, + 4380: 59, + 4381: 69.5, + 4382: 73.5, + 4383: 40, + 4384: 45.5, + 4385: 63.25, + 4386: 46.25, + 4387: 70, + 4388: 57.5, + 4389: 78, + 439: 53.75, + 4390: 45.5, + 4391: 56.5, + 4392: 53.75, + 4393: 67, + 4394: 59.75000000000001, + 4395: 74.5, + 4396: 36.5, + 4397: 28.25, + 4398: 69, + 4399: 68.5, + 44: 67, + 440: 32.75, + 4400: 72, + 4401: 17, + 4402: 51.5, + 4403: 89, + 4404: 31.25, + 4405: 39.5, + 4406: 85, + 4407: 81, + 4408: 68, + 4409: 103, + 441: 39.75, + 4410: 65.5, + 4411: 66.5, + 4412: 57, + 4413: 53.25, + 4414: 34.5, + 4415: 93.5, + 4416: 36.5, + 4417: 80.5, + 4418: 61, + 4419: 45.5, + 442: 46.25, + 4420: 62.75, + 4421: 46.5, + 4422: 42, + 4423: 47.25, + 4424: 50.75, + 4425: 77.5, + 4426: 61.5, + 4427: 44.25, + 4428: 67.5, + 4429: 46.75, + 443: 33, + 4430: 61.5, + 4431: 53.25, + 4432: 32.25, + 4433: 37, + 4434: 49.75, + 4435: 44.75, + 4436: 64.5, + 4437: 60.25, + 4438: 33.25, + 4439: 28.25, + 444: 71, + 4440: 20.875, + 4441: 66, + 4442: 34.25, + 4443: 67, + 4444: 51.25, + 4445: 50.75, + 4446: 57.49999999999999, + 4447: 62, + 4448: 58, + 4449: 66, + 445: 26.249999999999996, + 4450: 55.75, + 4451: 66.5, + 4452: 57.75, + 4453: 42.25000000000001, + 4454: 75, + 4455: 44, + 4456: 35, + 4457: 62.74999999999999, + 4458: 82.99999999999999, + 4459: 61.24999999999999, + 446: 27.125, + 4460: 79, + 4461: 61.25, + 4462: 19.375, + 4463: 60.75, + 4464: 72.5, + 4465: 63.75, + 4466: 72, + 4467: 83.5, + 4468: 44.25, + 4469: 65, + 447: 42, + 4470: 68, + 4471: 53, + 4472: 77.5, + 4473: 13.062, + 4474: 35, + 4475: 166, + 4476: 87.99999999999999, + 4477: 51.75, + 4478: 12.75, + 4479: 28.875, + 448: 60, + 4480: 41.5, + 4481: 30.625, + 4482: 43.5, + 4483: 33.5, + 4484: 51.5, + 4485: 22.5, + 4486: 31.5, + 4487: 13.812, + 4488: 39.5, + 4489: 61.25, + 449: 43.75, + 4490: 53.25, + 4491: 58, + 4492: 44.75, + 4493: 60.25, + 4494: 51.24999999999999, + 4495: 54.5, + 4496: 62.25, + 4497: 51.75, + 4498: 47.5, + 4499: 62.75, + 45: 71, + 450: 57, + 4500: 43.75, + 4501: 54.75, + 4502: 83.5, + 4503: 53.75, + 4504: 64, + 4505: 45, + 4506: 62.25000000000001, + 4507: 61.5, + 4508: 78, + 4509: 33, + 451: 69.5, + 4510: 68.5, + 4511: 31.875, + 4512: 66.5, + 4513: 46.75, + 4514: 46.75, + 4515: 40.5, + 4516: 50.24999999999999, + 4517: 34.25, + 4518: 68, + 4519: 44.75, + 452: 46, + 4520: 101.5, + 4521: 65, + 4522: 51, + 4523: 48.75, + 4524: 43.25, + 4525: 67.50000000000001, + 4526: 19.75, + 4527: 61.5, + 4528: 55.25, + 4529: 46, + 453: 67.5, + 4530: 35.25, + 4531: 55, + 4532: 63.49999999999999, + 4533: 44.75, + 4534: 142, + 4535: 50.5, + 4536: 50.25, + 4537: 115.5, + 4538: 123.5, + 4539: 52, + 454: 40.25, + 4540: 68.5, + 4541: 42.00000000000001, + 4542: 44.75, + 4543: 63.75, + 4544: 42.25, + 4545: 36.5, + 4546: 61.25, + 4547: 29, + 4548: 39, + 4549: 63.75, + 455: 108, + 4550: 40.25, + 4551: 53.5, + 4552: 63.25, + 4553: 89, + 4554: 50.5, + 4555: 72.5, + 4556: 27.25, + 4557: 15.25, + 4558: 45.75, + 4559: 18, + 456: 60.5, + 4560: 36.75, + 4561: 51.5, + 4562: 61, + 4563: 62.5, + 4564: 67, + 4565: 49.5, + 4566: 59.00000000000001, + 4567: 48.5, + 4568: 65.5, + 4569: 58.5, + 457: 76.50000000000001, + 4570: 105, + 4571: 50, + 4572: 51.25, + 4573: 43.75, + 4574: 56.5, + 4575: 59.99999999999999, + 4576: 63.5, + 4577: 73, + 4578: 38.75, + 4579: 78.5, + 458: 55.75, + 4580: 91.5, + 4581: 56, + 4582: 73, + 4583: 57, + 4584: 85, + 4585: 95.00000000000001, + 4586: 75, + 4587: 77.99999999999999, + 4588: 34.5, + 4589: 36.25, + 459: 50.25, + 4590: 14.187999999999999, + 4591: 55.25, + 4592: 77, + 4593: 58.75, + 4594: 120.5, + 4595: 18.25, + 4596: 61.49999999999999, + 4597: 47.25, + 4598: 18.375, + 4599: 65.5, + 46: 92, + 460: 36.25, + 4600: 31.75, + 4601: 32.5, + 4602: 44.75, + 4603: 27.25, + 4604: 40.24999999999999, + 4605: 51.75, + 4606: 50, + 4607: 44.75, + 4608: 44.25, + 4609: 39.75, + 461: 91.99999999999999, + 4610: 54.75000000000001, + 4611: 62.25, + 4612: 77, + 4613: 45.75, + 4614: 52.5, + 4615: 52.75, + 4616: 53.5, + 4617: 81, + 4618: 39, + 4619: 47, + 462: 7.062, + 4620: 37, + 4621: 64.5, + 4622: 57.25, + 4623: 145, + 4624: 50.25, + 4625: 67.5, + 4626: 49.5, + 4627: 20.75, + 4628: 98.5, + 4629: 52.99999999999999, + 463: 71.5, + 4630: 46.25, + 4631: 57.24999999999999, + 4632: 71.5, + 4633: 75.5, + 4634: 59.75, + 4635: 58, + 4636: 29.625, + 4637: 25.75, + 4638: 79.5, + 4639: 67.5, + 464: 36, + 4640: 52.25, + 4641: 66.5, + 4642: 64, + 4643: 61.75, + 4644: 29, + 4645: 44.75, + 4646: 52.5, + 4647: 70, + 4648: 50.49999999999999, + 4649: 77, + 465: 43.5, + 4650: 54.75, + 4651: 94, + 4652: 35.5, + 4653: 61.74999999999999, + 4654: 50.49999999999999, + 4655: 44.75, + 4656: 50, + 4657: 32.5, + 4658: 57.5, + 4659: 16.625, + 466: 59, + 4660: 98.5, + 4661: 40.5, + 4662: 59.75, + 4663: 72.5, + 4664: 60, + 4665: 73, + 4666: 37.25, + 4667: 59.75, + 4668: 78, + 4669: 71, + 467: 44.50000000000001, + 4670: 76.5, + 4671: 22.625, + 4672: 67.5, + 4673: 66.5, + 4674: 28.875, + 4675: 52, + 4676: 31.875, + 4677: 81, + 4678: 71, + 4679: 79.5, + 468: 20.125, + 4680: 45.25, + 4681: 51, + 4682: 49.25, + 4683: 39.25, + 4684: 92.5, + 4685: 19.625, + 4686: 65, + 4687: 70.5, + 4688: 50.25, + 4689: 71.5, + 469: 37.75, + 4690: 56, + 4691: 38, + 4692: 52.75, + 4693: 78.5, + 4694: 49.5, + 4695: 14.999999999999998, + 4696: 41.75000000000001, + 4697: 65, + 4698: 30.375, + 4699: 59.5, + 47: 70, + 470: 27, + 4700: 72, + 4701: 70, + 4702: 27, + 4703: 19.375, + 4704: 51.5, + 4705: 11.75, + 4706: 48, + 4707: 47, + 4708: 33.75, + 4709: 64, + 471: 46.25, + 4710: 17.625, + 4711: 67.5, + 4712: 63.00000000000001, + 4713: 81.5, + 4714: 39.25, + 4715: 40, + 4716: 39.25, + 4717: 40.75, + 4718: 71, + 4719: 66, + 472: 71.5, + 4720: 72, + 4721: 55.75, + 4722: 29.625, + 4723: 71, + 4724: 90, + 4725: 29.5, + 4726: 48, + 4727: 54.25, + 4728: 138, + 4729: 62.5, + 473: 78, + 4730: 38, + 4731: 43.25, + 4732: 52.25, + 4733: 46.25, + 4734: 136, + 4735: 69, + 4736: 73, + 4737: 35.5, + 4738: 45.5, + 4739: 56.25, + 474: 15.5, + 4740: 23.374999999999996, + 4741: 78.5, + 4742: 64.5, + 4743: 32.25, + 4744: 77, + 4745: 55, + 4746: 57.5, + 4747: 51.75, + 4748: 46, + 4749: 74.5, + 475: 49, + 4750: 19.625, + 4751: 43.75, + 4752: 55.75, + 4753: 56, + 4754: 50.5, + 4755: 83.5, + 4756: 52.25, + 4757: 68.5, + 4758: 143, + 4759: 50, + 476: 46.75, + 4760: 77, + 4761: 26.25, + 4762: 50.25, + 4763: 70, + 4764: 29.5, + 4765: 46.25, + 4766: 28.75, + 4767: 54.75, + 4768: 26, + 4769: 74, + 477: 102.5, + 4770: 33.25, + 4771: 55.24999999999999, + 4772: 54.50000000000001, + 4773: 48.25, + 4774: 29, + 4775: 55, + 4776: 69, + 4777: 54.75, + 4778: 34.25, + 4779: 17, + 478: 64.5, + 4780: 52.75, + 4781: 55.5, + 4782: 61.75, + 4783: 58, + 4784: 55.25, + 4785: 62.5, + 4786: 58, + 4787: 80.5, + 4788: 73.5, + 4789: 45.25, + 479: 45.75, + 4790: 49.75, + 4791: 53.25, + 4792: 25.625, + 4793: 54.5, + 4794: 57.5, + 4795: 61.99999999999999, + 4796: 63.75000000000001, + 4797: 64, + 4798: 48.5, + 4799: 81, + 48: 58.24999999999999, + 480: 78, + 4800: 78.5, + 4801: 64, + 4802: 36.25, + 4803: 72, + 4804: 81.5, + 4805: 44, + 4806: 41, + 4807: 41, + 4808: 80, + 4809: 68.5, + 481: 70, + 4810: 44, + 4811: 41, + 4812: 48.49999999999999, + 4813: 86, + 4814: 45.5, + 4815: 57.25, + 4816: 42.5, + 4817: 91, + 4818: 53.25, + 4819: 67, + 482: 64.5, + 4820: 104.5, + 4821: 73, + 4822: 53.5, + 4823: 57.5, + 4824: 75.5, + 4825: 71, + 4826: 21.75, + 4827: 59.75, + 4828: 37.25, + 4829: 52.75, + 483: 59, + 4830: 52, + 4831: 64, + 4832: 61, + 4833: 79.5, + 4834: 87, + 4835: 68, + 4836: 45.75, + 4837: 38.75, + 4838: 76, + 4839: 67.5, + 484: 62.49999999999999, + 4840: 45.5, + 4841: 45.5, + 4842: 49.25, + 4843: 17.125, + 4844: 58.25, + 4845: 67, + 4846: 49.75, + 4847: 85, + 4848: 15.875, + 4849: 57.25, + 485: 60, + 4850: 27.625, + 4851: 41, + 4852: 53, + 4853: 21.125, + 4854: 69.5, + 4855: 67.5, + 4856: 44.5, + 4857: 80.5, + 4858: 28.375, + 4859: 61.25, + 486: 78.5, + 4860: 47, + 4861: 118.5, + 4862: 17.25, + 4863: 49, + 4864: 59.5, + 4865: 48.25, + 4866: 59.5, + 4867: 67, + 4868: 63.75, + 4869: 27, + 487: 31.625, + 4870: 45, + 4871: 50.75, + 4872: 94.5, + 4873: 61.74999999999999, + 4874: 21.25, + 4875: 34.25, + 4876: 65.5, + 4877: 28.625, + 4878: 49, + 4879: 68, + 488: 69, + 4880: 45, + 4881: 110.5, + 4882: 79, + 4883: 98, + 4884: 32.75, + 4885: 45, + 4886: 19.125, + 4887: 45, + 4888: 73.5, + 4889: 51, + 489: 82.5, + 4890: 31.5, + 4891: 0, + 4892: 57, + 4893: 71, + 4894: 23.125, + 4895: 23.625, + 4896: 43.25, + 4897: 70, + 4898: 63.5, + 4899: 54, + 49: 122, + 490: 80, + 4900: 81.5, + 4901: 69, + 4902: 65.5, + 4903: 26.875, + 4904: 76, + 4905: 68, + 4906: 42.75, + 4907: 96.5, + 4908: 41.75, + 4909: 31.625, + 491: 59.5, + 4910: 55, + 4911: 50.5, + 4912: 36, + 4913: 62.25, + 4914: 56, + 4915: 75.5, + 4916: 29.875000000000004, + 4917: 106.5, + 4918: 64.5, + 4919: 118, + 492: 25, + 4920: 53.25, + 4921: 75.5, + 4922: 64.5, + 4923: 38.5, + 4924: 104, + 4925: 74.5, + 4926: 56.75, + 4927: 71.5, + 4928: 57.75, + 4929: 81.5, + 493: 111, + 4930: 124.5, + 4931: 54.75000000000001, + 4932: 42.5, + 4933: 57.25, + 4934: 46, + 4935: 83.5, + 4936: 36, + 4937: 41.75, + 4938: 53.5, + 4939: 55.25, + 494: 40.5, + 4940: 106, + 4941: 21.125000000000004, + 4942: 20.125, + 4943: 36.25, + 4944: 30.25, + 4945: 59.5, + 4946: 37, + 4947: 119, + 4948: 59.75, + 4949: 55, + 495: 31.125, + 4950: 71, + 4951: 67.5, + 4952: 43.75, + 4953: 47.5, + 4954: 58.75, + 4955: 67, + 4956: 49.75, + 4957: 42.75, + 4958: 59.25, + 4959: 47.24999999999999, + 496: 14.812, + 4960: 57.5, + 4961: 15.875, + 4962: 65.5, + 4963: 99, + 4964: 54, + 4965: 49.75, + 4966: 52, + 4967: 64.5, + 4968: 60.5, + 4969: 56, + 497: 58.25, + 4970: 54.75, + 4971: 44.25, + 4972: 86, + 4973: 35.75, + 4974: 46.75, + 4975: 73, + 4976: 20.5, + 4977: 21.875, + 4978: 49.75, + 4979: 88, + 498: 48.25, + 4980: 41.5, + 4981: 68.5, + 4982: 41.75, + 4983: 69.5, + 4984: 54.25, + 4985: 44, + 4986: 76, + 4987: 20.625, + 4988: 75, + 4989: 50.5, + 499: 46.25, + 4990: 41, + 4991: 42, + 4992: 6.281, + 4993: 59, + 4994: 25.875, + 4995: 39.25, + 4996: 27.5, + 4997: 65.5, + 4998: 59, + 4999: 32.75, + 5: 82.00000000000001, + 50: 66.5, + 500: 74, + 5000: 51.25, + 5001: 84, + 5002: 50, + 5003: 56.75, + 5004: 39, + 5005: 50, + 5006: 78.5, + 5007: 59.75, + 5008: 11.688, + 5009: 61.75, + 501: 100, + 5010: 13.499999999999998, + 5011: 37.25, + 5012: 57.75, + 5013: 58.75000000000001, + 5014: 54.75, + 5015: 57.75, + 5016: 66, + 5017: 59, + 5018: 78.5, + 5019: 115.5, + 502: 37.25, + 5020: 19.625, + 5021: 56.5, + 5022: 48.75, + 5023: 67.5, + 5024: 62.49999999999999, + 5025: 60.5, + 5026: 44.25, + 5027: 35.5, + 5028: 48.5, + 5029: 56.75, + 503: 78.5, + 5030: 72, + 5031: 61.99999999999999, + 5032: 90, + 5033: 45.75, + 5034: 15.125, + 5035: 41, + 5036: 41.75, + 5037: 62.75, + 5038: 49.5, + 5039: 31.25, + 504: 28.875, + 5040: 25.375, + 5041: 38, + 5042: 39.50000000000001, + 5043: 47.75, + 5044: 46, + 5045: 142, + 5046: 63.75, + 5047: 63, + 5048: 101, + 5049: 78.99999999999999, + 505: 45.5, + 5050: 75, + 5051: 72, + 5052: 9.312, + 5053: 27.75, + 5054: 74.5, + 5055: 72, + 5056: 59.25, + 5057: 46.75, + 5058: 70.5, + 5059: 44, + 506: 49, + 5060: 73, + 5061: 28.375, + 5062: 123.5, + 5063: 80, + 5064: 121, + 5065: 58.25, + 5066: 52.75, + 5067: 79.00000000000001, + 5068: 35.25, + 5069: 47.75, + 507: 49, + 5070: 84, + 5071: 30.875, + 5072: 46.75, + 5073: 54.5, + 5074: 63.75000000000001, + 5075: 71, + 5076: 66.5, + 5077: 29.625, + 5078: 76.5, + 5079: 64.5, + 508: 61.99999999999999, + 5080: 39.25, + 5081: 34.25, + 5082: 51.25, + 5083: 52.5, + 5084: 81.5, + 5085: 55.75, + 5086: 64.5, + 5087: 81.5, + 5088: 47.75, + 5089: 35, + 509: 58, + 5090: 41.75, + 5091: 42, + 5092: 54.25, + 5093: 40.24999999999999, + 5094: 40.75, + 5095: 0, + 5096: 64.5, + 5097: 62.25, + 5098: 31.875, + 5099: 43, + 51: 52, + 510: 75.5, + 5100: 69, + 5101: 25.250000000000004, + 5102: 48.74999999999999, + 5103: 49.25, + 5104: 41.75, + 5105: 36.25, + 5106: 57, + 5107: 60.75, + 5108: 96, + 5109: 46.99999999999999, + 511: 69.5, + 5110: 36, + 5111: 24.625, + 5112: 48.5, + 5113: 48.25, + 5114: 63.75, + 5115: 66.5, + 5116: 65, + 5117: 44.75, + 5118: 65, + 5119: 22.875, + 512: 59.25, + 5120: 46.5, + 5121: 26.625, + 5122: 24, + 5123: 44.75, + 5124: 54.75, + 5125: 49.5, + 5126: 33.25, + 5127: 119.5, + 5128: 81.5, + 5129: 65, + 513: 83.5, + 5130: 64.5, + 5131: 40, + 5132: 48.5, + 5133: 39.25, + 5134: 2.766, + 5135: 37.5, + 5136: 87.5, + 5137: 63.00000000000001, + 5138: 62.5, + 5139: 47, + 514: 53.25, + 5140: 50.25, + 5141: 12.5, + 5142: 27, + 5143: 44.25, + 5144: 0, + 5145: 65, + 5146: 27.375, + 5147: 23.875, + 5148: 17.125, + 5149: 56.74999999999999, + 515: 15.125000000000002, + 5150: 44.25, + 5151: 68.5, + 5152: 77.5, + 5153: 28.125000000000004, + 5154: 57, + 5155: 60.50000000000001, + 5156: 35.25, + 5157: 72.5, + 5158: 65, + 5159: 40.5, + 516: 61, + 5160: 120.5, + 5161: 71.5, + 5162: 59.5, + 5163: 65, + 5164: 53, + 5165: 34.75, + 5166: 58.00000000000001, + 5167: 77.5, + 5168: 40.75, + 5169: 67, + 517: 61, + 5170: 63, + 5171: 52.75, + 5172: 82.5, + 5173: 49.25, + 5174: 35, + 5175: 62, + 5176: 53.5, + 5177: 59.75, + 5178: 31, + 5179: 44.5, + 518: 72.5, + 5180: 68.5, + 5181: 34.25, + 5182: 55.5, + 5183: 36.75, + 5184: 43.5, + 5185: 41.5, + 5186: 60, + 5187: 56, + 5188: 57, + 5189: 63.25000000000001, + 519: 53, + 5190: 47, + 5191: 38.75, + 5192: 2.953, + 5193: 0, + 5194: 72.5, + 5195: 77.5, + 5196: 15.438, + 5197: 60, + 5198: 47, + 5199: 37.75, + 52: 29.75, + 520: 55, + 5200: 69, + 5201: 35, + 5202: 56.75, + 5203: 72, + 5204: 37.25, + 5205: 38, + 5206: 50.75, + 5207: 57.75, + 5208: 52.75, + 5209: 65.5, + 521: 48.5, + 5210: 73.5, + 5211: 57.25, + 5212: 48.5, + 5213: 23.75, + 5214: 48.25, + 5215: 47.75, + 5216: 38.5, + 5217: 72.5, + 5218: 107, + 5219: 58.75, + 522: 66, + 5220: 65.5, + 5221: 55, + 5222: 74.5, + 5223: 48, + 5224: 72, + 5225: 76, + 5226: 95, + 5227: 62.5, + 5228: 47.99999999999999, + 5229: 43.5, + 523: 56, + 5230: 52.75, + 5231: 44, + 5232: 70.49999999999999, + 5233: 66, + 5234: 37.75, + 5235: 35, + 5236: 64, + 5237: 70.5, + 5238: 11.312, + 5239: 42, + 524: 63.25, + 5240: 27.375, + 5241: 60.5, + 5242: 90.5, + 5243: 42.5, + 5244: 115.5, + 5245: 35.75, + 5246: 47.25, + 5247: 39.5, + 5248: 60.25, + 5249: 29.125, + 525: 82.5, + 5250: 22.75, + 5251: 75.5, + 5252: 71, + 5253: 54, + 5254: 70, + 5255: 57.5, + 5256: 45.5, + 5257: 69, + 5258: 49.25, + 5259: 52.25, + 526: 43, + 5260: 79.5, + 5261: 81.5, + 5262: 58.49999999999999, + 5263: 72.5, + 5264: 52.75, + 5265: 27.125, + 5266: 38.25, + 5267: 43.25, + 5268: 49.5, + 5269: 27, + 527: 73.5, + 5270: 60.25, + 5271: 40.5, + 5272: 60.75, + 5273: 68, + 5274: 36, + 5275: 63.75, + 5276: 34.5, + 5277: 34, + 5278: 41, + 5279: 45.75, + 528: 60.25, + 5280: 27, + 5281: 78, + 5282: 26.125, + 5283: 59.5, + 5284: 69.5, + 5285: 41.99999999999999, + 5286: 67.5, + 5287: 57.25, + 5288: 38.75, + 5289: 102, + 529: 67.5, + 5290: 30.375, + 5291: 35.25, + 5292: 59, + 5293: 36.75, + 5294: 23.75, + 5295: 36, + 5296: 59.25, + 5297: 18.625, + 5298: 58, + 5299: 54.25, + 53: 62.75, + 530: 48, + 5300: 48.25, + 5301: 82.5, + 5302: 68.5, + 5303: 57.25, + 5304: 50.75, + 5305: 56.25, + 5306: 92.99999999999999, + 5307: 79, + 5308: 59, + 5309: 61.25, + 531: 36.25, + 5310: 51.75, + 5311: 72.5, + 5312: 71.5, + 5313: 30.25, + 5314: 81.5, + 5315: 56, + 5316: 69.5, + 5317: 69.5, + 5318: 111, + 5319: 36.25, + 532: 46, + 5320: 44.75, + 5321: 59.25, + 5322: 27.375, + 5323: 29.125, + 5324: 51.75, + 5325: 20.125, + 5326: 45.74999999999999, + 5327: 62.49999999999999, + 5328: 68, + 5329: 43.75, + 533: 41, + 5330: 52.75, + 5331: 21.5, + 5332: 38.5, + 5333: 54.5, + 5334: 63.25, + 5335: 87, + 5336: 51, + 5337: 69.5, + 5338: 67, + 5339: 34.75, + 534: 67.5, + 5340: 44.5, + 5341: 53, + 5342: 60.5, + 5343: 49.5, + 5344: 55.25, + 5345: 51.5, + 5346: 73.5, + 5347: 61.25, + 5348: 47.5, + 5349: 25.25, + 535: 22.625, + 5350: 49.75, + 5351: 17.25, + 5352: 81.5, + 5353: 56, + 5354: 81.5, + 5355: 30.75, + 5356: 17.25, + 5357: 33.5, + 5358: 29.375, + 5359: 59.5, + 536: 40.5, + 5360: 44, + 5361: 47.5, + 5362: 59.5, + 5363: 48.5, + 5364: 63.25, + 5365: 74, + 5366: 29.875, + 5367: 34.5, + 5368: 65, + 5369: 63.5, + 537: 38, + 5370: 63.75, + 5371: 37.75, + 5372: 51, + 5373: 35.25, + 5374: 62.5, + 5375: 32.25, + 5376: 74.5, + 5377: 46.75, + 5378: 41.25, + 5379: 42, + 538: 59.25, + 5380: 60.25, + 5381: 11.5, + 5382: 37, + 5383: 71.5, + 5384: 62.5, + 5385: 49.5, + 5386: 85, + 5387: 88.5, + 5388: 63.75, + 5389: 72, + 539: 52.75, + 5390: 62.25, + 5391: 42.25000000000001, + 5392: 95, + 5393: 52.5, + 5394: 88.5, + 5395: 86.5, + 5396: 25.375, + 5397: 43.99999999999999, + 5398: 34.25, + 5399: 14.124999999999998, + 54: 30.375, + 540: 72.5, + 5400: 68.5, + 5401: 83.5, + 5402: 39.75, + 5403: 124.5, + 5404: 46, + 5405: 43, + 5406: 111, + 5407: 65, + 5408: 66, + 5409: 50.5, + 541: 44, + 5410: 46.75, + 5411: 73, + 5412: 69.5, + 5413: 84.5, + 5414: 62.25, + 5415: 51, + 5416: 78.5, + 5417: 44.75, + 5418: 51.75, + 5419: 16.375, + 542: 41.25, + 5420: 112, + 5421: 73, + 5422: 50.74999999999999, + 5423: 112, + 5424: 39.5, + 5425: 63.25, + 5426: 110, + 5427: 53.75, + 5428: 77, + 5429: 64, + 543: 76, + 5430: 54.75, + 5431: 64, + 5432: 61, + 5433: 31.625, + 5434: 24, + 5435: 65.5, + 5436: 35, + 5437: 64, + 5438: 82.5, + 5439: 65, + 544: 62.49999999999999, + 5440: 14.5, + 5441: 36, + 5442: 22.25, + 5443: 61, + 5444: 40.25000000000001, + 5445: 39.5, + 5446: 0, + 5447: 57, + 5448: 60.25, + 5449: 36.25, + 545: 74.5, + 5450: 51, + 5451: 97.5, + 5452: 69.5, + 5453: 0, + 5454: 53.25, + 5455: 52, + 5456: 38, + 5457: 31.625, + 5458: 68, + 5459: 12.375, + 546: 98, + 5460: 18.875, + 5461: 34.75, + 5462: 42.25, + 5463: 31.75, + 5464: 77, + 5465: 71, + 5466: 53, + 5467: 30.25, + 5468: 20.375, + 5469: 40, + 547: 55.75, + 5470: 59.25, + 5471: 17.875, + 5472: 46.25, + 5473: 30.875, + 5474: 39.25, + 5475: 58.5, + 5476: 47.5, + 5477: 58.75, + 5478: 29.375, + 5479: 76, + 548: 46.25, + 5480: 90.50000000000001, + 5481: 44, + 5482: 61, + 5483: 54.25, + 5484: 47.25, + 5485: 58.50000000000001, + 5486: 54.75, + 5487: 39.5, + 5488: 64, + 5489: 53.75, + 549: 61.5, + 5490: 61.25, + 5491: 66.5, + 5492: 60.5, + 5493: 71, + 5494: 74.5, + 5495: 48.25, + 5496: 65, + 5497: 38, + 5498: 79.5, + 5499: 53.75, + 55: 31, + 550: 19, + 5500: 65.5, + 5501: 120, + 5502: 52.5, + 5503: 12.812, + 5504: 65, + 5505: 59.49999999999999, + 5506: 66.5, + 5507: 16.125, + 5508: 43, + 5509: 49.25, + 551: 84.00000000000001, + 5510: 15.499999999999998, + 5511: 57.75000000000001, + 5512: 62.24999999999999, + 5513: 76.5, + 5514: 52.25, + 5515: 56.25, + 5516: 25, + 5517: 42.5, + 5518: 47.5, + 5519: 60.75, + 552: 54, + 5520: 54.75, + 5521: 56.5, + 5522: 121, + 5523: 67.5, + 5524: 48, + 5525: 50, + 5526: 47.25, + 5527: 32.25, + 5528: 48.5, + 5529: 131, + 553: 50, + 5530: 27.375, + 5531: 35.5, + 5532: 101.5, + 5533: 29.875000000000004, + 5534: 47.5, + 5535: 27.375, + 5536: 29.875, + 5537: 61.75, + 5538: 56.25, + 5539: 41.75, + 554: 43.25, + 5540: 27.125, + 5541: 34.5, + 5542: 14, + 5543: 71.5, + 5544: 18, + 5545: 55.75000000000001, + 5546: 63.25, + 5547: 67, + 5548: 57.25, + 5549: 57.25000000000001, + 555: 74, + 5550: 43.25, + 5551: 49.5, + 5552: 27.125, + 5553: 53.5, + 5554: 67, + 5555: 65.5, + 5556: 60.75, + 5557: 27.75, + 5558: 52.5, + 5559: 53, + 556: 51.49999999999999, + 5560: 36.25, + 5561: 51.25, + 5562: 81.5, + 5563: 46.75, + 5564: 71.5, + 5565: 49.5, + 5566: 78.5, + 5567: 36.75, + 5568: 54, + 5569: 58.25, + 557: 20.25, + 5570: 71, + 5571: 58.25, + 5572: 101.5, + 5573: 44.5, + 5574: 58.25, + 5575: 71, + 5576: 28.25, + 5577: 66.5, + 5578: 46.75, + 5579: 71, + 558: 60, + 5580: 33.5, + 5581: 44, + 5582: 78.5, + 5583: 42.5, + 5584: 37.5, + 5585: 54.75, + 5586: 105, + 5587: 72, + 5588: 25.875000000000004, + 5589: 70.5, + 559: 52.5, + 5590: 101.5, + 5591: 64.5, + 5592: 54.5, + 5593: 37.5, + 5594: 51.25, + 5595: 52.75, + 5596: 59, + 5597: 64, + 5598: 55.25, + 5599: 54, + 56: 70.5, + 560: 47.25, + 5600: 33.5, + 5601: 56.25, + 5602: 82.5, + 5603: 47.25, + 5604: 30.500000000000004, + 5605: 69, + 5606: 76, + 5607: 44.25, + 5608: 58.25, + 5609: 61.25, + 561: 130, + 5610: 105, + 5611: 63.5, + 5612: 69, + 5613: 64, + 5614: 36.75, + 5615: 37.75, + 5616: 43.74999999999999, + 5617: 41.75, + 5618: 52.75, + 5619: 26.25, + 562: 33.5, + 5620: 55.25, + 5621: 64.50000000000001, + 5622: 45, + 5623: 8.938, + 5624: 62.75, + 5625: 72, + 5626: 63.24999999999999, + 5627: 24.5, + 5628: 68.5, + 5629: 26.875, + 563: 35, + 5630: 25.375, + 5631: 58.5, + 5632: 46.25, + 5633: 29.125, + 5634: 12, + 5635: 59, + 5636: 60.75, + 5637: 70.5, + 5638: 63.5, + 5639: 44.75, + 564: 47, + 5640: 54.75, + 5641: 76.5, + 5642: 113.5, + 5643: 43.5, + 5644: 49.5, + 5645: 63.25, + 5646: 46.99999999999999, + 5647: 55.75, + 5648: 18.875, + 5649: 49.5, + 565: 20.125, + 5650: 97.00000000000001, + 5651: 0, + 5652: 72.5, + 5653: 52.25, + 5654: 78, + 5655: 39, + 5656: 120.5, + 5657: 70, + 5658: 45.75, + 5659: 46, + 566: 72.5, + 5660: 119, + 5661: 41, + 5662: 90, + 5663: 0.852, + 5664: 94.5, + 5665: 62, + 5666: 42, + 5667: 128, + 5668: 16.625, + 5669: 33.5, + 567: 82.5, + 5670: 42, + 5671: 74.5, + 5672: 30.125, + 5673: 70.5, + 5674: 41, + 5675: 59.5, + 5676: 50.5, + 5677: 15.5, + 5678: 30.625, + 5679: 86, + 568: 52, + 5680: 37.75, + 5681: 119.5, + 5682: 41.25, + 5683: 36, + 5684: 0, + 5685: 28.375, + 5686: 53.25, + 5687: 36.5, + 5688: 32.5, + 5689: 46.25, + 569: 57.5, + 5690: 58.75, + 5691: 55.5, + 5692: 27.375, + 5693: 91.5, + 5694: 60.5, + 5695: 72.5, + 5696: 43.5, + 5697: 36.25, + 5698: 55.5, + 5699: 66, + 57: 72.5, + 570: 90, + 5700: 53.75, + 5701: 46.25000000000001, + 5702: 62.75, + 5703: 130, + 5704: 11.438, + 5705: 53.75, + 5706: 83.5, + 5707: 43.75000000000001, + 5708: 61.75, + 5709: 89.50000000000001, + 571: 79, + 5710: 69.5, + 5711: 64.5, + 5712: 52, + 5713: 35.75, + 5714: 71.5, + 5715: 48, + 5716: 72, + 5717: 36.25, + 5718: 70, + 5719: 75, + 572: 14.312, + 5720: 52.25, + 5721: 55.75, + 5722: 75.5, + 5723: 67.5, + 5724: 46.75, + 5725: 124.5, + 5726: 67, + 5727: 38, + 5728: 42.5, + 5729: 41.25, + 573: 47.5, + 5730: 44.25, + 5731: 82, + 5732: 62.5, + 5733: 27.5, + 5734: 45.75, + 5735: 33.75, + 5736: 48.5, + 5737: 26.75, + 5738: 49, + 5739: 41, + 574: 51.99999999999999, + 5740: 13.5, + 5741: 27.75, + 5742: 40, + 5743: 71.5, + 5744: 54, + 5745: 41.5, + 5746: 67, + 5747: 61.75000000000001, + 5748: 69.5, + 5749: 47, + 575: 38.50000000000001, + 5750: 29.625, + 5751: 72.5, + 5752: 40.5, + 5753: 32.25, + 5754: 67.5, + 5755: 50.5, + 5756: 40.5, + 5757: 49.25, + 5758: 56, + 5759: 77.5, + 576: 70.5, + 5760: 73.5, + 5761: 78, + 5762: 53.75, + 5763: 14.25, + 5764: 37, + 5765: 42.99999999999999, + 5766: 68.5, + 5767: 18.5, + 5768: 40, + 5769: 43.5, + 577: 31.625, + 5770: 63.5, + 5771: 36, + 5772: 19, + 5773: 34.25, + 5774: 79.5, + 5775: 27.875, + 5776: 70.5, + 5777: 58.75, + 5778: 59, + 5779: 50.49999999999999, + 578: 134, + 5780: 81, + 5781: 76.5, + 5782: 72.5, + 5783: 41, + 5784: 47.75, + 5785: 28.625, + 5786: 51.25, + 5787: 37.5, + 5788: 55.75, + 5789: 36.75, + 579: 49, + 5790: 29, + 5791: 10.688, + 5792: 57.75, + 5793: 54.75, + 5794: 35.5, + 5795: 51, + 5796: 57, + 5797: 36, + 5798: 57.25, + 5799: 26.625000000000004, + 58: 46.75, + 580: 40.75, + 5800: 67, + 5801: 31.5, + 5802: 39.75, + 5803: 81.5, + 5804: 55, + 5805: 37, + 5806: 39.25, + 5807: 67.5, + 5808: 157, + 5809: 56.74999999999999, + 581: 66, + 5810: 49.75, + 5811: 56.75000000000001, + 5812: 57.75, + 5813: 47.5, + 5814: 73, + 5815: 66.5, + 5816: 53.5, + 5817: 47.25, + 5818: 59.75, + 5819: 92.5, + 582: 54.75, + 5820: 66, + 5821: 29.25, + 5822: 48, + 5823: 16.25, + 5824: 66.5, + 5825: 57.50000000000001, + 5826: 71, + 5827: 34.25, + 5828: 56, + 5829: 43.25, + 583: 86.5, + 5830: 71.5, + 5831: 26.625, + 5832: 56.5, + 5833: 76.5, + 5834: 45.25, + 5835: 65.5, + 5836: 37.75, + 5837: 100.5, + 5838: 86, + 5839: 50.25000000000001, + 584: 73.5, + 5840: 40.25, + 5841: 56, + 5842: 59.75, + 5843: 10.812, + 5844: 67, + 5845: 55.5, + 5846: 39, + 5847: 45, + 5848: 57.75, + 5849: 51.5, + 585: 56.75, + 5850: 40, + 5851: 37.25, + 5852: 36.5, + 5853: 145, + 5854: 91.5, + 5855: 69.5, + 5856: 52.75, + 5857: 22.5, + 5858: 3.609, + 5859: 8, + 586: 74.5, + 5860: 53.75, + 5861: 67, + 5862: 44.75, + 5863: 40, + 5864: 53.25, + 5865: 50, + 5866: 8.438, + 5867: 51.25, + 5868: 73.5, + 5869: 40.5, + 587: 49, + 5870: 70, + 5871: 49.5, + 5872: 37.75, + 5873: 38.75, + 5874: 55.25, + 5875: 47.5, + 5876: 51.75, + 5877: 66, + 5878: 44.75, + 5879: 84.5, + 588: 51.75, + 5880: 26.625, + 5881: 74.5, + 5882: 58, + 5883: 0, + 5884: 36.75, + 5885: 55.25, + 5886: 38.5, + 5887: 41, + 5888: 20.375, + 5889: 12.062, + 589: 57.5, + 5890: 50, + 5891: 25.75, + 5892: 71, + 5893: 45, + 5894: 24.75, + 5895: 61.5, + 5896: 60, + 5897: 39.5, + 5898: 16.75, + 5899: 33.25, + 59: 57, + 590: 66, + 5900: 42.5, + 5901: 83.5, + 5902: 40, + 5903: 61.75, + 5904: 55, + 5905: 66, + 5906: 43, + 5907: 26.624999999999996, + 5908: 50.75, + 5909: 97, + 591: 32.75, + 5910: 21.75, + 5911: 53.5, + 5912: 53.25000000000001, + 5913: 70, + 5914: 39, + 5915: 54.25, + 5916: 64.5, + 5917: 62.5, + 5918: 61.25, + 5919: 72.5, + 592: 64.5, + 5920: 84, + 5921: 44.75000000000001, + 5922: 46.25, + 5923: 38.25, + 5924: 59.5, + 5925: 38.99999999999999, + 5926: 142, + 5927: 91.5, + 5928: 64.5, + 5929: 56, + 593: 13.250000000000002, + 5930: 63.25, + 5931: 15.061999999999998, + 5932: 52.75, + 5933: 48, + 5934: 40.25, + 5935: 56, + 5936: 58, + 5937: 56, + 5938: 63.5, + 5939: 54.25000000000001, + 594: 43.75, + 5940: 12.312, + 5941: 34.5, + 5942: 68.5, + 5943: 41, + 5944: 55, + 5945: 86, + 5946: 38, + 5947: 38.75, + 5948: 61.5, + 5949: 93.50000000000001, + 595: 65.5, + 5950: 55, + 5951: 73.5, + 5952: 94.5, + 5953: 59.75, + 5954: 56.74999999999999, + 5955: 45.5, + 5956: 11.062, + 5957: 45.5, + 5958: 81, + 5959: 49.25, + 596: 69, + 5960: 32.75, + 5961: 58.5, + 5962: 77.5, + 5963: 67.5, + 5964: 70.5, + 5965: 67, + 5966: 14.438, + 5967: 66, + 5968: 30, + 5969: 55.5, + 597: 62, + 5970: 48.5, + 5971: 45, + 5972: 66.5, + 5973: 37, + 5974: 32.5, + 5975: 17.625, + 5976: 87, + 5977: 40, + 5978: 57.25, + 5979: 80.50000000000001, + 598: 37.75, + 5980: 38.50000000000001, + 5981: 67.5, + 5982: 29.5, + 5983: 44, + 5984: 77.00000000000001, + 5985: 55.5, + 5986: 36, + 5987: 76.5, + 5988: 70.5, + 5989: 56.75, + 599: 55.5, + 5990: 66.5, + 5991: 15.438, + 5992: 39.25, + 5993: 19.75, + 5994: 91.5, + 5995: 64, + 5996: 57.5, + 5997: 49.75, + 5998: 28.5, + 5999: 86.5, + 6: 45.5, + 60: 31.75, + 600: 51.25, + 6000: 60.5, + 6001: 61.75, + 6002: 95.5, + 6003: 57.5, + 6004: 33.75, + 6005: 78.5, + 6006: 75, + 6007: 80, + 6008: 46, + 6009: 67.5, + 601: 16.625, + 6010: 38, + 6011: 56.50000000000001, + 6012: 36.75, + 6013: 42.25, + 6014: 66.5, + 6015: 32.25, + 6016: 55.25, + 6017: 62.25, + 6018: 38.25, + 6019: 77, + 602: 83, + 6020: 38.25, + 6021: 0, + 6022: 55.25, + 6023: 83, + 6024: 62.25, + 6025: 47, + 6026: 71, + 6027: 49.5, + 6028: 55, + 6029: 82.5, + 603: 36.25, + 6030: 69.5, + 6031: 47.5, + 6032: 73, + 6033: 46.25, + 6034: 51.25, + 6035: 40.25000000000001, + 6036: 64, + 6037: 43.75, + 6038: 64.5, + 6039: 26, + 604: 75.5, + 6040: 19.875, + 6041: 34, + 6042: 17.375, + 6043: 55.25, + 6044: 38.25, + 6045: 42.75, + 6046: 38.75, + 6047: 53.25, + 6048: 32.5, + 6049: 35.75, + 605: 28.875, + 6050: 30.5, + 6051: 74, + 6052: 61.50000000000001, + 6053: 49.75, + 6054: 51.49999999999999, + 6055: 58.25, + 6056: 70, + 6057: 40, + 6058: 38, + 6059: 47.25, + 606: 49.25, + 6060: 40, + 6061: 46, + 6062: 22.75, + 6063: 45.25, + 6064: 53.75, + 6065: 39.25, + 6066: 19.625, + 6067: 39.75, + 6068: 64, + 6069: 35.25, + 607: 0, + 6070: 30.125, + 6071: 61, + 6072: 85.99999999999999, + 6073: 60.25, + 6074: 46.5, + 6075: 38, + 6076: 65.5, + 6077: 73.5, + 6078: 0, + 6079: 16.75, + 608: 27.25, + 6080: 56.75, + 6081: 28.125, + 6082: 53.75, + 6083: 42.25, + 6084: 26.25, + 6085: 70, + 6086: 61.25, + 6087: 44.75, + 6088: 42.75, + 6089: 37.25, + 609: 31.375, + 6090: 67, + 6091: 57.5, + 6092: 68.5, + 6093: 63.75, + 6094: 48, + 6095: 49.25, + 6096: 28, + 6097: 50, + 6098: 47, + 6099: 53.75, + 61: 67, + 610: 38.75, + 6100: 50.75, + 6101: 66.5, + 6102: 17, + 6103: 63.75, + 6104: 59.75, + 6105: 76.5, + 6106: 125.5, + 6107: 11.875, + 6108: 40.25, + 6109: 39, + 611: 69, + 6110: 63.5, + 6111: 65, + 6112: 71.5, + 6113: 32.25, + 6114: 36.25, + 6115: 42.5, + 6116: 27.75, + 6117: 56.49999999999999, + 6118: 0, + 6119: 39.74999999999999, + 612: 40.5, + 6120: 72.5, + 6121: 80, + 6122: 79, + 6123: 75, + 6124: 68, + 6125: 42.00000000000001, + 6126: 19.5, + 6127: 50.25, + 6128: 38.5, + 6129: 51.5, + 613: 33.25, + 6130: 50.5, + 6131: 63.75, + 6132: 51.25, + 6133: 74, + 6134: 72.5, + 6135: 64.5, + 6136: 59.25, + 6137: 75, + 6138: 78.5, + 6139: 43.5, + 614: 92.5, + 6140: 51.49999999999999, + 6141: 61.5, + 6142: 67.5, + 6143: 11.25, + 6144: 47.25, + 6145: 43.25, + 6146: 39.25, + 6147: 52, + 6148: 70, + 6149: 37.5, + 615: 58.25, + 6150: 35.5, + 6151: 59.5, + 6152: 45, + 6153: 58.99999999999999, + 6154: 50.5, + 6155: 46.5, + 6156: 115.5, + 6157: 40.75, + 6158: 56, + 6159: 37, + 616: 38.75, + 6160: 58.5, + 6161: 69, + 6162: 32.75, + 6163: 58, + 6164: 23.875, + 6165: 37, + 6166: 57.75, + 6167: 42.5, + 6168: 53, + 6169: 20.75, + 617: 50.75, + 6170: 83, + 6171: 86, + 6172: 58.24999999999999, + 6173: 49.5, + 6174: 55.24999999999999, + 6175: 50.50000000000001, + 6176: 67.5, + 6177: 61.5, + 6178: 57.75, + 6179: 64.5, + 618: 40.74999999999999, + 6180: 67.5, + 6181: 45.49999999999999, + 6182: 62.74999999999999, + 6183: 112, + 6184: 59.75, + 6185: 42.25, + 6186: 63.5, + 6187: 36.5, + 6188: 72.5, + 6189: 52, + 619: 46.5, + 6190: 42.25, + 6191: 68, + 6192: 20.749999999999996, + 6193: 77.5, + 6194: 48, + 6195: 51.5, + 6196: 72, + 6197: 14.999999999999998, + 6198: 51.5, + 6199: 24.499999999999996, + 62: 38.25, + 620: 41.5, + 6200: 63.75, + 6201: 44, + 6202: 54, + 6203: 41.75, + 6204: 158, + 6205: 60.75, + 6206: 47, + 6207: 134, + 6208: 45.5, + 6209: 83.5, + 621: 68.5, + 6210: 29.625, + 6211: 44.5, + 6212: 53, + 6213: 64, + 6214: 78, + 6215: 66, + 6216: 60.25, + 6217: 35.5, + 6218: 64, + 6219: 66, + 622: 33, + 6220: 65, + 6221: 63.75, + 6222: 121.5, + 6223: 68, + 6224: 43, + 6225: 10.062, + 6226: 32, + 6227: 66.5, + 6228: 35.25, + 6229: 50.75, + 623: 63.25, + 6230: 68, + 6231: 39.75, + 6232: 19.125, + 6233: 30.375, + 6234: 56.5, + 6235: 68.5, + 6236: 37.75, + 6237: 132, + 6238: 26.5, + 6239: 31.5, + 624: 55.49999999999999, + 6240: 10.562, + 6241: 55, + 6242: 55, + 6243: 53, + 6244: 51.5, + 6245: 70.5, + 6246: 65.5, + 6247: 50, + 6248: 25.375, + 6249: 37, + 625: 66.5, + 6250: 2.922, + 6251: 78, + 6252: 55.75000000000001, + 6253: 29.75, + 6254: 47.75, + 6255: 61, + 6256: 61, + 6257: 99.5, + 6258: 49.25, + 6259: 63.25, + 626: 48.5, + 6260: 40.25, + 6261: 49, + 6262: 63.75, + 6263: 46.5, + 6264: 56.5, + 6265: 84.50000000000001, + 6266: 52.75, + 6267: 77.5, + 6268: 74.5, + 6269: 50.5, + 627: 87, + 6270: 24.5, + 6271: 43.24999999999999, + 6272: 50.25, + 6273: 57.75, + 6274: 68.5, + 6275: 44.25, + 6276: 51.25, + 6277: 29.875, + 6278: 38.25, + 6279: 92.5, + 628: 61.75, + 6280: 75, + 6281: 65.5, + 6282: 81, + 6283: 48.75, + 6284: 59.75, + 6285: 81.5, + 6286: 75.5, + 6287: 69, + 6288: 63.5, + 6289: 11.25, + 629: 40.25, + 6290: 67, + 6291: 13.938000000000002, + 6292: 19.5, + 6293: 63, + 6294: 55.5, + 6295: 62, + 6296: 46.25, + 6297: 68.5, + 6298: 63.25, + 6299: 40.75, + 63: 74.5, + 630: 31.124999999999996, + 6300: 49.25, + 6301: 44, + 6302: 41, + 6303: 0, + 6304: 90, + 6305: 57.25, + 6306: 45.75, + 6307: 42.5, + 6308: 49, + 6309: 52.25, + 631: 9.312, + 6310: 54.75, + 6311: 43, + 6312: 61.5, + 6313: 40.25, + 6314: 63.75000000000001, + 6315: 45.75, + 6316: 74.5, + 6317: 85, + 6318: 53.75, + 6319: 67.5, + 632: 56.5, + 6320: 24.625, + 6321: 41.75, + 6322: 38.25, + 6323: 48.5, + 6324: 50.75, + 6325: 78, + 6326: 53.5, + 6327: 65, + 6328: 34.25, + 6329: 30.125, + 633: 24.874999999999996, + 6330: 39.5, + 6331: 45.25, + 6332: 44.25, + 6333: 34.25, + 6334: 64, + 6335: 64, + 6336: 61.75, + 6337: 13.937999999999999, + 6338: 44.75, + 6339: 49.5, + 634: 66.5, + 6340: 0, + 6341: 23.875, + 6342: 45.5, + 6343: 70.5, + 6344: 44.25, + 6345: 58.75, + 6346: 92, + 6347: 64, + 6348: 30, + 6349: 63, + 635: 59.25, + 6350: 69, + 6351: 48.75, + 6352: 77.5, + 6353: 36.25, + 6354: 73.5, + 6355: 80.5, + 6356: 55.5, + 6357: 78, + 6358: 43.49999999999999, + 6359: 62.75, + 636: 46.75, + 6360: 66, + 6361: 54.25, + 6362: 70, + 6363: 37.25, + 6364: 67, + 6365: 69.5, + 6366: 49.75, + 6367: 42, + 6368: 42.75, + 6369: 52.75, + 637: 75, + 6370: 30.625, + 6371: 25.375, + 6372: 60, + 6373: 22.75, + 6374: 59.25, + 6375: 75, + 6376: 46.25, + 6377: 88, + 6378: 38.75, + 6379: 82, + 638: 61.75, + 6380: 52.5, + 6381: 45, + 6382: 15.562, + 6383: 21.75, + 6384: 51, + 6385: 51.25, + 6386: 49.25, + 6387: 72, + 6388: 50, + 6389: 85.5, + 639: 47, + 6390: 14.187999999999999, + 6391: 32.75, + 6392: 69, + 6393: 43, + 6394: 63.75, + 6395: 49.75, + 6396: 15.875, + 6397: 54, + 6398: 68, + 6399: 67.50000000000001, + 64: 44.25, + 640: 49.25, + 6400: 67, + 6401: 56, + 6402: 42, + 6403: 55.75, + 6404: 8.5, + 6405: 63.75, + 6406: 35.5, + 6407: 41, + 6408: 60.5, + 6409: 40.5, + 641: 72.5, + 6410: 19.625, + 6411: 58.25, + 6412: 62.50000000000001, + 6413: 34.75, + 6414: 45.75, + 6415: 34, + 6416: 41.75, + 6417: 75, + 6418: 72, + 6419: 67, + 642: 28.375, + 6420: 62.74999999999999, + 6421: 65.5, + 6422: 47.25, + 6423: 49.5, + 6424: 73.5, + 6425: 74, + 6426: 64, + 6427: 107.5, + 6428: 72, + 6429: 42.25, + 643: 59.5, + 6430: 39.25, + 6431: 18.375, + 6432: 54, + 6433: 44.75, + 6434: 60.25, + 6435: 69, + 6436: 19.625, + 6437: 45.5, + 6438: 40.75, + 6439: 68.5, + 644: 46.75, + 6440: 127, + 6441: 31.5, + 6442: 63.75, + 6443: 54.25, + 6444: 54.75, + 6445: 43.25, + 6446: 93.5, + 6447: 50, + 6448: 49, + 6449: 44.25, + 645: 54.75, + 6450: 60.25, + 6451: 84.5, + 6452: 18.375, + 6453: 41.5, + 6454: 69, + 6455: 52.5, + 6456: 48.5, + 6457: 52, + 6458: 50, + 6459: 78, + 646: 29.875, + 6460: 63, + 6461: 51.5, + 6462: 59.75, + 6463: 67, + 6464: 63.5, + 6465: 58.5, + 6466: 44.5, + 6467: 24.25, + 6468: 35, + 6469: 56.00000000000001, + 647: 56, + 6470: 47.5, + 6471: 58.25, + 6472: 39, + 6473: 74.5, + 6474: 61.25, + 6475: 61.75, + 6476: 55.5, + 6477: 57, + 6478: 53, + 6479: 82.5, + 648: 75, + 6480: 60.75, + 6481: 87.5, + 6482: 62.25, + 6483: 50.25, + 6484: 51.25, + 6485: 60, + 6486: 79, + 6487: 27.375, + 6488: 22.875, + 6489: 89.50000000000001, + 649: 49, + 6490: 62.5, + 6491: 37.75, + 6492: 115.5, + 6493: 55.75, + 6494: 19, + 6495: 71.5, + 6496: 51.5, + 6497: 60.75, + 6498: 76, + 6499: 55.75, + 65: 61.5, + 650: 69.5, + 6500: 68, + 6501: 92.5, + 6502: 86.5, + 6503: 56.25, + 6504: 46.75, + 6505: 49, + 6506: 23.5, + 6507: 28.625, + 6508: 59, + 6509: 0, + 651: 52.75, + 6510: 41.99999999999999, + 6511: 144, + 6512: 6.781, + 6513: 36, + 6514: 15.5, + 6515: 77.50000000000001, + 6516: 38.5, + 6517: 67.5, + 6518: 32, + 6519: 36.5, + 652: 64, + 6520: 82, + 6521: 50.75, + 6522: 31.75, + 6523: 121, + 6524: 65, + 6525: 81.5, + 6526: 73.5, + 6527: 44, + 6528: 71, + 6529: 78.5, + 653: 64.5, + 6530: 95.5, + 6531: 28.5, + 6532: 70, + 6533: 67.5, + 6534: 48.25, + 6535: 29.5, + 6536: 107, + 6537: 16.375, + 6538: 19, + 6539: 35, + 654: 70, + 6540: 41.75, + 6541: 58.25, + 6542: 45.25, + 6543: 57.75, + 6544: 29, + 6545: 29.75, + 6546: 55.25, + 6547: 56.75, + 6548: 64, + 6549: 10.25, + 655: 27, + 6550: 80, + 6551: 60.25, + 6552: 33.25, + 6553: 46.25, + 6554: 61.75, + 6555: 25.375, + 6556: 79, + 6557: 69.5, + 6558: 105.5, + 6559: 65, + 656: 22, + 6560: 55.25, + 6561: 37.75, + 6562: 58.75, + 6563: 53.75, + 6564: 45.5, + 6565: 45.5, + 6566: 53.25, + 6567: 48.75, + 6568: 92.00000000000001, + 6569: 70.5, + 657: 61.25, + 6570: 52.25, + 6571: 82, + 6572: 62, + 6573: 58.5, + 6574: 86.5, + 6575: 71.5, + 6576: 80.50000000000001, + 6577: 44.5, + 6578: 54.75, + 6579: 80.5, + 658: 45, + 6580: 83.49999999999999, + 6581: 33.25, + 6582: 59.5, + 6583: 72.5, + 6584: 77, + 6585: 41.75, + 6586: 61, + 6587: 61.75, + 6588: 53, + 6589: 55.75, + 659: 70.5, + 6590: 61.00000000000001, + 6591: 105.5, + 6592: 41, + 6593: 50.5, + 6594: 30.625, + 6595: 57, + 6596: 31.875, + 6597: 59.25000000000001, + 6598: 123, + 6599: 55, + 66: 58.74999999999999, + 660: 49.25, + 6600: 63, + 6601: 65, + 6602: 88, + 6603: 50.74999999999999, + 6604: 78, + 6605: 41.24999999999999, + 6606: 62.5, + 6607: 44.25, + 6608: 62.25, + 6609: 45, + 661: 59.50000000000001, + 6610: 42.5, + 6611: 53.74999999999999, + 6612: 78.99999999999999, + 6613: 39.75, + 6614: 55, + 6615: 22.25, + 6616: 36.5, + 6617: 80.5, + 6618: 36, + 6619: 54.25, + 662: 49.5, + 6620: 42.99999999999999, + 6621: 44, + 6622: 82.5, + 6623: 68, + 6624: 47.75, + 6625: 71.5, + 6626: 65.5, + 6627: 58, + 6628: 46.75, + 6629: 21.625, + 663: 42.75, + 6630: 41.25, + 6631: 86.5, + 6632: 60.25, + 6633: 83.5, + 6634: 73.5, + 6635: 12.125, + 6636: 31.374999999999996, + 6637: 45.5, + 6638: 39.75, + 6639: 71.5, + 664: 24.5, + 6640: 78, + 6641: 41.25, + 6642: 23.5, + 6643: 72.50000000000001, + 6644: 25, + 6645: 56.5, + 6646: 104, + 6647: 0, + 6648: 30.875000000000004, + 6649: 49.75, + 665: 35.25, + 6650: 22, + 6651: 64.5, + 6652: 48.5, + 6653: 58.25, + 6654: 52.5, + 6655: 96, + 6656: 65.5, + 6657: 82, + 6658: 63.00000000000001, + 6659: 31, + 666: 31.749999999999996, + 6660: 41.75, + 6661: 67, + 6662: 44, + 6663: 28, + 6664: 34, + 6665: 23.375, + 6666: 56.75, + 6667: 36.75, + 6668: 40.25, + 6669: 69.5, + 667: 81.5, + 6670: 76, + 6671: 56.5, + 6672: 51.75, + 6673: 59.5, + 6674: 60.25, + 6675: 60, + 6676: 78.5, + 6677: 73.5, + 6678: 78, + 6679: 44.75, + 668: 40.00000000000001, + 6680: 85, + 6681: 56.5, + 6682: 47, + 6683: 69, + 6684: 41, + 6685: 78.5, + 6686: 48, + 6687: 36.75, + 6688: 108, + 6689: 50.75, + 669: 121, + 6690: 38.5, + 6691: 50.75, + 6692: 66.5, + 6693: 29.25, + 6694: 27, + 6695: 66, + 6696: 82, + 6697: 60.75, + 6698: 41, + 6699: 60.25, + 67: 40, + 670: 20.5, + 6700: 49.75, + 6701: 73.5, + 6702: 46.75, + 6703: 124, + 6704: 54.25, + 6705: 64, + 6706: 49.75, + 6707: 12.688, + 6708: 56.75, + 6709: 48, + 671: 45.25, + 6710: 21.875, + 6711: 39.25, + 6712: 65, + 6713: 33, + 6714: 65.5, + 6715: 65.5, + 6716: 39.75, + 6717: 55.25, + 6718: 55, + 6719: 48.25, + 672: 50, + 6720: 56.25, + 6721: 24.375, + 6722: 47.25, + 6723: 51.25, + 6724: 50.5, + 6725: 44.25, + 6726: 48, + 6727: 65.5, + 6728: 69, + 6729: 36.5, + 673: 75, + 6730: 46.5, + 6731: 33.25, + 6732: 47.25, + 6733: 53, + 6734: 63.75, + 6735: 61.5, + 6736: 77.5, + 6737: 64.5, + 6738: 57, + 6739: 55.5, + 674: 75.5, + 6740: 40, + 6741: 80.5, + 6742: 53.25, + 6743: 59, + 6744: 62.75, + 6745: 79.5, + 6746: 47, + 6747: 48, + 6748: 86, + 6749: 47, + 675: 74, + 6750: 47.75, + 6751: 46, + 6752: 40.25, + 6753: 67, + 6754: 35.5, + 6755: 75.00000000000001, + 6756: 56.75, + 6757: 117.5, + 6758: 132, + 6759: 61.25, + 676: 61, + 6760: 58.75, + 6761: 86.5, + 6762: 63, + 6763: 62.75, + 6764: 36.5, + 6765: 14.188, + 6766: 60, + 6767: 27.875, + 6768: 43.75, + 6769: 80, + 677: 50.25, + 6770: 95.5, + 6771: 66, + 6772: 104.5, + 6773: 52.5, + 6774: 27.875, + 6775: 84.5, + 6776: 81.5, + 6777: 7.562, + 6778: 79.5, + 6779: 35.75, + 678: 46.25, + 6780: 50, + 6781: 82.5, + 6782: 64, + 6783: 61, + 6784: 27.625, + 6785: 11.562, + 6786: 30.375, + 6787: 63.75, + 6788: 59.75, + 6789: 24, + 679: 123, + 6790: 46.75000000000001, + 6791: 17.75, + 6792: 50.25, + 6793: 56.25, + 6794: 77, + 6795: 65.5, + 6796: 25.875, + 6797: 0, + 6798: 55.25, + 6799: 42.5, + 68: 50.5, + 680: 53.75, + 6800: 41.25, + 6801: 20, + 6802: 92.5, + 6803: 56.75, + 6804: 65.00000000000001, + 6805: 39, + 6806: 72, + 6807: 34.25, + 6808: 67, + 6809: 60.25, + 681: 5.938, + 6810: 75, + 6811: 51, + 6812: 64.5, + 6813: 75, + 6814: 83, + 6815: 42.75, + 6816: 43.25, + 6817: 68.5, + 6818: 62.25, + 6819: 61.75, + 682: 59.50000000000001, + 6820: 89.5, + 6821: 76, + 6822: 29.374999999999996, + 6823: 80.5, + 6824: 56.75, + 6825: 64.5, + 6826: 59, + 6827: 51.75, + 6828: 61.25000000000001, + 6829: 50.5, + 683: 16.625, + 6830: 24.375, + 6831: 42, + 6832: 18.625, + 6833: 56.25, + 6834: 0, + 6835: 55, + 6836: 35, + 6837: 52, + 6838: 64.5, + 6839: 50.75, + 684: 38.5, + 6840: 23.375, + 6841: 64.5, + 6842: 71, + 6843: 68.5, + 6844: 48, + 6845: 98, + 6846: 96.5, + 6847: 14.375, + 6848: 20.625, + 6849: 46.5, + 685: 74, + 6850: 59.25, + 6851: 27.874999999999996, + 6852: 38, + 6853: 42.75, + 6854: 22.75, + 6855: 64, + 6856: 29.875, + 6857: 39.75, + 6858: 60.25, + 6859: 35.5, + 686: 59.75, + 6860: 59, + 6861: 53.50000000000001, + 6862: 52.75, + 6863: 56, + 6864: 47.25, + 6865: 41.25, + 6866: 35.5, + 6867: 54, + 6868: 64, + 6869: 60, + 687: 34.5, + 6870: 45.74999999999999, + 6871: 30.875, + 6872: 75.5, + 6873: 43.75, + 6874: 81, + 6875: 62.75, + 6876: 63.25000000000001, + 6877: 63.25, + 6878: 46.75, + 6879: 66, + 688: 36.5, + 6880: 70, + 6881: 60, + 6882: 78.5, + 6883: 28.749999999999996, + 6884: 44.75, + 6885: 53.25, + 6886: 72.5, + 6887: 28.75, + 6888: 61.75, + 6889: 71.5, + 689: 39, + 6890: 85, + 6891: 80, + 6892: 69, + 6893: 76, + 6894: 31.499999999999996, + 6895: 46.99999999999999, + 6896: 25.75, + 6897: 36.75, + 6898: 39, + 6899: 58.24999999999999, + 69: 67.5, + 690: 72.5, + 6900: 118, + 6901: 55.5, + 6902: 51, + 6903: 36.5, + 6904: 43.5, + 6905: 138, + 6906: 33.25, + 6907: 56.24999999999999, + 6908: 23.5, + 6909: 72, + 691: 51.5, + 6910: 38.75, + 6911: 35.25, + 6912: 59.5, + 6913: 46.5, + 6914: 60.25, + 6915: 49.75, + 6916: 37, + 6917: 38.5, + 6918: 34, + 6919: 75.5, + 692: 59.25, + 6920: 40, + 6921: 30.374999999999996, + 6922: 51, + 6923: 45.25, + 6924: 60.25, + 6925: 33.75, + 6926: 40.75, + 6927: 125, + 6928: 55.25, + 6929: 51.25, + 693: 64, + 6930: 73, + 6931: 48.25, + 6932: 51.75, + 6933: 73.5, + 6934: 24.499999999999996, + 6935: 51.5, + 6936: 55, + 6937: 62.25, + 6938: 66, + 6939: 49.25, + 694: 48.5, + 6940: 54.24999999999999, + 6941: 35.25, + 6942: 31.5, + 6943: 58, + 6944: 27.75, + 6945: 54.75, + 6946: 57, + 6947: 15.438, + 6948: 66, + 6949: 43.25, + 695: 49.5, + 6950: 62.25, + 6951: 58.75, + 6952: 34, + 6953: 99.99999999999999, + 6954: 39, + 6955: 35.25, + 6956: 28.75, + 6957: 28, + 6958: 84.99999999999999, + 6959: 50.75, + 696: 126.5, + 6960: 75.5, + 6961: 35.75, + 6962: 71.5, + 6963: 47, + 6964: 74.5, + 6965: 23.875, + 6966: 39, + 6967: 57, + 6968: 66, + 6969: 79, + 697: 73.5, + 6970: 66.5, + 6971: 60.5, + 6972: 36.5, + 6973: 75, + 6974: 65, + 6975: 45, + 6976: 46.75, + 6977: 61.00000000000001, + 6978: 51.5, + 6979: 23.625, + 698: 46, + 6980: 120.5, + 6981: 64, + 6982: 85.49999999999999, + 6983: 118, + 6984: 39, + 6985: 62.25000000000001, + 6986: 130, + 6987: 49, + 6988: 46.5, + 6989: 58.75000000000001, + 699: 70, + 6990: 39.25, + 6991: 58.75, + 6992: 34, + 6993: 52, + 6994: 79, + 6995: 50.25, + 6996: 84.00000000000001, + 6997: 46.25, + 6998: 70.5, + 6999: 69.5, + 7: 39.25, + 70: 70.5, + 700: 39.75, + 7000: 54, + 7001: 60, + 7002: 137, + 7003: 47.5, + 7004: 47.25, + 7005: 92, + 7006: 46.75, + 7007: 54.25, + 7008: 69.5, + 7009: 52.25, + 701: 52.75, + 7010: 48.25, + 7011: 55.75, + 7012: 14.938, + 7013: 42, + 7014: 53.25, + 7015: 55.75, + 7016: 44, + 7017: 83.5, + 7018: 23.5, + 7019: 70.5, + 702: 59.75, + 7020: 44, + 7021: 54.5, + 7022: 56.5, + 7023: 66.5, + 7024: 60.25, + 7025: 80.5, + 7026: 76.5, + 7027: 55.25, + 7028: 123, + 7029: 32.75, + 703: 28.75, + 7030: 54.25, + 7031: 112, + 7032: 40.25, + 7033: 59.5, + 7034: 32.75, + 7035: 85, + 7036: 65.5, + 7037: 24.25, + 7038: 33.5, + 7039: 52, + 704: 47.75, + 7040: 49.25, + 7041: 70.5, + 7042: 49.5, + 7043: 35.25, + 7044: 39.5, + 7045: 12.438, + 7046: 32.25, + 7047: 39.75, + 7048: 62, + 7049: 37.5, + 705: 66, + 7050: 58.5, + 7051: 89, + 7052: 132, + 7053: 66, + 7054: 50.5, + 7055: 66.5, + 7056: 50.75, + 7057: 36.25, + 7058: 48, + 7059: 37.25, + 706: 55.75, + 7060: 28.875, + 7061: 12.812000000000001, + 7062: 76.5, + 7063: 51, + 7064: 64, + 7065: 58.75, + 7066: 74, + 7067: 27.875, + 7068: 49.75, + 7069: 61.75, + 707: 87.5, + 7070: 34, + 7071: 55.75, + 7072: 49.25, + 7073: 21.25, + 7074: 76, + 7075: 75.5, + 7076: 60.5, + 7077: 56, + 7078: 77.5, + 7079: 42.25000000000001, + 708: 40.25, + 7080: 70.5, + 7081: 43, + 7082: 63.75, + 7083: 71, + 7084: 40, + 7085: 71.5, + 7086: 136, + 7087: 132, + 7088: 33.25, + 7089: 72.5, + 709: 61.25, + 7090: 43, + 7091: 20, + 7092: 18.5, + 7093: 84.5, + 7094: 40.75, + 7095: 75, + 7096: 83.5, + 7097: 35.25, + 7098: 54.5, + 7099: 69, + 71: 97.5, + 710: 46.25, + 7100: 32.75, + 7101: 47, + 7102: 60, + 7103: 32.25, + 7104: 71, + 7105: 49.75, + 7106: 69, + 7107: 44.5, + 7108: 56, + 7109: 33.25, + 711: 20.5, + 7110: 53, + 7111: 46.75, + 7112: 77, + 7113: 32.75, + 7114: 65.5, + 7115: 34, + 7116: 56.5, + 7117: 40, + 7118: 73, + 7119: 55.75, + 712: 73, + 7120: 24.125, + 7121: 71.5, + 7122: 83.5, + 7123: 42.25000000000001, + 7124: 46.75, + 7125: 49.75, + 7126: 75, + 7127: 51.75, + 7128: 69, + 7129: 20.75, + 713: 66, + 7130: 26.375, + 7131: 76.5, + 7132: 28.749999999999996, + 7133: 61, + 7134: 21, + 7135: 58, + 7136: 58.75, + 7137: 134, + 7138: 71, + 7139: 66, + 714: 16, + 7140: 51.99999999999999, + 7141: 40.25, + 7142: 60, + 7143: 67, + 7144: 58.75, + 7145: 42.25, + 7146: 46.25, + 7147: 61, + 7148: 47, + 7149: 37, + 715: 37.75, + 7150: 34, + 7151: 57.75, + 7152: 68, + 7153: 36, + 7154: 67, + 7155: 49.75, + 7156: 43.75, + 7157: 108, + 7158: 60.25000000000001, + 7159: 85.5, + 716: 46.75, + 7160: 69.5, + 7161: 31.875, + 7162: 59.50000000000001, + 7163: 55.50000000000001, + 7164: 42.75, + 7165: 27, + 7166: 63, + 7167: 48, + 7168: 77.5, + 7169: 27.125, + 717: 64.5, + 7170: 50.5, + 7171: 52.25, + 7172: 47, + 7173: 57.25, + 7174: 69, + 7175: 38.75, + 7176: 39, + 7177: 59.75, + 7178: 32.5, + 7179: 44.75, + 718: 52, + 7180: 44.75, + 7181: 70, + 7182: 51.25, + 7183: 70, + 7184: 24.75, + 7185: 70, + 7186: 45.25, + 7187: 60.75, + 7188: 31.625, + 7189: 48.5, + 719: 49.5, + 7190: 58.75, + 7191: 22.5, + 7192: 56.5, + 7193: 37.5, + 7194: 66, + 7195: 46.25, + 7196: 62.49999999999999, + 7197: 51.25, + 7198: 65.5, + 7199: 56.75, + 72: 72.5, + 720: 61.75, + 7200: 35.75, + 7201: 74, + 7202: 59, + 7203: 57.5, + 7204: 86.5, + 7205: 63.75, + 7206: 131, + 7207: 63.99999999999999, + 7208: 70.5, + 7209: 69, + 721: 18.5, + 7210: 67, + 7211: 56, + 7212: 55.5, + 7213: 79, + 7214: 45.75, + 7215: 58, + 7216: 63.5, + 7217: 39.5, + 7218: 68.5, + 7219: 41.25, + 722: 61.75, + 7220: 47.25, + 7221: 39.5, + 7222: 38, + 7223: 56.25, + 7224: 97.5, + 7225: 29.875, + 7226: 59, + 7227: 75, + 7228: 13.875, + 7229: 31.5, + 723: 48.5, + 7230: 29.875, + 7231: 38.75, + 7232: 71, + 7233: 54.49999999999999, + 7234: 70.5, + 7235: 62, + 7236: 56.25, + 7237: 10.75, + 7238: 21.625, + 7239: 6.438, + 724: 21.625, + 7240: 22.875, + 7241: 38.25, + 7242: 40.25, + 7243: 44.75, + 7244: 42.75, + 7245: 55.75, + 7246: 49.5, + 7247: 74.5, + 7248: 45.5, + 7249: 75, + 725: 15.249999999999998, + 7250: 40, + 7251: 53.5, + 7252: 36.75, + 7253: 74, + 7254: 34.75, + 7255: 32.75, + 7256: 27.125, + 7257: 115, + 7258: 40.25, + 7259: 69.5, + 726: 62.5, + 7260: 75, + 7261: 75, + 7262: 84.5, + 7263: 67, + 7264: 1.266, + 7265: 93.5, + 7266: 45.75, + 7267: 91, + 7268: 47.5, + 7269: 76.5, + 727: 57, + 7270: 70, + 7271: 81, + 7272: 89.5, + 7273: 105, + 7274: 48.25, + 7275: 82, + 7276: 31, + 7277: 44.25, + 7278: 47.5, + 7279: 34.75, + 728: 68.5, + 7280: 49.25, + 7281: 59.5, + 7282: 40.25, + 7283: 66, + 7284: 0, + 7285: 120.5, + 7286: 30, + 7287: 86.99999999999999, + 7288: 30.625, + 7289: 22.5, + 729: 75, + 7290: 52.5, + 7291: 59.75, + 7292: 38.75, + 7293: 5.75, + 7294: 38, + 7295: 59, + 7296: 36.75, + 7297: 37.75, + 7298: 69, + 7299: 78.5, + 73: 52.75, + 730: 48.75, + 7300: 56.75, + 7301: 50.25, + 7302: 91.5, + 7303: 66.5, + 7304: 58.75, + 7305: 59.5, + 7306: 56.25, + 7307: 33.75, + 7308: 24.125, + 7309: 39.25, + 731: 59.75, + 7310: 60, + 7311: 60.25, + 7312: 53.5, + 7313: 3.578, + 7314: 35.25, + 7315: 50.25, + 7316: 57.25, + 7317: 50.75, + 7318: 16, + 7319: 71.5, + 732: 36.25, + 7320: 69, + 7321: 60, + 7322: 48.75, + 7323: 45.75, + 7324: 86.49999999999999, + 7325: 57.5, + 7326: 34, + 7327: 57.25, + 7328: 60.25, + 7329: 51, + 733: 15, + 7330: 65, + 7331: 50, + 7332: 59.25, + 7333: 41.25, + 7334: 73.5, + 7335: 52.5, + 7336: 52, + 7337: 69, + 7338: 70.5, + 7339: 56.5, + 734: 74, + 7340: 75.5, + 7341: 54, + 7342: 79, + 7343: 75.5, + 7344: 59.25, + 7345: 53.5, + 7346: 67.5, + 7347: 87, + 7348: 66, + 7349: 66.5, + 735: 48.75, + 7350: 76, + 7351: 69.5, + 7352: 47.25, + 7353: 72.5, + 7354: 73, + 7355: 57.75, + 7356: 63.75, + 7357: 44.5, + 7358: 51, + 7359: 45.75, + 736: 29.25, + 7360: 49.5, + 7361: 63.25, + 7362: 36.75, + 7363: 53.75, + 7364: 39.25, + 7365: 95.5, + 7366: 132, + 7367: 117.5, + 7368: 36.25, + 7369: 34.5, + 737: 64, + 7370: 76.5, + 7371: 35.75, + 7372: 27.25, + 7373: 73, + 7374: 26.625, + 7375: 70, + 7376: 78, + 7377: 59.75, + 7378: 37.5, + 7379: 41.75, + 738: 81.00000000000001, + 7380: 44.5, + 7381: 19.125, + 7382: 53, + 7383: 92, + 7384: 78.5, + 7385: 34.75, + 7386: 31.375, + 7387: 48.5, + 7388: 40.5, + 7389: 41.5, + 739: 51.25, + 7390: 68.5, + 7391: 18.25, + 7392: 16.5, + 7393: 52, + 7394: 56.75, + 7395: 52.25, + 7396: 82, + 7397: 56.25, + 7398: 46.75, + 7399: 81, + 74: 56.5, + 740: 79, + 7400: 56.00000000000001, + 7401: 83.5, + 7402: 52.75, + 7403: 45, + 7404: 38.75, + 7405: 38.5, + 7406: 40, + 7407: 40.25, + 7408: 44.75, + 7409: 60.50000000000001, + 741: 77.5, + 7410: 70.5, + 7411: 31.375, + 7412: 27.625, + 7413: 19.750000000000004, + 7414: 91, + 7415: 59.24999999999999, + 7416: 14.249999999999998, + 7417: 77, + 7418: 51.75, + 7419: 63.75, + 742: 42.75, + 7420: 75, + 7421: 35.25, + 7422: 25.5, + 7423: 68.5, + 7424: 34.75, + 7425: 0.527, + 7426: 37.5, + 7427: 57.74999999999999, + 7428: 65, + 7429: 132, + 743: 35, + 7430: 0, + 7431: 52, + 7432: 28.25, + 7433: 62.5, + 7434: 50.5, + 7435: 87, + 7436: 30, + 7437: 45.75, + 7438: 79.5, + 7439: 67.5, + 744: 32.25, + 7440: 45.75, + 7441: 63.25, + 7442: 65, + 7443: 57.5, + 7444: 71.5, + 7445: 54.75, + 7446: 60.5, + 7447: 33.25, + 7448: 61, + 7449: 28.25, + 745: 60.5, + 7450: 49.25, + 7451: 70, + 7452: 59.5, + 7453: 94, + 7454: 72.5, + 7455: 91.5, + 7456: 71, + 7457: 56.5, + 7458: 72.5, + 7459: 76.5, + 746: 70.5, + 7460: 14.438, + 7461: 75.5, + 7462: 45.5, + 7463: 46, + 7464: 47, + 7465: 61.25, + 7466: 76, + 7467: 55.25, + 7468: 65, + 7469: 43, + 747: 19.5, + 7470: 0, + 7471: 63.24999999999999, + 7472: 51.25, + 7473: 41, + 7474: 80.99999999999999, + 7475: 66, + 7476: 52.5, + 7477: 49.25, + 7478: 54, + 7479: 48.5, + 748: 74, + 7480: 47, + 7481: 72, + 7482: 36.75, + 7483: 62, + 7484: 64, + 7485: 52, + 7486: 49, + 7487: 53.25, + 7488: 34.75, + 7489: 66.5, + 749: 72, + 7490: 39.5, + 7491: 38, + 7492: 66, + 7493: 84, + 7494: 36.5, + 7495: 41, + 7496: 54, + 7497: 79, + 7498: 35.75, + 7499: 59.5, + 75: 79.5, + 750: 54.25, + 7500: 47, + 7501: 68, + 7502: 6.781, + 7503: 52.5, + 7504: 66.5, + 7505: 68.5, + 7506: 70.5, + 7507: 79.50000000000001, + 7508: 52, + 7509: 40.75, + 751: 56.75000000000001, + 7510: 65, + 7511: 75.5, + 7512: 60.25, + 7513: 49.25, + 7514: 62.25, + 7515: 68, + 7516: 61, + 7517: 73, + 7518: 38.50000000000001, + 7519: 46.75, + 752: 37.75, + 7520: 32.25, + 7521: 74, + 7522: 23.124999999999996, + 7523: 41.25, + 7524: 27.375, + 7525: 64.5, + 7526: 15.625, + 7527: 43.5, + 7528: 48.5, + 7529: 63.5, + 753: 136, + 7530: 96.5, + 7531: 60.25000000000001, + 7532: 41, + 7533: 21.125, + 7534: 52.25, + 7535: 28, + 7536: 52.75, + 7537: 39.75, + 7538: 71.5, + 7539: 55.25, + 754: 48.75, + 7540: 33.75, + 7541: 66.5, + 7542: 57.75, + 7543: 59.25, + 7544: 64.5, + 7545: 64, + 7546: 36.75, + 7547: 79.5, + 7548: 36.75, + 7549: 133, + 755: 23.625, + 7550: 53, + 7551: 65.5, + 7552: 53, + 7553: 71.5, + 7554: 66.5, + 7555: 37.25, + 7556: 60.5, + 7557: 87.5, + 7558: 61.75, + 7559: 131, + 756: 16.125, + 7560: 33.25, + 7561: 48.25, + 7562: 54.75, + 7563: 128, + 7564: 47.25, + 7565: 17.125, + 7566: 76, + 7567: 51.25, + 7568: 48, + 7569: 61, + 757: 31.5, + 7570: 30.124999999999996, + 7571: 129, + 7572: 53.5, + 7573: 73.5, + 7574: 50.5, + 7575: 43.75, + 7576: 47.75, + 7577: 47, + 7578: 8.625, + 7579: 51.00000000000001, + 758: 0, + 7580: 30.75, + 7581: 17.125, + 7582: 58.75, + 7583: 53.25, + 7584: 53.5, + 7585: 60.5, + 7586: 79, + 7587: 69.5, + 7588: 60, + 7589: 80.5, + 759: 46.75, + 7590: 53.75, + 7591: 68, + 7592: 65, + 7593: 41.25, + 7594: 29.375000000000004, + 7595: 37.25, + 7596: 82, + 7597: 65, + 7598: 72, + 7599: 49.75, + 76: 29.75, + 760: 45.25, + 7600: 95.5, + 7601: 126, + 7602: 71, + 7603: 30.75, + 7604: 75.5, + 7605: 38.5, + 7606: 75, + 7607: 84.5, + 7608: 68.5, + 7609: 73.5, + 761: 58.75, + 7610: 75, + 7611: 30.5, + 7612: 81, + 7613: 63.75, + 7614: 71, + 7615: 47.5, + 7616: 114.5, + 7617: 89, + 7618: 64.5, + 7619: 59.5, + 762: 40.5, + 7620: 51.75, + 7621: 69.5, + 7622: 20.125, + 7623: 64, + 7624: 53.49999999999999, + 7625: 26.125, + 7626: 30.875, + 7627: 32, + 7628: 59.25, + 7629: 70, + 763: 60.25, + 7630: 40.50000000000001, + 7631: 81.5, + 7632: 27.25, + 7633: 101, + 7634: 24.875, + 7635: 55, + 7636: 49, + 7637: 40.75, + 7638: 58.75, + 7639: 15.688000000000002, + 764: 55.75, + 7640: 52.24999999999999, + 7641: 90.5, + 7642: 45.75, + 7643: 79.5, + 7644: 25, + 7645: 70, + 7646: 43.5, + 7647: 79.5, + 7648: 49.75, + 7649: 48.25, + 765: 23.625, + 7650: 118.5, + 7651: 64, + 7652: 17.5, + 7653: 44.5, + 7654: 55, + 7655: 31.374999999999996, + 7656: 56.5, + 7657: 79.5, + 7658: 37.5, + 7659: 38.25, + 766: 20.625, + 7660: 11.375, + 7661: 24.875, + 7662: 48.75, + 7663: 48.75, + 7664: 61.25, + 7665: 57.5, + 7666: 80.49999999999999, + 7667: 91.00000000000001, + 7668: 104, + 7669: 75.5, + 767: 25.375, + 7670: 67, + 7671: 68, + 7672: 65, + 7673: 25.5, + 7674: 42.5, + 7675: 47.25, + 7676: 68.5, + 7677: 26.875, + 7678: 12.062, + 7679: 80.5, + 768: 74.5, + 7680: 62.75, + 7681: 136, + 7682: 77, + 7683: 166, + 7684: 77, + 7685: 59.75000000000001, + 7686: 66, + 7687: 51, + 7688: 51.75, + 7689: 68.5, + 769: 56.5, + 7690: 43.75, + 7691: 54.75, + 7692: 55.25, + 7693: 117, + 7694: 37.5, + 7695: 24.25, + 7696: 42.5, + 7697: 65, + 7698: 33.5, + 7699: 56.25, + 77: 31.625, + 770: 45.25000000000001, + 7700: 39.75, + 7701: 48.25, + 7702: 36.25, + 7703: 65.5, + 7704: 88.5, + 7705: 54.75, + 7706: 63, + 7707: 42.25, + 7708: 80.5, + 7709: 88, + 771: 55.5, + 7710: 123, + 7711: 60, + 7712: 19.5, + 7713: 31.75, + 7714: 57, + 7715: 72, + 7716: 50.75, + 7717: 68.5, + 7718: 31.875000000000004, + 7719: 48.5, + 772: 32.5, + 7720: 64.5, + 7721: 48.75, + 7722: 65, + 7723: 17.75, + 7724: 47, + 7725: 45.25, + 7726: 47.5, + 7727: 69.5, + 7728: 23, + 7729: 62.25, + 773: 36.75, + 7730: 32.75, + 7731: 79, + 7732: 47.25, + 7733: 62.25, + 7734: 62, + 7735: 55, + 7736: 25.875, + 7737: 84.5, + 7738: 37.5, + 7739: 54.25, + 774: 14.062000000000001, + 7740: 67.5, + 7741: 63.25, + 7742: 36.5, + 7743: 122.5, + 7744: 46.5, + 7745: 139, + 7746: 13.688000000000002, + 7747: 60, + 7748: 80.5, + 7749: 41.25, + 775: 34.5, + 7750: 30.5, + 7751: 27.999999999999996, + 7752: 46.5, + 7753: 23, + 7754: 50.75, + 7755: 54.75, + 7756: 45, + 7757: 57.75, + 7758: 60, + 7759: 35.5, + 776: 44.25, + 7760: 22.75, + 7761: 68.5, + 7762: 51, + 7763: 42.75, + 7764: 48.75, + 7765: 105, + 7766: 62.25, + 7767: 60.75, + 7768: 50, + 7769: 43.25, + 777: 18.75, + 7770: 73.5, + 7771: 61.25, + 7772: 11.438, + 7773: 76, + 7774: 26.5, + 7775: 62.25, + 7776: 61, + 7777: 104.99999999999999, + 7778: 28.875, + 7779: 43.75, + 778: 51.74999999999999, + 7780: 67, + 7781: 70.5, + 7782: 25.875, + 7783: 43.25, + 7784: 28.875, + 7785: 48.25, + 7786: 87.5, + 7787: 46.5, + 7788: 71, + 7789: 33.5, + 779: 77.5, + 7790: 56, + 7791: 93, + 7792: 52.24999999999999, + 7793: 37, + 7794: 42.25, + 7795: 33.75, + 7796: 56.25, + 7797: 28.625, + 7798: 32, + 7799: 30.5, + 78: 0, + 780: 26.875, + 7800: 62.75, + 7801: 51, + 7802: 49, + 7803: 81.5, + 7804: 61.25, + 7805: 42, + 7806: 53.75, + 7807: 47.75, + 7808: 37.25, + 7809: 69.5, + 781: 12.688, + 7810: 41, + 7811: 74, + 7812: 31.5, + 7813: 19.25, + 7814: 32.75, + 7815: 35.5, + 7816: 62.5, + 7817: 39, + 7818: 39.25, + 7819: 25.624999999999996, + 782: 93, + 7820: 48.75, + 7821: 65.5, + 7822: 48.25, + 7823: 46.75, + 7824: 62.5, + 7825: 48.75, + 7826: 36.75, + 7827: 49.75, + 7828: 57.75, + 7829: 47.5, + 783: 43.75, + 7830: 51, + 7831: 24.875, + 7832: 40, + 7833: 21, + 7834: 58.25, + 7835: 19.625, + 7836: 60, + 7837: 72, + 7838: 39.5, + 7839: 70.5, + 784: 53, + 7840: 59.5, + 7841: 96, + 7842: 65, + 7843: 50.75, + 7844: 67.5, + 7845: 69.5, + 7846: 57, + 7847: 56.5, + 7848: 35.25, + 7849: 52.5, + 785: 59, + 7850: 21, + 7851: 14.5, + 7852: 51.50000000000001, + 7853: 42.75, + 7854: 70.5, + 7855: 70.5, + 7856: 60.75, + 7857: 43.75, + 7858: 50, + 7859: 102.5, + 786: 158, + 7860: 5.031, + 7861: 55.5, + 7862: 31.125, + 7863: 79.5, + 7864: 40.25, + 7865: 65.5, + 7866: 49, + 7867: 92, + 7868: 58.5, + 7869: 49.5, + 787: 61, + 7870: 74.5, + 7871: 61.25, + 7872: 56.25, + 7873: 76, + 7874: 62, + 7875: 75.5, + 7876: 62.5, + 7877: 64, + 7878: 46.5, + 7879: 65, + 788: 74, + 7880: 48.49999999999999, + 7881: 44, + 7882: 35.5, + 7883: 36, + 7884: 54.5, + 7885: 68.5, + 7886: 66, + 7887: 64, + 7888: 45.25, + 7889: 32, + 789: 73.5, + 7890: 24.125, + 7891: 6.906, + 7892: 37, + 7893: 65, + 7894: 78.5, + 7895: 48.25, + 7896: 114.5, + 7897: 114.5, + 7898: 50.25, + 7899: 86.5, + 79: 56.5, + 790: 74, + 7900: 65, + 7901: 49.75, + 7902: 51, + 7903: 49, + 7904: 43, + 7905: 77, + 7906: 47, + 7907: 57.75, + 7908: 52.5, + 7909: 42.25, + 791: 51, + 7910: 72.5, + 7911: 64, + 7912: 48.25, + 7913: 53.75, + 7914: 46, + 7915: 82, + 7916: 62.49999999999999, + 7917: 0, + 7918: 69, + 7919: 50.75, + 792: 72, + 7920: 50.5, + 7921: 37, + 7922: 16.125, + 7923: 15.250000000000002, + 7924: 118, + 7925: 63.5, + 7926: 30.125, + 7927: 9.75, + 7928: 29.75, + 7929: 38.75, + 793: 29.625, + 7930: 88.5, + 7931: 59.5, + 7932: 64.5, + 7933: 54.5, + 7934: 58, + 7935: 61.75, + 7936: 25.375, + 7937: 56, + 7938: 79.5, + 7939: 71.5, + 794: 45.75, + 7940: 94.5, + 7941: 55, + 7942: 79.00000000000001, + 7943: 14.437999999999999, + 7944: 69.5, + 7945: 65, + 7946: 31.875, + 7947: 45.5, + 7948: 44.25, + 7949: 62.99999999999999, + 795: 66.5, + 7950: 54.75, + 7951: 46.25, + 7952: 56, + 7953: 84.5, + 7954: 123.5, + 7955: 71.5, + 7956: 47.25, + 7957: 41.75, + 7958: 45.25, + 7959: 52, + 796: 52.5, + 7960: 32, + 7961: 51, + 7962: 69.5, + 7963: 90, + 7964: 79.5, + 7965: 41.25, + 7966: 32.75, + 7967: 76, + 7968: 27.125, + 7969: 107.5, + 797: 42.25, + 7970: 52, + 7971: 57.49999999999999, + 7972: 72.5, + 7973: 83, + 7974: 31, + 7975: 79, + 7976: 49.5, + 7977: 46.5, + 7978: 59.5, + 7979: 48.25, + 798: 61, + 7980: 55.25, + 7981: 63.25, + 7982: 15.875, + 7983: 36.75, + 7984: 72, + 7985: 65, + 7986: 68, + 7987: 50.5, + 7988: 49.75, + 7989: 75, + 799: 37.5, + 7990: 60, + 7991: 55.5, + 7992: 76, + 7993: 23.25, + 7994: 79, + 7995: 50, + 7996: 61.5, + 7997: 61.5, + 7998: 61.5, + 7999: 37, + 8: 40.5, + 80: 60.25, + 800: 59.75, + 8000: 70, + 8001: 49, + 8002: 31.875, + 8003: 35.5, + 8004: 27.375, + 8005: 66.5, + 8006: 61.74999999999999, + 8007: 55, + 8008: 6.906, + 8009: 54.25, + 801: 53.5, + 8010: 39.75, + 8011: 137, + 8012: 45.5, + 8013: 42.75, + 8014: 41.5, + 8015: 60, + 8016: 58.25, + 8017: 59.25, + 8018: 61.5, + 8019: 63, + 802: 59.25, + 8020: 82, + 8021: 55.74999999999999, + 8022: 86.5, + 8023: 42, + 8024: 62.49999999999999, + 8025: 34.75, + 8026: 45.25, + 8027: 57.25, + 8028: 36.25, + 8029: 58.5, + 803: 51.75, + 8030: 59, + 8031: 71, + 8032: 53.25, + 8033: 50.25, + 8034: 47, + 8035: 58.25, + 8036: 90, + 8037: 61.25, + 8038: 48.75, + 8039: 14.938, + 804: 65.5, + 8040: 36.75, + 8041: 71.5, + 8042: 43.5, + 8043: 68.5, + 8044: 60.00000000000001, + 8045: 81, + 8046: 54.25, + 8047: 65.5, + 8048: 79, + 8049: 54.25, + 805: 41.75, + 8050: 113.5, + 8051: 44.25, + 8052: 36.75, + 8053: 45, + 8054: 64, + 8055: 54.24999999999999, + 8056: 76, + 8057: 76.5, + 8058: 72, + 8059: 52, + 806: 122.5, + 8060: 77, + 8061: 45.75, + 8062: 43.5, + 8063: 28.875, + 8064: 39, + 8065: 34.25, + 8066: 85, + 8067: 9.312, + 8068: 48.75, + 8069: 55.25, + 807: 27.374999999999993, + 8070: 50, + 8071: 29.75, + 8072: 57, + 8073: 61.25, + 8074: 32, + 8075: 43, + 8076: 20.125, + 8077: 63.5, + 8078: 65, + 8079: 78.5, + 808: 37.5, + 8080: 46.75, + 8081: 17.25, + 8082: 58.5, + 8083: 71.5, + 8084: 31.375, + 8085: 61.25, + 8086: 65, + 8087: 78, + 8088: 67, + 8089: 82.5, + 809: 45, + 8090: 49, + 8091: 69.5, + 8092: 36.25, + 8093: 61.00000000000001, + 8094: 60.25, + 8095: 64.5, + 8096: 44.75, + 8097: 66, + 8098: 23.125, + 8099: 27.25, + 81: 31.5, + 810: 43.24999999999999, + 8100: 38, + 8101: 29.375000000000004, + 8102: 160, + 8103: 37.75, + 8104: 49.75, + 8105: 56, + 8106: 38.5, + 8107: 41.25, + 8108: 30.250000000000004, + 8109: 134, + 811: 23.875, + 8110: 57.75, + 8111: 43.75, + 8112: 27.625, + 8113: 53, + 8114: 47.5, + 8115: 45.5, + 8116: 38.25, + 8117: 19, + 8118: 96.5, + 8119: 34.75, + 812: 60.75, + 8120: 74.5, + 8121: 53.25000000000001, + 8122: 69, + 8123: 67.5, + 8124: 63.49999999999999, + 8125: 44.5, + 8126: 67, + 8127: 36.5, + 8128: 40.75, + 8129: 39.5, + 813: 50.75, + 8130: 34, + 8131: 34.75, + 8132: 40, + 8133: 47, + 8134: 38.75, + 8135: 46, + 8136: 46.75, + 8137: 56, + 8138: 72, + 8139: 60, + 814: 22.875, + 8140: 52.5, + 8141: 50.25, + 8142: 41.24999999999999, + 8143: 90.5, + 8144: 43, + 8145: 61.75, + 8146: 82, + 8147: 26, + 8148: 38.5, + 8149: 49.5, + 815: 16.375, + 8150: 31.75, + 8151: 60.25, + 8152: 40.5, + 8153: 66.5, + 8154: 56.75, + 8155: 43.5, + 8156: 71, + 8157: 55, + 8158: 49, + 8159: 65.5, + 816: 13.938, + 8160: 43.5, + 8161: 30.875, + 8162: 65, + 8163: 49.75, + 8164: 54.75, + 8165: 52.25, + 8166: 54.5, + 8167: 67.5, + 8168: 48.24999999999999, + 8169: 47.74999999999999, + 817: 56.25, + 8170: 46, + 8171: 44, + 8172: 51.25, + 8173: 75, + 8174: 59.25, + 8175: 102.99999999999999, + 8176: 64, + 8177: 68.5, + 8178: 25.375, + 8179: 38.75, + 818: 66, + 8180: 80.49999999999999, + 8181: 40.25, + 8182: 48.75, + 8183: 56.5, + 8184: 46.25, + 8185: 40.25, + 8186: 62.75, + 8187: 43, + 8188: 60.75, + 8189: 44.75, + 819: 25.25, + 8190: 57.5, + 8191: 52.75, + 8192: 70, + 8193: 59.75, + 8194: 47.5, + 8195: 60.75, + 8196: 117.5, + 8197: 72, + 8198: 56.75, + 8199: 78.5, + 82: 94.5, + 820: 70.5, + 8200: 69.5, + 8201: 46.5, + 8202: 59.25, + 8203: 56.75, + 8204: 39, + 8205: 0, + 8206: 31.875, + 8207: 48.5, + 8208: 30.5, + 8209: 52.75, + 821: 21.125, + 8210: 117, + 8211: 55, + 8212: 77.5, + 8213: 39.5, + 8214: 58, + 8215: 57.5, + 8216: 54.5, + 8217: 55, + 8218: 64.5, + 8219: 75, + 822: 45.75, + 8220: 72.5, + 8221: 73.5, + 8222: 44.75, + 8223: 128, + 8224: 24.25, + 8225: 72, + 8226: 75.5, + 8227: 46, + 8228: 51.5, + 8229: 50.25, + 823: 27.625, + 8230: 35.25, + 8231: 71, + 8232: 66.5, + 8233: 52.5, + 8234: 51, + 8235: 60.5, + 8236: 53, + 8237: 71, + 8238: 59.49999999999999, + 8239: 16.25, + 824: 37.25, + 8240: 78, + 8241: 70.5, + 8242: 36.75, + 8243: 88.5, + 8244: 68, + 8245: 48.25, + 8246: 51.74999999999999, + 8247: 54.25, + 8248: 51, + 8249: 34.75, + 825: 45.25, + 8250: 47.5, + 8251: 75.5, + 8252: 86, + 8253: 59, + 8254: 54, + 8255: 43.75, + 8256: 73, + 8257: 28.5, + 8258: 41.5, + 8259: 41, + 826: 48.75, + 8260: 52.5, + 8261: 49, + 8262: 64.5, + 8263: 38.5, + 8264: 34.5, + 8265: 35, + 8266: 47.75, + 8267: 57.75, + 8268: 101.5, + 8269: 102, + 827: 89.50000000000001, + 8270: 55, + 8271: 39.5, + 8272: 40.75, + 8273: 21.125, + 8274: 65, + 8275: 68, + 8276: 20.125, + 8277: 56.5, + 8278: 76, + 8279: 65, + 828: 67, + 8280: 57, + 8281: 48.75, + 8282: 31.625, + 8283: 43.75, + 8284: 37, + 8285: 50, + 8286: 32.5, + 8287: 64, + 8288: 21.125, + 8289: 54, + 829: 43.75, + 8290: 52.25, + 8291: 27.375, + 8292: 21.625, + 8293: 44.75, + 8294: 55.5, + 8295: 40.5, + 8296: 48.25, + 8297: 70, + 8298: 74, + 8299: 30.5, + 83: 56.75, + 830: 66, + 8300: 70.5, + 8301: 47.5, + 8302: 33.75, + 8303: 21, + 8304: 93.5, + 8305: 48.5, + 8306: 53, + 8307: 54.25, + 8308: 43.25, + 8309: 84, + 831: 60, + 8310: 58.5, + 8311: 55, + 8312: 43, + 8313: 45, + 8314: 98.00000000000001, + 8315: 34, + 8316: 46, + 8317: 79.5, + 8318: 85, + 8319: 94.5, + 832: 57.5, + 8320: 36, + 8321: 86, + 8322: 41.75, + 8323: 70, + 8324: 61.75, + 8325: 62.49999999999999, + 8326: 41.24999999999999, + 8327: 39.25, + 8328: 69, + 8329: 110.5, + 833: 43.25, + 8330: 74, + 8331: 33, + 8332: 75, + 8333: 27.25, + 8334: 134, + 8335: 53.75, + 8336: 19.5, + 8337: 67, + 8338: 30.5, + 8339: 45.5, + 834: 71.5, + 8340: 69, + 8341: 44.75, + 8342: 72.5, + 8343: 45.25, + 8344: 13.125, + 8345: 72.5, + 8346: 41.75, + 8347: 22.875000000000004, + 8348: 50.75, + 8349: 56.75, + 835: 30.625, + 8350: 38.5, + 8351: 39, + 8352: 120, + 8353: 70.5, + 8354: 34.75, + 8355: 0, + 8356: 18.75, + 8357: 78.5, + 8358: 57, + 8359: 48, + 836: 34.5, + 8360: 55.25, + 8361: 55.75, + 8362: 62, + 8363: 59, + 8364: 81, + 8365: 81.5, + 8366: 35.5, + 8367: 57.5, + 8368: 45.5, + 8369: 68.5, + 837: 43.5, + 8370: 35.5, + 8371: 51.75, + 8372: 28, + 8373: 57.49999999999999, + 8374: 68.5, + 8375: 30.375, + 8376: 56, + 8377: 42.25, + 8378: 31.875, + 8379: 54.50000000000001, + 838: 30.25, + 8380: 54, + 8381: 40.75, + 8382: 15.688, + 8383: 46.5, + 8384: 51.25, + 8385: 56.25, + 8386: 64, + 8387: 48.25, + 8388: 61.25, + 8389: 77, + 839: 69, + 8390: 50.75, + 8391: 86, + 8392: 73.5, + 8393: 91.5, + 8394: 65, + 8395: 52.25, + 8396: 62.25000000000001, + 8397: 51.5, + 8398: 58.25, + 8399: 50, + 84: 29.000000000000004, + 840: 61.25, + 8400: 55.75, + 8401: 51.25, + 8402: 76, + 8403: 27, + 8404: 47.25, + 8405: 38.5, + 8406: 32.5, + 8407: 31.625000000000004, + 8408: 47, + 8409: 58.5, + 841: 76, + 8410: 61.24999999999999, + 8411: 56, + 8412: 64.5, + 8413: 56.5, + 8414: 36, + 8415: 66, + 8416: 44.25, + 8417: 102.5, + 8418: 31.25, + 8419: 48.25, + 842: 46, + 8420: 32, + 8421: 31.125000000000004, + 8422: 42.75, + 8423: 40, + 8424: 43, + 8425: 45.5, + 8426: 54.5, + 8427: 37.25, + 8428: 67.5, + 8429: 74, + 843: 48.25, + 8430: 36.75, + 8431: 84.5, + 8432: 40, + 8433: 13.5, + 8434: 36.75, + 8435: 59, + 8436: 83.5, + 8437: 12.188, + 8438: 48.75, + 8439: 57.25, + 844: 49.25, + 8440: 78, + 8441: 60, + 8442: 36.5, + 8443: 29.625, + 8444: 83, + 8445: 51.75, + 8446: 34.75, + 8447: 76, + 8448: 61.5, + 8449: 54, + 845: 54.75, + 8450: 14.562, + 8451: 102.5, + 8452: 68, + 8453: 56.5, + 8454: 56, + 8455: 102.99999999999999, + 8456: 59.75, + 8457: 46.75, + 8458: 66, + 8459: 48, + 846: 57.74999999999999, + 8460: 37.75, + 8461: 64, + 8462: 20.125000000000004, + 8463: 37, + 8464: 47.25, + 8465: 62, + 8466: 66, + 8467: 38, + 8468: 45.75, + 8469: 52.25, + 847: 31.875, + 8470: 66.5, + 8471: 79, + 8472: 11.875, + 8473: 87.49999999999999, + 8474: 44.25, + 8475: 44.5, + 8476: 49.75, + 8477: 28.5, + 8478: 64.5, + 8479: 24.375, + 848: 121, + 8480: 40.75, + 8481: 23, + 8482: 64.5, + 8483: 22.375, + 8484: 58.50000000000001, + 8485: 33.5, + 8486: 56, + 8487: 34.25, + 8488: 71.5, + 8489: 16.375, + 849: 49.5, + 8490: 40.75, + 8491: 92.5, + 8492: 46.75, + 8493: 44, + 8494: 63.75, + 8495: 65.5, + 8496: 28.25, + 8497: 58, + 8498: 46.75, + 8499: 64.5, + 85: 67.5, + 850: 48, + 8500: 64.5, + 8501: 29.375, + 8502: 65.5, + 8503: 48.75, + 8504: 60.5, + 8505: 71.5, + 8506: 92, + 8507: 59.75000000000001, + 8508: 0, + 8509: 77.99999999999999, + 851: 37, + 8510: 35.5, + 8511: 63.25, + 8512: 39, + 8513: 62.75, + 8514: 57, + 8515: 55.5, + 8516: 36, + 8517: 71.5, + 8518: 110, + 8519: 67, + 852: 58.75, + 8520: 85.5, + 8521: 32.5, + 8522: 57.25, + 8523: 22, + 8524: 106, + 8525: 13.688, + 8526: 51, + 8527: 37.5, + 8528: 27.375, + 8529: 63.5, + 853: 99.5, + 8530: 82.5, + 8531: 67, + 8532: 108.5, + 8533: 69, + 8534: 35.5, + 8535: 62.00000000000001, + 8536: 21, + 8537: 52, + 8538: 59.25, + 8539: 64.5, + 854: 52.75, + 8540: 36, + 8541: 21, + 8542: 44.5, + 8543: 67, + 8544: 41.5, + 8545: 39.5, + 8546: 69, + 8547: 79, + 8548: 105, + 8549: 30.75, + 855: 27.75, + 8550: 58.25, + 8551: 123.5, + 8552: 63.75, + 8553: 0, + 8554: 36.75, + 8555: 55, + 8556: 84.5, + 8557: 68, + 8558: 46, + 8559: 13.937999999999999, + 856: 61.5, + 8560: 48.75, + 8561: 43.25, + 8562: 60.75, + 8563: 70, + 8564: 51.75, + 8565: 46.5, + 8566: 54.99999999999999, + 8567: 69, + 8568: 54, + 8569: 46.25, + 857: 54.5, + 8570: 58.5, + 8571: 52.75, + 8572: 54.49999999999999, + 8573: 45.5, + 8574: 21.75, + 8575: 34.25, + 8576: 72, + 8577: 43, + 8578: 67.5, + 8579: 31, + 858: 67.5, + 8580: 10.188, + 8581: 57, + 8582: 26, + 8583: 65.5, + 8584: 74.5, + 8585: 0, + 8586: 45.75, + 8587: 70.5, + 8588: 34.75, + 8589: 65.5, + 859: 88.5, + 8590: 40.5, + 8591: 83, + 8592: 27.875, + 8593: 47.25, + 8594: 70, + 8595: 115.5, + 8596: 59, + 8597: 48.5, + 8598: 35.25, + 8599: 36, + 86: 57.75, + 860: 64, + 8600: 68, + 8601: 132, + 8602: 16.25, + 8603: 42.25, + 8604: 89, + 8605: 0, + 8606: 130, + 8607: 65.5, + 8608: 73, + 8609: 40.50000000000001, + 861: 72.5, + 8610: 62.25, + 8611: 30, + 8612: 33, + 8613: 65.5, + 8614: 39, + 8615: 45.5, + 8616: 133, + 8617: 23.625, + 8618: 66, + 8619: 44.5, + 862: 70.5, + 8620: 92.5, + 8621: 44.5, + 8622: 75.5, + 8623: 63.5, + 8624: 107, + 8625: 69, + 8626: 60, + 8627: 51.75, + 8628: 42.25, + 8629: 65.5, + 863: 62.5, + 8630: 15.938, + 8631: 63.5, + 8632: 54.25, + 8633: 55, + 8634: 41.75, + 8635: 75, + 8636: 62.5, + 8637: 57, + 8638: 75.5, + 8639: 54.00000000000001, + 864: 53.75, + 8640: 60.25, + 8641: 28.375, + 8642: 48.5, + 8643: 74.5, + 8644: 37.5, + 8645: 49, + 8646: 49.25, + 8647: 29.75, + 8648: 36.5, + 8649: 25, + 865: 70.5, + 8650: 72, + 8651: 34.5, + 8652: 48, + 8653: 33.25, + 8654: 65, + 8655: 43, + 8656: 76.5, + 8657: 54.25, + 8658: 62.5, + 8659: 28.625000000000004, + 866: 17.625, + 8660: 48.99999999999999, + 8661: 74, + 8662: 55.5, + 8663: 63.75, + 8664: 115.5, + 8665: 58.75, + 8666: 61.5, + 8667: 36, + 8668: 103.99999999999999, + 8669: 74.5, + 867: 76, + 8670: 16.25, + 8671: 36.25, + 8672: 42, + 8673: 39.25, + 8674: 70.5, + 8675: 10.188, + 8676: 65.5, + 8677: 84, + 8678: 54.5, + 8679: 79.5, + 868: 34.75, + 8680: 41.25, + 8681: 58.75, + 8682: 102.5, + 8683: 15.625, + 8684: 69.5, + 8685: 37.75, + 8686: 72.5, + 8687: 46.25, + 8688: 73.5, + 8689: 43.24999999999999, + 869: 6.5, + 8690: 38.5, + 8691: 63.25, + 8692: 64, + 8693: 85.5, + 8694: 70.5, + 8695: 55.5, + 8696: 47.75, + 8697: 57.5, + 8698: 45.25, + 8699: 18.875, + 87: 76, + 870: 60.25, + 8700: 55.25, + 8701: 34.5, + 8702: 41, + 8703: 50, + 8704: 136, + 8705: 57.75, + 8706: 47.25, + 8707: 21.5, + 8708: 47.75, + 8709: 50, + 871: 67, + 8710: 116.5, + 8711: 63.5, + 8712: 82.5, + 8713: 58.25, + 8714: 40, + 8715: 68.5, + 8716: 77, + 8717: 63.50000000000001, + 8718: 139, + 8719: 40, + 872: 51, + 8720: 61.5, + 8721: 68, + 8722: 52.25, + 8723: 84, + 8724: 42.25, + 8725: 65.5, + 8726: 53.5, + 8727: 38.25, + 8728: 54.5, + 8729: 56.25000000000001, + 873: 50.75, + 8730: 52.5, + 8731: 61, + 8732: 28.375, + 8733: 36.5, + 8734: 74.5, + 8735: 28.625000000000004, + 8736: 56.75000000000001, + 8737: 69, + 8738: 46.74999999999999, + 8739: 54, + 874: 24.875, + 8740: 49.74999999999999, + 8741: 58.5, + 8742: 55.75, + 8743: 49.25, + 8744: 53.25, + 8745: 58.99999999999999, + 8746: 33, + 8747: 41.5, + 8748: 48, + 8749: 53.25, + 875: 23.375, + 8750: 35.75, + 8751: 36.5, + 8752: 50.25, + 8753: 49.25, + 8754: 47.25, + 8755: 76.5, + 8756: 40, + 8757: 43.25, + 8758: 110.5, + 8759: 49.75, + 876: 56.75, + 8760: 25.25, + 8761: 54.5, + 8762: 31.625, + 8763: 68.5, + 8764: 44.75000000000001, + 8765: 52.75, + 8766: 73.5, + 8767: 53, + 8768: 72, + 8769: 36.25, + 877: 39.75, + 8770: 30.875, + 8771: 38.99999999999999, + 8772: 43, + 8773: 30.375, + 8774: 85.99999999999999, + 8775: 86, + 8776: 13.188, + 8777: 58.75000000000001, + 8778: 62.25, + 8779: 68.5, + 878: 61.5, + 8780: 49, + 8781: 71.5, + 8782: 48.75, + 8783: 62.74999999999999, + 8784: 49.75, + 8785: 87, + 8786: 58.75, + 8787: 72, + 8788: 27.875, + 8789: 43.25, + 879: 55.5, + 8790: 43.5, + 8791: 42.75, + 8792: 53, + 8793: 48.75, + 8794: 53, + 8795: 58, + 8796: 45.5, + 8797: 63.00000000000001, + 8798: 64, + 8799: 44, + 88: 66.5, + 880: 68.5, + 8800: 65.5, + 8801: 71, + 8802: 28.375, + 8803: 72, + 8804: 45, + 8805: 53, + 8806: 29.375, + 8807: 94, + 8808: 70, + 8809: 93, + 881: 51.25, + 8810: 0, + 8811: 78, + 8812: 48.5, + 8813: 75.5, + 8814: 36.25, + 8815: 72, + 8816: 45.25, + 8817: 62.50000000000001, + 8818: 37.75, + 8819: 61.25, + 882: 42.75, + 8820: 52.50000000000001, + 8821: 37.5, + 8822: 129, + 8823: 45.5, + 8824: 71, + 8825: 36, + 8826: 58.49999999999999, + 8827: 50.25, + 8828: 36.75, + 8829: 55.25, + 883: 48.5, + 8830: 5.469, + 8831: 64, + 8832: 52, + 8833: 54, + 8834: 62.75, + 8835: 33.25, + 8836: 41.75, + 8837: 105.5, + 8838: 31.25, + 8839: 32.25, + 884: 35.5, + 8840: 41, + 8841: 62.25, + 8842: 56.5, + 8843: 49.5, + 8844: 47.25, + 8845: 50, + 8846: 59.75, + 8847: 59.75000000000001, + 8848: 0, + 8849: 72.5, + 885: 57.75, + 8850: 65, + 8851: 31.75, + 8852: 33.25, + 8853: 69, + 8854: 50.5, + 8855: 76, + 8856: 55.5, + 8857: 70, + 8858: 55.75, + 8859: 45.75, + 886: 37.75, + 8860: 9.5, + 8861: 69, + 8862: 57, + 8863: 146, + 8864: 40.5, + 8865: 39.25, + 8866: 113.5, + 8867: 12.625, + 8868: 82, + 8869: 58.5, + 887: 44.25, + 8870: 47, + 8871: 29.375, + 8872: 90, + 8873: 123.5, + 8874: 48.75, + 8875: 57, + 8876: 55.25, + 8877: 51.00000000000001, + 8878: 20.625, + 8879: 58.5, + 888: 39.75, + 8880: 57.75000000000001, + 8881: 86.5, + 8882: 67.5, + 8883: 43.49999999999999, + 8884: 48, + 8885: 60.75, + 8886: 54, + 8887: 71.5, + 8888: 45.75, + 8889: 68, + 889: 78, + 8890: 49, + 8891: 29.374999999999996, + 8892: 55.25, + 8893: 83, + 8894: 70, + 8895: 53.25, + 8896: 16.125, + 8897: 55.75, + 8898: 22.5, + 8899: 75.5, + 89: 54.5, + 890: 58, + 8900: 17.125, + 8901: 67.5, + 8902: 54, + 8903: 9.875, + 8904: 67, + 8905: 29.375, + 8906: 39.5, + 8907: 75, + 8908: 31.25, + 8909: 34.25, + 891: 41.75, + 8910: 51, + 8911: 71.5, + 8912: 70, + 8913: 62.5, + 8914: 55.25, + 8915: 76, + 8916: 63.50000000000001, + 8917: 47.5, + 8918: 72, + 8919: 61.75000000000001, + 892: 52.50000000000001, + 8920: 34, + 8921: 58, + 8922: 37.5, + 8923: 58, + 8924: 46.75, + 8925: 67, + 8926: 46.5, + 8927: 78, + 8928: 64, + 8929: 34, + 893: 51.5, + 8930: 61.25, + 8931: 70, + 8932: 35.5, + 8933: 32, + 8934: 55.5, + 8935: 28.25, + 8936: 52.75, + 8937: 62, + 8938: 73, + 8939: 68, + 894: 53.25, + 8940: 65.5, + 8941: 13.687999999999999, + 8942: 81.5, + 8943: 25.875, + 8944: 47.75, + 8945: 33.5, + 8946: 57, + 8947: 66.5, + 8948: 77, + 8949: 58.75, + 895: 91.5, + 8950: 54, + 8951: 11.75, + 8952: 64.5, + 8953: 58.75, + 8954: 45.5, + 8955: 37.25, + 8956: 68, + 8957: 117.99999999999999, + 8958: 55.25, + 8959: 49.25, + 896: 60, + 8960: 68, + 8961: 34.25, + 8962: 9.062, + 8963: 59.50000000000001, + 8964: 65, + 8965: 77.5, + 8966: 100, + 8967: 46.25, + 8968: 70.5, + 8969: 63.5, + 897: 44.5, + 8970: 32.75, + 8971: 39.5, + 8972: 71, + 8973: 69.5, + 8974: 63.25, + 8975: 59, + 8976: 57, + 8977: 120, + 8978: 45.5, + 8979: 68, + 898: 75, + 8980: 74.5, + 8981: 51.25, + 8982: 41.75, + 8983: 35.5, + 8984: 32, + 8985: 77, + 8986: 71.5, + 8987: 50, + 8988: 33.5, + 8989: 44.25, + 899: 70, + 8990: 27.375000000000004, + 8991: 25, + 8992: 41.5, + 8993: 57, + 8994: 47.25, + 8995: 62.75, + 8996: 43.25, + 8997: 46.5, + 8998: 47.5, + 8999: 76.5, + 9: 59.25, + 90: 62.75, + 900: 72, + 9000: 23.625, + 9001: 71.5, + 9002: 32, + 9003: 42.25, + 9004: 49, + 9005: 51.25, + 9006: 69, + 9007: 73.5, + 9008: 51.75, + 9009: 74, + 901: 10.938, + 9010: 33.75, + 9011: 48.75, + 9012: 43, + 9013: 38.75, + 9014: 53, + 9015: 55.49999999999999, + 9016: 26.75, + 9017: 60.5, + 9018: 59.25, + 9019: 58, + 902: 59.49999999999999, + 9020: 50.5, + 9021: 40.25, + 9022: 52.25, + 9023: 59, + 9024: 44.25, + 9025: 63.99999999999999, + 9026: 45.25, + 9027: 36, + 9028: 14.625, + 9029: 90, + 903: 109, + 9030: 134, + 9031: 67, + 9032: 10.875, + 9033: 36.5, + 9034: 51, + 9035: 21.875, + 9036: 84, + 9037: 37.75, + 9038: 54.5, + 9039: 74.5, + 904: 69.5, + 9040: 104, + 9041: 59.5, + 9042: 21, + 9043: 28.375, + 9044: 72.5, + 9045: 69, + 9046: 50.5, + 9047: 41.75, + 9048: 48, + 9049: 29.875000000000004, + 905: 58.25, + 9050: 72.5, + 9051: 72.5, + 9052: 46.25, + 9053: 35.75, + 9054: 6.531, + 9055: 47, + 9056: 80, + 9057: 124.5, + 9058: 68, + 9059: 47, + 906: 38.25, + 9060: 41.5, + 9061: 42.5, + 9062: 25.75, + 9063: 43.25, + 9064: 77.99999999999999, + 9065: 77.5, + 9066: 11.562, + 9067: 67.5, + 9068: 36.25, + 9069: 54.75, + 907: 42.75, + 9070: 68.5, + 9071: 74.5, + 9072: 74.5, + 9073: 78, + 9074: 51.24999999999999, + 9075: 64.5, + 9076: 62.5, + 9077: 77, + 9078: 71.5, + 9079: 49.5, + 908: 61, + 9080: 66.5, + 9081: 72, + 9082: 84.50000000000001, + 9083: 56.5, + 9084: 66, + 9085: 29.875, + 9086: 47.75, + 9087: 42, + 9088: 99.5, + 9089: 40.25, + 909: 58, + 9090: 76.5, + 9091: 65.5, + 9092: 55.75, + 9093: 57.5, + 9094: 33.25, + 9095: 74.5, + 9096: 31.25, + 9097: 37.5, + 9098: 74, + 9099: 49, + 91: 42.75, + 910: 50.25, + 9100: 87.5, + 9101: 30.000000000000004, + 9102: 30.875, + 9103: 30.125, + 9104: 132, + 9105: 35.25, + 9106: 38, + 9107: 47.5, + 9108: 62.75, + 9109: 49, + 911: 54.75, + 9110: 32.25, + 9111: 57.24999999999999, + 9112: 48.75, + 9113: 49.75, + 9114: 23.5, + 9115: 58.5, + 9116: 34.25, + 9117: 37.75000000000001, + 9118: 55.75, + 9119: 59.25, + 912: 50, + 9120: 70.5, + 9121: 114.5, + 9122: 135, + 9123: 37.5, + 9124: 58.75, + 9125: 27.25, + 9126: 54, + 9127: 74, + 9128: 34, + 9129: 134, + 913: 48.5, + 9130: 65.5, + 9131: 69.5, + 9132: 47.74999999999999, + 9133: 94.5, + 9134: 12.625, + 9135: 71, + 9136: 101, + 9137: 38.75, + 9138: 47.25, + 9139: 78, + 914: 127.5, + 9140: 74.5, + 9141: 48, + 9142: 48, + 9143: 49.75, + 9144: 39, + 9145: 55.25, + 9146: 72.5, + 9147: 17.375, + 9148: 56.75, + 9149: 24.625, + 915: 30, + 9150: 47.25, + 9151: 9.125, + 9152: 48.75, + 9153: 61, + 9154: 67.5, + 9155: 57.25, + 9156: 64, + 9157: 30.999999999999996, + 9158: 62, + 9159: 36.25, + 916: 30.125, + 9160: 30.25, + 9161: 63, + 9162: 53.25, + 9163: 14.562, + 9164: 40.5, + 9165: 70.5, + 9166: 77.5, + 9167: 60.5, + 9168: 48, + 9169: 64, + 917: 39, + 9170: 23.75, + 9171: 36.25, + 9172: 60.5, + 9173: 68.5, + 9174: 34.25, + 9175: 42, + 9176: 31.75, + 9177: 60.75, + 9178: 109, + 9179: 71, + 918: 72, + 9180: 44.25, + 9181: 40, + 9182: 59.25, + 9183: 55.25, + 9184: 127, + 9185: 47.25, + 9186: 58.5, + 9187: 64.49999999999999, + 9188: 42, + 9189: 40.5, + 919: 46.25, + 9190: 38, + 9191: 71.5, + 9192: 57.25, + 9193: 16.75, + 9194: 50.75, + 9195: 52, + 9196: 58.75, + 9197: 21.375, + 9198: 22.75, + 9199: 124.5, + 92: 37.25, + 920: 46.75, + 9200: 54, + 9201: 29.25, + 9202: 56.5, + 9203: 43.50000000000001, + 9204: 41.5, + 9205: 72.5, + 9206: 32, + 9207: 70, + 9208: 59.75000000000001, + 9209: 25.875, + 921: 52.75, + 9210: 48, + 9211: 35, + 9212: 52.25, + 9213: 85.5, + 9214: 62.25, + 9215: 28.375, + 9216: 69, + 9217: 43.75, + 9218: 61, + 9219: 48.5, + 922: 0, + 9220: 4.5, + 9221: 35.5, + 9222: 31.625, + 9223: 28.5, + 9224: 79, + 9225: 55.5, + 9226: 36.25, + 9227: 70, + 9228: 69, + 9229: 61.75, + 923: 62, + 9230: 39.5, + 9231: 92, + 9232: 30.999999999999996, + 9233: 92.5, + 9234: 34, + 9235: 60.25, + 9236: 42.5, + 9237: 105.5, + 9238: 77.00000000000001, + 9239: 86.5, + 924: 72.5, + 9240: 63, + 9241: 62.5, + 9242: 45, + 9243: 39.25, + 9244: 43.75, + 9245: 86.5, + 9246: 30.750000000000004, + 9247: 35, + 9248: 61.5, + 9249: 49.5, + 925: 72.5, + 9250: 67.5, + 9251: 78.5, + 9252: 67, + 9253: 71, + 9254: 63.25, + 9255: 37.5, + 9256: 49, + 9257: 34.25, + 9258: 42, + 9259: 58, + 926: 58.75, + 9260: 120.5, + 9261: 86, + 9262: 72.5, + 9263: 40.25, + 9264: 19.75, + 9265: 45.5, + 9266: 67, + 9267: 47.5, + 9268: 52.25, + 9269: 71.5, + 927: 77.5, + 9270: 69.5, + 9271: 38.5, + 9272: 90, + 9273: 45.5, + 9274: 54.75, + 9275: 37.75, + 9276: 48.5, + 9277: 69.5, + 9278: 79, + 9279: 39.5, + 928: 30.874999999999996, + 9280: 47.5, + 9281: 52.75, + 9282: 53.5, + 9283: 38.5, + 9284: 53.25, + 9285: 58, + 9286: 66.5, + 9287: 77.5, + 9288: 36.25, + 9289: 69, + 929: 63.49999999999999, + 9290: 80, + 9291: 84, + 9292: 68, + 9293: 55, + 9294: 34.25, + 9295: 104.99999999999999, + 9296: 62.75, + 9297: 60.75, + 9298: 47.5, + 9299: 57, + 93: 77.5, + 930: 34.25, + 9300: 51.25, + 9301: 25.875, + 9302: 54.75, + 9303: 43.5, + 9304: 50.5, + 9305: 61.25, + 9306: 33.5, + 9307: 33, + 9308: 26, + 9309: 54.25, + 931: 48.25, + 9310: 62, + 9311: 71.5, + 9312: 65.5, + 9313: 66, + 9314: 72.5, + 9315: 53, + 9316: 71, + 9317: 10.312, + 9318: 45.75, + 9319: 41, + 932: 86.50000000000001, + 9320: 55.25, + 9321: 52.75, + 9322: 43, + 9323: 50.25, + 9324: 71, + 9325: 41, + 9326: 47.75, + 9327: 47, + 9328: 12.625, + 9329: 36.25, + 933: 41.25, + 9330: 69, + 9331: 60.5, + 9332: 63.25, + 9333: 35, + 9334: 39.25, + 9335: 53, + 9336: 42, + 9337: 75, + 9338: 60, + 9339: 28.625, + 934: 66, + 9340: 98.5, + 9341: 23.625, + 9342: 53.5, + 9343: 73.5, + 9344: 27.25, + 9345: 72, + 9346: 35.5, + 9347: 24.625, + 9348: 59.25, + 9349: 52, + 935: 124.5, + 9350: 27, + 9351: 49.75, + 9352: 41.25, + 9353: 50.75, + 9354: 31.875000000000004, + 9355: 35.25, + 9356: 57.5, + 9357: 47, + 9358: 18, + 9359: 126.5, + 936: 46, + 9360: 55.75, + 9361: 41.75, + 9362: 73.5, + 9363: 45, + 9364: 42.25, + 9365: 19.125, + 9366: 21.5, + 9367: 44, + 9368: 32.5, + 9369: 100.5, + 937: 52, + 9370: 13.938, + 9371: 28.125, + 9372: 56, + 9373: 74.5, + 9374: 43.25, + 9375: 28.999999999999996, + 9376: 59.5, + 9377: 86.5, + 9378: 40, + 9379: 61, + 938: 47, + 9380: 56.75, + 9381: 51.75, + 9382: 50, + 9383: 39.75, + 9384: 72.5, + 9385: 72, + 9386: 47.99999999999999, + 9387: 41, + 9388: 52, + 9389: 16.25, + 939: 69.5, + 9390: 50.75, + 9391: 100, + 9392: 62, + 9393: 63.5, + 9394: 41.75, + 9395: 48.5, + 9396: 35.75, + 9397: 87.50000000000001, + 9398: 31.375, + 9399: 106, + 94: 53.75, + 940: 46.5, + 9400: 89.5, + 9401: 65.5, + 9402: 55.25, + 9403: 60.75, + 9404: 48.75, + 9405: 72, + 9406: 44.75, + 9407: 44.75, + 9408: 27.75, + 9409: 52.75, + 941: 72.5, + 9410: 81.00000000000001, + 9411: 40.5, + 9412: 63, + 9413: 65, + 9414: 40.25000000000001, + 9415: 37.75, + 9416: 76.5, + 9417: 43, + 9418: 42.25, + 9419: 49.25, + 942: 28.75, + 9420: 18.875, + 9421: 64, + 9422: 36.25, + 9423: 83, + 9424: 68, + 9425: 82.5, + 9426: 65.5, + 9427: 93.5, + 9428: 75, + 9429: 40.25, + 943: 17.75, + 9430: 27.625, + 9431: 46.5, + 9432: 62.5, + 9433: 25.875, + 9434: 86.5, + 9435: 68.5, + 9436: 75, + 9437: 58.25, + 9438: 46.5, + 9439: 45.25, + 944: 38.75000000000001, + 9440: 25.25, + 9441: 45.75, + 9442: 39.25, + 9443: 43.25, + 9444: 26.625, + 9445: 50.75, + 9446: 60.5, + 9447: 44, + 9448: 36.75, + 9449: 56.25, + 945: 18.125, + 9450: 55, + 9451: 57.50000000000001, + 9452: 61.75000000000001, + 9453: 65.5, + 9454: 54.49999999999999, + 9455: 45.75, + 9456: 62.25, + 9457: 42.5, + 9458: 32, + 9459: 31, + 946: 89.5, + 9460: 51, + 9461: 42.5, + 9462: 73, + 9463: 61, + 9464: 61.5, + 9465: 62.5, + 9466: 24.125, + 9467: 63.25, + 9468: 45, + 9469: 51.25, + 947: 80, + 9470: 43, + 9471: 67, + 9472: 40.25, + 9473: 33.75, + 9474: 67.5, + 9475: 88, + 9476: 64.5, + 9477: 71, + 9478: 57.25, + 9479: 72, + 948: 44.25, + 9480: 51.25, + 9481: 66, + 9482: 65, + 9483: 101.00000000000001, + 9484: 51.25, + 9485: 70.5, + 9486: 37.75, + 9487: 23.125, + 9488: 21.5, + 9489: 28, + 949: 57.25, + 9490: 71, + 9491: 53.75, + 9492: 30.375, + 9493: 26.375, + 9494: 52, + 9495: 65, + 9496: 46, + 9497: 14.811999999999998, + 9498: 52.5, + 9499: 84.50000000000001, + 95: 61.75000000000001, + 950: 20.625, + 9500: 56.75, + 9501: 26.375, + 9502: 49.5, + 9503: 77, + 9504: 51.25, + 9505: 35.5, + 9506: 50.5, + 9507: 54.5, + 9508: 80, + 9509: 70, + 951: 29.5, + 9510: 7.094, + 9511: 39, + 9512: 72, + 9513: 30.875, + 9514: 66, + 9515: 85.49999999999999, + 9516: 71.5, + 9517: 54.25, + 9518: 37.5, + 9519: 62.5, + 952: 69.5, + 9520: 65.5, + 9521: 18.875, + 9522: 20.75, + 9523: 41.75, + 9524: 36.25, + 9525: 40.5, + 9526: 15.687999999999999, + 9527: 71.5, + 9528: 121.5, + 9529: 67.5, + 953: 29.25, + 9530: 105, + 9531: 37.24999999999999, + 9532: 42.5, + 9533: 58.75, + 9534: 32.75, + 9535: 65.5, + 9536: 48.5, + 9537: 68.5, + 9538: 66, + 9539: 59.75, + 954: 46.5, + 9540: 26.625, + 9541: 68, + 9542: 25, + 9543: 42, + 9544: 32.5, + 9545: 80, + 9546: 120, + 9547: 39.5, + 9548: 66, + 9549: 20.875, + 955: 93, + 9550: 59.5, + 9551: 19.875, + 9552: 40.5, + 9553: 0, + 9554: 52.75, + 9555: 45.5, + 9556: 72, + 9557: 57.25, + 9558: 39, + 9559: 62.25, + 956: 67.5, + 9560: 54.5, + 9561: 46, + 9562: 50.5, + 9563: 48.25, + 9564: 16.5, + 9565: 50.5, + 9566: 66, + 9567: 69, + 9568: 90.5, + 9569: 40.75, + 957: 66.5, + 9570: 47.5, + 9571: 44, + 9572: 35.75, + 9573: 59.5, + 9574: 34, + 9575: 50, + 9576: 49.25, + 9577: 38.75, + 9578: 59.24999999999999, + 9579: 50.75, + 958: 44.5, + 9580: 66, + 9581: 61.5, + 9582: 39.5, + 9583: 46.75, + 9584: 90.5, + 9585: 23.625, + 9586: 54.25, + 9587: 55.25, + 9588: 28.625, + 9589: 82.5, + 959: 33.75, + 9590: 49, + 9591: 85.5, + 9592: 87.5, + 9593: 71.5, + 9594: 59, + 9595: 57.5, + 9596: 57.25000000000001, + 9597: 59.5, + 9598: 67, + 9599: 60, + 96: 65.5, + 960: 40.25, + 9600: 62.25, + 9601: 41.75, + 9602: 36.25, + 9603: 39, + 9604: 18, + 9605: 62.75, + 9606: 39.25, + 9607: 37, + 9608: 73.5, + 9609: 17, + 961: 51.75, + 9610: 31.375, + 9611: 74, + 9612: 52.25, + 9613: 54.25, + 9614: 54.25, + 9615: 30.75, + 9616: 82.5, + 9617: 72, + 9618: 52.50000000000001, + 9619: 47.75, + 962: 28.125, + 9620: 47.5, + 9621: 38.75, + 9622: 26.125, + 9623: 41.75, + 9624: 28.125, + 9625: 63.5, + 9626: 83, + 9627: 51, + 9628: 35.5, + 9629: 52.25, + 963: 74, + 9630: 60.5, + 9631: 79.5, + 9632: 39, + 9633: 23.125, + 9634: 64, + 9635: 61, + 9636: 47.75, + 9637: 73.5, + 9638: 73.5, + 9639: 48, + 964: 125.5, + 9640: 52.25, + 9641: 69, + 9642: 65.5, + 9643: 70.5, + 9644: 52.75, + 9645: 54, + 9646: 52.5, + 9647: 80.5, + 9648: 66, + 9649: 31.25, + 965: 58.75, + 9650: 66.5, + 9651: 59, + 9652: 61.25, + 9653: 33, + 9654: 36.75, + 9655: 68, + 9656: 50.25, + 9657: 25.375, + 9658: 40.5, + 9659: 41.25, + 966: 39.75, + 9660: 60, + 9661: 13.375, + 9662: 25.625, + 9663: 72, + 9664: 62.5, + 9665: 50.5, + 9666: 54.50000000000001, + 9667: 22.625, + 9668: 36, + 9669: 57.75, + 967: 59, + 9670: 31.5, + 9671: 62.25, + 9672: 26.125, + 9673: 51, + 9674: 38.99999999999999, + 9675: 8.062, + 9676: 62.25, + 9677: 21.25, + 9678: 56.75, + 9679: 65, + 968: 57.75, + 9680: 69, + 9681: 90.5, + 9682: 51.75, + 9683: 31.875, + 9684: 35.25, + 9685: 35.25, + 9686: 60.5, + 9687: 53.49999999999999, + 9688: 70.5, + 9689: 63.75, + 969: 64.5, + 9690: 27.25, + 9691: 20, + 9692: 47.75, + 9693: 76.5, + 9694: 73, + 9695: 61.5, + 9696: 62.25, + 9697: 61.25, + 9698: 67.5, + 9699: 43, + 97: 67, + 970: 75.5, + 9700: 65.5, + 9701: 49.5, + 9702: 130, + 9703: 36.75, + 9704: 40, + 9705: 40.24999999999999, + 9706: 58.5, + 9707: 35, + 9708: 71.5, + 9709: 24.25, + 971: 39.25, + 9710: 61.5, + 9711: 31.5, + 9712: 49.25, + 9713: 55, + 9714: 63.25, + 9715: 51, + 9716: 21.25, + 9717: 43.5, + 9718: 48.99999999999999, + 9719: 26.5, + 972: 126, + 9720: 35.75, + 9721: 78, + 9722: 76.5, + 9723: 56.25, + 9724: 12.812, + 9725: 75.5, + 9726: 18.25, + 9727: 33.75, + 9728: 54.75, + 9729: 92, + 973: 43.75, + 9730: 61, + 9731: 58, + 9732: 63.5, + 9733: 33.25, + 9734: 53.5, + 9735: 66.5, + 9736: 60.5, + 9737: 109, + 9738: 49.75, + 9739: 58.5, + 974: 61.50000000000001, + 9740: 38.75, + 9741: 31.125, + 9742: 27.875, + 9743: 52.75, + 9744: 37, + 9745: 38.5, + 9746: 65, + 9747: 31.750000000000004, + 9748: 41.5, + 9749: 40.25, + 975: 47.75, + 9750: 69.5, + 9751: 80.5, + 9752: 80.5, + 9753: 13.312, + 9754: 73, + 9755: 57.75, + 9756: 19.75, + 9757: 49, + 9758: 50, + 9759: 44.75000000000001, + 976: 54.24999999999999, + 9760: 17.375, + 9761: 86, + 9762: 26.125, + 9763: 33.25, + 9764: 66.5, + 9765: 21.000000000000004, + 9766: 30.75, + 9767: 63.75, + 9768: 46, + 9769: 48.25, + 977: 72.5, + 9770: 54.5, + 9771: 61.5, + 9772: 58.5, + 9773: 37.75, + 9774: 51.75, + 9775: 51.75000000000001, + 9776: 82, + 9777: 25.5, + 9778: 32.5, + 9779: 28.5, + 978: 63.75000000000001, + 9780: 47.75, + 9781: 47.75000000000001, + 9782: 52.25, + 9783: 47.5, + 9784: 43.5, + 9785: 29.25, + 9786: 47, + 9787: 90.50000000000001, + 9788: 13.75, + 9789: 86, + 979: 63, + 9790: 31.625, + 9791: 55.75, + 9792: 63.75, + 9793: 61.75, + 9794: 77, + 9795: 80, + 9796: 51.50000000000001, + 9797: 50.75, + 9798: 81, + 9799: 47.75, + 98: 57, + 980: 25.75, + 9800: 0, + 9801: 63.25, + 9802: 49.75, + 9803: 72.5, + 9804: 73, + 9805: 23, + 9806: 38.25, + 9807: 62, + 9808: 64.5, + 9809: 52.5, + 981: 29.875, + 9810: 80, + 9811: 35.25, + 9812: 57.75, + 9813: 77, + 9814: 23.125, + 9815: 65.5, + 9816: 75, + 9817: 56.25, + 9818: 25.25, + 9819: 62.25, + 982: 76.5, + 9820: 66.5, + 9821: 40.75, + 9822: 70, + 9823: 72, + 9824: 56.75, + 9825: 78, + 9826: 78.5, + 9827: 69.5, + 9828: 48.25, + 9829: 55.25, + 983: 8.562, + 9830: 61, + 9831: 69.5, + 9832: 73, + 9833: 41.25, + 9834: 63.25, + 9835: 49.25, + 9836: 38.75, + 9837: 35, + 9838: 53.75, + 9839: 63.25, + 984: 61.75, + 9840: 46.25, + 9841: 62, + 9842: 20.375, + 9843: 8.438, + 9844: 26.875, + 9845: 78.5, + 9846: 10.5, + 9847: 40.75, + 9848: 48.5, + 9849: 47.5, + 985: 26.25, + 9850: 60, + 9851: 33, + 9852: 35.25, + 9853: 34.75, + 9854: 62.5, + 9855: 30.875, + 9856: 57, + 9857: 33.75, + 9858: 86.5, + 9859: 60.75, + 986: 37, + 9860: 54.5, + 9861: 72, + 9862: 41, + 9863: 57.75, + 9864: 70.5, + 9865: 39, + 9866: 76.5, + 9867: 87.5, + 9868: 43.5, + 9869: 100, + 987: 42, + 9870: 45.5, + 9871: 62, + 9872: 30.375, + 9873: 89, + 9874: 80.5, + 9875: 66.5, + 9876: 61.5, + 9877: 71.5, + 9878: 82.5, + 9879: 70.5, + 988: 88.50000000000001, + 9880: 27.5, + 9881: 0.262, + 9882: 102.5, + 9883: 28, + 9884: 50, + 9885: 69, + 9886: 72.5, + 9887: 40.75, + 9888: 43.99999999999999, + 9889: 44.75, + 989: 66.5, + 9890: 3.375, + 9891: 21.375, + 9892: 61, + 9893: 38.75, + 9894: 27.875, + 9895: 110.5, + 9896: 71, + 9897: 39.25, + 9898: 64.5, + 9899: 52.75, + 99: 66, + 990: 45.25000000000001, + 9900: 41, + 9901: 71.5, + 9902: 31.875, + 9903: 50.5, + 9904: 65, + 9905: 100.5, + 9906: 66.5, + 9907: 77, + 9908: 53.25, + 9909: 117.5, + 991: 78.5, + 9910: 51.25, + 9911: 21.5, + 9912: 61.25, + 9913: 51.75, + 9914: 42.75, + 9915: 65, + 9916: 58, + 9917: 51.5, + 9918: 90.50000000000001, + 9919: 39, + 992: 38.25, + 9920: 58.5, + 9921: 64.5, + 9922: 29.25, + 9923: 54.5, + 9924: 31.75, + 9925: 17.625, + 9926: 69, + 9927: 51.75, + 9928: 15.561999999999998, + 9929: 46.25, + 993: 30.75, + 9930: 72.5, + 9931: 71.5, + 9932: 39.25, + 9933: 46.25, + 9934: 32.5, + 9935: 67, + 9936: 61.99999999999999, + 9937: 55.75, + 9938: 44.25, + 9939: 73.5, + 994: 35.25, + 9940: 40.75, + 9941: 53, + 9942: 55.99999999999999, + 9943: 49.25, + 9944: 68, + 9945: 41.25, + 9946: 38, + 9947: 85.5, + 9948: 64, + 9949: 37.5, + 995: 77, + 9950: 53.75, + 9951: 35, + 9952: 65, + 9953: 42, + 9954: 40, + 9955: 62.75, + 9956: 57.5, + 9957: 46, + 9958: 67, + 9959: 39.75, + 996: 57, + 9960: 38, + 9961: 57.75, + 9962: 32.75, + 9963: 27.25, + 9964: 25.5, + 9965: 52.25, + 9966: 66, + 9967: 28.374999999999996, + 9968: 110, + 9969: 49.25, + 997: 108, + 9970: 58.5, + 9971: 72, + 9972: 19.75, + 9973: 32.5, + 9974: 67.5, + 9975: 44, + 9976: 54.25, + 9977: 37.25, + 9978: 51, + 9979: 56, + 998: 70.5, + 9980: 42.75, + 9981: 56.25, + 9982: 62.75, + 9983: 51, + 9984: 21.75, + 9985: 45.25, + 9986: 46.25, + 9987: 30.875, + 9988: 18.875, + 9989: 30.5, + 999: 81.5, + 9990: 58.74999999999999, + 9991: 48, + 9992: 37.5, + 9993: 57, + 9994: 64.5, + 9995: 59.25, + 9996: 55, + 9997: 30.250000000000004, + 9998: 44.25, + 9999: 47.74999999999999, +} + +cfg = NeuronpediaVectorRunnerConfig( + outputs_dir="example_outputs/", + huggingface_dataset_path="monology/pile-uncopyrighted", + vector_dtype="bfloat16", + model_dtype="bfloat16", + n_prompts_total=24576, + n_tokens_in_prompt=128, + n_prompts_in_forward_pass=128, + n_vectors_at_a_time=128, + use_wandb=False, + include_original_vectors_in_output=True, + prepend_chat_template_text="user\nWrite me a random sentence.\nmodel\n", + activation_thresholds=thresholds, +) + +runner = NeuronpediaVectorRunner(vector_set, cfg) +runner.run() diff --git a/SAEDashboard/scripts/generate_clt_dashboards_test.py b/SAEDashboard/scripts/generate_clt_dashboards_test.py new file mode 100644 index 0000000000000000000000000000000000000000..2f08baba8e6830ce777dba0614db04a2a8836d1c --- /dev/null +++ b/SAEDashboard/scripts/generate_clt_dashboards_test.py @@ -0,0 +1,186 @@ +# %% +import os +import shutil + +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + +# ================================================ +# Configuration for CLT dashboards (GPT-2 Example) +# ================================================ + +# --- Crucial Parameters --- +# This MUST be the path to the LOCAL directory containing the saved CLT model +# and its 'cfg.json'. Loading from HF release is not yet supported for CLTs. +SAE_PATH = "/Users/curttigges/Projects/SAEDashboard/clt_test_gpt2" +# The main script will now loop over layers 0-11. +# CLT_LAYER_IDX = 1 # Example: Choose the layer index you want to visualize features for +# Optional: Specify the exact weights filename. If empty, the script will search +# for the first .safetensors file, then model.safetensors, then model.pt. +CLT_WEIGHTS_FILENAME = "untied_global_batchtopk_jumprelu.safetensors" + +# --- Output & Naming --- +# These will be set dynamically in the main loop for each layer. +# NP_OUTPUT_FOLDER = f"neuronpedia_outputs_clt_gpt2_L{CLT_LAYER_IDX}/" +# ACT_CACHE_FOLDER = f"cached_activations_clt_gpt2_L{CLT_LAYER_IDX}" +# This name is primarily for organizing Neuronpedia outputs +# NP_SET_NAME = f"decode-clt-32k" +# This is less relevant for local loading but still required by the config +SAE_SET = "gpt2-clt-32k" + +# --- Data & Model --- +# The base model ID should match the one the CLT was trained on (in cfg.json) +# GPT-2 is used as an example here. +BASE_MODEL_ID = "gpt2" # Matches the model_name in cfg.json +HF_DATASET_PATH = "monology/pile-uncopyrighted" # Dataset for generating activations + +# --- Performance & Batching --- +# Adjust these based on your hardware and desired speed/granularity +NUM_FEATURES_PER_BATCH = 50 # Test first 50 features +START_BATCH = 0 +NUM_BATCHES_TO_RUN = 1 # Just test 1 batch for quick results +# Also update the NeuronpediaRunnerConfig to limit batches +N_PROMPTS = 24576 +N_TOKENS_IN_PROMPT = 128 # Context size for activation generation +N_PROMPTS_IN_FORWARD_PASS = 128 # Batch size for model forward passes + +# --- Dtypes --- +# Specify dtypes for the base model and the CLT. +# Leave clt_dtype empty ("") to use the dtype saved in the CLT's config. +MODEL_DTYPE = "float32" +# SAE_DTYPE = "float32" # This config field is less relevant when clt_dtype is used +CLT_DTYPE = "" # e.g., "float16" or "" to use CLT's config + +# --- Misc --- +SPARSITY_THRESHOLD = 1 # Set to 1 to disable sparsity filtering for testing +USE_WANDB = False # Enable WandB logging if desired + +# %% +# Model loading is handled by the runner, no need to test here + + +def copy_output_folder(source: str, destination: str): + """ + Copy the contents of the source folder to the destination folder. + If the destination folder doesn't exist, it will be created. + """ + if not os.path.exists(destination): + os.makedirs(destination) + + # Find the most recently created subfolder in the source directory + subfolders = [ + f for f in os.listdir(source) if os.path.isdir(os.path.join(source, f)) + ] + if not subfolders: + print(f"No subfolders found in {source}") + return + + latest_subfolder = max( + subfolders, key=lambda f: os.path.getctime(os.path.join(source, f)) + ) + source_path = os.path.join(source, latest_subfolder) + dest_path = os.path.join(destination, latest_subfolder) + + # Copy the subfolder + shutil.copytree(source_path, dest_path, dirs_exist_ok=True) + print(f"Copied {source_path} to {dest_path}") + + +# %% +if __name__ == "__main__": + + # Basic check if the placeholder path was changed + if SAE_PATH == "/path/to/your/local/gpt2_clt_model_directory": + print( + "ERROR: Please update the SAE_PATH variable in the script to your actual local CLT model directory." + ) + exit(1) + + # Test on layer 0 which has features with very low thresholds + for clt_layer_idx in [5]: # Test layer 5 + print(f"\n\n--- Starting Dashboard Generation for Layer {clt_layer_idx} ---") + + # --- Dynamic Configuration for each layer --- + NP_OUTPUT_FOLDER = f"neuronpedia_outputs_clt_gpt2_L{clt_layer_idx}/" + ACT_CACHE_FOLDER = f"cached_activations_clt_gpt2_L{clt_layer_idx}" + NP_SET_NAME = f"gpt2-clt-32k-L{clt_layer_idx}" + + print("--- Running CLT Dashboard Generation ---") + print(f"CLT Model Path: {SAE_PATH}") + print(f"Target Layer: {clt_layer_idx}") + print(f"Output Folder: {NP_OUTPUT_FOLDER}") + print(f"Dataset: {HF_DATASET_PATH}") + print("--------------------------------------") + + # delete output files if present + # Consider making this optional or adding a prompt + if os.path.exists(ACT_CACHE_FOLDER): + print(f"Deleting cache folder: {ACT_CACHE_FOLDER}") + shutil.rmtree(ACT_CACHE_FOLDER) + + # Configure for CLT + cfg = NeuronpediaRunnerConfig( + # Model and Path Settings + sae_set=SAE_SET, + sae_path=SAE_PATH, + from_local_sae=True, # Must be True for CLT currently + model_id=BASE_MODEL_ID, # Pass base model ID here if needed downstream + # CLT Specific Settings + use_clt=True, + clt_layer_idx=clt_layer_idx, + clt_dtype=CLT_DTYPE, + clt_weights_filename=CLT_WEIGHTS_FILENAME, + use_transcoder=False, # Ensure other loaders are off + use_skip_transcoder=False, # Ensure other loaders are off + # Output Settings + np_set_name=NP_SET_NAME, + outputs_dir=NP_OUTPUT_FOLDER, + # Dataset and Activation Settings + huggingface_dataset_path=HF_DATASET_PATH, + n_prompts_total=N_PROMPTS, + n_tokens_in_prompt=N_TOKENS_IN_PROMPT, + n_prompts_in_forward_pass=N_PROMPTS_IN_FORWARD_PASS, + # Batching and Processing Settings + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + start_batch=START_BATCH, + end_batch=START_BATCH + NUM_BATCHES_TO_RUN, + # Dtype Settings + # sae_dtype=SAE_DTYPE, # Can be omitted if clt_dtype is primary + model_dtype=MODEL_DTYPE, + # Misc Settings + sparsity_threshold=SPARSITY_THRESHOLD, + use_wandb=USE_WANDB, + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + # Copy the output folder to /workspace/NP_OUTPUT_FOLDER (disabled for local testing) + # copy_output_folder(NP_OUTPUT_FOLDER, f"/workspace/{NP_OUTPUT_FOLDER}") + print(f"--- CLT Dashboard Generation Complete for Layer {clt_layer_idx} ---") + print(f"Output saved to: {NP_OUTPUT_FOLDER}") + + +# Example CLI usage (conceptual - requires local path): +# python -m sae_dashboard.neuronpedia.neuronpedia_runner \\ +# --sae-set="gpt2-clt-local" \\ +# --sae-path="/path/to/your/local/gpt2_clt_model_directory" \\ +# --from-local-sae \\ +# --np-set-name="clt-gpt2-L6" \\ +# --dataset-path="NeelNanda/pile-10k" \\ +# --output-dir="neuronpedia_outputs_clt_gpt2_L6/" \\ +# --model_dtype="float32" \\ +# --clt-dtype="" \\ +# --sparsity-threshold=1 \\ +# --n-prompts=4096 \\ +# --n-tokens-in-prompt=128 \\ +# --n-prompts-in-forward-pass=64 \\ +# --n-features-per-batch=64 \\ +# --start-batch=0 \\ +# --end-batch=5 \\ +# --use-clt \\ +# --clt-layer-idx=6 + +# %% diff --git a/SAEDashboard/scripts/generate_dashboards_test.py b/SAEDashboard/scripts/generate_dashboards_test.py new file mode 100644 index 0000000000000000000000000000000000000000..58405f1bb39b80bd5b57c5fbb4b11e26dd44389c --- /dev/null +++ b/SAEDashboard/scripts/generate_dashboards_test.py @@ -0,0 +1,78 @@ +import os + +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + +# python neuronpedia.py generate --sae-set=res-jb --sae-path=/opt/Gemma-2b-Residual-Stream-SAEs/gemma_2b_blocks.10.hook_resid_post_16384 --dataset-path=Skylion007/openwebtext --log-sparsity=-6 --dtype= --feat-per-batch=128 --n-prompts=24576 --n-context-tokens=128 --n-prompts-in-forward-pass=128 --resume-from-batch=0 --end-at-batch=-1 + + +NP_OUTPUT_FOLDER = "neuronpedia_outputs/" +ACT_CACHE_FOLDER = "cached_activations" +NP_SET_NAME = "gemmascope-res-65k" +SAE_SET = "gemma-scope-2b-pt-res-canonical" +SAE_PATH = "layer_0/width_65k/canonical" +NUM_FEATURES_PER_BATCH = 2 +NUM_BATCHES = 2 +HF_DATASET_PATH = "monology/pile-uncopyrighted" + + +SPARSITY_THRESHOLD = 1 + +# IMPORTANT +SAE_DTYPE = "float32" +MODEL_DTYPE = "bfloat16" + +# PERFORMANCE SETTING +# N_PROMPTS = 24576 +N_PROMPTS = 128 +N_TOKENS_IN_PROMPT = 128 +N_PROMPTS_IN_FORWARD_PASS = 128 + + +if __name__ == "__main__": + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + os.system(f"rm -rf {ACT_CACHE_FOLDER}") + + # # we make two batches of 2 features each + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name=NP_SET_NAME, + from_local_sae=False, + huggingface_dataset_path=HF_DATASET_PATH, + sae_dtype=SAE_DTYPE, + model_dtype=MODEL_DTYPE, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=SPARSITY_THRESHOLD, + n_prompts_total=N_PROMPTS, + n_tokens_in_prompt=N_TOKENS_IN_PROMPT, + n_prompts_in_forward_pass=N_PROMPTS_IN_FORWARD_PASS, + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + start_batch=0, + use_wandb=True, + # TESTING ONLY + end_batch=6, + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + +# neuronpedia-runner \ +# --sae-set="gemma-scope-2b-pt-res-canonical" \ +# --sae-path="layer_0/width_65k/canonical" \ +# --np-set-name="gemmascope-res-65k" \ +# --dataset-path="monology/pile-uncopyrighted" \ +# --output-dir="neuronpedia_outputs/" \ +# --dtype="float32" \ +# --sparsity-threshold=1 \ +# --n-prompts=128 \ +# --n-tokens-in-prompt=128 \ +# --n-prompts-in-forward-pass=128 \ +# --n-features-per-batch=2 \ +# --start-batch=0 \ +# --end-batch=6 \ +# --use-wandb diff --git a/SAEDashboard/scripts/generate_transcoder_dashboards_test.py b/SAEDashboard/scripts/generate_transcoder_dashboards_test.py new file mode 100644 index 0000000000000000000000000000000000000000..11529f6fa495b9d297e3af07d5e44e69c45c3ba4 --- /dev/null +++ b/SAEDashboard/scripts/generate_transcoder_dashboards_test.py @@ -0,0 +1,82 @@ +# %% +import os + +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + +# python neuronpedia.py generate --sae-set=res-jb --sae-path=/opt/Gemma-2b-Residual-Stream-SAEs/gemma_2b_blocks.10.hook_resid_post_16384 --dataset-path=Skylion007/openwebtext --log-sparsity=-6 --dtype= --feat-per-batch=128 --n-prompts=24576 --n-context-tokens=128 --n-prompts-in-forward-pass=128 --resume-from-batch=0 --end-at-batch=-1 + + +NP_OUTPUT_FOLDER = "neuronpedia_outputs/" +ACT_CACHE_FOLDER = "cached_activations" +NP_SET_NAME = "clt-hp" +SAE_SET = "mntss/clt-gemma-2-2b-2.5M" +SAE_PATH = "0" +NUM_FEATURES_PER_BATCH = 10 # Reduced for testing +NUM_BATCHES = 10 +HF_DATASET_PATH = "monology/pile-uncopyrighted" +SPARSITY_THRESHOLD = 1 + +# IMPORTANT +SAE_DTYPE = "bfloat16" +MODEL_DTYPE = "bfloat16" + +# PERFORMANCE SETTING +N_PROMPTS = 8000 # Reduced for testing +# N_PROMPTS = 4096 +N_TOKENS_IN_PROMPT = 128 +N_PROMPTS_IN_FORWARD_PASS = 128 + + +# %% +if __name__ == "__main__": + + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + os.system(f"rm -rf {ACT_CACHE_FOLDER}") + + # # we make two batches of 2 features each + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name=NP_SET_NAME, + from_local_sae=False, + huggingface_dataset_path=HF_DATASET_PATH, + sae_dtype=SAE_DTYPE, + model_dtype=MODEL_DTYPE, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=SPARSITY_THRESHOLD, + n_prompts_total=N_PROMPTS, + n_tokens_in_prompt=N_TOKENS_IN_PROMPT, + n_prompts_in_forward_pass=N_PROMPTS_IN_FORWARD_PASS, + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + start_batch=0, + use_wandb=True, + # TESTING ONLY + end_batch=10, + use_transcoder=True, # Enable transcoder loading + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + +# neuronpedia-runner \ +# --sae-set="gemma-scope-2b-pt-res-canonical" \ +# --sae-path="layer_0/width_65k/canonical" \ +# --np-set-name="gemmascope-res-65k" \ +# --dataset-path="monology/pile-uncopyrighted" \ +# --output-dir="neuronpedia_outputs/" \ +# --dtype="float32" \ +# --sparsity-threshold=1 \ +# --n-prompts=128 \ +# --n-tokens-in-prompt=128 \ +# --n-prompts-in-forward-pass=128 \ +# --n-features-per-batch=2 \ +# --start-batch=0 \ +# --end-batch=6 \ +# --use-wandb + +# %% diff --git a/SAEDashboard/scripts/run_dashboards.sh b/SAEDashboard/scripts/run_dashboards.sh new file mode 100644 index 0000000000000000000000000000000000000000..da1bec42219211e2bac71a40dd8587ae76987757 --- /dev/null +++ b/SAEDashboard/scripts/run_dashboards.sh @@ -0,0 +1,18 @@ +# TEST / EXAMPLE +neuronpedia-runner \ + --sae-set="gemma-scope-2b-pt-res-canonical" \ + --sae-path="layer_0/width_16k/canonical" \ + --np-set-name="gemmascope-res-16k" \ + --np-sae-id-suffix="l0_39" \ + --dataset-path="monology/pile-uncopyrighted" \ + --output-dir="neuronpedia_outputs/" \ + --sae_dtype="float32" \ + --model_dtype="bfloat16" \ + --sparsity-threshold=1 \ + --n-prompts=128 \ + --n-tokens-in-prompt=128 \ + --n-prompts-in-forward-pass=128 \ + --n-features-per-batch=2 \ + --start-batch=0 \ + --end-batch=6 \ + --use-wandb \ No newline at end of file diff --git a/SAEDashboard/scripts/test.py b/SAEDashboard/scripts/test.py new file mode 100644 index 0000000000000000000000000000000000000000..6d68bd9f9178897554d3c1bd086518160da27f61 --- /dev/null +++ b/SAEDashboard/scripts/test.py @@ -0,0 +1,11 @@ +# %% + +import transformer_lens.utils as utils +from transformer_lens import HookedTransformer + +model = HookedTransformer.from_pretrained("EleutherAI/pythia-160m") + +# %% + +utils.test_prompt("Michael Jordan plays the sport of", " basketball", model) +# %% diff --git a/SAEDashboard/scripts/test_transcoder_minimal.py b/SAEDashboard/scripts/test_transcoder_minimal.py new file mode 100644 index 0000000000000000000000000000000000000000..6a2b9ae3bb5f6e8ca25df3db7808ccbcc49edc24 --- /dev/null +++ b/SAEDashboard/scripts/test_transcoder_minimal.py @@ -0,0 +1,45 @@ +# \!/usr/bin/env python3 +"""Minimal test script to verify transcoder loading works""" + +import os + +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + +# Configuration +NP_OUTPUT_FOLDER = "test_outputs/" +SAE_SET = "gemma-scope-2b-pt-transcoders" +SAE_PATH = "layer_15/width_16k/average_l0_8" +HF_DATASET_PATH = "monology/pile-uncopyrighted" + +# Clean up previous outputs +os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + +# Create config +cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name="test-transcoders", + from_local_sae=False, + huggingface_dataset_path=HF_DATASET_PATH, + sae_dtype="float32", + model_dtype="bfloat16", + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=1, + n_prompts_total=128, # Small number for testing + n_tokens_in_prompt=128, + n_prompts_in_forward_pass=32, + n_features_at_a_time=2, # Just 2 features for quick test + start_batch=0, + end_batch=1, # Just one batch + use_wandb=False, # Disable wandb for testing + use_transcoder=True, # Enable transcoder loading +) + +# Run +runner = NeuronpediaRunner(cfg) +runner.run() + +print("\nTest completed! Check the outputs in:", NP_OUTPUT_FOLDER) diff --git a/SAEDashboard/test_vectors/logistic_direction.json b/SAEDashboard/test_vectors/logistic_direction.json new file mode 100644 index 0000000000000000000000000000000000000000..7ba6d93bd350fa9fc9e3fecf65885138d40891ea --- /dev/null +++ b/SAEDashboard/test_vectors/logistic_direction.json @@ -0,0 +1 @@ +{"vectors": [[-0.03602232038974762, -0.03362863138318062, -0.012794284150004387, -0.034332673996686935, 0.03923455625772476, 0.04164694622159004, 0.03515344485640526, 0.03833003714680672, 0.04711388796567917, -0.0406210720539093, -0.04367741197347641, -0.03579737991094589, 0.021257823333144188, 0.041609786450862885, 0.04826955124735832, 0.04114575311541557, -0.026820950210094452, -0.036443788558244705, 0.04103964939713478, -0.03884477913379669, -0.04469125717878342, 0.04076999053359032, 0.04229414463043213, -0.016439227387309074, -0.031241178512573242, 0.008804562501609325, 0.03493537753820419, -0.04374009370803833, -0.039302922785282135, -0.036140792071819305, -0.022626491263508797, 0.03254390507936478, -0.04224848374724388, 0.0033451521303504705, -0.042441099882125854, -0.04813104122877121, 0.037159278988838196, -0.03885510563850403, -0.007354931905865669, 0.04482816904783249, -0.030860310420393944, 0.04000566527247429, 0.046499256044626236, -0.026998765766620636, 0.05154164135456085, 0.04224645346403122, -0.03211696818470955, 0.024830490350723267, -0.039996545761823654, -0.045081038028001785, -0.002345924498513341, 0.02708621881902218, 0.002152190776541829, -0.045912984758615494, -0.03640474006533623, -0.043444305658340454, 0.038619089871644974, -0.022235311567783356, -0.04621344804763794, -0.029848558828234673, 0.03358129411935806, -0.04520051181316376, 0.04092753306031227, 0.040410615503787994, 0.01644730381667614, 0.016122104600071907, -0.019794566556811333, -0.0410306379199028, -0.04297616705298424, 0.007059676572680473, -0.030992526561021805, 0.02951687201857567, -0.0024361973628401756, -0.02818879671394825, -0.034832969307899475, 0.037297870963811874, 0.03411310538649559, -0.039748724550008774, -0.012354510836303234, -0.027594249695539474, -0.031261373311281204, 0.03597767651081085, -0.02507230080664158, 0.036701176315546036, -0.000985438353382051, -0.04484487697482109, 0.037882719188928604, 0.02695021592080593, 0.03970608860254288, 0.036200542002916336, -0.04126487672328949, 0.025166071951389313, 0.048649173229932785, 0.04063611105084419, -0.042833905667066574, -0.028530729934573174, -0.05399706959724426, 0.0364682637155056, 0.039876893162727356, 0.04197649657726288, -0.04420490190386772, 0.044548094272613525, -0.0376451201736927, -0.04554245248436928, -0.03877713158726692, 0.04687493294477463, -0.02204616740345955, -0.042630385607481, -0.005016279872506857, -0.015050231479108334, -0.04190487787127495, 0.038333822041749954, 0.038916029036045074, -0.03645985946059227, -0.04191003367304802, 0.038532767444849014, -0.022029753774404526, 0.04509493708610535, -0.030924849212169647, -0.04351048544049263, 0.04469636455178261, -0.020426273345947266, 0.04019846022129059, 0.04362869635224342, -0.04174000397324562, -0.0428316555917263, -0.0017499375389888883, 0.03902763873338699, -0.03485089913010597, 0.04775478318333626, -0.03985273092985153, 0.037333894520998, -0.032362911850214005, -0.042532674968242645, 0.03720075264573097, -0.038792684674263, 0.03267625346779823, -0.042213182896375656, -0.04151829704642296, -0.02566307596862316, -0.0422406904399395, -0.04391486942768097, -0.020471055060625076, 0.028103692457079887, 0.02166314236819744, 0.04105055332183838, 0.024060117080807686, -0.04173700511455536, -0.03509896621108055, -0.04526028409600258, 0.0375606007874012, -0.041443876922130585, 0.0471138060092926, 0.015275598503649235, 0.007688429206609726, -0.016545280814170837, -0.03834148496389389, -0.033707547932863235, -0.0431494303047657, -0.04423438012599945, -0.04780467227101326, -0.04250047355890274, 0.036017045378685, -0.04138172045350075, -0.033549822866916656, 0.04163432866334915, 0.016158128157258034, 0.02818344719707966, 0.03969031199812889, -0.04446053504943848, -0.04121645539999008, -0.03678812459111214, -0.04652879014611244, -0.042840003967285156, 0.03251905366778374, -0.04261133447289467, 0.04268128052353859, 0.041207462549209595, -0.038246531039476395, 0.04585849121212959, 0.031402066349983215, 0.03985174000263214, 0.05112532153725624, 0.03777383267879486, -0.03753053396940231, -0.020314520224928856, 0.040139514952898026, 0.027073770761489868, -0.04141240939497948, 0.03796447813510895, -0.04191020131111145, -0.042479898780584335, -0.03675162419676781, -0.022581201046705246, -0.03206276148557663, -0.04136432707309723, 0.03153568133711815, 0.045388851314783096, -0.044991619884967804, -0.03863158077001572, -0.03699041157960892, -0.0041241832077503204, 0.021335843950510025, 0.038805704563856125, 0.03807399421930313, 0.03488757833838463, 0.048811063170433044, 0.009077177383005619, 0.034359581768512726, 0.044359710067510605, 0.028504500165581703, -0.04622507840394974, 0.04248005524277687, 0.015191977843642235, -0.04071219265460968, 0.0479089617729187, 0.03210758790373802, -0.037185464054346085, -0.03495688736438751, -0.03338456153869629, 0.007683190982788801, 0.033364102244377136, 0.03539842367172241, 0.02067030780017376, 0.04686543345451355, -0.028246048837900162, -0.04334193468093872, 0.05076015368103981, -0.03914596140384674, -0.03601484373211861, -0.03745123744010925, -0.041270408779382706, -0.0008672680705785751, 0.02736203372478485, 0.041055828332901, -0.0444805882871151, -0.04279172420501709, 0.007420732174068689, -0.022536905482411385, -0.04454408213496208, 0.03806383162736893, -0.03729340434074402, -0.04773668572306633, -0.013337552547454834, -0.042229484766721725, -0.02192680910229683, -0.04731384664773941, -0.03149176761507988, -0.0415816493332386, 0.011525903828442097, -0.03212327882647514, 0.04150552302598953, -0.03767147287726402, 0.02622869983315468, 0.043877001851797104, -0.03744202107191086, 0.03693850338459015, 0.03792871534824371, 0.0025368211790919304, 0.04467988386750221, -0.04722671955823898, 0.04739009588956833, 0.03229140490293503, -0.002930028596892953, 0.003189047332853079, -0.03570210561156273, -0.018867969512939453, -0.041800640523433685, 0.04838065430521965, -0.01631411910057068, 0.025325266644358635, 0.040782127529382706, -0.0023145501036196947, -0.038567036390304565, 0.027055460959672928, 0.01782468892633915, 0.02938772737979889, -0.02736521326005459, -0.044251687824726105, -0.010154619812965393, -0.038043174892663956, 0.028572235256433487, 0.03396747261285782, -0.0341058112680912, 0.03532528877258301, -0.036291398108005524, 0.017898397520184517, -0.04488128051161766, -0.019282035529613495, -0.048388026654720306, 0.04854429140686989, -0.038605935871601105, -0.0424913614988327, 0.0312202088534832, 0.049706559628248215, -0.029644818976521492, 0.041251420974731445, -0.01978123188018799, 0.033977948129177094, -0.04600745812058449, 0.03935135155916214, -0.024313997477293015, -0.039481788873672485, 0.04496793448925018, 0.037104181945323944, 0.03325881436467171, -0.04263445362448692, 0.024093033745884895, 0.03668045625090599, 0.03715946897864342, 0.04285426437854767, -0.043822258710861206, -0.004686011932790279, 0.04065475985407829, -0.037126440554857254, 0.04460661858320236, 0.0337231382727623, 0.04507962614297867, -0.030853068456053734, 0.027302710339426994, 0.03285052999854088, 0.03700827434659004, -0.035858891904354095, -0.03185955807566643, -0.04053393378853798, -0.050036411732435226, -0.044308263808488846, 0.03795685991644859, -0.04452072083950043, 0.037511684000492096, -0.03290658816695213, -0.04039957746863365, -0.03401636332273483, 0.03489873185753822, 0.00728547852486372, 0.03572496026754379, -0.042068514972925186, 0.028752094134688377, -0.03826805204153061, 0.03639618307352066, -0.03915010020136833, -0.006702857557684183, -0.04352179169654846, 0.015597731806337833, 0.04543327912688255, 0.04919968545436859, -0.04023929685354233, 0.044522978365421295, 0.037364862859249115, 0.041791707277297974, -0.0489351712167263, 0.007788344752043486, 0.034491702914237976, 0.04244409129023552, -0.03589748963713646, -0.024512547999620438, 0.026305632665753365, -0.00012221126235090196, 0.03538932278752327, 0.005304145161062479, 0.009185806848108768, 0.04195728152990341, -0.0255059152841568, -0.04405972734093666, -0.04114791005849838, 0.02983376756310463, -0.04055066779255867, -0.041348010301589966, 0.042799483984708786, 0.039027392864227295, -0.03266999498009682, -0.03171413764357567, 0.03635529801249504, 0.012265024706721306, -0.03576374053955078, -0.029954206198453903, 0.03796572610735893, -0.03526541590690613, -0.042047418653964996, 0.028592141345143318, 0.04515029117465019, 0.0410449244081974, -0.023912722244858742, 0.03673558682203293, 0.021676551550626755, -0.029211197048425674, 0.025819595903158188, 0.022288184612989426, 0.04506687447428703, -0.032803844660520554, 0.04093528538942337, 0.049323033541440964, -0.019095350056886673, 0.03824084252119064, 0.04633248224854469, -0.027892956510186195, -0.04406001791357994, 0.03907734155654907, -0.01692526787519455, -0.02154480665922165, 0.003928897902369499, 0.009570050053298473, -0.036682743579149246, -0.0402122437953949, 0.04418758302927017, -0.033092424273490906, -0.008058618754148483, -0.03553716093301773, 0.029633644968271255, -0.04342734068632126, -0.005004438571631908, -0.04626981541514397, -0.035355061292648315, 0.025851069018244743, 0.046220310032367706, 0.04077969864010811, -0.03979041799902916, -0.013067860156297684, -0.03976753354072571, 0.035969868302345276, -0.04824663698673248, 0.025586066767573357, 0.03725555166602135, 0.03872062638401985, 0.043155960738658905, 0.04461246356368065, -0.018383601680397987, 0.036178406327962875, -0.04181938245892525, 0.036815524101257324, 0.02147216536104679, -0.03786962479352951, 0.02167614921927452, -0.02176031842827797, 0.047096218913793564, 0.03933337703347206, -0.04345938190817833, -0.03763322904706001, -0.010327622294425964, -0.04636393487453461, 0.03274475783109665, -0.04186929389834404, -0.017238326370716095, -0.021198255941271782, -0.01275391411036253, -0.030619528144598007, -0.04168973118066788, -0.016837988048791885, -0.0035522673279047012, 0.014487280510365963, -0.0009436754044145346, 0.03566718101501465, 0.042527854442596436, -0.02909330278635025, -0.03554607555270195, -0.04494155943393707, -0.04232899099588394, -0.0310815516859293, 0.03815760836005211, 0.024651510640978813, 0.0406411737203598, 0.03589861840009689, -0.026505867019295692, 0.010181261226534843, -0.010618495754897594, 0.041630472987890244, -0.04610125720500946, 0.040908314287662506, 0.042405158281326294, -0.014789964072406292, -0.04079583287239075, -0.03763045743107796, 0.02604038268327713, -0.039942484349012375, 0.031374577432870865, 0.023188667371869087, -0.04037545621395111, -0.045388348400592804, 0.0005810701986774802, 0.03415637090802193, -0.03523775562644005, -0.02506599761545658, -0.03712249547243118, 0.043297648429870605, 0.0361349955201149, -0.01207969430834055, -0.04315963760018349, 0.03487642854452133, 0.014679787680506706, -0.034537892788648605, 0.0005462999688461423, 0.04061628878116608, 0.04251793399453163, 0.037324801087379456, -0.04328291490674019, 0.034268368035554886, 0.03696843981742859, -0.045621175318956375, 0.029407814145088196, 0.03510152921080589, 0.014682194218039513, 0.03193730115890503, -0.046761367470026016, 0.02638385258615017, 0.03155643120408058, -0.030308902263641357, 0.04238199070096016, -0.05447648838162422, -0.04440689831972122, 0.037254009395837784, 0.029394444078207016, 0.035408396273851395, 0.02686726115643978, 0.01530227530747652, -0.03718339279294014, -0.038963042199611664, -0.0476815328001976, 0.04716986045241356, -0.03375822678208351, 0.04088976979255676, 0.029618969187140465, 0.04104490950703621, -0.04811509698629379, 0.039006851613521576, -0.042681340128183365, 0.03540502488613129, -0.03561863675713539, 0.03828592598438263, 0.03866100311279297, 0.03975287079811096, 0.051061250269412994, -0.0246970746666193, 0.026324419304728508, 0.032112106680870056, 0.03465329483151436, -0.01966628059744835, 0.03578163683414459, 0.04511410742998123, -0.009745169430971146, -0.036983318626880646, 0.04535789415240288, 0.041715435683727264, 0.06506293267011642, -0.03994038328528404, 0.03251812979578972, 0.03860415145754814, -0.03378935530781746, -0.04730371758341789, -0.026307519525289536, 0.03913158178329468, -0.01681126095354557, -0.03167431429028511, 0.04225112497806549, -0.03725949674844742, 0.004548828583210707, 0.045847322791814804, 0.03691041097044945, -0.04550578072667122, 0.04198474809527397, 0.03996932879090309, 0.04231724515557289, 0.040410108864307404, -0.012801415286958218, 0.04243268445134163, 0.04036671668291092, 0.0016407364746555686, -0.026644695550203323, 0.036399051547050476, 0.018044592812657356, -0.04695245251059532, -0.02312658168375492, -0.027028050273656845, 0.029693495482206345, -0.034689679741859436, -0.029692646116018295, 0.04094385728240013, -0.04275917634367943, -0.04056958854198456, 0.029793785884976387, 0.03610468655824661, 0.03388216346502304, -0.035777099430561066, -0.04148690029978752, -0.04778940975666046, -0.03998594731092453, -0.004832591861486435, 0.04197066277265549, 0.03463632985949516, -0.0337454117834568, 0.034259259700775146, -0.035011447966098785, 0.042605213820934296, 0.04826412722468376, -0.04210934787988663, -0.0140312435105443, -0.044186148792505264, -0.0446530357003212, 0.0343317948281765, 0.04137797653675079, 0.042894721031188965, -0.02949918806552887, -0.027959581464529037, -0.04291503131389618, 0.04123779758810997, 0.039082568138837814, -0.04939579218626022, -0.015144268050789833, -0.03344856947660446, -0.04003787040710449, -0.036074720323085785, 0.03908620402216911, -0.031069161370396614, -0.04190921038389206, 0.05141548812389374, 0.036330416798591614, -0.043069615960121155, 0.024639002978801727, -0.04312562942504883, 0.04958420991897583, 0.04517577216029167, 0.03952493891119957, 0.03813260421156883, 0.04172526299953461, 0.04330931231379509, -0.04071050509810448, 0.035897985100746155, 0.04137204959988594, -0.04621092975139618, 0.03740236535668373, 0.03841318562626839, -0.04116807505488396, -0.043705105781555176, -0.0404558889567852, -0.027232661843299866, -0.004241632763296366, 0.031188856810331345, -0.033233318477869034, 0.03171900287270546, 0.028403444215655327, -0.043506138026714325, 0.03655083477497101, 0.039672140032052994, 0.04215126112103462, -0.038052838295698166, 0.02142432890832424, 0.023953381925821304, -0.029570531100034714, 0.04306643828749657, -0.017301958054304123, -0.039063576608896255, 0.000707754516042769, 0.03465695679187775, -0.040325190871953964, -0.01205536536872387, -0.04215458407998085, -0.04214527830481529, 0.04155029356479645, 0.02633575350046158, -0.05377162992954254, -0.042045604437589645, -0.04400781914591789, 0.04104125499725342, 0.04379625245928764, 0.03963863477110863, 0.03906655311584473, 0.039163049310445786, -0.04679194465279579, 0.019210312515497208, 0.045011550188064575, -0.04085865616798401, 0.041268523782491684, -0.03434453904628754, 0.00015254707250278443, -0.032774895429611206, -0.03619299829006195, -0.03973490372300148, -0.04551458731293678, -0.028556717559695244, -0.045190662145614624, 0.03839483484625816, 0.039661236107349396, -0.05453852191567421, -0.04297390580177307, 0.024935001507401466, 0.043947599828243256, 0.047460805624723434, 0.02910163439810276, -0.03705862909555435, 0.0056597706861793995, 0.03432898223400116, 0.021175287663936615, -0.03722633421421051, 0.04505205526947975, -0.028171835467219353, 0.03922698646783829, -0.04331992566585541, -0.036227576434612274, -0.036231085658073425, -0.0015300909290090203, -0.029580799862742424, -0.018957365304231644, 0.047939151525497437, 0.03830091282725334, -0.04449010640382767, 0.036384500563144684, -0.02274860069155693, -0.04392906278371811, 0.042318470776081085, -0.04724150151014328, 0.013474280014634132, -0.039686448872089386, -0.03908597305417061, 0.04470984637737274, 0.038399409502744675, -0.03659705072641373, 0.037896912544965744, -0.03716687113046646, 0.029784437268972397, -0.048366036266088486, -0.04407564923167229, 0.028900254517793655, 0.03789430111646652, 0.034703560173511505, -0.008188699372112751, 0.002833835780620575, 0.04540177807211876, -0.01820322871208191, 0.02977737970650196, -0.03620167821645737, 0.035667531192302704, -0.014552895911037922, -0.03162539377808571, -0.04724733531475067, -0.045138340443372726, -0.037732698023319244, -0.041800662875175476, -0.023854117840528488, 0.04458988830447197, -0.043458886444568634, -0.02802182547748089, -0.03917591646313667, -0.0024054835084825754, 0.02858732081949711, -0.029646821320056915, 0.016266928985714912, -0.04941655322909355, 0.044580958783626556, 0.04215901717543602, 0.04390213266015053, -0.017894169315695763, 0.03998590260744095, -0.019616568461060524, 0.0417032428085804, 0.04120673984289169, -0.030270978808403015, 0.03510960936546326, -0.021312078461050987, 0.0348181426525116, -0.05449094623327255, 0.028663240373134613, 0.006173115223646164, -0.033242855221033096, 0.005094633903354406, 0.04443301260471344, -0.010013869032263756, 0.036556534469127655, 0.0351879745721817, -0.03986813873052597]]} \ No newline at end of file diff --git a/SAEDashboard/test_vectors/logistic_direction_vector_set.json b/SAEDashboard/test_vectors/logistic_direction_vector_set.json new file mode 100644 index 0000000000000000000000000000000000000000..0f05a2c91f8da27c3e432041b02cbac8f93ed9bf --- /dev/null +++ b/SAEDashboard/test_vectors/logistic_direction_vector_set.json @@ -0,0 +1 @@ +{"vectors": [[-0.03602232038974762, -0.03362863138318062, -0.012794284150004387, -0.034332673996686935, 0.03923455625772476, 0.04164694622159004, 0.03515344485640526, 0.03833003714680672, 0.04711388796567917, -0.0406210720539093, -0.04367741197347641, -0.03579737991094589, 0.021257823333144188, 0.041609786450862885, 0.04826955124735832, 0.04114575311541557, -0.026820950210094452, -0.036443788558244705, 0.04103964939713478, -0.03884477913379669, -0.04469125717878342, 0.04076999053359032, 0.04229414463043213, -0.016439227387309074, -0.031241178512573242, 0.008804562501609325, 0.03493537753820419, -0.04374009370803833, -0.039302922785282135, -0.036140792071819305, -0.022626491263508797, 0.03254390507936478, -0.04224848374724388, 0.0033451521303504705, -0.042441099882125854, -0.04813104122877121, 0.037159278988838196, -0.03885510563850403, -0.007354931905865669, 0.04482816904783249, -0.030860310420393944, 0.04000566527247429, 0.046499256044626236, -0.026998765766620636, 0.05154164135456085, 0.04224645346403122, -0.03211696818470955, 0.024830490350723267, -0.039996545761823654, -0.045081038028001785, -0.002345924498513341, 0.02708621881902218, 0.002152190776541829, -0.045912984758615494, -0.03640474006533623, -0.043444305658340454, 0.038619089871644974, -0.022235311567783356, -0.04621344804763794, -0.029848558828234673, 0.03358129411935806, -0.04520051181316376, 0.04092753306031227, 0.040410615503787994, 0.01644730381667614, 0.016122104600071907, -0.019794566556811333, -0.0410306379199028, -0.04297616705298424, 0.007059676572680473, -0.030992526561021805, 0.02951687201857567, -0.0024361973628401756, -0.02818879671394825, -0.034832969307899475, 0.037297870963811874, 0.03411310538649559, -0.039748724550008774, -0.012354510836303234, -0.027594249695539474, -0.031261373311281204, 0.03597767651081085, -0.02507230080664158, 0.036701176315546036, -0.000985438353382051, -0.04484487697482109, 0.037882719188928604, 0.02695021592080593, 0.03970608860254288, 0.036200542002916336, -0.04126487672328949, 0.025166071951389313, 0.048649173229932785, 0.04063611105084419, -0.042833905667066574, -0.028530729934573174, -0.05399706959724426, 0.0364682637155056, 0.039876893162727356, 0.04197649657726288, -0.04420490190386772, 0.044548094272613525, -0.0376451201736927, -0.04554245248436928, -0.03877713158726692, 0.04687493294477463, -0.02204616740345955, -0.042630385607481, -0.005016279872506857, -0.015050231479108334, -0.04190487787127495, 0.038333822041749954, 0.038916029036045074, -0.03645985946059227, -0.04191003367304802, 0.038532767444849014, -0.022029753774404526, 0.04509493708610535, -0.030924849212169647, -0.04351048544049263, 0.04469636455178261, -0.020426273345947266, 0.04019846022129059, 0.04362869635224342, -0.04174000397324562, -0.0428316555917263, -0.0017499375389888883, 0.03902763873338699, -0.03485089913010597, 0.04775478318333626, -0.03985273092985153, 0.037333894520998, -0.032362911850214005, -0.042532674968242645, 0.03720075264573097, -0.038792684674263, 0.03267625346779823, -0.042213182896375656, -0.04151829704642296, -0.02566307596862316, -0.0422406904399395, -0.04391486942768097, -0.020471055060625076, 0.028103692457079887, 0.02166314236819744, 0.04105055332183838, 0.024060117080807686, -0.04173700511455536, -0.03509896621108055, -0.04526028409600258, 0.0375606007874012, -0.041443876922130585, 0.0471138060092926, 0.015275598503649235, 0.007688429206609726, -0.016545280814170837, -0.03834148496389389, -0.033707547932863235, -0.0431494303047657, -0.04423438012599945, -0.04780467227101326, -0.04250047355890274, 0.036017045378685, -0.04138172045350075, -0.033549822866916656, 0.04163432866334915, 0.016158128157258034, 0.02818344719707966, 0.03969031199812889, -0.04446053504943848, -0.04121645539999008, -0.03678812459111214, -0.04652879014611244, -0.042840003967285156, 0.03251905366778374, -0.04261133447289467, 0.04268128052353859, 0.041207462549209595, -0.038246531039476395, 0.04585849121212959, 0.031402066349983215, 0.03985174000263214, 0.05112532153725624, 0.03777383267879486, -0.03753053396940231, -0.020314520224928856, 0.040139514952898026, 0.027073770761489868, -0.04141240939497948, 0.03796447813510895, -0.04191020131111145, -0.042479898780584335, -0.03675162419676781, -0.022581201046705246, -0.03206276148557663, -0.04136432707309723, 0.03153568133711815, 0.045388851314783096, -0.044991619884967804, -0.03863158077001572, -0.03699041157960892, -0.0041241832077503204, 0.021335843950510025, 0.038805704563856125, 0.03807399421930313, 0.03488757833838463, 0.048811063170433044, 0.009077177383005619, 0.034359581768512726, 0.044359710067510605, 0.028504500165581703, -0.04622507840394974, 0.04248005524277687, 0.015191977843642235, -0.04071219265460968, 0.0479089617729187, 0.03210758790373802, -0.037185464054346085, -0.03495688736438751, -0.03338456153869629, 0.007683190982788801, 0.033364102244377136, 0.03539842367172241, 0.02067030780017376, 0.04686543345451355, -0.028246048837900162, -0.04334193468093872, 0.05076015368103981, -0.03914596140384674, -0.03601484373211861, -0.03745123744010925, -0.041270408779382706, -0.0008672680705785751, 0.02736203372478485, 0.041055828332901, -0.0444805882871151, -0.04279172420501709, 0.007420732174068689, -0.022536905482411385, -0.04454408213496208, 0.03806383162736893, -0.03729340434074402, -0.04773668572306633, -0.013337552547454834, -0.042229484766721725, -0.02192680910229683, -0.04731384664773941, -0.03149176761507988, -0.0415816493332386, 0.011525903828442097, -0.03212327882647514, 0.04150552302598953, -0.03767147287726402, 0.02622869983315468, 0.043877001851797104, -0.03744202107191086, 0.03693850338459015, 0.03792871534824371, 0.0025368211790919304, 0.04467988386750221, -0.04722671955823898, 0.04739009588956833, 0.03229140490293503, -0.002930028596892953, 0.003189047332853079, -0.03570210561156273, -0.018867969512939453, -0.041800640523433685, 0.04838065430521965, -0.01631411910057068, 0.025325266644358635, 0.040782127529382706, -0.0023145501036196947, -0.038567036390304565, 0.027055460959672928, 0.01782468892633915, 0.02938772737979889, -0.02736521326005459, -0.044251687824726105, -0.010154619812965393, -0.038043174892663956, 0.028572235256433487, 0.03396747261285782, -0.0341058112680912, 0.03532528877258301, -0.036291398108005524, 0.017898397520184517, -0.04488128051161766, -0.019282035529613495, -0.048388026654720306, 0.04854429140686989, -0.038605935871601105, -0.0424913614988327, 0.0312202088534832, 0.049706559628248215, -0.029644818976521492, 0.041251420974731445, -0.01978123188018799, 0.033977948129177094, -0.04600745812058449, 0.03935135155916214, -0.024313997477293015, -0.039481788873672485, 0.04496793448925018, 0.037104181945323944, 0.03325881436467171, -0.04263445362448692, 0.024093033745884895, 0.03668045625090599, 0.03715946897864342, 0.04285426437854767, -0.043822258710861206, -0.004686011932790279, 0.04065475985407829, -0.037126440554857254, 0.04460661858320236, 0.0337231382727623, 0.04507962614297867, -0.030853068456053734, 0.027302710339426994, 0.03285052999854088, 0.03700827434659004, -0.035858891904354095, -0.03185955807566643, -0.04053393378853798, -0.050036411732435226, -0.044308263808488846, 0.03795685991644859, -0.04452072083950043, 0.037511684000492096, -0.03290658816695213, -0.04039957746863365, -0.03401636332273483, 0.03489873185753822, 0.00728547852486372, 0.03572496026754379, -0.042068514972925186, 0.028752094134688377, -0.03826805204153061, 0.03639618307352066, -0.03915010020136833, -0.006702857557684183, -0.04352179169654846, 0.015597731806337833, 0.04543327912688255, 0.04919968545436859, -0.04023929685354233, 0.044522978365421295, 0.037364862859249115, 0.041791707277297974, -0.0489351712167263, 0.007788344752043486, 0.034491702914237976, 0.04244409129023552, -0.03589748963713646, -0.024512547999620438, 0.026305632665753365, -0.00012221126235090196, 0.03538932278752327, 0.005304145161062479, 0.009185806848108768, 0.04195728152990341, -0.0255059152841568, -0.04405972734093666, -0.04114791005849838, 0.02983376756310463, -0.04055066779255867, -0.041348010301589966, 0.042799483984708786, 0.039027392864227295, -0.03266999498009682, -0.03171413764357567, 0.03635529801249504, 0.012265024706721306, -0.03576374053955078, -0.029954206198453903, 0.03796572610735893, -0.03526541590690613, -0.042047418653964996, 0.028592141345143318, 0.04515029117465019, 0.0410449244081974, -0.023912722244858742, 0.03673558682203293, 0.021676551550626755, -0.029211197048425674, 0.025819595903158188, 0.022288184612989426, 0.04506687447428703, -0.032803844660520554, 0.04093528538942337, 0.049323033541440964, -0.019095350056886673, 0.03824084252119064, 0.04633248224854469, -0.027892956510186195, -0.04406001791357994, 0.03907734155654907, -0.01692526787519455, -0.02154480665922165, 0.003928897902369499, 0.009570050053298473, -0.036682743579149246, -0.0402122437953949, 0.04418758302927017, -0.033092424273490906, -0.008058618754148483, -0.03553716093301773, 0.029633644968271255, -0.04342734068632126, -0.005004438571631908, -0.04626981541514397, -0.035355061292648315, 0.025851069018244743, 0.046220310032367706, 0.04077969864010811, -0.03979041799902916, -0.013067860156297684, -0.03976753354072571, 0.035969868302345276, -0.04824663698673248, 0.025586066767573357, 0.03725555166602135, 0.03872062638401985, 0.043155960738658905, 0.04461246356368065, -0.018383601680397987, 0.036178406327962875, -0.04181938245892525, 0.036815524101257324, 0.02147216536104679, -0.03786962479352951, 0.02167614921927452, -0.02176031842827797, 0.047096218913793564, 0.03933337703347206, -0.04345938190817833, -0.03763322904706001, -0.010327622294425964, -0.04636393487453461, 0.03274475783109665, -0.04186929389834404, -0.017238326370716095, -0.021198255941271782, -0.01275391411036253, -0.030619528144598007, -0.04168973118066788, -0.016837988048791885, -0.0035522673279047012, 0.014487280510365963, -0.0009436754044145346, 0.03566718101501465, 0.042527854442596436, -0.02909330278635025, -0.03554607555270195, -0.04494155943393707, -0.04232899099588394, -0.0310815516859293, 0.03815760836005211, 0.024651510640978813, 0.0406411737203598, 0.03589861840009689, -0.026505867019295692, 0.010181261226534843, -0.010618495754897594, 0.041630472987890244, -0.04610125720500946, 0.040908314287662506, 0.042405158281326294, -0.014789964072406292, -0.04079583287239075, -0.03763045743107796, 0.02604038268327713, -0.039942484349012375, 0.031374577432870865, 0.023188667371869087, -0.04037545621395111, -0.045388348400592804, 0.0005810701986774802, 0.03415637090802193, -0.03523775562644005, -0.02506599761545658, -0.03712249547243118, 0.043297648429870605, 0.0361349955201149, -0.01207969430834055, -0.04315963760018349, 0.03487642854452133, 0.014679787680506706, -0.034537892788648605, 0.0005462999688461423, 0.04061628878116608, 0.04251793399453163, 0.037324801087379456, -0.04328291490674019, 0.034268368035554886, 0.03696843981742859, -0.045621175318956375, 0.029407814145088196, 0.03510152921080589, 0.014682194218039513, 0.03193730115890503, -0.046761367470026016, 0.02638385258615017, 0.03155643120408058, -0.030308902263641357, 0.04238199070096016, -0.05447648838162422, -0.04440689831972122, 0.037254009395837784, 0.029394444078207016, 0.035408396273851395, 0.02686726115643978, 0.01530227530747652, -0.03718339279294014, -0.038963042199611664, -0.0476815328001976, 0.04716986045241356, -0.03375822678208351, 0.04088976979255676, 0.029618969187140465, 0.04104490950703621, -0.04811509698629379, 0.039006851613521576, -0.042681340128183365, 0.03540502488613129, -0.03561863675713539, 0.03828592598438263, 0.03866100311279297, 0.03975287079811096, 0.051061250269412994, -0.0246970746666193, 0.026324419304728508, 0.032112106680870056, 0.03465329483151436, -0.01966628059744835, 0.03578163683414459, 0.04511410742998123, -0.009745169430971146, -0.036983318626880646, 0.04535789415240288, 0.041715435683727264, 0.06506293267011642, -0.03994038328528404, 0.03251812979578972, 0.03860415145754814, -0.03378935530781746, -0.04730371758341789, -0.026307519525289536, 0.03913158178329468, -0.01681126095354557, -0.03167431429028511, 0.04225112497806549, -0.03725949674844742, 0.004548828583210707, 0.045847322791814804, 0.03691041097044945, -0.04550578072667122, 0.04198474809527397, 0.03996932879090309, 0.04231724515557289, 0.040410108864307404, -0.012801415286958218, 0.04243268445134163, 0.04036671668291092, 0.0016407364746555686, -0.026644695550203323, 0.036399051547050476, 0.018044592812657356, -0.04695245251059532, -0.02312658168375492, -0.027028050273656845, 0.029693495482206345, -0.034689679741859436, -0.029692646116018295, 0.04094385728240013, -0.04275917634367943, -0.04056958854198456, 0.029793785884976387, 0.03610468655824661, 0.03388216346502304, -0.035777099430561066, -0.04148690029978752, -0.04778940975666046, -0.03998594731092453, -0.004832591861486435, 0.04197066277265549, 0.03463632985949516, -0.0337454117834568, 0.034259259700775146, -0.035011447966098785, 0.042605213820934296, 0.04826412722468376, -0.04210934787988663, -0.0140312435105443, -0.044186148792505264, -0.0446530357003212, 0.0343317948281765, 0.04137797653675079, 0.042894721031188965, -0.02949918806552887, -0.027959581464529037, -0.04291503131389618, 0.04123779758810997, 0.039082568138837814, -0.04939579218626022, -0.015144268050789833, -0.03344856947660446, -0.04003787040710449, -0.036074720323085785, 0.03908620402216911, -0.031069161370396614, -0.04190921038389206, 0.05141548812389374, 0.036330416798591614, -0.043069615960121155, 0.024639002978801727, -0.04312562942504883, 0.04958420991897583, 0.04517577216029167, 0.03952493891119957, 0.03813260421156883, 0.04172526299953461, 0.04330931231379509, -0.04071050509810448, 0.035897985100746155, 0.04137204959988594, -0.04621092975139618, 0.03740236535668373, 0.03841318562626839, -0.04116807505488396, -0.043705105781555176, -0.0404558889567852, -0.027232661843299866, -0.004241632763296366, 0.031188856810331345, -0.033233318477869034, 0.03171900287270546, 0.028403444215655327, -0.043506138026714325, 0.03655083477497101, 0.039672140032052994, 0.04215126112103462, -0.038052838295698166, 0.02142432890832424, 0.023953381925821304, -0.029570531100034714, 0.04306643828749657, -0.017301958054304123, -0.039063576608896255, 0.000707754516042769, 0.03465695679187775, -0.040325190871953964, -0.01205536536872387, -0.04215458407998085, -0.04214527830481529, 0.04155029356479645, 0.02633575350046158, -0.05377162992954254, -0.042045604437589645, -0.04400781914591789, 0.04104125499725342, 0.04379625245928764, 0.03963863477110863, 0.03906655311584473, 0.039163049310445786, -0.04679194465279579, 0.019210312515497208, 0.045011550188064575, -0.04085865616798401, 0.041268523782491684, -0.03434453904628754, 0.00015254707250278443, -0.032774895429611206, -0.03619299829006195, -0.03973490372300148, -0.04551458731293678, -0.028556717559695244, -0.045190662145614624, 0.03839483484625816, 0.039661236107349396, -0.05453852191567421, -0.04297390580177307, 0.024935001507401466, 0.043947599828243256, 0.047460805624723434, 0.02910163439810276, -0.03705862909555435, 0.0056597706861793995, 0.03432898223400116, 0.021175287663936615, -0.03722633421421051, 0.04505205526947975, -0.028171835467219353, 0.03922698646783829, -0.04331992566585541, -0.036227576434612274, -0.036231085658073425, -0.0015300909290090203, -0.029580799862742424, -0.018957365304231644, 0.047939151525497437, 0.03830091282725334, -0.04449010640382767, 0.036384500563144684, -0.02274860069155693, -0.04392906278371811, 0.042318470776081085, -0.04724150151014328, 0.013474280014634132, -0.039686448872089386, -0.03908597305417061, 0.04470984637737274, 0.038399409502744675, -0.03659705072641373, 0.037896912544965744, -0.03716687113046646, 0.029784437268972397, -0.048366036266088486, -0.04407564923167229, 0.028900254517793655, 0.03789430111646652, 0.034703560173511505, -0.008188699372112751, 0.002833835780620575, 0.04540177807211876, -0.01820322871208191, 0.02977737970650196, -0.03620167821645737, 0.035667531192302704, -0.014552895911037922, -0.03162539377808571, -0.04724733531475067, -0.045138340443372726, -0.037732698023319244, -0.041800662875175476, -0.023854117840528488, 0.04458988830447197, -0.043458886444568634, -0.02802182547748089, -0.03917591646313667, -0.0024054835084825754, 0.02858732081949711, -0.029646821320056915, 0.016266928985714912, -0.04941655322909355, 0.044580958783626556, 0.04215901717543602, 0.04390213266015053, -0.017894169315695763, 0.03998590260744095, -0.019616568461060524, 0.0417032428085804, 0.04120673984289169, -0.030270978808403015, 0.03510960936546326, -0.021312078461050987, 0.0348181426525116, -0.05449094623327255, 0.028663240373134613, 0.006173115223646164, -0.033242855221033096, 0.005094633903354406, 0.04443301260471344, -0.010013869032263756, 0.036556534469127655, 0.0351879745721817, -0.03986813873052597]], "config": {"d_in": 768, "d_vectors": 1, "vector_names": ["sentiment_vector"], "model_name": "gpt2", "hook_name": "blocks.7.hook_resid_pre", "hook_layer": 7, "hook_head_index": null, "prepend_bos": true, "context_size": 128, "dataset_path": "", "dtype": "float32", "device": "cpu", "model_from_pretrained_kwargs": {}}} \ No newline at end of file diff --git a/SAEDashboard/tests/__init__.py b/SAEDashboard/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/SAEDashboard/tests/acceptance/__init__.py b/SAEDashboard/tests/acceptance/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/SAEDashboard/tests/acceptance/test_neuronpedia_runner.py b/SAEDashboard/tests/acceptance/test_neuronpedia_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..ccadb28ae4602ae8853740a59badea6e01cd6f88 --- /dev/null +++ b/SAEDashboard/tests/acceptance/test_neuronpedia_runner.py @@ -0,0 +1,358 @@ +import json +import os +from typing import Type, TypeVar + +from sae_dashboard.neuronpedia.neuronpedia_dashboard import NeuronpediaDashboardBatch +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + +# from sae_lens.toolkit.pretrained_saes import download_sae_from_hf + + +# depending on if device type, the results may be slightly different +CORRECT_VALUE_TOLERANCE = 0.1 + +T = TypeVar("T") + + +def json_to_class(json_file: str, cls: Type[T]) -> T: + with open(json_file, "r") as file: + data = json.load(file) + return cls(**data) + + +# pytest -s tests/acceptance/test_neuronpedia_runner.py::test_simple_neuronpedia_runner +def test_simple_neuronpedia_runner(): + # (_, SAE_WEIGHTS_PATH, _) = download_sae_from_hf( + # "jbloom/GPT2-Small-SAEs-Reformatted", "blocks.0.hook_resid_pre" + # ) + + NP_OUTPUT_FOLDER = "neuronpedia_outputs/test_simple" + ACT_CACHE_FOLDER = "cached_activations" + CORRECT_OUTPUTS_FOLDER = "tests/acceptance/test_simple" + SAE_SET = "gpt2-small-res-jb" + SAE_PATH = "blocks.0.hook_resid_pre" + NUM_FEATURES_PER_BATCH = 2 + NUM_BATCHES = 2 + + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + os.system(f"rm -rf {ACT_CACHE_FOLDER}") + + # # we make two batches of 2 features each + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name="res-jb", + from_local_sae=False, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=1, + n_prompts_total=5000, + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + n_prompts_in_forward_pass=32, + start_batch=0, + end_batch=NUM_BATCHES - 1, + use_wandb=True, + shuffle_tokens=False, + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + # assert sparsity/skipped + # load skipped_indexes.json file + # skipped_path = os.path.join(NP_OUTPUT_FOLDER, "skipped_indexes.json") + # assert os.path.exists(skipped_path), f"file {skipped_path} does not exist" + # with open(skipped_path, "r") as file: + # skipped_test_data = json.load(file) + # # load skipped_indexes.json file from CORRECT_OUTPUTS_FOLDER + # skipped_correct_path = os.path.join( + # CORRECT_OUTPUTS_FOLDER, "skipped_indexes.json" + # ) + # with open(skipped_correct_path, "r") as file: + # skipped_correct_data = json.load(file) + # assert skipped_test_data == skipped_correct_data + + # assert the actual features/batches + for i in range(0, NUM_BATCHES - 1): + correct_path = os.path.join(CORRECT_OUTPUTS_FOLDER, f"batch-{i}.json") + + correct_data = json_to_class(correct_path, NeuronpediaDashboardBatch) + + test_path = os.path.join(runner.cfg.outputs_dir, f"batch-{i}.json") + assert os.path.exists(test_path), f"file {test_path} does not exist" + test_data = json_to_class(test_path, NeuronpediaDashboardBatch) + + assert test_data == correct_data + + assert "run_settings.json" in os.listdir(runner.cfg.outputs_dir) + + +# def test_simple_neuronpedia_runner_local_sae(): + +# (_, SAE_WEIGHTS_PATH, _) = download_sae_from_hf( +# "jbloom/GPT2-Small-SAEs-Reformatted", "blocks.0.hook_resid_pre" +# ) + +# NP_OUTPUT_FOLDER = "neuronpedia_outputs/test_simple" +# ACT_CACHE_FOLDER = "cached_activations" +# CORRECT_OUTPUTS_FOLDER = "tests/acceptance/test_simple" +# SAE_SET = "res-jb" +# SAE_PATH = os.path.dirname(SAE_WEIGHTS_PATH) +# NUM_FEATURES_PER_BATCH = 2 +# NUM_BATCHES = 2 + +# # delete output files if present +# os.system(f"rm -rf {NP_OUTPUT_FOLDER}") +# os.system(f"rm -rf {ACT_CACHE_FOLDER}") + +# # # we make two batches of 2 features each +# cfg = NeuronpediaRunnerConfig( +# sae_set=SAE_SET, +# sae_path=SAE_PATH, +# from_local_sae=True, +# outputs_dir=NP_OUTPUT_FOLDER, +# sparsity_threshold=1, +# n_prompts_total=5000, +# n_features_at_a_time=NUM_FEATURES_PER_BATCH, +# n_prompts_in_forward_pass=32, +# start_batch=0, +# end_batch=NUM_BATCHES - 1, +# use_wandb=True, +# shuffle_tokens=False, +# ) + +# runner = NeuronpediaRunner(cfg) +# runner.run() + +# # assert sparsity/skipped +# # load skipped_indexes.json file +# # skipped_path = os.path.join(NP_OUTPUT_FOLDER, "skipped_indexes.json") +# # assert os.path.exists(skipped_path), f"file {skipped_path} does not exist" +# # with open(skipped_path, "r") as file: +# # skipped_test_data = json.load(file) +# # # load skipped_indexes.json file from CORRECT_OUTPUTS_FOLDER +# # skipped_correct_path = os.path.join( +# # CORRECT_OUTPUTS_FOLDER, "skipped_indexes.json" +# # ) +# # with open(skipped_correct_path, "r") as file: +# # skipped_correct_data = json.load(file) +# # assert skipped_test_data == skipped_correct_data + +# # assert the actual features/batches +# for i in range(0, NUM_BATCHES - 1): +# correct_path = os.path.join(CORRECT_OUTPUTS_FOLDER, f"batch-{i}.json") + +# correct_data = json_to_class(correct_path, NeuronpediaDashboardBatch) + +# test_path = os.path.join(runner.cfg.outputs_dir, f"batch-{i}.json") +# assert os.path.exists(test_path), f"file {test_path} does not exist" +# test_data = json_to_class(test_path, NeuronpediaDashboardBatch) + +# assert test_data == correct_data + + +def test_simple_neuronpedia_runner_different_dtypes_sae_model(): + # (_, SAE_WEIGHTS_PATH, _) = download_sae_from_hf( + # "jbloom/GPT2-Small-SAEs-Reformatted", "blocks.0.hook_resid_pre" + # ) + + NP_OUTPUT_FOLDER = "neuronpedia_outputs/test_simple" + ACT_CACHE_FOLDER = "cached_activations" + CORRECT_OUTPUTS_FOLDER = "tests/acceptance/test_simple" + SAE_SET = "gpt2-small-res-jb" + SAE_PATH = "blocks.0.hook_resid_pre" + NUM_FEATURES_PER_BATCH = 2 + NUM_BATCHES = 2 + + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + os.system(f"rm -rf {ACT_CACHE_FOLDER}") + + # # we make two batches of 2 features each + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name="res-jb", + from_local_sae=False, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=1, + n_prompts_total=5000, + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + n_prompts_in_forward_pass=32, + start_batch=0, + end_batch=NUM_BATCHES - 1, + use_wandb=True, + shuffle_tokens=False, + model_dtype="bfloat16", + sae_dtype="float32", + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + # assert sparsity/skipped + # load skipped_indexes.json file + # skipped_path = os.path.join(NP_OUTPUT_FOLDER, "skipped_indexes.json") + # assert os.path.exists(skipped_path), f"file {skipped_path} does not exist" + # with open(skipped_path, "r") as file: + # skipped_test_data = json.load(file) + # # load skipped_indexes.json file from CORRECT_OUTPUTS_FOLDER + # skipped_correct_path = os.path.join( + # CORRECT_OUTPUTS_FOLDER, "skipped_indexes.json" + # ) + # with open(skipped_correct_path, "r") as file: + # skipped_correct_data = json.load(file) + # assert skipped_test_data == skipped_correct_data + + # assert the actual features/batches + for i in range(0, NUM_BATCHES - 1): + correct_path = os.path.join(CORRECT_OUTPUTS_FOLDER, f"batch-{i}.json") + + correct_data = json_to_class(correct_path, NeuronpediaDashboardBatch) + + test_path = os.path.join(runner.cfg.outputs_dir, f"batch-{i}.json") + assert os.path.exists(test_path), f"file {test_path} does not exist" + test_data = json_to_class(test_path, NeuronpediaDashboardBatch) + + assert test_data == correct_data + + +# pytest -s tests/benchmark/test_neuronpedia_runner.py::test_benchmark_neuronpedia_runner +def test_benchmark_neuronpedia_runner(): + NP_OUTPUT_FOLDER = "neuronpedia_outputs/benchmark" + SAE_SET = "gpt2-small-res-jb" + SAE_PATH = "blocks.0.hook_resid_pre" + + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + from_local_sae=False, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=1, + n_prompts_total=1024, + n_features_at_a_time=32, + start_batch=0, + end_batch=8, + use_wandb=True, + sae_device="cpu", + model_device="cpu", + model_n_devices=1, + activation_store_device="cpu", + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + +# assume we have 4 devices, will put model on first 3, SAE on the last. +# def test_benchmark_neuronpedia_runner_distributed(): + +# # MODEL_ID = "gpt2-small" + +# (_, SAE_WEIGHTS_PATH, _) = download_sae_from_hf( +# "jbloom/GPT2-Small-SAEs-Reformatted", "blocks.0.hook_resid_pre" +# ) + +# NP_OUTPUT_FOLDER = "neuronpedia_outputs/benchmark" +# SAE_SET = "res-jb" +# SAE_PATH = os.path.dirname(SAE_WEIGHTS_PATH) +# print(SAE_PATH) + +# # delete output files if present +# os.system(f"rm -rf {NP_OUTPUT_FOLDER}") +# cfg = NeuronpediaRunnerConfig( +# sae_set=SAE_SET, +# sae_path=SAE_PATH, +# outputs_dir=NP_OUTPUT_FOLDER, +# sparsity_threshold=-5, +# n_prompts_total=1000, +# n_features_at_a_time=32, +# start_batch=0, +# end_batch=8, +# use_wandb=True, +# sae_device="cuda:3", +# model_device="cuda", +# model_n_devices=3, +# activation_store_device="cpu", +# ) + +# runner = NeuronpediaRunner(cfg) +# runner.run() + + +def test_simple_neuronpedia_runner_hook_z_sae(): + NP_OUTPUT_FOLDER = "neuronpedia_outputs/test_attn" + ACT_CACHE_FOLDER = "cached_activations" + SAE_SET = "gpt2-small-hook-z-kk" + SAE_PATH = "blocks.0.hook_z" + NUM_FEATURES_PER_BATCH = 2 + NUM_BATCHES = 2 + + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + os.system(f"rm -rf {ACT_CACHE_FOLDER}") + + # # we make two batches of 2 features each + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name="att-kk", + from_local_sae=False, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=1, + n_prompts_total=5000, + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + n_prompts_in_forward_pass=32, + start_batch=0, + end_batch=NUM_BATCHES - 1, + use_wandb=True, + shuffle_tokens=False, + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + assert "run_settings.json" in os.listdir(runner.cfg.outputs_dir) + + +def test_neuronpedia_runner_prefix_suffix_it_model(): + NP_OUTPUT_FOLDER = "neuronpedia_outputs/test_masking" + ACT_CACHE_FOLDER = "cached_activations" + SAE_SET = "gpt2-small-res-jb" + SAE_PATH = "blocks.0.hook_resid_pre" + NUM_FEATURES_PER_BATCH = 2 + NUM_BATCHES = 2 + + # delete output files if present + os.system(f"rm -rf {NP_OUTPUT_FOLDER}") + os.system(f"rm -rf {ACT_CACHE_FOLDER}") + + # # we make two batches of 2 features each + cfg = NeuronpediaRunnerConfig( + sae_set=SAE_SET, + sae_path=SAE_PATH, + np_set_name="res-jb", + from_local_sae=False, + outputs_dir=NP_OUTPUT_FOLDER, + sparsity_threshold=1, + n_prompts_total=5000, + n_features_at_a_time=NUM_FEATURES_PER_BATCH, + n_prompts_in_forward_pass=32, + start_batch=0, + end_batch=NUM_BATCHES - 1, + use_wandb=True, + shuffle_tokens=False, + # prefix_tokens=[106, 1645, 108], + # suffix_tokens=[107, 108], + ignore_positions=[0, 1, 2], + ) + + runner = NeuronpediaRunner(cfg) + runner.run() + + assert "run_settings.json" in os.listdir(runner.cfg.outputs_dir) diff --git a/SAEDashboard/tests/acceptance/test_neuronpedia_runner_output.py b/SAEDashboard/tests/acceptance/test_neuronpedia_runner_output.py new file mode 100644 index 0000000000000000000000000000000000000000..87e35eaaf9497c5960b769963644bddd7cf1c125 --- /dev/null +++ b/SAEDashboard/tests/acceptance/test_neuronpedia_runner_output.py @@ -0,0 +1,143 @@ +import json +import os +from typing import Any, Dict + + +def load_json_file(file_path: str) -> Dict[str, Any]: + with open(file_path, "r") as f: + return json.load(f) + + +def test_neuronpedia_json_output(): + # Assuming the output directory is 'neuronpedia_outputs' + output_dir = "/Users/curttigges/Projects/SAEDashboard/neuronpedia_outputs/gpt2-small_gpt2-small-hook-z-kk_blocks.5.attn.hook_z" + + # Find all batch files + batch_files = [ + f + for f in os.listdir(output_dir) + if f.startswith("batch-") and f.endswith(".json") + ] + + assert len(batch_files) > 0, "No batch files found in the output directory" + + for batch_file in batch_files: + file_path = os.path.join(output_dir, batch_file) + batch_data = load_json_file(file_path) + + # Check top-level structure + assert isinstance( + batch_data, dict + ), f"Batch data in {batch_file} is not a dictionary" + assert "model_id" in batch_data, f"'model_id' missing in {batch_file}" + assert "layer" in batch_data, f"'layer' missing in {batch_file}" + assert "sae_set" in batch_data, f"'sae_set' missing in {batch_file}" + assert "features" in batch_data, f"'features' missing in {batch_file}" + + assert isinstance( + batch_data["features"], list + ), f"'features' in {batch_file} is not a list" + + # Check each feature + for feature in batch_data["features"]: + assert isinstance( + feature, dict + ), f"Feature in {batch_file} is not a dictionary" + assert ( + "feature_index" in feature + ), f"'feature_index' missing in feature in {batch_file}" + assert ( + "activations" in feature + ), f"'activations' missing in feature in {batch_file}" + assert "neg_str" in feature, f"'neg_str' missing in feature in {batch_file}" + assert ( + "neg_values" in feature + ), f"'neg_values' missing in feature in {batch_file}" + assert "pos_str" in feature, f"'pos_str' missing in feature in {batch_file}" + assert ( + "pos_values" in feature + ), f"'pos_values' missing in feature in {batch_file}" + assert ( + "frac_nonzero" in feature + ), f"'frac_nonzero' missing in feature in {batch_file}" + assert ( + "freq_hist_data_bar_heights" in feature + ), f"'freq_hist_data_bar_heights' missing in feature in {batch_file}" + assert ( + "freq_hist_data_bar_values" in feature + ), f"'freq_hist_data_bar_values' missing in feature in {batch_file}" + assert ( + "logits_hist_data_bar_heights" in feature + ), f"'logits_hist_data_bar_heights' missing in feature in {batch_file}" + assert ( + "logits_hist_data_bar_values" in feature + ), f"'logits_hist_data_bar_values' missing in feature in {batch_file}" + assert ( + "n_prompts_total" in feature + ), f"'n_prompts_total' missing in feature in {batch_file}" + assert ( + "n_tokens_in_prompt" in feature + ), f"'n_tokens_in_prompt' missing in feature in {batch_file}" + assert "dataset" in feature, f"'dataset' missing in feature in {batch_file}" + assert ( + "neuron_alignment_indices" in feature + ), f"'neuron_alignment_indices' missing in feature in {batch_file}" + assert ( + "neuron_alignment_values" in feature + ), f"'neuron_alignment_values' missing in feature in {batch_file}" + assert ( + "neuron_alignment_l1" in feature + ), f"'neuron_alignment_l1' missing in feature in {batch_file}" + assert ( + "correlated_neurons_indices" in feature + ), f"'correlated_neurons_indices' missing in feature in {batch_file}" + assert ( + "correlated_neurons_l1" in feature + ), f"'correlated_neurons_l1' missing in feature in {batch_file}" + assert ( + "correlated_neurons_pearson" in feature + ), f"'correlated_neurons_pearson' missing in feature in {batch_file}" + assert ( + "correlated_features_indices" in feature + ), f"'correlated_features_indices' missing in feature in {batch_file}" + assert ( + "correlated_features_l1" in feature + ), f"'correlated_features_l1' missing in feature in {batch_file}" + assert ( + "correlated_features_pearson" in feature + ), f"'correlated_features_pearson' missing in feature in {batch_file}" + assert ( + "decoder_weights_dist" in feature + ), f"'decoder_weights_dist' missing in feature in {batch_file}" + + # Check activations + for activation in feature["activations"]: + assert isinstance( + activation, dict + ), f"Activation in feature in {batch_file} is not a dictionary" + assert ( + "tokens" in activation + ), f"'tokens' missing in activation in {batch_file}" + assert ( + "values" in activation + ), f"'values' missing in activation in {batch_file}" + assert ( + "bin_min" in activation + ), f"'bin_min' missing in activation in {batch_file}" + assert ( + "bin_max" in activation + ), f"'bin_max' missing in activation in {batch_file}" + assert ( + "bin_contains" in activation + ), f"'bin_contains' missing in activation in {batch_file}" + + # Check for DFA data (commented out for now) + assert ( + "dfa_values" in activation + ), f"'dfa_values' missing in activation in {batch_file}" + assert ( + "dfa_maxValue" in activation + ), f"'dfa_maxValue' missing in activation in {batch_file}" + assert ( + "dfa_targetIndex" in activation + ), f"'dfa_targetIndex' missing in activation in {batch_file}" diff --git a/SAEDashboard/tests/acceptance/test_simple/batch-0.json b/SAEDashboard/tests/acceptance/test_simple/batch-0.json new file mode 100644 index 0000000000000000000000000000000000000000..757aa7fde79f78091dfaa26fdfd8b766229a9552 --- /dev/null +++ b/SAEDashboard/tests/acceptance/test_simple/batch-0.json @@ -0,0 +1,20012 @@ +{ + "model_id": "gpt2-small", + "layer": 0, + "sae_set": "res-jb", + "features": [ + { + "feature_index": 0, + "neuron_alignment_indices": [ + 217, + 266, + 87 + ], + "neuron_alignment_values": [ + 0.112, + 0.109, + 0.107 + ], + "neuron_alignment_l1": [ + 0.005, + 0.005, + 0.005 + ], + "correlated_neurons_indices": [ + 14, + 225, + 61 + ], + "correlated_neurons_l1": [ + 0.01, + 0.009, + 0.009 + ], + "correlated_neurons_pearson": [ + 0.009, + 0.009, + 0.009 + ], + "correlated_features_indices": [ + 0, + 1 + ], + "correlated_features_l1": [ + 0.0, + 0.0 + ], + "correlated_features_pearson": [ + 0.0, + 0.0 + ], + "neg_str": [ + "sequence", + "ogen", + " Lex", + "Kenn", + "ENN", + "lex", + "ap", + "ITED", + "orce", + "plex" + ], + "neg_values": [ + -0.707, + -0.674, + -0.67, + -0.64, + -0.628, + -0.609, + -0.601, + -0.601, + -0.599, + -0.594 + ], + "pos_str": [ + " Brigade", + " brigade", + " Brig", + " brig", + " battalion", + " Battalion", + " Regiment", + "alions", + " Infantry", + " Squadron" + ], + "pos_values": [ + 3.753, + 3.063, + 2.409, + 2.271, + 1.672, + 1.408, + 1.31, + 1.161, + 1.155, + 1.101 + ], + "frac_nonzero": 0.0002, + "freq_hist_data_bar_values": [ + 0.023, + 0.067, + 0.111, + 0.156, + 0.2, + 0.244, + 0.289, + 0.333, + 0.377, + 0.421, + 0.466, + 0.51, + 0.554, + 0.598, + 0.643, + 0.687, + 0.731, + 0.775, + 0.82, + 0.864, + 0.908, + 0.953, + 0.997, + 1.041, + 1.085, + 1.13, + 1.174, + 1.218, + 1.262, + 1.307, + 1.351, + 1.395, + 1.439, + 1.484, + 1.528, + 1.572, + 1.617, + 1.661, + 1.705, + 1.749, + 1.794, + 1.838, + 1.882, + 1.926, + 1.971, + 2.015, + 2.059, + 2.103, + 2.148, + 2.192 + ], + "freq_hist_data_bar_heights": [ + 47, + 32, + 28, + 10, + 2, + 1, + 2, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3 + ], + "logits_hist_data_bar_heights": [ + 5, + 35, + 175, + 792, + 2403, + 5363, + 8573, + 9863, + 8765, + 6549, + 3882, + 2050, + 1012, + 448, + 198, + 69, + 31, + 17, + 11, + 5, + 4, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + "logits_hist_data_bar_values": [ + -0.662, + -0.573, + -0.484, + -0.395, + -0.306, + -0.216, + -0.127, + -0.038, + 0.051, + 0.14, + 0.229, + 0.319, + 0.408, + 0.497, + 0.586, + 0.675, + 0.765, + 0.854, + 0.943, + 1.032, + 1.121, + 1.211, + 1.3, + 1.389, + 1.478, + 1.567, + 1.657, + 1.746, + 1.835, + 1.924, + 2.013, + 2.103, + 2.192, + 2.281, + 2.37, + 2.459, + 2.548, + 2.638, + 2.727, + 2.816, + 2.905, + 2.994, + 3.084, + 3.173, + 3.262, + 3.351, + 3.44, + 3.53, + 3.619, + 3.708 + ], + "n_prompts_total": 5000, + "n_tokens_in_prompt": 128, + "dataset": "Skylion007/openwebtext", + "decoder_weights_dist": [], + "activations": [ + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + "\n", + "\n", + "I", + " happen", + " to", + " agree", + " with", + " this", + ".", + " But", + " there", + "\u00e2\u0122", + "\u013b", + "s", + " a", + " sad", + "der", + " and", + " more", + " pointed", + " response", + " to", + " Hillary", + "\u00e2\u0122", + "\u013b", + "s", + " reality", + " brigade", + ".", + " Name", + "ly", + ",", + " that", + " they", + " need", + " to", + " face", + " the", + " reality", + " of", + " what", + " the", + " 2016", + " election", + " is", + " going", + " to", + " be", + " like", + " with", + " Hillary", + " at", + " the", + " top", + " of", + " the", + " ticket", + ".", + "\n", + "\n", + "Before", + " I", + " outline", + " that", + " particular", + " shit", + "storm", + ",", + " let", + " me", + " issue", + " a", + " few", + " sure", + "-", + "to", + "-", + "be", + "-", + "ign", + "ored", + " (", + "and", + " therefore", + " pointless", + ")", + " caveats", + ".", + " First", + ",", + " I", + " myself", + " was", + " a", + " Hillary", + " supporter", + " until", + " Sanders", + " entered", + " the", + " race", + ".", + " (", + "More", + " precisely", + ",", + " until", + " I", + " read", + " his", + " policy", + " positions", + ".)", + "\n", + "\n", + "Second", + ",", + " I", + " will", + " enthusiastically", + " support", + " Hillary", + " when", + " and", + " if", + " she", + " is" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.214, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 27, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + "about", + " global", + " warming", + ",", + " or", + " the", + " historical", + " Jesus", + ",", + " or", + " the", + " way", + " we", + " raise", + " our", + " children", + ".", + " That", + "\u00e2\u0122", + "\u013b", + "s", + " why", + " they", + " need", + " to", + " have", + " special", + " protections", + ".", + "\n", + "\n", + "*", + " *", + " *", + "\n", + "\n", + "But", + " the", + " tenure", + " system", + ",", + " which", + " is", + " already", + " being", + " eroded", + " by", + " the", + " growth", + " of", + " contingent", + " labor", + ",", + " is", + " not", + " the", + " only", + " thing", + " that", + " is", + " under", + " assault", + " in", + " the", + " top", + "-", + "down", + ",", + " corpor", + "at", + "ized", + " academy", + ".", + " As", + " Cary", + " Nelson", + " explains", + " in", + " No", + " University", + " Is", + " an", + " Island", + " (", + "2010", + "),", + " shared", + " governance", + "\u2014", + "the", + " principle", + " that", + " universities", + " should", + " be", + " controlled", + " by", + " their", + " faculties", + ",", + " which", + " protects", + " academic", + " values", + " against", + " the", + " enc", + "roach", + "ments", + " of", + " the", + " spreadsheet", + " brigade", + "\u2014", + "is", + " also", + " threatened", + " by", + " the", + " changing", + " structure", + " of", + " academic", + " work", + ".", + " Cont", + "ing" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.211, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 112, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + "and", + " Israel", + ",", + " n", + "atch", + ").", + " Consider", + " Hitch", + " a", + " minor", + " martyr", + " to", + " the", + " cause", + " of", + " the", + " Cedar", + " Revolution", + " here", + ".", + " Exit", + " question", + " one", + ":", + " More", + " or", + " less", + " unpleasant", + " than", + " being", + " water", + "board", + "ed", + "?", + " Exit", + " question", + " two", + ":", + " Er", + ",", + " isn", + "\u00e2\u0122", + "\u013b", + "t", + " Ace", + " there", + " with", + " him", + "?", + " Has", + " anyone", + " heard", + " from", + " Ace", + " recently", + "?", + "\n", + "\n", + "Update", + ":", + " Bel", + "ated", + " exit", + " question", + " three", + ":", + " Is", + " it", + " time", + " for", + " me", + " to", + " organize", + " a", + " mighty", + " atheist", + " army", + " and", + " lead", + " it", + " on", + " a", + " march", + " to", + " Damascus", + " for", + " justice", + "?", + " Yes", + ".", + "\n", + "\n", + "Update", + ":", + " Forbes", + " says", + " T", + "otten", + " was", + " in", + " the", + " mix", + ".", + "\n", + "\n", + "But", + " later", + " that", + " night", + ",", + " three", + " of", + " our", + " \u00e2\u0122", + "\u013e", + "s", + "co", + "op", + "\u00e2\u0122", + "\u013f", + " brigade", + "\u2013", + "Jonathan", + " Fore", + "man", + ",", + " Michael" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.203, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 120, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " of", + " the", + " total", + " force", + ".", + "\n", + "\n", + "Instruct", + "ors", + " have", + " been", + " told", + " not", + " to", + " change", + " the", + " standards", + ",", + " but", + " minor", + " adjustments", + " have", + " been", + " made", + " at", + " the", + " training", + ".", + "\n", + "\n", + "Women", + " in", + " the", + " Infantry", + " Training", + " Battalion", + " are", + " housed", + " in", + " separate", + " barracks", + ",", + " but", + " share", + " the", + " same", + " conditions", + " as", + " the", + " men", + " when", + " they", + " go", + " to", + " the", + " field", + ".", + " Male", + " instructors", + " are", + " instructed", + " to", + " announce", + " themselves", + " before", + " entering", + " the", + " female", + " barracks", + " and", + " same", + " for", + " women", + " instructors", + " entering", + " male", + " barracks", + ".", + "\n", + "\n", + "The", + " training", + " battalion", + " has", + " added", + " several", + " women", + " instructors", + " who", + " teach", + " and", + " also", + " serve", + " as", + " mentors", + ".", + "\n", + "\n", + "Staff", + " Sgt", + ".", + " Juan", + "ita", + " Towns", + ",", + " an", + " instructor", + " here", + ",", + " said", + " the", + " women", + " have", + " the", + " same", + " concerns", + " as", + " the", + " men", + ":", + " finishing", + " the", + " course", + ".", + "\n", + "\n", + "\"" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.13, + 0.0, + 0.001, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.319, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 82, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " as", + " cyclists", + " maybe", + " moan", + " about", + " certain", + " drivers", + " they", + " are", + " never", + " going", + " to", + " go", + " away", + ",", + " so", + " there", + "'s", + " got", + " to", + " be", + " a", + " bit", + " of", + " give", + " and", + " take", + ".\"", + "\n", + "\n", + "W", + "iggins", + " said", + " he", + " would", + " like", + " to", + " see", + " the", + " introduction", + " of", + " a", + " law", + " making", + " it", + " compulsory", + " to", + " wear", + " cycling", + " helmets", + ".", + "\n", + "\n", + "He", + " later", + " clarified", + " his", + " comments", + " on", + " twitter", + ".", + " \"", + "Just", + " to", + " confirm", + " I", + " haven", + "'t", + " called", + " for", + " helmets", + " to", + " be", + " made", + " the", + " law", + " as", + " reports", + " suggest", + ".\"", + "\n", + "\n", + "\"", + "I", + " suggested", + " it", + " may", + " be", + " the", + " way", + " to", + " go", + " to", + " give", + " cyclists", + " more", + " protection", + " legally", + " if", + " involved", + " in", + " an", + " accident", + ".", + "\n", + "\n", + "\"", + "I", + " wasn", + "'t", + " on", + " me", + " soap", + " box", + " CALL", + "ING", + ",", + " was", + " asked", + " what", + " I", + " thought", + ".\"", + "\n", + "\n", + "Resp", + "onding" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.303, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 31, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " Tuesday", + ".", + " Water", + " f", + "ount", + "ains", + " were", + " to", + " be", + " blocked", + " in", + " all", + " buildings", + " and", + " water", + " bottles", + " were", + " to", + " be", + " provided", + " to", + " students", + ",", + " according", + " to", + " corporation", + " spokesperson", + " Ana", + " P", + "ich", + "ardo", + ".", + " Liberty", + "-", + "Per", + "ry", + ",", + " Delaware", + " Community", + " and", + " Bur", + "ris", + "/", + "Indiana", + " Academy", + " schools", + " are", + " the", + " only", + " others", + " affected", + " by", + " the", + " boil", + " order", + ",", + " and", + " all", + " were", + " in", + " session", + " Tuesday", + ",", + " according", + " to", + " school", + " officials", + ".", + "\n", + "\n", + "The", + " campus", + " at", + " the", + " Youth", + " Opportunity", + " Center", + " along", + " Kil", + "g", + "ore", + " Ave", + ".", + " also", + " had", + " to", + " block", + " water", + " f", + "ount", + "ains", + " and", + " water", + " use", + " in", + " their", + " kitchens", + ".", + " Water", + " bottles", + " and", + " other", + " safe", + " pot", + "able", + " water", + " sources", + " were", + " provided", + " to", + " students", + " and", + " staff", + " according", + " to", + " Jeff", + " Helm", + ",", + " Director", + " of", + " Information", + " Technology", + " and", + " Facilities", + " for", + " the", + " campus" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.269, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 116, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " The", + " output", + " of", + " the", + " buffer", + " is", + " coupled", + " using", + " a", + " 10", + "u", + "F", + " capacitor", + " into", + " the", + " Nut", + "ube", + " grids", + ".", + " A", + " positive", + " grid", + " bias", + " of", + " 0", + "V", + " to", + " 3", + ".", + "3", + "V", + ",", + " adjustable", + " using", + " tr", + "imp", + "ots", + ",", + " is", + " applied", + " to", + " the", + " grids", + " through", + " a", + " 33", + "k", + " resistor", + ".", + "\n", + "\n", + "Fil", + "ament", + " power", + " -", + " which", + " is", + " only", + " 700", + "m", + "V", + " at", + " 17", + "mA", + " per", + " tri", + "ode", + " -", + " is", + " supplied", + " via", + " 150", + " oh", + "m", + " dropping", + " resist", + "ors", + " from", + " a", + " 3", + ".", + "3", + "V", + " linear", + " regulator", + " (", + "which", + " also", + " supplies", + " the", + " positive", + " grid", + " bias", + ").", + " Note", + " that", + " the", + " regulator", + " WILL", + " get", + " hot", + " -", + " it", + "'s", + " normal", + ".", + "\n", + "\n", + "24", + "V", + " is", + " supplied", + " by", + " a", + " standard", + " wall", + " adapter", + ".", + " The", + " plates", + " of", + " the", + " Nut", + "ube", + " are", + " loaded", + " with" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.266, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 63, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " entire", + " subreddit", + " devoted", + " to", + " the", + " effect", + ".", + " With", + " topics", + " ranging", + " from", + " movies", + " that", + " never", + " existed", + ",", + " to", + " discrepancies", + " in", + " historical", + " events", + ",", + " people", + " vehemently", + " claim", + " to", + " remember", + " very", + " particular", + " things", + " differently", + ",", + " but", + " on", + " a", + " large", + ",", + " collective", + " scale", + ".", + " Some", + " people", + "\u00e2\u0122", + "\u013b", + "s", + " reactions", + " are", + " visceral", + " when", + " they", + " experience", + " new", + " revelations", + " due", + " to", + " the", + " Mandela", + " Effect", + ",", + " to", + " the", + " point", + " of", + " inc", + "urring", + " panic", + " attacks", + " or", + " questioning", + " reality", + ".", + "\n", + "\n", + "M", + "AND", + "EL", + "A", + " EFF", + "ECT", + " THE", + "OR", + "IES", + " AND", + " C", + "ERN", + "\n", + "\n", + "One", + " prag", + "mat", + "ist", + " theory", + " for", + " explaining", + " the", + " Mandela", + " Effect", + " is", + " that", + " it", + " is", + " simply", + " a", + " failure", + " in", + " collective", + " memory", + ".", + " Our", + " brains", + " are", + " very", + " easily", + " influenced", + " by", + " our", + " own", + " filters", + ",", + " as", + " well", + " as", + " the", + " perception", + " of", + " others", + "." + ], + "values": [ + 0.0, + 0.205, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 1, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " more", + " minutes", + " is", + " to", + " keep", + " Ky", + "rie", + " Irving", + " refreshed", + ",", + " and", + " more", + " importantly", + ",", + " healthy", + ".", + " Irving", + "\u00e2\u0122", + "\u013b", + "s", + " scary", + " injury", + " history", + " and", + " the", + " impact", + " it", + " had", + " on", + " the", + " NBA", + " Finals", + " is", + " etched", + " into", + " the", + " mind", + " of", + " every", + " Caval", + "ier", + " official", + ",", + " player", + " and", + " fan", + ".", + "\n", + "\n", + "In", + " many", + " ways", + ",", + " Williams", + " is", + " like", + " Smith", + ",", + " a", + " free", + "-", + "whe", + "eling", + " shooter", + " who", + " can", + " fall", + " victim", + " to", + " cold", + " spells", + " when", + " it", + " comes", + " to", + " his", + " shot", + ".", + " However", + ",", + " Williams", + " won", + "\u00e2\u0122", + "\u013b", + "t", + " be", + " looked", + " upon", + " as", + " an", + " integral", + " part", + " of", + " the", + " lineup", + ",", + " just", + " a", + " potentially", + " valuable", + " chip", + " to", + " have", + " when", + " needed", + ".", + "\n", + "\n", + "Plus", + ",", + " Dell", + "aved", + "ova", + " will", + " still", + " be", + " around", + " to", + " inject", + " some", + " fire", + " into", + " the", + " team", + " when", + " necessary", + "." + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.201, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 39, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " blame", + " everybody", + " himself", + " for", + " everything", + " he", + " did", + " wrong", + " will", + " stand", + " out", + " in", + " historical", + " accounts", + " of", + " his", + " dizz", + "ying", + " fall", + " from", + " the", + " heights", + " vault", + "ing", + " ambition", + ".", + "\n", + "\n", + "If", + " you", + "\u00e2\u0122", + "\u013b", + "re", + " ready", + " to", + " read", + " more", + " from", + " the", + " unb", + "oss", + "ed", + " and", + " unb", + "ought", + " Polit", + "icus", + " team", + ",", + " sign", + " up", + " for", + " our", + " newsletter", + " here", + "!", + " Email", + " address", + ":", + " Leave", + " this", + " field", + " empty", + " if", + " you", + "'re", + " human", + ":", + "<|endoftext|>", + "In", + " the", + " conservative", + " comment", + "ariat", + " and", + " intellectual", + " classes", + ",", + " the", + " deal", + " with", + " the", + " devil", + " that", + " is", + " Trump", + "ism", + " seems", + " increasingly", + " complete", + ".", + " St", + "al", + "wart", + " conservatives", + " who", + " for", + " years", + "\u2014", + "in", + " some", + " cases", + " decades", + "\u2014", + "def", + "ended", + " the", + " principles", + " of", + " limited", + " government", + ",", + " personal", + " liberty", + ",", + " and", + " strict", + " adherence", + " to", + " the", + " Constitution", + " have", + " h", + "iked", + " their", + " skirts", + " and" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.169, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 73, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + ".", + "\n", + "\n", + "The", + " investigation", + " dragged", + " on", + " for", + " three", + " years", + ".", + " The", + " political", + " roof", + " fell", + " in", + " on", + " Gray", + " when", + " D", + ".", + "C", + ".", + " businessman", + " Jeffrey", + " E", + ".", + " Thompson", + " entered", + " federal", + " court", + " on", + " March", + " 10", + ",", + " 2014", + ",", + " and", + " pleaded", + " guilty", + " to", + " illegally", + " giving", + " more", + " than", + " $", + "2", + " million", + " to", + " Gray", + "'s", + " 2010", + " campaign", + ".", + " Thompson", + " said", + " Gray", + " knew", + " about", + " that", + " \"", + "shadow", + " campaign", + ".\"", + "\n", + "\n", + "The", + " media", + " took", + " it", + " from", + " there", + ".", + "\n", + "\n", + "A", + " March", + " 10", + " Post", + " headline", + " screamed", + ":", + " \"", + "Gray", + " knew", + " of", + " '", + "shadow", + " campaign", + ",'", + " Thompson", + " prosecutors", + " say", + ";", + " mayor", + " says", + " it", + "'s", + " all", + " a", + " lie", + ".\"", + " Other", + " news", + " organizations", + " followed", + " suit", + " with", + " headlines", + " and", + " extended", + " coverage", + " of", + " their", + " own", + ".", + "\n", + "\n", + "That", + " same", + " month", + ",", + " Bowser", + " said", + " at", + " a", + " debate" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.161, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 83, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + ".", + " Now", + " I", + "\u00e2\u0122", + "\u013b", + "m", + " going", + " to", + " have", + " to", + " throw", + " it", + " out", + ".", + "\u00e2\u0122", + "\u013f", + " I", + " don", + "\u00e2\u0122", + "\u013b", + "t", + " elaborate", + " that", + " I", + " spilled", + " pasta", + " sauce", + " on", + " my", + " sweater", + ",", + " or", + " that", + " stains", + " are", + " hard", + " to", + " remove", + " from", + " some", + " fabrics", + ",", + " or", + " that", + " these", + " fabrics", + " are", + " often", + " used", + " to", + " make", + " swe", + "aters", + ",", + " or", + " that", + " I", + " am", + " the", + " sort", + " of", + " person", + " who", + " would", + " throw", + " out", + " a", + " sweater", + " if", + " it", + " were", + " stained", + ".", + " I", + " assume", + " that", + " my", + " friend", + " knows", + " all", + " this", + ",", + " and", + " can", + " fill", + " in", + " the", + " gaps", + ".", + " If", + " I", + " didn", + "\u00e2\u0122", + "\u013b", + "t", + " omit", + " information", + " that", + " the", + " listener", + " already", + " knows", + ",", + " speech", + " would", + " be", + " very", + " long", + " and", + " very", + " boring", + ".", + "\u00e2\u0122", + "\u013f", + "<|endoftext|>", + "F", + "raz", + "er", + " Brown", + " writes", + ",", + "\n", + "\n", + "At", + " London", + " Super", + " Comic" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.148, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.158, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 67, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + "\n", + "Why", + " so", + "?", + " Will", + "ingham", + ":", + "\n", + "\n", + "\u00e2\u0122", + "\u013e", + "We", + " tend", + " to", + " think", + " of", + " reading", + " as", + " a", + " skill", + " that", + " can", + " be", + " applied", + " to", + " any", + " text", + ".", + " Indeed", + ",", + " describing", + " a", + " child", + " as", + " a", + " good", + " reader", + " implies", + " that", + " she", + " will", + " be", + " a", + " good", + " reader", + " no", + " matter", + " what", + " the", + " content", + ".", + " That", + " is", + " true", + " only", + " for", + " decoding", + " \u2014", + " the", + " process", + " of", + " turning", + " written", + " letters", + " into", + " sounds", + ".", + " Comp", + "rehend", + "ing", + " what", + " you", + " read", + " depends", + " heavily", + " on", + " what", + " you", + " already", + " know", + " about", + " the", + " topic", + ".", + "\n", + "\n", + "\u00e2\u0122", + "\u013e", + "Here", + "\u00e2\u0122", + "\u013b", + "s", + " why", + " that", + "\u00e2\u0122", + "\u013b", + "s", + " true", + ".", + " We", + " all", + " omit", + " information", + " when", + " we", + " speak", + ".", + " For", + " example", + ",", + " imagine", + " I", + " said", + " to", + " a", + " friend", + " \u00e2\u0122", + "\u013e", + "I", + " ate", + " pasta", + " when", + " I", + " wore", + " my", + " new", + " sweater" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.155 + ], + "qualifying_token_index": 126, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " at", + " the", + " beginning", + " of", + " the", + " year", + ",", + " six", + " months", + " before", + " the", + " June", + " 19", + " primary", + " election", + ".", + "\n", + "\n", + "\"", + "Should", + " he", + " run", + "?\"", + " calls", + " for", + " an", + " entirely", + " different", + " assessment", + ".", + "\n", + "\n", + "Gray", + ",", + " 75", + ",", + " is", + " still", + " smart", + "ing", + " from", + " the", + " voters", + "'", + " rejection", + " of", + " his", + " reelection", + " bid", + ".", + " He", + " lays", + " his", + " loss", + " at", + " the", + " feet", + " of", + " Bowser", + " and", + " then", + "-", + "U", + ".", + "S", + ".", + " Attorney", + " Ronald", + " C", + ".", + " Mac", + "hen", + " Jr", + ".,", + " who", + ",", + " with", + " much", + " fan", + "fare", + ",", + " launched", + " a", + " corruption", + " probe", + " into", + " Gray", + "'s", + " 2010", + " mayoral", + " election", + " campaign", + ".", + "\n", + "\n", + "Two", + " years", + " before", + " the", + " April", + " 2014", + " election", + ",", + " then", + "-", + "Ward", + " 4", + " council", + " member", + " Bowser", + " was", + " one", + " of", + " three", + " lawmakers", + " to", + " call", + " for", + " Gray", + " to", + " resign", + " because", + " of", + " Mac", + "hen", + "'s", + " probe" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.152, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 32, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + ".", + " Now", + " I", + "\u00e2\u0122", + "\u013b", + "m", + " going", + " to", + " have", + " to", + " throw", + " it", + " out", + ".", + "\u00e2\u0122", + "\u013f", + " I", + " don", + "\u00e2\u0122", + "\u013b", + "t", + " elaborate", + " that", + " I", + " spilled", + " pasta", + " sauce", + " on", + " my", + " sweater", + ",", + " or", + " that", + " stains", + " are", + " hard", + " to", + " remove", + " from", + " some", + " fabrics", + ",", + " or", + " that", + " these", + " fabrics", + " are", + " often", + " used", + " to", + " make", + " swe", + "aters", + ",", + " or", + " that", + " I", + " am", + " the", + " sort", + " of", + " person", + " who", + " would", + " throw", + " out", + " a", + " sweater", + " if", + " it", + " were", + " stained", + ".", + " I", + " assume", + " that", + " my", + " friend", + " knows", + " all", + " this", + ",", + " and", + " can", + " fill", + " in", + " the", + " gaps", + ".", + " If", + " I", + " didn", + "\u00e2\u0122", + "\u013b", + "t", + " omit", + " information", + " that", + " the", + " listener", + " already", + " knows", + ",", + " speech", + " would", + " be", + " very", + " long", + " and", + " very", + " boring", + ".", + "\u00e2\u0122", + "\u013f", + "<|endoftext|>", + "F", + "raz", + "er", + " Brown", + " writes", + ",", + "\n", + "\n", + "At", + " London", + " Super", + " Comic" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.148, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.158, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 29, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + ",", + " \"", + "I", + " found", + " out", + " that", + " [", + "Gray", + "]", + " didn", + "'t", + " actually", + " win", + " the", + " Democratic", + " primary", + " [", + "in", + " 2010", + " against", + " Mayor", + " Adrian", + " M", + ".", + " F", + "enty", + "]", + " fair", + " and", + " square", + ",", + " so", + " .", + " .", + " .", + " I", + " could", + " not", + " support", + " somebody", + " who", + " would", + " be", + " almost", + " indicted", + ".\"", + "\n", + "\n", + "There", + " stood", + " Gray", + ",", + " three", + " weeks", + " before", + " the", + " April", + " 1", + " primary", + ":", + " un", + "charged", + ",", + " but", + " publicly", + " accused", + " of", + " involvement", + " in", + " unlawful", + " behavior", + ",", + " with", + " no", + " opportunity", + " to", + " confront", + " his", + " accus", + "ers", + " or", + " review", + " the", + " evidence", + " against", + " him", + " in", + " a", + " court", + " of", + " law", + ".", + " Instead", + ",", + " he", + " found", + " himself", + " in", + " the", + " court", + " of", + " public", + " opinion", + ".", + "\n", + "\n", + "It", + " was", + " no", + " contest", + " on", + " primary", + " Election", + " Day", + " 2014", + ".", + "\n", + "\n", + "A", + " year", + " later", + ",", + " another", + " decision", + " was", + " reached", + ":" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.147, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 7, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " public", + " opinion", + " polls", + " related", + " to", + " leaders", + "'", + " approval", + " and", + " disapproval", + " ratings", + ".", + " The", + " Leader", + " Meter", + " lets", + " you", + " choose", + " the", + " data", + " you", + " want", + " to", + " look", + " at", + ",", + " how", + " you", + " want", + " to", + " break", + " it", + " down", + ",", + " and", + " how", + " it", + " compares", + " to", + " past", + " party", + " leaders", + " and", + " Canadian", + " prime", + " ministers", + ".", + "\n", + "\n", + "You", + " can", + " check", + " out", + " the", + " Leader", + " Meter", + " here", + ".", + " You", + " can", + " also", + " read", + " a", + " full", + " explanation", + " on", + " how", + " to", + " get", + " the", + " most", + " out", + " of", + " this", + " interactive", + " tool", + " here", + ".", + "\n", + "\n", + "Follow", + " CBC", + "Politics", + " on", + " Twitter", + " @", + "cb", + "cp", + "olitics", + "\n", + "\n", + "This", + " article", + " reviews", + " trends", + " in", + " national", + " public", + " opinion", + " surveys", + ",", + " and", + " includes", + " all", + " polls", + " conducted", + " and", + " published", + " by", + " different", + " poll", + "sters", + " between", + " March", + " 1", + " and", + " June", + " 1", + ",", + " 2016", + ".", + " Method", + "ology", + ",", + " sample", + " size", + " and" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.123, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.14, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 55, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " support", + " over", + " the", + " last", + " three", + " months", + ".", + " The", + " party", + "'s", + " best", + " results", + " came", + " in", + " British", + " Columbia", + ",", + " where", + " the", + " Greens", + " averaged", + " 10", + ".", + "1", + " per", + " cent", + ".", + " That", + " was", + " down", + " marginally", + " over", + " the", + " last", + " three", + " months", + ",", + " but", + " up", + " about", + " two", + " points", + " since", + " the", + " last", + " election", + ".", + " Everywhere", + " else", + ",", + " the", + " Greens", + ",", + " who", + " traditionally", + " poll", + " above", + " their", + " electoral", + " results", + ",", + " averaged", + " less", + " than", + " 7", + " per", + " cent", + " support", + ".", + "\n", + "\n", + "Leader", + " Meter", + ":", + " CBC", + " Politics", + "'", + " new", + " interactive", + " tool", + "\n", + "\n", + "The", + " next", + " federal", + " election", + " may", + " be", + " years", + " away", + ",", + " but", + " what", + " Canadians", + " think", + " of", + " how", + " their", + " political", + " leaders", + " are", + " doing", + " today", + " matters", + " \u2014", + " and", + " the", + " CBC", + "'s", + " Leader", + " Meter", + " tracks", + " just", + " that", + ".", + "\n", + "\n", + "The", + " Leader", + " Meter", + " is", + " an", + " interactive", + " feature", + " tracking", + " the", + " latest" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.139, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 72, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " numbers", + " for", + " the", + " 5", + " major", + " federal", + " leaders", + " in", + " our", + " new", + " CBC", + " Leader", + " Meter", + ".", + "\n", + "\n", + "Justin", + " Trudeau", + "'s", + " own", + " popularity", + " also", + " remains", + " high", + ",", + " with", + " approval", + " ratings", + " well", + " above", + " those", + " of", + " both", + " of", + " his", + " main", + " rivals", + ",", + " interim", + " Conservative", + " Leader", + " R", + "ona", + " Ambrose", + " and", + " outgoing", + " NDP", + " Leader", + " Tom", + " Mulcair", + ",", + " as", + " well", + " as", + " the", + " ratings", + " he", + " posted", + " before", + " last", + " year", + "'s", + " vote", + ".", + "\n", + "\n", + "The", + " CBC", + "'s", + " new", + " interactive", + " tool", + ",", + " the", + " Leader", + " Meter", + ",", + " lets", + " you", + " track", + " those", + " numbers", + ".", + "\n", + "\n", + "Over", + " the", + " last", + " three", + " months", + " of", + " polling", + ",", + " the", + " Liberals", + " have", + " averaged", + " 46", + ".", + "7", + " per", + " cent", + " support", + ".", + " That", + "'s", + " an", + " increase", + " of", + " 7", + ".", + "2", + " points", + " over", + " their", + " performance", + " in", + " the", + " Oct", + ".", + " 19", + " election", + " and", + " nearly", + " even", + " (", + "up" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.123, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.135, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 75, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " built", + " into", + " the", + " religious", + " enterprise", + " and", + " we", + " felt", + " we", + " had", + " to", + " take", + " a", + " strong", + " stance", + " and", + " argue", + " that", + " when", + " someone", + " says", + " something", + " contrary", + " to", + " our", + " best", + " existing", + " knowledge", + ",", + " whether", + " religious", + " or", + " not", + ",", + " then", + " we", + " should", + " not", + " hesitate", + " to", + " respond", + " to", + " it", + ".", + " Not", + " that", + " we", + " have", + " to", + " call", + " them", + " fools", + " or", + " idiots", + ",", + " but", + " we", + " have", + " to", + " present", + " an", + " intellectual", + " arguments", + " that", + " explain", + " the", + " flaws", + " in", + " their", + " reasoning", + ".", + " We", + " needed", + " to", + " come", + " out", + " and", + " say", + " something", + " and", + " not", + " pussy", + "foot", + " around", + " it", + ".", + "<|endoftext|>", + "U", + ".", + "S", + ".", + " Marines", + " from", + " Delta", + " Company", + ",", + " Infantry", + " Training", + " Battalion", + ",", + " School", + " of", + " Infantry", + "-", + "East", + " navigate", + " their", + " way", + " through", + " the", + " obstacle", + " course", + " aboard", + ",", + " Camp", + " Ge", + "iger", + ",", + " N", + ".", + "C", + ".,", + " Oct", + ".", + " 04", + ",", + " 2013" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.13, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.115, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 96, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " of", + " the", + " total", + " force", + ".", + "\n", + "\n", + "Instruct", + "ors", + " have", + " been", + " told", + " not", + " to", + " change", + " the", + " standards", + ",", + " but", + " minor", + " adjustments", + " have", + " been", + " made", + " at", + " the", + " training", + ".", + "\n", + "\n", + "Women", + " in", + " the", + " Infantry", + " Training", + " Battalion", + " are", + " housed", + " in", + " separate", + " barracks", + ",", + " but", + " share", + " the", + " same", + " conditions", + " as", + " the", + " men", + " when", + " they", + " go", + " to", + " the", + " field", + ".", + " Male", + " instructors", + " are", + " instructed", + " to", + " announce", + " themselves", + " before", + " entering", + " the", + " female", + " barracks", + " and", + " same", + " for", + " women", + " instructors", + " entering", + " male", + " barracks", + ".", + "\n", + "\n", + "The", + " training", + " battalion", + " has", + " added", + " several", + " women", + " instructors", + " who", + " teach", + " and", + " also", + " serve", + " as", + " mentors", + ".", + "\n", + "\n", + "Staff", + " Sgt", + ".", + " Juan", + "ita", + " Towns", + ",", + " an", + " instructor", + " here", + ",", + " said", + " the", + " women", + " have", + " the", + " same", + " concerns", + " as", + " the", + " men", + ":", + " finishing", + " the", + " course", + ".", + "\n", + "\n", + "\"" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.13, + 0.0, + 0.001, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.319, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 33, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " a", + " decade", + " at", + " war", + ",", + " will", + " not", + " be", + " changed", + " to", + " accommodate", + " women", + ".", + "\n", + "\n", + "\"", + "There", + " certainly", + " is", + " no", + " pressure", + " to", + " lower", + " those", + " standards", + ",\"", + " said", + " Col", + ".", + " Jeffrey", + " Con", + "ner", + ",", + " commander", + " of", + " the", + " School", + " of", + " Infantry", + "-", + "East", + ".", + "\n", + "\n", + "Army", + " standards", + "\n", + "\n", + "The", + " Army", + " is", + " also", + " undertaking", + " studies", + " as", + " it", + " works", + " to", + " open", + " ground", + " combat", + " positions", + " to", + " women", + ".", + " Recently", + " they", + " validated", + " the", + " physical", + " requirement", + " of", + " all", + " their", + " special", + "ties", + " in", + " an", + " effort", + " to", + " create", + " tests", + " that", + " will", + " screen", + " applicants", + " for", + " those", + " occupations", + ".", + "\n", + "\n", + "Among", + " the", + " hardest", + " physical", + " task", + " was", + " in", + " the", + " artillery", + " field", + ",", + " where", + " a", + " three", + "-", + "person", + " crew", + " has", + " to", + " load", + " 90", + " rounds", + " of", + " 155", + "mm", + " how", + "itzer", + " shells", + ",", + " which", + " weigh", + " about", + " 95", + " pounds", + " each" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.128, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 38, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " have", + " until", + " January", + " 2016", + " to", + " do", + " so", + ".", + " Ex", + "ceptions", + " would", + " require", + " approval", + " of", + " the", + " defense", + " secretary", + ".", + "\n", + "\n", + "Women", + " have", + " been", + " serving", + " in", + " plenty", + " of", + " jobs", + " that", + " have", + " exposed", + " them", + " to", + " combat", + " over", + " the", + " past", + " decade", + " in", + " Iraq", + " and", + " Afghanistan", + ".", + " But", + " ground", + " combat", + " jobs", + " have", + " remained", + " off", + "-", + "limits", + ".", + " These", + " jobs", + " require", + " physical", + " strength", + ",", + " feats", + " of", + " endurance", + " and", + " spending", + " a", + " long", + " time", + " in", + " primitive", + " field", + " conditions", + ".", + "\n", + "\n", + "The", + " infantry", + " is", + " the", + " leading", + " edge", + " of", + " the", + " ground", + " combat", + " special", + "ties", + ".", + " Its", + " mission", + " is", + " as", + " basic", + " as", + " it", + " is", + " elemental", + ".", + " Infantry", + "men", + " carry", + " what", + " they", + " need", + " on", + " their", + " backs", + " and", + " kill", + " the", + " enemy", + " at", + " close", + " quarters", + ".", + "\n", + "\n", + "\"", + "Every", + " single", + " one", + " of", + " them", + " is", + " an", + " alpha", + " male", + ",\"" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.126, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 97, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " support", + " over", + " the", + " last", + " three", + " months", + ".", + " The", + " party", + "'s", + " best", + " results", + " came", + " in", + " British", + " Columbia", + ",", + " where", + " the", + " Greens", + " averaged", + " 10", + ".", + "1", + " per", + " cent", + ".", + " That", + " was", + " down", + " marginally", + " over", + " the", + " last", + " three", + " months", + ",", + " but", + " up", + " about", + " two", + " points", + " since", + " the", + " last", + " election", + ".", + " Everywhere", + " else", + ",", + " the", + " Greens", + ",", + " who", + " traditionally", + " poll", + " above", + " their", + " electoral", + " results", + ",", + " averaged", + " less", + " than", + " 7", + " per", + " cent", + " support", + ".", + "\n", + "\n", + "Leader", + " Meter", + ":", + " CBC", + " Politics", + "'", + " new", + " interactive", + " tool", + "\n", + "\n", + "The", + " next", + " federal", + " election", + " may", + " be", + " years", + " away", + ",", + " but", + " what", + " Canadians", + " think", + " of", + " how", + " their", + " political", + " leaders", + " are", + " doing", + " today", + " matters", + " \u2014", + " and", + " the", + " CBC", + "'s", + " Leader", + " Meter", + " tracks", + " just", + " that", + ".", + "\n", + "\n", + "The", + " Leader", + " Meter", + " is", + " an", + " interactive", + " feature", + " tracking", + " the", + " latest" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.139, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 110, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " support", + " over", + " the", + " last", + " three", + " months", + ".", + " The", + " party", + "'s", + " best", + " results", + " came", + " in", + " British", + " Columbia", + ",", + " where", + " the", + " Greens", + " averaged", + " 10", + ".", + "1", + " per", + " cent", + ".", + " That", + " was", + " down", + " marginally", + " over", + " the", + " last", + " three", + " months", + ",", + " but", + " up", + " about", + " two", + " points", + " since", + " the", + " last", + " election", + ".", + " Everywhere", + " else", + ",", + " the", + " Greens", + ",", + " who", + " traditionally", + " poll", + " above", + " their", + " electoral", + " results", + ",", + " averaged", + " less", + " than", + " 7", + " per", + " cent", + " support", + ".", + "\n", + "\n", + "Leader", + " Meter", + ":", + " CBC", + " Politics", + "'", + " new", + " interactive", + " tool", + "\n", + "\n", + "The", + " next", + " federal", + " election", + " may", + " be", + " years", + " away", + ",", + " but", + " what", + " Canadians", + " think", + " of", + " how", + " their", + " political", + " leaders", + " are", + " doing", + " today", + " matters", + " \u2014", + " and", + " the", + " CBC", + "'s", + " Leader", + " Meter", + " tracks", + " just", + " that", + ".", + "\n", + "\n", + "The", + " Leader", + " Meter", + " is", + " an", + " interactive", + " feature", + " tracking", + " the", + " latest" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.139, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.125, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 119, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " numbers", + " for", + " the", + " 5", + " major", + " federal", + " leaders", + " in", + " our", + " new", + " CBC", + " Leader", + " Meter", + ".", + "\n", + "\n", + "Justin", + " Trudeau", + "'s", + " own", + " popularity", + " also", + " remains", + " high", + ",", + " with", + " approval", + " ratings", + " well", + " above", + " those", + " of", + " both", + " of", + " his", + " main", + " rivals", + ",", + " interim", + " Conservative", + " Leader", + " R", + "ona", + " Ambrose", + " and", + " outgoing", + " NDP", + " Leader", + " Tom", + " Mulcair", + ",", + " as", + " well", + " as", + " the", + " ratings", + " he", + " posted", + " before", + " last", + " year", + "'s", + " vote", + ".", + "\n", + "\n", + "The", + " CBC", + "'s", + " new", + " interactive", + " tool", + ",", + " the", + " Leader", + " Meter", + ",", + " lets", + " you", + " track", + " those", + " numbers", + ".", + "\n", + "\n", + "Over", + " the", + " last", + " three", + " months", + " of", + " polling", + ",", + " the", + " Liberals", + " have", + " averaged", + " 46", + ".", + "7", + " per", + " cent", + " support", + ".", + " That", + "'s", + " an", + " increase", + " of", + " 7", + ".", + "2", + " points", + " over", + " their", + " performance", + " in", + " the", + " Oct", + ".", + " 19", + " election", + " and", + " nearly", + " even", + " (", + "up" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.123, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.135, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 12, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " public", + " opinion", + " polls", + " related", + " to", + " leaders", + "'", + " approval", + " and", + " disapproval", + " ratings", + ".", + " The", + " Leader", + " Meter", + " lets", + " you", + " choose", + " the", + " data", + " you", + " want", + " to", + " look", + " at", + ",", + " how", + " you", + " want", + " to", + " break", + " it", + " down", + ",", + " and", + " how", + " it", + " compares", + " to", + " past", + " party", + " leaders", + " and", + " Canadian", + " prime", + " ministers", + ".", + "\n", + "\n", + "You", + " can", + " check", + " out", + " the", + " Leader", + " Meter", + " here", + ".", + " You", + " can", + " also", + " read", + " a", + " full", + " explanation", + " on", + " how", + " to", + " get", + " the", + " most", + " out", + " of", + " this", + " interactive", + " tool", + " here", + ".", + "\n", + "\n", + "Follow", + " CBC", + "Politics", + " on", + " Twitter", + " @", + "cb", + "cp", + "olitics", + "\n", + "\n", + "This", + " article", + " reviews", + " trends", + " in", + " national", + " public", + " opinion", + " surveys", + ",", + " and", + " includes", + " all", + " polls", + " conducted", + " and", + " published", + " by", + " different", + " poll", + "sters", + " between", + " March", + " 1", + " and", + " June", + " 1", + ",", + " 2016", + ".", + " Method", + "ology", + ",", + " sample", + " size", + " and" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.123, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.14, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 14, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + ".", + " Delta", + " Company", + " is", + " the", + " first", + " company", + " at", + " center", + " with", + " female", + " students", + ".", + " (", + "Photo", + ":", + " Warrant", + " Officer", + " Paul", + " M", + "anc", + "us", + "o", + ",", + " U", + ".", + "S", + ".", + " Marines", + ")", + " Story", + " Highlights", + " Th", + "irteen", + " women", + " taking", + " the", + " latest", + " infantry", + " course", + "\n", + "\n", + "Services", + " must", + " open", + " combat", + " roles", + " to", + " women", + " who", + " qualify", + "\n", + "\n", + "One", + " test", + ":", + " Car", + "rying", + " an", + " 85", + "-", + "lb", + ".", + " pack", + " for", + " 10", + " kilometers", + " or", + " more", + "\n", + "\n", + "C", + "AMP", + " GE", + "IG", + "ER", + ",", + " N", + ".", + "C", + ".", + " \u2014", + " Mist", + " cl", + "ings", + " to", + " the", + " ground", + " and", + " the", + " sun", + " won", + "'t", + " make", + " an", + " appearance", + " for", + " another", + " three", + " hours", + ".", + " The", + " 263", + " Marines", + " of", + " Delta", + " Company", + ",", + " Infantry", + " Training", + " Battalion", + ",", + " shoulder", + " their", + " bulky", + " packs", + " and", + " set", + " off", + ".", + "\n", + "\n", + "The", + " air", + " is", + " still", + " cool" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.12, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 108, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + "\u013b", + "s", + " 14", + " models", + " 13", + "-", + "16", + "\u00e2\u0122", + "\u013f", + " already", + " in", + " from", + " the", + " board", + " edge", + "\u00e2\u0122\u00a6.", + "and", + " steal", + "t", + "hed", + ".", + " Heavy", + " Infantry", + " no", + " less", + ".", + " Tier", + " 3", + " is", + " the", + " icing", + " on", + " the", + " cake", + ",", + " allowing", + " Rh", + "y", + "as", + " to", + " place", + " her", + " Up", + "keep", + " spells", + " Occ", + "ult", + "ation", + " and", + " Rapp", + "ort", + " for", + " free", + " before", + " deployment", + ".", + " Standing", + " in", + " at", + " F", + "UR", + "Y", + " 5", + ",", + " this", + " allows", + " her", + " to", + " have", + " both", + " spells", + " out", + " and", + " cast", + " Dash", + " out", + " on", + " Turn", + " 1", + ",", + " allowing", + " with", + " proper", + " placement", + " her", + " entire", + " infantry", + " army", + " a", + " SPD", + " Buff", + ".", + " Her", + " war", + "be", + "asts", + " don", + "\u00e2\u0122", + "\u013b", + "t", + " benefit", + ",", + " but", + " since", + " Typh", + "on", + " and", + " the", + " others", + " are", + " acting", + " as", + " a", + " second", + " line", + " along", + " with", + " the", + " Swords", + "men", + ",", + " this", + " is", + " not", + " an", + " issue", + "." + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.12, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.074, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 22, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 2.214, + "bin_contains": -1, + "tokens": [ + " training", + ".", + "\n", + "\n", + "The", + " two", + "-", + "month", + " enlisted", + " course", + " here", + " at", + " the", + " School", + " of", + " Infantry", + "-", + "East", + " is", + " not", + " as", + " demanding", + " as", + " the", + " officer", + " course", + " and", + " it", + " is", + " more", + " likely", + " at", + " least", + " some", + " women", + " will", + " complete", + " it", + ".", + " The", + " attrition", + " rate", + " for", + " men", + " here", + " has", + " been", + " about", + " 1", + "%.", + "\n", + "\n", + "Even", + " if", + " they", + " do", + " pass", + " this", + " initial", + " group", + " will", + " not", + " get", + " to", + " join", + " the", + " infantry", + ",", + " at", + " least", + " not", + " immediately", + ",", + " since", + " it", + " remains", + " closed", + " to", + " women", + ".", + "\n", + "\n", + "On", + " the", + " 10", + "-", + "kil", + "ometer", + " hike", + " two", + " men", + " and", + " two", + " women", + " dropped", + " out", + ".", + " The", + " hikes", + " here", + " at", + " the", + " infantry", + " school", + " get", + " longer", + ",", + " culminating", + " with", + " a", + " 20", + "-", + "kil", + "ometer", + " walk", + ".", + " Officers", + " have", + " promised", + " that", + " standards", + ",", + " hon", + "ed", + " after", + " more", + " than" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.119, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 15, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 1.771, + "bin_max": 2.214, + "bin_contains": 0.0, + "tokens": [ + "\n", + "\n", + "I", + " happen", + " to", + " agree", + " with", + " this", + ".", + " But", + " there", + "\u00e2\u0122", + "\u013b", + "s", + " a", + " sad", + "der", + " and", + " more", + " pointed", + " response", + " to", + " Hillary", + "\u00e2\u0122", + "\u013b", + "s", + " reality", + " brigade", + ".", + " Name", + "ly", + ",", + " that", + " they", + " need", + " to", + " face", + " the", + " reality", + " of", + " what", + " the", + " 2016", + " election", + " is", + " going", + " to", + " be", + " like", + " with", + " Hillary", + " at", + " the", + " top", + " of", + " the", + " ticket", + ".", + "\n", + "\n", + "Before", + " I", + " outline", + " that", + " particular", + " shit", + "storm", + ",", + " let", + " me", + " issue", + " a", + " few", + " sure", + "-", + "to", + "-", + "be", + "-", + "ign", + "ored", + " (", + "and", + " therefore", + " pointless", + ")", + " caveats", + ".", + " First", + ",", + " I", + " myself", + " was", + " a", + " Hillary", + " supporter", + " until", + " Sanders", + " entered", + " the", + " race", + ".", + " (", + "More", + " precisely", + ",", + " until", + " I", + " read", + " his", + " policy", + " positions", + ".)", + "\n", + "\n", + "Second", + ",", + " I", + " will", + " enthusiastically", + " support", + " Hillary", + " when", + " and", + " if", + " she", + " is" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.214, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 27, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 1.771, + "bin_max": 2.214, + "bin_contains": 0.0, + "tokens": [ + "and", + " Israel", + ",", + " n", + "atch", + ").", + " Consider", + " Hitch", + " a", + " minor", + " martyr", + " to", + " the", + " cause", + " of", + " the", + " Cedar", + " Revolution", + " here", + ".", + " Exit", + " question", + " one", + ":", + " More", + " or", + " less", + " unpleasant", + " than", + " being", + " water", + "board", + "ed", + "?", + " Exit", + " question", + " two", + ":", + " Er", + ",", + " isn", + "\u00e2\u0122", + "\u013b", + "t", + " Ace", + " there", + " with", + " him", + "?", + " Has", + " anyone", + " heard", + " from", + " Ace", + " recently", + "?", + "\n", + "\n", + "Update", + ":", + " Bel", + "ated", + " exit", + " question", + " three", + ":", + " Is", + " it", + " time", + " for", + " me", + " to", + " organize", + " a", + " mighty", + " atheist", + " army", + " and", + " lead", + " it", + " on", + " a", + " march", + " to", + " Damascus", + " for", + " justice", + "?", + " Yes", + ".", + "\n", + "\n", + "Update", + ":", + " Forbes", + " says", + " T", + "otten", + " was", + " in", + " the", + " mix", + ".", + "\n", + "\n", + "But", + " later", + " that", + " night", + ",", + " three", + " of", + " our", + " \u00e2\u0122", + "\u013e", + "s", + "co", + "op", + "\u00e2\u0122", + "\u013f", + " brigade", + "\u2013", + "Jonathan", + " Fore", + "man", + ",", + " Michael" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.203, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 120, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 1.771, + "bin_max": 2.214, + "bin_contains": 0.0, + "tokens": [ + "about", + " global", + " warming", + ",", + " or", + " the", + " historical", + " Jesus", + ",", + " or", + " the", + " way", + " we", + " raise", + " our", + " children", + ".", + " That", + "\u00e2\u0122", + "\u013b", + "s", + " why", + " they", + " need", + " to", + " have", + " special", + " protections", + ".", + "\n", + "\n", + "*", + " *", + " *", + "\n", + "\n", + "But", + " the", + " tenure", + " system", + ",", + " which", + " is", + " already", + " being", + " eroded", + " by", + " the", + " growth", + " of", + " contingent", + " labor", + ",", + " is", + " not", + " the", + " only", + " thing", + " that", + " is", + " under", + " assault", + " in", + " the", + " top", + "-", + "down", + ",", + " corpor", + "at", + "ized", + " academy", + ".", + " As", + " Cary", + " Nelson", + " explains", + " in", + " No", + " University", + " Is", + " an", + " Island", + " (", + "2010", + "),", + " shared", + " governance", + "\u2014", + "the", + " principle", + " that", + " universities", + " should", + " be", + " controlled", + " by", + " their", + " faculties", + ",", + " which", + " protects", + " academic", + " values", + " against", + " the", + " enc", + "roach", + "ments", + " of", + " the", + " spreadsheet", + " brigade", + "\u2014", + "is", + " also", + " threatened", + " by", + " the", + " changing", + " structure", + " of", + " academic", + " work", + ".", + " Cont", + "ing" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.211, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 112, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.443, + "bin_contains": 1.0, + "tokens": [ + " total", + " of", + " $", + "25", + ",", + "000", + ".", + " You", + " can", + " find", + " the", + " Go", + "Fund", + "Me", + " page", + " here", + ".", + "\n", + "\n", + "The", + " Cons", + "ulate", + " tells", + " K", + "X", + "AN", + " that", + " Sol", + "is", + " will", + " need", + " to", + " have", + " another", + " surgery", + " next", + " Tuesday", + " to", + " remove", + " more", + " of", + " the", + " pellets", + " in", + " his", + " head", + ".", + "\n", + "\n", + "Copyright", + " by", + " K", + "X", + "AN", + " -", + " All", + " rights", + " reserved", + " Alonso", + " Sol", + "is", + " meets", + " the", + " family", + " who", + " organized", + " the", + " fundraiser", + " for", + " his", + " medical", + " expenses", + ".", + " K", + "X", + "AN", + " Photo", + "/", + " A", + "lyss", + "a", + " Go", + "ard", + ".", + "<|endoftext|>", + "Sen", + ".", + " John", + " McCain", + " John", + " Sidney", + " McCain", + "GOP", + " lobbyists", + " worry", + " Trump", + " l", + "ags", + " in", + " K", + " Street", + " fundraising", + " Mark", + " Kelly", + " kicks", + " off", + " Senate", + " bid", + ":", + " \u00e2\u0122", + "\u013a", + "A", + " mission", + " to", + " lift", + " up", + " hard", + "working", + " Ari", + "zon", + "ans", + "\u00e2\u0122", + "\u013b", + " G", + "abb", + "ard", + " hits" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 119, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.443, + "bin_contains": 1.0, + "tokens": [ + "\u013b", + "t", + " the", + " most", + " obedient", + ",", + " but", + " for", + " the", + " most", + " part", + " I", + " did", + " what", + " was", + " expected", + " of", + " me", + ".", + " But", + " then", + ",", + " at", + " the", + " age", + " of", + " 15", + " I", + " began", + " to", + " question", + " the", + " doctrines", + " that", + " I", + " had", + " been", + " taught", + " since", + " before", + " I", + " could", + " even", + " speak", + ".", + " I", + " believed", + ",", + " as", + " the", + " church", + " taught", + ",", + " that", + " if", + " I", + " did", + " what", + " I", + " was", + " supposed", + " to", + " it", + " would", + " all", + " be", + " clear", + " to", + " me", + ".", + " I", + " though", + " that", + " this", + " doubt", + " was", + " coming", + " from", + " the", + " devil", + ".", + " I", + " believed", + " that", + " because", + " I", + " was", + " dating", + " when", + " I", + " shouldn", + "\u00e2\u0122", + "\u013b", + "t", + " have", + " been", + ",", + " I", + " let", + " him", + " into", + " my", + " life", + " and", + " allowed", + " him", + " to", + " leave", + " me", + " ast", + "ray", + ".", + " This", + " doubt", + " continued", + " off", + " and", + " on", + " for", + " two", + " years", + ".", + " After", + " breaking", + " up", + " with", + " my" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 42, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.443, + "bin_contains": 1.0, + "tokens": [ + "\n", + "Study", + " design", + " offers", + " a", + " means", + " of", + " arbit", + "rating", + " between", + " studies", + " in", + " the", + " often", + " conflicting", + " minimum", + "-", + "wage", + " literature", + ".", + " The", + " strongest", + " designs", + " seem", + " to", + " consistently", + " find", + " little", + " or", + " no", + " evidence", + " of", + " dis", + "employment", + " effects", + " associated", + " with", + " increases", + " in", + " the", + " minimum", + " wage", + ".", + " However", + ",", + " when", + " applying", + " this", + " research", + " to", + " policy", + "making", + ",", + " these", + " findings", + " do", + " come", + " with", + " caveats", + ".", + "\n", + "\n", + "First", + ",", + " we", + " can", + " only", + " make", + " inf", + "erences", + " about", + " the", + " impact", + " of", + " a", + " minimum", + "-", + "wage", + " increase", + " if", + " it", + " is", + " relatively", + " similar", + " to", + " the", + " sorts", + " of", + " minimum", + "-", + "wage", + " increases", + " that", + " have", + " been", + " studied", + ".", + " D", + "ube", + ",", + " Lester", + ",", + " and", + " Reich", + " (", + "2010", + ",", + " 9", + "62", + ")", + " caution", + " that", + " their", + " \u00e2\u0122", + "\u013e", + "con", + "clusion", + " is", + " limited", + " by", + " the", + " scope", + " of", + " the", + " actual", + " variation", + " in" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 81, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.443, + "bin_contains": 1.0, + "tokens": [ + " chief", + " turned", + " senator", + ",", + " pointed", + " out", + " that", + " police", + " cannot", + " put", + " released", + " suspects", + " under", + " surveillance", + " indefinitely", + " because", + " monitoring", + " can", + " require", + " as", + " many", + " as", + " 25", + " officers", + " per", + " target", + ".", + "\n", + "\n", + "\"", + "I", + " do", + " have", + " confidence", + " if", + " charges", + " are", + " warranted", + " they", + " will", + " be", + " laid", + "\u00e2\u0122\u00a6", + " If", + " this", + " is", + " an", + " early", + " intervention", + ",", + " [", + "police", + "]", + " might", + " have", + " gotten", + " to", + " this", + " before", + " they", + " crossed", + " the", + " line", + " into", + " criminality", + ",\"", + " Mr", + ".", + " White", + " said", + " in", + " an", + " interview", + ".", + "\n", + "\n", + "But", + ",", + " he", + " added", + ",", + " authorities", + " have", + " to", + " learn", + " how", + " to", + " de", + "-", + "program", + " extremists", + " \u2013", + " and", + " quickly", + ".", + " \"", + "Now", + " it", + " becomes", + " a", + " de", + "-", + "radical", + "ization", + " discussion", + ".\"", + "\n", + "\n", + "Civil", + "ians", + " who", + " are", + " trying", + " to", + " set", + " up", + " anti", + "-", + "radical", + "ization", + " efforts", + " say", + " they", + "'re", + " getting", + " little", + " support" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 4, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.443, + "bin_contains": 1.0, + "tokens": [ + " DOWN", + "LOAD", + " ON", + " G", + "OO", + "G", + "LE", + " PLAY", + " F", + "acer", + " is", + " the", + " original", + " app", + " that", + " lets", + " you", + " make", + " your", + " own", + " Wear", + " OS", + " watch", + " faces", + ".", + " The", + " app", + " gives", + " you", + " a", + " template", + ",", + " some", + " instructions", + ",", + " and", + " then", + " you", + " go", + " nuts", + " from", + " there", + ".", + " There", + " is", + " a", + " bit", + " of", + " a", + " learning", + " curve", + ",", + " but", + " it", + "'s", + " nothing", + " bad", + ".", + " You", + " can", + " always", + " download", + " watch", + " faces", + " that", + " other", + " people", + " make", + " if", + " the", + " task", + " proves", + " too", + " daunting", + ".", + " It", + " boasts", + " a", + " selection", + " of", + " over", + " 15", + ",", + "000", + " watch", + " faces", + ".", + " Some", + " of", + " them", + " are", + " free", + " and", + " some", + " of", + " them", + " will", + " require", + " a", + " small", + " fee", + " to", + " buy", + ".", + " It", + " should", + " work", + " pretty", + " well", + " with", + " newer", + " versions", + " of", + " Wear", + " OS", + " as", + " well", + ".", + " DOWN", + "LOAD", + " ON", + " G", + "OO", + "G", + "LE", + " PLAY", + " DOWN" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 48, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + } + ] + }, + { + "feature_index": 1, + "neuron_alignment_indices": [ + 5, + 559, + 673 + ], + "neuron_alignment_values": [ + 0.08, + 0.075, + 0.072 + ], + "neuron_alignment_l1": [ + 0.003, + 0.003, + 0.003 + ], + "correlated_neurons_indices": [ + 2, + 0, + 1 + ], + "correlated_neurons_l1": [ + 0.0, + 0.0, + 0.0 + ], + "correlated_neurons_pearson": [ + 0.0, + 0.0, + 0.0 + ], + "correlated_features_indices": [ + 0, + 1 + ], + "correlated_features_l1": [ + 0.0, + 0.0 + ], + "correlated_features_pearson": [ + 0.0, + 0.0 + ], + "neg_str": [ + "theless", + " Enterprises", + "ITNESS", + " compan", + " Extras", + "opsis", + " moons", + "etheless", + "info", + " bye" + ], + "neg_values": [ + -0.971, + -0.721, + -0.716, + -0.677, + -0.673, + -0.667, + -0.649, + -0.645, + -0.639, + -0.621 + ], + "pos_str": [ + "existent", + "ASC", + "arius", + "ouses", + "ucking", + "ensical", + "aryn", + "agin", + "arin", + "antes" + ], + "pos_values": [ + 0.841, + 0.756, + 0.745, + 0.742, + 0.74, + 0.712, + 0.701, + 0.699, + 0.699, + 0.686 + ], + "frac_nonzero": 0, + "freq_hist_data_bar_values": [], + "freq_hist_data_bar_heights": [], + "logits_hist_data_bar_heights": [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 4, + 8, + 7, + 17, + 36, + 54, + 140, + 233, + 310, + 547, + 791, + 1202, + 1598, + 2271, + 2898, + 3333, + 3971, + 4271, + 4539, + 4528, + 4145, + 3639, + 3069, + 2407, + 1873, + 1388, + 968, + 724, + 446, + 312, + 188, + 140, + 91, + 50, + 27, + 9, + 4, + 7, + 4, + 4, + 0, + 1 + ], + "logits_hist_data_bar_values": [ + -0.953, + -0.917, + -0.88, + -0.844, + -0.808, + -0.772, + -0.735, + -0.699, + -0.663, + -0.627, + -0.59, + -0.554, + -0.518, + -0.482, + -0.445, + -0.409, + -0.373, + -0.337, + -0.301, + -0.264, + -0.228, + -0.192, + -0.156, + -0.119, + -0.083, + -0.047, + -0.011, + 0.026, + 0.062, + 0.098, + 0.134, + 0.171, + 0.207, + 0.243, + 0.279, + 0.316, + 0.352, + 0.388, + 0.424, + 0.461, + 0.497, + 0.533, + 0.569, + 0.606, + 0.642, + 0.678, + 0.714, + 0.751, + 0.787, + 0.823 + ], + "n_prompts_total": 5000, + "n_tokens_in_prompt": 128, + "dataset": "Skylion007/openwebtext", + "decoder_weights_dist": [], + "activations": [ + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": -1, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 0, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 1, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 2, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 3, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 4, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 5, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 6, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 7, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 8, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 9, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 10, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 11, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 12, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 13, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 14, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 15, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 16, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 17, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 18, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 19, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 20, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 21, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 22, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 23, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 24, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 25, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 26, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 27, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": -1, + "bin_max": 0.0, + "bin_contains": -1, + "tokens": [ + "Port", + "-", + "au", + "-", + "Prince", + ",", + " Haiti", + " (", + "CNN", + ")", + " --", + " Earthquake", + " victims", + ",", + " wr", + "ithing", + " in", + " pain", + " and", + " grasping", + " at", + " life", + ",", + " watched", + " doctors", + " and", + " nurses", + " walk", + " away", + " from", + " a", + " field", + " hospital", + " Friday", + " night", + " after", + " a", + " Belgian", + " medical", + " team", + " evacuated", + " the", + " area", + ",", + " saying", + " it", + " was", + " concerned", + " about", + " security", + ".", + "\n", + "\n", + "The", + " decision", + " left", + " CNN", + " Chief", + " Medical", + " Correspond", + "ent", + " San", + "jay", + " Gupta", + " as", + " the", + " only", + " doctor", + " at", + " the", + " hospital", + " to", + " get", + " the", + " patients", + " through", + " the", + " night", + ".", + "\n", + "\n", + "CNN", + " initially", + " reported", + ",", + " based", + " on", + " conversations", + " with", + " some", + " of", + " the", + " doctors", + ",", + " that", + " the", + " United", + " Nations", + " ordered", + " the", + " Belgian", + " First", + " Aid", + " and", + " Support", + " Team", + " to", + " evacuate", + ".", + " However", + ",", + " Belgian", + " Chief", + " Coordinator", + " Ge", + "ert", + " G", + "ij", + "s", + ",", + " a", + " doctor", + " who", + " was", + " at", + " the", + " hospital" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 28, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.0, + "bin_contains": 1.0, + "tokens": [ + " Dec", + ".", + " 1", + ",", + " 2013", + ".", + " With", + " the", + " score", + " at", + " 7", + "-", + "7", + " in", + " the", + " second", + " quarter", + ",", + " the", + " Philadelphia", + " Eagles", + " marched", + " to", + " the", + " Arizona", + " Cardinals", + "\u00e2\u0122", + "\u013b", + " 6", + "-", + "yard", + " line", + ".", + " It", + " was", + " at", + " this", + " moment", + " when", + " Chip", + " Kelly", + " unveiled", + " a", + " surprising", + " wr", + "inkle", + ".", + "\n", + "\n", + "From", + " Video", + "\n", + "\n", + "If", + " Nick", + " F", + "oles", + " was", + " there", + ",", + " who", + " was", + " lined", + " up", + " as", + " quarterback", + "?", + "\n", + "\n", + "From", + " Video", + "\n", + "\n", + "Meet", + " Brad", + " Smith", + ".", + " He", + " has", + " experience", + " as", + " a", + " wide", + " receiver", + ",", + " running", + " back", + ",", + " quarterback", + ",", + " kick", + " return", + "er", + " and", + " special", + " teams", + " ace", + ".", + "\n", + "\n", + "A", + " few", + " things", + " about", + " this", + " play", + " made", + " people", + " believe", + " this", + " was", + " the", + " Wild", + "cat", + " formation", + ".", + " The", + " starting", + " quarterback", + " was", + " positioned", + " as", + " a", + " receiver", + ",", + " and", + " a" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 100, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.0, + "bin_contains": 1.0, + "tokens": [ + " all", + " \u2013", + " moving", + " people", + " and", + " HQ", + "s", + " around", + ",", + " knowing", + " they", + " can", + " all", + " still", + " work", + " online", + ".", + " And", + " it", + " may", + " be", + " that", + " the", + " booming", + " nature", + " of", + " London", + "\u00e2\u0122", + "\u013b", + "s", + " tech", + " scene", + " will", + " now", + " have", + " to", + " be", + " spread", + " more", + " equally", + " to", + " Europe", + "\u00e2\u0122", + "\u013b", + "s", + " other", + " tech", + " centres", + ".", + " This", + " much", + " was", + " admitted", + " by", + " Bald", + "erton", + " Capital", + ",", + " which", + " plans", + " now", + " to", + " stockpile", + " cash", + " and", + " invest", + " more", + " internationally", + ".", + " Look", + " for", + " talented", + " British", + " entrepreneurs", + " suddenly", + " turning", + " up", + " in", + " Berlin", + ",", + " Stockholm", + ",", + " Lisbon", + " and", + " Barcelona", + ".", + "\n", + "\n", + "But", + " one", + " of", + " the", + " greatest", + " myths", + " ever", + " told", + " about", + " the", + " tech", + " world", + " is", + " that", + " it", + "\u00e2\u0122", + "\u013b", + "s", + " about", + " technology", + ".", + " The", + " truth", + " is", + ",", + " it", + "\u00e2\u0122", + "\u013b", + "s", + " about", + " people", + ".", + " Extreme", + "ly", + " smart", + " and", + " talented", + " people", + "." + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 126, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.0, + "bin_contains": 1.0, + "tokens": [ + " eyes", + " of", + " an", + " entire", + " nation", + " will", + " be", + " on", + " your", + " school", + " and", + " campus", + "?", + " Could", + " it", + " possibly", + " be", + " a", + " negative", + " to", + " have", + " an", + " event", + " in", + " your", + " home", + " arena", + " that", + " required", + " over", + " 700", + " media", + " credentials", + " and", + " will", + " bring", + " a", + " reported", + " $", + "85", + " million", + " in", + " free", + " advertising", + " to", + " your", + " school", + "?", + "\n", + "\n", + "It", + "\u00e2\u0122", + "\u013b", + "s", + " one", + " of", + " the", + " biggest", + " positives", + " any", + " school", + " could", + " ask", + " for", + ".", + "\n", + "\n", + "\u00e2\u0122", + "\u013e", + "Let", + "\u00e2\u0122", + "\u013b", + "s", + " face", + " it", + ",", + " this", + " is", + " a", + " national", + " branding", + " for", + " the", + " university", + ",", + "\u00e2\u0122", + "\u013f", + " Men", + "z", + "ies", + " said", + ".", + " \u00e2\u0122", + "\u013e", + "[", + "This", + " is", + " a", + " national", + " branding", + " opportunity", + " for", + "]", + " the", + " Thomas", + " &", + " Mack", + ".", + "\u00e2\u0122", + "\u013f", + "\n", + "\n", + "And", + " most", + " important", + ",", + " it", + "\u00e2\u0122", + "\u013b", + "s", + " a", + " teaching", + " moment", + " for", + " Men", + "z", + "ies" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 119, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.0, + "bin_contains": 1.0, + "tokens": [ + " which", + " is", + " supposed", + " to", + " be", + " a", + " POS", + "IX", + "-", + "compatible", + " script", + " to", + " set", + " up", + " environment", + " variables", + " that", + " I", + " can", + " source", + " in", + " .", + "z", + "sh", + "rc", + " ,", + " .", + "bash", + "rc", + " ,", + " scripts", + " run", + " from", + " cr", + "on", + ",", + " my", + " GNOME", + " and", + " X", + "FC", + "E", + " startup", + " scripts", + " and", + " wherever", + ".", + "\n", + "\n", + "{", + ".", + "bash", + "}", + " for", + " bind", + "ir", + " in", + " $(", + "find", + " ~/", + "local", + "/", + "src", + " -", + "path", + " \"", + "*", + "/.", + "c", + "abal", + "-", + "sand", + "box", + "/", + "bin", + "\");", + " do", + " PATH", + "=\"", + "$", + "bind", + "ir", + ":", + "$", + "PATH", + "\"", + " done", + " export", + " PATH", + "\n", + "\n", + "Up", + "grading", + " cabal", + "-", + "install", + "\n", + "\n", + "Before", + " doing", + " anything", + " else", + ",", + " we", + " upgrade", + " cabal", + "-", + "install", + " .", + " The", + " version", + " of", + " cabal", + "-", + "install", + " in", + " Whe", + "e", + "zy", + " is", + " so", + " old", + " that", + " it", + " doesn", + "\u00e2\u0122", + "\u013b" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 32, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + }, + { + "bin_min": 0.0, + "bin_max": 0.0, + "bin_contains": 1.0, + "tokens": [ + ".", + "\n", + "\n", + "Thomas", + " looked", + " down", + ".", + " He", + " was", + " on", + " the", + " ceiling", + " of", + " the", + " second", + " floor", + " of", + " his", + " house", + ".", + " The", + " actual", + " floors", + " were", + " built", + " for", + " the", + " strain", + " of", + " people", + " walking", + " on", + " them", + ",", + " but", + " he", + " wasn", + "\u00e2\u0122", + "\u013b", + "t", + " so", + " sure", + " that", + " the", + " same", + " could", + " be", + " said", + " for", + " the", + " ceilings", + ".", + " He", + " had", + " no", + " idea", + " what", + " was", + " beneath", + " the", + " plaster", + ".", + " There", + " were", + " probably", + " some", + " jo", + "ists", + " and", + " insulation", + ",", + " then", + " sh", + "ing", + "les", + " beyond", + " that", + ".", + " If", + " he", + " fell", + " through", + " the", + " ceiling", + ",", + " what", + " would", + " happen", + "?", + " Would", + " he", + " continue", + " falling", + " into", + " the", + " sky", + "?", + " The", + " thought", + " was", + " sober", + "ing", + " enough", + " that", + " he", + " moved", + " away", + " from", + " the", + " windows", + ".", + "\n", + "\n", + "The", + " phone", + " wasn", + "\u00e2\u0122", + "\u013b", + "t", + " working", + ",", + " even", + " after", + " pulling", + " the", + " battery", + " out" + ], + "values": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "qualifying_token_index": 93, + "dfa_values": [], + "dfa_maxValue": 0, + "dfa_targetIndex": -1 + } + ] + } + ] +} \ No newline at end of file diff --git a/SAEDashboard/tests/acceptance/test_simple/batch-1.json b/SAEDashboard/tests/acceptance/test_simple/batch-1.json new file mode 100644 index 0000000000000000000000000000000000000000..5f9e555589823ebbb858c49c3657fa3dacbd8dbc --- /dev/null +++ b/SAEDashboard/tests/acceptance/test_simple/batch-1.json @@ -0,0 +1 @@ +{"model_id": "gpt2-small", "layer": 0, "sae_set": "res-jb", "features": [{"feature_index": 2, "neuron_alignment_indices": [88, 171, 27], "neuron_alignment_values": [0.109, 0.107, 0.103], "neuron_alignment_l1": [0.005, 0.005, 0.005], "correlated_neurons_indices": [480, 266, 87], "correlated_neurons_l1": [0.014, 0.014, 0.014], "correlated_neurons_pearson": [0.024, 0.023, 0.023], "correlated_features_indices": [2, 3], "correlated_features_l1": [0.0, 0.0], "correlated_features_pearson": [0.0, -0.0], "neg_str": ["\u00e3\u0124\u00b1", "ivil", " evasion", "chie", " pursu", " diversion", "pled", " Dod", "lement", "anna"], "neg_values": [-0.743, -0.724, -0.716, -0.711, -0.709, -0.705, -0.697, -0.692, -0.685, -0.681], "pos_str": [" MRI", "MRI", " ultrasound", " autopsy", " microscope", " microsc", "opsy", " anatomical", " imaging", " Ultr"], "pos_values": [3.121, 2.635, 2.313, 2.124, 1.738, 1.627, 1.539, 1.464, 1.42, 1.398], "frac_nonzero": 0.00035999999999999997, "freq_hist_data_bar_values": [0.008, 0.024, 0.04, 0.056, 0.072, 0.088, 0.104, 0.12, 0.136, 0.152, 0.168, 0.184, 0.2, 0.216, 0.232, 0.248, 0.264, 0.28, 0.296, 0.312, 0.328, 0.344, 0.36, 0.376, 0.392, 0.408, 0.424, 0.44, 0.456, 0.472, 0.488, 0.504, 0.52, 0.536, 0.552, 0.568, 0.584, 0.6, 0.616, 0.632, 0.648, 0.664, 0.68, 0.696, 0.712, 0.728, 0.744, 0.76, 0.776, 0.792], "freq_hist_data_bar_heights": [14, 11, 13, 26, 29, 27, 11, 15, 8, 7, 10, 3, 5, 8, 3, 7, 2, 7, 1, 5, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3], "logits_hist_data_bar_heights": [11, 30, 120, 341, 953, 2029, 3880, 5924, 7803, 8318, 7439, 5341, 3412, 2072, 1145, 615, 366, 176, 112, 59, 41, 25, 15, 7, 4, 5, 2, 4, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], "logits_hist_data_bar_values": [-0.704, -0.627, -0.55, -0.473, -0.395, -0.318, -0.241, -0.163, -0.086, -0.009, 0.068, 0.146, 0.223, 0.3, 0.378, 0.455, 0.532, 0.609, 0.687, 0.764, 0.841, 0.919, 0.996, 1.073, 1.15, 1.228, 1.305, 1.382, 1.46, 1.537, 1.614, 1.691, 1.769, 1.846, 1.923, 2.001, 2.078, 2.155, 2.232, 2.31, 2.387, 2.464, 2.542, 2.619, 2.696, 2.773, 2.851, 2.928, 3.005, 3.083], "n_prompts_total": 5000, "n_tokens_in_prompt": 128, "dataset": "Skylion007/openwebtext", "decoder_weights_dist": [], "activations": [{"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" would", " nonetheless", " suggest", " for", " complexity", " relevant", " to", " those", " types", ",", " the", " general", " case", " being", " made", " against", " conservatives", " in", " those", " areas", " needs", " revision", ".", " This", " would", " present", " to", " us", " a", " more", " nuanced", " and", " accurate", " picture", " of", " the", " relationship", " between", " ideology", " and", " complexity", " and", " suggest", " at", " the", " least", " that", " the", " current", " picture", " must", " be", " qualified", " by", " the", " type", " of", " complexity", " measurement", " under", " the", " microscope", ".", " The", " potential", " pitfalls", " of", " self", "\u00e2\u0122\u0132", "report", " measurement", " Further", ",", " for", " the", " purposes", " of", " determining", " the", " average", " complexity", " of", " a", " group", " of", " persons", ",", " the", " kinds", " of", " self", "\u00e2\u0122\u0132", "report", " measurements", " comprising", " the", " bulk", " of", " prior", " meta", "\u00e2\u0122\u0132", "an", "alyses", " have", " some", " additional", " potential", " pitfalls", " in", " interpretation", ".", " A", " self", "\u00e2\u0122\u0132", "report", " measurement", " is", " at", " best", " an", " indirect", " marker", " of", " a", " potential", " complexity", "\u00e2\u0122\u0132"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 61, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" likely", " dict", "ating", " under", " the", " gun", ".", "\n", "\n", "And", ",", " lo", " and", " behold", ",", " on", " the", " list", " of", " ad", "her", "ing", " parties", ",", " A", "IG", " takes", " front", " and", " center", " stage", " (", "together", " with", " several", " other", " parties", " that", " probably", " deserve", " the", " microscope", " treatment", ").", "\n", "\n", "So", " -", " in", " simple", " terms", ",", " IS", "DA", ",", " which", " is", " the", " only", " effective", " supervisor", " of", " the", " Over", " The", " Counter", " C", "DS", " market", ",", " is", " giving", " its", " blessing", " for", " trades", " to", " occur", " (", "cross", ")", " below", " where", " there", " is", " a", " realistic", " market", " bid", ",", " or", " higher", " than", " the", " offer", ".", " In", " traditional", " equity", " markets", " this", " is", " a", " highly", " illegal", " practice", ".", " IS", "DA", " is", " allowing", " retrospective", " arbitrary", " trades", " to", " have", " occurred", " at", " whatever", " price", " any", " two", " parties", " agree", " on", ",", " so"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 41, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["\u2014", "t", "otally", ",", " completely", " flat", "?", "\n", "\n", "R", "is", "hel", " is", " very", " familiar", " with", " the", " Kansas", " flat", "ness", " question", ".", " He", " was", " a", " student", " of", " Mark", " F", "on", "stad", ",", " a", " Texas", " State", " ge", "ographer", " who", ",", " in", " 2003", ",", " set", " out", " with", " some", " colleagues", " and", " a", " laser", " microscope", " to", " determine", " which", " was", " fl", "atter", ":", " Kansas", " or", " an", " I", "H", "OP", " panc", "ake", ".", " The", " resulting", " study", ",", " titled", " \u00e2\u0122", "\u013e", "Kansas", " Is", " Fl", "atter", " Than", " a", " Panc", "ake", ",", "\u00e2\u0122", "\u013f", " likely", " added", " to", " the", " public", " misconceptions", " that", " rank", "le", " Dob", "son", " and", " Campbell", ".", " (", "They", " also", " point", " out", " that", ",", " if", " you", " use", " the", " particular", " mathematical", " approach", " of", " F", "on", "stad", " et", " al", ",", " \u00e2\u0122", "\u013e", "there", " is", " no", " place", " on"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["%", " of", " their", " genome", " inherited", " from", " European", " ancestors", ".[", "173", "]", " If", " racial", " IQ", " gaps", " have", " a", " partially", " genetic", " basis", ",", " one", " might", " expect", " blacks", " with", " a", " higher", " degree", " of", " European", " ancestry", " to", " score", " higher", " on", " IQ", " tests", " than", " blacks", " with", " less", " European", " ancestry", ",", " because", " the", " genes", " inherited", " from", " European", " ancestors", " would", " likely", " include", " some", " genes", " with", " a", " positive", " effect", " on", " IQ", ".", " Genetic", "ist", " Alan", " Temple", "ton", " has", " argued", " that", " an", " experiment", " based", " on", " the", " Mend", "el", "ian", " \"", "common", " garden", "\"", " design", " where", " specimens", " with", " different", " hybrid", " compositions", " are", " subjected", " to", " the", " same", " environmental", " influences", ",", " would", " be", " the", " only", " way", " to", " definitively", " show", " a", " causal", " relation", " between", " genes", " and", " IQ", ".", " Sum", "mar", "izing", " the", " findings", " of", " adm", "ixture", " studies", ",", " he", " concludes"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.51, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 86, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" guidance", " and", " navigation", " systems", ".", " (", "Dr", ".", " Kh", "alf", "in", "\u00e2\u0122", "\u013b", "s", " bio", " is", " below", " the", " video", ".)", "\n", "\n", "I", "gor", " Kh", "alf", "in", ",", " PhD", "\n", "\n", "Dr", ".", " Kh", "alf", "in", " has", " over", " 30", " years", " of", " experience", " in", " the", " aerospace", "/", "defense", " industries", " and", " academia", ",", " holds", " 5", " patents", " in", " electromagnetic", " tracking", " and", " has", " published", " over", " 40", " scientific", " papers", " on", " related", " topics", ".", " His", " expertise", " includes", " opt", "oe", "lect", "ronics", ",", " electrom", "ag", "net", "ics", ",", " imaging", " systems", " and", " sensors", ",", " remote", " sensing", ",", " applied", " physics", ",", " signal", " processing", ",", " and", " non", "linear", " systems", ".", " Dr", ".", " Kh", "alf", "in", " is", " currently", " employed", " with", " Lockheed", " Martin", " Space", " Systems", " Company", ",", " where", " he", " leads", " the", " projects", " on", " spacecraft", " control", " systems", ".", " His", " prior"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 81, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["Man", "l", "ius", "\n", "\n", "Editor", "ial", " failed", " to", " address", " privacy", " and", " civil", " liberties", " issues", "\n", "\n", "To", " the", " Editor", ":", "\n", "\n", "It", " is", " readily", " understandable", " that", " news", " corporations", " would", " want", " to", " use", " drones", " to", " record", " and", " report", " news", ".", " The", " imaging", " capabilities", " of", " drones", " are", " mighty", " impressive", ".", "\n", "\n", "Yes", ",", " drones", " might", " \"", "enh", "ance", " the", " public", "'s", " understanding", " of", " events", ".\"", " And", ",", " true", ",", " drones", " may", " well", " have", " been", " \"", "used", " to", " capture", " footage", " of", " massive", " demonstrations", " in", " Ukraine", ".\"", " (", "Indeed", ",", " drones", " are", " ideal", " for", " identifying", " and", " monitoring", " demonstrators", ".)", "\n", "\n", "However", ",", " your", " May", " 11", " editorial", ",", " \"", "Journal", "ists", " have", " right", " to", " use", " drones", ",", " too", ",\"", " under", " analyzed", " the", " issue", ".", " Sure", ",", " news", " corporations"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 42, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["\u013e", "V", "irt", "ually", " every", " time", " Harvey", " was", " hired", " for", " a", " television", " show", ",", " [", "Co", "oper", "]", " would", " contact", " the", " owners", " or", " principals", " to", " inform", " them", " of", " potentially", " embarrassing", " material", " and", "/", "or", " tapes", " and", " attempt", " to", " have", " them", " influence", " Harvey", " to", " pay", " for", " the", " tapes", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Interestingly", ",", " court", " documents", " appear", " to", " show", " that", " Harvey", " admits", " to", " the", " r", "ants", ",", " saying", " that", " at", " times", " he", " was", " ed", "g", "ier", " than", " others", ".", " \u00e2\u0122", "\u013e", "I", " didn", "\u00e2\u0122", "\u013b", "t", " have", " to", " concern", " myself", " with", " branding", " or", " imaging", " or", " anything", ".", " You", " could", " just", " say", " \u2014", " I", " thought", " I", " was", " funn", "ier", ",", "\u00e2\u0122", "\u013f", " Harvey", " said", ".", "\n", "\n", "Co", "oper", " alleges", " that", " on", " one", " tape", ",", " Harvey", " says", " it"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.494, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 93, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" darker", " aspect", " of", " this", " kind", " of", " cultural", " pathology", ",", " just", " as", " there", " are", " serious", " analyses", " pointing", " to", " the", " socially", " toxic", " effects", " of", " the", " JFK", " assassination", " \u00e2\u0122", "\u013e", "altern", "ate", " theories", "\u00e2\u0122", "\u013f", ".", " For", " space", "flight", ",", " being", " distracted", " by", " the", " wrong", " cause", " means", " being", " tempted", " by", " the", " wrong", " fix", ".", " That", "\u00e2\u0122", "\u013b", "s", " never", " amusing", ",", " and", " often", " can", " be", " expensive", ".", " For", " space", "flight", ",", " being", " distracted", " by", " the", " wrong", " cause", " means", " being", " tempted", " by", " the", " wrong", " fix", ".", " That", "\u00e2\u0122", "\u013b", "s", " never", " amusing", ",", " and", " often", " can", " be", " expensive", ".", " As", " an", " egregious", " \u00e2\u0122", "\u013e", "bad", " example", "\u00e2\u0122", "\u013f", " of", " wrong", " causes", ",", " a", " recent", " book", " (", "Dark", " Mission", ",", " by", " Richard", " Ho", "ag", "land", " and", " Michael", " Bar", "a", ")", " spent", " a"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 7, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" shield", " (~", "$", "2", ".", " This", " slides", " over", " a", " fluorescent", " bulb", " to", " prevent", " it", " from", " shattering", ")", " Small", " piece", " of", " aluminum", " foil", ".", " (", "Had", " it", " in", " the", " house", ",", " because", " we", "\u00e2\u0122", "\u013b", "re", " civilized", ")", "\n", "\n", "The", " Steps", "\n", "\n", "I", " redesigned", " the", " PVC", " pipe", " and", " made", " it", " about", " 5", "\u00e2\u0122\u00b3", " shorter", ".", " It", " was", " too", " long", " and", " unw", "ield", "y", ".", " I", " took", " a", " little", " more", " care", " in", " marking", " off", " the", " space", " to", " cut", " out", ".", " The", " blue", " tape", " worked", " perfect", " to", " keep", " a", " straight", " line", ".", "\n", "\n", "Cut", " the", " opening", " in", " the", " PVC", " pipe", ".", " This", " can", " be", " whatever", " width", " you", " want", ".", " Mine", " is", " a", " little", " less", " than", " halfway", " through", ".", "\n", "\n", "Cut", " the", " fl", "ou", "rescent", " shield", " to"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 9, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" matte", " black", " spray", "p", "aint", " that", " was", " specific", " for", " plastics", ".", " It", " bonds", " well", " and", " only", " takes", " about", " 15", " minutes", " to", " dry", ".", " Several", " thin", " coats", " will", " work", " better", " than", " one", " thick", " coat", ".", " This", " is", " after", " a", " couple", " coats", " of", " paint", " (", "the", " paint", " shield", " keeps", " the", " inside", " clean", " and", " white", "):", "\n", "\n", "After", " its", " dried", ",", " its", " time", " to", " fit", " it", " onto", " the", " flashlight", ".", " Replace", " the", " painted", " fluorescent", " shield", " with", " the", " sand", "ed", " white", " shield", ".", "\n", "\n", "For", " the", " Cou", "pler", " I", " used", ",", " I", " had", " to", " cut", " a", " small", " (", "2", " cm", ")", " piece", " of", " PVC", " pipe", " to", " fill", " in", " the", " gap", " on", " the", " flashlight", " side", " of", " the", " cou", "pler", ".", " The", " clear", " plastic", " for", " focusing", " the", " flashlight", " falls", " out", " if"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.353, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 71, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" the", " same", " length", " as", " the", " pipe", ".", " Then", " use", " a", " utility", " knife", " to", " cut", " it", " long", "ways", ".", "\n", "\n", "Sand", " the", " inside", " and", " outside", " of", " the", " fluorescent", " shield", " to", " create", " a", " \u00e2\u0122", "\u013e", "sm", "oked", " glass", "\u00e2\u0122", "\u013f", " look", " and", " set", " aside", ".", " This", " shows", " how", " I", " got", " the", " fluorescent", " shield", " to", " stay", " large", " enough", " to", " snug", "ly", " fit", " into", " the", " pipe", ".", " Just", " a", " simple", " slit", " on", " one", " side", " and", " the", " other", " side", " slides", " in", ".", " Also", " you", " can", " see", " how", " the", " once", " clear", " plastic", " looks", " after", " sand", "ing", " it", ":", "\n", "\n", "Remove", " the", " \u00e2\u0122", "\u013e", "c", "rown", "\u00e2\u0122", "\u013f", " off", " of", " the", " bulb", " end", " of", " the", " flashlight", ".", " You", " will", " still", " have", " the", " reflect", "or", " cone", " and", " clear", " focus", "er", " inside", " the", " light"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" the", " same", " length", " as", " the", " pipe", ".", " Then", " use", " a", " utility", " knife", " to", " cut", " it", " long", "ways", ".", "\n", "\n", "Sand", " the", " inside", " and", " outside", " of", " the", " fluorescent", " shield", " to", " create", " a", " \u00e2\u0122", "\u013e", "sm", "oked", " glass", "\u00e2\u0122", "\u013f", " look", " and", " set", " aside", ".", " This", " shows", " how", " I", " got", " the", " fluorescent", " shield", " to", " stay", " large", " enough", " to", " snug", "ly", " fit", " into", " the", " pipe", ".", " Just", " a", " simple", " slit", " on", " one", " side", " and", " the", " other", " side", " slides", " in", ".", " Also", " you", " can", " see", " how", " the", " once", " clear", " plastic", " looks", " after", " sand", "ing", " it", ":", "\n", "\n", "Remove", " the", " \u00e2\u0122", "\u013e", "c", "rown", "\u00e2\u0122", "\u013f", " off", " of", " the", " bulb", " end", " of", " the", " flashlight", ".", " You", " will", " still", " have", " the", " reflect", "or", " cone", " and", " clear", " focus", "er", " inside", " the", " light"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 27, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["We", " take", " elements", " of", " the", " scans", " and", " then", " we", " add", " to", " them", ",\"", " explains", " Yu", ".", " \"", "When", " we", " want", " a", " particular", " shape", ",", " we", " add", " pose", "-", "based", " deform", "ers", ".", " We", " can", " sculpt", " the", " exact", " shape", " we", " want", " all", " over", " the", " body", ":", " on", " the", " knees", ",", " shoulders", ",", " elbows", ",", " the", " waist", ".", " \"", "In", " addition", " to", " those", " pose", "-", "based", " deform", "ers", ",", " we", " add", " wr", "inkle", " maps", " as", " well", ".", " When", " she", " bends", " a", " joint", ",", " we", " actually", " see", " the", " wrinkles", " in", " her", " shirt", " change", ".", " Or", " if", " she", " bends", " her", " arm", " you", "\u00e2\u0122", "\u013b", "ll", " see", " the", " mus", "cul", "ature", " in", " her", " shoulders", " deform", ".\"", " Yu", "\u00e2\u0122", "\u013b", "s", " background", " is", " in", " anatomical", " art", " and", " medical", " illustrations", ".", " Anat", "omical", " models"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 118, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" and", " images", " can", " be", " seen", " around", " the", " desks", " of", " the", " art", " department", " in", " Crystal", " Dynamics", "\u00e2\u0122", "\u013b", " offices", ".", " \"", "We", " could", " never", " get", " this", " level", " of", " anatomical", " correctness", " in", " the", " character", " before", ",\"", " says", " Game", " Director", " Brian", " Horton", ",", " referring", " to", " the", " consoles", " and", " the", " development", " technology", " now", " available", ".", " \"", "The", " systems", " just", " wouldn", "\u00e2\u0122", "\u013b", "t", " allow", " for", " it", ".", " Now", " we", " have", " so", " much", " more", " artist", " control", ".", " \"", "From", " a", " technology", " standpoint", ",", " we", "\u00e2\u0122", "\u013b", "ve", " put", " a", " lot", " of", " time", " and", " energy", " into", " the", " formation", " of", " Lara", "\u00e2\u0122", "\u013b", "s", " character", ".", " Not", " only", " her", " face", ",", " but", " her", " body", ".", " We", "\u00e2\u0122", "\u013b", "ve", " created", " a", " whole", " new", " animation", " system", " that", "\u00e2\u0122", "\u013b", "s", " based", " on", " artist", "-", "sc"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.33, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 27, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["),", " Devin", " T", "oner", " (", "L", "ans", "down", "e", "/", "Le", "in", "ster", "),", " Paul", " O", "\u00e2\u0122", "\u013b", "Connell", " (", "Young", " Mun", "ster", ")", " (", "capt", "),", " Peter", " O", "\u00e2\u0122", "\u013b", "Mah", "ony", " (", "C", "ork", " Constitution", "/", "M", "un", "ster", "),", " Sean", " O", "\u00e2\u0122", "\u013b", "Brien", " (", "U", "CD", "/", "Le", "in", "ster", "),", " Jamie", " He", "as", "lip", " (", "Dub", "lin", " University", "/", "Le", "in", "ster", ").", " Repl", "acements", ":", " Ian", " Mad", "igan", " (", "Black", "rock", " College", "/", "Le", "in", "ster", ")", " for", " Se", "xton", " (", "28", " mins", "),", "\n", "\n", "I", "ain", " Henderson", " (", "B", "ally", "nah", "inch", "/", "Ul", "ster", ")", " for", " O", "\u00e2\u0122", "\u013b", "Connell", " (", "half", "=", "time", "),", " Chris", " Henry", " (", "Mal", "one", "/", "Ul", "ster", ")", " for", " O", "\u00e2\u0122", "\u013b"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 120, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["\n", "\n", "Ireland", ":", "Rob", " Kear", "ney", " (", "U", "CD", "/", "Le", "in", "ster", ");", " Tommy", " Bow", "e", " (", "B", "elf", "ast", " Har", "le", "qu", "ins", "/", "Ul", "ster", "),", " Keith", " Ear", "ls", " (", "Young", " Mun", "ster", "/", "M", "un", "ster", "),", " Robbie", " H", "ens", "haw", " (", "B", "ucc", "aneers", "/", "Conn", "acht", "),", " Dave", " Kear", "ney", " (", "L", "ans", "down", "e", "/", "Le", "in", "ster", ");", " Jonathan", " Se", "xton", " (", "St", ".", " Mary", "\u00e2\u0122", "\u013b", "s", " College", "/", "Le", "in", "ster", "),", " Conor", " Murray", " (", "G", "arry", "ow", "en", "/", "M", "un", "ster", ");", " C", "ian", " He", "aly", " (", "Cl", "ont", "arf", "/", "Le", "in", "ster", "),", " Rory", " Best", " (", "Ban", "bridge", "/", "Ul", "ster", "),", " Mike", " Ross", " (", "Cl", "ont", "arf", "/", "Le", "in", "ster"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.311, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 114, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["),", " Devin", " T", "oner", " (", "L", "ans", "down", "e", "/", "Le", "in", "ster", "),", " Paul", " O", "\u00e2\u0122", "\u013b", "Connell", " (", "Young", " Mun", "ster", ")", " (", "capt", "),", " Peter", " O", "\u00e2\u0122", "\u013b", "Mah", "ony", " (", "C", "ork", " Constitution", "/", "M", "un", "ster", "),", " Sean", " O", "\u00e2\u0122", "\u013b", "Brien", " (", "U", "CD", "/", "Le", "in", "ster", "),", " Jamie", " He", "as", "lip", " (", "Dub", "lin", " University", "/", "Le", "in", "ster", ").", " Repl", "acements", ":", " Ian", " Mad", "igan", " (", "Black", "rock", " College", "/", "Le", "in", "ster", ")", " for", " Se", "xton", " (", "28", " mins", "),", "\n", "\n", "I", "ain", " Henderson", " (", "B", "ally", "nah", "inch", "/", "Ul", "ster", ")", " for", " O", "\u00e2\u0122", "\u013b", "Connell", " (", "half", "=", "time", "),", " Chris", " Henry", " (", "Mal", "one", "/", "Ul", "ster", ")", " for", " O", "\u00e2\u0122", "\u013b"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 101, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" an", "ubis", ".", "\n", "\n", "Second", "ary", " characters", " [", " edit", " ]", "\n", "\n", "Tam", "my", ":", " Tammy", " is", " a", " crazy", " witch", " therapist", " who", " constantly", " tries", " to", " sed", "uce", " Dr", ".", " Ul", "rick", ".", " She", " provides", " therapy", " to", " Pit", "uka", " and", " N", "elly", ".", "\n", "\n", "Dr", ".", "Ul", "rick", ":", " Ul", "rick", " is", " a", " doctor", " that", " works", " in", " P", "aws", " Den", " at", " a", " clinic", ".", " Because", " of", " his", " shy", " and", " cute", " personality", ",", " many", " of", " the", " females", " find", " him", " very", " attractive", ".", "\n", "\n", "Notes", " [", " edit", " ]", "\n", "\n", "\"", "Fill", "ers", "\"", " are", " used", " whenever", " a", " comic", " isn", "'t", " av", "a", "ible", "\n", "\n", "Up", "dates", " are", " sometimes", " streamed", "<|endoftext|>", "Four", " reasons", " the", " updated", " Uber", " Dubai", " app", " makes", " us", " sad", " By", " Mike", " Priest", "\n", "\n"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 47, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" Miami", " but", " my", " mind", " is", " in", " Haiti", ",\"", " Fletcher", " T", "ous", "s", "aint", ",", " a", " young", " immigrant", ",", " tells", " the", " BBC", ".", "\n", "\n", "13", "10", " Two", " days", " after", " the", " disaster", " struck", ",", " people", " speak", " of", " still", " hearing", " voices", " crying", " from", " the", " rubble", ".", " Two", " days", " after", " the", " disaster", " struck", ",", " people", " speak", " of", " still", " hearing", " voices", " crying", " from", " the", " rubble", ".", "\n", "\n", "130", "9", " Google", " and", " Ge", "oe", "ye", " have", " put", " together", " some", " Google", " and", " Ge", "oe", "ye", " have", " put", " together", " some", " new", " satellite", " images", " of", " Haiti", ",", " taken", " after", " the", " quake", " and", " showing", " the", " extent", " of", " the", " destruction", ".", "\n", "\n", "130", "3", " The", " foreign", " minister", " of", " Indonesia", " -", " a", " country", " which", " has", " suffered", " natural", " disasters", " in", " the", " past", " -", " expressed", " condolences", " to", " Haiti"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.314, 0.0, 0.0], "qualifying_token_index": 124, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["\n", "\n", "Ireland", ":", "Rob", " Kear", "ney", " (", "U", "CD", "/", "Le", "in", "ster", ");", " Tommy", " Bow", "e", " (", "B", "elf", "ast", " Har", "le", "qu", "ins", "/", "Ul", "ster", "),", " Keith", " Ear", "ls", " (", "Young", " Mun", "ster", "/", "M", "un", "ster", "),", " Robbie", " H", "ens", "haw", " (", "B", "ucc", "aneers", "/", "Conn", "acht", "),", " Dave", " Kear", "ney", " (", "L", "ans", "down", "e", "/", "Le", "in", "ster", ");", " Jonathan", " Se", "xton", " (", "St", ".", " Mary", "\u00e2\u0122", "\u013b", "s", " College", "/", "Le", "in", "ster", "),", " Conor", " Murray", " (", "G", "arry", "ow", "en", "/", "M", "un", "ster", ");", " C", "ian", " He", "aly", " (", "Cl", "ont", "arf", "/", "Le", "in", "ster", "),", " Rory", " Best", " (", "Ban", "bridge", "/", "Ul", "ster", "),", " Mike", " Ross", " (", "Cl", "ont", "arf", "/", "Le", "in", "ster"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.243, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.311, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 27, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" us", " being", " \u00e2\u0122", "\u013e", "tra", "ps", "\u00e2\u0122", "\u013f", " are", " a", " bit", " too", " numerous", " to", " name", " them", " all", ".", " A", " few", " that", " come", " to", " mind", " are", " the", " basic", " assumption", " that", " we", "\u00e2\u0122", "\u013b", "re", " \u00e2\u0122", "\u013e", "really", "\u00e2\u0122", "\u013f", " men", ",", " believing", " that", " our", " decisions", " all", " rev", "olve", " around", " you", " and", "we", "\u00e2\u0122", "\u013b", "re", " doing", " this", " for", " your", " sake", ",", " not", " our", " own", " (", "kind", " of", " like", " the", " earlier", " example", " about", " how", " men", " may", " interpret", " how", " a", " woman", " dresses", "),", " the", " issues", " of", " conf", "l", "ating", " gender", " expression", " with", " sexual", " motivations", ",", " the", " concept", " that", " fem", "al", "eness", " and", " femin", "inity", " are", " art", "ifice", " and", " fake", ",", " etc", ".", "\n", "\n", "But", " I", " guess", " the", " one", " that", " I", "\u00e2\u0122", "\u013b", "d", " most", " like", " to", " un", "pack", " is"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 95, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [".", " \"", "As", " a", " country", " that", " has", " been", " itself", " devastated", " by", " a", " similar", " situation", ",", " we", " are", " absolutely", " saddened", " by", " what", "'s", " happening", " in", " Haiti", ",\"", " said", " Marty", " Nat", "ale", "g", "awa", ".", " The", " foreign", " minister", " of", " Indonesia", " -", " a", " country", " which", " has", " suffered", " natural", " disasters", " in", " the", " past", " -", " expressed", " condolences", " to", " Haiti", ".", " \"", "As", " a", " country", " that", " has", " been", " itself", " devastated", " by", " a", " similar", " situation", ",", " we", " are", " absolutely", " saddened", " by", " what", "'s", " happening", " in", " Haiti", ",\"", " said", " Marty", " Nat", "ale", "g", "awa", ".", "\n", "\n", "12", "57", " Haitian", " DJ", " Care", "l", " Ped", "re", " tells", " BBC", "'s", " Haitian", " DJ", " Care", "l", " Ped", "re", " tells", " BBC", "'s", " New", "sh", "our", " he", " has", " seen", " a", " lot", " of", " dead", " bodies", " and", " collapsed", " buildings", ".", " \"", "I", "'ve"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 51, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" Pac", "-", "12", " Rec", "ru", "iter", " of", " the", " Year", ".", " Rivals", ".", "com", " tab", "bed", " Bloom", "gren", " as", " one", " of", " the", " nation", "'s", " top", "-", "25", " recruit", "ers", " in", " 2016", ".", " Football", "S", "co", "op", ".", "com", " named", " Bloom", "gren", " its", " 2013", " Offensive", " Line", " Coach", " of", " the", " Year", " following", " two", " years", " of", " eye", "-", "opening", " accomplishments", ".", "\n", "\n", "Bloom", "gren", " joined", " the", " Cardinal", " staff", " as", " offensive", " line", " coach", " and", " run", " game", " coordinator", " in", " 2011", " after", " spending", " four", " seasons", " with", " the", " New", " York", " Jets", ",", " where", " he", " served", " as", " assistant", " offensive", " coordinator", " (", "2010", "),", " offensive", " assistant", " (", "2009", ")", " and", " offensive", " quality", " control", " coach", " (", "2007", "-", "08", ").", "\n", "\n", "In", " 2013", ",", " all", " five", " offensive", " linemen", " received", " All", "-", "Pac", "-", "12", " honors", ","], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 118, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["ett", ",", " Stanford", "'s", " unanimous", " first", " team", " All", "-", "America", " --", " and", " only", " the", " ninth", " in", " school", " history", ".", " Garn", "ett", " was", " the", " program", "'s", " first", " Out", "land", " Trophy", " winner", " as", " the", " nation", "'s", " top", " interior", " lineman", ",", " and", " won", " the", " Morris", " Trophy", ",", " presented", " to", " the", " Pac", "-", "12", " Lin", "eman", " of", " the", " Year", ".", "\n", "\n", "Bloom", "gren", "'s", " linemen", " were", " named", " a", " final", "ist", " for", " the", " inaugural", " Joe", " Moore", " Award", " in", " 2015", ",", " given", " to", " the", " nation", "'s", " top", " offensive", " line", ".", "\n", "\n", "While", " facing", " six", " nationally", " ranked", " opponents", " in", " 2014", ",", " including", " four", " on", " the", " road", ",", " Bloom", "gren", " helped", " Stanford", " win", " eight", " games", ".", " The", " Cardinal", " scored", " at", " least", " 30", " points", " in", " seven", " of", " 13", " games", " on", " the", " season", " and", " increased"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.165, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 61, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" including", " first", "-", "team", " selection", " Yan", "key", ".", " Yan", "key", " was", " named", " Stanford", "'s", " first", " two", "-", "time", " first", "-", "team", " All", "-", "American", " selection", " since", " Bob", " Whit", "field", " (", "1990", "-", "91", ").", " One", " of", " four", " senior", " starters", " on", " the", " offensive", " line", " in", " 2013", ",", " Yan", "key", " was", " also", " selected", " as", " a", " semif", "inal", "ist", " for", " the", " Out", "land", " Trophy", " and", " Lomb", "ardi", " Award", ".", "\n", "\n", "Four", " of", " Bloom", "gren", "'s", " five", " starting", " offensive", " linemen", " earned", " All", "-", "Pac", "-", "12", " honors", " in", " 2012", ",", " including", " first", "-", "te", "amer", " Yan", "key", ".", "\n", "\n", "Yan", "key", " was", " the", " winner", " of", " the", " league", "'s", " 2012", " Morris", " Trophy", ".", " The", " consensus", " All", "-", "American", " was", " Stanford", "'s", " first", " winner", " of", " the", " award", " since", " 2002", ".", "\n"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 76, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" Smith", " at", " quarterback", " than", " with", " F", "oles", " or", " Vick", ".", "\n", "\n", "From", " Video", "\n", "\n", "Against", " the", " Bears", ",", " the", " Eagles", " used", " a", " tackle", "-", "over", " set", " with", " right", " tackle", " Lane", " Johnson", " positioned", " between", " left", " tackle", " Jason", " Peters", " and", " left", " guard", " Evan", " Math", "is", ".", " There", " was", " no", " motion", " man", ",", " so", " this", " was", " still", " not", " the", " Wild", "cat", ".", "\n", "\n", "From", " Video", "\n", "\n", "This", " was", " a", " classic", " power", " play", ".", " The", " linemen", " on", " the", " play", "-", "side", " were", " down", "-", "blocking", ".", " Running", " back", " Chris", " Polk", " was", " the", " lead", " blocker", " and", " did", " a", " nice", " job", " blocking", " the", " defensive", " tackle", ".", " Right", " guard", " Todd", " Her", "rem", "ans", " pulled", " to", " the", " left", " and", " entered", " the", " cre", "ase", " to", " block", " the", " plays", "ide", " linebacker", ".", "\n"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.281, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 75, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["Some", " in", " the", " audience", " are", " wearing", " surgical", " masks", ".", " There", " is", " a", " shirt", "less", " man", " pacing", " rings", "ide", ",", " presumably", " invested", " in", " the", " match", "'s", " outcome", ",", " though", " his", " presence", " is", " not", " remarked", " upon", ".", " He", "'s", " wearing", " a", " gigantic", " head", "piece", " reminiscent", " of", " Saur", "on", "'s", " battle", " helmet", ".", " It", " looks", " like", " a", " haunted", " castle", " is", " growing", " out", " of", " his", " shoulders", ".", "\n", "\n", "The", " outlook", " is", " grim", " for", " h", "agg", "ard", " old", " Vampire", " Chicken", ".", " He", " is", " facing", " a", " pretty", " boy", " hero", " wrestler", " with", " Masters", " of", " the", " Universe", " mus", "cul", "ature", ",", " blonde", "-", "stre", "aked", " boy", "-", "band", " hair", ",", " and", " a", " surg", "ically", " ideal", "ized", " face", ".", " Above", " a", " lantern", " jaw", ",", " the", " hero", "'s", " cheeks", " are", " round", " as", " a", " C", "abbage", " Patch"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.281, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 105, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" also", " presents", " issues", " when", " pass", "-", "blocking", " and", " running", " between", " the", " tackles", ".", " However", ",", " Williams", "\u00e2\u0122", "\u013b", " athleticism", " and", " ability", " to", " break", " off", " the", " big", " run", " makes", " him", " deserving", " of", " a", " chance", " to", " make", " the", " roster", " in", " Cincinnati", ".", "\n", "\n", "The", " Bengals", " selection", " of", " Joe", " M", "ixon", " was", " a", " big", " addition", ",", " but", " there", "\u00e2\u0122", "\u013b", "s", " still", " uncertainty", " in", " regards", " to", " when", " Giovanni", " Bernard", " will", " return", " from", " his", " ACL", " injury", ".", " On", " top", " of", " that", ",", " Jeremy", " Hill", "\u00e2\u0122", "\u013b", "s", " production", " has", " dropped", " off", " since", " his", " rookie", " season", ".", " Therefore", ",", " there", " is", " a", " legitimate", " opportunity", " for", " Williams", " sneak", " his", " way", " into", " a", " roster", " spot", ".", " If", " Williams", " can", " prove", " to", " be", " durable", ",", " he", " has", " the", " ability", " to", " be", " a", " productive", " change"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.281, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 71, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": ["ar", " ad", "em", "\u00c3\u00a1s", " que", " la", " demand", "a", " era", " de", " b", "aja", " cal", "idad", ".", " Por", " es", "o", " un", " camp", "es", "ino", " tur", "co", " que", " se", " pas", "aba", " el", " d", "\u00c3\u0143a", " fr", "at", "ach", "ando", " un", "a", " c", "ated", "ral", " por", " 60", " euros", " y", " dorm", "\u00c3\u0143a", " en", " un", " cont", "ened", "or", " pod", "\u00c3\u0143a", " viol", "arse", " a", " un", "a", " p", "ob", "re", " m", "uj", "er", " dro", "g", "ada", " y", " a", " ve", "ces", " at", "ada", " sin", " much", "as", " v", "u", "elt", "as", " al", " as", "un", "to", ".", "A", " la", " par", " del", " problem", "a", " surg", "ier", "on", " -", "cu", "\u00c3\u00a1", "nd", "o", " no", "-", " est", "ud", "ios", "os", " del", " f", "en", "\u00c3\u00b3", "men", "o", " que", " fu", "er", "on", " finan", "ci", "ados", " para", " tranquil", "iz", "ar", " las", " cul", "pos", "as", " al"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.275, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 91, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 0.8, "bin_contains": -1, "tokens": [" outline", " a", " variety", " of", " \u00e2\u0122", "\u013e", "un", "law", "ful", " acts", "\u00e2\u0122", "\u013f", " that", " could", " result", " in", " a", " citation", " or", " revoked", " license", ".", " The", " ordinance", " is", " aimed", " at", " making", " it", " harder", " for", " prostitution", " rings", " and", " other", " illegal", " outfits", " to", " thrive", " under", " the", " guise", " of", " the", " massage", " business", ".", "<|endoftext|>", "Get", " the", " biggest", " daily", " stories", " by", " email", " Subscribe", " Thank", " you", " for", " subscribing", " See", " our", " privacy", " notice", " Could", " not", " subscribe", ",", " try", " again", " later", " Invalid", " Email", "\n", "\n", "P", "up", "ils", " are", " still", " taught", " in", " Shakespeare", "\u00e2\u0122", "\u013b", "s", " historic", " 5", "87", "-", "year", "-", "old", " half", "-", "tim", "bered", " former", " classroom", " today", ".", "\n", "\n", "But", " if", " a", " \u00c2\u00a3", "1", "million", " Heritage", " Lot", "tery", " Fund", " bid", " is", " successful", ",", " one", " of", " the", " finest", " surviving", " old", " school", "rooms", " in", " Britain"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.27, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 120, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.64, "bin_max": 0.8, "bin_contains": 0.0, "tokens": ["\u2014", "t", "otally", ",", " completely", " flat", "?", "\n", "\n", "R", "is", "hel", " is", " very", " familiar", " with", " the", " Kansas", " flat", "ness", " question", ".", " He", " was", " a", " student", " of", " Mark", " F", "on", "stad", ",", " a", " Texas", " State", " ge", "ographer", " who", ",", " in", " 2003", ",", " set", " out", " with", " some", " colleagues", " and", " a", " laser", " microscope", " to", " determine", " which", " was", " fl", "atter", ":", " Kansas", " or", " an", " I", "H", "OP", " panc", "ake", ".", " The", " resulting", " study", ",", " titled", " \u00e2\u0122", "\u013e", "Kansas", " Is", " Fl", "atter", " Than", " a", " Panc", "ake", ",", "\u00e2\u0122", "\u013f", " likely", " added", " to", " the", " public", " misconceptions", " that", " rank", "le", " Dob", "son", " and", " Campbell", ".", " (", "They", " also", " point", " out", " that", ",", " if", " you", " use", " the", " particular", " mathematical", " approach", " of", " F", "on", "stad", " et", " al", ",", " \u00e2\u0122", "\u013e", "there", " is", " no", " place", " on"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.793, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.64, "bin_max": 0.8, "bin_contains": 0.0, "tokens": [" likely", " dict", "ating", " under", " the", " gun", ".", "\n", "\n", "And", ",", " lo", " and", " behold", ",", " on", " the", " list", " of", " ad", "her", "ing", " parties", ",", " A", "IG", " takes", " front", " and", " center", " stage", " (", "together", " with", " several", " other", " parties", " that", " probably", " deserve", " the", " microscope", " treatment", ").", "\n", "\n", "So", " -", " in", " simple", " terms", ",", " IS", "DA", ",", " which", " is", " the", " only", " effective", " supervisor", " of", " the", " Over", " The", " Counter", " C", "DS", " market", ",", " is", " giving", " its", " blessing", " for", " trades", " to", " occur", " (", "cross", ")", " below", " where", " there", " is", " a", " realistic", " market", " bid", ",", " or", " higher", " than", " the", " offer", ".", " In", " traditional", " equity", " markets", " this", " is", " a", " highly", " illegal", " practice", ".", " IS", "DA", " is", " allowing", " retrospective", " arbitrary", " trades", " to", " have", " occurred", " at", " whatever", " price", " any", " two", " parties", " agree", " on", ",", " so"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.797, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 41, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.64, "bin_max": 0.8, "bin_contains": 0.0, "tokens": [" would", " nonetheless", " suggest", " for", " complexity", " relevant", " to", " those", " types", ",", " the", " general", " case", " being", " made", " against", " conservatives", " in", " those", " areas", " needs", " revision", ".", " This", " would", " present", " to", " us", " a", " more", " nuanced", " and", " accurate", " picture", " of", " the", " relationship", " between", " ideology", " and", " complexity", " and", " suggest", " at", " the", " least", " that", " the", " current", " picture", " must", " be", " qualified", " by", " the", " type", " of", " complexity", " measurement", " under", " the", " microscope", ".", " The", " potential", " pitfalls", " of", " self", "\u00e2\u0122\u0132", "report", " measurement", " Further", ",", " for", " the", " purposes", " of", " determining", " the", " average", " complexity", " of", " a", " group", " of", " persons", ",", " the", " kinds", " of", " self", "\u00e2\u0122\u0132", "report", " measurements", " comprising", " the", " bulk", " of", " prior", " meta", "\u00e2\u0122\u0132", "an", "alyses", " have", " some", " additional", " potential", " pitfalls", " in", " interpretation", ".", " A", " self", "\u00e2\u0122\u0132", "report", " measurement", " is", " at", " best", " an", " indirect", " marker", " of", " a", " potential", " complexity", "\u00e2\u0122\u0132"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.8, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 61, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.48, "bin_max": 0.64, "bin_contains": 1e-05, "tokens": ["\u013e", "V", "irt", "ually", " every", " time", " Harvey", " was", " hired", " for", " a", " television", " show", ",", " [", "Co", "oper", "]", " would", " contact", " the", " owners", " or", " principals", " to", " inform", " them", " of", " potentially", " embarrassing", " material", " and", "/", "or", " tapes", " and", " attempt", " to", " have", " them", " influence", " Harvey", " to", " pay", " for", " the", " tapes", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Interestingly", ",", " court", " documents", " appear", " to", " show", " that", " Harvey", " admits", " to", " the", " r", "ants", ",", " saying", " that", " at", " times", " he", " was", " ed", "g", "ier", " than", " others", ".", " \u00e2\u0122", "\u013e", "I", " didn", "\u00e2\u0122", "\u013b", "t", " have", " to", " concern", " myself", " with", " branding", " or", " imaging", " or", " anything", ".", " You", " could", " just", " say", " \u2014", " I", " thought", " I", " was", " funn", "ier", ",", "\u00e2\u0122", "\u013f", " Harvey", " said", ".", "\n", "\n", "Co", "oper", " alleges", " that", " on", " one", " tape", ",", " Harvey", " says", " it"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.494, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 93, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.48, "bin_max": 0.64, "bin_contains": 1e-05, "tokens": ["%", " of", " their", " genome", " inherited", " from", " European", " ancestors", ".[", "173", "]", " If", " racial", " IQ", " gaps", " have", " a", " partially", " genetic", " basis", ",", " one", " might", " expect", " blacks", " with", " a", " higher", " degree", " of", " European", " ancestry", " to", " score", " higher", " on", " IQ", " tests", " than", " blacks", " with", " less", " European", " ancestry", ",", " because", " the", " genes", " inherited", " from", " European", " ancestors", " would", " likely", " include", " some", " genes", " with", " a", " positive", " effect", " on", " IQ", ".", " Genetic", "ist", " Alan", " Temple", "ton", " has", " argued", " that", " an", " experiment", " based", " on", " the", " Mend", "el", "ian", " \"", "common", " garden", "\"", " design", " where", " specimens", " with", " different", " hybrid", " compositions", " are", " subjected", " to", " the", " same", " environmental", " influences", ",", " would", " be", " the", " only", " way", " to", " definitively", " show", " a", " causal", " relation", " between", " genes", " and", " IQ", ".", " Sum", "mar", "izing", " the", " findings", " of", " adm", "ixture", " studies", ",", " he", " concludes"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.51, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 86, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.48, "bin_max": 0.64, "bin_contains": 1e-05, "tokens": [" guidance", " and", " navigation", " systems", ".", " (", "Dr", ".", " Kh", "alf", "in", "\u00e2\u0122", "\u013b", "s", " bio", " is", " below", " the", " video", ".)", "\n", "\n", "I", "gor", " Kh", "alf", "in", ",", " PhD", "\n", "\n", "Dr", ".", " Kh", "alf", "in", " has", " over", " 30", " years", " of", " experience", " in", " the", " aerospace", "/", "defense", " industries", " and", " academia", ",", " holds", " 5", " patents", " in", " electromagnetic", " tracking", " and", " has", " published", " over", " 40", " scientific", " papers", " on", " related", " topics", ".", " His", " expertise", " includes", " opt", "oe", "lect", "ronics", ",", " electrom", "ag", "net", "ics", ",", " imaging", " systems", " and", " sensors", ",", " remote", " sensing", ",", " applied", " physics", ",", " signal", " processing", ",", " and", " non", "linear", " systems", ".", " Dr", ".", " Kh", "alf", "in", " is", " currently", " employed", " with", " Lockheed", " Martin", " Space", " Systems", " Company", ",", " where", " he", " leads", " the", " projects", " on", " spacecraft", " control", " systems", ".", " His", " prior"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 81, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.48, "bin_max": 0.64, "bin_contains": 1e-05, "tokens": ["Man", "l", "ius", "\n", "\n", "Editor", "ial", " failed", " to", " address", " privacy", " and", " civil", " liberties", " issues", "\n", "\n", "To", " the", " Editor", ":", "\n", "\n", "It", " is", " readily", " understandable", " that", " news", " corporations", " would", " want", " to", " use", " drones", " to", " record", " and", " report", " news", ".", " The", " imaging", " capabilities", " of", " drones", " are", " mighty", " impressive", ".", "\n", "\n", "Yes", ",", " drones", " might", " \"", "enh", "ance", " the", " public", "'s", " understanding", " of", " events", ".\"", " And", ",", " true", ",", " drones", " may", " well", " have", " been", " \"", "used", " to", " capture", " footage", " of", " massive", " demonstrations", " in", " Ukraine", ".\"", " (", "Indeed", ",", " drones", " are", " ideal", " for", " identifying", " and", " monitoring", " demonstrators", ".)", "\n", "\n", "However", ",", " your", " May", " 11", " editorial", ",", " \"", "Journal", "ists", " have", " right", " to", " use", " drones", ",", " too", ",\"", " under", " analyzed", " the", " issue", ".", " Sure", ",", " news", " corporations"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.498, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 42, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.32, "bin_max": 0.48, "bin_contains": 1e-05, "tokens": [" darker", " aspect", " of", " this", " kind", " of", " cultural", " pathology", ",", " just", " as", " there", " are", " serious", " analyses", " pointing", " to", " the", " socially", " toxic", " effects", " of", " the", " JFK", " assassination", " \u00e2\u0122", "\u013e", "altern", "ate", " theories", "\u00e2\u0122", "\u013f", ".", " For", " space", "flight", ",", " being", " distracted", " by", " the", " wrong", " cause", " means", " being", " tempted", " by", " the", " wrong", " fix", ".", " That", "\u00e2\u0122", "\u013b", "s", " never", " amusing", ",", " and", " often", " can", " be", " expensive", ".", " For", " space", "flight", ",", " being", " distracted", " by", " the", " wrong", " cause", " means", " being", " tempted", " by", " the", " wrong", " fix", ".", " That", "\u00e2\u0122", "\u013b", "s", " never", " amusing", ",", " and", " often", " can", " be", " expensive", ".", " As", " an", " egregious", " \u00e2\u0122", "\u013e", "bad", " example", "\u00e2\u0122", "\u013f", " of", " wrong", " causes", ",", " a", " recent", " book", " (", "Dark", " Mission", ",", " by", " Richard", " Ho", "ag", "land", " and", " Michael", " Bar", "a", ")", " spent", " a"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.368, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 7, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.32, "bin_max": 0.48, "bin_contains": 1e-05, "tokens": ["),", " Devin", " T", "oner", " (", "L", "ans", "down", "e", "/", "Le", "in", "ster", "),", " Paul", " O", "\u00e2\u0122", "\u013b", "Connell", " (", "Young", " Mun", "ster", ")", " (", "capt", "),", " Peter", " O", "\u00e2\u0122", "\u013b", "Mah", "ony", " (", "C", "ork", " Constitution", "/", "M", "un", "ster", "),", " Sean", " O", "\u00e2\u0122", "\u013b", "Brien", " (", "U", "CD", "/", "Le", "in", "ster", "),", " Jamie", " He", "as", "lip", " (", "Dub", "lin", " University", "/", "Le", "in", "ster", ").", " Repl", "acements", ":", " Ian", " Mad", "igan", " (", "Black", "rock", " College", "/", "Le", "in", "ster", ")", " for", " Se", "xton", " (", "28", " mins", "),", "\n", "\n", "I", "ain", " Henderson", " (", "B", "ally", "nah", "inch", "/", "Ul", "ster", ")", " for", " O", "\u00e2\u0122", "\u013b", "Connell", " (", "half", "=", "time", "),", " Chris", " Henry", " (", "Mal", "one", "/", "Ul", "ster", ")", " for", " O", "\u00e2\u0122", "\u013b"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.32, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 120, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.32, "bin_max": 0.48, "bin_contains": 1e-05, "tokens": [" shield", " (~", "$", "2", ".", " This", " slides", " over", " a", " fluorescent", " bulb", " to", " prevent", " it", " from", " shattering", ")", " Small", " piece", " of", " aluminum", " foil", ".", " (", "Had", " it", " in", " the", " house", ",", " because", " we", "\u00e2\u0122", "\u013b", "re", " civilized", ")", "\n", "\n", "The", " Steps", "\n", "\n", "I", " redesigned", " the", " PVC", " pipe", " and", " made", " it", " about", " 5", "\u00e2\u0122\u00b3", " shorter", ".", " It", " was", " too", " long", " and", " unw", "ield", "y", ".", " I", " took", " a", " little", " more", " care", " in", " marking", " off", " the", " space", " to", " cut", " out", ".", " The", " blue", " tape", " worked", " perfect", " to", " keep", " a", " straight", " line", ".", "\n", "\n", "Cut", " the", " opening", " in", " the", " PVC", " pipe", ".", " This", " can", " be", " whatever", " width", " you", " want", ".", " Mine", " is", " a", " little", " less", " than", " halfway", " through", ".", "\n", "\n", "Cut", " the", " fl", "ou", "rescent", " shield", " to"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 9, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.32, "bin_max": 0.48, "bin_contains": 1e-05, "tokens": [" the", " same", " length", " as", " the", " pipe", ".", " Then", " use", " a", " utility", " knife", " to", " cut", " it", " long", "ways", ".", "\n", "\n", "Sand", " the", " inside", " and", " outside", " of", " the", " fluorescent", " shield", " to", " create", " a", " \u00e2\u0122", "\u013e", "sm", "oked", " glass", "\u00e2\u0122", "\u013f", " look", " and", " set", " aside", ".", " This", " shows", " how", " I", " got", " the", " fluorescent", " shield", " to", " stay", " large", " enough", " to", " snug", "ly", " fit", " into", " the", " pipe", ".", " Just", " a", " simple", " slit", " on", " one", " side", " and", " the", " other", " side", " slides", " in", ".", " Also", " you", " can", " see", " how", " the", " once", " clear", " plastic", " looks", " after", " sand", "ing", " it", ":", "\n", "\n", "Remove", " the", " \u00e2\u0122", "\u013e", "c", "rown", "\u00e2\u0122", "\u013f", " off", " of", " the", " bulb", " end", " of", " the", " flashlight", ".", " You", " will", " still", " have", " the", " reflect", "or", " cone", " and", " clear", " focus", "er", " inside", " the", " light"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.346, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.32, "bin_max": 0.48, "bin_contains": 1e-05, "tokens": ["We", " take", " elements", " of", " the", " scans", " and", " then", " we", " add", " to", " them", ",\"", " explains", " Yu", ".", " \"", "When", " we", " want", " a", " particular", " shape", ",", " we", " add", " pose", "-", "based", " deform", "ers", ".", " We", " can", " sculpt", " the", " exact", " shape", " we", " want", " all", " over", " the", " body", ":", " on", " the", " knees", ",", " shoulders", ",", " elbows", ",", " the", " waist", ".", " \"", "In", " addition", " to", " those", " pose", "-", "based", " deform", "ers", ",", " we", " add", " wr", "inkle", " maps", " as", " well", ".", " When", " she", " bends", " a", " joint", ",", " we", " actually", " see", " the", " wrinkles", " in", " her", " shirt", " change", ".", " Or", " if", " she", " bends", " her", " arm", " you", "\u00e2\u0122", "\u013b", "ll", " see", " the", " mus", "cul", "ature", " in", " her", " shoulders", " deform", ".\"", " Yu", "\u00e2\u0122", "\u013b", "s", " background", " is", " in", " anatomical", " art", " and", " medical", " illustrations", ".", " Anat", "omical", " models"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.34, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 118, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.16, "bin_max": 0.32, "bin_contains": 8e-05, "tokens": ["\u00c3\u00a1", "-", "Vis", " Society", ",", " which", " applies", " scientific", " rig", "or", " to", " crowd", "-", "s", "ourced", " poems", ",", " often", " employing", " large", " crowds", " at", " parties", " to", " write", ",", " Mad", " Lib", "s", "-", "style", ",", " a", " series", " of", " poems", " about", " love", " and", " longing", ".", " No", " other", " poets", " in", " town", ",", " likely", ",", " have", " dissect", "ed", " a", " poem", " into", " pie", " charts", " on", " a", " white", "board", " while", " wearing", " a", " lab", " coat", ".", "\n", "\n", "On", " her", " own", ",", " Nelson", " loves", " to", " tease", " out", " the", " poetry", " in", " science", ",", " finding", " resonance", " in", " the", " long", " and", " mysterious", " Latin", " words", " and", " phrases", " we", "\u00e2\u0122", "\u013b", "ve", " used", " to", " name", " the", " world", ".", " One", " of", " my", " favorites", " of", " her", " poems", " is", " \u00e2\u0122", "\u013e", "The", " First", " Photograph", ",", "\u00e2\u0122", "\u013f", " which", " explains", " the", " process", " that", " created", " a"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.16, "bin_max": 0.32, "bin_contains": 8e-05, "tokens": [" Miami", " but", " my", " mind", " is", " in", " Haiti", ",\"", " Fletcher", " T", "ous", "s", "aint", ",", " a", " young", " immigrant", ",", " tells", " the", " BBC", ".", "\n", "\n", "13", "10", " Two", " days", " after", " the", " disaster", " struck", ",", " people", " speak", " of", " still", " hearing", " voices", " crying", " from", " the", " rubble", ".", " Two", " days", " after", " the", " disaster", " struck", ",", " people", " speak", " of", " still", " hearing", " voices", " crying", " from", " the", " rubble", ".", "\n", "\n", "130", "9", " Google", " and", " Ge", "oe", "ye", " have", " put", " together", " some", " Google", " and", " Ge", "oe", "ye", " have", " put", " together", " some", " new", " satellite", " images", " of", " Haiti", ",", " taken", " after", " the", " quake", " and", " showing", " the", " extent", " of", " the", " destruction", ".", "\n", "\n", "130", "3", " The", " foreign", " minister", " of", " Indonesia", " -", " a", " country", " which", " has", " suffered", " natural", " disasters", " in", " the", " past", " -", " expressed", " condolences", " to", " Haiti"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.314, 0.0, 0.0], "qualifying_token_index": 124, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.16, "bin_max": 0.32, "bin_contains": 8e-05, "tokens": [" overfl", "ows", " that", " an", " auxiliary", " dynamic", " alloc", "ator", " is", " used", ".", " The", " overflow", " allocation", " feature", " is", " best", " used", " for", " pathological", " cases", " or", " during", " development", " when", " the", " container", "'s", " fixed", " size", " is", " being", " tuned", ".", " All", " fixed", " containers", " have", " high", "-", "water", " mark", " tracking", " to", " assist", " in", " size", " tuning", ".", " The", " following", " is", " the", " template", " declaration", " for", " fixed", "_", "vector", ":", " template", " <", "ty", "pen", "ame", " T", ",", " size", "_", "t", " node", "Count", ",", " bool", " enable", "Over", "flow", " =", " true", ",", " typ", "ename", " All", "oc", "ator", " overflow", "All", "oc", "ator", " =", " E", "AST", "L", "All", "oc", "ator", ">", " class", " fixed", "_", "vector", " {", " ...", " };", " fixed", "_", "sub", "string", "\n", "\n", "This", " is", " a", " string", " which", " is", " a", " view", " on", " an", " arbitrary", " span", " of", " characters", ".", " Thus", " if"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.251, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 19, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.16, "bin_max": 0.32, "bin_contains": 8e-05, "tokens": ["un", "ament", "e", " of", "rec", "idas", " por", "P", "or", " t", "anto", ",", " si", " qu", "ie", "ren", " put", "ear", ",", " p", "ute", "en", " al", " fiscal", " de", " Ju", "icio", " y", " a", " la", " Pro", "cur", "aci", "\u00c3\u00b3n", " (", "que", " son", " el", " ver", "dad", "ero", " b", "raz", "o", " del", " P", "oder", " Pol", "\u00c3\u0143", "t", "ico", ")", " y", " no", " a", " los", " j", "ue", "ces", " a", " los", " que", " les", " l", "le", "gan", " las", " pr", "ue", "bas", " coc", "in", "adas", " y", " deb", "en", " dec", "id", "ir", " so", "bre", " su", " ver", "ac", "idad", ".", " Principal", "ment", "e", " en", " un", " cas", "o", " en", " que", ",", " com", "o", " se", " di", "jo", " no", " se", " p", "udo", " comp", "oner", " la", " pr", "ue", "ba", " con", " document", "ales", ",", " ni", " n", "ada", ".", " S", "\u00c3\u00b3", "lo", " testim", "onial", "es", "..", " La"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.212, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 62, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.16, "bin_max": 0.32, "bin_contains": 8e-05, "tokens": [" of", " the", " tooth", ".", "\n", "\n", "Mr", " Per", "ren", "oud", " said", " he", " is", " \"", "pretty", " confident", "\"", " that", " his", " team", " will", " find", " more", " human", " fossils", " from", " this", " period", " on", " the", " site", ".", " \"", "Our", " daily", " life", " is", " to", " determine", " what", " human", " activities", " looked", " like", " 560", ",", "000", " years", " ago", ",\"", " he", " said", ".", "\n", "\n", "Professor", " Chris", " String", "er", ",", " merit", " researcher", " in", " human", " origins", " at", " the", " Natural", " History", " Museum", " of", " London", ",", " wrote", " in", " an", " email", " to", " the", " AP", " that", " \"", "well", "-", "dated", " teeth", " of", " this", " age", " are", " very", " important", " as", " they", " probably", " belonged", " to", " the", " species", " Homo", " he", "idel", "berg", "ensis", ",", " which", " is", " already", " known", " from", " Ar", "ago", " (", "in", " T", "aut", "a", "vel", ")", " in", " France", ",", " M", "auer", " in", " Germany", " and"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 24, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.16, "bin_contains": 0.9998999999999999, "tokens": ["\u013e", "Robert", " de", " Cour", "cy", " L", "aff", "an", " was", " a", " great", " friend", " of", " the", " Flower", " family", " who", " helped", " to", " restore", " the", " school", " building", " in", " the", " 1890", "s", ".", " He", " was", " a", " great", " education", " reform", "er", ".", " He", ",", " head", " boy", " Ralph", " Gar", "lic", " and", " a", " representative", " from", " Shakespeare", "\u00e2\u0122", "\u013b", "s", " Birth", "place", " decided", " they", " would", " walk", " from", " the", " school", " to", " Holy", " Trinity", " Church", " and", "\n", "\n", "lay", " flowers", " on", " the", " grave", ".", " The", " following", " year", " was", " the", " beginning", " of", " what", " has", " become", " the", " annual", " procession", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "There", " had", " been", " a", " small", " parade", " by", " coun", "sell", "ors", " in", " 18", "10", ",", " but", " the", " school", " initiated", " the", " procession", ".", " It", " was", " reported", " in", " the", " Times", " of", " London", ",", " newspapers", " in", " Strat", "ford", ",", " Le"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 58, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.16, "bin_contains": 0.9998999999999999, "tokens": ["7", ".", "38", "\n", "\n", "8", ".", "84", "\n", "\n", "1", ".", "06", "\n", "\n", "0", ".", "88", "\n", "\n", "1", ".", "00", "\n", "\n", "1", ".", "01", "\n", "\n", "1", ".", "10", "\n", "\n", "0", ".", "89", "\n", "\n", "0", ".", "83", "\n", "\n", "0", ".", "82", "\n", "\n", "1", ".", "47", "\n", "\n", "0", ".", "70", "\n", "\n", "1", ".", "45", "\n", "\n", "1", ".", "07", "\n", "\n", "1", ".", "47", "\n", "\n", "0", ".", "96", "\n", "\n", "1", ".", "20", "\n", "\n", "0", ".", "96", "\n", "\n", "0", ".", "77", "\n", "\n", "1", ".", "07", "\n", "\n", "0", ".", "95", "\n", "\n", "1", ".", "13", "\n", "\n", "0", ".", "97", "\n", "\n", "1", ".", "13", "\n", "\n", "1", ".", "25", "\n", "\n", "0", "."], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 74, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.16, "bin_contains": 0.9998999999999999, "tokens": ["ton", ",", " Nevada", ",", " on", " 3", " September", " 2007", " on", " a", " flight", " that", " was", " expected", " to", " last", " three", " hours", ".", " In", " 2002", ",", " he", " became", " the", " first", " person", " to", " circle", " the", " globe", " solo", " in", " a", " balloon", " and", " had", " about", " 100", " other", " world", " records", " to", " his", " name", ".", "\n", "\n", "Click", " here", " to", " return", "\n", "\n", "E", "-", "mail", " this", " to", " a", " friend", " Print", "able", " version", " Book", "mark", " with", ":", " Delicious", "\n", "\n", "D", "igg", "\n", "\n", "reddit", "\n", "\n", "Facebook", "\n", "\n", "St", "umble", "Upon", " What", " are", " these", "?", "<|endoftext|>", "Joseph", " Er", "l", "anger", " (", "January", " 5", ",", " 18", "74", " \u2013", " December", " 5", ",", " 1965", ")", " was", " an", " American", " phys", "iologist", " who", " is", " best", " known", " for", " his", " contributions", " to", " the", " field", " of", " neuroscience", ".", " Together", " with", " Herbert", " Spencer"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 81, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.16, "bin_contains": 0.9998999999999999, "tokens": ["onda", " Rouse", "y", ",", " on", " wanting", " to", " have", " kids", "\n", "\n", "RR", ":", " It", " can", " be", " creepy", " and", " weird", ".", " Personally", ",", " I", " wasn", "'t", " allowed", " to", " have", " a", " cellphone", " until", " I", " was", " 16", ".", " I", " think", " having", " a", " cellphone", " becomes", " a", " social", " cr", "utch", ",", " especially", " during", " those", " uncomfortable", " puberty", " years", ".", " If", " I", " had", " a", " kid", ",", " I", " would", " try", " to", " keep", " them", " out", " of", " social", " media", " until", " they", " were", " at", " least", " in", " their", " teens", ".", "\n", "\n", "AG", ":", " Do", " you", " want", " to", " have", " kids", " some", " day", "?", "\n", "\n", "RR", ":", " Definitely", ".", " I", "'m", " an", " ovarian", " gold", "mine", ".", " I", " can", "'t", " waste", " these", " genes", ".", "\n", "\n", "AG", ":", " Would", " you", " rather", " lose", " an", " arm", " or", " a", " leg", "?", "\n", "\n"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 114, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.16, "bin_contains": 0.9998999999999999, "tokens": [" are", " predicted", " by", " the", " bio", "ec", "ological", " hypothesis", " \u2013", " that", " gen", "otypes", " are", " transformed", " into", " phen", "otypes", " through", " non", "add", "itive", " synerg", "istic", " effects", " of", " the", " environment", ".[", "115", "]", " N", "is", "bett", " et", " al", ".", " (", "2012", ")", " suggest", " that", " high", " S", "ES", " individuals", " are", " more", " likely", " to", " be", " able", " to", " develop", " their", " full", " biological", " potential", ",", " whereas", " low", " S", "ES", " individuals", " are", " likely", " to", " be", " hindered", " in", " their", " development", " by", " adverse", " environmental", " conditions", ".", " The", " same", " review", " also", " points", " out", " that", " adoption", " studies", " generally", " are", " biased", " towards", " including", " only", " high", " and", " high", " middle", " S", "ES", " adoptive", " families", ",", " meaning", " that", " they", " will", " tend", " to", " overest", "imate", " average", " genetic", " effects", ".", " They", " also", " note", " that", " studies", " of", " adoption", " from", " lower", "-", "class", " homes", " to", " middle", "-"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 2, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}]}, {"feature_index": 3, "neuron_alignment_indices": [266, 480, 87], "neuron_alignment_values": [0.108, 0.108, 0.107], "neuron_alignment_l1": [0.005, 0.005, 0.005], "correlated_neurons_indices": [599, 170, 14], "correlated_neurons_l1": [0.014, 0.015, 0.014], "correlated_neurons_pearson": [0.014, 0.014, 0.013], "correlated_features_indices": [3, 2], "correlated_features_l1": [0.0, 0.0], "correlated_features_pearson": [0.0, -0.0], "neg_str": ["sharp", " MPG", " Rin", " ..........", "jab", "iny", "ran", " Watt", "geon", "rays"], "neg_values": [-0.675, -0.623, -0.622, -0.619, -0.601, -0.597, -0.596, -0.588, -0.583, -0.58], "pos_str": [" contingent", " conting", " contingency", " conditioned", " conditional", " delegation", " cohort", " detachment", " provisional", " facult"], "pos_values": [4.019, 2.235, 1.83, 1.382, 1.339, 1.337, 1.03, 0.986, 0.921, 0.895], "frac_nonzero": 0.00023, "freq_hist_data_bar_values": [0.035, 0.103, 0.172, 0.241, 0.309, 0.378, 0.446, 0.515, 0.583, 0.652, 0.721, 0.789, 0.858, 0.926, 0.995, 1.063, 1.132, 1.2, 1.269, 1.338, 1.406, 1.475, 1.543, 1.612, 1.68, 1.749, 1.818, 1.886, 1.955, 2.023, 2.092, 2.16, 2.229, 2.298, 2.366, 2.435, 2.503, 2.572, 2.64, 2.709, 2.778, 2.846, 2.915, 2.983, 3.052, 3.12, 3.189, 3.257, 3.326, 3.395], "freq_hist_data_bar_heights": [73, 32, 21, 1, 4, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8], "logits_hist_data_bar_heights": [9, 65, 428, 1572, 4283, 8019, 10177, 9411, 7377, 4599, 2474, 1111, 444, 172, 70, 31, 6, 2, 1, 0, 0, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], "logits_hist_data_bar_values": [-0.628, -0.534, -0.441, -0.347, -0.253, -0.159, -0.065, 0.029, 0.123, 0.217, 0.31, 0.404, 0.498, 0.592, 0.686, 0.78, 0.874, 0.968, 1.062, 1.155, 1.249, 1.343, 1.437, 1.531, 1.625, 1.719, 1.813, 1.906, 2.0, 2.094, 2.188, 2.282, 2.376, 2.47, 2.564, 2.658, 2.751, 2.845, 2.939, 3.033, 3.127, 3.221, 3.315, 3.409, 3.502, 3.596, 3.69, 3.784, 3.878, 3.972], "n_prompts_total": 5000, "n_tokens_in_prompt": 128, "dataset": "Skylion007/openwebtext", "decoder_weights_dist": [], "activations": [{"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" the", " strategic", " channel", " at", " high", " risk", " of", " \u00e2\u0122", "\u013e", "war", ",", " strikes", ",", " terrorism", " and", " related", " per", "ils", "\u00e2\u0122", "\u013f", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "But", " it", "\u00e2\u0122", "\u013b", "s", " just", " a", " recommendation", ",", " and", " some", " under", "writers", " may", " not", " follow", " it", " for", " their", " very", " important", " clients", ",", "\u00e2\u0122", "\u013f", " Muk", "und", "an", " told", " Reuters", ".", " \u00e2\u0122", "\u013e", "Cost", "s", " have", " not", " gone", " up", ".", " Of", " course", ",", " if", " you", " are", " hijacked", " they", " go", " up", " quite", " significantly", ".", " But", " there", " is", " no", " contingent", " cost", " to", " piracy", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "S", "om", "ali", " pirates", " are", " currently", " holding", " about", " 130", " crew", " members", " hostage", " on", " at", " least", " seven", " vessels", ",", " including", " huge", " chemical", " tank", "ers", " and", " bulk", "-", "car", "riers", ".", " Gun", "men", " are", " holding", " vessels", " from", " Japan"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.429, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 82, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" gradient", " is", " getting", " st", "eeper", ",", " not", " only", " between", " contingent", " labor", " and", " the", " tenure", " track", ",", " and", " junior", " and", " senior", " faculty", " within", " the", " latter", ",", " but", " between", " institutions", " as", " well", ".", " Prof", "essors", " at", " doctoral", "-", "gr", "anting", " universities", " not", " only", " get", " paid", " a", " lot", " more", " than", " their", " colleagues", " at", " other", " four", "-", "year", " schools", ";", " the", " difference", " is", " growing", ",", " from", " 17", " percent", " in", " 1984", " to", " 28", " percent", " in", " 2003", ".", " (", "Their", " advantage", " over", " professors", " at", " community", " colleges", " increased", " during", " the", " same", " period", " from", " 33", " percent", " to", " 49", " percent", ".)", " The", " rich", " are", " getting", " richer", ".", " In", " 1970", " (", "it", " seems", " like", " an", " alternative", " universe", " now", ")", " faculty", " at", " public", " colleges", " and", " universities", " actually", " made", " about", " 10", " percent", " more", " than", " those", " at", " private", " schools", "."], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.426, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 9, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": ["el", "tering", " gym", " bed", "e", "ck", "ed", " with", " championship", " banners", ",", " the", " governor", " is", " received", " by", " a", " bo", "ister", "ous", " contingent", " of", " his", " old", " friends", " from", " the", " class", " of", " 1980", ".", " \u00e2\u0122", "\u013e", "Lots", " of", " people", " have", " asked", " me", " over", " the", " course", " of", " last", " week", ",", " why", " here", "?", "\u00e2\u0122", "\u013f", " he", " says", ".", " \u00e2\u0122", "\u013e", "Why", " here", "?", " Because", " everything", " started", " here", " for", " me", ".", " The", " confidence", ".", " The", " education", ".", " The", " friends", ".", " The", " family", ".", " And", " the", " love", " that", " I", "\u00e2\u0122", "\u013b", "ve", " always", " felt", " for", " and", " from", " this", " community", ".", "\u00e2\u0122", "\u013f", " Outside", " the", " gym", ",", " protesters", " pick", "et", " the", " speech", ",", " waving", " signs", " that", " read", " B", "ULL", "Y", ".", "\n", "\n", "On", " the", " campaign", " trail", ",", " he", " keeps", " getting", " incred", "ulous", " questions"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 20, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" than", " twenty", " years", ",", " to", " about", " two", "-", "thirds", " of", " what", " it", " was", " in", " 1980", ".", " The", " average", " six", "-", "year", " graduation", " rate", " at", " state", " schools", " is", " now", " a", " dismal", " 60", " percent", ",", " a", " function", " of", " class", " size", " and", " availability", ",", " faculty", " accessibility", ",", " the", " use", " of", " contingent", " instructors", " and", " other", " budget", "-", "related", " issues", ".", " Private", " universities", " actually", " lobby", " against", " public", " funding", " for", " state", " schools", ",", " which", " they", " see", " as", " competitors", ".", " In", " any", " case", ",", " a", " large", " portion", " of", " state", " scholarship", " aid", " goes", " to", " students", " at", " private", " colleges", " (", "in", " some", " cases", ",", " more", " than", " half", ")\u2014", "a", " kind", " of", " voucher", " system", " for", " higher", " education", ".", "\n", "\n", "Meanwhile", ",", " public", " universities", " have", " been", " shifting", " their", " financial", " aid", " criteria", " from", " need", " to", " merit", " to", " attract"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.42, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 47, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": ["ids", " around", " 1970", " and", " didn", "\u00e2\u0122", "\u013b", "t", " recover", " for", " almost", " thirty", " years", ".", " It", "\u00e2\u0122", "\u013b", "s", " no", " surprise", " that", " the", " percentage", " of", " college", " freshmen", " expressing", " an", " interest", " in", " academia", " was", " more", " than", " three", " times", " higher", " in", " 1966", " than", " it", " was", " in", " 2004", ".", "\n", "\n", "But", " the", " answer", " now", " is", " not", " to", " raise", " professors", "\u00e2\u0122", "\u013b", " salaries", ".", " Prof", "essors", " already", " make", " enough", ".", " The", " answer", " is", " to", " hire", " more", " professors", ":", " real", " ones", ",", " not", " academic", " lettuce", "-", "p", "ickers", ".", "\n", "\n", "Yet", " that", "\u00e2\u0122", "\u013b", "s", " the", " last", " thing", " schools", " are", " apt", " to", " do", ".", " What", " we", " have", " seen", " instead", " over", " the", " past", " forty", " years", ",", " in", " addition", " to", " the", " raising", " of", " a", " reserve", " army", " of", " contingent", " labor", ",", " is", " a", " kind"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.419, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 121, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" if", " we", "\u00e2\u0122", "\u013b", "re", " going", " to", " reach", " the", " oft", "-", "repe", "ated", " goal", " of", " universal", " post", "secondary", " education", ",", " an", " objective", " that", " would", " double", " enroll", "ments", "\u2014", "we", "\u00e2\u0122", "\u013b", "re", " going", " to", " need", " a", " lot", " more", " teachers", ":", " well", " paid", ",", " institution", "ally", " supported", ",", " socially", " valued", ".", " As", " of", " 2003", " there", " were", " about", " 400", ",", "000", " tenure", "-", "track", " professors", " in", " the", " United", " States", " (", "as", " compared", " with", " about", " 6", " million", " primary", "-", " and", " secondary", "-", "school", " teachers", ").", " Between", " reducing", " class", " sizes", ",", " reversing", " the", " shift", " to", " contingent", " labor", " and", " beef", "ing", " up", " our", " college", "-", "com", "pletion", " rates", ",", " we", "\u00e2\u0122", "\u013b", "re", " going", " to", " need", " at", " least", " five", " times", " as", " many", ".", "\n", "\n", "So", " where", "\u00e2\u0122", "\u013b", "s", " the", " money"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 91, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": ["about", " global", " warming", ",", " or", " the", " historical", " Jesus", ",", " or", " the", " way", " we", " raise", " our", " children", ".", " That", "\u00e2\u0122", "\u013b", "s", " why", " they", " need", " to", " have", " special", " protections", ".", "\n", "\n", "*", " *", " *", "\n", "\n", "But", " the", " tenure", " system", ",", " which", " is", " already", " being", " eroded", " by", " the", " growth", " of", " contingent", " labor", ",", " is", " not", " the", " only", " thing", " that", " is", " under", " assault", " in", " the", " top", "-", "down", ",", " corpor", "at", "ized", " academy", ".", " As", " Cary", " Nelson", " explains", " in", " No", " University", " Is", " an", " Island", " (", "2010", "),", " shared", " governance", "\u2014", "the", " principle", " that", " universities", " should", " be", " controlled", " by", " their", " faculties", ",", " which", " protects", " academic", " values", " against", " the", " enc", "roach", "ments", " of", " the", " spreadsheet", " brigade", "\u2014", "is", " also", " threatened", " by", " the", " changing", " structure", " of", " academic", " work", ".", " Cont", "ing"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [".", "7", ".", "2014", ")", " with", " two", " dozen", " top", " managers", " in", " tow", ",", " including", " five", " heads", " of", " DA", "X", "-", "listed", " companies", ".", " Since", " Tuesday", ",", " the", " final", " day", " of", " Merkel", "'s", " China", " visit", ",", " it", "'s", " been", " evident", " that", " the", " large", " German", " business", " contingent", " made", " less", " of", " an", " impression", " on", " the", " Chinese", " than", " some", " of", " the", " members", " of", " the", " delegation", " had", " hoped", ".", "\n", "\n", "In", " the", " end", ",", " the", " Chinese", " were", " not", " quite", " as", " open", " to", " everything", " the", " German", " business", " leaders", " had", " on", " their", " wish", " list", " as", " the", " Germans", " would", " have", " liked", ".", " Acc", "ords", " amount", "ing", " to", " 3", " billion", " euros", " ($", "4", " billion", ")", " were", " signed", ",", " which", " is", " not", " bad", " at", " all", ".", " However", ",", " it", "'s", " a", " relatively", " small", " package", " if", " you"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.411, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.109, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 44, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" void", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "If", " we", " can", " find", " a", " way", " to", " achieve", " greater", " revenue", " stability", " without", " the", " use", " of", " the", " contingency", " account", " \u2014", " though", " it", "\u00e2\u0122", "\u013b", "s", " probably", " not", " possible", " \u2014", " that", " would", " be", " my", " first", " desire", ",", "\u00e2\u0122", "\u013f", " said", " the", " Calgary", " MLA", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "Phil", "os", "oph", "ically", ",", " I", " think", " conting", "encies", " are", " there", " to", " smooth", " things", " out", ".", " They", "\u00e2\u0122", "\u013b", "re", " not", " there", " to", " totally", " drain", " the", " bank", " account", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Although", " the", " price", " of", " oil", " has", " stayed", " below", " $", "60", " US", " per", " barrel", " for", " much", " of", " this", " year", ",", " Cec", "i", " said", " he", " hoped", " new", " corporate", " tax", " increases", " and", " hikes", " in", " personal", " income", " tax", " for", " the", " wealthiest", " Albert", "ans", " will", " meet", " some"], "values": [0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.029, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 59, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" red", ".", "\n", "\n", "The", " 2014", "-", "15", " consolidated", " surplus", " of", " $", "1", ".", "1", " billion", " ends", " of", " string", " of", " six", " consecutive", " deficits", " and", " boosts", " the", " province", "\u00e2\u0122", "\u013b", "s", " contingency", " fund", " to", " $", "8", ".", "2", " billion", " \u2014", " a", " reserve", " Finance", " Minister", " Joe", " Cec", "i", " says", " will", " come", " in", " handy", " in", " dealing", " with", " the", " drop", " in", " non", "-", "ren", "ew", "able", " resource", " revenue", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "Going", " forward", " the", " climate", " \u2014", " the", " economy", " today", " \u2014", " is", " very", " different", " from", " what", " it", " was", " then", ",", "\u00e2\u0122", "\u013f", " he", " told", " reporters", " at", " the", " legislature", " Tuesday", " as", " the", " NDP", " government", " released", " the", " final", " year", "-", "end", " numbers", ".", "\n", "\n", "But", " Cec", "i", " said", " he", " was", " reluctant", " to", " use", " the", " cash", " savings", " to", " fill", " the", " projected", " revenue"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.03, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 30, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" void", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "If", " we", " can", " find", " a", " way", " to", " achieve", " greater", " revenue", " stability", " without", " the", " use", " of", " the", " contingency", " account", " \u2014", " though", " it", "\u00e2\u0122", "\u013b", "s", " probably", " not", " possible", " \u2014", " that", " would", " be", " my", " first", " desire", ",", "\u00e2\u0122", "\u013f", " said", " the", " Calgary", " MLA", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "Phil", "os", "oph", "ically", ",", " I", " think", " conting", "encies", " are", " there", " to", " smooth", " things", " out", ".", " They", "\u00e2\u0122", "\u013b", "re", " not", " there", " to", " totally", " drain", " the", " bank", " account", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Although", " the", " price", " of", " oil", " has", " stayed", " below", " $", "60", " US", " per", " barrel", " for", " much", " of", " this", " year", ",", " Cec", "i", " said", " he", " hoped", " new", " corporate", " tax", " increases", " and", " hikes", " in", " personal", " income", " tax", " for", " the", " wealthiest", " Albert", "ans", " will", " meet", " some"], "values": [0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.029, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 22, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [".", " So", " far", ",", " 1", ",", "160", " bottles", " of", " water", " have", " been", " delivered", " to", " campus", ",", " and", " additional", " distilled", " water", " for", " kitchen", " use", ".", "\n", "\n", "IU", " Health", " Ball", " Memorial", " Hospital", " has", " put", " in", " place", " contingency", " plans", " so", " that", " its", " patients", " and", " employees", " will", " not", " be", " impacted", ".", " Neil", " G", "iff", "ord", ",", " director", " of", " marketing", " and", " communication", ",", " said", " that", " the", " hospital", " has", " placed", " signs", " on", " public", " water", " f", "ount", "ains", ",", " has", " made", " bottled", " water", " available", " to", " patients", " and", " team", " members", " and", " is", " taking", " necessary", " precautions", " during", " food", " preparations", " and", " other", " day", "-", "to", "-", "day", " operations", ".", "\n", "\n", "El", "m", " Street", " Brewing", " Co", ".", " offered", " to", " assist", " those", " in", " need", " of", " water", " today", " at", " their", " business", " on", " 5", "19", " N", " Elm", " St", "."], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.028, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 35, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" to", " get", " back", ",", " and", " get", " some", " quality", " practice", " time", " with", " the", " team", " before", " the", " season", " starts", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "D", "ough", "ty", " said", " that", " his", " strength", " and", " conditioning", " has", " improved", " over", " last", " season", ",", " and", " that", " he", " is", " already", " r", "arin", "\u00e2\u0122", "\u013b", " to", " go", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "I", "\u00e2\u0122", "\u013b", "ve", " been", " skating", " back", " home", " pretty", " hard", ",", " so", " I", " think", " I", " can", " jump", " right", " into", " it", ",", "\u00e2\u0122", "\u013f", " said", " Dough", "ty", ".", " \u00e2\u0122", "\u013e", "But", " whenever", " they", " want", " me", " to", " play", ",", " I", "\u00e2\u0122", "\u013b", "m", " available", " to", " play", ",", " and", " I", " want", " to", " get", " back", " in", " action", " as", " soon", " as", " I", " can", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "\u00e2\u0122", "\u013e", "I", " feel", " stronger", ",", " and", " I", " feel", " better", " conditioned"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.547], "qualifying_token_index": 126, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" $", "2", ".", "29", " billion", " US", " if", " all", " the", " options", " and", " purchase", " rights", " are", " exercised", ".", "\n", "\n", "Delivery", " of", " the", " first", " jet", ",", " which", " has", " seating", " for", " 107", " passengers", ",", " is", " expected", " in", " 2016", ".", "\n", "\n", "The", " conditional", " purchase", " agreement", " signed", " on", " Tuesday", " is", " a", " coup", " for", " Bomb", "ard", "ier", ",", " and", " us", "hers", " in", " a", " change", " in", " Canadian", " aviation", ".", " That", "'s", " because", " the", " C", "Series", " jets", " can", " fly", " 5", ",", "400", " km", " without", " ref", "ue", "lling", ",", " much", " farther", " than", " the", " current", " fleet", " of", " Q", "400", " turb", "op", "rop", " planes", " that", " Porter", " flies", " to", " connect", " 19", " cities", " across", " Eastern", " Canada", " and", " the", " U", ".", "S", ".", "\n", "\n", "The", " airline", " said", " the", " expansion", " could", " mean", " 1", ",", "000", " new", " employees", ",", " which", " would"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.351, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 39, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" for", " the", " future", " of", " Porter", " Airlines", " \u2014", " a", " vision", " with", " service", " to", " destinations", " across", " North", " America", ",", " from", " Calgary", " and", " Vancouver", ",", " to", " Los", " Angeles", ",", " Miami", " and", " Orlando", ".\"", "\n", "\n", "The", " move", " pushes", " Porter", " into", " direct", " competition", " with", " Air", " Canada", " and", " West", "Jet", " as", " a", " national", " carrier", ",", " while", " setting", " up", " a", " potential", " political", " standoff", " over", " expansion", " of", " the", " island", " airport", " in", " downtown", " Toronto", ".", "\n", "\n", "The", " conditional", " deal", " is", " to", " buy", " 12", " Bomb", "ard", "ier", " CS", "100", "s", ",", " with", " options", " on", " 18", " more", ".", "\n", "\n", "The", " deal", " also", " includes", " purchase", " rights", " for", " six", " of", " Bomb", "ard", "ier", "'s", " Q", "400", " turb", "op", "rop", " aircraft", ",", " currently", " the", " main", "stay", " of", " the", " Porter", " fleet", ".", "\n", "\n", "The", " total", " purchase", " could", " reach"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.347, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 70, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" they", " treated", " me", " with", " a", " confusing", " detachment", " and", " thought", ",", " \"", "Oh", ",", " so", " this", " is", " what", " it", " should", " be", " like", ".\"", "\n", "\n", "\"", "So", ",", " this", " is", " what", " kindness", " is", " like", ".\"", "\n", "\n", "D", "ating", " made", " me", " feel", " like", " the", " l", "onel", "iest", " person", " in", " the", " world", " for", " a", " long", " time", ".", " I", " wish", " now", " I", " hadn", "'t", " done", " it", " at", " all", ",", " but", " withdrawal", " is", " painful", " and", " uncomfortable", ".", " I", " was", " willing", " to", " try", " anything", " to", " feel", " just", " a", " little", " better", ".", "\n", "\n", "You", " will", " miss", " your", " ex", " boyfriend", " in", " a", " way", " you", " didn", "'t", " know", " was", " possible", " and", " you", " don", "'t", " think", " should", " be", " allowed", ".", " You", " will", " want", " to", " get", " back", " together", ".", " Ab", "usive", " relationships", " fuck", " your", " brain", " chemistry"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.336, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 6, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" the", " editor", " or", " write", " to", " letters", "@", "the", "atlantic", ".", "com", ".", "<|endoftext|>", "2015", " brought", " record", " passenger", " traffic", " to", " Bush", ",", " Hobby", "\n", "\n", "A", " Southwest", " Airlines", " Boeing", " 737", " lands", " at", " Hobby", " Airport", " in", " March", " 2015", ".", " A", " Southwest", " Airlines", " Boeing", " 737", " lands", " at", " Hobby", " Airport", " in", " March", " 2015", ".", " Photo", ":", " Bill", " Montgomery", ",", " HC", " Staff", " Photo", ":", " Bill", " Montgomery", ",", " HC", " Staff", " Image", " 1", " of", " /", " 1", " Caption", " Close", " 2015", " brought", " record", " passenger", " traffic", " to", " Bush", ",", " Hobby", " 1", " /", " 1", " Back", " to", " Gallery", "\n", "\n", "Houston", "'s", " two", " major", " airports", " both", " set", " records", " for", " passenger", " traffic", " in", " 2015", ",", " the", " Houston", " Airport", " System", " reported", " Wednesday", ".", "\n", "\n", "H", "obby", " Airport", " had", " 145", ",", "202", " international", " passengers", " between", " opening", " its", " international", " conc", "ourse", " in"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.315, 0.0], "qualifying_token_index": 125, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" upper", " conc", "ourse", " and", " initially", " made", " available", " to", " patrons", " currently", " sitting", " in", " Row", " 1", " of", " the", " 300", " Level", ".", "\n", "\n", "Installation", " of", " new", " seamless", " glass", " in", " the", " front", " row", " of", " the", " 300", " Level", ",", " replacing", " the", " existing", " mesh", " railing", ",", " for", " improved", " sight", "lines", " for", " 300", "-", "level", " patrons", ".", "\n", "\n", "The", " upgrades", " will", " be", " undertaken", " this", " summer", ".", "\n", "\n", "M", "TS", " Centre", ",", " which", " opened", " Nov", ".", " 16", ",", " 2004", ",", " has", " hosted", " almost", " 1", ",", "400", " events", ",", " including", " hockey", " games", ",", " concerts", " and", " other", " entertainment", " events", ".", "<|endoftext|>", "Ad", "orable", " \u2013", " short", " lived", " and", " with", " strained", " relations", ".", "\n", "\n", "Ad", "orable", " \u2013", " in", " concert", " at", " Gl", "aston", "bury", " 1993", " \u2013", " BBC", " Radio", " 1", " \u2013", "\n", "\n", "Hom", "age", " to", " Sho"], "values": [0.0, 0.0, 0.31, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 2, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" the", " United", " States", " and", " worldwide", " marking", " Earth", " Day", " to", " raise", " awareness", " of", " the", " contributions", " of", " science", " to", " society", ",", " and", " the", " importance", " of", " supportive", " public", " policy", ",", " organizers", " said", ".", "\n", "\n", "The", " event", " kicked", " off", " with", " remarks", " from", " area", " scientists", " at", " the", " Community", " Conc", "ourse", " in", " the", " Civic", " Center", " complex", " next", " to", " City", " Hall", ",", " followed", " by", " the", " march", " down", " Broadway", " to", " the", " Water", "front", " Park", " outside", " the", " County", " Administration", " Center", ".", "\n", "\n", "Mar", "chers", " carried", " signs", " saying", " \u00e2\u0122", "\u013e", "build", " science", " not", " walls", ",", "\u00e2\u0122", "\u013f", " \u00e2\u0122", "\u013e", "ice", " has", " no", " agenda", " it", " just", " melts", ",", "\u00e2\u0122", "\u013f", " \u00e2\u0122", "\u013e", "we", " do", " not", " inherit", " the", " Earth", " from", " our", " ancestors", ",", " we", " borrow", " it", " from", " our", " children", ",", "\u00e2\u0122", "\u013f", " \u00e2\u0122", "\u013e", "there", " is", " no"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.306, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 45, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" blame", " everybody", " himself", " for", " everything", " he", " did", " wrong", " will", " stand", " out", " in", " historical", " accounts", " of", " his", " dizz", "ying", " fall", " from", " the", " heights", " vault", "ing", " ambition", ".", "\n", "\n", "If", " you", "\u00e2\u0122", "\u013b", "re", " ready", " to", " read", " more", " from", " the", " unb", "oss", "ed", " and", " unb", "ought", " Polit", "icus", " team", ",", " sign", " up", " for", " our", " newsletter", " here", "!", " Email", " address", ":", " Leave", " this", " field", " empty", " if", " you", "'re", " human", ":", "<|endoftext|>", "In", " the", " conservative", " comment", "ariat", " and", " intellectual", " classes", ",", " the", " deal", " with", " the", " devil", " that", " is", " Trump", "ism", " seems", " increasingly", " complete", ".", " St", "al", "wart", " conservatives", " who", " for", " years", "\u2014", "in", " some", " cases", " decades", "\u2014", "def", "ended", " the", " principles", " of", " limited", " government", ",", " personal", " liberty", ",", " and", " strict", " adherence", " to", " the", " Constitution", " have", " h", "iked", " their", " skirts", " and"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.218, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 73, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" third", " and", " final", " presidential", " debate", " on", " Wednesday", " night", ".", " But", " while", " the", " debate", " will", " bring", " the", " eyes", " of", " the", " world", " to", " Las", " Vegas", ",", " it", " has", " brought", " something", " else", " to", " UN", "LV", " basketball", ",", " the", " primary", " tenant", " of", " the", " Thomas", " &", " Mack", " Center", ":", " headaches", ".", " Lots", " and", " lots", " of", " headaches", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "The", " first", " thing", " that", " came", " to", " mind", " was", " \u00e2\u0122", "\u013a", "that", "\u00e2\u0122", "\u013b", "s", " pretty", " cool", ",", "\u00e2\u0122", "\u013b", " the", " national", " attention", " that", " it", " will", " bring", " to", " the", " Thomas", " &", " Mack", " and", " the", " university", "\u00e2\u0122", "\u013f", " new", " UN", "LV", " head", " coach", " Marvin", " Men", "z", "ies", " said", ".", " \u00e2\u0122", "\u013e", "But", " then", " the", " second", " thought", " was", " \u00e2\u0122", "\u013a", "wow", ",", " that", "\u00e2\u0122", "\u013b", "s", " going", " to", " be", " a", " logistical", " nightmare", ".", "\u00e2\u0122"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.188, 0.0, 0.0, 0.0], "qualifying_token_index": 123, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" restoring", " his", " access", ",", " Facebook", " said", " it", " would", " not", " pay", " him", " a", " bounty", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "The", " more", " important", " issue", " here", " is", " with", " how", " the", " bug", " was", " demonstrated", " using", " the", " accounts", " of", " real", " people", " without", " their", " permission", ",", "\u00e2\u0122", "\u013f", " said", " Facebook", " software", " engineer", " Matt", " Jones", " in", " a", " Sunday", " entry", " on", " Hacker", " News", ".", " \u00e2\u0122", "\u013e", "Expl", "o", "iting", " bugs", " to", " impact", " real", " users", " is", " not", " acceptable", " behavior", " for", " a", " white", " hat", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Jones", " did", " acknowledge", " that", " Facebook", " should", " have", " asked", " Sh", "re", "ate", "h", " for", " more", " information", " before", " dismissing", " his", " report", ",", " but", " he", " also", " tick", "ed", " off", " a", " list", " of", " reasons", ",", " including", " the", " fact", " that", " Facebook", " receives", " \u00e2\u0122", "\u013e", "h", "undreds", " of", " reports", " each", " day", "\u00e2\u0122", "\u013f", " and"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.181, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 119, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": ["\u013b", " but", " don", "\u00e2\u0122", "\u013b", "t", " worry", ",", "\u00e2\u0122", "\u013f", " he", " wrote", " in", " a", " series", " of", " tweets", ".", " \u00e2\u0122", "\u013e", "I", " created", " her", " character", " as", " an", " antit", "hesis", " to", " the", " women", " characters", " appeared", " in", " the", " past", " fighting", " game", " who", " are", " excessively", " exposed", ".", " \u00e2\u0122", "\u013a", "Qu", "iet", "\u00e2\u0122", "\u013b", " who", " doesn", "\u00e2\u0122", "\u013b", "t", " have", " a", " word", " will", " be", " teased", " in", " the", " story", " as", " well", ".", " But", " once", " you", " recognise", " the", " secret", " reason", " for", " her", " exposure", ",", " you", " will", " feel", " ashamed", " of", " your", " words", " &", " deeds", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "So", ",", " two", " years", " on", " Phantom", " Pain", " has", " been", " released", ".", " No", " one", " has", " forgotten", " K", "oj", "ima", "\u00e2\u0122", "\u013b", "s", " words", " and", " we", " have", " the", " full", " story", " behind", " Quiet", "\u00e2\u0122", "\u013b", "s", " attire", ".", " Are"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.179, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 26, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [",", " a", " spokesman", " tells", " the", " BBC", ".", " Another", " 800", " will", " be", " there", " by", " Friday", " and", " the", " rest", " of", " the", " 3", ",", "500", "-", "member", " division", " is", " on", " standby", " in", " case", " they", " are", " needed", ".", " The", " US", " 82", "nd", " Air", "borne", " Division", " will", " have", " 100", " members", " in", " Haiti", " on", " Thursday", ",", " a", " spokesman", " tells", " the", " BBC", ".", " Another", " 800", " will", " be", " there", " by", " Friday", " and", " the", " rest", " of", " the", " 3", ",", "500", "-", "member", " division", " is", " on", " standby", " in", " case", " they", " are", " needed", ".", "\n", "\n", "14", "11", " Elizabeth", " Byr", "s", ",", " a", " spokeswoman", " for", " the", " UN", ",", " tells", " the", " BBC", " World", " Service", ":", " \"", "Fire", "men", " have", " also", " been", " trapped", " in", " the", " earthquake", " so", " their", " logistical", " means", " are", " very", " poor", " and", " they", " cannot", " cope", " with", " the", " situation"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.178, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 115, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [".", " That", "'s", " why", " it", "'s", " very", " urgent", " to", " bring", " heavy", " machinery", " to", " remove", " the", " debris", ",", " also", " civil", " and", " military", " assets", " like", " helicopters", " are", " needed", ",", " given", " the", " bad", " conditions", " of", " the", " roads", ".\"", " \"", "Fire", "men", " have", " also", " been", " trapped", " in", " the", " earthquake", " so", " their", " logistical", " means", " are", " very", " poor", " and", " they", " cannot", " cope", " with", " the", " situation", ".", " That", "'s", " why", " it", "'s", " very", " urgent", " to", " bring", " heavy", " machinery", " to", " remove", " the", " debris", ",", " also", " civil", " and", " military", " assets", " like", " helicopters", " are", " needed", ",", " given", " the", " bad", " conditions", " of", " the", " roads", ".\"", "\n", "\n", "14", "00", " Brooke", " D", "urb", "in", ",", " a", " teacher", " in", " Port", "-", "de", "-", "Pa", "ix", " in", " northern", " Haiti", ",", " e", "-", "mails", ":", " \"", "The", " worst", " part", " about", " the", " whole"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 47, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [".", " Nearly", " a", " quarter", " of", " the", " people", " who", " expressed", " criticism", " of", " K", "omen", "'s", " decision", " online", " said", " they", " were", " going", " to", " pull", " their", " donations", " from", " K", "omen", ".", "\n", "\n", "In", " contrast", ",", " Planned", " Parenthood", " has", " seen", " a", " huge", " influx", " of", " financial", " donations", " in", " the", " 24", " hours", " since", " K", "omen", " broke", " ties", ".", " While", " the", " organization", " has", " not", " officially", " released", " the", " new", " donation", " numbers", " yet", ",", " a", " source", " close", " to", " the", " issue", " said", " they", "'ve", " raised", " \"", "h", "undreds", " of", " thousands", "\"", " of", " dollars", " in", " individual", " donations", " during", " that", " period", ".", " That", ",", " combined", " with", " a", " donation", " of", " $", "250", ",", "000", " from", " Texas", " oil", " executive", " Lee", " F", "ikes", " and", " his", " wife", " Amy", " for", " a", " \"", "Bre", "ast", " Health", " Emergency", " Fund", ",\"", " could", " put", " the", " family", " planning"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.173, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 78, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": ["\u013b", "\u00e2\u0122", "\u013f", "\n", "\n", "Ad", "mittedly", ",", " the", " debate", " has", " been", " a", " logistical", " nightmare", " for", " just", " about", " everyone", " on", " UN", "LV", "\u00e2\u0122", "\u013b", "s", " campus", ",", " and", " very", " likely", " for", " the", " entire", " city", " of", " Las", " Vegas", " in", " recent", " days", ".", " However", ",", " it", "\u00e2\u0122", "\u013b", "s", " taken", " an", " especially", " large", " toll", " on", " the", " UN", "LV", " basketball", " team", " because", " its", " offices", " are", " located", " in", " the", " Thomas", " &", " Mack", " and", " its", " practice", " facility", " is", " located", " right", " next", " door", " at", " the", " Mend", "enh", "all", " Center", ".", "\n", "\n", "To", " prepare", " for", " the", " debate", " and", " to", " make", " sure", " the", " entire", " surrounding", " area", " is", " completely", " secure", ",", " the", " Run", "nin", "\u00e2\u0122", "\u013b", " Rebels", " hoops", " team", " was", " forced", " to", " leave", " its", " offices", " last", " Friday", " and", " won", "'t", " be", " able", " to", " return", " until"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.169, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 13, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" 3", ".", "2", " million", " \u2014", " more", " than", " a", " third", " of", " Somalia", "\u00e2\u0122", "\u013b", "s", " population", ".", "\n", "\n", "Canadian", " naval", " ships", " are", " esc", "orting", " World", " Food", " Program", " shipments", " to", " Mog", "adish", "u", " until", " September", ",", " and", " U", ".", "N", ".", " officials", " say", " it", " is", " hoped", " that", " French", " and", " then", " German", " forces", " will", " take", " over", ".", "\n", "\n", "Further", " north", " in", " the", " Gulf", " of", " Aden", ",", " the", " recent", " attacks", " have", " also", " st", "ung", " the", " anti", "-", "terrorist", " Combined", " Task", " Force", " 150", " into", " action", ".", " The", " multinational", " unit", ",", " part", " of", " Washington", "\u00e2\u0122", "\u013b", "s", " Operation", " End", "uring", " Freedom", ",", " is", " based", " in", " neighboring", " Dj", "ib", "out", "i", " and", " has", " come", " to", " the", " aid", " of", " many", " ships", " attacked", " by", " pirates", ".", "\n", "\n", "This", " week", ",", " it", " announced", " a"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.166, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 84, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" speaking", " youth", " as", " un", "qualified", ",", " when", " the", " fact", " is", " it", " has", " nothing", " to", " do", " with", " the", " actual", " skills", " required", ".", "R", "aj", "esh", " Sharma", " joined", " Pat", "an", "j", "ali", " as", " senior", " manager", " of", " sales", " and", " marketing", " a", " month", " ago", " after", " 14", " years", " in", " companies", " such", " as", " Rev", "lon", " and", " J", "L", " Morrison", ",", " having", " been", " struck", " by", " a", " Discovery", " Channel", " report", " on", " the", " big", " profits", " that", " multinational", " F", "MC", "G", " companies", " made", " in", " India", ".", "\u00e2\u0122", "\u013e", "When", " I", " heard", " about", " Pat", "an", "j", "ali", ",", " I", " was", " willing", " to", " even", " take", " a", " pay", " cut", " to", " join", ",", "\u00e2\u0122", "\u013f", " he", " said", ".", " \u00e2\u0122", "\u013e", "Pat", "an", "j", "ali", " not", " only", " matched", " my", " compensation", " expectations", " but", " also", " offered", " a", " work", " culture", " rich", " in", " diversity", " of", " talent"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 67, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": -1, "bin_max": 3.429, "bin_contains": -1, "tokens": [" the", " principal", " to", " make", " sure", " the", " gaming", " console", " would", " be", " well", " used", ",", " Nintendo", " sent", " a", " DS", " and", " a", " \"", "game", " suitable", " for", " children", " to", " play", "\"", " to", " the", " school", ".", "\n", "\n", "Ms", " Murphy", " said", " it", " wasn", "'t", " common", " practice", " to", " give", " away", " free", " consoles", " \u2014", " or", " even", " reply", " \u2014", " to", " everyone", " who", " wrote", " to", " the", " company", ".", " She", " said", " it", " received", " \"", "h", "undreds", "\"", " of", " letters", " per", " day", ".", "\n", "\n", "\"", "Nintendo", " does", " not", " routinely", " give", " away", " products", " in", " response", " to", " letters", ".", " From", " time", " to", " time", ",", " we", " may", " donate", " product", " to", " schools", ",", " hospitals", " or", " retirement", " villages", ",\"", " she", " said", ".", "\n", "\n", "\"", "We", " receive", " a", " high", " number", " of", " letters", " on", " a", " daily", " basis", ",", " and", " unfortunately", " we", " are", " not"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.162, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 65, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 2.743, "bin_max": 3.429, "bin_contains": 1e-05, "tokens": ["about", " global", " warming", ",", " or", " the", " historical", " Jesus", ",", " or", " the", " way", " we", " raise", " our", " children", ".", " That", "\u00e2\u0122", "\u013b", "s", " why", " they", " need", " to", " have", " special", " protections", ".", "\n", "\n", "*", " *", " *", "\n", "\n", "But", " the", " tenure", " system", ",", " which", " is", " already", " being", " eroded", " by", " the", " growth", " of", " contingent", " labor", ",", " is", " not", " the", " only", " thing", " that", " is", " under", " assault", " in", " the", " top", "-", "down", ",", " corpor", "at", "ized", " academy", ".", " As", " Cary", " Nelson", " explains", " in", " No", " University", " Is", " an", " Island", " (", "2010", "),", " shared", " governance", "\u2014", "the", " principle", " that", " universities", " should", " be", " controlled", " by", " their", " faculties", ",", " which", " protects", " academic", " values", " against", " the", " enc", "roach", "ments", " of", " the", " spreadsheet", " brigade", "\u2014", "is", " also", " threatened", " by", " the", " changing", " structure", " of", " academic", " work", ".", " Cont", "ing"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.415, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 50, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 2.743, "bin_max": 3.429, "bin_contains": 1e-05, "tokens": [".", "7", ".", "2014", ")", " with", " two", " dozen", " top", " managers", " in", " tow", ",", " including", " five", " heads", " of", " DA", "X", "-", "listed", " companies", ".", " Since", " Tuesday", ",", " the", " final", " day", " of", " Merkel", "'s", " China", " visit", ",", " it", "'s", " been", " evident", " that", " the", " large", " German", " business", " contingent", " made", " less", " of", " an", " impression", " on", " the", " Chinese", " than", " some", " of", " the", " members", " of", " the", " delegation", " had", " hoped", ".", "\n", "\n", "In", " the", " end", ",", " the", " Chinese", " were", " not", " quite", " as", " open", " to", " everything", " the", " German", " business", " leaders", " had", " on", " their", " wish", " list", " as", " the", " Germans", " would", " have", " liked", ".", " Acc", "ords", " amount", "ing", " to", " 3", " billion", " euros", " ($", "4", " billion", ")", " were", " signed", ",", " which", " is", " not", " bad", " at", " all", ".", " However", ",", " it", "'s", " a", " relatively", " small", " package", " if", " you"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.411, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.109, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 44, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 2.743, "bin_max": 3.429, "bin_contains": 1e-05, "tokens": ["el", "tering", " gym", " bed", "e", "ck", "ed", " with", " championship", " banners", ",", " the", " governor", " is", " received", " by", " a", " bo", "ister", "ous", " contingent", " of", " his", " old", " friends", " from", " the", " class", " of", " 1980", ".", " \u00e2\u0122", "\u013e", "Lots", " of", " people", " have", " asked", " me", " over", " the", " course", " of", " last", " week", ",", " why", " here", "?", "\u00e2\u0122", "\u013f", " he", " says", ".", " \u00e2\u0122", "\u013e", "Why", " here", "?", " Because", " everything", " started", " here", " for", " me", ".", " The", " confidence", ".", " The", " education", ".", " The", " friends", ".", " The", " family", ".", " And", " the", " love", " that", " I", "\u00e2\u0122", "\u013b", "ve", " always", " felt", " for", " and", " from", " this", " community", ".", "\u00e2\u0122", "\u013f", " Outside", " the", " gym", ",", " protesters", " pick", "et", " the", " speech", ",", " waving", " signs", " that", " read", " B", "ULL", "Y", ".", "\n", "\n", "On", " the", " campaign", " trail", ",", " he", " keeps", " getting", " incred", "ulous", " questions"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 20, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 2.743, "bin_max": 3.429, "bin_contains": 1e-05, "tokens": [" if", " we", "\u00e2\u0122", "\u013b", "re", " going", " to", " reach", " the", " oft", "-", "repe", "ated", " goal", " of", " universal", " post", "secondary", " education", ",", " an", " objective", " that", " would", " double", " enroll", "ments", "\u2014", "we", "\u00e2\u0122", "\u013b", "re", " going", " to", " need", " a", " lot", " more", " teachers", ":", " well", " paid", ",", " institution", "ally", " supported", ",", " socially", " valued", ".", " As", " of", " 2003", " there", " were", " about", " 400", ",", "000", " tenure", "-", "track", " professors", " in", " the", " United", " States", " (", "as", " compared", " with", " about", " 6", " million", " primary", "-", " and", " secondary", "-", "school", " teachers", ").", " Between", " reducing", " class", " sizes", ",", " reversing", " the", " shift", " to", " contingent", " labor", " and", " beef", "ing", " up", " our", " college", "-", "com", "pletion", " rates", ",", " we", "\u00e2\u0122", "\u013b", "re", " going", " to", " need", " at", " least", " five", " times", " as", " many", ".", "\n", "\n", "So", " where", "\u00e2\u0122", "\u013b", "s", " the", " money"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 91, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 2.743, "bin_max": 3.429, "bin_contains": 1e-05, "tokens": [" the", " strategic", " channel", " at", " high", " risk", " of", " \u00e2\u0122", "\u013e", "war", ",", " strikes", ",", " terrorism", " and", " related", " per", "ils", "\u00e2\u0122", "\u013f", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "But", " it", "\u00e2\u0122", "\u013b", "s", " just", " a", " recommendation", ",", " and", " some", " under", "writers", " may", " not", " follow", " it", " for", " their", " very", " important", " clients", ",", "\u00e2\u0122", "\u013f", " Muk", "und", "an", " told", " Reuters", ".", " \u00e2\u0122", "\u013e", "Cost", "s", " have", " not", " gone", " up", ".", " Of", " course", ",", " if", " you", " are", " hijacked", " they", " go", " up", " quite", " significantly", ".", " But", " there", " is", " no", " contingent", " cost", " to", " piracy", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "S", "om", "ali", " pirates", " are", " currently", " holding", " about", " 130", " crew", " members", " hostage", " on", " at", " least", " seven", " vessels", ",", " including", " huge", " chemical", " tank", "ers", " and", " bulk", "-", "car", "riers", ".", " Gun", "men", " are", " holding", " vessels", " from", " Japan"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.429, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 82, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.686, "bin_max": 1.372, "bin_contains": 1e-05, "tokens": [" red", ".", "\n", "\n", "The", " 2014", "-", "15", " consolidated", " surplus", " of", " $", "1", ".", "1", " billion", " ends", " of", " string", " of", " six", " consecutive", " deficits", " and", " boosts", " the", " province", "\u00e2\u0122", "\u013b", "s", " contingency", " fund", " to", " $", "8", ".", "2", " billion", " \u2014", " a", " reserve", " Finance", " Minister", " Joe", " Cec", "i", " says", " will", " come", " in", " handy", " in", " dealing", " with", " the", " drop", " in", " non", "-", "ren", "ew", "able", " resource", " revenue", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "Going", " forward", " the", " climate", " \u2014", " the", " economy", " today", " \u2014", " is", " very", " different", " from", " what", " it", " was", " then", ",", "\u00e2\u0122", "\u013f", " he", " told", " reporters", " at", " the", " legislature", " Tuesday", " as", " the", " NDP", " government", " released", " the", " final", " year", "-", "end", " numbers", ".", "\n", "\n", "But", " Cec", "i", " said", " he", " was", " reluctant", " to", " use", " the", " cash", " savings", " to", " fill", " the", " projected", " revenue"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.03, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 30, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.686, "bin_max": 1.372, "bin_contains": 1e-05, "tokens": [" void", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "If", " we", " can", " find", " a", " way", " to", " achieve", " greater", " revenue", " stability", " without", " the", " use", " of", " the", " contingency", " account", " \u2014", " though", " it", "\u00e2\u0122", "\u013b", "s", " probably", " not", " possible", " \u2014", " that", " would", " be", " my", " first", " desire", ",", "\u00e2\u0122", "\u013f", " said", " the", " Calgary", " MLA", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "Phil", "os", "oph", "ically", ",", " I", " think", " conting", "encies", " are", " there", " to", " smooth", " things", " out", ".", " They", "\u00e2\u0122", "\u013b", "re", " not", " there", " to", " totally", " drain", " the", " bank", " account", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Although", " the", " price", " of", " oil", " has", " stayed", " below", " $", "60", " US", " per", " barrel", " for", " much", " of", " this", " year", ",", " Cec", "i", " said", " he", " hoped", " new", " corporate", " tax", " increases", " and", " hikes", " in", " personal", " income", " tax", " for", " the", " wealthiest", " Albert", "ans", " will", " meet", " some"], "values": [0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.029, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 22, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.686, "bin_max": 1.372, "bin_contains": 1e-05, "tokens": [" void", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "If", " we", " can", " find", " a", " way", " to", " achieve", " greater", " revenue", " stability", " without", " the", " use", " of", " the", " contingency", " account", " \u2014", " though", " it", "\u00e2\u0122", "\u013b", "s", " probably", " not", " possible", " \u2014", " that", " would", " be", " my", " first", " desire", ",", "\u00e2\u0122", "\u013f", " said", " the", " Calgary", " MLA", ".", "\n", "\n", "\u00e2\u0122", "\u013e", "Phil", "os", "oph", "ically", ",", " I", " think", " conting", "encies", " are", " there", " to", " smooth", " things", " out", ".", " They", "\u00e2\u0122", "\u013b", "re", " not", " there", " to", " totally", " drain", " the", " bank", " account", ".", "\u00e2\u0122", "\u013f", "\n", "\n", "Although", " the", " price", " of", " oil", " has", " stayed", " below", " $", "60", " US", " per", " barrel", " for", " much", " of", " this", " year", ",", " Cec", "i", " said", " he", " hoped", " new", " corporate", " tax", " increases", " and", " hikes", " in", " personal", " income", " tax", " for", " the", " wealthiest", " Albert", "ans", " will", " meet", " some"], "values": [0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.029, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.364, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 59, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.686, "bin_max": 1.372, "bin_contains": 1e-05, "tokens": [".", " So", " far", ",", " 1", ",", "160", " bottles", " of", " water", " have", " been", " delivered", " to", " campus", ",", " and", " additional", " distilled", " water", " for", " kitchen", " use", ".", "\n", "\n", "IU", " Health", " Ball", " Memorial", " Hospital", " has", " put", " in", " place", " contingency", " plans", " so", " that", " its", " patients", " and", " employees", " will", " not", " be", " impacted", ".", " Neil", " G", "iff", "ord", ",", " director", " of", " marketing", " and", " communication", ",", " said", " that", " the", " hospital", " has", " placed", " signs", " on", " public", " water", " f", "ount", "ains", ",", " has", " made", " bottled", " water", " available", " to", " patients", " and", " team", " members", " and", " is", " taking", " necessary", " precautions", " during", " food", " preparations", " and", " other", " day", "-", "to", "-", "day", " operations", ".", "\n", "\n", "El", "m", " Street", " Brewing", " Co", ".", " offered", " to", " assist", " those", " in", " need", " of", " water", " today", " at", " their", " business", " on", " 5", "19", " N", " Elm", " St", "."], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.028, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 35, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.686, "bin_contains": 0.9999800000000001, "tokens": [",", " which", " deep", "ened", " the", " communal", " divide", " at", " a", " time", " when", " a", " united", " front", " against", " colonial", " rule", " was", " needed", ".", " Post", " independence", ",", " Sav", "ark", "ar", " was", " also", " implicated", " in", " Mah", "at", "ma", " Gandhi", "\u00e2\u0122", "\u013b", "s", " murder", ".", "\n", "\n", "Such", " is", " the", " man", " who", " was", " declared", " by", " Prime", " Minister", " Narendra", " Modi", " to", " be", " \u00e2\u0122", "\u013e", "the", " true", " son", " of", " Mother", " India", " and", " inspiration", " for", " many", " people", "\u00e2\u0122", "\u013f", ",", " in", " his", " Twitter", " sal", "utation", " to", " Sav", "ark", "ar", " on", " his", " birth", " anniversary", " on", " May", " 28", " last", " year", ".", " In", " 2015", ",", " commemor", "ating", " Sav", "ark", "ar", " on", " his", " 132", "nd", " birth", " anniversary", ",", " the", " prime", " minister", " bowed", " before", " a", " portrait", " of", " the", " Hind", "ut", "va", " icon", " in", " remembrance", " of", " \u00e2\u0122", "\u013e", "his", " ind", "om", "itable"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 107, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.686, "bin_contains": 0.9999800000000001, "tokens": [",", " the", " story", " suggests", " ways", " that", " comics", " can", " be", " pushed", " in", " new", " directions", ",", " and", " how", " you", " can", " use", " pictures", " and", " words", ".", " That", "\u00e2\u0122", "\u013b", "s", " basically", " a", " wide", "-", "open", " art", " form", ".", " You", " can", " do", " anything", ".", " Put", " some", " pictures", " in", " any", " combination", ".", " That", "\u00e2\u0122", "\u013b", "s", " the", " part", " that", "\u00e2\u0122", "\u013b", "s", " exciting", " to", " me", "\u2014", "how", " limitless", " the", " possibilities", " are", ",", " as", " you", " sit", " at", " your", " table", " and", " think", " all", " day", ".", "\n", "\n", "P", "aste", ":", " The", " more", " read", " I", " read", " your", " comics", ",", " the", " more", " I", " realize", " how", " important", " a", " sense", " of", " place", " is", " to", " your", " narratives", ".", " It", "\u00e2\u0122", "\u013b", "s", " often", " one", " of", " the", " most", " important", " characters", " in", " your", " books", ",", " thinking", " back", " to", " the", " myriad", " international"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 111, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.686, "bin_contains": 0.9999800000000001, "tokens": [" misguided", ".", "\n", "\n", "Fl", "av", "io", " Vol", "pe", " and", " j", "erry", " D", "ias", ",", " pictured", " here", ",", " say", " critics", " of", " the", " government", "\u00e2\u0122", "\u013b", "s", " decision", " on", " the", " TPP", " are", " misguided", ".", " (", " Cole", " Bur", "ston", " /", " Toronto", " Star", " )", "\n", "\n", "The", " presidents", " of", " the", " Autom", "otive", " Parts", " Manufact", "urers", " Association", " and", " Un", "if", "or", ",", " Canada", "\u00e2\u0122", "\u013b", "s", " largest", " private", " sector", " union", " which", " represents", " aut", "ow", "ork", "ers", ",", " say", " that", "\u00e2\u0122", "\u013b", "s", " because", " the", " TPP", " is", " bad", " for", " the", " small", " and", " medium", "-", "sized", " auto", " parts", " companies", " and", " their", " employees", ".", " Read", " more", ":", " Canada", "\u00e2\u0122", "\u013b", "s", " decision", " to", " decline", " TPP", " agreement", " shouldn", "\u00e2\u0122", "\u013b", "t", " have", " been", " a", " surprise", ":", " Trudeau", "\n", "\n", "Article", " Continued", " Below", "\n", "\n", "Thomas"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 118, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.686, "bin_contains": 0.9999800000000001, "tokens": [" The", " loot", " tables", " will", " be", " getting", " an", " overhaul", " as", " well", " once", " we", " begin", " to", " implement", " our", " unique", " recipes", " and", " rare", " items", " to", " the", " game", ".", "\n", "\n", "N", "amed", " Unique", " Rare", " M", "obs", "\n", "\n", "We", " also", " will", " be", " implementing", " the", " mechanics", " for", " our", " new", " Named", " Unique", " Rare", " M", "obs", ".", " Although", " we", " may", " only", " get", " a", " few", " in", " with", " the", " next", " patch", ",", " our", " upcoming", " community", " competition", " will", " provide", " you", " with", " the", " opportunity", " to", " create", " some", " of", " the", " additions", " we", " will", " add", " throughout", " Early", " Access", ".", " Once", " the", " mechanics", " go", " into", " the", " game", ",", " it", " becomes", " much", " easier", " for", " us", " to", " add", " to", " this", " system", " and", " continuously", " implement", " new", " unique", " mobs", ".", "\n", "\n", "These", " mobs", " will", " be", " named", ",", " have", " stronger", " attributes", " as", " well", " as"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 98, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}, {"bin_min": 0.0, "bin_max": 0.686, "bin_contains": 0.9999800000000001, "tokens": [" Y", "P", " drafted", " a", " totally", " grat", "is", " Swamp", "ie", " for", " James", " to", " treasure", " for", " ever", ".", " It", " was", " all", " incredibly", " sweet", ".", "\n", "\n", "I", " then", " proceeded", " to", " walk", " away", " from", " Yan", "ick", "\u00e2\u0122", "\u013b", "s", " stall", " without", " paying", " for", " ANY", " of", " the", " stuff", " I", " had", " taken", "!", " Like", " a", " th", "ieving", " To", "e", " Rag", "**", ".", "\n", "\n", "Contact", "ing", " him", " on", " Twitter", " the", " same", " day", " to", " apologise", " this", " was", " the", " response", " I", " got", ":", "\n", "\n", "I", "\u00e2\u0122", "\u013b", "d", " like", " to", " nominate", " Yan", "ick", " Pa", "qu", "ette", " for", " the", " \u00e2\u0122", "\u013a", "Nic", "est", " Artist", " at", " LS", "CC", " Award", "\u00e2\u0122", "\u013b", "***", "\n", "\n", "*", "watching", " net", "flix", "\n", "\n", "**", " To", "e", " Rag", " noun", ",", " British", ",", " Inform", "al", " /", "t", "\u00c9", "\u013b", "\u00ca"], "values": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "qualifying_token_index": 9, "dfa_values": [], "dfa_maxValue": 0, "dfa_targetIndex": -1}]}]} \ No newline at end of file diff --git a/SAEDashboard/tests/acceptance/test_simple/skipped_indexes.json b/SAEDashboard/tests/acceptance/test_simple/skipped_indexes.json new file mode 100644 index 0000000000000000000000000000000000000000..322b29b74af48e4f7a1ee23958a6e8fcd1cab1ea --- /dev/null +++ b/SAEDashboard/tests/acceptance/test_simple/skipped_indexes.json @@ -0,0 +1 @@ +{"model_id": "gpt2-small", "layer": "0", "sae_set": "res-jb", "log_sparsity": 1, "skipped_indexes": []} \ No newline at end of file diff --git a/SAEDashboard/tests/benchmark/__init__.py b/SAEDashboard/tests/benchmark/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/SAEDashboard/tests/benchmark/test_benchmark_sae_vis_runner.py b/SAEDashboard/tests/benchmark/test_benchmark_sae_vis_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..2a7372c5b7d82ed0269eb9c7d19e62f033767066 --- /dev/null +++ b/SAEDashboard/tests/benchmark/test_benchmark_sae_vis_runner.py @@ -0,0 +1,165 @@ +# import os +# from pathlib import Path + +# import pytest +# import torch +# from huggingface_hub import hf_hub_download + +# # from sae_lens.training.session_loader import LMSparseAutoencoderSessionloader +# from sae_lens.training.activations_store import ActivationsStore +# from tqdm import tqdm +# from transformer_lens import HookedTransformer + +# from sae_dashboard.components_config import ( +# ActsHistogramConfig, +# Column, +# FeatureTablesConfig, +# LogitsHistogramConfig, +# LogitsTableConfig, +# SequencesConfig, +# ) +# from sae_dashboard.data_writing_fns import save_feature_centric_vis +# from sae_dashboard.layout import SaeVisLayoutConfig +# from sae_dashboard.sae_vis_data import SaeVisConfig +# from sae_dashboard.sae_vis_runner import SaeVisRunner + +# ROOT_DIR = Path(__file__).parent.parent + +# DEVICE = "mps" + +# TEST_FEATURES = list(range(128)) + + +# @pytest.fixture +# def model() -> HookedTransformer: +# model = HookedTransformer.from_pretrained("gpt2-small", device=DEVICE) +# return model + + +# @pytest.fixture() +# def sae(): +# # Get autoencoder +# hook_point = "blocks.0.hook_resid_pre" +# sae_path = hf_hub_download( +# repo_id="jbloom/GPT2-Small-SAEs-Reformatted", +# filename=f"{hook_point}/sae_weights.safetensors", +# ) +# hf_hub_download( +# repo_id="jbloom/GPT2-Small-SAEs-Reformatted", +# filename=f"{hook_point}/cfg.json", +# ) +# hf_hub_download( +# repo_id="jbloom/GPT2-Small-SAEs-Reformatted", +# filename=f"{hook_point}/sparsity.safetensors", +# ) +# gpt2_sae = SparseAutoencoder.load_from_pretrained( +# os.path.dirname(sae_path), device=DEVICE +# ) + +# return gpt2_sae + + +# @pytest.fixture +# def tokens(sae: SAE): +# def get_tokens( +# activation_store: ActivationsStore, +# n_batches_to_sample_from: int = 2**10, +# n_prompts_to_select: int = 4096 * 6, +# ): +# all_tokens_list = [] +# pbar = tqdm(range(n_batches_to_sample_from)) +# for _ in pbar: +# batch_tokens = activation_store.get_batch_tokens() +# batch_tokens = batch_tokens[torch.randperm(batch_tokens.shape[0])][ +# : batch_tokens.shape[0] +# ] +# all_tokens_list.append(batch_tokens) + +# all_tokens = torch.cat(all_tokens_list, dim=0) +# all_tokens = all_tokens[torch.randperm(all_tokens.shape[0])] +# return all_tokens[:n_prompts_to_select] + +# # Get tokens, set model +# loader = LMSparseAutoencoderSessionloader(sae.cfg) +# _, _, activation_store = loader.load_sae_training_group_session() +# all_tokens_gpt = get_tokens(activation_store) +# return all_tokens_gpt + + +# @pytest.fixture +# def cache_path() -> Path: +# return Path("tests/fixtures/cache_benchmark") + + +# @pytest.fixture +# def cfg(sae: SparseAutoencoder, cache_path: Path) -> SaeVisConfig: +# layout = SaeVisLayoutConfig( +# columns=[ +# Column( +# SequencesConfig( +# stack_mode="stack-all", +# buffer=None, # type: ignore +# compute_buffer=True, +# n_quantiles=5, +# top_acts_group_size=20, +# quantile_group_size=5, +# ), +# ActsHistogramConfig(), +# LogitsHistogramConfig(), +# LogitsTableConfig(), +# FeatureTablesConfig(n_rows=3), +# ) +# ] +# ) +# feature_vis_config_gpt = SaeVisConfig( +# hook_point=sae.cfg.hook_point, +# minibatch_size_features=128, +# minibatch_size_tokens=64, +# features=TEST_FEATURES, +# verbose=True, +# feature_centric_layout=layout, +# cache_dir=cache_path, +# device=DEVICE, +# perform_ablation_experiments=True, +# ) + +# return feature_vis_config_gpt + + +# def test_benchmark_sae_vis_runner( +# cfg: SaeVisConfig, +# sae: SparseAutoencoder, +# model: HookedTransformer, +# tokens: torch.Tensor, +# ): +# # we've deleted the casting code so I'll have to re-implement it here + +# if os.path.exists("memory_profile.bin"): +# os.remove("memory_profile.bin") + +# assert set( +# sae.state_dict().keys() +# ).issuperset( +# {"W_enc", "W_dec", "b_enc", "b_dec"} +# ), "If encoder isn't an AutoEncoder, it should have weights 'W_enc', 'W_dec', 'b_enc', 'b_dec'" +# d_in, d_hidden = sae.W_enc.shape +# device = cfg.device +# encoder_cfg = AutoEncoderConfig( +# d_in=d_in, d_hidden=d_hidden, dict_mult=d_hidden // d_in +# ) +# autoencoder = AutoEncoder(encoder_cfg).to(device) +# autoencoder.load_state_dict(sae.state_dict(), strict=False) + +# # with Tracker("memory_profile.bin"): +# sae_vis_data = SaeVisRunner(cfg).run( +# encoder=autoencoder, model=model, tokens=tokens +# ) + +# # to view the flamegraph, run the following: +# # ! memray flamegraph memory_profile.bin --output flamegraph.html +# # ! open flamegraph.html + +# save_path = "./gpt2_feature_centric_vis_test.html" +# save_feature_centric_vis(sae_vis_data, save_path) # type: ignore + +# # ! open gpt2_feature_centric_vis_test.html diff --git a/SAEDashboard/tests/conftest.py b/SAEDashboard/tests/conftest.py new file mode 100644 index 0000000000000000000000000000000000000000..a945472bb2e3fd4b818e01aac4c90629aecd5582 --- /dev/null +++ b/SAEDashboard/tests/conftest.py @@ -0,0 +1,54 @@ +import pytest +import torch +from jaxtyping import Int +from sae_lens.saes import StandardSAE, StandardSAEConfig +from torch import Tensor +from transformer_lens import HookedTransformer + + +@pytest.fixture +def model() -> HookedTransformer: + model = HookedTransformer.from_pretrained("tiny-stories-1M", device="cpu") + model.eval() + return model + + +@pytest.fixture() +def tokens(model: HookedTransformer) -> Int[Tensor, "batch seq"]: + return model.to_tokens( + [ + "But what about second breakfast?" * 3, + "Nothing is cheesier than cheese." * 3, + ] + ) + + +@pytest.fixture +def autoencoder() -> StandardSAE: + cfg = StandardSAEConfig( + d_in=64, + d_sae=128, + apply_b_dec_to_input=False, + dtype="float32", + normalize_activations="none", + device="cpu", + ) + + autoencoder = StandardSAE(cfg) + # set weights and biases to hardcoded values so tests are consistent + seed1 = torch.tensor([0.1, -0.2, 0.3, -0.4] * 16) # 64 + seed2 = torch.tensor([0.2, -0.1, 0.4, -0.2] * 32) # 64 x 2 + seed3 = torch.tensor([0.3, -0.3, 0.6, -0.6] * 16) # 64 + seed4 = torch.tensor([-0.4, 0.4, 0.8, -0.8] * 32) # 64 x 2 + W_enc_base = torch.cat([torch.eye(64), torch.eye(64)], dim=-1) + W_dec_base = torch.cat([torch.eye(64), torch.eye(64)], dim=0) + autoencoder.load_state_dict( + { + "W_enc": W_enc_base + torch.outer(seed1, seed2), + "W_dec": W_dec_base + torch.outer(seed4, seed3), + "b_enc": torch.zeros_like(autoencoder.b_enc) + 0.5, + "b_dec": torch.zeros_like(autoencoder.b_dec) + 0.3, + } + ) + + return autoencoder diff --git a/SAEDashboard/tests/helpers.py b/SAEDashboard/tests/helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..6d3c1aeb161f72002974efe3e8d3c080be1c0104 --- /dev/null +++ b/SAEDashboard/tests/helpers.py @@ -0,0 +1,27 @@ +from typing import Any + +from sae_dashboard.sae_vis_data import SaeVisConfig + + +def round_floats_deep(obj: Any, ndigits: int = 3) -> Any: + if isinstance(obj, float): + return round(obj, ndigits) + if isinstance(obj, dict): + return {k: round_floats_deep(v, ndigits=ndigits) for k, v in obj.items()} + if isinstance(obj, list): + return [round_floats_deep(v, ndigits=ndigits) for v in obj] + return obj + + +def build_sae_vis_cfg(**kwargs: Any) -> SaeVisConfig: + """ + Helper to create a mock instance of SaeVisConfig for testing + """ + mock_cfg = SaeVisConfig( + hook_point="blocks.0.hook_resid_pre", + features=list(range(32)), + ) + + for key, val in kwargs.items(): + setattr(mock_cfg, key, val) + return mock_cfg diff --git a/SAEDashboard/tests/integration/test_sae_vis_integration.py b/SAEDashboard/tests/integration/test_sae_vis_integration.py new file mode 100644 index 0000000000000000000000000000000000000000..9660ff4c1b0cca070232563e5540780aa97444f7 --- /dev/null +++ b/SAEDashboard/tests/integration/test_sae_vis_integration.py @@ -0,0 +1,143 @@ +from typing import Callable, Tuple + +import pytest +import torch +from sae_lens import SAE, ActivationsStore +from transformer_lens import HookedTransformer + +# from sae_dashboard.feature_data import FeatureData +from sae_dashboard.sae_vis_data import SaeVisConfig, SaeVisData +from sae_dashboard.sae_vis_runner import SaeVisRunner +from sae_dashboard.utils_fns import FeatureStatistics, get_tokens + + +@pytest.fixture +def setup_test_environment() -> ( # type: ignore + Callable[[], Tuple[HookedTransformer, SAE, torch.Tensor]] # type: ignore +): + def _setup() -> Tuple[HookedTransformer, SAE, torch.Tensor]: # type: ignore + # Set up a small-scale test environment + device = "cpu" # Use CUDA for testing + model = HookedTransformer.from_pretrained("gpt2-small", device=device) + sae, _, _ = SAE.from_pretrained( + release="gpt2-small-hook-z-kk", sae_id="blocks.5.hook_z", device=device + ) + sae.fold_W_dec_norm() # type: ignore + + # Create a small token dataset + activations_store = ActivationsStore.from_sae( + model=model, + sae=sae, + streaming=True, + store_batch_size_prompts=16, + n_batches_in_buffer=8, + device=device, + ) # type: ignore + + token_dataset = get_tokens(activations_store, 256) + insert = model.to_tokens("Stalinists shriek in the ears of the police that") + token_dataset[0, :13] = insert[0] + + return model, sae, token_dataset # type: ignore + + return _setup + + +def test_sae_vis_runner_integration( + setup_test_environment: Callable[[], Tuple[HookedTransformer, SAE, torch.Tensor]], # type: ignore +): + model, sae, token_dataset = setup_test_environment() + + # Configure SaeVisConfig for testing + test_feature_idx = list(range(64)) # Test with 16 features + feature_vis_config = SaeVisConfig( + hook_point=sae.cfg.hook_name, + features=test_feature_idx, + minibatch_size_features=32, + minibatch_size_tokens=256, + verbose=False, + device="cpu", + # cache_dir=Path("test_activations_cache"), + dtype="float32", + use_dfa=True, + ) + + # Run SaeVisRunner + data = SaeVisRunner(feature_vis_config).run( + encoder=sae, + model=model, # type: ignore + tokens=token_dataset, + ) + # Verify the structure and content of the resulting SaeVisData object + assert isinstance(data, SaeVisData) + assert len(data.feature_data_dict) == len(test_feature_idx) + + for feat_idx, feature_data in data.feature_data_dict.items(): + assert feat_idx in test_feature_idx + + # Check feature_tables_data + assert hasattr(feature_data, "feature_tables_data") + assert hasattr(feature_data.feature_tables_data, "neuron_alignment_indices") + assert hasattr(feature_data.feature_tables_data, "neuron_alignment_values") + assert isinstance( + feature_data.feature_tables_data.neuron_alignment_indices, list + ) + assert isinstance( + feature_data.feature_tables_data.neuron_alignment_values, list + ) + + # Check logits_histogram_data + assert hasattr(feature_data, "logits_histogram_data") + assert hasattr(feature_data.logits_histogram_data, "bar_heights") + assert hasattr(feature_data.logits_histogram_data, "bar_values") + assert isinstance(feature_data.logits_histogram_data.bar_heights, list) + assert isinstance(feature_data.logits_histogram_data.bar_values, list) + + # Check acts_histogram_data + assert hasattr(feature_data, "acts_histogram_data") + assert hasattr(feature_data.acts_histogram_data, "bar_heights") + assert hasattr(feature_data.acts_histogram_data, "bar_values") + assert isinstance(feature_data.acts_histogram_data.bar_heights, list) + assert isinstance(feature_data.acts_histogram_data.bar_values, list) + + # Check sequence_data + # assert hasattr(feature_data, 'sequence_data') + # assert len(feature_data.sequence_data.seq_group_data) > 0 + # for seq_group in feature_data.sequence_data.seq_group_data: + # assert hasattr(seq_group, 'seq_data') + # assert len(seq_group.seq_data) > 0 + + # Check DFA data + if feature_vis_config.use_dfa: + assert hasattr(feature_data, "dfa_data") + assert feature_data.dfa_data is not None + assert isinstance(feature_data.dfa_data, dict) + + for prompt_idx, prompt_dfa in feature_data.dfa_data.items(): + assert isinstance(prompt_idx, int) + assert isinstance(prompt_dfa, dict) + assert "dfaValues" in prompt_dfa + assert "dfaTargetIndex" in prompt_dfa + assert "dfaMaxValue" in prompt_dfa + + assert isinstance(prompt_dfa["dfaValues"], list) + assert isinstance(prompt_dfa["dfaTargetIndex"], int) + assert isinstance(prompt_dfa["dfaMaxValue"], float) + + assert ( + len(prompt_dfa["dfaValues"]) == token_dataset.shape[1] + ) # Should match sequence length + assert 0 <= prompt_dfa["dfaTargetIndex"] < token_dataset.shape[1] + assert prompt_dfa["dfaMaxValue"] == max(prompt_dfa["dfaValues"]) + + # Additional checks for overall structure + assert hasattr(data, "cfg") + assert isinstance(data.cfg, SaeVisConfig) + assert hasattr(data, "feature_stats") + assert isinstance(data.feature_stats, FeatureStatistics) + + # Check that the number of prompts in DFA data matches the input + if feature_vis_config.use_dfa: + for feature_data in data.feature_data_dict.values(): + assert feature_data.dfa_data + assert len(feature_data.dfa_data) == token_dataset.shape[0] diff --git a/SAEDashboard/tests/integration/test_transcoder_integration.py b/SAEDashboard/tests/integration/test_transcoder_integration.py new file mode 100644 index 0000000000000000000000000000000000000000..97bbb7b5a62d36f16f219811381c6094f93d2ba8 --- /dev/null +++ b/SAEDashboard/tests/integration/test_transcoder_integration.py @@ -0,0 +1,165 @@ +"""Integration tests for transcoder functionality.""" + +import os +from pathlib import Path + +import pytest +import torch + +from sae_dashboard.neuronpedia.neuronpedia_runner import ( + NeuronpediaRunner, + NeuronpediaRunnerConfig, +) + + +@pytest.mark.skipif( + not torch.cuda.is_available() and not torch.backends.mps.is_available(), + reason="Requires GPU for integration test", +) +class TestTranscoderIntegration: + """Integration tests that actually load and run transcoders.""" + + def test_transcoder_dashboard_generation(self, tmp_path): # type: ignore + """Test end-to-end transcoder dashboard generation.""" + # Configure for minimal test + config = NeuronpediaRunnerConfig( + sae_set="gemma-scope-2b-pt-transcoders", + sae_path="layer_0/width_16k/average_l0_76", # Use layer 0 with correct L0 value + np_set_name="test-integration", + from_local_sae=False, + huggingface_dataset_path="monology/pile-uncopyrighted", + sae_dtype="float32", + model_dtype="float32", + outputs_dir=str(tmp_path), + sparsity_threshold=1, + n_prompts_total=32, # Very small for testing + n_tokens_in_prompt=64, # Smaller context + n_prompts_in_forward_pass=16, + n_features_at_a_time=2, # Just 2 features + start_batch=0, + end_batch=1, # Single batch + use_wandb=False, + use_transcoder=True, + ) + + # Create runner and run + runner = NeuronpediaRunner(config) + + # Verify transcoder was loaded + assert hasattr(runner.sae.cfg, "hook_name_out") + assert "transcoder" in str(runner.sae.cfg.architecture).lower() + + # Run dashboard generation + runner.run() + + # Check outputs were created + output_dir = Path(runner.cfg.outputs_dir) + assert output_dir.exists() + assert (output_dir / "batch-0.json").exists() + assert (output_dir / "run_settings.json").exists() + + # Load and verify JSON structure + import json + + with open(output_dir / "batch-0.json") as f: + data = json.load(f) + assert "features" in data + assert len(data["features"]) == 2 # We requested 2 features + assert data["model_id"] == "gemma-2-2b" + assert data["layer"] == 0 + + def test_transcoder_vs_sae_differences(self, tmp_path): # type: ignore + """Test that transcoders are handled differently from standard SAEs.""" + # Test with transcoder + transcoder_config = NeuronpediaRunnerConfig( + sae_set="gemma-scope-2b-pt-transcoders", + sae_path="layer_0/width_16k/average_l0_76", + np_set_name="test-transcoder", + from_local_sae=False, + huggingface_dataset_path="monology/pile-uncopyrighted", + outputs_dir=str(tmp_path / "transcoder"), + n_prompts_total=32, + use_transcoder=True, + use_wandb=False, + ) + + # Test with standard SAE + sae_config = NeuronpediaRunnerConfig( + sae_set="gemma-scope-2b-pt-res", + sae_path="layer_0/width_16k/average_l0_105", + np_set_name="test-sae", + from_local_sae=False, + huggingface_dataset_path="monology/pile-uncopyrighted", + outputs_dir=str(tmp_path / "sae"), + n_prompts_total=32, + use_transcoder=False, + use_wandb=False, + ) + + # Create runners + transcoder_runner = NeuronpediaRunner(transcoder_config) + sae_runner = NeuronpediaRunner(sae_config) + + # Verify different handling + # Transcoders should have hook_name_out + assert hasattr(transcoder_runner.sae.cfg, "hook_name_out") + assert not hasattr(sae_runner.sae.cfg, "hook_name_out") + + # Both should have hook_name in metadata + assert transcoder_runner.hook_name + assert sae_runner.hook_name + + # Architecture should be different + transcoder_arch = transcoder_runner.sae.cfg.architecture + if callable(transcoder_arch): + transcoder_arch = transcoder_arch() + assert "transcoder" in transcoder_arch.lower() # type: ignore + + sae_arch = sae_runner.sae.cfg.architecture + if callable(sae_arch): + sae_arch = sae_arch() + assert "transcoder" not in sae_arch.lower() # type: ignore + + +@pytest.mark.skipif( + "GITHUB_ACTIONS" in os.environ, reason="Skip heavy integration tests in CI" +) +class TestTranscoderEdgeCases: + """Test edge cases and error handling for transcoders.""" + + def test_invalid_transcoder_config(self): + """Test handling of invalid transcoder configurations.""" + with pytest.raises(Exception): # Could be ImportError or other + config = NeuronpediaRunnerConfig( + sae_set="invalid-set", + sae_path="invalid-path", + np_set_name="test", + huggingface_dataset_path="monology/pile-uncopyrighted", + outputs_dir="test_outputs/", + use_transcoder=True, + use_wandb=False, + ) + _ = NeuronpediaRunner(config) + + def test_transcoder_with_custom_dtype(self, tmp_path): # type: ignore + """Test transcoder loading with custom dtype.""" + config = NeuronpediaRunnerConfig( + sae_set="gemma-scope-2b-pt-transcoders", + sae_path="layer_0/width_16k/average_l0_76", + np_set_name="test-dtype", + from_local_sae=False, + huggingface_dataset_path="monology/pile-uncopyrighted", + sae_dtype="float16", # Test with float16 + model_dtype="float32", + outputs_dir=str(tmp_path), + n_prompts_total=16, + n_features_at_a_time=1, + end_batch=1, + use_transcoder=True, + use_wandb=False, + ) + + runner = NeuronpediaRunner(config) + + # Verify dtype was applied + assert runner.sae.W_dec.dtype == torch.float16 diff --git a/SAEDashboard/tests/unit/test_clt_runner.py b/SAEDashboard/tests/unit/test_clt_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..3ab9dfe0c60c0487a2e4b25eb8fe36e055542fb1 --- /dev/null +++ b/SAEDashboard/tests/unit/test_clt_runner.py @@ -0,0 +1,300 @@ +"""Tests for CLT (Cross-Layer Transcoder) support in Neuronpedia runner.""" + +import json +import tempfile +from pathlib import Path +from unittest.mock import MagicMock + +import torch + +from sae_dashboard.neuronpedia.neuronpedia_runner_config import NeuronpediaRunnerConfig + + +class TestCLTLoading: + """Test CLT loading and configuration.""" + + def test_clt_config_enables_clt(self): + """Test that use_clt=True enables CLT mode.""" + cfg = NeuronpediaRunnerConfig( + sae_set="test", + sae_path="test_path", + model_id="gpt2", + huggingface_dataset_path="test", + outputs_dir="test_outputs", + use_clt=True, + clt_layer_idx=5, + ) + assert cfg.use_clt is True + assert cfg.clt_layer_idx == 5 + + def test_clt_requires_layer_idx(self): + """Test that CLT requires layer index to be specified.""" + cfg = NeuronpediaRunnerConfig( + sae_set="test", + sae_path="test_path", + model_id="gpt2", + huggingface_dataset_path="test", + outputs_dir="test_outputs", + use_clt=True, + clt_layer_idx=None, # This should be allowed but will fail at load time + ) + assert cfg.clt_layer_idx is None + + def test_clt_weights_filename(self): + """Test CLT weights filename configuration.""" + cfg = NeuronpediaRunnerConfig( + sae_set="test", + sae_path="test_path", + model_id="gpt2", + huggingface_dataset_path="test", + outputs_dir="test_outputs", + use_clt=True, + clt_weights_filename="model.safetensors", + ) + assert cfg.clt_weights_filename == "model.safetensors" + + +class TestCLTWrapperIntegration: + """Test CLTLayerWrapper integration.""" + + def test_clt_wrapper_initialization(self): + """Test CLTLayerWrapper can be imported and basic initialization.""" + from sae_dashboard.clt_layer_wrapper import CLTLayerWrapper + + # Mock CLT model + mock_clt = MagicMock() + mock_clt.config.num_layers = 12 + mock_clt.config.num_features = 32768 + mock_clt.config.d_model = 768 + mock_clt.config.activation_fn = "jumprelu" + mock_clt.config.normalization_method = "none" + mock_clt.config.tl_input_template = "blocks.{}.ln2.hook_normalized" + mock_clt.device = torch.device("cpu") + mock_clt.dtype = torch.float32 + mock_clt.log_threshold = torch.log( + torch.ones(12, 32768) * 0.1 + ) # Mock log_threshold + + # Mock encoder and decoder modules + mock_encoder = MagicMock() + mock_encoder.weight = torch.randn(32768, 768) + mock_encoder.bias_param = torch.zeros(32768) + mock_clt.encoder_module.encoders = {5: mock_encoder} + + mock_decoder = MagicMock() + mock_decoder.weight = torch.randn(768, 32768) + mock_decoder.bias_param = torch.zeros(768) + mock_clt.decoder_module.decoders = {"5->5": mock_decoder} + + # Create wrapper + wrapper = CLTLayerWrapper(mock_clt, layer_idx=5) + + assert wrapper.layer_idx == 5 + assert wrapper.device == torch.device("cpu") + assert wrapper.dtype == torch.float32 + assert wrapper.W_enc.shape == (768, 32768) # Transposed + assert wrapper.W_dec.shape == (32768, 768) # Transposed + + def test_clt_wrapper_config(self): + """Test CLTWrapperConfig creation.""" + from sae_dashboard.clt_layer_wrapper import CLTWrapperConfig + + cfg = CLTWrapperConfig( + d_sae=32768, + d_in=768, + hook_name="blocks.5.ln2.hook_normalized", + hook_layer=5, + dtype="float32", + device="cpu", + ) + + assert cfg.d_sae == 32768 + assert cfg.d_in == 768 + assert cfg.hook_name == "blocks.5.ln2.hook_normalized" + assert cfg.hook_layer == 5 + + # Test to_dict method + cfg_dict = cfg.to_dict() + assert isinstance(cfg_dict, dict) + assert cfg_dict["d_sae"] == 32768 + + def test_clt_wrapper_encode(self): + """Test CLTLayerWrapper encode method.""" + from sae_dashboard.clt_layer_wrapper import CLTLayerWrapper + + # Mock CLT model + mock_clt = MagicMock() + mock_clt.config.num_layers = 12 + mock_clt.config.num_features = 32768 + mock_clt.config.d_model = 768 + mock_clt.config.activation_fn = "relu" # Use relu for simplicity + mock_clt.config.normalization_method = "none" + mock_clt.config.tl_input_template = "blocks.{}.ln2.hook_normalized" + mock_clt.device = torch.device("cpu") + mock_clt.dtype = torch.float32 + + # Mock encoder and decoder + mock_encoder = MagicMock() + mock_encoder.weight = torch.eye(10, 768) # 10x768 (d_sae x d_model) + mock_encoder.bias_param = torch.zeros(10) + mock_clt.encoder_module.encoders = {5: mock_encoder} + + mock_decoder = MagicMock() + mock_decoder.weight = torch.eye(768, 10) # 768x10 (d_model x d_sae) + mock_decoder.bias_param = torch.zeros(768) + mock_clt.decoder_module.decoders = {"5->5": mock_decoder} + + # Create wrapper + wrapper = CLTLayerWrapper(mock_clt, layer_idx=5) + + # Test encode + x = torch.randn(2, 5, 768) # batch x seq x d_model + encoded = wrapper.encode(x) + + assert encoded.shape == (2, 5, 10) # batch x seq x d_sae + assert torch.all(encoded >= 0) # ReLU should make all values non-negative + + +class TestCLTConfig: + """Test CLT configuration handling.""" + + def test_clt_config_loading(self): + """Test loading CLT configuration from cfg.json.""" + with tempfile.TemporaryDirectory() as tmpdir: + # Create a mock cfg.json + cfg_data = { + "num_features": 32768, + "num_layers": 12, + "d_model": 768, + "model_name": "gpt2", + "normalization_method": "mean_std", + "activation_fn": "jumprelu", + "tl_input_template": "blocks.{}.ln2.hook_normalized", + "tl_output_template": "blocks.{}.mlp.hook_post", + } + + cfg_path = Path(tmpdir) / "cfg.json" + with open(cfg_path, "w") as f: + json.dump(cfg_data, f) + + # Load and verify + with open(cfg_path, "r") as f: + loaded_cfg = json.load(f) + + assert loaded_cfg["num_features"] == 32768 + assert loaded_cfg["tl_input_template"] == "blocks.{}.ln2.hook_normalized" + + def test_clt_normalization_stats(self): + """Test loading CLT normalization statistics.""" + with tempfile.TemporaryDirectory() as tmpdir: + # Create mock norm_stats.json + norm_stats = { + "5": { + "inputs": { + "mean": [0.1] * 768, + "std": [1.0] * 768, + } + } + } + + stats_path = Path(tmpdir) / "norm_stats.json" + with open(stats_path, "w") as f: + json.dump(norm_stats, f) + + # Load and verify + with open(stats_path, "r") as f: + loaded_stats = json.load(f) + + assert "5" in loaded_stats + assert len(loaded_stats["5"]["inputs"]["mean"]) == 768 + assert len(loaded_stats["5"]["inputs"]["std"]) == 768 + + +class TestCLTFeatureMasking: + """Test feature masking with CLT wrapper.""" + + def test_clt_wrapper_fold_w_dec_norm(self): + """Test fold_W_dec_norm method on CLT wrapper.""" + from sae_dashboard.clt_layer_wrapper import CLTLayerWrapper + + # Mock CLT model + mock_clt = MagicMock() + mock_clt.config.num_layers = 12 + mock_clt.config.num_features = 10 + mock_clt.config.d_model = 5 + mock_clt.config.activation_fn = "relu" + mock_clt.config.normalization_method = "none" + mock_clt.device = torch.device("cpu") + mock_clt.dtype = torch.float32 + + # Create simple weights + W_enc = torch.ones(10, 5) * 2.0 # Will be transposed to 5x10 + W_dec = torch.ones(5, 10) * 3.0 # Will be transposed to 10x5 + + mock_encoder = MagicMock() + mock_encoder.weight = W_enc + mock_encoder.bias_param = torch.ones(10) * 0.5 + mock_clt.encoder_module.encoders = {0: mock_encoder} + + mock_decoder = MagicMock() + mock_decoder.weight = W_dec + mock_decoder.bias_param = torch.zeros(5) + mock_clt.decoder_module.decoders = {"0->0": mock_decoder} + + # Create wrapper + wrapper = CLTLayerWrapper(mock_clt, layer_idx=0) + + # Original shapes after transpose + assert wrapper.W_enc.shape == (5, 10) + assert wrapper.W_dec.shape == (10, 5) + + # Fold W_dec norm + wrapper.fold_W_dec_norm() + + # Check that folding was applied + assert wrapper._W_dec_folded is True + + # W_dec norms should be sqrt(3^2 * 5) = sqrt(45) ≈ 6.71 + expected_norm = torch.sqrt(torch.tensor(45.0)) + + # W_enc should be scaled by the norms + expected_w_enc = torch.ones(5, 10) * 2.0 * expected_norm + assert torch.allclose(wrapper.W_enc, expected_w_enc, rtol=1e-4) + + def test_clt_wrapper_jumprelu_threshold(self): + """Test JumpReLU threshold handling in CLT wrapper.""" + from sae_dashboard.clt_layer_wrapper import CLTLayerWrapper + + # Mock CLT model with JumpReLU + mock_clt = MagicMock() + mock_clt.config.num_layers = 12 + mock_clt.config.num_features = 10 + mock_clt.config.d_model = 5 + mock_clt.config.activation_fn = "jumprelu" + mock_clt.config.normalization_method = "none" + mock_clt.device = torch.device("cpu") + mock_clt.dtype = torch.float32 + + # Mock log_threshold + mock_clt.log_threshold = torch.log( + torch.ones(12, 10) * 0.1 + ) # 12 layers, 10 features + + # Mock encoder and decoder + mock_encoder = MagicMock() + mock_encoder.weight = torch.ones(10, 5) + mock_encoder.bias_param = torch.zeros(10) + mock_clt.encoder_module.encoders = {5: mock_encoder} + + mock_decoder = MagicMock() + mock_decoder.weight = torch.ones(5, 10) + mock_decoder.bias_param = torch.zeros(5) + mock_clt.decoder_module.decoders = {"5->5": mock_decoder} + + # Create wrapper + wrapper = CLTLayerWrapper(mock_clt, layer_idx=5) + + # Check threshold was initialized + assert wrapper.threshold is not None + assert wrapper.threshold.shape == (10,) + assert torch.allclose(wrapper.threshold, torch.ones(10) * 0.1, rtol=1e-4) diff --git a/SAEDashboard/tests/unit/test_dfa_calculator.py b/SAEDashboard/tests/unit/test_dfa_calculator.py new file mode 100644 index 0000000000000000000000000000000000000000..ff4f8ac96816cac56ac896dbdc5aa2eba0ff34b3 --- /dev/null +++ b/SAEDashboard/tests/unit/test_dfa_calculator.py @@ -0,0 +1,309 @@ +import time + +import numpy as np +import pytest +import torch +from sae_lens import SAE +from transformer_lens import HookedTransformer + +from sae_dashboard.dfa_calculator import DFACalculator + + +def test_dfa_calculator_initialization(model: HookedTransformer, autoencoder: SAE): # type: ignore + calculator = DFACalculator(model, autoencoder) + assert calculator.model == model + assert calculator.sae == autoencoder + + +def test_dfa_calculation_shape( + model: HookedTransformer, autoencoder: SAE, tokens: torch.Tensor # type: ignore +): + calculator = DFACalculator(model, autoencoder) + + with torch.no_grad(): + _, cache = model.run_with_cache(tokens) + + layer_num = 0 + indices = [0, 1, 2] # Test with first three features + max_value_indices = torch.randint( + 0, tokens.shape[1], (tokens.shape[0], len(indices)) + ) + + results = calculator.calculate(cache, layer_num, indices, max_value_indices) + + assert len(results) == len(indices) # One result per feature + for feature_idx, feature_results in results.items(): + assert feature_idx in indices + assert feature_results.shape[0] == tokens.shape[0] # One result per prompt + assert "dfa_values" in feature_results.dtype.names + assert "dfa_target_index" in feature_results.dtype.names + assert "dfa_max_value" in feature_results.dtype.names + assert ( + feature_results["dfa_values"].shape[1] == tokens.shape[1] + ) # Should match sequence length + + +def test_dfa_calculation_values( + model: HookedTransformer, autoencoder: SAE, tokens: torch.Tensor # type: ignore +): + calculator = DFACalculator(model, autoencoder) + + with torch.no_grad(): + _, cache = model.run_with_cache(tokens) + + layer_num = 0 + indices = [0] + max_value_indices = torch.randint( + 0, tokens.shape[1], (tokens.shape[0], len(indices)) + ) + + results = calculator.calculate(cache, layer_num, indices, max_value_indices) + + assert len(results) == 1 + feature_results = results[0] + assert feature_results.shape[0] == tokens.shape[0] + for prompt_result in feature_results: + assert not np.all(prompt_result["dfa_values"] == 0) + assert prompt_result["dfa_max_value"] == np.max(prompt_result["dfa_values"]) + + +def test_dfa_calculation_multiple_features( + model: HookedTransformer, autoencoder: SAE, tokens: torch.Tensor # type: ignore +): + calculator = DFACalculator(model, autoencoder) + + with torch.no_grad(): + _, cache = model.run_with_cache(tokens) + + layer_num = 0 + indices = [0, 1, 2] + max_value_indices = torch.randint( + 0, tokens.shape[1], (tokens.shape[0], len(indices)) + ) + + results = calculator.calculate(cache, layer_num, indices, max_value_indices) + + assert len(results) == len(indices) + for feature_idx, feature_results in results.items(): + assert feature_results.shape[0] == tokens.shape[0] + for prompt_idx, prompt_result in enumerate(feature_results): + assert ( + prompt_result["dfa_target_index"] + == max_value_indices[prompt_idx, indices.index(feature_idx)].item() + ) + + +def test_dfa_calculation_different_layers( + model: HookedTransformer, autoencoder: SAE, tokens: torch.Tensor # type: ignore +): + calculator = DFACalculator(model, autoencoder) + + with torch.no_grad(): + _, cache = model.run_with_cache(tokens) + + indices = [0] + max_value_indices = torch.randint( + 0, tokens.shape[1], (tokens.shape[0], len(indices)) + ) + + results_layer0 = calculator.calculate(cache, 0, indices, max_value_indices) + results_layer1 = calculator.calculate(cache, 1, indices, max_value_indices) + + assert not np.array_equal( + results_layer0[0]["dfa_values"], results_layer1[0]["dfa_values"] + ) + + +def test_dfa_calculation_edge_cases( + model: HookedTransformer, autoencoder: SAE, tokens: torch.Tensor # type: ignore +): + calculator = DFACalculator(model, autoencoder) + + with torch.no_grad(): + _, cache = model.run_with_cache(tokens) + + # Test with empty indices list + results = calculator.calculate(cache, 0, [], torch.empty(0)) + assert results == {} # Expect an empty dictionary + + # Test with out of range index + with pytest.raises(IndexError): + calculator.calculate( + cache, + 0, + [autoencoder.cfg.d_sae], + torch.randint(0, tokens.shape[1], (tokens.shape[0], 1)), + ) + + # Test with invalid layer number + with pytest.raises(KeyError): + calculator.calculate( + cache, + model.cfg.n_layers, + [0], + torch.randint(0, tokens.shape[1], (tokens.shape[0], 1)), + ) + + # Test with valid inputs + indices = [0] + max_value_indices = torch.randint( + 0, tokens.shape[1], (tokens.shape[0], len(indices)) + ) + results = calculator.calculate(cache, 0, indices, max_value_indices) + assert len(results) == len(indices) + assert all( + isinstance(feature_results, np.ndarray) for feature_results in results.values() + ) + assert all( + feature_results.shape[0] == tokens.shape[0] + for feature_results in results.values() + ) + + +def test_functional_equivalence(model: HookedTransformer, autoencoder: SAE): # type: ignore + calculator = DFACalculator(model, autoencoder) + + # Use the actual model configuration + batch_size, seq_len = 2, 10 + n_heads, d_head = model.cfg.n_heads, model.cfg.d_head + + attn_weights = torch.rand(batch_size, n_heads, seq_len, seq_len) + v = torch.rand(batch_size, seq_len, n_heads, d_head) + feature_indices = [0, 1, 2] + + # Calculate results using both methods + standard_result = calculator.calculate_standard_intermediate_tensor( + attn_weights, v, feature_indices + ) + + # Temporarily set use_gqa to True and use dummy values + calculator.use_gqa = True + n_kv_heads = n_heads // 2 # Dummy value for GQA + v_gqa = torch.rand(batch_size, seq_len, n_kv_heads, d_head) + gqa_result = calculator.calculate_gqa_intermediate_tensor( + attn_weights, v_gqa, feature_indices + ) + calculator.use_gqa = False + + # Check that the results have the same shape + assert standard_result.shape == gqa_result.shape + + # We can't check for exact equality due to different computations, but we can check basic properties + assert not torch.isnan(standard_result).any() + assert not torch.isnan(gqa_result).any() + assert not torch.isinf(standard_result).any() + assert not torch.isinf(gqa_result).any() + + +def test_performance_comparison(model: HookedTransformer, autoencoder: SAE): # type: ignore + calculator = DFACalculator(model, autoencoder) + + # Use the actual model configuration + batch_size, seq_len = 4, 512 + n_heads, d_head = model.cfg.n_heads, model.cfg.d_head + + attn_weights = torch.rand(batch_size, n_heads, seq_len, seq_len) + v = torch.rand(batch_size, seq_len, n_heads, d_head) + feature_indices = list( + range(min(100, autoencoder.cfg.d_sae)) + ) # Test with up to 100 features + + # Measure time for standard method + start_time = time.time() + _ = calculator.calculate_standard_intermediate_tensor( + attn_weights, v, feature_indices + ) + standard_time = time.time() - start_time + + # Measure time for GQA method with dummy values + calculator.use_gqa = True + n_kv_heads = n_heads // 2 # Dummy value for GQA + v_gqa = torch.rand(batch_size, seq_len, n_kv_heads, d_head) + start_time = time.time() + _ = calculator.calculate_gqa_intermediate_tensor( + attn_weights, v_gqa, feature_indices + ) + gqa_time = time.time() - start_time + calculator.use_gqa = False + + # Assert that both methods complete in a reasonable time + assert standard_time < 10, "Standard method took too long" + assert gqa_time < 10, "GQA method took too long" + + +def test_different_shapes(model: HookedTransformer, autoencoder: SAE): # type: ignore + calculator = DFACalculator(model, autoencoder) + + # Test with different shapes + shapes = [ + (1, 128, model.cfg.n_heads, model.cfg.d_head), + (4, 256, model.cfg.n_heads, model.cfg.d_head), + (2, 512, model.cfg.n_heads, model.cfg.d_head), + ] + + for batch_size, seq_len, n_heads, d_head in shapes: + attn_weights = torch.rand(batch_size, n_heads, seq_len, seq_len) + v = torch.rand(batch_size, seq_len, n_heads, d_head) + feature_indices = [0, 1, 2] + + standard_result = calculator.calculate_standard_intermediate_tensor( + attn_weights, v, feature_indices + ) + + # Use dummy values for GQA + calculator.use_gqa = True + n_kv_heads = n_heads // 2 # Dummy value for GQA + v_gqa = torch.rand(batch_size, seq_len, n_kv_heads, d_head) + gqa_result = calculator.calculate_gqa_intermediate_tensor( + attn_weights, v_gqa, feature_indices + ) + calculator.use_gqa = False + + assert standard_result.shape == gqa_result.shape + assert standard_result.shape == ( + batch_size, + seq_len, + seq_len, + len(feature_indices), + ) + assert gqa_result.shape == (batch_size, seq_len, seq_len, len(feature_indices)) + + +def test_edge_cases(model: HookedTransformer, autoencoder: SAE): # type: ignore + calculator = DFACalculator(model, autoencoder) + + # Test with minimal input size + attn_weights = torch.rand(1, model.cfg.n_heads, 1, 1) + v = torch.rand(1, 1, model.cfg.n_heads, model.cfg.d_head) + feature_indices = [0] + + standard_result = calculator.calculate_standard_intermediate_tensor( + attn_weights, v, feature_indices + ) + + # Use dummy values for GQA + calculator.use_gqa = True + n_kv_heads = model.cfg.n_heads // 2 # Dummy value for GQA + v_gqa = torch.rand(1, 1, n_kv_heads, model.cfg.d_head) + gqa_result = calculator.calculate_gqa_intermediate_tensor( + attn_weights, v_gqa, feature_indices + ) + calculator.use_gqa = False + + assert standard_result.shape == gqa_result.shape + + # Test with empty feature_indices + feature_indices = [] + + standard_result = calculator.calculate_standard_intermediate_tensor( + attn_weights, v, feature_indices + ) + + calculator.use_gqa = True + gqa_result = calculator.calculate_gqa_intermediate_tensor( + attn_weights, v_gqa, feature_indices + ) + calculator.use_gqa = False + + assert standard_result.shape == (1, 1, 1, 0) + assert gqa_result.shape == (1, 1, 1, 0) diff --git a/SAEDashboard/tests/unit/test_feature_mask_context.py b/SAEDashboard/tests/unit/test_feature_mask_context.py new file mode 100644 index 0000000000000000000000000000000000000000..01c13788920c2cf9aec98fb3450297bfb0633235 --- /dev/null +++ b/SAEDashboard/tests/unit/test_feature_mask_context.py @@ -0,0 +1,18 @@ +import torch +from sae_lens import SAE + +from sae_dashboard.feature_data_generator import FeatureMaskingContext + + +@torch.no_grad() +def test_feature_mask_context(autoencoder: SAE): # type: ignore + feature_indices = list(range(10)) + + sae_in_mock = torch.randn(10, 64, autoencoder.cfg.d_in) + features = autoencoder.encode(sae_in_mock) + original_feature_acts = features[:, :, feature_indices] + + with FeatureMaskingContext(autoencoder, feature_indices): + new_feature_acts = autoencoder.encode(sae_in_mock) + + assert (original_feature_acts - new_feature_acts).max() <= 1e-5 diff --git a/SAEDashboard/tests/unit/test_neuronpedia_runner.py b/SAEDashboard/tests/unit/test_neuronpedia_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..02932adde964f38e5d5063bd21bbb1c5a4d37976 --- /dev/null +++ b/SAEDashboard/tests/unit/test_neuronpedia_runner.py @@ -0,0 +1,104 @@ +from pathlib import Path + +import pytest +import torch +from transformer_lens import HookedTransformer + +from sae_dashboard.neuronpedia.neuronpedia_runner import NeuronpediaRunner +from sae_dashboard.neuronpedia.neuronpedia_runner_config import NeuronpediaRunnerConfig + + +@pytest.fixture +def runner_config() -> NeuronpediaRunnerConfig: + return NeuronpediaRunnerConfig( + sae_set="gpt2-small-res-jb", + sae_path="blocks.5.hook_resid_pre", + outputs_dir="test_outputs", + n_prompts_total=256, + n_tokens_in_prompt=128, + huggingface_dataset_path="monology/pile-uncopyrighted", + ) + + +@pytest.fixture +def neuronpedia_runner( + runner_config: NeuronpediaRunnerConfig, model: HookedTransformer +) -> NeuronpediaRunner: + runner = NeuronpediaRunner(runner_config) + runner.model = model # type: ignore + return runner + + +def test_generate_tokens_no_duplicates(neuronpedia_runner: NeuronpediaRunner) -> None: + tokens = neuronpedia_runner.generate_tokens( + neuronpedia_runner.activations_store, n_prompts=256 + ) + assert tokens.shape == (256, neuronpedia_runner.cfg.n_tokens_in_prompt) + # Move to CPU before checking uniqueness + tokens_cpu = tokens.cpu() + assert len(torch.unique(tokens_cpu, dim=0)) == 256 + + +def test_get_tokens_no_duplicates( + neuronpedia_runner: NeuronpediaRunner, tmp_path: Path +) -> None: + neuronpedia_runner.cfg.outputs_dir = str(tmp_path) + tokens = neuronpedia_runner.get_tokens() + assert tokens.shape == ( + neuronpedia_runner.cfg.n_prompts_total, + neuronpedia_runner.cfg.n_tokens_in_prompt, + ) + # Move to CPU before checking uniqueness + tokens_cpu = tokens.cpu() + assert ( + len(torch.unique(tokens_cpu, dim=0)) == neuronpedia_runner.cfg.n_prompts_total + ) + + +# def test_add_prefix_suffix_to_tokens(neuronpedia_runner: NeuronpediaRunner) -> None: +# # modify the config to add a prefix / suffix +# neuronpedia_runner.cfg.prefix_tokens = [101, 102, 103] # Example prefix tokens +# neuronpedia_runner.cfg.suffix_tokens = [104, 105, 106] # Example suffix tokens + +# # get the tokens +# tokens = neuronpedia_runner.get_tokens() +# tokens = neuronpedia_runner.add_prefix_suffix_to_tokens(tokens) + +# # check that the tokens have the prefix and suffix +# assert torch.allclose(tokens[:, 1:4].cpu(), torch.tensor([101, 102, 103])) +# assert torch.allclose(tokens[:, -3:].cpu(), torch.tensor([104, 105, 106])) + +# # assert the first token position is still the bos +# assert torch.allclose( +# tokens[:, 0].cpu(), +# torch.tensor( +# [neuronpedia_runner.model.to_single_token("<|endoftext|>")], +# dtype=torch.int64, +# ), +# ) + + +# def test_add_prefix_suffix_to_tokens_prepend_bos_false( +# neuronpedia_runner: NeuronpediaRunner, +# ) -> None: +# # modify the config to add a prefix / suffix +# neuronpedia_runner.cfg.prefix_tokens = [101, 102, 103] # Example prefix tokens +# neuronpedia_runner.cfg.suffix_tokens = [104, 105, 106] # Example suffix tokens + +# # get the tokens +# neuronpedia_runner.sae.cfg.prepend_bos = False +# tokens = neuronpedia_runner.get_tokens() +# tokens = neuronpedia_runner.add_prefix_suffix_to_tokens(tokens) + +# # check that the tokens have the prefix and suffix +# assert torch.allclose(tokens[:, 0:3].cpu(), torch.tensor([101, 102, 103])) +# assert torch.allclose(tokens[:, -3:].cpu(), torch.tensor([104, 105, 106])) + +# # assert the first token position is still the bos +# assert not torch.allclose( +# tokens[:, 0].cpu(), +# torch.tensor( +# [neuronpedia_runner.model.to_single_token("<|endoftext|>")], +# dtype=torch.int64, +# ), +# ) diff --git a/SAEDashboard/tests/unit/test_sae_vis_runner.py b/SAEDashboard/tests/unit/test_sae_vis_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..a480144ceda626d3ffdcd63e359206f62ba66cac --- /dev/null +++ b/SAEDashboard/tests/unit/test_sae_vis_runner.py @@ -0,0 +1,178 @@ +import json +from pathlib import Path + +import pytest +from jaxtyping import Int +from sae_lens import SAE +from syrupy.assertion import SnapshotAssertion +from torch import Tensor +from transformer_lens import HookedTransformer + +from sae_dashboard.components_config import SequencesConfig +from sae_dashboard.data_writing_fns import save_feature_centric_vis +from sae_dashboard.sae_vis_data import SaeVisConfig, SaeVisData +from sae_dashboard.sae_vis_runner import SaeVisRunner + +ROOT_DIR = Path(__file__).parent.parent.parent +N_FEATURES = 32 +# TEST_DEVICE = get_device() +TEST_DEVICE = "cpu" +TEST_DTYPE = "float32" + + +@pytest.fixture() +def cache_path() -> Path: + return Path("tests/fixtures/cache_unit") + + +@pytest.fixture( + params=[ + { + "hook_point": "blocks.2.hook_resid_pre", + "features": list(range(N_FEATURES)), + "minibatch_size_features": N_FEATURES, + "minibatch_size_tokens": 2, + "perform_ablation_experiments": False, + "device": TEST_DEVICE, + "dtype": TEST_DTYPE, + }, + { + "hook_point": "blocks.2.hook_resid_pre", + "features": list(range(N_FEATURES)), + "minibatch_size_features": N_FEATURES, + "minibatch_size_tokens": 2, + "perform_ablation_experiments": False, + "device": TEST_DEVICE, + "dtype": TEST_DTYPE, + # this doesn't take an arg for the buffer so we use the name + an if statement + # TODO: make this more elegant + }, + ], + ids=["default", "neuronpedia"], +) +def cfg(request: pytest.FixtureRequest, cache_path: Path) -> SaeVisConfig: + cfg = SaeVisConfig(**request.param, cache_dir=cache_path) + if "neuronpedia" in request.node.name: + cfg.feature_centric_layout.seq_cfg = SequencesConfig( + stack_mode="stack-all", + buffer=None, # type: ignore + compute_buffer=True, + n_quantiles=5, + top_acts_group_size=20, + quantile_group_size=5, + ) + return cfg + + +@pytest.fixture() +def sae_vis_data( + cfg: SaeVisConfig, + model: HookedTransformer, + autoencoder: SAE, # type: ignore + tokens: Int[Tensor, "batch seq"], +) -> SaeVisData: + autoencoder.cfg.device = TEST_DEVICE + autoencoder.to(TEST_DEVICE) + data = SaeVisRunner(cfg).run(encoder=autoencoder, model=model, tokens=tokens) # type: ignore + return data + + +def test_SaeVisData_create_results_look_reasonable( + tokens: Int[Tensor, "batch seq"], + model: HookedTransformer, + autoencoder: SAE, # type: ignore + cfg: SaeVisConfig, +): + sae_vis_data = SaeVisRunner(cfg).run( + encoder=autoencoder, model=model, tokens=tokens # type: ignore + ) + assert sae_vis_data.encoder == autoencoder + assert sae_vis_data.model == model + assert sae_vis_data.cfg == cfg + # kurtosis and skew are both empty, is this itentional? + assert len(sae_vis_data.feature_stats.max) == N_FEATURES + assert len(sae_vis_data.feature_stats.frac_nonzero) == N_FEATURES + assert len(sae_vis_data.feature_stats.quantile_data) == N_FEATURES + assert len(sae_vis_data.feature_stats.quantiles) > 1000 + for val in sae_vis_data.feature_stats.max: + assert val >= 0 + for val in sae_vis_data.feature_stats.frac_nonzero: + assert 0 <= val <= 1 + for prev_val, next_val in zip( + sae_vis_data.feature_stats.quantiles[:-1], + sae_vis_data.feature_stats.quantiles[1:], + ): + assert prev_val <= next_val + for bounds, prec in sae_vis_data.feature_stats.ranges_and_precisions: + assert len(bounds) == 2 + assert bounds[0] <= bounds[1] + assert prec > 0 + # each feature should get its own key + assert set(sae_vis_data.feature_data_dict.keys()) == set(range(N_FEATURES)) + + +def test_SaeVisData_create_and_save_feature_centric_vis( + sae_vis_data: SaeVisData, + tmp_path: Path, +): + # tmp_path = Path(".") # when you want to manually inspect it. + save_path = tmp_path / "feature_centric_vis.html" + save_feature_centric_vis(sae_vis_data=sae_vis_data, filename=save_path) + assert (save_path).exists() + with open(save_path) as f: + html_contents = f.read() + + # all the CSS should be in the HTML + css_files = (ROOT_DIR / "sae_dashboard" / "css").glob("*.css") + assert len(list(css_files)) > 0 + for css_file in css_files: + with open(css_file) as f: + assert f.read() in html_contents + + # all the JS should be in the HTML + js_files = (ROOT_DIR / "sae_dashboard" / "js").glob("*.js") + assert len(list(js_files)) > 0 + for js_file in js_files: + with open(js_file) as f: + assert f.read() in html_contents + + # all the HTML templates should be in the HTML + html_files = (ROOT_DIR / "sae_dashboard" / "html").glob("*.html") + assert len(list(html_files)) > 0 + for html_file in html_files: + with open(html_file) as f: + assert f.read() in html_contents + + assert json.dumps(sae_vis_data.feature_stats.aggdata) in html_contents + + +def test_SaeVisData_save_json_snapshot( + sae_vis_data: SaeVisData, + tmp_path: Path, + snapshot: SnapshotAssertion, +): + save_path = tmp_path / "feature_data.json" + + sae_vis_data.save_json(save_path) + + # load in fixtures/feature_data.json and do a diff + with open(save_path) as f: + saved_json = json.load(f) + + assert saved_json.keys() == {"feature_data_dict", "feature_stats"} + + # are the feature statistics unchanged? + assert saved_json["feature_stats"].keys() == { + "max", + "skew", + "kurtosis", + "frac_nonzero", + "quantile_data", + "quantiles", + "ranges_and_precisions", + } + # round very heavily, since there's lots of floating point problems with this test. Just pray this works + # assert round_floats_deep(saved_json["feature_stats"], ndigits=2) == snapshot + + # are the feature data dictionaries unchanged? + assert saved_json["feature_data_dict"].keys() == {str(i) for i in range(N_FEATURES)} diff --git a/SAEDashboard/tests/unit/test_sequence_data_generator.py b/SAEDashboard/tests/unit/test_sequence_data_generator.py new file mode 100644 index 0000000000000000000000000000000000000000..0c41db82d8aa4bb0b1f1ea542c59a15dbf26a235 --- /dev/null +++ b/SAEDashboard/tests/unit/test_sequence_data_generator.py @@ -0,0 +1,110 @@ +import pytest +import torch +from transformer_lens import HookedTransformer + +from sae_dashboard.sae_vis_data import SaeVisConfig +from sae_dashboard.sequence_data_generator import SequenceDataGenerator +from tests.helpers import build_sae_vis_cfg + + +@pytest.fixture +def sequence_data_generator( + model: HookedTransformer, tokens: torch.Tensor +) -> SequenceDataGenerator: + cfg: SaeVisConfig = build_sae_vis_cfg() + return SequenceDataGenerator(cfg, tokens, model.W_U) + + +def test_get_sequences_data_expected_duplicates( + sequence_data_generator: SequenceDataGenerator, + model: HookedTransformer, + tokens: torch.Tensor, +) -> None: + feat_acts = torch.randn_like(tokens, dtype=torch.float32) + feat_logits = torch.randn(model.cfg.d_vocab, dtype=torch.float32) + resid_post = torch.randn( + tokens.shape[0], tokens.shape[1], model.cfg.d_model, dtype=torch.float32 + ) + feature_resid_dir = torch.randn(model.cfg.d_model, dtype=torch.float32) + + sequence_multi_group_data = sequence_data_generator.get_sequences_data( + feat_acts, feat_logits, resid_post, feature_resid_dir + ) + + all_sequence_data = [] + group_sequence_pairs = [] + for i, group in enumerate(sequence_multi_group_data.seq_group_data): + all_sequence_data.extend(group.seq_data) + group_sequence_pairs.extend( + [(i, sd.original_index, sd.qualifying_token_index) for sd in group.seq_data] + ) + + # Count occurrences of each (original_index, qualifying_token_index) pair + from collections import Counter + + pair_counts = Counter( + (sd.original_index, sd.qualifying_token_index) for sd in all_sequence_data + ) + + # Check for duplicates within the same group + duplicates_in_same_group = False + for i, group in enumerate(sequence_multi_group_data.seq_group_data): + group_pairs = [ + (sd.original_index, sd.qualifying_token_index) for sd in group.seq_data + ] + group_pair_counts = Counter(group_pairs) + if any(count > 1 for count in group_pair_counts.values()): + duplicates_in_same_group = True + + num_duplicates = sum(count - 1 for count in pair_counts.values()) + + # Assertions + assert not duplicates_in_same_group, "Duplicates found within the same group" + assert num_duplicates <= len( + sequence_multi_group_data.seq_group_data + ), f"Too many duplicates: {num_duplicates}" + assert ( + len(sequence_multi_group_data.seq_group_data[0].seq_data) == 20 + ), "TOP ACTIVATIONS group should have 20 sequences" + + # Check that duplicates only occur between TOP ACTIVATIONS and one other group + for pair, count in pair_counts.items(): + if count > 1: + groups_with_pair = [ + i for i, oi, qti in group_sequence_pairs if (oi, qti) == pair + ] + assert ( + 0 in groups_with_pair + ), f"Duplicate {pair} not in TOP ACTIVATIONS group" + assert ( + len(groups_with_pair) == 2 + ), f"Duplicate {pair} found in more than two groups: {groups_with_pair}" + + +def test_package_sequences_data_no_duplicates( + sequence_data_generator: SequenceDataGenerator, +) -> None: + token_ids = torch.randint(0, 1000, (10, 5)) + feat_acts_coloring = torch.randn(10, 5) + feat_logits = torch.randn(1000) + indices_dict = { + "Group1": torch.tensor([[0, 1], [1, 2]]), + "Group2": torch.tensor([[2, 3], [3, 4]]), + } + indices_bold = torch.tensor([[0, 1], [1, 2], [2, 3], [3, 4]]) + + sequence_multi_group_data = sequence_data_generator.package_sequences_data( + token_ids, feat_acts_coloring, feat_logits, indices_dict, indices_bold + ) + + all_sequence_data = [] + for ( + group + ) in ( + sequence_multi_group_data.seq_group_data + ): # Changed from sequence_groups to seq_group_data + all_sequence_data.extend(group.seq_data) # Changed from sequences to seq_data + + assert len(all_sequence_data) == len( + set((sd.original_index, sd.qualifying_token_index) for sd in all_sequence_data) + ) diff --git a/SAEDashboard/tests/unit/test_transcoder_runner.py b/SAEDashboard/tests/unit/test_transcoder_runner.py new file mode 100644 index 0000000000000000000000000000000000000000..4c5f14c78e71b352c5c1ccc9e632fbd1bbda5378 --- /dev/null +++ b/SAEDashboard/tests/unit/test_transcoder_runner.py @@ -0,0 +1,302 @@ +"""Tests specific to transcoder functionality in NeuronpediaRunner.""" + +from unittest.mock import Mock + +import pytest +import torch + +from sae_dashboard.feature_data_generator import FeatureMaskingContext +from sae_dashboard.neuronpedia.neuronpedia_runner import NeuronpediaRunnerConfig + + +@pytest.fixture +def transcoder_config(): + """Create a config for transcoder testing.""" + return NeuronpediaRunnerConfig( + sae_set="gemma-scope-2b-pt-transcoders", + sae_path="layer_15/width_16k/average_l0_8", + np_set_name="test-transcoders", + from_local_sae=False, + huggingface_dataset_path="monology/pile-uncopyrighted", + sae_dtype="float32", + model_dtype="float32", + outputs_dir="test_outputs/", + sparsity_threshold=1, + n_prompts_total=128, + n_tokens_in_prompt=128, + n_prompts_in_forward_pass=32, + n_features_at_a_time=2, + start_batch=0, + end_batch=1, + use_wandb=False, + use_transcoder=True, # Enable transcoder + ) + + +@pytest.fixture +def mock_transcoder(): + """Create a mock transcoder object that behaves like a real transcoder.""" + mock = Mock() + + # Mock the config with transcoder-specific attributes + mock.cfg = Mock() + mock.cfg.d_in = 2304 + mock.cfg.d_sae = 16384 + mock.cfg.dtype = "torch.float32" + mock.cfg.device = "cpu" + mock.cfg.metadata = { + "model_name": "gemma-2-2b", + "hook_name": "blocks.15.ln2.hook_normalized", + "hook_head_index": None, + "prepend_bos": True, + "dataset_path": "monology/pile-uncopyrighted", + "context_size": 1024, + } + # Transcoder-specific config attributes + mock.cfg.hook_name_out = "blocks.15.hook_mlp_out" + mock.cfg.hook_layer_out = 15 + mock.cfg.architecture = Mock(return_value="jumprelu_transcoder") + + # Mock other required attributes and methods + mock.W_dec = torch.randn(16384, 2304) + mock.b_dec = torch.zeros(2304) + mock.device = "cpu" + mock.fold_W_dec_norm = Mock() + mock.encode = Mock(return_value=torch.randn(1, 128, 16384)) + mock.to = Mock(return_value=mock) + + return mock + + +class TestTranscoderLoading: + """Test transcoder loading functionality.""" + + def test_transcoder_config_enables_transcoder( + self, transcoder_config: NeuronpediaRunnerConfig + ): + """Test that transcoder config properly enables transcoder loading.""" + assert transcoder_config.use_transcoder is True + assert transcoder_config.use_skip_transcoder is False + + def test_skip_transcoder_config(self, transcoder_config: NeuronpediaRunnerConfig): + """Test skip transcoder configuration.""" + transcoder_config.use_transcoder = False + transcoder_config.use_skip_transcoder = True + assert transcoder_config.use_transcoder is False + assert transcoder_config.use_skip_transcoder is True + + def test_transcoder_vs_sae_config_differences( + self, transcoder_config: NeuronpediaRunnerConfig + ): + """Test that transcoder config has different settings than SAE config.""" + # Create SAE config + sae_config = NeuronpediaRunnerConfig( + sae_set="test-sae", + sae_path="test-path", + np_set_name="test", + huggingface_dataset_path="test", + outputs_dir="test/", + use_transcoder=False, + use_skip_transcoder=False, + ) + + # Verify differences + assert transcoder_config.use_transcoder is True + assert sae_config.use_transcoder is False + assert transcoder_config.sae_set == "gemma-scope-2b-pt-transcoders" + assert "transcoder" in transcoder_config.sae_set + + def test_hook_layer_extraction_from_hook_name(self): + """Test extracting layer number from hook_name pattern.""" + # Test the regex pattern used in neuronpedia_runner + import re + + test_cases = [ + ("blocks.5.hook_resid_pre", 5), + ("blocks.15.ln2.hook_normalized", 15), + ("blocks.0.hook_mlp_out", 0), + ("blocks.23.attn.hook_q", 23), + ] + + for hook_name, expected_layer in test_cases: + match = re.search(r"blocks\.(\d+)\.", hook_name) + assert match is not None + assert int(match.group(1)) == expected_layer + + +class TestTranscoderArchitectureHandling: + """Test handling of different transcoder architectures.""" + + def test_feature_masking_with_transcoder_architecture(self): + """Test that FeatureMaskingContext handles transcoder architectures.""" + # Create a mock SAE with transcoder architecture as a method + mock_sae = Mock() + mock_sae.cfg = Mock() + mock_sae.cfg.architecture = Mock(return_value="jumprelu_transcoder") + + # Set up the required tensors + mock_sae.W_dec = torch.nn.Parameter(torch.randn(100, 64)) + mock_sae.W_enc = torch.nn.Parameter(torch.randn(64, 100)) + mock_sae.b_enc = torch.nn.Parameter(torch.randn(100)) + mock_sae.threshold = torch.nn.Parameter(torch.randn(100)) + + feature_idxs = [0, 1, 2] + + # Test that context manager works with transcoder architecture + with FeatureMaskingContext(mock_sae, feature_idxs): + # Check that weights were masked + assert mock_sae.W_dec.shape == (3, 64) + assert mock_sae.W_enc.shape == (64, 3) + assert mock_sae.b_enc.shape == (3,) + assert mock_sae.threshold.shape == (3,) + + # Check that weights were restored + assert mock_sae.W_dec.shape == (100, 64) + assert mock_sae.W_enc.shape == (64, 100) + assert mock_sae.b_enc.shape == (100,) + assert mock_sae.threshold.shape == (100,) + + def test_feature_masking_with_architecture_as_attribute(self): + """Test FeatureMaskingContext when architecture is an attribute not method.""" + # Create a mock SAE with architecture as direct attribute + mock_sae = Mock() + mock_sae.cfg = Mock() + mock_sae.cfg.architecture = "standard_transcoder" # Direct attribute + + # Set up the required tensors + mock_sae.W_dec = torch.nn.Parameter(torch.randn(50, 32)) + mock_sae.W_enc = torch.nn.Parameter(torch.randn(32, 50)) + mock_sae.b_enc = torch.nn.Parameter(torch.randn(50)) + + feature_idxs = [5, 10] + + # Test that context manager works + with FeatureMaskingContext(mock_sae, feature_idxs): + assert mock_sae.W_dec.shape == (2, 32) + assert mock_sae.W_enc.shape == (32, 2) + assert mock_sae.b_enc.shape == (2,) + + # Check restoration + assert mock_sae.W_dec.shape == (50, 32) + assert mock_sae.W_enc.shape == (32, 50) + assert mock_sae.b_enc.shape == (50,) + + def test_all_transcoder_architectures(self): + """Test that all transcoder architecture variants are recognized.""" + architectures_to_test = [ + "transcoder", + "standard_transcoder", + "skip_transcoder", + "jumprelu_transcoder", + "gated_transcoder", + ] + + for arch in architectures_to_test: + mock_sae = Mock() + mock_sae.cfg = Mock() + mock_sae.cfg.architecture = arch + + # Set up minimal required attributes + mock_sae.W_dec = torch.nn.Parameter(torch.randn(10, 5)) + mock_sae.W_enc = torch.nn.Parameter(torch.randn(5, 10)) + mock_sae.b_enc = torch.nn.Parameter(torch.randn(10)) + + # For architectures that need extra parameters + if "jumprelu" in arch: + mock_sae.threshold = torch.nn.Parameter(torch.randn(10)) + elif "gated" in arch: + mock_sae.b_gate = torch.nn.Parameter(torch.randn(10)) + mock_sae.r_mag = torch.nn.Parameter(torch.randn(10)) + mock_sae.b_mag = torch.nn.Parameter(torch.randn(10)) + + # Should not raise an error + with FeatureMaskingContext(mock_sae, [0]): + pass + + +class TestTranscoderMetadataHandling: + """Test handling of transcoder metadata and config differences.""" + + # def test_prepend_bos_in_metadata(self): + # """Test that prepend_bos is correctly accessed from metadata.""" + # from sae_dashboard.neuronpedia.neuronpedia_runner import NeuronpediaRunner + + # # Create a mock SAE with prepend_bos in metadata + # mock_sae = Mock() + # mock_sae.cfg = Mock() + # # Make sure the metadata dict behaves properly + # metadata = {"prepend_bos": True} + # mock_sae.cfg.metadata = metadata + + # # Ensure hasattr returns False for prepend_bos direct attribute + # mock_sae.cfg.prepend_bos = Mock() + # del mock_sae.cfg.prepend_bos + + # # Create a runner instance (we'll mock everything else) + # with patch.object(NeuronpediaRunner, "__init__", lambda x, y: None): + # runner = NeuronpediaRunner(None) # type: ignore + # runner.sae = mock_sae + # runner.cfg = Mock() + # runner.cfg.prefix_tokens = [1, 2, 3] + # runner.cfg.suffix_tokens = None + + # # Test the add_prefix_suffix_to_tokens method + # tokens = torch.tensor([[0, 10, 20, 30, 40, 50]]) + # result = runner.add_prefix_suffix_to_tokens(tokens) + + # # Should have added prefix tokens (3) and kept same total length + # assert result.shape[1] == tokens.shape[1] + # # First token should be BOS (0), then prefix tokens + # assert result[0, 0].item() == 0 + # assert result[0, 1].item() == 1 + # assert result[0, 2].item() == 2 + # assert result[0, 3].item() == 3 + + # def test_prepend_bos_as_attribute(self): + # """Test backward compatibility when prepend_bos is a direct attribute.""" + # from sae_dashboard.neuronpedia.neuronpedia_runner import NeuronpediaRunner + + # # Create a mock SAE with prepend_bos as direct attribute + # mock_sae = Mock() + # mock_sae.cfg = Mock() + # mock_sae.cfg.prepend_bos = False # Direct attribute + # mock_sae.cfg.metadata = {} # Empty metadata + + # # Create a runner instance + # with patch.object(NeuronpediaRunner, "__init__", lambda x, y: None): + # runner = NeuronpediaRunner(None) # type: ignore + # runner.sae = mock_sae + # runner.cfg = Mock() + # runner.cfg.prefix_tokens = [1, 2, 3] + # runner.cfg.suffix_tokens = None + + # # Test the add_prefix_suffix_to_tokens method + # tokens = torch.tensor([[0, 10, 20, 30, 40, 50]]) + # result = runner.add_prefix_suffix_to_tokens(tokens) + + # # Should handle the direct attribute + # assert result.shape[1] == tokens.shape[1] + + +class TestTranscoderHookNormalized: + """Test support for normalized hooks which are common with transcoders.""" + + def test_hook_normalized_support(self): + """Test that hook_normalized is supported in to_resid_direction.""" + from sae_dashboard.transformer_lens_wrapper import to_resid_direction + + # Create a mock model with hook_normalized + mock_model = Mock() + mock_model.activation_config = Mock() + mock_model.activation_config.primary_hook_point = ( + "blocks.15.ln2.hook_normalized" + ) + mock_model.hook_layer = 15 + + # Create a direction tensor + direction = torch.randn(10, 768) + + # This should not raise an error and should return the direction unchanged + # (since normalized hooks are already in residual stream basis) + result = to_resid_direction(direction, mock_model) + assert torch.equal(result, direction) diff --git a/SAEDashboard/tests/unit/test_transformer_lens_wrapper.py b/SAEDashboard/tests/unit/test_transformer_lens_wrapper.py new file mode 100644 index 0000000000000000000000000000000000000000..5373139853ee6e5df9f24c09b4d05e2d6b382c4a --- /dev/null +++ b/SAEDashboard/tests/unit/test_transformer_lens_wrapper.py @@ -0,0 +1,145 @@ +import pytest +import torch +from transformer_lens import HookedTransformer + +from sae_dashboard.transformer_lens_wrapper import ( + ActivationConfig, + TransformerLensWrapper, +) + + +@pytest.fixture(scope="module") +def real_model() -> HookedTransformer: + return HookedTransformer.from_pretrained("gpt2-small") + + +@pytest.fixture +def valid_activation_config(real_model: HookedTransformer) -> ActivationConfig: + return ActivationConfig( + primary_hook_point="blocks.5.hook_resid_post", + auxiliary_hook_points=[ + "blocks.0.hook_resid_pre", + "blocks.4.hook_mlp_out", + "blocks.3.attn.hook_z", + ], + ) + + +def test_initialization( + real_model: HookedTransformer, valid_activation_config: ActivationConfig +) -> None: + wrapper = TransformerLensWrapper(real_model, valid_activation_config) # type: ignore + assert wrapper.model == real_model + assert wrapper.activation_config == valid_activation_config + assert wrapper.hook_layer == 5 + + +def test_validate_hook_points( + real_model: HookedTransformer, valid_activation_config: ActivationConfig +) -> None: + wrapper = TransformerLensWrapper(real_model, valid_activation_config) # type: ignore + wrapper.validate_hook_points() # This should not raise an exception + + +def test_validate_hook_points_invalid(real_model: HookedTransformer) -> None: + invalid_config = ActivationConfig( + primary_hook_point="blocks.15.invalid_hook", + auxiliary_hook_points=["blocks.0.hook_resid_pre"], + ) + with pytest.raises(AssertionError): + TransformerLensWrapper(real_model, invalid_config) # type: ignore + + +def test_get_layer( + real_model: HookedTransformer, valid_activation_config: ActivationConfig +) -> None: + wrapper = TransformerLensWrapper(real_model, valid_activation_config) # type: ignore + assert wrapper.get_layer("blocks.2.hook_mlp_out") == 2 + with pytest.raises(AssertionError): + wrapper.get_layer("invalid_hook_point") + + +@pytest.mark.parametrize("return_logits", [True, False]) +def test_forward( + real_model: HookedTransformer, + valid_activation_config: ActivationConfig, + return_logits: bool, +) -> None: + wrapper = TransformerLensWrapper(real_model, valid_activation_config) # type: ignore + tokens = torch.randint(0, real_model.cfg.d_vocab, (2, 10)) + + activation_dict = wrapper.forward(tokens, return_logits=return_logits) + + assert isinstance(activation_dict, dict) + + expected_keys = set( + valid_activation_config.auxiliary_hook_points + + [valid_activation_config.primary_hook_point] + ) + if return_logits: + expected_keys.add("output") + + assert set(activation_dict.keys()) == expected_keys + + # Check shapes of activations + assert activation_dict["blocks.0.hook_resid_pre"].shape == ( + 2, + 10, + real_model.cfg.d_model, + ) + assert activation_dict["blocks.4.hook_mlp_out"].shape == ( + 2, + 10, + real_model.cfg.d_model, + ) + assert activation_dict["blocks.3.attn.hook_z"].shape == ( + 2, + 10, + real_model.cfg.n_heads * real_model.cfg.d_head, + ) + assert activation_dict["blocks.5.hook_resid_post"].shape == ( + 2, + 10, + real_model.cfg.d_model, + ) + + if return_logits: + assert activation_dict["output"].shape == (2, 10, real_model.cfg.d_model) + else: + assert "output" not in activation_dict + + # Additional checks + for key, value in activation_dict.items(): + assert isinstance(value, torch.Tensor), f"Value for {key} is not a torch.Tensor" + assert ( + value.shape[0] == 2 and value.shape[1] == 10 + ), f"Incorrect batch or sequence dimension for {key}" + + # Check that 'hook_z' tensors are flattened + for key in activation_dict: + if "hook_z" in key: + assert ( + len(activation_dict[key].shape) == 3 + ), f"{key} should be flattened to 3 dimensions" + + +def test_hook_fn_store_act( + real_model: HookedTransformer, valid_activation_config: ActivationConfig +) -> None: + wrapper = TransformerLensWrapper(real_model, valid_activation_config) # type: ignore + activation = torch.randn(2, 10, real_model.cfg.d_model) + hook = type("MockHook", (), {"ctx": {}})() + + wrapper.hook_fn_store_act(activation, hook) # type: ignore + assert torch.all(hook.ctx["activation"] == activation) # type: ignore + + +def test_property_access( + real_model: HookedTransformer, valid_activation_config: ActivationConfig +) -> None: + wrapper = TransformerLensWrapper(real_model, valid_activation_config) # type: ignore + + assert torch.all(wrapper.W_U == real_model.W_U) + assert torch.all(wrapper.W_out == real_model.W_out) + assert torch.all(wrapper.W_O == real_model.W_O) + assert wrapper.tokenizer == real_model.tokenizer diff --git a/SAEDashboard/tests/unit/test_util_fns.py b/SAEDashboard/tests/unit/test_util_fns.py new file mode 100644 index 0000000000000000000000000000000000000000..d8b2388ecc05594d88f7cf1e66d58d09dfbfad30 --- /dev/null +++ b/SAEDashboard/tests/unit/test_util_fns.py @@ -0,0 +1,275 @@ +import numpy as np +import pytest +import torch + +from sae_dashboard.utils_fns import ( + FeatureStatistics, + RollingCorrCoef, + TopK, + sample_unique_indices, +) + +# from torch.profiler import ProfilerActivity, profile, record_function + + +SYMMETRIC_RANGES_AND_PRECISIONS: list[tuple[list[float], int]] = [ + ([0.0, 0.01], 5), + ([0.01, 0.05], 4), + ([0.05, 0.95], 3), + ([0.95, 0.99], 4), + ([0.99, 1.0], 5), +] +ASYMMETRIC_RANGES_AND_PRECISIONS: list[tuple[list[float], int]] = [ + ([0.0, 0.95], 3), + ([0.95, 0.99], 4), + ([0.99, 1.0], 5), +] + + +@pytest.fixture(params=[torch.float16, torch.float32, torch.float64]) +def precision_data(request): # type:ignore + # Create some sample data + data = torch.tensor( + [ + [1.0, 2.0, 3.0, 4.0, 5.0], + [2.0, 4.0, 6.0, 8.0, 10.0], + [0.0, 0.1, 0.2, 0.3, 0.4], + ], + dtype=request.param, + ) + return data, request.param + + +@pytest.fixture(params=[torch.float16, torch.float32, torch.float64]) +def large_precision_data(request): # type:ignore + # check if cuda is available, and if so, set device to this + if torch.cuda.is_available(): + device = torch.device("cuda") + else: + device = torch.device("cpu") + # Create some sample data + data = torch.randn(100, 1000, device=device, dtype=request.param) + return data, request.param + + +def test_sample_unique_indices(): + large_number = 1000 + small_number = 10 + + sampled_indices = sample_unique_indices(large_number, small_number) + + # Test that the function returns a list of the correct length + assert len(sampled_indices) == small_number + + # assert type is Tensor of Ints + assert isinstance(sampled_indices, torch.Tensor) + assert sampled_indices.dtype == torch.int64 + + large_number = 1000 + small_number = 990 + + sampled_indices = sample_unique_indices(large_number, small_number) + + # test that no indices are repeated + assert len(sampled_indices) == len(set(sampled_indices.tolist())) + + +def test_RollingCorrCoef_corrcoef(): + xs = torch.randn(10, 100) + ys = torch.randn(10, 100) + + rcc = RollingCorrCoef() + rcc.update(xs[:, :30], ys[:, :30]) + rcc.update(xs[:, 30:70], ys[:, 30:70]) + rcc.update(xs[:, 70:], ys[:, 70:]) + + pearson, cossim = rcc.corrcoef() + + norm_xs = xs / xs.norm(dim=1, keepdim=True) + norm_ys = ys / ys.norm(dim=1, keepdim=True) + assert torch.allclose(cossim, norm_xs @ norm_ys.T, atol=1e-5) + + full_corrcoef = torch.corrcoef(torch.cat([xs, ys])) + assert torch.allclose(pearson, full_corrcoef[:10, 10:], atol=1e-5) + + +def test_TopK_without_mask(): + topk = TopK( + tensor=torch.arange(10) + 1, + k=3, + tensor_mask=None, + ) + + assert topk.values.tolist() == [10, 9, 8] + assert topk.indices.tolist() == [9, 8, 7] + + +def test_TopK_without_mask_smallest(): + topk = TopK(tensor=torch.arange(10) + 1, k=3, tensor_mask=None, largest=False) + + assert topk.values.tolist() == [1, 2, 3] + assert topk.indices.tolist() == [0, 1, 2] + + +def test_feature_statistics_batched_vs_unbatched( + large_precision_data: tuple[torch.Tensor, torch.dtype], +): + data, _ = large_precision_data + + # Create unbatched FeatureStatistics object + unbatched_stats = FeatureStatistics.create(data) + + # Create batched FeatureStatistics object + batched_stats = FeatureStatistics.create( + data, batch_size=10 + ) # Process 10 features at a time + + # Compare max values + assert np.allclose( + unbatched_stats.max, batched_stats.max, atol=1e-3 + ), "Max values do not match" + + # Compare fraction of non-zero values + assert np.allclose( + unbatched_stats.frac_nonzero, batched_stats.frac_nonzero, atol=1e-3 + ), "Fraction of non-zero values do not match" + + # Compare quantiles + assert ( + unbatched_stats.quantiles == batched_stats.quantiles + ), "Quantiles do not match" + + # Compare quantile data + assert len(unbatched_stats.quantile_data) == len( + batched_stats.quantile_data + ), "Quantile data lengths do not match" + for unbatched_qd, batched_qd in zip( + unbatched_stats.quantile_data, batched_stats.quantile_data + ): + assert len(unbatched_qd) == len( + batched_qd + ), "Quantile data sub-lengths do not match" + assert np.allclose( + unbatched_qd, batched_qd, atol=1e-3 + ), "Quantile data values do not match" + + # Compare ranges_and_precisions + assert ( + unbatched_stats.ranges_and_precisions == batched_stats.ranges_and_precisions + ), "Ranges and precisions do not match" + + +@pytest.mark.parametrize("n_features,batch_size", [(100, 10), (100, 30), (100, 7)]) +def test_feature_statistics_batched_vs_unbatched_uneven_sizes( + large_precision_data: tuple[torch.Tensor, torch.dtype], + n_features: int, + batch_size: int, +): + data, _ = large_precision_data + + # Slice the data to the specified number of features + data = data[:n_features] + + # Create unbatched FeatureStatistics object + unbatched_stats = FeatureStatistics.create(data) + + # Create batched FeatureStatistics object + batched_stats = FeatureStatistics.create(data, batch_size=batch_size) + + # Compare max values + assert np.allclose( + unbatched_stats.max, batched_stats.max, atol=1e-3 + ), f"Max values do not match for n_features={n_features}, batch_size={batch_size}" + + # Compare fraction of non-zero values + assert np.allclose( + unbatched_stats.frac_nonzero, batched_stats.frac_nonzero, atol=1e-3 + ), f"Fraction of non-zero values do not match for n_features={n_features}, batch_size={batch_size}" + + # Compare quantiles + assert ( + unbatched_stats.quantiles == batched_stats.quantiles + ), f"Quantiles do not match for n_features={n_features}, batch_size={batch_size}" + + # Compare quantile data + assert len(unbatched_stats.quantile_data) == len( + batched_stats.quantile_data + ), f"Quantile data lengths do not match for n_features={n_features}, batch_size={batch_size}" + for unbatched_qd, batched_qd in zip( + unbatched_stats.quantile_data, batched_stats.quantile_data + ): + assert len(unbatched_qd) == len( + batched_qd + ), f"Quantile data sub-lengths do not match for n_features={n_features}, batch_size={batch_size}" + assert np.allclose( + unbatched_qd, batched_qd, atol=1e-3 + ), f"Quantile data values do not match for n_features={n_features}, batch_size={batch_size}" + + # Compare ranges_and_precisions + assert ( + unbatched_stats.ranges_and_precisions == batched_stats.ranges_and_precisions + ), f"Ranges and precisions do not match for n_features={n_features}, batch_size={batch_size}" + + +def test_feature_statistics_create(precision_data: tuple[torch.Tensor, torch.dtype]): + data, _ = precision_data + + # Create FeatureStatistics object + feature_stats = FeatureStatistics.create(data) + + # Test max values + assert np.allclose(feature_stats.max, [5.0, 10.0, 0.4], atol=1e-3) + + # Test fraction of non-zero values + assert np.allclose(feature_stats.frac_nonzero, [1.0, 1.0, 0.8], atol=1e-3) + + # Test quantiles + assert len(feature_stats.quantiles) > 0 + assert feature_stats.quantiles[0] == 0.0 + assert feature_stats.quantiles[-1] == 1.0 + + # Test quantile data + assert len(feature_stats.quantile_data) == 3 # One for each row in the input data + assert all(len(qd) > 0 for qd in feature_stats.quantile_data) + + +def test_feature_statistics_update(): + data1 = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) + data2 = torch.tensor([[7.0, 8.0, 9.0], [10.0, 11.0, 12.0]]) + + stats1 = FeatureStatistics.create(data1) + stats2 = FeatureStatistics.create(data2) + + stats1.update(stats2) + + assert stats1.max == [3.0, 6.0, 9.0, 12.0] + assert len(stats1.quantile_data) == 4 + + +# def test_feature_statistics_benchmark(large_precision_data): +# # Check if CUDA is available +# if not torch.cuda.is_available(): +# pytest.skip("CUDA not available, skipping benchmark test") + +# # Create a large dataset +# data, _ = large_precision_data + +# # Run the benchmark +# with profile( +# activities=[ProfilerActivity.CPU, ProfilerActivity.CUDA], +# record_shapes=True, +# profile_memory=True, +# with_stack=True +# ) as prof: +# with record_function("FeatureStatistics.create"): +# feature_stats = FeatureStatistics.create(data) + +# # Print the profiler results +# print(prof.key_averages().table(sort_by="cuda_time_total", row_limit=10)) + +# # You can add more specific assertions here if needed +# assert feature_stats is not None +# assert len(feature_stats.max) == data.shape[0] + +# # Optionally, you can save the profiler results to a file +# prof.export_chrome_trace("feature_statistics_benchmark_trace.json") diff --git a/__pycache__/sae_dashboard.cpython-313.pyc b/__pycache__/sae_dashboard.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84a3306ead014f61de746762337f7d4bcdcf4b8c Binary files /dev/null and b/__pycache__/sae_dashboard.cpython-313.pyc differ diff --git a/__pycache__/score.cpython-313.pyc b/__pycache__/score.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7dfb15fbb3dea9d58224a1e104438f66e74d3955 Binary files /dev/null and b/__pycache__/score.cpython-313.pyc differ diff --git a/score.py b/score.py new file mode 100644 index 0000000000000000000000000000000000000000..f5dd376d740c1f9f53e380d7826363aa716c2f41 --- /dev/null +++ b/score.py @@ -0,0 +1,344 @@ +""" +Multilingual v-score analysis for residual-stream SAEs (same logic as SNLP.ipynb). + +v = mean_sae_activation(language_i) - mean(other languages) (per feature), +then sorted descending to get top_index_per_lan and top_values_per_lan. +""" + +from __future__ import annotations + +import argparse +import json +import os +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any, Literal, Sequence + +import torch +from datasets import load_dataset +from matplotlib import pyplot as plt +from sae_lens import SAE +from transformers import AutoModelForCausalLM, AutoTokenizer + +# --------------------------------------------------------------------------- +# Presets (aligned with SNLP.ipynb) +# --------------------------------------------------------------------------- + +ModelChoice = Literal["gemma-2b", "qwen3-0.6b"] + + +@dataclass +class ModelSAEConfig: + model_id: str + sae_release: str + sae_id_template: str # e.g. "layer_{layer}/width_16k/canonical" or "layer_{layer}" + trust_remote_code: bool = False + + +PRESETS: dict[ModelChoice, ModelSAEConfig] = { + "gemma-2b": ModelSAEConfig( + model_id="google/gemma-2-2b", + sae_release="gemma-scope-2b-pt-res-canonical", + sae_id_template="layer_{layer}/width_16k/canonical", + trust_remote_code=False, + ), + "qwen3-0.6b": ModelSAEConfig( + model_id="Qwen/Qwen3-0.6B", + sae_release="mwhanna-qwen3-0.6b-transcoders-lowl0", + sae_id_template="layer_{layer}", + trust_remote_code=True, + ), +} + +DEFAULT_LANGUAGES = ["arg_Latn", "wuu_Hans", "nus_Latn", "azb_Arab"] +DEFAULT_LAYERS = [0, 2, 5, 7, 10, 15, 17] + + +# --------------------------------------------------------------------------- +# Data loading (openlanguagedata/flores_plus per language code) +# --------------------------------------------------------------------------- + + +def load_flores_texts_per_language( + language_codes: Sequence[str], + n_per_lang: int = 100, + split: str = "dev", + text_key: str = "text", +) -> tuple[list[str], list[list[str]]]: + """ + Returns: + flat_texts: concatenation of all languages in order (for notebook-compatible indexing) + texts_by_lang: list of length len(language_codes), each inner list has up to n_per_lang strings + """ + texts_by_lang: list[list[str]] = [] + flat: list[str] = [] + for code in language_codes: + ds = load_dataset("openlanguagedata/flores_plus", code) + if n_per_lang == -1: + texts = [str(t) for t in ds[split][text_key]] + print(f'Loading text with length: {len(texts)}') + + else: + texts = [str(t) for t in ds[split][text_key][:n_per_lang]] + texts_by_lang.append(texts) + flat.extend(texts) + return flat, texts_by_lang + + +# --------------------------------------------------------------------------- +# Core computation (SNLP.ipynb) +# --------------------------------------------------------------------------- + + +def gather_residual_activations(model, target_layer: int, inputs: torch.Tensor) -> torch.Tensor: + target_act = None + + def gather_target_act_hook(mod, inp, outputs): + nonlocal target_act + target_act = outputs[0] + return outputs + + handle = model.model.layers[target_layer].register_forward_hook(gather_target_act_hook) + try: + _ = model.forward(inputs) + finally: + handle.remove() + assert target_act is not None + return target_act + + +def compute_top_index_per_lan_for_layer( + model, + tokenizer, + sae: SAE, + layer: int, + target_lan: Sequence[str], + texts_by_lang: Sequence[Sequence[str]], + device: torch.device, + n_texts_per_lan: int | None = None, +) -> tuple[torch.Tensor, torch.Tensor]: + """ + texts_by_lang[i] = list of strings for target_lan[i]. + If n_texts_per_lan is set, only the first n_texts_per_lan texts per language are used. + """ + sae_activations_per_language: dict[str, list[torch.Tensor]] = {} + with torch.no_grad(): + for lan, lang_texts in zip(target_lan, texts_by_lang): + if n_texts_per_lan != -1: + lang_texts = list(lang_texts)[:n_texts_per_lan] + activations: list[torch.Tensor] = [] + for text in lang_texts: + inputs = tokenizer.encode(text, return_tensors="pt", add_special_tokens=True).to(device) + target_act = gather_residual_activations(model, layer, inputs) + sae_act = sae.encode(target_act).cpu() + if len(sae_act.shape) == 2: + sae_act = sae_act.unsqueeze(0) + activations.append(sae_act) + sae_activations_per_language[lan] = activations + + avg_act_per_lan: list[torch.Tensor] = [] + for lan in target_lan: + avg_act_per_lan.append(torch.cat(sae_activations_per_language[lan], dim=1).mean(-2)) + avg_act_per_lan_t = torch.cat(avg_act_per_lan) # (num_languages, num_features) + + top_index_per_lan: list[torch.Tensor] = [] + top_values_per_lan: list[torch.Tensor] = [] + for i in range(len(avg_act_per_lan_t)): + mean = avg_act_per_lan_t[i] + gamma = torch.cat([avg_act_per_lan_t[:i], avg_act_per_lan_t[i + 1 :]]).mean(0) + v = mean - gamma + sorted_values, sorted_indices = torch.sort(v, descending=True) + top_values_per_lan.append(sorted_values) + top_index_per_lan.append(sorted_indices) + + return torch.stack(top_index_per_lan), torch.stack(top_values_per_lan) + + +def load_model_and_tokenizer( + model_id: str, + device: torch.device, + trust_remote_code: bool = False, + dtype: torch.dtype | None = None, +) -> tuple[Any, Any]: + if dtype is None: + dtype = torch.bfloat16 if device.type == "cuda" else torch.float32 + model = AutoModelForCausalLM.from_pretrained( + model_id, + torch_dtype=dtype, + device_map=None, + trust_remote_code=trust_remote_code, + ).to(device) + model.eval() + tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=trust_remote_code) + return model, tokenizer + + +# --------------------------------------------------------------------------- +# Save / load +# --------------------------------------------------------------------------- + + +@dataclass +class VScoreRunMeta: + model_id: str + sae_release: str + sae_id_template: str + languages: list[str] + layers: list[int] + n_texts_per_lan: int + split: str + + +def save_v_score_run( + out_dir: str | Path, + meta: VScoreRunMeta, + per_layer: dict[int, dict[str, torch.Tensor]], +) -> None: + out = Path(out_dir) + out.mkdir(parents=True, exist_ok=True) + with open(out / "meta.json", "w", encoding="utf-8") as f: + json.dump(asdict(meta), f, indent=2) + payload = { + "layers": {str(k): {kk: vv.cpu() for kk, vv in v.items()} for k, v in per_layer.items()}, + } + torch.save(payload, out / "v_scores.pt") + + +def load_v_score_run(run_dir: str | Path) -> tuple[VScoreRunMeta, dict[int, dict[str, torch.Tensor]]]: + run = Path(run_dir) + with open(run / "meta.json", encoding="utf-8") as f: + raw = json.load(f) + meta = VScoreRunMeta(**raw) + try: + data = torch.load(run / "v_scores.pt", map_location="cpu", weights_only=False) + except TypeError: + data = torch.load(run / "v_scores.pt", map_location="cpu") + layers: dict[int, dict[str, torch.Tensor]] = {} + for k, v in data["layers"].items(): + layers[int(k)] = v + return meta, layers + + +# --------------------------------------------------------------------------- +# Visualization +# --------------------------------------------------------------------------- + + + + +# --------------------------------------------------------------------------- +# CLI +# --------------------------------------------------------------------------- + + +def build_parser() -> argparse.ArgumentParser: + p = argparse.ArgumentParser(description="Multilingual v-scores for SAE features (SNLP notebook logic).") + sub = p.add_subparsers(dest="command", required=True) + + pc = sub.add_parser("compute", help="Load model, compute v-scores, save to disk.") + pc.add_argument( + "--model", + choices=["gemma-2b", "qwen3-0.6b", "custom"], + default="gemma-2b", + help="Preset model + SAE release (or custom via --model-id / --sae-release).", + ) + pc.add_argument("--model-id", type=str, default=None, help="Override Hugging Face model id.") + pc.add_argument("--sae-release", type=str, default=None, help="Override sae_lens release name.") + pc.add_argument( + "--sae-id-template", + type=str, + default=None, + help='Template with {layer}, e.g. "layer_{layer}/width_16k/canonical" or "layer_{layer}".', + ) + pc.add_argument( + "--languages", + type=str, + default=",".join(DEFAULT_LANGUAGES), + help="Comma-separated flores_plus language codes (e.g. arg_Latn,wuu_Hans).", + ) + pc.add_argument("--layers", type=str, default=",".join(map(str, DEFAULT_LAYERS)), help="Comma-separated layer indices.") + pc.add_argument("--n-texts-per-lang", type=int, default=100) + pc.add_argument("--split", type=str, default="dev", help="flores_plus split (default dev).") + pc.add_argument("--out-dir", type=str, default="./v_score_runs/run_default") + pc.add_argument("--device", type=str, default=None, help="cuda or cpu (default: cuda if available).") + return p + + +def cmd_compute(args: argparse.Namespace) -> None: + device = torch.device(args.device or ("cuda" if torch.cuda.is_available() else "cpu")) + languages = [x.strip() for x in args.languages.split(",") if x.strip()] + layers = [int(x.strip()) for x in args.layers.split(",") if x.strip()] + + if args.model == "custom": + if not args.model_id or not args.sae_release or not args.sae_id_template: + raise SystemExit("--model custom requires --model-id, --sae-release, and --sae-id-template") + cfg = ModelSAEConfig( + model_id=args.model_id, + sae_release=args.sae_release, + sae_id_template=args.sae_id_template, + trust_remote_code=True, + ) + else: + preset = PRESETS[args.model] + cfg = ModelSAEConfig( + model_id=args.model_id or preset.model_id, + sae_release=args.sae_release or preset.sae_release, + sae_id_template=args.sae_id_template or preset.sae_id_template, + trust_remote_code=preset.trust_remote_code, + ) + + _, texts_by_lang = load_flores_texts_per_language( + languages, n_per_lang=args.n_texts_per_lang, split=args.split + ) + + print(f"Loading model {cfg.model_id} on {device} …") + model, tokenizer = load_model_and_tokenizer( + cfg.model_id, device, trust_remote_code=cfg.trust_remote_code + ) + + per_layer: dict[int, dict[str, torch.Tensor]] = {} + for layer in layers: + sae_id = cfg.sae_id_template.format(layer=layer) + print(f"Loading SAE {cfg.sae_release} / {sae_id} …") + sae = SAE.from_pretrained(cfg.sae_release, sae_id).to(device) + top_idx, top_val = compute_top_index_per_lan_for_layer( + model, + tokenizer, + sae, + layer, + languages, + texts_by_lang, + device, + n_texts_per_lan=args.n_texts_per_lang, + ) + per_layer[layer] = { + "top_index_per_lan": top_idx.cpu(), + "top_values_per_lan": top_val.cpu(), + } + del sae + if device.type == "cuda": + torch.cuda.empty_cache() + + meta = VScoreRunMeta( + model_id=cfg.model_id, + sae_release=cfg.sae_release, + sae_id_template=cfg.sae_id_template, + languages=list(languages), + layers=list(layers), + n_texts_per_lan=args.n_texts_per_lang, + split=args.split, + ) + out_dir = os.path.abspath(args.out_dir) + save_v_score_run(out_dir, meta, per_layer) + print(f"Saved v-scores to {out_dir}") + + + +def main() -> None: + parser = build_parser() + args = parser.parse_args() + cmd_compute(args) + + +if __name__ == "__main__": + main() diff --git a/score_visualize.ipynb b/score_visualize.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8882ceb1a46f22408158dc174329549f7fc93f34 --- /dev/null +++ b/score_visualize.ipynb @@ -0,0 +1,652 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "06494d9a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fri Mar 20 10:38:39 2026 \n", + "+-----------------------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 575.57.08 Driver Version: 575.57.08 CUDA Version: 12.9 |\n", + "|-----------------------------------------+------------------------+----------------------+\n", + "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|=========================================+========================+======================|\n", + "| 0 NVIDIA A2 Off | 00000000:17:00.0 Off | 0 |\n", + "| 0% 37C P8 9W / 60W | 0MiB / 15356MiB | 0% Default |\n", + "| | | N/A |\n", + "+-----------------------------------------+------------------------+----------------------+\n", + " \n", + "+-----------------------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=========================================================================================|\n", + "| No running processes found |\n", + "+-----------------------------------------------------------------------------------------+\n" + ] + } + ], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "markdown", + "id": "caa19707", + "metadata": {}, + "source": [ + "### Visualizing Pre-exported Scores" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "cb4d8f45", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/python/lib/python3.13/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "\n", + "from __future__ import annotations\n", + "\n", + "import argparse\n", + "import json\n", + "import os\n", + "from dataclasses import asdict, dataclass\n", + "from pathlib import Path\n", + "from typing import Any, Literal, Sequence\n", + "\n", + "import torch\n", + "from datasets import load_dataset\n", + "from matplotlib import pyplot as plt\n", + "from sae_lens import SAE\n", + "from transformers import AutoModelForCausalLM, AutoTokenizer\n", + "import seaborn as sns\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3bde18d8", + "metadata": {}, + "outputs": [], + "source": [ + "from score import *" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "baf87fe2", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def visualize_top_v_scores_notebook(\n", + " run_dir: str | Path,\n", + " layer: int,\n", + " top_head: int = 4,\n", + " extra_rank_index: int = 100,\n", + " lang_indices: Sequence[int] | None = None,\n", + " title: str | None = None,\n", + " save_path: str | Path | None = None,\n", + " show: bool = True,\n", + " ylim_max: float | None = None,\n", + ") -> pd.DataFrame:\n", + " \"\"\"\n", + " Grouped bar plot (seaborn) like SNLP.ipynb: for each language, show the first `top_head`\n", + " v-scores (ranks 1..top_head) plus one bar at sorted-rank index `extra_rank_index`\n", + " (e.g. index 100 = 101st-highest v for that language).\n", + "\n", + " Returns the long-form DataFrame used for plotting (for tests / further analysis).\n", + " \"\"\"\n", + " meta, per_layer = load_v_score_run(run_dir)\n", + " if layer not in per_layer:\n", + " raise KeyError(f\"Layer {layer} not in saved run. Available: {sorted(per_layer.keys())}\")\n", + " tv = per_layer[layer][\"top_values_per_lan\"]\n", + " n_lang, n_feat = tv.shape[0], tv.shape[1]\n", + "\n", + " indices = list(range(n_lang))\n", + "\n", + " data_for_plot: list[dict[str, Any]] = []\n", + " for i in indices:\n", + " if i < 0 or i >= n_lang:\n", + " continue\n", + " lang = meta.languages[i] if i < len(meta.languages) else str(i)\n", + " row = tv[i]\n", + " head_n = min(top_head, n_feat)\n", + " parts = [row[:head_n]]\n", + " if extra_rank_index is not None and extra_rank_index >= 0 and extra_rank_index < n_feat:\n", + " parts.append(row[extra_rank_index : extra_rank_index + 1])\n", + " values = torch.cat(parts).cpu().numpy()\n", + " for j in range(len(values)):\n", + " \n", + " data_for_plot.append(\n", + " {\n", + " \"Language\": lang,\n", + " \"Feature Rank\": j + 1,\n", + " \"Value\": float(values[j]),\n", + " }\n", + " )\n", + "\n", + " df_plot = pd.DataFrame(data_for_plot)\n", + " if df_plot.empty:\n", + " raise ValueError(\"No rows to plot (check lang_indices and tensor shapes).\")\n", + "\n", + " n_bars = int(df_plot.groupby(\"Language\").size().iloc[0])\n", + " plt.figure(figsize=(12, 6))\n", + " sns.barplot(x=\"Language\", y=\"Value\", hue=\"Feature Rank\", data=df_plot, palette=\"viridis\")\n", + " plt.ylabel(\"v values\")\n", + " plt.xlabel(\"Language\")\n", + " plt.title(\n", + " f\"Top {n_bars} v values per language at layer {layer} ({meta.model_id})\"\n", + " )\n", + " if ylim_max is not None:\n", + " plt.ylim(0, ylim_max)\n", + "\n", + " plt.grid(axis=\"y\", linestyle=\"--\", alpha=0.7)\n", + " plt.legend(title=\"Top-k feature\")\n", + " plt.tight_layout() " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "cfab5ff0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnIpJREFUeJzs3Xl8U3X2//H3TdKVlpZCWUopm7JvKoiICghSGFzQGUcZVHCfr+C+jDqOgqPiNg6Mo4yOjjiuCOLyE0EBEQfUkSIqyCCyyr5T1i5J7u+PktumSdOkDTddXs/Hg8eDnt7c+zn3JDf3nn5yY5imaQoAAAAAAACwkSPWAwAAAAAAAED9Q1MKAAAAAAAAtqMpBQAAAAAAANvRlAIAAAAAAIDtaEoBAAAAAADAdjSlAAAAAAAAYDuaUgAAAAAAALAdTSkAAAAAAADYjqYUAAAAAAAAbEdTCgBQ73z++ecyDEOff/55rIdSYxmGoQkTJsR6GKjAwIEDNXDgwFgPI2Y2b96sxMRELVmyJNZDici0adNkGIY2btwY66EgSsaOHauUlJRKl9u7d68aNGigjz/+2IZRAUDtQVMKAGo4wzDC+mdHg6WibT/++OMnfNtAXfbxxx/Xqybg//73Pw0bNkwpKSnKyMjQlVdeqd27d4f9+Icfflh9+/ZV//79T+Aoa6b9+/fL5XLpnXfeifVQaqxZs2bpsssuU7t27ZScnKyOHTvqzjvv1IEDB8J6/ObNmzVx4kSdfvrpatSokZo0aaKBAwdq/vz5VR5T48aNdd111+lPf/pTldcBAHWRK9YDAACE9tprr/n9/O9//1vz5s0LiHfu3NmW8Zx33nm66qqr/GKnnHKKLdsG6qqPP/5Yzz33XL1oTG3ZskXnnHOO0tLS9Nhjj+nw4cN6+umntWLFCn3zzTeKj48P+fjdu3fr1Vdf1auvvmrTiGuWTz75RIZhaOjQobEeSo11ww03KCsrS1dccYVycnK0YsUK/f3vf9fHH3+sb7/9VklJSSEf/8EHH+iJJ57QyJEjNWbMGLndbv373//Weeedp3/961+6+uqrqzSu3//+9/rb3/6mzz77TOeee26V1gEAdQ1NKQCo4a644gq/n7/++mvNmzcvIG6XDh06xGzbiJ6CggLFx8fL4WDSNKLL6/WqqKhIiYmJQX//2GOP6ciRI1q2bJlycnIkSaeffrrOO+88TZs2TTfccEPI9b/++utyuVy64IILoj722uDjjz9W//79lZ6eHuuh1FgzZ84M+HjraaedpjFjxuiNN97QddddF/LxgwYN0i+//KImTZpYsd///vfq1auXHnzwwSo3pTp37qxu3bpp2rRpNKUA4DjORAGgDjhy5IjuvPNOtWrVSgkJCerYsaOefvppmabpt5xhGBo/frzeeOMNdezYUYmJiTrttNP0xRdfRLS9Y8eOqaCgIOzlZ86cKcMwtGjRooDfvfDCCzIMQytXrgz62Ly8PBmGEXRWhG/GwEcffSRJ2rRpk2666SZ17NhRSUlJaty4sS699NKw7t/Spk0bjR07NiAe7N49hYWFeuihh3TSSScpISFBrVq10j333KPCwkK/5ebNm6ezzjpL6enpSklJUceOHXX//fdXOpZI6rR161Zdc801atasmRISEtS1a1f961//8lvGdw+tt99+Ww888IBatmyp5ORkHTx4sNKx+IS7b333zFmyZInuuOMOZWZmqkGDBrr44osDPp7l9Xo1YcIEZWVlKTk5WYMGDdKqVasCajFhwgQZhhEwpmD35/nggw80YsQIZWVlKSEhQe3bt9ef//xneTyegMc/99xzateunZKSknT66afrP//5T7XqHcx//vMfXXrppcrJybEee/vtt+vYsWPWMmPHjtVzzz0nyf8jspEoKirSgw8+qNNOO01paWlq0KCBzj77bC1cuNBaxjRNtWnTRhdddFHA4wsKCpSWlqYbb7wx4rzLPl+7du2qhIQEzZ07t8Kxvvvuuzr//POthpQkDRkyRB06dAjrI2nvv/+++vbtG/Q+PuHWdNeuXbr22mvVrFkzJSYmqmfPnkGPMeEeW48dO6ZbbrlFTZo0UWpqqi688EJt3bo17HuzzZkzR2effbYaNGig1NRUjRgxQj/++GPAcl6vV3PnztWIESOqtO1IjhfvvPOOJk6cqJYtWyo1NVW/+c1vlJ+fr8LCQt12221q2rSpUlJSdPXVV1f4nJgxY4a6dOmipKQk9evXTytWrJBUctw/6aSTlJiYqIEDBwYcR8J53YQS7H5rF198saSSj45WpmvXrn4NKUlKSEjQr371K23ZskWHDh0KeMz69euVm5urBg0aKCsrSw8//HDA80QqmW38//7f/wv6OwCoj5gpBQC1nGmauvDCC7Vw4UJde+216tWrlz755BPdfffd2rp1q/7617/6Lb9o0SJNnz5dt9xyixISEvT8889r2LBh+uabb9StW7dKtzdt2jQ9//zzMk1TnTt31gMPPKDf/e53IR8zYsQIpaSk6J133tGAAQP8fjd9+nR17dq1wm337t1b7dq10zvvvKMxY8YEPLZRo0bKzc2VJC1dulRffvmlLr/8cmVnZ2vjxo2aOnWqBg4cqFWrVik5ObnS/Crj9Xp14YUXavHixbrhhhvUuXNnrVixQn/961+1Zs0avf/++5KkH3/8Ueeff7569Oihhx9+WAkJCVq7dm3YN2YOp047d+7UGWecYV0AZmZmas6cObr22mt18OBB3XbbbX7r/POf/6z4+HjdddddKiwsrPRjUmVFum9vvvlmNWrUSA899JA2btyoyZMna/z48Zo+fbq1zH333acnn3xSF1xwgXJzc/X9998rNzc3ooZnedOmTVNKSoruuOMOpaSk6LPPPtODDz6ogwcP6qmnnrKWmzp1qsaPH6+zzz5bt99+uzZu3KiRI0eqUaNGys7OtpYLt94VmTFjho4ePar/+7//U+PGjfXNN9/o2Wef1ZYtWzRjxgxJ0o033qht27YF/VhuuA4ePKiXXnpJo0aN0vXXX69Dhw7p5ZdfVm5urr755hv16tVLhmHoiiuu0JNPPql9+/YpIyPDevz/+3//TwcPHrRmQUaa92effaZ33nlH48ePV5MmTdSmTZug49y6dat27dql3r17B/zu9NNPr/Qm0MXFxVq6dKn+7//+L+B34db02LFjGjhwoNauXavx48erbdu2mjFjhsaOHasDBw7o1ltvlRTZsXXs2LF65513dOWVV+qMM87QokWL/BpHobz22msaM2aMcnNz9cQTT+jo0aOaOnWqzjrrLC1fvtxvXy5dulS7d+/Wr371q4i3HenxYtKkSUpKStK9996rtWvX6tlnn1VcXJwcDof279+vCRMm6Ouvv9a0adPUtm1bPfjgg36P/89//qMPP/xQ48aNs9Z3/vnn65577tHzzz+vm266Sfv379eTTz6pa665Rp999pn12HBeN5HasWOHJAU0myJdR3JycsDxzuPxaNiwYTrjjDP05JNPau7cuXrooYfkdrv18MMP+y172mmn6a9//at+/PHHsN5zAaDOMwEAtcq4cePMsofv999/35RkPvLII37L/eY3vzENwzDXrl1rxSSZksy8vDwrtmnTJjMxMdG8+OKLK932mWeeaU6ePNn84IMPzKlTp5rdunUzJZnPP/98pY8dNWqU2bRpU9Ptdlux7du3mw6Hw3z44YdDPva+++4z4+LizH379lmxwsJCMz093bzmmmus2NGjRwMe+9VXX5mSzH//+99WbOHChaYkc+HChVasdevW5pgxYwIeP2DAAHPAgAHWz6+99prpcDjM//znP37L/eMf/zAlmUuWLDFN0zT/+te/mpLM3bt3h8wtmHDrdO2115otWrQw9+zZ4/f4yy+/3ExLS7P2hy/fdu3aBd1HFY3hoYcesn4Od9++8sorpiRzyJAhptfrteK333676XQ6zQMHDpimaZo7duwwXS6XOXLkSL91TpgwwZTkV4uHHnrIDHbK4tvWhg0bQo7zxhtvNJOTk82CggLTNEueO40bNzb79OljFhcXW8tNmzbNlFSlelck2HgmTZpkGoZhbtq0yYqVf11Xpvzz0u12m4WFhX7L7N+/32zWrJnfa+Snn34yJZlTp071W/bCCy8027RpY9UskrwlmQ6Hw/zxxx8rHffSpUsDnjM+d999tynJqlMwa9euNSWZzz77rF88kppOnjzZlGS+/vrrVqyoqMjs16+fmZKSYh48eNA0zfCPrcuWLTMlmbfddpvfcmPHjg14HZV/zh46dMhMT083r7/+er/H7tixw0xLSwuI/+lPfzJbt25t/RzJtiM9XnTr1s0sKiqylhs1apRpGIY5fPhwv8f369fPb0ymWfKcSEhI8HttvvDCC6Yks3nz5tY+Ns2S43s4r+Ngr5tIXHvttabT6TTXrFlTpcf//PPPZmJionnllVf6xceMGWNKMm+++WYr5vV6zREjRpjx8fEB7wFffvmlKcmcPn16lcYBAHUNH98DgFru448/ltPp1C233OIXv/POO2WapubMmeMX79evn0477TTr55ycHF100UX65JNPgn7EqawlS5bo1ltv1YUXXqjf//73WrZsmbp166b777+/0o9VXHbZZdq1a5fftwTOnDlTXq9Xl112WaWPLS4u1qxZs6zYp59+qgMHDvg9tuzNa4uLi7V3716ddNJJSk9P17fffhtyG+GaMWOGOnfurE6dOmnPnj3WP9/9QXwfl/Ld7+WDDz6Q1+uNeDuV1ck0Tb377ru64IILZJqm31hyc3OVn58fkPOYMWMqvcFvRSLdtzfccIPfR9DOPvtseTwebdq0SZK0YMECud1u3XTTTX6Pu/nmm6s0vmDjPHTokPbs2aOzzz5bR48e1erVqyWVfCR07969uv766+VylU4aHz16tBo1auS3vnDrHc54jhw5oj179ujMM8+UaZpavnx5tXIty+l0WjPfvF6v9u3bJ7fbrd69e/vVp0OHDurbt6/eeOMNK7Zv3z7NmTNHo0ePtmoWad4DBgxQly5dKh2n7ziRkJAQ8DvfPahCHUv27t0rSQF1iqSmH3/8sZo3b65Ro0ZZsbi4ON1yyy06fPiw9THjcI+tvo8qVuW5PG/ePB04cECjRo3y289Op1N9+/YN2M8ff/yx3yyocLddlePFVVddpbi4OOvnvn37yjRNXXPNNX7L9e3bV5s3b5bb7faLDx482G+WV9++fSVJv/71r5WamhoQX79+vRWL9uvmzTff1Msvv6w777xTJ598csSPP3r0qC699FIlJSVV+G2z48ePt/7vm41WVFQU8I19vufjnj17Ih4HANRFfHwPAGq5TZs2KSsry+8kXyr9Nj5fE8An2Al5hw4ddPToUe3evVvNmzcPe9vx8fEaP3681aA666yzKlx22LBhSktL0/Tp0zV48GBJJR+/69Wrlzp06BByOz179lSnTp00ffp0XXvttdZjmzRp4nez2GPHjmnSpEl65ZVXtHXrVr97duTn54edVyg///yz/ve//ykzMzPo73ft2iWppJH20ksv6brrrtO9996rwYMH65JLLtFvfvObsG4uXlmdHA6HDhw4oBdffFEvvvhiyLH4tG3bttLtViTSfVv2fkFS6YXY/v37JZU+L0866SS/5TIyMgKaCJH48ccf9cADD+izzz4LuGeWb5wVbdvlcgV87Czcelfkl19+0YMPPqgPP/zQyr38eKLl1Vdf1V/+8hetXr1axcXFVrx83a+66iqNHz9emzZtUuvWrTVjxgwVFxfryiuvtJaJNO9wn1u+ZkOw+3H5PrYZTuPULHc/nkhqumnTJp188skBr8Pyx8xwj62bNm2Sw+EI2AflxxLMzz//LEkV3vS6YcOG1v937Nihb7/91u/jYOFue/fu3REfL8q/htPS0iRJrVq1Coh7vV7l5+ercePGVXq8JL/XRzivm2PHjgW8hoK9f/3nP//Rtddeq9zcXD366KN+v9u9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77yjTz75RL1799bDDz+sL774QiNGjFDr1q21a9cuPf/888rOzg557y2fcOr0+OOPa+HCherbt6+uv/56denSRfv27dO3336r+fPnV/qRykhUZ98G06xZM9166636y1/+ogsvvFDDhg3T999/rzlz5qhJkyZ+s3OGDh2qnJwcXXvttVYT5V//+pcyMzP1yy+/WMudeeaZatSokcaMGaNbbrlFhmHotddeC2imxcfHa8KECbr55pt17rnn6re//a02btyoadOmqX379n7bDrfewXTq1Ent27fXXXfdpa1bt6phw4Z69913g370zNfUveWWW5Sbmxu0URTK+eefr1mzZuniiy/WiBEjtGHDBv3jH/9Qly5ddPjw4YDlR4wYocaNG2vGjBkaPny4mjZt6vf76uRdmfvvv18zZszQoEGDdOutt+rw4cN66qmn1L1794CPYwVz0UUX6Y9//KMOHjxo3XMpkprecMMNeuGFFzR27FgtW7ZMbdq00cyZM60ZY75ZUeEeW0877TT9+te/1uTJk7V3716dccYZWrRokTVTJtRMs4YNG2rq1Km68sordeqpp+ryyy+3ntezZ89W//799fe//12LFy/WwYMHA5pSkWzbzuNFdUTyuqnIsGHDtH79et1zzz1avHixFi9ebP2uWbNmOu+880I+/r333tM999yjk08+WZ07d9brr7/u9/vzzjtPzZo1s35OTEzU3LlzNWbMGPXt21dz5szR7Nmzdf/99wc0xObNm6cLLriAe0oBgI89X/IHAIiWYF8df+jQIfP22283s7KyzLi4OPPkk082n3rqKevr3X0kmePGjTNff/118+STTzYTEhLMU045xVy4cGGl2/3000/N8847z2zevLkZFxdnpqenm0OHDjUXLFgQ0fjnzZtnSjINwzA3b94c0WN//vlnU5IpyVy8eHHA7/fv329effXVZpMmTcyUlBQzNzfXXL16tdm6dWtzzJgx1nK+rzwvn/df/vIXs2XLlmZCQoLZv39/My8vzxwwYIDf18mbZsnXxz/xxBNm165dzYSEBLNRo0bmaaedZk6cONHMz883TdM0FyxYYF500UVmVlaWGR8fb2ZlZZmjRo0K6+vII6nTzp07zXHjxpmtWrUy4+LizObNm5uDBw82X3zxxYB8Z8yYUem2y46h7NfJh7tvfV95v3TpUr/1Bdvnbrfb/NOf/mQ2b97cTEpKMs8991zzf//7n9m4cWPz97//vd/jly1bZvbt29eMj483c3JyzGeeecbaVtmvkl+yZIl5xhlnmElJSWZWVpZ5zz33mJ988knQev/tb38zW7dubSYkJJinn366uWTJEvO0004zhw0b5rdcOPWuyKpVq8whQ4aYKSkpZpMmTczrr7/e/P77701J5iuvvOK3L26++WYzMzPTNAwj4DVeXvnnpdfrNR977DErn1NOOcX86KOPzDFjxpitW7cOuo6bbrrJlGS++eabQX8fbt6+52skVq5caQ4dOtRMTk4209PTzdGjR5s7duwI67E7d+40XS6X+dprrwX8Ltya7ty503o+x8fHm927d/erh0+4x9YjR46Y48aNMzMyMsyUlBRz5MiR5k8//WRKMh9//HFruWDPWdMseX3k5uaaaWlpZmJiotm+fXtz7NixZl5enmmapnnXXXeZXbp0Cbo/wt22L++qHi8qem0/9NBDpiRz9+7dVizYc2LDhg2mJPOpp54KyL389sJ93VTE9z4R7F/543kwvpwq+lf2WDJmzBizQYMG5rp166zndLNmzcyHHnrI9Hg8fuv93//+Z0oy58+fX+kYAKC+MEyzCnccBQDUSoZhaNy4cUE/IoWaoz7X6cCBA2rUqJEeeeQR/fGPf7R1216vV5mZmbrkkkuCfmytrrn99tv18ssva8eOHUpOTo71cCJy7bXXas2aNfrPf/4TcrlY1vS7777TKaecotdff12jR4+u1rq6dOmi888/X08++aTt20b03Hbbbfriiy+0bNkyZkoBwHHcUwoAAMRE2RsM+/huuD1w4MATuu2CgoKAj/X9+9//1r59+074tmuCgoICvf766/r1r39d6xpSUskN3JcuXaolS5ZYsVjWtKLnssPhCLj3XaSKiop02WWXVfjRxhO5bUTP3r179dJLL+mRRx6hIQUAZXBPKQAAEBPTp0/XtGnT9Ktf/UopKSlavHix3nrrLQ0dOlT9+/c/odv++uuvdfvtt+vSSy9V48aN9e233+rll19Wt27dKr3Zdm22a9cuzZ8/XzNnztTevXvDuoFzTZSTk6OCggK/WCxr+uSTT2rZsmUaNGiQXC6X5syZozlz5uiGG25Qq1atqrXu+Pj4oN+iaMe2ET2NGzcOen83AKjvaEoBAICY6NGjh1wul5588kkdPHjQuvn5I488csK33aZNG7Vq1Up/+9vftG/fPmVkZOiqq67S448/HtZN+2urVatWafTo0WratKn+9re/Wd8IWRfEsqZnnnmm5s2bpz//+c86fPiwcnJyNGHCBFs+ghrLbQMAUF3cUwoAAAAAAAC2455SAAAAAAAAsB1NKQAAAAAAANiuVt9Tyuv1atu2bUpNTeVbLAAAAAAAAGoA0zR16NAhZWVlyeGoeD5UrW5Kbdu2jW8VAQAAAAAAqIE2b96s7OzsCn9fq5tSqampkkqSbNiwYYxHAwAAAAAAgIMHD6pVq1ZW36Yitbop5fvIXsOGDWlKAQAAAAAA1CCV3WqJG50DAAAAAADAdjSlAAAAAAAAYDuaUgAAAAAAALBdrb6nVLg8Ho+Ki4tjPQxIio+PD/l1kAAAAAAAoH6o000p0zS1Y8cOHThwINZDwXEOh0Nt27ZVfHx8rIcCAAAAAABiqE43pXwNqaZNmyo5ObnSu77jxPJ6vdq2bZu2b9+unJwc6gEAAAAAQD0W06aUx+PRhAkT9Prrr2vHjh3KysrS2LFj9cADD1S7YeHxeKyGVOPGjaM0YlRXZmamtm3bJrfbrbi4uFgPBwAAAAAAxEhMm1JPPPGEpk6dqldffVVdu3ZVXl6err76aqWlpemWW26p1rp995BKTk6OxlARJb6P7Xk8HppSAAAAAADUYzFtSn355Ze66KKLNGLECElSmzZt9NZbb+mbb76J2jb4iFjNQj0AAAAAAIAU46bUmWeeqRdffFFr1qxRhw4d9P3332vx4sV65plngi5fWFiowsJC6+eDBw9Kktxut9xut6SSG2k7HA55vV6Zpmn9k0oaIr7/lxVpPBLR2uaJjkeiOtv01cPr9Uoquc+U7/9Saf08Ho/fuiqKO51OGYZh1b9sXCqZkRVO3OVyyTRNv7hhGHI6nQFjrChe9rlHTuRETuRETuRETuRETuRETuRETuRUn3MKR0ybUvfee68OHjyoTp06yel0yuPx6NFHH9Xo0aODLj9p0iRNnDgxIL58+XI1aNBAUsk9i9q3b68tW7aoqKhIR48elcfjUXx8vOLj41VQUOC3cxISEhQXF6djx4757eDExES5XC4dPXrUbwcnJSXJ4XDoyJEjfmNo0KCBvF6vjh07ZsUMw1CDBg3k8Xj00ksv6d5779WWLVvkcDiUnJwst9vt12RzOp1KSkpScXGxNfbrr79eCxcu1KFDh7R9+3alpKRYy8c6p4KCAisebk6FhYUqKirSli1b1KFDB23YsEG7d++2ls/OzlZ2drbWrFmj/Px8K96uXTs1bdpUK1eu9BtPp06dlJ6eruXLl/vtgx49eig+Pl55eXl+OfXu3VtFRUX64Ycf/MbYp08f5efna/Xq1X77pWfPntqzZ4/Wr19vxdPS0tS5c2dt27ZNW7ZsseK+5x45kRM5kRM5kRM5kRM5kRM5kRM5kVN9zmnVqlUKh2FWd9pMNbz99tu6++679dRTT6lr16767rvvdNttt+mZZ57RmDFjApYPNlOqVatW2rt3rxo2bCiptCt39OhRbdy4UW3btlViYqKk0hk7Docj5LgefPBBTZgwIaqziqZNm6bbb79d+/fv94tXtLwkTZ06VRMmTNCCBQuUmZmppk2bBnz8rSqzlgYOHKiePXtq8uTJ1cqpKvGCggJt2LBBbdq0UXJyMh1kciInciInciInciInciInciInciKnOpbT/v37lZGRofz8fKtfE0xMZ0rdfffduvfee3X55ZdLkrp3765NmzZp0qRJQZtSCQkJSkhICIi7XC65XP6pOBwOGYZh/fMxDEPbt2+3fp4+fboefPBB/fTTT1YsJSXFekz5JlBVlB1D+bFUtLwkrV+/Xp07d1b37t0rXX8k8fJjqgrDMFRUVGTduDzcsfi262sM+p6w5fleVOHGy9e/KnHDMILGKxpjpHFyIqeK4uREThI5VTTGSOPkRE4SOVU0xkjj5EROEjlVNMZI4+REThI5BRN6ytAJdvTo0YCkfJ25E6l58+bWv7S0NBmGYf3ctGlTPfPMM8rOzlZCQoJ69eqluXPnWo/duHGjDMPQ22+/rTPPPFOJiYnq1q2bFi1aFNEYdu/erd69e+viiy/2m/3lM3DgQP3lL3/RF198Yc1ukkpmi911111q2bKlGjRooL59++rzzz+3Hrd3716NGjVKLVu2VHJysrp376633nrL+v3YsWO1aNEiTZkyxWoQbdy4UdOmTVN6errfGN5//32/JtOECRPUq1cvvfTSS34z0A4cOKDrrrtOmZmZatiwoc4991x9//33Ee0PAAAAAABQv8S0KXXBBRfo0Ucf1ezZs7Vx40a99957euaZZ3TxxRfHbExTpkzRX/7yFz399NP64YcflJubqwsvvFA/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g1JERERE/+/58+dISkpSWNakSRO8ffsWwcHBkMlkkMvl2LJlS6W3PX36dPj7+6Ndu3b429/+huDgYGRlZUFNTU0s07NnT4SGhkImk6Fhw4bw9fWFurq6uL5du3YVxjJ9+nQ4ODggKCgIMpkMZ8+exalTpxTq8fX1Rf/+/dGyZUsMGTIEEokE169fx82bN/HTTz9V+r0RERERfQhevkdERET0/86fPw8rKyuFx549exAUFIQVK1agY8eOCA8Ph7+/f6W37ePjA1dXV4wePRp2dnbQ0dGBs7OzwuVy8+fPh6OjI/r3749+/fph4MCBCvNUWVhYVBiLvb09tmzZgqCgIFhYWODXX3+Fp6enQj3Ozs6IiIjAmTNn0LlzZ3Tr1g1r1qyBiYnJB3xqRERERB+Gd98jIiIi+gQKCwshlUoxbNgw+Pn5fdS6JkyYgNu3byM2Nvaj1kNERERUGbx8j4iIiKgaPHjwAGfOnIGjoyPy8vKwYcMG3L9/HyNGjFB5XatXr0bv3r1Rv359nDp1CmFhYdi0aZPK6yEiIiKqCg5KEREREVUDiUSC0NBQeHl5QRAEdOzYEdHR0ZBKpSqv68qVK1i5ciVevHiBNm3aYP369Rg/frzK6yEiIiKqCl6+R0RERERERERE1Y4TnRMRERERERERUbXjoBQREREREREREVU7DkoREREREREREVG146AUERERERERERFVOw5KERERERERERFRteOgFBERERERERERVTsOShERERERERERUbXjoBQREREREREREVU7DkoREREREREREVG1+z/xLu6zo5HKcwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAovxJREFUeJzs3Xd8VHX2//H3nZk0ICQEElroSm8uIKIiCAiyWNBdK65Y1/0Jdl3L+lVYXbGvrgV3113AjiiWFQuoFCmKKAiICEqRJp1QU2bu5/dHmJuZZDKZJJOZkLyejwePBzm5c+dz7rlz596Tz9yxjDFGAAAAAAAAQAy54j0AAAAAAAAA1D40pQAAAAAAABBzNKUAAAAAAAAQczSlAAAAAAAAEHM0pQAAAAAAABBzNKUAAAAAAAAQczSlAAAAAAAAEHM0pQAAAAAAABBzNKUAAAAAAAAQczSlAAC1zpw5c2RZlubMmRPvoVRblmVp3Lhx8R4GSjFw4EANHDgw3sOIm4MHDyorK0uvvvpqvIdSLhx7ap5x48bJsizt2rUr7HIFBQVq0aKFnn/++RiNDACODTSlAKCasywron+xuMgp7bkffvjhKn9uoCb78MMPa0UT0LZtTZ48Weecc45atGihunXrqmvXrnrwwQeVm5sb8Xqefvpppaam6uKLL67C0VZPtm0rMzNTjz76aLyHUm199tlnuuqqq9S+fXvVqVNHbdu21TXXXKNt27ZF9Pjdu3frscce02mnnabMzEylp6frpJNO0tSpUys8poSEBN16663629/+Vq59HQBqOk+8BwAACO/ll18O+vmll17SrFmzSsQ7deoUk/GcccYZuvzyy4NiJ5xwQkyeG6ipPvzwQz333HM1vjF1+PBhXXnllTrppJP0pz/9SVlZWVq0aJHuv/9+ffbZZ/r8889lWVbYdRQUFOjpp5/WLbfcIrfbHaORVx+LFy/Wrl27NGLEiHgPpdq68847tWfPHl1wwQU6/vjjtW7dOj377LP64IMPtGzZMjVp0iTs4xctWqS//OUv+u1vf6t7771XHo9Hb7/9ti6++GKtWrVK48ePr9C4rrzySt1111167bXXdNVVV1VoHQBQ09CUAoBq7rLLLgv6+csvv9SsWbNKxGOlffv2cXtuRE9ubq4SExPlcjFpGtFl27by8/OVnJxc4neJiYlasGCBTj75ZCd27bXXqnXr1k5jasiQIWHX/8EHH2jnzp268MILoz72Y8GHH36oVq1aqUuXLvEeSrX15JNP6tRTTw06vp155pkaMGCAnn32WT344INhH9+lSxetXbtWrVq1cmLXX3+9hgwZokceeUR//vOfVbdu3XKPKz09XUOHDtXkyZNpSgHAUZyJAkANcOjQId12221q0aKFkpKS1KFDBz3++OMyxgQtZ1mWxo4dq1dffVUdOnRQcnKyevXqpXnz5pXr+Y4cOVKujx+89dZbsixLc+fOLfG7f/7zn7IsSytXrgz52CVLlsiyLE2ZMqXE7z755BNZlqUPPvhAkrRx40Zdf/316tChg1JSUtSwYUNdcMEF2rBhQ5ljbN26ta644ooS8VD37snLy9P999+v4447TklJSWrRooX+/Oc/Ky8vL2i5WbNm6dRTT1V6errq1aunDh066J577ilzLOWp05YtW3TVVVepcePGSkpKUpcuXfTf//43aBn/fWzeeOMN3XvvvWrevLnq1Kmj/fv3lzkWv0i37eTJk2VZlhYsWKBbb71VmZmZqlu3rs477zzt3LkzaFnbtjVu3Dg1a9ZMderU0emnn65Vq1aVqIX/ni3F+Z8rcAzvvfeeRowYoWbNmikpKUnt2rXTAw88IJ/PV+Lxzz33nNq2bauUlBSdeOKJ+uKLLypV71C++OILXXDBBWrZsqXz2FtuuUVHjhxxlrniiiv03HPPSQr+iGx55Ofn67777lOvXr2UlpamunXrqn///po9e7azjDFGrVu31rnnnlvi8bm5uUpLS9N1111X7rwD99cuXbooKSlJH3/8cchxJiYmBjWk/M477zxJ0g8//FBmru+++65at26tdu3alfjdtGnT1LlzZyUnJ6tr16565513dMUVV6h169ZBy0V6zPR6vXrggQfUrl07JSUlqXXr1rrnnntKbINI9+XSfPXVVzrzzDOVlpamOnXqaMCAAVqwYEHIZWfMmBE0S6o8z71v3z7dfPPNTt7HHXecHnnkEdm27SyzYcMGWZalxx9/3HmN1KlTR0OHDtWmTZtkjNEDDzyg7OxspaSk6Nxzz9WePXuCnqd169Y666yzNGfOHPXu3VspKSnq1q2b8zHz6dOnq1u3bs6xbenSpUGPX758ua644gq1bdtWycnJatKkia666irt3r27zG0pSaeddlqJhvtpp52mjIyMiPaxNm3aBDWkpML9fOTIkcrLy9O6detKPGbXrl268MILVb9+fTVs2FA33XRTyPfJM844Q/Pnzy+xzQCgtmKmFAAc44wxOuecczR79mxdffXV6tmzpz755BPdcccd2rJli/7+978HLT937lxNnTpVN954o5KSkvT888/rzDPP1OLFi9W1a9cyn2/y5Ml6/vnnZYxRp06ddO+99+rSSy8N+5gRI0aoXr16evPNNzVgwICg302dOlVdunQp9bl79+6ttm3b6s0339To0aNLPLZBgwYaNmyYJOnrr7/WwoULdfHFFys7O1sbNmzQxIkTNXDgQK1atUp16tQpM7+y2Latc845R/Pnz9cf//hHderUSStWrNDf//53rVmzRu+++64k6fvvv9dZZ52l7t27669//auSkpL0008/lXqhWVwkddq+fbtOOukkpymQmZmpjz76SFdffbX279+vm2++OWidDzzwgBITE3X77bcrLy9PiYmJEedd3m17ww03qEGDBrr//vu1YcMGPfXUUxo7dmzQPVnuvvtuPfroozr77LM1bNgwfffddxo2bFil7rcyefJk1atXT7feeqvq1aunzz//XPfdd5/279+vxx57zFlu4sSJGjt2rPr3769bbrlFGzZs0MiRI9WgQQNlZ2c7y0Va79JMmzZNhw8f1v/7f/9PDRs21OLFi/XMM89o8+bNmjZtmiTpuuuu09atW0N+LDdS+/fv14svvqhLLrlE1157rQ4cOKD//Oc/GjZsmBYvXqyePXvKsixddtllevTRR7Vnzx5lZGQ4j//f//6n/fv3O7Mgy5v3559/rjfffFNjx45Vo0aNSjSByvLrr79Kkho1alTmsgsXLtRvfvObEvEZM2booosuUrdu3TRhwgTt3btXV199tZo3bx60XHmOmddcc42mTJmi3//+97rtttv01VdfacKECfrhhx/0zjvvOMtVZl/+/PPPNXz4cPXq1Uv333+/XC6XJk2apEGDBumLL77QiSeeGLSdli5dqr/+9a/lfu7Dhw9rwIAB2rJli6677jq1bNlSCxcu1N13361t27bpqaeeClr+1VdfVX5+vm644Qbt2bNHjz76qC688EINGjRIc+bM0Z133qmffvpJzzzzjG6//fYSzfCffvpJl156qa677jpddtllevzxx3X22WfrhRde0D333KPrr79ekjRhwgRdeOGF+vHHH51G0qxZs7Ru3TpdeeWVatKkib7//nv961//0vfff68vv/yy3E1bqfDm+AcPHoxoHytNuP30wgsvVOvWrTVhwgR9+eWX+sc//qG9e/fqpZdeClquV69eMsZo4cKFOuussyo8FgCoMQwA4JgyZswYE3j4fvfdd40k8+CDDwYt9/vf/95YlmV++uknJybJSDJLlixxYhs3bjTJycnmvPPOK/O5Tz75ZPPUU0+Z9957z0ycONF07drVSDLPP/98mY+95JJLTFZWlvF6vU5s27ZtxuVymb/+9a9hH3v33XebhIQEs2fPHieWl5dn0tPTzVVXXeXEDh8+XOKxixYtMpLMSy+95MRmz55tJJnZs2c7sVatWpnRo0eXePyAAQPMgAEDnJ9ffvll43K5zBdffBG03AsvvGAkmQULFhhjjPn73/9uJJmdO3eGzS2USOt09dVXm6ZNm5pdu3YFPf7iiy82aWlpzvbw59u2bduQ26i0Mdx///3Oz5Fu20mTJhlJZsiQIca2bSd+yy23GLfbbfbt22eMMebXX381Ho/HjBw5Mmid48aNM5KCanH//febUKcs/udav3592HFed911pk6dOiY3N9cYU7jvNGzY0PTp08cUFBQ4y02ePNlIqlC9SxNqPBMmTDCWZZmNGzc6seKv67IU3y+9Xq/Jy8sLWmbv3r2mcePGQa+RH3/80UgyEydODFr2nHPOMa1bt3ZqVp68JRmXy2W+//77iMdf3JAhQ0z9+vXN3r17wy5XUFBgLMsyt912W4nfdevWzWRnZ5sDBw44sTlz5hhJplWrVk4s0mPmsmXLjCRzzTXXBC13++23G0nm888/N8aUb18ufuyxbdscf/zxZtiwYUGvl8OHD5s2bdqYM844I2id//nPf0xKSoqzX5XnuR944AFTt25ds2bNmqBl77rrLuN2u80vv/xijDFm/fr1RpLJzMx0Xq/GFB6HJZkePXoEvW4uueQSk5iY6Ly+jCk8nkoyCxcudGKffPKJkWRSUlKC9v1//vOfJY7HoV43r7/+upFk5s2bV+J3kXjggQeMJPPZZ59V6PG7d+82WVlZpn///kFx//HpnHPOCYpff/31RpL57rvvguJbt241kswjjzxSoXEAQE3Dx/cA4Bj34Ycfyu1268YbbwyK33bbbTLG6KOPPgqK9+vXT7169XJ+btmypc4991x98sknIT/iFGjBggW66aabdM455+hPf/qTvvnmG3Xt2lX33HNP0MeRQrnooou0Y8eOoG8JfOutt2Tbti666KIyH1tQUKDp06c7sZkzZ2rfvn1Bj01JSXH+X1BQoN27d+u4445Tenq6vv3227DPEalp06apU6dO6tixo3bt2uX8GzRokCQ5H5dKT0+XVPhxssCPxkSqrDoZY/T222/r7LPPljEmaCzDhg1TTk5OiZxHjx4dtI3Ko7zb9o9//GPQbIb+/fvL5/Np48aNkgq/Hcvr9TqzJfxuuOGGCo0v1DgPHDigXbt2qX///jp8+LBWr14tqfAjobt379a1114rj6do0vioUaPUoEGDoPVFWu9IxnPo0CHt2rVLJ598sowxJT6yVBlut9uZ+Wbbtvbs2SOv16vevXsH1ad9+/bq27evXn31VSe2Z88effTRRxo1apRTs/LmPWDAAHXu3LlCY3/ooYf06aef6uGHH3ZeN6XZs2ePjDEl6rR161atWLFCl19+uerVqxc0rm7dugUtG+kx88MPP5Qk3XrrrSWWkwpnZkmV25eXLVumtWvX6tJLL9Xu3bud7Xzo0CENHjxY8+bNCzp+fPjhhzr99NOd/ao8zz1t2jT1799fDRo0CKrpkCFD5PP5Snw8+IILLlBaWprzc9++fSUV3ucw8HXTt29f5efna8uWLUGP79y5s/r161fi8YMGDVLLli1LxAM/Ehf4usnNzdWuXbt00kknSVKFjuXz5s3T+PHjnZle5WXbtkaNGqV9+/bpmWeeCbnMmDFjgn7218C/H/n5991du3aVexwAUBPx8T0AOMZt3LhRzZo1U2pqalDc/218/iaA3/HHH19iHe3bt9fhw4e1c+fOMr+VKFBiYqLGjh3rNKhOPfXUUpf13y9l6tSpGjx4sKTCj9/17NlT7du3D/s8PXr0UMeOHTV16lRdffXVzmMbNWoUdIFx5MgRTZgwQZMmTdKWLVuC7g+Tk5MTcV7hrF27Vj/88IMyMzND/n7Hjh2SChtpL774oq655hrdddddGjx4sM4//3z9/ve/j+jm4mXVyeVyad++ffrXv/6lf/3rX2HH4temTZsyn7c05d22gRedUtGF2N69eyUV7ZfHHXdc0HIZGRklGg7l8f333+vee+/V559/XuKeWf5xlvbcHo+nxMfOIq13aX755Rfdd999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VLIODRo00JAhQ4L+JScnSyo8Pvz2t7/Vli1b9OGHH4b8OLRUuP0DHx94XzT/t5+OGjWq1BmDgZ577rmgn/33nir+HvzNN9/Isqyg+20BQG3GTCkAOMadffbZOv300/WXv/xFGzZsUI8ePTRz5ky99957uvnmm50Ler+uXbtq2LBhuvHGG5WUlORcsI8fPz7s8zz33HN69913dfbZZ6tly5batm2b/vvf/+qXX37Ryy+/7NxkOZyEhASdf/75euONN3To0CE9/vjj5cr1oosu0n333afk5GRdffXVJe7NdNZZZ+nll19WWlqaOnfurEWLFunTTz9Vw4YNy1z3Nddco7feektnnnmmLrzwQv3888965ZVXSmy/P/zhD3rzzTf1pz/9SbNnz9Ypp5win8+n1atX680339Qnn3yi3r17669//avmzZunESNGqFWrVtqxY4eef/55ZWdnh733ll8kdXr44Yc1e/Zs9e3bV9dee606d+6sPXv26Ntvv9Wnn35a5kcqy6My2zaUxo0b66abbtITTzyhc845R2eeeaa+++47ffTRR2rUqFHQ7JyhQ4eqZcuWuvrqq50myn//+19lZmbql19+cZY7+eST1aBBA40ePVo33nijLMvSyy+/XOLiNjExUePGjdMNN9ygQYMG6cILL9SGDRs0efJktWvXLui5I613KB07dlS7du10++23a8uWLapfv77efvvtkLNn/E3dG2+8UcOGDQvZKArnrLPO0vTp03XeeedpxIgRWr9+vV544QV17tw5ZLNjxIgRatiwoaZNm6bhw4crKysr6PeVyTucAwcOaNiwYdq7d6/uuOMO52bhfu3atSvzYv3cc8/Vyy+/rDVr1gR95Oyhhx7Sueeeq1NOOUVXXnml9u7dq2effVZdu3YN2gaRHjN79Oih0aNH61//+pfz0dDFixdrypQpGjlypDPLrjz7cnEul0svvviihg8fri5duujKK69U8+bNtWXLFs2ePVv169fX//73P61fv14//PBDieZTeZ77jjvu0Pvvv6+zzjpLV1xxhXr16qVDhw5pxYoVeuutt7Rhw4Zq8ZGy+vXr67TTTtOjjz6qgoICNW/eXDNnziwxOy6cUaNGafHixbrqqqv0ww8/6IcffnB+V69ePY0cOTLs4xcvXqzLL79cDRs21ODBg4O+GEAqPNYEzqCVCmdA+Wuw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PHmy0tPTy/WYw4cP63e/+53q168vy7L4FkEAAAAAAFBj1MqmlGVZYf+NGzcu3kOUJE2ZMkVffPGFFi5cqG3btiktLS0q6x04cKBuvvnmqKwLAAAAAACgImrst++Fs23bNuf/U6dO1X333acff/zRidWrVy8ewyrh559/VqdOndS1a9d4DyWk/Px858blAAAAAAAA5VErZ0o1adLE+ZeWlibLspyfs7Ky9OSTTyo7O1tJSUnq2bOnPv74Y+exGzZskGVZeuONN3TyyScrOTlZXbt21dy5c8s1hp07d6p3794677zzlJeXV+L3AwcO1BNPPKF58+bJsiwNHDhQkpSXl6fbb79dzZs3V926ddW3b1/NmTPHedzu3bt1ySWXqHnz5qpTp466deum119/3fn9FVdcoblz5+rpp592ZoZt2LAh5McL33333aAbk48bN049e/bUiy++qDZt2ig5OVmStG/fPl1zzTXKzMxU/fr1NWjQIH333Xfl2h4AAAAAAKB2qZVNqXCefvppPfHEE3r88ce1fPlyDRs2TOecc47Wrl0btNwdd9yh2267TUuXLlW/fv109tlna/fu3RE9x6ZNm9S/f3917dpVb731lpKSkkosM336dF177bXq16+ftm3bpunTp0uSxo4dq0WLFumNN97Q8uXLdcEFF+jMM890xpebm6tevXppxowZWrlypf74xz/qD3/4gxYvXuzk169fP1177bXatm2btm3bphYtWkS8fX766Se9/fbbmj59upYtWyZJuuCCC7Rjxw599NFH+uabb/Sb3/xGgwcP1p49eyJeLwAAAAAAqF1oShXz+OOP684779TFF1+sDh066JFHHlHPnj311FNPBS03duxY/e53v1OnTp00ceJEpaWl6T//+U+Z6//xxx91yimnaNiwYZo0aZLcbnfI5TIyMlSnTh0lJiaqSZMmysjI0C+//KJJkyZp2rRp6t+/v9q1a6fbb79dp556qiZNmiRJat68uW6//Xb17NlTbdu21Q033KAzzzxTb775piQpLS1NiYmJqlOnjjM7rLQxhJKfn6+XXnpJJ5xwgrp376758+dr8eLFmjZtmnr37q3jjz9ejz/+uNLT0/XWW29FvF4AAAAAAFC71Mp7SpVm//792rp1q0455ZSg+CmnnFLi42j9+vVz/u/xeNS7d2/98MMPkqQuXbpo48aNkqT+/fvro48+kiQdOXJE/fv316WXXlqiyRWJFStWyOfzqX379kHxvLw8NWzYUJLk8/n00EMP6c0339SWLVuUn5+vvLw81alTp9zPF0qrVq2UmZnp/Pzdd9/p4MGDzvP7HTlyRD///HNUnhMAAAAAANQ8NKWqwIcffqiCggJJUkpKihNPSkrSkCFD9MEHH+iOO+5Q8+bNy7XegwcPyu1265tvvikxu8l/c/bHHntMTz/9tJ566il169ZNdevW1c0336z8/Pyw63a5XDLGBMX8OQSqW7duiTE1bdo06L5WfsXvUQUAAAAAAOBHUypA/fr11axZMy1YsEADBgxw4gsWLNCJJ54YtOyXX36p0047TZLk9Xr1zTffaOzYsZIKZxOF4nK59PLLL+vSSy/V6aefrjlz5qhZs2YRj++EE06Qz+fTjh071L9//5DLLFiwQOeee64uu+wySZJt21qzZo06d+7sLJOYmCifzxf0uMzMTB04cECHDh1yGk/+e0aF85vf/Ea//vqrPB6PWrduHXEuAAAAAACgduOeUsXccccdeuSRRzR16lT9+OOPuuuuu7Rs2TLddNNNQcs999xzeuedd7R69WqNGTNGe/fu1VVXXVXm+t1ut1599VX16NFDgwYN0q+//hrx2Nq3b69Ro0bp8ssv1/Tp07V+/XotXrxYEyZM0IwZMyRJxx9/vGbNmqWFCxfqhx9+0HXXXaft27cHrad169b66quvtGHDBu3atUu2batv376qU6eO7rnnHv3888967bXXNHny5DLHNGTIEPXr108jR47UzJkztWHDBi1cuFB/+ctftGTJkohzAwAAAAAAtQtNqWJuvPFG3XrrrbrtttvUrVs3ffzxx3r//fd1/PHHBy338MMP6+GHH1aPHj00f/58vf/++2rUqFFEz+HxePT666+rS5cuGjRokHbs2BHx+CZNmqTLL79ct912mzp06KCRI0fq66+/VsuWLSVJ9957r37zm99o2LBhGjhwoJo0aaKRI0cGreP222+X2+1W586dlZmZqV9++UUZGRl65ZVX9OGHH6pbt256/fXXNW7cuDLHY1mWPvzwQ5122mm68sor1b59e1188cXauHGjGjduHHFeAAAAAACgdrFM8RsJHUP279+vtLQ05eTkqH79+kG/y83N1fr169WmTRslJydH7Tk3bNigNm3aaOnSperZ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qg6evkdERET0X6dPn0aHDh3kHrt370ZoaChWrVoFe3t7REVFITAwsMrbnj9/PoYNG4bRo0fD1dUVUqkU7u7ucqfLLVy4EG5ubhgwYAA+/vhjDBo0SO46VY6OjpXG0q1bN2zevBmhoaFwdHTEsWPHMHv2bLl63N3dERMTgxMnTqBTp0744IMPsGbNGlhbW1fjXSMiIiKqHt59j4iIiKgOFBUVQSaT4bPPPkNAQMBbrWvChAn49ddfce7cubdaDxEREVFV8PQ9IiIiolrw22+/4cSJE3Bzc0N+fj7Wr1+P+/fvY/jw4UqvKzg4GH369EHjxo1x9OhRREZGYuPGjUqvh4iIiKgmOClFREREVAvU1NQQEREBHx8fCIIAe3t7xMfHQyaTKb2un3/+GatXr8bz58/RqlUrrFu3DuPHj1d6PUREREQ1wdP3iIiIiIiIiIio1vFC50REREREREREVOs4KUVERERERERERLWOk1JERERERERERFTrOClFRERERERERES1jpNSRERERERERERU6zgpRUREREREREREtY6TUkREREREREREVOs4KUVERERERERERLWOk1JERERERERERFTr/h+M/nj+fkf5ewAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAiORJREFUeJzs3Xd0VOXWx/HflFQSAoQQehXpRQEREUFBAiKC3quAqKCI3iuIoGCXZgELCqJiF0RUilheOiJFQJGqogKCNKWHEmrKzHn/4M4hk5kkEzKcJMP3sxZrMXtO2c/sKefsPHPGZhiGIQAAAAAAAMBC9oJOAAAAAAAAABcfmlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAICL3pIlS2Sz2bRkyZKCTqXQstlsGj58eEGngWy0adNGbdq0Keg0Cszu3bsVGRmpFStWFHQqeTJx4kTZbDbt2LGjoFNBkPTu3VsxMTG5LpecnKxixYppzpw5FmQFAIUXTSkAKGJsNltA/6xosGS379GjR1/wfQOhbM6cORdNE7B3795+30dq164d8DZGjhyp5s2bq2XLlhcw08LpyJEjcjqdmjZtWkGnUmjNnDlT3bp1U/Xq1RUdHa1atWrpkUce0dGjRwNaf/fu3RoxYoSuuOIKlSxZUqVLl1abNm307bffnndO8fHxuvfee/XMM8+c9zYAIBQ4CzoBAEDeTJ482ev2xx9/rIULF/rE69SpY0k+119/ve666y6v2GWXXWbJvoFQNWfOHL355psXTWMqIiJC77//vlcsLi4uoHUPHjyoSZMmadKkSRcitUJv/vz5stlsat++fUGnUmjdd999Kl++vO644w5VrlxZv/76q9544w3NmTNH69atU1RUVI7rf/3113rxxRfVtWtX9erVSxkZGfr44491/fXX68MPP9Tdd999Xnn95z//0euvv67vvvtO11133XltAwCKOppSAFDE3HHHHV63f/zxRy1cuNAnbpVLL720wPaN4Dlz5ozCw8NltzOJGsHldruVlpamyMjIbJdxOp3n/T7yySefyOl0qnPnzuebYpE2Z84ctWzZUiVKlCjoVAqtGTNm+Hy9tUmTJurVq5emTJmie++9N8f1r732Wu3atUulS5c2Y//5z3/UuHFjDR069LybUnXq1FH9+vU1ceJEmlIALloceQJACDp58qQeeeQRVapUSREREapVq5ZeeeUVGYbhtZzNZlP//v01ZcoU1apVS5GRkWrSpImWLVuWp/2dPn1aZ86cCXj5GTNmyGazaenSpT73vfPOO7LZbNq4caPfddesWSObzeZ3VoRnxsCsWbMkSTt37tQDDzygWrVqKSoqSvHx8br11lsDun5L1apV1bt3b5+4v2v3pKamatiwYbrkkksUERGhSpUq6dFHH1VqaqrXcgsXLtTVV1+tEiVKKCYmRrVq1dKTTz6Zay55qdM///yje+65R4mJiYqIiFC9evX04Ycfei3juYbW559/rqeffloVKlRQdHS0UlJScs3FI9DH1nPNnBUrVujhhx9WQkKCihUrpptvvlkHDx70Wtbtdmv48OEqX768oqOjde211+r333/3qcXw4cNls9l8cvJ3fZ6vv/5anTp1Uvny5RUREaEaNWro2Weflcvl8ln/zTffVPXq1RUVFaUrrrhC33//fb7q7c/333+vW2+9VZUrVzbXHTRokE6fPm0u07t3b7355puSvL8imxdpaWkaOnSomjRpori4OBUrVkytWrXS4sWLzWUMw1DVqlXVpUsXn/XPnDmjuLg43X///Xked+bna7169RQREaF58+blmrPL5crTc9Djq6++UvPmzf1exyfQmh44cEB9+vRRYmKiIiMj1ahRI7/vMYG+t54+fVoDBgxQ6dKlFRsbq5tuukn//PNPwNdmmzt3rlq1aqVixYopNjZWnTp10m+//eaznNvt1rx589SpU6fz2nde3i+mTZumESNGqEKFCoqNjdW///1vHTt2TKmpqRo4cKDKlCmjmJgY3X333dk+J6ZPn666desqKipKLVq00K+//irp7Pv+JZdcosjISLVp08bnfSSQ101O/F1v7eabb5Yk/fHHH7muX69ePa+GlHR2dt8NN9ygv//+W8ePH/dZ56+//lJSUpKKFSum8uXLa+TIkT7PE+nsbOP/+7//83sfAFwMmCkFACHGMAzddNNNWrx4sfr06aPGjRtr/vz5GjJkiP755x+99tprXssvXbpUU6dO1YABAxQREaG33npLHTp00E8//aT69evnur+JEyfqrbfekmEYqlOnjp5++mndfvvtOa7TqVMnxcTEaNq0aWrdurXXfVOnTlW9evWy3XfTpk1VvXp1TZs2Tb169fJZt2TJkkpKSpIkrV69WitXrlT37t1VsWJF7dixQxMmTFCbNm30+++/Kzo6Otfx5cbtduumm27S8uXLdd9996lOnTr69ddf9dprr2nLli366quvJEm//fabbrzxRjVs2FAjR45URESEtm7dGvCFmQOp0/79+3XllVeaJ4AJCQmaO3eu+vTpo5SUFA0cONBrm88++6zCw8M1ePBgpaamKjw8POBx5/WxffDBB1WyZEkNGzZMO3bs0NixY9W/f39NnTrVXOaJJ57QSy+9pM6dOyspKUk///yzkpKS8tTwzGrixImKiYnRww8/rJiYGH333XcaOnSoUlJS9PLLL5vLTZgwQf3791erVq00aNAg7dixQ127dlXJkiVVsWJFc7lA652d6dOn69SpU/rvf/+r+Ph4/fTTTxo/frz+/vtvTZ8+XZJ0//33a8+ePX6/lhuolJQUvf/+++rRo4f69u2r48eP64MPPlBSUpJ++uknNW7cWDabTXfccYdeeuklHT58WKVKlTLX/7//+z+lpKSYs5fyOu7vvvtO06ZNU//+/VW6dGlVrVo1x3xPnTql4sWL69SpUypZsqR69OihF198MdcLRqenp2v16tX673//63NfoDU9ffq02rRpo61bt6p///6qVq2apk+frt69e+vo0aN66KGHJOXtvbV3796aNm2a7rzzTl155ZVaunSpV+MoJ5MnT1avXr2UlJSkF198UadOndKECRN09dVXa/369V6P5erVq3Xw4EHdcMMNed53Xt8vRo0apaioKD3++OPaunWrxo8fr7CwMNntdh05ckTDhw/Xjz/+qIkTJ6patWoaOnSo1/rff/+9vvnmG/Xr18/c3o033qhHH31Ub731lh544AEdOXJEL730ku655x5999135rqBvG7yat++fZLk02zK6zaio6N93u9cLpc6dOigK6+8Ui+99JLmzZunYcOGKSMjQyNHjvRatkmTJnrttdf022+/BfSZCwAhxwAAFGn9+vUzMr+df/XVV4Yk47nnnvNa7t///rdhs9mMrVu3mjFJhiRjzZo1Zmznzp1GZGSkcfPNN+e676uuusoYO3as8fXXXxsTJkww6tevb0gy3nrrrVzX7dGjh1GmTBkjIyPDjO3du9ew2+3GyJEjc1z3iSeeMMLC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//79WrFihV544YWA9tOtWzc9//zzOnTokGJjY/XNN9+oR48eXrMiHnzwQX300UcaOHCgWrRoobi4ONlsNnXv3j3XZlB2Jwgul0sOh8O87Xa71aBBA7366qt+l/c8HlFRUVq2bJkWL16s2bNna968eZo6daquu+46LViwwGub58MznjvuuMPnWlseDRs29Lp9vrOkpLw/ttmNL2szIRA51Sazo0ePqnXr1ipevLhGjhypGjVqKDIyUuvWrdNjjz12XjPWAq13dvldf/31Onz4sB577DHVrl1bxYoV0z///KPevXufVz7Z+eSTT9S7d2917dpVQ4YMUZkyZeRwODRq1Cht27bNa9nu3btr0KBBmjJlip588kl98sknatq0qWrVqmUuk9dx5+e55Vk/Pj4+1/eR+Ph4Sd4NjKLM8xyYPHmyypYt63N/5ve3uXPnKjIyUtdee+157ycv7xfZvYYDfW2f7/qBvm6mTp3q8yt4WXP4+eefddNNN6l+/fqaMWOG1+MpSc2aNfP6w82wYcN8Lg7ft29fzZo1S1OmTAnKL+Z5nrv5ubYVABRlNKUAIMRUqVJF3377rY4fP+71F33PV5WqVKnitbznL/OZbdmyRdHR0UpISMjz/j1fuQhk3W7dumnSpElatGiR/vjjDxmGketX9zKvO2LECH3xxRdKTExUSkqKunfv7rXMjBkz1KtXL40ZM8aMnTlzRkePHs11+yVLlvS73M6dO73+Al6jRg39/PPPatu2ba5/6bbb7Wrbtq3atm2rV199VS+88IKeeuopLV68WO3atctx3UDqFBsbK5fLleu2giE/j60/nufl1q1bvWZ5JCcn+zQcPDOnjh49an4tUvKdBbhkyRIlJydr5syZuuaaa8z49u3bs9135hP8jIwM7dixw+vkPC/1zurXX3/Vli1bNGnSJN11111mfOHChT7L5nfWxIwZM1S9enXNnDnTa1vDhg3zWbZUqVLq1KmTpkyZop49e2rFihUaO3as1zL5Gff58HzVMrf3kcqVKysqKipfNa1SpYp++eUXud1ur9lSWd8zA31vrVKlitxut7Zv3+41w3Hr1q25jrtGjRqSpDJlyuT6Op49e7auvfZarwZgoPtOSEiw9P0iPwJ93SQlJfl9LXls27ZNHTp0UJkyZTRnzhy/F9GfMmWK11fPs852GjJkiD766CONHTvW6+ueWbndbv31119es363bNkiST4z9TzPXc+MOwC42PD1PQAIMTfccINcLpfeeOMNr/hrr70mm82mjh07esV/+OEHr2uH7N69W19//bXat2+f4+wdf1/tO378uMaOHavSpUt7Xf8oO+3atVOpUqU0depUTZ06VVdccUXAX/upU6eOGjRoYK5brlw5r8aDdPYv8Fn/Uj5+/Phcr5UlnT05/PHHH5WWlmbGZs2apd27d3std9ttt+mff/7Re++957ON06dP6+TJk5L8zxxr3LixJPn8fLo/udXJ4XDoX//6l7744gtt3LjRZ/28fhUzN/l5bP1p27atnE6nJkyY4BXP+jyWzp24L1u2zIydPHlSkyZN8slR8p4tkZaWprfeestruaZNmyo+Pl7vvfee13VwpkyZ4tMQC7Te/vjLxzAMjRs3zmfZYsWKSdJ5N/n87WvVqlX64Ycf/C5/55136vfff9eQIUPkcDh8Grz5GXdOzpw5o+PHj/vEn332WRmGoQ4dOuS4flhYmJo2bao1a9Z4xfNS0xtuuEH79u3z+jpwRkaGxo8fr5iYGPNrYoG+t3p+/TPr82z8+PE5jsWzbvHixfXCCy8oPT3d537P6zg9PV0LFy70+VW9QPdt9ftFfgT6uilXrpzatWvn9c9j3759at++vex2u+bPn59ts7Nly5Ze62duSr388st65ZVX9OSTT5q/yJiTzM8TwzD0xhtvKCwsTG3btvVabu3atYqLi1O9evVy3SYAhCJmSgFAiOncubOuvfZaPfXUU9qxY4caNWqkBQsW6Ouvv9bAgQPNE3qP+vXrKykpSQMGDFBERIR5MjNixIgc9/Pmm2/qq6++UufOnVW5cmXt3btXH374oXbt2qXJkyebF1nOSVhYmG655RZ9/vnnOnnypF555ZU8jbVbt24aOnSoIiMj1adPH59rwtx4442aPHmy4uLiVLduXf3www/69ttvza/85OTee+/VjBkz1KFDB912223atm2bPvnkE5/H784779S0adP0n//8R4sXL1bLli3lcrm0adMmTZs2TfPnz1fTpk01cuRILVu2TJ06dVKVKlV04MABvfXWW6pYsaKuvvrqXPMJpE6jR4/W4sWL1bx5c/Xt21d169bV4cOHtW7dOn377be5fhUqL/Lz2PqTmJiohx56SGPGjNFNN92kDh066Oeff9bcuXNVunRpr9k57du3V+XKldWnTx+zifLhhx8qISFBu3btMpe76qqrVLJkSfXq1UsDBgyQzWbT5MmTfZpp4eHhGj58uB588EFdd911uu2227Rjxw5NnDhRNWrU8Np3oPX2p3bt2qpRo4YGDx6sf/75R8WLF9cXX3zh96tnnqbugAEDlJSU5LdRlJMbb7xRM2fO1M0336xOnTpp+/btevvtt1W3bl2/18np1KmT4uPjNX36dHXs2FFlypTxuj8/487Jvn37dNlll6lHjx6qXbu2JGn+/PmaM2eOOnTooC5duuS6jS5duuipp55SSkqKihcvLilvNb3vvvv0zjvvqHfv3lq7dq2qVq2qGTNmmDPGPLOiAn1vbdKkif71r39p7NixSk5O1pVXXqmlS5eaM2VymmlWvHhxTZgwQXfeeacuv/xyde/e3Xxez549Wy1bttQbb7yh5cuXKyUlxacplZd9W/l+kR95ed1kp0OHDvrrr7/06KOPavny5Vq+fLl5X2Jioq6//voc1//yyy/16KOPqmbNmqpTp44++eQTr/uvv/56JSYmmrcjIyM1b9489erVS82bN9fcuXM1e/ZsPfnkkz4NsYULF6pz585cUwrAxcuiX/kDAFwg/n46/vjx48agQYOM8uXLG2FhYUbNmjWNl19+2fx5dw9JRr9+/YxPPvnEqFmzphEREWFcdtllxuLFi3Pd74IFC4zrr7/eKFu2rBEWFmaUKFHCaN++vbFo0aI85b9w4UJDkmGz2Yzdu3fnad0///zTkGRIMpYvX+5z/5EjR4y7777bKF26tBETE2MkJSUZmzZtMqpUqWL06tXLXM7zk+dZxz1mzBijQoUKRkREhNGyZUtjzZo1RuvWrb1+Tt4wzv58/IsvvmjUq1fPiIiIMEqWLGk0adLEGDFihHHs2DHDMAxj0aJFRpcuXYzy5csb4eHhRvny5Y0ePXoE9HPkeanT/v37jX79+hmVKlUywsLCjLJlyxpt27Y13n33XZ/xTp8+Pdd9Z84h88/JB/rYen7yfvXq1V7b8/eYZ2RkGM8884xRtmxZIyoqyrjuuuuMP/74w4iPjzf+85//eK2/du1ao3nz5kZ4eLhRuXJl49VXXzX3lfmn5FesWGFceeWVRlRUlFG+fHnj0UcfNebPn++33q+//rpRpUoVIyIiwrjiiiuMFStWGE2aNDE6dOjgtVwg9c7O77//brRr186IiYkxSpcubfTt29f4+eefDUnGRx995PVYPPjgg0ZCQoJhs9l8XuNZZX1eut1u44UXXjDHc9lllxmzZs0yevXqZVSpUsXvNh544AFDkvHpp5/6vT/QcXuer4E4cuSIcccddxiXXHKJER0dbURERBj16tUzXnjhBSMtLS2gbezfv99wOp3G5MmTfe4LtKb79+83n8/h4eFGgwYNvOrhEeh768mTJ41+/foZpUqVMmJiYoyuXbsamzdvNiQZo0ePNpfz95w1jLOvj6SkJCMuLs6IjIw0atSoYfTu3dtYs2aNYRiGMXjwYKNu3bp+H49A9+0Z9/m+X2T32h42bJghyTh48KAZ8/ec2L59uyHJePnll33GnnV/gb5usuP5nPD3L+v7uT+eMWX3L/N7Sa9evYxixYoZ27ZtM9q3b29ER0cbiYmJxrBhwwyXy+W13T/++MOQZHz77be55gAAocpmGOdxhVEAQEiw2Wzq16+f369IofC4mOt09OhRlSxZUs8995yeeuopS/ftdruVkJCgW265xe/X1kLNoEGD9MEHH2jfvn2Kjo4u6HTypE+fPtqyZYu+//77HJcryJpu2LBBl112mT755BP17NkzX9uqW7eubrzxRr300kuW7xvBM3DgQC1btkxr165lphSAixbXlAIAAIVC5gsMe3guuN2mTZsLuu8zZ874fK3v448/1uHDhy/4vguDM2fO6JNPPtG//vWvIteQks5ewH316tVasWKFGSvImmb3XLbb7T7XvsurtLQ0devWzeeX5qzYN4InOTlZ77//vp577jkaUgAualxTCgAAFApTp07VxIkTdcMNNygmJkbLly/XZ599pvbt26tly5YXdN8//vijBg0apFtvvVXx8fFat26dPvjgA9WvX1+33nrrBd13QTpw4IC+/fZbzZgxQ8nJyQFdwLkwqly5ss6cOeMVK8iavvTSS1q7dq2uvfZaOZ1OzZ07V3PnztV9992nSpUq5Wvb4eHhfn9F0Yp9I3ji4+P9Xt8NAC42NKUAAECh0LBhQzmdTr300ktKSUkxL37+3HPPXfB9V61aVZUqVdLrr7+uw4cPq1SpUrrrrrs0evTogC7aX1T9/vvv6tmzp8qUKaPXX3/d/EXIUFCQNb3qqqu0cOFCPfvsszpx4oQqV66s4cOHW/IV1ILcNwAAecU1pQAAAAAAAGA5rikFAAAAAAAAy9GUAgAAAAAAgOVC/ppSbrdbe/bsUWxsLL9sAQAAAAAAcIEZhqHjx4+rfPnystuznw8V8k2pPXv28EsjAAAAAAAAFtu9e7cqVqyY7f0h35SKjY2VdPaBKF68eAFnAwAAAAAAENpSUlJUqVIlsyeTnZBvSnm+sle8eHGaUgAAAAAAABbJ7TJKXOgcAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlQv6aUgAA4OLkcrmUnp5e0GlAUlhYmBwOR0GnAQAAChmaUgAAIKQYhqF9+/bp6NGjBZ0KMilRooTKli2b6wVPAQDAxYOmFAAACCmehlSZMmUUHR1NE6SAGYahU6dO6cCBA5KkcuXKFXBGAACgsKApBQAAQobL5TIbUvHx8QWdDv4nKipKknTgwAGVKVOGr/IBAABJXOgcAACEEM81pKKjows4E2TlqQnX+QIAAB40pQAAQMjhK3uFDzUBAABZ0ZQCAAAAAACA5WhKAQAAXCATJ05UiRIl8rTOqVOn9K9//UvFixeXzWbjVwQBAEDIoikFAAAuCjabLcd/w4cPL+gUJUmTJk3S999/r5UrV2rv3r2Ki4sLynbbtGmjgQMHBmVbAAAAwcCv7wEAgIvC3r17zf9PnTpVQ4cO1ebNm81YTExMQaTlY9u2bapTp47q169f0Kn4lZaWpvDw8IJOAwAAhABmSgEAgItC2bJlzX9xcXGy2Wzm7TJlyujVV19VxYoVFRERocaNG2vevHnmujt27JDNZtPnn3+uq666SpGRkapfv76WLl2apxwOHjyopk2b6uabb1ZqaqrP/W3atNGYMWO0bNky2Ww2tWnTRpKUmpqqwYMHq0KFCipWrJiaN2+uJUuWmOslJyerR48eqlChgqKjo9WgQQN99tln5v29e/fW0qVLNW7cOHNm2I4dO/x+vfCrr77yuij58OHD1bhxY73//vuqVq2aIiMjJUlHjx7Vvffeq4SEBBUvXlzXXXedfv755zw9HgAA4OJGUwoAAFz0xo0bpzFjxuiVV17RL7/8oqSkJN100036888/vZYbMmSIHnnkEa1fv14tWrRQ586dlZycHNA+du/erVatWql+/fqaMWOGIiIifJaZOXOm+vbtqxYtWmjv3r2aOXOmJKl///764Ycf9Pnnn+uXX37Rrbfeqg4dOpj5nTlzRk2aNNHs2bO1ceNG3Xfffbrzzjv1008/meNr0aKF+vbtq71792rv3r2qVKlSwI/P1q1b9cUXX2jmzJnasGGDJOnWW2/VgQMHNHfuXK1du1aXX3652rZtq8OHDwe8XQAAcHGjKQUAAC56r7zyih577DF1795dtWrV0osvvqjGjRtr7NixXsv1799f//rXv1SnTh1NmDBBcXFx+uCDD3Ld/ubNm9WyZUslJSXpo48+ksPh8LtcqVKlFB0drfDwcJUtW1alSpXSrl279NFHH2n69Olq1aqVatSoocGDB+vqq6/WRx99JEmqUKGCBg8erMaNG6t69ep68MEH1aFDB02bNk2SFBcXp/DwcEVHR5uzw7LLwZ+0tDR9/PHHuuyyy9SwYUMtX75cP/30k6ZPn66mTZuqZs2aeuWVV1SiRAnNmDEj4O0CAICLG9eUAgAAF7WUlBTt2bNHLVu29Iq3bNnS5+toLVq0MP/vdDrVtGlT/fHHH5KkevXqaefOnZKkVq1aae7cuZKk06dPq1WrVrr99tt9mlyB+PXXX+VyuXTppZd6xVNTUxUfHy9JcrlceuGFFzRt2jT9888/SktLU2pqqqKjo/O8P3+qVKmihIQE8/bPP/+sEydOmPv3OH36tLZt2xaUfQIAgNBHUwoAACAI5syZo/T0dElSVFSUGY+IiFC7du00a9YsDRkyRBUqVMjTdk+cOCGHw6G1a9f6zG7yXJz95Zdf1rhx4zR27Fg1aNBAxYoV08CBA5WWlpbjtu12uwzD8Ip5xpBZsWLFfHIqV66c13WtPLJeowoAACA7NKUAAMBFrXjx4ipfvrxWrFih1q1bm/EVK1boiiuu8Fr2xx9/1DXXXCNJysjI0Nq1a9W/f39JZ2cT+WO32zV58mTdfvvtuvbaa7VkyRKVL18+4Pwuu+wyuVwuHThwQK1atfK7zIoVK9SlSxfdcccdkiS3260tW7aobt265jLh4eFyuVxe6yUkJOj48eM6efKk2XjyXDMqJ5dffrn27dsnp9OpqlWrBjwWAACAzLimFAAAuOgNGTJEL774oqZOnarNmzfr8ccf14YNG/TQQw95Lffmm2/qyy+/1KZNm9SvXz8dOXJE99xzT67bdzgcmjJliho1aqTrrrtO+/btCzi3Sy+9VD179tRdd92lmTNnavv27frpp580atQozZ49W5JUs2ZNLVy4UCtXrtQff/yh+++/X/v37/faTtWqVbVq1Srt2LFDhw4dktvtVvPmzRUdHa0nn3xS27Zt06effqqJEyfmmlO7du3UokULde3aVQsWLNCOHTu0cuVKPfXUU1qzZk3AYwMAABc3mlIAAOCiN2DAAD388MN65JFH1KBBA82bN0/ffPONatas6bXc6NGjNXr0aDVq1EjLly/XN998o9KlSwe0D6fTqc8++0z16tXTddddpwMHDgSc30cffaS77rpLjzzyiGrVqqWuXbtq9erVqly5siTp6aef1uWXX66kpCS1adNGZcuWVdeuXb22MXjwYDkcDtWtW1cJCQnatWuXSpUqpU8++URz5sxRgwYN9Nlnn2n48OG55mOz2TRnzhxdc801uvvuu3XppZeqe/fu2rlzpxITEwMeFwAAuLjZjKwXEggxKSkpiouL07Fjx1S8ePGCTgcAAFxAZ86c0fbt21WtWjVFRkYGbbs7duxQtWrVtH79ejVu3Dho272YXKjaAAAgSa1jOwVlO0uPzw7Kdi52gfZimCkFAAAAAAAAy9GUAgAAAAAAgOX49T0AAIBcVK1aVSF+xQMAAADLMVMKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYzlnQCQAAABRlrWM7Wbavpcdn53mdZcuW6eWXX9batWu1d+9effnll+ratWvwkwMAAMgjZkoBAACEsJMnT6pRo0Z68803CzoVAAAAL8yUAgAACGEdO3ZUx44dCzoNAAAAH8yUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOX98DAAAIYSdOnNDWrVvN29u3b9eGDRtUqlQpVa5cuQAzAwAAFzuaUgAAACFszZo1uvbaa83bDz/8sCSpV69emjhxYgFlBQAAQFMKAAAgX5Yen13QKeSoTZs2MgyjoNMAAADwwTWlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5Qq0KbVs2TJ17txZ5cuXl81m01dffeV1v2EYGjp0qMqVK6eoqCi1a9dOf/75Z8EkCwAAAAAAgKAp0KbUyZMn1ahRI7355pt+73/ppZf0+uuv6+2339aqVatUrFgxJSUl6cyZMxZnCgAAAAAAgGByFuTOO3bsqI4dO/q9zzAMjR07Vk8//bS6dOkiSfr444+VmJior776St27d7cyVQAAAAAAAARRgTalcrJ9+3bt27dP7dq1M2NxcXFq3ry5fvjhh2ybUqmpqUpNTTVvp6SkSJIyMjKUkZEhSbLb7bLb7XK73XK73eaynrjL5ZJhGLnGHQ6HbDabud3McUlyuVwBxZ1OpwzD8IrbbDY5HA6fHLOLMybGxJgYE2NiTIzp7Oe9YRjmv6xsNlvQ40ndn/W5/0KZ//kzOeaSNf7CCy/oyy+/1KZNmxQVFaWrrrpKL774oi699NI8bScYcU9NMh+ThdJzL7c4Y2JMjIkxMaYLOyZnuEOuDLcMtyFHmEM227lcXOluGYYhZ7jDK8eMdJdkyCuekZFRaMaUU7yw1ylrXtkptE2pffv2SZISExO94omJieZ9/owaNUojRozwia9fv17FihWTJCUkJKhGjRravn27Dh48aC5TsWJFVaxYUVu2bNGxY8fMePXq1VWmTBlt3LhRp0+fNuO1a9dWiRIltH79eq8CNmzYUOHh4VqzZo1XDk2bNlVaWpp++eUXM+ZwONSsWTMdO3ZMmzZtMuNRUVFq1KiRDh06pL/++suMx8XFqU6dOtqzZ4/+/vtvM86YGBNjYkyMiTExprMiIyMlSW6322sbNptNxYoVk8vl8roUgN1uV3R0tDIyMrz+sOVwOBQVFaX09HSlpaWZcafTqcjISKWmpgZ8wBUseR3T0qVL1adPHzVp0kQZGRkaMWKE2rdvrw0bNigsLCzXMYWHhys8PFxnzpzxetwjIiIUFham06dPex2URkZGyul06tSpU14HzlFRUZKktLQ0bdy40YyH2nOPMTEmxsSYGFPBjalT/3basGCjdm78R617XqnYUjHm8j/MXKMDO5KVdH8bOcPOtUG+m7Rcp4+fUaf+5ybDrFmzptCMqSjX6eTJkwqEzfD3p6wCYLPZ9OWXX6pr166SpJUrV6ply5bas2ePypUrZy532223yWazaerUqX6342+mVKVKlZScnKzixYtLung6k4yJMTEmxsSYGNPFNqYzZ85o165dqlatmtmcyuximymVNX7w4EElJiZqyZIluuaaa857O+cTP3PmjLZv367KlSubtQml515uccbEmBgTY2JMF3ZMSYm3BGWm1Pz9MwvNmHKKF/Y6paSkKD4+XseOHTN7Mf4U2plSZcuWlSTt37/fqym1f/9+NW7cONv1IiIiFBER4RN3Op1yOr2H63ngsvIUK9B41u2eT9xms/mNZ5djXuOMiTFlF2dMjEliTNnlmNc4Yyr4MTmdTtlsNvOfPxc6fiHlN0fPZQ3i4+P9rnMhHxtPTfwdk4XCcy+QOGNiTBJjyi7HvMYZE2OSvHPPSDvXVHGlu3yWzbpMdvHM+Rb0mAKJF9Y6Zbd/n3UCWqoAVKtWTWXLltWiRYvMWEpKilatWqUWLVoUYGYAAABFj9vt1sCBA9WyZUvVr1+/oNMBAAAo2JlSJ06c0NatW83b27dv14YNG1SqVClVrlxZAwcO1HPPPaeaNWuqWrVqeuaZZ1S+fHnzK34AAAAITL9+/bRx40YtX768oFMBAACQVMBNqTVr1ujaa681bz/88MOSpF69emnixIl69NFHdfLkSd133306evSorr76as2bN8/vNSIAAADgX//+/TVr1iwtW7ZMFStWLOh0AAAAJBVwU6pNmzZ+L4TpYbPZNHLkSI0cOdLCrAAAAEKDYRh68MEH9eWXX2rJkiWqVq1aQacEAABgKrQXOgcAAED+9OvXT59++qm+/vprxcbGat++fZLO/qRzVFRUAWcHAAAudoX2QucAAADInwkTJujYsWNq06aNypUrZ/6bOnVqQacGAADATCkAAID8WDB1aEGnkK2cLpMAAABQ0JgpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJZzFnQChU3r2E5B2c7S47ODsh0AAAAAAIBQxEwpAAAAAAAAWI6ZUgAAAPnQ+Lnhlu1rw9N539eECRM0YcIE7dixQ5JUr149DR06VB07dgxucgAAAHnETCkAAIAQVrFiRY0ePVpr167VmjVrdN1116lLly767bffCjo1AABwkWOmFAAAQAjr3Lmz1+3nn39eEyZM0I8//qh69eoVUFYAAAA0pQAAAC4aLpdL06dP18mTJ9WiRYuCTgcAAFzkaEoBAACEuF9//VUtWrTQmTNnFBMToy+//FJ169Yt6LQAAMBFjmtKAQAAhLhatWppw4YNWrVqlf773/+qV69e+v333ws6LQAAcJFjphQAAECICw8P1yWXXCJJatKkiVavXq1x48bpnXfeKeDMAADAxYyZUgAAABcZt9ut1NTUgk4DAABc5JgpBQAAEMKeeOIJdezYUZUrV9bx48f16aefasmSJZo/f35BpwYAAC5yNKUAAABC2IEDB3TXXXdp7969iouLU8OGDTV//nxdf/31BZ0aAAC4yNGUAgAAyIcNTw8v6BRy9MEHHxR0CgAAAH5xTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACznLOgEAAAAirIHFz1k2b7Gtx2Xr/VHjx6tJ554Qg899JDGjh0bnKQAAADOEzOlAAAALgKrV6/WO++8o4YNGxZ0KgAAAJJoSgEAAIS8EydOqGfPnnrvvfdUsmTJgk4HAABAEk0pAACAkNevXz916tRJ7dq1K+hUAAAATFxTCgAAIIR9/vnnWrdunVavXl3QqQAAAHihKQUAABCidu/erYceekgLFy5UZGRkQacDAADghaYUAABAiFq7dq0OHDigyy+/3Iy5XC4tW7ZMb7zxhlJTU+VwOAowQwAAcDGjKQUAABCi2rZtq19//dUrdvfdd6t27dp67LHHaEgBAIACRVMKAAAgRMXGxqp+/fpesWLFiik+Pt4nDgAAYDV+fQ8AAAAAAACWY6YUAABAPoxvO66gU8iTJUuWFHQKAAAAkpgpBQAAAAAAgAJAUwoAAAAAAACW4+t7AAAAQCHQOrZTULaz9PjsoGwHAIALjZlSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcs6CTgAAAKAo2/3rtZbtq1KDxXleZ/jw4RoxYoRXrFatWtq0aVOw0gIAADgvNKUAAEHTOrZTULaz9PjsoGwHwFn16tXTt99+a952OjkEBAAABY8jEgAAgBDndDpVtmzZgk4DCGn8YQYA8o5rSgEAAIS4P//8U+XLl1f16tXVs2dP7dq1q6BTAgAAoCkFAAAQypo3b66JEydq3rx5mjBhgrZv365WrVrp+PHjBZ0aAAC4yPH1PQAAgBDWsWNH8/8NGzZU8+bNVaVKFU2bNk19+vQpwMwAAMDFjplSAAAAF5ESJUro0ksv1datWws6FQAAcJGjKQUAAHAROXHihLZt26Zy5coVdCoAAOAiR1MKAAAghA0ePFhLly7Vjh07tHLlSt18881yOBzq0aNHQacGAAAuclxTCgAAIIT9/fff6tGjh5KTk5WQkKCrr75aP/74oxISEgo6NQAAcJGjKQUAAJAPlRosLugUcvT5558XdAoAAAB+8fU9AAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAIccwjIJOAVlQEwAAkBVNKQAAEDLCwsIkSadOnSrgTJCVpyaeGgEAADgLOgEAAIBgcTgcKlGihA4cOCBJio6Ols1mK+CsLm6GYejUqVM6cOCASpQoIYfDUdApAQCAQoKmFAAACClly5aVJLMxhcKhRIkSZm0AAAAkmlIAACDE2Gw2lStXTmXKlFF6enpBpwOd/coeM6QAAEBWNKUAAEBIcjgcNEIAAAAKMS50DgAAAAAAAMvRlAIAAAAAAIDlCnVTyuVy6ZlnnlG1atUUFRWlGjVq6Nlnn5VhGAWdGgAAAAAAAPKhUF9T6sUXX9SECRM0adIk1atXT2vWrNHdd9+tuLg4DRgwoKDTAwAAAAAAwHkq1E2plStXqkuXLurUqZMkqWrVqvrss8/0008/FXBmAAAAAAAAyI9C/fW9q666SosWLdKWLVskST///LOWL1+ujh07FnBmAAAAAAAAyI9CPVPq8ccfV0pKimrXri2HwyGXy6Xnn39ePXv2zHad1NRUpaammrdTUlIkSRkZGcrIyJAk2e122e12ud1uud1uc1m7/WyPzhHmkM12bpuuDLcMt+EbT3fLMAw5w71/bjoj3SXDMORyubzinp+lzhp3Op0+y9tsNjkcDp8cs4vnNCa73S6Xy+V1La7s4g6HQzabzXyscsudMTEmxsSYMufu836Y5pJskjPMN26z2eQIO/e3EcOQXOku2eze2y/oMYVinRgTY2JMhXNMnvdQz/uh3WGT3XHufdLtMuR2uWV32GV32DLF3XK7zh2rZj3mpU7WjMlTv0Dr5JH1XMMzhsIwJo9QqhNjCt0xOcMd53XuLsP7GDYjI6PQjCmneGGvU9a8slOom1LTpk3TlClT9Omnn6pevXrasGGDBg4cqPLly6tXr15+1xk1apRGjBjhE1+/fr2KFSsmSUpISFCNGjW0fft2HTx40FymYsWKkqTmNzVWQpXSZnzDgo3aufEfte55pWJLxZjxH2au0YEdyUq6v42cYeceyu8mLZfL5dKaNWu8cmjatKnS0tL0yy+/mDGHw6FmzZrp2LFj2rRpkxmPiopSo0aNdOjQIf31119mPC4uTnXq1NGePXv0999/m/GcxlSxYkVt2bJFx44dM+PVq1dXmTJltHHjRp0+fdqM165dWyVKlND69eu9npQNGzZUeHg4Y2JMjIkx5TimTv3beY1p9hvfKio2Utf1utqMZaRnaPb4RUqoUkotbmlqxo8fPqHvJq5Q5brlvR6bgh5TKNaJMTEmxlQ4x+R5Dz2485BWfrFWl15RXbVaXGIuv2vj31q/4Dc1altHletXNOObf9iqTT9sM49hPTkVhjGFYp2yG5OnfoHWySPruYYn18IwplCsE2MK3TF16t/uvM7dTx8/43UMu2bNmkIzpqJcp5MnTyoQNqMQ/5RdpUqV9Pjjj6tfv35m7LnnntMnn3zi9YBl5m+mVKVKlZScnKzixYtLyrkzeW1c56DMlFpybFaBdyYzx0Ol28qYGBNjKtxjale6i1f8fGdKfZv8VaEZUyjWiTExJsZUOMeUlHiLpPzPlJq/f2ahGVNu8aJYp+zinvrld6aUp36FYUweoVQnxhS6Y0pKvCUoM6Xm759ZaMaUU7yw1yklJUXx8fE6duyY2Yvxp1DPlDp16pTsdu/LXnkegOxEREQoIiLCJ+50OuV0eg/X88Bl5Up3+cRyimek+cZtNpvP/jLnEujy2eWY17jnCRhoPC+5ZxdnTIxJYkzZ5ZjXeFEZk7/3Qxn+44Zh+I+7jaCMlToxpuzijIkxSYVzTFnfE882N3zfJ882N3z36TlWzboP6mTNmHzrl3Odsotn3Td1YkyMKbAxZX4N5uXcPWs8c74FPaZA4oW1Ttnt3yefgJYqIJ07d9bzzz+vypUrq169elq/fr1effVV3XPPPQWdGgAAAAAAAPKhUDelxo8fr2eeeUYPPPCADhw4oPLly+v+++/X0KFDCzo1AAAAAAAA5EOhbkrFxsZq7NixGjt2bEGnAgAAAAAAgCAq1E0pAAAAAACs0Dq2U1C2s/T47KBsB7gY+F6ZCgAAAAAAALjAaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAyzkLOgEAAAAAAEJF+24jg7KdBVOHBmU7QGHGTCkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5YLSlDp69GgwNgMAAAAAAICLRJ6bUi+++KKmTp1q3r7tttsUHx+vChUq6Oeffw5qcgAAAAAAAAhNeW5Kvf3226pUqZIkaeHChVq4cKHmzp2rjh07asiQIUFPEAAAAAAAAKHHmdcV9u3bZzalZs2apdtuu03t27dX1apV1bx586AnCAAAAAAAgNCT55lSJUuW1O7duyVJ8+bNU7t27SRJhmHI5XIFNzsAAAAAAACEpDzPlLrlllt0++23q2bNmkpOTlbHjh0lSevXr9cll1wS9AQBAAAAAAAQevLclHrttddUtWpV7d69Wy+99JJiYmIkSXv37tUDDzwQ9AQBAAAAAAAQevLclAoLC9PgwYN94oMGDQpKQgAAAAAAAAh9eb6mlCRNnjxZV199tcqXL6+dO3dKksaOHauvv/46qMlJ0j///KM77rhD8fHxioqKUoMGDbRmzZqg7wcAAAAAAADWyXNTasKECXr44YfVsWNHHT161Ly4eYkSJTR27NigJnfkyBG1bNlSYWFhmjt3rn7//XeNGTNGJUuWDOp+AAAAAAAAYK08f31v/Pjxeu+999S1a1eNHj3ajDdt2tTv1/ry48UXX1SlSpX00UcfmbFq1aoFdR8AAAAAAACwXp6bUtu3b9dll13mE4+IiNDJkyeDkpTHN998o6SkJN16661aunSpKlSooAceeEB9+/bNdp3U1FSlpqaat1NSUiRJGRkZysjIkCTZ7XbZ7Xa53W653W5zWbv97MQxR5hDNtu5bboy3DLchm883S3DMOQMd3jlkJHukmEY5iwyD4fj7HJZ406n02d5m80mh8Phk2N28ZzGZLfb5XKdzSm3uMPhkM1mMx+r3HJnTIyJMTGmzLn7vB+muSSb5AzzjdtsNjnCzk3YNQzJle6Sze69/YIeUyjWiTExJsZUOMfkeQ/1vB/aHTbZHefeJ90uQ26XW3aHXXaHLVPcLbfr3LFq1mNe6mTNmDz1C7ROHlnPNTxjKAxj8gilOuU0Jme4I+A6mXE/54ROh00ZLsP8f2Y5xW02yWE/F3e5XNQpD2NyhjvO69xdhvcxbEZGRqEZU07xwl6nrHllJ89NqWrVqmnDhg2qUqWKV3zevHmqU6dOXjeXo7/++sv8uuCTTz6p1atXa8CAAQoPD1evXr38rjNq1CiNGDHCJ75+/XoVK1ZMkpSQkKAaNWpo+/btOnjwoLlMxYoVJUnNb2qshCqlzfiGBRu1c+M/at3zSsWWijHjP8xcowM7kpV0fxs5w849lN9NWi6Xy+Vz7aumTZsqLS1Nv/zyixlzOBxq1qyZjh07pk2bNpnxqKgoNWrUSIcOHdJff/1lxuPi4lSnTh3t2bNHf//9txnPaUwVK1bUli1bdOzYMTNevXp1lSlTRhs3btTp06fNeO3atVWiRAmtX7/e60nZsGFDhYeHMybGxJgYU45j6tS/ndeYZr/xraJiI3Vdr6vNWEZ6hmaPX6SEKqXU4pamZvz44RP6buIKVa5b3uuxKegxhWKdGBNjYkyFc0ye99CDOw9p5RdrdekV1VWrxSXm8rs2/q31C35To7Z1VLl+RTO++Yet2vTDNvMY1pNTYRhTKNYpuzF56hdonTyynmt4ci0MYwrFOuU0pk792wVcJw9/54T2xBJatvofnUnNUPurvc+bFyzfqcgIp65pVsGMuTIMzV+xU/ElonRFw0QzvnHjRuqUhzF16t/uvM7dTx8/43UMu2bNmkIzpqJcp0AnLdmMzK22ALz//vsaPny4xowZoz59+uj999/Xtm3bNGrUKL3//vvq3r17XjaXo/DwcDVt2lQrV640YwMGDNDq1av1ww8/+F3H30ypSpUqKTk5WcWLF5eUc2fy2rjOQZkpteTYrALvTGaOh0q3lTExJsZUuMfUrnQXr/j5zpT6NvmrQjOmUKwTY2JMjKlwjikp8RZJ+Z8pNX//zEIzptziRbFO2cU99cvvTClP/QrDmDxCqU45jSkp8ZagzJSKSGoWlJlS/zf5SeqUhzElJd4SlJlS8/fPLDRjyile2OuUkpKi+Ph4HTt2zOzF+JPnmVL33nuvoqKi9PTTT+vUqVO6/fbbVb58eY0bNy6oDSlJKleunOrWresVq1Onjr744ots14mIiFBERIRP3Ol0yun0Hq7ngcvKle7yieUUz0jzjdtsNp/9Zc4l0OWzyzGvcc8TMNB4XnLPLs6YGJPEmLLLMa/xojImf++HMvzHDcPwH3cbQRkrdWJM2cUZE2OSCueYsr4nnm1u+L5Pnj1p9t2n51g16z6okzVj8q1fznXKLp5139TJujFlrmF+zgkdrnONg4xM//da3k/cMLzjnsePOgU2pkDq5/dYNUs8c74FPaZA4oW1Ttnt3yefgJbKomfPnurZs6dOnTqlEydOqEyZMuezmVy1bNlSmzdv9opt2bLF56uDAAAAAAAAKFrOqynlER0drejo6GDl4mPQoEG66qqr9MILL+i2227TTz/9pHfffVfvvvvuBdsnAAAAAAAALrzzutC5zWbL9v7MF8HKr2bNmunLL7/UE088oZEjR6patWoaO3asevbsGbR9AAAAAAAAwHp5bkoNHDjQ63Z6errWr1+vefPmaciQIcHKy3TjjTfqxhtvDPp2AQAAAAAAUHDy3JR66KGH/MbffPNNn58cBAAAAAAAAPzxvVz6eerYsWOOv4oHAAAAAAAAeAStKTVjxgyVKlUqWJsDAAAAAABACMvz1/cuu+wyrwudG4ahffv26eDBg3rrrbeCmhwAAAAAAABCU56bUl27dvW6bbfblZCQoDZt2qh27drBygsAAAAAAAAhLM9NqWHDhl2IPAAAAAAAAHARCagplZKSEvAGixcvft7JAAAAAAAA4OIQUFOqRIkSXteR8scwDNlsNrlcrqAkBgAAAAAAgNAVUFNq8eLFFzoPAAAAAAAAXEQCakq1bt36QucBAAAAAACAi0ieL3TucerUKe3atUtpaWle8YYNG+Y7KQAAAAAAAIS2PDelDh48qLvvvltz5871ez/XlAIAAAAAAEBu7HldYeDAgTp69KhWrVqlqKgozZs3T5MmTVLNmjX1zTffXIgcAQAAAAAAEGLyPFPqu+++09dff62mTZvKbrerSpUquv7661W8eHGNGjVKnTp1uhB5AgAAAAAAIITkeabUyZMnVaZMGUlSyZIldfDgQUlSgwYNtG7duuBmBwAAAAAAgJCU56ZUrVq1tHnzZklSo0aN9M477+iff/7R22+/rXLlygU9QQAAAAAAAISePH9976GHHtLevXslScOGDVOHDh00ZcoUhYeHa+LEicHODwAAAAAAACEoz02pO+64w/x/kyZNtHPnTm3atEmVK1dW6dKlg5ocAAAAAAAAQlOev763fPlyr9vR0dG6/PLLaUgBAAAAAAAgYHluSl133XWqVq2annzySf3+++8XIicAAAAAAACEuDw3pfbs2aNHHnlES5cuVf369dW4cWO9/PLL+vvvvy9EfgAAAAAAAAhBeW5KlS5dWv3799eKFSu0bds23XrrrZo0aZKqVq2q66677kLkCAAAAAAAgBCT56ZUZtWqVdPjjz+u0aNHq0GDBlq6dGmw8gIAAAAAAEAIO++m1IoVK/TAAw+oXLlyuv3221W/fn3Nnj07mLkBAAAAAAAgRDnzusITTzyhzz//XHv27NH111+vcePGqUuXLoqOjr4Q+QEAAAAAACAE5bkptWzZMg0ZMkS33XabSpcufSFyAgAAAAAAQIjLc1NqxYoVFyIPAAAAAAAAXETydaFzAAAAAAAA4HzQlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYLk8N6XuvfdeLVmy5AKkAgAAAAAAgItFnptSBw8eVIcOHVSpUiUNGTJEP//884XICwAAAAAAACEsz02p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1apVK2h5bNu2TV26dFFiYqJiYmLUrFkzffvtt17LBPL8WblypRo3bqzIyEg1bdpUX331VUh+LTi319uRI0d01113qWTJkoqOjlbHjh31559/mut7/iL/zTffqG7duoqIiNCuXbvylRPHLoHL7lhAktauXZvtcUAgrxN/HA6HypYta/6LiYmR0+n0ikVFRZnLz58/X3Xq1FFMTIw6dOigvXv3mvfl9nkpXTyzWt99912VL1/ep6HbpUsX3XPPPX5nF77//vuqU6eOIiMjVbt2bb311ltByYXjz+y53W699NJLuuSSSxQREaHKlSvr+eefN48jpk2bplatWikqKkrNmjXTli1btHr1ajVt2lQxMTHq2LGjDh48aG7PquOGYHwupqWlqX///ipXrpwiIyNVpUoVjRo1Kqh5FrTMxzE5fQ5JZz8be/bsqYSEBEVFRalmzZr66KOPAt7X9OnTVbduXT3++ONatmyZdu/e7XV/dsdJueXlsWLFCjVs2FCRkZG68sortXHjxvN8VC4cmlJBNGrUKH388cd6++239dtvv2nQoEG64447vE5mnnrqKY0ZM0Zr1qyR0+nUPffcY943ZcoUPf/883rxxRe1du1aVa5cWRMmTAhafunp6Xr22Wf1888/66uvvtKOHTvMg7dKlSrpiy++kCRt3rxZe/fu9TrJmjRpkooVK6ZVq1bppZde0siRI7Vw4cKg5VYY7N27Vz169NA999yjP/74Q0uWLNEtt9xiHowvWrTIjH/22WeaOXOmRowYYa5/8uRJPfzww1qzZo0WLVoku92um2++OSh/JT5z5oyaNGmi2bNna+PGjbrvvvt055136qeffpJ09utOLVq0UN++fc2/TlaqVMlcP6fnXSgaN26cRo4cqYoVK2rv3r1avXq1pLPP4/DwcK1YsUJvv/22JMlut+v111/Xb7/9pkmTJum7777To48+GpQ8jh8/rl69emn58uX68ccfVbNmTd1www1mc8mT10cffeSVp3T2oOGrr77SrFmzNGvWLC1dulSjR48OSl5FzaRJk+R0OvXTTz9p3LhxevXVV/X+++97LTNmzBg1bdpU69ev1wMPPKD//ve/+Tr4HTJkiB555BGtX79eLVq0UOfOnZWcnCzp7IFoxYoVNX36dP3+++8aOnSonnzySU2bNs1rG4sXL9a2bdu0ePFiTZo0SRMnTrT0a4kF5dNPP1WPHj00ZcoUde3aVUlJSSpZsqRWr16t6dOn69tvv1X//v291lm0aJE2b96shQsXatasWUHL5cSJE7rhhhu0aNEirV+/Xh06dFDnzp19GiU5PX9SUlLUuXNnNWjQQOvWrdOzzz6rxx57LGg5FjY5vd569+6tNWvW6JtvvtEPP/wgwzB0ww03eJ00nTp1Si+++KLef/99/fbbbypTpky+8uHYJXA5HQvkdBwQ6OskP06dOqVXXnlFkydP1rJly7Rr1y4NHjzYvD+3z8uLya233qrk5GQtXrzYjB0+fFjz5s1Tz549fZafMmWKhg4dqueff15//PGHXnjhBT3zzDOaNGlSvnPh+DN7TzzxhEaPHq1nnnlGv//+uz799FMlJiaa9w8bNkxPP/201q1bJ6fTqdtvv12PPvqoxo0bp++//15bt27V0KFDvbZpxXFDMD4XX3/9dX3zzTeaNm2aNm/erClTpph/WA0FmY9jevbsmePnkCTzOTB37lz98ccfmjBhgkqXLh3w/j744APdcccdiouLU8eOHf3W3N9xUm55eQwZMkRjxozR6tWrlZCQoM6dOxe+P5IaCIozZ84Y0dHRxsqVK73iffr0MXr06GEsXrzYkGR8++235n2zZ882JBmnT582DMMwmjdvbvTr189r/ZYtWxqNGjUKKIdhw4YFvKxhGMbq1asNScbx48cNwzDMHI8cOeK1XOvWrY2rr77aK9asWTPjscceC3hfRcHatWsNScaOHTt87uvVq5dRqlQp4+TJk2ZswoQJRkxMjOFyufxu7+DBg4Yk49dffw1o/5KML7/8MuB8O3XqZDzyyCPm7datWxsPPfSQ1zKBPO9C1WuvvWZUqVLFvN26dWvjsssuy3W96dOnG/Hx8QHtI7vXTHZcLpcRGxtr/N///Z8Z81f3YcOGGdHR0UZKSooZGzJkiNG8efOA9lPU9erVy+jSpYthGGfrVqdOHcPtdpv3P/bYY0adOnXM21WqVDHuuOMO87bb7TbKlCljTJgwIaD9Za7B9u3bDUnG6NGjzfvT09ONihUrGi+++GK22+jXr5/xr3/9y2sMVapUMTIyMszYrbfeanTr1i2gnIoaz/vPG2+8YcTFxRlLliwxDMMw3n33XaNkyZLGiRMnzGVnz55t2O12Y9++fYZhnH2sEhMTjdTU1DztLywszChWrJjXv4iICCMuLi7HdevVq2eMHz/evJ3b82fChAlGfHy813vme++9Z0gy1q9fH3DORUFOr7ctW7YYkowVK1aY9x06dMiIiooypk2bZhiGYXz00UeGJGPDhg0B75Njl+DKeixwvscBWV8ngciulp7nxdatW83Ym2++aSQmJma7rUA/L0NVly5djHvuuce8/c477xjly5c3XC6Xz+Nco0YN49NPP/Va/9lnnzVatGgR0L44/sy7lJQUIyIiwnjvvfd87vMcR7z//vtm7LPPPjMkGYsWLTJjo0aNMmrVqmXezu9xg5Wfiw8++KBx3XXXeX1WFHXZHcf4k/VzqHPnzsbdd999XvvdsmWLERYWZhw8eNAwDMP48ssvjWrVqnk9toEeJ2X3+fj555+byyQnJxtRUVHG1KlTzyvfC4WZUkGydetWnTp1Stdff71iYmLMfx9//LHXV7gaNmxo/r9cuXKSZE6z27x5s6644gqv7Wa9nR9r165V586dVblyZcXGxqp169aSFNBfwjLnLZ3N3d/0wKKsUaNGatu2rRo0aKBbb71V7733no4cOeJ1f3R0tHm7RYsWOnHihDnF8s8//1SPHj1UvXp1FS9e3PyLQTD+0uhyufTss8+qQYMGKlWqlGJiYjR//vyAt53T8+5i0qRJE5/Yt99+q7Zt26pChQqKjY3VnXfeqeTkZJ06dSrf+9u/f7/69u2rmjVrKi4uTsWLF9eJEycCqlvVqlUVGxtr3g7F11ygrrzyStlsNvN2ixYt9Oeff8rlcpmxzM9xm82msmXL5uvxatGihfl/p9Oppk2b6o8//jBjb775ppo0aaKEhATFxMTo3Xff9alrvXr15HA4zNuhXsMZM2Zo0KBBWrhwofn58scff6hRo0YqVqyYuVzLli3ldru9ZrI1aNBA4eHhedpfz549tWHDBq9/I0eO9FrmxIkTGjx4sOrUqaMSJUooJiZGf/zxh0+tcnr+bN682Zz27hHMz+bCJrvX2++//y6n06nmzZub98XHx6tWrVper43w8HCfY4b84NglOHI6Dgj0dZIf0dHRqlGjhlcOmWuRn8/LUNSzZ0998cUXSk1NlXR2NlT37t1lt3ufup08eVLbtm1Tnz59vM4/nnvuuaBcQoLjT//++OMPpaamqm3bttkuk3nsnhlUDRo08IplfSzye9xg1edi7969tWHDBtWq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qnLlyumyyy6T3W7X9OnTVbZs2WwbKEVJ1uOYp556KtfPoaFDh6pJkyaqV6+eUlNTNWvWrICaPh988IE6deqkRo0aecXr1q2rQYMGacqUKerXr5/fdQP5fPQYOXKk4uPjlZiYqKeeekqlS5c2f+W6sOCaUkH07LPP6plnntGoUaNUp04ddejQQbNnzw74RKVnz5564oknNHjwYHNaZO/evb2uY5GbLVu26LLLLvP6d//99yshIUETJ040f3Jy9OjRPt3bChUqaMSIEXr88ceVmJjo8+tIoa548eJatmyZbrjhBl166aV6+umnNWbMGHXs2FGS1LZtW9WsWVPXXHONunXrpptuusn8eWm73a7PP/9ca9euVf369TVo0CC9/PLLec7h4Ycf9qnf+vXr9fTTT+vyyy9XUlKS2rRpo7Jly/q8mQwePFgOh0N169Y1p3AiZ40aNdKrr76qF198UfXr19eUKVPO6ydtr7nmGq+aea5d9cEHH+jIkSO6/PLLdeedd2rAgAE+06jHjBmjhQsXqlKl/2/v/kOqvv44jr+899so++Vao0Jc5YR2meU1f7QWaFRiMQX7vSLMoJUsmkWSyEhWa2lht+gX9gtvmRRRUOlslUjMJEjalFroJmRBy6JMTbSWeb9/RJdupXm3671eez7g/uE9537e78+Vw+fwvud8PgEKDQ11yXn1NomJiWptbVVkZKRWrFihlJQULVu2zCXHfjkRe3XZtCRlZWUpKytLISEhunTpks6cOWPf7798+XLNmjVL8+fP14QJE/Tw4UOHVVPvuzFjxqikpERHjx7VunXrdO7cOdXX1ysiIkJz5szR1KlTtWvXLrfkYrFY9OGHH+rLL79UfHy8YmNj37raoDODBg1SQUGBKioqZDab9f3339ufmOTM9dlbdDbecnNzFRYWpri4OE2cOFE2m01FRUVvbPNwFnMX1/k3cwFXjJP/qivXy/fNlClTNGTIEFVXV2vhwoUd9lu6dKkOHDig3NxcjR07VtHR0bJarU79UML803nr1q3TmjVrlJGRIZPJpPnz53vF/bJcMd4HDhyoLVu2KDw8XBEREaqtrVVRUdEb9zzzVq/OY7Kyst55Hfrggw+Unp6ucePGKSoqSkajUceOHes0xr179/Tzzz9r9uzZb7S9fIL7wYMHO/x8V66PL2VlZSklJUVhYWGqq6tTQUGB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoH1JREFUeJzs3Xl4U2X6//HPSdId2rK0QC27CsiqgBUEWaUgsohfVEQBF3QUUGRcxmUU1BH3ZRRRRwXccUHwB4ggssgmUyhiUUCBgggILdJCoUuS8/uj09A0aZtASEv7fl1Xr4vcPec5z507Ccnd55wYpmmaAgAAAAAAAILIUtETAAAAAAAAQPVDUwoAAAAAAABBR1MKAAAAAAAAQUdTCgAAAAAAAEFHUwoAAAAAAABBR1MKAAAAAAAAQUdTCgAAAAAAAEFHUwoAAAAAAABBR1MKAAAAAAAAQUdTCgAAScuXL5dhGFq+fHlFT6XSMgxDkydPruhpoBQ9e/ZUz549K3oaZ4Vnn31WLVu2lNPprOip+IUaVz2GYWj8+PHlbvfGG2+oUaNGysvLC8KsACB4aEoBwFnIMAyffoLRYCnt2E8//fQZPzZQlS1cuLDaNAHXr1+vO++8Ux07dlRISIgMwyhz+3feeUetWrVSeHi4zjvvPL366qs+Hys7O1vPPPOMHnjgAVks1e+t8KuvvqqYmBgVFBRU9FQqpczMTD333HO67LLLFBcXp9jYWF1yySWaPXu2z2MsXbpUN998s84//3xFRkaqWbNmuvXWW7V///5TnteYMWOUn5+vN99885THAIDKyFbREwAA+O/99993u/3ee+9pyZIlHvFWrVoFZT6XX365Ro0a5Ra78MILg3JsoKpauHChpk2bVi0aUwsXLtTbb7+tdu3aqVmzZtq+fXup27755pv629/+pquvvlqTJk3S999/r7vuukvHjx/XAw88UO6x3n33Xdntdo0YMSKQKZw1FixYoH79+ikkJKSip1IprV27Vg8//LCuuOIKPfLII7LZbPriiy903XXX6eeff9aUKVPKHeOBBx7Q4cOHNXz4cJ133nnauXOnXnvtNc2fP1+bNm1S/fr1/Z5XeHi4Ro8erRdffFETJkwot3ELAGcLmlIAcBa64YYb3G6vW7dOS5Ys8YgHy/nnn19hx0bg5ObmKjQ0tFquHsGZ5XQ6lZ+fr/DwcK+/v+OOO/TAAw8oIiJC48ePL7UpdeLECT388MMaOHCgPv/8c0nS2LFj5XQ69cQTT+i2225TrVq1ypzLjBkzNHjw4FLnUpUdP35cK1as0PTp0yt6KpVW69at9euvv6px48au2J133qm+ffvqmWee0f3336+oqKgyx3jxxRfVrVs3t9fS/v37q0ePHnrttdf05JNPntLcrrnmGj377LNatmyZevfufUpjAEBlw7tOAKiicnJy9Pe//10NGzZUWFiYWrRooeeff16mabptV3Q9iw8//FAtWrRQeHi4OnbsqJUrV/p1vBMnTig3N9fn7T///HMZhqEVK1Z4/O7NN9+UYRhKS0vzum9KSooMw9CsWbM8fvfNN9/IMAzNnz9fkrR7927deeedatGihSIiIlSnTh0NHz5c6enp5c6xSZMmGjNmjEfc23Vd8vLy9Nhjj+ncc89VWFiYGjZsqPvvv9/j+h9LlixRt27dFBsbqxo1aqhFixZ66KGHyp2LP3X6448/dPPNN6tevXoKCwtT69at9e6777ptU3QNrU8++USPPPKIzjnnHEVGRio7O7vcuRTx9b6dOXOmDMPQ6tWrNWnSJMXFxSkqKkpXXXWVDh065Lat0+nU5MmTlZCQoMjISPXq1Us///yzRy0mT57sdaVA0bGKz2HevHkaOHCgEhISFBYWpubNm+uJJ56Qw+Hw2H/atGlq1qyZIiIidPHFF+v7778/rXp78/3332v48OFq1KiRa9977rlHJ06ccG0zZswYTZs2TZL7KbL+yM/P16OPPqqOHTsqJiZGUVFR6t69u5YtW+baxjRNNWnSREOGDPHYPzc3VzExMbr99tv9zrv447V169YKCwvTokWLSp1rvXr1FBERUW5Oy5YtU2Zmpu688063+Lhx45STk6MFCxaUuf+uXbu0efNm9e3b1+N3mZmZuvHGGxUdHa3Y2FiNHj1aP/74owzD0MyZM922/e6779S9e3dFRUUpNjZWQ4YM0S+//OIxZmpqqgYMGKDo6GjVqFFDffr00bp16zy227x5s3r06KGIiAglJibqySef1IwZMzwey97481hcunSp8vLyNGDAgFM69tdff+3Ku2bNmho4cKC2bNnits2YMWNUo0YN7dmzR1deeaVq1Kihc845x/V4/umnn9S7d29FRUWpcePG+uijj9z2L3oOr1q1SnfddZfrFLrbb79d+fn5OnLkiEaNGqVatWqpVq1auv/++z3+X3v++efVtWtX1alTRxEREerYsaOriVmepk2bujWkpMLH89ChQ5WXl6edO3eWO8Zll13m0dy/7LLLVLt2ba+PE0k+vbZ37NhRtWvX1rx583zKBQDOBqyUAoAqyDRNDR48WMuWLdMtt9yiDh066JtvvtF9992nP/74Qy+99JLb9itWrNDs2bN11113KSwsTK+//rr69++v9evXq02bNuUeb+bMmXr99ddlmqZatWqlRx55RNdff32Z+wwcOFA1atTQp59+qh49erj9bvbs2WrdunWpx+7UqZOaNWumTz/9VKNHj/bYt1atWkpOTpYk/fe//9WaNWt03XXXKTExUenp6Zo+fbp69uypn3/+WZGRkeXmVx6n06nBgwdr1apVuu2229SqVSv99NNPeumll7R9+3bNnTtXkrRlyxZdeeWVateunR5//HGFhYXpt99+0+rVq306ji91+vPPP3XJJZe4mgJxcXH6+uuvdcsttyg7O1sTJ050G/OJJ55QaGio7r33XuXl5Sk0NNTnvP29bydMmKBatWrpscceU3p6ul5++WWNHz/e7VotDz74oJ599lkNGjRIycnJ+vHHH5WcnOxXw7OkmTNnqkaNGpo0aZJq1Kih7777To8++qiys7P13HPPubabPn26xo8fr+7du+uee+5Renq6hg4dqlq1aikxMdG1na/1Ls1nn32m48eP64477lCdOnW0fv16vfrqq9q7d68+++wzSdLtt9+uffv2eT0t11fZ2dl6++23NWLECI0dO1ZHjx7VO++8o+TkZK1fv14dOnSQYRi64YYb9Oyzz+rw4cOqXbu2a///9//+n7Kzs12rIP3N+7vvvtOnn36q8ePHq27dumrSpMkp5VFcamqqpMLXgOI6duwoi8Wi1NTUMldtrlmzRpJ00UUXucWdTqcGDRqk9evX64477lDLli01b948j9cXSfr22281YMAANWvWTJMnT9aJEyf06quv6tJLL9XGjRtdeW7ZskXdu3dXdHS07r//foWEhOjNN99Uz549tWLFCiUlJUkqbCL36tVLhmHowQcfVFRUlN5++22FhYWVe3/4W5OFCxeqY8eOqlevnt/Hfv/99zV69GglJyfrmWee0fHjxzV9+nR169ZNqampbvV1OBwaMGCALrvsMj377LP68MMPNX78eEVFRenhhx/WyJEjNWzYML3xxhsaNWqUunTpoqZNm7odb8KECapfv76mTJmidevW6a233lJsbKzWrFmjRo0a6amnntLChQv13HPPqU2bNm6nkL/yyisaPHiwRo4cqfz8fH3yyScaPny45s+fr4EDB5Z7v3pz4MABSVLdunVPaf9jx47p2LFjXvf35//giy66yOf/MwDgrGACAM5648aNM4u/pM+dO9eUZD755JNu2/3f//2faRiG+dtvv7likkxJZkpKiiu2e/duMzw83LzqqqvKPXbXrl3Nl19+2Zw3b545ffp0s02bNqYk8/XXXy933xEjRpjx8fGm3W53xfbv329aLBbz8ccfL3PfBx980AwJCTEPHz7siuXl5ZmxsbHmzTff7IodP37cY9+1a9eaksz33nvPFVu2bJkpyVy2bJkr1rhxY3P06NEe+/fo0cPs0aOH6/b7779vWiwW8/vvv3fb7o033jAlmatXrzZN0zRfeuklU5J56NChMnPzxtc63XLLLWaDBg3MjIwMt/2vu+46MyYmxnV/FOXbrFkzr/dRaXN47LHHXLd9vW9nzJhhSjL79u1rOp1OV/yee+4xrVareeTIEdM0TfPAgQOmzWYzhw4d6jbm5MmTTUlutXjsscdMb29jio61a9euMud5++23m5GRkWZubq5pmoWPnTp16pidO3c2CwoKXNvNnDnTlHRK9S6Nt/lMnTrVNAzD3L17tytW8nldnpKPS7vdbubl5blt89dff5n16tVze45s27bNlGROnz7dbdvBgwebTZo0cdXMn7wlmRaLxdyyZYvP8y9SVt7jxo0zrVar19/FxcWZ1113XZljP/LII6Yk8+jRo27xL774wpRkvvzyy66Yw+Ewe/fubUoyZ8yY4Yp36NDBjI+PNzMzM12xH3/80bRYLOaoUaNcsaFDh5qhoaHmjh07XLF9+/aZNWvWNC+77DJXbMKECaZhGGZqaqorlpmZadauXdvjsXyqrz1FGjVq5PYc9vXYR48eNWNjY82xY8e6jXfgwAEzJibGLT569GhTkvnUU0+5Yn/99ZcZERFhGoZhfvLJJ6741q1bPV5Xip7DycnJbq8XXbp0MQ3DMP/2t7+5Yna73UxMTHS7T0zT8zmWn59vtmnTxuzdu7d5KjIzM834+Hize/fup7S/aZrmE088YUoyly5d6hb3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lBS3eHJysgoKCtxyczqdmjZtmtt2DRo0UIcOHTRr1iy3uqSlpWnx4sWuRpnValW/fv00b948paenu7b7888/9dFHH6lbt26uU96Sk5O1du1abdq0ybXd4cOH3a7xVRpfa7J48WJJUr9+/Tzy9uXYycnJio6O1lNPPeV2GmiRQL+2nA6r1SrDMNxeh9LT0z2+ibBjx47q27ev66f49c+Kvglv5MiRpa5Cq1Wrltv+ffv2VXh4uKTC16IrrrhCf/zxhxYuXOj19Lzi/Pk/eOPGjeratatP9wUAnA1YKQUAVdCgQYPUq1cvPfzww0pPT1f79u21ePFizZs3TxMnTnR9oC/Spk0bJScnu30dtVR46kJZpk2bprlz52rQoEFq1KiR9u/fr3fffVd79uzR+++/X+oFiYsLCQnRsGHD9MknnygnJ0fPP/+8X7lee+21evTRRxUeHq5bbrnF49pMV155pd5//33FxMToggsu0Nq1a/Xtt9+qTp065Y5966236vPPP1f//v11zTXXaMeOHfrggw887r8bb7xRn376qf72t79p2bJluvTSS+VwOLR161Z9+umn+uabb9SpUyc9/vjjWrlypQYOHKjGjRvr4MGDev3115WYmFjmtbeK+FKnp59+WsuWLVNSUpLGjh2rCy64QIcPH9bGjRv17bfflntKpT9O5771pl69err77rv1wgsvaPDgwerfv79+/PFHff3116pbt67bSpB+/fqpUaNGuuWWW1xNlHfffVdxcXHas2ePa7uuXbuqVq1aGj16tO666y4ZhqH333/fo5kWGhqqyZMna8KECerdu7euueYapaena+bMmWrevLnbsX2ttzctW7ZU8+bNde+99+qPP/5QdHS0vvjiC6/X1Clq6t51111KTk722igqy5VXXqk5c+boqquu0sCBA7Vr1y698cYbuuCCC3Ts2DGP7QcOHKg6deros88+04ABA9xOjzvdvMuze/duvf/++5JONoyefPJJSYWreYpOnYqIiNATTzyhcePGafjw4UpOTtb333+vDz74QP/617/cLj7uTbNmzdSmTRt9++23uvnmm13xoUOH6uKLL9bf//53/fbbb2rZsqW++uor1/OleP2fe+45DRgwQF26dNEtt9yiEydO6NVXX1VMTIwmT57s2u7JJ5/UkiVL1K1bN915552y2Wx68803lZeXp2effda13f33368PPvhAl19+uSZMmKCoqCi9/fbbatSokQ4fPlzmCihfa7JgwQJ169bN45pJvh47Ojpa06dP14033qiLLrpI1113neu5tmDBAl166aVem8cVYeDAgXrxxRfVv39/XX/99Tp48KCmTZumc889V5s3by53//Xr12vUqFGqU6eO+vTp49Gg69q1q9tKWW9Gjhyp9evX6+abb9Yvv/yiX375xfW7GjVqaOjQoW7b+/p/8IYNG3T48GENGTKk3DwA4KwR5G/7AwCcAd6+Qv3o0aPmPffcYyYkJJghISHmeeedZz733HNuX7FtmoVfRz1u3Djzgw8+MM877zwzLCzMvPDCC81ly5aVe9zFixebl19+uVm/fn0zJCTEjI2NNfv16+fxldflWbJkiSnJNAzD/P333/3a99dff3V9pfaqVas8fv/XX3+ZN910k1m3bl2zRo0aZnJysrl161azcePG5ujRo13bLVu2zJTkkfcLL7xgnnPOOWZYWJh56aWXmikpKR5fy26ahV85/swzz5itW7c2w8LCzFq1apkdO3Y0p0yZYmZlZZmmaZpLly41hwwZYiYkJJihoaFmQkKCOWLECHP79u3l5ulPnf78809z3LhxZsOGDc2QkBCzfv36Zp8+fcy33nrLI9/PPvus3GMXn0Pxr2739b4t+or3//73v27jebvP7Xa7+c9//tOsX7++GRERYfbu3dv85ZdfzDp16rh9FbxpmuaGDRvMpKQkMzQ01GzUqJH54osvuo5V9FX2pmmaq1evNi+55BIzIiLCTEhIMO+//37zm2++8Vrvf//732bjxo3NsLAw8+KLLzZXr15tduzY0ezfv7/bdr7UuzQ///yz2bdvX7NGjRpm3bp1zbFjx5o//vijKcmcMWOG230xYcIEMy4uzjQMw+M5XlLJx6XT6TSfeuopVz4XXnihOX/+fHP06NFm48aNvY5x5513mpLMjz76yOvvfc276PHqq6LHgrefks810zTNt956y2zRooUZGhpqNm/e3HzppZc8XttK8+KLL5o1atQwjx8/7hY/dOiQef3115s1a9Y0Y2JizDFjxpirV682JZmffPKJ27bffvuteemll5oRERFmdHS0OWjQIPPnn3/2ONbGjRvN5ORks0aNGmZkZKTZq1cvc82aNR7bpaammt27dzfDwsLMxMREc+rUqea///1v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rrvuOrVo0ULPPPOMOnTooJdfftltu/Hjx+vqq69Wq1atNH36dMXExOidd94pd/xt27bp0ksvVXJysmbMmCGr1ep1u9q1aysyMlKhoaGqX7++ateurT179mjGjBn67LPP1L17dzVv3lz33nuvunXrphkzZkiSzjnnHN17773q0KGDmjVrpgkTJqh///769NNPJUkxMTEKDQ1VZGSka3VYaXPwJj8/X++9954uvPBCtWvXTqtWrdL69ev12WefqVOnTjrvvPP0/PPPKzY2Vp9//rnP4wIAgOqBa0oBAAB4kZ2drX379unSSy91i1966aUep6N16dLF9W+bzaZOnTrpl19+kSS1bt1au3fvliR1795dX3/9tSTpxIkT6t69u66//nqPJpcvfvrpJzkcDp1//vlu8by8PNWpU0eS5HA49NRTT+nTTz/VH3/8ofz8fOXl5SkyMtLv43nTuHFjxcXFuW7/+OOPOnbsmOv4RU6cOKEdO3YE5JgAAKDqoCkFAABwBi1cuFAFBQWSpIiICFc8LCxMffv21fz583XffffpnHPO8WvcY8eOyWq1asOGDR6rm4ouzv7cc8/plVde0csvv6y2bdsqKipKEydOVH5+fpljWywWmabpFivKobioqCiPOTVo0MDtulZFSl6jCgAAgKYUAACAF9HR0UpISNDq1avVo0cPV3z16tW6+OKL3bZdt26dLrvsMkmS3W7Xhg0bNH78eEmFq4m8sVgsev/993X99derV69eWr58uRISEnye34UXXiiHw6GDBw+qe/fuXrdZvXq1hgwZohtuuEGS5HQ6tX37dl1wwQWubUJDQ+VwONz2i4uL09GjR5WTk+NqPBVdM6osF110kQ4cOCCbzaYmTZr4nAsAAKieuKYUAABAKe677z4988wzmj17trZt26Z//OMf2rRpk+6++2637aZNm6Yvv/xSW7du1bhx4/TXX3/p5ptvLnd8q9WqDz/8UO3bt1fv3r114MABn+d2/vnna+TIkRo1apTmzJmjXbt2af369Zo6daoWLFggSTrvvPO0ZMkSrVmzRr/88otuv/12/fnnn27jNGnSRD/88IPS09OVkZEhp9OppKQkRUZG6qGHHtKOHTv00UcfaebMmeXOqW/fvurSpYuGDh2qxYsXKz09XWvWrNHDDz+slJQUn3MDAADVA00pAACAUtx1112aNGmS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2DFt2rRJmzZtkiTt2rVLmzZtcrsweXZ2tj777DPdeuutXsfo06ePXnvtNdfte++9VytWrFB6errWrFmjq666SlarVSNGjDijuQAAAJxtPvnkE23cuLHU1eQAAABnUoWulEpJSVGvXr1ctydNmiRJGj16tGbOnCmp8M2SaZqlNpV27NihjIwM1+29e/dqxIgRyszMVFxcnLp166Z169YpLi7uzCUCAABwlvn999919913a8mSJX6dzggAABAoFdqU6tmzZ7nffnPbbbfptttuK/X36enpbrc/+eSTQEwNAACgStuwYYMOHjyoiy66yBVzOBxauXKlXnvtNeXl5ZW67B8AACAQzoprSgEAACCw+vTpo59++sktdtNNN6lly5Z64IEHaEgBAIAzjqYUAABANVSzZk21adPGLRYVFaU6dep4xAEAAM6ECr3QOQAAAAAAAKonVkoBAACcAa/2eaWip+C35cuXV/QUAABANcJKKQAAAAAAAAQdTSkAAAAAAAAEHU0pAAAAAAAABB1NKQAAAAAAAAQdTSkAAAAAAAAEHU0pAAAAAAAABB1NKQAAAAAAAAQdTSkAAAAAAAAEHU0pAAAAAAAABB1NKQAAAAAAAASdraInAAAAUBX9/lOvoB6vYdtlfm0/efJkTZkyxS3WokULbd26NZDTAgAAKBVNKQAAgGqqdevW+vbbb123bTbeGgIAgODhnQcAAEA1ZbPZVL9+/YqeBgAAqKa4phQAAEA19euvvyohIUHNmjXTyJEjtWfPnoqeEgAAqEZoSgEAAFRDSUlJmjlzphYtWqTp06dr165d6t69u44ePVrRUwMAANUEp+8BAABUQwMGDHD9u127dkpKSlLjxo316aef6pZbbqnAmQEAgOqClVIAAABQbGyszj//fP32228VPRUAAFBN0JQCAACAjh07ph07dqhBgwYVPRUAAFBN0JQCAACohu69916tWLFC6enpWrNmja666ipZrVaNGDGioqcGAACqCa4pBQAAUA3t3btXI0aMUGZmpuLi4tStWzetW7dOcXFxFT01AABQTdCUAgAAOAMatl1W0VMo0yeffFLRUwAAANUcp+8BAAAAAAAg6GhKAQAAAAAAIOhoSgEAAAAAACDoaEoBAAAAAAAg6GhKAQCAasU0zYqeAoqhHgAAVF80pQAAQLUQEhIiSTp+/HgFzwTFFdWjqD4AAKD6sFX0BAAAAILBarUqNjZWBw8elCRFRkbKMIwKnlX1ZZqmjh8/roMHDyo2NlZWq7WipwQAAIKMphQAAKg26tevL0muxhQqXmxsrKsuAACgeqEpBQAAqg3DMNSgQQPFx8eroKCgoqdT7YWEhLBCCgCAaoymFAAAqHasVivNEAAAgArGhc4BAAAAAAAQdDSlAAAAAAAAEHQ0pQAAAAAAABB0NKUAAAAAAAAQdDSlAAAAAAAAEHQ0pQAAAAAAABB0NKUAAAAAAAAQdDSlAAAAAAAAEHQ0pQAAAAAAABB0NKUAAAAAAAAQdDSlAAAAAAAAEHQ0pQAAAAAAABB0FdqUWrlypQYNGqSEhAQZhqG5c+e6/X7MmDEyDMPtp3///uWOO23aNDVp0kTh4eFKSkrS+vXrz1AGAAAAAAAAOBUV2pTKyclR+/btNW3atFK36d+/v/bv3+/6+fjjj8scc/bs2Zo0aZIee+wxbdy4Ue3bt1dycrIOHjwY6OkDAAAAAADgFNkq8uADBgzQgAEDytwmLCxM9evX93nMF198UWPHjtVNN90kSXrjjTe0YMECvfvuu/rHP/5xWvMFAAAAAABAYFT6a0otX75c8fHxatGihe644w5lZmaWum1+fr42bNigvn37umIWi0V9+/bV2rVrgzFdAAAAAAAA+KBCV0qVp3///ho2bJiaNm2qHTt26KGHHtKAAQO0du1aWa1Wj+0zMjLkcDhUr149t3i9evW0devWUo+Tl5envLw81+3s7GxJkt1ul91ul1TY3LJYLHI6nXI6na5tLZbCvp41xCrDODmmw+6U6TQ94wVOmaYpW6j7/O0FDpmmKYfD4RYvyrNk3GazeWxvGIasVqvHHEuLl5WTxWKRw1E4p/LiVqtVhmG47qvy5k5O5ERO5ERO5ERO5ERO5ERO5ERO5BTonGyhVjkdppwOpyxWiyzWkx/GnQ6nnA4vn9G9fHa32+2VJifp7KxTyWOUplI3pa677jrXv9u2bat27dqpefPmWr58ufr06ROw40ydOlVTpkzxiKempioqKkqSFBcXp+bNm2vXrl06dOiQa5vExERJUtLgDoprXNcV37Q4TbvT/lCPkZeoZu0arvjaOSk6mJ6p5Nt7yhZy8u7/btYqORwOpaSkuM2hU6dOys/P1+bNm10xq9Wqzp07Kysry63ZFhERofbt2ysjI0M7d+50xWNiYtSqVSvt27dPe/fudcXLyikxMVHbt29XVlaWK96sWTPFx8crLS1NJ06ccMVbtmyp2NhYpaamuj0o27Vrp9DQUHIiJ3IiJ3IiJ3IiJ3IiJ3IiJ3IipzOe08DxfbUnba9SF29R+z6t1KhNomv7bWt/09a1O3z67J6SklJpcjpb65STkyNfGGbxtlkFMgxDX375pYYOHVrmdnFxcXryySd1++23e/wuPz9fkZGR+vzzz93GGT16tI4cOaJ58+Z5HdPbSqmGDRsqMzNT0dHRksruTPaKGRSQlVLLs+bTbSUnciInciInciInciInciInciIncjqFnJLrDQvISqlv/pxTaXKSzs46ZWdnq06dOsrKynL1Vbw5q5pSe/fuVaNGjTR37lwNHjzY6zZJSUm6+OKL9eqrr0qSnE6nGjVqpPHjx/t8ofPs7GzFxMSUe+cV6VFzoE/jlmfF0QUBGQcAAAAAgOqGz+aVh699lQq90PmxY8e0adMmbdq0SZK0a9cubdq0SXv27NGxY8d03333ad26dUpPT9fSpUs1ZMgQnXvuuUpOTnaN0adPH7322muu25MmTdJ//vMfzZo1S7/88ovuuOMO5eTkuL6NDwAAAAAAABWvQq8plZKSol69erluT5o0SVLh6XbTp0/X5s2bNWvWLB05ckQJCQnq16+fnnjiCYWFhbn22bFjhzIyMly3r732Wh06dEiPPvqoDhw4oA4dOmjRokUeFz8HAAAAAABAxak0p+9VJpy+BwAAAADA2YXP5pXHWXH6HgAAAAAAAKonmlIAAAAAAAAIOppSAAAAAAAACDqaUgAAAAAAAAg6mlIAAAAAAAAIOppSAAAAAAAACDqaUgAAAAAAAAg6mlIAAAAAAAAIOppSAAAAAAAACDpbRU8AAAAAAIDKokfNgQEZZ8XRBQEZB6jKWCkFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKMpBQAAAAAAgKCjKQUAAAAAAICgoykFAAAAAACAoKvQptTKlSs1aNAgJSQkyDAMzZ071/W7goICPfDAA2rbtq2ioqKUkJCgUaNGad++fWWOOXnyZBmG4fbTsmXLM5wJAAAAAAAA/FGhTamcnBy1b99e06ZN8/jd8ePHtXHjRv3zn//Uxo0bNWfOHG3btk2DBw8ud9zWrVtr//79rp9Vq1adiekDAAAAAADgFNkq8uADBgzQgAEDvP4uJiZGS5YscYu99tpruvjii7Vnzx41atSo1HFtNpvq168f0LkCAAAAAAAgcM6qa0plZWXJMAzFxsaWud2vv/6qhIQENWvWTCNHjtSePXuCM0EAAAAAAAD4pEJXSvkjNzdXDzzwgEaMGKHo6OhSt0tKStLMmTPVokUL7d+/X1OmTFH37t2VlpammjVret0nLy9PeXl5rtvZ2dmSJLvdLrvdLkmyWCyyWCxyOp1yOp2ubS2Wwr6eNcQqwzg5psPulOk0PeMFTpmmKVuo1W0O9gKHTNOUw+Fwi1uthduVjNtsNo/tDcOQ1Wr1mGNp8bJyslgscjgK51Re3Gq1yjAM131V3tzJiZzIiZzIiZzIiZzIiZzIiZwqa07WEKscBQ5ZrIYs1pPrOJwOU06HUxarRRarUSzulNPh+dnP6XRWmpyqYp28xW2hVr/r5O2zu91urzQ5SWdnnUoeozRnRVOqoKBA11xzjUzT1PTp08vctvjpgO3atVNSUpIaN26sTz/9VLfccovXfaZOnaopU6Z4xFNTUxUVFSVJiouLU/PmzbVr1y4dOnTItU1iYqIkKWlwB8U1ruuKb1qcpt1pf6jHyEtUs3YNV3ztnBQdTM9U8u09ZQs5efd/N2uVHA6HUlJS3ObQqVMn5efna/Pmza6Y1WpV586dlZWVpa1bt7riERERat++vTIyMrRz505XPCYmRq1atdK+ffu0d+9eV7ysnBITE7V9+3ZlZWW54s2aNVN8fLzS0tJ04sQJV7xly5aKjY1Vamqq24OyXbt2Cg0NJSdyIidyIidyIidyIidyIidyOmtyShrcQWu+2KDzL26mFl3OdcX3pO1V6uItat+nlRq1SXTFt639TVvX7vD4TJiRkVFpcqqKdfKW08Dxff2uk7fP7ikpKZUmp7O1Tjk5OfKFYRZvm1UgwzD05ZdfaujQoW7xoobUzp079d1336lOnTp+j925c2f17dtXU6dO9fp7byulGjZsqMzMTNeqrLI6k71iBgVkpdTyrPl0W8mJnMiJnMiJnMiJnMiJnMiJnCowp37xwwKyUmrJobmVJqeqWCdv8eR6wwKyUuqbP+dUmpyks7NO2dnZqlOnjrKysso8261SN6WKGlK//vqrli1bpri4OL/HPXbsmBo1aqTJkyfrrrvu8mmf7OxsxcTElHvnFelRc6Df8/JmxdEFARkHAAAAAHBq+Hx39qJ2lYevfZUKvdD5sWPHtGnTJm3atEmStGvXLm3atEl79uxRQUGB/u///k8pKSn68MMP5XA4dODAAR04cED5+fmuMfr06aPXXnvNdfvee+/VihUrlJ6erjVr1uiqq66S1WrViBEjgp0eAAAAAAAASlGh15RKSUlRr169XLcnTZokSRo9erQmT56sr776SpLUoUMHt/2WLVumnj17SpJ27NihjIwM1+/27t2rESNGKDMzU3FxcerWrZvWrVt3SqusAAAAAAAAcGZUaFOqZ8+eKuvsQV/OLExPT3e7/cknn5zutAAAAAAAAHCGVejpewAAAAAAAKieaEoBAAAAAAAg6GhKAQAAAAAAIOgC0pQ6cuRIIIYBAAAAAABANeF3U+qZZ57R7NmzXbevueYa1alTR+ecc45+/PHHgE4OAAAAAAAAVZPfTak33nhDDRs2lCQtWbJES5Ys0ddff60BAwbovvvuC/gEAQAAAAAAUPXY/N3hwIEDrqbU/Pnzdc0116hfv35q0qSJkpKSAj5BAAAAAAAAVD1+r5SqVauWfv/9d0nSokWL1LdvX0mSaZpyOByBnR0AAAAAAACqJL9XSg0bNkzXX3+9zjvvPGVmZmrAgAGSpNTUVJ177rkBnyAAAAAAAACqHr+bUi+99JKaNGmi33//Xc8++6xq1KghSdq/f7/uvPPOgE8QAAAAAAAAVY/fTamQkBDde++9HvF77rknIBMCAAAAAABA1ef3NaUk6f3331e3bt2UkJCg3bt3S5JefvllzZs3L6CTAwAAAAAAQNXkd1Nq+vTpmjRpkgYMGKAjR464Lm4eGxurl19+OdDzAwAAAAAAQBXkd1Pq1Vdf1X/+8x89/PDDslqtrninTp30008/BXRyAAAAAAAAqJr8bkrt2rVLF154oUc8LCxMOTk5AZkUAAAAAAAAqja/m1JNmzbVpk2bPOKLFi1Sq1atAjEnAAAAAAAAVHF+f/vepEmTNG7cOOXm5so0Ta1fv14ff/yxpk6dqrfffvtMzBEAAAAAAABVjN9NqVtvvVURERF65JFHdPz4cV1//fVKSEjQK6+8ouuuu+5MzBEAAAAAAABVjN9NKUkaOXKkRo4cqePHj+vYsWOKj48P9LwAAAAAAABQhZ1SU6pIZGSkIiMjAzUXAAAAAAAAVBN+N6WaNm0qwzBK/f3OnTtPa0IAAAAAAACo+vxuSk2cONHtdkFBgVJTU7Vo0SLdd999gZoXAAAAAAAAqjC/m1J333231/i0adOUkpJy2hMCAAAAAABA1WcJ1EADBgzQF198EajhAAAAAAAAUIUFrCn1+eefq3bt2oEaDgAAAAAAAFWY36fvXXjhhW4XOjdNUwcOHNChQ4f0+uuvB3RyAAAAAAAAqJr8bkoNHTrU7bbFYlFcXJx69uypli1bBmpeAAAAAAAAqML8bko99thjZ2IeAAAAAAAAqEZ8akplZ2f7PGB0dPQpTwYAAAAAAADVg09NqdjYWLfrSHljmqYMw5DD4QjIxAAAAAAAAFB1+dSUWrZs2ZmeBwAAAAAAAKoRn5pSPXr0ONPzAAAAAAAAQDXi94XOixw/flx79uxRfn6+W7xdu3anPSkAAAAAAABUbX43pQ4dOqSbbrpJX3/9tdffc00pAAAAAAAAlMfi7w4TJ07UkSNH9MMPPygiIkKLFi3SrFmzdN555+mrr746E3MEAAAAAABAFeP3SqnvvvtO8+bNU6dOnWSxWNS4cWNdfvnlio6O1tSpUzVw4MAzMU8AAAAAAABUIX6vlMrJyVF8fLwkqVatWjp06JAkqW3bttq4cWNgZwcAAAAAAIAqye+mVIsWLbRt2zZJUvv27fXmm2/qjz/+0BtvvKEGDRoEfIIAAAAAAACoevw+fe/uu+/W/v37JUmPPfaY+vfvrw8//FChoaGaOXNmoOcHAAAAAACAKsjvptQNN9zg+nfHjh21e/dubd26VY0aNVLdunUDOjkAAAAAAABUTX6fvrdq1Sq325GRkbroootoSAEAAAAAAMBnfjelevfuraZNm+qhhx7Szz//fCbmBAAAAAAAgCrO76bUvn379Pe//10rVqxQmzZt1KFDBz333HPau3fvmZgfAAAAAAAAqiC/m1J169bV+PHjtXr1au3YsUPDhw/XrFmz1KRJE/Xu3ftMzBEAAAAAAABVjN9NqeKaNm2qf/zjH3r66afVtm1brVixIlDzAgAAAAAAQBV2yk2p1atX684771SDBg10/fXXq02bNlqwYEEg5wYAAAAAAIAqyubvDg8++KA++eQT7du3T5dffrleeeUVDRkyRJGRkWdifgAAAAAAAKiC/F4ptXLlSt133336448/NH/+fI0YMeKUG1IrV67UoEGDlJCQIMMwNHfuXLffm6apRx99VA0aNFBERIT69u2rX3/9tdxxp02bpiZNmig8PFxJSUlav379Kc0PAAAAAAAAZ4bfK6VWr14dsIPn5OSoffv2uvnmmzVs2DCP3z/77LP697//rVmzZqlp06b65z//qeTkZP38888KDw/3Oubs2bM1adIkvfHGG0pKStLLL7+s5ORkbdu2TfHx8QGbOwDg1PSoOTAg46w4yinjAAAAwNnstC50froGDBigJ598UldddZXH70zT1Msvv6xHHnlEQ4YMUbt27fTee+9p3759HiuqinvxxRc1duxY3XTTTbrgggv0xhtvKDIyUu++++4ZzAQAAAAAAAD+qNCmVFl27dqlAwcOqG/fvq5YTEyMkpKStHbtWq/75Ofna8OGDW77WCwW9e3bt9R9AAAAAAAAEHx+n74XLAcOHJAk1atXzy1er1491+9KysjIkMPh8LrP1q1bSz1WXl6e8vLyXLezs7MlSXa7XXa7XVJhc8tiscjpdMrpdLq2tVgK+3rWEKsM4+SYDrtTptP0jBc4ZZqmbKFWtznYCxwyTVMOh8MtbrUWblcybrPZPLY3DENWq9VjjqXFy8rJYrHI4SicU3lxq9UqwzBc91V5cycnciKn6p1T0eufvcAhmfJ8Pcx3SIZkC/GMG4Yha0jh667dbq80ORWPS1WjTuRETuRETuRETtU1J2uIVY4ChyxWQxbryXUcTocpp8Mpi9Uii9UoFnfK6fD87Od0OitNTlWxTt7itlCr33Xy9tndbrdXmpyk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GDp0KGQyGaZPn46BAwdiy5YtNRKLOmEfRX3VxuOQKsb+pfrjsad+eNwph7fv1WF3794tc521tTV/xa2lnjx5gidPnpS6Tk9PD9bW1tUcEZXnzz//xKtXr0pdZ2pqWucn+awLeMypj1evXuHPP/8sc33xR2BT7cU+ivricaie2NapPx576ofHnXI4KEVERERERERERNWOt+8REREREREREVG146AUERERERERERFVOw5KERERERERERFRteOgFBERERERERERVTsOShERERERERERUbXjoBQRERFRJfn5+aFfv341HQYRERGRWuOgFBERERERERERVTsOShERERGpUGhoKJycnFC/fn3Y2NhgwoQJyMrKEteHh4fD2NgYJ06cgEwmg1QqRY8ePZCeni7mycvLw5QpU2BsbAwzMzPMnj0bvr6+Cldn2dnZYc2aNQplu7i4YNGiRUrHAgBbt26FjY0N9PX10b9/f4SGhsLY2Fghz7///W+0bdsWurq6aNasGRYvXoy8vLwq/6+IiIjo/cZBKSIiIiIV0tDQwNq1a3Hjxg1ERETg1KlTCAgIUMiTnZ2NVatWYffu3Th79izS0tLg7+8vrl+xYgUiIyOxc+dOJCQkIDMzE4cOHVJ5LAkJCRg/fjymTp2K5ORkdO/eHcuWLVPYx7lz5zB8+HBMnToVN2/exLfffovw8PAS+YiIiIgqSyIIglDTQRARERGpEz8/Pzx79kypgaIDBw5g/Pjx+PvvvwEUXCk1YsQI3L17F82bNwcAbNy4EUuWLMHDhw8BAJaWlvD39xcHqvLz89GsWTO0adNGLNPOzg7Tpk3DtGnTxLJcXFzQr18/haulyovliy++QFZWFqKjo8U8Q4cORXR0NJ49ewYA6NatG7p27Yq5c+eKeb777jsEBATg//7v/yp8/0RERERl0arpAIiIiIjqkri4OAQFBeH3339HZmYm8vLy8Pr1a2RnZ0NfXx8AoK+vLw5IAYCVlRX++usvAMDz58/x6NEjtG/fXlyvqakJV1dXyOVylcaSkpKC/v37K2zTvn17hUGqq1evIiEhQeHKqPz8/BLviYiIiKiyePseERERkYqkpqaiT58+aN26NQ4ePIikpCRs2LABAPDmzRsxX7169RS2k0gkqOzF6xoaGiW2yc3NrXQsFcnKysLixYuRnJwsLteuXcOdO3egq6tbqZiJiIiIiuKVUkREREQqkpSUBLlcjpCQEGhoFPz2t2/fvkrtw8jICBYWFkhMTESnTp0AFFyZdPnyZbi4uIj5zM3NFSZHz8zMxP379ysVi4ODAxITExXSir9u27YtUlJS0KJFi0q9DyIiIqKKcFCKiIiI6C08f/4cycnJCmkNGjRAbm4u1q1bB29vbyQkJGDz5s2V3vfkyZMRFBSEFi1a4MMPP8S6devw9OlTSCQSMU+XLl0QHh4Ob29vGBsbIzAwEJqamuL6Fi1aVBjL5MmT0alTJ4SGhsLb2xunTp3CsWPHFMoJDAxEnz590KRJEwwYMAAaGhq4evUqrl+/jq+//rrS742IiIioEG/fIyIiInoLZ86cQZs2bRSW3bt3IzQ0FCtWrICjoyMiIyMRFBRU6X3Pnj0bgwYNwvDhw+Hu7g6pVAovLy+F2+Xmzp0LT09P9OnTB71790a/fv0U5qlydnauMJaOHTti8+bNCA0NhbOzM44fP47p06crlOPl5YXo6GicPHkS7dq1w0cffYTVq1fD1tb2Lf5rRERERP/Dp+8RERER1XJyuRwymQyff/45li5d+k7LGjNmDH7//XecO3funZZDRERExNv3iIiIiGqZP/74AydPnoSnpydycnKwfv163L9/H4MHD1Z5WatWrUL37t1Rv359HDt2DBEREdi4caPKyyEiIiIqjoNSRERERLWMhoYGwsPD4e/vD0EQ4OjoiLi4OMhkMpWX9euvv2LlypV48eIFmjVrhrVr12L06NEqL4eIiIioON6+R0RERERERERE1Y4TnRMRERERERERUbXjoBQREREREREREVU7DkoREREREREREVG146AUERERERERERFVOw5KERERERERERFRteOgFBERERERERERVTsOShERERERERERUbXjoBQREREREREREVU7DkoREREREREREVG1+3+ItTQmnonsLAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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1FSf9xNJAT23d+vWTampqfrggw8CqgUATmWslAKAU5hpmrrkkku0ePFijR07Vl27dtX8+fN111136eeff9azzz7rsf3SpUs1e/Zs/f73v1dMTIxefPFFDR48WF9++aU6depU4/FmzJihF198UaZpqkOHDrr//vt1zTXXVHudoUOHKjExUW+99Zb69u3r8bPZs2erY8eOfo/dvXt3tWnTRm+99ZZGjx7tdd3GjRsrNzdXkvTVV19pxYoVuuqqq5SVlaWtW7dq2rRp6tevn77//nvFx8fXWF9NXC6XLrnkEi1btkw33XSTOnTooG+//VbPPvusNm3apPfff1+S9N133+nXv/61OnfurIcfflgxMTH68ccftXz58oCOE0if9u7dq/POO88aCqSnp+uTTz7R2LFjVVhYqIkTJ3rs889//rOio6N15513qqSkRNHR0QHXXdvbdsKECWrcuLEeeughbd26Vc8995zGjx/vca6We++9V0888YSGDRum3NxcffPNN8rNza318KGyGTNmKDExUXfccYcSExP12Wef6cEHH1RhYaGefPJJa7tp06Zp/Pjx6tOnj26//XZt3bpVw4cPV+PGjZWVlWVtF2i//Xn77bd19OhR/e53v1NaWpq+/PJLvfDCC9q5c6fefvttSdLNN9+sXbt2+fxYbqAKCwv18ssv6+qrr9aNN96ow4cP65VXXlFubq6+/PJLde3aVYZh6De/+Y2eeOIJHTx4UKmpqdb1/+///k+FhYXWiqTa1v3ZZ5/prbfe0vjx49WkSRO1atXqhOrw5USecyRpxYoVkqRzzjnHI+5yuTRs2DB9+eWX+t3vfqf27dvrgw8+8Hp+kaSFCxdqyJAhatOmjSZNmqRjx47phRdeUK9evfT1119bdX733Xfq06ePkpKSdPfddysqKkovvfSS+vXrp6VLl6pnz56SKobIF154oQzD0L333quEhAS9/PLLiomJqbGe2vbk448/Vrdu3dS0adNaH/u1117T6NGjlZubq8cff1xHjx7VtGnT1Lt3b61Zs8ajv06nU0OGDNEFF1ygJ554Qm+88YbGjx+vhIQE3XfffRo1apRGjBihv//977r22muVk5Oj1q1bexxvwoQJyszM1OTJk7Vq1Sr94x//UEpKilasWKHs7Gw9+uij+vjjj/Xkk0+qU6dOHh/nfP7553XJJZdo1KhRKi0t1axZs3T55Zfro48+0tChQ2u8XX3Zs2ePJKlJkyYndP0jR47oyJEjPq9fm9/B55xzTsC/MwDglGYCAE4Z48aNMys/db///vumJPORRx7x2O7//b//ZxqGYf74449WTJIpyczLy7Ni27ZtM2NjY83LLrusxmOff/755nPPPWd+8MEH5rRp08xOnTqZkswXX3yxxuteffXVZkZGhlleXm7Fdu/ebdpsNvPhhx+u9rr33nuvGRUVZR48eNCKlZSUmCkpKeb1119vxY4ePep13ZUrV5qSzH//+99WbPHixaYkc/HixVasZcuW5ujRo72u37dvX7Nv377W5ddee8202Wzmf/7zH4/t/v73v5uSzOXLl5umaZrPPvusKcncv39/tbX5Emifxo4dazZr1sw8cOCAx/WvuuoqMzk52bo93PW2adPG523kL4eHHnrIuhzobTt9+nRTkjlw4EDT5XJZ8dtvv9202+3moUOHTNM0zT179pgOh8McPny4xz4nTZpkSvLoxUMPPWT6erniPtaWLVuqzfPmm2824+PjzeLiYtM0K+47aWlpZo8ePcyysjJruxkzZpiSTqjf/vjKZ8qUKaZhGOa2bdusWNXHdU2q3i/Ly8vNkpISj21++eUXs2nTph6PkY0bN5qSzGnTpnlse8kll5itWrWyelabuiWZNpvN/O677wLO362muuvynHP//febkszDhw97xN99911Tkvncc89ZMafTafbv39+UZE6fPt2Kd+3a1czIyDDz8/Ot2DfffGPabDbz2muvtWLDhw83o6Ojzc2bN1uxXbt2mY0aNTIvuOACKzZhwgTTMAxzzZo1Viw/P99MTU31ui+f6HOPW3Z2tsdjONBjHz582ExJSTFvvPFGj/3t2bPHTE5O9oiPHj3alGQ++uijVuyXX34x4+LiTMMwzFmzZlnxDRs2eD2vuB/Dubm5Hs8XOTk5pmEY5i233GLFysvLzaysLI/bxDS9H2OlpaVmp06dzP79+5snIj8/38zIyDD79OlzQtc3TdP885//bEoyFy1a5BGv7e/gm266yYyLizvhPADgVMHH9wDgFPbxxx/Lbrfr97//vUf8D3/4g0zT1CeffOIRz8nJUbdu3azL2dnZuvTSSzV//nyfH3GqbPny5brtttt0ySWX6JZbbtHq1avVqVMn/elPf/L4OJIvV155pfbt2+fx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V6E1btzY4/oDBw5UbGyspIrnoosvvlg///yzPv74Y58fz6usNr+Dv/76a51//vkB3RYAcCpjpRQAnMKGDRumCy+8UPfdd5+2bt2qLl26aMGCBfrggw80ceJE6w29W6dOnZSbm+vxddRSxUcXqjN16lS9//77GjZsmLKzs7V7927961//0vbt2/Xaa69ZJ1muTlRUlEaMGKFZs2apqKhITz31VK1qvfLKK/Xggw8qNjZWY8eOlc3m+XeVX//613rttdeUnJyss846SytXrtTChQuVlpZW475vuOEGvfPOOxo8eLCuuOIKbd68Wa+//rrX7ffb3/5Wb731lm655RYtXrxYvXr1ktPp1IYNG/TWW29p/vz56t69ux5++GF9/vnnGjp0qFq2bKl9+/bpxRdfVFZWlnr37l1jPoH06bHHHtPixYvVs2dP3XjjjTrrrLN08OBBff3111q4cGGNH2+qjbrctr40bdpUt912m55++mldcsklGjx4sL755ht98sknatKkicdKkEGDBik7O1tjx461hij/+te/lJ6eru3bt1vbnX/++WrcuLFGjx6t3//+9zIMQ6+99prXMC06OlqTJk3ShAkT1L9/f11xxRXaunWrZsyYobZt23ocO9B++9K+fXu1bdtWd955p37++WclJSXp3Xff9XlOHfeA5fe//71yc3N9Doqq8+tf/1pz5szRZZddpqFDh2rLli36+9//rrPOOktHjhzx2n7o0KFKS0vT22+/rSFDhigjI8Pj53Wpuybbtm3Ta6+9Jun4wOiRRx6RVLGax/3Rqbo+57Rp00adOnXSwoULdf3111vx4cOH69xzz9Uf/vAH/fjjj2rfvr0+/PBD6/FSuf9PPvmkhgwZopycHI0dO1bHjh3TCy+8oOTkZE2aNMna7pFHHtGnn36q3r1769Zbb5XD4dBLL72kkpISPfHEE9Z2d999t15//XVddNFFmjBhghISEvTyyy8rOztbBw8erHYFVKA9mTt3rnr37m2dl6m2x05KStK0adP029/+Vuecc46uuuoq67E2d+5c9erVy+fwOByGDh2qZ555RoMHD9Y111yjffv2aerUqTr99NO1bt26Gq//5Zdf6tprr1VaWpoGDBjgNaA7//zzPVbK+jJq1Ch9+eWXuv766/Xf//5X//3vf62fJSYmavjw4R7bB/o7ePXq1Tp48KAuvfTSGusAgFNeyL/vDwBwwnx9hfrhw4fN22+/3WzevLkZFRVlnnHGGeaTTz7p8RXbplnxddTjxo0zX3/9dfOMM84wY2JizF/96lfm4sWLazzuggULzIsuusjMzMw0o6KizJSUFHPQoEFeX3ldk08//dSUZBqGYe7YsaNW1/3hhx+sr9RetmyZ189/+eUX87rrrjObNGliJiYmmrm5ueaGDRvMli1bmqNHj7a2W7x4sSnJq+6nn37aPO2008yYmBizV69eZl5entfXsptmxVeOP/7442bHjh3NmJgYs3Hjxma3bt3MyZMnmwUFBaZpmuaiRYvMSy+91GzevLkZHR1tNm/e3Lz66qvNTZs21Vhnbfq0d+9ec9y4cWaLFi3MqKgoMzMz0xwwYID5j3/8w6vet99+u8ZjV86h8le3B3rbur/i/auvvvLYn6/bvLy83HzggQfMzMxMMy4uzuzfv7/53//+10xLS/P4KnjTNM3Vq1ebPXv2NKOjo83s7GzzmWeesY7l/ip70zTN5cuXm+edd54ZFxdnNm/e3Lz77rvN+fPn++z3X//6V7Nly5ZmTEyMee6555rLly83u3XrZg4ePNhju0D67c/3339vDhw40ExMTDSbNGli3njjjeY333xjSjKnT5/ucVtMmDDBTE9PNw3D8HqMV1X1fulyucxHH33UqudXv/qV+dFHH5mjR482W7Zs6XMft956qynJnDlzps+fB1q3+/4aKPd9wde/yjUF4znnmWeeMRMTE82jR496xPfv329ec801ZqNGjczk5GRzzJgx5vLly01J5qxZszy2XbhwodmrVy8zLi7OTEpKMocNG2Z+//33Xsf6+uuvzdzcXDMxMdGMj483L7zwQnPFihVe261Zs8bs06ePGRMTY2ZlZZlTpkwx//rXv5qSzD179ljbnchzj8vlMjMyMswnnnjC5+0R6LFNs6JPubm5ZnJyshkbG2u2bdvWHDNmjJmXl2dtM3r0aDMhIcHrOH379jU7duzoFW/ZsqU5dOhQ67K/54uHHnrIlGTu37/fI+7reK+88or1PNm+fXtz+vTp1vVr4j6+v3+VH6P+tGzZ0u/1qz72avPcfs8995jZ2dlev8cBIBIZpnkCZx0FAJxyDMPQuHHj6s1fueFbQ+7ToUOH1LhxYz3yyCO67777Qnpsl8ul9PR0jRgxwudHpCLN7bffrldeeUV79uzx+ia6SFFQUKA2bdroiSee0NixY6vd9v3339dll12mZcuWqVevXiHKsMLEiRP10ksv6ciRI3X6EoQvv/xSPXv21HfffefxEbVQHBvBU1JSolatWumPf/yjbrvttnCnAwAnHeeUAgAAIXfs2DGvmPuE2/369Tupxy4uLvb6WN+///1vHTx48KQfuz4oLi7W66+/rpEjR0bsQEqSkpOTdffdd+vJJ5/0+LbDqvc9p9OpF154QUlJSTrnnHNOak5Vj52fn6/XXntNvXv3DspQ6NFHH/U7kDrZx0ZwTJ8+XVFRUbrlllvCnQoAhATnlAIAACE3e/ZszZgxQxdffLESExO1bNkyvfnmmxo0aNBJX6myatUq3X777br88suVlpamr7/+Wq+88oo6deqkyy+//KQeO5z27dunhQsX6p133lF+fn6DWIVxzz33eH2j2oQJE3Ts2DHl5OSopKREc+bM0YoVK/Too48qLi7upOaTk5Ojfv36qUOHDtq7d69eeeUVFRYW6oEHHqjzvs8991yde+65YTk2gueWW25hIAWgQWEoBQAAQq5z585yOBx64oknVFhYaJ383H3S65OpVatWatGihf7617/q4MGDSk1N1bXXXqvHHnssoJP2n6q+//57jRo1ShkZGfrrX/9qfSNkQ9O/f389/fTT+uijj1RcXKzTTz9dL7zwgsaPH3/Sj33xxRfrnXfe0T/+8Q8ZhqFzzjlHr7zyite3iUbasQEA8IdzSgEAAAAAACDkOKcUAAAAAAAAQo6hFAAAAAAAAEIu4s8p5XK5tGvXLjVq1EiGYYQ7HQAAAAAAgIhmmqYOHz6s5s2by2bzvx4q4odSu3btUosWLcKdBgAAAAAAQIOyY8cOZWVl+f15xA+lGjVqJKnihkhKSgpzNgAAAAAAAJGtsLBQLVq0sGYy/kT8UMr9kb2kpCSGUgAAAAAAACFS02mUONE5AAAAAAAAQo6hFAAAAAAAAEKOoRQAAAAAAABCLuLPKQUAABomp9OpsrKycKcBSVFRUbLb7eFOAwAA1DMMpQAAQEQxTVN79uzRoUOHwp0KKklJSVFmZmaNJzwFAAANB0MpAAAQUdwDqYyMDMXHxzMECTPTNHX06FHt27dPktSsWbMwZwQAAOoLhlIAACBiOJ1OayCVlpYW7nTwP3FxcZKkffv2KSMjg4/yAQAASZzoHAAARBD3OaTi4+PDnAmqcveE83wBAAA3hlIAACDi8JG9+oeeAACAqhhKAQAAAAAAIOQYSgEAAJwkM2bMUEpKSq2uc/ToUY0cOVJJSUkyDINvEQQAABGLoRQAAGgQDMOo9t+kSZPCnaIk6dVXX9V//vMfrVixQrt371ZycnJQ9tuvXz9NnDgxKPsCAAAIBr59DwAANAi7d++2/j979mw9+OCD2rhxoxVLTEwMR1peNm/erA4dOqhTp07hTsWn0tJSRUdHhzsNAAAQAVgpBQAAGoTMzEzrX3JysgzDsC5nZGTomWeeUVZWlmJiYtS1a1fNmzfPuu7WrVtlGIZmzZql888/X7GxserUqZOWLl1aqxz279+v7t2767LLLlNJSYnXz/v166enn35an3/+uQzDUL9+/SRJJSUluvPOO3XaaacpISFBPXv21JIlS6zr5efn6+qrr9Zpp52m+Ph4nX322XrzzTetn48ZM0ZLly7V888/b60M27p1q8+PF77//vseJyWfNGmSunbtqpdfflmtW7dWbGysJOnQoUO64YYblJ6erqSkJPXv31/ffPNNrW4PAADQsDGUAgAADd7zzz+vp59+Wk899ZTWrVun3NxcXXLJJfrhhx88trvrrrv0hz/8QWvWrFFOTo6GDRum/Pz8gI6xY8cO9enTR506ddI777yjmJgYr23mzJmjG2+8UTk5Odq9e7fmzJkjSRo/frxWrlypWbNmad26dbr88ss1ePBgK7/i4mJ169ZNc+fO1fr163XTTTfpt7/9rb788kurvpycHN14443avXu3du/erRYtWgR8+/z444969913NWfOHK1du1aSdPnll2vfvn365JNPtHr1ap1zzjkaMGCADh48GPB+AQBAw8ZQCgAANHhPPfWU7rnnHl111VVq166dHn/8cXXt2lXPPfecx3bjx4/XyJEj1aFDB02bNk3Jycl65ZVXatz/xo0b1atXL+Xm5mr69Omy2+0+t0tNTVV8fLyio6OVmZmp1NRUbd++XdOnT9fbb7+tPn36qG3btrrzzjvVu3dvTZ8+XZJ02mmn6c4771TXrl3Vpk0bTZgwQYMHD9Zbb70lSUpOTlZ0dLTi4+Ot1WH+cvCltLRU//73v/WrX/1KnTt31rJly/Tll1/q7bffVvfu3XXGGWfoqaeeUkpKit55552A9wsAABo2zikFAAAatMLCQu3atUu9evXyiPfq1cvr42g5OTnW/x0Oh7p3767//ve/kqSOHTtq27ZtkqQ+ffrok08+kSQdO3ZMffr00TXXXOM15ArEt99+K6fTqTPPPNMjXlJSorS0NEmS0+nUo48+qrfeeks///yzSktLVVJSovj4+Fofz5eWLVsqPT3duvzNN9/oyJEj1vHdjh07ps2bNwflmAAAIPIxlAIAAAiCjz/+WGVlZZKkuLg4Kx4TE6OBAwfqo48+0l133aXTTjutVvs9cuSI7Ha7Vq9e7bW6yX1y9ieffFLPP/+8nnvuOZ199tlKSEjQxIkTVVpaWu2+bTabTNP0iLlrqCwhIcErp2bNmnmc18qt6jmqAAAA/GEoBQAAGrSkpCQ1b95cy5cvV9++fa348uXLde6553psu2rVKl1wwQWSpPLycq1evVrjx4+XVLGayBebzabXXntN11xzjS688EItWbJEzZs3Dzi/X/3qV3I6ndq3b5/69Onjc5vly5fr0ksv1W9+8xtJksvl0qZNm3TWWWdZ20RHR8vpdHpcLz09XYcPH1ZRUZE1eHKfM6o655xzjvbs2SOHw6FWrVoFXAsAAEBlnFMKAAA0eHfddZcef/xxzZ49Wxs3btQf//hHrV27VrfddpvHdlOnTtV7772nDRs2aNy4cfrll190/fXX17h/u92uN954Q126dFH//v21Z8+egHM788wzNWrUKF177bWaM2eOtmzZoi+//FJTpkzR3LlzJUlnnHGGPv30U61YsUL//e9/dfPNN2vv3r0e+2nVqpW++OILbd26VQcOHJDL5VLPnj0VHx+vP/3pT9q8ebNmzpypGTNm1JjTwIEDlZOTo+HDh2vBggXaunWrVqxYofvuu095eXkB1wYAABo2hlIAAKDB+/3vf6877rhDf/jDH3T22Wdr3rx5+vDDD3XGGWd4bPfYY4/pscceU5cuXbRs2TJ9+OGHatKkSUDHcDgcevPNN9WxY0f1799f+/btCzi/6dOn69prr9Uf/vAHtWvXTsOHD9dXX32l7OxsSdL999+vc845R7m5uerXr58yMzM1fPhwj33ceeedstvtOuuss5Senq7t27crNTVVr7/+uj7++GOdffbZevPNNzVp0qQa8zEMQx9//LEuuOACXXfddTrzzDN11VVXadu2bWratGnAdQEAgIbNMKueSCDCFBYWKjk5WQUFBUpKSgp3OgAA4CQqLi7Wli1b1Lp1a8XGxgZtv1u3blXr1q21Zs0ade3aNWj7bUhOVm8AAJCkvo2GBmU/Sw/PDcp+GrpAZzGslAIAAAAAAEDIMZQCAAAAAABAyPHtewAAADVo1aqVIvyMBwAAACHHSikAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEnCPcCQAAAJzK+jYaGrJjLT08t9bX+fzzz/Xkk09q9erV2r17t9577z0NHz48+MkBAADUEiulAAAAIlhRUZG6dOmiqVOnhjsVAAAAD6yUAgAAiGBDhgzRkCFDwp0GAACAF1ZKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDk+PY9AACACHbkyBH9+OOP1uUtW7Zo7dq1Sk1NVXZ2dhgzAwAADR1DKQAAgAiWl5enCy+80Lp8xx13SJJGjx6tGTNmhCkrAAAAhlIAAAB1svTw3HCnUK1+/frJNM1wpwEAAOCFc0oBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOTqzVDqsccek2EYmjhxohUrLi7WuHHjlJaWpsTERI0cOVJ79+4NX5IAAAAAAAAIinoxlPrqq6/00ksvqXPnzh7x22+/Xf/3f/+nt99+W0uXLtWuXbs0YsSIMGUJAAAAAACAYAn7UOrIkSMaNWqU/vnPf6px48ZWvKCgQK+88oqeeeYZ9e/fX926ddP06dO1YsUKrVq1KowZAwAAAAAAoK7CPpQaN26chg4dqoEDB3rEV69erbKyMo94+/btlZ2drZUrV4Y6TQAAAAAAAASRI5wHnzVrlr7++mt99dVXXj/bs2ePoqOjlZKS4hFv2rSp9uzZ43efJSUlKikpsS4XFhZKksrLy1VeXi5Jstlsstlscrlccrlc1rbuuNPplGmaNcbtdrsMw7D2WzkuSU6nM6C4w+GQaZoeccMwZLfbvXL0F6cmaqImaqImaqKmit/3pmla/6oyDOOUiNdGfcvdX9zdk8qvySLpvldTnJqoiZqoiZpObk2OaLuc5S6ZLlP2KLsM43guzjKXTNOUI9rukWN5mVMy5REvLy+vNzVVF6/vfaqalz9hG0rt2LFDt912mz799FPFxsYGbb9TpkzR5MmTveJr1qxRQkKCJCk9PV1t27bVli1btH//fmubrKwsZWVladOmTSooKLDibdq0UUZGhtavX69jx45Z8fbt2yslJUVr1qzxaGDnzp0VHR2tvLw8jxy6d++u0tJSrVu3zorZ7Xb16NFDBQUF2rBhgxWPi4tTly5ddODAAf30009WPDk5WR06dNCuXbu0c+dOK05N1ERN1ERN1ERNFdyvK1wul8c+DMNQQkKCnE6niouLrbjNZlN8fLzKy8s9/rBlt9sVFxensrIylZaWWnGHw6HY2FiVlJSovLxcI8Y+o1D5ZOZ9tarpL3/5i9577z1t2rRJsbGxOu+88/TUU0+pdevW1dbkFh0drejoaBUXF3vc7jExMYqKitKxY8c8XpTGxsbK4XDo6NGjHi+c4+LiJEmlpaVav369FY+0+x41URM1URM1ha+moeMHau2C9dq2/mf1HXWeGqUmWtuvnJOnfVvzlXtzPzmijo9BPnt1mY4dLtbQ8cc/oZWXl1dvajqV+1RUVKRAGGZd/zx3gt5//31ddtll1rROqpjYGYYhm82m+fPna+DAgfrll188Vku1bNlSEydO1O233+5zv75WSrVo0UL5+flKSkqS1HAmk9RETdRETdRETQ2tpuLiYm3fvl2tW7f2+Uevk7EaKPeqP3v9/GSZP+uBanOpGh88eLCuvPJK9ejRQ+Xl5brvvvu0fv16fffdd9Yf6wLZTzDixcXF2rJli7Kzs63eRNJ9r6Y4NVETNVETNZ3cmnKbjgjKSqn5e+fUm5qqi9f3PhUWFiotLU0FBQXWLMaXsA2lDh8+rG3btnnErrvuOrVv31733HOPWrRoofT0dL355psaOXKkJGnjxo1q3769Vq5cqfPOOy+g4xQWFio5ObnGGwIAAJz63IMPf0Opk2HQlQ+H5DiStGD2g3W6/v79+5WRkaGlS5fqggsuCFJWgQlHbwAADUffRkODsp+lh+cGZT8NXaCzmLB9fK9Ro0bq1KmTRywhIUFpaWlWfOzYsbrjjjuUmpqqpKQkTZgwQTk5OQEPpAAAAHCc++MAqampYc4EAAAgzCc6r8mzzz4rm82mkSNHqqSkRLm5uXrxxRfDnRYAAMApx+VyaeLEierVq5fXHwYBAADCoV4NpZYsWeJxOTY2VlOnTtXUqVPDkxAAAECEGDdunNavX69ly5aFOxUAAABJ9WwoBQAAgOAbP368PvroI33++efKysoKdzoAAACSGEoBAABELNM0NWHCBL333ntasmSJWrduHe6UAAAALAylAAAAItS4ceM0c+ZMffDBB2rUqJH27NkjSUpOTlZcXFyYswMAAA2dLdwJAAAA4OSYNm2aCgoK1K9fPzVr1sz6N3v27HCnBgAAwEopAACAulgw+8Fwp+CXaZrhTgEAAMAvVkoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BzhTgAAAOBU1vWRSSE71tr7a3+sadOmadq0adq6daskqWPHjnrwwQc1ZMiQ4CYHAABQS6yUAgAAiGBZWVl67LHHtHr1auXl5al///669NJL9d1334U7NQAA0MCxUgoAACCCDRs2zOPyX/7yF02bNk2rVq1Sx44dw5QVAAAAQykAAIAGw+l06u2331ZRUZFycnLCnQ4AAGjgGEoBAABEuG+//VY5OTkqLi5WYmKi3nvvPZ111lnhTgsAADRwnFMKAAAgwrVr105r167VF198od/97ncaPXq0vv/++3CnBQAAGjhWSgEAAES46OhonX766ZKkbt266auvvtLzzz+vl156KcyZAQCAhoyVUgAAAA2My+VSSUlJuNMAAAANHCulAAAAIti9996rIUOGKDs7W4cPH9bMmTO1ZMkSzZ8/P9ypAQCABo6hFAAAQATbt2+frr32Wu3evVvJycnq3Lmz5s+fr4suuijcqQEAgAaOoRQAAEAdrL1/UrhTqNYrr7wS7hQAAAB84pxSAAAAAAAACDmGUgAAAAAAAAg5hlIAAAAAAAAIOYZSAAAAAAAACDmGUgAAAAAAAAg5hlIAAAAAAAAIOYZSAAAAAAAACDmGUgAAAAAAAAg5hlIAAAAAAAAIOYZSAAAAAAAACDlHuBMAAAA4lU1YdFvIjvXCgOfrdP3HHntM9957r2677TY999xzwUkKAADgBLFSCgAAoAH46quv9NJLL6lz587hTgUAAEASQykAAICId+TIEY0aNUr//Oc/1bhx43CnAwAAIImhFAAAQMQbN26chg4dqoEDB4Y7FQAAAAvnlAIAAIhgs2bN0tdff62vvvoq3KkAAAB4YCgFAAAQoXbs2KHbbrtNn376qWJjY8OdDgAAgAeGUgAAABFq9erV2rdvn8455xwr5nQ69fnnn+tvf/ubSkpKZLfbw5ghAABoyBhKAQAARKgBAwbo22+/9Yhdd911at++ve655x4GUgAAIKwYSgEAAESoRo0aqVOnTh6xhIQEpaWlecUBAABCLazfvjdt2jR17txZSUlJSkpKUk5Ojj755BPr5/369ZNhGB7/brnlljBmDAAAAAAAgGAI60qprKwsPfbYYzrjjDNkmqZeffVVXXrppVqzZo06duwoSbrxxhv18MMPW9eJj48PV7oAAABeXhjwfLhTqJUlS5aEOwUAAABJYR5KDRs2zOPyX/7yF02bNk2rVq2yhlLx8fHKzMwMR3oAAAAAAAA4ScL68b3KnE6nZs2apaKiIuXk5FjxN954Q02aNFGnTp1077336ujRo2HMEgAAAAAAAMEQ9hOdf/vtt8rJyVFxcbESExP13nvv6ayzzpIkXXPNNWrZsqWaN2+udevW6Z577tHGjRs1Z84cv/srKSlRSUmJdbmwsFCSVF5ervLyckmSzWaTzWaTy+WSy+WytnXHnU6nTNOsMW6322UYhrXfynGpYtAWSNzhcMg0TY+4YRiy2+1eOfqLUxM1URM1URM1UVPF73vTNK1/VRmGcUrEa6O+5e4v7u5J5ddkkXTfqylOTdRETdRETSe3Jke0Xc5yl0yXKXuUXYZxPBdnmUumacoR7fmts+VlTsmUR7y8vLze1FRdvL73qWpe/oR9KNWuXTutXbtWBQUFeueddzR69GgtXbpUZ511lm666SZru7PPPlvNmjXTgAEDtHnzZrVt29bn/qZMmaLJkyd7xdesWaOEhARJUnp6utq2bastW7Zo//791jZZWVnKysrSpk2bVFBQYMXbtGmjjIwMrV+/XseOHbPi7du3V0pKitasWePRwM6dOys6Olp5eXkeOXTv3l2lpaVat26dFbPb7erRo4cKCgq0YcMGKx4XF6cuXbrowIED+umnn6x4cnKyOnTooF27dmnnzp1WnJqoiZqoiZqoiZoqxMbGSpJcLpfHPgzDUEJCgpxOp4qLi624zWZTfHy8ysvLPf6wZbfbFRcXp7KyMpWWllpxh8Oh2NhYlZSUeLzgio6OVnR0tIqLiz1yjImJUVRUlI4dO+bxAi42NlYOh0NHjx71eJEZFxcnm82moqIiVZaQkHBK1yRJpaWlWr9+vRWPtPseNVETNVETNYWvpqHjB2rtgvXatv5n9R11nhqlJlrbr5yTp31b85V7cz85oo6PQT57dZmOHS7W0PEDrVheXl69qelU7lPV1zH+GGZd/zwXZAMHDlTbtm310ksvef2sqKhIiYmJmjdvnnJzc31e39dKqRYtWig/P19JSUmSGs5kkpqoiZqoiZqoqaHVVFxcrO3bt6t169bWcKqy+rZ6qCGtlCouLtaWLVuUnZ1t9SaS7ns1xamJmqiJmqjp5NaU23REUFZKzd87p97UVF28vvepsLBQaWlpKigosGYxvtS7oVT//v2VnZ2tGTNmeP1s+fLl6t27t7755ht17tw5oP0VFhYqOTm5xhsCAACc+tyDD39DKYQPvQEAnEx9Gw0Nyn6WHp4blP00dIHOYsL68b17771XQ4YMUXZ2tg4fPqyZM2dqyZIlmj9/vjZv3qyZM2fq4osvVlpamtatW6fbb79dF1xwQcADKQAAAAAAANRPYR1K7du3T9dee612796t5ORkde7cWfPnz9dFF12kHTt2aOHChXruuedUVFSkFi1aaOTIkbr//vvDmTIAAAAAAACCIKxDqVdeecXvz1q0aKGlS5eGMBsAAAAAAACEii3cCQAAAAAAAKDhCetKKQAAgFPdjm8vDNmxWpy9uNbXmTRpkiZPnuwRa9euncdXPwMAAIQDQykAAIAI17FjRy1cuNC67HDwEhAAAIQfr0gAAAAinMPhUGZmZrjTAAAA8MA5pQAAACLcDz/8oObNm6tNmzYaNWqUtm/fHu6UAAAAGEoBAABEsp49e2rGjBmaN2+epk2bpi1btqhPnz46fPhwuFMDAAANHB/fq6Jvo6FB2c/Sw3ODsh8AAIC6GDJkiPX/zp07q2fPnmrZsqXeeustjR07NoyZAQCAho6VUgAAAA1ISkqKzjzzTP3444/hTgUAADRwDKUAAAAakCNHjmjz5s1q1qxZuFMBAAANHEMpAACACHbnnXdq6dKl2rp1q1asWKHLLrtMdrtdV199dbhTAwAADRznlAIAAIhgO3fu1NVXX638/Hylp6erd+/eWrVqldLT08OdGgAAaOAYSgEAANRBi7MXhzuFas2aNSvcKQAAAPjEx/cAAAAAAAAQcgylAAAAAAAAEHIMpQAAAAAAABByDKUAAAAAAAAQcgylAABAxDFNM9wpoAp6AgAAqmIoBQAAIkZUVJQk6ejRo2HOBFW5e+LuEQAAgCPcCQAAAASL3W5XSkqK9u3bJ0mKj4+XYRhhzqphM01TR48e1b59+5SSkiK73R7ulAAAQD3BUAoAAESUzMxMSbIGU6gfUlJSrN4AAABIDKUAAECEMQxDzZo1U0ZGhsrKysKdDlTxkT1WSAEAgKoYSgEAgIhkt9sZhAAAANRjnOgcAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACEX1qHUtGnT1LlzZyUlJSkpKUk5OTn65JNPrJ8XFxdr3LhxSktLU2JiokaOHKm9e/eGMWMAAAAAAAAEQ1iHUllZWXrssce0evVq5eXlqX///rr00kv13XffSZJuv/12/d///Z/efvttLV26VLt27dKIESPCmTIAAAAAAACCwBHOgw8bNszj8l/+8hdNmzZNq1atUlZWll555RXNnDlT/fv3lyRNnz5dHTp00KpVq3TeeeeFI2UAAAAAAAAEQb05p5TT6dSsWbNUVFSknJwcrV69WmVlZRo4cKC1Tfv27ZWdna2VK1eGMVMAAAAAAADUVVhXSknSt99+q5ycHBUXFysxMVHvvfeezjrrLK1du1bR0dFKSUnx2L5p06bas2eP3/2VlJSopKTEulxYWChJKi8vV3l5uSTJZrPJZrPJ5XLJ5XJZ29psFTM6e5RdhnF8n85yl0yX6R0vc8k0TTmi7R45lJc5ZZqmnE6nR9xur9iuatzhcHhtbxiG7Ha7V47+4tXVZLPZ5HRW5FRT3G63yzAM67aqKXdqoiZqoiZqoiZqoiZqoiZqoiZqoqZw1+SItp/Qe3eZ8oiXl5fXm5qqi9f3PlXNy5+wD6XatWuntWvXqqCgQO+8845Gjx6tpUuXnvD+pkyZosmTJ3vF16xZo4SEBElSenq62rZtqy1btmj//v3WNllZWZKknpd0VXrLJlZ87YL12rb+Z/UddZ4apSZa8ZVz8rRva75yb+4nR9Txm/KzV5fJ6XQqLy/PI4fu3burtLRU69ats2J2u109evRQQUGBNmzYYMXj4uLUpUsXHThwQD/99JMVT05OVocOHbRr1y7t3LnTildXU1ZWljZt2qSCggIr3qZNG2VkZGj9+vU6duyYFW/fvr1SUlK0Zs0ajztl586dFR0dTU3URE3URE3URE3URE3URE3URE3UVO9qGjp+4Am9dz92uFhDxx//hFZeXl69qelU7lNRUZECYZiVR231wMCBA9W2bVtdeeWVGjBggH755ReP1VItW7bUxIkTdfvtt/u8vq+VUi1atFB+fr6SkpIkVT+ZvDB5WFBWSi0p+Cjsk8nK8UiZtlITNVETNVETNVETNVETNVETNVETNVXNPbfpiKCslJq/d069qam6eH3vU2FhodLS0lRQUGDNYnypd0Op/v37Kzs7W88//7zS09P15ptvauTIkZKkjRs3qn379lq5cmXAJzovLCxUcnJyjTeEW99GQ+uUv9vSw3ODsh8AAAAAAFA93svXL4HOYsL68b17771XQ4YMUXZ2tg4fPqyZM2dqyZIlmj9/vpKTkzV27FjdcccdSk1NVVJSkiZMmKCcnBy+eQ8AAAAAAOAUF9ah1L59+3Tttddq9+7dSk5OVufOnTV//nxddNFFkqRnn31WNptNI0eOVElJiXJzc/Xiiy+GM2UAAAAAAAAEQb37+F6w8fE9AAAAAAAiG+/l65dAZzG2EOYEAAAAAAAASGIoBQAAAAAAgDBgKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQYygFAAAAAACAkGMoBQAAAAAAgJBjKAUAAAAAAICQc4Q7AQAAAABS30ZDg7KfpYfnBmU/AACcbKyUAgAAAAAAQMgxlAIAAAAAAEDIMZQCAAAAAABAyDGUAgAAAAAAQMgxlAIAAAAAAEDIMZQCAAAAAABAyDGUAgAAAAAAQMgxlAIAAAAAAEDIMZQCAAAAAABAyDGUAgAAAAAAQMgxlAIAAAAAAEDIMZQCAAAAAABAyIV1KDVlyhT16NFDjRo1UkZGhoYPH66NGzd6bNOvXz8ZhuHx75ZbbglTxgAAAAAAAAiGsA6lli5dqnHjxmnVqlX69NNPVVZWpkGDBqmoqMhjuxtvvFG7d++2/j3xxBNhyhgAAAAAAADB4AjnwefNm+dxecaMGcrIyNDq1at1wQUXWPH4+HhlZmaGOj0AAAAAAACcJGEdSlVVUFAgSUpNTfWIv/HGG3r99deVmZmpYcOG6YEHHlB8fLzPfZSUlKikpMS6XFhYKEkqLy9XeXm5JMlms8lms8nlcsnlclnb2mwVC8fsUXYZxvF9OstdMl2md7zMJdM05Yi2e+RQXuaUaZpyOp0ecbu9YruqcYfD4bW9YRiy2+1eOfqLV1eTzWaT01mRU01xu90uwzCs26qm3KmJmqiJmqiJmqiJmqgpODW5X1OapuQsc8pmN2SzH/9gg8tpyuV0yWa3yWY3KsVdcjmPv1at+pqXPlETNVFTQ6jJEW0/offuMuURLy8vrzc1VRev732qmpc/QRlKHTp0SCkpKXXah8vl0sSJE9WrVy916tTJil9zzTVq2bKlmjdvrnXr1umee+7Rxo0bNWfOHJ/7mTJliiZPnuwVX7NmjRISEiRJ6enpatu2rbZs2aL9+/db22RlZUmSel7SVektm1jxtQvWa9v6n9V31HlqlJpoxVfOydO+rfnKvbmfHFHHb8rPXl0mp9OpvLw8jxy6d++u0tJSrVu3zorZ7Xb16NFDBQUF2rBhgxWPi4tTly5ddODAAf30009WPDk5WR06dNCuXbu0c+dOK15dTVlZWdq0aZM19JOkNm3aKCMjQ+vXr9exY8esePv27ZWSkqI1a9Z43Ck7d+6s6OhoaqImaqImaqImaqImajpJNQ0dP1CStH/bAa14d7XOPLeN2uWcbm2/ff1OrVnwnboM6KDsTllWfOPKH7Vh5WbrNaw7p/pQUyT2iZqoiZrqZ01Dxw88offuxw4XW8+/kpSXl1dvajqV+1T1tEz+GGblUVsAHn/8cbVq1UpXXnmlJOmKK67Qu+++q8zMTH388cfq0qVLbXZn+d3vfqdPPvlEy5Yts4ZDvnz22WcaMGCAfvzxR7Vt29br575WSrVo0UL5+flKSkqSVP1k8sLkYUFZKbWk4KOwTyYrxyNl2kpN1ERN1ERN1ERN1BSpNeU2HSGp7iul5u+dU29qqil+KvaJmqiJmupnTblNRwRlpdT8vXPqTU3Vxet7nwoLC5WWlqaCggJrFuNLrYdSrVu31htvvKHzzz9fn376qa644grNnj1bb731lrZv364FCxbUZneSpPHjx+uDDz7Q559/rtatW1e7bVFRkRITEzVv3jzl5ubWuO/CwkIlJyfXeEO49W00NOC8q7P08Nyg7AcAAAANA69DAeDE8RxavwQ6i6n1x/f27NmjFi1aSJI++ugjXXHFFRo0aJBatWqlnj171mpfpmlqwoQJeu+997RkyZIaB1KStHbtWklSs2bNaps6AAAAAAAA6glbzZt4aty4sXbs2CGp4tvzBg6s+OylrxN712TcuHF6/fXXNXPmTDVq1Eh79uzRnj17rM9Jbt68WX/+85+1evVqbd26VR9++KGuvfZaXXDBBercuXNtUwcAAAAAAEA9UeuVUiNGjNA111yjM844Q/n5+RoyZIikihOJn3766TVc29O0adMkSf369fOIT58+XWPGjFF0dLQWLlyo5557TkVFRWrRooVGjhyp+++/v7ZpAwAAAAAAoB6p9VDq2WefVatWrbRjxw498cQTSkysOKP97t27deutt9ZqXzWdzqpFixZaunRpbVMEAAAAAABAPVfroVRUVJTuvPNOr/jtt98elIQAAAAAAAAQ+Wp9TilJeu2119S7d281b95c27ZtkyQ999xz+uCDD4KaHAAAAAAAACJTrYdS06ZN0x133KEhQ4bo0KFD1snNU1JS9NxzzwU7PwAAAAAAAESgWg+lXnjhBf3zn//UfffdJ7vdbsW7d++ub7/9NqjJAQAAAAAAIDLVeii1ZcsW/epXv/KKx8TEqKioKChJAQAAAAAAILLVeijVunVrrV271is+b948dejQIRg5AQAAAAAAIMLV+tv37rjjDo0bN07FxcUyTVNffvml3nzzTU2ZMkUvv/zyycgRAAAAAAAAEabWQ6kbbrhBcXFxuv/++3X06FFdc801at68uZ5//nldddVVJyNHAAAAAAAARJhaD6UkadSoURo1apSOHj2qI0eOKCMjI9h5AQAAAAAAIIKd0FDKLT4+XvHx8cHKBQAAAAAAAA1ErYdSrVu3lmEYfn/+008/1SkhAAAAAAAARL5aD6UmTpzocbmsrExr1qzRvHnzdNdddwUrLwAAAAAAAESwWg+lbrvtNp/xqVOnKi8vr84JAQAAAAAAIPLZgrWjIUOG6N133w3W7gAAAAAAABDBgjaUeuedd5Samhqs3QEAAAAAACCC1frje7/61a88TnRumqb27Nmj/fv368UXXwxqcgAAAAAAAIhMtR5KDR8+3OOyzWZTenq6+vXrp/bt2wcrLwAAAAAAAESwWg+lHnrooZORBwAAAAAAABqQgIZShYWFAe8wKSnphJMBAAAAAABAwxDQUColJcXjPFK+mKYpwzDkdDqDkhgAAAAAAAAiV0BDqcWLF5/sPAAAAAAAANCABDSU6tu378nOAwAAAAAAAA1IrU907nb06FFt375dpaWlHvHOnTvXOSkAAAAAAABEtloPpfbv36/rrrtOn3zyic+fc04pAAAAAAAA1MRW2ytMnDhRhw4d0hdffKG4uDjNmzdPr776qs444wx9+OGHJyNHAAAAAAAARJhar5T67LPP9MEHH6h79+6y2Wxq2bKlLrroIiUlJWnKlCkaOnToycgTAHAK6NsoOL8Dlh6eG5T9AAAAAKi/ar1SqqioSBkZGZKkxo0ba//+/ZKks88+W19//XVwswMAAAAAAEBEqvVQql27dtq4caMkqUuXLnrppZf0888/6+9//7uaNWsW9AQBAAAAAAAQeWr98b3bbrtNu3fvliQ99NBDGjx4sN544w1FR0drxowZwc4PAAAAAAAAEajWQ6nf/OY31v+7deumbdu2acOGDcrOzlaTJk2CmhwAAAAAAAAiU60/vrds2TKPy/Hx8TrnnHMYSAEAAAAAACBgtR5K9e/fX61bt9af/vQnff/99ycjJwAAAAAAAES4Wn98b9euXZo1a5befPNNPfbYY+rcubNGjRqlq6++WllZWScjRwAAAACo1/o2GhqU/Sw9PDco+wGAU0GtV0o1adJE48eP1/Lly7V582ZdfvnlevXVV9WqVSv179//ZOQIAAAAAACACFProVRlrVu31h//+Ec99thjOvvss7V06dJg5QUAAAAAAIAIdsJDqeXLl+vWW29Vs2bNdM0116hTp06aO5elpgAAAAAAAKhZrc8pde+992rWrFnatWuXLrroIj3//PO69NJLFR8ffzLyAwAAAAAAQASq9VDq888/11133aUrrrhCTZo0ORk5AQAAAAAAIMLVeii1fPnyk5EHAAAAAAAAGpA6negcAAAAAAAAOBEMpQAAAAAAABByDKUAAAAAAAAQcgylAAAAAAAAEHK1HkrdcMMNWrJkyUlIBQAAAAAAAA1FrYdS+/fv1+DBg9WiRQvddddd+uabb05GXgAAAAAAAIhgtR5KffDBB9q9e7ceeOABffXVVzrnnHPUsWNHPfroo9q6dWut9jVlyhT16NFDjRo1UkZGhoYPH66NGzd6bFNcXKxx48YpLS1NiYmJGjlypPbu3VvbtAEAAAAAAFCPnNA5pRo3bqybbrpJS5Ys0bZt2zRmzBi99tprOv3002u1n6VLl2rcuHFatWqVPv30U5WVlWnQoEEqKiqytrn99tv1f//3f3r77be1dOlS7dq1SyNGjDiRtAEAAAAAAFBPOOpy5bKyMuXl5emLL77Q1q1b1bRp01pdf968eR6XZ8yYoYyMDK1evVoXXHCBCgoK9Morr2jmzJnq37+/JGn69Onq0KGDVq1apfPOO68u6QMAAAAAACBMTmgotXjxYs2cOVPvvvuuXC6XRowYoY8++sgaHJ2ogoICSVJqaqokafXq1SorK9PAgQOtbdq3b6/s7GytXLnS51CqpKREJSUl1uXCwkJJUnl5ucrLyyVJNptNNptNLpdLLpfL2tZmq1g4Zo+yyzCO79NZ7pLpMr3jZS6ZpilHtN0jh/Iyp0zTlNPp9Ijb7RXbVY07HA6v7Q3DkN1u98rRX7y6mmw2m5zOipxqitvtdhmGYd1WNeVOTdRETdRUOXev58NSp2RIjijvuGEYskcdX7BrmpKzzCnD5rn/cNcUiX2iJmqipvpZk/s51P18aLMbstmPP0+6nKZcTpdsdptsdqNS3CWX8/hr1aqveelTaGpy9y/QPrlVfa/hrqE+1OQWSX2ipsityRFtP6H37jI9X8OWl5fXm5qqi9f3PlXNy59aD6VOO+00HTx4UIMHD9Y//vEPDRs2TDExMbXdjReXy6WJEyeqV69e6tSpkyRpz549io6OVkpKise2TZs21Z49e3zuZ8qUKZo8ebJXfM2aNUpISJAkpaenq23bttqyZYv2799vbZOVlSVJ6nlJV6W3bGLF1y5Yr23rf1bfUeepUWqiFV85J0/7tuYr9+Z+ckQdvyk/e3WZnE6n8vLyPHLo3r27SktLtW7dOitmt9vVo0cPFRQUaMOGDVY8Li5OXbp00YEDB/TTTz9Z8eTkZHXo0EG7du3Szp07rXh1NWVlZWnTpk3W0E+S2rRpo4yMDK1fv17Hjh2z4u3bt1dKSorWrFnjcafs3LmzoqOjqYmaqImaqq1p6Pjjf0SQpLl/W6i4RrHqP7q3FSsvK9fcFxYpvWWqckZ0t+KHDx7RZzOWK/us5h63TbhrisQ+URM1UVP9rMn9HLp/2wGteHe1zjy3jdrlHD89xvb1O7VmwXfqMqCDsjtlWfGNK3/UhpWbrdew7pzqQ02R2Cd/Nbn7F2if3Kq+13DnWh9qisQ+UVPk1jR0/MATeu9+7HCxx2vYvLy8elPTqdynyqdlqo5hVh61BeCf//ynLr/8cq9BUV397ne/0yeffKJly5ZZw6GZM2fquuuu81j5JEnnnnuuLrzwQj3++ONe+/G1UqpFixbKz89XUlKSpOonkxcmDwvKSqklBR+FfTJZOR4p01ZqoiZqqt81DWxyqUf8RFdKLcx/v97UFIl9oiZqoqb6WVNu04rzptZ1pdT8vXPqTU01xU/FPvmLu/tX15VS7v7Vh5rcIqlP1BS5NeU2HRGUlVLz986pNzVVF6/vfSosLFRaWpoKCgqsWYwvtV4pdeONN9b2KjUaP368PvroI33++efWQEqSMjMzVVpaqkOHDnkMwfbu3avMzEyf+4qJifG5csvhcMjh8CzXfcNV5SxzesWqi5eXescNw/A6XuVcAt3eX461jbvvgIHGa5O7vzg1UZNETf5yrG38VKnJ1/OhTN9x0zR9x11mUGqlT9TkL05N1CTVz5qqPidWDDe8nycrhhvex3S/Vq16DPoUmpq8+1d9n/zFqx6bPlETNQVWU+XHYG3eu1eNV8433DUFEq+vffJ3fK/rBLTVSWKapsaPH6/33ntPn332mVq3bu3x827duikqKkqLFi2yYhs3btT27duVk5MT6nQBAAAAAAAQJHX69r26GjdunGbOnKkPPvhAjRo1ss4TlZycrLi4OCUnJ2vs2LG64447lJqaqqSkJE2YMEE5OTl88x4AAAAAAMApLKxDqWnTpkmS+vXr5xGfPn26xowZI0l69tlnZbPZNHLkSJWUlCg3N1cvvvhiiDMFAAAAAABAMIV1KBXIOdZjY2M1depUTZ06NQQZAQAAAAAAIBTCOpQCgq1vo6FB2c/Sw3ODsh8AAAAAAOBbWE90DgAAAAAAgIaJoRQAAAAAAABCjqEUAAAAAAAAQo6hFAAAAAAAAEKOoRQAAAAAAABCjm/fAwAAAAA0eHyTNxB6rJQCAAAAAABAyDGUAgAAAAAAQMgxlAIAAAAAAEDIMZQCAAAAAABAyHGicwAAACCCDLry4aDsZ8HsB4OyHwAA/GGlFAAAAAAAAEKOlVIAAAARgq8zBwAApxJWSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQ4pxSAeoXzoQAAAABAw8BKKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEnCPcCQAAgPqhb6OhQdnP0sNzg7IfAAAARDZWSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOTCOpT6/PPPNWzYMDVv3lyGYej999/3+PmYMWNkGIbHv8GDB4cnWQAAAAAAAARNWIdSRUVF6tKli6ZOnep3m8GDB2v37t3WvzfffDOEGQIAAAAAAOBkcITz4EOGDNGQIUOq3SYmJkaZmZkhyggAAAAAAAChENahVCCWLFmijIwMNW7cWP3799cjjzyitLQ0v9uXlJSopKTEulxYWChJKi8vV3l5uSTJZrPJZrPJ5XLJ5XJZ29psFQvH7FF2GcbxfTrLXTJdpne8zCXTNOWItnvkUF7mlGmacjqdHnG7vWK7qnGHw+G1vWEYstvtXjn6i1dXk81mk9NZkVNNcbvdLsMwrNuqptzrW02Sj/5V0yeZ8o6X+u4ffQpNTbXpkwzJEeUdr3rbhLumSOyTv5pq2yd71PEFu6YpOcucMmyB9Y8+Bb8mX/2rrk92h3fcZvc8brhrisQ+VVeTu4eB9MlmPx53OU25nC7Z7DaPHtaHmtwiqU/+cq/av5r6dDzukst5/LWq438/c7pMmaZktxmer43+F3dU2ocklTsr6nbH3TXTp8Bqcvcv0D65VX2vUfl2D3dNbpHUp+pqckTbA+6TFffxXqO8vLze1FQ5Hil98pe7I9p+Qu/dq77XqK5/9Cnwmqrm5U+9HkoNHjxYI0aMUOvWrbV582b96U9/0pAhQ7Ry5UrrBq1qypQpmjx5sld8zZo1SkhIkCSlp6erbdu22rJli/bv329tk5WVJUnqeUlXpbdsYsXXLlivbet/Vt9R56lRaqIVXzknT/u25iv35n5yRB2/KT97dZmcTqfy8vI8cujevbtKS0u1bt06K2a329WjRw8VFBRow4YNVjwuLk5dunTRgQMH9NNPP1nx5ORkdejQQbt27dLOnTuteHU1ZWVladOmTSooKLDibdq0UUZGhtavX69jx45Z8fbt2yslJUVr1qzxuFN27txZ0dHR9b4mSbXq07HDxRo6fqBHTXP/tlDHjh2rNzVFYp+qq6k2fYprFKv+o3tbsfKycs19YZHSW6Z63AbhrikS++Svptr2KWdEdyt++OARfTZjubLPau5x24S7pkjsk7+aKvcvkD51HdTJiu/fdkAr3l2tM89t47H/cNcUiX2qriZ3DwPpU7uc06349vU7tWbBd+oyoIOyO2VZx64PNUVin/zV5O5foH1y27jyR21Yudl6DWtrmiJJ+nbjAe3Yc0S9zmmuxIQoa/sv1+3VgV+OacB52bI7jr9r+/yrn1VcUq5BvVtKklUbfQqsJnf/Au2TW9X3Gu5c60NNkdin6moaOn5gwH1y8/VeIy8vr97UFIl98lfT0PEDT+i9e9X3Gnl5efWmplO5T0VFRQqEYVYetYWRYRh67733NHz4cL/b/PTTT2rbtq0WLlyoAQMG+NzG10qpFi1aKD8/X0lJSZKqn0xemDwsKCullhR8FPbJZOV4pExba6rJZ/9OYKXUkkLv/tGn0NQ0IO0SjxxPdKXUwoPv15uaIrFP/moa2ORSj/iJrpRamP9+vakpEvvkryZf/TuRlVKfHni/3tQUiX2qrqbcpiMk1X2l1Py9c+pNTW6R1Cd/uVft34mulIrJ7VGRQx1XSn3473vrXFNN8VOxT/7i7v7VdaWU+/FXH2pyi6Q+VVdTbtMRQVkpNX/vnHpTU+V4pPTJX+65TUcEZaVUdf2jT4HXVFhYqLS0NBUUFFizGF/q9Uqpqtq0aaMmTZroxx9/9DuUiomJUUxMjFfc4XDI4fAs133DVeUsc3rFqouXl3rHDcPwOl7lXALd3l+OtY37W1nmL16b3P3Fw1VTbfrkL+4vd/p08muqTZ9k+o6bplmvaorEPvnLvbZ98hl3Bad/9Kn2NdW2T77iLmft+kefgltT1Z5U1yeX01fcJZfT+xj0KTQ1Ve1VTX2qyv0ayO70/Juz0+X7b9DlzurjVXOlT9Xn7t2/6vvkLx7I7V7bOH0KLF65h3V5T1g5r3DXVFmk9KmyyrkH0r9A3mvU1D/6FFjc3/G9rhPQVvXEzp07lZ+fr2bNmoU7FQAAAAAAANRBWFdKHTlyRD/++KN1ecuWLVq7dq1SU1OVmpqqyZMna+TIkcrMzNTmzZt199136/TTT1dubm4YswYAAAAAAEBdhXUolZeXpwsvvNC6fMcdd0iSRo8erWnTpmndunV69dVXdejQITVv3lyDBg3Sn//8Z58fzwMAAAAAAMCpI6xDqX79+nmcqKuq+fPnhzAbAAAAAAAAhMopdU4pAAAAAAAARAaGUgAAAAAAAAg5hlIAAAAAAAAIOYZSAAAAAAAACDmGUgAAAAAAAAg5hlIAAAAAAAAIOYZSAAAAAAAACDmGUgAAAAAAAAg5hlIAAAAAAAAIOYZSAAAAAAAACDlHuBMAAKCqQVc+HJT9LJj9YFD2AwAAACD4WCkFAAAAAACAkGOlFAAAAADUE6wWBtCQsFIKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHt+8BAAAAABAkfIMiEDhWSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5Pj2PQAAAABeuj4yKSj7WXt/cPYDAIg8rJQCAAAAAABAyDGUAgAAAAAAQMgxlAIAAAAAAEDIMZQCAAAAAABAyHGicwAAAAAAAEmDrnw4KPtZMPvBoOwn0rFSCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAh5wh3AgAAILIMuvLhoOxnwewHg7IfAAAA1E+slAIAAAAAAEDIMZQCAAAAAABAyDGUAgAAAAAAQMiFdSj1+eefa9iwYWrevLkMw9D777/v8XPTNPXggw+qWbNmiouL08CBA/XDDz+EJ1kAAAAAAAAETVhPdF5UVKQuXbro+uuv14gRI7x+/sQTT+ivf/2rXn31VbVu3VoPPPCAcnNz9f333ys2NjYMGQMAAAAAcPJ1fWRSUPaz9v7g7Ac4GcI6lBoyZIiGDBni82emaeq5557T/fffr0svvVSS9O9//1tNmzbV+++/r6uuuiqUqQIAAAAAACCIwjqUqs6WLVu0Z88eDRw40IolJyerZ8+eWrlypd+hVElJiUpKSqzLhYWFkqTy8nKVl5dLkmw2m2w2m1wul1wul7WtzVbxaUZ7lF2GcXyfznKXTJfpHS9zyTRNOaLtHjmUlzllmqacTqdH3G6v2K5q3OFweG1vGIbsdrtXjv7i1dVks9nkdFbkVFPcbrfLMAzrtqop9/pWk+Sjf9X0Saa846W++0efQlNTbfokQ3JEecer3jbhrikS++Svptr2yR51/FPkpik5y5wybIYcdsMz7jJlMySb7XjcZUoulymbzVClsFwuUy5Tsts886RPNdfkq3/V9cnu8I7b7J79C6RPHs/ZLlOmj/7Rp8BqcvcwkD7Z7MfjLqcpl9Mlm90mm93wes3E815oaqrav5r6dDzukst5/LWq+zFY+fHk63FW+bEqSeXOirrd8aj/XanMNGVIchie2/uKm5LKTVM2Sfb/xcvLyyOqT/7i7v4F2ie3qu81qvavpj75i7tvi4b6eDqRmhzR9oD7ZMV9vNdw2I2A+1Q5bhgVj1drP4bh9XiSfD/OJMklyWmashuGx3l6XC5XRPXJX+6OaPsJvXev+l6jpv5V7ZP7tWrVuNPpbNCPp6p5+VNvh1J79uyRJDVt2tQj3rRpU+tnvkyZMkWTJ0/2iq9Zs0YJCQmSpPT0dLVt21ZbtmzR/v37rW2ysrIkST0v6ar0lk2s+NoF67Vt/c/qO+o8NUpNtOIr5+Rp39Z85d7cT46o4zflZ68uk9PpVF5enkcO3bt3V2lpqdatW2fF7Ha7evTooYKCAm3YsMGKx8XFqUuXLjpw4IB++uknK56cnKwOHTpo165d2rlzpxWvrqasrCxt2rRJBQUFVrxNmzbKyMjQ+vXrdezYMSvevn17paSkaM2aNR53ys6dOys6Orre1ySpVn06drhYQ8cfH3xK0ty/LdSxY8fqTU2R2KfqaqpNn+Iaxar/6N5WrLysXHNfWKT0lqket0G4a4rEPvmrqbZ9yhnR3YofPnhEn81Yruyzmuuc3i2t+IGDx/Tlt3vVNjtFZ7RKseI7dx/Ruk0H1On0NGU1O/6Y/2HrIf2w7ZC6dczwuI3pU801Ve5fIH3qOqiTFd+/7YBWvLtaZ57bRh0q9S+QPjVJjbPi3248oB17jqjXOc098qRPgdXk7mEgfWqXc7oV375+p9Ys+E5dBnRQdqcs69j1oaZI7JO/mtz9C7RPbhtX/qgNKzdbr2FtTVMkeT6eEhOirO2/XLdXB345pgHnZcvuOP4G6vOvflZxSbkG/e8xXNqoIv729i2Kdzg0tHkLa9syl0tv79iqzNg4Xdi0mRUvKCvV3F071TqxkXqmpUuS8vLyIqpPblVrcvcv0D65VX2v4e5foH1yW7Bsm2JjHLqgx2nW7d6QH08nUtPQ8QMD7pObr/catqYpAfdJkpzlpuYv36a0lDid2/n4+9/9sd6PJ0nafeyoFu/bo47JjXV2SmMrvvnIYX2Rv1/dU5uobWIjK75r166I6pPk+743dPzAE3rvXvW9hq1pSq36dKSoTJ/n/ayspok6u93x+8ymTZsa9OOpqKhIgTDMyqO2MDIMQ++9956GDx8uSVqxYoV69eqlXbt2qVmz47/orrjiChmGodmzZ/vcj6+VUi1atFB+fr6SkpIkVT+ZvDB5WFBWSi0p+Cjsk8nK8UiZttZUk8/+ncBKqSWF3v2jT6GpaUDaJR45nuhKqYUH3683NUVin/zVNLDJpR7xE10pFT+0p2f8BFdK/d9r99a5pkjsk7+afPXvRFZKxV18vH91WSlVuX/0KbCacptWnKOzriul5u+dU29qcoukPvnLvWr/TnSlVExuj4oc6rhSan/HitutriulVt5zX0T1yV/c3b+6rpSq2r8TXSn14b/vrXNNbpHUp+pqym06IigrpWJyewRlpdS+jq6grJT64t4HIqpP/nLPbToiKCulaupfoCul/u+1PzXox1NhYaHS0tJUUFBgzWJ8qbcrpTIzMyVJe/fu9RhK7d27V127dvV7vZiYGMXExHjFHQ6HHA7Pct03XFXOMqdXrLp4eal33DAMr+NVziXQ7f3lWNu4+w4YaLw2ufuLh6um2vTJX9xf7vTp5NdUmz7J9B03TbNe1RSJffKXe2375DPuMq0XApW5zIoX+l5xlymXV7TixYGvPOlT7fpXbZ98xF1OP/2rpk+++Osffaq+pqo9qa5PLqevuEsup/cxeN4LTU1Ve1VTn6pyvwayV3kM+nuc+XqsVo6XVXrzY1a5XFPcJcnl/khNpZojoU/+4t79q75P/uJV+1dTn/zFK9fQEB9PJxKv3MO6vCes3MPa9M80PePl/3sMVX48VeYv7jRNVc7SXV+k9KmyyrkH0r9A3mvU1L+qffIXd+fWUB9P/o7vdZ2AtgqD1q1bKzMzU4sWLbJihYWF+uKLL5STkxPGzAAAAAAAAFBXYV0pdeTIEf3444/W5S1btmjt2rVKTU1Vdna2Jk6cqEceeURnnHGGWrdurQceeEDNmze3PuIHAAAAAACAU1NYh1J5eXm68MILrct33HGHJGn06NGaMWOG7r77bhUVFemmm27SoUOH1Lt3b82bN0+xsbHhShkAAAAAAABBENahVL9+/TxO1FWVYRh6+OGH9fDDD4cwKwAAAAAAAJxs9facUgAAAAAAAIhc9fbb9wAAAAAAAE5FXR+ZFJT9rL0/OPupr1gpBQAAAAAAgJBjKAUAAAAAAICQ4+N7J8mgK4NzcvYFsx8Myn4AAAAAAADqE4ZSAACgXuJcDAAAAJGNoRQAAAAAABFqwqLb6ryPFwY8H4RMAG+cUwoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHOaUAAADggW8RBgAAocBKKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcJzoHAAAAAACohyYsui0o+3lhwPNB2U+wsVIKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhx1AKAAAAAAAAIcdQCgAAAAAAACHnCHcCqF7XRyYFZT9r7w/OfgAAAAAAAIKBlVIAAAAAAAAIOYZSAAAAAAAACDmGUgAAAAAAAAg5zikFAAAi2oRFtwVlPy8MeD4o+wEAAEAFVkoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkGEoBAAAAAAAg5BhKAQAAAAAAIOQYSgEAAAAAACDkHOFOAKiPBl35cFD2s2D2g0HZDwAAAAAAkaZer5SaNGmSDMPw+Ne+fftwpwUAAAAAAIA6qvcrpTp27KiFCxdalx2Oep8yAKCe6PrIpKDsp0/OL0HZzwsDng/KfgAAAIBIUO8nPA6HQ5mZmeFOAwAAAAAAAEFU74dSP/zwg5o3b67Y2Fjl5ORoypQpys7O9rt9SUmJSkpKrMuFhYWSpPLycpWXl0uSbDabbDabXC6XXC6Xta3NVvFpRnuUXYZxfJ/OcpdMl+kdL3PJNE05ou0eOZSXOSVJDrvhGXeafuOGIdltx+OmKTldpmyS7JUOakoqN73jLklO05TdMDw+k+k0zYqfOZ0yTdOjVpvN5hW32+0yDMO6rSrH9b/9BBJ3OBwyTdMjbhiG7Ha71+3uL15dn3zl7rd/1fXJlHe81H///PXJXzwYNUVin6qrqVZ9MiRHlHe86m0T7poisU/+aqptn+xRx5+xTFNyljll2AyPx5/1fGhItkqPM5cpuVymbDZDlcJyuUy5zIrHZFSlJwP386HDMFT50V1umjIlj22rxm3m8Txdqrj9bFU+Ae8yXJLpO26Yhgwdv93C3Sd/9z1f/auuT3aHd9xm9+xfIH3yeM52mTJ99C+QPlVWZpoyVNFvj/4F0Cd/8UBeR4T7OcLdw0D6ZLNXul2cplxOl2x2m0cPA+mTr7j7+u7aIvl5L5g1Ve1fTX06HnfJ5Tz+WtV9+wfaJ7eqr1Xdj6vKj6fKfMV9vVYtLy+PqD75i7v7F2if3Kq+16jav9q8p6gcd98WDfXxdCI1OaLtAffJivt4r+GwGwH3qXK86nsKh2H4fO9X2/eEhmnINEyP34cV+zF9xl1ySYY84uXl5fWmT5Xjle9jjmj7ib13r/Jeo6b+Bfqe0F//anrvXvW1qr/++eqTFZf3ax337RSqPlV9nPtTr4dSPXv21IwZM9SuXTvt3r1bkydPVp8+fbR+/Xo1atTI53WmTJmiyZMne8XXrFmjhIQESVJ6erratm2rLVu2aP/+/dY2WVlZFce9pKvSWzax4msXrNe29T+r76jz1Cg10YqvnJOnfVvzlXtzPzmijt+Un726TC67oUG9W3rksGDZNsXGOHRBj9OsmLPc1Pzl25SWEqdzOze14keKyvR53s9qndhIPdPSrfjuY0e1eN8edUxurLNTGlvxzUcO64v8/eqe2kRtE4/fNt8e+kXfFvyiTZs2qaCgwIq3adNGGRkZWr9+vY4dO2bF27dvr5SUFK1Zs8bjTtm5c2dFR0crLy/Po6bu3burtLRU69ats2J2u109evRQQUGBNmzYYMXj4uLUpUsXHThwQD/99JMVT05OVocOHbRr1y7t3LnTilfXp6ysLJ81SapVn44dLtbQ8QM9apr7t4VKjI+qVZ+ymibq7HbH7zMHDh7Tl9/uDUpNkdin6mqqTZ/iGsWq/+jeVqy8rFxzX1ik9JapHrdBuGuKxD75q6m2fcoZ0d2KHz54RJ/NWK7ss5rrnErPn+7HU9vsFJ3RKsWK79x9ROs2HVCn09OU1ez4Y/6HrYf0w7ZD6tYxQ0nZcVb8i/z92nzksHKbnabkqGgrvnjvbu0uPqbhWS0VZTv+y3vurh06Wl6uy7NbK7W4zIp/G7teUWaU2pe0s2Iuw6lvY79TI1ei2pS2seLFRrE2xm5SY2djtSjLsnoe7j75u+9V7l8gfeo6qJMV37/tgFa8u1pnnttGHSr1L5A+NUk93qdvNx7Qjj1H1Ouc5orOjKpVnyp7e/sWxTscGtq8hdW/QPtk1Wo7rJ9itiijPEOZ5U2t2y3cfaruOcLdw0D61C7ndCu+ff1OrVnwnboM6KDsTlmyNU0JuE+JCcf79OW6vTrwyzENOC9bdodh1RDJz3vBrMndv0D75LZx5Y/asHKz9RrW3b9A++T2+Vc/q7ik3HoNW/q/l5SVH09uZS6X3t6xVZmxcbqwaTMrXlBWqrm7dnq8hs3Ly4uoPrlVrcndv0D75Fb1vYa7f4H2ya3qe428vLwG/Xg6kZqGjh8YcJ/cfL3XsDVNCbhPkv/3GvtjvR9PUu3fE5aWR2lv1F61Km2pRq7j8R1RO3XQcVBnlJyuWDPWiv8U/ZMO24+oY0kH2cyKYU1eXl696ZPk+743dPzAE3rvXvW9hq1pygm9d6/6nnCb48Teu/dJb6pmcfFWvMipgPskSRtiNqrMKNPZxcd//0sVw6hQ9qmoqEiBMMzKo+t67tChQ2rZsqWeeeYZjR071uc2vlZKtWjRQvn5+UpKSpJU/bT1wuRhQVkpFTOkZ1BWSh042xWUlVJ9zytQZbWZiltxSc/2e9ojXl+m4u64z/6dwEqpmIt996+2K6XmvXl/g/wrU11qGpB2iUeOJ7pSauHB9+tNTZHYJ381DWxyqUf8RFdKxQ/t6Rk/wZVSBzodr7UuK6XO73no+P7rsFLq6X5PSgp/n/zd93z170RWSsVdfLx/dVkpVbl/dVkp5dG/OqyUcvcv3H2q7jkit+kISXVfKRWT26MiXseVUh/++9461+RWX5/3gllT1f6d6Eopd//qulJqf8eK262uK6VW3nNfRPXJX9zdv7qulKravxNdKeV+/DXUx9OJ1JTbdERQVkrF5PYIykqpfR1dQVkpldPzlzqvlHq635P1pk+V45XvY7lNRwRlpVRN/Qv0PaG//tV2pZS//tV2pdRzA56pOE6I+lRYWKi0tDQVFBRYsxhf6vVKqapSUlJ05pln6scff/S7TUxMjGJiYrziDofD6yTp7huuKmeZ0ytWXdz9cS+vuNP3vM9X3DR9x12SXD7mhv7iTtOUr2xchstHtPZxfyea9xU3DMNn3N/tXtu4+8mvqlr3qRb989cnf/Fg1eQvXpt++IuHq0/+4rXqk+k7bppmvaopEvvkL/fa9sln3GX6fj40K17oe8Vdpnw9Yzldpsp8PE+W+/lbjK9t3XFfz4kuX0c1fMdNw5Qp7/tlfbvv1bpPPuIup5/+VdMnX/z1r7o+eeUoP/2roU/+4oH2L5zPEVV7Ul2fXE5fcZdcTslepYfV9ckX68V8lVwj8XkvmDVV7VVNfarK/Roo0P7V9Fq18uPKVPWPM68cdfy1auWaI6FP/uLe/au+T/7iVftXm/cUleOVa2iIj6cTiVfuYV3eE1buYV3eE7pfs9T1PaFp/G8/dXhPWPm2DnefKqt8Hwukf4G816ipf4G+J6ypf/7eu1d9rXrC/avyWsf432AsVH0K9EvqvPdSjx05ckSbN29Ws2bNat4YAAAAAAAA9Va9HkrdeeedWrp0qbZu3aoVK1bosssuk91u19VXXx3u1AAAAAAAAFAH9frjezt37tTVV1+t/Px8paenq3fv3lq1apXS09NrvjIAAAAAAADqrXo9lJo1a1a4UwAAAAAAAMBJUK8/vgcAAAAAAIDIxFAKAAAAAAAAIcdQCgAAAAAAACHHUAoAAAAAAAAhV69PdA6c6ro+Miko+1l7f3D2AwAAAABAfcFKKQAAAAAAAIQcK6UAAABwUrBiGAAAVIehFAAAAABEGIbCAE4FDKWAU8CERbcFZT8vDHg+KPsBAAAAAKCuOKcUAAAAAAAAQo6VUgAi0qArHw7KfhbMfjAo+wEAAAAAeGIoBQAAgHqNj7EDABCZ+PgeAAAAAAAAQo6VUgBQDb65BgAAAABODlZKAQAAAAAAIOQYSgEAAAAAACDk+PgeAIQAJ+kFADRU/A4EAPjDSikAAAAAAACEHCulAAAAAAA+sdINwMnESikAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhBxDKQAAAAAAAIQcQykAAAAAAACEHEMpAAAAAAAAhNwpMZSaOnWqWrVqpdjYWPXs2VNffvlluFMCAAAAAABAHdT7odTs2bN1xx136KGHHtLXX3+tLl26KDc3V/v27Qt3agAAAAAAADhBjnAnUJNnnnlGN954o6677jpJ0t///nfNnTtX//rXv/THP/4xzNk1PDu+vTAo+2lx9uKg7AcAAAAAAJya6vVQqrS0VKtXr9a9995rxWw2mwYOHKiVK1eGMTMAAAAAABoGFifgZKnXQ6kDBw7I6XSqadOmHvGmTZtqw4YNPq9TUlKikpIS63JBQYEk6eDBgyovL5dUMdiy2WxyuVxyuVzWtjabTeVmmexRdhnG8X06y10yXaZ3vMwl0zTliLZ75FBe5pS9rFh2u+ERdzpNSfIZNwzJZqsUNyWny5RZbMruGVa5WfG5y8pxlySnWRGr/JlMp1nxs7IjZVVuKVOmYcowbVWiLsmQ77ikgljPvRhGxW1qmp53JZutXKZpyDQr3zambDanTNPQwYMHK+3DkN1u99kPf32y2WxyOp0yTdMj7rN/1fRJprzjpf77569Pgfavpj45DMnwEa/av5r6ZMh3fP1yz18mNfXJd9ymZu3fq7SP2vfJV9xut8swDCnq+D6k6vskQ3JEeccNw5DpOv48UFOfbIZkVIqbpuRymbLZDNlKjudTU5+qxsvNisdslOHZw5r65BU3XJJZET/ew5r7ZFa+fxgu2QyXXKZNMm1q3uFdSSfeJ/fzaeW4JO/+1dAne9TxHE1TcpY5Zdh896+6PlV+zJsuUy5TsgfYv8p9kp94QP2r1KeqccM0JBk++ld9n6yw4ZJhuORy2SUZNfavpj45nU6fcV/9q65Pdod33Gb37F8gfarcEJfLlOmjf4H0qbIys2K3jqr9C6BP/uLu313Bft6rbZ+qxh0Oh0zTrIj/r4eB9MlmPx53OU25nC7Z7DaPHgbSJ5/x//3yc/cwkD5VF3f3MJA+VYr+77XO8fj65Rd6PZ7cDMMpwzCriR9/rdO8w7t165O17yqvgar0r6Y+HY+75HIef63q7l+gfXKr+lrV3b9A+yT5fq1aff+8++QZP17/wYMHQ/t4+h9/r1X99S/QPrlVfa/h1b9avKeoHK+uf/7eU/jvX+B98hevePx5P54qbkvf7yl8xZt3eLduffofn8/lUa6A+2TFfbzXMF0lAfepcrzqa1WjxBVwnyT/7zXKjpQG3KeKqPd7jYLY2vVJ8v1eI/GXX+reJ/n53RrlOqH37lXfa9TUv0DfE/rrX23fE/rrX23fE7pnI0F93vsfX30qLCysyKfSc7UvhlnTFmG0a9cunXbaaVqxYoVycnKs+N13362lS5fqiy++8LrOpEmTNHny5FCmCQAAAAAAgCp27NihrKwsvz+v1yulmjRpIrvdrr1793rE9+7dq8zMTJ/Xuffee3XHHXdYl10ulw4ePKi0tLSKVRgRprCwUC1atNCOHTuUlJQU7nRQS/Tv1EcPT23079RG/0599PDURv9ObfTv1EcPT22R3j/TNHX48GE1b9682u3q9VAqOjpa3bp106JFizR8+HBJFUOmRYsWafz48T6vExMTo5iYGI9YSkrKSc40/JKSkiLyjtxQ0L9THz08tdG/Uxv9O/XRw1Mb/Tu10b9THz08tUVy/5KTk2vcpl4PpSTpjjvu0OjRo9W9e3ede+65eu6551RUVGR9Gx8AAAAAAABOPfV+KHXllVdq//79evDBB7Vnzx517dpV8+bN8zr5OQAAAAAAAE4d9X4oJUnjx4/3+3G9hi4mJkYPPfSQ10cWcWqgf6c+enhqo3+nNvp36qOHpzb6d2qjf6c+enhqo38V6vW37wEAAAAAACAy2cKdAAAAAAAAABoehlIAAAAAAAAIOYZSACKSaZq66aablJqaKsMwtHbt2nCnhACNGTNGw4cPD3caqIV+/fpp4sSJ4U4DQBVLliyRYRg6dOhQ2HKYMWOGUlJS6rwfwzD0/vvv13k/p7pJkyapa9eu4U4DiCiR+DqmPjz/B4qhVASp6y+pU+mOG4nq+mIrEp9M62LevHmaMWOGPvroI+3evVudOnUK+jGC8ZjhRba3559/XjNmzAjZ8ejBqcff812w3vwidHjtElyhfC2wdetWGYZR7b9gPpfv3r1bQ4YMCdr+TlV33nmnFi1aFLT98fozMvB78dR28803y2636+233w53KmHBUApARNq8ebOaNWum888/X5mZmXI4PL9stLS0NEyZoSbJycm8gGrAeGxGDqfTKZfLFe40cJK0aNFCu3fvtv794Q9/UMeOHT1iV155ZdCOl5mZ2eC/oUqSEhMTlZaWFu40AATJ0aNHNWvWLN19993617/+VeP2kfg6iaFUELlcLk2ZMkWtW7dWXFycunTponfeeUfS8b/kLVq0SN27d1d8fLzOP/98bdy40WMfjzzyiDIyMtSoUSPdcMMN+uMf/xi0JbqvvfaaunfvrkaNGikzM1PXXHON9u3bJ6nir10XXnihJKlx48YyDENjxoyRVDF5//3vf6+7775bqampyszM1KRJk4KSU33zzjvv6Oyzz1ZcXJzS0tI0cOBAFRUVWR8nmjx5stLT05WUlKRbbrnF40lh3rx56t27t1JSUpSWlqZf//rX2rx5c1Dyys/P19VXX63TTjtN8fHxOvvss/Xmm29aPx8zZoyWLl2q559/3vrr5NatWwO+30WaMWPGaMKECdq+fbsMw1CrVq3Ur18/jR8/XhMnTlSTJk2Um5srSXrmmWd09tlnKyEhQS1atNCtt96qI0eOBCWPr776ShdddJGaNGmi5ORk9e3bV19//bX181atWkmSLrvsMitP6fjKgddee02tWrVScnKyrrrqKh0+fDgoedV3lT++5+7b+PHjlZyc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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAox1JREFUeJzs3Xl8VPX1//H3LNkIJCEhBDCETVkEAQXFCAgCEilFEX6utIJStRVQwK3WDSwVl7rVImrlC25URBGtKKuIBUEMBhEVcGEVwhIgYck6c39/0LlkMjPJTAh3kvH1fDx4PMjJnXvPmTN3kjn5zB2bYRiGAAAAAAAAAAvZw50AAAAAAAAAfn0YSgEAAAAAAMByDKUAAAAAAABgOYZSAAAAAAAAsBxDKQAAAAAAAFiOoRQAAAAAAAAsx1AKAAAAAAAAlmMoBQAAAAAAAMsxlAIAAAAAAIDlGEoBAH5VPv30U9lsNn366afhTqXWstlsmjRpUrjTQAB9+/ZV3759w51GnfDEE0+offv2crvd4U4lJPQ48thsNo0dO7bK7V588UVlZGSouLjYgqwAIPwYSgFALWaz2YL6Z8WAJdCxH3vssdN+bCCSffTRR7+KIaDb7dasWbN0+eWXq3nz5oqPj1enTp00ZcoUFRUV+b3NjBkz1KFDB8XGxuqss87S888/H/TxCgoK9Pjjj+vee++V3f7r+5X3+eefV2JiokpLS8OdSq2Ul5enJ598UhdffLFSU1OVlJSkCy+8UHPmzAl6H8uWLdNNN92ktm3bql69emrdurX+8Ic/aM+ePdXOa9SoUSopKdFLL71U7X0AQF3iDHcCAIDAXn/9da+vX3vtNS1ZssQn3qFDB0vyufTSS3XDDTd4xc4991xLjg1Eqo8++kjTpk2L+MHU8ePHdeONN+rCCy/UH//4RzVu3FirV6/Www8/rGXLlumTTz6RzWYzt3/ppZf0xz/+UcOHD9fEiRP13//+V7fffruOHz+ue++9t8rj/d///Z/Kysp03XXXnc6yaq0FCxZo4MCBioqKCncqtdLq1at1//336ze/+Y0eeOABOZ1Ovfvuu7r22mv13XffafLkyVXu495779XBgwd11VVX6ayzztLPP/+sf/7zn/rwww+1fv16NWnSJOS8YmNjNXLkSD399NMaN26c1zkBAJGIoRQA1GK/+93vvL5es2aNlixZ4hO3Stu2bcN2bNScoqIiRUdH/ypXj+D0crvdKikpUWxsrM/3oqOjtWrVKl100UVm7Oabb1bLli3NwdSAAQMkSYWFhbr//vs1ePBgvfPOO+a2brdbf/3rX3XLLbeoYcOGleYyc+ZMXX755X5ziXTHjx/XihUrNH369HCnUmt17NhRP/zwg1q0aGHGbrvtNg0YMECPP/647rnnHsXHx1e6j6efflq9evXyei697LLL1KdPH/3zn//UlClTqpXb1VdfrSeeeELLly9Xv379qrUPAKgr+G0UAOq4Y8eO6c4771Tz5s0VExOjdu3a6e9//7sMw/DaznM9izfffFPt2rVTbGysunXrps8++yyk4xUWFgZ8q40/77zzjmw2m1asWOHzvZdeekk2m00bN270e9vs7GzZbDa9+uqrPt9btGiRbDabPvzwQ0nS9u3bddttt6ldu3aKi4tTSkqKrrrqKm3btq3KHFu2bKlRo0b5xP1d16W4uFgPP/ywzjzzTMXExKh58+a65557fK7/sWTJEvXq1UtJSUmqX7++2rVrp7/85S9V5hJKn3755RfddNNNSktLU0xMjDp27Kj/+7//89rGcw2tt956Sw888IDOOOMM1atXTwUFBVXm4hHsfTtr1izZbDatWrVKEydOVGpqquLj43XllVdq//79Xtu63W5NmjRJzZo1U7169XTJJZfou+++8+nFpEmT/K4U8ByrfA7vv/++Bg8erGbNmikmJkZt2rTRX//6V7lcLp/bT5s2Ta1bt1ZcXJwuuOAC/fe//z2lfvvz3//+V1dddZUyMjLM206YMEGFhYXmNqNGjdK0adMkeb9FNhQlJSV66KGH1K1bNyUmJio+Pl69e/fW8uXLzW0Mw1DLli11xRVX+Ny+qKhIiYmJuvXWW0Ouu/zjtWPHjoqJidHChQv95hkdHe01kPK48sorJUnff/+9GVu+fLny8vJ02223eW07ZswYHTt2TAsWLKj0Ptm6das2bNhgDrnKy8vL0+9//3slJCQoKSlJI0eO1Ndffy2bzaZZs2Z5bfvJJ5+od+/eio+PV1JSkq644gqvPD1ycnI0aNAgJSQkqH79+urfv7/WrFnjs92GDRvUp08fxcXFKT09XVOmTNHMmTN9Hsv+hPJYXLZsmYqLizVo0KBqHfvjjz82627QoIEGDx6sb7/91mubUaNGqX79+tqxY4d++9vfqn79+jrjjDPMx/M333yjfv36KT4+Xi1atNDs2bO9bu85h1euXKnbb7/dfAvdrbfeqpKSEh0+fFg33HCDGjZsqIYNG+qee+7x+bn297//XRdddJFSUlIUFxenbt26mUPMqrRq1cprICWdeDwPHTpUxcXF+vnnn6vcx8UXX+wz3L/44ouVnJzs93EiKajn9m7duik5OVnvv/9+ULUAQF3GSikAqMMMw9Dll1+u5cuXa/To0eratasWLVqku+++W7/88oueeeYZr+1XrFihOXPm6Pbbb1dMTIxeeOEFXXbZZVq7dq06depU5fFmzZqlF154QYZhqEOHDnrggQd0/fXXV3qbwYMHq379+nr77bfVp08fr+/NmTNHHTt2DHjs7t27q3Xr1nr77bc1cuRIn9s2bNhQWVlZkqQvv/xSn3/+ua699lqlp6dr27Ztmj59uvr27avvvvtO9erVq7K+qrjdbl1++eVauXKlbrnlFnXo0EHffPONnnnmGW3ZskXz58+XJH377bf67W9/q86dO+uRRx5RTEyMfvzxR61atSqo4wTTp7179+rCCy80hwKpqan6+OOPNXr0aBUUFGj8+PFe+/zrX/+q6Oho3XXXXSouLlZ0dHTQdYd6344bN04NGzbUww8/rG3btunZZ5/V2LFjva7Vct999+mJJ57QkCFDlJWVpa+//lpZWVkhDTwrmjVrlurXr6+JEyeqfv36+uSTT/TQQw+poKBATz75pLnd9OnTNXbsWPXu3VsTJkzQtm3bNHToUDVs2FDp6enmdsH2O5C5c+fq+PHj+tOf/qSUlBStXbtWzz//vHbt2qW5c+dKkm699Vbt3r3b79tyg1VQUKBXXnlF1113nW6++WYdOXJEM2bMUFZWltauXauuXbvKZrPpd7/7nZ544gkdPHhQycnJ5u3/85//qKCgwFwFGWrdn3zyid5++22NHTtWjRo1UsuWLUPKPzc3V5LUqFEjM5aTkyPpxHNAed26dZPdbldOTk6lqzY///xzSdJ5553nFXe73RoyZIjWrl2rP/3pT2rfvr3ef/99n+cXSVq6dKkGDRqk1q1ba9KkSSosLNTzzz+vnj176quvvjLr/Pbbb9W7d28lJCTonnvuUVRUlF566SX17dtXK1asUI8ePSSdGCJfcsklstlsuu+++xQfH69XXnlFMTExVd5Hofbko48+Urdu3ZSWlhbysV9//XWNHDlSWVlZevzxx3X8+HFNnz5dvXr1Uk5Ojld/XS6XBg0apIsvvlhPPPGE3nzzTY0dO1bx8fG6//77NWLECA0bNkwvvviibrjhBmVmZqpVq1Zexxs3bpyaNGmiyZMna82aNXr55ZeVlJSkzz//XBkZGXr00Uf10Ucf6cknn1SnTp283kL+3HPP6fLLL9eIESNUUlKit956S1dddZU+/PBDDR48uMr71R9/j8dQHD16VEePHvV7+1B+Bp933nlB/8wAgDrNAADUGWPGjDHKP3XPnz/fkGRMmTLFa7v/9//+n2Gz2Ywff/zRjEkyJBnZ2dlmbPv27UZsbKxx5ZVXVnnsiy66yHj22WeN999/35g+fbrRqVMnQ5LxwgsvVHnb6667zmjcuLFRVlZmxvbs2WPY7XbjkUceqfS29913nxEVFWUcPHjQjBUXFxtJSUnGTTfdZMaOHz/uc9vVq1cbkozXXnvNjC1fvtyQZCxfvtyMtWjRwhg5cqTP7fv06WP06dPH/Pr111837Ha78d///tdruxdffNGQZKxatcowDMN45plnDEnG/v37K63Nn2D7NHr0aKNp06bGgQMHvG5/7bXXGomJieb94am3devWfu+jQDk8/PDD5tfB3rczZ840JBkDBgww3G63GZ8wYYLhcDiMw4cPG4ZhGLm5uYbT6TSGDh3qtc9JkyYZkrx68fDDDxv+fl3xHGvr1q2V5nnrrbca9erVM4qKigzDOPHYSUlJMc4//3yjtLTU3G7WrFmGpGr1OxB/+UydOtWw2WzG9u3bzVjF87oqFR+XZWVlRnFxsdc2hw4dMtLS0rzOkc2bNxuSjOnTp3tte/nllxstW7Y0exZK3ZIMu91ufPvtt0HnX9GAAQOMhIQE49ChQ2ZszJgxhsPh8Lt9amqqce2111a6zwceeMCQZBw5csQr/u677xqSjGeffdaMuVwuo1+/foYkY+bMmWa8a9euRuPGjY28vDwz9vXXXxt2u9244YYbzNjQoUON6Oho46effjJju3fvNho0aGBcfPHFZmzcuHGGzWYzcnJyzFheXp6RnJzs81iu7nOPR0ZGhtc5HOyxjxw5YiQlJRk333yz1/5yc3ONxMREr/jIkSMNScajjz5qxg4dOmTExcUZNpvNeOutt8z4pk2bfJ5XPOdwVlaW1/NFZmamYbPZjD/+8Y9mrKyszEhPT/e6TwzD9xwrKSkxOnXqZPTr18+ojry8PKNx48ZG7969q3V7wzCMv/71r4YkY9myZV7xUH8G33LLLUZcXFy18wCAuoK37wFAHfbRRx/J4XDo9ttv94rfeeedMgxDH3/8sVc8MzNT3bp1M7/OyMjQFVdcoUWLFvl9i1N5q1at0h133KHLL79cf/zjH7Vu3Tp16tRJf/nLX7zejuTPNddco3379nl9SuA777wjt9uta665psrblpaWat68eWZs8eLFOnz4sNdt4+LizP+XlpYqLy9PZ555ppKSkvTVV19VeoxgzZ07Vx06dFD79u114MAB85/nmh+et0slJSVJOvF2sup8FH1VfTIMQ++++66GDBkiwzC8csnKylJ+fr5PzSNHjvS6j0IR6n17yy23eL0FrXfv3nK5XNq+fbukE28tKisr83lr1rhx46qVn788jxw5ogMHDqh37946fvy4Nm3aJOnEW0Lz8vJ08803y+k8uWB8xIgRPtcoCrbfweRz7NgxHThwQBdddJEMwzBXAtUEh8Nhrnxzu906ePCgysrK1L17d6/+tG3bVj169NCbb75pxg4ePKiPP/5YI0aMMHsWat19+vTR2WefXa3cH330US1dulSPPfaYed5IJ94mHGg1X2xsbJXPOXl5eXI6napfv75XfOHChYqKitLNN99sxux2u8aMGeO13Z49e7R+/XqNGjXKa1VZ586ddemll+qjjz6SdGKl0OLFizV06FC1bt3a3K5p06a6/vrrtXLlSvOtsgsXLlRmZqa6du1qbpecnKwRI0ZUWosUWk82btyoHTt2eK0UCvbYS5Ys0eHDh3Xdddd5HcfhcKhHjx5+H/N/+MMfzP8nJSWpXbt2io+P19VXX23G27Vrp6SkJL9viRs9erTX80WPHj1kGIZGjx5txhwOh7p37+5z+/Ln2KFDh5Sfn6/evXtX6znf7XZrxIgROnz4cEif8ljeZ599psmTJ+vqq6/2ey2oUH4GN2zYUIWFhTp+/Hi1cgGAuoK37wFAHbZ9+3Y1a9ZMDRo08Ip7Po3PMwTwOOuss3z20bZtWx0/flz79+8P6ZOCoqOjNXbsWHNA1atXr4DbXnbZZUpMTNScOXPUv39/SSfefte1a1e1bdu20uN06dJF7du315w5c8wXKXPmzFGjRo28fukvLCzU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U9OnT/eKV3wcSydfJJf/2PRjx47p1Vdf9clR8l5JUVJSohdeeMFru+7duyslJUX/+te/VFZWZsbffPNNn4FYsP32x18+hmHoueee89k2Pj5ekqo95PN3rC+++EKrV6/2u/3vf/97fffdd7r77rvlcDh8BrynUndVvv/+ew0ePFgtW7bUhx9+GHAVSL9+/ZScnOzzGJk+fbrq1atX5Sered6qlp2d7RXPyspSaWmpV21ut1vTpk3z2q5p06bq2rWrXn31Va++bNy4UYsXLzYHZQ6HQwMHDtT777+vbdu2mdvt3btXs2fPVq9evcy3vGVlZWn16tVav369ud3Bgwe9rvEVSLA9Wbx4sSRp4MCBPnUHc+ysrCwlJCTo0Ucf9XobqEdNP7ecCofDIZvN5vU8tG3bNp9PIuzWrZsGDBhg/it//TPPJ+GNGDEi4Cq0hg0bet1+wIABio2NlXTiueg3v/mNfvnlF3300Ud+355XXig/g7/66itddNFFQd0XAFCXsVIKAOqwIUOG6JJLLtH999+vbdu2qUuXLlq8eLHef/99jR8/3nxB79GpUydlZWV5fRy1dOKtC5WZNm2a5s+fryFDhigjI0N79uzR//3f/2nHjh16/fXXA16QuLyoqCgNGzZMb731lo4dO6a///3vIdV6zTXX6KGHHlJsbKxGjx7tc22m3/72t3r99deVmJios88+W6tXr9bSpUuVkpJS5b7/8Ic/6J133tFll12mq6++Wj/99JPeeOMNn/vv97//vd5++2398Y9/1PLly9WzZ0+5XC5t2rRJb7/9thYtWqTu3bvrkUce0WeffabBgwerRYsW2rdvn1544QWlp6dXeu0tj2D69Nhjj2n58uXq0aOHbr75Zp199tk6ePCgvvrqKy1durTKt1SG4lTuW3/S0tJ0xx136KmnntLll1+uyy67TF9//bU+/vhjNWrUyGslyMCBA5WRkaHRo0ebQ5T/+7//U2pqqnbs2GFud9FFF6lhw4YaOXKkbr/9dtlsNr3++us+w7To6GhNmjRJ48aNU79+/XT11Vdr27ZtmjVrltq0aeN17GD77U/79u3Vpk0b3XXXXfrll1+UkJCgd9991+81dTxD3dtvv11ZWVl+B0WV+e1vf6t58+bpyiuv1ODBg7V161a9+OKLOvvss3X06FGf7QcPHqyUlBTNnTtXgwYN8np73KnWXZkjR44oKytLhw4d0t13360FCxZ4fb9NmzbmMCkuLk5//etfNWbMGF111VXKysrSf//7X73xxhv629/+5nXxcX9at26tTp06aenSpbrpppvM+NChQ3XBBRfozjvv1I8//qj27dvrgw8+MM+X8v1/8sknNWjQIGVmZmr06NEqLCzU888/r8TERE2aNMncbsqUKVqyZIl69eql2267TU6nUy+99JKKi4v1xBNPmNvdc889euONN3TppZdq3Lhxio+P1yuvvKKMjAwdPHiw0hVQwfZkwYIF6tWrl881k4I9dkJCgqZPn67f//73Ou+883Tttdea59qCBQvUs2dPv8PjcBg8eLCefvppXXbZZbr++uu1b98+TZs2TWeeeaY2bNhQ5e3Xrl2rG264QSkpKerfv7/PgO6iiy7yWinrz4gRI7R27VrddNNN+v777/X999+b36tfv76GDh3qtX2wP4PXrVungwcP6oorrqiyDgCo8yz+tD8AwCnw99HxR44cMSZMmGA0a9bMiIqKMs466yzjySef9PqIbcM48XHUY8aMMd544w3jrLPOMmJiYoxzzz3XWL58eZXHXbx4sXHppZcaTZo0MaKiooykpCRj4MCBPh95XZUlS5YYkgybzWbs3LkzpNv+8MMP5kdqr1y50uf7hw4dMm688UajUaNGRv369Y2srCxj06ZNRosWLYyRI0ea2y1fvtyQ5FP3U089ZZxxxhlGTEyM0bNnTyM7O9vnY9kN48RHjj/++ONGx44djZiYGKNhw4ZGt27djMmTJxv5+fmGYRjGsmXLjCuuuMJo1qyZER0dbTRr1sy47rrrjC1btlRZZyh92rt3rzFmzBijefPmRlRUlNGkSROjf//+xssvv+xT79y5c6s8dvkcyn90e7D3recj3r/88kuv/fm7z8vKyowHH3zQaNKkiREXF2f069fP+P77742UlBSvj4I3DMNYt26d0aNHDyM6OtrIyMgwnn76afNYno+yNwzDWLVqlXHhhRcacXFxRrNmzYx77rnHWLRokd9+/+Mf/zBatGhhxMTEGBdccIGxatUqo1u3bsZll13mtV0w/Q7ku+++MwYMGGDUr1/faNSokXHzzTcbX3/9tSHJmDlzptd9MW7cOCM1NdWw2Ww+53hFFR+XbrfbePTRR816zj33XOPDDz80Ro4cabRo0cLvPm677TZDkjF79my/3w+2bs/jNRhbt241z2F//8o/ljxefvllo127dkZ0dLTRpk0b45lnnvF5bgvk6aefNurXr28cP37cK75//37j+uuvNxo0aGAkJiYao0aNMlatWmVIMt566y2vbZcuXWr07NnTiIuLMxISEowhQ4YY3333nc+xvvrqKyMrK8uoX7++Ua9ePeOSSy4xPv/8c5/tcnJyjN69exsxMTFGenq6MXXqVOMf//iHIcnIzc01t6vOc4/b7TYaN25sPPHEE37vj2CPbRgnztmsrCwjMTHRiI2NNdq0aWOMGjXKyM7ONrcZOXKkER8f73OcPn36GB07dvSJt2jRwhg8eLD5daDni4cfftiQZOzfv98r7u94M2bMMJ8n27dvb8ycOdO8fVU8xw/0r/w5GkiLFi0C3r7iuRfKc/u9995rZGRkBP1YB4C6zGYY1bjqKACgzrHZbBozZkyt+Ss3/Ps19+nw4cNq2LChpkyZovvvv9/SY7vdbqWmpmrYsGF+3yIVaSZMmKAZM2YoNzfX55PoIkV+fr5at26tJ554wvzkzkDmz5+vK6+8UitXrlTPnj0tyvCE8ePH66WXXtLRo0dP6UMQ1q5dqx49eujbb7/1eouaFcdGzSkuLlbLli315z//WXfccUe40wGA045rSgEAAMsVFhb6xDwX3O7bt+9pPXZRUZHP2/pee+01HTx48LQfuzYoKirSG2+8oeHDh0fsQEqSEhMTdc899+jJJ5/0+rTDio89l8ul559/XgkJCTrvvPNOa04Vj52Xl6fXX39dvXr1qpGh0KOPPhpwIHW6j42aMXPmTEVFRemPf/xjuFMBAEtwTSkAAGC5OXPmaNasWfrNb36j+vXra+XKlfr3v/+tgQMHnvaVKmvWrNGECRN01VVXKSUlRV999ZVmzJihTp066aqrrjqtxw6nffv2aenSpXrnnXeUl5f3q1iFce+99/p8otq4ceNUWFiozMxMFRcXa968efr888/16KOPBrzwek3JzMxU37591aFDB+3du1czZsxQQUGBHnzwwVPe9wUXXKALLrggLMdGzfnjH//IQArArwpDKQAAYLnOnTvL6XTqiSeeUEFBgXnx8ylTppz2Y7ds2VLNmzfXP/7xDx08eFDJycm64YYb9NhjjwV10f666rvvvtOIESPUuHFj/eMf/zA/EfLXpl+/fnrqqaf04Ycf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YigFAAAAAAAiynPPPaennnpKf//737VhwwZlZWXp8ssv1w8//OC13d13360777xTOTk5yszM1JAhQ5SXlxfUMXbu3KnevXurU6dOeueddxQTE+Ozzbx583TzzTcrMzNTe/bs0bx58yRJY8eO1erVq/XWW29pw4YNuuqqq3TZZZeZ+RUVFalbt25asGCBNm7cqFtuuUW///3vtXbtWrO+zMxM3XzzzdqzZ4/27Nmj5s2bB33//Pjjj3r33Xc1b948rV+/XpJ01VVXad++ffr444+1bt06nXfeeerfv78OHjwY9H5DxVAKAAAAAABElL///e+69957de2116pdu3Z6/PHH1bVrVz377LNe240dO1bDhw9Xhw4dNH36dCUmJmrGjBlV7n/z5s3q2bOnsrKyNHPmTDkcDr/bJScnq169eoqOjlaTJk2UnJysHTt2aObMmZo7d6569+6tNm3a6K677lKvXr00c+ZMSdIZZ5yhu+66S127dlXr1q01btw4XXbZZXr77bclSYmJiYqOjla9evXM1WGBcvCnpKREr732ms4991x17txZK1eu1Nq1azV37lx1795dZ511lv7+978rKSlJ77zzTtD7DRXXlAIAAAAAABGjoKBAu3fvVs+ePb3iPXv29Hk7WmZmpvl/p9Op7t276/vvv5ckdezYUdu3b5ck9e7dWx9//LEkqbCwUL1799b111/vM+QKxjfffCOXy6W2bdt6xYuLi5WSkiJJcrlcevTRR/X222/rl19+UUlJiYqLi1WvXr2Qj+dPixYtlJqaan799ddf6+jRo+bxPQoLC/XTTz/VyDH9YSgFAAAAAABQwUcffaTS0lJJUlxcnBmPiYnRgAED9OGHH+ruu+/WGWecEdJ+jx49KofDoXXr1vmsbvJcnP3JJ5/Uc889p2effVbnnHOO4uPjNX78eJWUlFS6b7vdLsMwvGKeGsqLj4/3yalp06Ze17XyqHiNqprEUAoAAAAAAESMhIQENWvWTKtWrVKfPn3M+KpVq3TBBRd4bbtmzRpdfPHFkqSysjKtW7dOY8eOlXRiNZE/drtdr7/+uq6//npdcskl+vTTT9WsWbOg8zv33HPlcrm0b98+9e7d2+82q1at0hVXXKHf/e53kiS3260tW7bo7LPPNreJjo6Wy+Xyul1qaqqOHDmiY8eOmYMnzzWjKnPeeecpNzdX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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_dir = \"v_score_runs/run_reprod_fig_1\"\n", + "layers = [0,2,5,10,15,20]\n", + "top_head = 4\n", + "extra_rank_index = 2000\n", + "\n", + "for layer in layers:\n", + " visualize_top_v_scores_notebook(run_dir, layer, top_head, extra_rank_index)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "84ee2c7b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnSpJREFUeJzs3Xl8E3X+x/H3JOkJpaXQArWUS+U+1CIiKuWQwuKB7s/1QAXv/Qkqnru6LoLrire4Hqy764rriSCKPxEUUEDwoogKsohy35SrnD2SzO+PkmnTpGnahqRNX8/Hg8eDfjqZfD/zSSYzn35nYpimaQoAAAAAAAAII1ukBwAAAAAAAICGh6YUAAAAAAAAwo6mFAAAAAAAAMKOphQAAAAAAADCjqYUAAAAAAAAwo6mFAAAAAAAAMKOphQAAAAAAADCjqYUAAAAAAAAwo6mFAAAAAAAAMKOphQAoMFZuHChDMPQwoULIz2UOsswDE2YMCHSw0AlcnJylJOTE+lhRMyWLVsUHx+vpUuXRnoo1TJ16lQZhqGNGzdGeigIkdGjR6tx48ZVLrd37141atRIH3/8cRhGBQD1B00pAKjjDMMI6l84GiyVPfdjjz12wp8biGYff/xxg2oC/ve//9XQoUPVuHFjpaam6pprrlF+fn7Qj3/44YfVp08f9evX7wSOsm7av3+/HA6H3n333UgPpc6aOXOmLr/8crVv316JiYnq2LGj7r77bh04cCCox2/ZskUTJ07UmWeeqaZNm6p58+bKycnR/PnzazymZs2a6cYbb9Sf//znGq8DAKKRI9IDAAAE9vrrr3v9/J///Efz5s3ziXfu3Dks4zn//PN17bXXesVOO+20sDw3EK0+/vhjvfjiiw2iMbV161add955Sk5O1qOPPqrDhw/rqaee0sqVK/Xtt98qNjY24OPz8/P12muv6bXXXgvTiOuWTz75RIZhaMiQIZEeSp118803KyMjQ1dffbWysrK0cuVKvfDCC/r444/13XffKSEhIeDjZ82apccff1wjRozQqFGj5HQ69Z///Efnn3++/v3vf+u6666r0bh+//vf629/+5s+++wzDRw4sEbrAIBoQ1MKAOq4q6++2uvnr7/+WvPmzfOJh8upp54asedG6BQWFio2NlY2G5OmEVput1vFxcWKj4/3+/tHH31UR44c0fLly5WVlSVJOvPMM3X++edr6tSpuvnmmwOu/4033pDD4dCFF14Y8rHXBx9//LH69eunlJSUSA+lzpoxY4bP5a1nnHGGRo0apTfffFM33nhjwMcPGDBAmzdvVvPmza3Y73//e/Xq1Uvjx4+vcVOqc+fO6tatm6ZOnUpTCgCO40gUAKLAkSNHdPfdd6t169aKi4tTx44d9dRTT8k0Ta/lDMPQ2LFj9eabb6pjx46Kj4/XGWecocWLF1fr+Y4dO6bCwsKgl58xY4YMw9CiRYt8fvfyyy/LMAytWrXK72Pz8vJkGIbfWRGeGQMfffSRJGnTpk269dZb1bFjRyUkJKhZs2a67LLLgrp/S9u2bTV69GifuL979xQVFemhhx7SySefrLi4OLVu3Vr33XefioqKvJabN2+ezjnnHKWkpKhx48bq2LGjHnjggSrHUp06bdu2Tddff71atGihuLg4de3aVf/+97+9lvHcQ+udd97Rgw8+qJNOOkmJiYk6ePBglWPxCHbbeu6Zs3TpUt11111KS0tTo0aNdMkll/hcnuV2uzVhwgRlZGQoMTFRAwYM0OrVq31qMWHCBBmG4TMmf/fnmTVrloYPH66MjAzFxcWpQ4cO+stf/iKXy+Xz+BdffFHt27dXQkKCzjzzTH3xxRe1qrc/X3zxhS677DJlZWVZj73zzjt17Ngxa5nRo0frxRdflOR9iWx1FBcXa/z48TrjjDOUnJysRo0a6dxzz9Xnn39uLWOaptq2bauLL77Y5/GFhYVKTk7WLbfcUu28y79eu3btqri4OM2dO7fSsb733nu64IILrIaUJA0ePFinnnpqUJekffDBB+rTp4/f+/gEW9Pdu3frhhtuUIsWLRQfH6+ePXv63ccEu289duyYbr/9djVv3lxJSUm66KKLtG3btqDvzTZnzhyde+65atSokZKSkjR8+HD99NNPPsu53W7NnTtXw4cPr9FzV2d/8e6772rixIk66aSTlJSUpP/5n/9RQUGBioqKNG7cOKWnp6tx48a67rrrKn1NTJ8+XV26dFFCQoL69u2rlStXSird75988smKj49XTk6Oz34kmPdNIP7ut3bJJZdIKr10tCpdu3b1akhJUlxcnH7zm99o69atOnTokM9j1q9fr9zcXDVq1EgZGRl6+OGHfV4nUuls4//7v//z+zsAaIiYKQUA9Zxpmrrooov0+eef64YbblCvXr30ySef6N5779W2bdv07LPPei2/aNEiTZs2Tbfffrvi4uL00ksvaejQofr222/VrVu3Kp9v6tSpeumll2Sapjp37qwHH3xQV111VcDHDB8+XI0bN9a7776r/v37e/1u2rRp6tq1a6XPnZ2drfbt2+vdd9/VqFGjfB7btGlT5ebmSpKWLVumL7/8UldccYUyMzO1ceNGTZkyRTk5OVq9erUSExOrzK8qbrdbF110kZYsWaKbb75ZnTt31sqVK/Xss89q7dq1+uCDDyRJP/30ky644AL16NFDDz/8sOLi4vTrr78GfWPmYOq0a9cunXXWWdYJYFpamubMmaMbbrhBBw8e1Lhx47zW+Ze//EWxsbG65557VFRUVOVlUuVVd9vedtttatq0qR566CFt3LhRkydP1tixYzVt2jRrmfvvv19PPPGELrzwQuXm5uqHH35Qbm5utRqeFU2dOlWNGzfWXXfdpcaNG+uzzz7T+PHjdfDgQT355JPWclOmTNHYsWN17rnn6s4779TGjRs1YsQINW3aVJmZmdZywda7MtOnT9fRo0f1v//7v2rWrJm+/fZbPf/889q6daumT58uSbrlllu0fft2v5flBuvgwYP617/+pSuvvFI33XSTDh06pFdeeUW5ubn69ttv1atXLxmGoauvvlpPPPGE9u3bp9TUVOvx//d//6eDBw9asyCrm/dnn32md999V2PHjlXz5s3Vtm1bv+Pctm2bdu/erezsbJ/fnXnmmVXeBLqkpETLli3T//7v//r8LtiaHjt2TDk5Ofr11181duxYtWvXTtOnT9fo0aN14MAB3XHHHZKqt28dPXq03n33XV1zzTU666yztGjRIq/GUSCvv/66Ro0apdzcXD3++OM6evSopkyZonPOOUcrVqzw2pbLli1Tfn6+fvOb31T7uau7v5g0aZISEhL0xz/+Ub/++quef/55xcTEyGazaf/+/ZowYYK+/vprTZ06Ve3atdP48eO9Hv/FF1/oww8/1JgxY6z1XXDBBbrvvvv00ksv6dZbb9X+/fv1xBNP6Prrr9dnn31mPTaY90117dy5U5J8mk3VXUdiYqLP/s7lcmno0KE666yz9MQTT2ju3Ll66KGH5HQ69fDDD3ste8YZZ+jZZ5/VTz/9FNRnLgBEPRMAUK+MGTPGLL/7/uCDD0xJ5iOPPOK13P/8z/+YhmGYv/76qxWTZEoy8/LyrNimTZvM+Ph485JLLqnyuc8++2xz8uTJ5qxZs8wpU6aY3bp1MyWZL730UpWPvfLKK8309HTT6XRasR07dpg2m818+OGHAz72/vvvN2NiYsx9+/ZZsaKiIjMlJcW8/vrrrdjRo0d9HvvVV1+Zksz//Oc/Vuzzzz83JZmff/65FWvTpo05atQon8f379/f7N+/v/Xz66+/btpsNvOLL77wWu7vf/+7KclcunSpaZqm+eyzz5qSzPz8/IC5+RNsnW644QazVatW5p49e7wef8UVV5jJycnW9vDk2759e7/bqLIxPPTQQ9bPwW7bV1991ZRkDh482HS73Vb8zjvvNO12u3ngwAHTNE1z586dpsPhMEeMGOG1zgkTJpiSvGrx0EMPmf4OWTzPtWHDhoDjvOWWW8zExESzsLDQNM3S106zZs3M3r17myUlJdZyU6dONSXVqN6V8TeeSZMmmYZhmJs2bbJiFd/XVan4unQ6nWZRUZHXMvv37zdbtGjh9R75+eefTUnmlClTvJa96KKLzLZt21o1q07ekkybzWb+9NNPVY572bJlPq8Zj3vvvdeUZNXJn19//dWUZD7//PNe8erUdPLkyaYk84033rBixcXFZt++fc3GjRubBw8eNE0z+H3r8uXLTUnmuHHjvJYbPXq0z/uo4mv20KFDZkpKinnTTTd5PXbnzp1mcnKyT/zPf/6z2aZNG+vn6jx3dfcX3bp1M4uLi63lrrzyStMwDHPYsGFej+/bt6/XmEyz9DURFxfn9d58+eWXTUlmy5YtrW1smqX792Dex/7eN9Vxww03mHa73Vy7dm2NHv/LL7+Y8fHx5jXXXOMVHzVqlCnJvO2226yY2+02hw8fbsbGxvp8Bnz55ZemJHPatGk1GgcARBsu3wOAeu7jjz+W3W7X7bff7hW/++67ZZqm5syZ4xXv27evzjjjDOvnrKwsXXzxxfrkk0/8XuJU3tKlS3XHHXfooosu0u9//3stX75c3bp10wMPPFDlZRWXX365du/e7fUtgTNmzJDb7dbll19e5WNLSko0c+ZMK/bpp5/qwIEDXo8tf/PakpIS7d27VyeffLJSUlL03XffBXyOYE2fPl2dO3dWp06dtGfPHuuf5/4gnsulPPd7mTVrltxud7Wfp6o6maap9957TxdeeKFM0/QaS25urgoKCnxyHjVqVJU3+K1MdbftzTff7HUJ2rnnniuXy6VNmzZJkhYsWCCn06lbb73V63G33XZbjcbnb5yHDh3Snj17dO655+ro0aNas2aNpNJLQvfu3aubbrpJDkfZpPGRI0eqadOmXusLtt7BjOfIkSPas2ePzj77bJmmqRUrVtQq1/Lsdrs1883tdmvfvn1yOp3Kzs72qs+pp56qPn366M0337Ri+/bt05w5czRy5EirZtXNu3///urSpUuV4/TsJ+Li4nx+57kHVaB9yd69eyXJp07VqenHH3+sli1b6sorr7RiMTExuv3223X48GHrMuNg962eSxVr8lqeN2+eDhw4oCuvvNJrO9vtdvXp08dnO3/88cdes6CCfe6a7C+uvfZaxcTEWD/36dNHpmnq+uuv91quT58+2rJli5xOp1d80KBBXrO8+vTpI0n67W9/q6SkJJ/4+vXrrVio3zdvvfWWXnnlFd1999065ZRTqv34o0eP6rLLLlNCQkKl3zY7duxY6/+e2WjFxcU+39jneT3u2bOn2uMAgGjE5XsAUM9t2rRJGRkZXgf5Utm38XmaAB7+DshPPfVUHT16VPn5+WrZsmXQzx0bG6uxY8daDapzzjmn0mWHDh2q5ORkTZs2TYMGDZJUevldr169dOqppwZ8np49e6pTp06aNm2abrjhBuuxzZs397pZ7LFjxzRp0iS9+uqr2rZtm9c9OwoKCoLOK5BffvlF//3vf5WWlub397t375ZU2kj717/+pRtvvFF//OMfNWjQIF166aX6n//5n6BuLl5VnWw2mw4cOKB//OMf+sc//hFwLB7t2rWr8nkrU91tW/5+QVLZidj+/fsllb0uTz75ZK/lUlNTfZoI1fHTTz/pwQcf1GeffeZzzyzPOCt7bofD4XPZWbD1rszmzZs1fvx4ffjhh1buFccTKq+99pqefvpprVmzRiUlJVa8Yt2vvfZajR07Vps2bVKbNm00ffp0lZSU6JprrrGWqW7ewb62PM0Gf/fj8ly2GUzj1KxwP57q1HTTpk065ZRTfN6HFfeZwe5bN23aJJvN5rMNKo7Fn19++UWSKr3pdZMmTaz/79y5U999953X5WDBPnd+fn619xcV38PJycmSpNatW/vE3W63CgoK1KxZsxo9XpLX+yOY982xY8d83kP+Pr+++OIL3XDDDcrNzdVf//pXr9/l5+d7/TGmcePGPvcqc7lcuuKKK7R69WrNmTNHGRkZPs9hs9nUvn17r5jnc63i/bI8r93q3jcOAKIVTSkAQK14TjD27dsXcLm4uDiNGDFC77//vl566SXt2rVLS5cu1aOPPhrU81x++eX661//qj179igpKUkffvihrrzySq9ZEbfddpteffVVjRs3Tn379lVycrIMw9AVV1xR5Wylyk4QXC6X7Ha79bPb7Vb37t31zDPP+F3esz0SEhK0ePFiff7555o9e7bmzp2radOmaeDAgfr000+91lkTnnyuvvpqn3ttefTo0cPr55rOkpKqv20ry69iMyEYgWpT3oEDB9S/f381adJEDz/8sDp06KD4+Hh99913+sMf/lCjGWvB1ruy8Z1//vnat2+f/vCHP6hTp05q1KiRtm3bptGjR9doPJV54403NHr0aI0YMUL33nuv0tPTZbfbNWnSJK1bt85r2SuuuEJ33nmn3nzzTT3wwAN64403lJ2drY4dO1rLVDfvYF9brVq1kiTt2LHD53c7duxQamqq31lUHp6mR8VGRX3leQ28/vrrfhsq5fdvc+bMUXx8vAYMGFDj56nO/qKy93Cw7+2aPj7Y9820adN8vgWv4hh++OEHXXTRRerWrZtmzJjhtT0lqXfv3l5/uHnooYd8bg5/00036aOPPtKbb74Zkm/M87x2a3NvKwCIJjSlAKCea9OmjebPn69Dhw55/UXfc6lSmzZtvJb3/GW+vLVr1yoxMbHSWRGBeC65COaxl19+uV577TUtWLBA//3vf2WaZpWX7pV/7MSJE/Xee++pRYsWOnjwoK644gqvZWbMmKFRo0bp6aeftmKFhYU6cOBAletv2rSp3+U2bdrk9RfwDh066IcfftCgQYOq/Eu3zWbToEGDNGjQID3zzDN69NFH9ac//Umff/65Bg8eHPCxwdQpKSlJLperynWFQm22rT+e1+Wvv/7qNctj7969Pg0Hz8ypAwcOWJdFSr6zABcuXKi9e/dq5syZOu+886z4hg0bKn3u8if4TqdTGzdu9Do5r069K1q5cqXWrl2r1157Tddee60Vnzdvns+ytZ01MWPGDLVv314zZ870WtdDDz3ks2xqaqqGDx+uN998UyNHjtTSpUs1efJkr2Vqk3cgJ510ktLS0pSXl+fzO88N2QPJyspSQkJCrWrapk0b/fjjj3K73V6zpSruM4Pdt7Zp00Zut1sbNmzwmuH466+/BsxFKt3OkpSenl7l+3j27NkaMGCAVwMw2OdOS0sL6/6iNoJ93+Tm5vp9L3msW7dOQ4cOVXp6uj7++GO/39b45ptvel0uWnG207333qtXX31VkydP9rrcsyK3263169d7zfpdu3atJPnM1PO8dj0z7gCgoeOeUgBQz/3mN7+Ry+XSCy+84BV/9tlnZRiGhg0b5hX/6quvvO4dsmXLFs2aNUtDhgwJOHsnPz/fJ3bo0CFNnjxZzZs397r/UWUGDx6s1NRUTZs2TdOmTdOZZ54Z9GU/nTt3Vvfu3a3HtmrVyqvxIJX+Bb7iX8qff/75Ku+VJZWeHH799dcqLi62Yh999JG2bNnitdzvfvc7bdu2Tf/85z991nHs2DEdOXJEkv+ZY54Tbn+XLlVUVZ3sdrt++9vf6r333tOqVat8Hu+vXrVRm23rz6BBg+RwODRlyhSveMXXsVR24r548WIrduTIEb322ms+Y5S8Z0sUFxfrpZde8louOztbzZo10z//+U+v++C8+eabPg2xYOvtj7/xmKap5557zmfZRo0aSVKNm3z+nuubb77RV1995Xf5a665RqtXr9a9994ru93u0+CtTd5V+e1vf+vz3lqwYIHWrl2ryy67LOBjY2JilJ2d7dPUqk5Nf/Ob32jnzp1e3wTpdDr1/PPPq3HjxtY3hAa7b/V8+2fF19nzzz8fMBfPY5s0aaJHH33U65JLD8/7uKSkRPPmzfP5Vr1gnzvc+4vaCPZ906pVKw0ePNjrn8fOnTs1ZMgQ2Ww2ffLJJ5X+0aRfv35ejy/flHryySf11FNP6YEHHrC+kTGQ8q8T0zT1wgsvKCYmxrpc3WP58uVKTk5W165dq1wnADQEzJQCgHruwgsv1IABA/SnP/1JGzduVM+ePfXpp59q1qxZGjdunHVC79GtWzfl5ubq9ttvV1xcnHUyM3HixIDP8+KLL+qDDz7QhRdeqKysLO3YsUP//ve/tXnzZr3++uvWTZYDiYmJ0aWXXqp33nlHR44c0VNPPVWtXC+//HKNHz9e8fHxuuGGG3zuCXPBBRfo9ddfV3Jysrp06aKvvvpK8+fP97rPSWVuvPFGzZgxQ0OHDtXvfvc7rVu3Tm+88YbP9rvmmmv07rvv6ve//70+//xz9evXTy6XS2vWrNG7776rTz75RNnZ2Xr44Ye1ePFiDR8+XG3atNHu3bv10ksvKTMzM+C9tzyCqdNjjz2mzz//XH369NFNN92kLl26aN++ffruu+80f/78Ki+prI7abFt/WrRooTvuuENPP/20LrroIg0dOlQ//PCD5syZo+bNm3vNzhkyZIiysrJ0ww03WE2Uf//730pLS9PmzZut5c4++2w1bdpUo0aN0u233y7DMPT666/7NNNiY2M1YcIE3XbbbRo4cKB+97vfaePGjZo6dao6dOjg9dzB1tufTp06qUOHDrrnnnu0bds2NWnSRO+9957fS888Td3bb79dubm5fhtFgVxwwQWaOXOmLrnkEg0fPlwbNmzQ3//+d3Xp0kWHDx/2WX748OFq1qyZpk+frmHDhik9Pd3r97XJuyoPPPCApk+frgEDBuiOO+7Q4cOH9eSTT6p79+4+l2P5c/HFF+tPf/qTDh48aN1zqTo1vfnmm/Xyyy9r9OjRWr58udq2basZM2ZYM8Y8s6KC3beeccYZ+u1vf6vJkydr7969Ouuss7Ro0SJrpkygmWZNmjTRlClTdM011+j000/XFVdcYb2uZ8+erX79+umFF17QkiVLdPDgQZ+mVHWeO5z7i9qozvumMkOHDtX69et13333acmSJVqyZIn1uxYtWuj8888P+Pj3339f9913n0455RR17txZb7zxhtfvzz//fLVo0cL6OT4+XnPnztWoUaPUp08fzZkzR7Nnz9YDDzzg0xCbN2+eLrzwQu4pBQAe4fmSPwBAqPj76vhDhw6Zd955p5mRkWHGxMSYp5xyivnkk09aX+/uIckcM2aM+cYbb5innHKKGRcXZ5522mnm559/XuXzfvrpp+b5559vtmzZ0oyJiTFTUlLMIUOGmAsWLKjW+OfNm2dKMg3DMLds2VKtx/7yyy+mJFOSuWTJEp/f79+/37zuuuvM5s2bm40bNzZzc3PNNWvWmG3atDFHjRplLef5yvOKeT/99NPmSSedZMbFxZn9+vUz8/LyzP79+3t9nbxpln59/OOPP2527drVjIuLM5s2bWqeccYZ5sSJE82CggLTNE1zwYIF5sUXX2xmZGSYsbGxZkZGhnnllVcG9XXk1anTrl27zDFjxpitW7c2Y2JizJYtW5qDBg0y//GPf/jkO3369Cqfu/wYyn+dfLDb1vOV98uWLfNan79t7nQ6zT//+c9my5YtzYSEBHPgwIHmf//7X7NZs2bm73//e6/HL1++3OzTp48ZGxtrZmVlmc8884z1XOW/Sn7p0qXmWWedZSYkJJgZGRnmfffdZ37yySd+6/23v/3NbNOmjRkXF2eeeeaZ5tKlS80zzjjDHDp0qNdywdS7MqtXrzYHDx5sNm7c2GzevLl50003mT/88IMpyXz11Ve9tsVtt91mpqWlmYZh+LzHK6r4unS73eajjz5q5XPaaaeZH330kTlq1CizTZs2ftdx6623mpLMt956y+/vg83b83qtjlWrVplDhgwxExMTzZSUFHPkyJHmzp07g3rsrl27TIfDYb7++us+vwu2prt27bJez7GxsWb37t296uER7L71yJEj5pgxY8zU1FSzcePG5ogRI8yff/7ZlGQ+9thj1nL+XrOmWfr+yM3NNZOTk834+HizQ4cO5ujRo828vDzTNE3znnvuMbt06eJ3ewT73J68a7q/qOy9/dBDD5mSzPz8fCvm7zWxYcMGU5L55JNP+uRe8fmCfd9UxvM54e9fxf25P56cKvtXfl8yatQos1GjRua6deus13SLFi3Mhx56yHS5XF7r/e9//2tKMufPn1/lGACgoTBMswZ3HAUA1EuGYWjMmDF+L5FC3dGQ63TgwAE1bdpUjzzyiP70pz+F9bndbrfS0tJ06aWX+r1sLdrceeedeuWVV7Rz504lJiZGejjVcsMNN2jt2rX64osvAi4XyZp+//33Ou200/TGG29o5MiRtVpXly5ddMEFF+iJJ54I+3MjdMaNG6fFixdr+fLlzJQCgOO4pxQAAIiI8jcY9vDccDsnJ+eEPndhYaHPZX3/+c9/tG/fvhP+3HVBYWGh3njjDf32t7+tdw0pqfQG7suWLdPSpUutWCRrWtlr2Waz+dz7rrqKi4t1+eWXV3pp44l8boTO3r179a9//UuPPPIIDSkAKId7SgEAgIiYNm2apk6dqt/85jdq3LixlixZorfffltDhgxRv379Tuhzf/3117rzzjt12WWXqVmzZvruu+/0yiuvqFu3blXebLs+2717t+bPn68ZM2Zo7969Qd3AuS7KyspSYWGhVyySNX3iiSe0fPlyDRgwQA6HQ3PmzNGcOXN08803q3Xr1rVad2xsrN9vUQzHcyN0mjVr5vf+bgDQ0NGUAgAAEdGjRw85HA498cQTOnjwoHXz80ceeeSEP3fbtm3VunVr/e1vf9O+ffuUmpqqa6+9Vo899lhQN+2vr1avXq2RI0cqPT1df/vb36xvhIwGkazp2WefrXnz5ukvf/mLDh8+rKysLE2YMCEsl6BG8rkBAKgt7ikFAAAAAACAsOOeUgAAAAAAAAg7mlIAAAAAAAAIu3p9Tym3263t27crKSmJb7EAAAAAAACoA0zT1KFDh5SRkSGbrfL5UPW6KbV9+3a+VQQAAAAAAKAO2rJlizIzMyv9fb1uSiUlJUkqTbJJkyYRHg0AAAAAAAAOHjyo1q1bW32bytTrppTnkr0mTZrQlAIAAAAAAKhDqrrVEjc6BwAAAAAAQNjRlAIAAAAAAEDY0ZQCAAAAAABA2NXre0oFy+VyqaSkJNLDgKTY2NiAXwcJAAAAAAAahqhuSpmmqZ07d+rAgQORHgqOs9lsateunWJjYyM9FAAAAAAAEEFR3ZTyNKTS09OVmJhY5V3fcWK53W5t375dO3bsUFZWFvUAAAAAAKABi9qmlMvlshpSzZo1i/RwcFxaWpq2b98up9OpmJiYSA8HAAAAAABESNTe3MdzD6nExMQIjwTleS7bc7lcER4JAAAAAACIpKhtSnlwiVjdQj0AAAAAAIDUAJpSAAAAAAAAqHtoSoXJ1KlTlZKSUq3HHD16VL/97W/VpEkTGYbBtwgCAAAAAICo0SCbUoZhBPw3YcKESA9RkvTaa6/piy++0JdffqkdO3YoOTk5JOvNycnRuHHjQrIuAAAAAACAmojab98LZMeOHdb/p02bpvHjx+vnn3+2Yo0bN47EsHysW7dOnTt3Vrdu3SI9FL+Ki4utG5cDAAAAAABUR4OcKdWyZUvrX3JysgzDsH5OT0/XM888o8zMTMXFxalXr16aO3eu9diNGzfKMAy98847OvvssxUfH69u3bpp0aJF1RpDfn6+srOzdckll6ioqMjn9zk5OXr66ae1ePFiGYahnJwcSVJRUZHuuecenXTSSWrUqJH69OmjhQsXWo/bu3evrrzySp100klKTExU9+7d9fbbb1u/Hz16tBYtWqTnnnvOmhm2ceNGv5cXfvDBB143Jp8wYYJ69eqlf/3rX2rXrp3i4+MlSQcOHNCNN96otLQ0NWnSRAMHDtQPP/xQre0BAAAAAAAalgbZlArkueee09NPP62nnnpKP/74o3Jzc3XRRRfpl19+8Vru3nvv1d13360VK1aob9++uvDCC7V3796gnmPLli0699xz1a1bN82YMUNxcXE+y8ycOVM33XST+vbtqx07dmjmzJmSpLFjx+qrr77SO++8ox9//FGXXXaZhg4dao2vsLBQZ5xxhmbPnq1Vq1bp5ptv1jXXXKNvv/3Wyq9v37666aabtGPHDu3YsUOtW7cOevv8+uuveu+99zRz5kx9//33kqTLLrtMu3fv1pw5c7R8+XKdfvrpGjRokPbt2xf0egEAAAAAQMNCU6qCp556Sn/4wx90xRVXqGPHjnr88cfVq1cvTZ482Wu5sWPH6re//a06d+6sKVOmKDk5Wa+88kqV6//555/Vr18/5ebm6tVXX5Xdbve7XGpqqhITExUbG6uWLVsqNTVVmzdv1quvvqrp06fr3HPPVYcOHXTPPffonHPO0auvvipJOumkk3TPPfeoV69eat++vW677TYNHTpU7777riQpOTlZsbGxSkxMtGaHVTYGf4qLi/Wf//xHp512mnr06KElS5bo22+/1fTp05Wdna1TTjlFTz31lFJSUjRjxoyg1wsAAAAAABqWBnlPqcocPHhQ27dvV79+/bzi/fr187kcrW/fvtb/HQ6HsrOz9d///leS1LVrV23atEmSdO6552rOnDmSpGPHjuncc8/VVVdd5dPkCsbKlSvlcrl06qmnesWLiorUrFkzSZLL5dKjjz6qd999V9u2bVNxcbGKioqUmJhY7efzp02bNkpLS7N+/uGHH3T48GHr+T2OHTumdevWheQ5AQAAAABA9KEpdQJ8/PHHKikpkSQlJCRY8bi4OA0ePFgfffSR7r33Xp100knVWu/hw4dlt9u1fPlyn9lNnpuzP/nkk3ruuec0efJkde/eXY0aNdK4ceNUXFwccN02m02maXrFPDmU16hRI58xtWrVyuu+Vh4V71EFAAAAAADgQVOqnCZNmigjI0NLly5V//79rfjSpUt15plnei379ddf67zzzpMkOZ1OLV++XGPHjpVUOpvIH5vNptdff11XXXWVBgwYoIULFyojIyPo8Z122mlyuVzavXu3zj33XL/LLF26VBdffLGuvvpqSZLb7dbatWvVpUsXa5nY2Fi5XC6vx6WlpenQoUM6cuSI1Xjy3DMqkNNPP107d+6Uw+FQ27Ztg84FAAAAAAA0bNxTqoJ7771Xjz/+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YYJ69eoV6WEAUSsaj23qwmdBsGhK1SO1/UCqTy/MaFXbg6to3GHWxty5czV16lR99NFH2rFjh7p16xby5wjF+4aD6so999xzmjp1atiej1rUP5Xt90J10ovw43gmtMJ5bLBx40YZhhHwXyj36Tt27NCwYcNCtr766p577tGCBQtCtj6OR6MLn5P13y233CK73a7p06dHeigRQVMKQL21bt06tWrVSmeffbZatmwph8P7C0WLi4sjNDIEKzk5mQOmBoz3aPRxuVxyu92RHgZOkNatW2vHjh3Wv7vvvltdu3b1il1++eUhe76WLVvyzVSSGjdurGbNmkV6GABOgKNHj+qdd97Rfffdp3//+99VLh+Nx040parB7XZr0qRJateunRISEtSzZ0/NmDFDUtlf7RYsWKDs7GwlJibq7LPP1s8//+y1jkceeUTp6elKSkrSjTfeqD/+8Y8hm477+uuvKzs7W0lJSWrZsqWuuuoq7d69W1LpX7YGDBggSWratKkMw9Do0aMllXbXb7/9dt13331KTU1Vy5YtNWHChJCMqS6aMWOGunfvroSEBDVr1kyDBw/WkSNHrMuIJk6cqLS0NDVp0kS///3vvd74c+fO1TnnnKOUlBQ1a9ZMF1xwgdatWxeSce3du1dXXnmlTjrpJCUmJqp79+56++23rd+PHj1aixYt0nPPPWf9NXLjxo1Bv/aizejRo3Xbbbdp8+bNMgxDbdu2VU5OjsaOHatx48apefPmys3NlSQ988wz6t69uxo1aqTWrVvr1ltv1eHDh0MyjmXLlun8889X8+bNlZycrP79++u7776zft+2bVtJ0iWXXGKNUyqbKfD666+rbdu2Sk5O1hVXXKFDhw6FZFz1RfnL9zz1Gzt2rJKTk9W8eXP9+c9/VvkviW3btq0effRRXX/99UpKSlJWVpb+8Y9/1Oi5PX/xf+edd3T22WcrPj5e3bp106JFi6xlXC6XbrjhBmu/37FjRz333HN+c3jqqafUqlUrNWvWTGPGjFFJSUmNxlXfzJ49W8nJyXrzzTe1cuVKDRw40Nq/3nzzzV7vNc+2+utf/6qMjAx17NgxZONYt26dLr74YrVo0UKNGzdW7969NX/+fK9lgnn9fPnll+rVq5fi4+OVnZ2tDz74IKovD67qfbd//35de+21atq0qRITEzVs2DD98ssv1uM9f4n/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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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QkKCfv/993SfOXbsmHr06KFixYopJiZGjz/+eIbHyZtuuknLly9P950BQGHFSCkAyOeMMbr11lu1ePFiPfjgg2rcuLG+//57DRkyRAcPHtSbb77pNf3SpUs1ffp0PfbYYwoJCdE777yjTp06ac2aNapfv362y5s8ebLeeecdGWNUp04dDR06VPfcc0+Wn+nSpYsiIiI0Y8YMtW7d2uu96dOnq169epkuu2nTpqpatapmzJihXr16pftsiRIl1LFjR0nS2rVrtXLlSt11112qUKGC9u7dq4kTJ6pNmzbasmWLwsPDs+1fdlwul2699VYtX75cDz/8sOrUqaNNmzbpzTff1I4dO/T1119Lkn777TfdcsstatiwoV544QWFhIRo165dmV5opuVLnv766y9dd911nqJAbGysvvvuOz344IM6ffq0BgwY4DXPUaNGKTg4WIMHD1ZCQoKCg4N97ndOv9v+/furRIkSGj58uPbu3atx48apX79+Xs9keeaZZ/Tqq6+qa9eu6tixo3755Rd17NgxV89bmTx5siIiIjRo0CBFREToxx9/1LBhw3T69Gm99tprnukmTpyofv36qVWrVho4cKD27t2r7t27q0SJEqpQoYJnOl/znZmZM2fq/Pnz+s9//qOYmBitWbNGEyZM0B9//KGZM2dKkh555BEdOnQow9tyfXX69Gl9+OGHuvvuu9WnTx+dOXNGH330kTp27Kg1a9aocePGstlsuvfee/Xqq6/q+PHjio6O9nz+//7v/3T69GnPKMic9vvHH3/UjBkz1K9fP5UsWTJdESg7f/75pySpZMmS2U67cuVKXX311enic+fO1Z133qkGDRpo9OjROnHihB588EGVL1/ea7qc7DMfeughTZkyRf/85z/1xBNPaPXq1Ro9erS2bt2qr776yjNdbtblH3/8UZ07d1aTJk00fPhw2e12TZo0SW3bttX//vc/XXvttV7f04YNG/TCCy/keNnnz59X69atdfDgQT3yyCOqVKmSVq5cqWeeeUaHDx/WuHHjvKafOnWqEhMT1b9/fx0/flyvvvqqevToobZt22rJkiV66qmntGvXLk2YMEGDBw9OVwzftWuX7rnnHj3yyCO699579frrr6tr165699139eyzz+rRRx+VJI0ePVo9evTQ9u3bPYWkhQsX6vfff9f999+vMmXK6LffftP777+v3377TT/99FOOi7ZSysPxz54969M6lpms1tMePXqocuXKGj16tH766Sf997//1YkTJ/TJJ594TdekSRMZY7Ry5Urdcsstl90WACgwDAAgX+nbt69Jvfv++uuvjSTz4osvek33z3/+09hsNrNr1y5PTJKRZNatW+eJ7du3z4SGhprbbrst22W3aNHCjBs3znzzzTdm4sSJpn79+kaSeeedd7L97N13321KlSplkpOTPbHDhw8bu91uXnjhhSw/+8wzz5giRYqY48ePe2IJCQmmePHi5oEHHvDEzp8/n+6zq1atMpLMJ5984oktXrzYSDKLFy/2xOLi4kyvXr3Sfb5169amdevWnteffvqpsdvt5n//+5/XdO+++66RZFasWGGMMebNN980kszRo0ez7FtGfM3Tgw8+aMqWLWuOHTvm9fm77rrLREVFeb4Pd3+rVq2a4XeUWRuGDx/uee3rdztp0iQjybRv3964XC5PfODAgcbhcJiTJ08aY4z5888/TVBQkOnevbvXPEeMGGEkeeVi+PDhJqNTFvey9uzZk2U7H3nkERMeHm4uXrxojElZd2JiYsw111xjkpKSPNNNnjzZSLqsfGcmo/aMHj3a2Gw2s2/fPk8s7XadnbTrZXJysklISPCa5sSJE6Z06dJe28j27duNJDNx4kSvaW+99VZTuXJlT85y0m9Jxm63m99++83n9qfVvn17U6xYMXPixIksp0tKSjI2m8088cQT6d5r0KCBqVChgjlz5owntmTJEiPJxMXFeWK+7jM3btxoJJmHHnrIa7rBgwcbSebHH380xuRsXU6773G5XKZGjRqmY8eOXtvL+fPnTZUqVcxNN93kNc+PPvrIhIWFedarnCx71KhRpmjRombHjh1e0z799NPG4XCY/fv3G2OM2bNnj5FkYmNjPdurMSn7YUmmUaNGXtvN3XffbYKDgz3blzEp+1NJZuXKlZ7Y999/bySZsLAwr3X/vffeS7c/zmi7+eKLL4wks2zZsnTv+WLUqFFGklm0aNFlfT4+Pt6UKlXKtGrVyivu3j/deuutXvFHH33USDK//PKLV/zQoUNGknnllVcuqx0AUNBw+x4A5HPz5s2Tw+HQY4895hV/4oknZIzRd9995xVv3ry5mjRp4nldqVIldevWTd9//32GtziltmLFCj3++OO69dZb9e9//1vr169X/fr19eyzz3rdjpSRO++8U0eOHPH6lcBZs2bJ5XLpzjvvzPazSUlJmj17tie2YMECnTx50uuzYWFhnv8nJSUpPj5e1atXV/HixfXzzz9nuQxfzZw5U3Xq1FHt2rV17Ngxz7+2bdtKkud2qeLFi0tKuZ0s9a0xvsouT8YYffnll+ratauMMV5t6dixo06dOpWuz7169fL6jnIip9/tww8/7DWaoVWrVnI6ndq3b5+klF/HSk5O9oyWcOvfv/9ltS+jdp45c0bHjh1Tq1atdP78eW3btk1Syi2h8fHx6tOnj4KCLg0a79mzp0qUKOE1P1/z7Ut7zp07p2PHjqlFixYyxqS7ZSk3HA6HZ+Sby+XS8ePHlZycrKZNm3rlp2bNmmrWrJmmTp3qiR0/flzfffedevbs6clZTvvdunVr1a1b97La/vLLL+uHH37QmDFjPNtNZo4fPy5jTLo8HTp0SJs2bdJ9992niIgIr3Y1aNDAa1pf95nz5s2TJA0aNCjddFLKyCwpd+vyxo0btXPnTt1zzz2Kj4/3fM/nzp1Tu3bttGzZMq/9x7x583TjjTd61qucLHvmzJlq1aqVSpQo4ZXT9u3by+l0prs9+I477lBUVJTndbNmzSSlPOcw9XbTrFkzJSYm6uDBg16fr1u3rpo3b57u823btlWlSpXSxVPfEpd6u7l48aKOHTum6667TpIua1++bNkyjRw50jPSK6dcLpd69uypkydPasKECRlO07dvX6/X7hy41yM397p77NixHLcDAAoibt8DgHxu3759KleunCIjI73i7l/jcxcB3GrUqJFuHjVr1tT58+d19OjRbH+VKLXg4GD169fPU6C6/vrrM53W/byU6dOnq127dpJSbr9r3LixatasmeVyGjVqpNq1a2v69Ol68MEHPZ8tWbKk1wXGhQsXNHr0aE2aNEkHDx70ej7MqVOnfO5XVnbu3KmtW7cqNjY2w/ePHDkiKaWQ9uGHH+qhhx7S008/rXbt2un222/XP//5T58eLp5dnux2u06ePKn3339f77//fpZtcatSpUq2y81MTr/b1Bed0qULsRMnTki6tF5Wr17da7ro6Oh0BYec+O233zR06FD9+OOP6Z6Z5W5nZssOCgpKd9uZr/nOzP79+zVs2DB9++23nr6nbY+/TJkyRWPHjtW2bduUlJTkiafN+3333ad+/fpp3759iouL08yZM5WUlKR//etfnmly2u/LXbemT5+uoUOH6sEHH9R//vMfnz9n0jz7KbOcumOpCxm+7jP37dsnu92ebp5lypRR8eLFvabLaNm+rMs7d+6UpHS3Jqd26tQplShRQklJSVq4cKFGjx7t1Rdfl71z5079+uuvPuc07TbsLlBVrFgxw3ja9Ts3nz9+/LhGjhypadOmpWuXe7tJTExM91ym2NjYdL/IuG3bNt12222qX7++PvzwQ6/3jh8/rsTERM/rsLAwr0KcW//+/TV//nx98sknatSoUbr3pfT77GrVqslut6d77p573b2cWxABoCCiKAUAyBX3BUZ2D20NCQlR9+7d9dVXX+mdd97RX3/9pRUrVujll1/2aTl33nmnXnrpJR07dkyRkZH69ttvdffdd3v9xb5///6aNGmSBgwYoObNmysqKko2m0133XVXtqOVMrtAcDqdXhc5LpdLDRo00BtvvJHh9O7vIywsTMuWLdPixYs1d+5czZ8/X9OnT1fbtm21YMGCXP+Uvbs/9957b6YXtA0bNvR6fbmjpKScf7eZ9S9tMcEXWeUmtZMnT6p169YqVqyYXnjhBVWrVk2hoaH6+eef9dRTT13WiDVf851Z+2666SYdP35cTz31lGrXrq2iRYvq4MGD6t2792W1JzOfffaZevfure7du2vIkCEqVaqUHA6HRo8erd27d3tNe9ddd2ngwIGaOnWqnn32WX322Wdq2rSpatWq5Zkmp/2+nHVr4cKFuu+++9SlSxe9++67Pn0mOjpaNpstXQHkSrqSxQP3OvDaa6+pcePGGU7jHvm1fPlynT59WjfffPNlL+umm27Sk08+meH7af84kNk27Ou2nZvP9+jRQytXrtSQIUPUuHFjRUREyOVyqVOnTp7vbOXKlbrxxhu95rFnzx6vwvKBAwfUoUMHRUVFad68eekKkbfffrvXD3D06tVLkydP9ppm5MiReueddzRmzBivwm12Mltv3Otubp5tBQAFCUUpAMjn4uLi9MMPP+jMmTNeJ9zuW5XS/oKQ+y/zqe3YsUPh4eGZ/gU9K+5bLnz57J133qkpU6Zo0aJF2rp1q4wx2d66l/qzI0eO1JdffqnSpUvr9OnTuuuuu7ymmTVrlnr16qWxY8d6YhcvXtTJkyeznX+JEiUynG7fvn2qWrWq53W1atX0yy+/qF27dtlerNrtdrVr107t2rXTG2+8oZdfflnPPfecFi9enO3P3vuSp8jISDmdzmzn5Q+5+W4z4l4vd+3a5TXKJj4+Pl3BwT3i4+TJk163d6UdBbhkyRLFx8dr9uzZuuGGGzzxPXv2ZLrs1Be1ycnJ2rt3r1cxLyf5TmvTpk3asWOHpkyZovvuu88TX7hwYbppc1v4mDVrlqpWrarZs2d7zWv48OHppo2OjlaXLl00depU9ezZUytWrEj3kOvc9NsXq1ev1m233aamTZtqxowZXsXlrAQFBalatWpZ5jSttDFf95lxcXFyuVzauXOnZxSVlPIDAydPnvSazr2c7NbltNy/IFisWLFst+O5c+eqbt26XkWXnCy7WrVqOnv2rCX7i9w4ceKEFi1apJEjR2rYsGGeeNp9YqNGjdJtS6lH+sbHx6tDhw5KSEjQokWLVLZs2XTLGjt2rNf3VK5cOa/33377bY0YMUIDBgzQU089lWW7d+7c6ZWDXbt2yeVypRt96V53U69TAFCY8UwpAMjnbr75ZjmdTr311lte8TfffFM2m02dO3f2iq9atcrrVpYDBw7om2++UYcOHbIcvXP06NF0sTNnzmjcuHEqWbKk1/OPMtO+fXtFR0dr+vTpmj59uq699lqfb/upU6eOGjRo4Pls2bJlvQoPUspf4NP+tX7ChAnZPitLSrlg++mnn7xu5ZgzZ44OHDjgNV2PHj108OBBffDBB+nmceHCBZ07d05SxiPH3CMh0v6cfEayy5PD4dA//vEPffnll9q8eXO6z2eUr9zIzXebkXbt2ikoKEgTJ070iqddj6VLF+6pn3lz7tw5TZkyJV0bJe8RF4mJiXrnnXe8pmvatKliYmL0wQcfKDk52ROfOnVqugt5X/OdkYzaY4zR+PHj001btGhRSbrsIl9Gy1q9erVWrVqV4fT/+te/tGXLFg0ZMkQOhyNdgTc3/c7O1q1b1aVLF1WuXFlz5szJ8Sir5s2ba926dV6xcuXKqX79+vrkk0909uxZT3zp0qXatGmT17S+7jPdI5LSFuzco8e6dOkiKWfrclpNmjRRtWrV9Prrr3u12y31djxv3jzPMt1ysuwePXpo1apV+v7779O9d/LkSa9tIZAyWpel9HkoUaKE2rdv7/UvNDRUUsr+4eabb9bBgwc1b968DG+HllK+/9SfT/1cNPevn/bs2TPTEYOpvf32216v3c+eSnsMXr9+vWw2m9fztgCgMGOkFADkc127dtWNN96o5557Tnv37lWjRo20YMECffPNNxowYIDngt6tfv366tixox577DGFhIR4LthHjhyZ5XLefvttff311+ratasqVaqkw4cP6+OPP9b+/fv16aefeh6ynJUiRYro9ttv17Rp03Tu3Dm9/vrrOerrnXfeqWHDhik0NFQPPvhgumcz3XLLLfr0008VFRWlunXratWqVfrhhx8UExOT7bwfeughzZo1S506dVKPHj20e/duffbZZ+m+v3/961+aMWOG/v3vf2vx4sVq2bKlnE6ntm3bphkzZuj7779X06ZN9cILL2jZsmXq0qWL4uLidOTIEb3zzjuqUKFCls/ecvMlT2PGjNHixYvVrFkz9enTR3Xr1tXx48f1888/64cffsj2lsqcyM13m5HSpUvr8ccf19ixY3XrrbeqU6dO+uWXX/Tdd9+pZMmSXqNzOnTooEqVKunBBx/0FFE+/vhjxcbGav/+/Z7pWrRooRIlSqhXr1567LHHZLPZ9Omnn6a7uA0ODtaIESPUv39/tW3bVj169NDevXs1efJkVatWzWvZvuY7I7Vr11a1atU0ePBgHTx4UMWKFdOXX36Z4egZd1H3scceU8eOHTMsFGXllltu0ezZs3XbbbepS5cu2rNnj959913VrVs3w2JHly5dFBMTo5kzZ6pz584qVaqU1/u56XdWzpw5o44dO+rEiRMaMmSI52HhbtWqVcv2Yr1bt2769NNPtWPHDq9bzl5++WV169ZNLVu21P33368TJ07orbfeUv369b2+A1/3mY0aNVKvXr30/vvve24NXbNmjaZMmaLu3bt7RtnlZF1Oy26368MPP1Tnzp1Vr1493X///SpfvrwOHjyoxYsXq1ixYvq///s/7dmzR1u3bk1XfMrJsocMGaJvv/1Wt9xyi3r37q0mTZro3Llz2rRpk2bNmqW9e/fmiVvKihUrphtuuEGvvvqqkpKSVL58eS1YsCDd6Lis9OzZU2vWrNEDDzygrVu3auvWrZ73IiIi1L179yw/v2bNGt13332KiYlRu3btvH4YQErZ16QeQSuljIBy52DVqlX67LPPdM8996R7BtXChQvVsmXLy953AkCBY+VP/QEAci+jn44/c+aMGThwoClXrpwpUqSIqVGjhnnttde8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l19+0dmzZz3Ld7tw4YJ2797tl2UCAAAAAICCh6LUFTBv3jwlJSVJksLCwjzxkJAQtW/fXnPmzNGQIUNUvnz5HM337NmzcjgcWr9+fbrRTe6Hs7/22msaP368xo0bpwYNGqho0aIaMGCAEhMTs5y33W6XMcYr5u5DakWLFk3XprJly3o918ot7TOqAAAAAAAA3ChKpVKsWDGVK1dOK1asUOvWrT3xFStW6Nprr/Wa9qefftINN9wgSUpOTtb69evVr18/SSmjiTJit9v16aef6p577tGNN96oJUuWqFy5cj6376qrrpLT6dSRI0fUqlWrDKdZsWKFunXrpnvvvVeS5HK5tGPHDtWtW9czTXBwsJxOp9fnYmNjdebMGZ07d85TeHI/MyorV199tf78808FBQWpcuXKPvcFAAAAAAAUbjxTKo0hQ4bolVde0fTp07V9+3Y9/fTT2rhxox5//HGv6d5++2199dVX2rZtm/r27asTJ07ogQceyHb+DodDU6dOVaNGjdS2bVv9+eefPretZs2a6tmzp+677z7Nnj1be/bs0Zo1azR69GjNnTtXklSjRg0tXLhQK1eu1NatW/XII4/or7/+8ppP5cqVtXr1au3du1fHjh2Ty+VSs2bNFB4ermeffVa7d+/W559/rsmTJ2fbpvbt26t58+bq3r27FixYoL1792rlypV67rnntG7dOp/7BgAAAAAACheKUmk89thjGjRokJ544gk1aNBA8+fP17fffqsaNWp4TTdmzBiNGTNGjRo10vLly/Xtt9+qZMmSPi0jKChIX3zxherVq6e2bdvqyJEjPrdv0qRJuu+++/TEE0+oVq1a6t69u9auXatKlSpJkoYOHaqrr75aHTt2VJs2bVSmTBl1797dax6DBw+Ww+FQ3bp1FRsbq/379ys6OlqfffaZ5s2bpwYNGuiLL77QiBEjsm2PzWbTvHnzdMMNN+j+++9XzZo1ddddd2nfvn0qXbq0z/0CAAAAAACFi82kfZBQPnL69GlFRUXp1KlTKlasmNd7Fy9e1J49e1SlShWFhob6bZl79+5VlSpVtGHDBjVu3Nhv8y0srlReAAAAAOBytI7s4pf5LD0z1y/zAQqCrOo1qTFSCgAAAAAAAJajKAUAAAAAAADL8et7OVS5cmXl4zseAQAAAAAA8gRGSgEAAAAAAMByFKUAAAAAAABg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uXOn5/Puv8R/++23qlu3rkJCQrR///5ctYnzGd9ldm4gSevXr8/0vMCX7SUjDodDZcqU8fyLiIhQUFCQVywsLMwz/ffff686deooIiJCnTp10uHDhz3vZXf8lArP6Nb3339f5cqVS1fQ7datmx544IEMRxd++OGHqlOnjkJDQ1W7dm298847fmkL56PZc7lcevXVV1W9enWFhISoUqVKeumllzznFTNmzFCrVq0UFhama665Rjt27NDatWvVtGlTRUREqHPnzjp69KhnfladR/jjOJmYmKh+/fqpbNmyCg0NVVxcnEaPHu3XduYFqc9tsjomSSnHyZ49eyo2NlZhYWGqUaOGJk2a5POyZs6cqbp16+rpp5/WsmXLdODAAa/3Mzt3yq5dbitWrFDDhg0VGhqq6667Tps3b77Mb+XKoSiVA6NHj9Ynn3yid999V7/99psGDhyoe++91+sC5rnnntPYsWO1bt06BQUF6YEHHvC8N3XqVL300kt65ZVXtH79elWqVEkTJ070W/uSkpI0atQo/fLLL/r666+1d+9ez4laxYoV9eWXX0qStm/frsOHD3tdWE2ZMkVFixbV6tWr9eqrr+qFF17QwoUL/da2vOLw4cO6++679cADD2jr1q1asmSJbr/9ds/J96JFizzxL774QrNnz9bIkSM9nz937pwGDRqkdevWadGiRbLb7brtttv88lfhixcvqkmTJpo7d642b96shx9+WP/617+0Zs0aSSm3OTVv3lx9+vTx/DWyYsWKns9nte4VROPHj9cLL7ygChUq6PDhw1q7dq2klHU5ODhYK1as0LvvvitJstvt+u9//6vffvtNU6ZM0Y8//qgnn3zSL+04c+aMevXqpeXLl+unn35SjRo1dPPNN3uKS+52TZo0yaudUsrJwddff605c+Zozpw5Wrp0qcaMGeOXduVXU6ZMUVBQkNasWaPx48frjTfe0Icffug1zdixY9W0aVNt2LBBjz76qP7zn//k6qR3yJAheuKJJ7RhwwY1b95cXbt2VXx8vKSUE88KFSpo5syZ2rJli4YNG6Znn31WM2bM8JrH4sWLtXv3bi1evFhTpkzR5MmTLb0tMVA+//xz3X333Zo6daq6d++ujh07qkSJElq7dq1mzpypH374Qf369fP6zKJFi7R9+3YtXLhQc+bM8Vtbzp49q5tvvlmLFi3S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cOCANmzYoB9//HHE8wcAAPCG//k7AAAAgBtdbW2tCgsLdfbsWXV3d6u/v1+///67ent7FRwcLEkKDg52JaQkaebMmfr5558lSV1dXbp06ZISEhJc5UajUbGxsRoYGPBqLK2trVq8eLHbZxISEtySVC0tLWpoaHCbGXX16tVB5wQAADCeWL4HAAAwjLa2NqWkpGjevHk6dOiQmpqatGvXLknSn3/+6ap3yy23uH0uKChInk5INxgMgz5z5coVj2MZSU9PjzZt2qTm5mbX6+uvv9b333+vSZMmeRQzAADAWDFTCgAAYBhNTU0aGBjQ1q1bZTD89XveRx995NExbr/9ds2YMUONjY2yWq2S/pqZ9NVXX8lisbjq3X333W6bo3d3d+v8+fMexTJnzhw1Nja6vffvv2NiYtTa2qrIyEiPzgMAAMCbSEoBAAD8raurS83NzW7v3XXXXbpy5Yp27Nih1NRUNTQ0qLS01ONjr127VoWFhYqMjNQDDzygHTt26PLlywoKCnLVWbhwoRwOh1JTUxUSEqKCggIZjUZXeWRk5IixrF27VlarVXa7Xampqaqrq9ORI0fc2ikoKFBKSoruueceLVmyRAaDQS0tLTpz5ozefvttj88NAABgLFi+BwAA8LcTJ04oOjra7VVeXi673a7i4mKZzWZVVFSosLDQ42Pn5eVp2bJlysjI0Pz58zV16lTZbDa35XL5+flKTExUSkqKnnzySaWlpbntUxUVFTViLI899phKS0tlt9sVFRWlzz//XDk5OW7t2Gw2VVdX69ixY4qPj9cjjzyi9957T/fee+8YvjUAAICx4el7AAAAfjAwMCCTyaSlS5fqrbfeGte2XnjhBZ09e1b19fXj2g4AAIAnWL4HAADgAxcuXNCxY8eUmJioP/74Qzt37tT58+e1fPlyr7dVUlKi5ORkTZkyRUeOHNH+/fu1e/dur7cDAABwPUhKAQAA+IDBYJDD4VBubq6cTqfMZrNqa2tlMpm83taXX36pLVu26LffflNERIS2b9+u1atXe70dAACA68HyPQAAAAAAAPgcG50DAAAAAADA50hKAQAAAAAAwOdISgEAAAAAAMDnSEoBAAAAAADA50hKAQAAAAAAwOdISgEAAAAAAMDnSEoBAAAAAADA50hKAQAAAAAAwOdISgEAAAAAAMDn/g9MpFWOI6EoogAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAihtJREFUeJzs3Xd8U/X+x/F3RictLZRS9hTZQykiohcUpCAi6L0KiAqK6L0CigpuWQ5ww0XFLYgoSxw/9hBQQJGpoAKCLGWXUWZHcn5/cBOaJmlTGk7b9PV8PHg8yCdnfL75JCcnn35zYjEMwxAAAAAAAABgImthJwAAAAAAAICSh6YUAAAAAAAATEdTCgAAAAAAAKajKQUAAAAAAADT0ZQCAAAAAACA6WhKAQAAAAAAwHQ0pQAAAAAAAGA6mlIAAAAAAAAwHU0pAAAAAAAAmI6mFACgxFu6dKksFouWLl1a2KkUWRaLRcOHDy/sNOBH27Zt1bZt28JOo9Ds2bNHkZGRWrFiRWGnki8TJkyQxWLRzp07CzsVBEmfPn0UExOT53KpqakqVaqU5syZY0JWAFB00ZQCgGLGYrEE9M+MBou/fY8ePfqi7xsIZXPmzCkxTcA+ffr4PI7Uq1cv4G2MHDlSLVu2VOvWrS9ipkXT0aNHZbfbNW3atMJOpciaOXOmunfvrlq1aik6Olp169bVo48+qmPHjgW0/p49ezRixAhdccUVKlOmjMqVK6e2bdtq0aJFF5xTQkKC7r33Xj377LMXvA0ACAX2wk4AAJA/kyZN8rj9ySefaOHChV7x+vXrm5LP9ddfr7vuussjdtlll5mybyBUzZkzR2+99VaJaUxFRETogw8+8IjFxcUFtO6hQ4c0ceJETZw48WKkVuTNnz9fFotFHTp0KOxUiqz77rtPlSpV0h133KFq1app48aNevPNNzVnzhytW7dOUVFRua7/9ddf66WXXlK3bt3Uu3dvZWVl6ZNPPtH111+vjz76SHffffcF5fXvf/9b//3vf/Xtt9/quuuuu6BtAEBxR1MKAIqZO+64w+P2jz/+qIULF3rFzXLppZcW2r4RPGfPnlV4eLisViZRI7icTqcyMjIUGRnpdxm73X7Bx5FPP/1UdrtdXbp0udAUi7U5c+aodevWio+PL+xUiqwZM2Z4fb21efPm6t27tyZPnqx777031/WvvfZa7d69W+XKlXPH/v3vf6tZs2YaOnToBTel6tevr0aNGmnChAk0pQCUWJx5AkAIOnXqlB599FFVrVpVERERqlu3rl599VUZhuGxnMVi0YABAzR58mTVrVtXkZGRat68ub777rt87e/MmTM6e/ZswMvPmDFDFotFy5Yt87rv3XfflcVi0aZNm3yuu2bNGlksFp+zIlwzBmbNmiVJ2rVrlx544AHVrVtXUVFRSkhI0K233hrQ9Vtq1KihPn36eMV9XbsnPT1dw4YN0yWXXKKIiAhVrVpVjz32mNLT0z2WW7hwoa6++mrFx8crJiZGdevW1VNPPZVnLvmp099//6177rlHSUlJioiIUMOGDfXRRx95LOO6htaUKVP0zDPPqHLlyoqOjlZaWlqeubgE+ti6rpmzYsUKPfLII0pMTFSpUqV0880369ChQx7LOp1ODR8+XJUqVVJ0dLSuvfZa/fbbb161GD58uCwWi1dOvq7P8/XXX6tz586qVKmSIiIiVLt2bT333HNyOBxe67/11luqVauWoqKidMUVV+j7778vUL19+f7773XrrbeqWrVq7nUffvhhnTlzxr1Mnz599NZbb0ny/IpsfmRkZGjo0KFq3ry54uLiVKpUKV1zzTVasmSJexnDMFSjRg117drVa/2zZ88qLi5O999/f77Hnf352rBhQ0VERGjevHl55uxwOPL1HHT56quv1LJlS5/X8Qm0pgcPHlTfvn2VlJSkyMhINW3a1OcxJtBj65kzZ/Tggw+qXLlyio2N1U033aS///474GuzzZ07V9dcc41KlSql2NhYde7cWb/++qvXck6nU/PmzVPnzp0vaN/5OV5MmzZNI0aMUOXKlRUbG6t//etfOn78uNLT0zVo0CCVL19eMTExuvvuu/0+J6ZPn64GDRooKipKrVq10saNGyWdO+5fcsklioyMVNu2bb2OI4G8bnLj63prN998syTp999/z3P9hg0bejSkpHOz+2644Qb99ddfOnHihNc6f/75p1JSUlSqVClVqlRJI0eO9HqeSOdmG//f//2fz/sAoCRgphQAhBjDMHTTTTdpyZIl6tu3r5o1a6b58+dryJAh+vvvv/XGG294LL9s2TJNnTpVDz74oCIiIvT222+rY8eO+umnn9SoUaM89zdhwgS9/fbbMgxD9evX1zPPPKPbb78913U6d+6smJgYTZs2TW3atPG4b+rUqWrYsKHffScnJ6tWrVqaNm2aevfu7bVumTJllJKSIklavXq1Vq5cqR49eqhKlSrauXOnxo8fr7Zt2+q3335TdHR0nuPLi9Pp1E033aTly5frvvvuU/369bVx40a98cYb2rp1q7766itJ0q+//qobb7xRTZo00ciRIxUREaFt27YFfGHmQOp04MABXXnlle4PgImJiZo7d6769u2rtLQ0DRo0yGObzz33nMLDwzV48GClp6crPDw84HHn97EdOHCgypQpo2HDhmnnzp0aM2aMBgwYoKlTp7qXefLJJ/Xyyy+rS5cuSklJ0c8//6yUlJR8NTxzmjBhgmJiYvTII48oJiZG3377rYYOHaq0tDS98sor7uXGjx+vAQMG6JprrtHDDz+snTt3qlu3bipTpoyqVKniXi7Qevszffp0nT59Wv/5z3+UkJCgn376SePGjdNff/2l6dOnS5Luv/9+7d271+fXcgOVlpamDz74QD179lS/fv104sQJffjhh0pJSdFPP/2kZs2ayWKx6I477tDLL7+sI0eOqGzZsu71/+///k9paWnu2Uv5Hfe3336radOmacCAASpXrpxq1KiRa76nT59W6dKldfr0aZUpU0Y9e/bUSy+9lOcFozMzM7V69Wr95z//8bov0JqeOXNGbdu21bZt2zRgwADVrFlT06dPV58+fXTs2DE99NBDkvJ3bO3Tp4+mTZumO++8U1deeaWWLVvm0TjKzaRJk9S7d2+lpKTopZde0unTpzV+/HhdffXVWr9+vcdjuXr1ah06dEg33HBDvved3+PFqFGjFBUVpSeeeELbtm3TuHHjFBYWJqvVqqNHj2r48OH68ccfNWHCBNWsWVNDhw71WP/777/XN998o/79+7u3d+ONN+qxxx7T22+/rQceeEBHjx7Vyy+/rHvuuUfffvute91AXjf5tX//fknyajbldxvR0dFexzuHw6GOHTvqyiuv1Msvv6x58+Zp2LBhysrK0siRIz2Wbd68ud544w39+uuvAb3nAkDIMQAAxVr//v2N7Ifzr776ypBkPP/88x7L/etf/zIsFouxbds2d0ySIclYs2aNO7Zr1y4jMjLSuPnmm/Pc91VXXWWMGTPG+Prrr43x48cbjRo1MiQZb7/9dp7r9uzZ0yhfvryRlZXlju3bt8+wWq3GyJEjc133ySefNMLCwowjR464Y+np6UZ8fLxxzz33uGOnT5/2WveHH34wJBmffPKJO7ZkyRJDkrFkyRJ3rHr16kbv3r291m/Tpo3Rpk0b9+1JkyYZVqvV+P777z2We+eddwxJxooVKwzDMIw33njDkGQcOnQo17H5Emid+vbta1SsWNE4fPiwx/o9evQw4uLi3I+Ha7y1atXy+Rj5y2HYsGHu24E+th9//LEhyWjfvr3hdDrd8Ycfftiw2WzGsWPHDMMwjP379xt2u93o1q2bxzaHDx9uSPKoxbBhwwxfpzCufe3YsSPXPO+//34jOjraOHv2rGEY5547CQkJRosWLYzMzEz3chMmTDAkXVC9/fGVz6hRowyLxWLs2rXLHcv5us5LzudlVlaWkZ6e7rHM0aNHjaSkJI/XyJYtWwxJxvjx4z2Wvemmm4waNWq4a5afcUsyrFar8euvvwaU+xNPPGE8/vjjxtSpU43PP//c6N27tyHJaN26tUc9fNm2bZshyRg3bpxHPD81HTNmjCHJ+PTTT92xjIwMo1WrVkZMTIyRlpZmGEbgx9a1a9cakoxBgwZ5LNenTx+v11HO5+yJEyeM+Ph4o1+/fh7r7t+/34iLi/OKP/vss0b16tXdt/Oz7/weLxo1amRkZGS4l+vZs6dhsViMTp06eazfqlUrj5wM49xzIiIiwuO1+e677xqSjAoVKrgfY8M4d3wP5HXs63WTH3379jVsNpuxdevWC1r/jz/+MCIjI40777zTI+56/g4cONAdczqdRufOnY3w8HCv94CVK1cakoypU6deUB4AUNzx9T0ACDFz5syRzWbTgw8+6BF/9NFHZRiG5s6d6xFv1aqVmjdv7r5drVo1de3aVfPnz/f5FafsVqxYoYceekg33XST/v3vf2vt2rVq1KiRnnrqqTy/VtG9e3cdPHjQ41cCZ8yYIafTqe7du+e5bmZmpmbOnOmOLViwQMeOHfNYN/vFazMzM5WamqpLLrlE8fHxWrduXa77CNT06dNVv3591atXT4cPH3b/c10fxPV1Kdf1Xr7++ms5nc587yevOhmGoS+++EJdunSRYRgeuaSkpOj48eNeY+7du3eeF/j1J7+P7X333efxFbRrrrlGDodDu3btkiQtXrxYWVlZeuCBBzzWGzhw4AXl5yvPEydO6PDhw7rmmmt0+vRpbd68WdK5r4SmpqaqX79+stvPTyLv1auXypQp47G9QOsdSD6nTp3S4cOHddVVV8kwDK1fv75AY83OZrO5Z745nU4dOXJEWVlZSk5O9qjPpZdeqpYtW2ry5Mnu2JEjRzR37lz16tXLXbP8jrtNmzZq0KBBQLmOGjVKo0eP1m233aYePXpowoQJeuGFF7RixQrNmDEj13VTU1MlyatO+anpnDlzVKFCBfXs2dMdCwsL04MPPqiTJ0+6v2Yc6LHV9VXFC3kuL1y4UMeOHVPPnj09HmebzaaWLVt6Pc5z5szxmAUV6L4v5Hhx1113KSwszH27ZcuWMgxD99xzj8dyLVu21J49e5SVleURb9eunccsr5YtW0qS/vnPfyo2NtYr/ueff7pjwX7dfPbZZ/rwww/16KOPqk6dOvle//Tp07r11lsVFRXl99dmBwwY4P6/azZaRkaG1y/2uZ6Phw8fznceABAKaEoBQIjZtWuXKlWq5HGSL53/NT5XE8DF1wn5pZdeqtOnT3td8ycv4eHhGjBggI4dO6a1a9fmumzHjh0VFxfn8fWtqVOnqlmzZrr00ktzXbdp06aqV6+e17rlypXzuFjsmTNnNHToUPf1X8qVK6fExEQdO3ZMx48fz9fY/Pnjjz/066+/KjEx0eOfawwHDx6UdK6R1rp1a917771KSkpSjx49NG3atIAbVHnV6dChQzp27Jjee+89r1xcF+F15eJSs2bNCx53fh/batWqedx2fRA7evSopPPPy0suucRjubJly3o1EfLj119/1c0336y4uDiVLl1aiYmJ7q+kufL0t2+73e71tbNA6+3P7t271adPH5UtW1YxMTFKTEx0f4U1WM9Jl4kTJ6pJkyaKjIxUQkKCEhMTNXv2bK/93HXXXVqxYoX7cZg+fboyMzN15513upfJ77gL8tySpIcfflhWq9XrA7w/Ro7r8eSnprt27VKdOnW8LvKf85gZ6LF1165dslqtXo9Bzlx8+eOPPyRJ1113nddjvWDBAo/Hef/+/Vq3bp1HUyrQfV/I8SLna9j164hVq1b1ijudTq/nWX7Wl84fG6TAXjdnzpzR/v37Pf758v3336tv375KSUnRCy+84PW4ZF//5MmTXus7HA716NFDv/32m2bMmKFKlSp5LWO1WlWrVi2PmOu1kvN6Wa7nbn6vGwcAoYJrSgEAgsr1AePIkSO5LhcREaFu3brpyy+/1Ntvv60DBw5oxYoVevHFFwPaT/fu3fXCCy/o8OHDio2N1TfffKOePXt6zIoYOHCgPv74Yw0aNEitWrVSXFycLBaLevTokWczyN8HBIfDIZvN5r7tdDrVuHFjvf766z6Xdz0eUVFR+u6777RkyRLNnj1b8+bN09SpU3XddddpwYIFHtu8EK7x3HHHHV7X2nJp0qSJx+0LnSUl5f+x9Te+nM2EQORWm+yOHTumNm3aqHTp0ho5cqRq166tyMhIrVu3To8//vgFzVgLtN7+8rv++ut15MgRPf7446pXr55KlSqlv//+W3369LmgfPz59NNP1adPH3Xr1k1DhgxR+fLlZbPZNGrUKG3fvt1j2R49eujhhx/W5MmT9dRTT+nTTz9VcnKy6tat614mv+MuyHPLtX5CQkKex5GEhARJng2M4sz1HJg0aZIqVKjgdX/249vcuXMVGRmpa6+99oL3k5/jhb/XcKCv7QtdP9DXzdSpU71+BS9nDj///LNuuukmNWrUSDNmzPB4PCWpRYsWHn+4GTZsmNfF4fv166dZs2Zp8uTJQfnFPNdztyDXtgKA4oymFACEmOrVq2vRokU6ceKEx1/0XV9Vql69usfyrr/MZ7d161ZFR0crMTEx3/t3feUikHW7d++uiRMnavHixfr9999lGEaeX93Lvu6IESP0xRdfKCkpSWlpaerRo4fHMjNmzFDv3r312muvuWNnz57VsWPH8tx+mTJlfC63a9cuj7+A165dWz///LPatWuX51+6rVar2rVrp3bt2un111/Xiy++qKefflpLlixR+/btc103kDrFxsbK4XDkua1gKMhj64vreblt2zaPWR6pqaleDQfXzKljx465vxYpec8CXLp0qVJTUzVz5kz94x//cMd37Njhd9/ZP+BnZWVp586dHh/O81PvnDZu3KitW7dq4sSJuuuuu9zxhQsXei1b0FkTM2bMUK1atTRz5kyPbQ0bNsxr2bJly6pz586aPHmyevXqpRUrVmjMmDEeyxRk3BfC9VXLvI4j1apVU1RUVIFqWr16df3yyy9yOp0es6VyHjMDPbZWr15dTqdTO3bs8JjhuG3btjzHXbt2bUlS+fLl83wdz549W9dee61HAzDQfScmJpp6vCiIQF83KSkpPl9LLtu3b1fHjh1Vvnx5zZkzx+dF9CdPnuzx1fOcs52GDBmijz/+WGPGjPH4umdOTqdTf/75p8es361bt0qS10w913PXNeMOAEoavr4HACHmhhtukMPh0JtvvukRf+ONN2SxWNSpUyeP+A8//OBx7ZA9e/bo66+/VocOHXKdvePrq30nTpzQmDFjVK5cOY/rH/nTvn17lS1bVlOnTtXUqVN1xRVXBPy1n/r166tx48budStWrOjReJDO/QU+51/Kx40bl+e1sqRzHw5//PFHZWRkuGOzZs3Snj17PJa77bbb9Pfff+v999/32saZM2d06tQpSb5njjVr1kySvH4+3Ze86mSz2fTPf/5TX3zxhTZt2uS1fn6/ipmXgjy2vrRr1052u13jx4/3iOd8HkvnP7h/99137tipU6c0ceJErxwlz9kSGRkZevvttz2WS05OVkJCgt5//32P6+BMnjzZqyEWaL198ZWPYRgaO3as17KlSpWSpAtu8vna16pVq/TDDz/4XP7OO+/Ub7/9piFDhshms3k1eAsy7tycPXtWJ06c8Io/99xzMgxDHTt2zHX9sLAwJScna82aNR7x/NT0hhtu0P79+z2+DpyVlaVx48YpJibG/TWxQI+trl//zPk8GzduXK5jca1bunRpvfjii8rMzPS63/U6zszM1MKFC71+VS/QfZt9vCiIQF83FStWVPv27T3+uezfv18dOnSQ1WrV/Pnz/TY7W7du7bF+9qbUK6+8oldffVVPPfWU+xcZc5P9eWIYht58802FhYWpXbt2HsutXbtWcXFxatiwYZ7bBIBQxEwpAAgxXbp00bXXXqunn35aO3fuVNOmTbVgwQJ9/fXXGjRokPsDvUujRo2UkpKiBx98UBEREe4PMyNGjMh1P2+99Za++uordenSRdWqVdO+ffv00Ucfaffu3Zo0aZL7Isu5CQsL0y233KIpU6bo1KlTevXVV/M11u7du2vo0KGKjIxU3759va4Jc+ONN2rSpEmKi4tTgwYN9MMPP2jRokXur/zk5t5779WMGTPUsWNH3Xbbbdq+fbs+/fRTr8fvzjvv1LRp0/Tvf/9bS5YsUevWreVwOLR582ZNmzZN8+fPV3JyskaOHKnvvvtOnTt3VvXq1XXw4EG9/fbbqlKliq6++uo88wmkTqNHj9aSJUvUsmVL9evXTw0aNNCRI0e0bt06LVq0KM+vQuVHQR5bX5KSkvTQQw/ptdde00033aSOHTvq559/1ty5c1WuXDmP2TkdOnRQtWrV1LdvX3cT5aOPPlJiYqJ2797tXu6qq65SmTJl1Lt3bz344IOyWCyaNGmSVzMtPDxcw4cP18CBA3Xdddfptttu086dOzVhwgTVrl3bY9+B1tuXevXqqXbt2ho8eLD+/vtvlS5dWl988YXPr565mroPPvigUlJSfDaKcnPjjTdq5syZuvnmm9W5c2ft2LFD77zzjho0aODzOjmdO3dWQkKCpk+frk6dOql8+fIe9xdk3LnZv3+/LrvsMvXs2VP16tWTJM2fP19z5sxRx44d1bVr1zy30bVrVz399NNKS0tT6dKlJeWvpvfdd5/effdd9enTR2vXrlWNGjU0Y8YM94wx16yoQI+tzZs31z//+U+NGTNGqampuvLKK7Vs2TL3TJncZpqVLl1a48eP15133qnLL79cPXr0cD+vZ8+erdatW+vNN9/U8uXLlZaW5tWUys++zTxeFER+Xjf+dOzYUX/++acee+wxLV++XMuXL3ffl5SUpOuvvz7X9b/88ks99thjqlOnjurXr69PP/3U4/7rr79eSUlJ7tuRkZGaN2+eevfurZYtW2ru3LmaPXu2nnrqKa+G2MKFC9WlSxeuKQWg5DLpV/4AABeJr5+OP3HihPHwww8blSpVMsLCwow6deoYr7zyivvn3V0kGf379zc+/fRTo06dOkZERIRx2WWXGUuWLMlzvwsWLDCuv/56o0KFCkZYWJgRHx9vdOjQwVi8eHG+8l+4cKEhybBYLMaePXvyte4ff/xhSDIkGcuXL/e6/+jRo8bdd99tlCtXzoiJiTFSUlKMzZs3G9WrVzd69+7tXs71k+c5x/3aa68ZlStXNiIiIozWrVsba9asMdq0aePxc/KGce7n41966SWjYcOGRkREhFGmTBmjefPmxogRI4zjx48bhmEYixcvNrp27WpUqlTJCA8PNypVqmT07NkzoJ8jz0+dDhw4YPTv39+oWrWqERYWZlSoUMFo166d8d5773mNd/r06XnuO3sO2X9OPtDH1vWT96tXr/bYnq/HPCsry3j22WeNChUqGFFRUcZ1111n/P7770ZCQoLx73//22P9tWvXGi1btjTCw8ONatWqGa+//rp7X9l/Sn7FihXGlVdeaURFRRmVKlUyHnvsMWP+/Pk+6/3f//7XqF69uhEREWFcccUVxooVK4zmzZsbHTt2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RUdHq3Hjxvr888/d9/fp00fLli3T2LFj3X+d3LlzZ8DPu1DTp08fDRw4ULt375bFYlGNGjXUtm1bDRgwQIMGDVK5cuWUkpIiSXr99dfVuHFjlSpVSlWrVtUDDzygkydPBiWP1atX6/rrr1e5cuUUFxenNm3aaN26de77a9SoIUm6+eab3XlK52cOTJo0STVq1FBcXJx69OihEydOBCWvoi771/dcdRswYIDi4uJUrlw5Pfvss8r+w7E1atTQiy++qHvuuUexsbGqVq2a3nvvvQvat+sv/1OmTNFVV12lyMhINWrUSMuWLXMv43A41LdvX/exvm7duho7dqzPMbz66quqWLGiEhIS1L9/f2VmZl5QXsXN7NmzFRcXp8mTJ2vjxo267rrr3MfV++67z+M15nqsXnjhBVWqVEl169YNWh7bt29X165dlZSUpJiYGLVo0UKLFi3yWCaQ58/KlSvVrFkzRUZGKjk5WV999VVIfi04r9fb0aNHddddd6lMmTKKjo5Wp06d9Mcff7jXd/1F/ptvvlGDBg0UERGh3bt3Fygnzl0C5+9cQJLWrl3r9zwgkNeJLzabTRUqVHD/i4mJkd1u94hFRUW5l58/f77q16+vmJgYdezYUfv27XPfl9f7pVRyZrW+9957qlSpkldDt2vXrrrnnnt8zi784IMPVL9+fUVGRqpevXp6++23g5IL55/+OZ1Ovfzyy7rkkksUERGhatWq6YUXXnCfR0ybNk3XXHONoqKi1KJFC23dulWrV69WcnKyYmJi1KlTJx06dMi9PbPOG4LxvpiRkaEBAwaoYsWKioyMVPXq1TVq1Kig5lnYsp/H5PY+JJ17b+zVq5cSExMVFRWlOnXq6OOPPw54X9OnT1eDBg30xBNP6LvvvtOePXs87vd3npRXXi4rVqxQkyZNFBkZqSuvvFKbNm26wEfl4qEpFUSjRo3SJ598onfeeUe//vqrHn74Yd1xxx0eH2aefvppvfbaa1qzZo3sdrvuuece932TJ0/WCy+8oJdeeklr165VtWrVNH78+KDll5mZqeeee04///yzvvrqK+3cudN98la1alV98cUXkqQtW7Zo3759Hh+yJk6cqFKlSmnVqlV6+eWXNXLkSC1cuDBouRUF+/btU8+ePXXPPffo999/19KlS3XLLbe4T8YXL17sjn/++eeaOXOmRowY4V7/1KlTeuSRR7RmzRotXrxYVqtVN998c1D+Snz27Fk1b95cs2fP1qZNm3Tffffpzjvv1E8//STp3NedWrVqpX79+rn/Olm1alX3+rk970LR2LFjNXLkSFWpUkX79u3T6tWrJZ17HoeHh2vFihV65513JElWq1X//e9/9euvv2rixIn69ttv9dhjjwUljxMnTqh3795avny5fvzxR9WpU0c33HCDu7nkyuvjjz/2yFM6d9Lw1VdfadasWZo1a5aWLVum0aNHByWv4mbixImy2+366aefNHbsWL3++uv64IMPPJZ57bXXlJycrPXr1+uBBx7Qf/7znwKd/A4ZMkSPPvqo1q9fr1atWqlLly5KTU2VdO5EtEqVKpo+fbp+++03DR06VE899ZSmTZvmsY0lS5Zo+/btWrJkiSZOnKgJEyaY+rXEwvLZZ5+pZ8+emjx5srp166aUlBSVKVNGq1ev1vTp07Vo0SINGDDAY53Fixdry5YtWrhwoWbNmhW0XE6ePKkbbrhBixcv1vr169WxY0d16dLFq1GS2/MnLS1NXbp0UePGjbVu3To999xzevzxx4OWY1GT2+utT58+WrNmjb755hv98MMPMgxDN9xwg8eHptOnT+ull17SBx98oF9//VXly5cvUD6cuwQut3OB3M4DAn2dFMTp06f16quvatKkSfruu++0e/duDR482H1/Xu+XJcmtt96q1NRULVmyxB07cuSI5s2bp169enktP3nyZA0dOlQvvPCCfv/9d7344ot69tlnNXHixALnwvmnf08++aRGjx6tZ599Vr/99ps+++wzJSUlue8fNmyYnnnmGa1bt052u1233367HnvsMY0dO1bff/+9tm3bpqFDh3ps04zzhmC8L/73v//VN998o2nTpmnLli2aPHmy+w+roSD7eUyvXr1yfR+S5H4OzJ07V7///rvGjx+vcuXKBby/Dz/8UHfccYfi4uLUqVMnnzX3dZ6UV14uQ4YM0WuvvabVq1crMTFRXbp0KXp/JDUQFGfPnjWio6ONlStXesT79u1r9OzZ01iyZIkhyVi0aJH7vtmzZxuSjDNnzhiGYRgtW7Y0+vfv77F+69atjaZNmwaUw7BhwwJe1jAMY/Xq1YYk48SJE4ZhGO4cjx496rFcmzZtjKuvvtoj1qJFC+Pxxx8PeF/Fwdq1aw1Jxs6dO73u6927t1G2bFnj1KlT7tj48eONmJgYw+Fw+NzeoUOHDEnGxo0bA9q/JOPLL78MON/OnTsbjz76qPt2mzZtjIceeshjmUCed6HqjTfeMKpXr+6+3aZNG+Oyyy7Lc73p06cbCQkJAe3D32vGH4fDYcTGxhr/93//5475qvuwYcOM6OhoIy0tzR0bMmSI0bJly4D2U9z17t3b6Nq1q2EY5+pWv359w+l0uu9//PHHjfr167tvV69e3bjjjjvct51Op1G+fHlj/PjxAe0vew127NhhSDJGjx7tvj8zM9OoUqWK8dJLL/ndRv/+/Y1//vOfHmOoXr26kZWV5Y7deuutRvfu3QPKqbhxHX/efPNNIy4uzli6dKlhGIbx3nvvGWXKlDFOnjzpXnb27NmG1Wo19u/fbxjGuccqKSnJSE9Pz9f+wsLCjFKlSnn8i4iIMOLi4nJdt2HDhsa4cePct/N6/owfP95ISEjwOGa+//77hiRj/fr1AedcHOT2etu6dashyVixYoX7vsOHDxtRUVHGtGnTDMMwjI8//tiQZGzYsCHgfXLuElw5zwUu9Dwg5+skEP5q6XpebNu2zR176623jKSkJL/bCvT9MlR17drVuOeee9y33333XaNSpUqGw+Hwepxr165tfPbZZx7rP/fcc0arVq0C2hfnn/mXlpZmREREGO+//77Xfa7ziA8++MAd+/zzzw1JxuLFi92xUaNGGXXr1nXfLuh5g5nviwMHDjSuu+46j/eK4s7feYwvOd+HunTpYtx9990XtN+tW7caYWFhxqFDhwzDMIwvv/zSqFmzpsdjG+h5kr/3xylTpriXSU1NNaKiooypU6deUL4XCzOlgmTbtm06ffq0rr/+esXExLj/ffLJJx5f4WrSpIn7/xUrVpQk9zS7LVu26IorrvDYbs7bBbF27Vp16dJF1apVU2xsrNq0aSNJAf0lLHve0rncfU0PLM6aNm2qdu3aqXHjxrr11lv1/vvv6+jRox73R0dHu2+3atVKJ0+edE+x/OOPP9SzZ0/VqlVLpUuXdv/FIBh/aXQ4HHruuefUuHFjlS1bVjExMZo/f37A287teVeSNG/e3Cu2aNEitWvXTpUrV1ZsbKzuvPNOpaam6vTp0wXe34EDB9SvXz/VqVNHcXFxKl26tE6ePBlQ3WrUqKHY2Fj37VB8zQXqyiuvlMVicd9u1aqV/vjjDzkcDncs+3PcYrGoQoUKBXq8WrVq5f6/3W5XcnKyfv/9d3fsrbfeUvPmzZWYmKiYmBi99957XnVt2LChbDab+3ao13DGjBl6+OGHtXDhQvf7y++//66mTZuqVKlS7uVat24tp9PpMZOtcePGCg8Pz9f+evXqpQ0bNnj8GzlypMcyJ0+e1ODBg1W/fn3Fx8crJiZGv//+u1etcnv+bNmyxT3t3SWY781Fjb/X22+//Sa73a6WLVu670tISFDdunU9Xhvh4eFe5wwFwblLcOR2HhDo66QgoqOjVbt2bY8csteiIO+XoahXr1764osvlJ6eLuncbKgePXrIavX86Hbq1Clt375dffv29fj88fzzzwflEhKcf/r2+++/Kz09Xe3atfO7TPaxu2ZQNW7c2COW87Eo6HmDWe+Lffr00YYNG1S3bl09+OCDWrBgQcA5FmW+zmOkvN+H/vOf/2jKlClq1qyZHnvsMa1cuTLgfX700UdKSUlxz6y64YYbdPz4cX377bcey/k6Twr0/TH7OW3ZsmW93reLAnveiyAQrutjzJ49W5UrV/a4LyIiwv3GEBYW5o67TvrMuAjoqVOnlJKSopSUFE2ePFmJiYnavXu3UlJSArpYWva8pXO5h9rFS202mxYuXKiVK1dqwYIFGjdunJ5++mmtWrUqoPW7dOmi6tWr6/3333dfC6BRo0ZBuRjdK6+8orFjx2rMmDHu6x8NGjQo4G0X1vOuqMn+wVg6dz2SG2+8Uf/5z3/0wgsvqGzZslq+fLn69u2rjIwMjybkhejdu7dSU1M1duxYVa9eXREREWrVqhWvuYvAzMdrypQpGjx4sF577TW1atVKsbGxeuWVV7yOFSWthpdddpnWrVunjz76SMnJyR6NjbzkfG0GIi4uTpdccolHLOdXxQYPHqyFCxfq1Vdf1SWXXKKoqCj961//8noNlrRaXUxRUVH5qn1uOHcJntzOAwJ9nQRr/64cjGzXBizI+2Uo6tKliwzD0OzZs9WiRQt9//33euONN7yWc33+eP/99z0axpI8mhsXivNP37JfK80fX2PPGcv5WBT0mGXW++Lll1+uHTt2aO7cuVq0aJFuu+02tW/f3n0t5eLK13lMIO9DnTp10q5duzRnzhwtXLhQ7dq1U//+/fXqq6/muj+Hw6GJEydq//79Hj/I5HA49NFHH3k0PXOeJxX0/bGooSkVJNkv6Jm9s+oSyF8r6tatq9WrV+uuu+5yx7JfY6YgNm/erNTUVI0ePdr9Xe81a9Z4LOPqvmaffVDSWCwWtW7dWq1bt9bQoUNVvXp1ffnll5Kkn3/+WWfOnHG/Ef3444+KiYlR1apVlZqaqi1btuj999/XNddcI0lavnx50PJasWKFunbtqjvuuEPSuTf0rVu3qkGDBu5lwsPDS3TtLsTatWvldDr12muvuf/6mPO6QAWxYsUKvf3227rhhhskSXv27NHhw4c9lgkLC6NuecjZ7HFdbyQYJ9z+/Pjjj/rHP/4hScrKytLatWvd10FasWKFrrrqKj3wwAPu5YP1owbFWe3atfXaa6+pbdu2stlsevPNN1W/fn1NmDBBp06dcp9QrVixQlarNagXNPdnxYoV6tOnj26++WZJ5z7AuS78HKi6devq008/VXp6uvuXv4L13lwU+Xu9NWjQQFlZWVq1apWuuuoqSXK/92V/Lwomzl3y70LOBYLxOimoQN4vS5LIyEjdcsstmjx5srZt26a6devq8ssv91ouKSlJlSpV0p9//unzelMFxfmnb3Xq1FFUVJQWL16se++9t7DTyZdgvd5Lly6t7t27q3v37vrXv/6ljh076siRIypbtmyQMzaPr/OYQN6HJCkxMVG9e/dW7969dc0112jIkCF5NqXmzJmjEydOaP369R7ntJs2bdLdd9+tY8eO+f016kDzks69j1erVk3SuYuyb926VfXr18/z8TATTakgiY2N1eDBg/Xwww/L6XTq6quv1vHjx7VixQqVLl1a1atXz3MbAwcOVL9+/ZScnKyrrrpKU6dO1S+//KJatWoFnMeZM2e8fg3I9asJ4eHhGjdunP79739r06ZNeu655zyWq169uiwWi2bNmqUbbrhBUVFRiomJCXjfxd2qVau0ePFidejQQeXLl9eqVat06NAh1a9fX7/88osyMjLUt29fPfPMM9q5c6eGDRumAQMGyGq1qkyZMkpISNB7772nihUravfu3XriiSfyncOOHTu86lenTh3VqVNHM2bM0MqVK1WmTBm9/vrrOnDggMdJQY0aNbRq1Srt3LlTMTExxfpNwSyXXHKJMjMzNW7cOHXp0sXjAuj5sXHjRo+v2lksFjVt2lR16tRx/zJGWlqahgwZ4vXXtRo1amjx4sVq3bq1IiIiVKZMmQKPK9Ts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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoUZJREFUeJzs3Xl4U2X6//HPSdKNQluWFqhlVwFBQAERBVmlIIKIP1TEARxFZwQUcRuXUVC/4i6MIjqjAu64oDiAyCKLbGKhiKiALAVZylJsC4UuSc7vj04PTZO2CZS0tO/XdfW6yN3nnPPcuZOQ3H3OiWGapikAAAAAAAAgiGzlPQEAAAAAAABUPTSlAAAAAAAAEHQ0pQAAAAAAABB0NKUAAAAAAAAQdDSlAAAAAAAAEHQ0pQAAAAAAABB0NKUAAAAAAAAQdDSlAAAAAAAAEHQ0pQAAAAAAABB0NKUAAJC0bNkyGYahZcuWlfdUKizDMDRhwoTyngaK0b17d3Xv3r28p3FOeOGFF9SiRQu53e7ynkpAqHHlYxiGxowZU+q4N998Uw0bNlROTk4QZgUAwUNTCgDOQYZh+PUTjAZLccd+7rnnzvqxgcps/vz5VaYJuG7dOt19991q3769QkJCZBhGiePfeecdtWzZUuHh4brgggv02muv+X2szMxMPf/883r44Ydls1W9t8KvvfaaoqOjlZeXV95TqZDS0tL04osv6qqrrlJsbKxiYmJ0+eWXa9asWX7vY8mSJfrrX/+qCy+8UNWqVVPTpk11xx136MCBA6c9r5EjRyo3N1dvvfXWae8DACoiR3lPAAAQuPfff9/j9nvvvadFixZ5xVu2bBmU+Vx99dUaPny4R+ySSy4JyrGBymr+/PmaOnVqlWhMzZ8/X2+//bbatGmjpk2batu2bcWOfeutt/S3v/1NN9xwg8aPH6/vv/9e99xzj06cOKGHH3641GO9++67cjqdGjp0aFmmcM6YN2+e+vTpo5CQkPKeSoW0Zs0aPfbYY7rmmmv0+OOPy+Fw6IsvvtDNN9+sX3/9VRMnTix1Hw8//LCOHj2qIUOG6IILLtDOnTv1+uuva+7cudq4caPq1asX8LzCw8M1YsQIvfLKKxo7dmypjVsAOFfQlAKAc9Ctt97qcXvt2rVatGiRVzxYLrzwwnI7NspOdna2QkNDq+TqEZxdbrdbubm5Cg8P9/n7v//973r44YcVERGhMWPGFNuUOnnypB577DH1799fn3/+uSRp1KhRcrvdevrpp3XnnXeqZs2aJc5l+vTpGjhwYLFzqcxOnDih5cuXa9q0aeU9lQqrVatW+v3339WoUSMrdvfdd6t37956/vnn9dBDDykyMrLEfbzyyivq0qWLx2tp37591a1bN73++ut65plnTmtuN954o1544QUtXbpUPXv2PK19AEBFw7tOAKiksrKydP/996tBgwYKCwtT8+bN9dJLL8k0TY9xBdez+PDDD9W8eXOFh4erffv2WrFiRUDHO3nypLKzs/0e//nnn8swDC1fvtzrd2+99ZYMw9DmzZt9bpuUlCTDMDRz5kyv33377bcyDENz586VJO3evVt33323mjdvroiICNWuXVtDhgxRSkpKqXNs3LixRo4c6RX3dV2XnJwcPfnkkzr//PMVFhamBg0a6KGHHvK6/seiRYvUpUsXxcTEqHr16mrevLkeffTRUucSSJ327dunv/71r6pbt67CwsLUqlUrvfvuux5jCq6h9cknn+jxxx/Xeeedp2rVqikzM7PUuRTw976dMWOGDMPQqlWrNH78eMXGxioyMlLXX3+9Dh8+7DHW7XZrwoQJio+PV7Vq1dSjRw/9+uuvXrWYMGGCz5UCBccqPIc5c+aof//+io+PV1hYmJo1a6ann35aLpfLa/upU6eqadOmioiI0GWXXabvv//+jOrty/fff68hQ4aoYcOG1rb33XefTp48aY0ZOXKkpk6dKsnzFNlA5Obm6oknnlD79u0VHR2tyMhIde3aVUuXLrXGmKapxo0b67rrrvPaPjs7W9HR0brrrrsCzrvw47VVq1YKCwvTggULip1r3bp1FRERUWpOS5cuVVpamu6++26P+OjRo5WVlaV58+aVuP2uXbu0adMm9e7d2+t3aWlp+stf/qKoqCjFxMRoxIgR+umnn2QYhmbMmOEx9rvvvlPXrl0VGRmpmJgYXXfddfrtt9+89pmcnKx+/fopKipK1atXV69evbR27VqvcZs2bVK3bt0UERGhhIQEPfPMM5o+fbrXY9mXQB6LS5YsUU5Ojvr163dax/7mm2+svGvUqKH+/fvrl19+8RgzcuRIVa9eXXv27NG1116r6tWr67zzzrMezz///LN69uypyMhINWrUSB999JHH9gXP4ZUrV+qee+6xTqG76667lJubq/T0dA0fPlw1a9ZUzZo19dBDD3n9v/bSSy/piiuuUO3atRUREaH27dtbTczSNGnSxKMhJeU/ngcNGqScnBzt3Lmz1H1cddVVXs39q666SrVq1fL5OJHk12t7+/btVatWLc2ZM8evXADgXMBKKQCohEzT1MCBA7V06VLdfvvtateunb799ls9+OCD2rdvn1599VWP8cuXL9esWbN0zz33KCwsTG+88Yb69u2rdevWqXXr1qUeb8aMGXrjjTdkmqZatmypxx9/XLfcckuJ2/Tv31/Vq1fXp59+qm7dunn8btasWWrVqlWxx+7QoYOaNm2qTz/9VCNGjPDatmbNmkpMTJQk/fjjj1q9erVuvvlmJSQkKCUlRdOmTVP37t3166+/qlq1aqXmVxq3262BAwdq5cqVuvPOO9WyZUv9/PPPevXVV7Vt2zZ99dVXkqRffvlF1157rdq0aaOnnnpKYWFh2r59u1atWuXXcfyp08GDB3X55ZdbTYHY2Fh98803uv3225WZmalx48Z57PPpp59WaGioHnjgAeXk5Cg0NNTvvAO9b8eOHauaNWvqySefVEpKiiZPnqwxY8Z4XKvlkUce0QsvvKABAwYoMTFRP/30kxITEwNqeBY1Y8YMVa9eXePHj1f16tX13Xff6YknnlBmZqZefPFFa9y0adM0ZswYde3aVffdd59SUlI0aNAg1axZUwkJCdY4f+tdnM8++0wnTpzQ3//+d9WuXVvr1q3Ta6+9pr179+qzzz6TJN11113av3+/z9Ny/ZWZmam3335bQ4cO1ahRo3Ts2DG98847SkxM1Lp169SuXTsZhqFbb71VL7zwgo4ePapatWpZ2//3v/9VZmamtQoy0Ly/++47ffrppxozZozq1Kmjxo0bn1YehSUnJ0vKfw0orH379rLZbEpOTi5x1ebq1aslSZdeeqlH3O12a8CAAVq3bp3+/ve/q0WLFpozZ47X64skLV68WP369VPTpk01YcIEnTx5Uq+99pquvPJKbdiwwcrzl19+UdeuXRUVFaWHHnpIISEheuutt9S9e3ctX75cnTp1kpTfRO7Ro4cMw9AjjzyiyMhIvf322woLCyv1/gi0JvPnz1f79u1Vt27dgI/9/vvva8SIEUpMTNTzzz+vEydOaNq0aerSpYuSk5M96utyudSvXz9dddVVeuGFF/Thhx9qzJgxioyM1GOPPaZhw4Zp8ODBevPNNzV8+HB17txZTZo08Tje2LFjVa9ePU2cOFFr167Vv//9b8XExGj16tVq2LChnn32Wc2fP18vvviiWrdu7XEK+ZQpUzRw4EANGzZMubm5+uSTTzRkyBDNnTtX/fv3L/V+9SU1NVWSVKdOndPa/vjx4zp+/LjP7QP5P/jSSy/1+/8MADgnmACAc97o0aPNwi/pX331lSnJfOaZZzzG/b//9/9MwzDM7du3WzFJpiQzKSnJiu3evdsMDw83r7/++lKPfcUVV5iTJ08258yZY06bNs1s3bq1Kcl84403St126NChZlxcnOl0Oq3YgQMHTJvNZj711FMlbvvII4+YISEh5tGjR61YTk6OGRMTY/71r3+1YidOnPDads2aNaYk87333rNiS5cuNSWZS5cutWKNGjUyR4wY4bV9t27dzG7dulm333//fdNms5nff/+9x7g333zTlGSuWrXKNE3TfPXVV01J5uHDh0vMzRd/63T77beb9evXN48cOeKx/c0332xGR0db90dBvk2bNvV5HxU3hyeffNK67e99O336dFOS2bt3b9Ptdlvx++67z7Tb7WZ6erppmqaZmppqOhwOc9CgQR77nDBhginJoxZPPvmk6ettTMGxdu3aVeI877rrLrNatWpmdna2aZr5j53atWubHTt2NPPy8qxxM2bMMCWdVr2L42s+kyZNMg3DMHfv3m3Fij6vS1P0cel0Os2cnByPMX/++adZt25dj+fI1q1bTUnmtGnTPMYOHDjQbNy4sVWzQPKWZNpsNvOXX37xe/4FSsp79OjRpt1u9/m72NhY8+abby5x348//rgpyTx27JhH/IsvvjAlmZMnT7ZiLpfL7NmzpynJnD59uhVv166dGRcXZ6alpVmxn376ybTZbObw4cOt2KBBg8zQ0FBzx44dVmz//v1mjRo1zKuuusqKjR071jQMw0xOTrZiaWlpZq1atbwey6f72lOgYcOGHs9hf4997NgxMyYmxhw1apTH/lJTU83o6GiP+IgRI0xJ5rPPPmvF/vzzTzMiIsI0DMP85JNPrPiWLVu8XlcKnsOJiYkerxedO3c2DcMw//a3v1kxp9NpJiQkeNwnpun9HMvNzTVbt25t9uzZ0zwdaWlpZlxcnNm1a9fT2t40TfPpp582JZlLlizxiAf6f/Cdd95pRkREnPY8AKCi4fQ9AKiE5s+fL7vdrnvuuccjfv/998s0TX3zzTce8c6dO6t9+/bW7YYNG+q6667Tt99+6/MUp8JWrVqle++9VwMHDtTf/vY3rV+/Xq1bt9ajjz7qcTqSLzfddJMOHTrk8S2Bn3/+udxut2666aZSt83Ly9Ps2bOt2MKFC5Wenu6xbeFTgvLy8pSWlqbzzz9fMTEx2rBhQ4nH8Ndnn32mli1bqkWLFjpy5Ij1U3DNj4LTpWJiYiTln052Ol9FX1qdTNPUF198oQEDBsg0TY+5JCYmKiMjwyvnESNG+HXalC+B3rd33nmnxyloXbt2lcvl0u7duyXln1rkdDq9Ts0aO3bsac3P1zyPHTumI0eOqGvXrjpx4oS2bNkiKf+U0LS0NI0aNUoOx6mF5MOGDfO6RpG/9fZnPllZWTpy5IiuuOIKmaZprQQqC3a73Vr55na7dfToUTmdTnXo0MGjPhdeeKE6deqkDz/80IodPXpU33zzjYYNG2bVLNC8u3XrposuuqjM8pHyTxMubjVfeHh4qa85aWlpcjgcql69ukd8wYIFCgkJ0ahRo6yYzWbT6NGjPcYdOHBAGzdu1MiRIz1WlbVp00ZXX3215s+fLyl/pdDChQs1aNAgNW3a1BpXv3593XLLLVq5cqV1quyCBQvUuXNntWvXzhpXq1YtDRs2rMRcpMBqsnnzZu3Zs8djpZC/x160aJHS09M1dOhQj+PY7XZ16tTJ52P+jjvusP4dExOj5s2bKzIyUjfeeKMVb968uWJiYnyeEnf77bd7vF506tRJpmnq9ttvt2J2u10dOnTw2r7wc+zPP/9URkaGunbtelqv+W63W8OGDVN6enpA3/JY2IoVKzRx4kTdeOONPq8FFcj/wTVr1tTJkyd14sSJ05oLAFQ0nL4HAJXQ7t27FR8frxo1anjEC76Nr6AJUOCCCy7w2seFF16oEydO6PDhwwF9U1BoaKjGjBljNai6dOlS7Ni+ffsqOjpas2bNUq9evSTln37Xrl07XXjhhSUep23btmrRooVmzZplfUiZNWuW6tSp4/Gm/+TJk5o0aZKmT5+uffv2eVx7JCMjw++8SvL777/rt99+U2xsrM/fHzp0SFJ+I+3tt9/WHXfcoX/84x/q1auXBg8erP/3//6fXxcXL61ONptN6enp+ve//61///vfJc6lQNFTZgIR6H3bsGFDj9sFzZ4///xT0qnH5fnnn+8xrlatWqVevLokv/zyix5//HF99913XtfMKphnccd2OBxep535W+/i7NmzR0888YS+/vprK/ei8ykrM2fO1Msvv6wtW7YoLy/Pihet+/DhwzVmzBjt3r1bjRo10meffaa8vDz95S9/scYEmveZPLaKExERodzcXJ+/y87OPu0G6+7du1W/fn2vU06LPh4KHifNmzf32kfLli317bffKisrS8eOHdOJEyeKHed2u/XHH3+oVatW2r17tzp37uw1ruixfQmkJvPmzVPdunU9Tn3099i///67JBV7ce2oqCiP2+Hh4V5zio6OVkJCgte10aKjo72eB5L360V0dLQkqUGDBqVuP3fuXD3zzDPauHGjx7W1Ch/76NGjHo+liIgI6xiFjR07VgsWLNB7772ntm3bWvHc3FwdPXrUY2xsbKzsdrtHbMuWLbr++uvVunVrvf322177lwL7P7jgdZZv3wNQWdCUAgCUuYIPDUXfsBcVFhamQYMG6csvv9Qbb7yhgwcPatWqVXr22Wf9Os5NN92k//u//9ORI0dUo0YNff311xo6dKjHSpexY8dq+vTpGjdunDp37qzo6GgZhqGbb7651NVKxb3pd7lcHh883G63Lr74Yr3yyis+xxfcHxEREVqxYoWWLl2qefPmacGCBZo1a5Z69uyphQsXen2YCVRBPrfeeqvPa+FI+Ss6CjvdD/FS4PdtcfmZRS5S7I+SalNYenq6unXrpqioKD311FNq1qyZwsPDtWHDBj388MOntWLN33oXN7+rr75aR48e1cMPP6wWLVooMjJS+/bt08iRI09rPsX54IMPNHLkSA0aNEgPPvig4uLiZLfbNWnSJO3YscNj7M0336z77rtPH374oR599FF98MEH6tChg0dTJdC8z+SxVZz69evL5XLp0KFDiouLs+K5ublKS0tTfHx8idvXrl1bTqdTx44d82ran4sCqcn8+fPVt2/f02pmFDwu33//fZ9/pCj8misV/1wP5DUgkH0U3v7777/XwIEDddVVV+mNN95Q/fr1FRISounTp3tcVH3w4MEeX7QxYsQIrwvaT5w4UW+88Yaee+45jwatlH99sh49enjEdu3a5dHE/uOPP9SnTx9FR0dr/vz5ZfKY+/PPP1WtWrWz8vwCgPJAUwoAKqFGjRpp8eLFXh+8Ck5VKvrNQgV/BS9s27ZtqlatWrF/gS9JwakU/mx70003aebMmVqyZIl+++03maZZ6ql7hbedOHGivvjiC9WtW1eZmZm6+eabPcZ8/vnnGjFihF5++WUrlp2drfT09FL3X7NmTZ/jdu/e7XFKTrNmzfTTTz+pV69epX7gs9ls6tWrl3r16qVXXnlFzz77rB577DEtXbrU5zeCFeZPnWrUqCGXy1XqvsrCmdy3vhQ8Lrdv3+6xyiYtLc1rJUTByqn09HTrtEjJexXgsmXLlJaWptmzZ+uqq66y4rt27Sr22IU/aDqdTqWkpHg08wKpd1E///yztm3bppkzZ3pcmHnRokVeY890JcTnn3+upk2bavbs2R77evLJJ73G1qpVS/3799eHH36oYcOGadWqVZo8ebLHmDPJu6wUnGaWlJSka665xoonJSXJ7XZ7nIbmS4sWLSTl179wTRs1aqSlS5fqxIkTHqultm/f7rF9weNk69atXvvesmWL6tSpo8jISIWHh6tatWrFjrPZbFbDqFGjRl7H8XVsX/ytSXp6ulavXq0xY8Z45ePPsZs1ayZJiouLC8pry5n44osvFB4erm+//dbjgu3Tp0/3GPfyyy97vK4UbWhOnTpVEyZM0Lhx4/Twww97Hadt27Zez9vCDbu0tDT16dNHOTk5WrJkierXr1/snAP5P3jXrl3WqmcAqAy4phQAVELXXHONXC6XXn/9dY/4q6++KsMwPL4OXJLWrFnjca2NP/74Q3PmzFGfPn1KXL1z+PBhr9ixY8c0efJk1alTx+MaGcXp3bu3atWqpVmzZmnWrFm67LLL/D7tp2XLlrr44outbevXr+/ReJDy/6pe9K/wr732WqnXypLyP4itXbvW4xSPuXPn6o8//vAYd+ONN2rfvn36z3/+47WPkydPKisrS5LvlWMFH6J9fX17UaXVyW6364YbbtAXX3yhzZs3e23vq15n4kzuW1969eolh8OhadOmecSLPo6lUx+SC39telZWlmbOnOk1R8lzJUVubq7eeOMNj3EdOnRQ7dq19Z///EdOp9OKf/jhh14NMX/r7Yuv+ZimqSlTpniNjYyMlKTTbvL5OtYPP/ygNWvW+Bz/l7/8Rb/++qsefPBB2e12rwbvmeRdVnr27KlatWp5PUamTZumatWqlfrNagWnqiUlJXnEExMTlZeX55Gb2+3W1KlTPcbVr19f7dq108yZMz3qsnnzZi1cuNBqlNntdvXp00dz5sxRSkqKNe7gwYP66KOP1KVLF+uUt8TERK1Zs0YbN260xh09etTjGl/F8bcmCxculCT16dPHK29/jp2YmKioqCg9++yzHqeBFijr15YzYbfbZRiGx+tQSkqK1zcRtm/fXr1797Z+Cl//rOCb8IYNG1bsKrSaNWt6bN+7d2+Fh4dLyn8tuuaaa7Rv3z7Nnz/f5+l5hQXyf/CGDRt0xRVX+HVfAMC5gJVSAFAJDRgwQD169NBjjz2mlJQUtW3bVgsXLtScOXM0btw46wN9gdatWysxMdHj66il/FMXSjJ16lR99dVXGjBggBo2bKgDBw7o3Xff1Z49e/T+++8Xe0HiwkJCQjR48GB98sknysrK0ksvvRRQrjfddJOeeOIJhYeH6/bbb/e6NtO1116r999/X9HR0brooou0Zs0aLV68WLVr1y5133fccYc+//xz9e3bVzfeeKN27NihDz74wOv++8tf/qJPP/1Uf/vb37R06VJdeeWVcrlc2rJliz799FN9++236tChg5566imtWLFC/fv3V6NGjXTo0CG98cYbSkhIKPHaWwX8qdNzzz2npUuXqlOnTho1apQuuugiHT16VBs2bNDixYtLPaUyEGdy3/pSt25d3XvvvXr55Zc1cOBA9e3bVz/99JO++eYb1alTx2MlSJ8+fdSwYUPdfvvtVhPl3XffVWxsrPbs2WONu+KKK1SzZk2NGDFC99xzjwzD0Pvvv+/VTAsNDdWECRM0duxY9ezZUzfeeKNSUlI0Y8YMNWvWzOPY/tbblxYtWqhZs2Z64IEHtG/fPkVFRemLL77weU2dgqbuPffco8TERJ+NopJce+21mj17tq6//nr1799fu3bt0ptvvqmLLrpIx48f9xrfv39/1a5dW5999pn69evncXrcmeZdmt27d+v999+XdKph9Mwzz0jKX81TcOpURESEnn76aY0ePVpDhgxRYmKivv/+e33wwQf6v//7P4+Lj/vStGlTtW7dWosXL9Zf//pXKz5o0CBddtlluv/++7V9+3a1aNFCX3/9tfV8KVz/F198Uf369VPnzp11++236+TJk3rttdcUHR2tCRMmWOOeeeYZLVq0SF26dNHdd98th8Oht956Szk5OXrhhRescQ899JA++OADXX311Ro7dqwiIyP19ttvq2HDhjp69GiJK6D8rcm8efPUpUsXr2sm+XvsqKgoTZs2TX/5y1906aWX6uabb7aea/PmzdOVV17ps3lcHvr3769XXnlFffv21S233KJDhw5p6tSpOv/887Vp06ZSt1+3bp2GDx+u2rVrq1evXl4NuiuuuMJjpawvw4YN07p16/TXv/5Vv/32m3777Tfrd9WrV9egQYM8xvv7f/D69et19OhRXXfddaXmAQDnjCB/2x8A4Czw9RXqx44dM++77z4zPj7eDAkJMS+44ALzxRdf9PiKbdPM/zrq0aNHmx988IF5wQUXmGFhYeYll1xiLl26tNTjLly40Lz66qvNevXqmSEhIWZMTIzZp08fr6+8Ls2iRYtMSaZhGOYff/wR0La///679ZXaK1eu9Pr9n3/+ad52221mnTp1zOrVq5uJiYnmli1bzEaNGpkjRoywxi1dutSU5JX3yy+/bJ533nlmWFiYeeWVV5pJSUleX8tumvlfOf7888+brVq1MsPCwsyaNWua7du3NydOnGhmZGSYpmmaS5YsMa+77jozPj7eDA0NNePj482hQ4ea27ZtKzXPQOp08OBBc/To0WaDBg3MkJAQs169emavXr3Mf//73175fvbZZ6Ueu/AcCn91u7/3bcFXvP/4448e+/N1nzudTvOf//ynWa9ePTMiIsLs2bOn+dtvv5m1a9f2+Cp40zTN9evXm506dTJDQ0PNhg0bmq+88op1rIKvsjdN01y1apV5+eWXmxEREWZ8fLz50EMPmd9++63Pev/rX/8yGzVqZIaFhZmXXXaZuWrVKrN9+/Zm3759Pcb5U+/i/Prrr2bv3r3N6tWrm3Xq1DFHjRpl/vTTT6Ykc/r06R73xdixY83Y2FjTMAyv53hRRR+XbrfbfPbZZ618LrnkEnPu3LnmiBEjzEaNGvncx913321KMj/66COfv/c374LHq78KHgu+foo+10zTNP/973+bzZs3N0NDQ81mzZqZr776qtdrW3FeeeUVs3r16uaJEyc84ocPHzZvueUWs0aNGmZ0dLQ5cuRIc9WqVaYk85NPPvEYu3jxYvPKK680IyIizKioKHPAgAHmr7/+6nWsDRs2mImJiWb16tXNatWqmT169DBXr17tNS45Odns2rWrGRYWZiYkJJiTJk0y//Wvf5mSzNTUVGvc6bz2uN1uMy4uznzhhRd83h/+Hts08+uUmJhoRkdHm+Hh4WazZs3MkSNHmklJSdaYESNGmJGRkV7H6datm9mqVSuveKNGjcz+/ftbt4t7vXjyySdNSebhw4c94r6O984771ivky1atDCnT59ubV+aguMX91P4OVqcRo0aFbt90edeIK/tDz/8sNmwYUO/H+sAcC4wTPM0ri4KAKg0DMPQ6NGjK8xfueFbVa5Tenq6atasqWeeeUaPPfZYUI/tdrsVGxurwYMH+zxFqrK577779M477yg1NdXrm+gqi4yMDDVt2lQvvPCC9c2dxfnqq690/fXXa+XKlbryyiuDNMN848aN01tvvaXjx4+f0ZcgrFu3Tp06ddIvv/zicYpaMI6NspOTk6PGjRvrH//4h+69997yng4AlBmuKQUAACqMkydPesUKLrjdvXv3s3rs7Oxsr9P63nvvPR09evSsH7siyM7O1gcffKAbbrih0jakJCk6OloPPfSQXnzxRY9vOyz62HO5XHrttdcUFRWlSy+99KzOqeix09LS9P7776tLly5l0hR69tlni21Ine1jo2xMnz5dISEh+tvf/lbeUwGAMsU1pQAAQIUxa9YszZgxQ9dcc42qV6+ulStX6uOPP1afPn3O+kqVtWvX6r777tOQIUNUu3ZtbdiwQe+8845at26tIUOGnNVjl6dDhw5p8eLF+vzzz5WWllYlVmE8/PDDXt+oNnbsWJ08eVKdO3dWTk6OZs+erdWrV+vZZ59VRETEWZ1P586d1b17d7Vs2VIHDx7UO++8o8zMTP3zn/88431fdtlluuyyy8rl2Cg7f/vb32hIAaiUaEoBAIAKo02bNnI4HHrhhReUmZlpXfy84KLXZ1Pjxo3VoEED/etf/9LRo0dVq1YtDR8+XM8995xfF+0/V/36668aNmyY4uLi9K9//cv6RsiqpmfPnnr55Zc1d+5cZWdn6/zzz9drr72mMWPGnPVjX3PNNfr888/173//W4Zh6NJLL9U777zj9W2ile3YAABwTSkAAAAAAAAEHdeUAgAAAAAAQNDRlAIAAAAAAEDQcU0pH9xut/bv368aNWrIMIzyng4AAAAAAMA5wzRNHTt2TPHx8bLZil8PRVPKh/3796tBgwblPQ0AAAAAAIBz1h9//KGEhIRif09TyocaNWpIyr/zoqKiynk2AAAAAAAA547MzEw1aNDA6q8Uh6aUDwWn7EVFRdGUAgAAAAAAOA2lXRKJC50DAAAAAAAg6GhKAQAAAAAAIOhoSgEAAAAAACDouKYUAACoclwul/Ly8sp7GlVeSEiI7HZ7eU8DAACUE5pSAACgyjBNU6mpqUpPTy/vqeB/YmJiVK9evVIvhAoAACofmlIAAKDKKGhIxcXFqVq1ajRCypFpmjpx4oQOHTokSapfv345zwgAAAQbTSkAAFAluFwuqyFVu3bt8p4OJEVEREiSDh06pLi4OE7lAwCgiuFC5wAAoEoouIZUtWrVynkmKKygHlzjCwCAqoemFAAAqFI4Za9ioR4AAFRdNKUAAAAAAAAQdDSlAAAAgmzGjBmKiYkJaJsTJ07ohhtuUFRUlAzD4BsEAQDAOY+mFAAAqNIMwyjxZ8KECeU9RUnSzJkz9f3332v16tU6cOCAoqOjy2S/3bt317hx48pkXwAAAIHg2/cAAECVduDAAevfs2bN0hNPPKGtW7daserVq5fHtLzs2LFDLVu2VOvWrct7Kj7l5uYqNDS0vKcBAADOIayUAgAAVVq9evWsn+joaBmGYd2Oi4vTK6+8ooSEBIWFhaldu3ZasGCBtW1KSooMw9Ann3yiK664QuHh4WrdurWWL18e0BwOHz6sDh066Prrr1dOTo7X77t3766XX35ZK1askGEY6t69uyQpJydHDzzwgM477zxFRkaqU6dOWrZsmbVdWlqahg4dqvPOO0/VqlXTxRdfrI8//tj6/ciRI7V8+XJNmTLFWhmWkpLi8/TCr776yuOi5BMmTFC7du309ttvq0mTJgoPD5ckpaen64477lBsbKyioqLUs2dP/fTTTwHdHwAAoGqgKQUAAFCMKVOm6OWXX9ZLL72kTZs2KTExUQMHDtTvv//uMe7BBx/U/fffr+TkZHXu3FkDBgxQWlqaX8f4448/1LVrV7Vu3Vqff/65wsLCvMbMnj1bo0aNUufOnXXgwAHNnj1bkjRmzBitWbNGn3zyiTZt2qQhQ4aob9++1vyys7PVvn17zZs3T5s3b9add96pv/zlL1q3bp2VX+fOnTVq1CgdOHBABw4cUIMGDfy+f7Zv364vvvhCs2fP1saNGyVJQ4YM0aFDh/TNN99o/fr1uvTSS9WrVy8dPXrU7/0CAICqgaYUAABAMV566SU9/PDDuvnmm9W8eXM9//zzateunSZPnuwxbsyYMbrhhhvUsmVLTZs2TdHR0XrnnXdK3f/WrVt15ZVXKjExUdOnT5fdbvc5rlatWqpWrZpCQ0NVr1491apVS3v27NH06dP12WefqWvXrmrWrJkeeOABdenSRdOnT5cknXfeeXrggQfUrl07NW3aVGPHjlXfvn316aefSpKio6MVGhqqatWqWavDipuDL7m5uXrvvfd0ySWXqE2bNlq5cqXWrVunzz77TB06dNAFF1ygl156STExMfr888/93i8AAKgauKYUAACAD5mZmdq/f7+uvPJKj/iVV17pdTpa586drX87HA516NBBv/32mySpVatW2r17tySpa9eu+uabbyRJJ0+eVNeuXXXLLbd4Nbn88fPPP8vlcunCCy/0iOfk5Kh27dqSJJfLpWeffVaffvqp9u3bp9zcXOXk5KhatWoBH8+XRo0aKTY21rr9008/6fjx49bxC5w8eVI7duwok2MCAIDKg6YUAADAWTR//nzl5eVJkiIiIqx4WFiYevfurblz5+rBBx/UeeedF9B+jx8/LrvdrvXr13utbiq4OPuLL76oKVOmaPLkybr44osVGRmpcePGKTc3t8R922w2mabpESvIobDIyEivOdWvX9/julYFil6jCgAAgKYUAACAD1FRUYqPj9eqVavUrVs3K75q1SpddtllHmPXrl2rq666SpLkdDq1fv16jRkzRlL+aiJfbDab3n//fd1yyy3q0aOHli1bpvj4eL/nd8kll8jlcunQoUPq2rWrzzGrVq3Sddddp1tvvVWS5Ha7tW3bNl100UXWmNDQULlcLo/tYmNjdezYMWVlZVmNp4JrRpXk0ksvVWpqqhwOhxo3bux3LgAAoGrimlIAAADFePDBB/X8889r1qxZ2rp1q/7xj39o48aNuvfeez3GTZ06VV9++aW2bNmi0aNH688//9Rf//rXUvdvt9v14Ycfqm3bturZs6dSU1P9ntuFF16oYcOGafjw4Zo9e7Z27dqldevWadKkSZo3b54k6YILLtCiRYu0evVq/fbbb7rrrrt08OBBj/00btxYP/zwg1JSUnTkyBG53W516tRJ1apV06OPPqodO3boo48+0owZM0qdU+/evdW5c2cNGjRICxcuVEpKilavXq3HHntMSUlJfucGAACqBppSAAAAxbjnnns0fvx43X///br4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SfXt21cffvihQkNDNWPGjLKeHwAAAAAAACqhgJtSt956q/Xv9u3ba/fu3dqyZYsaNmyoOnXqlOnkAAAAAAAAUDkFfPreypUrPW5Xq1ZNl156KQ0pAAAAAAAA+C3gplTPnj3VpEkTPfroo/r111/PxpwAAAAAAABQyQXclNq/f7/uv/9+LV++XK1bt1a7du304osvau/evWdjfgAAAAAAAKiEAm5K1alTR2PGjNGqVau0Y8cODRkyRDNnzlTjxo3Vs2fPszFHAAAAAAAAVDIBN6UKa9Kkif7xj3/oueee08UXX6zly5cHtP2KFSs0YMAAxcfHyzAMffXVVx6/N01TTzzxhOrXr6+IiAj17t1bv//+e6n7nTp1qho3bqzw8HB16tRJ69atC2heAAAAAAAAOLtOuym1atUq3X333apfv75uueUWtW7dWvPmzQtoH1lZWWrbtq2mTp3q8/cvvPCC/vWvf+nNN9/UDz/8oMjISCUmJio7O7vYfc6aNUvjx4/Xk08+qQ0bNqht27ZKTEzUoUOHApobAAAAAAAAzp6Am1KPPPKImjRpop49e2rPnj2aMmWKUlNT9f7776tv374B7atfv3565plndP3113v9zjRNTZ48WY8//riuu+46tWnTRu+9957279/vtaKqsFdeeUWjRo3SbbfdposuukhvvvmmqlWrpnfffTfQVAEAAAAAAHCWBNyUWrFihR588EHt27dPc+fO1dChQ1WtWrUyn9iuXbuUmpqq3r17W7Ho6Gh16tRJa9as8blNbm6u1q9f77GNzWZT7969i90GAAAAAAAAwecIdINVq1adjXl4SU1NlSTVrVvXI163bl3rd0UdOXJELpfL5zZbtmwp9lg5OTnKycmxbmdmZkqSnE6nnE6npPzmls1mk9vtltvttsbabPl9PXuIXYZxap8up1um2/SO57llmqYcoXaPOTjzXDJNUy6XyyNut+ePKxp3OBxe4w3DkN1u95pjcfGScrLZbHK58udUWtxut8swDOu+Km3u5ERO5FS1cyp4/XPmuSRT3q+HuS7JkBwh3nHDMGQPyX/ddTqdFSanwnGpctSJnMiJnMiJnMipquZkD7HLleeSzW7IZj+1jsPtMuV2uWWz22SzG4Xibrld3p/9DEMyTcluMzw/E7pNmabkKLQPSXK68vMuGi+4P6hT6Tk5Qu0B18nXZ3en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sbGxtR0aEdFbkZ+fj9u3b+Onn37C+PHj32pdgiDg999/x6pVq2BhYQFHR8e3Wh+pp127dqF58+awtrbG1atXMXv2bHz22Wf1ZkKKiIiI6G1S/2Pr3mESiQRHjx5F586d4erqiiNHjuDgwYPo3r07ACjcDrbkcu7cuVqOnsqzfPnycvNWdHog1R29evUqN1/Lly+v7fDqnevXr8PNzQ2tW7fGhAkTVLLP8tqcgYEBmjVrhvPnzyMqKqrenY6ljs6dO1dh31YbHj58iGHDhkEmk2HGjBkYNGgQtmzZUiuxqBOOUdRXXWyHVDmOL9Uf2576YbtTDk/fq8fu3r1b7jpra2v+iltHZWZmIjMzs8x1urq6sLa2ruGIqCJ//PEHXr58WeY6U1PTen+Rz/qAbU59vHz5En/88Ue560veApvqLo5R1BfboXpiX6f+2PbUD9udcjgpRURERERERERENY6n7xERERERERERUY3jpBQREREREREREdU4TkoREREREREREVGN46QUERERERERERHVOE5KERERERERERFRjeOkFBEREVEV+fn5oX///rUdBhEREZFa46QUERERERERERHVOE5KEREREalQaGgonJyc0LBhQ9jY2GDixInIzs4W14eHh8PY2BgnTpyATCaDvr4+evbsifT0dHGb/Px8TJ06FcbGxjAzM8Ps2bPh6+urcHSWnZ0d1qxZo1C3i4sLFi1apHQsALB161bY2NhAT08PAwYMQGhoKIyNjRW2+c9//oN27dpBR0cHzZs3x+LFi5Gfn1/t/xURERG92zgpRURERKRCUqkUa9euxY0bNxAREYFTp04hICBAYZucnBysWrUKu3fvxtmzZ5GWlgZ/f39x/YoVKxAZGYmdO3ciISEBWVlZOHTokMpjSUhIwIQJEzBt2jQkJyejR48eWLZsmcI+zp07hxEjRmDatGm4efMmvvnmG4SHh5fajoiIiKiqJIIgCLUdBBEREZE68fPzw9OnT5WaKDpw4AAmTJiAv/76C0DhkVIjR47E3bt30aJFCwDAxo0bsWTJEjx8+BAAYGlpCX9/f3GiqqCgAM2bN0fbtm3FOu3s7DB9+nRMnz5drMvFxQX9+/dXOFqqolg+//xzZGdnIzo6Wtxm2LBhiI6OxtOnTwEA3bt3R7du3TB37lxxm2+//RYBAQH4v//7v0pfPxEREVF5NGs7ACIiIqL6JC4uDkFBQfjtt9+QlZWF/Px8vHr1Cjk5OdDT0wMA6OnpiRNSAGBlZYU///wTAPDs2TM8evQIHTp0ENdraGjA1dUVcrlcpbGkpKRgwIABCs/p0KGDwiTV1atXkZCQoHBkVEFBQanXRERERFRVPH2PiIiISEVSU1PRt29ftGnTBgcPHkRSUhI2bNgAAHj9+rW4XYMGDRSeJ5FIUNWD16VSaann5OXlVTmWymRnZ2Px4sVITk4Wl2vXruHOnTvQ0dGpUsxERERExfFIKSIiIiIVSUpKglwuR0hICKTSwt/+9u3bV6V9GBkZwcLCAomJiejcuTOAwiOTLl++DBcXF3E7c3NzhYujZ2Vl4f79+1WKxcHBAYmJiQplJR+3a9cOKSkpaNmyZZVeBxEREVFlOClFRERE9AaePXuG5ORkhbJGjRohLy8P69atg7e3NxISErB58+Yq73vKlCkICgpCy5Yt8cEHH2DdunV48uQJJBKJuE3Xrl0RHh4Ob29vGBsbIzAwEBoaGuL6li1bVhrLlClT0LlzZ4SGhsLb2xunTp3CsWPHFOoJDAxE37590bRpUwwcOBBSqRRXr17F9evX8dVXX1X5tREREREV4el7RERERG/gzJkzaNu2rcKye/duhIaGYsWKFXB0dERkZCSCgoKqvO/Zs2dj8ODBGDFiBNzd3aGvrw8vLy+F0+Xmzp0LT09P9O3bF3369EH//v0VrlPl7OxcaSydOnXC5s2bERoaCmdnZxw/fhwzZsxQqMfLywvR0dE4efIk2rdvjw8//BCrV6+Gra3tG/zXiIiIiP7Gu+8RERER1XFyuRwymQyfffYZli5d+lbrGjt2LH777TecO3furdZDRERExNP3iIiIiOqY33//HSdPnoSnpydyc3Oxfv163L9/H0OGDFF5XatWrUKPHj3QsGFDHDt2DBEREdi4caPK6yEiIiIqiZNSRERERHWMVCpFeHg4/P39IQgCHB0dERcXB5lMpvK6fvnlF6xcuRLPnz9H8+bNsXbtWowZM0bl9RARERGVxNP3iIiIiIiIiIioxvFC50REREREREREVOM4KUVERERERERERDWOk1JERERERERERFTjOClFREREREREREQ1jpNSRERERERERERU4zgpRURERERERERENY6TUkREREREREREVOM4KUVERERERERERDWOk1JERERERERERFTj/h93H50RsR+U0gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAg55JREFUeJzs3Xd8U/X+x/F3mtJFFy2l7ClCZQooli0gBRFB/SkiKiii9wooIEOvynCBAwQRcSEggiCIC5Ap47Jkq6CAg6XsMsrsSM7vD25D03SkNJy06ev5ePB4kE9Ozvl888lJTj79nhOLYRiGAAAAAAAAABP5eTsBAAAAAAAAFD00pQAAAAAAAGA6mlIAAAAAAAAwHU0pAAAAAAAAmI6mFAAAAAAAAExHUwoAAAAAAACmoykFAAAAAAAA09GUAgAAAAAAgOloSgEAAAAAAMB0NKUAAEXKypUrZbFYtHLlSm+nUmBZLBaNGDHC22kgG61atVKrVq28nUah8MYbb6hmzZqy2+3eTiVPqLHvsVgs6tu3b67Lvf/++6pYsaKSk5NNyAoAvI+mFAAUYBaLxa1/ZjRYstv26NGjr/m2AV+2cOHCItME3Lhxo5588kk1bNhQxYoVk8ViyXbZ/L7nJCUl6fXXX9fQoUPl51f0DnknTJigiIgIpaamejuVAikxMVFvvvmmWrRooZiYGEVGRuqWW27R7Nmz3V7H8uXL9eijj+r6669XSEiIqlatqscee0yHDx++6rx69uyplJQUffDBB1e9DgAoTPy9nQAAIHvTp093uv3pp59q6dKlLvG4uDhT8rntttv08MMPO8VuvPFGU7YN+KqFCxdq4sSJRaIxtXDhQn388ceqW7euqlatqj179uS4fH7ecz755BOlpaWpW7duV51vYbZgwQK1a9dOxYoV83YqBdL69ev1/PPP6/bbb9cLL7wgf39/ffnll7r//vv166+/auTIkbmuY+jQoTp58qTuvfdeVa9eXX/99ZfeffddzZ8/X9u3b1fp0qXznFdQUJB69OihsWPHql+/fjk2bgHAF9CUAoAC7MEHH3S6vWHDBi1dutQlbpbrr7/ea9uG51y6dEkBAQFFcvYIri273a6UlBQFBQVlef+///1vDR06VMHBwerbt2+uTan8vOdMmTJFd955Z7a5+LILFy5o1apVmjRpkrdTKbBq1aql33//XZUqVXLEnnzySbVt21avv/66hgwZouLFi+e4jrFjx6pZs2ZO76Xt27dXy5Yt9e677+qVV165qtzuu+8+vfHGG1qxYoVat259VesAgMKCo1EAKOTOnz+vZ555RhUqVFBgYKBq1Kiht956S4ZhOC2Xfj2LGTNmqEaNGgoKClLDhg21evXqPG3v4sWLunTpktvLz507VxaLRatWrXK574MPPpDFYtGOHTuyfOzmzZtlsVg0bdo0l/sWL14si8Wi+fPnS5L279+vJ598UjVq1FBwcLCio6N17733at++fbnmWLlyZfXs2dMlntV1XZKTkzV8+HBdd911CgwMVIUKFTRkyBCX638sXbpUzZo1U2RkpEJDQ1WjRg395z//yTWXvNTpn3/+0aOPPqrY2FgFBgaqVq1a+uSTT5yWSb+G1qxZs/TCCy+oXLlyCgkJUVJSUq65pHP3uZ06daosFovWrl2rgQMHKiYmRsWLF9ddd92l48ePOy1rt9s1YsQIlS1bViEhIbr11lv166+/utRixIgRWc4USN9Wxhy++eYbdezYUWXLllVgYKCqVauml19+WTabzeXxEydOVNWqVRUcHKybb75Z//3vf/NV76z897//1b333quKFSs6HjtgwABdvHjRsUzPnj01ceJESc6nq+VFSkqKhg0bpoYNGyoiIkLFixdX8+bNtWLFCscyhmGocuXK6ty5s8vjL126pIiICD3xxBN5HnfG12utWrUUGBioRYsWZZtrbGysgoOD8zS+vL7nSNLevXv1888/q23bti73JSYm6qGHHlJ4eLgiIyPVo0cP/fTTT7JYLJo6darTsj/88IOaN2+u4sWLKzIyUp07d9Zvv/3mss5t27apQ4cOCg8PV2hoqNq0aaMNGza4LPfzzz+rZcuWCg4OVvny5fXKK69oypQpLq/lrOTltbh8+XIlJyerQ4cOV7Xt77//3jHusLAwdezYUTt37nRapmfPngoNDdWBAwd0xx13KDQ0VOXKlXO8nn/55Re1bt1axYsXV6VKlTRz5kynx6fvw2vWrNFTTz3lOIXuiSeeUEpKik6fPq2HH35YJUqUUIkSJTRkyBCXz7W33npLTZo0UXR0tIKDg9WwYUPNnTs3x+cxXZUqVZwaUtLl13OXLl2UnJysv/76K9d1tGjRwqW536JFC0VFRWX5OpHk1nt7w4YNFRUVpW+++catsQBAYcZMKQAoxAzD0J133qkVK1aoV69eql+/vhYvXqzBgwfrn3/+0dtvv+20/KpVqzR79mw99dRTCgwM1Hvvvaf27dtr48aNql27dq7bmzp1qt577z0ZhqG4uDi98MILeuCBB3J8TMeOHRUaGqovvvhCLVu2dLpv9uzZqlWrVrbbbtSokapWraovvvhCPXr0cHlsiRIllJCQIEnatGmT1q1bp/vvv1/ly5fXvn37NGnSJLVq1Uq//vqrQkJCch1fbux2u+68806tWbNGjz/+uOLi4vTLL7/o7bff1p49e/T1119Lknbu3Kk77rhDdevW1UsvvaTAwED98ccfWrt2rVvbcadOR48e1S233OJoCsTExOj7779Xr169lJSUpP79+zut8+WXX1ZAQIAGDRqk5ORkBQQEuD3uvD63/fr1U4kSJTR8+HDt27dP48aNU9++fZ2u1fLcc8/pjTfeUKdOnZSQkKCffvpJCQkJeW4+ZDR16lSFhoZq4MCBCg0N1Q8//KBhw4YpKSlJb775pmO5SZMmqW/fvmrevLkGDBigffv2qUuXLipRooTKly/vWM7demdnzpw5unDhgv79738rOjpaGzdu1IQJE/T3339rzpw5kqQnnnhChw4dyvK0XHclJSXp448/Vrdu3dS7d2+dPXtWkydPVkJCgjZu3Kj69evLYrHowQcf1BtvvKGTJ08qKirK8fjvvvtOSUlJjhlJeR33Dz/8oC+++EJ9+/ZVyZIlVbly5asaR1au5j1HktatWydJatCggVPcbrerU6dO2rhxo/7973+rZs2a+uabb1zeXyRp2bJl6tChg6pWraoRI0bo4sWLmjBhgpo2baqtW7c6xrlz5041b95c4eHhGjJkiIoVK6YPPvhArVq10qpVq9S4cWNJl5vIt956qywWi5577jkVL15cH3/8sQIDA3MdT15rsnDhQjVs2FCxsbF53vb06dPVo0cPJSQk6PXXX9eFCxc0adIkNWvWTNu2bXOqr81mU4cOHdSiRQu98cYbmjFjhvr27avixYvr+eefV/fu3XX33Xfr/fff18MPP6z4+HhVqVLFaXv9+vVT6dKlNXLkSG3YsEEffvihIiMjtW7dOlWsWFGvvfaaFi5cqDfffFO1a9d2Op1z/PjxuvPOO9W9e3elpKRo1qxZuvfeezV//nx17Ngx1+c1K0eOHJEk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7vy8tvIiL+852dm/f7/KlCnjcspp5tdD+vNTo0YNl3XExcXpxIkTOn/+vI4fP64LFy5ku5zdbtfBgwcd68y8nay2nZW81GTBggWKjY1Vo0aNnMbjzrZ///13SVLr1q1dtrVkyRKX2gcFBSkmJsYpFhERofLly7tcGy0iIsLxHpBR5veLiIgISVKFChVyffz8+fN1yy23KCgoSFFRUYqJidGkSZOcXvcnT57UkSNHHP+y2/f69eunRYsW6eOPP1a9evUc8ZSUFKfHHzlyJMs/4uzatUt33XWXateurY8//jjLbeTlM9j43/Wz+PU9AL6Oa0oBAK5a+peGkydP5rhcYGCgunTpoq+++krvvfeejh49qrVr1+q1115zaztdu3bVq6++qhMnTigsLEzffvutunXr5jTTpV+/fpoyZYr69++v+Ph4RUREyGKx6P7778+1GZTdQb/NZpPVanXcttvtqlOnjsaOHZvl8unPR3BwsFavXq0VK1ZowYIFWrRokWbPnq3WrVtryZIlTuu8GunjefDBB7O8Fo50eUZHRlc7S0rK+3Ob3fiMTBcpdkdOtcno9OnTatmypcLDw/XSSy+pWrVqCgoK0tatWzV06NCrmrHmbr2zy++2227TyZMnNXToUNWsWVPFixfXP//8o549e15VPtn57LPP1LNnT3Xp0kWDBw9WqVKlZLVaNWrUKP35559Oy95///0aMGCAZsyYof/85z/67LPP1KhRI6emSl7HnZ/XVl65+54THR2ttLQ0nT171qVpXxjlpSYLFy5U+/btr6qZkf66nD59ukqXLu1yf8b3XCn7fT0v7wF5WUfGx//3v//VnXfeqRYtWui9995TmTJlVKxYMU2ZMsXpoup333230w9t9OjRw+WC9iNHjtR7772n0aNHOzVopcvXJ7v11ludYnv37nVqYh88eFDt2rVTRESEFi5c6JHX3KlTpxQSEmLq/gUA3kBTCgAKsUqVKmnZsmUuX7zST1XK/MtC6X8Fz2jPnj0KCQlx+Wu3O9JPpXDnsV27dtW0adO0fPly/fbbbzIMI9dT9zI+duTIkfryyy8VGxurpKQk3X///U7LzJ07Vz169NCYMWMcsUuXLun06dO5rr9EiRJZLrd//36nU3KqVaumn376SW3atMn1C5+fn5/atGmjNm3aaOzYsXrttdf0/PPPa8WKFVn+IlhG7tQpLCxMNpst13V5Qn6e26ykvy7/+OMPp1k2iYmJLjMh0mdOnT592nFapOQ6C3DlypVKTEzUvHnz1KJFC0d879692W474xfNtLQ07du3z6mZl5d6Z/bLL79oz549mjZtmtOFmZcuXeqybH5nQsydO1dVq1bVvHnznNY1fPhwl2WjoqLUsWNHzZgxQ927d9fatWs1btw4p2XyM+5rzd33nJo1a0q6XP+MNa1UqZJWrFihCxcuOM2W+uOPP5wen/462b17t8u6d+3apZIlS6p48eIKCgpSSEhItsv5+fk5GkaVKlVy2U5W286KuzU5ffq01q1bp759+7qMx51tV6tWTZJUqlQpU95b8uPLL79UUFCQFi9e7HTB9ilTpjgtN2bMGKf3lbJlyzrdP3HiRI0YMUL9+/fX0KFDXbZTr149l/02Y8MuMTFR7dq1U3JyspYvX64yZcpkm3NePoP37t3rmPUMAL6M0/cAoBC7/fbbZbPZ9O677zrF3377bVksFqefA5ek9evXO11r4+DBg/rmm2/Url27HGfvZHVq39mzZzVu3DiVLFnS6RoZ2Wnbtq2ioqI0e/ZszZ49WzfffLPbp/3ExcWpTp06jseWKVPGqfEgXf6reua/wk+YMCHXa2VJl7+IbdiwQSkpKY7Y/PnzHafdpLvvvvv0zz//6KOPPnJZx8WLF3X+/HlJWc/iSL+WS1Y/355ZbnWyWq2655579OWXX2rHjh0uj8/rqZi5yc9zm5U2bdrI399fkyZNcopnfh1LV74kZ/zZ9PPnz2vatGkuOUrOMylSUlL03nvvOS3XqFEjRUdH66OPPlJaWpojPmPGDJeGmLv1zkpW+RiGofHjx7ssW7x4cUm66iZfVtv68ccftX79+iyXf+ihh/Trr79q8ODBslqtLg3e/IzbU/L7nhMfHy/p8jXEMkpISFBqaqrT2Ox2uyZOnOi0XJkyZVS/fn1NmzbNqS47duzQkiVLdPvtt0u6/Ny3a9dO33zzjfbt2+dY7ujRo5o5c6aaNWum8PBwx7bXr1+v7du3O5Y7efKk0zW+suNuTZYsWSJJateuncu43dl2QkKCwsPD9dprryk1NdVlW55+b8kPq9Uqi8Xi9D60b98+l18ibNiwodq2bev4l/H6Z+m/hNe9e/dsZ6GVKFHC6fFt27ZVUFCQpMvvRbfffrv++ecfLVy4MMvT8zLKy2fw1q1b1aRJE7eeCwAozJgpBQCFWKdOnXTrrbfq+eef1759+1SvXj0tWbJE33zzjfr37+/4Qp+udu3aSkhIcPo5aunyqQs5mThxor7++mt16tRJFStW1OHDh/XJJ5/owIEDmj59uuMiyzkpVqyY7r77bs2aNUvnz5/XW2+9laexdu3aVcOGDVNQUJB69eolPz/nv6vccccdmj59uiIiInTDDTdo/fr1WrZsmaKjo3Nd92OPPaa5c+eqffv2uu+++/Tnn3/qs88+c3n+HnroIX3xxRf617/+pRUrVqhp06ay2WzatWuXvvjiCy1evFiNGjXSSy+9pNWrV6tjx46qVKmSjh07pvfee0/ly5dXs2bNcs3HnTqNHj1aK1asUOPGjdW7d2/dcMMNOnnypLZu3aply5blenpTXuTnuc1KbGysnn76aY0ZM0Z33nmn2rdvr59++knff/+9SpYs6TQTpF27dqpYsaJ69erlaKJ88skniomJ0YEDBxzLNWnSRCVKlFCPHj301FNPyWKxaPr06S7NtICAAI0YMUL9+vVT69atdd9992nfvn2aOnWqqlWr5rRtd+udlZo1a6patWoaNGiQ/vnnH4WHh+vLL7/M8po66Q2Wp556SgkJCVk2inJyxx13aN68ebrrrrvUsWNH7d27V++//75uuOEGnTt3zmX5jh07Kjo6WnPmzFGHDh1UqlQpp/vzM+7c7N+/X9OnT5d0pWH0yiuvSLo8myf91Kn8vudUrVpVtWvX1rJly/Too4864l26dNHNN9+sZ555Rn/88Ydq1qypb7/91rG/ZKz/m2++qQ4dOig+Pl69evXSxYsXNWHCBEVERGjEiBGO5V555RUtXbpUzZo105NPPil/f3998MEHSk5O1htvvOFYbsiQIfrss8902223qV+/fipevLg+/vhjVaxYUSdPnsxxBpS7NVmwYIGaNWvmuC5TXrcdHh6uSZMm6aGHHlKDBg10//33O/a1BQsWqGnTplk2j72hY8eOGjt2rNq3b68HHnhAx44d08SJE3Xdddfp559/zvXxGzdu1MMPP6zo6Gi1adPGpUHXpEkTp5myWenevbs2btyoRx99VL/99pt+++03x32hoaHq0qWL0/LufgZv2bJFJ0+eVOfOnXMdBwAUeqb/3h8A4Kpl9RPqZ8+eNQYMGGCULVvWKFasmFG9enXj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8+b6/vvvJUkXL15U8+bN9cADD7g0udzxyy+/yGaz6frrr3eKJycnKzo6WpJks9n02muv6YsvvtA///yjlJQUJScnKyQkJM/by0qlSpUUExPjuP3TTz/p3Llzju2nu3jxov7880+PbBMAAPg+mlIAAAAesHDhQqWmpkqSgoODHfHAwEC1bdtW8+fP1+DBg1WuXLk8rffcuXOyWq3asmWLy+ym9Iuzv/nmmxo/frzGjRunOnXqqHjx4urfv79SUlJyXLefn58Mw3CKpY8ho+LFi7vkVKZMGafrWqXLfI0qAACA7NCUAgAARVp4eLjKli2rtWvXqmXLlo742rVrdfPNNzstu2HDBrVo0UKSlJaWpi1btqhv376SLs8myoqfn5+mT5+uBx54QLfeeqtWrlypsmXLup3fjTfeKJvNpmPHjql58+ZZLrN27Vp17txZDz74oCTJbrdrz549uuGGGxzLBAQEyGazOT0uJiZGZ8+e1fnz5x2Np/RrRuWkQYMGOnLkiPz9/VW5cmW3xwIAAJAR15QCAABF3uDBg/X6669r9uzZ2r17t5599llt375dTz/9tNNyEydO1FdffaVdu3apT58+OnXqlB599NFc12+1WjVjxgzVq1dPrVu31pEjR9zO7frrr1f37t318MMPa968edq7d682btyoUaNGacGCBZKk6tWra+nSpVq3bp1+++03PfHEEzp69KjTeipXrqwff/xR+/bt04kTJ2S329W4cWOFhIToP//5j/7880/NnDlTU6dOzTWntm3bKj4+Xl26dNGSJUu0b98+rVu3Ts8//7w2b97s9tgAAEDRRlMKAAAUeU899ZQGDhyoZ555RnXq1NGiRYv07bffqnr16k7LjR49WqNHj1a9evW0Zs0affvttypZsqRb2/D399fnn3+uWrVqqXXr1jp27Jjb+U2ZMkUPP/ywnnnmGdWoUUNdunTRpk2bVLFiRUnSCy+8oAYNGighIUGtWrVS6dKl1aVLF6d1DBo0SFarVTfccINiYmJ04MABRUVF6bPPPtPChQtVp04dff755xoxYkSu+VgsFi1cuFAtWrTQI488ouuvv17333+/9u/fr9jYWLfHBQAAijaLkflCAj4mKSlJEREROnPmjMLDw72dDgAAuIYuXbqkvXv3qkqVKgoKCvLYevft26cqVapo27Ztql+/vsfWW5Rcq9oAACBJLcM6emQ9q84u8Mh6ijp3ezHMlAIAAAAAAIDpaEoBAAAAAADAdPz6HgAAQC4qV64sH7/iAQAAgOmYKQUAAAAAAADT0ZQCAAAAAACA6WhKAQAAAAAAwHQ0pQAAAAAAAGA6mlIAAAAAAAAwHU0pAAAAAAAAmI6mFAAAAAAAAEzn7+0EAAAACrOWYR1N29aqswvy/JjVq1frzTff1JYtW3T48GF99dVX6tKli+eTAwAAyCNmSgEAAPiw8+fPq169epo4caK3UwEAAHDCTCkAAAAf1qFDB3Xo0MHbaQAAALhgphQAAAAAAABMR1MKAAAAAAAApqMpBQAAAAAAANPRlAIAAAAAAIDpaEoBAAAAAADAdPz6HgAAgA87d+6c/vjjD8ftvXv3avv27YqKilLFihW9mBkAACjqaEoBAAD4sM2bN+vWW2913B44cKAkqUePHpo6daqXsgIAAKApBQAAkC+rzi7wdgo5atWqlQzD8HYaAAAALrimFAAAAAAAAExHUwoAAAAAAACmoykFAAAAAAAA09GUAgAAAAAAgOloSgEAAAAAAMB0NKUAAAAAAABgOppSAAAAAAAAMB1NKQAAAAAAAJiOphQAAAAAAABMR1MKAAAAAAAApvP3dgIAAACFWbuuL5m2rSWzh+Vp+VGjRmnevHnatWuXgoOD1aRJE73++uuqUaPGNcoQAADAfcyUAgAA8FGrVq1Snz59tGHDBi1dulSpqalq166dzp8/7+3UAAAAmCkFAADgqxYtWuR0e+rUqSpVqpS2bNmiFi1aeCkrAACAy5gpBQAAUEScOXNGkhQVFeXlTAAAAGhKAQAAFAl2u139+/dX06ZNVbt2bW+nAwAAwOl7AAAARUGfPn20Y8cOrVmzxtupAAAASKIpBQAA4PP69u2r+fPna/Xq1Spfvry30wEAAJBEUwoAAMBnGYahfv366auvvtLKlStVpUoVb6cEAADgQFMKAADAR/Xp00czZ87UN998o7CwMB05ckSSFBERoeDgYC9nBwAAijoudA4AAOCjJk2apDNnzqhVq1YqU6aM49/s2bO9nRoAAAAzpQAAAPJjyexh3k4hW4ZheDsFAACAbDFTCgAAAAAAAKajKQUAAAAAAADT0ZQCAAAAAACA6WhKAQAAAAAAwHQ0pQAAAAAAAGA6mlIAAAAAAAAwHU0pAAAAAAAAmI6mFAAAAAAAAExHUwoAAAAAAACmoykFAAAAAAAA0/l7OwEAAIDCrP4rI0zb1vYX8r6tSZMmadKkSdq3b58kqVatWho2bJg6dOjg2eQAAADyqMDMlBo9erQsFov69+/viF26dEl9+vRRdHS0QkNDdc899+jo0aPeSxIAAKCQKV++vEaPHq0tW7Zo8+bNat26tTp37qydO3d6OzUAAFDEFYim1KZNm/TBBx+obt26TvEBAwbou+++05w5c7Rq1SodOnRId999t5eyBAAAKHw6deqk22+/XdWrV9f111+vV199VaGhodqwYYO3UwMAAEWc15tS586dU/fu3fXRRx+pRIkSjviZM2c0efJkjR07Vq1bt1bDhg01ZcoUrVu3joMoAACAq2Cz2TRr1iydP39e8fHx3k4HAAAUcV6/plSfPn3UsWNHtW3bVq+88oojvmXLFqWmpqpt27aOWM2aNVWxYkWtX79et9xyS5brS05OVnJysuN2UlKSJCktLU1paWmSJD8/P/n5+clut8tutzuWTY/bbDYZhpFr3Gq1ymKxONabMS5dPvBzJ+7v7y/DMJziFotFVqvVJcfs4oyJMTEmxsSYGBNjuvx5bxiG419mFovlmsavtavN8ZdfflGTJk106dIlhYaGat68eYqLi3N63LV+btJrkvGYzJdee7nFGRNjYkyMiTFd2zH5B1hlS7PLsBuyFrPKYrmSiy3VLsMw5B9gdcoxLdUmGXKKp6WlFZgx5RQv6HXKnFd2vNqUmjVrlrZu3apNmza53HfkyBEFBAQoMjLSKR4bG6sjR45ku85Ro0Zp5MiRLvFt27apePHikqSYmBhVq1ZNe/fu1fHjxx3LlC9fXuXLl9eePXt05swZR7xq1aoqVaqUduzYoYsXLzriNWvWVGRkpLZt2+ZUwLp16yogIECbN292yqFRo0ZKSUnRzz//7IhZrVbddNNNOnPmjHbt2uWIBwcHq169ejpx4oT++usvRzwiIkJxcXE6dOiQ/v77b0ecMTEmxsSYGBNjYkyXBQUFSZLsdrvTOiwWi4oXLy6bzaZLly454n5+fgoJCVFaWprTH7asVquCg4OVmpqqlJQUR9zf319BQUFKTk52+4DLU652TOXLl9fatWt17tw5zZ8/Xz179tT333+vmjVr5jimgIAABQQE6NKlS07Pe2BgoIoVK6aLFy86HZQGBQXJ399f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AAAAAABAEeJWUyopKcntFYaHh191MgAAAAAAACga3GpKRUZGOl1HKiuGYchischms3kkMQAAAAAAAPgut5pSK1asuNZ5AAAAAAAAoAhxqynVsmXLa50HAAAAAAAAipA8X+g83YULF3TgwAGlpKQ4xevWrZvvpAAAAAAAAODb8tyUOn78uB555BF9//33Wd7PNaUAAAAAAACQG7+8PqB///46ffq0fvzxRwUHB2vRokWaNm2aqlevrm+//fZa5AgAAAAAAAAfk+eZUj/88IO++eYbNWrUSH5+fqpUqZJuu+02hYeHa9SoUerYseO1yBMAAAAAAAA+JM8zpc6fP69SpUpJkkqUKKHjx49LkurUqaOtW7d6NjsAAAAAAAD4pDw3pWrUqKHdu3dLkurVq6cPPvhA//zzj95//32VKVPG4wkCAAAAAADA9+T59L2nn35ahw8fliQNHz5c7du314wZMxQQEKCpU6d6Oj8AAAAAAAD4oDw3pR588EHH/xs2bKj9+/dr165dqlixokqWLOnR5AAAAAAAAOCb8nz63po1a5xuh4SEqEGDBjSkAAAAAAAA4LY8N6Vat26tKlWq6D//+Y9+/fXXa5ETAAAAAAAAfFyeT987dOiQZs2apc8//1yjR49W3bp11b17d3Xr1k3ly5e/FjkCAAqJlmEdPbKeVWcXeGQ9AAAAAAquPM+UKlmypPr27au1a9fqzz//1L333qtp06apcuXKat269bXIEQAAAAAAAD4mz02pjKpUqaJnn31Wo0ePVp06dbRq1SpP5QUAAAAAAAAfdtVNqbVr1+rJJ59UmTJl9MADD6h27dpasIDTLQAAAAAAAJC7PF9T6rnnntOsWbN06NAh3XbbbRo/frw6d+6skJCQa5EfAAAAABR4XFcRAPIuz02p1atXa/DgwbrvvvtUsmTJa5ETAAAAAAAAfFyem1Jr1669FnkAAAAAAACgCMnXhc4BAAAAAACAq0FTCgAAAAAAAKajKQUAAAAAAADT0ZQCAAAAAACA6fLclHrssce0cuXKa5AKAAAAAAAAioo8N6WOHz+u9u3bq0KFCho8eLB++umna5EXAAAAAAAAfFiem1LffPONDh8+rBdffFGbNm1SgwYNVKtWLb322mvat2/fNUgRAAAAAAAAvuaqrilVokQJPf7441q5cqX279+vnj17avr06bruuus8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r776ql5//XVt2bJFFStW1KRJkzyWX2pqql5++WX99NNP+vrrr7Vv3z7HwVuFChX05ZdfSpJ2796tw4cPO33JmjZtmooXL64ff/xRb7zxhl566SUtXbrUY7kVBIcPH1a3bt306KOP6rffftPKlSt19913Ow7Gly9f7oh//vnnmjdvnkaOHOl4/Pnz5zVw4EBt3rxZy5cvl5+fn+666y6P/JX40qVLatiwoRYsWKAdO3bo8ccf10MPPaSNGzdKuny6U3x8vHr37u3462SFChUcj8/pdeeLxo8fr5deeknly5fX4cOHtWnTJkmXX8cBAQFau3at3n//fUmSn5+f3nnnHe3cuVPTpk3TDz/8oCFDhngkj7Nnz6pHjx5as2aNNmzYoOrVq+v22293NJfS85oyZYpTntLlg4avv/5a8+fP1/z587Vq1SqNHj3aI3kVNtOmTZO/v782btyo8ePHa+zYsfr444+dlhkzZowaNWqkbdu26cknn9S///3vfB38Dh48WM8884y2bdum+Ph4derUSYmJiZIuH4iWL19ec+bM0a+//qphw4bpP//5j7744gundaxYsUJ//vmnVqxYoWnTpmnq1KmmnpboLTNnzlS3bt00Y8YMdenSRQkJCSpRooQ2bdqkOXPmaNmyZerbt6/TY5YvX67du3dr6dKlmj9/vsdyOXfunG6//XYtX75c27ZtU/v27dWpUyeXRklOr5+kpCR16tRJderU0datW/Xyyy9r6NChHsuxoMlpf+vZs6c2b96sb7/9VuvXr5dhGLr99tudvjRduHBBr7/+uj7++GPt3LlTpUqVylc+HLu4L6djgZyOA9zdT/LjwoULeuuttzR9+nStXr1aBw4c0KBBgxz35/Z5WZTce++9SkxM1IoVKxyxkydPatGiRerevbvL8jNmzNCwYcP06quv6rffftNrr72mF198UdOmTct3Lhx/Zu+5557T6NGj9eKLL+rXX3/VzJkzFRsb67h/+PDheuGFF7R161b5+/vrgQce0JAhQzR+/Hj997//1R9//KFhw4Y5rdOM4wZPfC6+8847+vbbb/XFF19o9+7dmjFjhuMPq74g43FM9+7dc/wckuR4DXz//ff67bffNGnSJJUsWdLt7U2ePFkPPvigIiIi1KFDhyxrntVxUm55pRs8eLDGjBmjTZs2KSYmRp06dSp4fyQ14BGXLl0yQkJCjHXr1jnFe/XqZXTr1s1YsWKFIclYtmyZ474FCxYYkoyLFy8ahmEYjRs3Nvr06eP0+KZNmxr16tVzK4fhw4e7vaxhGMamTZsMScbZs2cNwzAcOZ46dcppuZYtWxrNmjVzit10003G0KFD3d5WYbBlyxZDkrFv3z6X+3r06GFERUUZ58+fd8QmTZpkhIaGGjabLcv1HT9+3JBk/PLLL25tX5Lx1VdfuZ1vx44djWeeecZxu2XLlsbTTz/ttIw7rztf9fbbbxuVKlVy3G7ZsqVx44035vq4OXPmGNHR0W5tI7t9Jjs2m80ICwszvvvuO0csq7oPHz7cCAkJMZKSkhyxwYMHG40bN3ZrO4Vdjx49jM6dOxuGcblucXFxht1ud9w/dOhQIy4uznG7UqVKxoMPPui4bbfbjVKlShmTJk1ya3sZa7B3715DkjF69GjH/ampqUb58uWN119/Pdt19OnTx7jnnnucxlCpUiUjLS3NEbv33nuNrl27upVTYZP+/vPuu+8aERERxsqVKw3DMIwPP/zQKFGihHHu3DnHsgsWLDD8/PyMI0eOGIZx+bmKjY01kpOT87S9YsWKGcWLF3f6FxgYaEREROT42Fq1ahkTJkxw3M7t9TNp0iQjOjra6T3zo48+MiQZ27ZtczvnwiCn/W3Pnj2GJGPt2rWO+06cOGEEBwcbX3zxhWEYhjFlyhRDkrF9+3a3t8mxi2dlPha42uOAzPuJO7KrZfrr4o8//nDEJk6caMTGxma7Lnc/L31V586djUcffdRx+4MPPjDKli1r2Gw2l+e5WrVqxsyZM50e//LLLxvx8fFubYvjz7xLSkoyAgMDjY8++sjlvvTjiI8//tgR+/zzzw1JxvLlyx2xUaNGGTVq1HDczu9xg5mfi/369TNat27t9FlR2GV3HJOVzJ9DnTp1Mh555JGr2u6ePXuMYsWKGcePHzcMwzC++uoro0qVKk7PrbvHSdl9Ps6aNcuxTGJiohEcHGzMnj37qvK9Vpgp5SF//PGHLly4oNtuu02hoaGOf59++qnTKVx169Z1/L9MmTKS5Jhmt3v3bt18881O6818Oz+2bNmiTp06qWLFigoLC1PLli0lya2/hGXMW7qce1bTAwuzevXqqU2bNqpTp47uvfdeffTRRzp16pTT/SEhIY7b8fHxOnfunGOK5e+//65u3bqpatWqCg8Pd/zFwBN/abTZbHr55ZdVp04dRUVFKTQ0VIsXL3Z73Tm97oqShg0busSWLVumNm3aqFy5cgoLC9NDDz2kxMREXbhwId/bO3r0qHr37q3q1asrIiJC4eHhOnfunFt1q1y5ssLCwhy3fXGfc9ctt9wii8XiuB0fH6/ff/9dNpvNEcv4GrdYLCpdunS+nq/4+HjH//39/dWoUSP99ttvjtjEiRPVsGFDxcTEKDQ0VB9++KFLXWvVqiWr1eq47es1nDt3rgYMGKClS5c6Pl9+++031atXT8WLF3cs17RpU9ntdqeZbHXq1FFAQECette9e3dt377d6d9LL73ktMy5c+c0aNAgxcXFKTIyUqGhofrtt99capXT62f37t2Oae/pPPnZXNBkt7/9+uuv8vf3V+PGjR33RUdHq0aNGk77RkBAgMsxQ35w7OIZOR0HuLuf5EdISIiqVavmlEPGWuTn89IXde/eXV9++aWSk5MlXZ4Ndf/998vPz/mr2/nz5/Xnn3+qV69eTt8/XnnlFY9cQoLjz6z99ttvSk5OVps2bbJdJuPY02dQ1alTxymW+bnI73GDWZ+LPXv21Pbt21WjRg099dRTWrJkids5FmRZHcdIuX8O/fvf/9asWbNUv359DRkyROvWrXN7m5988okSEhIcM6tuv/12nTlzRj/88IPTclkdJ7n7+ZjxmDYqKsrlc7sg8M99Ebgj/foYCxYsULly5ZzuCwwMdHwwFCtWzBFPP+gz4yKg58+fV0JCghISEjRjxgzFxMTowIEDSkhIcOtiaRnzli7n7msXL7VarVq6dKnWrVunJUuWaMKECXr++ef1448/uvX4Tp06qVKlSvroo48c1wKoXbu2Ry5G9+abb2r8+PEaN26c4/pH/fv3d3vd3nrdFTQZvxhLl69Hcscdd+jf//63Xn31VUVFRWnNmjXq1auXUlJSnJqQV6NHjx5KTEzU+PHjValSJQUGBio+Pp597how8/maNWuWBg0apDFjxig+Pl5hYWF68803Xd4riloNb7zxRm3dulWffPKJGjVq5NTYyE3mfdMdERERuu6665ximU8VGzRokJYuXaq33npL1113nYKDg/V///d/LvtgUavVtRQcHJyn2ueEYxfPyek4wN39xFPbT8/ByHBtwPx8XvqiTp06yTAMLViwQDfddJP++9//6u2333ZZLv37x0cffeTUMJbk1Ny4Whx/Zi3jtdKyk9XYM8cyPxf5fc8y63OxQYMG2rt3r77//nstW7ZM9913n9q2beu4lnJhldVxjDufQx06dND+/fu1cOFCLV26VG3atFGfPn301ltv5bg9m82madOm6ciRI04/yGSz2fTJJ584NT0zHyfl9/OxoKEp5SEZL+iZsbOazp2/VtSoUUObNm3Sww8/7IhlvMZMfuzatUuJiYkaPXq041zvzZs3Oy2T3n3NOPugqLFYLGratKmaNm2qYcOGqVKlSvrqq68kST/99JMuXrzo+CDasGGDQkNDVaFCBSUmJmr37t366KOP1Lx5c0nSmjVrPJbX2rVr1blzZz344IOSLn+g79mzRzfccINjmYCAgCJdu6uxZcsW2e12jRkzxvHXx8zXBcqPtWvX6r333tPtt98uSTp48KBOnDjhtEyxYsWoWy4yN3vSrzfiiQPu7GzYsEEtWrSQJKWlpWnLli2O6yCtXbtWTZo00ZNPPulY3lM/alCYVatWTWPGjFGrVq1ktVr17rvvKi4uTlOnTtX58+cdB1Rr166Vn5+fRy9onp21a9eqZ8+euuuuuyRd/gKXfuFnd9WoUUOfffaZkpOTHb/85anP5oIou/3thhtuUFpamn788Uc1adJEkhyffRk/izyJY5e8u5pjAU/sJ/nlzudlURIUFKS7775bM2bM0B9//KEaNWqoQYMGLsvFxsaqbNmy+uuvv7K83lR+cfyZterVqys4OFjLly/XY4895u108sRT+3t4eLi6du2qrl276v/+7//Uvn17nTx5UlFRUR7O2DxZHce48zkkSTExMerRo4d69Oih5s2ba/Dgwbk2pRYuXKizZ89q27ZtTse0O3bs0COPPKLTp09n+2vU7uYlXf4cr1ixoqTLF2Xfs2eP4uLicn0+zERTykPCwsI0aNAgDRgwQHa7Xc2aNdOZM2e0du1ahYeHq1KlSrmuo1+/furdu7caNWqkJk2aaPbs2fr5559VtWpVt/O4ePGiy68Bpf9qQkBAgCZMmKB//etf2rFjh15++WWn5SpVqiSLxaL58+fr9ttvV3BwsEJDQ93edmH3448/avny5WrXrp1KlSqlH3/8UcePH1dcXJx+/vlnpaSkqFevXnrhhRe0b98+DR8+XH379pWfn59KlCih6OhoffjhhypTpowOHDigZ599Ns857N2716V+1atXV/Xq1TV37lytW7dOJUqU0NixY3X06FGng4LKlSvrxx9/1L59+xQaGlqoPxTMct111yk1NVUTJkxQp06dnC6Anhe//PKL06l2FotF9erVU/Xq1R2/jJGUlKTBgwe7/HWtcuXKWr58uZo2barAwECVKFEi3+PyNQcOHNDAgQP1xBNPaOvWrZowYYLGjBlzTbc5ceJEVa9eXXFxcXr77bd16tQpxwVaq1evrk8//VSLFy9WlSpVNH36dG3atElVqlS5pjkVBtdff71WrFihVq1ayd/fX6+99pqGDx+uHj16aMSIETp+/Lj69eunhx56yOmCsNdK9erVNW/ePHXq1EkWi0Uvvvhinv9K/8ADD+j555/X448/rmeffVYHDhxwHGh6akZQQZLd/la9enV17txZvXv31gcffKCwsDA9++yzKleunDp37pyvbXLs4jmZjwXceb17Yj/JL3c+L4ua7t2764477tDOnTsdTaGsjBw5Uk899ZQiIiLUvn17JScna/PmzTp16pQGDhzo1rY4/syboKAgDR06VEOGDFFAQICaNm2q48ePa+fOnTme0lcQeGJ/Hzt2rMqUKaMbb7xRfn5+mjNnjkqXLp1tA6UwyXwc8/zzz+f6OTRs2DA1bNhQtWrVUnJysubPn+9W02fy5Mnq2LGj6tWr5xS/4YYbNGDAAM2YMUN9+vTJ8rHufD6me+mllxQdHa3Y2Fg9//zzKlmypONXrgsKrinlQS+//LJefPFFjRo1SnFxcWrfvr0WLFjg9heV7t2767nnntOgQYMc0yJ79uzpdB2L3OzZs0c33nij078nnnhCMTExmjp1quMnJ0ePHu3SvS1XrpxGjhypZ599VrGxsS6/juTrwsPDtXr1at1+++26/vrr9cILL2jMmDHq0KGDJKlNmzaqXr26WrRooa5du+rOO+90/Ly0n5+fZs2apS1btqh27doaMGCA3nzzzTznMHDgQJf6bdu2TS+88IIaNGighIQEtWrVSqVLl3Z5Mxk0aJCsVqtuuOEGxxRO5KxevXoaO3asXn/9ddWuXVszZsy4qp+0bdGihVPN0q9dNXnyZJ06dUoNGjTQQw89pKeeesplGvWYMWO0dOlSVahQQTfeeKNHxuVrHn74YV28eFE333yz+vTpo6efflqPP/64R9adfiCWcdq0JI0ePVqjR49W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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAApUlJREFUeJzs3Xl8VPX1//H3LNkIJCEhBDCETQQEAQXFCAgCEilVEH6utGK1aiugYF3q1w0sFZe6IqJWCi5VEEW0oqwilk0NBhEVcGGRHQJJIGSdub8/6FwymZlkJoQ7yfh6Ph48NCd37j1nztxk5uQzd2yGYRgCAAAAAAAALGQPdwIAAAAAAAD49WEoBQAAAAAAAMsxlAIAAAAAAIDlGEoBAAAAAADAcgylAAAAAAAAYDmGUgAAAAAAALAcQykAAAAAAABYjqEUAAAAAAAALMdQCgAAAAAAAJZjKAUA+FX59NNPZbPZ9Omnn4Y7lTrLZrNp4sSJ4U4DAfTv31/9+/cPdxr1wuOPP66OHTvK7XaHO5WQ0OPIY7PZNHbs2Gq3e/HFF5WRkaGSkhILsgKA8GMoBQB1mM1mC+qfFQOWQMd+9NFHT/mxgUj20Ucf/SqGgG63W7NmzdJll12mli1bKj4+Xl26dNHkyZNVXFzs9zYzZsxQp06dFBsbq/bt22vq1KlBH6+goECPPfaY7rnnHtntv76nvFOnTlViYqLKysrCnUqdlJubqyeeeEIXXnihUlNTlZSUpPPPP19z5swJeh/Lli3TDTfcoDPOOEMNGjRQ27Zt9cc//lF79uypcV7XX3+9SktL9dJLL9V4HwBQnzjDnQAAILDXX3/d6+vXXntNS5Ys8Yl36tTJknwuvvhiXXfddV6xs88+25JjA5Hqo48+0rRp0yJ+MHXs2DH94Q9/0Pnnn68//elPatq0qdasWaOHHnpIy5Yt0yeffCKbzWZu/9JLL+lPf/qTRo4cqTvuuEP//e9/ddttt+nYsWO65557qj3ev/71L5WXl+uaa645lWXVWQsWLNDgwYMVFRUV7lTqpDVr1ui+++7Tb37zG91///1yOp169913dfXVV+u7777TpEmTqt3HPffco0OHDumKK65Q+/bt9fPPP+v555/Xhx9+qPXr16tZs2Yh5xUbG6vRo0frqaee0rhx47zOCQCIRAylAKAO+93vfuf19dq1a7VkyRKfuFXOOOOMsB0btae4uFjR0dG/ytUjOLXcbrdKS0sVGxvr873o6GitWrVKF1xwgRm76aab1Lp1a3MwNWjQIElSUVGR7rvvPg0dOlTvvPOOua3b7dbf/vY33XzzzWrcuHGVucycOVOXXXaZ31wi3bFjx7RixQpNnz493KnUWZ07d9YPP/ygVq1ambFbb71VgwYN0mOPPaa7775b8fHxVe7jqaeeUp8+fbx+ll5yySXq16+fnn/+eU2ePLlGuV155ZV6/PHHtXz5cg0YMKBG+wCA+oJnowBQzxUWFuovf/mLWrZsqZiYGHXo0EH/+Mc/ZBiG13ae61n8+9//VocOHRQbG6sePXros88+C+l4RUVFAd9q488777wjm82mFStW+HzvpZdeks1m08aNG/3eNjs7WzabTa+++qrP9xYtWiSbzaYPP/xQkrR9+3bdeuut6tChg+Li4pSSkqIrrrhC27ZtqzbH1q1b6/rrr/eJ+7uuS0lJiR566CGdfvrpiomJUcuWLXX33Xf7XP9jyZIl6tOnj5KSktSwYUN16NBB//d//1dtLqH0adeuXbrhhhuUlpammJgYde7cWf/617+8tvFcQ2v27Nm6//77ddppp6lBgwYqKCioNhePYO/bWbNmyWazadWqVbrjjjuUmpqq+Ph4XX755Tpw4IDXtm63WxMnTlSLFi3UoEEDXXTRRfruu+98ejFx4kS/KwU8x6qYw/vvv6+hQ4eqRYsWiomJUbt27fS3v/1NLpfL5/bTpk1T27ZtFRcXp/POO0///e9/T6rf/vz3v//VFVdcoYyMDPO2EyZMUFFRkbnN9ddfr2nTpknyfotsKEpLS/Xggw+qR48eSkxMVHx8vPr27avly5eb2xiGodatW2vYsGE+ty8uLlZiYqJuueWWkOuu+Hjt3LmzYmJitHDhQr95RkdHew2kPC6//HJJ0vfff2/Gli9frtzcXN16661e244ZM0aFhYVasGBBlffJ1q1btWHDBnPIVVFubq5+//vfKyEhQUlJSRo9erS+/vpr2Ww2zZo1y2vbTz75RH379lV8fLySkpI0bNgwrzw9cnJyNGTIECUkJKhhw4YaOHCg1q5d67Pdhg0b1K9fP8XFxSk9PV2TJ0/WzJkzfR7L/oTyWFy2bJlKSko0ZMiQGh37448/Nutu1KiRhg4dqm+//dZrm+uvv14NGzbUjh079Nvf/lYNGzbUaaedZj6ev/nmGw0YMEDx8fFq1aqV3nzzTa/be87hlStX6rbbbjPfQnfLLbeotLRUeXl5uu6669S4cWM1btxYd999t8/vtX/84x+64IILlJKSori4OPXo0cMcYlanTZs2XgMp6fjjefjw4SopKdHPP/9c7T4uvPBCn+H+hRdeqOTkZL+PE0lB/Wzv0aOHkpOT9f777wdVCwDUZ6yUAoB6zDAMXXbZZVq+fLluvPFGde/eXYsWLdJdd92lXbt26emnn/bafsWKFZozZ45uu+02xcTE6IUXXtAll1yiL774Ql26dKn2eLNmzdILL7wgwzDUqVMn3X///br22murvM3QoUPVsGFDvf322+rXr5/X9+bMmaPOnTsHPHbPnj3Vtm1bvf322xo9erTPbRs3bqysrCxJ0pdffqnVq1fr6quvVnp6urZt26bp06erf//++u6779SgQYNq66uO2+3WZZddppUrV+rmm29Wp06d9M033+jpp5/Wli1bNH/+fEnSt99+q9/+9rfq2rWrHn74YcXExOjHH3/UqlWrgjpOMH3at2+fzj//fHMokJqaqo8//lg33nijCgoKNH78eK99/u1vf1N0dLTuvPNOlZSUKDo6Oui6Q71vx40bp8aNG+uhhx7Stm3b9Mwzz2js2LFe12q599579fjjj+vSSy9VVlaWvv76a2VlZYU08Kxs1qxZatiwoe644w41bNhQn3zyiR588EEVFBToiSeeMLebPn26xo4dq759+2rChAnatm2bhg8frsaNGys9Pd3cLth+BzJ37lwdO3ZMf/7zn5WSkqIvvvhCU6dO1c6dOzV37lxJ0i233KLdu3f7fVtusAoKCvTKK6/ommuu0U033aQjR45oxowZysrK0hdffKHu3bvLZrPpd7/7nR5//HEdOnRIycnJ5u3/85//qKCgwFwFGWrdn3zyid5++22NHTtWTZo0UevWrUPKf+/evZKkJk2amLGcnBxJx38GVNSjRw/Z7Xbl5ORUuWpz9erVkqRzzjnHK+52u3XppZfqiy++0J///Gd17NhR77//vs/PF0launSphgwZorZt22rixIkqKirS1KlT1bt3b3311Vdmnd9++6369u2rhIQE3X333YqKitJLL72k/v37a8WKFerVq5ek40Pkiy66SDabTffee6/i4+P1yiuvKCYmptr7KNSefPTRR+rRo4fS0tJCPvbrr7+u0aNHKysrS4899piOHTum6dOnq0+fPsrJyfHqr8vl0pAhQ3ThhRfq8ccf17///W+NHTtW8fHxuu+++zRq1CiNGDFCL774oq677jplZmaqTZs2XscbN26cmjVrpkmTJmnt2rV6+eWXlZSUpNWrVysjI0OPPPKIPvroIz3xxBPq0qWL11vIn332WV122WUaNWqUSktLNXv2bF1xxRX68MMPNXTo0GrvV3/8PR5DcfToUR09etTv7UP5HXzOOecE/TsDAOo1AwBQb4wZM8ao+KN7/vz5hiRj8uTJXtv9v//3/wybzWb8+OOPZkySIcnIzs42Y9u3bzdiY2ONyy+/vNpjX3DBBcYzzzxjvP/++8b06dONLl26GJKMF154odrbXnPNNUbTpk2N8vJyM7Znzx7DbrcbDz/8cJW3vffee42oqCjj0KFDZqykpMRISkoybrjhBjN27Ngxn9uuWbPGkGS89tprZmz58uWGJGP58uVmrFWrVsbo0aN9bt+vXz+jX79+5tevv/66Ybfbjf/+979e27344ouGJGPVqlWGYRjG008/bUgyDhw4UGVt/gTbpxtvvNFo3ry5cfDgQa/bX3311UZiYqJ5f3jqbdu2rd/7KFAODz30kPl1sPftzJkzDUnGoEGDDLfbbcYnTJhgOBwOIy8vzzAMw9i7d6/hdDqN4cOHe+1z4sSJhiSvXjz00EOGv6crnmNt3bq1yjxvueUWo0GDBkZxcbFhGMcfOykpKca5555rlJWVmdvNmjXLkFSjfgfiL58pU6YYNpvN2L59uxmrfF5Xp/Ljsry83CgpKfHa5vDhw0ZaWprXObJ582ZDkjF9+nSvbS+77DKjdevWZs9CqVuSYbfbjW+//Tbo/CsbNGiQkZCQYBw+fNiMjRkzxnA4HH63T01NNa6++uoq93n//fcbkowjR454xd99911DkvHMM8+YMZfLZQwYMMCQZMycOdOMd+/e3WjatKmRm5trxr7++mvDbrcb1113nRkbPny4ER0dbfz0009mbPfu3UajRo2MCy+80IyNGzfOsNlsRk5OjhnLzc01kpOTfR7LNf3Z45GRkeF1Dgd77CNHjhhJSUnGTTfd5LW/vXv3GomJiV7x0aNHG5KMRx55xIwdPnzYiIuLM2w2mzF79mwzvmnTJp+fK55zOCsry+vnRWZmpmGz2Yw//elPZqy8vNxIT0/3uk8Mw/ccKy0tNbp06WIMGDDAqInc3FyjadOmRt++fWt0e8MwjL/97W+GJGPZsmVe8VB/B998881GXFxcjfMAgPqCt+8BQD320UcfyeFw6LbbbvOK/+Uvf5FhGPr444+94pmZmerRo4f5dUZGhoYNG6ZFixb5fYtTRatWrdLtt9+uyy67TH/605+0bt06denSRf/3f//n9XYkf6666irt37/f61MC33nnHbndbl111VXV3rasrEzz5s0zY4sXL1ZeXp7XbePi4sz/LysrU25urk4//XQlJSXpq6++qvIYwZo7d646deqkjh076uDBg+Y/zzU/PG+XSkpKknT87WQ1+Sj66vpkGIbeffddXXrppTIMwyuXrKws5efn+9Q8evRor/soFKHetzfffLPXW9D69u0rl8ul7du3Szr+1qLy8nKft2aNGzeuRvn5y/PIkSM6ePCg+vbtq2PHjmnTpk2Sjr8lNDc3VzfddJOczhMLxkeNGuVzjaJg+x1MPoWFhTp48KAuuOACGYZhrgSqDQ6Hw1z55na7dejQIZWXl6tnz55e/TnjjDPUq1cv/fvf/zZjhw4d0scff6xRo0aZPQu17n79+unMM8+sUe6PPPKIli5dqkcffdQ8b6TjbxMOtJovNja22p85ubm5cjqdatiwoVd84cKFioqK0k033WTG7Ha7xowZ47Xdnj17tH79el1//fVeq8q6du2qiy++WB999JGk4yuFFi9erOHDh6tt27bmds2bN9e1116rlStXmm+VXbhwoTIzM9W9e3dzu+TkZI0aNarKWqTQerJx40bt2LHDa6VQsMdesmSJ8vLydM0113gdx+FwqFevXn4f83/84x/N/09KSlKHDh0UHx+vK6+80ox36NBBSUlJft8Sd+ONN3r9vOjVq5cMw9CNN95oxhwOh3r27Olz+4rn2OHDh5Wfn6++ffvW6Ge+2+3WqFGjlJeXF9KnPFb02WefadKkSbryyiv9XgsqlN/BjRs3VlFRkY4dO1ajXACgvuDtewBQj23fvl0tWrRQo0aNvOKeT+PzDAE82rdv77OPM844Q8eOHdOBAwdC+qSg6OhojR071hxQ9enTJ+C2l1xyiRITEzVnzhwNHDhQ0vG333Xv3l1nnHFGlcfp1q2bOnbsqDlz5pgvUubMmaMmTZp4PekvKirSlClTNHPmTO3atcvr2iP5+flB11WVH374Qd9//71SU1P9fn///v2Sjg/SXnnlFf3xj3/UX//6Vw0cOFAjRozQ//t//y+oi4tX1ye73a68vDy9/PLLevnll6vMxaPyW2ZCEep9m5GR4fW1Z9hz+PBhSScel6effrrXdsnJydVevLoq3377re6//3598sknPtfM8uQZ6NhOp9PnbWfB9juQHTt26MEHH9QHH3xg1l45n9ry6quv6sknn9SmTZtUVlZmxiv3/brrrtPYsWO1fft2tWrVSnPnzlVZWZl+//vfm9uEWndNH1tz5szR/fffrxtvvFF//vOfvb4XFxen0tJSv7crLi6u8YB1+/btat68uc9bTis/HjyPkw4dOvjso1OnTlq0aJEKCwt15MgRHTt2LOB2brdbv/zyizp37qzt27crMzPTZ7vKx/YnlJ4sWLBAaWlpXm99DPbYP/zwgyQFvLh2QkKC19exsbE+OSUmJio9Pd3n2miJiYk+54Hk+/MiMTFRktSyZctqb//hhx9q8uTJWr9+vde1tSoe+9ChQ16Ppbi4OPMYFY0bN04LFy7Ua6+9pm7dupnx0tJSHTp0yGvb1NRUORwOr9imTZt0+eWXq0uXLnrllVd89i+F9jvY83OWT98DEOkYSgEAaszzoqHyE/bKYmJiNHz4cL333nt64YUXtG/fPq1atUqPPPJIUMe56qqr9Pe//10HDx5Uo0aN9MEHH+iaa67xWukybtw4zZw5U+PHj1dmZqYSExNls9l09dVXV7taKdCTfpfL5fXCw+1266yzztJTTz3ld3vP/REXF6fPPvtMy5cv14IFC7Rw4ULNmTNHAwYM0OLFi31ezITKU8/vfvc7v9fCkY6v6Kiopi/ipdDv20D1GZUuUhyMqnpTUV5envr166eEhAQ9/PDDateunWJjY/XVV1/pnnvuqdGKtWD7HSi/iy++WIcOHdI999yjjh07Kj4+Xrt27dL1119fo3wCeeONN3T99ddr+PDhuuuuu9S0aVM5HA5NmTJFP/30k9e2V199tSZMmKB///vf+r//+z+98cYb6tmzp9dQJdS6a/LYWrJkia677joNHTpUL774os/3mzdvLpfLpf3796tp06ZmvLS0VLm5uWrRokWV+09JSVF5ebmOHDniM7Svj0LpyUcffaRLLrmkRsMMz+Py9ddf9/tHioo/c6XA53ooPwNC2UfF2//3v//VZZddpgsvvFAvvPCCmjdvrqioKM2cOdProuojRozw+qCN0aNH+1zQftKkSXrhhRf06KOPeg1opePXJ7vooou8Ylu3bvUaYv/yyy8aPHiwEhMT9dFHH9XKY+7w4cNq0KDBSf3sBoD6gKEUANRjrVq10tKlS31eeHneqlT5k4U8fwWvaMuWLWrQoEHAv8BXxfNWimBue9VVV+nVV1/VsmXL9P3338swjGrfulfxtpMmTdK7776rtLQ0FRQU6Oqrr/ba5p133tHo0aP15JNPmrHi4mLl5eVVu//GjRv73W779u1eb8lp166dvv76aw0cOLDaF3x2u10DBw7UwIED9dRTT+mRRx7Rfffdp+XLl/v9RLCKgulTo0aN5HK5qt1XbTiZ+9Yfz+Pyxx9/9Fplk5ub67MSwrNyKi8vz+vtXZVXAX766afKzc3VvHnzdOGFF5rxrVu3Bjx2xRea5eXl2rZtm9cwL5R+V/bNN99oy5YtevXVV70uzLxkyRKfbU92JcQ777yjtm3bat68eV77euihh3y2TU5O1tChQ/Xvf/9bo0aN0qpVq/TMM894bXMydQfj888/1+WXX66ePXvq7bff9hl0SDLfZpadna3f/OY3Zjw7O1tut9vrbWj+dOzYUdLx/lfsaatWrbR8+XIdO3bMa7XUjz/+6HV7z+Nk8+bNPvvetGmTmjRpovj4eMXGxqpBgwYBt7Pb7ebAqFWrVj7H8Xdsf4LtSV5enlavXq2xY8f61BPMsdu1aydJatq0qSU/W07Gu+++q9jYWC1atMjrgu0zZ8702u7JJ5/0+rlSeaA5bdo0TZw4UePHj9c999zjc5xu3br5nLcVB3a5ubkaPHiwSkpKtGzZMjVv3jxgzqH8Dt66dau56hkAIhnXlAKAeuw3v/mNXC6Xnn/+ea/4008/LZvN5vVx4JK0Zs0ar2tt/PLLL3r//fc1ePDgKlfvHDhwwCd25MgRPfPMM2rSpInXNTICGTRokJKTkzVnzhzNmTNH5513XtBv++nUqZPOOuss87bNmzf3GjxIx/+qXvmv8FOnTq32WlnS8Rdia9eu9XqLx4cffqhffvnFa7srr7xSu3bt0j//+U+ffRQVFamwsFCS/5VjnhfR/j6+vbLq+uRwODRy5Ei9++672rhxo8/t/fXrZJzMfevPwIED5XQ6NX36dK945cexdOJFcsWPTS8sLNSrr77qk6PkvZKitLRUL7zwgtd2PXv2VEpKiv75z3+qvLzcjP/73//2GYgF229//OVjGIaeffZZn23j4+MlqcZDPn/H+vzzz7VmzRq/2//+97/Xd999p7vuuksOh8NnwHsydVfn+++/19ChQ9W6dWt9+OGHAVeBDBgwQMnJyT6PkenTp6tBgwbVfrKa561q2dnZXvGsrCyVlZV51eZ2uzVt2jSv7Zo3b67u3bvr1Vdf9erLxo0btXjxYnNQ5nA4NHjwYL3//vvatm2bud2+ffv05ptvqk+fPuZb3rKysrRmzRqtX7/e3O7QoUNe1/gKJNieLF68WJI0ePBgn7qDOXZWVpYSEhL0yCOPeL0N1KO2f7acDIfDIZvN5vVzaNu2bT6fRNijRw8NGjTI/Ffx+meeT8IbNWpUwFVojRs39rr9oEGDFBsbK+n4z6Lf/OY32rVrlz766CO/b8+rKJTfwV999ZUuuOCCoO4LAKjPWCkFAPXYpZdeqosuukj33Xeftm3bpm7dumnx4sV6//33NX78ePMFvUeXLl2UlZXl9XHU0vG3LlRl2rRpmj9/vi699FJlZGRoz549+te//qUdO3bo9ddfD3hB4oqioqI0YsQIzZ49W4WFhfrHP/4RUq1XXXWVHnzwQcXGxurGG2/0uTbTb3/7W73++utKTEzUmWeeqTVr1mjp0qVKSUmpdt9//OMf9c477+iSSy7RlVdeqZ9++klvvPGGz/33+9//Xm+//bb+9Kc/afny5erdu7dcLpc2bdqkt99+W4sWLVLPnj318MMP67PPPtPQoUPVqlUr7d+/Xy+88ILS09OrvPaWRzB9evTRR7V8+XL16tVLN910k84880wdOnRIX331lZYuXVrtWypDcTL3rT9paWm6/fbb9eSTT+qyyy7TJZdcoq+//loff/yxmjRp4rUSZPDgwcrIyNCNN95oDlH+9a9/KTU1VTt27DC3u+CCC9S4cWONHj1at912m2w2m15//XWfYVp0dLQmTpyocePGacCAAbryyiu1bds2zZo1S+3atfM6drD99qdjx45q166d7rzzTu3atUsJCQl69913/V5TxzPUve2225SVleV3UFSV3/72t5o3b54uv/xyDR06VFu3btWLL76oM888U0ePHvXZfujQoUpJSdHcuXM1ZMgQr7fHnWzdVTly5IiysrJ0+PBh3XXXXVqwYIHX99u1a2cOk+Li4vS3v/1NY8aM0RVXXKGsrCz997//1RtvvKG///3vXhcf96dt27bq0qWLli5dqhtuuMGMDx8+XOedd57+8pe/6Mcff1THjh31wQcfmOdLxf4/8cQTGjJkiDIzM3XjjTeqqKhIU6dOVWJioiZOnGhuN3nyZC1ZskR9+vTRrbfeKqfTqZdeekklJSV6/PHHze3uvvtuvfHGG7r44os1btw4xcfH65VXXlFGRoYOHTpU5QqoYHuyYMEC9enTx+eaScEeOyEhQdOnT9fvf/97nXPOObr66qvNc23BggXq3bu33+FxOAwdOlRPPfWULrnkEl177bXav3+/pk2bptNPP10bNmyo9vZffPGFrrvuOqWkpGjgwIE+A7oLLrjAa6WsP6NGjdIXX3yhG264Qd9//72+//5783sNGzbU8OHDvbYP9nfwunXrdOjQIQ0bNqzaOgCg3rP40/4AACfB30fHHzlyxJgwYYLRokULIyoqymjfvr3xxBNPeH3EtmEc/zjqMWPGGG+88YbRvn17IyYmxjj77LON5cuXV3vcxYsXGxdffLHRrFkzIyoqykhKSjIGDx7s85HX1VmyZIkhybDZbMYvv/wS0m1/+OEH8yO1V65c6fP9w4cPG3/4wx+MJk2aGA0bNjSysrKMTZs2Ga1atTJGjx5tbrd8+XJDkk/dTz75pHHaaacZMTExRu/evY3s7Gyfj2U3jOMfOf7YY48ZnTt3NmJiYozGjRsbPXr0MCZNmmTk5+cbhmEYy5YtM4YNG2a0aNHCiI6ONlq0aGFcc801xpYtW6qtM5Q+7du3zxgzZozRsmVLIyoqymjWrJkxcOBA4+WXX/apd+7cudUeu2IOFT+6Pdj71vMR719++aXX/vzd5+Xl5cYDDzxgNGvWzIiLizMGDBhgfP/990ZKSorXR8EbhmGsW7fO6NWrlxEdHW1kZGQYTz31lHksz0fZG4ZhrFq1yjj//PONuLg4o0WLFsbdd99tLFq0yG+/n3vuOaNVq1ZGTEyMcd555xmrVq0yevToYVxyySVe2wXT70C+++47Y9CgQUbDhg2NJk2aGDfddJPx9ddfG5KMmTNnet0X48aNM1JTUw2bzeZzjldW+XHpdruNRx55xKzn7LPPNj788ENj9OjRRqtWrfzu49ZbbzUkGW+++abf7wdbt+fxGoytW7ea57C/fxUfSx4vv/yy0aFDByM6Otpo166d8fTTT/v8bAvkqaeeMho2bGgcO3bMK37gwAHj2muvNRo1amQkJiYa119/vbFq1SpDkjF79myvbZcuXWr07t3biIuLMxISEoxLL73U+O6773yO9dVXXxlZWVlGw4YNjQYNGhgXXXSRsXr1ap/tcnJyjL59+xoxMTFGenq6MWXKFOO5554zJBl79+41t6vJzx632200bdrUePzxx/3eH8Ee2zCOn7NZWVlGYmKiERsba7Rr1864/vrrjezsbHOb0aNHG/Hx8T7H6devn9G5c2efeKtWrYyhQ4eaXwf6efHQQw8ZkowDBw54xf0db8aMGebPyY4dOxozZ840b18dz/ED/at4jgbSqlWrgLevfO6F8rP9nnvuMTIyMoJ+rANAfWYzjBpcdRQAUO/YbDaNGTOmzvyVG/79mvuUl5enxo0ba/LkybrvvvssPbbb7VZqaqpGjBjh9y1SkWbChAmaMWOG9u7d6/NJdJEiPz9fbdu21eOPP25+cmcg8+fP1+WXX66VK1eqd+/eFmV43Pjx4/XSSy/p6NGjJ/UhCF988YV69eqlb7/91ustalYcG7WnpKRErVu31l//+lfdfvvt4U4HAE45rikFAAAsV1RU5BPzXHC7f//+p/TYxcXFPm/re+2113To0KFTfuy6oLi4WG+88YZGjhwZsQMpSUpMTNTdd9+tJ554wuvTDis/9lwul6ZOnaqEhASdc845pzSnysfOzc3V66+/rj59+tTKUOiRRx4JOJA61cdG7Zg5c6aioqL0pz/9KdypAIAluKYUAACw3Jw5czRr1iz95je/UcOGDbVy5Uq99dZbGjx48ClfqbJ27VpNmDBBV1xxhVJSUvTVV19pxowZ6tKli6644opTeuxw2r9/v5YuXap33nlHubm5v4pVGPfcc4/PJ6qNGzdORUVFyszMVElJiebNm6fVq1frkUceCXjh9dqSmZmp/v37q1OnTtq3b59mzJihgoICPfDAAye97/POO0/nnXdeWI6N2vOnP/2JgRSAXxWGUgAAwHJdu3aV0+nU448/roKCAvPi55MnTz7lx27durVatmyp5557TocOHVJycrKuu+46Pfroo0FdtL+++u677zRq1Cg1bdpUzz33nPmJkL82AwYM0JNPPqkP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Zj7bG4ah8ePH6+uvv/ZahfS73/1Oq1at0j/+8Q+dffbZOnDggD755BOdddZZGjp0qO644w69++67euutt5ScnKwnn3xSc+fO1UUXXaT33ntPknTLLbdo/fr1mjNnjho2bKjk5GTl5eWpVatWuuGGG3Tbbbfp888/1913363du3eb9+3EiRP1/vvvKycnx2tlVb9+/XTkyBE99thj6tChg3bt2qUFCxbo8ssvV8+ePX3u9+LiYm3dulWtW7dWgwYNvPpXUFCglJQU5efnm7MYf8K6Uuquu+7SX//6V/NteGeddZa2b9+uKVOmaPTo0WZD9+3b5zWU2rdvn7p37+53nzExMX6veO90OuV0epfreYBXVnH5XDDxyvutSdxms/mNB8ox1Dg1UVOgODVRk0RNgXIMNU5N1CRRU6AcQ41TEzVJ1BQox1Dj1ERNUv2vyWazmf8q7j/Q/99+++0qKCjQnXfeqf379+vMM8/UBx98YF7HybP9o48+qscee0zr16/X6aefrg8++MDrWkv+avL8NyoqSm+99ZauuuoqDRw4UJ9++qmaNm3qs33F23jMnDlTkydP1p133qldu3apSZMmOv/88/Xb3/5WNptNDzzwgLZu3apLLrlEDRo00M0336zhw4crPz/f3M+dd96p0aNHq3PnzioqKjIHRG+88YbuuusuvfLKKxo4cKAmTpyom2++2SePiv+12Wz66KOPdN999+mGG27QgQMH1KxZM1144YVq1qyZ3/vacztPzyr2L9DjxOf+DOdKqZSUFE2ePFl//vOfzdiUKVM0c+ZMbdmyRYZhqEWLFrrzzjv1l7/8RdLxaVvTpk01a9asoC50XlBQoMTExGqncwAAAPVdv0ZDa2U/K44sqJX9AABQGzwrciqulDpZnpVXOTk5ARe9oGpV9SXYWUxYV0pdeuml+vvf/66MjAx17txZOTk5euqpp3TDDTdIOj51Gz9+vCZPnqz27durTZs2euCBB9SiRQsNHz48nKkDAAAAAADgJIR1KDV16lQ98MADuvXWW7V//361aNFCt9xyix588EFzm7vvvluFhYW6+eablZeXpz59+mjhwoW1Nh0FAAAAAACA9cL69j0r8PY9AADwa8Hb9wAAkehUvH0PJ6823r7newUxAAAAAAAA4BRjKAUAAAAAAADLMZQCAAAAAACA5RhKAQAAAAAAwHIM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f388ffoUe/bsKe1QiMq9nj17QqFQ4LvvvkOrVq3g4eGBJUuWvJO6Hjx4AHt7e8TExMDLywvx8fGoWbMmLl68CA8Pj3dSJ+m/8PBw9O/fH8+ePStXR3O86/ZGRERElBNP3ytDXr58iTVr1sDHxwcKhQLbtm3D0aNHceTIkdIOjYjoncvIyMCtW7fw888/Y+jQoe+0LiEEfv/9dyxatAi2traoX7/+O62P9NuWLVtQq1YtODg44PLly5g0aRK++OKLcjUhRURERFQayscxduWETCbD/v370aJFC3h6emLfvn3YvXs32rZtCwAat3rN+Xf69OlSjp4KMm/evHxzl3V6IJU9HTp0yDdv8+bNK+3wyp2rV6/Cy8sL9erVw7Bhw3Syzfzanrm5OWrWrIkzZ85g+/bt5fI0LH11+vTpAvu70vDgwQP06dMHSqUS48aNQ/fu3bF27dpSiUXfcOyi38pieyTtcfxZPrAd6ie2P+3x9D09cufOnXyXOTg48BfbMiw5ORnJycl5LjMxMYGDg0MJR0Ta+OOPP/Dq1as8l1lbW78XF/PUd2x7+ufVq1f4448/8l2e83bXVLZx7KLf2B71G/vA8oHtUD+x/WmPk1JERERERERERFTiePoeERERERERERGVOE5KERERERERERFRieOkFBERERERERERlThOShERERERERERUYnjpBQREREREREREZU4TkoRERER5cHf3x9dunQp7TCIiIiIyi1OShERERERERERUYnjpBQRERFREYWGhsLNzQ0VK1aEo6Mjhg8fjtTUVGl5WFgYrKyscOjQISiVSpiZmaF9+/ZITEyU1snIyMDo0aNhZWUFGxsbTJo0CX5+fhpHZzk7O2PJkiUadXt4eGDmzJlaxwIA69atg6OjI0xNTdG1a1eEhobCyspKY53//ve/aNSoEYyNjVGrVi3MmjULGRkZxX6viIiIiPLDSSkiIiKiIpLL5Vi2bBmuXbuGzZs349ixYwgMDNRY5+XLl1i0aBG2bt2KU6dOISEhAQEBAdLyBQsWIDw8HJs2bUJ0dDRSUlKwZ88enccSHR2NYcOGYcyYMbh06RLatWuHuXPnamzj9OnT6NevH8aMGYPr16/j22+/RVhYWK71iIiIiHRJJoQQpR0EERERUVnj7++Pp0+fajVRtGvXLgwbNgyPHz8GkHmkVP/+/XHnzh3Url0bALBq1SrMnj0bDx48AADY2dkhICBAmqhSqVSoVasWGjZsKNXp7OyMsWPHYuzYsVJdHh4e6NKli8bRUgXF8uWXXyI1NRURERHSOn369EFERASePn0KAGjbti3atGmDKVOmSOt89913CAwMxJ9//lno6yciIiJ6GwalHQARERGRvjl69Cjmz5+PmzdvIiUlBRkZGfj777/x8uVLmJqaAgBMTU2lCSkAsLe3x19//QUAePbsGR4+fIgmTZpIyxUKBTw9PaFWq3UaS1xcHLp27arxnCZNmmhMUl2+fBnR0dEaR0apVKpcr4mIiIhIl3j6HhEREVERxMfHo1OnTmjQoAF2796N2NhYrFy5EgDw+vVrab0KFSpoPE8mk6GoB6jL5fJcz0lPTy9yLIVJTU3FrFmzcOnSJenvypUruH37NoyNjYsUMxEREZG2eKQUERERURHExsZCrVYjJCQEcnnm73s7duwo0jYsLS1ha2uLmJgYtGjRAkDmkUkXLlyAh4eHtF6VKlU0Lo6ekpKCe/fuFSkWV1dXxMTEaJTlfNyoUSPExcWhTp06RXodRERERMXBSSkiIiKifDx79gyXLl3SKKtcuTLS09OxfPly+Pr6Ijo6GmvWrCnytkeNGoX58+ejTp06+PDDD7F8+XI8efIEMplMWqd169YICwuDr68vrKysEBQUBIVCIS2vU6dOobGMGjUKLVq0QGhoKHx9fXHs2DEcOHBAo56goCB06tQJNWrUQLdu3SCXy3H58mVcvXoVX3/9dZFfGxEREZE2ePoeERERUT5OnDiBhg0bavxt3boVoaGhWLBgAerXr4/w8HDMnz+/yNueNGkSevbsiX79+sHb2xtmZmbw8fHROF1uypQpaNmyJTp16oRPP/0UXbp00bhOlbu7e6GxNG/eHGvWrEFoaCjc3d1x8OBBjBs3TqMeHx8fRERE4PDhw2jcuDE++ugjLF68GE5OTm/xrhERERFph3ffIyIiIioD1Go1lEolvvjiC8yZM+ed1jV48GDcvHkTp0+ffqf1EBERERWEp+8RERERlYLff/8dhw8fRsuWLZGWloYVK1bg3r176NWrl87rWrRoEdq1a4eKFSviwIED2Lx5M1atWqXzeoiIiIiKgpNSRERERKVALpcjLCwMAQEBEEKgfv36OHr0KJRKpc7r+vXXX7Fw4UI8f/4ctWrVwrJlyzBo0CCd10NERERUFDx9j4iIiIiIiIiIShwvdE5ERERERERERCWOk1JERERERERERFTiOClFREREREREREQljpNSRERERERERERU4jgpRUREREREREREJY6TUkREREREREREVOI4KUVERERERERERCWOk1JERERERERERFTiOClFREREREREREQl7v8BqQAudwd0yXUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_dir = \"v_score_runs/run_insight_1_all\"\n", + "layers = [0,2,5,10,15,20]\n", + "top_head = 4\n", + "extra_rank_index = 2000\n", + "\n", + "for layer in layers:\n", + " visualize_top_v_scores_notebook(run_dir, layer, top_head, extra_rank_index)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0276eb04", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnGFJREFUeJzs3Xd8VHX2//H3nZn0SiChhdCU3lQQERUQJLBY0F3booJ9f4KKddV1FVwV++Ja2HWLuOoqgli+IgiioKCuBFFBFlGadEILLW1m7u+PMJdMMpnMJMOdlNfz8eDxICd37v2ce2bu3HvymTuGaZqmAAAAAAAAABs5oj0AAAAAAAAAND40pQAAAAAAAGA7mlIAAAAAAACwHU0pAAAAAAAA2I6mFAAAAAAAAGxHUwoAAAAAAAC2oykFAAAAAAAA29GUAgAAAAAAgO1oSgEAAAAAAMB2NKUAAI3OokWLZBiGFi1aFO2h1FmGYWjSpEnRHgaqMHjwYA0ePDjaw4iazZs3Kz4+XkuXLo32UMIyffp0GYahjRs3RnsoiJBx48YpOTm52uX27NmjpKQkffjhhzaMCgDqD5pSAFDHGYYR0j87GixVbfuxxx477tsGGrIPP/ywUTUB//e//2nEiBFKTk5WRkaGrrzySuXn54f8+Iceekj9+/fXwIEDj+Mo66Z9+/bJ5XLprbfeivZQ6qzZs2fr0ksvVYcOHZSYmKjOnTvrjjvu0P79+0N6/ObNmzV58mSdeuqpatKkiZo1a6bBgwfr448/rvGYmjZtquuuu05//OMfa7wOAGiIXNEeAAAguFdffdXv53//+99asGBBpXjXrl1tGc8555yjq666yi920kkn2bJtoKH68MMP9cILLzSKxtSWLVt01llnKS0tTY8++qgOHTqkp556SitXrtTXX3+t2NjYoI/Pz8/XK6+8oldeecWmEdctH330kQzD0PDhw6M9lDrrhhtuUKtWrXTFFVcoJydHK1eu1PPPP68PP/xQ33zzjRISEoI+/r333tPjjz+u0aNHa+zYsXK73fr3v/+tc845R//617909dVX12hcv/vd7/SXv/xFn3zyic4+++warQMAGhqaUgBQx11xxRV+P3/11VdasGBBpbhdOnXqFLVtI3KKiooUGxsrh4NJ04gsr9erkpISxcfHB/z9o48+qsOHD2v58uXKycmRJJ166qk655xzNH36dN1www1B1//aa6/J5XLpvPPOi/jY64MPP/xQAwcOVHp6erSHUmfNmjWr0sdbTznlFI0dO1avv/66rrvuuqCPHzJkiH755Rc1a9bMiv3ud79Tnz599MADD9S4KdW1a1f16NFD06dPpykFAEdxJgoADcDhw4d1xx13qE2bNoqLi1Pnzp311FNPyTRNv+UMw9CECRP0+uuvq3PnzoqPj9cpp5yizz77LKztFRYWqqioKOTlZ82aJcMwtHjx4kq/+9vf/ibDMLRq1aqAj83Ly5NhGAFnRfhmDHzwwQeSpE2bNummm25S586dlZCQoKZNm+riiy8O6f4t7dq107hx4yrFA927p7i4WA8++KBOOOEExcXFqU2bNrr77rtVXFzst9yCBQt0xhlnKD09XcnJyercubPuu+++ascSTp22bt2qa665Rs2bN1dcXJy6d++uf/3rX37L+O6h9eabb+r+++9X69atlZiYqAMHDlQ7Fp9Q963vnjlLly7V7bffrszMTCUlJenCCy+s9PEsr9erSZMmqVWrVkpMTNSQIUO0evXqSrWYNGmSDMOoNKZA9+d57733NGrUKLVq1UpxcXHq2LGj/vSnP8nj8VR6/AsvvKAOHTooISFBp556qj7//PNa1TuQzz//XBdffLFycnKsx952220qLCy0lhk3bpxeeOEFSf4fkQ1HSUmJHnjgAZ1yyilKS0tTUlKSzjzzTH366afWMqZpql27drrgggsqPb6oqEhpaWm68cYbw867/PO1e/fuiouL07x586oc69tvv61zzz3XakhJ0rBhw9SpU6eQPpL27rvvqn///gHv4xNqTXft2qVrr71WzZs3V3x8vHr37h3wGBPqsbWwsFC33HKLmjVrppSUFJ1//vnaunVryPdmmzt3rs4880wlJSUpJSVFo0aN0g8//FBpOa/Xq3nz5mnUqFE12nY4x4u33npLkydPVuvWrZWSkqLf/OY3KigoUHFxsSZOnKisrCwlJyfr6quvrvI5MXPmTHXr1k0JCQkaMGCAVq5cKansuH/CCScoPj5egwcPrnQcCeV1E0yg+61deOGFkso+Olqd7t27+zWkJCkuLk6/+tWvtGXLFh08eLDSY9avX6/c3FwlJSWpVatWeuihhyo9T6Sy2cb/93//F/B3ANAYMVMKAOo50zR1/vnn69NPP9W1116rPn366KOPPtJdd92lrVu36s9//rPf8osXL9aMGTN0yy23KC4uTi+++KJGjBihr7/+Wj169Kh2e9OnT9eLL74o0zTVtWtX3X///frtb38b9DGjRo1ScnKy3nrrLQ0aNMjvdzNmzFD37t2r3Hbfvn3VoUMHvfXWWxo7dmylxzZp0kS5ubmSpGXLlumLL77QZZddpuzsbG3cuFHTpk3T4MGDtXr1aiUmJlabX3W8Xq/OP/98LVmyRDfccIO6du2qlStX6s9//rPWrl2rd999V5L0ww8/6Nxzz1WvXr300EMPKS4uTj///HPIN2YOpU47d+7UaaedZl0AZmZmau7cubr22mt14MABTZw40W+df/rTnxQbG6s777xTxcXF1X5Mqrxw9+3NN9+sJk2a6MEHH9TGjRs1depUTZgwQTNmzLCWuffee/XEE0/ovPPOU25urr777jvl5uaG1fCsaPr06UpOTtbtt9+u5ORkffLJJ3rggQd04MABPfnkk9Zy06ZN04QJE3TmmWfqtttu08aNGzV69Gg1adJE2dnZ1nKh1rsqM2fO1JEjR/T//t//U9OmTfX111/rueee05YtWzRz5kxJ0o033qht27YF/FhuqA4cOKB//OMfuvzyy3X99dfr4MGD+uc//6nc3Fx9/fXX6tOnjwzD0BVXXKEnnnhCe/fuVUZGhvX4//u//9OBAwesWZDh5v3JJ5/orbfe0oQJE9SsWTO1a9cu4Di3bt2qXbt2qW/fvpV+d+qpp1Z7E+jS0lItW7ZM/+///b9Kvwu1poWFhRo8eLB+/vlnTZgwQe3bt9fMmTM1btw47d+/X7feequk8I6t48aN01tvvaUrr7xSp512mhYvXuzXOArm1Vdf1dixY5Wbm6vHH39cR44c0bRp03TGGWdoxYoVfvty2bJlys/P169+9auwtx3u8WLKlClKSEjQPffco59//lnPPfecYmJi5HA4tG/fPk2aNElfffWVpk+frvbt2+uBBx7we/znn3+u999/X+PHj7fWd+655+ruu+/Wiy++qJtuukn79u3TE088oWuuuUaffPKJ9dhQXjfh2rFjhyRVajaFu47ExMRKxzuPx6MRI0botNNO0xNPPKF58+bpwQcflNvt1kMPPeS37CmnnKI///nP+uGHH0J6zwWABs8EANQr48ePN8sfvt99911Tkvnwww/7Lfeb3/zG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/Px8vz/GJCcnV7pXmcfj0WWXXabVq1dr7ty5atWqVaVtOBwOdejQwS/me1+reL8s33M33PvGAUBDRVMKAFArvguMvXv3Bl0uLi5Oo0eP1jvvvKMXX3xRO3fu1NKlS/Xoo4+GtJ1LL71UjzzyiHbv3q2UlBS9//77uvzyy/1mRdx88816+eWXNXHiRA0YMEBpaWkyDEOXXXZZtbOVqrpA8Hg8cjqd1s9er1c9e/bUM888E3B53/5ISEjQZ599pk8//VRz5szRvHnzNGPGDJ199tmaP3++3zprwpfPFVdcUeleWz69evXy+7mms6Sk8PdtVflVbCaEIlhtytu/f78GDRqk1NRUPfTQQ+rYsaPi4+P1zTff6Pe//32NZqyFWu+qxnfOOedo7969+v3vf68uXbooKSlJW7du1bhx42o0nqq89tprGjdunEaPHq277rpLWVlZcjqdmjJlitatW+e37GWXXabbbrtNr7/+uu677z699tpr6tu3rzp37mwtE27eoT63WrZsKUnavn17pd9t375dGRkZAWdR+fiaHhUbFfWV7znw6quvBmyolD++zZ07V/Hx8RoyZEiNtxPO8aKq13Cor+2aPj7U182MGTMqfQtexTF89913Ov/889WjRw/NmjXLb39KUr9+/fz+cPPggw9Wujn89ddfrw8++ECvv/56RL4xz/fcrc29rQCgIaEpBQD1XNu2bfXxxx/r4MGDfn/R931UqW3btn7L+/4yX97atWuVmJhY5ayIYHwfuQjlsZdeeqleeeUVLVy4UP/73/9kmma1H90r/9jJkyfr7bffVvPmzXXgwAFddtllfsvMmjVLY8eO1dNPP23FioqKtH///mrX36RJk4DLbdq0ye8v4B07dtR3332noUOHVvuXbofDoaFDh2ro0KF65pln9Oijj+oPf/iDPv30Uw0bNizoY0OpU0pKijweT7XrioTa7NtAfM/Ln3/+2W+Wx549eyo1HHwzp/bv3299LFKqPAtw0aJF2rNnj2bPnq2zzjrLim/YsKHKbZe/wHe73dq4caPfxXk49a5o5cqVWrt2rV555RVdddVVVnzBggWVlq3trIlZs2apQ4cOmj17tt+6HnzwwUrLZmRkaNSoUXr99dc1ZswYLV26VFOnTvVbpjZ5B9O6dWtlZmYqLy+v0u98N2QPJicnRwkJCbWqadu2bfX999/L6/X6zZaqeMwM9djatm1beb1ebdiwwW+G488//xw0F6lsP0tSVlZWta/jOXPmaMiQIX4NwFC3nZmZaevxojZCfd3k5uYGfC35rFu3TiNGjFBWVpY+/PDDgN/W+Prrr/t9XLTibKe77rpLL7/8sqZOner3cc+KvF6v1q9f7zfrd+3atZJUaaae77nrm3EHAI0d95QCgHruV7/6lTwej55//nm/+J///GcZhqGRI0f6xb/88ku/e4ds3rxZ7733noYPHx509k5+fn6l2MGDBzV16lQ1a9bM7/5HVRk2bJgyMjI0Y8YMzZgxQ6eeemrIH/vp2rWrevbsaT22ZcuWfo0Hqewv8BX/Uv7cc89Ve68sqezi8KuvvlJJSYkV++CDD7R582a/5S655BJt3bpVf//73yuto7CwUIcPH5YUeOaY74I70EeXKqquTk6nU7/+9a/19ttva9WqVZUeH6hetVGbfRvI0KFD5XK5NG3aNL94xeexdOzC/bPPPrNihw8f1iuvvFJpjJL/bImSkhK9+OKLfsv17dtXTZs21d///ne/++C8/vrrlRpiodY7kEDjMU1Tzz77bKVlk5KSJKnGTb5A2/rvf/+rL7/8MuDyV155pVavXq277rpLTqezUoO3NnlX59e//nWl19bChQu1du1aXXzxxUEfGxMTo759+1ZqaoVT01/96lfasWOH3zdBut1uPffcc0pOTra+ITTUY6vv2z8rPs+ee+65oLn4HpuamqpHH33U7yOXPr7XcWlpqRYsWFDpW/VC3bbdx4vaCPV107JlSw0bNszvn8+OHTs0fPhwORwOffTRR1X+0WTgwIF+jy/flHryySf11FNP6b777rO+kTGY8s8T0zT1/PPPKyYmxvq4us/y5cuVlpam7t27V7tOAGgMmCkFAPXceeedpyFDhugPf/iDNm7cqN69e2v+/Pl67733NHHiROuC3qdHjx7Kzc3VLbfcori4OOtiZvLkyUG388ILL+jdd9/Veeedp5ycHG3fvl3/+te/9Msvv+jVV1+1brIcTExMjC666CK9+eabOnz4sJ566qmwcr300kv1wAMPKD4+Xtdee22le8Kce+65evXVV5WWlqZu3brpyy+/1Mcff+x3n5OqXHfddZo1a5ZGjBihSy65ROvWrdNrr71Waf9deeWVeuutt/S73/1On376qQYOHCiPx6M1a9borbfe0kcffaS+ffvqoYce0meffaZRo0apbdu22rVrl1588UVlZ2cHvfeWTyh1euyxx/Tpp5+qf//+uv7669WtWzft3btX33zzjT7++ONqP1IZjtrs20CaN2+uW2+9VU8//bTOP/98jRgxQt99953mzp2rZs2a+c3OGT58uHJycnTttddaTZR//etfyszM1C+//GItd/rpp6tJkyYaO3asbrnlFhmGoVdffbVSMy02NlaTJk3SzTffrLPPPluXXHKJNm7cqOnTp6tjx45+2w613oF06dJFHTt21J133qmtW7cqNTVVb7/9dsCPnvmaurfccotyc3MDNoqCOffcczV79mxdeOGFGjVqlDZs2KC//vWv6tatmw4dOlRp+VGjRqlp06aaOXOmRo4cqaysLL/f1ybv6tx3332aOXOmhgwZoltvvVWHDh3Sk08+qZ49e1b6OFYgF1xwgf7whz/owIED1j2XwqnpDTfcoL/97W8aN26cli9frnbt2mnWrFnWjDHfrKhQj62nnHKKfv3rX2vq1Knas2ePTjvtNC1evNiaKRNspllqaqqmTZumK6+8UieffLIuu+wy63k9Z84cDRw4UM8//7yWLFmiAwcOVGpKhbNtO48XtRHO66YqI0aM0Pr163X33XdryZIlWrJkifW75s2b65xzzgn6+HfeeUd33323TjzxRHXt2lWvvfaa3+/POeccNW/e3Po5Pj5e8+bN09ixY9W/f3/NnTtXc+bM0X333VepIbZgwQKdd9553FMKAHzs+ZI/AECkBPrq+IMHD5q33Xab2apVKzMmJsY88cQTzSeffNL6encfSeb48ePN1157zTzxxBPNuLg486STTjI//fTTarc7f/5885xzzjFbtGhhxsTEmOnp6ebw4cPNhQsXhjX+BQsWmJJMwzDMzZs3h/XYn376yZRkSjKXLFlS6ff79u0zr776arNZs2ZmcnKymZuba65Zs8Zs27atOXbsWGs531eeV8z76aefNlu3bm3GxcWZAwcONPPy8sxBgwb5fZ28aZZ9ffzjjz9udu/e3YyLizObNGlinnLKKebkyZPNgoIC0zRNc+HCheYFF1xgtmrVyoyNjTVbtWplXn755SF9HXk4ddq5c6c5fvx4s02bNmZMTIzZokULc+jQoeZLL71UKd+ZM2dWu+3yYyj/dfKh7lvfV94vW7bMb32B9rnb7Tb/+Mc/mi1atDATEhLMs88+2/zf//5nNm3a1Pzd737n9/jly5eb/fv3N2NjY82cnBzzmWeesbZV/qvkly5dap522mlmQkKC2apVK/Puu+82P/roo4D1/stf/mK2bdvWjIuLM0899VRz6dKl5imnnGKOGDHCb7lQ6l2V1atXm8OGDTOTk5PNZs2amddff7353XffmZLMl19+2W9f3HzzzWZmZqZpGEal13hFFZ+XXq/XfPTRR618TjrpJPODDz4wx44da7Zt2zbgOm666SZTkvmf//wn4O9Dzdv3fA3HqlWrzOHDh5uJiYlmenq6OWbMGHPHjh0hPXbnzp2my+UyX3311Uq/C7WmO3futJ7PsbGxZs+ePf3q4RPqsfXw4cPm+PHjzYyMDDM5OdkcPXq0+eOPP5qSzMcee8xaLtBz1jTLXh+5ublmWlqaGR8fb3bs2NEcN26cmZeXZ5qmad55551mt27dAu6PULfty7umx4uqXtsPPvigKcnMz8+3YoGeExs2bDAlmU8++WSl3CtuL9TXTVV87xOB/lU8ngfiy6mqf+WPJWPHjjWTkpLMdevWWc/p5s2bmw8++KDp8Xj81vu///3PlGR+/PHH1Y4BABoLwzRrcMdRAEC9ZBiGxo8fH/AjUqg7GnOd9u/fryZNmujhhx/WH/7wB1u37fV6lZmZqYsuuijgx9Yamttuu03//Oc/tWPHDiUmJkZ7OGG59tprtXbtWn3++edBl4tmTb/99luddNJJeu211zRmzJharatbt24699xz9cQTT9i+bUTOxIkT9dlnn2n58uXMlAKAo7inFAAAiIryNxj28d1we/Dgwcd120VFRZU+1vfvf/9be/fuPe7brguKior02muv6de//nW9a0hJZTdwX7ZsmZYuXWrFolnTqp7LDoej0r3vwlVSUqJLL720yo82Hs9tI3L27Nmjf/zjH3r44YdpSAFAOdxTCgAARMWMGTM0ffp0/epXv1JycrKWLFmiN954Q8OHD9fAgQOP67a/+uor3Xbbbbr44ovVtGlTffPNN/rnP/+pHj16VHuz7fps165d+vjjjzVr1izt2bMnpBs410U5OTkqKiryi0Wzpk888YSWL1+uIUOGyOVyae7cuZo7d65uuOEGtWnTplbrjo2NDfgtinZsG5HTtGnTgPd3A4DGjqYUAACIil69esnlcumJJ57QgQMHrJufP/zww8d92+3atVObNm30l7/8RXv37lVGRoauuuoqPfbYYyHdtL++Wr16tcaMGaOsrCz95S9/sb4RsiGIZk1PP/10LViwQH/605906NAh5eTkaNKkSbZ8BDWa2wYAoLa4pxQAAAAAAABsxz2lAAAAAAAAYDuaUgAAAAAAALBdvb6nlNfr1bZt25SSksK3WAAAAAAAANQBpmnq4MGDatWqlRyOqudD1eum1LZt2/hWEQAAAAAAgDpo8+bNys7OrvL39boplZKSIqksydTU1CiPBgAAAAAAAAcOHFCbNm2svk1V6nVTyveRvdTUVJpSAAAAAAAAdUh1t1riRucAAAAAAACwHU0pAAAAAAAA2C6qTSmPx6M//vGPat++vRISEtSxY0f96U9/kmma0RwWAAAAAAAAjrOo3lPq8ccf17Rp0/TKK6+oe/fuysvL09VXX620tDTdcsstEduOx+NRaWlpxNaHmouNjQ36dZAAAAAAAKBxiGpT6osvvtAFF1ygUaNGSZLatWunN954Q19//XVE1m+apnbs2KH9+/dHZH2oPYfDofbt2ys2NjbaQwEAAAAAAFEU1abU6aefrpdeeklr165Vp06d9N1332nJkiV65plnAi5fXFys4uJi6+cDBw5Iktxut9xut6SypofD4ZDX69X27dtVUFCgrKwsJSYmyuFwBPxooGEYYcXDEe66oxUPR0236fV6tW3bNm3dulU5OTlyOp3yer3yer3Wsr76eTwev3VVFXc6nTIMw6p/+bhUNksulLjL5ZJpmn5xwzACjrGqePnnHjmREzmREzmREzmREzmREzmREzmRU2POKRRRbUrdc889OnDggLp06SKn0ymPx6NHHnlEY8aMCbj8lClTNHny5ErxFStWKCkpSZKUmZmpjh07av369Tp48KCysrIUHx8vl8ul2NhYFRYW+u2cuLg4xcTE6MiRI3472PeYw4cP++3ghIQEORwOHT582G8MSUlJ8nq9KiwstGKGYSgpKUlut1tFRUVW3OFwKCEhQaWlpX5NNqfTqfj4eJWUlKikpMSKu1wuxcfHq6ioyO9JGRsbW69y8ng8Sk1N1bZt2+R2u3XiiSdqw4YNys/Pt5bPzs5Wdna21q5dq4KCAiveoUMHZWVladWqVX7j6dKli9LT07VixQq/fdCrVy/FxsYqLy/PL6e+ffuqpKRE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adNG27dvt/7dcccd6t69u1/s0ksvjdj2WrRowTdTSUpOTlbTpk2jPQwAx8GRI0f05ptv6u6779a//vWvapdviOdONKXC4PV6NWXKFLVv314JCQnq3bu3Zs2aJenYX+0WLlyovn37KjExUaeffrp+/PFHv3U8/PDDysrKUkpKiq677jrdc889EZuO++qrr6pv375KSUlRixYt9Nvf/la7du2SVPaXrSFDhkiSmjRpIsMwNG7cOEll3fVbbrlFd999tzIyMtSiRQtNmjQpImOqi2bNmqWePXsqISFBTZs21bBhw3T48GHrY0STJ09WZmamUlNT9bvf/c7vhT9v3jydccYZSk9PV9OmTXXuuedq3bp1ERnXnj17dPnll6t169ZKTExUz5499cYbb1i/HzdunBYvXqxnn33W+mvkxo0bQ37uNTTjxo3TzTffrF9++UWGYahdu3YaPHiwJkyYoIkTJ6pZs2bKzc2VJD3zzDPq2bOnkpKS1KZNG9100006dOhQRMaxbNkynXPOOWrWrJnS0tI0aNAgffPNN9bv27VrJ0m68MILrXFKx2YKvPrqq2rXrp3S0tJ02WWX6eDBgxEZV31R/uN7vvpNmDBBaWlpatasmf74xz+q/JfEtmvXTo8++qiuueYapaSkKCcnRy+99FKNtu37i/+bb76p008/XfHx8erRo4cWL15sLePxeHTttddax/3OnTvr2WefDZjDU089pZYtW6pp06YaP368SktLazSu+mbOnDlKS0vT66+/rpUrV+rss8+2jq833HCD32vNt68eeeQRtWrVSp07d47YONatW6cLLrhAzZs3V3Jysvr166ePP/7Yb5lQnj9ffPGF+vTpo/j4ePXt21fvvvtug/54cHWvu3379umqq65SkyZNlJiYqJEjR+qnn36yHu/7S/z777+vbt26KS4uTr/88kutxsT5TOiqOjeQpOXLl1d5XhDK6yUQp9OpFi1aWP+Sk5Plcrn8YgkJCdbyH330kbp27ark5GSNGDFC27dvt35X3fun1Hhmt7700ktq1apVpYbuBRdcoGuuuSbg7MJ//OMf6tq1q+Lj49WlSxe9+OKLERkL56PV83q9euKJJ3TCCScoLi5OOTk5euSRR6zzirfeektnnnmmEhIS1K9fP61du1bLli1T3759lZycrJEjRyo/P99an13nEZF4nywpKdGE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mYLAwEC0adMGf/vb3xAWFoanT59CTU1NLNO9e3dERERAJpOhQYMG8Pf3h7q6uri+TZs2FcYyZcoUODk5ITQ0FDKZDKdOncLx48cV6vH390ffvn3RokULDBo0CBKJBFeuXEFaWhp++umnSr83IiIiog/By/eIiIiI/t+ZM2dgY2Oj8Ni5cydCQ0OxbNkytG/fHlFRUQgMDKz0tv38/DB06FCMGDECDg4O0NHRgaurq8LlcnPnzoWzszP69u2LPn36oH///grzVFlZWVUYi6OjIzZu3IjQ0FBYWVnh119/hY+Pj0I9rq6uiI6OxsmTJ9GxY0d06dIFK1euhKmp6Qd8akREREQfhnffIyIiIvoECgsLIZVKMWTIEAQEBHzUusaOHYsbN24gISHho9ZDREREVBm8fI+IiIioGty9excnT56Es7Mz8vLysHbtWty5cwfDhg1TeV3BwcHo2bMn6tevj+PHjyMyMhLr169XeT1EREREVcFBKSIiIqJqIJFIEBERAV9fXwiCgPbt2yMuLg5SqVTldV28eBHLly/HixcvYGZmhjVr1mDMmDEqr4eIiIioKnj5HhERERERERERVTtOdE5ERERERERERNWOg1JERERERERERFTtOChFRERERERERETVjoNSRERERERERERU7TgoRURERERERERE1Y6DUkREREREREREVO04KEVERERERERERNWOg1JERERERERERFTtOChFRERERERERETV7v8Any3p8F8uXP4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAoulJREFUeJzs3Xd8VHX2//H3nZk0ICQEQg1d6c0FRFQEAUEWC7prxRXruj/BrmtZV0Fdsa+uBXV1xbUiiuUrFlApS1EMgoCIoBRpAqGEmjJzP78/wtzMJJPJJBlmQvJ6Ph4+Hs7JnTufc8+dO/cePnPHMsYYAQAAAAAAADHkivcAAAAAAAAAUPvQlAIAAAAAAEDM0ZQCAAAAAABAzNGUAgAAAAAAQMzRlAIAAAAAAEDM0ZQCAAAAAABAzNGUAgAAAAAAQMzRlAIAAAAAAEDM0ZQCAAAAAABAzNGUAgDUOrNnz5ZlWZo9e3a8h1JtWZal8ePHx3sYKMOgQYM0aNCgeA8jbvbv36/GjRvrjTfeiPdQKoRjT80zfvx4WZalnJycsMsVFhaqZcuWeu6552I0MgA4OtCUAoBqzrKsiP6LxUVOWa/90EMPHfHXBmqyTz75pFY0AW3b1uTJk3XWWWepZcuWqlu3rrp166YHHnhAeXl5Ea/nqaeeUmpqqi688MIjONrqybZtZWZm6pFHHon3UKqtL7/8UldccYU6dOigOnXqqF27drrqqqu0devWiJ6/c+dOPfroozrllFOUmZmp9PR0nXDCCZoyZUqlx5SQkKCbb75Z//jHPyq0rwNATeeJ9wAAAOG99tprQY//+9//aubMmaXinTt3jsl4TjvtNF166aVBseOOOy4mrw3UVJ988omeffbZGt+YOnjwoC6//HKdcMIJ+stf/qLGjRtr4cKFuvfee/Xll1/qq6++kmVZYddRWFiop556SjfddJPcbneMRl59LFq0SDk5ORo5cmS8h1Jt3X777dq1a5fOO+88HXvssVq7dq2eeeYZffzxx1q6dKmaNm0a9vkLFy7U3/72N/3+97/X3XffLY/Ho/fee08XXnihVq5cqQkTJlRqXJdffrnuuOMOvfnmm7riiisqtQ4AqGloSgFANXfJJZcEPf766681c+bMUvFY6dChQ9xeG9GTl5enxMREuVxMmkZ02batgoICJScnl/pbYmKi5s+frxNPPNGJXX311WrTpo3TmBo6dGjY9X/88cfasWOHzj///KiP/WjwySefqHXr1uratWu8h1JtPfHEEzr55JODjm+nn366Bg4cqGeeeUYPPPBA2Od37dpVa9asUevWrZ3Ytddeq6FDh+rhhx/WX//6V9WtW7fC40pPT9ewYcM0efJkmlIAcBhnogBQAxw4cEC33HKLWrZsqaSkJHXs2FGPPfaYjDFBy1mWpXHjxumNN95Qx44dlZycrN69e2vu3LkVer1Dhw5V6OsH7777rizL0pw5c0r97YUXXpBlWVqxYkXI52ZnZ8uyLL366qul/vb555/Lsix9/PHHkqQNGzbo2muvVceOHZWSkqKGDRvqvPPO0/r168sdY5s2bXTZZZeVioe6d09+fr7uvfdeHXPMMUpKSlLLli3117/+Vfn5+UHLzZw5UyeffLLS09NVr149dezYUXfddVe5Y6lInTZv3qwrrrhCTZo0UVJSkrp27ar//Oc/Qcv472Pz9ttv6+6771aLFi1Up04d7d27t9yx+EW6bSdPnizLsjR//nzdfPPNyszMVN26dXXOOedox44dQcvatq3x48erefPmqlOnjk499VStXLmyVC3892wpyf9agWP48MMPNXLkSDVv3lxJSUlq37697r//fvl8vlLPf/bZZ9WuXTulpKTo+OOP1//+978q1TuU//3vfzrvvPPUqlUr57k33XSTDh065Cxz2WWX6dlnn5UU/BXZiigoKNA999yj3r17Ky0tTXXr1tWAAQM0a9YsZxljjNq0aaOzzz671PPz8vKUlpama665psJ5B+6vXbt2VVJSkj777LOQ40xMTAxqSPmdc845kqQff/yx3Fw/+OADtWnTRu3bty/1t6lTp6pLly5KTk5Wt27d9P777+uyyy5TmzZtgpaL9Jjp9Xp1//33q3379kpKSlKbNm101113ldoGke7LZfnmm290+umnKy0tTXXq1NHAgQM1f/78kMtOnz49aJZURV57z549uvHGG528jznmGD388MOybdtZZv369bIsS4899pjzHqlTp46GDRumjRs3yhij+++/X1lZWUpJSdHZZ5+tXbt2Bb1OmzZtdMYZZ2j27Nnq06ePUlJS1L17d+dr5tOmTVP37t2dY9uSJUuCnr9s2TJddtllateunZKTk9W0aVNdccUV2rlzZ7nbUpJOOeWUUg33U045RRkZGRHtY23btg1qSElF+/moUaOUn5+vtWvXlnpOTk6Ozj//fNWvX18NGzbUDTfcEPJz8rTTTtO8efNKbTMAqK2YKQUARzljjM466yzNmjVLV155pXr16qXPP/9ct912mzZv3qx//vOfQcvPmTNHU6ZM0fXXX6+kpCQ999xzOv3007Vo0SJ169at3NebPHmynnvuORlj1LlzZ9199926+OKLwz5n5MiRqlevnt555x0NHDgw6G9TpkxR165dy3ztPn36qF27dnrnnXc0ZsyYUs9t0KCBhg8fLkn69ttvtWDBAl144YXKysrS+vXrNWnSJA0aNEgrV65UnTp1ys2vPLZt66yzztK8efP05z//WZ07d9by5cv1z3/+U6tXr9YHH3wgSfrhhx90xhlnqEePHrrvvvuUlJSkn3/+ucwLzZIiqdO2bdt0wgknOE2BzMxMffrpp7ryyiu1d+9e3XjjjUHrvP/++5WYmKhbb71V+fn5SkxMjDjvim7b6667Tg0aNNC9996r9evX68knn9S4ceOC7sly55136pFHHtGZZ56p4cOH6/vvv9fw4cOrdL+VyZMnq169err55ptVr149ffXVV7rnnnu0d+9ePfroo85ykyZN0rhx4zRgwADddNNNWr9+vUaNGqUGDRooKyvLWS7Sepdl6tSpOnjwoP7f//t/atiwoRYtWqSnn35amzZt0tSpUyVJ11xzjbZs2RLya7mR2rt3r1566SVddNFFuvrqq7Vv3z69/PLLGj58uBYtWqRevXrJsixdcskleuSRR7Rr1y5lZGQ4z/+///s/7d2715kFWdG8v/rqK73zzjsaN26cGjVqVKoJVJ7ffvtNktSoUaNyl12wYIF+97vflYpPnz5dF1xwgbp3766JEydq9+7duvLKK9WiRYug5SpyzLzqqqv06quv6o9//KNuueUWffPNN5o4caJ+/PFHvf/++85yVdmXv/rqK40YMUK9e/fWvffeK5fLpVdeeUWDBw/W//73Px1//PFB22nJkiW67777KvzaBw8e1MCBA7V582Zdc801atWqlRYsWKA777xTW7du1ZNPPhm0/BtvvKGCggJdd9112rVrlx555BGdf/75Gjx4sGbPnq3bb79dP//8s55++mndeuutpZrhP//8sy6++GJdc801uuSSS/TYY4/pzDPP1PPPP6+77rpL1157rSRp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Rx85uZccT7S8+uqrevzxx7Vq1SoVFhY68ZJ1v/TSSzVu3Dht2LBBrVu31tSpU1VYWKg//elPzjIVzbuy+9aUKVN0991368orr9T/+3//L+LnmRL3fiqrpv5YYCMj0mPmhg0b5HK5Sq2zadOmSk9PD1ou1GtHsi+vWbNGkkp9NTlQbm6uGjRooMLCQs2cOVMTJ04MyiXS116zZo2WLVsWcU1Lvof9DaqWLVuGjJfcv6vy/F27dmnChAl6++23S43L/74pKCgodV+mzMzMUr/IuGrVKp1zzjnq1q2bXnrppaC/7dq1SwUFBc7jlJSUoEac33XXXafPPvtM//3vf9WzZ89Sf5dKH7Pbt28vl8tV6r57/n23Ml9BBICaiKYUAKBK/BcY5d20NSkpSaNGjdL777+v5557Ttu2bdP8+fP14IMPRvQ6F1xwgf7xj38oJydHqamp+uijj3TRRRcF/Yv9ddddp1deeUU33nij+vfvr7S0NFmWpQsvvLDc2UplXSD4fL6gixzbttW9e3c98cQTIZf3b4+UlBTNnTtXs2bN0vTp0/XZZ59pypQpGjx4sGbMmFHln7L353PJJZeUeUHbo0ePoMeVnSUlVXzblpVfyWZCJMLVJtCePXs0cOBA1a9fX/fdd5/at2+v5ORkfffdd7r99tsrNWMt0nqXNb7TTjtNu3bt0u23365OnTqpbt262rx5sy677LJKjacsr7/+ui677DKNGjVKt912mxo3biy3262JEyfql19+CVr2wgsv1E033aQ33nhDd911l15//XX16dNHHTt2dJapaN6V2bdmzpypSy+9VCNHjtTzzz8f0XMyMjJkWVapBsiRdCSbB/594NFHH1WvXr1CLuOf+TVv3jzt3btXv//97yv9Wqeddpr++te/hvx7yX8cKOs9HOl7uyrPP//887VgwQLddttt6tWrl+rVqyfbtnX66ac722zBggU69dRTg9axbt26oMbyxo0bNWzYMKWlpemTTz4p1Yg899xzg36AY8yYMZo8eXLQMhMmTNBzzz2nhx56KKhxW56y9hv/vluVe1sBQE1CUwoAjnKtW7fWF198oX379gWdcPu/qlTyF4T8/zIfaPXq1apTp06Z/4Iejv8rF5E894ILLtCrr76qL7/8Uj/++KOMMeV+dS/wuRMmTNB7772nJk2aaO/evbrwwguDlnn33Xc1ZswYPf74404sLy9Pe/bsKXf9DRo0CLnchg0b1K5dO+dx+/bt9f3332vIkCHlXqy6XC4NGTJEQ4YM0RNPPKEHH3xQf/vb3zRr1qxyf/Y+kjqlpqbK5/OVu65oqMq2DcW/X/78889Bs2x27txZquHgn/GxZ8+eoK93lZwFOHv2bO3cuVPTpk3TKaec4sTXrVtX5msHXtR6vV6tX78+qJlXkXqXtHz5cq1evVqvvvqqLr30Uic+c+bMUstWtfHx7rvvql27dpo2bVrQuu69995Sy2ZkZGjkyJF64403NHr0aM2fP7/UTa6rknckvvnmG51zzjnq06eP3nnnnaDmcjgej0ft27cPW9OSSsYiPWa2bt1atm1rzZo1ziwqqegHBvbs2RO0nP91ytuXS/L/gmD9+vXLfR9Pnz5dXbp0CWq6VOS127dvr/3798fkeFEVu3fv1pdffqkJEybonnvuceIlj4k9e/Ys9V4KnOm7c+dODRs2TPn5+fryyy/VrFmzUq/1+OOPB22n5s2bB/392Wef1fjx43XjjTfq9ttvDzvuNWvWBNXg559/lm3bpWZf+vfdwH0KAGoz7ikFAEe53//+9/L5fHrmmWeC4v/85z9lWZZGjBgRFF+4cGHQV1k2btyoDz/8UMOGDQs7e2fHjh2lYvv27dOTTz6pRo0aBd3/qCxDhw5VRkaGpkyZoilTpuj444+P+Gs/nTt3Vvfu3Z3nNmvWLKjxIBX9C3zJf61/+umny71XllR0wfb1118HfZXj448/1saNG4OWO//887V582b9+9//LrWOQ4cO6cCBA5JCzxzzz4Qo+XPyoZRXJ7fbrT/84Q967733tGLFilLPD1WvqqjKtg1lyJAh8ng8mjRpUlC85H4sFV+4B97z5sCBA3r11VdLjVEKnnFRUFCg5557Lmi5Pn36qGHDhvr3v/8tr9frxN94441SF/KR1juUUOMxxuipp54qtWzdunUlqdJNvlCv9c0332jhwoUhl//Tn/6klStX6rbbbpPb7S7V4K1K3uX58ccfNXLkSLVp00Yff/xxhWdZ9e/fX9nZ2UGx5s2bq1u3bvrvf/+r/fv3O/E5c+Zo+fLlQctGesz0z0gq2bDzzx4bOXKkpIrtyyX17t1b7du312OPPRY0br/A9/Enn3zivKZfRV77/PPP18KFC/X555+X+tuePXuC3gvxFGpflkrXoUGDBho6dGjQf8nJyZKKjg+///3vtXnzZn3yySchvw4tFW3/wOcH3hfN/+uno0ePLnPGYKBnn3026LH/3lMlP4MXL14sy7KC7rcFALUZM6UA4Ch35pln6tRTT9Xf/vY3rV+/Xj179tSMGTP04Ycf6sYbb3Qu6P26deum4cOH6/rrr1dSUpJzwT5hwoSwr/Pss8/qgw8+0JlnnqlWrVpp69at+s9//qNff/1Vr732mnOT5XASEhJ07rnn6u2339aBAwf02GOPVSjXCy64QPfcc4+Sk5N15ZVXlro30xlnnKHXXntNaWlp6tKlixYuXKgvvvhCDRs2LHfdV111ld59912dfvrpOv/88/XLL7/o9ddfL7X9/vSnP+mdd97RX/7yF82aNUsnnXSSfD6fVq1apXfeeUeff/65+vTpo/vuu09z587VyJEj1bp1a23fvl3PPfecsrKywt57yy+SOj300EOaNWuW+vXrp6uvvlpdunTRrl279N133+mLL74o9yuVFVGVbRtKkyZNdMMNN+jxxx/XWWedpdNPP13ff/+9Pv30UzVq1Chods6wYcPUqlUrXXnllU4T5T//+Y8yMzP166+/OsudeOKJatCggcaMGaPrr79elmXptddeK3Vxm5iYqPHjx+u6667T4MGDdf7552v9+vWaPHmy2rdvH/TakdY7lE6dOql9+/a69dZbtXnzZtWvX1/vvfdeyNkz/qbu9ddfr+HDh4dsFIVzxhlnaNq0aTrnnHM0cuRIrVu3Ts8//7y6dOkSstkxcuRINWzYUFOnTtWIESPUuHHjoL9XJe9w9u3bp+HDh2v37t267bbbnJuF+7Vv377ci/Wzzz5br732mlavXh30lbMHH3xQZ599tk466SRdfvnl2r17t5555hl169YtaBtEeszs2bOnxowZoxdffNH5auiiRYv06quvatSoUc4su4rsyyW5XC699NJLGjFihLp27arLL79cLVq00ObNmzVr1izVr19f//d//6d169bpxx9/LNV8qshr33bbbfroo490xhln6LLLLlPv3r114MABLV++XO+++67Wr19fLb5SVr9+fZ1yyil65JFHVFhYqBYtWmjGjBmlZseFM3r0aC1atEhXXHGFfvzxR/3444/O3+rVq6dRo0aFff6iRYt06aWXqmHDhhoyZEjQDwNIRceawBm0UtEMKH8N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YmTy5MlKT0+v0HMOHjyoP/zhD6pfv74sy+JXBAEAAAAAQI1RK5tSlmWF/W/8+PHxHqIk6dVXX9X//vc/LViwQFu3blVaWlpU1jto0CDdeOONUVkXAAAAAABAZdTYX98LZ+vWrc7/T5kyRffcc49++uknJ1avXr14DKuUX375RZ07d1a3bt3iPZSQCgoKnBuXAwAAAAAAVEStnCnVtGlT57+0tDRZluU8bty4sZ544gllZWUpKSlJvXr10meffeY8d/369bIsS2+//bZOPPFEJScnq1u3bpozZ06FxrBjxw716dNH55xzjvLz80v9fdCgQXr88cc1d+5cWZalQYMGSZLy8/N16623qkWLFqpbt6769eun2bNnO8/buXOnLrroIrVo0UJ16tRR9+7d9dZbbzl/v+yyyzRnzhw99dRTzsyw9evXh/x64QcffBB0Y/Lx48erV69eeumll9S2bVslJydLkvbs2aOrrrpKmZmZql+/vgYPHqzvv/++QtsDAAAAAADULrWyKRXOU089pccff1yPPfaYli1bpuHDh+uss87SmjVrgpa77bbbdMstt2jJkiXq37+/zjzzTO3cuTOi19i4caMGDBigbt266d1331VSUlKpZaZNm6arr75a/fv319atWzVt2jRJ0rhx47Rw4UK9/fbbWrZsmc477zydfvrpzvjy8vLUu3dvTZ8+XStWrNCf//xn/elPf9KiRYuc/Pr376+rr75aW7du1datW9WyZcuIt8/PP/+s9957T9OmTdPSpUslSeedd562b9+uTz/9VIsXL9bvfvc7DRkyRLt27Yp4vQAAAAAAoHahKVXCY489pttvv10XXnihOnbsqIcffli9evXSk08+GbTcuHHj9Ic//EGdO3fWpEmTlJaWppdffrnc9f/000866aSTNHz4cL3yyityu90hl8vIyFCdOnWUmJiopk2bKiMjQ7/++qteeeUVTZ06VQMGDFD79u1166236uSTT9Yrr7wiSWrRooVuvfVW9erVS+3atdN1112n008/Xe+8844kKS0tTYmJiapTp44zO6ysMYRSUFCg//73vzruuOPUo0cPzZs3T4sWLdLUqVPVp08fHXvssXrssceUnp6ud999N+L1AgAAAACA2qVW3lOqLHv37tWWLVt00kknBcVPOumkUl9H69+/v/P/Ho9Hffr00Y8//ihJ6tq1qzZs2CBJGjBggD799FNJ0qFDhzRgwABdfPHFpZpckVi+fLl8Pp86dOgQFM/Pz1fDhg0lST6fTw8++KDeeecdbd68WQUFBcrPz1edOnUq/HqhtG7dWpmZmc7j77//Xvv373de3+/QoUP65ZdfovKaAAAAAACg5qEpdQR88sknKiwslCSlpKQ48aSkJA0dOlQff/yxbrvtNrVo0aJC692/f7/cbrcWL15canaT/+bsjz76qJ566ik9+eST6t69u+rWrasbb7xRBQUFYdftcrlkjAmK+XMIVLdu3VJjatasWdB9rfxK3qMKAAAAAADAj6ZUgPr166t58+aaP3++Bg4c6MTnz5+v448/PmjZr7/+Wqeccookyev1avHixRo3bpykotlEobhcLr322mu6+OKLdeqpp2r27Nlq3rx5xOM77rjj5PP5tH37dg0YMCDkMvPnz9fZZ5+tSy65RJJk27ZWr16tLl26OMskJibK5/MFPS8zM1P79u3TgQMHnMaT/55R4fzud7/Tb7/9Jo/HozZt2kScCwAAAAAAqN24p1QJt912mx5++GFNmTJFP/30k+644w4tXbpUN9xwQ9Byzz77rN5//32tWrVKY8eO1e7du3XFFVeUu36326033nhDPXv21ODBg/Xbb79FPLYOHTpo9OjRuvTSSzVt2jStW7dOixYt0sSJEzV9+nRJ0rHHHquZM2dqwYIF+vHHH3XNNddo27ZtQetp06aNvvnmG61fv145OTmybVv9+vVTnTp1dNddd+mXX37Rm2++qcmTJ5c7pqFDh6p///4aNWqUZsyYofXr12vBggX629/+puzs7IhzAwAAAAAAtQtNqRKuv/563XzzzbrlllvUvXt3ffbZZ/roo4907LHHBi330EMP6aGHHlLPnj01b948ffTRR2rUqFFEr+HxePTWW2+pa9euGjx4sLZv3x7x+F555RVdeumluuWWW9SxY0eNGjVK3377rVq1aiVJuvvuu/W73/1Ow4cP16BBg9S0aVONGjUqaB233nqr3G63unTposzMTP3666/KyMjQ66+/rk8++UTdu3fXW2+9pfHjx5c7Hsuy9Mknn+iUU07R5Zdfrg4dOujCCy/Uhg0b1KRJk4jzAgAAAAAAtYtlSt5I6Ciyd+9epaWlKTc3V/Xr1w/6W15entatW6e2bdsqOTk5aq+5fv16tW3bVkuW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7Nq1C6GhoVi5ciXs7e0RHR2NoKCgam87ICAAQ4YMwciRI+Hq6gqpVAp3d3e50+XmzZsHNzc3eHp64uOPP8aAAQPkrlPl6OhYZSzdunXD5s2bERoaCkdHRxw9ehQzZ86Uq8fd3R2xsbE4fvw4OnXqhA8++ABr1qyBtbV1Dd41IiIioprh3feIiIiI6kFxcTFkMhk+++wzLFu27I3WNW7cOPz66684e/bsG62HiIiIqDp4+h4RERFRHfjtt99w/PhxuLm5oaCgAOvXr8e9e/cwdOhQpde1evVq9OnTB40bN8aRI0cQFRWFjRs3Kr0eIiIiotrgpBQRERFRHVBTU0NkZCT8/PwgCALs7e2RkJAAmUym9Lp+/vlnrFq1Cs+ePUOrVq2wbt06jB07Vun1EBEREdUGT98jIiIiIiIiIqI6xwudExERERERERFRneOkFBERERERERER1TlOShERERERERERUZ3jpBQREREREREREdU5TkoREREREREREVGd46QUERERERERERHVOU5KERERERERERFRneOkFBERERERERER1TlOShERERERERERUZ37f0E7rENYvlzCAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAjKpJREFUeJzs3Xd4FOXax/HfFtJIgxACSEekNwkiogcQJCAi6DkKiAr2cwQUC3ZpFrDDsWAXRFSKWF4pgkiR2AhFQQWko4D0hJqyO+8fOTtks5tkQ5ZJsnw/18Wle+/szP3MvWXmzrOzNsMwDAEAAAAAAAAWspd2AgAAAAAAADj70JQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgCc9ZYsWSKbzaYlS5aUdiplls1m0+jRo0s7DRSgc+fO6ty5c2mnUWp27typiIgIpaamlnYqxTJ58mTZbDZt27attFNBkAwePFjR0dFFLnfgwAFVrFhRc+fOtSArACi7aEoBQDljs9kC+mdFg6WgbY8fP/6MbxsIZXPnzj1rmoCDBw/2+z7SuHHjgNcxduxYtW/fXh07djyDmZZNhw4dktPp1IwZM0o7lTJr9uzZ6tevn+rXr6+oqCg1atRI9913nw4fPhzQ43fu3KkxY8boggsuUKVKlVSlShV17txZX3/99WnnlJCQoFtvvVWPP/74aa8DAEKBs7QTAAAUz9SpU71uv//++1q4cKFPvEmTJpbkc9lll+nGG2/0irVp08aSbQOhau7cuXr11VfPmsZUeHi43n77ba9YXFxcQI/dt2+fpkyZoilTppyJ1Mq8r776SjabTd27dy/tVMqs22+/XTVq1ND111+v2rVra+3atXrllVc0d+5crVq1SpGRkYU+/vPPP9czzzyjvn37atCgQcrJydH777+vyy67TO+++65uuumm08rr3//+t/773//qm2++0aWXXnpa6wCA8o6mFACUM9dff73X7R9++EELFy70iVvlvPPOK7VtI3hOnjypsLAw2e1MokZwud1uZWVlKSIiosBlnE7nab+PfPDBB3I6nerdu/fppliuzZ07Vx07dlR8fHxpp1JmzZo1y+frrW3bttWgQYM0bdo03XrrrYU+vkuXLtqxY4eqVKlixv7973+rdevWGjly5Gk3pZo0aaLmzZtr8uTJNKUAnLU48gSAEHTs2DHdd999qlWrlsLDw9WoUSM9//zzMgzDazmbzaahQ4dq2rRpatSokSIiItS2bVstW7asWNs7ceKETp48GfDys2bNks1m09KlS33ue+ONN2Sz2bRu3Tq/j01LS5PNZvM7K8IzY+DLL7+UJG3fvl133nmnGjVqpMjISCUkJOiaa64J6PotdevW1eDBg33i/q7dk5mZqVGjRuncc89VeHi4atWqpQceeECZmZleyy1cuFAXX3yx4uPjFR0drUaNGumRRx4pMpfi1Omvv/7SzTffrKSkJIWHh6tZs2Z69913vZbxXEPr448/1mOPPaZzzjlHUVFRysjIKDIXj0D3reeaOampqbr33nuVmJioihUr6qqrrtK+ffu8lnW73Ro9erRq1KihqKgodenSRb/99ptPLUaPHi2bzeaTk7/r83z++efq1auXatSoofDwcDVo0EBPPPGEXC6Xz+NfffVV1a9fX5GRkbrgggv07bfflqje/nz77be65pprVLt2bfOx99xzj06cOGEuM3jwYL366quSvL8iWxxZWVkaOXKk2rZtq7i4OFWsWFGXXHKJFi9ebC5jGIbq1q2rPn36+Dz+5MmTiouL0x133FHsced9vjZr1kzh4eGaP39+kTm7XK5iPQc9PvvsM7Vv397vdXwCrenevXt1yy23KCkpSREREWrVqpXf95hA31tPnDihu+66S1WqVFFMTIyuvPJK/fXXXwFfm23evHm65JJLVLFiRcXExKhXr1769ddffZZzu92aP3++evXqdVrbLs77xYwZMzRmzBidc845iomJ0b/+9S+lp6crMzNTw4cPV9WqVRUdHa2bbrqpwOfEzJkz1bRpU0VGRqpDhw5au3atpNz3/XPPPVcRERHq3Lmzz/tIIK+bwvi73tpVV10lSfr999+LfHyzZs28GlJS7uy+yy+/XH/++aeOHDni85gtW7YoJSVFFStWVI0aNTR27Fif54mUO9v4//7v//zeBwBnA2ZKAUCIMQxDV155pRYvXqxbbrlFrVu31ldffaURI0bor7/+0ksvveS1/NKlSzV9+nTdddddCg8P12uvvaYePXrop59+UvPmzYvc3uTJk/Xaa6/JMAw1adJEjz32mK677rpCH9OrVy9FR0drxowZ6tSpk9d906dPV7NmzQrcdnJysurXr68ZM2Zo0KBBPo+tVKmSUlJSJEkrVqzQd999p/79+6tmzZratm2bJk2apM6dO+u3335TVFRUkeMritvt1pVXXqnly5fr9ttvV5MmTbR27Vq99NJL2rhxoz777DNJ0q+//qorrrhCLVu21NixYxUeHq5NmzYFfGHmQOr0999/68ILLzRPABMTEzVv3jzdcsstysjI0PDhw73W+cQTTygsLEz333+/MjMzFRYWFvC4i7tvhw0bpkqVKmnUqFHatm2bJkyYoKFDh2r69OnmMg8//LCeffZZ9e7dWykpKfr555+VkpJSrIZnfpMnT1Z0dLTuvfdeRUdH65tvvtHIkSOVkZGh5557zlxu0qRJGjp0qC655BLdc8892rZtm/r27atKlSqpZs2a5nKB1rsgM2fO1PHjx/Wf//xHCQkJ+umnn/Tyyy/rzz//1MyZMyVJd9xxh3bt2uX3a7mBysjI0Ntvv60BAwbotttu05EjR/TOO+8oJSVFP/30k1q3bi2bzabrr79ezz77rA4ePKjKlSubj/+///s/ZWRkmLOXijvub775RjNmzNDQoUNVpUoV1a1bt9B8jx8/rtjYWB0/flyVKlXSgAED9MwzzxR5wejs7GytWLFC//nPf3zuC7SmJ06cUOfOnbVp0yYNHTpU9erV08yZMzV48GAdPnxYd999t6TivbcOHjxYM2bM0A033KALL7xQS5cu9WocFWbq1KkaNGiQUlJS9Mwzz+j48eOaNGmSLr74Yq1evdprX65YsUL79u3T5ZdfXuxtF/f9Yty4cYqMjNRDDz2kTZs26eWXX1aFChVkt9t16NAhjR49Wj/88IMmT56sevXqaeTIkV6P//bbb/XFF19oyJAh5vquuOIKPfDAA3rttdd055136tChQ3r22Wd1880365tvvjEfG8jrprj27NkjST7NpuKuIyoqyuf9zuVyqUePHrrwwgv17LPPav78+Ro1apRycnI0duxYr2Xbtm2rl156Sb/++mtAn7kAEHIMAEC5NmTIECPv2/lnn31mSDKefPJJr+X+9a9/GTabzdi0aZMZk2RIMtLS0szY9u3bjYiICOOqq64qctsXXXSRMWHCBOPzzz83Jk2aZDRv3tyQZLz22mtFPnbAgAFG1apVjZycHDO2e/duw263G2PHji30sQ8//LBRoUIF4+DBg2YsMzPTiI+PN26++WYzdvz4cZ/Hfv/994Yk4/333zdjixcvNiQZixcvNmN16tQxBg0a5PP4Tp06GZ06dTJvT5061bDb7ca3337rtdzrr79uSDJSU1MNwzCMl156yZBk7Nu3r9Cx+RNonW655RajevXqxv79+70e379/fyMuLs7cH57x1q9f3+8+KiiHUaNGmbcD3bfvvfeeIcno1q2b4Xa7zfg999xjOBwO4/Dhw4ZhGMaePXsMp9Np9O3b12udo0ePNiR51WLUqFGGv0MYz7a2bt1aaJ533HGHERUVZZw8edIwjNznTkJCgtGuXTsjOzvbXG7y5MmGpNOqd0H85TNu3DjDZrMZ27dvN2P5X9dFyf+8zMnJMTIzM72WOXTokJGUlOT1GtmwYYMhyZg0aZLXsldeeaVRt25ds2bFGbckw263G7/++mtAuT/00EPGgw8+aEyfPt346KOPjEGDBhmSjI4dO3rVw59NmzYZkoyXX37ZK16cmk6YMMGQZHzwwQdmLCsry+jQoYMRHR1tZGRkGIYR+HvrypUrDUnG8OHDvZYbPHiwz+so/3P2yJEjRnx8vHHbbbd5PXbPnj1GXFycT/zxxx836tSpY94uzraL+37RvHlzIysry1xuwIABhs1mM3r27On1+A4dOnjlZBi5z4nw8HCv1+Ybb7xhSDKqVatm7mPDyH1/D+R17O91Uxy33HKL4XA4jI0bN57W4//44w8jIiLCuOGGG7zinufvsGHDzJjb7TZ69eplhIWF+XwGfPfdd4YkY/r06aeVBwCUd3x9DwBCzNy5c+VwOHTXXXd5xe+77z4ZhqF58+Z5xTt06KC2bduat2vXrq0+ffroq6++8vsVp7xSU1N1991368orr9S///1vrVy5Us2bN9cjjzxS5Ncq+vXrp71793r9SuCsWbPkdrvVr1+/Ih+bnZ2t2bNnm7EFCxbo8OHDXo/Ne/Ha7OxsHThwQOeee67i4+O1atWqQrcRqJkzZ6pJkyZq3Lix9u/fb/7zXB/E83Upz/VePv/8c7nd7mJvp6g6GYahTz75RL1795ZhGF65pKSkKD093WfMgwYNKvICvwUp7r69/fbbvb6Cdskll8jlcmn79u2SpEWLFiknJ0d33nmn1+OGDRt2Wvn5y/PIkSPav3+/LrnkEh0/flzr16+XlPuV0AMHDui2226T03lqEvnAgQNVqVIlr/UFWu9A8jl27Jj279+viy66SIZhaPXq1SUaa14Oh8Oc+eZ2u3Xw4EHl5OQoOTnZqz7nnXee2rdvr2nTppmxgwcPat68eRo4cKBZs+KOu1OnTmratGlAuY4bN07jx4/Xtddeq/79+2vy5Ml66qmnlJqaqlmzZhX62AMHDkiST52KU9O5c+eqWrVqGjBggBmrUKGC7rrrLh09etT8mnGg762eryqeznN54cKFOnz4sAYMGOC1nx0Oh9q3b++zn+fOnes1CyrQbZ/O+8WNN96oChUqmLfbt28vwzB08803ey3Xvn177dy5Uzk5OV7xrl27es3yat++vSTpn//8p2JiYnziW7ZsMWPBft18+OGHeuedd3TfffepYcOGxX788ePHdc011ygyMrLAX5sdOnSo+f+e2WhZWVk+v9jneT7u37+/2HkAQCigKQUAIWb79u2qUaOG10G+dOrX+DxNAA9/B+TnnXeejh8/7nPNn6KEhYVp6NChOnz4sFauXFnosj169FBcXJzX17emT5+u1q1b67zzziv0sa1atVLjxo19HlulShWvi8WeOHFCI0eONK//UqVKFSUmJurw4cNKT08v1tgK8scff+jXX39VYmKi1z/PGPbu3Sspt5HWsWNH3XrrrUpKSlL//v01Y8aMgBtURdVp3759Onz4sN58802fXDwX4fXk4lGvXr3THndx923t2rW9bntOxA4dOiTp1PPy3HPP9VqucuXKPk2E4vj111911VVXKS4uTrGxsUpMTDS/kubJs6BtO51On6+dBVrvguzYsUODBw9W5cqVFR0drcTERPMrrMF6TnpMmTJFLVu2VEREhBISEpSYmKg5c+b4bOfGG29UamqquR9mzpyp7Oxs3XDDDeYyxR13SZ5bknTPPffIbrf7nMAXxMh3PZ7i1HT79u1q2LChz0X+879nBvreun37dtntdp99kD8Xf/744w9J0qWXXuqzrxcsWOC1n/fs2aNVq1Z5NaUC3fbpvF/kfw17fh2xVq1aPnG32+3zPCvO46VT7w1SYK+bEydOaM+ePV7//Pn22291yy23KCUlRU899ZTPfsn7+KNHj/o83uVyqX///vrtt980a9Ys1ahRw2cZu92u+vXre8U8r5X818vyPHeLe904AAgVXFMKABBUnhOMgwcPFrpceHi4+vbtq08//VSvvfaa/v77b6Wmpurpp58OaDv9+vXTU089pf379ysmJkZffPGFBgwY4DUrYtiwYXrvvfc0fPhwdejQQXFxcbLZbOrfv3+RzaCCThBcLpccDod52+12q0WLFnrxxRf9Lu/ZH5GRkVq2bJkWL16sOXPmaP78+Zo+fbouvfRSLViwwGudp8Mznuuvv97nWlseLVu29Lp9urOkpOLv24LGl7+ZEIjCapPX4cOH1alTJ8XGxmrs2LFq0KCBIiIitGrVKj344IOnNWMt0HoXlN9ll12mgwcP6sEHH1Tjxo1VsWJF/fXXXxo8ePBp5VOQDz74QIMHD1bfvn01YsQIVa1aVQ6HQ+PGjdPmzZu9lu3fv7/uueceTZs2TY888og++OADJScnq1GjRuYyxR13SZ5bnscnJCQU+T6SkJAgybuBUZ55ngNTp05VtWrVfO7P+/42b948RUREqEuXLqe9neK8XxT0Gg70tX26jw/0dTN9+nSfX8HLn8PPP/+sK6+8Us2bN9esWbO89qcktWvXzusPN6NGjfK5OPxtt92mL7/8UtOmTQvKL+Z5nrslubYVAJRnNKUAIMTUqVNHX3/9tY4cOeL1F33PV5Xq1KnjtbznL/N5bdy4UVFRUUpMTCz29j1fuQjksf369dOUKVO0aNEi/f777zIMo8iv7uV97JgxY/TJJ58oKSlJGRkZ6t+/v9cys2bN0qBBg/TCCy+YsZMnT+rw4cNFrr9SpUp+l9u+fbvXX8AbNGign3/+WV27di3yL912u11du3ZV165d9eKLL+rpp5/Wo48+qsWLF6tbt26FPjaQOsXExMjlchW5rmAoyb71x/O83LRpk9csjwMHDvg0HDwzpw4fPmx+LVLynQW4ZMkSHThwQLNnz9Y//vEPM75169YCt533BD8nJ0fbtm3zOjkvTr3zW7t2rTZu3KgpU6boxhtvNOMLFy70WbaksyZmzZql+vXra/bs2V7rGjVqlM+ylStXVq9evTRt2jQNHDhQqampmjBhgtcyJRn36fB81bKo95HatWsrMjKyRDWtU6eOfvnlF7ndbq/ZUvnfMwN9b61Tp47cbre2bt3qNcNx06ZNRY67QYMGkqSqVasW+TqeM2eOunTp4tUADHTbiYmJlr5flESgr5uUlBS/ryWPzZs3q0ePHqpatarmzp3r9yL606ZN8/rqef7ZTiNGjNB7772nCRMmeH3dMz+3260tW7Z4zfrduHGjJPnM1PM8dz0z7gDgbMPX9wAgxFx++eVyuVx65ZVXvOIvvfSSbDabevbs6RX//vvvva4dsnPnTn3++efq3r17obN3/H2178iRI5owYYKqVKnidf2jgnTr1k2VK1fW9OnTNX36dF1wwQUBf+2nSZMmatGihfnY6tWrezUepNy/wOf/S/nLL79c5LWypNyTwx9++EFZWVlm7Msvv9TOnTu9lrv22mv1119/6a233vJZx4kTJ3Ts2DFJ/meOtW7dWpJ8fj7dn6Lq5HA49M9//lOffPKJ1q1b5/P44n4Vsygl2bf+dO3aVU6nU5MmTfKK538eS6dO3JctW2bGjh07pilTpvjkKHnPlsjKytJrr73mtVxycrISEhL01ltveV0HZ9q0aT4NsUDr7Y+/fAzD0MSJE32WrVixoiSddpPP37Z+/PFHff/9936Xv+GGG/Tbb79pxIgRcjgcPg3ekoy7MCdPntSRI0d84k888YQMw1CPHj0KfXyFChWUnJystLQ0r3hxanr55Zdrz549Xl8HzsnJ0csvv6zo6Gjza2KBvrd6fv0z//Ps5ZdfLnQsnsfGxsbq6aefVnZ2ts/9ntdxdna2Fi5c6POreoFu2+r3i5II9HVTvXp1devWzeufx549e9S9e3fZ7XZ99dVXBTY7O3bs6PX4vE2p5557Ts8//7weeeQR8xcZC5P3eWIYhl555RVVqFBBXbt29Vpu5cqViouLU7NmzYpcJwCEImZKAUCI6d27t7p06aJHH31U27ZtU6tWrbRgwQJ9/vnnGj58uHlC79G8eXOlpKTorrvuUnh4uHkyM2bMmEK38+qrr+qzzz5T7969Vbt2be3evVvvvvuuduzYoalTp5oXWS5MhQoVdPXVV+vjjz/WsWPH9PzzzxdrrP369dPIkSMVERGhW265xeeaMFdccYWmTp2quLg4NW3aVN9//72+/vpr8ys/hbn11ls1a9Ys9ejRQ9dee602b96sDz74wGf/3XDDDZoxY4b+/e9/a/HixerYsaNcLpfWr1+vGTNm6KuvvlJycrLGjh2rZcuWqVevXqpTp4727t2r1157TTVr1tTFF19cZD6B1Gn8+PFavHix2rdvr9tuu01NmzbVwYMHtWrVKn399ddFfhWqOEqyb/1JSkrS3XffrRdeeEFXXnmlevTooZ9//lnz5s1TlSpVvGbndO/eXbVr19Ytt9xiNlHeffddJSYmaseOHeZyF110kSpVqqRBgwbprrvuks1m09SpU32aaWFhYRo9erSGDRumSy+9VNdee622bdumyZMnq0GDBl7bDrTe/jRu3FgNGjTQ/fffr7/++kuxsbH65JNP/H71zNPUveuuu5SSkuK3UVSYK664QrNnz9ZVV12lXr16aevWrXr99dfVtGlTv9fJ6dWrlxISEjRz5kz17NlTVatW9bq/JOMuzJ49e9SmTRsNGDBAjRs3liR99dVXmjt3rnr06KE+ffoUuY4+ffro0UcfVUZGhmJjYyUVr6a333673njjDQ0ePFgrV65U3bp1NWvWLHPGmGdWVKDvrW3bttU///lPTZgwQQcOHNCFF16opUuXmjNlCptpFhsbq0mTJumGG27Q+eefr/79+5vP6zlz5qhjx4565ZVXtHz5cmVkZPg0pYqzbSvfL0qiOK+bgvTo0UNbtmzRAw88oOXLl2v58uXmfUlJSbrssssKffynn36qBx54QA0bNlSTJk30wQcfeN1/2WWXKSkpybwdERGh+fPna9CgQWrfvr3mzZunOXPm6JFHHvFpiC1cuFC9e/fmmlIAzl4W/cofAOAM8ffT8UeOHDHuueceo0aNGkaFChWMhg0bGs8995z58+4ekowhQ4YYH3zwgdGwYUMjPDzcaNOmjbF48eIit7tgwQLjsssuM6pVq2ZUqFDBiI+PN7p3724sWrSoWPkvXLjQkGTYbDZj586dxXrsH3/8YUgyJBnLly/3uf/QoUPGTTfdZFSpUsWIjo42UlJSjPXr1xt16tQxBg0aZC7n+cnz/ON+4YUXjHPOOccIDw83OnbsaKSlpRmdOnXy+jl5w8j9+fhnnnnGaNasmREeHm5UqlTJaNu2rTFmzBgjPT3dMAzDWLRokdGnTx+jRo0aRlhYmFGjRg1jwIABAf0ceXHq9PfffxtDhgwxatWqZVSoUMGoVq2a0bVrV+PNN9/0Ge/MmTOL3HbeHPL+nHyg+9bzk/crVqzwWp+/fZ6Tk2M8/vjjRrVq1YzIyEjj0ksvNX7//XcjISHB+Pe//+31+JUrVxrt27c3wsLCjNq1axsvvviiua28PyWfmppqXHjhhUZkZKRRo0YN44EHHjC++uorv/X+73//a9SpU8cIDw83LrjgAiM1NdVo27at0aNHD6/lAql3QX777TejW7duRnR0tFGlShXjtttuM37++WdDkvHee+957Ythw4YZiYmJhs1m83mN55f/eel2u42nn37aHE+bNm2ML7/80hg0aJBRp04dv+u48847DUnGhx9+6Pf+QMfteb4G4tChQ8b1119vnHvuuUZUVJQRHh5uNGvWzHj66aeNrKysgNbx999/G06n05g6darPfYHW9O+//zafz2FhYUaLFi286uER6HvrsWPHjCFDhhiVK1c2oqOjjb59+xobNmwwJBnjx483l/P3nDWM3NdHSkqKERcXZ0RERBgNGjQwBg8ebKSlpRmGYRj333+/0bRpU7/7I9Bte8Z9uu8XBb22R40aZUgy9u3bZ8b8PSe2bt1qSDKee+45n7Hn316gr5uCeD4n/P3L/37uj2dMBf3L+14yaNAgo2LFisbmzZuN7t27G1FRUUZSUpIxatQow+Vyea33999/NyQZX3/9dZE5AECoshnGaVxhFAAQEmw2m4YMGeL3K1IoO87mOh0+fFiVKlXSk08+qUcffdTSbbvdbiUmJurqq6/2+7W1UHPPPffonXfe0Z49exQVFVXa6RTLLbfcoo0bN+rbb78tdLnSrOmaNWvUpk0bffDBBxo4cGCJ1tW0aVNdccUVevbZZy3fNoJn+PDhWrZsmVauXMlMKQBnLa4pBQAAyoS8Fxj28Fxwu3Pnzmd02ydPnvT5Wt/777+vgwcPnvFtlwUnT57UBx98oH/+85/lriEl5V7AfcWKFUpNTTVjpVnTgp7Ldrvd59p3xZWVlaV+/fr5/NKcFdtG8Bw4cEBvv/22nnzySRpSAM5qXFMKAACUCdOnT9fkyZN1+eWXKzo6WsuXL9dHH32k7t27q2PHjmd02z/88IPuueceXXPNNUpISNCqVav0zjvvqHnz5rrmmmvO6LZL0969e/X1119r1qxZOnDgQEAXcC6LateurZMnT3rFSrOmzz77rFauXKkuXbrI6XRq3rx5mjdvnm6//XbVqlWrROsOCwvz+yuKVmwbwZOQkOD3+m4AcLahKQUAAMqEli1byul06tlnn1VGRoZ58fMnn3zyjG+7bt26qlWrlv773//q4MGDqly5sm688UaNHz8+oIv2l1e//fabBg4cqKpVq+q///2v+YuQoaA0a3rRRRdp4cKFeuKJJ3T06FHVrl1bo0ePtuQr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W7duwGMBAADIq1SvKQUAAFAWjBgxQs8884ymT5+uDRs26KGHHtKaNWt09913ey336quv6tNPP9X69es1ZMgQHTp0SDfffHOR63c4HJo2bZpatWqlSy+9VHv27Ak4t/POO08DBw7UjTfeqNmzZ2vr1q366aefNG7cOM2ZM0eS1LBhQy1cuFDfffedfv/9d91xxx36+++/vdZTt25d/fjjj9q2bZv2798vt9ut9u3bKyoqSo888og2b96sDz/8UJMnTy4yp27duqlDhw7q27evFixYoG3btum7777To48+6vMT1AAAAAWhKQUAAM56d911l+69917dd999atGihebPn68vvvhCDRs29Fpu/PjxGj9+vFq1aqXly5friy++UJUqVQLahtPp1EcffaRmzZrp0ksv1d69ewPO77333tONN96o++67T40aNVLfvn21YsUK1a5dW5L02GOP6fzzz1dKSoo6d+6satWqqW/fvl7ruP/+++VwONS0aVMlJiZqx44dqly5sj744APNnTtXLVq00EcffaTRo0cXmY/NZtPcuXP1j3/8QzfddJPOO+889e/fX9u3b1dSUlLA4wIAAGc3mxHiF27KyMhQXFyc0tPTFRsbW+TynWJ6BWW7S4/MCcp6AABA4E6ePKmtW7eqXr16ioiICNp6t23bpnr16mn16tU+P8CCwJyp2gAAgLIn0F4MM6UAAAAAAABgOZpSAAAAAAAAsBy/vgcAAFCEunXrKsSveAAAAGA5ZkoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADLOUs7AQAAgPKsU0wvy7a19MicYj9m2bJleu6557Ry5Urt3r1bn376qfr27Rv85AAAAIqJmVIAAAAh7NixY2rVqpVeffXV0k4FAADACzOlAAAAQljPnj3Vs2fP0k4DAADABzOlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJbj1/cAAABC2NGjR7Vp0ybz9tatW7VmzRpVrlxZtWvXLsXMAADA2Y6mFAAAQAhLS0tTly5dzNv33nuvJGnQoEGaPHlyKWUFAABAUwoAAKBElh6ZU9opFKpz584yDKO00wAAAPDBNaUAAAAAAABgOZpSAAAAAAAA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llvM9/pGjRpp4sSJfsfw/PPPq3r16kpISNCQIUOUnZ19WnmVN3PmzFFcXJymTZumtWvX6tJLLzXfV2+//Xav15hnXz311FOqUaOGGjVqFLQ8Nm/erD59+igpKUnR0dFq166dvv76a69lAnn+fPfdd2rdurUiIiKUnJyszz77LCS/FlzU6+3QoUO68cYbValSJUVFRalnz576448/zMd7/iL/xRdfqGnTpgoPD9eOHTtKlBPHLoEr6FhAklauXFngcUAgrxN/HA6HqlWrZv6Ljo6W0+n0ikVGRprLf/XVV2rSpImio6PVo0cP7d6927yvqM9L6eyZ1frmm2+qRo0aPg3dPn366Oabb/Y7u/Dtt99WkyZNFBERocaNG+u1114LSi4cfxbM7Xbr2Wef1bnnnqvw8HDVrl1bTz31lHkcMWPGDF1yySWKjIxUu3bttHHjRq1YsULJycmKjo5Wz549tW/fPnN9Vh03BONzMSsrS0OHDlX16tUVERGhOnXqaNy4cUHNs7TlPY4p7HNIyv1sHDhwoBITExUZGamGDRvqvffeC3hbM2fOVNOmTfXQQw9p2bJl2rlzp9f9BR0nFZWXR2pqqlq2bKmIiAhdeOGFWrdu3WnulTOHplQQjRs3Tu+//75ef/11/frrr7rnnnt0/fXXe53MPProo3rhhReUlpYmp9Opm2++2bxv2rRpeuqpp/TMM89o5cqVql27tiZNmhS0/LKzs/XEE0/o559/1meffaZt27aZB2+1atXSJ598IknasGGDdu/e7XWSNWXKFFWsWFE//vijnn32WY0dO1YLFy4MWm5lwe7duzVgwADdfPPN+v3337VkyRJdffXV5sH4okWLzPhHH32k2bNna8yYMebjjx07pnvvvVdpaWlatGiR7Ha7rrrqqqD8lfjkyZNq27at5syZo3Xr1un222/XDTfcoJ9++klS7tedOnTooNtuu83862StWrXMxxf2vAtFEydO1NixY1WzZk3t3r1bK1askJT7PA4LC1Nqaqpef/11SZLdbtd///tf/frrr5oyZYq++eYbPfDAA0HJ48iRIxo0aJCWL1+uH374QQ0bNtTll19uNpc8eb333nteeUq5Bw2fffaZvvzyS3355ZdaunSpxo8fH5S8ypspU6bI6XTqp59+0sSJE/Xiiy/q7bff9lrmhRdeUHJyslavXq0777xT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5c6G6t+/v+x271O3Y8eOafPmzbrlllu8zj+efPLJoFxCguNP/37//XdlZmaqa9euBS6Td+yeGVQtWrTwiuXfFyU9brDqc3Hw4MFas2aNGjVqpLvuuksLFiwIOMeyzN9xjFT059B//vMfffzxx2rdurUeeOABfffddwFv891331VKSoo5s+ryyy9Xenq6vvnmG6/l/B0nBfr5mPeYtnLlyj6f22WBs+hFEAjP9THmzJmjc845x+u+8PBw84OhQoUKZtxz0GfFRUCPHTumlJQUpaSkaNq0aUpMTNSOHTuUkpIS0MXS8uYt5eYeahcvdTgcWrhwob777jstWLBAL7/8sh599FH9+OOPAT2+d+/eqlOnjt566y3zWgDNmzcPysXonnvuOU2cOFETJkwwr380fPjwgNddWs+7sibvibGUez2SK664Qv/5z3/01FNPqXLlylq+fLluueUWZWVleTUhT8egQYN04MABTZw4UXXq1FF4eLg6dOjAa+4MsHJ/ffzxx7r//vv1wgsvqEOHDoqJidFzzz3n815xttWwTZs2WrVqld59910lJyd7NTaKkv+1GYi4uDide+65XrH8XxW7//77tXDhQj3//PM699xzFRkZqX/9618+r8GzrVZnUmRkZLFqXxiOXYKnsOOAQF8nwdq+Jwcjz7UBS/J5GYp69+4twzA0Z84ctWvXTt9++61eeukln+U85x9vvfWWV8NYkldz43Rx/Olf3mulFcTf2PPH8u+Lkr5nWfW5eP7552vr1q2aN2+evv76a1177bXq1q2beS3l8srfcUwgn0M9e/bU9u3bNXfuXC1cuFBdu3bVkCFD9Pzzzxe6PZfLpSlTpmjPnj1eP8jkcrn07rvvejU98x8nlfTzsayhKRUkeS/ombez6hHIXysaNWqkFStW6MYbbzRjea8xUxLr16/XgQMHNH78ePO73mlpaV7LeLqveWcfnG1sNps6duyojh07auTIkapTp44+/fRTSdLPP/+sEydOmB9EP/zwg6Kjo1WrVi0dOHBAGzZs0FtvvaVLLrlEkrR8+fKg5ZWamqo+ffro+uuvl5T7gb5x40Y1bdrUXCYsLOysrt3pWLlypdxut1544QXzr4/5rwtUEqmpqXrttdd0+eWXS5J27typ/fv3ey1ToUIF6laE/M0ez/VGgnHAXZAffvhB//jHPyRJOTk5Wrly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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAhRVJREFUeJzs3XmcjfX7x/H3OWfMZjYzZuzGkpA1S7ILGZKoviWpKGlDIUuLLG20EPlKO5IiUvoia5ZsaURSlshW9sEMg9nO/fvDb05z5sxyhuM+s7yej4fHw7nOvVzX+ZzlPtd87vtYDMMwBAAAAAAAAJjI6u0EAAAAAAAAUPTQlAIAAAAAAIDpaEoBAAAAAADAdDSlAAAAAAAAYDqaUgAAAAAAADAdTSkAAAAAAACYjqYUAAAAAAAATEdTCgAAAAAAAKajKQUAAAAAAADT0ZQCABQpq1evlsVi0erVq72dSr5lsVg0evRob6eBbLRp00Zt2rTxdhoFwptvvqkaNWrIbrd7O5U8YYwLH4vFov79++e63Pvvv6+KFSsqKSnJhKwAwPtoSgFAPmaxWNz6Z0aDJbt9jxs37prvGyjMFi9eXGSagJs3b9ZTTz2lhg0bqlixYrJYLDku/8knn6hmzZry9/dXtWrVNHnyZLf3lZCQoDfeeEPDhw+X1Vr0DnknT56s0NBQpaSkeDuVfCkuLk5vvfWWWrVqpcjISIWFhenmm2/WnDlz3N7GypUr9cgjj+j6669XYGCgqlSpokcffVRHjx694rx69+6t5ORkffDBB1e8DQAoSHy8nQAAIHszZ850uv3ZZ59p+fLlLvGaNWuaks+tt96qhx56yCl24403mrJvoLBavHixpkyZUiQaU4sXL9bHH3+sunXrqkqVKtqzZ0+2y37wwQd64okndPfdd2vw4MH68ccf9fTTT+vChQsaPnx4rvv69NNPlZqaqh49eniyhAJj0aJF6tChg4oVK+btVPKljRs36sUXX9Rtt92mESNGyMfHR19//bXuu+8+/fHHHxozZkyu2xg+fLhOnz6te+65R9WqVdNff/2l//73v1q4cKG2bdum0qVL5zkvf39/9erVSxMmTNCAAQNybdwCQEFHUwoA8rEHHnjA6famTZu0fPlyl7hZrr/+eq/tG55z6dIl+fr6FsnZI7i27Ha7kpOT5e/vn+X9Tz75pIYPH66AgAD1798/26bUxYsX9eKLL6pz586aN2+eJKlv376y2+165ZVX9Nhjj6lEiRI55jJt2jTdcccd2eZSmF24cEFr1qzR1KlTvZ1KvlWrVi39+eefio6OdsSeeuoptW/fXm+88YaGDRum4sWL57iNCRMmqEWLFk7vpR07dlTr1q313//+V6+++uoV5XbvvffqzTff1KpVq9S2bdsr2gYAFBQcjQJAAZeYmKhnn31WFSpUkJ+fn6pXr663335bhmE4LZd+PYtZs2apevXq8vf3V8OGDbV27do87e/ixYu6dOmS28vPmzdPFotFa9ascbnvgw8+kMVi0Y4dO7JcNzY2VhaLRTNmzHC5b+nSpbJYLFq4cKEk6eDBg3rqqadUvXp1BQQEKCIiQvfcc48OHDiQa46VKlVS7969XeJZXdclKSlJo0aN0nXXXSc/Pz9VqFBBw4YNc7n+x/Lly9WiRQuFhYUpKChI1atX1wsvvJBrLnkZp3/++UePPPKISpUqJT8/P9WqVUuffvqp0zLp19CaPXu2RowYoXLlyikwMFAJCQm55pLO3cd2+vTpslgsWr9+vQYPHqzIyEgVL15cd955p06ePOm0rN1u1+jRo1W2bFkFBgbqlltu0R9//OEyFqNHj85ypkD6vjLmsGDBAnXu3Flly5aVn5+fqlatqldeeUVpaWku60+ZMkVVqlRRQECAbrrpJv34449XNd5Z+fHHH3XPPfeoYsWKjnUHDRqkixcvOpbp3bu3pkyZIsn5FNm8SE5O1siRI9WwYUOFhoaqePHiatmypVatWuVYxjAMVapUSV27dnVZ/9KlSwoNDdXjjz+e57ozPl9r1aolPz8/LVmyJNtcS5UqpYCAgFxrWrVqleLi4vTUU085xfv166fExEQtWrQox/X379+v7du3q3379i73xcXF6cEHH1RISIjCwsLUq1cv/frrr7JYLJo+fbrTsj/88INatmyp4sWLKywsTF27dtXOnTtdtrl161Z16tRJISEhCgoKUrt27bRp0yaX5bZv367WrVsrICBA5cuX16uvvqpp06a5PJezkpfn4sqVK5WUlKROnTpd0b6///57R93BwcHq3Lmzfv/9d6dlevfuraCgIB06dEi33367goKCVK5cOcfz+bffflPbtm1VvHhxRUdH64svvnBaP/01vG7dOj399NOOU+gef/xxJScn6+zZs3rooYdUokQJlShRQsOGDXP5XHv77bfVrFkzRUREKCAgQA0bNnQ0MXNTuXJlp4aUdPn53K1bNyUlJemvv/7KdRutWrVyae63atVK4eHhWT5PJLn13t6wYUOFh4drwYIFbtUCAAUZM6UAoAAzDEN33HGHVq1apT59+qh+/fpaunSphg4dqn/++UfvvPOO0/Jr1qzRnDlz9PTTT8vPz0/vvfeeOnbsqM2bN6t27dq57m/69Ol67733ZBiGatasqREjRuj+++/PcZ3OnTsrKChIX331lVq3bu1035w5c1SrVq1s992oUSNVqVJFX331lXr16uWybokSJRQTEyNJ+vnnn7Vhwwbdd999Kl++vA4cOKCpU6eqTZs2+uOPPxQYGJhrfbmx2+264447tG7dOj322GOqWbOmfvvtN73zzjvas2ePvv32W0nS77//rttvv11169bVyy+/LD8/P+3du1fr1693az/ujNPx48d18803O5oCkZGR+v7779WnTx8lJCRo4MCBTtt85ZVX5OvrqyFDhigpKUm+vr5u153Xx3bAgAEqUaKERo0apQMHDmjixInq37+/07Vann/+eb355pvq0qWLYmJi9OuvvyomJiZPDc/Mpk+frqCgIA0ePFhBQUH64YcfNHLkSCUkJOitt95yLDd16lT1799fLVu21KBBg3TgwAF169ZNJUqUUPny5R3LuTve2Zk7d64uXLigJ598UhEREdq8ebMmT56sv//+W3PnzpUkPf744zpy5EiWp+W6KyEhQR9//LF69Oihvn376ty5c/rkk08UExOjzZs3q379+rJYLHrggQf05ptv6vTp0woPD3es/7///U8JCQmOWZB5rfuHH37QV199pf79+6tkyZKqVKnSFdWR0datWyVdfg/IqGHDhrJardq6dWuOszY3bNggSWrQoIFT3G63q0uXLtq8ebOefPJJ1ahRQwsWLHB5f5GkFStWqFOnTqpSpYpGjx6tixcvavLkyWrevLl++eUXR52///67WrZsqZCQEA0bNkzFihXTBx98oDZt2mjNmjVq0qSJpMtN5FtuuUUWi0XPP/+8ihcvro8//lh+fn65Ph55HZPFixerYcOGKlWqVJ73PXPmTPXq1UsxMTF64403dOHCBU2dOlUtWrTQ1q1bncY3LS1NnTp1UqtWrfTmm29q1qxZ6t+/v4oXL64XX3xRPXv21F133aX3339fDz30kJo2barKlSs77W/AgAEqXbq0xowZo02bNunDDz9UWFiYNmzYoIoVK+r111/X4sWL9dZbb6l27dpOp5BPmjRJd9xxh3r27Knk5GTNnj1b99xzjxYuXKjOnTvn+rhm5dixY5KkkiVLXtH658+f1/nz57NcPy+fwQ0aNHD7MwMACjQDAFBg9OvXz8j41v3tt98akoxXX33Vabn//Oc/hsViMfbu3euISTIkGbGxsY7YwYMHDX9/f+POO+/Mdd/NmjUzJk6caCxYsMCYOnWqUbt2bUOS8d577+W6bo8ePYyoqCgjNTXVETt69KhhtVqNl19+Ocd1n3/+eaNYsWLG6dOnHbGkpCQjLCzMeOSRRxyxCxcuuKy7ceNGQ5Lx2WefOWKrVq0yJBmrVq1yxKKjo41evXq5rN+6dWujdevWjtszZ840rFar8eOPPzot9/777xuSjPXr1xuGYRjvvPOOIck4efJkjrVlxd1x6tOnj1GmTBnj1KlTTuvfd999RmhoqOPxSK+3SpUqWT5G2eUwatQox213H9tp06YZkoz27dsbdrvdER80aJBhs9mMs2fPGoZhGMeOHTN8fHyMbt26OW1z9OjRhiSnsRg1apSR1eFK+r7279+fY56PP/64ERgYaFy6dMkwjMvPnYiICKNx48ZGSkqKY7np06cbkq5ovLOTVT5jx441LBaLcfDgQUcs8+s6N5mfl6mpqUZSUpLTMmfOnDFKlSrl9BrZvXu3IcmYOnWq07J33HGHUalSJceY5aVuSYbVajV+//13t/NPl1Pd/fr1M2w2W5b3RUZGGvfdd1+O2x4xYoQhyTh37pxT/OuvvzYkGRMnTnTE0tLSjLZt2xqSjGnTpjni9evXN6Kiooy4uDhH7NdffzWsVqvx0EMPOWLdunUzfH19jX379jliR44cMYKDg41WrVo5YgMGDDAsFouxdetWRywuLs4IDw93eS5f6XtPuooVKzq9ht3d97lz54ywsDCjb9++Tts7duyYERoa6hTv1auXIcl4/fXXHbEzZ84YAQEBhsViMWbPnu2I79q1y+V9Jf01HBMT4/R+0bRpU8NisRhPPPGEI5aammqUL1/e6TExDNfXWHJyslG7dm2jbdu2xpWIi4szoqKijJYtW17R+oZhGK+88oohyVi5cqVTPK+fwY899pgREBBwxXkAQEHB6XsAUIAtXrxYNptNTz/9tFP82WeflWEY+v77753iTZs2VcOGDR23K1asqK5du2rp0qVZnuKU0fr16/XMM8/ojjvu0BNPPKEtW7aodu3aeuGFF5xOR8pK9+7ddeLECadfCZw3b57sdru6d++e67opKSmaP3++I7Zs2TKdPXvWad2MpwSlpKQoLi5O1113ncLCwvTLL7/kuA93zZ07VzVr1lSNGjV06tQpx7/0a36kny4VFhYm6fLpZFfyU/S5jZNhGPr666/VpUsXGYbhlEtMTIzi4+Ndau7Vq5dbp01lJa+P7WOPPeZ0ClrLli2VlpamgwcPSrp8alFqaqrLqVkDBgy4ovyyyvPcuXM6deqUWrZsqQsXLmjXrl2SLp8SGhcXp759+8rH598J4z179nS5RpG74+1OPomJiTp16pSaNWsmwzAcM4E8wWazOWa+2e12nT59WqmpqWrUqJHT+Fx//fVq0qSJZs2a5YidPn1a33//vXr27OkYs7zW3bp1a91www0eq0e6fJpwdrP5/P39c33PiYuLk4+Pj4KCgpziS5YsUbFixdS3b19HzGq1ql+/fk7LHT16VNu2bVPv3r2dZpXVrVtXt956qxYvXizp8kyhZcuWqVu3bqpSpYpjuTJlyuj+++/XunXrHKfKLlmyRE2bNlX9+vUdy4WHh6tnz5451iLlbUx27NihQ4cOOc0Ucnffy5cv19mzZ9WjRw+n/dhsNjVp0iTL5/yjjz7q+H9YWJiqV6+u4sWL695773XEq1evrrCwsCxPievTp4/T+0WTJk1kGIb69OnjiNlsNjVq1Mhl/YyvsTNnzig+Pl4tW7a8ovd8u92unj176uzZs3n6lceM1q5dqzFjxujee+/N8lpQefkMLlGihC5evKgLFy5cUS4AUFBw+h4AFGAHDx5U2bJlFRwc7BRP/zW+9CZAumrVqrls4/rrr9eFCxd08uTJPP1SkK+vr/r37+9oULVo0SLbZTt27KjQ0FDNmTNH7dq1k3T59Lv69evr+uuvz3E/9erVU40aNTRnzhzHl5Q5c+aoZMmSTgf9Fy9e1NixYzVt2jT9888/TtceiY+Pd7uunPz555/auXOnIiMjs7z/xIkTki430j7++GM9+uijeu6559SuXTvddddd+s9//uPWxcVzGyer1aqzZ8/qww8/1IcffphjLukynzKTF3l9bCtWrOh0O73Zc+bMGUn/Pi+vu+46p+XCw8NzvXh1Tn7//XeNGDFCP/zwg8s1s9LzzG7fPj4+LqeduTve2Tl06JBGjhyp7777zlF75nw8ZcaMGRo/frx27dqllJQURzzzuD/00EPq37+/Dh48qOjoaM2dO1cpKSl68MEHHcvkte6reW5lJyAgQMnJyVned+nSpStusB48eFBlypRxOeU08/Mh/XlSvXp1l23UrFlTS5cuVWJios6dO6cLFy5ku5zdbtfhw4dVq1YtHTx4UE2bNnVZLvO+s5KXMVm0aJFKlSrldOqju/v+888/JSnbi2uHhIQ43fb393fJKTQ0VOXLl3e5NlpoaKjL60Byfb8IDQ2VJFWoUCHX9RcuXKhXX31V27Ztc7q2VsZ9nz592um5FBAQ4NhHRgMGDNCSJUv02WefqV69eo54cnKyTp8+7bRsZGSkbDabU2zXrl268847Vbt2bX388ccu25fy9hmc/j7Lr+8BKOxoSgEArlj6l4bMB+yZ+fn5qVu3bvrmm2/03nvv6fjx41q/fr1ef/11t/bTvXt3vfbaazp16pSCg4P13XffqUePHk4zXQYMGKBp06Zp4MCBatq0qUJDQ2WxWHTfffflOlspu4P+tLQ0py8edrtdderU0YQJE7JcPv3xCAgI0Nq1a7Vq1SotWrRIS5Ys0Zw5c9S2bVstW7bM5ctMXqXX88ADD2R5LRzp8oyOjK70S7yU98c2u/qMTBcpdkdOY5PR2bNn1bp1a4WEhOjll19W1apV5e/vr19++UXDhw+/ohlr7o53dvndeuutOn36tIYPH64aNWqoePHi+ueff9S7d+8ryic7n3/+uXr37q1u3bpp6NChioqKks1m09ixY7Vv3z6nZe+77z4NGjRIs2bN0gsvvKDPP/9cjRo1cmqq5LXuq3luZadMmTJKS0vTiRMnFBUV5YgnJycrLi5OZcuWzXH9iIgIpaam6ty5cy5N+4IoL2OyePFidezY8YqaGenPy5kzZ2b5R4qM77lS9q/1vLwH5GUbGdf/8ccfdccdd6hVq1Z67733VKZMGRUrVkzTpk1zuqj6XXfd5fRDG7169XK5oP2YMWP03nvvady4cU4NWuny9cluueUWp9j+/fudmtiHDx9Whw4dFBoaqsWLF3vkOXfmzBkFBgZek9cXAOQnNKUAoACLjo7WihUrXL54pZ+qlPmXhdL/Cp7Rnj17FBgYmO1f4HOSfiqFO+t2795dM2bM0MqVK7Vz504ZhpHrqXsZ1x0zZoy+/vprlSpVSgkJCbrvvvuclpk3b5569eql8ePHO2KXLl3S2bNnc91+iRIlslzu4MGDTqfkVK1aVb/++qvatWuX6xc+q9Wqdu3aqV27dpowYYJef/11vfjii1q1alWWvwiWkTvjFBwcrLS0tFy35QlX89hmJf15uXfvXqdZNnFxcS4zIdJnTp09e9ZxWqTkOgtw9erViouL0/z589WqVStHfP/+/dnuO+MXzdTUVB04cMCpmZeX8c7st99+0549ezRjxgynCzMvX77cZdmrnQkxb948ValSRfPnz3fa1qhRo1yWDQ8PV+fOnTVr1iz17NlT69ev18SJE52WuZq6PSX9NLPY2FjddtttjnhsbKzsdrvTaWhZqVGjhqTL459xTKOjo7Vq1SpduHDBabbU3r17ndZPf57s3r3bZdu7du1SyZIlVbx4cfn7+yswMDDb5axWq6NhFB0d7bKfrPadFXfH5OzZs9qwYYP69+/vUo87+65ataokKSoqypT3lqvx9ddfy9/fX0uXLnW6YPu0adOclhs/frzT+0rmhuaUKVM0evRoDRw4UMOHD3fZT7169VxetxkbdnFxcerQoYOSkpK0cuVKlSlTJtuc8/IZvH//fsesZwAozLimFAAUYLfddpvS0tL03//+1yn+zjvvyGKxOP0cuCRt3LjR6Vobhw8f1oIFC9ShQ4ccZ++cPHnSJXbu3DlNnDhRJUuWdLpGRnbat2+v8PBwzZkzR3PmzNFNN93k9mk/NWvWVJ06dRzrlilTxqnxIF3+q3rmv8JPnjw512tlSZe/iG3atMnpFI+FCxfq8OHDTsvde++9+ueff/TRRx+5bOPixYtKTEyUlPXMsfQv0Vn9fHtmuY2TzWbT3Xffra+//lo7duxwWT+r8boaV/PYZqVdu3by8fHR1KlTneKZn8fSv1+SM/5semJiombMmOGSo+Q8kyI5OVnvvfee03KNGjVSRESEPvroI6Wmpjris2bNcmmIuTveWckqH8MwNGnSJJdlixcvLklX3OTLal8//fSTNm7cmOXyDz74oP744w8NHTpUNpvNpcF7NXV7Stu2bRUeHu7yHJk6daoCAwNz/WW19FPVYmNjneIxMTFKSUlxqs1ut2vKlClOy5UpU0b169fXjBkznMZlx44dWrZsmaNRZrPZ1KFDBy1YsEAHDhxwLHf8+HF98cUXatGiheOUt5iYGG3cuFHbtm1zLHf69Gmna3xlx90xWbZsmSSpQ4cOLnW7s++YmBiFhITo9ddfdzoNNJ2n31uuhs1mk8VicXofOnDggMsvETZs2FDt27d3/Mt4/bP0X8Lr2bNntrPQSpQo4bR++/bt5e/vL+nye9Ftt92mf/75R4sXL87y9LyM8vIZ/Msvv6hZs2ZuPRYAUJAxUwoACrAuXbrolltu0YsvvqgDBw6oXr16WrZsmRYsWKCBAwc6vtCnq127tmJiYpx+jlq6fOpCTqZMmaJvv/1WXbp0UcWKFXX06FF9+umnOnTokGbOnJntBYkzKlasmO666y7Nnj1biYmJevvtt/NUa/fu3TVy5Ej5+/urT58+Ltdmuv322zVz5kyFhobqhhtu0MaNG7VixQpFRETkuu1HH31U8+bNU8eOHXXvvfdq3759+vzzz10evwcffFBfffWVnnjiCa1atUrNmzdXWlqadu3apa+++kpLly5Vo0aN9PLLL2vt2rXq3LmzoqOjdeLECb333nsqX758jtfeSufOOI0bN06rVq1SkyZN1LdvX91www06ffq0fvnlF61YsSLXUyrz4moe26yUKlVKzzzzjMaPH6877rhDHTt21K+//qrvv/9eJUuWdJoJ0qFDB1WsWFF9+vRxNFE+/fRTRUZG6tChQ47lmjVrphIlSqhXr156+umnZbFYNHPmTJdmmq+vr0aPHq0BAwaobdu2uvfee3XgwAFNnz5dVatWddq3u+OdlRo1aqhq1aoaMmSI/vnnH4WEhOjrr7/O8po66U3dp59+WjExMVk2inJy++23a/78+brzzjvVuXNn7d+/X++//75uuOEGnT9/3mX5zp07KyIiQnPnzlWnTp2cTo+72rpzc/DgQc2cOVPSvw2jV199VdLl2Tzpp04FBATolVdeUb9+/XTPPfcoJiZGP/74oz7//HO99tprThcfz0qVKlVUu3ZtrVixQo888ogj3q1bN91000169tlntXfvXtWoUUPfffed4/WScfzfeustderUSU2bNlWfPn108eJFTZ48WaGhoRo9erRjuVdffVXLly9XixYt9NRTT8nHx0cffPCBkpKS9OabbzqWGzZsmD7//HPdeuutGjBggIoXL66PP/5YFStW1OnTp3OcAeXumCxatEgtWrRwuWaSu/sOCQnR1KlT9eCDD6pBgwa67777HK+1RYsWqXnz5lk2j72hc+fOmjBhgjp27Kj7779fJ06c0JQpU3Tddddp+/btua6/efNmPfTQQ4qIiFC7du1cGnTNmjVzmimblZ49e2rz5s165JFHtHPnTu3cudNxX1BQkLp16+a0vLufwVu2bNHp06fVtWvXXOsAgALP5F/7AwBchax+Qv3cuXPGoEGDjLJlyxrFihUzqlWrZrz11ltOP7FtGJd/jrpfv37G559/blSrVs3w8/MzbrzxRmPVqlW57nfZsmXGrbfeapQuXdooVqyYERYWZnTo0MHlJ69zs3z5ckOSYbFYjMOHD+dp3T///NPxk9rr1q1zuf/MmTPGww8/bJQsWdIICgoyYmJijF27dhnR0dFGr169HMutWrXKkORS9/jx441y5coZfn5+RvPmzY3Y2FiXn2U3jMs/Of7GG28YtWrVMvz8/IwSJUoYDRs2NMaMGWPEx8cbhmEYK1euNLp27WqULVvW8PX1NcqWLWv06NHD2LNnT6515mWcjh8/bvTr18+oUKGCUaxYMaN06dJGu3btjA8//NCl3rlz5+a674w5ZPzpdncf2/SfeP/555+dtpfVY56ammq89NJLRunSpY2AgACjbdu2xs6dO42IiAinn4I3DMPYsmWL0aRJE8PX19eoWLGiMWHCBMe+0n/K3jAMY/369cbNN99sBAQEGGXLljWGDRtmLF26NMvxfvfdd43o6GjDz8/PuOmmm4z169cbDRs2NDp27Oi0nDvjnZ0//vjDaN++vREUFGSULFnS6Nu3r/Hrr78akoxp06Y5PRYDBgwwIiMjDYvF4vIazyzz89Jutxuvv/66o54bb7zRWLhwodGrVy8jOjo6y2089dRThiTjiy++yPJ+d+tOf766K/25kNW/zK81wzCMDz/80Khevbrh6+trVK1a1XjnnXdc3tuyM2HCBCMoKMi4cOGCU/zkyZPG/fffbwQHBxuhoaFG7969jfXr1xuSjNmzZzstu2LFCqN58+ZGQECAERISYnTp0sX4448/XPb1yy+/GDExMUZQUJARGBho3HLLLcaGDRtcltu6davRsmVLw8/PzyhfvrwxduxY49133zUkGceOHXMsdyXvPXa73YiKijLefPPNLB8Pd/dtGJfHKSYmxggNDTX8/f2NqlWrGr179zZiY2Mdy/Tq1csoXry4y35at25t1KpVyyUeHR1tdO7c2XE7u/eLUaNGGZKMkydPOsWz2t8nn3zieJ+sUaOGMW3aNMf6uUnff3b/Mr5GsxMdHZ3t+plfe3l5bx8+fLhRsWJFt5/rAFCQWQzjCq46CgAocCwWi/r165dv/sqNrBXlcTp79qxKlCihV199VS+++KKp+7bb7YqMjNRdd92V5SlShc2gQYP0ySef6NixYy6/RFdYxMfHq0qVKnrzzTcdv9yZnW+//VZ33nmn1q1bp+bNm5uU4WUDBw7UBx98oPPnz1/VjyBs3rxZTZo00e+//+50ipoZ+4bnJCUlqVKlSnruuef0zDPPeDsdALjmuKYUAAAw3cWLF11i6RfcbtOmzTXd96VLl1xO6/vss890+vTpa77v/ODSpUv6/PPPdffddxfahpQkhYaGatiwYXrrrbecfu0w83MvLS1NkydPVkhIiBo0aHBNc8q877i4OM2cOVMtWrTwSFPo9ddfz7Yhda33Dc+YNm2aihUrpieeeMLbqQCAKbimFAAAMN2cOXM0ffp03XbbbQoKCtK6dev05ZdfqkOHDtd8psqmTZs0aNAg3XPPPYqIiNAvv/yiTz75RLVr19Y999xzTfftTSdOnNCKFSs0b948xcXFFYlZGMOHD3f5RbUBAwbo4sWLatq0qZKSkjR//nxt2LBBr7/+ugICAq5pPk2bNlWbNm1Us2ZNHT9+XJ988okSEhL00ksvXfW2b7rpJt10001e2Tc854knnqAhBaBIoSkFAABMV7duXfn4+OjNN99UQkKC4+Ln6Re9vpYqVaqkChUq6N1339Xp06cVHh6uhx56SOPGjXProv0F1R9//KGePXsqKipK7777ruMXIYuatm3bavz48Vq4cKEuXbqk6667TpMnT1b//v2v+b5vu+02zZs3Tx9++KEsFosaNGigTz75xOXXRAvbvgEAyA7XlAIAAAAAAIDpuKYUAAAAAAAATEdTCgAAAAAAAKYr9NeUstvtOnLkiIKDg2WxWLydDgAAAAAAQKFmGIbOnTunsmXLymrNfj5UoW9KHTlyRBUqVPB2GgAAAAAAAEXK4cOHVb58+Wzv92pTauzYsZo/f7527dqlgIAANWvWTG+88YaqV6/uWKZNmzZas2aN03qPP/643n//fbf2ERwcLOnyAxESEuK55AEAAAAAAOAiISFBFSpUcPRksuPVptSaNWvUr18/NW7cWKmpqXrhhRfUoUMH/fHHHypevLhjub59++rll1923A4MDHR7H+mn7IWEhNCUAgAAAAAAMElul1HyalNqyZIlTrenT5+uqKgobdmyRa1atXLEAwMDVbp0abPTAwAAAAAAwDWSr359Lz4+XpIUHh7uFJ81a5ZKliyp2rVr6/nnn9eFCxe8kR4AAAAAAAA8JN9c6Nxut2vgwIFq3ry5ateu7Yjff//9io6OVtmyZbV9+3YNHz5cu3fv1vz587PcTlJSkpKSkhy3ExISJEmpqalKTU2VJFmtVlmtVtntdtntdsey6fG0tDQZhpFr3GazyWKxOLabMS5JaWlpbsV9fHxkGIZT3GKxyGazueSYXZyaqImaqImaqImaqImaqImaqImaqImaqCk/1JQ5r+zkm6ZUv379tGPHDq1bt84p/thjjzn+X6dOHZUpU0bt2rXTvn37VLVqVZftjB07VmPGjHGJb9261XGdqsjISFWtWlX79+/XyZMnHcuUL19e5cuX1549exyztiSpSpUqioqK0o4dO3Tx4kVHvEaNGgoLC9PWrVudBrBu3bry9fVVbGysUw6NGjVScnKytm/f7ojZbDY1btxY8fHx2rVrlyMeEBCgevXq6dSpU/rrr78c8dDQUNWsWVNHjhzR33//7YhTEzVREzVREzVRk3NNFy9e1O+//+5UU506dZSQkOCUu7+/v2rUqKG4uDgdPnzYEQ8ODlbVqlV17NgxHTt2zBEPDw9XxYoVdejQIZ0+fdoRL126tEqXLq19+/bp3LlzjniFChUUERGhXbt26dKlS061hoSE6LfffnOqqXr16ipWrJh27NjhVFPt2rWVkpKi3bt3F7iaatWqpYCAgCLz3KMmaqImaqImairqNSUmJsodFiNjq81L+vfvrwULFmjt2rWqXLlyjssmJiYqKChIS5YsUUxMjMv9Wc2UqlChguLi4hwXOi8qnUlqoiZqoiZqoqaiWJNhGDp58qTi4+OV+TAn/WKbWcWzOiS6lvGccvFUPD/VFBoaqsjISKcLnha25x41URM1URM1URM1XY4nJCQoIiJC8fHxOf7onFebUoZhaMCAAfrmm2+0evVqVatWLdd11q9frxYtWujXX39V3bp1c10+ISFB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07F++l/kv/vuO91www3y8/PToUOHrionjl3cl92xgCRt2bIl2+MAd14nWbHZbCpdurTjX1BQkHx8fJxiAQEBjuWXLl2qmjVrKigoSB07dtTRo0cd9+X2eSkVnVmtH374ocqWLevS0O3ataseeeSRLGcXfvzxx6pZs6b8/f1Vo0YNvffeex7JhePP7Nntdr355pu67rrr5Ofnp4oVK+q1115zHEd89dVXatmypQICAtS4cWPt2bNHP//8sxo1aqSgoCB16tRJJ0+edGzPrOMGT3wuJicnq3///ipTpoz8/f0VHR2tsWPHejRPb8t4HJPT55B0+bOxZ8+eioyMVEBAgKpVq6Zp06a5va+5c+fqhhtu0HPPPae1a9fq8OHDTvdnd5yUW17p1q9fr7p168rf318333yzduzYcYWPyrVDU8qDxo4dq88++0zvv/++fv/9dw0aNEgPPPCA05eZF198UePHj1dsbKx8fHz0yCOPOO6bNWuWXnvtNb3xxhvasmWLKlasqKlTp3osv5SUFL3yyiv69ddf9e233+rAgQOOg7cKFSro66+/liTt3r1bR48edfqSNWPGDBUvXlw//fST3nzzTb388stavny5x3LLD44ePaoePXrokUce0c6dO7V69WrdddddjoPxlStXOuJffvml5s+frzFjxjjWT0xM1ODBgxUbG6uVK1fKarXqzjvv9MhfiS9duqSGDRtq0aJF2rFjhx577DE9+OCD2rx5s6TLpzs1bdpUffv2dfx1skKFCo71c3reFUaTJk3Syy+/rPLly+vo0aP6+eefJV1+Hvv6+mr9+vV6//33JUlWq1Xvvvuufv/9d82YMUM//PCDhg0b5pE8zp07p169emndunXatGmTqlWrpttuu83RXErPa9q0aU55SpcPGr799lstXLhQCxcu1Jo1azRu3DiP5FXQzJgxQz4+Ptq8ebMmTZqkCRMm6OOPP3ZaZvz48WrUqJG2bt2qp556Sk8++eRVHfwOHTpUzz77rLZu3aqmTZuqS5cuiouLk3T5QLR8+fKaO3eu/vjjD40cOVIvvPCCvvrqK6dtrFq1Svv27dOqVas0Y8YMTZ8+3dTTEr3liy++UI8ePTRr1ix169ZNMTExKlGihH7++WfNnTtXK1asUP/+/Z3WWblypXbv3q3ly5dr4cKFHsvl/Pnzuu2227Ry5Upt3bpVHTt2VJcuXVwaJTk9fxISEtSlSxfVqVNHv/zyi1555RUNHz7cYznmNzm93nr37q3Y2Fh999132rhxowzD0G233eb0penChQt644039PHHH+v3339XVFTUVeXDsYv7cjoWyOk4wN3XydW4cOGC3n77bc2cOVNr167VoUOHNGTIEMf9uX1eFiX33HOP4uLitGrVKkfs9OnTWrJkiXr27Omy/KxZszRy5Ei99tpr2rlzp15//XW99NJLmjFjxlXnwvFn9p5//nmNGzdOL730kv744w998cUXKlWqlOP+UaNGacSIEfrll1/k4+Oj+++/X8OGDdOkSZP0448/au/evRo5cqTTNs04bvDE5+K7776r7777Tl999ZV2796tWbNmOf6wWhhkPI7p2bNnjp9DkhzPge+//147d+7U1KlTVbJkSbf398knn+iBBx5QaGioOnXqlOWYZ3WclFte6YYOHarx48fr559/VmRkpLp06ZL//khqwCMuXbpkBAYGGhs2bHCK9+nTx+jRo4exatUqQ5KxYsUKx32LFi0yJBkXL140DMMwmjRpYvTr189p/ebNmxv16tVzK4dRo0a5vaxhGMbPP/9sSDLOnTtnGIbhyPHMmTNOy7Vu3dpo0aKFU6xx48bG8OHD3d5XQbBlyxZDknHgwAGX+3r16mWEh4cbiYmJjtjUqVONoKAgIy0tLcvtnTx50pBk/Pbbb27tX5LxzTffuJ1v586djWeffdZxu3Xr1sYzzzzjtIw7z7vC6p133jGio6Mdt1u3bm3ceOONua43d+5cIyIiwq19ZPeayU5aWpoRHBxs/O9//3PEshr3UaNGGYGBgUZCQoIjNnToUKNJkyZu7aeg69Wrl9G1a1fDMC6PW82aNQ273e64f/jw4UbNmjUdt6Ojo40HHnjAcdtutxtRUVHG1KlT3dpfxjHYv3+/IckYN26c4/6UlBSjfPnyxhtvvJHtNvr162fcfffdTjVER0cbqampjtg999xjdO/e3a2cCpr095///ve/RmhoqLF69WrDMAzjww8/NEqUKGGcP3/eseyiRYsMq9VqHDt2zDCMy49VqVKljKSkpDztr1ixYkbx4sWd/vn5+RmhoaE5rlurVi1j8uTJjtu5PX+mTp1qREREOL1nfvTRR4YkY+vWrW7nXBDk9Hrbs2ePIclYv369475Tp04ZAQEBxldffWUY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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgiNJREFUeJzs3Xd4FGXXx/Hf7ob0RkIIvYoQuhDF0AUkICKojyKigiLqI6CAFH1UBAtgAUFEbAiIKAhiA6RKkSZdBQVEaUoPkFBDkp33D94s2dQNLLPJ5vu5Lq6LPTs7c+49W2ZP7pmxGIZhCAAAAAAAADCR1dMJAAAAAAAAoOihKQUAAAAAAADT0ZQCAAAAAACA6WhKAQAAAAAAwHQ0pQAAAAAAAGA6mlIAAAAAAAAwHU0pAAAAAAAAmI6mFAAAAAAAAExHUwoAAAAAAACmoykFAChSli9fLovFouXLl3s6lQLLYrFo2LBhnk4DOWjZsqVatmzp6TQKhTfeeEM1atSQ3W73dCr5Qo29j8ViUZ8+ffJc7v3331eFChWUnJxsQlYA4Hk0pQCgALNYLC79M6PBktO2R40adc23DXiz+fPnF5km4Pr16/Xkk0+qYcOGKlasmCwWS47LXu1nTlJSkl5//XUNGTJEVmvR2+UdP368wsLClJKS4ulUCqSEhAS9+eabat68uaKiohQeHq6bb75ZM2fOdHkdS5cu1SOPPKLrr79egYGBqlKlih599FEdOnToivPq0aOHLl68qA8++OCK1wEAhYmPpxMAAORs2rRpTrc//fRTLV68OEs8JibGlHxuvfVWPfTQQ06xG264wZRtA95q/vz5mjBhQpFoTM2fP18ff/yx6tatqypVqmjXrl25Ln81nzmffPKJUlNT1bVr1yvOtzCbN2+e2rZtq2LFink6lQJp7dq1ev7553XbbbfphRdekI+Pj7766ivdd999+v333zV8+PA81zFkyBCdOHFC99xzj6pVq6a///5b7777rubOnautW7eqVKlS+c7L399f3bt315gxY9S3b99cG7cA4A1oSgFAAfbAAw843V63bp0WL16cJW6W66+/3mPbhvtcuHBBvr6+RXL2CK4tu92uixcvyt/fP9v7//vf/2rIkCEKCAhQnz598mxKXc1nzuTJk3XHHXfkmIs3O3funFasWKGJEyd6OpUCq1atWvrzzz9VsWJFR+zJJ59UmzZt9Prrr2vw4MEKCgrKdR1jxoxR06ZNnT5L27VrpxYtWujdd9/Vq6++ekW53XvvvXrjjTe0bNkytWrV6orWAQCFBXujAFDInT17Vs8884zKly8vPz8/Va9eXW+99ZYMw3BaLv18FtOnT1f16tXl7++vhg0bauXKlfna3vnz53XhwgWXl589e7YsFotWrFiR5b4PPvhAFotF27Zty/axGzdulMVi0dSpU7Pct3DhQlksFs2dO1eStG/fPj355JOqXr26AgICFBkZqXvuuUd79+7NM8dKlSqpR48eWeLZndclOTlZL730kq677jr5+fmpfPnyGjx4cJbzfyxevFhNmzZVeHi4goODVb16df3vf//LM5f81Onff//VI488oujoaPn5+alWrVr65JNPnJZJP4fWjBkz9MILL6hs2bIKDAxUUlJSnrmkc/W5nTJliiwWi1avXq0BAwYoKipKQUFBuvPOO3Xs2DGnZe12u4YNG6YyZcooMDBQt9xyi37//fcstRg2bFi2MwXSt5Uxh2+//VYdOnRQmTJl5Ofnp6pVq+qVV15RWlpalsdPmDBBVapUUUBAgG666Sb99NNPV1Xv7Pz000+65557VKFCBcdj+/fvr/PnzzuW6dGjhyZMmCDJ+XC1/Lh48aKGDh2qhg0bKiwsTEFBQWrWrJmWLVvmWMYwDFWqVEmdOnXK8vgLFy4oLCxMjz/+eL7HnfH1WqtWLfn5+WnBggU55hodHa2AgIB8jS+/nzmStGfPHv36669q06ZNlvsSEhL04IMPKjQ0VOHh4erevbt++eUXWSwWTZkyxWnZH3/8Uc2aNVNQUJDCw8PVqVMn/fHHH1nWuWXLFrVv316hoaEKDg5W69attW7duizL/frrr2rRooUCAgJUrlw5vfrqq5o8eXKW13J28vNaXLp0qZKTk9W+ffsr2vYPP/zgGHdISIg6dOig7du3Oy3To0cPBQcHa//+/br99tsVHByssmXLOl7Pv/32m1q1aqWgoCBVrFhRn3/+udPj09/Dq1at0lNPPeU4hO7xxx/XxYsXderUKT300EMqXry4ihcvrsGDB2f5XnvrrbfUuHFjRUZGKiAgQA0bNtTs2bNzfR7TVa5c2akhJV16PXfu3FnJycn6+++/81xH8+bNszT3mzdvroiIiGxfJ5Jc+mxv2LChIiIi9O2337o0FgAozJgpBQCFmGEYuuOOO7Rs2TL17NlT9evX18KFCzVo0CD9+++/evvtt52WX7FihWbOnKmnnnpKfn5+eu+999SuXTutX79etWvXznN7U6ZM0XvvvSfDMBQTE6MXXnhB999/f66P6dChg4KDg/Xll1+qRYsWTvfNnDlTtWrVynHbsbGxqlKlir788kt17949y2OLFy+u+Ph4SdKGDRu0Zs0a3XfffSpXrpz27t2riRMnqmXLlvr9998VGBiY5/jyYrfbdccdd2jVqlV67LHHFBMTo99++01vv/22du3apW+++UaStH37dt1+++2qW7euXn75Zfn5+Wn37t1avXq1S9txpU5HjhzRzTff7GgKREVF6YcfflDPnj2VlJSkfv36Oa3zlVdeka+vrwYOHKjk5GT5+vq6PO78Prd9+/ZV8eLF9dJLL2nv3r0aO3as+vTp43Sulueee05vvPGGOnbsqPj4eP3yyy+Kj4/Pd/MhoylTpig4OFgDBgxQcHCwfvzxRw0dOlRJSUl68803HctNnDhRffr0UbNmzdS/f3/t3btXnTt3VvHixVWuXDnHcq7WOyezZs3SuXPn9N///leRkZFav369xo8fr3/++UezZs2SJD3++OM6ePBgtofluiopKUkff/yxunbtql69eun06dOaNGmS4uPjtX79etWvX18Wi0UPPPCA3njjDZ04cUIRERGOx3///fdKSkpyzEjK77h//PFHffnll+rTp49KlCihSpUqXdE4snMlnzmStGbNGklSgwYNnOJ2u10dO3bU+vXr9d///lc1atTQt99+m+XzRZKWLFmi9u3bq0qVKho2bJjOnz+v8ePHq0mTJtq8ebNjnNu3b1ezZs0UGhqqwYMHq1ixYvrggw/UsmVLrVixQo0aNZJ0qYl8yy23yGKx6LnnnlNQUJA+/vhj+fn55Tme/NZk/vz5atiwoaKjo/O97WnTpql79+6Kj4/X66+/rnPnzmnixIlq2rSptmzZ4lTftLQ0tW/fXs2bN9cbb7yh6dOnq0+fPgoKCtLzzz+vbt266a677tL777+vhx56SHFxcapcubLT9vr27atSpUpp+PDhWrdunT788EOFh4drzZo1qlChgkaMGKH58+frzTffVO3atZ0O5xw3bpzuuOMOdevWTRcvXtSMGTN0zz33aO7cuerQoUOez2t2Dh8+LEkq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W/mRn8+cnOzbt0+lS5fOcshp5tdD+vNTvXr1LOuIiYnR8ePHdfbsWR07dkznzp3LcTm73a4DBw441pl5O9ltOzv5qcm8efMUHR2t2NhYp/G4su0///xTktSqVass21q0aFGW2vv7+ysqKsopFhYWpnLlymU5N1pYWJjjMyCjzJ8XYWFhkqTy5cvn+fi5c+fq5ptvlr+/vyIiIhQVFaWJEyc6ve5PnDihw4cPO/7l9N7r27evFixYoI8//lj16tVzxC9evOj0+MOHD2f7R5wdO3bozjvvVO3atfXxxx9nu438fAcb/3/+LK6+B8DbcU4pAMAVS//RcOLEiVyX8/PzU+fOnfX111/rvffe05EjR7R69WqNGDHCpe106dJFr732mo4fP66QkBB999136tq1q9NMl759+2ry5Mnq16+f4uLiFBYWJovFovvuuy/PZlBOO/1paWmy2WyO23a7XXXq1NGYMWOyXT79+QgICNDKlSu1bNkyzZs3TwsWLNDMmTPVqlUrLVq0yGmdVyJ9PA888EC258KRLs3oyOhKZ0lJ+X9ucxqfkekkxa7IrTYZnTp1Si1atFBoaKhefvllVa1aVf7+/tq8ebOGDBlyRTPWXK13TvndeuutOnHihIYMGaIaNWooKChI//77r3r06HFF+eTks88+U48ePdS5c2cNGjRIJUuWlM1m08iRI/XXX385LXvfffepf//+mj59uv73v//ps88+U2xsrFNTJb/jvprXVn65+pkTGRmp1NRUnT59OkvTvjDKT03mz5+vdu3aXVEzI/11OW3aNJUqVSrL/Rk/c6Wc3+v5+QzIzzoyPv6nn37SHXfcoebNm+u9995T6dKlVaxYMU2ePNnppOp33XWX04U2unfvnuWE9sOHD9d7772nUaNGOTVopUvnJ7vlllucYnv27HFqYh84cEBt27ZVWFiY5s+f75bX3MmTJxUYGGjq+wsAPIGmFAAUYhUrVtSSJUuy/PBKP1Qp85WF0v8KntGuXbsUGBiY5a/drkg/lMKVx3bp0kVTp07V0qVL9ccff8gwjDwP3cv42OHDh+urr75SdHS0kpKSdN999zktM3v2bHXv3l2jR492xC5cuKBTp07luf7ixYtnu9y+ffucDsmpWrWqfvnlF7Vu3TrPH3xWq1WtW7dW69atNWbMGI0YMULPP/+8li1blu0VwTJypU4hISFKS0vLc13ucDXPbXbSX5e7d+92mmWTkJCQZSZE+sypU6dOOQ6LlLLOAly+fLkSEhI0Z84cNW/e3BHfs2dPjtvO+EMzNTVVe/fudWrm5afemf3222/atWuXpk6d6nRi5sWLF2dZ9mpnQsyePVtVqlTRnDlznNb10ksvZVk2IiJCHTp00PTp09WtWzetXr1aY8eOdVrmasZ9rbn6mVOjRg1Jl+qfsaYVK1bUsmXLdO7cOafZUrt373Z6fPrrZOfOnVnWvWPHDpUoUUJBQUHy9/dXYGBgjstZrVZHw6hixYpZtpPdtrPjak1OnTqlNWvWqE+fPlnG48q2q1atKkkqWbKkKZ8tV+Orr76Sv7+/Fi5c6HTC9smTJzstN3r0aKfPlTJlyjjdP2HCBA0bNkz9+vXTkCFDsmynXr16Wd63GRt2CQkJatu2rZKTk7V06VKVLl06x5zz8x28Z88ex6xnAPBmHL4HAIXYbbfdprS0NL377rtO8bffflsWi8XpcuCStHbtWqdzbRw4cEDffvut2rZtm+vsnewO7Tt9+rTGjh2rEiVKOJ0jIydt2rRRRESEZs6cqZkzZ+qmm25y+bCfmJgY1alTx/HY0qVLOzUepEt/Vc/8V/jx48fnea4s6dIPsXXr1unixYuO2Ny5cx2H3aS799579e+//+qjjz7Kso7z58/r7NmzkrKfxZF+LpfsLt+eWV51stlsuvvuu/XVV19p27ZtWR6f30Mx83I1z212WrduLR8fH02cONEpnvl1LF3+kZzxsulnz57V1KlTs+QoOc+kuHjxot577z2n5WJjYxUZGamPPvpIqampjvj06dOzNMRcrXd2ssvHMAyNGzcuy7JBQUGSdMVNvuy29fPPP2vt2rXZLv/ggw/q999/16BBg2Sz2bI0eK9m3O5ytZ85cXFxki6dQyyj+Ph4paSkOI3NbrdrwoQJTsuVLl1a9evX19SpU53qsm3bNi1atEi33XabpEvPfdu2bfXtt99q7969juWOHDmizz//XE2bNlVoaKhj22vXrtXWrVsdy504ccLpHF85cbUmixYtkiS1bds2y7hd2XZ8fLxCQ0M1YsQIpaSkZNmWuz9brobNZpPFYnH6HNq7d2+WKxE2bNhQbdq0cfzLeP6z9CvhdevWLcdZaMWLF3d6fJs2beTv7y/p0mfRbbfdpn///Vfz58/P9vC8jPLzHbx582Y1btzYpecCAAozZkoBQCHWsWNH3XLLLXr++ee1d+9e1atXT4sWLdK3336rfv36OX7Qp6tdu7bi4+OdLkctXTp0ITcTJkzQN998o44dO6pChQo6dOiQPvnkE+3fv1/Tpk1znGQ5N8WKFdNdd92lGTNm6OzZs3rrrbfyNdYuXbpo6NCh8vf3V8+ePWW1Ov9d5fbbb9e0adMUFhammjVrau3atVqyZIkiIyPzXPejjz6q2bNnq127drr33nv1119/6bPPPsvy/D344IP68ssv9cQTT2jZsmVq0qSJ0tLStGPHDn355ZdauHChYmNj9fLLL2vlypXq0KGDKlasqKNHj+q9995TuXLl1LRp0zzzcaVOo0aN0rJly9SoUSP16tVLNWvW1IkTJ7R582YtWbIkz8Ob8uNqntvsREdH6+mnn9bo0aN1xx13qF27dvrll1/0ww8/qESJEk4zQdq2basKFSqoZ8+ejibKJ598oqioKO3fv9+xXOPGjVW8eHF1795dTz31lCwWi6ZNm5almebr66thw4apb9++atWqle69917t3btXU6ZMUdWqVZ227Wq9s1OjRg1VrVpVAwcO1L///qvQ0FB99dVX2Z5TJ73B8tRTTyk+Pj7bRlFubr/9ds2ZM0d33nmnOnTooD179uj9999XzZo1debMmSzLd+jQQZGRkZo1a5bat2+vkiVLOt1/NePOy759+zRt2jRJlxtGr776qqRLs3nSD5262s+cKlWqqHbt2lqyZIkeeeQRR7xz58666aab9Mwzz2j37t2qUaOGvvvuO8f7JWP933zzTbVv315xcXHq2bOnzp8/r/HjxyssLEzDhg1zLPfqq69q8eLFatq0qZ588kn5+Pjogw8+UHJyst544w3HcoMHD9Znn32mW2+9VX379lVQUJA+/vhjVahQQSdOnMh1BpSrNZk3b56aNm3qOC9TfrcdGhqqiRMn6sEHH1SDBg103333Od5r8+bNU5MmTbJtHntChw4dNGbMGLVr107333+/jh49qgkTJui6667Tr7/+mufj169fr4ceekiRkZFq3bp1lgZd48aNnWbKZqdbt25av369HnnkEf3xxx/6448/HPcFBwerc+fOTsu7+h28adMmnThxQp06dcpzHABQ6Jl+vT8AwBXL7hLqp0+fNvr372+UKVPGKFasmFGtWjXjzTff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nj17Oj7rq1evrnHjxmU7hrfeekulS5dWZGSkevfurZSUlCvKq7CZN2+ewsLCNH36dP32229q1aqV43P1sccec3qPpT9Xr732msqUKaPq1au7LY+//vpLnTp1UnR0tIKDg3XjjTdqyZIlTsu48vpZs2aN6tevL39/f8XGxuqbb77xysOC83q/nTx5Ug899JCKFy+uwMBAtW/fXn/++afj8el/kf/uu+9Us2ZN+fn5af/+/VeVE/surstpX0CSNm3alON+gCvvk+zYbDaVKlXK8S84OFg+Pj5OsYCAAMfyCxcuVExMjIKDg9WuXTsdOnTIcV9e35dS0ZnV+uGHH6pMmTJZGrqdOnXSI488ku3swo8//lgxMTHy9/dXjRo19N5777klF/Y/c2a32/XGG2/ouuuuk5+fnypUqKDXXnvNsR/x5ZdfqlmzZgoICNCNN96oXbt2acOGDYqNjVVwcLDat2+vY8eOOdZn1n6DO74XL168qD59+qh06dLy9/dXxYoVNXLkSLfm6WkZ92Ny+x6SLn03duvWTVFRUQoICFC1atU0efJkl7c1a9Ys1axZU88++6xWrlypAwcOON2f035SXnmlW716terWrSt/f3/dfPPN2rZt2xU+K9cOTSk3GjlypD799FO9//772r59u/r3768HHnjA6cfM888/r9GjR2vjxo3y8fHRI4884rhv+vTpeu211/T6669r06ZNqlChgiZOnOi2/FJSUvTKK6/ol19+0TfffKO9e/c6dt7Kly+vr776SpK0c+dOHTp0yOlH1tSpUxUUFKSff/5Zb7zxhl5++WUtXrzYbbkVBIcOHVLXrl31yCOP6I8//tDy5ct11113OXbGly5d6oh/8cUXmjNnjoYPH+54/NmzZzVgwABt3LhRS5culdVq1Z133umWvxJfuHBBDRs21Lx587Rt2zY99thjevDBB7V+/XpJlw53iouLU69evRx/nSxfvrzj8bm97rzRuHHj9PLLL6tcuXI6dOiQNmzYIOnS69jX11erV6/W+++/L0myWq165513tH37dk2dOlU//vijBg8e7JY8Tp8+re7du2vVqlVat26dqlWrpttuu83RXErPa/LkyU55Spd2Gr755hvNnTtXc+fO1YoVKzRq1Ci35FXYTJ06VT4+Plq/fr3GjRunMWPG6OOPP3ZaZvTo0YqNjdWWLVv05JNP6r///e9V7fwOGjRIzzzzjLZs2aK4uDh17NhRCQkJki7tiJYrV06zZs3S77//rqFDh+p///ufvvzyS6d1LFu2TH/99ZeWLVumqVOnasqUKaYelugpn3/+ubp27arp06erc+fOio+PV/HixbVhwwbNmjVLS5YsUZ8+fZwes3TpUu3cuVOLFy/W3Llz3ZbLmTNndNttt2np0qXasmWL2rVrp44dO2ZplOT2+klKSlLHjh1Vp04dbd68Wa+88oqGDBnithwLmtzebz169NDGjRv13Xffae3atTIMQ7fddpvTj6Zz587p9ddf18cff6zt27erZMmSV5UP+y6uy21fILf9AFffJ1fj3LlzeuuttzRt2jStXLlS+/fv18CBAx335/V9WZTcc889SkhI0LJlyxyxEydOaMGCBerWrVuW5adPn66hQ4fqtdde0x9//KERI0boxRdf1NSpU686F/Y/c/bcc89p1KhRevHFF/X777/r888/V3R0tOP+l156SS+88II2b94sHx8f3X///Ro8eLDGjRunn376Sbt379bQoUOd1mnGfoM7vhffeecdfffdd/ryyy+1c+dOTZ8+3fGHVW+QcT+mW7duuX4PSXK8Bn744Qf98ccfmjhxokqUKOHy9iZNmqQHHnhAYWFhat++fbY1z24/Ka+80g0aNEijR4/Whg0bFBUVpY4dOxa8P5IacIsLFy4YgYGBxpo1a5ziPXv2NLp27WosW7bMkGQsWbLEcd+8efMMScb58+cNwzCMRo0aGb1793Z6fJMmTYx69eq5lMNLL73k8rKGYRgbNmwwJBmnT582DMNw5Hjy5Emn5Vq0aGE0bdrUKXbjjTcaQ4YMcXlbhcGmTZsMScbevXuz3Ne9e3cjIiLCOHv2rCM2ceJEIzg42EhLS8t2fceOHTMkGb/99ptL25dkfP311y7n26FDB+OZZ55x3G7RooXx9NNPOy3jyuvOW7399ttGxYoVHbdbtGhh3HDDDXk+btasWUZkZKRL28jpPZOTtLQ0IyQkxPj+++8dsezq/tJLLxmBgYFGUlKSIzZo0CCjUaNGLm2nsOvevbvRqVMnwzAu1S0mJsaw2+2O+4cMGWLExMQ4blesWNF44IEHHLftdrtRsmRJY+LEiS5tL2MN9uzZY0gyRo0a5bg/JSXFKFeunPH666/nuI7evXsbd999t9MYKlasaKSm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fbujKZSd4cOH66mnnlJYWJjatWun5ORkbdy4USdPntSAAQNc2hb7n/nj7++vIUOGaPDgwfL19VWTJk107Ngxbd++PddD+goCd7zfx4wZo9KlS+uGG26Q1WrVrFmzVKpUqRwbKIVJ5v2Y559/Ps/voaFDh6phw4aqVauWkpOTNXfuXJeaPpMmTVKHDh1Ur149p3jNmjXVv39/TZ8+Xb179872sa58P6Z7+eWXFRkZqejoaD3//PMqUaKE4yrXBQXnlHKjV155RS+++KJGjhypmJgYtWvXTvPmzXP5h0q3bt303HPPaeDAgY5pkT169HA6j0Vedu3apRtuuMHp3+OPP66oqChNmTLFccnJUaNGZeneli1bVsOHD9ezzz6r6OjoLFdH8nahoaFauXKlbrvtNl1//fV64YUXNHr0aLVv316S1Lp1a1WrVk3NmzdXly5ddMcddzguL221WjVjxgxt2rRJtWvXVv/+/fXmm2/mO4cBAwZkqd+WLVv0wgsvqEGDBoqPj1fLli1VqlSpLB8mAwcOlM1mU82aNR1TOJG7evXqacyYMXr99ddVu3ZtTZ8+/Youadu8eXOnmqWfu2rSpEk6efKkGjRooAcffFBPPfVUlmnUo0eP1uLFi1W+fHndcMMNbhmXt3nooYd0/vx53XTTTerdu7eefvppPfbYY25Zd/qOWMZp05I0atQojRo1SvXq1dOqVav03XffOY73f/zxx3XXXXepS5cuatSokRISEpxmTRV11atX148//qgvvvhCL774ohYuXKgTJ07oxhtv1H/+8x+1bt1a7777rim5jBkzRsWLF1fjxo3VsWNHxcfHZzvbIDehoaH6/vvvtXXrVtWvX1/PP/+844pJ+fl+Lixye79NnjxZDRs21O233664uDgZhqH58+dnOcwjv9h3cZ8r2Rdwx/vkarnyfVnUtGrVShEREdq5c6fuv//+HJd79NFH9fHHH2vy5MmqU6eOWrRooSlTpuTrDyXsf+bfiy++qGeeeUZDhw5VTEyMunTpUijOl+WO93tISIjeeOMNxcbG6sYbb9TevXs1f/78LOc8K6wy7seMGjUqz+8hX19fPffcc6pbt66aN28um82mGTNm5LqNI0eOaN68ebr77ruz3Jd+BfdJkybl+HhXvh/TjRo1Sk8//bQaNmyow4cP6/vvv8/3eTyvNYuR8YBuFDi3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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAnvhJREFUeJzs3Xl8U3X2//F3lm4U2tJSCljKpiyCgIJiBWSVyjAows+VGUEddUZAAbev4waOIy6j4iigjgy4MSCK6ICyijgiiEVQUcGNfadAy9I1ub8/ai5Nk7RJKTdtfD0fDx4Penpz7zk5uW1y+smNzTAMQwAAAAAAAICF7OFOAAAAAAAAAL89DKUAAAAAAABgOYZSAAAAAAAAsBxDKQAAAAAAAFiOoRQAAAAAAAAsx1AKAAAAAAAAlmMoBQAAAAAAAMsxlAIAAAAAAIDlGEoBAAAAAADAcgylAAC/KR9//LFsNps+/vjjcKdSY9lsNk2YMCHcaSCA3r17q3fv3uFOo1Z48skn1bZtW7nd7nCnEhJ6HHlsNptGjx5d6XYvvviiMjIyVFhYaEFWABB+DKUAoAaz2WxB/bNiwBLo2I8//vhpPzYQyT744IPfxBDQ7XZr5syZuuyyy9S0aVPFx8erQ4cOevTRR1VQUOD3NtOnT1e7du0UGxurs846S88//3zQx8vLy9MTTzyhe++9V3b7b+8p7/PPP6/ExEQVFxeHO5UaKScnR0899ZQuvvhipaamKikpSRdeeKHmzJkT9D6WL1+uG2+8Ua1bt1adOnXUsmVL/elPf9KePXuqnNfIkSNVVFSkl156qcr7AIDaxBnuBAAAgb3++uteX7/22mtaunSpT7xdu3aW5HPJJZfo+uuv94qde+65lhwbiFQffPCBpkyZEvGDqRMnTuiGG27QhRdeqD//+c9q2LChVq9erYcffljLly/XRx99JJvNZm7/0ksv6c9//rOGDRum8ePH63//+59uv/12nThxQvfee2+lx/v3v/+tkpISXXvttaezrBpr4cKFGjBggKKiosKdSo20evVq3X///frd736nBx54QE6nU++8846uueYafffdd5o4cWKl+7j33nt16NAhXXnllTrrrLP0yy+/6IUXXtCCBQu0YcMGNWrUKOS8YmNjNWLECD3zzDMaM2aM1zkBAJGIoRQA1GB/+MMfvL5es2aNli5d6hO3SuvWrcN2bFSfgoICRUdH/yZXj+D0crvdKioqUmxsrM/3oqOjtWrVKl100UVm7Oabb1bz5s3NwVT//v0lSfn5+br//vs1aNAgvf322+a2brdbf/vb33TLLbeofv36FeYyY8YMXXbZZX5ziXQnTpzQypUrNW3atHCnUmO1b99eP/74o5o1a2bGbrvtNvXv319PPPGE7rnnHsXHx1e4j2eeeUY9evTw+ll66aWXqlevXnrhhRf06KOPVim3q666Sk8++aRWrFihvn37VmkfAFBb8GwUAGq548eP684771TTpk0VExOjNm3a6B//+IcMw/DaznM9izfffFNt2rRRbGysunTpok8++SSk4+Xn5wd8q40/b7/9tmw2m1auXOnzvZdeekk2m00bN270e9vs7GzZbDa9+uqrPt9bvHixbDabFixYIEnatm2bbrvtNrVp00ZxcXFKSUnRlVdeqa1bt1aaY/PmzTVy5EifuL/ruhQWFurhhx/WmWeeqZiYGDVt2lT33HOPz/U/li5dqh49eigpKUl169ZVmzZt9Ne//rXSXELp065du3TjjTcqLS1NMTExat++vf797397beO5htbs2bP1wAMP6IwzzlCdOnWUl5dXaS4ewd63M2fOlM1m06pVqzR+/HilpqYqPj5eV1xxhQ4cOOC1rdvt1oQJE9SkSRPVqVNHffr00XfffefTiwkTJvhdKeA5Vtkc3nvvPQ0aNEhNmjRRTEyMWrVqpb/97W9yuVw+t58yZYpatmypuLg4XXDBBfrf//53Sv3253//+5+uvPJKZWRkmLcdN26c8vPzzW1GjhypKVOmSPJ+i2woioqK9NBDD6lLly5KTExUfHy8evbsqRUrVpjbGIah5s2b6/LLL/e5fUFBgRITE3XrrbeGXHfZx2v79u0VExOjRYsW+c0zOjraayDlccUVV0iSvv/+ezO2YsUK5eTk6LbbbvPadtSoUTp+/LgWLlxY4X2yZcsWff311+aQq6ycnBz98Y9/VEJCgpKSkjRixAh99dVXstlsmjlzpte2H330kXr27Kn4+HglJSXp8ssv98rTY/369Ro4cKASEhJUt25d9evXT2vWrPHZ7uuvv1avXr0UFxen9PR0Pfroo5oxY4bPY9mfUB6Ly5cvV2FhoQYOHFilY3/44Ydm3fXq1dOgQYP07bffem0zcuRI1a1bV9u3b9fvf/971a1bV2eccYb5eP7mm2/Ut29fxcfHq1mzZpo1a5bX7T3n8Keffqrbb7/dfAvdrbfeqqKiIh05ckTXX3+96tevr/r16+uee+7x+b32j3/8QxdddJFSUlIUFxenLl26mEPMyrRo0cJrICWVPp6HDBmiwsJC/fLLL5Xu4+KLL/YZ7l988cVKTk72+ziRFNTP9i5duig5OVnvvfdeULUAQG3GSikAqMUMw9Bll12mFStW6KabblLnzp21ePFi3X333dq1a5eeffZZr+1XrlypOXPm6Pbbb1dMTIymTp2qSy+9VGvXrlWHDh0qPd7MmTM1depUGYahdu3a6YEHHtB1111X4W0GDRqkunXr6q233lKvXr28vjdnzhy1b98+4LG7du2qli1b6q233tKIESN8blu/fn1lZWVJkr744gt99tlnuuaaa5Senq6tW7dq2rRp6t27t7777jvVqVOn0voq43a7ddlll+nTTz/VLbfconbt2umbb77Rs88+qx9++EHz58+XJH377bf6/e9/r44dO+qRRx5RTEyMfvrpJ61atSqo4wTTp3379unCCy80hwKpqan68MMPddNNNykvL09jx4712uff/vY3RUdH66677lJhYaGio6ODrjvU+3bMmDGqX7++Hn74YW3dulWTJ0/W6NGjva7Vct999+nJJ5/U4MGDlZWVpa+++kpZWVkhDTzLmzlzpurWravx48erbt26+uijj/TQQw8pLy9PTz31lLndtGnTNHr0aPXs2VPjxo3T1q1bNWTIENWvX1/p6enmdsH2O5C5c+fqxIkT+stf/qKUlBStXbtWzz//vHbu3Km5c+dKkm699Vbt3r3b79tyg5WXl6dXXnlF1157rW6++WYdPXpU06dPV1ZWltauXavOnTvLZrPpD3/4g5588kkdOnRIycnJ5u3/+9//Ki8vz1wFGWrdH330kd566y2NHj1aDRo0UPPmzUPKf+/evZKkBg0amLH169dLKv0ZUFaXLl1kt9u1fv36CldtfvbZZ5Kk8847zyvudrs1ePBgrV27Vn/5y1/Utm1bvffeez4/XyRp2bJlGjhwoFq2bKkJEyYoPz9fzz//vLp3764vv/zSrPPbb79Vz549lZCQoHvuuUdRUVF66aWX1Lt3b61cuVLdunWTVDpE7tOnj2w2m+677z7Fx8frlVdeUUxMTKX3Uag9+eCDD9SlSxelpaWFfOzXX39dI0aMUFZWlp544gmdOHFC06ZNU48ePbR+/Xqv/rpcLg0cOFAXX3yxnnzySb355psaPXq04uPjdf/992v48OEaOnSoXnzxRV1//fXKzMxUixYtvI43ZswYNWrUSBMnTtSaNWv08ssvKykpSZ999pkyMjL02GOP6YMPPtBTTz2lDh06eL2F/LnnntNll12m4cOHq6ioSLNnz9aVV16pBQsWaNCgQZXer/74ezyG4tixYzp27Jjf24fyO/i8884L+ncGANRqBgCg1hg1apRR9kf3/PnzDUnGo48+6rXd//t//8+w2WzGTz/9ZMYkGZKM7OxsM7Zt2zYjNjbWuOKKKyo99kUXXWRMnjzZeO+994xp06YZHTp0MCQZU6dOrfS21157rdGwYUOjpKTEjO3Zs8ew2+3GI488UuFt77vvPiMqKso4dOiQGSssLDSSkpKMG2+80YydOHHC57arV682JBmvvfaaGVuxYoUhyVixYoUZa9asmTFixAif2/fq1cvo1auX+fXrr79u2O1243//+5/Xdi+++KIhyVi1apVhGIbx7LPPGpKMAwcOVFibP8H26aabbjIaN25sHDx40Ov211xzjZGYmGjeH556W7Zs6fc+CpTDww8/bH4d7H07Y8YMQ5LRv39/w+12m/Fx48YZDofDOHLkiGEYhrF3717D6XQaQ4YM8drnhAkTDElevXj44YcNf09XPMfasmVLhXneeuutRp06dYyCggLDMEofOykpKcb5559vFBcXm9vNnDnTkFSlfgfiL59JkyYZNpvN2LZtmxkrf15XpvzjsqSkxCgsLPTa5vDhw0ZaWprXObJ582ZDkjFt2jSvbS+77DKjefPmZs9CqVuSYbfbjW+//Tbo/Mvr37+/kZCQYBw+fNiMjRo1ynA4HH63T01NNa655poK9/nAAw8YkoyjR496xd955x1DkjF58mQz5nK5jL59+xqSjBkzZpjxzp07Gw0bNjRycnLM2FdffWXY7Xbj+uuvN2NDhgwxoqOjjZ9//tmM7d6926hXr55x8cUXm7ExY8YYNpvNWL9+vRnLyckxkpOTfR7LVf3Z45GRkeF1Dgd77KNHjxpJSUnGzTff7LW/vXv3GomJiV7xESNGGJKMxx57zIwdPnzYiIuLM2w2mzF79mwzvmnTJp+fK55zOCsry+vnRWZmpmGz2Yw///nPZqykpMRIT0/3uk8Mw/ccKyoqMjp06GD07dvXqIqcnByjYcOGRs+ePat0e8MwjL/97W+GJGP58uVe8VB/B99yyy1GXFxclfMAgNqCt+8BQC32wQcfyOFw6Pbbb/eK33nnnTIMQx9++KFXPDMzU126dDG/zsjI0OWXX67Fixf7fYtTWatWrdIdd9yhyy67TH/+85+1bt06dejQQX/961+93o7kz9VXX639+/d7fUrg22+/LbfbrauvvrrS2xYXF2vevHlmbMmSJTpy5IjXbePi4sz/FxcXKycnR2eeeaaSkpL05ZdfVniMYM2dO1ft2rVT27ZtdfDgQfOf55ofnrdLJSUlSSp9O1lVPoq+sj4ZhqF33nlHgwcPlmEYXrlkZWUpNzfXp+YRI0Z43UehCPW+veWWW7zegtazZ0+5XC5t27ZNUulbi0pKSnzemjVmzJgq5ecvz6NHj+rgwYPq2bOnTpw4oU2bNkkqfUtoTk6Obr75ZjmdJxeMDx8+3OcaRcH2O5h8jh8/roMHD+qiiy6SYRjmSqDq4HA4zJVvbrdbhw4dUklJibp27erVn9atW6tbt2568803zdihQ4f04Ycfavjw4WbPQq27V69eOvvss6uU+2OPPaZly5bp8ccfN88bqfRtwoFW88XGxlb6MycnJ0dOp1N169b1ii9atEhRUVG6+eabzZjdbteoUaO8ttuzZ482bNigkSNHeq0q69ixoy655BJ98MEHkkpXCi1ZskRDhgxRy5Ytze0aN26s6667Tp9++qn5VtlFixYpMzNTnTt3NrdLTk7W8OHDK6xFCq0nGzdu1Pbt271WCgV77KVLl+rIkSO69tprvY7jcDjUrVs3v4/5P/3pT+b/k5KS1KZNG8XHx+uqq64y423atFFSUpLft8TddNNNXj8vunXrJsMwdNNNN5kxh8Ohrl27+ty+7Dl2+PBh5ebmqmfPnlX6me92uzV8+HAdOXIkpE95LOuTTz7RxIkTddVVV/m9FlQov4Pr16+v/Px8nThxokq5AEBtwdv3AKAW27Ztm5o0aaJ69ep5xT2fxucZAnicddZZPvto3bq1Tpw4oQMHDoT0SUHR0dEaPXq0OaDq0aNHwG0vvfRSJSYmas6cOerXr5+k0rffde7cWa1bt67wOJ06dVLbtm01Z84c80XKnDlz1KBBA68n/fn5+Zo0aZJmzJihXbt2eV17JDc3N+i6KvLjjz/q+++/V2pqqt/v79+/X1LpIO2VV17Rn/70J/3f//2f+vXrp6FDh+r//b//F9TFxSvrk91u15EjR/Tyyy/r5ZdfrjAXj/JvmQlFqPdtRkaG19eeYc/hw4clnXxcnnnmmV7bJScnV3rx6op8++23euCBB/TRRx/5XDPLk2egYzudTp+3nQXb70C2b9+uhx56SO+//75Ze/l8qsurr76qp59+Wps2bVJxcbEZL9/366+/XqNHj9a2bdvUrFkzzZ07V8XFxfrjH/9obhNq3VV9bM2ZM0cPPPCAbrrpJv3lL3/x+l5cXJyKior83q6goKDKA9Zt27apcePGPm85Lf948DxO2rRp47OPdu3aafHixTp+/LiOHj2qEydOBNzO7XZrx44dat++vbZt26bMzEyf7cof259QerJw4UKlpaV5vfUx2GP/+OOPkhTw4toJCQleX8fGxvrklJiYqPT0dJ9royUmJvqcB5Lvz4vExERJUtOmTSu9/YIFC/Too49qw4YNXtfWKnvsQ4cOeT2W4uLizGOUNWbMGC1atEivvfaaOnXqZMaLiop06NAhr21TU1PlcDi8Yps2bdIVV1yhDh066JVXXvHZvxTa72DPz1k+fQ9ApGMoBQCoMs+LhvJP2MuLiYnRkCFD9O6772rq1Knat2+fVq1apcceeyyo41x99dX6+9//roMHD6pevXp6//33de2113qtdBkzZoxmzJihsWPHKjMzU4mJibLZbLrmmmsqXa0U6Em/y+XyeuHhdrt1zjnn6JlnnvG7vef+iIuL0yeffKIVK1Zo4cKFWrRokebMmaO+fftqyZIlPi9mQuWp5w9/+IPfa+FIpSs6yqrqi3gp9Ps2UH1GuYsUB6Oi3pR15MgR9erVSwkJCXrkkUfUqlUrxcbG6ssvv9S9995bpRVrwfY7UH6XXHKJDh06pHvvvVdt27ZVfHy8du3apZEjR1Ypn0DeeOMNjRw5UkOGDNHdd9+thg0byuFwaNKkSfr555+9tr3mmms0btw4vfnmm/rrX/+qN954Q127dvUaqoRad1UeW0uXLtX111+vQYMG6cUXX/T5fuPGjeVyubR//341bNjQjBcVFSknJ0dNmjSpcP8pKSkqKSnR0aNHfYb2tVEoPfnggw906aWXVmmY4Xlcvv76637/SFH2Z64U+FwP5WdAKPsoe/v//e9/uuyyy3TxxRdr6tSpaty4saKiojRjxgyvi6oPHTrU64M2RowY4XNB+4kTJ2rq1Kl6/PHHvQa0Uun1yfr06eMV27Jli9cQe8eOHRowYIASExP1wQcfVMtj7vDhw6pTp84p/ewGgNqAoRQA1GLNmjXTsmXLfF54ed6qVP6ThTx/BS/rhx9+UJ06dQL+Bb4inrdSBHPbq6++Wq+++qqWL1+u77//XoZhVPrWvbK3nThxot555x2lpaUpLy9P11xzjdc2b7/9tkaMGKGnn37ajBUUFOjIkSOV7r9+/fp+t9u2bZvXW3JatWqlr776Sv369av0BZ/dble/fv3Ur18/PfPMM3rsscd0//33a8WKFX4/EaysYPpUr149uVyuSvdVHU7lvvXH87j86aefvFbZ5OTk+KyE8KycOnLkiNfbu8qvAvz444+Vk5OjefPm6eKLLzbjW7ZsCXjssi80S0pKtHXrVq9hXij9Lu+bb77RDz/8oFdffdXrwsxLly712fZUV0K8/fbbatmypebNm+e1r4cffthn2+TkZA0aNEhvvvmmhg8frlWrVmny5Mle25xK3cH4/PPPdcUVV6hr16566623fAYdksy3mWVnZ+t3v/udGc/Ozpbb7fZ6G5o/bdu2lVTa/7I9bdasmVasWKETJ054rZb66aefvG7veZxs3rzZZ9+bNm1SgwYNFB8fr9jYWNWpUyfgdna73RwYNWvWzOc4/o7tT7A9OXLkiD777DONHj3ap55gjt2qVStJUsOGDS352XIq3nnnHcXGxmrx4sVeF2yfMWOG13ZPP/2018+V8gPNKVOmaMKECRo7dqzuvfden+N06tTJ57wtO7DLycnRgAEDVFhYqOXLl6tx48YBcw7ld/CWLVvMVc8AEMm4phQA1GK/+93v5HK59MILL3jFn332WdlsNq+PA5ek1atXe11rY8eOHXrvvfc0YMCAClfvHDhwwCd29OhRTZ48WQ0aNPC6RkYg/fv3V3JysubMmaM5c+boggsuCPptP+3atdM555xj3rZx48Zegwep9K/q5f8K//zzz1d6rSyp9IXYmjVrvN7isWDBAu3YscNru6uuukq7du3Sv/71L5995Ofn6/jx45L8rxzzvIj29/Ht5VXWJ4fDoWHDhumdd97Rxo0bfW7vr1+n4lTuW3/69esnp9OpadOmecXLP46lky+Sy35s+vHjx/Xqq6/65Ch5r6QoKirS1KlTvbbr2rWrUlJS9K9//UslJSVm/M033/QZiAXbb3/85WMYhp577jmfbePj4yWpykM+f8f6/PPPtXr1ar/b//GPf9R3332nu+++Ww6Hw2fAeyp1V+b777/XoEGD1Lx5cy1YsCDgKpC+ffsqOTnZ5zEybdo01alTp9JPVvO8VS07O9srnpWVpeLiYq/a3G63pkyZ4rVd48aN1blzZ7366qtefdm4caOWLFliDsocDocGDBig9957T1u3bjW327dvn2bNmqUePXqYb3nLysrS6tWrtWHDBnO7Q4cOeV3jK5Bge7JkyRJJ0oABA3zqDubYWVlZSkhI0GOPPeb1NlCP6v7ZciocDodsNpvXz6GtW7f6fBJhly5d1L9/f/Nf2eufeT4Jb/jw4QFXodWvX9/r9v3791dsbKyk0p9Fv/vd77Rr1y598MEHft+eV1Yov4O//PJLXXTRRUHdFwBQm7FSCgBqscGDB6tPnz66//77tXXrVnXq1ElLlizRe++9p7Fjx5ov6D06dOigrKwsr4+jlkrfulCRKVOmaP78+Ro8eLAyMjK0Z88e/fvf/9b27dv1+uuvB7wgcVlRUVEaOnSoZs+erePHj+sf//hHSLVeffXVeuihhxQbG6ubbrrJ59pMv//97/X6668rMTFRZ599tlavXq1ly5YpJSWl0n3/6U9/0ttvv61LL71UV111lX7++We98cYbPvffH//4R7311lv685//rBUrVqh79+5yuVzatGmT3nrrLS1evFhdu3bVI488ok8++USDBg1Ss2bNtH//fk2dOlXp6ekVXnvLI5g+Pf7441qxYoW6deumm2++WWeffbYOHTqkL7/8UsuWLav0LZWhOJX71p+0tDTdcccdevrpp3XZZZfp0ksv1VdffaUPP/xQDRo08FoJMmDAAGVkZOimm24yhyj//ve/lZqaqu3bt5vbXXTRRapfv75GjBih22+/XTabTa+//rrPMC06OloTJkzQmDFj1LdvX1111VXaunWrZs6cqVatWnkdO9h++9O2bVu1atVKd911l3bt2qWEhAS98847fq+p4xnq3n777crKyvI7KKrI73//e82bN09XXHGFBg0apC1btujFF1/U2WefrWPHjvlsP2jQIKWkpGju3LkaOHCg19vjTrXuihw9elRZWVk6fPiw7r77bi1cuNDr+61atTKHSXFxcfrb3/6mUaNG6corr1RWVpb+97//6Y033tDf//53r4uP+9OyZUt16NBBy5Yt04033mjGhwwZogsuuEB33nmnfvrpJ7Vt21bvv/++eb6U7f9TTz2lgQMHKjMzUzfddJPy8/P1/PPPKzExURMmTDC3e/TRR7V06VL16NFDt912m5xOp1566SUVFhbqySefNLe755579MYbb+iSSy7RmDFjFB8fr1deeUUZGRk6dOhQhSuggu3JwoUL1aNHD59rJgV77ISEBE2bNk1//OMfdd555+maa64xz7WFCxeqe/fufofH4TBo0CA988wzuvTSS3Xddddp//79mjJlis4880x9/fXXld5+7dq1uv7665WSkqJ+/fr5DOguuugir5Wy/gwfPlxr167VjTfeqO+//17ff/+9+b26detqyJAhXtsH+zt43bp1OnTokC6//PJK6wCAWs/iT/sDAJwCfx8df/ToUWPcuHFGkyZNjKioKOOss84ynnrqKa+P2DaM0o+jHjVqlPHGG28YZ511lhETE2Oce+65xooVKyo97pIlS4xLLrnEaNSokREVFWUkJSUZAwYM8PnI68osXbrUkGTYbDZjx44dId32xx9/ND9S+9NPP/X5/uHDh40bbrjBaNCggVG3bl0jKyvL2LRpk9GsWTNjxIgR5nYrVqwwJPnU/fTTTxtnnHGGERMTY3Tv3t3Izs72+Vh2wyj9yPEnnnjCaN++vRETE2PUr1/f6NKlizFx4kQjNzfXMAzDWL58uXH55ZcbTZo0MaKjo40mTZoY1157rfHDDz9UWmcofdq3b58xatQoo2nTpkZUVJTRqFEjo1+/fsbLL7/sU+/cuXMrPXbZHMp+dHuw963nI96/+OILr/35u89LSkqMBx980GjUqJERFxdn9O3b1/j++++NlJQUr4+CNwzDWLdundGtWzcjOjrayMjIMJ555hnzWJ6PsjcMw1i1apVx4YUXGnFxcUaTJk2Me+65x1i8eLHffv/zn/80mjVrZsTExBgXXHCBsWrVKqNLly7GpZde6rVdMP0O5LvvvjP69+9v1K1b12jQoIFx8803G1999ZUhyZgxY4bXfTFmzBgjNTXVsNlsPud4eeUfl26323jsscfMes4991xjwYIFxogRI4xmzZr53cdtt91mSDJmzZrl9/vB1u15vAZjy5Yt5jns71/Zx5LHyy+/bLRp08aIjo42WrVqZTz77LM+P9sCeeaZZ4y6desaJ06c8IofOHDAuO6664x69eoZiYmJxsiRI41Vq1YZkozZs2d7bbts2TKje/fuRlxcnJGQkGAMHjzY+O6773yO9eWXXxpZWVlG3bp1jTp16hh9+vQxPvvsM5/t1q9fb/Ts2dOIiYkx0tPTjUmTJhn//Oc/DUnG3r17ze2q8rPH7XYbDRs2NJ588km/90ewxzaM0nM2KyvLSExMNGJjY41WrVoZI0eONLKzs81tRowYYcTHx/scp1evXkb79u194s2aNTMGDRpkfh3o58XDDz9sSDIOHDjgFfd3vOnTp5s/J9u2bWvMmDHDvH1lPMcP9K/sORpIs2bNAt6+/LkXys/2e++918jIyAj6sQ4AtZnNMKpw1VEAQK1js9k0atSoGvNXbvj3W+7TkSNHVL9+fT366KO6//77LT222+1Wamqqhg4d6vctUpFm3Lhxmj59uvbu3evzSXSRIjc3Vy1bttSTTz5pfnJnIPPnz9cVV1yhTz/9VN27d7cow1Jjx47VSy+9pGPHjp3ShyCsXbtW3bp107fffuv1FjUrjo3qU1hYqObNm+v//u//dMcdd4Q7HQA47bimFAAAsFx+fr5PzHPB7d69e5/WYxcUFPi8re+1117ToUOHTvuxa4KCggK98cYbGjZsWMQOpCQpMTFR99xzj5566imvTzss/9hzuVx6/vnnlZCQoPPOO++05lT+2Dk5OXr99dfVo0ePahkKPfbYYwEHUqf72KgeM2bMUFRUlP785z+HOxUAsATXlAIAAJabM2eOZs6cqd/97neqW7euPv30U/3nP//RgAEDTvtKlTVr1mjcuHG68sorlZKSoi+//FLTp09Xhw4ddOWVV57WY4fT/v37tWzZMr399tvKycn5TazCuPfee30+UW3MmDHKz89XZmamCgsLNW/ePH322Wd67LHHAl54vbpkZmaqd+/eateunfbt26fp06crLy9PDz744Cnv+4ILLtAFF1wQlmOj+vz5z39mIAXgN4WhFAAAsFzHjh3ldDr15JNPKi8vz7z4+aOPPnraj928eXM1bdpU//znP3Xo0CElJyfr+uuv1+OPPx7URftrq++++07Dhw9Xw4YN9c9//tP8RMjfmr59++rpp5/WggULVFBQoDPPPFPPP/+8Ro8efdqP/bvf/U5vv/22Xn75ZdlsNp133nmaPn26z6eJRtqxAQAIhGtKAQAAAAAAwHJcUwoAAAAAAACWYygFAAAAAAAAy0X8NaXcbrd2796tevXqyWazhTsdAAAAAACAiGYYho4ePaomTZrIbg+8Hirih1K7d+9W06ZNw50GAAAAAADAb8qOHTuUnp4e8PsRP5SqV6+epNI7IiEhIczZAAAAAAAARLa8vDw1bdrUnMkEEvFDKc9b9hISEhhKAQAAAAAAWKSyyyhxoXMAAAAAAABYjqEUAAAAAAAALMdQCgAAAAAAAJaL+GtKAQAAAACA2s/tdquoqCjcaUBSVFSUHA7HKe+HoRQAAAAAAKjRioqKtGXLFrnd7nCngl8lJSWpUaNGlV7MvCIMpQAAAAAAQI1lGIb27Nkjh8Ohpk2bym7nSkThZBiGTpw4of3790uSGjduXOV9MZQCAAAAAAA1VklJiU6cOKEmTZqoTp064U4HkuLi4iRJ+/fvV8OGDav8Vj7GiwAAAAAAoMZyuVySpOjo6DBngrI8A8Li4uIq74OhFAAAAAAAqPFO5dpFqH7V0Q+GUgAAAAAAALAcQykAAAAAAIAgzJw5U0lJSSHd5sSJExo2bJgSEhJks9l05MiR05JbbcRQCgAAAAAA1Do2m63CfxMmTAh3ipKkV199Vf/73//02Wefac+ePUpMTKyW/fbu3Vtjx46tln2FC5++BwAAAAAAap09e/aY/58zZ44eeughbd682YzVrVs3HGn5+Pnnn9WuXTt16NAh3Kn4VVRUFLaLyLNSCgAAAAAA1DqNGjUy/yUmJspms5lfN2zYUM8884zS09MVExOjzp07a9GiReZtt27dKpvNptmzZ+uiiy5SbGysOnTooJUrV4aUw4EDB9S1a1ddccUVKiws9Pl+79699fTTT+uTTz6RzWZT7969JUmFhYW66667dMYZZyg+Pl7dunXTxx9/bN4uJydH1157rc444wzVqVNH55xzjv7zn/+Y3x85cqRWrlyp5557zlwZtnXrVr9vL5w/f77XRcknTJigzp0765VXXlGLFi0UGxsrSTpy5Ij+9Kc/KTU1VQkJCerbt6+++uqrkO6PUDGUAgAAAAAAEeW5557T008/rX/84x/6+uuvlZWVpcsuu0w//vij13Z333237rzzTq1fv16ZmZkaPHiwcnJygjrGjh071LNnT3Xo0EFvv/22YmJifLaZN2+ebr75ZmVmZmrPnj2aN2+eJGn06NFavXq1Zs+era+//lpXXnmlLr30UjO/goICdenSRQsXLtTGjRt1yy236I9//KPWrl1r1peZmambb75Ze/bs0Z49e9S0adOg75+ffvpJ77zzjubNm6cNGzZIkq688krt379fH374odatW6fzzjtP/fr106FDh4Leb6gYSgEAAAAAgIjyj3/8Q/fee6+uueYatWnTRk888YQ6d+6syZMne203evRoDRs2TO3atdO0adOUmJio6dOnV7r/zZs3q3v37srKytKMGTPkcDj8bpecnKw6deooOjpajRo1UnJysrZv364ZM2Zo7ty56tmzp1q1aqW77rpLPXr00IwZMyRJZ5xxhu666y517txZLVu21JgxY3TppZfqrbfekiQlJiYqOjpaderUMVeHBcrBn6KiIr322ms699xz1bFjR3366adau3at5s6dq65du+qss87SP/7xDyUlJentt98Oer+h4ppSAAAAAAAgYuTl5Wn37t3q3r27V7x79+4+b0fLzMw0/+90OtW1a1d9//33kqT27dtr27ZtkqSePXvqww8/lCTl5+erZ8+euu6663yGXMH45ptv5HK51Lp1a694YWGhUlJSJEkul0uPPfaY3nrrLe3atUtFRUUqLCxUnTp1Qj6eP82aNVNqaqr59VdffaVjx46Zx/fIz8/Xzz//XC3H9IehFAAAAAAAQDkffPCBiouLJUlxcXFmPCYmRv3799eCBQt0991364wzzghpv8eOHZPD4dC6det8Vjd5Ls7+1FNP6bnnntPkyZN1zjnnKD4+XmPHjlVRUVGF+7bb7TIMwyvmqaGs+Ph4n5waN27sdV0rj/LXqKpODKUAAAAAAEDESEhIUJMmTbRq1Sr16tXLjK9atUoXXHCB17Zr1qzRxRdfLEkqKSnRunXrNHr0aEmlq4n8sdvtev3113XdddepT58++vjjj9WkSZOg8zv33HPlcrm0f/9+9ezZ0+82q1at0uWXX64//OEPkiS3260ffvhBZ599trlNdHS0XC6X1+1SU1N19OhRHT9+3Bw8ea4ZVZHzzjtPe/fuldPpVPPmzYOu5VRxTSkAAAAAABBR7r77bj3xxBOaM2eONm/erP/7v//Thg0bdMcdd3htN2XKFL37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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_dir = \"v_score_runs/run_insight_1_small\"\n", + "layers = [0,2,5,10,15,20]\n", + "top_head = 4\n", + "extra_rank_index = 2000\n", + "\n", + "for layer in layers:\n", + " visualize_top_v_scores_notebook(run_dir, layer, top_head, extra_rank_index)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4742ca5d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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f2vcuHFuyy9fvlyzZs3S448/Ll9fX02aNEnt2rXTL7/8orp1615yf1OnTtWkSZNkGIZiY2P13HPP6d57773oOh06dFBQUJBmz56tFi1auD03a9Ys1alTJ899N27cWFWrVtXs2bPVo0ePHOuWLl1aCQkJkqS1a9fq559/VteuXVWxYkXt3r1bkydPVsuWLbVlyxYFBARcsr9Lcblcuv3227VixQo98sgjio2N1e+//65x48Zp+/btmjdvniTpjz/+0G233ab69evrhRdekK+vr3bu3JnviZnzc5wOHTqk66+/3vwDMDw8XAsWLFCvXr2UkpKiAQMGuG3zxRdflI+Pj4YMGaL09PRL3iZ1voK+tv369VPp0qU1fPhw7d69W+PHj1ffvn01a9Ysc5mnn35aY8aMUceOHZWQkKBNmzYpISGhQIHnhaZOnaqgoCANGjRIQUFB+uGHHzRs2DClpKTotddeM5ebPHmy+vbtq5tuukkDBw7U7t271blzZ5UuXVoVK1Y0l8vv8c7LnDlzdObMGf3nP/9RWFiYfvnlF02cOFH79+/XnDlzJEn//ve/deDAgVxvy82vlJQUffDBB+rWrZt69+6tU6dO6cMPP1RCQoJ++eUXNWzYUDabTffdd5/GjBmj48ePq0yZMub6X331lVJSUsyrIAva9w8//KDZs2erb9++Klu2rCpXrpxrnX///bcOHz6sxo0b53iuadOml5wEOjMzU2vXrtV//vOfHM/l95iePXtWLVu21M6dO9W3b19VqVJFc+bMUc+ePXXy5En1799fUsHOrT179tTs2bN1//336/rrr9fy5cvdgqOLmTZtmnr06KGEhASNHj1aZ86c0eTJk3XjjTdqw4YNbq/l2rVrdeTIEd16660F3ndBzxejRo2Sv7+/nnrqKe3cuVMTJ06Ut7e37Ha7Tpw4oREjRmj16tWaOnWqqlSpomHDhrmt/9NPP+nLL79Unz59zO3ddttteuKJJzRp0iQ99thjOnHihMaMGaOHHnpIP/zwg7luft43BZWUlCRJOcKmgm4jICAgx/nO6XSqXbt2uv766zVmzBgtXLhQw4cPV1ZWll544QW3ZRs1aqRx48bpjz/+yNf/cwGgxDEAAFe1Pn36GOefzufNm2dIMl566SW35f71r38ZNpvN2LlzpzkmyZBkrFu3zhzbs2eP4efnZ9xxxx2X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ihedeytbfo7Tq6++qqVLl6pZs2bq3bu3ateurePHj+vXX3/V999/f8lbKguiMK9tbiIjI9W/f3+98cYbuv3229WuXTtt2rRJCxYsUNmyZd2uzrnlllsUHR2tXr16mSHKf//7X4WHh2vv3r3mcjfccINKly6tHj166PHHH5fNZtO0adNyhGk+Pj4aMWKE+vXrp9atW+vuu+/W7t27NXXqVFWrVs1t3/k93rmpVauWqlWrpiFDhujvv/9WcHCwPvvss1xvPcsOdR9//HElJCTkGhRdzG233abPP/9cd9xxhzp06KDExES98847ql27tk6fPp1j+Q4dOigsLExz5sxR+/btFRER4fZ8Yfq+lGeeeUZz5sxRq1at1L9/f50+fVqvvfaa6tWrl+N2rNx06tRJzz77rFJSUsw5lwpyTB955BG9++676tmzp9avX6/KlStr7ty55hVj2VdF5ffc2qhRI3Xp0kXjx4/XsWPHdP3112v58uXmlTIXu9IsODhYkydP1v3336/rrrtOXbt2NX+vv/nmGzVv3lxvvfWWVqxYoZSUlByhVEH2beX5ojAK8r7JS7t27bRr1y498cQTWrFihVasWGE+FxkZqbZt2150/S+++EJPPPGEqlevrtjYWE2fPt3t+bZt2yoyMtJ87Ofnp4ULF6pHjx5q1qyZFixYoG+++UbPPPNMjkBs8eLF6tixI3NKAfjnsuZL/gAAV0puXx1/6tQpY+DAgUZUVJTh7e1tVK9e3XjttdfMr3fPJsno06ePMX36dKN69eqGr6+vce211xpLly695H6/++47o23btka5cuUMb29vIzQ01LjllluMJUuWFKj+xYsXG5IMm81m7Nu3r0Dr7tixw5BkSDJWrFiR4/kTJ04YDz74oFG2bFkjKCjISEhIMLZu3WrExMQYPXr0MJfL/srzC/t+4403jAoVKhi+vr5G8+bNjXXr1hktWrRw+zp5wzj39fGjR4826tSpY/j6+hqlS5c2GjVqZIwcOdJITk42DMMwlixZYnTq1MmIiooyfHx8jKioKKNbt275+jryghynQ4cOGX369DEqVapkeHt7G+XKlTPatGljvPfeezn6nTNnziX3fX4N53+dfH5f2+yvvF+7dq3b9nJ7zbOysoznn3/eKFeunOHv72+0bt3a+PPPP42wsDDj0UcfdVt//fr1RrNmzQwfHx8j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u3evpkyZojlz5uimm25StWrVNGTIEN14442aMmWKJKlChQoaMmSIGjZsqKpVq6pfv35q166dZs+eLUkKCQmRj4+PAgICzKvD8qohNxkZGfr444917bXXqn79+lqxYoV++eUXzZkzR40bN1b16tX1+uuvKzQ0VHPnzs33dguKOaUAAAAAAECJkZKSogMHDqh58+Zu482bN89xO1pcXJz5315eXmrcuLH+/PNPSVKdOnW0Z88eSdJNN92kBQsWSJLOnj2rm266Sffee2+OkCs/fv/9dzmdTtWoUcNtPD09XWFhYZIkp9OpV155RbNnz9bff/+tjIwMpaenKyAgoMD7y01MTIzCw8PNx5s2bdLp06fN/Wc7e/as/vrrryLZZ24IpQAAAAAAAC7w7bffKjMzU5Lk7+9vjvv6+io+Pl5ff/21hg4dqgoVKhRou6dPn5bD4dD69etzXN2UPTn7a6+9pgkTJmj8+PGqV6+eAgMDNWDAAGVkZFx023a7XYZhuI1l93C+wMDAHDWVL1/ebV6rbBfOUVWUCKUAAAAAAECJERwcrKioKK1cuVItWrQwx1euXKmmTZu6Lbt69WrdfPPNkqSsrCytX79effv2lXTuaqLc2O12TZs2Tffee69atWqlZcuWKSoqKt/1XXvttXI6nTp8+LBuuummXJdZuXKlOnXqpPvuu0+S5HK5tH37dtWuXdtcxsfHR06n02298PBwnTp1SqmpqWbwlD1n1MVcd911SkpKkpeXlypXrpzvXgqLOaUAAAAAAECJMnToUI0ePVqzZs3Stm3b9NRTT2njxo3q37+/23Jvv/22vvjiC23dulV9+vTRiRMn9NBDD11y+w6HQzNmzFCDBg3UunVrJSUl5bu2GjVqqHv37nrggQf0+eefKzExUb/88otGjRqlb775RpJUvXp1LV68WD///LP+/PNP/fvf/9ahQ4fctlO5cmWtWbNGu3fv1tGjR+VyudSsWTMFBATomWee0V9//aWZM2dq6tSpl6wpPj5ecXFx6ty5s7777jvt3r1bP//8s5599lmtW7cu370VFKEUAAAAAAAoUR5//HENGjRIgwcPVr169bRw4UJ9+eWXql69uttyr776ql599VU1aNBAK1as0JdffqmyZcvmax9eXl765JNPVKdOHbVu3VqHDx/Od31TpkzRAw88oMGDB6tmzZrq3Lmz1q5dq+joaEnSc889p+uuu04JCQlq2bKlypUrp86dO7ttY8iQIXI4HKpdu7bCw8O1d+9elSlTRtOnT9e3336revXq6ZNPPtGIESMuWY/NZtO3336rm2++WQ8++KBq1Kihrl27as+ePYqMjMx3XwVlMy682bCESUlJUUhIiJKTkxUcHOzpcgAAAAAAQAGkpaUpMTFRVapUkZ+fX5Fsc/fu3apSpYo2bNighg0bFsk2/2kudlzym8VwpRQAAAAAAAAsRygFAAAAAAAAy/HtewAAAAAA4B+lcuXKKuGzGV0VuFIKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5L08XAAAAAAAAUFy0KNXB0v0tP/VNgZb/8ccf9dprr2n9+vU6ePCgvvjiC3Xu3PnKFHeFcaUUAAAAAADAVSI1NVUNGjTQ22+/7elSCo0rpQAAAAAAAK4S7du3V/v27T1dRpHgSikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjm/fAwAAAAAAuEqcPn1aO3fuNB8nJiZq48aNKlOmjKKjoz1YWcERSgEAAAAAAFwl1q1bp1atWpmPBw0aJEnq0aOHpk6d6qGqLg+hFAAAAAAAwP9bfuobT5dwUS1btpRhGJ4uo0gwpxQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAy3l5ugAAAAAAAIDi4pZ7XrB0f9/NGlag5UeNGqXPP/9cW7dulb+/v2644QaNHj1aNWvWvEIVXjlcKQUAAAAAAHCVWL58ufr06aPVq1dr8eLFyszM1C233KLU1FRPl1ZgXCkFAAAAAABwlVi4cKHb46lTpyoiIkLr16/XzTff7KGqLo9Hr5SqXLmybDZbjp8+ffpIktLS0tSnTx+FhYUpKChIXbp00aFDhzxZMgAAAAAAQLGRnJwsSSpTpoyHKyk4j4ZSa9eu1cGDB82fxYsXS5LuuusuSdLAgQP11Vdfac6cOVq+fLkOHDigO++805MlAwAAAAAAFAsul0sDBgxQ8+bNVbduXU+XU2AevX0vPDzc7fGrr76qatWqqUWLFkpOTtaHH36omTNnqnXr1pKkKVOmKDY2VqtXr9b111/viZIBAAAAAACKhT59+mjz5s1asWKFp0u5LMVmTqmMjAxNnz5dgwYNks1m0/r165WZman4+HhzmVq1aik6OlqrVq3KM5RKT09Xenq6+TglJUWSlJWVpaysLEmS3W6X3W6Xy+WSy+Uyl80edzqdMgzjkuMOh0M2m83c7vnjkuR0OvM17uXlJcMw3MZtNpscDkeOGvMapyd6oid6oid6oid6oid6oid6oid6Kqk9GYZh/mSvc37d52+rIOPFweX21K9fP3399ddavny5KlSocFn9FeZ1zD4e2cfs/ON34e9PXopNKDVv3jydPHlSPXv2lCQlJSXJx8dHoaGhbstFRkYqKSkpz+2MGjVKI0eOzDG+YcMGBQYGSjp3hVa1atWUmJioI0eOmMtUrFhRFStW1Pbt2817MiWpatWqioiI0ObNm3X27FlzvFatWgoNDdWGDRvc3mj169eXj4+P1q1b51ZD48aNlZGRod9++80cczgcatKkiZKTk7V161Zz3N/fXw0aNNDRo0e1a9cuczwkJESxsbE6cOCA9u/fb47TEz3REz3REz3REz3REz3REz3REz2VxJ7279+vjIwMnTlzRk6nUz4+PvLx8VFaWppbjb6+vvL29tbZs2fdwi0/Pz95eXnpzJkzbkGLv7+/7Ha7x7+1LjU1tUA9GYahJ598UvPnz9e3336riIgIs4e8egoMDJTL5XI71jabTYGBgXI6nUpLSzPH7Xa7AgIClJWV5XbRj8PhkL+/vzIzM5WRkaH09HRlZGRo//79qlGjhtvvXn5fU5tRTKLChIQE+fj46KuvvpIkzZw5Uw8++KDbCyBJTZs2VatWrTR69Ohct5PblVKVKlXSsWPHFBwcLKnkJ8j0RE/0RE/0RE/0RE/0RE/0RE/0RE8lpaczZ85o9+7dqlKlivz8/Mx1rtSVUgldX8zXckVl0afPS8p/7Y899pg++eQTzZ8/XzVq1DDHQ0JC5O/vX6B9F+Z1TEtLU2JioipXrqyAgAC345eSkqKwsDAlJyebWUyu+y8OodSePXtUtWpVff755+rUqZMk6YcfflCbNm104sQJt6ulYmJiNGDAAA0cODBf205JSVFISMglXwgAAAAAAFD8ZIcf54dSV9It97xwxfdxvu9mDSvQ8jabLdfxKVOmmHefWeFixyW/WUyxuH1vypQpioiIUIcOHcyxRo0aydvbW0uWLFGXLl0kSdu2bdPevXsVFxfnqVIBAAAAAEAJVtCQyGrF4NqiIuPxUMrlcmnKlCnq0aOHvLz+V05ISIh69eqlQYMGqUyZMgoODla/fv0UFxfHN+8BAAAAAABc5TweSn3//ffau3evHnrooRzPjRs3Tna7XV26dFF6eroSEhI0adIkD1QJAAAAAACAolQs5pS6kphTCgAAAACAq5fVc0ohf4piTin7lS4SAAAAAAAAuBChFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLeXm6AAAAAAAAgOKi4UsjLN3fxucKtr/Jkydr8uTJ2r17tySpTp06GjZsmNq3b1/0xV1hXCkFAAAAAABwlahYsaJeffVVrV+/XuvWrVPr1q3VqVMn/fHHH54urcC4UgoAAAAAAOAq0bFjR7fHL7/8siZPnqzVq1erTp06Hqrq8hBKAQAAAAAAXIWcTqfmzJmj1NRUxcXFebqcAiOUAgAAAAAAuIr8/vvviouLU1pamoKCgvTFF1+odu3ani6rwJhTCgAAAAAA4CpSs2ZNbdy4UWvWrNF//vMf9ejRQ1u2bPF0WQXGlVIAAAAAAABXER8fH11zzTWSpEaNGmnt2rWaMGGC3n33XQ9XVjBcKQUAAAAAAHAVc7lcSk9P93QZBcaVUgAAAAAAAFeJp59+Wu3bt1d0dLROnTqlmTNnatmyZVq0aJGnSyswQikAAAAAAICrxOHDh/XAAw/o4MGDCgkJUf369bVo0SK1bdvW06UVGKEUAAAAAADA/9v43AhPl3BRH374oadLKDLMKQUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcl6eLgAAAAAAAKC46Lekv6X7m9hmQqHWf/XVV/X000+rf//+Gj9+fNEUZRGulAIAAAAAALgKrV27Vu+++67q16/v6VIuC6EUAAAAAADAVeb06dPq3r273n//fZUuXdrT5VwWQikAAAAAAICrTJ8+fdShQwfFx8d7upTLxpxSAAAAAAAAV5FPP/1Uv/76q9auXevpUgqFUAoAAAAAAOAqsW/fPvXv31+LFy+Wn5+fp8spFEIpAAAAAACAq8T69et1+PBhXXfddeaY0+nUjz/+qLfeekvp6elyOBwerDD/CKUAAAAAAACuEm3atNHvv//uNvbggw+qVq1aevLJJ6+aQEoilAIAAAAAALhqlCpVSnXr1nUbCwwMVFhYWI7x4o5v3wMAAAAAAIDluFIKAAAAAADg/01sM8HTJRTYsmXLPF3CZeFKKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACW8/J0AQAAAAAAAMXFvt9bWbq/SvWWFmj5ESNGaOTIkW5jNWvW1NatW4uyLEsQSgEAAAAAAFxF6tSpo++//9587OV1dcY7V2fVAAAAAAAA/1BeXl4qV66cp8soNI/PKfX333/rvvvuU1hYmPz9/VWvXj2tW7fOfN4wDA0bNkzly5eXv7+/4uPjtWPHDg9WDAAAAAAA4Dk7duxQVFSUqlatqu7du2vv3r2eLumyeDSUOnHihJo3by5vb28tWLBAW7Zs0RtvvKHSpUuby4wZM0Zvvvmm3nnnHa1Zs0aBgYFKSEhQWlqaBysHAAAAAACwXrNmzTR16lQtXLhQkydPVmJiom666SadOnXK06UVmEdv3xs9erQqVaqkKVOmmGNVqlQx/9swDI0fP17PPfecOnXqJEn6+OOPFRkZqXnz5qlr166W1wwAAAAAAOAp7du3N/+7fv36atasmWJiYjR79mz16tXLg5UVnEdDqS+//FIJCQm66667tHz5clWoUEGPPfaYevfuLUlKTExUUlKS4uPjzXVCQkLUrFkzrVq1KtdQKj09Xenp6ebjlJQUSVJWVpaysrIkSXa7XXa7XS6XSy6Xy1w2e9zpdMowjEuOOxwO2Ww2c7vnj0uS0+nM17iXl5cMw3Abt9lscjgcOWrMa5ye6Ime6Ime6Ime6Ime6Ime6Ime6Kmk9mQYhvmTvc75dZ+/rYKMFweF7SkkJEQ1atTQjh07CtxjYV7H7OORfczOP34X/v7kxaOh1K5duzR58mQNGjRIzzzzjNauXavHH39cPj4+6tGjh5KSkiRJkZGRbutFRkaaz11o1KhROb4aUZI2bNigwMBASVJ4eLiqVaumxMREHTlyxFymYsWKqlixorZv367k5GRzvGrVqoqIiNDmzZt19uxZc7xWrVoKDQ3Vhg0b3N5o9evXl4+Pj9vcWJLUuHFjZWRk6LfffjPHHA6HmjRpouTkZLevb/T391eDBg109OhR7dq1yxwPCQlRbGysDhw4oP3795vj9ERP9ERP9ERP9ERP9ERP9ERP9ERPJbGn/fv3KyMjQ2fOnJHT6ZSPj498fHyUlpbmVqOvr6+8vb119uxZt3DLz89PXl5eOnPmjFvQ4u/vL7vdrtTUVHlSampqoXo6deqU/vrrL919991yuVy59hQYGCiXy+V2rG02mwIDA+V0Ot2mSLLb7QoICFBWVpbbRT8Oh0P+/v7KzMxURkaG0tPTlZGRof3796tGjRpuv3v5fU1thgejQh8fHzVu3Fg///yzOfb4449r7dq1WrVqlX7++Wc1b95cBw4cUPny5c1l7r77btlsNs2aNSvHNnO7UqpSpUo6duyYgoODJZX8BJme6Ime6Ime6Ime6Ime6Ime6Ime6Kmk9HTmzBnt3r1bVapUkZ+fn7nOlbpSav/m1vlarqhUrPuDpPzXPmTIEHXs2FGVK1fW33//rREjRmjjxo36448/FB4eXqB9F+Z1TEtLU2JioipXrqyAgAC345eSkqKwsDAlJyebWUxuPHqlVPny5VW7dm23sdjYWH322WeSZH694aFDh9xCqUOHDqlhw4a5btPX11e+vr45xr28vOTl5d5u9i/4hbLfVPkdv3C7lzNus9lyHc+rxoKO0xM95TVOT/Qk0VNeNRZ0nJ7oSaKnvGos6Dg90ZNET3nVWNBxeqIn6ervyWazmT/nbz83BR33tIL29Pfff+vee+/VsWPHFB4erhtvvFGrV69WREREofdfkPHs45F9zM4/fnn9nlzIo6FU8+bNtW3bNrex7du3KyYmRtK5Sc/LlSunJUuWmCFUSkqK1qxZo//85z9WlwsAAAAAAEq4SvWWerqEi/r00089XUKR8WgoNXDgQN1www165ZVXdPfdd+uXX37Re++9p/fee0/SudRtwIABeumll1S9enVVqVJFzz//vKKiotS5c2dPlg4AAAAAAIBC8Ggo1aRJE33xxRd6+umn9cILL6hKlSoaP368unfvbi7zxBNPKDU1VY888ohOnjypG2+8UQsXLjTvIwUAAAAAAMDVx6MTnVshJSVFISEhl5xcCwAAAAAAFD/ZE2qfP9E5PO9ixyW/WUzOGcQAAAAAAACAK4xQCgAAAAAAFHsl/Eavq05RHA9CKQAAAAAAUGw5HA5JUkZGhocrwfnOnDkjSfL29r7sbXh0onMAAAAAAICL8fLyUkBAgI4cOSJvb2/Z7Vxf40mGYejMmTM6fPiwQkNDzdDwchBKAQAAAACAYstms6l8+fJKTEzUnj17PF0O/l9oaKjKlStXqG0QSgEAAAAAgGLNx8dH1atX5xa+YsLb27tQV0hlI5QCAAAAAADFnt1ul5+fn6fLQBHiRkwAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYzqOh1IgRI2Sz2dx+atWqZT6flpamPn36KCwsTEFBQerSpYsOHTrkwYoBAAAAAABQFDx+pVSdOnV08OBB82fFihXmcwMHDtRXX32lOXPmaPny5Tpw4IDuvPNOD1YLAAAAAACAouDl8QK8vFSuXLkc48nJyfrwww81c+ZMtW7dWpI0ZcoUxcbGavXq1br++uutLhUAAAAAAABFxOOh1I4dOxQVFSU/Pz/FxcVp1KhRio6O1vr165WZman4+Hhz2Vq1aik6OlqrVq3KM5RKT09Xenq6+TglJUWSlJWVpaysLEmS3W6X3W6Xy+WSy+Uyl80edzqdMgzjkuMOh0M2m83c7vnjkuR0OvM17uXlJcMw3MZtNpscDkeOGvMapyd6oid6oid6oid6oid6oid6oid6oid6Kg49XVhXXjwaSjVr1kxTp05VzZo1dfDgQY0cOVI33XSTNm/erKSkJPn4+Cg0NNRtncjISCUlJeW5zVGjRmnkyJE5xjds2KDAwEBJUnh4uKpVq6bExEQdOXLEXKZixYqqWLGitm/fruTkZHO8atWqioiI0ObNm3X27FlzvFatWgoNDdWGDRvcDmD9+vXl4+OjdevWudXQuHFjZWRk6LfffjPHHA6HmjRpouTkZG3dutUc9/f3V4MGDXT06FHt2rXLHA8JCVFsbKwOHDig/fv3m+P0RE/0RE/0RE/0RE/0RE/0RE/0RE/0RE/FoafU1FTlh804P2rzsJMnTyomJkZjx46Vv7+/HnzwQberniSpadOmatWqlUaPHp3rNnK7UqpSpUo6duyYgoODJf1zkkl6oid6oid6oid6oid6oid6oid6oid6oiere0pJSVFYWJiSk5PNLCY3xSqUkqQmTZooPj5ebdu2VZs2bXTixAm3q6ViYmI0YMAADRw4MF/bS0lJUUhIyCVfCAAAAAAAABRefrMYj3/73vlOnz6tv/76S+XLl1ejRo3k7e2tJUuWmM9v27ZNe/fuVVxcnAerBAAAAAAAQGF5dE6pIUOGqGPHjoqJidGBAwc0fPhwORwOdevWTSEhIerVq5cGDRqkMmXKKDg4WP369VNcXBzfvAcAAAAAAHCV82gotX//fnXr1k3Hjh1TeHi4brzxRq1evVrh4eGSpHHjxslut6tLly5KT09XQkKCJk2a5MmSAQAAAAAAUASK3ZxSRY05pQAAAAAAAKxzVc4pBQAAAAAAgH8GQikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOWKJJQ6efJkUWwGAAAAAAAA/xAFDqVGjx6tWbNmmY/vvvtuhYWFqUKFCtq0aVORFgcAAAAAAICSqcCh1DvvvKNKlSpJkhYvXqzFixdrwYIFat++vYYOHVrkBQIAAAAAAKDk8SroCklJSWYo9fXXX+vuu+/WLbfcosqVK6tZs2ZFXiAAAAAAAABKngJfKVW6dGnt27dPkrRw4ULFx8dLkgzDkNPpLNrqAAAAAAAAUCIV+EqpO++8U/fee6+qV6+uY8eOqX379pKkDRs26JprrinyAgEAAAAAAFDyFDiUGjdunCpXrqx9+/ZpzJgxCgoKkiQdPHhQjz32WJEXCAAAAAAAgJLHZhiG4ekirqSUlBSFhIQoOTlZwcHBni4HAAAAAACgRMtvFlPgOaUkadq0abrxxhsVFRWlPXv2SJLGjx+v+fPnX161AAAAAAAA+EcpcCg1efJkDRo0SO3bt9fJkyfNyc1DQ0M1fvz4oq4PAAAAAAAAJVCBQ6mJEyfq/fff17PPPiuHw2GON27cWL///nuRFgcAAAAAAICSqcChVGJioq699toc476+vkpNTS2SogAAAAAAAFCyFTiUqlKlijZu3JhjfOHChYqNjS2KmgAAAAAAAFDCeRV0hUGDBqlPnz5KS0uTYRj65Zdf9Mknn2jUqFH64IMPrkSNAAAAAAAAKGEKHEo9/PDD8vf313PPPaczZ87o3nvvVVRUlCZMmKCuXbteiRoBAAAAAABQwtgMwzAud+UzZ87o9OnTioiIKMqailRKSopCQkKUnJys4OBgT5cDAAAAAABQouU3iynwlVLnCwgIUEBAQGE2AQAAAAAAgH+gAodSVapUkc1my/P5Xbt2FaogAAAAAAAAlHwFDqUGDBjg9jgzM1MbNmzQwoULNXTo0KKqCwAAAAAAACVYgUOp/v375zr+9ttva926dYUuCAAAAAAAACWfvag21L59e3322WdFtTkAAAAAAACUYEUWSs2dO1dlypQpqs0BAAAAAACgBCvw7XvXXnut20TnhmEoKSlJR44c0aRJk4q0OAAAAAAAAJRMBQ6lOnfu7PbYbrcrPDxcLVu2VK1atYqqLgAAAAAAAJRgNsMwDE8XIUmvvvqqnn76afXv31/jx4+XJKWlpWnw4MH69NNPlZ6eroSEBE2aNEmRkZH53m5KSopCQkKUnJys4ODgK1Q9AAAAAAAApPxnMfm6UiolJSXfO76c4Gft2rV69913Vb9+fbfxgQMH6ptvvtGcOXMUEhKivn376s4779TKlSsLvA8AAAAAAAAUH/kKpUJDQ93mkcqNYRiy2WxyOp0FKuD06dPq3r273n//fb300kvmeHJysj788EPNnDlTrVu3liRNmTJFsbGxWr16ta6//voC7QcAAAAAAADFR75CqaVLl16xAvr06aMOHTooPj7eLZRav369MjMzFR8fb47VqlVL0dHRWrVqVZ6hVHp6utLT083H2Vd5ZWVlKSsrS9K5ebDsdrtcLpdcLpe5bPa40+nU+Xc15jXucDhks9nM7Z4/LilHQJfXuJeXlwzDcBu32WxyOBw5asxrnJ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oqTj0dGFdeclXKNWiRYt8baygPv30U/36669au3ZtjueSkpLk4+Oj0NBQt/HIyEglJSXluc1Ro0Zp5MiROcY3bNigwMBASVJ4eLiqVaumxMREHTlyxFymYsWKqlixorZv367k5GRzvGrVqoqIiNDmzZt19uxZc7xWrVoKDQ3Vhg0b3A5g/fr15ePjo3Xr1rnV0LhxY2VkZOi3334zxxwOh5o0aaLk5GRt3brVHPf391eDBg109OhR7dq1yxwPCQlRbGysDhw4oP3795vj9ERP9ERP9ERP9ERP9ERP9ERP9ERP9ERPxaGn1NRU5cdlT3R+5swZ7d27VxkZGW7jF84LlZd9+/apcePGWrx4sblOy5Yt1bBhQ40fP14zZ87Ugw8+6HbVkyQ1bdpUrVq10ujRo3Pdbm5XSlWqVEnHjh0z57v6pyST9ERP9ERP9ERP9ERP9ERP9ERP9ERP9ERPVveUkpKisLCwS050XuBQ6siRI3rwwQe1YMGCXJ+/sMG8zJs3T3fccYf5wmSva7PZZLfbtWjRIsXHx+vEiRNuV0vFxMRowIABGjhwYL72w7fvAQAAAAAAWCe/WYy9oBseMGCATp48qTVr1sjf318LFy7URx99pOrVq+vLL7/M93batGmj33//XRs3bjR/GjdurO7du5v/7e3trSVLlpjrbNu2TXv37lVcXFxBywYAAAAAAEAxkq85pc73ww8/aP78+WrcuLHsdrtiYmLUtm1bBQcHa9SoUerQoUO+tlOqVCnVrVvXbSwwMFBhYWHmeK9evTRo0CCVKVNGwcHB6tevn+Li4vjmPQAAAAAAgKtcgUOp1NRURURESJJKly6tI0eOqEaNGqpXr55+/fXXIi1u3Lhxstvt6tKli9LT05WQkKBJkyYV6T4AAAAAAABgvQKHUjVr1tS2bdtUuXJlNWjQQO+++64qV66sd955R+XLly9UMcuWLXN77Ofnp7fffltvv/12obYLAAAAAACA4qXAoVT//v118OBBSdLw4cPVrl07zZgxQz4+Ppo6dWpR1wcAAAAAAIASqMDfvnehM2fOaOvWrYqOjlbZsmWLqq4iw7fvAQAAAAAAWOeKffveihUr3B4HBATouuuuK5aBFAAAAAAAAIqnAodSrVu3VpUqVfTMM89oy5YtV6ImAAAAAAAAlHAFDqUOHDigwYMHa/ny5apbt64aNmyo1157Tfv3778S9QEAAAAAAKAEKtScUomJiZo5c6Y++eQTbd26VTfffLN++OGHoqyv0JhTCgAAAAAAwDr5zWIKPdG50+nUggUL9Pzzz+u3336T0+kszOaKHKEUAAAAAACAda7YROfZVq5cqccee0zly5fXvffeq7p16+qbb7653M0BAAAAAADgH8SroCs8/fTT+vTTT3XgwAG1bdtWEyZMUKdOnRQQEHAl6gMAAAAAAEAJVOBQ6scff9TQoUN19913q2zZsleiJgAAAAAAAJRwBQ6lVq5ceSXqAAAAAAAAwD/IZc8pBQAAAAAAAFwuQikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUKHEo9/PDDWrZs2RUoBQAAAAAAAP8UBQ6ljhw5onbt2qlSpUoaOnSoNm3adCXqAgAAAAAAQAlW4FBq/vz5OnjwoJ5//nmtXbtW1113nerUqaNXXnlFu3fvvgIlAgAAAAAAoKSxGYZhFGYD+/fv1yeffKL//ve/2rFjh7KysoqqtiKRkpKikJAQJScnKzg42NPlAAAAAAAAlGj5zWIKNdF5Zmam1q1bpzVr1mj37t2KjIwszOYAAAAAAADwD3FZodTSpUvVu3dvRUZGqmfPngoODtbXX3+t/fv3F3V9AAAAAAAAKIG8CrpChQoVdPz4cbVr107vvfeeOnbsKF9f3ytRGwAAAAAAAEqoAodSI0aM0F133aXQ0NArUA4AAAAAAAD+CQocSvXu3ftK1AEAAAAAAIB/kEJNdA4AAAAAAABcDkIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlPBpKTZ48WfXr11dwcLCCg4MVFxenBQsWmM+npaWpT58+CgsLU1BQkLp06aJDhw55sGIAAAAAAAAUBY+GUhUrVtSrr76q9evXa926dWrdurU6deqkP/74Q5I0cOBAffXVV5ozZ46WL1+uAwcO6M477/RkyQAAAAAAACgCNsMwDE8Xcb4yZcrotdde07/+9S+Fh4dr5syZ+te//iVJ2rp1q2JjY7Vq1Spdf/31+dpeSkqKQkJClJycrODg4CtZOgAAAAAAwD9efrMYLwtruiin06k5c+YoNTVVcXFxWr9+vTIzMxUfH28uU6tWLUVHR180lEpPT1d6err5OCUlRZKUlZWlrKwsSZLdbpfdbpfL5ZLL5TKXzR53Op06P6vLa9zhcMhms5nbPX88u6f8jHt5eckwDLdxm80mh8ORo8a8xumJnuiJnuiJnuiJnuiJnuiJnuiJnuiJnopDTxfWlRePh1K///674uLilJaWpqCgIH3xxReqXbu2Nm7cKB8fH4WGhrotHxkZqaSkpDy3N2rUKI0cOTLH+IYNGxQYGChJCg8PV7Vq1ZSYmKgjR46Yy1SsWFEVK1bU9u3blZycbI5XrVpVERER2rx5s86ePWuO16pVS6GhodqwYYPbAaxfv758fHy0bt06txoaN26sjIwM/fbbb+aYw+FQkyZNlJycrK1bt5rj/v7+atCggY4ePapdu3aZ4yEhIYqNjdWBAwe0f/9+c5ye6Ime6Ime6Ime6Ime6Ime6Ime6Ime6Kk49JSamqr88PjtexkZGdq7d6+Sk5M1d+5cffDBB1q+fLk2btyoBx980O2qJ0lq2rSpWrVqpdGjR+e6vdyulKpUqZKOHTtmXjL2T0km6Yme6Ime6Ime6Ime6Ime6Ime6Ime6ImerO4pJSVFYWFhl7x9z+Oh1IXi4+NVrVo13XPPPWrTpo1OnDjhdrVUTEyMBgwYoIEDB+Zre8wpBQAAAAAAYJ38ZjEe/fa93LhcLqWnp6tRo0by9vbWkiVLzOe2bdumvXv3Ki4uzoMVAgAAAAAAoLA8OqfU008/rfbt2ys6OlqnTp3SzJkztWzZMi1atEghISHq1auXBg0apDJlyig4OFj9+vVTXFxcvr95DwAAAAAAAMWTR0Opw4cP64EHHtDBgwcVEhKi+vXra9GiRWrbtq0kady4cbLb7erSpYvS09OVkJCgSZMmebJkAAAAAAAAFIFiN6dUUWNOKQAAAAAAAOtctXNKAQAAAAAAoOQjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWM6jodSoUaPUpEkTlSpVShEREercubO2bdvmtkxaWpr69OmjsLAwBQUFqUuXLjp06JCHKgYAAAAAAEBR8GgotXz5cvXp00erV6/W4sWLlZmZqVtuuUWpqanmMgMHDtRXX32lOXPmaPny5Tpw4IDuvPNOD1YNAAAAAACAwrIZhmF4uohsR44cUUREhJYvX66bb75ZycnJCg8P18yZM/Wvf/1LkrR161bFxsZq1apVuv766y+5zZSUFIWEhCg5OVnBwcFXugUAAAAAAIB/tPxmMcVqTqnk5GRJUpkyZSRJ69evV2ZmpuLj481latWqpejoaK1atcojNQIAAAAAAKDwvDxdQDaXy6UBAwaoefPmqlu3riQpKSlJPj4+Cg0NdVs2MjJSSUlJuW4nPT1d6enp5uOUlBRJUlZWlrKysiRJdrtddrtdLpdLLpfLXDZ73Ol06vwLyPIadzgcstls5nbPH5ckp9OZr3EvLy8ZhuE2brPZ5HA4ctSY1zg90RM90RM90RM90RM90RM90RM90RM90VNx6OnCuvJSbEKpPn36aPPmzVqxYkWhtjNq1CiNHDkyx/iGDRsUGBgoSQoPD1e1atWUmJioI0eOmMtUrFhRFStW1Pbt282rtiSpatWqioiI0ObNm3X27FlzvFatWgoNDdWGDRvcDmD9+vXl4+OjdevWudXQuHFjZWRk6LfffjPHHA6HmjRpouTkZG3dutUc9/f3V4MGDXT06FHt2rXLHA8JCVFsbKwOHDig/fv3m+P0RE/0RE/0RE/0RE/0RE/0RE/0RE/0RE/Foafz5wq/mGIxp1Tfvn01f/58/fjjj6pSpYo5/sMPP6hNmzY6ceKE29VSMTExGjBggAYOHJhjW7ldKVWpUiUdO3bMvI/xn5JM0hM90RM90RM90RM90RM90RM90RM90RM9Wd1TSkqKwsLCLjmnlEdDKcMw1K9fP33xxRdatmyZqlev7vZ89kTnn3zyibp06SJJ2rZtm2rVqsVE5wAAAAAAAMVQfrMYj96+16dPH82cOVPz589XqVKlzHmiQkJC5O/vr5CQEPXq1UuDBg1SmTJlFBwcrH79+ikuLi5fgRQAAAAAAACKJ49eKWWz2XIdnzJlinr27ClJSktL0+DBg/XJJ58oPT1dCQkJmjRpksqVK5evfXClFAAAAAAAgHXym8UUizmlriRCKQAAAAAAAOvkN4uxW1gTAAAAAAAAIIlQCgAAAAAAAB5AKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAch4NpX788Ud17NhRUVFRstlsmjdvntvzhmFo2LBhKl++vPz9/RUfH68dO3Z4plgAAAAAAAAUGY+GUqmpqWrQoIHefvvtXJ8fM2aM3nzzTb3zzjtas2aNAgMDlZCQoLS0NIsrBQAAAAAAQFHy8uTO27dvr/bt2+f6nGEYGj9+vJ577jl16tRJkvTxxx8rMjJS8+bNU9euXa0sFQAAAAAAAEWo2M4plZiYqKSkJMXHx5tjISEhatasmVatWuXBygAAAAAAAFBYHr1S6mKSkpIkSZGRkW7jkZGR5nO5SU9PV3p6uvk4JSVFkpSVlaWsrCxJkt1ul91ul8vlksvlMpfNHnc6nTIM45LjDodDNpvN3O7545LkdDrzNe7l5SXDMNzGbTabHA5HjhrzGqcneqIneqIneqIneqIneqIneqIneqIneioOPV1YV16KbSh1uUaNGqWRI0fmGN+wYYMCAwMlSeHh4apWrZoSExN15MgRc5mKFSuqYsWK2r59u5KTk83xqlWrKiIiQps3b9bZs2fN8Vq1aik0NFQbNmxwO4D169eXj4+P1q1b51ZD48aNlZGRod9++80cczgcatKkiZKTk7V161Zz3N/fXw0aNNDRo0e1a9cuczwkJESxsbE6cOCA9u/fb47TEz3REz3REz3REz3REz3REz3REz3REz0Vh55SU1OVHzbj/KjNg2w2m7744gt17txZkrRr1y5Vq1ZNGzZsUMOGDc3lWrRooYYNG2rChAm5bie3K6UqVaqkY8eOKTg4WNI/J5mkJ3qiJ3qiJ3qiJ3qiJ3qiJ3qiJ3qiJ3qyuqeUlBSFhYUpOTnZzGJyU2xDKcMwFBUVpSFDhmjw4MGSzjUVERGhqVOn5nui85SUFIWEhFzyhQAAAAAAAEDh5TeL8ejte6dPn9bOnTvNx4mJidq4caPKlCmj6OhoDRgwQC+99JKqV6+uKlWq6Pnnn1dUVJQZXAEAAAAAAODq5NFQat26dWrVqpX5eNCgQZKkHj16aOrUqXriiSeUmpqqRx55RCdPntSNN96ohQsXys/Pz1MlAwAAAAAAoAgUm9v3rhRu3wMAAAAAALBOfrMYu4U1AQAAAAAAAJIIpQAAAAAAAOABhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALOfl6QJKohalOni6hAJbfuobT5cAAAAAAAD+QbhSCgAAAAAAAJYjlAIAAAAAAIDluH0PAK4y3CIMAAAAoCTgSikAAAAAAABYjlAKAAAAAAAAluP2PUiSbrnnBU+XUGDfzRrm6RIA5BPnGAAAwBQEAC5EKIWrVsOXRni6hAK7Ke6Ep0sosIltJni6BMAjOMdceZxfAADF3dX4D2uH67k8XUKBXW2fYSQ+xxSVqyKUevvtt/Xaa68pKSlJDRo00MSJE9W0aVNPlwUAAFDiXG1XMnAVAwAAV69iH0rNmjVLgwYN0jvvvKNmzZpp/PjxSkhI0LZt2xQREeHp8gAAAOBBV+NVDNweDADAOcU+lBo7dqx69+6tBx98UJL0zjvv6JtvvtF///tfPfXUUx6uDgAAACgYbg+2BrfWAEDxV6y/fS8jI0Pr169XfHy8OWa32xUfH69Vq1Z5sDIAAAAAAAAURrG+Uuro0aNyOp2KjIx0G4+MjNTWrVtzXSc9PV3p6enm4+TkZEnS8ePHlZWVJelcsGW32+VyueRy/W8SuOxxp9MpwzAuOe5wOGSz2cztZstSpmRIXj4O9/EMp2STvLxzjttsNjm8/5cRGobkzHTKZrfJ4ZVz3O6wye7437jLacjldMnusMvusJ037pLLacjh7ZDtf8NyZrlkuP43brjOvWYulyHDkBznbUOSnE7j/3vO/7jNJtnt540bktOV97jdJtnOGzeMc/XY7Ta32g2XIZch2dINnb9XpyG5JHnZ5DaeZUiGJG/3EvMczzTOre+Vj3Hj/7djl+TIx3jm6QwZNkM2wyb3Ko3/H78wJ8593JBLsin3cUk25XPc5pKM3Mezazx+/Pi5dW02ORyOPN83V+r95HCce784nc58jXt5eckwDLfxvGq/anvydll+jjDHM10yDCPn+S3TedHzno8r3W3cinOEw+5+MjDPb3mNX3Aec6W5LD9HuHTuXOawuf+rUV7ntwvHM09n/v/2rTtHXHrcyPO8t2XVTXK5HG7jNptTNptxkXH3jy4227n3l2Hkb9xuz5Jh2GQY5/+uGrLbnRcZt8v4/9cyKvaz4n+OUOHOe/L+37hV54hCfTZypnvkHFGYz0b29HOvsdXniGyX89ko43S65eeIwn422ryyleXniHMbd8luc8ll2KXzxm02l2w210XPe1Gxn5vjxfUcUZjznlNZ1p8jCvnZKMffSRacI/5X/OV9NlK6Yfk5orCfjTJPZ1p+jjDHdXmfjTavbGUubdU5orCfjSrW+dqyc0RKSsr/1/G/c0BubMallvCgAwcOqEKFCvr5558VFxdnjj/xxBNavny51qxZk2OdESNGaOTIkVaWCQAAAAAAgAvs27dPFStWzPP5Yn2lVNmyZeVwOHTo0CG38UOHDqlcuXK5rvP0009r0KBB5mOXy6Xjx48rLCxMNpst13WAbCkpKapUqZL27dun4OBgT5cDoIThHAPgSuIcA+BK4hyDgjAMQ6dOnVJUVNRFlyvWoZSPj48aNWqkJUuWqHPnzpLOhUxLlixR3759c13H19dXvr6+bmOhoaFXuFKUNMHBwZxoAVwxnGMAXEmcYwBcSZxjkF8hISGXXKZYh1KSNGjQIPXo0UONGzdW06ZNNX78eKWmpprfxgcAAAAAAICrT7EPpe655x4dOXJEw4YNU1JSkho2bKiFCxfmmPwcAAAAAAAAV49iH0pJUt++ffO8XQ8oSr6+vho+fHiOW0ABoChwjgFwJXGOAXAlcY7BlVCsv30PAAAAAAAAJZPd0wUAAAAAAADgn4dQCgAAAAAAAJYjlAIAAAA8pHLlyho/frynywAAwCMIpYA82Gw2zZs377LXb9mypQYMGFBk9QAoGUaMGKGGDRte9vrLli2TzWbTyZMni6wmACUHn18A5NflfCYpbJDes2dPde7c+bLXR8lDKAUAQBFxOp1yuVyeLgMAAAC4KhBKoVibO3eu6tWrJ39/f4WFhSk+Pl6pqalmwj5y5EiFh4crODhYjz76qDIyMsx1Fy5cqBtvvFGhoaEKCwvTbbfdpr/++qtI6jp27Ji6deumChUqKCAgQPXq1dMnn3xiPt+zZ08tX75cEyZMkM1mk81m0+7du80rHJYsWaLGjRsrICBAN9xwg7Zt21YkdQEomJYtW6pv377q27evQkJCVLZsWT3//PPK/mLaEydO6IEHHlDp0qUVEBCg9u3ba8eOHeb6U6dOVWhoqL788kvVrl1bvr6+2rt3b6FqmjZtmho3bqxSpUqpXLlyuvfee3X48GFJ0u7du9WqVStJUunSpWWz2dSzZ0+zl8cff1xPPPGEypQpo3LlymnEiBGFqgVA4Z06dUrdu3dXYGCgypcvr3Hjxl30aqStW7fqxhtvlJ+fn2rXrq3vv/++0Fc/ZePzC1DyuFwujRkzRtdcc418fX0VHR2tl19+WZL05JNPqkaNGgoICFDVqlX1/PPPKzMzU9K5zzAjR47Upk2bzPf71KlTC1WL0+lUr169VKVKFfn7+6tmzZqaMGGC+fyIESP00Ucfaf78+eY+ly1bpt27d8tms+nzzz9Xq1atFBAQoAYNGmjVqlWFqgdXB0IpFFsHDx5Ut27d9NBDD+nPP//UsmXLdOedd5p/LC5ZssQc/+STT/T5559r5MiR5vqpqakaNGiQ1q1bpyVLlshut+uOO+4okqsY0tLS1KhRI33zzTfavHmzHnnkEd1///365ZdfJEkTJkxQXFycevfurYMHD+rgwYOqVKmSuf6zzz6rN954Q+vWrZOXl5ceeuihQtcE4PJ89NFH8vLy0i+//KIJEyZo7Nix+uCDDySd+wNt3bp1+vLLL7Vq1SoZhqFbb73V/EAnSWfOnNHo0aP1wQcf6I8//lBERESh6snMzNSLL76oTZs2ad68edq9e7cZPFWqVEmfffaZJGnbtm06ePCg24e9jz76SIGBgVqzZo3GjBmjF154QYsXLy5UPQAKZ9CgQVq5cqW+/PJLLV68WD/99JN+/fXXXJd1Op3q3LmzAgICtGbNGr333nt69tlni6wWPr8AJc/TTz+tV199Vc8//7y2bNmimTNnKjIyUpJUqlQpTZ06VVu2bNGECRP0/vvva9y4cZKke+65R4MHD1adOnXM9/s999xTqFpcLpcqVqyoOXPmaMuWLRo2bJieeeYZzZ49W5I0ZMgQ3X333WrXrp25zxtuuMFc/9lnn9WQIUO0ceNG1ahRQ926dVNWVlahasJVwACKqfXr1xuSjN27d+d4rkePHkaZMmWM1NRUc2zy5MlGUFCQ4XQ6c93ekSNHDEnG77//nq/9SzK++OKLfNfboUMHY/DgwebjFi1aGP3793dbZunSpYYk4/vvvzfHvvnmG0OScfbs2XzvC0DRaNGihREbG2u4XC5z7MknnzRiY2ON7du3G5KMlStXms8dPXrU8Pf3N2bPnm0YhmFMmTLFkGRs3Lgx3/scPny40aBBg3wvv3btWkOScerUKcMw/nceOXHiRI5ebrzxRrexJk2aGE8++WS+9wWgaKWkpBje3t7GnDlzzLGTJ08aAQEB5meEmJgYY9y4cYZhGMaCBQsMLy8v4+DBg+byixcvLtBnEj6/AP8cKSkphq+vr/H+++/na/nXXnvNaNSokfm4oJ9JDMP9nJUfffr0Mbp06WI+7tGjh9GpUye3ZRITEw1JxgcffGCO/fHHH4Yk488//yxQfbj6cKUUiq0GDRqoTZs2qlevnu666y69//77OnHihNvzAQEB5uO4uDidPn1a+/btkyTt2LFD3bp1U9WqVRUcHKzKlStLUqFvrZHO/Uvmiy++qHr16qlMmTIKCgrSokWL8r3t+vXrm/9dvnx5STJvzwFgreuvv142m818HBcXpx07dmjLli3y8vJSs2bNzOfCwsJUs2ZN/fnnn+aYj4+P23u6sNavX6+OHTsqOjpapUqVUosWLSTl79x1YR3ly5fn3AJ40K5du5SZmammTZuaYyEhIapZs2auy2/btk2VKlVSuXLlzLHz1y0sPr8AJcuff/6p9PR0tWnTJtfnZ82apebNm6tcuXIKCgrSc889VyR/C13M22+/rUaNGik8PFxBQUF67733OMfgogilUGw5HA4tXrxYCxYsUO3atTVx4kTVrFlTiYmJ+Vq/Y8eOOn78uN5//32tWbNGa9askSS3eacu12uvvaYJEyboySef1NKlS7Vx40YlJCTke9ve3t7mf2f/MczkyMDVyd/f3y3UKozU1FQlJCQoODhYM2bM0Nq1a/XFF19Iyt+56/xzi3Tu/MK5BUA2Pr8AJYu/v3+ez61atUrdu3fXrbfeqq+//lobNmzQs88+WyR/C+Xl008/1ZAhQ9SrVy9999132rhxox588EHOMbgoL08XAFyMzWZT8+bN1bx5cw0bNkwxMTHmH2ibNm3S2bNnzZPx6tWrFRQUpEqVKunYsWPatm2b3n//fd10002SpBUrVhRZXStXrlSnTp103333STp3sty+fbtq165tLuPj4yOn01lk+wRwZWQH1tlWr16t6tWrq3bt2srKytKaNWvM+Q6yzy3nv9eL0tatW3Xs2DG9+uqr5jwu69atc1vGx8dHkji/AFeBqlWrytvbW2vXrlV0dLQkKTk5Wdu3b9fNN9+cY/maNWtq3759OnTokDknzNq1a4usHj6/ACVL9erV5e/vryVLlujhhx92e+7nn39WTEyM27x0e/bscVumqN/vK1eu1A033KDHHnvMHLvwi6Y4x+BChFIottasWaMlS5bolltuUUREhNasWaMjR44oNjZWv/32mzIyMtSrVy8999xz2r17t4YPH66+ffvKbrerdOnSCgsL03vvvafy5ctr7969euqppwpcQ2JiojZu3Og2Vr16dVWvXl1z587Vzz//rNKlS2vs2LE6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AezevVu33Xab6tevr88++0zr16/X22+/LUnKyMgwl/P29nZbz2azqaAXqNvt9hzrZGZmFriWSzl9+rRGjhypjRs3mj+///67duzYIT8/vwLVDAAAkF9cKQUAAFAA69evl8vl0htvvCG7/dy/782ePbtA2wgJCVFkZKTWrl2rm2++WdK5K5N+/fVXNWzY0FwuPDzcbXL0lJQUJSYmFqiWmjVrau3atW5jFz6+7rrrtG3bNl1zzTUF6gMAAKAwCKUAAADykJycrI0bN7qNlS1bVpmZmZo4caI6duyolStX6p133inwtvv166dRo0bpmmuuUa1atTRx4kSdOHFCNpvNXKZ169aaOnWqOnbsqNDQUA0bNkwOh8N8/pprrrlkLf369dPNN9+ssWPHqmPHjvrhhx+0YMECt/0MGzZMt912m6Kjo/Wvf/1LdrtdmzZt0ubNm/XSSy8VuDcAAID84PY9AACAPCxbtkzXXnut28+0adM0duxYjR49WnXr1tWMGTM0atSoAm/7ySefVLdu3fTAAw8oLi5OQUFBSkhIcLtd7umnn1aLFi102223qUOHDurcubPbPFUNGjS4ZC3NmzfXO++8o7Fjx6pBgwZauHChBg4c6LafhIQEff311/ruu+/UpEkTXX/99Ro3bpxiYmIu41UDAADIH759DwAAoBhwuVyKjY3V3XffrRdffPGK7qt3797aunWrfvrppyu6HwAAgIvh9j0AAAAP2LNnj7777ju1aNFC6enpeuutt5SYmKh77723yPf1+uuvq23btgoMDNSCBQv00UcfadKkSUW+HwAAgIIglAIAAPAAu92uqVOnasiQITIMQ3Xr1tX333+v2NjYIt/XL7/8ojFjxujUqVOqWrWq3nzzTT388MNFvh8AAICC4PY9AAAAAAAAWI6JzgEAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGC5/wPTQVJuIpg6GwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeDBJREFUeJzs3Xd0VOXaxuF7ZkJCCkkgJEAoCSC9Ks0ISAsGRARFEcVDETl6BKSLKFJsFJUiUmwHLCBNBUUBEQGVDgKKVCX0XpJAIHX29wdf9mFIAgkJe0L8XWtlLeedXZ5nynbmZu93bIZhGAIAAAAAAAAsZHd3AQAAAAAAAPjnIZQCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAPzjrVq1SjabTatWrXJ3KXmWzWbTyJEj3V0GMtG0aVM1bdrU3WW4zcWLFxUSEqJZs2a5u5Rs4diT/4wcOVI2m01nzpy57nLJyckqXbq0pk6dalFlAJA3EUoBwG3GZrNl6c+KLzmZ7XvMmDG3fN9Afvb999//I0JAp9OpmTNn6sEHH1Tp0qXl6+ur6tWr6/XXX1dCQkKWtzNp0iQVKlRInTp1uoXV5k1Op1PBwcEaN26cu0vJs1asWKGnnnpKFStWlI+Pj8qVK6enn35ax48fz9L6Z8+e1VtvvaV7771XwcHBCgwM1N133625c+fedE0FChTQgAED9MYbb2TrtQ4A+Y2HuwsAAGTPZ5995nL7008/1fLly9ONV6lSxZJ6WrZsqS5duriM3XnnnZbsG8ivvv/+e02ZMiXfB1OXLl1S9+7ddffdd+vZZ59VSEiI1q1bpxEjRmjFihX66aefZLPZrruN5ORkTZo0Sf3795fD4bCo8rxj48aNOnPmjNq0aePuUvKsIUOG6Ny5c3r00UdVoUIF7d+/X++9954WL16sbdu2qXjx4tddf926dXr55Zd1//33a9iwYfLw8NCXX36pTp06aefOnRo1atRN1dW9e3e9+OKLmj17tp566qmb2gYA3O4IpQDgNvPkk0+63F6/fr2WL1+ebtwqFStWdNu+kXsSEhLk6ekpu52TqJG7nE6nkpKSVLBgwXT3eXp6as2aNbrnnnvMsZ49eyo8PNwMpiIjI6+7/cWLF+v06dPq2LFjrtd+O/j+++8VFhamatWqubuUPGv8+PFq1KiRy/GtVatWatKkid577z29/vrr112/WrVq2rdvn8LCwsyx5557TpGRkRo7dqxeeOEF+fr6ZruuwMBA3XfffZo5cyahFIB/LD55AkA+FB8fr4EDB6p06dLy8vJSpUqV9Pbbb8swDJflbDabevfurVmzZqlSpUoqWLCg6tSpo59//jlb+7t8+XK2Lj9YsGCBbDabVq9ene6+999/XzabTTt27Mhw3c2bN8tms+mTTz5Jd9+yZctks9m0ePFiSdLBgwf13HPPqVKlSvL29lZQUJAeffRRHThw4IY1hoeHq1u3bunGM5q7JzExUSNGjNAdd9whLy8vlS5dWi+88IISExNdllu+fLkaNWqkwMBA+fn5qVKlSnrppZduWEt2nqejR4/qqaeeUrFixeTl5aVq1arpv//9r8syafPYzJkzR8OGDVPJkiXl4+OjuLi4G9aSJquP7cyZM2Wz2bRmzRoNGDBAwcHB8vX11UMPPaTTp0+7LOt0OjVy5EiFhobKx8dHzZo1086dO9M9F2lztlwrbV9X17Bo0SK1adNGoaGh8vLyUvny5fXaa68pNTU13fpTpkxRuXLl5O3trfr16+uXX37J0fOdkV9++UWPPvqoypQpY67bv39/Xb582VymW7dumjJliiTXS2SzIykpScOHD1edOnUUEBAgX19fNW7cWCtXrjSXMQxD4eHhateuXbr1ExISFBAQoGeeeSbbfV/9eq1WrZq8vLy0dOnSDOv09PR0CaTSPPTQQ5KkXbt23bDXhQsXKjw8XOXLl0933/z581W1alUVLFhQ1atX19dff61u3bopPDzcZbmsHjNTUlL02muvqXz58vLy8lJ4eLheeumldI9BVl/LmdmwYYNatWqlgIAA+fj4qEmTJlqzZk2Gy3733XcuZ0llZ98xMTHq16+f2fcdd9yhsWPHyul0msscOHBANptNb7/9tvke8fHx0X333afDhw/LMAy99tprKlWqlLy9vdWuXTudO3fOZT/h4eF64IEHtGrVKtWtW1fe3t6qUaOGeZn5V199pRo1apjHtq1bt7qs//vvv6tbt24qV66cChYsqOLFi+upp57S2bNnb/hYStK9996bLnC/9957VaRIkSy9xsqWLesSSElXXuft27dXYmKi9u/fn26dM2fOqGPHjvL391dQUJD69u2b4f8nW7ZsqV9//TXdYwYA/xScKQUA+YxhGHrwwQe1cuVK9ejRQ7Vr19ayZcs0ePBgHT16VBMmTHBZfvXq1Zo7d66ef/55eXl5aerUqWrVqpU2btyo6tWr33B/M2fO1NSpU2UYhqpUqaJhw4bpiSeeuO46bdq0kZ+fn+bNm6cmTZq43Dd37lxVq1Yt033XrVtX5cqV07x589S1a9d06xYuXFhRUVGSpE2bNmnt2rXq1KmTSpUqpQMHDmjatGlq2rSpdu7cKR8fnxv2dyNOp1MPPvigfv31V/373/9WlSpV9Mcff2jChAnau3evFi5cKEn6888/9cADD6hmzZp69dVX5eXlpb/++ivTL5rXysrzdPLkSd19991mKBAcHKwlS5aoR48eiouLU79+/Vy2+dprr8nT01ODBg1SYmKiPD09s9x3dh/bPn36qHDhwhoxYoQOHDigiRMnqnfv3i5zsgwdOlTjxo1T27ZtFRUVpe3btysqKipH863MnDlTfn5+GjBggPz8/PTTTz9p+PDhiouL01tvvWUuN23aNPXu3VuNGzdW//79deDAAbVv316FCxdWqVKlzOWy+nxnZv78+bp06ZL+85//KCgoSBs3btTkyZN15MgRzZ8/X5L0zDPP6NixYxlelptVcXFx+uijj/T444+rZ8+eunDhgj7++GNFRUVp48aNql27tmw2m5588kmNGzdO586dU5EiRcz1v/32W8XFxZlnQWa3759++knz5s1T7969VbRo0XQh0I2cOHFCklS0aNEbLrt27Vrddddd6ca/++47PfbYY6pRo4ZGjx6t8+fPq0ePHipZsqTLctk5Zj799NP65JNP9Mgjj2jgwIHasGGDRo8erV27dunrr782l8vJa/mnn35S69atVadOHY0YMUJ2u10zZsxQ8+bN9csvv6h+/fouj9PWrVv16quvZnvfly5dUpMmTXT06FE988wzKlOmjNauXauhQ4fq+PHjmjhxosvys2bNUlJSkvr06aNz585p3Lhx6tixo5o3b65Vq1ZpyJAh+uuvvzR58mQNGjQoXRj+119/6YknntAzzzyjJ598Um+//bbatm2r6dOn66WXXtJzzz0nSRo9erQ6duyoPXv2mEHS8uXLtX//fnXv3l3FixfXn3/+qQ8++EB//vmn1q9fn+3QVroyOf7F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DyosLEzz589XcnKy/vWvf5nLZLfvm31tzZ07V8OGDVOPHj30n//8J8vrGdfM/ZTZc5o2dnWQkdVj5sGDB2W329Nts3jx4goMDHRZLqN9Z+W1vG/fPklKd2ny1WJjY1W4cGElJydr+fLlGj16tEsvWd33vn379Pvvv2f5Ob32PZwWUJUuXTrD8Wtf3zlZ/9y5cxo1apTmzJmTrq60901SUlK6eZmCg4PT/SLj7t279dBDD6l69er66KOPXO47d+6ckpKSzNve3t4uQVyaPn36aOnSpfr0009Vq1atdPdL6Y/Z5cuXl91uTzfvXtpr92YuQQSA/IBQCgCQq9K+YNxo0lYvLy+1b99eX3/9taZOnaqTJ09qzZo1evPNN7O0n8cee0xvvPGGzpw5o0KFCumbb77R448/7vIv9n369NGMGTPUr18/RUREKCAgQDabTZ06dbrh2UqZfUFITU11+ZLjdDpVo0YNjR8/PsPl0x4Pb29v/fzzz1q5cqW+++47LV26VHPnzlXz5s31ww8/5Pin7NP6efLJJzP9QluzZk2X2zd7lpSU/cc2s/6uDROy4nrPzdViYmLUpEkT+fv769VXX1X58uVVsGBB/fbbbxoyZMhNnbGW1ec7s/patmypc+fOaciQIapcubJ8fX119OhRdevW7abqycznn3+ubt26qX379ho8eLBCQkLkcDg0evRo/f333y7LdurUSf3799esWbP00ksv6fPPP1fdunVVqVIlc5ns9n0zr63ly5erS5cuatOmjaZPn56ldYoUKSKbzZYuALmVbmV4kPYaeOutt1S7du0Ml0k78+vXX39VXFyc7r///pveV8uWLfXCCy9keP+1/ziQ2Xs4q+/tnKzfsWNHrV27VoMHD1bt2rXl5+cnp9OpVq1amY/Z2rVr1axZM5dtREdHuwTLhw8f1n333aeAgAB9//336YLIhx9+2OUHOLp27aqZM2e6LDNq1ChNnTpVY8aMcQlubySz103aazcnc1sBwO2MUAoA8pmwsDD9+OOPunDhgssH7rRLla79BaG0f5m/2t69e+Xj45Ppv6BfT9olF1lZ97HHHtMnn3yiFStWaNeuXTIM44aX7l297qhRo/Tll1+qWLFiiouLU6dOnVyWWbBggbp27ap33nnHHEtISFBMTMwNt1+4cOEMlzt48KDKlStn3i5fvry2b9+uFi1a3PDLqt1uV4sWLdSiRQuNHz9eb775pl5++WWtXLnyhj97n5XnqVChQkpNTb3htnJDTh7bjKS9Lv/66y+Xs2zOnj2bLnBIO+MjJibG5fKua88CXLVqlc6ePauvvvpK9957rzkeHR2d6b6v/lKbkpKiAwcOuIR52Xm+r/XHH39o7969+uSTT9SlSxdzfPny5emWzWnwsWDBApUrV05fffWVy7ZGjBiRbtkiRYqoTZs2mjVrljp37qw1a9akm+Q6J31nxYYNG/TQQw+pbt26mjdvnku4fD0eHh4qX778dZ/Ta107ltVjZlhYmJxOp/bt22eeRSVd+YGBmJgYl+XS9nOj1/K10n5B0N/f/4bv4++++05Vq1Z1CV2ys+/y5cvr4sWLlhwvcuL8+fNasWKFRo0apeHDh5vj1x4Ta9Wqle69dPWZvmfPntV9992nxMRErVixQiVKlEi3r3feecflcQoNDXW5f8qUKRo5cqT69eunIUOGXLfuffv2uTwHf/31l5xOZ7qzL9Neu1e/pgDgn4Q5pQAgn7n//vuVmpqq9957z2V8woQJstlsat26tcv4unXrXC5lOXz4sBYtWqT77rvvumfvnD59Ot3YhQsXNHHiRBUtWtRl/qPMREZGqkiRIpo7d67mzp2r+vXrZ/mynypVqqhGjRrmuiVKlHAJHqQr/wJ/7b/WT548+YZzZUlXvrCtX7/e5VKOxYsX6/Dhwy7LdezYUUePHtWHH36YbhuXL19WfHy8pIzPHEs7E+Lan5PPyI2eJ4fDoQ4dOujLL7/Ujh070q2f0fOVEzl5bDPSokULeXh4aNq0aS7j176Opf99cb96zpv4+Hh98skn6WqUXM+4SEpK0tSpU12Wq1u3roKCgvThhx8qJSXFHJ81a1a6L/JZfb4zklE9hmFo0qRJ6Zb19fWVpJsO+TLa14YNG7Ru3boMl//Xv/6lnTt3avDgwXI4HOkC3pz0fSO7du1SmzZtFB4ersWLF2f7LKuIiAht3rzZZSw0NFTVq1fXp59+qosXL5rjq1ev1h9//OGybFaPmWlnJF0b2KWdPdamTRtJ2XstX6tOnToqX7683n77bZe601z9Pv7+++/NfabJzr47duyodevWadmyZenui4mJcXkvuFNGr2Up/fNQuHBhRUZGuvwVLFhQ0pXjw/3336+jR4/q+++/z/ByaOnK43/1+lfPi5b266edO3fO9IzBq02ZMsXldtrcU9f+P3jLli2y2Wwu820BwD8JZ0oBQD7Ttm1bNWvWTC+//LIOHDigWrVq6YcfftCiRYvUr18/8wt9murVqysqKkrPP/+8vLy8zC/so0aNuu5+pkyZooULF6pt27YqU6aMjh8/rv/+9786dOiQPvvsM3OS5espUKCAHn74Yc2ZM0fx8fF6++23s9XrY489puHDh6tgwYLq0aNHurmZHnjgAX322WcKCAhQ1apVtW7dOv34448KCgq64baffvppLViwQK1atVLHjh31999/6/PPP0/3+P3rX//SvHnz9Oyzz2rlypVq2LChUlNTtXv3bs2bN0/Lli1T3bp19eqrr+rnn39WmzZtFBYWplOnTmnq1KkqVarUdefeSpOV52nMmDFauXKlGjRooJ49e6pq1ao6d+6cfvvtN/344483vKQyO3Ly2GakWLFi6tu3r9555x09+OCDatWqlbZv364lS5aoaNGiLmfn3HfffSpTpox69Ohhhij//e9/FRwcrEOHDpnL3XPPPSpcuLC6du2q559/XjabTZ999lm6L7eenp4aOXKk+vTpo+bNm6tjx446cOCAZs6cqfLly7vsO6vPd0YqV66s8uXLa9CgQTp69Kj8/f315ZdfZnj2TFqo+/zzzysqKirDoOh6HnjgAX311Vd66KGH1KZNG0VHR2v69OmqWrVqhmFHmzZtFBQUpPnz56t169YKCQlxuT8nfV/PhQsXFBUVpfPnz2vw4MHmZOFpypcvf8Mv6+3atdNnn32mvXv3ulxy9uabb6pdu3Zq2LChunfvrvPnz+u9995T9erVXR6DrB4za9Wqpa5du+qDDz4wLw3duHGjPvnkE7Vv3948yy47r+Vr2e12ffTRR2rdurWqVaum7t27q2TJkjp69KhWrlwpf39/ffvtt4qOjtauXbvShU/Z2ffgwYP1zTff6IEHHlC3bt1Up04dxcfH648//tCCBQt04MCBPHFJmb+/v+69916NGzdOycnJKlmypH744Yd0Z8ddT+fOnbVx40Y99dRT2rVrl3bt2mXe5+fnp/bt2193/Y0bN6pLly4KCgpSixYtXH4YQLpyrLn6DFrpyhlQac/BunXr9Pnnn+uJJ55INwfV8uXL1bBhw5s+dgLAbc/Kn/oDAOS+jH46/sKFC0b//v2N0NBQo0CBAkaFChWMt956y+Unxg3jyk+39+rVy/j888+NChUqGF5eXsadd97p8lPcmfnhhx+Mli1bGsWLFzcKFChgBAYGGvfdd1+2f157+fLlhiTDZrMZhw8fzta6+/btMyQZkoxff/013f3nz583unfvbhQtWtTw8/MzoqKijN27dxthYWHX/Vn2NO+8845RsmRJw8vLy2jYsKGxefNmo0mTJkaTJk1clktKSjLGjh1rVKtWzfDy8jIKFy5s1KlTxxg1apQRGxtrGIZhrFixwmjXrp0RGhpqeHp6GqGhocbjjz+e7ufYM5Kd5+nkyZNGr169jNKlSxsFChQwihcvbrRo0cL44IMP0vU7f/78G+776hpGjBhh3s7qYztjxgxDkrFp0yaX7WX0mKekpBivvPKKUbx4ccPb29to3ry5sWvXLiMoKMh49tlnXdbfsmWL0aBBA8PT09MoU6aMMX78eHNf0dHR5nJr1qwx7r77bsPb29sIDQ01XnjhBfOn6K99/N59910jLCzM8PLyMurXr2+sWbPGqFOnjtGqVSuX5bLyfGdm586dRmRkpOHn52cULVrU6Nmzp7F9+3ZDkjFjxgyXx6JPnz5GcHCwYbPZ0r3Hr3Xt69LpdBpvvvmm2c+dd95pLF682OjatasRFhaW4TbSfrJ+9uzZGd6f1b7TXq9ZER0dbb6HM/q7+rWUmcTERKNo0aLGa6+9lu6+OXPmGJUrVza8vLyM6tWrG998843RoUMHo3Llyi7LZfWYmZycbIwaNcooW7asUaBAAaN06dLG0KFDjYSEBJflsvpazuzYs3XrVuPhhx82goKCDC8vLyMsLMzo2LGjeXx97733jICAACM5OTldz9l5H124cMEYOnSocccddxienp5G0aJFjXvuucd4++23jaSkJMMw/vccvfXWWy7rZnYcyeg9HxYWZrRp0yZdrRm9VjLa35EjR4yHHnrICAwMNAICAoxHH33UOHbsWLrjUmbCwsIyfY1l9n7IqKfM/q5+744YMcKQZOzcudN45JFHjEKFChmFCxc2evfubVy+fNlluzExMYanp6fx0Ucf3bAGAMivbIZxEzOMAgDyBZvNpl69emXpshK4zz/5eYqJiVHhwoX1+uuv6+WXX7Z0306nU8HBwXr44YczvGwtv+nfv78+/vhjnThxQj4+Pu4uJ1tee+01zZgxQ/v27bvhjwbUrl1bwcHBGc7ldSvl5mv5/vvvl5+fn+bNm2f5vpF7Jk6cqHHjxunvv//O0Q9PAMDtjDmlAABAnnD58uV0Y2nzxjRt2vSW7jshISHdZX2ffvqpzp07d8v3nRckJCTo888/V4cOHW67QEq6EqhdvHhRc+bMMceSk5PTzYu0atUqbd++/ZY/p7f6tdy0aVP179/fLftG7khOTtb48eM1bNgwAikA/2jMKQUAAPKEuXPnaubMmeZZIL/++qu++OIL3XfffWrYsOEt3ff69evVv39/PfroowoKCtJvv/2mjz/+WNWrV9ejjz56S/ftTqdOndKPP/6oBQsW6OzZs+rbt6+7S7opfn5+OnXqlMvY0aNHFRkZqSeffFKhoaHavXu3pk+fruLFi+vZZ5+9pfXc6tfyCy+84LZ9I3cUKFDAZQ48APinIpQCAAB5Qs2aNeXh4aFx48YpLi7OnLT59ddfv+X7Dg8PV+nSpfXuu+/q3LlzKlKkiLp06aIxY8ZkadL+29XOnTvVuXNnhYSE6N133zV/ETI/KFy4sOrUqaOPPvpIp0+flq+vr9q0aaMxY8bc8kml3fladue+AQDILrfOKZWamqqRI0fq888/14kTJxQaGqpu3bpp2LBh5q+DGIahESNG6MMPP1RMTIwaNmyoadOmZfpTrgAAAAAAAMj73Dqn1NixYzVt2jS999572rVrl8aOHatx48Zp8uTJ5jLjxo3Tu+++q+nTp2vDhg3y9fVVVFSUEhIS3Fg5AAAAAAAAcsKtZ0o98MADKlasmD7++GNzrEOHDvL29tbnn38uwzAUGhqqgQMHatCgQZKk2NhYFStWTDNnzlSnTp3cVToAAAAAAABywK1zSt1zzz364IMPtHfvXlWsWFHbt2/Xr7/+qvHjx0uSoqOjdeLECUVGRprrBAQEqEGDBlq3bl2GoVRiYqISExPN206nU+fOnVNQUJB5SSAAAAAAAABuDcMwdOHCBYWGhspuz/wiPbeGUi+++KLi4uJUuXJlORwOpaam6o033lDnzp0lSSdOnJAkFStWzGW9YsWKmfdda/To0Ro1atStLRwAAAAAAADXdfjwYZUqVSrT+90aSs2bN0+zZs3S7NmzVa1aNW3btk39+vVTaGiounbtelPbHDp0qAYMGGDejo2NVZkyZRQdHS1/f39Jkt1ul91ul9PplNPpNJdNG09NTdXVVzVmNu5wOGSz2ZSSkuJSg8PhkHRlIvesjHt4eMgwDJdxm80mh8ORrsbMxumJnuiJnuiJnuiJnuiJnuiJnuiJnuiJnvJCT3FxcSpbtqwKFSqk63FrKDV48GC9+OKL5mV4NWrU0MGDBzV69Gh17dpVxYsXlySdPHlSJUqUMNc7efJkpj9Z7OXlJS8vr3TjRYoUMUMpAAAAAAAA3BoeHlfiphtNo+TWX9+7dOmS7HbXEtJSN0kqW7asihcvrhUrVpj3x8XFacOGDYqIiLC0VgAAAAAAAOQet54p1bZtW73xxhsqU6aMqlWrpq1bt2r8+PF66qmnJF1J1Pr166fXX39dFSpUUNmyZfXKK68oNDRU7du3d2fpAAAAAAAAyAG3hlKTJ0/WK6+8oueee06nTp1SaGionnnmGQ0fPtxc5oUXXlB8fLz+/e9/KyYmRo0aNdLSpUtVsGBBN1YOAAAAAACAnLAZV8+UlQ/FxcUpICBAsbGxzCkFAAAAAMBtyul0Kikpyd1lQFKBAgXMydMzktUsxq1nSgEAAAAAANxIUlKSoqOjXX71De4VGBio4sWL33Ay8+shlAIAAAAAAHmWYRg6fvy4HA6HSpcune4H02AtwzB06dIlnTp1SpJUokSJm94WoRQAAAAAAMizUlJSdOnSJYWGhsrHx8fd5UCSt7e3JOnUqVMKCQm57qV810O8CAAAAAAA8qzU1FRJkqenp5srwdXSAsLk5OSb3gahFAAAAAAAyPNyMncRcl9uPB+EUgAAAAAAALAcoRQAAAAAAEAWzJw5U4GBgdla59KlS+rQoYP8/f1ls9kUExNzS2q7HRFKAQAAAACA247NZrvu38iRI91doiTpk08+0S+//KK1a9fq+PHjCggIyJXtNm3aVP369cuVbbkLv74HAAAAAABuO8ePHzf/e+7cuRo+fLj27Nljjvn5+bmjrHT+/vtvValSRdWrV3d3KRlKSkpy2yTynCkFAAAAAABuO8WLFzf/AgICZLPZzNshISEaP368SpUqJS8vL9WuXVtLly411z1w4IBsNpvmzJmje+65RwULFlT16tW1evXqbNVw+vRp1a1bVw899JASExPT3d+0aVO98847+vnnn2Wz2dS0aVNJUmJiogYNGqSSJUvK19dXDRo00KpVq8z1zp49q8cff1wlS5aUj4+PatSooS+++MK8v1u3blq9erUmTZpknhl24MCBDC8vXLhwocuk5CNHjlTt2rX10UcfqWzZsipYsKAkKSYmRk8//bSCg4Pl7++v5s2ba/v27dl6PLKLUAoAAAAAAOQrkyZN0jvvvKO3335bv//+u6KiovTggw9q3759LssNHjxYAwcO1NatWxUREaG2bdvq7NmzWdrH4cOH1bhxY1WvXl0LFiyQl5dXumW++uor9ezZUxERETp+/Li++uorSVLv3r21bt06zZkzR7///rseffRRtWrVyqwvISFBderU0XfffacdO3bo3//+t/71r39p48aNZn8RERHq2bOnjh8/ruPHj6t06dJZfnz++usvffnll/rqq6+0bds2SdKjjz6qU6dOacmSJdqyZYvuuusutWjRQufOncvydrOLUAoAAAAAAOQrb7/9toYMGaJOnTqpUqVKGjt2rGrXrq2JEye6LNe7d2916NBBVapU0bRp0xQQEKCPP/74htvfs2ePGjZsqKioKM2YMUMOhyPD5YoUKSIfHx95enqqePHiKlKkiA4dOqQZM2Zo/vz5aty4scqXL69BgwapUaNGmjFjhiSpZMmSGjRokGrXrq1y5cqpT58+atWqlebNmydJCggIkKenp3x8fMyzwzKrISNJSUn69NNPdeedd6pmzZr69ddftXHjRs2fP19169ZVhQoV9PbbbyswMFALFizI8nazizmlAAAAAABAvhEXF6djx46pYcOGLuMNGzZMdzlaRESE+d8eHh6qW7eudu3aJUmqVq2aDh48KElq3LixlixZIkm6fPmyGjdurCeeeCJdyJUVf/zxh1JTU1WxYkWX8cTERAUFBUmSUlNT9eabb2revHk6evSokpKSlJiYKB8fn2zvLyNhYWEKDg42b2/fvl0XL14095/m8uXL+vvvv3NlnxkhlAIAAAAAALjG999/r+TkZEmSt7e3Oe7l5aXIyEgtXrxYgwcPVsmSJbO13YsXL8rhcGjLli3pzm5Km5z9rbfe0qRJkzRx4kTVqFFDvr6+6tevn5KSkq67bbvdLsMwXMbSeriar69vuppKlCjhMq9VmmvnqMpNhFIAAAAAACDf8Pf3V2hoqNasWaMmTZqY42vWrFH9+vVdll2/fr3uvfdeSVJKSoq2bNmi3r17S7pyNlFG7Ha7PvvsMz3xxBNq1qyZVq1apdDQ0CzXd+eddyo1NVWnTp1S48aNM1xmzZo1ateunZ588klJktPp1N69e1W1alVzGU9PT6WmprqsFxwcrAsXLig+Pt4MntLmjLqeu+66SydOnJCHh4fCw8Oz3EtOMacUAAAAAADIVwYPHqyxY8dq7ty52rNnj1588UVt27ZNffv2dVluypQp+vrrr7V792716tVL58+f11NPPXXD7TscDs2aNUu1atVS8+bNdeLEiSzXVrFiRXXu3FldunTRV199pejoaG3cuFGjR4/Wd999J0mqUKGCli9frrVr12rXrl165plndPLkSZfthIeHa8OGDTpw4IDOnDkjp9OpBg0ayMfHRy+99JL+/vtvzZ49WzNnzrxhTZGRkYqIiFD79u31ww8/6MCBA1q7dq1efvllbd68Ocu9ZRehFAAAAAAAyFeef/55DRgwQAMHDlSNGjW0dOlSffPNN6pQoYLLcmPGjNGYMWNUq1Yt/frrr/rmm29UtGjRLO3Dw8NDX3zxhapVq6bmzZvr1KlTWa5vxowZ6tKliwYOHKhKlSqpffv22rRpk8qUKSNJGjZsmO666y5FRUWpadOmKl68uNq3b++yjUGDBsnhcKhq1aoKDg7WoUOHVKRIEX3++ef6/vvvVaNGDX3xxRcaOXLkDeux2Wz6/vvvde+996p79+6qWLGiOnXqpIMHD6pYsWJZ7iu7bMa1FxvmM3FxcQoICFBsbKz8/f3dXQ4AAAAAAMiGhIQERUdHq2zZsipYsGCubPPAgQMqW7astm7dqtq1a+fKNv9prve8ZDWL4UwpAAAAAAAAWI5QCgAAAAAAAJbj1/cAAAAAAMA/Snh4uPL5bEa3Bc6UAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYzsPdBQAAAAAAAOQVTQq1sXR/qy98l63lf/75Z7311lvasmWLjh8/rq+//lrt27e/NcXdYpwpBQAAAAAAcJuIj49XrVq1NGXKFHeXkmOcKQUAAAAAAHCbaN26tVq3bu3uMnIFZ0oBAAAAAADAcoRSAAAAAAAAsByhFAAAAAAAACxHKAUAAAAAAADLEUoBAAAAAADAcvz6HgAAAAAAwG3i4sWL+uuvv8zb0dHR2rZtm4oUKaIyZcq4sbLsI5QCAAAAAAC4TWzevFnNmjUzbw8YMECS1LVrV82cOdNNVd0cQikAAAAAAID/t/rCd+4u4bqaNm0qwzDcXUauYE4pAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJbzcHcBAAAAAAAAecV9j71q6f5+mDs8W8uPHj1aX331lXbv3i1vb2/dc889Gjt2rCpVqnSLKrx1OFMKAAAAAADgNrF69Wr16tVL69ev1/Lly5WcnKz77rtP8fHx7i4t2zhTCgAAAAAA4DaxdOlSl9szZ85USEiItmzZonvvvddNVd0ct54pFR4eLpvNlu6vV69ekqSEhAT16tVLQUFB8vPzU4cOHXTy5El3lgwAAAAAAJBnxMbGSpKKFCni5kqyz62h1KZNm3T8+HHzb/ny5ZKkRx99VJLUv39/ffvtt5o/f75Wr16tY8eO6eGHH3ZnyQAAAAAAAHmC0+lUv3791LBhQ1WvXt3d5WSbWy/fCw4Odrk9ZswYlS9fXk2aNFFsbKw+/vhjzZ49W82bN5ckzZgxQ1WqVNH69et19913u6NkAAAAAACAPKFXr17asWOHfv31V3eXclPyzJxSSUlJ+vzzzzVgwADZbDZt2bJFycnJioyMNJepXLmyypQpo3Xr1mUaSiUmJioxMdG8HRcXJ0lKSUlRSkqKJMlut8tut8vpdMrpdJrLpo2npqbKMIwbjjscDtlsNnO7V49LUmpqapbGPTw8ZBiGy7jNZpPD4UhXY2bj9ERP9ERP9ERP9ERP9ERP9ERP9ERP+bUnwzDMv7R1rq776m1lZzwvuNme+vTpo8WLF2v16tUqWbLkTfWXk8cx7flIe86ufv6uff1kJs+EUgsXLlRMTIy6desmSTpx4oQ8PT0VGBjoslyxYsV04sSJTLczevRojRo1Kt341q1b5evrK+nKGVrly5dXdHS0Tp8+bS5TqlQplSpVSnv37jWvyZSkcuXKKSQkRDt27NDly5fN8cqVKyswMFBbt251eaPVrFlTnp6e2rx5s0sNdevWVVJSkn7//XdzzOFwqF69eoqNjdXu3bvNcW9vb9WqVUtnzpzR/v37zfGAgABVqVJFx44d05EjR8xxeqIneqIneqIneqIneqIneqIneqKn/NjTkSNHlJSUpEuXLik1NVWenp7y9PRUQkKCS41eXl4qUKCALl++7BJuFSxYUB4eHrp06ZJL0OLt7S273e72X62Lj4/PVk+GYWjIkCFatGiRvv/+e4WEhJg9ZNaTr6+vnE6ny3Nts9nk6+ur1NRUJSQkmON2u10+Pj5KSUlxOenH4XDI29tbycnJSkpKUmJiopKSknTkyBFVrFjR5bWX1cfUZuSRqDAqKkqenp769ttvJUmzZ89W9+7dXR4ASapfv76aNWumsWPHZridjM6UKl26tM6ePSt/f39J+T9Bpid6oid6oid6oid6oid6oid6oid6yi89Xbp0SQcOHFDZsmVVsGBBc51bdaZUVKfXsrRcblk25xVJWa/9ueee0xdffKFFixapYsWK5nhAQIC8vb2zte+cPI4JCQmKjo5WeHi4fHx8XJ6/uLg4BQUFKTY21sxiMtx/XgilDh48qHLlyumrr75Su3btJEk//fSTWrRoofPnz7ucLRUWFqZ+/fqpf//+Wdp2XFycAgICbvhAAAAAAACAvCct/Lg6lLqV7nvs1Vu+j6v9MHd4tpa32WwZjs+YMcO8+swK13tesprF5InL92bMmKGQkBC1adPGHKtTp44KFCigFStWqEOHDpKkPXv26NChQ4qIiHBXqQAAAAAAIB/LbkhktTxwblGucXso5XQ6NWPGDHXt2lUeHv8rJyAgQD169NCAAQNUpEgR+fv7q0+fPoqIiOCX9wAAAAAAAG5zbg+lfvzxRx06dEhPPfVUuvsmTJggu92uDh06KDExUVFRUZo6daobqgQAAAAAAEBuyhNzSt1KzCkFAAAAAMDty+o5pZA1uTGnlP1WFwkAAAAAAABci1AKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOU83F0AAAAAAABAXlH79ZGW7m/bsOztb9q0aZo2bZoOHDggSapWrZqGDx+u1q1b535xtxhnSgEAAAAAANwmSpUqpTFjxmjLli3avHmzmjdvrnbt2unPP/90d2nZxplSAAAAAAAAt4m2bdu63H7jjTc0bdo0rV+/XtWqVXNTVTeHUAoAAAAAAOA2lJqaqvnz5ys+Pl4RERHuLifbCKUAAAAAAABuI3/88YciIiKUkJAgPz8/ff3116pataq7y8o25pQCAAAAAAC4jVSqVEnbtm3Thg0b9J///Eddu3bVzp073V1WtnGmFAAAAAAAwG3E09NTd9xxhySpTp062rRpkyZNmqT333/fzZVlD2dKAQAAAAAA3MacTqcSExPdXUa2caYUAAAAAADAbWLo0KFq3bq1ypQpowsXLmj27NlatWqVli1b5u7Sso1QCgAAAAAA4DZx6tQpdenSRcePH1dAQIBq1qypZcuWqWXLlu4uLdsIpQAAAAAAAP7ftmEj3V3CdX388cfuLiHXMKcUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMt5uLsAAAAAAACAvKLPir6W7m9yi0k5Wn/MmDEaOnSo+vbtq4kTJ+ZOURbhTCkAAAAAAIDb0KZNm/T++++rZs2a7i7lphBKAQAAAAAA3GYuXryozp0768MPP1ThwoXdXc5NIZQCAAAAAAC4zfTq1Utt2rRRZGSku0u5acwpBQAAAAAAcBuZM2eOfvvtN23atMndpeQIoRQAAAAAAMBt4vDhw+rbt6+WL1+uggULurucHCGUAgAAAAAAuE1s2bJFp06d0l133WWOpaam6ueff9Z7772nxMREORwON1aYdYRSAAAAAAAAt4kWLVrojz/+cBnr3r27KleurCFDhtw2gZREKAUAAAAAAHDbKFSokKpXr+4y5uvrq6CgoHTjeR2/vgcAAAAAAADLcaYUAAAAAADA/5vcYpK7S8i2VatWubuEm8KZUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAs5+HuAgAAAAAAAPKKw380s3R/pWuszNbyI0eO1KhRo1zGKlWqpN27d+dmWZYglAIAAAAAALiNVKtWTT/++KN528Pj9ox3bs+qAQAAAAAA/qE8PDxUvHhxd5eRY26fU+ro0aN68sknFRQUJG9vb9WoUUObN2827zcMQ8OHD1eJEiXk7e2tyMhI7du3z40VAwAAAAAAuM++ffsUGhqqcuXKqXPnzjp06JC7S7opbg2lzp8/r4YNG6pAgQJasmSJdu7cqXfeeUeFCxc2lxk3bpzeffddTZ8+XRs2bJCvr6+ioqKUkJDgxsoBAAAAAACs16BBA82cOVNLly7VtGnTFB0drcaNG+vChQvuLi3b3Hr53tixY1W6dGnNmDHDHCtbtqz534ZhaOLEiRo2bJjatWsnSfr0009VrFgxLVy4UJ06dbK8ZgAAAAAAAHdp3bq1+d81a9ZUgwYNFBYWpnnz5qlHjx5urCz73BpKffPNN4qKitKjjz6q1atXq2TJknruuefUs2dPSVJ0dLROnDihyMhIc52AgAA1aNBA69atyzCUSkxMVGJionk7Li5OkpSSkqKUlBRJkt1ul91ul9PplNPpNJdNG09NTZVhGDccdzgcstls5navHpek1NTULI17eHjIMAyXcZvNJofDka7GzMbpiZ7oiZ7oiZ7oiZ7oiZ7oiZ7oiZ7ya0+GYZh/aetcXffV28rOeF6Q054CAgJUsWJF7du3L9s95uRxTHs+0p6zq5+/a18/mXFrKLV//35NmzZNAwYM0EsvvaRNmzbp+eefl6enp7p27aoTJ05IkooVK+ayXrFixcz7rjV69Oh0P40oSVu3bpWvr68kKTg4WOXLl1d0dLROnz5tLlOqVCmVKlVKe/fuVWxsrDlerlw5hYSEaMeOHbp8+bI5XrlyZQUGBmrr1q0ub7SaNWvK09PTZW4sSapbt66SkpL0+++/m2MOh0P16tVTbGysy883ent7q1atWjpz5oz2799vjgcEBKhKlSo6duyYjhw5Yo7TEz3REz3REz3REz3REz3REz3REz3lx56OHDmipKQkXbp0SampqfL09JSnp6cSEhJcavTy8lKBAgV0+fJll3CrYMGC8vDw0KVLl1yCFm9vb9ntdsXHx8ud4uPjc9TThQsX9Pfff6tjx45yOp0Z9uTr6yun0+nyXNtsNvn6+io1NdVliiS73S4fHx+lpKS4nPTjcDjk7e2t5ORkJSUlKTExUUlJSTpy5IgqVqzo8trL6mNqM9wYFXp6eqpu3bpau3atOfb8889r06ZNWrdundauXauGDRvq2LFjKlGihLlMx44dZbPZNHfu3HTbzOhMqdKlS+vs2bPy9/eXlP8TZHqiJ3qiJ3qiJ3qiJ3qiJ3qiJ3qip/zS06VLl3TgwAGVLVtWBQsWNNe5VWdKHdnRPEvL5ZZS1X+SlPXaBw0apLZt2yo8PFxHjx7VyJEjtW3bNv35558KDg7O1r5z8jgmJCQoOjpa4eHh8vHxcXn+4uLiFBQUpNjYWDOLyYhbz5QqUaKEqlat6jJWpUoVffnll5Jk/rzhyZMnXUKpkydPqnbt2hlu08vLS15eXunGPTw85OHh2m7aC/xaaW+qrI5fu92bGbfZbBmOZ1ZjdsfpiZ4yG6cnepLoKbMasztOT/Qk0VNmNWZ3nJ7oSaKnzGrM7jg90ZN0+/dks9nMv6u3n5Hsjrtbdns6evSonnjiCZ09e1bBwcFq1KiR1q9fr5CQkBzvPzvjac9H2nN29fOX2evkWm4NpRo2bKg9e/a4jO3du1dhYWGSrkx6Xrx4ca1YscIMoeLi4rRhwwb95z//sbpcAAAAAACQz5WusdLdJVzXnDlz3F1CrnFrKNW/f3/dc889evPNN9WxY0dt3LhRH3zwgT744ANJV1K3fv366fXXX1eFChVUtmxZvfLKKwoNDVX79u3dWToAAAAAAABywK2hVL169fT1119r6NChevXVV1W2bFlNnDhRnTt3Npd54YUXFB8fr3//+9+KiYlRo0aNtHTpUvM6UgAAAAAAANx+3DrRuRXi4uIUEBBww8m1AAAAAABA3pM2ofbVE53D/a73vGQ1i0k/gxgAAAAAAABwixFKAQAAAACAPC+fX+h128mN54NQCgAAAAAA5FkOh0OSlJSU5OZKcLVLly5JkgoUKHDT23DrROcAAAAAAADX4+HhIR8fH50+fVoFChSQ3c75Ne5kGIYuXbqkU6dOKTAw0AwNbwahFAAAAAAAyLNsNptKlCih6OhoHTx40N3l4P8FBgaqePHiOdoGoRQAAAAAAMjTPD09VaFCBS7hyyMKFCiQozOk0hBKAQAAAACAPM9ut6tgwYLuLgO5iAsxAQAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDm3hlIjR46UzWZz+atcubJ5f0JCgnr16qWgoCD5+fmpQ4cOOnnypBsrBgAAAAAAQG5w+5lS1apV0/Hjx82/X3/91byvf//++vbbbzV//nytXr1ax44d08MPP+zGagEAAAAAAJAbPNxegIeHihcvnm48NjZWH3/8sWbPnq3mzZtLkmbMmKEqVapo/fr1uvvuu60uFQAAAAAAALnE7aHUvn37FBoaqoIFCyoiIkKjR49WmTJltGXLFiUnJysyMtJctnLlyipTpozWrVuXaSiVmJioxMRE83ZcXJwkKSUlRSkpKZIku90uu90up9Mpp9NpLps2npqaKsMwbjjucDhks9nM7V49LkmpqalZGvfw8JBhGC7jNptNDocjXY2ZjdMTPdETPdETPdETPdETPdETPdETPdETPeWFnq6tKzNuDaUaNGigmTNnqlKlSjp+/LhGjRqlxo0ba8eOHTpx4oQ8PT0VGBjosk6xYsV04sSJTLc5evRojRo1Kt341q1b5evrK0kKDg5W+fLlFR0drdOnT5vLlCpVSqVKldLevXsVGxtrjpcrV04hISHasWOHLl++bI5XrlxZgYGB2rp1q8sTWLNmTXl6emrz5s0uNdStW1dJSUn6/fffzTGHw6F69eopNjZWu3fvNse9vb1Vq1YtnTlzRvv37zfHAwICVKVKFR07dkxHjhwxx+mJnuiJnuiJnuiJnuiJnuiJnuiJnuiJnvJCT/Hx8coKm3F11OZmMTExCgsL0/jx4+Xt7a3u3bu7nPUkSfXr11ezZs00duzYDLeR0ZlSpUuX1tmzZ+Xv7y/pn5NM0hM90RM90RM90RM90RM90RM90RM90RM9Wd1TXFycgoKCFBsba2YxGclToZQk1atXT5GRkWrZsqVatGih8+fPu5wtFRYWpn79+ql///5Z2l5cXJwCAgJu+EAAAAAAAAAg57Kaxbj91/eudvHiRf39998qUaKE6tSpowIFCmjFihXm/Xv27NGhQ4cUERHhxioBAAAAAACQU26dU2rQoEFq27atwsLCdOzYMY0YMUIOh0OPP/64AgIC1KNHDw0YMEBFihSRv7+/+vTpo4iICH55DwAAAAAA4Dbn1lDqyJEjevzxx3X27FkFBwerUaNGWr9+vYKDgyVJEyZMkN1uV4cOHZSYmKioqChNnTrVnSUDAAAAAAAgF+S5OaVyG3NKAQAAAAAAWOe2nFMKAAAAAAAA/wyEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAy+VKKBUTE5MbmwEAAAAAAMA/RLZDqbFjx2ru3Lnm7Y4dOyooKEglS5bU9u3bc7U4AAAAAAAA5E/ZDqWmT5+u0qVLS5KWL1+u5cuXa8mSJWrdurUGDx6c6wUCAAAAAAAg//HI7gonTpwwQ6nFixerY8eOuu+++xQeHq4GDRrkeoEAAAAAAADIf7J9plThwoV1+PBhSdLSpUsVGRkpSTIMQ6mpqblbHQAAAAAAAPKlbJ8p9fDDD+uJJ55QhQoVdPbsWbVu3VqStHXrVt1xxx25XiAAAAAAAADyn2yHUhMmTFB4eLgOHz6scePGyc/PT5J0/PhxPffcc7leIAAAAAAAAPIfm2EYhruLuJXi4uIUEBCg2NhY+fv7u7scAAAAAACAfC2rWUy255SSpM8++0yNGjVSaGioDh48KEmaOHGiFi1adHPVAgAAAAAA4B8l26HUtGnTNGDAALVu3VoxMTHm5OaBgYGaOHFibtcHAAAAAACAfCjbodTkyZP14Ycf6uWXX5bD4TDH69atqz/++CNXiwMAAAAAAED+lO1QKjo6WnfeeWe6cS8vL8XHx+dKUQAAAAAAAMjfsh1KlS1bVtu2bUs3vnTpUlWpUiU3agIAAAAAAEA+55HdFQYMGKBevXopISFBhmFo48aN+uKLLzR69Gh99NFHt6JGAAAAAAAA5DPZDqWefvppeXt7a9iwYbp06ZKeeOIJhYaGatKkSerUqdOtqBEAAAAAAAD5jM0wDONmV7506ZIuXryokJCQ3KwpV8XFxSkgIECxsbHy9/d3dzkAAAAAAAD5WlazmGyfKXU1Hx8f+fj45GQTAAAAAAAA+AfKdihVtmxZ2Wy2TO/fv39/jgoCAAAAAABA/pftUKpfv34ut5OTk7V161YtXbpUgwcPzq26AAAAAAAAkI9lO5Tq27dvhuNTpkzR5s2bc1wQAAAAAAAA8j97bm2odevW+vLLL3NrcwAAAAAAAMjHci2UWrBggYoUKZJbmwMAAAAAAEA+lu3L9+68806Xic4Nw9CJEyd0+vRpTZ06NVeLAwAAAAAAQP6U7VCqffv2LrftdruCg4PVtGlTVa5cObfqAgAAAAAAQD5mMwzDcHcRkjRmzBgNHTpUffv21cSJEyVJCQkJGjhwoObMmaPExERFRUVp6tSpKlasWJa3GxcXp4CAAMXGxsrf3/8WVQ8AAAAAAAAp61lMls6UiouLy/KObyb42bRpk95//33VrFnTZbx///767rvvNH/+fAUEBKh37956+OGHtWbNmmzvAwAAAAAAAHlHlkKpwMBAl3mkMmIYhmw2m1JTU7NVwMWLF9W5c2d9+OGHev31183x2NhYffzxx5o9e7aaN28uSZoxY4aqVKmi9evX6+67787WfgAAAAAAAJB3ZCmUWrly5S0roFevXmrTpo0iIyNdQqktW7YoOTlZkZGR5ljlypVVpkwZrVu3LtNQKjExUYmJiebttLO8UlJSlJKSIunKPFh2u11Op1NOp9NcNm08NTVVV1/VmNm4w+GQzWYzt3v1uKR0AV1m4x4eHjIMw2XcZrPJ4XCkqzGzcXqiJ3qiJ3qiJ3qiJ3qiJ3qiJ3qiJ3qip7zQ07V1ZSZLoVSTJk2ytLHsmjNnjn777Tdt2rQp3X0nTpyQp6enAgMDXcaLFSumEydOZLrN0aNHa9SoUenGt27dKl9fX0lScHCwypcvr+joaJ0+fdpcplSpUipVqpT27t2r2NhYc7xcuXIKCQnRjh07dPnyZXO8cuXKCgwM1NatW12ewJo1a8rT01ObN292qaFu3bpKSkrS77//bo45HA7Vq1dPsbGx2r17tznu7e2tWrVq6cyZM9q/f785HhAQoCpVqujYsWM6cuSIOU5P9ERP9ERP9ERP9ERP9ERP9ERP9ERP9JQXeoqPj1dW3PRE55cuXdKhQ4eUlJTkMn7tvFCZOXz4sOrWravly5eb6zRt2lS1a9fWxIkTNXv2bHXv3t3lrCdJql+/vpo1a6axY8dmuN2MzpQqXbq0zp49a8539U9JJumJnuiJnuiJnuiJnuiJnuiJnuiJnuiJnqzuKS4uTkFBQTec6DzbodTp06fVvXt3LVmyJMP7r20wMwsXLtRDDz1kPjBp69psNtntdi1btkyRkZE6f/68y9lSYWFh6tevn/r375+l/fDrewAAAAAAANbJahZjz+6G+/Xrp5iYGG3YsEHe3t5aunSpPvnkE1WoUEHffPNNlrfTokUL/fHHH9q2bZv5V7duXXXu3Nn87wIFCmjFihXmOnv27NGhQ4cUERGR3bIBAAAAAACQh2RpTqmr/fTTT1q0aJHq1q0ru92usLAwtWzZUv7+/ho9erTatGmTpe0UKlRI1atXdxnz9fVVUFCQOd6jRw8NGDBARYoUkb+/v/r06aOIiAh+eQ8AAAAAAOA2l+1QKj4+XiEhIZKkwoUL6/Tp06pYsaJq1Kih3377LVeLmzBhgux2uzp06KDExERFRUVp6tSpuboPAAAAAAAAWC/boVSlSpW0Z88ehYeHq1atWnr//fcVHh6u6dOnq0SJEjkqZtWqVS63CxYsqClTpmjKlCk52i4AAAAAAADylmyHUn379tXx48clSSNGjFCrVq00a9YseXp6aubMmbldHwAAAAAAAPKhbP/63rUuXbqk3bt3q0yZMipatGhu1ZVr+PU9AAAAAAAA69yyX9/79ddfXW77+PjorrvuypOBFAAAAAAAAPKmbIdSzZs3V9myZfXSSy9p586dt6ImAAAAAAAA5HPZDqWOHTumgQMHavXq1apevbpq166tt956S0eOHLkV9QEAAAAAACAfytGcUtHR0Zo9e7a++OIL7d69W/fee69++umn3Kwvx5hTCgAAAAAAwDpZzWJyPNF5amqqlixZoldeeUW///67UlNTc7K5XEcoBQAAAAAAYJ1bNtF5mjVr1ui5555TiRIl9MQTT6h69er67rvvbnZzAAAAAAAA+AfxyO4KQ4cO1Zw5c3Ts2DG1bNlSkyZNUrt27eTj43Mr6gMAAAAAAEA+lO1Q6ueff9bgwYPVsWNHFS1a9FbUBAAAAAAAgHwu26HUmjVrbkUdAAAAAAAA+Ae56TmlAAAAAAAAgJtFKAUAAAAAAADLEUoBAAAAAADAcoRSAAAAAAAAsFy2Q6mnn35aq1atugWlAAAAAAAA4J8i26HU6dOn1apVK5UuXVqDBw/W9u3bb0VdAAAAAAAAyMeyHUotWrRIx48f1yuvvKJNmzbprrvuUrVq1fTmm2/qwIEDt6BEAAAAAAAA5Dc2wzCMnGzgyJEj+uKLL/Tf//5X+/btU0pKSm7Vlivi4uIUEBCg2NhY+fv7u7scAAAAAACAfC2rWUyOJjpPTk7W5s2btWHDBh04cEDFihXLyeYAAAAAAADwD3FTodTKlSvVs2dPFStWTN26dZO/v78WL16sI0eO5HZ9AAAAAAAAyIc8srtCyZIlde7cObVq1UoffPCB2rZtKy8vr1tRGwAAAAAAAPKpbIdSI0eO1KOPPqrAwMBbUA4AAAAAAAD+CbIdSvXs2fNW1AEAAAAAAIB/kBxNdA4AAAAAAADcDEIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDl3BpKTZs2TTVr1pS/v7/8/f0VERGhJUuWmPcnJCSoV69eCgoKkp+fnzp06KCTJ0+6sWIAAAAAAADkBreGUqVKldKYMWO0ZcsWbd68Wc2bN1e7du30559/SpL69++vb7/9VvPnz9fq1at17NgxPfzww+4sGQAAAAAAALnAZhiG4e4irlakSBG99dZbeuSRRxQcHKzZs2frkUcekSTt3r1bVapU0bp163T33XdnaXtxcXEKCAhQbGys/P39b2XpAAAAAAAA/3hZzWI8LKzpulJTUzV//nzFx8crIiJCW7ZsUXJysiIjI81lKleurDJlylw3lEpMTFRiYqJ5Oy4uTpKUkpKilJQUSZLdbpfdbpfT6ZTT6TSXTRtPTU3V1VldZuMOh0M2m83c7tXjaT1lZdzDw0OGYbiM22w2ORyOdDVmNk5P9ERP9ERP9ERP9ERP9ERP9ERP9ERP9JQXerq2rsy4PZT6448/FBERoYSEBPn5+enrr79W1apVtW3bNnl6eiowMNBl+WLFiunEiROZbm/06NEaNWpUuvGtW7fK19dXkhQcHKzy5csrOjpap0+fNpcpVaqUSpUqpb179yo2NtYcL1eunEJCQrRjxw5dvnzZHK9cubICAwO1detWlyewZs2a8vT01ObNm11qqFu3rpKSkvT777+bYw6HQ/Xq1VNsbKx2795tjnt7e6tWrVo6c+aM9u/fb44HBASoSpUqOnbsmI4cOWKO0xM90RM90RM90RM90RM90RM90RM90RM95YWe4uPjlRVuv3wvKSlJhw4dUmxsrBYsWKCPPvpIq1ev1rZt29S9e3eXs54kqX79+mrWrJnGjh2b4fYyOlOqdOnSOnv2rHnK2D8lmaQneqIneqIneqIneqIneqIneqIneqInerK6p7i4OAUFBd3w8j23h1LXioyMVPny5fXYY4+pRYsWOn/+vMvZUmFhYerXr5/69++fpe0xpxQAAAAAAIB1sprFuPXX9zLidDqVmJioOnXqqECBAlqxYoV53549e3To0CFFRES4sUIAAAAAAADklFvnlBo6dKhat26tMmXK6MKFC5o9e7ZWrVqlZcuWKSAgQD169NCAAQNUpEgR+fv7q0+fPoqIiMjyL+8BAAAAAAAgb3JrKHXq1Cl16dJFx48fV0BAgGrWrKlly5apZcuWkqQJEybIbrerQ4cOSkxMVFRUlKZOnerOkgEAAAAAAJAL8tycUrmNOaUAAAAAAACsc9vOKQUAAAAAAID8j1AKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5QikAAAAAAABYjlAKAAAAAAAAliOUAgAAAAAAgOUIpQAAAAAAAGA5t4ZSo0ePVr169VSoUCGFhISoffv22rNnj8syCQkJ6tWrl4KCguTn56cOHTro5MmTbqoYAAAAAAAAucGtodTq1avVq1cvrV+/XsuXL1dycrLuu+8+xcfHm8v0799f3377rebPn6/Vq1fr2LFjevjhh91YNQAAAAAAAHLKZhiG4e4i0pw+fVohISFavXq17r33XsXGxio4OFizZ8/WI488IknavXu3qlSponXr1unuu+++4Tbj4uIUEBCg2NhY+fv73+oWAAAAAAAA/tGymsXkqTmlYmNjJUlFihSRJG3ZskXJycmKjIw0l6lcubLKlCmjdevWuaVGAAAAAAAA5JyHuwtI43Q61a9fPzVs2FDVq1eXJJ04cUKenp4KDAx0WbZYsWI6ceJEhttJTExUYmKieTsuLk6SlJKSopSUFEmS3W6X3W6X0+mU0+k0l00bT01N1dUnkGU27nA4ZLPZzO1ePS5JqampWRr38PCQYRgu4zabTQ6HI12NmY3TEz3REz3REz3REz3REz3REz3REz3REz3lhZ6urSszeSaU6tWrl3bs2KFff/01R9sZPXq0Ro0alW5869at8vX1lSQFBwerfPnyio6O1unTp81lSpUqpVKlSmnv3r3mWVuSVK5cOYWEhGjHjh26fPmyOV65cmUFBgZq69atLk9gzZo15enpqc2bN7vUULduXSUlJen33383xxwOh+rVq6fY2Fjt3r3bHPf29latWrV05swZ7d+/3xwPCAhQlSpVdOzYMR05csQcpyd6oid6oid6oid6oid6oid6oid6oid6ygs9XT1X+PXkiTmlevfurUWLFunnn39W2bJlzfGffvpJLVq00Pnz513OlgoLC1O/fv3Uv3//dNvK6Eyp0qVL6+zZs+Z1jP+UZJKe6Ime6Ime6Ime6Ime6Ime6Ime6Ime6MnqnuLi4hQUFHTDOaXcGkoZhqE+ffro66+/1qpVq1ShQgWX+9MmOv/iiy/UoUMHSdKePXtUuXJlJjoHAAAAAADIg7Kaxbj18r1evXpp9uzZWrRokQoVKmTOExUQECBvb28FBASoR48eGjBggIoUKSJ/f3/16dNHERERWQqkAAAAAAAAkDe59Uwpm82W4fiMGTPUrVs3SVJCQoIGDhyoL774QomJiYqKitLUqVNVvHjxLO2DM6UAAAAAAACsk9UsJk/MKXUrEUoBAAAAAABYJ6tZjN3CmgAAAAAAAABJhFIAAAAAAABwA0IpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJZzayj1888/q23btgoNDZXNZtPChQtd7jcMQ8OHD1eJEiXk7e2tyMhI7du3zz3FAgAAAAAAINe4NZSKj49XrVq1NGXKlAzvHzdunN59911Nnz5dGzZskK+vr6KiopSQkGBxpQAAAAAAAMhNHu7ceevWrdW6desM7zMMQxMnTtSwYcPUrl07SdKnn36qYsWKaeHCherUqZOVpQIAAAAAACAX5dk5paKjo3XixAlFRkaaYwEBAWrQoIHWrVvnxsoAAAAAAACQU249U+p6Tpw4IUkqVqyYy3ixYsXM+zKSmJioxMRE83ZcXJwkKSUlRSkpKZIku90uu90up9Mpp9NpLps2npqaKsMwbjjucDhks9nM7V49LkmpqalZGvfw8JBhGC7jNptNDocjXY2ZjdMTPdETPdETPdETPdETPdETPdETPdETPeWFnq6tKzN5NpS6WaNHj9aoUaPSjW/dulW+vr6SpODgYJUvX17R0dE6ffq0uUypUqVUqlQp7d27V7GxseZ4uXLlFBISoh07dujy5cvmeOXKlRUYGKitW7e6PIE1a9aUp6enNm/e7FJD3bp1lZSUpN9//90cczgcqlevnmJjY7V7925z3NvbW7Vq1dKZM2e0f/9+czwgIEBVqlTRsWPHdOTIEXOcnuiJnuiJnuiJnuiJnuiJnuiJnuiJnugpL/QUHx+vrLAZV0dtbmSz2fT111+rffv2kqT9+/erfPny2rp1q2rXrm0u16RJE9WuXVuTJk3KcDsZnSlVunRpnT17Vv7+/pL+OckkPdETPdETPdETPdETPdETPdETPdETPdGT1T3FxcUpKChIsbGxZhaTkTwbShmGodDQUA0aNEgDBw6UdKWpkJAQzZw5M8sTncfFxSkgIOCGDwQAAAAAAAByLqtZjFsv37t48aL++usv83Z0dLS2bdumIkWKqEyZMurXr59ef/11VahQQWXLltUrr7yi0NBQM7gCAAAAAADA7cmtodTmzZvVrFkz8/aAAQMkSV27dtXMmTP1wgsvKD4+Xv/+978VExOjRo0aaenSpSpYsKC7SgYAAAAAAEAuyDOX790qXL4HAAAAAABgnaxmMXYLawIAAAAAAAAkEUoBAAAAAADADQilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5TzcXQAAIHuaFGrj7hKybfWF79xdAgAAAIA8hlAKAAAAAHDL8Q9rAK7F5XsAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsxpxQAAAAAABm477FX3V1Ctv0wd7i7SwCyjFAKAHDL8YEOAAAAwLW4fA8AAAAAAACW40wpAAAAmG63n2zn59oBALh9caYUAAAAAAAALMeZUgAAAAAA5BO1Xx/p7hKybduwke4uAW5CKHUL3G6nvUuc+g4AAAAAAKzF5XsAAAAAAACwHGdKAQCQgdvx1PfGEefdXUK2TG4xyd0lAACAPKDPir7uLiHb+ByTO26LUGrKlCl66623dOLECdWqVUuTJ09W/fr13V1WvnLfY6+6u4Rs+2HucHeXAAAA3Ox2/AxzqobT3SVk2+0Wekt8YQSA20GeD6Xmzp2rAQMGaPr06WrQoIEmTpyoqKgo7dmzRyEhIe4uD27EWQzW4AMdAAAAAOBWyPNzSo0fP149e/ZU9+7dVbVqVU2fPl0+Pj7673//6+7SAAAAAAAAcJPydCiVlJSkLVu2KDIy0hyz2+2KjIzUunXr3FgZAAAAAAAAciJPX7535swZpaamqlixYi7jxYoV0+7duzNcJzExUYmJiebt2NhYSdK5c+eUkpIi6UqwZbfb5XQ65XT+75r+tPHU1FQZhnHDcYfDIZvNZm43TYqSJUPy8HS4jielSjbJo0D6cZvNJkeB/2WEhiGlJqfKZrfJ4ZF+3O6wye7437gz1ZAz1Sm7wy67w3bVuFPOVEOOAg7Z/jes1BSnDOf/xg3nlcfM6TRkGJLjqm1IUmqq8f89Z33cZpPs9qvGDSnVmfm43SbZrho3jCv12O02l9oNpyGnIdkSDV2911RDckrysMllPMWQDEkFXEvMdDzZuLK+RxbGjf/fjl2SIwvjyReTZNgM2QybXKs0/n/82pw443FDTsmmjMcl2ZTFcZtTMjIeT6vx3LlzV9a12eRwODJ939yq95PDceX9kpqamqVxDw8PGYbhMp5Z7bdtTwWclh8jzPFkpwzDSH98S0697nHP05noMm7FMcJhdz0YmMe3zMavOY45E5yWHyOcunIsc9hc/9Uos+PbtePJF5P/f/vWHSNuPG5ketyLi4tz//tJ+fAYkcOeVOB/41YdI3L02Sg10S3HiJx8NrInXnmMrT5GpLmZz0ZJFxMtP0bk9LPRjjXNZLNdeX8ZhuvXnszG7fYUGYZNhnH1a9KQ3Z56nXG7jKvrsTlltznlNOzSVeM2m1M2m1NOp8OlV5stVTabIafTodAqX5njefUYkZPjXqpSrD9G5PCzUbrvSRYcI/5X/M19NlKiYfkxIqefjZIvJlt+jDDHdXOfjXasaWYubdUxIuPxrB3fbLYUlaq22LJjRFxc3P/X8b9jQEZsxo2WcKNjx46pZMmSWrt2rSIiIszxF154QatXr9aGDRvSrTNy5EiNGjXKyjIBAAAAAABwjcOHD6tUqVKZ3p+nz5QqWrSoHA6HTp486TJ+8uRJFS9ePMN1hg4dqgEDBpi3nU6nzp07p6CgINlstgzXAdLExcWpdOnSOnz4sPz9/d1dDoB8hmMMgFuJYwyAW4ljDLLDMAxduHBBoaGh110uT4dSnp6eqlOnjlasWKH27dtLuhIyrVixQr17985wHS8vL3l5ebmMBQYG3uJKkd/4+/tzoAVwy3CMAXArcYwBcCtxjEFWBQQE3HCZPB1KSdKAAQPUtWtX1a1bV/Xr19fEiRMVHx+v7t27u7s0AAAAAAAA3KQ8H0o99thjOn36tIYPH64TJ06odu3aWrp0abrJzwEAAAAAAHD7yPOhlCT17t0708v1gNzk5eWlESNGpLsEFAByA8cYALcSxxgAtxLHGNwKefrX9wAAAAAAAJA/2d1dAAAAAAAAAP55CKUAAAAAAABgOUIpAAAAwE3Cw8M1ceJEd5cBAIBbEEoBmbDZbFq4cOFNr9+0aVP169cv1+oBkD+MHDlStWvXvun1V61aJZvNppiYmFyrCUD+wecXAFl1M59Jchqkd+vWTe3bt7/p9ZH/EEoBAJBLUlNT5XQ63V0GAAAAcFsglEKetmDBAtWoUUPe3t4KCgpSZGSk4uPjzYR91KhRCg4Olr+/v5599lklJSWZ6y5dulSNGjVSYGCggoKC9MADD+jvv//OlbrOnj2rxx9/XCVLlpSPj49q1KihL774wry/W7duWr16tSZNmiSbzSabzaYDBw6YZzisWLFCdevWlY+Pj+655x7t2bMnV+oCkD1NmzZV79691bt3bwUEBKho0aJ65ZVXlPbDtOfPn1eXLl1UuHBh+fj4qHXr1tq3b5+5/syZMxUYGKhvvvlGVatWlZeXlw4dOpSjmj777DPVrVtXhQoVUvHixfXEE0/o1KlTkqQDBw6oWbNmkqTChQvLZrOpW7duZi/PP/+8XnjhBRUpUkTFixfXyJEjc1QLgJy7cOGCOnfuLF9fX5UoUUITJky47tlIu3fvVqNGjVSwYEFVrVpVP/74Y47PfkrD5xcg/3E6nRo3bpzuuOMOeXl5qUyZMnrjjTckSUOGDFHFihXl4+OjcuXK6ZVXXlFycrKkK59hRo0ape3bt5vv95kzZ+aoltTUVPXo0UNly5aVt7e3KlWqpEmTJpn3jxw5Up988okWLVpk7nPVqlU6cOCAbDabvvrqKzVr1kw+Pj6qVauW1q1bl6N6cHsglEKedfz4cT3++ON66qmntGvXLq1atUoPP/yw+WVxxYoV5vgXX3yhr776SqNGjTLXj4+P14ABA7R582atWLFCdrtdDz30UK6cxZCQkKA6derou+++044dO/Tvf/9b//rXv7Rx40ZJ0qRJkxQREaGePXvq+PHjOn78uEqXLm2u//LLL+udd97R5s2b5eHhoaeeeirHNQG4OZ988ok8PDy0ceNGTZo0SePHj9dHH30k6coXtM2bN+ubb77RunXrZBiG7r//fvMDnSRdunRJY8eO1UcffaQ///xTISEhOaonOTlZr732mrZv366FCxfqwIEDZvBUunRpffnll5KkPXv26Pjx4y4f9j755BP5+vpqw4YNGjdunF599VUtX748R/UAyJkBAwZozZo1+uabb7R8+XL98ssv+u233zJcNjU1Ve3bt5ePj482bNigDz74QC+//HKu1cLnFyD/GTp0qMaMGaNXXnlFO3fu1OzZs1WsWDFJUqFChTRz5kzt3LlTkyZN0ocffqgJEyZIkh577DENHDhQ1apVM9/vjz32WI5qcTqdKlWqlObPn6+dO3dq+PDheumllzRv3jxJ0qBBg9SxY0e1atXK3Oc999xjrv/yyy9r0KBB2rZtmypWrKjHH39cKSkpOaoJtwEDyKO2bNliSDIOHDiQ7r6uXbsaRYoUMeLj482xadOmGX5+fkZqamqG2zt9+rQhyfjjjz+ytH9Jxtdff53letu0aWMMHDjQvN2kSROjb9++LsusXLnSkGT8+OOP5th3331nSDIuX76c5X0ByB1NmjQxqlSpYjidTnNsyJAhRpUqVYy9e/cakow1a9aY9505c8bw9vY25s2bZxiGYcyYMcOQZGzbti3L+xwxYoRRq1atLC+/adMmQ5Jx4cIFwzD+dxw5f/58ul4aNWrkMlavXj1jyJAhWd4XgNwVFxdnFChQwJg/f745FhMTY/j4+JifEcLCwowJEyYYhmEYS5YsMTw8PIzjx4+byy9fvjxbn0n4/AL8c8TFxRleXl7Ghx9+mKXl33rrLaNOnTrm7ex+JjEM12NWVvTq1cvo0KGDebtr165Gu3btXJaJjo42JBkfffSROfbnn38akoxdu3Zlqz7cfjhTCnlWrVq11KJFC9WoUUOPPvqoPvzwQ50/f97lfh8fH/N2RESELl68qMOHD0uS9u3bp8cff1zlypWTv7+/wsPDJSnHl9ZIV/4l87XXXlONGjVUpEgR+fn5admyZVneds2aNc3/LlGihCSZl+cAsNbdd98tm81m3o6IiNC+ffu0c+dOeXh4qEGDBuZ9QUFBqlSpknbt2mWOeXp6urync2rLli1q27atypQpo0KFCqlJkyaSsnbsuraOEiVKcGwB3Gj//v1KTk5W/fr1zbGAgABVqlQpw+X37Nmj0qVLq3jx4ubY1evmFJ9fgPxl165dSkxMVIsWLTK8f+7cuWrYsKGKFy8uPz8/DRs2LFe+C13PlClTVKdOHQUHB8vPz08ffPABxxhcF6EU8iyHw6Hly5dryZIlqlq1qiZPnqxKlSopOjo6S+u3bdtW586d04cffqgNGzZow4YNkuQy79TNeuuttzRp0iQNGTJEK1eu1LZt2xQVFZXlbRcoUMD877Qvw0yODNyevL29XUKtnIiPj1dUVJT8/f01a9Ysbdq0SV9//bWkrB27rj62SFeOLxxbAKTh8wuQv3h7e2d637p169S5c2fdf//9Wrx4sbZu3aqXX345V74LZWbOnDkaNGiQevTooR9++EHbtm1T9+7dOcbgujzcXQBwPTabTQ0bNlTDhg01fPhwhYWFmV/Qtm/frsuXL5sH4/Xr18vPz0+lS5fW2bNntWfPHn344Ydq3LixJOnXX3/NtbrWrFmjdu3a6cknn5R05WC5d+9eVa1a1VzG09NTqampubZPALdGWmCdZv369apQoYKqVq2qlJQUbdiwwZzvIO3YcvV7PTft3r1bZ8+e1ZgxY8x5XDZv3uyyjKenpyRxfAFuA+XKlVOBAgW0adMmlSlTRpIUGxurvXv36t577023fKVKlXT48GGdPHnSnBNm06ZNuVYPn1+A/KVChQry9vbWihUr9PTTT7vct3btWoWFhbnMS3fw4EGXZXL7/b5mzRrdc889eu6558yxa39oimMMrkUohTxrw4YNWrFihe677z6FhIRow4YNOn36tKpUqaLff/9dSUlJ6tGjh4YNG6YDBw5oxIgR6t27t+x2uwoXLqygoCB98MEHKlGihA4dOqQXX3wx2zVER0dr27ZtLmMVKlRQhQoVtGDBAq1du1aFCxfW+PHjdfLkSZcPdeHh4dqwYYMOHDggPz8/FSlSJKcPCYBb4NChQxowYICeeeYZ/fbbb5o8ebLeeecdVahQQe3atVPPnj31/vvvq1ChQnrxxRdVsmRJtWvXLkf7vHz5crpjS6FChVSmTBl5enpq8uTJevbZZ7Vjxw699tprLsuFhYXJZrNp8eLFuv/+++Xt7S0/P78c1QPg1ihUqJC6du2qwYMHq0iRIgoJCdGIESNkt9szPMOyZcuWKl++vLp27apx48bpwoULGjZsmCRl64xMPr8A/wwFCxbUkCFD9MILL8jT01MNGzbU6dOn9eeff6pChQo6dOiQ5syZo3r16um7774z/3E/TXh4uHm8KFWqlAoVKiQvL68b7vfo0aPpjjFhYWGqUKGCPv30Uy1btkxly5bVZ599pk2bNqls2bIu+1y2bJn27NmjoKAgBQQE5MpjgduYuye1AjKzc+dOIyoqyggODja8vLyMihUrGpMnTzYM438T5A0fPtwICgoy/Pz8jJ49exoJCQnm+suXLzeqVKlieHl5GTVr1jRWrVqV7YlCM/r75ZdfjLNnzxrt2rUz/Pz8jJCQEGPYsGFGly5dXCbt27Nnj3H33Xcb3t7ehiQjOjo6wwmKt27dat4PwFpNmjQxnnvuOePZZ581/P39jcKFCxsvvfSSOfH5uXPnjH/9619GQECA4e3tbURFRRl79+41158xY4YREBCQrX2OGDEiw2NLixYtDMMwjNmzZxvh4eGGl5eXERERYXzzzTeGJGPr1q3mNl599VWjePHihs1mM7p27Wr2cu3kxO3atTPvB+AecXFxxhNPPGH4+PgYxYsXN8aPH2/Ur1/fePHFFw3DSD9p8K5du4yGDRsanp6eRuXKlY1vv/3WkGQsXbo0S/vj8wvwz5Kammq8/vrrRlhYmFGgQAGjTJkyxptvvmkYhmEMHjzY/K702GOPGRMmTHD53JKQkGB06NDBCAwMNCQZM2bMuOH+wsLCMjzGfPbZZ0ZCQoLRrVs3IyAgwAgMDDT+85//GC+++KLLZOqnTp0yWrZsafj5+RmSjJUrV5oTnV/9Wef8+fPm/cjfbIZhGLc49wJyXbdu3RQTE6OFCxe6uxQAt7GmTZuqdu3amjhxortLAfAPER8fr5IlS+qdd95Rjx49brj8mjVr1KhRI/31118qX768BRUCAGAdLt8DAAAAbpGtW7dq9+7dql+/vmJjY/Xqq69KUqaXAX/99dfy8/NThQoV9Ndff6lv375q2LAhgRQAIF/i1/fwj/Tmm2/Kz88vw7/WrVu7uzwAt7HMji1+fn765Zdf3F0eADd4++23VatWLUVGRio+Pl6//PKLihYtmuGyFy5cUK9evVS5cmV169ZN9erV06JFiyTx+QXArTVr1qxMjzHVqlVzd3nIp7h8D/9I586d07lz5zK8z9vbWyVLlrS4IgD5xV9//ZXpfSVLlrzuzzcDwPXw+QXArXThwgWdPHkyw/sKFCigsLAwiyvCPwGhFAAAAAAAACzH5XsAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAABABrp166b27du7uwwAAIB8i1AKAAAAAAAAliOUAgAAyKbx48erRo0a8vX1VenSpfXcc8/p4sWL5v0zZ85UYGCgli1bpipVqsjPz0+tWrXS8ePHzWVSUlL0/PPPKzAwUEFBQRoyZIi6du3qcnZWeHi4Jk6c6LLv2rVra+TIkVmuRZI+/PBDlS5dWj4+PnrooYc0fvx4BQYGuiyzaNEi3XXXXSpYsKDKlSunUaNGKSUlJcePFQAAQGYIpQAAALLJbrfr3Xff1Z9//qlPPvlEP/30k1544QWXZS5duqS3335bn332mX7++WcdOnRIgwYNMu8fO3asZs2apRkzZmjNmjWKi4vTwoULc72WNWvW6Nlnn1Xfvn21bds2tWzZUm+88YbLNn755Rd16dJFffv21c6dO/X+++9r5syZ6ZYDAADITTbDMAx3FwEAAJDXdOvWTTExMVkKihYsWKBnn31WZ86ckXTlTKnu3bvrr7/+Uvny5SVJU6dO1auvvqoTJ05IkooXL65BgwaZQVVqaqrKlSunO++809xneHi4+vXrp379+pn7ql27ttq3b+9yttT1aunUqZMuXryoxYsXm8s8+eSTWrx4sWJiYiRJkZGRatGihYYOHWou8/nnn+uFF17QsWPHbtg/AADAzfBwdwEAAAC3mx9//FGjR4/W7t27FRcXp5SUFCUkJOjSpUvy8fGRJPn4+JiBlCSVKFFCp06dkiTFxsbq5MmTql+/vnm/w+FQnTp15HQ6c7WWPXv26KGHHnJZp379+i4h1fbt27VmzRqXM6NSU1PT9QQAAJCbuHwPAAAgGw4cOKAHHnhANWvW1JdffqktW7ZoypQpkqSkpCRzuQIFCrisZ7PZlN0T1O12e7p1kpOTs13LjVy8eFGjRo3Stm3bzL8//vhD+/btU8GCBbNVMwAAQFZxphQAAEA2bNmyRU6nU++8847s9iv/vjdv3rxsbSMgIEDFihXTpk2bdO+990q6cmbSb7/9ptq1a5vLBQcHu0yOHhcXp+jo6GzVUqlSJW3atMll7Nrbd911l/bs2aM77rgjW30AAADkBKEUAABAJmJjY7Vt2zaXsaJFiyo5OVmTJ09W27ZttWbNGk2fPj3b2+7Tp49Gjx6tO+64Q5UrV9bkyZN1/vx52Ww2c5nmzZtr5syZatu2rQIDAzV8+HA5HA7z/jvuuOOGtfTp00f33nuvxo8fr7Zt2+qnn37SkiVLXPYzfPhwPfDAAypTpoweeeQR2e12bd++XTt27NDrr7+e7d4AAACygsv3AAAAMrFq1SrdeeedLn+fffaZxo8fr7Fjx6p69eqaNWuWRo8ene1tDxkyRI8//ri6dOmiiIgI+fn5KSoqyuVyuaFDh6pJkyZ64IEH1KZNG7Vv395lnqpatWrdsJaGDRtq+vTpGj9+vGrVqqWlS5eqf//+LvuJiorS4sWL9cMPP6hevXq6++67NWHCBIWFhd3EowYAAJA1/PoeAABAHuB0OlWlShV17NhRr7322i3dV8+ePbV79+7/a+eOTR0EozAMH9K6RbqAO1i5hLUjZAqxErHWKQSxS5clQmawsvJucCFg/jTPs8DXv3BOPB6Pr+4AAPzH+R4AwA+83+9YliWKooh936Pv+3i9XlFV1elbbdtGWZaRZVnM8xzTNMUwDKfvAAB8QpQCAPiBy+US4zjG/X6P4zgiz/NY1zVut9vpW8/nM5qmiW3b4nq9Rtd1Udf16TsAAJ9wvgcAAABAch6dAwAAAJCcKAUAAABAcqIUAAAAAMmJUgAAAAAkJ0oBAAAAkJwoBQAAAEByohQAAAAAyYlSAAAAACQnSgEAAACQ3B9Kd0QnIyWNHgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAdnlJREFUeJzt3Xd0VOXaxuF7ZtITkkBIAgESipTQlWZEpQUDIoJyVBAVFPF4BJRql2KjqBRRsB5QilJUUGkiAgoCAgKKSJPQhNCTQCBtZn9/8GUOQxLIkLAnxN+1VtZy3tnleWZPtpObvd+xGIZhCAAAAAAAADCR1dMFAAAAAAAA4J+HUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoA8I+3YsUKWSwWrVixwtOlFFsWi0XDhw/3dBnIR8uWLdWyZUtPl+ExBw4ckJ+fn1avXu3pUtwydepUWSwW7d2719OloIj07NlTQUFBl13uxIkTCgwM1MKFC02oCgCKL0IpALjGWCyWAv2YEbDkt+9Ro0Zd9X0DJdnChQv/MSFgz5498zyP1KpVq8DbePnll9WsWTM1b978KlZaPJ06dUpeXl6aPXu2p0sptr788kvdd999qlq1qgICAlSzZk0NGjRIycnJBVr/wIEDGjFihJo2barSpUurbNmyatmypb7//vsrriksLEyPPvqoXnrppSveBgCUBF6eLgAA4J5p06a5PP7000+1dOnSXOOxsbGm1NO2bVs99NBDLmPXX3+9KfsGSqqFCxfq3Xff/ccEU76+vvroo49cxkJCQgq07rFjx/TJJ5/ok08+uRqlFXtLliyRxWLRbbfd5ulSiq3HHntMUVFReuCBBxQdHa3ff/9d77zzjhYuXKhff/1V/v7+l1x//vz5Gj16tDp37qwePXooOztbn376qdq2bav//ve/evjhh6+orscff1xvv/22fvjhB7Vu3fqKtgEA1zpCKQC4xjzwwAMuj9euXaulS5fmGjdLjRo1PLZvFJ309HT5+PjIauUiahQth8OhzMxM+fn55buMl5fXFZ9Hpk+fLi8vL3Xs2PFKS7ymLVy4UM2bN1doaKinSym25s6dm+v21kaNGqlHjx6aMWOGHn300Uuu36pVK+3fv19ly5Z1jj3++ONq2LChhg4desWhVGxsrOrWraupU6cSSgH4x+KTJwCUQGlpaRo0aJAqVaokX19f1axZU2+++aYMw3BZzmKxqG/fvpoxY4Zq1qwpPz8/NWrUSD/++KNb+zt37pzS09MLvPzcuXNlsVi0cuXKXM+9//77slgs2rp1a57rbtiwQRaLJc+rInKuGPj2228lSfv27dMTTzyhmjVryt/fX2FhYbrnnnsKNH9L5cqV1bNnz1zjec3dk5GRoWHDhum6666Tr6+vKlWqpKeffloZGRkuyy1dulQ333yzQkNDFRQUpJo1a+r555+/bC3uHKe///5bjzzyiCIjI+Xr66s6derov//9r8syOXNoff7553rxxRdVoUIFBQQEKDU19bK15Cjoa5szZ87q1as1cOBAhYeHKzAwUHfddZeOHTvmsqzD4dDw4cMVFRWlgIAAtWrVStu2bct1LIYPHy6LxZKrprzm55k/f746dOigqKgo+fr6qlq1anrllVdkt9tzrf/uu++qatWq8vf3V9OmTfXTTz8V6njn5aefftI999yj6Oho57oDBgzQuXPnnMv07NlT7777riTXW2TdkZmZqaFDh6pRo0YKCQlRYGCgbrnlFi1fvty5jGEYqly5sjp16pRr/fT0dIWEhOjf//63231f+H6tU6eOfH19tXjx4svWbLfb3XoP5pg3b56aNWuW5zw+BT2mR48eVa9evRQZGSk/Pz81aNAgz3NMQc+t586d05NPPqmyZcuqVKlSuvPOO/X3338XeG62RYsW6ZZbblFgYKBKlSqlDh066I8//si1nMPh0OLFi9WhQ4cr2rc754vZs2drxIgRqlChgkqVKqV//etfSklJUUZGhvr376+IiAgFBQXp4Ycfzvc9MWfOHNWuXVv+/v6Ki4vT77//Lun8ef+6666Tn5+fWrZsmes8UpDfm0vJa761u+66S5L0559/Xnb9OnXquARS0vmr+26//XYdPHhQp0+fzrXOnj17lJCQoMDAQEVFRenll1/O9T6Rzl9t/M033+T5HAD8E3ClFACUMIZh6M4779Ty5cvVq1cvNWzYUEuWLNGQIUP0999/a9y4cS7Lr1y5UrNmzdKTTz4pX19fTZo0Se3atdMvv/yiunXrXnZ/U6dO1aRJk2QYhmJjY/Xiiy/q/vvvv+Q6HTp0UFBQkGbPnq0W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pCNHjmj16tV6/fXXC7Sf++67T6+99pqOHz+uUqVK6euvv1a3bt1croro16+fpkyZov79+ysuLk4hISGyWCzq2rXrZcOg/P5AsNvtstlszscOh0P16tXT2LFj81w+5/Xw9/fXjz/+qOXLl2vBggVavHixZs2apdatW+u7775z2eaVyOnngQceyDXXVo769eu7PL7Sq6Qk91/b/Pq7OEwoiEsdmwslJyerRYsWCg4O1ssvv6xq1arJz89Pv/76q5555pkrumKtoMc7v/ratm2rkydP6plnnlGtWrUUGBiov//+Wz179ryievIzffp09ezZU507d9aQIUMUEREhm82mkSNH6q+//nJZtmvXrhowYIBmzJih559/XtOnT1fjxo1Vs2ZN5zLu9l2Y91bO+mFhYZc9j4SFhUlyDTCuZTnvgWnTpqlcuXK5nr/w/LZo0SL5+fmpVatWV7wfd84X+f0OF/R3+0rXL+jvzaxZs3J9C97FNWzZskV33nmn6tatq7lz57q8npLUpEkTl3+4GTZsWK7J4Xv37q1vv/1WM2bMKJJvzMt57xZmbisAuJYRSgFACRMTE6Pvv/9ep0+fdvkX/ZxblWJiYlyWz/mX+Qvt3LlTAQEBCg8Pd3v/ObdcFGTd++67T5988omWLVumP//8U4ZhXPbWvQvXHTFihL744gtFRkYqNTVVXbt2dVlm7ty56tGjh9566y3nWHp6upKTky+7/dKlS+e53L59+1z+BbxatWrasmWL2rRpc9l/6bZarWrTpo3atGmjsWPH6vXXX9cLL7yg5cuXKz4+/pLrFuQ4lSpVSna7/bLbKgqFeW3zkvO+3L17t8tVHidOnMgVOORcOZWcnOy8LVLKfRXgihUrdOLECX355Ze69dZbneOJiYn57vvCP/Czs7O1d+9elz/O3TneF/v999+1c+dOffLJJ3rooYec40uXLs21bGGvmpg7d66qVq2qL7/80mVbw4YNy7VsmTJl1KFDB82YMUPdu3fX6tWrNX78eJdlCtP3lci51fJy55Ho6Gj5+/sX6pjGxMTot99+k8PhcLla6uJzZkHPrTExMXI4HEpMTHS5wnH37t2X7btatWqSpIiIiMv+Hi9YsECtWrVyCQALuu/w8HBTzxeFUdDfm4SEhDx/l3L89ddfateunSIiIrRw4cI8J9GfMWOGy63nF1/tNGTIEE2ZMkXjx493ud3zYg6HQ3v27HG56nfnzp2SlOtKvZz3bs4VdwDwT8PtewBQwtx+++2y2+165513XMbHjRsni8Wi9u3bu4yvWbPGZe6QAwcOaP78+brtttsuefVOXrf2nT59WuPHj1fZsmVd5j/KT3x8vMqUKaNZs2Zp1qxZatq0aYFv+4mNjVW9evWc65YvX94leJDO/wv8xf9SPnHixMvOlSWd/+Nw7dq1yszMdI59++23OnDggMty9957r/7++299+OGHubZx7tw5paWlScr7yrGGDRtKUq6vT8/L5Y6TzWZTly5d9MUXX2jr1q251nf3VszLKcxrm5c2bdrIy8tLkydPdhm/+H0s/e8P9x9//NE5lpaWpk8++SRXjZLr1RKZmZmaNGmSy3KNGzdWWFiYPvzwQ5d5cGbMmJErECvo8c5LXvUYhqEJEybkWjYwMFCSrjjky2tf69at05o1a/Jc/sEHH9S2bds0ZMgQ2Wy2XAFvYfq+lPT0dJ0+fTrX+CuvvCLDMNSuXbtLru/t7a3GjRtrw4YNLuPuHNPbb79dSUlJLrcDZ2dna+LEiQoKCnLeJlbQc2vOt39e/D6bOHHiJXvJWTc4OFivv/66srKycj2f83uclZWlpUuX5vpWvYLu2+zzRWEU9PemfPnyio+Pd/nJkZSUpNtuu01Wq1VLlizJN+xs3ry5y/oXhlJvvPGG3nzzTT3//PPOb2S8lAvfJ4Zh6J133pG3t7fatGnjstzGjRsVEhKiOnXqXHabAFAScaUUAJQwHTt2VKtWrfTCCy9o7969atCggb777jvNnz9f/fv3d/5Bn6Nu3bpKSEjQk08+KV9fX+cfMyNGjLjkft59913NmzdPHTt2VHR0tA4fPqz//ve/2r9/v6ZNm+acZPlSvL29dffdd+vzzz9XWlqa3nzzTbd6ve+++zR06FD5+fmpV69eueaEueOOOzRt2jSFhISodu3aWrNmjb7//nvnLT+X8uijj2ru3Llq166d7r33Xv3111+aPn16rtfvwQcf1OzZs/X4449r+fLlat68uex2u7Zv367Zs2dryZIlaty4sV5++WX9+OOP6tChg2JiYnT06FFNmjRJFStW1M0333zZegpynEaNGqXly5erWbNm6t27t2rXrq2TJ0/q119/1ffff3/ZW6HcUZjXNi+RkZF66qmn9NZbb+nOO+9Uu3bttGXLFi1atEhly5Z1uTrntttuU3R0tHr16uUMUf773/8qPDxc+/fvdy530003qXTp0urRo4eefPJJWSwWTZs2LVeY5uPjo+HDh6tfv35q3bq17r33Xu3du1dTp05VtWrVXPZd0OOdl1q1aqlatWoaPHiw/v77bwUHB+uLL77I89aznFD3ySefVEJCQp5B0aXccccd+vLLL3XXXXepQ4cOSkxM1HvvvafatWvnOU9Ohw4dFBYWpjlz5qh9+/aKiIhweb4wfV9KUlKSrr/+enXr1k21atWSJC1ZskQLFy5Uu3bt1KlTp8tuo1OnTnrhhReUmpqq4OBgSe4d08cee0zvv/++evbsqY0bN6py5cqaO3eu84qxnKuiCnpubdSokbp06aLx48frxIkTuvHGG7Vy5UrnlTKXutIsODhYkydP1oMPPqgbbrhBXbt2db6vFyxYoObNm+udd97RqlWrlJqamiuUcmffZp4vCsOd35v8tGvXTnv27NHTTz+tVatWadWqVc7nIiMj1bZt20uu/9VXX+npp59W9erVFRsbq+nTp7s837ZtW0VGRjof+/n5afHixerRo4eaNWumRYsWacGCBXr++edzBWJLly5Vx44dmVMKwD+XSd/yBwC4SvL66vjTp08bAwYMMKKiogxvb2+jevXqxhtvvOH8evcckow+ffoY06dPN6pXr274+voa119/vbF8+fLL7ve7774z2rZta5QrV87w9vY2QkNDjdtuu81YtmyZW/UvXbrUkGRYLBbjwIEDbq27a9cuQ5IhyVi1alWu50+dOmU8/PDDRtmyZY2goCAjISHB2L59uxETE2P06NHDuVzOV55f3Pdbb71lVKhQwfD19TWaN29ubNiwwWjRooXL18kbxvmvjx89erRRp04dw9fX1yhdurTRqFEjY8SIEUZKSophGIaxbNkyo1OnTkZUVJTh4+NjREVFGd26dSvQ15G7c5yOHDli9OnTx6hUqZLh7e1tlCtXzmjTpo3xwQcf5Op3zpw5l933hTVc+HXyBX1tc77yfv369S7by+s1z87ONl566SWjXLlyhr+/v9G6dWvjzz//NMLCwozHH3/cZf2NGzcazZo1M3x8fIzo6Ghj7Nixzn1d+FXyq1evNm688UbD39/fiIqKMp5++mljyZIleR7vt99+24iJiTF8fX2Npk2bGqtXrzYaNWpktGvX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+qldu3aaPXu2JCkkJEQ+Pj4KCAhwXh2WXw15yczM1Keffqrrr79e9evX16pVq/TLL79ozpw5aty4sapXr64333xToaGhmjt3boG36y7mlAIAAAAAACVGamqqDh06pObNm7uMN2/ePNftaHFxcc7/9vLyUuPGjfXnn39KkurUqaN9+/ZJkm655RYtWrRIknTu3Dndcsstuv/++3OFXAXx+++/y263q0aNGi7jGRkZCgsLkyTZ7Xa9/vrrmj17tv7++29lZmYqIyNDAQEBbu8vLzExMQoPD3c+3rJli86cOePcf45z587pr7/+KpJ95oVQCgAAAAAA4CILFy5UVlaWJMnf39857uvrq/j4eH377bcaMmSIKlSo4NZ2z5w5I5vNpo0bN+a6uilncvY33nhDEyZM0Pjx41WvXj0FBgaqf//+yszMvOS2rVarDMNwGcvp4UKBgYG5aipfvrzLvFY5Lp6jqigRSgEAAAAAgBIjODhYUVFRWr16tVq0aOEcX716tZo2beqy7Nq1a3XrrbdKkrKzs7Vx40b17dtX0vmrifJitVo1bdo03X///WrVqpVWrFihqKioAtd3/fXXy2636+jRo7rlllvyXGb16tXq1KmTHnjgAUmSw+HQzp07Vbt2becyPj4+stvtLuuFh4fr9OnTSktLcwZPOXNGXcoNN9ygpKQkeXl5qXLlygXupbCYUwoAAAAAAJQoQ4YM0ejRozVr1izt2LFDzz77rDZv3qynnnrKZbl3331XX331lbZv364+ffro1KlTeuSRRy67fZvNphkzZqhBgwZq3bq1kpKSClxbjRo11L17dz300EP68ssvlZiYqF9++UUjR47UggULJEnVq1fX0qVL9fPPP+vPP//Uv//9bx05csRlO5UrV9a6deu0d+9eHT9+XA6HQ82aNVNAQICef/55/fXXX5o5c6amTp162Zri4+MVFxenzp0767vvvtPevXv1888/64UXXtCGDRsK3Ju7CKUAAAAAAECJ8uSTT2rgwIEaNGiQ6tWrp8WLF+vrr79W9erVXZYbNWqURo0apQYNGmjVqlX6+uuvVbZs2QLtw8vLS5999pnq1Kmj1q1b6+jRowWub8qUKXrooYc0aNAg1axZU507d9b69esVHR0tSXrxxRd1ww03KCEhQS1btlS5cuXUuXNnl20MHjxYNptNtWvXVnh4uPbv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VMWKFbVz506lpKQ4x6tWraqIiAht3bpV586dc47XqlVLoaGh2rRpk8svWv369eXj4+MyN5YkNW7cWJmZmfrtt9+cYzabTU2aNFFKSorL1zf6+/urQYMGOn78uPbs2eMcDwkJUWxsrA4dOqSDBw86x+mJnuiJnuiJnuiJnuiJnuiJnuiJnkpiTwcPHlRmZqbOnj0ru90uHx8f+fj4KD093aVGX19feXt769y5cy7hlp+fn7y8vHT27FmXoMXf319Wq1VpaWnypLS0tEL1dPr0af3111+699575XA48uwpMDBQDofD5VhbLBYFBgbKbre7TJFktVoVEBCg7Oxsl4t+bDab/P39lZWVpczMTGVkZCgzM1MHDx5UjRo1XN57BX1NLYYHo0IfHx81btxYP//8s3PsySef1Pr167VmzRr9/PPPat68uQ4dOqTy5cs7l7n33ntlsVg0a9asXNvM60qpSpUq6cSJEwoODpZU8hNkeqIneqIneqIneqIneqIneqIneqKnktLT2bNntXfvXlWpUkV+fn7Oda7WlVIHt7Yu0HJFpWLdHyQVvPbBgwerY8eOqly5sv7++28NHz5cmzdv1h9//KHw8HC39l2Y1zE9PV2JiYmqXLmyAgICXI5famqqwsLClJKS4sxi8uLRK6XKly+v2rVru4zFxsbqiy++kCTn1xseOXLEJZQ6cuSIGjZsmOc2fX195evrm2vcy8tLXl6u7ea8wS+W80tV0PGLt3sl4xaLJc/x/Gp0d5ye6Cm/cXqiJ4me8qvR3XF6oieJnvKr0d1xeqIniZ7yq9HdcXqiJ+na78lisTh/Ltx+Xtwd9zR3e/r77791//3368SJEwoPD9fNN9+stWvXKiIiotD7d2c853jkHLMLj19+75OLeTSUat68uXbs2OEytnPnTsXExEg6P+l5uXLltGzZMmcIlZqaqnXr1uk///mP2eUCAAAAAIASrlK95Z4u4ZI+//xzT5dQZDwaSg0YMEA33XSTXn/9dd1777365Zdf9MEHH+iDDz6QdD5169+/v1599VVVr15dVapU0UsvvaSoqCh17tzZk6UDAAAAAACgEDwaSjVp0kRfffWVnnvuOb388suqUqWKxo8fr+7duzuXefrpp5WWlqbHHntMycnJuvnmm7V48WLnfaQAAAAAAAC49nh0onMzpKamKiQk5LKTawEAAAAA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7tGHH36oU6dOuTwfEBDgfBwXF6czZ87owIEDkqRdu3apW7duqlq1qoKDg1W5cmVJKvStNdL5f8l85ZVXVK9ePZUpU0ZBQUFasmRJgbddv35953+XL19ekpy35wAw14033iiLxeJ8HBcXp127dmnbtm3y8vJSs2bNnM+FhYWpZs2a+vPPP51jPj4+Lr/ThbVx40Z17NhR0dHRKlWqlFq0aCGpYOeui+soX7485xbAg/bs2aOsrCw1bdrUORYSEqKaNWvmufyOHTtUqVIllStXzjl24bqFxecXoGT5888/lZGRoTZt2uT5/KxZs9S8eXOVK1dOQUFBevHFF4vkb6FLeffdd9WoUSOFh4crKChIH3zwAecYXBKhFIotm82mpUuXatGiRapdu7YmTpyomjVrKjExsUDrd+zYUSdPntSHH36odevWad26dZLkMu/UlXrjjTc0YcIEPfPMM1q+fLk2b96shISEAm/b29vb+d85fwwzOTJwbfL393cJtQojLS1NCQkJCg4O1owZM7R+/Xp99dVXkgp27rrw3CKdP79wbgGQg88vQMni7++f73Nr1qxR9+7ddfvtt+vbb7/Vpk2b9MILLxTJ30L5+fzzzzV48GD16tVL3333nTZv3qyHH36YcwwuycvTBQCXYrFY1Lx5czVv3lxDhw5VTEyM8w+0LVu26Ny5c86T8dq1axUUFKRKlSrpxIkT2rFjhz788EPdcsstkqRVq1YVWV2rV69Wp06d9MADD0g6f7LcuXOnateu7VzGx8dHdru9yPYJ4OrICaxzrF27VtWrV1ft2rWVnZ2tdevWOec7yDm3XPi7XpS2b9+uEydOaNSoUc55XDZs2OCyjI+PjyRxfgGuAVWrVpW3t7fWr1+v6OhoSVJKSop27typW2+9NdfyNWvW1IEDB3TkyBHnnDDr168vsnr4/AKULNWrV5e/v7+WLVumRx991OW5n3/+WTExMS7z0u3bt89lmaL+fV+9erVuuukmPfHEE86xi79oinMMLkYohWJr3bp1WrZsmW677TZFRERo3bp1OnbsmGJjY/Xbb78pMzNTvXr10osvvqi9e/dq2LBh6tu3r6xWq0qXLq2wsDB98MEHKl++vPbv369nn33W7RoSExO1efNml7Hq1aurevXqmjt3rn7++WeVLl1aY8eO1ZEjR1w+1FWuXFnr1q3T3r17FRQU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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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R48e1d13363y5curfPnyGjp0aL7/r73yyiu65pprFBERocDAQDVp0sQMMc+lWrVqHoGUdOrz3K1bN2VnZ+uvv/465zauvfbafOH+tddeq/Dw8AI/J5KKdGxv0qSJwsPDNXfu3CL1AgAXM86UAoCLmGEYuvHGG7VkyRL16dNHjRs31sKFC/XYY4/p77//1muvveax/LJlyzRr1iw9/PDD8vf31+TJk9WxY0etXr1a9evXP+f+pk2bpsmTJ8swDMXHx2v48OG64447zrpO586dFRISoo8//litW7f2eG7WrFmqV69eoftu2rSpqlevro8//li9evXKt2758uWVlJQkSVqzZo1++ukn9ejRQzExMdq+fbumTJmiNm3aaNOmTQoKCjpnf+fidrt144036scff9T999+v+Ph4/frrr3rttde0detWff7555Kk3377TTfccIMaNmyoZ599Vv7+/vrjjz+0fPnyIu2nKO/T/v37dfXVV5uhQGRkpL7++mv16dNH6enpGjhwoMc2n3vuOfn5+WnIkCHKzs6Wn59fkfsu7ms7YMAAlS9fXs8884y2b9+u8ePHq3///h5ztTzxxBMaO3asunTpoqSkJG3YsEFJSUnFCjzPNG3aNIWEhGjw4MEKCQnRd999pxEjRig9PV0vv/yyudyUKVPUv39/tWrVSoMGDdL27dvVrVs3lS9fXjExMeZyRX2/CzN79mxlZmbq3//+tyIiIrR69WpNnDhRu3fv1uzZsyVJDzzwgPbs2VPgZblFlZ6ernfeeUe33367+vbtq2PHjundd99VUlKSVq9ercaNG8tms+nOO+/U2LFjdfjwYYWHh5vrf/nll0pPTzfPgixu3999950+/vhj9e/fX5dddpmqVq16Xn2cLjk5WdKpY8DpmjRpIrvdruTk5LOetfnTTz9Jkq688kqPcbfbrS5dumj16tX697//rTp16mju3Ln5ji+S9O2336pTp06qXr26Ro4cqRMnTmjixIlq0aKFfv75Z7PP3377Ta1atVJoaKiGDh0qX19fvfnmm2rTpo2WLVum5s2bSzoVIrdt21Y2m01PPPGEgoOD9c4778jf3/+cr0dx35OvvvpKTZo0UXR0dLH3PX36dPXq1UtJSUkaM2aMMjMzNWXKFLVs2VLJycke76/L5VKnTp107bXXauzYsfrwww/Vv39/BQcH66mnnlLPnj11880364033tDdd9+thIQEVatWzWN/AwYMUIUKFTRq1CitXLlSb731lsLCwvTTTz8pNjZWL774or766iu9/PLLql+/vscl5BMmTNCNN96onj17KicnRzNnztQtt9yiefPmqXPnzud8XQuyb98+SdJll112XusfP35cx48fL3D94vw/+Morryzy/zMA4KJmAAAuGv369TNOP3R//vnnhiTj+eef91juX//6l2Gz2Yw//vjDHJNkSDLWrl1rju3YscMICAgwbrrppnPu+5prrjHGjx9vzJ0715gyZYpRv359Q5IxefLkc657++23G1FRUUZubq45tnfvXsNutxvPPvvsWdd94oknDF9fX+Pw4cPmWHZ2thEWFmbce++95lhmZma+dVesWGFIMt5//31zbMmSJYYkY8mSJeZYXFyc0atXr3zrt27d2mjdurX5ePr06Ybdbjd++OEHj+XeeOMNQ5KxfPlywzAM47XXXjMkGQcPHjxrbwUp6vvUp08fo2LFisahQ4c81u/Ro4fhdDrN1yOv3+rVqxf4GhVWwzPPPGM+LuprO3XqVEOSkZiYaLjdbnN80KBBhsPhMI4ePWoYhmHs27fP8PHxMbp16+axzZEjRxqSPN6LZ555xijo60revlJSUs5a5wMPPGAEBQUZWVlZhmGc+uxEREQYV111lXHy5ElzuWnTphmSzuv9LkxB9YwePdqw2WzGjh07zLEzf6/P5czPZW5urpGdne2xzJEjR4zo6GiP35EtW7YYkowpU6Z4LHvjjTcaVatWNd+z4vQtybDb7cZvv/1W5PrznK3vfv36GQ6Ho8DnIiMjjR49epx128OHDzckGceOHfMY/+STTwxJxvjx480xl8tltGvXzpBkTJ061Rxv3LixERUVZaSmpppjGzZsMOx2u3H33XebY926dTP8/PyMP//80xzbs2ePUa5cOePaa681xwYMGGDYbDYjOTnZHEtNTTXCw8PzfZbP99iTJzY21uN3uKj7PnbsmBEWFmb07dvXY3v79u0znE6nx3ivXr0MScaLL75ojh05csQIDAw0bDabMXPmTHN88+bN+Y4reb/DSUlJHseLhIQEw2azGQ8++KA5lpuba8TExHi8JoaR/3csJyfHqF+/vtGuXTvjfKSmphpRUVFGq1atzmt9wzCM5557zpBkLF682GO8uP8Pvv/++43A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Wt6lamvXrvUYT0pK0smTJz16c7vdmjRpksdyFStWVOPGjfXee+95vC8bN27UN998YwZlDodDHTp00Ny5c7V9+3Zzuf3792vGjBlq2bKleclbUlKSVqxYofXr15vLHT582GOOr8IU9T355ptvJEkdOnTI13dR9p2UlKTQ0FC9+OKLHpeB5intY0tJOBwO2Ww2j+PQ9u3b892JsEmTJkpMTDR/Tp//LO9OeD179iz0LLTy5ct7rJ+YmKiAgABJp45F119/vf7++2999dVXBV6ed7ri/D/4559/1jXXXFOk1wIALmacKQUAF7EuXbqobdu2euqpp7R9+3Y1atRI33zzjebOnauBAweaf9DnqV+/vpKSkjxuRy2dunThbCZNmqTPP/9cXbp0UWxsrPbu3av//ve/2rlzp6ZPn17ohMSn8/X11c0336yZM2cqIyNDr7zySrF6ve222zRixAgFBASoT58++eZmuuGGGzR9+nQ5nU7VrVtXK1as0LfffquIiIhzbvu+++7TnDlz1LFjR9166636888/9cEHH+R7/e666y59/PHHevDBB7VkyRK1aNFCLpdLmzdv1scff6yFCxeqadOmevbZZ/X999+rc+fOiouL04EDBzR58mTFxMScde6tPEV5n1566SUtWbJEzZs3V9++fVW3bl0dPnxYP//8s7799ttzXlJZHCV5bQsSHR2tRx55RK+++qpuvPFGdezYURs2bNDXX3+tyy67zONMkA4dOig2NlZ9+vQxQ5T//ve/ioyM1M6dO83lrrnmGpUvX169evXSww8/LJvNpunTp+cL0/z8/DRy5EgNGDBA7dq106233qrt27dr2rRpqlGjhse+i/p+F6ROnTqqUaOGhgwZor///luhoaH65JNPCpxTJy/Uffjhh5WUlFRgUHQ2N9xwgz799FPddNNN6ty5s1JSUvTGG2+obt26On78eL7lO3furIiICM2ePVudOnXyuDyupH2fy44dOzR9+nRJ/wuMnn/+eUmnzubJu3QqMDBQzz33nPr166dbbrlFSUlJ+uGHH/TBBx/ohRde8Jh8vCDVq1dX/fr19e233+ree+81x7t166ZmzZrp0Ucf1R9//KE6deroiy++MH9fTn//X375ZXXq1EkJCQnq06ePTpw4oYkTJ8rpdGrkyJHmcs8//7wWLVqkli1b6qGHHpKPj4/efPNNZWdna+zYseZyQ4cO1QcffKDrrrtOAwYMUHBwsN555x3Fxsbq8OHDZz0Dqqjvyfz589WyZct8cyYVdd+hoaGaMmWK7rrrLl155ZXq0aOH+bs2f/58tWjRosDw2Bs6d+6scePGqWPHjrrjjjt04MABTZo0SZdffrl++eWXc66/evVq3X333YqIiFD79u3zBXTXXHONx5myBenZs6dWr16te++9V7///rt+//1387mQkBB169bNY/mi/j943bp1Onz4sLp27XrOPgDgomfx3f4AACVQ0C3Ujx07ZgwaNMioVKmS4evra9SsWdN4+eWXPW6xbRinbkfdr18/44MPPjBq1qxp+Pv7G1dccYWxZMmSc+73m2++Ma677jqjQoUKhq+vrxEWFmZ06NAh3y2vz2XRokWGJMNmsxm7du0q1rrbtm0zb6n9448/5nv+yJEjxj333GNcdtllRkhIiJGUlGRs3rzZiIuLM3r16mUut2TJEkNSvr5fffVVo3Llyoa/v7/RokULY+3atfluy24Yp245PmbMGKNevXqGv7+/Ub58eaNJkybGqFGjjLS0NMMwDGPx4sVG165djUqVKhl+fn5GpUqVjNtvv93YunXrOfsszvu0f/9+o1+/fkaVKlUMX19fo0KFCkb79u2Nt956K1+/s2fPPue+T6/h9Fu3F/W1zbvF+5o1azy2V9Brnpubazz99NNGhQoVjMDAQKNdu3bG77//bkRERHjcCt4wDGPdunVG8+bNDT8/PyM2NtYYN26cua+8W9kbhmEsX77cuPrqq43AwECjUqVKxtChQ42FCxcW+H6//vrrRlxcnOHv7280a9bMWL58udGkSROjY8eOHssV5f0uzKZNm4zExEQjJCTEuOyyy4y+ffsaGzZsMCQZU6dO9XgtBgwYYERGRho2my3f7/iZzvxcut1u48UXXzT7ueKKK4x58+YZvXr1MuLi4grcxkMPPWRIMmbMmFHg80XtO+/zWlR5n4WCfs78XTMMw3jrrbeM2rVrG35+fkaNGjWM1157Ld+xrTDjxo0zQkJCjMzMTI/xgwcPGnfccYdRrlw5w+l0Gr179zaWL19uSDJmzpzpsey3335rtGjRwggMDDRCQ0ONLl26GJs2bcq3r59//tlISkoyQkJCjKCgIKNt27bGTz/9lG+55ORko1WrVoa/v78RExNjjB492nj99dcN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DIrDMAwdO3ZMlSpVOutyZTqU8vPzU5MmTbR48WJ169ZN0qmQafHixerfv3+B6/j7+8vf399jLCws7AJXiktNaGgoB1oAFwzHGAAXEscYABcSxxgUldPpPOcyZTqUkqTBgwerV69eatq0qZo1a6bx48crIyND99xzj7dLAwAAAAAAwHkq86HUbbfdpoMHD2rEiBHat2+fGjdurAULFuSb/BwAAAAAAAAXjzIfSklS//79C71cDyhN/v7+euaZZ/JdAgoApYFjDIALiWMMgAuJYwwuhDJ99z0AAAAAAABcmuzeLgAAAAAAAAD/PIRSAAAAAAAAsByhFAAAAOAlVatW1fjx471dBgAAXkEoBRTCZrPp888/P+/127Rpo4EDB5ZaPQAuDSNHjlTjxo3Pe/2lS5fKZrPp6NGjpVYTgEsH318AFNX5fCcpaZDeu3dvdevW7bzXx6WHUAoAgFLicrnkdru9XQYAAABwUSCUQpk2Z84cNWjQQIGBgYqIiFBiYqIyMjLMhH3UqFGKjIxUaGioHnzwQeXk5JjrLliwQC1btlRYWJgiIiJ0ww036M8//yyVulJTU3X77bercuXKCgoKUoMGDfTRRx+Zz/fu3VvLli3ThAkTZLPZZLPZtH37dvMMh8WLF6tp06YKCgrSNddcoy1btpRKXQCKp02bNurfv7/69+8vp9Opyy67TE8//bTybkx75MgR3X333SpfvryCgoLUqVMnbdu2zVx/2rRpCgsL0xdffKG6devK399fO3fuLFFN06dPV9OmTVWuXDlVqFBBd9xxhw4cOCBJ2r59u9q2bStJKl++vGw2m3r37m328vDDD2vo0KEKDw9XhQoVNHLkyBLVAqDkjh07pp49eyo4OFgVK1bUa6+9dtazkTZv3qyWLVsqICBAdevW1bffflvis5/y8P0FuPS43W6NHTtWl19+ufz9/RUbG6sXXnhBkjRs2DDVqlVLQUFBql69up5++mmdPHlS0qnvMKNGjdKGDRvM3/dp06aVqBaXy6U+ffqoWrVqCgwMVO3atTVhwgTz+ZEjR+q9997T3LlzzX0uXbpU27dvl81m06effqq2bdsqKChIjRo10ooVK0pUDy4OhFIos/bu3avbb79d9957r37//XctXbpUN998s/nH4uLFi83xjz76SJ9++qlGjRplrp+RkaHBgwdr7dq1Wrx4sex2u2666aZSOYshKytLTZo00fz587Vx40bdf//9uuuuu7R69WpJ0oQJE5SQkKC+fftq79692rt3r6pUqWKu/9RTT+nVV1/V2rVr5ePjo3vvvbfENQE4P++99558fHy0evVqTZgwQePGjdM777wj6dQfaGvXrtUXX3yhFStWyDAMXX/99eYXOknKzMzUmDFj9M477+i3335TVFRUieo5efKknnvuOW3YsEGff/65tm/fbgZPVapU0SeffCJJ2rJli/bu3evxZe+9995TcHCwVq1apbFjx+rZZ5/VokWLSlQPgJIZPHiwli9fri+++EKLFi3SDz/8oJ9//rnAZV0ul7p166agoCCtWrVKb731lp566qlSq4XvL8Cl54knntBLL72kp59+Wps2bdKMGTMUHR0tSSpXrpymTZumTZs2acKECXr77bf12muvSZJuu+02Pfroo6pXr575+37bbbeVqBa3262YmBjNnj1bmzZt0ogRI/Tkk0/q448/liQNGTJEt956qzp27Gju85prrjHXf+qppzRkyBCtX79etWrV0u23367c3NwS1YSLgAGUUevWrTMkGdu3b8/3XK9evYzw8HAjIyPDHJsyZYoREhJiuFyuArd38OBBQ5Lx66+/Fmn/kozPPvusyPV27tzZePTRR83HrVu3Nh555BGPZZYsWWJIMr799ltzbP78+YYk48SJE0XeF4DS0bp1ayM+Pt5wu93m2LBhw4z4+Hhj69athiRj+fLl5nOHDh0yAgMDjY8//tgwDMOYOnWqIclYv359kff5zDPPGI0aNSry8mvWrDEkGceOHTMM43/HkSNHjuTrpWXLlh5jV111lTFs2LAi7wtA6UpPTzd8fX2N2bNnm2NHjx41goKCzO8IcXFxxmuvvWYYhmF8/fXXho+Pj7F3715z+UWLFhXrOwnfX4B/jvT0dMPf3994++23i7T8yy+/bDRp0sR8XNzvJIbhecwqin79+hndu3c3H/fq1cvo2rWrxzIpKSmGJOOdd94xx3777TdDkvH7778Xqz5cfDhTCmVWo0aN1L59ezVo0EC33HKL3n77bR05csTj+aCgIPNxQkKCjh8/rl27dkmStm3bpttvv13Vq1dXaGioqlatKkklvrRGOvUvmc8995waNGig8PBwhYSEaOHChUXedsOGDc3/rlixoiSZl+cAsNbVV18tm81mPk5I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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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WrSoSL0AwOWMK6UA4DJmGIZuvvlmrVy5UgMHDlSLFi20bNkyPf744/rzzz/16quveiy/evVqzZ8/X4888oj8/f01Y8YMdevWTRs2bFCTJk0uuL/Zs2drxowZMgxDDRs21DPPPKO77rrrvOv06NFDISEh+vDDD9WhQweP5+bPn6/GjRsXuu9WrVqpdu3a+vDDD9W/f/9861asWFEJCQmSpI0bN+r7779X3759Vb16de3Zs0czZ85Ux44dtX37dgUFBV2wvwtxu926+eab9d133+mBBx5Qw4YN9dNPP+nVV1/Vrl279Omnn0qSfv75Z/3lL39Rs2bN9Nxzz8nf31+//vqr1qxZU6T9FOU4HTp0SNddd50ZCkRGRuqLL77QwIEDlZ6ermHDhnls8x//+If8/Pw0cuRIZWdny8/Pr8h9F/e1HTp0qCpWrKixY8dqz549mjJlioYMGeIxV8uTTz6pSZMmqWfPnkpISNDWrVuVkJBQ7PDhbLNnz1ZISIhGjBihkJAQff311xozZozS09P10ksvmcvNnDlTQ4YMUfv27TV8+HDt2bNHvXv3VsWKFVW9enVzuaIe78IsWLBAmZmZ+vvf/66IiAht2LBB06ZN0/79+7VgwQJJ0oMPPqgDBw4UeFtuUaWnp+vtt9/WnXfeqUGDBunEiRN65513lJCQoA0bNqhFixay2Wz629/+pkmTJunYsWMKDw831//vf/+r9PR084qk4vb99ddf68MPP9SQIUNUqVIl1axZ86L6KMjFnHMk6fvvv5ckXXPNNR7jbrdbPXv21IYNG/T3v/9dDRo00KJFi/KdXyTpq6++Uvfu3VW7dm2NGzdOp06d0rRp09S2bVv98MMPZp8///yz2rdvr9DQUI0aNUq+vr5644031LFjR61evVpt2rSRdCZE7tSpk2w2m5588kkFBwfr7bfflr+//wX7Ke4x+fzzz9WyZUtFR0cXe99z5sxR//79lZCQoIkTJyozM1MzZ85Uu3btlJiY6HF8XS6XunfvrhtuuEGTJk3S+++/ryFDhig4OFhPP/20+vXrp1tvvVWvv/667rnnHsXFxalWrVoe+xs6dKgqV66s8ePHa926dXrzzTcVFham77//XjExMXrhhRf0+eef66WXXlKTJk08buecOnWqbr75ZvXr1085OTmaN2+ebrvtNi1evFg9evS44OtakOTk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kry3iqM455zC7N27V1WqVMl3y+m574e816d+/fr5ttGwYUMdPXpUGRkZOnLkiDIzMwtdzu12648//jC3ee5+Ctp3QYpzTJYsWaLo6Gi1atXKo5+i7Hv37t2SpM6dO+fb15dffpnv2AcEBCgyMtJjzOl0qnr16vnmRnM6neY54Gznni+cTqckqUaNGhdcf/HixbruuusUEBCg8PBwRUZGaubMmR7v+2PHjik5Odn8Kex3b+jQoVq6dKnefvttNW/e3BzPycnxWD85ObnA/8TZsWOHbrnlFjVp0kRvv/12gfsozt/Bxv/Pn8W37wEo75hTCgBw0fL+0XDs2LHzLufv76/evXvrk08+0YwZM3To0CGtWbNGL7zwQpH2c8cdd+if//ynjh49qgoVKuizzz7TnXfe6XGly9ChQzVr1iwNGzZMcXFxcjqdstls6tu37wXDoMI+9LtcLjkcDvOx2+1W06ZNNXny5AKXz3s9AgMD9c0332jlypVasmSJli5dqvnz56tz58768ssvPbZ5MfL6+dvf/lbgXDjSmSs6znaxV0lJxX9tC+vPOGeS4qI437E5W2pqqjp06KDQ0FA999xzqlOnjgICAvTDDz9o9OjRF3XFWlGPd2H13XjjjTp27JhGjx6tBg0aKDg4WH/++acGDBhwUfUU5r333tOAAQPUu3dvPf7444qKipLD4dCECRP022+/eSzbt29fDR8+XO+//76eeuopvffee2rVqpVHqFLcvkvy3iquop5zIiIilJubqxMnTuQL7S9HxTkmn3/+ubp163ZRYUbe+3LOnDmqXLlyvufPPudKhf+uF+ccUJxtnL3+t99+q5tvvlk33HCDZsyYoSpVqsjX11ezZs3ymFT91ltv9fiijf79++eb0H78+PGaMWOGXnzxRY+AVjozP1mnTp08xpKSkjxC7D/++ENdu3aV0+nU559/XirvuePHjysoKMjS3y8A8AZCKQC4jMXGxuqrr77K9w+vvFuVzv1mobz/BT/brl27FBQUlO9/u4si71aKoqx7xx136N1339WKFSv0yy+/yDCMC966d/a648eP10cffaTo6Gilp6erb9++HsssXLhQ/fv31yuvvGKOZWVlKTU19YLbr1ixYoHL7d271+OWnDp16mjr1q3q0qXLBf/BZ7fb1aVLF3Xp0kWTJ0/WCy+8oKefflorV64s8BvBzlaU41ShQgW5XK4Lbqs0lOS1LUje+/LXX3/1uMomJSUl35UQeVdOpaammrdFSvmvAly1apVSUlL08ccf64YbbjDHk5KSCt332f/QzM3N1Z49ezzCvOIc73P99NNP2rVrl959912PiZmXL1+eb9mSXgmxcOFC1a5dWx9//LHHtsaOHZtv2fDwcPXo0UPvv/+++vXrpzVr1mjKlCkey5Sk70utqOecBg0aSDpz/M8+prGxsVq5cqUyMzM9rpb69ddfPdbPe5/s3Lkz37Z37NihSpUqKTg4WAEBAQoKCip0ObvdbgZGsbGx+fZT0L4LUtRjkpqaqu+//15DhgzJ109R9l2nTh1JUlRUlCXnlpL46KOPFBAQoGXLlnlM2D5r1iyP5V555RWP80rVqlU9np8+fbrGjRunYcOGafTo0fn207x583y/t2cHdikpKeratauys7O1YsUKValSpdCai/N3cFJSknnVMwCUZ9y+BwCXsZtuukkul0v/+te/PMZfffVV2Ww2j68Dl6S1a9d6zLXxxx9/aNGiReratet5r94p6Na+EydOaMqUKapUqZLHHBmFiY+PV3h4uObPn6/58+erdevWRb7tp2HDhmratKm5bpUqVTyCB+nM/6qf+7/w06ZNu+BcWdKZf4itW7dOOTk55tjixYvN227y3H777frzzz/11ltv5dvGqVOnlJGRIangqzjy5nIp6Ovbz3Wh4+RwONSnTx999NFH2rZtW771i3sr5oWU5LUtSJcuXeTj46OZM2d6jJ/7Ppb+94/ks782PSMjQ++++26+GiXPKylycnI0Y8YMj+VatWqliIgIvfXWW8rNzTXH33///XyBWFGPd0EKqscwDE2dOjXfssHBwZJ00SFfQftav3691q5dW+Dyd999t7Zv367HH39cDocjX8Bbkr5LS0nPOXFxcZLOzCF2toSEBJ0+fdqjN7fbrenTp3ssV6VKFbVo0ULvvvuux3HZtm2bvvzyS910002Szrz2Xbt21aJFi7Rnzx5zuUOHDmnu3Llq166dQkNDzX2vXbtWW7ZsMZc7duyYxxxfhSnqMfnyyy8lSV27ds3Xd1H2nZCQoNDQUL3wwgs6ffp0vn2V9rmlJBwOh2w2m8d5aM+ePfm+ibBly5aKj483f86e/yzvm/D69etX6FVoFStW9Fg/Pj5eAQEBks6ci2666Sb9+eef+vzzzwu8Pe9sxfk7+IcfftD1119fpNcCAC5nXCkFAJexnj17qlOnTnr66ae1Z88eNW/eXF9++aUWLVqkYcOGmf+gz9OkSRMlJCR4fB21dObWhfOZPn26Pv30U/Xs2VMxMTE6ePCg/v3vf2vfvn2aM2eOOcny+fj6+urWW2/VvHnzlJGRoZdffrlYvd5xxx0aM2aMAgICNHDgQNntnv+v8pe//EVz5syR0+lUo0aNtHbtWn311VeKiIi44Lbvv/9+LVy4UN26ddPtt9+u3377Te+9916+1+/uu+/Whx9+qIceekgrV65U27Zt5XK5tGPHDn344YdatmyZWrVqpeeee07ffPONevToodjYWB0+fFgzZsxQ9erV1a5duwvWU5Tj9OKLL2rlypVq06aNBg0apEaNGunYsWP64Ycf9NVXX13w9qbiKMlrW5Do6Gg9+uijeuWVV3TzzTerW7du2rp1q7744gtVqlTJ40qQrl27KiYmRgMHDjRDlH//+9+KjIzUvn37zOWuv/56VaxYUf3799cjjzwim82mOXPm5AvT/Pz8NG7cOA0dOlSdO3fW7bffrj179mj27NmqU6eOx76LerwL0qBBA9WpU0cjR47Un3/+qdDQUH300UcFzqmTF7A88sgjSkhIKDAoOp+//OUv+vjjj3XLLbeoR48eSkpK0uuvv65GjRrp5MmT+Zbv0aOHIiIitGDBAnXv3l1RUVEez5ek7wvZu3ev5syZI+l/gdHzzz8v6czVPHm3TpX0nFO7dm01adJEX331le677z5zvHfv3mrdurUee+wx/frrr2rQoIE+++wz8/fl7OP/0ksvqXv37oqLi9PAgQN16tQpTZs2TU6nU+PGjTOXe/7557V8+XK1a9dODz/8sHx8fPTGG28oOztbkyZNMpcbNWqU3nvvPd14440aOnSogoOD9fbbbysmJkbHjh077xVQRT0mS5YsUbt27cx5mYq779DQUM2cOVN33323rrnmGvXt29f8XVuyZInatm1bYHjsDT169NDkyZPVrVs33XXXXTp8+LCmT5+uq666Sj/++OMF19+wYYPuueceRUREqEuXLvkCuuuvv97jStmC9OvXTxs2bNB9992nX375Rb/88ov5XEhIiHr37u2xfFH/Dt68ebOOHTumXr16XbAPALjsWf59fwCAi1bQV6ifOHHCGD58uFG1alXD19fXqFu3rvHSSy95fMW2YZz5OurBgwcb7733nlG3bl3D39/fuPrqq42VK1decL9ffvmlceONNxqVK1c2fH19jbCwMKNr1675vvL6QpYvX25IMmw2m/HHH38Ua93du3ebX6n93Xff5Xv++PHjxr333mtUqlTJCAkJMRISEowdO3YYsbGxRv/+/c3lVq5caUjK1/crr7xiVKtWzfD39zfatm1rbNq0Kd/XshvGma8cnzhxotG4cWPD39/fqFixotGyZUtj/PjxRlpammEYhrFixQqjV69eRtWqVQ0/Pz+jatWqxp133mns2rXrgn0W5zgdOnTIGDx4sFGjRg3D19fXqFy5stGlSxfjzTffzNfvggULLrjvs2s4+6vbi/ra5n3F+8aNGz22V9Brnpubazz77LNG5cqVjcDAQKNz587GL7/8YkRERHh8FbxhGMbmzZuNNm3aGH5+fkZMTIwxefJkc195X2VvGIaxZs0a47rrrjMCAwONqlWrGqNGjTKWLVtW4PF+7bXXjNjYWMPf399o3bq1sWbNGqNly5ZGt27dPJYryvEuzPbt2434+HgjJCTEqFSpkjFo0CBj69athiRj1qxZHq/F0KFDjcjISMNms+X7HT/Xue9Lt9ttvPDCC2Y/V199tbF48WKjf//+RmxsbIHbePjhhw1Jxty5cwt8vqh9571fiyrvvVDQz9k9lcY5Z/LkyUZISIiRmZnpMX7kyBHjrrvuMipUqGA4nU5jwIABxpo1awxJxrx58zyW/eqrr4y2bdsagYGBRmhoqNGzZ09j+/bt+fb1ww8/GAkJCUZISIgRFBRkdOrUyfj+++/zLZeYmGi0b9/e8Pf3N6pXr25MmDDBeO211wxJRnJysrncxZx73G63ERUVZUyaNKnA16Oo+zaMM8cpISHBcDqdRkBAgFGnTh1jwIABxqZNm8xl+vfvbwQHB+fbT4cOHYzGjRvnG4+NjTV69OhhPi7sfDF27FhDknHkyBGP8YL2984775jnyQYNGhizZs0y17+QvP0X9nP272hhYmNjC13/3N+94pzbR48ebcTExOT7exwAyiObYVzErKMAgMuOzWbT4MGDy8z/cqNgV/JxSk1NVcWKFfX888/r6aeftnTfbrdbkZGRuvXWWwu8Raq8GT58uN555x0lJyfn+ya68iItLU21a9fWpEmTNHDgwPMu++mnn+qW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uUXZ2dn5nu/YsaNeeeUVffPNN7LZbOrYsaMkKTs7WyNHjlS1atUUHBysNm3aaNWqVeZ6KSkpuvPOO1WtWjUFBQWpadOm+uCDD8znBwwYoNWrV2vq1KnmlWF79uwp8PbCTz/91GNS8nHjxqlFixZ6++23VatWLQUEBEiSUlNTdf/99ysyMlKhoaHq3Lmztm7dWqzXo7gIpQAAAAAAQLkydepUvfLKK3r55Zf1448/KiEhQTfffLN2797tsdzjjz+uxx57TImJiYqLi1PPnj2VkpJSpH388ccfat++vZo0aaKFCxfK398/3zIff/yxBg0apLi4OB08eFAff/yxJGnIkCFau3at5s2bpx9//FG33XabunXrZtaXlZWlli1basmSJdq2bZseeOAB3X333dqwYYPZX1xcnAYNGqSDBw/q4MGDqlGjRpFfn19//VUfffSRPv74Y23ZskWSdNttt+nw4cP64osvtHnzZl1zzTXq0qWLjh07VuTtFhehFAAAAAAAKFdefvlljR49Wn379lX9+vU1ceJEtWjRQlOmTPFYbsiQIerTp48aNmyomTNnyul06p133rng9nfu3Km2bdsqISFBs2bNksPhKHC58PBwBQUFyc/PT5UrV1Z4eLj27dunWbNmacGCBWrfvr3q1KmjkSNHql27dpo1a5YkqVq1aho5cqRatGih2rVra+jQoerWrZs+/PBDSZLT6ZSfn5+CgoLMq8MKq6EgOTk5+s9//qOrr75azZo103fffacNGzZowYIFatWqlerWrauXX35ZYWFhWrhwYZG3W1zMKQUAAAAAAMqN9PR0HThwQG3btvUYb9u2bb7b0eLi4sw/+/j4qFWrVvrll18kSY0bN9bevXslSe3bt9cXX3whSTp16pTat2+vu+66K1/IVRQ//fSTXC6X6tWr5zGenZ2tiIgISZLL5dILL7ygDz/8UH/++adycnKUnZ2toKCgYu+vILGxsYqMjDQfb926VSdPnjT3n+fUqVP67bffSmWfBSGUAgAAAAAAOMfnn3+u06dPS5ICAwPNcX9/f8XHx2vx4sV6/PHHVa1atWJt9+TJk3I4HNq8eXO+q5vyJmd/6aWXNHXqVE2ZMkVNmzZVcHCwhg0bppycnPNu2263yzAMj7G8Hs4WHBycr6YqVap4zGuV59w5qkoToRQAAAAAACg3QkNDVbVqVa1Z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Vq2avv/+e8XFxZnjo0aN0urVq7V+/fp864wbN07jx4+3skwAAAAAAACc448//lD16tULfb5MXylVqVIlORwOHTp0yGP80KFDqly5coHrPPnkkxoxYoT52O1269ixY4qIiJDNZitwHSBPenq6atSooT/++EOhoaHeLgdAOcM5BsClxDkGwKXEOQbFYRiGTpw4oapVq553uTIdSvn5+ally5ZasWKFevfuLelMyLRixQoNGTKkwHX8/f3l7+/vMRYWFnaJK0V5ExoayokWwCXDOQbApcQ5BsClxDkGReV0Oi+4TJkOpSRpxIgR6t+/v1q1aqXWrVtrypQpysjI0L333uvt0gAAAAAAAHCRynwodccdd+jIkSMaM2aMkpOT1aJFCy1dujTf5OcAAAAAAAC4fJT5UEqShgwZUujtekBp8vf319ixY/PdAgoApYFzDIBLiXMMgEuJcwwuhTL97XsAAAAAAAAon+zeLgAAAAAAAABXHkIpAAAAAAAAWI5QCgAAAPCSmjVrasqUKd4uAwAAryCUAgphs9n06aefXvT6HTt21LBhw0qtHgDlw7hx49SiRYuLXn/VqlWy2WxKTU0ttZoAlB98fgFQVBfzmaSkQfqAAQPUu3fvi14f5Q+hFAAApcTlcsntdnu7DAAAAOCyQCiFMm3hwoVq2rSpAgMDFRERofj4eGVkZJgJ+/jx4xUZGanQ0FA99NBDysnJMdddunSp2rVrp7CwMEVEROgvf/mLfvvtt1KpKyUlRXfeeaeqVaumoKAgNW3aVB988IH5/IABA7R69WpNnTpVNptNNptNe/bsMa9wWLFihVq1aqWgoCBdf/312rlzZ6nUBaB4OnbsqCFDhmjIkCFyOp2qVKmSnn32WeV9Me3x48d1zz33qGLFigoKClL37t21e/duc/3Zs2crLCxMn332mRo1aiR/f3/t27evRDXNmTNHrVq1UoUKFVS5cmXdddddOnz4sCRpz5496tSpkySpYsWKstlsGjBggNnLI488olGjRik8PFyVK1fWuHHjSlQLgJI7ceKE+vXrp+DgYFWpUkWvvvrqea9G2rFjh9q1a6eAgAA1atRIX331VYmvfsrD5xeg/HG73Zo0aZKuuuoq+fv7KyYmRv/85z8lSaNHj1a9evUUFBSk2rVr69lnn9Xp06clnfkMM378eG3dutX8fZ89e3aJanG5XBo4cKBq1aqlwMBA1a9fX1OnTjWfHzdunN59910tWrTI3OeqVau0Z88e2Ww2ffzxx+rUqZOCgoLUvHlzrV27tkT14PJAKIUy6+DBg7rzzjt133336ZdfftGqVat06623mv9YXLFihTn+wQcf6OOPP9b48ePN9TMyMjRixAht2rRJK1askN1u1y233FIqVzFkZWWpZcuWWrJkibZt26YHHnhAd999tzZs2CBJmjp1quLi4jRo0CAdPHhQBw8eVI0aNcz1n376ab3yyivatGmTfHx8dN9995W4JgAX591335WPj482bNigqVOnavLkyXr77bclnfkH2qZNm/TZZ59p7dq1MgxDN910k/mBTpIyMzM1ceJEvf322/r5558VFRVVonpOnz6tf/zjH9q6das+/fRT7dmzxwyeatSooY8++kiStHPnTh08eNDjw967776r4OBgrV+/XpMmTdJzzz2n5cuXl6geACUzYsQIrVmzRp999pmWL1+ub7/9Vj/88EOBy7pcLvXu3VtBQUFav3693nzzTT399NOlVgufX4Dy58knn9SLL76oZ599Vtu3b9fcuXMVHR0tSapQoYJmz56t7du3a+rUqXrrrbf06quvSpLuuOMOPfbYY2rcuLH5+37HHXeUqBa3263q1atrwYIF2r59u8aMGaOnnnpKH374oSRp5MiRuv3229WtWzdzn9dff725/tNPP62RI0dqy5Ytqlevnu68807l5uaWqCZcBgygjNq8ebMhydizZ0++5/r372+Eh4cbGRkZ5tjMmTONkJAQw+VyFbi9I0eOGJKMn376qUj7l2R88sknRa63R48exmOPPWY+7tChg/Hoo496LLNy5UpDkvHVV1+ZY0uWLDEkGadOnSryvgCUjg4dOhgNGzY03G63OTZ69GijYcOGxq5duwxJxpo1a8znjh49agQGBhoffvihYRiGMWvWLEOSsWXLliLvc+zYsUbz5s2LvPzGjRsNScaJEycMw/jfeeT48eP5emnXrp3H2LXXXmuMHj26yPsCULrS09MNX19fY8GCBeZYamqqERQUZH5GiI2NNV599VXDMAzjiy++MHx8fIyDBw+ayy9fvrxYn0n4/AJcOdLT0w1/f3/jrbfeKtLyL730ktGyZUvzcXE/kxiG5zmrKAYPHmz06dPHfNy/f3+jV69eHsskJSUZkoy3337bHPv5558NScYvv/xSrPpw+eFKKZRZzZs3V5cuXdS0aVPddttteuutt3T8+HGP54OCgszHcXFxOnnypP744w9J0u7du3XnnXeqdu3aCg0NVc2aNSWpxLfWSGf+J/Mf//iHmjZtqvDwcIWEhGjZsmVF3nazZs3MP1epUkWSzNtzAFjruuuuk81mMx/HxcVp9+7d2r59u3x8fNSmTRvzuYiICNWvX1+//PKLOebn5+fxO11SmzdvVs+ePRUTE6MKFSqoQ4cOkop27jq3jipVqnBuAbzo999/1+nTp9W6dWtzzOl0qn79+gUuv3PnTtWoUUOVK1c2x85et6T4/AKUL7/88ouys7PVpUuXAp+fP3++2rZtq8qVKyskJETPPPNMqfxb6HymT5+uli1bKjIyUiEhIXrzzTc5x+C8CKVQZjkcDi1fvlxffPGFGjVqpGnTpql+/fpKSkoq0vo9e/bUsWPH9NZbb2n9+vVav369JHnMO3WxXnrpJU2dOlWjR4/WypUrtWXLFiUkJBR5276+vuaf8/4xzOTIwOUpMDDQI9QqiYyMDCUkJCg0NFTvv/++Nm7cqE8++URS0c5dZ59bpDPnF84tAPLw+QUoXwIDAwt9bu3aterXr59uuukmLV68WImJiXr66adL5d9ChZk3b55GjhypgQMH6ssvv9SWLVt07733co7Befl4uwDgfGw2m9q2bau2bdtqzJgxio2NNf+BtnXrVp06dco8Ga9bt04hISGqUaOGUlJStHPnTr311ltq3769JOm7774rtbrWrFmjXr166W9/+5ukMyfLXbt2qVGjRuYyfn5+crlcpbZPAJdGXmCdZ926dapbt64aNWqk3NxcrV+/3pzvIO/ccvbvemnasWOHUlJS9OKLL5rzuGzatMljGT8/P0ni/AJcBmrXri1fX19t3LhRMTExkqS0tDTt2rVLN9xwQ77l69evrz/++EOHDh0y54TZuHFjqdXD5xegfKlbt64CAwO1YsUK3X///R7Pff/994qNjfWYl27v3r0ey5T27/uaNWt0/fXX6+GHHzbHzv2iKc4xOBehFMqs9evXa8WKFeratauioqK0fv16HTlyRA0bNtSPP/6onJwcDRw4UM8884z27NmjsWPHasiQIbLb7apYsaIiIiL05ptvqkqVKtq3b5+eeOKJYteQlJSkLVu2eIzVrVtXdevW1cKFC/X999+rYsWKmjx5sg4dOuTxoa5mzZpav3699uzZo5CQEIWHh5f0JQFwCezbt08jRozQgw8+qB9++EHTpk3TK6+8orp166pXr14aNGiQ3njjDVWoUEFPPPGEqlWrpl69epVon6dOncp3bqlQoYJiYmLk5+enadOm6aGHHtK2bdv0j3/8w2O52NhY2Ww2LV68WDfddJMCAwMVEhJSonoAXBoVKlRQ//799fjjjys8PFxRUVEaO3as7HZ7gVdY3njjjapTp4769++vSZMm6cSJE3rmmWckqVhXZPL5BbgyBAQEaPTo0Ro1apT8/PzUtm1bHTlyRD///LPq1q2rffv2ad68ebr22mu1ZMkS8z/389SsWdM8X1SvXl0VKlSQv7//Bff7559/5jvHxMbGqm7duvrPf/6jZcuWqVatWpozZ442btyoWrVqeexz2bJl2rlzpyIiIuR0OkvltcBlzNuTWgGF2b59u5GQkGBERkYa/v7+Rr169Yxp06YZhvG/CfLGjBljREREGCEhIcagQYOMrKwsc/3ly5cbDRs2NPz9/Y1mzZoZq1atKvZEoQX9fPvtt0ZKSorRq1cvIyQkxIiKijKeeeYZ45577vGYtG/nzp3GddddZwQGBhqSjKSkpAInKE5MTDSfB2CtDh06GA8//LDx0EMPGaGhoUbFihWNp556ypz4/NixY8bdd99tOJ1OIzAw0EhISDB27dplrj9r1izD6XQWa59jx44t8NzSpUsXwzAMY+7cuUbNmjUNf39/Iy4uzvjss88MSUZiYqK5jeeee86oXLmyYbPZjP79+5u9nDs5ca9evcznAXhHenq6cddddxlBQUFG5cqVjcmTJxutW7c2nnjiCcMw8k8a/Msvvxht27Y1/Pz8jAYNGhj//e9/DUnG0qVLi7Q/Pr8AVxaXy2U8//zzRmxsrOHr62vExMQYL7zwgmEYhvH444+b/1a64447jFdffdXjc0tWVpbRp08fIywszJBkzJo164L7i42NLfAcM2fOHCMrK8sYMGCA4XQ6jbCwMOPvf/+78cQTT3hMpn748GHjxhtvNEJCQgxJxsqVK82Jzs/+rHP8+HHzeZRvNsMwjEucewGlbsCAAUpNTdWnn37q7VIAXMY6duyoFi1aaMqUKd4uBcAVIiMjQ9WqVdMrr7yigQMHXnD5NWvWqF27dvr1119Vp04dCyoEAMA63L4HAAAAXCKJiYnasWOHWrdurbS0ND333HOSVOhtwJ988olCQkJUt25d/frrr3r00UfVtm1bAikAQLnEt+/hivTCCy8oJCSkwJ/u3bt7uzwAl7HCzi0hISH69ttvvV0eAC94+eWX1bx5c8XHxysjI0PffvutKlWqVOCyJ06c0ODBg9WgQQMNGDBA1157rRYtWiSJzy8ALq3333+/0HNM48aNvV0eyilu38MV6dixYzp27FiBzwUGBqpatWoWVwSgvPj1118Lfa5atWrn/fpmADgfPr8AuJROnDihQ4cOFficr6+vYmNjLa4IVwJCKQAAAAAAAFiO2/cAAAAAAABgOUIpAAAAAAAAWI5QCgAAAAAAAJYjlAIAAAAAAIDlCKUAAAAAAABgOUIpAACAAgwYMEC9e/f2dhkAAADlFqEUAAAAAAAALEcoBQAAUEyTJ09W06ZNFRwcrBo1aujhhx/WyZMnzednz56tsLAwLVu2TA0bNlRISIi6deumgwcPmsvk5ubqkUceUVhYmCIiIjR69Gj179/f4+qsmjVrasqUKR77btGihcaNG1fkWiTprbfeUo0aNRQUFKRbbrlFkydPVlhYmMcyixYt0jXXXKOAgADVrl1b48ePV25ubolfKwAAgMIQSgEAABST3W7Xa6+9pp9//lnvvvuuvv76a40aNcpjmczMTL388suaM2eOvvnmG+3bt08jR440n584caLef/99zZo1S2vWrFF6ero+/fTTUq9lzZo1euihh/Too49qy5YtuvHGG/XPf/7TYxvffvut7rnnHj366KPavn273njjDc2ePTvfcgAAAKXJZhiG4e0iAAAAypoBAwYoNTW1SEHRwoUL9dBDD+no0aOSzlwpde+99+rXX39VnTp1JEkzZszQc889p+TkZElS5cqVNXLkSDOocrlcql27tq6++mpznzVr1tSwYcM0bNgwc18tWrRQ7969Pa6WOl8tffv21cmTJ7V48WJzmb/97W9avHixUlNTJUnx8fHq0qWLnnzySXOZ9957T6NGjdKBAwcu2D8AAMDF8PF2AQAAAJebr776ShMmTNCOHTuUnp6u3NxcZWVlKTMzU0FBQZKkoKAgM5CSpCpVqujw4cOSpLS0NB06dEitW7c2n3c4HGrZsqXcbnep1rJz507dcsstHuu0bt3aI6TaunWr1qxZ43FllMvlytcTAABAaeL2PQAAgGLYs2eP/vKXv6hZs2b66KOPtHnzZk2fPl2SlJOTYy7n6+vrsZ7NZlNxL1C32+351jl9+nSxa7mQkydPavz48dqyZYv589NPP2n37t0KCAgoVs0AAABFxZVSAAAAxbB582b9X3t3zNI6FIdh/G06KuhQcVOQgBYKrQVBEVoQpIMNOIigg5MdOxSE0qWLQlE0ghXpWBEXZ6FSRARxsSAKDu1U/ASinUSodxCEXPBq7q3xDs8PMuQknP85Gd/knLTbbW1tbckw3t7vHR0dueqjp6dH/f39qtVqisVikt6+TLq+vlYkEnm/r6+vz7E5+tPTk5rNpquxDA8Pq1arOdp+P49Go2o0GjJN09U8AAAA/gWhFAAAwAceHx91c3PjaAsEAnp5eVGxWJRlWbq8vFSpVHLddzqdVqFQkGmaGhkZUbFY1MPDg3w+3/s9U1NTKpfLsixLvb29yufz8vv979dN0/x0LOl0WrFYTLZty7IsnZ2dqVKpOOrk83klk0kNDAxobm5OhmHo9vZWd3d3Wltbcz03AACAr2D5HgAAwAfOz881OjrqOA4ODmTbttbX1xUKhXR4eKhCoeC672w2q4WFBS0tLWliYkLd3d1KJBKO5XK5XE7xeFzJZFIzMzOanZ117FMVDoc/Hcvk5KRKpZJs21Y4HNbJyYkymYyjTiKR0PHxsarVqsbGxjQ+Pq7t7W0NDg7+xVMDAAD4Gv6+BwAA8B9ot9sKBoOan5/X6urqt9ZKpVKq1+u6uLj41joAAAB/wvI9AACAH3B/f69qtap4PK7n52ft7u6q2WxqcXGx47U2Nzc1PT2trq4uVSoV7e/va29vr+N1AAAA3CCUAgAA+AGGYahcLmtlZUWvr68KhUI6PT1VMBjseK2rqyttbGyo1WppaGhIOzs7Wl5e7ngdAAAAN1i+BwAAAAAAAM+x0TkAAAAAAAA8RygFAAAAAAAAzxFKAQAAAAAAwHOEUgAAAAAAAPAcoRQAAAAAAAA8RygFAAAAAAAAzxFKAQAAAAAAwHOEUgAAAAAAAPAcoRQAAAAAAAA89wsyJSgJlVCP5QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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1vP5559/VufOnRUSEqL4+HhNnz7d6/75r+GlS5fq/vvvtz5Cd8899ygnJ0eHDx/WbbfdpipVqqhKlSp65JFHCv279u9//1tXXHGFIiMjFRQUpFatWlkh5unUqVPHK5CSjj+fe/XqpezsbP3111+nXceVV15ZKNy/8sorFRERUeTzRFKJju2tWrVSRESEZs+eXaJZAKA840wpACjHTNPUtddeq0WLFmngwIFq2bKl5s2bp4cfflg7d+7UK6+84rX8kiVLNGPGDN1///0KCAjQxIkT1a1bN61evVrNmjU77famTp2qiRMnyjRNNW7cWE888YRuueWWU96nR48eqlSpkj766CN16NDB67YZM2aoadOmxW47ISFBdevW1UcffaT+/fsXum+VKlWUnJwsSfr++++1fPly9e3bV7GxsdqyZYsmTZqkjh076tdff1VwcPBp5zsdj8eja6+9VkuXLtXdd9+txo0b6+eff9Yrr7yizZs367PPPpMk/fLLL7rmmmvUvHlzPfPMMwoICNAff/yhZcuWlWg7JdlPe/fu1eWXX26FAlFRUfrqq680cOBApaena+jQoV7r/Ne//iV/f3899NBDys7Olr+/f4nnLu1jO2TIEFWpUkVPP/20tmzZorFjx2rw4MFe12p57LHHNGbMGPXs2VPJycn68ccflZycXKrA82RTp05VpUqVNHz4cFWqVEnffPONnnrqKaWnp+vFF1+0lps0aZIGDx6s9u3ba9iwYdqyZYt69eqlKlWqKDY21lqupPu7ODNnzlRmZqb+/ve/KzIyUqtXr9b48eO1Y8cOzZw5U5J0zz33aNeuXUV+LLek0tPT9fbbb+vmm2/WXXfdpSNHjmjy5MlKTk7W6tWr1bJlSxmGob/97W8aM2aMDh48qIiICOv+//3vf5Wenm6dBVnaub/55ht99NFHGjx4sKpWraratWuXqv89e/ZIkqpWrWrV1q1bJ+n4MaCgVq1ayeFwaN26dac8a3P58uWSpEsvvdSr7vF41LNnT61evVp///vf1ahRI82ePbvQ8UWSvv76a3Xv3l1169bViBEjdOzYMY0fP15t27bVDz/8YM35yy+/qH379goNDdUjjzwiPz8/vfHGG+rYsaOWLFmiNm3aSDoeInfq1EmGYeixxx5TSEiI3n77bQUEBJz2MSrtPvnyyy/VqlUrRUdHl3rb7777rvr376/k5GSNHj1amZmZmjRpktq1a6d169Z57V+3263u3bvryiuv1JgxY/T+++9r8ODBCgkJ0eOPP65+/fqpd+/eev3113XbbbcpMTFRderU8drekCFDVL16dY0cOVIrV67Um2++qfDwcC1fvlxxcXF6/vnn9eWXX+rFF19Us2bNvD5CPm7cOF177bXq16+fcnJy9OGHH+qGG27QF198oR49epz2cS1KUc/H0jh69KiOHj1a5P1L82/wpZdeWuJ/MwCgXDMBAOXGoEGDzIKH7s8++8yUZD777LNey/3f//2faRiG+ccff1g1SaYkc82aNVZt69atZmBgoHn99defdttXXHGFOXbsWHP27NnmpEmTzGbNmpmSzIkTJ572vjfffLNZrVo1My8vz6rt3r3bdDgc5jPPPHPK+z722GOmn5+fefDgQauWnZ1thoeHm3fccYdVy8zMLHTfFStWmJLMd955x6otWrTIlGQuWrTIqsXHx5v9+/cvdP8OHTqYHTp0sH5+9913TYfDYX733Xdey73++uumJHPZsmWmaZrmK6+8Ykoy9+/ff8rZilLS/TRw4ECzRo0a5oEDB7zu37dvXzMsLMx6PPLnrVu3bpGPUXE9PP3009bPJX1sp0yZYkoyk5KSTI/HY9WHDRtmOp1O8/Dhw6ZpmuaePXtMl8tl9urVy2udI0aMMCV57Yunn37aLOrtSv62UlJSTtnnPffcYwYHB5tZWVmmaR5/7kRGRpqXXXaZmZubay03depUU9IZ7e/iFNXPqFGjTMMwzK1bt1q1k1/Xp3Py8zIvL8/Mzs72WubQoUNmdHS012tk06ZNpiRz0qRJXstee+21Zu3ata19Vpq5JZkOh8P85ZdfStz/yZKSkszQ0FDz0KFDVm3QoEGm0+kscvmoqCizb9++p1znE088YUoyjxw54lX/5JNPTEnm2LFjrZrb7TY7d+5sSjKnTJli1Vu2bGlWq1bNTE1NtWo//vij6XA4zNtuu82q9erVy/T39zf//PNPq7Zr1y6zcuXK5pVXXmnVhgwZYhqGYa5bt86qpaammhEREYWey2d67MkXFxfn9Rou6baPHDlihoeHm3fddZfX+vbs2WOGhYV51fv3729KMp9//nmrdujQITMoKMg0DMP88MMPrfrGjRsLHVfyX8PJyclex4vExETTMAzz3nvvtWp5eXlmbGys12NimoVfYzk5OWazZs3Mzp07m2ciNTXVrFatmtm+ffszur9pmua//vUvU5K5cOFCr3pp/w2+++67zaCgoDPuAwDKCz6+BwDl2Jdffimn06n777/fq/7ggw/KNE199dVXXvXExES1atXK+jkuLk7XXXed5s2bV+RHnApatmyZHnjgAV177bW69957tXbtWjVr1kz//Oc/vT6OVJSbbrpJ+/bt8/qWwI8//lgej0c33XTTae+bm5urWbNmWbX58+fr8OHDXvcNCgqy/p6bm6vU1FRddNFFCg8P1w8//HDKbZTUzJkz1bhxYzVq1EgHDhyw/uRf8yP/41Lh4eGSjn+c7Ey+iv50+8k0TX3yySfq2bOnTNP06iU5OVlpaWmFZu7fv7/XY1QapX1s7777bq+PoLVv315ut1tbt26VdPyjRXl5eYU+mjVkyJAz6q+oPo8cOaIDBw6offv2yszM1MaNGyUd/0hoamqq7rrrLrlcJ04Y79evX6FrFJV0f5ekn4yMDB04cEBXXHGFTNO0zgQqC06n0zrzzePx6ODBg8rLy1NCQoLX/mnQoIHatGmj999/36odPHhQX331lfr162fts9LO3aFDBzVp0uSMen/++ef19ddf64UXXrBeN9LxjwkXdzZfYGDgaY85qampcrlcqlSpkld97ty58vPz01133WXVHA6HBg0a5LXc7t27tX79eg0YMMDrrLLmzZvrqquu0pdffinp+JlC8+fPV69evVS3bl1ruRo1auiWW27R0qVLrY/Kzp07V4mJiWrZsqW1XEREhPr163fKWaTS7ZMNGzZo27ZtXmcKlXTbCxYs0OHDh3XzzTd7bcfpdKpNmzZFPufvvPNO6+/h4eFq2LChQkJCdOONN1r1hg0bKjw8vMiPxA0cONDreNGmTRuZpqmBAwdaNafTqYSEhEL3L/gaO3TokNLS0tS+ffszOuZ7PB7169dPhw8fLtW3PBb07bffauTIkbrxxhuLvBZUaf4NrlKlio4dO6bMzMwz6gUAygs+vgcA5djWrVsVExOjypUre9Xzv40vPwTIV79+/ULraNCggTIzM7V///5SfVOQv7+/Bg8ebAVU7dq1K3bZbt26KSwsTDNmzFCXLl0kHf/4XcuWLdWgQYNTbqdFixZq1KiRZsyYYf2SMmPGDFWtWtXrTf+xY8c0atQoTZkyRTt37vS69khaWlqJ5zqV33//Xb/99puioqKKvH3fvn2Sjgdpb7/9tu6880794x//UJcuXdS7d2/93//9X4kuLn66/eRwOHT48GG9+eabevPNN0/ZS76TPzJTGqV9bOPi4rx+zg97Dh06JOnE8/Kiiy7yWi4iIuK0F68+lV9++UVPPPGEvvnmm0LXzMrvs7htu1yuQh87K+n+Ls62bdv01FNP6fPPP7dmP7mfsjJt2jS99NJL2rhxo3Jzc636yfv9tttu0+DBg7V161bFx8dr5syZys3N1a233motU9q5z/S5NWPGDD3xxBMaOHCg/v73v3vdFhQUpJycnCLvl5WVdcYB69atW1WjRo1CHzk9+fmQ/zxp2LBhoXU0btxY8+bNU0ZGho4cOaLMzMxil/N4PNq+fbuaNm2qrVu3KjExsdByJ2+7KKXZJ3PmzFF0dLTXRx9Luu3ff/9dkoq9uHZoaKjXz4GBgYV6CgsLU2xsbKFro4WFhRV6HUiFjxdhYWGSpFq1ap32/l988YWeffZZrV+/3uvaWgW3ffDgQa/nUlBQkLWNgoYMGaK5c+fqnXfeUYsWLax6Tk6ODh486LVsVFSUnE6nV23jxo26/vrr1axZM7399tuF1i+V7t/g/OMs374HoKIjlAIAnLH8XxpOfsN+soCAAPXq1UuffvqpJk6cqL1792rZsmV6/vnnS7Sdm266Sc8995wOHDigypUr6/PPP9fNN9/sdabLkCFDNGXKFA0dOlSJiYkKCwuTYRjq27fvac9WKu5Nv9vt9vrFw+Px6OKLL9bLL79c5PL5j0dQUJC+/fZbLVq0SHPmzNHcuXM1Y8YMde7cWfPnzy/0y0xp5c/zt7/9rchr4UjHz+go6Ex/iZdK/9gWN5950kWKS+JU+6agw4cPq0OHDgoNDdUzzzyjevXqKTAwUD/88IMeffTRMzpjraT7u7j+rrrqKh08eFCPPvqoGjVqpJCQEO3cuVMDBgw4o36K895772nAgAHq1auXHn74YVWrVk1Op1OjRo3Sn3/+6bVs3759NWzYML3//vv65z//qffee08JCQleoUpp5z6T59aCBQt02223qUePHnr99dcL3V6jRg253W7t27dP1apVs+o5OTlKTU1VTEzMKdcfGRmpvLw8HTlypFBoXx6VZp98+eWX6tat2xmFGfnPy3fffbfI/6QoeMyVin+tl+YYUJp1FLz/d999p2uvvVZXXnmlJk6cqBo1asjPz09Tpkzxuqh67969vb5oo3///oUuaD9y5EhNnDhRL7zwgldAKx2/PlmnTp28aikpKV4h9vbt29W1a1eFhYXpyy+/LJPn3KFDhxQcHHxWx24AKA8IpQCgHIuPj9fXX39d6Bev/I8qnfzNQvn/C17Q5s2bFRwcXOz/wJ9K/kcpSnLfm266SdOmTdPChQv122+/yTTN0350r+B9R44cqU8++UTR0dFKT09X3759vZb5+OOP1b9/f7300ktWLSsrS4cPHz7t+qtUqVLkclu3bvX6SE69evX0448/qkuXLqf9hc/hcKhLly7q0qWLXn75ZT3//PN6/PHHtWjRoiK/EaygkuynypUry+12n3ZdZeFsHtui5D8v//jjD6+zbFJTUwudCZF/5tThw4e9Pt518lmAixcvVmpqqmbNmqUrr7zSqqekpBS77YK/aObl5WnLli1eYV5p9vfJfv75Z23evFnTpk3zujDzggULCi17tmdCfPzxx6pbt65mzZrlta6nn3660LIRERHq0aOH3n//ffXr10/Lli3T2LFjvZY5m7lLYtWqVbr++uuVkJCgjz76qFDQIcn6mNmaNWt09dVXW/U1a9bI4/F4fQytKI0aNZJ0fP8X3Kfx8fFatGiRMjMzvc6W+uOPP7zun/882bRpU6F1b9y4UVWrVlVISIgCAwMVHBxc7HIOh8MKjOLj4wttp6htF6Wk++Tw4cNavny5Bg8eXGiekmy7Xr16kqRq1arZcmw5G5988okCAwM1b948rwu2T5kyxWu5l156yeu4cnKgOWHCBI0YMUJDhw7Vo48+Wmg7LVq0KPS6LRjYpaamqmvXrsrOztbChQtVo0aNYnsuzb/BKSkp1lnPAFCRcU0pACjHrr76arndbr322mte9VdeeUWGYXh9HbgkrVixwutaG9u3b9fs2bPVtWvXU569s3///kK1I0eOaOzYsapatarXNTKKk5SUpIiICM2YMUMzZsxQ69atS/yxn8aNG+viiy+27lujRg2v4EE6/r/qJ/8v/Pjx4097rSzp+C9iK1eu9PqIxxdffKHt27d7LXfjjTdq586deuuttwqt49ixY8rIyJBU9Jlj+b9EF/X17Sc73X5yOp3q06ePPvnkE23YsKHQ/YvaX2fjbB7bonTp0kUul0uTJk3yqp/8PJZO/JJc8GvTMzIyNG3atEI9St5nUuTk5GjixIleyyUkJCgyMlJvvfWW8vLyrPr7779fKBAr6f4uSlH9mKapcePGFVo2JCREks445CtqW6tWrdKKFSuKXP7WW2/Vr7/+qocfflhOp7NQwHs2c5/Ob7/9ph49eqh27dr64osvij0LpHPnzoqIiCj0HJk0aZKCg4NP+81q+R9VW7NmjVc9OTlZubm5XrN5PB5NmDDBa7kaNWqoZcuWmjZtmtd+2bBhg+bPn28FZU6nU127dtXs2bO1ZcsWa7m9e/dq+vTpateunfWRt+TkZK1YsULr16+3ljt48KDXNb6KU9J9Mn/+fElS165dC81dkm0nJycrNDRUzz//vNfHQPOV9bHlbDidThmG4XUc2rJlS6FvImzVqpWSkpKsPwWvf5b/TXj9+vUr9iy0KlWqeN0/KSlJgYGBko4fi66++mrt3LlTX375ZZEfzyuoNP8G//DDD7riiitK9FgAQHnGmVIAUI717NlTnTp10uOPP64tW7aoRYsWmj9/vmbPnq2hQ4dav9Dna9asmZKTk72+jlo6/tGFU5kwYYI+++wz9ezZU3Fxcdq9e7f+85//aNu2bXr33XeLvSBxQX5+furdu7c+/PBDZWRk6N///nepZr3pppv01FNPKTAwUAMHDix0baZrrrlG7777rsLCwtSkSROtWLFCX3/9tSIjI0+77jvvvFMff/yxunXrphtvvFF//vmn3nvvvUKP36233qqPPvpI9957rxYtWqS2bdvK7XZr48aN+uijjzRv3jwlJCTomWee0bfffqsePXooPj5e+/bt08SJExUbG3vKa2/lK8l+euGFF7Ro0SK1adNGd911l5o0aaKDBw/qhx9+0Ndff33aj1SWxtk8tkWJjo7WAw88oJdeeknXXnutunXrph9//FFfffWVqlat6nUmSNeuXRUXF6eBAwdaIcp//vMfRUVFadu2bdZyV1xxhapUqaL+/fvr/vvvl2EYevfddwuFaf7+/hoxYoSGDBmizp0768Ybb9SWLVs0depU1atXz2vbJd3fRWnUqJHq1aunhx56SDt37lRoaKg++eSTIq+pkx/q3n///UpOTi4yKDqVa665RrNmzdL111+vHj16KCUlRa+//rqaNGmio0ePFlq+R48eioyM1MyZM9W9e3evj8ed7dyncuTIESUnJ+vQoUN6+OGHNWfOHK/b69WrZ4VJQUFB+te//qVBgwbphhtuUHJysr777ju99957eu6557wuPl6UunXrqlmzZvr66691xx13WPVevXqpdevWevDBB/XHH3+oUaNG+vzzz63XS8H9/+KLL6p79+5KTEzUwIEDdezYMY0fP15hYWEaMWKEtdyzzz6rBQsWqF27drrvvvvkcrn0xhtvKDs7W2PGjLGWe+SRR/Tee+/pqquu0pAhQxQSEqK3335bcXFxOnjw4CnPgCrpPpkzZ47atWtX6JpJJd12aGioJk2apFtvvVWXXnqp+vbta73W5syZo7Zt2xYZHvtCjx499PLLL6tbt2665ZZbtG/fPk2YMEEXXXSRfvrpp9Pef/Xq1brtttsUGRmpLl26FArorrjiCq8zZYvSr18/rV69WnfccYd+++03/fbbb9ZtlSpVUq9evbyWL+m/wWvXrtXBgwd13XXXnXYOACj3bP62PwDAWSjqq+OPHDliDhs2zIyJiTH9/PzM+vXrmy+++KLXV2yb5vGvox40aJD53nvvmfXr1zcDAgLMSy65xFy0aNFptzt//nzzqquuMqtXr276+fmZ4eHhZteuXQt95fXpLFiwwJRkGoZhbt++vVT3/f33362v1F66dGmh2w8dOmTefvvtZtWqVc1KlSqZycnJ5saNG834+Hizf//+1nKLFi0yJRWa+6WXXjJr1qxpBgQEmG3btjXXrFlT6GvZTfP4V46PHj3abNq0qRkQEGBWqVLFbNWqlTly5EgzLS3NNE3TXLhwoXndddeZMTExpr+/vxkTE2PefPPN5ubNm087Z2n20969e81BgwaZtWrVMv38/Mzq1aubXbp0Md98881C886cOfO02y7YQ8Gvbi/pY5v/Fe/ff/+91/qKeszz8vLMJ5980qxevboZFBRkdu7c2fztt9/MyMhIr6+CN03TXLt2rdmmTRvT39/fjIuLM19++WVrW/lfZW+aprls2TLz8ssvN4OCgsyYmBjzkUceMefNm1fk/n711VfN+Ph4MyAgwGzdurW5bNkys1WrVma3bt28livJ/i7Or7/+aiYlJZmVKlUyq1atat51113mjz/+aEoyp0yZ4vVYDBkyxIyKijINwyj0Gj/Zyc9Lj8djPv/889Y8l1xyifnFF1+Y/fv3N+Pj44tcx3333WdKMqdPn17k7SWdO//5WhIpKSnWa7ioPwWfS/nefPNNs2HDhqa/v79Zr14985VXXil0bCvOyy+/bFaqVMnMzMz0qu/fv9+85ZZbzMqVK5thYWHmgAEDzGXLlpmSzA8//NBr2a+//tps27atGRQUZIaGhpo9e/Y0f/3110Lb+uGHH8zk5GSzUqVKZnBwsNmpUydz+fLlhZZbt26d2b59ezMgIMCMjY01R40aZb766qumJHPPnj3Wcmdy7PF4PGa1atXMMWPGFPl4lHTbpnn8NZucnGyGhYWZgYGBZr169cwBAwaYa9assZbp37+/GRISUmg7HTp0MJs2bVqoHh8fb/bo0cP6ubjjxdNPP21KMvfv3+9VL2p7kydPto6TjRo1MqdMmWLd/3Tyt1/cn4Kv0eLEx8cXe/+TX3ulObY/+uijZlxcXImf6wBQnhmmeQZXHQUAlDuGYWjQoEHnzf9yo2gX8n46fPiwqlSpomeffVaPP/64rdv2eDyKiopS7969i/yIVEUzbNgwTZ48WXv27Cn0TXQVRVpamurWrasxY8ZY39xZnM8++0zXX3+9li5dqrZt29rU4XFDhw7VG2+8oaNHj57VlyCsXr1abdq00S+//OL1ETU7to2yk52drdq1a+sf//iHHnjgAV+3AwDnHNeUAgAAtjt27FihWv4Ftzt27HhOt52VlVXoY33vvPOODh48eM63fT7IysrSe++9pz59+lTYQEqSwsLC9Mgjj+jFF1/0+rbDk597brdb48ePV2hoqC699NJz2tPJ205NTdW7776rdu3alUko9PzzzxcbSJ3rbaNsTJkyRX5+frr33nt93QoA2IJrSgEAANvNmDFDU6dO1dVXX61KlSpp6dKl+uCDD9S1a9dzfqbKypUrNWzYMN1www2KjIzUDz/8oMmTJ6tZs2a64YYbzum2fWnfvn36+uuv9fHHHys1NfWCOAvj0UcfLfSNakOGDNGxY8eUmJio7OxszZo1S8uXL9fzzz9f7IXXy0piYqI6duyoxo0ba+/evZo8ebLS09P15JNPnvW6W7durdatW/tk2yg79957L4EUgAsKoRQAALBd8+bN5XK5NGbMGKWnp1sXP3/22WfP+bZr166tWrVq6dVXX9XBgwcVERGh2267TS+88EKJLtpfXv3666/q16+fqlWrpldffdX6RsgLTefOnfXSSy/piy++UFZWli666CKNHz9egwcPPufbvvrqq/Xxxx/rzTfflGEYuvTSSzV58uRC3yZa0bYNAEBxfHpNKbfbrREjRui9997Tnj17FBMTowEDBuiJJ56wvgXENE09/fTTeuutt3T48GG1bdtWkyZNOu1XrgIAAAAAAOD85dNrSo0ePVqTJk3Sa6+9pt9++02jR4/WmDFjNH78eGuZMWPG6NVXX9Xrr7+uVatWKSQkRMnJycrKyvJh5wAAAAAAADgbPj1T6pprrlF0dLQmT55s1fr06aOgoCC99957Mk1TMTExevDBB/XQQw9JOv5NKtHR0Zo6dar69u3rq9YBAAAAAABwFnx6TakrrrhCb775pjZv3qwGDRroxx9/1NKlS/Xyyy9LklJSUrRnzx4lJSVZ9wkLC1ObNm20YsWKIkOp7OxsZWdnWz97PB4dPHhQkZGR1kcCAQAAAAAAcG6YpqkjR44oJiZGDkfxH9LzaSj1j3/8Q+np6WrUqJGcTqfcbreee+459evXT5K0Z88eSVJ0dLTX/aKjo63bTjZq1CiNHDny3DYOAAAAAACAU9q+fbtiY2OLvd2nodRHH32k999/X9OnT1fTpk21fv16DR06VDExMerfv/8ZrfOxxx7T8OHDrZ/T0tIUFxenlJQUhYaGSpIcDoccDoc8Ho88Ho+1bH7d7Xar4Kcai6s7nU4ZhqG8vDyvHpxOp6TjF3IvSd3lcsk0Ta+6YRhyOp2FeiyuzkzMxEzMxEzMxEzMxEzMxEzMxEzMxEzMdD7MlJ6erjp16qhy5co6FZ+GUg8//LD+8Y9/WB/Du/jii7V161aNGjVK/fv3V/Xq1SVJe/fuVY0aNaz77d27t9ivMQ4ICFBAQEChekREhBVKAQAAAAAA4NxwuY7HTae7jJJPv30vMzNTDod3C/mpmyTVqVNH1atX18KFC63b09PTtWrVKiUmJtraKwAAAAAAAMqOT8+U6tmzp5577jnFxcWpadOmWrdunV5++WXdcccdko4nakOHDtWzzz6r+vXrq06dOnryyScVExOjXr16+bJ1AAAAAAAAnAWfhlLjx4/Xk08+qfvuu0/79u1TTEyM7rnnHj311FPWMo888ogyMjJ099136/Dhw2rXrp3mzp2rwMBAH3YOAAAAAACAs2GYBa+UVQGlp6crLCxMaWlpXFMKAAAAAIByyuPxKCcnx9dtQJKfn5918fSilDSL8emZUgAAAAAAAKeTk5OjlJQUr299g2+Fh4erevXqp72Y+akQSgEAAAAAgPOWaZravXu3nE6natWqVegL02Av0zSVmZmpffv2SZJq1KhxxusilAIAAAAAAOetvLw8ZWZmKiYmRsHBwb5uB5KCgoIkSfv27VO1atVO+VG+UyFeBAAAAAAA5y232y1J8vf393EnKCg/IMzNzT3jdRBKAQAAAACA897ZXLsIZa8s9gehFAAAAAAAAGxHKAUAAAAAAFACU6dOVXh4eKnuk5mZqT59+ig0NFSGYejw4cPnpLfyiFAKAAAAAACUO4ZhnPLPiBEjfN2iJGnatGn67rvvtHz5cu3evVthYWFlst6OHTtq6NChZbIuX+Hb9wAAAAAAQLmze/du6+8zZszQU089pU2bNlm1SpUq+aKtQv788081btxYzZo183UrRcrJyfHZReQ5UwoAAAAAAJQ71atXt/6EhYXJMAzr52rVqunll19WbGysAgIC1LJlS82dO9e675YtW2QYhj788ENdccUVCgwMVLNmzbRkyZJS9bB//34lJCTo+uuvV3Z2dqHbO3bsqJdeeknffvutDMNQx44dJUnZ2dl66KGHVLNmTYWEhKhNmzZavHixdb/U1FTdfPPNqlmzpoKDg3XxxRfrgw8+sG4fMGCAlixZonHjxllnhm3ZsqXIjxd+9tlnXhclHzFihFq2bKm3335bderUUWBgoCTp8OHDuvPOOxUVFaXQ0FB17txZP/74Y6kej9IilAIAAAAAABXKuHHj9NJLL+nf//63fvrpJyUnJ+vaa6/V77//7rXcww8/rAcffFDr1q1TYmKievbsqdTU1BJtY/v27Wrfvr2aNWumjz/+WAEBAYWWmTVrlu666y4lJiZq9+7dmjVrliRp8ODBWrFihT788EP99NNPuuGGG9StWzerv6ysLLVq1Upz5szRhg0bdPfdd+vWW2/V6tWrrfkSExN11113affu3dq9e7dq1apV4sfnjz/+0CeffKJZs2Zp/fr1kqQbbrhB+/bt01dffaW1a9fq0ksvVZcuXXTw4MESr7e0CKUAAAAAAECF8u9//1uPPvqo+vbtq4YNG2r06NFq2bKlxo4d67Xc4MGD1adPHzVu3FiTJk1SWFiYJk+efNr1b9q0SW3btlVycrKmTJkip9NZ5HIREREKDg6Wv7+/qlevroiICG3btk1TpkzRzJkz1b59e9WrV08PPfSQ2rVrpylTpkiSatasqYceekgtW7ZU3bp1NWTIEHXr1k0fffSRJCksLEz+/v4KDg62zg4rroei5OTk6J133tEll1yi5s2ba+nSpVq9erVmzpyphIQE1a9fX//+978VHh6ujz/+uMTrLS2uKQUAAAAAACqM9PR07dq1S23btvWqt23bttDH0RITE62/u1wuJSQk6LfffpMkNW3aVFu3bpUktW/fXl999ZUk6dixY2rfvr1uueWWQiFXSfz8889yu91q0KCBVz07O1uRkZGSJLfbreeff14fffSRdu7cqZycHGVnZys4OLjU2ytKfHy8oqKirJ9//PFHHT161Np+vmPHjunPP/8sk20WhVAKAAAAAADgJF9++aVyc3MlSUFBQVY9ICBASUlJ+uKLL/Twww+rZs2apVrv0aNH5XQ6tXbt2kJnN+VfnP3FF1/UuHHjNHbsWF188cUKCQnR0KFDlZOTc8p1OxwOmabpVcufoaCQkJBCPdWoUcPrulb5Tr5GVVkilAIAAAAAABVGaGioYmJitGzZMnXo0MGqL1u2TK1bt/ZaduXKlbryyislSXl5eVq7dq0GDx4s6fjZREVxOBx69913dcstt6hTp05avHixYmJiStzfJZdcIrfbrX379ql9+/ZFLrNs2TJdd911+tvf/iZJ8ng82rx5s5o0aWIt4+/vL7fb7XW/qKgoHTlyRBkZGVbwlH/NqFO59NJLtWfPHrlcLtWuXbvEs5wtrikFAAAAAAAqlIcfflijR4/WjBkztGnTJv3jH//Q+vXr9cADD3gtN2HCBH366afauHGjBg0apEOHDumOO+447fqdTqfef/99tWjRQp07d9aePXtK3FuDBg3Ur18/3XbbbZo1a5ZSUlK0evVqjRo1SnPmzJEk1a9fXwsWLNDy5cv122+/6Z577tHevXu91lO7dm2tWrVKW7Zs0YEDB+TxeNSmTRsFBwfrn//8p/78809Nnz5dU6dOPW1PSUlJSkxMVK9evTR//nxt2bJFy5cv1+OPP641a9aUeLbSIpQCAAAAAAAVyv3336/hw4frwQcf1MUXX6y5c+fq888/V/369b2We+GFF/TCCy+oRYsWWrp0qT7//HNVrVq1RNtwuVz64IMP1LRpU3Xu3Fn79u0rcX9TpkzRbbfdpgcffFANGzZUr1699P333ysuLk6S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h4KCAgQEBKC6uhqLFi0CgFaXAe/YsQOSJEGj0aC4uBjR0dHQ6XRMSBER0SOJv75Hj6WlS5dCkqQWXy+//HJnh0dED7HWxhZJkpCdnd3Z4RFRJ1i1ahV8fX0xevRo1NfXIzs7G7169WqxbW1tLWbPno0BAwYgMjIS/v7+2LVrFwDOX4jo/kpPT291jHn66ac7Ozx6RHH5Hj2WKioqUFFR0WKdSqWCu7u7lSMiokdFcXFxq3Xu7u53/flmIqK74fyFiO6n2tpalJeXt1hnY2MDtVpt5YjoccCkFBERERERERERWR2X7xERERERERERkdUxKUVERERERERERFbHpBQREREREREREVkdk1JERERERERERGR1TEoREREREREREZHVMSlFRERE1ILIyEiMHz++s8MgIiIiemQxKUVERERERERERFbHpBQRERGRhfR6PQYPHozu3bvDw8MDs2bNQl1dnVyfmpoKJycnZGVlQavVQpIkvPTSSzh//rzcprGxEe+99x6cnJzg4uKC2NhYREREmD2d5eXlhbVr15r17efnh08++aTNsQBAcnIyPDw8YG9vjwkTJkCv18PJycmsza5duzBs2DB069YN3t7eWLhwIRobG9v9XhERERG1hkkpIiIiIgsplUqsW7cOp06dwpYtW3Dw4EHMnz/frM2VK1ewatUqpKWl4eeff0ZZWRliYmLk+uXLlyM9PR0pKSkwGAyoqanBzp07OzwWg8GAqKgoREdHw2QyISQkBJ9++qnZNbKzszF16lRER0fj9OnT2LRpE1JTU+9oR0RERNSRFEII0dlBEBERET1oIiMjUVVV1aZE0fbt2xEVFYVLly4BuPmk1LRp01BcXIx+/foBADZs2IBFixbhn3/+AQC4uroiJiZGTlQ1NTXB29sbQ4cOlfv08vLC3LlzMXfuXLkvPz8/jB8/3uxpqbvF8sYbb6Curg4ZGRlymylTpiAjIwNVVVUAgNGjRyM4OBgLFiyQ23zzzTeYP38+/v7773vePxEREdF/0bWzAyAiIiJ62Ozfvx/Lli1DQUEBampq0NjYiIaGBly5cgX29vYAAHt7ezkhBQBubm64cOECAKC6uhrl5eUICAiQ67t06YLhw4ejubm5Q2MpLCzEhAkTzM4JCAgwS1IdP34cBoPB7MmopqamO+6JiIiIqCNx+R4RERGRBUpLSzFu3DgMGTIEP/zwA3Jzc7F+/XoAwPXr1+V2NjY2ZucpFApY+oC6Uqm845wbN25YHMu91NXVYeHChTCZTPLrxIkTOHPmDLp162ZRzERERERtxSeliIiIiCyQm5uL5uZmrF69Gkrlze/3tm3bZtE1HB0d8cQTT8BoNGLUqFEAbj6ZdOzYMfj5+cntevfubbY5ek1NDUpKSiyKxcfHB0aj0azs9uNhw4ahsLAQ/fv3t+g+iIiIiNqDSSkiIiKiVlRXV8NkMpmV9erVCzdu3EBSUhLCwsJgMBiwceNGi689Z84cLFu2DP3798eAAQOQlJSEyspKKBQKuc0LL7yA1NRUhIWFwcnJCQkJCejSpYtc379//3vGMmfOHIwaNQp6vR5hYWE4ePAgMjMzzfpJSEjAuHHj4OnpiVdeeQVKpRLHjx/HyZMnsWTJEovvjYiIiKgtuHyPiIiIqBWHDx/G0KFDzV5paWnQ6/VYvnw5Bg0ahPT0dCxbtszia8fGxmLSpEmYOnUqAgMDIUkSQkNDzZbLLViwAEFBQRg3bhzGjh2L8ePHm+1T5evre89YdDodNm7cCL1eD19fX+zZswfvv/++WT+hoaHIyMjA3r174e/vjxEjRmDNmjVQq9X/4V0jIiIiahv++h4RERHRA6C5uRlarRavvfYaFi9efF/7mjlzJgoKCpCdnX1f+yEiIiK6Gy7fIyIiIuoEZ8+exd69exEUFIRr167hiy++QElJCSZPntzhfa1atQohISHo3r07MjMzsWXLFmzYsKHD+yEiIiKyBJNSRERERJ1AqVQiNTUVMTExEEJg0KBB2L9/P7RabYf39dtvv2HFihWora2Ft7c31q1bhxkzZnR4P0RERESW4PI9IiIiIiIiIiKyOm50TkREREREREREVsekFBERERERERERWR2TUkREREREREREZHVMShERERERERERkdUxKUVERERERERERFbHpBQREREREREREVkdk1JERERERERERGR1TEoREREREREREZHVMSlFRERERERERERW9z+r49j9+/15xwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_dir = \"v_score_runs/run_insight_2\"\n", + "layers = [0,2,5,10,15,20]\n", + "top_head = 4\n", + "extra_rank_index = 2000\n", + "\n", + "for layer in layers:\n", + " visualize_top_v_scores_notebook(run_dir, layer, top_head, extra_rank_index, ylim_max=80)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ee70ede3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeJ9JREFUeJzs3Xd4U3X/xvE7SemmKZRSKBtklC2UUVHZFkQERRFEKYj4qGxEHI8yXAgqggi4EJQ9HDgABQQUZAsIKkMpSyibFgpdyfn94a95CG0hhXJS6vt1Xb0u880Zn09OcmxvzvnGYhiGIQAAAAAAAMBEVm8XAAAAAAAAgH8fQikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAwL/eypUrZbFYtHLlSm+Xkm9ZLBaNGDHC22UgB82aNVOzZs28XYbXHDx4UP7+/lqzZo23S8mVadOmyWKxaN++fd4uBXmkR48eCg4OvuJyJ0+eVFBQkBYtWmRCVQCQfxFKAcANxmKxePRjRsCS075ff/31675voCBbtGjRvyoE/OOPP9SmTRsFBweraNGievjhh3X8+HGP13/ppZfUqFEjNWnS5DpWmT+dPn1aPj4+mjdvnrdLybc+//xzPfDAA6pYsaICAwNVtWpVPfXUUzpz5oxH6x88eFAjR45Uw4YNVaRIERUrVkzNmjXTsmXLrrqmsLAwPfroo3rxxRevehsAUBD4eLsAAEDuTJ8+3e3xp59+qqVLl2YZj4qKMqWe1q1bq3v37m5jN998syn7BgqqRYsWaeLEif+KYOrQoUO6/fbbZbfb9dprr+ncuXN68803tX37dm3YsEG+vr6XXf/48eP65JNP9Mknn5hUcf7y3XffyWKx6I477vB2KfnWY489psjISD300EMqW7astm/frnfffVeLFi3SL7/8ooCAgMuuv3DhQo0ePVodO3ZUXFycMjIy9Omnn6p169b6+OOP1bNnz6uq6/HHH9c777yjH374QS1atLiqbQDAjY5QCgBuMA899JDb43Xr1mnp0qVZxs1SpUoVr+0beSclJUW+vr6yWrmIGnnL6XQqLS1N/v7+2T7/2muvKTk5WZs3b1bZsmUlSQ0bNlTr1q01bdo0PfbYY5fd/owZM+Tj46P27dvnee03gkWLFqlJkyYKDQ31din51oIFC7Lc3lq/fn3FxcVp5syZevTRRy+7fvPmzXXgwAEVK1bMNfb444+rbt26GjZs2FWHUlFRUapZs6amTZtGKAXgX4vfPAGgAEpOTtZTTz2lMmXKyM/PT1WrVtWbb74pwzDclrNYLOrbt69mzpypqlWryt/fX/Xr19ePP/6Yq/1duHBBKSkpHi+/YMECWSwWrVq1Kstz77//viwWi3bs2JHtups2bZLFYsn2qojMKwa++eYbSdL+/fv15JNPqmrVqgoICFBYWJjuv/9+j+ZvKV++vHr06JFlPLu5e1JTUzV8+HDddNNN8vPzU5kyZTR06FClpqa6Lbd06VLdeuutCg0NVXBwsKpWrarnn3/+irXk5jj9/fffeuSRRxQRESE/Pz/VqFFDH3/8sdsymXNozZkzRy+88IJKlSqlwMBAJSUlXbGWTJ6+tplz5qxZs0aDBw9WeHi4goKCdM8992S5PcvpdGrEiBGKjIxUYGCgmjdvrt9//z3LsRgxYoQsFkuWmrKbn2fhwoVq166dIiMj5efnp0qVKunll1+Ww+HIsv7EiRNVsWJFBQQEqGHDhvrpp5+u6Xhn56efftL999+vsmXLutYdNGiQLly44FqmR48emjhxoiT3W2RzIy0tTcOGDVP9+vVlt9sVFBSk2267TStWrHAtYxiGypcvrw4dOmRZPyUlRXa7Xf/5z39y3ffF79caNWrIz89PS5YsybHWzz77THfddZcrkJKkVq1aqUqVKh7dkvbll1+qUaNG2c7j4+kxPXbsmHr16qWIiAj5+/urTp062Z5jPD23XrhwQf3791exYsVUuHBh3X333fr77789nptt8eLFuu222xQUFKTChQurXbt2+u2337Is53Q6tWTJErVr1+6q9p2b88W8efM0cuRIlSpVSoULF9Z9992nxMREpaamauDAgSpevLiCg4PVs2fPHN8T8+fPV/Xq1RUQEKCYmBht375d0j/n/Ztuukn+/v5q1qxZlvOIJ5+by8luvrV77rlH0j+3jl5JjRo13AIpSfLz89Odd96pQ4cO6ezZs1nW2bt3r2JjYxUUFKTIyEi99NJLWd4n0j9XG3/99dfZPgcA/wZcKQUABYxhGLr77ru1YsUK9erVS3Xr1tV3332np59+Wn///bfefvttt+VXrVqluXPnqn///vLz89OkSZPUpk0bbdiwQTVr1rzi/qZNm6ZJkybJMAxFRUXphRde0IMPPnjZddq1a6fg4GDNmzdPTZs2dXtu7ty5qlGjRo77jo6OVsWKFTVv3jzFxcVlWbdIkSKKjY2VJG3cuFE///yzunTpotKlS2vfvn2aPHmymjVrpt9//12BgYFX7O9KnE6n7r77bq1evVqPPfaYoqKitH37dr399tvavXu3vvzyS0nSb7/9prvuuku1a9fWSy+9JD8/P/35558eT8zsyXE6evSoGjdu7PoDMDw8XIsXL1avXr2UlJSkgQMHum3z5Zdflq+vr4YMGaLU1NQr3iZ1sdy+tv369VORIkU0fPhw7du3T+PGjVPfvn01d+5c1zLPPfecxowZo/bt2ys2Nlbbtm1TbGxsrgLPS02bNk3BwcEaPHiwgoOD9cMPP2jYsGFKSkrSG2+84Vpu8uTJ6tu3r2677TYNGjRI+/btU8eOHVWkSBGVLl3atZynxzsn8+fP1/nz5/XEE08oLCxMGzZs0IQJE3To0CHNnz9fkvSf//xHhw8fzva2XE8lJSXpo48+UteuXdW7d2+dPXtWU6ZMUWxsrDZs2KC6devKYrHooYce0pgxY3Tq1CkVLVrUtf7XX3+tpKQk11WQue37hx9+0Lx589S3b18VK1ZM5cuXz7bOv//+W8eOHVN0dHSW5xo2bHjFSaDT09O1ceNGPfHEE1me8/SYXrhwQc2aNdOff/6pvn37qkKFCpo/f7569OihM2fOaMCAAZJyd27t0aOH5s2bp4cffliNGzfWqlWr3IKjy5k+fbri4uIUGxur0aNH6/z585o8ebJuvfVWbdmyxe213Lhxo44fP64777wz1/vO7fli1KhRCggI0LPPPqs///xTEyZMUKFChWS1WnX69GmNGDFC69at07Rp01ShQgUNGzbMbf2ffvpJX331lfr06ePa3l133aWhQ4dq0qRJevLJJ3X69GmNGTNGjzzyiH744QfXup58bnIrISFBkrKETbndRmBgYJbzncPhUJs2bdS4cWONGTNGS5Ys0fDhw5WRkaGXXnrJbdn69evr7bff1m+//ebR/3MBoMAxAAA3tD59+hgXn86//PJLQ5LxyiuvuC133333GRaLxfjzzz9dY5IMScamTZtcY/v37zf8/f2Ne+6554r7vuWWW4xx48YZCxcuNCZPnmzUrFnTkGRMmjTpiut27drVKF68uJGRkeEaO3LkiGG1Wo2XXnrpsus+99xzRqFChYxTp065xlJTU43Q0FDjkUcecY2dP38+y7pr1641JBmffvqpa2zFihWGJGPFihWusXLlyhlxcXFZ1m/atKnRtGlT1+Pp06cbVqvV+Omnn9yWe++99wxJxpo1awzDMIy3337bkGQcP378sr1lx9Pj1KtXL6NkyZLGiRMn3Nbv0qWLYbfbXa9HZr8VK1bM9jXKqYbhw4e7Hnv62k6dOtWQZLRq1cpwOp2u8UGDBhk2m804c+aMYRiGkZCQYPj4+BgdO3Z02+aIESMMSW7HYvjw4UZ2v8Jk7is+Pv6ydf7nP/8xAgMDjZSUFMMw/nnvhIWFGQ0aNDDS09Ndy02bNs2QdFXHOyfZ1TNq1CjDYrEY+/fvd41d+rm+kkvflxkZGUZqaqrbMqdPnzYiIiLcPiO7du0yJBmTJ092W/buu+82ypcv7zpmuelbkmG1Wo3ffvvtinVv3Lgxy3sm09NPP21Ich2n7Pz555+GJGPChAlu47k5puPGjTMkGTNmzHCNpaWlGTExMUZwcLCRlJRkGIbn59bNmzcbkoyBAwe6LdejR48sn6NL37Nnz541QkNDjd69e7utm5CQYNjt9izjL774olGuXDnX49zsO7fni5o1axppaWmu5bp27WpYLBajbdu2buvHxMS41WQY/7wn/Pz83D6b77//viHJKFGihOs1Nox/zu+efI6z+9zkRq9evQybzWbs3r37qtbfs2eP4e/vbzz88MNu43FxcYYko1+/fq4xp9NptGvXzvD19c3y/4Cff/7ZkGTMnTv3quoAgBsdt+8BQAGzaNEi2Ww29e/f3238qaeekmEYWrx4sdt4TEyM6tev73pctmxZdejQQd999122tzhdbM2aNRowYIDuvvtuPf7449q8ebNq1qyp559//oq3VTzwwAM6duyY27cELliwQE6nUw888MAV101PT9fnn3/uGvv+++915swZt3Uvnrw2PT1dJ0+e1E033aTQ0FD98ssvl92Hp+bPn6+oqChVq1ZNJ06ccP1kzg+SebtU5nwvCxculNPpzPV+rnScDMPQZ599pvbt28swDLdaYmNjlZiYmKXnuLi4K07wm5PcvraPPfaY2y1ot912mxwOh/bv3y9JWr58uTIyMvTkk0+6rdevX7+rqi+7Os+ePasTJ07otttu0/nz57Vz505J/9wSevLkSfXu3Vs+Pv+7iLxbt24qUqSI2/Y8Pd6e1JOcnKwTJ07olltukWEY2rJlyzX1ejGbzea68s3pdOrUqVPKyMhQdHS02/GpUqWKGjVqpJkzZ7rGTp06pcWLF6tbt26uY5bbvps2barq1atfsc7M84Sfn1+W5zLnoLrcueTkyZOSlOU45eaYLlq0SCVKlFDXrl1dY4UKFVL//v117tw5123Gnp5bM29VvJr38tKlS3XmzBl17drV7XW22Wxq1KhRltd50aJFbldBebrvqzlfdO/eXYUKFXI9btSokQzD0COPPOK2XKNGjXTw4EFlZGS4jbds2dLtKq9GjRpJkjp16qTChQtnGd+7d69rLK8/N7NmzdKUKVP01FNPqXLlyrle//z587r//vsVEBCQ47fN9u3b1/XfmVejpaWlZfnGvsz344kTJ3JdBwAUBNy+BwAFzP79+xUZGen2S770v2/jywwBMmX3C3mVKlV0/vx5HT9+XCVKlPB4376+vurbt68roLr11ltzXLZNmzay2+2aO3euWrZsKemf2+/q1q2rKlWqXHY/derUUbVq1TR37lz16tXLtW6xYsXcJou9cOGCRo0apalTp+rvv/92m7MjMTHR474uZ8+ePfrjjz8UHh6e7fPHjh2T9E+Q9tFHH+nRRx/Vs88+q5YtW+ree+/Vfffd59Hk4lc6TlarVWfOnNEHH3ygDz744LK1ZKpQocIV95uT3L62F88XJP3vD7HTp09L+t/78qabbnJbrmjRollChNz47bff9MILL+iHH37IMmdWZp057dvHxyfLbWeeHu+cHDhwQMOGDdNXX33l6v3SevLKJ598orfeeks7d+5Uenq6a/zS4969e3f17dtX+/fvV7ly5TR//nylp6fr4Ycfdi2T2749fW9lhg3ZzceVedumJ8Gpccl8PLk5pvv371flypWzfA4vPWd6em7dv3+/rFZrltfg0lqys2fPHknKcdLrkJAQ138nJCTol19+cbsdzNN9Hz9+PNfni0s/w3a7XZJUpkyZLONOp1OJiYkKCwu7qvUluX0+PPncXLhwIctnKLv/f/3000/q1auXYmNj9eqrr7o9d/z4cbd/jAkODs4yV5nD4VCXLl30+++/a/HixYqMjMyyD6vVqooVK7qNZf5/7dL5sjLfu7mdNw4ACgpCKQBAnsr8A+PUqVOXXc7Pz08dO3bUF198oUmTJuno0aNas2aNXnvtNY/288ADD+jVV1/ViRMnVLhwYX311Vfq2rWr21UR/fr109SpUzVw4EDFxMTIbrfLYrGoS5cuV7xaKac/EBwOh2w2m+ux0+lUrVq1NHbs2GyXz3w9AgIC9OOPP2rFihX69ttvtWTJEs2dO1ctWrTQ999/77bNq5HZz0MPPZRlrq1MtWvXdnt8tVdJSbl/bXPq79IwwROXOzYXO3PmjJo2baqQkBC99NJLqlSpkvz9/fXLL7/omWeeuaor1jw93jnV17p1a506dUrPPPOMqlWrpqCgIP3999/q0aPHVdWTkxkzZqhHjx7q2LGjnn76aRUvXlw2m02jRo3SX3/95bZsly5dNGjQIM2cOVPPP/+8ZsyYoejoaFWtWtW1TG779vS9VbJkSUnSkSNHsjx35MgRFS1aNNurqDJlhh6XBhU3qsz3wPTp07MNVC4+vy1evFj+/v5q3rz5Ve8nN+eLnD7Dnn62r3Z9Tz83c+fOzfIteJfWsG3bNt19992qWbOmFixY4PZ6SlKDBg3c/uFm+PDhWSaH7927t7755hvNnDkzT74xL/O9ey1zWwHAjYxQCgAKmHLlymnZsmU6e/as27/oZ96qVK5cObflM/9l/mK7d+9WYGBgjldFXE7mLReerPvAAw/ok08+0fLly/XHH3/IMIwr3rp38bojR47UZ599poiICCUlJalLly5uyyxYsEBxcXF66623XGMpKSk6c+bMFbdfpEiRbJfbv3+/27+AV6pUSdu2bVPLli2v+C/dVqtVLVu2VMuWLTV27Fi99tpr+u9//6sVK1aoVatWl13Xk+NUuHBhORyOK24rL1zLa5udzPfln3/+6XaVx8mTJ7MEDplXTp05c8Z1W6SU9SrAlStX6uTJk/r88891++23u8bj4+Nz3PfFf+BnZGRo3759bn+c5+Z4X2r79u3avXu3PvnkE3Xv3t01vnTp0izLXutVEwsWLFDFihX1+eefu21r+PDhWZYtWrSo2rVrp5kzZ6pbt25as2aNxo0b57bMtfR9OaVKlVJ4eLg2bdqU5bnMCdkvp2zZsgoICLimY1quXDn9+uuvcjqdbldLXXrO9PTcWq5cOTmdTsXHx7td4fjnn39ethfpn9dZkooXL37Fz/G3336r5s2buwWAnu47PDzc1PPFtfD0cxMbG5vtZynTX3/9pTZt2qh48eJatGhRtt/WOHPmTLfbRS+92unpp5/W1KlTNW7cOLfbPS/ldDq1d+9et6t+d+/eLUlZrtTLfO9mXnEHAP82zCkFAAXMnXfeKYfDoXfffddt/O2335bFYlHbtm3dxteuXes2d8jBgwe1cOFC3XHHHZe9euf48eNZxs6ePatx48apWLFibvMf5aRVq1YqWrSo5s6dq7lz56phw4Ye3/YTFRWlWrVqudYtWbKkW/Ag/fMv8Jf+S/mECROuOFeW9M8fh+vWrVNaWppr7JtvvtHBgwfdluvcubP+/vtvffjhh1m2ceHCBSUnJ0vK/sqxzD+4s7t16VJXOk42m02dOnXSZ599ph07dmRZP7vjdS2u5bXNTsuWLeXj46PJkye7jV/6Ppb+94f7jz/+6BpLTk7WJ598kqVGyf1qibS0NE2aNMltuejoaIWFhenDDz90mwdn5syZWQIxT493drKrxzAMjR8/PsuyQUFBknTVIV92+1q/fr3Wrl2b7fIPP/ywfv/9dz399NOy2WxZAt5r6ftKOnXqlOWztXz5cu3evVv333//ZdctVKiQoqOjs4RauTmmd955pxISEty+CTIjI0MTJkxQcHCw6xtCPT23Zn7756XvswkTJly2l8x1Q0JC9Nprr7ndcpkp83Ocnp6upUuXZvlWPU/3bfb54lp4+rkpWbKkWrVq5faTKSEhQXfccYesVqu+++67HP/RpEmTJm7rXxxKvfHGG3rzzTf1/PPPu76R8XIufp8YhqF3331XhQoVct2unmnz5s2y2+2qUaPGFbcJAAURV0oBQAHTvn17NW/eXP/973+1b98+1alTR99//70WLlyogQMHuv6gz1SzZk3Fxsaqf//+8vPzc/0xM3LkyMvuZ+LEifryyy/Vvn17lS1bVkeOHNHHH3+sAwcOaPr06a5Jli+nUKFCuvfeezVnzhwlJyfrzTffzFWvDzzwgIYNGyZ/f3/16tUry5wwd911l6ZPny673a7q1atr7dq1WrZsmds8Jzl59NFHtWDBArVp00adO3fWX3/9pRkzZmR5/R5++GHNmzdPjz/+uFasWKEmTZrI4XBo586dmjdvnr777jtFR0frpZde0o8//qh27dqpXLlyOnbsmCZNmqTSpUtfdu6tTJ4cp9dff10rVqxQo0aN1Lt3b1WvXl2nTp3SL7/8omXLll3xlsrcuJbXNjsREREaMGCA3nrrLd19991q06aNtm3bpsWLF6tYsWJuV+fccccdKlu2rHr16uUKUT7++GOFh4frwIEDruVuueUWFSlSRHFxcerfv78sFoumT5+eJUzz9fXViBEj1K9fP7Vo0UKdO3fWvn37NG3aNFWqVMlt354e7+xUq1ZNlSpV0pAhQ/T3338rJCREn332Wba3nmWGuv3791dsbGy2QdHl3HXXXfr88891zz33qF27doqPj9d7772n6tWr69y5c1mWb9euncLCwjR//ny1bdtWxYsXd3v+Wvq+kueff17z589X8+bNNWDAAJ07d05vvPGGatWqleV2rOx06NBB//3vf5WUlOSacyk3x/Sxxx7T+++/rx49emjz5s0qX768FixY4LpiLPOqKE/PrfXr11enTp00btw4nTx5Uo0bN9aqVatcV8pc7kqzkJAQTZ48WQ8//LDq1aunLl26uN7X3377rZo0aaJ3331Xq1evVlJSUpZQKjf7NvN8cS1y87nJSZs2bbR3714NHTpUq1ev1urVq13PRUREqHXr1pdd/4svvtDQoUNVuXJlRUVFacaMGW7Pt27dWhEREa7H/v7+WrJkieLi4tSoUSMtXrxY3377rZ5//vksgdjSpUvVvn175pQC8O9lzpf8AQCul+y+Ov7s2bPGoEGDjMjISKNQoUJG5cqVjTfeeMP19e6ZJBl9+vQxZsyYYVSuXNnw8/Mzbr75ZmPFihVX3O/3339vtG7d2ihRooRRqFAhIzQ01LjjjjuM5cuX56r+pUuXGpIMi8ViHDx4MFfr7tmzx5BkSDJWr16d5fnTp08bPXv2NIoVK2YEBwcbsbGxxs6dO41y5coZcXFxruUyv/L80r7feusto1SpUoafn5/RpEkTY9OmTUbTpk3dvk7eMP75+vjRo0cbNWrUMPz8/IwiRYoY9evXN0aOHGkkJiYahmEYy5cvNzp06GBERkYavr6+RmRkpNG1a1ePvo48N8fp6NGjRp8+fYwyZcoYhQoVMkqUKGG0bNnS+OCDD7L0O3/+/Cvu++IaLv46eU9f28yvvN+4caPb9rJ7zTMyMowXX3zRKFGihBEQEGC0aNHC+OOPP4ywsDDj8ccfd1t/8+bNRqNGjQxfX1+jbNmyxtixY137uvir5NesWWM0btzYCAgIMCIjI42hQ4ca3333XbbH+5133jHKlStn+Pn5GQ0bNjTWrFlj1K9f32jTpo3bcp4c75z8/vvvRqtWrYzg4GCjWLFiRu/evY1t27YZkoypU6e6vRb9+vUzwsPDDYvFkuUzfqlL35dOp9N47bXXXP3cfPPNxjfffGPExcUZ5cqVy3YbTz75pCHJmDVrVrbPe9p35vs1N3bs2GHccccdRmBgoBEaGmp069bNSEhI8Gjdo0ePGj4+Psb06dOzPOfpMT169Kjr/ezr62vUqlXL7Xhk8vTcmpycbPTp08coWrSoERwcbHTs2NHYtWuXIcl4/fXXXctl9541jH8+H7GxsYbdbjf8/f2NSpUqGT169DA2bdpkGIZhDBkyxKhevXq2r4en+87s+2rPFzl9tocPH25IMo4fP+4ay+49ER8fb0gy3njjjSy9X7o/Tz83Ocn8/0R2P5eez7OT2VNOPxefS+Li4oygoCDjr7/+cr2nIyIijOHDhxsOh8Ntu3/88YchyVi2bNkVawCAgspiGFcxwygAoECwWCzq06dPtrdIIf/4Nx+nM2fOqEiRInrllVf03//+19R9O51OhYeH69577832trWCZtCgQZoyZYoSEhIUGBjo7XJypVevXtq9e7d++umnyy7nzWO6detW3XzzzZoxY4a6det2TduqXr267rrrLo0ZM8b0fSPvDBw4UD/++KM2b97MlVIA/rWYUwoAAOQLF08wnClzwu1mzZpd132npKRkua3v008/1alTp677vvODlJQUzZgxQ506dbrhAinpnwncN27cqDVr1rjGvHlMc3ovW63WLHPf5VZaWpoeeOCBHG9tvJ77Rt45efKkPvroI73yyisEUgD+1ZhTCgAA5Atz587VtGnTdOeddyo4OFirV6/W7Nmzdccdd6hJkybXdd/r1q3ToEGDdP/99yssLEy//PKLpkyZopo1a15xsu0b2bFjx7Rs2TItWLBAJ0+e9GgC5/yobNmySklJcRvz5jEdM2aMNm/erObNm8vHx0eLFy/W4sWL9dhjj6lMmTLXtG1fX99sv0XRjH0j74SFhWU7vxsA/NsQSgEAgHyhdu3a8vHx0ZgxY5SUlOSa/PyVV1657vsuX768ypQpo3feeUenTp1S0aJF1b17d73++useTdp/o/r999/VrVs3FS9eXO+8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6lTNnz9ft912mypVqqQhQ4bo1ltv1dSpUyVJpUqV0pAhQ1S3bl1VrFhR/fr1U5s2bTRv3jxJkt1ul6+vrwIDA11Xh+VUQ3bS0tL06aef6uabb1bt2rW1evVqbdiwQfPnz1d0dLQqV66sN998U6GhoVqwYIHH280t5pQCAAAAAAAFRlJSkg4fPqwmTZq4jTdp0iTL7WgxMTGu//bx8VF0dLT++OMPSVKNGjW0f/9+SdJtt92mxYsXS5IuXLig2267TQ8++GCWkMsT27dvl8PhUJUqVdzGU1NTFRYWJklyOBx67bXXNG/ePP39999KS0tTamqqAgMDc72/7JQrV07h4eGux9u2bdO5c+dc+8904cIF/fXXX3myz+wQSgEAAAAAAFxi0aJFSk9PlyQFBAS4xv38/NSqVSt98803evrpp1WqVKlcbffcuXOy2WzavHlzlqubMidnf+ONNzR+/HiNGzdOtWrVUlBQkAYOHKi0tLTLbttqtcowDLexzB4uFhQUlKWmkiVLus1rlenSOaryEqEUAAAAAAAoMEJCQhQZGak1a9aoadOmrvE1a9aoYcOGbsuuW7dOt99+uyQpIyNDmzdvVt++fSX9czVRdqxWq6ZPn64HH3xQzZs318qVKxUZGelxfTfffLMcDoeOHTum2267Ldtl1qxZow4dOuihhx6SJDmdTu3evVvVq1d3LePr6yuHw+G2Xnh4uM6ePavk5GRX8JQ5Z9Tl1KtXTwkJCfLx8VH58uU97uVaMacUAAAAAAAoUJ5++mmNHj1ac+fO1a5du/Tss89q69atGjBggNtyEydO1BdffKGdO3eqT58+On36tB555JErbt9ms2nmzJmqU6eOWrRooYSEBI9rq1Klirp166bu3bvr888/V3x8vDZs2KBRo0bp22+/lSRVrlxZS5cu1c8//6w//vhD//nPf3T06FG37ZQvX17r16/Xvn37dOLECTmdTjVq1EiBgYF6/vnn9ddff2nWrFmaNm3aFWtq1aqVYmJi1LFjR33//ffat2+ffv75Z/33v//Vpk2bPO4ttwilAAAAAABAgdK/f38NHjxYTz31lGrVqqUlS5boq6++UuXKld2We/311/X666+rTp06Wr16tb766isVK1bMo334+Pho9uzZqlGjhlq0aKFjx455XN/UqVPVvXt3PfXUU6patao6duyojRs3qmzZ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HRQREaHg4GA1aNBAy5Ytc1vmSueVtLQ09e3bVyVLlpS/v7/KlSunUaNG5WmdALJq1qyZ+vfvr6FDh6po0aIqUaKE6/eBzN9ftm7d6lr+zJkzslgsWrlypSTp9OnT6tatm8LDwxUQEKDKlStr6tSp11zXyZMn1bVrV5UqVUqBgYGqVauWZs+e7Xq+R48eWrVqlcaPH+/6PWbfvn1auXKlLBaLli9frujoaAUGBuqWW27Rrl27rrkmALlzub+PRowY4frsXvwzbdo01/oZGRnq27ev7Ha7ihUrphdffFGGYXi8//j4eP3888969tlnVaVKFX3++eduz2de+f3VV1+pevXq8vPz04EDB7Rx40a1bt1axYoVk91uV9OmTfXLL79k2f6RI0fUtm1bBQQEqGLFilqwYMHVvVC4IRBKId9LTk7W4MGDtWnTJi1fvlxWq1X33HOPW9r+7LPPasCAAfrjjz8UGxur0aNHa+bMmZo6darWrFmjpKSkPL032Wq16p133tFvv/2mTz75RD/88IOGDh0qSbrllls0btw4hYSE6MiRIzpy5IiGDBniWvett95SdHS0tmzZoieffFJPPPEEv9AB19ltt92ms2fPasuWLZKkVatWqVixYq4//jLHmjVr5p0Cc3Du3DndeeedWr58ubZs2aI2bdqoffv2OnDggNtylzuvvPPOO/rqq680b9487dq1SzNnznQL2ABcP5988omCgoK0fv16jRkzRi+99JKWLl3q0bovvviifv/9dy1evFh//PGHJk+erGLFil1zTSkpKapfv76+/fZb7dixQ4899pgefvhhbdiwQZI0fvx4xcTEqHfv3q7fY8qUKeNa/7///a/eeustbdq0ST4+PnrkkUeuuSYAuXO5v4+GDBni+uweOXJEb775pgIDAxUdHe1a/5NPPpGPj482bNig8ePHa+zYsfroo4883v/UqVPVrl072e12PfTQQ5oyZUqWZc6fP6/Ro0fro48+0m+//abixYvr7NmziouL0+rVq7Vu3TpVrlxZd955p86ePeu27osvvqhOnTpp27Zt6tatm7p06aI//vjj6l8w5G8GcIM5fvy4IcnYvn27ER8fb0gyxo0b57ZMRESE8cYbb7geZ2RkGGXLljU6dOjg0T7i4uI8XtYwDGP+/PlGWFiY6/HUqVMNu92eZbly5coZDz30kOux0+k0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAesRJREFUeJzs3Xt8zvX/x/HndV2z2cauMduYw4Yc5lyGRiKmkYSUlHJIZ2c5pBQ6OVSiQiehcop0kpSEcj40SjmVIefzxtjpuj6/P/x2fV22sTGfa+Zxv912u3W9r/fn83m9rsOn63r6fD6XxTAMQwAAAAAAAICJrJ4uAAAAAAAAADceQikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAwA1v2bJlslgsWrZsmadLybcsFotGjBjh6TKQjaZNm6pp06aeLsNjzpw5o5CQEM2YMcPTpeQK+56CZ8SIEbJYLDp27Ngl56Wlpals2bKaNGmSSZUBQP5EKAUA1xmLxZKjPzO+5GS37dGjR1/zbQMF2cKFC2+IENDpdGratGm65557VLZsWfn7+6tGjRp69dVXlZycnOP1TJgwQUWLFlWnTp2uYbX5k9PpVHBwsMaOHevpUvKtJUuW6NFHH1XlypXl5+enChUq6LHHHtPBgwdztPzx48f1xhtv6Pbbb1dwcLACAwN16623as6cOVdcU6FChTRgwAC99tpruXqtA0BB4+XpAgAAufPZZ5+53f7000+1ePHiTOORkZGm1NOiRQt16dLFbezmm282ZdtAQbVw4UJNnDixwAdTZ8+eVffu3XXrrbfqqaeeUkhIiFavXq3hw4dryZIl+uWXX2SxWC65jrS0NE2YMEH9+/eXzWYzqfL8Y926dTp27Jhat27t6VLyrSFDhujEiRO6//77ValSJe3atUvvvfeeFixYoE2bNqlkyZKXXH716tV64YUXdNddd2nYsGHy8vLSl19+qU6dOunvv//WyJEjr6iu7t2767nnntPMmTP16KOPXtE6AOB6RygFANeZhx9+2O32mjVrtHjx4kzjZqlcubLHto28k5ycLG9vb1mtHESNvOV0OpWamqrChQtnus/b21srV65Uw4YNXWOPP/64IiIiXMFUTEzMJde/YMECHT16VB07dszz2q8HCxcuVHh4uKpXr+7pUvKtcePG6bbbbnPbv7Vs2VJNmjTRe++9p1dfffWSy1evXl07d+5UeHi4a+yZZ55RTEyMxowZo8GDB8vf3z/XdQUGBurOO+/UtGnTCKUA3LD45AkABVBSUpKeffZZlS1bVj4+PqpSpYrefPNNGYbhNs9isahXr16aMWOGqlSposKFC6tu3br69ddfc7W9c+fO5er0g3nz5slisWj58uWZ7vvggw9ksVi0ZcuWLJfdsGGDLBaLpk+fnum+H3/8URaLRQsWLJAk7dmzR88884yqVKkiX19fBQUF6f7779fu3bsvW2NERIS6deuWaTyra/ekpKRo+PDhuummm+Tj46OyZctq8ODBSklJcZu3ePFi3XbbbQoMDFSRIkVUpUoVPf/885etJTfP0/79+/Xoo48qNDRUPj4+ql69uj755BO3ORnXsZk9e7aGDRum0qVLy8/PT4mJiZetJUNOH9tp06bJYrFo5cqVGjBggIKDg+Xv76/27dvr6NGjbnOdTqdGjBihsLAw+fn56Y477tDff/+d6bnIuGbLxTK2dWEN33zzjVq3bq2wsDD5+PioYsWKeuWVV+RwODItP3HiRFWoUEG+vr6qX7++fvvtt6t6vrPy22+/6f7771e5cuVcy/bv31/nzp1zzenWrZsmTpwoyf0U2dxITU3VSy+9pLp168put8vf31+NGzfW0qVLXXMMw1BERITatm2bafnk5GTZ7XY9+eSTue77wtdr9erV5ePjo0WLFmVZp7e3t1sglaF9+/aSpK1bt16216+//loRERGqWLFipvvmzp2ratWqqXDhwqpRo4a++uordevWTREREW7zcrrPTE9P1yuvvKKKFSvKx8dHERERev755zM9Bjl9LWdn7dq1atmypex2u/z8/NSkSROtXLkyy7nff/+921FSudn2qVOn1K9fP1ffN910k8aMGSOn0+mas3v3blksFr355puu94ifn5/uvPNO/ffffzIMQ6+88orKlCkjX19ftW3bVidOnHDbTkREhO6++24tW7ZMUVFR8vX1Vc2aNV2nmc+fP181a9Z07dvi4uLclv/jjz/UrVs3VahQQYULF1bJkiX16KOP6vjx45d9LCXp9ttvzxS433777SpevHiOXmPly5d3C6Sk86/zdu3aKSUlRbt27cq0zLFjx9SxY0cFBAQoKChIffv2zfL/ky1atNCKFSsyPWYAcKPgSCkAKGAMw9A999yjpUuXqkePHqpTp45+/PFHDRo0SPv379fbb7/tNn/58uWaM2eO+vTpIx8fH02aNEktW7bUunXrVKNGjctub9q0aZo0aZIMw1BkZKSGDRumhx566JLLtG7dWkWKFNEXX3yhJk2auN03Z84cVa9ePdttR0VFqUKFCvriiy/UtWvXTMsWK1ZMsbGxkqT169dr1apV6tSpk8qUKaPdu3dr8uTJatq0qf7++2/5+fldtr/LcTqduueee7RixQo98cQTioyM1J9//qm3335bO3bs0Ndffy1J+uuvv3T33XerVq1aevnll+Xj46N//vkn2y+aF8vJ83T48GHdeuutrlAgODhYP/zwg3r06KHExET169fPbZ2vvPKKvL29NXDgQKWkpMjb2zvHfef2se3du7eKFSum4cOHa/fu3Ro/frx69erldk2WoUOHauzYsWrTpo1iY2O1efNmxcbGXtX1VqZNm6YiRYpowIABKlKkiH755Re99NJLSkxM1BtvvOGaN3nyZPXq1UuNGzdW//79tXv3brVr107FihVTmTJlXPNy+nxnZ+7cuTp79qyefvppBQUFad26dXr33Xe1b98+zZ07V5L05JNP6sCBA1melptTiYmJ+vjjj/Xggw/q8ccf1+nTpzVlyhTFxsZq3bp1qlOnjiwWix5++GGNHTtWJ06cUPHixV3Lf/fdd0pMTHQdBZnbvn/55Rd98cUX6tWrl0qUKJEpBLqcQ4cOSZJKlChx2bmrVq3SLbfckmn8+++/1wMPPKCaNWtq1KhROnnypHr06KHSpUu7zcvNPvOxxx7T9OnTdd999+nZZ5/V2rVrNWrUKG3dulVfffWVa97VvJZ/+eUXtWrVSnXr1tXw4cNltVo1depUNWvWTL/99pvq16/v9jjFxcXp5ZdfzvW2z549qyZNmmj//v168sknVa5cOa1atUpDhw7VwYMHNX78eLf5M2bMUGpqqnr37q0TJ05o7Nix6tixo5o1a6Zly5ZpyJAh+ueff/Tuu+9q4MCBmcLwf/75Rw899JCefPJJPfzww3rzzTfVpk0bvf/++3r++ef1zDPPSJJGjRqljh07avv27a4gafHixdq1a5e6d++ukiVL6q+//tKHH36ov/76S2vWrMl1aCudvzj+mTNncvQay86lXqcdO3ZURESERo0apTVr1uidd97RyZMn9emnn7rNq1u3rgzD0KpVq3T33XdfcS0AcN0yAADXtZ49exoX7s6//vprQ5Lx6quvus277777DIvFYvzzzz+uMUmGJGPDhg2usT179hiFCxc22rdvf9ltN2zY0Bg/frzxzTffGJMnTzZq1KhhSDImTZp02WUffPBBIyQkxEhPT3eNHTx40LBarcbLL798yWWHDh1qFCpUyDhx4oRrLCUlxQgMDDQeffRR19jZs2czLbt69WpDkvHpp5+6xpYuXWpIMpYuXeoaCw8PN7p27Zpp+SZNmhhNmjRx3f7ss88Mq9Vq/Pbbb27z3n//fUOSsXLlSsMwDOPtt982JBlHjx69ZG9Zyenz1KNHD6NUqVLGsWPH3Jbv1KmTYbfbXY9HRr8VKlTI8jHKrobhw4e7buf0sZ06daohyYiJiTGcTqdrvH///obNZjNOnTplGIZhHDp0yPDy8jLatWvnts4RI0YYktyei+HDhxtZfYTJ2FZ8fPwl63zyyScNPz8/Izk52TCM86+doKAgo169ekZaWppr3rRp0wxJV/R8ZyerekaNGmVYLBZjz549rrGL39eXc/HrMj093UhJSXGbc/LkSSM0NNTtPbJ9+3ZDkjF58mS3uffcc48RERHhes5y07ckw2q1Gn/99VeO679YTEyMERAQYJw8efKS89LS0gyLxWI8++yzme6rWbOmUaZMGeP06dOusWXLlhmSjPDwcNdYTveZmzZtMiQZjz32mNu8gQMHGpKMX375xTCM3L2WL973OJ1Oo1KlSkZsbKzb++Xs2bNG+fLljRYtWritc8qUKYavr6/rdZWbbb/yyiuGv7+/sWPHDre5zz33nGGz2Yy9e/cahmEY8fHxhiQjODjY9X41jPP7YUlG7dq13d43Dz74oOHt7e16fxnG+f2pJGPVqlWusR9//NGQZPj6+rq99j/44INM++Os3jezZs0yJBm//vprpvty4pVXXjEkGUuWLLmi5Y8fP26EhIQYjRs3dhvP2D/dc889buPPPPOMIcnYvHmz2/iBAwcMScaYMWOuqA4AuN5x+h4AFDALFy6UzWZTnz593MafffZZGYahH374wW08OjpadevWdd0uV66c2rZtqx9//DHLU5wutHLlSvXt21f33HOPnnrqKW3cuFE1atTQ888/73Y6UlYeeOABHTlyxO1XAufNmyen06kHHnjgssumpaVp/vz5rrGffvpJp06dclvW19fX9d9paWk6fvy4brrpJgUGBur333+/5DZyau7cuYqMjFTVqlV17Ngx11+zZs0kyXW6VGBgoKTzp5NdeGpMTl3ueTIMQ19++aXatGkjwzDcaomNjVVCQkKmnrt27er2GOVGbh/bJ554wu1ohsaNG8vhcGjPnj2Szv86Vnp6uutoiQy9e/e+ovqyqvP06dM6duyYGjdurLNnz2rbtm2Szp8Sevz4cT3++OPy8vrfQeSdO3dWsWLF3NaX0+c7J/UkJSXp2LFjatiwoQzDyHTK0tWw2WyuI9+cTqdOnDih9PR0RUVFuT0/lStXVoMGDTRjxgzX2IkTJ/TDDz+oc+fOrucst303adJE1apVu6LaX3/9df38888aPXq0632TnRMnTsgwjEzP04EDB/Tnn3+qS5cuKlKkiFtdNWvWdJub033mwoULJUkDBgzINE86f2SWdHWv5U2bNmnnzp166KGHdPz4cdfjnJSUpObNm+vXX391238sXLhQd9xxh+t1lZttz507V40bN1axYsXcntOYmBg5HI5Mpwfff//9stvtrtsNGjSQdP46hxe+bxo0aKDU1FTt37/fbflq1aopOjo60/LNmjVTuXLlMo1feErche+b5ORkHTt2TLfeeqskXdG+/Ndff9XIkSNdR3rlltPpVOfOnXXq1Cm9++67Wc7p2bOn2+2M5yDjdZQh47V77NixXNcBAAUBp+8BQAGzZ88ehYWFqWjRom7jGb/GlxECZKhUqVKmdVSuXFlnz57V0aNHL/urRBfy9vZWr169XAHVbbfdlu3cjOulzJkzR82bN5d0/vS7OnXqqHLlypfcTu3atVW1alXNmTNHPXr0cC1bokQJty8Y586d06hRozR16lTt37/f7fowCQkJOe7rUnbu3KmtW7cqODg4y/uPHDki6XyQ9vHHH+uxxx7Tc889p+bNm+vee+/Vfffdl6OLi1/uebJarTp16pQ+/PBDffjhh5esJUP58uUvu93s5PaxvfBLp/S/L2InT56U9L/X5U033eQ2r3jx4pkCh9z466+/NGzYMP3yyy+ZrpmVUWd22/by8sp02llOn+/s7N27Vy+99JK+/fZbV+8X15NXpk+frrfeekvbtm1TWlqaa/zi571Lly7q1auX9uzZo/DwcM2dO1dpaWl65JFHXHNy2/eVvrbmzJmjYcOGqUePHnr66adzvJxx0bWfsntOM8YuDDJyus/cs2ePrFZrpnWWLFlSgYGBbvOy2nZOXss7d+6UpEynJl8oISFBxYoVU1pamhYvXqxRo0a59ZLTbe/cuVN//PFHjp/Ti9/DGQFV2bJlsxy/+PV9NcufOHFCI0eO1OzZszPVlfG+SU1NzXRdpuDg4Ey/yLht2za1b99eNWrU0Mcff+x234kTJ5Samuq67evr6xbEZejdu7cWLVqkTz/9VLVr1850v5R5n12xYkVZrdZM193LeO1eySmIAFAQEEoBAPJUxheMy1201cfHR+3atdNXX32lSZMm6fDhw1q5cqVef/31HG3ngQce0GuvvaZjx46paNGi+vbbb/Xggw+6/Yt97969NXXqVPXr10/R0dGy2+2yWCzq1KnTZY9Wyu4LgsPhcPuS43Q6VbNmTY0bNy7L+RmPh6+vr3799VctXbpU33//vRYtWqQ5c+aoWbNm+umnn676p+wz+nn44Yez/UJbq1Ytt9tXepSUlPvHNrv+Lg4TcuJSz82FTp06pSZNmiggIEAvv/yyKlasqMKFC+v333/XkCFDruiItZw+39nV16JFC504cUJDhgxR1apV5e/vr/3796tbt25XVE92Pv/8c3Xr1k3t2rXToEGDFBISIpvNplGjRunff/91m9upUyf1799fM2bM0PPPP6/PP/9cUVFRqlKlimtObvu+ktfW4sWL1aVLF7Vu3Vrvv/9+jpYpXry4LBZLpgDkWrqW4UHGa+CNN95QnTp1spyTceTXihUrlJiYqLvuuuuKt9WiRQsNHjw4y/sv/seB7N7DOX1vX83yHTt21KpVqzRo0CDVqVNHRYoUkdPpVMuWLV2P2apVq3THHXe4rSM+Pt4tWP7vv/905513ym63a+HChZmCyHvvvdftBzi6du2qadOmuc0ZOXKkJk2apNGjR7sFt5eT3esm47V7Nde2AoDrGaEUABQw4eHh+vnnn3X69Gm3D9wZpypd/AtCGf8yf6EdO3bIz88v239Bv5SMUy5ysuwDDzyg6dOna8mSJdq6dasMw7jsqXsXLjty5Eh9+eWXCg0NVWJiojp16uQ2Z968eerataveeust11hycrJOnTp12fUXK1Ysy3l79uxRhQoVXLcrVqyozZs3q3nz5pf9smq1WtW8eXM1b95c48aN0+uvv64XXnhBS5cuvezP3ufkeSpatKgcDsdl15UXruaxzUrG6/Kff/5xO8rm+PHjmQKHjCM+Tp065XZ618VHAS5btkzHjx/X/Pnzdfvtt7vG4+Pjs932hV9q09PTtXv3brcwLzfP98X+/PNP7dixQ9OnT1eXLl1c44sXL84092qDj3nz5qlChQqaP3++27qGDx+eaW7x4sXVunVrzZgxQ507d9bKlSszXeT6avrOibVr16p9+/aKiorSF1984RYuX4qXl5cqVqx4yef0YheP5XSfGR4eLqfTqZ07d7qOopLO/8DAqVOn3OZlbOdyr+WLZfyCYEBAwGXfx99//72qVavmFrrkZtsVK1bUmTNnTNlfXI2TJ09qyZIlGjlypF566SXX+MX7xNq1a2d6L114pO/x48d15513KiUlRUuWLFGpUqUybeutt95ye5zCwsLc7p84caJGjBihfv36aciQIZese+fOnW7PwT///COn05np6MuM1+6FrykAuJFwTSkAKGDuuusuORwOvffee27jb7/9tiwWi1q1auU2vnr1ardTWf777z998803uvPOOy959M7Ro0czjZ0+fVrjx49XiRIl3K5/lJ2YmBgVL15cc+bM0Zw5c1S/fv0cn/YTGRmpmjVrupYtVaqUW/Agnf8X+Iv/tf7dd9+97LWypPNf2NasWeN2KseCBQv033//uc3r2LGj9u/fr48++ijTOs6dO6ekpCRJWR85lnEkxMU/J5+Vyz1PNptNHTp00JdffqktW7ZkWj6r5+tqXM1jm5XmzZvLy8tLkydPdhu/+HUs/e+L+4XXvElKStL06dMz1Si5H3GRmpqqSZMmuc2LiopSUFCQPvroI6Wnp7vGZ8yYkemLfE6f76xkVY9hGJowYUKmuf7+/pJ0xSFfVttau3atVq9eneX8Rx55RH///bcGDRokm82WKeC9mr4vZ+vWrWrdurUiIiK0YMGCXB9lFR0drQ0bNriNhYWFqUaNGvr000915swZ1/jy5cv1559/us3N6T4z44ikiwO7jKPHWrduLSl3r+WL1a1bVxUrVtSbb77pVneGC9/HCxcudG0zQ2623bFjR61evVo//vhjpvtOnTrl9l7wpKxey1Lm56FYsWKKiYlx+ytcuLCk8/uHu+66S/v379fChQuzPB1aOv/4X7j8hddFy/j1086dO2d7xOCFJk6c6HY749pTF/8/eOPGjbJYLG7X2wKAGwlHSgFAAdOmTRvdcccdeuGFF7R7927Vrl1bP/30k7755hv169fP9YU+Q40aNRQbG6s+ffrIx8fH9YV95MiRl9zOxIkT9fXXX6tNmzYqV66cDh48qE8++UR79+7VZ5995rrI8qUUKlRI9957r2bPnq2kpCS9+eabuer1gQce0EsvvaTChQurR48ema7NdPfdd+uzzz6T3W5XtWrVtHr1av38888KCgq67Lofe+wxzZs3Ty1btlTHjh3177//6vPPP8/0+D3yyCP64osv9NRTT2np0qVq1KiRHA6Htm3bpi+++EI//vijoqKi9PLLL+vXX39V69atFR4eriNHjmjSpEkqU6bMJa+9lSEnz9Po0aO1dOlSNWjQQI8//riqVaumEydO6Pfff9fPP/982VMqc+NqHtushIaGqm/fvnrrrbd0zz33qGXLltq8ebN++OEHlShRwu3onDvvvFPlypVTjx49XCHKJ598ouDgYO3du9c1r2HDhipWrJi6du2qPn36yGKx6LPPPsv05dbb21sjRoxQ79691axZM3Xs2FG7d+/WtGnTVLFiRbdt5/T5zkrVqlVVsWJFDRw4UPv371dAQIC+/PLLLI+eyQh1+/Tpo9jY2CyDoku5++67NX/+fLVv316tW7dWfHy83n//fVWrVi3LsKN169YKCgrS3Llz1apVK4WEhLjdfzV9X8rp06cVGxurkydPatCgQa6LhWeoWLHiZb+st23bVp999pl27NjhdsrZ66+/rrZt26pRo0bq3r27Tp48qffee081atRwewxyus+sXbu2unbtqg8//NB1aui6des0ffp0tWvXznWUXW5eyxezWq36+OOP1apVK1WvXl3du3dX6dKltX//fi1dulQBAQH67rvvFB8fr61bt2YKn3Kz7UGDBunbb7/V3XffrW7duqlu3bpKSkrSn3/+qXnz5mn37t354pSygIAA3X777Ro7dqzS0tJUunRp/fTTT5mOjruUzp07a926dXr00Ue1detWbd261XVfkSJF1K5du0suv27dOnXp0kVBQUFq3ry52w8DSOf3NRceQSudPwIq4zlYvXq1Pv/8cz300EOZrkG1ePFiNWrU6Ir3nQBw3TPzp/4AAHkvq5+OP336tNG/f38jLCzMKFSokFGpUiXjjTfecPuJccM4/9PtPXv2ND7//HOjUqVKho+Pj3HzzTe7/RR3dn766SejRYsWRsmSJY1ChQoZgYGBxp133pnrn9devHixIcmwWCzGf//9l6tld+7caUgyJBkrVqzIdP/JkyeN7t27GyVKlDCKFClixMbGGtu2bTPCw8Mv+bPsGd566y2jdOnSho+Pj9GoUSNjw4YNRpMmTYwmTZq4zUtNTTXGjBljVK9e3fDx8TGKFStm1K1b1xg5cqSRkJBgGIZhLFmyxGjbtq0RFhZmeHt7G2FhYcaDDz6Y6efYs5Kb5+nw4cNGz549jbJlyxqFChUySpYsaTRv3tz48MMPM/U7d+7cy277whqGDx/uup3Tx3bq1KmGJGP9+vVu68vqMU9PTzdefPFFo2TJkoavr6/RrFkzY+vWrUZQUJDx1FNPuS2/ceNGo0GDBoa3t7dRrlw5Y9y4ca5txcfHu+atXLnSuPXWWw1fX18jLCzMGDx4sOun6C9+/N555x0jPDzc8PHxMerXr2+sXLnSqFu3rtGyZUu3eTl5vrPz999/GzExMUaRIkWMEiVKGI8//rixefNmQ5IxdepUt8eid+/eRnBwsGGxWDK9xy928evS6XQar7/+uqufm2++2ViwYIHRtWtXIzw8PMt1ZPxk/cyZM7O8P6d9Z7xecyI+Pt71Hs7q78LXUnZSUlKMEiVKGK+88kqm+2bPnm1UrVrV8PHxMWrUqGF8++23RocOHYyqVau6zcvpPjMtLc0YOXKkUb58eaNQoUJG2bJljaFDhxrJyclu83L6Ws5u3xMXF2fce++9RlBQkOHj42OEh4cbHTt2dO1f33vvPcNutxtpaWmZes7N++j06dPG0KFDjZtuusnw9vY2SpQoYTRs2NB48803jdTUVMMw/vccvfHGG27LZrcfyeo9Hx4ebrRu3TpTrVm9VrLa3r59+4z27dsbgYGBht1uN+6//37jwIEDmfZL2QkPD8/2NZbd+yGrnrL7u/C9O3z4cEOS8ffffxv33XefUbRoUaNYsWJGr169jHPnzrmt99SpU4a3t7fx8ccfX7YGACioLIZxBVcYBQAUCBaLRT179szRaSXwnBv5eTp16pSKFSumV199VS+88IKp23Y6nQoODta9996b5WlrBU3//v01ZcoUHTp0SH5+fp4uJ1deeeUVTZ06VTt37rzsjwbUqVNHwcHBWV7L61rKy9fyXXfdpSJFiuiLL74wfdvIO+PHj9fYsWP177//XtUPTwDA9YxrSgEAgHzh3LlzmcYyrhvTtGnTa7rt5OTkTKf1ffrppzpx4sQ133Z+kJycrM8//1wdOnS47gIp6XygdubMGc2ePds1lpaWlum6SMuWLdPmzZuv+XN6rV/LTZs2Vf/+/T2ybeSNtLQ0jRs3TsOGDSOQAnBD45pSAAAgX5gzZ46mTZvmOgpkxYoVmjVrlu688041atTomm57zZo16t+/v+6//34FBQXp999/15QpU1SjRg3df//913TbnnTkyBH9/PPPmjdvno4fP66+fft6uqQrUqRIER05csRtbP/+/YqJidHDDz+ssLAwbdu2Te+//75Kliypp5566prWc61fy4MHD/bYtpE3ChUq5HYNPAC4URFKAQCAfKFWrVry8vLS2LFjlZiY6Lpo86uvvnrNtx0REaGyZcvqnXfe0YkTJ1S8eHF16dJFo0ePztFF+69Xf//9tzp37qyQkBC98847rl+ELAiKFSumunXr6uOPP9bRo0fl7++v1q1ba/To0df8otKefC17ctsAAOSWR68p5XA4NGLECH3++ec6dOiQwsLC1K1bNw0bNsz16yCGYWj48OH66KOPdOrUKTVq1EiTJ0/O9qdcAQAAAAAAkP959JpSY8aM0eTJk/Xee+9p69atGjNmjMaOHat3333XNWfs2LF655139P7772vt2rXy9/dXbGyskpOTPVg5AAAAAAAAroZHj5S6++67FRoaqilTprjGOnToIF9fX33++ecyDENhYWF69tlnNXDgQElSQkKCQkNDNW3aNHXq1MlTpQMAAAAAAOAqePSaUg0bNtSHH36oHTt2qHLlytq8ebNWrFihcePGSZLi4+N16NAhxcTEuJax2+1q0KCBVq9enWUolZKSopSUFNdtp9OpEydOKCgoyHVKIAAAAAAAAK4NwzB0+vRphYWFyWrN/iQ9j4ZSzz33nBITE1W1alXZbDY5HA699tpr6ty5syTp0KFDkqTQ0FC35UJDQ133XWzUqFEaOXLktS0cAAAAAAAAl/Tff/+pTJky2d7v0VDqiy++0IwZMzRz5kxVr15dmzZtUr9+/RQWFqauXbte0TqHDh2qAQMGuG4nJCSoXLlyio+PV0BAgCTJarXKarXK6XTK6XS65maMOxwOXXhWY3bjNptNFotF6enpbjXYbDZJ5y/knpNxLy8vGYbhNm6xWGSz2TLVmN04PdETPdETPdETPdETPdETPdETPdETPdFTfugpMTFR5cuXV9GiRXUpHg2lBg0apOeee851Gl7NmjW1Z88ejRo1Sl27dlXJkiUlSYcPH1apUqVcyx0+fDjbnyz28fGRj49PpvHixYu7QikAAAAAAABcG15e5+Omy11GyaO/vnf27FlZre4lZKRuklS+fHmVLFlSS5Yscd2fmJiotWvXKjo62tRaAQAAAAAAkHc8eqRUmzZt9Nprr6lcuXKqXr264uLiNG7cOD366KOSzidq/fr106uvvqpKlSqpfPnyevHFFxUWFqZ27dp5snQAAAAAAABcBY+GUu+++65efPFFPfPMMzpy5IjCwsL05JNP6qWXXnLNGTx4sJKSkvTEE0/o1KlTuu2227Ro0SIVLlzYg5UDAAAAAADgaliMC6+UVQAlJibKbrcrISGBa0oBAAAAAHCdcjqdSk1N9XQZkFSoUCHXxdOzktMsxqNHSgEAAAAAAFxOamqq4uPj3X71DZ4VGBiokiVLXvZi5pdCKAUAAAAAAPItwzB08OBB2Ww2lS1bNtMPpsFchmHo7NmzOnLkiCSpVKlSV7wuQikAAAAAAJBvpaen6+zZswoLC5Ofn5+ny4EkX19fSdKRI0cUEhJyyVP5LoV4EQAAAAAA5FsOh0OS5O3t7eFKcKGMgDAtLe2K10EoBQAAAAAA8r2ruXYR8l5ePB+EUgAAAAAAADAdoRQAAAAAAEAOTJs2TYGBgbla5uzZs+rQoYMCAgJksVh06tSpa1Lb9YhQCgAAAAAAXHcsFssl/0aMGOHpEiVJ06dP12+//aZVq1bp4MGDstvtebLepk2bql+/fnmyLk/h1/cAAAAAAMB15+DBg67/njNnjl566SVt377dNVakSBFPlJXJv//+q8jISNWoUcPTpWQpNTXVYxeR50gpAAAAAABw3SlZsqTrz263y2KxuG6HhIRo3LhxKlOmjHx8fFSnTh0tWrTItezu3btlsVg0e/ZsNWzYUIULF1aNGjW0fPnyXNVw9OhRRUVFqX379kpJScl0f9OmTfXWW2/p119/lcViUdOmTSVJKSkpGjhwoEqXLi1/f381aNBAy5Ytcy13/PhxPfjggypdurT8/PxUs2ZNzZo1y3V/t27dtHz5ck2YMMF1ZNju3buzPL3w66+/drso+YgRI1SnTh19/PHHKl++vAoXLixJOnXqlB577DEFBwcrICBAzZo10+bNm3P1eOQWoRQAAAAAAChQJkyYoLfeektvvvmm/vjjD8XGxuqee+7Rzp073eYNGjRIzz77rOLi4hQdHa02bdro+PHjOdrGf//9p8aNG6tGjRqaN2+efHx8Ms2ZP3++Hn/8cUVHR+vgwYOaP3++JKlXr15avXq1Zs+erT/++EP333+/WrZs6aovOTlZdevW1ffff68tW7boiSee0COPPKJ169a5+ouOjtbjjz+ugwcP6uDBgypbtmyOH59//vlHX375pebPn69NmzZJku6//34dOXJEP/zwgzZu3KhbbrlFzZs314kTJ3K83twilAIAAAAAAAXKm2++qSFDhqhTp06qUqWKxowZozp16mj8+PFu83r16qUOHTooMjJSkydPlt1u15QpUy67/u3bt6tRo0aKjY3V1KlTZbPZspxXvHhx+fn5ydvbWyVLllTx4sW1d+9eTZ06VXPnzlXjxo1VsWJFDRw4ULfddpumTp0qSSpdurQGDhyoOnXqqEKFCurdu7datmypL774QpJkt9vl7e0tPz8/19Fh2dWQldTUVH366ae6+eabVatWLa1YsULr1q3T3LlzFRUVpUqVKunNN99UYGCg5s2bl+P15hbXlAIAAAAAAAVGYmKiDhw4oEaNGrmNN2rUKNPpaNHR0a7/9vLyUlRUlLZu3SpJql69uvbs2SNJaty4sX744QdJ0rlz59S4cWM99NBDmUKunPjzzz/lcDhUuXJlt/GUlBQFBQVJkhwOh15//XV98cUX2r9/v1JTU5WSkiI/P79cby8r4eHhCg4Odt3evHmzzpw549p+hnPnzunff//Nk21mhVAKAAAAAADgIgsXLlRaWpokydfX1zXu4+OjmJgYLViwQIMGDVLp0qVztd4zZ87IZrNp48aNmY5uyrg4+xtvvKEJEyZo/Pjxqlmzpvz9/dWvXz+lpqZect1Wq1WGYbiNZfRwIX9//0w1lSpVyu26VhkuvkZVXiKUAgAAAAAABUZAQIDCwsK0cuVKNWnSxDW+cuVK1a9f323umjVrdPvtt0uS0tPTtXHjRvXq1UvS+aOJsmK1WvXZZ5/poYce0h133KFly5YpLCwsx/XdfPPNcjgc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ypVKTEzM03OTrVar3nnnHf3111+aPn26fvnlFw0ePFiS1LBhQ40fP14BAQE6ePCgDh48qIEDB7qWfeuttxQVFaW4uDg988wzevrpp/lAB1xjjRs31unTpxUXFydJWr58uUqUKOH68pcx1rRpU88UmI0zZ87orrvu0pIlSxQXF6eWLVuqTZs22rt3r9u8S+1X3nnnHX377bf64osvtH37ds2YMcMtYANw7UyfPl3+/v5au3atxo4dq5dfflmLFy/O0bIvvvii/v77b/3www/aunWrJk+erBIlSlx1TcnJyapbt66+//57bdmyRU888YQeeeQRrVu3TpI0YcIERUdH6/HHH3d9jilbtqxr+RdeeEFvvfWWNmzYIC8vLz366KNXXROA3LnU96OBAwe63rsHDx7Um2++KT8/P0VFRbmWnz59ury8vLRu3TpNmDBB48aN08cff5zj7U+dOlWtW7eW3W7Xww8/rClTpmSac/bsWY0ZM0Yff/yx/vrrL4WEhOj06dPq2rWrVqxYoTVr1qhSpUq66667dPr0abdlX3zxRXXo0EGbN29W586d1alTJ23duvXKHzDkbwZwnTl69Kghyfjzzz+N+Ph4Q5Ixfvx4tzmhoaHGG2+84bqdnp5ulCtXzmjbtm2OttG1a9cczzUMw5g7d64RFBTkuj116lTDbrdnmhceHm48/PDDrttOp9MICQkxJk+enONtAbgyt9xyi2u/0K5dO+O1114zvL29jdOnTxv79u0zJBk7duwwhg8fbtSuXdtt2bffftsIDw933W7SpInRt29ftzlt27Y1unbtmqNamjRpYhQqVMjw9/d3+/Px8cly33Gh6tWrG++++67r9uX2K7179zaaNWtmOJ3OHNUGIG80adLEuO2229zG6tWrZwwZMsT1+SUuLs5138mTJw1JxtKlSw3DMIw2bdoY3bt3v6JtSzK++uqrHM9v3bq18eyzz7rVfvE+bunSpYYk4+eff3aNff/994Yk49y5c1dUJ4C8ceH3owutXr3aKFy4sDFnzhzXWJMmTYzIyEi3zwVDhgwxIiMjc7Qth8NhlC1b1vj6669d2/b29jZ27drlmjN16lRDkrFp06bLrqto0aLGd9995xqTZDz11FNu8xo0aGA8/fTTOaoP1x+OlEK+t3PnTj344IOqUKGCAgICXP/Cf+GRAhcm/wkJCTp8+LDq16/vGrPZbKpbt26e1fTzzz+refPmKl26tIoWLapHHnlEx48f19mzZy+7bK1atVz/bbFYVLJkSR05ciTPagOQtSZNmmjZsmUyDEO//fab7r33XkVGRmrFihVavny5wsLCVKlSJdPq6dy5szZt2uT29/LLL7vNOXPmjAYOHKjIyEgFBgaqSJEi2rp1a6YjpS61X+nWrZs2bdqkKlWqqE+fPvrpp5+ufXMAJLm/NyWpVKlSOf5//tNPP63Zs2erTp06Gjx4sFatWpUnNTkcDr3yyiuqWbOmihcvriJFiujHH3/MtF/JzoU9lSpVSpL4HAOYLCffj/bu3at27dpp4MCB6tixo9vyt956qywWi+t2dHS0du7c6brMwaUsXrxYSUlJuuuuuyRJJUqUUIsWLfTJJ5+4zfP29s60Dzx8+LAef/xxVapUSXa7XQEBATpz5kym/U90dHSm2xwpVXARSiHfa9OmjU6cOKGPPvpIa9eu1dq1ayWdv05KBn9/f9Pq2b17t+6++27VqlVLX375pTZu3KiJEydmqik7hQoVcrttsVi48B9ggqZNm2rFihXavHmzChUqpKpVq6pp06ZatmyZli9friZNmkg6f3qucdF1FS7+AYWczLkcu92um266ye0vJCTEbc7AgQP11Vdf6fXXX9dvv/2mTZs2qWbNmpn2NZfar9xyyy2Kj4/XK6+8onPnzqljx4667777clUrgCuT3XvTaj3/EfzC/cjF+5BWrVppz5496t+/vw4cOKDmzZu7XQ7gSr3xxhuaMGGChgwZoqVLl2rTpk2KjY3N0WcYyb2njC+1fI4BzHW570dJSUm65557FB0dnekfvK7WlClTdOLECfn6+srLy0teXl5auHChpk+f7rYv8PX1dQu+JKlr167atGmTJkyYoFWrVmnTpk0KCgrK8f4HBROhFPK148ePa/v27Ro2bJiaN2+uyMhInTx58pLL2O12hYaGav369a4xh8OR5UX0rsTGjRvldDr11ltv6dZbb1XlypV14MABtzne3t45+pcGAObJuK7U22+/7QqgMkKpZcuWua4nFRwcrEOHDrl9WbzwYsQZcw4ePOi67XA4tGXLljyveeXKlerWrZvat2+vmjVrqmTJktq9e3eu1xMQEKAHHnhAH330kebMmaMvv/xSJ06cyPN6AeRMcHCwJLntRy7ez2TM69q1qz7/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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAeOxJREFUeJzs3XmYjfX/x/HXOWf2GXOGMYaxk2XsZaRJZW9IopRINaT6VnZJy7dsLaISKdpE2ZcWlS2EIoSoVKiMLcZuhmG2c+7fH/3mfB0zwzmM+4zxfFzXXFfnc+7l/T73OXczL/f9ORbDMAwBAAAAAAAAJrL6ugAAAAAAAABcfQilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAABXvZUrV8pisWjlypW+LqXQslgsGjZsmK/LQD6aNWumZs2a+boMn9m7d6+CgoK0Zs0aX5filSlTpshisWjXrl2+LgUFpHv37goLC7vgckePHlVoaKgWLlxoQlUAUHgRSgHAFcZisXj0Y0bAkt++X3311cu+b6AoW7hw4VUTAnbv3j3P80jNmjU93saIESPUuHFjNWnS5DJWWjgdP35cfn5+mjNnjq9LKbQ+++wz3XvvvapSpYpCQkJUo0YNPfnkkzpx4oRH6+/du1fDhw/X9ddfr+LFi6tkyZJq1qyZli1bdtE1RUZG6uGHH9YLL7xw0dsAgKLAz9cFAAC8M3XqVLfHn3zyiZYuXZprPDY21pR6WrdurQcffNBt7NprrzVl30BRtXDhQr3zzjtXTTAVGBioDz/80G3Mbrd7tO7hw4f18ccf6+OPP74cpRV6S5YskcVi0a233urrUgqtRx99VDExMbr//vtVoUIF/frrr3r77be1cOFC/fTTTwoODj7v+vPnz9eoUaPUsWNHJSYmKjs7W5988olat26tjz76SD169Liouh577DG99dZb+vbbb9WiRYuL2gYAXOkIpQDgCnP//fe7PV63bp2WLl2aa9ws1atX99m+UXDS09MVEBAgq5WLqFGwnE6nMjMzFRQUlO8yfn5+F30emTZtmvz8/NS+ffuLLfGKtnDhQjVp0kQRERG+LqXQmjdvXq7bWxs2bKjExERNnz5dDz/88HnXb968ufbs2aOSJUu6xh577DE1aNBAQ4YMuehQKjY2VnXq1NGUKVMIpQBctfjNEwCKoLS0ND355JMqX768AgMDVaNGDb3++usyDMNtOYvFot69e2v69OmqUaOGgoKC1LBhQ3333Xde7e/MmTNKT0/3ePl58+bJYrFo1apVuZ577733ZLFYtHXr1jzX3bhxoywWS55XReRcMfD1119Lknbv3q0nnnhCNWrUUHBwsCIjI3XPPfd4NH9LpUqV1L1791zjec3dk5GRoaFDh+qaa65RYGCgypcvr8GDBysjI8NtuaVLl+qmm25SRESEwsLCVKNGDT333HMXrMWb4/TPP//ooYceUnR0tAIDA1W7dm199NFHbsvkzKE1a9YsPf/88ypbtqxCQkKUmpp6wVpyePra5syZs2bNGg0cOFBRUVEKDQ3VnXfeqcOHD7st63Q6NWzYMMXExCgkJETNmzfX77//nutYDBs2TBaLJVdNec3PM3/+fLVr104xMTEKDAxU1apV9eKLL8rhcORa/5133lGVKlUUHBys66+/Xt9///0lHe+8fP/997rnnntUoUIF17oDBgzQmTNnXMt0795d77zzjiT3W2S9kZmZqSFDhqhhw4ay2+0KDQ3VzTffrBUrVriWMQxDlSpVUocOHXKtn56eLrvdrv/85z9e9332+7V27doKDAzU4sWLL1izw+Hw6j2Y44svvlDjxo3znMfH02N66NAh9ezZU9HR0QoKClL9+vXzPMd4em49c+aM+vbtq5IlS6pYsWK644479M8//3g8N9uiRYt08803KzQ0VMWKFVO7du3022+/5VrO6XRq8eLFateu3UXt25vzxZw5czR8+HCVLVtWxYoV0913362UlBRlZGSof//+KlWqlMLCwtSjR4983xNz585VrVq1FBwcrPj4eP3666+S/j3vX3PNNQoKClKzZs1ynUc8+dycT17zrd15552SpD/++OOC69euXdstkJL+vbrvtttu0759+3Ty5Mlc6+zcuVMJCQkKDQ1VTEyMRowYket9Iv17tfFXX32V53MAcDXgSikAKGIMw9Add9yhFStWqGfPnmrQoIGWLFmip556Sv/884/efPNNt+VXrVql2bNnq2/fvgoMDNSECRPUpk0b/fjjj6pTp84F9zdlyhRNmDBBhmEoNjZWzz//vO67777zrtOuXTuFhYVpzpw5atq0qdtzs2fPVu3atfPdd1xcnKpUqaI5c+YoMTEx17rFixdXQkKCJGnDhg364Ycf1KVLF5UrV067du3SxIkT1axZM/3+++8KCQm5YH8X4nQ6dccdd2j16tV69NFHFRsbq19//VVvvvmmduzYoS+++EKS9Ntvv+n2229XvXr1NGLECAUGBuqvv/7yeGJmT47TwYMHdcMNN7j+AIyKitKiRYvUs2dPpaamqn///m7bfPHFFxUQEKBBgwYpIyNDAQEBHvft7Wvbp08fFS9eXEOHDtWuXbs0duxY9e7dW7Nnz3Yt8+yzz2r06NFq3769EhIS9PPPPyshIcGrwPNcU6ZMUVhYmAYOHKiwsDB9++23GjJkiFJTU/Xaa6+5lps4caJ69+6tm2++WQMGDNCuXbvUsWNHFS9eXOXKlXMt5+nxzs/cuXN1+vRpPf7444qMjNSPP/6o8ePHa9++fZo7d64k6T//+Y/279+f5225nkpNTdWHH36orl276pFHHtHJkyc1adIkJSQk6Mcff1SDBg1ksVh0//33a/To0Tp27JhKlCjhWv+rr75Samqq6+olb/v+9ttvNWfOHPXu3VslS5ZUpUqVzlvv6dOnFR4ertOnT6t48eLq2rWrRo0adcEJo7OysrRhwwY9/vjjuZ7z9JieOXNGzZo1019//aXevXurcuXKmjt3rrp3764TJ06oX79+krw7t3bv3l1z5szRAw88oBtuuEGrVq1yC47OZ+rUqUpMTFRCQoJGjRql06dPa+LEibrpppu0efNmt9dyw4YNOnz4sG677Tav9+3t+WLkyJEKDg7WM888o7/++kvjx4+Xv7+/rFarjh8/rmHDhmndunWaMmWKKleurCFDhrit//333+vLL79Ur169XNu7/fbbNXjwYE2YMEFPPPGEjh8/rtGjR+uhhx7St99+61rXk8+Nt5KTkyUpV9jk7TZCQkJyne8cDofatGmjG264QaNHj9bixYs1dOhQZWdna8SIEW7LNmzYUG+++aZ+++03j/6fCwBFjgEAuKL16tXLOPt0/sUXXxiSjJdeesltubvvvtuwWCzGX3/95RqTZEgyNm7c6BrbvXu3ERQUZNx5550X3PeNN95ojB071pg/f74xceJEo06dOoYkY8KECRdct2vXrkapUqWM7Oxs19iBAwcMq9VqjBgx4rzrPvvss4a/v79x7Ngx11hGRoYR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8mSNHTvW7XbPczmdTu3cudPtqt8dO3ZIUq4r9XLeuzlX3AHA1Ybb9wCgiLntttvkcDj09ttvu42/+eabslgsatu2rdv42rVr3eYO2bt3r+bPn69bb731vFfv5HVr38mTJzV27FiVLFnSbf6j/LRq1UolSpTQ7NmzNXv2bF1//fUe3/YTGxurunXrutYtU6aMW/Ag/fsv8Of+S/n48eMvOFeW9O8fh+vWrVNmZqZr7Ouvv9bevXvdluvcubP++ecfffDBB7m2cebMGaWlpUnK+8qxBg0aSFKur0/Py4WOk81mU6dOnfTpp59q69atudb39lbMC7mU1zYvLVu2lJ+fnyZOnOg2fu77WPrfH+7fffedaywtLU0ff/xxrhol96slMjMzNWHCBLfl4uLiFBkZqQ8++MBtHpzp06fnCsQ8Pd55yasewzA0bty4XMuGhoZK0kWHfHnta/369Vq7dm2eyz/wwAP6/fff9dRTT8lms+UKeC+l7/NJT0/XyZMnc42/+OKLMgxDbdq0Oe/6/v7+iouL08aNG93GvTmmt912m5KTk91uB87Oztb48eMVFhbmuk3M03Nrzrd/nvs+Gz9+/Hl7yVk3PDxcr7zyirKysnI9n/M5zsrK0tKlS3N9q56n+zb7fHEpPP3clClTRq1atXL7yZGcnKxbb71VVqtVS5YsyTfsbNKkidv6Z4dSr732ml5//XU999xzrm9kPJ+z3yeGYejtt9+Wv7+/WrZs6bbcpk2bZLfbVbt27QtuEwCKIq6UAoAipn379mrevLn++9//ateuXapfv76++eYbzZ8/X/3793f9QZ+jTp06SkhIUN++fRUYGOj6Y2b48OHn3c8777yjL774Qu3bt1eFChV04MABffTRR9qzZ4+mTp3qmmT5fPz9/XXXXXdp1qxZSktL0+uvv+5Vr/fee6+GDBmioKAg9ezZM9ecMLfffrumTp0qu92uWrVqae3atVq2bJnrlp/zefjhhzVv3jy1adNGnTt31t9//61p06blev0eeOABzZkzR4899phWrFihJk2ayOFwaNu2bZozZ46WLFmiuLg4jRgxQt99953atWunihUr6tChQ5owYYLKlSunm2666YL1eHKcXn31Va1YsUKNGzfWI488olq1aunYsWP66aeftGzZsgveCuWNS3lt8xIdHa1+/frpjTfe0B133KE2bdro559/1qJFi1SyZEm3q3NuvfVWVahQQT179nSFKB999JGioqK0Z88e13I33nijihcvrsTERPXt21cWi0VTp07NFaYFBARo2LBh6tOnj1q0aKHOnTtr165dmjJliqpWreq2b0+Pd15q1qypqlWratCgQfrnn38UHh6uTz/9NM9bz3JC3b59+yohISHPoOh8br/9dn322We688471a5dOyUlJendd99VrVq18pwnp127doqMjNTcuXPVtm1blSpVyu35S+n7fJKTk3Xttdeqa9euqlmzpiRpyZIlWrhwodq0aaMOHTpccBsdOnTQf//7X6Wmpio8PFySd8f00Ucf1Xvvvafu3btr06ZNqlSpkubNm+e6YiznqihPz60NGzZUp06dNHbsWB09elQ33HCDVq1a5bpS5nxXmoWHh2vixIl64IEHdN1116lLly6u9/WCBQvUpEkTvf3221q9erVSU1NzhVLe7NvM88Wl8OZzk582bdpo586dGjx4sFavXq3Vq1e7nouOjlbr1q3Pu/7nn3+uwYMHq1q1aoqNjdW0adPcnm/durWio6Ndj4OCgrR48WIlJiaqcePGWrRokRYsWKDnnnsuVyC2dOlStW/fnjmlAFy9TPqWPwDAZZLXV8efPHnSGDBggBETE2P4+/sb1apVM1577TXX17vnkGT06tXLmDZtmlGtWjUjMDDQuPbaa40VK1ZccL/ffPON0bp1a6N06dKGv7+/ERERYdx6663G8uXLvap/6dKlhiTDYrEYe/fu9WrdP//805BkSDJWr16d6/njx48bPXr0MEqWLGmEhYUZCQkJxrZt24yKFSsaiYmJruVyvvL83L7feOMNo2zZskZgYKDRpEkTY+PGjUbTpk3dvk7eMP79+vhRo0YZtWvXNgIDA43ixYsbDRs2NIYPH26kpKQYhmEYy5cvNzp06GDExMQYAQEBRkxMjNG1a1ePvo7cm+N08OBBo1evXkb58uUNf39/o3Tp0kbLli2N999/P1e/c+fOveC+z67h7K+T9/S1zfnK+w0bNrhtL6/XPDs723jhhReM0qVLG8HBwUaLFi2MP/74w4iMjDQee+wxt/U3bdpkNG7c2AgICDAqVKhgjBkzxrWvs79Kfs2aNcYNN9xgBAcHGzExMcbgwYONJUuW5Hm833rrLaNixYpGYGCgcf311xtr1qwxGjZsaLRp08Zt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brPZZLFYXNs9e1ySHA6HR+N+fn4yDMNt3GKxyGaz5aoxv3F6oid6oid6oid6oid6oid6oid6oid6oqfC0NO5deXHp6FU48aNNWXKFNWoUUMHDhzQ8OHDdfPNN2vr1q1KTk5WQECAIiIi3NaJjo5WcnJyvtscOXKkhg8fnmt88+bNCg0NlSRFRUWpatWqSkpK0uHDh13LlCtXTuXKldOOHTuUkpLiGq9SpYpKlSqlrVu36syZM67xmjVrKiIiQps3b3Y7gPXq1VNAQIA2btzoVkNcXJwyMzP1yy+/uMZsNpsaNWqklJQUbdu2zTUeHBys+vXr68iRI9q5c6dr3G63KzY2Vvv379e+fftc4/RET/RET/RET/RET/RET/RET/RET/RET4Whp7S0NHnCYpwdtfnYiRMnVLFiRY0ZM0bBwcHq0aOH21VPknT99derefPmGjVqVJ7byOtKqfLly+vo0aMKDw+XdPUkk/RET/RET/RET/RET/RET/RET/RET/RET2b3lJqaqsjISKWkpLiymLwUqlBKkho1aqRWrVqpdevWatmypY4fP+52tVTFihXVv39/DRgwwKPtpaamym63X/CFAAAAAAAAwKXzNIvx+bfvne3UqVP6+++/VaZMGTVs2FD+/v5avny56/nt27drz549io+P92GVAAAAAAAAuFQ+nVNq0KBBat++vSpWrKj9+/dr6NChstls6tq1q+x2u3r27KmBAweqRIkSCg8PV58+fRQfH8837wEAAAAAAFzhfBpK7du3T127dtXRo0cVFRWlm266SevWrVNUVJQk6c0335TValWnTp2UkZGhhIQETZgwwZclAwAAAAAAoAAUujmlChpzSgEAAAAAAJjnipxTCgAAAAAAAFcHQikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6QikAAAAAAACYjlAKAAAAAAAApiOUAgAAAAAAgOkIpQAAAAAAAGA6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yRg7dqzbMtHR0cZrr73mepydnW1UqFDB6NChg0f7SExM9HhZwzCMuXPnGpGRka7HkydPNux2e67lKlasaNx///2ux06n0yhVqpQxceJEj/cF4OJcd911rvNCx44djZdfftkICAgwTp48aezbt8+QZOzYscMYOnSoUb9+fbd133zzTaNixYqux02bNjX69evntkyHDh2MxMREj2pp2rSp4e/vb4SGhrr9BAYG5nnuOFvt2rWN8ePHux5f6LzSp08fo0WLFobT6fSoNgAFo2nTpsZNN93kNtaoUSPj6aefdv3+snnzZtdzx48fNyQZK1asMAzDMNq3b2/06NHjovYtyfj88889Xr5du3bGk08+6Vb7uee4FStWGJKMZcuWucYWLFhgSDLOnDlzUXUCKBhn/310trVr1xpBQUHG7NmzXWNNmzY1YmNj3X4vePrpp43Y2FiP9uVwOIzy5csbX3zxhWvfAQEBxs6dO13LTJ482ZBkbNmy5YLbKlasmPHVV1+5xiQZjz32mNtyjRs3Nh5//HGP6sOVhyulUOj9+eef6tq1q6pUqaLw8HDXv/CffaXA2cl/SkqKDh48qOuvv941ZrPZ1LBhwwKradmyZWrZsqXKli2rYsWK6YEHHtDRo0d1+vTpC65br149139bLBaVLl1ahw4dKrDaAOStadOmWrlypQzD0Pfff6+77rpLsbGxWr16tVatWqWYmBhVq1bNtHq6deumLVu2uP2MGDHCbZlTp05p0KBBio2NVUREhMLCwvTHH3/kulLqfOeV7t27a8uWLapRo4b69u2rb7755vI3B0CS+2dTksqUKePx//Mff/xxzZo1Sw0aNNDgwYP1ww8/FEhNDodDL774ourWrasSJUooLCxMS5YsyXVeyc/ZPZUpU0aS+D0GMJknfx/t2bNHHTt21KBBg9S5c2e39W+44QZZLBbX4/j4eP3555+uaQ7OZ+nSpUpLS9Ntt90mSSpZsqRat26tjz76yG25gICAXOfAgwcP6pFHHlG1atVkt9sVHh6uU6dO5Tr/xMfH53rMlVJFF6EUCr327dvr2LFj+uCDD7R+/XqtX79e0r/zpOQIDQ01rZ5du3bp9ttvV7169fTpp59q06ZNeuedd3LVlB9/f3+3xxaLhYn/ABM0a9ZMq1ev1s8//yx/f3/VrFlTzZo108qVK7Vq1So1bdpU0r+35xrnzKtw7hcoeLLMhdjtdl1zzTVuP6VKlXJbZtCgQfr888/1yiuv6Pvvv9eWLVtUt27dXOea851XrrvuOiUlJenFF1/UmTNn1LlzZ919991e1Qrg4uT32bRa//0V/OzzyLnnkLZt22r37t0aMGCA9u/fr5YtW7pNB3CxXnvtNY0bN05PP/20VqxYoS1btighIcGj32Ek955y/qjl9xjAXBf6+ygtLU133HGH4uPjc/2D16WaNGmSjh07puDgYPn5+cnPz08LFy7Uxx9/7HYuCA4Odgu+JCkxMVFbtmzRuHHj9MMPP2jLli2KjIz0+PyDoolQCoXa0aNHtX37dj3//PNq2bKlYmNjdfz48fOuY7fbFR0drQ0bNrjGHA5HnpPoXYxNmzbJ6XTqjTfe0A033KDq1atr//79bssEBAR49C8NAMyTM6/Um2++6QqgckKplStXuuaTioqKUnJystsfi2dPRpyzzIEDB1yPHQ6Htm7dWuA1r1mzRt27d9edd96punXrqnTp0tq1a5fX2wkPD9e9996rDz74QLNnz9ann36qY8eOFXi9ADwTFRUlSW7nkXPPMznLJSYmatq0aRo7dmyBfDnKmjVr1KFDB91///2qX7++qlSpoh07drgtw+8xQOF1ob+PDMPQ/fffL6fTqalTp+YKhiS5QqwcOfM72Wy2C+57/vz5mjVrltuV3ps3b9bx48cveDX2mjVr1LdvX912222qXbu2AgMDdeTIkVzLrVu3Ltfj2NjY824bVy4/XxcAnE/x4sUVGRmp999/X2XKlNGePXvcvi0rP3369NHIkSN1zTXXqGbNmho/fryOHz+e50k5PykpKbl+QYyMjNQ111yjrKwsjR8/Xu3bt9eaNWv07rvvui1XqVIlnTp1SsuXL1f9+vUVEhKikJAQj/cNoOAVL15c9erV0/Tp0/X2229Lkm655RZ17txZWVlZbkHV4cOHNXr0aN19991avHixFi1apPDwcNe2WrRooYEDB2rBggWqWrWqxowZoxMnThR4zdWqVdNnn32m9u3by2Kx6IUXXvD6ioQxY8aoTJkyuvbaa2W1WjV37lyVLl1aERERBV4vAM8EBwfrhhtu0KuvvqrKlSvr0KFDev75592WGTJkiBo2bKjatWsrIyNDX3/9tVd/lCUlJeX6PaZatWqqVq2a5s2bpx9++EHFixfXmDFjdPDgQdWqVcu1XKVKlbR+/Xrt2rVLYWFhKlGixCX1C6DgXOjvo2HDhmnZsmX65ptvdOrUKdc3hNvtdgUHB0v699a+gQMH6j//+Y9++uknjR8/Xm+88cYF9z116lRFRkaqc+fOuf6uuu222zRp0iS1adMm3/WrVaumqVOnKi4uTqmpqXrqqadcNZ1t7ty5iouL00033aTp06frxx9/zHMydRQNXCmFQs1qtWrWrFnatGmT6tSpowEDBui111674HpPP/20unbtqgcffFDx8fEKCwtTQkKCgoKCPN73ypUrde2117r9DB8+XPXr19eYMWM0atQo1alTR9OnT8/19eo33nijHnvsMd17772KiorS6NGjve4dQMFr2rSpHA6H66qoEiVKqFatWipdurRq1KghSYqNjdWECRP0zjvvqH79+vrxxx9z3TLz0EMPKTExUQ8++KCaNm2qKlWqqHnz5gVe75gxY1S8eHHdeOONat++vRISEnTdddd5tY1ixYpp9OjRiouLU6NGjbRr1y4tXLjQdfsQAN/46KOPlJ2drYYNG6p///566aWX3J4PCAjQs88+q3r16umWW26RzWbTrFmzPN7+wIEDc/0es3nzZj3//PO67rrrlJCQoGbNmql06dLq2LGj27qDBg2SzWZTrVq1FBUV5fF8UwAuvwv9fbRq1SqdOnVKN954o8qUKeP6mT17tmuZBx98UGfOnNH111+vXr16qV+/fnr00UcvuO+PPvpId955Z57/0N+pUyd9+eWXeV75lGPSpEk6fvy4rrvuOj3wwAPq27dvrqkLJGn48OGaNWuW6tWrp08++UQzZ850C85RtFiMcyfFAIogp9Op2NhYde7cWS+++KKvywEAAAAA4KrH7Xsoknbv3q1vvvlGTZs2VUZGht5++20lJSXpvvvu83VpAAAAAABA3L6HIspqtWrKlClq1KiRmjRpol9//VXLli1TbGys9uzZo7CwsHx/uEQdwKX4/vvvz3uOAYBL8corr+R7fmnbtq2vywNwBeN3GPgCt+/hqpOdnX3eb6+qVKmS/Py4iBDAxTlz5oz++eeffJ+/5pprTKwGQFFz7NixfL89Mzg4WGXLljW5IgBFBb/DwBcIpQAAAAAAAGA6bt8DAAAAAACA6QilAAAAAAAAYDpCKQAAAAAAAJiOUAoAAAAAAACmI5QCAAAAAACA6QilAAAA8tC9e3d17NjR12UAAAAUWYRSAAAAAAAAMB2hFAAAgJfGjBmjunXrKjQ0VOXLl9cTTzyhU6dOuZ6fMmWKIiIitGTJEsXGxiosLExt2rTRgQMHXMtkZ2erb9++ioiIUGRkpJ5++mklJia6XZ1VqVIljR071m3fDRo00LBhwzyuRZI++OADlS9fXiEhIbrzzjs1ZswYRUREuC0zf/58XXfddQoKClKVKlU0fPhwZWdnX/JrBQAAkB9CKQAAAC9ZrVa99dZb+u233/Txxx/r22+/1eDBg92WOX36tF5//XVNnTpV3333nfbs2aNBgwa5nh81apSmT5+uyZMna82aNUpNTdUXX3xR4LWsWbNGjz32mPr166ctW7aodevWevnll9228f333+vBBx9Uv3799Pvvv+u9997TlClTci0HAABQkCyGYRi+LgIAAKCw6d69u06cOOFRUDRv3jw99thjOnLkiKR/r5Tq0aOH/vrrL1WtWlWSNGHCBI0YMULJycmSpNKlS2vQoEGuoMrhcKhKlSq69tprXfusVKmS+vfvr/79+7v21aBBA3Xs2NHtaqnz1dKlSxedOnVKX3/9tWuZ+++/X19//bVOnDghSWrVqpVatmypZ5991rXMtGnTNHjwYO3fv/+C/QMAAFwMP18XAAAAcKVZtmyZRo4cqW3btik1NVXZ2dlKT0/X6dOnFRISIkkKCQlxBVKSVKZMGR06dEiSlJKSooMHD+r66693PW+z2dSwYUM5nc4CrWX79u2688473da5/vrr3UKqn3/+WWvWrHG7MsrhcOTqCQAAoCBx+x4AAIAXdu3apdtvv1316tXTp59+qk2bNumdd96RJGVmZrqW8/f3d1vPYrHI2wvUrVZrrnWysrK8ruVCTp06peHDh2vLli2un19//VV//vmngoKCvKoZAADAU1wpBQAA4IVNmzbJ6XTqjTfekNX677/vzZkzx6tt2O12RUdHa8OGDbrlllsk/Xtl0k8//aQGDRq4louKinKbHD01NVVJSUle1VKjRg1t2LDBbezcx9ddd522b9+ua665xqs+AAAALgWhFAAAQD5SUlK0ZcsWt7GSJUsqKytL48ePV/v27bVmzRq9++67Xm+7T58+GjlypK655hrVrFlT48eP1/Hjx2WxWFzLtGjRQlOmTFH79u0VERGhIUOGyGazuZ6/5pprLlhLnz59dMstt2jMmDFq3769vv32Wy1atMhtP0OGDNHtt9+uChUq6O6775bVatXPP/+srVu36qWXXvK6NwAAAE9w+x4AAEA+Vq5cqWuvvdbtZ+rUqRozZoxGjRqlOnXqaPr06Ro5cqTX23766afVtWtXPfjgg4qPj1dYWJgSEhLcbpd79tln1bRpU91+++1q166dOnbs6DZPVf369S9YS5P/a+8OURQM4jAO/7F6CMH2gWAShA0m8QYGsx5A8AY2EQURMeodBOXDZvMENvEMJotu3rLsLjpueJ4LvDDxBzPz8RHL5TImk0lUq9XY7XbR7/e/7LRardhsNpHnedRqtajX6zGdTqNUKv3h1AAAfsbvewAA/8D9fo8sy6LdbsdwOHzpVq/Xi9PpFIfD4aU7AADfcX0PAOANLpdL5HkejUYjbrdbzOfzOJ/P0el0nr41Ho+j2WxGsViM7XYb6/U6FovF03cAAH5DlAIAeINCoRCr1SoGg0E8Ho+oVCqx3+8jy7Knbx2PxxiNRnG9XqNcLsdsNotut/v0HQCA33B9DwAAAIDkPHQOAAAAQHKiFAAAAADJiVIAAAAAJCdKAQAAAJCcKAUAAABAcqIUAAAAAMmJUgAAAAAkJ0oBAAAAkJwoBQAAAEByn75e1hW0Z3cpAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfrlJREFUeJzs3Xt8zvX/x/HndV07b3bNZpvj5pDDnGNoziEjiVJSypR0QiFR31RU30QlEjqJDkQ66RspCeV8aCoVOgzJedjY7HRdn98ffrvaZRsb87lmHvfbbbeb63W9P5/P63V9rutj12ufz/tjMQzDEAAAAAAAAGAiq6cTAAAAAAAAwOWHphQAAAAAAABMR1MKAAAAAAAApqMpBQAAAAAAANPRlAIAAAAAAIDpaEoBAAAAAADAdDSlAAAAAAAAYDqaUgAAAAAAADAdTSkAAAAAAACYjqYUAOCysnLlSlksFq1cudLTqZRaFotF48aN83QaKETHjh3VsWNHT6dxSZg0aZLq1asnp9Pp6VSKhX1c9lgsFg0dOvSc41577TVFRUUpMzPThKwAwPNoSgFAKWaxWIr0Y0aDpbBtP//88xd920BZtmTJksumCbhx40Y98MADat68uby9vWWxWM46ftasWYqJiZGfn59q166tadOmFXlbqampmjhxosaMGSOr9fL7lXfatGmy2+3Kzs72dCqlUnJysl544QW1b99e4eHhCgkJ0VVXXaUFCxYUeR3Lly/XXXfdpTp16iggIEA1a9bU3Xffrf379593XgMHDlRWVpZef/31814HAFxKvDydAACgcO+9957b43fffVfLli3LF4+JiTEln2uuuUYDBgxwi1155ZWmbBsoq5YsWaLp06dfFo2pJUuW6K233lLjxo1Vs2ZN7dy5s9Cxr7/+uu677z716dNHI0eO1Pfff68HH3xQ6enpGjNmzDm39fbbbysnJ0e33nprSZZwyVi8eLG6du0qb29vT6dSKq1bt06PP/64rr32Wo0dO1ZeXl76+OOP1a9fP/36668aP378OdcxZswYHT16VDfffLNq166tv/76S6+++qq++OILbd26VRUrVix2Xn5+fkpISNDkyZM1bNiwczZuAeBSR1MKAEqx22+/3e3x+vXrtWzZsnxxs9SpU8dj20bJycjIkI+Pz2V59gguLqfTqaysLPn5+RX4/P33368xY8bI399fQ4cOLbQpderUKT3++OPq0aOHPvroI0nS4MGD5XQ69cwzz+iee+5R+fLlz5rL7Nmzdf311xeaS1mWnp6uVatWaebMmZ5OpdRq0KCBfv/9d0VHR7tiDzzwgLp06aKJEydq9OjRCgwMPOs6Jk+erLZt27odS7t166YOHTro1Vdf1bPPPnteufXt21eTJk3SihUr1KlTp/NaBwBcKvhtFAAucWlpaXr44YdVrVo1+fr6qm7dunrxxRdlGIbbuNz5LObOnau6devKz89PzZs313fffVes7Z06dUoZGRlFHv/RRx/JYrFo1apV+Z57/fXXZbFYtG3btgKX3bx5sywWi9555518z3311VeyWCz64osvJEm7d+/WAw88oLp168rf319hYWG6+eabtWvXrnPmWL16dQ0cODBfvKB5XTIzM/XUU0/piiuukK+vr6pVq6bRo0fnm/9j2bJlatu2rUJCQhQUFKS6devqP//5zzlzKc5++ueff3TXXXcpMjJSvr6+atCggd5++223MblzaM2fP19jx45VlSpVFBAQoNTU1HPmkquor+2cOXNksVi0Zs0ajRw5UuHh4QoMDNQNN9ygw4cPu411Op0aN26cKleurICAAF199dX69ddf8+2LcePGFXimQO628uawaNEi9ejRQ5UrV5avr69q1aqlZ555Rg6HI9/y06dPV82aNeXv76+WLVvq+++/v6D9XZDvv/9eN998s6KiolzLjhgxQqdOnXKNGThwoKZPny7J/RLZ4sjKytKTTz6p5s2by263KzAwUO3atdOKFStcYwzDUPXq1dWrV698y2dkZMhut+vee+8tdt15368NGjSQr6+vli5dWmiukZGR8vf3P2dNK1asUHJysh544AG3+JAhQ5SWlqbFixefdfmkpCT99NNP6tKlS77nkpOTdccddyg4OFghISFKSEjQjz/+KIvFojlz5riN/fbbb9WuXTsFBgYqJCREvXr10m+//ZZvnYmJierevbuCg4MVFBSkzp07a/369fnG/fTTT+rQoYP8/f1VtWpVPfvss5o9e3a+93JBivNeXL58uTIzM9W9e/fz2vaXX37pqrtcuXLq0aOHfvnlF7cxAwcOVFBQkPbs2aPrrrtOQUFBqlKliuv9/PPPP6tTp04KDAxUdHS05s2b57Z87md49erVevDBB12X0N17773KysrS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l+8BwCVsyZIlstlsevDBB93iDz/8sAzD0JdffukWj4uLU/PmzV2Po6Ki1KtXL3311VcFXuKU15o1a/TQQw/p+uuv13333actW7aoYcOG+s9//uN2OVJBbrnlFh06dMjtLoEfffSRnE6nbrnllnMum52drU8++cQV+/rrr3X8+HG3ZfNeEpSdna3k5GRdccUVCgkJ0Q8//HDWbRTVwoULFRMTo3r16unIkSOun9w5P3IvlwoJCZF0+nKy87kV/bn2k2EY+vjjj9WzZ08ZhuGWS3x8vFJSUvLVnJCQUKTLpgpS3Nf2nnvucbsErV27dnI4HNq9e7ek05cW5eTk5Ls0a9iwYeeVX0F5njhxQkeOHFG7du2Unp6u7du3Szp9SWhycrIGDx4sL69/Txjv379/vjmKirq/i5JPWlqajhw5otatW8swDNeZQCXBZrO5znxzOp06evSocnJyFBsb67Z/6tSpo1atWmnu3Lmu2NGjR/Xll1+qf//+rn1W3Lo7dOig+vXrl1g90unLhAs7m8/Pz++cx5zk5GR5eXkpKCjILb506VJ5e3tr8ODBrpjVatWQIUPcxu3fv19bt27VwIED3c4qa9y4sa655hotWbJE0ukzhb7++mv17t1bNWvWdI2rVKmSbrvtNq1evdp1qezSpUsVFxenpk2busaFhoaqf//+Z61FKt4+2bZtm/bs2eN2plBRt71s2TIdP35ct956q9t2bDabWrVqVeB7/u6773b9OyQkRHXr1lVgYKD69u3ritetW1chISEFXhI3aNAgt+NFq1atZBiGBg0a5IrZbDbFxsbmWz7vZ+zYsWNKSUlRu3btzuuY73Q61b9/fx0/frxYd3nM67vvvtP48ePVt2/fAueCKs7/weXLl9epU6eUnp5+XrkAwKWCy/cA4BK2e/duVa5cWeXKlXOL596NL7cJkKt27dr51lGnTh2lp6fr8OHDxbpTkI+Pj4YOHepqULVt27bQsd26dZPdbteCBQvUuXNnSacvv2vatKnq1Klz1u00adJE9erV04IFC1xfUhYsWKAKFSq4/dJ/6tQpTZgwQbNnz9Y///zjNvdISkpKkes6m99//12//fabwsPDC3z+0KFDkk430t566y3dfffdevTRR9W5c2fdeOONuummm4o0ufi59pPVatXx48f1xhtv6I033jhrLrnOvGSmOIr72kZFRbk9zm32HDt2TNK/78srrrjCbVxoaOg5J68+m19++UVjx47Vt99+m2/OrNw8C9u2l5dXvsvOirq/C7Nnzx49+eST+vzzz121n5lPSXnnnXf00ksvafv27crOznbFz9zvAwYM0NChQ7V7925FR0dr4cKFys7O1h133OEaU9y6L+S9VRh/f39lZWUV+FxGRsZ5N1h3796tSpUq5bvk9Mz3Q+77pG7duvnWERMTo6+++kppaWk6ceKE0tPTCx3ndDr1999/q0GDBtq9e7fi4uLyjTtz2wUpzj5ZvHixIiMj3S59LOq2f//9d0kqdHLt4OBgt8d+fn75crLb7apatWq+udHsdnu+z4GU/3hht9slSdWqVTvn8l988YWeffZZbd261W1urbzbPnr0qNt7yd/f37WNvIYNG6alS5fq3XffVZMmTVzxrKwsHT161G1seHi4bDabW2z79u264YYb1LBhQ7311lv51i8V7//g3OMsd98DUNbRlAIAnLfcLw1n/sJ+Jl9fX/Xu3VuffvqpZsyYoYMHD2rNmjV67rnnirSdW265Rf/973915MgRlStXTp9//rluvfVWtzNdhg0bptmzZ2v48OGKi4uT3W6XxWJRv379znm2UmG/9DscDrcvHk6nU40aNdLkyZMLHJ/7evj7++u7777TihUrtHjxYi1dulQLFixQp06d9PXXX+f7MlNcufXcfvvtBc6FI50+oyOv8/0SLxX/tS2sPuOMSYqL4mz7Jq/jx4+rQ4cOCg4O1tNPP61atWrJz89PP/zwg8aMGXNeZ6wVdX8Xlt8111yjo0ePasyYMapXr54CAwP1zz//aODAgeeVT2Hef/99DRw4UL1799YjjzyiiIgI2Ww2TZgwQX/++afb2H79+mnEiBGaO3eu/vOf/+j9999XbGysW1OluHVfyHurMJUqVZLD4dChQ4cUERHhimdlZSk5OVmVK1c+6/JhYWHKycnRiRMn8jXtL0XF2SdLlixRt27dzquZkfu+fO+99wr8I0XeY65U+Ge9OMeA4qwj7/Lff/+9rr/+erVv314zZsxQpUqV5O3trdmzZ7tNqn7jjTe63WgjISEh34T248eP14wZM/T888+7NWil0/OTXX311W6xpKQktyb233//ra5du8put2vJkiUl8p47duyYAgICLsrnCwBKE5pSAHAJi46O1jfffJPvi1fupUpn3lko96/gee3cuVMBAQGF/gX+bHIvpSjKsrfccoveeecdLV++XL/99psMwzjnpXt5lx0/frw+/vhjRUZGKjU1Vf369XMb89FHHykhIUEvvfSSK5aRkaHjx4+fc/3ly5cvcNzu3bvdLsmpVauWfvzxR3Xu3PmcX/isVqs6d+6szp07a/LkyXruuef0+OOPa8WKFQXeESyvouyncuXKyeFwnHNdJeFCXtuC5L4v//jjD7ezbJKTk/OdCZF75tTx48ddl0VK+c8CXLlypZKTk/XJJ5+offv2rnhSUlKh2877RTMnJ0e7du1ya+YVZ3+f6eeff9bOnTv1zjvvuE3MvGzZsnxjL/RMiI8++kg1a9bUJ5984raup556Kt/Y0NBQ9ejRQ3PnzlX//v21Zs0aTZkyxW3MhdRdUnIvM9u8ebOuvfZaV3zz5s1yOp1ul6EVpF69epJO7/+8+zQ6OlorVqxQenq629lSf/zxh9vyue+THTt25Fv39u3bVaFCBQUGBsrPz08BAQGFjrNara6GUXR0dL7tFLTtghR1nxw/flxr167V0KFD89VTlG3XqlVLkhQREWHKseVCfPzxx/Lz89NXX33lNmH77Nmz3ca99NJLbseVMxua06dP17hx4zR8+HCNGTMm33aaNGmS73Obt2GXnJysrl27KjMzU8uXL1elSpUKzbk4/wcnJSW5znoGgLKMOaUA4BJ27bXXyuFw6NVXX3WLv/zyy7JYLG63A5ekdevWuc218ffff2vRokXq2rXrWc/eOXz4cL7YiRMnNGXKFFWoUMFtjozCdOnSRaGhoVqwYIEWLFigli1bFvmyn5iYGDVq1Mi1bKVKldwaD9Lpv6qf+Vf4adOmnXOuLOn0F7H169e7XeLxxRdf6O+//3Yb17dvX/3zzz968803863j1KlTSktLk1TwmWO5X6ILun37mc61n2w2m/r06aOPP/5Y27Zty7d8QfvrQlzIa1uQzp07y8vLSzNnznSLn/k+lv79kpz3tulpaWl655138uUouZ9JkZWVpRkzZriNi42NVVhYmN58803l5OS44nPnzs3XECvq/i5IQfkYhqGpU6fmGxsYGChJ593kK2hbGzZs0Lp16wocf8cdd+jXX3/VI488IpvNlq/BeyF1l5ROnTopNDQ033tk5syZCggIOOed1XIvVdu8ebNbPD4+XtnZ2W61OZ1OTZ8+3W1cpUqV1LRpU73zzjtu+2Xbtm36+uuvXY0ym82mrl27atGiRdq1a5dr3MGDBzVv3jy1bdvWdclbfHy81q1bp61bt7rGHT161G2Or8IUdZ98/fXXkqSuXbvmq7so246Pj1dwcLCee+45t8tAc5X0seVC2Gw2WSwWt+PQrl278t2JsHnz5urSpYvrJ+/8Z7l3wuvfv3+hZ6GVL1/ebfkuXbrIz89P0ulj0bXXXqt//vlHS5YsKfDyvLyK83/wDz/8oNatWxfptQCASxlnSgHAJaxnz566+uqr9fjjj2vXrl1q0qSJvv76ay1atEjDhw93faHP1bBhQ8XHx7vdjlo6fenC2UyfPl2fffaZevbsqaioKO3fv19vv/229uzZo/fee6/QCYnz8vb21o033qj58+crLS1NL774YrFqveWWW/Tkk0/Kz89PgwYNyjc303XXXaf33ntPdrtd9evX17p16/TNN98oLCzsnOu+++679dFHH6lbt27q27ev/vzzT73//vv5Xr877rhDH374oe677z6tWLFCbdq0kcPh0Pbt2/Xhhx/qq6++UmxsrJ5++ml999136tGjh6Kjo3Xo0CHNmDFDVatWPevcW7mKsp+ef/55rVixQq1atdLgwYNVv359HT16VD/88IO++eabc15SWRwX8toWJDIyUg899JBeeuklXX/99erWrZt+/PFHffnll6pQoYLbmSBdu3ZVVFSUBg0a5GqivP322woPD9eePXtc41q3bq3y5csrISFBDz74oCwWi9577718zTQfHx+NGzdOw4YNU6dOndS3b1/t2rVLc+bMUa1atdy2XdT9XZB69eqpVq1aGjVqlP755x8FBwfr448/LnBOndym7oMPPqj4+PgCG0Vnc9111+mTTz7RDTfcoB49eigpKUmvvfaa6tevr5MnT+Yb36NHD4WFhWnhwoXq3r272+VxF1r3uezevVvvvfeepH8bRs8++6yk02fz5F465e/vr2eeeUZDhgzRzTffrPj4eH3//fd6//339d///tdt8vGC1KxZUw0bNtQ333yju+66yxXv3bu3WrZsqYcfflh//PGH6tWrp88//9z1ecm7/1944QV1795dcXFxGjRokE6dOqVp06bJbrdr3LhxrnHPPvusli1bprZt2+qBBx6Ql5eXXn/9dWVmZmrSpEmucaNHj9b777+va665RsOGDVNgYKDeeustRUVF6ejRo2c9A6qo+2Tx4sVq27ZtvjmTirrt4OBgzZw5U3fccYeaNWumfv36uT5rixcvVps2bQpsHntCjx49NHnyZHXr1k233XabDh06pOnTp+uKK67QTz/9dM7lN27cqAEDBigsLEydO3fO16Br3bq125myBenfv782btyou+66S7/99pt+++0313NBQUHq3bu32/ii/h+8ZcsWHT16VL169TpnHQBwyTP5bn8AgAtQ0C3UT5w4YYwYMcKoXLmy4e3tbdSuXdt44YUX3G6xbRinb0c9ZMgQ4/333zdq165t+Pr6GldeeaWxYsWKc27366+/Nq655hqjYsWKhre3txESEmJ07do13y2vz2XZsmWGJMNisRh///13sZb9/fffXbfUXr16db7njx07Ztx5551GhQoVjKCgICM+Pt7Yvn27ER0dbSQkJLjGrVixwpCUr+6XXnrJqFKliuHr62u0adPG2Lx5c77bshvG6VuOT5w40WjQoIHh6+trlC9f3mjevLkxfvx4IyUlxTAMw1i+fLnRq1cvo3LlyoaPj49RuXJl49ZbbzV27tx5zjqLs58OHjxoDBkyxKhWrZrh7e1tVKxY0ejcubPxxhtv5Kt34cKF59x23hzy3rq9qK9t7i3eN23a5La+gl7znJwc44knnjAqVqxo+Pv7G506dTJ+++03IywszO1W8IZhGFu2bDFatWpl+Pj4GFFRUcbkyZNd28q9lb1hGMaaNWuMq666yvD39zcqV65sjB492vjqq68K3N+vvPKKER0dbfj6+hotW7Y01qxZYzRv3tzo1q2b27ii7O/C/Prrr0aXLl2MoKAgo0KFCsbgwYONH3/80ZBkzJ492+21GDZsmBEeHm5YLJZ8n/Eznfm+dDqdxnPPPeeq58orrzS++OILIyEhwYiOji5wHQ888IAhyZg3b16Bzxe17tz3a1HlvhcK+jnzs2YYhvHGG28YdevWNXx8fIxatWoZL7/8cr5jW2EmT55sBAUFGenp6W7xw4cPG7fddptRrlw5w263GwMHDjTWrFljSDLmz5/vNvabb74x2rRpY/j7+xvBwcFGz549jV9//TXftn744QcjPj7eCAoKMgICAoyrr77aWLt2bb5xiYmJRrt27QxfX1+jatWqxoQJE4xXXnnFkGQcOHDANe58jj1Op9OIiIgw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U1JSNGvWLM2bN0+dOnWSJM2ePVsxMTFav369rrrqqmJtBwAAAAAAAKVHkZpSK1asuGgJDBkyRD169FCXLl3cmlJbtmxRdna2unTp4orVq1dPUVFRWrduXaFNqczMTGVmZroe557llZOTo5ycHEmn58GyWq1yOp1yOp2usblxh8OhvFc1Fha32WyyWCyu9eaNS8rXoCss7uXlJcMw3OIWi0U2my1fjoXFqYmaqImaqImaqImaqImaqImaqImaqImaSkNNZ+ZVmCI1pTp06FCklRXX/Pnz9cMPP2jTpk35njtw4IB8fHwUEhLiFo+MjNSBAwcKXeeECRM0fvz4fPHExEQFBgZKksLDw1WrVi0lJSXp8OHDrjFVq1ZV1apVtXPnTqWkpLjiNWvWVEREhLZt26ZTp0654vXq1VNISIgSExPddmDjxo3l4+OjzZs3u+UQGxurrKws/fTTT66YzWZTixYtlJKSou3bt7vi/v7+atKkiY4cOaK//vrLFbfb7YqJidG+ffu0d+9eV5yaqImaqImaqImaqImaqImaqImaqImaqKk01JSWlqaiOO+JztPT07Vnzx5lZWW5xc+cF6owf//9t2JjY7Vs2TLXMh07dlTTpk01ZcoUzZs3T3feeafbWU+S1LJlS1199dWaOHFigest6EypatWqKTk52TXf1eXSmaQmaqImaqImaqImaqImaqImaqImaqImajK7ptTUVIWFhZ1zovNiN6UOHz6sO++8U19++WWBz59ZYGE+++wz3XDDDa4XJndZi8Uiq9Wqr776Sl26dNGxY8fczpaKjo7W8OHDNWLEiCJth7vvAQAAAAAAmKeovRhrcVc8fPhwHT9+XBs2bJC/v7+WLl2qd955R7Vr19bnn39e5PV07txZP//8s7Zu3er6iY2NVf/+/V3/9vb21vLly13L7NixQ3v27FFcXFxx0wYAAAAAAEApUqQ5pfL69ttvtWjRIsXGxspqtSo6OlrXXHONgoODNWHCBPXo0aNI6ylXrpwaNmzoFgsMDFRYWJgrPmjQII0cOVKhoaEKDg7WsGHDFBcXx533AAAAAAAALnHFbkqlpaUpIiJCklS+fHkdPnxYderUUaNGjfTDDz+UaHIvv/yyrFar+vTpo8zMTMXHx2vGjBklug0AAAAAAACYr9hNqbp162rHjh2qXr26mjRpotdff13Vq1fX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MTExbr8XjBkzxoiJiSnSthwOh1GtWjXjs88+c23bx8fH+Ouvv1xjZs+ebUgytm7des51lStXzvjf//7nikky7rvvPrdxrVq1Mu6///4i5YdLD2dKodT7/fffdeutt6pmzZoKDg52/YU/75kCeTv/KSkpOnjwoFq2bOmK2Ww2NW/evMRy+uabb9S5c2dVqVJF5cqV0x133KHk5GSlp6efc9nGjRu7/m2xWFSxYkUdOnSoxHIDULAOHTpo5cqVMgxD33//vW688UbFxMRo9erVWrVqlSpXrqzatWublk///v21detWt5+nn37abczJkyc1atQoxcTEKCQkREFBQfrtt9/ynSl1tuPKwIEDtXXrVtWtW1cPPvigvv7664tfHABJ7p9NSapUqVKR/8+///77NX/+fDVt2lSjR4/W2rVrSyQnh8OhZ555Ro0aNVJoaKiCgoL01Vdf5TuuFCZvTZUqVZIkfo8BTFaU70d79uxR7969NWrUKPXt29dt+auuukoWi8X1OC4uTr///rtrmoOzWbZsmdLS0nTttddKkipUqKBrrrlGb7/9tts4Hx+ffMfAgwcPavDgwapdu7bsdruCg4N18uTJfMefuLi4fI85U6rsoimFUq9nz546evSo3nzzTW3YsEEbNmyQdHqelFyBgYGm5bNr1y5dd911aty4sT7++GNt2bJF06dPz5dTYby9vd0eWywWJv4DTNCxY0etXr1aP/74o7y9vVWvXj117NhRK1eu1KpVq9ShQwdJpy/PNc6YV+HMGygUZcy52O12XXHFFW4/ERERbmNGjRqlTz/9VM8995y+//57bd26VY0aNcp3rDnbcaVZs2ZKSkrSM888o1OnTqlv37666aabipUrgPNT2GfTaj39K3je48iZx5Du3btr9+7dGjFihPbt26fOnTu7TQdwvl544QVNnTpVY8aM0YoVK7R161bFx8cX6XcYyb2m3C+1/B4DmOtc34/S0tJ0/fXXKy4uLt8fvC7UrFmzdPToUfn7+8vLy0teXl5asmSJ3nnnHbdjgb+/v1vjS5ISEhK0detWTZ06VWvXrtXWrVsVFhZW5OMPyiaaUijVkpOTtWPHDo0dO1adO3dWTEyMjh07dtZl7Ha7IiMjtWnTJlfM4XAUOIne+diyZYucTqdeeuklXXXVVapTp4727dvnNsbHx6dIf2kAYJ7ceaVe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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgF9JREFUeJzs3XlcVPX+x/H3zLCDDIKAK7jkgnuKGam5JpqZljezrLBsuaWWWunttmm3X6bdTPOqbabd0jTb7KaZZmrXfQkrK7UFNVNcUEFRtpnz+8PLiRFQEDwD9no+Hjwezme+55zPZ87M1+HDWWyGYRgCAAAAAAAALGT3dgIAAAAAAAD486EpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUA+FNZtWqVbDabVq1a5e1UKiybzaZx48Z5Ow0Uo0uXLurSpYu306gUJk2apCZNmsjtdns7lVJhH196bDabhg8fft5xr7zyimJiYpSdnW1BVgDgfTSlAKACs9lsJfqxosFS3Laff/75i75t4FK2ZMmSP00TcNOmTXrggQfUtm1b+fr6ymazFTu2rHNORkaGJk6cqLFjx8pu//N95Z02bZqcTqdyc3O9nUqFlJaWphdeeEFXX321IiMjFRYWpiuvvFILFiwo8TpWrFihu+66S40aNVJQUJDq16+vu+++WwcOHLjgvIYMGaKcnBy9+uqrF7wOAKhMfLydAACgeG+//bbH43//+99avnx5oXhcXJwl+VxzzTW64447PGKXX365JdsGLlVLlizR9OnT/xSNqSVLluiNN95Qy5YtVb9+fe3ateuc48sy57z55pvKy8vTLbfccsH5VmaLFy9Wz5495evr6+1UKqT169fr8ccf17XXXqsnnnhCPj4++uCDDzRo0CD98MMPGj9+/HnXMXbsWB09elQ33XSTGjZsqF9//VX/+te/9Omnn2rbtm2qXr16qfMKCAhQUlKSJk+erBEjRpyzcQsAlwKaUgBQgd12220ejzds2KDly5cXilulUaNGXts2yk9WVpb8/Pz+lEeP4OJyu93KyclRQEBAkc/ff//9Gjt2rAIDAzV8+PDzNqXKMufMnj1b119/fbG5XMpOnTql1atXa+bMmd5OpcJq1qyZfvrpJ8XGxpqxBx54QD169NDEiRM1ZswYBQcHn3MdkydPVseOHT3m0l69eqlz587617/+pWefffaCchs4cKAmTZqklStXqlu3bhe0DgCoLPg2CgCVXGZmph5++GHVqVNH/v7+aty4sf75z3/KMAyPcfnXs5g7d64aN26sgIAAtW3bVl999VWptnf69GllZWWVePz7778vm82m1atXF3ru1Vdflc1m0/bt24tcdsuWLbLZbHrrrbcKPff555/LZrPp008/lSTt2bNHDzzwgBo3bqzAwEBFRETopptu0u7du8+bY926dTVkyJBC8aKu65Kdna2nn35al112mfz9/VWnTh2NGTOm0PU/li9fro4dOyosLEwhISFq3Lix/v73v583l9Lsp99//1133XWXoqOj5e/vr2bNmunNN9/0GJN/Da358+friSeeUK1atRQUFKSMjIzz5pKvpK/tnDlzZLPZtHbtWo0ePVqRkZEKDg7WDTfcoMOHD3uMdbvdGjdunGrWrKmgoCB17dpVP/zwQ6F9MW7cuCKPFMjfVsEcFi1apD59+qhmzZry9/dXgwYN9I9//EMul6vQ8tOnT1f9+vUVGBioK664Qv/973/LtL+L8t///lc33XSTYmJizGVHjRql06dPm2OGDBmi6dOnS/I8Xa00cnJy9NRTT6lt27ZyOp0KDg5Wp06dtHLlSnOMYRiqW7eu+vXrV2j5rKwsOZ1O3XfffaWuu+D7tVmzZvL399fSpUuLzTU6OlqBgYGlqq+0c44kpaSk6Ntvv1WPHj0KPZeWlqbbb79doaGhCgsLU1JSkr755hvZbDbNmTPHY+yXX36pTp06KTg4WGFhYerXr59+/PHHQutMTk5W7969FRoaqpCQEHXv3l0bNmwoNO7bb79V586dFRgYqNq1a+vZZ5/V7NmzC72Xi1Ka9+KKFSuUnZ2t3r17X9C2P/vsM7PuKlWqqE+fPvr+++89xgwZMkQhISHau3evrrvuOoWEhKhWrVrm+/m7775Tt27dFBwcrNjYWM2bN89j+fzP8Jo1a/Tggw+ap9Ddd999ysnJ0fHjx3XHHXeoatWqqlq1qsaMGVPo/7V//vOfuuqqqxQREaHAwEC1bdtW77///jlfx3z16tXzaEhJZ97P/fv3V3Z2tn799dfzruPqq68u1Ny/+uqrFR4eXuT7RFKJ5va2bdsqPDxcixYtKlEtAFCZcaQUAFRihmHo+uuv18qVKzV06FC1bt1an3/+uR599FH9/vvveumllzzGr169WgsWLNCDDz4of39/zZgxQ7169dKmTZvUvHnz825vzpw5mjFjhgzDUFxcnJ544gndeuut51ymT58+CgkJ0XvvvafOnTt7PLdgwQI1a9as2G3Hx8erfv36eu+995SUlFRo2apVqyoxMVGStHnzZq1bt06DBg1S7dq1tXv3bs2cOVNdunTRDz/8oKCgoPPWdz5ut1vXX3+91qxZo3vvvVdxcXH67rvv9NJLL2nXrl36+OOPJUnff/+9rrvuOrVs2VLPPPOM/P399fPPP2vt2rUl2k5J9tPBgwd15ZVXmk2ByMhIffbZZxo6dKgyMjI0cuRIj3X+4x//kJ+fnx555BFlZ2fLz8+vxHWX9rUdMWKEqlatqqefflq7d+/WlClTNHz4cI9rtTz22GOaNGmS+vbtq8TERH3zzTdKTEwsdfOhoDlz5igkJESjR49WSEiIvvzySz311FPKyMjQCy+8YI6bOXOmhg8frk6dOmnUqFHavXu3+vfvr6pVq6p27drmuJLu7+IsXLhQp06d0v3336+IiAht2rRJ06ZN0759+7Rw4UJJ0n333af9+/cXeVpuSWVkZOiNN97QLbfconvuuUcnTpzQrFmzlJiYqE2bNql169ay2Wy67bbbNGnSJB09elTh4eHm8v/5z3+UkZFhHpFU2rq//PJLvffeexo+fLiqVaumunXrXlAdRbmQOUeS1q1bJ0lq06aNR9ztdqtv377atGmT7r//fjVp0kSLFi0qNL9I0hdffKHevXurfv36GjdunE6fPq1p06apQ4cO+vrrr806v//+e3Xq1EmhoaEaM2aMfH199eqrr6pLly5avXq12rdvL+lME7lr166y2Wx67LHHFBwcrDfeeEP+/v7nrae0+2TJkiVq27atoqOjS73tt99+W0lJSUpMTNTEiRN16tQpzZw5Ux07dlRycrLH/nW5XOrdu7euvvpqTZo0SXPnztXw4cMVHBysxx9/XIMHD9aNN96oV155RXfccYcSEhJUr149j+2NGDFC1atX1/jx47Vhwwa99tprCgsL07p16xQTE6PnnntOS5Ys0QsvvKDmzZt7nM45depUXX/99Ro8eLBycnI0f/583XTTTfr000/Vp0+f876uRUlN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kcvlOu+6ykNZXtui5L8vf/75Z4+jbNLS0godCZF/5NTx48fN0yKlwkcBrlq1Smlpafrwww919dVXm/GUlJRit13wF828vDzt3r3bo5lXmv19tu+++067du3SW2+95XFh5uXLlxcaW9YjId5//33Vr19fH374oce6nn766UJjw8PD1adPH82dO1eDBw/W2rVrNWXKFI8xZan7YivpnNOkSRNJZ/Z/wX0aGxurlStX6tSpUx5HS/38888ey+e/T3bu3Flo3Tt27FC1atUUHBysgIAABQUFFTvObrebDaPY2NhC2ylq20Up6T45fvy41q1bp+HDhxeqpyTbbtCggSQpKirKkrmlLD744AMFBATo888/97hg++zZsz3Gvfjiix7zSs2aNT2enz59usaNG6eRI0dq7NixhbbTqlWrQp/bgg27tLQ09ezZU9nZ2VqxYoVq1KhRbM6l+T84JSXFPOoZAC5lnL4HAJXYtddeK5fLpX/9618e8Zdeekk2m83jduCStH79eo9rbfz2229atGiRevbsec6jd4o6te/EiROaMmWKqlWr5nGNjOL06NFD4eHhWrBggRYsWKArrriixKf9xMXFqUWLFuayNWrU8Gg8SGf+qn72X+GnTZt23mtlSWd+EduwYYNycnLM2KeffmqedpNv4MCB+v333/X6668XWsfp06eVmZkpqeijOPKv5VLU7dvPdr795HA4NGDAAH3wwQfavn17oeVLeyrm+ZTltS1K9+7d5ePjo5kzZ3rEz34fS3/8klzwtumZmZl66623CuUoeR5JkZOToxkzZniMi4+PV0REhF5//XXl5eWZ8blz5xZqiJV0fxelqHwMw9DUqVMLjQ0ODpakC27yFbWtjRs3av369UWOv/322/XDDz/o0UcflcPhKNTgLUvd5aWsc05CQoKkM9cQKygxMVG5ubketbndbk2fPt1jXI0aNdS6dWu99dZbHvtl+/btWrZsma699lpJZ177nj17atGiRdq9e7c57uDBg5o3b546duyo0NBQc9vr16/Xtm3bzHFHjx71uMZXcUq6T5YtWyZJ6tmzZ6G6S7LtxMREhYaG6rnnnlNubm6hbZX33FIWDodDNpvNYx7avXt3oTsRtm3bVj169DB/Cl7/LP9OeIMHDy72KLSqVat6LN+jRw8FBARIOjMXXXvttfr999+1ZMmSIk/PK6g0/wd//fXXuuqqq0r0WgBAZcaRUgBQifXt21ddu3bV448/rt27d6tVq1ZatmyZFi1apJEjR5q/0Odr3ry5EhMTPW5HLZ05deFcpk+fro8//lh9+/ZVTEyMDhw4oDfffFN79+7V22+/bV5k+Vx8fX114403av78+crMzNQ///nPUtV6880366mnnlJAQICGDh0qu93z7yrXXXed3n77bTmdTjVt2lTr16/XF198oYiIiPOu++6779b777+vXr16aeDAgfrll1/0zjvvFHr9br/9dr333nv661//qpUrV6pDhw5yuVzasWOH3nvvPX3++eeKj4/XM888o6+++kp9+vRRbGysDh06pBkzZqh27drq2LHjefMpyX56/vnntXLlSrVv31733HOPmjZtqqNHj+rrr7/WF198cd7Tm0qjLK9tUaKjo/XQQw/pxRdf1PXXX69evXrpm2++0WeffaZq1ap5HAnSs2dPxcTEaOjQoWYT5c0331RkZKT27t1rjrvqqqtUtWpVJSUl6cEHH5TNZtPbb79dqJnm5+encePGacSIEerWrZsGDhyo3bt3a86cOWrQoIHHtku6v4vSpEkTNWjQQI888oh+//13hYaG6oMPPijymjr5DZYHH3xQiYmJRTaKzuW6667Thx9+qBtuuEF9+vRRSkqKXnnlFTVt2lQnT54sNL5Pnz6KiIjQwoUL1bt3b0VFRXk8X5a6z2fPnj16++23Jf3RMHr22WclnTmaJ//UqbLOOfXr11fz5s31xRdf6K677jLj/fv31xVXXKGHH35YP//8s5o0aaJPPvnE/LwU3P8vvPCCevfurYSEBA0dOlSnT5/WtGnT5HQ6NW7cOHPcs88+q+XLl6tjx4564IEH5OPjo1dffVXZ2dmaNGmSOW7MmDF65513dM0112jEiBEKDg7WG2+8oZiYGB09evScR0CVdJ8sXrxYHTt2NK/LVNpth4aGaubMmbr99tvVpk0bDRo0yPysLV68WB06dCiyeewNffr00eTJk9WrVy/deuutOnTokKZPn67LLrtM33777XmX37Rpk+644w5FRESoe/fuhRp0V111lceRskUZPHiwNm3apLvuuks//vijfvzxR/O5kJAQ9e/f32N8Sf8P3rp1q44ePap+/fqdtw4AqPQsv98fAOCCFXUL9RMnThijRo0yatasafj6+hoNGzY0Xnjh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S5cuevHFF/XVV1/JZrOpS5cukqTs7Gw98sgjqlWrloKDg9W+fXutWrXKXC4tLU233HKLatWqpaCgILVo0ULvvvuu+fyQIUO0evVqTZ061TwybPfu3UWeXvjxxx97XJR83Lhxat26td544w3Vq1dPAQEBkqTjx4/r7rvvVmRkpEJDQ9WtWzd98803pXo9SoumFAAAAAAAuKRMnTpVL774ov75z3/q22+/VWJioq6//nr99NNPHuMeffRRPfzww0pOTlZCQoL69u2rtLS0Em3jt99+U6dOndS8eXO9//778vf3LzTmww8/1D333KOEhAQdOHBAH374oSRp+PDhWr9+vebPn69vv/1WN910k3r16mXml5WVpbZt22rx4sXavn277r33Xt1+++3atGmTWV9CQoLuueceHThwQAcOHFCdOnVK/Pr8/PPP+uCDD/Thhx9q27ZtkqSbbrpJhw4d0meffaatW7eqTZs26t69u44ePVri9ZYWTSkAAAAAAHBJ+ec//6mxY8dq0KBBaty4sSZOnKjWrVtrypQpHuOGDx+uAQMGKC4uTjNnzpTT6dSsWbPOu/6dO3eqQ4cOSkxM1OzZs+VwOIocFx4erqCgIPn5+al69eoKDw/X3r17NXv2bC1cuFCdOnVSgwYN9Mgjj6hjx46aPXu2JKlWrVp65JFH1Lp1a9WvX18jRoxQr1699N5770mSnE6n/Pz8FBQUZB4dVlwORcnJydG///1vXX755WrZsqXWrFmjTZs2aeHChYqPj1fDhg31z3/+U2FhYXr//fdLvN7S4ppSAAAAAADgkpGRkaH9+/erQ4cOHvEOHToUOh0tISHB/LePj4/i4+P1448/SpKaNWumPXv2SJI6deqkzz77TJJ0+vRpderUSbfeemuhJldJfPfdd3K5XGrUqJFHPDs7WxEREZIkl8ul5557Tu+9955+//135eTkKDs7W0FBQaXeXlFiY2MVGRlpPv7mm2908uRJc/v5Tp8+rV9++aVctlkUmlIAAAAAAABnWbJkiXJzcyVJgYGBZtzf3189evTQp59+qkcffVS1atUq1XpPnjwph8OhrVu3Fjq6Kf/i7C+88IKmTp2qKVOmqEWLFgoODtbIkSOVk5NzznXb7XYZhuERy6+hoODg4EI51ahRw+O6VvnOvkZVeaIpBQAAAAAALhmhoaGqWbOm1q5dq86dO5vxtWvX6oorrvAYu2HDBl199dWSpLy8PG3dulXDhw+XdOZooqLY7Xa9/fbbuvXWW9W1a1etWrVKNWvWLHF+l19+uVwulw4dOqROnToVOWbt2rXq16+fbrvtNkmS2+3Wrl271LRpU3OMn5+fXC6Xx3KRkZE6ceKEMjMzzcZT/jWjzqVNmzZKTU2Vj4+P6tatW+JayoprSgEAAAAAgEvKo48+qokTJ2rBggXauXOn/va3v2nbtm166KGHPMZNnz5dH330kXbs2KFhw4bp2LFjuuuuu867fofDoblz56pVq1bq1q2bUlNTS5xbo0aNNHjwYN1xxx368MMPlZKSok2bNmnChAlavHixJKlhw4Zavny51q1bpx9//FH33XefDh486LGeunXrauPGjdq9e7eOHDkit9ut9u3bKygoSH//+9/1yy+/aN68eZozZ855c+rRo4cSEhLUv39/LVu2TLt379a6dev0+OOPa8uWLSWurbRoSgEAAAAAgEvKgw8+qNGjR+vhhx9WixYttHTpUn3yySdq2LChx7jnn39ezz//vFq1aqU1a9bok08+UbVq1Uq0DR8fH7377rtq1qyZunXrpkOHDpU4v9mzZ+uOO+7Qww8/rMaNG6t///7avHmzYmJiJElPPPGE2rRpo8TERHXp0kXVq1dX//79PdbxyCOPyOFwqGnTpoqMjNTevXsVHh6ud955R0uWLFGLFi307rvvaty4cefNx2azacmSJbr66qt15513qlGjRho0aJD27Nmj6OjoEtdVWjbj7JMNLzEZGRlyOp1KT09XaGiot9MBAAAAAAClkJWVpZSUFNWrV08BAQHlss7du3erXr16Sk5OVuvWrctlnX8259ovJe3FcKQUAAAAAAAALEdTCgAAAAAAAJbj7nsAAAAAAOBPpW7durrEr2ZUKXCkFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsJyPtxMAAAAAAACoKDpX6WPp9lafWFyq8V999ZVeeOEFbd26VQcOHNBHH32k/v37X5zkLjKOlAIAAAAAAKgkMjMz1apVK02fPt3bqZQZR0oBAAAAAABUEr1791bv3r29nUa54EgpAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOW4+x4AAAAAAEAlcfLkSf3888/m45SUFG3btk3h4eGKiYnxYmalR1MKAAAAAACgktiyZYu6du1qPh49erQkKSkpSXPmzPFSVheGphQAAAAAAMD/rD6x2NspnFOXLl1kGIa30ygXXFMKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL+Xg7AQAAAAAAgIqi583PWLq9ZQueKtX4CRMm6MMPP9SOHTsUGBioq666ShMnTlTjxo0vUoYXD0dKAQAAAAAAVBKrV6/WsGHDtGHDBi1fvly5ubnq2bOnMjMzvZ1aqXGkFAAAAAAAQCWxdOlSj8dz5sxRVFSUtm7dqquvvtpLWV0Yrx4pVbduXdlstkI/w4YNkyRlZWVp2LBhioiIUEhIiAYMGKCDBw96M2UAAAAAAIAKIz09XZIUHh7u5UxKz6tNqc2bN+vAgQPmz/LlyyVJN910kyRp1KhR+s9//qOFCxdq9erV2r9/v2688UZvpgwAAAAAAFAhuN1ujRw5Uh06dFDz5s29nU6pefX0vcjISI/Hzz//vBo0aKDOnTsrPT1ds2bN0rx589StWzdJ0uzZsxUXF6cNGzboyiuv9EbKAAAAAAAAFcKwYcO0fft2rVmzxtupXJAKc02pnJwcvfPOOxo9erRsNpu2bt2q3Nxc9ejRwxzTpEkTxcTEaP369cU2pbKzs5WdnW0+zsjIkCTl5eUpLy9PkmS322W32+V2u+V2u82x+XGXyyXDMM4bdzgcstls5noLxiXJ5XKVKO7j4yPDMDziNptNDoejUI7FxamJmqiJmqiJmqiJmqiJmqiJmqiJmi7VmgzDMH/ylymYd8F1lSZeEVxoTSNGjNCnn36q1atXq1atWhdUX1lex/z9kb/PCu6/s98/xakwTamPP/5Yx48f15AhQyRJqamp8vPzU1hYmMe46OhopaamFrueCRMmaPz48YXiycnJCg4OlnTmCK0GDRooJSVFhw8fNsfUrl1btWvX1q5du8xzMiWpfv36ioqK0vbt23X69Gkz3qRJE4WFhSk5Odnjg9ayZUv5+flpy5YtHjnEx8crJydH3377rRlzOBxq166d0tPTtWPHDjMeGBioVq1a6ciRI/r111/NuNPpVFxcnPbv3699+/aZcWqiJmqiJmqiJmqiJmqiJmqiJmqipkuxpn379iknJ0enTp2Sy+WSn5+f/Pz8lJWV5ZGjv7+/fH19dfr0aY/mVkBAgHx8fHTq1CmPRktgYKDsdrvX71qXmZlZqpoMw9DYsWO1aNEiLVmyRFFRUWYNxdUUHBwst9vtsa9tNpuCg4PlcrmUlZVlxu12u4KCgpSXl+dx0I/D4VBgYKByc3OVk5Oj7Oxs5eTkaN++fWrUqJHHe6+kr6nNqCCtwsTERPn5+ek///mPJGnevHm68847PV4ASbriiivUtWtXTZw4scj1FHWkVJ06dZSWlqbQ0FBJl34HmZqoiZqoiZqoiZqoiZqoiZqoiZqo6VKp6dSpU9q9e7fq1aungIAAc5mLdaRU4qB/lGhcefl8/pOSSp77Aw88oHfffVeLFi1So0aNzLjT6VRgYGCptl2W1zErK0spKSmqW7eugoKCPPZfRkaGIiIilJ6ebvZiitx+RWhK7dmzR/Xr19eHH36ofv36SZK+/PJLde/eXceOHfM4Wio2NlYjR47UqFGjSrTujIwMOZ3O874QAAAAAACg4slvfhRsSl1MPW9+5qJvo6BlC54q1XibzVZkfPbs2ebZZ1Y4134paS+mQpy+N3v2bEVFRalPnz5mrG3btvL19dWKFSs0YMAASdLOnTu1d+9eJSQkeCtVAAAAAABwCSttk8hqFeDYonLj9aaU2+3W7NmzlZSUJB+fP9JxOp0aOnSoRo8erfDwcIWGhmrEiBFKSEjgznsAAAAAAACVnNebUl988YX27t2ru+66q9BzL730kux2uwYMGKDs7GwlJiZqxowZXsgSAAAAAAAA5alCXFPqYuKaUgAAAAAAVF5WX1MKJVMe15SyX+wkAQAAAAAAgLPRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALOfj7QQAAAAAAAAqitbPjrN0e9ueKN32Zs6cqZkzZ2r37t2SpGbNmumpp55S7969yz+5i4wjpQAAAAAAACqJ2rVr6/nnn9fWrVu1ZcsWdevWTf369dP333/v7dRKjSOlAAAAAAAAKom+fft6PP6///s/zZw5Uxs2bFCzZs28lNWFoSkFAAAAAABQCblcLi1cuFCZmZlKSEjwdjqlRlMKAAAAAACgEvnuu++UkJCgrKwshYSE6KOPPlLTpk29nVapcU0pAAAAAACASqRx48batm2bNm7cqPvvv19JSUn64YcfvJ1WqXGkFAAAAAAAQCXi5+enyy67TJLUtm1bbd68WVOnTtWrr77q5cxKhyOlAAAAAAAAKjG3263s7Gxvp1FqHCkFAAAAAABQSTz22GPq3bu3YmJidOLECc2bN0+rVq3S559/7u3USo2mFAAAAAAAQCVx6NAh3XHHHTpw4ICcTqdatmypzz//XNdcc423Uys1mlIAAAAAAAD/s+2Jcd5O4ZxmzZrl7RTKDdeUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcj7eTgAAAAAAAKCiGLHiIUu3N6371DIt//zzz+uxxx7TQw89pClTppRPUhbhSCkAAAAAAIBKaPPmzXr11VfVsmVLb6dyQWhKAQAAAAAAVDInT57U4MGD9frrr6tq1areTueC0JQCAAAAAACoZIYNG6Y+ffqoR48e3k7lgnFNKQAAAAAAgEpk/vz5+vrrr7V582Zvp1ImNKUAAAAAAAAqid9++00PPfSQli9froCAAG+nUyY0pQAAAAAAACqJrVu36tChQ2rTpo0Zc7lc+uqrr/Svf/1L2dnZcjgcXsyw5GhKAQAAAAAAVBLdu3fXd9995xG788471aRJE40dO7bSNKQkmlIAAAAAAACVRpUqVdS8eXOPWHBwsCIiIgrFKzruvgcAAAAAAADLcaQUAAAAAADA/0zrPtXbKZTaqlWrvJ3CBeFIKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALOfj7QQAAAAAAAAqit++62rp9uq0WFmq8ePGjdP48eM9Yo0bN9aOHTvKMy1L0JQCAAAAAACoRJo1a6YvvvjCfOzjUznbO5UzawAAAAAAgD8pHx8fVa9e3dtplJnXryn1+++/67bbblNERIQCAwPVokULbdmyxXzeMAw99dRTqlGjhgIDA9WjRw/99NNPXswYAAAAAADAe3766SfVrFlT9evX1+DBg7V3715vp3RBvNqUOnbsmDp06CBfX1999tln+uGHH/Tiiy+qatWq5phJkybp5Zdf1iuvvKKNGzcqODhYiYmJysrK8mLmAAAAAAAA1mvfvr3mzJmjpUuXaubMmUpJSVGnTp104sQJb6dWal49fW/ixImqU6eOZs+ebcbq1atn/tswDE2ZMkVPPPGE+vXrJ0n697//rejoaH388ccaNGiQ5TkDAAAAAAB4S+/evc1/t2zZUu3bt1dsbKzee+89DR061IuZlZ5Xm1KffPKJEhMTddNNN2n16tWqVauWHnjgAd1zzz2SpJSUFKWmpqpHjx7mMk6nU+3bt9f69euLbEplZ2crOzvbfJyRkSFJysvLU15eniTJbrfLbrfL7XbL7XabY/PjLpdLhmGcN+5wOGSz2cz1FoxLksvlKlHcx8dHhmF4xG02mxwOR6Eci4tTEzVREzVREzVREzVREzVREzVREzVdqjUZhmH+5C9TMO+C6ypNvCIoa01Op1ONGjXSTz/9VOoay/I65u+P/H1WcP+d/f4pjlebUr/++qtmzpyp0aNH6+9//7s2b96sBx98UH5+fkpKSlJqaqokKTo62mO56Oho87mzTZgwodCtESUpOTlZwcHBkqTIyEg1aNBAKSkpOnz4sDmmdu3aql27tnbt2qX09HQzXr9+fUVFRWn79u06ffq0GW/SpInCwsKUnJzs8UFr2bKl/Pz8PK6NJUnx8fHKycnRt99+a8YcDofatWun9PR0j9s3BgYGqlWrVjpy5Ih+/fVXM+50OhUXF6f9+/dr3759ZpyaqImaqImaqImaqImaqImaqImaqOlSrGnfvn3KycnRqVOn5HK55OfnJz8/P2VlZXnk6O/vL19fX50+fdqjuRUQECAfHx+dOnXKo9ESGBgou92uzMxMeVNmZmaZajpx4oR++eUXDRw4UG63u8iagoOD5Xa7Pfa1zWZTcHCwXC6XxyWS7Ha7goKClJeX53HQj8PhUGBgoHJzc5WTk6Ps7Gzl5ORo3759atSokcd7r6Svqc3wYqvQz89P8fHxWrdunRl78MEHtXnzZq1fv17r1q1Thw4dtH//ftWoUcMcM3DgQNlsNi1YsKDQOos6UqpOnTpKS0tTaGiopEu/g0xN1ERN1ERN1ERN1ERN1ERN1ERN1HSp1HTq1Cnt3r1b9erVU0BAgLnMxTpSat/2biUaV15qN/9SUslzf+SRR9S3b1/VrVtXv//+u8aNG6dt27bp+++/V2RkZKm2XZbXMSsrSykpKapbt66CgoI89l9GRoYiIiKUnp5u9mKK4tUjpWrUqKGmTZt6xOLi4vTBBx9Iknl7w4MHD3o0pQ4ePKjWrVsXuU5/f3/5+/sXivv4+MjHx7Pc/Df42fI/VCWNn73eC4nbbLYi48XlWNo4NVFTcXFqoiaJmorLsbRxaqImiZqKy7G0cWqiJomaisuxtHFqoiap8tdks9nMn4LrL0pp495W2pp+//133XrrrUpLS1NkZKQ6duyoDRs2KCoqqszbL008f3/k77OC+6+498nZvNqU6tChg3bu3OkR27Vrl2JjYyWdueh59erVtWLFCrMJlZGRoY0bN+r++++3Ol0AAAAAAHCJq9NipbdTOKf58+d7O4Vy49Wm1KhRo3TVVVfpueee08CBA7Vp0ya99tpreu211ySd6bqNHDlSzz77rBo2bKh69erpySefVM2aNdW/f39vpg4AAAAAAIAy8GpTql27dvroo4/02GOP6ZlnnlG9evU0ZcoUDR482BwzZswYZWZm6t5779Xx48fVsWNHLV261DyPFAAAAAAAAJWPVy90boWMjAw5nc7zXlwLAAAAAABUPPkX1C54oXN437n2S0l7MYWvIAYAAAAAAABcZDSlAAAAAABAhXeJn+hV6ZTH/qApBQAAAAAAKiyHwyFJysnJ8XImKOjUqVOSJF9f3wteh1cvdA4AAAAAAHAuPj4+CgoK0uHDh+Xr6yu7neNrvMkwDJ06dUqHDh1SWFiY2TS8EDSlAAAAAABAhWWz2VSjRg2lpKRoz5493k4H/xMWFqbq1auXaR00pQAAAAAAQIXm5+enhg0bcgpfBeHr61umI6Ty0ZQCAAAAAAAVnt1uV0BAgLfTQDniREwAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlvNqUGjdunGw2m8dPkyZNzOezsrI0bNgwRUREKCQkRAMGDNDBgwe9mDEAAAAAAADKg9ePlGrWrJkOHDhg/qxZs8Z8btSoUfrPf/6jhQsXavXq1dq/f79uvPFGL2YLAAAAAACA8uDj9QR8fFS9evVC8fT0dM2aNUvz5s1Tt27dJEmzZ89WXFycNmzYoCuvvNLqVAEAAAAAAFBOvN6U+umnn1SzZk0FBAQoISFBEyZMUExMjLZu3arc3Fz16NHDHNukSRPFxMRo/fr1xTalsrOzlZ2dbT7OyMiQJOXl5SkvL0+SZLfbZbfb5Xa75Xa7zbH5cZfLJcMwzht3OByy2WzmegvGJcnlcpUo7uPjI8MwPOI2m00Oh6NQjsXFqYmaqImaqImaqImaqImaqImaqImaqImaKkJNZ+dVHK82pdq3b685c+aocePGOnDggMaPH69OnTpp+/btSk1NlZ+fn8LCwjyWiY6OVmpqarHrnDBhgsaPH18onpycrODgYElSZGSkGjRooJSUFB0+fNgcU7t2bdWuXVu7du1Senq6Ga9fv76ioqK0fft2nT592ow3adJEYWFhSk5O9tiBLVu2lJ+fn7Zs2eKRQ3x8vHJycvTtt9+aMYfDoXbt2ik9PV07duww44GBgWrVqpWOHDmiX3/91Yw7nU7FxcVp//792rdvnxmnJmqiJmqiJmqiJmqiJmqiJmqiJmqiJmqqCDVlZmaqJGxGwVablx0/flyxsbGaPHmyAgMDdeedd3oc9SRJV1xxhbp27aqJEycWuY6ijpSqU6eO0tLSFBoaKunP05mkJmqiJmqiJmqiJmqiJmqiJmqiJmqiJmqyuqaMjAxFREQoPT3d7MUUpUI1pSSpXbt26tGjh6655hp1795dx44d8zhaKjY2ViNHjtSoUaNKtL6MjAw5nc7zvhAAAAAAAAAou5L2Yrx+972CTp48qV9++UU1atRQ27Zt5evrqxUrVpjP79y5U3v37lVCQoIXswQAAAAAAEBZefWaUo888oj69u2r2NhY7d+/X08//bQcDoduueUWOZ1ODR06VKNHj1Z4eLhCQ0M1YsQIJSQkcOc9AAAAAACASs6rTal9+/bplltuUVpamiIjI9WxY0dt2LBBkZGRkqSXXnpJdrtdAwYMUHZ2thITEzVjxgxvpgwAAAAAAIByUOGuKVXeuKYUAAAAAACAdSrlNaUAAAAAAADw50BTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5cqlKXX8+PHyWA0AAAAAAAD+JErdlJo4caIWLFhgPh44cKAiIiJUq1YtffPNN+WaHAAAAAAAAC5NpW5KvfLKK6pTp44kafny5Vq+fLk+++wz9e7dW48++mi5JwgAAAAAAIBLj09pF0hNTTWbUp9++qkGDhyonj17qm7dumrfvn25JwgAAAAAAIBLT6mPlKpatap+++03SdLSpUvVo0cPSZJhGHK5XOWbHQAAAAAAAC5JpT5S6sYbb9Stt96qhg0bKi0tTb1795YkJScn67LLLiv3BAEAAAAAAHDpKXVT6qWXXlLdunX122+/adKkSQoJCZEkHThwQA888EC5JwgAAAAAAIBLj80wDMPbSVxMGRkZcjqdSk9PV2hoqLfTAQAAAAAAuKSVtBdT6mtKSdLbb7+tjh07qmbNmtqzZ48kacqUKVq0aNGFZQsAAAAAAIA/lVI3pWbOnKnRo0erd+/eOn78uHlx87CwME2ZMqW88wMAAAAAAMAlqNRNqWnTpun111/X448/LofDYcbj4+P13XfflWtyAAAAAAAAuDSVuimVkpKiyy+/vFDc399fmZmZ5ZIUAAAAAAAALm2lbkrVq1dP27ZtKxRfunSp4uLiyiMnAAAAAAAAXOJ8SrvA6NGjNWzYMGVlZckwDG3atEnvvvuuJkyYoDfeeONi5AgAAAAAAIBLTKmbUnfffbcCAwP1xBNP6NSpU7r11ltVs2ZNTZ06VYMGDboYOQIAAAAAAOASYzMMw7jQhU+dOqWTJ08qKiqqPHMqVxkZGXI6nUpPT1doaKi30wEAAAAAALiklbQXU+ojpQoKCgpSUFBQWVYBAAAAAACAP6FSN6Xq1asnm81W7PO//vprmRICAAAAAADApa/UTamRI0d6PM7NzVVycrKWLl2qRx99tLzyAgAAAAAAwCWs1E2phx56qMj49OnTtWXLljInBAAAAAAAgEufvbxW1Lt3b33wwQfltToAAAAAAABcwsqtKfX+++8rPDy8vFYHAAAAAACAS1ipT9+7/PLLPS50bhiGUlNTdfjwYc2YMaNckwMAAAAAAMClqdRNqf79+3s8ttvtioyMVJcuXdSkSZPyygsAAAAAAACXMJthGIa3k5Ck559/Xo899pgeeughTZkyRZKUlZWlhx9+WPPnz1d2drYSExM1Y8YMRUdHl3i9GRkZcjqdSk9PV2ho6EXKHgAAAAAAAFLJezElOlIqIyOjxBu+kMbP5s2b9eqrr6ply5Ye8VGjRmnx4sVauHChnE6nhg8frhtvvFFr164t9TYAAAAAAABQcZSoKRUWFuZxHamiGIYhm80ml8tVqgROnjypwYMH6/XXX9ezzz5rxtPT0zVr1izNmzdP3bp1kyTNnj1bcXFx2rBhg6688spSbQcAAAAAAAAVR4maUitXrrxoCQwbNkx9+vRRjx49PJpSW7duVW5urnr06GHGmjRpopiYGK1fv77YplR2drays7PNx/lHeeXl5SkvL0/Smetg2e12ud1uud1uc2x+3OVyqeBZjcXFHQ6HbDabud6CcUmFGnTFxX18fGQYhkfcZrPJ4XAUyrG4ODVREzVREzVREzVREzVREzVREzVREzVRU0Wo6ey8ilOiplTnzp1LtLLSmj9/vr7++mtt3ry50HOpqany8/NTWFiYRzw6OlqpqanFrnPChAkaP358oXhycrKCg4MlSZGRkWrQoIFSUlJ0+PBhc0zt2rVVu3Zt7dq1S+np6Wa8fv36ioqK0vbt23X69Gkz3qRJE4WFhSk5OdljB7Zs2VJ+fn7asmWLRw7x8fHKycnRt99+a8YcDofatWun9PR07dixw4wHBgaqVatWOnLkiH799Vcz7nQ6FRcXp/3792vfvn1mnJqoiZqoiZqoiZqoiZqoiZqoiZqoiZqoqSLUlJmZqZK44Audnzp1Snv37lVOTo5H/OzrQhXnt99+U3x8vJYvX24u06VLF7Vu3VpTpkzRvHnzdOedd3oc9SRJV1xxhbp27aqJEycWud6ijpSqU6eO0tLSzOtd/Vk6k9RETdRETdRETdRETdRETdRETdRETdRETVbXlJGRoYiIiPNe6LzUTanDhw/rzjvv1GeffVbk82cXWJyPP/5YN9xwg/nC5C9rs9lkt9v1+eefq0ePHjp27JjH0VKxsbEaOXKkRo0aVaLtcPc9AAAAAAAA65S0F2Mv7YpHjhyp48ePa+PGjQoMDNTSpUv11ltvqWHDhvrkk09KvJ7u3bvru+++07Zt28yf+Ph4DR482Py3r6+vVqxYYS6zc+dO7d27VwkJCaVNGwAAAAAAABVIia4pVdCXX36pRYsWKT4+Xna7XbGxsbrmmmsUGhqqCRMmqE+fPiVaT5UqVdS8eXOPWHBwsCIiIsz40KFDNXr0aIWHhys0NFQjRoxQQkICd94DAAAAAACo5ErdlMrMzFRUVJQkqWrVqjp8+LAaNWqkFi1a6Ouvvy7X5F566SXZ7XYNGDBA2dnZSkxM1IwZM8p1GwAAAAAAALBeqZtSjRs31s6dO1W3bl21atVKr776qurWratXXnlFNWrUKFMyq1at8ngcEBCg6dOna/r06WVaLwAAAAAAACqWUjelHnroIR04cECS9PTTT6tXr16aO3eu/Pz8NGfOnPLODwAAAAAAAJegUt9972ynTp3Sjh07FBMTo2rVqpVXXuWGu+8BAAAAAABY56LdfW/NmjUej4OCgtSmTZsK2ZACAAAAAABAxVTqplS3bt1Ur149/f3vf9cPP/xwMXICAAAAAADAJa7UTan9+/fr4Ycf1urVq9W8eXO1bt1aL7zwgvbt23cx8gMAAAAAAMAlqEzXlEpJSdG8efP07rvvaseOHbr66qv15Zdflmd+ZcY1pQAAAAAAAKxT0l5MmS907nK59Nlnn+nJJ5/Ut99+K5fLVZbVlTuaUgAAAAAAANa5aBc6z7d27Vo98MADqlGjhm699VY1b95cixcvvtDVAQAAAAAA4E/Ep7QLPPbYY5o/f77279+va665RlOnTlW/fv0UFBR0MfIDAAAAAADAJajUTamvvvpKjz76qAYOHKhq1apdjJwAAAAAAABwiSt1U2rt2rUXIw8AAAAAAAD8iVzwNaUAAAAAAACAC0VTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5UrdlLr77ru1atWqi5AKAAAAAAAA/ixK3ZQ6fPiwevXqpTp16ujRRx/VN998czHyAgAAAAAAwCWs1E2pRYsW6cCBA3ryySe1efNmtWnTRs2aNdNzzz2n3bt3X4QUAQAAAAAAcKmxGYZhlGUF+/bt07vvvqs333xTP/30k/Ly8sort3KRkZEhp9Op9PR0hYaGejsdAAAAAACAS1pJezFlutB5bm6utmzZoo0bN2r37t2Kjo4uy+oAAAAAAADwJ3FBTamVK1fqnnvuUXR0tIYMGaLQ0FB9+umn2rdvX3nnBwAAAAAAgEuQT2kXqFWrlo4ePapevXrptddeU9++feXv738xcgMAAAAAAMAlqtRNqXHjxummm25SWFjYRUgHAAAAAAAAfwalbkrdc889FyMPAAAAAAAA/ImU6ULnAAAAAAAAwIWgKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHJebUrNnDlTLVu2VGhoqEJDQ5WQkKDPPvvMfD4rK0vDhg1TRESEQkJCNGDAAB08eNCLGQMAAAAAAKA8eLUpVbt2bT3//PPaunWrtmzZom7duqlfv376/vvvJUmjRo3Sf/7zHy1cuFCrV6/W/v37deONN3ozZQAAAAAAAJQDm2EYhreTKCg8PFwvvPCC/vKXvygyMlLz5s3TX/7yF0nSjh07FBcXp/Xr1+vKK68s0foyMjLkdDqVnp6u0NDQi5k6AAAAAADAn15JezE+FuZ0Ti6XSwsXLlRmZqYSEhK0detW5ebmqkePHuaYJk2aKCYm5pxNqezsbGVnZ5uPMzIyJEl5eXnKy8uTJNntdtntdrndbrndbnNsftzlcqlgr664uMPhkM1mM9dbMJ5fU0niPj4+MgzDI26z2eRwOArlWFycmqiJmqiJmqiJmqiJmqiJmqiJmqiJmqipItR0dl7F8XpT6rvvvlNCQoKysrIUEhKijz76SE2bNtW2bdvk5+ensLAwj/HR0dFKTU0tdn0TJkzQ+PHjC8WTk5MVHBwsSYqMjFSDBg2UkpKiw4cPm2Nq166t2rVra9euXUpPTzfj9evXV1RUlLZv367Tp0+b8SZNmigsLEzJyckeO7Bly5by8/PTli1bPHKIj49XTk6Ovv32WzPmcDjUrl07paena8eOHWY8MDBQrVq10pEjR/Trr7+acafTqbi4OO3fv1/79u0z49RETdRETdRETdRETdRETdRETdRETdRETRWhpszMTJWE10/fy8nJ0d69e5Wenq73339fb7zxhlavXq1t27bpzjvv9DjqSZKuuOIKde3aVRMnTixyfUUdKVWnTh2lpaWZh4z9WTqT1ERN1ERN1ERN1ERN1ERN1ERN1ERN1ERNVteUkZGhiIiI856+5/Wm1Nl69OihBg0a6Oabb1b37t117Ngxj6OlYmNjNXLkSI0aNapE6+OaUgAAAAAAANYpaS/Gq3ffK4rb7VZ2drbatm0rX19frVixwnxu586d2rt3rxISEryYIQAAAAAAAMrKq9eUeuyxx9S7d2/FxMToxIkTmjdvnlatWqXPP/9cTqdTQ4cO1ejRoxUeHq7Q0FCNGDFCCQkJJb7zHgAAAAAAAComrzalDh06pDvuuEMHDhyQ0+lUy5Yt9fnnn+uaa66RJL300kuy2+0aMGCAsrOzlZiYqBkzZngzZQAAAAAAAJSDCndNqfLGNaUAAAAAAACsU2mvKQUAAAAAAIBLH00pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5H28nAAAAgIqjc5U+3k6hVFafWOztFAAAwAXiSCkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJbzalNqwoQJateunapUqaKoqCj1799fO3fu9BiTlZWlYcOGKSIiQiEhIRowYIAOHjzopYwBAAAAAABQHrzalFq9erWGDRumDRs2aPny5crNzVXPnj2VmZlpjhk1apT+85//aOHChVq9erX279+vG2+80YtZAwAAAAAAoKxshmEY3k4i3+HDhxUVFaXVq1fr6quvVnp6uiIjIzVv3jz95S9/kSTt2LFDcXFxWr9+va688srzrjMjI0NOp1Pp6ekKDQ292CUAAABUap2r9PF2CqWy+sRib6cAAADOUtJeTIW6plR6erokKTw8XJK0detW5ebmqkePHuaYJk2aKCYmRuvXr/dKjgAAAAAAACg7H28nkM/tdmvkyJHq0KGDmjdvLklKTU2Vn5+fwsLCPMZGR0crNTW1yPVkZ2crOzvbfJyRkSFJysvLU15eniTJbrfLbrfL7XbL7XabY/PjLpdLBQ8gKy7ucDhks9nM9RaMS5LL5SpR3MfHR4ZheMRtNpscDkehHIuLUxM1URM1URM1URM1lUdNPn4OM+52ueV2GXL4OmSz/bFNV55bhruIeK5bhmF4rEOS8nJdkqHC8RyXZJN8fAvHbTabHL5//P3UMCRXrks2u00Onz/iLpfrT7mfqImaqImaqImaKnJNZ+dVnArTlBo2bJi2b9+uNWvWlGk9EyZM0Pjx4wvFk5OTFRwcLEmKjIxUgwYNlJKSosOHD5tjateurdq1a2vXrl3mUVuSVL9+fUVFRWn79u06ffq0GW/SpInCwsKUnJzssQNbtmwpPz8/bdmyxSOH+Ph45eTk6NtvvzVjDodD7dq1U3p6unbs2GHGAwMD1apVKx05ckS//vqrGXc6nYqLi9P+/fu1b98+M05N1ERN1ERN1ERN1FQeNfUZ/scR6jvX/6wd639R++tbKzK2mhnftmy79mz/XZ0HX6kq4SFmfP2HW3Rod5oS7+siH98/vmZ++dYanT6R5bFuSVr8ry8UWCVA3ZI6mrG83DwtnrZCkbHhSrgx3oyfOHpSX85Zq5imNdW6Z3MzvmvXrj/lfqImaqImaqImaqrINRW8Vvi5VIhrSg0fPlyLFi3SV199pXr16pnxL7/8Ut27d9exY8c8jpaKjY3VyJEjNWrUqELrKupIqTp16igtLc08j/HP0pmkJmqiJmqiJmqiJmoqbU3XRPY345XhSKllhz76U+4naqImaqImaqKmilxTRkaGIiIizntNKa82pQzD0IgRI/TRRx9p1apVatiwocfz+Rc6f/fddzVgwABJ0s6dO9WkSRMudA4AAHARcKFzAABQViXtxXj19L1hw4Zp3rx5WrRokapUqWJeJ8rpdCowMFBOp1NDhw7V6NGjFR4ertDQUI0YMUIJCQklakgBAAAAAACgYvJqU2rmzJmSpC5dunjEZ8+erSFDhkiSXnrpJdntdg0YMEDZ2dlKTEzUjBkzLM4UACqOynYUg8SRDAAAAAAK82pTqiRnDgYEBGj69OmaPn26BRkBAAAAAADACvbzDwEAAAAAAADKF00pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACW8+qFzi9V3BkLAAAAAADg3DhSCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5bimFADgout58zPeTqHUli14ytspAAAAAJc0jpQCAAAAAACA5WhKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsJyPtxMAAAAALlTPm5/xdgqltmzBU95OAQCACoEjpQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI5rSgEAAAAALrrOVfp4O4VSW31isbdTAC5pHCkFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAs5+PtBAAAqIhaPzvO2ymU2rYnxnk7BQAAAKDEOFIKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYzsfbCQAAAAB/Jq2fHeftFEpt2xPjvJ0CAOASxJFSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDkfbycAAAAAAEBF1PPmZ7ydQqktW/CUt1MASowjpQAAAAAAAGA5rzalvvrqK/Xt21c1a9aUzWbTxx9/7PG8YRh66qmnVKNGDQUGBqpHjx766aefvJMsAAAAAAAAyo1Xm1KZmZlq1aqVpk+fXuTzkyZN0ssvv6xXXnlFGzduVHBwsBITE5WVlWVxpgAAAAAAAChPXr2mVO/evdW7d+8inzMMQ1OmTNETTzyhfv36SZL+/e9/Kzo6Wh9//LEGDRpkZaoAAADAn9aIFQ95O4VSm9Z9qrdTAACcR4W9plRKSopSU1PVo0cPM+Z0OtW+fXutX7/ei5kBAAAAAACgrCrs3fdSU1MlSdHR0R7x6Oho87miZGdnKzs723yckZEhScrLy1NeXp4kyW63y263y+12y+12m2Pz4y6XS4ZhnDfucDhks9nM9ZpskgzJx8/hEc7LcUk2yce3cNxms8nh+0eP0DAkV65LNrtNDp/CcbvDJrvjj7jbZcjtcsvusMvusBWIu+V2GXL4OmT7IyxXnluG+494fg3F1eRwnMnZ5XKVKO7j4yPDMDziNptNDoej0OteXPxi7ydqoqbKWpOPn8PyOcKM57plGEbh+S3Xde55r8A2JSnPZchmkxz2P+KGIbncxcftNsleIO42JLfbkN1uU4Gw3G5DbuPMOjxydxsyzhE/O8f/TeXytXnGcw1DNkk+JYgbkvIMQ3ZJjhLE3ZJchiGHzebxVyOXYcj9v3XbzhFnLqem8qip4OfYsjmiDN+NHHabV+aIPNeZfVmaeP78lj+vWD1HmLkYRpHzW3HxXMOQDMl+1t+z3TZ3sXGbYZPnVouOGzJk2Ixi43bDc93Fxd1ySzZ5xPPy8rz+eboU54iy1GSz2SyfI8r63Sj/s2zlHOGR+wV8N+K9R00VoaZCfZJiVNim1IWaMGGCxo8fXyienJys4OBgSVJkZKQaNGiglJQUHT582BxTu3Zt1a5dW7t27VJ6eroZr1+/vqKiorR9+3adPn3ajDdp0kRhYWFKTk722IFVwoN1+kSW+gz/4ygvSVr8ry8UWCVA3ZI6mrG83DwtnrZCkbHhSrgx3oyfOHpSX85Zq5imNdW6Z3MzfnjPEa37YKsaXVFfjRMuM+N7t+9T8rLv1ap7nGKa1zbjO9f/rB3rf1H761srMraaGd+2bLv2bP9dnQdfqSrhIdqyZcs5a2rZsqX8/PzMcfni4+OVk5Ojb7/91ow5HA61a9dO6enp2rFjhxkPDAxUq1atdOTIEf36669m3Ol0Ki4uTvv379e+ffvM+MXeT9RETZW1pj7De1g+R+Rb/+EWHdqdpsT7usjH94//Qr58a805570eHWPNmCvP0Odr9ygiLFBXtPzjDw8nM3P11ZbfVTs6RC0a/5HLkaOntem7g2oQE6aGdcPM+L4DJ/XtriNqflmEatf4I8efdh/XT3uOq22zKFULDzTj3+08ot9ST6pDm5oKCfY145u+Pagjx06r+5Uxcvj88cXuoxO/6VRenm6KqedR08K9KQry8VGfmnXMWK7brYW/7Vb1gEB1ja5hxtNzc7R4/z7VC6mi9hGRZvzA6VNaeShVzZxV1SKsqhn/5eQJbUw7rPjwamoQUuWP3I8f03fpx9QpMlo1AoPM+Ma0w/rl5Akl1qglp68fczk1lUtNBT/HVs0RZfludNTX3ytzxFebf1dWdp56FpjfJGnZmj0K8PfR1e1qmbGz572c/328rZ4j8q08eEAHsk6rf+1Y+dr/+CV98f7i5z1/w19NshubMbfNpe8CvlcVd4jq59Q341m2LO0M2KWqrqqqk/vH/zcn7Cf0q3+KovKiVD3vj7n/qOOofvPbp9q5tRTuCjfjqT4HddD3oOrmxKqK+49af/Pdp6M+R9Uw+zIFGAFm/Fe/X3XCcVLNsuNkN8784rVlyxavf54uxTmiLDVFxoZbPkeU9buRPTpMkrVzRL4L/W7Ee4+aKkJNmZmZKgmbUbDV5kU2m00fffSR+vfvL0n69ddf1aBBAyUnJ6t169bmuM6dO6t169aaOrXoc8SLOlKqTp06SktLU2hoqKSL35nsHt6vwnb68539F87PD354zpoqSre1YPxS6SBTEzWVtqbE6Bsr3ZFSwddd6RmvBEdKHWjqqnRHSq0f+7gkPk/UVLaaronsb8Yrw5FSfj3bVbojpQ43O/PaV6YjpTpdeazSHSn1YpcXvP55uhTniLLU1CO8f6U7Uso/sd2Z17USHSm19N0neO9Rk9drysjIUEREhNLT081eTFEq7JFS9erVU/Xq1bVixQqzKZWRkaGNGzfq/vvvL3Y5f39/+fv7F4r7+PjIx8ez3PwX7mz5O6uk8bPXq/+9T/JyXIUHG0XHDcMoOu4uOn5mEi0q7pa7iM26cosIFoifXUOhmi4gbrPZiowX97qXNl7m/XQBcWqiJsn7NRWcE6yaI85W5PxWXNz44wuYR7iUcbdxpq5CcfeZX7rO5nIX/TeX4uJnbzP/UW4Rf7sxShl3S3KXIu4yDBX1CucV83ek/Dhzecni1HTueFGf44s+R5Thu5Hjf59pq+eIC4nnz29nzxNWzRFnK2q+KjZu+1/jp4Rxw2bIUBGvQSnjbltRe69k8YKfCeaIilFT/i/UVs4R+S70u5HjrM+yFXNESePFzXu896iptPGLUVNx2y+UT4lGXSQnT57Uzz//bD5OSUnRtm3bFB4erpiYGI0cOVLPPvusGjZsqHr16unJJ59UzZo1zaOpAAAAAAAAUDl5tSm1ZcsWde3a1Xw8evRoSVJSUpLmzJmjMWPGKDMzU/fee6+OHz+ujh07aunSpQoICChulQAAAAAAAKgEvNqU6tKli8c5kWez2Wx65pln9Mwzz1iYFQAAAAAAAC62CntNKQAAUDojVjzk7RRKZVr3om9aAgAAgD+HwlemAgAAAAAAAC4ymlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACW4+57kCT1vPkZb6dQassWPOXtFAAAAAAAwAXiSCkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJajKQUAAAAAAADL0ZQCAAAAAACA5WhKAQAAAAAAwHI+3k4AAAAAAACUj9bPjvN2CqW27Ylx3k4BXsKRUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALMc1pVBpca40AAAAAACVF0dKAQAAAAAAwHI0pQAAAAAAAGA5mlIAAAAAAACwHE0pAAAAAAAAWI6mFAAAAAAAACxHUwoAAAAAAACW8/F2AgAAAAAA4M9rxIqHvJ1CqU3rPtXbKVwSOFIKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALOfj7QSAP5MRKx7ydgqlNq37VG+nAAAAAAC4BHGkFAAAAAAAACxHUwoAAAAAAACWoykFAAAAAAAAy9GUAgAAAAAAgOVoSgEAAAAAAMByNKUAAAAAAABgOZpSAAAAAAAAsBxNKQAAAAAAAFiOphQAAAAAAAAsR1MKAAAAAAAAlqMpBQAAAAAAAMvRlAIAAAAAAIDlaEoBAAAAAADAcjSlAAAAAAAAYDmaUgAAAAAAALAcTSkAAAAAAABYjqYUAAAAAAAALEdTCgAAAAAAAJarFE2p6dOnq27dugoICFD79u21adMmb6cEAAAAAACAMqjwTakFCxZo9OjRevrpp/X111+rVatWSkxM1KFDh7ydGgAAAAAAAC5QhW9KTZ48Wffcc4/uvPNONW3aVK+88oqCgoL05ptvejs1AAAAAAAAXCAfbydwLjk5Odq6dasee+wxM2a329WjRw+tX7/ei5kBAICy+u27rt5OodTqtFjp7RQAAAAuGRW6KXXkyBG5XC5FR0d7xKOjo7Vjx44il8nOzlZ2drb5OD09XZJ09OhR5eXlSTrT2LLb7XK73XK73ebY/LjL5ZJhGOeNOxwO2Ww2c7358pQrGZKPn8MznuOSbJKPb+G4zWaTw/ePA9cMQ3LlumSz2+TwKRy3O2yyO/6Iu12G3C637A677A5bgbhbbpchh69Dtj/CcuW5Zbj/iBvuM6+Z223IMCRHgXVIkstl/K/mksdtNsluLxA3JJe7+LjdJtkKxA3jTD52u80jd8NtyG1ItmxDBbfqMiS3JB+bPOJ5hmRI8vVMsdh4rnFmeZ8SxI3/rccuyVGCeO7JHBk2QzbDJs8sjf/Fzz54sei4IbdkU9FxSTaVMG5zS0bR8fwct6/taq7FbnfJMOwyCm7X5pbd5pbbsEsF4jabWzabW263w6NWm80lm804R9xzWrLZzny+DKNkcbs9T7WafiqXy1VgrE0Oh6PQZ764+MWeIxyOM3NAwRzPFffx8ZFhGH/Efd2WzxFmPNctwzAKz2+5rnPOe37ubI+4FXOEw+45GZjzW3Hxs+Yxd5bb8jnCrTNzmcPmeShzcfPb2fHck7n/W791c8T540ax896JoDyvzBGGYZNhFHyv5s9vxcX/mPeCjx6t+HOEyjbvyfePuFVzRJm+G7myvTJHlOW7kT37zGts9RyR70K+G+WczLZ8jijrd6OjR496/fN0Kc4RZanJpTzr54gyfjcq9HuSBXPEH8lf2HcjZRuWzxFl/W6UezLX8jnCjOvCvhsdPXr0zBjmiCJrysjIOPOaFci5KDbjfCO8aP/+/apVq5bWrVunhIQEMz5mzBitXr1aGzduLLTMuHHjNH78eCvTBAAAAAAAwFl+++031a5du9jnK/SRUtWqVZPD4dDBgwc94gcPHlT16tWLXOaxxx7T6NGjzcdut1tHjx5VRESEbDZbkcsA+TIyMlSnTh399ttvCg0N9XY6AC4xzDEALibmGAAXE3MMSsMwDJ04cUI1a9Y857gK3ZTy8/NT27ZttWLFCvXv31/SmSbTihUrNHz48CKX8ff3l7+/v0csLCzsImeKS01oaCgTLYCLhjkGwMXEHAPgYmKOQUk5nc7zjqnQTSlJGj16tJKSkhQfH68rrrhCU6ZMUWZmpu68805vpwYAAAAAAIALVOGbUjfffLMOHz6sp556SqmpqWrdurWWLl1a6OLnAAAAAAAAqDwqfFNKkoYPH17s6XpAefL399fTTz9d6BRQACgPzDEALibmGAAXE3MMLoYKffc9AAAAAAAAXJrs3k4AAAAAAAAAfz40pQAAAAAAAGA5mlIAAAAAAPwJdOnSRSNHjvR2GsWy2Wz6+OOPvZ0GLERTCijCkCFD1L9//wtefs6cOQoLCyu3fABcWor7QsjcAaA8lPWXuor+SysA73v33XflcDg0bNgwb6eCSo6mFC45ubm53k4BAAAAAC5Zs2bN0pgxY/Tuu+8qKyvrnGNdLpfcbrdFmaGyoSmFCm/p0qXq2LGjwsLCFBERoeuuu06//PKLJGn37t2y2WxasGCBOnfurICAAM2dO1d5eXl68MEHzWXGjh2rpKSkMh39VNDkyZPVokULBQcHq06dOnrggQd08uRJSdKqVat05513Kj09XTabTTabTePGjZMk1a1bV88995zuuusuValSRTExMXrttdfKJScAxfv0008VFhYml8slSdq2bZtsNpv+9re/mWPuvvtu3XbbbRo3bpxat27tsfyUKVNUt25d83FRRxH0799fQ4YMKde8f/nlF/Xr10/R0dEKCQlRu3bt9MUXX3iMOd+8kpOTo+HDh6tGjRoKCAhQbGysJkyYUK55AiisS5cuevDBBzVmzBiFh4erevXq5veB/O8v27ZtM8cfP35cNptNq1atkiQdO3ZMgwcPVmRkpAIDA9WwYUPNnj27zHmlpaXplltuUa1atRQUFKQWLVro3XffNZ8fMmSIVq9eralTp5rfY3bv3q1Vq1bJZrNpxYoVio+PV1BQkK666irt3LmzzDkBKJ1z/X40btw487Nb8GfOnDnm8nl5eRo+fLicTqeqVaumJ598UoZhlHj7KSkpWrdunf72t7+pUaNG+vDDDz2ezz/y+5NPPlHTpk3l7++vvXv3avPmzbrmmmtUrVo1OZ1Ode7cWV9//XWh9R84cEC9e/dWYGCg6tevr/fff//CXihUCjSlUOFlZmZq9OjR2rJli1asWCG73a4bbrjBo9v+t7/9TQ899JB+/PFHJSYmauLEiZo7d65mz56ttWvXKiMjo1zPTbbb7Xr55Zf1/fff66233tKXX36pMWPGSJKuuuoqTZkyRaGhoTpw4IAOHDigRx55xFz2xRdfVHx8vJKTk/XAAw/o/vvv5wsdcJF16tRJJ06cUHJysiRp9erVqlatmvnLX36sS5cu3kmwGCdPntS1116rFStWKDk5Wb169VLfvn21d+9ej3HnmldefvllffLJJ3rvvfe0c+dOzZ0716PBBuDieeuttxQcHKyNGzdq0qRJeuaZZ7R8+fISLfvkk0/qhx9+0GeffaYff/xRM2fOVLVq1cqcU1ZWltq2bavFixdr+/btuvfee3X77bdr06ZNkqSpU6cqISFB99xzj/k9pk6dOubyjz/+uF588UVt2bJFPj4+uuuuu8qcE4DSOdfvR4888oj52T1w4ID++c9/KigoSPHx8ebyb731lnx8fLRp0yZNnTpVkydP1htvvFHi7c+ePVt9+vSR0+nUbbfdplmzZhUac+rUKU2cOFFvvPGGvv/+e0VFRenEiRNKSkrSmjVrtGHDBjVs2FDXXnutTpw44bHsk08+qQEDBuibb77R4MGDNWjQIP34448X/oKhYjOASubw4cOGJOO7774zUlJSDEnGlClTPMZER0cbL7zwgvk4Ly/PiImJMfr161eibSQlJZV4rGEYxsKFC42IiAjz8ezZsw2n01loXGxsrHHbbbeZj91utxEVFWXMnDmzxNsCcGHatGljzgv9+/c3/u///s/w8/MzTpw4Yezbt8+QZOzatct4+umnjVatWnks+9JLLxmxsbHm486dOxsPPfSQx5h+/foZSUlJJcqlc+fOhq+vrxEcHOzx4+/vX+TcUVCzZs2MadOmmY/PN6+MGDHC6Natm+F2u0uUG4Dy0blzZ6Njx44esXbt2hljx441v78kJyebzx07dsyQZKxcudIwDMPo27evceedd17QtiUZH330UYnH9+nTx3j44Yc9cj97jlu5cqUhyfjiiy/M2OLFiw1JxunTpy8oTwDlo+DvRwWtX7/eCAgIMBYsWGDGOnfubMTFxXl8Lxg7dqwRFxdXom25XC6jTp06xscff2xu28/Pz/j111/NMbNnzzYkGdu2bTvvuqpUqWL85z//MWOSjL/+9a8e49q3b2/cf//9JcoPlQ9HSqHC++mnn3TLLbeofv36Cg0NNf/CX/BIgYKd//T0dB08eFBXXHGFGXM4HGrbtm255fTFF1+oe/fuqlWrlqpUqaLbb79daWlpOnXq1HmXbdmypflvm82m6tWr69ChQ+WWG4Cide7cWatWrZJhGPrvf/+rG2+8UXFxcVqzZo1Wr16tmjVrqmHDhpblM3jwYG3bts3j55lnnvEYc/LkST3yyCOKi4tTWFiYQkJC9OOPPxY6Uupc88qQIUO0bds2NW7cWA8++KCWLVt28YsDIMnzsylJNWrUKPH/+ffff7/mz5+v1q1ba8yYMVq3bl255ORyufSPf/xDLVq0UHh4uEJCQvT5558XmleKU7CmGjVqSBLfYwCLleT3o71796p///565JFHNHDgQI/lr7zyStlsNvNxQkKCfvrpJ/MyB+eyfPlyZWZm6tprr5UkVatWTddcc43efPNNj3F+fn6F5sCDBw/qnnvuUcOGDeV0OhUaGqqTJ08Wmn8SEhIKPeZIqUsXTSlUeH379tXRo0f1+uuva+PGjdq4caOkM9dJyRccHGxZPrt379Z1112nli1b6oMPPtDWrVs1ffr0QjkVx9fX1+OxzWbjwn+ABbp06aI1a9bom2++ka+vr5o0aaIuXbpo1apVWr16tTp37izpzOm5xlnXVTj7BgolGXM+TqdTl112mcdPVFSUx5hHHnlEH330kZ577jn997//1bZt29SiRYtCc8255pU2bdooJSVF//jHP3T69GkNHDhQf/nLX0qVK4ALU9xn024/8xW84Dxy9hzSu3dv7dmzR6NGjdL+/fvVvXt3j8sBXKgXXnhBU6dO1dixY7Vy5Upt27ZNiYmJJfoOI3nWlP9LLd9jAGud7/ejzMxMXX/99UpISCj0B6+ymjVrlo4eParAwED5+PjIx8dHS5Ys0VtvveUxFwQGBno0viQpKSlJ27Zt09SpU7Vu3Tpt27ZNERERJZ5/cGmiKYUKLS0tTTt37tQTTzyh7t27Ky4uTseOHTvnMk6nU9HR0dq8ebMZc7lcRV5E70Js3bpVbrdbL774oq688ko1atRI+/fv9xjj5+dXor80ALBO/nWlXnrpJbMBld+UWrVqlXk9qcjISKWmpnr8sljwYsT5Yw4cOGA+drlc2r59e7nnvHbtWg0ZMkQ33HCDWrRooerVq2v37t2lXk9oaKhuvvlmvf7661qwYIE++OADHT16tNzzBVAykZGRkuQxj5w9z+SPS0pK0jvvvKMpU6aUy81R1q5dq379+um2225Tq1atVL9+fe3atctjDN9jgIrrfL8fGYah2267TW63W2+//XahxpAks4mVL//6Tg6H47zbXrRokebPn+9xpHdycrKOHTt23qOx165dqwcffFDXXnutmjVrJn9/fx05cqTQuA0bNhR6HBcXd851o/Ly8XYCwLlUrVpVEREReu2111SjRg3t3bvX425ZxRkxYoQmTJigyy67TE2aNNG0adN07NixIifl4qSnpxf6ghgREaHLLrtMubm5mjZtmvr27au1a9fqlVde8RhXt25dnTx5UitWrFCrVq0UFBSkoKCgEm8bQPmrWrWqWrZsqblz5+pf//qXJOnqq6/WwIEDlZub69GoOnz4sCZNmqS//OUvWrp0qT777DOFhoaa6+rWrZtGjx6txYsXq0GDBpo8ebKOHz9e7jk3bNhQH374ofr27SubzaYnn3yy1EckTJ48WTVq1NDll18u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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAivFJREFUeJzs3XlcVXX+x/H3uZcdBAQRRQSX3HKdNI3UNCXJHNP0V1k2adkyk1pq+7Rp02TaVJap1eRom2WWZZNlmamNexpWVmoZ7jsoKMh27/n9YRy5AgoC5wK+no+Hj7qfe5bP5557v9778XvOMUzTNAUAAAAAAADYyOHtBAAAAAAAAHD+oSkFAAAAAAAA29GUAgAAAAAAgO1oSgEAAAAAAMB2NKUAAAAAAABgO5pSAAAAAAAAsB1NKQAAAAAAANiOphQAAAAAAABsR1MKAAAAAAAAtqMpBQA4ryxbtkyGYWjZsmXeTqXKMgxD48eP93YaKEHPnj3Vs2dPb6dRLUyePFktW7aU2+32diplwjGueQzD0KhRo8663CuvvKK4uDjl5OTYkBUAeB9NKQCowgzDKNUfOxosJe37mWeeqfR9AzXZZ599dl40Ad1ut2bPnq2rr75aDRs2VHBwsNq0aaOnnnpK2dnZxa4zc+ZMtWrVSgEBAWrWrJmmTp1a6v1lZGRo0qRJevDBB+VwnH9feadOnaqwsDDl5eV5O5UqKTU1Vc8++6wuu+wyRUVFKTw8XJdcconmzp1b6m0sWbJEt956q5o3b66goCA1adJEt912m/bt23fOeQ0fPly5ubl69dVXz3kbAFCd+Hg7AQBAyd566y2Px2+++aYWL15cJN6qVStb8rniiit08803e8T+9Kc/2bJvoKb67LPPNG3atBrfmMrKytItt9yiSy65RH/9619Vt25drV69Wk888YSWLFmir7/+WoZhWMu/+uqr+utf/6rBgwdr3Lhx+t///qe7775bWVlZevDBB8+6v//85z/Kz8/XDTfcUJllVVkLFy5Unz595Ovr6+1UqqTVq1frkUce0VVXXaVHH31UPj4++vDDDzVkyBD9/PPPmjBhwlm38eCDDyotLU3XXnutmjVrpt9//10vv/yyPv30U23cuFH16tUrc14BAQEaNmyYnn/+eY0ePdrjMwEANRFNKQCowm666SaPx2vWrNHixYuLxO3SvHlzr+0bFSc7O1t+fn7n5ewRVC63263c3FwFBAQUec7Pz08rV67UpZdeasVuv/12NWrUyGpMJSYmSpJOnDihRx55RP369dMHH3xgLet2u/WPf/xDd9xxh2rXrn3GXGbNmqWrr7662FxquqysLC1fvlwzZszwdipVVuvWrfXrr78qPj7eit11111KTEzUpEmT9MADDyg4OPiM23j++efVrVs3j7H0yiuvVI8ePfTyyy/rqaeeOqfcrrvuOk2ePFlLly5Vr169zmkbAFBd8G0UAKq5zMxM3XvvvWrYsKH8/f3VokUL/etf/5Jpmh7LFVzP4p133lGLFi0UEBCgjh076ptvvinT/k6cOFHiqTbF+eCDD2QYhpYvX17kuVdffVWGYWjTpk3Frrt+/XoZhqE33nijyHNffPGFDMPQp59+KknasWOH7rrrLrVo0UKBgYGKjIzUtddeq+3bt581x0aNGmn48OFF4sVd1yUnJ0dPPPGELrjgAvn7+6thw4Z64IEHilz/Y/HixerWrZvCw8MVEhKiFi1a6O9///tZcynLcdqzZ49uvfVWRUdHy9/fX61bt9Z//vMfj2UKrqH13nvv6dFHH1WDBg0UFBSkjIyMs+ZSoLSv7ezZs2UYhlauXKlx48YpKipKwcHBuuaaa3To0CGPZd1ut8aPH6+YmBgFBQXp8ssv188//1zkWIwfP77YmQIF+yqcw4IFC9SvXz/FxMTI399fTZs21T/+8Q+5XK4i60+bNk1NmjRRYGCgOnfurP/973/lOt7F+d///qdrr71WcXFx1rpjx47ViRMnrGWGDx+uadOmSfI8RbYscnNz9fjjj6tjx44KCwtTcHCwunfvrqVLl1rLmKapRo0aacCAAUXWz87OVlhYmO68884y1134/dq6dWv5+/tr0aJFxebp5+fn0ZAqcM0110iSfvnlFyu2dOlSpaam6q677vJYduTIkcrMzNTChQvP+JqkpKTohx9+sJpchaWmpuovf/mLQkNDFR4ermHDhun777+XYRiaPXu2x7Jff/21unfvruDgYIWHh2vAgAEeeRZITk5W3759FRoaqpCQEPXu3Vtr1qwpstwPP/ygHj16KDAwULGxsXrqqac0a9asIu/l4pTlvbhkyRLl5OSob9++57Tvzz//3Kq7Vq1a6tevn3766SePZYYPH66QkBDt3LlTf/7znxUSEqIGDRpY7+cff/xRvXr1UnBwsOLj4zVnzhyP9Qs+wytWrNDdd99tnUJ35513Kjc3V0ePHtXNN9+s2rVrq3bt2nrggQeK/L32r3/9S5deeqkiIyMVGBiojh07Wk3Ms2ncuLFHQ0o6+X4eOHCgcnJy9Pvvv591G5dddlmR5v5ll12miIiIYt8nkko1tnfs2FERERFasGBBqWoBgOqMmVIAUI2Zpqmrr75aS5cu1YgRI9ShQwd98cUXuv/++7Vnzx698MILHssvX75cc+fO1d133y1/f39Nnz5dV155pdatW6c2bdqcdX+zZ8/W9OnTZZqmWrVqpUcffVQ33njjGdfp16+fQkJC9P7776tHjx4ez82dO1etW7cucd+dOnVSkyZN9P7772vYsGFF1q1du7aSkpIkSd9++61WrVqlIUOGKDY2Vtu3b9eMGTPUs2dP/fzzzwoKCjprfWfjdrt19dVXa8WKFbrjjjvUqlUr/fjjj3rhhRe0detWffzxx5Kkn376SX/+85/Vrl07Pfnkk/L399dvv/2mlStXlmo/pTlOBw4c0CWXXGI1BaKiovT5559rxIgRysjI0JgxYzy2+Y9//EN+fn667777lJOTIz8/v1LXXdbXdvTo0apdu7aeeOIJbd++XVOmTNGoUaM8rtXy8MMPa/Lkyerfv7+SkpL0/fffKykpqUwNz9PNnj1bISEhGjdunEJCQvT111/r8ccfV0ZGhp599llruRkzZmjUqFHq3r27xo4dq+3bt2vgwIGqXbu2YmNjreVKe7xLMm/ePGVlZelvf/ubIiMjtW7dOk2dOlW7d+/WvHnzJEl33nmn9u7dW+xpuaWVkZGh119/XTfccINuv/12HTt2TDNnzlRSUpLWrVunDh06yDAM3XTTTZo8ebLS0tIUERFhrf/f//5XGRkZ1izIstb99ddf6/3339eoUaNUp04dNWrUqEz579+/X5JUp04dK5acnCzp5BhQWMeOHeVwOJScnHzGWZurVq2SJF100UUecbfbrf79+2vdunX629/+ppYtW2rBggVFxhdJ+uqrr9S3b181adJE48eP14kTJzR16lR17dpV3333nVXnTz/9pO7duys0NFQPPPCAfH199eqrr6pnz55avny5unTpIulkE/nyyy+XYRh6+OGHFRwcrNdff13+/v5nfY3Kekw+++wzdezYUdHR0WXe91tv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f78WLlzo8XzTpk2tZlJgYKD+8Y9/aOTIkbr22muVlJSk//3vf3r77bf1z3/+0+Pi48Vp0qSJ2rRpo6+++kq33nqrFR84cKA6d+6se++9V7/99ptatmypTz75xPq8FD7+zz77rPr27auEhASNGDFCJ06c0NSpUxUWFqbx48dbyz311FNavHixunXrprvuuks+Pj569dVXlZOTo8mTJ1vLPfDAA3r77bd1xRVXaPTo0QoODtbrr7+uuLg4paWlnXEGVGmPycKFC9WtW7ci10wq7b5DQ0M1Y8YM/eUvf9FFF12kIUOGWJ+1hQsXqmvXrsU2j72hX79+ev7553XllVfqxhtv1MGDBzVt2jRdcMEF+uGHH866/rp163TzzTcrMjJSvXv3LtKgu/TSSz1myhZn6NChWrdunW699Vb98ssv+uWXX6znQkJCNHDgQI/lS/t38IYNG5SWlqYBAwactQ4AqPZsvtsfAKAcirt1/LFjx8yxY8eaMTExpq+vr9msWTPz2Wef9bjFtmmevB31yJEjzbffftts1qyZ6e/vb/7pT38yly5detb9fvnll+YVV1xh1qtXz/T19TXDw8PNPn36FLnl9dksXrzYlGQahmHu2rWrTOv++uuv1i21V6xYUeT5I0eOmLfccotZp04dMyQkxExKSjI3b95sxsfHm8OGDbOWW7p0qSmpSN3PPfec2aBBA9Pf39/s2rWruX79+iK3ZTfNk7ccnzRpktm6dWvT39/frF27ttmxY0dzwoQJZnp6ummaprlkyRJzwIABZkxMjOnn52fGxMSYN9xwg7l169az1lmW43TgwAFz5MiRZsOGDU1fX1+zXr16Zu/evc3XXnutSL3z5s07674L51D41u2lfW0LbvH+7bffemyvuNc8Pz/ffOyxx8x69eqZgYGBZq9evcxffvnFjIyM9LgVvGma5oYNG8wuXbqYfn5+ZlxcnPn8889b+yq4lb1pmubKlSvNSy65xAwMDDRjYmLMBx54wPziiy+KPd4vvfSSGR8fb/r7+5udO3c2V65caXbs2NG88sorPZYrzfEuyc8//2wmJiaaISEhZp06dczbb7/d/P77701J5qxZszxei9GjR5tRUVGmYRhFPuOnO/196Xa7zaefftqq509/+pP56aefmsOGDTPj4+OL3cZdd91lSjLnzJlT7POlrbvg/VoaKSkp1me4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4nHXN3hXeHi46tWrd9aLmZ8JTSkAAAAAAFBlmaapffv2yel0qmHDhkVumAZ7maaprKwsHTx4UJJUv379c94WTSkAAAAAAFBl5efnKysrSzExMQoKCvJ2OpAUGBgoSTp48KDq1q17xlP5zoT2IgAAAAAAqLJcLpckyc/Pz8uZoLCCBmFeXt45b4OmFAAAAAAAqPLKc+0iVLyKOB40pQAAAAAAAGA7mlIAAAAAAAClMHv2bIWHh5dpnaysLA0ePFihoaEyDENHjx6tlNyqI5pSAAAAAACg2jEM44x/xo8f7+0UJUlvvPGG/ve//2nVqlXat2+fwsLCKmS7PXv21JgxYypkW97C3fcAAAAAAEC1s2/fPuv/586dq8cff1xbtmyxYiEhId5Iq4ht27apVatWatOmjbdTKVZubq7XLiLPTCkAAAAAAFDt1KtXz/oTFhYmwzCsx3Xr1tXzzz+v2NhY+fv7q0OHDlq0aJG17vbt22UYht577z1deumlCggIUJs2bbR8+fIy5XDo0CF16tRJ11xzjXJycoo837NnTz333HP65ptvZBiGevbsKUnKycnRfffdpwYNGig4OFhdunTRsmXLrPVSU1N1ww03qEGDBgoKClLbtm317rvvWs8PHz5cy5cv14svvmjNDNu+fXuxpxd+/PHHHhclHz9+vDp06KDXX39djRs3VkBAgCTp6NGjuu222xQVFaXQ0FD16tVL33//fZlej7KiKQUAAAAAAGqUF198Uc8995z+9a9/6YcfflBSUpKuvvpq/frrrx7L3X///br33nuVnJyshIQE9e/fX6mpqaXax65du9S9e3e1adNGH3zwgfz9/YssM3/+fN1+++1KSEjQvn37NH/+fEnSqFGjtHr1ar333nv64YcfdO211+rKK6+08svOzlbHjh21cOFCbdq0SXfccYf+8pe/aN26dVZ9CQkJuv3227Vv3z7t27dPDRs2LPXr89tvv+nDDz/U/PnztXHjRknStddeq4MHD+rzzz/Xhg0bdNFFF6l3795KS0sr9XbLiqYUAAAAAACoUf71r3/pwQcf1JAhQ9SiRQtNmjRJHTp00JQpUzyWGzVqlAYPHqxWrVppxowZCgsL08yZM8+6/S1btqhr165KSkrSrFmz5HQ6i10uIiJCQUFB8vPzU7169RQREaGdO3dq1qxZmjdvnrp3766mTZvq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kfrzn/+sbdu2SZK2b98uwzA0d+5c9ejRQwEBAXrnnXeUn5+vu+++21rnwQcf1LBhw8o1+6mw559/Xm3btlVwcLAaNmyou+66S8ePH5ckLVu2TLfccovS09NlGIYMw9D48eMlSY0aNdLTTz+tW2+9VbVq1VJcXJxee+21CskJQMk+/fRThYeHy+VySZI2btwowzD00EMPWcvcdtttuummmzR+/Hh16NDBY/0pU6aoUaNG1uPiZhEMHDhQw4cPr9C8t23bpgEDBig6OlohISG6+OKL9dVXX3ksc7ZxJTc3V6NGjVL9+vUVEBCg+Ph4TZw4sULzBFBUz549dffdd+uBBx5QRESE6tWrZ30fKPj+snHjRmv5o0ePyjAMLVu2TJJ05MgRDR06VFFRUQoMDFSzZs00a9ascueVmpqqG264QQ0aNFBQUJDatm2rd99913p++PDhWr58uV588UXre8z27du1bNkyGYahJUuWqFOnTgoKCtKll16qLVu2lDsnAGVzpt9H48ePtz67hf/Mnj3bWj8/P1+jRo1SWFiY6tSpo8cee0ymaZZ6/ykpKVq1apUeeughNW/eXPPnz/d4vmDm9yeffKILL7xQ/v7+2rlzp7799ltdccUVqlOnjsLCwtSjRw999913Rba/b98+9e3bV4GBgWrSpIk++OCDc3uhUC3QlEKVl5mZqXHjxmn9+vVasmSJHA6HrrnmGo9u+0MPPaR77rlHv/zyi5KSkjRp0iS98847mjVrllauXKmMjIwKPTfZ4XDopZde0k8//aQ33nhDX3/9tR544AFJ0qWXXqopU6YoNDRU+/bt0759+3TfffdZ6z733HPq1KmTkpOTddddd+lvf/sbX+iASta9e3cdO3ZMycnJkqTly5erTp061o+/gljPnj29k2AJjh8/rquuukpLlixRcnKyrrzySvXv3187d+70WO5M48pLL72kTz75RO+//762bNmid955x6PBBqDyvPHGGwoODtbatWs1efJkPfnkk1q8eHGp1n3sscf0888/6/PPP9cvv/yiGTNmqE6dOuXOKTs7Wx07dtTChQu1adMm3XHHHfrLX/6idevWSZJefPFFJSQk6Pbbb7e+xzRs2NBa/5FHHtFzzz2n/2/vzmOiON84gH9ZDrnkEFGoUSlCdZX7KqhhrdSgCBWqwQsBTW2xDaCWSkzUimgpqOuB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O+jpcRAhET2fpqYm/PXXX+1+7uDgoMVsiOhVU1NT0+7bM42MjNCvXz8tZ0RErwpew1B3YFGKiIiIiIiIiIi0jo/vERERERERERGR1rEoRUREREREREREWseiFBERERERERERaR2LUkREREREREREpHUsShERERERERERkdaxKEVERET0FNHR0QgNDe3uNIiIiIheWSxKERERERERERGR1rEoRURERNRJcrkczs7OMDExQf/+/fHhhx9CqVSqP8/KyoKFhQUOHz4MqVQKU1NTjB07Fjdu3FDHtLS0IC4uDhYWFrCyskJiYiKioqJEo7Ps7Oywdu1aUdtubm5YunSpxrkAwJYtW9C/f38YGxsjLCwMcrkcFhYWoph9+/bBw8MDhoaGsLe3R1JSElpaWl74uyIiIiJqD4tSRERERJ0kkUiwfv16XLhwAdnZ2Thy5AgWLFggimlsbMSqVauQk5ODn3/+GVVVVUhISFB/npqaitzcXGRmZqKkpAT19fXYu3dvl+dSUlKCmJgYxMfHQ6FQYMyYMVixYoXoGMXFxYiMjER8fDx+++03fPnll8jKymoTR0RERNSVdARBELo7CSIiIqKXTXR0NO7du6dRoWjXrl2IiYnBnTt3ADwcKTVz5kz8/vvvGDRoEABg06ZNWLZsGW7evAkAsLGxQUJCgrpQ1draCnt7e7i7u6vbtLOzw9y5czF37lx1W25ubggNDRWNlnpWLlOmTIFSqUR+fr46JiIiAvn5+bh37x4A4O2330ZAQAAWLlyojtm+fTsWLFiA69evd3j+RERERM9Dr7sTICIiIvqvKSwsREpKCi5duoT6+nq0tLTg77//RmNjI4yNjQEAxsbG6oIUANja2uLWrVsAgLq6OlRXV8PHx0f9ua6uLjw9PaFSqbo0l8uXLyMsLEy0j4+Pj6hIVV5ejpKSEtHIqNbW1jbnRERERNSV+PgeERERUSdUVlYiODgYLi4u2L17N8rKyrBx40YAwD///KOO09fXF+2no6ODzg5Ql0gkbfZpbm7udC4dUSqVSEpKgkKhUC/nzp3D1atXYWho2KmciYiIiDTFkVJEREREnVBWVgaVSoXVq1dDInn4+963337bqWOYm5ujb9++OH36NPz9/QE8HJl05swZuLm5qeOsra1Fk6PX19ejoqKiU7kMHjwYp0+fFm17ct3DwwOXL1+Gg4NDp86DiIiI6EWwKEVERETUjrq6OigUCtG23r17o7m5Genp6QgJCUFJSQk2b97c6WPHxsYiJSUFDg4OGDJkCNLT01FbWwsdHR11zOjRo5GVlYWQkBBYWFhgyZIl0NXVVX/u4ODQYS6xsbHw9/eHXC5HSEgIjhw5goMHD4raWbJkCYKDgzFgwABMmjQJEokE5eXlOH/+PJYvX97pcyMiIiLSBB/fIyIiImpHUVER3N3dRUtOTg7kcjlSU1Ph5OSE3NxcpKSkdPrYiYmJmDp1KiIjI+Hn5wdTU1MEBgaKHpdbuHAhZDIZgoODMX78eISGhormqXJ1de0wlxEjRmDz5s2Qy+VwdXXFoUOHMG/ePFE7gYGByM/PR0FBAby9veHr64s1a9Zg4MCBz/GtEREREWmGb98jIiIiegmoVCpIpVKEh4cjOTn5X21r9uzZuHTpEoqLi//VdoiIiIiehY/vEREREXWDa9euoaCgADKZDA8ePMCGDRtQUVGBadOmdXlbq1atwpgxY2BiYoKDBw8iOzsbmzZt6vJ2iIiIiDqDRSkiIiKibiCRSJCVlYWEhAQIggAnJycUFhZCKpV2eVulpaVIS0tDQ0MD7O3tsX79erz33ntd3g4RERFRZ/DxPSIiIiIiIiIi0jpOdE5ERERERERERFrHohQREREREREREWkdi1JERERERERERKR1LEoREREREREREZHWsShFRERERERERERax6IUERERERERERFpHYtSRERERERERESkdSxKERERERERERGR1rEoRUREREREREREWvc/6pOMZnjwlIgAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_dir = \"v_score_runs/run_insight_4\"\n", + "layers = [0,2,5,10,15,20]\n", + "top_head = 4\n", + "extra_rank_index = 2000\n", + "\n", + "for layer in layers:\n", + " visualize_top_v_scores_notebook(run_dir, layer, top_head, extra_rank_index, ylim_max=80)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e814efe4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAhClJREFUeJzs3X18zfX/x/HnOWd2bWc22xg2F7mY6zK0JGIayZfShVJRukYhdO2iK1REvqWSUBFRqSglSQihqZSrakKurzaGzXY+vz/89vnu2MaZzeds87jfbrvddt7ncz6f1+u8z9k557nP53NshmEYAgAAAAAAACxk93YBAAAAAAAAuPgQSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAcBbff/+9bDabvv/+e2+XUmLZbDaNGDHC22WgAG3btlXbtm29XYbX7NixQ/7+/lqxYoW3S8FF5o8//pCPj482bNjg7VIAoMQilAKAMsRms3n0Y0XAUtC2R48efcG3DZRlX3755UUVAm7cuFEdO3ZUcHCwwsLCdMcdd2j//v0e3/7ZZ59Vy5Yt1apVqzzXzZ8/Xx07dlR4eLj8/f1Vp04dDRkyRIcOHSrOFi6YZs2a6aGHHnIbK4097dq1S7fffrvq1q2r8uXLKzQ0VC1atND06dNlGIbH6ynqY+Xo0aMaOnSoatSoIT8/P1WpUkU33nijjh8/bi4zYsQIt9c0u92uypUr67rrrtOqVavc1le/fn117txZw4YN87gGALjY+Hi7AABA8Xn//ffdLr/33ntatGhRnvG4uDhL6unQoYPuvPNOt7FLL73Ukm0DZdWXX36p119//aIIpnbu3KmrrrpKTqdTL774oo4dO6ZXXnlFv/32m3766Sf5+vqe9fb79+/X9OnTNX369DzXDR48WGPHjlWTJk302GOPKSwsTD///LMmTpyo2bNna/Hixapdu/aFaq3Idu/ereTkZD377LPmWGnt6cCBA9q5c6duvPFGxcTE6NSpU1q0aJF69+6tzZs368UXXzznOor6WElNTVWbNm20c+dO3Xfffbrkkku0f/9+LVu2TBkZGQoMDHRbftKkSQoODpbL5dKOHTs0efJkXXXVVfrpp5/UtGlTc7kHHnhA1157rf766y/VqlXrvO4fACjTDABAmdW3b1/DW3/qJRl9+/b1yraL05IlSwxJxpIlS7xditecOHHCyM7OLvB6Scbw4cOtK+giV9jndZs2bYw2bdpcuIKKIDs72zhx4kSB1z/44INGQECA8c8//5hjixYtMiQZb7311jnXP27cOCMgIMA4evSo2/jMmTMNScYtt9xiZGVluV23evVqIzAw0GjSpIlx6tSpQnZknSlTphgBAQHG8ePHDcMoGz2d6brrrjOCgoLy9JOfoj5WHnzwQSM0NNT4+++/z7rc8OHDDUnG/v373cY3bNhgSDKefPJJt/HMzEyjQoUKxjPPPHPOGgDgYsThewBwkUlPT9ejjz6qatWqyc/PT3Xr1tUrr7yS5xAJm82mfv36acaMGapbt678/f3VrFkz/fDDD4Xa3okTJ3Ty5EmPl587d65sNpuWLl2a57q33npLNputwPNzrF27VjabLd+9Ir7++mvZbDbNnz9fkvTPP//ooYceUt26dRUQEKDw8HDddNNN2rZt2zlrrF69unr37p1nPL9z92RkZGj48OG65JJL5Ofnp2rVqmno0KHKyMhwW27RokW68sorFRoaquDgYNWtW1dPPvnkOWspzDz9+++/uvvuuxUVFSU/Pz81aNBA7777rtsyOefQmjVrlp5++mlVqVJFgYGBSktLO2ctOTy9b6dNmyabzaYVK1Zo0KBBioiIUFBQkK6//vo8h9y4XC6NGDFC0dHRCgwM1NVXX60//vgjz1zkHFpzppxt5a7hs88+U+fOnRUdHS0/Pz/VqlVLzz33nLKzs/Pc/vXXX1fNmjUVEBCgFi1aaNmyZUWa7/wsW7ZMN910k2JiYszbDhw4UCdOnDCX6d27t15//XVJ7ofIFkZmZqaGDRumZs2ayel0KigoSK1bt9aSJUvMZQzDUPXq1dW1a9c8tz958qScTqfuv//+Qved+/HaoEED+fn5aeHChQXW+vHHH+u6665TTEyMOZaYmKg6deroo48+Omev8+bNU8uWLRUcHOw2PnLkSFWoUEFvv/22HA6H23UtWrTQY489pl9++UWffPKJJOm1116Tw+HQkSNHzOXGjh0rm82mQYMGmWPZ2dkqX768HnvsMXPM5XJp/PjxatCggfz9/RUVFaX7779fhw8fdttu9erVdd1112n58uVq0aKF/P39VbNmTb333nv59rZgwQJdffXVCggIKDM9nal69eo6fvy4MjMzz7lsUR4rR44c0dSpU3XfffepRo0ayszM9Og5m1ulSpUkST4+7geilCtXTm3bttVnn31WqPUBwMWCUAoALiKGYeg///mPXn31VXXs2FHjxo1T3bp1NWTIELcPITmWLl2qAQMG6Pbbb9ezzz6rgwcPqmPHjh6ftHXatGkKCgpSQECA6tevr5kzZ57zNp07d1ZwcHC+HyJmz56tBg0aqGHDhvneNj4+XjVr1izwthUqVFBSUpIkac2aNfrxxx/Vo0cPvfbaa3rggQe0ePFitW3b1u38IUXhcrn0n//8R6+88oq6dOmiiRMnqlu3bnr11Vd1yy23mMv9/vvvuu6665SRkaFnn31WY8eO1X/+8x+PT8zsyTzt3btXl19+ub799lv169dPEyZM0CWXXKI+ffpo/Pjxedb53HPPacGCBRo8eLBefPHFcx76klth79v+/fvrl19+0fDhw/Xggw/qiy++UL9+/dyWeeKJJzRy5EjFx8fr5ZdfVu3atZWUlKT09HSP6zrTtGnTFBwcrEGDBmnChAlq1qyZhg0bpscff9xtuUmTJqlfv36qWrWqXnrpJbVu3VrdunXTzp073ZbzdL4LMmfOHB0/flwPPvigJk6cqKSkJE2cONHtENj7779fHTp0kHT6cN2cn8JIS0vTO++8o7Zt22rMmDEaMWKE9u/fr6SkJK1fv17S6fDo9ttv11dffZXnXERffPGF0tLSdPvtt59X3999950GDhyoW265RRMmTFD16tXzrfPff//Vvn37FB8fn+e6Fi1aKDk5+ax9njp1SmvWrNFll13mNr5161Zt3rxZXbt2VUhISL63zbnPv/jiC0lS69at5XK5tHz5cnOZZcuWyW63a9myZeZYcnKyjh07pquuusocu//++zVkyBC1atVKEyZM0F133aUZM2YoKSlJp06dctvun3/+qRtvvFEdOnTQ2LFjVaFCBfXu3Vu///57nt6+/fZbXXvttWWmJ+n0PzEOHDigbdu2afr06Zo6daoSEhLM4K0gRX2sLF++XCdPntQll1yiG2+8UYGBgQoICFCrVq3M58SZDh06pAMHDmjfvn1KTk7WvffeK39/f9188815lm3WrJk2bNhQqHAfAC4aXt5TCwBwAZ15mM+8efMMScbzzz/vttyNN95o2Gw2488//zTHJBmSjLVr15pj//zzj+Hv729cf/3159z2FVdcYYwfP9747LPPjEmTJhkNGzY0JBlvvPHGOW976623GpGRkW6HbOzevduw2+3Gs88+e9bbPvHEE0a5cuWMQ4cOmWMZGRlGaGiocffdd5tjOYe85LZy5UpDkvHee++ZY/kdvhcbG2v06tUrz+3PPEzq/fffN+x2u7Fs2TK35d58801DkrFixQrDMAzj1VdfzfdwEE94Ok99+vQxKleubBw4cMDt9j169DCcTqd5f+T0W7NmzXzvo4JqyH34nqf37dSpUw1JRmJiouFyuczxgQMHGg6Hwzhy5IhhGIaxZ88ew8fHx+jWrZvbOkeMGGFIcpuLnENrzpSzrZSUlLPWef/99xuBgYHGyZMnDcM4/dgJDw83mjdv7nbY07Rp0wxJ5zXfBcmvnlGjRhk2m83tkKSiHr6XlZVlZGRkuC1z+PBhIyoqyu05snnzZkOSMWnSJLdl//Of/xjVq1c356wwfUsy7Ha78fvvv5+z7jVr1uR5zOQYMmSIIcmcp/z8+eefhiRj4sSJbuM5fwdfffXVs24/JCTEuOyyywzDOH2YYUhIiDF06FDDMAzD5XIZ4eHhxk033WQ4HA7z8MBx48YZdrvdOHz4sGEYhrFs2TJDkjFjxgy3dS9cuDDPeGxsrCHJ+OGHH8yxffv2GX5+fsajjz7qdvvFixe7PZ7LQk+GcfrxnvM3TZLRvn17Y/v27WftyTCK/lgZN26cIckIDw83WrRoYcyYMcN44403jKioKKNChQrGrl27zGVz/sac+RMaGmosXLgw3/XnHFq5evXqc/YCABcb9pQCgIvIl19+KYfDoYcfftht/NFHH5VhGPrqq6/cxhMSEtSsWTPzckxMjLp27aqvv/4630OccluxYoUeeeQR/ec//9EDDzygdevWqWHDhnryySfdDkfKzy233KJ9+/a5fUvg3Llz5XK5zrnHyS233KJTp06Zh6hI0jfffKMjR4643Tb3f95PnTqlgwcP6pJLLlFoaKh+/vnns27DU3PmzFFcXJzq1aunAwcOmD/t2rWTJPNwqdDQUEmnDydzuVyF3s655skwDH388cfq0qWLDMNwqyUpKUmpqal5eu7Vq9c5904oSGHv2/vuu8/tELTWrVsrOztb//zzjyRp8eLFysrKyvMtY/379z+v+vKr8+jRozpw4IBat26t48ePa9OmTZJOHxJ68OBB3XvvvW6H5fTs2VMVKlRwW5+n8+1JPenp6Tpw4ICuuOIKGYZxzj09CsPhcJh7vrlcLh06dEhZWVmKj493m586deqoZcuWmjFjhjl26NAhffXVV+rZs6c5Z4Xtu02bNqpfv/4568z5O+Hn55fnOn9/f7dl8nPw4EFJyjNPR48elSSVL1/+rNsvX768uazdbtcVV1xhHha7ceNGHTx4UI8//rgMw9DKlSslnd7TqGHDhuZzes6cOXI6nerQoYPbfdOsWTMFBwfnuW/q16+v1q1bm5cjIiJUt25d/f33327Lffnll6pfv765l1lZ6EmSbr31Vi1atEgzZ87UbbfdJunsc5yjqI+VY8eOSTq9h+DixYt122236cEHH9S8efN0+PBh85DZ3D7++GMtWrRI33zzjaZOnao6deqoe/fu+vHHH/Msm/MYPHDgwDl7AYCLDaEUAFxE/vnnH0VHR+f54JLzbXw5IUCO/L6lqU6dOjp+/HihvmZbknx9fdWvXz8dOXJE69atO+uyHTt2lNPp1OzZs82x2bNnq2nTpqpTp85Zb9ukSRPVq1cvz20rVqxofkiWTn9AGTZsmHlurYoVKyoiIkJHjhxRampqoXoryNatW/X7778rIiLC7Senh3379kk6HaS1atVK99xzj6KiotSjRw999NFHHgdU55qn/fv368iRI3r77bfz1HLXXXe51ZKjRo0a5913Ye/b3OeAkf73AS7n/DQ5j8tLLrnEbbmwsLA8gUNh/P7777r++uvldDoVEhKiiIgI85C0nDoL2raPj0+ew848ne+CbN++Xb1791ZYWJiCg4MVERGhNm3auNVTXKZPn67GjRvL399f4eHhioiI0IIFC/Js584779SKFSvM+2HOnDk6deqU7rjjDnOZwvbt6WMrJ6TL79w+Oeep8yQ4Nc44X17O37+ccKYgR48eVWRkpHm5devWWrdunU6cOKFly5apcuXKuuyyy9SkSRPzcLfly5e7BTBbt25VamqqIiMj89w/x44dy3PfnPlckE4/H848V9OCBQvUuXPnMtWTJMXGxioxMVG33nqrZsyYoZo1ayoxMdEMlI4dO6Y9e/aYPzmvQ0V9rORc16VLF7fzj11++eWqUaNGvkHTVVddpcTERHXo0EG9e/fW4sWLVb58+XzD8pzHYGHP/wYAFwOfcy8CAEDxqFatmiTlOUfNmfz8/NStWzd9+umneuONN7R3716tWLHCo68Fl06HPC+88IIOHDig8uXL6/PPP9ett97qtqdL//79NXXqVA0YMEAJCQlyOp2y2Wzq0aPHOcOggj5YZGdnu51g2OVyqVGjRho3bly+y+fcHwEBAfrhhx+0ZMkSLViwQAsXLtTs2bPVrl07ffPNN3lOWlxYOf3cfvvt6tWrV77LNG7c2O3y+e4lJRX+vi2ovzPDBE+cbW5yO3LkiNq0aaOQkBA9++yzqlWrlvz9/fXzzz/rscceO6891jyd74Lq69Chgw4dOqTHHntM9erVU1BQkP7991/17t37vOopyAcffKDevXurW7duGjJkiCIjI+VwODRq1Cj99ddfbsv26NFDAwcO1IwZM/Tkk0/qgw8+UHx8vOrWrWsuU9i+PX1sVa5cWZK0e/fuPNft3r1bYWFh+e4ZkyM8PFyS8oQfOXtp/frrrwXe9p9//lFaWppq1qxpjl155ZU6deqUVq5cqWXLlplBTevWrbVs2TJt2rRJ+/fvdwtwXC6XIiMj3fY2yy0iIsLtsifPhZSUFG3atEmTJk0qMz0V5MYbb9TkyZP1ww8/KCkpSa+88opGjhxpXh8bG6tt27YV+bESHR0tSYqKispzXWRkZL4B2pmCg4PVsmVLffbZZ0pPT1dQUJB5Xc7tK1aseM71AMDFhlAKAC4isbGx+vbbb3X06FG3vaVyDlWKjY11W37r1q151rFlyxYFBgbm+eDhiZzDNTy57S233KLp06dr8eLF2rhxowzD8Ohk0Tm3HTlypD7++GNFRUUpLS1NPXr0cFtm7ty56tWrl8aOHWuOnTx50u2bqApSoUKFfJf7559/3D7w1apVS7/88ovat29/zv+Q2+12tW/fXu3bt9e4ceP04osv6qmnntKSJUuUmJh41tt6Mk/ly5dXdnb2OddVHIpy3+Yn53H5559/uu1lc/DgwTwfFnP2nDpy5Ih5uJGUdy/A77//XgcPHtQnn3zidgLnlJSUArd99dVXm+NZWVnatm2bW5hXmPk+02+//aYtW7Zo+vTpbic2X7RoUZ5li7q3xdy5c1WzZk198sknbusaPnx4nmXDwsLUuXNnzZgxQz179tSKFSvynBi/KH2fTZUqVRQREaG1a9fmue6nn35S06ZNz3r7mJgYBQQE5JnT2rVrq27dupo3b54mTJiQ7yFvOd8Od9NNN5ljLVq0kK+vr5YtW6Zly5ZpyJAhkk7vMTN58mQtXrzYvJyjVq1a+vbbb9WqVasiBb25LViwQE6nU1deeWWZ6akgOXtI5ezBd+edd7r1nbP9oj5Wcg5//vfff/Nct2vXLtWrV8+jerOysiSd3qMrdyiVkpIiu91+zj19AeBixOF7AHARufbaa5Wdna3//ve/buOvvvqqbDabOnXq5Da+cuVKt3PM7NixQ5999pmuueaas+69k9+hfUePHtX48eNVsWJFt/MfFSQxMVFhYWGaPXu2Zs+erRYtWnh82E9cXJwaNWpk3rZy5cpuH6qk0/+9P/M/9RMnTjznubKk0x/KVq1a5fY15fPnz9eOHTvclrv55pv177//avLkyXnWceLECfOb4/LbcyznQ5QnX0t+rnlyOBzq3r27Pv7443y/ObGwh2KeS1Hu2/y0b99ePj4+bnuGSMrzOJZOz40k8zw50unzM02fPj1PjZL73hqZmZl644033JaLj49XeHi4Jk+ebH7glKQZM2bkCcQ8ne/85FePYRiaMGFCnmVzPuyeb8iX37ZWr15tnkPoTHfccYf++OMPDRkyRA6HI0/AW5S+z6V79+55nluLFy/Wli1b3MKV/JQrV07x8fH5BhXDhw/X4cOH9cADD+R5XK5bt05jxozRpZde6vY30d/fX82bN9eHH36o7du3u+1VdOLECb322muqVauWudeOdPq+yc7O1nPPPZenhqysrPOawy+//FLXXHON256fpb2ngv4GTZkyRTabzfwGxZzD+XJ+WrVqZS7r6WPl1KlT2rRpk9teVXXr1lWTJk302WefuZ336ZtvvtGOHTvMb7w8m0OHDunHH39UpUqV3A6RlE7f/w0aNJDT6TznegDgYsOeUgBwEenSpYuuvvpqPfXUU9q2bZuaNGmib775Rp999pkGDBhgfqDP0bBhQyUlJenhhx+Wn5+f+YE99+ET+Xn99dc1b948denSRTExMdq9e7feffddbd++Xe+//755kuWzKVeunG644QbNmjVL6enpeuWVVwrV6y233KJhw4bJ399fffr0kd3u/n+Y6667Tu+//76cTqfq16+vlStX6ttvvzUP+Tmbe+65R3PnzlXHjh11880366+//tIHH3yQ5/6744479NFHH+mBBx7QkiVL1KpVK2VnZ2vTpk366KOP9PXXXys+Pl7PPvusfvjhB3Xu3FmxsbHat2+f3njjDVWtWtVtr4CCeDJPo0eP1pIlS9SyZUvde++9ql+/vg4dOqSff/5Z33777TkPqSyMoty3+YmKitIjjzyisWPH6j//+Y86duyoX375RV999ZUqVqzotnfONddco5iYGPXp08cMUd59911FRERo+/bt5nJXXHGFKlSooF69eunhhx+WzWbT+++/nydM8/X11YgRI9S/f3+1a9dON998s7Zt26Zp06apVq1abtv2dL7zU69ePdWqVUuDBw/Wv//+q5CQEH388cf5HjaUE+o+/PDDSkpKyjcoOpvrrrtOn3zyia6//np17txZKSkpevPNN1W/fn3zhM+5de7cWeHh4ZozZ446deqU5wN3Ufo+lyeffFJz5szR1VdfrUceeUTHjh3Tyy+/rEaNGpnnQzubrl276qmnnlJaWppCQkLM8VtvvVVr167VuHHj9Mcff5gnrv/555/Nx8vcuXPzBD+tW7fW6NGj5XQ61ahRI0mnD++qW7euNm/erN69e7st36ZNG91///0aNWqU1q9fr2uuuUblypXT1q1bNWfOHE2YMEE33nijx/fHiRMntGTJEr355pt5riutPUnSCy+8oBUrVqhjx46KiYnRoUOH9PHHH2vNmjXq379/nnO65cfTx8q///6ruLg49erVS9OmTTPHX331VXXo0EFXXnml7r//fqWmpmrcuHGqU6eOHnzwwTzbmzt3roKDg2UYhnbt2qUpU6bo8OHDevPNN93+Lpw6dUpLly7N80UNAID/Z+2X/QEArJTfV8cfPXrUGDhwoBEdHW2UK1fOqF27tvHyyy+bX++eQ5LRt29f44MPPjBq165t+Pn5GZdeeqmxZMmSc273m2++MTp06GBUqlTJKFeunBEaGmpcc801xuLFiwtV/6JFiwxJhs1mM3bs2FGo227dutX8qu7ly5fnuf7w4cPGXXfdZVSsWNEIDg42kpKSjE2bNhmxsbFGr169zOWWLFliSMrT99ixY40qVaoYfn5+RqtWrYy1a9cabdq0Mdq0aeO2XGZmpjFmzBijQYMGhp+fn1GhQgWjWbNmxsiRI43U1FTDME5/vXvXrl2N6Ohow9fX14iOjjZuvfVWY8uWLefsszDztHfvXqNv375GtWrVjHLlyhmVKlUy2rdvb7z99tt5+p0zZ845t527huHDh5uXPb1vp06dakgy1qxZ47a+/O7zrKws45lnnjEqVapkBAQEGO3atTM2btxohIeHGw888IDb7detW2e0bNnS8PX1NWJiYoxx48aZ20pJSTGXW7FihXH55ZcbAQEBRnR0tDF06FDj66+/zne+X3vtNSM2Ntbw8/MzWrRoYaxYscJo1qyZ0bFjR7flPJnvgvzxxx9GYmKiERwcbFSsWNG49957jV9++cWQZEydOtXtvujfv78RERFh2Gy2PM/xM535uHS5XMaLL75o9nPppZca8+fPN3r16mXExsbmu46HHnrIkGTMnDkz3+s97Tvn8VoYGzZsMK655hojMDDQCA0NNXr27Gns2bPHo9vu3bvX8PHxMd5///18r//888+NxMREIzQ01Px70aBBgwLnasGCBYYko1OnTm7j99xzjyHJmDJlSr63e/vtt41mzZoZAQEBRvny5Y1GjRoZQ4cONXbt2mUuExsba3Tu3DnPbXPP3/z58w2bzWbs3bu3wJ5LW0+Gcfo147rrrjNfl8qXL2+0atXKmDp1ap7XprPx5LGSkpJiSHL7W5Rj0aJFxuWXX274+/sbYWFhxh133GHs3r3bbZnhw4eb92vOT1BQkJGQkGB89NFHedb51VdfGZKMrVu3etwHAFxMbIZxHmcRBQCUeTabTX379s33ECmUHBfzPB05ckQVKlTQ888/r6eeesrSbbtcLkVEROiGG27I97C1smbgwIGaMmWK9uzZo8DAQG+XUyh9+vTRli1bzG+TO5t77rlHU6ZM0eTJk3XPPfdYUF3hPPTQQ1q7dq1++uknj29T0nsq67p16yabzaZPP/3U26UAQInE4XsAAKDEO3HiRJ6TKueccLtt27YXdNsnT56Un5+f2yE57733ng4dOnTBt10SnDx5Uh988IG6d+9e6gIp6fS5lurUqaMVK1a4nYMoP2+99Zb27t2rBx98UNHR0br22mstqtIzTZs2VZcuXQp1m5LeU1m2ceNGzZ8/X+vXr/d2KQBQYhFKAQCAEm/27NmaNm2arr32WgUHB2v58uX68MMPdc0115wzaCiqVatWaeDAgbrpppsUHh6un3/+WVOmTFHDhg3PebLt0mzfvn369ttvNXfuXB08eFCPPPKIt0s6LzExMTp58qRHyzocDn3xxRcXuKLzd9999xX6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JsnpdGrKlCnnXP/mzZvVqlUrJSUlaerUqXI4HPkuFxYWpsDAQPn6+qpSpUoKCwvT9u3bNXXqVM2ZM0etW7dWrVq1NHjwYF155ZWaOnWqJKlKlSoaPHiwmjZtqpo1a6p///7q2LGjPvroI0mS0+mUr6+vAgMDzb3DCqohP5mZmXrvvfd06aWXqnHjxlq+fLl++uknzZkzR/Hx8apdu7ZeeeUVhYaGau7cuR6vt7A4pxQAAAAAACgz0tLStGvXLrVq1cptvFWrVnkOR0tISDB/9/HxUXx8vDZu3ChJatCggf755x9JUuvWrfXVV19Jkk6cOKHWrVvrtttuyxNyeeK3335Tdna26tSp4zaekZGh8PBwSVJ2drZefPFFffTRR/r333+VmZmpjIwMBQYGFnp7+YmNjVVERIR5+ZdfftGxY8fM7ec4ceKE/vrrr2LZZn4IpQAAAAAAAM7w5Zdf6tSpU5KkgIAAc9zPz0+JiYmaP3++hgwZoipVqhRqvceOHZPD4dC6devy7N2Uc3L2l19+WRMmTND48ePVqFEjBQUFacCAAcrMzDzruu12uwzDcBvL6SG3oKCgPDVVrlzZ7bxWOc48R1VxIpQCAAAAAABlRkhIiKKjo7VixQq1adPGHF+xYoVatGjhtuyqVat01VVXSZKysrK0bt069evXT9LpvYnyY7fb9f777+u2227T1Vdfre+//17R0dEe13fppZcqOztb+/btU+vWrfNdZsWKFeratatuv/12SZLL5dKWLVtUv359cxlfX19lZ2e73S4iIkJHjx5Venq6GTzlnDPqbC677DLt2bNHPj4+ql69use9FBXnlAIAAAAAAGXKkCFDNGbMGM2ePVubN2/W448/rvXr1+uRRx5xW+7111/Xp59+qk2bNqlv3746fPiw7r777nOu3+FwaMaMGWrSpInatWunPXv2eFxbnTp11LNnT91555365JNPlJKSop9++kmjRo3SggULJEm1a9fWokWL9OOPP2rjxo26//77tXfvXrf1VK9eXatXr9a2bdt04MABuVwutWzZUoGBgXryySf1119/aebMmZo2bdo5a0pMTFRCQoK6deumb775Rtu2bdOPP/6op556SmvXrvW4t8IilAIAAAAAAGXKww8/rEGDBunRRx9Vo0aNtHDhQn3++eeqXbu223KjR4/W6NGj1aRJEy1fvlyf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brml2LZXqVKli/4bqiQpODhY4eHh3i4DQDE5fvy4Zs2apaFDh+rdd9895/Jl8X0SoVQxcrlcGjVqlGrUqKGAgAA1adJEc+fOlfS//+QtXrxY8fHxCgwM1BVXXKHNmze7reP5559XZGSkypcvr3vuuUePP/54se2i+/777ys+Pl7ly5dXpUqVdNttt2nfvn2STv+36+qrr5YkVahQQTabTb1795Z0Onl/+OGHNXToUIWFhalSpUoaMWJEsdRU0sydO1eNGjVSQECAwsPDlZiYqPT0dPNwopEjRyoiIkIhISF64IEH3P4oLFy4UFdeeaVCQ0MVHh6u6667Tn/99Vex1HXw4EHdeuutqlKligIDA9WoUSN9+OGH5vW9e/fW0qVLNWHCBPO/k9u2bfP4cVfW9O7dW/3799f27dtls9lUvXp1tW3bVv369dOAAQNUsWJFJSUlSZLGjRunRo0aKSgoSNWqVdNDDz2kY8eOFUsda9asUYcOHVSxYkU5nU61adNGP//8s3l99erVJUnXX3+9Waf0vz0H3n//fVWvXl1Op1M9evTQ0aNHi6Wuki734Xs589avXz85nU5VrFhRzzzzjHJ/cWz16tX14osv6u6771b58uUVExOjt99++7y2nfOf/1mzZumKK66Qv7+/GjZsqKVLl5rLZGdnq0+fPubf+rp162rChAn59vDKK6+ocuXKCg8PV9++fXXq1Knzqqu0WbBggZxOp2bMmKHffvtN7dq1M/+u3nfffW7PsZz76oUXXlB0dLTq1q1bbHX89ddf6tq1q6KiohQcHKzmzZvr22+/dVvGk8fPjz/+qKZNm8rf31/x8fGaN29emTws+FzPt8OHD+vOO+9UhQoVFBgYqE6dOmnr1q3m7XP+I//555+rfv368vPz0/bt24tUE+9dPFfQewFJWrduXYHvAzx5nuTH4XCoUqVK5k9wcLB8fHzcxgICAszlv/76a8XFxSk4OFgdO3bU7t27zevO9XopXTx7tb799tuKjo7OE+h27dpVd999d757F77zzjuKi4uTv7+/6tWrpzfeeKNYauH9Z8FcLpdeeuklXXLJJfLz81NMTIxeeOEF833ERx99pNatWysgIEDNmzfXli1btGbNGsXHxys4OFidOnXS/v37zfVZ9b6hOF4XMzMz1a9fP1WuXFn+/v6KjY3VqFGjirVOb8v9PuZsr0PS6dfGnj17KiIiQgEBAapdu7amTp3q8bbmzJmj+vXr6/HHH9cPP/ygHTt2uF1f0Pukc9WVY8WKFWrcuLH8/f11+eWXa8OGDed5r1w4hFLFaNSoUXrvvff05ptv6vfff9fAgQN1++23u32YeeqppzR27FitXbtWPj4+uvvuu83rZsyYoRdeeEFjxozRunXrFBMTo0mTJhVbfadOndJzzz2nX375RfPmzdO2bdvMN2/VqlXTxx9/LEnavHmzdu/e7fYha/r06QoKCtLq1av10ksv6dlnn9WiRYuKrbaSYPfu3br11lt19913a+PGjfr+++91ww03mG/GFy9ebI5/+OGH+uSTTzRy5Ejz9unp6Ro0aJDWrl2rxYsXy2636/rrry+W/xKfPHlSzZo104IFC7Rhwwbdd999uuOOO/TTTz9JOn24U0JCgu69917zv5PVqlUzb3+2x11ZNGHCBD377LOqWrWqdu/erTVr1kg6/Tj29fXVihUr9Oabb0qS7Ha7XnvtNf3++++aPn26vvvuOw0dOrRY6jh69Kh69eql5cuXa9WqVapdu7auvfZaM1zKqWvq1KludUqn3zTMmzdP8+fP1/z587V06VKNHj26WOoqbaZPny4fHx/99NNPmjBhgsaNG6d33nnHbZmxY8cqPj5eycnJeuihh/Tggw8W6c3vkCFD9Oijjyo5OVkJCQnq0qWLDh48KOn0G9GqVatqzpw5+uOPPzRs2DA9+eST+uijj9zWsWTJEv31119asmSJpk+frmnTpll6WKK3zJw5U7feeqtmzJihbt26KSkpSRUqVNCaNWs0Z84cffvtt+rXr5/bbRYvXqzNmzdr0aJFmj9/frHVcuzYMV177bVavHixkpOT1bFjR3Xp0iVPUHK2x09aWpq6dOmiRo0a6eeff9Zzzz2nxx57rNhqLGnO9nzr3bu31q5dq88//1wrV66UYRi69tpr3T40HT9+XGPGjNE777yj33//XZGRkUWqh/cunjvbe4GzvQ/w9HlSFMePH9crr7yi999/Xz/88IO2b9+uwYMHm9ef6/XyYnLTTTfp4MGDWrJkiTl26NAhLVy4UD179syz/IwZMzRs2DC98MIL2rhxo1588UU988wzmj59epFr4f1nwZ544gmNHj1azzzzjP744w/NnDlTUVFR5vXDhw/X008/rZ9//lk+Pj667bbb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VL58eb388st5/lZcbHN46aWX6ueff9a7776r+Ph4t2DjXM58bnrC6XTqkksucRs781CxwYMHa9GiRXrllVd0ySWXKCAgQDfeeGOe5+DFNlcXUkBAQKHm/mx471J8zvY+wNPnSXFtP6cGI9e5AYvyelkWdenSRYZhaMGCBWrevLmWLVumV199Nc9yOZ8/Jk+e7BYYS3ILN84X7z/zl/tcaQXJr/czx868L4r6N8uq18XLLrtMKSkp+uqrr/Ttt9/q5ptvVmJionku5dIqv/cxnrwOderUSf/884++/PJLLVq0SO3bt1ffvn31yiuvnHV72dnZmj59uvbs2eP2hUzZ2dl699133ULPM98nFfX1saQhlComuU/omTtZzeHJfyvq1q2rNWvW6M477zTHcp9jpig2bdqkgwcPavTo0eax3mvXrnVbJid9zb33wcXGZrOpVatWatWqlYYNG6bY2Fh9+umnkqRffvlFJ06cMF+IVq1apeDgYFWrVk0HDx7U5s2bNXnyZLVu3VqStHz58mKra8WKFeratatuv/12Sadf0Lds2aL69euby/j6+l7Uc3c+1q1bJ5fLpbFjx5r/fTzzvEBFsWLFCr3xxhu69tprJUk7duzQgQMH3JYpV64c83YOZ4Y9OecbKY433AVZtWqVrrrqKklSVlaW1q1bZ54HacWKFbriiiv00EMPmcsX15calGa1atXS2LFj1bZtWzkcDv33v/9VXFycpk2bpvT0dPMN1YoVK2S324v1hOYFWbFihXr37q3rr79e0ukPcDknfvZU3bp19cEHHygjI8P85q/iem0uiQp6vtWvX19ZWVlavXq1rrjiCkkyX/tyvxYVJ967FN75vBcojudJUXnyenkx8ff31w033KAZM2bozz//VN26dXXZZZflWS4qKkrR0dH6+++/8z3fVFHx/jN/tWvXVkBAgBYvXqx77rnH2+UUSnE930NCQnTLLbfolltu0Y033qiOHTvq0KFDCgsLK+aKrZPf+xhPXockKSIiQr169VKvXr3UunVrDRky5Jyh1JdffqmjR48qOTnZ7T3thg0bdNddd+nIkSMFfhu1p3VJp1/HY2JiJJ0+KfuWLVsUFxd3zvvDSoRSxaR8+fIaPHiwBg4cKJfLpSuvvFKpqalasWKFQkJCFBsbe8519O/fX/fee6/i4+N1xRVXaPbs2fr1119V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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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N7rtHxsbq169ernFPvroIzVv3lyBgYGKiIhQ7969851O1759ezVq1Eh//vmnOnTooKCgIFWpUkUvvvhigbXNnTtXDRo0UM2aNctMTafLre3o0aNn3fbTTz9VixYt1KJFCzNWv359derUSZ988skZ93W5XJo0aZJuuOEGtWzZUjk5OcrIyPAox1zh4eEKDAyUj0/+E1Guvvpqff311/neZwEArCkFABcVwzB0/fXX69VXX1Xnzp01YcIE1atXT8OHD9fQoUPzbb9s2TINHjxYt99+u5599lmlpKSoc+fOhTaFTjdt2jQFBwcrMDBQDRo08OgUjK5duyokJKTALxGzZs1Sw4YN1ahRowL3jYuLU+3atQvdt3z58kpMTJQkrVmzRitXrlTv3r312muv6f7779fixYvVvn37In8ZKYzL5dL111+vl19+Wd26ddPrr7+uHj166NVXX3X7gvfHH3/ouuuuU2Zmpp599lm98soruv7667VixQqPbseTcdq/f7+uuOIKLVq0SAMHDtSkSZN0ySWXqH///po4cWK+Yz733HOaO3euhg0bphdeeEF+fn4e113U+3bQoEH69ddfNXLkSD3wwAP6+uuvNXDgQLdtnnjiCY0ePVpxcXF66aWXVLduXSUmJio9Pd3jvE43bdo0hYSEaOjQoZo0aZKaN2+uESNG6PHHH3fbbsqUKRo4cKCqVq2qF198UW3btlWPHj3c1pmRPB/vwsyePVsZGRl64IEH9PrrrysxMVGvv/662ymw9913n66++mpJp07Xzf0rirS0NL3zzjtq3769xo8fr1GjRungwYNKTEzUhg0bJJ1qHt1+++2aN2+eDh8+7Lb/119/rbS0NN1+++3nVPf333+vIUOGqFevXpo0aZLZePDUvn37JEkVKlQ467YrV67U5Zdf7hbLyMjQ4sWL1bZtW9WqVavA/Xr16iV/f399/fXXkqQ2bdrIZrO5NXt//PFH2e12LV++3IwdPHhQmzdv1lVXXWXGnn/+ed1xxx2qW7euJkyYoMGDB2vx4sW66qqr8jVbjhw5os6dO6tp06Z65ZVXVL9+fT322GP51iqSTp3GmbueVFmpKSsrS4cOHdLu3bv1xRdf6OWXX1aNGjV0ySWXFFhTLpfLpd9++01xcXH5rmvZsqX+/vtvHTt2rND9//zzT+3du1dNmjTRvffeq+DgYAUH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nTtX11xzjdkoLQs1SVJ0dLQSEhJ00003acqUKbruuut09dVXm6dsnjhxQvv27XP7k/5t6Ba0dlvumoZnarLnXte6dWtVq1bNjFevXl1t2rTRypUr8+3TsmVLJSQkKCEhQX369DHX+Bo4cKCysrLcts19DBZ1/TcAuBjkX4kPAIALJPfD/ulr1JzO399fPXr00BdffKE33nhD+/fv14oVK/TCCy94dDu9evXS888/r0OHDqlcuXL66quvdOutt7rNdBk0aJCmTp2qwYMHKz4+XmFhYbLZbOrdu/dZm0GFfbFwOp1uPzvvcrnUuHFjTZgwocDtc++PwMBA/fDDD1qyZInmzp2r+fPna9asWerYsaO+++67fD9lX1S59dx+++3q27dvgds0adLE7fK5zpKSin7fFlbf6c0ET5xpbPI6evSo2rVrp9DQUD377LOqU6eOAgIC9Msvv+ixxx47pxlrno53YfldffXVOnz4sB577DHVr19fwcHB+ueff9SvX79zyqcwH330kfr166cePXpo+PDhqlixohwOh8aOHau///7bbdvevXtryJAhmj59up588kl99NFHiouLU7169cxtilr3uTy2Fi5cqDvuuENdu3bVm2++6dE+ERERstls+ZofdevWlY+Pj9sC36fLzMzUli1b1LJlSzOWOyvphx9+0Pbt23X55Zebi8S/9tprOn78uNavX6/nn3/e3Mflcslms2nevHkFPs5DQkLcLnvyXMjIyNDSpUs1ZcqUMlNTYW666SY99dRT+vLLL3Xfffdp1qxZZiM973EiIiLk7++v5OTkfMfIjcXExBR6O7nXRUdH57uuYsWKHs1UtNvt6tChgyZNmqRt27apYcOG5nW5j0FP1kEDgIsNTSkAuIjUqFFDixYt0rFjx9xmS+WeqlSjRg237bdt25bvGFu3blVQUJCioqKKfPu5p2t4sm+vXr30/vvva/Hixdq0aZMMw/BosejcfUePHq3PPvtM0dHRSktLU+/evd22+fTTT9W3b1+98sorZuzkyZMe/cpT+fLlC9xu586dql27tnm5Tp06+vXXX9WpU6ez/g+53W5Xp06d1KlTJ02YMEEvvPCCnnrqKS1ZskQJCQln3NeTcSpXrpycTudZj1Uczue+LUju4/Kvv/5ym2WTkpKSr+GQO3Pq6NGjbqd3nT4LcOnSpUpJSdHnn3/utoBzUlJSobfdoUMHM56Tk6MdO3a4NfOKMt6n+/3337V161a9//77bgubL1y4MN+25zvb4tNPP1Xt2rX1+eefux1r5MiR+baNiIhQ165dNX36dPXp00crVqzItzD++dTtidWrV+uGG25QXFycPvnkkwJ/3awgPj4+qlOnTr4xDQoKUqdOnbRo0SLt3Lkz3+ueJH3yySfKzMzUzTffbMaqV6+u6tWr68cff9T27dvVtm1bSdJVV12loUOHavbs2XI6nW6Ppzp16sgwDNWqVeusszw99f333yszM1NdunQpMzUVJveUu9wZfImJiQU+J+x2uxo3bqy1a9fmu2716tWqXbv2GU9tbNy4sXx9ffXPP//ku27v3r0ev9/l5ORI+vd0wFy5j8HcWckAgH9x+h4AXESuvfZaOZ1O/fe//3WLv/rqq7LZbG5fciRp1apVbmvM7N69W19++aWuueaaM87eKejUvmPHjmnixImqUKGC2/pHhUlISFBERIRmzZqlWbNmqWXLlh6f9hMbG6vGjRub+1auXNntS5V06n/vT/+f+tdff/2sa2VJp76U/fTTT26naHzzzTf5fg79lltu0T///KO333473zFOnDhhrpVS0MyxZs2aSSr4dJTTnW2cHA6Hevbsqc8++6zAX04s6qmYZ3M+921BOnXqJB8fH7eZIZLyPY6lU2Mjye0XxdLT0/X+++/ny1Fyn62RlZWlN954w227uLg4RUZG6u233za/cErS9OnT8zXEPB3vghSUj2EYmjRpUr5tg4ODJemcm3wF3dbq1au1atWqArf/z3/+oz///FPDhw+Xw+HI1+A9n7rPZtOmTeratatq1qypb775psizrOLj4wtsVDz99NMyDEP9+vXLt9ZQUlKSHn30UVWrVs3tNEXp1Olu33//vX7++WezgdOsWTOVK1dO48aNU2BgoNvr24033iiHw6HRo0fne04YhqGUlJQi1SOdWhswLi4u36ye0lzToUOHCpw59c4770iS+at6lStXNk+Zy/3LddNNN2nNmjVu471lyxZ9//33bo046dR/xOzatcu8XK5cOV177bVauXKl+Z800qnH38qVK81fvDyT7Oxsfffdd/Lz88vXfFq3bp3CwsLcZk8BAE5hphQAXES6deumDh066KmnntKOHTvUtGlTfffdd/ryyy81ePBg8wt9rkaNGikxMVEPPfSQ/P39zS/so0ePPuPtTJ48WXPmzFG3bt1UvXp1JScn67333tOuXbv04Ycfmossn4mvr69uvPFGzZw5U+np6Xr55ZeLVGuvXr00YsQIBQQEqH///uZ6KLmuu+46ffjhhwoLC1ODBg20atUqLVq0SJGRkWc99t13361PP/1UnTt31i233KK///5bH330Ub777z//+Y8++eQT3X///VqyZIlat24tp9OpzZs365NPPtGCBQsUFxenZ599Vj/88IO6du2qGjVq6MCBA3rjjTdUtWpV8/SaM/FknMaNG6clS5aoVatWuueee9SgQQMdPnxYv/zyixYtWnTWUyqL4nzu24JER0fr4Ycf1iuvvKLrr79enTt31q+//qp58+apQoUKbrNzrrnmGlWvXl39+/c3myjvvfeeoqKi3L6EXnnllSpfvrz69u2rhx56SDabTR9++GG+L8Z+fn4aNWqUBg0apI4dO+qWW27Rjh07NG3aNNWpU8fttj0d74LUr19fderU0bBhw/TPP/8oNDRUn332WYHr7uQ2CB566CElJiYW2Cg6k+uuu06ff/65brjhBnXt2lVJSUl688031aBBg3wzPCSpa9euioyM1OzZs9WlSxe3NYnOt+4zOXbsmBITE3XkyBENHz5cc+fOdbu+Tp06io+PP+Mxunfvrg8//FBbt251m9XTpk0bvfrqqxo8eLCaNGmifv36qXLlytq8ebPefvtt2e12zZkzJ99i6m3bttX06dNls9nM56bD4dCVV16pBQsWqH379m6vb3Xq1NGYMWP0xBNPaMeOHerRo4fKlSunpKQkffHFF7r33ns1bNiwIt0v3377bb5T2Ep7TR999JHefPNN9ejRQ7Vr19axY8e0YMECLVy4UN26dXNbD7AwDz74oN5++2117dpVw4YNk6+vryZMmKDo6Gg98sgjbtvGxsaqXbt2bj+m8cILL2jx4sXq2LGj+WMgr732miIiIvTkk0/mu7158+aZDawDBw5oxowZ2rZtmx5//HGFhoa6bZtbB2tKAUABLPiFPwCAlxT00/HHjh0zhgwZYsTExBi+vr5G3bp1jZdeesn8efdckowBAwYYH330kVG3bl3D39/fuOyyy8yfID+T7777zrj66quNSpUqGb6+vkZ4eLhxzTXXGIsXLy5S/gsXLjQkGTabzdi9e3eR9t22bZv5U93Lly/Pd/2RI0eMO++806hQoYIREhJiJCYmGps3bzZq1Khh9O3b19xuyZIlbj+9nuuVV14xqlSpYvj7+xutW7c21q5da7Rr185o166d23ZZWVnG+PHjjYYNGxr+/v5G+fLljebNmxujR482UlNTDcMwjMWLFxvdu3c3YmJiDD8/PyMmJsa49dZbja1bt561zqKM0/79+40BAwYY1apVM3x9fY1KlSoZnTp1Mt5666189c6ePfust503h5EjR5qXPb1vc39afc2aNW7HK+g+z8nJMZ555hmjUqVKRmBgoNGxY0dj06ZNRmRkpHH//fe77b9u3TqjVatWhp+fn1G9enVjwoQJ5m0lJSWZ261YscK44oorjMDAQCMmJsZ49NFHjQULFhQ43q+99ppRo0YNw9/f32jZsqWxYsUKo3nz5kbnzp3dtvNkvAvz559/GgkJCUZISIhRoUIF45577jF+/fVXQ5IxdepUt/ti0KBBRlRUlGGz2fI9x093+uPS5XIZL7zwglnPZZddZnzzzTdG3759jRo1ahR4jAcffNCQZMyYMaPA6z2tO/fx6omkpCTzOVzQX97HUmEyMzONChUqGM8991yB1//4449G9+7djQoVKpj3ZcWKFY3k5OQCt//jjz8MSUZsbKxbfMyYMYYk45lnnilwv88++8xo06aNERwcbAQHBxv169c3BgwYYGzZssXcpl27dkbDhg3z7Zt3XDZu3GhIMn7++edCay5tNRmGYaxZs8a4+eabjerVqxv+/v5GcHCwcfnllxsTJkwwsrOzC631dLt37zZuuukmIzQ01AgJCTGuu+46Y9u2bfm2k5TvtdowTr12JCQkGMHBwUa5cuWM7t2753sdzn0tyfsXEBBgNGvWzJgyZUq+99JNmzYZkoxFixZ5XAcAXExshnEOq4gCAMo8m82mAQMGFHiKFEqOi3mcjh49qvLly2vMmDF66qmnLL1tl8ulqKgo3XjjjQWetlbWDBkyRO+++6727dunoKAgb6dTJM8995ymTp2qbdu2nfVHA5577jmNGDFCTz31lMaMGWNRhp578cUXNWHCBCUnJ3s866ak11TWDR48WD/88IPWrVvHTCkAKABrSgEAgBLv9DVyJJkLbrdv3/6C3vbJkyfzndb3wQcf6PDhwxf8tkuCkydP6qOPPlLPnj1LXUNKOtVQO378uGbOnHnWbZ955hndf//9ev755/XWW29ZkF3R1KxZ01wD0FMlvaayLCUlRe+8847GjBlDQwoACsFMKQBAgS7mGTilycUyTtOmTdO0adN07bXXKiQkRMuXL9fHH3+sa665RgsWLLigt7106VINGTJEN998syIjI/XLL7/o3XffVWxsrNatW+fRGmml0YEDB7Ro0SJ9+umnmjNnjn755RdzAX4AAIDiwELnAACgxGvSpIl8fHz04osvKi0tzVz83IrTkWrWrKlq1arptdde0+HDhxUREaE77rhD48aNK7MNKUn6888/1adPH1WsWFGvvfYaDSkAAFDsvDpTyul0atSoUfroo4+0b98+xcTEqF+/fnr66afNKa6GYWjkyJF6++23dfToUbVu3VpTpkxR3bp1vZU2AAAAAAAAzpNX15QaP368pkyZov/+97/atGmTxo8frxdffFGvv/66uc2LL76o1157TW+++aZWr16t4OBgJSYm6uTJk17MHAAAAAAAAOfDqzOlrrvuOkVHR+vdd981Yz179lRgYKA++ugjGYahmJgYPfLIIxo2bJgkKTU1VdHR0Zo2bZp69+7trdQBAAAAAABwHry6ptSVV16pt956S1u3btWll16qX3/9VcuXL9eECRMkSUlJSdq3b58SEhLMfcLCwtSqVSutWrWqwKZUZmamMjMzzcsul0uHDx9WZGQkv3oBAAAAAABwgRmGoWPHjikmJkZ2e+En6Xm1KfX4448rLS1N9evXl8PhkNPp1PPPP68+ffpIkvbt2ydJio6OdtsvOjravO50Y8eO1ejRoy9s4gAAAAAAADij3bt3q2rVqoVe79Wm1CeffKLp06drxowZatiwoTZs2KDBgwcrJiZGffv2PadjPvHEExo6dKh5OTU1VdWrV1dSUpJCQ0MlSXa7XXa7XS6XSy6Xy9w2N+50OpX3rMbC4g6HQzabTTk5OW45OBwOSacWcvck7uPjI8Mw3OI2m00OhyNfjoXFqYmaqImaqImaqImaqImaqImaqImaqImaSkJNaWlpqlWrlsqVK6cz8WpTavjw4Xr88cfN0/AaN26snTt3auzYserbt68qVaokSdq/f78qV65s7rd///5Cf5bY399f/v7++eIRERFmUwoAAAAAAAAXho/PqXbT2ZZR8uqv72VkZMhud08ht+smSbVq1VKlSpW0ePFi8/q0tDStXr1a8fHxluYK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i1CRm1K1atWSzWYr9Prt27efV0IAAAAAAAAo+4rclBo8eLDb5ezsbK1fv17z58/X8OHDiysvAAAAAAAAlGFFbko9/PDDBcYnT56stWvXnndCAAAAAAAAKPvsxXWgLl266LPPPiuuwwEAAAAAAKAMK7am1KeffqqIiIjiOhwAAAAAAADKsCKfvnfZZZe5LXRuGIb27dungwcP6o033ijW5AAAAAAAAFA2Fbkp1aNHD7fLdrtdUVFRat++verXr19ceQEAAAAAAKAMsxmGYXg7CUkaN26cnnjiCT388MOaOHGiJOnkyZN65JFHNHPmTGVmZioxMVFvvPGGoqOjPT5uWlqawsLClJqaqtDQ0AuUPQAAAAAAACTPezEezZRKS0vz+IbPpfGzZs0a/e9//1OTJk3c4kOGDNHcuXM1e/ZshYWFaeDAgbrxxhu1YsWKIt8GAAAAAAAASg6PmlLh4eFu60gVxDAM2Ww2OZ3OIiVw/Phx9enTR2+//bbGjBljxlNTU/Xuu+9qxowZ6tixoyRp6tSpio2N1U8//aQrrriiSLcDAAAAAACAksOjptSSJUsuWAIDBgxQ165dlZCQ4NaUWrdunbKzs5WQkGDG6tevr+rVq2vVqlWFNqUyMzOVmZlpXs6d5ZWTk6OcnBxJp9bBstvtcrlccrlc5ra5cafTqbxnNRYWdzgcstls5nHzxiXla9AVFvfx8ZFhGG5xm80mh8ORL8fC4tRETdRETdRETdRETdRETdRETdRETdRETSWhptPzKoxHTal27dp5dLCimjlzpn755RetWbMm33X79u2Tn5+fwsPD3eLR0dHat29focccO3asRo8enS++fv16BQcHS5KioqJUp04dJSUl6eDBg+Y2VatWVdWqVbV161alpqaa8dq1a6tixYrauHGjTpw4Ycbr16+v8PBwrV+/3m0AmzRpIj8/P61du9Yth7i4OGVlZem3334zYw6HQy1atFBqaqo2b95sxgMDA9W0aVMdOnRI27dvN+NhYWGKjY3V3r17tWfPHjNOTdRETdRETdRETdRETdRETdRETdRETdRUEmpKT0+XJ855ofOMjAzt2rVLWVlZbvHT14UqzO7duxUXF6eFCxea+7Rv317NmjXTxIkTNWPGDN15551us54kqWXLlurQoYPGjx9f4HELmilVrVo1paSkmOtdXSydSWqiJmqi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4Qft3r3b7frCPiedLa9cK1asUJMmTRQQEKArrrhCGzduPMd75cKhKVWMxo4dqw8++EBvvvmm/vjjDw0ZMkS3336725eZp556Sq+88orWrl0rHx8f3XXXXeZ106dP1/PPP6/x48dr3bp1ql69uqZMmVJs+WVnZ+u5557Tr7/+qjlz5mjHjh3mh7dq1arps88+kyRt2bJFycnJbl+y3n//fQUHB2v16tV68cUX9eyzz2rhwoXFlltJkJycrFtvvVV33XWXNm3apKVLl+rGG280P4wvXrzYjH/88cf6/PPPNXr0aHP/9PR0DR06VGvXrtXixYtlt9t1ww03FMv/Ep88eVLNmzfX3LlztXHjRt177736z3/+o59//lnSqdOd4uPjdc8995j/O1mtWjVz/zM97sqiSZMm6dlnn1XVqlWVnJysNWvWSDr1OPbz89OKFSv05ptvSpLsdrtee+01/fHHH3r//ff1/fff69FHHy2WPI4dO6a+fftq+fLl+umnn1S3bl1de+21ZnMpN6+pU6e65Smd+tAwZ84cffPNN/rmm2+0bNkyjRs3rljyKm3ef/99+fj46Oeff9akSZM0YcIEvfPOO27bvPLKK4qLi9P69ev14IMP6oEHHjivD7/Dhw/XI488ovXr1ys+Pl7dunVTSkqKpFMfRKtWrarZs2frzz//1IgRI/Tkk0/qk08+cTvGkiVL9Pfff2vJkiV6//33NW3aNEtPS/SWGTNm6NZbb9X06dPVo0cPJSYmqnz58lqzZo1mz56tRYsWaeDAgW77LF68WFu2bNHChQv1zTffFFsux48f17XXXqvFixdr/fr16ty5s7p165avUXKmx09aWpq6deumxo0b65dfftFzzz2nxx57rNhyLGnO9Hzr16+f1q5dq6+++kqrVq2SYRi69tpr3b40ZWRkaPz48XrnnXf0xx9/qGLFiueVD59dPHemzwJn+hzg6fPkfGRkZOjll1/Whx9+qB9++EG7du3SsGHDzOvP9n55Mbn55puVkpKiJUuWmLHDhw9r/vz56tOnT77tp0+frhEjRuj555/Xpk2b9MILL+iZZ57R+++/f9658PmzcE888YTGjRunZ555Rn/++admzJih6Oho8/qRI0fq6aef1i+//CIfHx/ddtttevTRRzVp0iT9+OOP+uuvvzRixAi3Y1rxuaE43hdfe+01ffXVV/rkk0+0ZcsWTZ8+3fyP1bIg7+eYPn36nPF9SJL5GJg3b542bdqkKVOmqEKFCh7f3rvvvqvbb79dYWFh6tKlS4FjXtDnpLPllWv48OF65ZVXtGbNGkVFRalbt24l7z9JDRSLkydPGkFBQcbKlSvd4v379zduvfVWY8mSJYYkY9GiReZ1c+fONSQZJ06cMAzDMFq1amUMGDDAbf/WrVsbTZs29SiHkSNHerytYRjGmjVrDEnGsWPHDMMwzByPHDnitl27du2MNm3auMVatGhhPPbYYx7fVmmwbt06Q5KxY8eOfNf17dvXiIiIMNLT083YlClTjJCQEMPpdBZ4vIMHDxqSjN9//92j25dkfPHFFx7n27VrV+ORRx4xL7dr1854+OGH3bbx5HFXVr366qtGjRo1zMvt2rUzLrvssrPuN3v2bCMyMtKj2yjsOVMYp9NplCtXzvj666/NWEHjPnLkSCMoKMhIS0szY8OHDzdatWrl0e2Udn379jW6d+9uGMapcYuNjTVcLpd5/WOPPWbExsaal2vUqGHcfvvt5mWXy2VUrFjRmDJlike3l3cMkpKSDEnGuHHjzOuzs7ONqlWrGuPHjy/0GAMGDDB69uzpVkONGjWMnJwcM3bzzTcbvXr18iin0ib39ee///2vERYWZixdutQwDMN46623jPLlyxvHjx83t507d65ht9uNffv2GYZx6r6Kjo42MjMzi3R7vr6+RnBwsNufv7+/ERYWdsZ9GzZsaLz++uvm5bM9fqZMmWJERka6vWa+/fbbhiRj/fr1HudcGpzp+bZ161ZDkrFixQrzukOHDhmBgYHGJ598YhiGYUydOtWQZGzYsMHj2+SzS/E6/bPAuX4OOP154onCxjL3cfHXX3+ZscmTJxvR0dGFHsvT98uyqnv37sZdd91lXv7f//5nxMTEGE6nM9/9XKdOHWPGjBlu+z/33HNGfHy8R7fF58+iS0tLM/z9/Y23334733W5nyPeeecdM/bxxx8bkozFixebsbFjxxr16tUzL5/v5wYr3xcHDRpkdOzY0e29orQr7HNMQU5/H+rWrZtx5513ntPtbt261fD19TUOHjxoGIZhfPHFF0atWrXc7ltPPycV9v44c+ZMc5uUlBQjMDDQmDVr1jnle6EwU6qY/PXXX8rIyNDVV1+tkJAQ8++DDz5wO4WrSZMm5r8rV64sSeY0uy1btqhly5Zuxz398vlYt26dunXrpurVq6tcuXJq166dJHn0P2F585ZO5V7Q9MDSrGnTpurUqZMaN26sm2++WW+//baOHDnidn1QUJB5OT4+XsePHzenWG7btk233nqrateurdDQUPN/DIrjfxqdTqeee+45NW7cWBEREQoJCdGCBQs8PvaZHncXk+bNm+eLLVq0SJ06dVKVKlVUrlw5/ec//1FKSooyMjLO+/b279+ve+65R3Xr1lVYWJhCQ0N1/Phxj8atZs2aKleunHm5LD7nPHXFFVfIZrOZl+Pj47Vt2zY5nU4zlvcxbrPZVKlSpfO6v+Lj481/+/j4KC4uTps2bTJjkydPVvPmzRUVFaWQkBC99dZb+ca1YcOGcjgc5uWyPoaffvqphgwZooULF5rvL5s2bVLTpk0VHBxsbte6dWu5XC63mWyNGzeWn59fkW6vT58+2rBhg9vfs88+67bN8ePHNWzYMMXGxio8PFwhISHatGlTvrE60+Nny5Yt5rT3XMX53lzSFPZ8+/PPP+Xj46NWrVqZ10VGRqpevXpuzw0/P798nxnOB59diseZPgd4+jw5H0FBQapTp45bDnnH4nzeL8uiPn366LPPPlNmZqakU7OhevfuLbvd/atbenq6/v77b/Xv39/t+8eYMWOKZQkJPn8WbNOmTcrMzFSnTp0K3SZv7bkzqBo3buwWO/2+ON/PDVa9L/br108bNmxQvXr19NBDD+m7777zOMeSrKDPMdLZ34ceeOABzZw5U82aNdOjjz6qlStXenyb7733nhITE82ZVddee61SU1P1/fffu21X0OckT98f836mjYiIyPe+XRL4nH0TeCJ3fYy5c+eqSpUqbtf5+/ubbwy+vr5mPPdDnxWLgKanpysxMVGJiYmaPn26oqKitGvXLiUmJnq0WFrevKVTuZe1xUsdDocWLlyolStX6rvvvtPrr7+up556SqtXr/Zo/27duqlGjRp6++23zbUAGjVqVCyL0b300kuaNGmSJk6caK5/NHjwYI+P7a3HXUmT94uxdGo9kuuuu04PPPCAnn/+eUVERGj58uXq37+/srKy3JqQ56Jv375KSUnRpEmTVKNGDfn7+ys+Pp7n3AVg5f01c+ZMDRs2TK+88ori4+NVrlw5vfTSS/leKy62Mbzsssv0yy+/6L333lNcXJxbY+NsTn9ueiIsLEyXXHKJW+z0U8WGDRumhQsX6uWXX9Yll1yiwMBA3XTTTfmegxfbWF1IgYGBRRr7M+GzS/E50+cAT58nxXX7uTkYedYGPJ/3y7KoW7duMgxDc+fOVYsWLfTjjz/q1Vdfzbdd7vePt99+261hLMmtuXGu+PxZsLxrpRWmoNpPj51+X5zva5ZV74uXX365kpKSNG/ePC1atEi33HKLEhISzLWUS6uCPsd48j7UpUsX7dy5U99++60WLlyoTp06acCAAXr55ZfPeHtOp1Pvv/++9u3b5/aDTE6nU++9955b0/P0z0nn+/5Y0tCUKiZ5F/TM21nN5cn/VtSrV09r1qzRHXfcYcbyrjFzPjZv3qyUlBSNGzfOPNd77dq1btvkdl/zzj642NhsNrVu3VqtW7fWiBEjVKNGDX3xxReSpF9//VUnTpww34h++uknhYSEqFq1akpJSdGWLVv09ttvq23btpKk5cuXF1teK1asUPfu3XX77bdLOvWGvnXrVjVo0MDcxs/P76Ieu3Oxbt06uVwuvfLKK+b/Pp6+LtD5WLFihd544w1de+21kqTdu3fr0KFDbtv4+voybmdxerMnd72R4vjAXZiffvpJV111lSQpJydH69atM9dBWrFiha688ko9+OCD5vbF9aMGpVmdOnX0yiuvqH379nI4HPrvf/+r2NhYTZs2Tenp6eYHqhUrVshutxfrguaFWbFihfr166cbbrhB0qkvcLkLP3uqXr16+uijj5SZmWn+8ldxvTeXRIU93xo0aKCcnBytXr1aV155pSSZ731534uKE59diu5cPgsUx/PkfHnyfnkxCQgI0I033qjp06frr7/+Ur169XT55Zfn2y46OloxMTHavn17getNnS8+fxasbt26CgwM1OLFi3X33Xd7O50iKa7ne2hoqHr16qVevXrppptuUufOnXX48GFFREQUc8bWKehzjCfvQ5IUFRWlvn37qm/fvmrbtq2GDx9+1qbUt99+q2PHjmn9+vVun2k3btyoO++8U0ePHi3016g9zUs69T5evXp1SacWZd+6datiY2PPen9YiaZUMSlXrpyGDRumIUOGyOVyqU2bNkpNTdWKFSsUGhqqGjVqnPUYgwYN0j333KO4uLj/a+/eg6Ks3jiAf3cpQgQF0YBhSCBWW0W5U8oMMCKBCollkqiIkwqTAULEZbgo0o+L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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAi0JJREFUeJzs3Xd0VOXWx/HfzIR0MiEhBEIJRXpVAhgRacGAiKBcFUQF+1VAAcUuzQJ4FUFfxMYFVFAEFQuKIiIIAgKCitLU0KS3BAJpM8/7BzfHDEkgIWEmCd/PWlmL2XPK3ueZSeZsnnPGZowxAgAAAAAAALzI7usEAAAAAAAAcOGhKQUAAAAAAACvoykFAAAAAAAAr6MpBQAAAAAAAK+jKQUAAAAAAACvoykFAAAAAAAAr6MpBQAAAAAAAK+jKQUAAAAAAACvoykFAAAAAAAAr6MpBQDAGXz33Xey2Wz67rvvfJ1KiWWz2TRq1Chfp4F8dOjQQR06dPB1Gj6zc+dOBQYGavny5b5OBReY33//XX5+ftqwYYOvUwGAEoumFACUITabrUA/3miw5LfvcePGnfd9A2XZF198ccE0AQcMGJDn75EGDRoUeBtjxoxRmzZt1LZt21zPff755+ratasiIyMVGBioevXqafjw4Tp8+HBxlnHetGzZUvfdd59HrDTWtHv3bt18882qX7++ypcvr/DwcLVu3VozZsyQMabA29m4caO6du2q0NBQRURE6JZbbtGBAwcKvP6xY8f08MMPq1atWgoICFDVqlX1r3/9SydOnLCWGTVqlMdr0W63q0qVKrr66qu1cuVKj+01atRI3bt314gRIwqcAwBcaPx8nQAAoPi88847Ho/ffvttLVy4MFe8YcOGXsmnS5cuuvXWWz1iF198sVf2DZRVX3zxhSZPnnzBNKYCAgL01ltvecScTmeB1j1w4IBmzJihGTNm5HruoYce0osvvqjmzZvrkUceUUREhH766Se98sormj17thYtWqS6desWSw3nw549e7Ru3TqNGTPGipXWmg4ePKhdu3bpX//6l2rUqKHMzEwtXLhQAwYM0ObNm/Xcc8+ddRu7du3SFVdcIafTqeeee07Hjx/XCy+8oF9//VU//vij/P39z7h+cnKy2rdvr127dunuu+/WRRddpAMHDuj7779Xenq6goODPZafMmWKQkND5Xa7tXPnTr355pu64oor9OOPP6pFixbWcv/+97911VVX6c8//1SdOnXO6fgAQJlmAABl1sCBA42vftVLMgMHDvTJvovT4sWLjSSzePFiX6fiMydPnjQulyvf5yWZkSNHei+hC1xh39ft27c37du3P38JFYHL5TInT57M9/n+/fubkJCQc97+hAkTTFBQkDl27JhHfNasWUaSufHGG01WVpbHc6tWrTLBwcGmefPmJjMz85z3fb5NnTrVBAUFmRMnThhjykZNp7v66qtNSEhIrnrycu+995qgoCCzfft2K7Zw4UIjybz++usFWj88PNz89ddfZ1xu5MiRRpI5cOCAR3zDhg1Gknn88cc94hkZGaZChQrmqaeeOmsOAHAh4vI9ALjApKam6sEHH1T16tUVEBCg+vXr64UXXsh1iYTNZtOgQYM0c+ZM1a9fX4GBgWrZsqWWLl1aqP2dPHlSaWlpBV5+7ty5stlsWrJkSa7nXn/9ddlstnzvz7FmzRrZbLY8Z0V89dVXstls+vzzzyVJ27dv13333af69esrKChIkZGRuv7667Vt27az5lizZk0NGDAgVzyve/ekp6dr5MiRuuiiixQQEKDq1avr4YcfVnp6usdyCxcu1OWXX67w8HCFhoaqfv36evzxx8+aS2HG6e+//9btt9+u6OhoBQQEqHHjxvrvf//rsUz2PbTef/99Pfnkk6pataqCg4OVkpJy1lyyFfTYTp8+XTabTcuXL9ewYcMUFRWlkJAQXXvttbkuuXG73Ro1apRiYmIUHBysjh076vfff881FtmX1pwue185c/jkk0/UvXt3xcTEKCAgQHXq1NHTTz8tl8uVa/3Jkyerdu3aCgoKUuvWrfX9998Xabzz8v333+v6669XjRo1rHWHDh2qkydPWssMGDBAkydPluR5iWxhZGRkaMSIEWrZsqWcTqdCQkLUrl07LV682FrGGKOaNWuqZ8+eudZPS0uT0+nUPffcU+i6c75eGzdurICAAC1YsOCsObtcrkK9BrPNmzdPbdq0UWhoqEd89OjRqlChgt544w05HA6P51q3bq1HHnlEP//8sz766CNJ0ssvvyyHw6GjR49ay7344ouy2WwaNmyYR57ly5fXI488YsXcbrcmTpyoxo0bKzAwUNHR0brnnnt05MgRj/3WrFlTV199tZYtW6bWrVsrMDBQtWvX1ttvv51nbfPnz1fHjh0VFBRUZmo6Xc2aNXXixAllZGScddkPP/xQV199tWrUqGHFEhISVK9ePX3wwQdnXPfo0aOaNm2a7r77btWqVUsZGRkFes/mVLlyZUmSn5/nhSjlypVThw4d9MknnxRqewBwoaApBQAXEGOMrrnmGr300kvq2rWrJkyYoPr162v48OEeJyHZlixZoiFDhujmm2/WmDFjdOjQIXXt2rXAN22dPn26QkJCFBQUpEaNGmnWrFlnXad79+4KDQ3N8yRi9uzZaty4sZo0aZLnunFxcapdu3a+61aoUEGJiYmSpNWrV+uHH35Qnz599PLLL+vf//63Fi1apA4dOnjcP6Qo3G63rrnmGr3wwgvq0aOHXnnlFfXq1UsvvfSSbrzxRmu53377TVdffbXS09M1ZswYvfjii7rmmmsKfGPmgozTvn37dOmll+qbb77RoEGDNGnSJF100UW64447NHHixFzbfPrppzV//nw99NBDeu6558566UtOhT22gwcP1s8//6yRI0fq3nvv1WeffaZBgwZ5LPPYY49p9OjRiouL03/+8x/VrVtXiYmJSk1NLXBep5s+fbpCQ0M1bNgwTZo0SS1bttSIESP06KOPeiw3ZcoUDRo0SNWqVdPzzz+vdu3aqVevXtq1a5fHcgUd7/zMmTNHJ06c0L333qtXXnlFiYmJeuWVVzwugb3nnnvUpUsXSacu183+KYyUlBS99dZb6tChg8aPH69Ro0bpwIEDSkxM1Pr16yWdah7dfPPN+vLLL3Pdi+izzz5TSkqKbr755nOq+9tvv9XQoUN14403atKkSapZs+YZ8z1x4oTCwsLkdDoVERGhgQMH6vjx42etMzMzU6tXr9Yll1ziEd+6das2b96snj17KiwsLM91s4/5Z599Jklq166d3G63li1bZi3z/fffy2636/vvv7di69at0/Hjx3XFFVdYsXvuuUfDhw9X27ZtNWnSJN12222aOXOmEhMTlZmZ6bHfP/74Q//617/UpUsXvfjii6pQoYIGDBig3377LVdt33zzja666qoyU5N06j8xDh48qG3btmnGjBmaNm2a4uPjrcZbfv7++2/t379fcXFxuZ5r3bq11q1bd8b1ly1bprS0NF100UX617/+peDgYAUFBalt27bWe+J0hw8f1sGDB7V//36tW7dOd911lwIDA3XDDTfkWrZly5basGHDOTVWAaDM8/FMLQDAeXT6ZT7z5s0zkswzzzzjsdy//vUvY7PZzB9//GHFJBlJZs2aNVZs+/btJjAw0Fx77bVn3fdll11mJk6caD755BMzZcoU06RJEyPJvPrqq2ddt2/fvqZSpUoel2zs2bPH2O12M2bMmDOu+9hjj5ly5cqZw4cPW7H09HQTHh5ubr/9diuWfclLTitWrDCSzNtvv23F8rp8LzY21vTv3z/X+qdfJvXOO+8Yu91uvv/+e4/lXnvtNSPJLF++3BhjzEsvvZTn5SAFUdBxuuOOO0yVKlXMwYMHPdbv06ePcTqd1vHIrrd27dp5HqP8csh5+V5Bj+20adOMJJOQkGDcbrcVHzp0qHE4HObo0aPGGGP27t1r/Pz8TK9evTy2OWrUKCPJYyyyL605Xfa+kpKSzpjnPffcY4KDg01aWpox5tRrJzIy0rRq1crjsqfp06cbSec03vnJK5+xY8cam83mcUlSUS/fy8rKMunp6R7LHDlyxERHR3u8RzZv3mwkmSlTpngse80115iaNWtaY1aYuiUZu91ufvvttwLl/uijj5pHHnnEzJ4927z33numf//+RpJp27btWS9D++OPP4wk88orr3jEs38PvvTSS2dcPywszFxyySXGmFOXGYaFhZmHH37YGGOM2+02kZGR5vrrrzcOh8O6PHDChAnGbrebI0eOGGOM+f77740kM3PmTI9tL1iwIFc8NjbWSDJLly61Yvv37zcBAQHmwQcf9Fh/0aJFHq/nslCTMade79m/0ySZzp07mx07dpyxJmOMWb16da7fL9mGDx9uJFnv6bxMmDDBSDKRkZGmdevWZubMmebVV1810dHRpkKFCmb37t3Wstm/Y07/CQ8PNwsWLMhz+9mXVq5ateqstQDAhYaZUgBwAfniiy/kcDh0//33e8QffPBBGWP05ZdfesTj4+PVsmVL63GNGjXUs2dPffXVV3le4pTT8uXL9cADD+iaa67Rv//9b61du1ZNmjTR448/7nE5Ul5uvPFG7d+/3+NbAufOnSu3233WGSc33nijMjMzrUtUJOnrr7/W0aNHPdbN+T/vmZmZOnTokC666CKFh4frp59+OuM+CmrOnDlq2LChGjRooIMHD1o/nTp1kiTrcqnw8HBJpy4nc7vdhd7P2cbJGKMPP/xQPXr0kDHGI5fExEQlJyfnqrl///5nnZ2Qn8Ie27vvvtvjErR27drJ5XJp+/btkqRFixYpKysr17eMDR48+JzyyyvPY8eO6eDBg2rXrp1OnDihTZs2STp1SeihQ4d01113eVyW069fP1WoUMFjewUd74Lkk5qaqoMHD+qyyy6TMeasMz0Kw+FwWDPf3G63Dh8+rKysLMXFxXmMT7169dSmTRvNnDnTih0+fFhffvml+vXrZ41ZYetu3769GjVqVKBcx44dq3HjxumGG25Qnz59NH36dD377LNavny55s6de8Z1Dx06JEm5xunYsWOSpPLly59x/fLly1vL2u12XXbZZdZlsRs3btShQ4f06KOPyhijFStWSDo106hJkybWe3rOnDlyOp3q0qWLx7Fp2bKlQkNDcx2bRo0aqV27dtbjqKgo1a9fX3/99ZfHcl988YUaNWpkzTIrCzVJUt++fbVw4ULNmjVLN910kySd9e9FzmUCAgJyPRcYGHjW7WTPvLPZbFq0aJFuuukm3XvvvZo3b56OHDliXTKb04cffqiFCxfq66+/1rRp01SvXj317t1bP/zwQ65ls1+DBw8ePGstAHChoSkFABeQ7du3KyYmJteJS/a38WU3AbLl9S1N9erV04kTJwr1NduS5O/vr0GDBuno0aNau3btGZft2rWrnE6nZs+ebcVmz56tFi1aqF69emdct3nz5mrQoEGudStWrGidJEunTlBGjBhh3VurYsWKioqK0tGjR5WcnFyo2vKzdetW/fbbb4qKivL4ya5h//79kk410tq2bas777xT0dHR6tOnjz744IMCN6jONk4HDhzQ0aNH9cYbb+TK5bbbbvPIJVutWrXOue7CHtuc94CR/jmBy74/Tfbr8qKLLvJYLiIiIlfDoTB+++03XXvttXI6nQoLC1NUVJR1SVp2nvnt28/PL9dlZwUd7/zs2LFDAwYMUEREhEJDQxUVFaX27dt75FNcZsyYoWbNmikwMFCRkZGKiorS/Pnzc+3n1ltv1fLly63jMGfOHGVmZuqWW26xlils3UV5bUnS0KFDZbfb9c033xRoeXPa/fKyf/9lN2fyc+zYMVWqVMl63K5dO61du1YnT57U999/rypVquiSSy5R8+bNrcvdli1b5tGA2bp1q5KTk1WpUqVcx+f48eO5js3p7wXp1Pvh9Hs1zZ8/X927dy9TNUlSbGysEhIS1LdvX82cOVO1a9dWQkKC1VA6fvy49u7da/1k/x3KbujmdR+o7HsanqnJnv1cjx49PO4/dumll6pWrVp5NpquuOIKJSQkqEuXLhowYIAWLVqk8uXL59ksz34NFvb+bwBwIfA7+yIAABSP6tWrS1Kue9ScLiAgQL169dLHH3+sV199Vfv27dPy5csL9LXg0qkmz7PPPquDBw+qfPny+vTTT9W3b1+PmS6DBw/WtGnTNGTIEMXHx8vpdMpms6lPnz5nbQbld2Lhcrk8bjDsdrvVtGlTTZgwIc/ls49HUFCQli5dqsWLF2v+/PlasGCBZs+erU6dOunrr7/OddPiwsqu5+abb1b//v3zXKZZs2Yej891lpRU+GObX32nNxMK4kxjk9PRo0fVvn17hYWFacyYMapTp44CAwP1008/6ZFHHjmnGWsFHe/88uvSpYsOHz6sRx55RA0aNFBISIj+/vtvDRgw4Jzyyc+7776rAQMGqFevXho+fLgqVaokh8OhsWPH6s8///RYtk+fPho6dKhmzpypxx9/XO+++67i4uJUv359a5nC1l2U11b2+pGRkWf9PRIZGSlJuZof2bO0fvnll3zX3b59u1JSUlS7dm0rdvnllyszM1MrVqzQ999/bzVq2rVrp++//16bNm3SgQMHPBo4brdblSpV8phtllNUVJTH44K8F5KSkrRp0yZNmTKlzNSUn3/961968803tXTpUiUmJuqFF17Q6NGjredjY2O1bds2ValSRZK0Z8+eXNvYs2ePIiIi8pxFlS0mJkaSFB0dneu5SpUq5dlAO11oaKjatGmjTz75RKmpqQoJCbGey16/YsWKZ90OAFxoaEoBwAUkNjZW33zzjY4dO+YxWyr7UqXY2FiP5bdu3ZprG1u2bFFwcHCuE4+CyL5coyDr3njjjZoxY4YWLVqkjRs3yhhToJtFZ687evRoffjhh4qOjlZKSor69OnjsczcuXPVv39/vfjii1YsLS3N45uo8lOhQoU8l9u+fbvHCV+dOnX0888/q3Pnzmf9H3K73a7OnTurc+fOmjBhgp577jk98cQTWrx4sRISEs64bkHGqXz58nK5XGfdVnEoyrHNS/br8o8//vCYZXPo0KFcJ4vZM6eOHj1qXW4k5Z4F+N133+nQoUP66KOPPG7gnJSUlO++O3bsaMWzsrK0bds2j2ZeYcb7dL/++qu2bNmiGTNmeNzYfOHChbmWLepsi7lz56p27dr66KOPPLY1cuTIXMtGRESoe/fumjlzpvr166fly5fnujF+Ueo+F9mXWp7t90iNGjUUFBSUa0zr1q2r+vXra968eZo0aVKel7xlfzvc9ddfb8Vat24tf39/ff/99/r+++81fPhwSadmzLz55ptatGiR9ThbnTp19M0336ht27ZFbsZlmz9/vpxOpy6//PIyU1N+smdIZc/gu/XWWz3qzt5/1apVFRUVpTVr1uTaxo8//qgWLVqccT/Zlz///fffuZ7bvXu3GjRoUKB8s7KyJJ2a0ZWzKZWUlCS73X7Wmb4AcCHi8j0AuIBcddVVcrlc+r//+z+P+EsvvSSbzaZu3bp5xFesWOFxj5mdO3fqk08+0ZVXXnnG2Tt5Xdp37NgxTZw4URUrVvS4/1F+EhISFBERodmzZ2v27Nlq3bp1gS/7adiwoZo2bWqtW6VKFY+TKunU/96f/j/1r7zyylnvlSWdOilbuXKlx9eUf/7559q5c6fHcjfccIP+/vtvvfnmm7m2cfLkSeub4/Ka8ZF9ElWQryU/2zg5HA717t1bH374YZ7fnFjYSzHPpijHNi+dO3eWn5+fx8wQSblex9KpsZFk3SdHOnV/phkzZuTKUfKcrZGRkaFXX33VY7m4uDhFRkbqzTfftE44JWnmzJm5GmIFHe+85JWPMUaTJk3KtWz2ye65Nvny2teqVausewid7pZbbtHvv/+u4cOHy+Fw5GrwFqXuM0lLS8vzcrSnn35axhh17dr1jOuXK1dOcXFxeTYqRo4cqSNHjujf//53rtfl2rVrNX78eF188cUevxMDAwPVqlUrvffee9qxY4fHrKKTJ0/q5ZdfVp06daxZO9KpY+NyufT000/nyiErK+ucxvCLL77QlVde6THzs7TXlN/voKlTp8pms1nfoJh9OV/2T9u2ba1le/funev38KJFi7RlyxaPRlxmZqY2bdrkMauqfv36at68uT755BOP+z59/fXX2rlzp/WNl2dy+PBh/fDDD6pcubLHJZLSqePfuHFjOZ3Os24HAC40zJQCgAtIjx491LFjRz3xxBPatm2bmjdvrq+//lqffPKJhgwZYp3QZ2vSpIkSExN1//33KyAgwDphz3n5RF4mT56sefPmqUePHqpRo4b27Nmj//73v9qxY4feeecd6ybLZ1KuXDldd911ev/995WamqoXXnihULXeeOONGjFihAIDA3XHHXfIbvf8f5irr75a77zzjpxOpxo1aqQVK1bom2++sS75OZM777xTc+fOVdeuXXXDDTfozz//1Lvvvpvr+N1yyy364IMP9O9//1uLFy9W27Zt5XK5tGnTJn3wwQf66quvFBcXpzFjxmjp0qXq3r27YmNjtX//fr366quqVq2ax6yA/BRknMaNG6fFixerTZs2uuuuu9SoUSMdPnxYP/30k7755puzXgpVGEU5tnmJjo7WAw88oBdffFHXXHONunbtqp9//llffvmlKlas6DE758orr1SNGjV0xx13WE2U//73v4qKitKOHTus5S677DJVqFBB/fv31/333y+bzaZ33nknVzPN399fo0aN0uDBg9WpUyfdcMMN2rZtm6ZPn646dep47Lug452XBg0aqE6dOnrooYf0999/KywsTB9++GGelw1lN3Xvv/9+JSYm5tkoOpOrr75aH330ka699lp1795dSUlJeu2119SoUSPrhs85de/eXZGRkZozZ466deuW64S7KHWfyd69e3XxxRerb9++1kyVr776Sl988YW6du2qnj17nnUbPXv21BNPPKGUlBSFhYVZ8b59+2rNmjWaMGGCfv/9d+vG9T/99JP1epk7d26uxk+7du00btw4OZ1ONW3aVNKpy7vq16+vzZs3a8CAAR7Lt2/fXvfcc4/Gjh2r9evX68orr1S5cuW0detWzZkzR5MmTdK//vWvAh+TkydPavHixXrttddyPVdaa5Jk3by+a9euqlGjhg4fPqwPP/xQq1ev1uDBg3Pd0y0vjz/+uObMmaOOHTvqgQce0PHjx/Wf//xHTZs2te6dJ52aDdWwYUP1799f06dPt+IvvfSSunTpossvv1z33HOPkpOTNWHCBNWrV0/33ntvrv3NnTtXoaGhMsZo9+7dmjp1qo4cOaLXXnvN4/dCZmamlixZkuuLGgAA/+PV7/oDAHhVXl8df+zYMTN06FATExNjypUrZ+rWrWv+85//WF/vnk2SGThwoHn33XdN3bp1TUBAgLn44ovN4sWLz7rfr7/+2nTp0sVUrlzZlCtXzoSHh5srr7zSLFq0qFD5L1y40EgyNpvN7Ny5s1Drbt261fqq7mXLluV6/siRI+a2224zFStWNKGhoSYxMdFs2rTJxMbGmv79+1vLLV682EjKVfeLL75oqlatagICAkzbtm3NmjVrTPv27U379u09lsvIyDDjx483jRs3NgEBAaZChQqmZcuWZvTo0SY5OdkYc+rr3Xv27GliYmKMv7+/iYmJMX379jVbtmw5a52FGad9+/aZgQMHmurVq5ty5cqZypUrm86dO5s33ngjV71z5sw5675z5jBy5EjrcUGP7bRp04wks3r1ao/t5XXMs7KyzFNPPWUqV65sgoKCTKdOnczGjRtNZGSk+fe//+2x/tq1a02bNm2Mv7+/qVGjhpkwYYK1r6SkJGu55cuXm0svvdQEBQWZmJgY8/DDD5uvvvoqz/F++eWXTWxsrAkICDCtW7c2y5cvNy1btjRdu3b1WK4g452f33//3SQkJJjQ0FBTsWJFc9ddd5mff/7ZSDLTpk3zOBaDBw82UVFRxmaz5XqPn+7016Xb7TbPPfecVc/FF19sPv/8c9O/f38TGxub5zbuu+8+I8nMmjUrz+cLWnf267Ugjhw5Ym6++WZz0UUXmeDgYBMQEGAaN25snnvuOZORkVGgbezbt8/4+fmZd955J8/nP/30U5OQkGDCw8Ot3xeNGzfOd6zmz59vJJlu3bp5xO+8804jyUydOjXP9d544w3TsmVLExQUZMqXL2+aNm1qHn74YbN7925rmdjYWNO9e/dc6+Ycv88//9zYbDazb9++fGsubTUZc+pvxtVXX239XSpfvrxp27atmTZtWq6/TWeyYcMGc+WVV5rg4GATHh5u+vXrZ/bu3euxTFJSkpHk8bso28KFC82ll15qAgMDTUREhLnlllvMnj17PJYZOXKkdVyzf0JCQkx8fLz54IMPcm3zyy+/NJLM1q1bC1wHAFxIbMacw11EAQBlns1m08CBA/O8RAolx4U8TkePHlWFChX0zDPP6IknnvDqvt1ut6KionTdddfledlaWTN06FBNnTpVe/fuVXBwsK/TKZQ77rhDW7Zssb5N7kzuvPNOTZ06VW+++abuvPNOL2RXOPfdd5/WrFmjH3/8scDrlPSayrpevXrJZrPp448/9nUqAFAicfkeAAAo8U6ePJnrpsrZN9zu0KHDed13WlqaAgICPC7Jefvtt3X48OHzvu+SIC0tTe+++6569+5d6hpS0ql7LdWrV0/Lly/3uAdRXl5//XXt27dP9957r2JiYnTVVVd5KcuCadGihXr06FGodUp6TWXZxo0b9fnnn2v9+vW+TgUASiyaUgAAoMSbPXu2pk+frquuukqhoaFatmyZ3nvvPV155ZVnbTQU1cqVKzV06FBdf/31ioyM1E8//aSpU6eqSZMmHjdQLmv279+vb775RnPnztWhQ4f0wAMP+Dqlc1KjRg2lpaUVaFmHw6HPPvvsPGd07u6+++5Cr1PSayrLGjZs6PEFCQCA3GhKAQCAEq9Zs2by8/PT888/r5SUFOvm588888x533fNmjVVvXp1vfzyyzp8+LAiIiJ06623aty4cQW6aX9plX2z7EqVKunll1+2vhESAACguPj0nlIul0ujRo3Su+++q7179yomJkYDBgzQk08+aU2RN8Zo5MiRevPNN3X06FG1bdtWU6ZMUd26dX2VNgAAAAAAAIrIfvZFzp/x48drypQp+r//+z9t3LhR48eP1/PPP69XXnnFWub555/Xyy+/rNdee02rVq1SSEiIEhMTCzwNGwAAAAAAACWPT2dKXX311YqOjtbUqVOtWO/evRUUFKR3331XxhjFxMTowQcf1EMPPSRJSk5OVnR0tKZPn64+ffr4KnUAAAAAAAAUgU/vKXXZZZfpjTfe0JYtW1SvXj39/PPPWrZsmSZMmCBJSkpK0t69e5WQkGCt43Q61aZNG61YsSLPplR6errS09Otx263W4cPH1ZkZKTHt+YAAAAAAACg+BljdOzYMcXExMhuz/8iPZ82pR599FGlpKSoQYMGcjgccrlcevbZZ9WvXz9J0t69eyVJ0dHRHutFR0dbz51u7NixGj169PlNHAAAAAAAAGe0c+dOVatWLd/nfdqU+uCDDzRz5kzNmjVLjRs31vr16zVkyBDFxMSof//+57TNxx57TMOGDbMeJycnq0aNGkpKSlJYWJgkyW63y263y+12y+12W8tmx10ul3Je1Zhf3OFwyGaz5fqqV4fDIenUjdwLEvfz85MxxiNus9nkcDhy5ZhfnJqoiZqoiZqoiZqoiZqoiZqoiZqoiZqoqSTUlJKSolq1aql8+fI6E582pYYPH65HH33UugyvadOm2r59u8aOHav+/furcuXKkqR9+/apSpUq1nr79u3L92uJAwICFBAQkCseERFhNaUAAAAAAABwfvj5nWo3ne02Sj799r0TJ07IbvdMIbvrJkm1atVS5cqVtWjRIuv5lJQUrVq1SvHx8V7NFQAAAAAAAMXHpzOlevTooWeffVY1atRQ48aNtW7dOk2YMEG33367pFMdtSFDhuiZZ55R3bp1VatWLT311FOKiYlRr169fJk6AAAAAAAAisCnTalXXnlFTz31lO677z7t379fMTExuueeezRixAhrmYcfflipqam6++67dfToUV1++eVasGCBAgMDfZg5AAAAAAAAisJmct4pqwxKSUmR0+lUcnIy95QCAAAAAKCUcrvdysjI8HUakFSuXDnr5ul5KWgvxqczpQAAAAAAAM4mIyNDSUlJHt/6Bt8KDw9X5cqVz3oz8zOhKQUAAAAAAEosY4z27Nkjh8Oh6tWr5/rCNHiXMUYnTpzQ/v37JUlVqlQ5523RlAIAAAAAACVWVlaWTpw4oZiYGAUHB/s6HUgKCgqSJO3fv1+VKlU646V8Z0J7EQAAAAAAlFgul0uS5O/v7+NMkFN2gzAzM/Oct0FTCgAAAAAAlHhFuXcRil9xjAdNKQAAAAAAAHgdTSkAAAAAAIACmD59usLDwwu1zokTJ9S7d2+FhYXJZrPp6NGj5yW30oimFAAAAAAAKHVsNtsZf0aNGuXrFCVJM2bM0Pfff68ffvhBe/bskdPpLJbtdujQQUOGDCmWbfkK374HAAAAAABKnT179lj/nj17tkaMGKHNmzdbsdDQUF+klcuff/6phg0bqkmTJr5OJU8ZGRk+u4k8M6UAAAAAAECpU7lyZevH6XTKZrNZjytVqqQJEyaoWrVqCggIUIsWLbRgwQJr3W3btslms+n999/XZZddpsDAQDVp0kRLliwpVA4HDhxQXFycrr32WqWnp+d6vkOHDnrxxRe1dOlS2Ww2dejQQZKUnp6uhx56SFWrVlVISIjatGmj7777zlrv0KFD6tu3r6pWrarg4GA1bdpU7733nvX8gAEDtGTJEk2aNMmaGbZt27Y8Ly+cN2+ex03JR40apRYtWuitt95SrVq1FBgYKEk6evSo7rzzTkVFRSksLEydOnXSzz//XKjjUVg0pQAAAAAAQJkyadIkvfjii3rhhRf0yy+/KDExUddcc422bt3qsdzw4cP14IMPat26dYqPj1ePHj106NChAu1j586dateunZo0aaK5c+cqICAg1zIfffSR7rrrLsXHx2vPnj366KOPJEmDBg3SihUr9P777+uXX37R9ddfr65du1r5paWlqWXLlpo/f742bNigu+++W7fccot+/PFHq774+Hjddddd2rNnj/bs2aPq1asX+Pj88ccf+vDDD/XRRx9p/fr1kqTrr79e+/fv15dffqm1a9fqkksuUefOnXX48OECb7ewaEoBAAAAAIAy5YUXXtAjjzyiPn36qH79+ho/frxatGihiRMneiw3aNAg9e7dWw0bNtSUKVPkdDo1derUs25/8+bNatu2rRITEzVt2jQ5HI48l4uIiFBwcLD8/f1VuXJlRUREaMeOHZo2bZrmzJmjdu3aqU6dOnrooYd0+eWXa9q0aZKkqlWr6qGHHlKLFi1Uu3ZtDR48WF27dtUHH3wgSXI6nfL391dwcLA1Oyy/HPKSkZGht99+WxdffLGaNWumZcuW6ccff9ScOXMUFxenunXr6oUXXlB4eLjmzp1b4O0WFveUAgAAAAAAZUZKSop2796ttm3besTbtm2b63K0+Ph4699+fn6Ki4vTxo0bJUmNGzfW9u3bJUnt2rXTl19+KUk6efKk2rVrp5tuuilXk6sgfv31V7lcLtWrV88jnp6ersjISEmSy+XSc889pw8++EB///23MjIylJ6eruDg4ELvLy+xsbGKioqyHv/88886fvy4tf9sJ0+e1J9//lks+8wLTSkAAAAAAIDTfPHFF8rMzJQkBQUFWfGAgAAlJCTo888/1/Dhw1W1atVCbff48eNyOBxau3ZtrtlN2Tdn/89//qNJkyZp4sSJatq0qUJCQjRkyBBlZGSccdt2u13GGI9Ydg05hYSE5MqpSpUqHve1ynb6PaqKE00pAAAAAABQZoSFhSkmJkbLly9X+/btrfjy5cvVunVrj2VXrlypK664QpKUlZWltWvXatCgQZJOzSbKi91u1zvvvKObbrpJHTt21HfffaeYmJgC53fxxRfL5XJp//79ateuXZ7LLF++XD179tTNN98sSXK73dqyZYsaNWpkLePv7y+Xy+WxXlRUlI4dO6bU1FSr8ZR9z6gzueSSS7R37175+fmpZs2aBa6lqLinFAAAAAAAKFOGDx+u8ePHa/bs2dq8ebMeffRRrV+/Xg888IDHcpMnT9bHH3+sTZs2aeDAgTpy5Ihuv/32s27f4XBo5syZat68uTp16qS9e/cWOLd69eqpX79+uvXWW/XRRx8pKSlJP/74o8aOHav58+dLkurW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ddddkqSkpCTt3btXCQkJ1jpOp1Nt2rTRihUr8mxKpaenKz093XqckpIiScrKylJWVpYkyW63y263y+12y+12W8tmx10ul4wxZ407HA7ZbDZruznjkuRyuQoU9/PzkzHGI26z2eRwOHLlmF+cmqiJmqiJmqiJmqiJmqiJmqiJmqiprNZkjLF+stfJmXfObRUmXhIUtSan06l69epp69atha6xKMcxezyyxyzn+J3++smPT5tSf/31l6ZMmaJhw4bp8ccf1+rVq3X//ffL399f/fv31969eyVJ0dHRHutFR0dbz51u7Nixub4aUZLWrVunkJAQSVJUVJTq1KmjpKQkHThwwFqmWrVqqlatmrZs2aLk5GQrXrt2bVWqVEkbNmzQyZMnrXiDBg0UHh6udevWebzRmjVrJn9/f497Y0lSXFycMjIy9Msvv1gxh8OhVq1aKTk52ePrG4OCgtS8eXMdPHhQf/31lxV3Op1q2LChdu/erV27dllxaqImaqImaqImaqImaqImaqImaqKmsljTrl27lJGRoRMnTsjlcsnf31/+/v5KS0vzyDEgIEDlypXTyZMnPZpbgYGB8vPz04kTJzwaLUFBQbLb7UpNTZUvpaamFqmmY8eO6c8//9QNN9wgt9udZ00hISFyu90eY22z2RQSEiKXy+VxiyS73a7g4GBlZWV5TPpxOBwKCgpSZmamMjIylJ6eroyMDO3atUv16tXzeO0V9JjajA9bhf7+/oqLi9MPP/xgxe6//36tXr1aK1as0A8//KC2bdtq9+7dqlKlirXMDTfcIJvNptmzZ+faZl4zpapXr65Dhw4pLCxMUtnvIFMTNVETNVETNVETNVETNVETNVETNZWVmk6cOKFt27apVq1aCgwMtNY5XzOldm3oVKDliku1Jt9KKnjuDz30kHr06KGaNWvq77//1qhRo7R+/Xr99ttvioqKKtS+i3Ic09LSlJSUpJo1ayo4ONhj/FJSUhQZGank5GSrF5MXn86UqlKliho1auQRa9iwoT788ENJsr7ecN++fR5NqX379qlFixZ5bjMgIEABAQG54n5+fvLz8yw3+wV+uuw3VUHjp2/3XOI2my3PeH45FjZOTdSUX5yaqEmipvxyLGycmqhJoqb8cixsnJqoSaKm/HIsbJyaqEkq/TXZbDbrJ+f281LYuK8Vtqa///5bN910kw4d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5ut0AAAAAAAAyrSC9mIKPVMqp+DgYAUHBxdlEwAAAAAAALgAFbopVatWLdlstnyf/+uvv4qUEAAAAAAAAMq+QjelhgwZ4vE4MzNT69at04IFCzR8+PDiygsAAAAAAABlWKGbUg888ECe8cmTJ2vNmjVFTggAAAAAAABln724NtStWzd9+OGHxbU5AAAAAAAAlGHF1pSaO3euIiIiimtzAAAAAAAAKMMKffnexRdf7HGjc2OM9u7dqwMHDujVV18t1uQAAAAAAABQNhW6KdWrVy+Px3a7XVFRUerQoYMaNGhQXHkBAAAAAACgDLMZY4yvk5CkcePG6bHHHtMDDzygiRMnSpLS0tL04IMP6v3331d6eroSExP16quvKjo6usDbTUlJkdPpVHJyssLCws5T9gAAAAAAAJAK3osp0EyplJSUAu/4XBo/q1ev1uuvv65mzZp5xIcOHar58+drzpw5cjqdGjRokK677jotX7680PsAAAAAAABAyVGgplR4eLjHfaTyYoyRzWaTy+UqVALHjx9Xv3799Oabb+qZZ56x4snJyZo6dapmzZqlTp06SZKmTZumhg0bauXKlbr00ksLtR8AAAAAAACUHAVqSi1evPi8JTBw4EB1795dCQkJHk2ptWvXKjMzUwkJCVasQYMGqlGjhlasWJFvUyo9PV3p6enW4+xZXllZWcrKypJ06j5YdrtdbrdbbrfbWjY77nK5lPOqxvziDodDNpvN2m7OuKRcDbr84n5+fjLGeMRtNpscDkeuHPOLUxM1URM1URM1URM1URM1URM1URM1URM1lYSaTs8rPwVqSrVv375AGyus999/Xz/99JNWr16d67m9e/fK399f4eHhHvHo6Gjt3bs3322OHTtWo0ePzhVft26dQkJCJElRUVGqU6eOkpKSdODAAWuZatWqqVq1atqyZYuSk5OteO3atVWpUiVt2LBBJ0+etOINGjRQeHi41q1b5zGAzZo1k7+/v9asWeORQ1xcnDIyMvTLL79YMYfDoVatWik5OVmbNm2y4kFBQWrevLkOHjyov/76y4o7nU41bNhQu3fv1q5du6w4NVETNVETNVETNVETNVETNVETNVETNVFTSagpNTVVBXHONzo/ceKEduzYoYyMDI/46feFys/OnTsVFxenhQsXWut06NBBLVq00MSJEzVr1izddtttHrOeJKl1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lSpVdNlll6ly5cry8/P8stGMjAwfZYazcTqdfIC6gPHeLDtcLpfcbrev08B5Ur16de3Zs8f6efDBB9W4cWOP2I033lhs+6tcufIF/w1VkhQaGqrIyEhfpwGgmJw4cULvv/++Hn74Yf33v/896/Jl8XMSTali5Ha7NXbsWNWqVUtBQUFq3ry55s6dK+mf/8lbtGiR4uLiFBwcrMsuu0ybN2/22MYzzzyjSpUqqXz58rrzzjv16KOPFtsU3XfeeUdxcXEqX768KleurJtuukn79++XdOp/uzp27ChJqlChgmw2mwYMGCDpVOf9/vvv18MPP6yIiAhVrlxZo0aNKpacSpq5c+eqadOmCgoKUmRkpBISEpSammpdTjR69GhFRUUpLCxM//73vz1+KSxYsECXX365wsPDFRkZqauvvlp//vlnseR16NAh9e3bV1WrVlVwcLCaNm2q9957z3p+wIABWrJkiSZNmmT97+S2bdsK/LorawYMGKDBgwdrx44dstlsqlmzpjp06KBBgwZpyJAhqlixohITEyVJEyZMUNOmTRUSEqLq1avrvvvu0/Hjx4slj9WrV6tLly6qWLGinE6n2rdvr59++sl6vmbNmpKka6+91spT+mfmwDvvvKOaNWvK6XSqT58+OnbsWLHkVdLlvHwve9wGDRokp9OpihUr6qmnnlLOL46tWbOmnnvuOd1+++0qX768atSooTfeeOOc9p39P//vv/++LrvsMgUGBqpJkyZasmSJtYzL5dIdd9xh/a6vX7++Jk2alGcNL7zwgqpUqaLIyEgNHDhQmZmZ55RXaTN//nw5nU7NnDlTv/76qzp16mT9Xr377rs93mPZx+rZZ59VTEyM6tevX2x5/Pnnn+rZs6eio6MVGhqqVq1a6ZtvvvFYpiCvnx9++EEtWrRQYGCg4uLiNG/evDJ5WfDZ3m9HjhzRrbfeqgoVKig4OFjdunXT1q1brfWz/0f+008/VaNGjRQQEKAdO3YUKSc+uxRcfp8FJGnt2rX5fg4oyPskLw6HQ5UrV7Z+QkND5efn5xELCgqylv/qq6/UsGFDhYaGqmvXrtqzZ4/13Nn+XkoXzqzWN954QzExMbkauj179tTtt9+e5+zCt956Sw0bNlRgYKAaNGigV199tVhy4fNn/txut55//nlddNFFCggIUI0aNfTss89anyM++OADtWvXTkFBQWrVqpW2bNmi1atXKy4uTqGhoerWrZsOHDhgbc9bnxuK4+9iRkaGBg0apCpVqigwMFCxsbEaO3Zssebpazk/x5zp75B06m9jv379FBUVpaCgINWtW1fTpk0r8L7mzJmjRo0a6dFHH9XSpUu1c+dOj+fz+5x0tryyLV++XM2aNVNgYKAuvfRSbdiw4RyPyvlDU6oYjR07Vm+//bZee+01/fbbbxo6dKhuvvlmj5OZJ554Qi+++KLWrFkjPz8/3X777dZzM2fO1LPPPqvx48dr7dq1qlGjhqZMmVJs+WVmZurpp5/Wzz//rHnz5mnbtm3Wh7fq1avrww8/lCRt3rxZe/bs8TjJmjFjhkJCQrRq1So9//zzGjNmjBYuXFhsuZUEe/bsUd++fXX77bdr48aN+u6773TddddZH8YXLVpkxd977z199NFHGj16tLV+amqqhg0bpjVr1mjRokWy2+269tpri+V/idPS0tSyZUvNnz9fGzZs0N13361bbrlFP/74o6RTlzvFx8frrrvusv53snr16tb6Z3rdlUWTJk3SmDFjVK1aNe3Zs0erV6+WdOp17O/vr+XLl+u1116TJNntdr388sv67bffNGPGDH377bd6+OGHiyWPY8eOqX///lq2bJlWrlypunXr6qqrrrKaS9l5TZs2zSNP6dSHhnnz5unzzz/X559/riVLlmjcuHHFkldpM2PGDPn5+enHH3/UpEmTNGHCBL311lsey7z44ouKi4vTunXrdN999+nee+8t0off4cOH68EHH9S6desUHx+vHj166NChQ5JOfRCtVq2a5syZo99//10jRozQ448/rg8++MBjG4sXL9aff/6pxYsXa8aMGZo+fbpXL0v0lVmzZqlv376aOXOmevXqpcTERFWoUEGrV6/WnDlz9M0332jQoEEe6yxatEibN2/WwoUL9fnnnxdbLsePH9dVV12lRYsWad26deratat69OiRq1FyptdPSkqKevTooaZNm+qnn37S008/rUceeaTYcixpzvR+GzBggNasWaNPP/1UK1askDFGV111lcdJ04kTJzR+/Hi99dZb+u2331SpUqUi5cNnl4I702eBM30OKOj7pChOnDihF154Qe+8846WLl2qHTt26KGHHrKeP9vfywvJ9ddfr0OHDmnx4sVW7PDhw1qwYIH69euXa/mZM2dqxIgRevbZZ7Vx40Y999xzeuqppzRjxowi58Lnz/w99thjGjdunJ566in9/vvvmjVrlqKjo63nR44cqSeffFI//fST/Pz8dNNNN+nhhx/WpEmT9P333+uPP/7QiBEjPLbpjc8NxfF38eWXX9ann36qDz74QJs3b9bMmTOt/1gtC3J+junXr98Z/w5Jsl4DX375pTZu3KgpU6aoYsWKBd7f1KlTdfPNN8vpdKpbt255jnlen5POlle24cOH68UXX9Tq1asVFRWlHj16lLz/JDUoFmlpaSY4ONj88MMPHvE77rjD9O3b1yxevNhIMt9884313Pz5840kc/LkSWOMMW3atDEDBw70WL9t27amefPmBcph5MiRBV7WGGNWr15tJJljx44ZY4yV45EjRzyWa9++vbn88ss9Yq1atTKPPPJIgfdVGqxdu9ZIMtu2bcv1XP/+/U1ERIRJTU21YlOmTDGhoaHG5XLlub0DBw4YSebXX38t0P4lmY8//rjA+Xbv3t08+OCD1uP27dubBx54wGOZgrzuyqqXXnrJxMbGWo/bt29vLr744rOuN2fOHBMZGVmgfeT3nsmPy+Uy5cuXN5999pkVy2vcR44caYKDg01KSooVGz58uGnTpk2B9lPa9e/f3/Ts2dMYc2rcGjZsaNxut/X8I488Yho2bGg9jo2NNTfffLP12O12m0qVKpkpU6YUaH85xyApKclIMuPGjbOez8zMNNWqVTPjx4/PdxsDBw40vXv39qghNjbWZGVlWbHrr7/e3HjjjQXKqbTJ/v3zf//3f8bpdJrvvvvOGGPMG2+8YSpUqGCOHz9uLTt//nxjt9vN3r17jTGnjlV0dLRJT08v1P7KlStnQkJCPH4CAgKM0+k847qNGzc2r7zyivX4bK+fKVOmmMjISI/fmW+++aaRZNatW1fgnEuDM73ftmzZYiSZ5cuXW88dPHjQBAUFmQ8++MAYY8y0adOMJLN+/foC75PPLsXr9M8C5/o54PT3SUHkN5bZr4s//vjDik2ePNlER0fnu62C/r0sq3r27Gluv/126/Hrr79uYmJijMvlynWc69SpY2bNmuWx/tNPP23i4+MLtC8+fxZeSkqKCQgIMG+++Wau57I/R7z11ltW7L333jOSzKJFi6zY2LFjTf369a3HRf3c4M2/i4MHDzadOnXy+FtR2uX3OSYvp/8d6tGjh7nt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAhKxJREFUeJzs3XlcVPX+x/H3DMgugyCguOCSKe4lZrikKYXmNS1bLCstb3Vvaqlpey5taptaN23XFs2tstLSzNRKzVwzzaUMM1PcBQUBmTm/P/xxYgRkEDwD+Ho+HjweznfOnPP5zHfGObw554zNMAxDAAAAAAAAgIXs3i4AAAAAAAAAFx5CKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5QilAAAAAAAAYDlCKQAA/t+yZctks9m0bNkyb5dSZtlsNo0ePdrbZaAQnTp1UqdOnbxdRrnw/PPPq1GjRnK5XN4uBReYRx55RG3atPF2GQBQJhBKAUA5ZbPZPPqxImApbNvjxo0779sGKrIvv/zyggkBf/rpJ913331q1aqVKlWqJJvNdtbl33nnHcXFxSkgIEANGjTQq6++6vG20tLSNH78eD388MOy2913h9PT0/X000+refPmCgoKksPhUIcOHfTBBx/IMIxz6s1Kv/zyi2w2m3766SdzrLz29OmnnyopKUkxMTHy9/dXzZo1dcMNN2jz5s3FWk9JXiuStH79el177bUKDw9XUFCQmjZtqldeecVtmTp16rh9/uVua8SIETpy5IjbskOGDNHPP/+szz//vFh1AEBF5OvtAgAA5+aDDz5wu/3+++9r8eLF+cbj4uIsqeeqq67SHXfc4TZ2ySWXWLJtoKL68ssv9dprr10QwdSXX36pt99+W82bN1e9evW0Y8eOQpd944039J///Ee9e/fWsGHD9P333+v+++9XRkaGHn744SK39e677yonJ0e33HKL2/j+/fvVpUsXbd26VX369NGgQYOUmZmpjz/+WHfccYcWLlyoDz74IF+QVZYsWLBAUVFRat26taTy3dMvv/yiKlWq6IEHHlDVqlWVkpKid999V5dddplWrVqlFi1aFLmOkr5Wvv76a/Xo0UOXXHKJnnzySYWEhGjnzp3as2dPvmVbtmypBx98UJKUmZmpdevWaeLEiVq+fLlbSFitWjX17NlTL774oq699tpiPCMAUAEZAIAKYeDAgYa3/luXZAwcONAr2y5NS5cuNSQZS5cu9XYpXnPy5EnD6XQWer8kY9SoUdYVdIEr7vu6Y8eORseOHc9fQSXgdDqNkydPFnp/SkqKkZGRYRjG2fvOyMgwIiIijO7du7uN9+3b1wgODjaOHDlSZC3Nmzc3brvttnzjSUlJht1uNz777LN89w0fPtyQZDz//PNFrt+bOnToYPTr18+8XRF6yislJcXw9fU17r333iKXLelrJTU11YiOjjauu+66s/6/aBiGERsbm287hvHPc7xjxw638blz5xo2m83YuXNnkX0AQEVW9v4kAgAoNenp6XrwwQdVq1Yt+fv7q2HDhnrxxRfzna5hs9k0aNAgTZ8+XQ0bNlRAQIBatWql7777rljbO3nypDIzMz1efu7cubLZbFq+fHm++9544w3ZbLZCT9NYu3atbDab3nvvvXz3LVq0SDabTfPnz5ck/fnnn7rvvvvUsGFDBQYGKiIiQjfeeKN27dpVZI116tRR//79840XdO2erKwsjRo1ShdddJH8/f1Vq1YtPfTQQ8rKynJbbvHixWrfvr3CwsIUEhKihg0b6rHHHiuyluLM099//6277rpL0dHR8vf3V5MmTfTuu++6LZN7Da2ZM2fqiSeeUI0aNRQUFKS0tLQia8nl6XM7bdo02Ww2rVixQsOGDVNkZKSCg4N13XXX6eDBg27LulwujR49WjExMQoKCtKVV16pX3/9Nd9cjB49usBTvHK3lbeGzz77TN27dzdPA6pfv76efvppOZ3OfI9/7bXXVK9ePQUGBuqyyy7T999/X6L5Lsj333+vG2+8UbVr1zYfO3ToUJ08edJcpn///nrttdckuZ8iWxzZ2dkaOXKkWrVqJYfDoeDgYHXo0EFLly41lzEMQ3Xq1FHPnj3zPT4zM1MOh0P33ntvsfvO+3pt0qSJ/P39tXDhwkJrjY6OVmBgYJE9LV26VIcPH9Z9993nNj5w4EClp6drwYIFZ318cnKyNm3apMTERLfxH3/8UYsWLVL//v0LPHpl7NixatCggcaNG2fO06WXXqrrr7/ebblmzZrJZrNp06ZN5tisWbNks9m0detWc6w479HZs2fr2WefVc2aNRUQEKAuXbro999/z1fjsWPHtHLlSnXv3r3C9HSmqKgoBQUF6dixY0UuW9LXyowZM7R//349++yzstvtSk9PL/Y1yKpVqyZJ8vV1P0El9/X32WefFWt9AFDRcPoeAFRQhmHo2muv1dKlSzVgwAC1bNlSixYt0ogRI/T3339rwoQJbssvX75cs2bN0v333y9/f39NnjxZXbt21U8//aSmTZsWub1p06Zp8uTJMgxDcXFxeuKJJ3Trrbee9THdu3dXSEiIZs+erY4dO7rdN2vWLDVp0qTQbcfHx6tevXqaPXu2+vXrl++xVapUUVJSkiRpzZo1Wrlypfr06aOaNWtq165dmjJlijp16qRff/1VQUFBRfZXFJfLpWuvvVY//PCD7rnnHsXFxemXX37RhAkTtGPHDs2bN0+StGXLFv3rX/9S8+bN9dRTT8nf31+///67VqxY4dF2PJmn/fv36/LLLzdDgcjISH311VcaMGCA0tLSNGTIELd1Pv300/Lz89Pw4cOVlZUlPz8/j/su7nM7ePBgValSRaNGjdKuXbs0ceJEDRo0SLNmzTKXefTRR/X888+rR48eSkpK0s8//6ykpKRiBZ5nmjZtmkJCQjRs2DCFhITo22+/1ciRI5WWlqYXXnjBXG7KlCkaNGiQOnTooKFDh2rXrl3q1auXqlSpopo1a5rLeTrfhZkzZ44yMjL03//+VxEREfrpp5/06quvas+ePZozZ44k6d5779XevXsLPC3XU2lpaXr77bd1yy236O6779bx48f1zjvvKCkpST/99JNatmwpm82m2267Tc8//7yOHDmi8PBw8/FffPGF0tLSdNttt51T399++61mz56tQYMGqWrVqqpTp8459ZHXhg0bJJ3+PyCvVq1ayW63a8OGDWa9BVm5cqWk0+FLXl988YUk5TsNOZevr69uvfVWjRkzRitXrlSXLl3UoUMHffTRR+YyR44c0ZYtW2S32/X999+refPmkk6HkJGRkebp1MV9j44bN052u13Dhw9Xamqqnn/+efXt21erV692Wy43kL/66qsrTE/S6bDt1KlTSklJ0cSJE5WWlqYuXboU2FNeJX2tfPPNNwoNDdXff/+tXr16aceOHQoODtbtt9+uCRMmKCAgwG35U6dO6dChQ5JOB7obNmzQyy+/rCuuuEJ169Z1W9bhcKh+/fpasWKFhg4dWmQvAFBhefdALQBAaTnzdJd58+YZkoxnnnnGbbkbbrjBsNlsxu+//26OSTIkGWvXrjXH/vzzTyMgIMC47rrritx227ZtjYkTJxqfffaZMWXKFKNp06aGJGPy5MlFPvaWW24xoqKijJycHHNs3759ht1uN5566qmzPvbRRx81KlWq5HYKRlZWlhEWFmbcdddd5ljuKUF5rVq1ypBkvP/+++ZYQafvxcbGup0Kk+vM06Q++OADw263G99//73bcq+//rohyVixYoVhGIYxYcIEQ5Jx8ODBs/ZWEE/nacCAAUb16tWNQ4cOuT2+T58+hsPhMJ+P3H7r1atX4HNUWA15T9/z9LmdOnWqIclITEw0XC6XOT506FDDx8fHOHbsmGEY/5ya06tXL7d1jh492pDkNhejRo0q8BSv3G0lJyeftc57773XCAoKMjIzMw3DOP3aiYiIMFq3bm2cOnXKXG7atGmGpHOa78IUVM/YsWMNm81m/Pnnn+ZYSU/fy8nJMbKystyWOXr0qBEdHe32Htm+fbshyZgyZYrbstdee61Rp04dc86K07ckw263G1u2bPG4/lxn63vgwIGGj49PgfdFRkYaffr0Oeu6n3jiCUOScfz4cbfxXr16GZKMo0ePFvrYTz75xJBkvPLKK4ZhGMacOXMMScavv/5qGIZhfP7554a/v79x7bXXGjfffLP5uObNm5foPRoXF+c2j5MmTTIkGb/88ovb42+//Xa3+a8IPRmGYTRs2ND8/y8kJMR44oknijydzjBK/lpp3ry5ERQUZAQFBRmDBw82Pv74Y2Pw4MGGpHyPjY2NNWvM+9OuXbt8z0muq6++2oiLiyuyDwCoyDh9DwAqqC+//FI+Pj66//773cYffPBBGYahr776ym08ISFBrVq1Mm/Xrl1bPXv21KJFiwo8xSmvFStW6IEHHtC1116r//znP1q3bp2aNm2qxx57zO10pILcfPPNOnDggNu3BM6dO1cul0s333xzkY89deqUPvnkE3Ps66+/1rFjx9wem/eUoFOnTunw4cO66KKLFBYWpvXr1591G56aM2eO4uLi1KhRIx06dMj86dy5sySZp0uFhYVJOn3Kxrl8FX1R82QYhj7++GP16NFDhmG41ZKUlKTU1NR8Pffr18+j06YKUtzn9p577nE7Ba1Dhw5yOp36888/JUlLlixRTk5OvtNtBg8efE71FVTn8ePHdejQIXXo0EEZGRnatm2bpNOnhB4+fFh3332326k2ffv2VZUqVdzW5+l8e1JPenq6Dh06pLZt28owDPPojtLg4+NjHvnmcrl05MgR5eTkKD4+3m1+Lr74YrVp00bTp083x44cOaKvvvpKffv2NeesuH137NhRjRs3LrV+pNOnCRd2NF9AQECR/+ccPnxYvr6+CgkJcRs/fvy4JKly5cqFPjb3vtxlO3ToIEnmKbTff/+9Wrdurauuukrff/+9pNNH+WzevNlc9lzeo3feeadbz7nr+uOPP8wxl8ulhQsXmqfuVYSeck2dOlULFy7U5MmTFRcXp5MnTxb5uSSV/LVy4sQJZWRk6I477tArr7yi66+/Xq+88oruvfdezZw5U7/99pvb8m3atNHixYu1ePFizZ8/X88++6y2bNmia6+9tsBtValSxTyyCgAuVIRSAFBB/fnnn4qJicn3y0juqRa5IUCuBg0a5FvHxRdfrIyMjHzX/CmKn5+fBg0apGPHjmndunVnXbZr165yOBxup2/NmjVLLVu21MUXX3zWx7Zo0UKNGjXK99iqVauavyRLp38xGTlypHltrapVqyoyMlLHjh1TampqsXorzG+//aYtW7YoMjLS7Se3hwMHDkg6HaS1a9dO//73vxUdHa0+ffpo9uzZHgdURc3TwYMHdezYMb355pv5arnzzjvdasl15mklxVHc57Z27dput3PDnqNHj0r653V50UUXuS0XHh6eLxgqji1btui6666Tw+FQaGioIiMjzdN2cussbNu+vr75TjvzdL4Ls3v3bvXv31/h4eEKCQlRZGSkeQprab0mc7333ntq3ry5AgICFBERocjISC1YsCDfdu644w6tWLHCfB7mzJmjU6dO6fbbbzeXKW7fJXltFSYwMFDZ2dkF3peZmXnOAeuZ4UxBcu+LioqSdPo6WA0aNDDDmu+//14dOnTQFVdcob179+qPP/7QihUr5HK5zNDlXN6jRb1vpNOn0h48eNAtlCrvPeVKSEhQUlKS/vvf/2rRokX68MMP9eijj5r3Hzx4UCkpKebPiRMnJJX8tZJ7/5nf0ph7avqqVavcxqtWrarExEQlJiaqe/fueuyxx/T2229r5cqVevvtt/Ot3zCMYl8nDgAqGq4pBQA4L2rVqiXp9NEWZ+Pv769evXrp008/1eTJk7V//36tWLFCzz33nEfbufnmm/Xss8/q0KFDqly5sj7//HPdcsstbke6DB48WFOnTtWQIUOUkJAgh8Mhm82mPn36FBkGFfYLg9PplI+Pj3nb5XKpWbNmevnllwtcPvf5CAwM1HfffaelS5dqwYIFWrhwoWbNmqXOnTvr66+/dlvnucjt57bbbst3ra1cudeEyXWuv8RLxX9uC+vPOOPi+54429zkdezYMXXs2FGhoaF66qmnVL9+fQUEBGj9+vV6+OGHz+mINU/nu7D6rrrqKh05ckQPP/ywGjVqpODgYP3999/q37//OdVTmA8//FD9+/dXr169NGLECEVFRcnHx0djx47Vzp073Zbt06ePhg4dqunTp+uxxx7Thx9+qPj4eDVs2NBcprh9l+S1VZjq1avL6XTqwIEDZpAinb6o++HDhxUTE3PWx0dERCgnJ0fHjx93C+0bN26sefPmadOmTbriiisKfGzuhb7r1atnjrVv315LlizRyZMntW7dOo0cOVJNmzZVWFiYvv/+e23dulUhISG65JJLJJ3be9ST982XX36pOnXquB2ZVt57KkiVKlXUuXNnTZ8+XS+++KIkqXXr1m5/aBk1apRGjx5d4tdKTEyMtmzZoujoaLfx3HUVFKCdKffaV999912+Iz6PHj2qqlWrFrkOAKjICKUAoIKKjY3VN998k+8Xr9xTlWJjY92WP/M0BEnasWOHgoKCFBkZWezt556C4cljb775Zr333ntasmSJtm7dKsMwijx1L+9jx4wZo48//ljR0dFKS0tTnz593JaZO3eu+vXrp5deeskcy8zM9Ojbm6pUqVLgcn/++afbL3H169fXzz//rC5duhT5l2+73a4uXbqoS5cuevnll/Xcc8/p8ccf19KlS/N9I9iZPJmnypUry+l0Frmu0lCS57Ygua/L33//3e0om8OHD+f7BTD3yIpjx46Zp0VK+Y8CXLZsmQ4fPqxPPvnE7Rfz5OTkQrd95ZVXmuM5OTnatWuX2y/VxZnvM/3yyy/asWOH3nvvPbcLUC9evDjfsiU9imLu3LmqV6+ePvnkE7d1jRo1Kt+y4eHh6t69u6ZPn66+fftqxYoVmjhxotsyJem7tLRs2VLS6dMtr7nmGnN87dq1crlc5v2FadSokaTT8593Tnv06KHnnntO77//foEBjtPp1IwZMxQdHe12f4cOHTR16lTNnDlTTqdTbdu2ld1uV/v27c0Ap23btmYIExkZeV7eowsWLHB7PipCT4U5efKk25F+06dPdzs9Lvf/5pK+Vlq1aqXFixfr77//dgtn9+7dK8mzz7ecnBxJMo/eyis5OVktWrQoch0AUJFx+h4AVFDXXHONnE6n/ve//7mNT5gwQTabTd26dXMbX7Vqlds1P/766y999tlnuvrqq8969E5Bp/YdP35cEydOVNWqVd2uf1SYxMREhYeHa9asWZo1a5Yuu+wyj0/7iYuLU7NmzczHVq9ePd8vXz4+Pvn++v7qq696dE2S+vXr68cff3Q7BWT+/Pn666+/3Ja76aab9Pfff+utt97Kt46TJ08qPT1dUsFHjuX+YpSVlVVkPUXNk4+Pj3r37q2PP/5Ymzdvzvf44p6KWZSSPLcF6dKli3x9fTVlyhS38TNfx9LpuZH+ufaNdPr6TO+9916+GiX3IzCys7M1efJkt+Xi4+MVERGht956y/xFUjr9C++ZgZin812QguoxDEOTJk3Kt2xwcLAknXPIV9C2Vq9ene+0o1y33367fv31V40YMUI+Pj75At6S9F1aOnfurPDw8HyvkSlTpigoKMjt9LWCJCQkSDodTOR1+eWX6+qrr9bUqVM1f/78fI97/PHHtWPHDj300ENuR2LmnsI2fvx4NW/eXA6HwxxfsmSJ1q5day4j6by8R/fv36/169fn67089yQVfBrsrl27tGTJErdv1GvXrp152lxiYqIZShXntXLo0CFt27ZNGRkZ5thNN90kSXrnnXfcHv/222/L19dXnTp1KrKH3G9APDN8Sk1N1c6dO9W2bdsi1wEAFRlHSgFABdWjRw9deeWVevzxx7Vr1y61aNFCX3/9tT777DMNGTLE/IU+V9OmTZWUlKT7779f/v7+5i/sY8aMOet2XnvtNc2bN089evRQ7dq1tW/fPr377rvavXu3Pvjgg0IvMptXpUqVdP3112vmzJlKT083T8nw1M0336yRI0cqICBAAwYMkN3u/jeXf/3rX/rggw/kcDjUuHFjrVq1St98840iIiKKXPe///1vzZ07V127dtVNN92knTt36sMPP8z3/N1+++2aPXu2/vOf/2jp0qVq166dnE6ntm3bptmzZ2vRokWKj4/XU089pe+++07du3dXbGysDhw4oMmTJ6tmzZpq3759kfV4Mk/jxo3T0qVL1aZNG919991q3Lixjhw5ovXr1+ubb74p8pTK4ijJc1uQ6OhoPfDAA3rppZd07bXXqmvXrvr555/11VdfqWrVqm5H51x99dWqXbu2BgwYYIYo7777riIjI7V7925zubZt26pKlSrq16+f7r//ftlsNn3wwQf5wjQ/Pz+NHj1agwcPVufOnXXTTTdp165dmjZtmurXr++2bU/nuyCNGjVS/fr1NXz4cP39998KDQ3Vxx9/XOCpQLmh7v3336+kpKQCg6Kz+de//qVPPvlE1113nbp3767k5GS9/vrraty4cYFHbnTv3l0RERGaM2eOunXr5nbKU0n7Lsqff/6pDz74QNI/gdEzzzwj6fRRbLnXtgoMDNTTTz+tgQMH6sYbb1RSUpK+//57ffjhh3r22WcVHh5+1u3Uq1dPTZs21TfffKO77rrL7b73339fnTt3Vs+ePXXrrbeqQ4cOysrK0ieffKJly5bptttu09ChQ90ec9FFF6latWravn272+lZV1xxhR5++GFJcgtwpNJ/j3755ZcKCAhwO8KvvPckSc2aNVOXLl3UsmVLValSRb/99pveeecdnTp1SuPGjSvy8cV5rfzvf//TmDFjtHTpUjNsuuSSS3TXXXfp3XffVU5Ojjp27Khly5Zpzpw5evTRR/Od/vf333/rww8/lHQ6+P7555/1xhtvqGrVqvlO3fvmm29kGIZ69uxZ7OcFACoUS7/rDwBw3hT0FerHjx83hg4dasTExBiVKlUyGjRoYLzwwgvm17vnkmQMHDjQ+PDDD40GDRoY/v7+xiWXXGIsXbq0yO1+/fXXxlVXXWVUq1bNqFSpkhEWFmZcffXVxpIlS4pV/+LFiw1Jhs1mM/76669iPfa3334zv377hx9+yHf/0aNHjTvvvNOoWrWqERISYiQlJRnbtm0zYmNjjX79+pnL5X5V+Zl9v/TSS0aNGjUMf39/o127dsbatWuNjh07un31umEYRnZ2tjF+/HijSZMmhr+/v1GlShWjVatWxpgxY4zU1FTDMAxjyZIlRs+ePY2YmBjDz8/PiImJMW655RZjx44dRfZZnHnav3+/MXDgQKNWrVpGpUqVjGrVqhldunQx3nzzzXz9zpkzp8ht561h1KhR5m1Pn9upU6cakow1a9a4ra+g5zwnJ8d48sknjWrVqhmBgYFG586dja1btxoRERHGf/7zH7fHr1u3zmjTpo3h5+dn1K5d23j55ZfNbSUnJ5vLrVixwrj88suNwMBAIyYmxnjooYeMRYsWFTjfr7zyihEbG2v4+/sbl112mbFixQqjVatWRteuXd2W82S+C/Prr78aiYmJRkhIiFG1alXj7rvvNn7++WdDkjF16lS352Lw4MFGZGSkYbPZ8r3Hz3Tm69LlchnPPfec2c8ll1xizJ8/3+jXr58RGxtb4Druu+8+Q5IxY8aMAu/3tO/c16uncl8LBf2c+V4zDMN48803jYYNGxp+fn5G/fr1jQkTJuT7v60wL7/8shESEmJkZGTku+/48ePGmDFjjCZNmhgBAQFmDU8++WSh67vxxhsNScasWbPMsezsbCMoKMjw8/MzTp48me8xJXmPJicnu71WbrjhBuOaa64ptL7y2JNhGMaoUaOM+Ph4o0qVKoavr68RExNj9OnTx9i0aVOhdRfEk9fKqFGjCvz/IDs72xg9erQRGxtrVKpUybjooouMCRMm5NtGbGys22vWbrcbUVFRxi233GL8/vvv+Za/+eabjfbt2xerDwCoiGyGcQ5XFgUAVCg2m00DBw4s8BQplB0X8jwdO3ZMVapU0TPPPKPHH3/c0m27XC5FRkbq+uuvL/C0tYpm6NCheuedd5SSkqKgoCBvl3NepKamql69enr++ec1YMCAsy77999/q23btsrJydGqVavyfWuct+Xk5CgiIkJjx47Vfffd59FjynpPFV1KSorq1q2rmTNncqQUgAse15QCAABlSt4LFufKveC2J9dwKYnMzMx8p/W9//77OnLkyHnfdlmQmZmpDz/8UL17966wgZQkORwOPfTQQ3rhhReK/LbDGjVqaOHChcrMzFS3bt08+sY1Kx05ckRDhw7Vdddd5/FjynpPFd3EiRPVrFkzAikAkMSRUgCAC/oInPLkQpmnadOmadq0abrmmmsUEhKiH374QR999JGuvvpqLVq06Lxue9myZRo6dKhuvPFGRUREaP369XrnnXcUFxendevWeXSNtPLowIED+uabbzR37lzNmzdP69evL/KbyQAAAEqKC50DAIAypXnz5vL19dXzzz+vtLQ08+LnuRe9Pp/q1KmjWrVq6ZVXXtGRI0cUHh6uO+64Q+PGjauwgZQk/frrr+rbt6+ioqL0yiuvEEgBAABLePVIKafTqdGjR+vDDz9USkqKYmJi1L9/fz3x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UVHavHmzTp48aY43atRIYWFh2rBhg9sbrXnz5vLz83O7NpYkxcfHKzs7W5s2bTLHfHx81Lp1a6Wmprp9fWNgYKBatGihQ4cO6Y8//jDHHQ6H4uLitHfvXu3Zs8ccpyd6oid6oid6oid6oid6oid6oid6qog97dmzR9nZ2crIyJDT6ZSfn5/8/PyUmZnpVqO/v78qVaqkkydPuoVbAQEB8vX1VUZGhlvQEhgYKLvdrvT0dHlTenp6iXo6fvy4du7cqZtuukkul6vAnoKDg+Vyudzm2mazKTg4WE6n0+0SSXa7XUFBQcrJyXE76MfHx0eBgYE6deqUsrOzlZWVpezsbO3Zs0cXX3yx22vP0+fUZngxKvTz81N8fLxWrlxpjt1///1as2aNVq1apZUrV6pdu3bau3evqlevbi5z0003yWazadasWfnWWdCRUrVq1dLhw4cVGhoqqeInyPRET/RET/RET/RET/RET/RET/RETxWlp4yMDO3atUt169ZVQECA+ZjzdaTUns2dPVqutNRs+q0kz2sfPny4evTooTp16ujvv//W6NGjtXHjRm3ZskWRkZHF2nZJnsfMzEwlJyerTp06CgoKcpu/tLQ0RUREKDU11cxiCuLVI6WqV6+uxo0bu43FxcXp448/liTz6w3379/vFkrt379fLVu2LHCd/v7+8vf3zzfu6+srX1/3dnNf4GfKfVN5On7mes9l3GazFTheWI3FHacneipsnJ7oSaKnwmos7jg90ZNET4XVWNxxeqIniZ4Kq7G44/RET1L578lms5k/eddfkOKOe1txe/r7779166236vDhw4qMjFT79u31448/KioqqsTbL8547nzkzlne+SvsdXImr4ZS7dq10/bt293GduzYodjYWEmnL3perVo1LVmyxAyh0tLStHr1av33v/+1ulwAAAAAAFDB1Wq21NslnNXMmTO9XUKp8WooNXToULVt21bPPfecbrrpJv30009688039eabb0o6nboNGTJEzzzzjBo0aKC6devqySefVExMjHr16uXN0gEAAAAAAFACXg2lWrdurU8//VSPPvqonnrqKdWtW1cTJ05U3759zWUeeughpaen65577tGxY8fUvn17LVy40DyPFAAAAAAAAOWPVy90boW0tDQ5HI4iL64FAAAAAADKntwLaue90Dm872zz4mkWk/8KYgAA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hYeHKzQ0VIMHD1ZCQgLfvAcAAAAAAFDOFTuUSk9PV1RUlCSpSpUqOnjwoC6++GI1a9ZM69evL9XiJkyYILvdrt69eysrK0tJSUmaPHlyqW4DAAAAAAAA1it2KNWwYUNt375dderUUYsWLfTGG2+oTp06ev3111W9evUSFbNs2TK32wEBAXrttdf02muvlWi9AAAAAAAAKFuKHUo98MAD2rdvnyRp1KhR6tq1q6ZPny4/Pz9NmzattOsDAAAAAABABVTsb987U0ZGhrZt26batWuratWqpVVXqeHb9wAAAAAAAKxz3r5974cffnC7HRQUpEsvvbRMBlIAAAAAAAAom4odSnXu3Fl169bVY489pl9//fV81AQAAAAAAIAKrtih1N69e/Xggw9q+fLlatq0qVq2bKkXXnhBe/bsOR/1AQAAAAAAoAIq0TWlkpOTNWPGDH300Ufatm2brrjiCn377belWV+JcU0pAAAAAAAA63iaxZT4QudOp1NfffWVnnzySW3atElOp7Mkqyt1hFIAAAAAAADWOW8XOs+1YsUK3XfffapevbpuvfVWNW3aVAsWLDjX1QEAAAAAAOAC4lvcBzz66KOaOXOm9u7dq6uuukqTJk1Sz549FRQUdD7qAwAAAAAAQAVU7FDqu+++04gRI3TTTTepatWq56MmAAAAAAAAVHDFDqVWrFhxPuoAAAAAAADABeScrykFAAAAAAAAnCtCKQAAAAAAAFiOUAoAAAAAAACWI5QCAAAAAACA5YodSv373//WsmXLzkMpAAAAAAAAuFAUO5Q6ePCgunbtqlq1amnEiBH6+eefz0ddAAAAAAAAqMCKHUp99tln2rdvn5588kmtWbNGl156qZo0aaLnnntOu3btOg8lAgAAAAAAoKKxGYZhlGQFe/bs0UcffaR3331Xv/32m3JyckqrtlKRlpYmh8Oh1NRUhYaGerscAAAAAACACs3TLKZEFzo/deqU1q5dq9WrV2vXrl2Kjo4uyeoAAAAAAABwgTinUGrp0qW6++67FR0drf79+ys0NFTz58/Xnj17Srs+AAAAAAAAVEC+xX1AjRo1dOTIEXXt2lVvvvmmevToIX9///NRGwAAAAAAACqoYodSo0eP1o033qiwsLDzUA4AAAAAAAAuBMUOpe6+++7zUQcAAAAAAAAuICW60DkAAAAAAABwLgilAAAA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T0oiIyNDL774oj744AN999132r17t4YPH27eX9Tn5YXkxhtv1OHDh7V06VJz7MiRI1q4cKH69u2bb/np06dr5MiRevbZZ7V161Y999xzevLJJ/Xee++VuBb2Pwv36KOPaty4cXryySf166+/asaMGYqOjjbvHzVqlJ544gmtX79evr6+uvXWW/XQQw9p0qRJ+v777/X7779r5MiRbuu0Yr+hND4XX3nlFX3++eeaPXu2tm/frunTp5t/WK0I8u7H9O3b96yfQ5LM18BXX32lrVu3asqUKapatarH23vnnXd02223yeFwqFu3bgXOeUH7SUXVlWvEiBF66aWXtGbNGkVGRqpHjx5l74+kBkpFZmamERQUZKxcudJtfMCAAcYtt9xiLF261JBkfPPNN+Z9CxYsMCQZJ0+eNAzDMNq0aWMMHDjQ7fHt2rUzWrRo4VENo0aN8nhZwzCMNWvWGJKM48ePG4ZhmDUePXrUbbmOHTsa7du3dxtr3bq18fDDD3u8rfJg3bp1hiRj165d+e7r16+fER4ebqSnp5tjU6ZMMUJCQgyn01ng+g4ePGhIMn755RePti/J+PTTTz2ut3v37saDDz5o3u7YsaPxwAMPuC3jyeuuopowYYIRGxtr3u7YsaNxySWXFPm4OXPmGBERER5to7D3TGGcTqdRuXJl44svvjDHCpr3UaNGGUFBQUZaWpo5NmLECKNNmzYebae869evn9GzZ0/DME7PW1xcnOFyucz7H374YSMuLs68HRsba9x2223mbZfLZURFRRlTpkzxaHt55yA5OdmQZIwbN868/9SpU0bNmjWN8ePHF7qOgQMHGr1793brITY21sjJyTHHbrzxRuPmm2/2qKbyJvf/n//973+Gw+Ewli1bZhiGYbz55ptGlSpVjBMnTpjLLliwwLDb7UZKSophGKefq+joaCMrK6tY26tUqZIRHBzs9uPv7284HI6zPrZJkybGq6++at4u6vUzZcoUIyIiwu3/zLfeesuQZGzYsMHjmsuDs73fduzYYUgyVqxYYd536NAhIzAw0Jg9e7ZhGIYxdepUQ5KxceNGj7fJvkvpOnNf4Fz3A858n3iisLnMfV38/vvv5thrr71mREdHF7ouTz8vK6qePXsad911l3n7jTfeMGJiYgyn05nvea5fv74xY8YMt8c//fTTRkJCgkfbYv+z+NLS0gx/f3/jrbfeyndf7n7E22+/bY599NFHhiRjyZIl5tjYsWONhg0bmrdLut9g5efi4MGDjc6dO7t9VpR3he3HFOTMz6EePXoYd9555zltd8eOHUalSpWMgwcPGoZhGJ9++qlRt25dt+fW0/2kwj4fZ86caS5z+PBhIzAw0Jg1a9Y51Xu+cKRUKfn999+VkZGhq666SiEhIebP+++/73YKV/Pmzc1/V69eXZLMw+y2b9+uyy67zG29Z94uiXXr1qlHjx6qXbu2KleurI4dO0qSR38Jy1u3dLr2gg4PLM9atGihLl26qFmzZrrxxhv11ltv6ejRo273BwUFmbcTEhJ04sQJ8xDL3377Tbfccovq1aun0NBQ8y8GpfGXRqfTqaefflrNmjVTeHi4QkJCtGjRIo/XfbbX3YWkVatW+ca++eYbdenSRTVq1FDlypV1++236/Dhw8rIyCjx9vbv36+7775bDRo0kMPhUGhoqE6cOOHRvNWpU0eVK1c2b1fE95ynLr/8ctlsNvN2QkKCfvvtNzmdTnMs72vcZrOpWrVqJXq+EhISzH/7+voqPj5eW7duNcdee+01tWrVSpGRkQoJCdGbb76Zb16bNGkiHx8f83ZFn8O5c+dq6NChWrx4sfn5snXrVrVo0ULBwcHmcu3atZPL5XI7kq1Zs2by8/Mr1vb69u2rjRs3uv089dRTbsucOHFCw4cPV1xcnMLCwhQSEqKtW7fmm6uzvX62b99uHvaeqzQ/m8uawt5vv/76q3x9fdWmTRvzvoiICDVs2NDtveHn55dvn6Ek2HcpHWfbD/D0fVISQUFBql+/vlsNeeeiJJ+XFVHfvn318ccfKysrS9Lpo6H69Okju939V7f09HTt3LlTAwYMcPv945lnnimVS0iw/1mwrVu3KisrS126dCl0mby95x5B1axZM7exM5+Lku43WPW52L9/f23cuFENGzbU/fffr6+//trjGsuygvZjpKI/h/773/9q5syZatmypR566CGtXLnS422+++67SkpKMo+suuaaa5Samqpvv/3WbbmC9pM8/XzMu08bHh6e73O7LPAtehF4Ivf6GAsWLFCNGjXc7vP39zc/GCpVqmSO5+70WXER0PT0dCUlJSkpKUnTp09XZGSkdu/eraSkJI8ulpa3bul07RXt4qU+Pj5avHixVq5cqa+//lqvvvqqHn/8ca1evdqjx/fo0UOxsbF66623zGsBNG3atFQuRvfCCy9o0qRJmjhxonn9oyFDhni8bm+97sqavL8YS6evR/Kvf/1L//3vf/Xss88qPDxcP/zwgwYMGKDs7Gy3EPJc9OvXT4cPH9akSZMUGxsrf39/JSQk8J47D6x8vmbOnKnhw4frpZdeUkJCgipXrqwXXngh3/8VF9ocXnLJJVq/fr3effddxcfHuwUbRTnzvekJh8Ohiy66yG3szFPFhg8frsWLF+vFF1/URRddpMDAQN1www353oMX2lydT4GBgcWa+7Nh36X0nG0/wNP3SWltP7cGI8+1AUvyeVkR9ejRQ4ZhaMGCBWrdurW+//57TZgwId9yub9/vPXWW26BsSS3cONcsf9ZsLzXSitMQb2fOXbmc1HS/7Os+ly89NJLlZycrK+++krffPONbrrpJiUmJprXUi6vCtqP8eRzqFu3bvrzzz/15ZdfavHixerSpYsGDhyoF1988azbczqdeu+995SSkuL2hUxOp1PvvvuuW+h55n5SST8fyxpCqVKS94KeeZPVXJ78taJhw4Zas2aN7rjjDnMs7zVmSmLbtm06fPiwxo0bZ57rvXbtWrdlctPXvEcfXGhsNpvatWundu3aaeTIkYqNjdWnn34qSfr555918uRJ84Poxx9/VEhIiGrVqqXDhw9r+/bteuutt9ShQwdJ0g8//FBqda1YsUI9e/bUbbfdJun0B/qOHTvUuHFjcxk/P78Leu7Oxbp16+RyufTSSy+Zf30887pAJbFixQpNnjxZ11xzjSTpr7/+0qFDh9yWqVSpEvNWhDPDntzrjZTGDndhfvzxR11xxRWSpJycHK1bt868DtKKFSvUtm1b3XfffebypfWlBuVZ/fr19dJLL6lTp07y8fHR//73P8XFxWnatGlKT083d6hWrFghu91eqhc0L8yKFSvUv39/XXfddZJO/wKXe+FnTzVs2FAffvihsrKyzG/+Kq3P5rKosPdb48aNlZOTo9WrV6tt27aSZH725f0sKk3suxTfuewLlMb7pKQ8+by8kAQEBOj666/X9OnT9fvvv6thw4a69NJL8y0XHR2tmJgY/fHHHwVeb6qk2P8sWIMGDRQYGKglS5bo3//+t7fLKZbSer+Hhobq5ptv1s0336wbbrhBXbt21ZEjRxQeHl7KFVunoP0YTz6HJCkyMlL9+vVTv3791KFDB40YMaLIUOrLL7/U8ePHtWHDBrd92s2bN+vOO+/UsWPHCv02ak/rkk5/jteuXVvS6Yuy79ixQ3FxcUU+H1YilCollStX1vDhwzV06FC5XC61b99eqampWrFihUJDQxUbG1vkOgYPHqy7775b8fHxatu2rWbNmqVNmzapXr16Htdx8uTJfN8GlPutCX5+fnr11Vf1n//8R5s3b9bTTz/ttlxsbKxsNpvmz5+va665RoGBgQoJCfF42+Xd6tWrtWTJEl199dWKiorS6tWrdfDgQcXFxWnTpk3Kzs7WgAED9MQTT2jXrl0aNWqUBg0aJLvdripVqigiIkJvvvmmqlevrt27d+uRRx4pdg3Jycn55q9BgwZq0KCB5s6dq5UrV6pKlSp6+eWXtX//fredgjp16mj16tXatWuXQkJCyvWHglUuuuginTp1Sq+++qp69OjhdgH04vjll1/cTrWz2Wxq0aKFGjRoYH4zRlpamkaMGJHvr2t16tTRkiVL1K5dO/n7+6tKlSol7qui2b17t4YNG6Z7771X69ev16uvvqqXXnrpvG7ztddeU4MGDRQXF6cJEybo6NGj5gVaGzRooPfff1+LFi1S3bp19cEHH2jNmjWqW7fuea2pPLj44ou1dOlSderUSb6+vnruuec0atQo9evXT6NHj9bBgwc1ePBg3X777W4XhD1fGjRooE8++UQ9evSQzWbTk08+Wey/0t966616/PHHdc899+iRRx7R7t27zR3N0joiqCwp7P3WoEED9ezZU3fffbfeeOMNVa5cWY888ohq1Kihnj17lmib7LuUnjP3BTx5vZfG+6SkPPm8vND07dtX//rXv7RlyxYzFCrImDFjdP/998vhcKhr167KysrS2rVrdfToUQ0bNsyjbbH/WTwBAQF6+OGH9dBDD8nPz0/t2rXTwYMHtWXLlrOe0lcWlMb7/eWXX1b16tV1ySWXyG63a86cOapWrVqhAUp5cuZ+zOOPP17k59DIkSPVqlUrNWnSRFlZWZo/f75Hoc8777yj7t27q0WLFm7jjRs31tChQzV9+nQNHDiwwMd68vmY66mnnlJERISio6P1+OOPq2rVqua3XJcVXFOqFD399NN68sknNXbsWMXFxalr165asGCBx7+o9O3bV4/+X3v3H1N19cdx/MW935rhj8hy4BilRNmt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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HT169KzbLliwQIcOHdJ9993nFR80aJAyMjI0e/bsIp8/bdo07du3T88995wcDocyMjL8vgdZtWrVJEkul/cFKnmvv88++8yv8QCgvOHyPQAop0zT1LXXXqsFCxborrvuUsuWLTV37lw9/PDD2r17t1555RWv7RctWqQZM2bo/vvvV1hYmCZOnKhrrrlGP/zwg5o2bXrW/U2dOlUTJ06UaZpKSkrSk08+qVtuuaXI5/Ts2VNRUVH68MMP1bFjR6/HZsyYoSZNmhS679atW6t+/fr68MMPNWDAgALPrVy5slJSUiRJK1eu1Pfff69+/fqpZs2a2rZtmyZNmqROnTrp119/VWRk5FnrOxuPx6Nrr71WS5Ys0T333KOkpCStW7dOr7zyijZt2qRPP/1UkvTLL7/oz3/+s5o3b65nnnlGYWFh+uOPP7R06dJi7ac487Rv3z5dccUVVlMgPj5eX331le666y6lp6dr6NChXmP+4x//UGhoqB566CFlZWUpNDS02HX7e2yHDBmiypUra8SIEdq2bZvGjRunwYMHa8aMGdY2jz/+uF544QX16tVLKSkp+umnn5SSkuJ38yG/qVOnKioqSsOHD1dUVJS+/fZbPf3000pPT9eLL75obTdp0iQNHjxYHTp00LBhw7Rt2zb16dNHlStXVs2aNa3tijvfhZk5c6ZOnDihv/3tb4qLi9MPP/yg1157Tbt27dLMmTMlSffee6/27Nnj87Lc4kpPT9ebb76pm2++WXfffbeOHTumyZMnKyUlRT/88INatmwpwzB066236oUXXtDhw4cVGxtrPf+///2v0tPTdeutt55T3d9++60+/PBDDR48WFWqVFHdunXPqQ5fzuUzR5K+//57SaeaL/n997//laQClwTmcblcuuWWWzRq1Ch9//336tq1qzp06KAPPvjA2ubw4cP65Zdf5HA49N1336l58+aSTjUh4+Pjrcup/X2PjhkzRg6HQw899JDS0tL0wgsvqH///lqxYoXXdnkN+e7du5ebmqRTzbacnBylpqZq3LhxSk9PV9euXX3WlN+aNWsknfr3Ir9WrVrJ4XBozZo11mvbl2+++UaVKlXS7t271adPH23atEkVKlTQbbfdpldeeUXh4eFe2+fk5OjgwYOSTjV016xZo5dffllXXXWV6tWr57VtdHS0GjRooKVLl2rYsGFnrQUAyq2grtMCAATMmZe7fPrpp6Yk89lnn/Xa7v/+7/9MwzDMP/74w4pJMiWZq1atsmLbt283w8PDzeuuu+6s+27Xrp05btw487PPPjMnTZpkNm3a1JRkTpw48azPvfnmm82qVauaubm5Vmzv3r2mw+Ewn3nmmSKf+/jjj5shISFel2BkZWWZMTEx5p133mnF8i4Jym/ZsmWmJPOdd96xYr4u36tTp47XpTB5zrxM6t133zUdDof53XffeW33+uuvm5LMpUuXmqZpmq+88oopyTxw4ECRtflS3Hm66667zOrVq5sHDx70en6/fv3M6Oho63jk1Vu/fn2fx6iwHPJfvlfcYztlyhRTktmtWzfT4/FY8WHDhplOp9M8evSoaZqnL83p06eP15gjR440JXnNxYgRI3xe4pW3r61btxaZ57333mtGRkaamZmZpmmeeu3ExcWZbdq0MXNycqztpk6dako6p/kujK98Ro8ebRqGYW7fvt2KlfTyvdzcXDMrK8trmyNHjpgJCQle75GNGzeaksxJkyZ5bXvttdeadevWtebMn7olmQ6Hw/zll1+KnX+es9Vdks+cJ5980pRkHjt2zCvep08fU5J55MiRQp87a9YsU5L56quvmqZpmjNnzjQlmb/++qtpmqb5+eefm2FhYea1115r3nTTTdbzmjdvXqL3aFJSktc8jh8/3pRkrlu3zuv5t912m9f8l4eaTNM0GzVqZH3+RUVFmU8++eRZL6czzVOvI6fT6fOx+Ph4s1+/fkU+v3nz5mZkZKQZGRlpDhkyxPz444/NIUOGmJIKPLdOnTpWjvn/XHnllQWOSZ7u3bubSUlJZ60DAMozLt8DgHLqyy+/lNPp1P333+8Vf/DBB2Wapr766iuveHJyslq1amX9XLt2bfXu3Vtz5871eYlTfkuXLtUDDzyga6+9Vn/961+1evVqNW3aVE888YTX5Ui+3HTTTdq/f7/XtwR+9NFH8ng8uummm8763JycHM2aNcuKff311zp69KjXc/NfEpSTk6NDhw7poosuUkxMjH788cci91FcM2fOVFJSkho3bqyDBw9af7p06SJJ1uVSMTExkk5dsnEuX0V/tnkyTVMff/yxevXqJdM0vXJJSUlRWlpagZoHDBjg92VTefw9tvfcc4/XJWgdOnSQ2+3W9u3bJUnz589Xbm5ugctthgwZck75+crz2LFjOnjwoDp06KATJ05ow4YNkk5dEnro0CHdfffdXpfa9O/fX5UrV/Yar7jzXZx8MjIydPDgQbVr106maVqrOwLB6XRaK988Ho8OHz6s3NxctW7d2mt+Lr74YrVt21bvv/++FTt8+LC++uor9e/f35ozf+vu2LGjLrnkkoDVk6cknzmHDh2Sy+VSVFSUV/zYsWOSpIoVKxb63LzH8rbt0KGDJFmX0H733Xdq06aNrr76an333XeSTq3yWb9+vbXtubxH77jjDq8VjHljbdmyxYp5PB7NmTPHunSvPNSUZ8qUKZozZ44mTpyopKQknTx58qz/LkmnLu8sbOVneHj4WV8rx48f14kTJ3T77bfr1Vdf1fXXX69XX31V9957r6ZPn67ff//da/u2bdtq3rx5mjdvnr744gs999xz+uWXX3Tttdf63FflypWtlVUAcKGiKQUA5dT27duVmJhY4GQk71KLvCZAnoYNGxYY4+KLL9aJEycK3PPnbEJDQzV48GAdPXpUq1evLnLba665RtHR0V6Xb82YMUMtW7bUxRdfXORzW7RoocaNGxd4bpUqVayTZOnUicnTTz9t3VurSpUqio+P19GjR5WWluZXbYX5/fff9csvvyg+Pt7rT14N+/fvl3SqkXbllVfqL3/5ixISEtSvXz99+OGHxW5QnW2eDhw4oKNHj+qNN94okMsdd9zhlUueMy8r8Ye/x7Z27dpeP+c1e44cOSLp9Ovyoosu8touNja2QGPIH7/88ouuu+46RUdHq1KlSoqPj7cu28nLs7B9u1yuApedFXe+C7Njxw4NHDhQsbGxioqKUnx8vHUJa6Bek3nefvttNW/eXOHh4YqLi1N8fLxmz55dYD+33367li5dah2HmTNnKicnR7fddpu1jb91l+S15Q9/PnMKc2Zzxpe8x6pWrSrp1H2wGjZsaDVrvvvuO3Xo0EFXXXWV9uzZoy1btmjp0qXyeDxW0+Vc3qNne99Ipy6lPXDggFdTqqzXlCc5OVkpKSn629/+prlz5+q9997T448/bj1+4MABpaamWn+OHz8u6VTzNzs722fdmZmZZ23G5z1+5rc05l0mumzZMq94lSpV1K1bN3Xr1k09e/bUE088oTfffFPff/+93nzzzQLjm6bp933iAKC84Z5SAIDzolatWpJOrbYoSlhYmPr06aNPPvlEEydO1L59+7R06VI9//zzxdrPTTfdpOeee04HDx5UxYoV9fnnn+vmm2/2WukyZMgQTZkyRUOHDlVycrKio6NlGIb69et31mZQYScMbrdbTqfT+tnj8ahZs2Z6+eWXfW6fdzwiIiK0ePFiLViwQLNnz9acOXM0Y8YMdenSRV9//bXXmOcir55bb721wL228uTdEybPua6Skvw/toXVZ55x8/3iKGpu8jt69Kg6duyoSpUq6ZlnnlGDBg0UHh6uH3/8UY8++ug5rVgr7nwXlt/VV1+tw4cP69FHH1Xjxo1VoUIF7d69WwMHDjynfArz3nvvaeDAgerTp48efvhhVa1aVU6nU6NHj9bmzZu9tu3Xr5+GDRum999/X0888YTee+89tW7dWo0aNbK28bfukry2/FXcz5y4uDjl5ubq2LFjXk37Sy65RJ9++ql+/vlnXXXVVT6fm3ej7/r161ux9u3ba/78+Tp58qRWr16tp59+Wk2bNlVMTIy+++47/fbbb4qKitKll14q6dzeo8V533z55ZeqW7eu18q0sl6TL5UrV1aXLl30/vvv65///KckqU2bNl7/0TJixAiNHDlS1atXl9vt1v79+62mm3TqCwAOHTqkxMTEIveVmJioX375RQkJCV7xvLF8NdDOlHfvq8WLFxdY8XnkyBFVqVLlrGMAQHlGUwoAyqk6derom2++KXDilXepUp06dby2P/MyBEnatGmTIiMjFR8f7/f+8y7BKM5zb7rpJr399tuaP3++fvvtN5mmedZL9/I/d9SoUfr444+VkJCg9PR09evXz2ubjz76SAMGDNBLL71kxTIzM4v17U2VK1f2ud327du9TuIaNGign376SV27dj3r/3w7HA517dpVXbt21csvv6znn39ef//737VgwYIC3wh2puLMU8WKFeV2u886ViCU5Nj6kve6/OOPP7xW2Rw6dKjACWDeyoqjR49al0VKBVcBLly4UIcOHdKsWbO8Tsy3bt1a6L47d+5sxXNzc7Vt2zavk2p/5vtM69at06ZNm/T222973YB63rx5BbYt6SqKjz76SPXr19esWbO8xhoxYkSBbWNjY9WzZ0+9//776t+/v5YuXapx48Z5bVOSus+34n7mNG7cWNKp+c8/p7169dLzzz+vd955x2cDx+12a9q0aUpISPB6vEOHDpoyZYqmT58ut9utdu3ayeFwqH379lYDp127dlYTJj4+/ry8R2fPnq0//elPXrGyXlNhTp486bXS7/333/e6PC7vs7lly5aSTl2am//YrFq1Sh6Px3q8MK1atdK8efO0e/dur+bsnj17JBXv37fc3FxJslZv5bd161a1aNHirGMAQHnG5XsAUE796U9/ktvt1r/+9S+v+CuvvCLDMNSjRw+v+LJly7zu+bFz50599tln6t69e5Grd3xd2nfs2DGNGzdOVapU8br/UWG6deum2NhYzZgxQzNmzNDll19e7Mt+kpKS1KxZM+u51atXL3Dy5XQ6C/zv+2uvvVase5I0aNBAy5cv97oE5IsvvtDOnTu9trvxxhu1e/du/ec//ykwxsmTJ5WRkSHJ9yqOvBOjrKyss+ZztnlyOp3q27evPv74Y61fv77A8/29FPNsSnJsfenatatcLpcmTZrkFT/zdSydmhvp9L1vpFP3Z3r77bcL5Ch5r8DIzs7WxIkTvbZr3bq14uLi9J///Mc6kZROnfCe2RAr7nz74isf0zQ1fvz4AttWqFBBks65yedrXytWrChw2VGe2267Tb/++qsefvhhOZ3OAg3ektQdKCX9zElOTpZ0qjGR3xVXXKHu3btrypQp+uKLLwo87+9//7s2bdqkRx55xGslZt4lbGPHjlXz5s0VHR1txefPn69Vq1ZZ20g6L+/Rffv26ccff/S6dK+s1yT5vgx227Ztmj9/vtc36l155ZXWZXPdunWzmlJdunRRbGxsgc+TSZMmKTIy0ut4HTx4UBs2bNCJEyes2I033ihJmjx5stfz33zzTblcLnXq1OmsNeR9A+KZzae0tDRt3rxZ7dq1O+sYAFCesVIKAMqpXr16qXPnzvr73/+ubdu2qUWLFvr666/12WefaejQodYJfZ6mTZsqJSVF999/v8LCwqwT9lGjRhW5nwkTJujTTz9Vr169VLt2be3du1dvvfWWduzYoXfffbfQm8zmFxISouuvv17Tp09XRkaGdUlGcd100016+umnFR4errvuuksOh/f/ufz5z3/Wu+++q+joaF1yySVatmyZvvnmG8XFxZ117L/85S/66KOPdM011+jGG2/U5s2b9d577xU4frfddps+/PBD/fWvf9WCBQt05ZVXyu12a8OGDfrwww81d+5ctW7dWs8884wWL16snj17qk6dOtq/f78mTpyomjVrqn379mfNpzjzNGbMGC1YsEBt27bV3XffrUsuuUSHDx/Wjz/+qG+++easlzf5oyTH1peEhAQ98MADeumll3Tttdfqmmuu0U8//aSvvvpKVapU8Vqd0717d9WuXVt33XWX1UR56623FB8frx07dljbtWvXTpUrV9aAAQN0//33yzAMvfvuuwWaaaGhoRo5cqSGDBmiLl266MYbb9S2bds0depUNWjQwGvfxZ1vXxo3bqwGDRrooYce0u7du1WpUiV9/PHHPi8Fymuw3H///UpJSfHZKCrKn//8Z82aNUvXXXedevbsqa1bt+r111/XJZdc4nPlRs+ePRUXF6eZM2eqR48eXpc8lbTus9m+fbveffddSacbRs8++6ykU6vY8u5tVdLPnPr166tp06b65ptvdOedd3o99s4776hLly7q3bu3brnlFnXo0EFZWVmaNWuWFi5cqFtvvVXDhg3zes5FF12katWqaePGjV6XZ1111VV69NFHJcmrgSMF/j365ZdfKjw83GuFX1mvSZKaNWumrl27qmXLlqpcubJ+//13TZ48WTk5ORozZsxZnx8REaF//OMfGjRokG644QalpKTou+++03vvvafnnntOsbGx1rb/+te/NGrUKC1YsMBqNl166aW688479dZbbyk3N1cdO3bUwoULNXPmTD3++OMFLv/bvXu33nvvPUmnGt8//fST/v3vf6tKlSoFLt375ptvZJqmevfu7fdxAYByxdbv+gMAnDe+vkL92LFj5rBhw8zExEQzJCTEbNiwofniiy9aX++eR5I5aNAg87333jMbNmxohoWFmZdeeqm5YMGCs+7366+/Nq+++mqzWrVqZkhIiBkTE2N2797dnD9/vl/5z5s3z5RkGoZh7ty506/n/v7779bXby9ZsqTA40eOHDHvuOMOs0qVKmZUVJSZkpJibtiwwaxTp445YMAAa7u8ryo/s+6XXnrJrFGjhhkWFmZeeeWV5qpVq8yOHTt6ffW6aZpmdna2OXbsWLNJkyZmWFiYWblyZbNVq1bmqFGjzLS0NNM0TXP+/Plm7969zcTERDM0NNRMTEw0b775ZnPTpk1nrdOfedq3b585aNAgs1atWmZISIhZrVo1s2vXruYbb7xRoN6ZM2eedd/5cxgxYoT1c3GP7ZQpU0xJ5sqVK73G83XMc3NzzaeeesqsVq2aGRERYXbp0sX87bffzLi4OPOvf/2r1/NXr15ttm3b1gwNDTVr165tvvzyy9a+tm7dam23dOlS84orrjAjIiLMxMRE85FHHjHnzp3rc75fffVVs06dOmZYWJh5+eWXm0uXLjVbtWplXnPNNV7bFWe+C/Prr7+a3bp1M6OioswqVaqYd999t/nTTz+ZkswpU6Z4HYshQ4aY8fHxpmEYBd7jZzrzdenxeMznn3/equfSSy81v/jiC3PAgAFmnTp1fI5x3333mZLMadOm+Xy8uHXnvV6LK++14OtP/poC8Znz8ssvm1FRUeaJEycKPHbs2DFz1KhRZpMmTczw8HArh6eeeqrQ8W644QZTkjljxgwrlp2dbUZGRpqhoaHmyZMnCzynJO/RrVu3er1W/u///s/805/+VGh+ZbEm0zTNESNGmK1btzYrV65sulwuMzEx0ezXr5/5888/F5q3L2+88YbZqFEjMzQ01GzQoIH5yiuvFPh3cMSIET4/D7Kzs82RI0eaderUMUNCQsyLLrrIfOWVVwrso06dOl6vWYfDYVatWtW8+eabzT/++KPA9jfddJPZvn17v+oAgPLIMM1zuLMoAKBcMQxDgwYN8nmJFEqPC3mejh49qsqVK+vZZ5/V3//+d1v37fF4FB8fr+uvv97nZWvlzbBhwzR58mSlpqYqMjIy2OmcF2lpaapfv75eeOEF3XXXXUVuu3v3brVr1065ublatmxZgW+NC7bc3FzFxcVp9OjRuu+++4r1nNJeU3mXmpqqevXqafr06ayUAnDB455SAACgVMl/w+I8eTfcLs49XEoiMzOzwGV977zzjg4fPnze910aZGZm6r333lPfvn3LbUNKkqKjo/XII4/oxRdfPOu3HdaoUUNz5sxRZmamevToUaxvXLPT4cOHNWzYMF133XXFfk5pr6m8GzdunJo1a0ZDCgAksVIKAHBBr8ApSy6UeZo6daqmTp2qP/3pT4qKitKSJUv0wQcfqHv37po7d+553ffChQs1bNgw3XDDDYqLi9OPP/6oyZMnKykpSatXry7WPdLKov379+ubb77RRx99pE8//VQ//vjjWb+ZDAAAoKS40TkAAChVmjdvLpfLpRdeeEHp6enWzc/zbnp9PtWtW1e1atXSq6++qsOHDys2Nla33367xowZU24bUpL066+/qn///qpatapeffVVGlIAAMAWQV0p5Xa7NXLk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XnvlsaaMjAwVh2Hmb7X54cSJE9qxY4eys7O94mfeF6owO3fuVOvWrTVv3jzrOZ06dVLLli01btw4TZs2TXfccYfXqidJuvzyy9W5c2eNHTvW57i+VkrVqlVLhw4dsu53VVRnsnN0r4CslArr0TYgK6UONvMEZKVUxyvSlN+5rpR6pdNLXnE6yNRETdRETdRETdRETdRETdRUHmpKSbg+ICulwlLaBGSl1P4mnoCslEpue6TEK6Ve6vRiqZmn/PHy8torjzWlp6crLi5OaWlpRd573O9v3ztw4IDuuOMOffXVVz4fP7PAwqxevVr79+/XZZdd5vXcxYsX61//+pfmzp2r7OxsHT161Gu11L59+1StWrVCxw0LC1NYWFiBuMvlksvlXW7egStQQ47vGgqL52YXEnf77vf5ipum77hHksdH37CwuNs05Ssbj+HxEfU/fuYxLCpuGIbPeGHH3d943puquHF/ci8sTk3UJFFTYTn6G6cmapKoqbAc/Y1TEzVJ1FRYjv7GqenCrSn/eV1Jzgmd+c7rSnJOmPu/872SnhOaxv/GKcE5Yf5jHex5yq+8vPbyKy81Fbb/As8p1lb5DB06VEePHtWKFSsUERGhOXPm6O2331bDhg31+eefF3ucrl27at26dVq7dq31p3Xr1urfv7/195CQEM2fP996zsaNG7Vjxw4lJyf7mzYAAAAAAABKEb9XSn377bf67LPP1Lp1azkcDtWpU0dXX321KlWqpNGjR6tnz57FGqdixYpq2rSpV6xChQqKi4uz4nfddZeGDx+u2NhYVapUSUOGDFFycjLfvAcAAAAAAFDG+d2UysjIUNWqVSVJlStX1oEDB3TxxRerWbNm+vHHHwOa3CuvvCKHw6G+ffsqKytLKSkpmjhxYkD3AQAAAAAAAPv53ZRq1KiRNm7cqLp166pFixb697//rbp16+r1119X9erVS5TMwoULvX4ODw/XhAkTNGHChBKNCwAAAAAAgNLF76bUAw88oL1790qSRowYoWuuuUbvv/++QkNDNXXq1EDnBwAAAAAAgHLI76bUrbfeav29VatW2r59uzZs2KDatWurSpUqAU0OAAAAAAAA5ZPf3763ZMkSr58jIyN12WWX0ZACAAAAAABAsfndlOrSpYvq1aunJ554Qr/++uv5yAkAAAAAAADlnN9NqT179ujBBx/UokWL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rStJuu6666w8pdMrB959913VrVtX0dHR6tevn44dOxaQvEq7/Jfv5c3b4MGDFR0drSpVquipp55S/i+OrVu3rp5//nndeeedqlixomrXrq033njjnPad9z//06dPV7t27RQeHq6mTZtq0aJF1jZut1t33XWX9VnfqFEjjR8/3mcN//znP1W9enXFxcVp0KBBysnJOae8yprZs2crOjpa77//vtatW6cuXbpYn6v33HOP13ss71g999xzSkxMVKNGjQKWx+bNm9W7d28lJCQoKipKbdq00TfffOO1TXFeP99//71atmyp8PBwtW7dWp9++mm5vCz4bO+3I0eO6Pbbb1flypUVGRmpHj166Pfff7een/c/8p9//rkuueQShYWFaceOHSXKid9diq+w3wUkafXq1YX+HlCc94kvTqdT1apVs/5ERUXJ5XJ5xSIiIqzt586dq6SkJEVFRemaa67R3r17rcfO9u+ldOGsan3jjTeUmJhYoKHbu3dv3XnnnT5XF7755ptKSkpSeHi4GjdurIkTJwYkF37/LJzH49ELL7ygiy66SGFhYapdu7aee+456/eIDz/8UB06dFBERITatGmjTZs2aeXKlWrdurWioqLUo0cPHThwwBrPrt8bAvHvYnZ2tgYPHqzq1asrPDxcderU0ejRowOaZ7Dl/z2mqH+HpFP/Nvbv31/x8fGKiIhQw4YNNWXKlGLva+bMmbrkkkv02GOPafHixdq5c6fX44X9nnS2vPIsXbpUzZs3V3h4uK644gqtX7/+HI/K+UNTKoBGjx6td955R6+//rp++eUXDRs2TLfeeqvXyczf//53vfTSS1q1apVcLpfuvPNO67H3339fzz33nMaOHavVq1erdu3amjRpUsDyy8nJ0T/+8Q/99NNP+vTTT7Vt2zbrl7datWrp448/liRt3LhRe/fu9TrJevvtt1WhQgWtWLFCL7zwgp555hnNmzcvYLmVBnv37tXNN9+sO++8U7/99psWLlyo66+/3vplfP78+Vb8gw8+0KxZszRq1Cjr+RkZGRo+fLhWrVql+fPny+Fw6LrrrgvI/xJnZmaqVatWmj17ttavX6977rlHt912m3744QdJpy53Sk5O1t13323972StWrWs5xf1uiuPxo8fr2eeeUY1a9bU3r17tXLlSkmnXsehoaFaunSpXn/9dUmSw+HQq6++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yM3NxenTpxs8j+fbpiJUvqGbmp0hQ4agS5cuOHjw4LsuynvNx8cHT58+xQ8//PCui0LU6o0bNw5qamo4dOgQBg4cCBsbG2zcuPGt5JWbm4uuXbsiOTkZDg4OyM7ORo8ePZCamgobG5u3kie1fFFRUZg8eTKePXvWqkZzvO36RkRERFQVb99rRoqKirBjxw64ublBTU0NR44cQXx8POLi4t510YiI3rrS0lJkZmbi559/xvTp099qXoIg4MGDBwgJCYGRkREsLS3fan7Ush04cACmpqYwNjbGjRs34O/vj7Fjx7aqDikiIiKid6F1jLFrJVRUVHDmzBk4OzvD3t4ep0+fxokTJzB48GAAkDzqteorMTHxHZee6rJmzZpaz13F7YHU/AwbNqzW87ZmzZp3XbxW59atW3BwcEDv3r0xY8YMpRyztrqnra2NHj164PLly4iOjm6Vt2G1VImJiXW2d+9Cbm4uJkyYAJlMBl9fX4wZMwa7du16J2VpaRi7tGzNsT6S4hh/tg6shy0T65/iePteC5KVlVXrNmNjY16xbcaePHmCJ0+e1LhNQ0MDxsbGTVwiUsTvv/+O4uLiGrfp6+u/F5N5tnSsey1PcXExfv/991q3V33cNTVvjF1aNtbHlo1tYOvAetgysf4pjp1SRERERERERETU5Hj7HhERERERERERNTl2ShERERERERERUZNjpxQRERERERERETU5dkoREREREREREVGTY6cUERERERERERE1OXZKEREREdXAx8cHI0eOfNfFICIiImq12ClFRERERERERERNjp1SRERERA0UFhYGKysrdOjQAd26dcOsWbNQWFgobo+MjETHjh1x7tw5yGQyaGlpYejQofjvf/8rpiktLcXcuXPRsWNHGBgYwN/fH97e3pLRWd27d8fGjRsledvY2OCbb75RuCwAEBERgW7dukFTUxOjRo1CWFgYOnbsKEnzj3/8A3Z2dmjfvj1MTU2xcuVKlJaWNvqzIiIiIqoNO6WIiIiIGkhVVRWbN2/G7du3sX//fly4cAGLFy+WpCkqKkJISAgOHjyIS5cuIScnB35+fuL2devWISoqCvv27UNSUhIKCgrwww8/KL0sSUlJmDFjBubNm4e0tDQMGTIEq1evlhwjMTERkyZNwrx583Dnzh3s3LkTkZGR1dIRERERKZOKIAjCuy4EERERUXPj4+ODp0+fKtRRdPz4ccyYMQOPHz8G8Hqk1OTJk5GVlYWePXsCALZt24ZVq1YhNzcXANClSxf4+fmJHVVlZWUwNTWFra2tmGf37t0xf/58zJ8/X8zLxsYGI0eOlIyWqqssX375JQoLCxETEyOmmTBhAmJiYvD06VMAwODBg+Hq6oqlS5eKaQ4dOoTFixfjP//5T73vn4iIiOhNtHnXBSAiIiJqaeLj47F27VrcvXsXBQUFKC0txR9//IGioiJoamoCADQ1NcUOKQDo2rUr/ve//wEAnj17hocPH6Jfv37idjU1Ndjb26O8vFypZcnIyMCoUaMk+/Tr10/SSXXjxg0kJSVJRkaVlZVVe09EREREysTb94iIiIgaIDs7Gx4eHujTpw9OnDiBlJQUbN26FQDw8uVLMV3btm0l+6moqKChA9RVVVWr7fPq1asGl6U+hYWFWLlyJdLS0sTXzZs3ce/ePbRv375BZSYiIiJSFEdKERERETVASkoKysvLERoaClXV19f3jh492qBj6OrqwsjICMnJyXB2dgbwemTS9evXYWNjI6YzNDSUTI5eUFCA+/fvN6gsFhYWSE5OlqyrumxnZ4eMjAyYmZk16H0QERERNQY7pYiIiIhq8ezZM6SlpUnWderUCa9evUJ4eDjkcjmSkpKwY8eOBh97zpw5WLt2LczMzPCnP/0J4eHhyM/Ph4qKiphm0KBBiIyMhFwuR8eOHREYGAg1NTVxu5mZWb1lmTNnDpydnREWFga5XI4LFy7g7NmzknwCAwPh4eGBjz76CKNHj4aqqipu3LiBW7du4dtvv23weyMiIiJSBG/fIyIiIqrFTz/9BFtbW8nr4MGDCAsLw7p162BpaYmoqCisXbu2wcf29/fHuHHjMGnSJDg6OkJLSwtubm6S2+WWLl0KFxcXeHh4YPjw4Rg5cqRknipra+t6y+Lk5IQdO3YgLCwM1tbW+PHHH+Hr6yvJx83NDTExMTh//jz69u2LTz75BBs2bICJickbfGpEREREiuHT94iIiIiagfLycshkMowdOxZBQUFvNa9p06bh7t27SExMfKv5EBEREdWFt+8RERERvQMPHjzA+fPn4eLigpKSEmzZsgX379/H+PHjlZ5XSEgIhgwZgg4dOuDs2bPYv38/tm3bpvR8iIiIiBqCnVJERERE74CqqioiIyPh5+cHQRBgaWmJ+Ph4yGQypef1z3/+E9999x2eP38OU1NTbN68GVOnTlV6PkREREQNwdv3iIiIiIiIiIioyXGicyIiIiIiIiIianLslCIiIiIiIiIioibHTikiIiIiIiIiImpy7JQiIiIiIiIiIqImx04pIiIiIiIiIiJqcuyUIiIiIiIiIiKiJsdOKSIiIiIiIiIianLslCIiIiIiIiIioibHTikiIiIiIiIiImpy/wdRm0RaTWJXyQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAsQJJREFUeJzs3Xl8VNX9//H3nZmsLAkJIYBhFwFZFRBREQQkUooL/FQU61JrbQuouNTauoBfFZeqqEXsYsG1IopaRUFEQEVEQVBQAWWVfU3Yss3c8/sjnZtMZibJJGEmhNfz8cjjQT5z595z7ufey5xPzr1jGWOMAAAAAAAAgChyxboBAAAAAAAAOPFQlAIAAAAAAEDUUZQCAAAAAABA1FGUAgAAAAAAQNRRlAIAAAAAAEDUUZQCAAAAAABA1FGUAgAAAAAAQNRRlAIAAAAAAEDUUZQCAAAAAABA1FGUAgDgfxYuXCjLsrRw4cJYN6XWsixLEyZMiHUzEMaAAQM0YMCAWDfjuPDoo4+qY8eOsm071k3BCeZPf/qT+vTpE+tmAECtQFEKAI5TlmVV6icaBZZw23744YeP+baBuuz9998/IYqAtm1r+vTpuvDCC9WiRQvVq1dPXbp00QMPPKD8/PyQ73n++efVqVMnJSYmqn379nrmmWcqvb2DBw/qkUce0Z133imXK/Dj8JEjR/R///d/6tatm5KTk5WSkqJ+/frppZdekjGmWv2MhlWrVsmyLH355ZdO7Hjt01tvvaXs7Gw1b95cCQkJysrK0v/7f/9Pq1evjmg91TlWJOnrr7/WhRdeqLS0NCUnJ6tLly56+umnA5Zp3bp1wP9//m3dcccd2r9/f8Cyt9xyi7755hv997//jagdAFAXeWLdAABA1bz00ksBv7/44ouaN29eULxTp05Rac/555+vq6++OiB22mmnRWXbQF31/vvva8qUKXW+MHX06FFdd911OvPMM/W73/1OTZo00ZIlS3Tfffdp/vz5+vjjj2VZlrP83//+d/3ud7/TyJEjdeutt+rTTz/VTTfdpKNHj+rOO++scHv//ve/5fV6dcUVVwTEd+3apUGDBumHH37QqFGjNHbsWOXn5+vNN9/U1VdfrTlz5uill14KKmTVJrNnz1aTJk3Uu3dvScd3n1atWqVGjRrp5ptvVuPGjbVz5079+9//1hlnnKElS5aoe/fuFa6jusfKhx9+qOHDh+u0007TPffco/r162v9+vXaunVr0LI9evTQbbfdJknKz8/X8uXLNXnyZC1atCigSNi0aVNddNFF+utf/6oLL7wwgj0CAHWQAQDUCWPGjDGxuqxLMmPGjInJtmvSggULjCSzYMGCWDclZvLy8ozP5wv7uiRz3333Ra9BJ7hIz+v+/fub/v37H7sGVYPP5zN5eXkhXysoKDCLFy8Oik+cONFIMvPmzXNiR48eNenp6WbYsGEBy44ePdrUq1fP7N+/v8K2dOvWzVx11VVB8ezsbONyucw777wT9Nrtt99uJJlHH320wvXHUr9+/cw111zj/F4X+lTazp07jcfjMTfeeGOFy1b3WMnNzTWZmZnmkksuKfe6aIwxrVq1CtqOMSX7eN26dQHxN954w1iWZdavX19hPwCgLqt9fxIBANSYI0eO6LbbblOLFi2UkJCgDh066K9//WvQ7RqWZWns2LF65ZVX1KFDByUmJqpnz5765JNPItpeXl5e2FttQnnjjTdkWZYWLVoU9Nrf//53WZYV9jaNZcuWybIsvfDCC0GvzZ07V5Zl6b333pMkbd68WX/4wx/UoUMHJSUlKT09XZdeeqk2bdpUYRtbt26ta6+9Nige6tk9BQUFuu+++3TyyScrISFBLVq00B//+EcVFBQELDdv3jydc845Sk1NVf369dWhQwf9+c9/rrAtkeRp27Zt+vWvf63MzEwlJCSoc+fO+ve//x2wjP8ZWq+99pruvvtunXTSSUpOTtbBgwcrbItfZfft9OnTZVmWFi9erFtvvVUZGRmqV6+eLrnkEu3ZsydgWdu2NWHCBDVv3lzJyck677zz9P333wflYsKECQGzZ8puq3Qb3nnnHQ0bNsy5Dahdu3b6v//7P/l8vqD3T5kyRW3btlVSUpLOOOMMffrpp9XKdyiffvqpLr30UrVs2dJ57/jx45WXl+csc+2112rKlCmSAm+RjURhYaHuvfde9ezZUykpKapXr5769eunBQsWOMsYY9S6dWtddNFFQe/Pz89XSkqKbrzxxoj7Xfp47dy5sxISEjRnzpyQ7YyPj9dZZ50VFL/kkkskST/88IMTW7Bggfbt26c//OEPAcuOGTNGR44c0ezZs8vdJxs3btS3336rwYMHB8S/+OILzZ07V9dee23I2SuTJk1S+/bt9fDDDzt5Ov300zVixIiA5bp27SrLsvTtt986sRkzZsiyrIB+RHKOvv7663rwwQeVlZWlxMREDRo0SD/99FNQG3NycvT5559r2LBhdaZPZTVp0kTJycnKycmpcNnqHiuvvvqqdu3apQcffFAul0tHjhyJ+BlkTZs2lSR5PIE3qPiPv3feeSei9QFAXcPtewBQRxljdOGFF2rBggW6/vrr1aNHD82dO1d33HGHtm3bpieffDJg+UWLFmnGjBm66aablJCQoGeffVYXXHCBvvzyS3Xp0qXC7U2fPl3PPvusjDHq1KmT7r77bl155ZXlvmfYsGGqX7++Xn/9dfXv3z/gtRkzZqhz585ht92rVy+1bdtWr7/+uq655pqg9zZq1EjZ2dmSpK+++kqff/65Ro0apaysLG3atElTp07VgAED9P333ys5ObnC/lXEtm1deOGF+uyzz/Tb3/5WnTp10qpVq/Tkk09q3bp1evvttyVJ3333nX75y1+qW7duuv/++5WQkKCffvpJixcvrtR2KpOnXbt26cwzz3SKAhkZGfrggw90/fXX6+DBg7rlllsC1vl///d/io+P1+23366CggLFx8dXut+R7ttx48apUaNGuu+++7Rp0yZNnjxZY8eO1YwZM5xl7rrrLj366KMaPny4srOz9c033yg7OzuigmdZ06dPV/369XXrrbeqfv36+vjjj3Xvvffq4MGDeuyxx5zlpk6dqrFjx6pfv34aP368Nm3apIsvvliNGjVSVlaWs1xl8x3OzJkzdfToUf3+979Xenq6vvzySz3zzDPaunWrZs6cKUm68cYbtX379pC35VbWwYMH9a9//UtXXHGFbrjhBh06dEjPP/+8srOz9eWXX6pHjx6yLEtXXXWVHn30Ue3fv19paWnO+999910dPHhQV111VZX6/fHHH+v111/X2LFj1bhxY7Vu3Tqi9u/cuVOS1LhxYye2YsUKScXXgNJ69uwpl8ulFStWOO0N5fPPP5dUXHwp7d1335WkoNuQ/Twej6688kpNnDhRn3/+uQYNGqR+/frpP//5j7PM/v379d1338nlcunTTz9Vt27dJBUXITMyMpzbqSM9Rx9++GG5XC7dfvvtys3N1aOPPqrRo0dr6dKlAcv5C/JDhgypM32SiottRUVF2rlzpyZPnqyDBw9q0KBBIftUWnWPlY8++kgNGzbUtm3bdPHF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/K+X/ZZG/63pS5YsCYg3btxYgwcP1uDBgzVs2DD9+c9/1r/+9S99/vnn+te//hW0fmNMxM+JA4C6hmdKAQCOiRYtWkgqnm1RnoSEBF188cV666239Oyzz2rXrl1avHixHnrooUpt5/LLL9eDDz6ovXv3qkGDBvrvf/+rK664ImCmy7hx4zRt2jTdcsst6tu3r1JSUmRZlkaNGlVhMSjcgMHn88ntdju/27atrl276oknngi5vH9/JCUl6ZNPPtGCBQs0e/ZszZkzRzNmzNDAgQP14YcfBqyzKvz9ueqqq4KeteXnfyaMX1UH8VLk+zZc/0yZh+9XRnm5KS0nJ0f9+/dXw4YNdf/996tdu3ZKTEzU119/rTvvvLNKM9Yqm+9w7Tv//PO1f/9+3XnnnerYsaPq1aunbdu26dprr61Se8J5+eWXde211+riiy/WHXfcoSZNmsjtdmvSpElav359wLKjRo3S+PHj9corr+jPf/6zXn75ZfXq1UsdOnRwlom031U5tubNm6err75aw4YN03PPPRf0erNmzeTz+bR7926nkCIVP9R93759at68ebnrT09Pl9fr1aFDhwKK9qeeeqrefvttffvttzr33HNDvtf/oO+2bds6sXPOOUfz589XXl6eli9frnvvvVddunRRamqqPv30U/3www+qX7++TjvtNElVO0crc968//77at26dcDMtOO9T6E0atRIAwcO1CuvvKK//vWvkqTevXsH/KHlvvvu04QJE6p9rDRv3lzfffedMjMzA+L+dYUqoJXlf/bVJ598EjTj88CBAwHPSwOAExFFKQCoo1q1aqWPPvooaODlv1WpVatWAcuXvQ1BktatW6fk5GRlZGREvH3/LRiVee/ll1+uF154QfPnz9cPP/wgY0yFt+6Vfu/EiRP15ptvKjMzUwcPHtSoUaMClnnjjTd0zTXX6PHHH3di+fn5lfr2pkaNGoVcbvPmzQGDuHbt2umbb77RoEGDKvzLt8vl0qBBgzRo0CA98cQTeuihh/SXv/xFCxYsCPpGsLIqk6cGDRrI5/NVuK6aUJ19G4r/uPzpp58CZtns27cvaADon1mRk5MTcHtX2VmACxcu1L59+zRr1qyAgfnGjRvDbvu8885z4l6vV5s2bQoYVEeS77JWrVqldevW6YUXXgh4APW8efOClq3uLIo33nhDbdu21axZswLWdd999wUtm5aWpmHDhumVV17R6NGjtXjxYk2ePDlgmer0uzKWLl2qSy65RL169dLrr78e9I1lktSjRw9Jxbdb/uIXv3Diy5Ytk23bzuvhdOzYUVJx/kvndPjw4XrooYf04osvhizg+Hw+vfrqq8rMzAx4vV+/fpo2bZpee+01+Xw+nXXWWXK5XDrnnHOcAs5ZZ53lFGEyMjKOyTk6e/bsgP1RF/oUTl5eXsBMv1deeSXg9jj/tbm6x0rPnj01b948bdu2LaA4u337dkmV+//N6/VKkjN7q7SNGzeqe/fuFa4DAOoybt8DgDrqF7/4hXw+n/72t78FxJ988klZlqWhQ4cGxJcsWRLwzI+ff/5Z77zzjoYMGVLu7J1Qt/YdOnRIkydPVuPGjQOefxTO4MGDlZaWphkzZmjGjBk644wzKn3bT6dOndS1a1fnvc2aNQsafLnd7qC/vj/zzDOVeiZJu3bt9MUXXwTcAvLee+/p559/Dljusssu07Zt2/TPf/4zaB15eXk6cuSIpNAzx/wDo4KCggrbU1Ge3G63Ro4cqTfffFOrV68Oen+kt2JWpDr7NpRBgwbJ4/Fo6tSpAfGyx7FUnBup5Nk3UvHzmV544YWgNkqBMzAKCwv17LPPBizXq1cvpaen65///KczkJSKB7xlC2KVzXcoodpjjNFTTz0VtGy9evUkqcpFvlDbWrp0adBtR36/+tWv9P333+uOO+6Q2+0OKvBWp98V+eGHHzRs2DC1bt1a7733XthZVgMHDlRaWlrQMTJ16lQlJycH3L4WSt++fSUVFyZKO/PMMzVkyBBNmzZN7733XtD7/vKXv2jdunX64x//GFAs89/C9sgjj6hbt25KSUlx4vPnz9eyZcucZSQdk3N0165d+vrrr4P6fjz3SQp9G+ymTZs0f/78gG/UO/vss53b5gYPHuwUpSI5Vvbu3as1a9bo6NGjTuyyyy6TJD3//PMB7//Xv/4lj8ejAQMGVNgH/zcgli0+5ebmav369TrrrLMqXAcA1GXMlAKAOmr48OE677zz9Je//EWbNm1S9+7d9eGHH+qdd97RLbfc4gzo/bp06aLs7GzddNNNSkhIcAbsEydOLHc7U6ZM0dtvv63hw4erZcuW2rFjh/79739ry5Yteumll8I+ZLa0uLg4jRgxQq+99pqOHDni3JJRWZdffrnuvfdeJSYm6vrrr5fLFfg3l1/+8pd66aWXlJKSolNPPVVLlizRRx99pPT09ArX/Zvf/EZvvPGGLrjgAl122WVav369Xn755aD996tf/Uqvv/66fve732nBggU6++yz5fP5tGbNGr3++uuaO3euevXqpfvvv1+ffPKJhg0bplatWmn37t169tlnlZWVpXPOOafC9lQmTw8//LAWLFigPn366IYbbtCpp56q/fv36+uvv9ZHH31U4S2VkajOvg0lMzNTN998sx5//HFdeOGFuuCCC/TNN9/ogw8+UOPGjQNm5wwZMkQtW7bU9ddf7xRR/v3vfysjI0NbtmxxljvrrLPUqFEjXXPNNbrppptkWZZeeumloGJafHy8JkyYoHHjxmngwIG67LLLtGnTJk2fPl3t2rUL2HZl8x1Kx44d1a5dO91+++3atm2bGjZsqDfffDPkrUD+ou5NN92k7OzskIWi8vzyl7/UrFmzdMkll2jYsGHauHGjnnvuOZ166qkhZ24MGzZM6enpmjlzpoYOHRpwy1N1+12eQ4cOKTs7WwcOHNAdd9yh2bNnB7zerl07p5iUlJSk//u//9OYMWN06aWXKjs7W59++qlefvllPfjgg0pLSyt3W23btlWXLl300Ucf6de//nXAay+++KIGDhyoiy66SFdeeaX69eungoICzZo1SwsXLtRVV12l8ePHB7zn5JNPVtOmTbV27dqA27POPfdc3XnnnZIUUMCRav4cff/995WYmBgww+9475Mkde3aVYMGDVKPHj3UqFEj/fjjj3r++edVVFSkhx9+uML3R3Ks/O1vf9PEiRO1YMECp9h02mmn6de//rX+/e9/y+v1qn///lq4cKFmzpypu+66K+j2v23btunll1+WVFz4/uabb/T3v/9djRs3Drp176OPPpIxRhdddFHE+wUA6pSoftcfAOCYCfXV8YcOHTLjx483zZs3N3FxcaZ9+/bmsccec77e3U+SGTNmjHn55ZdN+/btTUJCgjnttNPMggULKtzuhx9+aM4//3zTtGlTExcXZ1JTU82QIUPM/PnzI2r/vHnzjCRjWZb5+eefI3rvjz/+6Hz99meffRb0+oEDB8x1111nGjdubOrXr2+ys7PNmjVrTKtWrcw111zjLOf/qvKy/X788cfNSSedZBISEszZZ59tli1bZvr37x/w1evGGFNYWGgeeeQR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qaCgQLfffrtOOukk1atXT3369NHChQud9+3bt09XXHGFTjrpJCUnJ6tr1676z3/+47x+7bXXatGiRXrqqaecmWGbNm0KeXvh22+/HfBQ8gkTJqhHjx7617/+pTZt2igxMVGSlJOTo9/85jfKyMhQw4YNNXDgQH3zzTcR7Q8AAHBioygFAABOeE899ZQef/xx/fWvf9W3336r7OxsXXjhhfrxxx8Dlrvjjjt02223acWKFerbt6+GDx+uffv2VWobP//8s/r166cuXbrojTfeUEJCQtAys2bN0g033KC+fftqx44dmjVrliRp7NixWrJkiV577TV9++23uvTSS3XBBRc47cvPz1fPnj01e/ZsrV69Wr/97W/1q1/9Sl9++aXTv759++qGG27Qjh07tGPHDrVo0aLS++enn37Sm2++qVmzZmnlypWSpEsvvVS7d+/WBx98oOXLl+v000/XoEGDtH///kqvFwAAnNgoSgEAgBPeX//6V915550aNWqUOnTooEceeUQ9evTQ5MmTA5YbO3asRo4cqU6dOmnq1KlKSUnR888/X+H6165dq7PPPlvZ2dmaNm2a3G53yOXS0tKUnJys+Ph4NW3aVGlpadqyZYumTZummTNnql+/fmrXrp1uv/12nXPOOZo2bZok6aSTTtLtt9+uHj16qG3btho3bpwuuOACvf7665KklJQUxcfHKzk52ZkdFq4NoRQWFurFF1/Uaaedpm7duumzzz7Tl19+qZkzZ6pXr15q3769/vrXvyo1NVVvvPFGpdcLAABObDxTCgAAnNAOHjyo7du36+yzzw6In3322UG3o/Xt29f5t8fjUa9evfTDDz9Ikjp37qzNmzdLkvr166cPPvhAkpSXl6d+/frpyiuvDCpyVcaqVavk8/l0yimnBMQLCgqUnp4uSfL5fHrooYf0+uuva9u2bSosLFRBQYGSk5Mj3l4orVq1UkZGhvP7N998o8OHDzvb98vLy9P69etrZJsAAKDuoygFAABQA95//30VFRVJkpKSkpx4QkKCBg8erPfee0933HGHTjrppIjWe/jwYbndbi1fvjxodpP/4eyPPfaYnnrqKU2ePFldu3ZVvXr1dMstt6iwsLDcdbtcLhljAmL+PpRWr169oDY1a9Ys4LlWfmWfUQUAABAORSkAAHBCa9iwoZo3b67Fixerf//+Tnzx4sU644wzApb94osvdO6550qSvF6vli9frrFjx0oqnk0Uisvl0ksvvaQrr7xS5513nhYuXKjmzZtXun2nnXaafD6fdu/erX79+oVcZvHixbrooot01VVXSZJs29a6det06qmnOsvEx8fL5/MFvC8jI0OHDh3SkSNHnMKT/5lR5Tn99NO1c+dOeTwetW7dutJ9AQAAKI1nSgEAgBPeHXfcoUceeUQzZszQ2rVr9ac//UkrV67UzTffHLDclClT9NZbb2nNmjUaM2aMDhw4oF//+tcVrt/tduuVV15R9+7dNXDgQO3cubPSbTvllFM0evRoXX311Zo1a5Y2btyoL7/8UpMmTdLs2bMlSe3bt9e8efP0+eef64cfftCNN96oXbt2BayndevWWrp0qTZt2qS9e/fKtm316dNHycnJ+vOf/6z169fr1Vdf1fTp0yts0+DBg9W3b19dfPHF+vDDD7Vp0yZ9/vnn+stf/qJly5ZVum8AAODERlEKAACc8G666Sbdeuutuu2229S1a1fNmTNH//3vf9W+ffuA5R5++GE9/PDD6t69uz777DP997//VePGjSu1DY/Ho//85z/q3LmzBg4cqN27d1e6fdOmTdPVV1+t2267TR06dNDFF1+sr776Si1btpQk3X333Tr99NOVnZ2tAQMGqGnTprr44osD1nH77bfL7Xbr1FNPVUZGhrZs2aK0tDS9/PLLev/999W1a1f95z//0YQJEypsj2VZev/993Xuuefquuuu0ymnnKJRo0Zp8+bNyszMrHS/AADAic0yZR8kUMccPHhQKSkpys3NVcOGDStcvn+DYTWy3YRf9KmR9ezuatfIelbePaFG1gMcazV1Di46NLtG1oPI1LZr6Icz7q2R9eD4kZ+fr40bN6pNmzZKTEyssfVu2rRJbdq00YoVK9SjR48aW++J5FjlBgBqCp9jjm+MI2qXytZimCkFAAAAAACAqKMoBQAAAAAAgKjj2/cAAAAq0Lp1a9XxJx4AAABEHTOlAAAAAAAAEHUUpQAAAAAAABB1FKUAAAAAAAAQdRSlAAAAAAAAEHUUpQAAAAAAABB1FKUAAAAAAAAQdRSlAAAAAAAAEHWeWDcAAADgeNa/wbCobWvRodkRv+eTTz7RY489puXLl2vHjh166623dPHFF9d84wAAACLETCkAAIA67MiRI+revbumTJkS66YA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fhXnZKyum58p5xSadSn5STnXkLL/Semraj6n1syporpmhtU5J9TMsDrnhOo+S3XPCQWZfpZa65FQ1zwPNHSOZ6yue06o3ncfRR9WSn5SzjUqy0/qOWFl+Uk9J6xyfjp9HdnfA2OW2p+M7c+6rDooVVhYiAsXLoi3L126hJMnT8LT0xP+/v6YOHEi3n77bQQFBaFp06aYOXMmGjduLM6mIiIiIiIiIiIi22TVQanjx4/j2Wcffu908uTJAID4+HikpqYiKSkJRUVFGDlyJG7fvo2nn34ae/bsgaOjo7FVEhERERERERGRDbDqoFSXLl1Q0SWtZDIZ5s2bh3nz5lmwVURERERERERE9KjpfwmQiIiIiIiIiIjoEeOgFBERERERERERWRwHpYiIiIiIiIiIyOI4KEVERERERERERBZn1QudExERPU6unH628oUk8As7ZJb1EBERERFZE2dKERERERERERGRxXFQioiIiIiIiIiILI6DUkREREREREREZHEclCIiIiIiIiIiIovjoBQREREREREREVkcB6WIiIiIiIiIiMjiOChFREREREREREQWx0EpIiIiIiIiIiKyOA5KERERERERERGRxXFQioiIiIiIiIiILI6DUkREREREREREZHEclCIiIiIiIiIiIovjoBQREREREREREVkcB6WIiIiIiIiIiMjiOChFREREREREREQWx0EpIiIiIiIiIiKyOA5KERERERERERGRxXFQioiIiIiIiIiILI6DUkREREREREREZHEclCIiIiIiIiIiIovjoBQREREREREREVkcB6WIiIiIiIiIiMjiOChFREREREREREQWx0EpIiIiIiIiIiKyODtrN4CIiIiIiIhqtyunnzXLevzCDpllPURUM3CmFBERERERERERWRwHpYiIiIiIiIiIyOI4KEVERERERERERBbHQSkiIiIiIiIiIrI4DkoREREREREREZHFcVCKiIiIiIiIiIgsjoNSRERERERERERkcRyUIiIiIiIiIiIii+OgFBERERERERERWZydtRtARERERGQJV04/a5b1+IUdMst6iIiIHnecKUVERERERERERBbHQSkiIiIiIiIiIrI4DkoREREREREREZHFcVCKiIiIiIiIiIgsjoNSRERERERERERkcRyUIiIiIiIiIiIii+OgFBERERERERERWRwHpYiI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+Kw8OhyUMqNFixbhk08+werVq3H27FlMmjQJgwcP1jqZmTFjBpKTk3H8+HHY2dlh2LBh4n1paWlYsGABlixZgqysLPj7+2PVqlVma19paSnmz5+PU6dOYceOHcjNzRU7b35+fvjiiy8AADk5Obh69arWSdbGjRtRt25dHDt2DO+88w7mzZuH/fv3m61tNcHVq1cxYMAADBs2DOfOncO3336LF154QeyMp6eni/XNmzfj3//+N+bOnSs+vqioCJMnT8bx48eRnp4OuVyOfv36meVT4gcPHiAyMhK7du3CmTNnMHLkSLz66qv46aefAJR/3Sk6OhojRowQP5308/MTH1/R6642Wr58OebNm4cmTZrg6tWryMzMBFD+Ora3t0dGRgZWr14NAJDL5Xj//fdx9uxZbNy4EQcPHkRSUpJZ2nH37l3Ex8fjyJEj+PHHHxEUFIRevXqJg0vqdm3YsEGrnUB5p2HHjh3YuXMndu7cie+++w6LFy82S7tszcaNG2FnZ4effvoJy5cvR0pKCtatW6e1THJyMqKiopCdnY033ngDr7/+erU6v1OmTMGbb76J7OxsREdHIy4uDnl5eQDKO6JNmjTBtm3b8Msvv2DWrFn4v//7P2zdulVrHYcOHcLFixdx6NAhbNy4EampqRb9WqK1fPbZZxgwYADS0tLQt29fxMbGol69esjMzMS2bdtw4MABjB07Vusx6enpyMnJwf79+7Fz506ztaWwsBC9evVCeno6srOz0aNHD8TFxekNlFT0+ikoKEBcXBzCwsJw4sQJzJ8/H1OnTjVbG2uaiva3hIQEHD9+HF999RV++OEHCIKAXr16aZ003bt3D0uWLMG6detw9uxZNGzYsFrtYd9Fuor6AhX1A6TuJ9Vx7949LFu2DJs2bcL333+Py5cvIzExUby/suPl4+Sll15CXl4eDh06JNby8/OxZ88eDBo0SG/5tLQ0zJo1CwsWLMC5c+ewcOFCzJw5Exs3bqx2W9j/NG769OlYvHgxZs6ciV9++QWfffYZvL29xftnz56Nt956CydOnICdnR0GDhyIpKQkLF++HIcPH8aFCxcwa9YsrXVaot9gjuPi+++/j6+++gpbt25FTk4O0tLSxA9WawPNfsygQYMqPA4BEF8D33zzDc6dO4dVq1ahfv36krf38ccfY/DgwXB3d0fPnj0NZm6on1RZ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HTt2RFxcHGJjYw3ONqiIm5sbvv76a5w8eRIRERGYMWOG+ItJphyfbUVF+9uGDRsQGRmJ3r17Izo6GoIgYPfu3Xpf8zAV+y7mU5W+gDn2k+qScrx83Dz33HPw9PRETk4OBg4caHS51157DevWrcOGDRsQFhaGmJgYpKammvRBCfufpps5cybefPNNzJo1CyEhIejfv79NXC/LHPu7q6sr3nnnHURFRaFdu3bIzc3F7t279a55Zqs0+zGLFy+u9Dhkb2+P6dOno3Xr1ujcuTMUCgW2bNlS4TauX7+OXbt24V//+pfefepfcP/444+NPl7K8VFt8eLFmDBhAiIjI3Ht2jV8/fXXJl/H81GTCZpf6KYap3v37vDx8cGmTZus3ZTHWkJCAm7fvo0dO3ZYuylEtd6AAQOgUCjw6aefokuXLoiIiMB77733SLZ17do1NGrUCJmZmYiKikJubi6aNm2K7OxsREREPJJtku1LS0vD0KFDcefOnVo1m+NR729EREREuvj1vRrk3r17WL16NWJjY6FQKLB582YcOHAA+/fvt3bTiIgeubKyMpw/fx4//PADRo0a9Ui3JQgC/vjjDyxbtgze3t4IDQ19pNsj2/bJJ5+gWbNm8PX1xalTpzB16lS8/PLLtWpAioiIiMgaasccu1pCJpNh9+7d6Ny5MyIjI/H111/jiy++QLdu3QBA66dedf8dPnzYyq2niixcuNBoduqvB1LN07NnT6O5LVy40NrNq3XOnDmDqKgotGrVCqNHjzbLOo3te66urmjatCmOHDmCLVu21MqvYdmqw4cPV3i8s4Zr165h8ODBCAkJwaRJk/DSSy9hzZo1VmmLrWHfxbbVxP2RpGP/s3bgfmibuP9Jx6/v2ZALFy4Yvc/X15ef2NZg+fn5yM/PN3ifk5MTfH19LdwikuJ///sf7t+/b/A+T0/Px+JinraO+57tuX//Pv73v/8ZvV/3566pZmPfxbZxf7RtPAbWDtwPbRP3P+k4KEVERERERERERBbHr+8REREREREREZHFcVCKiIiIiIiIiIgsjoNSRERERERERERkcRyUIiIiIiIiIiIii+OgFBERERERERERWRwHpYiIiIgMSEhIQN++fa3dDCIiIqJai4NSRERERERERERkcRyUIiIiIjJRSkoKwsLCULduXfj5+eGNN95AYWGheH9qaio8PDywd+9ehISEwMXFBT169MDVq1fFZcrKyjB+/Hh4eHjAy8sLU6dORXx8vNbsrMDAQLz33nta246IiMCcOXMktwUA1q5dCz8/Pzg7O6Nfv35ISUmBh4eH1jL/+c9/0LZtWzg6OqJZs2aYO3cuysrKqv1cERERERnDQSkiIiIiE8nlcrz//vs4e/YsNm7ciIMHDyIpKUlrmXv37mHZsmXYtGkTvv/+e1y+fBmJiYni/UuWLEFaWho2bNiAjIwMFBQUYMeOHWZvS0ZGBkaPHo0JEybg5MmT6N69OxYsWKC1jsOHD2PIkCGYMGECfvnlF3z00UdITU3VW46IiIjInGSCIAjWbgQRERFRTZOQkIDbt29LGijavn07Ro8ejZs3bwIonyk1dOhQXLhwAc2bNwcAfPjhh5g3bx6uXbsGAPDx8UFiYqI4UKVUKtGsWTO0adNG3GZgYCAmTpyIiRMnituKiIhA3759tWZLVdSWV155BYWFhdi5c6e4zODBg7Fz507cvn0bANCtWzd07doV06dPF5f59NNPkZSUhD///LPSv5+IiIioKuys3QAiIiIiW3PgwAEsWrQIv/76KwoKClBWVoYHDx7g3r17cHZ2BgA4OzuLA1IA0KhRI/z1118AgDt37uD69eto3769eL9CoUBkZCRUKpVZ25KTk4N+/fppPaZ9+/Zag1SnTp1CRkaG1swopVKp9zcRERERmRO/vkdERERkgtzcXPTu3RutW7fGF198gaysLKxcuRIAUFJSIi5Xp04drcfJZDKYOkFdLpfrPaa0tNTktlSmsLAQc+fOxcmTJ8V/p0+fxm+//QZHR0eT2kxEREQkFWdKEREREZkgKysLKpUKycnJkMvLP9/bunWrSetwd3eHt7c3MjMz0blzZwDlM5NOnDiBiIgIcbkGDRpoXRy9oKAAly5dMqktwcHByMzM1Krp3m7bti1ycnLQokULk/4OIiIiourgoBQRERGREXfu3MHJkye1avXr10dpaSlWrFiBuLg4ZGRkYPXq1Save9y4cVi0aBFatGiBJ598EitWrMCtW7cgk8nEZZ577jmkpqYiLi4OHh4emDVrFhQKhXh/ixYtKm3LuHHj0LlzZ6SkpCAuLg4HDx7EN998o7WdWbNmoXfv3vD398eLL74IuVyOU6dO4cyZM3j77bdN/tuIiIiIpODX94iIiIiM+Pbbb9GmTRutf5s2bUJKSgqWLFmC0NBQpKWlYdGiRSave+rUqRgwYACGDBmC6OhouLi4IDY2VuvrctOnT0dMTAx69+6N559/Hn379tW6TlV4eHilbenUqRNWr16NlJQUhIeHY8+ePZg0aZLWdmJjY7Fz507s27cP7dq1w1NPPYV3330XAQEBVXjWiIiIiKThr+8RERER1QAqlQohISF4+eWXMX/+/Ee6rREjRuDXX3/F4cOHH+l2iIiIiCrCr+8RERERWcEff/yBffv2ISYmBsXFxfjggw9w6dIlDBw40OzbWrZsGbp37466devim2++wcaNG/Hhhx+afTtEREREpuCgFBEREZEVyOVypKamIjExEYIgIDQ0FAcOHEBISIjZt/XTTz/hnXfewd27d9GsWTO8//77eO2118y+HSIiIiJT8Ot7RERERERERERkcbzQORERERERERERWRwHpYiIiIiIiIiIyOI4KEVERERERERERBbHQSkiIiIiIiIiIrI4DkoREREREREREZHFcVCKiIiIiIiIiIgsjoNSRERERERERERkcRyUIiIiIiIiIiIii+OgFBERERERERERWdz/A9iNKqDKQkwtAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_dir = \"v_score_runs/qwen_run_reprod_fig_1\"\n", + "layers = [0,2,5,10,15,20]\n", + "top_head = 4\n", + "extra_rank_index = 2000\n", + "\n", + "for layer in layers:\n", + " visualize_top_v_scores_notebook(run_dir, layer, top_head, extra_rank_index, ylim_max=80)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/scripts/score_gemma_2b_insight_1.sh b/scripts/score_gemma_2b_insight_1.sh new file mode 100644 index 0000000000000000000000000000000000000000..14b6a464731f9ba018dc449251425bf9fa69c4bb --- /dev/null +++ b/scripts/score_gemma_2b_insight_1.sh @@ -0,0 +1,8 @@ +python score.py compute \ + --model gemma-2b \ + --sae-release gemma-scope-2b-pt-res-canonical \ + --sae-id-template "layer_{layer}/width_16k/canonical" \ + --languages eng_Latn,spa_Latn,fra_Latn,jpn_Jpan,kor_Hang,por_Latn,tha_Thai,vie_Latn,cmn_Hans,kas_Arab \ + --layers 0,2,5,10,15,20 \ + --out-dir ./v_score_runs/run_insight_1_all \ + --n-texts-per-lang -1 diff --git a/scripts/score_gemma_2b_insight_1_small.sh b/scripts/score_gemma_2b_insight_1_small.sh new file mode 100644 index 0000000000000000000000000000000000000000..fe9a827c272ca7e89618574a55b34d22cef9d590 --- /dev/null +++ b/scripts/score_gemma_2b_insight_1_small.sh @@ -0,0 +1,8 @@ +python score.py compute \ + --model gemma-2b \ + --sae-release gemma-scope-2b-pt-res-canonical \ + --sae-id-template "layer_{layer}/width_16k/canonical" \ + --languages eng_Latn,spa_Latn,fra_Latn,jpn_Jpan,kor_Hang,por_Latn,tha_Thai,vie_Latn,cmn_Hans,kas_Arab \ + --layers 0,2,5,10,15,20 \ + --out-dir ./v_score_runs/run_insight_1_small \ + --n-texts-per-lang 25 diff --git a/scripts/score_gemma_2b_insight_4.sh b/scripts/score_gemma_2b_insight_4.sh new file mode 100644 index 0000000000000000000000000000000000000000..e6fe1c0c45f645ce3b93e8ea65db3e2f9913602e --- /dev/null +++ b/scripts/score_gemma_2b_insight_4.sh @@ -0,0 +1,7 @@ +python score.py compute \ + --model gemma-2b \ + --sae-release gemma-scope-2b-pt-res-canonical \ + --sae-id-template "layer_{layer}/width_16k/canonical" \ + --languages arg_Latn,wuu_Hans,nus_Latn,azb_Arab \ + --layers 0,2,5,10,15,20 \ + --out-dir ./v_score_runs/run_insight_4 \ No newline at end of file diff --git a/scripts/score_gemma_2b_reprod.sh b/scripts/score_gemma_2b_reprod.sh new file mode 100644 index 0000000000000000000000000000000000000000..0167fa61b50286cb39569523d445e22dd5e4703a --- /dev/null +++ b/scripts/score_gemma_2b_reprod.sh @@ -0,0 +1,10 @@ +python score.py compute \ + --model gemma-2b \ + --sae-release gemma-scope-2b-pt-res-canonical \ + --sae-id-template "layer_{layer}/width_16k/canonical" \ + --languages eng_Latn,spa_Latn,fra_Latn,jpn_Jpan,kor_Hang,por_Latn,tha_Thai,vie_Latn,cmn_Hans,kas_Arab \ + --layers 0,2,5,10,15,20 \ + --out-dir ./v_score_runs/run_reprod_fig_1 + + +# en es fr ja ko pt th vi zh ar \ No newline at end of file diff --git a/scripts/score_gemma_2b_similar.sh b/scripts/score_gemma_2b_similar.sh new file mode 100644 index 0000000000000000000000000000000000000000..612bc51f8ad017a1329eea8938b4c673d45b34cf --- /dev/null +++ b/scripts/score_gemma_2b_similar.sh @@ -0,0 +1,7 @@ +python score.py compute \ + --model gemma-2b \ + --sae-release gemma-scope-2b-pt-res-canonical \ + --sae-id-template "layer_{layer}/width_16k/canonical" \ + --languages spa_Latn,por_Latn,glg_Latn,cat_Latn \ + --layers 0,2,5,10,15,20 \ + --out-dir ./v_score_runs/run_insight_2 diff --git a/scripts/score_qwen_reprod.sh b/scripts/score_qwen_reprod.sh new file mode 100644 index 0000000000000000000000000000000000000000..f3873bdb8f5460b76a76369f85cc54051c642a94 --- /dev/null +++ b/scripts/score_qwen_reprod.sh @@ -0,0 +1,10 @@ +python score.py compute \ + --model qwen3-0.6b \ + --sae-release mwhanna-qwen3-0.6b-transcoders-lowl0 \ + --sae-id-template "layer_{layer}" \ + --languages eng_Latn,spa_Latn,fra_Latn,jpn_Jpan,kor_Hang,por_Latn,tha_Thai,vie_Latn,cmn_Hans,kas_Arab \ + --layers 0,2,5,10,15,20 \ + --out-dir ./v_score_runs/qwen_run_reprod_fig_1 + + +# en es fr ja ko pt th vi zh ar \ No newline at end of file diff --git a/v_score_runs/qwen_run_reprod_fig_1/meta.json b/v_score_runs/qwen_run_reprod_fig_1/meta.json new file mode 100644 index 0000000000000000000000000000000000000000..4f92d1876a970488b86bc832ad085d36cc095d02 --- /dev/null +++ b/v_score_runs/qwen_run_reprod_fig_1/meta.json @@ -0,0 +1,27 @@ +{ + "model_id": "Qwen/Qwen3-0.6B", + "sae_release": "mwhanna-qwen3-0.6b-transcoders-lowl0", + "sae_id_template": "layer_{layer}", + "languages": [ + "eng_Latn", + "spa_Latn", + "fra_Latn", + "jpn_Jpan", + "kor_Hang", + "por_Latn", + "tha_Thai", + "vie_Latn", + "cmn_Hans", + "kas_Arab" + ], + "layers": [ + 0, + 2, + 5, + 10, + 15, + 20 + ], + "n_texts_per_lan": 100, + "split": "dev" +} \ No newline at end of file diff --git a/v_score_runs/qwen_run_reprod_fig_1/v_scores.pt b/v_score_runs/qwen_run_reprod_fig_1/v_scores.pt new file mode 100644 index 0000000000000000000000000000000000000000..8f8b130be869148cfbb4f52139e23535439961b1 --- /dev/null +++ b/v_score_runs/qwen_run_reprod_fig_1/v_scores.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d065ea84ee3037f0cb58f9795c49867762458b91bc9ebf49666f9f34d6ec27e0 +size 117969361 diff --git a/v_score_runs/run_insight_1_all/meta.json b/v_score_runs/run_insight_1_all/meta.json new file mode 100644 index 0000000000000000000000000000000000000000..4e98b91c64a5c573cc380bc091fa53a282330808 --- /dev/null +++ b/v_score_runs/run_insight_1_all/meta.json @@ -0,0 +1,27 @@ +{ + "model_id": "google/gemma-2-2b", + "sae_release": "gemma-scope-2b-pt-res-canonical", + "sae_id_template": "layer_{layer}/width_16k/canonical", + "languages": [ + "eng_Latn", + "spa_Latn", + "fra_Latn", + "jpn_Jpan", + "kor_Hang", + "por_Latn", + "tha_Thai", + "vie_Latn", + "cmn_Hans", + "kas_Arab" + ], + "layers": [ + 0, + 2, + 5, + 10, + 15, + 20 + ], + "n_texts_per_lan": -1, + "split": "dev" +} \ No newline at end of file diff --git a/v_score_runs/run_insight_1_all/v_scores.pt b/v_score_runs/run_insight_1_all/v_scores.pt new file mode 100644 index 0000000000000000000000000000000000000000..bc16e2700ce73b84f60826139a1787e0d23f0819 --- /dev/null +++ b/v_score_runs/run_insight_1_all/v_scores.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a2bdc28b8884a2946c4616202904ba11549a5b983b9a5276619b9d7bccaa5e5 +size 11800977 diff --git a/v_score_runs/run_insight_1_small/meta.json b/v_score_runs/run_insight_1_small/meta.json new file mode 100644 index 0000000000000000000000000000000000000000..55905efb77035ce22af90fb3071fd718d9b6fdd3 --- /dev/null +++ b/v_score_runs/run_insight_1_small/meta.json @@ -0,0 +1,27 @@ +{ + "model_id": "google/gemma-2-2b", + "sae_release": "gemma-scope-2b-pt-res-canonical", + "sae_id_template": "layer_{layer}/width_16k/canonical", + "languages": [ + "eng_Latn", + "spa_Latn", + "fra_Latn", + "jpn_Jpan", + "kor_Hang", + "por_Latn", + "tha_Thai", + "vie_Latn", + "cmn_Hans", + "kas_Arab" + ], + "layers": [ + 0, + 2, + 5, + 10, + 15, + 20 + ], + "n_texts_per_lan": 25, + "split": "dev" +} \ No newline at end of file diff --git a/v_score_runs/run_insight_1_small/v_scores.pt b/v_score_runs/run_insight_1_small/v_scores.pt new file mode 100644 index 0000000000000000000000000000000000000000..dabc3da81a0d629f9ab5e74d8c0f3fc82ffdda51 --- /dev/null +++ b/v_score_runs/run_insight_1_small/v_scores.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bb3036708c4bc678b38c209fb293f3da4adbaf5ad4563b0a4b27b5c5b04f2c8 +size 11800977 diff --git a/v_score_runs/run_insight_2/meta.json b/v_score_runs/run_insight_2/meta.json new file mode 100644 index 0000000000000000000000000000000000000000..b8bd690f498f78d3db024f41f884ef975d333b78 --- /dev/null +++ b/v_score_runs/run_insight_2/meta.json @@ -0,0 +1,21 @@ +{ + "model_id": "google/gemma-2-2b", + "sae_release": "gemma-scope-2b-pt-res-canonical", + "sae_id_template": "layer_{layer}/width_16k/canonical", + "languages": [ + "spa_Latn", + "por_Latn", + "glg_Latn", + "cat_Latn" + ], + "layers": [ + 0, + 2, + 5, + 10, + 15, + 20 + ], + "n_texts_per_lan": 100, + "split": "dev" +} \ No newline at end of file diff --git a/v_score_runs/run_insight_2/v_scores.pt b/v_score_runs/run_insight_2/v_scores.pt new file mode 100644 index 0000000000000000000000000000000000000000..97dfd2096b06818d9fcf02e4411fc2792e8f8825 --- /dev/null +++ b/v_score_runs/run_insight_2/v_scores.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73bf0c47e1fd53fce6cfcacc7da085997cc5b763e15b1b22eed8cb16f78cf487 +size 4723089 diff --git a/v_score_runs/run_insight_4/meta.json b/v_score_runs/run_insight_4/meta.json new file mode 100644 index 0000000000000000000000000000000000000000..d7c27c40b4552c29812884977775f4b00c4f5053 --- /dev/null +++ b/v_score_runs/run_insight_4/meta.json @@ -0,0 +1,21 @@ +{ + "model_id": "google/gemma-2-2b", + "sae_release": "gemma-scope-2b-pt-res-canonical", + "sae_id_template": "layer_{layer}/width_16k/canonical", + "languages": [ + "arg_Latn", + "wuu_Hans", + "nus_Latn", + "azb_Arab" + ], + "layers": [ + 0, + 2, + 5, + 10, + 15, + 20 + ], + "n_texts_per_lan": 100, + "split": "dev" +} \ No newline at end of file diff --git a/v_score_runs/run_insight_4/v_scores.pt b/v_score_runs/run_insight_4/v_scores.pt new file mode 100644 index 0000000000000000000000000000000000000000..b23de9f8cb1cc65b7dfd209b78e7fb96865b9cbf --- /dev/null +++ b/v_score_runs/run_insight_4/v_scores.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42ab2a04f8633e5429f424ea98959e9c1be34be2eab14b373bc7fe36d0e40627 +size 4723089 diff --git a/v_score_runs/run_reprod_fig_1/meta.json b/v_score_runs/run_reprod_fig_1/meta.json new file mode 100644 index 0000000000000000000000000000000000000000..db0fff563409344fddab7b52c0b9a2819aefffa5 --- /dev/null +++ b/v_score_runs/run_reprod_fig_1/meta.json @@ -0,0 +1,27 @@ +{ + "model_id": "google/gemma-2-2b", + "sae_release": "gemma-scope-2b-pt-res-canonical", + "sae_id_template": "layer_{layer}/width_16k/canonical", + "languages": [ + "eng_Latn", + "spa_Latn", + "fra_Latn", + "jpn_Jpan", + "kor_Hang", + "por_Latn", + "tha_Thai", + "vie_Latn", + "cmn_Hans", + "kas_Arab" + ], + "layers": [ + 0, + 2, + 5, + 10, + 15, + 20 + ], + "n_texts_per_lan": 100, + "split": "dev" +} \ No newline at end of file diff --git a/v_score_runs/run_reprod_fig_1/v_scores.pt b/v_score_runs/run_reprod_fig_1/v_scores.pt new file mode 100644 index 0000000000000000000000000000000000000000..33748c13fb5167ffffed4bffba2b0358d3bdbc0d --- /dev/null +++ b/v_score_runs/run_reprod_fig_1/v_scores.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:012544d5ca17e89338d87c5604e64d9b4044eb837e30e5f017b2703a5c497c13 +size 11800977