diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 0000000..b6b3190 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,24 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_size = 4 +indent_style = space + +[*.{md,yml,yaml,html,css,scss,js}] +indent_size = 2 + +# These files are edited and tested upstream in nf-core/modules +[/modules/nf-core/**] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset + +[/assets/email*] +indent_size = unset diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..222eb71 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.config linguist-language=nextflow +modules/nf-core/** linguist-generated +subworkflows/nf-core/** linguist-generated +assets/mpxvgfa.sif filter=lfs diff=lfs merge=lfs -text diff --git a/.github/.dockstore.yml b/.github/.dockstore.yml new file mode 100755 index 0000000..191fabd --- /dev/null +++ b/.github/.dockstore.yml @@ -0,0 +1,6 @@ +# Dockstore config version, not pipeline version +version: 1.2 +workflows: + - subclass: nfl + primaryDescriptorPath: /nextflow.config + publish: True diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100755 index 0000000..bdd3cd1 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,110 @@ +# nf-core/mpxvassembly: Contributing Guidelines + +Hi there! +Many thanks for taking an interest in improving nf-core/mpxvassembly. + +We try to manage the required tasks for nf-core/mpxvassembly using GitHub issues, you probably came to this page when creating one. +Please use the pre-filled template to save time. + +However, don't be put off by this template - other more general issues and suggestions are welcome! +Contributions to the code are even more welcome ;) + +> If you need help using or modifying nf-core/mpxvassembly then the best place to ask is on the nf-core Slack [#mpxvassembly](https://nfcore.slack.com/channels/mpxvassembly) channel ([join our Slack here](https://nf-co.re/join/slack)). + +## Public Domain +This project is in the public domain within the United States, and copyright and +related rights in the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). +All contributions to this project will be released under the CC0 dedication. By +submitting a pull request you are agreeing to comply with this waiver of +copyright interest. + +## Contribution workflow + +If you'd like to write some code for nf-core/mpxvassembly, the standard workflow is as follows: + +1. Check that there isn't already an issue about your idea in the [nf-core/mpxvassembly issues](https://github.com/nf-core/mpxvassembly/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this +2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/mpxvassembly repository](https://github.com/nf-core/mpxvassembly) to your GitHub account +3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions) +4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10). +5. Submit a Pull Request against the `dev` branch and wait for the code to be reviewed and merged + +If you're not used to this workflow with git, you can start with some [docs from GitHub](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests) or even their [excellent `git` resources](https://try.github.io/). + +## Tests + +When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests. +Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then. + +There are typically two types of tests that run: + +### Lint tests + +`nf-core` has a [set of guidelines](https://nf-co.re/developers/guidelines) which all pipelines must adhere to. +To enforce these and ensure that all pipelines stay in sync, we have developed a helper tool which runs checks on the pipeline code. This is in the [nf-core/tools repository](https://github.com/nf-core/tools) and once installed can be run locally with the `nf-core lint ` command. + +If any failures or warnings are encountered, please follow the listed URL for more documentation. + +### Pipeline tests + +Each `nf-core` pipeline should be set up with a minimal set of test-data. +`GitHub Actions` then runs the pipeline on this data to ensure that it exits successfully. +If there are any failures then the automated tests fail. +These tests are run both with the latest available version of `Nextflow` and also the minimum required version that is stated in the pipeline code. + +## Patch + +:warning: Only in the unlikely and regretful event of a release happening with a bug. + +- On your own fork, make a new branch `patch` based on `upstream/master`. +- Fix the bug, and bump version (X.Y.Z+1). +- A PR should be made on `master` from patch to directly this particular bug. + +## Getting help + +For further information/help, please consult the [nf-core/mpxvassembly documentation](https://nf-co.re/mpxvassembly/usage) and don't hesitate to get in touch on the nf-core Slack [#mpxvassembly](https://nfcore.slack.com/channels/mpxvassembly) channel ([join our Slack here](https://nf-co.re/join/slack)). + +## Pipeline contribution conventions + +To make the nf-core/mpxvassembly code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written. + +### Adding a new step + +If you wish to contribute a new step, please use the following coding standards: + +1. Define the corresponding input channel into your new process from the expected previous process channel +2. Write the process block (see below). +3. Define the output channel if needed (see below). +4. Add any new parameters to `nextflow.config` with a default (see below). +5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core schema build` tool). +6. Add sanity checks and validation for all relevant parameters. +7. Perform local tests to validate that the new code works as expected. +8. If applicable, add a new test command in `.github/workflow/ci.yml`. +9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. + +### Default values + +Parameters should be initialised / defined with default values in `nextflow.config` under the `params` scope. + +Once there, use `nf-core schema build` to add to `nextflow_schema.json`. + +### Default processes resource requirements + +Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/master/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels. + +The process resources can be passed on to the tool dynamically within the process with the `${task.cpu}` and `${task.memory}` variables in the `script:` block. + +### Naming schemes + +Please use the following naming schemes, to make it easy to understand what is going where. + +- initial process channel: `ch_output_from_` +- intermediate and terminal channels: `ch__for_` + +### Nextflow version bumping + +If you are using a new feature from core Nextflow, you may bump the minimum required version of nextflow in the pipeline with: `nf-core bump-version --nextflow . [min-nf-version]` + +### Images and figures + +For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines). diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100755 index 0000000..e29203f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,50 @@ +name: Bug report +description: Report something that is broken or incorrect +labels: bug +body: + - type: markdown + attributes: + value: | + Before you post this issue, please check the documentation: + + - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) + - [nf-core/mpxvassembly pipeline documentation](https://nf-co.re/mpxvassembly/usage) + + - type: textarea + id: description + attributes: + label: Description of the bug + description: A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + id: command_used + attributes: + label: Command used and terminal output + description: Steps to reproduce the behaviour. Please paste the command you used to launch the pipeline and the output from your terminal. + render: console + placeholder: | + $ nextflow run ... + + Some output where something broke + + - type: textarea + id: files + attributes: + label: Relevant files + description: | + Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed. + Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files. + + - type: textarea + id: system + attributes: + label: System information + description: | + * Nextflow version _(eg. 21.10.3)_ + * Hardware _(eg. HPC, Desktop, Cloud)_ + * Executor _(eg. slurm, local, awsbatch)_ + * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter or Charliecloud)_ + * OS _(eg. CentOS Linux, macOS, Linux Mint)_ + * Version of nf-core/mpxvassembly _(eg. 1.1, 1.5, 1.8.2)_ diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100755 index 0000000..835676f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,7 @@ +contact_links: + - name: Join nf-core + url: https://nf-co.re/join + about: Please join the nf-core community here + - name: "Slack #mpxvassembly channel" + url: https://nfcore.slack.com/channels/mpxvassembly + about: Discussion about the nf-core/mpxvassembly pipeline diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100755 index 0000000..2822898 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,11 @@ +name: Feature request +description: Suggest an idea for the nf-core/mpxvassembly pipeline +labels: enhancement +body: + - type: textarea + id: description + attributes: + label: Description of feature + description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered. + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100755 index 0000000..0364b54 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,25 @@ + + +## PR checklist + +- [ ] This comment contains a description of changes (with reason). +- [ ] If you've fixed a bug or added code that should be tested, add tests! + - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mpxvassembly/tree/master/.github/CONTRIBUTING.md) + - [ ] If necessary, also make a PR on the nf-core/mpxvassembly _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. +- [ ] Make sure your code lints (`nf-core lint`). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). +- [ ] Usage Documentation in `docs/usage.md` is updated. +- [ ] Output Documentation in `docs/output.md` is updated. +- [ ] `CHANGELOG.md` is updated. +- [ ] `README.md` is updated (including new tool citations and authors/contributors). diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml new file mode 100755 index 0000000..fa8514e --- /dev/null +++ b/.github/workflows/awsfulltest.yml @@ -0,0 +1,29 @@ +name: nf-core AWS full size tests +# This workflow is triggered on published releases. +# It can be additionally triggered manually with GitHub actions workflow dispatch button. +# It runs the -profile 'test_full' on AWS batch + +on: + release: + types: [published] + workflow_dispatch: +jobs: + run-tower: + name: Run AWS full tests + if: github.repository == 'nf-core/mpxvassembly' + runs-on: ubuntu-latest + steps: + - name: Launch workflow via tower + uses: nf-core/tower-action@v3 + # Add full size test data (but still relatively small datasets for few samples) + # on the `test_full.config` test runs with only one set of parameters + with: + workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} + access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} + compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} + workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mpxvassembly/work-${{ github.sha }} + parameters: | + { + "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mpxvassembly/results-${{ github.sha }}" + } + profiles: test_full,aws_tower diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml new file mode 100755 index 0000000..8a75e4d --- /dev/null +++ b/.github/workflows/awstest.yml @@ -0,0 +1,25 @@ +name: nf-core AWS test +# This workflow can be triggered manually with the GitHub actions workflow dispatch button. +# It runs the -profile 'test' on AWS batch + +on: + workflow_dispatch: +jobs: + run-tower: + name: Run AWS tests + if: github.repository == 'nf-core/mpxvassembly' + runs-on: ubuntu-latest + steps: + # Launch workflow using Tower CLI tool action + - name: Launch workflow via tower + uses: nf-core/tower-action@v3 + with: + workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} + access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} + compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} + workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mpxvassembly/work-${{ github.sha }} + parameters: | + { + "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mpxvassembly/results-test-${{ github.sha }}" + } + profiles: test,aws_tower diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml new file mode 100755 index 0000000..4246788 --- /dev/null +++ b/.github/workflows/branch.yml @@ -0,0 +1,44 @@ +name: nf-core branch protection +# This workflow is triggered on PRs to master branch on the repository +# It fails when someone tries to make a PR against the nf-core `master` branch instead of `dev` +on: + pull_request_target: + branches: [master] + +jobs: + test: + runs-on: ubuntu-latest + steps: + # PRs to the nf-core repo master branch are only ok if coming from the nf-core repo `dev` or any `patch` branches + - name: Check PRs + if: github.repository == 'nf-core/mpxvassembly' + run: | + { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mpxvassembly ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] + + # If the above check failed, post a comment on the PR explaining the failure + # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets + - name: Post PR comment + if: failure() + uses: mshick/add-pr-comment@v1 + with: + message: | + ## This PR is against the `master` branch :x: + + * Do not close this PR + * Click _Edit_ and change the `base` to `dev` + * This CI test will remain failed until you push a new commit + + --- + + Hi @${{ github.event.pull_request.user.login }}, + + It looks like this pull-request is has been made against the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `master` branch. + The `master` branch on nf-core repositories should always contain code from the latest release. + Because of this, PRs to `master` are only allowed if they come from the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `dev` branch. + + You do not need to close this PR, you can change the target branch to `dev` by clicking the _"Edit"_ button at the top of this page. + Note that even after this, the test will continue to show as failing until you push a new commit. + + Thanks again for your contribution! + repo-token: ${{ secrets.GITHUB_TOKEN }} + allow-repeats: false diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100755 index 0000000..de36ec6 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,47 @@ +name: nf-core CI +# This workflow runs the pipeline with the minimal test dataset to check that it completes without any syntax errors +on: + push: + branches: + - dev + pull_request: + release: + types: [published] + +env: + NXF_ANSI_LOG: false + CAPSULE_LOG: none + +jobs: + test: + name: Run pipeline with test data + # Only run on push if this is the nf-core dev branch (merged PRs) + if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mpxvassembly') }}" + runs-on: ubuntu-latest + strategy: + matrix: + # Nextflow versions + include: + # Test pipeline minimum Nextflow version + - NXF_VER: "21.10.3" + NXF_EDGE: "" + # Test latest edge release of Nextflow + - NXF_VER: "" + NXF_EDGE: "1" + steps: + - name: Check out pipeline code + uses: actions/checkout@v2 + + - name: Install Nextflow + env: + NXF_VER: ${{ matrix.NXF_VER }} + # Uncomment only if the edge release is more recent than the latest stable release + # See https://github.com/nextflow-io/nextflow/issues/2467 + # NXF_EDGE: ${{ matrix.NXF_EDGE }} + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + + - name: Run pipeline with test data + run: | + nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml new file mode 100755 index 0000000..b79343b --- /dev/null +++ b/.github/workflows/fix-linting.yml @@ -0,0 +1,55 @@ +name: Fix linting from a comment +on: + issue_comment: + types: [created] + +jobs: + deploy: + # Only run if comment is on a PR with the main repo, and if it contains the magic keywords + if: > + contains(github.event.comment.html_url, '/pull/') && + contains(github.event.comment.body, '@nf-core-bot fix linting') && + github.repository == 'nf-core/mpxvassembly' + runs-on: ubuntu-latest + steps: + # Use the @nf-core-bot token to check out so we can push later + - uses: actions/checkout@v3 + with: + token: ${{ secrets.nf_core_bot_auth_token }} + + # Action runs on the issue comment, so we don't get the PR by default + # Use the gh cli to check out the PR + - name: Checkout Pull Request + run: gh pr checkout ${{ github.event.issue.number }} + env: + GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} + + - uses: actions/setup-node@v2 + + - name: Install Prettier + run: npm install -g prettier @prettier/plugin-php + + # Check that we actually need to fix something + - name: Run 'prettier --check' + id: prettier_status + run: | + if prettier --check ${GITHUB_WORKSPACE}; then + echo "::set-output name=result::pass" + else + echo "::set-output name=result::fail" + fi + + - name: Run 'prettier --write' + if: steps.prettier_status.outputs.result == 'fail' + run: prettier --write ${GITHUB_WORKSPACE} + + - name: Commit & push changes + if: steps.prettier_status.outputs.result == 'fail' + run: | + git config user.email "core@nf-co.re" + git config user.name "nf-core-bot" + git config push.default upstream + git add . + git status + git commit -m "[automated] Fix linting with Prettier" + git push diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml new file mode 100755 index 0000000..77358de --- /dev/null +++ b/.github/workflows/linting.yml @@ -0,0 +1,80 @@ +name: nf-core linting +# This workflow is triggered on pushes and PRs to the repository. +# It runs the `nf-core lint` and markdown lint tests to ensure +# that the code meets the nf-core guidelines. +on: + push: + pull_request: + release: + types: [published] + +jobs: + EditorConfig: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + + - name: Install editorconfig-checker + run: npm install -g editorconfig-checker + + - name: Run ECLint check + run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') + + Prettier: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + + - name: Install Prettier + run: npm install -g prettier + + - name: Run Prettier --check + run: prettier --check ${GITHUB_WORKSPACE} + + nf-core: + runs-on: ubuntu-latest + steps: + - name: Check out pipeline code + uses: actions/checkout@v2 + + - name: Install Nextflow + env: + CAPSULE_LOG: none + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + + - uses: actions/setup-python@v3 + with: + python-version: "3.6" + architecture: "x64" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install nf-core + + - name: Run nf-core lint + env: + GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }} + run: nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md + + - name: Save PR number + if: ${{ always() }} + run: echo ${{ github.event.pull_request.number }} > PR_number.txt + + - name: Upload linting log file artifact + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: linting-logs + path: | + lint_log.txt + lint_results.md + PR_number.txt diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml new file mode 100755 index 0000000..04758f6 --- /dev/null +++ b/.github/workflows/linting_comment.yml @@ -0,0 +1,28 @@ +name: nf-core linting comment +# This workflow is triggered after the linting action is complete +# It posts an automated comment to the PR, even if the PR is coming from a fork + +on: + workflow_run: + workflows: ["nf-core linting"] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Download lint results + uses: dawidd6/action-download-artifact@v2 + with: + workflow: linting.yml + workflow_conclusion: completed + + - name: Get PR number + id: pr_number + run: echo "::set-output name=pr_number::$(cat linting-logs/PR_number.txt)" + + - name: Post PR comment + uses: marocchino/sticky-pull-request-comment@v2 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + number: ${{ steps.pr_number.outputs.pr_number }} + path: linting-logs/lint_results.md diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..0581283 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +.nextflow* +work/ +data/ +results/ +.DS_Store +testing/ +testing* +*.pyc +test* diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100755 index 0000000..85d95ec --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,14 @@ +image: nfcore/gitpod:latest + +vscode: + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files + # - cssho.vscode-svgviewer # SVG viewer + - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + # - nextflow.nextflow # Nextflow syntax highlighting + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.nf-core.yml b/.nf-core.yml new file mode 100755 index 0000000..3805dc8 --- /dev/null +++ b/.nf-core.yml @@ -0,0 +1 @@ +repository_type: pipeline diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100755 index 0000000..81b8477 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# PolkaPox: Changelog + +All notable changes since the initial release are listed below. Whenever possible, links to relevant commits or issues are provided. A full commit history relative to the previous release is also provided. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## v1.0dev - [date] +[Full history]() +Initial release of PolkaPox for testing, created with the [nf-core](https://nf-co.re/) template. + +### `Added` +- Standard disclaimers and notices from [CDCgov](https://github.com/CDCgov/template) template. + +### `Fixed` + +### `Dependencies` + +### `Deprecated` diff --git a/CITATIONS.md b/CITATIONS.md new file mode 100755 index 0000000..df7e324 --- /dev/null +++ b/CITATIONS.md @@ -0,0 +1,50 @@ +# PolkaPox: Citations + +## [nf-core](https://pubmed.ncbi.nlm.nih.gov/32055031/) + +> Ewels PA, Peltzer A, Fillinger S, Patel H, Alneberg J, Wilm A, Garcia MU, Di Tommaso P, Nahnsen S. The nf-core framework for community-curated bioinformatics pipelines. Nat Biotechnol. 2020 Mar;38(3):276-278. doi: 10.1038/s41587-020-0439-x. PubMed PMID: 32055031. + +## [Nextflow](https://pubmed.ncbi.nlm.nih.gov/28398311/) + +> Di Tommaso P, Chatzou M, Floden EW, Barja PP, Palumbo E, Notredame C. Nextflow enables reproducible computational workflows. Nat Biotechnol. 2017 Apr 11;35(4):316-319. doi: 10.1038/nbt.3820. PubMed PMID: 28398311. + +## Pipeline tools + +- [BWA MEM](http://bio-bwa.sourceforge.net/bwa.shtml) +- [fastp](https://github.com/OpenGene/fastp) + > Chen S, Zhou Y, Chen Y, Gu J. fastp: an ultra-fast all-in-one FASTQ preprocessor, Bioinformatics, Volume 34, Issue 17, September 2018, Pages i884–i890, https://doi.org/10.1093/bioinformatics/bty560. +- [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) +- [iVar](https://andersen-lab.github.io/ivar/html/) + > Grubaugh, N.D., Gangavarapu, K., Quick, J. et al. An amplicon-based sequencing framework for accurately measuring intrahost virus diversity using PrimalSeq and iVar. Genome Biol 20, 8 (2019). https://doi.org/10.1186/s13059-018-1618-7. +- [kraken](https://github.com/DerrickWood/kraken2/tree/master) + > Wood, D.E., Lu, J., Langmead, B. Improved metagenomic analysis with Kraken 2. Genome Biol 20, 257 (2019). https://doi.org/10.1186/s13059-019-1891-0. +- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) + > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. +- [MUMmer](https://github.com/mummer4/mummer) + > Marçais G, Delcher AL, Phillippy AM, Coston R, Salzberg SL, Zimin A. MUMmer4: A fast and versatile genome alignment system. PLoS computational biology. 2018 Jan 26;14(1):e1005944. +- [QUAST](https://quast.sourceforge.net/) + > Mikheenko A, Prjibelski A, Saveliev V, Antipov D, Gurevich A. Versatile genome assembly evaluation with QUAST-LG, Bioinformatics (2018) 34 (13): i142-i150. doi: 10.1093/bioinformatics/bty266. +- [samtools](http://www.htslib.org) + > Danecek P, Bonfield JK, Liddle J, Marshall J, Ohan V, Pollard MO, Whitwham A, Keane T, McCarthy SA, Davies RM, Li H. Twelve years of SAMtools and BCFtools, GigaScience (2021) 10(2) giab008. PMID: 33590861. +- [seqtk](https://github.com/lh3/seqtk) +- [Unicycler](https://github.com/rrwick/Unicycler) + > Wick RR, Judd LM, Gorrie CL, Holt KE (2017) Unicycler: Resolving bacterial genome assemblies from short and long sequencing reads. PLOS Computational Biology 13(6): e1005595. https://doi.org/10.1371/journal.pcbi.1005595 + +## Software packaging/containerisation tools + +- [Anaconda](https://anaconda.com) + + > Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web. + +- [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/) + + > Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506. + +- [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/) + + > da Veiga Leprevost F, Grüning B, Aflitos SA, Röst HL, Uszkoreit J, Barsnes H, Vaudel M, Moreno P, Gatto L, Weber J, Bai M, Jimenez RC, Sachsenberg T, Pfeuffer J, Alvarez RV, Griss J, Nesvizhskii AI, Perez-Riverol Y. BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics. 2017 Aug 15;33(16):2580-2582. doi: 10.1093/bioinformatics/btx192. PubMed PMID: 28379341; PubMed Central PMCID: PMC5870671. + +- [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) + +- [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) + > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100755 index 0000000..f4fd052 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,111 @@ +# Code of Conduct at nf-core (v1.0) + +## Our Pledge + +In the interest of fostering an open, collaborative, and welcoming environment, we as contributors and maintainers of nf-core, pledge to making participation in our projects and community a harassment-free experience for everyone, regardless of: + +- Age +- Body size +- Familial status +- Gender identity and expression +- Geographical location +- Level of experience +- Nationality and national origins +- Native language +- Physical and neurological ability +- Race or ethnicity +- Religion +- Sexual identity and orientation +- Socioeconomic status + +Please note that the list above is alphabetised and is therefore not ranked in any order of preference or importance. + +## Preamble + +> Note: This Code of Conduct (CoC) has been drafted by the nf-core Safety Officer and been edited after input from members of the nf-core team and others. "We", in this document, refers to the Safety Officer and members of the nf-core core team, both of whom are deemed to be members of the nf-core community and are therefore required to abide by this Code of Conduct. This document will amended periodically to keep it up-to-date, and in case of any dispute, the most current version will apply. + +An up-to-date list of members of the nf-core core team can be found [here](https://nf-co.re/about). Our current safety officer is Renuka Kudva. + +nf-core is a young and growing community that welcomes contributions from anyone with a shared vision for [Open Science Policies](https://www.fosteropenscience.eu/taxonomy/term/8). Open science policies encompass inclusive behaviours and we strive to build and maintain a safe and inclusive environment for all individuals. + +We have therefore adopted this code of conduct (CoC), which we require all members of our community and attendees in nf-core events to adhere to in all our workspaces at all times. Workspaces include but are not limited to Slack, meetings on Zoom, Jitsi, YouTube live etc. + +Our CoC will be strictly enforced and the nf-core team reserve the right to exclude participants who do not comply with our guidelines from our workspaces and future nf-core activities. + +We ask all members of our community to help maintain a supportive and productive workspace and to avoid behaviours that can make individuals feel unsafe or unwelcome. Please help us maintain and uphold this CoC. + +Questions, concerns or ideas on what we can include? Contact safety [at] nf-co [dot] re + +## Our Responsibilities + +The safety officer is responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behaviour. + +The safety officer in consultation with the nf-core core team have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +Members of the core team or the safety officer who violate the CoC will be required to recuse themselves pending investigation. They will not have access to any reports of the violations and be subject to the same actions as others in violation of the CoC. + +## When are where does this Code of Conduct apply? + +Participation in the nf-core community is contingent on following these guidelines in all our workspaces and events. This includes but is not limited to the following listed alphabetically and therefore in no order of preference: + +- Communicating with an official project email address. +- Communicating with community members within the nf-core Slack channel. +- Participating in hackathons organised by nf-core (both online and in-person events). +- Participating in collaborative work on GitHub, Google Suite, community calls, mentorship meetings, email correspondence. +- Participating in workshops, training, and seminar series organised by nf-core (both online and in-person events). This applies to events hosted on web-based platforms such as Zoom, Jitsi, YouTube live etc. +- Representing nf-core on social media. This includes both official and personal accounts. + +## nf-core cares 😊 + +nf-core's CoC and expectations of respectful behaviours for all participants (including organisers and the nf-core team) include but are not limited to the following (listed in alphabetical order): + +- Ask for consent before sharing another community member’s personal information (including photographs) on social media. +- Be respectful of differing viewpoints and experiences. We are all here to learn from one another and a difference in opinion can present a good learning opportunity. +- Celebrate your accomplishments at events! (Get creative with your use of emojis 🎉 🥳 💯 🙌 !) +- Demonstrate empathy towards other community members. (We don’t all have the same amount of time to dedicate to nf-core. If tasks are pending, don’t hesitate to gently remind members of your team. If you are leading a task, ask for help if you feel overwhelmed.) +- Engage with and enquire after others. (This is especially important given the geographically remote nature of the nf-core community, so let’s do this the best we can) +- Focus on what is best for the team and the community. (When in doubt, ask) +- Graciously accept constructive criticism, yet be unafraid to question, deliberate, and learn. +- Introduce yourself to members of the community. (We’ve all been outsiders and we know that talking to strangers can be hard for some, but remember we’re interested in getting to know you and your visions for open science!) +- Show appreciation and **provide clear feedback**. (This is especially important because we don’t see each other in person and it can be harder to interpret subtleties. Also remember that not everyone understands a certain language to the same extent as you do, so **be clear in your communications to be kind.**) +- Take breaks when you feel like you need them. +- Using welcoming and inclusive language. (Participants are encouraged to display their chosen pronouns on Zoom or in communication on Slack.) + +## nf-core frowns on 😕 + +The following behaviours from any participants within the nf-core community (including the organisers) will be considered unacceptable under this code of conduct. Engaging or advocating for any of the following could result in expulsion from nf-core workspaces. + +- Deliberate intimidation, stalking or following and sustained disruption of communication among participants of the community. This includes hijacking shared screens through actions such as using the annotate tool in conferencing software such as Zoom. +- “Doxing” i.e. posting (or threatening to post) another person’s personal identifying information online. +- Spamming or trolling of individuals on social media. +- Use of sexual or discriminatory imagery, comments, or jokes and unwelcome sexual attention. +- Verbal and text comments that reinforce social structures of domination related to gender, gender identity and expression, sexual orientation, ability, physical appearance, body size, race, age, religion or work experience. + +### Online Trolling + +The majority of nf-core interactions and events are held online. Unfortunately, holding events online comes with the added issue of online trolling. This is unacceptable, reports of such behaviour will be taken very seriously, and perpetrators will be excluded from activities immediately. + +All community members are required to ask members of the group they are working within for explicit consent prior to taking screenshots of individuals during video calls. + +## Procedures for Reporting CoC violations + +If someone makes you feel uncomfortable through their behaviours or actions, report it as soon as possible. + +You can reach out to members of the [nf-core core team](https://nf-co.re/about) and they will forward your concerns to the safety officer(s). + +Issues directly concerning members of the core team will be dealt with by other members of the core team and the safety manager, and possible conflicts of interest will be taken into account. nf-core is also in discussions about having an ombudsperson, and details will be shared in due course. + +All reports will be handled with utmost discretion and confidentially. + +## Attribution and Acknowledgements + +- The [Contributor Covenant, version 1.4](http://contributor-covenant.org/version/1/4) +- The [OpenCon 2017 Code of Conduct](http://www.opencon2017.org/code_of_conduct) (CC BY 4.0 OpenCon organisers, SPARC and Right to Research Coalition) +- The [eLife innovation sprint 2020 Code of Conduct](https://sprint.elifesciences.org/code-of-conduct/) +- The [Mozilla Community Participation Guidelines v3.1](https://www.mozilla.org/en-US/about/governance/policies/participation/) (version 3.1, CC BY-SA 3.0 Mozilla) + +## Changelog + +### v1.0 - March 12th, 2021 + +- Complete rewrite from original [Contributor Covenant](http://contributor-covenant.org/) CoC. diff --git a/DISCLAIMER.md b/DISCLAIMER.md new file mode 100755 index 0000000..2821506 --- /dev/null +++ b/DISCLAIMER.md @@ -0,0 +1,23 @@ +# DISCLAIMER +Use of this service is limited only to **non-sensitive and publicly available +data**. Users must not use, share, or store any kind of sensitive data like +health status, provision or payment of healthcare, Personally Identifiable +Information (PII) and/or Protected Health Information (PHI), etc. under **ANY** +circumstance. + +Administrators for this service reserve the right to moderate all information +used, shared, or stored with this service at any time. Any user that cannot +abide by this disclaimer and Code of Conduct may be subject to action, up to +and including revoking access to services. + +The material embodied in this software is provided to you "as-is" and without +warranty of any kind, express, implied or otherwise, including without +limitation, any warranty of fitness for a particular purpose. In no event shall +the Centers for Disease Control and Prevention (CDC) or the United States (U.S.) +government be liable to you or anyone else for any direct, special, incidental, +indirect or consequential damages of any kind, or any damages whatsoever, +including without limitation, loss of profit, loss of use, savings or revenue, +or the claims of third parties, whether or not CDC or the U.S. government has +been advised of the possibility of such loss, however caused and on any theory +of liability, arising out of or in connection with the possession, use or +performance of this software. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..5c304d1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 4373e31..284259a 100644 --- a/README.md +++ b/README.md @@ -1 +1,283 @@ -# polkapox \ No newline at end of file +# PolkaPox :microbe: :dna: :accordion: + +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/) +[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?logo=anaconda)](https://docs.conda.io/en/latest/) +[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?logo=docker)](https://www.docker.com/) +[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg)](https://sylabs.io/docs/) + +## Introduction + +**PolkaPox** is a workflow for filtering, trimming, QC, reference-based analysis, and de novo assembly of Illumina sequencing reads from orthopoxviruses. + +The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from [nf-core/modules](https://github.com/nf-core/modules) in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community! + +## Pipeline summary + +**Read pre-processing** +1. Filter raw reads to capture only Orthopox Virus sequences. ([`Kraken`](https://github.com/DerrickWood/kraken2) + [`SeqTK`](https://github.com/lh3/seqtk)) +1. Trim and filter reads for adapter contamination and quality, summarize QC ([`Fastp`](https://github.com/OpenGene/fastp)) + +**Reference-based analyses** +1. Align reads to reference genome. ([`BWA`](http://bio-bwa.sourceforge.net/)) +1. Variant calling and target gene mutation summary. ([`iVar`](https://andersen-lab.github.io/ivar/html/manualpage.html)) +1. Consensus sequence generation. ([`iVar`](https://andersen-lab.github.io/ivar/html/manualpage.html)) + +**Reference-free analyses** +1. De novo assembly. ([`Unicycler`](https://github.com/rrwick/Unicycler)) +1. Calculate assembly quality metrics. ([`QUAST`](http://quast.sourceforge.net/)) +1. Assembly graph resolution. ([`mpxv-AssemblyGraph_gfaPy.py`](/bin/mpxv-AssemblyGraph_gfaPy.py)) +1. Align reads to assembled genome. ([`BWA`](http://bio-bwa.sourceforge.net/)) +1. Correct assembly errors and ambiguities. ([`iVar`](https://andersen-lab.github.io/ivar/html/manualpage.html)) +1. Quantify assembly corrections. ([`MUMmer`](https://github.com/mummer4/mummer#dnadiff)) + +**Performance summary** +1. Visualize reads metrics and summary of software versions. ([`MultiQC`](http://multiqc.info/)) +1. Compile various QC metrics. ([`summarize_qc.py`](/bin/summarize_qc.py)) + +```mermaid +graph TD + subgraph filter_reads["Filter Reads"] + kraken2["Kraken2
classify opxv reads"] + seqtk["Seqtk
subsample opxv reads"] + fastp["Fastp:
quality trim + filter"] + kraken2 -- read_assignments --> seqtk + seqtk -- subsampled_reads --> fastp + end + +subgraph ref_based["Reference-based assembly"] + direction LR + bwa["Bwa mem
map to reference"]; + samtools["Samtools
calculate mapping stats"]; + ivar_cons["Ivar consensus
generate consensus fasta"]; + ivar_var["Ivar variants
call variants"] + var_filt[Filtered variants]; + bwa -- bam --> samtools + bwa -- bam --> ivar_cons + bwa -- bam --> ivar_var + ivar_var-."if filter=true".->var_filt + ref_fasta([Consensus fasta]); + vcf([VCF]); + + ivar_cons --> ref_fasta + ivar_var --> vcf +end + + subgraph denovo[Denovo assembly] + %% Assign the processes (nodes) + unicycler["Unicycler
Denovo assembly"] + graph_recon["graph_reconstruct.py
Reconstruct assembly path"] + bwa_denovo["Bwa mem
map to assembly"] + samtools_denovo["Samtools
calculate mapping stats"] + ivar_polish["Ivar consensus
generate consensus fasta"] + summarize_asmb["Mummer and Quast
Summarize assembly"] + + %% Assign output files + assembly_fasta(["Final assembly"]) + assembly_contigs(["Assembly contigs"]) + + %% Assign the arrows + %%fastp -- cleaned_reads --> unicycler + unicycler -- assembly_graph --> graph_recon + graph_recon -- fasta assembly --> bwa_denovo + graph_recon -."if unable to reconstruct graph".-> assembly_contigs + %%fastp -- cleaned_reads --> bwa_denovo + bwa_denovo -- bam --> samtools_denovo + bwa_denovo -- bam --> ivar_polish + ivar_polish --> assembly_fasta + graph_recon --> summarize_asmb + assembly_fasta --> summarize_asmb + end + + subgraph summarize[Summarize and QC] + direction LR + %% Assign the processes (nodes) + multiqc["MultiQC
Gather and summarize"] + summarizeqc["Summarize_qc.py
Summarize all processes"] + + %% Assign output files + sample_summary(["sample_summary.tsv
Summary table of all processes"]) + + %% Assign the arrows + %%assembly_fasta --> multiqc + %%ref_fasta --> multiqc + multiqc --> summarizeqc + summarizeqc --> sample_summary + end + + %% Connect the subworkflows + filter_reads -- cleaned reads --> denovo + filter_reads -- cleaned reads --> ref_based + denovo --> summarize + ref_based --> summarize +``` + +## Quick Start + +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) + +2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. + - *Note*: if running this pipeline on CDC infrascructure (aspen, biolinux), use singularity containers. + +3. Clone this repo to your working environment: + + ```console + git clone git@git.biotech.cdc.gov:monkeypox/mpxv-assembly-nf.git + ``` + +4. Prepare your samples. You have two options: +> (A) Make a sample sheet which will act as pipeline input. The samplesheet should consist of three columns with sample ID, R1 and R2 specified. If you are using single-end data, only one fastq can be specified and the pipeline will auto detect this. Example: + +```console +sample,fastq_1,fastq_2 +CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz +``` +> (B) Pass a directory of FastQ files as your input and the pipeline will auto-create the samplesheet. See [Usage](../docs/usage.md) for more details. + +5. Start running your own analysis! + + ```console + nextflow run mpxvassembly-nf/main.nf --input {SAMPLESHEET.csv OR input_directory} --outdir {OUTDIR} --fasta {REF.fa} -profile sge,singularity --kraken_db {PATH/TO/DB} --gff {ANNOTATION.gff} --workflow {WORKFLOW} --filter {true/false} + ``` + + **note**: If you do not provide `--fasta`, `--gff`, or `--kraken_db`, they will default to the reference and gff in the `assets` folder of this repo, and a kraken db hosted on the SciComp file system, respectively. If you do not specify `--filter` then it will default to `true`. See `nextflow.config` for details. + +## Pipeline configuration + + Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. You can chain multiple config profiles in a comma-separated string. + + > - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. + > - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. + > - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. + +## Running on CDC cluster + +For use on an HPC cluster (rosalind, aspen) the workflow can be run as a job by the following steps: + +1) After logging in, activate the nextflow environment: + + ```console + module load nextflow + ``` + +2) Prepare file `cdc.confing` with the necessary `sge` submission parameters, add it to sub-directory [./conf/](./conf), and include it in [nextflow.config](./nextflow.config) with: + + ```groovy + // Load CDC config for operating on internal compute infrastructure + includeConfig 'conf/cdc.config' + ``` + +3) Submit individual processes as jobs to the scheduler using a profile defined in `cdc.config`: for example: + + ```consol + nextflow run main.nf --input {SAMPLESHEET.csv} --outdir {OUTDIR} --fasta {REF.fa} -profile sge,singularity --kraken_db {PATH/TO/DB} --gff {ANNOTATION.gff} + ``` + +## Documentation +### Basic usage +The **PolkaPox** pipeline requires two inputs: [1] a samplesheet (or input directory) `--input` and [2] a `--workflow` definition. Additional details are provided in [usage](/docs/usage.md). + +### Output +Pipeline outputs are organized into sub-directories for each step in the selected workflow. All paths are relative to the top-level results directory `--outdir` and additional details are provided in [output](/docs/output.md). + +``` +${outdir}/ + ├── bwa + ├── fastp + ├── final_assembly + ├── graph_recon + ├── graph_recon_mapping + ├── ivar + ├── ivar_variants + ├── kraken2 + ├── multiqc + ├── mummer + ├── pipeline_info + ├── quast + ├── sample_summary.tsv + ├── samtools + ├── seqtk + ├── unicycler + └── variant_summaries +``` +### De novo assembly +The **PolkaPox** pipeline includes de novo assembly optimized for the linear genome architecture of orthopoxviruses. Additional details are provided in [de novo](/docs/denovo.md). + +## Credits + +Contributors:\ +Lynsey Kovar | Hunter Seabolt | Shatavia Morrison | Kristen Knipe\ +Kyle O'Connell | Ethan Hetrick | Michael Weigand | Crystal Gigante\ +Dhwani Batra | Ankush Gupta | Jessica Rowell | Daisy McGrath\ +Yesh Kulasekarapandian | Jason Caravas + +## Contributions and Support + +If you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md). + +## Citations + +An extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file. + +You can cite the `nf-core` publication as follows: + +> **The nf-core framework for community-curated bioinformatics pipelines.** +> +> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen. +> +> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x). +--- +## Public Domain Standard Notice +This repository constitutes a work of the United States Government and is not +subject to domestic copyright protection under 17 USC § 105. This repository is in +the public domain within the United States, and copyright and related rights in +the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). +All contributions to this repository will be released under the CC0 dedication. By +submitting a pull request you are agreeing to comply with this waiver of +copyright interest. + +## License Standard Notice +The repository utilizes code licensed under the terms of the Apache Software +License and therefore is licensed under ASL v2 or later. + +This source code in this repository is free: you can redistribute it and/or modify it under +the terms of the Apache Software License version 2, or (at your option) any +later version. + +This source code in this repository is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the Apache Software License for more details. + +You should have received a copy of the Apache Software License along with this +program. If not, see http://www.apache.org/licenses/LICENSE-2.0.html + +The source code forked from other open source projects will inherit its license. + +## Privacy Standard Notice +This repository contains only non-sensitive, publicly available data and +information. All material and community participation is covered by the +[Disclaimer](https://github.com/CDCgov/polkapox/blob/master/DISCLAIMER.md) +and [Code of Conduct](https://github.com/CDCgov/template/blob/master/code-of-conduct.md). +For more information about CDC's privacy policy, please visit [http://www.cdc.gov/other/privacy.html](https://www.cdc.gov/other/privacy.html). + +## Contributing Standard Notice +Anyone is encouraged to contribute to the repository by [forking](https://help.github.com/articles/fork-a-repo) +and submitting a pull request. (If you are new to GitHub, you might start with a +[basic tutorial](https://help.github.com/articles/set-up-git).) By contributing +to this project, you grant a world-wide, royalty-free, perpetual, irrevocable, +non-exclusive, transferable license to all users under the terms of the +[Apache Software License v2](http://www.apache.org/licenses/LICENSE-2.0.html) or +later. + +All comments, messages, pull requests, and other submissions received through +CDC including this GitHub page may be subject to applicable federal law, including but not limited to the Federal Records Act, and may be archived. Learn more at [http://www.cdc.gov/other/privacy.html](http://www.cdc.gov/other/privacy.html). + +## Records Management Standard Notice +This repository is not a source of government records, but is a copy to increase +collaboration and collaborative potential. All government records will be +published through the [CDC web site](http://www.cdc.gov). + +## Additional Standard Notices +Please refer to [CDC's Template Repository](https://github.com/CDCgov/template) +for more information about [contributing to this repository](https://github.com/CDCgov/template/blob/master/CONTRIBUTING.md), +[public domain notices and disclaimers](https://github.com/CDCgov/template/blob/master/DISCLAIMER.md), +and [code of conduct](https://github.com/CDCgov/template/blob/master/code-of-conduct.md). \ No newline at end of file diff --git a/assets/MPXV-UK_P2.fasta b/assets/MPXV-UK_P2.fasta new file mode 100755 index 0000000..7349129 --- /dev/null +++ b/assets/MPXV-UK_P2.fasta @@ -0,0 +1,2820 @@ +>MT903344.1 Monkeypox virus isolate MPXV-UK_P2, complete genome +TAATTAATTTAATTTTACTATTTTATTTAGTGTCTAGAAAAAAATGTGTGACCCACGACCGTAGGAAACT +CTAGAGGGTAAGAAAAATCAATCGTTTATAGAGACCATCAGAAAGAGGTTTAATATTTTTGTGAGACCTA +TCGAAGAGAGAAAGGATAAAAACTTTTTACGACTCCATCAGAAAGAGGTTTAATATTTTTGTGAGACCCA +TCGAAGAGAGAAAGAGATGGTTAGTCAAGATATTTTTCTTAGTACAAAAGTCAATGTTTTAAAATATATG +GACGAGAATTAATTTGTCTGTATAAAAACTTGTGTGAAATTATGTACTAGAGAAAAAACGTGAGCAGTGT +CCCCTACATGGATTTTACAGATCATTTATATTCCAAAAATATTAACTATATACGTTTATTATATGATGTT +AACGTGTAAATTATAAACATTATTTTATGATGCAATTGTCTGACAACCTAGATTGGTATAAGGATGTTGA +TAAGCTCTACGAGAATATATTGTTGGACGTTATCGTTTACGAAATAGTTGAGACATCAGAAAGAGGTTTA +ATATTTTTGTGAGACCATCGAAGAGAGAAAGAGAATAAAAATATTTTTTTTTTTTTTTGTAAAACTTTTT +TATGAGACCAAGAGAATACGAATAGTGATCATATCGTATCACATATTGAAACAGAAAGAAGAAGTAACGA +GAGGTAACTTTTTGTGAATGTAGTTAAATATTTTTGTTTTGCAAACCGGAATATAGTGCCCGGTCTTTTT +TAATTCGTGGTGCGGTGTCTGAATCGTTCGATTAACCCAACTCATCCATTTTCAGATGAATAGAGTTATC +GATTCAGACACATGCTTTGAGTTTTGTTGAATCGATGAGTGAAGTATCATCGGTTGCACCTTCAGATGCC +GATCCGTCGACATACTTGAATCCATCCTTGACTTCAAGTTCAGATGATTCCTCACACATGTCTCCGATAC +GTACGCTAAACTCTAGGTTCTTGACACATTTTGTATCAACGATCGTTGAACCGATGATATCTTTGTAACT +CACTTTCTTATGTGAGATGTTAGACCCAAGTACTGGATGGGTCTTGATGTCACTGTCTTTCTCTTCTTCG +CTACATCTGATGTCGATAGACATCTCACAGTCTTTGATCATAGCCAGAGCTTCTTCACGCGTGATCGCGG +GAGAGTCCTTACCTTGTCCCGGTGACACGCTGGACAATCTAGTATTCACAGTGTTTCCATCAGAGGATTC +GGAGATGGATGAAATCTTTGGGCATTTGGTGAATCCAAAGTTCATGTTAAGACCCGCACCGACGATAGTG +TAATAAGTGGTGGGATCTCCTTTTACAACTTCTTCGGATACCTCATCATCTTCGGTCTCTGTAACTTCCG +TTACGGATTGACAAATCTTATCATTGGTCGGTGTTTGGTCTTGCTTTGTGACTTTGATAATAACATCGAT +TCCCATATGATGTTTGTTTTCTTCTTCAGTACACGAGGATGAAGATTGTTGAAGACTAGTAGGCATAGCA +GCTGCCACTAGGCACATGCATGCCAGGACAATATATTGTTTCATGATTGCTATTGATTGATTACTGTTCT +AGATGATTCTACTTTCTTACCATATAATAAATTAGAATATATTTTCTACTTTTACGAGAAATTAATTATT +GTATTTATTATTTATAGGTAAAAAAACTTACTATAAGTGGGTGGGATTCTGGGAATTAGTGATCAGTTTA +TGTATATCGCAACTAGCGGGCATATGGCTATTGACATCGAGAACATTACCCATATGATAAGAGATTGTAT +CATTTTCGTAGTCTTGAGTATTGGTATTACTATATAGTATGTAGATGTCGACGCTAGATAGACAGTCGCC +CACTAGAGTTACCGTCTCTGAATGCGGCATGATAGTATCATTCTTTGTTTTCGTTAACTGTTTGGAAGAT +GAATCTTTGTTGTTACATTTAATCTCGAAATTCAGAGTACATATCTTTGAAGTATTCTGATATCTATTTT +CTCCTGTAAAGAATCCTGAAGTTGCTACATTATTAAGGACAGAGAAGTATTCTGCACGAAAGACTGGATC +ACAATCTTTATGATTCATGGTAATAGTTAGTTCCGACGTTGAGATGGATTCGCTGAGACCGGTAGTGGTC +GTCCGAGTACACGATGTGTCGTTGACTGGATACAGGTTAATTTCCACATCGATATAGTTAAATGTATTGC +TGGTTACGACGGGTTCGCATTTATCTGTGGAAGAGACGGTGTGAGAATATGTTCCGGGACCACACGGAGA +ACAGATGACGTCTCCGGTAGACGTGTATCCGGATACTCCGTATCCTATTCCACACTTTGTTTTAGAAATA +CATGTTCTACACCCTGATGCTCCTTTGAGAAGACAATAATATCCTGGAGAGCATTCACAGATTCTATTGT +GAGTCGTGTTACACGATCGCGTCTCTACCTGATTACTATCACATCTTCCGTTACAACTTAGACAAGCCTG +TAAATGATTATTGTGAGATGTAAAGGTATCCGAACCACACGGTGTACATTGTGTATTAGTCTTGCTATCA +CATAATCTGGAAGCGTAAGTTCCCGGAGGACACGATAGACAACATAGATTACGGCTTCTGTATTCGTTGT +CTTTACACTTTCCATTGGATGGTGCATGTGGTGCTATATCTCTTCCGTTTATTATTATACATGAGAGAAA +CAATATATACGAGTATAATACGGACCTCATGATTTAATAATGTAGTAATCGTCGTCTTGTTACTGTTTGT +TTCCTACTTCTCCAATCATATAGATTATTTTTTAAATATTTTCTTTCTATCATGGATAATATTTGTAATG +GTTCTTTCCGTACAACATACTGTTTAGATGGTAGTCGCTTAGCTTGGTTATGATATTGCGCATAATTTCC +GGAGGCAAATACGATAGTCTAGATTGACTATCGATGGTAGACTCTAATTTATTGAGTGCTTTGTCGACGA +GTTTACTTTTATGCTCCATCGATAGATGACACTGTTCTATGAGATCGTCGTACATGGGAAATGAAATGCG +TTTGTCTGAATGTATGGCTTCGAGATATGTGTGATACCGGATGTCTTCTGTTCTCAATACCGTATACAAG +TCGGTGTCTGAGATTCGAATCTCTTTGAGGAGACTTATGTCACGACTACATTTTTCGATGATGGAATCTA +TCTTATCGAATGATATATTTTTCATAAATACACTTTTATAGTCCTCGTTTAAACAGAATTTAGTATGTAG +TTCCGCAAATGACTCGTCCCTTAATAGGCAGTAGGCTATTATCTTCTTTACGTAGTGATCGTCGTAGGGA +GAGAACTCCGACATCTTGTAGAACAACGATTTAATCATAGGTAGAGATACTTTCAGTCTGTGGTGGATAA +TGTCATTAACGACATCCGCCTTGTATATAATGTTTCTGTTTTCAAACACCAAGTCGAATACTGTCTTATC +GTCTTTAGTCGGAAGGTTGATGTCGTATCCGATGTATACGAGGTATGAGGCAACATTGTTATTGCAATTC +TGGAAGGCGGTATGAAGAGGAGTCATTGTATTATAGTATTCGTCTTTCTGAATGTCGAATCTATCTAGTA +GATACCGTAGTATATTGAGAGAGCGACTTCCATATCCTTGATTATGTTTTATGAATAGATAAAGTAGATG +TTGTCCTTCTTCCTTTTGTAATTTCCCGTATTTTTGTTCGTGCCAATTGAGTAACATTATGAGAATATGA +CCTGTTGCACAATCGTTCTTTATGTATTCCATGATGGGTGTACAATCAAGATTATTACGTATCCTCGTAT +CGGCTCCTCGAGATAAAAGAGCATACACCACACGAGGACTATGTTTGGTATACTGTTGAAGGTAAGTGTG +TAACGGCGTATTTCCGATTTTCGTAACCGCGTTAATGTTTGCTCCATGATCTATTATCGCGTAGATGAAT +CGCTTCTCAGCTCGCATCTTAGTGTGACTCTTTGACTTGTAATAATTGCTTTCGTGGAACGCGGATATGT +GTTTACAGTAGTAATGAAGAGAAGTGAGTCCATCCTCATCGACGCAATTAGGGTCAGATCCTTTAGTCAA +TAATTTGTACAGAACGTAATAGTTTAAGCTCCCATTGAATTTATATCTAAGATAACACAGCAATAGATCG +GATGATTTACTAAAGTCATCAATGGGGTCCGTTAGTATATCAAAGATCTTGTTATCGATTGATAGTGAAT +GAATCAGATAGTGGTGTAGAGGAATATGTCCTTTTTTATCCTTGCTATCAAAGTTACGCATGCCGTGGCG +TAACAATATCTTTAATACAGATGGATTAAATCGTGTATTCATCGTATAGCAATGTAATGGAGAGTTACCA +CATTTTAGTCGTTTATTCAGATCGCAGTGTTTAATAACTAATTTAAACAGATGAGATGATATATCCACAT +CAAAGAATGCGAGATACATATGACAGACATTATTGACAGAAATGTGACCTTCATTATCACCGTCGTCCAT +AAATGCGTTAGGTACGTACCACATACTATCGTTAACGATGCGCACAATCTCGTCCATTTCATCCATCTTC +ATAATGATTTACTTTTTCATAATTAGAGAAAAAGATCAAGGTATAAAAATTAGAAGTGTTAGACTATAAA +CTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACT +TATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTATTAACTCATTTCAA +GAAAGGTGGGTGGATAGAACTCTATATGACAGCTTGTGAAACAATTAGATCCCTAATTTCTAATGGAAGT +TTTGATAGGAGATTGTCATCAGTTGATACATTGTTTATTATCTCATCTATTAGAGCACGTCTGTTTAGAG +CTTTAGTGACCTGCTCGGTTACTTCTGTGTAAATCTTGAATCCTTTAGTGATACACTGTGTCAAAACTGG +ATGTTTAGAATACCTATGTAGAATATGGGAAGCATGCTTGTTTTTGTCTCTATTATAGATTAACTCATAC +ATGGTTGTATTATGAATTTTCATCTGCCTAATGTACTCCAATTCTTGTTTACAATCAATTATATAATCAA +AGAGTGATGATGCATACACATTACAAAGTGAATAATCTACCATCATAAAATACTTGATACAGAGCTTTAT +CACATCATGGTTTTCAATTGTATTATTAAGTATAGCTAATTTTATACAGTCAATAGACAATGGTTCTCTA +AGCAATATTTCTAATATTTTAAGATGTGCTTCCCTACGGGCGATGACAGATCCCCTATCCACGGCCACGT +CAAGACATGTATATCCATTACTCATTACTGCGTTGACATTTGCTCCATTTTCTAATAGCCATGATACTAA +ATCTATATAACCTGCATAGATAGCGCGATAAAGCAAGGTCCTTCCACCAGCATCTAGTTGATTGATATCT +TCAATATATGGGATACAAAGCTTATAAATTTCTAATACTGTGGGTTCATCTACAAGGAATCCCCTAGTAT +ACTGAATTATTTTATATAGATCTAATTTAACATCATTTTCATCTGGGATACCACAATTCAAAATAAACTC +AACAACACTACTTTCCTTTTTACATATTCCCCTAAAATAGGCATTCAAGCATTCTATTTTATATATTACA +GCCCCATGATCTACCATAAGATCAACAATGTCTATTTCTACATATGCATTAGATAGATAGTAAAGTAAGA +GATCTTGCACAGAATTACAATTCTTAATAATTATAGAGAAAATATCTTCCATATAATTCTTTGACACTAA +TGCAGATATAATATCTTTATATGTAATATATGCAAACAGTCTATCTACTATATACTGATCAATATTATCT +CTATGAATCCTAAAATAATCATACAGAACATCTACAGGATCACAAATTGGTTCAAGGAGAAATCTATCAA +ATATTTTCCTGTCAACAACTGGTTCTAGAACATAACAGTCAACACCTAATCCATGTTTTTTATAATCATC +TACCAAAGATAATGACCAAAGATCGAGGTCGTCGTGAAACTGCTCATCGACAGCCATGAAATCTACCGAC +TCCATGGTGCGAATCGCACTGTCTTATTCGCCATTGATTTTCATTTTTTATAATTATGTACATGTTTTCC +TTCTATTCTCAAGAGTCTACAAAAATATATTTTTTCGATATCTAAGTACTAAGTTTTTTTACTGTTTTTG +TTACTGTCTTCCATTCTTCTAACTAAAGATCTGAGATAAATTATACAATCTTCGCTATCGAACCATTTTT +GTAGTCTAAAGCCTGAAGTAATTAACCAACTGTTTTTATTAGTGGCTTTTTTCGATCTATCCTCGTCCTC +TCATCATCCTTATATTATTATCATTATTATCATAGTCTATTAAACACAAATCATCTACGTTTATAACAAC +ATTCTCATTATTAATTAGTTCTGTAGAATATCTTTAATAATTTGGCTATACATCTGTTCAATACTATCTA +TTGATGATTTCTTTTTTAAGACTTAAACTAGTTATGGTAATGACGATGAAATCGAGTAGTAACTTCTAAT +AAAGACTTGATATCATTATCATATGTTTGATCGTCATAGTTAATAGTGTGGCTAAATGGTACTGTTAATA +AGTTTATAGACAATATCATAGTATTTTCTTTCCAGAATTAGATTATTTTTTTAAATACTGATCCTCACAA +TTCCGTGATGTAGCAGTAGTTGGTGCATGGTCTATATCGTTAAAATGTATCATATATAATAGTTTTCTGA +CGTGGAGTACAGAATTTTCGATTAATGAGTTCATGGTAAGGAAGGGCAAATGCCTGTATATAATATACAT +AAGTTAATAGTTTTTTATCATATTTTCTAATACCATAATAAAAATTATCATTATTGCGTTTGGTAGTTCT +GCCCTATCATCTATATCACTGTCACTCTCGCTCTCACTATATCTTCTAAAATTACAAACAACTGGATATT +CGATAACAGCATTTGTGTAGTTTTTGTCTTTTACAGTATATACGTTATTGTCAAAATCTAAACAAATATT +AGCATAATACATCTATCTATAAGATCAGGATCCATGTTCGAGCATACTAGCCATGTATATTTGTAACTTC +GTCGTACAGCGTTAGATCAATAGAATAAACAATCGTGTGACGCAACTTTTTTACGATCTAGTTGTATGAG +TTTATCGTTTACATAAGCAATTAACGGCTTTAACAGATGATCTGAGTAATAATATACCTCTGTTATACGT +TTAATGTTCACGGTCTTAGTATTTTTAGATATCAATTGTGATTTACACCATATTCGACTCCCTTGTGTGT +AACGTTAGAAATTCTAAATCTATATTATCTATTACAGCGTAAAACACATTCAATATTGTATTGTTATTTT +TATATTATTTACACAATTAACAATGTATTATTAGTTTATATTACTGAATTAATAATATAAAATTCCCAAT +CTTGTCATAAACACAAAATCCATTAAAAATGTCGATAAAATATCTGATGTTGTTGTTCGCTGCTATGATA +ATCAGATCATTAGCCGATAGTGGTAATGCTATCGAAACAACATCGCCAGAAATTACAAACGCTACAACAG +ATATTCCAGCTATCAGATTATGTGGTCCAGAGGGAGATGGATATTGTTTACACGGTGACTGTATCCACGC +TAGAGATATCGACGGTATGTATTGTAGATGCTCTCATGGTTATACAGGTATTAGATGTCAGCATGTAGTA +TTAGTAGACTATCAACGTTCAGGAAAACCAGACACTACAACATCATATATCCCATCTCTAGGTATTGTGC +TTGTATTAGTAGGCATTATTATTACGTGTTGTCTATTATCTGTTTATATGTTCACTCGAAGAACTAAACT +ACCTATACAAGATATGGTTGTGTTATATTTTTTATAAAATTTTTTTATGAGTATTTTTACAAAAATGTAT +ATGTATAAAAAAAATACTAAGTATACGATGTATCCTGTATTATTTGTATTTATCTAAACAATACTTCTGC +CTCTAGATGGGATACAAAAATTTTTTATTTCAGCATATTAAAGTAAAATCTAGTTACCTTGAAAATGAAT +ACAGTGGGTGGTTCCGTATCACCAGTAAGAACATAATAGTCGAATACAGTATCCGATTGAGATTTTGCAT +ACAATACTAGTCTAGAAAGAAATTTGTAATCATCCTCTGTGACAGGAGTCCATATATCTGTATCATCGTC +TAGTTTTTATCAGTGTCCTATGCTATATTCCTGTTATCATCATTAGTTAATGAAAATAACTCTCGTGCTT +CAGAAAAGTCAAATATTGTATCCATACATATATCTCCAAAACTATCACTTATACGTTTATCTTTAACGAA +CATATACCTAGATGGTTATTTACTAACAGACATTTTTTCAAGATCTATTGACAATAACTCCTATAGTTTC +CACATCAACCAAGTAATGATCATCTATTGTTATATAACAATAACATAACTCTTTTCCATTTTTATCAGTA +TCTATATCAACGTCGTTGTAGTGAATAGTAGTCATTGATCTATTATATGAAACGGATATGTCTAGTTAAT +ATTTTCTTTGATTTAAAGTCTATAGTCTTTACAAACATAATATCCTTATCCGACTTTATATTTCCTGTAG +GGTGGCATAATTTTATTCTGCCTCCACAATCAGTGTTTCCAAATATATTACTAGACAATATTCCATATAG +TTATTAGTTAAGGGACCCAATTAGAACACGTACGCGCTTATTCATCATTTGGATCGTATTTCATAAAAGT +TATTATGTTATAGATGTCAACACATTCTACATTTTTTTAATTGTCTATATAGTATTTTTCTGATATTTTC +TATAATATCAGAATTGTCTTCCATAGGAAGTTGTATACTATTCGGAATCAGTTACATGTTTAAATAATTC +TCTGATGTCATTCCTTATACAATCAAATTCATTATTAAACAGTTTAATAGTCTGTAGACCTTTATCGTCG +TACATATCCATTGTCTTATTAGTTACGCTTATTTTTATGGGTTTTACGTTGCTTTATTATATTTTATAAT +AATGATTGTTTGACAATGTCGTAGTATAGATATATTATTAGAGGAGGTATAATTATAAAAAGTTTCTGAG +TACGATGTTATAAGAGGAGAGGACACATTAACATCATACATCAATTAACTACATTCTTATAACATTGTAA +TCAAAAGAATTGCAATTTTGATGTATAACAACTGTCAATGGAATTGTATATTACAAATTACGGTATGTTG +TAACAACAAATACCGATCGGTAATTGTCTCTGCCGCTGTAATAGAATTAATTATATATCTATTACACCGG +CCTTGTATCATAATAAAGTTGTGGTAGTATGATCTCCATATTTATAATTTAGTACTTTGTATTTAGTTTT +TTTGGAATCATAAAAAAAGTTTTACTAATTTAAAATTTAAAAAGTATTTACATTTTTCACTGTTTAGTCG +CGGATATGGAATTCGATCCTGTCAAAATCAATACATCATCTATAGATCATGTAACAATATTACAATACAT +AGATGAACCAAATGATATAAGACTAACAGTATGCATTATCCGAAATGTTAATAACATTACATATTATATC +AATATCACAAAAATAAATCCACATTTGGCTAATCGATTTCGGGCTTGGAAAAAACGTATCGCCGGAAGGG +ACTATATGACTAACTTATCTAGAGATACAGGAATACAACAATCAAAACTTACTGAAACTATACGTAACTG +TCAAAAAAATAAAAACATATATGGTCTATATATACACTACAATTTAGTTATTAATGTGGTTATTGATTGG +ATAACCGATGTGATTGTTCAATCAATATTAAGAGGGTTGGTAAATTGGTACATAGCTAATAATACATATA +CTCCAAATACACCCAATAATACTACAACCATTTCTGAGTTGGATATCATCAAAATACTGGATAAATACGA +GGACATGTATAGAGTAAGTAAAGAAAAAGAATGTGGAATTTGCTATGAAGTTGTTTACTCAAAACGATTA +GAAAACGATAGATACTTTGGTTTATTGGATTCGTGTAATCATATATTTTGCATAACATGTATCAATATAT +GGCATAGAACACGAAGAGAAACCGGTGCGTCAGATAATTGTCCTATATGCCGTACACGTTTTAAAAAAAT +AACAATGAGCAAGTTCTATAAGCTAGTTAACTAATAAATAAAAAGTTTAATTATCGACGATATATGTCGT +TATTTTTCTCTCATATGAAAGATTAATTTGATTCTAATATAATCTTCAGTATTGGATGAATCTCAATTCA +AATTAATTCCATTAGATTAGATTAGATTAGATCATAAATAAAAATAGTAGCACGCACTACTTCAGCCAAA +TATTCTTTTTTGAAACGCCATCTAGCGTAATGAGAACACAAGTGAACCTATAATGAGCAAATTTATTAGT +ATCGGTTACATGAAGGACTTTACGTAGAGTGGTGATTCCTCCATCTGTGGTACGAACGGTTTCATCTTCT +TTGATGCCACCACCCAGATGTTCTATAAACTTGGTATCCTCGTCCGATTTCATATCATTTGCCAACCAAT +ACATATAGCTAAACCCAGGCATACGTTCCACACATCCGGAACAATGAAATTCTCCAGAAGATGTTACAAT +GGCTAGATTTGGACATTTGGTTTCAACCGCGTTAACATATGAGTGAACACACCCATACATGAAAGCGATG +AGAAATAGGATTCTCATCTTGCCAAAATATCACTATAAAAAATTTATTTATCAATTTTAAAGGTATAAAA +AAATACTTATTGTTGCTCGAATATTTTGTATTTGATGGTATACGGAAGATTAGAAATGTAGGTATTATCA +TCAACTGATTTTATGATGGTTTTATGAATTTTATTATGCTTCACTATTGCATCGGAAATAATATCATATG +CTTCCACGTATATTTTATTTTGTTTTGACTCATAATACGCACGTAATTCTGGATTATTGGCATATCGATG +AATAATTTTAGCTCCATGCTCAGTAAATATTAATGAGAACATAGTGTTGCCTCCTACCATTATTTTTTTC +ATCTCATTCAATTCTTGATTGCAGAGATCTATATAATCATTATAGCGTTGACTTATGGACTCTGGAATCT +TAGACGATGTACAGTCATCTATAATCATGGTATATTTAATACATTGTTTTATAGCATAGGCATTATCTAC +GATATTAGATACTTCACTCAATGAATCAATCACACAATCTAATGTAGGTTTATGACATAATAGCATTTTC +AGCAGTTCAATGTTTCTAGATTCGTTGATGGCAATGGTTATACATGTATATCCGTTATTTGATCTAATGT +TGACATCTGAACCGGATTCTAGCAGTAAAGATACTAGAGATTGTTTATTATATCTAACAGCCTTGTGAAG +AAGTGTTTCTCCTCGTTTGTCAATCATGTTAATGTCTTTAAGATAAGGTAGACAAATGTTTATAGTACTA +AGAATTGGGCAAACATAAGACATGTCACAAAGACCCTTTTTGTATGTATAAGTGTAGAAATTATAACATC +CATAGTTGGATTCACATAGGTGTCCAATCGGGATCTCTCCATCATCGAGATGATTGACGGCATCTCCCCC +TTCCTTTTTTAGTAGATATTTCATCGTGTAAGAATCAATATTAATATTTCTAAAGTATCTGTGTATAGCC +TCTTTATTTACCACAGCTCCATATTCCAACATGCATTCCACTAGAGGGATATCGATATCGCCGAATGTCA +TATACTCAATTAGTATATGTTGGAGGACATCCGAGTTCATTGTTTTCAATATCAAAGAGATGGTTTCCTT +ATCATTTCTCCATAGTGGTACAATACTACACATTATTCCGTACGGCTTTCCATTCTCCAAAAACAATTTT +ACCAAATCTAAATCTACATCTTTATTGTATCTATAATCACTATTTAGATAATCAGCCATAATTCCTCGAG +TGCAACATGTTAGATCGTCTATATATGAATAAGCCGTGTTATCTATTCCTTTCATTAACAATTTAACGAT +GTCTATATCTATATGAGATGACTTAATATAATATTGAAGAGCTGTACAATAGTTTTTATCTATAGAAGAC +GGCTTGATTCCGTGATTAATTAGACATTTAACAACTTCCGGACGCACATATGCTCTCGTATCCGACTCTG +AATACAGATGAGCGATGATATACAGATGCAATACGGTACCACAATTTCGTGGTTGATAATCATCATACAC +GTATCCGTACTCGTCATCCTCATAAAGAACACTGCATCCATTTTCTATGAACAAATCAATAATTTCAGGA +ACAGGATCATCTGTCATTACATAATTTTCTATAACTGAACGATGGTTTTCACATTTAACACTCAAGTCAA +ATCCATGTTCTACCAACACCTTTATCAAGTCAACGTCTACATTTTTTGATTTCATATAGCTGAATATATT +AAAGTCATTTATGTTGCTATATCCAGTAGCTTCTAGTAGAGCCATCGCTATATCCTTATTGACTTTAACA +TGTCTACTATTTGTGTATTCTTCTATTGGGGTAAACTGTCTCCAATTTTTATGTAATGGATTAGTGCCAC +TATCTAGTAGTAGTTTGACGACCTCAACATTATTACAATGCTCATTGAAAAGGTATGCGTGTAAAGCATT +ATTCTTGAATTGGTTCCTGGTATCATTAGGATCTCTGTCTCTCAACATCTGTTTAAGTTCATCGAGAACC +ACCTCCTCATTTTCCAGATAGTCAAACATTTTGACTGAATAGAAGTGAATGAGCTACTGTGAACTCTATA +CACCCGCACAACTAATGTCATTAAATATCATTTTTGAATGTATTTATACCATGTCAAAAACTTGTACAAT +TATTAATAAAAATAATTAGTGTTTAAATTTTACCAGTTCCAGATTTTACACCTCCGTTAACACCTCCATT +AACCCCACTTTTTACACCACTGGACGATCCTCCTCCCCACATTCCACTGCCACTAGATGTATAAGTTTTA +GATCCTTTATTACTACCATCATGTCCATGGATAAAGACACTCCACATGCCGCCACTACTACCCCCTTTAG +ACGACATATTAATAAGACAAGTTTAACAATAAAATTAATCACGAGTACCCTACTACCAACCACTATTATA +TGATTACAGTACCTTGACTAAAGTCTCTAGTCACAAGATCAATACTACCAACCTACGCTATTATATGATT +ATAGTTTCTATTTTTATAGGAACGCGTACGAGAAAATCAAATGTCTAAGTTCTAACGGTAGTGTTGATAA +ACGATTGTTATCCGCGGATACCTCATCTATCATGTTGTCTATTTTCTTACTTTGTTCTATTAACCTATTA +GCATTATATATTATTTGATTATAAAACTTATATTGCTTATTAGCCCAATCTGTAAATATCGGATTATTAA +CATATCGTTTCTTTGTAGGTTTATTTAACTTGTACATCACTGTAAGCATGTCCGTACCATTTATTTTAAT +TTGACACATATCAGCAATTTCTTTTTCGCAGTCGGTTATATATTCTATATAAGATGGATACGTATCACAT +ATGTACTTATAGTCTACTAATATGAAGTACTTAATACATATTTTCAGTAACGATTTAGCCTTATTACCTA +TTAATAAGTGCCTGTCGTTGGATAGGTAATCAACTGTTTTCTTAATACATTCGATGGTTGGTAATTTACT +CAAAATAATTTCCAATATCTTAATATATATTTCTGCTATTTCTGGTATACATGCATGTGCCATTATAACA +CAAATACCAATACATGTAGACCCATATGTTGTTGTTATATTAATATCTGCGCCATTATCTATTAACCATT +CTATTAGGGCAACACTATGCGACTCGATACAATAATAAAGTATACTACGTCCATGTTTATCTATTTTGTT +TATATCATCGATATACGGCTTACAAATTTCTAGTATCGATAACACTTCTGACTCGTGAATAAATAAGGTA +GGGAATAACGGCATAATATTTATTATGTTATCATCATTAACAACTACGTTTCCATTTTTTAAAATATACT +CTACAACTTTAGGATCCCTATTGTCAAATCTTTTAAAATATTTATTTATATGCTTAAATCTATATAATAT +AGCTCCTTCCCTAATCATACATTTGATAACATTGATGTACACTGTATGATAAGATACATATTCTGACAAT +AGATCTTGTATAGAATCTGTATATCTTTTAAGAATTGAGGATATTATGACATTATTACGTAAACTATTAC +ACAATTCTAAAATATAAAATGTATCATGGGCAGATAATAGTTTATCCACTATATAATTATCTATTTTATG +ATTTTTCTTCCTATATTGTTTACGTAAATAGATAGATAGAATATGCATTAGTTCATTACCGCTATAGTTA +CTATCGAATAACACGTCAAATATTTCCCGTTTAATATCGCATTTGTCAACATAATAATAGAGTATGGTAC +GTTCACGATAAGTATAATGACACATCTCGTTTTCGTGCGAAATTAAATAGTTTATCACGTCCAAAGATGT +CACATAACCATCTTGTGACCTAGTAATAATATAATAATAGAGAACTGTTTTACCCATTCTATTATCATAA +TCAGTGGTGTAGTCATAATCTAAATAATCAAACTCGTCATCCCAATTAAAATAAATATAATCAGTACATT +GAATGGGTATGATATTGTACCCATACTGTATGTTGCTACATGTAGGTATTCCTTTATCCAATAATAGTTT +AAATACATCTATATTAGGATTTGATGTTGTCGCGTATTTCTCTACAATATTAATACCATTTTTGATACTA +TTTATTTCTATACCTTTCGAAATTAGTAATTTCAATAAGTCTATATCGATGTTATCAGAACATAGATATT +CAAATATATCAAAATCATTGATATTTTTATAGTCGACTGACGACAATAACAAAATCACAACATCGTTTTT +GATATTATTATTTTTTTTGGTAACGTATGCCTTTAATGGAGTTTCACCATCATACTCATATAATGGATTT +GCACCACTTTCTATTAATGATTGTGCACTACTGGCATCGATGTTAAATGTTTTACAACTATCATAGAGTA +TCTTATCGTTAACCATGATTGGTTGTTGATGTTATCACATTTTTTGGTTTCTTTCATTTCAGTTATGTAT +GGATTTAGCACGTTTGGGAAGCATGAGCTCATATGATTTCAGTACTGTAGTGTCAGTACTATTAGTTTCG +ATCAGATCAATGTCTAGATCTATAGAATCAAAACACGATAGGTCAGAAGATAATGAATATCTGTACGCTT +CTTCTTGTACTGTAACTTCTGGTTTTGTTAGATGGTTGCATCGTGCTTTAACGTCAATGGTACAAATTTT +ATCCTCGCTTTGTGTATATCATATTCGTCTCTAGTATAAAATTCTATATTCAAATTATCATGCGATGTGT +GTACGCTAACGGTATCAATAAACGGAGCACAGCATTTAGTCAACAGTAATCCAAAATTTTTTAAAGTATA +TCTTAACGAAAGAAGTTGTCATCGTTAGAGTGTGGTAAATCATTGTCTACGGTACTAGATCCTCATAAGT +GTATATATCTAGAGTAATATTTAATTTATCAAATGGTTGATAATATGGATGTTGTGGCAATTTCCTAATA +CGGAAATAAGACATAAACACGCAATAAATCTAATTGCGGACATGTTACACTCCTTAAAAAATACGAATAA +ACACTTTGGCTTTTAGTAAGTGTCATTTAACACTATACTCATATTAATCCATGGACTCATAATCTCTATA +CGGGATTAACGGATGTTCTATATACGGGGATGAGTAGTTCTCTTCTTTAACTTTATACTTTTTACTAATC +ATATTTAGACTGATGTATGGGTAATAGTGTTTGAAGAGCTCGTTCTCATCATCAGAATAAATCAATATCT +CTGTTTTTTTGTTATACAGATGTATTACAGCCTCATATATTACGTAATAGAACGTGTAATCTACCTTATT +AACTTTCACCGCATAGTTGTTTGCAAATACGGTTAATCCTTTGACCTCGTCGATTTCCGACCAATCTGGG +CGTATAATGAATCTTAACTTTAATTTCTTGTAATCATTCGAAATAATTTTTAGTTTGCATCCGTAGTTAT +CTCCTCTATGTAACTGTAAATTTCTCAACGCGATATCTCCATTAATAATGATGTCGAATTCGTGTTGTAT +ACCCATACTGAATTGATGAACTAATACCGACGGTATTAATAGTAATTTACTTTTCATCTTTACATACTTG +GTAATAGTTTTACTATCATAAGTTTATAAATTCCACAAGCTACTATGGAATATACCAACCATCTTAGTAT +AGAACACATGTCTTAAAGTTATTAATTAATTACATGTTGTTTTATATATCGCTACGAATTTAAACAGAGG +AATCAGTTAGGAAGAAAAAATTATCTGTCATCATCATCATCTATTGGATAACATCTCTGTATTCTACGAT +AGAGTGCTATTTTAAGATGTGACAGATCCGTGTCATCAAATATATACTCCATTAAAATGATTATTCCGGC +AGCGAACTTGATATTGGATACATCACGACCTTTGTTAATATCCACGACAATAGACAGCAATCCCATTGTT +CCATAAACAGTGAGTTTATCTTTCTTTGAAGTGATATTTTGTAGAGATCTTATAAAACTGTCGAATGACA +TCGTATTTATATCTTTAGCTAAATCATATATGTTACCATCATAATATCTAACAGCATCTATCTTAAACGT +TTCCATCGCTGTAAAGACGTTTCCGATAGATGGTCTCGTTTCATCAGTCATACTGAGCCAACAAATGTAA +TCGTGTATAACATCTTTGATAGAATCAGACTCTAAAGAAAAGGAATCGGCTTTATTATACACATTCATGA +TAAACTTAATGAAAAATGTTTTTCGTTGTTTAAGTTGGATGAATAGTATGTCTTAATAATTGTTATTATT +TCACTAATTAATATTTAGTAACGAGTACACTCTATAAAAACGAGAATGACATAACTAATCATAACTAGTT +ATCAAAGAATGTCTAGGACGCGTAATTTTTTATGGTATAGATCCTGTAAGCGTTGTCTGTATTCTGGAGC +TATTTTCTCTATCGCATTAGTGAGTTCAGAATATGTTATAAATTTAAATCGAATAACGAACATAACTTTA +GTAAAGTCGTCTATATTAACTCTTTTATTTTCTAGCCATCGTAATACCATGTTTAAGATAGTATATTCTC +TAGTTACTACGATCTCATCGTTGTCTAGAATATCGCATACTGAATCTACATCCAATTTTAGAAATTGGTC +TGTGCTACATATCTCTTCTATATTATTGTTGATGTATTGTCGTAGAAAACTATTACGTAGACCATTTTCT +TTATAAAACGAATATATAGTACTCCAATTATCTTTACCGATATATTTGCATACATAATCCATTCTCTCAA +TCACTACATCTTTAAGAGTTTGGTTGTTAAGATATTTGGCTAAACTATATAATTCTATTAGATCATCAAC +AGAATCAGTATATATTTTTCTAGATCCAAAGATGAACTCTTTGGCATCCTCTATAATATTATCAGAAAAG +ATATTTTCGTGTTTTAGTTTATCAAGATTTAACCTGTTCATATCCATGATTAACGACGTCATATAACCAC +ATAAAATAAAAATCCATTTTCATTTTTAGCACAATACTATTCATAATTGATATTGATGTAATATTTTGTT +ACTTTGAACGTAAAGACAGTACACGGGTCCGTATCTCCAACAAGCACGTAGTAATCAAATTTGGTGTTGT +TAAACTTCGCAATATTCATCAATTTAGATAGAAACATATACTCATCATCTGTTTTAGGAATCCATGTATT +ATTACCACTTTCCAACTTATCATTATCCCAGGCTATGTTTCGCCCATCATCGTTGCACAGAGTGAATAAT +TCTTTTGTATTCGGTAGTTCAAATATATGATCCATGCATATATCGACAAAGCTATTGTAGATGTGATTTT +TCCTAAATCTAATATAAAACTCGTTTACTAGCAAACATTTTCCTGATTTATCGACCAAGACACACATGGT +TTCTAAATCTATCAAGTGGTGGGGATCCATAGTTATAACGCAGTAACATAAATTATTACCTTCTTGACTG +TCGCTAATATCTATATACTTATTGTTATCGTATTGGATTCTACATATAGATGGCTTGTATATCAAAGATA +TAGAACACATAACCAATTTATATTCTCGCTTTGTATTTTCGAATCTAAAGTTAAGAGATTTAGAAAACAT +TATATCATCGGATGATGATATCACTGTTTCCAGAGTAGGATATATTAAAGTCTTTAAAGATTTTGTCCGA +TTCAAATAAATCACTAAATAATATCCCATATTATCATCTGTTATAGTCGTGTCATTAAATCTATTATATT +TTATGAAAGATATATCACTGCTCACCTCTATATTTCGTACATTTTTAAACTGTTTGTATAATATCTCTCT +AATACAATCAGATATATCTATTGTGTCGGTAGACGATACCGTTACATTTGAATTAATGGTGTTCCATTTT +ACAACTTTTAACAAGTTGACCAATTCATTTCTAATAGTATCAAACTCTCCATGATTAAATATTTTAATAG +TATCCATTTTATATCACTACGGACATAAACCATTGTATATTTTTTATGTTTATTAGTGTACACATTTTGG +AAGTAAGTTCCTGGATCGGATGTCACCGCAGTAATATTGTTGATTATTTCTGACATCGACGTATTATATA +GTTTTTTAATTCCATATCTTTTAGAAAAGTTAAACATCCTTATACAATTTGTGGAATTAATATTATGAAT +CATGGTTTTTACACATAGATCTATTACAGGCGGAACATCAATTATTATGGCAGCAACTAGTATCATTTCT +ACATTGTTTATGGTGATGTTTATCTTCTTCCAGCGCATATAGTCTAATATCGATTCAAACGCGTGATAGT +TTATACCATTCAATATAATCGCTTCATCCTTTAGATGGTGATCCTGAATGTGTTTAAAAAATTATACGGA +GACGCCGTAATAATTTCCCCATTGATAGAAAATATCACGCTTTCCATTTTCTTGAAGTACTAAAAGTAAT +TATAATATAATGTAAAGGTTTATATATTCAATATTTTTTATAAAAAAAATCATTTTGACATTAATTCCTT +TTTAAATTTCAGTCTATCATCTATAGAAACATATTCTATGAATTTATAAAATGCTTTTACGTATCCTATC +GTAGGTGATAGAACCGCTAAAAAACCTATCGAATTTCTACAAAAGAATCTGTTATATGGTATAGGGAGAG +TATAAAACATTAAATGTCCGTACTTATTAAAGTATTCAGTAGCCAATCCTAACTCTTTCGAATAATTATT +AATGGCTCTTATTCTGTACGAATCTATTTTTTTGAACAATGGACCTAGTGGTATATCTTGTTCTATGTAT +CTAAAATAATGTCTGACTAGATCCGTTAGTTTAATATCCGCAGTCATCTTGTCTAGAATGGCAAATCTAA +CTGCGGGTTTAGGCGTAGGCGTTAGTTTAGTTTCTATATCTACATCTATGTCTTTATCTAACACCAAAAA +TATAATAGCTAATATTTTATTACAATCATCCGGATATTCTTCTACGATCTCACTAACTAATGTTTCTTTG +GTTATACTAGTATAGTCACGATCAGACAAATAAAGAAAATCAGATGATCGATGAATAATACATTTAAATT +CATCATCTGTAAGATTTTTGAGATGTCTCATTAAAATATTATTAGTGTCAGTTCTCATTATCATATATTG +ACAGCAGCTATTACACTTATTTTATTTTTCTGTATTTTATTACTTTTCACCATATAGATCAGTCATTAGA +TCATCAAAATACTTTTCAATCATCCTAAAGAGTATGGTGAACGAATCTTCCCATCTAATTTCTGAACGTC +TACCAATGTCTCTAGCCACTTTGGCACTAATAGCGATCATTCGCTTAACATCTTCTACATTATTAACTGG +TTGATTCAATCTATCTAGCAATGGACCGTCGGATAGCGTCATTCTCATGTTCTTAATCAATGTACATACA +TCGTCATCATCTACCAATTCATCAAACAATATAAGCTTTTTAAAATCATCATTATAATAGGATGGATCGC +CGTCATTTCTCCAAAGAATATATCTAATAAGTAGAGTCCTCATGCTTAGTAATTTAACTATTTTAGTTAA +CAACTATTTTTTATGTTAAATCAATTAGTAACACCGCTATGTTTAATACTTATTCATATTTTAGTTTTAG +GATCGAGAATCAATACAAAAATTAATACATCAATTTTGGAAATACTTAGTTTCCACGTAGTCAATGAAAC +ATTTGAGCTCATCGTAAAGGACGTTCTCGTACAAGACGTAACTATAAATTGGTTTATATTTGTTCAAGAT +AGATACAAATCCGATAACTTTTTTGACGAATTCTACGGGATTCACTTTAAAAGTGTCATACCGGGTTCTT +TTTATTCTTTTAAACAGATCGATTGTGTGATGTTGATTAGGTCTTTTACGAATTTGATACAGAATAGCGT +TTACATATCCACCATAGTAATCAATAGCCATTTGTTCGTATGTCATAAATTCTTTAATTATATGACACTG +TGTATTATTTAGTTCGTCCTTGTTCATCATTAGGAATCTATCCAATATGGCAATTATATTAGAACTATAA +CTGCGTTGTATGCGCATGTTGATGTGTCTGTTTATACAATCAATTATACTAGGATCCATACCACTACAAT +CGGGTAAAATTGTAGCATCATATACCATTTCTAGTACTTTAGATTCATTGTTATCCATTGCAGAGGACGT +CATGATCGAATCCAAAAAAATATATTATTTTTATGTTATTTTGTTAAAAATAATCATCAAATACTTCGTA +AGATACTCCTTCATGAACATAATCAGTTACAAAACGTTTATATGAAGTAAAGTATCTACAATTTTTACAA +AAGTCAGGATGCATAAGTACAAAGTACGCGATAAACGGAATAATAATAGATTTATCTAGTTTATCTTTTT +CTATCTCTTTCATAGTTATATACATGGTCTCAGAAGTCGGATTATGTAACATCAGCTTCGATAAAATGAC +TGGGTTATTTAGTCTTACACATTCGCTCATACATGTATGACCGTTAACTATAGAGTCTACACTAAAATGA +TTGAATAATAGATAGTCTACCATTGTTTCGTATTCAGATAGTACAGCGTAGTACATGGCATCTTCACAAA +TTATATCATTATCTAATAGATATTTGACGCATCTTATGGATCCCACTTCAACAGCCATCTTAAAATCGGT +AGAATCATATTGCTTTCCTTTATCGTTAATAATTTCTAGAACATCATCTCTATCATAAAAGATACAAATA +TTAACTGTTTGATCAGTAATAACATTGCTAGTCGATATCAATTTGTTAATAAGATGCGCTGGGCTCAATG +TCTTAATAAGAAGTGTAAGAGGACTATCTCCGAATTTGTTTTGTTTATTAACATCCGTTGATGGAAGTAA +AAGATTTATAATGTCTACATACTTGACTGTTTTAGAGCATACAATATGGAGAGGCGTATTTCCATCATGA +TCTGGTTTTGAGGGACTAATTCCTAGTTTCATCATCCATGAGATTGTAGAAGCTTTTGGATTGTCTGACA +TAAGATGTCTATGAATATGATTTTTGCCAAATTTATCCACTATCCTGGCTTCGAATCCGATAGACATTAT +TTTTTTAAACACTCTTTCTGAAGGATCTGTACACGCCAACAACGGACCACATCCTTCTTCATCAACCGAG +TTGTTAATCTTGGCTCCATACTGTACCAATAAATTTATTCTCTCTATGACTTCATCATCTGTTCCCGAGA +GATAATATAGAGGTGTTTTATTATGTTTATCACATGCGTTTGGATCTGCGCCGTGCACCAGCAGCATCGC +GACTATTCTATTATTATTAATTTTAGAAGCTATATGCAATGGATAATTTCCATCATCATCCGTCTCATTT +GGAGAGTATCCTCTATGAAGAAGTTCTTCTATAAATCGTTCATCTAGTCCTTTAATGCCACAATACGCAT +GTAGAATGTGATAATTTCCAGAGGGTTCGATAACTTGTAGCATATTCCTAAATACATCTAAATTTTTACT +ATTATATTTGGCATAAAGAGATAGATAATACTCGACCGACATAATGTTGTGTTGTCCATTATAGTATAAA +AATTAATATTTCTATTTCTATATATTTGCAACAATTTACTCTCTATAACAAATATCATAACTTAGTTCTT +TTATGTCAAGAAGGCACTGGTTTAATTCATCTATAAATGTCACTCCATAACTACCACGCATACTATACTC +AGAATTATGATAAAGATATTTATTCTTGGGGTGTAAGTAATGGGGATTAATCTTTGTTGGATCAGTCTCT +AAGTTAACACATGTCACACATGATCCATTTATAGTTATATCACACGATGATGATTTATGAATTGATTCCG +GAAGATCGCTATTGTATTTTGTAGTTCCACAATTCATTTCCATACATGTTATTGTCACACTAATATTATG +ATGAACTTTATCTAGCCGCTGAGTGGTAAACAACAGAACAGATAGTTTATTATCTTTACCAACACCCTCA +GCCGCTGCCACAAATCTCTGATCCGTATCCATGATGGTCATGTTTACTTTTAGTCCGTATCCAGTCAACA +CTATGTTAGCATTTCTGTCGATATAGCTTTCACTCATATGACACTCACCAATAATTGTAGAATTAATGTC +GTAATTTACACCAATAGTGAGTTCGGCGACAAAGTACCAGTACCGGTAATCTTGTCGATGAGGACATATA +GTATTCTTGTATTCTACCGAATACCCGAGAGATGCGATACAAAAGAGTAAGACTAATTTGTAAACCATCT +TACTCAAAAATATGCGACAATAGGAAATCTATCTTATACACATAATTATTCTATCAATTTTACCAATTAG +TTAGTGTAATGTTAACAAAAATGTGGGATAATTTAATAGTTTTTCCTTACACAATTGACATACATGAGTC +TGAGTTCCTCGTTTTTGCTAATTATTTCGTCCAATTTATTATTCTTGACATCGTCAAGATCTTTTGTATA +GGAGTCAGACTTGTATTCAACATGTTTTTCTATAATCATCTTAGCTATTTCGGCATCATCCAATAGTACA +TTTTCCAGATTAACAGAATAGATATTAATGTCGTATTTGAACAGAGCCTGTAACATCTCAATGTCTTTAT +TATCTATAGCCAATTTGATGTCCGGAATGAAGAGAAGGGAATTGGTGTTTGTTGACGTCATATAGTCGAG +CAAGAGAATCATCATATCCACGTGTCCATTTTTTATAGTGGTGTGAATACAACTAAGGAGAATAGCCAGA +TCAAAAGGAGATGGTATCTCTGAAAGAAAGTAGGAAACAATACTTACATCATTAAGCATGACAGCATGAT +AAAATGAAGTTTTCCATCCAGTTTTCCCATAGAACATCAGTCTCCAATTTTTCTTAACAAACAGTTTTAC +CGTTTGCATGTTACCACTATCAACCGCATAATACAATGCGGTGTTTCCTTTGTCATCAAATTGTGAATCA +TCCATTCCACTGAATAGCAAAATCTTTACTATTTTGGTATCTTCTAATGTGGCTGCCTGATGTAATGGAA +ATTCATTATCTAGAAGATTTTTCAATGCTCCAGCGTTCAACAACGTACATACTAGACGCACGTTATTATC +AGCTATTGCATAATACAAGACACTATGACCATTGATATCCGCCTTAAATGCATCTTTGCTAGAGAGAAAG +CTTTTCAGTTGCTTAGACTTCCAAGTATTAATTCGTGACAGATCCATGTCTGAAACGAGACGCTAATTAG +TGTATATTTTTTCATTTTTTATAATTTTGTCATATTGTACCAGAATTAATAATATCTCTAATAGATCTGA +TTAGTAGATATATGGCTATCGCAAAACAACATATACACATTTAATAAAAATAATATTCATTAAGAAGATT +CAGATTCCACTGTACCCATCAATATAAAATAAAATAATTATTCCTTACATCGTACCCATAAACAATATAT +TAAGTATATTCCACCTTACCCATAAACAATATAAATCCAGTAATATCATGTCTAATGATGAACACAAATG +GTGTATTAAATTCCAGTTCTTCAGGAGATGATCTCGCCGTAGCTACCATGATAGTAGATGCCTCCGCTAC +AGTTCCTTGTTCGTCTACATCTATCTTTACATTCTGAAACATTTTATAAATATATAATGGGTCCCTAGTC +ATATGTTTAAACGACGCCTTATCTGGATTAAACATACTAGGAGCCATCATTTCGGCTATCGACTTAATAT +CCCTCTTGTTTTCGATAGAAAATCTAGGGAGTTTAAGATTGTACATTTTATTCCCTAATTGAGATGACCA +ATATTCTAATTTTGCAGGCGTGATAGAATCTGTGAAATGGGTCATATTATCACCTATTGCCAGGTACATA +CTAATATTAGCATCCTTATACAGAAGGCGCACCATATCATATTCTTCGTCATCGATTGTGATTGTATTTC +CTTGCAATTTAGTAACTACGTTCATCATGGGAACCGTTTTCGTACCGTACTTATTAGTAAAACTAGCATT +GTGTGTTTTAGTGATATCAAACGGATATTGCCACGTACCTTTAAAATATATAGTATTAATGATTGCCCAT +AGAGTATTATCGTCGAGCATAGTAGAATCAACTACATTAGACATACCAGATCTACGTTCTACTATAGAAT +TAATTTTATTAACCGCATCTCGTCTAAAGTTTAATCTATATAGGCCGAATCTATGATATTGTTGATAATA +CGACGGTTTAATACACACAGTACTATCGACGAAACTTTGATACGTTAGATCTGTGTACGTATATTTAGAT +GTTTTCATCTTAGCTAATCCGGATATTAATTCTGTAAATGCTGGACCCAGATCTCTTTTTCTCAAATTCA +TAGTATTCAATAATTCTACTCTAGTATTACCTGATGCAGACAATAGCGACATAAACATAGAAAACGAATA +CCCAAACGGTGAGAAGACAATATTATCATTATCATCCTCATCCCCATTTTGAATATTTTTATACGCTAAT +ATACCAGCATTGATAAATCCCTGCAGACGATATGCGGATACTGAACACGCTAATGATAGTATCAATAACG +CAATCATGATTTTTATGGTATTAATAATTAACCTTATTTTTATGTTTGGTATAAAAATTATTGATGTCTA +CACATCCTTTATAATCAACTCTAATCACTTTAACTTTTACAGTTTTCCCTACAAGTTTATCCCTATATTC +AACATATCTATCCATATGCATCTCTTAACACTCTGCCAAGATAGCTTCAAAGTGAGGATAGTCAAAAAGA +TAAATATATAGAGTATAATCATTCTCGTATACTCTGCCCTTTATTACATCGCCCGCATTGGGCAACGAAT +AACAAAATGCAAGCATCGTGTTAACGGGCTCGTAAATTGGGATAAAATTATGTTTTTATTGTTTATCTAT +TTTATTCAAGAGAATATTCAGGAAGTTCCTTTTCTGGTTGTATCTCGTCGCAGTATATATCATTTGTACA +TTGTTTCATATTTTTTAATAGTCTACACCTTTTAGTAGGACTAGTATCGTACAATTCATAGCTGTATTTT +GAATTCCAATCACGTATAAAAATATCTTCCAATTGTTGACGAAGACCTAATCCATCATCCGGTGTAATAT +TAATAGATGCTCCACATATATCCGTAAAGTAATTTCCTGTCCAATTTGATGTACCTATATACGCCGTTTT +ATCGGTTACCATATATTTTGCATGGTTTACCCTAGAATACGGAATGGGAGGATCAGCATCTGGTACAATA +AATAGCTTTACTTCTATATCTATGTTTTTAGATTTTAGCATAGCTATAGATCTTAAAAAGTTTCTCATGA +TAAACGAAGATCGTTGCCAGCAACTAATCAATAGCTTAACGGATACTTGTCTGTCTATAGCGGATCTTCT +TAATTCATCTTCTATATAAGGCCAAAACAAAATTTTACCCGCCTTTGAATAAATAATAGGAATAAAGTTC +ATAACAGATACATAAACGAATTTACTCGCATTTCCGATACATGACAATAAAGCGGTTAAATCATTGGTTC +TTTCCATAGTACATAATTGTTGTGGTGCAGAAGCAATAAATACAGAGTGTGGAACACCGCTTACGTTAAT +ACTAAGAGGATGATCTGTATTATAATACGACGGATAAAAGTTTTTCCAATTATATGGTAGATTGTTAACT +CCAAGATACCAGTATACCTCAAAAATTTGAGTGAGATCCGCTGCCAAGTTCCTATTATTGAAGATCGCAA +TACCCAATTCCTTGACCTGAGTTAGTGATCTCCAATCCATGTTAGCGCTTCCTAAATAAATATGTGTATT +ATCAGATATCCAAAATTTTGTATGAAGAACTCCTCCTAGGATATTTGTAATATCTATGTATCGTACTTCA +ACTCCGGCCATTTGTAGTCTTTCAACATCCTTTAATGGTTTGTTGGATTTATTGACGGCTACTCTAACTC +TTACTCCTCTTTTGGGTAATTGTACAATCTCGTTTAATATTACCGTGCCGAAATTCGTACCCACTTCATC +CGATAAACTCCAATAAAAAGATGATATATCTAGTGTTTTTATGGTATTGGATAGAATTTCCCTCCACATG +TTAAATGTAGTCAAATATACTTTATCAAATTGCATACCTATAGGAATAGTCTCTGTAATCACTGCGATTG +TATTATCCGGATTCATTTTATTTGTTAAAAAAATAATCCTATATCACTTCACTCTATTAAAAATCCAAGT +TTCTATTTCTTTCATGACTGATTTTTTAACTTCATCCGTTTCCTTATGAAGATGATGTTTGGCGCCTTCA +TAAATTTTTATTTCCCTATTACAATTTGCATGTTGCATGAAATAATATGCACCTGAAACATCGCTAATCT +CATTGTTTGTTCCCTGGAGTATGAGAGTCGGGGTGTTAATCTTGGGAATTATTTTTCTAACCTTGTTGGT +AGCCTTCAAGACCTGACTAGCAAATCCAGCCTTAATTTTTTCATGATTGACTAATGGATCGTATTGGTAT +TTATAAACTTCATCCATATCTCTAGATACTGATTCTGGACATAGCTTTCCGACTGACGCATTTGGTGTAA +TGGTTCCCATAAGTTTTGCAGCTAGCAGATTCAGTCTTGGAACAGCGTCTGCATTAACTAGAGGAGACAT +TAGAATCATTGCTGTAAACAAGTTTGGATTATCGCAAGCAGCTAGTATAGAAATTGTTGCTCCCATGGAA +TGACCCAATAAGAAGACTGGAACTCCTGGATAAGTAGATTTAATAGTCACCACGTGCTGTACCACATCTC +TAACATACTTACCAAAGTCATCAATCATCATTTTTTCACCATTACTTCTTCCATGGCCAATATGATCATG +TGAGAATACTAAAATTCCTAACGATGATATGTTTTCAGCTAGTTCGTCATAACGTCCAGAATGTTCACCA +GCTCCATGACTTATGAATACTAATGCCTTAGGATATGTAATAGGTTTCCAATATTTACAATATATGTAAT +CATTGTCCAGATTGAACATACAGTTTGTACTCATGATTCACTATATAACTATCAATATTAACAGTTCGTT +TAATGATCATATTATTTTTATGTTTTATTGATAATTGTAAAAATATACAATTAAATCAATATAGAGGAAG +GAGACGGTACTGTATTTTGTGAGATAGTAATGGAGACTAAATCAGATTATGAGGATGCTGTTTTTTACTT +TGTGGATGATGATGAAATATGTAGTCGCGACTCCATCATTGATCTAATAGATGAATATATCACGTGGAGA +AATCATGTTATAGTGTTTAATAAAGATATTACCAGTTGTGGAAGACTGTACAAGGAATTGATAAAGTTCG +ATGATGTCGCTATACGGTACTATGGTATTGATAAAATTAATGAGATTGTCGAGGCTATGAGTGAAGGAGA +CCACTACATCAATCTTACAGAAGTCCATGATCAGGAAAGTCTATTCGCTACCATAGGAATATGTGCTAAA +ATCACTGAACATTGGGGATACAAAAAGATTTCAGAATCTAAATTCCAATCATTGGGAAACATTACAGATC +TGATGACCGACGATAATATAAACATCTTGATACTTTTTCTAGAAAAAAAAATGAATTGATGATATAAGTG +TCTTCATAACGCATTATTACGTTAGCATTCTATTATCCAGTGTTAAAAAAATTATCCTATCATGTATTTG +AGAGTCTTATATGTAGCAAACATGATAACTGCAATACCCATAATCTTTAGATATTCACGCGTGCTATGGA +TGGCATTATCCCGCGGTGCGGAAATGTACGTTATATAATCTACAAAATAATCATCGCATATAGTATGAGA +TAGTAGAGTAAACATTTTTATCGTTTCTACTGGGTTCATACATCGTCTACCCAATTCGGTAATGAATGAA +ATTGTCGCCAATCTTACACCCAAACCCTTGTTGTTCATTAGTATAGTATTAACTTCATTATTTATGTCAT +AAACTGTAAATGATTCTGTAGATGCCATATCACACATGATATTCATGTCACTATTATAATCATTATTAAC +TTTATCACAATACGTGTTGATAATATCTACATATGATCTAGTTTTTGTGGGTAATTGTCTATACAAGTCG +TCTAAACGTTGTTTACTCATATAGTATTGAACAGCCATCATTACATGGTCCCGTTCCGTTGATAGATAAT +CGAGTATGTTAGTAGACTTGTCAAATCTATATACCATATTTTCTGGAAGCGGATATACATAGTCGCGATC +ATCATTATCACTAGCCTCATCCTCTATATCATGTACATGTACATAATCTATGATATTATTATACATAAAC +ATCGACAACATACTATTGTCTATTATCTAAGTCCTGTTGATCCAAACCCTTGATCTCCTCTATCTGTACT +ATCTAGAGATTGTACTTCTTCAAGTTCTGGATAATATATACGTTGATAGATTAGCTGAGCTATTCTATCT +CCAGTATTTACATTAAACGTACATTTTCCATTATTAATAAGAATGACTCCTATGCTTCCCCTATAATCTT +CGTCTATTACACCGCCTCCTATATCAATGCCTTTTAGGGACAGACCAGACCTAGGAGCTATTCTACCATA +GCAGAACTTAGGCATGGACATACTAATATCTGTCTTAATTAACTGTCGTTCTCCAGGAGGGATAGTATAA +TCGTAAGCGCTATACAAATCATATCCGGCAGCACCCGGCGATTGCCTAGTAGGTGATTTAGCTCTGTTAG +TTTCCTTAACAAATCTAACTGGTGAGTTAATATTCATGTTGAACATAAAAAATATCATTTTATTTCAAAA +TTATTTACCATTCCATTCCATCCCATATATTCCATGAATAAGTGCGATTATTGTACACTTCTATAGTATC +TATATACGATCCACGATAAAATCCTCCTATCAATAGCAGTTTATTATCCACTATGATCAATTCTGGATTA +TCCCTCGGATAAATAGGATCATCTATCAGAGTCCATGTATTGCTGGATTCACAATAAAATTCCGCATTTC +TACCAACCAAGAATAACCTTCTACCAAACACTAACGCACATGATTTATAATGAGGATAATAAGTGGATGG +TCCAAACTGCCACTGATCATGATTGGGTAGCAAATATTCTGTAGTTGTATCAGTTTCAGAATGTCCTCCC +ATTACGTATATAACATTGTTTATGGATGCCACTGCTGGATTACATCTAGGTTTCAGAAGACTCGGCATAT +TAACCCAAGCAGCATCCCCGTGGAACCAACGCTCAACAGATGTGGGATTTGGTAGACCTCCTACTACGTA +TAATTTATTGTTAGCGGGTATCCCGCTAGCATACAGTCTGGGGCTATTCATCGGAGGAATTGGAATCCAA +TTGTTTGATATATAATTTACCGCTATAGCATTGTTATGTATTTCATTGTTCATCCATCCACCGATGAGAT +ATACTACTTCTCCAACATGAGTACTTGTACACATATGGAATATATCTATAATTTGATCCATGTTCATAGG +ATACTCTATGAATGGATACTTGTATGATTTGCGTGGTTGTTTATCACAATGAAATATTATGTTACAGTCT +AGTATCCATTTTACATTATGTATACCTCTGGGAGAAAGATAATTTGACCTGATTACATTTTTGATAAGAA +GTAGCAGATTTCCTAATCTATTTCTTCGCCTCATATACCACTTAATGACAAAATCAACTACATAATCCTC +ATCTGGAACATTTAGTTCGTCGCTTTCTAGAATAAGTTTCATAGATAGATAATCAAAATTGTCTATGATG +TCATCTTCCAGTTCCAAAAAGTGTTTGGTAATAAAGTCTTTAGTATGACATAAGAGATTGGATAGTCCGT +ATTCTATACCCATCATGTAACACTCGATACAATATTCCTTTCTAAAATCTCGTAGGATAAAGTTTATACA +AGTGTAGATGATAAATTCTACAGATGTTAATATAGAAGCACGTAATAAATTGACGACGTTATGACTATCT +ATATATACCTTTCCAGTATATGAGTAAATAACTATAGAAGTTAGACTGTGAATGTCAAGGTCTAGACAAA +CCCTCGTAACTGGATCTTTATTTTTTGTGTATTTTTGGCGTAAATGTGTGCGAAAGTATGGAGATAACTT +TTTCAATATCGTAGAATTGACTATTATATTACCTCCTATAGCTTCAATAATTGTTTTGAATTTCTTAGTC +GTGTACAATGCTAATATATTCTTACAGTACACAGTATTGACAAATATCGGCATTTATGTTTCTTTAAAAG +TCAACATCTAAAGAAAAATGATTGTCTTCTTGAGACATAACTCCCATTTTTTGGTATTCACCCACACGTT +TTTCGAAAAAATTAGTTTTTCCTTCCAATGATATATTTTCCATGAAATCAAACGGATTGGTAACATTGTA +AATTTTTTTAAATCCCAATTCAGAAATCAATCTATCTGCGACGAATTCTATATATGTTTTCATCATTTCA +CAATTCATTCCTATGAGTTTAACTGGAAGAGCCACAGTAAGAAATTCTTGTTCAATGGATACCGCATTTG +TTATAATAAATCTAACGGTTTCTTCACTCGGTGGATGCAATAAATGTTTAAACATCAAACATGCGAAATC +GCAGTGCAGACCCTCGTCTCTACTAATTAATTCGTTAGAAAACGTGAGTCCGGGCATTAGGCCACGCTTT +TTAAGCCAAAATATGGAAGCGAATGATCCGGAAAAGAAGATTCCTTCTACTGCAGCAAAGGCAATAAGTC +TCTCTCCATAACCGGCGCTGTCATGTATCCACTTTTGAGCCCAATCGGCCTTCTTTTTTACACAAGGCAT +CGTTTCTATGGCATTAAAGAGGTAGTTTTTTTCATTACTATCTTTAACATAAGTATCGATCAAAAGACTA +TACATTTCCGAATGAATGTTTTCAATGGCCATCTGAAATCCGTAGAAACATCTAGCCTCGGTAATCTGCA +CTTCTGTACAAAATCGTTCTGCTAAATTTTCATTCACTATTCCGTCACTGGCTGCAAAAAACGCCAATAC +ATGTTTTATAAAATATTTTTCGTCTGGTGTTAGTTTATTCCAGTCATTGATATCTTTAGATATATCCACT +TCTTCCACTGTCCAAAATGATGCCTCTGCCTTTTTATACATATTCCAGATGTCATGATATTGGATTGGGA +AAATAACAAATCTATTTGGATTTGGTGCAAGGATAGGTTCCATAACTAAATTAACAATAGTAGTAATTTT +TTTTCAGTTATCTGTATGACGACTGTACTTGGATCTTTTGTATATCGCTATCGCCGCAATCACTACAATA +ATTACAAGTATTATTGATAGCATTGTTATTACTACTATCATAATTAAATTATCGACATTCATGGGTGTTG +AATAATCGTTATCATCATTTTGTAATTGTGACGTCATACTAGATAAATCATTTGTGAGATTGTTGTGGGA +AGCGGGCACGGAAGATGCATTATCATTATTATTTAACGCCTCCCATTCGGATTCACAAATGTTACGCACG +TTCAAAGTTTTATGGAAACTATAATTTTGTGAAAACAGATAACAAGAAAACTCGTCATCGTTCAAATTTT +TAACGATAGTAAACCGATTAAACGTCGAGCTAATTTCTAACGCTAGCGACTCTGTTGGATATGGGTTTCC +AGATATATATCTTTTCAGTTCCCCTACGTATCTATAATCATCTGTAGGAAATGGAAGATATTTCCATTTA +TCTACTGTTCCTAATATCATATGCGGTGGTGTAGAACCATTAAGCGCGAAAGATGTTATTTCGCATCGTA +TTTTAACTTCGCAATAATTTCTGGTTAGATAACGCACTCTACCAGTCAAGTCAATGATATTAGCCTTTAC +AGATATATTCATAGTAGTCGTAACGATGACTCCATCTTTTAGATGTGATACTCCTTTGTATGTACCAGAA +TCTTCGTACCTCAAACTCGATATATTTAAACAAGTTAATGATATATTAACGCGTTTTATGAATGATGATA +TATAACCAGAAGTTTTATCCTCTGTGGCTAGCGCTATAACCTTATCATTATAATACCAACTAGTGTAATT +AATATGTGACATGACAGTGTGGGTACAAATATGTACATTATCGTCTACGTCGTATTTGATACATCCGCAT +TCAGCCAACAAATATAAAATTACAAAAACTCTAACGACGTTTGTACACATCTTGATGCGGTTTAATAAAT +GTTTTGATTTCAATTTATTGTAAAAAAAGATTCGGTTTTATACTGTTCGATATTCTCATTGCTTATATTC +TCATCTATCATCTCCACACAGTCAAATCCATGGTTAACATGTACCTCATCAACCGGTAAAAGACTATCGG +ATTCTTCTATCATCATAACTCGAGAATATTTAATTTGGTGGTCATTATTAATCAAGTCAATTATCTTATT +TTTAACAAACGTAAGTATTTTACTCATTTTTTTATAAAAACTTTTAGAAATATACAGACTCTATCGTGTG +TCTATATCTTCTTTTTATATCCAATGTATTTATGTCTGATTTTTCTTCATTTATCATATATAATGGTCCA +AATTCTACACGTGCTTCGGATTCATCCAGATCATTAAGGTTCTTATAATCGCAACATCCTTCTCTTCCAT +CTTCTACATCTTCCTTCTTATTCTTAGCGTCACAGAATCTACCACAGCAGGATCCCATGACGAGAGTCAC +ATTAAACTAATTCATTTTCAATTATAATATACTGATTAGTAATGACAATTAAAATAAAAATATTCTTCAT +AACCGGTAAGAAAGTAAAAAGTTCACATTGAAACTATGTCAGTAGTTATACATCATGAGATGATATACTC +TATTTTGGTGGAGGATTATATGATATAATTCGTGGATAATCATTCTTAAGACACATTTCTTCATTCGTAA +ATCTTTTCACATTAAATGAGTGTCCATATTTTGCAATTTCTTCATATGATGGCGGTGTACGTGGACGAGG +CTGCTCCTGTTCTTGTAGTCGTCGACTGTCGTGTTTGCGTTTAGATCCCTCCATTATCGCGATCGCGTAG +TGAGTACTATTTATACCTTGTAATTAAATTTTTTTATTAATTAAACGTATAAAAACGTTCCGTATCTGTA +TTTAAGAGCCAGATTTCGTCTAATAGAACAAATAGCTACAGTAAAAATAACTAGAATAATCGCTACACCC +ACTAGAAACCACGGATCGTAATACGGCAATCGGTTTTCGATAATAGGTGGAACGTATATTTTATTTAAGG +ACTTAACAATTGTCTGTAAACCACAATTTGCTTCCGCCGATCCTGTATTAACTATCTGTAAAAGCATATG +TTGACCGGGAGGAGCCGAACATTCTCCGATATTCAATTTTTGTATATCTATAATGTTATTAACCTCCGCA +TACGCATTACAGTTCTTTTCTAGCTTGGATACTACACTAGGTACATCATCTAAATCTATTCCTATTTCCT +CAGCGATAGCTCTTCTATCCTTTTCCGGAAGTAATGAAATCACTTCAATAAATGATTCAACCATGAGTGT +GAAACTAAGTCGAGAATTACTCATGCATTTGTTAGTTATTCGGAGCGCGCAATTTTTAAACTGTCCTATA +ACCTCTCCTATATGAATAGCACAAGTGACATTAGTAGGGATAGAATGTTGAGCTAATTTTTGTAAATAAC +TATCTATAAAAAGATTATACAAAGTTTTAAACTCTTTAGTTTCTGCCATTTATCCAGTCTGAGAAAATGT +CTCTCATAATAAATTTTTCCAAGAAACTAATTGGGTGAAGAATGGAAACCTTTAATCTATATTTATCACA +GTCTGTTTTGGTACACATGATGAATTCTTCTAATGCTGTACTAAATTCGATATCTTTTTCGATTTCTGGA +TATGTTTTTAATAAAGTATGAACAAAGAAATGGAAATCGTAATACCAGTTATGTTCAACTTTGAAATTGT +TTTTTATTTTCTTGTTAATGATTCCAGCCACTTGGGAAAAGTCAAAGTCGTTTAATGCCGATTTAATACG +TTCATTAAAAACAAACTTTTTATTCTTTAGATGAATTATTATTGGTTCATTGGAATCAAAAAGTAAGATA +TTATCGGGTTTAAGATCTGCATGTAAAAAGTTGTCACAACAGGGTAGTTCGTAGATTTTAATGTATAACA +GAGACATCTGTAAAAAGATAAACTTTATGTATTGTACCAAAGATTTAAATCCTAATTTGATAGCTAACTC +GGTATCTACTTTATCTGCCGAATACAGTGCTAGGGGAAAAATTATAATATTTCCTCTTTCGTATTCGTAA +TTAGTTCTCTTTTCATGTTCGAAAAAGTGAAACATGCGGTTAAAATAGTTTATAACATTAATATTACTGT +TAATAACTGCCGGATAAAAGTGGGATAGTAATTTCACGAATTTGATACTGTCCTTTCTCTCGTTAAACGC +CTTTAGAAAAACTTTAGAAGAATATCTCAATGAGAGTTCCTGACCATCCATAGTTTGTATCAATAATAGC +AACATATGAAGAACCCGCTTATACAGAGTATGTAAAAATGTTAATTTATAGTTTAATCCCATGGCCCACG +CACACACGATTAATTTTTTTTCATCTCCCTTTAGATTGTTGTATAGAAATTTGGGTACTGTAAACTCCGC +CGTAGTTTCCATGGGACTATATAATTTTGTGGCCTCGAATACAAATTTTACTACATAGTTATCTATCTTA +AAGACTATACCATATCCTCCTGTAGATATGTGATAAAAATCGTCGTTTATAGGATAAAATCGTTTATCTT +TTTGTTGGAAAAAGGATGAATTAATGTAATCATTCTCTTCTATCTTTAGTAGTGTTTCCTTATTAAAATT +CTTAAAATAATTTAACAATCTAACTGACGGAGCCCAATTTTGGTGTAAATCTAATTGGGACATTATGTTG +TTAAAATATAAACAGTCTCCTAATATAACAGTATCTGATAATCTATGGGGAGACATCCATTGATATTCAG +GGGATGAATCATTGGCAACACCCATTTATTGTACAAAAAGCCCCAATTTACAAACGAAAGTCCAGGTTTG +ATAGAGATAAACTATTAACTATTTTGTCTCTGTTTTTAACACCTCCACAGTTTTTAATTTCTTTGGTAAT +GAAATTATTCACAATATCAGTATCTTCTTTATCTACCAGAGATTTTACTAACTTGATAACCTTGGCTGTC +TCATTCAATAGGGTAGTGATATTTGTATGTATGATATTGATATCTTTTTGAATTGTTTCTTTTAGAAGTG +ATTCTTTGATGGTATCAGCATACGAATTACAATAATGCAGAAACTCAGTTAACATGCAGGAATTATAGTA +AGCCAATTCCAATTGTTGCCTGTATTGTATTAGAGTATTAATATGCGCAATGATGTCCTTGCGTTTCTCT +GATAGAATGCGAGCAGCGATTTTGGCGTTATCATTTGACGATATTTCTGGAATGACGAATCCTGTTTCTA +CTAACTTCTTGGTAGGACAAAGTGAAACAATCAAGAAAATAGCTTCTCCTCCTATTTGTGGAAGAAATTG +AACTCCTCTAGATGATCTACTGACGATAGTATCTCCTTGACAGATATTGGACCGAACTACGGAAGTACCT +GGAATGTAAAGCCCTGAAACCCCCTCATTTTTTAAGCAGATTGTTGCCGTAAATCCTGCACTATGCCCAA +GATAGAGAGCTCCTTTGGTGAATCCATCACTATGTTTCAGTTTAACCAAGAAACAGTCAGCTGGTCTAAA +ATTTCCATCTCTATCTAATACAGAATCCAACTTGATGTCAGGGACTATGACCGGTTTAATGTTATATGTA +ACATTGAGTAAATCCTTAAGTTCATAATCATCGTTGTCATCAGTTATGTACGATCCAAACAATGTTTCTA +CCGGCATGGTGGATACGAAGATGCTATCCATCAGAATGTTTCCCTGATTAGTATTTTCTATATAGCTATT +CTTCTTTAAACGATTTTCCGAATCAGTAACTATGTTCATTTTTTTAGGAGTAGGACGTCTAGCCAGTATG +GAAGAGGATTTTCTAGATACTCTCTTCAACATCTTTGATCTCAATGGAATGCAAAACCCCATGGTGTAAC +AACCAACGATAAAAATAATATTGTTTTTTCACTTTTTATAATTTTACCATCTGACTCATGGATTCATTAA +TATCTTTACAAGAGCTACTAACGTATAATTCTTTATAACTGAACTGAGATATATACACCGGATCTATGGT +TTCCATAATTGAGTAAATGAATGCTCGGCAATAACTAATGGCAAATGTATAGAACAACGAAATTATACTA +GAGTTGTTAAAGTTAATATTTTCTATGAGTTGTTCCAATAAATTATTTGTTGTGACTGCGTTCAAGTCAT +AAATTATCTTGATACTATCCAGTAAACAGTCTTTAAGTTCTGGAATATTATCATCCCATTGTAAAGCCCC +TAGTTCGACTATCGAATATCCTGCTCTGATAGCAGTTTCAATATCGACGGACGTCAATACTGTAATAAAG +GTGGTAGTATTGTCATCATCGTGATAAACTACGGGAATATGGTCGTTAGTAGGTACCGTGACTTTACACA +ACGCGATATATAACTTTCCTTTTGTACCATTTTTAACGTAGTTGGGACGTCCTGCAGGGTATTGTTTTGA +AGAAATGATATCGAGAACAGATTTGATACGATATTTGTTGGATTCCTGATTATTCACTATAATATAATCT +AGACAGATAGATGATTCGATAAATAGAGAAGGTATATCGTTGGTAGGATAATACATCCCCATTCCAGTAT +TCTCGGATACTCTATTGATGACACTAGTTAAGAACATGTCTTCTATTCTAGAAAACGAAAACATCCTACA +TGGACTCATTAAAACTTCTAACGCTCCTGATTGTGTTTCGAATGCCTCGTACAAGGATTTCAAGGATGCC +ATAGATTCTTTGACCAACGATTTAGTATTGCGTTTAGCATCTGATTTTTTTATTAAATCAAATGGTCGGC +TCTCTGGTTTACTACCCCAATGATAACAATAGTCTTGTAAAGATAAACCGCAAGAAAATTTATACACATC +CATCCAAATAACCCTAGCACCGTCGGATGATATTAATGTATTATTATAGATTTTCCATCCACAGTTATTG +GGCCAGTATACTGTTAGCAACGGTATATCGAATAGATTACTCATGTAACCTACTAGAATGATAGTTCGTG +TACTAGTCATAATATCTTTAATCCAATCTAAGAAATCTAAAATTAGATCTTTTACACTATTAAAGTTAAC +AAAGGTATTACCCGGGTACGTGGATATCATATATGGTATTGGTCCATTATCAGTAATGGCTCCATAAACT +GATACGGCGATGGTTTTTATATGTGTTTGATCTAATGAGGACGAAATTCGCGCCCACAATTCATCTCTAG +ATATGCATTTAATATCGAACGGTAACACATCAATCTCGGGACGCGTATATGTTTCTAAATTCTTAATCCA +AATATAATGATGACCTATATGCCCTATTATCATACTGTCAACTATAGTATACCTAGAGAACTTTCGATAC +ATCTGCTGTTTCCTGTAATCGTTAAATTTTACAAATCTATAACATGCTAAACCTTTTGACGACAGCCATT +CATTAATTTCTGATATGGAATCTGTATTCTCAATACCGTATCGTTCTAAAGCCAGTGCTATATCTCCCTG +TTCGTGGGAACGCTTTCGTATAATATCGATCAATGGATAATATGAAGTTTTTGGAGAATAATATGATTCA +TGATCTATTTCGTCCATAAACAATCTAGACATAGGAATTGGAGGCGATGATCTTAATTTTGTGCAATGGG +TCAATCCTATAACTTCTAATATTGTAATATTCATCATCGACATAACACTATCTATGTTATCATCGTATAT +TAGTATACCACGACCTTCTTCATTTCGTGCCAAAATGATATACAGTCTTAAATAATTACGCAATATCTCA +ATAGTTTCATAATTGTTAGCTGTTTTCATCAAGGTTTGTATCCTGTTTAACATGATGGCGTTCTATAACG +TCTCTATTTTCTATTTTTAATTTTTTTAAATTTTTAACGATTTACTGTGGCTAGATACCCAATCTCTTTC +AAATATTTTTTTAGCCTCGCTTACAAGCTGTTTATCTATACTATTAAAACTGACGAATCCGTGATTTTGG +TAATGGGTTCCGTCGAAATTTGCCGAAGTGATATGAACATATTCGTCGTCGACTATTAACAATTTTGTAT +TATTCTGAATAGTGAAAACCTTCACAGATAGATCATTTTGAACACACAACGCATCTAGACTTCTGGCGGT +TGCCATAGAATATACGTCGTTCTTATCCCAATTACCAACTAGAAGTCTGATCTTAACTCCTCTATTAATG +GCTGCTTCTATAATGGAGTTGTAAATGTCAGGCCAATAGTAGCTATTACCGTCGACACGTGTAGTGGGAA +CTATGGCCAAATGTTCAATATCTATACTAGTCTTAGCCGACTTGAGTTTATCAATAACTACATCAGTGTC +TAGATCTCTAGAATATCCCAATAGGTGTTCTGGAGAATCAGTAAAGAACACTCCACCTATAGGATTCTTA +ATATGATACGCAGTGCTAACTGGCAGACAACAAGCCGCAGAGCATAAATTCAACCATGAATTTTTTGCGC +TATTAAAGGCTTTAAAAGTATCAAATCTTCTACGAAGATCTGTGGCCAGCGGAGGATAATCAGAATATAC +GCCTAACGTTTTAATCGTATGTATAGATCCTCCAGTAAATGACGCGTTTCCTACATAACATCTTTCATCA +TCAGACACCCAAAAACAACCGAGTAGTAGTCCCACATTATTTTTTTTATCTATATTAACGGTTATAAAAT +TTATATCCGGGGAGTGACTTTGTAGCTCTCCCAGATTTCTTTTCCCTCGTTCATCTAGCAAAACTATTAT +TTTAATCCCTTTTTCAGATACCTCTTTTAGTTTATCAAAAATAAGCGCTCCCCTAGTAGTACTCAGAGGA +TTACAACAAAAAGATGCTATGTATATATATTTCTTAGCTAGAGTGATAATTTCGTTAAAACATTCAAATG +TTGTCAAATGATCGGATCTAAAATCCATATTTTCTGGTAGTGTTTCTACCAGCCTACATTTTGCTCCCGC +AGGTACCGATGCAAATGGCCACATTTAGTTAACATAAAAACTTATATATCCTGTTCTATCAACGATTCTA +GAATATCATCGGCTATATCGCTAAAATTTTCATCAAAGTCGACATCACAACCTAACTCAGTCAATATATT +AAGAAGTTCCATGATGTCATCTTCGTCTATTTCTATATCCGTATCCATTGTAGATTGTTGACCGATTATC +GAGTTTAAATCATTACTAATACTCAATCCTTCAGAATACAATCTGTGTTTCATTGTAAATTTATAGGCGG +TGTATTTAAGTTGGTAGATTTTCAATTATGTATCAATATAGCAACAGTAGTTCTTGCTCCTCCTTGATTT +TAGCATCCTCTTCATTATTTTCTTCTACGTACATAATCATGTCTAATACGTTAGACAACACACCGACGAT +GGTGGCCGCCACAGACACGAATATGACTAGACCGATGACCATTTAAAAAATACTCTCTAGCTTTAACTTA +AACTGTATCGATCATTCTTTTAGCACATGTATAATATAAAAACATTATTCTATTTCGAATTTAGGCTTCC +AAAAATTTTTCATCCGTAAACCGATAATAATATATATAGACTTGTTAATAGTCGGAATAAATATATTAAT +GCTTAAACTATCATCATCTCCACGATTAGAGATACAATATTTACATTCTTTTTGCTGTTTCGAAACTTTA +TCAATACACGTTAATACAAACCCAGGAAGGAGATATTGAAACTGAGGCTGTTGAAAATGAAACGGCGAAT +ACAATAATTCAGATAATGTAAAATCATGATTCCGTATTCTGATGATATTAGAACTGCTAATGGATGTCGA +TGGTATGTATCTAGGAGTATCTATTTTAACAAAGCATCGATTTGCTAATATACAATTATCCTTTTGATTA +ATTGTTATTTTATTCATATTCTTAAAAGGTTTCATATTTATCAATTCTTCTACATTAAAAATTTCCATTT +TTAATTTATCTAGCCCCGCAATACTCCTCATTACGTTTCATTTTTTGTCTAGAATACCCATTTTGTTCAT +CTTGGTACATAGATTATCCAATTGAGAAGCGCATTTAGTAGTTTTGTACATTTTAAGTTTATTAACGAAT +CGTCGAAAACTAGTTATAGTTAACATTTTATTATTTGATACCCTGATATTAATACCCCTGCCGTTACTAT +TATTTATAACTGATGTAACCCACGTAACATTGGAATTAATTATCGATAGTAATGCATCGACACTTCCAAA +ATTGTCTATTATAAACTCACCGATAATTTTTTTATTGCATGTTTTCATATTCATTAGGATTATCAAATCT +TTAATCTTATTACGATTGTATGCGTTGATATTACAAGACGTCATTCTAAAAGACGGAGGATTTCCATCAA +ATGCCAGACAATCACGTACAAAGTACATGGAAATAGGTTTTGTTCTATTACGCATCATAGATTCATATAA +AACACCCGTAGAAATACTAATTTGTTTTACTCTATAAAATACTATTGCATCTATTTCATCGTTTTGTATA +ACGTCTTTCCAAGTGTCAAATTCCAATTTTTTTTCATTGATAGTACCAAATTCTTCTATCTCTTTAACTA +CTTGCATAGATAGGTAATTACAGTGATGCCTACATGCCGTTTTTTGAAACTGAATAGATGCATCTAGAAG +CGATGCTACACTAGTCACGATCACCACTTTCATATTTAGAATATATGTATGTAAAAATATAGTAGAATTT +CATTTTGTTTTTTTCTATGCTATAAATGAATTCTCATTTTGTATCCGCACATACTCCGTTTTATATCAAT +ACCAAAGAAGGAAGATATCTGGTTCTAAAAGCCGTTAAAGTATGCGATGTTAGAACTGTAGAATGCGAAG +GAAGTAAAGCTTCCTGCGTACTCAAAGTAGATAAACCCTCATCACCCACGTGTGAGAGAAGACCTTCGTC +CCCGTCCAGATGCGAGAGAATGAATAACCCTGGAAAACAAGTCCCGTTTATGAGAACGGACATGTTACAA +AATATGTTTGCTGCTAATCGCGACAACGTAACGTCAAGACTTTTGAACTAAAATACAATTATATCTTTTT +CGATATTAATAAATCCGTGTCTCCCGGGTTTTTTATCTCTTTCAGTATGTGAATAGATAGGTATTTTATC +TCTATTCATCATCGAATTTAAGAGATCCGATAAACATTGTTTGTATTCTCCAGATGTCAGCATCTGATAC +AACAATATATGTGCACATAAACCTCTGGCACTTATTTCATGTACCTTCCCCTTATCACTAAGGAGAATAG +TATTTGAGAAATATGTATACATGATATTATCATGTATTAGATATACAGAATTTGTAACACTCTCGAAATC +ACACGATGTGTCGGCGTTAAGATCTAATATATCACTCGATAACACATTTTCATCTAGATACACTAGACAT +TTTTTAAAGCTAAAATAGTCTTTAGTAGTAACAGTAACTATGCGATTATTTTCATCGATGATACATTTCA +TCGGCATATTATTACGCGTACCATCAAAGACTATACCATGTGTATATCTAACGTATTCTAGCATAGTTGC +CATACGTACATTAAACTTTTCAGGATCTTTGGATAGATCTTCCAATCTATCTATTTGAGAAAACATTTTT +ATCATGTTCAATAGTTGAAACGTCGGATCCACTATATAGATATTATCTATAAAGATTTTAGGAACTATGT +TCATGGTATCCTGGCGAATATTAAAACTATCAATGATATGATTATCGTTTTCATCTTTTATCACCATATA +GTTTCTAAGATATGGGATTTTACTTAATATAATATTATTTCCCGTAATAAATTTTATTAGAAATGCCAAA +TCTATAAGAAAAGTCCTAGAATTAGTCTGAAGAATATCTATATCACCGTACCGTATATTTGGATTAATTA +GATATAGAGAATATGATCCGTAACATATACAACTTTTATTATGACGTCTAAGATATTCTTCCATCAACTT +ATTAACATTTTTGACTAGGGAAGATACATTATGACGTCCCATTACTTTTGCCTTGTCTATTACAGCGACG +TTCATAGAATTTAGCATATCTCTTGCCAATTCTTCCATTGATGTTACATTATAAGAAATTTTAGATGAAA +TTACATTTGGAGCTTTAATAGTAAGAACTCCTAATATATCCGTGTATGTGGTCACTAATACAGATTGTAG +TTCTATAATCGTAAATAATTTACCTATATTATATGTTTGAGTTTGTTTAGAAAAGTAGCTAAGTATACGA +TCTTTTATTTCTGATGCCGATGTATCAACATCGAAAAAAAATCTTTTTTTATTCTTTTTTACTAACGATA +CGAATATGTCTTTGTTAAAAACAGTTATTTTCTGAATATTTCTAGCTTGTAATTTTAACATATGATATTC +GTTCACACTAGGTACTCTGCCTAAATAGGTTTCTATAATCTTTAATGTAATATTAGGAAGAGTATTCTGA +TCAGGATTCCTATTCATTTTGAGGATTTAAAACTCTGATTATTGTCTAATATGGTCTCAACACAAACTTT +TTCACAGAGTGATAGAGTTTTTGATAACTCGTTTTTCTTAAGAAATATAAAACTACTGTCTCCAGAGCTC +GCTCTATCTTTTATTTTATCTAATTCGATACAAACTCCTGATACTGGTTCAGAAAGTAATTCATTAATTT +TCAGTCCTTTATAGAAGATATTTAATATAGATAATACAAAATCTTCAGTTCTTGATATCGATCTGATTGA +TCCTAGAACTAGATATATTAATAACGTGCTCATTAGGCAGTTTATGGCAGCTTGATAATTAGATATAGTA +TATTCCAGTTCATATTTATTAGATACCGCATTGCCCAGATTTTGATATTCTATGAATTCCTCTGAAAATA +AATCCAAAATAACTAGACATTCTATTTTTTGTGGATTAGTGTACTCTCTTCCCTCTATCATGTTCACTAC +TGGTGTCCACAATGATAAATATCTAGAGGGAATATAATATAGTCCATATGATGCCAATCTAGCAATGTCG +AATAACTGTAATTTTATTCTTCGCTCTTCATTATGAATTGAATCTTGAGGTATAAACCTAACACAAATTA +TATCATTAGACTTTTCGTATGTAATGTCTTTCATGTTATAAGTTTTTAATCCTGGAATAGAATCTATTTT +AATGAGGCTTTTAAACGCAGCGTTCTCCAACGAGTCAAAGCATAATACTCTGTTGGTTTTCTTATATTCA +ATATTACGATTTTCTTCTTTGAATGGAATAGGTTTTTGAATTAGTTTATAATTACAACATAATAGATAAG +GAAGTGTGTAAATAGTACGCGGAAAAAACATAATAGCTCCCCTGTTTTCATCCATGGTTTTAAGTAAATG +ATCACTGGCTTCTTTAGTCAATGGATATTCGAACATTAACCGTTTCATCATCATTGGACAGAATCCATAT +TTCTTAATGTAAAGAGTGATCAAATCATTGTGTTTATTGTACCATCTTGTTGTAAATGTGTATTCGGTTA +TCGGATCTGCTCCTTTTTCTATTAAAGTATCGATATCGATCTCGTCTAAGAATTCAACTATATCGACATA +TTTCATTTGTATACACATAACCATTACTAACGTAGAATGTATAGGAAGAGATGTAACGGGAACAGGGTTT +GTTGATTCGCAAACTATTCTAATACATAATTCTTCTGTTAATACGTCTTGCACGTAATCTATTATAGATG +CCAAGATATCTATATAATTATTTTGTAAGATGATGTTAACAATGTGATCTATATAAGTAGTGTAATAATT +CATGTATTTCGATATATGTTCCAACTCTGTCTTTGTGATGTCTAGTTTCGTAATATCTATAGCGTCCTCA +AAAAATATATTCGCATATATTCCCAAGTCTTCAGTTCTATCTTCTAAAAAATCTTCAACGTATGGAATAT +AATAATCTATTTTACCTCTTCTGATGTCATTAATGATATAGTTTTTGACACTATTTTCCGTCAATTGATT +CTTATTCACTATGTCTAAAAACCGGATAGCGTCCCTAGGACGAACTACTGCCATTAATATCTCTATTATA +GCTTCTGGACATAAATCATCTATTATACCAGAATTAATGGGAACTATTCCGTATCTATCTAACATAGTTT +TAAGAAAGTCAGAATCTAAGACCTGATGTTCATATATTGGTTCATACATGAAATGATCTCTATTGATGAT +AGTGACTATTTCATTCTCTGAAAATTGGTAACTCATTCTATACACGCTTTCCTTGTTGATAAAGGATAGT +ATATACTCAATGGAATTTGTACCAACAAACTGTTCTCTTATGAATCGTATATCATCATCTGAAATGATCA +TGTAAGGCATACATTTAACAATAAGAGACTTGTCTCCTGTTATCAATATACTATTCTTGTGATAATTTAT +GTGTGCGGCAAATTTGTCCACGTTCTTTAATTTTGTTATAGTAGATATCAAATCCAATGGAGATACAGTT +CTTGGCTTAAACAGATATAGTTTTTCTGGAACGAATTCTACAACATTATTATAAAGGACTTTGGGTATAT +AAGTGGGATGAAATCCTATTTTAATTAATGCGATAGCCTTGTCCTCGTGCAGATATCCAAACGCTTTTGT +GATAGTATGGCATTCATTGTCTAGAAACGCTCTACGAATATCTGTAACAGATATCATCTTTAGAGAATAC +TAGTCGCGTTAATAGTACTAAAATTTGTATTTTTTAATCTATCTCAATAAAAAATTAATATGTATGATTC +AATGTATAACTAAACTACTAACTGTTATTGATAACTAGAATCAGAATCTAATGATGACATAACTAAGAAG +TTTATCTACAGCCAATTTAGCTGCATTATTTTTAGCATCTCGTTTAGATTTTCCATCTGCCTTATCGAAT +ACTCTTCCGTCAATGTCTACACAGGCATAAAATGTAGGAGAGTTACTAGGCCCCACTGATTCAATACGAA +AAGACCAATCTCTCCTAGTTATTTGACAGTACTCATTAATAACGGTGACAGGGTTAACACCTTTCCAATA +AATAATTTTTTTAACCGGAATAACATCATCAAAAGACTTATGATCCTCTCTCATTGATTTTTCGCGGGAT +ACATCATCTATTATAGCATCAGCATCAGAATCTGTAGGCCGTGTATCAGCATCCATTGTCGTAGACCAAC +GAGGAGGAGTATCGTTGGAGCTGTAAACCATAGCACTACGTTGAAGATCATACAGAGCTTTATTAACTTC +TCGCTTCTCCATATTAAGTTGTTTAGTTAGTTGTACAGCAGTAGCTCCTTAGTCCAATGTTTTTAATAAC +CGCACACAATCTCTGTGTCAGAACGCTCGTCAATATAGATCTTAGAAATTTTTTTAGAGAGAACTAACGC +AACTAGCAATAAAACTGATCTTATTTTATCATTTTTTTTATTCATCATCCTCTGGTGGTTCGTCGTTCCT +ATCGAATGTAGCTCTGATTAACCCGTCATCTATAGGTGATGCTGGTTCTGGAGATTCTGGAGGAGATGGA +TTATTATCTGGAAGAATCTCTGTTATTTCCTTGTTTTCATGTATCGATTGCGTTGTAACATTAAGATTGC +GAAATGCTCTAAATTTGGGAGGCTTAAAGTGTTGTTTACAATCTCTACACGCGTGTCTAACTAATGGAGG +TTCATCAGCGGCTCTAGTTTGAATCATCATCGGTGTAGTATTCCTACTTTTACAGTTAGGACACGGTGTA +TTGTATTTCTCGTCGAGAACGTTAAAATAATCGTTGTAACTCACATCCTTTATTTTATCTATATTGTATT +CTACTCCTTTCTTAATGCATTTTATACCGAACAAGAGATAGCGAAGGAATTCTTTTTCGGTACCGCTAGT +ACCCTTAATCATATCACATAGTGTTTTATATTCTAAATGTGTGGCAATGGACGGTTTATTTCTATACGAT +AGTTTGTTTTTGGAATCCTTTGAGTATTCTATACCAATATTATTCTTTGATTCGAATTTAGTTTCTTCGA +TATTAGATTTTGTATTACCTATATTCTTGATGTAGTACTTTGATGATTTTTCCATGGCCCATTCTATTAA +GTTTTCCAAGTTGGCATCATCCACATATTGTGATAGTAATTCTCGGATATCAGTAGTGACTACCGCCATT +GATATTTGTTCATTTGATGAGTAACTACTAATGTATACATTTTCCATTTATAACACTTATGTATTAACTT +TGTTTATTTATATTTTTTCATTATTATGTTGATATTAATAATCGTATTGTGGTTATATGGCTACAATTTC +ATAATGAGTTGAAGTCAGTGTCCTATGATCAATGACGATAGCTTTACTCTGAAAAGAAAGTATCAAATCG +ATAGTGCAGAGTCAACAATGAAAATGGATAAGACGATGACAAAGTTTCAGAATAGAGTCAAAATGGTAAA +AGAAATAAATCAGACGATAAGAGCAGCACAAACTCATTACGAGACATTGAAACTAGGATATATAAAATTT +AAGGGAATGATTAGGACTACTACTCTAGAAGATATAGCACCATCTATTCCAAATAATCAGAAAACTTATA +AACTATTCTCGGACATTTCAGTCATTGGCAAAGCATCACAGAATCCGAGTAAGATGATATATGCTCGCTG +CTTTACATGTTTCCCAATTTGTTTGGAGATGACCATAGATTCATTTGTTATAGAATGCATCCAACATTGT +TCATGATATAGTTGAATCATGTATGCCTGTTCGTATGCCTGTGGCTAAGATACTGTGTAAAGAAATGGTA +AATAAATACTTTGAGAATCTTTAAGAGTGCATTGACTTTGTTAGTGAATAGGCATTCCATCTTTCTCCAA +TACTAATTCAAATTGTTAAATTAATAATGGAATAGTATAAATAGTTATTAGTGATAGGATAGTAAACATA +ATTATTAGAATAGTAGTGTAGTATCATAGATAACTCTCTTCTATAAAAAATGGATTTTATTCGTAGAAAG +TATCTTATATACACAGTAGAAAATAATATAGATTTTTTAAAGGATGATACATTAAGTAAAGTAAACAATT +TTACCCTCAATCATGTACTAGCTCTCAAGTATCTAGTTAGCAATTTTCCTCAACATGTTATTACTAAGGA +TGTATTAGCTAATACCAATTTTTTTGTTTTCATACATATGGTACGATGCTGTAAAGTATACGAAGCGGTT +TTACGACACGCATTTGATGCACCCACGTTGTACGTTAAAGCATTGACTAAGAATTATTTATCGTTTAGTA +ACACAATACAGTCGTACAAGGAAACAGTGCATAAACTAACACAAGATGAAAAATTTTTAGAGGTTGCCGA +ATACATGGACGAATTAGGAGAACTTATAGGCGTAAATTATGACTTAGTTCTTAATCCATTATTTCACGGA +GGGGAACCCATCAAAGATATGGAAATCATTTTTTTAAAACTGTTTAAGAAAACAGACTTCAAAGTTGTTA +AAAAATTAAGTGTTATAAGATTACTTATTTGGGCATACCTAAGCAAGAAAGATACAGGCATAGAGTTTGC +GGATAATGATAGACAAGATATATATACTCTATTTCAACAAACTGGTAGAATAGTCCATAGCAATCTAACA +GAAACGTTTAGGGATTATATCTTTCCCGGAGATAAGACTAGCTATTGGGTGTGGTTAAACGAAAGTATAG +CTAATGATGCGGATATCGTTATTAATAGACCCGCCATTACCATGTATGATAAAATTCTTAGTTATATATA +CTCTGAGATAAAACAGGGACGCGTTAATAAAAACATGCTTAAGTTAGTTTATATCTTTGAGCCTGAAAAA +GATATCAGAGAACTTCTGCTAGAAATCATATATGATATTCCTGGAGATATCCTATCTATTATTGATGCAA +AAAACGACGATTGGAAAAAATATTTTATTAGTTTTTACAAAGCTAATTTTATTAACGGTAATACATTTAT +TAGTGATAGAACGTTTAACGATGACTTATTCAGAGTTGTTGTTCAAATAGATCCCGAATATTTCGATAAT +GAACGAATTATGTCTTTATTCTATACGAGTGCTGCGGACATTAAACGATTTGATGAGTTAGATATTAATA +ACAGTTATATATCTAATATAATTTATGAGGTGAACGATATCACATTAGATACAATGGATGATATGAAGAA +GTGTCAAATCTTTAACGAGGATACGTTGTATTATGTTAAGGAATACAATACATACCTGTTTTTGCACGAG +TCGGATCCCATGGTCATAGAGAACGGAATACTAAAGAAACTGTCATCTATAAAATCCAAGAGTAGACGGC +TGAACTTGTTTAGCAAAAACATTTTAAAATATTATTTAGACGGACAATTGGCTCGTCTAGGTCTTGTGTT +AGATGATTATAAAGGAGACTTATTAGTTAAAATGATAAACCATCTCAAATCTGTGGAGGATGTATCCGCA +TTCGTTAGATTTTCTACAGATAAAAACCCTAGTATTCTTCCATCGCTAATCAAAACTATTTTAGCTAGTT +ATAATATTTCCATCATCGTCTTATTTCAAAGGTTTTTAAGAGATAATCTATATCATGTAGAAGAATTCTT +GGATAAAAGCATCCATCTAACCAAGACGGATAAGAAATATATACTTCAATTGATAAGGCACGGTAGATCA +TAGAACAAACCAAATATATTATTAATAATTTGTATATACATAGATATAATTATCACATATTAAAAAATAA +CACATTTTTGATAAATGGAAACCGTTGCAACAATTCAGACTCCCACCAAATTAATGAATAAAGAAAATGC +AGAAATGATTTTGGAAAAAATTGTTAATCATATAGCTATGTATATTAGTGACGAATCAATATATTCAGAA +AATAATCCTGAATATATTGATTTTCGTAACAGATACGGAGACTATAGATCTCTCATTATAAAAAGTGATC +ACGAGTTTGTAAAGCTATGTAAAGATCATGCAGAGAAAAGTTCTCCAGAAACGCAACAAATGATTATCAA +ACACATATACGAACAATATCTTATTCCAGTATCTGAAGTACTATTAAAACCTATAATGTCCATGGGTGAC +ATATTTACATATAACGGATGTAAAGACAATGAATGGATGCTAGAACAACTCTCTACCCTAAACTTTAACA +ATCTCTACACATGGAACTCATGTAGCATAGGCAATGTAACGCGTCTGTTTTATACATTTTTTAGTTATCT +GATGAAAGATAAACTAAATATATAAGTATAATCCCATTCTAATACTTTAACCTGATGTATTATTACCTGC +ATCTTATTAGAATATTAACCTAACTAAAAGACATAAAAAGCGGTAGGATATAAATATTATGGCCGCAACC +GTTCCGCGTTTTGACGATGTGTACAAAAATGCACAAAGAAGAATTCTAGATCAAGAAACATTTTTTAGTA +GAGGTCTAAGTAGACCGTTAATGAAAAACACATATCTATTTGATAATTACGCGTATGGATGGATACCAGA +AACTGCAATTTGGAGTAGTAGATACGCAAACCTAGATGCTAGTGACTATTATCCCATTTCGTTGGGATTA +CTTAAAAAGTTTGAATTTCTCATGTCTCTATATAAAGGTCCTATTCCCGTATATGAAGAAAAAGTAAATA +CTGAATTCATTGCTAATGGATCTTTCTCCGGTAGATACGTATCATATCTTAGAAAGTTTTCTGCCCTTCC +AACAAACGAGTTTATTAGTTTTTTATTATTGACCTCCATCCCTATCTATAATATCTTATTCTGGTTTAAA +AACACACAGTTTGATATTACTAAACACACATTATTCAGATACGTCTATACAGATAATACCAAACACCTTG +CGTTGGCTAGGTATATACATCAAACAGGAGACTATAAGCCTTTGTTTAGTCGTCTCAAAGAGAATTATAT +ATTTACTGGTCCCGTTCCAATAGGTATCAAAGATATAGATCACCCTAATCTTAGTAGAGCAAGAAGTCCA +TCCGATTATGAGACATTAGCTAATATTAGTACTATATTGTACTTTACCAAGTATGATCCAGTATTAATGT +TTTTATTGTTTTACGTACCTGGGTATTCAATTACTACAAAAATTACTCCAGCCGTAGAATATCTAATGGA +TAAACTGAATCTAACAAAGAGCGACGTACAACTGTTGTAAATTATTTTATGCTTCGTAAAATGTAGGTCT +TGAACCAAACATTCTTTGAAAAAATGAGATGCATAAAACTTTATTATCCAATAGATTAACTATTTCAGAC +GTCAATCGTTTAAAGTAAACTTCGTAAAATATTCTTTGATTGCTGCCGAGTTTAAAACTTCTATCGATAA +TTGTTTCATATGTTTTAATATTTACAAGTTTTTTGGTCCATGGTACATTAGCTGGACAGATATATGCAAA +ATAATATCGTTCTCCAAGTTCTATAGTCTCTGGATTGTTTTTATTATATTCAGTAACCAAATACATATTA +GGGTTATCTGCGGATTTATAATTTGAGTGATGCATTCGACTCAACATAAATAATTCTAGAGGAGACGATC +TACTATCAAATTCGGATCGTAAATCTGTTTCTAAAGAACGGAGAATATCTATACATACCTGATTAGAATT +CATCCGTCCTTCAGACAACATCTCAGACAGTCTGGTCTTGTATGTCTTAATCATATTCTTATGAAACTTG +GAAACATCTCTTCTAGTTTCACTAGTACCTTTATTAATTCTCTCAGGTACAGATTTTGAATTCGACGATG +CCGAGTATTTCATCGTTGTATATTTCTTCTTCGATTGCATAATCAAATTCTTATATACCGCCTCAAACTC +TATTTTAAAATTATTAAACAATACTCTACTATTAATCAGTCGTTCTAACTCCTTTGCTATTTCTATGGAC +TTATCTACATCTTGACTGTCTATCTCTGTAAACACGGAGTCGGTATCTCCATACACGCTACGAAAACGAA +ATCTATAATCTATAGGCAACGATGTTTTCACAATCGGATTAATATCTCTATCGTCCATATAAAATGGATT +ACTTAATGTATTGGCAAACCGTAACATACCGTTGGATAACTCTGCTCCATTTAGTACCGATTCTAGATAC +AATATCATTCTACGTCCTATGGATGTGCAACTCTTAGCCGAAGCGTATGAGTATAGAGCACTATTTCTAA +ATCCCATCAGACCATATACTGAGTTGGCTACTATCTTGTACGTATATTGCATGGAATCATAGATGGCCTT +TTCAGTTGAACTGGTAGCCTGTTTTAACATCTTTTTATATCTGGCTCTCTCTGCCAAAAATGTTCTTAAT +AGTCTAGGAATGGTTCCTTCTATTGATCTATCGAAAATTGCTATTTCAGAGATGAGGTTCGGTAGTCTAG +GTTCACAATGAACCGTAATATATCTAGGAGGTGGATATTTCTGAAGCAAGAGTTGATTATTTATTTCTTC +TTCCAATCTATTGGTACTAACAACGACACCGACTAATGTTTCCGGAGATAGATTTCCAAAGATACACACA +TTAGGATACAGACTGTTATAATCAAAGATTAATACATTATTACTAAACATTTTTTGTTTTGGAGCAAATA +CCTTACCGCCTTCATAAGGAAACTTTTGTTTTGTTTCTGATCTGACTAAGATAGTTTTAGTTTCCAACAA +TAGCTTTAACAGTGGACCCTTGATGATTGTACTCGCTCTATATTCGAATACCATGGATTGAGGAAGCACA +TATGTTGCCGCACCAGCGTCTGTTTTTGTTTCTACTCCATAATACTCCCACAAATACTGACACAAACAAG +CATCATGAATACAGTATCTAGCCATATCTAAAGCTATGTTTAGATTATAATCCTTATACATCTGAGCTAA +ATCAATGTCATCCTTTCCGAAAGATAATTTATATATATCATTAGGTAAAGTAGGACATGATAGTACGACT +TTAAATCCATTTTCCAAAATATCTTTACGAATTACTTTACATATAATATCCTCATCAACAGTCACGTAAT +TACCTGTGGTTAAAACCTTTGCAAATGTATCGGCTTTGCCTTTCGCGTCCGTAGTATCGTCACCGATGAA +CGTCATTTCTCTAACTCCTCTATTTAATACTTTACCCATGCAACTGAACGCGTTCTTGGATATAGAATCC +AATTTGTACGAATCCAATTTTTCAGATTTTTGAATGAATGAATATAGATCGAAAAATATAGTTCCATTAT +TGTTATTAACGTGAAACGTAGTATTGGCCATGCCGCATACTCCCTTATGACTAGACTGATTTCTCTCATA +AATACAGAGATGTACAGCTTCCTTTTTGTCTGGAGATCTAAAGATAATCTTCTCTCCTGTTAATAACTCT +AGACGATTAGTAATATATCTCAGATCAAAGTTATGTCCGTTAAAGGTAACGACGTAGTCGAACGTTAGTT +CCAACAATTGTTTAGCTATTCGTAACAAAACTATTTCAGAACATAGAACTAGTTCTCGTTCGTAATCCAT +TTCCATTAGCGACTGTATCCTCAAACATCCTCTATCGACGGCTTCTTGTATTTCCTGTTCCGTTAACATC +TCTTCATTAATGAGCGTAAACAGTAATCGTTTACCACTTAAATCGATATAACAGTAACTTGTATGCGAGA +TTGGGTTAATAAATACAGAAGGAAACTTCTTATCGAAGTGACACTCTATATCTAGAAATAAGTACGATCT +TGGGATATCGAATCTAGGTATTTCTTTAGCGAAACAGTTACGTGGATCGTCACAATGATAACATCCATTG +TTAATCTTTGTCAAATATTGCTCGTCCAACGAGTAACATCCGTCTGGAGATATCCCGTTAGAAATATAAA +ACCAACTAATATTGAGAAATTCATCCATGGTGGCATTTTGTATGCTGCGTTTCTTTGGCTCTTCTATCAA +CCACATATCTGCGACGGAGCATTTTCTATCTTTAATATCTAGATTATAACTTATTGTCTCGTCAATGTCT +ATAGTTCTCATCTTTCCCATCGGCCTCGCATTAAATGGAGGAGGAGATAATGACTGATATATTTCGTCCG +TCACTACGTAATAAAAGTAATGAGGAAATCGTATAAATACGGTCTCGCCATTTCGACATCTGGATTTCAG +ATATAAAAATCTGTTTTCACCGTGACTTTCAAACCAATTAATACACCTAACATCCATTTCTAGAATTTAG +AAATATATTTTCATTTAAATGAATCCCAAACATTGGGGAAGAGCCGTATGGACCATTATTTTTATAGTAC +TTTCGCAAGCGGGTTTAGACGGCAACATAGAAGCGTGTAAACGAAAACTATATACTATAGTCAGCACTCT +TCCATGTCCTGCATGTAGACGACACGCGACTATCGCTATAGAGGACAATAATGTCATGTCTAGCGATGAT +CTGAATTATATTTATTATTTTTTCATCAGATTATTTAACAATTTGGCATTTGATCCCAAATACGCAATCG +ATGTGTCAAAGGTTAAACCTTTATAAACTTAACCCATTATAAAACTTATGATTAGTCACGACTGAAATAA +CCGCGTGATTATTTTTTGGTATAATTCTACACGGCATGGTTTCTGTGACTATGAATTCAACACCTGTTAT +CTTAGTGAAATCTTTAACAAACAGCAAGGGTTCGTCAAAGACATAAAACTCATTGTTTACGATCGAAATA +GACCCCCTATCACACTTAAAATAAAAAATATCCTTATCCTTTACCACCAAATAAAATTCTGATTGGTCAA +TGTGAATGTATTCACTTAACAGTTCCACAAATTTATTTATTAACTCCGAGGCACATACATCGTCGGTATT +TTTTATGACAAACTTTACTCTTCCAGCATCCGTTTCTAAAAAAATATTAACGAGTTCCATTTATATCATC +CAATATTATTGAAATGACGTTGATGGACAGATGATATAAATAAGAAGGTACAGTACCTTTGTCCACCATC +TCCTCCAATTCATACTCTATTTTGTCATTAACTTTAATGTGTGAAAACAGTACGCCACATGCTTCCATGA +CAGTGTGTAACACTTTGGATACAAAATGTTTGACATTAGTATAATTGTCCAAGACTGTCAATCTATAATA +GATAGTAGCTATAATATATTCTATGATGGTATTGAAGAAGATGACAACCTTGGCATATTGATCATTTAAC +ACAGACATGGTATCAACAAATAGCTTAAATGAAAGAGAATCAGTAATTGGAATAAGCGTCTTCTCGATGT +AGTGTCCGTATACCAACATGTCTGATATTTTGATGTATTCCATTAAATTATTTAGTTTTTTCTTTTTATT +CTCGTTAAACAGAATTTCTGTCAATGGACCCCAACATCGTTGACCTATTAAGTTTTGATTGATTTTTCCG +TGTAAGGCGTATCTAGTCAGATCGTATAGCCTATCCAATAATCCATCGTCTGTGCGTAGATCACATCGTA +CACTTTTTAATTTTCTATAGAAGAGTGACAGACATCTGGAGCAATTACAGACAGCAATTTCTTTATTCTC +TACAGATGTAAGATACTTGAAGATATTCCTATGATGATGCAGAATTTTGGATAACACGGTATTGATGGTA +TCTGTTACCATAATTCCTTTGACTGATAGTGTCAAAGTACAAGATTTCCAATCTTTTGCAATTTTCAGTA +CCATTATCTTTGTTTTGATATCTATATCAGACAGCATGGTACGTCTGACAACACAGGGATTAAGACGGAA +AGATGAAATGATTCTCTCAACATCTTCAATAGATACCTTGCTATTTTTTTTGGCATTATCTATATGTGAG +AGAATATCCTCTAGAGAATCAGTATCCTTTTTGATGATAGTGGATCTCAATGACATGGGACGTCTAAACC +TTCTTATTCTATCACCAGATTGCATGGTGATTTGTCTTCTTTCTTTTATCATGATGTAATCTCTAAATTC +ATCGGCAAATTGTCTATATCTAAAATCATAATATGAGATGTTTACCTCTACAAATATCTGTTCGTCCAAT +GTTAGAGTATCTATATCAGTTTTGTATTCCAAATTAAACATGGCAACGGATTTAATTTTATATTCCTCTA +TTAAGTCCTCGTCGATAATAACAGAATGTAGATAATCATTTAATCCATCGTACATGGTTGGAAGATGCTC +GTTGACAAAATCTTTAATTGTCTTGATGAAGGTGGGACTATATCTAACATCTTGATTAATAAAATTTATA +ACATTGTCCATAGGATACTTTGTAACTAGTTTTATACACATCTCTTCATTGGTAAGTTTAGACAGAATAT +CGTGAACAGGTGGTATATTATATTCATCAGATATACGAAGAATAATGTCCAAATCTATATTGTTTAATAT +ATTATATAGATGTAGTGTAGCTCCTACAGGAATATCTTTAACTAAGTCAATGATTTCATCAACAGTTAGA +TCTATTTTAAAGTTAATCATATAGGCATTGATTTTTAAAAGGTATGTAGCCTTGACTACATTCTCATTAA +TTAACCATTCCAAGTCACTGTGTGTAAGAAGATTATATTCTATCATAAGCTTGACTACATTTGGTCCCGA +TACCATTAAAGAATTCTTATGATATAAGGAAACAGCTTTTAGGTACTCATCTACTCTACAAGAATTTTGG +AGAGCCTTAACGATATCAGTGACGTTTATTATTTCAGGAGGAAAGAACCTAACATTGAGAATATCTGAAT +TAATAGCTTCCAGATACAGTGATTTTGGCAATAGTCCGTGTAATCCATAATCCAGTAACACGAGCTGGTG +CTTGCTAGACACCTTTTCAATGTTTAATTTTTTTGAAATAAGCTTTGATAAAGCCTTCCTCGCAAATTCC +GGATACATGAACATGTCGCCAACATGATTAAGTATTGTTTTTCATTATTTTTATATTTTCTCAACAAGTT +CTCAATACCCCAATAGATAATAGAATATCACCCAATGCGTCCATGTTGTCTATTTCCAACAGGTCGCTAT +ATCCACCAATAGAAGTTTTCCCAAAAAAGATTCTAGGAACAGTTCTACCACCAGTAATTTGTTCAAAATA +GTCACGCAATTCATTTTCGGGTTTAAATTCTTTAATATCTACAATTTCATACGCTCCTCTTTTGAAACTA +AACTTATTTAGAATATCCAGTGCGTTTCTACAAAAAGGACATGTAAACTTGACAAAAATTGTCACTTTGT +TATTGGCCAACCTTTGTTGTACAAATTCCTCGGCCATTTTTAATATTTAAGTGATACAAAACTATCTCGA +CTTATTTAACTCTTTAGTCGAGATATATGGACACAGATAGCTATATGATAACCAACTACAGAAGACAAAC +GCTATAAAAAACATAATTACGACGAGCATATTTATAAATATTTTTATTCAGTATTACTTGATATAGTAAT +ATTAGGCACAGTCAAACATTCAACCACTCTAGATACATTAACTCTCTCATTTTCTTTAACAAATTCTGCA +ATATCTTCGTAAAAAGATTCTTGAAACTTTTTAGAATATCTATCGACTCTAGATGAAATAGCGTTCGTCA +ACATACTATGTTTTGTATACATAAAGGCGCCCATTTTAACAGTTTCTAGTGACAAAATGCTAGCGATCCT +AGGATCCTTTAGAATCACATAGATTGACGATTCGTCTCTCTTAGTAACTCTAGTAAAATAATCATACAAT +CTAGTACGCGAAATAATATTATCCTTGACTTGAGGAGATCTAAACAATCTAGTTTTGAGAACATCGATAA +GTTCATCGGGAATTACATACATACTATCTTTAATAGAACTCTTTTCATCCAGTTGAATGGATTCGTCCTT +AACCAACTGATTAATGAGATCTTCTATTTTATCATTTTCTAGATGATATGTATGTCCATTAAAGTTAAAT +TGTGTAGCGCTTCTTTTTAGCCTAGCAGCCAATACTTTAACATCACTAATATCGATATACAAAGGAGATG +ATTTATCGATGGTATTAAGAATTCGTTTTTCGACATCCGTCAAAACCAATTCCTTTTTGCCTGTATCATC +CAGTTTGCCATTCTTTGTAAAGAAATTATTTTCTACTAGACTATTAATAAGACTGATAAGGATTCCTCCA +TAATTGCACAATCCAAACTTTTTCACAAAACTAGACTTTACGAGATCTACAGGAATGCGTACTTCAGGTT +TCTTAGCTTGTGATTTTTTCTTTTGTGGACATTTTCTAGTGACCAACTCATCTACCATTTCATTGATTTT +AGCAGTGAAATAAGCTTTCAATGCACGGGCACTGATACTATTGAAAACGAGTTGATCTTCAAATTCCGCC +ATTTAAGTTCACCAAACAACTTTTAAATACAAATATATCAATAGTAGTAGAATAAGAACTATAAAAAAAA +TAATAATTAACCAATACCAACCCCAACAACCTGTATTATTAGTTGATGTGACAGTTTTCTCATCACTTAG +AACAGATTTAACAATTTCTATAAAGTCTGTCAAATCATCTTCCTGAGAACCCATAAATACACCAAATATA +GCAGCGTACAACTTATCCATTTATACATTGAATATTGGCTTTTCTTTATCGCTATCTTCATCATATTCAT +CATCAATATCAACAAGTCCCAGATTACGAACCAGATCTTCTTCTACATTTTCAGTCATTGATACGCGTTC +ACTATCTCCAGAGAGTCCGATAACGTTAGCCACTACTTCTCTATCAATGATTAGTTTCTTGAGCGCGAAT +GTAATTTTTGTTTCCGTTCCGGATCTATAGAAAACTACAGGTGTAATAATTGCCTTGGCTAATTGTCTTT +CTCTTTTACTGAGTGATTCTAGTTCACCTTCTATAGATCTGAGAATGGATGATTCTCCAGTCGAAACATA +TTCTACCATGGCTCCGTTTAATTTGTTGATGAAGATGGATTCATCCTTAAATGTTTTCTCTGTAATAGTT +TCCGCCGAAAGACTATGCAAAGAATTTGGAATGCGTTCCTTGTGTGTAATGTTTCCATAGACAGCTTCTA +GAAGTTGATACAACATAGGACTAGCCGCGGTAACTTTTATTTTTAGAAAGTATCCATCGCTTCTATCTTG +TTTAGATTTATTTTTATAAAGTTTAGTCTCTCCTTCCAACATAATAAAAGTGGAAGTCATCTGACTAGAT +AAACTATCAGTAAGTTTTATAGAGATAGATGAACAATTAGCGTATTGAGAAGCATTTAGTGTAACGCATT +CGATACATTTTGCATTAGATTTACTAATCGATTTTGCATACTCTATAACACCCGCACAAGTCTGTAGAGA +ATCGCTAGATGCTGTAGGTCTTGGTGAAGTTTCAACTCTCTTCTTGATTACCTTACTCATGATTAAACCT +AAATAATTGTACTTTGTAATATAATGATATATATTTTCACTTTATCTCATTTGAGAATAAAAATGTTTTT +GTTAACCACTGCATGATGTACAGATTTCGGAATCGCAAACCACTTGTGGTTTTATTTTATCCTTGTCCAA +TGTGAATTGAATGGGAGCGGATGCGGGTTTCGTACGTAGATAGTACATTCCCGTTTTTAGACCGAGACTC +CATCCGTAAAAATGCATACTCGTTAGTTTGGAATAACTCGGATCTGCTATATGGATATTCATAGATTGAC +TTTGATCGATGAAGGCTCCCCTGTCTGCAGCCATTTTTATGATCGTCTTTTGTGGAATTTCCCAAATAGT +TTTATAAACTCGCTTAATATCTTCTGGAAGGTTTGTATTCTGAATGGATCCACCATCTACCATAATCCTA +TTCTTGATCTCATCATTCCATAATTTTCTCTCGGTTAAAACTCTAAGGAGATGCGGGTTAACTACTTGGA +ATTCTCCAGACAATACTCTCCGAGTGTAAATATTACTGGTATACGGTTCCACCGACTCATTATTTCCCAA +AATTTGAGCAGTTGATGCAGTCGGCATAGGTGCCACCAATAAACTATTTCTAAGACCGTATGTTCTGATT +TTATCTTTTAGAGGTTCCCAATTCCAAAGATCCGACGGTACAACATTCCAAAGATCATATTGTAGAATAC +CGTTACTGGCGTACGATCCTACATATGTATCATATGGTCCTTCCTTCTCAGCTAGTTTACAACTCGCCTC +TAATGCACCGTAATAAATGGTTTCAAAGATCTTCTTATTTAGATCTTGTGCTTCCAGGCTATCAAATGGA +TAATTTAAGAGAATAAACGCGTCCGCTAATCCTTGAACACCAATACCGATAGGTCTATGTCTCTTATTAG +AGATTTCAGCTTCTGGAATAGGATAATAATTAATATCTATAATTTTATTGAGATTTCTGACAATTACTTT +GACCACATCCTTCAGTTTGAGAAAATCAAATCGCCCATCTATTACAAACATGTTCAATGCAACAGATGCC +AGATTACACACGGCTACCTCATTAGCATCCGCATATTGTATTATCTCAGTGCAAAGATTACTACACTTGA +TGGTTCCTAAATTTTGTTGATTACTCTTTTTGTTACACGCATCCTTATAAAGAATGAATGGAGTACCAGT +TTCAATCTGAGATTCTATAATCGCTTTCCAGACGACTCGAGCCTTTATTATACATTTGTATCTCCTTTCT +CTTTCGTATAGTGTATACAATCGTTCGAACTCGTCTCCCCAAACATTGTCCAATCCAGGACATTCATCCG +GACACATCAACGACCACTCTCCGTCATCCTTCACTCGTTTCATAAAGAGATCAGGAATCCAAAGAGCTAT +AAATAGATCTCTTGTTCTATGTTCATCGTTTCCTGTATTCTTTTTAAGATCGAGGAACGCCATAATATCA +GAATGCCACGGTTCCAAGTATATGGCCATAACTCCAGGCCGTTTGTTTCCTCCCTGATCTATGTATCTAG +CGGTGTTATTATAAACTCTCAACATTGGAATAATACCGTTTGATATACCATTGGTACCGGAGATATAGCT +TCCACTGGCACGAATATTACTAATTGATAGACCTATTCCCCCTGCCATTTTAGAGATTAATGCGCATCGT +TTTAACGTGTCATAGATGCCTTCTATGCTATCATCGATCATGTTAAGTAGAAAACAGCTAGACATTTGGT +GACGAGTAGTTCCCGCATTAAATAAGGTAGGAGAAGCGTGCGTAAACCATTTTTCAGAAAGTAGATTGTA +CGTCTCAATAGCTGAGTCTATATCCCATTGATGAATTCCTACTGCGACACGCATTAACATGTGCTGAGGT +CTTTCAACAATTTTGTTGTTTATTTTCAACAAGTAGGATTTTTCCAAAGTTTTAAAACCAAAATAGTTGT +ATGAAAAGTCTCGTTCGTAAATAATAACCGAATTGAGCTTATCCTTATATTTGTTAACTATATCCATGGT +AATACTTGAAATAATCGGAGAATGTTTCCCATTTTTAGGATTAACATAGTTGAATAAATCCTCCATCACT +TCACTAAATAGTTTTTTTGTTTCCTTGTGTAGATTTGATATGGCTATTCTGGCGGCTAGAATGGCATAAT +CCGGATGTTGTGTAGTACAAGTGGCTGCTATTTCGGCTGCCAGAGTGTCCAATTCTACCGTTGTTACTCC +ATTATATATTCCTTGAATAACCTTCATAGCTATTTTAATAGGATCTATATGATCAGTGTTTAAGCCATAG +CACAATTTTCTAATACGAGACGTGATTTTATCAAACATGACATTTTCCTTGTATCCATTTCGTTTAATGA +CAAACATTTTTGTTGGTGTAATAAAAAAAATTATTTAATTTTTCATTAATAGGGATTTGACGTATGTAGC +GTACAAAATTATCGTTCCTGGTATATAGATAAAGAGTCCTATATATTTGAAAATCGTTACGGTTCGATTA +AACTTTAATGATTGCATTGTGAATATATCATTAGGATTTAACTCCTTGACTATCATGGCGGTGCCAGAAA +TTACCATCAAAAGCATTAATACAGTTATGCAGATCGCAGTTAGAACGGTTATAGCATCCACCATTTATAT +CTAAAAATTAGATCAAAGAATATGTGACAACGTCCTAGTTGTATACTGAGAATTGACGAAACAATGTTTC +TTACATATTTTTTTCTTATTAGTAACCGACTTAATAGTAGGAACTGGAAAACTAGACTTGATTATTCTAT +AAGTATAGATACCCTTCCAAATAATGTTCTCTTTGATAAAAGTTCCAGAAAATGTAGAATTTTTTAAAAA +GTTATCTTTTGCTATTACTAATATCGTGGTTAGACGCTTATTATTAATATGAGTGATGAAATCCACACCG +CTTCTAGATATCGCTTTTATTTCCACATTAGATGGTAAATCCAATAGTGAAACTATCTTTTTAGGAATGT +ATGGACTCGCGTTTAGAGGAGTGAACGTCTTCGGAGTAGTAAAGGATGATTCGTCAAATGAATAAACAAT +TTCACAAATGGATGTTAATGTATTAGTAGGAAATTTTTTGACGCTAGTGGAATTGAAGATTCTAATGGAT +GATGTTCTACCTATTTCATCCGATAACATGTTAATTTCCAATACCAACGGTTTTAATATTTCGATGATAT +ACGGTAGTCTCTCTTTCGGACTTATATAGCTTATTCCACAATACGAGTCATTATATACTCCAAAAAACAA +AATAACTAGTATAAAATCTGTATCGAATGGGAAAAACGAAATTATCGATATAGGTATAGAATCCGGAACA +TTGAACGTATTAATACTTAATTCTTTTTCAGTGGTAAGAACCGATAGGTTATTGACATTGTATGGTTTTA +AATATTCTATAACTTGAGACTTGATAGATATTAATGACGAATTGAAAATTATTTTTATCACCACGTGTGT +TTCAGGATCATCGTCGACGCCAGTTAACCAACCGAATGGAGTAAAATAAATATCATTAATATATGCTCTA +GATATTAGTATTTTTATTAATCCTTTGATTATCATCTTCTCGTACGCGAATGATTCCATGATCAAGAGTG +ATTTGAGAACATCCTCCGGAGTATTAATGGGTTTAGTAAACAGTCCATCGTTGCAATAATAAAAGTTGTC +CAAGTTAAAGGATATTATGCATTCGTTTAAAGATATCACCTCATCTAACGGAGACAATTTTTTGGTAGGT +TTTAGAGACTTTGAAGCTACTTGTTTAACAAAGTTATTCATCGTCGTCTACTATTCTATTTAATTTTGTA +GTTAATTTATCACATATCACATTAATTGACTTTTTGGTCCACTTTTCCATACGTTTATATTCTTTTAATC +CTGCGTTATCCGTTTCCGTTATATACAGGGATAGATCTTGCAAGTTAAATAGAATGCTCTTAAATAATGT +CATTTTTTTATCCGCTAAAAATTTAAAGAATGTATAAACTTTTTTCAAAGATTTAAAACTTTTAGGTGGA +GTTCTGGTACACAATATCATAAACAAACTAATAAACATCCCACATTCAGATTCCAACAATTGATTAACTT +CCACATTAATACAGCCTATTTTCGCTCCAAATGTACATTCGAAAAATCTGAATAAAACATCAATATCGCA +ATTTGTATTATCCAATACAGAATGTCTGTGATTCGTGTTAAAACCATCGGAAAAAGAATAGAAATAAAAA +TTATTATAATGGTGGAATTCAGTTGGAATATTGCCTCCGGAGTCATAAAAGGATACTAAACATTGTTTTT +TATCGTAAATTACACATTTCCAATGAGACAAATAACAAAATCCAAACATTACAAATCTAGAGGTAGAACT +TTTAATTTTGTCTTTAAGTATATACGATAAGATATGTTTATTCATAAACGCGTCAAATTTTTCATGAATA +GCTAAGGAGTTTAAGAATCTCATGTCAAATTGTCCTATATAATCCACTTCGGATCCATAAGCAAACTGAG +AGACTAAGTTCTTAATACTTCGATTGCTCATCCAGGCTCCTCTCTCAGGCTCTATTTTCATCTTGACGAC +CTTTGGATTTTCACCAGTATGTATTCCTTTACGTGATAAATCATCGATTTTCAAATCCATTTGTGAGAAG +TCTATCGCCTTAGATACTTTTTCCCGTAGTTGAGGTTTAAAGAAATACGCTAACGGTATACTAGTAGGTA +ACTCAAAGACATCATATATAGAATGGTAACGCGTCGTTAACTCGTCGGTTAACTCTTTCTTTTGATCGAG +TTCATCGCTACTATTGGGTCTGCTCAGGTGCCCCGACTCTACTAGTTCCAACATCATACCGATAGGAATA +CAAGACACTTTGCCAGCGGTTGTAGATTTATCATATTTCTCCACCACATATCCGTTACAATTTGTTAAGA +ATTTAGATACATCTATATTGCTACATAATCCAGCTAGTGAATATATATGACATAATAAATTGGTAAATCC +TAGTTCTGGTATTTTACTAATTACTAAATCTGTATATCTTTCCATTTATCATGGAAAAGAATTTACCAGA +TATCTTCTTTTTTCCAAACTGCGTTAATGTATTCTCTTACAAATATTCACAAGATGAATTCAGTAATATG +AGTAAAACGGAACGTGATAATTTCTCATTGGCTGTGTTTCCAGTGATAAAACATAGATGGCATAACGCAC +ACGTTGTAAAACATAAAGGAATATACAAAGTTAGTACAGAAGCACGTGGAAAAAAAGTATCTCCTCCATC +ACTAGGAAAACCCGCACATATAAACCTAATGTCGAAGCAATATATATATAGTGAGTATGCAATAAGCTTT +GAATGTTATAGTTTTCTAAAATGTATAACAAATACAGAAATCAATTCGTTCGATGAGTATATATTAAGAG +GACTATTAGAAGCTGGTAATAGTTTACAGATATTTTCCAATTCCGTAGGTAAACGAATAGATACTATAGG +TGTACTAGGGAATAAGTATCCATTTAGCAAAATTCCATTGGCCTCATTAACTCCTAAAGCACAACGAGAG +ATATTTTTAGCGTGGATTTCTCATAGACCTGTAGTTTTAACTGGAGGAACCGGAGTGGGTAAGACGTCAC +AGGTACCCAAGTTATTGCTTTGGTTTAATTATTTATTTGGTGGATTCTCTTCTCTAGATAAAATCACTGA +CTTTCACGAAAGACCAGTCATTCTATCTCTTCCTAGGATAGCTTTAGTTAGATTGCATAGCAATACCATT +TTAAAATCATTGGGATTTAAGGTACTAGATGGATCTCCTATCTCTTTACGGTACGGATCTATACCGGAAG +AATTAATAAACAAACAACCAAAAAAATATGGAATTGTATTTTCTACCCATAAGTTATCTCTAACAAAACT +ATTTAGTTATGGCACTATTATTATAGACGAAGTTCATGAGCATGATCAAATAGGAGATATTATTATAGCA +GTAGCGAGAAAACATCATACGAAAATAGATTCTATGTTTTTAATGACTGCCACGTTAGAGGATGACAGGG +AACGTCTAAAAATATTTTTACCTAATCCCGCATTTATACATATTCCTGGAGATACACTGTTTAAAATTAG +CGAGGTATTTATTCATAATAAGATAAATCCATCTTCCAGAATGGCATATATAGAAGAAGAAAAGAGAAAT +TTAGTTACTGCTATACAGATGTATACTCCTCCTGATGGATCATCCGGTATAGTCTTTGTGGCATCCGTTG +CACAGTGTCACGAATATAAATCATATTTAGAAAAAAGATTACCGTATGATATGTATATTATTCATGGTAA +GGTCTTAGATATAGACGAAATATTAGAAAAAGTGTATTCATCACCTAATGTATCGATAATTATTTCTACT +CCTTATTTGGAATCCAGCGTTACTATACGCAATGTTACACACATTTATGATATGGGTAGAGTTTTTGTCC +CCGCTCCTTTTGGAGGATCACAACAATTTATTTCTAAATCTATGAGAGATCAACGAAAAGGAAGAGTAGG +AAGAGTTAATCCTGGAACATACGTATATTTCTATGATCTGTCTTATATGAAATCTATACAGCGAATAGAT +TCAGAATTTCTACATAATTATATATTGTACGCTAATAAGTTTAATCTAACACTCCCCGAAGATTTGTTTA +TAATCCCTACAAATTTGGATATTCTATGGCGTACAAAGGAATATATAGACTCGTTCGATATTAGTACAGA +AACATGGAATAAATTATTATCCAATTATTATATGAAGATGATAGAGTATGCTAAACTTTATGTACTAAGT +CCTATTCTCGCTGAGGAGTTGGATAACTTTGAGAGGACGGGAGAATTAACTAGTATTGTACAAGAAGCCA +TTTTATCTCTAAATTTACAAATTAAGATTTTAAAATTTAAACATAAAGATGATGATACGTATATACACTT +TTGTAGAATATTATTCGGTGTCTATAACGGAACAAACGCTACTATATATTATCATAGACCTCTAACGGGA +TATATGAATATGATTTCAGATACTATATTTGTTCCTGTAGATAATAACTAAAAATCAAAATCTAATGACC +ACATCTTTTTTTAGAGATGAAAAATTTTCCACATCTCCTTTTGTAGACACGACTAAACATTTTGCAGAAA +AAAGTTTATTATTATTTAGATAATCGTATACTTCATCAGTGTAGATAGTAAATGTGAACAGATAAAAGGT +ATTCTTGCTCAATAGATTGGTAAATTCCATAGAATATATTAATCCTTTCTTCTTGAGATCCCACATCATT +TCAACCAAAGACGTTTTATCCAATGATTTACCTCGTACTATACCACATACAAAACTAGATTTTGCAGTGA +TGTCGTACCTGGTATTCCTACCAAACAAAATTTTACTTTTAGTTCTTTTAGAAAATTCTAAGGTAGAATC +TCTATTTGTCAATATGTCATCTATGGAATTACCACTAGCAAAAAATGATAGAAATATATATTGATACATC +GCAGCTGGTTTTGATCTACTATACTTTAAAAACGAATCAGATTCCATAATTGCTTGTATATCATCAGCTG +AAAAACTATGTTTTACACGTATTCCTTCGGCATTTCTTTTTAATGATATATCTTGTTTAGACAATGATAA +AGTTATCATGTCCATGAGAGACGCGTCTCCGTATCGTATAAATATTTCATTAGATGTTAGACGCTTCATT +AGGGGTATACTTCTATAAGGTTTCTTAATTAGTCCATCATTGGTTGCGTCAAGAACTACTATCTGATGTT +GTTGGGTATCTCTAGTGTTACACATGGCCTTACTAAAGTTTGGGTAAATAACTATGATATCTCTATTAAT +TATAGATGTATATATTTCATTCGTCAAGGATATTAATATCGACTTACTATCGTCATTAATACGTGTAATG +TAATCATATAAATCATGCGATAGCCAAGGAAAATTCAAATAGATGTTCATCATATAATCGTCGCTATAAT +TCATATTAATACTTTGACATTGACTAATTTGTAATATAGCCTCGCCACGAAGAAAGCTCTCGTATTCAGT +TTCATCGATAAAGGATACCGTTAAATATAACTGGTTGCCGATAGTCTCATAGTCTATTAAGTGGTAAGTT +TCGTATAAATACAGAATCCCTAAAATATTATCTAATGTGGGATTAATCCTTACCATAACTGTATAAAATG +GAGCCGGAGTCATAACTATTTTACCGTTTGTACTTACTGGAATAGATGAAGGAATAATCTCCGGACATGA +TGGTAAAGACCCAAATGTCTGTTTGAAGAAATCCAATGTTCCAGGTCCTAATCTCTTGACAAAAATTACG +ATATTCGATCCCGATATCCTTTGCATTCTATTTACCAGCATATCACGAACTATATTAAGATTATCTATCA +TGTCTATTCTCCCACCGTTATATAAATCGCCTCCGCTAAGAAACGTTAGTATATCCATACAATGGAATAC +TTCATTTCTAAAATAGTATTCGTTTTCTAATTCTTTAATGTGAAATCGTATACTAGAAAGGGAAAAATTA +TCTTTGAGTTTTCCATTAGAAAAGAACCACGAAACTAATGTTCTGATTGCGTCTGACTCCGTCGCTGAAT +TAATAGATTTACACCAAAAACTCATATAACTTCTAGATGTAGAAGCATTCGCTAAAAAATTAGTAGAATC +AAAGGATATAAGTAGATGTTCCAACAAGTGAGCAATTCCCAAGATTTCATCTATATCATTCTCGAATCCG +AAATTAGAAATTCCCAAGTAGATATCCTTTTTCATCCGATCATTGATGAAAATACGAACTTTATTCGGTA +AGACGATCATTTACTAAGGAGTAAAATAGGAAGTAACGTTCGTATATCGTTATCGTCGTATAAATTAAAG +GTGTGTTTTTTGCCATTAAGAGACATTATAATTTTACCAATATTGGAATTATAATATAGGTGTATTTGAG +CACTAGAAACGGTCGATGCATCGGTAAATATAGCTGTATCTAATGTTCTAGTCGGTATTTCTTCATTTCG +CTGTCTAATGATAGCGTTTTCTCTATCTGTTTCCATTACAGCTGCCTGAAGTTTATTGGTCGGATAATAT +GTAAAATAATAAGAAATACATACGAATAACAAAAATAAAATAAGATATAATAAAGATGCCATTTAGAGAT +CTAATTTTGTTCAACTTGTCCAAATTCCTACTTACAGAAGATGAGGAATCGTTGGAGATAGTATCTTCCT +TATGTAGAGGATTTGAAATATCTTACGATGACTTAATATCGTACTTTCCAGATAGGAAATACCATAAATA +TATTTCTAAGGTATTTGAACATGTAGATTTATCGGAGGAATTAAGTATGGAATTCCATGATACAACTCTG +AGAGATTTAGTATATCTTAGATTGTACAAGTATTCCAAGTATATACGGCCGTGTTATAAATTAGGAGATA +ATCTAAAAGGTATAGTTGTTATAAAGGACAGAAATATATATATTAGAGAAGCAAATGATGACTTGATAGA +ATATCTCCTCAAGGAATACACTCCTCAGATTTATACATATTCTAATGAGCGAGTTCCCATAGCTGGTTCA +AAATTAATTCTTTGTGGATTTTCTCAAGTTACATTTATGGCGTATACAACGTCGCATATAACAACAAATA +AAAAGGTAGATGTTCTCGTTTCCAAAAAATGTATAGATGAACTAGTCGATCCAATAAATTATCAAATACT +TCAAAATTTATTTGATAAAGGAAGCGGAACAATAAACAAAATACTCAGGAAGATATTTTATTCGGTAACA +GGTGGCCAAACTCCATAGGTAGCTTTTTCTATTTCGGATTTTAGAATTTCCAAATTCACCAGCGATTTAT +CGGTTTTGGTGAAATCCAAGGATTTATTAATGTCCACAAATGCCATTTGTTTTGTCTGTGGATTGTATTT +GAAAATGGAAACGATGTAGTTAGATAGATGCGCGGCGAAGTTTCCTATTAGGGTTCCGCGCTTCACGTCA +CCCAACATACTTGAATCACCATCCTTTAAAAAAAATGATAAGATATCAACATGGAGTATATCATACTCGG +ATTTTAATTCTTCTACTGCCTCACTGACATTTTCACAAATACTACAATACGGTTTACCGAAAATAATCAG +TACGTTCTTCATTTATGGGTATCAAAAACTTAAAATCGTTACTGCTGGAAAATAAATCACTGACGATATT +AGATGATAATTTATACAAAGTATACAATGGAATATTTGTGGATACAATGAGTATTTATATAGCCGTCGCC +AATTGTGTCAGAAACTTAGAAGAGTTAACTACGGTATTCATAAAATACGTAAACGGATGGGTAAAAAAGG +GAGGACATGTAACCCTTTTTATCGATAGAGGAAGTATAAAAATTAAACAAGACGTTAGAGACAAGAGACG +TAAATATTCTAAATTAACCAAGGACAGAAAAATGTTAGAATTAGAAAAGTGTACATCCGAAATACAAAAT +GTTACCGGATTTATGGAAGAAGAAATAAAGGCAGAAATGCAATTAAAAATCGATAAACTCACATTTCAAA +TATATTTATCTGATTATGATAACATAAAAATATCATTGAATGAGATACTAACACATTTCAACAATAATGA +GAATGTTACATTATTTTATTGTGATGAACGAGACGCAGAATTCGTTATGTGTCTAGAGGCTAAAACACAG +TTCTCTACCACAGGAGAATGGCCGTTAATAATAAGTACCGATCAGGATACTATGCTATTCGCGTCTGCTG +ATAATCATCCTAAGATGATAAAAAACTTAACTCAACTGTTTAAATTTGTTCCCTCGGCAGAGGATAACTA +TTTAGCAAAATTAACTGCATTAGTGAATGGATGTGATTTCTTTCCTGGACTCTATGGGGCATCTATAACA +CCCAACAACTTAAACAAAATACAATTGTTTAGTGATTTTACAATCGATAATATAGTCACTAGTTTGGCAA +TTAAAAATTATTATAGAAAGACTAACTCTACCGTAGACGTGCGTAATATTGTTACGTTTATAAACGATTA +CGCTAATTTAGACGATGTCTACTCGTATATTCCTCCTTGTCAATGCACTGTTCAAGAATTTATATTCTCC +GCATTAGATGAAAAATGGAATGAATTTAAATCATCTTATTTAGAGAGCGTGCCGTTACCCTGCCAATTAA +TGTACGCATTAGAACCACGTAAGGAGATTGATGTTTCAGAAGTTAAAACTTTATCATCTTATATAGATTT +CGAAAATACTAAATCAGATATCGATGTTATAAAATCTATATCCTCGATTTTTGGATATTCTAACGAAAAC +TGTAACACCATAGTGTTCGGCATCTATAAGGATAATTTACTACTGAGTATAAATAATTCATTTTACTTTA +ACGATAGTCTGTTAATAACCAATACTAAAAGTGATAATATAATAAATATAGGTTACTAGATTAAAAAATG +GTGTTCCAGCTCGTGTGTTCTACATGCGGCAAAGATATTTCTCACGAACGATATAAATTGATTATACGAA +AAAAATCATTAAAGGATGTACTAGTCAGTGTAAAGAACGAATGTTGTAGGTTAAAATTATCTACACAAAT +AGAACCTCAACGTAACTTAACAGTGCAACCTCTATTGGATATAAACTAATGGATCCGGTTAATTTTATCA +AGACATATGCGCCTAGAGGTTCTATTATTTTTATTAATTATGCCATGTCATTAACTAGTCATTTGAATCC +ATCGATAGAAAAACATGTGGGTATTTATTATGGTACGTTATTATCGGAACACTTGGTAGTTGAATCTACC +TATAGAAAAGGAGTTAGAATAGTCCCATTGGATAGATTTTTTGAAGGATATCTTAGTGCAAAAGTATACA +TGTTAGAGAATATTCAAGTTATGAAAATAGCAGCTGATATGTCGTTAACTTTACTAGGTATTCCATATGG +ATTTGGTCATGATAGAATGTATTGTTTTAAATTGGTAGCTGAATGTTATAAAAATGCCGGTATTGATACA +TCGTCTAAACGAATATTAGGTAAAGATATTTTTCTGAGCCAAAACTTTACAGATGATAATAGATGGATAA +AGATATATGATTCTAATAATTTAACATTTTGGCAAATTGATTACCTTAAAGGGTGAGTTAATATGCATAA +CTACTCCTCCGTTGTTTTTTCCCTCGTTCTTTTTCTTAACGTTGTTTGCCATCACTCTCATAATGTAAAG +ATATTCTAAAATGGTAAACTTTTGCATATCGGATGCAGAAATTGGTATAAATGTTGTAATTGTATTATTT +CCCGTCAATGGACTAGTCACAGCTCCATCAGTTTTATATCCTTTAGAGTATTTCTCACTCGTGTCTAGCA +TTCTAGAGCATTCCATGATCTGTTTATCGTTGATATTGGCCGGAAAGATAGATTTTTTATTTTTTATTAT +ATTACTATTGGCAATTGTAGATATAACTTCTGGTAAATATTTTTCTACCTTTTCAATCTCTTCTATTTTC +AAGCCGGCTATATATTCTGCTATATTGTTACTAGTATCAATACCTTTTCTGGCTAAGAAGTCATATGTGG +TATTCACTATATCAGTTTTAACTGGTAGTTCCATTAGCCTTTCCACTTCTGCAGAATAATTAGAAATTGG +TTCTTTACCAGAAAATCCAGCTACTATAATAGGCTCACCGATGATCATTGGCAAAATCCTATATTGTACC +AGATTAATGAGAGCATATTTCATTTCCAATAATTCTGCTAGTTCTTGAGACATTGATTTATTTGATGAAT +CTATTTGGTTCTCTAGATACTCTACCATTTCTGCCGCATACAATAACTTGTTAGATAAAATCAGGGTTAT +CAAAGTGTTTAGTGTGGCTAGAATAGTGGGCTTGCACGTATTAAAGAATGCTGTAGTATGAGTAAACCGT +TTTAACGAATTATATAGTCTCCAGAAATCTGTGGCGTTGCATACATGAACTGAATGACATCGAAGATTGT +CCAATATTTTTAATAGCTGCTCTTTGTCCATTATTTCTATATTTGACTCGCAACAATTGTAGATACCATT +AATCACTGATTCCTTTTTCGATGCCGGACAATAGCACAATTGTTTAGCTTTGGACTCTATGTATTCAGAA +TTAATAGATATATCTCTCAATACAGATTGCACTATACATTTTGAAACTATGTCAAAAATTGTAGAACGAC +GCTGTTCTGTAGCCATTTAACTTTAAATAATTTACAAAAATTTAAAATGAGCATCCGTATAAAAATCGAT +AAATTGCGCCAAATTGTGGCATATTTTTCAGAGTTCAGCGAAGAAGTGTCTATAAATGTAGACTCGACGG +ATGAATTAATGTATATTTTTGCCGCCTTGGGCGGATCTGTAAACATTTGGGCCATTATACCTCTCAGTGC +ATCAGTGTTCTACCGCGGAGCCGAAAATATTGTGTTTAACCTTCCAGTGTCCAAGGTAAAATCGTGTTTG +TGTAGTTTTCACAATGATGCTATCATAGATATAGAACCTGATCTGGAAAATAATCTAGTAAAACTTTCTA +GTTATCATGTAGTAAGTGTCGATTGTAACAAGGAACTGATGCCTATTAGGACAGATACTACTATTTGTCT +AAGTATAGATCAAAAGAAATCTTACGTATTTAATTTTCACAAGTATGAAGAAAAATGTTGTGGTAGAACC +GTCATTCATCTAGAATGGTTGTTGGGCTTTATCAAGTGTATTAGTCAGCATCAGCATTTGGCTATTATGT +TTAAAGATGACAATATTATTATGAAGACTCCTGGTAATACTGATGCGTTTTCCAGGGAATATTCTATGAC +TGAATGTTCTCAAGAACTACAAAAGTTTTCTTTCAAAATAGCTATCTCGTCTCTCAACAAACTACGAGGA +TTCAAAAAGAGAGTCAATGTTTTTGAAACTAGAATCGTAATGGATAATGACGATAACATTCTAGGAATGT +TGTTTTCGGATAGAGTTCAATCCTTTAAGATTAACATCTTTATGGCGTTTTTAGACTAATACTTTCAATG +AGATAAATATGGGTGGCGGAGTAAGTGTTGAGCTCCCTAAACGGGATCCACCTCCGGGAGTACCCACTGA +TGAGATGTTATTAAACGTGGATAAAATGCATGACGTGATAGCTCCCGCTAAGCTTTTAGAATATGTGCAT +ATAGGACCACTAACAAAAGATAAAGAGGATAAAGTAAAGAAAAGATATCCAGAGTTTAGATTAGTCAACA +CAGGACCCGGTGGTCTTTCGGCATTATTAAGACAATCATATAATGGAACCGCACCCAATTGCTGTCGCAC +TTTTAATCGTACTCATTATTGGAAGAAGGATGGAAAGATATCAGATAAGTATGAAGAGGGTGCAGTATTA +GAATCGTGTTGGCCCGACGTCCACGACACTGGAAAATGCGATGTTGATTTATTCGACTGGTGTCAGGGGG +ATACGTTCGATATGAACATATGCCATCAGTGGATCGGTTCAGCCTTTAATAGGAGTGATAGAACTGTAGA +GGGTCGACAATCGTTAATAAATCTGTATAATAAGATGCAAAGATTATGTAGTAAAGATGCTAGTGTACCA +ATATGTGAATTATTTTTGCATCATTTACGCGCACACAATACAGAAGATAGTAAAGAGATGATCGATTATA +TTCTAAGACAACAGTCGGCGGACTTTAAACAGAAATATATGAGATGTAGTTATCCCACTAGAGATAAGTT +AGAAGAGTCATTAAAATATGCGGAACCTCGAGAATGTTGGGATCCAGAGTGTTCGAATGCCAATGTTAAT +TTCTTACTAACACGTAATTATAATAATTTAGGACTTTGCAATATTGTACGATGTAATACGAGCGTGAATA +ACTTACAGATGGATAAAACTTCCTCATTAAGATTATCATGTGGATTAAGCAATAGTGATAGATTTTCTAC +TGTTCCCGTCAATAGAGCAAAAGTAGTTCAACATAATATTAAACATTCGTTCGACCTAAAATTGCATTTG +ATCAGTTTATTATCTCTCTTGGTAATATGGATACTAATTGTAGCTATTTAAATGGGTGCCGCAGCAAGCA +TACAGACGACTGTGAATACACTCAGTGAACGTATCTCGTCTAAATTAGAACAAGAAGCGAACGCTAGTGC +TCAAACAAAATGTGATATAGAAATCGGAAATTTTTATATCCGACAAAACCATGGATGTAACATCACTGTT +AAAAATATGTGCTCTGCGGACGCGGATGCTCAGTTGGATGCTGTGTTATCAGCCGCTACAGAAACATATA +GTGGATTAACACCGGAACAAAAAGCATACGTACCAGCTATGTTTACTGCTGCGTTAAACATTCAGACGAG +TGTAAACACTGTTGTTAGAGATTTTGAAAATTATGTGAAACAGACTTGTAATTCTAGCGCTGTTGTCGAT +AACAAATTAAAGATACAAAACGTAATTATAGATGAATGTTACGGAGCCCCAGGATCTCCAACAAATTTGG +AATTTATTAATACAGGATCTAGCAAAGGAAATTGTGCCATTAAGGCGTTGATGCAATTGACTACTAAGGC +CACTACTCAAATAGCACCTAGACAAGTTGCTGGTACAGGAGTTCAGTTTTATATGATTGTTATCGGTGTT +ATAATATTGGCAGCGTTGTTTATGTACTATGCCAAGCGTATGCTGTTCACATCCACCAATGATAAAATCA +AACTTATTTTAGCCAATAAGGAAAACGTCCATTGGACTACTTACATGGACACATTCTTTAGAACTTCTCC +GATGATTATTGCTACCACGGATATACAAAACTGAAAATATATTGATAATATTTTAATAGATTAACATGGA +AGTTATCGCTGATCGTCTAGACGATATAGTGAAACAAAATATAGCGGATGAAAAATTTGTAGATTTTGTT +ATACACGGTCTAGAGCATCAATGTCCTGCTATACTTCGACCATTAATTAGGTTGTTTATTGATATACTAT +TATTTGTTATAGTAATTTATATTTTTACGGTACGTCTAGTAAGTAGAAATTATCAAATATTGTTGGTGTT +GGTGGCGCTAGTCATCACATTAACTATTTTTTTATTACTTTATACTATAATAGTACTAGACTGACTTCTA +ACAAACATCTCACCTGCCATAAATAAATGCTTGATATTAAAGTCTTCTATTTCTAACACTATTCCATCTG +TGGAAAATAATACTCTGACATTATCGCTAATTGATACATCGGTAAGTGATATGCCTATAAAGTAATAATC +TTCTTTGGGCACATATACCAGTGTACCAGGTTCTAACAACCTATTTACTGGTGCTCCTGTAGCATACTTT +TTTTTTACCTTGAGAATATCCATTGTTTGCTTGGTCAATAGTGATATGTGATTTTTTATCAACCACTCAA +AAAAGTAATTGGAGTGTTCATATCCTCTACGGGCTATTGTCTCATGACCGTGTATGAAATTTAAGTAACA +CGACTGTGGTAGATTTGTTCTATAGAGCCGGTTGCCGCAAATAGATAGAACTACCAATATGTCTGTACAA +ATGTTAAACATTAATTGATTAACAGAAAAAACAATGTTCGTTCTGGGAATAGAAACCAGATTAAAACAAA +ATTCATTAGAATATATGCCACGTTTATACATGGAATATAAAATAACTACAGTTTGAAAAATAACAGTATC +ATTTAAACATTTAACTTGCGGGGTTAATCTCACAACTTTACTGTTTTTGAACTGTTCAAAATATAGCATA +GATCCATGAGAAATACGTTTAGCCGCCTTTAATAGAGGAAATCCAACCGCCTTTCTGGATCTCACCAACG +ACGATAGTTCTGACCAGCAACTCATTTCTTCATCATCCACCTGTTTTAACATATAATAGGCAGGAGATAG +ATATCCATCATTGCAATATTCCTTCTCGTAGGCACACAATCTAATATTGATAAAATCTCCATTCTCTTCT +CTGTATTTATTATCTTGTCTCGGTGGCTGATTAGGCTGTGGTCTATCGTTGTTGAATCTATTTTGGTCAT +TAAATCTTTCATTTCTTCCTGGTATATTTCTATCACCTCGTTTGGTTGGATTTTTGTCTATATTATCGTT +TGTAACATCGGTACGGGTATTCATTTATCACAAAAAAAACTTCTCTAAATGAGTCTACTACTAGAAAACC +TCATCGAAGAAGATACCATATTTTTTGCAGGAAGTATATCTGAGTATGATGATTTACAAATGGTTATTGC +TGGTGCAAAATCCAAATTTCCAAGATCTATGCTTTCTATTTTTAATATAGTACCTAGAACGATGTCAAAA +TATGAGTTGGAGTTGATTCATAACGAGAATATCACAGGGGCAATGTTTACCACAATGTATAATATAAGAA +ACAATTTGGGTCTAGGCGATGATAAACTAACTATTGAAGCCATTGAAAACTATTTCTTGGATCCTAACAA +TGAGGTTATGCCTCTTATCATTAATAATACGGATATGACTACCGTCATTCCTAAAAAAAGTGGTAGGAGA +AAGAATAAGAACATGGTTATCTTCCGTCAAGGATCATCACCTATCTTGTGTATTTTCGAAACTCGTAAAA +AGATTAATATTTATAAAGAAAATATGGAATCCGTATCGACTGAGTATACACCTATCGGAGACAACAAGGC +TTTGATATCTAAATATGCGGGAATTAATATCCTGAATGTGTATTCTCCTTCCACGTCCATGAGATTGAAT +GCCATTTACGGATTCACCAATAAAAATAAACTAGAGAAACTTAGTACTAATAAGGAACTAGAATCGTATA +GTTCTAGCCCTCTTCAAGAACCCATTAGGTTAAATGATTTTCTGGGACTATTGGAATGTGTTAAAAAGAA +TATTCCTCTAACAGATATTCCGACAAAGGATTGATTACTATAAATGGAGAATGTTCCTAATGTATACTTT +AATCCTGTGTTTATAGAGCCCACGTTTAAACATTCTTTATTAAGTGTTTATAAACACAGATTAATAGTTT +TATTTGAAGTATTCGTTGTATTCATTCTAATATATGTATTTTTTAGATCTGAATTAAATATGTTCTTCAT +GCCTAAACGAAAAATACCCGATCCTATTGATAGATTACGACGTGCTAATCTAGCGTGTGAAGACGATAAA +TTAATGATCTATGGATTACCATGGATAACAACTCAAACATCTGCGTTATCAATAAATAGTAAACCGATAG +TGTATAAAGATTGTGCAAAGCTTTTGCGATCAATAAATGGATCACAACCAGTATCTCTTAACGATGTTCT +TCGCAGATGATGATTCATTTTTTAAGTATTTTGCTAGTCAAGATGATGAATCTTCATTATCTGATATATT +GCAAATCACTCAATATCTAGACTTTCTGTTATTATTATTGATCCAATCAAAAAATAAATTAGAAGCTGTG +GGTCATTGTTATGAATCTCTTTCAGAGGAATACAGACAATTGACAAAATTCACAGACTCTCAAGATTTTA +AAAAACTGTTTAACAAGGTCCCTATTGTTACAGATGGAAGGGTCAAACTTAATAAAGGATATTTGTTCGA +CTTTGTGATTAGTTTGATGCGATTCAAAAAAGAATCAGCTCTAGCTACCACCGCAATAGATCCTGTTAGA +TACATAGATCCTCGTCGTGATATCGCATTTTCTAACGTGATGGATATATTAAAGTCGAATAAAGTTGAAA +AATAATTAATTCTTTATTGTTATCATGAACGGCGGACATATTCAGTTGATAATCGGCCCCATGTTTTCAG +GTAAAAGTACAGAATTAATTAGACGAGTTAGACGTTATCAAATAGCTCAATATAAATGTGTGACTATAAA +ATATTCTAACGATAATAGATACGGAACGGGACTATGGACACATGATAAGAATAATTTTGCAGCATTGGAA +GTAACTAAACTATGTGATGTCTTGGAAGCAATTACAGATTTCTCCGTGATAGGTATAGATGAAGGACAGT +TCTTTCCAGACATTGTTGAATTCTGTGAGCGTATGGCAAACGAAGGAAAAATAGTTATAGTAGCCGCGCT +CGATGGGACATTTCAACGTAGACCGTTTAATAATATTTTGAATCTTATTCCATTATCTGAAATGGTGGTA +AAACTAACTGCAGTGTGTATGAAATGCTTTAAGGAGGCTTCCTTTTCTAAACGATTAGGTACAGAAACCG +AGATAGAAATAATAGGAGGTAATGATATGTATCAATCTGTGTGTAGAAAGTGTTACATCGACTCATAATA +TTATATTTTTTATCTAAAAAACTAAAAATAAACATTGATTAAATTTTAATATAATACTTAAAAATGGATG +TTGTGTCGTTAGATAAACCGTTTATGTATTTTGAGGAAATTGATAATGAGTTAGATTACGAACCAGAAAG +TGCAAATGAGGTCGCAAAAAAACTGCCGTATCAAGGACAGTTAAAACTATTACTAGGAGAATTATTTTTT +CTTAGTAAGTTACAGCGACACGGTATATTAGATGGCGCCACCGTAGTGTATATAGGATCTGCTCCAGGTA +CACATATACGTTATTTGAGAGATCATTTCTATAATTTAGGAGTGATCATCAAATGGATGCTAATTGACGG +CCGCCATCATGATCCTATTCTAAATGGATTGCGTGATGTGACTCTAGTGACTCGGTTTGTTGATGAGGAA +TATCTACGATCCATCAAAAAACAACTACATCCTTCTAAGATTATTTTAATTTCTGATGTGCGATCCAAAC +GAGGAGGAAATGAACCTAGTACTGCGGATTTACTAAGTAATTATGCTCTACAAAATGTCATGATTAGTAT +TTTAAACCCCGTGGCGTCTAGTCTTAAATGGAGATGCCCGTTTCCAGATCAATGGATCAAGGACTTTTAT +ATCCCACACGGTAATAAAATGTTACAACCTTTTGCTCCTTCATATTCAGCTGAAATGAGATTATTAAGTA +TTTATACCGGTGAGAATATGAGACTGACTCGAGTTACCAAATCAGACGCTGTAAATTATGAAAAAAAGAT +GTATTACCTTAATAAGATAGTCCGCAACAAAGTAGTTATTAACTTTGATTATCCTAATCAGGAATATGAC +TATTTTCACATGTACTTTATGTTGAGGACCGTATACTGCAATAAAACATTTCCTACTACTAAAGCAAAGA +TACTATTTCTACAACAATCTATATTTCGTTTCTTAAATATTCCAACGACATCAACTGAAAAAGTTAGTCA +TGAACCAATACAACGTAAAATATCTAGCAAAGATTCTATGTCTAAAAACAGAAATAGCAAGAGATCCGTA +CGCGGTAATAAATAGAAACGTACTACTGAGATATACTACCGATATAGAGTATAATGATTTAGTTACTTTA +ATAACCGTTAGACATAAAATTGATTCTATGAAAACTGTGTTTCAGGTATTTAACGAATCATCCATAAATT +ATACTCCGGTTGATGATGATTATGGAGAACCAATCATTATAACATCGTATCTTCAAAAAGGTCATAACAA +GTTTCCTGTAAATTTTCTATACATAGATGTGGTAATATCTGACTTATTTCCTAGCTTTGTTAGACTAGAT +ACTACAGAAACTAATATAGTTAATAGTGTACTACAAACAGGCGATGGTAAAAAGACTCTTCGTCTTCCTA +AAATGTTAGAGACGGAAATAGTTGTCAAGATTCTCTATCGTCCTAATATACCATTAAAAATTGTTAGATT +TTTCCGCAATAACATGGTAACTGGAGTAGAGATAGCCGATAGATCTGTTATTTCAGTCGCTGATTAATCA +ATTAGTAGAGATGAGATAAGAACATTATAATAATCAATAATATATCTTATATCTGTTTAGAAAAATGCTA +ATATTAAAATAGCTAACGCTAGTAATCCAATCGGAAGCCATTTGATATCTATAATAGGGTATCTAATTTC +CTGATTCAGATAGCGTACGGCTATATTCTCGGTAGCTACTCGTTTGGAATCACAGACATTATTTACATCT +AATTTACTATCTGTAATGGAAACGTTTCCCAATGAAATGGTACAATCAGATACATTACATCTTGATATAT +TTTTTTTTAAAGAGGCTGGTAACAACGCATCGCTTCGTTTACATGGCTCGTACCAACAATAATAGGGTAA +TCTTGTATCTATTCCTATCCGTACTATACTTTTATCAGGATAAATACATTTACATCGTATATCGTCTTTG +TTAGTATCACAGAATGCATAAATTTGTTCGTCCGTCATGATAAAAATTTAAAGTGTAAATATAACTATTA +TTTTTATAGTTATAATAAAAAGGGAAATTTGATTGTATACCTTCGGTTCTTTAAAAGAAACTGACTTGAT +AAAAATGGCTGTAATCTCTAAGGTTACGTATAGTCTATACGATCAAAAAGAGATTAATGCCACAGATATT +ATCATTAGTCATATTAAAAATGACGACGATATCGGTACCGTTAAAGATGGTAGACTAGGTGCTATGGATG +GGGCATTATGTAAGACTTGTGGGAAAACGGAATTGGAATGTTTCGGTCACTGGGGTAAAGTAAGTATTTA +TAAAACTCATATAGTTAAGCCTGAATTTATTTCAGAAATTATTCGTTTACTGAATCATATATGTATTCAT +TGCGGATTATTGCGTTCACGAGAACCGTATTCCGACGATATTAACCTAAAAGAGTTATCGGTACACGCTC +TTAGGAGATTAAAGGATAAAATATTATCCAAGAAAAAGTCATGTTGGAACAGCGAATGTATGCAACCGTA +TCAAAAAATTACTTTTTCAAAGAAAAAGGTTTGTTTCGTCAACAAGTTGGATGATATTAACGTTCCTAAT +TCTCTCATCTATCAAAAGTTAATTTCTATTCATGAAAAGTTTTGGCCATTATTAGAAATTCATCAATATC +CAGCTAACTTATTTTATACAGACTACTTTCCCATCCCTCCGTTGATTATTAGACCGGCTATTAGTTTTTG +GATAGATAGTATACCCAAAGAGACAAATGAATTAACTTACTTATTAGGTATGATCGTTAAGAATTGTAAC +TTGAATGCTGATGAACAGGTTATCCAGAAGGCGGTAATAGAATACGATGATATTAAAATTATTTCTAATA +ACACTACCAGTATCAATTTATCATATATCACATCCGGCAAAAATAATATGATTAGAAGTTATATCGTCGC +TCGGCGAAAAGATCAGACCGCTAGATCCGTAATTGGTCCCAGTACATCTATCACCGTTAATGAGGTAGGA +ATGCCCACATATATTAGAAATACACTTACAGAAAAGATATTTGTTAATGCCTTTACAGTGGATAAAGTTA +AACAACTATTAGCATCAAACCAAGTTAAATTTTACTTTAATAAACGATTAAACCAATTAACAAGAATACG +TCAAGGAAAGTTTATCAAAAATAAAATACATTTATTGCCTGGTGATTGGGTAGAAGTAGCTGTTCAAGAA +TATACAAGTATTATTTTTGGAAGACAACCGTCTCTACATAGATACAACGTCATCGCTTCATCTATCAGAG +CTACCGAAGGAGATACTATCAAAATATCTCCCGGAATTGCCAACTCTCAAAATGCTGATTTCGACGGAGA +TGAAGAATGGATGATATTGGAGCAAAATCCTAAAGCCGTAGTTGAACAAAGTATTCTTATGTATCCGACG +ACGTTACTCAAACACGATATTCATGGAGCCCCCGTTTATGGATCTATTCAAGATGAAATCGTAGCAGCGT +ATTCATTGTTTAGGATACAAGATCTTTGTTTAGATGAAGTATTGAACATCTTGGGGAAATATGGAAGAGA +GTTCGATCCTAAAGGTAAATGTAAATTCAGCGGTAAAGATATCTATACTTACTTGATAGGTGAAAAGATT +AATTATCCGGGTCTCTTAAAGGATGGTGAAATTATTGCAAACGACGTAGATAGTAATTTTGTTGTAGCTA +TGAGGCATCTGTCATTGGCTGGACTCTTATCCGATCATAAATCGAACGTGGAAGGTATCAACTTTATTAT +CAAGTCATCTTATGTTTTTAAGAGATATCTATCTATATACGGTTTTGGGGTGACATTCAAAGATCTGAGA +CCAAATTCGACGTTCACTAATAAATTGGAGGCTATCAACGTAGAAAAAATAGAACTTATCAAAGAAGCAT +ACGCCAAATATCTCAAAGATGTAAGAGACGGGAAAATAGTTCCATTATCTAAAGCTTTAGAGGCGGACTA +CTTGGAATCCATGTTATCCAACTTGACAAATCTTAATATCAGAGAGATAGAAGAACATATGAGACAAACG +CTGATAGATGATCCAGATAATAACCTCCTGAAAATGGCCAAAGCGGGTTATAAAGTAAATCCCACAGAAC +TAATGTATATTCTAGGTACTTATGGACAACAGAGGATAGATGGCGAACCAGCAGAGACTCGAGTATTGGG +TAGAGTCTTACCTTACTATCTTCCAGACTCTAAGGATCCAGAAGGAAGAGGTTATATTCTTAATTCTTTA +ACAAAAGGATTAACGGGTTCTCAATATTACTTTTTGATGCTGGTTGCAAGATCTCAATCTACTGATATTG +TCTGTGAAACATCACGTACCGGAACACTGGCTAGAAAAATCATTAAAAAGATGGAGGATATGGTGGTCGA +CGGATACGGACAAGTAGTTATAGGTAATACGCTCATCAAGTACGCAGCCAATTATACCAAAATTCTAGGC +TCAGTATGTAAACCTGTAGATCTTATCTATCCAGATGAGTCCATGACTTGGTATTTGGAAATTAGTGCTT +TGTGGAATAAAATAAAACAGGGATTCGTTTACTCTCAGAAACAGAAACTTGCAAAGAAGACATTGGCGCC +GTTTAATTTCCTAGTATTCGTCAAACCCACCACTGAGGATAATGCTATTAAGGTTAAGGATCTGTACGAT +ATGATTCATAACGTCATTGATGATGTGAGAGAGAAATACTTCTTTACGGTATCTAATATAGATTTTATGG +AGTATATATTCTTGACGCATCTTAATCCTTCTAGAATTAGAATTACAAAAGAAACGGCTATTACTATCTT +TGAAAAGTTCTATGAAAAACTCAATTATACTCTAGGTGGTGGAACTCCTATTGGAATTATTTCTGCACAG +GTATTGTCTGAGAAGTTTACACAACAAGCCCTGTCCAGTTTTCACACTACTGAAAAGAGTGGTGCTGTAA +AACAAAAACTTGGTTTCAACGAGTTTAATAACTTGACTAATTTGAGTAAGAATAAGACCGAAATTATCAC +TCTGGTATCCGATGATATCTCTAAACTTCAATCTGTTAAGATTAATTTCGAATTTGTATGTTTGGGAGAA +TTAAATCCAGACATCACTCTTCGAAAAGAAACAGATAGATATGTAGTAGACATAATAGTCAATAGATTAT +ACATCAAGAGAGCAGAAATAACCGAATTAGTCGTCGAATATATGATTGAACGATTTATCTCCTTTAGCGT +CATTGTAAAGGAATGGGGTATGGAGACATTCATTGAGGACGAGGATAATATTAGATTTACTATCTACCTA +AATTTCGTTGAACCGGAGGAATTGAATCTTAGTAAGTTTATGATGGTTCTTCCAGGTGCCGCCAACAAGG +GCAAGATTAGTAAATTCAAGATTCCTATCTCTGACTATACGGGATATAACGACTTCAATCAAACAAAAAA +GCTCAATAAGATGACTGTAGAACTCATGAATCTAAAAGAATTGGGTTCTTTCGATTTGGAGAACGTCAAC +GTGTATCCTGGAGTATGGAATACATACGATATCTTCGGTATTGAGGCCGCTCGTGGATACTTGTGCGAAG +CCATGTTAAACACCTATGGAGAAGGTTTCGATTATCTGTACCAGCCTTGTGATCTTCTCGCTAGTTTACT +ATGTGCTAGTTACGAACCAGAATCAGTTAATAAATTCAAGTTCGGTGCAGCTAGTACTCTTAAGAGAGCT +ACGTTCGGAGATAATAAAGCATTGTTAAACGCGGCTCTTCATAAAAAGTCAGAACCTATTAACGATAATA +GTAGCTGCCACTTTTTTAGCAAGGTCCCTAATATAGGAACTGGATATTACAAATACTTTATCGACTTGGG +TCTTCTCATGAGAATGGAAAGGAAACTATCTGATAAGATATCTTCTCAAAAGATCAAGGAGATAGAAGAA +ACAGAAGACTTTTAATTCTTATCAATAACATATTTTTCTATGATCTGTCTTTTAAACGATGGATTTTCCA +CAAATGCGCCTCTCAAGTCCCTCATAGAATGATACACGTATAAAAAATATAGCATAGGTGATGACTCCTT +ATTTTTAGACATTAGATATGCCAAAATCATAGCCCCGCTTCTATTTACTCCTGCAACACAATGAACCAAC +ACGGGCTCGTTTCGTTGATCACATTTAGATAAGAAGGCGGTCACGTCGTCAAAATATTTACTAATATCAG +TAGTTGTATCATCTACCAACGGTATATGAATAATATTAATATTAGAGTTAGGTAATGTATATTTATCCAT +CGTCAAATTTAAAACATATTTGAACTTAACTTCAGATGATGGTGCATCCATAGCATTTTTATAATTTCCC +AAATACACATTATTTGTTACTCTTGTCATTATAGTGGGAGATTTGGCTCTGTGCATATCTCCAGTTGAAC +GTAGTAGTAAGTATTTATACAAACTTTTCTTATCCATTTATAACGTACAAATGGATAAAACTACTTTATC +AGTAAACGCATGCAATTTAGAATACGTTAGAGAAAAGGCTATAGTAGGCGTACAAGCAGCCAAGACATCA +ACACTTATATTTTTTGTTATTATATTGGCAATTAGTGCGCTATTACTCTGGTTTCAGACGTCTGATAATC +CAGTCTTTAATGAATTAACGAGATATATGCGAATTAAAAATACGGTTAACGATTGGAAATCATTAACGGA +TAGCAAAACAAAATTAGAAAGCGATAGAGGTAGACTTCTAGCCGCTGGTAAGGATGATATATTCGAATTC +AAATGTGTGGATTTCGGCGCCTATTTTATAGCTATGCGATTGGATAAGAAAACATATCTGCCGCAAGCTA +TTAGGCGAGGTACTGGAGACGCGTGGATGGTTAAAAAGGCGGCAAAAGTCGATCCATCTGCTCAACAATT +TTGTCAGTATTTGATAAAACACAAGTCTAATAATGTTATTACTTGTGGTAATGAGATGTTAAATGAATTA +GGTTATAGCGGTTATTTTATGTCACCGCATTGGTGTTCCGATCTTAGTAATATGGAATAAGTGTTAGATA +AATGCGGTAACAAATGTTCCTGTAAGGAACCATAACAGTTTAGATTTAACATTAAAGATGAGCATAAACA +TAATAAACAAAATTACAATCAAACCTATAACATTAATATCAAACAATCCAAAAAATGAAATCAATGGAGT +AGTAAACGTGTACATAACTCCTGGATAACGTTTAGCAGCTACCGTTCCTATTCTAGACCAAAAATTTGGT +TTCATGGTTTCGAAGCGGTGTTCTGCAACAAGACGAGGATCGTGTTCTACATATTTGGCAGAGTTATCCA +TTATTTGCCTGTTAATCTTCATTTCGTTTTCGATTCTGGCTATTTCAAAATAAAATCCCGATGATAGACC +TCCAGACTTTATAATTTCATCTACGATGTTCAGCGCCGTAGTAACTCTAATAATATAGGCGGATAAGCTA +ACATCATACCCTCCTGTATATGTAAATATGGCATGATCTTTGTCTATTACAAGCTCGGTTTTAACTTTAT +TTCCTGTAATAATTTCTCTCATCTGTAGGATATCTATTTTCTTGTCATGTATTGCCTTCAAGACGGGACG +AAGAAACGTAATATCCTCAATAACGTTATCGTTTTCTATAATAACTACATATTCTACATTTTTATTTTCT +AGCTCGGTAAAAAATTTAGAATCCCATAGGGCTAAATGTCTAGCGATATTTCTTTTCGTTTCCTCTGTAC +ACATAGTGTTACAAAACCCTGAAAAGAAGTGAGTATACTTGTCATCATCTCTAATATTTCCTCCAGTCCA +TTGTATAAACACATAATCCTTGTAATGATCTGGATCATCATTGACTATCACAACATCTCTTTTTTCTTGC +ATAACTTCATTGTCCTTCACATCATCGAACTTCTGATCATTAATATGCTCATGAACATTAGGAAATGTTT +CTGATGGAGGTCTATCAATAACTGGCACAACAATAACAGGAGTTTTCACCGCCGCCATTTAGTTATTGAA +ATTAATCATATACAACTCTCTAATACGAGTTATATTTTCGTCTATCCATTGTTTCACATTGACATATTTC +GACAAAAAGATATAAAATGCGTATTCCAATGCTTCTCTGTTTAATGAATTACTAAAATATACAAACACGT +CACTGTCTGGTAATAAATAATATCTTAGAATATTGTAACAATTTATTTTGTATTGCACATGTTCGTGATC +TATGAGTTCTTCTTCAAATGGCATAGGATCTCCGAATCTGAAAACGTATAAATAGGAGTTAGAATAATAA +TATTTGAGAGTATTGGTAATGTATAAACTCTTTAGCGGTATAATTAGTTTTTTTCTCTCGATTTCTATTT +TTAGATGTGATGGAAAAATGACTAATTTTGTAGCATTAGTATCATGAACTCTAATCAAAATCTTAATATC +TTCGTCACATGTTAGCTCTTTGAAGTTTTTAAGAGATGCATCAGTTGGTTTTACAGATGGAGTAGGTGCA +ACAATTTTTTGTTTAATGCATGCATGTATTGGAGCCATTGTCTTAACTATAATGGTGCTTGTATCGAAAA +ACTTTAATGCGGATAACGGAAGCTCTTCGCCGCGACTTTCTACGTCGTAATTGGGTTCTAATGCCGATCT +CTGAATGGATACTAGTTTTCTAAGTTCTAATGTAATTCTCTGAAAATGTAAATCCAATTCCTCCGGCATT +ATAGATGTGTATACATCGGTAAATAAAACTATAGTATCCAACGATCCCTTCTCGCAAATTCTAGTCTTAA +CCAAGAAATCGTATATAACTACGGAGATGGCGTATTTAAGAGTGGATTCTTCTACCGTTTTGTTCTTGGA +TTTCATATAAGAAACTATAAAGTCCGCACTACTGTTAAGAATGATCACTAACGCAACTATATAGTTCAAA +TTAAGCATCTTGGAAACATAAAATAACTCTGTAGATGATACTTGACTTTCGAATAAGTTTGCAGACAAAC +GAAGAAAGAACAGACCTCTCTTAATTTCAGAAGAAAACTTTTTTTCGTATTCCTGACGTCTAGAGTTTAT +ATCAATAAGAAAGTTAAGAATTAGTCGGTTAATGTTGTATTTCATTACCCAAGTTTGAGATTTCATAATA +TTGTCAAAAGACATGATAATATTAAAGATAAAGCGCTGACTATGAACGAAATAGCTATATGGTTCGCTCA +AGAATATAGTCTTGTTAAACGTGGAAACGATAACTGTATTTTTAATCACGTCAGCGGCATCTAAATTAAA +TATAGGTATATTTATTCCACACACTCTACAATATGCCACACCATCTTCATAATAAATAAATTCGTTAGCA +AAATTATTAATTTTAGTGAAATAGTTAGCGTCAACTTTCATAGCTTCCTTCAATCTAATTTGATGCTCAC +ATGGCGCGAATTCTACTCTAACATCCCTTTTCCATGCCTCAGGTTCATCGATCTCTATAATATCTAGTTT +CTTGCGTTTCACAAACACAGGCTCGTCTCTCGCGATGAGATCTGTATAGTAACTATGTAAATGATAACTA +GATAGAAAGATGTAGCTATATAGATGACGATCCTTTAAGAGAGGTATAATAACTTTACCCCAATCAGATA +GACTGTTGTTATGGTCTTCGGAAAAAGAATTTTTATAAATTTTTCCAGTATTTTCTAAATATACGTACTT +GATATCTAAGAAATCCTTAATAATAATAGGAATGGATAATCCGTCTATTTTATAAAGAAATACATATCGC +ATATTATACTTTTTTTTGGAAATTGGAATACCGATGTGTCTACATAAATACGCAAAGTCTAAATATTTTT +TAGAGAATCTTAGTTGGTCCAAATTCTTTTCCAAGTACGGTAATAGATTTTTCATATTGAACGGTATCTT +CTTGATCTCTGGTTCTAATTCCGCATTAAATGATGAAACTAAGTCACTATTTTTATAACTAACGATTACA +TCACCTCTAACATCATCATTTACCAGGATACTGATCTTCTTTTGTCGTAAATACATGTCTAATGTGTTAA +AAAAAAGATCATACAAGTTATACGTCATTTCATCTGTAGTATTCTTGTCATTGAAGGATAAACTCGTACT +AATCTCTTCTTTAACAGTCTGTTCAAATTTATATCCTATATATGAAAAAATAGCAACCAGTGTTTGATCA +TCCGCGTCAATATTCTGTTCTATCGTAGTGTATAACAATCTTATATCTTCTTCTGTGATAGTCGATACGT +TATAAAGGTTGATAACGAAAATATTTTTATTTCGTGAAATAAAGTCATTGTAGGATTTTGGACTTATATT +CGTGTCTAGTAGATATGATTTTATTTTTGGAATGATCTCAATTAAAATAGTCTCTTTAGAGTCCATTTAA +AGTTACAAACAACTAGGAAATTGGTTTATGATGTATAATTTTTTTAGTTTTTATAGATTCTTTATTCTAT +ACTTAAAAAATGAAAATAAATACAAAGGTTCTTGAGGGTTGTGTTAATTGAAAGCGATAAATAATCATAA +ATTATTTCATTATCGCGATATCCGTTAAGTTTGTATCGTAATGGCGTGGTCAATTACGAATAAAGCGGAT +ACTAGTAGTTTCACAAAGATGGCTGAAATCAGAGCTCATCTAAGAAATAGCGCTGAAAATAAAGATAAAA +ACGAGGATATTTTCCCGGAAGATGTAATAATTCCATCTACTAAGCCCAAAACCAAACGAACCACTACTCC +TCGTAAACCAGCGGCTACTAAAAGATCAACCAAAAAGGATAAAGAAAAGGAGGAAGTGGAAGAAGTAGTT +ATAGAGGAATATCATCAAACAACTGAAGAAAATTCTCCACCTCCGTCATCATCTCCTGGAGTCGGCGACA +TTGTAGAAAGCGTGGCCGCTGTAGAGCTCGATGATAGCGACGGGGATGATGAACCTATGGTACAAGTTGA +AGCTGGTAAAGTAAATCATAGTGCTAGAAGCGATCTCTCTGACCTAAAGGTGGCTACCGACAATATCGTT +AAAGATCTTAAGAAAATTATTACTAGAATCTCTGCAGTATCGACTGTTCTAGAGGATGTTCAAGCAGCTG +GTATCTCTAGACAATTTACTTCTATGACTAAAGCTATTACAACACTATCTGATCTAGTCACCGAGGGAAA +ATCTAAAGTTGTTCGTAAAAAAGTTAAAACTTGTAAGAAGTAAATGCGTGCACTTTTTTATAAAGATGGT +AAACTGTTTACCGATAATAATTTTTTAAATCCTGTATCAGACGATAATCCAGCGTATGAGGTTTTGCAAC +ATGTTAAAATTCCTACTCATTTAACAGATGTAGTAGTATATGAACAAACGTGGGAAGAGGCATTAACTAG +ATTAATTTTTGTGGGAAGTGATTCAAAAGGACGTAGACAATACTTTTACGGAAAAATGCATATACAGAAT +CGCAATGCTAAAAGAGATCGTATTTTTGTTAGAGTATATAACGTTATGAAACGAATTAATTGTTTTATAA +ACAAAAATATAAAGAAATCGTCCACAGATTCCAATTATCAGTTGGCGGTTTTTATGTTAATGGAAACTAT +GTTTTTTATTAGATTTGGTAAAATGAAATATCTTAAGGAGAATGAAACAGTAGGGTTATTAACACTAAAA +AATAAACACATAGAAATAAGTCCCGATGAAATAGTTATCAAGTTTGTAGGAAAGGACAAAGTTTCACATG +AATTTGTTGTTCATAAGTCTAATAGACTATATAAACCGCTATTGAAACTGACTGATGATTCTAGTCCCGA +AGAATTTCTGTTCAACAAACTAAGTGAACGAAAGGTATATGAATGTATCAAACAGTTTGGTATTAGAATC +AAGGATCTCCGAACGTATGGAGTCAATTATACGTTTTTATATAATTTTTGGACAAATGTAAAGTCCGTAT +CTCCTCTTCCATCACCAAAAAAGTTGATAGCATTAACTATCAAACAAACTGCTGAAGTGGTAGGTCATAC +TCCATCAATTTCAAAAAGAGCTTATATGGCAACGACTATTTTAGAAATGGTAAAGGATAAAAATTTTTTA +GACGTAGTATCTAAAACTACGTTCGATGAATTCCTATCTATAGTCGTAGATCACGTTAAATCATCTACGG +ATGGATGATAATAGATCTTTACACAAATAATTACAAGACCGATAAATGGAAATGGATAAACGGATGAAAT +CTCTCGCTATGACAGCTTTCTTCGGAGAGCTAAACACGTTAGATATTATGGCATTGATAATGTCTATATT +TAAACACCATCCAAACAATACCATTTTTTCAGTGGATAAGGATGGTCAATTTATGATTGATTTCGAATAC +GATAATTATAAGGCTTCTCAATATTTGGATCTGACCCTCACTCCGATATCTGGAAATGAATGCAAGACTC +ACGCATCTAGTATAGCCGAACAATTGGCGTGTGTGGATATTATTAAAGAGGATATTAGCGAATATATCAA +AACTACTCCCCGTCTTAAACGATTTATAAAAAAATACCGCAATAGATCATATACTCGTATCAGTCGAGAT +ACAGAAAAGCTTAAAATAGCTCTAGCTAAAGGCATAGATTACGAATATATAAAAGACGCTTGTTAATAAG +TAAATGAAAAAAAACTAGTCGTTTATAATAAAACACAATATGGATGCCAACATAGTATCATCTTCTACTA +TTGCGACGTATATAGACGCTTTAGCGAAGAATGCTTCAGAATTAGAACAGAGGTCTACCGCATACGAAAT +AAATAATGAATTGGAACTAGTATTTATTAAACCGCCATTGATTACGTTGACAAATGTAGTAAATATCTCC +ACGATTCAGGAATCGTTTATTCGATTTACCGTTACTAATAAGGAAGGTATCAAAATTAGAACTAAGATTC +CATTATCTAAGGTACATGGTCTAGATGTAAAAAATGTGCAGTTGGTAGATGCTATAGATAACATAGTTTG +GGAAAAGAAATCATTAGTGACGGAAAATCGTCTTCACAAAGAATGCTTGTTGAGACTATCAACAGAGGAA +CGTCATATATTTTTGGATTACAAGAAATATGGATCCTCTATCCGACTAGAATTAGTCAATCTTATTCAAG +CAAAAACAAAAAACTTTACGATAGACTTTAAGCTAAAATATTTTCTAGGATCTGGCGCTCAATCTAAAAG +TTCTTTATTGCACGCTATTAATCATCCAAAGTCAAGGCCTAATACATCTCTGGAAATAGAATTTACACCT +AGAGACAATGAAACAGTTCCATATGATGAACTAATAAAGGAATTGACGACTCTCTCGCGTCATATATTTA +TGGCTTCTCCAGAGAATGTAATTCTTTCTCCACCTATTAACGCACCTATAAAGACTTTTATGTTGCCTAA +ACAAGATATAGTAGGTCTGGATCTGGAAAATCTATATGCCGTAACTAAGACTGACGGCATTCCTATAACT +ATCAGAGTTACATCAAAAGGGTTGTATTGTTATTTTACACATCTTGGTTATATTATTAGATATCCAGTTA +AGAGAACAATAGATTCCGAAGTAGTAGTCTTTGGTGAGGCAGTTAAGGATAAGAACTGGACCGTATATCT +CATTAAGCTAATAGAGCCCGTAAATGCAATCAGTGATAGACTAGAAGAAAGTAAGTATGTTGAATCTAAA +CTAGTGGATATTTGTGATCGGATAGTATTCAAGTCAAAGAAATACGAAGGTCCGTTTACTACAACTAGTG +AAGTCGTCGATATGTTATCTACATATTTACCAAAGCAACCAGAAGGTGTTATTCTGTTCTATTCAAAGGG +ACCTAAATCTAACATTGATTTTAAAATCAAAAAGGAGAATACTATAGACCAAACTGCAAATGTAGTATTT +AGGTACATGTCCAGTGAACCAATTATCTTTGGAGAGTCGTCTATCTTTATAGAGTATAAGAAATTTACCA +ACGATAAAGGCTTTCCTAAAGAATATGGTTCTGGTAAGATTGTGTTATATAACGGCGTTAATTATCTAAA +TAATATCTATTGTTTGGAATATATTAATACACATAATGAAGTGGGTATTAAGTCCGTTGTTGTACCTATT +AAGTTTATAGCAGAATTCTTAGTCAATGGAGAAATACTTAAACCTAGAATCGATAAAACCATGAAATATA +TTAACTCAGAAGACTATTATGGAAATCAACATAATATCATAGTCGAACATTTAAGAGATCAAAGCATCAA +AATAGGAGATGTCTTTAACGAGGATAAACTATCGGATGTTGGACATCAATACGCTGCCAACAACGATAAA +TTTAGATTAAATCCAGAAGTTAGTTATTTTACTAATAAACGAACTAGAGGGCCGTTGGGAATTTTATCAA +ACTACGTCAAGACTCTTCTTATTTCTATGTATTGTTCCAAAACATTTTTAGACGATTCCAACAAACGAAA +GGTATTAGCGATTGATTTTGGAAACGGTGCTGACCTGGAAAAATACTTTTATGGAGAGATTGCGTTATTG +GTAGCGACGGATCCGGATGCTGATGCTATAGCTAGAGGAAATGAAAGATACAACAAATTAAATTCTGGAA +TTAAAACCAAGTACTACAAATTTGACTACATTCAGGAAACTATTCGATCCGATACATTTGTCTCTAGTGT +CAGAGAAGTATTCTATTTTGGAAAGTTTAATATCATTGACTGGCAGTTCGCTATTCATTATTCTTTTCAT +CCAAGACATTATGCTACAGTCATGAATAACTTATCCGAACTAACTGCTTCTGGAGGCAAGGTATTAATTA +CTACCATGGATGGAGACAAATTATCAAAATTAACCGATAAAAAGACTTTTATAATTCATAAGAATCTACC +TAGTAGCGAAAACTATATGTCTGTAGAAAAAATAGCTGATGATAGAATAGTGGTATATAATCCATCAACA +ATGTCTACTCCAATGACTGAATACATTATCAAAAAGAACGATATAGTCAGAGTGTTTAACGAATACGGAT +TTGTTCTTGTAGATAATGTTGATTTCGCTACAATTATAGAACGAAGTAAAAAGTTTATTAATGGCGCATC +TACAATGGAAGATAGACCGTCTACAAGAAACTTTTTCGAACTAAATAGAGGAGCCATTAAATGTGAAGGT +TTAGATGTCGAAGACTTACTTAGTTACTATGTTGTTTATGTCTTTTCTAAGCGGTAAATAATAATATGGT +ATGGGTTCTGATATCCCCGTTCTAAATGCATTAAATAATTCCAATAGAGCGATTTTTGTTCCTATAGGAC +CTTCCAACTGTGGATACTCTGTATTATTAATAGATATATTAATACTTTTGTAGGGTAACAGAGGTTCTAC +GTCTTCTAAAAATAAAAGTTTTATAACATCTGGCCTGTTCATAAATAAAAACTTGGCGATTCTATATATA +CTCTTATTATCAAATCTAGCCATTGTCTTATAGATGTGAGCTACTGTAGGTGTACCATTTGATTTTCTTT +CTAATACTATATATTTCTCTCGAAGAAGTTCTTGCAGATCATCTGGGAATAAAATACTACTGTTGAGTAA +ATCAGTTATTTTTTTTATATCGATATTGATGGACATTTTTATAGTTAAGGATAATAAGTATCCCAAAGTA +GATAACGACGATAACGAAGTATTTATACTTTTAGGAAATCACAATGACTTTATCAGATCAAAATTAACAA +AATTAAAGGAGCATGTATTTTTTTCTGAATATATTGTGACTCCAGATACATATGGATCTTTATGCGTCGA +ATTAAATGGGTCTAGTTTTCAGCACGGTGGTAGATATATAGAGGTGGAGGAATTTATAGATGCTGGAAGA +CAAGTTAGATGGTGTTCTACATCCAATCATATATCTGAAGATATACACACTGATAAATTTGTCATTTATG +ATATTTATACGTTTGATTCGTTCAAGAATAAACGATTGGTATTTGTACAGGTGCCTCCATCATTAGGAGA +TGATAGCTATTTAACTAATCCGTTATTGTCTCCGTATTATCGTAATTCAGTAGCCAGACAAATGGTCAAT +GATATGATTTTTAATCAAGATTCATTTTTAAAATATTTATTAGAACATCTGATTAGAAGCCACTATAGAG +TTTCTAAACATATAACAATAGTTAGATACAAGGATACCGAAGAATTAAATCTAACAAGAATATGTTATAA +TAGAGATAAGTTTAAGGCGTTTGTATTCGCTTGGTTTAACGGCGTTTCGGAAAATGAAAAGGTACTAGAT +ACGTATAAAAAGGTATCTGATTTGATATAATGAATTCAGTGACTATATCACACGCACCATATACTATTAC +TTATCACGATGATTGGGAACCAGTAATGAGTCAATTGGTAGAGTTTTATAACGAAGTAGCCAGTTGGTTG +CTACGCGACGAGACGTCGCCTATTCCTGATAAGTTCTTTATACAATTGAAACAGCCGCTTAGAAATAAAC +GAGTATGTGTGTGTGGTATAGATCCGTATCCAAAAGATGGAACTGGTGTACCGTTCGAATCACCAAATTT +TACAAAAAAATCAATTAAGGAGATAGCTTCATCTATATCTAGATTAACCGGAGTAATTGATTATAAAGGT +TATAACCTTAATATAATAGACGGGGTTATACCCTGGAATTATTACTTAAGTTGTAAATTAGGAGAAACAA +AAAGTCACGCGATTTACTGGGATAAGATTTCCAAGTTACTGCTACAGCATATAACTAAACACGTTAGTGT +TCTTTATTGTTTGGGTAAAACAGATTTCTCGAATATACGGGCAAAGTTAGAATCCCCGGTAACTACCATA +GTGGGATATCATCCAGCGGCCAGAGACCACCAATTCGAGAAAGATCGATCATTTGAAATTATCAACGTTT +TACTGGAATTAGACAACAAGACACCTATAAATTGGGCTCAAGGGTTTATTTATTAATGCTTTAGTGAAAT +TTTAACTTGTGTTCTAAATGGATGCGGCTATTAGAGGTAATGATGTTATCTTTGTTCTTAAGACTATAGG +TGTCCCGTCAGCATGCAGACAAAATGAAGATCCAAGATTCGTAGAAGCATTTAAATGCGACGAGTTAGAA +AGATATATTGATAATAATCCAGAATGTACACTATTCGAAAGTCTTAGGGATGAGGAAGCATACTCTATAG +TCAGAATTTTCATGGATGTAGATTTAGACGCGTGTCTAGACGAAATAGATTATTTAACGGCTATTCAAGA +TTTTATTATCGAGGTGTCAAACTGTGTAGCTAGATTCGCATTTACAGAATGCGGTGCCATTCATGAAAAT +GTAATAAAATCCATGAGATCTAATTTTTCATTGACTAAGTCTACAAATAGAGATAAAACAAGTTTTCATA +TTATCTTTTTAGACACGTATACCACTATGGATACATTGATAGCTATGAAACGAACACTATTAGAATTAAG +TAGATCATCTGAAAATCCACTAACAAGATCGATAGACACTGCCGTATATAGGAGAAAAACAACTCTTCGG +GTTGTAGGTACTAGGAAAAATCCAAATTGCGACACTATTCATGTAATGCAACCACCTCACGATAATATAG +AAGATTACCTATTCACTTACGTGGATATGAACAACAATAGTTATTACTTTTCTCTACAACGACGATTGGA +GGATTTAGTTCCTGATAAGTTATGGGAACCAGGGTTTATTTCGTTCGAAGACGCTATAAAAAGAGTTTCA +AAAATATTCATTAATTCTATAATAAACTTTAATGATCTCGATGAAAATAATTTTACAACGGTACCACTGG +TCATAGATTATGTAACACCTTGTGCATTATGTAAAAAACGATCGCATAAACATCCGCATCAACTATCGTT +GGAAAATGGTGCTATTAGAATTTACAAAACTGGTAATCCACATAGTTGTAAAGTTAAAATTGTTCCGTTG +GATGGTAATAAACTGTTTAATATTGCACAAAGAATTTTAGACACTAACTCTGTTTTATTAACCGAACGAG +GAGACCATATAGTTTGGATTAATAATTCATGGAAATTTAACAGCGAAGAACCCTTGATAACAAAACTAAT +TCTATCAATAAGACATCAACTACCTAAGGAATATTCAAGCGAATTACTCTGTCCGAGGAAACGAAAGACT +GTAGAAGCTAACATACGAGACATGTTAGTAGATTCAGTAGAGACCGATACCTATCCGGATAAACTTCCGT +TTAAAAATGGTGTATTGGACCTGGTAGACGGAATGTTTTACTCTGGAGATGATGCTAAAAAATATACGTG +TACTGTATCGACCGGATTTAAATTTGACGATACAAAATTCGTCGAAGACAGTCCAGAAATGGAAGAGTTA +ATGAATATCATTAACGATATCCAACCATTAACGGATGAAAATAAGAAAAATAGAGAGCTGTATGAAAAAA +CATTATCTAGTTGTTTATGTGGTGCTACCAAAGGATGTTTAACATTCTTTTTTGGAGAAACCGCAACTGG +GAAGTCGACAACCAAACGTTTGTTAAAGTCTGCTATCGGTGACCTGTTTGTCGAGACGGGTCAAACAATT +TTAACAGATGTATTGGATAAAGGACCTAATCCATTTATCGCTAATATGCATTTAAAAAGATCTGTATTCT +GTAGCGAACTACCTGATTTTGCATGTAGTGGATCAAAGAAAATTAGATCTGATAATATTAAAAAGTTGAC +AGAACCTTGTGTCATTGGAAGACCGTGTTTCTCCAATAAAATTAATAATAGAAACCATGCGACAATCATT +ATCGATACTAATTACAAACCTGTCTTTGATAGGATAGATAACGCATTAATGAGAAGAATTGCCGTCGTGC +GATTCAGAACACACTTTTCTCAACCTTCTGGTAGAGAGGCTGCTGAAAATAATGACGCGTACGATAAAGT +CAAACTATTAGACGAGGGATTAGATGGTAAAATACAGAATAATAGATATAGATTCGCATTTCTATACTTG +TTGGTTAAATGGTACAAAAAATATCATATTCCTATTATGAAACTATATCCTACACCGGAAGAGATTCCGG +ACTTTGCATTCTATCTCAAAATAGGTACTCTGTTGGTATCTAGCTCTGTAAAGCATATTCCATTAATGAC +GGACCTCTCCAAAAAGGGATATATATTGTACGATAATGTGGTTACTCTTCCGTTGACTACTTTCCAACAG +AAAATATCCAAGTATTTTAATTCTAGACTATTTGGACACGATATAGAGAGCTTCATCAATAGACATAAGA +AATTTGCCAATGTTAGTGATGAATATCTGCAATATATATTCATAGAGGATATTTCATCTCCGTAAATATA +TGCCATATATTTATAGAATATATCACATATCTAAATGAATACCGGAATCATAGATTTATTTGATAATCAT +GTTGATAGTATACCAACTATATTACCTCATCAGTTAGCTACTTTAGATTATCTAGTTAGAACTATCATAG +ATGAGAACAGAAGCGTGTTATTGTTCCATATTATGGGATCGGGTAAAACAATAATCGCTTTGTTGTTCGC +CTTGGTAGCTTCCAGATTTAAAAAGGTTTACATTTTAGTACCGAACATCAACATCTTAAAAATTTTCAAT +TATAATATGGGTGTAGCTATGAACTTGTTTAATGACGAATTCATAGCTGAGAATATCTTTATTCATTCCA +CAACAAGTTTTTATTCTCTTAATTATAACGATAACGTCATTAATTATAACGGATTAAGTCGCTACAATAA +CTCTATTTTTATCGTTGATGAGGCACATAATATTTTTGGGAATAATACTGGAGAACTTATGACCGTGATA +AAAAATAAAAACAAGATTCCTTTTCTACTATTGTCTGGATCTCCCATTACTAACACACCTAATACGCTGG +GTCATATTATAGATTTAATGTCCGAAGAGACGATAGATTTTGGTGAGATTATTAGTCGTGGTAAGAAAGT +AATTCAGACACTTCTTAACGAACGCGGAGTGAATGTACTCAAGGATTTGCTTAAAGGAAGAATATCATAT +TACGAAATGCCGGACAAAGATCTACCAACAATAAGATATCACGGACGTAAATTTCTAGATACTCGAGTAG +TATATTGTCACATGTCTAAACTTCAAGAGAAAGATTATATGATTACTAGACGGCAGCTATGTTATCATGA +AATGTTTGATAAAAATATGTATAACGTGTCAATGGCAGTATTGGGACAACTTAATCTGATGAATAATTTA +GATACGTTATTTCAGGAACAGGATAAGGAATTGTACCCAAATCTGAAAATAAATAATGGAGTGTTATACG +GTGAAGAATTGGTAACGTTAAACATTAGTTCCAAATTTAAGTACTTTATCAATCGGATACAGACACTCAA +GGGAAAACACTTTATATACTTCTCTAATTCTACATATGGTGGATTGGTAATTAAATATATCATGCTCAGT +AATGGATATTCTGAATATAATGGTTCTCAGGGAACTAATCCACATATGATAAACGGCAAACCAAAAACAT +TTGCTATCGTTACTAGTAAAATGAAATCGTCTTTAGAGGATCTATTAGATGTGTATAATTCTCCTGAAAA +CGATGATGGCAATCAATTGATGTTTTTGTTTTCGTCAAACATTATGTCTGAATCCTATACTCTGAAAGAG +GTAAGGCATATTTGGTTTATGACTATCCCGGATACTTTTTCTCAATACAACCAAATTCTTGGACGATCTA +TTAGAAAATTCTCTTACGTCGATATTTCTGAACCCGTTAATGTATATCTTTTAGCAGCCGTATATTCAGA +TTTCAATGACGAAGTGACGTCATTAAACGATTATACACAGGATGAATTGATTAATGTTTTACCCTTTGAC +ATCAAAAAGCTGTTGTATCTAAAATTTAAGACTAAAGAAACGAATAGAATATACTCTATTCTTCAAGAGA +TGTCTGAAACGTATTCTCTTCCACCACATCCATCAATTGTAAAAGTTTTATTGGGAGAATTGGTCAGACA +ATTTTTTTATAATAATTCTCGTATTAAGTATAACGACTCCAAGTTACTTAAAATGGTTACATCAGTTATA +AAAAATAAAGAAGACGCTAGGAATTACATAGATGATATTGTAAACGGTCACTTCTTTGTATCGAATAAAG +TATTTGATAAATCTCTTTTATACAAATACGAAAACGATATTATTACAGTACCGTTTAGACTTTCCTACGA +ACCATTTGTTTGGGGAGTTAACTTTCGTAAAGAATATAATGTGGTATCTTCTCCATAAAACTGATGAGAT +ATATAAAGAAATAAATGTCGAGCTTTGTTACCAATGGATATCTTCCAGTTACATTGGAACCACATGAGTT +GACGTTAGACATAAAAACTAATATTAGGAATGCCGTATATAAGGCGTATCTCCATAGAGAAATTAGTGGT +AAAATGGCCAAGAAAATAGAAATTCGTGAAGACGTGGAATTACCTCTCGGTGAAATAGTTAATAATTCTG +TAGTTATAAACGTTCCGTGTGTAATAACCTACGCATATTATCACGTTGGGGATATAGTCAGAGGAACATT +AAACATCGAAGATGAATCAAATGTAACTATTCAATGTGGAGATTTAATCTGTAAACTAAGTAGAGATTCG +GGTACTGTATCATTTAGCGATTCAAAGTACTGCTTTTTTCGAAATGGTAATGCGTATGATAACGGCATCG +AAGTCTCCGCCGTTCTAATGGAGGCTCAACAAGGTACCGAATCTAGTTTTGTTTTTCTCGCGAATATCGT +TGACTCATAAGAAAGAGAATAGCGGTGAGTATAAATACGAATACTATGGCAATAATTGCGAATGTTTTAT +TCCCTTCGATATATTTTTGATAATATGAAAAACATGCCTCTCTCAAATCAGACAACCATTTCATAAAATA +GTTCTCTCGCACTGGTGAGGTGGTTGCAGCTCGTATAATCTCCCCAGAATAATATACTTGCGTGTCGTCG +TTCAATTTATACGGATTTCTATAATTCTCTGTTATATAATGAGGTTTACCCTCATGATTAGACGACGACA +ATAGTGTTCTGAATTTAGATAGTTGATCAGAATGAATGTTTATTGGTGTTGGAAAAATTATCCATGCTGC +GTCTGCAGAGTGGTTGATAGTTGTTCCTAGATATGTAAAATAATCCAACGTACTAGGTAGCAAATTGTCT +AGATAAAATACTGAATCAAATGGCGCAGACATATTAGCGGATCTAATGGAATCCAATTGATTGACTATCT +TTTGAAAATATACATTTTTATGATCTGATACTTGTAAGAATATAGCAATAATGATAATTCCATCATCGTG +TTTTTTTGCCTCTTCATAAGAACTATATTTTTTCTTATTCCAATGAACCAGATTAATCTCTCCAGAGTAT +TTGTATACATCTATCAAGTGATTGGATCCATAATCGTCTTCCTTTCCCCAATATATATGTATTGTTGATA +ACACATATTCATTGGGGAGAAACCCTCCACTTATATATCCTCCTTTAAAATTAATCCTTACTAGTTTTCC +AGTATTCTGGATAGTGGTTGGTTTCGACTCATTATAATGTATGTCTAACGTCTTCAATCGCGCGTCAGAA +ATTGCTTTTTTAGTTTCTATATTAATAGGAGATAGTTGTTGAGGCATAGTAAAAATGAAATGATAACTGT +CTAGAAATAGCTCTTAGTATGGGATTTACAATGGATGAGGAAGTGATATTTGAAACTCCTAGAGAATTAA +TATCTATTAAACGAATAAAAGATATTCCAAGATCAAAAGACACGCACGTGTTTGCTGCGTGTATAACAAG +TGACGGATATCCGTTAATAGGAGCTAGAAGAACTTCATTCGCATTCCAGGCGATATTATCTCAACAAAAT +TCAGATTCTATCTTTAGAGTATCCACTAAACTATTACGGTTTATGTACTACAATGAACTAAGAGAAATCT +TTAGACGGTTGAGAAAAGGTTCTATCAACAATATCGATCCTCACTTCGAAGAGTTAATATTATTGGGTGG +TAAACTAGATAAAAAGGAATCTATTAAAGATTGTTTAAGAAGAGAATTAAAAGAGGAAAGTGATGAACAT +ATAACAGTAAAAGAATTCGGAAATGTAATTCTAAAACTTACAACGAGTGATAAATTATTTAATAAAGTAT +ATATAGGTTATTGCATGGCATGTTTTATTAATCAATCGTTGGAGGATTTATCACATACTAGTATTTACAA +TGTAGAAATTAGAAAGATTAAATCGTTAAATGATTGTATTAACGACGATAAATACGAATATCTGTCTTAT +ATTTATAATATACTAATTAATAGTAAATGAGCTTTTACAGATCTAGTATAATTAGTCAGATTATTAAGTA +TAATAGACGACTAGCTAAGTCTATTATTTGCGAGGATGACTCTCAAATTATTACACTCACGGCATTCGTT +AACCAATGCCTATGGTGTCATAAACGAGTATCCGTGTCCGCTATTTTATTAACTACTGATAACAAAATAT +TAGTATGTAACAGACGAGATAGTTTTCTCTATTCTGAAATAATTAGAACTAGAAACATGTATAGAAAGAA +ACGATTATTTCTGAATTATTCCAATTATTTGAACAAACAGGAAAGAAGTATACTATCGTCATTTTTTTCT +CTAGATCCAGCTACTGCTGATAATGATAGAATAAACGCTATTTATCCGGGTGGTATACCCAAAAGGGGTG +AGAACGTTCCAGAGTGTTTATCCAGGGAAATCAAAGAAGAAGTTAATATAGACAATTCTTTTGTATTCAT +AGACACTCGTTTTTTTATTCATGGTATCATAGAAGATACCATTATTAACAAATTTTTTGAGGTAATTTTC +TTTGTTGGACGAATATCTCTAACGAGTGATCAAATTATTGATACCTTTAAAAGTAATCATGAAATAAAGG +ATCTAATATTTTTAGATCCAAATTCAGGTAATGGACTCCAATACGAAATTGCAAAATATGCTCTAGATAC +TGCAAAACTTAAATGTTACGGTCATAGAGGATGTTATTATGAATCATTAAAAAAATTAACTGAGGATGAT +TGATTAGAAAATATAAATTAATTTACCATCGTGTATTTTTATAACGGGATTGTCTGGCATATCATGTAGA +TAGTTACCGTCTACATCGTATACTCTACCATCTACGCCTTTAAATCCTCTATTTATTGATATTAATCTAT +TAGAATTGGAATACCAAATATTAGTACCCTCAATTAGTTTATTGGTAATATTTTTTTTAGACGATAGATC +GATGGCTCTTGAAACCAAGGTTTTCCAACCGGACTCATTGTCTATCGGTGAGAAGTCTTTTTCATTAGCA +TGAATCCATTCTAATGATGTATGTTTAAACACTCTAAACAATTGTACAAATTCTTTTGATTTGTTTTGAA +TGATTTCAAATAGGTCTTCGTCTACAGTAGGCATACCATTAGATAATCTAGCCATTATAAAGTGCACGTT +TACATATCTACGTTCTGGAGGAGTAAGAACGTGACTATTGAGACGAATGGCTCTTCCTACTATCTGACGA +AGAGACGCCTCGTTCCATGTCATATCTAAAATGAAGATATCATTGATTGAGAAGAAACTAATACCCTCGC +CTCCGCTAGAAGAGAATACGCATGTTTTAATGCATTCTCCGTTAGTGTTTGATTCTTGGTTAAACTCAGC +CACCGCCTTGATTCTAGTATCTTTTGTTCTAGATGAGAACTCTATATTAGAGATACCAAAGACTTTGAAA +TATAGTAATAAGATTTCTATTCCTGACTGATTAACAAATGGTTCAAAGACTAGACATTTACCATGGGATG +CTAATATTCCCAAACATACATCTATAAATTTGACGCTTTTCTCTTTTAATTCAGTAAATAGAGAGATATC +AGCCGCAATAGCATCCCCTCCCAATAGTTCTCCCTTTTTAAAGGTGTCTAATGCGGATTTAGAAAATTCT +CTATCTCTTAATGAATTTTTAAAATCATTATATAGGGTTGCTATCTCTTGTGCGTATTCTCCCGGATCAC +GATTTTGTCTTTCAGGAAAGCTATCGAATGTAAACGTAGTAGCCATACGTCTCAGAATTCTAAATGATGA +TATACCAGTTTTTATTTCTGCGAGTTTAGCCTTTTGATAAATCTCTTCTTGCTTTTTTGACATATTAACG +TATCGCATTAATACTGTTTTCTTAGCGAATGATGCAGACCCTTCCACATCATCAAAAATAGAAAACTCGT +TATTAACTATGTACGAACATAGGCCTCCTAGTTTGGAGACTAATTCTTTTTCATCGACTAGACGTTTATT +CTCAAATAGCGATTGGTGTTGTAAGGATCCTGGTCGCAGTAAGTTAACCAACATGGTGAATTCTTGCACA +CTATTAACGATAGGTGTAGCCGATAAACAAATCATCTTATGGTTTTTTAACGCAATGGTCTTAGATAAAA +AATTATATACTGACCGAGTAGGACGGATCTTACCATCTTCTTTGATTAATGATTTAGAAATGAAGTTATG +ACATTCATCAATGATGACGCATATTCTACTCTTGGAATTAATAGTTTTGATATTAGTAAAAAATTTATTT +CTAAAATTTTGATCATCGTAATTAATAAAAATACAATCCTTCGTTATCTCTGGAGCGTATCTGAGTATAG +TGTTTATCCAAGGATCTTCTATCAAAGCCTTTTTTACCAATAAGATAATTGCCCAATTCGTATAAATATC +CTTAAGATGTTTGAGAATATATACAGTAGTCATTGTTTTACCGACACCTGTTTCATGGAACAATAAAAGA +GAATGCATACTGTCTAATCCTAAGAAAACTCTTGCTACAAAATGTTGATAATCCTTGAGGCGTACTACGT +CTGACCCCATCATTTCAACGGGCATATTAGTAGTTCTGCGTAAGGCATAATCGATATAGGCCGCGTGTGA +TTTACTCATTTATGAGTGATAAGTAATAACTATGTTTTAAAAATCACAGCAGTAGTTTAACTAGCCTTCT +CTGATGTTTGTTTTCGATACTTTTTGAATCAGAAGTCATACTAGAATAAAGCAGCGAGTGAACGTAATAG +AGAGCTTCGTATACTCTATTCGAAAACTCTAAGAACTTATTAATGAATTCCGTATCCACTGGATCGTTTA +AAATACTAAATTGAACAGTGTTCACATCCTTCCAAGACGAAGACTTAGTGACGGACTTAACATGAGACAT +AAATAAATCCAAATTTTTTTTATAAACATCACTAGCCACCATAATGGCGCTATCTTTCAACCAACTATCG +CTTACGCATTTTAACAGTCTAACATTTTTAAAGAGACTACAATATATTCTCATAGTATCGATTACACCTC +TACCGAATAGAGTGGGAAGTTTAATAATACAATATTTTTCGTTTACAAAATCAAATAATGGTCGAAACAC +GTCGAAGGTTAACATCTTATAATCGCTAATGTATAGATTGTTTTCAGTGAGATGATTATTAGATTTAATA +GCATCTCGTTCACGTTTGAACAGTTTATTGCGTGCGCTGAGGTCGGCAACTACGGCATCCGCTCTAGTAC +TCCTCCCATAATACTTTACGCTATTAATCTTTAAAATTTCATAGACTTTATCTAGATCGCTTTCTGGTAA +CATGATATCATGTGTAAAAAGTTTTAACATGTCGGTCGGCATTCTATTTAGATCATTAACTCTAGAAATC +TGAAGAAAGTAATTAGCTCCATATTCCAGACTAGGTAATGGGCTTTTACCTAAAGACAAGTTAAGTTCTG +GCAATGTTTCATAAAATGGAAGAAGGACATGTGTCCCCTCCCGGATATTTTTTACAATTTCATCCATTTA +CAACTCTATAGTTTGTTTTCATTATTATTAGTTATTATCTCCCATAATCTTGGTAATACTTACACCTTGA +TCATAAGATACCTTATACAGGTCATTACATACAACTACCAATTGTTTTTGTACATAATAGATTGGATGAT +TGATATCCATGGTGGAATAAACTACTCGAACAGATAGTTTATCTTTCCCCCTAGATACATTGGCCGTAAT +AGTTGTCGGCCTAAAGAATATCTTTGGTGTAAAGTTAAAAGTTAGGGTTCTTGTTCCATTATTGCTTTTT +GTCAGTAGTTCGTTATAAATTCTCGAGATGGGCCCGTTCTCTGAATATAGAACATCATTTCCAAATCTAA +CTTCTAGTCTAGAAATAATATCGGTCTTATTTTTAAAATCTATTCCCTTGATGAATGGATCGTTAATAAA +CAAATCCTTGGCCTTTGATTCGGCTGATCTATTATCTCCGTTATAGACGTTACGTTGACTAGTCCAAAGA +CTTACAGGAATAGATGTATCGATGATGTTGATAGTATGTGATATGTGAGCAAAGACTGTTCTCTTGGTGG +CGTCGCTATATGTTCCAGTAATGGCGGAAAACTTTTTAGAAATGTTATATATAAAAGAATTTTTTCGGGT +TCCAAACATTAACAGATTAGTATGAAGATAAACACTCATATTATCAGGAACATTATCAATTTTTACATAA +ACATCGGCATCTTGAATAGAAACAACACCATCTTCTGGAACCTCTACGATCTCGGCAGATTCCGGATAAC +CAGTCGGTGGACCATCACTAACAATAACTAGATCATCCAACAATCTACTCACATATGCGTCTATATAATC +TTTTTCATCTTGTGAGTACCCTGGATACGAAATAAATTTGTTATCAGTATTTCCATAATAAGGTTTAGTA +TAAACAGAGAGAGATGTTGCTGCATGAACTTCGGTTACTGTCGCCGTTGGTTGGTTTATTTGACCTATTA +CTCTCCTAGGTTTCTCTATAAATGATGGTTTAATTTGTACATTCTTAACCATATATCCAATAAAGCTCAA +TTCAGGAACATAAACAAATTCTTTGTTGAACGTTTCAAAGTCGAACGAAGAGTCACGAATAACGATATCG +GATACTGGATTGAAGGTCACCGTTACGGTAATTTTTGAATCGGATAGTTTAAGACTACTGAATGTATCTT +CCACATCAAACGGAGTTTTAATATAAACGTATACTGTAGATGGTTCTTTAATAGTGTCATTAGGAGTTAG +GCCAATAGAAATATCATTAAGTTCACTAGAATATCCAGAATGTTTCAAAGCAATTGTATTATTGATACAA +TTATTATATAATTCTTCGCCCTCAATTTCCCAAATAACACCGTTACACGAAGAGACAGATACATGATTAA +TACATTTATATCCAACATATGGCACGTAACCGAATCTTCCCATACCTTTAACTTCTGGAAGTTCCAAACT +CAGAACCAAATGATTAAGCGCAGTAATATACTGATCCCTAATTTCGAAGCTAGCGATAGCCTGATTGTCT +GGCCCATCGTTTGTCATAACTCCGGATAGAGAAATATATTGCGGCATATATAAAGTTGGAATTTGACTAT +CAACTGCGAAGACATTAGACCGTTTAATAAAGTCATCCCCACCGATCAAAGAATTAATGATAGTATTATT +CATTTTCTATTTAAAATGGAAAAAGCTTACAATAAACTCCGTAGAGAAATATCTATAATTTGTGAGTTTT +CCTTAAAGTAACAGCTTCCGTAAACACCGTCTTTATCTCTTAGTAAGTTTATTGTATTTATGACCTTTTC +CTTATCTTCATAGAATACTAAAGGCAATAAAGAAATTTTTGGTTCTTCTCTAAGAGCTACGTGAGACTTA +ACCATAGACGCCAACGAATCCCTACATATTTTAGAACAGAAATACCCAACTTCACCACCCTTGAATGTCT +CAATACTAATAGGTCTAAAAACCAAATCTTGATTACAAAACCAACACTTATCAATTACACTATTTGTCTT +AATAGACATATCTGCCATAGATTTATAATACTTTGGTAGTATACAAGCGAGTGCTTCTTCTTTAGCGGGC +TTAAAGACTGCTTTAGGTGCTGAAATAACCACATCTGGAAGACTTACTCGCTTAGCCATTTAATTACGGA +ACTATTTTTTTATACTTCTAATGAACAAGTAGAAAACCTCTCATCTACAAAAACATACTCGTGTCCATAA +TCCTCTACCATAGTAACACGTTTTTTAGATCTCATATGTGCTAAAAAGTTTTCCCATACTAATTGGTTAC +TATTATTTTTCGTATAATTTTTAACAGTTTGAGGTTTTAGATTTTTAGTTACAGAAGTGATATCGAATAT +TTTATCCAAAAAGAATGAGTAATTAATTGTCTTAGAAGGAGTGTTTTCTTGGCAAAAGAATACCAAGTGC +TTAAATATTTCTACTACTTCATTAATCTTTTCTGTACTCAGATTCAGTTTCTCATCTTTTACTTGATTGA +TTATTTCAAAGACTAACTTATAATCCTTTTTATTTATTCTCTCGTTAGCCTTAAGAAAACTAGATACAAA +ATTTGCATCTACATCATCCGTGGATATTTGATTTTTTTCCATGATATCCAATAGTTCCGAGATAATTTCT +CCAGAACATTGATGAGACAATAATCTCCGCAATACATTTCTCAAATGAATAAGTTTATTAGACACGTGGA +AGTTTGACTTTTTTTGTACCTTTGTACATTTTTGAAATACAGACTCGCAAAAAATACAATATTCATATCC +TTGTTCAGATACTATACCGTTATGTCTACAACAGCTACATAATCGTAGATTCATGTTAACACTCTACGTA +TCTCGTCGTCCAATATTTTATATAAAAACATTTTATTTCTAGACGTTGTCAGAAAATCCTGTAATATTTT +TAGTTTTTTTGGTTGTGAATAAAGTATCGCCCTAATAATATTGGTACCGTCTTCCGACAATATAGTAGTT +AAATTATCCGAGCATGTAGAAGAACACCGCTTAGGCGGATTCAGTACAATGTTATATTTTTCGTACCAAC +TCATTTAAATATCATAATCTAAAATAGTTCTGTAATATGTCTAGCGCTAATATATTGATCATAATCCTGT +GCATAAATTAAGATACAACAATGTCTTGAAATCATCGACATGGCTTCTTCCATAGTTAGAAGATCATCGT +CAAAGTTAGCAACGTGATTCATCAACATTTGCTGTTTTGAGGCAGCAAATACTGAACCATCACCATTCAA +CCATTCATAAAAACCATCGTCTGAATCCATTGATAATTTCTTGTACTGGTTTTTGAGAGCTCGCATCAAT +CTAGCATTTCTAGCTCCCGGATTGAAAACAGAAAGAGGATCGTACATCCAAGGTCCATTTTCTGTAAATA +GAATCGTATAATGTCCCTTCAAGAAGATATCAGACGATCCACAATCAAAGAATTGGTCTCCGAGTTTGTA +ACAGACTGCGGACTTTAACCTATACATGATACCGTTTAGCATGATTTCTGGTGATACGTCAATCGGAGTA +TCATCTATTAGAGATCTAAAGCCGGTGTAACATTCTCCGCCAAACATATTCTTATTCTGACGTCGTTCTA +CATAAAACATCATTGCTCCATTAACGATAACAGGTGAATGAACAGCACTACCCATCACATTAGTTCCCAA +TGGATCAATGTGTGTAACTCCAGAACATCTTCCATAGCCTATGTTAGGAGGAGCGAACACCACTCTTCCA +CTATTGCCATCGAATGCCATAGAATAAATATCCTTGGAATTGATAGAAATCGGACTGTCGGATGTTGTTA +TCATCTTCATAGGATTAACAACGATGTATGGTGCAGCCTGAAGTTTCATATCGTAACTGATGCCGTTCAT +AGGTCTAGCCACAGAAACCAACGTAGGTCTAAATCCAACTATAGACAAAATAGAAGCTAATATCTGTTCC +TCATCTGTCATAACTTGAGAGCATCCAGTATGAATAATCTTCATTAGATGGGGATCTACCGCATCATCAT +CGTTACAATAAAAAATTCCCATTCTAATGTTCATAATTGCTTTTCTAATCATGGTATGAATGTTTGCTCT +CTGAATCTCTGTGGAAATTAGATCTGATACACCTGTAATCACTATCGGATTATCCTCCGTAAGACGATTA +ACCAACAACATATAATTATAAGACTTTACTCTTCTAAATTCATAAAGTTGCTGGATTAGACTATATGTGT +CTCCATGTACATACGCGTTCTCGAGCGCAGGAAGTTTAATACCGAATAGTGCCATCAGAATAGGATGAAT +GTAGTAATTAGTTTCTGGTTTTCTATAAATAAAAGACAAATCTTGTGAACTAGACATATCGGTAAAATGC +ATGGATTGGAATCGTGTAGTCGACAGAAGAATATGATGATTAGATGGAGAGTATATTTTATCTAACTCTT +TGAGTTGGTCACCGATTCTAGGACTAGCTCGAGAATGAATAAGTACTAAGGGATGAGTACATTTCACAGA +AACACTGGCGTTGTTCAACGTACTCTTTACATGGGAAAGGAGTTGAAATAGCTCGTTTCTATTTGTCCTG +ACAATATTTAGTTTATTCATAATATTAAGCATATCCTGAATAGTAAAGTTAGATGTGTCATACTTGTTAG +TAGTTAGATATTTAGCAATTGCATTCCCATCATTTCTCAATCTCGTACTCCAATCATGTGTGGATGCTAC +TTCGTCGATGGAAACCATACAATCCTTTTTGATAGGCTGTTGAGATTGATCATTTCCTGTACGTTTAGGT +TTGGTACGTTGATTTCTAGCCCCTGCTGATATAAAGTCATCGTCTACAATTTGGGATAATGAATTACATA +CACTACAAGACAAAGATTTATCAGAAGTGTGAATATGATCTTCATCTACCAAAGAAAGAGTTTGATTAGT +ATAACTAGATTTTAGTCCCGCGTTAGATGTTAAAAAAACATCGCTATTGACCACGGCTTCCATTATTTAT +ATTCGTAGTTTTTACTCGAAAGCGTGATTTTAATATCCAATCTTATTACTTTTGGAATCGTTCAAAACCT +TTGACTAGTTGTAGAATTTGATCTATTGCCCTACGCGTATACTCCCTTGCATCATATACGTTCGTCACCA +GATCGTTTGTTTCGGCCTGAAGTTGACGCATATCTTTTTCAACACTCGACATGAGATCCTTAAGGGTCAT +ATCGTCTAGATTTTGTTGAGATGCTGCTCCTGGATTTGGATTTTGTTGTGCTGTTGTACATACTGTACCA +CCAGTAGGTGTAGGAGTACATACAGTGGCCACAATAGGAGGTTGAAGAGGTGTAACCGTTGGAGTAGTAC +AAGAAATACTTCCATCCGATTGTTGTGTACATGTGGTTGTTGGTAACGTCTGAGAAGGTTGGGTAGATGG +CGGTGTCGTCATCTTTTGATCTTTATTAAATTTAGAGATAATATCCTGAACAGTATTGCTCGGCGTCAAC +GCTGGAAGGAGTGTACTCGCCGGCGCATCAGTATCTGTAGACAACCAATCAAAAAGATTAGACATATCAG +ATGATGTATTAGTTTGTTGACGTGGTTTTAGTACAGGAGCAGTACTACTAGGTAGAAGAATAGGAGCCGG +TGTAGGTGTCGGAACCGGCTGTGGAGTTATATGAATAGTTGGTTGTAGCGGTTGGGTAGGCTGTCTGCTG +GCGGTCATCATATTATCTCTAGCTAGTTGTTCTCGCAACTGTCTTTGATAATACGACTCTTGAGACTTTA +GTCCTATTTCAATCGCTTCATCCTTTTTCGTATCCGGATCCTTTTCTTCAGAATAATAGATTGACGACTT +TGGTGTAGAGGATTCTGCCAGCCCCTGTGAGAACTTGTTAAAGAAGTCCATTTAAGGCTTTAAAATTGAA +TTGCGATTATAAGATTAAATGGCAGACACGGACGATATTATCGACTATGAATCCGATGATCTCACCGAAT +ACGAGGATGATGAAGAAGATGGAGAGTCACTAGAAACTAGTGATATAGATCCCAAATCTTCTTATAAGAT +TGTAGAATCAACATCCACTCATATAGAAGATGCGCATTCCAATCTTAAACATATAGGGAATCATATATCT +GCTCTTAAACGACGCTATACTAGACGTATAAGTCTATTTGAAATAGCGGGTATAATAGCAGAAAGCTATA +ACTTGCTTCAACGAGGAAGATTACCTCTAGTTTCAGAATTTTCTGACGAAACGATGAAGCAAAATATGCT +ACATGTAATTATACAAGAGATAGAGGAGGGTTCTTGTCCTATAGTCATCGAAAAGAACGGAGAATTGTTG +TCGGTAAACGATTTTGATAAAGATGGTCTAAAATTCCATCTAGACTATATTATCAAAATTTGGAAACTTC +AAAAACGATATTAGAATTTATACGAATATCGTTCTCTAAATGTCACAATCAAGTCTCTCATATTCAGCAG +TTTATTGTCGTACTTTATATCGTGTTCATTAACGATATTTTGCAAAATAGTAATGATTCTATCTTCCTTC +GATAGATATTCTTCAGAGATTATTGTCTTATATTCTTTCTTGTTATCCGATATGAATTTGATAAGACTTT +GAACATTATTAATACCCGTCTGTTTAATTTTTTCTATAGATATTTTAGTTTTGGTAGATTCTATGGTGTC +TGTTAATAGGCATCCAACATCGACATTCGACGTCAATTGTCTATAAATCAGAGTATAAATTTTAGAAATA +ACATTAGCAAATTGTTGTGCGTTGATGTCGTTATTCTGAAACAGTATGATTTTAGGTAGCATTTTCTTAA +CAAAGAGAACGTATTTATTGTTACTCAGTTGAACAGATGATATATCCAGATTACTAACGCATCTGATTCC +ATATACCAAACTTTCAGAAGAAATGGTGTACAATTGTTTGTATTCATTCAATGTCTCCTTTTCAGAAATT +AGTTTAGAGTCGAATACTGCAATAATTTTCAAGAGATAGTTTTCATCAGATAAGATTTTATTTAGTGTAG +ATATGATAAAACTATTGTTTTGTTGGAGAACTTGATACGCCGCATTCTCTGTAGTCGACGCTCTCAAATG +GGAAACAATCTCTATTATTTTTTTGGAATCGGATACTATATCTTCGGTATCTTGACGCAGTCTAGTATAC +ATAGAGTTAAGAGAAATTAGAGTTTGTACATTAAGCAACATGTCTCTAAATGTGGCTACAAACTTTTCTT +TTTCCACATCATCTAGTTTATTATATACCGATTTCACAACGGCACCAGATTTAAGGAACCAGAATGAAAA +ACTCTGATAACTACAATATTTCATCATAGTTACGATTTTATCATCTTCTATAGTTGGTGTGATAACACAT +ACCTTTTTCTCCAAGACTGGAACCAACGTCATAAAAATGTTTAAATCAAAATCCATATCAACATCTGATG +CGCTAAGACCAGTCTCGCGTTCAAGATTATCTTTACTAATGGTGACGAACTCATCGTATAGAACTCTAAG +TTTGTCCATTATTTATTTACAGATTTAGTTGTTTAATTTATTTGTGCTCTTCCAGAGTTGGGATAGTATT +TTTCTAACGTCGGTATTATATTATTAGGATCTACGTTCATATGTATCATAATATTAATCATCCACGTTTT +GATAAATCTATCTTTAGCTTCTGAAATAACGTATTTAAACAAAGGAGAAAAATATTTAGTTACGGCATCA +GACGCGATAACATTTTTTGTAAATGTAACGTATTTAGACGACAGATCTTCGTTAAAAAGTTTTCCATCTA +TGTAGAATCCATCGGTTGTTAACACCATTCCCGCGTCAGAGTGAATAGGAGTTTGAATAGTTTGTTTTGG +AAATAGATCCTTCAATAACTTATAGTTGGGTGGGAAAAAATCGATTTTATCACTAGACTCTTTCTTTTTT +ACTATCATTACCTCATGAACTATTTCTTGAATGAGTATATGTATTTTCTTTCCTATATCGGTCGCGTTCA +TTGGAAAATATATCATGTCGTTAACTATAAGAATATTTTTATCCTCGTTTACAAACTGAATAATATCAGA +TATAGTTCGTAAACGAACTATATCATCACCAGCACAACATCTAACTATATGATATCCACTAGTTTCCTTT +AGCCGTTTATTATCTTGTTCCATATTAGCAGTCATTCCATCATTTAAGAAGGCGTCAAAGATAATAGGGA +GAAATGACATTTTGGATTCTGTTACGACTTTACCAAAATTAAGGATATACGGACTTACTATCTTTTTCTC +AACGTCGATTTGATGAACACACGATGAAAATGTACTTCGATGAGATTGATCATGTAGAAAACAACAAGGG +ATACAATATTTCCGCATATCATGAAATATATTAAGAAATCCCACTTTATTATATTTCCCCAAAGGATCAA +TGCATGTAAACATTATACCGTTATCATTAATAAAGACTTCTTTCTCATCGGATCTGTAAAAGTTGTTACT +GATTTTTTTCATTCCAGGATCTAGATAATTAATAATAATGGGTTTTCTATTCTTATTCTTTGTATTTTGA +CATATCCTAGACCAGTAAACAGTTTCCACTTTGGTAAAATCAGAAGACTTTTGAACGCTATTAAACATGG +CATTAATGGCAATAACTAAAAATGTAAAATATTTTTCTATGTTAGGAATATGGTTTTTCACTTTAATAGA +TATATGGTTTTTTGCCAAAATGATAGATATTTTTTTATCCGATGATAGTAAAATATTATTAGTCGCCGTC +TCTATAAAAATGAAGCTAGTCTCGATATCCAATTTTATTCTAGAATTGATAGGAGTCGCCAAATGTACCT +TATACGTTATATCTCCCTTGATGCGTTCCATTTGTGTATCTATATCGGACACAAGATCTGTAAATAGTTT +TACGTTATTAATCATCACGGTATCGCCATCGCTAGATAATGCTAATGTACTATCCAAGTCCCAAATGGAG +AGATTTAACTGTTCATCGTTTAGAATAAAATGATTACCTGTCATATTAATAAAGTGTTCATCGTATCTAG +ATAACAACGACTTATAATTAATGTCCAAGTCTTGAACTCGCTGAATGATCTTTTTTAACCCAGTTAGTTT +TAGATTGGTACGAAATATATTGTTAAACTTTGATTCTACAGTAATGTCCAAATCTAGTTGTGGAAATACT +TCCATCAACATTGTTTCAAACTTGATAATATTATTATCTACATCTTCGTACGATCCAAATTCCGGAATAG +ATGTATCGCACGCTCTGGCCACCCAGATAACCAAAAAGTCACACGCTCCAGAATATACATTGTATAAAAA +GCTATCGTTTTTTAGTAGTGTTTTTTTCTGAGTATATACGAAAGGATTAAAAATAGTATTATCAACGTAA +CTATATTCCAAATTATTCTTATGAGAATAGATAATAATATCGTCCTTAATATCTAACAAATTTCCTAAAT +ATCCCTTTAATTGAGTCATTCGAAGCGTTAATAAAATATGTCTCTTAACTATTTCCGGCCGTTGTATATT +TAAATGACTTCGTAAGAAATAATATATAGGCGACTTCTCATCTATGTAATCATATGGAGTGAGATATAGG +GCTCGTTCTACCTCCTGCCCCTTACCCACCTGTAATACCAATTGCGGACTCACTATATATCGCATATTTA +TATCGTGGGGTAAAGTGAAAATCTACTACCGATGATGTAAGTCTTACAATGTTCGAACCAGTACCAGATC +TTAATTTGGAGGCCTCCGTAGAACTAGGGGAGGTAAATATAGATCAAACAACACCTATGATAAAGGAGAA +TAGCGGTTTTATATCCCGTAGTAGACGTCTATTCGCCCATAGATCTAAGGATGATGAGAGAAAACTAGCA +CTACGATTCTTTTTACAAAGACTTTATTTTTTAGATCATAGAGAGATTCATTATTTGTTCAGATGCGTCG +ACGCTGTAAAAGACGTCACTATTACCAAAAAAAATAACATTATCGTGGCGCCTTATATAGCACTTTTAAC +TATCGCATCAAAAGGATGCAAACTTACAGAAACAATGATTGAAGCATTCTTTCCAGAACTATATAATGAA +CATAGTAAGAAATTCAAATTCAACTCTCAAGTATCCATCATCCAAGAAAAACTCGGATACCAGTCTGGAA +ACTATCACGTTTATGATTTTGAACCGTATTACTCTACAGTAGCTCTGGCTATTCGAGATGAACATTCATC +TGGCATTTTTAATATCCGTCAAGAGAGTTATCTTGTAAGTTCATTATCTGAAATAACATATAGATTTTAT +CTAATTAATCTAAAATCTGATCTTGTTCAATGGAGTGCTAGTACGGGCGCTGTAATTAATCAAATGGTAA +ATACTGTATTGATTACAGTGTATGAAAAATTACAACTGGCCATAGAAAATGATTCACAATTTACATGTTC +ATTGGCTGTGGAATCAGAACTTCCAATAAAATTACTTAAAGATAGAAATGAATTATTTACAAAATTCATT +AACGAGTTAAAAAAGACCAGTTCATTCAAGATAAGCAAACGTGATAAGGATACGCTATTAAAACATTTTA +CTTATGACTGGAGTTAGAATTTATAGACGACACATTTCGTTTATCATTGTTACTATTACTATCATTATTA +GTATTCTTCTTGTCATCTTGTTCAGAAATATACAGCAATGCTATACCTAATACTAAATACATTATCATGC +TTGCAATGGCTCTAACAACAACGAACCAAAATGAATTTGGTCGTAGCTTTTGTTCACAAAAATACATAAA +GAAATGTCTACATAAATCTATGGCGCCATTGGCTACTTGAAATAGCGCCAGTCCTCCTACAGATTTTAAT +ATAGCTGTATAACATGACATTTATTCATCATCAAAAGAGACAGAGTCACCATCTGTCATATTTAGATTTT +TTTTCATGTGTTCAAAGTATCCTCTACTCATTTCATTATAATAGTTTATCATGCTTAGAATTTTAGGACG +GATCAATGAGTAAGACTTGACTAGATCGTCAGTAGTAATTTGTGCATCATCTATTCTGCATCCGCTTCGT +CGAATAATGTATAGCATCGCTTTGAGATTCTCCATAGCTATCAAGTCTTTATATAATGACATGGAAATAT +CTGTGAATGCTTTATACTTCTCCAACATCGATGCCTTAACATCATCACATACTTTAGCATTGAAAATACG +TTCTATTGTGTAGATGGATGTAGCAAGATTTTTAAACAACAATGCCATCTTACATGATGATTGTCTCAAG +TCTCCAATCGTTTGTTTAGAACGATTAGCTACAGAGTCCAATGCTTGGCTAACTAGCATATTATTATCTT +TAGAAATTGTATTCTTCAATGAGGCGTTTATCATATCTGTGATTTCGTTAGTCATATTACAGTCTGACTG +GGTTGTAATGTTATCCAACATATCACCTATGGATACGGTACACGTACCAGCATTTGTAATAATCCTATCT +AAGATGTTGTATGGCATTGCGCAGAAAATATCTTCTCCTGTAATATCTCCACTCTCGATAAATCTACTCA +GATTATTCTTAAATGCCTTATTCTCTGGAGAAAAGATATCAGTGTCCATCATTTCATTAATAGTATACGC +AGAAAAGATACCACGAGTATCAATTCTATCCAAGATACTTATCGGTTCCGAGTCACAGATAATTGTTTCC +TCTCCTTCGGGAGATCCTGCATAGAAATATCTAGGACAATAGTTTCTATACTGTCTGTAACTCTGATAAT +CTCTAAAGTCACTAACTGATACCATGAAATTGAGAAGATCAAACGCTGAAGTAATCAATTTTTCTGCCTC +GTTTTTACTACAACTAGTTTTCATCAATGTAGTGACGATGTATTGTTTAGTTACTCTTGGTCTAATACTG +ATGATAGAGATATTATTGCTTCCCATAATGGATCTTCTAGTAGTCACCTTAAAGCCCATTGATGCGAATA +GCAGATAGATAAAGTCTTGGTATGACTCCTTTCTAATATAGTACGGACTACCTTTGTCACCCAACTTTAT +ACCCACATAAGCCATAACAACCTCTTTAATAGCCGTTTCATGAGGTTTATCAGCCATGAGCCTGAGTAGT +TGAAAGAATCGCATGAATCCCGTCTCAGAAAGTCCTATATGCATGATAGATTTATCTTTCCTGGGAAACT +CTCGTATAGTTATAGATGAAATACTCTTCAAAGTTTCTGAAATAAGATTAGTAACAGTCTTACCTCCGAC +TACTCTGGGTAACAAACATACTCTAATAGGTGTTTTCTCTGCGGAGATAATATCAGAAAGGATAGAGCAA +TAAGTAGTATTATTGTGATTATAAAGACCGAATACATAACAGGTAGAATTTATAAACATCATGTCCTGAA +GGGTTTTAGACTTGTATTCCTCGTAATCTATACCGTCCCAAAACATGGATTTGGTAACTTTGATAGCCGT +AGATCTTTGTTCCTTCGCTAACAGGTTAAAGAAATTAATAAAGAATTTGTTGTTTCTATTTATGTCCACA +AATTGCACGTTTGGAAGCGCCACGGTTACATTCACTGCAGCATTTTGAGGATCGCGAGTATGAAGTACGA +TGTTATTGTTTACTGGTATATCTGGAAAGAAATCTACCAGTCTAGGAATAAGAGATTGATATCGCATAGA +AATAGTAAAGTTTATAATCTCATCATTGAAGATTACTCTGTTACCATTGTAATAAATTGGTACTCTATCA +TAATCATCGACAAAGTACTGTTCATACATGATGAGATGTTTATATGTTGGCATAGTAGTGAGATCGACGT +TTGGTAATGGCAATGTATTAAGATTAACTCCATAATGTCTAGCAGCATCTGCGATGTTATAAGTGATGTC +AAAGCGGGGTTGATCTTGTGCTGTTATATATTGTCTAACACCTATAAGATTATCAAAATCTTGTCTGCTT +AATACACCGTTAACAATTTTTGCCTTGAATTCTTTTATTGGTGCATTAATAACATCCTTATAGAGGATGT +TAAACAAATAAGTATTATCAAAGTTAAGATCTGGGTATTTCTTTTCTGCTAGAACATCCATTGAGTCGGA +GCCATCTGGTTTAATATAACCACCGATAAATCTAGCTCTGTATTCTGTATCCGTCAATCTAATATTAAGA +AGGTGTTGAGTGAAAGGTGGAAGATCGTAAAAGCTGTGAGTATTAATAATAGGGTTAGTTTCCGAACTAA +TGTTAATTGGATGATTAATAATATTTATATTTCCAGCGTTAAGTGTAACATTAAACAGTTTTAATTCACG +TGACGTGGTATCAATTAAATAATTAATGCCCAATTTGGATATAGTAGCCTGAAGCTCATCTTGTTTAGTT +ACGGATCCTAATGAGTTATTAAGAAATACATCGAACGGATGAACGAAGGTTGTTTTAAGTTGGTCACATA +CTTTGTAATCTAGACATAGATGTGGAAGAACGGTAGAAACTATACGAAATAGATATTCAGAGTCCTCTAA +TTGATCAAGAGTAACTATTGACTTAATAGGCATCATTTATTTAGTATTAAATGACGACCGTACCAGTGAC +AGATATACAAAACGACTTAATTACAGAGTTTTCAGAAGATAATTATCCATCTAACAAAAATTATGAAATA +ACTCTTCGCCAAATGTCTATTCTAACTCACGTTAACAACGTGGTAGATAGAGAACATAATGCCGCCGTAG +TGTCATCTCCAGAGGAAATATCATCACAACTTAATGAAGATCTATTTCCAGATGATGATTCACCGGCCAC +TATTATCGAACGAGTACAACCTCATACTACTATTATTGACGATACGCCACCTCCTACTTTTCGTAGAGAG +TTATTGATATCGGAACAACGTCAACAACGAGAAAAAAGATTTAATATTACAGTATCAAAAAATTCTGAAG +CAATAATGGAATCTAGATCTATGATAACTTCTATGCCAACACAAACACCATCCTTGGGAGTAGTTTATGA +TAAAGATAAAAGAATTCAGATGCTAGAGGATGAAGTGGTTAATCTTAGAAATCAACGATCTAATACAAAA +TCATCTGATAATTTAGATAATTTTACCAGAATACTATTTGGTAAGACTCCGTATAAATCAACCGAAGTTA +ATAAGCGTATAGCCATCGTTAATTATGCAAATTTGAACGGGTCCCCCTTATCAGTCGAGGACTTGGATGT +CTGTTCGGAGGATGAAATAGATAGAATCTATAAAACGATTAAACAATATCACGAAAGTAGAAAACGAAAA +ATTATCGTCACTAACGTGATTATTATTGTCATAAACATTATTGAGCAGGCATTGCTAAAACTCGGATTTG +AAGAAATCAAAGGACTGAGTACCGATATCACTTCAGAAATTATCGATGTGGAGATCGGAGATGACTGCGA +TGCTGTAGCATCAAAACTAGGAATCGGTAACAGTCCGGTTCTTAATATTGTATTGTTTATACTCAAGATA +TTCGTTAAACGAATTAAAATTATTTAATTTAATACATTCCCATATCCAGACAACAATCGTCTGGATTAAT +CTGTTCCTGTCGTCTCATACCGGACGACATATTAATCTTTTTATTAGTGGGCATCTTTTTAGATGGTTTC +TTTTTCCCAGCATTAACTGATTCGATACCTAGAAGATCGTGATTGATTTCTCCGACCATTCCACGAACTT +CTAATTGGCCGTCTCTAACGGTACCATAAACTATTTTACCAGCATTAGTAACAGCTTGGACAATCTGACC +ATCCATTGCGTTGAATGATGTAGTTGCTGTTGTTCTACGTCTAGGAGCACCAGAGGTATTTTTAGAGCTC +TTGGATGTTGATGTAGAAGACGAGGATTTTGATTTTGGTTTACATGTAATACATTTTGAACTCTTTGATT +TTGTATCACATGCACCGGCAGTCACATCTGTTTGAGAATTAAGATTATTGTTGCCTCCTTTGACGGCTGC +ATCTCCACCGATCTGCGCTAGTAGATTTTTAAGCTGTGGTGTAATCTTATTAACTGTTTCAATATAATCA +TCGTAACTACTTCTAACGGCTAAATTTTTTTTATCCGCCATTTAGAAGCTAAAAATATTTTTATTTATGC +AGAAGATTTAACTAGATTATACAATGAACTAATATGATCCTTTTCTAGATTATTTACGAACTTGGTATTT +CTTGTTTCTGGAGGAGGAGAATTTAAATTCGGACTTGGATTCGGATTTTGTGGGTTCTTGATCTTATTAT +ACAGCGTGTATAGGATGGTGACGGTAACTGCTACACAAATACCGATCAACAGAAGAATACCAATCATTTA +TTGACAATAACTTCACTATGATCAAGTATGTAATAATCATCTTTTCACTAAGTAAGTAGTAATAATGATT +CAACAATGACACGATATATGGACGATAATAATTTAGTTCATGGAAATATCGCTATGATTGGTGTGAATGA +CTCCGCTAACTCTGTGGGGTGCACAGTGCTTTCCCCACATAGAATAAATTAGCATTCCGACTGTGATAAT +AATACCAAGTATAAACGCCATAATACTCAATACTTTCCATGTACGAGTGGGACTGGTAGACTTACTAAAG +TCAATAAAGGCGAAGATACACGAAAGAATCAAAAGAATGATTCCAGCGATTAGCACGCCAGAAAAATAAT +TTCCAATCATAAGCATCATGTCCATTTAACTAATAAAAATTTTAAATCGCCGAATAAACAAAGTGGAATA +TAAACCATATAAAAACAATAGTTTGTACTGCAAAAATAATATCTATTTTTGTTTTCGAAGATATGGTAAA +ATTAAATAGTAGTACACAGCATGTTATAACTAACAGCAGCAACGGCTCGTAATTACTTATCATTTACTAG +ACGAAAAGGTGGTGGGATATTTTCTTGCTCAAATAATACGAATATATCACCCATCCATTTTATACGATGT +TTATATACTCTAATCTTTAATAGATCTATAGATGACGGGTTTACCAATAATATAGATTTTATCGATTCAT +CTAATTTAAACCCTTCCTTAAACGTGAATGATCTATTATCTGGCATAATGATGACCCTACCTGATGAATC +TGACAATGTACTGGGCCATGTAGAATAAATTATCAACGAATTATCGTCTACGAACATTTATATCATTTGT +TTTAATTTTAGGACGTGAATAAATAGATATAAAATAGAAAATAACAGATATTACAACCAGTGTTATGGAC +GCACCCAACCATGTAGGCAGTTTTATTTTATCGTTTACTACAGGTTCTCCTGGATGTACGTCACCAACTG +CAGACGTAGTTCTAGTACAATTAGACGTAAGTTCCGCTTGGGAATTTTTTAACGCTAAAGAGTTAACGTT +GATCGTACACCCAACGTATTTACATCTAGTTCTTTGAACATCTTGATTATAATATAACCATTTTCTATCT +CTAGATTCGTCAGTGCACTCATGTAACCAACATACCCTAGGTCCTAAATATTTATCTCCGGAATTAGATT +TTGGATAATTCGCGCACCAACAATTTCTATTTCCTTTATGGTCGTTACAAAAGACGTATAATGCCGTATC +CCCAAAAGTAAAATAATCAGGACGAATAATTCTAATAAACTCAGAACAATATCTCGCATCCATATGTTTG +GAGCAAATATCGGAATAAGTAGACATAGCCGGTTTCCGTTTTACACGTAACCATTCTAAACAATTGGGGT +TTCCAGGATCGTTTCTACAAAAACCAGTCATGAAATCGTCACAATGTTCTGTCTTGTAATTATTATTAAA +TATTTTTGGACAGTGTTTGGTATTTGTCTTAGAACAACATTTTGCCACGCTATCACTATCACCCAGGAGA +TAATCCTTTTTTATAAAATGACATCGTTGCCCGGATGCTATATAATCAGTAGCATATTTTAAATCCTTAA +TATATTCAGGAGTTACCTCGTTCTGATAATAGATTAATGATCCAGGACGAAATTTGAAAGAACTACATGG +TTCTCCATGAATTAATACATATTGTTTAGCAAATTCAGGAACTATAAAACTACTACAATGATCTATCGAC +ATACCATCTATCAAACAAAATTTGGGTTTAATTTCTCCTGGAGACGTTTCATAATAATACATATAACTTT +CTTCGGCAAACCTAACAGCTCTATTATATTCAGGATAATTAAAATCTAATACCATATATTTGTCTCGTAT +ATCTGCTATTCCTGTCTCTATTTTGATTCTATTAAGAGTAACAGCTGCCCCCATTCTTAATAATCATCAG +TATTTAAACTGTTAAATGTTGGTATATCAACATCTATCTTATTTCCCGCAGTATAAGGTTTGTTGCAGGT +ATACTGTTCAGGAATGGGTACATTTATACTTCTTTTATAGTCCTGTCTTTCGATGTTCATCACAAATGCA +AAGAACAGAATAAACAAAATAATGTAAGAAATAATATTAAATATCTGTGAATTCGTAAATACATTGATTG +CCATAATAATTACAGCAGCTACAATACACACAATAGACATTCCCACAGTGTTGCCATTACCTCCACGATA +CATTTGAGTTACTAAGCAATAGGTAATAACTAAGCTAGTAAGAGGCAATAGAAAAGATGAGATAAATATC +ATCAATATAGAGATTAGAGGAGGGCTATATAGAGCCAAGACGAACAAAATCAAACCGAGTAACGTTCTAA +CATCATTATTTTTGAAGATTCCCAAATAATCATTCATTATTCCTCCATAATCGTTTTGCATCATACCCCC +ATCTTTAGGCATAAACGATTGCTGCTGTTCCTCTGTAAATAAATCTTTATCAAGCACTCCAGCACCCGCA +GAGAAGTCATCAAGCATATTGTAATATCTTAAATAACTCATTTATATATTAAAAAATGTCACTATTAAAG +ATGGAGTATAATCTTTATGCCGAACTAAAAAAAATGACTTGTGGTCAGACCATAAGTCTTTTTAATGAAG +ACGGCGATTTCGTAGAAGTTGAACCAGGATCATCCTTTAAGTTTCTAATACCTAAGGGATTTTACTCCTC +TCCTTGTGTAAAGACGAGTCTAGTATTCGAGACATTAACAACGACCGATAATAAAATTACTAGTATCAAT +CCAACAAATGCGCCAAAGTTATATCCTCTTCAACGCAAAGTCGTATCTGAAGTAGTTTCTAATATGAGGA +AAATGATCGAATTAAAACGTCCTCTATACATCACTCTTCACTTGGCATGTGGATTTGGTAAGACTATTAC +CACGTGTTATCTTATGACCACACACGGCAGAAAAACCATCATTTGCGTACCCAATAAAATGTTAATACAT +CAATGGAAGACACAGGTAGAGGCAGTCGGATTGGAACATAAGATATCTATAGATGGAGTTAGTAGTCTAT +TAAAGGAACTAAAGACTCAAAGTCCGGATGTATTAATCGTAGTCAGTAGACATCTGACAAACGATGCATT +TTGTAAATATATCAATAAGCATTATGATTTGTTTATCTTGGATGAATCACATACGTATAATCTGATGAAC +AATACAGCAGTTACAAGATTTTTAGCGTATTATCCTCCGATGATGTGTTATTTTTTAACTGCTACACCTA +GACCAGCTAACCGAATTTATTGTAATAGTATTATTAATATTGCCAAGTTATCCGATCTAAAAAAAACTAT +CTATATAGTAGATAGTTTTTTTGAGCCATATTCCACAGACAATATTAGAAATATGGTAAAACGACTAGAT +GGACCATCTAATAAATATCATATATATACCGAGAAGTTATTATCTGTAGACGAGCCTAGAAACCAACTTA +TTCTTGATACCCTGGTAGAAGAATTCAAGTCAGGAACTATTAATAGAATTTTAGTTATTACTAAACTACG +TGAACATATGGTATTCTTCTACAAACGATTATTAGATCTTTTCGGAGCAGAGGTTGTATTTATAGGAGAC +GCCCAAAATAGACGTACTCCAGATATGGTCAAATCGATTAAGGAACTAAATAGATTTATATTCGTATCCA +CCTTATTTTATTCCGGCACTGGTTTAGATATTCCGAGTTTGGATTCTTTGTTCATTTGCTCGGCAGTAAT +CAACAATATGCAAATAGAGCAATTACTAGGGAGGGTATGTCGAGAAACAGAACTATTAGATAGGACGGTA +TATGTATTTCCTAACACATCCATCAAAAAAATAAAGTACATGATAGGAAATTTCGTGCAACGAATTATTA +GTCTGTCTGTAGATAAACTCGGATTTAAACAAGAAAGTTATCAGAAACATCAGGAATCTGAACCCGCTTC +CGTACCAACATCCTCCAGAGAAGAACGTGTATTAAATAGAATATTTAACTCGCAAAATCGTTAAGAAGTT +TAAGAGACGATCCACATGCTGAGCAGGCCAGTGTATTACCCCTCATAGTATTAATATAATCCAATGATAC +TTTTGTGATGTCGGAAATCTTAACCAATTTAGACTGACAGGCAGAACACGTCATACAATCATCATCGTCA +TCGATAACTGTAGTCTTGGGCTTCTTTTTGCGACTCTTCATTCCGGAACGCATATTGGTGCTATCCATTT +AGGTAGTAAAAAATAAGTCAGAATATGCCCTATAACACGATCGTGCAAAACCTGGTATATCGTCTCTATC +TTTATCACAATATAGTGTATCAACATCTTTATTATTGACCTCGTTTATCTTGGAACATGGAATGGGAACA +TTTTTGTTAACGGCCACCTTTGCCTTAATTCCAGATGTTGTAAAATTATAACTAAACAGTCTATCATCGA +CACAAATGAAATTCTTGTTTAGACGTTTGTAGTTTACGTATGCGGCTCGTTCTCGTCTCATTTTTTCAGA +TATTGCAGGTACTATAATATTAAAAATAAGAATGAAATAACATAGGATTAAAAATAAAGTTATCATGACT +TCTAGTGCTGATTTAACTAACTTAAAAGAATTACTTAGTCTGTACAAAAGTTTGAGATTTTCAGATTCTG +TGGCTATAGAGAAGTATAATTCTTTGGTAGAATGGGGAACATCTACTTACTGGAAAATAGGCGTACAAAA +GGTAACTAATGTCGAGACGTCCATATCTGATTATTATGATGAGGTAAAAAATAAACCGTTTAATATTGAT +CCGGGGTATTATATTTTCTTACCAGTATATTTTGGAAGCGTCTTTATTTATTCAAAGGGTAAAAATATGG +TAGAACTTGGATCTGGAAACTCTTTTCAAATACCGGATGAGATTCGAAGTGCGTGTAACAAAGTATTAGA +TAGTGATAACGGAATAGACTTTCTGAGATTTGTTTTGTTAAACAATAGATGGATAATGGAAGACGCTATA +TCAAAATACCAGTCTCCAGTTAATATATTTAAACTAGCTAGTGAGTACGGATTAAACATACCCAACTATT +TAGAAATTGAAATAGAGGAAGACACATTATTTGACGATGAGTTATACTCTATTATGGAACGCTCTTTCGA +TGATACATTTCCAAAAATATCTATATCGTATATTAAGTTGGGAGAACTTAAGCGGCAAGTTGTAGACTTT +TTCAAATTCTCATTCATGTATATTGAGTCAATCAAGGTAGATCGTATAGGAGATAATATTTTTATTCCTA +GCGTTATAACAAAATCAGGAAAAAAGATATTAGTAAAAGATGTAGACCATTTAATACGATCCAAGGTTAG +AGAACATACATTTGTAAAAGTAAAAAAGAAAAACACATTTTCCATTTTATACGACTATGATGGGAACGGA +ACAGAAACTAGAGGAGAAGTAATAAAACGAATTATAGACACTATAGGACGAGACTATTATGTTAATGGAA +AGTATTTCTCTAAGGTTGGTATTGCAGGCTTAAAGCAATTGACTAATAAATTAGATATTAATGAGTGTGC +AACTGTCGATGAGTTAGTTGATGAGATTAATAAATCCGGAACTGTAAAACGAAAAATAAAAAACCAATCA +GTATTTGATTTAAGCAGAGAATGTTTGGGATATCCAGAAGCGGATTTTATAACGTTAGTTAATAACATGC +GGTTCAAAATAGAAAATTGTAAGGTTGTAAATTTCAATATTGAAAATACTAATTGTTTAAATAACCCGAG +TATTGAAACTATATATGGAAACTTCAACCAGTTCGTCTCAATCTTTAATACCGTTACCGATGTCAAAAAA +AGATTATTCGAGTGAAATAATATGCGCCTTTGATATAGGTGCAAAAAATCCTGCCAGAACTGTTTTAGAA +GTCAAGGATAACTCCGTTAGGGTATTGGATATATCAAAATTAGACTGGAGTTCTGATTGGGAAAGGCGCA +TAGCTCAAGATTTGTCACAATATGAATACACTACAGTTCTTCTAGAACGTCAGCCTAGAAGGTCACCGTA +CGTCAAATTTATCTATTTTATTAAAGGCTTTTTATATCATACATCTGCTGCCAAAGTTATTTGCGTCTCA +CCTGTCATGTCTGGTAATTCATATAGAGATCGAAAAAAGAGATCTGTTGAAGCATTTCTTGATTGGATGG +ACACATTCGGATTGCGAGACTCCGTTCCGGATAGACGCAAATTAGACGATGTAGCGGATAGTTTCAATTT +GGCTATGAGATACGTATTAGATAAATGGAATACTAATTATACACCTTATAATAGGTGTAAATATAGAAAT +TACATAAAAAAAATGTAATAACGTTAGTAACGCCATTATGGATAATCTATTTACCTTTCTACATGAAATA +GAAGATAGATATGCCAGAACTATTTTTAACTTTCATCTAATAAGTTGTGATGAAATAGGAGATATATATG +GTCTTATGAAAGAACGCATTTCCTCAGAGGATATGTTTGACAATATAGTATATAATAAAGATATACATCC +TGCCATTAAGAAACTAGTTTATTGCGACATCCAACTTACTAAACATATTATTAATCAGAATACGTATCCG +GTATTTAACGATTCTTCACAAGTGAAATGTTGTCATTATTTCGATATAAACTCAAATAATAGCAATATTA +GCTCTCGTACAGTAGAGATATTTGAGAGTGAAAAGTCATCTCTTGTATCATATATTAAAACTACCAATAA +GAAGAGAAAGGTCAATTACGGCGAAATAAAGAAAACTGTACATGGAGGCACTAATGCAAATTACTTTTCC +GGTAAAAAGTCTGATGAGTATCTGAGCACTACAGTCAGGTCCAACATTAATCAACCTTGGATCAAAACCA +TTTCTAAGAGAATGAGAGTAGATATCATTAATCACTCTATAGTAACGCGTGGAAAAAGCTCTATATTACA +AACTATAGAAATTATTTTTACTAATAGAACATGTGTGAAAATATTCAAGGATTCTACTATGCACATTATT +CTATCCAAGGACAAGGATGAAAAGGGATGTATAAACATGATTGATAAATTATTCTATGTATATTATAATT +TATTTCTGTTGTTCGAGGATATCATCCAAAACGATTACTTTAAAGAAGTAGCTAATGTTGTAAACCATGT +ACTCATGGCTACGGCATTAGATGAGAAATTATTCCTAATTAAGAAAATGGCTGAACACGATGTTTATGGA +GTTAGCAATTTCAAAATAGGGATGTTTAACCTGACATTTATTAAGTCGTTGGATCATACCGTTTTCCCCT +CTCTGTTAGATGAGGATAGCAAAATAAAGTTTTTTAAGGGGAAAAAGCTCAATATTGTAGCATTACGATC +TCTGGAGGATTGTACAAATTACGTGACTAAATCCGAGAATATGATAGAAATGATGAAGGAAAGATCGACT +ATTTTAAATAGCATAGATATAGAAACGGAATCGGTAGATCGTCTAAAAGAATTGCTTCTAAAATGAAAAA +AAACACTGATTCAGAAATGGATCAACGACTCGGGTATAAGTTTTTGGTGCCTGATCCTAAAGCCGGAGTT +TTTTATAGACCGTTACATTTCCAATATGTATCGTATTCTAATTTTATATTGCATCGATTGCATGAAATCT +TGACCGTCAAGCGGCCACTCTTATCGTTTAAGAATAATACAGAACGAATTATGATAGAAATTAGCAATGT +TAAAGTGACTCCTCCAGATTACTCACCTATAATTGCGAGTATTAAAGGTAAGAGTTATGACGCATTAGCC +ACGTTCACTGTAAATATCTTTAAAGAGGTAATGACCAAAGAGGGTATATCCATCACTAAAATAAGTAGTT +ATGAGGGAAAAGATTCTCATTTGATAAAAATTCCGCTACTAATAGGATATGGGAATAAAAATCCACTTGA +TACAGCCAAGTATCTTGTTCCTAATGTCATAGGTGGAGTCTTTATCAATAAACAATCTGTCGAAAAAGTA +GGAATTAATCTAGTAGAAAAGATTACAACATGGCCAAAATTTAGGGTTGTTAAGCCAAACTCATTCACTT +TCTCGTTTTCCTCCGTATCCCCTCCTAATGTATTACCGACAAGATATCGCCATTACAAGATATCTCTGGA +TATATCACAATTGGAAGCGTCGAATATATCATCGACAAAGACATTTATAACGGTCAATATTGTTTTGCTG +TCTCAATATTTATCTAGAGTGAGTCTAGAATTCATTAGACGTAGTTTATCATACGATATGCCTCCAGAAG +TTGTCTATCTAGTAAACGCGATAATAGATAGTGCTAAACGACTTACCGAATCTATTACTGACTTTAATAT +TGATACATACATTAATGACCTGGTGGAAGCTGAACACATTAAACAAAAATCTCAGTTAACGATTAACGAG +TTTAAATATGAAATGCTGCATAACTTTTTACCTCATATGAACTATACACCCGATCAACTAAAGGGATTTT +ATATGATATCTTTACTAAGAAAGTTTCTCTACTGTATCTACCACACTTCTAGATATCCAGATAGAGATTC +GATGGTTTGTCATCGCATCCTAACGTACGGCAAATATTTTGAGACGTTAGCACATGATGAATTAGAGAAT +TACATAGGTAACATCCGAAACGATATCATGAACAATCACAAGAACAGAGGCACTTACGCAGTAAACATTC +ATGTACTAACAACTCCTGGACTTAATCATGCATTTTCTAGTCTATTGAGTGGAAAGTTCAAAAAGTCAGA +CGGTAGTTATCGAACACATCCTCACTATTCATGGATGCAGAATATTTCTATTCCTAGAAGTGTTGGATTT +TATCCGGATCAAGTAAAGATTTCAAAGATGTTTTCTGTCAGAAAATACCATCCAAGCCAATATCTTTACT +TTTGTTCATCAGACGTTCCGGAAAGAGGTCCTCAGGTAGGTTTAGTATCTCAATTGTCTGTCTTGAGTTC +CATTACAAATATACTAACGTCTGAGTATTTGGATTTGGAAAAGAAAATTTGTGAGTATATCAGATCATAT +TATAAAGATGATATAAGTTACTTTGAAACAGGATTTCCAATCACTATAGAAAATGCTCTAGTCGCATCTC +TTAATCCAAATATGATATGTGATTTTGTAACTGACTTTAGACGTAGAAAACGGATGGGATTCTTCGGTAA +CTTGGAGGTAGGTATTACTTTAGTTAGGGATCACATGAATGAAATTCGCATTAATATTGGAGCAGGAAGA +TTAGTCAGACCATTCTTGGTTGTGGATAACGGAGAGCTCATGATGGATGTGTGTCCGGAGTTAGAAAGCA +GATTAGACGACATGACATTCTCTGACATTCAGAAAGAGTTTCCACATGTCATCGAAATGGTAGATATAGA +ACAATTTACTTTTAGTAACGTATGTGAATCGGTTCAAAAATTTAGAATGATGTCAAAGGATGAAAGAAAG +CAATACGATTTATGTGACTTTCCTGCCGAATTTAGAGATGGATATGTAGCATCTTCACTAGTGGGAATCA +ATCACAATTCTGGACCCAGAGCTATTCTTGGATGTGCTCAAGCTAAACAAGCTATCTCTTGTCTGAGTTC +GGATATACGAAATAAAATAGACAATGGAATTCATTTGATGTATCCAGAGAGGCCAATTGTGATTAGTAAG +GCTTTAGAAACTTCAAAGATTGCGGCTAATTGCTTCGGACAACATGTTACTATAGCATTAATGTCGTACA +AAGGTATCAATCAAGAGGATGGAATTATCATCAAAAAACAATTTATTCAGAGAGGCGGTCTCGATATTGT +TACAGCCAAGAAACATCAAGTAGAAATTCCATTGGAAAACTTTAATAACAAAGAAAGAGATAGGTCTAAC +GCCTATTCGAAATTAGAAAGTAATGGATTAGTTAGACTGAATGCTTTCTTGGAATCCGGAGACGCTATGG +CAAGAAATATCTCATCAAGAACTCTTGAAGATGATTTTGCTAGAGATAATCAGATTAGCTTTGATGTTTC +CGAGAAATATACAGATATGTACAAATCTCGCGTTGAACGAGTACAAGTAGAACTTACTGACAAAGTTAAG +GTGCGAGTATTAACCATGAAAGAAAGAAGACCCATTCTAGGAGACAAATTTACTACTAGAACGAGTCAAA +AGGGAACAGTCGCGTATATCGCAGATGAAACGGAACTTCCGTACGACGAAAATGGTATCACACCAGATGT +CATTATTAATTCTACATCCATCTTCTCTAGAAAAACTATATCTATGTTGATAGAAGTTATTTTAACAGCC +GCATATTCTACTAAGCCGTACAACAATAAGGGAGAAAACCGACCTGTCTGTTTTCCTAGTAGTAACGAAA +CATCTATCGATGCATATATGCAATTCGCTAAACAATGTTATGAGTATTCAAATCCGAAATTGTCCGAGGA +AGAATTATCGGATAAAATCTTTTGTGAAAAGATTCTCTATGATCCTGAAACGGATAAGCCTTATGAATCC +AAAGTATTTTTTGGACCAATTTATTACTTGCGTCTGAGACATTTAACTCAGGACAAGGCAACCGTTAGAT +GTAGAGGTAAAAAGACGAAGCTCATTAGACAAGCGAATGAGGGACGAAAACGTGGAGGAGGTATCAAGTT +TGGAGAAATGGAGAGAGACTGTTTAATAGCACATGGTGCAGCCAATACTATTACAGAAGTTTTAAAAGAC +TCAGAAGAGGATTATCAAGATGTGTATATTTGTGAAAATTGTGGAGACATAGCAGCACAAATCAAAAGTA +TTAATACATGTCTTAGATGTTCAAAACTTAATCTCTCTCCTCTCTTAACAAAAATTGATACCACGCACGT +ATCTAAAGTATTTCTTACTCAAATGAACGCCAGAGGCGTAAAAGTTAAATTAGATTTCGAACGAAGGCCT +CCTTCGTTTTATAAACCATTAGATAAAGTTGATCTTAAACCGTCTTTTCTGGTATAATATTGTTTAGTAG +ATACTCATCAAGATAAGCTAATTCACTAAACATATTATCGGATTCGGTATTGTTACTCGAGAATAGAGTT +CGTTATGCTCCTGATATTCGGAAATCTGTGGAGTTTCAGGTTTTGGTGGAAGTGTAACTGCTACTTGGTG +GGATACTGAAGGATATTTCAGAGAGTTGTGGATGTTCGGGTTCGACATCCACCGATGGTGTCACGCCACT +AATCGGTTCGGTAACGTCTGTGGATGGAGGTGCTACTTCTACAGAACCTGTAGCCTCAGTTGTCAACGGA +GATACATATTCAATGCGCGGAAATGTATAATTTGGTAATGGTTTCTCATGTGGATCTTAAGAAGAAGAGG +TAAGATATCTACGAAAGATACCGATCACGTTTCTAGTTCTCTTTTGTAGAACTTTAACTTTTTCTTTCTC +AGCATCTAGTTGATATTCCGACCTCTTCACGTTTCGCATGGGTTACCTCCGCAGTTTTTACAAGCGATTT +CACGTTCCAGATCACGTTCAGCCTTCATACGTCTCTCCCTCTCTCTATCGAGTTTATCAGAGCAGTCTTT +CTGAAGGCGATCGAACTCCATAAATTTCTCCAACGCTTTGATTGTTTCCATAGATTTCCGAAGTTTAGCT +TCTAGGACGGCGATTCTTTTTTTTTTTTTTTTTTTTTTTTTTTCGAATTCACGGGGTACAACCGTTTCCA +TTACCACCATCTCTATGTTTCTTTTCTAGATCGGCAATCTTTCTCAATCTTTCTCAACATTTCATCCCCA +TACCTTTTCATTCCTCGAGTCTATTGTCGTCGAAATATCGTTCCAGCTCCTTTTCGACCTCAATAACTTT +AGCACGTTGTTTCATCAAGCTCTCTCTTGTAGTACTATCATTTTTATCTGATTCCCTGACACGTTTAAGA +TCTTCATGTAATTGAGTCAGCTCTTGACGCAATCTCTTAACTAACTTCCTCTCTTGCTTCTTCGTCATAG +TACTTACAATCACTATGGGATCCATTGTTACCACGTCTGTACTCGACGAGCTCACGTTTAAGAGATTCAA +TTTCCAGTTTGTATCGGTCCATGTCTCCATTGCTACACCACCATTAGATTTACAGGCTGCTAGTTGTCGT +TCGAGATCAGAAATACGTGTTTTCTTGGAATGGATTTCGTCGATGTACTTGTCATGATTGGCATCGAAAC +ACTTATTAAGTTCTTTTTTTCAATTCTACGATTTTATTTCTTTCGCGAGTCAATTCCCTCCTGTAGTAAC +TATCAGTTTTGTCAGATTCACGCTCTCTACGTAGACTTTCTTGTAAGTTACTAATTTGTTCCCTGGCATT +ACCGAGTTCAGTTTTATATGCCGAATAGAGTTCTGATTCATCCTTTGAGAAGATCTCTAGCGATCGTTCA +AGATCCCTGATTCTAGTCTTTAGCCTATTTACCTCCTCAGAAGATGCTCCGTTACCGTTTTTACAATCGT +TAAGATGTCTATCAAGATCCATGATTCTATCTCTTTTCCATATCAGCATTGATTTCATTATTACGTTCGC +AGTCGTTCAACTGTATTTCAAGATCTGAGATTCTAGATTGTAATCTCTGTAGCATTTCCACGGCATTCAC +TCAGTTGTCTTTCAAGATCTGAGATTCTAGATTGGAGTCTGCTAATCTCTGTAAGATTTCCTCCTCCGCT +CTCGATGCAGTCGGTCAACTTATTCTCTAGTTCTCTAATACGCGAACGCAGTGCATCAACTTCTTGTGTG +TCTTCTTGATTGCGTGTGCATTCATCGAGTCTAGATTCGAGATCTCTAACGTGACGTCGTTCTTCCTCAA +GTTCTCTGTGTACTACAGAAAGCGTGTCCCTATCTTGTTGATATTTAGCAATTTCTGATTCTAGAGTACT +GATTCTACTCACGTATGTACTAATAGTTGTCTTAGCCTTATCAAGATCCTCCTTGTATTTGTCACATTCC +TTGATATCCATACGAAGTCTGGACAGTTCCCATTCGACATTACGACGTTTATCGATTTCAGCTCGGAGAT +CGTCGTCGCGTTGTTTTAGCCACATACGACTAAGTTCAAGTTCTCGTTGACAAGATCCATCTACTTTTCC +ATCCCTAATAGTATCCAGTTCCTTTTCTAGTTCTGACCGCATTTCTCGTTCCATATCAAGAGATTCTCTC +AATTCTCGTATAGTCTTCTTATCAATTTCTGATGAATCTGAACCATCATCTGTCCCATTTTGTTGCATAT +CCCTGAGTTCTTTGATCTCTGTTGTAAGTCTGTCGATTCTTTCGGTTTTATAAACAGAATCCCTTTCCAA +AGTCCTAATCTTACTGAGTTTATCATTAAGTTCTTCATTCAATTCAGTGAGTTTTCTCTTGGCTTCTTCC +AAGTCTGTTTTAAACTCTCCATCATTTCCGCATTCTTCCTCGCATTTATCTAACCATTCAATTAGTTTAT +TAATAACTAGTTGGTAATCAGCGATTCCTATAGCCGTTCTTGTATTTGTGGGAACATAATTAGGATCTTC +TAATGGATTGTATGGCTTGATAGCATCATCTTTATCATTATTAGGTGGGGGATGGACAACCTTAATTGGT +TGGTCCTCCTTATCTCCTCCAGTAGCATGTGGTTCTTCAATACCAGTATTAGTAATAGGCTTAGACAAAT +GCTTGTCGTACGCGGGCACTTCCTCATCCATCAAGTATTTATAATCGGGTTCTGTTTCAGAATATTCTTT +TCTAAGAGACGCGACTTCAGGAGTTAGTAGAAGAACTCTGTTTCTGTATCTATCAACGCTGGAATCGATA +CTCAAGTTAAGGATAGCGAATACCTCATCGTCATCATCCGTATCTTCTGAAACGCCATCATATGACATTT +CATGAAGTCTAACGTATTGATAAACAGAATCAGATTTAGTATTAAACAGATCCTTGACCTTTTTAGTAAA +TGCATATGTATATTTTAGATCTCCAGATTTCATAATATGATCGCATGCCTTAAATGTCAATGCTTCCATG +ATATAGTCTGGAACACTAATGGGTGACGAAAAAGATACAGCACCATATGCTACGTTGATAAATAGATCTG +AACCACTAAGTAGATAATGATTAATGTTAAGGAAGAGGAAATATTCAGTATATAGATATGCCTTAGCATC +ATATCTTGTACTAAACACGCTAAACAGTTTATTGATGTGATCAATTTCCAACAGAACAATTAGAGCGGCA +GGAATACCAACAAACATATTACCACATCCGTATTTTCTATGAATATCACATATCATATTAAAAAATCTTG +ATAGAAGAGCGAATATCTCGTCTGACTTAATGAGATGTAGTTCAGCAGCATAAGTCATAACTGTAAATAG +AACATACTTTCCTGTAGTGTTGATTCTAGACTCCACATCAACACCATTATTAAAAATAGTTTTATATACA +TCTTTAATCTGCTCTCCGTTAATCGTCGAACGTTCTAGTATACGGAAACACTTTGATTTCTTATCTGTAG +TTAATGACTTAGTGATATCACGAAGAATATTACGAATTACATTTCTTGTTTTTCTTGAGAGACCTGATTC +AGAACTCAACTCATCGTTCCATAGTTTTTCTACCTCAGTGGCGAAATCTTTGGAGTGTTTGGTACATTTT +TTAATAAGGTTCGTGACCTCCATTTATTATAAAAAATTTTTATTCAAAACTTAACTACAATCGGGTAATT +ATAAGATCGTAGATCTCCCATGTGGTGGAATACTACCATCTATCGCATGTTGATGGACAGTAGGTAATGG +CCATGGGAACAGTAATGTTTGCATATTTATCTTTCTTGCTAGTATTACTGTATATTGTCCCAATGTTTCA +ATGTGATGTTCTAACCTATCAACTGCCACTGTATCACAACAATAATGTCCGATGGAATTAAGATTATGAT +CCAATGTGTTTAATATATGATTATCAAGTCTTATACGATCCGCGTCTTTTTTGACAGGATCAGGCTCTTC +TACAGGAAGAAGTTTCGGCCTCTTATGATAGTCATGTCTGGGAAATGGTGGTCTAGGATGAGGATCAGGT +ATCGGAGTAGGTTTTGGATTATAATCATCATCATCATCATCATCATCATCATCATCATCATCATCTATGA +TATCATCATCTTCGATATTTATTTTGCTATCTTGATAATGTCCTATATCAGTTGCATTTTCAGCACTCGA +CTGAATATTAGTACATTCATTGTCTATTATTAACGTATTTCTAAACCCAAAATGTATATGTTGAACATCA +CTACTATAGTTGATGAGTCTTATAGCATGAATTCGCTTATCGTTATCGGGTTTATCTTCTGTCACCTTAA +CAATTCCTTTTTTATTAAACTCTGCATAATCATAACCATTTCTATTGTTTGTTCTAATATAAACGAGTAT +AGCATCATTGCTAAATTTTTCAATAGTATCAAAAACAGAATATCCTAAACCATATAATATATATTCAGGA +ACACTCAAACTAAATGTCCAGGATTCTCCTAAATACGTAAACTTTAATAGTGCTAAATCATTCAAAAATC +TACCGCTTATAGATAGATAGTACATGAATGCGTATAGTAGTCTACCTATCTCTTTATTATGAAAACCGAC +ATTACGATCATATATTTCGTGATATACATGTGACCCGTTTACGTTAAACCATAAATACATGGGTGATCCT +ATAAACATGAATTTATTTCTAATTCTCAGAGCCATAGTTAATTGACCGTGTAATATTTGTTTACATGCAT +ACTTGATACGATCATTAATAAGATTTTTATCATTGCTCGTTATTTCAGAATCGTATATATAAGGAGTACC +ATCATGATTCTTACCAGATATTATACAAAATACTATATATAAAATATATTGACCCACGTTAGTAATCATG +TAAATGTTTAATGTTTTAAATTTTGTATTTAATGATCCATCATCATATGCTAGCATGGTCTTGTGATATT +CATTCTTTAAAATATAATATTGTGTTAGCCATTGCATTGGAGCTCCTAATGGAGATTTTCTATTCTCGTC +CATTTTAGGATATGCTTTCATAAAGTCCCTAATAACTTCGTGAATAATGTTTCTATGTTTTCTACTGATG +CATGTATTTGCTTCGATTTTTTTATCCCATGTTTCATCTATCATAGATTTAAACGCAGTAATGCTCGCAA +CATTAACATCTTGAACCATTGGTACAATTCCGTTCCATAAATTTATAATGTTCGCCATTTATATAACTCA +TTTTTTGAATATACTTTTAATTGAACAAAAGAGTTAAGTTACTCATATGGATGCCGTCCAGTCTGTACAT +CAATCTTTTTAGCCAGAGATATCATAGCCGCTCTTAGAGTTTCAGCGTGATTTTCCAACCTAAATAGAAC +TTCATCGTTGCGTTTACAACACTTTTCTATTTGTTCAAACTTTGTTGTTATATTAGTAATCTTTTTTTCC +AAATTAGTTAGCCGTTGTTTGAGAGTTTCCTCATTATCGTCTCCATAGGCTTTAACAATTGCTTCGCGTT +TAGTCTCTGGATTTTTAGCAGCCTTTGTAGAGAAAAATTCAGTTGCTGGAATTGCAAGATCGTCATCTCC +GGGGAAAAGAGTTCCGTCCATTTAAAGTACAGATTTTAGAAACTGACACTCTGTGTTATTTATATTTGGC +GCAATACATGGATTATAAATATCGATGTTAATAACATCAGAAAATGTAAAGTCTATACATTGTCGCATCG +TGTTAAATTTTCTAATGGATCTAGTATTATTGGGTCCAACTTCTGCCTGAAATCCAAATATGGAAGCGGA +TACAAAACCGTTTCCTGGATAAACCACACATCTCCACTTTTGCTTTACATCAGAAATTGTGTCATTGACA +TCTTGAACTCTCCTATCTAATGCCGGTGTTCCACCTATAGATTTTGAATACTCGAATGCTGCATGAGTAG +CATTGAATTCCTTAATATTGCCATAATTTTCATATATTGAGTAACTCTGGATAAAAAGTAAACACACCGC +AGCCGTCGCTACTACAATAAAAAAAATTGATAGAGAGTTCATTTATAATCTATTAGAAGCTGATAAAATT +TTTTTACACGCGTCAGACAATGCTTTAATAAATAGTTCAACATCTACTTTTGTCATATCGAACCGATGGT +ATGATTCTAACCTAGAATTACATCCGAAAAAGTTGACTATGTTCATAGTCATTAAGTCATTAACGAACAA +CATTCCAGACTCTGGATTATAAGACGATACTGTTTCGTCACAATCACCCACCTTAATCATGTGATTATGA +ATATTGGCTATTAGAGTACCTTCTAAGAAATCTATAATATCTTTGAAACACGATTTAAAATCAAACCACG +AATATACTTCTACGAAGAAAGTTAGTTTACCCATAGGAGAGATAACTATAAATGGAGATCTAGATACAAA +ATCCGGATCTATGATAGTTTTAACATTATTATATTCTCTATTAAATACCTCCACATCTAAAAATGTTAAT +TTTGAAACTATGTCTTCGTTTATTACCGTACCTGAACTAAACGCTATAAGCTCTATTGTTTGAGAACTCT +TTAAACGATATTCTTGAAATACATGTAACAAAGTTTCCTTTAACTCGGTCGGTTTATCTACCATAGTTAC +AGAATTTGTATCCTTATCTATAATATAATAATCAAAATCGTATAAAGTTATATAATTATCGTGTTCAGAT +TGTGATCTTTTCAAATAGACTAAAAACCCCATTTCTCTAGTAAGTATCTTATGTATATGTTTGTAAAATA +TCTTCATGGTGGGAATATGCTCTACAGCAGTTAGCCATTCCTCATTGACAGCTGTAGATGTATTATACAA +AACTACTCCAATGTTTAACAAGGGCCATTTTACGAGATTATTAAATCCTTGTTTGATAAATGTAGCCAAT +GCGGGTTCGAGTTCAACGACGATTGAATTCTCTTCCCGTGGATGCTGCATGATGAACGACGGGATGTTGT +TGTTCTATTGATTTGGAATTCTTTTTCGACTTTTTGTTTATATTAAATATTTTAAAATTTATGGCTGATA +GTAATTCATGTACTACGGATAATGTAGACGTGTATTGCATATCGATATCTTTATTATTAGATAAATTTAT +CAATAAATGTGAGAAGTTTGCCTCGTTAAGGTCTTCCATTTAAATATTATATAAATATTTGTGTTTGTAT +TTTATTCGTCTTTTATGGGATAGTTTTTAACTAGTAAAGCTGTAATTACATACTTTGTCCGTAAAACATA +AATATAAATACCCGCTTTTATCAAACGTTCCAAAAAGTCGGCAGCTGACATTTTTAACATGACATCTATT +TTAAATACACTTAGGTTTTTAGAAAAAACATCATTTTATAATTGTAACGATTCAATAACTAAAGAAAAGA +TTAAGATTAAACATAAGGGAATGTTATTTGTATTTTATAAGCCAAAGCATTCTACCGTTGTTAAATACTT +GTCTGGAGGAGGTATATATCATGATGATTTGGTTGTATTGGGGAAGGTAACAATTAATGATCTAAAGATG +ATGCTATTTTACATGGATTTATCATATCATGGAGTGACAAGTAGTGGAGCAATTTACAAATTGGGATCGT +CTATCGATAGACTTTCTCTAAATAGGACTATTGTTACAAAAGTTAATAACAATTATAACAATTATAACAA +TTATAACAATTATAATTGTTATAATAATTATAATTGTTATAATTATGATGATACATTTTTTGACGATGAT +GATTGATCACTATTACACAATTTTGTTTTTGTACTTTCTAATATAGTGTTTAGGTTCTTTTTCATATGAG +AATATTGACTTACTAAAATATCTATGTTTAACTTTTGTTCTATAACGTCCTTATCGGCGGTATCGGTACA +TATACGTAATTCACCTTCACAAAATACGGAGTCTTCGATAATAATAGCCAATCGATTATTGGATCTAGCT +GTCTGTATCATATTCAACATGTTTAATATATCCTTTCGTTTCCCCTTTACAGGCATCGATCGTAGCATAT +TTTCCGCGTCTGAGATGGAAATGTTAAAACTGCAAAAATGCGTAATGTTAGCCCGTCCTAATATTGGTAC +GTGTCTATAAGTTTGGCATAGTAGAATAATAGACGTGTTTAAATGCCTTCCAAAGTTTAAGAATTCTATT +AGAGTATTACATTTTGATAGTTTATCACCTACATCATCAAAAATAAGTAAAAAGTGTGCTGATTTTTTAT +GATTTTGTGCGACAGCAATACATTTTTCTATGTTACTTTTAGTTCGTATCAGATTATATTCTAGAGCTTC +CTGACTACTAACGAAATTAATATGATTTGGCCAAATGTATCCATCATAATCTGGGTTATAAACGGGTGTA +AACAAGAATATATGTTTATATTTTTTAACTAGTGTAGAAAACAGAGATAGTAAATAGATAGTTTTTCCAG +ATCCAGATCCTCCTGTTAAAACCATTCTAAACGGCATTTTTAATAAATTTTCTCTTGAAAATTGTTTTTC +TTGAAAACAATTCATAATTATATTTACAGTTACTAAATTAATTTGATAATAAATCAAAATATGGAAAACT +AAGGTCGTTAGTAGGGAGGAGAACAACGAAGGCATATCGTGATATAAATAACATTTATTATCATGATGAC +ACCAGAAAACGACGAAGAGCAGACATCTGTGTTCTCCGCTACTGTTTACGGAGACAAAATTCAGGGAAAG +AATAAACGCAAACGCGTGATTGGTCTATGTATTAGAATATCTATGGTTATTTCACTACTATCTATGATTA +CCATGTCCGCGTTTCTCATAGTGCGCCTAAATCAATGCATGTCTGCTAACAAGGCTGCTATTACTGACTC +CGCTGTTGCCGTTGCTGCGGCATCATCTACTCATAGAAAGGTTGTGTCTAGCACTACACAATATGATCAC +AAAGAAAGCTGTAATGGTTTATATTACCAGGGTTCTTGTTATATATTACATTCAGACTATAAGTCATTCG +AGGATGCTAAAGCAAACTGCGCTGCGGAATCATCAACACTACCCAATAAATCCGATGTCTTGACTACCTG +GCTCATTGATTATGTTGAGGATACATGGGGATCTGATGGTAATCCAATTACAAAAACTACATCCGATTAT +CAAGATTCTGATGTATCACAAGAAGTTAGAAAGTATTTTTGTACATAAATAAATGAAATCGCTTAATAGA +CAAACTGTAAGTAGGTTTAGGAAGTTGTCGGTGCCGGCCGCTATAATGATGTTACTCTCAACCATTATTA +GCGGCATAGGAACATTTCTGCATTACAGAGAAGAACTGATGCCTAGTGCTTGCGCCAATGGATGGATACA +ATACGATAAACATTGTTATCTGGATACCAACATTAAAATGTCTACGGATAATGCAGTTTATCAGTGTCGC +AAATTACGAGCTAGATTGCCTAGACCTGATACTAGACATCTGAGAGTATTGTTTAGTATTTTTTATAAAG +ATTATTGGGTAAGTTTAAAAAAGACCAATGATAAATGGTTAGATATTAATAATGATAAAGATATAGATAT +TAGTAAATTAACAAATTTTAAGCAACTAAACAGCACGACGGATTCTGAGGCGTGTTATATATACAAGTCT +GGAAAACTGGTTAAAACAGTATGTAAAAGTACTCAATCTGTACTATGCGTTAAAAGATTCTACAAGTGAC +AACAAAAAATGAATTAATAGTAAGTCGTTAACGTACGCCGCCATGGACGCCGCGTTTGTTATTACTCCAA +TGGGTGTGTTGACTATAACAGATACATTGTATGATGATCTCGATATCTCAATCATGGACTTTATAGGACC +ATACATTATAGGTAACATAAAAATTGTCCAAATAGATGTACGGGATATAAAATATTCCGACATGCAAAAA +TGCTACTTTAGCTATAAGGGTAAAATAGTTCCTCAGGATTCTAATGATTTGGCTAGATTCAACATTTATA +GTATTTGTACAGCATACAGATCAAAAAATACCATCATCATAGCATGCGACTATGATATCATGTTAGATAT +AGAAGGTAAACATCAACCATTTTATCTATTCCCATCTATTGATGTTTTTAACGCTACAATCATAGAAGCG +TATAATCTGTATACAGCTGGAGATTATCATCTGATCATCAATCCTTCAGATAATCTGAAAATGAAATTGT +CGTTTAATTCTTCATTTTGTATATCAGACGGCAATGGATGGATTATAATTGATGGGAAATGTAATAGTAA +TTTTTTATCATAAAAGTTGTAAAGTAAATAATAAAACAATAAATATTGAACTAGTAGTATGTTGTATATT +GAGCAATCAGAGATGATGCTGGTACCTCTTATCACGGTGACCGTAGTTGCGGGAACAATATTAGTATGTT +ATATATTATATATTTGTAGGAAAAAGATACGTACTGTCTATAATGACAATAAAATTATCATGACAAAATT +AAAAAAGATAAAGAGTCCTAATTCCAGCAAATCTAGTAAATCAACTGATAGCGAATCAGACTGGGAGGAT +CACTGTAGTGCTATGGAACAAAACAATGACGTAGATAATATTTCTAGAAATGAGATATTGAACGATGATA +GCTTCGCTGGTAGTTTAATATGGGATAACGAATCCAATATCATGGCGCCTAGCACAGAACACATTTACGA +TAGTGTTGCTGGAAGCACGCTGCTAATAAATAATGATCGTAATGAACAGACTATTTATCAGAATACTACA +GTAGTAATTAATGATACAGAGACTGTTGAAATACTTAATGAAGATACCAAACAGATTCCTAGCTATTCTT +CCAATCCTTTCGTAAATTATAATAAAACCAGTATTTGTAGCAAGTCAAATCCGTTCATTGCAGAACTCAA +CAATAAATTTAGTGATAATAATCCGTTTAGGAGAGCACATAGTGACGATTATCTTAATAAGCAACAAGAT +CATGAATACGATGATATAGAATCATCGGTTGTATCATTGGTCTGATTAGTTTCCTTTTTATAAAATTGAA +GTAATATTTAGTATTAATTACCGCCGATGCATTATACAAATATGGAGATATTCCCTGTATTCGGCATTTC +TAAAATTAGCAATTTTATTGCTAATAATGACTGTAGATATTATATAGATGTAGAGCATCAAAAAATTATA +TCTGATGAGATCAATAGACAGATGGATGAAACGGTACTTCTTACCAACATCTTAAGCGTAGAAGTTGTAA +ATGACAATGAGATGTACCATCTTATTCCCCATAGACTATCGACTATTATACTCTGTATTAGTTCTGTTGG +AGGATGTGTTATCTCTATAGATAATGACGTCAATGACAAAAATATTCTAACATTTCCCATTGATCATGCT +GTAATCATATCCCCACTGAGTAAATGTGTCGTAGTTAGCAAGGGCCCTACAACCATACTGGTTGTTAAAG +CGGATATACCCAGCAAACGATTGGTAACATCGTTTACAAACGACATACTGTATGTAAACAATCTATCACT +GATTAATTATTTACCGTCGTCTGTATTCATTATTAGACGAGTCACCGACTATTTGGATAGACACATATGT +GATCAGATATTTGCTAATAATAAGTGGTATTCCATTATAACTATCGACGATAAGCAATATCCTATTCCAT +CAAATTGTATAGGTATGTCTTCTGCCAAGTACATAAATTCGAGCATCGAGCAAGATATTTTGATCCATGT +TTGTAACCTCGAGCATCCATTCGACTCAGTCTACAAAAAAATGCAGTCGTACAATTCTCTACCTATCAAG +GAACAAATATTGTATGGTAGAATTGATAATATAAATATGAGCATTAGTATTTCGGTGGATTAATAGATTT +CTCTAGTATGGGATCATTAATCATCTCTAAATACATCATAAAAAAGCTATTATCAAATACTGTACTGAAT +GGATTCATTCTTTTCTCTTTTTATGAAACTCTGTTGTATATCTACGGATAAAACTAGAAGCAAAAAATCT +GATAGGAAGAATAATGATTATATGGAGGAACACGATTATTATAAAATAACAATAGTTCCTGGTTCCTCTT +CCACGTCTACTAGCTCGTGGTATTATACACATGCCTAGTAATAGTCTCTTTGCGTTGACGGAAAGCAGAC +TAGAAATAACAGGCCAAAATGTTCAGACACCATAATAGTTCCCAACCCAGATAATAACAGAGTTCCATCA +ACACATTCCTTTAAACTCAATCCCAAACCCAAAACCGTTAAAATGTATCCAGCCAATTGATAGTAGATAA +TGAGGTGTACAGCACATGATAATTTACACAGTAACCAAAATGAAAACACTTTAGTAATTATAAGAAATAT +AGACGGTAATGTCATCATCAACAATCCAATAATATGCCTGAGAGTAAACATTGACGGATAAAACAAAAAT +GCCCCGCATAACTCTATCATGGCAATAACGCAACCAAACACTTGTAAAATTCCTAAATTAGTAGAAAATA +CAACTGATATCGATGTATAAGCGATTTCGAGGAATAATAAGAACAAAGTAATTCCCGTAAAGATAAACAT +CAACATTGTTTGGTAATCATTAAACCAATTAGTATGACGTTGAATTAATTTCACAGTATATTTTATTCCA +GTATTATCCCCGCATGTATACGTACCTGGTAAGATATCTTTATATTCCATAATCAATGAGACATCACTAT +CCGATAACGAATGAAGTCTAGCACTAGTATGCCATTTACTTAATATGGTCGTCTTGGAAGTTTTATTATA +AGTTAAAATATCATGATTGTCCAATTTCCATCTAATATACTTTGTCGGATTATCTATAATACACGGAATA +ATGATGGTATCATTACATGCTGTATATTCTATAGTCTTTGTAGATGTTATAACCACAAAAGTACAGAGGT +ATATCAACAATATTCTAACTCTTAACATTTTTATTTATTTAAAATGATACCTTTGTTATTTATTTTATTC +TTATTTTGCTAACGGTATCGAATGGCATAAGTTTGAAACGAGTGAAGAAATAATTTCTACTTACTTAATA +GATTATGTGGTAACGGGTGTTATTAATGGGGATGTATATACATTTTCAAATAATGAACTAAACAAAACTG +GGTTAACTAATAACAATAATTATATCACAACATCTATAAAAGTAGAGGATAAGGATACATTAGTAGTATG +CGGAACCAATAACGGAAATCCCAAATGTTGGAAAATAGACGGTTCATACTACCCAAAACATATAGGTAGA +GGATACGATCATCAAAATAGCAAAGTAACGATAATCAGTCACAATGAATGTGTACTATCCGACATAAACA +TATAAAAAGAAGGAATTAAACGATGGAGAAGATTTGACGGACCATGTGGTTATGATTAAACGAGTTAAGT +TTTTTAAGAAGCCTTAGAAGAGAGGCTATTGGGTATGAGAATCCGAAATATTAAACCAGACAACCCCATA +TAATTTTATAGCTAAGAATGCCGCGAAGAATGGAACTAATAAAAACGGAAATATTTGTAGCACAACGAAT +AACTCCCAAACTGCATTCATGTTACACTATATAACACTACTTCGGTTAGATGTTTTAGAAAAAATAAATA +TCACCGTACCGTTTTGTTGTATAAAAATAACAATTAACAATTATCAATTTTTTTCTTTAATATTTTACGT +GGTTGACCATTCTTGGTGGTAAAATAATCTCTTAGTGTTGGAATGGAATGCTGTTTAATGTTTCCACACT +CATCGTATATTTTGACGTATGCAGTCACATCGTTTACGCAATAGTCAGACTGTAGTTCTATCATGCTTCC +TACGTTAGAAGGAGGAACAGTTTTAAAGTCTCTTGGTTTTAATCTATTGTCATTAGTTTTCATGAAATCC +TTTGTTTTATCCACTTCACATTTTAAATAAATGTCCACTATACATTCTTCTGTTAATTTTACTAGATCAT +CATGAGTCATAGAATTCATAGGTTCCGTAGTCCATGGATCCAAACTAGCAAACTTCGCGTATACGGTATC +GCGATTAGTGTATACACCAACTGTATGAAAATTAAGAAAACAGTTTAATAAATCTACAGAAATATTTAAT +CCTCCGTTTGATACAGATGCGCCATATTTATGGATTTCGGATTCACACGTTGTTTGTCTAAGGGGTTCGT +CTAGTGTTGCTTCTACATAGACTTCGATTCCCATATATTCTTTATTGCCAGAATCACATACCGATTTATC +ATACGCTGGTTCACTTGTTTGAAAACTAAATGGTAGTAGATACATCAAAATAATAAATAATAAGTACATT +CTGCAATATTGTTATCGTAATTGGAAAATTGGTATTCAAGTGAGCTGGATTATGTGAGTATTGGATTGTA +TATTTTATTTTATATTTTATATTTTATATTTTATTTTATATTTTATATTTTATTTTATATTTTGTAGTAA +GAATAGAATGCTAATGTCAAGTTTATTCGAATAGATGTCTTATTAAAAAACATATATAATAAATAACAAT +GGCTGAATGGCATAAAATTATCGAGGATATCTCAAAAAATAATAAGTTCGAGGATGCCGCCATCGTTGAT +TACAAGACTACAAAGAATGTTCTAGCGGCTATTCCTAACAGAACATTTGCAAAGATTAATCCGGGTGAAG +TTATTCCCCTCATCACTAATCATAATATTCTAAAACCTCTTATTGGTCAGAAATTTTGTATTGTATATAC +TAACTCTCTAATGGATGAGAACACGTATGCTATGGAGTTGCTTACTGGGTACGCCCCTGTATCTCCGATC +GTTATAGCGAGAACTCATACCGCACTTATATTTTTGATGGGTAAGCCAACAACATCCAGACGTGATGTGT +ATAGAACATGTAGAGATCACGCTACCCGTGTACGTGCAACTGGTAATTAAAATAAAAAGTAATATTCATA +TGTAGTGTCAATTTTAAATGATGATGAAATGGATAATATCCATATTGACGATGTCAATAATGCCGGTATT +GACATACAGCTCATCGATTTTTAGATTTCATTCAGAGGATATTGAATTATGTTATGGGAATTTGTATTTT +GATAGGATCTATAATAATGTAGTAAATATAAAATATATTCCTGAGCATATTCCATATAGATATAATTTTA +TTAATCGTACGTTCTCCGTAGATGAACTAGATGATAATGTCTTTTTTACACATGGTTATTTTTTAAAACA +CAAATATGGTTGTTCACTTAATCCTAGTTTGATTGTCTCATTATCAGGAAACTTAAAATATAATGATATA +CAATGCTCAGTAAATGTATCGTGTCTCATTAAAAATTTGGCAACGAGTACATCTACTATATTAACATCTA +AACATAAGACTTATTCTCTATATCGGTCCATGTGTATTGCTATAATAGGATACGATTCTATTATATGGTA +TAAATATATAAATGACAGGTATAATGACATCTATGATTTTACTGCAATATGTATGCTAATAGCGTCTACA +TTGATAGTGATCATATACGTGTTTAAAAAAATAAAAATGAACTCTTAATTATGTTATACTATTAGAAATG +GATAAAATCAAAATTACGATTGATTCAAAAATTGGTAATGTTGTTACCATATCGTATAACTTGGAAAAGA +TAACTATTGATGTCACGCCAAAAAAGAAAAAAGAAAAGGATGTATTATTAGCGCAATCAGTTGCTGTCGA +AGAGGCAAAAGATGTCAAGGTGGAAGAAAAAAATATTATCGATATTGAAGATGACGATGATATGGATATA +GAAAACACGTAATACGATCTATAAAAATAAGTATTAAATACTTTTTATTTACGGTACTCTTGTAGTGGTG +ATACCACTAATCGATTATTTTTTTTAAAAAAATACTTATTCTGATTCTTCTAGCCATTTCCGTGTTCGTT +CGAATGCCACATCGACGTCAAAAATAGGGGAGTAGTTGAAATCTAGTTCTGCATTGTTGGTACGCACCTC +AAATGTAGTGTTGGATATCTTCAACGTATAGTTGTTGAGTATTGATGGTTTTCTAAATAGAATTCTCTTC +ATATCATTCTTGCACGCGTACATTTTTAGCATCCATCTTGGAATCCTAGATCCTTGTTCTATTCCCAATG +GTTTCATCAATAGAAGATTAAACATATCGTAAGAACACGATGGAGAGTAATCGTAGCAAAAGTAAGCATT +TCCTTTAATCGCAGATCCCGGATACTGGATATATTTTGCAGCCAACACGTGCATCCATGCAACATTTCCT +ACATATACCCGGCTATGCACAGCGTCATCATCGACTGTACGATACATAATGTTACCGTGTTGCTTACATT +GCTCGTAAAAGACTTTCGTCAATTTGTCTCCTTCTCCGTAAATTCCAGTGGGTCTTAGGCAACAAGTATA +CAATTTTGCGCCATTCATGATTACGGAATTATTGGCTTTCATAACCAGTTGCTCGGCCATACGTTTACTT +TTTGCGTATACATGTCCTGGTGATATATCATAAAGGGTATGCTCATGACCGATGAATGGATTACCGTGTT +TATTTGGTCCTATTGCTTCCATGCTACTAGTATAGATCAAATACTTGATTCCTAGGTCCACACAAGCTGC +CAATATAGTCTGTGTTCCATAATAGTTTACTTTCATGATTTCATTATCAGTGTATTTTCCAAATACATCC +ACTAGAGCAGCCGTATGAATAATCAGATTTACCCCATCTAGCGCTTCTCTCACCTTATCAAAGTCGTTTA +TATCACATTGTATATAGTTTATAACCTTAACTTTCGAGGTTATTGGTTGTGGATCTTCTACAATATCTAT +GACTCTTATTTCTTGAACATCATCTGCGCTAATTAAAAGTTTTACTATATACCTGCCTAGAAATCCGGCA +CCGCCAGTAACCGCGTACACGGCCATTGCTGCCACTCATAATATCAGACTACTTATTCTATTTTACTAAA +TAATGGCTGTTTGTATAATAGACCACGATAATATCAGAGGAGTTATTTACGTTGAACAAGTCCATGGAAA +AGATAAAGTTTTAGGATCAGTTATTGGATTAAAATCCGGAACGTATAGTTTGATAATTCATCGTTACGGA +GATATTAGTCGAGGATGTGATTCCATAGGCAGTCCAGAAATATTTATCGGTAACATCTTTGTAAACAGAT +ATGGTGTAGCATATGTTTATTTAGATACAGATGTAAATATATCTACAATTATTGGAAAGGCGTTATCTAT +TTCAAAAAATGATCAGAGATTAGCGTGTGGAGTTATTGGTATTTCGTACATAAATGAAAAGATAATACAT +TTTCTTACAATTAACGAGAATGGCGTTTGATATATCAGTTAATGCGTCTAAAACAATAAATGCATTAGTT +TACTTTTCTACTCAGCAAGATAAATTAGTCATACGTAATGAAGTTAATGATATACACTACACTGTCGAAT +TTGATAGGGACAAAGTAGTTGATACGTTTATTTCATATAATAGACATAATGACTCCATAGAGATAAGAGG +GGTGCTTCCAGAGGAAACTAATATTGGTCGCGTGGTTAATACGCCGGTTAGTATGACTTACTTGTATAAT +AAGTATAGTTTTAAACCGATTTTAGCAGAATATATAAGACACAGAAATACTATATCCGGCAACATTTATT +CGGCATTGATGACGCTAGATGATTTGGTTATTAAACAGTATGGAGACATTGATCTATTATTTAATGAGAA +ACTTAAAGTAGACTCCGATTCGGGACTATTTGACTTTGTCAACTTTGTAAAGGATATGATATGTTGTGAT +TCTAGAATAGTAGTAGCTCTATCTAGTCTAGTATCTAAACATTGGGAATTGACAAATAAAAAGTATAGGT +GTATGGCATTAGCCGAACATATAGCTGATAGTATTCCAATATCTGAGCTATCTAGACTACGATACAATCT +ATGTAAGTATCTACGCGGACACACTGATAGCATAGAGGATGAATTTGATCATTTTGAAGACGATGATTTG +TCTACATGTTCTGCCGTAACCGATAGGGAAACGGATGTATAATTTTTTTTATAGTATGAAGGATATGATG +GATATGATGATATGATGGATATGATGATATGATGGATATGATGGATATGATGGATATGATGGATATGATA +AAAAAATATAATTGTTGTATCCATTCCCATTCAAATCACCTTATATGATTCTGTAACACAATGAAGGAGT +CTCATAGATATATAGAGGTCAGATACTGGTTTGATAAACTTTTTATTCCACATGAGCATGTTTGACTTAT +GGTTAGACACACATACTTTAACAAATCACTGAAAATTGGAGTTAGGTATTCCTCTCAGAATCAGTTGCCG +TTCTGGAACATTAAATGTATTTTTTATGATATACTCCAACGCATTTATGTGGGTATACAACAAGTCATTA +ATAATGAGTATTTCCAAGAGTTTTAGTTGTCTAGTATTTAACAAGAGAAGAGATTTCAACAGACTGTTTA +TGAACTCGAATACCGCCTCATTGTCGCTTATATTGATGACATGACATCGAATTCCCAATATCAATCTCAT +CAGTGATGAGTAGCTCAATCTTGTTATCGGGATCCAATTTCTAAAGATGTCATTAAACCCTCGATCGTGA +ATGGATTTATCATCATCGTTTTTATGTTGGACATGAGCTTAGTCCGTTTGTCCACATCTATATACGATGA +TTTCTGAATTATTTCATATATCTCTCGTTAACTCCAGGAACTTGTCAGGGATCTAACTTTAATATGTTCT +CGTCTAAGAGATGAAAATCTTTGGATGGTTGCATGTGACTTTTCTCTAAAGGATGATGTTACCCGATCCT +CTCTTAAATGACTCCATCTTATCCTTGGACAAGATGGACAGTCTATTTTCCTTAGATGGTTTAATATTTT +TTACCCATGATCTATAAAGGTAGACAGACCTAATCGTCTCGGATGACCATATATTATTTTCAGTTTTATT +ATACGCATAAATTGTAAAAAATATGTTAGGTTTACGAAAATGTCTCGTGGGGCATTAATCGTTTTTGAAG +GATTGGACAAATCTGGAAAAACAACACAATGTATGAACATCATGGAATCTATACCGGCAAACACGATAAA +ATATCTTAACTTTCCTCAGCGATCCACAGTCACTGGAAAGATGATAGATGACTATCTAACTCGTAAAAAA +ACCTATAATGATCATATAGTTAATCTATTATTTTGTGCAAATAGATGGGAGTTTGCATCTTTTATACAAG +AACAACTAGAACAGGGAATTACTTTAATAGTTGACAGATACGCGTTCTCTGGAGTAGCGTATGCCACCGC +TAAAGGCGCGTCAATGACTCTCAGTAAGAGTTATGAATCTGGATTGCCTAAACCCGACTTAGTTATATTC +TTGGAATCTGGTAGCAAAGAAATTAATAGAAACATCGGCGAGGAAATTTATGAAGATGTTGAATTCCAAC +AAAAGGTATTACAAGAATATAAAAAAATGATTGAAGAAGGAGATATTCATTGGCAAATTATTTCTTCTGA +ATTCGAGGAAGATGTAAAGAAGGAGTTGATTAAGAATATAGTTATAGAGGCTATACACACGGTTACTGGA +CCAGTGGGGCAACTGTGGATGTAATAAAATGAAATTACATTTTTATAAATAGATGTTAGTACAGTGTTAT +AAATGGATGAAGCATATTACTCTGGCAACTTGGAATCAGTACTCGGGGATACGTGTCCGATATGCATACC +GAACTCGCATCAATATCTCAATTAGTTATTGCCAAGATAGAAACTATAGATAATGATTATTAAACAAGGA +CATTGTAAATTTTATCATGTGTAGATCAAACTTGGATAATCCATTTATCTCTTTCCTAGATACTGCATAT +ACTATCATAGATCAAGAGATCTATCAGAACGAGTTGATTAATTCATTAGACGATAATGAAATTATCGATT +GTATAGTTAACAAGTTTATGAGCTTTTATAAGGATAACCTAGAAAATATGGTAGATGCTATCATTACTCT +AAAATATTATAATTAATAATCCAGATTTTAAAACTACGTATGTGGAAGTACTCGGTTCCAGAATAGCTGA +TATAGATATTAAACAAGTGATACGTAAGAATATAATACAATTGTCTAATGATCCGCGAACGATATTTGTG +AAAATATTAAAAAAAAATACTTTTTTTATTAAATGACGTCTCTTCGCGAATTTAGAAAATTATGCTGTGA +TATATATCACGCATCAGGATATAAAGAAAAATCTAAATTAATTAGAGACTTTATAACAGATAGAGATGAT +ACCGATACATATTTGATCATTAAGCTATTGCTTCCCGGATTAGACGATAGAATGTATAACATGAACGATA +AACAAATTATAAAATTATATAGTATAATATTTAAACAATCTCAGGAAGATATGCTACAAGATTTAGGATA +CGGATATATAGGAGACACTATTAGGACTTTCTTCAAAGAGAACACGGAAATCCGTCCACGAGATAAAAGC +ATTTTAACTTTAGAAGAAGTGGATAGTTTTTTAACTACGTTATCATCAGTAACTAAAGAATCACATCAAA +TAAAATTATTGACTGATATAGCATCTGTTTGTACATGTAATGATTTAAAATGTGTAGTCATGCTTATTGA +TAAAGATCTAAAAATTAAAGCGGGTCCTCGGTACGTGCTTAACGCTATTAGTCCTCATGCCTATGATGTT +TTTAGAAAATCTAATAACTTGAAAGAGATAATAGAAAATGCAGCTAAACAAAATCTAGACTCTATATCTA +TTTCTGTTATGACTCCAATTAATCCCATGTTAGCGGAATCATGTGATTCTGTCAATAAGGCGTTTAAAAA +ATTTCCATCAGGAATGTTTGCGGAAGTCAAATACGATGGTGAAAGAGTACAAGTTCATAAAAAAAATAAC +GAGTTTGCATTCTTTAGTAGAAACATGAAACCAGTACTCTCTCATAAAGTGGATTATCTCAAAGAATACA +TACCGAAAGCATTTAAAAAAGCTACGTCTATCGTATTGGATTCTGAAATTGTTCTTGTAGACGAACATAA +TGTACCGCTACCGTTTGGAAGTTTAGGTATACACAAAAAGAAAGAATATAAAAACTCTAACATGTGTTTG +TTCGTATTTGACTGTTTATACTTTGATGGATTCGATATGACAGACATTCCATTGTATGAACGAAGATCTT +TTCTCAAAGATGTTATGGTCGAAATACCCAATAGAATAGTATTCTCAGAGTTGACGAATATTAGTAACGA +GTCTCAGTTAACTGATGTATTAGATGATGCACTAACGAGAAAATTAGAAGGATTGGTCTTAAAAGATATT +AATGGCGTATACGAACCGGGAAAGAGAAGATGGTTAAAAATAAAGCGAGACTATTTGAACGAGGGTTCCA +TGGCAGATTCTGCCGATTTAGTAGTACTAGGTGCCTACTATGGTAAAGGAGGAAAGGGTGGTATCATGGC +AGTCTTTCTAATGGGTTGTTACGACGATGAATCCGGTAAATGGAAGACGGTAACTAAATGTTCCGGTCAC +GATGATAATACGTTAAGGGTTTTGCAAGACCAATTAACGATGGTTAAAATTAACAAGGATCCCAAAAAAA +TTCCAGAGTGGTTGGTAGTTAATAAAATCTATATTCCCGATTTTGTAGTAGATGATCCGAAACAATCTCA +GATATGGGAAATTTCAGGAGCAGAGTTTACATCTTCCAAGTCACATACAGCGAATGGAATATCGATTAGA +TTTCCTAGATTTACTAGGATTAGAGAAGATAAAACGTGGAAAGAATCTACTCATCTAAACGATTTAGTAA +ACTTGACTAAATCTCTTAATAGTTACATATAAACTGAAAAATAAAATAACACTATTTTAGTTGGTAGTCG +CCATGGATGGTGTTATCGTATACTGTCTAAATGCGTTAGTAAAACATGGCGAGGAAATAAATCATATAAA +AAATGATTTCATGATTAAACCATGTTGTGAAAGAGTTTGTGAAAAAGTCAAGAACGTTCACATCGGCGGA +CAATCTAAAAACAATACAGTGATTGCAGATTTGCCATATCTGGATAATGCTGTATCAGATGTATGCAAAT +CAATATATAAAAAGAATGTATCAAGAATATCCAGATTTGCTAATTTGATAAAAATAGATGACGATGACAA +GACTCCTACCGGCGTATATAATTATTTTAAACCTAAAGATGCTATTCCTGTTATTATATCCATAGGAAAG +GATAAAGATGTCTGTGAACTATTAATCTCATCTGATAAAGCGTGTGCGTGTATAAAGTTAAATTTATATA +AAGTAGCCATTCTTCCCATGGATGTTTCCTTTTTTACCAAAGGAAATGCATCATTGATTATTCTCCTGTT +TGATTTCTCTATCGATGCGGCACCTCTCTTAAGAAGTGTAACCGATAATAATGTTATTATATCTAGACAC +CAGCGCCTACATGACGAGCTTCCGAGTTCCAATTGGTTCAAGTTTTACATAAGTATAAAGTCCGACTATT +GTTCTATATTATATATGGTTGTTGATGGATCTATGATGTATGCGATAGCTGATAATAGAACTCACGCAAT +TATTAGCAAAAATATATTAGACAATACTACGATTAACGATGAGTGTAGATGCTGTTATTCTGAACCACAG +ATTAGGATTCTTGATAGAGATGAGATGCTCAATGGATCATCGTGTTATATGAACAGACATTGTATTATGA +TGAATTTACCTGATGTAGGCGAATTTGGATCTAGTATGTTGGGGAAATATGAACCTGACATGATTAAGAT +TGCTCTTTCGGTGGCTGGTAATTTAATAAGAAATCGAGACTACATTCCCGGGAGACGAGGCTATAGCTAC +TACGTTTACGGTATAGCCTCTAGATAATTTTTTTTAAGCACGAAATAAAAACATAATTTTAAACAATCTA +TTTCATACTATTTTGTGTGCTCACCATGAACATAAAGATAGATATATTAGTATTTCTGGTGATAAATTTA +CGGCGACTGCTAGGAGGGAAAATGAAGAAAGAAAAAATATCTACCTCTCCAAAAAGAAAAACTACTGATG +TTATCAAACCTGATTATCTTGAGTACAATGACTTGTTAGATAGAGATGAGATGTCTACTATTCTAGAGGA +ATATTAGGCCTTAGAATAAAATATGGACGACTCTTAACGAAATTAGAAAATTCGATAATGATGTTGAAGA +ACAATTCGGTACTATAGAAGAACTCAAGCAGAAGCTTAGATTAAATTCTGAAGAGGGAGCAGATAATTTT +ATAGATTATATAAAGGTACAAAAACAGGATATCATCAAACTTACTGTATACGATTGCATATATCTATGAT +AGGATTGTGTGCGTGCGTGGTAGATGTTTGGAGAAATGAGAAACTGTTTTCTAGATGGAAATATTGGTTA +CAAGCGATTAAACTGTTTATTGATGATCACATGCTTGATAAGATAAAATCTATTGTAGAATAGACTAGTG +TATGTGGAAATGTCATAGAAAGTTAAAAGTTAATGAGAGCAAAAATATATAAGGTTGTATTCCATATTTG +TTATTTTTTTCTGTAATAGTTAGAAAATACATTCGATGGTCTATCTACCAGATTATTATGTGTTATAAGG +TACTTTTCTCATAATAAACTAGAGTATGAGTAAGATAGTGTTTTTCAAAAACATATAAATCTAAAATTGA +TGGATGAGATATACAGCTATTAATTTCGAAAATATATTTTAATCTGATAACTTTAAACATGGATTTTTGA +TGGTGGTTTAAGTTTAAAAAAGATTTTGTTATTGTAGTATGATAATATCAAAAAGATGGATATAAAGAAT +TTACTGACTACATGTACTATTTTACATTACTACATTGGCTACGGCATATATACCTATTTCGTCACTTCCA +CACGCTCCGGTAAACGGGTGTCATGTGACGAGGGAGAATCTTGATAAGAGGCATAATCAATGTTGTAATC +CGATGTCCACCTGGAGAATTTGCCAAGGTCAGATGTAGAGTTGGTAGTGATAACACAAAATGTGAACACT +GCCCACCTCATACATATACCGCAATCCCCAATTATTCTAATAGATGTCATCAATGTAGAAAATGCCCAAC +AGGATCATTTGATAAGGTAAAGTGTACCGGAACACAGAACAAATGTTCGTGTCATCCTGGTTGGTATACG +CTACTGATTCTTCACAGACTGAAGATTGTCGAGATTTGTGTACCAAAAAAGGAGATGTCCATGCGGATAC +TTTGGTGGAATAGATGAAGGAAATCCTATTTGTAAATCGTGTTGTGTTGGTGAATATTGCGACTACCTAC +GTAATTATAGACTTGATCCATTTCCTCCATGCAAACTATCTATCTAAATGTAATTAATTATGATTTTGAT +GATAATGTTACCATACATTATATCACTACTTGGTTAGTGTGTATTATTTAGTATGGAAGACCTATTAATA +ATTACTTATCTTTTGACGATCTTGTTATAATTATAATATAAAAATACTTATGACATAGTAACTCATAATT +GCTGACGCGATAAATTCGTAATAATCTGTTTTGTTCAAATTTTTATAAGGAATCTACAGGCATAAAAATA +AAAATATAATCTATAATATACTCTTACAACGCCATCATGAATAGCAGTGAATTAATTGCTGTTATTATGG +ATTTAGAAATAGTGGACGATTTTGTGATATTAATATAGTTATTAATGATGAAAGGATAAACGCGCATAGA +CTCATCCTATCTGGAGCCTCCGAATATTTTTTCCATTCTGTTTTCCAATAATTTTATCGATTCTAATGAA +TACGAAGTTAATCTAAGTCATTTAGATTATCAAAGTGTTAACTATTTGATCGATTACATTTATGGGATAC +CTTTGAGCCTAACTAACAATAACGTGAAATATATTCTTTCAACCGCTGATTTTTTTACAAATTGGATCTG +TCATTACTGAGTGCGAAAAATACATACTTAAAAATCTTTGTTTTAGAAACTGTATCGATTTCTACATATA +CGCTGATAAATATAATAACAAGAAAATAGAATTAGCATCGTTTAACACAATATTACGAAATATTTTGAGA +CTCATCAACAATGAAAACTTTAAATACTTAACAGAGGAATCAATGATAAAAATTTTAAGCGATGATATGT +TATATATAAAAAATGAGGATTTCACCCCACTGATTCTCATTAAATGGTTAGAGAGTACACCAACCATGTA +CCGTCGAGTTACTTAGATGCCTCAGAATATCATTTCTTTCCCCACAAGTTATAAAATCACTTTATAGTCA +TCGACTGGTTAGTTCAATCTACGAATGTATAACATTCTTAAACAATATAGCATTCTTGGATAAATCATTT +CCTAGATACCATATCATCGAGTTGATATCTATCGGTATAAGTAATTCACATGATAAGATTTCCATAAACT +GCTACAATCATAAAAAAATTCATGGGAAATGATATCTTCACGTAGATATAGGTGTAGTTTCGCAGTGACC +GTCCTGGATAATATTATCTATATGATGGGTGGATATGATCAGTCCCTGTATAGAAGTTCAAAGGTTATAG +CGTACAATACATGTACTAATTCTTGGATATATGATATACCAGAGCTAAAAATATCATCGTTCTAATTGCG +GAGGAGTTGCCAATGACGAATACATTTATTGTATAGGCGGTATACGCGATCAGGAGTCATCGTTGATATC +TAGTATCGATAGATGGAAGCCATCAAAACCATATTGGCAGAAGTATGCTAAAATGTGCGAACCAAAATGT +GATATGGGGTTGCGATTTTAAACGGATTAATATATGTCATAGGTGGAGTCGTTAAAGGTGACACACATAT +ACCAACGCACTAGAGAGTTTATCAGAAGATGGATGGATGAATCATCAACGTCTTCCAATAAAAATGTCCA +ATATGTCGACGATTGTTCATGCTGGAAAGATTTATATATCTAGAGGTTACAACAATAGTAGTGTAGTTAA +TGTAATATCGAATCTAGTCCTTAGCTATAATCCGATATATGATGAATGGACCAAATTATCATCATTAAAT +ATTCCTAGAATTAATCCTGCTCTATGGTCAGTGTATAATAAATTATATGTAGGAGGAGTAATATCTGATG +ATGTTCAAACTAATACATCTGAAACATACGATAAAGAAAAAGATTGTTGGACATTGGATAATGGTCACTT +GTTACCACATAATTATATAATGTATAAATGCGAACCGTTTAAACATAGATATCCATTGGAAAAAACACAG +TACACGAATGATTTTCTAAAGTATTTGGAAAGTTTTATAGGTAGTTGATAGAACAAAATACATAATTTTG +TAAAAATAAATCACTTTTTATACTAATATGACACAATTACCAATACTTTTGTTACTAATATCATTAGTAT +ACGCTACACCTTCTCCTCAGACATCTAAAAAAATAGGTGATGATGCAACTATATCATGTAGTCGAAATAA +TACAAATTACTACGTTGTTATGAGTGCTTGGTATAAGGAGCCCAATTCCATTATTCTCTTAGCTGCCAAA +AGCGACGTCTTGTATTTTGATAATTATACCAAGGATAAAATATCTTACGACTCTCCATACGATGATCTAG +TTACAACTATCACAATTAAATCATTGACTGCTGGAGATGCCGGTACTTATATATGTGCATTCTTTATGAC +ATCGACTACAAATGATACTGATAAAGTAGATTATGAAGAATACTCCATAGAGTTGATTGTAAATACAGAT +AGTGAATCGACTATAGACATAATACTATCTGGATCTACACCAGAAACTATTTCTGAGAAACCAGAGGATA +TAGATAATTCTAATTGCTCGTCTGTATTCGAAATCACGACTCCGGAACCAATTACTGATAATGTAGACGA +CCATACAGACACCGTCACATACACTAGTGATAGCATTAATACAGTAAATGCATCATCTGGAGAATCCACA +ACAGACGAGATTCCGGAACCAATTACTGATAAAGAAGAAGATCATACAGTAACAGACACTGTCTCATACA +CTACAGTAAGTACATCATCTGGAATTGTCACTACTAAATCAACCACCGATGATGCGGATCTTTATGATAC +ATACAATGATAATGATACAGTACCGCCAACTACTGTAGGTGGTAGTACAACCTCTATTAGCAATTATAAA +ACCAAGGACTTCGTAGAAATATTTGGTATTACCACATTAATTATATTGTCAGCAGTGGCGATTTTCTGTA +TTACGTATTATATATGTAATAAACACCCACGTAAATACAAAACAGAGAACAAAGTCTAGATTTTTGACTT +ACATAAATATCTGGGATAATAAAATCTATCATATTGAGAGGACCATCTGGTTCAGGAAAGACAGCCATAA +CCAAAAGACTGTTAAAAGACTATGGGAATATATTTGGATTTGTGGTGTCCCATACCACTAGATTTCCTCG +TCCTATGGAACGAGAAGGTGTTGATTACCTTACGTTAACAGAGAGGCCATCTGGAAGGGAATAGCCGCCG +GAAACTTTCTAGAACATACTGAGTTTTTAGGAAATATTTACGGAACTTCTAAAACAGCTGTAAATACAGC +GGTTATTAATAATCGTATTTGCGCGATGGATTTAAACATCAACGGTGTTAGAAGTCTTAAAAATACTTAC +CTAATGCATTACTTGGGTATATAAGACCTACCTCTCTTAAAATGGTTGAGACCAATCTTCGTCGTAGAAA +CACTGAAGCGGACGACGAATCTCATCGTCGCGTGATGTTGGCAAAAAACGGATATGGATGAGGTCAACGA +AGCAGGTCTATTCGACACTATTATTATTGAAGATGATGTGAATTTAGCATATAGTAAGTGTTAATTCAGA +TACTACAGGACCGTATTAGAATGTATTTTAACACTAATTAGAGACTTAAGATTTGACTTAAAACTTGATA +ATTAATAATATAACTCGTTTTTATATGTGGCTATTTCAACGTCTAATGTATTAGTTAAATATTAAAACTT +ACCACGTAAAACTTAAAATTTAAAATGGTATTTCATTGACAGATCATACATTATGAAGTTTCAAGGACTT +GTGTTAATTGACAATTGCAAAAATCAATGGGTCGTTGGACCATTAATAGGAAAAGGTGGATTCGGTAGTA +TTTATACTACTAATGACAATAATTATGTAGTAAAAATAGAGCCCAAAGCTAACGGATCATTATTTACCGA +ACAGGCATTTTATACTAGAGTACTTAAACCATCCGTTATCGAAGAATGGAAAAAATCTCACAATATAAAG +CACGTAGGTCTTATCACATGCAAGGCATTTGGTTTATACAAATCCATTAATGTGGAATATCGATTCTTGG +TAATAAATAGATTAGGTGCAGATCTAGATGCGGTGATCAGAGCCAATAATAATAGACTACCAGAAAGGTC +GGTGATGTTGATCGGAATCGAAATCTTAAATACCATACAATTTATGCACGAGCAAGGATATTCTCACGGA +GATATTAAAGCGAGTAATATAGTCTTGGATCAAATAGATAAGAATAAATTATATCTAGTGGATTACGGAT +TGGTTTCTAAATTCATGTCTAACGGCGAACATGTTCCATTTATAAGAAATCCAAATAAAATGGATAACGG +TACTCTAGAATTTACACCTATAGATTCGCATAAAGGATACGTTGTATCTAGACGTGGTGATCTAGAAACA +CTTGGATATTGTATGATTAGATGGTTGGGAGGTATCTTGCCATGGACTAAGATATCTGAAACAAAGAATT +CTGCATTAGTAAGTGCCGCAAAACAGAAATATGTTAACAATACTGCGACTTTGTTAATGACCAGTTTGCA +ATATGCACCTAGAGAATTGCTGCAATATATTACCATGGTAAACTCTTTGACATATTTTGAGGAACCCAAT +TACGACGAGTTTCGTCGAGTATTAATGAATGGAGTTATGAAAAATTTTTGTTGATAAAAAAATTAAAAAA +ATAACTTAGTTATTATCACTCTCGTGAGTACAATAGAAACATGGCGATGTTTTACGCACACGCTTTCGGT +GGGTACGACGAGAACCTTCATGCATTTCCTGGAATATCATCGACGGTTGCCAATGATGTCAGGAAATATT +CTGTTGTGTCAGTTTATAATAAAAAGTATAACATTGTAAAAAACAAATATATGTGGTGTAACAGTCAAGT +GAACAAGAGATATATTGGAGCACTACTGCCTATGTTTGAATGCAATGAATATCTACAAATTGGAGATCCA +ATCCATGATCTAGAAGGAAATCAAATCTCTATTGTCACATATCGCCACAAAAACTACTATGCTCTAAGTG +GAATTGGGTACGAGAGTCTAGACTTGTGTTTGGAAGGAGTAGGGATTCATCATCACGTACTTGAAACAGG +AAACGCGGTATATGGAAAAGTTCAACATGAGTATTCTACTATCAAAGAGAAGGCCAAAGAAATGAATGCA +CTCAAACCAGGACCTATCATCGATTACCACGTCTGGATAGGAGATTGTGTCTGCCAAGTTACTACTGTAG +ACGTGCATGGAAAGGAAATTATGAGAATGAGATTCAAAAGGGGTGCGGTGCTTCCGATTCCAAATCTGGT +AAAAGTTAAAGTTGGGGAGGAAAATGATACAATAAATCTTTCCACTTCCATATCAGCTCTCCTAAATTCC +GGTGGCGGCACCATCGAGGTAACATCTAAGGAAGAACGTGTAGATTATGTACTCATGAAACGTTTGGAAT +CTATACATCATCTGTGGTCTGTAGTGTATGATCATCTTAATGTTGTGAATGGCGAAGAACGATGTTATGT +ACATATGCATTCATCTCATCAAAGTCCTATGCTGAGTACTGTAAAAACAAATTTGTACATGAAGACTATG +GGAGCATGTCTTCAAATGGACTCCATGGAAGCTCTAGAGTATCTTAGTGAACTGAAGGAATCAGGTGGGC +GGAGTCCCAGACCAGAATTGCAGAAATTTGAATATCCAGATGGAGTGAAAGACACTGAATCAATTGAGAG +ATTGGCAGAGGAGTTCTTCAATAGATCAGAACTTCAGGCCGGTGAATCAGTCAAATTTGGTAATTCTATT +AATGTTAAACATACATCTGTTTCAGCTAAGCAACTAAGAACACGTATACGACAGCAGCTTCCTTCTATAC +TCTCATCTTTTGCCAACACAAAGGGTGGATATTTGTTCATTGGAGTTGATAATAATACACACAAAGTAAT +TGGATTCACGGTGGGTCATGACTACCTCAAACTGGTAGAGAGTGATATAGAAAAGTATATCCAAAAACTT +CCTGTTGTGCATTTCTGCAAGAAAAAAGAGGACATCAAGTACGCATGTAGATTCATCAAGGTGTATAAAC +CTGGTGATGAGACTACCTCGACATATGTGTGCGCAATCAAAGTGGAAAGATGCTGCTGTGCTGTGTTTGC +GGATTGGCCAGAATCATGGTACATGGATACTAGTGGTAGTATGAAGAAGTATTCTCCAGATGAATGGGTG +TCACATATAAAATTTTAATTAGGGTAAGGTAAAACTATATATAATAACTAACAATTTGTGTATCATATAG +ACAATTAATTAGGTAACTGTTATCTCTTTTTAACTAACTAACTAACTAACTAACTCTTATATACTATTAA +TAATACATCTATTAATCATTGATTAGCTTATTGCTTTAATTGTTTTTGTAAACTAACACTGTTCATTGAA +AAGGGATAACATGTTACAGAATATAAATTATATATGGATTTTTTTAAAAAGGAAATACTTGACTGGAGTA +TATATTTATTTCTTCATTACATAACACGTCTGTGTTCTAATTCTTCCAATTCTTCCACATCTCATATAAT +ACAGGAATATAATCTTGTTCGAAAATATGAGAAAGTGGATAAAACAATAGTTGATTTTTTATCTAGGTGG +CCAAATTTATTCCATATTTTAGAATATGGGGAAAATATTCTACATATTTATTTTATAGATGCTGCTAATA +CGAATATTATGATTTTTTTTCTAGATAGAGTATTAAATATTAATAAGAACCGTGGGTCATTTATACATAA +TCTCGGGTTATCATCCATTAATATAAAAGAATATGTATATCAATTAGTTAATAATGATCATCTAGATAAT +AGTATAAGACTAATGCTTGAAAATGGACGTAGAACAAGACATTTTTTGTCTTATATATTGGATACAGTTA +ATATCTATATAAGTATTTTAATAAATCATAGATTTTATATAGATGCCGAAGACAGTTACGGTTGTACATT +ATTACATAGATGTATATATAACTATAAGAAATCAGAATCAGAATCATATAATGAATTAATTAAGATATTG +TTAAATAATGGATCAGATGTAGATAAAAAAGATACGTACGGAAACACACCGTTTATCCTATTATGTAAAC +ACGATATCGACAACGCGGAATTGTTTGAGATATGTTTAGAGAATGCTAATATAGACTCTGTAGACTTTAA +TGGATATACACCTCTTCATTATGTCTCATGTCGTAATAAATATGATTTTGTAAAGTTATTAATTTCTAAA +GGAGCAAATGTTAATGCACGTAATAGATTCGGAACTACTCCATTTTATTGTGGAATTATACACGGTATCT +CGCTTATAAAACTATATTTGGAATCAGACACAGAGTTAGAAATAGATAATGAACATATAGTTCGTCATTT +AATAATTTTTGATGCTGTTGAATCTTTAGATTATCTATTGTCCAGAGGAGTTATTGATATTAACTATCGT +ACTATATACAACGAAACATCTATTTACGACGCTGTCAGTTATAATGCGTATAATACGTTAGTCTATCTAT +TAAACAGAAATGGTGATTTTGAGACGATTACTACTAGTGGATGTACATGTATTTCGGAAGCAGTCGCGAA +CAACAACAAAATAATAATGGATATACTATTGTCTAAACGACCATCTTTGAAAATTATGATACCATCTATG +ATAGCAATTACTAAACATAAACAACATAATGCAGATTTATTGAAAATGTGTATAAAATATACTGCGTGTA +TGACCGATTATGATACTCTTATAGATGTACAATCGCTACATCAATATAAATGGTATATTTTAAAATGTTT +TGATGAAATAGATATCATGAAGAGATGTTATATAAAAAATAAAACTGTATTCCAATTAGTTTTTTGTATC +AAAGACATTAATACTTTAATGAGATACGGTAGACATCCTTCTTTCGTGAAATGTAATATTCTTGACGTAT +ACGGAAGTTGTGTACGTAATATCATAGCATCTATTAGATATCGTCAGAGATTAATTAGTCTATTATCCAA +GAAGCTGGATGCTGGAGATAAATGGTCGTGTTTTCCTAACGAAATAAAATATAAAATATTGGAAAACTTT +AACGATAACGAACTGACCACATATCTGAAAATCTTATAAACACTATTAAAATATAAAATCTAAGTAGGAT +AAAATCACACTACATCATTGTTTCCTTTTAGTGCTCGACAGTGTATACTATTTTTAACACTCATAAATAA +AAATGAAAACGATTTCCGTTGTTACGTTGTTATGCGTACTACCTGCTGTTGTTTATTCAACATGTACTGT +ACCCACTATGAATAACGCTAAATTAACGTCTACCGAAACATCGTTTAATGATAAACAGAAAGTTACGTTT +ACATGTGATTCAGGATATCATTCTTTGGATCCAAATGCTGTCTGTGAAACAGATAAATGGAAATACGAAA +ATCCATGCAAGAAAATGTGCACAGTTTCTGATTATGTCTCTGAACTATATGATAAGCCATTATACGAAGT +GAATTCCACCATGACACTAAGTTGCAACGGTGAAACAAAATATTTTCGTTGTGAAGAAAAAAATGGAAAT +ACTTCTTGGAATGATACTGTCACGTGTCCTAATGCGGAATGTCAACCTCTTCAATTAGAACACGGATCGT +GTCAACCAGTTAAAGAAAAATACTCATTTGGGGAATATATGACTATCAACTGTGATGTTGGATATGAGGT +TATTGGTGTTTCGTATATAAGTTGTACGGCTAATTCTTGGAATGTTATTCCATCATGTCAACAAAAATGT +GATATACCGTCCCTATCTAATGGATTAATTTCCGGATCTACATTTTCTATCGGTGGCGTTATACATCTTA +GTTGTAAAAGTGGTTTTACACTAACGGGGTCTCCATCATCCACATGTATCGACGGTAAATGGAATCCCAT +ACTCCCAACATGTGTACGATCTAACGAAGAATTTGATCCAGTGGATGATGGTCCCGACGATGAGACAGAT +CTGAGCAAACTCTCGAAAGACGTTGTACAATATGAACAAGAAATAGAATCGTTAGAAGCAACTTATCATA +TAATCATAATGGCGTTGACAATTATGGGTGTCATATTTCTAATCTCCATTATAGTATTAGTTTGTTCCTG +TGACAAAAATAATGACCAATATAAGTTCCATAAATTGCTACCGTGAATATAAATCCGTTAAAATAATTAA +TAATTAATAATTAATAACGAACAAGTATCAAAAGATTAAAGAATTAGCTAGAATCAATTAGATGTCTTCT +TCAGTGGATGTTGATATCTACGATGCCGTTAGAGCATTTTTACTCAGGCACTATTATGACAAGAGATTTA +TTGTGTATGGAAGAAGTAACACCATATTACATAATATATACAGGCTATTTACAAGATGCACCGTTATACC +GTTCGATGATATAGTACGTACTATGCCAAATGAATCACGTGTTAAACAATGGGTGATGGATACACTTAAT +GGTATAATGATGAATGAATTCGATACTGTATGTGTGGGTACCGGACTACGATTCATGGAAATGTTTTTCG +ATTACAATAAAAATAATCCCAAAAATAGCATCAACAATCAAATAATGTATGATATAATTAATAGCGTAGC +CATAATTCTAGCTAATGAGAGATATAGAAGCGCGTTTAACGACGATAGAATATACATCCGTAGAACTATG +ATGGACAAATTGTACGAATACGCATCTCTAACTACTATTGGTACGATCACTGGAGGTGTTTGTTATTTTA +TCTGTTGATGCATCTAGTTAGTTTGTATAAATAATTATTTCGATATACTAGTTAAAATTTTAAGATTTTA +AATGTATAAAAAACTAATAACGTTTTTATTTGTAATAGGTGCAGTTGCATCCTATTCGAATAATGAGTAC +ACTCCGTTTAATAAACTGAGTGTAAAACTCTATATAGATGGAGTAGATAATATAGAAAATTCATATACTG +ATGATAATAATGAATTGGTGTTAAATTTTAAAGAGTACACAATTTCTATTATTACAGAGTCATGTGACGT +CGGATTTGATTCCATAGATATAGATGTTATAAACGACTATAAAATTATTGATATGTATACCATTGACTCG +TCTACTATTCAACGCAGAGGACATACGTGTAGAATATCTACCAAATTATCATGCCATTATGATAAGTACC +CTTATATCCACAAATATGAGGGTGATGAACGACAATATTCTATTACCGCAGAGGGAAAATGCTATAAAGG +AATAAAATATGAAATAAGTATGATGAACGATGATACTCTATTGAGAAAACATACTCTTAAAATTGGATTT +ACTTATATATTCGATCGTCATGGGCATAGTAATACATATTATTCAAAATATGATTTTTAAAAATTTAAAA +TATATTATCACTTCAGTGACAGTAGTCAAATAACAAACAACACCATGAGATATATTATAATTCTCGCAGT +TTTGTTCATTAATAGTATACATGCTAAAATAACTAGTTATAAGTTTGAATCCGTCAATTTTGATTCCAAA +ATTGAATGGACTGGGGATGGTCTATACAATATATCCCTTAAAAATTATGGCATCAAGACGTGGCAAACAA +TGTATACAAATGTACCAGAAGGAACATACGACATATCCGGATTTCCAAAGAATGATTTCGTATCTTTCTG +GGTTAAATTTGAACAAGGCGACTATAAAGTGGAAGAGTATTGTACGGGACTATGTGTCGAAGTAAAAATT +GGACCACCAACTGTAATATTGACTGAATATGACGATCATATCAATTTGTTCATCGAGCATCCGTATGCTA +CTAGAGGTAGCAAGAAGATTCCTATTTACAAACGCGGTGACATGTGTGATATCTACTTGTTGTATACGGC +TAACTTCACATTCGGAGATTCTGAAGAACCAGTAACATATGATATCGATGACTACGATTGCACGTCTACA +GGTTGCAGTATAGACTTTGCCACAACAGAAAAAGTGTGTGTGACAGCACAGGGAGCCACAGAAGGGTTTC +TCGAAAAAATTACTCCATGGAGTTCGGAAGTATGTCTGACACCTAAAAAGAATGTATATACGTGCGCAAT +TAGATCTAAAGAAGATGTTCCCAATTTCAAGGACAAAATAGCCAGAGTTATCACGAGAAAATTTAATAAA +CAGTCTCAATCTTATTTGACTAAATTTCTCGGTAGCACATCGAATGATGTTACAACTTTTTTTAGCATTC +TTGACTAAATATTCATAACTAATTTTTATTAATGATACAAAAATGAAATAAACTGTATATTATACACTGG +TTAACGCCCTTGGCTCTAACCATTTTCAAGATGAGGTCCCTGATTATAGTCCTTCTGTTCCCCTCTATCA +TCTACTCAATGTCTATTAGACGATGCGAGAAGACTGAAGAGGAAACATGGGGATTAAAAATAGGGTTGTG +TATAATTGCCAAAGATTTCTATCCCGAAAGAACTGATTGCAGTGTTCATCGCCCAACTGCAAGTGGAGGA +TTGATAACTGAAGGCAATGGATTCAGAGTAGTTATATATGATCAATGTACAGAACCCCATGACTTTATTA +TCACCGATACTCAACAAACACGTCTTGGATCATCTCATACATATATTAAATTCAGTAACATGAATACAGG +TGTCCCATCTAGTATTCCAAAATGTTCCAGAACTCTCTGTATTTCTGTATATTGTGATCAAGAGGCGGGA +GACATAAAATTTGAGGAGTATACTCAAGAATCAAGTGATATCAGTATTAGAGTTAAGTATGATTCATCAT +GTATTGATTATCTGGGTATTAATCAAAGTTTCATGAATGAATGTATTCGAAGAATTACAACATGGGATAG +AGAATCATGCGTCAGAATTGATACACAGACTATAAATAAATATCTTAAGTCTTGCACCAACACAAAATTC +GACCGTAATGTCTACAAAAGGTACATACTGAAGAGTAAAGCACTCCATGCTAAAACAGAGTTGTAATAGA +TATAAAATACTTTTTATAATAATTAGGCTAGAAAAATCTCACTCACATGTAATCTTAAAAAAATGATATG +ATAGTTCTTACAAGTAGCGATTGAGTTTTAAATGGATTCTATTAATTACCGGGGAACTTAACAATTCGTT +CTGATCTACAGACATTGGTTAATAAATCATCTTATTTTGCCAATATATTAAAATGTGGAAACTCCACTAA +TAATATTACATTGTGCGACTTTCAAGATGATGTGATATATAGGGTTATACAGTTTTAACAATTATATAAT +AGAGATAGAAAGTACAAAAGATGTAGAATCAATGATATGGCACGCTAAACAGTTGGGTGTGGAATCATTG +CTAAAAGAATGTCAAAATTATTTGCTTAGAATATTACGTATATAATTGTTTAGAAATTTATAGAATAACT +AATATTAATACATTATCGTATATCTACAACGATATAAGAAACTTCATATTGGATAATATTACTATTAATA +TATAAGGATCCAGATTTTATATATTTGCCTAAATACATTATTATAGATTTACTAGGACAATCACCTAAAT +GTTTTTAACGAAGATAATGTGGTAAAGATTATATACACTTATATATCTTCCGATATCTACAAGGATATTC +CATATCATCATTGTGTAAACTAAATAACGTTTTCTATGGCATTTAATAAGGACATTGGATATGTGGAAAA +GTGATGTATGGAAGTTAGTACATTATCAACTTCTCCTTATTGATTGAAAATGAAAATATAAATAGTTTTT +ATGTATAGCGGTATCTACCCTATAGTTTTATTGCTTACTACTAACATGGATTCAGATACAGATACAGATA +CAGATACAGATACAGATACAGATACAGATACAGATGTAGAAGATATCATGAATGAAATAGATAGAGAGAA +AGAAGAAATACTAAAAAATGTAGAAATTGAAAATAATAAAAACATTAACAAGAATCATCCCAGTGAATAT +ATTAGAGAAGCACTTGTTATTAATACCAGTAGTAATAGTGATTCCATTGATAAAGAAGTTATAGAATATA +TCAGTCACGATGTAGGAATATAGATCATATCTACTAATTTTTATAATCGATACAAAACATAAAAACAACT +CGTTATTACATAGCAGGTATGGAATCCTTCAAGTATTGTTTTGATAACGATGGTAAGAAATGGATTATCG +GAAATACTTTATATTCTGGTAATTCAATACTCTATAAGGTCAGAAAAAATTTCACTAGTTCGTTCTACAA +TTACGTAATGAAGATAGATCATAAATCACACAAGCCATTGTTGTCCGAAATACGATTCTATATATCTGTA +TTGGATCCTTTGACTATCAACAACTGGACACGGGAACGTGGTATAAAGTATTTGGCTATTCCAGATCTGT +ATGGAATTGGAGAAACCGATGATTATATGTTCTTCATTATAAAGAATTTGGGAAGAGTATTCGCCCCAAA +GGATAGTGAATCAGTTTTCGAAGCATGTGTCACTATGATAAACACGTTAGAGTTTATACACTCTCAAGGA +TTTACTCATGGAAAAATAGAACCGATGAATATACTGATTAGAAATAAACGTATTTCACTAATTGACTATT +CTAGAACTAACAAACTATACAAAAGTGGAACACATATAGATTACAACGAGGACATGATAACTTCAGGAAA +TATCAATTATATGTGTGTAGACAATCATCTTGGAGCAACAGTTTCAAGACGAGGAGATTTAGAAATGTTG +GGATATTGCATGATAGAATGGTTCGGTGGTAAACTTCCATGGAAAAACGAAAGTAGTATAAAAGTAATAA +AACAAAAAAAAGAATATAAACAATTTATAGCTACTTTTTTTGAGGACTGTTTTCCTGAAGGAAATGAACC +TCTGGAATTAGTTAGATATATAGAATTAGTATACATGTTAGATTATTCTCAAACTCCTAATTATGACAGA +CTACGTAGACTGTTTATACAAGATTGAAATTATATTCTTTTTTTTATAGAGTGTGGGGGTAGTGTTACGG +ATATCTAATATTAATATTAGACTATCTCTATCGCGCTACACGACCAATATCGATTACTATGGATATCTTC +AGGGAAATCGCATCTTCTATGAAAGGAAAGAATGTATTCATTTCTCCAGCGTCAATCTCGTCAGTATTGA +CAATACTGTATTATGGAGCTAATGGATCCACTGCTGAACAGCTATCAAAATATGTAGAAAAGGAGGAGAA +CATGGATAAGGTTAGCGCTCAGAATATCTCATTCAAATCCATGAATAAAGTATATGGGCGATATTCTGCC +GTGTTTAAAGATTCCTTTTTGGGAAAAATTGGCGATAAGTTTCAAACTGTTGACTTCACTGATTGTCGCA +CTATAGATGCAATCAATAAGTGTGTAGATATCTTTACTGAGGGAAAAATCAATCCACTATTGGATGAACC +ATTGTCTCCTGATACCTGTCTCCTAGCAATTAGTGCCGTATACTTTAAAGCAAAATGGTTGATGCCATTC +GAAAAGGAATTTACCAGTGATTATCCCTTTTACGTATCTCCAACGGAAATGGTAGATGTAAGTATGATGT +CTATTTACGGCGAGCCATTTAATCACGCATCTGTAAAAGAATCATTCGGTAACTTTTCAATCATAGAACT +GCCATATGTTGGAGATACTAGTATGATGGTCATTCTTCCAAACAAGATTGATGGATTAGAATCCATAGAA +CAAAATCTAACAGATACAAATTTTAAGAAATGGTGTAACTCTCTGAAAGCTACGTTTATCGATGTGCACA +TTCCTAAGTTTAAGGTAATAGGTTCGTATAATCTTGTGGATACGCTAATAAAGTTGGGACTGACAGATGT +GTTCTATTCAACTGGTGATTATATCAATATGTGTAATTCAGATGTGAGTGTTGACGCTATGATTCACAAA +ACGTATATAGATGTCAATGAAGAGTATACAGAAGCAGCTGCAGCAACTTCTGTACTAGTGGCAGACTGTG +CATCAACAGTTACAAATGAGTTCTGTGCAGATCATCCGTTCATCTATGTGATTAGACATGTCGATGGTAA +AATTCTTTTCGTTGGTAGATATTGCTCTCCAACAACTAATTAAGCACATTCTTAATATTAGAATATTATA +TAGTTAAGATTTTTACTAACAGGTTAACATTTTTTTTTAAAAATAGAAAAAACATGTGGTATTAGTGCAG +GTCGTTATTCTTCCAATTGCAATTGGTAAGATGACGGCCAACTTTAGTACCCACGTCTTTTCACCACAAC +ACTGTGGATGTGACAGACTGACCAGTATTGATGACGTCAGACAATGTTTGACTGAATATATTTATTGGTC +GTCGTATGCATACCGCAACAGGCAATGCGCTGGACAACTGTATGACACACTCCTCTCTTTTAAAGATGAT +GCGGAATCAGTGTTCATCGACGTTCGTGAGCTGGTAAAAAATATGCCGTGGGATAATGTTAAGGATTGTA +CAGAGATCATCCGTTGTTATATACCGGATGAGCAAAAAACCATCAGAGAGATTTCGGCCATCATTGGACT +TTGTGCATATGCTGCTACTTACTGGGGAGGTGAAGACCATCCCACTAGTAACAGTCTGAACGCATTGTTT +GTGATGCTTGAGATGCTCAATTACATGGATTATACCATCATATTCTGGCGTATGAATTGATGAGTTACAG +CTTGACATTTCTTCTTTCCTCCCTCTTCTTCTACCTTTCCCAGAAACAAACTTTTTTTACCCACTATAAA +ATAAAATGAGTATACTACCTGTTATATTTCTTCCTATATTTTTTTATTCTCCATTCGTTCAGACTTTTAA +CGTGCCTGAATGTATCGACAAAGGGCAATATTTTGCATCATTCATGGAGTTAGAAAACGAGCCAGTAATC +TTACCATGTCCTCAAATAAATACGCTATCATCCGGATATAATATATTAGATATTTTATGGGAAAAACGAG +GAGCGGATAATGATAGAATTATACAGATAGATAATGGTAGCAATATGCTAATTCTGAACCCGACACAATC +AGACTCTGGTATTTATATATACATTACCACGAACGAAACCTACTGTGACATGATGTCGTTAAATTTGACA +ATCGTGTCTGTCTCAGAATCAAATATAGATCTTATCTCGTATCCACAAATAGTAAATGAGAGATCTACTG +GTAAAATGGTATGTCCCAATATTAATGCATTTATTTCTAGTAACGTAAACACAGAATTATATGGAGCGGA +CATCGACGCCTTAGAAATAAGAGACTTAAACAACGGACACCTGGAATTATTACCATAGAAGATGTTAGAA +AAAATGATGCTGGTTATTATACATGTGTTTTAGAANNNNNNNNNNTATATATATATATATATATATATAT +ATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATAT +ATATATATATATATGGGCAAAACATATAACGTAACCAGAATTATAAAATTAGAGGTACGGGATAGAATAA +TACCTCCTACTATGAAATTACCAGAAGGAGTAGTAACTTCAATAGGTAGTAATTTGACTATTGCATGTAG +AGTATCGTTGAGACTTCCCACAACGGACACCGACGTCTTTTGGATAAGTAATGGTATATGTATTACGAAG +AAGAAGACGAGGACGGAGACGGTAGAATAAGTGTAGCAAATAAAATCTATATGACCGATAAGAGACGTGT +TATTACATCCTGGTTAAACATTAATCCTGTCAAGGAAGAAGATGCTACAACGTTTACGTGTATGGCGTTT +ACTATTCCTAGCATCAGCAAAACAGTTACTGTTAGTAAACGTGAATGTATGTTGTTACATTTCCATATCA +ATTGAGTTTATAAGAATTTTTTATACATTATCTTCCAACAAACAATTGACGAACGTATTGCTATGATTAA +CTCCCACAATACTATATATATTATTAATCATTAACTTGCAGACTATACCTAGTAGTGCTATTTTGACATA +CTCATGTTCTTGTGTAATCGCAGTATCTATATTATTAAAGTACGTAAATCTAGCTATAGTTTTATTATTT +AATTTTAGATAATATACTGTCTCCGTATTTTTAAAAAATTACCACATCCTTTATTAAATCATGAATGGGA +ATTTCTGTGTCATCGTTAGTATATTGTGAACAACAAGAGCAGATATCTATAGGAAAGGGTGGAATGCGAT +ACATTGATCTATGTAGTTTTAAAACATACGCGAACTTTGAAGAATTTATATAAATCATCTCACGAGATAT +TGCTCTCTGTCATATTCATACACCTGTATAAACTTTCTAGACATCTTACAATGTGTTATTTTATGATCAT +ATTTACATATTTACTGGTATATCAAAGATGTTAGATTAGTTAATGGGAATCGTCTATAATAATGAATATT +AAACAATTATAGGAGGAGTTTATACCTACAAAAACATCATAAAAATGAGTCATCGTCCGATTTATGTTTT +AAATATACTAACATTACTACCTTCAGAAATTATATACGAAATATTATACATGCTGACAATTAACGATCTT +TATAATATATAGTATCCACCTACCAAAGTATAATTGTATTTTTCTCATGTGATGTGTGTAAAAAACTGAT +ATTATATAATTATCTTAGTACCTATGATGAAGATGAAGATGAAGATGAAGATGATGGTCCGTATATATTT +TGTATCATTATCGTTATTGCTATTCCATAGTTACGCCATAGACATCGAAAATGAAATCACCGAATTCTTC +AATAAAATGAGAGATACTCTACCAGCTAAAGACTCTAAATGGTTGAATCCAGTATGTATGTTTGGAGGCA +CAATGAATGATATGGCCGCTCTAGGAGAGCCATTCAGTGCAAAGTGTCCTCCTATTGAAGACAGTCTTTT +ATCGCATAGATATAAAGACTATGTGGTTAAATGGGAAAGGCTAGAAAAGAATAGACGGCGACAGGTTTCT +AATAAACGTGTTAAACATGGTGATTTATGGATAGCCAACTATACATCTAAATTCAGTAACCGTAGGTATT +TATGTACCGTAACCACAAAGAATGGTGACTGTGTTCAGGGTGTAGTTAGATCTCATGTGTGGAAACCTTC +TTCATGCATTCCAAAAACATATGAACTAGGTACTTATGATAAGTATGGCATAGACTTATACTGTGGAATT +CTTTATGCGAACCATTATAATAATATAACTTGGTATAAAGATAATAAGGAAATTAATATCGACGATTTTA +AGTATTCACAAGCGGGAAAGGAATTAATTATTCATAATCCAGAGTTAGAAGATAGTGGAAGATACGACTG +TTACGTTCATTACGACGACGTTAGAATCAAGAATGATATCGTAGTATCAAGATGTAAAATACTTACGGTT +ATACCGTCACAAGACCACAGGTTTAAACTAATACTAGATCCGAAAATCAACGTAACGATAGGAGAACCTG +CCAATATAACATGCAGTGCTGTGTCAACGTCATTATTTGTCGACGATGTACTGATTGAATGGGAAAATCC +ATCCGGATGGATTATAGGATTAGATTTTGGTGTATACTCTATTTTAACTAGTAGAGGCGGTATCACCGAG +GCGACTTTGTATTTTGAAAATGTTACTGAAGAATATATAGGCAATACATATACATGTCGTGGACACAACT +ATTATTTTGATAAAACTCTTACAACTACAGTAGTATTGGAGTAAATACACAATGCATTTTTATATACATT +ACTGAATTATTATTATTAATTATATCGTATTTGTGCTATAGAATGGATGAAGATACGCGACTATCTAGGT +ATTTGTATCTCACCGATAGAGAACATATAAATGTAGACTCTATTAAACAGTTGTGTAAAATATCAGATCC +TAATGCATGTTATAGATGTGGATGTACGGCTTTACATGAGTACTTTTATAATTATAGATCAGTCAACGGA +AAATACAAGTATAGATACAACGGTTACTATCAATATTATTCATCTAGCGATTATGAAAATTATAATGAAT +ATTATTATGATGATTATGATAGAACTGGTATGAACAGTGAGAGTGATAATATATCAATCAAAACAGAATA +CGAGAATGAATATGAATTCTATGATGAAACACAAGATCAAAGTACACAACTAGTAGATTACGACATTAAA +CTCAAAACCAATGAGGATGATTTTGTTGATGAATTCTATGGTTATGATAGATCAGTGGGTGTCCATGATT +ATATAGATGTATCAATTAATAAAGTAGTATATGGAAGAGAGTCTCACGTAAGATGGTGGGATATATGGCA +AGAACATAATGATGGCGTATACAGTATAGGAAAGGAGTGCATAGATAATATATACGAAGACAGACATACC +GTAGACGAATTCTACAAGATAGACAGCGTATCAGATGTAGATGACGCAGAACATATATCTCAGATAACTA +ATGATGTATCTACACAAACATGGGAAAAGAAATCAGAGTTAGATAGATACATGGAAATGTATCCTCGTCA +TAGATATGGTAAGCATTCTGTCTTTAAGGGATTTTCTGACAAAGTTAGAAAAAATGATTTAGACATGAAC +GTGGTAAAAGAATTACTTTCTAACGGTGCATCTCTAACAATCAAGGATAGCAGTAATAAGGATCCAATTG +CTGTTTATTTTAGAAGAACAATAATGAATTTAGAAATGATTGATATCATTAACAAACATACAACTATCTA +TGAACGCAGGTATATAGTACACTCCTATCTAAAAAATTATAGAAATTTCGATTATCCATTTTTCAGAAAG +TTAGTTTTGACTAATAAACATTGTCTCAACAATTATTGTAATATAAGCGACGGCAAATATGGAACACCAC +TACATATATTAGCATCTAATAAAAAAATAATAACTCCTAATTACATGAAGTTATTAGTGTATAACGGAAA +TGATATAAACGCACGAGGTGAAGATACACAAATGCGAACTCCATTACACAAATATTTGTGTAAATTTGTA +TATCATAATATTGAATATGGTATCCGATACTATAATGAAAAGATTATAGACGCATTTATAGAGTTAGGAG +CCGATCTAACTATTCCAAATGACGATGGAATGATACCAGTAGTTTACTGTATACACTCAAATGCCGAATA +TGGTTATAACAATATTACTAACATAAAGATAATACGTAAACTACTTAATCTTAGTAGACATGCGTCACAT +AATCTATTTAGAGATCGAGTCATGCACGATTATATAAGTAATACATATATTGATCTTGAGTGTTTAGATA +TCATTAGATCACTTGATGGGTACGATATTAATTGTTACTTTGAAGGACGTACACCACTTCATTGCGCTAT +ACAATATAACTTCACTCAGATTGCTGAGTACTTATTAGATCGAGGAGCTGATATATCATTAAAGACAGAC +GATGGTAAAACTGTATTTGATTTATCGTTATGTAGTTACATTCCTCTTAAATGGACTAGCTTTTTGATTA +GTCGTCTACCGCCTAAAAGTGTCATATGCTCACTGACTAACCATATAATAGATTATGTTCTTACGAACAA +TAGACGTATTATTTGGCAGAGTCAAATGATTAATAAGTACGTACTGTTACTGGACCCATCCTTTTATTAT +AGATTCAGAAATGTTATCGAAAACAAATTAGACCAATACAATAATCGTTATAATATGTTCGAACACGATA +GGGACGTTAATGAAAAGTATGGCAAAGTCTTACATGACCTCGATACATATATCAAGGATGTACAAGTATT +AAAATCTACTTCCATCACTAATAATATAACACTATACGACACTATTATAAATAATAAGTCAGAGTTTCCT +ATACGTCGTGTAAACGACAAACAATTAATTAATCTCATAAAATCCAATACATATCATAATCTTATCGAAA +AAGTTATTAAAAATACATTAGAGAAATATACTTTAACTAATATAGTCCTCGAGTATATGATCTCATCTCG +ATCTCAATCATCTTATTTGAGTCGTATTCCTAATGAGATATTACTCGAAATATTATATAAACTCGACATG +TACGATTTACGTAATCTATATACAAGATATATGAGAGAGAATGATATCACAGAGTATCATATAGAGAATA +CGAGGTCTGTTTCTACACAGACATGAATAATGAATACACATACAACGTTTTTTTTAATCTTAGATATAAC +ACTAATTACATCAAGATTATATATTGAAATCGTAATTTGAGTTGTCTGATCATCATGGATATCGAAAATG +ATATACGTAACATTAGCAATCTTTTAGATGATTGATATATTATTATGCGATGTAATCATAACTATCGGAG +ATGTAGAAATTAAAGCGCATAAAACTATTTTGGTTGCCGGATCTACGTATTTTAAAACAATGTTCACAAC +ATCTATGATAGCGAGAGATCTAGCAACTAGAGTAAATATACAGATGTTCGATAAAGATGCCGTCAAAAAT +ATTGTACAGTACTTATACAATAGGTATATAAGTTCTATGAATGTGATAGACATATTAAAATGCACCGACT +AAGAACGTAAAACGAACTATAGAATGTTATACAATGGGTGATGATAAGTAGAAGATGTTACCCGATATAC +CCATAGCATTATCTAGTTATGGCATGTGTGTATTAGATCAATACATATACATTATAAGCGGTCGTACCCA +ACACTGATTATACATCGGTACATACAGTAAATAGCATAGATATGGAGGAGGATACAAATATTTCAAATAA +AGTTATGAGATACGCGCTGTCAATAATATATGGAAGACATTACCTAACTTCTGAACTGGAACTATAAATC +CAGGCTCTCGCATAAAGATGAATATATATGTTGTATGCGACATCAAAGATGAAAAAATGTTAAGACTTAT +ATATTTAGATATAACACGAATATGTATGACGGATGGGAATTGGTAACGATGACAGAAAGCAGATTGTCAG +CTCTGCATACTATTCTTCATGACAATACCATAATGATGTTACATTGTTATGAAGCGTATATGTTACAAGA +TACATTTAATGTGCTTACGGAACATATATTTAGAAACATCTACTAACGATTTTTTATGCTTGTATTATTA +ATGGTATGTAATATGATTTAATTGATTGTGTACACGATACCAATTTGTCGAGTATGAATACGGAGTACAA +ACATAAACTGAAGTTTAACATTATTTATTTATGATATACATTATATACATTATATACATTATATACATTA +TATACATTATATACATTATATACATTATATACATTATATACATTATATACATTATATATCGTTATTGTTT +GGTCTATGCCATGGATATCTTTAAAGAACTAATCTTAAAACATACGGATGAAAATGTTTTGATTTCTCCA +GTTTCCATTTTATCTACTTTATCTATTCTGAATCATGGAGCAGCTGGTTCTACAGCTGAACAACTATCAA +AATATATAGAGAATATGAATGAGAATACACCCGATGATAAGAAGGATGACAATAATGACATGGACGTAGA +TATTCCGTATTGCGCGACACTAGCTACCGCAAATAAAATATACGGTAGTGATAGTATCGAGTTCCATGCC +TCATTCCTACAAAAAATAAAAGACGATTTTCAAACTGTAAACTTTAATAATGCGAACCAAACAAAGGAAC +TAATCAACGAATGGGTTAAGACAATGACAAATGGTAAAATTAATTCCTTATTGACTAGTCCGCTATCCAT +TAATACTCGTATGATAGTTATTAGCGCCGTCCATTTTAAAGCAATGTGGAAATATCCATTTTCTAAACAT +CTTACATATACAGACAAGTTTTATATTTCTAAGAATATAGTTACCAGTGTTGATATGATGGTGGGTACCG +AGAATGACTTGCAATATGTACATATTAATGAATTATTCGGAGGATTCTCTATTATCGATATTCCATACGA +GGGAAACTCTAGTATGGTGATTATACTGCCGGACGACATAGAAGGTATATATAACATAGAAAAAAATATA +ACAGATGAAAAATTTAAAAAATGGTGTGGTATGTTATCTACTAAAAGTATAGACTTGTATATGCCAAAGT +TTAAAGTGGAAATGACGGAACCGTATAATCTGGTACCGATTCTAGAAAATTTAGGACTTACTAATATATT +TGGATATTATGCAGATTTTAGTAAGATGTGTAATGAAACTATCACTGTAGAAAAATTTCTACATACGACG +TTTATAGATGTTAATGAGGAGTATACAGAAGTATCGGCCGTTACAGGAGTATTCATGACTAACTTTTCGA +TGGTATATCGTATGAAGGTCTACATAAACCATCCATTCATATACATGATTAAAGATAACACCGGACATAC +ACTTTTTATAGGGAAATACTGCTATCCGCAATAAATATAAACAATAGACTTTTATCACGTTATCTCATGT +ATAAAATATTACAAATAGTATAGCATAAACTAAAGTCGATACATACATTAAAACTTAAATAATAATGTAA +TTTACAATTAATAGTATAAACTAAAAAAATTAAAAAATTAAAAACAATATCATTATTATAAGTAATATCA +AAATGACGATATACGGATTAATAGCGTATCTTATATTCGTGACTTCATCCATCGCTAGTCCACTTTACAT +TCCCGTTATTCCGCCCATTTCGGAAGATAAATCGTTCAATAGTGTAGAGGTATTAGTTTCTTTGTTTCCC +GATGACCAAAAAGACTATACAGTAACTTCTCAGTTCAATAACTACACTATCGGTACCAAAGACTGGACTA +TCAACGTACTATCCACACCTGATGGTCTGGACATACCATTGACTAATATAACTTATTGGTCACGGTTTAC +TATAGGTCGTGCATTGTTCAAATCAGAGTCTGAGGATATTTTCCAAAAGAAAATGAGTATTCTAGGTGTT +TCTATAGAATGTAAGAAGCCGTCGACATTACTTACTTTTTTAACCGTGCGTAAAATGACTCGAGTATTTA +ATAGATTTCCAGATATGGCTTATTATCGAGGAGACTGTCTAGAAGCCGTTTATGTAACAATGACTTATAA +AAATACTAAAACTGGAGAGACTGATTACACGTACCTCTCTAATGGGGGGTTGCCTGCATACTATCGTAAT +GGGGTCGATGGTTGATTATTGATTAGTATATTCCTTATATTCCTTATTCTTTTTATTCACACAAAAAGAA +CATTTTTATAAACATGAAACCACTGTCTAAATGTAATTATGATCTTGATTTATAGATGATGATCAGCCTT +CAGAGGATTTTGACCAGTATGTTTAATATGAAAAAAAACATAACTATTAAGCGCTATTGCGCTATTGTGC +TTAATTATTTTGCTCTATAAACTGAATATATAGCCACAATTATTGACGGGCTTGTTTGTGACCGACAATC +ATGAATTTTCAGAAATTATCTCTGGCTATATATCTTACGGTGACATGTTCGTGGTGTTATGAAACATGTA +TGAGAAAAACTGCGTTGTATCATGACATTCAATTGGAGCATGTAGAAGACAATAAAGATAGTGTAGCATC +GCTACCGTACAAGTATCTACAAGTAGTCAAACAAAGAGAACGTAGTAGATTGTTGGCTACATTTAATTGG +ACGGATATAGCTGAGGGTGTTAGAAATGAGTTCATTAAAATATGTGATATCAACGGAACATATCTATATA +ATTATACTATTGCTGTTAGTATAATTATTGATTCCACGGAAGAACTACCAACAGTTACTCCAATTACAAC +ATATGAACCTTCTATATATAATTATACTATCGATTATAGCACTGTTATTACTACTGAAGAACTACAAGTG +ACTCCAACATATGCACCTGTAACAACTCCTCTTCCAACATCAGCAGTTCCTTATGATCAACGATCGAATA +ACAATGTAAGTACTATATCTATTCAGGTACTGAGTAAAATATTGGGAGTCAATGAAACAGAATTAACTAA +TTATCTTATTATGCATAAAAATGACACTGTTGACAATAACACCATGGTTGATGATGAGACATCTGACAAT +AACACATTACATGGTAATATAGGATTTTTGGAAATAAATAATTGTTATAATGTTTCTGTGTCAGATGCTA +GTTTTAGAATAACATTAGTAAACGATACTTCTGAAGAAATTTTGCTAATGCTAACAGGAACTAGTTCATC +CGACACCTTCATATCTTCCACCAATATCACTGAATGTTTGAAAACATTAATCAATAATGTGTCGATTAAT +GATGTACTTATAACACAAAATATGAATGTAACATCTAATTGTGATAAATGCTCAATGAATTTGATGGCAT +CCGTTATTCCTGCAGTTAATGAATTTAACAATACGTTGATGAAAATTGGTGTAAAAGATGATGAAAACAA +TACGGTATATAAATATTATAATTGTAAACTAACTACAAATTCTACATGTGATGAGTTAATCAATTTAGAT +GAAGTCATTAACAACATAACTCTGACAAATATTATACACAATAGTGTTTCGACAACTAACAGCAGAAAAA +GACGAGATCTGAATGATGAGTTTGAATTTTCCACTTCCAAGGAATTAGATTGTCTTTACGAATCATATGG +TGTAAACGATGATATAAGTCATTGTTTTGCATCACCTAGACGTAGACGATCTGACGACAAAAAGGAGTAC +ATGGACATGAAATTATTCGACCACGCGAAAAAAGATTTAGGAATAGACAGTGTTATTCCTAGAGGTACAA +CCCATTTCCAAGTAGGTGCATCTGGTGCAAGTGGTGGTGTTGTAGGAGATAGTTTCCCATTTCAAAATGT +TAAATCGCGTGCCAGTCTATTGGCGGAAAAAATAATGCCTAGAGTACCTATTACTGCTACCGAAGCTGAT +CTATATGCAACTGTAAATAGACAACCCAAGTTACCAGCAGGTGTTAAAAGTACTCCGTTTACAGAGGCGC +TTGTGTCTACGATAAACCAAAAGCTTTCTAATGTTAGAGAGGTAACTTATGCTTCGCTCAATCTGCCAGG +ATCAAGTGGCTATGTTCATAGACCATCTGATTCTGTTATTTATAGCAGTATAAGACGGTCACGTTTACCT +AGTGATAGCGATAGTGATTATGAGGATATACAAACTGTTGTTAAGGAATATAATGAAAGATATGGTAGAT +CAGTCAGTAGAACACAGTCATCAAGTAGTGAAAGCGATTTTGAAGATATAGATACTGTTGTTAGGGAATA +TAGACAAAAATATGGCAATGCAATGGCAAAAGGACGTAGTAGTTCCCCTAAACCTGATCCATTATATAGT +ACTGTTAAGAAAACAACTAAAAGTCTATCTACTGGTGTAGACATAGTTACAAAACAATCAGACTATTCTC +TATTACCTGACGTTAATACTGGCAGTTCTATTGTGTCACCTCTCACCAGAAAAGGAGCTACTAGACGACG +ACCTAGACGCCCTACAAATGATGGTCTACAGAGTCCAAATCCTCCTCTCCGTAATCCACTTCCTCAACAT +GATGATTATTCTCCTCCACAAGTACACAGACCTCCACCACTTCCTCCTAAACCAGTCCAAAATCCGCCAC +AACTTCCCCCTAGACCAGTAGGTCAATTACTACCTCCTCCTATAGATCAACCAGATAAAGGATTTAGTAA +GTTTGTATCACCTAGACGGTGTAGAAGAGCAAGCTCTGGAGTCATATGTGGTATGATACAATCAAAACCA +AACGATGATACCTATTCACTTCTTCAACGATCAAAAATTGAACCAGAATATGTGGAGGTTGGTAATGGTA +TACCCAAGAACAATGTTCCTGTAATAGGTAATAAACATAGTAAAAAATATACATCGACGATGTCAAAAAT +ATCAACAAAATTTGATAAATCTACGGCATTTGGAGCAGCAATGTTACTAACTGGTCAGCAGGCCATTAGC +CAACAGACTAGATCAACTACGTTGAGTAGAAAAGATCAGATGAGTAAGGAAGAAAAGATATTCGAAGCAG +TTACAATGAGTCTATCAACTATAGGTTCAACGTTGACGTCTGCAGGTATGACGGGTGGTCCAAAACTAAT +GATTGCAGGAATGGCTATAACGGCTATAACTGGTATAATAGATACGATAAAAGATATATATTACATGTTT +TCAGGACAGGAGAGGCCAGTAGATCCTGTTATTAAATTATTTAATAAGTACACTGGCTTAATGTCCGATA +ATAATAAAATGGGTGTAAGAAAATGTTTGACACCCGGTGACGACACACTTATTTATATCGCATACAGAAA +CGATACCAGTTTTAAACAGAATACGGATGCGATGGCTTTGTATTTCTTAGATGTTATCGATTCAGAGATC +CTATATCTAAACACATCAAATTTAGTTCTAGAGTATCAACTAAAGGTGGCTTGCCCCATAGGAACATTAA +GATCTGTAGATGTGGACATAACTGCGTATACAATATTATATGATACAGCGGATAATATTAAGAAATACAA +GTTTATCAGAATGGCAACGCTACTATCCAAACATCCAGTTATTAGATTGACATGTGGTTTAGCAGCAACA +TTGGTGATTAAACCGTACGAGGTACCCATCAGTGATATGCAACTACTAAAAATGGCGACGCCTGGTGAAC +CAGAATCCACTAAATCTATACCATCCGATGTCTGTGATAGGTATCCTCTAAAGAAATTCTATCTTTTAGC +TGGTGGTTGTCCCTATGATACATCTCAAACTTTTATTGTACATACTACTTGCAGTATTCTACTAAGAACA +GCTACACGGGATCAGTTTAGAAACAGATGGGTGTTACAAAATCCATTTAGACAAGAAGGGACATATAAGC +AACTGTTTACCTTTAGCAAATACGATTTTAACGACACCATAATCGATCCTAATGGTGTGGTGGGTCATGC +TAGCTTTTGTACCAATAGAAGCAGCAACCAATGTTTCTGGTCCGAACCTATGATATTGGAAGATGTATCA +TCGTGTAGTTCTAGAACTAGAAAAATATACGTAAAACTGGGAATATTTAATGCTGAAGGTTTTAATAGTT +TTGTACTAAATTGTCCAACTGGGTCTACACCTACATACATCAAACATAAAAATGCGGACAGTAACAATGT +TATCATAGAGCTACCTGTAGGTGATTACGGCACAGCCAAATTGTATTCAGCAACAAAACCATCGAGGATA +GCTGTGTTCTGCACACATAACTATGATAAACGATTCAAATCAGATATTATAGTTCTAATGTTTAATAAAA +ACAGCGGTATTCCATTTTGGAGCATGTACACAGGAAGTGTAACTAGTAAAAATAGAATGTTTGCCACATT +GGCTAGAGGAATGCCGTTTAGATCAACGTATTGCGATAACAGACGACGATCAGGTTGTTATTATGCAGGA +ATACCATTTCATGAAGATAGTGTAGAAACAGATATACATTATGGACCAGAAATAATGTTAAAGGAAACAT +ATGACATAAACAGTATTGACCCACGAGTTATAACAAAGTCAAAGACCCATTTTCCTGCTCCATTGAGTGT +AAAATTCATGGTTGACAATTTAGGAAATGGATATGACAACCCTAATTCATTTTGGGAAGATGCTAAAACT +AAGAAACGGACATATAGTGCAATGACGATAAAAGTCCTACCATGTACAGTGAGAAATAAAAATATAGACT +TTGGATATAACTATGGAGATATTATTTCTAATATGGTTTATCTACAATCTACTAGTCAGGATTATGGAGA +TGGTACCAAATATACATTTAAATCCGTAACTAGATCAGATCATGAGTGTGAATCTAGCTTAGATCTAACG +TCTAAGGAAGTAACTGTGACATGTCCTGCGTTTAGTATACCAAGAAATATATCAACATATGAAGGTCTAT +GCTTTAGTGTTACTACATCTAAAGATCATTGTGCTACAGGTATTGGTTGGTTAAAATCTAGTGGTTATGG +GAAGGAAGATGCTGATAAACCACGTGCTTGTTTTCATCATTGGAATTATTACACACTGTCGTTGGATTAT +TACTGTTCATACGAAGATATTTGGAGAAGCACCTGGCCTGACTATGATCCATGTAAGTCATATATCCATA +TAGAGTATAGAGATACATGGATAGAATCTAATGTGTTACAGCAACCTCCTTACACATTCGAATTCATTCA +TGACAATTCTAACGAATATGTGGATAAAGAAATTAGTAACAAATTAAATGATCTGTACAATGAATACAAG +AAGATTATGGAATATAGCGACGGATCATTGCCGGCGTCTATAAACAGATTAGCAAAGGCATTGACTTCAG +AGGGTAGAGAAATAGCAAGTGTTAATATAGATGGTAATCTGTTAGATATCGCATATCAAGCAGATAAGGA +AAAGATGGCCGACATACAGACAAGAATAAATGATATTATTAGAGATTTGTTTATACACACTCTATCAGAC +AAAGATATAAAAGACATTATAGAATCCGAAGAAGGTAAGAGATGTTGTATAATAGATGTTAAGAACAATC +TTGTTAAAAAGTACTATTCTATTGATAATTATCTATGTGATACTTTAGATGATTATATATACACCTCTGT +AGAATATAACAAATCCTATGTGTTAGTAAACGATACTTATATGAGCTATGACTATCTTGAATCATCAGGT +GTAGTTGTTCTATCATGTTATGAAATGACTATAATCTCCTTGGATACAAAAGACGCCAAAGATGCTATAG +AAGATGTGATAGTAGCAAGTGCGGTAGCCGAAGCATTGAATGACATGTTTAAGGAATTTGATAAAAACGT +AAGTGCTATTATAATAAAAGAAGAAGATAATTATCTAAACAGTTCGCCCGATATCTACCATATAATATAT +ATCATAGGTGGCACTATTCTGCTACTGTTAGTCATTATTTTAATATTGGCAATTTATATAGCGCGCAATA +AATACAGAACCAGGAAATATGAAATAATGAAATATGACAATATGAGCATTAAATCTGAGCATCATGATAG +TCTTGAAACAGTGTCTATGGAAATTATTGATAATCGGTACTAATAAAATAGTTTAACTCTTTTAGAACCA +GTTTGGTACTGTAATTTCAGTTCATTACTCGTTGAGAATATTGATGATTTTTTTTAAATGAGTATCGGTA +GTTACATATTACCATATCATCCATTATATAATCGATGATGCATGTATTAGAATACTTTCCGAATAAGTCT +TCTAAATATTGTATTAATTATGAAAAACTATGCTATGTGAGTATGATTCAAAGATGTTTAATGATACGAT +ACTAGATTTTATCTCTAGCGAGATTGTTTAGAATCATTTATCATAACTATGTTTAATAAATTCATCAACG +AATATCGATAAAGACCTCTTGTAATTCGAGTATAGGAAGTAGTATTACCATATCAACTTCCGAGTTAACA +ATTACTCTAAAACATGAGGATTGTACTCCTGTCTTTATTGGAGATCACTATTTAGTCGTTGATAAACTAG +TAACCTCAGGTTTCTTTACAAACGATAAAGTACAACATCAAGACCTCACAACACAGTGCAAGATTAATCT +AGAAATCAAATGTAATTCTGGAGGAGAATCTAGACAACTAACACCCACGGCGAAGTATACTTTATGCCTC +ATTCAGAAACGGTAACTGTAGTAGGAGACTGTCTCTCTAATCTCGATGTATATATAATATATACCAATAC +GGACGCGATATATTCCGACATGAATGGCGTCGCTTATCATATGTTATATCCTAAATGTTGATCATATTCC +ACAAATGATTGTGAACGAGATTAAATCATCTAACAAATAATTAGTTTTTTATGACATTAACATATAATAA +ATAAATTAATCATTATTGACTTAACGATGACGAAAGTTATCATTATCTTAGGATTCTTGATTATTAATAC +AAATTCGTTGTGTCTATGAAATGTGAACAAGGTGTCTCATATTATAATGCACAAGAATTAAAGTGTTGTA +AACTATCTAGCCAGGAACATATTCAGATTATCGATGTGATAAATACAGCGATACCATCTGTGGACATTGT +CCAAGTGACACATTCACGTCAATATATAATCGTTCTCCTCGGTGTCATAGTTGTAGAGGTCACACCTTGT +ACACCTACCACAAATAGAATATGTCATTGTGACTCGAATAGTTATCGTCTCCTTAAAGCTTCTGATGGTA +ACTGTGTTACATGTGCTCCTAAAACAAAATATGGTCGTGTGTACGGAAAGAAAGGAGAAAATGATATGGA +ATACCATTTGTAAGAAATGTCGGAAGGGTACTTATTCAGATATTGTATCTGACTCTGATCAATGTAAACC +TATGACAAGATAAGACTTACTCGCATCTACTGGATAGACATAAATATCCTCCTCGTAATAATGAAATATA +ATATACACTAATTATTAATATCAATCGAGTATTAACATATAAGTTATTTTTAAACCCCTTTTGGGTTCCG +TCCTAAACGGCGTTTCGGTCTGTGTCGCCACCATGGTCACACCGAGCCTCTGCGTGCTCCTCCATCGAGG +ACGACTTCAACTATGACAGCTCGGTGGCGTCTGCCAGCGTGTACATACGAATGGCATTTCTAAGAAAAGT +CTACGGTATCCTTTCTACAATTTCCTTTAACAACGGCAACAGCTGCAGTATTTTTATACTTTGAATGCAT +CGGACATTTATACAAGGGAGTCCTGTTCTAATATTGGCATCAATGTTCGGATCTATAGGCTTGATTTTCG +CATTGACTTTACACAGACATGAACATCCCCTGAATCTGTACATACTTTGTGGATTTACACTGTTAGAATC +TCTAACGCTGGCCTCTGTTGTTACTTTCTATGATGCACGTATCGTTATGCAAGCTTTCATGTTGACTACT +GCAGTGTTTCTTGCTCTGACTACATATACTCTACAATCAAAGAGAGATTTCAGTAAACTTGTAACAGGAT +TGTTTGCTGCTTTCTGGATTTTAATTTTGTCAGGAGTCTTGAGGATAAAGTTTAAAATAGAATTAATAAA +GAACATATAGGTCATTTTTTAAACATGGATAGAAACCAAGGTTGTTAGTTAATAATATACAAGATATTTT +TTCTCACTCTGATCCATGTAAACCAAGGACGAGAGACACTCTCATTCCTCATTCACGACACCATTAAAAA +TGGAAATTAAAGCCCTCTATTAAGCACAGACGGCTACAGGTCTACCATCAGGTTACCTTCGTCTACCTTC +ACAATGGCCTCTCCTTGTGCCCAGTTCAGTCCCTGTCATTGCCACGCTACTAAGGACTCCCTGAATACCG +TGACTGACGTCAGACATTGTCTGACTGAATACATCCTGTGGGTTTCTCATAGATGGACCCATAGAGAAAG +CGCAGGGCCTCTCTACAGGCTTCTCATCTCTTTCAGAATTGATGCAATGGAGCTATTTGGTAGCGAGTTG +AAGGAGTTCTCGAATTCACTTCCGTGGGACAATATCGACAATTGCGTGGAGATCATTAAATGTTTCATCA +GAAATGACTCCATGAAAACCGCCAAAGAACTTTGTGCAATAATTGGACTTTGTACTCAATCAGCTATTGT +CACTGGAAGAGTCTTCAATGATAAGTATATCGACATACTACTTATGCTGCGAAAGATTCTGAACGAGAAC +GACTATCTCACCCTCTTGGATCATATCCTCACTGCTAAATACTAAATCTCCTTCATGCTCTCTCACTAAT +ACTCTTACTCACTACACTTTTTATCATCTTATGATGAATGATTGCCTTCATCATTTTTTCGTGGAATATA +ATATAGGAATAATTAGCACCAGAATAGCTATGGATATCTCGTTAAGAATATTCTCTATAAGAGACATAAT +GTAGACATAGTTATTATATCCTTCTTAGATAAGTGTTACGCTACTGGAAAGTTTCCATCGTTATTATTAC +ATGAAGATGATATAATTAAACCAACATTGAGATTGGCTCTTATGTTAGCTGGATTGAATTACTGTAATAA +ATGCATCGAGTATAGAGGGATATAGCAATTCTCGATAATAGTCATGCAATATTTGAATGAGACTGATAAT +TTAGGTAATACAGTACTACACACATATCTTTCTAGATTATATATCGTTAAAAATCTGTAAGATGTATATT +TCTCATAAGTATCCACTGTGTAATATTATTAATGGATATATAGATAACGCAATAGGGACTAATAGTATTG +TAAAAGATATAATCGACTATTTACGTACATATCCAGATATCTATATTCCTACTAGTTTGCTGCGTAGTTG +CATCATTGATATGCATGATTTATCAGGATTCAGAGATGAATTACTAAGTAAACTACAATCCCACAATAAG +TAAGAATCAAATATCAAAAACTCACTTTTGATTTTTCTAGTCTTAAGTAATACATATATTTATTAATAGA +CCTATGAAATAAAAAAAGGTAACAATGGATTCGCGTATAGCTATTTACGTATTAGTATCGGCATCTCTTT +TGTATCTTGTTAATTGTCACAAACTAGTACATTACTTCAATCTGAAAATAAATGGAAGTGATATAACTAA +TACAGCAGATATATTGCTGGACAATTATCCAATTATGACCTTTGATGGAAAGGATATTTATCCATCTATC +TCGTTCATGGTCGGTAATAAACTTTTCCTAGATCTTTATAAAAATATCTTTGAAGAATTTTTCAGACTAT +TTCGAGTATCTGTAAGTAGTCAATACGAGGAATTAGAATATTATTATTCATGTGATTATACTAACAACCG +TCCTACAATTAAACAACATTACTTTTATAACGGCGACGAATATACTGAAATTGATAGATCGAAAAAAGCC +ACTAATAAAAACAGTTGGTTAATTACTTCAGGCTTTAGACTACAAAAATGGTTCGATAGCGAAGATTGTA +TAATTTATCTCAGATCTTTAGTTAGAAGAATGGAAGACAGTAACAAAAACAGTAAAAAAACTTAGTACTT +AGATATCGAAAAAATATATTTTTGTAGACTCTTGAGAATAGAAGGAAAACATGTACATAATTATAAAAAA +TGAAAATCAATGGCGAATAAGACAGTGCGATTCGCACCATGGAGTCGGTAGATTTCATGGCTGTCGATGA +GCAGTTTCACGACGACCTCGATCTTTGGTCATTATCTTTGGTAGATGATTATAAAAAACATGGATTAGGT +GTTGACTGTTATGTTCTAGAACCAGTTGTTGACAGGAAAATATTTGATAGATTTCTCCTTGAACCAATTT +GTGATCCTGTAGATGTTCTGTATGATTATTTTAGGATTCATAGAGATAATATTGATCAGTATATAGTAGA +TAGACTGTTTGCATATATTACATATAAAGATATTATATCTGCATTAGTGTCAAAGAATTATATGGAAGAT +ATTTTCTCTATAATTATTAAGAATTGTAATTCTGTGCAAGATCTCTTACTTTACTATCTATCTAATGCAT +ATGTAGAAATAGACATTGTTGATCTTATGGTAGATCATGGGGCTGTAATATATAAAATAGAATGCTTGAA +TGCCTATTTTAGGGGAATATGTAAAAAGGAAAGTAGTGTTGTTGAGTTTATTTTGAATTGTGGTATCCCA +GATGAAAATGATGTTAAATTAGATCTATATAAAATAATTCAGTATACTAGGGGATTCCTTGTAGATGAAC +CCACAGTATTAGAAATTTATAAGCTTTGTATCCCATATATTGAAGATATCAATCAACTAGATGCTGGTGG +AAGGACCTTGCTTTATCGCGCTATCTATGCAGGTTATATAGATTTAGTATCATGGCTATTAGAAAATGGA +GCAAATGTCAACGCAGTAATGAGTAATGGATATACATGTCTTGACGTGGCCGTGGATAGGGGATCTGTCA +TCGCCCGTAGGGAAGCACATCTTAAAATATTAGAAATATTGCTTAGAGAACCATTGTCTATTGACTGTAT +AAAATTAGCTATACTTAATAATACAATTGAAAACCATGATGTGATAAAGCTCTGTATCAAGTATTTTATG +ATGGTAGATTATTCACTTTGTAATGTGTATGCATCATCACTCTTTGATTATATAATTGATTGTAAACAAG +AATTGGAGTACATTAGGCAGATGAAAATTCATAATACAACCATGTATGAGTTAATCTATAATAGAGACAA +AAACAAGCATGCTTCCCATATTCTACATAGGTATTCTAAACATCCAGTTTTGACACAGTGTATCACTAAA +GGATTCAAGATTTACACAGAAGTAACCGAGCAGGTCACTAAAGCTCTAAACAGACGTGCTCTAATAGATG +AGATAATAAACAATGTATCAACTGATGACAATCTCCTATCAAAACTTCCATTAGAAATTAGGGATCTAAT +TGTTTCACAAGCTGTCATATAGAGTTCTATCCACCCACCTTTCTTGAAATGAGTTAATAGTCATAAGTTA +GTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAG +TCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTTATAGTCTAACACTTCTAATTTTTA +TACCTTGATCTTTTTCTCTAATTATGAAAAAGTAAATCATTATGAAGATGGATGAAATGGACGAGATTGT +GCGCATCGTTAACGATAGTATGTGGTACGTACCTAACGCATTTATGGACGACGGTGATAATGAAGGTCAC +ATTTCTGTCAATAATGTCTGTCATATGTATCTCGCATTCTTTGATGTGGATATATCATCTCATCTGTTTA +AATTAGTTATTAAACACTGCGATCTGAATAAACGACTAAAATGTGGTAACTCTCCATTACATTGCTATAC +GATGAATACACGATTTAATCCATCTGTATTAAAGATATTGTTACGCCACGGCATGCGTAACTTTGATAGC +AAGGATAAAAAAGGACATATTCCTCTACACCACTATCTGATTCATTCACTATCAATCGATAACAAGATCT +TTGATATACTAACGGACCCCATTGATGACTTTAGTAAATCATCCGATCTATTGCTGTGTTATCTTAGATA +TAAATTCAATGGGAGCTTAAACTATTACGTTCTGTACAAATTATTGACTAAAGGATCTGACCCTAATTGC +GTCGATGAGGATGGACTCACTTCTCTTCATTACTACTGTAAACACATATCCGCGTTCCACGAAAGCAATT +ATTACAAGTCAAAGAGTCACACTAAGATGCGAGCTGAGAAGCGATTCATCTACGCGATAATAGATCATGG +AGCAAACATTAACGCGGTTACGAAAATCGGAAATACGCCGTTACACACTTACCTTCAACAGTATACCAAA +CATAGTCCTCGTGTGGTGTATGCTCTTTTATCTCGAGGAGCCGATACGAGGATACGTAATAATCTTGATT +GTACACCCATCATGGAATACATAAAGAACGATTGTGCAACAGGTCATATTCTCATAATGTTACTCAATTG +GCACGAACAAAAATACGGGAAATTACAAAAGGAAGAAGGACAACATCTACTTTATCTATTCATAAAACAT +AATCAAGGATATGGAAGTCGCTCTCTCAATATACTACGGTATCTACTAGATAGATTCGACATTCAGAAAG +ACGAATACTATAATACAATGACTCCTCTTCATACCGCCTTCCAGAATTGCAATAACAATGTTGCCTCATA +CCTCGTATACATCGGATACGACATCAACCTTCCGACTAAAGACGATAAGACAGTATTCGACTTGGTGTTT +GAAAACAGAAACATTATATACAAGGCGGATGTCGTTAATGACATTATCCACCACAGACTGAAAGTATCTC +TACCTATGATTAAATCGTTGTTCTACAAGATGTCGGAGTTCTCTCCCTACGACGATCACTACGTAAAGAA +GATAATAGCCTACTGCCTATTAAGGGACGAGTCATTTGCGGAACTACATACTAAATTCTGTTTAAACGAG +GACTATAAAAGTGTATTTATGAAAAATATATCATTCGATAAGATAGATTCCATCATCGAAAAATGTAGTC +GTGACATAAGTCTCCTCAAAGAGATTCGAATCTCAGACACCGACTTGTATACGGTATTGAGAACAGAAGA +CATCCGGTATCACACATATCTCGAAGCCATACATTCAGACAAACGCATTTCATTTCCCATGTACGACGAT +CTCATAGAACAGTGTCATCTATCGATGGAGCATAAAAGTAAACTCGTCGACAAAGCACTCAATAAATTAG +AGTCTACCATCGATAGTCAATCTAGACTATCGTATTTGCCTCCGGAAATTATGCGCAATATCATAACCAA +GCTAAGCGACTACCATCTAAACAGTATGTTGTACGGAAAGAACCATTACAAATATTATCCATGATAGAAA +GAAAATATTTAAAAAATAATCTATATGATTGGAGAAGTAGGAAACAAACAGTAACAAGACGACGATTACT +ACATTATTAAATCATGAGGTCCGTATTATACTCGTATATATTGTTTCTCTCATGTATAATAATAAACGGA +AGAGATATAGCACCACATGCACCATCCAATGGAAAGTGTAAAGACAACGAATACAGAAGCCGTAATCTAT +GTTGTCTATCGTGTCCTCCGGGAACTTACGCTTCCAGATTATGTGATAGCAAGACTAATACACAATGTAC +ACCGTGTGGTTCGGATACCTTTACATCTCACAATAATCATTTACAGGCTTGTCTAAGTTGTAACGGAAGA +TGTGATAGTAATCAGGTAGAGACGCGATCGTGTAACACGACTCACAATAGAATCTGTGAATGCTCTCCAG +GATATTATTGTCTTCTCAAAGGAGCATCAGGGTGTAGAACATGTATTTCTAAAACAAAGTGTGGAATAGG +ATACGGAGTATCCGGATACACGTCTACCGGAGACGTCATCTGTTCTCCGTGTGGTCCCGGAACATATTCT +CACACCGTCTCTTCCACAGATAAATGCGAACCCGTCGTAACCAGCAATACATTTAACTATATCGATGTGG +AAATTAACCTGTATCCAGTCAACGACACATCGTGTACTCGGACGACCACTACCGGTCTCAGCGAATCCAT +CTCAACGTCGGAACTAACTATTACCATGAATCATAAAGATTGTGATCCAGTCTTTCGTGCAGAATACTTC +TCTGTCCTTAATAATGTAGCAACTTCAGGATTCTTTACAGGAGAAAATAGATATCAGAATACTTCAAAGA +TATGTACTCTGAATTTCGAGATTAAATGTAACAACAAAGATTCATCTTCCAAACAGTTAACGAAAACAAA +GAATGATACTATCATGCCGCATTCAGAGACGGTAACTCTAGTGGGCGACTGTCTATCTAGCGTCGACATC +TACATACTATATAGTAATACCAATACTCAAGACTACGAAAATGATACAATCTCTTATCATATGGGTAATG +TTCTCGATGTCAATAGCCATATGCCCGCTAGTTGCGATATACATAAACTGATCACTAATTCCCAGAATCC +CACCCACTTATAGTAAGTTTTTTTACCTATAAATAATAAATACAATAATTAATTTCTCGTAAAAGTAGAA +AATATATTCTAATTTATTATATGGTAAGAAAGTAGAATCATCTAGAACAGTAATCAATCAATAGCAATCA +TGAAACAATATATTGTCCTGGCATGCATGTGCCTAGTGGCAGCTGCTATGCCTACTAGTCTTCAACAATC +TTCATCCTCGTGTACTGAAGAAGAAAACAAACATCATATGGGAATCGATGTTATTATCAAAGTCACAAAG +CAAGACCAAACACCGACCAATGATAAGATTTGTCAATCCGTAACGGAAGTTACAGAGACCGAAGATGATG +AGGTATCCGAAGAAGTTGTAAAAGGAGATCCCACCACTTATTACACTATCGTCGGTGCGGGTCTTAACAT +GAACTTTGGATTCACCAAATGCCCAAAGATTTCATCCATCTCCGAATCCTCTGATGGAAACACTGTGAAT +ACTAGATTGTCCAGCGTGTCACCGGGACAAGGTAAGGACTCTCCCGCGATCACGCGTGAAGAAGCTCTGG +CTATGATCAAAGACTGTGAGATGTCTATCGACATCAGATGTAGCGAAGAAGAGAAAGACAGTGACATCAA +GACCCATCCAGTACTTGGGTCTAACATCTCACATAAGAAAGTGAGTTACAAAGATATCATCGGTTCAACG +ATCGTTGATACAAAATGTGTCAAGAACCTAGAGTTTAGCGTACGTATCGGAGACATGTGTGAGGAATCAT +CTGAACTTGAAGTCAAGGATGGATTCAAGTATGTCGACGGATCGGCATCTGAAGGTGCAACCGATGATAC +TTCACTCATCGATTCAACAAAACTCAAAGCATGTGTCTGAATCGATAACTCTATTCATCTGAAAATGGAT +GAGTTGGGTTAATCGAACGATTCAGACACCGCACCACGAATTAAAAAAGACCGGGCACTATATTCCGGTT +TGCAAAACAAAAATATTTAACTACATTCACAAAAAGTTACCTCTCGTTACTTCTTCTTTCTGTTTCAATA +TGTGATACGATATGATCACTATTCGTATTCTCTTGGTCTCATAAAAAAGTTTTACAAAAAAAAAAAAAAA +TATTTTTATTCTCTTTCTCTCTTCGATGGTCTCACAAAAATATTAAACCTCTTTCTGATGTCTCAACTAT +TTCGTAAACGATAACGTCCAACAATATATTCTCGTAGAGCTTATCAACATCCTTATACCAATCTAGGTTG +TCAGACAATTGCATCATAAAATAATGTTTATAATTTACACGTTAACATCATATAATAAACGTATATAGTT +AATATTTTTGGAATATAAATGATCTGTAAAATCCATGTAGGGGACACTGCTCACGTTTTTTCTCTAGTAC +ATAATTTCACACAAGTTTTTATACAGACAAATTAATTCTCGTCCATATATTTTAAAACATTGACTTTTGT +ACTAAGAAAAATATCTTGACTAACCATCTCTTTCTCTCTTCGATGGGTCTCACAAAAATATTAAACCTCT +TTCTGATGGAGTCGTAAAAAGTTTTTATCCTTTCTCTCTTCGATAGGTCTCACAAAAATATTAAACCTCT +TTCTGATGGTCTCTATAAACGATTGATTTTTCTTACCCTCTAGAGTTTCCTACGGTCGTGGGTCACACAT +TTTTTTCTAGACACTAAATAAAATAGTAAAATTAAATTAATTA + diff --git a/assets/MPXV-UK_P2.fasta.amb b/assets/MPXV-UK_P2.fasta.amb new file mode 100755 index 0000000..65a3839 --- /dev/null +++ b/assets/MPXV-UK_P2.fasta.amb @@ -0,0 +1,2 @@ +197233 1 1 +173285 10 N diff --git a/assets/MPXV-UK_P2.fasta.ann b/assets/MPXV-UK_P2.fasta.ann new file mode 100755 index 0000000..2b32121 --- /dev/null +++ b/assets/MPXV-UK_P2.fasta.ann @@ -0,0 +1,3 @@ +197233 1 11 +0 MT903344.1 Monkeypox virus isolate MPXV-UK_P2, complete genome +0 197233 1 diff --git a/assets/MPXV-UK_P2.fasta.bwt b/assets/MPXV-UK_P2.fasta.bwt new file mode 100755 index 0000000..e709763 Binary files /dev/null and b/assets/MPXV-UK_P2.fasta.bwt differ diff --git a/assets/MPXV-UK_P2.fasta.fai b/assets/MPXV-UK_P2.fasta.fai new file mode 100755 index 0000000..8b4d116 --- /dev/null +++ b/assets/MPXV-UK_P2.fasta.fai @@ -0,0 +1 @@ +MT903344.1 197233 64 70 71 diff --git a/assets/MPXV-UK_P2.fasta.pac b/assets/MPXV-UK_P2.fasta.pac new file mode 100755 index 0000000..d4c58ff Binary files /dev/null and b/assets/MPXV-UK_P2.fasta.pac differ diff --git a/assets/MPXV-UK_P2.fasta.sa b/assets/MPXV-UK_P2.fasta.sa new file mode 100755 index 0000000..be62e8f Binary files /dev/null and b/assets/MPXV-UK_P2.fasta.sa differ diff --git a/assets/MPXV-UK_P2.noN.fasta b/assets/MPXV-UK_P2.noN.fasta new file mode 100755 index 0000000..0acb290 --- /dev/null +++ b/assets/MPXV-UK_P2.noN.fasta @@ -0,0 +1,2 @@ +>MT903344.1 Monkeypox virus isolate MPXV-UK_P2, complete genome +TAATTAATTTAATTTTACTATTTTATTTAGTGTCTAGAAAAAAATGTGTGACCCACGACCGTAGGAAACTCTAGAGGGTAAGAAAAATCAATCGTTTATAGAGACCATCAGAAAGAGGTTTAATATTTTTGTGAGACCTATCGAAGAGAGAAAGGATAAAAACTTTTTACGACTCCATCAGAAAGAGGTTTAATATTTTTGTGAGACCCATCGAAGAGAGAAAGAGATGGTTAGTCAAGATATTTTTCTTAGTACAAAAGTCAATGTTTTAAAATATATGGACGAGAATTAATTTGTCTGTATAAAAACTTGTGTGAAATTATGTACTAGAGAAAAAACGTGAGCAGTGTCCCCTACATGGATTTTACAGATCATTTATATTCCAAAAATATTAACTATATACGTTTATTATATGATGTTAACGTGTAAATTATAAACATTATTTTATGATGCAATTGTCTGACAACCTAGATTGGTATAAGGATGTTGATAAGCTCTACGAGAATATATTGTTGGACGTTATCGTTTACGAAATAGTTGAGACATCAGAAAGAGGTTTAATATTTTTGTGAGACCATCGAAGAGAGAAAGAGAATAAAAATATTTTTTTTTTTTTTTGTAAAACTTTTTTATGAGACCAAGAGAATACGAATAGTGATCATATCGTATCACATATTGAAACAGAAAGAAGAAGTAACGAGAGGTAACTTTTTGTGAATGTAGTTAAATATTTTTGTTTTGCAAACCGGAATATAGTGCCCGGTCTTTTTTAATTCGTGGTGCGGTGTCTGAATCGTTCGATTAACCCAACTCATCCATTTTCAGATGAATAGAGTTATCGATTCAGACACATGCTTTGAGTTTTGTTGAATCGATGAGTGAAGTATCATCGGTTGCACCTTCAGATGCCGATCCGTCGACATACTTGAATCCATCCTTGACTTCAAGTTCAGATGATTCCTCACACATGTCTCCGATACGTACGCTAAACTCTAGGTTCTTGACACATTTTGTATCAACGATCGTTGAACCGATGATATCTTTGTAACTCACTTTCTTATGTGAGATGTTAGACCCAAGTACTGGATGGGTCTTGATGTCACTGTCTTTCTCTTCTTCGCTACATCTGATGTCGATAGACATCTCACAGTCTTTGATCATAGCCAGAGCTTCTTCACGCGTGATCGCGGGAGAGTCCTTACCTTGTCCCGGTGACACGCTGGACAATCTAGTATTCACAGTGTTTCCATCAGAGGATTCGGAGATGGATGAAATCTTTGGGCATTTGGTGAATCCAAAGTTCATGTTAAGACCCGCACCGACGATAGTGTAATAAGTGGTGGGATCTCCTTTTACAACTTCTTCGGATACCTCATCATCTTCGGTCTCTGTAACTTCCGTTACGGATTGACAAATCTTATCATTGGTCGGTGTTTGGTCTTGCTTTGTGACTTTGATAATAACATCGATTCCCATATGATGTTTGTTTTCTTCTTCAGTACACGAGGATGAAGATTGTTGAAGACTAGTAGGCATAGCAGCTGCCACTAGGCACATGCATGCCAGGACAATATATTGTTTCATGATTGCTATTGATTGATTACTGTTCTAGATGATTCTACTTTCTTACCATATAATAAATTAGAATATATTTTCTACTTTTACGAGAAATTAATTATTGTATTTATTATTTATAGGTAAAAAAACTTACTATAAGTGGGTGGGATTCTGGGAATTAGTGATCAGTTTATGTATATCGCAACTAGCGGGCATATGGCTATTGACATCGAGAACATTACCCATATGATAAGAGATTGTATCATTTTCGTAGTCTTGAGTATTGGTATTACTATATAGTATGTAGATGTCGACGCTAGATAGACAGTCGCCCACTAGAGTTACCGTCTCTGAATGCGGCATGATAGTATCATTCTTTGTTTTCGTTAACTGTTTGGAAGATGAATCTTTGTTGTTACATTTAATCTCGAAATTCAGAGTACATATCTTTGAAGTATTCTGATATCTATTTTCTCCTGTAAAGAATCCTGAAGTTGCTACATTATTAAGGACAGAGAAGTATTCTGCACGAAAGACTGGATCACAATCTTTATGATTCATGGTAATAGTTAGTTCCGACGTTGAGATGGATTCGCTGAGACCGGTAGTGGTCGTCCGAGTACACGATGTGTCGTTGACTGGATACAGGTTAATTTCCACATCGATATAGTTAAATGTATTGCTGGTTACGACGGGTTCGCATTTATCTGTGGAAGAGACGGTGTGAGAATATGTTCCGGGACCACACGGAGAACAGATGACGTCTCCGGTAGACGTGTATCCGGATACTCCGTATCCTATTCCACACTTTGTTTTAGAAATACATGTTCTACACCCTGATGCTCCTTTGAGAAGACAATAATATCCTGGAGAGCATTCACAGATTCTATTGTGAGTCGTGTTACACGATCGCGTCTCTACCTGATTACTATCACATCTTCCGTTACAACTTAGACAAGCCTGTAAATGATTATTGTGAGATGTAAAGGTATCCGAACCACACGGTGTACATTGTGTATTAGTCTTGCTATCACATAATCTGGAAGCGTAAGTTCCCGGAGGACACGATAGACAACATAGATTACGGCTTCTGTATTCGTTGTCTTTACACTTTCCATTGGATGGTGCATGTGGTGCTATATCTCTTCCGTTTATTATTATACATGAGAGAAACAATATATACGAGTATAATACGGACCTCATGATTTAATAATGTAGTAATCGTCGTCTTGTTACTGTTTGTTTCCTACTTCTCCAATCATATAGATTATTTTTTAAATATTTTCTTTCTATCATGGATAATATTTGTAATGGTTCTTTCCGTACAACATACTGTTTAGATGGTAGTCGCTTAGCTTGGTTATGATATTGCGCATAATTTCCGGAGGCAAATACGATAGTCTAGATTGACTATCGATGGTAGACTCTAATTTATTGAGTGCTTTGTCGACGAGTTTACTTTTATGCTCCATCGATAGATGACACTGTTCTATGAGATCGTCGTACATGGGAAATGAAATGCGTTTGTCTGAATGTATGGCTTCGAGATATGTGTGATACCGGATGTCTTCTGTTCTCAATACCGTATACAAGTCGGTGTCTGAGATTCGAATCTCTTTGAGGAGACTTATGTCACGACTACATTTTTCGATGATGGAATCTATCTTATCGAATGATATATTTTTCATAAATACACTTTTATAGTCCTCGTTTAAACAGAATTTAGTATGTAGTTCCGCAAATGACTCGTCCCTTAATAGGCAGTAGGCTATTATCTTCTTTACGTAGTGATCGTCGTAGGGAGAGAACTCCGACATCTTGTAGAACAACGATTTAATCATAGGTAGAGATACTTTCAGTCTGTGGTGGATAATGTCATTAACGACATCCGCCTTGTATATAATGTTTCTGTTTTCAAACACCAAGTCGAATACTGTCTTATCGTCTTTAGTCGGAAGGTTGATGTCGTATCCGATGTATACGAGGTATGAGGCAACATTGTTATTGCAATTCTGGAAGGCGGTATGAAGAGGAGTCATTGTATTATAGTATTCGTCTTTCTGAATGTCGAATCTATCTAGTAGATACCGTAGTATATTGAGAGAGCGACTTCCATATCCTTGATTATGTTTTATGAATAGATAAAGTAGATGTTGTCCTTCTTCCTTTTGTAATTTCCCGTATTTTTGTTCGTGCCAATTGAGTAACATTATGAGAATATGACCTGTTGCACAATCGTTCTTTATGTATTCCATGATGGGTGTACAATCAAGATTATTACGTATCCTCGTATCGGCTCCTCGAGATAAAAGAGCATACACCACACGAGGACTATGTTTGGTATACTGTTGAAGGTAAGTGTGTAACGGCGTATTTCCGATTTTCGTAACCGCGTTAATGTTTGCTCCATGATCTATTATCGCGTAGATGAATCGCTTCTCAGCTCGCATCTTAGTGTGACTCTTTGACTTGTAATAATTGCTTTCGTGGAACGCGGATATGTGTTTACAGTAGTAATGAAGAGAAGTGAGTCCATCCTCATCGACGCAATTAGGGTCAGATCCTTTAGTCAATAATTTGTACAGAACGTAATAGTTTAAGCTCCCATTGAATTTATATCTAAGATAACACAGCAATAGATCGGATGATTTACTAAAGTCATCAATGGGGTCCGTTAGTATATCAAAGATCTTGTTATCGATTGATAGTGAATGAATCAGATAGTGGTGTAGAGGAATATGTCCTTTTTTATCCTTGCTATCAAAGTTACGCATGCCGTGGCGTAACAATATCTTTAATACAGATGGATTAAATCGTGTATTCATCGTATAGCAATGTAATGGAGAGTTACCACATTTTAGTCGTTTATTCAGATCGCAGTGTTTAATAACTAATTTAAACAGATGAGATGATATATCCACATCAAAGAATGCGAGATACATATGACAGACATTATTGACAGAAATGTGACCTTCATTATCACCGTCGTCCATAAATGCGTTAGGTACGTACCACATACTATCGTTAACGATGCGCACAATCTCGTCCATTTCATCCATCTTCATAATGATTTACTTTTTCATAATTAGAGAAAAAGATCAAGGTATAAAAATTAGAAGTGTTAGACTATAAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTTAACTAACTTATGACTATTAACTCATTTCAAGAAAGGTGGGTGGATAGAACTCTATATGACAGCTTGTGAAACAATTAGATCCCTAATTTCTAATGGAAGTTTTGATAGGAGATTGTCATCAGTTGATACATTGTTTATTATCTCATCTATTAGAGCACGTCTGTTTAGAGCTTTAGTGACCTGCTCGGTTACTTCTGTGTAAATCTTGAATCCTTTAGTGATACACTGTGTCAAAACTGGATGTTTAGAATACCTATGTAGAATATGGGAAGCATGCTTGTTTTTGTCTCTATTATAGATTAACTCATACATGGTTGTATTATGAATTTTCATCTGCCTAATGTACTCCAATTCTTGTTTACAATCAATTATATAATCAAAGAGTGATGATGCATACACATTACAAAGTGAATAATCTACCATCATAAAATACTTGATACAGAGCTTTATCACATCATGGTTTTCAATTGTATTATTAAGTATAGCTAATTTTATACAGTCAATAGACAATGGTTCTCTAAGCAATATTTCTAATATTTTAAGATGTGCTTCCCTACGGGCGATGACAGATCCCCTATCCACGGCCACGTCAAGACATGTATATCCATTACTCATTACTGCGTTGACATTTGCTCCATTTTCTAATAGCCATGATACTAAATCTATATAACCTGCATAGATAGCGCGATAAAGCAAGGTCCTTCCACCAGCATCTAGTTGATTGATATCTTCAATATATGGGATACAAAGCTTATAAATTTCTAATACTGTGGGTTCATCTACAAGGAATCCCCTAGTATACTGAATTATTTTATATAGATCTAATTTAACATCATTTTCATCTGGGATACCACAATTCAAAATAAACTCAACAACACTACTTTCCTTTTTACATATTCCCCTAAAATAGGCATTCAAGCATTCTATTTTATATATTACAGCCCCATGATCTACCATAAGATCAACAATGTCTATTTCTACATATGCATTAGATAGATAGTAAAGTAAGAGATCTTGCACAGAATTACAATTCTTAATAATTATAGAGAAAATATCTTCCATATAATTCTTTGACACTAATGCAGATATAATATCTTTATATGTAATATATGCAAACAGTCTATCTACTATATACTGATCAATATTATCTCTATGAATCCTAAAATAATCATACAGAACATCTACAGGATCACAAATTGGTTCAAGGAGAAATCTATCAAATATTTTCCTGTCAACAACTGGTTCTAGAACATAACAGTCAACACCTAATCCATGTTTTTTATAATCATCTACCAAAGATAATGACCAAAGATCGAGGTCGTCGTGAAACTGCTCATCGACAGCCATGAAATCTACCGACTCCATGGTGCGAATCGCACTGTCTTATTCGCCATTGATTTTCATTTTTTATAATTATGTACATGTTTTCCTTCTATTCTCAAGAGTCTACAAAAATATATTTTTTCGATATCTAAGTACTAAGTTTTTTTACTGTTTTTGTTACTGTCTTCCATTCTTCTAACTAAAGATCTGAGATAAATTATACAATCTTCGCTATCGAACCATTTTTGTAGTCTAAAGCCTGAAGTAATTAACCAACTGTTTTTATTAGTGGCTTTTTTCGATCTATCCTCGTCCTCTCATCATCCTTATATTATTATCATTATTATCATAGTCTATTAAACACAAATCATCTACGTTTATAACAACATTCTCATTATTAATTAGTTCTGTAGAATATCTTTAATAATTTGGCTATACATCTGTTCAATACTATCTATTGATGATTTCTTTTTTAAGACTTAAACTAGTTATGGTAATGACGATGAAATCGAGTAGTAACTTCTAATAAAGACTTGATATCATTATCATATGTTTGATCGTCATAGTTAATAGTGTGGCTAAATGGTACTGTTAATAAGTTTATAGACAATATCATAGTATTTTCTTTCCAGAATTAGATTATTTTTTTAAATACTGATCCTCACAATTCCGTGATGTAGCAGTAGTTGGTGCATGGTCTATATCGTTAAAATGTATCATATATAATAGTTTTCTGACGTGGAGTACAGAATTTTCGATTAATGAGTTCATGGTAAGGAAGGGCAAATGCCTGTATATAATATACATAAGTTAATAGTTTTTTATCATATTTTCTAATACCATAATAAAAATTATCATTATTGCGTTTGGTAGTTCTGCCCTATCATCTATATCACTGTCACTCTCGCTCTCACTATATCTTCTAAAATTACAAACAACTGGATATTCGATAACAGCATTTGTGTAGTTTTTGTCTTTTACAGTATATACGTTATTGTCAAAATCTAAACAAATATTAGCATAATACATCTATCTATAAGATCAGGATCCATGTTCGAGCATACTAGCCATGTATATTTGTAACTTCGTCGTACAGCGTTAGATCAATAGAATAAACAATCGTGTGACGCAACTTTTTTACGATCTAGTTGTATGAGTTTATCGTTTACATAAGCAATTAACGGCTTTAACAGATGATCTGAGTAATAATATACCTCTGTTATACGTTTAATGTTCACGGTCTTAGTATTTTTAGATATCAATTGTGATTTACACCATATTCGACTCCCTTGTGTGTAACGTTAGAAATTCTAAATCTATATTATCTATTACAGCGTAAAACACATTCAATATTGTATTGTTATTTTTATATTATTTACACAATTAACAATGTATTATTAGTTTATATTACTGAATTAATAATATAAAATTCCCAATCTTGTCATAAACACAAAATCCATTAAAAATGTCGATAAAATATCTGATGTTGTTGTTCGCTGCTATGATAATCAGATCATTAGCCGATAGTGGTAATGCTATCGAAACAACATCGCCAGAAATTACAAACGCTACAACAGATATTCCAGCTATCAGATTATGTGGTCCAGAGGGAGATGGATATTGTTTACACGGTGACTGTATCCACGCTAGAGATATCGACGGTATGTATTGTAGATGCTCTCATGGTTATACAGGTATTAGATGTCAGCATGTAGTATTAGTAGACTATCAACGTTCAGGAAAACCAGACACTACAACATCATATATCCCATCTCTAGGTATTGTGCTTGTATTAGTAGGCATTATTATTACGTGTTGTCTATTATCTGTTTATATGTTCACTCGAAGAACTAAACTACCTATACAAGATATGGTTGTGTTATATTTTTTATAAAATTTTTTTATGAGTATTTTTACAAAAATGTATATGTATAAAAAAAATACTAAGTATACGATGTATCCTGTATTATTTGTATTTATCTAAACAATACTTCTGCCTCTAGATGGGATACAAAAATTTTTTATTTCAGCATATTAAAGTAAAATCTAGTTACCTTGAAAATGAATACAGTGGGTGGTTCCGTATCACCAGTAAGAACATAATAGTCGAATACAGTATCCGATTGAGATTTTGCATACAATACTAGTCTAGAAAGAAATTTGTAATCATCCTCTGTGACAGGAGTCCATATATCTGTATCATCGTCTAGTTTTTATCAGTGTCCTATGCTATATTCCTGTTATCATCATTAGTTAATGAAAATAACTCTCGTGCTTCAGAAAAGTCAAATATTGTATCCATACATATATCTCCAAAACTATCACTTATACGTTTATCTTTAACGAACATATACCTAGATGGTTATTTACTAACAGACATTTTTTCAAGATCTATTGACAATAACTCCTATAGTTTCCACATCAACCAAGTAATGATCATCTATTGTTATATAACAATAACATAACTCTTTTCCATTTTTATCAGTATCTATATCAACGTCGTTGTAGTGAATAGTAGTCATTGATCTATTATATGAAACGGATATGTCTAGTTAATATTTTCTTTGATTTAAAGTCTATAGTCTTTACAAACATAATATCCTTATCCGACTTTATATTTCCTGTAGGGTGGCATAATTTTATTCTGCCTCCACAATCAGTGTTTCCAAATATATTACTAGACAATATTCCATATAGTTATTAGTTAAGGGACCCAATTAGAACACGTACGCGCTTATTCATCATTTGGATCGTATTTCATAAAAGTTATTATGTTATAGATGTCAACACATTCTACATTTTTTTAATTGTCTATATAGTATTTTTCTGATATTTTCTATAATATCAGAATTGTCTTCCATAGGAAGTTGTATACTATTCGGAATCAGTTACATGTTTAAATAATTCTCTGATGTCATTCCTTATACAATCAAATTCATTATTAAACAGTTTAATAGTCTGTAGACCTTTATCGTCGTACATATCCATTGTCTTATTAGTTACGCTTATTTTTATGGGTTTTACGTTGCTTTATTATATTTTATAATAATGATTGTTTGACAATGTCGTAGTATAGATATATTATTAGAGGAGGTATAATTATAAAAAGTTTCTGAGTACGATGTTATAAGAGGAGAGGACACATTAACATCATACATCAATTAACTACATTCTTATAACATTGTAATCAAAAGAATTGCAATTTTGATGTATAACAACTGTCAATGGAATTGTATATTACAAATTACGGTATGTTGTAACAACAAATACCGATCGGTAATTGTCTCTGCCGCTGTAATAGAATTAATTATATATCTATTACACCGGCCTTGTATCATAATAAAGTTGTGGTAGTATGATCTCCATATTTATAATTTAGTACTTTGTATTTAGTTTTTTTGGAATCATAAAAAAAGTTTTACTAATTTAAAATTTAAAAAGTATTTACATTTTTCACTGTTTAGTCGCGGATATGGAATTCGATCCTGTCAAAATCAATACATCATCTATAGATCATGTAACAATATTACAATACATAGATGAACCAAATGATATAAGACTAACAGTATGCATTATCCGAAATGTTAATAACATTACATATTATATCAATATCACAAAAATAAATCCACATTTGGCTAATCGATTTCGGGCTTGGAAAAAACGTATCGCCGGAAGGGACTATATGACTAACTTATCTAGAGATACAGGAATACAACAATCAAAACTTACTGAAACTATACGTAACTGTCAAAAAAATAAAAACATATATGGTCTATATATACACTACAATTTAGTTATTAATGTGGTTATTGATTGGATAACCGATGTGATTGTTCAATCAATATTAAGAGGGTTGGTAAATTGGTACATAGCTAATAATACATATACTCCAAATACACCCAATAATACTACAACCATTTCTGAGTTGGATATCATCAAAATACTGGATAAATACGAGGACATGTATAGAGTAAGTAAAGAAAAAGAATGTGGAATTTGCTATGAAGTTGTTTACTCAAAACGATTAGAAAACGATAGATACTTTGGTTTATTGGATTCGTGTAATCATATATTTTGCATAACATGTATCAATATATGGCATAGAACACGAAGAGAAACCGGTGCGTCAGATAATTGTCCTATATGCCGTACACGTTTTAAAAAAATAACAATGAGCAAGTTCTATAAGCTAGTTAACTAATAAATAAAAAGTTTAATTATCGACGATATATGTCGTTATTTTTCTCTCATATGAAAGATTAATTTGATTCTAATATAATCTTCAGTATTGGATGAATCTCAATTCAAATTAATTCCATTAGATTAGATTAGATTAGATCATAAATAAAAATAGTAGCACGCACTACTTCAGCCAAATATTCTTTTTTGAAACGCCATCTAGCGTAATGAGAACACAAGTGAACCTATAATGAGCAAATTTATTAGTATCGGTTACATGAAGGACTTTACGTAGAGTGGTGATTCCTCCATCTGTGGTACGAACGGTTTCATCTTCTTTGATGCCACCACCCAGATGTTCTATAAACTTGGTATCCTCGTCCGATTTCATATCATTTGCCAACCAATACATATAGCTAAACCCAGGCATACGTTCCACACATCCGGAACAATGAAATTCTCCAGAAGATGTTACAATGGCTAGATTTGGACATTTGGTTTCAACCGCGTTAACATATGAGTGAACACACCCATACATGAAAGCGATGAGAAATAGGATTCTCATCTTGCCAAAATATCACTATAAAAAATTTATTTATCAATTTTAAAGGTATAAAAAAATACTTATTGTTGCTCGAATATTTTGTATTTGATGGTATACGGAAGATTAGAAATGTAGGTATTATCATCAACTGATTTTATGATGGTTTTATGAATTTTATTATGCTTCACTATTGCATCGGAAATAATATCATATGCTTCCACGTATATTTTATTTTGTTTTGACTCATAATACGCACGTAATTCTGGATTATTGGCATATCGATGAATAATTTTAGCTCCATGCTCAGTAAATATTAATGAGAACATAGTGTTGCCTCCTACCATTATTTTTTTCATCTCATTCAATTCTTGATTGCAGAGATCTATATAATCATTATAGCGTTGACTTATGGACTCTGGAATCTTAGACGATGTACAGTCATCTATAATCATGGTATATTTAATACATTGTTTTATAGCATAGGCATTATCTACGATATTAGATACTTCACTCAATGAATCAATCACACAATCTAATGTAGGTTTATGACATAATAGCATTTTCAGCAGTTCAATGTTTCTAGATTCGTTGATGGCAATGGTTATACATGTATATCCGTTATTTGATCTAATGTTGACATCTGAACCGGATTCTAGCAGTAAAGATACTAGAGATTGTTTATTATATCTAACAGCCTTGTGAAGAAGTGTTTCTCCTCGTTTGTCAATCATGTTAATGTCTTTAAGATAAGGTAGACAAATGTTTATAGTACTAAGAATTGGGCAAACATAAGACATGTCACAAAGACCCTTTTTGTATGTATAAGTGTAGAAATTATAACATCCATAGTTGGATTCACATAGGTGTCCAATCGGGATCTCTCCATCATCGAGATGATTGACGGCATCTCCCCCTTCCTTTTTTAGTAGATATTTCATCGTGTAAGAATCAATATTAATATTTCTAAAGTATCTGTGTATAGCCTCTTTATTTACCACAGCTCCATATTCCAACATGCATTCCACTAGAGGGATATCGATATCGCCGAATGTCATATACTCAATTAGTATATGTTGGAGGACATCCGAGTTCATTGTTTTCAATATCAAAGAGATGGTTTCCTTATCATTTCTCCATAGTGGTACAATACTACACATTATTCCGTACGGCTTTCCATTCTCCAAAAACAATTTTACCAAATCTAAATCTACATCTTTATTGTATCTATAATCACTATTTAGATAATCAGCCATAATTCCTCGAGTGCAACATGTTAGATCGTCTATATATGAATAAGCCGTGTTATCTATTCCTTTCATTAACAATTTAACGATGTCTATATCTATATGAGATGACTTAATATAATATTGAAGAGCTGTACAATAGTTTTTATCTATAGAAGACGGCTTGATTCCGTGATTAATTAGACATTTAACAACTTCCGGACGCACATATGCTCTCGTATCCGACTCTGAATACAGATGAGCGATGATATACAGATGCAATACGGTACCACAATTTCGTGGTTGATAATCATCATACACGTATCCGTACTCGTCATCCTCATAAAGAACACTGCATCCATTTTCTATGAACAAATCAATAATTTCAGGAACAGGATCATCTGTCATTACATAATTTTCTATAACTGAACGATGGTTTTCACATTTAACACTCAAGTCAAATCCATGTTCTACCAACACCTTTATCAAGTCAACGTCTACATTTTTTGATTTCATATAGCTGAATATATTAAAGTCATTTATGTTGCTATATCCAGTAGCTTCTAGTAGAGCCATCGCTATATCCTTATTGACTTTAACATGTCTACTATTTGTGTATTCTTCTATTGGGGTAAACTGTCTCCAATTTTTATGTAATGGATTAGTGCCACTATCTAGTAGTAGTTTGACGACCTCAACATTATTACAATGCTCATTGAAAAGGTATGCGTGTAAAGCATTATTCTTGAATTGGTTCCTGGTATCATTAGGATCTCTGTCTCTCAACATCTGTTTAAGTTCATCGAGAACCACCTCCTCATTTTCCAGATAGTCAAACATTTTGACTGAATAGAAGTGAATGAGCTACTGTGAACTCTATACACCCGCACAACTAATGTCATTAAATATCATTTTTGAATGTATTTATACCATGTCAAAAACTTGTACAATTATTAATAAAAATAATTAGTGTTTAAATTTTACCAGTTCCAGATTTTACACCTCCGTTAACACCTCCATTAACCCCACTTTTTACACCACTGGACGATCCTCCTCCCCACATTCCACTGCCACTAGATGTATAAGTTTTAGATCCTTTATTACTACCATCATGTCCATGGATAAAGACACTCCACATGCCGCCACTACTACCCCCTTTAGACGACATATTAATAAGACAAGTTTAACAATAAAATTAATCACGAGTACCCTACTACCAACCACTATTATATGATTACAGTACCTTGACTAAAGTCTCTAGTCACAAGATCAATACTACCAACCTACGCTATTATATGATTATAGTTTCTATTTTTATAGGAACGCGTACGAGAAAATCAAATGTCTAAGTTCTAACGGTAGTGTTGATAAACGATTGTTATCCGCGGATACCTCATCTATCATGTTGTCTATTTTCTTACTTTGTTCTATTAACCTATTAGCATTATATATTATTTGATTATAAAACTTATATTGCTTATTAGCCCAATCTGTAAATATCGGATTATTAACATATCGTTTCTTTGTAGGTTTATTTAACTTGTACATCACTGTAAGCATGTCCGTACCATTTATTTTAATTTGACACATATCAGCAATTTCTTTTTCGCAGTCGGTTATATATTCTATATAAGATGGATACGTATCACATATGTACTTATAGTCTACTAATATGAAGTACTTAATACATATTTTCAGTAACGATTTAGCCTTATTACCTATTAATAAGTGCCTGTCGTTGGATAGGTAATCAACTGTTTTCTTAATACATTCGATGGTTGGTAATTTACTCAAAATAATTTCCAATATCTTAATATATATTTCTGCTATTTCTGGTATACATGCATGTGCCATTATAACACAAATACCAATACATGTAGACCCATATGTTGTTGTTATATTAATATCTGCGCCATTATCTATTAACCATTCTATTAGGGCAACACTATGCGACTCGATACAATAATAAAGTATACTACGTCCATGTTTATCTATTTTGTTTATATCATCGATATACGGCTTACAAATTTCTAGTATCGATAACACTTCTGACTCGTGAATAAATAAGGTAGGGAATAACGGCATAATATTTATTATGTTATCATCATTAACAACTACGTTTCCATTTTTTAAAATATACTCTACAACTTTAGGATCCCTATTGTCAAATCTTTTAAAATATTTATTTATATGCTTAAATCTATATAATATAGCTCCTTCCCTAATCATACATTTGATAACATTGATGTACACTGTATGATAAGATACATATTCTGACAATAGATCTTGTATAGAATCTGTATATCTTTTAAGAATTGAGGATATTATGACATTATTACGTAAACTATTACACAATTCTAAAATATAAAATGTATCATGGGCAGATAATAGTTTATCCACTATATAATTATCTATTTTATGATTTTTCTTCCTATATTGTTTACGTAAATAGATAGATAGAATATGCATTAGTTCATTACCGCTATAGTTACTATCGAATAACACGTCAAATATTTCCCGTTTAATATCGCATTTGTCAACATAATAATAGAGTATGGTACGTTCACGATAAGTATAATGACACATCTCGTTTTCGTGCGAAATTAAATAGTTTATCACGTCCAAAGATGTCACATAACCATCTTGTGACCTAGTAATAATATAATAATAGAGAACTGTTTTACCCATTCTATTATCATAATCAGTGGTGTAGTCATAATCTAAATAATCAAACTCGTCATCCCAATTAAAATAAATATAATCAGTACATTGAATGGGTATGATATTGTACCCATACTGTATGTTGCTACATGTAGGTATTCCTTTATCCAATAATAGTTTAAATACATCTATATTAGGATTTGATGTTGTCGCGTATTTCTCTACAATATTAATACCATTTTTGATACTATTTATTTCTATACCTTTCGAAATTAGTAATTTCAATAAGTCTATATCGATGTTATCAGAACATAGATATTCAAATATATCAAAATCATTGATATTTTTATAGTCGACTGACGACAATAACAAAATCACAACATCGTTTTTGATATTATTATTTTTTTTGGTAACGTATGCCTTTAATGGAGTTTCACCATCATACTCATATAATGGATTTGCACCACTTTCTATTAATGATTGTGCACTACTGGCATCGATGTTAAATGTTTTACAACTATCATAGAGTATCTTATCGTTAACCATGATTGGTTGTTGATGTTATCACATTTTTTGGTTTCTTTCATTTCAGTTATGTATGGATTTAGCACGTTTGGGAAGCATGAGCTCATATGATTTCAGTACTGTAGTGTCAGTACTATTAGTTTCGATCAGATCAATGTCTAGATCTATAGAATCAAAACACGATAGGTCAGAAGATAATGAATATCTGTACGCTTCTTCTTGTACTGTAACTTCTGGTTTTGTTAGATGGTTGCATCGTGCTTTAACGTCAATGGTACAAATTTTATCCTCGCTTTGTGTATATCATATTCGTCTCTAGTATAAAATTCTATATTCAAATTATCATGCGATGTGTGTACGCTAACGGTATCAATAAACGGAGCACAGCATTTAGTCAACAGTAATCCAAAATTTTTTAAAGTATATCTTAACGAAAGAAGTTGTCATCGTTAGAGTGTGGTAAATCATTGTCTACGGTACTAGATCCTCATAAGTGTATATATCTAGAGTAATATTTAATTTATCAAATGGTTGATAATATGGATGTTGTGGCAATTTCCTAATACGGAAATAAGACATAAACACGCAATAAATCTAATTGCGGACATGTTACACTCCTTAAAAAATACGAATAAACACTTTGGCTTTTAGTAAGTGTCATTTAACACTATACTCATATTAATCCATGGACTCATAATCTCTATACGGGATTAACGGATGTTCTATATACGGGGATGAGTAGTTCTCTTCTTTAACTTTATACTTTTTACTAATCATATTTAGACTGATGTATGGGTAATAGTGTTTGAAGAGCTCGTTCTCATCATCAGAATAAATCAATATCTCTGTTTTTTTGTTATACAGATGTATTACAGCCTCATATATTACGTAATAGAACGTGTAATCTACCTTATTAACTTTCACCGCATAGTTGTTTGCAAATACGGTTAATCCTTTGACCTCGTCGATTTCCGACCAATCTGGGCGTATAATGAATCTTAACTTTAATTTCTTGTAATCATTCGAAATAATTTTTAGTTTGCATCCGTAGTTATCTCCTCTATGTAACTGTAAATTTCTCAACGCGATATCTCCATTAATAATGATGTCGAATTCGTGTTGTATACCCATACTGAATTGATGAACTAATACCGACGGTATTAATAGTAATTTACTTTTCATCTTTACATACTTGGTAATAGTTTTACTATCATAAGTTTATAAATTCCACAAGCTACTATGGAATATACCAACCATCTTAGTATAGAACACATGTCTTAAAGTTATTAATTAATTACATGTTGTTTTATATATCGCTACGAATTTAAACAGAGGAATCAGTTAGGAAGAAAAAATTATCTGTCATCATCATCATCTATTGGATAACATCTCTGTATTCTACGATAGAGTGCTATTTTAAGATGTGACAGATCCGTGTCATCAAATATATACTCCATTAAAATGATTATTCCGGCAGCGAACTTGATATTGGATACATCACGACCTTTGTTAATATCCACGACAATAGACAGCAATCCCATTGTTCCATAAACAGTGAGTTTATCTTTCTTTGAAGTGATATTTTGTAGAGATCTTATAAAACTGTCGAATGACATCGTATTTATATCTTTAGCTAAATCATATATGTTACCATCATAATATCTAACAGCATCTATCTTAAACGTTTCCATCGCTGTAAAGACGTTTCCGATAGATGGTCTCGTTTCATCAGTCATACTGAGCCAACAAATGTAATCGTGTATAACATCTTTGATAGAATCAGACTCTAAAGAAAAGGAATCGGCTTTATTATACACATTCATGATAAACTTAATGAAAAATGTTTTTCGTTGTTTAAGTTGGATGAATAGTATGTCTTAATAATTGTTATTATTTCACTAATTAATATTTAGTAACGAGTACACTCTATAAAAACGAGAATGACATAACTAATCATAACTAGTTATCAAAGAATGTCTAGGACGCGTAATTTTTTATGGTATAGATCCTGTAAGCGTTGTCTGTATTCTGGAGCTATTTTCTCTATCGCATTAGTGAGTTCAGAATATGTTATAAATTTAAATCGAATAACGAACATAACTTTAGTAAAGTCGTCTATATTAACTCTTTTATTTTCTAGCCATCGTAATACCATGTTTAAGATAGTATATTCTCTAGTTACTACGATCTCATCGTTGTCTAGAATATCGCATACTGAATCTACATCCAATTTTAGAAATTGGTCTGTGCTACATATCTCTTCTATATTATTGTTGATGTATTGTCGTAGAAAACTATTACGTAGACCATTTTCTTTATAAAACGAATATATAGTACTCCAATTATCTTTACCGATATATTTGCATACATAATCCATTCTCTCAATCACTACATCTTTAAGAGTTTGGTTGTTAAGATATTTGGCTAAACTATATAATTCTATTAGATCATCAACAGAATCAGTATATATTTTTCTAGATCCAAAGATGAACTCTTTGGCATCCTCTATAATATTATCAGAAAAGATATTTTCGTGTTTTAGTTTATCAAGATTTAACCTGTTCATATCCATGATTAACGACGTCATATAACCACATAAAATAAAAATCCATTTTCATTTTTAGCACAATACTATTCATAATTGATATTGATGTAATATTTTGTTACTTTGAACGTAAAGACAGTACACGGGTCCGTATCTCCAACAAGCACGTAGTAATCAAATTTGGTGTTGTTAAACTTCGCAATATTCATCAATTTAGATAGAAACATATACTCATCATCTGTTTTAGGAATCCATGTATTATTACCACTTTCCAACTTATCATTATCCCAGGCTATGTTTCGCCCATCATCGTTGCACAGAGTGAATAATTCTTTTGTATTCGGTAGTTCAAATATATGATCCATGCATATATCGACAAAGCTATTGTAGATGTGATTTTTCCTAAATCTAATATAAAACTCGTTTACTAGCAAACATTTTCCTGATTTATCGACCAAGACACACATGGTTTCTAAATCTATCAAGTGGTGGGGATCCATAGTTATAACGCAGTAACATAAATTATTACCTTCTTGACTGTCGCTAATATCTATATACTTATTGTTATCGTATTGGATTCTACATATAGATGGCTTGTATATCAAAGATATAGAACACATAACCAATTTATATTCTCGCTTTGTATTTTCGAATCTAAAGTTAAGAGATTTAGAAAACATTATATCATCGGATGATGATATCACTGTTTCCAGAGTAGGATATATTAAAGTCTTTAAAGATTTTGTCCGATTCAAATAAATCACTAAATAATATCCCATATTATCATCTGTTATAGTCGTGTCATTAAATCTATTATATTTTATGAAAGATATATCACTGCTCACCTCTATATTTCGTACATTTTTAAACTGTTTGTATAATATCTCTCTAATACAATCAGATATATCTATTGTGTCGGTAGACGATACCGTTACATTTGAATTAATGGTGTTCCATTTTACAACTTTTAACAAGTTGACCAATTCATTTCTAATAGTATCAAACTCTCCATGATTAAATATTTTAATAGTATCCATTTTATATCACTACGGACATAAACCATTGTATATTTTTTATGTTTATTAGTGTACACATTTTGGAAGTAAGTTCCTGGATCGGATGTCACCGCAGTAATATTGTTGATTATTTCTGACATCGACGTATTATATAGTTTTTTAATTCCATATCTTTTAGAAAAGTTAAACATCCTTATACAATTTGTGGAATTAATATTATGAATCATGGTTTTTACACATAGATCTATTACAGGCGGAACATCAATTATTATGGCAGCAACTAGTATCATTTCTACATTGTTTATGGTGATGTTTATCTTCTTCCAGCGCATATAGTCTAATATCGATTCAAACGCGTGATAGTTTATACCATTCAATATAATCGCTTCATCCTTTAGATGGTGATCCTGAATGTGTTTAAAAAATTATACGGAGACGCCGTAATAATTTCCCCATTGATAGAAAATATCACGCTTTCCATTTTCTTGAAGTACTAAAAGTAATTATAATATAATGTAAAGGTTTATATATTCAATATTTTTTATAAAAAAAATCATTTTGACATTAATTCCTTTTTAAATTTCAGTCTATCATCTATAGAAACATATTCTATGAATTTATAAAATGCTTTTACGTATCCTATCGTAGGTGATAGAACCGCTAAAAAACCTATCGAATTTCTACAAAAGAATCTGTTATATGGTATAGGGAGAGTATAAAACATTAAATGTCCGTACTTATTAAAGTATTCAGTAGCCAATCCTAACTCTTTCGAATAATTATTAATGGCTCTTATTCTGTACGAATCTATTTTTTTGAACAATGGACCTAGTGGTATATCTTGTTCTATGTATCTAAAATAATGTCTGACTAGATCCGTTAGTTTAATATCCGCAGTCATCTTGTCTAGAATGGCAAATCTAACTGCGGGTTTAGGCGTAGGCGTTAGTTTAGTTTCTATATCTACATCTATGTCTTTATCTAACACCAAAAATATAATAGCTAATATTTTATTACAATCATCCGGATATTCTTCTACGATCTCACTAACTAATGTTTCTTTGGTTATACTAGTATAGTCACGATCAGACAAATAAAGAAAATCAGATGATCGATGAATAATACATTTAAATTCATCATCTGTAAGATTTTTGAGATGTCTCATTAAAATATTATTAGTGTCAGTTCTCATTATCATATATTGACAGCAGCTATTACACTTATTTTATTTTTCTGTATTTTATTACTTTTCACCATATAGATCAGTCATTAGATCATCAAAATACTTTTCAATCATCCTAAAGAGTATGGTGAACGAATCTTCCCATCTAATTTCTGAACGTCTACCAATGTCTCTAGCCACTTTGGCACTAATAGCGATCATTCGCTTAACATCTTCTACATTATTAACTGGTTGATTCAATCTATCTAGCAATGGACCGTCGGATAGCGTCATTCTCATGTTCTTAATCAATGTACATACATCGTCATCATCTACCAATTCATCAAACAATATAAGCTTTTTAAAATCATCATTATAATAGGATGGATCGCCGTCATTTCTCCAAAGAATATATCTAATAAGTAGAGTCCTCATGCTTAGTAATTTAACTATTTTAGTTAACAACTATTTTTTATGTTAAATCAATTAGTAACACCGCTATGTTTAATACTTATTCATATTTTAGTTTTAGGATCGAGAATCAATACAAAAATTAATACATCAATTTTGGAAATACTTAGTTTCCACGTAGTCAATGAAACATTTGAGCTCATCGTAAAGGACGTTCTCGTACAAGACGTAACTATAAATTGGTTTATATTTGTTCAAGATAGATACAAATCCGATAACTTTTTTGACGAATTCTACGGGATTCACTTTAAAAGTGTCATACCGGGTTCTTTTTATTCTTTTAAACAGATCGATTGTGTGATGTTGATTAGGTCTTTTACGAATTTGATACAGAATAGCGTTTACATATCCACCATAGTAATCAATAGCCATTTGTTCGTATGTCATAAATTCTTTAATTATATGACACTGTGTATTATTTAGTTCGTCCTTGTTCATCATTAGGAATCTATCCAATATGGCAATTATATTAGAACTATAACTGCGTTGTATGCGCATGTTGATGTGTCTGTTTATACAATCAATTATACTAGGATCCATACCACTACAATCGGGTAAAATTGTAGCATCATATACCATTTCTAGTACTTTAGATTCATTGTTATCCATTGCAGAGGACGTCATGATCGAATCCAAAAAAATATATTATTTTTATGTTATTTTGTTAAAAATAATCATCAAATACTTCGTAAGATACTCCTTCATGAACATAATCAGTTACAAAACGTTTATATGAAGTAAAGTATCTACAATTTTTACAAAAGTCAGGATGCATAAGTACAAAGTACGCGATAAACGGAATAATAATAGATTTATCTAGTTTATCTTTTTCTATCTCTTTCATAGTTATATACATGGTCTCAGAAGTCGGATTATGTAACATCAGCTTCGATAAAATGACTGGGTTATTTAGTCTTACACATTCGCTCATACATGTATGACCGTTAACTATAGAGTCTACACTAAAATGATTGAATAATAGATAGTCTACCATTGTTTCGTATTCAGATAGTACAGCGTAGTACATGGCATCTTCACAAATTATATCATTATCTAATAGATATTTGACGCATCTTATGGATCCCACTTCAACAGCCATCTTAAAATCGGTAGAATCATATTGCTTTCCTTTATCGTTAATAATTTCTAGAACATCATCTCTATCATAAAAGATACAAATATTAACTGTTTGATCAGTAATAACATTGCTAGTCGATATCAATTTGTTAATAAGATGCGCTGGGCTCAATGTCTTAATAAGAAGTGTAAGAGGACTATCTCCGAATTTGTTTTGTTTATTAACATCCGTTGATGGAAGTAAAAGATTTATAATGTCTACATACTTGACTGTTTTAGAGCATACAATATGGAGAGGCGTATTTCCATCATGATCTGGTTTTGAGGGACTAATTCCTAGTTTCATCATCCATGAGATTGTAGAAGCTTTTGGATTGTCTGACATAAGATGTCTATGAATATGATTTTTGCCAAATTTATCCACTATCCTGGCTTCGAATCCGATAGACATTATTTTTTTAAACACTCTTTCTGAAGGATCTGTACACGCCAACAACGGACCACATCCTTCTTCATCAACCGAGTTGTTAATCTTGGCTCCATACTGTACCAATAAATTTATTCTCTCTATGACTTCATCATCTGTTCCCGAGAGATAATATAGAGGTGTTTTATTATGTTTATCACATGCGTTTGGATCTGCGCCGTGCACCAGCAGCATCGCGACTATTCTATTATTATTAATTTTAGAAGCTATATGCAATGGATAATTTCCATCATCATCCGTCTCATTTGGAGAGTATCCTCTATGAAGAAGTTCTTCTATAAATCGTTCATCTAGTCCTTTAATGCCACAATACGCATGTAGAATGTGATAATTTCCAGAGGGTTCGATAACTTGTAGCATATTCCTAAATACATCTAAATTTTTACTATTATATTTGGCATAAAGAGATAGATAATACTCGACCGACATAATGTTGTGTTGTCCATTATAGTATAAAAATTAATATTTCTATTTCTATATATTTGCAACAATTTACTCTCTATAACAAATATCATAACTTAGTTCTTTTATGTCAAGAAGGCACTGGTTTAATTCATCTATAAATGTCACTCCATAACTACCACGCATACTATACTCAGAATTATGATAAAGATATTTATTCTTGGGGTGTAAGTAATGGGGATTAATCTTTGTTGGATCAGTCTCTAAGTTAACACATGTCACACATGATCCATTTATAGTTATATCACACGATGATGATTTATGAATTGATTCCGGAAGATCGCTATTGTATTTTGTAGTTCCACAATTCATTTCCATACATGTTATTGTCACACTAATATTATGATGAACTTTATCTAGCCGCTGAGTGGTAAACAACAGAACAGATAGTTTATTATCTTTACCAACACCCTCAGCCGCTGCCACAAATCTCTGATCCGTATCCATGATGGTCATGTTTACTTTTAGTCCGTATCCAGTCAACACTATGTTAGCATTTCTGTCGATATAGCTTTCACTCATATGACACTCACCAATAATTGTAGAATTAATGTCGTAATTTACACCAATAGTGAGTTCGGCGACAAAGTACCAGTACCGGTAATCTTGTCGATGAGGACATATAGTATTCTTGTATTCTACCGAATACCCGAGAGATGCGATACAAAAGAGTAAGACTAATTTGTAAACCATCTTACTCAAAAATATGCGACAATAGGAAATCTATCTTATACACATAATTATTCTATCAATTTTACCAATTAGTTAGTGTAATGTTAACAAAAATGTGGGATAATTTAATAGTTTTTCCTTACACAATTGACATACATGAGTCTGAGTTCCTCGTTTTTGCTAATTATTTCGTCCAATTTATTATTCTTGACATCGTCAAGATCTTTTGTATAGGAGTCAGACTTGTATTCAACATGTTTTTCTATAATCATCTTAGCTATTTCGGCATCATCCAATAGTACATTTTCCAGATTAACAGAATAGATATTAATGTCGTATTTGAACAGAGCCTGTAACATCTCAATGTCTTTATTATCTATAGCCAATTTGATGTCCGGAATGAAGAGAAGGGAATTGGTGTTTGTTGACGTCATATAGTCGAGCAAGAGAATCATCATATCCACGTGTCCATTTTTTATAGTGGTGTGAATACAACTAAGGAGAATAGCCAGATCAAAAGGAGATGGTATCTCTGAAAGAAAGTAGGAAACAATACTTACATCATTAAGCATGACAGCATGATAAAATGAAGTTTTCCATCCAGTTTTCCCATAGAACATCAGTCTCCAATTTTTCTTAACAAACAGTTTTACCGTTTGCATGTTACCACTATCAACCGCATAATACAATGCGGTGTTTCCTTTGTCATCAAATTGTGAATCATCCATTCCACTGAATAGCAAAATCTTTACTATTTTGGTATCTTCTAATGTGGCTGCCTGATGTAATGGAAATTCATTATCTAGAAGATTTTTCAATGCTCCAGCGTTCAACAACGTACATACTAGACGCACGTTATTATCAGCTATTGCATAATACAAGACACTATGACCATTGATATCCGCCTTAAATGCATCTTTGCTAGAGAGAAAGCTTTTCAGTTGCTTAGACTTCCAAGTATTAATTCGTGACAGATCCATGTCTGAAACGAGACGCTAATTAGTGTATATTTTTTCATTTTTTATAATTTTGTCATATTGTACCAGAATTAATAATATCTCTAATAGATCTGATTAGTAGATATATGGCTATCGCAAAACAACATATACACATTTAATAAAAATAATATTCATTAAGAAGATTCAGATTCCACTGTACCCATCAATATAAAATAAAATAATTATTCCTTACATCGTACCCATAAACAATATATTAAGTATATTCCACCTTACCCATAAACAATATAAATCCAGTAATATCATGTCTAATGATGAACACAAATGGTGTATTAAATTCCAGTTCTTCAGGAGATGATCTCGCCGTAGCTACCATGATAGTAGATGCCTCCGCTACAGTTCCTTGTTCGTCTACATCTATCTTTACATTCTGAAACATTTTATAAATATATAATGGGTCCCTAGTCATATGTTTAAACGACGCCTTATCTGGATTAAACATACTAGGAGCCATCATTTCGGCTATCGACTTAATATCCCTCTTGTTTTCGATAGAAAATCTAGGGAGTTTAAGATTGTACATTTTATTCCCTAATTGAGATGACCAATATTCTAATTTTGCAGGCGTGATAGAATCTGTGAAATGGGTCATATTATCACCTATTGCCAGGTACATACTAATATTAGCATCCTTATACAGAAGGCGCACCATATCATATTCTTCGTCATCGATTGTGATTGTATTTCCTTGCAATTTAGTAACTACGTTCATCATGGGAACCGTTTTCGTACCGTACTTATTAGTAAAACTAGCATTGTGTGTTTTAGTGATATCAAACGGATATTGCCACGTACCTTTAAAATATATAGTATTAATGATTGCCCATAGAGTATTATCGTCGAGCATAGTAGAATCAACTACATTAGACATACCAGATCTACGTTCTACTATAGAATTAATTTTATTAACCGCATCTCGTCTAAAGTTTAATCTATATAGGCCGAATCTATGATATTGTTGATAATACGACGGTTTAATACACACAGTACTATCGACGAAACTTTGATACGTTAGATCTGTGTACGTATATTTAGATGTTTTCATCTTAGCTAATCCGGATATTAATTCTGTAAATGCTGGACCCAGATCTCTTTTTCTCAAATTCATAGTATTCAATAATTCTACTCTAGTATTACCTGATGCAGACAATAGCGACATAAACATAGAAAACGAATACCCAAACGGTGAGAAGACAATATTATCATTATCATCCTCATCCCCATTTTGAATATTTTTATACGCTAATATACCAGCATTGATAAATCCCTGCAGACGATATGCGGATACTGAACACGCTAATGATAGTATCAATAACGCAATCATGATTTTTATGGTATTAATAATTAACCTTATTTTTATGTTTGGTATAAAAATTATTGATGTCTACACATCCTTTATAATCAACTCTAATCACTTTAACTTTTACAGTTTTCCCTACAAGTTTATCCCTATATTCAACATATCTATCCATATGCATCTCTTAACACTCTGCCAAGATAGCTTCAAAGTGAGGATAGTCAAAAAGATAAATATATAGAGTATAATCATTCTCGTATACTCTGCCCTTTATTACATCGCCCGCATTGGGCAACGAATAACAAAATGCAAGCATCGTGTTAACGGGCTCGTAAATTGGGATAAAATTATGTTTTTATTGTTTATCTATTTTATTCAAGAGAATATTCAGGAAGTTCCTTTTCTGGTTGTATCTCGTCGCAGTATATATCATTTGTACATTGTTTCATATTTTTTAATAGTCTACACCTTTTAGTAGGACTAGTATCGTACAATTCATAGCTGTATTTTGAATTCCAATCACGTATAAAAATATCTTCCAATTGTTGACGAAGACCTAATCCATCATCCGGTGTAATATTAATAGATGCTCCACATATATCCGTAAAGTAATTTCCTGTCCAATTTGATGTACCTATATACGCCGTTTTATCGGTTACCATATATTTTGCATGGTTTACCCTAGAATACGGAATGGGAGGATCAGCATCTGGTACAATAAATAGCTTTACTTCTATATCTATGTTTTTAGATTTTAGCATAGCTATAGATCTTAAAAAGTTTCTCATGATAAACGAAGATCGTTGCCAGCAACTAATCAATAGCTTAACGGATACTTGTCTGTCTATAGCGGATCTTCTTAATTCATCTTCTATATAAGGCCAAAACAAAATTTTACCCGCCTTTGAATAAATAATAGGAATAAAGTTCATAACAGATACATAAACGAATTTACTCGCATTTCCGATACATGACAATAAAGCGGTTAAATCATTGGTTCTTTCCATAGTACATAATTGTTGTGGTGCAGAAGCAATAAATACAGAGTGTGGAACACCGCTTACGTTAATACTAAGAGGATGATCTGTATTATAATACGACGGATAAAAGTTTTTCCAATTATATGGTAGATTGTTAACTCCAAGATACCAGTATACCTCAAAAATTTGAGTGAGATCCGCTGCCAAGTTCCTATTATTGAAGATCGCAATACCCAATTCCTTGACCTGAGTTAGTGATCTCCAATCCATGTTAGCGCTTCCTAAATAAATATGTGTATTATCAGATATCCAAAATTTTGTATGAAGAACTCCTCCTAGGATATTTGTAATATCTATGTATCGTACTTCAACTCCGGCCATTTGTAGTCTTTCAACATCCTTTAATGGTTTGTTGGATTTATTGACGGCTACTCTAACTCTTACTCCTCTTTTGGGTAATTGTACAATCTCGTTTAATATTACCGTGCCGAAATTCGTACCCACTTCATCCGATAAACTCCAATAAAAAGATGATATATCTAGTGTTTTTATGGTATTGGATAGAATTTCCCTCCACATGTTAAATGTAGTCAAATATACTTTATCAAATTGCATACCTATAGGAATAGTCTCTGTAATCACTGCGATTGTATTATCCGGATTCATTTTATTTGTTAAAAAAATAATCCTATATCACTTCACTCTATTAAAAATCCAAGTTTCTATTTCTTTCATGACTGATTTTTTAACTTCATCCGTTTCCTTATGAAGATGATGTTTGGCGCCTTCATAAATTTTTATTTCCCTATTACAATTTGCATGTTGCATGAAATAATATGCACCTGAAACATCGCTAATCTCATTGTTTGTTCCCTGGAGTATGAGAGTCGGGGTGTTAATCTTGGGAATTATTTTTCTAACCTTGTTGGTAGCCTTCAAGACCTGACTAGCAAATCCAGCCTTAATTTTTTCATGATTGACTAATGGATCGTATTGGTATTTATAAACTTCATCCATATCTCTAGATACTGATTCTGGACATAGCTTTCCGACTGACGCATTTGGTGTAATGGTTCCCATAAGTTTTGCAGCTAGCAGATTCAGTCTTGGAACAGCGTCTGCATTAACTAGAGGAGACATTAGAATCATTGCTGTAAACAAGTTTGGATTATCGCAAGCAGCTAGTATAGAAATTGTTGCTCCCATGGAATGACCCAATAAGAAGACTGGAACTCCTGGATAAGTAGATTTAATAGTCACCACGTGCTGTACCACATCTCTAACATACTTACCAAAGTCATCAATCATCATTTTTTCACCATTACTTCTTCCATGGCCAATATGATCATGTGAGAATACTAAAATTCCTAACGATGATATGTTTTCAGCTAGTTCGTCATAACGTCCAGAATGTTCACCAGCTCCATGACTTATGAATACTAATGCCTTAGGATATGTAATAGGTTTCCAATATTTACAATATATGTAATCATTGTCCAGATTGAACATACAGTTTGTACTCATGATTCACTATATAACTATCAATATTAACAGTTCGTTTAATGATCATATTATTTTTATGTTTTATTGATAATTGTAAAAATATACAATTAAATCAATATAGAGGAAGGAGACGGTACTGTATTTTGTGAGATAGTAATGGAGACTAAATCAGATTATGAGGATGCTGTTTTTTACTTTGTGGATGATGATGAAATATGTAGTCGCGACTCCATCATTGATCTAATAGATGAATATATCACGTGGAGAAATCATGTTATAGTGTTTAATAAAGATATTACCAGTTGTGGAAGACTGTACAAGGAATTGATAAAGTTCGATGATGTCGCTATACGGTACTATGGTATTGATAAAATTAATGAGATTGTCGAGGCTATGAGTGAAGGAGACCACTACATCAATCTTACAGAAGTCCATGATCAGGAAAGTCTATTCGCTACCATAGGAATATGTGCTAAAATCACTGAACATTGGGGATACAAAAAGATTTCAGAATCTAAATTCCAATCATTGGGAAACATTACAGATCTGATGACCGACGATAATATAAACATCTTGATACTTTTTCTAGAAAAAAAAATGAATTGATGATATAAGTGTCTTCATAACGCATTATTACGTTAGCATTCTATTATCCAGTGTTAAAAAAATTATCCTATCATGTATTTGAGAGTCTTATATGTAGCAAACATGATAACTGCAATACCCATAATCTTTAGATATTCACGCGTGCTATGGATGGCATTATCCCGCGGTGCGGAAATGTACGTTATATAATCTACAAAATAATCATCGCATATAGTATGAGATAGTAGAGTAAACATTTTTATCGTTTCTACTGGGTTCATACATCGTCTACCCAATTCGGTAATGAATGAAATTGTCGCCAATCTTACACCCAAACCCTTGTTGTTCATTAGTATAGTATTAACTTCATTATTTATGTCATAAACTGTAAATGATTCTGTAGATGCCATATCACACATGATATTCATGTCACTATTATAATCATTATTAACTTTATCACAATACGTGTTGATAATATCTACATATGATCTAGTTTTTGTGGGTAATTGTCTATACAAGTCGTCTAAACGTTGTTTACTCATATAGTATTGAACAGCCATCATTACATGGTCCCGTTCCGTTGATAGATAATCGAGTATGTTAGTAGACTTGTCAAATCTATATACCATATTTTCTGGAAGCGGATATACATAGTCGCGATCATCATTATCACTAGCCTCATCCTCTATATCATGTACATGTACATAATCTATGATATTATTATACATAAACATCGACAACATACTATTGTCTATTATCTAAGTCCTGTTGATCCAAACCCTTGATCTCCTCTATCTGTACTATCTAGAGATTGTACTTCTTCAAGTTCTGGATAATATATACGTTGATAGATTAGCTGAGCTATTCTATCTCCAGTATTTACATTAAACGTACATTTTCCATTATTAATAAGAATGACTCCTATGCTTCCCCTATAATCTTCGTCTATTACACCGCCTCCTATATCAATGCCTTTTAGGGACAGACCAGACCTAGGAGCTATTCTACCATAGCAGAACTTAGGCATGGACATACTAATATCTGTCTTAATTAACTGTCGTTCTCCAGGAGGGATAGTATAATCGTAAGCGCTATACAAATCATATCCGGCAGCACCCGGCGATTGCCTAGTAGGTGATTTAGCTCTGTTAGTTTCCTTAACAAATCTAACTGGTGAGTTAATATTCATGTTGAACATAAAAAATATCATTTTATTTCAAAATTATTTACCATTCCATTCCATCCCATATATTCCATGAATAAGTGCGATTATTGTACACTTCTATAGTATCTATATACGATCCACGATAAAATCCTCCTATCAATAGCAGTTTATTATCCACTATGATCAATTCTGGATTATCCCTCGGATAAATAGGATCATCTATCAGAGTCCATGTATTGCTGGATTCACAATAAAATTCCGCATTTCTACCAACCAAGAATAACCTTCTACCAAACACTAACGCACATGATTTATAATGAGGATAATAAGTGGATGGTCCAAACTGCCACTGATCATGATTGGGTAGCAAATATTCTGTAGTTGTATCAGTTTCAGAATGTCCTCCCATTACGTATATAACATTGTTTATGGATGCCACTGCTGGATTACATCTAGGTTTCAGAAGACTCGGCATATTAACCCAAGCAGCATCCCCGTGGAACCAACGCTCAACAGATGTGGGATTTGGTAGACCTCCTACTACGTATAATTTATTGTTAGCGGGTATCCCGCTAGCATACAGTCTGGGGCTATTCATCGGAGGAATTGGAATCCAATTGTTTGATATATAATTTACCGCTATAGCATTGTTATGTATTTCATTGTTCATCCATCCACCGATGAGATATACTACTTCTCCAACATGAGTACTTGTACACATATGGAATATATCTATAATTTGATCCATGTTCATAGGATACTCTATGAATGGATACTTGTATGATTTGCGTGGTTGTTTATCACAATGAAATATTATGTTACAGTCTAGTATCCATTTTACATTATGTATACCTCTGGGAGAAAGATAATTTGACCTGATTACATTTTTGATAAGAAGTAGCAGATTTCCTAATCTATTTCTTCGCCTCATATACCACTTAATGACAAAATCAACTACATAATCCTCATCTGGAACATTTAGTTCGTCGCTTTCTAGAATAAGTTTCATAGATAGATAATCAAAATTGTCTATGATGTCATCTTCCAGTTCCAAAAAGTGTTTGGTAATAAAGTCTTTAGTATGACATAAGAGATTGGATAGTCCGTATTCTATACCCATCATGTAACACTCGATACAATATTCCTTTCTAAAATCTCGTAGGATAAAGTTTATACAAGTGTAGATGATAAATTCTACAGATGTTAATATAGAAGCACGTAATAAATTGACGACGTTATGACTATCTATATATACCTTTCCAGTATATGAGTAAATAACTATAGAAGTTAGACTGTGAATGTCAAGGTCTAGACAAACCCTCGTAACTGGATCTTTATTTTTTGTGTATTTTTGGCGTAAATGTGTGCGAAAGTATGGAGATAACTTTTTCAATATCGTAGAATTGACTATTATATTACCTCCTATAGCTTCAATAATTGTTTTGAATTTCTTAGTCGTGTACAATGCTAATATATTCTTACAGTACACAGTATTGACAAATATCGGCATTTATGTTTCTTTAAAAGTCAACATCTAAAGAAAAATGATTGTCTTCTTGAGACATAACTCCCATTTTTTGGTATTCACCCACACGTTTTTCGAAAAAATTAGTTTTTCCTTCCAATGATATATTTTCCATGAAATCAAACGGATTGGTAACATTGTAAATTTTTTTAAATCCCAATTCAGAAATCAATCTATCTGCGACGAATTCTATATATGTTTTCATCATTTCACAATTCATTCCTATGAGTTTAACTGGAAGAGCCACAGTAAGAAATTCTTGTTCAATGGATACCGCATTTGTTATAATAAATCTAACGGTTTCTTCACTCGGTGGATGCAATAAATGTTTAAACATCAAACATGCGAAATCGCAGTGCAGACCCTCGTCTCTACTAATTAATTCGTTAGAAAACGTGAGTCCGGGCATTAGGCCACGCTTTTTAAGCCAAAATATGGAAGCGAATGATCCGGAAAAGAAGATTCCTTCTACTGCAGCAAAGGCAATAAGTCTCTCTCCATAACCGGCGCTGTCATGTATCCACTTTTGAGCCCAATCGGCCTTCTTTTTTACACAAGGCATCGTTTCTATGGCATTAAAGAGGTAGTTTTTTTCATTACTATCTTTAACATAAGTATCGATCAAAAGACTATACATTTCCGAATGAATGTTTTCAATGGCCATCTGAAATCCGTAGAAACATCTAGCCTCGGTAATCTGCACTTCTGTACAAAATCGTTCTGCTAAATTTTCATTCACTATTCCGTCACTGGCTGCAAAAAACGCCAATACATGTTTTATAAAATATTTTTCGTCTGGTGTTAGTTTATTCCAGTCATTGATATCTTTAGATATATCCACTTCTTCCACTGTCCAAAATGATGCCTCTGCCTTTTTATACATATTCCAGATGTCATGATATTGGATTGGGAAAATAACAAATCTATTTGGATTTGGTGCAAGGATAGGTTCCATAACTAAATTAACAATAGTAGTAATTTTTTTTCAGTTATCTGTATGACGACTGTACTTGGATCTTTTGTATATCGCTATCGCCGCAATCACTACAATAATTACAAGTATTATTGATAGCATTGTTATTACTACTATCATAATTAAATTATCGACATTCATGGGTGTTGAATAATCGTTATCATCATTTTGTAATTGTGACGTCATACTAGATAAATCATTTGTGAGATTGTTGTGGGAAGCGGGCACGGAAGATGCATTATCATTATTATTTAACGCCTCCCATTCGGATTCACAAATGTTACGCACGTTCAAAGTTTTATGGAAACTATAATTTTGTGAAAACAGATAACAAGAAAACTCGTCATCGTTCAAATTTTTAACGATAGTAAACCGATTAAACGTCGAGCTAATTTCTAACGCTAGCGACTCTGTTGGATATGGGTTTCCAGATATATATCTTTTCAGTTCCCCTACGTATCTATAATCATCTGTAGGAAATGGAAGATATTTCCATTTATCTACTGTTCCTAATATCATATGCGGTGGTGTAGAACCATTAAGCGCGAAAGATGTTATTTCGCATCGTATTTTAACTTCGCAATAATTTCTGGTTAGATAACGCACTCTACCAGTCAAGTCAATGATATTAGCCTTTACAGATATATTCATAGTAGTCGTAACGATGACTCCATCTTTTAGATGTGATACTCCTTTGTATGTACCAGAATCTTCGTACCTCAAACTCGATATATTTAAACAAGTTAATGATATATTAACGCGTTTTATGAATGATGATATATAACCAGAAGTTTTATCCTCTGTGGCTAGCGCTATAACCTTATCATTATAATACCAACTAGTGTAATTAATATGTGACATGACAGTGTGGGTACAAATATGTACATTATCGTCTACGTCGTATTTGATACATCCGCATTCAGCCAACAAATATAAAATTACAAAAACTCTAACGACGTTTGTACACATCTTGATGCGGTTTAATAAATGTTTTGATTTCAATTTATTGTAAAAAAAGATTCGGTTTTATACTGTTCGATATTCTCATTGCTTATATTCTCATCTATCATCTCCACACAGTCAAATCCATGGTTAACATGTACCTCATCAACCGGTAAAAGACTATCGGATTCTTCTATCATCATAACTCGAGAATATTTAATTTGGTGGTCATTATTAATCAAGTCAATTATCTTATTTTTAACAAACGTAAGTATTTTACTCATTTTTTTATAAAAACTTTTAGAAATATACAGACTCTATCGTGTGTCTATATCTTCTTTTTATATCCAATGTATTTATGTCTGATTTTTCTTCATTTATCATATATAATGGTCCAAATTCTACACGTGCTTCGGATTCATCCAGATCATTAAGGTTCTTATAATCGCAACATCCTTCTCTTCCATCTTCTACATCTTCCTTCTTATTCTTAGCGTCACAGAATCTACCACAGCAGGATCCCATGACGAGAGTCACATTAAACTAATTCATTTTCAATTATAATATACTGATTAGTAATGACAATTAAAATAAAAATATTCTTCATAACCGGTAAGAAAGTAAAAAGTTCACATTGAAACTATGTCAGTAGTTATACATCATGAGATGATATACTCTATTTTGGTGGAGGATTATATGATATAATTCGTGGATAATCATTCTTAAGACACATTTCTTCATTCGTAAATCTTTTCACATTAAATGAGTGTCCATATTTTGCAATTTCTTCATATGATGGCGGTGTACGTGGACGAGGCTGCTCCTGTTCTTGTAGTCGTCGACTGTCGTGTTTGCGTTTAGATCCCTCCATTATCGCGATCGCGTAGTGAGTACTATTTATACCTTGTAATTAAATTTTTTTATTAATTAAACGTATAAAAACGTTCCGTATCTGTATTTAAGAGCCAGATTTCGTCTAATAGAACAAATAGCTACAGTAAAAATAACTAGAATAATCGCTACACCCACTAGAAACCACGGATCGTAATACGGCAATCGGTTTTCGATAATAGGTGGAACGTATATTTTATTTAAGGACTTAACAATTGTCTGTAAACCACAATTTGCTTCCGCCGATCCTGTATTAACTATCTGTAAAAGCATATGTTGACCGGGAGGAGCCGAACATTCTCCGATATTCAATTTTTGTATATCTATAATGTTATTAACCTCCGCATACGCATTACAGTTCTTTTCTAGCTTGGATACTACACTAGGTACATCATCTAAATCTATTCCTATTTCCTCAGCGATAGCTCTTCTATCCTTTTCCGGAAGTAATGAAATCACTTCAATAAATGATTCAACCATGAGTGTGAAACTAAGTCGAGAATTACTCATGCATTTGTTAGTTATTCGGAGCGCGCAATTTTTAAACTGTCCTATAACCTCTCCTATATGAATAGCACAAGTGACATTAGTAGGGATAGAATGTTGAGCTAATTTTTGTAAATAACTATCTATAAAAAGATTATACAAAGTTTTAAACTCTTTAGTTTCTGCCATTTATCCAGTCTGAGAAAATGTCTCTCATAATAAATTTTTCCAAGAAACTAATTGGGTGAAGAATGGAAACCTTTAATCTATATTTATCACAGTCTGTTTTGGTACACATGATGAATTCTTCTAATGCTGTACTAAATTCGATATCTTTTTCGATTTCTGGATATGTTTTTAATAAAGTATGAACAAAGAAATGGAAATCGTAATACCAGTTATGTTCAACTTTGAAATTGTTTTTTATTTTCTTGTTAATGATTCCAGCCACTTGGGAAAAGTCAAAGTCGTTTAATGCCGATTTAATACGTTCATTAAAAACAAACTTTTTATTCTTTAGATGAATTATTATTGGTTCATTGGAATCAAAAAGTAAGATATTATCGGGTTTAAGATCTGCATGTAAAAAGTTGTCACAACAGGGTAGTTCGTAGATTTTAATGTATAACAGAGACATCTGTAAAAAGATAAACTTTATGTATTGTACCAAAGATTTAAATCCTAATTTGATAGCTAACTCGGTATCTACTTTATCTGCCGAATACAGTGCTAGGGGAAAAATTATAATATTTCCTCTTTCGTATTCGTAATTAGTTCTCTTTTCATGTTCGAAAAAGTGAAACATGCGGTTAAAATAGTTTATAACATTAATATTACTGTTAATAACTGCCGGATAAAAGTGGGATAGTAATTTCACGAATTTGATACTGTCCTTTCTCTCGTTAAACGCCTTTAGAAAAACTTTAGAAGAATATCTCAATGAGAGTTCCTGACCATCCATAGTTTGTATCAATAATAGCAACATATGAAGAACCCGCTTATACAGAGTATGTAAAAATGTTAATTTATAGTTTAATCCCATGGCCCACGCACACACGATTAATTTTTTTTCATCTCCCTTTAGATTGTTGTATAGAAATTTGGGTACTGTAAACTCCGCCGTAGTTTCCATGGGACTATATAATTTTGTGGCCTCGAATACAAATTTTACTACATAGTTATCTATCTTAAAGACTATACCATATCCTCCTGTAGATATGTGATAAAAATCGTCGTTTATAGGATAAAATCGTTTATCTTTTTGTTGGAAAAAGGATGAATTAATGTAATCATTCTCTTCTATCTTTAGTAGTGTTTCCTTATTAAAATTCTTAAAATAATTTAACAATCTAACTGACGGAGCCCAATTTTGGTGTAAATCTAATTGGGACATTATGTTGTTAAAATATAAACAGTCTCCTAATATAACAGTATCTGATAATCTATGGGGAGACATCCATTGATATTCAGGGGATGAATCATTGGCAACACCCATTTATTGTACAAAAAGCCCCAATTTACAAACGAAAGTCCAGGTTTGATAGAGATAAACTATTAACTATTTTGTCTCTGTTTTTAACACCTCCACAGTTTTTAATTTCTTTGGTAATGAAATTATTCACAATATCAGTATCTTCTTTATCTACCAGAGATTTTACTAACTTGATAACCTTGGCTGTCTCATTCAATAGGGTAGTGATATTTGTATGTATGATATTGATATCTTTTTGAATTGTTTCTTTTAGAAGTGATTCTTTGATGGTATCAGCATACGAATTACAATAATGCAGAAACTCAGTTAACATGCAGGAATTATAGTAAGCCAATTCCAATTGTTGCCTGTATTGTATTAGAGTATTAATATGCGCAATGATGTCCTTGCGTTTCTCTGATAGAATGCGAGCAGCGATTTTGGCGTTATCATTTGACGATATTTCTGGAATGACGAATCCTGTTTCTACTAACTTCTTGGTAGGACAAAGTGAAACAATCAAGAAAATAGCTTCTCCTCCTATTTGTGGAAGAAATTGAACTCCTCTAGATGATCTACTGACGATAGTATCTCCTTGACAGATATTGGACCGAACTACGGAAGTACCTGGAATGTAAAGCCCTGAAACCCCCTCATTTTTTAAGCAGATTGTTGCCGTAAATCCTGCACTATGCCCAAGATAGAGAGCTCCTTTGGTGAATCCATCACTATGTTTCAGTTTAACCAAGAAACAGTCAGCTGGTCTAAAATTTCCATCTCTATCTAATACAGAATCCAACTTGATGTCAGGGACTATGACCGGTTTAATGTTATATGTAACATTGAGTAAATCCTTAAGTTCATAATCATCGTTGTCATCAGTTATGTACGATCCAAACAATGTTTCTACCGGCATGGTGGATACGAAGATGCTATCCATCAGAATGTTTCCCTGATTAGTATTTTCTATATAGCTATTCTTCTTTAAACGATTTTCCGAATCAGTAACTATGTTCATTTTTTTAGGAGTAGGACGTCTAGCCAGTATGGAAGAGGATTTTCTAGATACTCTCTTCAACATCTTTGATCTCAATGGAATGCAAAACCCCATGGTGTAACAACCAACGATAAAAATAATATTGTTTTTTCACTTTTTATAATTTTACCATCTGACTCATGGATTCATTAATATCTTTACAAGAGCTACTAACGTATAATTCTTTATAACTGAACTGAGATATATACACCGGATCTATGGTTTCCATAATTGAGTAAATGAATGCTCGGCAATAACTAATGGCAAATGTATAGAACAACGAAATTATACTAGAGTTGTTAAAGTTAATATTTTCTATGAGTTGTTCCAATAAATTATTTGTTGTGACTGCGTTCAAGTCATAAATTATCTTGATACTATCCAGTAAACAGTCTTTAAGTTCTGGAATATTATCATCCCATTGTAAAGCCCCTAGTTCGACTATCGAATATCCTGCTCTGATAGCAGTTTCAATATCGACGGACGTCAATACTGTAATAAAGGTGGTAGTATTGTCATCATCGTGATAAACTACGGGAATATGGTCGTTAGTAGGTACCGTGACTTTACACAACGCGATATATAACTTTCCTTTTGTACCATTTTTAACGTAGTTGGGACGTCCTGCAGGGTATTGTTTTGAAGAAATGATATCGAGAACAGATTTGATACGATATTTGTTGGATTCCTGATTATTCACTATAATATAATCTAGACAGATAGATGATTCGATAAATAGAGAAGGTATATCGTTGGTAGGATAATACATCCCCATTCCAGTATTCTCGGATACTCTATTGATGACACTAGTTAAGAACATGTCTTCTATTCTAGAAAACGAAAACATCCTACATGGACTCATTAAAACTTCTAACGCTCCTGATTGTGTTTCGAATGCCTCGTACAAGGATTTCAAGGATGCCATAGATTCTTTGACCAACGATTTAGTATTGCGTTTAGCATCTGATTTTTTTATTAAATCAAATGGTCGGCTCTCTGGTTTACTACCCCAATGATAACAATAGTCTTGTAAAGATAAACCGCAAGAAAATTTATACACATCCATCCAAATAACCCTAGCACCGTCGGATGATATTAATGTATTATTATAGATTTTCCATCCACAGTTATTGGGCCAGTATACTGTTAGCAACGGTATATCGAATAGATTACTCATGTAACCTACTAGAATGATAGTTCGTGTACTAGTCATAATATCTTTAATCCAATCTAAGAAATCTAAAATTAGATCTTTTACACTATTAAAGTTAACAAAGGTATTACCCGGGTACGTGGATATCATATATGGTATTGGTCCATTATCAGTAATGGCTCCATAAACTGATACGGCGATGGTTTTTATATGTGTTTGATCTAATGAGGACGAAATTCGCGCCCACAATTCATCTCTAGATATGCATTTAATATCGAACGGTAACACATCAATCTCGGGACGCGTATATGTTTCTAAATTCTTAATCCAAATATAATGATGACCTATATGCCCTATTATCATACTGTCAACTATAGTATACCTAGAGAACTTTCGATACATCTGCTGTTTCCTGTAATCGTTAAATTTTACAAATCTATAACATGCTAAACCTTTTGACGACAGCCATTCATTAATTTCTGATATGGAATCTGTATTCTCAATACCGTATCGTTCTAAAGCCAGTGCTATATCTCCCTGTTCGTGGGAACGCTTTCGTATAATATCGATCAATGGATAATATGAAGTTTTTGGAGAATAATATGATTCATGATCTATTTCGTCCATAAACAATCTAGACATAGGAATTGGAGGCGATGATCTTAATTTTGTGCAATGGGTCAATCCTATAACTTCTAATATTGTAATATTCATCATCGACATAACACTATCTATGTTATCATCGTATATTAGTATACCACGACCTTCTTCATTTCGTGCCAAAATGATATACAGTCTTAAATAATTACGCAATATCTCAATAGTTTCATAATTGTTAGCTGTTTTCATCAAGGTTTGTATCCTGTTTAACATGATGGCGTTCTATAACGTCTCTATTTTCTATTTTTAATTTTTTTAAATTTTTAACGATTTACTGTGGCTAGATACCCAATCTCTTTCAAATATTTTTTTAGCCTCGCTTACAAGCTGTTTATCTATACTATTAAAACTGACGAATCCGTGATTTTGGTAATGGGTTCCGTCGAAATTTGCCGAAGTGATATGAACATATTCGTCGTCGACTATTAACAATTTTGTATTATTCTGAATAGTGAAAACCTTCACAGATAGATCATTTTGAACACACAACGCATCTAGACTTCTGGCGGTTGCCATAGAATATACGTCGTTCTTATCCCAATTACCAACTAGAAGTCTGATCTTAACTCCTCTATTAATGGCTGCTTCTATAATGGAGTTGTAAATGTCAGGCCAATAGTAGCTATTACCGTCGACACGTGTAGTGGGAACTATGGCCAAATGTTCAATATCTATACTAGTCTTAGCCGACTTGAGTTTATCAATAACTACATCAGTGTCTAGATCTCTAGAATATCCCAATAGGTGTTCTGGAGAATCAGTAAAGAACACTCCACCTATAGGATTCTTAATATGATACGCAGTGCTAACTGGCAGACAACAAGCCGCAGAGCATAAATTCAACCATGAATTTTTTGCGCTATTAAAGGCTTTAAAAGTATCAAATCTTCTACGAAGATCTGTGGCCAGCGGAGGATAATCAGAATATACGCCTAACGTTTTAATCGTATGTATAGATCCTCCAGTAAATGACGCGTTTCCTACATAACATCTTTCATCATCAGACACCCAAAAACAACCGAGTAGTAGTCCCACATTATTTTTTTTATCTATATTAACGGTTATAAAATTTATATCCGGGGAGTGACTTTGTAGCTCTCCCAGATTTCTTTTCCCTCGTTCATCTAGCAAAACTATTATTTTAATCCCTTTTTCAGATACCTCTTTTAGTTTATCAAAAATAAGCGCTCCCCTAGTAGTACTCAGAGGATTACAACAAAAAGATGCTATGTATATATATTTCTTAGCTAGAGTGATAATTTCGTTAAAACATTCAAATGTTGTCAAATGATCGGATCTAAAATCCATATTTTCTGGTAGTGTTTCTACCAGCCTACATTTTGCTCCCGCAGGTACCGATGCAAATGGCCACATTTAGTTAACATAAAAACTTATATATCCTGTTCTATCAACGATTCTAGAATATCATCGGCTATATCGCTAAAATTTTCATCAAAGTCGACATCACAACCTAACTCAGTCAATATATTAAGAAGTTCCATGATGTCATCTTCGTCTATTTCTATATCCGTATCCATTGTAGATTGTTGACCGATTATCGAGTTTAAATCATTACTAATACTCAATCCTTCAGAATACAATCTGTGTTTCATTGTAAATTTATAGGCGGTGTATTTAAGTTGGTAGATTTTCAATTATGTATCAATATAGCAACAGTAGTTCTTGCTCCTCCTTGATTTTAGCATCCTCTTCATTATTTTCTTCTACGTACATAATCATGTCTAATACGTTAGACAACACACCGACGATGGTGGCCGCCACAGACACGAATATGACTAGACCGATGACCATTTAAAAAATACTCTCTAGCTTTAACTTAAACTGTATCGATCATTCTTTTAGCACATGTATAATATAAAAACATTATTCTATTTCGAATTTAGGCTTCCAAAAATTTTTCATCCGTAAACCGATAATAATATATATAGACTTGTTAATAGTCGGAATAAATATATTAATGCTTAAACTATCATCATCTCCACGATTAGAGATACAATATTTACATTCTTTTTGCTGTTTCGAAACTTTATCAATACACGTTAATACAAACCCAGGAAGGAGATATTGAAACTGAGGCTGTTGAAAATGAAACGGCGAATACAATAATTCAGATAATGTAAAATCATGATTCCGTATTCTGATGATATTAGAACTGCTAATGGATGTCGATGGTATGTATCTAGGAGTATCTATTTTAACAAAGCATCGATTTGCTAATATACAATTATCCTTTTGATTAATTGTTATTTTATTCATATTCTTAAAAGGTTTCATATTTATCAATTCTTCTACATTAAAAATTTCCATTTTTAATTTATCTAGCCCCGCAATACTCCTCATTACGTTTCATTTTTTGTCTAGAATACCCATTTTGTTCATCTTGGTACATAGATTATCCAATTGAGAAGCGCATTTAGTAGTTTTGTACATTTTAAGTTTATTAACGAATCGTCGAAAACTAGTTATAGTTAACATTTTATTATTTGATACCCTGATATTAATACCCCTGCCGTTACTATTATTTATAACTGATGTAACCCACGTAACATTGGAATTAATTATCGATAGTAATGCATCGACACTTCCAAAATTGTCTATTATAAACTCACCGATAATTTTTTTATTGCATGTTTTCATATTCATTAGGATTATCAAATCTTTAATCTTATTACGATTGTATGCGTTGATATTACAAGACGTCATTCTAAAAGACGGAGGATTTCCATCAAATGCCAGACAATCACGTACAAAGTACATGGAAATAGGTTTTGTTCTATTACGCATCATAGATTCATATAAAACACCCGTAGAAATACTAATTTGTTTTACTCTATAAAATACTATTGCATCTATTTCATCGTTTTGTATAACGTCTTTCCAAGTGTCAAATTCCAATTTTTTTTCATTGATAGTACCAAATTCTTCTATCTCTTTAACTACTTGCATAGATAGGTAATTACAGTGATGCCTACATGCCGTTTTTTGAAACTGAATAGATGCATCTAGAAGCGATGCTACACTAGTCACGATCACCACTTTCATATTTAGAATATATGTATGTAAAAATATAGTAGAATTTCATTTTGTTTTTTTCTATGCTATAAATGAATTCTCATTTTGTATCCGCACATACTCCGTTTTATATCAATACCAAAGAAGGAAGATATCTGGTTCTAAAAGCCGTTAAAGTATGCGATGTTAGAACTGTAGAATGCGAAGGAAGTAAAGCTTCCTGCGTACTCAAAGTAGATAAACCCTCATCACCCACGTGTGAGAGAAGACCTTCGTCCCCGTCCAGATGCGAGAGAATGAATAACCCTGGAAAACAAGTCCCGTTTATGAGAACGGACATGTTACAAAATATGTTTGCTGCTAATCGCGACAACGTAACGTCAAGACTTTTGAACTAAAATACAATTATATCTTTTTCGATATTAATAAATCCGTGTCTCCCGGGTTTTTTATCTCTTTCAGTATGTGAATAGATAGGTATTTTATCTCTATTCATCATCGAATTTAAGAGATCCGATAAACATTGTTTGTATTCTCCAGATGTCAGCATCTGATACAACAATATATGTGCACATAAACCTCTGGCACTTATTTCATGTACCTTCCCCTTATCACTAAGGAGAATAGTATTTGAGAAATATGTATACATGATATTATCATGTATTAGATATACAGAATTTGTAACACTCTCGAAATCACACGATGTGTCGGCGTTAAGATCTAATATATCACTCGATAACACATTTTCATCTAGATACACTAGACATTTTTTAAAGCTAAAATAGTCTTTAGTAGTAACAGTAACTATGCGATTATTTTCATCGATGATACATTTCATCGGCATATTATTACGCGTACCATCAAAGACTATACCATGTGTATATCTAACGTATTCTAGCATAGTTGCCATACGTACATTAAACTTTTCAGGATCTTTGGATAGATCTTCCAATCTATCTATTTGAGAAAACATTTTTATCATGTTCAATAGTTGAAACGTCGGATCCACTATATAGATATTATCTATAAAGATTTTAGGAACTATGTTCATGGTATCCTGGCGAATATTAAAACTATCAATGATATGATTATCGTTTTCATCTTTTATCACCATATAGTTTCTAAGATATGGGATTTTACTTAATATAATATTATTTCCCGTAATAAATTTTATTAGAAATGCCAAATCTATAAGAAAAGTCCTAGAATTAGTCTGAAGAATATCTATATCACCGTACCGTATATTTGGATTAATTAGATATAGAGAATATGATCCGTAACATATACAACTTTTATTATGACGTCTAAGATATTCTTCCATCAACTTATTAACATTTTTGACTAGGGAAGATACATTATGACGTCCCATTACTTTTGCCTTGTCTATTACAGCGACGTTCATAGAATTTAGCATATCTCTTGCCAATTCTTCCATTGATGTTACATTATAAGAAATTTTAGATGAAATTACATTTGGAGCTTTAATAGTAAGAACTCCTAATATATCCGTGTATGTGGTCACTAATACAGATTGTAGTTCTATAATCGTAAATAATTTACCTATATTATATGTTTGAGTTTGTTTAGAAAAGTAGCTAAGTATACGATCTTTTATTTCTGATGCCGATGTATCAACATCGAAAAAAAATCTTTTTTTATTCTTTTTTACTAACGATACGAATATGTCTTTGTTAAAAACAGTTATTTTCTGAATATTTCTAGCTTGTAATTTTAACATATGATATTCGTTCACACTAGGTACTCTGCCTAAATAGGTTTCTATAATCTTTAATGTAATATTAGGAAGAGTATTCTGATCAGGATTCCTATTCATTTTGAGGATTTAAAACTCTGATTATTGTCTAATATGGTCTCAACACAAACTTTTTCACAGAGTGATAGAGTTTTTGATAACTCGTTTTTCTTAAGAAATATAAAACTACTGTCTCCAGAGCTCGCTCTATCTTTTATTTTATCTAATTCGATACAAACTCCTGATACTGGTTCAGAAAGTAATTCATTAATTTTCAGTCCTTTATAGAAGATATTTAATATAGATAATACAAAATCTTCAGTTCTTGATATCGATCTGATTGATCCTAGAACTAGATATATTAATAACGTGCTCATTAGGCAGTTTATGGCAGCTTGATAATTAGATATAGTATATTCCAGTTCATATTTATTAGATACCGCATTGCCCAGATTTTGATATTCTATGAATTCCTCTGAAAATAAATCCAAAATAACTAGACATTCTATTTTTTGTGGATTAGTGTACTCTCTTCCCTCTATCATGTTCACTACTGGTGTCCACAATGATAAATATCTAGAGGGAATATAATATAGTCCATATGATGCCAATCTAGCAATGTCGAATAACTGTAATTTTATTCTTCGCTCTTCATTATGAATTGAATCTTGAGGTATAAACCTAACACAAATTATATCATTAGACTTTTCGTATGTAATGTCTTTCATGTTATAAGTTTTTAATCCTGGAATAGAATCTATTTTAATGAGGCTTTTAAACGCAGCGTTCTCCAACGAGTCAAAGCATAATACTCTGTTGGTTTTCTTATATTCAATATTACGATTTTCTTCTTTGAATGGAATAGGTTTTTGAATTAGTTTATAATTACAACATAATAGATAAGGAAGTGTGTAAATAGTACGCGGAAAAAACATAATAGCTCCCCTGTTTTCATCCATGGTTTTAAGTAAATGATCACTGGCTTCTTTAGTCAATGGATATTCGAACATTAACCGTTTCATCATCATTGGACAGAATCCATATTTCTTAATGTAAAGAGTGATCAAATCATTGTGTTTATTGTACCATCTTGTTGTAAATGTGTATTCGGTTATCGGATCTGCTCCTTTTTCTATTAAAGTATCGATATCGATCTCGTCTAAGAATTCAACTATATCGACATATTTCATTTGTATACACATAACCATTACTAACGTAGAATGTATAGGAAGAGATGTAACGGGAACAGGGTTTGTTGATTCGCAAACTATTCTAATACATAATTCTTCTGTTAATACGTCTTGCACGTAATCTATTATAGATGCCAAGATATCTATATAATTATTTTGTAAGATGATGTTAACAATGTGATCTATATAAGTAGTGTAATAATTCATGTATTTCGATATATGTTCCAACTCTGTCTTTGTGATGTCTAGTTTCGTAATATCTATAGCGTCCTCAAAAAATATATTCGCATATATTCCCAAGTCTTCAGTTCTATCTTCTAAAAAATCTTCAACGTATGGAATATAATAATCTATTTTACCTCTTCTGATGTCATTAATGATATAGTTTTTGACACTATTTTCCGTCAATTGATTCTTATTCACTATGTCTAAAAACCGGATAGCGTCCCTAGGACGAACTACTGCCATTAATATCTCTATTATAGCTTCTGGACATAAATCATCTATTATACCAGAATTAATGGGAACTATTCCGTATCTATCTAACATAGTTTTAAGAAAGTCAGAATCTAAGACCTGATGTTCATATATTGGTTCATACATGAAATGATCTCTATTGATGATAGTGACTATTTCATTCTCTGAAAATTGGTAACTCATTCTATACACGCTTTCCTTGTTGATAAAGGATAGTATATACTCAATGGAATTTGTACCAACAAACTGTTCTCTTATGAATCGTATATCATCATCTGAAATGATCATGTAAGGCATACATTTAACAATAAGAGACTTGTCTCCTGTTATCAATATACTATTCTTGTGATAATTTATGTGTGCGGCAAATTTGTCCACGTTCTTTAATTTTGTTATAGTAGATATCAAATCCAATGGAGATACAGTTCTTGGCTTAAACAGATATAGTTTTTCTGGAACGAATTCTACAACATTATTATAAAGGACTTTGGGTATATAAGTGGGATGAAATCCTATTTTAATTAATGCGATAGCCTTGTCCTCGTGCAGATATCCAAACGCTTTTGTGATAGTATGGCATTCATTGTCTAGAAACGCTCTACGAATATCTGTAACAGATATCATCTTTAGAGAATACTAGTCGCGTTAATAGTACTAAAATTTGTATTTTTTAATCTATCTCAATAAAAAATTAATATGTATGATTCAATGTATAACTAAACTACTAACTGTTATTGATAACTAGAATCAGAATCTAATGATGACATAACTAAGAAGTTTATCTACAGCCAATTTAGCTGCATTATTTTTAGCATCTCGTTTAGATTTTCCATCTGCCTTATCGAATACTCTTCCGTCAATGTCTACACAGGCATAAAATGTAGGAGAGTTACTAGGCCCCACTGATTCAATACGAAAAGACCAATCTCTCCTAGTTATTTGACAGTACTCATTAATAACGGTGACAGGGTTAACACCTTTCCAATAAATAATTTTTTTAACCGGAATAACATCATCAAAAGACTTATGATCCTCTCTCATTGATTTTTCGCGGGATACATCATCTATTATAGCATCAGCATCAGAATCTGTAGGCCGTGTATCAGCATCCATTGTCGTAGACCAACGAGGAGGAGTATCGTTGGAGCTGTAAACCATAGCACTACGTTGAAGATCATACAGAGCTTTATTAACTTCTCGCTTCTCCATATTAAGTTGTTTAGTTAGTTGTACAGCAGTAGCTCCTTAGTCCAATGTTTTTAATAACCGCACACAATCTCTGTGTCAGAACGCTCGTCAATATAGATCTTAGAAATTTTTTTAGAGAGAACTAACGCAACTAGCAATAAAACTGATCTTATTTTATCATTTTTTTTATTCATCATCCTCTGGTGGTTCGTCGTTCCTATCGAATGTAGCTCTGATTAACCCGTCATCTATAGGTGATGCTGGTTCTGGAGATTCTGGAGGAGATGGATTATTATCTGGAAGAATCTCTGTTATTTCCTTGTTTTCATGTATCGATTGCGTTGTAACATTAAGATTGCGAAATGCTCTAAATTTGGGAGGCTTAAAGTGTTGTTTACAATCTCTACACGCGTGTCTAACTAATGGAGGTTCATCAGCGGCTCTAGTTTGAATCATCATCGGTGTAGTATTCCTACTTTTACAGTTAGGACACGGTGTATTGTATTTCTCGTCGAGAACGTTAAAATAATCGTTGTAACTCACATCCTTTATTTTATCTATATTGTATTCTACTCCTTTCTTAATGCATTTTATACCGAACAAGAGATAGCGAAGGAATTCTTTTTCGGTACCGCTAGTACCCTTAATCATATCACATAGTGTTTTATATTCTAAATGTGTGGCAATGGACGGTTTATTTCTATACGATAGTTTGTTTTTGGAATCCTTTGAGTATTCTATACCAATATTATTCTTTGATTCGAATTTAGTTTCTTCGATATTAGATTTTGTATTACCTATATTCTTGATGTAGTACTTTGATGATTTTTCCATGGCCCATTCTATTAAGTTTTCCAAGTTGGCATCATCCACATATTGTGATAGTAATTCTCGGATATCAGTAGTGACTACCGCCATTGATATTTGTTCATTTGATGAGTAACTACTAATGTATACATTTTCCATTTATAACACTTATGTATTAACTTTGTTTATTTATATTTTTTCATTATTATGTTGATATTAATAATCGTATTGTGGTTATATGGCTACAATTTCATAATGAGTTGAAGTCAGTGTCCTATGATCAATGACGATAGCTTTACTCTGAAAAGAAAGTATCAAATCGATAGTGCAGAGTCAACAATGAAAATGGATAAGACGATGACAAAGTTTCAGAATAGAGTCAAAATGGTAAAAGAAATAAATCAGACGATAAGAGCAGCACAAACTCATTACGAGACATTGAAACTAGGATATATAAAATTTAAGGGAATGATTAGGACTACTACTCTAGAAGATATAGCACCATCTATTCCAAATAATCAGAAAACTTATAAACTATTCTCGGACATTTCAGTCATTGGCAAAGCATCACAGAATCCGAGTAAGATGATATATGCTCGCTGCTTTACATGTTTCCCAATTTGTTTGGAGATGACCATAGATTCATTTGTTATAGAATGCATCCAACATTGTTCATGATATAGTTGAATCATGTATGCCTGTTCGTATGCCTGTGGCTAAGATACTGTGTAAAGAAATGGTAAATAAATACTTTGAGAATCTTTAAGAGTGCATTGACTTTGTTAGTGAATAGGCATTCCATCTTTCTCCAATACTAATTCAAATTGTTAAATTAATAATGGAATAGTATAAATAGTTATTAGTGATAGGATAGTAAACATAATTATTAGAATAGTAGTGTAGTATCATAGATAACTCTCTTCTATAAAAAATGGATTTTATTCGTAGAAAGTATCTTATATACACAGTAGAAAATAATATAGATTTTTTAAAGGATGATACATTAAGTAAAGTAAACAATTTTACCCTCAATCATGTACTAGCTCTCAAGTATCTAGTTAGCAATTTTCCTCAACATGTTATTACTAAGGATGTATTAGCTAATACCAATTTTTTTGTTTTCATACATATGGTACGATGCTGTAAAGTATACGAAGCGGTTTTACGACACGCATTTGATGCACCCACGTTGTACGTTAAAGCATTGACTAAGAATTATTTATCGTTTAGTAACACAATACAGTCGTACAAGGAAACAGTGCATAAACTAACACAAGATGAAAAATTTTTAGAGGTTGCCGAATACATGGACGAATTAGGAGAACTTATAGGCGTAAATTATGACTTAGTTCTTAATCCATTATTTCACGGAGGGGAACCCATCAAAGATATGGAAATCATTTTTTTAAAACTGTTTAAGAAAACAGACTTCAAAGTTGTTAAAAAATTAAGTGTTATAAGATTACTTATTTGGGCATACCTAAGCAAGAAAGATACAGGCATAGAGTTTGCGGATAATGATAGACAAGATATATATACTCTATTTCAACAAACTGGTAGAATAGTCCATAGCAATCTAACAGAAACGTTTAGGGATTATATCTTTCCCGGAGATAAGACTAGCTATTGGGTGTGGTTAAACGAAAGTATAGCTAATGATGCGGATATCGTTATTAATAGACCCGCCATTACCATGTATGATAAAATTCTTAGTTATATATACTCTGAGATAAAACAGGGACGCGTTAATAAAAACATGCTTAAGTTAGTTTATATCTTTGAGCCTGAAAAAGATATCAGAGAACTTCTGCTAGAAATCATATATGATATTCCTGGAGATATCCTATCTATTATTGATGCAAAAAACGACGATTGGAAAAAATATTTTATTAGTTTTTACAAAGCTAATTTTATTAACGGTAATACATTTATTAGTGATAGAACGTTTAACGATGACTTATTCAGAGTTGTTGTTCAAATAGATCCCGAATATTTCGATAATGAACGAATTATGTCTTTATTCTATACGAGTGCTGCGGACATTAAACGATTTGATGAGTTAGATATTAATAACAGTTATATATCTAATATAATTTATGAGGTGAACGATATCACATTAGATACAATGGATGATATGAAGAAGTGTCAAATCTTTAACGAGGATACGTTGTATTATGTTAAGGAATACAATACATACCTGTTTTTGCACGAGTCGGATCCCATGGTCATAGAGAACGGAATACTAAAGAAACTGTCATCTATAAAATCCAAGAGTAGACGGCTGAACTTGTTTAGCAAAAACATTTTAAAATATTATTTAGACGGACAATTGGCTCGTCTAGGTCTTGTGTTAGATGATTATAAAGGAGACTTATTAGTTAAAATGATAAACCATCTCAAATCTGTGGAGGATGTATCCGCATTCGTTAGATTTTCTACAGATAAAAACCCTAGTATTCTTCCATCGCTAATCAAAACTATTTTAGCTAGTTATAATATTTCCATCATCGTCTTATTTCAAAGGTTTTTAAGAGATAATCTATATCATGTAGAAGAATTCTTGGATAAAAGCATCCATCTAACCAAGACGGATAAGAAATATATACTTCAATTGATAAGGCACGGTAGATCATAGAACAAACCAAATATATTATTAATAATTTGTATATACATAGATATAATTATCACATATTAAAAAATAACACATTTTTGATAAATGGAAACCGTTGCAACAATTCAGACTCCCACCAAATTAATGAATAAAGAAAATGCAGAAATGATTTTGGAAAAAATTGTTAATCATATAGCTATGTATATTAGTGACGAATCAATATATTCAGAAAATAATCCTGAATATATTGATTTTCGTAACAGATACGGAGACTATAGATCTCTCATTATAAAAAGTGATCACGAGTTTGTAAAGCTATGTAAAGATCATGCAGAGAAAAGTTCTCCAGAAACGCAACAAATGATTATCAAACACATATACGAACAATATCTTATTCCAGTATCTGAAGTACTATTAAAACCTATAATGTCCATGGGTGACATATTTACATATAACGGATGTAAAGACAATGAATGGATGCTAGAACAACTCTCTACCCTAAACTTTAACAATCTCTACACATGGAACTCATGTAGCATAGGCAATGTAACGCGTCTGTTTTATACATTTTTTAGTTATCTGATGAAAGATAAACTAAATATATAAGTATAATCCCATTCTAATACTTTAACCTGATGTATTATTACCTGCATCTTATTAGAATATTAACCTAACTAAAAGACATAAAAAGCGGTAGGATATAAATATTATGGCCGCAACCGTTCCGCGTTTTGACGATGTGTACAAAAATGCACAAAGAAGAATTCTAGATCAAGAAACATTTTTTAGTAGAGGTCTAAGTAGACCGTTAATGAAAAACACATATCTATTTGATAATTACGCGTATGGATGGATACCAGAAACTGCAATTTGGAGTAGTAGATACGCAAACCTAGATGCTAGTGACTATTATCCCATTTCGTTGGGATTACTTAAAAAGTTTGAATTTCTCATGTCTCTATATAAAGGTCCTATTCCCGTATATGAAGAAAAAGTAAATACTGAATTCATTGCTAATGGATCTTTCTCCGGTAGATACGTATCATATCTTAGAAAGTTTTCTGCCCTTCCAACAAACGAGTTTATTAGTTTTTTATTATTGACCTCCATCCCTATCTATAATATCTTATTCTGGTTTAAAAACACACAGTTTGATATTACTAAACACACATTATTCAGATACGTCTATACAGATAATACCAAACACCTTGCGTTGGCTAGGTATATACATCAAACAGGAGACTATAAGCCTTTGTTTAGTCGTCTCAAAGAGAATTATATATTTACTGGTCCCGTTCCAATAGGTATCAAAGATATAGATCACCCTAATCTTAGTAGAGCAAGAAGTCCATCCGATTATGAGACATTAGCTAATATTAGTACTATATTGTACTTTACCAAGTATGATCCAGTATTAATGTTTTTATTGTTTTACGTACCTGGGTATTCAATTACTACAAAAATTACTCCAGCCGTAGAATATCTAATGGATAAACTGAATCTAACAAAGAGCGACGTACAACTGTTGTAAATTATTTTATGCTTCGTAAAATGTAGGTCTTGAACCAAACATTCTTTGAAAAAATGAGATGCATAAAACTTTATTATCCAATAGATTAACTATTTCAGACGTCAATCGTTTAAAGTAAACTTCGTAAAATATTCTTTGATTGCTGCCGAGTTTAAAACTTCTATCGATAATTGTTTCATATGTTTTAATATTTACAAGTTTTTTGGTCCATGGTACATTAGCTGGACAGATATATGCAAAATAATATCGTTCTCCAAGTTCTATAGTCTCTGGATTGTTTTTATTATATTCAGTAACCAAATACATATTAGGGTTATCTGCGGATTTATAATTTGAGTGATGCATTCGACTCAACATAAATAATTCTAGAGGAGACGATCTACTATCAAATTCGGATCGTAAATCTGTTTCTAAAGAACGGAGAATATCTATACATACCTGATTAGAATTCATCCGTCCTTCAGACAACATCTCAGACAGTCTGGTCTTGTATGTCTTAATCATATTCTTATGAAACTTGGAAACATCTCTTCTAGTTTCACTAGTACCTTTATTAATTCTCTCAGGTACAGATTTTGAATTCGACGATGCCGAGTATTTCATCGTTGTATATTTCTTCTTCGATTGCATAATCAAATTCTTATATACCGCCTCAAACTCTATTTTAAAATTATTAAACAATACTCTACTATTAATCAGTCGTTCTAACTCCTTTGCTATTTCTATGGACTTATCTACATCTTGACTGTCTATCTCTGTAAACACGGAGTCGGTATCTCCATACACGCTACGAAAACGAAATCTATAATCTATAGGCAACGATGTTTTCACAATCGGATTAATATCTCTATCGTCCATATAAAATGGATTACTTAATGTATTGGCAAACCGTAACATACCGTTGGATAACTCTGCTCCATTTAGTACCGATTCTAGATACAATATCATTCTACGTCCTATGGATGTGCAACTCTTAGCCGAAGCGTATGAGTATAGAGCACTATTTCTAAATCCCATCAGACCATATACTGAGTTGGCTACTATCTTGTACGTATATTGCATGGAATCATAGATGGCCTTTTCAGTTGAACTGGTAGCCTGTTTTAACATCTTTTTATATCTGGCTCTCTCTGCCAAAAATGTTCTTAATAGTCTAGGAATGGTTCCTTCTATTGATCTATCGAAAATTGCTATTTCAGAGATGAGGTTCGGTAGTCTAGGTTCACAATGAACCGTAATATATCTAGGAGGTGGATATTTCTGAAGCAAGAGTTGATTATTTATTTCTTCTTCCAATCTATTGGTACTAACAACGACACCGACTAATGTTTCCGGAGATAGATTTCCAAAGATACACACATTAGGATACAGACTGTTATAATCAAAGATTAATACATTATTACTAAACATTTTTTGTTTTGGAGCAAATACCTTACCGCCTTCATAAGGAAACTTTTGTTTTGTTTCTGATCTGACTAAGATAGTTTTAGTTTCCAACAATAGCTTTAACAGTGGACCCTTGATGATTGTACTCGCTCTATATTCGAATACCATGGATTGAGGAAGCACATATGTTGCCGCACCAGCGTCTGTTTTTGTTTCTACTCCATAATACTCCCACAAATACTGACACAAACAAGCATCATGAATACAGTATCTAGCCATATCTAAAGCTATGTTTAGATTATAATCCTTATACATCTGAGCTAAATCAATGTCATCCTTTCCGAAAGATAATTTATATATATCATTAGGTAAAGTAGGACATGATAGTACGACTTTAAATCCATTTTCCAAAATATCTTTACGAATTACTTTACATATAATATCCTCATCAACAGTCACGTAATTACCTGTGGTTAAAACCTTTGCAAATGTATCGGCTTTGCCTTTCGCGTCCGTAGTATCGTCACCGATGAACGTCATTTCTCTAACTCCTCTATTTAATACTTTACCCATGCAACTGAACGCGTTCTTGGATATAGAATCCAATTTGTACGAATCCAATTTTTCAGATTTTTGAATGAATGAATATAGATCGAAAAATATAGTTCCATTATTGTTATTAACGTGAAACGTAGTATTGGCCATGCCGCATACTCCCTTATGACTAGACTGATTTCTCTCATAAATACAGAGATGTACAGCTTCCTTTTTGTCTGGAGATCTAAAGATAATCTTCTCTCCTGTTAATAACTCTAGACGATTAGTAATATATCTCAGATCAAAGTTATGTCCGTTAAAGGTAACGACGTAGTCGAACGTTAGTTCCAACAATTGTTTAGCTATTCGTAACAAAACTATTTCAGAACATAGAACTAGTTCTCGTTCGTAATCCATTTCCATTAGCGACTGTATCCTCAAACATCCTCTATCGACGGCTTCTTGTATTTCCTGTTCCGTTAACATCTCTTCATTAATGAGCGTAAACAGTAATCGTTTACCACTTAAATCGATATAACAGTAACTTGTATGCGAGATTGGGTTAATAAATACAGAAGGAAACTTCTTATCGAAGTGACACTCTATATCTAGAAATAAGTACGATCTTGGGATATCGAATCTAGGTATTTCTTTAGCGAAACAGTTACGTGGATCGTCACAATGATAACATCCATTGTTAATCTTTGTCAAATATTGCTCGTCCAACGAGTAACATCCGTCTGGAGATATCCCGTTAGAAATATAAAACCAACTAATATTGAGAAATTCATCCATGGTGGCATTTTGTATGCTGCGTTTCTTTGGCTCTTCTATCAACCACATATCTGCGACGGAGCATTTTCTATCTTTAATATCTAGATTATAACTTATTGTCTCGTCAATGTCTATAGTTCTCATCTTTCCCATCGGCCTCGCATTAAATGGAGGAGGAGATAATGACTGATATATTTCGTCCGTCACTACGTAATAAAAGTAATGAGGAAATCGTATAAATACGGTCTCGCCATTTCGACATCTGGATTTCAGATATAAAAATCTGTTTTCACCGTGACTTTCAAACCAATTAATACACCTAACATCCATTTCTAGAATTTAGAAATATATTTTCATTTAAATGAATCCCAAACATTGGGGAAGAGCCGTATGGACCATTATTTTTATAGTACTTTCGCAAGCGGGTTTAGACGGCAACATAGAAGCGTGTAAACGAAAACTATATACTATAGTCAGCACTCTTCCATGTCCTGCATGTAGACGACACGCGACTATCGCTATAGAGGACAATAATGTCATGTCTAGCGATGATCTGAATTATATTTATTATTTTTTCATCAGATTATTTAACAATTTGGCATTTGATCCCAAATACGCAATCGATGTGTCAAAGGTTAAACCTTTATAAACTTAACCCATTATAAAACTTATGATTAGTCACGACTGAAATAACCGCGTGATTATTTTTTGGTATAATTCTACACGGCATGGTTTCTGTGACTATGAATTCAACACCTGTTATCTTAGTGAAATCTTTAACAAACAGCAAGGGTTCGTCAAAGACATAAAACTCATTGTTTACGATCGAAATAGACCCCCTATCACACTTAAAATAAAAAATATCCTTATCCTTTACCACCAAATAAAATTCTGATTGGTCAATGTGAATGTATTCACTTAACAGTTCCACAAATTTATTTATTAACTCCGAGGCACATACATCGTCGGTATTTTTTATGACAAACTTTACTCTTCCAGCATCCGTTTCTAAAAAAATATTAACGAGTTCCATTTATATCATCCAATATTATTGAAATGACGTTGATGGACAGATGATATAAATAAGAAGGTACAGTACCTTTGTCCACCATCTCCTCCAATTCATACTCTATTTTGTCATTAACTTTAATGTGTGAAAACAGTACGCCACATGCTTCCATGACAGTGTGTAACACTTTGGATACAAAATGTTTGACATTAGTATAATTGTCCAAGACTGTCAATCTATAATAGATAGTAGCTATAATATATTCTATGATGGTATTGAAGAAGATGACAACCTTGGCATATTGATCATTTAACACAGACATGGTATCAACAAATAGCTTAAATGAAAGAGAATCAGTAATTGGAATAAGCGTCTTCTCGATGTAGTGTCCGTATACCAACATGTCTGATATTTTGATGTATTCCATTAAATTATTTAGTTTTTTCTTTTTATTCTCGTTAAACAGAATTTCTGTCAATGGACCCCAACATCGTTGACCTATTAAGTTTTGATTGATTTTTCCGTGTAAGGCGTATCTAGTCAGATCGTATAGCCTATCCAATAATCCATCGTCTGTGCGTAGATCACATCGTACACTTTTTAATTTTCTATAGAAGAGTGACAGACATCTGGAGCAATTACAGACAGCAATTTCTTTATTCTCTACAGATGTAAGATACTTGAAGATATTCCTATGATGATGCAGAATTTTGGATAACACGGTATTGATGGTATCTGTTACCATAATTCCTTTGACTGATAGTGTCAAAGTACAAGATTTCCAATCTTTTGCAATTTTCAGTACCATTATCTTTGTTTTGATATCTATATCAGACAGCATGGTACGTCTGACAACACAGGGATTAAGACGGAAAGATGAAATGATTCTCTCAACATCTTCAATAGATACCTTGCTATTTTTTTTGGCATTATCTATATGTGAGAGAATATCCTCTAGAGAATCAGTATCCTTTTTGATGATAGTGGATCTCAATGACATGGGACGTCTAAACCTTCTTATTCTATCACCAGATTGCATGGTGATTTGTCTTCTTTCTTTTATCATGATGTAATCTCTAAATTCATCGGCAAATTGTCTATATCTAAAATCATAATATGAGATGTTTACCTCTACAAATATCTGTTCGTCCAATGTTAGAGTATCTATATCAGTTTTGTATTCCAAATTAAACATGGCAACGGATTTAATTTTATATTCCTCTATTAAGTCCTCGTCGATAATAACAGAATGTAGATAATCATTTAATCCATCGTACATGGTTGGAAGATGCTCGTTGACAAAATCTTTAATTGTCTTGATGAAGGTGGGACTATATCTAACATCTTGATTAATAAAATTTATAACATTGTCCATAGGATACTTTGTAACTAGTTTTATACACATCTCTTCATTGGTAAGTTTAGACAGAATATCGTGAACAGGTGGTATATTATATTCATCAGATATACGAAGAATAATGTCCAAATCTATATTGTTTAATATATTATATAGATGTAGTGTAGCTCCTACAGGAATATCTTTAACTAAGTCAATGATTTCATCAACAGTTAGATCTATTTTAAAGTTAATCATATAGGCATTGATTTTTAAAAGGTATGTAGCCTTGACTACATTCTCATTAATTAACCATTCCAAGTCACTGTGTGTAAGAAGATTATATTCTATCATAAGCTTGACTACATTTGGTCCCGATACCATTAAAGAATTCTTATGATATAAGGAAACAGCTTTTAGGTACTCATCTACTCTACAAGAATTTTGGAGAGCCTTAACGATATCAGTGACGTTTATTATTTCAGGAGGAAAGAACCTAACATTGAGAATATCTGAATTAATAGCTTCCAGATACAGTGATTTTGGCAATAGTCCGTGTAATCCATAATCCAGTAACACGAGCTGGTGCTTGCTAGACACCTTTTCAATGTTTAATTTTTTTGAAATAAGCTTTGATAAAGCCTTCCTCGCAAATTCCGGATACATGAACATGTCGCCAACATGATTAAGTATTGTTTTTCATTATTTTTATATTTTCTCAACAAGTTCTCAATACCCCAATAGATAATAGAATATCACCCAATGCGTCCATGTTGTCTATTTCCAACAGGTCGCTATATCCACCAATAGAAGTTTTCCCAAAAAAGATTCTAGGAACAGTTCTACCACCAGTAATTTGTTCAAAATAGTCACGCAATTCATTTTCGGGTTTAAATTCTTTAATATCTACAATTTCATACGCTCCTCTTTTGAAACTAAACTTATTTAGAATATCCAGTGCGTTTCTACAAAAAGGACATGTAAACTTGACAAAAATTGTCACTTTGTTATTGGCCAACCTTTGTTGTACAAATTCCTCGGCCATTTTTAATATTTAAGTGATACAAAACTATCTCGACTTATTTAACTCTTTAGTCGAGATATATGGACACAGATAGCTATATGATAACCAACTACAGAAGACAAACGCTATAAAAAACATAATTACGACGAGCATATTTATAAATATTTTTATTCAGTATTACTTGATATAGTAATATTAGGCACAGTCAAACATTCAACCACTCTAGATACATTAACTCTCTCATTTTCTTTAACAAATTCTGCAATATCTTCGTAAAAAGATTCTTGAAACTTTTTAGAATATCTATCGACTCTAGATGAAATAGCGTTCGTCAACATACTATGTTTTGTATACATAAAGGCGCCCATTTTAACAGTTTCTAGTGACAAAATGCTAGCGATCCTAGGATCCTTTAGAATCACATAGATTGACGATTCGTCTCTCTTAGTAACTCTAGTAAAATAATCATACAATCTAGTACGCGAAATAATATTATCCTTGACTTGAGGAGATCTAAACAATCTAGTTTTGAGAACATCGATAAGTTCATCGGGAATTACATACATACTATCTTTAATAGAACTCTTTTCATCCAGTTGAATGGATTCGTCCTTAACCAACTGATTAATGAGATCTTCTATTTTATCATTTTCTAGATGATATGTATGTCCATTAAAGTTAAATTGTGTAGCGCTTCTTTTTAGCCTAGCAGCCAATACTTTAACATCACTAATATCGATATACAAAGGAGATGATTTATCGATGGTATTAAGAATTCGTTTTTCGACATCCGTCAAAACCAATTCCTTTTTGCCTGTATCATCCAGTTTGCCATTCTTTGTAAAGAAATTATTTTCTACTAGACTATTAATAAGACTGATAAGGATTCCTCCATAATTGCACAATCCAAACTTTTTCACAAAACTAGACTTTACGAGATCTACAGGAATGCGTACTTCAGGTTTCTTAGCTTGTGATTTTTTCTTTTGTGGACATTTTCTAGTGACCAACTCATCTACCATTTCATTGATTTTAGCAGTGAAATAAGCTTTCAATGCACGGGCACTGATACTATTGAAAACGAGTTGATCTTCAAATTCCGCCATTTAAGTTCACCAAACAACTTTTAAATACAAATATATCAATAGTAGTAGAATAAGAACTATAAAAAAAATAATAATTAACCAATACCAACCCCAACAACCTGTATTATTAGTTGATGTGACAGTTTTCTCATCACTTAGAACAGATTTAACAATTTCTATAAAGTCTGTCAAATCATCTTCCTGAGAACCCATAAATACACCAAATATAGCAGCGTACAACTTATCCATTTATACATTGAATATTGGCTTTTCTTTATCGCTATCTTCATCATATTCATCATCAATATCAACAAGTCCCAGATTACGAACCAGATCTTCTTCTACATTTTCAGTCATTGATACGCGTTCACTATCTCCAGAGAGTCCGATAACGTTAGCCACTACTTCTCTATCAATGATTAGTTTCTTGAGCGCGAATGTAATTTTTGTTTCCGTTCCGGATCTATAGAAAACTACAGGTGTAATAATTGCCTTGGCTAATTGTCTTTCTCTTTTACTGAGTGATTCTAGTTCACCTTCTATAGATCTGAGAATGGATGATTCTCCAGTCGAAACATATTCTACCATGGCTCCGTTTAATTTGTTGATGAAGATGGATTCATCCTTAAATGTTTTCTCTGTAATAGTTTCCGCCGAAAGACTATGCAAAGAATTTGGAATGCGTTCCTTGTGTGTAATGTTTCCATAGACAGCTTCTAGAAGTTGATACAACATAGGACTAGCCGCGGTAACTTTTATTTTTAGAAAGTATCCATCGCTTCTATCTTGTTTAGATTTATTTTTATAAAGTTTAGTCTCTCCTTCCAACATAATAAAAGTGGAAGTCATCTGACTAGATAAACTATCAGTAAGTTTTATAGAGATAGATGAACAATTAGCGTATTGAGAAGCATTTAGTGTAACGCATTCGATACATTTTGCATTAGATTTACTAATCGATTTTGCATACTCTATAACACCCGCACAAGTCTGTAGAGAATCGCTAGATGCTGTAGGTCTTGGTGAAGTTTCAACTCTCTTCTTGATTACCTTACTCATGATTAAACCTAAATAATTGTACTTTGTAATATAATGATATATATTTTCACTTTATCTCATTTGAGAATAAAAATGTTTTTGTTAACCACTGCATGATGTACAGATTTCGGAATCGCAAACCACTTGTGGTTTTATTTTATCCTTGTCCAATGTGAATTGAATGGGAGCGGATGCGGGTTTCGTACGTAGATAGTACATTCCCGTTTTTAGACCGAGACTCCATCCGTAAAAATGCATACTCGTTAGTTTGGAATAACTCGGATCTGCTATATGGATATTCATAGATTGACTTTGATCGATGAAGGCTCCCCTGTCTGCAGCCATTTTTATGATCGTCTTTTGTGGAATTTCCCAAATAGTTTTATAAACTCGCTTAATATCTTCTGGAAGGTTTGTATTCTGAATGGATCCACCATCTACCATAATCCTATTCTTGATCTCATCATTCCATAATTTTCTCTCGGTTAAAACTCTAAGGAGATGCGGGTTAACTACTTGGAATTCTCCAGACAATACTCTCCGAGTGTAAATATTACTGGTATACGGTTCCACCGACTCATTATTTCCCAAAATTTGAGCAGTTGATGCAGTCGGCATAGGTGCCACCAATAAACTATTTCTAAGACCGTATGTTCTGATTTTATCTTTTAGAGGTTCCCAATTCCAAAGATCCGACGGTACAACATTCCAAAGATCATATTGTAGAATACCGTTACTGGCGTACGATCCTACATATGTATCATATGGTCCTTCCTTCTCAGCTAGTTTACAACTCGCCTCTAATGCACCGTAATAAATGGTTTCAAAGATCTTCTTATTTAGATCTTGTGCTTCCAGGCTATCAAATGGATAATTTAAGAGAATAAACGCGTCCGCTAATCCTTGAACACCAATACCGATAGGTCTATGTCTCTTATTAGAGATTTCAGCTTCTGGAATAGGATAATAATTAATATCTATAATTTTATTGAGATTTCTGACAATTACTTTGACCACATCCTTCAGTTTGAGAAAATCAAATCGCCCATCTATTACAAACATGTTCAATGCAACAGATGCCAGATTACACACGGCTACCTCATTAGCATCCGCATATTGTATTATCTCAGTGCAAAGATTACTACACTTGATGGTTCCTAAATTTTGTTGATTACTCTTTTTGTTACACGCATCCTTATAAAGAATGAATGGAGTACCAGTTTCAATCTGAGATTCTATAATCGCTTTCCAGACGACTCGAGCCTTTATTATACATTTGTATCTCCTTTCTCTTTCGTATAGTGTATACAATCGTTCGAACTCGTCTCCCCAAACATTGTCCAATCCAGGACATTCATCCGGACACATCAACGACCACTCTCCGTCATCCTTCACTCGTTTCATAAAGAGATCAGGAATCCAAAGAGCTATAAATAGATCTCTTGTTCTATGTTCATCGTTTCCTGTATTCTTTTTAAGATCGAGGAACGCCATAATATCAGAATGCCACGGTTCCAAGTATATGGCCATAACTCCAGGCCGTTTGTTTCCTCCCTGATCTATGTATCTAGCGGTGTTATTATAAACTCTCAACATTGGAATAATACCGTTTGATATACCATTGGTACCGGAGATATAGCTTCCACTGGCACGAATATTACTAATTGATAGACCTATTCCCCCTGCCATTTTAGAGATTAATGCGCATCGTTTTAACGTGTCATAGATGCCTTCTATGCTATCATCGATCATGTTAAGTAGAAAACAGCTAGACATTTGGTGACGAGTAGTTCCCGCATTAAATAAGGTAGGAGAAGCGTGCGTAAACCATTTTTCAGAAAGTAGATTGTACGTCTCAATAGCTGAGTCTATATCCCATTGATGAATTCCTACTGCGACACGCATTAACATGTGCTGAGGTCTTTCAACAATTTTGTTGTTTATTTTCAACAAGTAGGATTTTTCCAAAGTTTTAAAACCAAAATAGTTGTATGAAAAGTCTCGTTCGTAAATAATAACCGAATTGAGCTTATCCTTATATTTGTTAACTATATCCATGGTAATACTTGAAATAATCGGAGAATGTTTCCCATTTTTAGGATTAACATAGTTGAATAAATCCTCCATCACTTCACTAAATAGTTTTTTTGTTTCCTTGTGTAGATTTGATATGGCTATTCTGGCGGCTAGAATGGCATAATCCGGATGTTGTGTAGTACAAGTGGCTGCTATTTCGGCTGCCAGAGTGTCCAATTCTACCGTTGTTACTCCATTATATATTCCTTGAATAACCTTCATAGCTATTTTAATAGGATCTATATGATCAGTGTTTAAGCCATAGCACAATTTTCTAATACGAGACGTGATTTTATCAAACATGACATTTTCCTTGTATCCATTTCGTTTAATGACAAACATTTTTGTTGGTGTAATAAAAAAAATTATTTAATTTTTCATTAATAGGGATTTGACGTATGTAGCGTACAAAATTATCGTTCCTGGTATATAGATAAAGAGTCCTATATATTTGAAAATCGTTACGGTTCGATTAAACTTTAATGATTGCATTGTGAATATATCATTAGGATTTAACTCCTTGACTATCATGGCGGTGCCAGAAATTACCATCAAAAGCATTAATACAGTTATGCAGATCGCAGTTAGAACGGTTATAGCATCCACCATTTATATCTAAAAATTAGATCAAAGAATATGTGACAACGTCCTAGTTGTATACTGAGAATTGACGAAACAATGTTTCTTACATATTTTTTTCTTATTAGTAACCGACTTAATAGTAGGAACTGGAAAACTAGACTTGATTATTCTATAAGTATAGATACCCTTCCAAATAATGTTCTCTTTGATAAAAGTTCCAGAAAATGTAGAATTTTTTAAAAAGTTATCTTTTGCTATTACTAATATCGTGGTTAGACGCTTATTATTAATATGAGTGATGAAATCCACACCGCTTCTAGATATCGCTTTTATTTCCACATTAGATGGTAAATCCAATAGTGAAACTATCTTTTTAGGAATGTATGGACTCGCGTTTAGAGGAGTGAACGTCTTCGGAGTAGTAAAGGATGATTCGTCAAATGAATAAACAATTTCACAAATGGATGTTAATGTATTAGTAGGAAATTTTTTGACGCTAGTGGAATTGAAGATTCTAATGGATGATGTTCTACCTATTTCATCCGATAACATGTTAATTTCCAATACCAACGGTTTTAATATTTCGATGATATACGGTAGTCTCTCTTTCGGACTTATATAGCTTATTCCACAATACGAGTCATTATATACTCCAAAAAACAAAATAACTAGTATAAAATCTGTATCGAATGGGAAAAACGAAATTATCGATATAGGTATAGAATCCGGAACATTGAACGTATTAATACTTAATTCTTTTTCAGTGGTAAGAACCGATAGGTTATTGACATTGTATGGTTTTAAATATTCTATAACTTGAGACTTGATAGATATTAATGACGAATTGAAAATTATTTTTATCACCACGTGTGTTTCAGGATCATCGTCGACGCCAGTTAACCAACCGAATGGAGTAAAATAAATATCATTAATATATGCTCTAGATATTAGTATTTTTATTAATCCTTTGATTATCATCTTCTCGTACGCGAATGATTCCATGATCAAGAGTGATTTGAGAACATCCTCCGGAGTATTAATGGGTTTAGTAAACAGTCCATCGTTGCAATAATAAAAGTTGTCCAAGTTAAAGGATATTATGCATTCGTTTAAAGATATCACCTCATCTAACGGAGACAATTTTTTGGTAGGTTTTAGAGACTTTGAAGCTACTTGTTTAACAAAGTTATTCATCGTCGTCTACTATTCTATTTAATTTTGTAGTTAATTTATCACATATCACATTAATTGACTTTTTGGTCCACTTTTCCATACGTTTATATTCTTTTAATCCTGCGTTATCCGTTTCCGTTATATACAGGGATAGATCTTGCAAGTTAAATAGAATGCTCTTAAATAATGTCATTTTTTTATCCGCTAAAAATTTAAAGAATGTATAAACTTTTTTCAAAGATTTAAAACTTTTAGGTGGAGTTCTGGTACACAATATCATAAACAAACTAATAAACATCCCACATTCAGATTCCAACAATTGATTAACTTCCACATTAATACAGCCTATTTTCGCTCCAAATGTACATTCGAAAAATCTGAATAAAACATCAATATCGCAATTTGTATTATCCAATACAGAATGTCTGTGATTCGTGTTAAAACCATCGGAAAAAGAATAGAAATAAAAATTATTATAATGGTGGAATTCAGTTGGAATATTGCCTCCGGAGTCATAAAAGGATACTAAACATTGTTTTTTATCGTAAATTACACATTTCCAATGAGACAAATAACAAAATCCAAACATTACAAATCTAGAGGTAGAACTTTTAATTTTGTCTTTAAGTATATACGATAAGATATGTTTATTCATAAACGCGTCAAATTTTTCATGAATAGCTAAGGAGTTTAAGAATCTCATGTCAAATTGTCCTATATAATCCACTTCGGATCCATAAGCAAACTGAGAGACTAAGTTCTTAATACTTCGATTGCTCATCCAGGCTCCTCTCTCAGGCTCTATTTTCATCTTGACGACCTTTGGATTTTCACCAGTATGTATTCCTTTACGTGATAAATCATCGATTTTCAAATCCATTTGTGAGAAGTCTATCGCCTTAGATACTTTTTCCCGTAGTTGAGGTTTAAAGAAATACGCTAACGGTATACTAGTAGGTAACTCAAAGACATCATATATAGAATGGTAACGCGTCGTTAACTCGTCGGTTAACTCTTTCTTTTGATCGAGTTCATCGCTACTATTGGGTCTGCTCAGGTGCCCCGACTCTACTAGTTCCAACATCATACCGATAGGAATACAAGACACTTTGCCAGCGGTTGTAGATTTATCATATTTCTCCACCACATATCCGTTACAATTTGTTAAGAATTTAGATACATCTATATTGCTACATAATCCAGCTAGTGAATATATATGACATAATAAATTGGTAAATCCTAGTTCTGGTATTTTACTAATTACTAAATCTGTATATCTTTCCATTTATCATGGAAAAGAATTTACCAGATATCTTCTTTTTTCCAAACTGCGTTAATGTATTCTCTTACAAATATTCACAAGATGAATTCAGTAATATGAGTAAAACGGAACGTGATAATTTCTCATTGGCTGTGTTTCCAGTGATAAAACATAGATGGCATAACGCACACGTTGTAAAACATAAAGGAATATACAAAGTTAGTACAGAAGCACGTGGAAAAAAAGTATCTCCTCCATCACTAGGAAAACCCGCACATATAAACCTAATGTCGAAGCAATATATATATAGTGAGTATGCAATAAGCTTTGAATGTTATAGTTTTCTAAAATGTATAACAAATACAGAAATCAATTCGTTCGATGAGTATATATTAAGAGGACTATTAGAAGCTGGTAATAGTTTACAGATATTTTCCAATTCCGTAGGTAAACGAATAGATACTATAGGTGTACTAGGGAATAAGTATCCATTTAGCAAAATTCCATTGGCCTCATTAACTCCTAAAGCACAACGAGAGATATTTTTAGCGTGGATTTCTCATAGACCTGTAGTTTTAACTGGAGGAACCGGAGTGGGTAAGACGTCACAGGTACCCAAGTTATTGCTTTGGTTTAATTATTTATTTGGTGGATTCTCTTCTCTAGATAAAATCACTGACTTTCACGAAAGACCAGTCATTCTATCTCTTCCTAGGATAGCTTTAGTTAGATTGCATAGCAATACCATTTTAAAATCATTGGGATTTAAGGTACTAGATGGATCTCCTATCTCTTTACGGTACGGATCTATACCGGAAGAATTAATAAACAAACAACCAAAAAAATATGGAATTGTATTTTCTACCCATAAGTTATCTCTAACAAAACTATTTAGTTATGGCACTATTATTATAGACGAAGTTCATGAGCATGATCAAATAGGAGATATTATTATAGCAGTAGCGAGAAAACATCATACGAAAATAGATTCTATGTTTTTAATGACTGCCACGTTAGAGGATGACAGGGAACGTCTAAAAATATTTTTACCTAATCCCGCATTTATACATATTCCTGGAGATACACTGTTTAAAATTAGCGAGGTATTTATTCATAATAAGATAAATCCATCTTCCAGAATGGCATATATAGAAGAAGAAAAGAGAAATTTAGTTACTGCTATACAGATGTATACTCCTCCTGATGGATCATCCGGTATAGTCTTTGTGGCATCCGTTGCACAGTGTCACGAATATAAATCATATTTAGAAAAAAGATTACCGTATGATATGTATATTATTCATGGTAAGGTCTTAGATATAGACGAAATATTAGAAAAAGTGTATTCATCACCTAATGTATCGATAATTATTTCTACTCCTTATTTGGAATCCAGCGTTACTATACGCAATGTTACACACATTTATGATATGGGTAGAGTTTTTGTCCCCGCTCCTTTTGGAGGATCACAACAATTTATTTCTAAATCTATGAGAGATCAACGAAAAGGAAGAGTAGGAAGAGTTAATCCTGGAACATACGTATATTTCTATGATCTGTCTTATATGAAATCTATACAGCGAATAGATTCAGAATTTCTACATAATTATATATTGTACGCTAATAAGTTTAATCTAACACTCCCCGAAGATTTGTTTATAATCCCTACAAATTTGGATATTCTATGGCGTACAAAGGAATATATAGACTCGTTCGATATTAGTACAGAAACATGGAATAAATTATTATCCAATTATTATATGAAGATGATAGAGTATGCTAAACTTTATGTACTAAGTCCTATTCTCGCTGAGGAGTTGGATAACTTTGAGAGGACGGGAGAATTAACTAGTATTGTACAAGAAGCCATTTTATCTCTAAATTTACAAATTAAGATTTTAAAATTTAAACATAAAGATGATGATACGTATATACACTTTTGTAGAATATTATTCGGTGTCTATAACGGAACAAACGCTACTATATATTATCATAGACCTCTAACGGGATATATGAATATGATTTCAGATACTATATTTGTTCCTGTAGATAATAACTAAAAATCAAAATCTAATGACCACATCTTTTTTTAGAGATGAAAAATTTTCCACATCTCCTTTTGTAGACACGACTAAACATTTTGCAGAAAAAAGTTTATTATTATTTAGATAATCGTATACTTCATCAGTGTAGATAGTAAATGTGAACAGATAAAAGGTATTCTTGCTCAATAGATTGGTAAATTCCATAGAATATATTAATCCTTTCTTCTTGAGATCCCACATCATTTCAACCAAAGACGTTTTATCCAATGATTTACCTCGTACTATACCACATACAAAACTAGATTTTGCAGTGATGTCGTACCTGGTATTCCTACCAAACAAAATTTTACTTTTAGTTCTTTTAGAAAATTCTAAGGTAGAATCTCTATTTGTCAATATGTCATCTATGGAATTACCACTAGCAAAAAATGATAGAAATATATATTGATACATCGCAGCTGGTTTTGATCTACTATACTTTAAAAACGAATCAGATTCCATAATTGCTTGTATATCATCAGCTGAAAAACTATGTTTTACACGTATTCCTTCGGCATTTCTTTTTAATGATATATCTTGTTTAGACAATGATAAAGTTATCATGTCCATGAGAGACGCGTCTCCGTATCGTATAAATATTTCATTAGATGTTAGACGCTTCATTAGGGGTATACTTCTATAAGGTTTCTTAATTAGTCCATCATTGGTTGCGTCAAGAACTACTATCTGATGTTGTTGGGTATCTCTAGTGTTACACATGGCCTTACTAAAGTTTGGGTAAATAACTATGATATCTCTATTAATTATAGATGTATATATTTCATTCGTCAAGGATATTAATATCGACTTACTATCGTCATTAATACGTGTAATGTAATCATATAAATCATGCGATAGCCAAGGAAAATTCAAATAGATGTTCATCATATAATCGTCGCTATAATTCATATTAATACTTTGACATTGACTAATTTGTAATATAGCCTCGCCACGAAGAAAGCTCTCGTATTCAGTTTCATCGATAAAGGATACCGTTAAATATAACTGGTTGCCGATAGTCTCATAGTCTATTAAGTGGTAAGTTTCGTATAAATACAGAATCCCTAAAATATTATCTAATGTGGGATTAATCCTTACCATAACTGTATAAAATGGAGCCGGAGTCATAACTATTTTACCGTTTGTACTTACTGGAATAGATGAAGGAATAATCTCCGGACATGATGGTAAAGACCCAAATGTCTGTTTGAAGAAATCCAATGTTCCAGGTCCTAATCTCTTGACAAAAATTACGATATTCGATCCCGATATCCTTTGCATTCTATTTACCAGCATATCACGAACTATATTAAGATTATCTATCATGTCTATTCTCCCACCGTTATATAAATCGCCTCCGCTAAGAAACGTTAGTATATCCATACAATGGAATACTTCATTTCTAAAATAGTATTCGTTTTCTAATTCTTTAATGTGAAATCGTATACTAGAAAGGGAAAAATTATCTTTGAGTTTTCCATTAGAAAAGAACCACGAAACTAATGTTCTGATTGCGTCTGACTCCGTCGCTGAATTAATAGATTTACACCAAAAACTCATATAACTTCTAGATGTAGAAGCATTCGCTAAAAAATTAGTAGAATCAAAGGATATAAGTAGATGTTCCAACAAGTGAGCAATTCCCAAGATTTCATCTATATCATTCTCGAATCCGAAATTAGAAATTCCCAAGTAGATATCCTTTTTCATCCGATCATTGATGAAAATACGAACTTTATTCGGTAAGACGATCATTTACTAAGGAGTAAAATAGGAAGTAACGTTCGTATATCGTTATCGTCGTATAAATTAAAGGTGTGTTTTTTGCCATTAAGAGACATTATAATTTTACCAATATTGGAATTATAATATAGGTGTATTTGAGCACTAGAAACGGTCGATGCATCGGTAAATATAGCTGTATCTAATGTTCTAGTCGGTATTTCTTCATTTCGCTGTCTAATGATAGCGTTTTCTCTATCTGTTTCCATTACAGCTGCCTGAAGTTTATTGGTCGGATAATATGTAAAATAATAAGAAATACATACGAATAACAAAAATAAAATAAGATATAATAAAGATGCCATTTAGAGATCTAATTTTGTTCAACTTGTCCAAATTCCTACTTACAGAAGATGAGGAATCGTTGGAGATAGTATCTTCCTTATGTAGAGGATTTGAAATATCTTACGATGACTTAATATCGTACTTTCCAGATAGGAAATACCATAAATATATTTCTAAGGTATTTGAACATGTAGATTTATCGGAGGAATTAAGTATGGAATTCCATGATACAACTCTGAGAGATTTAGTATATCTTAGATTGTACAAGTATTCCAAGTATATACGGCCGTGTTATAAATTAGGAGATAATCTAAAAGGTATAGTTGTTATAAAGGACAGAAATATATATATTAGAGAAGCAAATGATGACTTGATAGAATATCTCCTCAAGGAATACACTCCTCAGATTTATACATATTCTAATGAGCGAGTTCCCATAGCTGGTTCAAAATTAATTCTTTGTGGATTTTCTCAAGTTACATTTATGGCGTATACAACGTCGCATATAACAACAAATAAAAAGGTAGATGTTCTCGTTTCCAAAAAATGTATAGATGAACTAGTCGATCCAATAAATTATCAAATACTTCAAAATTTATTTGATAAAGGAAGCGGAACAATAAACAAAATACTCAGGAAGATATTTTATTCGGTAACAGGTGGCCAAACTCCATAGGTAGCTTTTTCTATTTCGGATTTTAGAATTTCCAAATTCACCAGCGATTTATCGGTTTTGGTGAAATCCAAGGATTTATTAATGTCCACAAATGCCATTTGTTTTGTCTGTGGATTGTATTTGAAAATGGAAACGATGTAGTTAGATAGATGCGCGGCGAAGTTTCCTATTAGGGTTCCGCGCTTCACGTCACCCAACATACTTGAATCACCATCCTTTAAAAAAAATGATAAGATATCAACATGGAGTATATCATACTCGGATTTTAATTCTTCTACTGCCTCACTGACATTTTCACAAATACTACAATACGGTTTACCGAAAATAATCAGTACGTTCTTCATTTATGGGTATCAAAAACTTAAAATCGTTACTGCTGGAAAATAAATCACTGACGATATTAGATGATAATTTATACAAAGTATACAATGGAATATTTGTGGATACAATGAGTATTTATATAGCCGTCGCCAATTGTGTCAGAAACTTAGAAGAGTTAACTACGGTATTCATAAAATACGTAAACGGATGGGTAAAAAAGGGAGGACATGTAACCCTTTTTATCGATAGAGGAAGTATAAAAATTAAACAAGACGTTAGAGACAAGAGACGTAAATATTCTAAATTAACCAAGGACAGAAAAATGTTAGAATTAGAAAAGTGTACATCCGAAATACAAAATGTTACCGGATTTATGGAAGAAGAAATAAAGGCAGAAATGCAATTAAAAATCGATAAACTCACATTTCAAATATATTTATCTGATTATGATAACATAAAAATATCATTGAATGAGATACTAACACATTTCAACAATAATGAGAATGTTACATTATTTTATTGTGATGAACGAGACGCAGAATTCGTTATGTGTCTAGAGGCTAAAACACAGTTCTCTACCACAGGAGAATGGCCGTTAATAATAAGTACCGATCAGGATACTATGCTATTCGCGTCTGCTGATAATCATCCTAAGATGATAAAAAACTTAACTCAACTGTTTAAATTTGTTCCCTCGGCAGAGGATAACTATTTAGCAAAATTAACTGCATTAGTGAATGGATGTGATTTCTTTCCTGGACTCTATGGGGCATCTATAACACCCAACAACTTAAACAAAATACAATTGTTTAGTGATTTTACAATCGATAATATAGTCACTAGTTTGGCAATTAAAAATTATTATAGAAAGACTAACTCTACCGTAGACGTGCGTAATATTGTTACGTTTATAAACGATTACGCTAATTTAGACGATGTCTACTCGTATATTCCTCCTTGTCAATGCACTGTTCAAGAATTTATATTCTCCGCATTAGATGAAAAATGGAATGAATTTAAATCATCTTATTTAGAGAGCGTGCCGTTACCCTGCCAATTAATGTACGCATTAGAACCACGTAAGGAGATTGATGTTTCAGAAGTTAAAACTTTATCATCTTATATAGATTTCGAAAATACTAAATCAGATATCGATGTTATAAAATCTATATCCTCGATTTTTGGATATTCTAACGAAAACTGTAACACCATAGTGTTCGGCATCTATAAGGATAATTTACTACTGAGTATAAATAATTCATTTTACTTTAACGATAGTCTGTTAATAACCAATACTAAAAGTGATAATATAATAAATATAGGTTACTAGATTAAAAAATGGTGTTCCAGCTCGTGTGTTCTACATGCGGCAAAGATATTTCTCACGAACGATATAAATTGATTATACGAAAAAAATCATTAAAGGATGTACTAGTCAGTGTAAAGAACGAATGTTGTAGGTTAAAATTATCTACACAAATAGAACCTCAACGTAACTTAACAGTGCAACCTCTATTGGATATAAACTAATGGATCCGGTTAATTTTATCAAGACATATGCGCCTAGAGGTTCTATTATTTTTATTAATTATGCCATGTCATTAACTAGTCATTTGAATCCATCGATAGAAAAACATGTGGGTATTTATTATGGTACGTTATTATCGGAACACTTGGTAGTTGAATCTACCTATAGAAAAGGAGTTAGAATAGTCCCATTGGATAGATTTTTTGAAGGATATCTTAGTGCAAAAGTATACATGTTAGAGAATATTCAAGTTATGAAAATAGCAGCTGATATGTCGTTAACTTTACTAGGTATTCCATATGGATTTGGTCATGATAGAATGTATTGTTTTAAATTGGTAGCTGAATGTTATAAAAATGCCGGTATTGATACATCGTCTAAACGAATATTAGGTAAAGATATTTTTCTGAGCCAAAACTTTACAGATGATAATAGATGGATAAAGATATATGATTCTAATAATTTAACATTTTGGCAAATTGATTACCTTAAAGGGTGAGTTAATATGCATAACTACTCCTCCGTTGTTTTTTCCCTCGTTCTTTTTCTTAACGTTGTTTGCCATCACTCTCATAATGTAAAGATATTCTAAAATGGTAAACTTTTGCATATCGGATGCAGAAATTGGTATAAATGTTGTAATTGTATTATTTCCCGTCAATGGACTAGTCACAGCTCCATCAGTTTTATATCCTTTAGAGTATTTCTCACTCGTGTCTAGCATTCTAGAGCATTCCATGATCTGTTTATCGTTGATATTGGCCGGAAAGATAGATTTTTTATTTTTTATTATATTACTATTGGCAATTGTAGATATAACTTCTGGTAAATATTTTTCTACCTTTTCAATCTCTTCTATTTTCAAGCCGGCTATATATTCTGCTATATTGTTACTAGTATCAATACCTTTTCTGGCTAAGAAGTCATATGTGGTATTCACTATATCAGTTTTAACTGGTAGTTCCATTAGCCTTTCCACTTCTGCAGAATAATTAGAAATTGGTTCTTTACCAGAAAATCCAGCTACTATAATAGGCTCACCGATGATCATTGGCAAAATCCTATATTGTACCAGATTAATGAGAGCATATTTCATTTCCAATAATTCTGCTAGTTCTTGAGACATTGATTTATTTGATGAATCTATTTGGTTCTCTAGATACTCTACCATTTCTGCCGCATACAATAACTTGTTAGATAAAATCAGGGTTATCAAAGTGTTTAGTGTGGCTAGAATAGTGGGCTTGCACGTATTAAAGAATGCTGTAGTATGAGTAAACCGTTTTAACGAATTATATAGTCTCCAGAAATCTGTGGCGTTGCATACATGAACTGAATGACATCGAAGATTGTCCAATATTTTTAATAGCTGCTCTTTGTCCATTATTTCTATATTTGACTCGCAACAATTGTAGATACCATTAATCACTGATTCCTTTTTCGATGCCGGACAATAGCACAATTGTTTAGCTTTGGACTCTATGTATTCAGAATTAATAGATATATCTCTCAATACAGATTGCACTATACATTTTGAAACTATGTCAAAAATTGTAGAACGACGCTGTTCTGTAGCCATTTAACTTTAAATAATTTACAAAAATTTAAAATGAGCATCCGTATAAAAATCGATAAATTGCGCCAAATTGTGGCATATTTTTCAGAGTTCAGCGAAGAAGTGTCTATAAATGTAGACTCGACGGATGAATTAATGTATATTTTTGCCGCCTTGGGCGGATCTGTAAACATTTGGGCCATTATACCTCTCAGTGCATCAGTGTTCTACCGCGGAGCCGAAAATATTGTGTTTAACCTTCCAGTGTCCAAGGTAAAATCGTGTTTGTGTAGTTTTCACAATGATGCTATCATAGATATAGAACCTGATCTGGAAAATAATCTAGTAAAACTTTCTAGTTATCATGTAGTAAGTGTCGATTGTAACAAGGAACTGATGCCTATTAGGACAGATACTACTATTTGTCTAAGTATAGATCAAAAGAAATCTTACGTATTTAATTTTCACAAGTATGAAGAAAAATGTTGTGGTAGAACCGTCATTCATCTAGAATGGTTGTTGGGCTTTATCAAGTGTATTAGTCAGCATCAGCATTTGGCTATTATGTTTAAAGATGACAATATTATTATGAAGACTCCTGGTAATACTGATGCGTTTTCCAGGGAATATTCTATGACTGAATGTTCTCAAGAACTACAAAAGTTTTCTTTCAAAATAGCTATCTCGTCTCTCAACAAACTACGAGGATTCAAAAAGAGAGTCAATGTTTTTGAAACTAGAATCGTAATGGATAATGACGATAACATTCTAGGAATGTTGTTTTCGGATAGAGTTCAATCCTTTAAGATTAACATCTTTATGGCGTTTTTAGACTAATACTTTCAATGAGATAAATATGGGTGGCGGAGTAAGTGTTGAGCTCCCTAAACGGGATCCACCTCCGGGAGTACCCACTGATGAGATGTTATTAAACGTGGATAAAATGCATGACGTGATAGCTCCCGCTAAGCTTTTAGAATATGTGCATATAGGACCACTAACAAAAGATAAAGAGGATAAAGTAAAGAAAAGATATCCAGAGTTTAGATTAGTCAACACAGGACCCGGTGGTCTTTCGGCATTATTAAGACAATCATATAATGGAACCGCACCCAATTGCTGTCGCACTTTTAATCGTACTCATTATTGGAAGAAGGATGGAAAGATATCAGATAAGTATGAAGAGGGTGCAGTATTAGAATCGTGTTGGCCCGACGTCCACGACACTGGAAAATGCGATGTTGATTTATTCGACTGGTGTCAGGGGGATACGTTCGATATGAACATATGCCATCAGTGGATCGGTTCAGCCTTTAATAGGAGTGATAGAACTGTAGAGGGTCGACAATCGTTAATAAATCTGTATAATAAGATGCAAAGATTATGTAGTAAAGATGCTAGTGTACCAATATGTGAATTATTTTTGCATCATTTACGCGCACACAATACAGAAGATAGTAAAGAGATGATCGATTATATTCTAAGACAACAGTCGGCGGACTTTAAACAGAAATATATGAGATGTAGTTATCCCACTAGAGATAAGTTAGAAGAGTCATTAAAATATGCGGAACCTCGAGAATGTTGGGATCCAGAGTGTTCGAATGCCAATGTTAATTTCTTACTAACACGTAATTATAATAATTTAGGACTTTGCAATATTGTACGATGTAATACGAGCGTGAATAACTTACAGATGGATAAAACTTCCTCATTAAGATTATCATGTGGATTAAGCAATAGTGATAGATTTTCTACTGTTCCCGTCAATAGAGCAAAAGTAGTTCAACATAATATTAAACATTCGTTCGACCTAAAATTGCATTTGATCAGTTTATTATCTCTCTTGGTAATATGGATACTAATTGTAGCTATTTAAATGGGTGCCGCAGCAAGCATACAGACGACTGTGAATACACTCAGTGAACGTATCTCGTCTAAATTAGAACAAGAAGCGAACGCTAGTGCTCAAACAAAATGTGATATAGAAATCGGAAATTTTTATATCCGACAAAACCATGGATGTAACATCACTGTTAAAAATATGTGCTCTGCGGACGCGGATGCTCAGTTGGATGCTGTGTTATCAGCCGCTACAGAAACATATAGTGGATTAACACCGGAACAAAAAGCATACGTACCAGCTATGTTTACTGCTGCGTTAAACATTCAGACGAGTGTAAACACTGTTGTTAGAGATTTTGAAAATTATGTGAAACAGACTTGTAATTCTAGCGCTGTTGTCGATAACAAATTAAAGATACAAAACGTAATTATAGATGAATGTTACGGAGCCCCAGGATCTCCAACAAATTTGGAATTTATTAATACAGGATCTAGCAAAGGAAATTGTGCCATTAAGGCGTTGATGCAATTGACTACTAAGGCCACTACTCAAATAGCACCTAGACAAGTTGCTGGTACAGGAGTTCAGTTTTATATGATTGTTATCGGTGTTATAATATTGGCAGCGTTGTTTATGTACTATGCCAAGCGTATGCTGTTCACATCCACCAATGATAAAATCAAACTTATTTTAGCCAATAAGGAAAACGTCCATTGGACTACTTACATGGACACATTCTTTAGAACTTCTCCGATGATTATTGCTACCACGGATATACAAAACTGAAAATATATTGATAATATTTTAATAGATTAACATGGAAGTTATCGCTGATCGTCTAGACGATATAGTGAAACAAAATATAGCGGATGAAAAATTTGTAGATTTTGTTATACACGGTCTAGAGCATCAATGTCCTGCTATACTTCGACCATTAATTAGGTTGTTTATTGATATACTATTATTTGTTATAGTAATTTATATTTTTACGGTACGTCTAGTAAGTAGAAATTATCAAATATTGTTGGTGTTGGTGGCGCTAGTCATCACATTAACTATTTTTTTATTACTTTATACTATAATAGTACTAGACTGACTTCTAACAAACATCTCACCTGCCATAAATAAATGCTTGATATTAAAGTCTTCTATTTCTAACACTATTCCATCTGTGGAAAATAATACTCTGACATTATCGCTAATTGATACATCGGTAAGTGATATGCCTATAAAGTAATAATCTTCTTTGGGCACATATACCAGTGTACCAGGTTCTAACAACCTATTTACTGGTGCTCCTGTAGCATACTTTTTTTTTACCTTGAGAATATCCATTGTTTGCTTGGTCAATAGTGATATGTGATTTTTTATCAACCACTCAAAAAAGTAATTGGAGTGTTCATATCCTCTACGGGCTATTGTCTCATGACCGTGTATGAAATTTAAGTAACACGACTGTGGTAGATTTGTTCTATAGAGCCGGTTGCCGCAAATAGATAGAACTACCAATATGTCTGTACAAATGTTAAACATTAATTGATTAACAGAAAAAACAATGTTCGTTCTGGGAATAGAAACCAGATTAAAACAAAATTCATTAGAATATATGCCACGTTTATACATGGAATATAAAATAACTACAGTTTGAAAAATAACAGTATCATTTAAACATTTAACTTGCGGGGTTAATCTCACAACTTTACTGTTTTTGAACTGTTCAAAATATAGCATAGATCCATGAGAAATACGTTTAGCCGCCTTTAATAGAGGAAATCCAACCGCCTTTCTGGATCTCACCAACGACGATAGTTCTGACCAGCAACTCATTTCTTCATCATCCACCTGTTTTAACATATAATAGGCAGGAGATAGATATCCATCATTGCAATATTCCTTCTCGTAGGCACACAATCTAATATTGATAAAATCTCCATTCTCTTCTCTGTATTTATTATCTTGTCTCGGTGGCTGATTAGGCTGTGGTCTATCGTTGTTGAATCTATTTTGGTCATTAAATCTTTCATTTCTTCCTGGTATATTTCTATCACCTCGTTTGGTTGGATTTTTGTCTATATTATCGTTTGTAACATCGGTACGGGTATTCATTTATCACAAAAAAAACTTCTCTAAATGAGTCTACTACTAGAAAACCTCATCGAAGAAGATACCATATTTTTTGCAGGAAGTATATCTGAGTATGATGATTTACAAATGGTTATTGCTGGTGCAAAATCCAAATTTCCAAGATCTATGCTTTCTATTTTTAATATAGTACCTAGAACGATGTCAAAATATGAGTTGGAGTTGATTCATAACGAGAATATCACAGGGGCAATGTTTACCACAATGTATAATATAAGAAACAATTTGGGTCTAGGCGATGATAAACTAACTATTGAAGCCATTGAAAACTATTTCTTGGATCCTAACAATGAGGTTATGCCTCTTATCATTAATAATACGGATATGACTACCGTCATTCCTAAAAAAAGTGGTAGGAGAAAGAATAAGAACATGGTTATCTTCCGTCAAGGATCATCACCTATCTTGTGTATTTTCGAAACTCGTAAAAAGATTAATATTTATAAAGAAAATATGGAATCCGTATCGACTGAGTATACACCTATCGGAGACAACAAGGCTTTGATATCTAAATATGCGGGAATTAATATCCTGAATGTGTATTCTCCTTCCACGTCCATGAGATTGAATGCCATTTACGGATTCACCAATAAAAATAAACTAGAGAAACTTAGTACTAATAAGGAACTAGAATCGTATAGTTCTAGCCCTCTTCAAGAACCCATTAGGTTAAATGATTTTCTGGGACTATTGGAATGTGTTAAAAAGAATATTCCTCTAACAGATATTCCGACAAAGGATTGATTACTATAAATGGAGAATGTTCCTAATGTATACTTTAATCCTGTGTTTATAGAGCCCACGTTTAAACATTCTTTATTAAGTGTTTATAAACACAGATTAATAGTTTTATTTGAAGTATTCGTTGTATTCATTCTAATATATGTATTTTTTAGATCTGAATTAAATATGTTCTTCATGCCTAAACGAAAAATACCCGATCCTATTGATAGATTACGACGTGCTAATCTAGCGTGTGAAGACGATAAATTAATGATCTATGGATTACCATGGATAACAACTCAAACATCTGCGTTATCAATAAATAGTAAACCGATAGTGTATAAAGATTGTGCAAAGCTTTTGCGATCAATAAATGGATCACAACCAGTATCTCTTAACGATGTTCTTCGCAGATGATGATTCATTTTTTAAGTATTTTGCTAGTCAAGATGATGAATCTTCATTATCTGATATATTGCAAATCACTCAATATCTAGACTTTCTGTTATTATTATTGATCCAATCAAAAAATAAATTAGAAGCTGTGGGTCATTGTTATGAATCTCTTTCAGAGGAATACAGACAATTGACAAAATTCACAGACTCTCAAGATTTTAAAAAACTGTTTAACAAGGTCCCTATTGTTACAGATGGAAGGGTCAAACTTAATAAAGGATATTTGTTCGACTTTGTGATTAGTTTGATGCGATTCAAAAAAGAATCAGCTCTAGCTACCACCGCAATAGATCCTGTTAGATACATAGATCCTCGTCGTGATATCGCATTTTCTAACGTGATGGATATATTAAAGTCGAATAAAGTTGAAAAATAATTAATTCTTTATTGTTATCATGAACGGCGGACATATTCAGTTGATAATCGGCCCCATGTTTTCAGGTAAAAGTACAGAATTAATTAGACGAGTTAGACGTTATCAAATAGCTCAATATAAATGTGTGACTATAAAATATTCTAACGATAATAGATACGGAACGGGACTATGGACACATGATAAGAATAATTTTGCAGCATTGGAAGTAACTAAACTATGTGATGTCTTGGAAGCAATTACAGATTTCTCCGTGATAGGTATAGATGAAGGACAGTTCTTTCCAGACATTGTTGAATTCTGTGAGCGTATGGCAAACGAAGGAAAAATAGTTATAGTAGCCGCGCTCGATGGGACATTTCAACGTAGACCGTTTAATAATATTTTGAATCTTATTCCATTATCTGAAATGGTGGTAAAACTAACTGCAGTGTGTATGAAATGCTTTAAGGAGGCTTCCTTTTCTAAACGATTAGGTACAGAAACCGAGATAGAAATAATAGGAGGTAATGATATGTATCAATCTGTGTGTAGAAAGTGTTACATCGACTCATAATATTATATTTTTTATCTAAAAAACTAAAAATAAACATTGATTAAATTTTAATATAATACTTAAAAATGGATGTTGTGTCGTTAGATAAACCGTTTATGTATTTTGAGGAAATTGATAATGAGTTAGATTACGAACCAGAAAGTGCAAATGAGGTCGCAAAAAAACTGCCGTATCAAGGACAGTTAAAACTATTACTAGGAGAATTATTTTTTCTTAGTAAGTTACAGCGACACGGTATATTAGATGGCGCCACCGTAGTGTATATAGGATCTGCTCCAGGTACACATATACGTTATTTGAGAGATCATTTCTATAATTTAGGAGTGATCATCAAATGGATGCTAATTGACGGCCGCCATCATGATCCTATTCTAAATGGATTGCGTGATGTGACTCTAGTGACTCGGTTTGTTGATGAGGAATATCTACGATCCATCAAAAAACAACTACATCCTTCTAAGATTATTTTAATTTCTGATGTGCGATCCAAACGAGGAGGAAATGAACCTAGTACTGCGGATTTACTAAGTAATTATGCTCTACAAAATGTCATGATTAGTATTTTAAACCCCGTGGCGTCTAGTCTTAAATGGAGATGCCCGTTTCCAGATCAATGGATCAAGGACTTTTATATCCCACACGGTAATAAAATGTTACAACCTTTTGCTCCTTCATATTCAGCTGAAATGAGATTATTAAGTATTTATACCGGTGAGAATATGAGACTGACTCGAGTTACCAAATCAGACGCTGTAAATTATGAAAAAAAGATGTATTACCTTAATAAGATAGTCCGCAACAAAGTAGTTATTAACTTTGATTATCCTAATCAGGAATATGACTATTTTCACATGTACTTTATGTTGAGGACCGTATACTGCAATAAAACATTTCCTACTACTAAAGCAAAGATACTATTTCTACAACAATCTATATTTCGTTTCTTAAATATTCCAACGACATCAACTGAAAAAGTTAGTCATGAACCAATACAACGTAAAATATCTAGCAAAGATTCTATGTCTAAAAACAGAAATAGCAAGAGATCCGTACGCGGTAATAAATAGAAACGTACTACTGAGATATACTACCGATATAGAGTATAATGATTTAGTTACTTTAATAACCGTTAGACATAAAATTGATTCTATGAAAACTGTGTTTCAGGTATTTAACGAATCATCCATAAATTATACTCCGGTTGATGATGATTATGGAGAACCAATCATTATAACATCGTATCTTCAAAAAGGTCATAACAAGTTTCCTGTAAATTTTCTATACATAGATGTGGTAATATCTGACTTATTTCCTAGCTTTGTTAGACTAGATACTACAGAAACTAATATAGTTAATAGTGTACTACAAACAGGCGATGGTAAAAAGACTCTTCGTCTTCCTAAAATGTTAGAGACGGAAATAGTTGTCAAGATTCTCTATCGTCCTAATATACCATTAAAAATTGTTAGATTTTTCCGCAATAACATGGTAACTGGAGTAGAGATAGCCGATAGATCTGTTATTTCAGTCGCTGATTAATCAATTAGTAGAGATGAGATAAGAACATTATAATAATCAATAATATATCTTATATCTGTTTAGAAAAATGCTAATATTAAAATAGCTAACGCTAGTAATCCAATCGGAAGCCATTTGATATCTATAATAGGGTATCTAATTTCCTGATTCAGATAGCGTACGGCTATATTCTCGGTAGCTACTCGTTTGGAATCACAGACATTATTTACATCTAATTTACTATCTGTAATGGAAACGTTTCCCAATGAAATGGTACAATCAGATACATTACATCTTGATATATTTTTTTTTAAAGAGGCTGGTAACAACGCATCGCTTCGTTTACATGGCTCGTACCAACAATAATAGGGTAATCTTGTATCTATTCCTATCCGTACTATACTTTTATCAGGATAAATACATTTACATCGTATATCGTCTTTGTTAGTATCACAGAATGCATAAATTTGTTCGTCCGTCATGATAAAAATTTAAAGTGTAAATATAACTATTATTTTTATAGTTATAATAAAAAGGGAAATTTGATTGTATACCTTCGGTTCTTTAAAAGAAACTGACTTGATAAAAATGGCTGTAATCTCTAAGGTTACGTATAGTCTATACGATCAAAAAGAGATTAATGCCACAGATATTATCATTAGTCATATTAAAAATGACGACGATATCGGTACCGTTAAAGATGGTAGACTAGGTGCTATGGATGGGGCATTATGTAAGACTTGTGGGAAAACGGAATTGGAATGTTTCGGTCACTGGGGTAAAGTAAGTATTTATAAAACTCATATAGTTAAGCCTGAATTTATTTCAGAAATTATTCGTTTACTGAATCATATATGTATTCATTGCGGATTATTGCGTTCACGAGAACCGTATTCCGACGATATTAACCTAAAAGAGTTATCGGTACACGCTCTTAGGAGATTAAAGGATAAAATATTATCCAAGAAAAAGTCATGTTGGAACAGCGAATGTATGCAACCGTATCAAAAAATTACTTTTTCAAAGAAAAAGGTTTGTTTCGTCAACAAGTTGGATGATATTAACGTTCCTAATTCTCTCATCTATCAAAAGTTAATTTCTATTCATGAAAAGTTTTGGCCATTATTAGAAATTCATCAATATCCAGCTAACTTATTTTATACAGACTACTTTCCCATCCCTCCGTTGATTATTAGACCGGCTATTAGTTTTTGGATAGATAGTATACCCAAAGAGACAAATGAATTAACTTACTTATTAGGTATGATCGTTAAGAATTGTAACTTGAATGCTGATGAACAGGTTATCCAGAAGGCGGTAATAGAATACGATGATATTAAAATTATTTCTAATAACACTACCAGTATCAATTTATCATATATCACATCCGGCAAAAATAATATGATTAGAAGTTATATCGTCGCTCGGCGAAAAGATCAGACCGCTAGATCCGTAATTGGTCCCAGTACATCTATCACCGTTAATGAGGTAGGAATGCCCACATATATTAGAAATACACTTACAGAAAAGATATTTGTTAATGCCTTTACAGTGGATAAAGTTAAACAACTATTAGCATCAAACCAAGTTAAATTTTACTTTAATAAACGATTAAACCAATTAACAAGAATACGTCAAGGAAAGTTTATCAAAAATAAAATACATTTATTGCCTGGTGATTGGGTAGAAGTAGCTGTTCAAGAATATACAAGTATTATTTTTGGAAGACAACCGTCTCTACATAGATACAACGTCATCGCTTCATCTATCAGAGCTACCGAAGGAGATACTATCAAAATATCTCCCGGAATTGCCAACTCTCAAAATGCTGATTTCGACGGAGATGAAGAATGGATGATATTGGAGCAAAATCCTAAAGCCGTAGTTGAACAAAGTATTCTTATGTATCCGACGACGTTACTCAAACACGATATTCATGGAGCCCCCGTTTATGGATCTATTCAAGATGAAATCGTAGCAGCGTATTCATTGTTTAGGATACAAGATCTTTGTTTAGATGAAGTATTGAACATCTTGGGGAAATATGGAAGAGAGTTCGATCCTAAAGGTAAATGTAAATTCAGCGGTAAAGATATCTATACTTACTTGATAGGTGAAAAGATTAATTATCCGGGTCTCTTAAAGGATGGTGAAATTATTGCAAACGACGTAGATAGTAATTTTGTTGTAGCTATGAGGCATCTGTCATTGGCTGGACTCTTATCCGATCATAAATCGAACGTGGAAGGTATCAACTTTATTATCAAGTCATCTTATGTTTTTAAGAGATATCTATCTATATACGGTTTTGGGGTGACATTCAAAGATCTGAGACCAAATTCGACGTTCACTAATAAATTGGAGGCTATCAACGTAGAAAAAATAGAACTTATCAAAGAAGCATACGCCAAATATCTCAAAGATGTAAGAGACGGGAAAATAGTTCCATTATCTAAAGCTTTAGAGGCGGACTACTTGGAATCCATGTTATCCAACTTGACAAATCTTAATATCAGAGAGATAGAAGAACATATGAGACAAACGCTGATAGATGATCCAGATAATAACCTCCTGAAAATGGCCAAAGCGGGTTATAAAGTAAATCCCACAGAACTAATGTATATTCTAGGTACTTATGGACAACAGAGGATAGATGGCGAACCAGCAGAGACTCGAGTATTGGGTAGAGTCTTACCTTACTATCTTCCAGACTCTAAGGATCCAGAAGGAAGAGGTTATATTCTTAATTCTTTAACAAAAGGATTAACGGGTTCTCAATATTACTTTTTGATGCTGGTTGCAAGATCTCAATCTACTGATATTGTCTGTGAAACATCACGTACCGGAACACTGGCTAGAAAAATCATTAAAAAGATGGAGGATATGGTGGTCGACGGATACGGACAAGTAGTTATAGGTAATACGCTCATCAAGTACGCAGCCAATTATACCAAAATTCTAGGCTCAGTATGTAAACCTGTAGATCTTATCTATCCAGATGAGTCCATGACTTGGTATTTGGAAATTAGTGCTTTGTGGAATAAAATAAAACAGGGATTCGTTTACTCTCAGAAACAGAAACTTGCAAAGAAGACATTGGCGCCGTTTAATTTCCTAGTATTCGTCAAACCCACCACTGAGGATAATGCTATTAAGGTTAAGGATCTGTACGATATGATTCATAACGTCATTGATGATGTGAGAGAGAAATACTTCTTTACGGTATCTAATATAGATTTTATGGAGTATATATTCTTGACGCATCTTAATCCTTCTAGAATTAGAATTACAAAAGAAACGGCTATTACTATCTTTGAAAAGTTCTATGAAAAACTCAATTATACTCTAGGTGGTGGAACTCCTATTGGAATTATTTCTGCACAGGTATTGTCTGAGAAGTTTACACAACAAGCCCTGTCCAGTTTTCACACTACTGAAAAGAGTGGTGCTGTAAAACAAAAACTTGGTTTCAACGAGTTTAATAACTTGACTAATTTGAGTAAGAATAAGACCGAAATTATCACTCTGGTATCCGATGATATCTCTAAACTTCAATCTGTTAAGATTAATTTCGAATTTGTATGTTTGGGAGAATTAAATCCAGACATCACTCTTCGAAAAGAAACAGATAGATATGTAGTAGACATAATAGTCAATAGATTATACATCAAGAGAGCAGAAATAACCGAATTAGTCGTCGAATATATGATTGAACGATTTATCTCCTTTAGCGTCATTGTAAAGGAATGGGGTATGGAGACATTCATTGAGGACGAGGATAATATTAGATTTACTATCTACCTAAATTTCGTTGAACCGGAGGAATTGAATCTTAGTAAGTTTATGATGGTTCTTCCAGGTGCCGCCAACAAGGGCAAGATTAGTAAATTCAAGATTCCTATCTCTGACTATACGGGATATAACGACTTCAATCAAACAAAAAAGCTCAATAAGATGACTGTAGAACTCATGAATCTAAAAGAATTGGGTTCTTTCGATTTGGAGAACGTCAACGTGTATCCTGGAGTATGGAATACATACGATATCTTCGGTATTGAGGCCGCTCGTGGATACTTGTGCGAAGCCATGTTAAACACCTATGGAGAAGGTTTCGATTATCTGTACCAGCCTTGTGATCTTCTCGCTAGTTTACTATGTGCTAGTTACGAACCAGAATCAGTTAATAAATTCAAGTTCGGTGCAGCTAGTACTCTTAAGAGAGCTACGTTCGGAGATAATAAAGCATTGTTAAACGCGGCTCTTCATAAAAAGTCAGAACCTATTAACGATAATAGTAGCTGCCACTTTTTTAGCAAGGTCCCTAATATAGGAACTGGATATTACAAATACTTTATCGACTTGGGTCTTCTCATGAGAATGGAAAGGAAACTATCTGATAAGATATCTTCTCAAAAGATCAAGGAGATAGAAGAAACAGAAGACTTTTAATTCTTATCAATAACATATTTTTCTATGATCTGTCTTTTAAACGATGGATTTTCCACAAATGCGCCTCTCAAGTCCCTCATAGAATGATACACGTATAAAAAATATAGCATAGGTGATGACTCCTTATTTTTAGACATTAGATATGCCAAAATCATAGCCCCGCTTCTATTTACTCCTGCAACACAATGAACCAACACGGGCTCGTTTCGTTGATCACATTTAGATAAGAAGGCGGTCACGTCGTCAAAATATTTACTAATATCAGTAGTTGTATCATCTACCAACGGTATATGAATAATATTAATATTAGAGTTAGGTAATGTATATTTATCCATCGTCAAATTTAAAACATATTTGAACTTAACTTCAGATGATGGTGCATCCATAGCATTTTTATAATTTCCCAAATACACATTATTTGTTACTCTTGTCATTATAGTGGGAGATTTGGCTCTGTGCATATCTCCAGTTGAACGTAGTAGTAAGTATTTATACAAACTTTTCTTATCCATTTATAACGTACAAATGGATAAAACTACTTTATCAGTAAACGCATGCAATTTAGAATACGTTAGAGAAAAGGCTATAGTAGGCGTACAAGCAGCCAAGACATCAACACTTATATTTTTTGTTATTATATTGGCAATTAGTGCGCTATTACTCTGGTTTCAGACGTCTGATAATCCAGTCTTTAATGAATTAACGAGATATATGCGAATTAAAAATACGGTTAACGATTGGAAATCATTAACGGATAGCAAAACAAAATTAGAAAGCGATAGAGGTAGACTTCTAGCCGCTGGTAAGGATGATATATTCGAATTCAAATGTGTGGATTTCGGCGCCTATTTTATAGCTATGCGATTGGATAAGAAAACATATCTGCCGCAAGCTATTAGGCGAGGTACTGGAGACGCGTGGATGGTTAAAAAGGCGGCAAAAGTCGATCCATCTGCTCAACAATTTTGTCAGTATTTGATAAAACACAAGTCTAATAATGTTATTACTTGTGGTAATGAGATGTTAAATGAATTAGGTTATAGCGGTTATTTTATGTCACCGCATTGGTGTTCCGATCTTAGTAATATGGAATAAGTGTTAGATAAATGCGGTAACAAATGTTCCTGTAAGGAACCATAACAGTTTAGATTTAACATTAAAGATGAGCATAAACATAATAAACAAAATTACAATCAAACCTATAACATTAATATCAAACAATCCAAAAAATGAAATCAATGGAGTAGTAAACGTGTACATAACTCCTGGATAACGTTTAGCAGCTACCGTTCCTATTCTAGACCAAAAATTTGGTTTCATGGTTTCGAAGCGGTGTTCTGCAACAAGACGAGGATCGTGTTCTACATATTTGGCAGAGTTATCCATTATTTGCCTGTTAATCTTCATTTCGTTTTCGATTCTGGCTATTTCAAAATAAAATCCCGATGATAGACCTCCAGACTTTATAATTTCATCTACGATGTTCAGCGCCGTAGTAACTCTAATAATATAGGCGGATAAGCTAACATCATACCCTCCTGTATATGTAAATATGGCATGATCTTTGTCTATTACAAGCTCGGTTTTAACTTTATTTCCTGTAATAATTTCTCTCATCTGTAGGATATCTATTTTCTTGTCATGTATTGCCTTCAAGACGGGACGAAGAAACGTAATATCCTCAATAACGTTATCGTTTTCTATAATAACTACATATTCTACATTTTTATTTTCTAGCTCGGTAAAAAATTTAGAATCCCATAGGGCTAAATGTCTAGCGATATTTCTTTTCGTTTCCTCTGTACACATAGTGTTACAAAACCCTGAAAAGAAGTGAGTATACTTGTCATCATCTCTAATATTTCCTCCAGTCCATTGTATAAACACATAATCCTTGTAATGATCTGGATCATCATTGACTATCACAACATCTCTTTTTTCTTGCATAACTTCATTGTCCTTCACATCATCGAACTTCTGATCATTAATATGCTCATGAACATTAGGAAATGTTTCTGATGGAGGTCTATCAATAACTGGCACAACAATAACAGGAGTTTTCACCGCCGCCATTTAGTTATTGAAATTAATCATATACAACTCTCTAATACGAGTTATATTTTCGTCTATCCATTGTTTCACATTGACATATTTCGACAAAAAGATATAAAATGCGTATTCCAATGCTTCTCTGTTTAATGAATTACTAAAATATACAAACACGTCACTGTCTGGTAATAAATAATATCTTAGAATATTGTAACAATTTATTTTGTATTGCACATGTTCGTGATCTATGAGTTCTTCTTCAAATGGCATAGGATCTCCGAATCTGAAAACGTATAAATAGGAGTTAGAATAATAATATTTGAGAGTATTGGTAATGTATAAACTCTTTAGCGGTATAATTAGTTTTTTTCTCTCGATTTCTATTTTTAGATGTGATGGAAAAATGACTAATTTTGTAGCATTAGTATCATGAACTCTAATCAAAATCTTAATATCTTCGTCACATGTTAGCTCTTTGAAGTTTTTAAGAGATGCATCAGTTGGTTTTACAGATGGAGTAGGTGCAACAATTTTTTGTTTAATGCATGCATGTATTGGAGCCATTGTCTTAACTATAATGGTGCTTGTATCGAAAAACTTTAATGCGGATAACGGAAGCTCTTCGCCGCGACTTTCTACGTCGTAATTGGGTTCTAATGCCGATCTCTGAATGGATACTAGTTTTCTAAGTTCTAATGTAATTCTCTGAAAATGTAAATCCAATTCCTCCGGCATTATAGATGTGTATACATCGGTAAATAAAACTATAGTATCCAACGATCCCTTCTCGCAAATTCTAGTCTTAACCAAGAAATCGTATATAACTACGGAGATGGCGTATTTAAGAGTGGATTCTTCTACCGTTTTGTTCTTGGATTTCATATAAGAAACTATAAAGTCCGCACTACTGTTAAGAATGATCACTAACGCAACTATATAGTTCAAATTAAGCATCTTGGAAACATAAAATAACTCTGTAGATGATACTTGACTTTCGAATAAGTTTGCAGACAAACGAAGAAAGAACAGACCTCTCTTAATTTCAGAAGAAAACTTTTTTTCGTATTCCTGACGTCTAGAGTTTATATCAATAAGAAAGTTAAGAATTAGTCGGTTAATGTTGTATTTCATTACCCAAGTTTGAGATTTCATAATATTGTCAAAAGACATGATAATATTAAAGATAAAGCGCTGACTATGAACGAAATAGCTATATGGTTCGCTCAAGAATATAGTCTTGTTAAACGTGGAAACGATAACTGTATTTTTAATCACGTCAGCGGCATCTAAATTAAATATAGGTATATTTATTCCACACACTCTACAATATGCCACACCATCTTCATAATAAATAAATTCGTTAGCAAAATTATTAATTTTAGTGAAATAGTTAGCGTCAACTTTCATAGCTTCCTTCAATCTAATTTGATGCTCACATGGCGCGAATTCTACTCTAACATCCCTTTTCCATGCCTCAGGTTCATCGATCTCTATAATATCTAGTTTCTTGCGTTTCACAAACACAGGCTCGTCTCTCGCGATGAGATCTGTATAGTAACTATGTAAATGATAACTAGATAGAAAGATGTAGCTATATAGATGACGATCCTTTAAGAGAGGTATAATAACTTTACCCCAATCAGATAGACTGTTGTTATGGTCTTCGGAAAAAGAATTTTTATAAATTTTTCCAGTATTTTCTAAATATACGTACTTGATATCTAAGAAATCCTTAATAATAATAGGAATGGATAATCCGTCTATTTTATAAAGAAATACATATCGCATATTATACTTTTTTTTGGAAATTGGAATACCGATGTGTCTACATAAATACGCAAAGTCTAAATATTTTTTAGAGAATCTTAGTTGGTCCAAATTCTTTTCCAAGTACGGTAATAGATTTTTCATATTGAACGGTATCTTCTTGATCTCTGGTTCTAATTCCGCATTAAATGATGAAACTAAGTCACTATTTTTATAACTAACGATTACATCACCTCTAACATCATCATTTACCAGGATACTGATCTTCTTTTGTCGTAAATACATGTCTAATGTGTTAAAAAAAAGATCATACAAGTTATACGTCATTTCATCTGTAGTATTCTTGTCATTGAAGGATAAACTCGTACTAATCTCTTCTTTAACAGTCTGTTCAAATTTATATCCTATATATGAAAAAATAGCAACCAGTGTTTGATCATCCGCGTCAATATTCTGTTCTATCGTAGTGTATAACAATCTTATATCTTCTTCTGTGATAGTCGATACGTTATAAAGGTTGATAACGAAAATATTTTTATTTCGTGAAATAAAGTCATTGTAGGATTTTGGACTTATATTCGTGTCTAGTAGATATGATTTTATTTTTGGAATGATCTCAATTAAAATAGTCTCTTTAGAGTCCATTTAAAGTTACAAACAACTAGGAAATTGGTTTATGATGTATAATTTTTTTAGTTTTTATAGATTCTTTATTCTATACTTAAAAAATGAAAATAAATACAAAGGTTCTTGAGGGTTGTGTTAATTGAAAGCGATAAATAATCATAAATTATTTCATTATCGCGATATCCGTTAAGTTTGTATCGTAATGGCGTGGTCAATTACGAATAAAGCGGATACTAGTAGTTTCACAAAGATGGCTGAAATCAGAGCTCATCTAAGAAATAGCGCTGAAAATAAAGATAAAAACGAGGATATTTTCCCGGAAGATGTAATAATTCCATCTACTAAGCCCAAAACCAAACGAACCACTACTCCTCGTAAACCAGCGGCTACTAAAAGATCAACCAAAAAGGATAAAGAAAAGGAGGAAGTGGAAGAAGTAGTTATAGAGGAATATCATCAAACAACTGAAGAAAATTCTCCACCTCCGTCATCATCTCCTGGAGTCGGCGACATTGTAGAAAGCGTGGCCGCTGTAGAGCTCGATGATAGCGACGGGGATGATGAACCTATGGTACAAGTTGAAGCTGGTAAAGTAAATCATAGTGCTAGAAGCGATCTCTCTGACCTAAAGGTGGCTACCGACAATATCGTTAAAGATCTTAAGAAAATTATTACTAGAATCTCTGCAGTATCGACTGTTCTAGAGGATGTTCAAGCAGCTGGTATCTCTAGACAATTTACTTCTATGACTAAAGCTATTACAACACTATCTGATCTAGTCACCGAGGGAAAATCTAAAGTTGTTCGTAAAAAAGTTAAAACTTGTAAGAAGTAAATGCGTGCACTTTTTTATAAAGATGGTAAACTGTTTACCGATAATAATTTTTTAAATCCTGTATCAGACGATAATCCAGCGTATGAGGTTTTGCAACATGTTAAAATTCCTACTCATTTAACAGATGTAGTAGTATATGAACAAACGTGGGAAGAGGCATTAACTAGATTAATTTTTGTGGGAAGTGATTCAAAAGGACGTAGACAATACTTTTACGGAAAAATGCATATACAGAATCGCAATGCTAAAAGAGATCGTATTTTTGTTAGAGTATATAACGTTATGAAACGAATTAATTGTTTTATAAACAAAAATATAAAGAAATCGTCCACAGATTCCAATTATCAGTTGGCGGTTTTTATGTTAATGGAAACTATGTTTTTTATTAGATTTGGTAAAATGAAATATCTTAAGGAGAATGAAACAGTAGGGTTATTAACACTAAAAAATAAACACATAGAAATAAGTCCCGATGAAATAGTTATCAAGTTTGTAGGAAAGGACAAAGTTTCACATGAATTTGTTGTTCATAAGTCTAATAGACTATATAAACCGCTATTGAAACTGACTGATGATTCTAGTCCCGAAGAATTTCTGTTCAACAAACTAAGTGAACGAAAGGTATATGAATGTATCAAACAGTTTGGTATTAGAATCAAGGATCTCCGAACGTATGGAGTCAATTATACGTTTTTATATAATTTTTGGACAAATGTAAAGTCCGTATCTCCTCTTCCATCACCAAAAAAGTTGATAGCATTAACTATCAAACAAACTGCTGAAGTGGTAGGTCATACTCCATCAATTTCAAAAAGAGCTTATATGGCAACGACTATTTTAGAAATGGTAAAGGATAAAAATTTTTTAGACGTAGTATCTAAAACTACGTTCGATGAATTCCTATCTATAGTCGTAGATCACGTTAAATCATCTACGGATGGATGATAATAGATCTTTACACAAATAATTACAAGACCGATAAATGGAAATGGATAAACGGATGAAATCTCTCGCTATGACAGCTTTCTTCGGAGAGCTAAACACGTTAGATATTATGGCATTGATAATGTCTATATTTAAACACCATCCAAACAATACCATTTTTTCAGTGGATAAGGATGGTCAATTTATGATTGATTTCGAATACGATAATTATAAGGCTTCTCAATATTTGGATCTGACCCTCACTCCGATATCTGGAAATGAATGCAAGACTCACGCATCTAGTATAGCCGAACAATTGGCGTGTGTGGATATTATTAAAGAGGATATTAGCGAATATATCAAAACTACTCCCCGTCTTAAACGATTTATAAAAAAATACCGCAATAGATCATATACTCGTATCAGTCGAGATACAGAAAAGCTTAAAATAGCTCTAGCTAAAGGCATAGATTACGAATATATAAAAGACGCTTGTTAATAAGTAAATGAAAAAAAACTAGTCGTTTATAATAAAACACAATATGGATGCCAACATAGTATCATCTTCTACTATTGCGACGTATATAGACGCTTTAGCGAAGAATGCTTCAGAATTAGAACAGAGGTCTACCGCATACGAAATAAATAATGAATTGGAACTAGTATTTATTAAACCGCCATTGATTACGTTGACAAATGTAGTAAATATCTCCACGATTCAGGAATCGTTTATTCGATTTACCGTTACTAATAAGGAAGGTATCAAAATTAGAACTAAGATTCCATTATCTAAGGTACATGGTCTAGATGTAAAAAATGTGCAGTTGGTAGATGCTATAGATAACATAGTTTGGGAAAAGAAATCATTAGTGACGGAAAATCGTCTTCACAAAGAATGCTTGTTGAGACTATCAACAGAGGAACGTCATATATTTTTGGATTACAAGAAATATGGATCCTCTATCCGACTAGAATTAGTCAATCTTATTCAAGCAAAAACAAAAAACTTTACGATAGACTTTAAGCTAAAATATTTTCTAGGATCTGGCGCTCAATCTAAAAGTTCTTTATTGCACGCTATTAATCATCCAAAGTCAAGGCCTAATACATCTCTGGAAATAGAATTTACACCTAGAGACAATGAAACAGTTCCATATGATGAACTAATAAAGGAATTGACGACTCTCTCGCGTCATATATTTATGGCTTCTCCAGAGAATGTAATTCTTTCTCCACCTATTAACGCACCTATAAAGACTTTTATGTTGCCTAAACAAGATATAGTAGGTCTGGATCTGGAAAATCTATATGCCGTAACTAAGACTGACGGCATTCCTATAACTATCAGAGTTACATCAAAAGGGTTGTATTGTTATTTTACACATCTTGGTTATATTATTAGATATCCAGTTAAGAGAACAATAGATTCCGAAGTAGTAGTCTTTGGTGAGGCAGTTAAGGATAAGAACTGGACCGTATATCTCATTAAGCTAATAGAGCCCGTAAATGCAATCAGTGATAGACTAGAAGAAAGTAAGTATGTTGAATCTAAACTAGTGGATATTTGTGATCGGATAGTATTCAAGTCAAAGAAATACGAAGGTCCGTTTACTACAACTAGTGAAGTCGTCGATATGTTATCTACATATTTACCAAAGCAACCAGAAGGTGTTATTCTGTTCTATTCAAAGGGACCTAAATCTAACATTGATTTTAAAATCAAAAAGGAGAATACTATAGACCAAACTGCAAATGTAGTATTTAGGTACATGTCCAGTGAACCAATTATCTTTGGAGAGTCGTCTATCTTTATAGAGTATAAGAAATTTACCAACGATAAAGGCTTTCCTAAAGAATATGGTTCTGGTAAGATTGTGTTATATAACGGCGTTAATTATCTAAATAATATCTATTGTTTGGAATATATTAATACACATAATGAAGTGGGTATTAAGTCCGTTGTTGTACCTATTAAGTTTATAGCAGAATTCTTAGTCAATGGAGAAATACTTAAACCTAGAATCGATAAAACCATGAAATATATTAACTCAGAAGACTATTATGGAAATCAACATAATATCATAGTCGAACATTTAAGAGATCAAAGCATCAAAATAGGAGATGTCTTTAACGAGGATAAACTATCGGATGTTGGACATCAATACGCTGCCAACAACGATAAATTTAGATTAAATCCAGAAGTTAGTTATTTTACTAATAAACGAACTAGAGGGCCGTTGGGAATTTTATCAAACTACGTCAAGACTCTTCTTATTTCTATGTATTGTTCCAAAACATTTTTAGACGATTCCAACAAACGAAAGGTATTAGCGATTGATTTTGGAAACGGTGCTGACCTGGAAAAATACTTTTATGGAGAGATTGCGTTATTGGTAGCGACGGATCCGGATGCTGATGCTATAGCTAGAGGAAATGAAAGATACAACAAATTAAATTCTGGAATTAAAACCAAGTACTACAAATTTGACTACATTCAGGAAACTATTCGATCCGATACATTTGTCTCTAGTGTCAGAGAAGTATTCTATTTTGGAAAGTTTAATATCATTGACTGGCAGTTCGCTATTCATTATTCTTTTCATCCAAGACATTATGCTACAGTCATGAATAACTTATCCGAACTAACTGCTTCTGGAGGCAAGGTATTAATTACTACCATGGATGGAGACAAATTATCAAAATTAACCGATAAAAAGACTTTTATAATTCATAAGAATCTACCTAGTAGCGAAAACTATATGTCTGTAGAAAAAATAGCTGATGATAGAATAGTGGTATATAATCCATCAACAATGTCTACTCCAATGACTGAATACATTATCAAAAAGAACGATATAGTCAGAGTGTTTAACGAATACGGATTTGTTCTTGTAGATAATGTTGATTTCGCTACAATTATAGAACGAAGTAAAAAGTTTATTAATGGCGCATCTACAATGGAAGATAGACCGTCTACAAGAAACTTTTTCGAACTAAATAGAGGAGCCATTAAATGTGAAGGTTTAGATGTCGAAGACTTACTTAGTTACTATGTTGTTTATGTCTTTTCTAAGCGGTAAATAATAATATGGTATGGGTTCTGATATCCCCGTTCTAAATGCATTAAATAATTCCAATAGAGCGATTTTTGTTCCTATAGGACCTTCCAACTGTGGATACTCTGTATTATTAATAGATATATTAATACTTTTGTAGGGTAACAGAGGTTCTACGTCTTCTAAAAATAAAAGTTTTATAACATCTGGCCTGTTCATAAATAAAAACTTGGCGATTCTATATATACTCTTATTATCAAATCTAGCCATTGTCTTATAGATGTGAGCTACTGTAGGTGTACCATTTGATTTTCTTTCTAATACTATATATTTCTCTCGAAGAAGTTCTTGCAGATCATCTGGGAATAAAATACTACTGTTGAGTAAATCAGTTATTTTTTTTATATCGATATTGATGGACATTTTTATAGTTAAGGATAATAAGTATCCCAAAGTAGATAACGACGATAACGAAGTATTTATACTTTTAGGAAATCACAATGACTTTATCAGATCAAAATTAACAAAATTAAAGGAGCATGTATTTTTTTCTGAATATATTGTGACTCCAGATACATATGGATCTTTATGCGTCGAATTAAATGGGTCTAGTTTTCAGCACGGTGGTAGATATATAGAGGTGGAGGAATTTATAGATGCTGGAAGACAAGTTAGATGGTGTTCTACATCCAATCATATATCTGAAGATATACACACTGATAAATTTGTCATTTATGATATTTATACGTTTGATTCGTTCAAGAATAAACGATTGGTATTTGTACAGGTGCCTCCATCATTAGGAGATGATAGCTATTTAACTAATCCGTTATTGTCTCCGTATTATCGTAATTCAGTAGCCAGACAAATGGTCAATGATATGATTTTTAATCAAGATTCATTTTTAAAATATTTATTAGAACATCTGATTAGAAGCCACTATAGAGTTTCTAAACATATAACAATAGTTAGATACAAGGATACCGAAGAATTAAATCTAACAAGAATATGTTATAATAGAGATAAGTTTAAGGCGTTTGTATTCGCTTGGTTTAACGGCGTTTCGGAAAATGAAAAGGTACTAGATACGTATAAAAAGGTATCTGATTTGATATAATGAATTCAGTGACTATATCACACGCACCATATACTATTACTTATCACGATGATTGGGAACCAGTAATGAGTCAATTGGTAGAGTTTTATAACGAAGTAGCCAGTTGGTTGCTACGCGACGAGACGTCGCCTATTCCTGATAAGTTCTTTATACAATTGAAACAGCCGCTTAGAAATAAACGAGTATGTGTGTGTGGTATAGATCCGTATCCAAAAGATGGAACTGGTGTACCGTTCGAATCACCAAATTTTACAAAAAAATCAATTAAGGAGATAGCTTCATCTATATCTAGATTAACCGGAGTAATTGATTATAAAGGTTATAACCTTAATATAATAGACGGGGTTATACCCTGGAATTATTACTTAAGTTGTAAATTAGGAGAAACAAAAAGTCACGCGATTTACTGGGATAAGATTTCCAAGTTACTGCTACAGCATATAACTAAACACGTTAGTGTTCTTTATTGTTTGGGTAAAACAGATTTCTCGAATATACGGGCAAAGTTAGAATCCCCGGTAACTACCATAGTGGGATATCATCCAGCGGCCAGAGACCACCAATTCGAGAAAGATCGATCATTTGAAATTATCAACGTTTTACTGGAATTAGACAACAAGACACCTATAAATTGGGCTCAAGGGTTTATTTATTAATGCTTTAGTGAAATTTTAACTTGTGTTCTAAATGGATGCGGCTATTAGAGGTAATGATGTTATCTTTGTTCTTAAGACTATAGGTGTCCCGTCAGCATGCAGACAAAATGAAGATCCAAGATTCGTAGAAGCATTTAAATGCGACGAGTTAGAAAGATATATTGATAATAATCCAGAATGTACACTATTCGAAAGTCTTAGGGATGAGGAAGCATACTCTATAGTCAGAATTTTCATGGATGTAGATTTAGACGCGTGTCTAGACGAAATAGATTATTTAACGGCTATTCAAGATTTTATTATCGAGGTGTCAAACTGTGTAGCTAGATTCGCATTTACAGAATGCGGTGCCATTCATGAAAATGTAATAAAATCCATGAGATCTAATTTTTCATTGACTAAGTCTACAAATAGAGATAAAACAAGTTTTCATATTATCTTTTTAGACACGTATACCACTATGGATACATTGATAGCTATGAAACGAACACTATTAGAATTAAGTAGATCATCTGAAAATCCACTAACAAGATCGATAGACACTGCCGTATATAGGAGAAAAACAACTCTTCGGGTTGTAGGTACTAGGAAAAATCCAAATTGCGACACTATTCATGTAATGCAACCACCTCACGATAATATAGAAGATTACCTATTCACTTACGTGGATATGAACAACAATAGTTATTACTTTTCTCTACAACGACGATTGGAGGATTTAGTTCCTGATAAGTTATGGGAACCAGGGTTTATTTCGTTCGAAGACGCTATAAAAAGAGTTTCAAAAATATTCATTAATTCTATAATAAACTTTAATGATCTCGATGAAAATAATTTTACAACGGTACCACTGGTCATAGATTATGTAACACCTTGTGCATTATGTAAAAAACGATCGCATAAACATCCGCATCAACTATCGTTGGAAAATGGTGCTATTAGAATTTACAAAACTGGTAATCCACATAGTTGTAAAGTTAAAATTGTTCCGTTGGATGGTAATAAACTGTTTAATATTGCACAAAGAATTTTAGACACTAACTCTGTTTTATTAACCGAACGAGGAGACCATATAGTTTGGATTAATAATTCATGGAAATTTAACAGCGAAGAACCCTTGATAACAAAACTAATTCTATCAATAAGACATCAACTACCTAAGGAATATTCAAGCGAATTACTCTGTCCGAGGAAACGAAAGACTGTAGAAGCTAACATACGAGACATGTTAGTAGATTCAGTAGAGACCGATACCTATCCGGATAAACTTCCGTTTAAAAATGGTGTATTGGACCTGGTAGACGGAATGTTTTACTCTGGAGATGATGCTAAAAAATATACGTGTACTGTATCGACCGGATTTAAATTTGACGATACAAAATTCGTCGAAGACAGTCCAGAAATGGAAGAGTTAATGAATATCATTAACGATATCCAACCATTAACGGATGAAAATAAGAAAAATAGAGAGCTGTATGAAAAAACATTATCTAGTTGTTTATGTGGTGCTACCAAAGGATGTTTAACATTCTTTTTTGGAGAAACCGCAACTGGGAAGTCGACAACCAAACGTTTGTTAAAGTCTGCTATCGGTGACCTGTTTGTCGAGACGGGTCAAACAATTTTAACAGATGTATTGGATAAAGGACCTAATCCATTTATCGCTAATATGCATTTAAAAAGATCTGTATTCTGTAGCGAACTACCTGATTTTGCATGTAGTGGATCAAAGAAAATTAGATCTGATAATATTAAAAAGTTGACAGAACCTTGTGTCATTGGAAGACCGTGTTTCTCCAATAAAATTAATAATAGAAACCATGCGACAATCATTATCGATACTAATTACAAACCTGTCTTTGATAGGATAGATAACGCATTAATGAGAAGAATTGCCGTCGTGCGATTCAGAACACACTTTTCTCAACCTTCTGGTAGAGAGGCTGCTGAAAATAATGACGCGTACGATAAAGTCAAACTATTAGACGAGGGATTAGATGGTAAAATACAGAATAATAGATATAGATTCGCATTTCTATACTTGTTGGTTAAATGGTACAAAAAATATCATATTCCTATTATGAAACTATATCCTACACCGGAAGAGATTCCGGACTTTGCATTCTATCTCAAAATAGGTACTCTGTTGGTATCTAGCTCTGTAAAGCATATTCCATTAATGACGGACCTCTCCAAAAAGGGATATATATTGTACGATAATGTGGTTACTCTTCCGTTGACTACTTTCCAACAGAAAATATCCAAGTATTTTAATTCTAGACTATTTGGACACGATATAGAGAGCTTCATCAATAGACATAAGAAATTTGCCAATGTTAGTGATGAATATCTGCAATATATATTCATAGAGGATATTTCATCTCCGTAAATATATGCCATATATTTATAGAATATATCACATATCTAAATGAATACCGGAATCATAGATTTATTTGATAATCATGTTGATAGTATACCAACTATATTACCTCATCAGTTAGCTACTTTAGATTATCTAGTTAGAACTATCATAGATGAGAACAGAAGCGTGTTATTGTTCCATATTATGGGATCGGGTAAAACAATAATCGCTTTGTTGTTCGCCTTGGTAGCTTCCAGATTTAAAAAGGTTTACATTTTAGTACCGAACATCAACATCTTAAAAATTTTCAATTATAATATGGGTGTAGCTATGAACTTGTTTAATGACGAATTCATAGCTGAGAATATCTTTATTCATTCCACAACAAGTTTTTATTCTCTTAATTATAACGATAACGTCATTAATTATAACGGATTAAGTCGCTACAATAACTCTATTTTTATCGTTGATGAGGCACATAATATTTTTGGGAATAATACTGGAGAACTTATGACCGTGATAAAAAATAAAAACAAGATTCCTTTTCTACTATTGTCTGGATCTCCCATTACTAACACACCTAATACGCTGGGTCATATTATAGATTTAATGTCCGAAGAGACGATAGATTTTGGTGAGATTATTAGTCGTGGTAAGAAAGTAATTCAGACACTTCTTAACGAACGCGGAGTGAATGTACTCAAGGATTTGCTTAAAGGAAGAATATCATATTACGAAATGCCGGACAAAGATCTACCAACAATAAGATATCACGGACGTAAATTTCTAGATACTCGAGTAGTATATTGTCACATGTCTAAACTTCAAGAGAAAGATTATATGATTACTAGACGGCAGCTATGTTATCATGAAATGTTTGATAAAAATATGTATAACGTGTCAATGGCAGTATTGGGACAACTTAATCTGATGAATAATTTAGATACGTTATTTCAGGAACAGGATAAGGAATTGTACCCAAATCTGAAAATAAATAATGGAGTGTTATACGGTGAAGAATTGGTAACGTTAAACATTAGTTCCAAATTTAAGTACTTTATCAATCGGATACAGACACTCAAGGGAAAACACTTTATATACTTCTCTAATTCTACATATGGTGGATTGGTAATTAAATATATCATGCTCAGTAATGGATATTCTGAATATAATGGTTCTCAGGGAACTAATCCACATATGATAAACGGCAAACCAAAAACATTTGCTATCGTTACTAGTAAAATGAAATCGTCTTTAGAGGATCTATTAGATGTGTATAATTCTCCTGAAAACGATGATGGCAATCAATTGATGTTTTTGTTTTCGTCAAACATTATGTCTGAATCCTATACTCTGAAAGAGGTAAGGCATATTTGGTTTATGACTATCCCGGATACTTTTTCTCAATACAACCAAATTCTTGGACGATCTATTAGAAAATTCTCTTACGTCGATATTTCTGAACCCGTTAATGTATATCTTTTAGCAGCCGTATATTCAGATTTCAATGACGAAGTGACGTCATTAAACGATTATACACAGGATGAATTGATTAATGTTTTACCCTTTGACATCAAAAAGCTGTTGTATCTAAAATTTAAGACTAAAGAAACGAATAGAATATACTCTATTCTTCAAGAGATGTCTGAAACGTATTCTCTTCCACCACATCCATCAATTGTAAAAGTTTTATTGGGAGAATTGGTCAGACAATTTTTTTATAATAATTCTCGTATTAAGTATAACGACTCCAAGTTACTTAAAATGGTTACATCAGTTATAAAAAATAAAGAAGACGCTAGGAATTACATAGATGATATTGTAAACGGTCACTTCTTTGTATCGAATAAAGTATTTGATAAATCTCTTTTATACAAATACGAAAACGATATTATTACAGTACCGTTTAGACTTTCCTACGAACCATTTGTTTGGGGAGTTAACTTTCGTAAAGAATATAATGTGGTATCTTCTCCATAAAACTGATGAGATATATAAAGAAATAAATGTCGAGCTTTGTTACCAATGGATATCTTCCAGTTACATTGGAACCACATGAGTTGACGTTAGACATAAAAACTAATATTAGGAATGCCGTATATAAGGCGTATCTCCATAGAGAAATTAGTGGTAAAATGGCCAAGAAAATAGAAATTCGTGAAGACGTGGAATTACCTCTCGGTGAAATAGTTAATAATTCTGTAGTTATAAACGTTCCGTGTGTAATAACCTACGCATATTATCACGTTGGGGATATAGTCAGAGGAACATTAAACATCGAAGATGAATCAAATGTAACTATTCAATGTGGAGATTTAATCTGTAAACTAAGTAGAGATTCGGGTACTGTATCATTTAGCGATTCAAAGTACTGCTTTTTTCGAAATGGTAATGCGTATGATAACGGCATCGAAGTCTCCGCCGTTCTAATGGAGGCTCAACAAGGTACCGAATCTAGTTTTGTTTTTCTCGCGAATATCGTTGACTCATAAGAAAGAGAATAGCGGTGAGTATAAATACGAATACTATGGCAATAATTGCGAATGTTTTATTCCCTTCGATATATTTTTGATAATATGAAAAACATGCCTCTCTCAAATCAGACAACCATTTCATAAAATAGTTCTCTCGCACTGGTGAGGTGGTTGCAGCTCGTATAATCTCCCCAGAATAATATACTTGCGTGTCGTCGTTCAATTTATACGGATTTCTATAATTCTCTGTTATATAATGAGGTTTACCCTCATGATTAGACGACGACAATAGTGTTCTGAATTTAGATAGTTGATCAGAATGAATGTTTATTGGTGTTGGAAAAATTATCCATGCTGCGTCTGCAGAGTGGTTGATAGTTGTTCCTAGATATGTAAAATAATCCAACGTACTAGGTAGCAAATTGTCTAGATAAAATACTGAATCAAATGGCGCAGACATATTAGCGGATCTAATGGAATCCAATTGATTGACTATCTTTTGAAAATATACATTTTTATGATCTGATACTTGTAAGAATATAGCAATAATGATAATTCCATCATCGTGTTTTTTTGCCTCTTCATAAGAACTATATTTTTTCTTATTCCAATGAACCAGATTAATCTCTCCAGAGTATTTGTATACATCTATCAAGTGATTGGATCCATAATCGTCTTCCTTTCCCCAATATATATGTATTGTTGATAACACATATTCATTGGGGAGAAACCCTCCACTTATATATCCTCCTTTAAAATTAATCCTTACTAGTTTTCCAGTATTCTGGATAGTGGTTGGTTTCGACTCATTATAATGTATGTCTAACGTCTTCAATCGCGCGTCAGAAATTGCTTTTTTAGTTTCTATATTAATAGGAGATAGTTGTTGAGGCATAGTAAAAATGAAATGATAACTGTCTAGAAATAGCTCTTAGTATGGGATTTACAATGGATGAGGAAGTGATATTTGAAACTCCTAGAGAATTAATATCTATTAAACGAATAAAAGATATTCCAAGATCAAAAGACACGCACGTGTTTGCTGCGTGTATAACAAGTGACGGATATCCGTTAATAGGAGCTAGAAGAACTTCATTCGCATTCCAGGCGATATTATCTCAACAAAATTCAGATTCTATCTTTAGAGTATCCACTAAACTATTACGGTTTATGTACTACAATGAACTAAGAGAAATCTTTAGACGGTTGAGAAAAGGTTCTATCAACAATATCGATCCTCACTTCGAAGAGTTAATATTATTGGGTGGTAAACTAGATAAAAAGGAATCTATTAAAGATTGTTTAAGAAGAGAATTAAAAGAGGAAAGTGATGAACATATAACAGTAAAAGAATTCGGAAATGTAATTCTAAAACTTACAACGAGTGATAAATTATTTAATAAAGTATATATAGGTTATTGCATGGCATGTTTTATTAATCAATCGTTGGAGGATTTATCACATACTAGTATTTACAATGTAGAAATTAGAAAGATTAAATCGTTAAATGATTGTATTAACGACGATAAATACGAATATCTGTCTTATATTTATAATATACTAATTAATAGTAAATGAGCTTTTACAGATCTAGTATAATTAGTCAGATTATTAAGTATAATAGACGACTAGCTAAGTCTATTATTTGCGAGGATGACTCTCAAATTATTACACTCACGGCATTCGTTAACCAATGCCTATGGTGTCATAAACGAGTATCCGTGTCCGCTATTTTATTAACTACTGATAACAAAATATTAGTATGTAACAGACGAGATAGTTTTCTCTATTCTGAAATAATTAGAACTAGAAACATGTATAGAAAGAAACGATTATTTCTGAATTATTCCAATTATTTGAACAAACAGGAAAGAAGTATACTATCGTCATTTTTTTCTCTAGATCCAGCTACTGCTGATAATGATAGAATAAACGCTATTTATCCGGGTGGTATACCCAAAAGGGGTGAGAACGTTCCAGAGTGTTTATCCAGGGAAATCAAAGAAGAAGTTAATATAGACAATTCTTTTGTATTCATAGACACTCGTTTTTTTATTCATGGTATCATAGAAGATACCATTATTAACAAATTTTTTGAGGTAATTTTCTTTGTTGGACGAATATCTCTAACGAGTGATCAAATTATTGATACCTTTAAAAGTAATCATGAAATAAAGGATCTAATATTTTTAGATCCAAATTCAGGTAATGGACTCCAATACGAAATTGCAAAATATGCTCTAGATACTGCAAAACTTAAATGTTACGGTCATAGAGGATGTTATTATGAATCATTAAAAAAATTAACTGAGGATGATTGATTAGAAAATATAAATTAATTTACCATCGTGTATTTTTATAACGGGATTGTCTGGCATATCATGTAGATAGTTACCGTCTACATCGTATACTCTACCATCTACGCCTTTAAATCCTCTATTTATTGATATTAATCTATTAGAATTGGAATACCAAATATTAGTACCCTCAATTAGTTTATTGGTAATATTTTTTTTAGACGATAGATCGATGGCTCTTGAAACCAAGGTTTTCCAACCGGACTCATTGTCTATCGGTGAGAAGTCTTTTTCATTAGCATGAATCCATTCTAATGATGTATGTTTAAACACTCTAAACAATTGTACAAATTCTTTTGATTTGTTTTGAATGATTTCAAATAGGTCTTCGTCTACAGTAGGCATACCATTAGATAATCTAGCCATTATAAAGTGCACGTTTACATATCTACGTTCTGGAGGAGTAAGAACGTGACTATTGAGACGAATGGCTCTTCCTACTATCTGACGAAGAGACGCCTCGTTCCATGTCATATCTAAAATGAAGATATCATTGATTGAGAAGAAACTAATACCCTCGCCTCCGCTAGAAGAGAATACGCATGTTTTAATGCATTCTCCGTTAGTGTTTGATTCTTGGTTAAACTCAGCCACCGCCTTGATTCTAGTATCTTTTGTTCTAGATGAGAACTCTATATTAGAGATACCAAAGACTTTGAAATATAGTAATAAGATTTCTATTCCTGACTGATTAACAAATGGTTCAAAGACTAGACATTTACCATGGGATGCTAATATTCCCAAACATACATCTATAAATTTGACGCTTTTCTCTTTTAATTCAGTAAATAGAGAGATATCAGCCGCAATAGCATCCCCTCCCAATAGTTCTCCCTTTTTAAAGGTGTCTAATGCGGATTTAGAAAATTCTCTATCTCTTAATGAATTTTTAAAATCATTATATAGGGTTGCTATCTCTTGTGCGTATTCTCCCGGATCACGATTTTGTCTTTCAGGAAAGCTATCGAATGTAAACGTAGTAGCCATACGTCTCAGAATTCTAAATGATGATATACCAGTTTTTATTTCTGCGAGTTTAGCCTTTTGATAAATCTCTTCTTGCTTTTTTGACATATTAACGTATCGCATTAATACTGTTTTCTTAGCGAATGATGCAGACCCTTCCACATCATCAAAAATAGAAAACTCGTTATTAACTATGTACGAACATAGGCCTCCTAGTTTGGAGACTAATTCTTTTTCATCGACTAGACGTTTATTCTCAAATAGCGATTGGTGTTGTAAGGATCCTGGTCGCAGTAAGTTAACCAACATGGTGAATTCTTGCACACTATTAACGATAGGTGTAGCCGATAAACAAATCATCTTATGGTTTTTTAACGCAATGGTCTTAGATAAAAAATTATATACTGACCGAGTAGGACGGATCTTACCATCTTCTTTGATTAATGATTTAGAAATGAAGTTATGACATTCATCAATGATGACGCATATTCTACTCTTGGAATTAATAGTTTTGATATTAGTAAAAAATTTATTTCTAAAATTTTGATCATCGTAATTAATAAAAATACAATCCTTCGTTATCTCTGGAGCGTATCTGAGTATAGTGTTTATCCAAGGATCTTCTATCAAAGCCTTTTTTACCAATAAGATAATTGCCCAATTCGTATAAATATCCTTAAGATGTTTGAGAATATATACAGTAGTCATTGTTTTACCGACACCTGTTTCATGGAACAATAAAAGAGAATGCATACTGTCTAATCCTAAGAAAACTCTTGCTACAAAATGTTGATAATCCTTGAGGCGTACTACGTCTGACCCCATCATTTCAACGGGCATATTAGTAGTTCTGCGTAAGGCATAATCGATATAGGCCGCGTGTGATTTACTCATTTATGAGTGATAAGTAATAACTATGTTTTAAAAATCACAGCAGTAGTTTAACTAGCCTTCTCTGATGTTTGTTTTCGATACTTTTTGAATCAGAAGTCATACTAGAATAAAGCAGCGAGTGAACGTAATAGAGAGCTTCGTATACTCTATTCGAAAACTCTAAGAACTTATTAATGAATTCCGTATCCACTGGATCGTTTAAAATACTAAATTGAACAGTGTTCACATCCTTCCAAGACGAAGACTTAGTGACGGACTTAACATGAGACATAAATAAATCCAAATTTTTTTTATAAACATCACTAGCCACCATAATGGCGCTATCTTTCAACCAACTATCGCTTACGCATTTTAACAGTCTAACATTTTTAAAGAGACTACAATATATTCTCATAGTATCGATTACACCTCTACCGAATAGAGTGGGAAGTTTAATAATACAATATTTTTCGTTTACAAAATCAAATAATGGTCGAAACACGTCGAAGGTTAACATCTTATAATCGCTAATGTATAGATTGTTTTCAGTGAGATGATTATTAGATTTAATAGCATCTCGTTCACGTTTGAACAGTTTATTGCGTGCGCTGAGGTCGGCAACTACGGCATCCGCTCTAGTACTCCTCCCATAATACTTTACGCTATTAATCTTTAAAATTTCATAGACTTTATCTAGATCGCTTTCTGGTAACATGATATCATGTGTAAAAAGTTTTAACATGTCGGTCGGCATTCTATTTAGATCATTAACTCTAGAAATCTGAAGAAAGTAATTAGCTCCATATTCCAGACTAGGTAATGGGCTTTTACCTAAAGACAAGTTAAGTTCTGGCAATGTTTCATAAAATGGAAGAAGGACATGTGTCCCCTCCCGGATATTTTTTACAATTTCATCCATTTACAACTCTATAGTTTGTTTTCATTATTATTAGTTATTATCTCCCATAATCTTGGTAATACTTACACCTTGATCATAAGATACCTTATACAGGTCATTACATACAACTACCAATTGTTTTTGTACATAATAGATTGGATGATTGATATCCATGGTGGAATAAACTACTCGAACAGATAGTTTATCTTTCCCCCTAGATACATTGGCCGTAATAGTTGTCGGCCTAAAGAATATCTTTGGTGTAAAGTTAAAAGTTAGGGTTCTTGTTCCATTATTGCTTTTTGTCAGTAGTTCGTTATAAATTCTCGAGATGGGCCCGTTCTCTGAATATAGAACATCATTTCCAAATCTAACTTCTAGTCTAGAAATAATATCGGTCTTATTTTTAAAATCTATTCCCTTGATGAATGGATCGTTAATAAACAAATCCTTGGCCTTTGATTCGGCTGATCTATTATCTCCGTTATAGACGTTACGTTGACTAGTCCAAAGACTTACAGGAATAGATGTATCGATGATGTTGATAGTATGTGATATGTGAGCAAAGACTGTTCTCTTGGTGGCGTCGCTATATGTTCCAGTAATGGCGGAAAACTTTTTAGAAATGTTATATATAAAAGAATTTTTTCGGGTTCCAAACATTAACAGATTAGTATGAAGATAAACACTCATATTATCAGGAACATTATCAATTTTTACATAAACATCGGCATCTTGAATAGAAACAACACCATCTTCTGGAACCTCTACGATCTCGGCAGATTCCGGATAACCAGTCGGTGGACCATCACTAACAATAACTAGATCATCCAACAATCTACTCACATATGCGTCTATATAATCTTTTTCATCTTGTGAGTACCCTGGATACGAAATAAATTTGTTATCAGTATTTCCATAATAAGGTTTAGTATAAACAGAGAGAGATGTTGCTGCATGAACTTCGGTTACTGTCGCCGTTGGTTGGTTTATTTGACCTATTACTCTCCTAGGTTTCTCTATAAATGATGGTTTAATTTGTACATTCTTAACCATATATCCAATAAAGCTCAATTCAGGAACATAAACAAATTCTTTGTTGAACGTTTCAAAGTCGAACGAAGAGTCACGAATAACGATATCGGATACTGGATTGAAGGTCACCGTTACGGTAATTTTTGAATCGGATAGTTTAAGACTACTGAATGTATCTTCCACATCAAACGGAGTTTTAATATAAACGTATACTGTAGATGGTTCTTTAATAGTGTCATTAGGAGTTAGGCCAATAGAAATATCATTAAGTTCACTAGAATATCCAGAATGTTTCAAAGCAATTGTATTATTGATACAATTATTATATAATTCTTCGCCCTCAATTTCCCAAATAACACCGTTACACGAAGAGACAGATACATGATTAATACATTTATATCCAACATATGGCACGTAACCGAATCTTCCCATACCTTTAACTTCTGGAAGTTCCAAACTCAGAACCAAATGATTAAGCGCAGTAATATACTGATCCCTAATTTCGAAGCTAGCGATAGCCTGATTGTCTGGCCCATCGTTTGTCATAACTCCGGATAGAGAAATATATTGCGGCATATATAAAGTTGGAATTTGACTATCAACTGCGAAGACATTAGACCGTTTAATAAAGTCATCCCCACCGATCAAAGAATTAATGATAGTATTATTCATTTTCTATTTAAAATGGAAAAAGCTTACAATAAACTCCGTAGAGAAATATCTATAATTTGTGAGTTTTCCTTAAAGTAACAGCTTCCGTAAACACCGTCTTTATCTCTTAGTAAGTTTATTGTATTTATGACCTTTTCCTTATCTTCATAGAATACTAAAGGCAATAAAGAAATTTTTGGTTCTTCTCTAAGAGCTACGTGAGACTTAACCATAGACGCCAACGAATCCCTACATATTTTAGAACAGAAATACCCAACTTCACCACCCTTGAATGTCTCAATACTAATAGGTCTAAAAACCAAATCTTGATTACAAAACCAACACTTATCAATTACACTATTTGTCTTAATAGACATATCTGCCATAGATTTATAATACTTTGGTAGTATACAAGCGAGTGCTTCTTCTTTAGCGGGCTTAAAGACTGCTTTAGGTGCTGAAATAACCACATCTGGAAGACTTACTCGCTTAGCCATTTAATTACGGAACTATTTTTTTATACTTCTAATGAACAAGTAGAAAACCTCTCATCTACAAAAACATACTCGTGTCCATAATCCTCTACCATAGTAACACGTTTTTTAGATCTCATATGTGCTAAAAAGTTTTCCCATACTAATTGGTTACTATTATTTTTCGTATAATTTTTAACAGTTTGAGGTTTTAGATTTTTAGTTACAGAAGTGATATCGAATATTTTATCCAAAAAGAATGAGTAATTAATTGTCTTAGAAGGAGTGTTTTCTTGGCAAAAGAATACCAAGTGCTTAAATATTTCTACTACTTCATTAATCTTTTCTGTACTCAGATTCAGTTTCTCATCTTTTACTTGATTGATTATTTCAAAGACTAACTTATAATCCTTTTTATTTATTCTCTCGTTAGCCTTAAGAAAACTAGATACAAAATTTGCATCTACATCATCCGTGGATATTTGATTTTTTTCCATGATATCCAATAGTTCCGAGATAATTTCTCCAGAACATTGATGAGACAATAATCTCCGCAATACATTTCTCAAATGAATAAGTTTATTAGACACGTGGAAGTTTGACTTTTTTTGTACCTTTGTACATTTTTGAAATACAGACTCGCAAAAAATACAATATTCATATCCTTGTTCAGATACTATACCGTTATGTCTACAACAGCTACATAATCGTAGATTCATGTTAACACTCTACGTATCTCGTCGTCCAATATTTTATATAAAAACATTTTATTTCTAGACGTTGTCAGAAAATCCTGTAATATTTTTAGTTTTTTTGGTTGTGAATAAAGTATCGCCCTAATAATATTGGTACCGTCTTCCGACAATATAGTAGTTAAATTATCCGAGCATGTAGAAGAACACCGCTTAGGCGGATTCAGTACAATGTTATATTTTTCGTACCAACTCATTTAAATATCATAATCTAAAATAGTTCTGTAATATGTCTAGCGCTAATATATTGATCATAATCCTGTGCATAAATTAAGATACAACAATGTCTTGAAATCATCGACATGGCTTCTTCCATAGTTAGAAGATCATCGTCAAAGTTAGCAACGTGATTCATCAACATTTGCTGTTTTGAGGCAGCAAATACTGAACCATCACCATTCAACCATTCATAAAAACCATCGTCTGAATCCATTGATAATTTCTTGTACTGGTTTTTGAGAGCTCGCATCAATCTAGCATTTCTAGCTCCCGGATTGAAAACAGAAAGAGGATCGTACATCCAAGGTCCATTTTCTGTAAATAGAATCGTATAATGTCCCTTCAAGAAGATATCAGACGATCCACAATCAAAGAATTGGTCTCCGAGTTTGTAACAGACTGCGGACTTTAACCTATACATGATACCGTTTAGCATGATTTCTGGTGATACGTCAATCGGAGTATCATCTATTAGAGATCTAAAGCCGGTGTAACATTCTCCGCCAAACATATTCTTATTCTGACGTCGTTCTACATAAAACATCATTGCTCCATTAACGATAACAGGTGAATGAACAGCACTACCCATCACATTAGTTCCCAATGGATCAATGTGTGTAACTCCAGAACATCTTCCATAGCCTATGTTAGGAGGAGCGAACACCACTCTTCCACTATTGCCATCGAATGCCATAGAATAAATATCCTTGGAATTGATAGAAATCGGACTGTCGGATGTTGTTATCATCTTCATAGGATTAACAACGATGTATGGTGCAGCCTGAAGTTTCATATCGTAACTGATGCCGTTCATAGGTCTAGCCACAGAAACCAACGTAGGTCTAAATCCAACTATAGACAAAATAGAAGCTAATATCTGTTCCTCATCTGTCATAACTTGAGAGCATCCAGTATGAATAATCTTCATTAGATGGGGATCTACCGCATCATCATCGTTACAATAAAAAATTCCCATTCTAATGTTCATAATTGCTTTTCTAATCATGGTATGAATGTTTGCTCTCTGAATCTCTGTGGAAATTAGATCTGATACACCTGTAATCACTATCGGATTATCCTCCGTAAGACGATTAACCAACAACATATAATTATAAGACTTTACTCTTCTAAATTCATAAAGTTGCTGGATTAGACTATATGTGTCTCCATGTACATACGCGTTCTCGAGCGCAGGAAGTTTAATACCGAATAGTGCCATCAGAATAGGATGAATGTAGTAATTAGTTTCTGGTTTTCTATAAATAAAAGACAAATCTTGTGAACTAGACATATCGGTAAAATGCATGGATTGGAATCGTGTAGTCGACAGAAGAATATGATGATTAGATGGAGAGTATATTTTATCTAACTCTTTGAGTTGGTCACCGATTCTAGGACTAGCTCGAGAATGAATAAGTACTAAGGGATGAGTACATTTCACAGAAACACTGGCGTTGTTCAACGTACTCTTTACATGGGAAAGGAGTTGAAATAGCTCGTTTCTATTTGTCCTGACAATATTTAGTTTATTCATAATATTAAGCATATCCTGAATAGTAAAGTTAGATGTGTCATACTTGTTAGTAGTTAGATATTTAGCAATTGCATTCCCATCATTTCTCAATCTCGTACTCCAATCATGTGTGGATGCTACTTCGTCGATGGAAACCATACAATCCTTTTTGATAGGCTGTTGAGATTGATCATTTCCTGTACGTTTAGGTTTGGTACGTTGATTTCTAGCCCCTGCTGATATAAAGTCATCGTCTACAATTTGGGATAATGAATTACATACACTACAAGACAAAGATTTATCAGAAGTGTGAATATGATCTTCATCTACCAAAGAAAGAGTTTGATTAGTATAACTAGATTTTAGTCCCGCGTTAGATGTTAAAAAAACATCGCTATTGACCACGGCTTCCATTATTTATATTCGTAGTTTTTACTCGAAAGCGTGATTTTAATATCCAATCTTATTACTTTTGGAATCGTTCAAAACCTTTGACTAGTTGTAGAATTTGATCTATTGCCCTACGCGTATACTCCCTTGCATCATATACGTTCGTCACCAGATCGTTTGTTTCGGCCTGAAGTTGACGCATATCTTTTTCAACACTCGACATGAGATCCTTAAGGGTCATATCGTCTAGATTTTGTTGAGATGCTGCTCCTGGATTTGGATTTTGTTGTGCTGTTGTACATACTGTACCACCAGTAGGTGTAGGAGTACATACAGTGGCCACAATAGGAGGTTGAAGAGGTGTAACCGTTGGAGTAGTACAAGAAATACTTCCATCCGATTGTTGTGTACATGTGGTTGTTGGTAACGTCTGAGAAGGTTGGGTAGATGGCGGTGTCGTCATCTTTTGATCTTTATTAAATTTAGAGATAATATCCTGAACAGTATTGCTCGGCGTCAACGCTGGAAGGAGTGTACTCGCCGGCGCATCAGTATCTGTAGACAACCAATCAAAAAGATTAGACATATCAGATGATGTATTAGTTTGTTGACGTGGTTTTAGTACAGGAGCAGTACTACTAGGTAGAAGAATAGGAGCCGGTGTAGGTGTCGGAACCGGCTGTGGAGTTATATGAATAGTTGGTTGTAGCGGTTGGGTAGGCTGTCTGCTGGCGGTCATCATATTATCTCTAGCTAGTTGTTCTCGCAACTGTCTTTGATAATACGACTCTTGAGACTTTAGTCCTATTTCAATCGCTTCATCCTTTTTCGTATCCGGATCCTTTTCTTCAGAATAATAGATTGACGACTTTGGTGTAGAGGATTCTGCCAGCCCCTGTGAGAACTTGTTAAAGAAGTCCATTTAAGGCTTTAAAATTGAATTGCGATTATAAGATTAAATGGCAGACACGGACGATATTATCGACTATGAATCCGATGATCTCACCGAATACGAGGATGATGAAGAAGATGGAGAGTCACTAGAAACTAGTGATATAGATCCCAAATCTTCTTATAAGATTGTAGAATCAACATCCACTCATATAGAAGATGCGCATTCCAATCTTAAACATATAGGGAATCATATATCTGCTCTTAAACGACGCTATACTAGACGTATAAGTCTATTTGAAATAGCGGGTATAATAGCAGAAAGCTATAACTTGCTTCAACGAGGAAGATTACCTCTAGTTTCAGAATTTTCTGACGAAACGATGAAGCAAAATATGCTACATGTAATTATACAAGAGATAGAGGAGGGTTCTTGTCCTATAGTCATCGAAAAGAACGGAGAATTGTTGTCGGTAAACGATTTTGATAAAGATGGTCTAAAATTCCATCTAGACTATATTATCAAAATTTGGAAACTTCAAAAACGATATTAGAATTTATACGAATATCGTTCTCTAAATGTCACAATCAAGTCTCTCATATTCAGCAGTTTATTGTCGTACTTTATATCGTGTTCATTAACGATATTTTGCAAAATAGTAATGATTCTATCTTCCTTCGATAGATATTCTTCAGAGATTATTGTCTTATATTCTTTCTTGTTATCCGATATGAATTTGATAAGACTTTGAACATTATTAATACCCGTCTGTTTAATTTTTTCTATAGATATTTTAGTTTTGGTAGATTCTATGGTGTCTGTTAATAGGCATCCAACATCGACATTCGACGTCAATTGTCTATAAATCAGAGTATAAATTTTAGAAATAACATTAGCAAATTGTTGTGCGTTGATGTCGTTATTCTGAAACAGTATGATTTTAGGTAGCATTTTCTTAACAAAGAGAACGTATTTATTGTTACTCAGTTGAACAGATGATATATCCAGATTACTAACGCATCTGATTCCATATACCAAACTTTCAGAAGAAATGGTGTACAATTGTTTGTATTCATTCAATGTCTCCTTTTCAGAAATTAGTTTAGAGTCGAATACTGCAATAATTTTCAAGAGATAGTTTTCATCAGATAAGATTTTATTTAGTGTAGATATGATAAAACTATTGTTTTGTTGGAGAACTTGATACGCCGCATTCTCTGTAGTCGACGCTCTCAAATGGGAAACAATCTCTATTATTTTTTTGGAATCGGATACTATATCTTCGGTATCTTGACGCAGTCTAGTATACATAGAGTTAAGAGAAATTAGAGTTTGTACATTAAGCAACATGTCTCTAAATGTGGCTACAAACTTTTCTTTTTCCACATCATCTAGTTTATTATATACCGATTTCACAACGGCACCAGATTTAAGGAACCAGAATGAAAAACTCTGATAACTACAATATTTCATCATAGTTACGATTTTATCATCTTCTATAGTTGGTGTGATAACACATACCTTTTTCTCCAAGACTGGAACCAACGTCATAAAAATGTTTAAATCAAAATCCATATCAACATCTGATGCGCTAAGACCAGTCTCGCGTTCAAGATTATCTTTACTAATGGTGACGAACTCATCGTATAGAACTCTAAGTTTGTCCATTATTTATTTACAGATTTAGTTGTTTAATTTATTTGTGCTCTTCCAGAGTTGGGATAGTATTTTTCTAACGTCGGTATTATATTATTAGGATCTACGTTCATATGTATCATAATATTAATCATCCACGTTTTGATAAATCTATCTTTAGCTTCTGAAATAACGTATTTAAACAAAGGAGAAAAATATTTAGTTACGGCATCAGACGCGATAACATTTTTTGTAAATGTAACGTATTTAGACGACAGATCTTCGTTAAAAAGTTTTCCATCTATGTAGAATCCATCGGTTGTTAACACCATTCCCGCGTCAGAGTGAATAGGAGTTTGAATAGTTTGTTTTGGAAATAGATCCTTCAATAACTTATAGTTGGGTGGGAAAAAATCGATTTTATCACTAGACTCTTTCTTTTTTACTATCATTACCTCATGAACTATTTCTTGAATGAGTATATGTATTTTCTTTCCTATATCGGTCGCGTTCATTGGAAAATATATCATGTCGTTAACTATAAGAATATTTTTATCCTCGTTTACAAACTGAATAATATCAGATATAGTTCGTAAACGAACTATATCATCACCAGCACAACATCTAACTATATGATATCCACTAGTTTCCTTTAGCCGTTTATTATCTTGTTCCATATTAGCAGTCATTCCATCATTTAAGAAGGCGTCAAAGATAATAGGGAGAAATGACATTTTGGATTCTGTTACGACTTTACCAAAATTAAGGATATACGGACTTACTATCTTTTTCTCAACGTCGATTTGATGAACACACGATGAAAATGTACTTCGATGAGATTGATCATGTAGAAAACAACAAGGGATACAATATTTCCGCATATCATGAAATATATTAAGAAATCCCACTTTATTATATTTCCCCAAAGGATCAATGCATGTAAACATTATACCGTTATCATTAATAAAGACTTCTTTCTCATCGGATCTGTAAAAGTTGTTACTGATTTTTTTCATTCCAGGATCTAGATAATTAATAATAATGGGTTTTCTATTCTTATTCTTTGTATTTTGACATATCCTAGACCAGTAAACAGTTTCCACTTTGGTAAAATCAGAAGACTTTTGAACGCTATTAAACATGGCATTAATGGCAATAACTAAAAATGTAAAATATTTTTCTATGTTAGGAATATGGTTTTTCACTTTAATAGATATATGGTTTTTTGCCAAAATGATAGATATTTTTTTATCCGATGATAGTAAAATATTATTAGTCGCCGTCTCTATAAAAATGAAGCTAGTCTCGATATCCAATTTTATTCTAGAATTGATAGGAGTCGCCAAATGTACCTTATACGTTATATCTCCCTTGATGCGTTCCATTTGTGTATCTATATCGGACACAAGATCTGTAAATAGTTTTACGTTATTAATCATCACGGTATCGCCATCGCTAGATAATGCTAATGTACTATCCAAGTCCCAAATGGAGAGATTTAACTGTTCATCGTTTAGAATAAAATGATTACCTGTCATATTAATAAAGTGTTCATCGTATCTAGATAACAACGACTTATAATTAATGTCCAAGTCTTGAACTCGCTGAATGATCTTTTTTAACCCAGTTAGTTTTAGATTGGTACGAAATATATTGTTAAACTTTGATTCTACAGTAATGTCCAAATCTAGTTGTGGAAATACTTCCATCAACATTGTTTCAAACTTGATAATATTATTATCTACATCTTCGTACGATCCAAATTCCGGAATAGATGTATCGCACGCTCTGGCCACCCAGATAACCAAAAAGTCACACGCTCCAGAATATACATTGTATAAAAAGCTATCGTTTTTTAGTAGTGTTTTTTTCTGAGTATATACGAAAGGATTAAAAATAGTATTATCAACGTAACTATATTCCAAATTATTCTTATGAGAATAGATAATAATATCGTCCTTAATATCTAACAAATTTCCTAAATATCCCTTTAATTGAGTCATTCGAAGCGTTAATAAAATATGTCTCTTAACTATTTCCGGCCGTTGTATATTTAAATGACTTCGTAAGAAATAATATATAGGCGACTTCTCATCTATGTAATCATATGGAGTGAGATATAGGGCTCGTTCTACCTCCTGCCCCTTACCCACCTGTAATACCAATTGCGGACTCACTATATATCGCATATTTATATCGTGGGGTAAAGTGAAAATCTACTACCGATGATGTAAGTCTTACAATGTTCGAACCAGTACCAGATCTTAATTTGGAGGCCTCCGTAGAACTAGGGGAGGTAAATATAGATCAAACAACACCTATGATAAAGGAGAATAGCGGTTTTATATCCCGTAGTAGACGTCTATTCGCCCATAGATCTAAGGATGATGAGAGAAAACTAGCACTACGATTCTTTTTACAAAGACTTTATTTTTTAGATCATAGAGAGATTCATTATTTGTTCAGATGCGTCGACGCTGTAAAAGACGTCACTATTACCAAAAAAAATAACATTATCGTGGCGCCTTATATAGCACTTTTAACTATCGCATCAAAAGGATGCAAACTTACAGAAACAATGATTGAAGCATTCTTTCCAGAACTATATAATGAACATAGTAAGAAATTCAAATTCAACTCTCAAGTATCCATCATCCAAGAAAAACTCGGATACCAGTCTGGAAACTATCACGTTTATGATTTTGAACCGTATTACTCTACAGTAGCTCTGGCTATTCGAGATGAACATTCATCTGGCATTTTTAATATCCGTCAAGAGAGTTATCTTGTAAGTTCATTATCTGAAATAACATATAGATTTTATCTAATTAATCTAAAATCTGATCTTGTTCAATGGAGTGCTAGTACGGGCGCTGTAATTAATCAAATGGTAAATACTGTATTGATTACAGTGTATGAAAAATTACAACTGGCCATAGAAAATGATTCACAATTTACATGTTCATTGGCTGTGGAATCAGAACTTCCAATAAAATTACTTAAAGATAGAAATGAATTATTTACAAAATTCATTAACGAGTTAAAAAAGACCAGTTCATTCAAGATAAGCAAACGTGATAAGGATACGCTATTAAAACATTTTACTTATGACTGGAGTTAGAATTTATAGACGACACATTTCGTTTATCATTGTTACTATTACTATCATTATTAGTATTCTTCTTGTCATCTTGTTCAGAAATATACAGCAATGCTATACCTAATACTAAATACATTATCATGCTTGCAATGGCTCTAACAACAACGAACCAAAATGAATTTGGTCGTAGCTTTTGTTCACAAAAATACATAAAGAAATGTCTACATAAATCTATGGCGCCATTGGCTACTTGAAATAGCGCCAGTCCTCCTACAGATTTTAATATAGCTGTATAACATGACATTTATTCATCATCAAAAGAGACAGAGTCACCATCTGTCATATTTAGATTTTTTTTCATGTGTTCAAAGTATCCTCTACTCATTTCATTATAATAGTTTATCATGCTTAGAATTTTAGGACGGATCAATGAGTAAGACTTGACTAGATCGTCAGTAGTAATTTGTGCATCATCTATTCTGCATCCGCTTCGTCGAATAATGTATAGCATCGCTTTGAGATTCTCCATAGCTATCAAGTCTTTATATAATGACATGGAAATATCTGTGAATGCTTTATACTTCTCCAACATCGATGCCTTAACATCATCACATACTTTAGCATTGAAAATACGTTCTATTGTGTAGATGGATGTAGCAAGATTTTTAAACAACAATGCCATCTTACATGATGATTGTCTCAAGTCTCCAATCGTTTGTTTAGAACGATTAGCTACAGAGTCCAATGCTTGGCTAACTAGCATATTATTATCTTTAGAAATTGTATTCTTCAATGAGGCGTTTATCATATCTGTGATTTCGTTAGTCATATTACAGTCTGACTGGGTTGTAATGTTATCCAACATATCACCTATGGATACGGTACACGTACCAGCATTTGTAATAATCCTATCTAAGATGTTGTATGGCATTGCGCAGAAAATATCTTCTCCTGTAATATCTCCACTCTCGATAAATCTACTCAGATTATTCTTAAATGCCTTATTCTCTGGAGAAAAGATATCAGTGTCCATCATTTCATTAATAGTATACGCAGAAAAGATACCACGAGTATCAATTCTATCCAAGATACTTATCGGTTCCGAGTCACAGATAATTGTTTCCTCTCCTTCGGGAGATCCTGCATAGAAATATCTAGGACAATAGTTTCTATACTGTCTGTAACTCTGATAATCTCTAAAGTCACTAACTGATACCATGAAATTGAGAAGATCAAACGCTGAAGTAATCAATTTTTCTGCCTCGTTTTTACTACAACTAGTTTTCATCAATGTAGTGACGATGTATTGTTTAGTTACTCTTGGTCTAATACTGATGATAGAGATATTATTGCTTCCCATAATGGATCTTCTAGTAGTCACCTTAAAGCCCATTGATGCGAATAGCAGATAGATAAAGTCTTGGTATGACTCCTTTCTAATATAGTACGGACTACCTTTGTCACCCAACTTTATACCCACATAAGCCATAACAACCTCTTTAATAGCCGTTTCATGAGGTTTATCAGCCATGAGCCTGAGTAGTTGAAAGAATCGCATGAATCCCGTCTCAGAAAGTCCTATATGCATGATAGATTTATCTTTCCTGGGAAACTCTCGTATAGTTATAGATGAAATACTCTTCAAAGTTTCTGAAATAAGATTAGTAACAGTCTTACCTCCGACTACTCTGGGTAACAAACATACTCTAATAGGTGTTTTCTCTGCGGAGATAATATCAGAAAGGATAGAGCAATAAGTAGTATTATTGTGATTATAAAGACCGAATACATAACAGGTAGAATTTATAAACATCATGTCCTGAAGGGTTTTAGACTTGTATTCCTCGTAATCTATACCGTCCCAAAACATGGATTTGGTAACTTTGATAGCCGTAGATCTTTGTTCCTTCGCTAACAGGTTAAAGAAATTAATAAAGAATTTGTTGTTTCTATTTATGTCCACAAATTGCACGTTTGGAAGCGCCACGGTTACATTCACTGCAGCATTTTGAGGATCGCGAGTATGAAGTACGATGTTATTGTTTACTGGTATATCTGGAAAGAAATCTACCAGTCTAGGAATAAGAGATTGATATCGCATAGAAATAGTAAAGTTTATAATCTCATCATTGAAGATTACTCTGTTACCATTGTAATAAATTGGTACTCTATCATAATCATCGACAAAGTACTGTTCATACATGATGAGATGTTTATATGTTGGCATAGTAGTGAGATCGACGTTTGGTAATGGCAATGTATTAAGATTAACTCCATAATGTCTAGCAGCATCTGCGATGTTATAAGTGATGTCAAAGCGGGGTTGATCTTGTGCTGTTATATATTGTCTAACACCTATAAGATTATCAAAATCTTGTCTGCTTAATACACCGTTAACAATTTTTGCCTTGAATTCTTTTATTGGTGCATTAATAACATCCTTATAGAGGATGTTAAACAAATAAGTATTATCAAAGTTAAGATCTGGGTATTTCTTTTCTGCTAGAACATCCATTGAGTCGGAGCCATCTGGTTTAATATAACCACCGATAAATCTAGCTCTGTATTCTGTATCCGTCAATCTAATATTAAGAAGGTGTTGAGTGAAAGGTGGAAGATCGTAAAAGCTGTGAGTATTAATAATAGGGTTAGTTTCCGAACTAATGTTAATTGGATGATTAATAATATTTATATTTCCAGCGTTAAGTGTAACATTAAACAGTTTTAATTCACGTGACGTGGTATCAATTAAATAATTAATGCCCAATTTGGATATAGTAGCCTGAAGCTCATCTTGTTTAGTTACGGATCCTAATGAGTTATTAAGAAATACATCGAACGGATGAACGAAGGTTGTTTTAAGTTGGTCACATACTTTGTAATCTAGACATAGATGTGGAAGAACGGTAGAAACTATACGAAATAGATATTCAGAGTCCTCTAATTGATCAAGAGTAACTATTGACTTAATAGGCATCATTTATTTAGTATTAAATGACGACCGTACCAGTGACAGATATACAAAACGACTTAATTACAGAGTTTTCAGAAGATAATTATCCATCTAACAAAAATTATGAAATAACTCTTCGCCAAATGTCTATTCTAACTCACGTTAACAACGTGGTAGATAGAGAACATAATGCCGCCGTAGTGTCATCTCCAGAGGAAATATCATCACAACTTAATGAAGATCTATTTCCAGATGATGATTCACCGGCCACTATTATCGAACGAGTACAACCTCATACTACTATTATTGACGATACGCCACCTCCTACTTTTCGTAGAGAGTTATTGATATCGGAACAACGTCAACAACGAGAAAAAAGATTTAATATTACAGTATCAAAAAATTCTGAAGCAATAATGGAATCTAGATCTATGATAACTTCTATGCCAACACAAACACCATCCTTGGGAGTAGTTTATGATAAAGATAAAAGAATTCAGATGCTAGAGGATGAAGTGGTTAATCTTAGAAATCAACGATCTAATACAAAATCATCTGATAATTTAGATAATTTTACCAGAATACTATTTGGTAAGACTCCGTATAAATCAACCGAAGTTAATAAGCGTATAGCCATCGTTAATTATGCAAATTTGAACGGGTCCCCCTTATCAGTCGAGGACTTGGATGTCTGTTCGGAGGATGAAATAGATAGAATCTATAAAACGATTAAACAATATCACGAAAGTAGAAAACGAAAAATTATCGTCACTAACGTGATTATTATTGTCATAAACATTATTGAGCAGGCATTGCTAAAACTCGGATTTGAAGAAATCAAAGGACTGAGTACCGATATCACTTCAGAAATTATCGATGTGGAGATCGGAGATGACTGCGATGCTGTAGCATCAAAACTAGGAATCGGTAACAGTCCGGTTCTTAATATTGTATTGTTTATACTCAAGATATTCGTTAAACGAATTAAAATTATTTAATTTAATACATTCCCATATCCAGACAACAATCGTCTGGATTAATCTGTTCCTGTCGTCTCATACCGGACGACATATTAATCTTTTTATTAGTGGGCATCTTTTTAGATGGTTTCTTTTTCCCAGCATTAACTGATTCGATACCTAGAAGATCGTGATTGATTTCTCCGACCATTCCACGAACTTCTAATTGGCCGTCTCTAACGGTACCATAAACTATTTTACCAGCATTAGTAACAGCTTGGACAATCTGACCATCCATTGCGTTGAATGATGTAGTTGCTGTTGTTCTACGTCTAGGAGCACCAGAGGTATTTTTAGAGCTCTTGGATGTTGATGTAGAAGACGAGGATTTTGATTTTGGTTTACATGTAATACATTTTGAACTCTTTGATTTTGTATCACATGCACCGGCAGTCACATCTGTTTGAGAATTAAGATTATTGTTGCCTCCTTTGACGGCTGCATCTCCACCGATCTGCGCTAGTAGATTTTTAAGCTGTGGTGTAATCTTATTAACTGTTTCAATATAATCATCGTAACTACTTCTAACGGCTAAATTTTTTTTATCCGCCATTTAGAAGCTAAAAATATTTTTATTTATGCAGAAGATTTAACTAGATTATACAATGAACTAATATGATCCTTTTCTAGATTATTTACGAACTTGGTATTTCTTGTTTCTGGAGGAGGAGAATTTAAATTCGGACTTGGATTCGGATTTTGTGGGTTCTTGATCTTATTATACAGCGTGTATAGGATGGTGACGGTAACTGCTACACAAATACCGATCAACAGAAGAATACCAATCATTTATTGACAATAACTTCACTATGATCAAGTATGTAATAATCATCTTTTCACTAAGTAAGTAGTAATAATGATTCAACAATGACACGATATATGGACGATAATAATTTAGTTCATGGAAATATCGCTATGATTGGTGTGAATGACTCCGCTAACTCTGTGGGGTGCACAGTGCTTTCCCCACATAGAATAAATTAGCATTCCGACTGTGATAATAATACCAAGTATAAACGCCATAATACTCAATACTTTCCATGTACGAGTGGGACTGGTAGACTTACTAAAGTCAATAAAGGCGAAGATACACGAAAGAATCAAAAGAATGATTCCAGCGATTAGCACGCCAGAAAAATAATTTCCAATCATAAGCATCATGTCCATTTAACTAATAAAAATTTTAAATCGCCGAATAAACAAAGTGGAATATAAACCATATAAAAACAATAGTTTGTACTGCAAAAATAATATCTATTTTTGTTTTCGAAGATATGGTAAAATTAAATAGTAGTACACAGCATGTTATAACTAACAGCAGCAACGGCTCGTAATTACTTATCATTTACTAGACGAAAAGGTGGTGGGATATTTTCTTGCTCAAATAATACGAATATATCACCCATCCATTTTATACGATGTTTATATACTCTAATCTTTAATAGATCTATAGATGACGGGTTTACCAATAATATAGATTTTATCGATTCATCTAATTTAAACCCTTCCTTAAACGTGAATGATCTATTATCTGGCATAATGATGACCCTACCTGATGAATCTGACAATGTACTGGGCCATGTAGAATAAATTATCAACGAATTATCGTCTACGAACATTTATATCATTTGTTTTAATTTTAGGACGTGAATAAATAGATATAAAATAGAAAATAACAGATATTACAACCAGTGTTATGGACGCACCCAACCATGTAGGCAGTTTTATTTTATCGTTTACTACAGGTTCTCCTGGATGTACGTCACCAACTGCAGACGTAGTTCTAGTACAATTAGACGTAAGTTCCGCTTGGGAATTTTTTAACGCTAAAGAGTTAACGTTGATCGTACACCCAACGTATTTACATCTAGTTCTTTGAACATCTTGATTATAATATAACCATTTTCTATCTCTAGATTCGTCAGTGCACTCATGTAACCAACATACCCTAGGTCCTAAATATTTATCTCCGGAATTAGATTTTGGATAATTCGCGCACCAACAATTTCTATTTCCTTTATGGTCGTTACAAAAGACGTATAATGCCGTATCCCCAAAAGTAAAATAATCAGGACGAATAATTCTAATAAACTCAGAACAATATCTCGCATCCATATGTTTGGAGCAAATATCGGAATAAGTAGACATAGCCGGTTTCCGTTTTACACGTAACCATTCTAAACAATTGGGGTTTCCAGGATCGTTTCTACAAAAACCAGTCATGAAATCGTCACAATGTTCTGTCTTGTAATTATTATTAAATATTTTTGGACAGTGTTTGGTATTTGTCTTAGAACAACATTTTGCCACGCTATCACTATCACCCAGGAGATAATCCTTTTTTATAAAATGACATCGTTGCCCGGATGCTATATAATCAGTAGCATATTTTAAATCCTTAATATATTCAGGAGTTACCTCGTTCTGATAATAGATTAATGATCCAGGACGAAATTTGAAAGAACTACATGGTTCTCCATGAATTAATACATATTGTTTAGCAAATTCAGGAACTATAAAACTACTACAATGATCTATCGACATACCATCTATCAAACAAAATTTGGGTTTAATTTCTCCTGGAGACGTTTCATAATAATACATATAACTTTCTTCGGCAAACCTAACAGCTCTATTATATTCAGGATAATTAAAATCTAATACCATATATTTGTCTCGTATATCTGCTATTCCTGTCTCTATTTTGATTCTATTAAGAGTAACAGCTGCCCCCATTCTTAATAATCATCAGTATTTAAACTGTTAAATGTTGGTATATCAACATCTATCTTATTTCCCGCAGTATAAGGTTTGTTGCAGGTATACTGTTCAGGAATGGGTACATTTATACTTCTTTTATAGTCCTGTCTTTCGATGTTCATCACAAATGCAAAGAACAGAATAAACAAAATAATGTAAGAAATAATATTAAATATCTGTGAATTCGTAAATACATTGATTGCCATAATAATTACAGCAGCTACAATACACACAATAGACATTCCCACAGTGTTGCCATTACCTCCACGATACATTTGAGTTACTAAGCAATAGGTAATAACTAAGCTAGTAAGAGGCAATAGAAAAGATGAGATAAATATCATCAATATAGAGATTAGAGGAGGGCTATATAGAGCCAAGACGAACAAAATCAAACCGAGTAACGTTCTAACATCATTATTTTTGAAGATTCCCAAATAATCATTCATTATTCCTCCATAATCGTTTTGCATCATACCCCCATCTTTAGGCATAAACGATTGCTGCTGTTCCTCTGTAAATAAATCTTTATCAAGCACTCCAGCACCCGCAGAGAAGTCATCAAGCATATTGTAATATCTTAAATAACTCATTTATATATTAAAAAATGTCACTATTAAAGATGGAGTATAATCTTTATGCCGAACTAAAAAAAATGACTTGTGGTCAGACCATAAGTCTTTTTAATGAAGACGGCGATTTCGTAGAAGTTGAACCAGGATCATCCTTTAAGTTTCTAATACCTAAGGGATTTTACTCCTCTCCTTGTGTAAAGACGAGTCTAGTATTCGAGACATTAACAACGACCGATAATAAAATTACTAGTATCAATCCAACAAATGCGCCAAAGTTATATCCTCTTCAACGCAAAGTCGTATCTGAAGTAGTTTCTAATATGAGGAAAATGATCGAATTAAAACGTCCTCTATACATCACTCTTCACTTGGCATGTGGATTTGGTAAGACTATTACCACGTGTTATCTTATGACCACACACGGCAGAAAAACCATCATTTGCGTACCCAATAAAATGTTAATACATCAATGGAAGACACAGGTAGAGGCAGTCGGATTGGAACATAAGATATCTATAGATGGAGTTAGTAGTCTATTAAAGGAACTAAAGACTCAAAGTCCGGATGTATTAATCGTAGTCAGTAGACATCTGACAAACGATGCATTTTGTAAATATATCAATAAGCATTATGATTTGTTTATCTTGGATGAATCACATACGTATAATCTGATGAACAATACAGCAGTTACAAGATTTTTAGCGTATTATCCTCCGATGATGTGTTATTTTTTAACTGCTACACCTAGACCAGCTAACCGAATTTATTGTAATAGTATTATTAATATTGCCAAGTTATCCGATCTAAAAAAAACTATCTATATAGTAGATAGTTTTTTTGAGCCATATTCCACAGACAATATTAGAAATATGGTAAAACGACTAGATGGACCATCTAATAAATATCATATATATACCGAGAAGTTATTATCTGTAGACGAGCCTAGAAACCAACTTATTCTTGATACCCTGGTAGAAGAATTCAAGTCAGGAACTATTAATAGAATTTTAGTTATTACTAAACTACGTGAACATATGGTATTCTTCTACAAACGATTATTAGATCTTTTCGGAGCAGAGGTTGTATTTATAGGAGACGCCCAAAATAGACGTACTCCAGATATGGTCAAATCGATTAAGGAACTAAATAGATTTATATTCGTATCCACCTTATTTTATTCCGGCACTGGTTTAGATATTCCGAGTTTGGATTCTTTGTTCATTTGCTCGGCAGTAATCAACAATATGCAAATAGAGCAATTACTAGGGAGGGTATGTCGAGAAACAGAACTATTAGATAGGACGGTATATGTATTTCCTAACACATCCATCAAAAAAATAAAGTACATGATAGGAAATTTCGTGCAACGAATTATTAGTCTGTCTGTAGATAAACTCGGATTTAAACAAGAAAGTTATCAGAAACATCAGGAATCTGAACCCGCTTCCGTACCAACATCCTCCAGAGAAGAACGTGTATTAAATAGAATATTTAACTCGCAAAATCGTTAAGAAGTTTAAGAGACGATCCACATGCTGAGCAGGCCAGTGTATTACCCCTCATAGTATTAATATAATCCAATGATACTTTTGTGATGTCGGAAATCTTAACCAATTTAGACTGACAGGCAGAACACGTCATACAATCATCATCGTCATCGATAACTGTAGTCTTGGGCTTCTTTTTGCGACTCTTCATTCCGGAACGCATATTGGTGCTATCCATTTAGGTAGTAAAAAATAAGTCAGAATATGCCCTATAACACGATCGTGCAAAACCTGGTATATCGTCTCTATCTTTATCACAATATAGTGTATCAACATCTTTATTATTGACCTCGTTTATCTTGGAACATGGAATGGGAACATTTTTGTTAACGGCCACCTTTGCCTTAATTCCAGATGTTGTAAAATTATAACTAAACAGTCTATCATCGACACAAATGAAATTCTTGTTTAGACGTTTGTAGTTTACGTATGCGGCTCGTTCTCGTCTCATTTTTTCAGATATTGCAGGTACTATAATATTAAAAATAAGAATGAAATAACATAGGATTAAAAATAAAGTTATCATGACTTCTAGTGCTGATTTAACTAACTTAAAAGAATTACTTAGTCTGTACAAAAGTTTGAGATTTTCAGATTCTGTGGCTATAGAGAAGTATAATTCTTTGGTAGAATGGGGAACATCTACTTACTGGAAAATAGGCGTACAAAAGGTAACTAATGTCGAGACGTCCATATCTGATTATTATGATGAGGTAAAAAATAAACCGTTTAATATTGATCCGGGGTATTATATTTTCTTACCAGTATATTTTGGAAGCGTCTTTATTTATTCAAAGGGTAAAAATATGGTAGAACTTGGATCTGGAAACTCTTTTCAAATACCGGATGAGATTCGAAGTGCGTGTAACAAAGTATTAGATAGTGATAACGGAATAGACTTTCTGAGATTTGTTTTGTTAAACAATAGATGGATAATGGAAGACGCTATATCAAAATACCAGTCTCCAGTTAATATATTTAAACTAGCTAGTGAGTACGGATTAAACATACCCAACTATTTAGAAATTGAAATAGAGGAAGACACATTATTTGACGATGAGTTATACTCTATTATGGAACGCTCTTTCGATGATACATTTCCAAAAATATCTATATCGTATATTAAGTTGGGAGAACTTAAGCGGCAAGTTGTAGACTTTTTCAAATTCTCATTCATGTATATTGAGTCAATCAAGGTAGATCGTATAGGAGATAATATTTTTATTCCTAGCGTTATAACAAAATCAGGAAAAAAGATATTAGTAAAAGATGTAGACCATTTAATACGATCCAAGGTTAGAGAACATACATTTGTAAAAGTAAAAAAGAAAAACACATTTTCCATTTTATACGACTATGATGGGAACGGAACAGAAACTAGAGGAGAAGTAATAAAACGAATTATAGACACTATAGGACGAGACTATTATGTTAATGGAAAGTATTTCTCTAAGGTTGGTATTGCAGGCTTAAAGCAATTGACTAATAAATTAGATATTAATGAGTGTGCAACTGTCGATGAGTTAGTTGATGAGATTAATAAATCCGGAACTGTAAAACGAAAAATAAAAAACCAATCAGTATTTGATTTAAGCAGAGAATGTTTGGGATATCCAGAAGCGGATTTTATAACGTTAGTTAATAACATGCGGTTCAAAATAGAAAATTGTAAGGTTGTAAATTTCAATATTGAAAATACTAATTGTTTAAATAACCCGAGTATTGAAACTATATATGGAAACTTCAACCAGTTCGTCTCAATCTTTAATACCGTTACCGATGTCAAAAAAAGATTATTCGAGTGAAATAATATGCGCCTTTGATATAGGTGCAAAAAATCCTGCCAGAACTGTTTTAGAAGTCAAGGATAACTCCGTTAGGGTATTGGATATATCAAAATTAGACTGGAGTTCTGATTGGGAAAGGCGCATAGCTCAAGATTTGTCACAATATGAATACACTACAGTTCTTCTAGAACGTCAGCCTAGAAGGTCACCGTACGTCAAATTTATCTATTTTATTAAAGGCTTTTTATATCATACATCTGCTGCCAAAGTTATTTGCGTCTCACCTGTCATGTCTGGTAATTCATATAGAGATCGAAAAAAGAGATCTGTTGAAGCATTTCTTGATTGGATGGACACATTCGGATTGCGAGACTCCGTTCCGGATAGACGCAAATTAGACGATGTAGCGGATAGTTTCAATTTGGCTATGAGATACGTATTAGATAAATGGAATACTAATTATACACCTTATAATAGGTGTAAATATAGAAATTACATAAAAAAAATGTAATAACGTTAGTAACGCCATTATGGATAATCTATTTACCTTTCTACATGAAATAGAAGATAGATATGCCAGAACTATTTTTAACTTTCATCTAATAAGTTGTGATGAAATAGGAGATATATATGGTCTTATGAAAGAACGCATTTCCTCAGAGGATATGTTTGACAATATAGTATATAATAAAGATATACATCCTGCCATTAAGAAACTAGTTTATTGCGACATCCAACTTACTAAACATATTATTAATCAGAATACGTATCCGGTATTTAACGATTCTTCACAAGTGAAATGTTGTCATTATTTCGATATAAACTCAAATAATAGCAATATTAGCTCTCGTACAGTAGAGATATTTGAGAGTGAAAAGTCATCTCTTGTATCATATATTAAAACTACCAATAAGAAGAGAAAGGTCAATTACGGCGAAATAAAGAAAACTGTACATGGAGGCACTAATGCAAATTACTTTTCCGGTAAAAAGTCTGATGAGTATCTGAGCACTACAGTCAGGTCCAACATTAATCAACCTTGGATCAAAACCATTTCTAAGAGAATGAGAGTAGATATCATTAATCACTCTATAGTAACGCGTGGAAAAAGCTCTATATTACAAACTATAGAAATTATTTTTACTAATAGAACATGTGTGAAAATATTCAAGGATTCTACTATGCACATTATTCTATCCAAGGACAAGGATGAAAAGGGATGTATAAACATGATTGATAAATTATTCTATGTATATTATAATTTATTTCTGTTGTTCGAGGATATCATCCAAAACGATTACTTTAAAGAAGTAGCTAATGTTGTAAACCATGTACTCATGGCTACGGCATTAGATGAGAAATTATTCCTAATTAAGAAAATGGCTGAACACGATGTTTATGGAGTTAGCAATTTCAAAATAGGGATGTTTAACCTGACATTTATTAAGTCGTTGGATCATACCGTTTTCCCCTCTCTGTTAGATGAGGATAGCAAAATAAAGTTTTTTAAGGGGAAAAAGCTCAATATTGTAGCATTACGATCTCTGGAGGATTGTACAAATTACGTGACTAAATCCGAGAATATGATAGAAATGATGAAGGAAAGATCGACTATTTTAAATAGCATAGATATAGAAACGGAATCGGTAGATCGTCTAAAAGAATTGCTTCTAAAATGAAAAAAAACACTGATTCAGAAATGGATCAACGACTCGGGTATAAGTTTTTGGTGCCTGATCCTAAAGCCGGAGTTTTTTATAGACCGTTACATTTCCAATATGTATCGTATTCTAATTTTATATTGCATCGATTGCATGAAATCTTGACCGTCAAGCGGCCACTCTTATCGTTTAAGAATAATACAGAACGAATTATGATAGAAATTAGCAATGTTAAAGTGACTCCTCCAGATTACTCACCTATAATTGCGAGTATTAAAGGTAAGAGTTATGACGCATTAGCCACGTTCACTGTAAATATCTTTAAAGAGGTAATGACCAAAGAGGGTATATCCATCACTAAAATAAGTAGTTATGAGGGAAAAGATTCTCATTTGATAAAAATTCCGCTACTAATAGGATATGGGAATAAAAATCCACTTGATACAGCCAAGTATCTTGTTCCTAATGTCATAGGTGGAGTCTTTATCAATAAACAATCTGTCGAAAAAGTAGGAATTAATCTAGTAGAAAAGATTACAACATGGCCAAAATTTAGGGTTGTTAAGCCAAACTCATTCACTTTCTCGTTTTCCTCCGTATCCCCTCCTAATGTATTACCGACAAGATATCGCCATTACAAGATATCTCTGGATATATCACAATTGGAAGCGTCGAATATATCATCGACAAAGACATTTATAACGGTCAATATTGTTTTGCTGTCTCAATATTTATCTAGAGTGAGTCTAGAATTCATTAGACGTAGTTTATCATACGATATGCCTCCAGAAGTTGTCTATCTAGTAAACGCGATAATAGATAGTGCTAAACGACTTACCGAATCTATTACTGACTTTAATATTGATACATACATTAATGACCTGGTGGAAGCTGAACACATTAAACAAAAATCTCAGTTAACGATTAACGAGTTTAAATATGAAATGCTGCATAACTTTTTACCTCATATGAACTATACACCCGATCAACTAAAGGGATTTTATATGATATCTTTACTAAGAAAGTTTCTCTACTGTATCTACCACACTTCTAGATATCCAGATAGAGATTCGATGGTTTGTCATCGCATCCTAACGTACGGCAAATATTTTGAGACGTTAGCACATGATGAATTAGAGAATTACATAGGTAACATCCGAAACGATATCATGAACAATCACAAGAACAGAGGCACTTACGCAGTAAACATTCATGTACTAACAACTCCTGGACTTAATCATGCATTTTCTAGTCTATTGAGTGGAAAGTTCAAAAAGTCAGACGGTAGTTATCGAACACATCCTCACTATTCATGGATGCAGAATATTTCTATTCCTAGAAGTGTTGGATTTTATCCGGATCAAGTAAAGATTTCAAAGATGTTTTCTGTCAGAAAATACCATCCAAGCCAATATCTTTACTTTTGTTCATCAGACGTTCCGGAAAGAGGTCCTCAGGTAGGTTTAGTATCTCAATTGTCTGTCTTGAGTTCCATTACAAATATACTAACGTCTGAGTATTTGGATTTGGAAAAGAAAATTTGTGAGTATATCAGATCATATTATAAAGATGATATAAGTTACTTTGAAACAGGATTTCCAATCACTATAGAAAATGCTCTAGTCGCATCTCTTAATCCAAATATGATATGTGATTTTGTAACTGACTTTAGACGTAGAAAACGGATGGGATTCTTCGGTAACTTGGAGGTAGGTATTACTTTAGTTAGGGATCACATGAATGAAATTCGCATTAATATTGGAGCAGGAAGATTAGTCAGACCATTCTTGGTTGTGGATAACGGAGAGCTCATGATGGATGTGTGTCCGGAGTTAGAAAGCAGATTAGACGACATGACATTCTCTGACATTCAGAAAGAGTTTCCACATGTCATCGAAATGGTAGATATAGAACAATTTACTTTTAGTAACGTATGTGAATCGGTTCAAAAATTTAGAATGATGTCAAAGGATGAAAGAAAGCAATACGATTTATGTGACTTTCCTGCCGAATTTAGAGATGGATATGTAGCATCTTCACTAGTGGGAATCAATCACAATTCTGGACCCAGAGCTATTCTTGGATGTGCTCAAGCTAAACAAGCTATCTCTTGTCTGAGTTCGGATATACGAAATAAAATAGACAATGGAATTCATTTGATGTATCCAGAGAGGCCAATTGTGATTAGTAAGGCTTTAGAAACTTCAAAGATTGCGGCTAATTGCTTCGGACAACATGTTACTATAGCATTAATGTCGTACAAAGGTATCAATCAAGAGGATGGAATTATCATCAAAAAACAATTTATTCAGAGAGGCGGTCTCGATATTGTTACAGCCAAGAAACATCAAGTAGAAATTCCATTGGAAAACTTTAATAACAAAGAAAGAGATAGGTCTAACGCCTATTCGAAATTAGAAAGTAATGGATTAGTTAGACTGAATGCTTTCTTGGAATCCGGAGACGCTATGGCAAGAAATATCTCATCAAGAACTCTTGAAGATGATTTTGCTAGAGATAATCAGATTAGCTTTGATGTTTCCGAGAAATATACAGATATGTACAAATCTCGCGTTGAACGAGTACAAGTAGAACTTACTGACAAAGTTAAGGTGCGAGTATTAACCATGAAAGAAAGAAGACCCATTCTAGGAGACAAATTTACTACTAGAACGAGTCAAAAGGGAACAGTCGCGTATATCGCAGATGAAACGGAACTTCCGTACGACGAAAATGGTATCACACCAGATGTCATTATTAATTCTACATCCATCTTCTCTAGAAAAACTATATCTATGTTGATAGAAGTTATTTTAACAGCCGCATATTCTACTAAGCCGTACAACAATAAGGGAGAAAACCGACCTGTCTGTTTTCCTAGTAGTAACGAAACATCTATCGATGCATATATGCAATTCGCTAAACAATGTTATGAGTATTCAAATCCGAAATTGTCCGAGGAAGAATTATCGGATAAAATCTTTTGTGAAAAGATTCTCTATGATCCTGAAACGGATAAGCCTTATGAATCCAAAGTATTTTTTGGACCAATTTATTACTTGCGTCTGAGACATTTAACTCAGGACAAGGCAACCGTTAGATGTAGAGGTAAAAAGACGAAGCTCATTAGACAAGCGAATGAGGGACGAAAACGTGGAGGAGGTATCAAGTTTGGAGAAATGGAGAGAGACTGTTTAATAGCACATGGTGCAGCCAATACTATTACAGAAGTTTTAAAAGACTCAGAAGAGGATTATCAAGATGTGTATATTTGTGAAAATTGTGGAGACATAGCAGCACAAATCAAAAGTATTAATACATGTCTTAGATGTTCAAAACTTAATCTCTCTCCTCTCTTAACAAAAATTGATACCACGCACGTATCTAAAGTATTTCTTACTCAAATGAACGCCAGAGGCGTAAAAGTTAAATTAGATTTCGAACGAAGGCCTCCTTCGTTTTATAAACCATTAGATAAAGTTGATCTTAAACCGTCTTTTCTGGTATAATATTGTTTAGTAGATACTCATCAAGATAAGCTAATTCACTAAACATATTATCGGATTCGGTATTGTTACTCGAGAATAGAGTTCGTTATGCTCCTGATATTCGGAAATCTGTGGAGTTTCAGGTTTTGGTGGAAGTGTAACTGCTACTTGGTGGGATACTGAAGGATATTTCAGAGAGTTGTGGATGTTCGGGTTCGACATCCACCGATGGTGTCACGCCACTAATCGGTTCGGTAACGTCTGTGGATGGAGGTGCTACTTCTACAGAACCTGTAGCCTCAGTTGTCAACGGAGATACATATTCAATGCGCGGAAATGTATAATTTGGTAATGGTTTCTCATGTGGATCTTAAGAAGAAGAGGTAAGATATCTACGAAAGATACCGATCACGTTTCTAGTTCTCTTTTGTAGAACTTTAACTTTTTCTTTCTCAGCATCTAGTTGATATTCCGACCTCTTCACGTTTCGCATGGGTTACCTCCGCAGTTTTTACAAGCGATTTCACGTTCCAGATCACGTTCAGCCTTCATACGTCTCTCCCTCTCTCTATCGAGTTTATCAGAGCAGTCTTTCTGAAGGCGATCGAACTCCATAAATTTCTCCAACGCTTTGATTGTTTCCATAGATTTCCGAAGTTTAGCTTCTAGGACGGCGATTCTTTTTTTTTTTTTTTTTTTTTTTTTTTCGAATTCACGGGGTACAACCGTTTCCATTACCACCATCTCTATGTTTCTTTTCTAGATCGGCAATCTTTCTCAATCTTTCTCAACATTTCATCCCCATACCTTTTCATTCCTCGAGTCTATTGTCGTCGAAATATCGTTCCAGCTCCTTTTCGACCTCAATAACTTTAGCACGTTGTTTCATCAAGCTCTCTCTTGTAGTACTATCATTTTTATCTGATTCCCTGACACGTTTAAGATCTTCATGTAATTGAGTCAGCTCTTGACGCAATCTCTTAACTAACTTCCTCTCTTGCTTCTTCGTCATAGTACTTACAATCACTATGGGATCCATTGTTACCACGTCTGTACTCGACGAGCTCACGTTTAAGAGATTCAATTTCCAGTTTGTATCGGTCCATGTCTCCATTGCTACACCACCATTAGATTTACAGGCTGCTAGTTGTCGTTCGAGATCAGAAATACGTGTTTTCTTGGAATGGATTTCGTCGATGTACTTGTCATGATTGGCATCGAAACACTTATTAAGTTCTTTTTTTCAATTCTACGATTTTATTTCTTTCGCGAGTCAATTCCCTCCTGTAGTAACTATCAGTTTTGTCAGATTCACGCTCTCTACGTAGACTTTCTTGTAAGTTACTAATTTGTTCCCTGGCATTACCGAGTTCAGTTTTATATGCCGAATAGAGTTCTGATTCATCCTTTGAGAAGATCTCTAGCGATCGTTCAAGATCCCTGATTCTAGTCTTTAGCCTATTTACCTCCTCAGAAGATGCTCCGTTACCGTTTTTACAATCGTTAAGATGTCTATCAAGATCCATGATTCTATCTCTTTTCCATATCAGCATTGATTTCATTATTACGTTCGCAGTCGTTCAACTGTATTTCAAGATCTGAGATTCTAGATTGTAATCTCTGTAGCATTTCCACGGCATTCACTCAGTTGTCTTTCAAGATCTGAGATTCTAGATTGGAGTCTGCTAATCTCTGTAAGATTTCCTCCTCCGCTCTCGATGCAGTCGGTCAACTTATTCTCTAGTTCTCTAATACGCGAACGCAGTGCATCAACTTCTTGTGTGTCTTCTTGATTGCGTGTGCATTCATCGAGTCTAGATTCGAGATCTCTAACGTGACGTCGTTCTTCCTCAAGTTCTCTGTGTACTACAGAAAGCGTGTCCCTATCTTGTTGATATTTAGCAATTTCTGATTCTAGAGTACTGATTCTACTCACGTATGTACTAATAGTTGTCTTAGCCTTATCAAGATCCTCCTTGTATTTGTCACATTCCTTGATATCCATACGAAGTCTGGACAGTTCCCATTCGACATTACGACGTTTATCGATTTCAGCTCGGAGATCGTCGTCGCGTTGTTTTAGCCACATACGACTAAGTTCAAGTTCTCGTTGACAAGATCCATCTACTTTTCCATCCCTAATAGTATCCAGTTCCTTTTCTAGTTCTGACCGCATTTCTCGTTCCATATCAAGAGATTCTCTCAATTCTCGTATAGTCTTCTTATCAATTTCTGATGAATCTGAACCATCATCTGTCCCATTTTGTTGCATATCCCTGAGTTCTTTGATCTCTGTTGTAAGTCTGTCGATTCTTTCGGTTTTATAAACAGAATCCCTTTCCAAAGTCCTAATCTTACTGAGTTTATCATTAAGTTCTTCATTCAATTCAGTGAGTTTTCTCTTGGCTTCTTCCAAGTCTGTTTTAAACTCTCCATCATTTCCGCATTCTTCCTCGCATTTATCTAACCATTCAATTAGTTTATTAATAACTAGTTGGTAATCAGCGATTCCTATAGCCGTTCTTGTATTTGTGGGAACATAATTAGGATCTTCTAATGGATTGTATGGCTTGATAGCATCATCTTTATCATTATTAGGTGGGGGATGGACAACCTTAATTGGTTGGTCCTCCTTATCTCCTCCAGTAGCATGTGGTTCTTCAATACCAGTATTAGTAATAGGCTTAGACAAATGCTTGTCGTACGCGGGCACTTCCTCATCCATCAAGTATTTATAATCGGGTTCTGTTTCAGAATATTCTTTTCTAAGAGACGCGACTTCAGGAGTTAGTAGAAGAACTCTGTTTCTGTATCTATCAACGCTGGAATCGATACTCAAGTTAAGGATAGCGAATACCTCATCGTCATCATCCGTATCTTCTGAAACGCCATCATATGACATTTCATGAAGTCTAACGTATTGATAAACAGAATCAGATTTAGTATTAAACAGATCCTTGACCTTTTTAGTAAATGCATATGTATATTTTAGATCTCCAGATTTCATAATATGATCGCATGCCTTAAATGTCAATGCTTCCATGATATAGTCTGGAACACTAATGGGTGACGAAAAAGATACAGCACCATATGCTACGTTGATAAATAGATCTGAACCACTAAGTAGATAATGATTAATGTTAAGGAAGAGGAAATATTCAGTATATAGATATGCCTTAGCATCATATCTTGTACTAAACACGCTAAACAGTTTATTGATGTGATCAATTTCCAACAGAACAATTAGAGCGGCAGGAATACCAACAAACATATTACCACATCCGTATTTTCTATGAATATCACATATCATATTAAAAAATCTTGATAGAAGAGCGAATATCTCGTCTGACTTAATGAGATGTAGTTCAGCAGCATAAGTCATAACTGTAAATAGAACATACTTTCCTGTAGTGTTGATTCTAGACTCCACATCAACACCATTATTAAAAATAGTTTTATATACATCTTTAATCTGCTCTCCGTTAATCGTCGAACGTTCTAGTATACGGAAACACTTTGATTTCTTATCTGTAGTTAATGACTTAGTGATATCACGAAGAATATTACGAATTACATTTCTTGTTTTTCTTGAGAGACCTGATTCAGAACTCAACTCATCGTTCCATAGTTTTTCTACCTCAGTGGCGAAATCTTTGGAGTGTTTGGTACATTTTTTAATAAGGTTCGTGACCTCCATTTATTATAAAAAATTTTTATTCAAAACTTAACTACAATCGGGTAATTATAAGATCGTAGATCTCCCATGTGGTGGAATACTACCATCTATCGCATGTTGATGGACAGTAGGTAATGGCCATGGGAACAGTAATGTTTGCATATTTATCTTTCTTGCTAGTATTACTGTATATTGTCCCAATGTTTCAATGTGATGTTCTAACCTATCAACTGCCACTGTATCACAACAATAATGTCCGATGGAATTAAGATTATGATCCAATGTGTTTAATATATGATTATCAAGTCTTATACGATCCGCGTCTTTTTTGACAGGATCAGGCTCTTCTACAGGAAGAAGTTTCGGCCTCTTATGATAGTCATGTCTGGGAAATGGTGGTCTAGGATGAGGATCAGGTATCGGAGTAGGTTTTGGATTATAATCATCATCATCATCATCATCATCATCATCATCATCATCATCTATGATATCATCATCTTCGATATTTATTTTGCTATCTTGATAATGTCCTATATCAGTTGCATTTTCAGCACTCGACTGAATATTAGTACATTCATTGTCTATTATTAACGTATTTCTAAACCCAAAATGTATATGTTGAACATCACTACTATAGTTGATGAGTCTTATAGCATGAATTCGCTTATCGTTATCGGGTTTATCTTCTGTCACCTTAACAATTCCTTTTTTATTAAACTCTGCATAATCATAACCATTTCTATTGTTTGTTCTAATATAAACGAGTATAGCATCATTGCTAAATTTTTCAATAGTATCAAAAACAGAATATCCTAAACCATATAATATATATTCAGGAACACTCAAACTAAATGTCCAGGATTCTCCTAAATACGTAAACTTTAATAGTGCTAAATCATTCAAAAATCTACCGCTTATAGATAGATAGTACATGAATGCGTATAGTAGTCTACCTATCTCTTTATTATGAAAACCGACATTACGATCATATATTTCGTGATATACATGTGACCCGTTTACGTTAAACCATAAATACATGGGTGATCCTATAAACATGAATTTATTTCTAATTCTCAGAGCCATAGTTAATTGACCGTGTAATATTTGTTTACATGCATACTTGATACGATCATTAATAAGATTTTTATCATTGCTCGTTATTTCAGAATCGTATATATAAGGAGTACCATCATGATTCTTACCAGATATTATACAAAATACTATATATAAAATATATTGACCCACGTTAGTAATCATGTAAATGTTTAATGTTTTAAATTTTGTATTTAATGATCCATCATCATATGCTAGCATGGTCTTGTGATATTCATTCTTTAAAATATAATATTGTGTTAGCCATTGCATTGGAGCTCCTAATGGAGATTTTCTATTCTCGTCCATTTTAGGATATGCTTTCATAAAGTCCCTAATAACTTCGTGAATAATGTTTCTATGTTTTCTACTGATGCATGTATTTGCTTCGATTTTTTTATCCCATGTTTCATCTATCATAGATTTAAACGCAGTAATGCTCGCAACATTAACATCTTGAACCATTGGTACAATTCCGTTCCATAAATTTATAATGTTCGCCATTTATATAACTCATTTTTTGAATATACTTTTAATTGAACAAAAGAGTTAAGTTACTCATATGGATGCCGTCCAGTCTGTACATCAATCTTTTTAGCCAGAGATATCATAGCCGCTCTTAGAGTTTCAGCGTGATTTTCCAACCTAAATAGAACTTCATCGTTGCGTTTACAACACTTTTCTATTTGTTCAAACTTTGTTGTTATATTAGTAATCTTTTTTTCCAAATTAGTTAGCCGTTGTTTGAGAGTTTCCTCATTATCGTCTCCATAGGCTTTAACAATTGCTTCGCGTTTAGTCTCTGGATTTTTAGCAGCCTTTGTAGAGAAAAATTCAGTTGCTGGAATTGCAAGATCGTCATCTCCGGGGAAAAGAGTTCCGTCCATTTAAAGTACAGATTTTAGAAACTGACACTCTGTGTTATTTATATTTGGCGCAATACATGGATTATAAATATCGATGTTAATAACATCAGAAAATGTAAAGTCTATACATTGTCGCATCGTGTTAAATTTTCTAATGGATCTAGTATTATTGGGTCCAACTTCTGCCTGAAATCCAAATATGGAAGCGGATACAAAACCGTTTCCTGGATAAACCACACATCTCCACTTTTGCTTTACATCAGAAATTGTGTCATTGACATCTTGAACTCTCCTATCTAATGCCGGTGTTCCACCTATAGATTTTGAATACTCGAATGCTGCATGAGTAGCATTGAATTCCTTAATATTGCCATAATTTTCATATATTGAGTAACTCTGGATAAAAAGTAAACACACCGCAGCCGTCGCTACTACAATAAAAAAAATTGATAGAGAGTTCATTTATAATCTATTAGAAGCTGATAAAATTTTTTTACACGCGTCAGACAATGCTTTAATAAATAGTTCAACATCTACTTTTGTCATATCGAACCGATGGTATGATTCTAACCTAGAATTACATCCGAAAAAGTTGACTATGTTCATAGTCATTAAGTCATTAACGAACAACATTCCAGACTCTGGATTATAAGACGATACTGTTTCGTCACAATCACCCACCTTAATCATGTGATTATGAATATTGGCTATTAGAGTACCTTCTAAGAAATCTATAATATCTTTGAAACACGATTTAAAATCAAACCACGAATATACTTCTACGAAGAAAGTTAGTTTACCCATAGGAGAGATAACTATAAATGGAGATCTAGATACAAAATCCGGATCTATGATAGTTTTAACATTATTATATTCTCTATTAAATACCTCCACATCTAAAAATGTTAATTTTGAAACTATGTCTTCGTTTATTACCGTACCTGAACTAAACGCTATAAGCTCTATTGTTTGAGAACTCTTTAAACGATATTCTTGAAATACATGTAACAAAGTTTCCTTTAACTCGGTCGGTTTATCTACCATAGTTACAGAATTTGTATCCTTATCTATAATATAATAATCAAAATCGTATAAAGTTATATAATTATCGTGTTCAGATTGTGATCTTTTCAAATAGACTAAAAACCCCATTTCTCTAGTAAGTATCTTATGTATATGTTTGTAAAATATCTTCATGGTGGGAATATGCTCTACAGCAGTTAGCCATTCCTCATTGACAGCTGTAGATGTATTATACAAAACTACTCCAATGTTTAACAAGGGCCATTTTACGAGATTATTAAATCCTTGTTTGATAAATGTAGCCAATGCGGGTTCGAGTTCAACGACGATTGAATTCTCTTCCCGTGGATGCTGCATGATGAACGACGGGATGTTGTTGTTCTATTGATTTGGAATTCTTTTTCGACTTTTTGTTTATATTAAATATTTTAAAATTTATGGCTGATAGTAATTCATGTACTACGGATAATGTAGACGTGTATTGCATATCGATATCTTTATTATTAGATAAATTTATCAATAAATGTGAGAAGTTTGCCTCGTTAAGGTCTTCCATTTAAATATTATATAAATATTTGTGTTTGTATTTTATTCGTCTTTTATGGGATAGTTTTTAACTAGTAAAGCTGTAATTACATACTTTGTCCGTAAAACATAAATATAAATACCCGCTTTTATCAAACGTTCCAAAAAGTCGGCAGCTGACATTTTTAACATGACATCTATTTTAAATACACTTAGGTTTTTAGAAAAAACATCATTTTATAATTGTAACGATTCAATAACTAAAGAAAAGATTAAGATTAAACATAAGGGAATGTTATTTGTATTTTATAAGCCAAAGCATTCTACCGTTGTTAAATACTTGTCTGGAGGAGGTATATATCATGATGATTTGGTTGTATTGGGGAAGGTAACAATTAATGATCTAAAGATGATGCTATTTTACATGGATTTATCATATCATGGAGTGACAAGTAGTGGAGCAATTTACAAATTGGGATCGTCTATCGATAGACTTTCTCTAAATAGGACTATTGTTACAAAAGTTAATAACAATTATAACAATTATAACAATTATAACAATTATAATTGTTATAATAATTATAATTGTTATAATTATGATGATACATTTTTTGACGATGATGATTGATCACTATTACACAATTTTGTTTTTGTACTTTCTAATATAGTGTTTAGGTTCTTTTTCATATGAGAATATTGACTTACTAAAATATCTATGTTTAACTTTTGTTCTATAACGTCCTTATCGGCGGTATCGGTACATATACGTAATTCACCTTCACAAAATACGGAGTCTTCGATAATAATAGCCAATCGATTATTGGATCTAGCTGTCTGTATCATATTCAACATGTTTAATATATCCTTTCGTTTCCCCTTTACAGGCATCGATCGTAGCATATTTTCCGCGTCTGAGATGGAAATGTTAAAACTGCAAAAATGCGTAATGTTAGCCCGTCCTAATATTGGTACGTGTCTATAAGTTTGGCATAGTAGAATAATAGACGTGTTTAAATGCCTTCCAAAGTTTAAGAATTCTATTAGAGTATTACATTTTGATAGTTTATCACCTACATCATCAAAAATAAGTAAAAAGTGTGCTGATTTTTTATGATTTTGTGCGACAGCAATACATTTTTCTATGTTACTTTTAGTTCGTATCAGATTATATTCTAGAGCTTCCTGACTACTAACGAAATTAATATGATTTGGCCAAATGTATCCATCATAATCTGGGTTATAAACGGGTGTAAACAAGAATATATGTTTATATTTTTTAACTAGTGTAGAAAACAGAGATAGTAAATAGATAGTTTTTCCAGATCCAGATCCTCCTGTTAAAACCATTCTAAACGGCATTTTTAATAAATTTTCTCTTGAAAATTGTTTTTCTTGAAAACAATTCATAATTATATTTACAGTTACTAAATTAATTTGATAATAAATCAAAATATGGAAAACTAAGGTCGTTAGTAGGGAGGAGAACAACGAAGGCATATCGTGATATAAATAACATTTATTATCATGATGACACCAGAAAACGACGAAGAGCAGACATCTGTGTTCTCCGCTACTGTTTACGGAGACAAAATTCAGGGAAAGAATAAACGCAAACGCGTGATTGGTCTATGTATTAGAATATCTATGGTTATTTCACTACTATCTATGATTACCATGTCCGCGTTTCTCATAGTGCGCCTAAATCAATGCATGTCTGCTAACAAGGCTGCTATTACTGACTCCGCTGTTGCCGTTGCTGCGGCATCATCTACTCATAGAAAGGTTGTGTCTAGCACTACACAATATGATCACAAAGAAAGCTGTAATGGTTTATATTACCAGGGTTCTTGTTATATATTACATTCAGACTATAAGTCATTCGAGGATGCTAAAGCAAACTGCGCTGCGGAATCATCAACACTACCCAATAAATCCGATGTCTTGACTACCTGGCTCATTGATTATGTTGAGGATACATGGGGATCTGATGGTAATCCAATTACAAAAACTACATCCGATTATCAAGATTCTGATGTATCACAAGAAGTTAGAAAGTATTTTTGTACATAAATAAATGAAATCGCTTAATAGACAAACTGTAAGTAGGTTTAGGAAGTTGTCGGTGCCGGCCGCTATAATGATGTTACTCTCAACCATTATTAGCGGCATAGGAACATTTCTGCATTACAGAGAAGAACTGATGCCTAGTGCTTGCGCCAATGGATGGATACAATACGATAAACATTGTTATCTGGATACCAACATTAAAATGTCTACGGATAATGCAGTTTATCAGTGTCGCAAATTACGAGCTAGATTGCCTAGACCTGATACTAGACATCTGAGAGTATTGTTTAGTATTTTTTATAAAGATTATTGGGTAAGTTTAAAAAAGACCAATGATAAATGGTTAGATATTAATAATGATAAAGATATAGATATTAGTAAATTAACAAATTTTAAGCAACTAAACAGCACGACGGATTCTGAGGCGTGTTATATATACAAGTCTGGAAAACTGGTTAAAACAGTATGTAAAAGTACTCAATCTGTACTATGCGTTAAAAGATTCTACAAGTGACAACAAAAAATGAATTAATAGTAAGTCGTTAACGTACGCCGCCATGGACGCCGCGTTTGTTATTACTCCAATGGGTGTGTTGACTATAACAGATACATTGTATGATGATCTCGATATCTCAATCATGGACTTTATAGGACCATACATTATAGGTAACATAAAAATTGTCCAAATAGATGTACGGGATATAAAATATTCCGACATGCAAAAATGCTACTTTAGCTATAAGGGTAAAATAGTTCCTCAGGATTCTAATGATTTGGCTAGATTCAACATTTATAGTATTTGTACAGCATACAGATCAAAAAATACCATCATCATAGCATGCGACTATGATATCATGTTAGATATAGAAGGTAAACATCAACCATTTTATCTATTCCCATCTATTGATGTTTTTAACGCTACAATCATAGAAGCGTATAATCTGTATACAGCTGGAGATTATCATCTGATCATCAATCCTTCAGATAATCTGAAAATGAAATTGTCGTTTAATTCTTCATTTTGTATATCAGACGGCAATGGATGGATTATAATTGATGGGAAATGTAATAGTAATTTTTTATCATAAAAGTTGTAAAGTAAATAATAAAACAATAAATATTGAACTAGTAGTATGTTGTATATTGAGCAATCAGAGATGATGCTGGTACCTCTTATCACGGTGACCGTAGTTGCGGGAACAATATTAGTATGTTATATATTATATATTTGTAGGAAAAAGATACGTACTGTCTATAATGACAATAAAATTATCATGACAAAATTAAAAAAGATAAAGAGTCCTAATTCCAGCAAATCTAGTAAATCAACTGATAGCGAATCAGACTGGGAGGATCACTGTAGTGCTATGGAACAAAACAATGACGTAGATAATATTTCTAGAAATGAGATATTGAACGATGATAGCTTCGCTGGTAGTTTAATATGGGATAACGAATCCAATATCATGGCGCCTAGCACAGAACACATTTACGATAGTGTTGCTGGAAGCACGCTGCTAATAAATAATGATCGTAATGAACAGACTATTTATCAGAATACTACAGTAGTAATTAATGATACAGAGACTGTTGAAATACTTAATGAAGATACCAAACAGATTCCTAGCTATTCTTCCAATCCTTTCGTAAATTATAATAAAACCAGTATTTGTAGCAAGTCAAATCCGTTCATTGCAGAACTCAACAATAAATTTAGTGATAATAATCCGTTTAGGAGAGCACATAGTGACGATTATCTTAATAAGCAACAAGATCATGAATACGATGATATAGAATCATCGGTTGTATCATTGGTCTGATTAGTTTCCTTTTTATAAAATTGAAGTAATATTTAGTATTAATTACCGCCGATGCATTATACAAATATGGAGATATTCCCTGTATTCGGCATTTCTAAAATTAGCAATTTTATTGCTAATAATGACTGTAGATATTATATAGATGTAGAGCATCAAAAAATTATATCTGATGAGATCAATAGACAGATGGATGAAACGGTACTTCTTACCAACATCTTAAGCGTAGAAGTTGTAAATGACAATGAGATGTACCATCTTATTCCCCATAGACTATCGACTATTATACTCTGTATTAGTTCTGTTGGAGGATGTGTTATCTCTATAGATAATGACGTCAATGACAAAAATATTCTAACATTTCCCATTGATCATGCTGTAATCATATCCCCACTGAGTAAATGTGTCGTAGTTAGCAAGGGCCCTACAACCATACTGGTTGTTAAAGCGGATATACCCAGCAAACGATTGGTAACATCGTTTACAAACGACATACTGTATGTAAACAATCTATCACTGATTAATTATTTACCGTCGTCTGTATTCATTATTAGACGAGTCACCGACTATTTGGATAGACACATATGTGATCAGATATTTGCTAATAATAAGTGGTATTCCATTATAACTATCGACGATAAGCAATATCCTATTCCATCAAATTGTATAGGTATGTCTTCTGCCAAGTACATAAATTCGAGCATCGAGCAAGATATTTTGATCCATGTTTGTAACCTCGAGCATCCATTCGACTCAGTCTACAAAAAAATGCAGTCGTACAATTCTCTACCTATCAAGGAACAAATATTGTATGGTAGAATTGATAATATAAATATGAGCATTAGTATTTCGGTGGATTAATAGATTTCTCTAGTATGGGATCATTAATCATCTCTAAATACATCATAAAAAAGCTATTATCAAATACTGTACTGAATGGATTCATTCTTTTCTCTTTTTATGAAACTCTGTTGTATATCTACGGATAAAACTAGAAGCAAAAAATCTGATAGGAAGAATAATGATTATATGGAGGAACACGATTATTATAAAATAACAATAGTTCCTGGTTCCTCTTCCACGTCTACTAGCTCGTGGTATTATACACATGCCTAGTAATAGTCTCTTTGCGTTGACGGAAAGCAGACTAGAAATAACAGGCCAAAATGTTCAGACACCATAATAGTTCCCAACCCAGATAATAACAGAGTTCCATCAACACATTCCTTTAAACTCAATCCCAAACCCAAAACCGTTAAAATGTATCCAGCCAATTGATAGTAGATAATGAGGTGTACAGCACATGATAATTTACACAGTAACCAAAATGAAAACACTTTAGTAATTATAAGAAATATAGACGGTAATGTCATCATCAACAATCCAATAATATGCCTGAGAGTAAACATTGACGGATAAAACAAAAATGCCCCGCATAACTCTATCATGGCAATAACGCAACCAAACACTTGTAAAATTCCTAAATTAGTAGAAAATACAACTGATATCGATGTATAAGCGATTTCGAGGAATAATAAGAACAAAGTAATTCCCGTAAAGATAAACATCAACATTGTTTGGTAATCATTAAACCAATTAGTATGACGTTGAATTAATTTCACAGTATATTTTATTCCAGTATTATCCCCGCATGTATACGTACCTGGTAAGATATCTTTATATTCCATAATCAATGAGACATCACTATCCGATAACGAATGAAGTCTAGCACTAGTATGCCATTTACTTAATATGGTCGTCTTGGAAGTTTTATTATAAGTTAAAATATCATGATTGTCCAATTTCCATCTAATATACTTTGTCGGATTATCTATAATACACGGAATAATGATGGTATCATTACATGCTGTATATTCTATAGTCTTTGTAGATGTTATAACCACAAAAGTACAGAGGTATATCAACAATATTCTAACTCTTAACATTTTTATTTATTTAAAATGATACCTTTGTTATTTATTTTATTCTTATTTTGCTAACGGTATCGAATGGCATAAGTTTGAAACGAGTGAAGAAATAATTTCTACTTACTTAATAGATTATGTGGTAACGGGTGTTATTAATGGGGATGTATATACATTTTCAAATAATGAACTAAACAAAACTGGGTTAACTAATAACAATAATTATATCACAACATCTATAAAAGTAGAGGATAAGGATACATTAGTAGTATGCGGAACCAATAACGGAAATCCCAAATGTTGGAAAATAGACGGTTCATACTACCCAAAACATATAGGTAGAGGATACGATCATCAAAATAGCAAAGTAACGATAATCAGTCACAATGAATGTGTACTATCCGACATAAACATATAAAAAGAAGGAATTAAACGATGGAGAAGATTTGACGGACCATGTGGTTATGATTAAACGAGTTAAGTTTTTTAAGAAGCCTTAGAAGAGAGGCTATTGGGTATGAGAATCCGAAATATTAAACCAGACAACCCCATATAATTTTATAGCTAAGAATGCCGCGAAGAATGGAACTAATAAAAACGGAAATATTTGTAGCACAACGAATAACTCCCAAACTGCATTCATGTTACACTATATAACACTACTTCGGTTAGATGTTTTAGAAAAAATAAATATCACCGTACCGTTTTGTTGTATAAAAATAACAATTAACAATTATCAATTTTTTTCTTTAATATTTTACGTGGTTGACCATTCTTGGTGGTAAAATAATCTCTTAGTGTTGGAATGGAATGCTGTTTAATGTTTCCACACTCATCGTATATTTTGACGTATGCAGTCACATCGTTTACGCAATAGTCAGACTGTAGTTCTATCATGCTTCCTACGTTAGAAGGAGGAACAGTTTTAAAGTCTCTTGGTTTTAATCTATTGTCATTAGTTTTCATGAAATCCTTTGTTTTATCCACTTCACATTTTAAATAAATGTCCACTATACATTCTTCTGTTAATTTTACTAGATCATCATGAGTCATAGAATTCATAGGTTCCGTAGTCCATGGATCCAAACTAGCAAACTTCGCGTATACGGTATCGCGATTAGTGTATACACCAACTGTATGAAAATTAAGAAAACAGTTTAATAAATCTACAGAAATATTTAATCCTCCGTTTGATACAGATGCGCCATATTTATGGATTTCGGATTCACACGTTGTTTGTCTAAGGGGTTCGTCTAGTGTTGCTTCTACATAGACTTCGATTCCCATATATTCTTTATTGCCAGAATCACATACCGATTTATCATACGCTGGTTCACTTGTTTGAAAACTAAATGGTAGTAGATACATCAAAATAATAAATAATAAGTACATTCTGCAATATTGTTATCGTAATTGGAAAATTGGTATTCAAGTGAGCTGGATTATGTGAGTATTGGATTGTATATTTTATTTTATATTTTATATTTTATATTTTATTTTATATTTTATATTTTATTTTATATTTTGTAGTAAGAATAGAATGCTAATGTCAAGTTTATTCGAATAGATGTCTTATTAAAAAACATATATAATAAATAACAATGGCTGAATGGCATAAAATTATCGAGGATATCTCAAAAAATAATAAGTTCGAGGATGCCGCCATCGTTGATTACAAGACTACAAAGAATGTTCTAGCGGCTATTCCTAACAGAACATTTGCAAAGATTAATCCGGGTGAAGTTATTCCCCTCATCACTAATCATAATATTCTAAAACCTCTTATTGGTCAGAAATTTTGTATTGTATATACTAACTCTCTAATGGATGAGAACACGTATGCTATGGAGTTGCTTACTGGGTACGCCCCTGTATCTCCGATCGTTATAGCGAGAACTCATACCGCACTTATATTTTTGATGGGTAAGCCAACAACATCCAGACGTGATGTGTATAGAACATGTAGAGATCACGCTACCCGTGTACGTGCAACTGGTAATTAAAATAAAAAGTAATATTCATATGTAGTGTCAATTTTAAATGATGATGAAATGGATAATATCCATATTGACGATGTCAATAATGCCGGTATTGACATACAGCTCATCGATTTTTAGATTTCATTCAGAGGATATTGAATTATGTTATGGGAATTTGTATTTTGATAGGATCTATAATAATGTAGTAAATATAAAATATATTCCTGAGCATATTCCATATAGATATAATTTTATTAATCGTACGTTCTCCGTAGATGAACTAGATGATAATGTCTTTTTTACACATGGTTATTTTTTAAAACACAAATATGGTTGTTCACTTAATCCTAGTTTGATTGTCTCATTATCAGGAAACTTAAAATATAATGATATACAATGCTCAGTAAATGTATCGTGTCTCATTAAAAATTTGGCAACGAGTACATCTACTATATTAACATCTAAACATAAGACTTATTCTCTATATCGGTCCATGTGTATTGCTATAATAGGATACGATTCTATTATATGGTATAAATATATAAATGACAGGTATAATGACATCTATGATTTTACTGCAATATGTATGCTAATAGCGTCTACATTGATAGTGATCATATACGTGTTTAAAAAAATAAAAATGAACTCTTAATTATGTTATACTATTAGAAATGGATAAAATCAAAATTACGATTGATTCAAAAATTGGTAATGTTGTTACCATATCGTATAACTTGGAAAAGATAACTATTGATGTCACGCCAAAAAAGAAAAAAGAAAAGGATGTATTATTAGCGCAATCAGTTGCTGTCGAAGAGGCAAAAGATGTCAAGGTGGAAGAAAAAAATATTATCGATATTGAAGATGACGATGATATGGATATAGAAAACACGTAATACGATCTATAAAAATAAGTATTAAATACTTTTTATTTACGGTACTCTTGTAGTGGTGATACCACTAATCGATTATTTTTTTTAAAAAAATACTTATTCTGATTCTTCTAGCCATTTCCGTGTTCGTTCGAATGCCACATCGACGTCAAAAATAGGGGAGTAGTTGAAATCTAGTTCTGCATTGTTGGTACGCACCTCAAATGTAGTGTTGGATATCTTCAACGTATAGTTGTTGAGTATTGATGGTTTTCTAAATAGAATTCTCTTCATATCATTCTTGCACGCGTACATTTTTAGCATCCATCTTGGAATCCTAGATCCTTGTTCTATTCCCAATGGTTTCATCAATAGAAGATTAAACATATCGTAAGAACACGATGGAGAGTAATCGTAGCAAAAGTAAGCATTTCCTTTAATCGCAGATCCCGGATACTGGATATATTTTGCAGCCAACACGTGCATCCATGCAACATTTCCTACATATACCCGGCTATGCACAGCGTCATCATCGACTGTACGATACATAATGTTACCGTGTTGCTTACATTGCTCGTAAAAGACTTTCGTCAATTTGTCTCCTTCTCCGTAAATTCCAGTGGGTCTTAGGCAACAAGTATACAATTTTGCGCCATTCATGATTACGGAATTATTGGCTTTCATAACCAGTTGCTCGGCCATACGTTTACTTTTTGCGTATACATGTCCTGGTGATATATCATAAAGGGTATGCTCATGACCGATGAATGGATTACCGTGTTTATTTGGTCCTATTGCTTCCATGCTACTAGTATAGATCAAATACTTGATTCCTAGGTCCACACAAGCTGCCAATATAGTCTGTGTTCCATAATAGTTTACTTTCATGATTTCATTATCAGTGTATTTTCCAAATACATCCACTAGAGCAGCCGTATGAATAATCAGATTTACCCCATCTAGCGCTTCTCTCACCTTATCAAAGTCGTTTATATCACATTGTATATAGTTTATAACCTTAACTTTCGAGGTTATTGGTTGTGGATCTTCTACAATATCTATGACTCTTATTTCTTGAACATCATCTGCGCTAATTAAAAGTTTTACTATATACCTGCCTAGAAATCCGGCACCGCCAGTAACCGCGTACACGGCCATTGCTGCCACTCATAATATCAGACTACTTATTCTATTTTACTAAATAATGGCTGTTTGTATAATAGACCACGATAATATCAGAGGAGTTATTTACGTTGAACAAGTCCATGGAAAAGATAAAGTTTTAGGATCAGTTATTGGATTAAAATCCGGAACGTATAGTTTGATAATTCATCGTTACGGAGATATTAGTCGAGGATGTGATTCCATAGGCAGTCCAGAAATATTTATCGGTAACATCTTTGTAAACAGATATGGTGTAGCATATGTTTATTTAGATACAGATGTAAATATATCTACAATTATTGGAAAGGCGTTATCTATTTCAAAAAATGATCAGAGATTAGCGTGTGGAGTTATTGGTATTTCGTACATAAATGAAAAGATAATACATTTTCTTACAATTAACGAGAATGGCGTTTGATATATCAGTTAATGCGTCTAAAACAATAAATGCATTAGTTTACTTTTCTACTCAGCAAGATAAATTAGTCATACGTAATGAAGTTAATGATATACACTACACTGTCGAATTTGATAGGGACAAAGTAGTTGATACGTTTATTTCATATAATAGACATAATGACTCCATAGAGATAAGAGGGGTGCTTCCAGAGGAAACTAATATTGGTCGCGTGGTTAATACGCCGGTTAGTATGACTTACTTGTATAATAAGTATAGTTTTAAACCGATTTTAGCAGAATATATAAGACACAGAAATACTATATCCGGCAACATTTATTCGGCATTGATGACGCTAGATGATTTGGTTATTAAACAGTATGGAGACATTGATCTATTATTTAATGAGAAACTTAAAGTAGACTCCGATTCGGGACTATTTGACTTTGTCAACTTTGTAAAGGATATGATATGTTGTGATTCTAGAATAGTAGTAGCTCTATCTAGTCTAGTATCTAAACATTGGGAATTGACAAATAAAAAGTATAGGTGTATGGCATTAGCCGAACATATAGCTGATAGTATTCCAATATCTGAGCTATCTAGACTACGATACAATCTATGTAAGTATCTACGCGGACACACTGATAGCATAGAGGATGAATTTGATCATTTTGAAGACGATGATTTGTCTACATGTTCTGCCGTAACCGATAGGGAAACGGATGTATAATTTTTTTTATAGTATGAAGGATATGATGGATATGATGATATGATGGATATGATGATATGATGGATATGATGGATATGATGGATATGATGGATATGATAAAAAAATATAATTGTTGTATCCATTCCCATTCAAATCACCTTATATGATTCTGTAACACAATGAAGGAGTCTCATAGATATATAGAGGTCAGATACTGGTTTGATAAACTTTTTATTCCACATGAGCATGTTTGACTTATGGTTAGACACACATACTTTAACAAATCACTGAAAATTGGAGTTAGGTATTCCTCTCAGAATCAGTTGCCGTTCTGGAACATTAAATGTATTTTTTATGATATACTCCAACGCATTTATGTGGGTATACAACAAGTCATTAATAATGAGTATTTCCAAGAGTTTTAGTTGTCTAGTATTTAACAAGAGAAGAGATTTCAACAGACTGTTTATGAACTCGAATACCGCCTCATTGTCGCTTATATTGATGACATGACATCGAATTCCCAATATCAATCTCATCAGTGATGAGTAGCTCAATCTTGTTATCGGGATCCAATTTCTAAAGATGTCATTAAACCCTCGATCGTGAATGGATTTATCATCATCGTTTTTATGTTGGACATGAGCTTAGTCCGTTTGTCCACATCTATATACGATGATTTCTGAATTATTTCATATATCTCTCGTTAACTCCAGGAACTTGTCAGGGATCTAACTTTAATATGTTCTCGTCTAAGAGATGAAAATCTTTGGATGGTTGCATGTGACTTTTCTCTAAAGGATGATGTTACCCGATCCTCTCTTAAATGACTCCATCTTATCCTTGGACAAGATGGACAGTCTATTTTCCTTAGATGGTTTAATATTTTTTACCCATGATCTATAAAGGTAGACAGACCTAATCGTCTCGGATGACCATATATTATTTTCAGTTTTATTATACGCATAAATTGTAAAAAATATGTTAGGTTTACGAAAATGTCTCGTGGGGCATTAATCGTTTTTGAAGGATTGGACAAATCTGGAAAAACAACACAATGTATGAACATCATGGAATCTATACCGGCAAACACGATAAAATATCTTAACTTTCCTCAGCGATCCACAGTCACTGGAAAGATGATAGATGACTATCTAACTCGTAAAAAAACCTATAATGATCATATAGTTAATCTATTATTTTGTGCAAATAGATGGGAGTTTGCATCTTTTATACAAGAACAACTAGAACAGGGAATTACTTTAATAGTTGACAGATACGCGTTCTCTGGAGTAGCGTATGCCACCGCTAAAGGCGCGTCAATGACTCTCAGTAAGAGTTATGAATCTGGATTGCCTAAACCCGACTTAGTTATATTCTTGGAATCTGGTAGCAAAGAAATTAATAGAAACATCGGCGAGGAAATTTATGAAGATGTTGAATTCCAACAAAAGGTATTACAAGAATATAAAAAAATGATTGAAGAAGGAGATATTCATTGGCAAATTATTTCTTCTGAATTCGAGGAAGATGTAAAGAAGGAGTTGATTAAGAATATAGTTATAGAGGCTATACACACGGTTACTGGACCAGTGGGGCAACTGTGGATGTAATAAAATGAAATTACATTTTTATAAATAGATGTTAGTACAGTGTTATAAATGGATGAAGCATATTACTCTGGCAACTTGGAATCAGTACTCGGGGATACGTGTCCGATATGCATACCGAACTCGCATCAATATCTCAATTAGTTATTGCCAAGATAGAAACTATAGATAATGATTATTAAACAAGGACATTGTAAATTTTATCATGTGTAGATCAAACTTGGATAATCCATTTATCTCTTTCCTAGATACTGCATATACTATCATAGATCAAGAGATCTATCAGAACGAGTTGATTAATTCATTAGACGATAATGAAATTATCGATTGTATAGTTAACAAGTTTATGAGCTTTTATAAGGATAACCTAGAAAATATGGTAGATGCTATCATTACTCTAAAATATTATAATTAATAATCCAGATTTTAAAACTACGTATGTGGAAGTACTCGGTTCCAGAATAGCTGATATAGATATTAAACAAGTGATACGTAAGAATATAATACAATTGTCTAATGATCCGCGAACGATATTTGTGAAAATATTAAAAAAAAATACTTTTTTTATTAAATGACGTCTCTTCGCGAATTTAGAAAATTATGCTGTGATATATATCACGCATCAGGATATAAAGAAAAATCTAAATTAATTAGAGACTTTATAACAGATAGAGATGATACCGATACATATTTGATCATTAAGCTATTGCTTCCCGGATTAGACGATAGAATGTATAACATGAACGATAAACAAATTATAAAATTATATAGTATAATATTTAAACAATCTCAGGAAGATATGCTACAAGATTTAGGATACGGATATATAGGAGACACTATTAGGACTTTCTTCAAAGAGAACACGGAAATCCGTCCACGAGATAAAAGCATTTTAACTTTAGAAGAAGTGGATAGTTTTTTAACTACGTTATCATCAGTAACTAAAGAATCACATCAAATAAAATTATTGACTGATATAGCATCTGTTTGTACATGTAATGATTTAAAATGTGTAGTCATGCTTATTGATAAAGATCTAAAAATTAAAGCGGGTCCTCGGTACGTGCTTAACGCTATTAGTCCTCATGCCTATGATGTTTTTAGAAAATCTAATAACTTGAAAGAGATAATAGAAAATGCAGCTAAACAAAATCTAGACTCTATATCTATTTCTGTTATGACTCCAATTAATCCCATGTTAGCGGAATCATGTGATTCTGTCAATAAGGCGTTTAAAAAATTTCCATCAGGAATGTTTGCGGAAGTCAAATACGATGGTGAAAGAGTACAAGTTCATAAAAAAAATAACGAGTTTGCATTCTTTAGTAGAAACATGAAACCAGTACTCTCTCATAAAGTGGATTATCTCAAAGAATACATACCGAAAGCATTTAAAAAAGCTACGTCTATCGTATTGGATTCTGAAATTGTTCTTGTAGACGAACATAATGTACCGCTACCGTTTGGAAGTTTAGGTATACACAAAAAGAAAGAATATAAAAACTCTAACATGTGTTTGTTCGTATTTGACTGTTTATACTTTGATGGATTCGATATGACAGACATTCCATTGTATGAACGAAGATCTTTTCTCAAAGATGTTATGGTCGAAATACCCAATAGAATAGTATTCTCAGAGTTGACGAATATTAGTAACGAGTCTCAGTTAACTGATGTATTAGATGATGCACTAACGAGAAAATTAGAAGGATTGGTCTTAAAAGATATTAATGGCGTATACGAACCGGGAAAGAGAAGATGGTTAAAAATAAAGCGAGACTATTTGAACGAGGGTTCCATGGCAGATTCTGCCGATTTAGTAGTACTAGGTGCCTACTATGGTAAAGGAGGAAAGGGTGGTATCATGGCAGTCTTTCTAATGGGTTGTTACGACGATGAATCCGGTAAATGGAAGACGGTAACTAAATGTTCCGGTCACGATGATAATACGTTAAGGGTTTTGCAAGACCAATTAACGATGGTTAAAATTAACAAGGATCCCAAAAAAATTCCAGAGTGGTTGGTAGTTAATAAAATCTATATTCCCGATTTTGTAGTAGATGATCCGAAACAATCTCAGATATGGGAAATTTCAGGAGCAGAGTTTACATCTTCCAAGTCACATACAGCGAATGGAATATCGATTAGATTTCCTAGATTTACTAGGATTAGAGAAGATAAAACGTGGAAAGAATCTACTCATCTAAACGATTTAGTAAACTTGACTAAATCTCTTAATAGTTACATATAAACTGAAAAATAAAATAACACTATTTTAGTTGGTAGTCGCCATGGATGGTGTTATCGTATACTGTCTAAATGCGTTAGTAAAACATGGCGAGGAAATAAATCATATAAAAAATGATTTCATGATTAAACCATGTTGTGAAAGAGTTTGTGAAAAAGTCAAGAACGTTCACATCGGCGGACAATCTAAAAACAATACAGTGATTGCAGATTTGCCATATCTGGATAATGCTGTATCAGATGTATGCAAATCAATATATAAAAAGAATGTATCAAGAATATCCAGATTTGCTAATTTGATAAAAATAGATGACGATGACAAGACTCCTACCGGCGTATATAATTATTTTAAACCTAAAGATGCTATTCCTGTTATTATATCCATAGGAAAGGATAAAGATGTCTGTGAACTATTAATCTCATCTGATAAAGCGTGTGCGTGTATAAAGTTAAATTTATATAAAGTAGCCATTCTTCCCATGGATGTTTCCTTTTTTACCAAAGGAAATGCATCATTGATTATTCTCCTGTTTGATTTCTCTATCGATGCGGCACCTCTCTTAAGAAGTGTAACCGATAATAATGTTATTATATCTAGACACCAGCGCCTACATGACGAGCTTCCGAGTTCCAATTGGTTCAAGTTTTACATAAGTATAAAGTCCGACTATTGTTCTATATTATATATGGTTGTTGATGGATCTATGATGTATGCGATAGCTGATAATAGAACTCACGCAATTATTAGCAAAAATATATTAGACAATACTACGATTAACGATGAGTGTAGATGCTGTTATTCTGAACCACAGATTAGGATTCTTGATAGAGATGAGATGCTCAATGGATCATCGTGTTATATGAACAGACATTGTATTATGATGAATTTACCTGATGTAGGCGAATTTGGATCTAGTATGTTGGGGAAATATGAACCTGACATGATTAAGATTGCTCTTTCGGTGGCTGGTAATTTAATAAGAAATCGAGACTACATTCCCGGGAGACGAGGCTATAGCTACTACGTTTACGGTATAGCCTCTAGATAATTTTTTTTAAGCACGAAATAAAAACATAATTTTAAACAATCTATTTCATACTATTTTGTGTGCTCACCATGAACATAAAGATAGATATATTAGTATTTCTGGTGATAAATTTACGGCGACTGCTAGGAGGGAAAATGAAGAAAGAAAAAATATCTACCTCTCCAAAAAGAAAAACTACTGATGTTATCAAACCTGATTATCTTGAGTACAATGACTTGTTAGATAGAGATGAGATGTCTACTATTCTAGAGGAATATTAGGCCTTAGAATAAAATATGGACGACTCTTAACGAAATTAGAAAATTCGATAATGATGTTGAAGAACAATTCGGTACTATAGAAGAACTCAAGCAGAAGCTTAGATTAAATTCTGAAGAGGGAGCAGATAATTTTATAGATTATATAAAGGTACAAAAACAGGATATCATCAAACTTACTGTATACGATTGCATATATCTATGATAGGATTGTGTGCGTGCGTGGTAGATGTTTGGAGAAATGAGAAACTGTTTTCTAGATGGAAATATTGGTTACAAGCGATTAAACTGTTTATTGATGATCACATGCTTGATAAGATAAAATCTATTGTAGAATAGACTAGTGTATGTGGAAATGTCATAGAAAGTTAAAAGTTAATGAGAGCAAAAATATATAAGGTTGTATTCCATATTTGTTATTTTTTTCTGTAATAGTTAGAAAATACATTCGATGGTCTATCTACCAGATTATTATGTGTTATAAGGTACTTTTCTCATAATAAACTAGAGTATGAGTAAGATAGTGTTTTTCAAAAACATATAAATCTAAAATTGATGGATGAGATATACAGCTATTAATTTCGAAAATATATTTTAATCTGATAACTTTAAACATGGATTTTTGATGGTGGTTTAAGTTTAAAAAAGATTTTGTTATTGTAGTATGATAATATCAAAAAGATGGATATAAAGAATTTACTGACTACATGTACTATTTTACATTACTACATTGGCTACGGCATATATACCTATTTCGTCACTTCCACACGCTCCGGTAAACGGGTGTCATGTGACGAGGGAGAATCTTGATAAGAGGCATAATCAATGTTGTAATCCGATGTCCACCTGGAGAATTTGCCAAGGTCAGATGTAGAGTTGGTAGTGATAACACAAAATGTGAACACTGCCCACCTCATACATATACCGCAATCCCCAATTATTCTAATAGATGTCATCAATGTAGAAAATGCCCAACAGGATCATTTGATAAGGTAAAGTGTACCGGAACACAGAACAAATGTTCGTGTCATCCTGGTTGGTATACGCTACTGATTCTTCACAGACTGAAGATTGTCGAGATTTGTGTACCAAAAAAGGAGATGTCCATGCGGATACTTTGGTGGAATAGATGAAGGAAATCCTATTTGTAAATCGTGTTGTGTTGGTGAATATTGCGACTACCTACGTAATTATAGACTTGATCCATTTCCTCCATGCAAACTATCTATCTAAATGTAATTAATTATGATTTTGATGATAATGTTACCATACATTATATCACTACTTGGTTAGTGTGTATTATTTAGTATGGAAGACCTATTAATAATTACTTATCTTTTGACGATCTTGTTATAATTATAATATAAAAATACTTATGACATAGTAACTCATAATTGCTGACGCGATAAATTCGTAATAATCTGTTTTGTTCAAATTTTTATAAGGAATCTACAGGCATAAAAATAAAAATATAATCTATAATATACTCTTACAACGCCATCATGAATAGCAGTGAATTAATTGCTGTTATTATGGATTTAGAAATAGTGGACGATTTTGTGATATTAATATAGTTATTAATGATGAAAGGATAAACGCGCATAGACTCATCCTATCTGGAGCCTCCGAATATTTTTTCCATTCTGTTTTCCAATAATTTTATCGATTCTAATGAATACGAAGTTAATCTAAGTCATTTAGATTATCAAAGTGTTAACTATTTGATCGATTACATTTATGGGATACCTTTGAGCCTAACTAACAATAACGTGAAATATATTCTTTCAACCGCTGATTTTTTTACAAATTGGATCTGTCATTACTGAGTGCGAAAAATACATACTTAAAAATCTTTGTTTTAGAAACTGTATCGATTTCTACATATACGCTGATAAATATAATAACAAGAAAATAGAATTAGCATCGTTTAACACAATATTACGAAATATTTTGAGACTCATCAACAATGAAAACTTTAAATACTTAACAGAGGAATCAATGATAAAAATTTTAAGCGATGATATGTTATATATAAAAAATGAGGATTTCACCCCACTGATTCTCATTAAATGGTTAGAGAGTACACCAACCATGTACCGTCGAGTTACTTAGATGCCTCAGAATATCATTTCTTTCCCCACAAGTTATAAAATCACTTTATAGTCATCGACTGGTTAGTTCAATCTACGAATGTATAACATTCTTAAACAATATAGCATTCTTGGATAAATCATTTCCTAGATACCATATCATCGAGTTGATATCTATCGGTATAAGTAATTCACATGATAAGATTTCCATAAACTGCTACAATCATAAAAAAATTCATGGGAAATGATATCTTCACGTAGATATAGGTGTAGTTTCGCAGTGACCGTCCTGGATAATATTATCTATATGATGGGTGGATATGATCAGTCCCTGTATAGAAGTTCAAAGGTTATAGCGTACAATACATGTACTAATTCTTGGATATATGATATACCAGAGCTAAAAATATCATCGTTCTAATTGCGGAGGAGTTGCCAATGACGAATACATTTATTGTATAGGCGGTATACGCGATCAGGAGTCATCGTTGATATCTAGTATCGATAGATGGAAGCCATCAAAACCATATTGGCAGAAGTATGCTAAAATGTGCGAACCAAAATGTGATATGGGGTTGCGATTTTAAACGGATTAATATATGTCATAGGTGGAGTCGTTAAAGGTGACACACATATACCAACGCACTAGAGAGTTTATCAGAAGATGGATGGATGAATCATCAACGTCTTCCAATAAAAATGTCCAATATGTCGACGATTGTTCATGCTGGAAAGATTTATATATCTAGAGGTTACAACAATAGTAGTGTAGTTAATGTAATATCGAATCTAGTCCTTAGCTATAATCCGATATATGATGAATGGACCAAATTATCATCATTAAATATTCCTAGAATTAATCCTGCTCTATGGTCAGTGTATAATAAATTATATGTAGGAGGAGTAATATCTGATGATGTTCAAACTAATACATCTGAAACATACGATAAAGAAAAAGATTGTTGGACATTGGATAATGGTCACTTGTTACCACATAATTATATAATGTATAAATGCGAACCGTTTAAACATAGATATCCATTGGAAAAAACACAGTACACGAATGATTTTCTAAAGTATTTGGAAAGTTTTATAGGTAGTTGATAGAACAAAATACATAATTTTGTAAAAATAAATCACTTTTTATACTAATATGACACAATTACCAATACTTTTGTTACTAATATCATTAGTATACGCTACACCTTCTCCTCAGACATCTAAAAAAATAGGTGATGATGCAACTATATCATGTAGTCGAAATAATACAAATTACTACGTTGTTATGAGTGCTTGGTATAAGGAGCCCAATTCCATTATTCTCTTAGCTGCCAAAAGCGACGTCTTGTATTTTGATAATTATACCAAGGATAAAATATCTTACGACTCTCCATACGATGATCTAGTTACAACTATCACAATTAAATCATTGACTGCTGGAGATGCCGGTACTTATATATGTGCATTCTTTATGACATCGACTACAAATGATACTGATAAAGTAGATTATGAAGAATACTCCATAGAGTTGATTGTAAATACAGATAGTGAATCGACTATAGACATAATACTATCTGGATCTACACCAGAAACTATTTCTGAGAAACCAGAGGATATAGATAATTCTAATTGCTCGTCTGTATTCGAAATCACGACTCCGGAACCAATTACTGATAATGTAGACGACCATACAGACACCGTCACATACACTAGTGATAGCATTAATACAGTAAATGCATCATCTGGAGAATCCACAACAGACGAGATTCCGGAACCAATTACTGATAAAGAAGAAGATCATACAGTAACAGACACTGTCTCATACACTACAGTAAGTACATCATCTGGAATTGTCACTACTAAATCAACCACCGATGATGCGGATCTTTATGATACATACAATGATAATGATACAGTACCGCCAACTACTGTAGGTGGTAGTACAACCTCTATTAGCAATTATAAAACCAAGGACTTCGTAGAAATATTTGGTATTACCACATTAATTATATTGTCAGCAGTGGCGATTTTCTGTATTACGTATTATATATGTAATAAACACCCACGTAAATACAAAACAGAGAACAAAGTCTAGATTTTTGACTTACATAAATATCTGGGATAATAAAATCTATCATATTGAGAGGACCATCTGGTTCAGGAAAGACAGCCATAACCAAAAGACTGTTAAAAGACTATGGGAATATATTTGGATTTGTGGTGTCCCATACCACTAGATTTCCTCGTCCTATGGAACGAGAAGGTGTTGATTACCTTACGTTAACAGAGAGGCCATCTGGAAGGGAATAGCCGCCGGAAACTTTCTAGAACATACTGAGTTTTTAGGAAATATTTACGGAACTTCTAAAACAGCTGTAAATACAGCGGTTATTAATAATCGTATTTGCGCGATGGATTTAAACATCAACGGTGTTAGAAGTCTTAAAAATACTTACCTAATGCATTACTTGGGTATATAAGACCTACCTCTCTTAAAATGGTTGAGACCAATCTTCGTCGTAGAAACACTGAAGCGGACGACGAATCTCATCGTCGCGTGATGTTGGCAAAAAACGGATATGGATGAGGTCAACGAAGCAGGTCTATTCGACACTATTATTATTGAAGATGATGTGAATTTAGCATATAGTAAGTGTTAATTCAGATACTACAGGACCGTATTAGAATGTATTTTAACACTAATTAGAGACTTAAGATTTGACTTAAAACTTGATAATTAATAATATAACTCGTTTTTATATGTGGCTATTTCAACGTCTAATGTATTAGTTAAATATTAAAACTTACCACGTAAAACTTAAAATTTAAAATGGTATTTCATTGACAGATCATACATTATGAAGTTTCAAGGACTTGTGTTAATTGACAATTGCAAAAATCAATGGGTCGTTGGACCATTAATAGGAAAAGGTGGATTCGGTAGTATTTATACTACTAATGACAATAATTATGTAGTAAAAATAGAGCCCAAAGCTAACGGATCATTATTTACCGAACAGGCATTTTATACTAGAGTACTTAAACCATCCGTTATCGAAGAATGGAAAAAATCTCACAATATAAAGCACGTAGGTCTTATCACATGCAAGGCATTTGGTTTATACAAATCCATTAATGTGGAATATCGATTCTTGGTAATAAATAGATTAGGTGCAGATCTAGATGCGGTGATCAGAGCCAATAATAATAGACTACCAGAAAGGTCGGTGATGTTGATCGGAATCGAAATCTTAAATACCATACAATTTATGCACGAGCAAGGATATTCTCACGGAGATATTAAAGCGAGTAATATAGTCTTGGATCAAATAGATAAGAATAAATTATATCTAGTGGATTACGGATTGGTTTCTAAATTCATGTCTAACGGCGAACATGTTCCATTTATAAGAAATCCAAATAAAATGGATAACGGTACTCTAGAATTTACACCTATAGATTCGCATAAAGGATACGTTGTATCTAGACGTGGTGATCTAGAAACACTTGGATATTGTATGATTAGATGGTTGGGAGGTATCTTGCCATGGACTAAGATATCTGAAACAAAGAATTCTGCATTAGTAAGTGCCGCAAAACAGAAATATGTTAACAATACTGCGACTTTGTTAATGACCAGTTTGCAATATGCACCTAGAGAATTGCTGCAATATATTACCATGGTAAACTCTTTGACATATTTTGAGGAACCCAATTACGACGAGTTTCGTCGAGTATTAATGAATGGAGTTATGAAAAATTTTTGTTGATAAAAAAATTAAAAAAATAACTTAGTTATTATCACTCTCGTGAGTACAATAGAAACATGGCGATGTTTTACGCACACGCTTTCGGTGGGTACGACGAGAACCTTCATGCATTTCCTGGAATATCATCGACGGTTGCCAATGATGTCAGGAAATATTCTGTTGTGTCAGTTTATAATAAAAAGTATAACATTGTAAAAAACAAATATATGTGGTGTAACAGTCAAGTGAACAAGAGATATATTGGAGCACTACTGCCTATGTTTGAATGCAATGAATATCTACAAATTGGAGATCCAATCCATGATCTAGAAGGAAATCAAATCTCTATTGTCACATATCGCCACAAAAACTACTATGCTCTAAGTGGAATTGGGTACGAGAGTCTAGACTTGTGTTTGGAAGGAGTAGGGATTCATCATCACGTACTTGAAACAGGAAACGCGGTATATGGAAAAGTTCAACATGAGTATTCTACTATCAAAGAGAAGGCCAAAGAAATGAATGCACTCAAACCAGGACCTATCATCGATTACCACGTCTGGATAGGAGATTGTGTCTGCCAAGTTACTACTGTAGACGTGCATGGAAAGGAAATTATGAGAATGAGATTCAAAAGGGGTGCGGTGCTTCCGATTCCAAATCTGGTAAAAGTTAAAGTTGGGGAGGAAAATGATACAATAAATCTTTCCACTTCCATATCAGCTCTCCTAAATTCCGGTGGCGGCACCATCGAGGTAACATCTAAGGAAGAACGTGTAGATTATGTACTCATGAAACGTTTGGAATCTATACATCATCTGTGGTCTGTAGTGTATGATCATCTTAATGTTGTGAATGGCGAAGAACGATGTTATGTACATATGCATTCATCTCATCAAAGTCCTATGCTGAGTACTGTAAAAACAAATTTGTACATGAAGACTATGGGAGCATGTCTTCAAATGGACTCCATGGAAGCTCTAGAGTATCTTAGTGAACTGAAGGAATCAGGTGGGCGGAGTCCCAGACCAGAATTGCAGAAATTTGAATATCCAGATGGAGTGAAAGACACTGAATCAATTGAGAGATTGGCAGAGGAGTTCTTCAATAGATCAGAACTTCAGGCCGGTGAATCAGTCAAATTTGGTAATTCTATTAATGTTAAACATACATCTGTTTCAGCTAAGCAACTAAGAACACGTATACGACAGCAGCTTCCTTCTATACTCTCATCTTTTGCCAACACAAAGGGTGGATATTTGTTCATTGGAGTTGATAATAATACACACAAAGTAATTGGATTCACGGTGGGTCATGACTACCTCAAACTGGTAGAGAGTGATATAGAAAAGTATATCCAAAAACTTCCTGTTGTGCATTTCTGCAAGAAAAAAGAGGACATCAAGTACGCATGTAGATTCATCAAGGTGTATAAACCTGGTGATGAGACTACCTCGACATATGTGTGCGCAATCAAAGTGGAAAGATGCTGCTGTGCTGTGTTTGCGGATTGGCCAGAATCATGGTACATGGATACTAGTGGTAGTATGAAGAAGTATTCTCCAGATGAATGGGTGTCACATATAAAATTTTAATTAGGGTAAGGTAAAACTATATATAATAACTAACAATTTGTGTATCATATAGACAATTAATTAGGTAACTGTTATCTCTTTTTAACTAACTAACTAACTAACTAACTCTTATATACTATTAATAATACATCTATTAATCATTGATTAGCTTATTGCTTTAATTGTTTTTGTAAACTAACACTGTTCATTGAAAAGGGATAACATGTTACAGAATATAAATTATATATGGATTTTTTTAAAAAGGAAATACTTGACTGGAGTATATATTTATTTCTTCATTACATAACACGTCTGTGTTCTAATTCTTCCAATTCTTCCACATCTCATATAATACAGGAATATAATCTTGTTCGAAAATATGAGAAAGTGGATAAAACAATAGTTGATTTTTTATCTAGGTGGCCAAATTTATTCCATATTTTAGAATATGGGGAAAATATTCTACATATTTATTTTATAGATGCTGCTAATACGAATATTATGATTTTTTTTCTAGATAGAGTATTAAATATTAATAAGAACCGTGGGTCATTTATACATAATCTCGGGTTATCATCCATTAATATAAAAGAATATGTATATCAATTAGTTAATAATGATCATCTAGATAATAGTATAAGACTAATGCTTGAAAATGGACGTAGAACAAGACATTTTTTGTCTTATATATTGGATACAGTTAATATCTATATAAGTATTTTAATAAATCATAGATTTTATATAGATGCCGAAGACAGTTACGGTTGTACATTATTACATAGATGTATATATAACTATAAGAAATCAGAATCAGAATCATATAATGAATTAATTAAGATATTGTTAAATAATGGATCAGATGTAGATAAAAAAGATACGTACGGAAACACACCGTTTATCCTATTATGTAAACACGATATCGACAACGCGGAATTGTTTGAGATATGTTTAGAGAATGCTAATATAGACTCTGTAGACTTTAATGGATATACACCTCTTCATTATGTCTCATGTCGTAATAAATATGATTTTGTAAAGTTATTAATTTCTAAAGGAGCAAATGTTAATGCACGTAATAGATTCGGAACTACTCCATTTTATTGTGGAATTATACACGGTATCTCGCTTATAAAACTATATTTGGAATCAGACACAGAGTTAGAAATAGATAATGAACATATAGTTCGTCATTTAATAATTTTTGATGCTGTTGAATCTTTAGATTATCTATTGTCCAGAGGAGTTATTGATATTAACTATCGTACTATATACAACGAAACATCTATTTACGACGCTGTCAGTTATAATGCGTATAATACGTTAGTCTATCTATTAAACAGAAATGGTGATTTTGAGACGATTACTACTAGTGGATGTACATGTATTTCGGAAGCAGTCGCGAACAACAACAAAATAATAATGGATATACTATTGTCTAAACGACCATCTTTGAAAATTATGATACCATCTATGATAGCAATTACTAAACATAAACAACATAATGCAGATTTATTGAAAATGTGTATAAAATATACTGCGTGTATGACCGATTATGATACTCTTATAGATGTACAATCGCTACATCAATATAAATGGTATATTTTAAAATGTTTTGATGAAATAGATATCATGAAGAGATGTTATATAAAAAATAAAACTGTATTCCAATTAGTTTTTTGTATCAAAGACATTAATACTTTAATGAGATACGGTAGACATCCTTCTTTCGTGAAATGTAATATTCTTGACGTATACGGAAGTTGTGTACGTAATATCATAGCATCTATTAGATATCGTCAGAGATTAATTAGTCTATTATCCAAGAAGCTGGATGCTGGAGATAAATGGTCGTGTTTTCCTAACGAAATAAAATATAAAATATTGGAAAACTTTAACGATAACGAACTGACCACATATCTGAAAATCTTATAAACACTATTAAAATATAAAATCTAAGTAGGATAAAATCACACTACATCATTGTTTCCTTTTAGTGCTCGACAGTGTATACTATTTTTAACACTCATAAATAAAAATGAAAACGATTTCCGTTGTTACGTTGTTATGCGTACTACCTGCTGTTGTTTATTCAACATGTACTGTACCCACTATGAATAACGCTAAATTAACGTCTACCGAAACATCGTTTAATGATAAACAGAAAGTTACGTTTACATGTGATTCAGGATATCATTCTTTGGATCCAAATGCTGTCTGTGAAACAGATAAATGGAAATACGAAAATCCATGCAAGAAAATGTGCACAGTTTCTGATTATGTCTCTGAACTATATGATAAGCCATTATACGAAGTGAATTCCACCATGACACTAAGTTGCAACGGTGAAACAAAATATTTTCGTTGTGAAGAAAAAAATGGAAATACTTCTTGGAATGATACTGTCACGTGTCCTAATGCGGAATGTCAACCTCTTCAATTAGAACACGGATCGTGTCAACCAGTTAAAGAAAAATACTCATTTGGGGAATATATGACTATCAACTGTGATGTTGGATATGAGGTTATTGGTGTTTCGTATATAAGTTGTACGGCTAATTCTTGGAATGTTATTCCATCATGTCAACAAAAATGTGATATACCGTCCCTATCTAATGGATTAATTTCCGGATCTACATTTTCTATCGGTGGCGTTATACATCTTAGTTGTAAAAGTGGTTTTACACTAACGGGGTCTCCATCATCCACATGTATCGACGGTAAATGGAATCCCATACTCCCAACATGTGTACGATCTAACGAAGAATTTGATCCAGTGGATGATGGTCCCGACGATGAGACAGATCTGAGCAAACTCTCGAAAGACGTTGTACAATATGAACAAGAAATAGAATCGTTAGAAGCAACTTATCATATAATCATAATGGCGTTGACAATTATGGGTGTCATATTTCTAATCTCCATTATAGTATTAGTTTGTTCCTGTGACAAAAATAATGACCAATATAAGTTCCATAAATTGCTACCGTGAATATAAATCCGTTAAAATAATTAATAATTAATAATTAATAACGAACAAGTATCAAAAGATTAAAGAATTAGCTAGAATCAATTAGATGTCTTCTTCAGTGGATGTTGATATCTACGATGCCGTTAGAGCATTTTTACTCAGGCACTATTATGACAAGAGATTTATTGTGTATGGAAGAAGTAACACCATATTACATAATATATACAGGCTATTTACAAGATGCACCGTTATACCGTTCGATGATATAGTACGTACTATGCCAAATGAATCACGTGTTAAACAATGGGTGATGGATACACTTAATGGTATAATGATGAATGAATTCGATACTGTATGTGTGGGTACCGGACTACGATTCATGGAAATGTTTTTCGATTACAATAAAAATAATCCCAAAAATAGCATCAACAATCAAATAATGTATGATATAATTAATAGCGTAGCCATAATTCTAGCTAATGAGAGATATAGAAGCGCGTTTAACGACGATAGAATATACATCCGTAGAACTATGATGGACAAATTGTACGAATACGCATCTCTAACTACTATTGGTACGATCACTGGAGGTGTTTGTTATTTTATCTGTTGATGCATCTAGTTAGTTTGTATAAATAATTATTTCGATATACTAGTTAAAATTTTAAGATTTTAAATGTATAAAAAACTAATAACGTTTTTATTTGTAATAGGTGCAGTTGCATCCTATTCGAATAATGAGTACACTCCGTTTAATAAACTGAGTGTAAAACTCTATATAGATGGAGTAGATAATATAGAAAATTCATATACTGATGATAATAATGAATTGGTGTTAAATTTTAAAGAGTACACAATTTCTATTATTACAGAGTCATGTGACGTCGGATTTGATTCCATAGATATAGATGTTATAAACGACTATAAAATTATTGATATGTATACCATTGACTCGTCTACTATTCAACGCAGAGGACATACGTGTAGAATATCTACCAAATTATCATGCCATTATGATAAGTACCCTTATATCCACAAATATGAGGGTGATGAACGACAATATTCTATTACCGCAGAGGGAAAATGCTATAAAGGAATAAAATATGAAATAAGTATGATGAACGATGATACTCTATTGAGAAAACATACTCTTAAAATTGGATTTACTTATATATTCGATCGTCATGGGCATAGTAATACATATTATTCAAAATATGATTTTTAAAAATTTAAAATATATTATCACTTCAGTGACAGTAGTCAAATAACAAACAACACCATGAGATATATTATAATTCTCGCAGTTTTGTTCATTAATAGTATACATGCTAAAATAACTAGTTATAAGTTTGAATCCGTCAATTTTGATTCCAAAATTGAATGGACTGGGGATGGTCTATACAATATATCCCTTAAAAATTATGGCATCAAGACGTGGCAAACAATGTATACAAATGTACCAGAAGGAACATACGACATATCCGGATTTCCAAAGAATGATTTCGTATCTTTCTGGGTTAAATTTGAACAAGGCGACTATAAAGTGGAAGAGTATTGTACGGGACTATGTGTCGAAGTAAAAATTGGACCACCAACTGTAATATTGACTGAATATGACGATCATATCAATTTGTTCATCGAGCATCCGTATGCTACTAGAGGTAGCAAGAAGATTCCTATTTACAAACGCGGTGACATGTGTGATATCTACTTGTTGTATACGGCTAACTTCACATTCGGAGATTCTGAAGAACCAGTAACATATGATATCGATGACTACGATTGCACGTCTACAGGTTGCAGTATAGACTTTGCCACAACAGAAAAAGTGTGTGTGACAGCACAGGGAGCCACAGAAGGGTTTCTCGAAAAAATTACTCCATGGAGTTCGGAAGTATGTCTGACACCTAAAAAGAATGTATATACGTGCGCAATTAGATCTAAAGAAGATGTTCCCAATTTCAAGGACAAAATAGCCAGAGTTATCACGAGAAAATTTAATAAACAGTCTCAATCTTATTTGACTAAATTTCTCGGTAGCACATCGAATGATGTTACAACTTTTTTTAGCATTCTTGACTAAATATTCATAACTAATTTTTATTAATGATACAAAAATGAAATAAACTGTATATTATACACTGGTTAACGCCCTTGGCTCTAACCATTTTCAAGATGAGGTCCCTGATTATAGTCCTTCTGTTCCCCTCTATCATCTACTCAATGTCTATTAGACGATGCGAGAAGACTGAAGAGGAAACATGGGGATTAAAAATAGGGTTGTGTATAATTGCCAAAGATTTCTATCCCGAAAGAACTGATTGCAGTGTTCATCGCCCAACTGCAAGTGGAGGATTGATAACTGAAGGCAATGGATTCAGAGTAGTTATATATGATCAATGTACAGAACCCCATGACTTTATTATCACCGATACTCAACAAACACGTCTTGGATCATCTCATACATATATTAAATTCAGTAACATGAATACAGGTGTCCCATCTAGTATTCCAAAATGTTCCAGAACTCTCTGTATTTCTGTATATTGTGATCAAGAGGCGGGAGACATAAAATTTGAGGAGTATACTCAAGAATCAAGTGATATCAGTATTAGAGTTAAGTATGATTCATCATGTATTGATTATCTGGGTATTAATCAAAGTTTCATGAATGAATGTATTCGAAGAATTACAACATGGGATAGAGAATCATGCGTCAGAATTGATACACAGACTATAAATAAATATCTTAAGTCTTGCACCAACACAAAATTCGACCGTAATGTCTACAAAAGGTACATACTGAAGAGTAAAGCACTCCATGCTAAAACAGAGTTGTAATAGATATAAAATACTTTTTATAATAATTAGGCTAGAAAAATCTCACTCACATGTAATCTTAAAAAAATGATATGATAGTTCTTACAAGTAGCGATTGAGTTTTAAATGGATTCTATTAATTACCGGGGAACTTAACAATTCGTTCTGATCTACAGACATTGGTTAATAAATCATCTTATTTTGCCAATATATTAAAATGTGGAAACTCCACTAATAATATTACATTGTGCGACTTTCAAGATGATGTGATATATAGGGTTATACAGTTTTAACAATTATATAATAGAGATAGAAAGTACAAAAGATGTAGAATCAATGATATGGCACGCTAAACAGTTGGGTGTGGAATCATTGCTAAAAGAATGTCAAAATTATTTGCTTAGAATATTACGTATATAATTGTTTAGAAATTTATAGAATAACTAATATTAATACATTATCGTATATCTACAACGATATAAGAAACTTCATATTGGATAATATTACTATTAATATATAAGGATCCAGATTTTATATATTTGCCTAAATACATTATTATAGATTTACTAGGACAATCACCTAAATGTTTTTAACGAAGATAATGTGGTAAAGATTATATACACTTATATATCTTCCGATATCTACAAGGATATTCCATATCATCATTGTGTAAACTAAATAACGTTTTCTATGGCATTTAATAAGGACATTGGATATGTGGAAAAGTGATGTATGGAAGTTAGTACATTATCAACTTCTCCTTATTGATTGAAAATGAAAATATAAATAGTTTTTATGTATAGCGGTATCTACCCTATAGTTTTATTGCTTACTACTAACATGGATTCAGATACAGATACAGATACAGATACAGATACAGATACAGATACAGATACAGATGTAGAAGATATCATGAATGAAATAGATAGAGAGAAAGAAGAAATACTAAAAAATGTAGAAATTGAAAATAATAAAAACATTAACAAGAATCATCCCAGTGAATATATTAGAGAAGCACTTGTTATTAATACCAGTAGTAATAGTGATTCCATTGATAAAGAAGTTATAGAATATATCAGTCACGATGTAGGAATATAGATCATATCTACTAATTTTTATAATCGATACAAAACATAAAAACAACTCGTTATTACATAGCAGGTATGGAATCCTTCAAGTATTGTTTTGATAACGATGGTAAGAAATGGATTATCGGAAATACTTTATATTCTGGTAATTCAATACTCTATAAGGTCAGAAAAAATTTCACTAGTTCGTTCTACAATTACGTAATGAAGATAGATCATAAATCACACAAGCCATTGTTGTCCGAAATACGATTCTATATATCTGTATTGGATCCTTTGACTATCAACAACTGGACACGGGAACGTGGTATAAAGTATTTGGCTATTCCAGATCTGTATGGAATTGGAGAAACCGATGATTATATGTTCTTCATTATAAAGAATTTGGGAAGAGTATTCGCCCCAAAGGATAGTGAATCAGTTTTCGAAGCATGTGTCACTATGATAAACACGTTAGAGTTTATACACTCTCAAGGATTTACTCATGGAAAAATAGAACCGATGAATATACTGATTAGAAATAAACGTATTTCACTAATTGACTATTCTAGAACTAACAAACTATACAAAAGTGGAACACATATAGATTACAACGAGGACATGATAACTTCAGGAAATATCAATTATATGTGTGTAGACAATCATCTTGGAGCAACAGTTTCAAGACGAGGAGATTTAGAAATGTTGGGATATTGCATGATAGAATGGTTCGGTGGTAAACTTCCATGGAAAAACGAAAGTAGTATAAAAGTAATAAAACAAAAAAAAGAATATAAACAATTTATAGCTACTTTTTTTGAGGACTGTTTTCCTGAAGGAAATGAACCTCTGGAATTAGTTAGATATATAGAATTAGTATACATGTTAGATTATTCTCAAACTCCTAATTATGACAGACTACGTAGACTGTTTATACAAGATTGAAATTATATTCTTTTTTTTATAGAGTGTGGGGGTAGTGTTACGGATATCTAATATTAATATTAGACTATCTCTATCGCGCTACACGACCAATATCGATTACTATGGATATCTTCAGGGAAATCGCATCTTCTATGAAAGGAAAGAATGTATTCATTTCTCCAGCGTCAATCTCGTCAGTATTGACAATACTGTATTATGGAGCTAATGGATCCACTGCTGAACAGCTATCAAAATATGTAGAAAAGGAGGAGAACATGGATAAGGTTAGCGCTCAGAATATCTCATTCAAATCCATGAATAAAGTATATGGGCGATATTCTGCCGTGTTTAAAGATTCCTTTTTGGGAAAAATTGGCGATAAGTTTCAAACTGTTGACTTCACTGATTGTCGCACTATAGATGCAATCAATAAGTGTGTAGATATCTTTACTGAGGGAAAAATCAATCCACTATTGGATGAACCATTGTCTCCTGATACCTGTCTCCTAGCAATTAGTGCCGTATACTTTAAAGCAAAATGGTTGATGCCATTCGAAAAGGAATTTACCAGTGATTATCCCTTTTACGTATCTCCAACGGAAATGGTAGATGTAAGTATGATGTCTATTTACGGCGAGCCATTTAATCACGCATCTGTAAAAGAATCATTCGGTAACTTTTCAATCATAGAACTGCCATATGTTGGAGATACTAGTATGATGGTCATTCTTCCAAACAAGATTGATGGATTAGAATCCATAGAACAAAATCTAACAGATACAAATTTTAAGAAATGGTGTAACTCTCTGAAAGCTACGTTTATCGATGTGCACATTCCTAAGTTTAAGGTAATAGGTTCGTATAATCTTGTGGATACGCTAATAAAGTTGGGACTGACAGATGTGTTCTATTCAACTGGTGATTATATCAATATGTGTAATTCAGATGTGAGTGTTGACGCTATGATTCACAAAACGTATATAGATGTCAATGAAGAGTATACAGAAGCAGCTGCAGCAACTTCTGTACTAGTGGCAGACTGTGCATCAACAGTTACAAATGAGTTCTGTGCAGATCATCCGTTCATCTATGTGATTAGACATGTCGATGGTAAAATTCTTTTCGTTGGTAGATATTGCTCTCCAACAACTAATTAAGCACATTCTTAATATTAGAATATTATATAGTTAAGATTTTTACTAACAGGTTAACATTTTTTTTTAAAAATAGAAAAAACATGTGGTATTAGTGCAGGTCGTTATTCTTCCAATTGCAATTGGTAAGATGACGGCCAACTTTAGTACCCACGTCTTTTCACCACAACACTGTGGATGTGACAGACTGACCAGTATTGATGACGTCAGACAATGTTTGACTGAATATATTTATTGGTCGTCGTATGCATACCGCAACAGGCAATGCGCTGGACAACTGTATGACACACTCCTCTCTTTTAAAGATGATGCGGAATCAGTGTTCATCGACGTTCGTGAGCTGGTAAAAAATATGCCGTGGGATAATGTTAAGGATTGTACAGAGATCATCCGTTGTTATATACCGGATGAGCAAAAAACCATCAGAGAGATTTCGGCCATCATTGGACTTTGTGCATATGCTGCTACTTACTGGGGAGGTGAAGACCATCCCACTAGTAACAGTCTGAACGCATTGTTTGTGATGCTTGAGATGCTCAATTACATGGATTATACCATCATATTCTGGCGTATGAATTGATGAGTTACAGCTTGACATTTCTTCTTTCCTCCCTCTTCTTCTACCTTTCCCAGAAACAAACTTTTTTTACCCACTATAAAATAAAATGAGTATACTACCTGTTATATTTCTTCCTATATTTTTTTATTCTCCATTCGTTCAGACTTTTAACGTGCCTGAATGTATCGACAAAGGGCAATATTTTGCATCATTCATGGAGTTAGAAAACGAGCCAGTAATCTTACCATGTCCTCAAATAAATACGCTATCATCCGGATATAATATATTAGATATTTTATGGGAAAAACGAGGAGCGGATAATGATAGAATTATACAGATAGATAATGGTAGCAATATGCTAATTCTGAACCCGACACAATCAGACTCTGGTATTTATATATACATTACCACGAACGAAACCTACTGTGACATGATGTCGTTAAATTTGACAATCGTGTCTGTCTCAGAATCAAATATAGATCTTATCTCGTATCCACAAATAGTAAATGAGAGATCTACTGGTAAAATGGTATGTCCCAATATTAATGCATTTATTTCTAGTAACGTAAACACAGAATTATATGGAGCGGACATCGACGCCTTAGAAATAAGAGACTTAAACAACGGACACCTGGAATTATTACCATAGAAGATGTTAGAAAAAATGATGCTGGTTATTATACATGTGTTTTAGAATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATATGGGCAAAACATATAACGTAACCAGAATTATAAAATTAGAGGTACGGGATAGAATAATACCTCCTACTATGAAATTACCAGAAGGAGTAGTAACTTCAATAGGTAGTAATTTGACTATTGCATGTAGAGTATCGTTGAGACTTCCCACAACGGACACCGACGTCTTTTGGATAAGTAATGGTATATGTATTACGAAGAAGAAGACGAGGACGGAGACGGTAGAATAAGTGTAGCAAATAAAATCTATATGACCGATAAGAGACGTGTTATTACATCCTGGTTAAACATTAATCCTGTCAAGGAAGAAGATGCTACAACGTTTACGTGTATGGCGTTTACTATTCCTAGCATCAGCAAAACAGTTACTGTTAGTAAACGTGAATGTATGTTGTTACATTTCCATATCAATTGAGTTTATAAGAATTTTTTATACATTATCTTCCAACAAACAATTGACGAACGTATTGCTATGATTAACTCCCACAATACTATATATATTATTAATCATTAACTTGCAGACTATACCTAGTAGTGCTATTTTGACATACTCATGTTCTTGTGTAATCGCAGTATCTATATTATTAAAGTACGTAAATCTAGCTATAGTTTTATTATTTAATTTTAGATAATATACTGTCTCCGTATTTTTAAAAAATTACCACATCCTTTATTAAATCATGAATGGGAATTTCTGTGTCATCGTTAGTATATTGTGAACAACAAGAGCAGATATCTATAGGAAAGGGTGGAATGCGATACATTGATCTATGTAGTTTTAAAACATACGCGAACTTTGAAGAATTTATATAAATCATCTCACGAGATATTGCTCTCTGTCATATTCATACACCTGTATAAACTTTCTAGACATCTTACAATGTGTTATTTTATGATCATATTTACATATTTACTGGTATATCAAAGATGTTAGATTAGTTAATGGGAATCGTCTATAATAATGAATATTAAACAATTATAGGAGGAGTTTATACCTACAAAAACATCATAAAAATGAGTCATCGTCCGATTTATGTTTTAAATATACTAACATTACTACCTTCAGAAATTATATACGAAATATTATACATGCTGACAATTAACGATCTTTATAATATATAGTATCCACCTACCAAAGTATAATTGTATTTTTCTCATGTGATGTGTGTAAAAAACTGATATTATATAATTATCTTAGTACCTATGATGAAGATGAAGATGAAGATGAAGATGATGGTCCGTATATATTTTGTATCATTATCGTTATTGCTATTCCATAGTTACGCCATAGACATCGAAAATGAAATCACCGAATTCTTCAATAAAATGAGAGATACTCTACCAGCTAAAGACTCTAAATGGTTGAATCCAGTATGTATGTTTGGAGGCACAATGAATGATATGGCCGCTCTAGGAGAGCCATTCAGTGCAAAGTGTCCTCCTATTGAAGACAGTCTTTTATCGCATAGATATAAAGACTATGTGGTTAAATGGGAAAGGCTAGAAAAGAATAGACGGCGACAGGTTTCTAATAAACGTGTTAAACATGGTGATTTATGGATAGCCAACTATACATCTAAATTCAGTAACCGTAGGTATTTATGTACCGTAACCACAAAGAATGGTGACTGTGTTCAGGGTGTAGTTAGATCTCATGTGTGGAAACCTTCTTCATGCATTCCAAAAACATATGAACTAGGTACTTATGATAAGTATGGCATAGACTTATACTGTGGAATTCTTTATGCGAACCATTATAATAATATAACTTGGTATAAAGATAATAAGGAAATTAATATCGACGATTTTAAGTATTCACAAGCGGGAAAGGAATTAATTATTCATAATCCAGAGTTAGAAGATAGTGGAAGATACGACTGTTACGTTCATTACGACGACGTTAGAATCAAGAATGATATCGTAGTATCAAGATGTAAAATACTTACGGTTATACCGTCACAAGACCACAGGTTTAAACTAATACTAGATCCGAAAATCAACGTAACGATAGGAGAACCTGCCAATATAACATGCAGTGCTGTGTCAACGTCATTATTTGTCGACGATGTACTGATTGAATGGGAAAATCCATCCGGATGGATTATAGGATTAGATTTTGGTGTATACTCTATTTTAACTAGTAGAGGCGGTATCACCGAGGCGACTTTGTATTTTGAAAATGTTACTGAAGAATATATAGGCAATACATATACATGTCGTGGACACAACTATTATTTTGATAAAACTCTTACAACTACAGTAGTATTGGAGTAAATACACAATGCATTTTTATATACATTACTGAATTATTATTATTAATTATATCGTATTTGTGCTATAGAATGGATGAAGATACGCGACTATCTAGGTATTTGTATCTCACCGATAGAGAACATATAAATGTAGACTCTATTAAACAGTTGTGTAAAATATCAGATCCTAATGCATGTTATAGATGTGGATGTACGGCTTTACATGAGTACTTTTATAATTATAGATCAGTCAACGGAAAATACAAGTATAGATACAACGGTTACTATCAATATTATTCATCTAGCGATTATGAAAATTATAATGAATATTATTATGATGATTATGATAGAACTGGTATGAACAGTGAGAGTGATAATATATCAATCAAAACAGAATACGAGAATGAATATGAATTCTATGATGAAACACAAGATCAAAGTACACAACTAGTAGATTACGACATTAAACTCAAAACCAATGAGGATGATTTTGTTGATGAATTCTATGGTTATGATAGATCAGTGGGTGTCCATGATTATATAGATGTATCAATTAATAAAGTAGTATATGGAAGAGAGTCTCACGTAAGATGGTGGGATATATGGCAAGAACATAATGATGGCGTATACAGTATAGGAAAGGAGTGCATAGATAATATATACGAAGACAGACATACCGTAGACGAATTCTACAAGATAGACAGCGTATCAGATGTAGATGACGCAGAACATATATCTCAGATAACTAATGATGTATCTACACAAACATGGGAAAAGAAATCAGAGTTAGATAGATACATGGAAATGTATCCTCGTCATAGATATGGTAAGCATTCTGTCTTTAAGGGATTTTCTGACAAAGTTAGAAAAAATGATTTAGACATGAACGTGGTAAAAGAATTACTTTCTAACGGTGCATCTCTAACAATCAAGGATAGCAGTAATAAGGATCCAATTGCTGTTTATTTTAGAAGAACAATAATGAATTTAGAAATGATTGATATCATTAACAAACATACAACTATCTATGAACGCAGGTATATAGTACACTCCTATCTAAAAAATTATAGAAATTTCGATTATCCATTTTTCAGAAAGTTAGTTTTGACTAATAAACATTGTCTCAACAATTATTGTAATATAAGCGACGGCAAATATGGAACACCACTACATATATTAGCATCTAATAAAAAAATAATAACTCCTAATTACATGAAGTTATTAGTGTATAACGGAAATGATATAAACGCACGAGGTGAAGATACACAAATGCGAACTCCATTACACAAATATTTGTGTAAATTTGTATATCATAATATTGAATATGGTATCCGATACTATAATGAAAAGATTATAGACGCATTTATAGAGTTAGGAGCCGATCTAACTATTCCAAATGACGATGGAATGATACCAGTAGTTTACTGTATACACTCAAATGCCGAATATGGTTATAACAATATTACTAACATAAAGATAATACGTAAACTACTTAATCTTAGTAGACATGCGTCACATAATCTATTTAGAGATCGAGTCATGCACGATTATATAAGTAATACATATATTGATCTTGAGTGTTTAGATATCATTAGATCACTTGATGGGTACGATATTAATTGTTACTTTGAAGGACGTACACCACTTCATTGCGCTATACAATATAACTTCACTCAGATTGCTGAGTACTTATTAGATCGAGGAGCTGATATATCATTAAAGACAGACGATGGTAAAACTGTATTTGATTTATCGTTATGTAGTTACATTCCTCTTAAATGGACTAGCTTTTTGATTAGTCGTCTACCGCCTAAAAGTGTCATATGCTCACTGACTAACCATATAATAGATTATGTTCTTACGAACAATAGACGTATTATTTGGCAGAGTCAAATGATTAATAAGTACGTACTGTTACTGGACCCATCCTTTTATTATAGATTCAGAAATGTTATCGAAAACAAATTAGACCAATACAATAATCGTTATAATATGTTCGAACACGATAGGGACGTTAATGAAAAGTATGGCAAAGTCTTACATGACCTCGATACATATATCAAGGATGTACAAGTATTAAAATCTACTTCCATCACTAATAATATAACACTATACGACACTATTATAAATAATAAGTCAGAGTTTCCTATACGTCGTGTAAACGACAAACAATTAATTAATCTCATAAAATCCAATACATATCATAATCTTATCGAAAAAGTTATTAAAAATACATTAGAGAAATATACTTTAACTAATATAGTCCTCGAGTATATGATCTCATCTCGATCTCAATCATCTTATTTGAGTCGTATTCCTAATGAGATATTACTCGAAATATTATATAAACTCGACATGTACGATTTACGTAATCTATATACAAGATATATGAGAGAGAATGATATCACAGAGTATCATATAGAGAATACGAGGTCTGTTTCTACACAGACATGAATAATGAATACACATACAACGTTTTTTTTAATCTTAGATATAACACTAATTACATCAAGATTATATATTGAAATCGTAATTTGAGTTGTCTGATCATCATGGATATCGAAAATGATATACGTAACATTAGCAATCTTTTAGATGATTGATATATTATTATGCGATGTAATCATAACTATCGGAGATGTAGAAATTAAAGCGCATAAAACTATTTTGGTTGCCGGATCTACGTATTTTAAAACAATGTTCACAACATCTATGATAGCGAGAGATCTAGCAACTAGAGTAAATATACAGATGTTCGATAAAGATGCCGTCAAAAATATTGTACAGTACTTATACAATAGGTATATAAGTTCTATGAATGTGATAGACATATTAAAATGCACCGACTAAGAACGTAAAACGAACTATAGAATGTTATACAATGGGTGATGATAAGTAGAAGATGTTACCCGATATACCCATAGCATTATCTAGTTATGGCATGTGTGTATTAGATCAATACATATACATTATAAGCGGTCGTACCCAACACTGATTATACATCGGTACATACAGTAAATAGCATAGATATGGAGGAGGATACAAATATTTCAAATAAAGTTATGAGATACGCGCTGTCAATAATATATGGAAGACATTACCTAACTTCTGAACTGGAACTATAAATCCAGGCTCTCGCATAAAGATGAATATATATGTTGTATGCGACATCAAAGATGAAAAAATGTTAAGACTTATATATTTAGATATAACACGAATATGTATGACGGATGGGAATTGGTAACGATGACAGAAAGCAGATTGTCAGCTCTGCATACTATTCTTCATGACAATACCATAATGATGTTACATTGTTATGAAGCGTATATGTTACAAGATACATTTAATGTGCTTACGGAACATATATTTAGAAACATCTACTAACGATTTTTTATGCTTGTATTATTAATGGTATGTAATATGATTTAATTGATTGTGTACACGATACCAATTTGTCGAGTATGAATACGGAGTACAAACATAAACTGAAGTTTAACATTATTTATTTATGATATACATTATATACATTATATACATTATATACATTATATACATTATATACATTATATACATTATATACATTATATACATTATATACATTATATATCGTTATTGTTTGGTCTATGCCATGGATATCTTTAAAGAACTAATCTTAAAACATACGGATGAAAATGTTTTGATTTCTCCAGTTTCCATTTTATCTACTTTATCTATTCTGAATCATGGAGCAGCTGGTTCTACAGCTGAACAACTATCAAAATATATAGAGAATATGAATGAGAATACACCCGATGATAAGAAGGATGACAATAATGACATGGACGTAGATATTCCGTATTGCGCGACACTAGCTACCGCAAATAAAATATACGGTAGTGATAGTATCGAGTTCCATGCCTCATTCCTACAAAAAATAAAAGACGATTTTCAAACTGTAAACTTTAATAATGCGAACCAAACAAAGGAACTAATCAACGAATGGGTTAAGACAATGACAAATGGTAAAATTAATTCCTTATTGACTAGTCCGCTATCCATTAATACTCGTATGATAGTTATTAGCGCCGTCCATTTTAAAGCAATGTGGAAATATCCATTTTCTAAACATCTTACATATACAGACAAGTTTTATATTTCTAAGAATATAGTTACCAGTGTTGATATGATGGTGGGTACCGAGAATGACTTGCAATATGTACATATTAATGAATTATTCGGAGGATTCTCTATTATCGATATTCCATACGAGGGAAACTCTAGTATGGTGATTATACTGCCGGACGACATAGAAGGTATATATAACATAGAAAAAAATATAACAGATGAAAAATTTAAAAAATGGTGTGGTATGTTATCTACTAAAAGTATAGACTTGTATATGCCAAAGTTTAAAGTGGAAATGACGGAACCGTATAATCTGGTACCGATTCTAGAAAATTTAGGACTTACTAATATATTTGGATATTATGCAGATTTTAGTAAGATGTGTAATGAAACTATCACTGTAGAAAAATTTCTACATACGACGTTTATAGATGTTAATGAGGAGTATACAGAAGTATCGGCCGTTACAGGAGTATTCATGACTAACTTTTCGATGGTATATCGTATGAAGGTCTACATAAACCATCCATTCATATACATGATTAAAGATAACACCGGACATACACTTTTTATAGGGAAATACTGCTATCCGCAATAAATATAAACAATAGACTTTTATCACGTTATCTCATGTATAAAATATTACAAATAGTATAGCATAAACTAAAGTCGATACATACATTAAAACTTAAATAATAATGTAATTTACAATTAATAGTATAAACTAAAAAAATTAAAAAATTAAAAACAATATCATTATTATAAGTAATATCAAAATGACGATATACGGATTAATAGCGTATCTTATATTCGTGACTTCATCCATCGCTAGTCCACTTTACATTCCCGTTATTCCGCCCATTTCGGAAGATAAATCGTTCAATAGTGTAGAGGTATTAGTTTCTTTGTTTCCCGATGACCAAAAAGACTATACAGTAACTTCTCAGTTCAATAACTACACTATCGGTACCAAAGACTGGACTATCAACGTACTATCCACACCTGATGGTCTGGACATACCATTGACTAATATAACTTATTGGTCACGGTTTACTATAGGTCGTGCATTGTTCAAATCAGAGTCTGAGGATATTTTCCAAAAGAAAATGAGTATTCTAGGTGTTTCTATAGAATGTAAGAAGCCGTCGACATTACTTACTTTTTTAACCGTGCGTAAAATGACTCGAGTATTTAATAGATTTCCAGATATGGCTTATTATCGAGGAGACTGTCTAGAAGCCGTTTATGTAACAATGACTTATAAAAATACTAAAACTGGAGAGACTGATTACACGTACCTCTCTAATGGGGGGTTGCCTGCATACTATCGTAATGGGGTCGATGGTTGATTATTGATTAGTATATTCCTTATATTCCTTATTCTTTTTATTCACACAAAAAGAACATTTTTATAAACATGAAACCACTGTCTAAATGTAATTATGATCTTGATTTATAGATGATGATCAGCCTTCAGAGGATTTTGACCAGTATGTTTAATATGAAAAAAAACATAACTATTAAGCGCTATTGCGCTATTGTGCTTAATTATTTTGCTCTATAAACTGAATATATAGCCACAATTATTGACGGGCTTGTTTGTGACCGACAATCATGAATTTTCAGAAATTATCTCTGGCTATATATCTTACGGTGACATGTTCGTGGTGTTATGAAACATGTATGAGAAAAACTGCGTTGTATCATGACATTCAATTGGAGCATGTAGAAGACAATAAAGATAGTGTAGCATCGCTACCGTACAAGTATCTACAAGTAGTCAAACAAAGAGAACGTAGTAGATTGTTGGCTACATTTAATTGGACGGATATAGCTGAGGGTGTTAGAAATGAGTTCATTAAAATATGTGATATCAACGGAACATATCTATATAATTATACTATTGCTGTTAGTATAATTATTGATTCCACGGAAGAACTACCAACAGTTACTCCAATTACAACATATGAACCTTCTATATATAATTATACTATCGATTATAGCACTGTTATTACTACTGAAGAACTACAAGTGACTCCAACATATGCACCTGTAACAACTCCTCTTCCAACATCAGCAGTTCCTTATGATCAACGATCGAATAACAATGTAAGTACTATATCTATTCAGGTACTGAGTAAAATATTGGGAGTCAATGAAACAGAATTAACTAATTATCTTATTATGCATAAAAATGACACTGTTGACAATAACACCATGGTTGATGATGAGACATCTGACAATAACACATTACATGGTAATATAGGATTTTTGGAAATAAATAATTGTTATAATGTTTCTGTGTCAGATGCTAGTTTTAGAATAACATTAGTAAACGATACTTCTGAAGAAATTTTGCTAATGCTAACAGGAACTAGTTCATCCGACACCTTCATATCTTCCACCAATATCACTGAATGTTTGAAAACATTAATCAATAATGTGTCGATTAATGATGTACTTATAACACAAAATATGAATGTAACATCTAATTGTGATAAATGCTCAATGAATTTGATGGCATCCGTTATTCCTGCAGTTAATGAATTTAACAATACGTTGATGAAAATTGGTGTAAAAGATGATGAAAACAATACGGTATATAAATATTATAATTGTAAACTAACTACAAATTCTACATGTGATGAGTTAATCAATTTAGATGAAGTCATTAACAACATAACTCTGACAAATATTATACACAATAGTGTTTCGACAACTAACAGCAGAAAAAGACGAGATCTGAATGATGAGTTTGAATTTTCCACTTCCAAGGAATTAGATTGTCTTTACGAATCATATGGTGTAAACGATGATATAAGTCATTGTTTTGCATCACCTAGACGTAGACGATCTGACGACAAAAAGGAGTACATGGACATGAAATTATTCGACCACGCGAAAAAAGATTTAGGAATAGACAGTGTTATTCCTAGAGGTACAACCCATTTCCAAGTAGGTGCATCTGGTGCAAGTGGTGGTGTTGTAGGAGATAGTTTCCCATTTCAAAATGTTAAATCGCGTGCCAGTCTATTGGCGGAAAAAATAATGCCTAGAGTACCTATTACTGCTACCGAAGCTGATCTATATGCAACTGTAAATAGACAACCCAAGTTACCAGCAGGTGTTAAAAGTACTCCGTTTACAGAGGCGCTTGTGTCTACGATAAACCAAAAGCTTTCTAATGTTAGAGAGGTAACTTATGCTTCGCTCAATCTGCCAGGATCAAGTGGCTATGTTCATAGACCATCTGATTCTGTTATTTATAGCAGTATAAGACGGTCACGTTTACCTAGTGATAGCGATAGTGATTATGAGGATATACAAACTGTTGTTAAGGAATATAATGAAAGATATGGTAGATCAGTCAGTAGAACACAGTCATCAAGTAGTGAAAGCGATTTTGAAGATATAGATACTGTTGTTAGGGAATATAGACAAAAATATGGCAATGCAATGGCAAAAGGACGTAGTAGTTCCCCTAAACCTGATCCATTATATAGTACTGTTAAGAAAACAACTAAAAGTCTATCTACTGGTGTAGACATAGTTACAAAACAATCAGACTATTCTCTATTACCTGACGTTAATACTGGCAGTTCTATTGTGTCACCTCTCACCAGAAAAGGAGCTACTAGACGACGACCTAGACGCCCTACAAATGATGGTCTACAGAGTCCAAATCCTCCTCTCCGTAATCCACTTCCTCAACATGATGATTATTCTCCTCCACAAGTACACAGACCTCCACCACTTCCTCCTAAACCAGTCCAAAATCCGCCACAACTTCCCCCTAGACCAGTAGGTCAATTACTACCTCCTCCTATAGATCAACCAGATAAAGGATTTAGTAAGTTTGTATCACCTAGACGGTGTAGAAGAGCAAGCTCTGGAGTCATATGTGGTATGATACAATCAAAACCAAACGATGATACCTATTCACTTCTTCAACGATCAAAAATTGAACCAGAATATGTGGAGGTTGGTAATGGTATACCCAAGAACAATGTTCCTGTAATAGGTAATAAACATAGTAAAAAATATACATCGACGATGTCAAAAATATCAACAAAATTTGATAAATCTACGGCATTTGGAGCAGCAATGTTACTAACTGGTCAGCAGGCCATTAGCCAACAGACTAGATCAACTACGTTGAGTAGAAAAGATCAGATGAGTAAGGAAGAAAAGATATTCGAAGCAGTTACAATGAGTCTATCAACTATAGGTTCAACGTTGACGTCTGCAGGTATGACGGGTGGTCCAAAACTAATGATTGCAGGAATGGCTATAACGGCTATAACTGGTATAATAGATACGATAAAAGATATATATTACATGTTTTCAGGACAGGAGAGGCCAGTAGATCCTGTTATTAAATTATTTAATAAGTACACTGGCTTAATGTCCGATAATAATAAAATGGGTGTAAGAAAATGTTTGACACCCGGTGACGACACACTTATTTATATCGCATACAGAAACGATACCAGTTTTAAACAGAATACGGATGCGATGGCTTTGTATTTCTTAGATGTTATCGATTCAGAGATCCTATATCTAAACACATCAAATTTAGTTCTAGAGTATCAACTAAAGGTGGCTTGCCCCATAGGAACATTAAGATCTGTAGATGTGGACATAACTGCGTATACAATATTATATGATACAGCGGATAATATTAAGAAATACAAGTTTATCAGAATGGCAACGCTACTATCCAAACATCCAGTTATTAGATTGACATGTGGTTTAGCAGCAACATTGGTGATTAAACCGTACGAGGTACCCATCAGTGATATGCAACTACTAAAAATGGCGACGCCTGGTGAACCAGAATCCACTAAATCTATACCATCCGATGTCTGTGATAGGTATCCTCTAAAGAAATTCTATCTTTTAGCTGGTGGTTGTCCCTATGATACATCTCAAACTTTTATTGTACATACTACTTGCAGTATTCTACTAAGAACAGCTACACGGGATCAGTTTAGAAACAGATGGGTGTTACAAAATCCATTTAGACAAGAAGGGACATATAAGCAACTGTTTACCTTTAGCAAATACGATTTTAACGACACCATAATCGATCCTAATGGTGTGGTGGGTCATGCTAGCTTTTGTACCAATAGAAGCAGCAACCAATGTTTCTGGTCCGAACCTATGATATTGGAAGATGTATCATCGTGTAGTTCTAGAACTAGAAAAATATACGTAAAACTGGGAATATTTAATGCTGAAGGTTTTAATAGTTTTGTACTAAATTGTCCAACTGGGTCTACACCTACATACATCAAACATAAAAATGCGGACAGTAACAATGTTATCATAGAGCTACCTGTAGGTGATTACGGCACAGCCAAATTGTATTCAGCAACAAAACCATCGAGGATAGCTGTGTTCTGCACACATAACTATGATAAACGATTCAAATCAGATATTATAGTTCTAATGTTTAATAAAAACAGCGGTATTCCATTTTGGAGCATGTACACAGGAAGTGTAACTAGTAAAAATAGAATGTTTGCCACATTGGCTAGAGGAATGCCGTTTAGATCAACGTATTGCGATAACAGACGACGATCAGGTTGTTATTATGCAGGAATACCATTTCATGAAGATAGTGTAGAAACAGATATACATTATGGACCAGAAATAATGTTAAAGGAAACATATGACATAAACAGTATTGACCCACGAGTTATAACAAAGTCAAAGACCCATTTTCCTGCTCCATTGAGTGTAAAATTCATGGTTGACAATTTAGGAAATGGATATGACAACCCTAATTCATTTTGGGAAGATGCTAAAACTAAGAAACGGACATATAGTGCAATGACGATAAAAGTCCTACCATGTACAGTGAGAAATAAAAATATAGACTTTGGATATAACTATGGAGATATTATTTCTAATATGGTTTATCTACAATCTACTAGTCAGGATTATGGAGATGGTACCAAATATACATTTAAATCCGTAACTAGATCAGATCATGAGTGTGAATCTAGCTTAGATCTAACGTCTAAGGAAGTAACTGTGACATGTCCTGCGTTTAGTATACCAAGAAATATATCAACATATGAAGGTCTATGCTTTAGTGTTACTACATCTAAAGATCATTGTGCTACAGGTATTGGTTGGTTAAAATCTAGTGGTTATGGGAAGGAAGATGCTGATAAACCACGTGCTTGTTTTCATCATTGGAATTATTACACACTGTCGTTGGATTATTACTGTTCATACGAAGATATTTGGAGAAGCACCTGGCCTGACTATGATCCATGTAAGTCATATATCCATATAGAGTATAGAGATACATGGATAGAATCTAATGTGTTACAGCAACCTCCTTACACATTCGAATTCATTCATGACAATTCTAACGAATATGTGGATAAAGAAATTAGTAACAAATTAAATGATCTGTACAATGAATACAAGAAGATTATGGAATATAGCGACGGATCATTGCCGGCGTCTATAAACAGATTAGCAAAGGCATTGACTTCAGAGGGTAGAGAAATAGCAAGTGTTAATATAGATGGTAATCTGTTAGATATCGCATATCAAGCAGATAAGGAAAAGATGGCCGACATACAGACAAGAATAAATGATATTATTAGAGATTTGTTTATACACACTCTATCAGACAAAGATATAAAAGACATTATAGAATCCGAAGAAGGTAAGAGATGTTGTATAATAGATGTTAAGAACAATCTTGTTAAAAAGTACTATTCTATTGATAATTATCTATGTGATACTTTAGATGATTATATATACACCTCTGTAGAATATAACAAATCCTATGTGTTAGTAAACGATACTTATATGAGCTATGACTATCTTGAATCATCAGGTGTAGTTGTTCTATCATGTTATGAAATGACTATAATCTCCTTGGATACAAAAGACGCCAAAGATGCTATAGAAGATGTGATAGTAGCAAGTGCGGTAGCCGAAGCATTGAATGACATGTTTAAGGAATTTGATAAAAACGTAAGTGCTATTATAATAAAAGAAGAAGATAATTATCTAAACAGTTCGCCCGATATCTACCATATAATATATATCATAGGTGGCACTATTCTGCTACTGTTAGTCATTATTTTAATATTGGCAATTTATATAGCGCGCAATAAATACAGAACCAGGAAATATGAAATAATGAAATATGACAATATGAGCATTAAATCTGAGCATCATGATAGTCTTGAAACAGTGTCTATGGAAATTATTGATAATCGGTACTAATAAAATAGTTTAACTCTTTTAGAACCAGTTTGGTACTGTAATTTCAGTTCATTACTCGTTGAGAATATTGATGATTTTTTTTAAATGAGTATCGGTAGTTACATATTACCATATCATCCATTATATAATCGATGATGCATGTATTAGAATACTTTCCGAATAAGTCTTCTAAATATTGTATTAATTATGAAAAACTATGCTATGTGAGTATGATTCAAAGATGTTTAATGATACGATACTAGATTTTATCTCTAGCGAGATTGTTTAGAATCATTTATCATAACTATGTTTAATAAATTCATCAACGAATATCGATAAAGACCTCTTGTAATTCGAGTATAGGAAGTAGTATTACCATATCAACTTCCGAGTTAACAATTACTCTAAAACATGAGGATTGTACTCCTGTCTTTATTGGAGATCACTATTTAGTCGTTGATAAACTAGTAACCTCAGGTTTCTTTACAAACGATAAAGTACAACATCAAGACCTCACAACACAGTGCAAGATTAATCTAGAAATCAAATGTAATTCTGGAGGAGAATCTAGACAACTAACACCCACGGCGAAGTATACTTTATGCCTCATTCAGAAACGGTAACTGTAGTAGGAGACTGTCTCTCTAATCTCGATGTATATATAATATATACCAATACGGACGCGATATATTCCGACATGAATGGCGTCGCTTATCATATGTTATATCCTAAATGTTGATCATATTCCACAAATGATTGTGAACGAGATTAAATCATCTAACAAATAATTAGTTTTTTATGACATTAACATATAATAAATAAATTAATCATTATTGACTTAACGATGACGAAAGTTATCATTATCTTAGGATTCTTGATTATTAATACAAATTCGTTGTGTCTATGAAATGTGAACAAGGTGTCTCATATTATAATGCACAAGAATTAAAGTGTTGTAAACTATCTAGCCAGGAACATATTCAGATTATCGATGTGATAAATACAGCGATACCATCTGTGGACATTGTCCAAGTGACACATTCACGTCAATATATAATCGTTCTCCTCGGTGTCATAGTTGTAGAGGTCACACCTTGTACACCTACCACAAATAGAATATGTCATTGTGACTCGAATAGTTATCGTCTCCTTAAAGCTTCTGATGGTAACTGTGTTACATGTGCTCCTAAAACAAAATATGGTCGTGTGTACGGAAAGAAAGGAGAAAATGATATGGAATACCATTTGTAAGAAATGTCGGAAGGGTACTTATTCAGATATTGTATCTGACTCTGATCAATGTAAACCTATGACAAGATAAGACTTACTCGCATCTACTGGATAGACATAAATATCCTCCTCGTAATAATGAAATATAATATACACTAATTATTAATATCAATCGAGTATTAACATATAAGTTATTTTTAAACCCCTTTTGGGTTCCGTCCTAAACGGCGTTTCGGTCTGTGTCGCCACCATGGTCACACCGAGCCTCTGCGTGCTCCTCCATCGAGGACGACTTCAACTATGACAGCTCGGTGGCGTCTGCCAGCGTGTACATACGAATGGCATTTCTAAGAAAAGTCTACGGTATCCTTTCTACAATTTCCTTTAACAACGGCAACAGCTGCAGTATTTTTATACTTTGAATGCATCGGACATTTATACAAGGGAGTCCTGTTCTAATATTGGCATCAATGTTCGGATCTATAGGCTTGATTTTCGCATTGACTTTACACAGACATGAACATCCCCTGAATCTGTACATACTTTGTGGATTTACACTGTTAGAATCTCTAACGCTGGCCTCTGTTGTTACTTTCTATGATGCACGTATCGTTATGCAAGCTTTCATGTTGACTACTGCAGTGTTTCTTGCTCTGACTACATATACTCTACAATCAAAGAGAGATTTCAGTAAACTTGTAACAGGATTGTTTGCTGCTTTCTGGATTTTAATTTTGTCAGGAGTCTTGAGGATAAAGTTTAAAATAGAATTAATAAAGAACATATAGGTCATTTTTTAAACATGGATAGAAACCAAGGTTGTTAGTTAATAATATACAAGATATTTTTTCTCACTCTGATCCATGTAAACCAAGGACGAGAGACACTCTCATTCCTCATTCACGACACCATTAAAAATGGAAATTAAAGCCCTCTATTAAGCACAGACGGCTACAGGTCTACCATCAGGTTACCTTCGTCTACCTTCACAATGGCCTCTCCTTGTGCCCAGTTCAGTCCCTGTCATTGCCACGCTACTAAGGACTCCCTGAATACCGTGACTGACGTCAGACATTGTCTGACTGAATACATCCTGTGGGTTTCTCATAGATGGACCCATAGAGAAAGCGCAGGGCCTCTCTACAGGCTTCTCATCTCTTTCAGAATTGATGCAATGGAGCTATTTGGTAGCGAGTTGAAGGAGTTCTCGAATTCACTTCCGTGGGACAATATCGACAATTGCGTGGAGATCATTAAATGTTTCATCAGAAATGACTCCATGAAAACCGCCAAAGAACTTTGTGCAATAATTGGACTTTGTACTCAATCAGCTATTGTCACTGGAAGAGTCTTCAATGATAAGTATATCGACATACTACTTATGCTGCGAAAGATTCTGAACGAGAACGACTATCTCACCCTCTTGGATCATATCCTCACTGCTAAATACTAAATCTCCTTCATGCTCTCTCACTAATACTCTTACTCACTACACTTTTTATCATCTTATGATGAATGATTGCCTTCATCATTTTTTCGTGGAATATAATATAGGAATAATTAGCACCAGAATAGCTATGGATATCTCGTTAAGAATATTCTCTATAAGAGACATAATGTAGACATAGTTATTATATCCTTCTTAGATAAGTGTTACGCTACTGGAAAGTTTCCATCGTTATTATTACATGAAGATGATATAATTAAACCAACATTGAGATTGGCTCTTATGTTAGCTGGATTGAATTACTGTAATAAATGCATCGAGTATAGAGGGATATAGCAATTCTCGATAATAGTCATGCAATATTTGAATGAGACTGATAATTTAGGTAATACAGTACTACACACATATCTTTCTAGATTATATATCGTTAAAAATCTGTAAGATGTATATTTCTCATAAGTATCCACTGTGTAATATTATTAATGGATATATAGATAACGCAATAGGGACTAATAGTATTGTAAAAGATATAATCGACTATTTACGTACATATCCAGATATCTATATTCCTACTAGTTTGCTGCGTAGTTGCATCATTGATATGCATGATTTATCAGGATTCAGAGATGAATTACTAAGTAAACTACAATCCCACAATAAGTAAGAATCAAATATCAAAAACTCACTTTTGATTTTTCTAGTCTTAAGTAATACATATATTTATTAATAGACCTATGAAATAAAAAAAGGTAACAATGGATTCGCGTATAGCTATTTACGTATTAGTATCGGCATCTCTTTTGTATCTTGTTAATTGTCACAAACTAGTACATTACTTCAATCTGAAAATAAATGGAAGTGATATAACTAATACAGCAGATATATTGCTGGACAATTATCCAATTATGACCTTTGATGGAAAGGATATTTATCCATCTATCTCGTTCATGGTCGGTAATAAACTTTTCCTAGATCTTTATAAAAATATCTTTGAAGAATTTTTCAGACTATTTCGAGTATCTGTAAGTAGTCAATACGAGGAATTAGAATATTATTATTCATGTGATTATACTAACAACCGTCCTACAATTAAACAACATTACTTTTATAACGGCGACGAATATACTGAAATTGATAGATCGAAAAAAGCCACTAATAAAAACAGTTGGTTAATTACTTCAGGCTTTAGACTACAAAAATGGTTCGATAGCGAAGATTGTATAATTTATCTCAGATCTTTAGTTAGAAGAATGGAAGACAGTAACAAAAACAGTAAAAAAACTTAGTACTTAGATATCGAAAAAATATATTTTTGTAGACTCTTGAGAATAGAAGGAAAACATGTACATAATTATAAAAAATGAAAATCAATGGCGAATAAGACAGTGCGATTCGCACCATGGAGTCGGTAGATTTCATGGCTGTCGATGAGCAGTTTCACGACGACCTCGATCTTTGGTCATTATCTTTGGTAGATGATTATAAAAAACATGGATTAGGTGTTGACTGTTATGTTCTAGAACCAGTTGTTGACAGGAAAATATTTGATAGATTTCTCCTTGAACCAATTTGTGATCCTGTAGATGTTCTGTATGATTATTTTAGGATTCATAGAGATAATATTGATCAGTATATAGTAGATAGACTGTTTGCATATATTACATATAAAGATATTATATCTGCATTAGTGTCAAAGAATTATATGGAAGATATTTTCTCTATAATTATTAAGAATTGTAATTCTGTGCAAGATCTCTTACTTTACTATCTATCTAATGCATATGTAGAAATAGACATTGTTGATCTTATGGTAGATCATGGGGCTGTAATATATAAAATAGAATGCTTGAATGCCTATTTTAGGGGAATATGTAAAAAGGAAAGTAGTGTTGTTGAGTTTATTTTGAATTGTGGTATCCCAGATGAAAATGATGTTAAATTAGATCTATATAAAATAATTCAGTATACTAGGGGATTCCTTGTAGATGAACCCACAGTATTAGAAATTTATAAGCTTTGTATCCCATATATTGAAGATATCAATCAACTAGATGCTGGTGGAAGGACCTTGCTTTATCGCGCTATCTATGCAGGTTATATAGATTTAGTATCATGGCTATTAGAAAATGGAGCAAATGTCAACGCAGTAATGAGTAATGGATATACATGTCTTGACGTGGCCGTGGATAGGGGATCTGTCATCGCCCGTAGGGAAGCACATCTTAAAATATTAGAAATATTGCTTAGAGAACCATTGTCTATTGACTGTATAAAATTAGCTATACTTAATAATACAATTGAAAACCATGATGTGATAAAGCTCTGTATCAAGTATTTTATGATGGTAGATTATTCACTTTGTAATGTGTATGCATCATCACTCTTTGATTATATAATTGATTGTAAACAAGAATTGGAGTACATTAGGCAGATGAAAATTCATAATACAACCATGTATGAGTTAATCTATAATAGAGACAAAAACAAGCATGCTTCCCATATTCTACATAGGTATTCTAAACATCCAGTTTTGACACAGTGTATCACTAAAGGATTCAAGATTTACACAGAAGTAACCGAGCAGGTCACTAAAGCTCTAAACAGACGTGCTCTAATAGATGAGATAATAAACAATGTATCAACTGATGACAATCTCCTATCAAAACTTCCATTAGAAATTAGGGATCTAATTGTTTCACAAGCTGTCATATAGAGTTCTATCCACCCACCTTTCTTGAAATGAGTTAATAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTAAGTCATAAGTTAGTTTATAGTCTAACACTTCTAATTTTTATACCTTGATCTTTTTCTCTAATTATGAAAAAGTAAATCATTATGAAGATGGATGAAATGGACGAGATTGTGCGCATCGTTAACGATAGTATGTGGTACGTACCTAACGCATTTATGGACGACGGTGATAATGAAGGTCACATTTCTGTCAATAATGTCTGTCATATGTATCTCGCATTCTTTGATGTGGATATATCATCTCATCTGTTTAAATTAGTTATTAAACACTGCGATCTGAATAAACGACTAAAATGTGGTAACTCTCCATTACATTGCTATACGATGAATACACGATTTAATCCATCTGTATTAAAGATATTGTTACGCCACGGCATGCGTAACTTTGATAGCAAGGATAAAAAAGGACATATTCCTCTACACCACTATCTGATTCATTCACTATCAATCGATAACAAGATCTTTGATATACTAACGGACCCCATTGATGACTTTAGTAAATCATCCGATCTATTGCTGTGTTATCTTAGATATAAATTCAATGGGAGCTTAAACTATTACGTTCTGTACAAATTATTGACTAAAGGATCTGACCCTAATTGCGTCGATGAGGATGGACTCACTTCTCTTCATTACTACTGTAAACACATATCCGCGTTCCACGAAAGCAATTATTACAAGTCAAAGAGTCACACTAAGATGCGAGCTGAGAAGCGATTCATCTACGCGATAATAGATCATGGAGCAAACATTAACGCGGTTACGAAAATCGGAAATACGCCGTTACACACTTACCTTCAACAGTATACCAAACATAGTCCTCGTGTGGTGTATGCTCTTTTATCTCGAGGAGCCGATACGAGGATACGTAATAATCTTGATTGTACACCCATCATGGAATACATAAAGAACGATTGTGCAACAGGTCATATTCTCATAATGTTACTCAATTGGCACGAACAAAAATACGGGAAATTACAAAAGGAAGAAGGACAACATCTACTTTATCTATTCATAAAACATAATCAAGGATATGGAAGTCGCTCTCTCAATATACTACGGTATCTACTAGATAGATTCGACATTCAGAAAGACGAATACTATAATACAATGACTCCTCTTCATACCGCCTTCCAGAATTGCAATAACAATGTTGCCTCATACCTCGTATACATCGGATACGACATCAACCTTCCGACTAAAGACGATAAGACAGTATTCGACTTGGTGTTTGAAAACAGAAACATTATATACAAGGCGGATGTCGTTAATGACATTATCCACCACAGACTGAAAGTATCTCTACCTATGATTAAATCGTTGTTCTACAAGATGTCGGAGTTCTCTCCCTACGACGATCACTACGTAAAGAAGATAATAGCCTACTGCCTATTAAGGGACGAGTCATTTGCGGAACTACATACTAAATTCTGTTTAAACGAGGACTATAAAAGTGTATTTATGAAAAATATATCATTCGATAAGATAGATTCCATCATCGAAAAATGTAGTCGTGACATAAGTCTCCTCAAAGAGATTCGAATCTCAGACACCGACTTGTATACGGTATTGAGAACAGAAGACATCCGGTATCACACATATCTCGAAGCCATACATTCAGACAAACGCATTTCATTTCCCATGTACGACGATCTCATAGAACAGTGTCATCTATCGATGGAGCATAAAAGTAAACTCGTCGACAAAGCACTCAATAAATTAGAGTCTACCATCGATAGTCAATCTAGACTATCGTATTTGCCTCCGGAAATTATGCGCAATATCATAACCAAGCTAAGCGACTACCATCTAAACAGTATGTTGTACGGAAAGAACCATTACAAATATTATCCATGATAGAAAGAAAATATTTAAAAAATAATCTATATGATTGGAGAAGTAGGAAACAAACAGTAACAAGACGACGATTACTACATTATTAAATCATGAGGTCCGTATTATACTCGTATATATTGTTTCTCTCATGTATAATAATAAACGGAAGAGATATAGCACCACATGCACCATCCAATGGAAAGTGTAAAGACAACGAATACAGAAGCCGTAATCTATGTTGTCTATCGTGTCCTCCGGGAACTTACGCTTCCAGATTATGTGATAGCAAGACTAATACACAATGTACACCGTGTGGTTCGGATACCTTTACATCTCACAATAATCATTTACAGGCTTGTCTAAGTTGTAACGGAAGATGTGATAGTAATCAGGTAGAGACGCGATCGTGTAACACGACTCACAATAGAATCTGTGAATGCTCTCCAGGATATTATTGTCTTCTCAAAGGAGCATCAGGGTGTAGAACATGTATTTCTAAAACAAAGTGTGGAATAGGATACGGAGTATCCGGATACACGTCTACCGGAGACGTCATCTGTTCTCCGTGTGGTCCCGGAACATATTCTCACACCGTCTCTTCCACAGATAAATGCGAACCCGTCGTAACCAGCAATACATTTAACTATATCGATGTGGAAATTAACCTGTATCCAGTCAACGACACATCGTGTACTCGGACGACCACTACCGGTCTCAGCGAATCCATCTCAACGTCGGAACTAACTATTACCATGAATCATAAAGATTGTGATCCAGTCTTTCGTGCAGAATACTTCTCTGTCCTTAATAATGTAGCAACTTCAGGATTCTTTACAGGAGAAAATAGATATCAGAATACTTCAAAGATATGTACTCTGAATTTCGAGATTAAATGTAACAACAAAGATTCATCTTCCAAACAGTTAACGAAAACAAAGAATGATACTATCATGCCGCATTCAGAGACGGTAACTCTAGTGGGCGACTGTCTATCTAGCGTCGACATCTACATACTATATAGTAATACCAATACTCAAGACTACGAAAATGATACAATCTCTTATCATATGGGTAATGTTCTCGATGTCAATAGCCATATGCCCGCTAGTTGCGATATACATAAACTGATCACTAATTCCCAGAATCCCACCCACTTATAGTAAGTTTTTTTACCTATAAATAATAAATACAATAATTAATTTCTCGTAAAAGTAGAAAATATATTCTAATTTATTATATGGTAAGAAAGTAGAATCATCTAGAACAGTAATCAATCAATAGCAATCATGAAACAATATATTGTCCTGGCATGCATGTGCCTAGTGGCAGCTGCTATGCCTACTAGTCTTCAACAATCTTCATCCTCGTGTACTGAAGAAGAAAACAAACATCATATGGGAATCGATGTTATTATCAAAGTCACAAAGCAAGACCAAACACCGACCAATGATAAGATTTGTCAATCCGTAACGGAAGTTACAGAGACCGAAGATGATGAGGTATCCGAAGAAGTTGTAAAAGGAGATCCCACCACTTATTACACTATCGTCGGTGCGGGTCTTAACATGAACTTTGGATTCACCAAATGCCCAAAGATTTCATCCATCTCCGAATCCTCTGATGGAAACACTGTGAATACTAGATTGTCCAGCGTGTCACCGGGACAAGGTAAGGACTCTCCCGCGATCACGCGTGAAGAAGCTCTGGCTATGATCAAAGACTGTGAGATGTCTATCGACATCAGATGTAGCGAAGAAGAGAAAGACAGTGACATCAAGACCCATCCAGTACTTGGGTCTAACATCTCACATAAGAAAGTGAGTTACAAAGATATCATCGGTTCAACGATCGTTGATACAAAATGTGTCAAGAACCTAGAGTTTAGCGTACGTATCGGAGACATGTGTGAGGAATCATCTGAACTTGAAGTCAAGGATGGATTCAAGTATGTCGACGGATCGGCATCTGAAGGTGCAACCGATGATACTTCACTCATCGATTCAACAAAACTCAAAGCATGTGTCTGAATCGATAACTCTATTCATCTGAAAATGGATGAGTTGGGTTAATCGAACGATTCAGACACCGCACCACGAATTAAAAAAGACCGGGCACTATATTCCGGTTTGCAAAACAAAAATATTTAACTACATTCACAAAAAGTTACCTCTCGTTACTTCTTCTTTCTGTTTCAATATGTGATACGATATGATCACTATTCGTATTCTCTTGGTCTCATAAAAAAGTTTTACAAAAAAAAAAAAAAATATTTTTATTCTCTTTCTCTCTTCGATGGTCTCACAAAAATATTAAACCTCTTTCTGATGTCTCAACTATTTCGTAAACGATAACGTCCAACAATATATTCTCGTAGAGCTTATCAACATCCTTATACCAATCTAGGTTGTCAGACAATTGCATCATAAAATAATGTTTATAATTTACACGTTAACATCATATAATAAACGTATATAGTTAATATTTTTGGAATATAAATGATCTGTAAAATCCATGTAGGGGACACTGCTCACGTTTTTTCTCTAGTACATAATTTCACACAAGTTTTTATACAGACAAATTAATTCTCGTCCATATATTTTAAAACATTGACTTTTGTACTAAGAAAAATATCTTGACTAACCATCTCTTTCTCTCTTCGATGGGTCTCACAAAAATATTAAACCTCTTTCTGATGGAGTCGTAAAAAGTTTTTATCCTTTCTCTCTTCGATAGGTCTCACAAAAATATTAAACCTCTTTCTGATGGTCTCTATAAACGATTGATTTTTCTTACCCTCTAGAGTTTCCTACGGTCGTGGGTCACACATTTTTTTCTAGACACTAAATAAAATAGTAAAATTAAATTAATTA diff --git a/assets/MPXV-UK_P2.noN.fasta.fai b/assets/MPXV-UK_P2.noN.fasta.fai new file mode 100755 index 0000000..26502a4 --- /dev/null +++ b/assets/MPXV-UK_P2.noN.fasta.fai @@ -0,0 +1 @@ +MT903344.1 197223 64 197223 197224 diff --git a/assets/MPXV-UK_P2.noN_39086_40204.fasta b/assets/MPXV-UK_P2.noN_39086_40204.fasta new file mode 100755 index 0000000..d0537e3 --- /dev/null +++ b/assets/MPXV-UK_P2.noN_39086_40204.fasta @@ -0,0 +1,2 @@ +>f13L +TAAATTTTTAACGATTTACTGTGGCTAGATACCCAATCTCTTTCAAATATTTTTTTAGCCTCGCTTACAAGCTGTTTATCTATACTATTAAAACTGACGAATCCGTGATTTTGGTAATGGGTTCCGTCGAAATTTGCCGAAGTGATATGAACATATTCGTCGTCGACTATTAACAATTTTGTATTATTCTGAATAGTGAAAACCTTCACAGATAGATCATTTTGAACACACAACGCATCTAGACTTCTGGCGGTTGCCATAGAATATACGTCGTTCTTATCCCAATTACCAACTAGAAGTCTGATCTTAACTCCTCTATTAATGGCTGCTTCTATAATGGAGTTGTAAATGTCAGGCCAATAGTAGCTATTACCGTCGACACGTGTAGTGGGAACTATGGCCAAATGTTCAATATCTATACTAGTCTTAGCCGACTTGAGTTTATCAATAACTACATCAGTGTCTAGATCTCTAGAATATCCCAATAGGTGTTCTGGAGAATCAGTAAAGAACACTCCACCTATAGGATTCTTAATATGATACGCAGTGCTAACTGGCAGACAACAAGCCGCAGAGCATAAATTCAACCATGAATTTTTTGCGCTATTAAAGGCTTTAAAAGTATCAAATCTTCTACGAAGATCTGTGGCCAGCGGAGGATAATCAGAATATACGCCTAACGTTTTAATCGTATGTATAGATCCTCCAGTAAATGACGCGTTTCCTACATAACATCTTTCATCATCAGACACCCAAAAACAACCGAGTAGTAGTCCCACATTATTTTTTTTATCTATATTAACGGTTATAAAATTTATATCCGGGGAGTGACTTTGTAGCTCTCCCAGATTTCTTTTCCCTCGTTCATCTAGCAAAACTATTATTTTAATCCCTTTTTCAGATACCTCTTTTAGTTTATCAAAAATAAGCGCTCCCCTAGTAGTACTCAGAGGATTACAACAAAAAGATGCTATGTATATATATTTCTTAGCTAGAGTGATAATTTCGTTAAAACATTCAAATGTTGTCAAATGATCGGATCTAAAATCCATATTTTCTGGTAGTGTTTCTACCAGCCTACATTTTGCTCCCGCAGGTACCGATGCAAATGGCCACAT diff --git a/assets/MPXV-UK_P2.noN_drugres.bed b/assets/MPXV-UK_P2.noN_drugres.bed new file mode 100755 index 0000000..68ea488 --- /dev/null +++ b/assets/MPXV-UK_P2.noN_drugres.bed @@ -0,0 +1,3 @@ +#dummy header +MT903344.1 39086 40204 F13L 0 - +#MT903344.1 51427 54447 E9L 0 - diff --git a/assets/UK-P2.noN.gff b/assets/UK-P2.noN.gff new file mode 100755 index 0000000..ce91da9 --- /dev/null +++ b/assets/UK-P2.noN.gff @@ -0,0 +1,381 @@ +MT903344.1 Genbank region 1 197223 . + . ID=MT903344.1:1..197233;Dbxref=taxon:10244;country=United Kingdom: Great Britain;gbkey=Src;genome=genomic;isolate=MPXV-UK_P2;mol_type=genomic DNA;nat-host=Homo sapiens +MT903344.1 Genbank gene 844 1584 . - . ID=gene-MPXV-UK_P2-001;Name=MPXV-UK_P2-001;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-001 +MT903344.1 Genbank CDS 844 1584 . - 0 ID=cds-QNP13600.1;Parent=gene-MPXV-UK_P2-001;Dbxref=NCBI_GP:QNP13600.1;Name=QNP13600.1;Note=J1L%3B similar to Vaccinia virus strain Copenhagen C23L%3B most abundant secreted protein%3B CC-chemokine binding;gbkey=CDS;locus_tag=MPXV-UK_P2-001;product=MPXVgp001;protein_id=QNP13600.1 +MT903344.1 Genbank gene 1711 2760 . - . ID=gene-MPXV-UK_P2-002;Name=MPXV-UK_P2-002;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-002 +MT903344.1 Genbank CDS 1711 2760 . - 0 ID=cds-QNP13601.1;Parent=gene-MPXV-UK_P2-002;Dbxref=NCBI_GP:QNP13601.1;Name=QNP13601.1;Note=J2L;gbkey=CDS;locus_tag=MPXV-UK_P2-002;product=MPXVgp002;protein_id=QNP13601.1 +MT903344.1 Genbank gene 2850 4616 . - . ID=gene-MPXV-UK_P2-003;Name=MPXV-UK_P2-003;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-003 +MT903344.1 Genbank CDS 2850 4616 . - 0 ID=cds-QNP13602.1;Parent=gene-MPXV-UK_P2-003;Dbxref=NCBI_GP:QNP13602.1;Name=QNP13602.1;Note=J3L;gbkey=CDS;locus_tag=MPXV-UK_P2-003;product=MPXVgp003;protein_id=QNP13602.1 +MT903344.1 Genbank gene 4852 6165 . - . ID=gene-MPXV-UK_P2-004;Name=MPXV-UK_P2-004;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-004 +MT903344.1 Genbank CDS 4852 6165 . - 0 ID=cds-QNP13603.1;Parent=gene-MPXV-UK_P2-004;Dbxref=NCBI_GP:QNP13603.1;Name=QNP13603.1;Note=D1L;gbkey=CDS;locus_tag=MPXV-UK_P2-004;product=MPXVgp004;protein_id=QNP13603.1 +MT903344.1 Genbank pseudogene 6934 7152 . - . ID=gene-MPXV-UK_P2-005;Name=MPXV-UK_P2-005;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-005;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 6934 7152 . - 0 ID=cds-MPXV-UK_P2-005;Parent=gene-MPXV-UK_P2-005;Note=D2L;gbkey=CDS;locus_tag=MPXV-UK_P2-005;product=MPXVgp005;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 7589 8017 . + . ID=gene-MPXV-UK_P2-006;Name=MPXV-UK_P2-006;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-006 +MT903344.1 Genbank CDS 7589 8017 . + 0 ID=cds-QNP13604.1;Parent=gene-MPXV-UK_P2-006;Dbxref=NCBI_GP:QNP13604.1;Name=QNP13604.1;Note=D3R%3B similar to Vaccinia virus strain Copenhagen C11R%3B secreted growth factor;gbkey=CDS;locus_tag=MPXV-UK_P2-006;product=MPXVgp006;protein_id=QNP13604.1 +MT903344.1 Genbank pseudogene 8998 9111 . - . ID=gene-MPXV-UK_P2-007;Name=MPXV-UK_P2-007;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-007;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 8998 9111 . - 0 ID=cds-MPXV-UK_P2-007;Parent=gene-MPXV-UK_P2-007;Note=D4L;gbkey=CDS;locus_tag=MPXV-UK_P2-007;product=MPXVgp007;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 9596 10324 . + . ID=gene-MPXV-UK_P2-008;Name=MPXV-UK_P2-008;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-008 +MT903344.1 Genbank CDS 9596 10324 . + 0 ID=cds-QNP13605.1;Parent=gene-MPXV-UK_P2-008;Dbxref=NCBI_GP:QNP13605.1;Name=QNP13605.1;Note=D5R%3B zinc binding%3B virosome localization%3B virulence factor%3B inhibition of apoptosis induced by UV irradiation;gbkey=CDS;locus_tag=MPXV-UK_P2-008;product=MPXVgp008;protein_id=QNP13605.1 +MT903344.1 Genbank gene 10487 10867 . - . ID=gene-MPXV-UK_P2-009;Name=MPXV-UK_P2-009;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-009 +MT903344.1 Genbank CDS 10487 10867 . - 0 ID=cds-QNP13606.1;Parent=gene-MPXV-UK_P2-009;Dbxref=NCBI_GP:QNP13606.1;Name=QNP13606.1;Note=D6L%3B secreted IL-18 binding protein;gbkey=CDS;locus_tag=MPXV-UK_P2-009;product=MPXVgp009;protein_id=QNP13606.1 +MT903344.1 Genbank gene 10927 12909 . - . ID=gene-MPXV-UK_P2-010;Name=MPXV-UK_P2-010;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-010 +MT903344.1 Genbank CDS 10927 12909 . - 0 ID=cds-QNP13607.1;Parent=gene-MPXV-UK_P2-010;Dbxref=NCBI_GP:QNP13607.1;Name=QNP13607.1;Note=D7L%3B host range%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-010;product=MPXVgp010;protein_id=QNP13607.1 +MT903344.1 Genbank gene 13043 13237 . - . ID=gene-MPXV-UK_P2-011;Name=MPXV-UK_P2-011;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-011 +MT903344.1 Genbank CDS 13043 13237 . - 0 ID=cds-QNP13608.1;Parent=gene-MPXV-UK_P2-011;Dbxref=NCBI_GP:QNP13608.1;Name=QNP13608.1;Note=D8L;gbkey=CDS;locus_tag=MPXV-UK_P2-011;product=MPXVgp011;protein_id=QNP13608.1 +MT903344.1 Genbank gene 13384 15276 . - . ID=gene-MPXV-UK_P2-012;Name=MPXV-UK_P2-012;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-012 +MT903344.1 Genbank CDS 13384 15276 . - 0 ID=cds-QNP13609.1;Parent=gene-MPXV-UK_P2-012;Dbxref=NCBI_GP:QNP13609.1;Name=QNP13609.1;Note=D9L%3B similar to Vaccinia virus strain Copenhagen C9L%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-012;product=MPXVgp012;protein_id=QNP13609.1 +MT903344.1 Genbank gene 15934 16386 . - . ID=gene-MPXV-UK_P2-013;Name=MPXV-UK_P2-013;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-013 +MT903344.1 Genbank CDS 15934 16386 . - 0 ID=cds-QNP13610.1;Parent=gene-MPXV-UK_P2-013;Dbxref=NCBI_GP:QNP13610.1;Name=QNP13610.1;Note=D10L%3B similar to Vaccinia virus strain Copenhagen C7L%3B host range;gbkey=CDS;locus_tag=MPXV-UK_P2-013;product=MPXVgp013;protein_id=QNP13610.1 +MT903344.1 Genbank gene 16611 17078 . - . ID=gene-MPXV-UK_P2-014;Name=MPXV-UK_P2-014;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-014 +MT903344.1 Genbank CDS 16611 17078 . - 0 ID=cds-QNP13611.1;Parent=gene-MPXV-UK_P2-014;Dbxref=NCBI_GP:QNP13611.1;Name=QNP13611.1;Note=D11L%3B similar to Vaccinia virus strain Copenhagen C6L;gbkey=CDS;locus_tag=MPXV-UK_P2-014;product=MPXVgp014;protein_id=QNP13611.1 +MT903344.1 Genbank gene 17222 17842 . - . ID=gene-MPXV-UK_P2-015;Name=MPXV-UK_P2-015;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-015 +MT903344.1 Genbank CDS 17222 17842 . - 0 ID=cds-QNP13612.1;Parent=gene-MPXV-UK_P2-015;Dbxref=NCBI_GP:QNP13612.1;Name=QNP13612.1;Note=D12L%3B similar to Vaccinia virus strain Copenhagen C5L%3B BTB domain of kelch-like protein;gbkey=CDS;locus_tag=MPXV-UK_P2-015;product=MPXVgp015;protein_id=QNP13612.1 +MT903344.1 Genbank gene 17887 18837 . - . ID=gene-MPXV-UK_P2-016;Name=MPXV-UK_P2-016;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-016 +MT903344.1 Genbank CDS 17887 18837 . - 0 ID=cds-QNP13613.1;Parent=gene-MPXV-UK_P2-016;Dbxref=NCBI_GP:QNP13613.1;Name=QNP13613.1;Note=D13L%3B similar to Vaccinia virus strain Copenhagen C4L;gbkey=CDS;locus_tag=MPXV-UK_P2-016;product=MPXVgp016;protein_id=QNP13613.1 +MT903344.1 Genbank gene 18768 19148 . - . ID=gene-MPXV-UK_P2-017;Name=MPXV-UK_P2-017;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-017 +MT903344.1 Genbank CDS 18768 19148 . - 0 ID=cds-QNP13614.1;Parent=gene-MPXV-UK_P2-017;Dbxref=NCBI_GP:QNP13614.1;Name=QNP13614.1;Note=kelch-like fragment%3B D18L;gbkey=CDS;locus_tag=MPXV-UK_P2-017;product=MPXVgp021;protein_id=QNP13614.1 +MT903344.1 Genbank gene 19370 20014 . - . ID=gene-MPXV-UK_P2-018;Name=MPXV-UK_P2-018;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-018 +MT903344.1 Genbank CDS 19370 20014 . - 0 ID=cds-QNP13615.1;Parent=gene-MPXV-UK_P2-018;Dbxref=NCBI_GP:QNP13615.1;Name=QNP13615.1;Note=D19L%3B similar to Vaccinia virus strain Copenhagen C1L;gbkey=CDS;locus_tag=MPXV-UK_P2-018;product=MPXVgp022;protein_id=QNP13615.1 +MT903344.1 Genbank gene 20060 20413 . - . ID=gene-MPXV-UK_P2-019;Name=MPXV-UK_P2-019;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-019 +MT903344.1 Genbank CDS 20060 20413 . - 0 ID=cds-QNP13616.1;Parent=gene-MPXV-UK_P2-019;Dbxref=NCBI_GP:QNP13616.1;Name=QNP13616.1;Note=P1L%3B similar to Vaccinia virus strain Copenhagen N1L%3B secreted virulence factor;gbkey=CDS;locus_tag=MPXV-UK_P2-019;product=MPXVgp023;protein_id=QNP13616.1 +MT903344.1 Genbank gene 20540 21073 . - . ID=gene-MPXV-UK_P2-020;Name=MPXV-UK_P2-020;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-020 +MT903344.1 Genbank CDS 20540 21073 . - 0 ID=cds-QNP13617.1;Parent=gene-MPXV-UK_P2-020;Dbxref=NCBI_GP:QNP13617.1;Name=QNP13617.1;Note=P2L%3B similar to Vaccinia virus strain Copenhagen N2L;gbkey=CDS;locus_tag=MPXV-UK_P2-020;product=MPXVgp024;protein_id=QNP13617.1 +MT903344.1 Genbank gene 21114 22442 . - . ID=gene-MPXV-UK_P2-021;Name=MPXV-UK_P2-021;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-021 +MT903344.1 Genbank CDS 21114 22442 . - 0 ID=cds-QNP13618.1;Parent=gene-MPXV-UK_P2-021;Dbxref=NCBI_GP:QNP13618.1;Name=QNP13618.1;Note=O1L%3B similar to Vaccinia virus strain Copenhagen M1L%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-021;product=MPXVgp025;protein_id=QNP13618.1 +MT903344.1 Genbank gene 22506 23168 . - . ID=gene-MPXV-UK_P2-022;Name=MPXV-UK_P2-022;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-022 +MT903344.1 Genbank CDS 22506 23168 . - 0 ID=cds-QNP13619.1;Parent=gene-MPXV-UK_P2-022;Dbxref=NCBI_GP:QNP13619.1;Name=QNP13619.1;Note=O2L%3B similar to Vaccinia virus strain Copenhagen M2L;gbkey=CDS;locus_tag=MPXV-UK_P2-022;product=MPXVgp026;protein_id=QNP13619.1 +MT903344.1 Genbank gene 23273 24127 . - . ID=gene-MPXV-UK_P2-023;Name=MPXV-UK_P2-023;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-023 +MT903344.1 Genbank CDS 23273 24127 . - 0 ID=cds-QNP13620.1;Parent=gene-MPXV-UK_P2-023;Dbxref=NCBI_GP:QNP13620.1;Name=QNP13620.1;Note=C1L%3B similar to Vaccinia virus strain Copenhagen K1L%3B host range%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-023;product=MPXVgp027;protein_id=QNP13620.1 +MT903344.1 Genbank gene 24360 25487 . - . ID=gene-MPXV-UK_P2-024;Name=MPXV-UK_P2-024;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-024 +MT903344.1 Genbank CDS 24360 25487 . - 0 ID=cds-QNP13621.1;Parent=gene-MPXV-UK_P2-024;Dbxref=NCBI_GP:QNP13621.1;Name=QNP13621.1;Note=SPI-3%3B C2L%3B similar to Vaccinia virus strain Copenhagen K2L%3B serine protease inhibitor-like%2C SPI-3%3B inhibition of the ability of infected cells to fuse;gbkey=CDS;locus_tag=MPXV-UK_P2-024;product=MPXVgp028;protein_id=QNP13621.1 +MT903344.1 Genbank gene 25645 25776 . - . ID=gene-MPXV-UK_P2-025;Name=MPXV-UK_P2-025;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-025 +MT903344.1 Genbank CDS 25645 25776 . - 0 ID=cds-QNP13622.1;Parent=gene-MPXV-UK_P2-025;Dbxref=NCBI_GP:QNP13622.1;Name=QNP13622.1;Note=C3L;gbkey=CDS;locus_tag=MPXV-UK_P2-025;product=MPXVgp029;protein_id=QNP13622.1 +MT903344.1 Genbank gene 25832 27106 . - . ID=gene-MPXV-UK_P2-026;Name=MPXV-UK_P2-026;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-026 +MT903344.1 Genbank CDS 25832 27106 . - 0 ID=cds-QNP13623.1;Parent=gene-MPXV-UK_P2-026;Dbxref=NCBI_GP:QNP13623.1;Name=QNP13623.1;Note=C4L%3B similar to Vaccinia virus strain Copenhagen K4L%3B phospholipase D-like;gbkey=CDS;locus_tag=MPXV-UK_P2-026;product=MPXVgp030;protein_id=QNP13623.1 +MT903344.1 Genbank gene 27134 27964 . - . ID=gene-MPXV-UK_P2-027;Name=MPXV-UK_P2-027;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-027 +MT903344.1 Genbank CDS 27134 27964 . - 0 ID=cds-QNP13624.1;Parent=gene-MPXV-UK_P2-027;Dbxref=NCBI_GP:QNP13624.1;Name=QNP13624.1;Note=C5L%3B lysophospholipase-like;gbkey=CDS;locus_tag=MPXV-UK_P2-027;product=MPXVgp031;protein_id=QNP13624.1 +MT903344.1 Genbank gene 28100 28549 . + . ID=gene-MPXV-UK_P2-028;Name=MPXV-UK_P2-028;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-028 +MT903344.1 Genbank CDS 28100 28549 . + 0 ID=cds-QNP13625.1;Parent=gene-MPXV-UK_P2-028;Dbxref=NCBI_GP:QNP13625.1;Name=QNP13625.1;Note=C6R%3B similar to Vaccinia virus strain Copenhagen K7R%3B VAC B15R-like;gbkey=CDS;locus_tag=MPXV-UK_P2-028;product=MPXVgp032;protein_id=QNP13625.1 +MT903344.1 Genbank gene 28612 29271 . - . ID=gene-MPXV-UK_P2-029;Name=MPXV-UK_P2-029;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-029 +MT903344.1 Genbank CDS 28612 29271 . - 0 ID=cds-QNP13626.1;Parent=gene-MPXV-UK_P2-029;Dbxref=NCBI_GP:QNP13626.1;Name=QNP13626.1;Note=C7L%3B similar to Vaccinia virus strain Copenhagen F1L;gbkey=CDS;locus_tag=MPXV-UK_P2-029;product=MPXVgp033;protein_id=QNP13626.1 +MT903344.1 Genbank gene 29283 29738 . - . ID=gene-MPXV-UK_P2-030;Name=MPXV-UK_P2-030;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-030 +MT903344.1 Genbank CDS 29283 29738 . - 0 ID=cds-QNP13627.1;Parent=gene-MPXV-UK_P2-030;Dbxref=NCBI_GP:QNP13627.1;Name=QNP13627.1;Note=C8L%3B similar to Vaccinia virus strain Copenhagen F2L%3B deoxyuridine triphosphatase;gbkey=CDS;locus_tag=MPXV-UK_P2-030;product=MPXVgp034;protein_id=QNP13627.1 +MT903344.1 Genbank gene 29755 31203 . - . ID=gene-MPXV-UK_P2-031;Name=MPXV-UK_P2-031;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-031 +MT903344.1 Genbank CDS 29755 31203 . - 0 ID=cds-QNP13628.1;Parent=gene-MPXV-UK_P2-031;Dbxref=NCBI_GP:QNP13628.1;Name=QNP13628.1;Note=C9L%3B similar to Vaccinia virus strain Copenhagen F3L%3B kelch-like;gbkey=CDS;locus_tag=MPXV-UK_P2-031;product=MPXVgp035;protein_id=QNP13628.1 +MT903344.1 Genbank gene 31214 32173 . - . ID=gene-MPXV-UK_P2-032;Name=MPXV-UK_P2-032;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-032 +MT903344.1 Genbank CDS 31214 32173 . - 0 ID=cds-QNP13629.1;Parent=gene-MPXV-UK_P2-032;Dbxref=NCBI_GP:QNP13629.1;Name=QNP13629.1;Note=C10L%3B similar to Vaccinia virus strain Copenhagen F4L%3B ribonucleotide reductase%2C small subunit%2C R2;gbkey=CDS;locus_tag=MPXV-UK_P2-032;product=MPXVgp036;protein_id=QNP13629.1 +MT903344.1 Genbank gene 32204 33160 . - . ID=gene-MPXV-UK_P2-033;Name=MPXV-UK_P2-033;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-033 +MT903344.1 Genbank CDS 32204 33160 . - 0 ID=cds-QNP13630.1;Parent=gene-MPXV-UK_P2-033;Dbxref=NCBI_GP:QNP13630.1;Name=QNP13630.1;Note=C11L%3B similar to Vaccinia virus strain Copenhagen F5L;gbkey=CDS;locus_tag=MPXV-UK_P2-033;product=MPXVgp037;protein_id=QNP13630.1 +MT903344.1 Genbank gene 33190 33417 . - . ID=gene-MPXV-UK_P2-034;Name=MPXV-UK_P2-034;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-034 +MT903344.1 Genbank CDS 33190 33417 . - 0 ID=cds-QNP13631.1;Parent=gene-MPXV-UK_P2-034;Dbxref=NCBI_GP:QNP13631.1;Name=QNP13631.1;Note=C12L%3B similar to Vaccinia virus strain Copenhagen F6L;gbkey=CDS;locus_tag=MPXV-UK_P2-034;product=MPXVgp038;protein_id=QNP13631.1 +MT903344.1 Genbank gene 33434 33658 . - . ID=gene-MPXV-UK_P2-035;Name=MPXV-UK_P2-035;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-035 +MT903344.1 Genbank CDS 33434 33658 . - 0 ID=cds-QNP13632.1;Parent=gene-MPXV-UK_P2-035;Dbxref=NCBI_GP:QNP13632.1;Name=QNP13632.1;Note=C13L%3B similar to Vaccinia virus strain Copenhagen F7L;gbkey=CDS;locus_tag=MPXV-UK_P2-035;product=MPXVgp039;protein_id=QNP13632.1 +MT903344.1 Genbank gene 33810 34004 . - . ID=gene-MPXV-UK_P2-036;Name=MPXV-UK_P2-036;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-036 +MT903344.1 Genbank CDS 33810 34004 . - 0 ID=cds-QNP13633.1;Parent=gene-MPXV-UK_P2-036;Dbxref=NCBI_GP:QNP13633.1;Name=QNP13633.1;Note=C14L%3B similar to Vaccinia virus strain Copenhagen F8L;gbkey=CDS;locus_tag=MPXV-UK_P2-036;product=MPXVgp040;protein_id=QNP13633.1 +MT903344.1 Genbank gene 34061 34699 . - . ID=gene-MPXV-UK_P2-037;Name=MPXV-UK_P2-037;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-037 +MT903344.1 Genbank CDS 34061 34699 . - 0 ID=cds-QNP13634.1;Parent=gene-MPXV-UK_P2-037;Dbxref=NCBI_GP:QNP13634.1;Name=QNP13634.1;Note=C15L%3B similar to Vaccinia virus strain Copenhagen F9L;gbkey=CDS;locus_tag=MPXV-UK_P2-037;product=MPXVgp041;protein_id=QNP13634.1 +MT903344.1 Genbank gene 34686 36005 . - . ID=gene-MPXV-UK_P2-038;Name=MPXV-UK_P2-038;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-038 +MT903344.1 Genbank CDS 34686 36005 . - 0 ID=cds-QNP13635.1;Parent=gene-MPXV-UK_P2-038;Dbxref=NCBI_GP:QNP13635.1;Name=QNP13635.1;Note=C16L%3B similar to Vaccinia virus strain Copenhagen F10L%3B serine;gbkey=CDS;locus_tag=MPXV-UK_P2-038;product=MPXVgp042;protein_id=QNP13635.1 +MT903344.1 Genbank gene 36028 37092 . - . ID=gene-MPXV-UK_P2-039;Name=MPXV-UK_P2-039;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-039 +MT903344.1 Genbank CDS 36028 37092 . - 0 ID=cds-QNP13636.1;Parent=gene-MPXV-UK_P2-039;Dbxref=NCBI_GP:QNP13636.1;Name=QNP13636.1;Note=C17L%3B similar to Vaccinia virus strain Copenhagen F11L;gbkey=CDS;locus_tag=MPXV-UK_P2-039;product=MPXVgp043;protein_id=QNP13636.1 +MT903344.1 Genbank gene 37136 39043 . - . ID=gene-MPXV-UK_P2-040;Name=MPXV-UK_P2-040;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-040 +MT903344.1 Genbank CDS 37136 39043 . - 0 ID=cds-QNP13637.1;Parent=gene-MPXV-UK_P2-040;Dbxref=NCBI_GP:QNP13637.1;Name=QNP13637.1;Note=C18L%3B similar to Vaccinia virus strain Copenhagen F12L%3B actin tail formation;gbkey=CDS;locus_tag=MPXV-UK_P2-040;product=MPXVgp044;protein_id=QNP13637.1 +MT903344.1 Genbank gene 39086 40204 . - . ID=gene-MPXV-UK_P2-041;Name=MPXV-UK_P2-041;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-041 +MT903344.1 Genbank CDS 39086 40204 . - 0 ID=cds-QNP13638.1;Parent=gene-MPXV-UK_P2-041;Dbxref=NCBI_GP:QNP13638.1;Name=QNP13638.1;Note=C19L%3B similar to Vaccinia virus strain Copenhagen F13L%3B major envelope antigen of EEV%3B wrapping of IMV to form IEV%3B phospholipase D-like;gbkey=CDS;locus_tag=MPXV-UK_P2-041;product=MPXVgp045;protein_id=QNP13638.1 +MT903344.1 Genbank gene 40222 40443 . - . ID=gene-MPXV-UK_P2-042;Name=MPXV-UK_P2-042;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-042 +MT903344.1 Genbank CDS 40222 40443 . - 0 ID=cds-QNP13639.1;Parent=gene-MPXV-UK_P2-042;Dbxref=NCBI_GP:QNP13639.1;Name=QNP13639.1;Note=C20L%3B similar to Vaccinia virus strain Copenhagen F14L;gbkey=CDS;locus_tag=MPXV-UK_P2-042;product=MPXVgp046;protein_id=QNP13639.1 +MT903344.1 Genbank gene 40493 40642 . - . ID=gene-MPXV-UK_P2-043;Name=MPXV-UK_P2-043;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-043 +MT903344.1 Genbank CDS 40493 40642 . - 0 ID=cds-QNP13640.1;Parent=gene-MPXV-UK_P2-043;Dbxref=NCBI_GP:QNP13640.1;Name=QNP13640.1;gbkey=CDS;locus_tag=MPXV-UK_P2-043;product=C20.5L;protein_id=QNP13640.1 +MT903344.1 Genbank gene 40715 41191 . - . ID=gene-MPXV-UK_P2-044;Name=MPXV-UK_P2-044;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-044 +MT903344.1 Genbank CDS 40715 41191 . - 0 ID=cds-QNP13641.1;Parent=gene-MPXV-UK_P2-044;Dbxref=NCBI_GP:QNP13641.1;Name=QNP13641.1;Note=C21L%3B similar to Vaccinia virus strain Copenhagen F15L;gbkey=CDS;locus_tag=MPXV-UK_P2-044;product=MPXVgp047;protein_id=QNP13641.1 +MT903344.1 Genbank gene 41198 41893 . - . ID=gene-MPXV-UK_P2-045;Name=MPXV-UK_P2-045;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-045 +MT903344.1 Genbank CDS 41198 41893 . - 0 ID=cds-QNP13642.1;Parent=gene-MPXV-UK_P2-045;Dbxref=NCBI_GP:QNP13642.1;Name=QNP13642.1;Note=C22L%3B similar to Vaccinia virus strain Copenhagen F16L;gbkey=CDS;locus_tag=MPXV-UK_P2-045;product=MPXVgp048;protein_id=QNP13642.1 +MT903344.1 Genbank gene 41956 42261 . + . ID=gene-MPXV-UK_P2-046;Name=MPXV-UK_P2-046;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-046 +MT903344.1 Genbank CDS 41956 42261 . + 0 ID=cds-QNP13643.1;Parent=gene-MPXV-UK_P2-046;Dbxref=NCBI_GP:QNP13643.1;Name=QNP13643.1;Note=C23R%3B similar to Vaccinia virus strain Copenhagen F17R%3B virion core DNA-binding phosphoprotein;gbkey=CDS;locus_tag=MPXV-UK_P2-046;product=MPXVgp049;protein_id=QNP13643.1 +MT903344.1 Genbank gene 42258 43697 . - . ID=gene-MPXV-UK_P2-047;Name=MPXV-UK_P2-047;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-047 +MT903344.1 Genbank CDS 42258 43697 . - 0 ID=cds-QNP13644.1;Parent=gene-MPXV-UK_P2-047;Dbxref=NCBI_GP:QNP13644.1;Name=QNP13644.1;Note=F1L%3B similar to Vaccinia virus strain Copenhagen E1L%3B poly-A polymerase%2C catalytic subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-047;product=MPXVgp050;protein_id=QNP13644.1 +MT903344.1 Genbank gene 43694 45907 . - . ID=gene-MPXV-UK_P2-048;Name=MPXV-UK_P2-048;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-048 +MT903344.1 Genbank CDS 43694 45907 . - 0 ID=cds-QNP13645.1;Parent=gene-MPXV-UK_P2-048;Dbxref=NCBI_GP:QNP13645.1;Name=QNP13645.1;Note=F2L%3B similar to Vaccinia virus strain Copenhagen E2L;gbkey=CDS;locus_tag=MPXV-UK_P2-048;product=MPXVgp051;protein_id=QNP13645.1 +MT903344.1 Genbank gene 46031 46492 . - . ID=gene-MPXV-UK_P2-049;Name=MPXV-UK_P2-049;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-049 +MT903344.1 Genbank CDS 46031 46492 . - 0 ID=cds-QNP13646.1;Parent=gene-MPXV-UK_P2-049;Dbxref=NCBI_GP:QNP13646.1;Name=QNP13646.1;Note=F3L%3B similar to Vaccinia virus strain Copenhagen E3L%3B interferon resistance factor%3B two forms (25 kDa and 19 kDa) of the dsRNA-binding protein%3B inhibition of dsRNA-dependent protein kinase and 2-5A-synthet;gbkey=CDS;locus_tag=MPXV-UK_P2-049;product=MPXVgp052;protein_id=QNP13646.1 +MT903344.1 Genbank gene 46658 47437 . - . ID=gene-MPXV-UK_P2-050;Name=MPXV-UK_P2-050;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-050 +MT903344.1 Genbank CDS 46658 47437 . - 0 ID=cds-QNP13647.1;Parent=gene-MPXV-UK_P2-050;Dbxref=NCBI_GP:QNP13647.1;Name=QNP13647.1;Note=F4L%3B similar to Vaccinia virus strain Copenhagen E4L%3B RNA polymerase 30 kDa subunit%3B simultaneously intermediate stage promoter-specific transcription factor%2C VITF-1;gbkey=CDS;locus_tag=MPXV-UK_P2-050;product=MPXVgp053;protein_id=QNP13647.1 +MT903344.1 Genbank gene 47555 47956 . + . ID=gene-MPXV-UK_P2-051;Name=MPXV-UK_P2-051;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-051 +MT903344.1 Genbank CDS 47555 47956 . + 0 ID=cds-QNP13648.1;Parent=gene-MPXV-UK_P2-051;Dbxref=NCBI_GP:QNP13648.1;Name=QNP13648.1;gbkey=CDS;locus_tag=MPXV-UK_P2-051;product=Virosome component (Cop-E5R);protein_id=QNP13648.1 +MT903344.1 Genbank gene 48210 49913 . + . ID=gene-MPXV-UK_P2-052;Name=MPXV-UK_P2-052;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-052 +MT903344.1 Genbank CDS 48210 49913 . + 0 ID=cds-QNP13649.1;Parent=gene-MPXV-UK_P2-052;Dbxref=NCBI_GP:QNP13649.1;Name=QNP13649.1;Note=F5R%3B similar to Vaccinia virus strain Copenhagen E6R;gbkey=CDS;locus_tag=MPXV-UK_P2-052;product=MPXVgp054;protein_id=QNP13649.1 +MT903344.1 Genbank gene 49995 50495 . + . ID=gene-MPXV-UK_P2-053;Name=MPXV-UK_P2-053;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-053 +MT903344.1 Genbank CDS 49995 50495 . + 0 ID=cds-QNP13650.1;Parent=gene-MPXV-UK_P2-053;Dbxref=NCBI_GP:QNP13650.1;Name=QNP13650.1;Note=F6R%3B similar to Vaccinia virus strain Copenhagen E7R%3B soluble myristylated protein;gbkey=CDS;locus_tag=MPXV-UK_P2-053;product=MPXVgp055;protein_id=QNP13650.1 +MT903344.1 Genbank gene 50599 51420 . + . ID=gene-MPXV-UK_P2-054;Name=MPXV-UK_P2-054;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-054 +MT903344.1 Genbank CDS 50599 51420 . + 0 ID=cds-QNP13651.1;Parent=gene-MPXV-UK_P2-054;Dbxref=NCBI_GP:QNP13651.1;Name=QNP13651.1;Note=F7R%3B similar to Vaccinia virus strain Copenhagen E8R;gbkey=CDS;locus_tag=MPXV-UK_P2-054;product=MPXVgp056;protein_id=QNP13651.1 +MT903344.1 Genbank gene 51427 54447 . - . ID=gene-MPXV-UK_P2-055;Name=MPXV-UK_P2-055;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-055 +MT903344.1 Genbank CDS 51427 54447 . - 0 ID=cds-QNP13652.1;Parent=gene-MPXV-UK_P2-055;Dbxref=NCBI_GP:QNP13652.1;Name=QNP13652.1;Note=F8L%3B similar to Vaccinia virus strain Copenhagen E9L%3B DNA polymerase%2C catalytic subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-055;product=MPXVgp057;protein_id=QNP13652.1 +MT903344.1 Genbank gene 54479 54766 . + . ID=gene-MPXV-UK_P2-056;Name=MPXV-UK_P2-056;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-056 +MT903344.1 Genbank CDS 54479 54766 . + 0 ID=cds-QNP13653.1;Parent=gene-MPXV-UK_P2-056;Dbxref=NCBI_GP:QNP13653.1;Name=QNP13653.1;Note=F9R%3B similar to Vaccinia virus strain Copenhagen E10R%3B protein disulfide bond-forming enzyme;gbkey=CDS;locus_tag=MPXV-UK_P2-056;product=MPXVgp058;protein_id=QNP13653.1 +MT903344.1 Genbank gene 54761 55150 . - . ID=gene-MPXV-UK_P2-057;Name=MPXV-UK_P2-057;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-057 +MT903344.1 Genbank CDS 54761 55150 . - 0 ID=cds-QNP13654.1;Parent=gene-MPXV-UK_P2-057;Dbxref=NCBI_GP:QNP13654.1;Name=QNP13654.1;Note=F10L%3B similar to Vaccinia virus strain Copenhagen E11L%3B virion core protein;gbkey=CDS;locus_tag=MPXV-UK_P2-057;product=MPXVgp059;protein_id=QNP13654.1 +MT903344.1 Genbank gene 55137 57134 . - . ID=gene-MPXV-UK_P2-058;Name=MPXV-UK_P2-058;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-058 +MT903344.1 Genbank CDS 55137 57134 . - 0 ID=cds-QNP13655.1;Parent=gene-MPXV-UK_P2-058;Dbxref=NCBI_GP:QNP13655.1;Name=QNP13655.1;Note=Q1L%3B similar to Vaccinia virus strain Copenhagen O1L;gbkey=CDS;locus_tag=MPXV-UK_P2-058;product=MPXVgp060;protein_id=QNP13655.1 +MT903344.1 Genbank gene 57181 57507 . - . ID=gene-MPXV-UK_P2-059;Name=MPXV-UK_P2-059;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-059 +MT903344.1 Genbank CDS 57181 57507 . - 0 ID=cds-QNP13656.1;Parent=gene-MPXV-UK_P2-059;Dbxref=NCBI_GP:QNP13656.1;Name=QNP13656.1;Note=Q2L%3B similar to Vaccinia virus strain Copenhagen O2L%3B virion-associated glutaredoxin;gbkey=CDS;locus_tag=MPXV-UK_P2-059;product=MPXVgp061;protein_id=QNP13656.1 +MT903344.1 Genbank gene 57654 58592 . - . ID=gene-MPXV-UK_P2-060;Name=MPXV-UK_P2-060;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-060 +MT903344.1 Genbank CDS 57654 58592 . - 0 ID=cds-QNP13657.1;Parent=gene-MPXV-UK_P2-060;Dbxref=NCBI_GP:QNP13657.1;Name=QNP13657.1;Note=I1L%3B similar to Vaccinia virus strain Copenhagen I1L%3B virosomal protein essential for virus multiplication;gbkey=CDS;locus_tag=MPXV-UK_P2-060;product=MPXVgp062;protein_id=QNP13657.1 +MT903344.1 Genbank gene 58599 58820 . - . ID=gene-MPXV-UK_P2-061;Name=MPXV-UK_P2-061;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-061 +MT903344.1 Genbank CDS 58599 58820 . - 0 ID=cds-QNP13658.1;Parent=gene-MPXV-UK_P2-061;Dbxref=NCBI_GP:QNP13658.1;Name=QNP13658.1;Note=I2L%3B similar to Vaccinia virus strain Copenhagen I2L;gbkey=CDS;locus_tag=MPXV-UK_P2-061;product=MPXVgp063;protein_id=QNP13658.1 +MT903344.1 Genbank gene 58821 59630 . - . ID=gene-MPXV-UK_P2-062;Name=MPXV-UK_P2-062;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-062 +MT903344.1 Genbank CDS 58821 59630 . - 0 ID=cds-QNP13659.1;Parent=gene-MPXV-UK_P2-062;Dbxref=NCBI_GP:QNP13659.1;Name=QNP13659.1;Note=I3L%3B similar to Vaccinia virus strain Copenhagen I3L%3B virosomal ssDNA-binding phosphoprotein%3B interacts with R2 subunit of ribonucleotide reductase;gbkey=CDS;locus_tag=MPXV-UK_P2-062;product=MPXVgp064;protein_id=QNP13659.1 +MT903344.1 Genbank gene 59712 62027 . - . ID=gene-MPXV-UK_P2-063;Name=MPXV-UK_P2-063;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-063 +MT903344.1 Genbank CDS 59712 62027 . - 0 ID=cds-QNP13660.1;Parent=gene-MPXV-UK_P2-063;Dbxref=NCBI_GP:QNP13660.1;Name=QNP13660.1;Note=I4L%3B similar to Vaccinia virus strain Copenhagen I4L%3B ribonucleotide reductase%2C large subunit%2C R1;gbkey=CDS;locus_tag=MPXV-UK_P2-063;product=MPXVgp065;protein_id=QNP13660.1 +MT903344.1 Genbank gene 62055 62294 . - . ID=gene-MPXV-UK_P2-064;Name=MPXV-UK_P2-064;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-064 +MT903344.1 Genbank CDS 62055 62294 . - 0 ID=cds-QNP13661.1;Parent=gene-MPXV-UK_P2-064;Dbxref=NCBI_GP:QNP13661.1;Name=QNP13661.1;Note=I5L%3B similar to Vaccinia virus strain Copenhagen I5L%3B IMV surface membrane protein;gbkey=CDS;locus_tag=MPXV-UK_P2-064;product=MPXVgp066;protein_id=QNP13661.1 +MT903344.1 Genbank gene 62313 63461 . - . ID=gene-MPXV-UK_P2-065;Name=MPXV-UK_P2-065;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-065 +MT903344.1 Genbank CDS 62313 63461 . - 0 ID=cds-QNP13662.1;Parent=gene-MPXV-UK_P2-065;Dbxref=NCBI_GP:QNP13662.1;Name=QNP13662.1;Note=I6L%3B similar to Vaccinia virus strain Copenhagen I6L;gbkey=CDS;locus_tag=MPXV-UK_P2-065;product=MPXVgp067;protein_id=QNP13662.1 +MT903344.1 Genbank gene 63454 64725 . - . ID=gene-MPXV-UK_P2-066;Name=MPXV-UK_P2-066;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-066 +MT903344.1 Genbank CDS 63454 64725 . - 0 ID=cds-QNP13663.1;Parent=gene-MPXV-UK_P2-066;Dbxref=NCBI_GP:QNP13663.1;Name=QNP13663.1;Note=I7L%3B similar to Vaccinia virus strain Copenhagen I7L%3B virion core protein%3B similar to DNA topoisomerase II;gbkey=CDS;locus_tag=MPXV-UK_P2-066;product=MPXVgp068;protein_id=QNP13663.1 +MT903344.1 Genbank gene 64731 66761 . + . ID=gene-MPXV-UK_P2-067;Name=MPXV-UK_P2-067;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-067 +MT903344.1 Genbank CDS 64731 66761 . + 0 ID=cds-QNP13664.1;Parent=gene-MPXV-UK_P2-067;Dbxref=NCBI_GP:QNP13664.1;Name=QNP13664.1;Note=I8R%3B similar to Vaccinia virus strain Copenhagen I8R%3B nucleoside triphosphate phosphohydrolase II%2C NPH-II%3B DNA and RNA helicase;gbkey=CDS;locus_tag=MPXV-UK_P2-067;product=MPXVgp069;protein_id=QNP13664.1 +MT903344.1 Genbank gene 66765 68540 . - . ID=gene-MPXV-UK_P2-068;Name=MPXV-UK_P2-068;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-068 +MT903344.1 Genbank CDS 66765 68540 . - 0 ID=cds-QNP13665.1;Parent=gene-MPXV-UK_P2-068;Dbxref=NCBI_GP:QNP13665.1;Name=QNP13665.1;Note=G1L%3B similar to Vaccinia virus strain Copenhagen G1L%3B proteinase;gbkey=CDS;locus_tag=MPXV-UK_P2-068;product=MPXVgp070;protein_id=QNP13665.1 +MT903344.1 Genbank gene 68537 68872 . - . ID=gene-MPXV-UK_P2-069;Name=MPXV-UK_P2-069;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-069 +MT903344.1 Genbank CDS 68537 68872 . - 0 ID=cds-QNP13666.1;Parent=gene-MPXV-UK_P2-069;Dbxref=NCBI_GP:QNP13666.1;Name=QNP13666.1;Note=G2L%3B similar to Vaccinia virus strain Copenhagen G3L;gbkey=CDS;locus_tag=MPXV-UK_P2-069;product=MPXVgp071;protein_id=QNP13666.1 +MT903344.1 Genbank gene 68866 69528 . + . ID=gene-MPXV-UK_P2-070;Name=MPXV-UK_P2-070;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-070 +MT903344.1 Genbank CDS 68866 69528 . + 0 ID=cds-QNP13667.1;Parent=gene-MPXV-UK_P2-070;Dbxref=NCBI_GP:QNP13667.1;Name=QNP13667.1;Note=G3R%3B similar to Vaccinia virus strain Copenhagen G2R;gbkey=CDS;locus_tag=MPXV-UK_P2-070;product=MPXVgp072;protein_id=QNP13667.1 +MT903344.1 Genbank gene 69498 69872 . - . ID=gene-MPXV-UK_P2-071;Name=MPXV-UK_P2-071;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-071 +MT903344.1 Genbank CDS 69498 69872 . - 0 ID=cds-QNP13668.1;Parent=gene-MPXV-UK_P2-071;Dbxref=NCBI_GP:QNP13668.1;Name=QNP13668.1;Note=G4L%3B similar to Vaccinia virus strain Copenhagen G4L%3B virion-associated glutaredoxin;gbkey=CDS;locus_tag=MPXV-UK_P2-071;product=MPXVgp073;protein_id=QNP13668.1 +MT903344.1 Genbank gene 69875 71179 . + . ID=gene-MPXV-UK_P2-072;Name=MPXV-UK_P2-072;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-072 +MT903344.1 Genbank CDS 69875 71179 . + 0 ID=cds-QNP13669.1;Parent=gene-MPXV-UK_P2-072;Dbxref=NCBI_GP:QNP13669.1;Name=QNP13669.1;Note=G5R%3B similar to Vaccinia virus strain Copenhagen G5R;gbkey=CDS;locus_tag=MPXV-UK_P2-072;product=MPXVgp074;protein_id=QNP13669.1 +MT903344.1 Genbank gene 71188 71379 . + . ID=gene-MPXV-UK_P2-073;Name=MPXV-UK_P2-073;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-073 +MT903344.1 Genbank CDS 71188 71379 . + 0 ID=cds-QNP13670.1;Parent=gene-MPXV-UK_P2-073;Dbxref=NCBI_GP:QNP13670.1;Name=QNP13670.1;Note=G6R%3B RNA polymerase%2C 7 kDa subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-073;product=MPXVgp075;protein_id=QNP13670.1 +MT903344.1 Genbank gene 71379 71876 . + . ID=gene-MPXV-UK_P2-074;Name=MPXV-UK_P2-074;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-074 +MT903344.1 Genbank CDS 71379 71876 . + 0 ID=cds-QNP13671.1;Parent=gene-MPXV-UK_P2-074;Dbxref=NCBI_GP:QNP13671.1;Name=QNP13671.1;Note=G7R%3B similar to Vaccinia virus strain Copenhagen G6R;gbkey=CDS;locus_tag=MPXV-UK_P2-074;product=MPXVgp076;protein_id=QNP13671.1 +MT903344.1 Genbank gene 71841 72956 . - . ID=gene-MPXV-UK_P2-075;Name=MPXV-UK_P2-075;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-075 +MT903344.1 Genbank CDS 71841 72956 . - 0 ID=cds-QNP13672.1;Parent=gene-MPXV-UK_P2-075;Dbxref=NCBI_GP:QNP13672.1;Name=QNP13672.1;Note=G8L%3B similar to Vaccinia virus strain Copenhagen G7L%3B virion protein;gbkey=CDS;locus_tag=MPXV-UK_P2-075;product=MPXVgp077;protein_id=QNP13672.1 +MT903344.1 Genbank gene 72987 73769 . + . ID=gene-MPXV-UK_P2-076;Name=MPXV-UK_P2-076;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-076 +MT903344.1 Genbank CDS 72987 73769 . + 0 ID=cds-QNP13673.1;Parent=gene-MPXV-UK_P2-076;Dbxref=NCBI_GP:QNP13673.1;Name=QNP13673.1;Note=G9R%3B similar to Vaccinia virus strain Copenhagen G8R%3B late gene transcription factor%2C VLTF-1;gbkey=CDS;locus_tag=MPXV-UK_P2-076;product=MPXVgp078;protein_id=QNP13673.1 +MT903344.1 Genbank gene 73789 74811 . + . ID=gene-MPXV-UK_P2-077;Name=MPXV-UK_P2-077;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-077 +MT903344.1 Genbank CDS 73789 74811 . + 0 ID=cds-QNP13674.1;Parent=gene-MPXV-UK_P2-077;Dbxref=NCBI_GP:QNP13674.1;Name=QNP13674.1;Note=G10R%3B similar to Vaccinia virus strain Copenhagen G9R%3B myristylated protein;gbkey=CDS;locus_tag=MPXV-UK_P2-077;product=MPXVgp079;protein_id=QNP13674.1 +MT903344.1 Genbank gene 74812 75564 . + . ID=gene-MPXV-UK_P2-078;Name=MPXV-UK_P2-078;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-078 +MT903344.1 Genbank CDS 74812 75564 . + 0 ID=cds-QNP13675.1;Parent=gene-MPXV-UK_P2-078;Dbxref=NCBI_GP:QNP13675.1;Name=QNP13675.1;Note=M1R%3B similar to Vaccinia virus strain Copenhagen L1R%3B myristylated IMV surface membrane protein;gbkey=CDS;locus_tag=MPXV-UK_P2-078;product=MPXVgp080;protein_id=QNP13675.1 +MT903344.1 Genbank gene 75596 75874 . + . ID=gene-MPXV-UK_P2-079;Name=MPXV-UK_P2-079;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-079 +MT903344.1 Genbank CDS 75596 75874 . + 0 ID=cds-QNP13676.1;Parent=gene-MPXV-UK_P2-079;Dbxref=NCBI_GP:QNP13676.1;Name=QNP13676.1;Note=M2R%3B similar to Vaccinia virus strain Copenhagen L2R;gbkey=CDS;locus_tag=MPXV-UK_P2-079;product=MPXVgp081;protein_id=QNP13676.1 +MT903344.1 Genbank gene 75850 76884 . - . ID=gene-MPXV-UK_P2-080;Name=MPXV-UK_P2-080;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-080 +MT903344.1 Genbank CDS 75850 76884 . - 0 ID=cds-QNP13677.1;Parent=gene-MPXV-UK_P2-080;Dbxref=NCBI_GP:QNP13677.1;Name=QNP13677.1;Note=M3L%3B similar to Vaccinia virus strain Copenhagen L3L;gbkey=CDS;locus_tag=MPXV-UK_P2-080;product=MPXVgp082;protein_id=QNP13677.1 +MT903344.1 Genbank gene 76909 77664 . + . ID=gene-MPXV-UK_P2-081;Name=MPXV-UK_P2-081;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-081 +MT903344.1 Genbank CDS 76909 77664 . + 0 ID=cds-QNP13678.1;Parent=gene-MPXV-UK_P2-081;Dbxref=NCBI_GP:QNP13678.1;Name=QNP13678.1;Note=M4R%3B similar to Vaccinia virus strain Copenhagen L4R%3B virion core protein%3B ssDNA binding%3B stimulation of I8R helicase activity;gbkey=CDS;locus_tag=MPXV-UK_P2-081;product=MPXVgp083;protein_id=QNP13678.1 +MT903344.1 Genbank gene 77674 78060 . + . ID=gene-MPXV-UK_P2-082;Name=MPXV-UK_P2-082;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-082 +MT903344.1 Genbank CDS 77674 78060 . + 0 ID=cds-QNP13679.1;Parent=gene-MPXV-UK_P2-082;Dbxref=NCBI_GP:QNP13679.1;Name=QNP13679.1;Note=M5R%3B similar to Vaccinia virus strain Copenhagen L5R;gbkey=CDS;locus_tag=MPXV-UK_P2-082;product=MPXVgp084;protein_id=QNP13679.1 +MT903344.1 Genbank gene 78017 78475 . + . ID=gene-MPXV-UK_P2-083;Name=MPXV-UK_P2-083;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-083 +MT903344.1 Genbank CDS 78017 78475 . + 0 ID=cds-QNP13680.1;Parent=gene-MPXV-UK_P2-083;Dbxref=NCBI_GP:QNP13680.1;Name=QNP13680.1;Note=L1R%3B similar to Vaccinia virus strain Copenhagen J1R;gbkey=CDS;locus_tag=MPXV-UK_P2-083;product=MPXVgp085;protein_id=QNP13680.1 +MT903344.1 Genbank gene 78495 79028 . + . ID=gene-MPXV-UK_P2-084;Name=MPXV-UK_P2-084;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-084 +MT903344.1 Genbank CDS 78495 79028 . + 0 ID=cds-QNP13681.1;Parent=gene-MPXV-UK_P2-084;Dbxref=NCBI_GP:QNP13681.1;Name=QNP13681.1;Note=L2R%3B similar to Vaccinia virus strain Copenhagen J2R%3B thymidine kinase;gbkey=CDS;locus_tag=MPXV-UK_P2-084;product=MPXVgp086;protein_id=QNP13681.1 +MT903344.1 Genbank gene 79094 80095 . + . ID=gene-MPXV-UK_P2-085;Name=MPXV-UK_P2-085;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-085 +MT903344.1 Genbank CDS 79094 80095 . + 0 ID=cds-QNP13682.1;Parent=gene-MPXV-UK_P2-085;Dbxref=NCBI_GP:QNP13682.1;Name=QNP13682.1;Note=L3R%3B similar to Vaccinia virus strain Copenhagen J3R%3B poly-A polymerase%2C stimulatory subunit%2C simultaneously cap-specific mRNA (nucleoside-O2-)-methyltransferase;gbkey=CDS;locus_tag=MPXV-UK_P2-085;product=MPXVgp087;protein_id=QNP13682.1 +MT903344.1 Genbank gene 80010 80567 . + . ID=gene-MPXV-UK_P2-086;Name=MPXV-UK_P2-086;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-086 +MT903344.1 Genbank CDS 80010 80567 . + 0 ID=cds-QNP13683.1;Parent=gene-MPXV-UK_P2-086;Dbxref=NCBI_GP:QNP13683.1;Name=QNP13683.1;Note=L4R%3B similar to Vaccinia virus strain Copenhagen J4R%3B RNA polymerase%2C 22 kDa subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-086;product=MPXVgp088;protein_id=QNP13683.1 +MT903344.1 Genbank gene 80627 81028 . - . ID=gene-MPXV-UK_P2-087;Name=MPXV-UK_P2-087;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-087 +MT903344.1 Genbank CDS 80627 81028 . - 0 ID=cds-QNP13684.1;Parent=gene-MPXV-UK_P2-087;Dbxref=NCBI_GP:QNP13684.1;Name=QNP13684.1;Note=L5L%3B similar to Vaccinia virus strain Copenhagen J5L%3B essential for virus multiplication;gbkey=CDS;locus_tag=MPXV-UK_P2-087;product=MPXVgp089;protein_id=QNP13684.1 +MT903344.1 Genbank gene 81135 84995 . + . ID=gene-MPXV-UK_P2-088;Name=MPXV-UK_P2-088;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-088 +MT903344.1 Genbank CDS 81135 84995 . + 0 ID=cds-QNP13685.1;Parent=gene-MPXV-UK_P2-088;Dbxref=NCBI_GP:QNP13685.1;Name=QNP13685.1;Note=L6R%3B similar to Vaccinia virus strain Copenhagen J6R%3B RNA polymerase%2C 147 kDa subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-088;product=MPXVgp090;protein_id=QNP13685.1 +MT903344.1 Genbank gene 84992 85507 . - . ID=gene-MPXV-UK_P2-089;Name=MPXV-UK_P2-089;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-089 +MT903344.1 Genbank CDS 84992 85507 . - 0 ID=cds-QNP13686.1;Parent=gene-MPXV-UK_P2-089;Dbxref=NCBI_GP:QNP13686.1;Name=QNP13686.1;Note=H1L%3B similar to Vaccinia virus strain Copenhagen H1L%3B tyrosine;gbkey=CDS;locus_tag=MPXV-UK_P2-089;product=MPXVgp091;protein_id=QNP13686.1 +MT903344.1 Genbank gene 85521 86090 . + . ID=gene-MPXV-UK_P2-090;Name=MPXV-UK_P2-090;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-090 +MT903344.1 Genbank CDS 85521 86090 . + 0 ID=cds-QNP13687.1;Parent=gene-MPXV-UK_P2-090;Dbxref=NCBI_GP:QNP13687.1;Name=QNP13687.1;Note=H2R%3B similar to Vaccinia virus strain Copenhagen H2R;gbkey=CDS;locus_tag=MPXV-UK_P2-090;product=MPXVgp092;protein_id=QNP13687.1 +MT903344.1 Genbank gene 86094 87068 . - . ID=gene-MPXV-UK_P2-091;Name=MPXV-UK_P2-091;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-091 +MT903344.1 Genbank CDS 86094 87068 . - 0 ID=cds-QNP13688.1;Parent=gene-MPXV-UK_P2-091;Dbxref=NCBI_GP:QNP13688.1;Name=QNP13688.1;Note=H3L%3B similar to Vaccinia virus strain Copenhagen H3L%3B IMV surface membrane protein;gbkey=CDS;locus_tag=MPXV-UK_P2-091;product=MPXVgp093;protein_id=QNP13688.1 +MT903344.1 Genbank gene 87069 89456 . - . ID=gene-MPXV-UK_P2-092;Name=MPXV-UK_P2-092;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-092 +MT903344.1 Genbank CDS 87069 89456 . - 0 ID=cds-QNP13689.1;Parent=gene-MPXV-UK_P2-092;Dbxref=NCBI_GP:QNP13689.1;Name=QNP13689.1;Note=H4L%3B similar to Vaccinia virus strain Copenhagen H4L%3B virion core RNA polymerase-associated protein%2C RAP94;gbkey=CDS;locus_tag=MPXV-UK_P2-092;product=MPXVgp094;protein_id=QNP13689.1 +MT903344.1 Genbank gene 89641 90273 . + . ID=gene-MPXV-UK_P2-093;Name=MPXV-UK_P2-093;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-093 +MT903344.1 Genbank CDS 89641 90273 . + 0 ID=cds-QNP13690.1;Parent=gene-MPXV-UK_P2-093;Dbxref=NCBI_GP:QNP13690.1;Name=QNP13690.1;Note=H5R%3B similar to Vaccinia virus strain Copenhagen H5R%3B virosome-associated late gene transcription factor%2C VLTF-4%3B Ca2+-binding motif;gbkey=CDS;locus_tag=MPXV-UK_P2-093;product=MPXVgp095;protein_id=QNP13690.1 +MT903344.1 Genbank gene 90274 91218 . + . ID=gene-MPXV-UK_P2-094;Name=MPXV-UK_P2-094;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-094 +MT903344.1 Genbank CDS 90274 91218 . + 0 ID=cds-QNP13691.1;Parent=gene-MPXV-UK_P2-094;Dbxref=NCBI_GP:QNP13691.1;Name=QNP13691.1;Note=H6R%3B similar to Vaccinia virus strain Copenhagen H6R%3B DNA topoisomerase;gbkey=CDS;locus_tag=MPXV-UK_P2-094;product=MPXVgp096;protein_id=QNP13691.1 +MT903344.1 Genbank gene 91256 91696 . + . ID=gene-MPXV-UK_P2-095;Name=MPXV-UK_P2-095;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-095 +MT903344.1 Genbank CDS 91256 91696 . + 0 ID=cds-QNP13692.1;Parent=gene-MPXV-UK_P2-095;Dbxref=NCBI_GP:QNP13692.1;Name=QNP13692.1;Note=H7R%3B similar to Vaccinia virus strain Copenhagen H7R;gbkey=CDS;locus_tag=MPXV-UK_P2-095;product=MPXVgp097;protein_id=QNP13692.1 +MT903344.1 Genbank gene 91740 94277 . + . ID=gene-MPXV-UK_P2-096;Name=MPXV-UK_P2-096;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-096 +MT903344.1 Genbank CDS 91740 94277 . + 0 ID=cds-QNP13693.1;Parent=gene-MPXV-UK_P2-096;Dbxref=NCBI_GP:QNP13693.1;Name=QNP13693.1;Note=E1R%3B similar to Vaccinia virus strain Copenhagen D1R%3B mRNA capping enzyme%2C large subunit%3B RNA 5 triphosphatase and RNA guanylyl transferase activities;gbkey=CDS;locus_tag=MPXV-UK_P2-096;product=MPXVgp098;protein_id=QNP13693.1 +MT903344.1 Genbank gene 94236 94676 . - . ID=gene-MPXV-UK_P2-097;Name=MPXV-UK_P2-097;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-097 +MT903344.1 Genbank CDS 94236 94676 . - 0 ID=cds-QNP13694.1;Parent=gene-MPXV-UK_P2-097;Dbxref=NCBI_GP:QNP13694.1;Name=QNP13694.1;Note=E2L%3B similar to Vaccinia virus strain Copenhagen D2L%3B virion core protein;gbkey=CDS;locus_tag=MPXV-UK_P2-097;product=MPXVgp099;protein_id=QNP13694.1 +MT903344.1 Genbank gene 94669 95370 . + . ID=gene-MPXV-UK_P2-098;Name=MPXV-UK_P2-098;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-098 +MT903344.1 Genbank CDS 94669 95370 . + 0 ID=cds-QNP13695.1;Parent=gene-MPXV-UK_P2-098;Dbxref=NCBI_GP:QNP13695.1;Name=QNP13695.1;Note=E3R%3B similar to Vaccinia virus strain Copenhagen D3R%3B virion core protein;gbkey=CDS;locus_tag=MPXV-UK_P2-098;product=MPXVgp100;protein_id=QNP13695.1 +MT903344.1 Genbank gene 95370 96026 . + . ID=gene-MPXV-UK_P2-099;Name=MPXV-UK_P2-099;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-099 +MT903344.1 Genbank CDS 95370 96026 . + 0 ID=cds-QNP13696.1;Parent=gene-MPXV-UK_P2-099;Dbxref=NCBI_GP:QNP13696.1;Name=QNP13696.1;Note=E4R%3B similar to Vaccinia virus strain Copenhagen D4R%3B uracil DNA glycosylase;gbkey=CDS;locus_tag=MPXV-UK_P2-099;product=MPXVgp101;protein_id=QNP13696.1 +MT903344.1 Genbank gene 96058 98415 . + . ID=gene-MPXV-UK_P2-100;Name=MPXV-UK_P2-100;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-100 +MT903344.1 Genbank CDS 96058 98415 . + 0 ID=cds-QNP13697.1;Parent=gene-MPXV-UK_P2-100;Dbxref=NCBI_GP:QNP13697.1;Name=QNP13697.1;Note=E5R%3B similar to Vaccinia virus strain Copenhagen D5R%3B nucleic acid-independent nucleoside triphosphatase;gbkey=CDS;locus_tag=MPXV-UK_P2-100;product=MPXVgp102;protein_id=QNP13697.1 +MT903344.1 Genbank gene 98455 100368 . + . ID=gene-MPXV-UK_P2-101;Name=MPXV-UK_P2-101;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-101 +MT903344.1 Genbank CDS 98455 100368 . + 0 ID=cds-QNP13698.1;Parent=gene-MPXV-UK_P2-101;Dbxref=NCBI_GP:QNP13698.1;Name=QNP13698.1;Note=E6R%3B similar to Vaccinia virus strain Copenhagen D6R%3B early transcription factor%2C VETF%2C small subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-101;product=MPXVgp103;protein_id=QNP13698.1 +MT903344.1 Genbank gene 100395 100880 . + . ID=gene-MPXV-UK_P2-102;Name=MPXV-UK_P2-102;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-102 +MT903344.1 Genbank CDS 100395 100880 . + 0 ID=cds-QNP13699.1;Parent=gene-MPXV-UK_P2-102;Dbxref=NCBI_GP:QNP13699.1;Name=QNP13699.1;Note=E7R%3B similar to Vaccinia virus strain Copenhagen D7R%3B RNA polymerase%2C 18 kDa subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-102;product=MPXVgp104;protein_id=QNP13699.1 +MT903344.1 Genbank gene 100843 101757 . - . ID=gene-MPXV-UK_P2-103;Name=MPXV-UK_P2-103;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-103 +MT903344.1 Genbank CDS 100843 101757 . - 0 ID=cds-QNP13700.1;Parent=gene-MPXV-UK_P2-103;Dbxref=NCBI_GP:QNP13700.1;Name=QNP13700.1;Note=E8L%3B similar to Vaccinia virus strain Copenhagen D8L%3B IMV surface membrane 32 kDa protein%3B binding to cell surface chondroitin sulfate%3B IMV adsorption to cell surface;gbkey=CDS;locus_tag=MPXV-UK_P2-103;product=MPXVgp105;protein_id=QNP13700.1 +MT903344.1 Genbank gene 101799 102440 . + . ID=gene-MPXV-UK_P2-104;Name=MPXV-UK_P2-104;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-104 +MT903344.1 Genbank CDS 101799 102440 . + 0 ID=cds-QNP13701.1;Parent=gene-MPXV-UK_P2-104;Dbxref=NCBI_GP:QNP13701.1;Name=QNP13701.1;Note=E9R%3B similar to Vaccinia virus strain Copenhagen D9R%3B Mut-like;gbkey=CDS;locus_tag=MPXV-UK_P2-104;product=MPXVgp106;protein_id=QNP13701.1 +MT903344.1 Genbank gene 102437 103183 . + . ID=gene-MPXV-UK_P2-105;Name=MPXV-UK_P2-105;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-105 +MT903344.1 Genbank CDS 102437 103183 . + 0 ID=cds-QNP13702.1;Parent=gene-MPXV-UK_P2-105;Dbxref=NCBI_GP:QNP13702.1;Name=QNP13702.1;Note=E10R%3B similar to Vaccinia virus strain Copenhagen D10R%3B down regulation of gene expression%3B Mut-like;gbkey=CDS;locus_tag=MPXV-UK_P2-105;product=MPXVgp107;protein_id=QNP13702.1 +MT903344.1 Genbank gene 103184 105079 . - . ID=gene-MPXV-UK_P2-106;Name=MPXV-UK_P2-106;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-106 +MT903344.1 Genbank CDS 103184 105079 . - 0 ID=cds-QNP13703.1;Parent=gene-MPXV-UK_P2-106;Dbxref=NCBI_GP:QNP13703.1;Name=QNP13703.1;Note=E11L%3B similar to Vaccinia virus strain Copenhagen D11L%3B nucleoside triphosphate phosphohydrolase I%2C NPH I%3B DNA-dependent ATPase%3B early gene transcription termination factor;gbkey=CDS;locus_tag=MPXV-UK_P2-106;product=MPXVgp108;protein_id=QNP13703.1 +MT903344.1 Genbank gene 105114 105977 . - . ID=gene-MPXV-UK_P2-107;Name=MPXV-UK_P2-107;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-107 +MT903344.1 Genbank CDS 105114 105977 . - 0 ID=cds-QNP13704.1;Parent=gene-MPXV-UK_P2-107;Dbxref=NCBI_GP:QNP13704.1;Name=QNP13704.1;Note=E12L%3B similar to Vaccinia virus strain Copenhagen D12L%3B mRNA capping enzyme%2C small subunit%3B mRNA (guanine-N7-)-methyl-transferase%3B transcription initiation factor;gbkey=CDS;locus_tag=MPXV-UK_P2-107;product=MPXVgp109;protein_id=QNP13704.1 +MT903344.1 Genbank gene 106008 107663 . - . ID=gene-MPXV-UK_P2-108;Name=MPXV-UK_P2-108;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-108 +MT903344.1 Genbank CDS 106008 107663 . - 0 ID=cds-QNP13705.1;Parent=gene-MPXV-UK_P2-108;Dbxref=NCBI_GP:QNP13705.1;Name=QNP13705.1;Note=E13L%3B similar to Vaccinia virus strain Copenhagen D13L%3B protein needed for the formation of immature IMV surface membrane;gbkey=CDS;locus_tag=MPXV-UK_P2-108;product=MPXVgp110;protein_id=QNP13705.1 +MT903344.1 Genbank gene 107687 108139 . - . ID=gene-MPXV-UK_P2-109;Name=MPXV-UK_P2-109;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-109 +MT903344.1 Genbank CDS 107687 108139 . - 0 ID=cds-QNP13706.1;Parent=gene-MPXV-UK_P2-109;Dbxref=NCBI_GP:QNP13706.1;Name=QNP13706.1;Note=A1L%3B similar to Vaccinia virus strain Copenhagen A1L%3B late gene transcription factor%2C VLTF-2;gbkey=CDS;locus_tag=MPXV-UK_P2-109;product=MPXVgp111;protein_id=QNP13706.1 +MT903344.1 Genbank gene 108160 108834 . - . ID=gene-MPXV-UK_P2-110;Name=MPXV-UK_P2-110;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-110 +MT903344.1 Genbank CDS 108160 108834 . - 0 ID=cds-QNP13707.1;Parent=gene-MPXV-UK_P2-110;Dbxref=NCBI_GP:QNP13707.1;Name=QNP13707.1;Note=A2L%3B similar to Vaccinia virus strain Copenhagen A2L%3B late gene transcription factor%2C VLTF-3%3B zinc binding;gbkey=CDS;locus_tag=MPXV-UK_P2-110;product=MPXVgp112;protein_id=QNP13707.1 +MT903344.1 Genbank gene 108831 109064 . - . ID=gene-MPXV-UK_P2-111;Name=MPXV-UK_P2-111;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-111 +MT903344.1 Genbank CDS 108831 109064 . - 0 ID=cds-QNP13708.1;Parent=gene-MPXV-UK_P2-111;Dbxref=NCBI_GP:QNP13708.1;Name=QNP13708.1;Note=A3L;gbkey=CDS;locus_tag=MPXV-UK_P2-111;product=MPXVgp113;protein_id=QNP13708.1 +MT903344.1 Genbank gene 109079 111013 . - . ID=gene-MPXV-UK_P2-112;Name=MPXV-UK_P2-112;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-112 +MT903344.1 Genbank CDS 109079 111013 . - 0 ID=cds-QNP13709.1;Parent=gene-MPXV-UK_P2-112;Dbxref=NCBI_GP:QNP13709.1;Name=QNP13709.1;Note=A4L%3B similar to Vaccinia virus strain Copenhagen A3L%3B major virion core protein p4b;gbkey=CDS;locus_tag=MPXV-UK_P2-112;product=MPXVgp114;protein_id=QNP13709.1 +MT903344.1 Genbank gene 111066 111911 . - . ID=gene-MPXV-UK_P2-113;Name=MPXV-UK_P2-113;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-113 +MT903344.1 Genbank CDS 111066 111911 . - 0 ID=cds-QNP13710.1;Parent=gene-MPXV-UK_P2-113;Dbxref=NCBI_GP:QNP13710.1;Name=QNP13710.1;Note=A5L%3B similar to Vaccinia virus strain Copenhagen A4L%3B 39 kDa immunodominant virion core protein needed for the progression of IV to infectious IMV;gbkey=CDS;locus_tag=MPXV-UK_P2-113;product=MPXVgp115;protein_id=QNP13710.1 +MT903344.1 Genbank gene 111949 112434 . + . ID=gene-MPXV-UK_P2-114;Name=MPXV-UK_P2-114;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-114 +MT903344.1 Genbank CDS 111949 112434 . + 0 ID=cds-QNP13711.1;Parent=gene-MPXV-UK_P2-114;Dbxref=NCBI_GP:QNP13711.1;Name=QNP13711.1;Note=A6R%3B similar to Vaccinia virus strain Copenhagen A5R%3B precursor of RNA polymerase 22 kDa and 21 kDa;gbkey=CDS;locus_tag=MPXV-UK_P2-114;product=MPXVgp116;protein_id=QNP13711.1 +MT903344.1 Genbank gene 112431 113549 . - . ID=gene-MPXV-UK_P2-115;Name=MPXV-UK_P2-115;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-115 +MT903344.1 Genbank CDS 112431 113549 . - 0 ID=cds-QNP13712.1;Parent=gene-MPXV-UK_P2-115;Dbxref=NCBI_GP:QNP13712.1;Name=QNP13712.1;Note=A7L%3B similar to Vaccinia virus strain Copenhagen A6L;gbkey=CDS;locus_tag=MPXV-UK_P2-115;product=MPXVgp117;protein_id=QNP13712.1 +MT903344.1 Genbank gene 113573 115705 . - . ID=gene-MPXV-UK_P2-116;Name=MPXV-UK_P2-116;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-116 +MT903344.1 Genbank CDS 113573 115705 . - 0 ID=cds-QNP13713.1;Parent=gene-MPXV-UK_P2-116;Dbxref=NCBI_GP:QNP13713.1;Name=QNP13713.1;Note=A8L%3B similar to Vaccinia virus strain Copenhagen A7L%3B early transcription factor%2C VETF%2C large subunit%3B needed for morphogenesis of the virion core;gbkey=CDS;locus_tag=MPXV-UK_P2-116;product=MPXVgp118;protein_id=QNP13713.1 +MT903344.1 Genbank gene 115759 116637 . + . ID=gene-MPXV-UK_P2-117;Name=MPXV-UK_P2-117;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-117 +MT903344.1 Genbank CDS 115759 116637 . + 0 ID=cds-QNP13714.1;Parent=gene-MPXV-UK_P2-117;Dbxref=NCBI_GP:QNP13714.1;Name=QNP13714.1;Note=A9R%3B similar to Vaccinia virus strain Copenhagen A8R%3B intermediate transcription factor%2C VITF-3%2C 34 kDa;gbkey=CDS;locus_tag=MPXV-UK_P2-117;product=MPXVgp119;protein_id=QNP13714.1 +MT903344.1 Genbank gene 116618 116920 . - . ID=gene-MPXV-UK_P2-118;Name=MPXV-UK_P2-118;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-118 +MT903344.1 Genbank CDS 116618 116920 . - 0 ID=cds-QNP13715.1;Parent=gene-MPXV-UK_P2-118;Dbxref=NCBI_GP:QNP13715.1;Name=QNP13715.1;Note=A10L%3B similar to Vaccinia virus strain Copenhagen A9L;gbkey=CDS;locus_tag=MPXV-UK_P2-118;product=MPXVgp120;protein_id=QNP13715.1 +MT903344.1 Genbank gene 116921 119596 . - . ID=gene-MPXV-UK_P2-119;Name=MPXV-UK_P2-119;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-119 +MT903344.1 Genbank CDS 116921 119596 . - 0 ID=cds-QNP13716.1;Parent=gene-MPXV-UK_P2-119;Dbxref=NCBI_GP:QNP13716.1;Name=QNP13716.1;Note=A11L%3B similar to Vaccinia virus strain Copenhagen A10L%3B major virion core protein p4a;gbkey=CDS;locus_tag=MPXV-UK_P2-119;product=MPXVgp121;protein_id=QNP13716.1 +MT903344.1 Genbank gene 119611 120567 . + . ID=gene-MPXV-UK_P2-120;Name=MPXV-UK_P2-120;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-120 +MT903344.1 Genbank CDS 119611 120567 . + 0 ID=cds-QNP13717.1;Parent=gene-MPXV-UK_P2-120;Dbxref=NCBI_GP:QNP13717.1;Name=QNP13717.1;Note=A12R%3B similar to Vaccinia virus strain Copenhagen A11R;gbkey=CDS;locus_tag=MPXV-UK_P2-120;product=MPXVgp122;protein_id=QNP13717.1 +MT903344.1 Genbank gene 120569 121141 . - . ID=gene-MPXV-UK_P2-121;Name=MPXV-UK_P2-121;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-121 +MT903344.1 Genbank CDS 120569 121141 . - 0 ID=cds-QNP13718.1;Parent=gene-MPXV-UK_P2-121;Dbxref=NCBI_GP:QNP13718.1;Name=QNP13718.1;Note=A13L%3B similar to Vaccinia virus strain Copenhagen A12L%3B virion core protein;gbkey=CDS;locus_tag=MPXV-UK_P2-121;product=MPXVgp123;protein_id=QNP13718.1 +MT903344.1 Genbank gene 121165 121377 . - . ID=gene-MPXV-UK_P2-122;Name=MPXV-UK_P2-122;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-122 +MT903344.1 Genbank CDS 121165 121377 . - 0 ID=cds-QNP13719.1;Parent=gene-MPXV-UK_P2-122;Dbxref=NCBI_GP:QNP13719.1;Name=QNP13719.1;Note=A14L%3B similar to Vaccinia virus strain Copenhagen A13L%3B IMV inner and outer membrane protein;gbkey=CDS;locus_tag=MPXV-UK_P2-122;product=MPXVgp124;protein_id=QNP13719.1 +MT903344.1 Genbank gene 121483 121755 . - . ID=gene-MPXV-UK_P2-123;Name=MPXV-UK_P2-123;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-123 +MT903344.1 Genbank CDS 121483 121755 . - 0 ID=cds-QNP13720.1;Parent=gene-MPXV-UK_P2-123;Dbxref=NCBI_GP:QNP13720.1;Name=QNP13720.1;Note=A15L%3B similar to Vaccinia virus strain Copenhagen A14L%3B IMV inner membrane protein;gbkey=CDS;locus_tag=MPXV-UK_P2-123;product=MPXVgp125;protein_id=QNP13720.1 +MT903344.1 Genbank gene 121772 121933 . - . ID=gene-MPXV-UK_P2-124;Name=MPXV-UK_P2-124;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-124 +MT903344.1 Genbank CDS 121772 121933 . - 0 ID=cds-QNP13721.1;Parent=gene-MPXV-UK_P2-124;Dbxref=NCBI_GP:QNP13721.1;Name=QNP13721.1;gbkey=CDS;locus_tag=MPXV-UK_P2-124;product=A15.5L;protein_id=QNP13721.1 +MT903344.1 Genbank gene 121923 122207 . - . ID=gene-MPXV-UK_P2-125;Name=MPXV-UK_P2-125;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-125 +MT903344.1 Genbank CDS 121923 122207 . - 0 ID=cds-QNP13722.1;Parent=gene-MPXV-UK_P2-125;Dbxref=NCBI_GP:QNP13722.1;Name=QNP13722.1;Note=A16L%3B similar to Vaccinia virus strain Copenhagen A15L;gbkey=CDS;locus_tag=MPXV-UK_P2-125;product=MPXVgp126;protein_id=QNP13722.1 +MT903344.1 Genbank gene 122191 123324 . - . ID=gene-MPXV-UK_P2-126;Name=MPXV-UK_P2-126;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-126 +MT903344.1 Genbank CDS 122191 123324 . - 0 ID=cds-QNP13723.1;Parent=gene-MPXV-UK_P2-126;Dbxref=NCBI_GP:QNP13723.1;Name=QNP13723.1;Note=A17L%3B similar to Vaccinia virus strain Copenhagen A16L%3B soluble myristylated protein;gbkey=CDS;locus_tag=MPXV-UK_P2-126;product=MPXVgp127;protein_id=QNP13723.1 +MT903344.1 Genbank gene 123327 123941 . - . ID=gene-MPXV-UK_P2-127;Name=MPXV-UK_P2-127;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-127 +MT903344.1 Genbank CDS 123327 123941 . - 0 ID=cds-QNP13724.1;Parent=gene-MPXV-UK_P2-127;Dbxref=NCBI_GP:QNP13724.1;Name=QNP13724.1;Note=A18L%3B similar to Vaccinia virus strain Copenhagen A17L%3B IMV surface membrane protein%3B early function in virion morphgenesis;gbkey=CDS;locus_tag=MPXV-UK_P2-127;product=MPXVgp128;protein_id=QNP13724.1 +MT903344.1 Genbank gene 123956 125434 . + . ID=gene-MPXV-UK_P2-128;Name=MPXV-UK_P2-128;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-128 +MT903344.1 Genbank CDS 123956 125434 . + 0 ID=cds-QNP13725.1;Parent=gene-MPXV-UK_P2-128;Dbxref=NCBI_GP:QNP13725.1;Name=QNP13725.1;Note=A19R%3B similar to Vaccinia virus strain Copenhagen A1 8R%3B virion core associated DNA helicase%3B post-replicative negative transcription elongation factor;gbkey=CDS;locus_tag=MPXV-UK_P2-128;product=MPXVgp129;protein_id=QNP13725.1 +MT903344.1 Genbank gene 125415 125648 . - . ID=gene-MPXV-UK_P2-129;Name=MPXV-UK_P2-129;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-129 +MT903344.1 Genbank CDS 125415 125648 . - 0 ID=cds-QNP13726.1;Parent=gene-MPXV-UK_P2-129;Dbxref=NCBI_GP:QNP13726.1;Name=QNP13726.1;Note=A20L%3B similar to Vaccinia virus strain Copenhagen A19L;gbkey=CDS;locus_tag=MPXV-UK_P2-129;product=MPXVgp130;protein_id=QNP13726.1 +MT903344.1 Genbank gene 125649 125996 . - . ID=gene-MPXV-UK_P2-130;Name=MPXV-UK_P2-130;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-130 +MT903344.1 Genbank CDS 125649 125996 . - 0 ID=cds-QNP13727.1;Parent=gene-MPXV-UK_P2-130;Dbxref=NCBI_GP:QNP13727.1;Name=QNP13727.1;Note=A21L%3B similar to Vaccinia virus strain Copenhagen A21L;gbkey=CDS;locus_tag=MPXV-UK_P2-130;product=MPXVgp131;protein_id=QNP13727.1 +MT903344.1 Genbank gene 125995 127275 . + . ID=gene-MPXV-UK_P2-131;Name=MPXV-UK_P2-131;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-131 +MT903344.1 Genbank CDS 125995 127275 . + 0 ID=cds-QNP13728.1;Parent=gene-MPXV-UK_P2-131;Dbxref=NCBI_GP:QNP13728.1;Name=QNP13728.1;Note=A22R%3B similar to Vaccinia virus strain Copenhagen A20R%3B processivity factor for the viral DNA polymerase%2C VPF;gbkey=CDS;locus_tag=MPXV-UK_P2-131;product=MPXVgp132;protein_id=QNP13728.1 +MT903344.1 Genbank gene 127205 127768 . + . ID=gene-MPXV-UK_P2-132;Name=MPXV-UK_P2-132;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-132 +MT903344.1 Genbank CDS 127205 127768 . + 0 ID=cds-QNP13729.1;Parent=gene-MPXV-UK_P2-132;Dbxref=NCBI_GP:QNP13729.1;Name=QNP13729.1;Note=A23R%3B similar to Vaccinia virus strain Copenhagen A22R;gbkey=CDS;locus_tag=MPXV-UK_P2-132;product=MPXVgp133;protein_id=QNP13729.1 +MT903344.1 Genbank gene 127788 128936 . + . ID=gene-MPXV-UK_P2-133;Name=MPXV-UK_P2-133;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-133 +MT903344.1 Genbank CDS 127788 128936 . + 0 ID=cds-QNP13730.1;Parent=gene-MPXV-UK_P2-133;Dbxref=NCBI_GP:QNP13730.1;Name=QNP13730.1;Note=A24R%3B similar to Vaccinia virus strain Copenhagen A23R%3B intermediate transcription factor%2C VITF-3%2C 45 kDa;gbkey=CDS;locus_tag=MPXV-UK_P2-133;product=MPXVgp134;protein_id=QNP13730.1 +MT903344.1 Genbank gene 128933 132427 . + . ID=gene-MPXV-UK_P2-134;Name=MPXV-UK_P2-134;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-134 +MT903344.1 Genbank CDS 128933 132427 . + 0 ID=cds-QNP13731.1;Parent=gene-MPXV-UK_P2-134;Dbxref=NCBI_GP:QNP13731.1;Name=QNP13731.1;Note=A25R%3B similar to Vaccinia virus strain Copenhagen A24R%3B RNA polymerase%2C 132 kDa subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-134;product=MPXVgp135;protein_id=QNP13731.1 +MT903344.1 Genbank pseudogene 133218 133445 . - . ID=gene-MPXV-UK_P2-135;Name=MPXV-UK_P2-135;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-135;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 133218 133445 . - 0 ID=cds-MPXV-UK_P2-135;Parent=gene-MPXV-UK_P2-135;Note=A26L;gbkey=CDS;locus_tag=MPXV-UK_P2-135;product=MPXVgp136;pseudo=true;pseudogene=unknown +MT903344.1 Genbank pseudogene 134013 136103 . - . ID=gene-MPXV-UK_P2-136;Name=MPXV-UK_P2-136;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-136;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 134013 136103 . - 0 ID=cds-MPXV-UK_P2-136;Parent=gene-MPXV-UK_P2-136;Note=A27L;gbkey=CDS;locus_tag=MPXV-UK_P2-136;product=MPXVgp137;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 136149 137678 . - . ID=gene-MPXV-UK_P2-137;Name=MPXV-UK_P2-137;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-137 +MT903344.1 Genbank CDS 136149 137678 . - 0 ID=cds-QNP13732.1;Parent=gene-MPXV-UK_P2-137;Dbxref=NCBI_GP:QNP13732.1;Name=QNP13732.1;Note=A28L%3B major component of IMV surface tubules%3B p4c;gbkey=CDS;locus_tag=MPXV-UK_P2-137;product=MPXVgp138;protein_id=QNP13732.1 +MT903344.1 Genbank gene 137729 138061 . - . ID=gene-MPXV-UK_P2-138;Name=MPXV-UK_P2-138;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-138 +MT903344.1 Genbank CDS 137729 138061 . - 0 ID=cds-QNP13733.1;Parent=gene-MPXV-UK_P2-138;Dbxref=NCBI_GP:QNP13733.1;Name=QNP13733.1;Note=A29L%3B similar to Vaccinia virus strain Copenhagen A27L%3B IMV surface membrane 14 kDa fusion protein%3B binding to cell surface heparan;gbkey=CDS;locus_tag=MPXV-UK_P2-138;product=MPXVgp139;protein_id=QNP13733.1 +MT903344.1 Genbank gene 138062 138502 . - . ID=gene-MPXV-UK_P2-139;Name=MPXV-UK_P2-139;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-139 +MT903344.1 Genbank CDS 138062 138502 . - 0 ID=cds-QNP13734.1;Parent=gene-MPXV-UK_P2-139;Dbxref=NCBI_GP:QNP13734.1;Name=QNP13734.1;Note=A30L%3B similar to Vaccinia virus strain Copenhagen A28L;gbkey=CDS;locus_tag=MPXV-UK_P2-139;product=MPXVgp140;protein_id=QNP13734.1 +MT903344.1 Genbank gene 138503 139420 . - . ID=gene-MPXV-UK_P2-140;Name=MPXV-UK_P2-140;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-140 +MT903344.1 Genbank CDS 138503 139420 . - 0 ID=cds-QNP13735.1;Parent=gene-MPXV-UK_P2-140;Dbxref=NCBI_GP:QNP13735.1;Name=QNP13735.1;Note=A31L%3B similar to Vaccinia virus strain Copenhagen A29L%3B RNA polymerase%2C 35 kDa subunit;gbkey=CDS;locus_tag=MPXV-UK_P2-140;product=MPXVgp141;protein_id=QNP13735.1 +MT903344.1 Genbank gene 139383 139619 . - . ID=gene-MPXV-UK_P2-141;Name=MPXV-UK_P2-141;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-141 +MT903344.1 Genbank CDS 139383 139619 . - 0 ID=cds-QNP13736.1;Parent=gene-MPXV-UK_P2-141;Dbxref=NCBI_GP:QNP13736.1;Name=QNP13736.1;Note=A32L%3B similar to Vaccinia virus strain Copenhagen A30L;gbkey=CDS;locus_tag=MPXV-UK_P2-141;product=MPXVgp142;protein_id=QNP13736.1 +MT903344.1 Genbank gene 139652 139780 . - . ID=gene-MPXV-UK_P2-142;Name=MPXV-UK_P2-142;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-142 +MT903344.1 Genbank CDS 139652 139780 . - 0 ID=cds-QNP13737.1;Parent=gene-MPXV-UK_P2-142;Dbxref=NCBI_GP:QNP13737.1;Name=QNP13737.1;gbkey=CDS;locus_tag=MPXV-UK_P2-142;product=A32.5L;protein_id=QNP13737.1 +MT903344.1 Genbank gene 139779 140216 . + . ID=gene-MPXV-UK_P2-143;Name=MPXV-UK_P2-143;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-143 +MT903344.1 Genbank CDS 139779 140216 . + 0 ID=cds-QNP13738.1;Parent=gene-MPXV-UK_P2-143;Dbxref=NCBI_GP:QNP13738.1;Name=QNP13738.1;Note=A33R%3B similar to Vaccinia virus strain Copenhagen A31R;gbkey=CDS;locus_tag=MPXV-UK_P2-143;product=MPXVgp143;protein_id=QNP13738.1 +MT903344.1 Genbank gene 140183 141085 . - . ID=gene-MPXV-UK_P2-144;Name=MPXV-UK_P2-144;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-144 +MT903344.1 Genbank CDS 140183 141085 . - 0 ID=cds-QNP13739.1;Parent=gene-MPXV-UK_P2-144;Dbxref=NCBI_GP:QNP13739.1;Name=QNP13739.1;Note=A34L%3B similar to Vaccinia virus strain Copenhagen A32L%3B DNA packaging into virion%3B NTP-binding motif A;gbkey=CDS;locus_tag=MPXV-UK_P2-144;product=MPXVgp144;protein_id=QNP13739.1 +MT903344.1 Genbank gene 141113 141658 . + . ID=gene-MPXV-UK_P2-145;Name=MPXV-UK_P2-145;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-145 +MT903344.1 Genbank CDS 141113 141658 . + 0 ID=cds-QNP13740.1;Parent=gene-MPXV-UK_P2-145;Dbxref=NCBI_GP:QNP13740.1;Name=QNP13740.1;Note=A35R%3B similar to Vaccinia virus strain Copenhagen A33R%3B EEV envelope glycoprotein%2C needed for formation of actin-containing microvilli and cell-to-cell spread of virion%3B interacts with VAC A36R;gbkey=CDS;locus_tag=MPXV-UK_P2-145;product=MPXVgp145;protein_id=QNP13740.1 +MT903344.1 Genbank gene 141663 142169 . + . ID=gene-MPXV-UK_P2-146;Name=MPXV-UK_P2-146;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-146 +MT903344.1 Genbank CDS 141663 142169 . + 0 ID=cds-QNP13741.1;Parent=gene-MPXV-UK_P2-146;Dbxref=NCBI_GP:QNP13741.1;Name=QNP13741.1;Note=A36R%3B similar to Vaccinia virus strain Copenhagen A3 4R%3B EEV envelope glycoprotein%2C lectin-like%3B required for infectivity of EEV%2C formation of actin-containing microvilli%2C and cell-to-cell spread of virion;gbkey=CDS;locus_tag=MPXV-UK_P2-146;product=MPXVgp146;protein_id=QNP13741.1 +MT903344.1 Genbank gene 142213 142743 . + . ID=gene-MPXV-UK_P2-147;Name=MPXV-UK_P2-147;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-147 +MT903344.1 Genbank CDS 142213 142743 . + 0 ID=cds-QNP13742.1;Parent=gene-MPXV-UK_P2-147;Dbxref=NCBI_GP:QNP13742.1;Name=QNP13742.1;Note=A37R%3B similar to Vaccinia virus strain Copenhagen A35R;gbkey=CDS;locus_tag=MPXV-UK_P2-147;product=MPXVgp147;protein_id=QNP13742.1 +MT903344.1 Genbank gene 142789 143475 . + . ID=gene-MPXV-UK_P2-148;Name=MPXV-UK_P2-148;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-148 +MT903344.1 Genbank CDS 142789 143475 . + 0 ID=cds-QNP13743.1;Parent=gene-MPXV-UK_P2-148;Dbxref=NCBI_GP:QNP13743.1;Name=QNP13743.1;Note=A38R%3B similar to Vaccinia virus strain Copenhagen A36R%3B IEV but not CEV envelope protein%3B plays critical role for actin tail formation%3B interacts with VAC A33R and A34R;gbkey=CDS;locus_tag=MPXV-UK_P2-148;product=MPXVgp148;protein_id=QNP13743.1 +MT903344.1 Genbank gene 143527 144333 . + . ID=gene-MPXV-UK_P2-149;Name=MPXV-UK_P2-149;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-149 +MT903344.1 Genbank CDS 143527 144333 . + 0 ID=cds-QNP13744.1;Parent=gene-MPXV-UK_P2-149;Dbxref=NCBI_GP:QNP13744.1;Name=QNP13744.1;Note=A39R%3B similar to Vaccinia virus strain Copenhagen A37R;gbkey=CDS;locus_tag=MPXV-UK_P2-149;product=MPXVgp149;protein_id=QNP13744.1 +MT903344.1 Genbank gene 144585 145418 . - . ID=gene-MPXV-UK_P2-150;Name=MPXV-UK_P2-150;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-150 +MT903344.1 Genbank CDS 144585 145418 . - 0 ID=cds-QNP13745.1;Parent=gene-MPXV-UK_P2-150;Dbxref=NCBI_GP:QNP13745.1;Name=QNP13745.1;Note=A40L%3B similar to Vaccinia virus strain Copenhagen A38L%3B integral membrane glycoprotein%3B immunoglobulin-like%3B regulation of the influx of extracellular Ca2+;gbkey=CDS;locus_tag=MPXV-UK_P2-150;product=MPXVgp150;protein_id=QNP13745.1 +MT903344.1 Genbank gene 146124 146789 . - . ID=gene-MPXV-UK_P2-151;Name=MPXV-UK_P2-151;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-151 +MT903344.1 Genbank CDS 146124 146789 . - 0 ID=cds-QNP13746.1;Parent=gene-MPXV-UK_P2-151;Dbxref=NCBI_GP:QNP13746.1;Name=QNP13746.1;Note=A41L%3B similar to Vaccinia virus strain Copenhagen A41L%3B secreted protein reducing infiltration of inflammatory cells into the infected area;gbkey=CDS;locus_tag=MPXV-UK_P2-151;product=MPXVgp151;protein_id=QNP13746.1 +MT903344.1 Genbank gene 146999 147400 . + . ID=gene-MPXV-UK_P2-152;Name=MPXV-UK_P2-152;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-152 +MT903344.1 Genbank CDS 146999 147400 . + 0 ID=cds-QNP13747.1;Parent=gene-MPXV-UK_P2-152;Dbxref=NCBI_GP:QNP13747.1;Name=QNP13747.1;Note=A42R%3B similar to Vaccinia virus strain Copenhagen A42R%3B profilin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-152;product=MPXVgp152;protein_id=QNP13747.1 +MT903344.1 Genbank gene 147438 148028 . + . ID=gene-MPXV-UK_P2-153;Name=MPXV-UK_P2-153;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-153 +MT903344.1 Genbank CDS 147438 148028 . + 0 ID=cds-QNP13748.1;Parent=gene-MPXV-UK_P2-153;Dbxref=NCBI_GP:QNP13748.1;Name=QNP13748.1;Note=A43R%3B similar to Vaccinia virus strain Copenhagen A43R%3B membrane glycoprotein;gbkey=CDS;locus_tag=MPXV-UK_P2-153;product=MPXVgp153;protein_id=QNP13748.1 +MT903344.1 Genbank gene 148048 148272 . + . ID=gene-MPXV-UK_P2-154;Name=MPXV-UK_P2-154;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-154 +MT903344.1 Genbank CDS 148048 148272 . + 0 ID=cds-QNP13749.1;Parent=gene-MPXV-UK_P2-154;Dbxref=NCBI_GP:QNP13749.1;Name=QNP13749.1;Note=A44R;gbkey=CDS;locus_tag=MPXV-UK_P2-154;product=MPXVgp154;protein_id=QNP13749.1 +MT903344.1 Genbank gene 148366 149406 . - . ID=gene-MPXV-UK_P2-155;Name=MPXV-UK_P2-155;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-155 +MT903344.1 Genbank CDS 148366 149406 . - 0 ID=cds-QNP13750.1;Parent=gene-MPXV-UK_P2-155;Dbxref=NCBI_GP:QNP13750.1;Name=QNP13750.1;Note=A45L%3B similar to Vaccinia virus strain Copenhagen A44L%3B 3-b-Hydroxy-delta5-steroid dehydrogenase;gbkey=CDS;locus_tag=MPXV-UK_P2-155;product=MPXVgp158;protein_id=QNP13750.1 +MT903344.1 Genbank gene 149453 149830 . + . ID=gene-MPXV-UK_P2-156;Name=MPXV-UK_P2-156;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-156 +MT903344.1 Genbank CDS 149453 149830 . + 0 ID=cds-QNP13751.1;Parent=gene-MPXV-UK_P2-156;Dbxref=NCBI_GP:QNP13751.1;Name=QNP13751.1;Note=A46R%3B similar to Vaccinia virus strain Copenhagen A45R%3B superoxide dismutase-like%3B virion core protein;gbkey=CDS;locus_tag=MPXV-UK_P2-156;product=MPXVgp156;protein_id=QNP13751.1 +MT903344.1 Genbank gene 149820 150542 . + . ID=gene-MPXV-UK_P2-157;Name=MPXV-UK_P2-157;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-157 +MT903344.1 Genbank CDS 149820 150542 . + 0 ID=cds-QNP13752.1;Parent=gene-MPXV-UK_P2-157;Dbxref=NCBI_GP:QNP13752.1;Name=QNP13752.1;Note=A47R%3B similar to Vaccinia virus strain Copenhagen A46R;gbkey=CDS;locus_tag=MPXV-UK_P2-157;product=MPXVgp157;protein_id=QNP13752.1 +MT903344.1 Genbank gene 151520 152134 . + . ID=gene-MPXV-UK_P2-158;Name=MPXV-UK_P2-158;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-158 +MT903344.1 Genbank CDS 151520 152134 . + 0 ID=cds-QNP13753.1;Parent=gene-MPXV-UK_P2-158;Dbxref=NCBI_GP:QNP13753.1;Name=QNP13753.1;Note=A49R%3B similar to Vaccinia virus strain Copenhagen A48R%3B thymidylate kinase;gbkey=CDS;locus_tag=MPXV-UK_P2-158;product=MPXVgp159;protein_id=QNP13753.1 +MT903344.1 Genbank gene 152703 154382 . + . ID=gene-MPXV-UK_P2-159;Name=MPXV-UK_P2-159;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-159 +MT903344.1 Genbank CDS 152703 154382 . + 0 ID=cds-QNP13754.1;Parent=gene-MPXV-UK_P2-159;Dbxref=NCBI_GP:QNP13754.1;Name=QNP13754.1;Note=A50R%3B similar to Vaccinia virus strain Copenhagen A50R%3B DNA ligase;gbkey=CDS;locus_tag=MPXV-UK_P2-159;product=MPXVgp160;protein_id=QNP13754.1 +MT903344.1 Genbank gene 154423 155427 . + . ID=gene-MPXV-UK_P2-160;Name=MPXV-UK_P2-160;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-160 +MT903344.1 Genbank CDS 154423 155427 . + 0 ID=cds-QNP13755.1;Parent=gene-MPXV-UK_P2-160;Dbxref=NCBI_GP:QNP13755.1;Name=QNP13755.1;Note=A51R%3B similar to Vaccinia virus strain Copenhagen A51R;gbkey=CDS;locus_tag=MPXV-UK_P2-160;product=MPXVgp161;protein_id=QNP13755.1 +MT903344.1 Genbank pseudogene 158483 158878 . + . ID=gene-MPXV-UK_P2-161;Name=MPXV-UK_P2-161;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-161;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 158483 158878 . + 0 ID=cds-MPXV-UK_P2-161;Parent=gene-MPXV-UK_P2-161;Note=B1R%3B kelch-like;gbkey=CDS;locus_tag=MPXV-UK_P2-161;product=MPXVgp162;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 158928 159869 . + . ID=gene-MPXV-UK_P2-162;Name=MPXV-UK_P2-162;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-162 +MT903344.1 Genbank CDS 158928 159869 . + 0 ID=cds-QNP13756.1;Parent=gene-MPXV-UK_P2-162;Dbxref=NCBI_GP:QNP13756.1;Name=QNP13756.1;Note=B2R%3B similar to Vaccinia virus strain Copenhagen A56R%3B EEV envelope and cell membrane glycoprotein hemagglutinin%3B inhibition of the ability of infected cells to fuse%3B interacts with VAC F13L;gbkey=CDS;locus_tag=MPXV-UK_P2-162;product=MPXVgp163;protein_id=QNP13756.1 +MT903344.1 Genbank gene 160633 161544 . + . ID=gene-MPXV-UK_P2-163;Name=MPXV-UK_P2-163;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-163 +MT903344.1 Genbank CDS 160633 161544 . + 0 ID=cds-QNP13757.1;Parent=gene-MPXV-UK_P2-163;Dbxref=NCBI_GP:QNP13757.1;Name=QNP13757.1;Note=B3R%3B similar to Vaccinia virus strain Copenhagen B1R%3B serine;gbkey=CDS;locus_tag=MPXV-UK_P2-163;product=MPXVgp164;protein_id=QNP13757.1 +MT903344.1 Genbank gene 161607 163118 . + . ID=gene-MPXV-UK_P2-164;Name=MPXV-UK_P2-164;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-164 +MT903344.1 Genbank CDS 161607 163118 . + 0 ID=cds-QNP13758.1;Parent=gene-MPXV-UK_P2-164;Dbxref=NCBI_GP:QNP13758.1;Name=QNP13758.1;Note=B4R%3B schlafen-like;gbkey=CDS;locus_tag=MPXV-UK_P2-164;product=MPXVgp165;protein_id=QNP13758.1 +MT903344.1 Genbank gene 163344 165029 . + . ID=gene-MPXV-UK_P2-165;Name=MPXV-UK_P2-165;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-165 +MT903344.1 Genbank CDS 163344 165029 . + 0 ID=cds-QNP13759.1;Parent=gene-MPXV-UK_P2-165;Dbxref=NCBI_GP:QNP13759.1;Name=QNP13759.1;Note=B5R%3B similar to Vaccinia virus strain Copenhagen B4R%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-165;product=MPXVgp166;protein_id=QNP13759.1 +MT903344.1 Genbank gene 165133 166086 . + . ID=gene-MPXV-UK_P2-166;Name=MPXV-UK_P2-166;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-166 +MT903344.1 Genbank CDS 165133 166086 . + 0 ID=cds-QNP13760.1;Parent=gene-MPXV-UK_P2-166;Dbxref=NCBI_GP:QNP13760.1;Name=QNP13760.1;Note=B6R%3B similar to Vaccinia virus strain Copenhagen B5R%3B palmitated 42 kDa glycoprotein located both on the membranes of infected cells and on EEV envelope%3B complement control protein-like;gbkey=CDS;locus_tag=MPXV-UK_P2-166;product=MPXVgp167;protein_id=QNP13760.1 +MT903344.1 Genbank gene 166172 166678 . + . ID=gene-MPXV-UK_P2-167;Name=MPXV-UK_P2-167;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-167 +MT903344.1 Genbank CDS 166172 166678 . + 0 ID=cds-QNP13761.1;Parent=gene-MPXV-UK_P2-167;Dbxref=NCBI_GP:QNP13761.1;Name=QNP13761.1;Note=B7R%3B similar to Vaccinia virus strain Copenhagen B6R;gbkey=CDS;locus_tag=MPXV-UK_P2-167;product=MPXVgp168;protein_id=QNP13761.1 +MT903344.1 Genbank gene 166742 167290 . + . ID=gene-MPXV-UK_P2-168;Name=MPXV-UK_P2-168;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-168 +MT903344.1 Genbank CDS 166742 167290 . + 0 ID=cds-QNP13762.1;Parent=gene-MPXV-UK_P2-168;Dbxref=NCBI_GP:QNP13762.1;Name=QNP13762.1;Note=B8R%3B similar to Vaccinia virus strain Copenhagen B7R;gbkey=CDS;locus_tag=MPXV-UK_P2-168;product=MPXVgp169;protein_id=QNP13762.1 +MT903344.1 Genbank gene 167345 168148 . + . ID=gene-MPXV-UK_P2-169;Name=MPXV-UK_P2-169;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-169 +MT903344.1 Genbank CDS 167345 168148 . + 0 ID=cds-QNP13763.1;Parent=gene-MPXV-UK_P2-169;Dbxref=NCBI_GP:QNP13763.1;Name=QNP13763.1;Note=B9R%3B similar to Vaccinia virus strain Copenhagen B8R%3B secreted IFN-g binding protein;gbkey=CDS;locus_tag=MPXV-UK_P2-169;product=MPXVgp170;protein_id=QNP13763.1 +MT903344.1 Genbank gene 168241 168906 . + . ID=gene-MPXV-UK_P2-170;Name=MPXV-UK_P2-170;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-170 +MT903344.1 Genbank CDS 168241 168906 . + 0 ID=cds-QNP13764.1;Parent=gene-MPXV-UK_P2-170;Dbxref=NCBI_GP:QNP13764.1;Name=QNP13764.1;Note=B10R%3B shope fibroma virus T4 protein-like;gbkey=CDS;locus_tag=MPXV-UK_P2-170;product=MPXVgp171;protein_id=QNP13764.1 +MT903344.1 Genbank gene 169681 169983 . + . ID=gene-MPXV-UK_P2-171;Name=MPXV-UK_P2-171;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-171 +MT903344.1 Genbank CDS 169681 169983 . + 0 ID=cds-QNP13765.1;Parent=gene-MPXV-UK_P2-171;Dbxref=NCBI_GP:QNP13765.1;Name=QNP13765.1;gbkey=CDS;locus_tag=MPXV-UK_P2-171;product=Hypothetical protein (Cop-B11R);protein_id=QNP13765.1 +MT903344.1 Genbank gene 170049 170897 . + . ID=gene-MPXV-UK_P2-172;Name=MPXV-UK_P2-172;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-172 +MT903344.1 Genbank CDS 170049 170897 . + 0 ID=cds-QNP13766.1;Parent=gene-MPXV-UK_P2-172;Dbxref=NCBI_GP:QNP13766.1;Name=QNP13766.1;Note=B11R%3B similar to Vaccinia virus strain Copenhagen B12R%3B protein kinase-like;gbkey=CDS;locus_tag=MPXV-UK_P2-172;product=MPXVgp172;protein_id=QNP13766.1 +MT903344.1 Genbank gene 170999 172033 . + . ID=gene-MPXV-UK_P2-173;Name=MPXV-UK_P2-173;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-173 +MT903344.1 Genbank CDS 170999 172033 . + 0 ID=cds-QNP13767.1;Parent=gene-MPXV-UK_P2-173;Dbxref=NCBI_GP:QNP13767.1;Name=QNP13767.1;Note=SPI-2%3B B12R%3B serine protease inhibitor-like%2C SPI-2%3B inhibition of the IL-1b converting enzyme%3B apoptosis inhibition;gbkey=CDS;locus_tag=MPXV-UK_P2-173;product=MPXVgp173;protein_id=QNP13767.1 +MT903344.1 Genbank gene 172161 172610 . + . ID=gene-MPXV-UK_P2-174;Name=MPXV-UK_P2-174;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-174 +MT903344.1 Genbank CDS 172161 172610 . + 0 ID=cds-QNP13768.1;Parent=gene-MPXV-UK_P2-174;Dbxref=NCBI_GP:QNP13768.1;Name=QNP13768.1;Note=B13R%3B similar to Vaccinia virus strain Copenhagen B15R;gbkey=CDS;locus_tag=MPXV-UK_P2-174;product=MPXVgp174;protein_id=QNP13768.1 +MT903344.1 Genbank gene 172696 173238 . + . ID=gene-MPXV-UK_P2-175;Name=MPXV-UK_P2-175;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-175 +MT903344.1 Genbank CDS 172696 173238 . + 0 ID=cds-QNP13769.1;Parent=gene-MPXV-UK_P2-175;Dbxref=NCBI_GP:QNP13769.1;Name=QNP13769.1;Note=B14R%3B similar to Vaccinia virus strain Copenhagen B16R%3B secreted IL-1b binding protein%3B inhibition of virus infection induced fever;gbkey=CDS;locus_tag=MPXV-UK_P2-175;product=MPXVgp175;protein_id=QNP13769.1 +MT903344.1 Genbank pseudogene 173821 173901 . - . ID=gene-MPXV-UK_P2-176;Name=MPXV-UK_P2-176;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-176;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 173821 173901 . - 0 ID=cds-MPXV-UK_P2-176;Parent=gene-MPXV-UK_P2-176;Note=B15L;gbkey=CDS;locus_tag=MPXV-UK_P2-176;product=MPXVgp176;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 174609 175664 . + . ID=gene-MPXV-UK_P2-177;Name=MPXV-UK_P2-177;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-177 +MT903344.1 Genbank CDS 174609 175664 . + 0 ID=cds-QNP13770.1;Parent=gene-MPXV-UK_P2-177;Dbxref=NCBI_GP:QNP13770.1;Name=QNP13770.1;Note=B16R%3B similar to Vaccinia virus strain Copenhagen B19R%3B cell surface antigen and secreted IFN-a;gbkey=CDS;locus_tag=MPXV-UK_P2-177;product=MPXVgp177;protein_id=QNP13770.1 +MT903344.1 Genbank gene 175733 178096 . + . ID=gene-MPXV-UK_P2-178;Name=MPXV-UK_P2-178;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-178 +MT903344.1 Genbank CDS 175733 178096 . + 0 ID=cds-QNP13771.1;Parent=gene-MPXV-UK_P2-178;Dbxref=NCBI_GP:QNP13771.1;Name=QNP13771.1;Note=B17R%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-178;product=MPXVgp178;protein_id=QNP13771.1 +MT903344.1 Genbank pseudogene 178238 178492 . + . ID=gene-MPXV-UK_P2-179;Name=MPXV-UK_P2-179;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-179;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 178238 178492 . + 0 ID=cds-MPXV-UK_P2-179;Parent=gene-MPXV-UK_P2-179;Note=B18R%3B kelch-like fragment;gbkey=CDS;locus_tag=MPXV-UK_P2-179;product=MPXVgp179;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 179271 180344 . + . ID=gene-MPXV-UK_P2-180;Name=MPXV-UK_P2-180;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-180 +MT903344.1 Genbank CDS 179271 180344 . + 0 ID=cds-QNP13772.1;Parent=gene-MPXV-UK_P2-180;Dbxref=NCBI_GP:QNP13772.1;Name=QNP13772.1;Note=SPI-1%3B B19R%3B serine protease inhibitor-like%2C SPI-1%3B apoptosis inhibition;gbkey=CDS;locus_tag=MPXV-UK_P2-180;product=MPXVgp180;protein_id=QNP13772.1 +MT903344.1 Genbank gene 180523 181095 . + . ID=gene-MPXV-UK_P2-181;Name=MPXV-UK_P2-181;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-181 +MT903344.1 Genbank CDS 180523 181095 . + 0 ID=cds-QNP13773.1;Parent=gene-MPXV-UK_P2-181;Dbxref=NCBI_GP:QNP13773.1;Name=QNP13773.1;Note=B20R;gbkey=CDS;locus_tag=MPXV-UK_P2-181;product=MPXVgp181;protein_id=QNP13773.1 +MT903344.1 Genbank gene 181361 187003 . + . ID=gene-MPXV-UK_P2-182;Name=MPXV-UK_P2-182;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-182 +MT903344.1 Genbank CDS 181361 187003 . + 0 ID=cds-QNP13774.1;Parent=gene-MPXV-UK_P2-182;Dbxref=NCBI_GP:QNP13774.1;Name=QNP13774.1;Note=B21R%3B putative membrane-associated glycoprotein%3B cadherin-like domain;gbkey=CDS;locus_tag=MPXV-UK_P2-182;product=MPXVgp182;protein_id=QNP13774.1 +MT903344.1 Genbank pseudogene 188683 189000 . + . ID=gene-MPXV-UK_P2-183;Name=MPXV-UK_P2-183;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-183;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 188683 189000 . + 0 ID=cds-MPXV-UK_P2-183;Parent=gene-MPXV-UK_P2-183;Note=R1R;gbkey=CDS;locus_tag=MPXV-UK_P2-183;product=MPXVgp184;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 189204 189665 . + . ID=gene-MPXV-UK_P2-184;Name=MPXV-UK_P2-184;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-184 +MT903344.1 Genbank CDS 189204 189665 . + 0 ID=cds-QNP13775.1;Parent=gene-MPXV-UK_P2-184;Dbxref=NCBI_GP:QNP13775.1;Name=QNP13775.1;Note=N1R%3B similar to Vaccinia virus strain Copenhagen B22R%3B VAC B15R-like;gbkey=CDS;locus_tag=MPXV-UK_P2-184;product=MPXVgp185;protein_id=QNP13775.1 +MT903344.1 Genbank gene 190102 190323 . + . ID=gene-MPXV-UK_P2-185;Name=MPXV-UK_P2-185;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-185 +MT903344.1 Genbank CDS 190102 190323 . + 0 ID=cds-QNP13776.1;Parent=gene-MPXV-UK_P2-185;Dbxref=NCBI_GP:QNP13776.1;Name=QNP13776.1;Note=N2R;gbkey=CDS;locus_tag=MPXV-UK_P2-185;product=MPXVgp186;protein_id=QNP13776.1 +MT903344.1 Genbank pseudogene 190415 190945 . + . ID=gene-MPXV-UK_P2-186;Name=MPXV-UK_P2-186;gbkey=Gene;gene_biotype=pseudogene;locus_tag=MPXV-UK_P2-186;pseudo=true;pseudogene=unknown +MT903344.1 Genbank CDS 190415 190945 . + 0 ID=cds-MPXV-UK_P2-186;Parent=gene-MPXV-UK_P2-186;Note=N3R;gbkey=CDS;locus_tag=MPXV-UK_P2-186;product=MPXVgp187;pseudo=true;pseudogene=unknown +MT903344.1 Genbank gene 191059 192372 . + . ID=gene-MPXV-UK_P2-187;Name=MPXV-UK_P2-187;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-187 +MT903344.1 Genbank CDS 191059 192372 . + 0 ID=cds-QNP13777.1;Parent=gene-MPXV-UK_P2-187;Dbxref=NCBI_GP:QNP13777.1;Name=QNP13777.1;Note=N4R%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-187;product=MPXVgp188;protein_id=QNP13777.1 +MT903344.1 Genbank gene 192608 194374 . + . ID=gene-MPXV-UK_P2-188;Name=MPXV-UK_P2-188;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-188 +MT903344.1 Genbank CDS 192608 194374 . + 0 ID=cds-QNP13778.1;Parent=gene-MPXV-UK_P2-188;Dbxref=NCBI_GP:QNP13778.1;Name=QNP13778.1;Note=J1R%3B ankyrin-like;gbkey=CDS;locus_tag=MPXV-UK_P2-188;product=MPXVgp189;protein_id=QNP13778.1 +MT903344.1 Genbank gene 194464 195513 . + . ID=gene-MPXV-UK_P2-189;Name=MPXV-UK_P2-189;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-189 +MT903344.1 Genbank CDS 194464 195513 . + 0 ID=cds-QNP13779.1;Parent=gene-MPXV-UK_P2-189;Dbxref=NCBI_GP:QNP13779.1;Name=QNP13779.1;Note=J2R%3B secreted TNF binding protein;gbkey=CDS;locus_tag=MPXV-UK_P2-189;product=MPXVgp190;protein_id=QNP13779.1 +MT903344.1 Genbank gene 195640 196380 . + . ID=gene-MPXV-UK_P2-190;Name=MPXV-UK_P2-190;gbkey=Gene;gene_biotype=protein_coding;locus_tag=MPXV-UK_P2-190 +MT903344.1 Genbank CDS 195640 196380 . + 0 ID=cds-QNP13780.1;Parent=gene-MPXV-UK_P2-190;Dbxref=NCBI_GP:QNP13780.1;Name=QNP13780.1;Note=J3R%3B similar to Vaccinia virus strain Copenhagen B29R%3B CC-chemokine binding;gbkey=CDS;locus_tag=MPXV-UK_P2-190;product=MPXVgp191;protein_id=QNP13780.1 diff --git a/assets/adapters.fa b/assets/adapters.fa new file mode 100755 index 0000000..a87d425 --- /dev/null +++ b/assets/adapters.fa @@ -0,0 +1,317 @@ +>Reverse_adapter +AGATCGGAAGAGCACACGTCTGAACTCCAGTCACATCACGATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Universal_Adapter +AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT +>pcr_dimer +AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTAGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTG +>PCR_Primers +AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCTCAAGCAGAAGACGGCATACGAGCTCTTCCGATCT +>TruSeq_Adapter_Index_1_6 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACATCACGATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_2 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACCGATGTATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_3 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACTTAGGCATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_4 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_5 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACACAGTGATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_6 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGCCAATATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_7 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACCAGATCATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_8 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACACTTGAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_9 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGATCAGATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_10 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACTAGCTTATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_11 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGGCTACATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_12 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACCTTGTAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_13 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACAGTCAACAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_14 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACAGTTCCGTATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_15 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACATGTCAGAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_16 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACCCGTCCCGATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_18_7 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGTCCGCACATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_19 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGTGAAACGATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_20 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGTGGCCTTATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_21 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGTTTCGGAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_22 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACCGTACGTAATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_23 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACGAGTGGATATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_25 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACACTGATATATCTCGTATGCCGTCTTCTGCTTG +>TruSeq_Adapter_Index_27 +GATCGGAAGAGCACACGTCTGAACTCCAGTCACATTCCTTTATCTCGTATGCCGTCTTCTGCTTG +>I5_Nextera_Transposase_1 +CTGTCTCTTATACACATCTGACGCTGCCGACGA +>I7_Nextera_Transposase_1 +CTGTCTCTTATACACATCTCCGAGCCCACGAGAC +>I5_Nextera_Transposase_2 +CTGTCTCTTATACACATCTCTGATGGCGCGAGGGAGGC +>I7_Nextera_Transposase_2 +CTGTCTCTTATACACATCTCTGAGCGGGCTGGCAAGGC +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]501 +GACGCTGCCGACGAGCGATCTAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]502 +GACGCTGCCGACGAATAGAGAGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]503 +GACGCTGCCGACGAAGAGGATAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]504 +GACGCTGCCGACGATCTACTCTGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]505 +GACGCTGCCGACGACTCCTTACGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]506 +GACGCTGCCGACGATATGCAGTGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]507 +GACGCTGCCGACGATACTCCTTGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]508 +GACGCTGCCGACGAAGGCTTAGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_and_Nextera_Enrichment_[N/S/E]517 +GACGCTGCCGACGATCTTACGCGTGTAGATCTCGGTGGTCGCCGTATCATT +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N701 +CCGAGCCCACGAGACTAAGGCGAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N702 +CCGAGCCCACGAGACCGTACTAGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N703 +CCGAGCCCACGAGACAGGCAGAAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N704 +CCGAGCCCACGAGACTCCTGAGCATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N705 +CCGAGCCCACGAGACGGACTCCTATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N706 +CCGAGCCCACGAGACTAGGCATGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N707 +CCGAGCCCACGAGACCTCTCTACATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N708 +CCGAGCCCACGAGACCAGAGAGGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N709 +CCGAGCCCACGAGACGCTACGCTATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N710 +CCGAGCCCACGAGACCGAGGCTGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N711 +CCGAGCCCACGAGACAAGAGGCAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_and_Nextera_Enrichment_N712 +CCGAGCCCACGAGACGTAGAGGAATCTCGTATGCCGTCTTCTGCTTG +>I5_Primer_Nextera_XT_Index_Kit_v2_S502 +GACGCTGCCGACGAATAGAGAGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S503 +GACGCTGCCGACGAAGAGGATAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S505 +GACGCTGCCGACGACTCCTTACGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S506 +GACGCTGCCGACGATATGCAGTGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S507 +GACGCTGCCGACGATACTCCTTGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S508 +GACGCTGCCGACGAAGGCTTAGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S510 +GACGCTGCCGACGAATTAGACGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S511 +GACGCTGCCGACGACGGAGAGAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S513 +GACGCTGCCGACGACTAGTCGAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S515 +GACGCTGCCGACGAAGCTAGAAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S516 +GACGCTGCCGACGAACTCTAGGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S517 +GACGCTGCCGACGATCTTACGCGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S518 +GACGCTGCCGACGACTTAATAGGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S520 +GACGCTGCCGACGAATAGCCTTGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S521 +GACGCTGCCGACGATAAGGCTCGTGTAGATCTCGGTGGTCGCCGTATCATT +>I5_Primer_Nextera_XT_Index_Kit_v2_S522 +GACGCTGCCGACGATCGCATAAGTGTAGATCTCGGTGGTCGCCGTATCATT +>I7_Primer_Nextera_XT_Index_Kit_v2_N701 +CCGAGCCCACGAGACTAAGGCGAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N702 +CCGAGCCCACGAGACCGTACTAGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N703 +CCGAGCCCACGAGACAGGCAGAAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N704 +CCGAGCCCACGAGACTCCTGAGCATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N705 +CCGAGCCCACGAGACGGACTCCTATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N706 +CCGAGCCCACGAGACTAGGCATGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N707 +CCGAGCCCACGAGACCTCTCTACATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N710 +CCGAGCCCACGAGACCGAGGCTGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N711 +CCGAGCCCACGAGACAAGAGGCAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N712 +CCGAGCCCACGAGACGTAGAGGAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N714 +CCGAGCCCACGAGACGCTCATGAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N715 +CCGAGCCCACGAGACATCTCAGGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N716 +CCGAGCCCACGAGACACTCGCTAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N718 +CCGAGCCCACGAGACGGAGCTACATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N719 +CCGAGCCCACGAGACGCGTAGTAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N720 +CCGAGCCCACGAGACCGGAGCCTATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N721 +CCGAGCCCACGAGACTACGCTGCATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N722 +CCGAGCCCACGAGACATGCGCAGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N723 +CCGAGCCCACGAGACTAGCGCTCATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N724 +CCGAGCCCACGAGACACTGAGCGATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N726 +CCGAGCCCACGAGACCCTAAGACATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N727 +CCGAGCCCACGAGACCGATCAGTATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N728 +CCGAGCCCACGAGACTGCAGCTAATCTCGTATGCCGTCTTCTGCTTG +>I7_Primer_Nextera_XT_Index_Kit_v2_N729 +CCGAGCCCACGAGACTCGACGTCATCTCGTATGCCGTCTTCTGCTTG +>I5_Adapter_Nextera +CTGATGGCGCGAGGGAGGCGTGTAGATCTCGGTGGTCGCCGTATCATT +>I7_Adapter_Nextera_No_Barcode +CTGAGCGGGCTGGCAAGGCAGACCGATCTCGTATGCCGTCTTCTGCTTG +>Nextera_LMP_Read1_External_Adapter +GATCGGAAGAGCACACGTCTGAACTCCAGTCAC +>Nextera_LMP_Read2_External_Adapter +GATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT +>RNA_Adapter_(RA5)_part_#_15013205 +GATCGTCGGACTGTAGAACTCTGAAC +>RNA_Adapter_(RA3)_part_#_15013207 +CCTTGGCACCCGAGAATTCCA +>Stop_Oligo_(STP)_8 +CCACGGGAACGTGGTGGAATTC +>RNA_RT_Primer_(RTP)_part_#_15013981 +TGGAATTCTCGGGTGCCAAGGC +>RNA_PCR_Primer_(RP1)_part_#_15013198 +TCGGACTGTAGAACTCTGAACGTGTAGATCTCGGTGGTCGCCGTATCATT +>RNA_PCR_Primer_Index_1_(RPI1)_2,9 +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACATCACGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_2_(RPI2) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCGATGTATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_3_(RPI3) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTTAGGCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_4_(RPI4) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTGACCAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_5_(RPI5) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACACAGTGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_6_(RPI6) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGCCAATATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_7_(RPI7) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCAGATCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_8_(RPI8) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACACTTGAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_9_(RPI9) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGATCAGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_10_(RPI10) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTAGCTTATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_11_(RPI11) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGGCTACATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_12_(RPI12) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCTTGTAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_13_(RPI13) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACAGTCAAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_14_(RPI14) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACAGTTCCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_15_(RPI15) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACATGTCAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_16_(RPI16) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCCGTCCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_17_(RPI17) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGTAGAGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_18_(RPI18) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGTCCGCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_19_(RPI19) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGTGAAAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_20_(RPI20) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGTGGCCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_21_(RPI21) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGTTTCGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_22_(RPI22) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCGTACGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_23_(RPI23) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGAGTGGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_24_(RPI24) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGGTAGCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_25_(RPI25) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACACTGATATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_26_(RPI26) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACATGAGCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_27_(RPI27) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACATTCCTATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_28_(RPI28) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCAAAAGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_29_(RPI29) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCAACTAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_30_(RPI30) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCACCGGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_31_(RPI31) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCACGATATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_32_(RPI32) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCACTCAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_33_(RPI33) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCAGGCGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_34_(RPI34) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCATGGCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_35_(RPI35) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCATTTTATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_36_(RPI36) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCCAACAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_37_(RPI37) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCGGAATATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_38_(RPI38) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCTAGCTATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_39_(RPI39) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCTATACATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_40_(RPI40) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACCTCAGAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_41_(RPI41) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACGACGACATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_42_(RPI42) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTAATCGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_43_(RPI43) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTACAGCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_44_(RPI44) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTATAATATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_45_(RPI45) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTCATTCATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_46_(RPI46) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTCCCGAATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_47_(RPI47) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTCGAAGATCTCGTATGCCGTCTTCTGCTTG +>RNA_PCR_Primer_Index_48_(RPI48) +TGGAATTCTCGGGTGCCAAGGAACTCCAGTCACTCGGCAATCTCGTATGCCGTCTTCTGCTTG +>PhiX_read1_adapter +AGATCGGAAGAGCGGTTCAGCAGGAATGCCGAGACCGATCTCGTATGCCGTCTTCTGCTTGAAA +>PhiX_read2_adapter +AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAA +>Bisulfite_R1 +AGATCGGAAGAGCACACGTCTGAAC +>Bisulfite_R2 +AGATCGGAAGAGCGTCGTGTAGGGA +>Illumina Small RNA v1.5 3p Adapter +ATCTCGTATGCCGTCTTCTGCTTG +>Illumina RNA 3p Adapter (RA3) +TGGAATTCTCGGGTGCCAAGG +>Illumina RNA 5p Adapter (RA5) +GTTCAGAGTTCTACAGTCCGACGATC +>Illumina 3p RNA Adapter +TCGTATGCCGTCTTCTGCTTGT + diff --git a/assets/email_template.html b/assets/email_template.html new file mode 100755 index 0000000..0a9e01f --- /dev/null +++ b/assets/email_template.html @@ -0,0 +1,53 @@ + + + + + + + + PolkaPox Pipeline Report + + +
+ + + +

polkapox v${version}

+

Run Name: $runName

+ +<% if (!success){ + out << """ +
+

polkapox execution completed unsuccessfully!

+

The exit status of the task that caused the workflow execution to fail was: $exitStatus.

+

The full error message was:

+
${errorReport}
+
+ """ +} else { + out << """ +
+ polkapox execution completed successfully! +
+ """ +} +%> + +

The workflow was completed at $dateComplete (duration: $duration)

+

The command used to launch the workflow was as follows:

+
$commandLine
+ +

Pipeline Configuration:

+ + + <% out << summary.collect{ k,v -> "" }.join("\n") %> + +
$k
$v
+ +

polkapox

+

https://github.com/CDCgov/polkapox

+ +
+ + + diff --git a/assets/email_template.txt b/assets/email_template.txt new file mode 100755 index 0000000..94c758e --- /dev/null +++ b/assets/email_template.txt @@ -0,0 +1,40 @@ +---------------------------------------------------- + ,--./,-. + ___ __ __ __ ___ /,-._.--~\\ + |\\ | |__ __ / ` / \\ |__) |__ } { + | \\| | \\__, \\__/ | \\ |___ \\`-._,-`-, + `._,._,' + nf-core/mpxvassembly v${version} +---------------------------------------------------- + +Run Name: $runName + +<% if (success){ + out << "## polkapox execution completed successfully! ##" +} else { + out << """#################################################### +## polkapox execution completed unsuccessfully! ## +#################################################### +The exit status of the task that caused the workflow execution to fail was: $exitStatus. +The full error message was: + +${errorReport} +""" +} %> + + +The workflow was completed at $dateComplete (duration: $duration) + +The command used to launch the workflow was as follows: + + $commandLine + + + +Pipeline Configuration: +----------------------- +<% out << summary.collect{ k,v -> " - $k: $v" }.join("\n") %> + +-- +polkapox +https://github.com/CDCgov/polkapox diff --git a/assets/kraken2_tax_ids.txt b/assets/kraken2_tax_ids.txt new file mode 100755 index 0000000..88de324 --- /dev/null +++ b/assets/kraken2_tax_ids.txt @@ -0,0 +1,13 @@ +10242 +10244 +10245 +397342 +12643 +10255 +28873 +28874 +10243 +2200830 +10256 +28871 +160796 \ No newline at end of file diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml new file mode 100755 index 0000000..808308a --- /dev/null +++ b/assets/multiqc_config.yml @@ -0,0 +1,11 @@ +report_comment: > + This report has been generated by the polkapox + analysis pipeline. For information about how to interpret these results, please see the + documentation. +report_section_order: + software_versions: + order: -1000 + "polkapox-summary": + order: -1001 + +export_plots: true diff --git a/assets/schema_input.json b/assets/schema_input.json new file mode 100755 index 0000000..f8a9a3a --- /dev/null +++ b/assets/schema_input.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/nf-core/mpxvassembly/master/assets/schema_input.json", + "title": "polkapox pipeline - params.input schema", + "description": "Schema for the file provided with params.input", + "type": "array", + "items": { + "type": "object", + "properties": { + "sample": { + "type": "string", + "pattern": "^\\S+$", + "errorMessage": "Sample name must be provided and cannot contain spaces" + }, + "fastq_1": { + "type": "string", + "pattern": "^\\S+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" + }, + "fastq_2": { + "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'", + "anyOf": [ + { + "type": "string", + "pattern": "^\\S+\\.f(ast)?q\\.gz$" + }, + { + "type": "string", + "maxLength": 0 + } + ] + } + }, + "required": ["sample", "fastq_1"] + } +} diff --git a/assets/sendmail_template.txt b/assets/sendmail_template.txt new file mode 100755 index 0000000..cd1b39d --- /dev/null +++ b/assets/sendmail_template.txt @@ -0,0 +1,53 @@ +To: $email +Subject: $subject +Mime-Version: 1.0 +Content-Type: multipart/related;boundary="nfcoremimeboundary" + +--nfcoremimeboundary +Content-Type: text/html; charset=utf-8 + +$email_html + +--nfcoremimeboundary +Content-Type: image/png;name="nf-core-mpxvassembly_logo.png" +Content-Transfer-Encoding: base64 +Content-ID: +Content-Disposition: inline; filename="nf-core-mpxvassembly_logo_light.png" + +<% out << new File("$projectDir/assets/nf-core-mpxvassembly_logo_light.png"). + bytes. + encodeBase64(). + toString(). + tokenize( '\n' )*. + toList()*. + collate( 76 )*. + collect { it.join() }. + flatten(). + join( '\n' ) %> + +<% +if (mqcFile){ +def mqcFileObj = new File("$mqcFile") +if (mqcFileObj.length() < mqcMaxSize){ +out << """ +--nfcoremimeboundary +Content-Type: text/html; name=\"multiqc_report\" +Content-Transfer-Encoding: base64 +Content-ID: +Content-Disposition: attachment; filename=\"${mqcFileObj.getName()}\" + +${mqcFileObj. + bytes. + encodeBase64(). + toString(). + tokenize( '\n' )*. + toList()*. + collate( 76 )*. + collect { it.join() }. + flatten(). + join( '\n' )} +""" +}} +%> + +--nfcoremimeboundary-- diff --git a/bin/aggregate_tsvs.py b/bin/aggregate_tsvs.py new file mode 100755 index 0000000..5e4326b --- /dev/null +++ b/bin/aggregate_tsvs.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +import argparse +import os +import subprocess as sp + +#define the user inputs +def get_args(): + parser = argparse.ArgumentParser() + #parser.add_argument("-i", "--in_dir", required=True, help="REQUIRED: list of vcf summary files from the summarize_vcfs modules.") + return parser.parse_args() + +def combine_summaries(): + #write the outfile for all samples + outfile='all_samples.vcf.summary.txt' + if os.path.exists(outfile): + os.remove(outfile) + fh_out=open(outfile,'w') + fh_out.write( + 'run' + '\t' + \ + 'sample'+ '\t' + \ + 'coord' + '\t' + \ + 'refBase' + '\t' + \ + 'altBase' + '\t' + \ + 'totalDP' + '\t' + \ + 'altDP' + '\t' + \ + 'altQual' + '\t' + \ + 'altFreq' + '\t' + \ + 'altPval' + '\t' + \ + 'GFFfeature' + '\t' + \ + 'RefCodon' + '\t' + \ + 'RefAA' + '\t' + \ + 'AltCodon' + '\t' + \ + 'AltAA' + '\n') + for f in os.listdir('.'): + if f.endswith('_ivar_summary.txt'): + fh=open(f,'r') + for line in fh.readlines()[1:]: + line=line.strip() + fh_out.write(line+'\n') + +def main(): + #define the arguments + args = get_args() + combine_summaries() + +if __name__ == '__main__': + main() diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py new file mode 100755 index 0000000..4e29c3d --- /dev/null +++ b/bin/check_samplesheet.py @@ -0,0 +1,260 @@ +#!/usr/bin/env python + + +"""Provide a command line tool to validate and transform tabular samplesheets.""" + + +import argparse +import csv +import logging +import sys +from collections import Counter +from pathlib import Path + + +logger = logging.getLogger() + + +class RowChecker: + """ + Define a service that can validate and transform each given row. + + Attributes: + modified (list): A list of dicts, where each dict corresponds to a previously + validated and transformed row. The order of rows is maintained. + + """ + + VALID_FORMATS = ( + ".fq.gz", + ".fastq.gz", + ) + + def __init__( + self, + sample_col="sample", + first_col="fastq_1", + second_col="fastq_2", + single_col="single_end", + **kwargs, + ): + """ + Initialize the row checker with the expected column names. + + Args: + sample_col (str): The name of the column that contains the sample name + (default "sample"). + first_col (str): The name of the column that contains the first (or only) + FASTQ file path (default "fastq_1"). + second_col (str): The name of the column that contains the second (if any) + FASTQ file path (default "fastq_2"). + single_col (str): The name of the new column that will be inserted and + records whether the sample contains single- or paired-end sequencing + reads (default "single_end"). + + """ + super().__init__(**kwargs) + self._sample_col = sample_col + self._first_col = first_col + self._second_col = second_col + self._single_col = single_col + self._seen = set() + self.modified = [] + + def validate_and_transform(self, row): + """ + Perform all validations on the given row and insert the read pairing status. + + Args: + row (dict): A mapping from column headers (keys) to elements of that row + (values). + + """ + self._validate_sample(row) + self._validate_first(row) + self._validate_second(row) + self._validate_pair(row) + self._seen.add((row[self._sample_col], row[self._first_col])) + self.modified.append(row) + + def _validate_sample(self, row): + """Assert that the sample name exists and convert spaces to underscores.""" + assert len(row[self._sample_col]) > 0, "Sample input is required." + # Sanitize samples slightly. + row[self._sample_col] = row[self._sample_col].replace(" ", "_") + + def _validate_first(self, row): + """Assert that the first FASTQ entry is non-empty and has the right format.""" + assert len(row[self._first_col]) > 0, "At least the first FASTQ file is required." + self._validate_fastq_format(row[self._first_col]) + + def _validate_second(self, row): + """Assert that the second FASTQ entry has the right format if it exists.""" + if len(row[self._second_col]) > 0: + self._validate_fastq_format(row[self._second_col]) + + def _validate_pair(self, row): + """Assert that read pairs have the same file extension. Report pair status.""" + if row[self._first_col] and row[self._second_col]: + row[self._single_col] = False + assert ( + Path(row[self._first_col]).suffixes[-2:] == Path(row[self._second_col]).suffixes[-2:] + ), "FASTQ pairs must have the same file extensions." + else: + row[self._single_col] = True + + def _validate_fastq_format(self, filename): + """Assert that a given filename has one of the expected FASTQ extensions.""" + assert any(filename.endswith(extension) for extension in self.VALID_FORMATS), ( + f"The FASTQ file has an unrecognized extension: {filename}\n" + f"It should be one of: {', '.join(self.VALID_FORMATS)}" + ) + + def validate_unique_samples(self): + """ + Assert that the combination of sample name and FASTQ filename is unique. + + In addition to the validation, also rename the sample if more than one sample, + FASTQ file combination exists. + + """ + assert len(self._seen) == len(self.modified), "The pair of sample name and FASTQ must be unique." + if len({pair[0] for pair in self._seen}) < len(self._seen): + counts = Counter(pair[0] for pair in self._seen) + seen = Counter() + for row in self.modified: + sample = row[self._sample_col] + seen[sample] += 1 + if counts[sample] > 1: + row[self._sample_col] = f"{sample}_T{seen[sample]}" + + +def read_head(handle, num_lines=2): + """Read the specified number of lines from the current position in the file.""" + lines = [] + for idx, line in enumerate(handle): + if idx == num_lines: + break + lines.append(line) + return "".join(lines) + + +def sniff_format(handle): + """ + Detect the tabular format. + + Args: + handle (text file): A handle to a `text file`_ object. The read position is + expected to be at the beginning (index 0). + + Returns: + csv.Dialect: The detected tabular format. + + .. _text file: + https://docs.python.org/3/glossary.html#term-text-file + + """ + peek = read_head(handle) + handle.seek(0) + sniffer = csv.Sniffer() + if not sniffer.has_header(peek): + logger.critical(f"The given sample sheet does not appear to contain a header.") + sys.exit(1) + dialect = sniffer.sniff(peek) + return dialect + + +def check_samplesheet(file_in, file_out): + """ + Check that the tabular samplesheet has the structure expected by nf-core pipelines. + + Validate the general shape of the table, expected columns, and each row. Also add + an additional column which records whether one or two FASTQ reads were found. + + Args: + file_in (pathlib.Path): The given tabular samplesheet. The format can be either + CSV, TSV, or any other format automatically recognized by ``csv.Sniffer``. + file_out (pathlib.Path): Where the validated and transformed samplesheet should + be created; always in CSV format. + + Example: + This function checks that the samplesheet follows the following structure, + see also the `viral recon samplesheet`_:: + + sample,fastq_1,fastq_2 + SAMPLE_PE,SAMPLE_PE_RUN1_1.fastq.gz,SAMPLE_PE_RUN1_2.fastq.gz + SAMPLE_PE,SAMPLE_PE_RUN2_1.fastq.gz,SAMPLE_PE_RUN2_2.fastq.gz + SAMPLE_SE,SAMPLE_SE_RUN1_1.fastq.gz, + + .. _viral recon samplesheet: + https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv + + """ + required_columns = {"sample", "fastq_1", "fastq_2"} + # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. + with file_in.open(newline="") as in_handle: + reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) + # Validate the existence of the expected header columns. + if not required_columns.issubset(reader.fieldnames): + logger.critical(f"The sample sheet **must** contain the column headers: {', '.join(required_columns)}.") + sys.exit(1) + # Validate each row. + checker = RowChecker() + for i, row in enumerate(reader): + try: + checker.validate_and_transform(row) + except AssertionError as error: + logger.critical(f"{str(error)} On line {i + 2}.") + sys.exit(1) + checker.validate_unique_samples() + header = list(reader.fieldnames) + header.insert(1, "single_end") + # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. + with file_out.open(mode="w", newline="") as out_handle: + writer = csv.DictWriter(out_handle, header, delimiter=",") + writer.writeheader() + for row in checker.modified: + writer.writerow(row) + + +def parse_args(argv=None): + """Define and immediately parse command line arguments.""" + parser = argparse.ArgumentParser( + description="Validate and transform a tabular samplesheet.", + epilog="Example: python check_samplesheet.py samplesheet.csv samplesheet.valid.csv", + ) + parser.add_argument( + "file_in", + metavar="FILE_IN", + type=Path, + help="Tabular input samplesheet in CSV or TSV format.", + ) + parser.add_argument( + "file_out", + metavar="FILE_OUT", + type=Path, + help="Transformed output samplesheet in CSV format.", + ) + parser.add_argument( + "-l", + "--log-level", + help="The desired log level (default WARNING).", + choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), + default="WARNING", + ) + return parser.parse_args(argv) + + +def main(argv=None): + """Coordinate argument parsing and program execution.""" + args = parse_args(argv) + logging.basicConfig(level=args.log_level, format="[%(levelname)s] %(message)s") + if not args.file_in.is_file(): + logger.error(f"The given input file {args.file_in} was not found!") + sys.exit(2) + args.file_out.parent.mkdir(parents=True, exist_ok=True) + check_samplesheet(args.file_in, args.file_out) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/bin/create_samplesheet.py b/bin/create_samplesheet.py new file mode 100755 index 0000000..6d32232 --- /dev/null +++ b/bin/create_samplesheet.py @@ -0,0 +1,208 @@ +#!/usr/bin/env python3 + +import os,sys +import argparse +import logging +import re +from glob import glob +from pathlib import Path + +# Script to generate sample sheet from a directory of fastq files +# Paired-end files must end in (1 or R1) and (2 or R2) +# Sample sheet format is sample,fastq_1,fastq_2 (paired-end) or sample,fastq (single-end) +logger = logging.getLogger() + +def parse_args(): + """ Set up arguments + :returns: an argparse.Namespace object with arguments + :rtype: argparse.Namespace + """ + + parser = argparse.ArgumentParser( + description="Generate a sample sheet from a directory of fastq files.", + epilog="Example: python3 create_samplesheet.py -d ./my_samples_folder/", + ) + parser.add_argument( + '-d', '--indir', + default=None, + required=False, + metavar="SAMPLES_DIR", + help="Samples directory") + parser.add_argument( + '--single', + action='store_true', + required=False, + help="Flag for single-end reads") + parser.add_argument( + '-o', '--outdir', + default=None, + required=False, + metavar="OUTPUT_DIR", + help="Path to project dir where samplesheet will be saved") + parser.add_argument( + '--project_name', + default=None, + required=False, + metavar="PROJECT_NAME", + help="Project name which will be the prefix of samplesheet name") + parser.add_argument( + "-l", + "--log-level", + help="The desired log level (default WARNING).", + choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), + default="WARNING", + ) + return parser.parse_args() + +def check_path(input_path): + """ Check if path is valid and if yes, return absolute path + Add a trailing slash '/' if there isn't one + :param path: a file path + :returns: a validated, absolute file path + :rytpe: str + """ + if not os.path.isdir(input_path): + logger.error(f"The given input {input_path} is not a valid directory") + sys.exit(1) + else: + input_path = os.path.realpath(input_path) + '/' + return input_path + +def check_if_R1(file_path): + """ Return true if file has R1 in the name + :param path: a file path + :returns: true if valid filenames, else false + :rytpe: bool + """ + return "_R1" in file_path + +def find_file_depth(samples_dir): + """ Return the file depth + :param samples_dir: a file path + :returns: dictionary of fastq file levels under samples_dir + :rtype: dict + """ + extensions = (".fastq",".fq",".fastq.gz",".fq.gz") + file_depth = {} + for dirpath, _, files in os.walk(samples_dir): + relative_path = os.path.relpath(dirpath, samples_dir) + depth = 0 if relative_path == "." else relative_path.count(os.path.sep) + 1 + # Ignore files nested >1 level down because these are not handled by rest of code + if depth > 1: + continue + for file in files: + if file not in file_depth and file.endswith(extensions): + file_depth[file] = depth + return file_depth + +def handle_file_depth(depth_dict): + """ Return whether files are directly under sampls_dir or nested 1 level down + :param depth_dict: a dictionary with filepaths as keys and file level as value + :returns: 0 if directly under samples_dir, 1 if nested one level down + :rtype: boolean + """ + unique_depths = set(depth_dict.values()) + if unique_depths == {0}: + nested = 0 # directly under input dir + elif unique_depths == {1}: + nested = 1 # nested one level down + else: + # Store err val if files are at mixed depths or unexpected val in dict + nested = 9 + return nested + +def remove_id(sample_name): + """ Removes the sample identifier common in CDC Core Sequencing Lab samples + Identifier format: a leading underscore, following by 10 numeric digits, at the end of the sample name string + :param sample_name: the sample name as a string + :returns: the sample name without the identifier + :rtype: str + """ + id_pattern = re.compile(r'_\d{10}$') + new_sample_name = re.sub(id_pattern, '', sample_name) + return new_sample_name + +def list_samples(samples_dir, single=False): + """ Return a list of all samples in a directory + :param samples_dir: a file path + :returns: a list of paths to all fastq/fq files in samples_dir + :rtype: list + """ + samples_dir = os.path.realpath(samples_dir) + extensions = (".fastq",".fq",".fastq.gz",".fq.gz") + seqfiles = [] + for filename in os.listdir(samples_dir): + if single and "_R2" in filename: + log.error("single flag is set to {single} but input directory contains R2 files") + # Check for fastq files directly under samples_dir + if filename.endswith(extensions) and "_R1_" in filename: + seqfiles.append(os.path.join(samples_dir, filename)) + else: + # Check for fastq files nested one level down + subdir = os.path.join(samples_dir, filename) + if os.path.isdir(subdir): + for subfilename in os.listdir(subdir): + if subfilename.endswith(extensions) and "_R1_" in subfilename: + seqfiles.append(os.path.join(subdir, subfilename)) + return seqfiles + +def create_samplesheet(samples_list, outdir, outfile, nested, single=False): + """ Create a samplesheet from files in a directory + :param samples_dir: a directory of fastq files + :param samples_list: a list of all samples in samples_dir + :returns: + :rtype: + """ + #todo: Add a date to the samplesheet name? + if single: + # process single-end files + with open(f'{outdir}{outfile}', 'w') as samplesheet: + samplesheet.write('sample,fastq_1,fastq_2\n') + for sample in sorted(samples_list): + if nested == 1: + s_name = Path(sample).parent.name + s_name = remove_id(s_name) + else: + s_name = os.path.splitext(Path(sample).stem)[0].replace('_R1_001','') + samplesheet.write(f'{s_name},{sample},\n') + else: + # process as paired-end files + with open(f'{outdir}{outfile}', 'w') as samplesheet: + samplesheet.write('sample,fastq_1,fastq_2\n') + for sample in sorted(samples_list): + if nested == 1: + s_name = s_name = Path(sample).parent.name + s_name = remove_id(s_name) + else: + s_name = os.path.splitext(Path(sample).stem)[0].replace('_R1_001','') + r2 = sample.replace('R1','R2') + samplesheet.write(f'{s_name},{sample},{r2}\n') + +def main(): + args = parse_args() + input_dir = check_path(args.indir) + output_dir = check_path(args.outdir) + if args.project_name: + outfile = f"{args.project_name}_samplesheet.csv" + else: + outfile = f"samplesheet.csv" + if args.single: + samples_list = list_samples(input_dir, single=True) + else: + samples_list = list_samples(input_dir) + + # Find whether fastq files are nested 1 level down or directly under input dir + depths_dict = find_file_depth(input_dir) + nested = handle_file_depth(depths_dict) + # Error if files are nested in a way the script doesn't handle + if nested == 9: + logger.error(f"fastq files in {input_dir} must be either directly under input folder or nested one level down") + sys.exit(1) + if args.single: + create_samplesheet(samples_list,output_dir, outfile, nested, single=True) + else: + create_samplesheet(samples_list, output_dir, outfile, nested) + logger.info(f"{outfile} created. Please review and be sure it is correct.") + +if __name__ == '__main__': + main() diff --git a/bin/filter_tsv.py b/bin/filter_tsv.py new file mode 100755 index 0000000..e985eb9 --- /dev/null +++ b/bin/filter_tsv.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python + +import argparse +import os +import subprocess as sp + +#define the user inputs +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument("-t", "--tsv", required=True, help="REQUIRED: The path to the ivar tsv output.") + parser.add_argument("-s", "--sample", required=True, help="REQUIRED: The sample name.") + parser.add_argument("-af", "--af_cutoff", required=True, help="REQUIRED: Lower bounds of allele frequency cutoff for variant filtering") + parser.add_argument("-DP", "--DP_cutoff", required=True, help="REQUIRED: Lower bounds of total read depth at site for variant filtering") + parser.add_argument("-AD", "--altDP_cutoff", required=True, help="REQUIRED: Lower bounds of alternative allele read depth at site for variant filtering") + parser.add_argument("-aq", "--altQ_cutoff", required=True, help="REQUIRED: Lower bounds of quality score for variant site for variant filtering") + parser.add_argument("-r", "--run", required=True, help="REQUIRED: The name of the sequencing run, likely the same as the outdir name") + parser.add_argument("-fs", "--F13L_start", required=True, help="REQUIRED: The starting coordinates for gene F13L") + parser.add_argument("-fe", "--F13L_end", required=True, help="REQUIRED: The ending coordinates for gene F13L") + parser.add_argument("-es", "--E9L_start", required=True, help="REQUIRED: The starting coordinates for gene E9L") + parser.add_argument("-ee", "--E9L_end", required=True, help="REQUIRED: The ending coordinates for gene E9L") + + return parser.parse_args() + +def summarize_tsv(tsv,run,sample,F13L_start,F13L_end,E9L_start,E9L_end,af_cutoff,DP_cutoff,altDP_cutoff,altQ_cutoff): + + # define outfile and write the header + file_out=sample + '_ivar_summary.txt' + fh_out=open(file_out,'w') + fh_out.write( + 'run' + '\t' + \ + 'sample'+ '\t' + \ + 'coord' + '\t' + \ + 'refBase' + '\t' + \ + 'altBase' + '\t' + \ + 'totalDP' + '\t' + \ + 'altDP' + '\t' + \ + 'altQual' + '\t' + \ + 'altFreq' + '\t' + \ + 'altPval' + '\t' + \ + 'GFFfeature' + '\t' + \ + 'RefCodon' + '\t' + \ + 'RefAA' + '\t' + \ + 'AltCodon' + '\t' + \ + 'AltAA' + '\n') + #now open the ivar tsv file + fh=open(tsv,'r') + sample=tsv.split('.')[0] + #iterate through and define the params + for line in fh.readlines()[1:]: + line=line.strip() + i=line.split('\t') + coords=i[1] + refBase=i[2] + altBase=i[3] + totalDP=i[11] + altDP=i[7] + altQual=i[9] + altFreq=i[10] + altPval=i[12] + GFFfeature=i[14] + RefCodon=i[15] + RefAA=i[16] + AltCodon=i[17] + AltAA=i[18] + ''' + apply position filtering for F13L + default values for filtering are: + if > or = to + 5x total depth + 3x alt allele depth + 1% allele freq + 20 quality score + ''' + #if GFFfeature== 'cds-QNP13638.1' \ + if int(coords) >= int(F13L_start) and int(coords) <= int(F13L_end) \ + and int(altDP) >= int(altDP_cutoff) \ + and int(totalDP) >= int(DP_cutoff) \ + and float(altFreq) >= float(af_cutoff) \ + and int(altQual) >= int(altQ_cutoff): + fh_out.write( + run + '\t' + \ + sample + '\t' + \ + coords + '\t' + \ + refBase + '\t' + \ + altBase + '\t' + \ + totalDP + '\t' + \ + altDP + '\t' + \ + altQual + '\t' + \ + altFreq + '\t' + \ + altPval + '\t' + \ + GFFfeature + '\t' + \ + RefCodon + '\t' + \ + RefAA + '\t' + \ + AltCodon + '\t' + \ + AltAA + '\n') + # apply position filtering for E9L + # same filtering regime as above + #elif GFFfeature == 'cds-QNP13652.1' \ + elif int(coords) >= int(E9L_start) and int(coords) <= int(E9L_end) \ + and int(altDP) >= int(altDP_cutoff) \ + and int(totalDP) >= int(DP_cutoff) \ + and float(altFreq) >= float(af_cutoff) \ + and int(altQual) >= int(altQ_cutoff): + fh_out.write( + run + '\t' + \ + sample + '\t' + \ + coords + '\t' + \ + refBase + '\t' + \ + altBase + '\t' + \ + totalDP + '\t' + \ + altDP + '\t' + \ + altQual + '\t' + \ + altFreq + '\t' + \ + altPval + '\t' + \ + GFFfeature + '\t' + \ + RefCodon + '\t' + \ + RefAA + '\t' + \ + AltCodon + '\t' + \ + AltAA + '\n') + +def main(): + args = get_args() + summarize_tsv(args.tsv,args.run,args.sample,\ + args.F13L_start,args.F13L_end,\ + args.E9L_start,args.E9L_end,\ + args.af_cutoff,args.DP_cutoff,\ + args.altDP_cutoff,args.altQ_cutoff) + +if __name__ == '__main__': + main() diff --git a/bin/generate_samplesheet.py b/bin/generate_samplesheet.py new file mode 100755 index 0000000..e16363c --- /dev/null +++ b/bin/generate_samplesheet.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +import argparse +import os +import subprocess as sp + +#define the user inputs +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument("-i", "--in_dir", required=True, help="REQUIRED: path to directory with sequence data") + return parser.parse_args() + +def generate_samples(): + #write the outfile for all samples + outfile='all_samples.vcf.summary.txt' + if os.path.exists(outfile): + os.remove(outfile) + fh_out=open(outfile,'w') + fh_out.write( + 'run' + '\t' + \ + 'sample'+ '\t' + \ + 'coord' + '\t' + \ + 'refBase' + '\t' + \ + 'altBase' + '\t' + \ + 'totalDP' + '\t' + \ + 'altDP' + '\t' + \ + 'altQual' + '\t' + \ + 'altFreq' + '\t' + \ + 'altPval' + '\t' + \ + 'GFFfeature' + '\t' + \ + 'RefCodon' + '\t' + \ + 'RefAA' + '\t' + \ + 'AltCodon' + '\t' + \ + 'AltAA' + '\n') + for f in os.listdir('.'): + if f.endswith('_ivar_summary.txt'): + fh=open(f,'r') + for line in fh.readlines()[1:]: + line=line.strip() + fh_out.write(line+'\n') + +def main(): + #define the arguments + args = get_args() + combine_summaries() + +if __name__ == '__main__': + main() + diff --git a/bin/ivar2vcf.py b/bin/ivar2vcf.py new file mode 100755 index 0000000..aab5a16 --- /dev/null +++ b/bin/ivar2vcf.py @@ -0,0 +1,108 @@ +#!/usr/bin/env python + +''' +script adapted from https://github.com/jts/ncov-tools/blob/master/workflow/scripts/ivar_variants_to_vcf.py +''' + +import os +import sys +import re +import errno +import argparse + +def parse_args(args=None): + Description = 'Convert iVar variants tsv file to vcf format.' + Epilog = """Example usage: python ivar_variants_to_vcf.py """ + + parser = argparse.ArgumentParser(description=Description, epilog=Epilog) + parser.add_argument('FILE_IN', help="Input tsv file.") + parser.add_argument('FILE_OUT', help="Full path to output vcf file.") + parser.add_argument('-po', '--pass_only', dest="PASS_ONLY", help="Only output variants that PASS all filters.",action='store_true') + parser.add_argument('-af', '--allele_freq_thresh', type=float, dest="ALLELE_FREQ_THRESH", default=0, help="Only output variants where allele frequency greater than this number (default: 0).") + + return parser.parse_args(args) + +def make_dir(path): + if not len(path) == 0: + try: + os.makedirs(path) + except OSError as exception: + if exception.errno != errno.EEXIST: + raise + +def ivar_variants_to_vcf(FileIn,FileOut,passOnly=False,minAF=0): + filename = os.path.splitext(FileIn)[0] + header = ('##fileformat=VCFv4.2\n' + '##source=iVar\n' + '##INFO=\n' + '##FILTER=\n' + '##FILTER= 0.05">\n' + '##FORMAT=\n' + '##FORMAT=\n' + '##FORMAT=\n' + '##FORMAT=\n' + '##FORMAT=\n' + '##FORMAT=\n' + '##FORMAT=\n' + '##FORMAT=\n') + header += '#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\t'+filename+'\n' + + varList = [] + varCountDict = {'SNP':0, 'INS':0, 'DEL':0} + OutDir = os.path.dirname(FileOut) + make_dir(OutDir) + fout = open(FileOut,'w') + fout.write(header) + with open(FileIn) as f: + for line in f: + if not re.match("REGION",line): + line = re.split("\t", line) + CHROM=line[0] + POS=line[1] + ID='.' + REF=line[2] + ALT=line[3] + var_type = 'SNP' + if ALT[0] == '+': + ALT = REF + ALT[1:] + var_type = 'INS' + elif ALT[0] == '-': + REF += ALT[1:] + ALT = line[2] + var_type = 'DEL' + QUAL='.' + pass_test=line[13] + if pass_test == 'TRUE': + FILTER='PASS' + else: + FILTER='FAIL' + INFO='DP='+line[11] + FORMAT='GT:REF_DP:REF_RV:REF_QUAL:ALT_DP:ALT_RV:ALT_QUAL:ALT_FREQ' + SAMPLE='1:'+line[4]+':'+line[5]+':'+line[6]+':'+line[7]+':'+line[8]+':'+line[9]+':'+line[10] + oline = CHROM+'\t'+POS+'\t'+ID+'\t'+REF+'\t'+ALT+'\t'+QUAL+'\t'+FILTER+'\t'+INFO+'\t'+FORMAT+'\t'+SAMPLE+'\n' + writeLine = True + if passOnly and FILTER != 'PASS': + writeLine = False + if float(line[10]) < minAF: + writeLine = False + if (CHROM,POS,REF,ALT) in varList: + writeLine = False + else: + varList.append((CHROM,POS,REF,ALT)) + if writeLine: + varCountDict[var_type] += 1 + fout.write(oline) + fout.close() + + ## Print variant counts to pass to MultiQC + varCountList = [(k, str(v)) for k, v in sorted(varCountDict.items())] + print('\t'.join(['sample'] + [x[0] for x in varCountList])) + print('\t'.join([filename] + [x[1] for x in varCountList])) + +def main(args=None): + args = parse_args(args) + ivar_variants_to_vcf(args.FILE_IN,args.FILE_OUT,args.PASS_ONLY,args.ALLELE_FREQ_THRESH) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/bin/mpxv-AssemblyGraph_gfaPy.py b/bin/mpxv-AssemblyGraph_gfaPy.py new file mode 100755 index 0000000..7947edd --- /dev/null +++ b/bin/mpxv-AssemblyGraph_gfaPy.py @@ -0,0 +1,490 @@ +#!/usr/bin/env python3 + +### Written by S.Morrison and K. Knipe +### Date: 20221018 + +import gzip, argparse,os,sys,fnmatch,subprocess,re +import os.path +from datetime import datetime +import linecache +import gfapy +import networkx as nx +from Bio.Seq import Seq +from Bio.SeqRecord import SeqRecord +import functools +import operator +from Bio import SeqIO +import pprint +import json + +def readGFA(gfa): + ### Read GFA file into gfapy python structure + try: + gfaGraph = gfapy.Gfa.from_file(gfa) + check = "PASS" + if(len(gfaGraph.edges)) ==0: + check = "WARNING: gfa file only contains segment lines" + gfaGraph = "WARNING: gfa file only contains segment lines" + except: + check = "WARNING: Issue with GFA file : No GFA processing" + gfaGraph = "WARNING: Issue with GFA file : No GFA processing" + return gfaGraph,check + + +def remove_loops(lnkInfo): + ### Identify contigs with self hits, remove those links + selfHits = [] + prunedSelfs = [] + for i in lnkInfo: + if i.from_name == i.to_name: + selfHits.append(i) + + for j in lnkInfo: + if not j in selfHits: + prunedSelfs.append(j) + + check = "PASS" + return prunedSelfs,check + +def id_low_cov_contigs(segInfo): + ### Identify contigs below 0.5x coverage + lowCov = [] + for i in segInfo: + line = i.tagnames + for j in line: + if j == 'dp': + if i.get(j) < 0.5: + name = i.get('name') + lowCov.append(name) + check= "PASS" + return lowCov,check + +def remove_low_cov_contigs_from_edges(lowCov,selfHits): + ### Remove low coverage hits from links (after self hits) + fLinks = [] + + if len(lowCov) ==0: + fLinks = selfHits + check = "PASS" + elif len(lowCov) ==1: + for m in lowCov: + lowID = m + for n in range(0,len(selfHits)): + if not((lowID == selfHits[n].from_name) or (lowID == selfHits[n].to_name)): + fLinks.append(selfHits[n]) + check="PASS" + else: + check="[Warning :: There are 2 or more contigs with coverage less than 0.5 - manual review required]" + return fLinks,check + +def find_longest_contig(seqs, gfa): + ### Find the longest contig sequence and its name + lgContig ={} + + for j in seqs: + leng = j.tagnames + name = j.get('name') + for m in leng: + if m == 'LN': + seqLen = j.get(m) + lgContig[name]=seqLen + lgSeq = max(lgContig,key=lgContig.get) + + + #write longest contig to file + for j in seqs: + if lgSeq == j.get('name'): + SeqIO.write(SeqRecord(Seq(j.get('sequence')),lgSeq), gfa + "_longest.fasta", "fasta") + + #write all contigs to a file + gfaContigs = open(gfa + "_all_contigs.fasta", "w") + for n in seqs: + seqName = n.get('name') + gfaContigs.write(">"+seqName+"\n") + gfaContigs.write(n.get('sequence')+"\n") + gfaContigs.close() + check="PASS" + return lgSeq,check + +def create_filtered_graph(lnks): + ### Create NetworkX Graph + tGraph = nx.MultiGraph() + edgeCorrect =[] + for m in lnks: + tGraph.add_edge(m.from_name,m.to_name) + check="PASS" + if not nx.is_connected(tGraph): + check="WARNING :: This assembly graph does not appear to be connected -- there may be an assembly issue!" + else: + check = "PASS" + return tGraph,check + +def get_final_path( graph, longest_contig ): + ### This is the function to assess if there are multiple paths + ### duplicate pairs of contig links with different orientations + contigs = [] + all_simple_paths = {} + lengths = {} + longest_path = [] + final_path = [] + ### Check to see if longest contig in edge list to connect contig seqs, dups not removed + edgeList = list(graph.edges) + edgeCheck =[] + for i in edgeList: + edgeCheck.append(i[2]) + goEdge = list(set(edgeCheck)) + if not len(goEdge) == 1: + status = "WARNING: Multiple links connect to 2 or more contigs in assembly" + return final_path, status + else: + out = [item for t in edgeList for item in t] + + if not longest_contig in out: + status = "WARNING: Longest contig not in links to connect to other contigs in assembly " + return final_path, status + + for edge in graph.edges: + if edge[0] not in contigs: + contigs.append(edge[0]) + if edge[1] not in contigs: + contigs.append(edge[1]) + for contig in contigs: + if contig != longest_contig: + for sp in nx.all_simple_paths( graph, longest_contig, contig ): + if contig not in all_simple_paths: + all_simple_paths[contig] = [] + all_simple_paths[contig].append( sp ) + if len(sp) > len(longest_path): + longest_path = sp + if len(sp) not in lengths: + lengths[len(sp)] = 0 + lengths[len(sp)] = lengths[len(sp)] + 1 + ####REVERSE THE ITR length path instead of the first path of the all paths section###### + #warning if there is more than one longest path + if lengths[len(longest_path)] > 1: + status = "WARNING: >1 longest path" + return final_path, status + + # make sure there are 2 paths between the longest contig and the last contig in the longest path + sp_l = all_simple_paths[longest_path[-1]] + if len(sp_l) < 2: + status = "WARNING: only 1 path between longest contig and the last contig in the longest path" + return final_path, status + elif len(sp_l) == 2: + + + path_a = sp_l[0] + path_b = sp_l[1] + + if len(path_a) < len(path_b): + path_a.reverse() + final_path = path_a + path_b[1:] + elif len(path_b) < len(path_a): + path_b.reverse() + final_path = path_b + path_a[1:] + + + status = "PASS" + return final_path, status + elif len(sp_l) > 2: + status = "WARNING: >2 paths between longest contig and the last contig in the longest path" + return final_path, status + + +def orient_longest_contig(query,reference): + blastResults = query+"_blast.out" + subprocess.call(["makeblastdb","-in",query,"-out",query+"_DB","-dbtype","nucl"],shell=False) + subprocess.call(["blastn","-query", reference,"-db", query+"_DB","-evalue",".00001","-outfmt","6 qseqid sseqid pident length qcovs sstart send sseq mismatch gapopen qlen slen bitscore","-out",blastResults]) + check = "PASS" + with open(blastResults,'r') as e: + for line in e: + f13LInfo = line.split('\t') + sstart = int(f13LInfo[5]) + send = int(f13LInfo[6]) + orientation = 1 if sstart < send else int(-1) + + #TODO - cleanup blast files + + return orientation, check + + + +def get_final_orientation(final_path, lnks, longest_contig, longest_orient): + contig_orientation = [0] * len(final_path) + + for i in range(final_path.index(longest_contig), len(final_path)): + if i == final_path.index(longest_contig): + contig_orientation[i] = longest_orient + else: + flag=0 + for link in lnks: + if (link.from_name == final_path[i-1] and link.to_name == final_path[i]): + from_orient = 1 if link.from_orient == '+' else int(-1) + to_orient = 1 if link.to_orient == '+' else int(-1) + contig_orientation[i] = contig_orientation[i-1] * from_orient * to_orient + flag=1 + if flag == 0: + for link in lnks: + if (link.to_name == final_path[i-1] and link.from_name == final_path[i]): + from_orient = 1 if link.from_orient == '+' else int(-1) + to_orient = 1 if link.to_orient == '+' else int(-1) + contig_orientation[i] = contig_orientation[i-1] * from_orient * to_orient + flag=1 + + for i in range(final_path.index(longest_contig)-1, -1 ,-1): + flag=0 + for link in lnks: + if (link.to_name == final_path[i+1] and link.from_name == final_path[i]): + from_orient = 1 if link.from_orient == '+' else int(-1) + to_orient = 1 if link.to_orient == '+' else int(-1) + contig_orientation[i] = contig_orientation[i+1] * from_orient * to_orient + flag=1 + if flag == 0: + for link in lnks: + if (link.from_name == final_path[i+1] and link.to_name == final_path[i]): + from_orient = 1 if link.from_orient == '+' else int(-1) + to_orient = 1 if link.to_orient == '+' else int(-1) + contig_orientation[i] = contig_orientation[i+1] * from_orient * to_orient + flag=1 + check="PASS" + return contig_orientation, check + +def get_final_sequence(contig_order, contig_orientation, segments): + segment_info = {} + for segment in segments: + segment_count = contig_order.count(segment.get('name')) + coverage = float(segment.get('dp')) if segment_count == 0 else float(segment.get('dp'))/contig_order.count(segment.get('name')) + segment_info[segment.get('name')] = { 'coverage' : coverage, + 'sequence' : Seq(segment.get('sequence')), + 'sequence_rc' : Seq(segment.get('sequence')).reverse_complement() + } + final_sequence = '' + final_order_orientation_copy_number = [] + for i in range(len(contig_order)): + sequence = segment_info[contig_order[i]]['sequence'] * round(segment_info[contig_order[i]]['coverage']) + if contig_orientation[i] == -1: + sequence = segment_info[contig_order[i]]['sequence_rc'] * round(segment_info[contig_order[i]]['coverage']) + orientation = '+' if contig_orientation[i] == 1 else '-' + order_orientation_copy_number = '%s%s' % (orientation, contig_order[i]) + if round(segment_info[contig_order[i]]['coverage']) > 1: + order_orientation_copy_number = '%sx%s' % (order_orientation_copy_number, round(segment_info[contig_order[i]]['coverage'])) + final_sequence = final_sequence + sequence + final_order_orientation_copy_number.append(order_orientation_copy_number) + + check = "PASS" + # are all segments in final_sequence? + for segment in segment_info: + if (segment_info[segment]['coverage'] > 0.5) and (segment not in contig_order): + check = 'WARNING: missing segments' + return final_sequence, len(final_sequence), " ".join(final_order_orientation_copy_number), check + +def get_itr_length(lgContig,contig_order,segments): + final_itr_length = 0 + itr=[] + for i in contig_order: + if not i == lgContig: + itr.append(i) + elif i == lgContig: + break + for segment in segments: + segmentName = segment.get('name') + segmentCov = segment.get('coverage') + if segmentName in itr: + segment_coverage = segment.get('dp') + half_coverage = segment_coverage /2 + segment_sequence_length = len(segment.get('sequence')) + total_itr_segment_length = segment_sequence_length * round(half_coverage) + final_itr_length = final_itr_length + total_itr_segment_length + check = "PASS" + return final_itr_length , check + +def write_log_and_exit( log, status ): + + log_file = os.path.join(log['00']['input']['output_dir'], log['00']['input']['sample_name'] + ".log") + summary_file = os.path.join(log['00']['input']['output_dir'], log['00']['input']['sample_name'] + ".summary") + + headers = ['sample', 'status', 'contig_order', 'contig_orientation', 'contig_order_orientation_copy_number', 'assembly_length', 'itr_length'] + data = [] + if '00' in log: + data.append( log['00']['input']['sample_name'] ) + data.append( status ) + if '06' in log: + data.append( ",".join( str(i) for i in log['06']['output']['final_path']) ) + if '08' in log: + data.append( ",".join( str(i) for i in log['08']['output']['final_orientation'] ) ) + if '09' in log: + data.append( str(log['09']['output']['final_order_orientation_copy_number']) ) + data.append( str(log['09']['output']['final_sequence_length']) ) + if '10' in log: + data.append( str(log['10']['output']['final_itr_length'])) + + with open(summary_file, 'w') as f: + f.write( '\t'.join( headers ) + '\n' ) + f.write( '\t'.join(data) + '\n' ) + + with open(log_file, 'w') as f: + json_object = json.dumps(log, indent = 4) + f.write(json_object) + +def main(arguments): + parser = argparse.ArgumentParser(description="GFA parser to construct assembly from Unicycler", epilog="______") + parser.add_argument('-i',type=str,required=True,help="GFA file from Unicycler") + parser.add_argument('-r',type=str,required=True,help="Monkeypox genome sequence - single line fasta") + parser.add_argument('-o',type=str,required=True,help="Output directory") + + args = parser.parse_args() + gfaFile = args.i + refSeq = args.r + out_dir = args.o + + log = {} + errors = [] + logFile = [] + logFile.append(gfaFile) + + # read gfa file into graph structure + original_graph, status = readGFA(gfaFile) + log['00'] = {'step_name' : "read_gfa", + 'step_description' : "read gfa file into graph structure", + 'status' : status, + 'input' : { + 'gfa' : gfaFile, + 'sample_name' : os.path.splitext(os.path.basename(gfaFile))[0], + 'output_dir' : out_dir + }, + 'output' : { + 'original_graph' : str(original_graph), + } + } + if status != "PASS": + write_log_and_exit(log, status) + + # filter edges that are loops (these represent repeats, we'll deal with them later) + if type(original_graph) == str: + + sys.exit(0) + else: + filtered_edges, status = remove_loops( original_graph.edges ) + log['01'] = {'step_name' : "remove_loops", + 'step_description' : "filter edges that are loops (these represent repeats, we'll deal with them later)", + 'status' : status, + 'output' : { + 'filtered_edges' : str(filtered_edges) + } + } + if status != "PASS": + write_log_and_exit(log, status) + + # identify low coverage contigs + low_cov_contigs, status = id_low_cov_contigs( original_graph.segments ) + log['02'] = {'step_name' : "id_low_cov_contigs", + 'step_description' : "identify low coverage contigs", + 'status' : status, + 'output' : { + 'low_cov_contigs' : low_cov_contigs + } + } + if status != "PASS": + write_log_and_exit(log, status) + + # remove low coverage contigs from edges + filtered_edges, status = remove_low_cov_contigs_from_edges( low_cov_contigs, filtered_edges ) + log['03'] = {'step_name' : "remove_low_cov_contigs_from_edges", + 'step_description' : "remove low coverage contigs from edges", + 'status' : status, + 'output' : { + 'filtered_edges' : str(filtered_edges) + } + } + if status != "PASS": + write_log_and_exit(log, status) + sys.exit(0) + + # find the longest contig + longest_contig, status = find_longest_contig( original_graph.segments, log['00']['input']['sample_name'] ) + log['04'] = {'step_name' : "find_longest_contig", + 'step_description' : "find the longest contig", + 'status' : status, + 'output' : { + 'longest_contig' : longest_contig + } + } + if status != "PASS": + write_log_and_exit(log, status) + + # create graph from filtered edges + filtered_graph, status = create_filtered_graph(filtered_edges) + log['05'] = {'step_name' : "create_filtered_graph", + 'step_description' : "create graph from filtered edges", + 'status' : status, + 'output' : { + 'filtered_graph' : str(filtered_graph) + } + } + if status != "PASS": + write_log_and_exit(log) + sys.exit(0) + + final_path, status = get_final_path( filtered_graph, longest_contig ) + log['06'] = {'step_name' : "get_final_path", + 'step_description' : "get final path from filtered graph using longest contig to longest simple path", + 'status' : status, + 'output' : { + 'final_path' : final_path + } + } + if status != "PASS": + write_log_and_exit(log, status) + sys.exit(0) + + # orient longest contig with F13L + longest_orientation, status = orient_longest_contig( log['00']['input']['sample_name'] + "_longest.fasta" , refSeq ) + log['07'] = {'step_name' : "orient_longest_contig", + 'step_description' : "get orientation of longest contig given F13L gene", + 'status' : status, + 'output' : { + 'longest_orientation' : longest_orientation + } + } + if status != "PASS": + write_log_and_exit(log) + + final_orientation, status = get_final_orientation(final_path, filtered_edges, longest_contig, longest_orientation) + log['08'] = {'step_name' : "get_final_orientation", + 'step_description' : "get orientation of contigs starting at the longest and traversing the path in either direction", + 'status' : status, + 'output' : { + 'final_orientation' : final_orientation + } + } + if status != "PASS": + write_log_and_exit(log, status) + + final_sequence, final_sequence_length, final_order_orientation_copy_number, status = get_final_sequence( final_path , final_orientation , original_graph.segments ) + log['09'] = {'step_name' : "get_final_sequence", + 'step_description' : "get_final_sequence", + 'status' : status, + 'output' : { + 'final_order_orientation_copy_number' : final_order_orientation_copy_number, + 'final_sequence' : str(final_sequence), + 'final_sequence_length' : final_sequence_length + } + } + if status != "PASS": + write_log_and_exit(log, status) + + SeqIO.write(SeqRecord(Seq(final_sequence),gfaFile), log['00']['input']['sample_name'] + "_asm.fasta", "fasta") + + final_itr_length, status = get_itr_length( longest_contig ,final_path , original_graph.segments ) + log['10'] = {'step_name' : "get_itr_length", + 'step_description' : "get_itr_length", + 'status' : status, + 'output' : { + 'final_itr_length' : final_itr_length + } + } + + write_log_and_exit(log,status) + +if __name__=='__main__': + main(sys.argv[1:]) diff --git a/bin/summarize_qc.py b/bin/summarize_qc.py new file mode 100755 index 0000000..26ec84b --- /dev/null +++ b/bin/summarize_qc.py @@ -0,0 +1,469 @@ +#!/usr/bin/env python3 + +import pandas as pd +import os, sys +from glob import glob +import json +import argparse +import subprocess +import logging + +logger = logging.getLogger() + +def parse_args(): + + parser = argparse.ArgumentParser( + description="Aggregate QC from multiQC directory.", + epilog="Example: python summarize_qc.py --analysis_dir multiqc_dir/", + ) + parser.add_argument( + "--analysis_dir", + metavar="ANALYSIS_DIR", + help="Analysis directory") + parser.add_argument( + "--samplesheet", + metavar="SAMPLE_SHEET", + help="The path to the sample sheet"), + parser.add_argument( + "--reference_genome", + metavar="REFERENCE_GENOME", + required=False, + help="The name of the reference genome used for reference-based assembly"), + parser.add_argument( + "--kraken_db", + metavar="KRAKENDB", + help="The name of the Kraken database"), + parser.add_argument( + "--kraken_tax_ids", + metavar="KRAKENTAXIDS", + help="The name of the tax IDs used for Seqtk filtering"), + parser.add_argument( + "--filter", + metavar="FILTER", + help="true or false to filter variants to only params.coord coordinate boundaries"), + parser.add_argument( + "--workflow", + metavar="WORKFLOW", + help="Nextflow entrypoint, options are filter_reads, ref_based, denovo, or full"), + parser.add_argument( + "--coords", + metavar="COORDS", + required=False, + help="Four number list with start,stop for each of the two loci of interest used for counting variants of interest"), + parser.add_argument( + "--locus1", + metavar="LOCUS1", + required=False, + help="Feature name of the first coordinates used for filtering"), + parser.add_argument( + "--locus2", + metavar="LOCUS2", + required=False, + help="Feature name of the second coordinates used for filtering"), + + return parser.parse_args() + +def get_raw_filt_counts(search_dir, sample): + """ Get raw filter counts from fastp output + :param search_dir: work directory + :param sample: sample name + :returns: total raw reads and total filtered reads + :rtype: tuple + """ + p = "**/*{}.fastp.json".format(sample) + fastp_file = glob(os.path.join(search_dir, p), recursive=True)[0] + + f = open(fastp_file) + try: + data = json.load(f) + logger.info(f"Data loaded from {fastp_file}") + except: + logger.error(f"Could not load data from {fastp_file}") + sys.exit(1) + + total_raw_reads = data['summary']['before_filtering']['total_reads'] + total_filtered_reads = data['summary']['after_filtering']['total_reads'] + + return total_raw_reads, total_filtered_reads + +def get_kraken_stats(search_dir, sample, kraken_db, kraken_tax_ids): + """ Get stats from kraken output + :param search_dir: work directory + :param sample: sample name + :param kraken_db: path to kraken database + :kraken_tax_ds: path to kraken tax ids + :returns: kraken statistics + :rtype: tuple + """ + + p = "**/*{}.kraken2.classifiedreads.txt".format(sample) + kraken_reads = glob(os.path.join(search_dir, p), recursive=True)[0] + try: + k_data = pd.read_csv(kraken_reads, delim_whitespace=True, usecols=[0,1,2,3,4], header=None) + logger.info(f"Data load from {kraken_reads}") + except: + logger.error(f"Unable to load data from {kraken_reads}") + sys.exit(1) + + total = len(k_data) + + s = "**/{}*.opxreads.txt".format(sample) + ortho_reads = glob(os.path.join(search_dir, s), recursive=True)[0] + + if os.path.getsize(ortho_reads) > 0: + s_data = pd.read_csv(ortho_reads, delim_whitespace=True, header=None) + opx = len(s_data) + else: + opx = 0 + + human = (k_data[2] == 9606).sum() + unclass = (k_data[2] == 0).sum() + + with open(kraken_tax_ids) as l: + lines = [line.strip() for line in l.readlines()] + k_tax_ids = ', '.join(lines) + + if opx == 0: + opx_perc = 0 + else: + opx_perc = round(((opx/total) * 100),2) + human_perc = round(((human/total) * 100),2) + unclass_perc = round(((unclass/total) * 100),2) + + return total, opx_perc, human_perc, unclass_perc, kraken_db, k_tax_ids + +def get_flagstat_denovo(search_dir, sample): + """ Get samtools flagstat results from denovo mapping + :param search_dir: work directory + :param sample: sample name + :returns: denovo mapping statistics + :rtype: tuple + """ + #if path not exist output unknown + stats=[] + p = "{}.denovo.flagstat".format(sample) + if os.path.exists(p): + logger.info(f"Path {p} found") + fh=open(p,'r') + for line in fh.readlines()[0:2]: + reads=line.split(' ')[0] + stats.append(reads) + total_reads_denovo=round(int(stats[0]),2) + mapped_reads_denovo=round(int(stats[1]),2) + percent_mapped_denovo=round((mapped_reads_denovo/total_reads_denovo)*100,2) + else: + logger.info(f"Path {p} does not exist") + total_reads_denovo='NaN' + mapped_reads_denovo='NaN' + percent_mapped_denovo='NaN' + + return total_reads_denovo, mapped_reads_denovo, percent_mapped_denovo + +def get_cov_stats(search_dir, sample, reference): + """ Get coverage stats from samtools output + :param search_dir: work directory + :param sample: sample name + :param reference: path to reference genome + :returns: coverage statistics + :rtype: tuple + """ + p = "**/*{}.depth.tsv".format(sample) + depth_file = glob(os.path.join(search_dir, p), recursive=True)[0] + + if os.path.getsize(depth_file) > 0: + logger.info(f"Retrieving depth statistics from {depth_file}") + dp = pd.read_csv(depth_file, sep="\t", header = None) + avg_dp = int(round(dp[2].mean(),2)) + dp_gt_20 = int(round(len(dp[dp[2] >= 20]),2)) + else: + logger.info(f"{depth_file} has size zero") + dp = 0 + avg_dp = 0 + dp_gt_20 = 0 + ref_genome = reference.split('/')[-1] + + return avg_dp, dp_gt_20, ref_genome + +def get_gfa_stats(search_dir, sample): + """ Get stats from Unicycler graph assembly output + :param search_dir: work directory + :param sample: sample name + :returns:gfaResults + :rtype: list + """ + p = "**/*{}.assembly.log".format(sample) + #print(p) + gfa_log = glob(os.path.join(search_dir, p), recursive=True) + if gfa_log: + gfa_log = glob(os.path.join(search_dir, p), recursive=True)[0] + + f = open(gfa_log) + parsed_json = json.load(f) + + if len(parsed_json.keys()) == 11: + notes = 'GFA step complete' + successCode_step9 = list(parsed_json)[-2] + successCode_step10 = list(parsed_json)[-1] + final_order_orientation_copy_number = parsed_json[successCode_step9]['output']['final_order_orientation_copy_number'] + final_sequence_length = parsed_json[successCode_step9]['output']['final_sequence_length'] + status = parsed_json[successCode_step10]['status'] + final_itr_length = parsed_json[successCode_step10]['output']['final_itr_length'] + gfaResults = [final_order_orientation_copy_number, float(final_sequence_length), float(final_itr_length), status, notes] + else: + failCode_stepN = list(parsed_json)[-1] + status = parsed_json[failCode_stepN]['status'] + statusReport = 'FAIL' + gfaResults = ['Unknown','Unknown','Unknown', statusReport, status] + else: + status = 'Unicycler-GFA Log No Exist' + statusReport = 'FAIL' + gfaResults = ['Unknown','Unknown','Unknown', statusReport, status] + return gfaResults + +def fix_names(df): + """ Standardize the raw column names + :param df: input dataframe with columns to standardize + :returns: a dataframe with standardized columns + :rtype: Dataframe object + """ + raw_col_names = ['Sample', + 'Samtools_mqc-generalstats-samtools-flagstat_total', + 'Samtools_mqc-generalstats-samtools-mapped_passed', + 'QUAST_mqc-generalstats-quast-N50', + 'QUAST_mqc-generalstats-quast-Total_length', + 'Kraken_mqc-generalstats-kraken-Homo_sapiens' + 'Kraken_mqc-generalstats-kraken-Monkeypox_virus', + 'Kraken_mqc-generalstats-kraken-Top_5', + 'Kraken_mqc-generalstats-kraken-Unclassified', + 'fastp_mqc-generalstats-fastp-pct_duplication', + 'fastp_mqc-generalstats-fastp-after_filtering_q30_rate', + 'fastp_mqc-generalstats-fastp-after_filtering_q30_bases', + 'fastp_mqc-generalstats-fastp-after_filtering_gc_content', + 'fastp_mqc-generalstats-fastp-pct_surviving', + 'fastp_mqc-generalstats-fastp-pct_adapter'] + + for i in range(0,len(raw_col_names)): + # check for human, mpox virus top hit column. add any missing columns from raw_col_names list + if not raw_col_names[i] in df.columns: + if raw_col_names[i] == 'Kraken_mqc-generalstats-kraken-Homo_sapiens' or raw_col_names[i] == 'Kraken_mqc-generalstats-kraken-Monkeypox_virus': + raw_col_names.remove(raw_col_names[i]) + else: + df[raw_col_names[i]] = "NA" + + df = df[raw_col_names] + + if len(raw_col_names) == 14: + for i in range(0,len(raw_col_names)): + if not df.columns[i] == raw_col_names[i]: + logger.error(f"Unexpected column names in multiqc/*general_stats.txt file") + sys.exit(1) + else: + logger.error("Unexpected column names in multiqc/*general_stats.txt file") + sys.exit(1) + + return df + +def get_total_snps(search_dir, sample): + """ Grab the tsv files from ivar output (ivar_variants dir) and get total number of SNPs + :param search_dir: work directory + :param sample: sample name + :returns: total number of snps + :rtype: int + """ + p = "**/*{}.ivar.tsv".format(sample) + snpFile = glob(os.path.join(search_dir, p), recursive=True)[0] + try: + df = pd.read_csv(snpFile, sep="\t", header = 0) + logger.info(f"Successfully read {snpFile}") + except: + logger.error(f"Unable to read {snpFile}") + total_snps = len(df) + + return total_snps + +def get_snp_metadata(search_dir, sample, coords): + """ Get number of SNPs for input coordinates from ivar_summary file (in variant_summaries dir) + :param search_dir: work directory + :param sample: sample name + :param coords: a set of 2 coordinates + :returns: total number of snps for each of 2 coordinates + :rtype: tuple + """ + C1_count = 0 + C2_count = 0 + coord2_start = coords.split(',')[2] + p = "**/*{}_ivar_summary.txt".format(sample) + try: + snpMeta = glob(os.path.join(search_dir, p), recursive=True)[0] + logger.info(f"Found {snpMeta}") + except: + logger.error(f"Unable to open {snpMeta}") + sys.exit(1) + for line in open(snpMeta,'r').readlines(): + if line.split('\t')[1] < coord2_start: + C1_count += 1 + else: + C2_count += 1 + + return C1_count, C2_count + +def get_polish_stats(sample): + """ Parse the mummer report file and return # corrected SNPs and indels + :param sample: sample name + :returns: total number of snps and indels + :rtype: tuple + """ + SNPs = None + Indels = None + infile = sample + '.report' + + if os.path.exists(infile): + logger.info(f"{infile} found") + with open(infile, 'r') as file: + for line in file: + if line.startswith("TotalSNPs"): + parts = line.split() + if len(parts) >= 2: + SNPs = round(int(parts[1]),2) + elif line.startswith("TotalIndels"): + parts = line.split() + if len(parts) >= 2: + Indels = round(int(parts[1]),2) + break # Stop reading after finding TotalIndels + else: + logger.info(f"{infile} does not exist") + SNPs = 'NaN' + Indels = 'NaN' + return SNPs, Indels + +def count_ns_in_pileup(sample): + """ Get the consensus SNPs from final mpileup file + :param sample: sample name + :returns: total number of snps + :rtype: int + """ + p = "{}.final.mpileup".format(sample) + try: + command = f"cat {p} | awk '($4 < 20){{count++}} END {{print count}}'" + result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + logger.info(f"Successfully parsed {p}") + except: + logger.error(f"Unable to parse {p}") + if result.returncode == 0: + return str(result.stdout.strip()) + else: + return None + +def main(): + args = parse_args() + + summary_file = glob(os.path.join(args.analysis_dir, '**/*general_stats.txt'), recursive=True)[0] + sample_file = args.samplesheet + logger.info(f"Running summary_qc.py for {args.workflow}") + try: + summary = pd.read_csv(summary_file, delimiter = "\t") + except: + logger.error(f"Unable to open {summary_file}") + sys.exit(1) + try: + samples = pd.read_csv(sample_file, delimiter = ",") + except: + logger.error(f"Unable to open {sample_file}") + sys.exit(1) + + ### Check number of entries per dataframe + summaryIds = list(summary[summary.columns[0]]) + samplesIds = list(samples[samples.columns[0]]) + + sample_summary_notProcessed = set(samplesIds) - set(summaryIds) + + if not len(list(sample_summary_notProcessed)) == 0: + rowMissing = len(summary.columns)-1 + for i in sample_summary_notProcessed: + naHold = ['NaN'] * rowMissing + no_sample_data = [i] + naHold + summary.loc[len(summary)] = no_sample_data + summary.fillna(value='NaN',inplace=True) + + new_col_names = ['sample', 'reads_total_bwa', 'reads_mapped_bwa', 'n50_unicycler','assembly_length_unicycler','top_taxa_percent_kraken','top5_taxa_percent_kraken','unclassified_percent_kraken','percent_duplication_fastp','q30_rate_postfilter_fastp','q30_bases_postfilter_fastp','gc_content_postfilter_fastp','percent_reads_passed_fastp','percent_adapter_fastp'] + fixed_summary = fix_names(summary) + fixed_summary.set_axis(new_col_names, axis=1, inplace=True) + + if args.workflow == 'denovo' or args.workflow == 'full': + contig_files = glob(os.path.join(args.analysis_dir, '**/*quast_num_contigs_1.txt'), recursive=True) + if contig_files: + contig_file = contig_files[0] + logger.info(f"{contig_file} found") + contigs = pd.read_csv(contig_file, delimiter = "\t") + ### Check number of entries per dataframe + contigsIds = list(contigs[contigs.columns[0]]) + sample_contig_notProcessed = set(samplesIds) - set(contigsIds) + + if not len(list(sample_contig_notProcessed)) == 0: + rowMissing = len(contigs.columns)-1 + for i in sample_contig_notProcessed: + naHold = ['NaN'] * rowMissing + no_sample_data = [i] + naHold + contigs.loc[len(contigs)] = no_sample_data + contigs.fillna(value='NaN',inplace=True) + + contigs['n_contigs_unicycler'] = contigs.sum(numeric_only=True,axis = 1) + fixed_summary = fixed_summary.merge(contigs[['Sample', 'n_contigs_unicycler']],left_on='sample', right_on='Sample').drop('Sample', axis = 1) + else: + # If Unicycler run failed, config_files don't get created + logger.info(f"{contig_file} not found") + fixed_summary['n_contigs_unicycler'] = 'NaN' + + if args.workflow == 'ref_based' or args.workflow == 'full': + fixed_summary['percent_mapped_bwa'] = round(((fixed_summary['reads_mapped_bwa'] / fixed_summary['reads_total_bwa']) * 100),2) + + summary_full = fixed_summary.reindex(fixed_summary.columns.tolist() + ['raw_read_count_fastp', 'filtered_read_count_fastp', 'total_raw_reads', 'opx_percent_kraken','human_percent_kraken', 'unclass_percent_kraken', 'average_depth_bwa', 'count_20xdepth_bwa'], axis=1) + summary_full.to_csv("before_adding_values.csv") + + # get data from other non multiqc input files: + for sample in summary_full['sample']: + summary_full.loc[summary_full['sample'] == sample, ['opx_read_count_kraken', 'filtered_read_count_fastp']] = get_raw_filt_counts(args.analysis_dir, sample) + summary_full.loc[summary_full['sample'] == sample, ['total_raw_reads', 'opx_percent_kraken', 'human_percent_kraken', 'unclass_percent_kraken', 'kraken_db','kraken_tax_ids']] = get_kraken_stats(args.analysis_dir, sample, args.kraken_db, args.kraken_tax_ids) + if args.workflow == 'ref_based': + summary_full.loc[summary_full['sample'] == sample, ['average_depth_bwa', 'count_20xdepth_bwa','reference_genome']] = get_cov_stats(args.analysis_dir, sample, args.reference_genome) + summary_full.loc[summary_full['sample'] == sample, ['total_snps']] = get_total_snps(args.analysis_dir,sample) + summary_full.loc[summary_full['sample'] == sample, ['corrected_Ns']] = count_ns_in_pileup(sample) + #logic to handle if a user is not interested in variant filtering + if args.filter == 'true': + summary_full.loc[summary_full['sample'] == sample, [f'{args.locus1}_SNPs',f'{args.locus2}_SNPs']] = get_snp_metadata(args.analysis_dir, sample, args.coords) + elif args.workflow == 'denovo': + summary_full.loc[summary_full['sample'] == sample, ['orientation_copy_number' ,'sequence_length', 'itr_length', 'gfa_status', 'gfa_notes']] = get_gfa_stats(args.analysis_dir, sample) + summary_full.loc[summary_full['sample'] == sample, ['total_reads_denovo','mapped_reads_denovo','percent_mapped_denovo']] = get_flagstat_denovo(args.analysis_dir, sample) + summary_full.loc[summary_full['sample'] == sample, ['corrected_snps','corrected_indels']] = get_polish_stats(sample) + summary_full.loc[summary_full['sample'] == sample, ['corrected_Ns']] = count_ns_in_pileup(sample) + elif args.workflow == 'full': + summary_full.loc[summary_full['sample'] == sample, ['average_depth_bwa', 'count_20xdepth_bwa', 'reference_genome']] = get_cov_stats(args.analysis_dir, sample, args.reference_genome) + summary_full.loc[summary_full['sample'] == sample, ['total_snps']] = get_total_snps(args.analysis_dir,sample) + summary_full.loc[summary_full['sample'] == sample, ['corrected_snps','corrected_indels']] = get_polish_stats(sample) + summary_full.loc[summary_full['sample'] == sample, ['corrected_Ns']] = count_ns_in_pileup(sample) + summary_full.loc[summary_full['sample'] == sample, ['orientation_copy_number' ,'sequence_length', 'itr_length', 'gfa_status', 'gfa_notes']] = get_gfa_stats(args.analysis_dir, sample) + summary_full.loc[summary_full['sample'] == sample, ['total_reads_denovo','mapped_reads_denovo','percent_mapped_denovo']] = get_flagstat_denovo(args.analysis_dir, sample) + if args.filter == 'true': + summary_full.loc[summary_full['sample'] == sample, [f'{args.locus1}_SNPs',f'{args.locus2}_SNPs']] = get_snp_metadata(args.analysis_dir, sample, args.coords) + + # final column order + if args.workflow == 'filter_reads': + summary_full = summary_full[['sample','total_raw_reads','opx_read_count_kraken','opx_percent_kraken','human_percent_kraken','unclass_percent_kraken','kraken_db','kraken_tax_ids','filtered_read_count_fastp','percent_reads_passed_fastp','percent_adapter_fastp','gc_content_postfilter_fastp','q30_rate_postfilter_fastp','percent_duplication_fastp']] + elif args.workflow == 'ref_based': + if args.filter == 'true': + summary_full = summary_full[['sample','reference_genome','total_raw_reads','opx_read_count_kraken','opx_percent_kraken','human_percent_kraken','unclass_percent_kraken','kraken_db','kraken_tax_ids','filtered_read_count_fastp','percent_reads_passed_fastp','percent_adapter_fastp','gc_content_postfilter_fastp','q30_rate_postfilter_fastp','percent_duplication_fastp','reads_mapped_bwa','percent_mapped_bwa','average_depth_bwa','count_20xdepth_bwa','total_snps',f'{args.locus1}_SNPs',f'{args.locus2}_SNPs']] + if args.filter == 'false': + summary_full = summary_full[['sample','reference_genome','total_raw_reads','opx_read_count_kraken','opx_percent_kraken','human_percent_kraken','unclass_percent_kraken','kraken_db','kraken_tax_ids','filtered_read_count_fastp','percent_reads_passed_fastp','percent_adapter_fastp','gc_content_postfilter_fastp','q30_rate_postfilter_fastp','percent_duplication_fastp','reads_mapped_bwa','percent_mapped_bwa','average_depth_bwa','count_20xdepth_bwa','total_snps']] + elif args.workflow == 'denovo': + summary_full = summary_full[['sample','total_raw_reads','opx_read_count_kraken','opx_percent_kraken','human_percent_kraken','unclass_percent_kraken','kraken_db','kraken_tax_ids','filtered_read_count_fastp','percent_reads_passed_fastp','percent_adapter_fastp','gc_content_postfilter_fastp','q30_rate_postfilter_fastp','percent_duplication_fastp','n_contigs_unicycler','assembly_length_unicycler','n50_unicycler','mapped_reads_denovo','percent_mapped_denovo','orientation_copy_number','sequence_length','itr_length','gfa_status','gfa_notes','corrected_snps','corrected_indels','corrected_Ns']] + elif args.workflow == 'full': + if args.filter == 'true': + summary_full = summary_full[['sample','reference_genome','total_raw_reads','opx_read_count_kraken','opx_percent_kraken','human_percent_kraken','unclass_percent_kraken','kraken_db','kraken_tax_ids','filtered_read_count_fastp','percent_reads_passed_fastp','percent_adapter_fastp','gc_content_postfilter_fastp','q30_rate_postfilter_fastp','percent_duplication_fastp','reads_mapped_bwa','percent_mapped_bwa','average_depth_bwa','count_20xdepth_bwa','n_contigs_unicycler','assembly_length_unicycler','n50_unicycler','mapped_reads_denovo','percent_mapped_denovo','orientation_copy_number','sequence_length','itr_length','gfa_status','gfa_notes','total_snps',f'{args.locus1}_SNPs',f'{args.locus2}_SNPs','corrected_snps','corrected_indels','corrected_Ns']] + if args.filter == 'false': + summary_full = summary_full[['sample','reference_genome','total_raw_reads','opx_read_count_kraken','opx_percent_kraken','human_percent_kraken','unclass_percent_kraken','kraken_db','kraken_tax_ids','filtered_read_count_fastp','percent_reads_passed_fastp','percent_adapter_fastp','gc_content_postfilter_fastp','q30_rate_postfilter_fastp','percent_duplication_fastp','reads_mapped_bwa','percent_mapped_bwa','average_depth_bwa','count_20xdepth_bwa','n_contigs_unicycler','assembly_length_unicycler','n50_unicycler','mapped_reads_denovo','percent_mapped_denovo','orientation_copy_number','sequence_length','itr_length','gfa_status','gfa_notes','total_snps','corrected_snps','corrected_indels','corrected_Ns']] + + summary_full.to_csv("sample_summary.tsv", sep = "\t", index = False) + logger.info(f"Summary results successfully written to sample_summary.tsv") + +if __name__ == "__main__": + main() diff --git a/bin/summarize_vcfs.py b/bin/summarize_vcfs.py new file mode 100755 index 0000000..db9299f --- /dev/null +++ b/bin/summarize_vcfs.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python + +import os +import sys +import argparse +import numpy as np +import subprocess as sp + +#define the user inputs +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument("-v1", "--vcf1", required=True, help="REQUIRED: The path to the ivar vcf.") + parser.add_argument("-v2", "--vcf2", required=True, help="REQUIRED: The full path to the lofreq vcf.") + parser.add_argument("-s", "--sample", required=True, help="REQUIRED: The sample name.") + parser.add_argument("-exc", "--exclude_coords", required=True, help="REQUIRED: The full path to list of coordinates to exclude, which is a simple text file with coords like 145689") + parser.add_argument("-af", "--af_cutoff", required=True, help="REQUIRED: Lower bounds of allele frequency cutoff for variant filtering") + parser.add_argument("-min", "--min_reads", required=True, help="REQUIRED: Minimum reads required to retain variant when filtering") + parser.add_argument("-r", "--run", required=True, help="REQUIRED: The name of the sequencing run, likely the same as the outdir name") + return parser.parse_args() + +def summarize_vcfs(vcf1,vcf2,sample,exclude_coords,af_cutoff,min_reads,run): + + #set outfiles + summary_tmp="vcf.summary.tmp" + fh_tmp=open(summary_tmp,'w') + + #create lists for coords to exclude + fh_coords=open(exclude_coords,'r') + exclude=[] + for line in fh_coords: + line=line.strip() + exclude.append(line) + + #create lists for unique sites for each caller + vcfs = [vcf1,vcf2] + iv_uniq=[] + lf_uniq=[] + + #now let's parse the vcfs and write to a tmp file + for v in vcfs: + vcf=open(v,'r') + caller=v.split('.')[1] + for line in vcf: + if not line.startswith('#'): + line=line.split('\t') + coord=line[1] + if coord not in exclude: + if caller == "ivar": + ref_al=line[3] + alt_al=line[4] + depth=int(line[9].split(":")[4]) + freq=line[9].split(":")[7] + uniq=sample+':'+coord + iv_uniq.append(uniq) + if float(freq) >= float(af_cutoff) and depth > int(min_reads): + fh_tmp.write( + caller +'\t'+ \ + run +'\t'+ \ + sample+'\t'+ \ + str(coord)+'\t'+\ + ref_al+'\t'+\ + alt_al+'\t'+\ + str(depth)+'\t'+\ + str(freq)) + elif caller == "lofreq": + coord=line[1] + ref_al=line[3] + alt_al=line[4] + info=line[7] + ''' + In lofreq the depth for alt allele is given in the INFO col as DP4 + where DP4=forward ref allele, reverse ref allele, forward alt allele, reverse alt allele + so the count we want is the sum of the third and fourth value + ''' + depth=str(int(info.split(';')[3].split('=')[1].split(',')[2])+\ + int(info.split(';')[3].split('=')[1].split(',')[3])) + freq=info.split(';')[1].split('=')[1] + uniq=sample+':'+coord + lf_uniq.append(uniq) + #filter out everything below min af cutoff + if float(freq) >= float(af_cutoff) and depth > int(min_reads): + fh_tmp.write( + caller +'\t'+ \ + run +'\t'+ \ + sample+'\t'+ \ + coord+'\t'+\ + ref_al+'\t'+\ + alt_al+'\t'+\ + depth+'\t'+\ + freq+'\t'+'\n' + ) + + #open the tmp table for reading + fh_tmp.close() + fh_tmp=open(summary_tmp,'r') + + #open the final output files + summary=sample+".summary_per_caller.txt" + final=sample+'.vcf.summary.txt' + + fh_summary=open(summary,'w') + fh_out=open(final,'w') + fh_out.write('Caller'+'\t'+\ + "Run"+'\t'+\ + "sample"+'\t'+\ + "Coordinate"+'\t'+\ + "Ref_Allele"+'\t'+\ + "Alt_Allele"+'\t'+\ + "Alt_Read_Depth"+'\t'+\ + "Alt_Freq"+"\n") + + #print to summary out file + total_vars=len(set(iv_uniq+lf_uniq)) + unique_ivar = ((set(iv_uniq)-set(lf_uniq))) + unique_lofreq = ((set(lf_uniq)-set(iv_uniq))) + + fh_summary.write('# potentially drug resistant variants'+'\t'+\ + str(total_vars) + '\n' + \ + 'variants unique to iVar'+'\t'+ \ + str(len(unique_ivar))+'\n'\ + "variants unique to LoFreq"+'\t'+ \ + str(len(unique_lofreq))+'\n' + ) + + #count vars per locus + F13L_end=40204 + E9L_start=51427 + + F13L=[] + E9L=[] + indV=[] + indV_ivar=[] + indV_lofreq=[] + + #now write the variant table out + for line in fh_tmp: + line=line.strip() + caller=line.split('\t')[0] + run=line.split('\t')[1] + sample=line.split('\t')[2] + coord=line.split('\t')[3] + if caller == "ivar": + fh_out.write(line+'\n') + indV.append(sample) + indV_ivar.append(sample) + if int(coord) <= int(F13L_end): + F13L.append(coord) + elif int(coord) >= int(E9L_start): + E9L.append(coord) + elif caller == "lofreq": + if sample+':'+coord in unique_lofreq: + fh_out.write(line+'\n') + indV.append(sample) + indV_lofreq.append(sample) + fh_summary.write('number of variant sites in F13L'+'\t'+\ + str(len(set(F13L)))+'\n'+\ + 'number of variant sites in E9L'+'\t'+ \ + str(len(set(E9L)))) + + #clean up + fh_out.close() + fh_summary.close() + +def main(): + #define the arguments + args = get_args() + summarize_vcfs(args.vcf1,args.vcf2,args.sample,args.exclude_coords,args.af_cutoff,args.min_reads,args.run) + +if __name__ == '__main__': + main() diff --git a/conf/base.config b/conf/base.config new file mode 100755 index 0000000..e1b87b7 --- /dev/null +++ b/conf/base.config @@ -0,0 +1,59 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + PolkaPox Nextflow base config file +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + A 'blank slate' config file, appropriate for general use on most high performance + compute environments. Assumes that all software is installed and available on + the PATH. Runs in `local` mode - all jobs will be run on the logged in environment. +---------------------------------------------------------------------------------------- +*/ + +process { + + cpus = { check_max( 1 * task.attempt, 'cpus' ) } + memory = { check_max( 6.GB * task.attempt, 'memory' ) } + time = { check_max( 4.h * task.attempt, 'time' ) } + + errorStrategy = { task.exitStatus in [143,137,104,134,139] ? 'retry' : 'ignore' } + maxRetries = 3 + maxErrors = '-1' + + // Process-specific resource requirements + // NOTE - Please try and re-use the labels below as much as possible. + // These labels are used and recognised by default in DSL2 files hosted on nf-core/modules. + // If possible, it would be nice to keep the same label naming convention when + // adding in your local modules too. + // TODO nf-core: Customise requirements for specific processes. + // See https://www.nextflow.io/docs/latest/config.html#config-process-selectors + withLabel:process_low { + cpus = { check_max( 2 * task.attempt, 'cpus' ) } + memory = { check_max( 12.GB * task.attempt, 'memory' ) } + time = { check_max( 4.h * task.attempt, 'time' ) } + } + withLabel:process_medium { + cpus = { check_max( 6 * task.attempt, 'cpus' ) } + memory = { check_max( 36.GB * task.attempt, 'memory' ) } + time = { check_max( 8.h * task.attempt, 'time' ) } + } + withLabel:process_high { + cpus = { check_max( 12 * task.attempt, 'cpus' ) } + memory = { check_max( 72.GB * task.attempt, 'memory' ) } + time = { check_max( 16.h * task.attempt, 'time' ) } + } + withLabel:process_long { + time = { check_max( 20.h * task.attempt, 'time' ) } + } + withLabel:process_high_memory { + memory = { check_max( 128.GB * task.attempt, 'memory' ) } + } + withLabel:error_ignore { + errorStrategy = 'ignore' + } + withLabel:error_retry { + errorStrategy = 'retry' + maxRetries = 2 + } + withName:CUSTOM_DUMPSOFTWAREVERSIONS { + cache = false + } +} diff --git a/conf/modules.config b/conf/modules.config new file mode 100755 index 0000000..4e6844b --- /dev/null +++ b/conf/modules.config @@ -0,0 +1,161 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Config file for defining DSL2 per module options and publishing paths +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Available keys to override module options: + ext.args = Additional arguments appended to command in module. + ext.args2 = Second set of arguments appended to command in module (multi-tool modules). + ext.args3 = Third set of arguments appended to command in module (multi-tool modules). + ext.prefix = File name prefix for output files. +---------------------------------------------------------------------------------------- +*/ + +process { + + publishDir = [ + path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + + withName: SAMPLESHEET_CHECK { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: CREATE_SAMPLESHEET { + publishDir = [ + path: { "${params.outdir}" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: SUMMARIZE_QC { + publishDir = [ + path: { "${params.outdir}" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: FASTQC { + ext.args = '--quiet' + } + + withName: FASTP { + ext.args = '--detect_adapter_for_pe -q 20 -c --length_required 50 -5 -3' + ext.args2 = '-q 20 --length_required 50 -5 -3' + } + + withName: IVAR_CONSENSUS_BWA { + ext.aligner = 'bwa' + ext.args = '-Q 0' + ext.args2 = '-q 20 -t 0.67 -m 20 -n N' + } + + withName: IVAR_CONSENSUS_POLISH { + publishDir = [ + path: { "${params.outdir}/final_assembly" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + ext.args = '-Q 0' + ext.args2 = '-q 20 -t 0.67 -m 20 -n N' + } + + withName: IVAR_VARIANTS { + publishDir = [ + path: { "${params.outdir}/ivar" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + ext.caller = 'ivar' + ext.args = '-aa -A -d 600000 -B -Q 0' + ext.args2 = '-q 20' + } + + withName: VARIANT_CONVERT { + publishDir = [ + path: { "${params.outdir}/ivar" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + ext.caller = 'ivar' + } + + withName: SUMMARIZE_TSV { + publishDir = [ + path: { "${params.outdir}/variant_summaries" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: AGGREGATE_TSVS { + publishDir = [ + path: { "${params.outdir}/variant_summaries" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: CUSTOM_DUMPSOFTWAREVERSIONS { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: params.publish_dir_mode, + pattern: '*_versions.yml' + ] + } + + withName: GRAPH_RECON { + publishDir = [ + path: { "${params.outdir}/graph_recon" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: BWA_MEM_DENOVO { + publishDir = [ + path: { "${params.outdir}/graph_recon_mapping" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: SAMTOOLS_FLAGSTAT_DENOVO { + publishDir = [ + path: { "${params.outdir}/graph_recon_mapping" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: UNICYCLER { + publishDir = [ + path: { "${params.outdir}/unicycler" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: PUBLISH_CONTIGS { + publishDir = [ + path: { "${params.outdir}/final_assembly" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: MULTIQC { + publishDir = [ + path: { "${params.outdir}/multiqc" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } +} diff --git a/docs/README.md b/docs/README.md new file mode 100755 index 0000000..34d3712 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,12 @@ +# PolkaPox: Documentation + +Detailed documentation for PolkaPox is split into the following pages: + +- [Usage](usage.md) + - An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. +- [Output](output.md) + - An overview of the different results produced by the pipeline and how to interpret them. +- [De novo](denovo.md) + - An overview of the de novo assembly steps. + +You can find a lot more documentation about installing, configuring and running nf-core pipelines on the website: [https://nf-co.re](https://nf-co.re) diff --git a/docs/denovo.md b/docs/denovo.md new file mode 100755 index 0000000..08b6454 --- /dev/null +++ b/docs/denovo.md @@ -0,0 +1,39 @@ +# PolkaPox: De novo Assembly + +## Introduction + +This document describes the de novo assembly steps of the pipeline. Additional details regarding the output files are provided in [output](/docs/output.md). + +## Overview + +De novo genome assembly of filtered and trimmed sequencing reads consists of the following steps: +1. Unicycler draft assembly +1. Assembly path reconstruction +1. Sequence polishing + +## Assembly path reconstruction + +A unique component of the de novo assembly pipeline within PolkaPox is the reconstruction of a linear orthopox genome from linkages between draft contigs assembled from Unicycler. Briefly, the assembly graph is read with [`gfapy`](https://gfapy.readthedocs.io/en/latest/), a library for parsing and manipulating GFA formatted objects, and then traversed in search of the longest paths starting from the largest contig. Because orthopox genomes are flanked by inverted terminal repeats (ITRs), which become collapsed during de novo assembly, the longest paths in both directions should end at the same contigs. These paths, and the relative coverage depth of contigs containing repeatitive sequences, are used to infer the complete, linear genome sequence. See [`mpxv-AssemblyGraph_gfaPy.py`](/bin/mpxv-AssemblyGraph_gfaPy.py) for more details. + +![Assembly graph diagram](/docs/images/bandage_polkapox.png)*Basic assembly graph reconstruction process.* + +Once the draft contigs are combined into a linear assembly, the sequence is further 'polished' by mapping filtered reads with BWA and computing the resulting consensus with iVar. + +## Limitations + +Graph reconstruction makes various assumptions and if Unicycler produces a graph different from expectations, an assembly path will not be produced. In such instances, only the draft multi-contig assembly is reported [`${outdir}/final_assembly/${sample}_draft.fa`]. + +| Example 1: Broken path | Example 2: Too many contig links| +|-----|-----| +|*WARNING: only 1 path between longest contig and the last contig in the longest path* |*WARNING: Multiple links connect to 2 or more contigs in assembly* | +|![Bad assembly graph 1](/docs/images/bandage_broke.png) |![Bad assembly graph 2](/docs/images/bandage_links.png) | + +## Tips for manual resolution + +If PolkaPox cannot reconstruct a linear genome sequence, it may still be possible to manually resolve the assembly through additional steps. For example: +1. Visually inspect and manipulate the graph using a software tool like [Bandage](https://github.com/rrwick/Bandage). +1. Align the draft contigs to a suitable reference genome and manually scaffold them together. +1. Try another assembly tool, using the filtered and trimmed reads [`${outdir}/fastp/${sample}.fastp.fastq.gz`] as input. +1. Scaffold your contigs with additional long-read data (e.g. ONT) + +Once you have produced a suitable scaffold, consider mapping the invidual reads back to your assembly to confirm. For example, run PolkaPox with `--workflow refbased` and provide your new assembly FASTA as the reference. \ No newline at end of file diff --git a/docs/images/bandage_broke.png b/docs/images/bandage_broke.png new file mode 100755 index 0000000..82acb2b Binary files /dev/null and b/docs/images/bandage_broke.png differ diff --git a/docs/images/bandage_links.png b/docs/images/bandage_links.png new file mode 100755 index 0000000..d8f6cef Binary files /dev/null and b/docs/images/bandage_links.png differ diff --git a/docs/images/bandage_polkapox.png b/docs/images/bandage_polkapox.png new file mode 100755 index 0000000..0d87158 Binary files /dev/null and b/docs/images/bandage_polkapox.png differ diff --git a/docs/output.md b/docs/output.md new file mode 100755 index 0000000..9aa8d63 --- /dev/null +++ b/docs/output.md @@ -0,0 +1,266 @@ +# PolkaPox: Output + +## Introduction + +This document describes the output produced by the pipeline. Sub-directories listed below will be created in the results directory after the pipeline has finished. All paths are relative to the top-level results directory. + +## Overview + +The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data into the following outputs: + +- [Kraken2](#kraken2) - Fastq sequence classification +- [seqTK](#seqtk) - Keep only sequences classified as Monkeypox Virus +- [FastP](#fastp) - Raw read QC and adapter + quality trimming +- [BWA mem](#bwa) - Read alignment to a reference genome +- [samtools](#samtools) - Read alignment depth + metrics +- [iVar](#ivar) - Consensus sequence generation and variant calling from reference-based assembly +- [Variant summaries](#variant-summaries) - Summary table of variant calls for select coordinates if `coords` parameter is specified +- [Unicycler](#unicycler) - De novo assembly from Fastp-trimmed reads +- [QUAST](#quast) - Assembly quality +- [Graph_recon](#graph) - Assembly graph resolution +- [MUMmer](#mummer) - Quantify assembly corrections +- [Final assembly](#final-assembly) - Polish de novo assembly +- [summarize_qc.py](#qc-summary) - Aggregate summary metrics in a tsv file per sample +- [MultiQC](#multiqc) - Aggregate report describing QC related to read quality +- [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution + +### Kraken2 + +
+Output files + +- `kraken2/` + - `*.classified.fastq.gz`: Classified read pairs. + - `*.classifiedreads.txt`: Report showing classification output for each read. + - `*.report.txt`: Taxonomic classification report. + +
+ +[Kraken2 documentation](https://github.com/DerrickWood/kraken2/blob/master/docs/MANUAL.markdown) + +### seqTK + +
+Output files + +- `seqtk/` + - `*.fq.gz`: Fastqs containing only sequences classified as Monkeypox Virus with Kraken2. + +
+ +[seqTK documentation](https://github.com/lh3/seqtk) + +### FastP + +
+Output files + +- `fastp/` + - `*.fastp.fastq.gz`: Trimmed read output. If paired input, a trimmed file will exist for R1 and R2. + - `*.fastp.html`: QC report containing quality metrics. + - `*.fastp.json`: QC report in json file. + - `*.fastp.txt`: QC report in text file. + +
+ +[Fastp documentation](https://github.com/OpenGene/fastp) + +### BWA mem + +
+Output files + +- `bwa/` + - `*.bam`: Sorted bam alignment to reference genome. + - `bwa/*`: Reference genome index files + +
+ +[BWA mem documentation](http://bio-bwa.sourceforge.net/bwa.shtml) + +### samtools + +
+Output files + +- `samtools/` + - `*.depth.tsv`: Coverage depth vs reference genome. + - `*.flagstat`: Alignment stats from `samtools flagstat` + +
+ +[samtools documentation](http://www.htslib.org/) + +### iVar + +
+Output files + +- `ivar/` + - `*.bwa.fa`: Consensus generated from BWA MEM alignment to reference genome. + - `*.bwa.mpileup*`: Mpileup output from BWA MEM alignment to reference genome. + - `*.ivar.tsv`: Default ivar variant output with variants as tsv table for each sample. + - `*.ivar.vcf`: VCF converted from ivar variants tsv for each sample. + +
+ +[iVar documentation](https://andersen-lab.github.io/ivar/html/) + +### Variant summaries + +
+Output files + +- `variant_summaries/` + - `all_samples.vcf.summary.txt`: Concatenation of the sample-level summary files for regions of interest specified by the `coords` parameter. + - `*_ivar_summary.txt`: Sample-level summary files for regions of interest specified by the `coords` parameter. + +
+ +### Unicycler + +
+Output files + +- `unicycler/` + - `*.assembly.gfa.gz`: Assembly graph output. + - `*.scaffolds.fa.gz`: Scaffold-level de novo genome assembly output. + - `*.unicycler.log`: Log of unicycler process. + +
+ +[Unicycler documentation](https://github.com/rrwick/Unicycler) + +### QUAST + +
+Output files + +- `quast/` + - `quast/*`: QUAST output files. + - `report.tsv`: Summary of assembly metrics for all samples. + +
+ +[QUAST documentation](https://quast.sourceforge.net/) + +### Graph reconstruction + +
+Output files + +- `graph_recon/` + - `*.assembly_asm.fasta`: Assembled genome. + - `*.assembly_longest.fasta`: Longest input contig sequence from Unicycler + - `*.assembly.summary`: Summary QC metrics for graph reconstruction. + - `*.assembly.log`: Log of assembly graph reconstruction process. + - `*contigs.fasta`: Reformatted fasta file from the input gfa file. +- `graph_recon_mapping/` + - `*.bam`: Sorted bam alignment of reads to reconstructed genome. + - `*flagstat`: Alignment stats from `samtools flagstat` + - `bwa/*`: Reconstructed genome index files + +
+ +[documentation](/bin/) + +### MUMmer dnadiff + +
+Output files + +- `mummer/` + - `*.report`: Summary of assembly corrections detected with `dnadiff`. + +
+ +[MUMmer documentation](https://github.com/mummer4/mummer) + +### Final assembly + +
+Output files + +- `final_assembly/` + - `*.final.fa`: Final assembly generated by de novo subworkflow + - `*.draft.fa`: Multi-contig draft assembly written only if Graph_Recon fails to reconstruct the Unicycler graph + +
+ +### QC Summary + +
+Output files + +- `sample_summary.tsv`: A tsv file with fields summarizing QC metrics for various steps in the pipeline. Note that columns included varies with subworkflow executed. All columns will be present with `--workflow full` and `--filter true`, but other options will only include relevant outputs. + - Column summary: + 1. `sample` - Sample name + 2. `reference_genome` - Reference genome defined with `--fasta` + 3. `total_raw_reads` - Total count of raw input reads + 4. `opx_read_count_kraken` - Count of reads classified as orthopox with kraken + 5. `opx_percent_kraken` - Percentage of total reads classified as orthopox + 6. `human_percent_kraken` - Percentage of reads classified as human + 7. `unclass_percent_kraken` - Percentage of reads not classified + 8. `kraken_db` - kraken database defined with `--kraken_db` + 9. `kraken_tax_ids` - List of taxids used for classification with `--kraken2_tax_ids` + 10. `filtered_read_count_fastp` - Count of classified reads passing fastp trimming and filtering + 11. `percent_reads_passed_fastp` - Percentage of classified reads passing fastp + 12. `percent_adapter_fastp` - Percent of classified reads with adapter contamination + 13. `gc_content_postfilter_fastp` - Percent QC of filtered reads + 14. `q30_rate_postfilter_fastp` - Q30 of filtered reads + 15. `percent_duplication_fastp` - Percent duplication in filtered reads + 16. `reads_mapped_bwa` - Count of filtered reads mapping to the reference genome + 17. `percent_mapped_bwa` - Percent of filtered reads mapping to the reference genome + 18. `average_depth_bwa` - Average coverage depth of filtered reads mapped to the reference genome + 19. `count_20xdepth_bwa` - Count of reference positions with >20x coverage (breadth 20x) + 20. `n_contigs_unicycler` - Number of contigs produced by de novo assembly with Unicycler + 21. `assembly_length_unicycler` - Total length of assembled contigs + 22. `n50_unicycler` - N50 of Unicycler assembly + 23. `mapped_reads_denovo` - Count of filtered reads mapped to the final assembly + 24. `percent_mapped_denovo` - Percent of filtered reads mapped to the final assembly + 25. `orientation_copy_number` - Final assembly graph path + 26. `sequence_length` - Total length of final assembly + 27. `itr_length` - ITR length inferred from the assembly graph + 28. `gfa_status` - Status of assembly graph resolution (PASS|FAIL) + 29. `gfa_notes` - Detailed message of graph resolution status + 30. `total_snps` - Count of detected SNPs relative to the reference genome + 31. `COORD1_SNPs` - Count of filtered SNPs within defined coordinate range + 32. `COORD2_SNPs` - Count of filtered SNPs within defined coordinate range + 33. `corrected_snps` - Count of SNPs corrected when polishing the final assembly + 34. `corrected_indels` - Count of indels corrected when polishing the final assembly + 35. `corrected_Ns` - Count of Ns added to the final assembly due to low coverage + +
+ +### MultiQC + +
+Output files + +- `multiqc/` + - `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. + - `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. + - `multiqc_plots/`: directory containing static images from the report in various formats. + +
+ +[MultiQC](http://multiqc.info) is a visualization tool that generates a single HTML report summarising all samples in your project. Most of the pipeline QC results are visualised in the report and further statistics are available in the report data directory. + +Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQC. The pipeline has special steps which also allow the software versions to be reported in the MultiQC output for future traceability. For more information about how to use MultiQC reports, see . + +### Pipeline information + +
+Output files + +- `pipeline_info/` + - `samplesheet.valid.csv`: Reformatted samplesheet files used as input to the pipeline. + - `software_versions.yml`: Captures all software versions used within the workflow, sub-workflows, and modules. + - `pipeline_report_*`: Reports generated with `--email` / `--email_on_fail` parameters at runtime. + - `execution_trace_*`: Tracing files that contain information about each process executed in the pipeline. + - `pipeline_dag_`: Graphical representations of the directed acyclic graph corresponding to the workflow structure defined in the pipeline. + - `execution_timeline_`: Files that contain information about the execution timeline of tasks completed by the pipeline. + +
+ +[Nextflow](https://www.nextflow.io/docs/latest/tracing.html) provides excellent functionality for generating various reports relevant to the running and execution of the pipeline. This will allow you to troubleshoot errors with the running of the pipeline, and also provide you with other information such as launch commands, run times and resource usage. diff --git a/docs/usage.md b/docs/usage.md new file mode 100755 index 0000000..9523359 --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,355 @@ +# PolkaPox: Usage + +> _Documentation of pipeline parameters is generated automatically from the pipeline schema and can no longer be found in markdown files._ + +## Introduction + +## Samplesheet or input directory input + +*You will need to either provide a samplesheet, or a path to a directory with your fastq files* + +> A) Provide a samplesheet: You will need to create a samplesheet with information about the samples you would like to analyse before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row as shown in the examples below. + +```console +--input '[path to samplesheet file]' +``` + +> B) Provide a path to FastQ files: You will need to pass the path to a folder containing your samples, as shown below: + +```console +--indir '[path to fastq files]' +``` + +> For this option, PolkaPox currently supports two file organization structures. +> Option 1: Your FastQ files can be organized in the format commonly used by CDC core genomic sequencing lab, in which FastQ files are nested one level under a subfolder. The subfolder will become the sample name. Here is an example: + +``` +/[path-to-directory]/NovaSeq/200710_A01000_0210_GF4RBVWJY8_MLA16554/ +│ +└───MLA16554A10_2022_660_GA +│ │ MLA16554A10_2022_660_GA_S10_R1_001.fq.gz +│ │ MLA16554A10_2022_660_GA_S10_R2_001.fq.gz +│ +└───MLA16554A11_2022_662_GA +│ │ MLA16554A11_2022_662_GA_S10_R1_001.fq.gz +│ │ MLA16554A11_2022_662_GA_S10_R1_001.fq.gz +``` + +> If your file structure looks as above, you would specify the input directory like this: +```console +--indir /[path-to-directory]/NovaSeq/200710_A01000_0210_GF4RBVWJY8_MLA16554/ +``` + +> And the pipeline would automatically create samplesheet like this: +```console +sample,fastq_1,fastq_2 +MLA16554A10_2022_660_GA,/[path-to-directory]/NovaSeq/200710_A01000_0210_GF4RBVWJY8_MLA16554/MLA16554A10_2022_660_GA_S10_R1_001.fq.gz,/[path-to-directory]/NovaSeq/200710_A01000_0210_GF4RBVWJY8_MLA16554/MLA16554A10_2022_660_GA_S10_R2_001.fq.gz +MLA16554A11_2022_662_GA,/[path-to-directory]/NovaSeq/200710_A01000_0210_GF4RBVWJY8_MLA16554/MLA16554A11_2022_662_GA_S10_R1_001.fq.gz,/[path-to-directory]/NovaSeq/200710_A01000_0210_GF4RBVWJY8_MLA16554/MLA16554A11_2022_662_GA_S10_R2_001.fq.gz +``` + +> Option 2: Your FastQ files can be directly under the input folder you pass. The sample name will be the filename without the `R1_001` or `R2_001` portion. For single-end FastQ file, the pipeline expects the `R1_001` suffix. Here is an example: + +``` +/[path-to-directory]/mpox_samples_2023/ +│ MLA16554A10_2022_660_GA_S10_R1_001.fq.gz +│ MLA16554A10_2022_660_GA_S10_R2_001.fq.gz +│ MLA16554A11_2022_662_GA_S10_R1_001.fq.gz +│ MLA16554A11_2022_662_GA_S10_R2_001.fq.gz +``` + +> If your file structure looks as above, you would specify the input directory like this: +```console +--indir /[path-to-directory]/mpox_samples_2023/ +``` + +> The pipeline would automatically create samplesheet like this: +```console +sample,fastq_1,fastq_2 +MLA16554A10_2022_660_GA_S10,/[path-to-directory]/mpox_samples_2023/MLA16554A10_2022_660_GA_S10_R1_001.fq.gz,/[path-to-directory]/mpox_samples_2023/MLA16554A10_2022_660_GA_S10_R2_001.fq.gz +MLA16554A11_2022_662_GA_S10,/[path-to-directory]/mpox_samples_2023/MLA16554A11_2022_662_GA_S10_R1_001.fq.gz,/[path-to-directory]/mpox_samples_2023/MLA16554A11_2022_662_GA_S10_R2_001.fq.gz +``` + +### Multiple runs of the same sample + +The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once (e.g. to increase sequencing depth). The pipeline will concatenate the raw reads before performing any downstream analysis. Below is an example for the same sample sequenced across 3 lanes: + +```console +sample,fastq_1,fastq_2 +CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz +CONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz +CONTROL_REP1,AEG588A1_S1_L004_R1_001.fastq.gz,AEG588A1_S1_L004_R2_001.fastq.gz +``` + +### Full samplesheet + +If you provide a samplesheet, the pipeline will auto-detect whether a sample is single- or paired-end using the information provided in the samplesheet. The samplesheet can have as many columns as you desire, however, there is a strict requirement for the first 3 columns to match those defined in the table below. + +A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. + +```console +sample,fastq_1,fastq_2 +CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz +CONTROL_REP2,AEG588A2_S2_L002_R1_001.fastq.gz,AEG588A2_S2_L002_R2_001.fastq.gz +CONTROL_REP3,AEG588A3_S3_L002_R1_001.fastq.gz,AEG588A3_S3_L002_R2_001.fastq.gz +TREATMENT_REP1,AEG588A4_S4_L003_R1_001.fastq.gz, +TREATMENT_REP2,AEG588A5_S5_L003_R1_001.fastq.gz, +TREATMENT_REP3,AEG588A6_S6_L003_R1_001.fastq.gz, +TREATMENT_REP3,AEG588A6_S6_L004_R1_001.fastq.gz, +``` + +| Column | Description | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | +| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | + +An [example samplesheet](../assets/samplesheet.csv) has been provided with the pipeline. + + +### Input Directory +Instead of providing a samplesheet you can also provide the path to a directory with fastq files. The script currently accepts two directory structures: +1. A parent directory with subdirectories, each containing paired FastQ files. +2. A directory with FastQ files directly under it + +The pipeline will exit if it detects a mix of directory structures (i.e., some FastQ files directly under the parent directory and others nested one level down). + +### Single-end vs. Paired-end reads + +The pipeline assumes paired-end reads by default. You should specify `--paired False` for single-end reads when you run the pipeline. +If you're providing a samplesheet, the pipeline will automatically detect paired-end vs. single-end reads based on the samplesheet, as described above. + +## Entrypoint/Subworkflow options +This workflow contains several entrypoints that allow you as the user to specify which components of the workflow you would like to run. You must select one entrypoint using the `--workflow` parameter. + +## Kraken2 DB options +The default kraken2 database was assembled from MA001_USA_002 (Genbank Accession ON563414.3) and the human genome GRCh38 (GCF_000001405.40). For MPOX samples from other clades, or for other species of Orthopox, we recommend using an expanded database more inclusive of the target lineage. We included one version of this expanded database that includes MA001 and the human genome, as well as MPOX from Clade I (NC_003310), and the following Orthopox representative Refseq genomes: + + + Variola major (NC_001611) + + Variola minor (DQ441419) + + Alaskapox (MN240300) + + Camelpox (NC_003391) + + Cowpox (NC_003663) + + Ectromelia (NC_004105) + + Vaccinia (NC_006998) + + Taterapox (NC_008291) + + Racoonpox (NC027213) + + Volepox (NC_031033) + + Skunkpox (NC_031038) + + Akhmeta (NC_055230) + + Horsepox (NC_066642) + +By default the pipeline will keep reads pertaining to any of these NCBI taxon IDs which are defined in the file `assets/kraken2_tax_ids.txt`. You can modify this file and point to it for filtering with the `--kraken2_tax_ids` parameter. + +You can recreate this database with the following commands: + +Install mamba +```curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh +bash Mambaforge-$(uname)-$(uname -m).sh -b -p $HOME/mambaforge +``` +Add mamba to your PATH +`export PATH=$PATH:/your/mamba/directory/path/bin` +Install Kraken2 +`mamba install -c bioconda kraken2 -y` +Copy all your fasta files to a directory, in this case, Fasta_dir +Now add the add to library command to add your fasta files to the kraken database +```for fasta in Fasta_dir/* ; + do kraken2-build --add-to-library $fasta --db orthopox_kdb --threads $THREADS; +done +``` +Download the reference NCBI taxonomy files +`kraken2-build --download-taxonomy --db orthopox_kdb --threads $THREADS` +Now build the database +`kraken2-build --build --db orthopox_kdb --threads $THREADS` + +## Running the pipeline + +The typical command for running the pipeline is as follows: + +```console +nextflow run polkapox --input {SAMPLESHEET.csv} --outdir {OUTDIR} --genome {REF.fa} -profile --kraken_db {PATH/TO/DB} --workflow {WORKFLOW} --filter {true/false} +``` + +Note that the pipeline will create the following files in your working directory: + +```console +work # Directory containing the nextflow working files + # Finished results in specified location (defined with --outdir) +.nextflow_log # Log file from Nextflow +# Other nextflow hidden files, eg. history of pipeline runs and old logs. +``` + +### Updating the pipeline + +When you run the above command, Nextflow automatically pulls the pipeline code from GitHub and stores it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline: + +```console +nextflow pull polkapox +``` + +### Reproducibility + +It is a good idea to specify a pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since. + +First, go to the [polkapox releases page](https://github.com/CDCgov/polkapox/releases) and find the latest version number - numeric only (eg. `1.3.1`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.3.1`. + +This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. + +## Core Nextflow arguments + +> **NB:** These options are part of Nextflow and use a _single_ hyphen (pipeline parameters use a double-hyphen). + +### `-profile` + +Use this parameter to choose a configuration profile. Profiles can give configuration presets for different compute environments. + +Several generic profiles are bundled with the pipeline which instruct the pipeline to use software packaged using different methods (Docker, Singularity, Podman, Shifter, Charliecloud, Conda) - see below. When using Biocontainers, most of these software packaging methods pull Docker containers from quay.io e.g [FastQC](https://quay.io/repository/biocontainers/fastqc) except for Singularity which directly downloads Singularity images via https hosted by the [Galaxy project](https://depot.galaxyproject.org/singularity/) and Conda which downloads and installs software locally from [Bioconda](https://bioconda.github.io/). + +> We highly recommend the use of Docker or Singularity containers for full pipeline reproducibility, however when this is not possible, Conda is also supported. + +The pipeline also dynamically loads configurations from [https://github.com/nf-core/configs](https://github.com/nf-core/configs) when it runs, making multiple config profiles for various institutional clusters available at run time. For more information and to see if your system is available in these configs please see the [nf-core/configs documentation](https://github.com/nf-core/configs#documentation). + +Note that multiple profiles can be loaded, for example: `-profile test,docker` - the order of arguments is important! +They are loaded in sequence, so later profiles can overwrite earlier profiles. + +If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended. + +- `docker` + - A generic configuration profile to be used with [Docker](https://docker.com/) +- `singularity` + - A generic configuration profile to be used with [Singularity](https://sylabs.io/docs/) +- `podman` + - A generic configuration profile to be used with [Podman](https://podman.io/) +- `shifter` + - A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) +- `charliecloud` + - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) +- `conda` + - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter or Charliecloud. +- `test` + - A profile with a complete configuration for automated testing + - Includes links to test data so needs no other parameters + +### `-resume` + +Specify this when restarting a pipeline. Nextflow will use cached results from any pipeline steps where the inputs are the same, continuing from where it got to previously. For input to be considered the same, not only the names must be identical but the files' contents as well. For more info about this parameter, see [this blog post](https://www.nextflow.io/blog/2019/demystifying-nextflow-resume.html). + +You can also supply a run name to resume a specific run: `-resume [run-name]`. Use the `nextflow log` command to show previous run names. + +### `-c` + +Specify the path to a specific config file (this is a core Nextflow command). See the [nf-core website documentation](https://nf-co.re/usage/configuration) for more information. + +## Custom configuration + +### Resource requests + +Whilst the default requirements set within the pipeline will hopefully work for most people and with most input data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the steps in the pipeline, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher requests (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. + +For example, if the nf-core/rnaseq pipeline is failing after multiple re-submissions of the `STAR_ALIGN` process due to an exit code of `137` this would indicate that there is an out of memory issue: + +```console +[62/149eb0] NOTE: Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) +Error executing process > 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' + +Caused by: + Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) + +Command executed: + STAR \ + --genomeDir star \ + --readFilesIn WT_REP1_trimmed.fq.gz \ + --runThreadN 2 \ + --outFileNamePrefix WT_REP1. \ + + +Command exit status: + 137 + +Command output: + (empty) + +Command error: + .command.sh: line 9: 30 Killed STAR --genomeDir star --readFilesIn WT_REP1_trimmed.fq.gz --runThreadN 2 --outFileNamePrefix WT_REP1. +Work dir: + /home/pipelinetest/work/9d/172ca5881234073e8d76f2a19c88fb + +Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run` +``` + +To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). +We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so, based on the search results, the file we want is `modules/nf-core/software/star/align/main.nf`. +If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). +The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. +The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. +Providing you haven't set any other standard nf-core parameters to **cap** the [maximum resources](https://nf-co.re/usage/configuration#max-resources) used by the pipeline then we can try and bypass the `STAR_ALIGN` process failure by creating a custom config file that sets at least 72GB of memory, in this case increased to 100GB. +The custom config below can then be provided to the pipeline via the [`-c`](#-c) parameter as highlighted in previous sections. + +```nextflow +process { + withName: 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN' { + memory = 100.GB + } +} +``` + +> **NB:** We specify the full process name i.e. `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN` in the config file because this takes priority over the short name (`STAR_ALIGN`) and allows existing configuration using the full process name to be correctly overridden. +> +> If you get a warning suggesting that the process selector isn't recognised check that the process name has been specified correctly. + +### Updating containers + +The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. If for some reason you need to use a different version of a particular tool with the pipeline then you just need to identify the `process` name and override the Nextflow `container` definition for that process using the `withName` declaration. For example, in the [nf-core/viralrecon](https://nf-co.re/viralrecon) pipeline a tool called [Pangolin](https://github.com/cov-lineages/pangolin) has been used during the COVID-19 pandemic to assign lineages to SARS-CoV-2 genome sequenced samples. Given that the lineage assignments change quite frequently it doesn't make sense to re-release the nf-core/viralrecon everytime a new version of Pangolin has been released. However, you can override the default container used by the pipeline by creating a custom config file and passing it as a command-line argument via `-c custom.config`. + +1. Check the default version used by the pipeline in the module file for [Pangolin](https://github.com/nf-core/viralrecon/blob/a85d5969f9025409e3618d6c280ef15ce417df65/modules/nf-core/software/pangolin/main.nf#L14-L19) +2. Find the latest version of the Biocontainer available on [Quay.io](https://quay.io/repository/biocontainers/pangolin?tag=latest&tab=tags) +3. Create the custom config accordingly: + + - For Docker: + + ```nextflow + process { + withName: PANGOLIN { + container = 'quay.io/biocontainers/pangolin:3.0.5--pyhdfd78af_0' + } + } + ``` + + - For Singularity: + + ```nextflow + process { + withName: PANGOLIN { + container = 'https://depot.galaxyproject.org/singularity/pangolin:3.0.5--pyhdfd78af_0' + } + } + ``` + + - For Conda: + + ```nextflow + process { + withName: PANGOLIN { + conda = 'bioconda::pangolin=3.0.5' + } + } + ``` + +> **NB:** If you wish to periodically update individual tool-specific results (e.g. Pangolin) generated by the pipeline then you must ensure to keep the `work/` directory otherwise the `-resume` ability of the pipeline will be compromised and it will restart from scratch. + +## Running in the background + +Nextflow handles job submissions and supervises the running jobs. The Nextflow process must run until the pipeline is finished. + +The Nextflow `-bg` flag launches Nextflow in the background, detached from your terminal so that the workflow does not stop if you log out of your session. The logs are saved to a file. + +Alternatively, you can use `screen` / `tmux` or similar tool to create a detached session which you can log back into at a later time. +Some HPC setups also allow you to run nextflow within a cluster job submitted your job scheduler (from where it submits more jobs). + +## Nextflow memory requirements + +In some cases, the Nextflow Java virtual machines can start to request a large amount of memory. +We recommend adding the following line to your environment to limit this (typically in `~/.bashrc` or `~./bash_profile`): + +```console +NXF_OPTS='-Xms1g -Xmx4g' +``` diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy new file mode 100755 index 0000000..b3d092f --- /dev/null +++ b/lib/NfcoreSchema.groovy @@ -0,0 +1,529 @@ +// +// This file holds several functions used to perform JSON parameter validation, help and summary rendering for the nf-core pipeline template. +// + +import org.everit.json.schema.Schema +import org.everit.json.schema.loader.SchemaLoader +import org.everit.json.schema.ValidationException +import org.json.JSONObject +import org.json.JSONTokener +import org.json.JSONArray +import groovy.json.JsonSlurper +import groovy.json.JsonBuilder + +class NfcoreSchema { + + // + // Resolve Schema path relative to main workflow directory + // + public static String getSchemaPath(workflow, schema_filename='nextflow_schema.json') { + return "${workflow.projectDir}/${schema_filename}" + } + + // + // Function to loop over all parameters defined in schema and check + // whether the given parameters adhere to the specifications + // + /* groovylint-disable-next-line UnusedPrivateMethodParameter */ + public static void validateParameters(workflow, params, log, schema_filename='nextflow_schema.json') { + def has_error = false + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + // Check for nextflow core params and unexpected params + def json = new File(getSchemaPath(workflow, schema_filename=schema_filename)).text + def Map schemaParams = (Map) new JsonSlurper().parseText(json).get('definitions') + def nf_params = [ + // Options for base `nextflow` command + 'bg', + 'c', + 'C', + 'config', + 'd', + 'D', + 'dockerize', + 'h', + 'log', + 'q', + 'quiet', + 'syslog', + 'v', + 'version', + + // Options for `nextflow run` command + 'ansi', + 'ansi-log', + 'bg', + 'bucket-dir', + 'c', + 'cache', + 'config', + 'dsl2', + 'dump-channels', + 'dump-hashes', + 'E', + 'entry', + 'latest', + 'lib', + 'main-script', + 'N', + 'name', + 'offline', + 'params-file', + 'pi', + 'plugins', + 'poll-interval', + 'pool-size', + 'profile', + 'ps', + 'qs', + 'queue-size', + 'r', + 'resume', + 'revision', + 'stdin', + 'stub', + 'stub-run', + 'test', + 'w', + 'with-charliecloud', + 'with-conda', + 'with-dag', + 'with-docker', + 'with-mpi', + 'with-notification', + 'with-podman', + 'with-report', + 'with-singularity', + 'with-timeline', + 'with-tower', + 'with-trace', + 'with-weblog', + 'without-docker', + 'without-podman', + 'work-dir' + ] + def unexpectedParams = [] + + // Collect expected parameters from the schema + def expectedParams = [] + def enums = [:] + for (group in schemaParams) { + for (p in group.value['properties']) { + expectedParams.push(p.key) + if (group.value['properties'][p.key].containsKey('enum')) { + enums[p.key] = group.value['properties'][p.key]['enum'] + } + } + } + + for (specifiedParam in params.keySet()) { + // nextflow params + if (nf_params.contains(specifiedParam)) { + log.error "ERROR: You used a core Nextflow option with two hyphens: '--${specifiedParam}'. Please resubmit with '-${specifiedParam}'" + has_error = true + } + // unexpected params + def params_ignore = params.schema_ignore_params.split(',') + 'schema_ignore_params' + def expectedParamsLowerCase = expectedParams.collect{ it.replace("-", "").toLowerCase() } + def specifiedParamLowerCase = specifiedParam.replace("-", "").toLowerCase() + def isCamelCaseBug = (specifiedParam.contains("-") && !expectedParams.contains(specifiedParam) && expectedParamsLowerCase.contains(specifiedParamLowerCase)) + if (!expectedParams.contains(specifiedParam) && !params_ignore.contains(specifiedParam) && !isCamelCaseBug) { + // Temporarily remove camelCase/camel-case params #1035 + def unexpectedParamsLowerCase = unexpectedParams.collect{ it.replace("-", "").toLowerCase()} + if (!unexpectedParamsLowerCase.contains(specifiedParamLowerCase)){ + unexpectedParams.push(specifiedParam) + } + } + } + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// + // Validate parameters against the schema + InputStream input_stream = new File(getSchemaPath(workflow, schema_filename=schema_filename)).newInputStream() + JSONObject raw_schema = new JSONObject(new JSONTokener(input_stream)) + + // Remove anything that's in params.schema_ignore_params + raw_schema = removeIgnoredParams(raw_schema, params) + + Schema schema = SchemaLoader.load(raw_schema) + + // Clean the parameters + def cleanedParams = cleanParameters(params) + + // Convert to JSONObject + def jsonParams = new JsonBuilder(cleanedParams) + JSONObject params_json = new JSONObject(jsonParams.toString()) + + // Validate + try { + schema.validate(params_json) + } catch (ValidationException e) { + println '' + log.error 'ERROR: Validation of pipeline parameters failed!' + JSONObject exceptionJSON = e.toJSON() + printExceptions(exceptionJSON, params_json, log, enums) + println '' + has_error = true + } + + // Check for unexpected parameters + if (unexpectedParams.size() > 0) { + Map colors = NfcoreTemplate.logColours(params.monochrome_logs) + println '' + def warn_msg = 'Found unexpected parameters:' + for (unexpectedParam in unexpectedParams) { + warn_msg = warn_msg + "\n* --${unexpectedParam}: ${params[unexpectedParam].toString()}" + } + log.warn warn_msg + log.info "- ${colors.dim}Ignore this warning: params.schema_ignore_params = \"${unexpectedParams.join(',')}\" ${colors.reset}" + println '' + } + + if (has_error) { + System.exit(1) + } + } + + // + // Beautify parameters for --help + // + public static String paramsHelp(workflow, params, command, schema_filename='nextflow_schema.json') { + Map colors = NfcoreTemplate.logColours(params.monochrome_logs) + Integer num_hidden = 0 + String output = '' + output += 'Typical pipeline command:\n\n' + output += " ${colors.cyan}${command}${colors.reset}\n\n" + Map params_map = paramsLoad(getSchemaPath(workflow, schema_filename=schema_filename)) + Integer max_chars = paramsMaxChars(params_map) + 1 + Integer desc_indent = max_chars + 14 + Integer dec_linewidth = 160 - desc_indent + for (group in params_map.keySet()) { + Integer num_params = 0 + String group_output = colors.underlined + colors.bold + group + colors.reset + '\n' + def group_params = params_map.get(group) // This gets the parameters of that particular group + for (param in group_params.keySet()) { + if (group_params.get(param).hidden && !params.show_hidden_params) { + num_hidden += 1 + continue; + } + def type = '[' + group_params.get(param).type + ']' + def description = group_params.get(param).description + def defaultValue = group_params.get(param).default != null ? " [default: " + group_params.get(param).default.toString() + "]" : '' + def description_default = description + colors.dim + defaultValue + colors.reset + // Wrap long description texts + // Loosely based on https://dzone.com/articles/groovy-plain-text-word-wrap + if (description_default.length() > dec_linewidth){ + List olines = [] + String oline = "" // " " * indent + description_default.split(" ").each() { wrd -> + if ((oline.size() + wrd.size()) <= dec_linewidth) { + oline += wrd + " " + } else { + olines += oline + oline = wrd + " " + } + } + olines += oline + description_default = olines.join("\n" + " " * desc_indent) + } + group_output += " --" + param.padRight(max_chars) + colors.dim + type.padRight(10) + colors.reset + description_default + '\n' + num_params += 1 + } + group_output += '\n' + if (num_params > 0){ + output += group_output + } + } + if (num_hidden > 0){ + output += colors.dim + "!! Hiding $num_hidden params, use --show_hidden_params to show them !!\n" + colors.reset + } + output += NfcoreTemplate.dashedLine(params.monochrome_logs) + return output + } + + // + // Groovy Map summarising parameters/workflow options used by the pipeline + // + public static LinkedHashMap paramsSummaryMap(workflow, params, schema_filename='nextflow_schema.json') { + // Get a selection of core Nextflow workflow options + def Map workflow_summary = [:] + if (workflow.revision) { + workflow_summary['revision'] = workflow.revision + } + workflow_summary['runName'] = workflow.runName + if (workflow.containerEngine) { + workflow_summary['containerEngine'] = workflow.containerEngine + } + if (workflow.container) { + workflow_summary['container'] = workflow.container + } + workflow_summary['launchDir'] = workflow.launchDir + workflow_summary['workDir'] = workflow.workDir + workflow_summary['projectDir'] = workflow.projectDir + workflow_summary['userName'] = workflow.userName + workflow_summary['profile'] = workflow.profile + workflow_summary['configFiles'] = workflow.configFiles.join(', ') + + // Get pipeline parameters defined in JSON Schema + def Map params_summary = [:] + def params_map = paramsLoad(getSchemaPath(workflow, schema_filename=schema_filename)) + for (group in params_map.keySet()) { + def sub_params = new LinkedHashMap() + def group_params = params_map.get(group) // This gets the parameters of that particular group + for (param in group_params.keySet()) { + if (params.containsKey(param)) { + def params_value = params.get(param) + def schema_value = group_params.get(param).default + def param_type = group_params.get(param).type + if (schema_value != null) { + if (param_type == 'string') { + if (schema_value.contains('$projectDir') || schema_value.contains('${projectDir}')) { + def sub_string = schema_value.replace('\$projectDir', '') + sub_string = sub_string.replace('\${projectDir}', '') + if (params_value.contains(sub_string)) { + schema_value = params_value + } + } + if (schema_value.contains('$params.outdir') || schema_value.contains('${params.outdir}')) { + def sub_string = schema_value.replace('\$params.outdir', '') + sub_string = sub_string.replace('\${params.outdir}', '') + if ("${params.outdir}${sub_string}" == params_value) { + schema_value = params_value + } + } + } + } + + // We have a default in the schema, and this isn't it + if (schema_value != null && params_value != schema_value) { + sub_params.put(param, params_value) + } + // No default in the schema, and this isn't empty + else if (schema_value == null && params_value != "" && params_value != null && params_value != false) { + sub_params.put(param, params_value) + } + } + } + params_summary.put(group, sub_params) + } + return [ 'Core Nextflow options' : workflow_summary ] << params_summary + } + + // + // Beautify parameters for summary and return as string + // + public static String paramsSummaryLog(workflow, params) { + Map colors = NfcoreTemplate.logColours(params.monochrome_logs) + String output = '' + def params_map = paramsSummaryMap(workflow, params) + def max_chars = paramsMaxChars(params_map) + for (group in params_map.keySet()) { + def group_params = params_map.get(group) // This gets the parameters of that particular group + if (group_params) { + output += colors.bold + group + colors.reset + '\n' + for (param in group_params.keySet()) { + output += " " + colors.blue + param.padRight(max_chars) + ": " + colors.green + group_params.get(param) + colors.reset + '\n' + } + output += '\n' + } + } + output += "!! Only displaying parameters that differ from the pipeline defaults !!\n" + output += NfcoreTemplate.dashedLine(params.monochrome_logs) + return output + } + + // + // Loop over nested exceptions and print the causingException + // + private static void printExceptions(ex_json, params_json, log, enums, limit=5) { + def causingExceptions = ex_json['causingExceptions'] + if (causingExceptions.length() == 0) { + def m = ex_json['message'] =~ /required key \[([^\]]+)\] not found/ + // Missing required param + if (m.matches()) { + log.error "* Missing required parameter: --${m[0][1]}" + } + // Other base-level error + else if (ex_json['pointerToViolation'] == '#') { + log.error "* ${ex_json['message']}" + } + // Error with specific param + else { + def param = ex_json['pointerToViolation'] - ~/^#\// + def param_val = params_json[param].toString() + if (enums.containsKey(param)) { + def error_msg = "* --${param}: '${param_val}' is not a valid choice (Available choices" + if (enums[param].size() > limit) { + log.error "${error_msg} (${limit} of ${enums[param].size()}): ${enums[param][0..limit-1].join(', ')}, ... )" + } else { + log.error "${error_msg}: ${enums[param].join(', ')})" + } + } else { + log.error "* --${param}: ${ex_json['message']} (${param_val})" + } + } + } + for (ex in causingExceptions) { + printExceptions(ex, params_json, log, enums) + } + } + + // + // Remove an element from a JSONArray + // + private static JSONArray removeElement(json_array, element) { + def list = [] + int len = json_array.length() + for (int i=0;i + if(raw_schema.keySet().contains('definitions')){ + raw_schema.definitions.each { definition -> + for (key in definition.keySet()){ + if (definition[key].get("properties").keySet().contains(ignore_param)){ + // Remove the param to ignore + definition[key].get("properties").remove(ignore_param) + // If the param was required, change this + if (definition[key].has("required")) { + def cleaned_required = removeElement(definition[key].required, ignore_param) + definition[key].put("required", cleaned_required) + } + } + } + } + } + if(raw_schema.keySet().contains('properties') && raw_schema.get('properties').keySet().contains(ignore_param)) { + raw_schema.get("properties").remove(ignore_param) + } + if(raw_schema.keySet().contains('required') && raw_schema.required.contains(ignore_param)) { + def cleaned_required = removeElement(raw_schema.required, ignore_param) + raw_schema.put("required", cleaned_required) + } + } + return raw_schema + } + + // + // Clean and check parameters relative to Nextflow native classes + // + private static Map cleanParameters(params) { + def new_params = params.getClass().newInstance(params) + for (p in params) { + // remove anything evaluating to false + if (!p['value']) { + new_params.remove(p.key) + } + // Cast MemoryUnit to String + if (p['value'].getClass() == nextflow.util.MemoryUnit) { + new_params.replace(p.key, p['value'].toString()) + } + // Cast Duration to String + if (p['value'].getClass() == nextflow.util.Duration) { + new_params.replace(p.key, p['value'].toString().replaceFirst(/d(?!\S)/, "day")) + } + // Cast LinkedHashMap to String + if (p['value'].getClass() == LinkedHashMap) { + new_params.replace(p.key, p['value'].toString()) + } + } + return new_params + } + + // + // This function tries to read a JSON params file + // + private static LinkedHashMap paramsLoad(String json_schema) { + def params_map = new LinkedHashMap() + try { + params_map = paramsRead(json_schema) + } catch (Exception e) { + println "Could not read parameters settings from JSON. $e" + params_map = new LinkedHashMap() + } + return params_map + } + + // + // Method to actually read in JSON file using Groovy. + // Group (as Key), values are all parameters + // - Parameter1 as Key, Description as Value + // - Parameter2 as Key, Description as Value + // .... + // Group + // - + private static LinkedHashMap paramsRead(String json_schema) throws Exception { + def json = new File(json_schema).text + def Map schema_definitions = (Map) new JsonSlurper().parseText(json).get('definitions') + def Map schema_properties = (Map) new JsonSlurper().parseText(json).get('properties') + /* Tree looks like this in nf-core schema + * definitions <- this is what the first get('definitions') gets us + group 1 + title + description + properties + parameter 1 + type + description + parameter 2 + type + description + group 2 + title + description + properties + parameter 1 + type + description + * properties <- parameters can also be ungrouped, outside of definitions + parameter 1 + type + description + */ + + // Grouped params + def params_map = new LinkedHashMap() + schema_definitions.each { key, val -> + def Map group = schema_definitions."$key".properties // Gets the property object of the group + def title = schema_definitions."$key".title + def sub_params = new LinkedHashMap() + group.each { innerkey, value -> + sub_params.put(innerkey, value) + } + params_map.put(title, sub_params) + } + + // Ungrouped params + def ungrouped_params = new LinkedHashMap() + schema_properties.each { innerkey, value -> + ungrouped_params.put(innerkey, value) + } + params_map.put("Other parameters", ungrouped_params) + + return params_map + } + + // + // Get maximum number of characters across all parameter names + // + private static Integer paramsMaxChars(params_map) { + Integer max_chars = 0 + for (group in params_map.keySet()) { + def group_params = params_map.get(group) // This gets the parameters of that particular group + for (param in group_params.keySet()) { + if (param.size() > max_chars) { + max_chars = param.size() + } + } + } + return max_chars + } +} diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy new file mode 100755 index 0000000..2fc0a9b --- /dev/null +++ b/lib/NfcoreTemplate.groovy @@ -0,0 +1,258 @@ +// +// This file holds several functions used within the nf-core pipeline template. +// + +import org.yaml.snakeyaml.Yaml + +class NfcoreTemplate { + + // + // Check AWS Batch related parameters have been specified correctly + // + public static void awsBatch(workflow, params) { + if (workflow.profile.contains('awsbatch')) { + // Check params.awsqueue and params.awsregion have been set if running on AWSBatch + assert (params.awsqueue && params.awsregion) : "Specify correct --awsqueue and --awsregion parameters on AWSBatch!" + // Check outdir paths to be S3 buckets if running on AWSBatch + assert params.outdir.startsWith('s3:') : "Outdir not on S3 - specify S3 Bucket to run on AWSBatch!" + } + } + + // + // Warn if a -profile or Nextflow config has not been provided to run the pipeline + // + public static void checkConfigProvided(workflow, log) { + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " + } + } + + // + // Construct and send completion email + // + public static void email(workflow, params, summary_params, projectDir, log, multiqc_report=[]) { + + // Set up the e-mail variables + def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + if (!workflow.success) { + subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + } + + def summary = [:] + for (group in summary_params.keySet()) { + summary << summary_params[group] + } + + def misc_fields = [:] + misc_fields['Date Started'] = workflow.start + misc_fields['Date Completed'] = workflow.complete + misc_fields['Pipeline script file path'] = workflow.scriptFile + misc_fields['Pipeline script hash ID'] = workflow.scriptId + if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository + if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId + if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build + misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp + + def email_fields = [:] + email_fields['version'] = workflow.manifest.version + email_fields['runName'] = workflow.runName + email_fields['success'] = workflow.success + email_fields['dateComplete'] = workflow.complete + email_fields['duration'] = workflow.duration + email_fields['exitStatus'] = workflow.exitStatus + email_fields['errorMessage'] = (workflow.errorMessage ?: 'None') + email_fields['errorReport'] = (workflow.errorReport ?: 'None') + email_fields['commandLine'] = workflow.commandLine + email_fields['projectDir'] = workflow.projectDir + email_fields['summary'] = summary << misc_fields + + // On success try attach the multiqc report + def mqc_report = null + try { + if (workflow.success) { + mqc_report = multiqc_report.getVal() + if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { + if (mqc_report.size() > 1) { + log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + } + mqc_report = mqc_report[0] + } + } + } catch (all) { + if (multiqc_report) { + log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + } + } + + // Check if we are only sending emails on failure + def email_address = params.email + if (!params.email && params.email_on_fail && !workflow.success) { + email_address = params.email_on_fail + } + + // Render the TXT template + def engine = new groovy.text.GStringTemplateEngine() + def tf = new File("$projectDir/assets/email_template.txt") + def txt_template = engine.createTemplate(tf).make(email_fields) + def email_txt = txt_template.toString() + + // Render the HTML template + def hf = new File("$projectDir/assets/email_template.html") + def html_template = engine.createTemplate(hf).make(email_fields) + def email_html = html_template.toString() + + // Render the sendmail template + def max_multiqc_email_size = params.max_multiqc_email_size as nextflow.util.MemoryUnit + def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "$projectDir", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def sf = new File("$projectDir/assets/sendmail_template.txt") + def sendmail_template = engine.createTemplate(sf).make(smail_fields) + def sendmail_html = sendmail_template.toString() + + // Send the HTML e-mail + Map colors = logColours(params.monochrome_logs) + if (email_address) { + try { + if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + // Try to send HTML e-mail using sendmail + [ 'sendmail', '-t' ].execute() << sendmail_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" + } catch (all) { + // Catch failures and try with plaintext + def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + if ( mqc_report.size() <= max_multiqc_email_size.toBytes() ) { + mail_cmd += [ '-A', mqc_report ] + } + mail_cmd.execute() << email_html + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + } + } + + // Write summary e-mail HTML to a file + def output_d = new File("${params.outdir}/pipeline_info/") + if (!output_d.exists()) { + output_d.mkdirs() + } + def output_hf = new File(output_d, "pipeline_report.html") + output_hf.withWriter { w -> w << email_html } + def output_tf = new File(output_d, "pipeline_report.txt") + output_tf.withWriter { w -> w << email_txt } + } + + // + // Print pipeline summary on completion + // + public static void summary(workflow, params, log) { + Map colors = logColours(params.monochrome_logs) + if (workflow.success) { + if (workflow.stats.ignoredCount == 0) { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + } + } else { + log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } + } + + // + // ANSII Colours used for terminal logging + // + public static Map logColours(Boolean monochrome_logs) { + Map colorcodes = [:] + + // Reset / Meta + colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" + colorcodes['bold'] = monochrome_logs ? '' : "\033[1m" + colorcodes['dim'] = monochrome_logs ? '' : "\033[2m" + colorcodes['underlined'] = monochrome_logs ? '' : "\033[4m" + colorcodes['blink'] = monochrome_logs ? '' : "\033[5m" + colorcodes['reverse'] = monochrome_logs ? '' : "\033[7m" + colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" + + // Regular Colors + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + + // Bold + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + + // Underline + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + + // High Intensity + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + + // Bold High Intensity + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + + return colorcodes + } + + // + // Does what is says on the tin + // + public static String dashedLine(monochrome_logs) { + Map colors = logColours(monochrome_logs) + return "-${colors.dim}----------------------------------------------------${colors.reset}-" + } + + // + // nf-core logo + // + public static String logo(workflow, monochrome_logs) { + Map colors = logColours(monochrome_logs) + String.format( + """\n + ${dashedLine(monochrome_logs)} + ${colors.green},--.${colors.black}/${colors.green},-.${colors.reset} + ${colors.blue} ___ __ __ __ ___ ${colors.green}/,-._.--~\'${colors.reset} + ${colors.blue} |\\ | |__ __ / ` / \\ |__) |__ ${colors.yellow}} {${colors.reset} + ${colors.blue} | \\| | \\__, \\__/ | \\ |___ ${colors.green}\\`-._,-`-,${colors.reset} + ${colors.green}`._,._,\'${colors.reset} + ${colors.purple} ${workflow.manifest.name} v${workflow.manifest.version}${colors.reset} + ${dashedLine(monochrome_logs)} + """.stripIndent() + ) + } +} diff --git a/lib/Utils.groovy b/lib/Utils.groovy new file mode 100755 index 0000000..28567bd --- /dev/null +++ b/lib/Utils.groovy @@ -0,0 +1,40 @@ +// +// This file holds several Groovy functions that could be useful for any Nextflow pipeline +// + +import org.yaml.snakeyaml.Yaml + +class Utils { + + // + // When running with -profile conda, warn if channels have not been set-up appropriately + // + public static void checkCondaChannels(log) { + Yaml parser = new Yaml() + def channels = [] + try { + def config = parser.load("conda config --show channels".execute().text) + channels = config.channels + } catch(NullPointerException | IOException e) { + log.warn "Could not verify conda channel configuration." + return + } + + // Check that all channels are present + def required_channels = ['conda-forge', 'bioconda', 'defaults'] + def conda_check_failed = !required_channels.every { ch -> ch in channels } + + // Check that they are in the right order + conda_check_failed |= !(channels.indexOf('conda-forge') < channels.indexOf('bioconda')) + conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults')) + + if (conda_check_failed) { + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + " There is a problem with your Conda configuration!\n\n" + + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + + " Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" + + " NB: The order of the channels matters!\n" + + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + } + } +} diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy new file mode 100755 index 0000000..d5e4f83 --- /dev/null +++ b/lib/WorkflowMain.groovy @@ -0,0 +1,98 @@ +// +// This file holds several functions specific to the main.nf workflow in the mpxvassembly pipeline +// + +class WorkflowMain { + + // + // Citation string for pipeline + // + public static String citation(workflow) { + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + + // TODO nf-core: Add Zenodo DOI for pipeline after first release + //"* The pipeline\n" + + //" https://doi.org/10.5281/zenodo.XXXXXXX\n\n" + + "* The nf-core framework\n" + + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + + "* Software dependencies\n" + + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" + } + + // + // Print help to screen if required + // + public static String help(workflow, params, log) { + def command = "nextflow run ${workflow.manifest.name} --input samplesheet.csv --genome GRCh37 -profile docker" + def help_string = '' + help_string += NfcoreTemplate.logo(workflow, params.monochrome_logs) + help_string += NfcoreSchema.paramsHelp(workflow, params, command) + help_string += '\n' + citation(workflow) + '\n' + help_string += NfcoreTemplate.dashedLine(params.monochrome_logs) + return help_string + } + + // + // Print parameter summary log to screen + // + public static String paramsSummaryLog(workflow, params, log) { + def summary_log = '' + summary_log += NfcoreTemplate.logo(workflow, params.monochrome_logs) + summary_log += NfcoreSchema.paramsSummaryLog(workflow, params) + summary_log += '\n' + citation(workflow) + '\n' + summary_log += NfcoreTemplate.dashedLine(params.monochrome_logs) + return summary_log + } + + // + // Validate parameters and print summary to screen + // + public static void initialise(workflow, params, log) { + // Print help to screen if required + if (params.help) { + log.info help(workflow, params, log) + System.exit(0) + } + + // Validate workflow parameters via the JSON schema + if (params.validate_params) { + NfcoreSchema.validateParameters(workflow, params, log) + } + + // Print parameter summary log to screen + log.info paramsSummaryLog(workflow, params, log) + + // Check that a -profile or Nextflow config has been provided to run the pipeline + NfcoreTemplate.checkConfigProvided(workflow, log) + + // Check that conda channels are set-up correctly + if (params.enable_conda) { + Utils.checkCondaChannels(log) + } + + // Check AWS batch settings + NfcoreTemplate.awsBatch(workflow, params) + + // Check input has been provided + if (!params.input && !params.indir) { + log.error "Please provide either an input samplesheet (e.g. '--input samplesheet.csv') or an input directory of sample files to the pipeline" + System.exit(1) + } + + if (params.input && params.indir) { + log.error "Please provide either an input samplesheet or an input directory of sample files, but not both" + System.exit(1) + } + } + // + // Get attribute from genome config file e.g. fasta + // + public static String getGenomeAttribute(params, attribute) { + def val = '' + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes[ params.genome ].containsKey(attribute)) { + val = params.genomes[ params.genome ][ attribute ] + } + } + return val + } +} diff --git a/lib/WorkflowPolkapox.groovy b/lib/WorkflowPolkapox.groovy new file mode 100755 index 0000000..4ddd3dc --- /dev/null +++ b/lib/WorkflowPolkapox.groovy @@ -0,0 +1,44 @@ +// +// This file holds several functions specific to the workflow/mpxvassembly.nf in the mpxvassembly pipeline +// + +class WorkflowPolkapox { + + // + // Check and validate parameters + // + public static void initialise(params, log) { + + if (!params.fasta) { + log.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." + System.exit(1) + } + } + + // + // Get workflow summary for MultiQC + // + public static String paramsSummaryMultiqc(workflow, summary) { + String summary_section = '' + for (group in summary.keySet()) { + def group_params = summary.get(group) // This gets the parameters of that particular group + if (group_params) { + summary_section += "

$group

\n" + summary_section += "
\n" + for (param in group_params.keySet()) { + summary_section += "
$param
${group_params.get(param) ?: 'N/A'}
\n" + } + summary_section += "
\n" + } + } + + String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" + return yaml_file_text + } +} diff --git a/lib/nfcore_external_java_deps.jar b/lib/nfcore_external_java_deps.jar new file mode 100755 index 0000000..805c8bb Binary files /dev/null and b/lib/nfcore_external_java_deps.jar differ diff --git a/main.nf b/main.nf new file mode 100755 index 0000000..6aba8f9 --- /dev/null +++ b/main.nf @@ -0,0 +1,55 @@ +#!/usr/bin/env nextflow +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + polkapox +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Github : https://github.com/CDCgov/polkapox +---------------------------------------------------------------------------------------- +*/ + +nextflow.enable.dsl = 2 + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + VALIDATE & PRINT PARAMETER SUMMARY +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +WorkflowMain.initialise(workflow, params, log) + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + NAMED WORKFLOW FOR PIPELINE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +include { POLKAPOX } from './workflows/polkapox' + + + +// +// WORKFLOW: Run main polkapox analysis pipeline +// +workflow POLKAPOX_ASSEMBLY { + POLKAPOX () +} + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RUN ALL WORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +// +// WORKFLOW: Execute a single named workflow for the pipeline +// See: https://github.com/nf-core/rnaseq/issues/619 +// +workflow { + POLKAPOX_ASSEMBLY () +} + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + THE END +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ diff --git a/modules.json b/modules.json new file mode 100755 index 0000000..5222d60 --- /dev/null +++ b/modules.json @@ -0,0 +1,62 @@ +{ + "name": "nf-core/mpxvassembly", + "homePage": "https://github.com/nf-core/mpxvassembly", + "repos": { + "nf-core/modules": { + "bbmap/align": { + "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c" + }, + "bbmap/bbduk": { + "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c" + }, + "bwa/index": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + }, + "bwa/mem": { + "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9" + }, + "custom/dumpsoftwareversions": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + }, + "fastp": { + "git_sha": "7e8ad566883449e7939062b5e2bcf53fc1e0002f" + }, + "fastqc": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + }, + "ivar/consensus": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + }, + "kraken2/kraken2": { + "git_sha": "abe025677cdd805cc93032341ab19885473c1a07" + }, + "multiqc": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + }, + "nf-core/mummer": { + "git_sha": "0f8a77ff00e65eaeebc509b8156eaa983192474b" + }, + "quast": { + "git_sha": "682f789f93070bd047868300dd018faf3d434e7c" + }, + "samtools/depth": { + "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" + }, + "samtools/flagstat": { + "git_sha": "ecece498f10b47b7c9d06f53a310cea5811b4c5f" + }, + "samtools/index": { + "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" + }, + "samtools/sort": { + "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" + }, + "seqtk/subseq": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + }, + "unicycler": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + } + } + } +} \ No newline at end of file diff --git a/modules/local/aggregate_tsvs.nf b/modules/local/aggregate_tsvs.nf new file mode 100755 index 0000000..9d39bab --- /dev/null +++ b/modules/local/aggregate_tsvs.nf @@ -0,0 +1,31 @@ +process AGGREGATE_TSVS { + label 'process_medium' + + conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bionumpy:0.2.17--pyha8f3691_0 ' : + 'quay.io/biocontainers/bionumpy' }" + + input: + path(individual_tsvs) + val save_aggr + + output: + path("*.txt"), emit: txt + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def save_aggr = save_aggr ? "| tee all_samples.vcf.summary.txt" : "" + """ + aggregate_tsvs.py + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python3 --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/local/create_samplesheet.nf b/modules/local/create_samplesheet.nf new file mode 100755 index 0000000..24a4299 --- /dev/null +++ b/modules/local/create_samplesheet.nf @@ -0,0 +1,30 @@ +process CREATE_SAMPLESHEET { + label 'process_low' + + conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + container 'quay.io/biocontainers/python:3.8.3' + +input: +path indir + +output: +path("*.csv"), emit: samplesheet +path "versions.yml", emit: versions + +script: // This script is bundled with the pipeline, in polkapox/bin +single = params.paired ? "" : "--single" // $single is empty string if paired=true, '--single' if paired=false +outfile = "${params.project_name}_samplesheet.csv" // Samplesheet name = basename of the project dir containing samples + +""" + create_samplesheet.py \\ + --indir $indir \\ + --outdir . \\ + $single \\ + --project_name ${params.project_name} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/local/filterbyname_bbtools.nf b/modules/local/filterbyname_bbtools.nf new file mode 100755 index 0000000..2dfa296 --- /dev/null +++ b/modules/local/filterbyname_bbtools.nf @@ -0,0 +1,39 @@ +process BBMAP_FILTER { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::bbmap=38.90" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bbmap:38.90--he522d1c_1' : + 'quay.io/biocontainers/bbmap:38.90--he522d1c_1' }" + + input: + tuple val(meta), path(reads) + tuple val(meta), path(mpxreads) + + output: + tuple val(meta), path('*.fq.gz') , emit: reads + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def raw = meta.single_end ? "in=${reads[0]}" : "in=${reads[0]} in2=${reads[1]}" + def filtered = meta.single_end ? "out=${prefix}.fastq.gz" : "out=${prefix}_1.fq.gz out2=${prefix}_2.fq.gz" + """ + maxmem=\$(echo \"$task.memory\"| sed 's/ GB/g/g') + filterbyname.sh \ + $raw \ + $filtered \ + names=${mpxreads} \ + include=t + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bbmap: \$(bbversion.sh) + END_VERSIONS + """ +} diff --git a/modules/local/graph_reconstruct.nf b/modules/local/graph_reconstruct.nf new file mode 100755 index 0000000..3d156b2 --- /dev/null +++ b/modules/local/graph_reconstruct.nf @@ -0,0 +1,35 @@ +process GRAPH_RECON { + + conda (params.enable_conda ? "conda-forge::python=3.10.6 conda-forge::biopython conda-forge::numpy conda-forge::mkl conda-forge::networkx bioconda::gfapy bioconda::blast" : null) + container "$baseDir/assets/mpxvgfa.sif" + + input: + tuple val(meta), path(gfa) + + output: + tuple val(meta), path('*asm.fasta') , emit: gfa_assembly optional true + path '*longest.fasta' , emit: gfa_longest optional true + tuple val(meta), path('*.contigs.fasta') , emit: unicycler_contigs optional true + path '*.log' , emit: log + path '*.summary' , emit: summary optional true + path "versions.yml" , emit: versions + + shell: // This script is bundled with the pipeline, in polkapox/bin/ + def prefix = task.ext.prefix ?: "${meta.id}" + def gfa_unzip = "$gfa".replaceAll(/.gz/, "") + """ + gunzip -f $gfa + cat $gfa_unzip | awk 'BEGIN { FS="\\t" } /^S/{ if( length(\$3) >= 1) print ">Contig"\$2"_len"substr(\$4,6)"_cov"substr(\$5,6,5)"\\n"\$3}' | fold > ${prefix}.contigs.fasta + + mpxv-AssemblyGraph_gfaPy.py \\ + -i $gfa_unzip \\ + -r "$projectDir/assets/MPXV-UK_P2.noN_39086_40204.fasta" \\ + -o . + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python3 --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/local/publish_contigs.nf b/modules/local/publish_contigs.nf new file mode 100755 index 0000000..6bf6322 --- /dev/null +++ b/modules/local/publish_contigs.nf @@ -0,0 +1,35 @@ +process PUBLISH_CONTIGS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bionumpy:0.2.17--pyha8f3691_0 ' : + 'quay.io/biocontainers/bionumpy' }" + + input: + tuple val(meta), path(assembly) + + output: + tuple val(meta), path("*draft.fa"), optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def draft_asm = "${meta.id}.draft.fa" + def contigs = "${meta.id}.contigs.fasta" + def assembly = "${meta.id}.final.fa" + """ + if [ ! -f $assembly ] + then cp $contigs $draft_asm + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python3 --version | sed 's/Python //g') + END_VERSIONS + """ +} + diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf new file mode 100755 index 0000000..2eb422d --- /dev/null +++ b/modules/local/samplesheet_check.nf @@ -0,0 +1,27 @@ +process SAMPLESHEET_CHECK { + tag "$samplesheet" + + conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/python:3.8.3' : + 'quay.io/biocontainers/python:3.8.3' }" + + input: + path samplesheet + + output: + path '*.csv' , emit: csv + path "versions.yml", emit: versions + + script: // This script is bundled with the pipeline, in polkapox/bin/ + """ + check_samplesheet.py \\ + $samplesheet \\ + samplesheet.valid.csv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/local/summarize_qc.nf b/modules/local/summarize_qc.nf new file mode 100755 index 0000000..00e58d9 --- /dev/null +++ b/modules/local/summarize_qc.nf @@ -0,0 +1,36 @@ +process SUMMARIZE_QC { + + conda (params.enable_conda ? "conda-forge::python=3.8.3 conda-forge::pandas" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/pandas:1.1.5' : + 'quay.io/biocontainers/pandas' }" + + input: + path summarize_qc_files + path samplesheet + + output: + path '*.tsv' , emit: tsv + path "versions.yml", emit: versions + + script: // This script is bundled with the pipeline, in polkapox/bin/ + def args = task.ext.args ?: '' + """ + summarize_qc.py \\ + --analysis_dir . \\ + --samplesheet $samplesheet \\ + --reference_genome ${params.fasta} \\ + --kraken_db ${params.kraken_db} \\ + --kraken_tax_ids ${params.kraken2_tax_ids} \\ + --filter ${params.filter} \\ + --workflow ${params.workflow} \\ + --coords ${params.coords} \\ + --locus1 ${params.locus1_name} \\ + --locus2 ${params.locus2_name} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/local/summarize_tsv.nf b/modules/local/summarize_tsv.nf new file mode 100755 index 0000000..7050470 --- /dev/null +++ b/modules/local/summarize_tsv.nf @@ -0,0 +1,46 @@ +process SUMMARIZE_TSV { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bionumpy:0.2.17--pyha8f3691_0 ' : + 'quay.io/biocontainers/bionumpy' }" + + input: + tuple val(meta), path(ivar_tsv) + tuple val(coord1_start), val(coord1_end), val(coord2_start), val(coord2_end) + val save_vars + + output: + tuple val(meta), path("*_ivar_summary.txt"), emit: vars + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def vars = save_vars ? "| tee ${prefix}_ivar_summary.txt" : "" + + """ + filter_tsv.py \\ + -t $ivar_tsv \\ + -s $meta.id \\ + -fs $coord1_start\\ + -fe $coord1_end\\ + -es $coord2_start\\ + -ee $coord2_end\\ + -af ${params.af_cutoff} \\ + -DP ${params.DP_cutoff} \\ + -AD ${params.altDP_cutoff} \\ + -aq ${params.altQ_cutoff} \\ + -r ${params.outdir} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python3 --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/local/variant_convert.nf b/modules/local/variant_convert.nf new file mode 100755 index 0000000..3dc76de --- /dev/null +++ b/modules/local/variant_convert.nf @@ -0,0 +1,36 @@ +process VARIANT_CONVERT { + tag "$meta.id" + label 'process_medium' + + container "${ workflow.containerEngine == 'singularity' && !task.ext. singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/python:3.8.3' : + 'quay.io/biocontainers/python:3.8.3' }" + + input: + tuple val(meta), path(tsv) + val(af_cutoff) + + output: + tuple val(meta), path("*.vcf"), emit: vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '-po ' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + ivar2vcf.py \\ + $args \\ + -af $af_cutoff \\ + $tsv \\ + ${prefix}.ivar.vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python3 --version | sed 's/Python //g') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/bwa/index/main.nf b/modules/nf-core/modules/bwa/index/main.nf new file mode 100755 index 0000000..3affbf1 --- /dev/null +++ b/modules/nf-core/modules/bwa/index/main.nf @@ -0,0 +1,35 @@ +process BWA_INDEX { + tag "$fasta" + label 'process_high' + + conda (params.enable_conda ? "bioconda::bwa=0.7.17" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' : + 'quay.io/biocontainers/bwa:0.7.17--hed695b0_7' }" + + input: + path fasta + + output: + path "bwa" , emit: index + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + mkdir bwa + bwa \\ + index \\ + $args \\ + -p bwa/${fasta.baseName} \\ + $fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/bwa/index/main_denovo.nf b/modules/nf-core/modules/bwa/index/main_denovo.nf new file mode 100755 index 0000000..0137166 --- /dev/null +++ b/modules/nf-core/modules/bwa/index/main_denovo.nf @@ -0,0 +1,35 @@ +process BWA_INDEX { + tag "$fasta" + label 'process_high' + + conda (params.enable_conda ? "bioconda::bwa=0.7.17" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' : + 'quay.io/biocontainers/bwa:0.7.17--hed695b0_7' }" + + input: + tuple val(meta), path(fasta) + + output: + path "bwa_index" , emit: index + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + mkdir bwa_index + bwa \\ + index \\ + $args \\ + -p bwa_index/${fasta.baseName} \\ + $fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/bwa/index/meta.yml b/modules/nf-core/modules/bwa/index/meta.yml new file mode 100755 index 0000000..2bbd81d --- /dev/null +++ b/modules/nf-core/modules/bwa/index/meta.yml @@ -0,0 +1,32 @@ +name: bwa_index +description: Create BWA index for reference genome +keywords: + - index + - fasta + - genome + - reference +tools: + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://www.htslib.org/doc/samtools.html + arxiv: arXiv:1303.3997 + licence: ["GPL-3.0-or-later"] +input: + - fasta: + type: file + description: Input genome fasta file +output: + - index: + type: file + description: BWA genome index files + pattern: "*.{amb,ann,bwt,pac,sa}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@maxulysse" diff --git a/modules/nf-core/modules/bwa/mem/main.nf b/modules/nf-core/modules/bwa/mem/main.nf new file mode 100755 index 0000000..29fe1e8 --- /dev/null +++ b/modules/nf-core/modules/bwa/mem/main.nf @@ -0,0 +1,46 @@ +process BWA_MEM { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' }" + + input: + tuple val(meta), path(reads) + path index + val sort_bam + + output: + tuple val(meta), path("*.bam"), emit: bam + tuple val(meta), path("*.bam"), path("*.bai"), emit: bambai + tuple val(meta), path("*.bai"), emit: bai + + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def samtools_command = sort_bam ? 'sort' : 'view' + """ + INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` + + bwa mem \\ + $args \\ + -t $task.cpus \\ + \$INDEX \\ + $reads \\ + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - && samtools index ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/bwa/mem/main_denovo.nf b/modules/nf-core/modules/bwa/mem/main_denovo.nf new file mode 100755 index 0000000..dd9bfdc --- /dev/null +++ b/modules/nf-core/modules/bwa/mem/main_denovo.nf @@ -0,0 +1,56 @@ +process BWA_MEM { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' }" + + input: + //tuple val(meta), path(reads) + //tuple val(meta), path(fasta) + //path index + tuple val(meta), path(fasta), path(reads) + val sort_bam + + output: + tuple val(meta), path("*.bam"), emit: bam + tuple val(meta), path("*.bam"), path("*.bai"), emit: bambai + tuple val(meta), path("*.bai"), emit: bai + + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def samtools_command = sort_bam ? 'sort' : 'view' + + """ + mkdir bwa_index + bwa \\ + index \\ + $args \\ + -p bwa_index/${fasta.baseName} \\ + $fasta + + INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` + + bwa mem \\ + $args \\ + -t $task.cpus \\ + \$INDEX \\ + $reads \\ + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - && samtools index ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/bwa/mem/meta.yml b/modules/nf-core/modules/bwa/mem/meta.yml new file mode 100755 index 0000000..f84c522 --- /dev/null +++ b/modules/nf-core/modules/bwa/mem/meta.yml @@ -0,0 +1,50 @@ +name: bwa_mem +description: Performs fastq alignment to a fasta reference using BWA +keywords: + - mem + - bwa + - alignment + - map + - fastq + - bam + - sam +tools: + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://www.htslib.org/doc/samtools.html + arxiv: arXiv:1303.3997 + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: file + description: BWA genome index files + pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}" + - sort_bam: + type: boolean + description: use samtools sort (true) or samtools view (false) + pattern: "true or false" +output: + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@jeremy1805" diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf new file mode 100755 index 0000000..327d510 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf @@ -0,0 +1,24 @@ +process CUSTOM_DUMPSOFTWAREVERSIONS { + label 'process_low' + + // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container + conda (params.enable_conda ? "bioconda::multiqc=1.11" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" + + input: + path versions + + output: + path "software_versions.yml" , emit: yml + path "software_versions_mqc.yml", emit: mqc_yml + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + template 'dumpsoftwareversions.py' +} diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml new file mode 100755 index 0000000..60b546a --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml @@ -0,0 +1,34 @@ +name: custom_dumpsoftwareversions +description: Custom module used to dump software versions within the nf-core pipeline template +keywords: + - custom + - version +tools: + - custom: + description: Custom module used to dump software versions within the nf-core pipeline template + homepage: https://github.com/nf-core/tools + documentation: https://github.com/nf-core/tools + licence: ["MIT"] +input: + - versions: + type: file + description: YML file containing software versions + pattern: "*.yml" + +output: + - yml: + type: file + description: Standard YML file containing software versions + pattern: "software_versions.yml" + - mqc_yml: + type: file + description: MultiQC custom content YML file containing software versions + pattern: "software_versions_mqc.yml" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@drpatelh" + - "@grst" diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py new file mode 100755 index 0000000..d139039 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python + +import yaml +import platform +from textwrap import dedent + + +def _make_versions_html(versions): + html = [ + dedent( + """\\ + + + + + + + + + + """ + ) + ] + for process, tmp_versions in sorted(versions.items()): + html.append("") + for i, (tool, version) in enumerate(sorted(tmp_versions.items())): + html.append( + dedent( + f"""\\ + + + + + + """ + ) + ) + html.append("") + html.append("
Process Name Software Version
{process if (i == 0) else ''}{tool}{version}
") + return "\\n".join(html) + + +versions_this_module = {} +versions_this_module["${task.process}"] = { + "python": platform.python_version(), + "yaml": yaml.__version__, +} + +with open("$versions") as f: + versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module + +# aggregate versions by the module name (derived from fully-qualified process name) +versions_by_module = {} +for process, process_versions in versions_by_process.items(): + module = process.split(":")[-1] + try: + assert versions_by_module[module] == process_versions, ( + "We assume that software versions are the same between all modules. " + "If you see this error-message it means you discovered an edge-case " + "and should open an issue in nf-core/tools. " + ) + except KeyError: + versions_by_module[module] = process_versions + +versions_by_module["Workflow"] = { + "Nextflow": "$workflow.nextflow.version", + "$workflow.manifest.name": "$workflow.manifest.version", +} + +versions_mqc = { + "id": "software_versions", + "section_name": "${workflow.manifest.name} Software Versions", + "section_href": "https://github.com/${workflow.manifest.name}", + "plot_type": "html", + "description": "are collected at run time from the software output.", + "data": _make_versions_html(versions_by_module), +} + +with open("software_versions.yml", "w") as f: + yaml.dump(versions_by_module, f, default_flow_style=False) +with open("software_versions_mqc.yml", "w") as f: + yaml.dump(versions_mqc, f, default_flow_style=False) + +with open("versions.yml", "w") as f: + yaml.dump(versions_this_module, f, default_flow_style=False) diff --git a/modules/nf-core/modules/fastp/main.nf b/modules/nf-core/modules/fastp/main.nf new file mode 100755 index 0000000..48c5505 --- /dev/null +++ b/modules/nf-core/modules/fastp/main.nf @@ -0,0 +1,77 @@ +process FASTP { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? 'bioconda::fastp=0.23.2' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/fastp:0.23.2--h79da9fb_0' : + 'quay.io/biocontainers/fastp:0.23.2--h79da9fb_0' }" + + input: + tuple val(meta), path(reads) + val save_trimmed_fail + val save_merged + + output: + tuple val(meta), path('*.fastp.fastq.gz') , optional:true, emit: reads + tuple val(meta), path('*.json') , emit: json + tuple val(meta), path('*.html') , emit: html + tuple val(meta), path('*.log') , emit: log + path "versions.yml" , emit: versions + tuple val(meta), path('*.fail.fastq.gz') , optional:true, emit: reads_fail + tuple val(meta), path('*.merged.fastq.gz'), optional:true, emit: reads_merged + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + // Added soft-links to original fastqs for consistent naming in MultiQC + def prefix = task.ext.prefix ?: "${meta.id}" + // Use single ended for interleaved. Add --interleaved_in in config. + if (meta.single_end) { + def fail_fastq = save_trimmed_fail ? "--failed_out ${prefix}.fail.fastq.gz" : '' + """ + [ ! -f ${prefix}.fastq.gz ] && ln -sf $reads ${prefix}.fastq.gz + fastp \\ + --in1 ${prefix}.fastq.gz \\ + --out1 ${prefix}.fastp.fastq.gz \\ + --thread $task.cpus \\ + --json ${prefix}.fastp.json \\ + --html ${prefix}.fastp.html \\ + $fail_fastq \\ + $args2 \\ + 2> ${prefix}.fastp.log + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastp: \$(fastp --version 2>&1 | sed -e "s/fastp //g") + END_VERSIONS + """ + } else { + def fail_fastq = save_trimmed_fail ? "--unpaired1 ${prefix}_1.fail.fastq.gz --unpaired2 ${prefix}_2.fail.fastq.gz" : '' + def merge_fastq = save_merged ? "-m --merged_out ${prefix}.merged.fastq.gz" : '' + """ + [ ! -f ${prefix}_1.fastq.gz ] && ln -sf ${reads[0]} ${prefix}_1.fastq.gz + [ ! -f ${prefix}_2.fastq.gz ] && ln -sf ${reads[1]} ${prefix}_2.fastq.gz + fastp \\ + --in1 ${prefix}_1.fastq.gz \\ + --in2 ${prefix}_2.fastq.gz \\ + --out1 ${prefix}_1.fastp.fastq.gz \\ + --out2 ${prefix}_2.fastp.fastq.gz \\ + --json ${prefix}.fastp.json \\ + --html ${prefix}.fastp.html \\ + $fail_fastq \\ + $merge_fastq \\ + --thread $task.cpus \\ + --detect_adapter_for_pe \\ + $args \\ + 2> ${prefix}.fastp.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastp: \$(fastp --version 2>&1 | sed -e "s/fastp //g") + END_VERSIONS + """ + } +} diff --git a/modules/nf-core/modules/fastp/meta.yml b/modules/nf-core/modules/fastp/meta.yml new file mode 100755 index 0000000..598c336 --- /dev/null +++ b/modules/nf-core/modules/fastp/meta.yml @@ -0,0 +1,68 @@ +name: fastp +description: Perform adapter/quality trimming on sequencing reads +keywords: + - trimming + - quality control + - fastq +tools: + - fastp: + description: | + A tool designed to provide fast all-in-one preprocessing for FastQ files. This tool is developed in C++ with multithreading supported to afford high performance. + documentation: https://github.com/OpenGene/fastp + doi: https://doi.org/10.1093/bioinformatics/bty560 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information. Use 'single_end: true' to specify single ended or interleaved FASTQs. Use 'single_end: false' for paired-end reads. + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - save_trimmed_fail: + type: boolean + description: Specify true to save files that failed to pass trimming thresholds ending in `*.fail.fastq.gz` + - save_merged: + type: boolean + description: Specify true to save all merged reads to the a file ending in `*.merged.fastq.gz` + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: The trimmed/modified/unmerged fastq reads + pattern: "*fastp.fastq.gz" + - json: + type: file + description: Results in JSON format + pattern: "*.json" + - html: + type: file + description: Results in HTML format + pattern: "*.html" + - log: + type: file + description: fastq log file + pattern: "*.log" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - reads_fail: + type: file + description: Reads the failed the preprocessing + pattern: "*fail.fastq.gz" + - reads_merged: + type: file + description: Reads that were successfully merged + pattern: "*.{merged.fastq.gz}" +authors: + - "@drpatelh" + - "@kevinmenden" diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/modules/fastqc/main.nf new file mode 100755 index 0000000..ed6b8c5 --- /dev/null +++ b/modules/nf-core/modules/fastqc/main.nf @@ -0,0 +1,47 @@ +process FASTQC { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : + 'quay.io/biocontainers/fastqc:0.11.9--0' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.html"), emit: html + tuple val(meta), path("*.zip") , emit: zip + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + // Add soft-links to original FastQs for consistent naming in pipeline + def prefix = task.ext.prefix ?: "${meta.id}" + if (meta.single_end) { + """ + [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz + fastqc $args --threads $task.cpus ${prefix}.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS + """ + } else { + """ + [ ! -f ${prefix}_1.fastq.gz ] && ln -s ${reads[0]} ${prefix}_1.fastq.gz + [ ! -f ${prefix}_2.fastq.gz ] && ln -s ${reads[1]} ${prefix}_2.fastq.gz + fastqc $args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS + """ + } +} diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml new file mode 100755 index 0000000..4da5bb5 --- /dev/null +++ b/modules/nf-core/modules/fastqc/meta.yml @@ -0,0 +1,52 @@ +name: fastqc +description: Run FastQC on sequenced reads +keywords: + - quality control + - qc + - adapters + - fastq +tools: + - fastqc: + description: | + FastQC gives general quality metrics about your reads. + It provides information about the quality score distribution + across your reads, the per base sequence content (%A/C/G/T). + You get information about adapter contamination and other + overrepresented sequences. + homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ + documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ + licence: ["GPL-2.0-only"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - html: + type: file + description: FastQC report + pattern: "*_{fastqc.html}" + - zip: + type: file + description: FastQC report archive + pattern: "*_{fastqc.zip}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/nf-core/modules/ivar/consensus/main.nf b/modules/nf-core/modules/ivar/consensus/main.nf new file mode 100755 index 0000000..cdb3f1a --- /dev/null +++ b/modules/nf-core/modules/ivar/consensus/main.nf @@ -0,0 +1,47 @@ +process IVAR_CONSENSUS { + tag "$meta.id" + label 'process_medium' + errorStrategy 'ignore' + + conda (params.enable_conda ? "bioconda::ivar=1.3.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ivar:1.3.1--h089eab3_0' : + 'quay.io/biocontainers/ivar:1.3.1--h089eab3_0' }" + + input: + tuple val(meta), path(bam) + path fasta + val save_mpileup + + output: + tuple val(meta), path("*.fa") , emit: fasta + tuple val(meta), path("*.mpileup") , optional:true, emit: mpileup + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}." + task.ext.aligner + def mpileup = save_mpileup ? "| tee ${prefix}.mpileup" : "" + """ + samtools \\ + mpileup \\ + --reference $fasta \\ + $args \\ + $bam \\ + $mpileup \\ + | ivar \\ + consensus \\ + $args2 \\ + -p $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ivar: \$(echo \$(ivar version 2>&1) | sed 's/^.*iVar version //; s/ .*\$//') + END_VERSIONS + """ +} + diff --git a/modules/nf-core/modules/ivar/consensus/main_denovo.nf b/modules/nf-core/modules/ivar/consensus/main_denovo.nf new file mode 100755 index 0000000..16d8756 --- /dev/null +++ b/modules/nf-core/modules/ivar/consensus/main_denovo.nf @@ -0,0 +1,46 @@ +process IVAR_CONSENSUS { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::ivar=1.3.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ivar:1.3.1--h089eab3_0' : + 'quay.io/biocontainers/ivar:1.3.1--h089eab3_0' }" + + input: + tuple val(meta), path(bam), path(fasta) + val save_mpileup + + output: + tuple val(meta), path("*.fa") , emit: fasta + tuple val(meta), path("*.mpileup") , optional:true, emit: mpileup + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}.final" + def mpileup = save_mpileup ? "| tee ${prefix}.mpileup" : "" + """ + samtools \\ + mpileup \\ + --reference $fasta \\ + $args \\ + $bam \\ + $mpileup \\ + | ivar \\ + consensus \\ + $args2 \\ + -p $prefix + + sed -i 's/Consensus_//;s/^\\(N\\)\\{1,\\}//g;s/\\(N\\)\\{1,\\}\$//g' ${meta.id}.final.fa; + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ivar: \$(echo \$(ivar version 2>&1) | sed 's/^.*iVar version //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/ivar/consensus/meta.yml b/modules/nf-core/modules/ivar/consensus/meta.yml new file mode 100755 index 0000000..fb56260 --- /dev/null +++ b/modules/nf-core/modules/ivar/consensus/meta.yml @@ -0,0 +1,56 @@ +name: ivar_consensus +description: Generate a consensus sequence from a BAM file using iVar +keywords: + - amplicon sequencing + - consensus + - fasta +tools: + - ivar: + description: | + iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. + homepage: https://github.com/andersen-lab/ivar + documentation: https://andersen-lab.github.io/ivar/html/manualpage.html + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: A sorted (with samtools sort) and trimmed (with iVar trim) bam file + pattern: "*.bam" + - fasta: + type: file + description: The reference sequence used for mapping and generating the BAM file + pattern: "*.fa" + - save_mpileup: + type: boolean + description: Save mpileup file generated by ivar consensus + patter: "*.mpileup" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: iVar generated consensus sequence + pattern: "*.fa" + - qual: + type: file + description: iVar generated quality file + pattern: "*.qual.txt" + - mpileup: + type: file + description: mpileup output from samtools mpileup [OPTIONAL] + pattern: "*.mpileup" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@andersgs" + - "@drpatelh" diff --git a/modules/nf-core/modules/ivar/variants/main.nf b/modules/nf-core/modules/ivar/variants/main.nf new file mode 100755 index 0000000..9732a68 --- /dev/null +++ b/modules/nf-core/modules/ivar/variants/main.nf @@ -0,0 +1,48 @@ +process IVAR_VARIANTS { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::ivar=1.3.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ivar:1.3.1--h089eab3_0' : + 'quay.io/biocontainers/ivar:1.3.1--h089eab3_0' }" + + input: + tuple val(meta), path(bam) + val save_tsv + + output: + tuple val(meta), path("*.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}." + task.ext.caller + def tsv = save_tsv ? "| tee ${prefix}.tsv" : "" + + """ + samtools \\ + mpileup \\ + --reference ${params.fasta} \\ + $args \\ + $bam \\ + | ivar \\ + variants \\ + $args2 \\ + -m ${params.DP_cutoff} \\ + -t ${params.af_cutoff} \\ + -r ${params.fasta} \\ + -g ${params.gff} \\ + -p $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ivar: \$(echo \$(ivar version 2>&1) | sed 's/^.*iVar version //; s/ .*\$//') + END_VERSIONS + """ + +} diff --git a/modules/nf-core/modules/ivar/variants/meta.yml b/modules/nf-core/modules/ivar/variants/meta.yml new file mode 100755 index 0000000..4d09e44 --- /dev/null +++ b/modules/nf-core/modules/ivar/variants/meta.yml @@ -0,0 +1,60 @@ +name: ivar_variants +description: Call variants from a BAM file using iVar +keywords: + - amplicon sequencing + - variants + - fasta +tools: + - ivar: + description: | + iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. + homepage: https://github.com/andersen-lab/ivar + documentation: https://andersen-lab.github.io/ivar/html/manualpage.html + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: A sorted (with samtools sort) and trimmed (with iVar trim) bam file + pattern: "*.bam" + - fasta: + type: file + description: The reference sequence used for mapping and generating the BAM file + pattern: "*.fa" + - fai: + type: file + description: The index for the reference sequence used for mapping and generating the BAM file + pattern: "*.fai" + - gff: + type: file + description: A GFF file in the GFF3 format can be supplied to specify coordinates of open reading frames (ORFs). In absence of GFF file, amino acid translation will not be done. + patter: "*.gff" + - save_mpileup: + type: boolean + description: Save mpileup file generated by ivar variants + patter: "*.mpileup" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tsv: + type: file + description: iVar generated TSV file with the variants + pattern: "*.tsv" + - mpileup: + type: file + description: mpileup output from samtools mpileup [OPTIONAL] + pattern: "*.mpileup" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@andersgs" + - "@drpatelh" diff --git a/modules/nf-core/modules/kraken2/kraken2/main.nf b/modules/nf-core/modules/kraken2/kraken2/main.nf new file mode 100755 index 0000000..3c4ee2a --- /dev/null +++ b/modules/nf-core/modules/kraken2/kraken2/main.nf @@ -0,0 +1,59 @@ +process KRAKEN2_KRAKEN2 { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? 'bioconda::kraken2=2.1.2 conda-forge::pigz=2.6' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-5799ab18b5fc681e75923b2450abaa969907ec98:87fc08d11968d081f3e8a37131c1f1f6715b6542-0' : + 'quay.io/biocontainers/mulled-v2-5799ab18b5fc681e75923b2450abaa969907ec98:87fc08d11968d081f3e8a37131c1f1f6715b6542-0' }" + + input: + tuple val(meta), path(reads) + path db + val save_output_fastqs_classified + val save_output_fastqs_unclassified + val save_reads_assignment + + output: + tuple val(meta), path('*.classified*fastq.gz') , optional:true, emit: classified_reads_fastq + tuple val(meta), path('*unclassified*fastq.gz') , optional:true, emit: unclassified_reads_fastq + tuple val(meta), path('*classifiedreads*'), optional:true, emit: classified_reads_assignment + tuple val(meta), path('*report.txt') , emit: report + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def paired = meta.single_end ? "" : "--paired" + def classified = meta.single_end ? "${prefix}.classified.fastq" : "${prefix}.classified#.fastq" + def unclassified = meta.single_end ? "${prefix}.unclassified.fastq" : "${prefix}.unclassified#.fastq" + def classified_command = save_output_fastqs_classified ? "--classified-out ${classified}" : "" + def unclassified_command = save_output_fastqs_unclassified ? "--unclassified-out ${unclassified}" : "" + def readclassification_command = save_reads_assignment ? "--output ${prefix}.kraken2.classifiedreads.txt" : "" + def compress_reads_command = (save_output_fastqs_classified || save_output_fastqs_unclassified) ? "pigz -p $task.cpus *.fastq" : "" + + """ + kraken2 \\ + --db $db \\ + --threads $task.cpus \\ + --report ${prefix}.kraken2.report.txt \\ + --gzip-compressed \\ + $unclassified_command \\ + $classified_command \\ + $readclassification_command \\ + $paired \\ + $args \\ + $reads + + $compress_reads_command + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + kraken2: \$(echo \$(kraken2 --version 2>&1) | sed 's/^.*Kraken version //; s/ .*\$//') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/kraken2/kraken2/meta.yml b/modules/nf-core/modules/kraken2/kraken2/meta.yml new file mode 100755 index 0000000..7129fe3 --- /dev/null +++ b/modules/nf-core/modules/kraken2/kraken2/meta.yml @@ -0,0 +1,75 @@ +name: kraken2_kraken2 +description: Classifies metagenomic sequence data +keywords: + - classify + - metagenomics + - fastq + - db +tools: + - kraken2: + description: | + Kraken2 is a taxonomic sequence classifier that assigns taxonomic labels to sequence reads + homepage: https://ccb.jhu.edu/software/kraken2/ + documentation: https://github.com/DerrickWood/kraken2/wiki/Manual + doi: 10.1186/s13059-019-1891-0 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - db: + type: directory + description: Kraken2 database + - save_output_fastqs: + type: boolean + description: | + If true, optional commands are added to save classified and unclassified reads + as fastq files + - save_reads_assignment: + type: boolean + description: | + If true, an optional command is added to save a file reporting the taxonomic + classification of each input read +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - classified_reads_fastq: + type: file + description: | + Reads classified as belonging to any of the taxa + on the Kraken2 database. + pattern: "*{fastq.gz}" + - unclassified_reads_fastq: + type: file + description: | + Reads not classified to any of the taxa + on the Kraken2 database. + pattern: "*{fastq.gz}" + - classified_reads_assignment: + type: file + description: | + Kraken2 output file indicating the taxonomic assignment of + each input read + - report: + type: file + description: | + Kraken2 report containing stats about classified + and not classifed reads. + pattern: "*.{report.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/modules/multiqc/main.nf new file mode 100755 index 0000000..1264aac --- /dev/null +++ b/modules/nf-core/modules/multiqc/main.nf @@ -0,0 +1,31 @@ +process MULTIQC { + label 'process_medium' + + conda (params.enable_conda ? 'bioconda::multiqc=1.12' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.12--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" + + input: + path multiqc_files + + output: + path "*multiqc_report.html", emit: report + path "*_data" , emit: data + path "*_plots" , optional:true, emit: plots + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + multiqc -f $args . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/multiqc/meta.yml b/modules/nf-core/modules/multiqc/meta.yml new file mode 100755 index 0000000..6fa891e --- /dev/null +++ b/modules/nf-core/modules/multiqc/meta.yml @@ -0,0 +1,40 @@ +name: MultiQC +description: Aggregate results from bioinformatics analyses across many samples into a single report +keywords: + - QC + - bioinformatics tools + - Beautiful stand-alone HTML report +tools: + - multiqc: + description: | + MultiQC searches a given directory for analysis logs and compiles a HTML report. + It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. + homepage: https://multiqc.info/ + documentation: https://multiqc.info/docs/ + licence: ["GPL-3.0-or-later"] +input: + - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC +output: + - report: + type: file + description: MultiQC report file + pattern: "multiqc_report.html" + - data: + type: dir + description: MultiQC data dir + pattern: "multiqc_data" + - plots: + type: file + description: Plots created by MultiQC + pattern: "*_data" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@abhi18av" + - "@bunop" + - "@drpatelh" diff --git a/modules/nf-core/modules/mummer/main.nf b/modules/nf-core/modules/mummer/main.nf new file mode 100755 index 0000000..d234c43 --- /dev/null +++ b/modules/nf-core/modules/mummer/main.nf @@ -0,0 +1,47 @@ +process MUMMER { + tag "$meta.id" + label 'process_low' + + // WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions. + conda (params.enable_conda ? "bioconda::mummer=3.23" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mummer:3.23--pl5262h1b792b2_12' : + 'quay.io/biocontainers/mummer:3.23--pl5262h1b792b2_12' }" + + input: + tuple val(meta), path(ref), path(query) + + output: + tuple val(meta), path("*.report"), emit: summary + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def is_compressed_ref = ref.getName().endsWith(".gz") ? true : false + def fasta_name_ref = ref.getName().replace(".gz", "") + + def is_compressed_query = query.getName().endsWith(".gz") ? true : false + def fasta_name_query = query.getName().replace(".gz", "") + def VERSION = '3.23' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + if [ "$is_compressed_ref" == "true" ]; then + gzip -c -d $ref > $fasta_name_ref + fi + if [ "$is_compressed_query" == "true" ]; then + gzip -c -d $query > $fasta_name_query + fi + dnadiff \\ + -p ${prefix} \\ + $fasta_name_ref \\ + $fasta_name_query + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + mummer: $VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/mummer/meta.yml b/modules/nf-core/modules/mummer/meta.yml new file mode 100755 index 0000000..f03d483 --- /dev/null +++ b/modules/nf-core/modules/mummer/meta.yml @@ -0,0 +1,48 @@ +name: mummer +description: MUMmer is a system for rapidly aligning entire genomes +keywords: + - align + - genome + - fasta +tools: + - mummer: + description: MUMmer is a system for rapidly aligning entire genomes + homepage: http://mummer.sourceforge.net/ + documentation: http://mummer.sourceforge.net/ + tool_dev_url: http://mummer.sourceforge.net/ + doi: 10.1186/gb-2004-5-2-r12 + licence: ["The Artistic License"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ref: + type: file + description: FASTA file of the reference sequence + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz}" + - query: + type: file + description: FASTA file of the query sequence + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - coords: + type: file + description: File containing coordinates of matches between reference and query sequence + pattern: "*.coords" + +authors: + - "@mjcipriano" + - "@sateeshperi" diff --git a/modules/nf-core/modules/quast/main.nf b/modules/nf-core/modules/quast/main.nf new file mode 100755 index 0000000..5102c40 --- /dev/null +++ b/modules/nf-core/modules/quast/main.nf @@ -0,0 +1,43 @@ +process QUAST { + label 'process_medium' + + conda (params.enable_conda ? 'bioconda::quast=5.2.0' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/quast:5.2.0--py39pl5321h2add14b_1' : + 'quay.io/biocontainers/quast:5.2.0--py39pl5321h2add14b_1' }" + + input: + path scaffolds + val use_fasta + val use_gff + + output: + path "${prefix}" , emit: results + path '*.tsv' , emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: 'quast' + def features = use_gff ? "--features ${params.gff}" : '' + def reference = use_fasta ? "-r ${params.fasta}" : '' + """ + quast.py \\ + --output-dir $prefix \\ + $reference \\ + $features \\ + --threads $task.cpus \\ + $args \\ + ${scaffolds.join(' ')} + + ln -s ${prefix}/report.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + quast: \$(quast.py --version 2>&1 | sed 's/^.*QUAST v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/quast/meta.yml b/modules/nf-core/modules/quast/meta.yml new file mode 100755 index 0000000..f4bc38f --- /dev/null +++ b/modules/nf-core/modules/quast/meta.yml @@ -0,0 +1,47 @@ +name: quast +description: Quality Assessment Tool for Genome Assemblies +keywords: + - quast + - assembly + - quality +tools: + - quast: + description: | + QUAST calculates quality metrics for genome assemblies + homepage: http://bioinf.spbau.ru/quast + doi: https://doi.org/10.1093/bioinformatics/btt086 + licence: ["GPL-2.0-only"] +input: + - consensus: + type: file + description: | + Fasta file containing the assembly of interest + - fasta: + type: file + description: | + The genome assembly to be evaluated. Has to contain at least a non-empty string dummy value. + - use_fasta: + type: boolean + description: Whether to use the provided fasta reference genome file + - gff: + type: file + description: The genome GFF file. Has to contain at least a non-empty string dummy value. + - use_gff: + type: boolean + description: Whether to use the provided gff reference annotation file + +output: + - quast: + type: directory + description: Directory containing complete quast report + pattern: "{prefix}.lineage_report.csv" + - report: + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@drpatelh" + - "@kevinmenden" diff --git a/modules/nf-core/modules/samtools/depth/main.nf b/modules/nf-core/modules/samtools/depth/main.nf new file mode 100755 index 0000000..aae950d --- /dev/null +++ b/modules/nf-core/modules/samtools/depth/main.nf @@ -0,0 +1,35 @@ +process SAMTOOLS_DEPTH { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + samtools \\ + depth \\ + $args \\ + -o ${prefix}.depth.tsv \\ + $bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/samtools/depth/meta.yml b/modules/nf-core/modules/samtools/depth/meta.yml new file mode 100755 index 0000000..861b04f --- /dev/null +++ b/modules/nf-core/modules/samtools/depth/meta.yml @@ -0,0 +1,44 @@ +name: samtools_depth +description: Computes the depth at each position or region. +keywords: + - depth + - samtools + - statistics + - coverage +tools: + - samtools: + description: Tools for dealing with SAM, BAM and CRAM files; samtools depth – computes the read depth at each position or region + homepage: http://www.htslib.org + documentation: http://www.htslib.org/doc/samtools-depth.html + tool_dev_url: https://github.com/samtools/samtools + doi: "10.1093/bioinformatics/btp352" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: The output of samtools depth has three columns - the name of the contig or chromosome, the position and the number of reads aligned at that position + pattern: "*.{tsv}" + +authors: + - "@louperelo" diff --git a/modules/nf-core/modules/samtools/flagstat/main.denovo.nf b/modules/nf-core/modules/samtools/flagstat/main.denovo.nf new file mode 100755 index 0000000..7515e15 --- /dev/null +++ b/modules/nf-core/modules/samtools/flagstat/main.denovo.nf @@ -0,0 +1,35 @@ +process SAMTOOLS_FLAGSTAT { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(bam), path(bai) + + output: + tuple val(meta), path("*.flagstat"), emit: flagstat + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + samtools \\ + flagstat \\ + --threads ${task.cpus-1} \\ + $bam \\ + > ${prefix}.denovo.flagstat + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/samtools/flagstat/main.nf b/modules/nf-core/modules/samtools/flagstat/main.nf new file mode 100755 index 0000000..03ec2dc --- /dev/null +++ b/modules/nf-core/modules/samtools/flagstat/main.nf @@ -0,0 +1,35 @@ +process SAMTOOLS_FLAGSTAT { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(bam), path(bai) + + output: + tuple val(meta), path("*.flagstat"), emit: flagstat + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + samtools \\ + flagstat \\ + --threads ${task.cpus-1} \\ + $bam \\ + > ${prefix}.flagstat + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/samtools/flagstat/meta.yml b/modules/nf-core/modules/samtools/flagstat/meta.yml new file mode 100755 index 0000000..9526906 --- /dev/null +++ b/modules/nf-core/modules/samtools/flagstat/meta.yml @@ -0,0 +1,49 @@ +name: samtools_flagstat +description: Counts the number of alignments in a BAM/CRAM/SAM file for each FLAG type +keywords: + - stats + - mapping + - counts + - bam + - sam + - cram +tools: + - samtools: + description: | + SAMtools is a set of utilities for interacting with and post-processing + short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. + These files are generated as output by short read aligners like BWA. + homepage: http://www.htslib.org/ + documentation: hhttp://www.htslib.org/doc/samtools.html + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - bai: + type: file + description: Index for BAM/CRAM/SAM file + pattern: "*.{bai,crai,sai}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - flagstat: + type: file + description: File containing samtools flagstat output + pattern: "*.{flagstat}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" diff --git a/modules/nf-core/modules/samtools/index/main.nf b/modules/nf-core/modules/samtools/index/main.nf new file mode 100755 index 0000000..e04e63e --- /dev/null +++ b/modules/nf-core/modules/samtools/index/main.nf @@ -0,0 +1,48 @@ +process SAMTOOLS_INDEX { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(input) + + output: + tuple val(meta), path("*.bai") , optional:true, emit: bai + tuple val(meta), path("*.csi") , optional:true, emit: csi + tuple val(meta), path("*.crai"), optional:true, emit: crai + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + samtools \\ + index \\ + -@ ${task.cpus-1} \\ + $args \\ + $input + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + """ + touch ${input}.bai + touch ${input}.crai + touch ${input}.csi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/samtools/index/meta.yml b/modules/nf-core/modules/samtools/index/meta.yml new file mode 100755 index 0000000..e5cadbc --- /dev/null +++ b/modules/nf-core/modules/samtools/index/meta.yml @@ -0,0 +1,53 @@ +name: samtools_index +description: Index SAM/BAM/CRAM file +keywords: + - index + - bam + - sam + - cram +tools: + - samtools: + description: | + SAMtools is a set of utilities for interacting with and post-processing + short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. + These files are generated as output by short read aligners like BWA. + homepage: http://www.htslib.org/ + documentation: hhttp://www.htslib.org/doc/samtools.html + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bai: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - crai: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - csi: + type: file + description: CSI index file + pattern: "*.{csi}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@ewels" + - "@maxulysse" diff --git a/modules/nf-core/modules/samtools/sort/main.nf b/modules/nf-core/modules/samtools/sort/main.nf new file mode 100755 index 0000000..e212b76 --- /dev/null +++ b/modules/nf-core/modules/samtools/sort/main.nf @@ -0,0 +1,42 @@ +process SAMTOOLS_SORT { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + ".sorted" + if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + samtools sort $args -@ $task.cpus -o ${prefix}.bam -T $prefix $bam + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/samtools/sort/meta.yml b/modules/nf-core/modules/samtools/sort/meta.yml new file mode 100755 index 0000000..a820c55 --- /dev/null +++ b/modules/nf-core/modules/samtools/sort/meta.yml @@ -0,0 +1,44 @@ +name: samtools_sort +description: Sort SAM/BAM/CRAM file +keywords: + - sort + - bam + - sam + - cram +tools: + - samtools: + description: | + SAMtools is a set of utilities for interacting with and post-processing + short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. + These files are generated as output by short read aligners like BWA. + homepage: http://www.htslib.org/ + documentation: hhttp://www.htslib.org/doc/samtools.html + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@drpatelh" + - "@ewels" diff --git a/modules/nf-core/modules/seqtk/subseq/main.nf b/modules/nf-core/modules/seqtk/subseq/main.nf new file mode 100755 index 0000000..bb61630 --- /dev/null +++ b/modules/nf-core/modules/seqtk/subseq/main.nf @@ -0,0 +1,54 @@ +process SEQTK_SUBSEQ { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::seqtk=1.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqtk:1.3--h5bf99c6_3' : + 'quay.io/biocontainers/seqtk:1.3--h5bf99c6_3' }" + + input: + tuple val(meta), path(reads) + tuple val(meta), path(classifiedreads) + + output: + tuple val(meta), path('*.fq.gz') , emit: reads + path "versions.yml" , emit: versions + tuple val(meta), path('*.opxreads.txt') , emit: opxv_reads + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def ext = "fa" + if ("$reads" ==~ /.+\.fq|.+\.fq.gz|.+\.fastq|.+\.fastq.gz/) { + ext = "fq" + } + """ + awk 'NR==FNR { tax_ids[\$1]++; next} \$3 in tax_ids{print \$2}' ${params.kraken2_tax_ids} ${classifiedreads} > ${prefix}.opxreads.txt + + seqtk \ + subseq \ + $args \ + ${reads[0]} \ + ${prefix}.opxreads.txt | \ + gzip --no-name > ${prefix}_1.${ext}.gz + + if [ "${meta.single_end}" == "false" ] + then + seqtk \ + subseq \ + $args \ + ${reads[1]} \ + ${prefix}.opxreads.txt | \ + gzip --no-name > ${prefix}_2.${ext}.gz + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/seqtk/subseq/meta.yml b/modules/nf-core/modules/seqtk/subseq/meta.yml new file mode 100755 index 0000000..d06efb5 --- /dev/null +++ b/modules/nf-core/modules/seqtk/subseq/meta.yml @@ -0,0 +1,34 @@ +name: seqtk_subseq +description: Select only sequences that match the filtering condition +keywords: + - filtering,selection +tools: + - seqtk: + description: Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format + homepage: https://github.com/lh3/seqtk + documentation: https://docs.csc.fi/apps/seqtk/ + tool_dev_url: https://github.com/lh3/seqtk + licence: ["MIT"] + +input: + - sequences: + type: file + description: FASTQ/FASTA file + pattern: "*.{fq,fq.gz,fa,fa.gz}" + - filter_list: + type: file + description: BED file or a text file with a list of sequence names + pattern: "*.{bed,lst}" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - sequences: + type: file + description: FASTQ/FASTA file + pattern: "*.{fq.gz,fa.gz}" + +authors: + - "@sidorov-si" diff --git a/modules/nf-core/modules/unicycler/main.nf b/modules/nf-core/modules/unicycler/main.nf new file mode 100755 index 0000000..9969d29 --- /dev/null +++ b/modules/nf-core/modules/unicycler/main.nf @@ -0,0 +1,44 @@ +process UNICYCLER { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? 'bioconda::unicycler=0.4.8' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/unicycler:0.4.8--py38h8162308_3' : + 'quay.io/biocontainers/unicycler:0.4.8--py38h8162308_3' }" + + input: + tuple val(meta), path(shortreads) + + output: + tuple val(meta), path('*.scaffolds.fa.gz'), emit: scaffolds optional true + tuple val(meta), path('*.assembly.gfa.gz'), emit: gfa optional true + tuple val(meta), path('*.log') , emit: log + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def short_reads = shortreads ? ( meta.single_end ? "-s $shortreads" : "-1 ${shortreads[0]} -2 ${shortreads[1]}" ) : "" + """ + unicycler \\ + --threads $task.cpus \\ + $args \\ + $short_reads \\ + --out ./ + + mv unicycler.log ${prefix}.unicycler.log + mv assembly.fasta ${prefix}.scaffolds.fa + gzip -n ${prefix}.scaffolds.fa + mv assembly.gfa ${prefix}.assembly.gfa + gzip -n ${prefix}.assembly.gfa + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + unicycler: \$(echo \$(unicycler --version 2>&1) | sed 's/^.*Unicycler v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/unicycler/meta.yml b/modules/nf-core/modules/unicycler/meta.yml new file mode 100755 index 0000000..918faaf --- /dev/null +++ b/modules/nf-core/modules/unicycler/meta.yml @@ -0,0 +1,60 @@ +name: unicycler +description: Assembles bacterial genomes +keywords: + - genome + - assembly + - genome assembler + - small genome +tools: + - unicycler: + description: Hybrid assembly pipeline for bacterial genomes + homepage: https://github.com/rrwick/Unicycler + documentation: https://github.com/rrwick/Unicycler + tool_dev_url: https://github.com/rrwick/Unicycler + doi: 10.1371/journal.pcbi.1005595 + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - shortreads: + type: file + description: | + List of input Illumina FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - longreads: + type: file + description: | + List of input FastQ files of size 1, PacBio or Nanopore long reads. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - scaffolds: + type: file + description: Fasta file containing scaffolds + pattern: "*.{scaffolds.fa.gz}" + - gfa: + type: file + description: gfa file containing assembly + pattern: "*.{assembly.gfa.gz}" + - log: + type: file + description: unicycler log file + pattern: "*.{log}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@JoseEspinosa" + - "@drpatelh" + - "@d4straub" diff --git a/modules/nf-core/modules/vcftools/.gitkeep b/modules/nf-core/modules/vcftools/.gitkeep new file mode 100755 index 0000000..e69de29 diff --git a/modules/nf-core/modules/vcftools/main.nf b/modules/nf-core/modules/vcftools/main.nf new file mode 100755 index 0000000..846f219 --- /dev/null +++ b/modules/nf-core/modules/vcftools/main.nf @@ -0,0 +1,50 @@ +process VCFTOOLS { + tag "$meta.id" + label 'process_single' + + conda (params.enable_conda ? "bioconda::vcftools=0.1.16" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/vcftools:0.1.16--he513fc3_4' : + 'quay.io/biocontainers/vcftools:0.1.16--he513fc3_4' }" + + input: + tuple val(meta), path(variant_file) + + output: + tuple val(meta), path("*.vcf"), emit: vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}." + task.ext.caller + def args_list = args.tokenize() + + def input_file = ("$variant_file".endsWith(".vcf")) ? "--vcf ${variant_file}" : + ("$variant_file".endsWith(".vcf.gz")) ? "--gzvcf ${variant_file}" : + ("$variant_file".endsWith(".bcf")) ? "--bcf ${variant_file}" : '' + def bed_arg = (args.contains('--bed')) ? "--bed ${bed}" : + (args.contains('--exclude-bed')) ? "--exclude-bed ${bed}" : + (args.contains('--hapcount')) ? "--hapcount ${bed}" : '' + args_list.removeIf { it.contains('--bed') } + args_list.removeIf { it.contains('--exclude-bed') } + args_list.removeIf { it.contains('--hapcount') } + + """ + vcftools \\ + $input_file \\ + --bed "$projectDir/assets/MPXV-UK_P2.noN_drugres.bed" \\ + --recode \\ + --out $prefix \\ + --recode-INFO-all + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vcftools: \$(echo \$(vcftools --version 2>&1) | sed 's/^.*VCFtools (//;s/).*//') + END_VERSIONS + """ +} + + diff --git a/modules/nf-core/modules/vcftools/meta.yml b/modules/nf-core/modules/vcftools/meta.yml new file mode 100755 index 0000000..7a85bde --- /dev/null +++ b/modules/nf-core/modules/vcftools/meta.yml @@ -0,0 +1,294 @@ +name: vcftools +description: A set of tools written in Perl and C++ for working with VCF files +keywords: VCF + - sort +tools: + - vcftools: + description: A set of tools written in Perl and C++ for working with VCF files. This package only contains the C++ libraries whereas the package perl-vcftools-vcf contains the perl libraries + homepage: http://vcftools.sourceforge.net/ + documentation: http://vcftools.sourceforge.net/man_latest.html + tool_dev_url: None + doi: + licence: ["LGPL"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - variant_file: + type: file + description: variant input file which can be vcf, vcf.gz, or bcf format. + - bed: + type: file + description: bed file which can be used with different arguments in vcftools (optional) + - diff_variant_file: + type: file + description: secondary variant file which can be used with the 'diff' suite of tools (optional) + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: vcf file (optional) + pattern: "*.vcf" + - bcf: + type: file + description: bcf file (optional) + pattern: "*.bcf" + - frq: + type: file + description: Allele frequency for each site (optional) + pattern: "*.frq" + - frq_count: + type: file + description: Allele counts for each site (optional) + pattern: "*.frq.count" + - idepth: + type: file + description: mean depth per individual (optional) + pattern: "*.idepth" + - ldepth: + type: file + description: depth per site summed across individuals (optional) + pattern: "*.ildepth" + - ldepth_mean: + type: file + description: mean depth per site calculated across individuals (optional) + pattern: "*.ldepth.mean" + - gdepth: + type: file + description: depth for each genotype in vcf file (optional) + pattern: "*.gdepth" + - hap_ld: + type: file + description: r2, D, and D’ statistics using phased haplotypes (optional) + pattern: "*.hap.ld" + - geno_ld: + type: file + description: squared correlation coefficient between genotypes encoded as 0, 1 and 2 to represent the number of non-reference alleles in each individual (optional) + pattern: "*.geno.ld" + - geno_chisq: + type: file + description: test for genotype independence via the chi-squared statistic (optional) + pattern: "*.geno.chisq" + - list_hap_ld: + type: file + description: r2 statistics of the sites contained in the provided input file verses all other sites (optional) + pattern: "*.list.hap.ld" + - list_geno_ld: + type: file + description: r2 statistics of the sites contained in the provided input file verses all other sites (optional) + pattern: "*.list.geno.ld" + - interchrom_hap_ld: + type: file + description: r2 statistics for sites (haplotypes) on different chromosomes (optional) + pattern: "*.interchrom.hap.ld" + - interchrom_geno_ld: + type: file + description: r2 statistics for sites (genotypes) on different chromosomes (optional) + pattern: "*.interchrom.geno.ld" + - tstv: + type: file + description: Transition / Transversion ratio in bins of size defined in options (optional) + pattern: "*.TsTv" + - tstv_summary: + type: file + description: Summary of all Transitions and Transversions (optional) + pattern: "*.TsTv.summary" + - tstv_count: + type: file + description: Transition / Transversion ratio as a function of alternative allele count (optional) + pattern: "*.TsTv.count" + - tstv_qual: + type: file + description: Transition / Transversion ratio as a function of SNP quality threshold (optional) + pattern: "*.TsTv.qual" + - filter_summary: + type: file + description: Summary of the number of SNPs and Ts/Tv ratio for each FILTER category (optional) + pattern: "*.FILTER.summary" + - sites_pi: + type: file + description: Nucleotide divergency on a per-site basis (optional) + pattern: "*.sites.pi" + - windowed_pi: + type: file + description: Nucleotide diversity in windows, with window size determined by options (optional) + pattern: "*windowed.pi" + - weir_fst: + type: file + description: Fst estimate from Weir and Cockerham’s 1984 paper (optional) + pattern: "*.weir.fst" + - heterozygosity: + type: file + description: Heterozygosity on a per-individual basis (optional) + pattern: "*.het" + - hwe: + type: file + description: Contains the Observed numbers of Homozygotes and Heterozygotes and the corresponding Expected numbers under HWE (optional) + pattern: "*.hwe" + - tajima_d: + type: file + description: Tajima’s D statistic in bins with size of the specified number in options (optional) + pattern: "*.Tajima.D" + - freq_burden: + type: file + description: Number of variants within each individual of a specific frequency in options (optional) + pattern: "*.ifreqburden" + - lroh: + type: file + description: Long Runs of Homozygosity (optional) + pattern: "*.LROH" + - relatedness: + type: file + description: Relatedness statistic based on the method of Yang et al, Nature Genetics 2010 (doi:10.1038/ng.608) (optional) + pattern: "*.relatedness" + - relatedness2: + type: file + description: Relatedness statistic based on the method of Manichaikul et al., BIOINFORMATICS 2010 (doi:10.1093/bioinformatics/btq559) (optional) + pattern: "*.relatedness2" + - lqual: + type: file + description: per-site SNP quality (optional) + pattern: "*.lqual" + - missing_individual: + type: file + description: Missingness on a per-individual basis (optional) + pattern: "*.imiss" + - missing_site: + type: file + description: Missingness on a per-site basis (optional) + pattern: "*.lmiss" + - snp_density: + type: file + description: Number and density of SNPs in bins of size defined by option (optional) + pattern: "*.snpden" + - kept_sites: + type: file + description: All sites that have been kept after filtering (optional) + pattern: "*.kept.sites" + - removed_sites: + type: file + description: All sites that have been removed after filtering (optional) + pattern: "*.removed.sites" + - singeltons: + type: file + description: Location of singletons, and the individual they occur in (optional) + pattern: "*.singeltons" + - indel_hist: + type: file + description: Histogram file of the length of all indels (including SNPs) (optional) + pattern: "*.indel_hist" + - hapcount: + type: file + description: Unique haplotypes within user specified bins (optional) + pattern: "*.hapcount" + - mendel: + type: file + description: Mendel errors identified in trios (optional) + pattern: "*.mendel" + - format: + type: file + description: Extracted information from the genotype fields in the VCF file relating to a specfied FORMAT identifier (optional) + pattern: "*.FORMAT" + - info: + type: file + description: Extracted information from the INFO field in the VCF file (optional) + pattern: "*.INFO" + - genotypes_matrix: + type: file + description: | + Genotypes output as large matrix. + Genotypes of each individual on a separate line. + Genotypes are represented as 0, 1 and 2, where the number represent that number of non-reference alleles. + Missing genotypes are represented by -1 (optional) + pattern: "*.012" + - genotypes_matrix_individual: + type: file + description: Details the individuals included in the main genotypes_matrix file (optional) + pattern: "*.012.indv" + - genotypes_matrix_position: + type: file + description: Details the site locations included in the main genotypes_matrix file (optional) + pattern: "*.012.pos" + - impute_hap: + type: file + description: Phased haplotypes in IMPUTE reference-panel format (optional) + pattern: "*.impute.hap" + - impute_hap_legend: + type: file + description: Impute haplotype legend file (optional) + pattern: "*.impute.hap.legend" + - impute_hap_indv: + type: file + description: Impute haplotype individuals file (optional) + pattern: "*.impute.hap.indv" + - ldhat_sites: + type: file + description: Output data in LDhat format, sites (optional) + pattern: "*.ldhat.sites" + - ldhat_locs: + type: file + description: output data in LDhat format, locations (optional) + pattern: "*.ldhat.locs" + - beagle_gl: + type: file + description: Genotype likelihoods for biallelic sites (optional) + pattern: "*.BEAGLE.GL" + - beagle_pl: + type: file + description: Genotype likelihoods for biallelic sites (optional) + pattern: "*.BEAGLE.PL" + - ped: + type: file + description: output the genotype data in PLINK PED format (optional) + pattern: "*.ped" + - map_: + type: file + description: output the genotype data in PLINK PED format (optional) + pattern: "*.map" + - tped: + type: file + description: output the genotype data in PLINK PED format (optional) + pattern: "*.tped" + - tfam: + type: file + description: output the genotype data in PLINK PED format (optional) + pattern: "*.tfam" + - diff_sites_in_files: + type: file + description: Sites that are common / unique to each file specified in optional inputs (optional) + pattern: "*.diff.sites.in.files" + - diff_indv_in_files: + type: file + description: Individuals that are common / unique to each file specified in optional inputs (optional) + pattern: "*.diff.indv.in.files" + - diff_sites: + type: file + description: Discordance on a site by site basis, specified in optional inputs (optional) + pattern: "*.diff.sites" + - diff_indv: + type: file + description: Discordance on a individual by individual basis, specified in optional inputs (optional) + pattern: "*.diff.indv" + - diff_discd_matrix: + type: file + description: Discordance matrix between files specified in optional inputs (optional) + pattern: "*.diff.discordance.matrix" + - diff_switch_error: + type: file + description: Switch errors found between sites (optional) + pattern: "*.diff.switch" + +authors: + - "@Mark-S-Hill" diff --git a/modules/nf-core/modules/vcftools/vcf_diff.nf b/modules/nf-core/modules/vcftools/vcf_diff.nf new file mode 100755 index 0000000..6c55e62 --- /dev/null +++ b/modules/nf-core/modules/vcftools/vcf_diff.nf @@ -0,0 +1,40 @@ +process VCFTOOLS_DIFF { + tag "$meta.id" + label 'process_single' + + conda (params.enable_conda ? "bioconda::vcftools=0.1.16" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/vcftools:0.1.16--he513fc3_4' : + 'quay.io/biocontainers/vcftools:0.1.16--he513fc3_4' }" + + input: + tuple val(meta), path(variant1) + tuple val(meta), path(variant2) + + output: + tuple val(meta), path("*.sites_in_files"), emit: diff + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}." + task.ext.caller + def args_list = args.tokenize() + + """ + vcftools \\ + --vcf $variant1 \\ + --diff $variant2 \\ + --diff-site \\ + --out $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vcftools: \$(echo \$(vcftools --version 2>&1) | sed 's/^.*VCFtools (//;s/).*//') + END_VERSIONS + """ +} + + diff --git a/nextflow.config b/nextflow.config new file mode 100755 index 0000000..7e14fae --- /dev/null +++ b/nextflow.config @@ -0,0 +1,223 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + nf-core/mpxvassembly Nextflow config file +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Default config options for all compute environments +---------------------------------------------------------------------------------------- +*/ + +// Global default params, used in configs +params { + + // Input options + input = null + indir = null + project_name = null + paired = true + workflow = 'full' + + // References + fasta = "${projectDir}/assets/MPXV-UK_P2.noN.fasta" + fai = "${projectDir}/assets/MPXV-UK_P2.noN.fasta.fai" + gff = "${projectDir}/assets/UK-P2.noN.gff" + kraken_db = "/scicomp/reference/mpx_human_kdb" + kraken2_tax_ids = "${projectDir}/assets/kraken2_tax_ids.txt" + + // MultiQC options + multiqc_config = null + multiqc_title = null + max_multiqc_email_size = '25.MB' + + // variant calling options + filter = true + af_cutoff = 0.01 + DP_cutoff = 5 + altDP_cutoff = 3 + altQ_cutoff = 20 + + // variant filtering params + // Required but can set = NA if not filtering variants + coords = '39086,40204,51427,54447' + locus1_name = 'F13L' + locus2_name = 'E9L' + + // Boilerplate options + outdir = null + tracedir = "${params.outdir}/pipeline_info" + publish_dir_mode = 'copy' + email = null + email_on_fail = null + plaintext_email = false + monochrome_logs = false + help = false + validate_params = true + show_hidden_params = false + schema_ignore_params = 'genomes' + enable_conda = false + + // Config options + custom_config_version = 'master' + custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" + config_profile_description = null + config_profile_contact = null + config_profile_url = null + config_profile_name = null + + // Max resource options + // Defaults only, expecting to be overwritten + max_memory = '128.GB' + max_cpus = 16 + max_time = '240.h' + +} + +// Load base.config by default for all pipelines +includeConfig 'conf/base.config' + +// Load nf-core custom profiles from different Institutions +try { + includeConfig "${params.custom_config_base}/nfcore_custom.config" +} catch (Exception e) { + System.err.println("WARNING: Could not load nf-core/config profiles: ${params.custom_config_base}/nfcore_custom.config") +} + +// Load nf-core/mpxvassembly custom profiles from different institutions. +// Warning: Uncomment only if a pipeline-specific instititutional config already exists on nf-core/configs! +// try { +// includeConfig "${params.custom_config_base}/pipeline/mpxvassembly.config" +// } catch (Exception e) { +// System.err.println("WARNING: Could not load nf-core/config/mpxvassembly profiles: ${params.custom_config_base}/pipeline/mpxvassembly.config") +// } + + +profiles { + debug { process.beforeScript = 'echo $HOSTNAME' } + conda { + params.enable_conda = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + docker { + docker.enabled = true + docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } + test { includeConfig 'conf/test.config' } + test_full { includeConfig 'conf/test_full.config' } +} + +// Export these variables to prevent local Python/R libraries from conflicting with those in the container +// The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. +// See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. + +env { + PYTHONNOUSERSITE = 1 + R_PROFILE_USER = "/.Rprofile" + R_ENVIRON_USER = "/.Renviron" + JULIA_DEPOT_PATH = "/usr/local/share/julia" +} + +// Capture exit codes from upstream processes when piping +process.shell = ['/bin/bash', '-euo', 'pipefail'] + +def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') +timeline { + enabled = true + file = "${params.tracedir}/execution_timeline_${trace_timestamp}.html" +} +report { + enabled = true + file = "${params.tracedir}/execution_report_${trace_timestamp}.html" +} +trace { + enabled = true + file = "${params.tracedir}/execution_trace_${trace_timestamp}.txt" +} +dag { + enabled = true + file = "${params.tracedir}/pipeline_dag_${trace_timestamp}.html" +} + +manifest { + name = 'polkapox' + author = 'Kovar, Seabolt, Morrison, Knipe, OConnell, Rowell, Weigand' + homePage = 'https://github.com/CDCgov/polkapox' + description = 'A workflow for filtering, trimming, and QC of orthopox samples. From raw fastq to consensus and de-novo based as' + mainScript = 'main.nf' + nextflowVersion = '!>=21.10.3' + version = '1.1.0' +} + +// Load modules.config for DSL2 module specific options +includeConfig 'conf/modules.config' + +// Load CDC config for operating on internal compute infrastructure +includeConfig 'conf/cdc.config' + +// Function to ensure that resource requirements don't go beyond +// a maximum limit +def check_max(obj, type) { + if (type == 'memory') { + try { + if (obj.compareTo(params.max_memory as nextflow.util.MemoryUnit) == 1) + return params.max_memory as nextflow.util.MemoryUnit + else + return obj + } catch (all) { + println " ### ERROR ### Max memory '${params.max_memory}' is not valid! Using default value: $obj" + return obj + } + } else if (type == 'time') { + try { + if (obj.compareTo(params.max_time as nextflow.util.Duration) == 1) + return params.max_time as nextflow.util.Duration + else + return obj + } catch (all) { + println " ### ERROR ### Max time '${params.max_time}' is not valid! Using default value: $obj" + return obj + } + } else if (type == 'cpus') { + try { + return Math.min( obj, params.max_cpus as int ) + } catch (all) { + println " ### ERROR ### Max cpus '${params.max_cpus}' is not valid! Using default value: $obj" + return obj + } + } +} diff --git a/nextflow_schema.json b/nextflow_schema.json new file mode 100755 index 0000000..05e29ea --- /dev/null +++ b/nextflow_schema.json @@ -0,0 +1,353 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/nf-core/mpxvassembly/master/nextflow_schema.json", + "title": "nf-core/mpxvassembly pipeline parameters", + "description": "A workflow for filtering, trimming, and QC of mpx samples. From raw fastq to consensus and de-novo based as", + "type": "object", + "definitions": { + "input_output_options": { + "title": "Input/output options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Define where the pipeline should find input data and save output data.", + "required": [ + "outdir", + "fasta", + "gff", + "kraken_db", + "workflow" + ], + "properties": { + "input": { + "type": "string", + "format": "file-path", + "mimetype": "text/csv", + "pattern": "^\\S+\\.csv$", + "schema": "assets/schema_input.json", + "description": "Path to comma-separated file containing information about the samples in the experiment.", + "help_text": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row. See [usage docs](https://nf-co.re/mpxvassembly/usage#samplesheet-input).", + "fa_icon": "fas fa-file-csv" + }, + "indir": { + "type": "string", + "format": "directory-path", + "description": "An input directory where the samples are located. Use if you want the pipeline to create your samplesheet. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "outdir": { + "type": "string", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "paired": { + "type": "boolean", + "description": "True if reads are paired-end, false if reads are single.", + "fa_icon": "fas fa-down-left-and-up-right-to-center" + }, + "project_name": { + "type": "string", + "description": "A name for the run (will be the prefix of samplesheet.csv).", + "fa_icon": "fas fa-file-signature" + }, + "workflow": { + "type": "string", + "description": "Choose from: read_filter, ref_based, denovo, full.", + "fa_icon": "fas fa-map" + }, + "email": { + "type": "string", + "description": "Email address for completion summary.", + "fa_icon": "fas fa-envelope", + "help_text": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", + "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$" + }, + "multiqc_title": { + "type": "string", + "description": "MultiQC report title. Printed as page header, used for filename if not otherwise specified.", + "fa_icon": "fas fa-file-signature" + } + } + }, + "reference_genome_options": { + "title": "Reference genome options", + "type": "object", + "fa_icon": "fas fa-dna", + "description": "Reference genome related files and options required for the workflow.", + "properties": { + "fasta": { + "type": "string", + "format": "file-path", + "mimetype": "text/plain", + "pattern": "^\\S+\\.fn?a(sta)?(\\.gz)?$", + "description": "Path to FASTA genome file.", + "help_text": "This parameter is *mandatory* if `--genome` is not specified. If you don't have a BWA index available this will be generated for you automatically. Combine with `--save_reference` to save BWA index for future runs.", + "fa_icon": "far fa-file-code" + } + } + }, + "institutional_config_options": { + "title": "Institutional config options", + "type": "object", + "fa_icon": "fas fa-university", + "description": "Parameters used to describe centralised config profiles. These should not be edited.", + "help_text": "The centralised nf-core configuration profiles use a handful of pipeline parameters to describe themselves. This information is then printed to the Nextflow log when you run a pipeline. You should not need to change these values when you run a pipeline.", + "properties": { + "custom_config_version": { + "type": "string", + "description": "Git commit id for Institutional configs.", + "default": "master", + "hidden": true, + "fa_icon": "fas fa-users-cog" + }, + "custom_config_base": { + "type": "string", + "description": "Base directory for Institutional configs.", + "default": "https://raw.githubusercontent.com/nf-core/configs/master", + "hidden": true, + "help_text": "If you're running offline, Nextflow will not be able to fetch the institutional config files from the internet. If you don't need them, then this is not a problem. If you do need them, you should download the files from the repo and tell Nextflow where to find them with this parameter.", + "fa_icon": "fas fa-users-cog" + }, + "config_profile_name": { + "type": "string", + "description": "Institutional config name.", + "hidden": true, + "fa_icon": "fas fa-users-cog" + }, + "config_profile_description": { + "type": "string", + "description": "Institutional config description.", + "hidden": true, + "fa_icon": "fas fa-users-cog" + }, + "config_profile_contact": { + "type": "string", + "description": "Institutional config contact information.", + "hidden": true, + "fa_icon": "fas fa-users-cog" + }, + "config_profile_url": { + "type": "string", + "description": "Institutional config URL link.", + "hidden": true, + "fa_icon": "fas fa-users-cog" + } + } + }, + "max_job_request_options": { + "title": "Max job request options", + "type": "object", + "fa_icon": "fab fa-acquisitions-incorporated", + "description": "Set the top limit for requested resources for any single job.", + "help_text": "If you are running on a smaller system, a pipeline step requesting more resources than are available may cause the Nextflow to stop the run with an error. These options allow you to cap the maximum resources requested by any single job so that the pipeline will run on your system.\n\nNote that you can not _increase_ the resources requested by any job using these options. For that you will need your own configuration file. See [the nf-core website](https://nf-co.re/usage/configuration) for details.", + "properties": { + "max_cpus": { + "type": "integer", + "description": "Maximum number of CPUs that can be requested for any single job.", + "default": 16, + "fa_icon": "fas fa-microchip", + "hidden": true, + "help_text": "Use to set an upper-limit for the CPU requirement for each process. Should be an integer e.g. `--max_cpus 1`" + }, + "max_memory": { + "type": "string", + "description": "Maximum amount of memory that can be requested for any single job.", + "default": "128.GB", + "fa_icon": "fas fa-memory", + "pattern": "^\\d+(\\.\\d+)?\\.?\\s*(K|M|G|T)?B$", + "hidden": true, + "help_text": "Use to set an upper-limit for the memory requirement for each process. Should be a string in the format integer-unit e.g. `--max_memory '8.GB'`" + }, + "max_time": { + "type": "string", + "description": "Maximum amount of time that can be requested for any single job.", + "default": "240.h", + "fa_icon": "far fa-clock", + "pattern": "^(\\d+\\.?\\s*(s|m|h|day)\\s*)+$", + "hidden": true, + "help_text": "Use to set an upper-limit for the time requirement for each process. Should be a string in the format integer-unit e.g. `--max_time '2.h'`" + } + } + }, + "generic_options": { + "title": "Generic options", + "type": "object", + "fa_icon": "fas fa-file-import", + "description": "Less common options for the pipeline, typically set in a config file.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "properties": { + "help": { + "type": "boolean", + "description": "Display help text.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": [ + "symlink", + "rellink", + "link", + "copy", + "copyNoFollow", + "move" + ], + "hidden": true + }, + "email_on_fail": { + "type": "string", + "description": "Email address for completion summary, only when pipeline fails.", + "fa_icon": "fas fa-exclamation-triangle", + "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$", + "help_text": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", + "hidden": true + }, + "plaintext_email": { + "type": "boolean", + "description": "Send plain-text email instead of HTML.", + "fa_icon": "fas fa-remove-format", + "hidden": true + }, + "max_multiqc_email_size": { + "type": "string", + "description": "File size limit when attaching MultiQC reports to summary emails.", + "pattern": "^\\d+(\\.\\d+)?\\.?\\s*(K|M|G|T)?B$", + "default": "25.MB", + "fa_icon": "fas fa-file-upload", + "hidden": true + }, + "monochrome_logs": { + "type": "boolean", + "description": "Do not use coloured log outputs.", + "fa_icon": "fas fa-palette", + "hidden": true + }, + "multiqc_config": { + "type": "string", + "description": "Custom config file to supply to MultiQC.", + "fa_icon": "fas fa-cog", + "hidden": true + }, + "tracedir": { + "type": "string", + "description": "Directory to keep pipeline Nextflow logs and reports.", + "default": "${params.outdir}/pipeline_info", + "fa_icon": "fas fa-cogs", + "hidden": true + }, + "validate_params": { + "type": "boolean", + "description": "Boolean whether to validate parameters against the schema at runtime", + "default": true, + "fa_icon": "fas fa-check-square", + "hidden": true + }, + "show_hidden_params": { + "type": "boolean", + "fa_icon": "far fa-eye-slash", + "description": "Show all params when using `--help`", + "hidden": true, + "help_text": "By default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters." + }, + "enable_conda": { + "type": "boolean", + "description": "Run this workflow with Conda. You can also use '-profile conda' instead of providing this parameter.", + "hidden": true, + "fa_icon": "fas fa-bacon" + }, + "workflow": { + "type": "string", + "description": "Define which entrypoint you wish to run in the workflow, options include filter_reads,ref_based,denovo, and full", + "hidden": true, + "fa_icon": "fas fa-bacon" + }, + "gff": { + "type": "string", + "default": null + }, + "filter": { + "type": "boolean", + "default": null, + "help_text": "true/false for whether or not to filter variants from IVAR Variant to coordinates specified by the coords parameter." + }, + "kraken_db": { + "type": "string", + "default": null, + "help_text": "By default, this parameter uses a DB that includes one MPOX Clade IIb sample and human (GRCh38), if you would like to specify an alternative db, you also need to also modify the kraken2_tax_ids parameter so that it points to a file with your desired NCBI Tax IDs (https://www.ncbi.nlm.nih.gov/taxonomy) for filtering at the seqtk step" + }, + "kraken2_tax_ids": { + "type": "string", + "default": null, + "help_text": "By default, this parameter filters NCBI Tax IDs (https://www.ncbi.nlm.nih.gov/taxonomy) for all Refseq genomes within the Orthopox Genus, as well as MPOX. If you supply a different Kraken DB than the one set by default, make sure this file contains the Tax IDs you would like to retain." + + }, + "altQ_cutoff": { + "type": "integer", + "default": null, + "help_text": "Quality score threshold of alternative allele for a SNP to be retained during variant filtering" + }, + "altDP_cutoff": { + "type": "integer", + "default": null, + "help_text": "Sequencing depth threshold of alternative allele for a SNP to be retained during variant filtering" + + }, + "DP_cutoff": { + "type": "integer", + "default": null, + "help_text": "Sequencing depth threshold of reference allele for a SNP to be retained during variant filtering" + + }, + "af_cutoff": { + "type": "number", + "default": null, + "help_text": "Allele frequency threshold of reference allele for a SNP to be retained during variant filtering. Should be decimal like 0.05 for 5%" + + }, + "fai": { + "type": "string", + "default": null + }, + "coords": { + "type": "string", + "default": null, + "help_text": "List of four strings such as 1111,2222,3333,4444 representing coordinates in the genome used for filtering. Currently the pipeline conducts SNP filtering based on two regions, given by Region1 Start, Region1 End, Region2 Start, Region2 End." + + }, + "locus1_name": { + "type": "string", + "default": null, + "help_text": "Name of your first locus used for variant filtering. Can be left blank if not running ref_based or full entrypoints" + + }, + "locus2_name": { + "type": "string", + "default": null, + "help_text": "Name of your second locus used for variant filtering. Can be left blank if not running ref_based or full entrypoints" + + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/input_output_options" + }, + { + "$ref": "#/definitions/reference_genome_options" + }, + { + "$ref": "#/definitions/institutional_config_options" + }, + { + "$ref": "#/definitions/max_job_request_options" + }, + { + "$ref": "#/definitions/generic_options" + } + ] +} diff --git a/subworkflows/local/denovo.nf b/subworkflows/local/denovo.nf new file mode 100755 index 0000000..6481a9b --- /dev/null +++ b/subworkflows/local/denovo.nf @@ -0,0 +1,112 @@ +include { SAMTOOLS_FLAGSTAT as SAMTOOLS_FLAGSTAT_DENOVO } from '../../modules/nf-core/modules/samtools/flagstat/main.denovo' +include { UNICYCLER } from '../../modules/nf-core/modules/unicycler/main' +include { GRAPH_RECON } from '../../modules/local/graph_reconstruct' +include { BWA_MEM as BWA_MEM_DENOVO } from '../../modules/nf-core/modules/bwa/mem/main_denovo' +include { PUBLISH_CONTIGS } from '../../modules/local/publish_contigs.nf' +include { MUMMER } from '../../modules/nf-core/modules/mummer/main' +include { QUAST } from '../../modules/nf-core/modules/quast/main' +include { IVAR_CONSENSUS as IVAR_CONSENSUS_POLISH } from '../../modules/nf-core/modules/ivar/consensus/main_denovo' + +workflow DENOVO { + + take: + trimmed_fastq + + main: + + ch_versions = Channel.empty() + + // + // Module: run Unicycler + // + + UNICYCLER ( + trimmed_fastq + ) + ch_versions = ch_versions.mix(UNICYCLER.out.versions) + ch_gfa = UNICYCLER.out.gfa + + // + // Module: Genome Reconstruction from Unicycler GFA + // + GRAPH_RECON ( + ch_gfa, + ) + ch_versions = ch_versions.mix(GRAPH_RECON.out.versions) + ch_graph_fasta = GRAPH_RECON.out.gfa_assembly + ch_gfaassm_compare = GRAPH_RECON.out.gfa_assembly + ch_gfa_forpolishing = GRAPH_RECON.out.gfa_assembly + ch_uni_contigs = GRAPH_RECON.out.unicycler_contigs + ch_gfa_summary = GRAPH_RECON.out.summary + + // + // Module: Align reads to reconstructed genome + // + ch_denovo_joined = ch_graph_fasta.join(trimmed_fastq, by: 0) + + BWA_MEM_DENOVO ( + ch_denovo_joined, + true + ) + ch_mapped_denovo = BWA_MEM_DENOVO.out.bam + ch_mapped_denovo_flagstat = BWA_MEM_DENOVO.out.bambai + ch_versions = ch_versions.mix(BWA_MEM_DENOVO.out.versions) + + // + // Module: Calculate statistics for de novo bwa mapping + // + SAMTOOLS_FLAGSTAT_DENOVO ( + ch_mapped_denovo_flagstat + ) + + ch_polishing_input = ch_mapped_denovo.join(ch_gfa_forpolishing, by: 0) + + // + // Module: Polish assembly with IVAR Consensus + // + IVAR_CONSENSUS_POLISH ( + ch_polishing_input, + false + ) + ch_gfapolish_compare = IVAR_CONSENSUS_POLISH.out.fasta + ch_tocompare = ch_gfaassm_compare.join(ch_gfapolish_compare, by: 0) + + //join unicycler contigs with the polished fasta, and only keep contigs if fasta doesn't exist + ch_assemblies = ch_uni_contigs.join(IVAR_CONSENSUS_POLISH.out.fasta, remainder: true) + | map { meta, contigs, fasta -> [meta + [ "final" : "draft"], fasta ?: contigs ]} + + // + // Module: Publish contigs if IVAR Polished fasta doesn't exist + // + PUBLISH_CONTIGS ( + ch_assemblies + ) + + // + // Module: run MUMMER for assembly stats + // + MUMMER ( + ch_tocompare + ) + ch_mummer = MUMMER.out.summary + + // + // Module: run QUAST for assembly stats + // + QUAST ( + GRAPH_RECON.out.unicycler_contigs.collect{it[1]}.ifEmpty([]), + true, + true + ) + ch_versions = ch_versions.mix(QUAST.out.versions) + + emit: + quast_tsv = QUAST.out.tsv + flagstat = SAMTOOLS_FLAGSTAT_DENOVO.out.flagstat + graph_recon_log = GRAPH_RECON.out.log + gfa_assembly = GRAPH_RECON.out.gfa_assembly + mummer_summary = MUMMER.out.summary + fasta = IVAR_CONSENSUS_POLISH.out.fasta + mpileup = IVAR_CONSENSUS_POLISH.out.mpileup + versions = ch_versions // channel: [ versions.yml ] +} \ No newline at end of file diff --git a/subworkflows/local/filter_reads.nf b/subworkflows/local/filter_reads.nf new file mode 100755 index 0000000..7ff9c64 --- /dev/null +++ b/subworkflows/local/filter_reads.nf @@ -0,0 +1,77 @@ + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT LOCAL MODULES/SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT NF-CORE MODULES/SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +// +// MODULE: Installed directly from nf-core/modules +// +include { KRAKEN2_KRAKEN2 as KRAKEN2 } from '../../modules/nf-core/modules/kraken2/kraken2/main' +include { FASTP } from '../../modules/nf-core/modules/fastp/main' +include { SEQTK_SUBSEQ } from '../../modules/nf-core/modules/seqtk/subseq/main' + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RUN MAIN WORKFLOW +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +workflow READ_FILTER { + take: + input_reads + + main: + + ch_versions = Channel.empty() + + // + // MODULE: Run Kraken to keep only orthopox reads + // + ch_kraken2_db = file(params.kraken_db, checkIfExists: true) + + KRAKEN2 ( + input_reads, + ch_kraken2_db, + true, + false, + true + ) + ch_kreads = KRAKEN2.out.classified_reads_fastq + ch_orthoreads = KRAKEN2.out.classified_reads_assignment + ch_versions = ch_versions.mix(KRAKEN2.out.versions.first().ifEmpty(null)) + + SEQTK_SUBSEQ ( + ch_kreads, + ch_orthoreads + ) + ch_filt_fastq = SEQTK_SUBSEQ.out.reads + ch_versions = ch_versions.mix(SEQTK_SUBSEQ.out.versions) + + // + // MODULE: Run Fastp + // + + FASTP ( + ch_filt_fastq, + false, + false + ) + ch_versions = ch_versions.mix(FASTP.out.versions) + + emit: + trimmed_fastq = FASTP.out.reads + json = FASTP.out.json + kraken2_report = KRAKEN2.out.report + classified_reads_assignment = KRAKEN2.out.classified_reads_assignment + seqtk_reads = SEQTK_SUBSEQ.out.opxv_reads + versions = ch_versions // channel: [ versions.yml ] + +} \ No newline at end of file diff --git a/subworkflows/local/filter_variants.nf b/subworkflows/local/filter_variants.nf new file mode 100755 index 0000000..76e579a --- /dev/null +++ b/subworkflows/local/filter_variants.nf @@ -0,0 +1,2 @@ +test + diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf new file mode 100755 index 0000000..256d8b7 --- /dev/null +++ b/subworkflows/local/input_check.nf @@ -0,0 +1,45 @@ +// +// Check input samplesheet and get read channels +// + +include { SAMPLESHEET_CHECK } from '../../modules/local/samplesheet_check' + +workflow INPUT_CHECK { + take: + //file samplesheet from samplesheet_to_check + samplesheet // file: /path/to/samplesheet.csv + + main: + SAMPLESHEET_CHECK ( samplesheet ) + .csv + .splitCsv ( header:true, sep:',' ) + .map { create_fastq_channel(it) } + .set { reads } + + emit: + reads // channel: [ val(meta), [ reads ] ] + versions = SAMPLESHEET_CHECK.out.versions // channel: [ versions.yml ] +} + +// Function to get list of [ meta, [ fastq_1, fastq_2 ] ] +def create_fastq_channel(LinkedHashMap row) { + // create meta map + def meta = [:] + meta.id = row.sample + meta.single_end = row.single_end.toBoolean() + + // add path(s) of the fastq file(s) to the meta map + def fastq_meta = [] + if (!file(row.fastq_1).exists()) { + exit 1, "ERROR: Please check input samplesheet -> Read 1 FastQ file does not exist!\n${row.fastq_1}" + } + if (meta.single_end) { + fastq_meta = [ meta, [ file(row.fastq_1) ] ] + } else { + if (!file(row.fastq_2).exists()) { + exit 1, "ERROR: Please check input samplesheet -> Read 2 FastQ file does not exist!\n${row.fastq_2}" + } + fastq_meta = [ meta, [ file(row.fastq_1), file(row.fastq_2) ] ] + } + return fastq_meta +} diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf new file mode 100755 index 0000000..b85169c --- /dev/null +++ b/subworkflows/local/prepare_genome.nf @@ -0,0 +1,27 @@ +// +// Generate reference genome related files for analysis +// + +include { BWA_INDEX } from '../../modules/nf-core/modules/bwa/index/main' + +workflow PREPARE_GENOME { + main: + + // + // generate index for bwa + // + + ch_versions = Channel.empty() + ch_fasta = file(params.fasta) + + BWA_INDEX ( ch_fasta ) + + ch_bwa_index = BWA_INDEX.out.index + ch_versions = ch_versions.mix(BWA_INDEX.out.versions) + + emit: + + fasta = ch_fasta // path: genome.fasta + bwa_index = ch_bwa_index // path: bwa/index/ + versions = ch_versions // channel: [ versions.yml ] +} \ No newline at end of file diff --git a/subworkflows/local/ref_based.nf b/subworkflows/local/ref_based.nf new file mode 100755 index 0000000..edb63ec --- /dev/null +++ b/subworkflows/local/ref_based.nf @@ -0,0 +1,104 @@ +include { BWA_MEM } from '../../modules/nf-core/modules/bwa/mem/main' +include { IVAR_CONSENSUS as IVAR_CONSENSUS_BWA } from '../../modules/nf-core/modules/ivar/consensus/main' +include { IVAR_VARIANTS } from '../../modules/nf-core/modules/ivar/variants/main' +include { VARIANT_CONVERT } from '../../modules/local/variant_convert.nf' +include { SAMTOOLS_SORT } from '../../modules/nf-core/modules/samtools/sort/main' +include { SAMTOOLS_FLAGSTAT } from '../../modules/nf-core/modules/samtools/flagstat/main' +include { SAMTOOLS_DEPTH } from '../../modules/nf-core/modules/samtools/depth/main' +include { VCFTOOLS as VCFTOOLS_IVAR } from '../../modules/nf-core/modules/vcftools/main' +include { SUMMARIZE_TSV } from '../../modules/local/summarize_tsv.nf' +include { AGGREGATE_TSVS } from '../../modules/local/aggregate_tsvs.nf' + +workflow REFBASED { + take: + ch_trimmed_fastq_bwa + ch_bwa_index + + main: + ch_versions = Channel.empty() + + // + // Module: run BWA MEM alignment + // + BWA_MEM ( + ch_trimmed_fastq_bwa, + ch_bwa_index, + true + ) + ch_bwa_aln = BWA_MEM.out.bam + ch_bwa_ivar = BWA_MEM.out.bam + ch_bwa_depth = BWA_MEM.out.bam + ch_bwa_flagstat = BWA_MEM.out.bambai + ch_bai_lofreq = BWA_MEM.out.bai + ch_versions = ch_versions.mix(BWA_MEM.out.versions) + + SAMTOOLS_FLAGSTAT ( + ch_bwa_flagstat + ) + + SAMTOOLS_DEPTH ( + ch_bwa_depth + ) + + // + // Module: run ivar + // + + IVAR_CONSENSUS_BWA ( + ch_bwa_aln, + params.fasta, + true + ) + ch_versions = ch_versions.mix(IVAR_CONSENSUS_BWA.out.versions) + + IVAR_VARIANTS ( + ch_bwa_ivar, + true + ) + ch_ivar_out = IVAR_VARIANTS.out.tsv + ch_versions = ch_versions.mix(IVAR_VARIANTS.out.versions) + + VARIANT_CONVERT ( + ch_ivar_out, + params.af_cutoff + ) + ch_ivar_vcf = VARIANT_CONVERT.out.vcf + ch_versions = ch_versions.mix(VARIANT_CONVERT.out.versions) + + if ( params.filter ) { + // + // Module: run summarize ivar tsv + // + params.coords_list=params.coords?.split(',') as List + + SUMMARIZE_TSV ( + ch_ivar_out, + params.coords_list, + true + ) + ch_tsv_vars = SUMMARIZE_TSV.out.vars + ch_versions = ch_versions.mix(SUMMARIZE_TSV.out.versions) + + // + // Module: aggregate ivar tsv summary files + // + ch_aggregate_tsvs = Channel.empty() + ch_aggregate_tsvs = ch_aggregate_tsvs.mix(SUMMARIZE_TSV.out.vars.collect{it[1]}.ifEmpty([])) + + AGGREGATE_TSVS ( + ch_aggregate_tsvs, + true + ) + ch_versions = ch_versions.mix(AGGREGATE_TSVS.out.versions) + } + else { + ch_tsv_vars = Channel.empty() + } + + emit: + flagstat = SAMTOOLS_FLAGSTAT.out.flagstat + depth_tsv = SAMTOOLS_DEPTH.out.tsv + tsv_vars = ch_tsv_vars + ivar_tsv = IVAR_VARIANTS.out.tsv + versions = ch_versions // channel: [ versions.yml ] +} \ No newline at end of file diff --git a/workflows/polkapox.nf b/workflows/polkapox.nf new file mode 100755 index 0000000..f9bb208 --- /dev/null +++ b/workflows/polkapox.nf @@ -0,0 +1,223 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + VALIDATE INPUTS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +def summary_params = NfcoreSchema.paramsSummaryMap(workflow, params) + +// Validate input parameters +WorkflowPolkapox.initialise(params, log) + +// Check input path parameters to see if they exist +def checkPathParamList = [ params.kraken_db, params.input, params.multiqc_config, params.fasta, params.fai] +for (param in checkPathParamList) { if (param) { file(param, checkIfExists: true) } } + +// Check mandatory parameters +if (params.input) { + ch_input = Channel.fromPath("${params.input}", type: 'file', checkIfExists: true) + } +else if (params.indir) { + ch_indir = file(params.indir) + } +else { exit 1, 'Must specify either input samplesheet or input directory of fastq files!' } + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CONFIG FILES +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +ch_multiqc_config = file("$projectDir/assets/multiqc_config.yml", checkIfExists: true) +ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT LOCAL MODULES/SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +// +// SUBWORKFLOW: Consisting of a mix of local and nf-core/modules +// +include { INPUT_CHECK } from '../subworkflows/local/input_check' +include { PREPARE_GENOME } from '../subworkflows/local/prepare_genome' +include { CREATE_SAMPLESHEET } from '../modules/local/create_samplesheet' +include { READ_FILTER } from '../subworkflows/local/filter_reads' +include { DENOVO } from '../subworkflows/local/denovo' +include { REFBASED } from '../subworkflows/local/ref_based' + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + IMPORT NF-CORE MODULES/SUBWORKFLOWS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +// +// MODULE: Installed directly from nf-core/modules +// +include { FASTQC } from '../modules/nf-core/modules/fastqc/main' +include { MULTIQC } from '../modules/nf-core/modules/multiqc/main' +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' +include { SUMMARIZE_QC } from '../modules/local/summarize_qc' + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + RUN MAIN WORKFLOW +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +// Info required for completion email and summary +def multiqc_report = [] + +workflow POLKAPOX { + + ch_versions = Channel.empty() + + if (params.indir) { + // + // MODULE: Create samplesheet based on directory of fastq files + // + CREATE_SAMPLESHEET ( + ch_indir + ) + ch_input = CREATE_SAMPLESHEET.out.samplesheet + ch_versions = ch_versions.mix(CREATE_SAMPLESHEET.out.versions) + } + + // + // SUBWORKFLOW: Read in samplesheet, validate and stage input files + // + INPUT_CHECK ( + ch_input + ) + ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) + + // + // SUBWORKFLOW: Prepare reference + // + PREPARE_GENOME () + ch_bwa_index = PREPARE_GENOME.out.bwa_index + ch_versions = ch_versions.mix(PREPARE_GENOME.out.versions) + + // + // SUBWORKFLOW: Only run Read Filter + // + + if ( params.workflow == 'filter_reads' + || params.workflow == 'ref_based' + || params.workflow == 'denovo' + || params.workflow == 'full' ) { + READ_FILTER ( + INPUT_CHECK.out.reads, + ) + ch_versions = ch_versions.mix(READ_FILTER.out.versions) + } + + // + // SUBWORKFLOW: Run Read Filter + Reference-based Assembly + // + + if ( params.workflow == 'ref_based' || params.workflow == 'full' ) { + REFBASED ( + READ_FILTER.out.trimmed_fastq, + ch_bwa_index + ) + ch_versions = ch_versions.mix(REFBASED.out.versions) + + } + + // + // SUBWORKFLOW: Run Read Filter + Denovo Assembly + // + + if ( params.workflow == 'denovo' || params.workflow == 'full' ) { + DENOVO ( + READ_FILTER.out.trimmed_fastq, + ) + ch_versions = ch_versions.mix(DENOVO.out.versions) + } + + // + // MODULE: Dump all software versions used + // + + CUSTOM_DUMPSOFTWAREVERSIONS ( + ch_versions.unique().collectFile(name: 'collated_versions.yml') + ) + + // + // MODULE: MultiQC + // + workflow_summary = WorkflowPolkapox.paramsSummaryMultiqc(workflow, summary_params) + ch_workflow_summary = Channel.value(workflow_summary) + + ch_multiqc_files = Channel.empty() + ch_multiqc_files = ch_multiqc_files.mix(Channel.from(ch_multiqc_config)) + ch_multiqc_files = ch_multiqc_files.mix(ch_multiqc_custom_config.collect().ifEmpty([])) + ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) + ch_multiqc_files = ch_multiqc_files.mix(READ_FILTER.out.json.collect{it[1]}.ifEmpty([])) + ch_multiqc_files = ch_multiqc_files.mix(READ_FILTER.out.kraken2_report.collect{it[1]}.ifEmpty([])) + if ( params.workflow == 'ref_based' || params.workflow == 'full' ) { + ch_multiqc_files = ch_multiqc_files.mix(REFBASED.out.flagstat.collect{it[1]}.ifEmpty([])) + } + if ( params.workflow == 'denovo' || params.workflow == 'full' ) { + ch_multiqc_files = ch_multiqc_files.mix(DENOVO.out.quast_tsv.collect().ifEmpty([])) + } + + MULTIQC ( + ch_multiqc_files.collect() + ) + multiqc_report = MULTIQC.out.report.toList() + ch_versions = ch_versions.mix(MULTIQC.out.versions) + + // + // MODULE: summarize_qc.py + // + + ch_summarizeqc_files = Channel.empty() + ch_summarizeqc_files = ch_summarizeqc_files.mix(READ_FILTER.out.json.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(READ_FILTER.out.kraken2_report.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(READ_FILTER.out.classified_reads_assignment.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(READ_FILTER.out.seqtk_reads.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(MULTIQC.out.data.collect().ifEmpty([])) + if ( params.workflow == 'ref_based' || params.workflow == 'full') { + ch_summarizeqc_files = ch_summarizeqc_files.mix(REFBASED.out.depth_tsv.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(REFBASED.out.tsv_vars.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(REFBASED.out.ivar_tsv.collect{it[1]}.ifEmpty([])) + } + if ( params.workflow == 'denovo' || params.workflow == 'full' ) { + ch_summarizeqc_files = ch_summarizeqc_files.mix(DENOVO.out.flagstat.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(DENOVO.out.graph_recon_log.collect().ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(DENOVO.out.gfa_assembly.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(DENOVO.out.mummer_summary.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(DENOVO.out.fasta.collect{it[1]}.ifEmpty([])) + ch_summarizeqc_files = ch_summarizeqc_files.mix(DENOVO.out.mpileup.collect{it[1]}.ifEmpty([])) + } + + SUMMARIZE_QC ( + ch_summarizeqc_files.collect(), + ch_input, + ) + +} + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + COMPLETION EMAIL AND SUMMARY +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ + +workflow.onComplete { + if (params.email || params.email_on_fail) { + NfcoreTemplate.email(workflow, params, summary_params, projectDir, log, multiqc_report) + } + NfcoreTemplate.summary(workflow, params, log) +} + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + THE END +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/