pax_global_header00006660000000000000000000000064152121071570014513gustar00rootroot0000000000000052 comment=19d55fb7a13a7e68e7b0de35a6e31575d90c53a5 pdb-tools-2.7.0/000077500000000000000000000000001521210715700134245ustar00rootroot00000000000000pdb-tools-2.7.0/.bumpversion.toml000066400000000000000000000011561521210715700167530ustar00rootroot00000000000000[tool.bumpversion] current_version = "2.7.0" parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)" serialize = ["{major}.{minor}.{patch}"] search = "{current_version}" replace = "{new_version}" regex = false ignore_missing_version = false ignore_missing_files = false tag = true sign_tags = false tag_name = "v{new_version}" tag_message = "{current_version} → {new_version}" allow_dirty = false commit = true message = "[SKIP] {current_version} → {new_version}" moveable_tags = [] commit_args = "" setup_hooks = [] pre_commit_hooks = [] post_commit_hooks = [] [[tool.bumpversion.files]] filename = "setup.py" pdb-tools-2.7.0/.gitattributes000066400000000000000000000000531521210715700163150ustar00rootroot00000000000000# Set LF for Python files *py text eol=lf pdb-tools-2.7.0/.github/000077500000000000000000000000001521210715700147645ustar00rootroot00000000000000pdb-tools-2.7.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001521210715700171475ustar00rootroot00000000000000pdb-tools-2.7.0/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000011531521210715700216410ustar00rootroot00000000000000--- name: Bug report about: Create a report to help us improve title: '' labels: bug assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. Ex. My PDB file is blank after I use this tool! **To Reproduce** Steps to reproduce the behavior. Preferrably, a code snippet. ``` pdb_fetch.py 1xxx.pdb | pdb_oopsy.py > result cat result # result is empty! ``` **Expected behavior** The output PDB file should not be blank, but should have YY replaced! **Desktop (please complete the following information):** - OS: [e.g. Mac OS, Linux, Windows] - Python Version [e.g. 2.7, 3.6, 3.7] pdb-tools-2.7.0/.github/ISSUE_TEMPLATE/tool-request.md000066400000000000000000000014441521210715700221370ustar00rootroot00000000000000--- name: Tool request about: Suggest an idea for a new pdb-tool title: '' labels: Tool Request assignees: '' --- **Is your tool request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always trying to do [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. Ex. I would like a tool that did [...] **Does any of the existing tools or a combination of them do what you want?** A clear and concise description of any alternative solutions or features you've considered. **Remember** Each `pdb-tools` should do one and one job only. If you have to describe what you want using an _and_, probably it is the job for at least _two_ tools. We want simple tools that can be combined, for flexibility. pdb-tools-2.7.0/.github/workflows/000077500000000000000000000000001521210715700170215ustar00rootroot00000000000000pdb-tools-2.7.0/.github/workflows/bump-version-on-push.yml000066400000000000000000000054551521210715700235720ustar00rootroot00000000000000--- name: bump and package on: push: branches: - master jobs: bump-version: runs-on: ubuntu-latest permissions: contents: write outputs: skip-bump: ${{ steps.determine-bump.outputs.skip-bump }} steps: - name: Checkout uses: actions/checkout@v6 - name: Setting up git config shell: bash env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git config --global user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" git config --global user.name "$(gh api /users/${GITHUB_ACTOR} | jq .name -r)" git config -l - uses: actions/setup-python@v6 with: python-version: "3.13" - name: Install bump-my-version run: | pip install "bump-my-version==1.2.6" - name: Determine bump type id: determine-bump run: | COMMIT_MSG="${{ github.event.head_commit.message }}" echo "PR title: $COMMIT_MSG" if [[ "$COMMIT_MSG" =~ ^\[MAJOR\] ]]; then echo "bump-type=major" >> $GITHUB_OUTPUT elif [[ "$COMMIT_MSG" =~ ^\[MINOR\] ]]; then echo "bump-type=minor" >> $GITHUB_OUTPUT elif [[ "$COMMIT_MSG" =~ ^\[PATCH\] ]]; then echo "bump-type=patch" >> $GITHUB_OUTPUT elif [[ "$COMMIT_MSG" =~ ^\[SKIP\] ]]; then echo "skip-bump=true" >> $GITHUB_OUTPUT echo "::notice::Version bump skipped based on PR title" exit 0 else echo "skip-bump=true" >> $GITHUB_OUTPUT echo "::notice::Skipping - commit message does not match [MAJOR], [MINOR], [PATCH], or [SKIP]" exit 0 fi - name: Bump version if: steps.determine-bump.outputs.skip-bump != 'true' run: | bump-my-version bump --verbose ${{ steps.determine-bump.outputs.bump-type }} - name: Push changes uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} publish: if: needs.bump-version.outputs.skip-bump != 'true' name: builds and publishes to pypi needs: [bump-version] runs-on: ubuntu-latest environment: name: pypi url: https://pypi.org/p/pdb-tools permissions: id-token: write steps: - uses: actions/checkout@v6 with: ref: master - uses: actions/setup-python@v6 with: python-version: "3.13" - name: install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade build - name: build run: | python -m build - name: Publish package distributions to PyPI uses: pypa/gh-action-pypi-publish@release/v1 pdb-tools-2.7.0/.github/workflows/ci.yml000066400000000000000000000037661521210715700201530ustar00rootroot00000000000000--- name: ci on: pull_request: types: [opened, edited, synchronize] branches: - master push: branches: - master jobs: linter: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: set up python uses: actions/setup-python@v5 with: python-version: "3.13" - name: install dependencies run: | python -m pip install --upgrade pip python -m pip install flake8 - name: Linter run: flake8 . test: name: test runs-on: ${{ matrix.platform }} strategy: matrix: platform: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade build twine coverage - name: build run: | python --version python -m build twine check dist/*.whl twine check dist/*.tar.gz - name: install pdb-tools run: | python -m pip install . - name: run tests run: | if [ "${{ runner.os }}" = "Linux" ]; then script -q -e -c "coverage run -m unittest discover -s tests -p 'test_*.py'" else SKIP_TTY_TESTS=true coverage run -m unittest discover -s tests -p "test_*.py" fi coverage xml shell: bash # - uses: codacy/codacy-coverage-reporter-action@v1 # if: >- # ${{ github.event_name != 'pull_request' || # github.event.pull_request.head.repo.full_name == github.repository }} # with: # project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} # coverage-reports: ./coverage.xml pdb-tools-2.7.0/.github/workflows/pr-title-check.yml000066400000000000000000000015051521210715700223600ustar00rootroot00000000000000--- name: PR title check on: pull_request: types: [opened, edited, synchronize, reopened] jobs: check-title: runs-on: ubuntu-latest steps: - name: Check PR title format env: PR_TITLE: ${{ github.event.pull_request.title }} run: | echo "PR title: $PR_TITLE" if [[ "$PR_TITLE" =~ ^\[(MAJOR|MINOR|PATCH|SKIP)\] ]]; then echo "✓ PR title has valid version tag" exit 0 else echo "::error::PR title must start with [MAJOR], [MINOR], [PATCH], or [SKIP]" echo "" echo "Examples:" echo " [MAJOR] Breaking API change" echo " [MINOR] Add new feature" echo " [PATCH] Fix bug in parser" echo " [SKIP] Update documentation" exit 1 fi pdb-tools-2.7.0/.github/workflows/stale.yml000066400000000000000000000020531521210715700206540ustar00rootroot00000000000000name: "Close stale issues and PRs" on: schedule: - cron: "30 1 * * *" workflow_dispatch: jobs: stale: runs-on: ubuntu-latest permissions: contents: write issues: write pull-requests: write actions: write steps: - uses: actions/stale@v10 with: stale-pr-message: "This PR is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 15 days." stale-issue-message: "This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 15 days." close-pr-message: 'This PR was closed because it has been stalled for 15 days with no activity.' close-issue-message: 'This issue was closed because it has been stalled for 15 days with no activity.' days-before-stale: 90 days-before-close: 15 exempt-issue-labels: "bug" exempt-pr-labels: "bug" remove-stale-when-updated: true operations-per-run: 100 pdb-tools-2.7.0/.gitignore000066400000000000000000000001271521210715700154140ustar00rootroot00000000000000# Python setuptools build/ dist/ *egg-info/ *__pycache__ *.pyc .coverage coverage.xml pdb-tools-2.7.0/CODE_OF_CONDUCT.md000066400000000000000000000064411521210715700162300ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are 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 behavior. Project maintainers 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. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at j.p.g.l.m.rodrigues@gmail.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq pdb-tools-2.7.0/CONTRIBUTING.md000066400000000000000000000151111521210715700156540ustar00rootroot00000000000000# Contributing to pdb-tools First off, thank you for taking the time to contribute! The tone of the following 'guidelines' might seem a bit harsh (a lot of *do nots*) but it will make everyone's life easier. Make sure you read through this at least once before issuing a pull request or opening an issue. ## What should I know before getting started? The crux of any tool of `pdb-tools` is simplicity. Simplicity both for the end-user but also for developers. You will find that the tools often repeat a lot of code, for example the `check_input` functions. While this might look ugly from a development point of view, it makes scripts simpler (fancy options will very quickly turn ugly), faster (no imports) and more understandable for old and new developers. This is also why we do not make use of `argparse`. A corolary of this simplicity is that every tool should do **one and one job only**. The only exception to this is `pdb_tidy` and it will very likely remain so. Even then, its job is to 'produce a valid PDB', despite doing multiple tasks under the hood. The tools are meant to be chained together, so if you want to have two tasks accomplished, write two tools and have them talk. Finally. **Dependencies are strictly not allowed**. Take this as an exercise to work on your Python Standard Library skills. ## How do I write an issue? If you found a problem with one of the tools, if it does not behave as expected, if you think it should do something different or something more, or if you think that there should be a tool do to something new, please do open an issue. If a tool is not working, let us know exactly what you did and what the outcome was. Whatever you tell us that helps us reproduce your workflow will make our job much easier to answer your question and provide a fix if necessary.    **Bad issue reporter** pdb_reatom.py does not work. Please fix. # believe it or not people do write this.    **Good issue reporter** I tried using pdb_reatom.py on a PDB file and it did not renumber nitrogen atoms. Here is an example: $ cat 1abc.pdb ATOM 9 N ASN A 1 22.066 40.557 1.420 1.00 1.00 ATOM 2 N ASN A 2 43.123 76.234 0.123 1.00 1.00 END $ pdb_reatom 1abc.pdb ATOM 9 N ASN A 1 22.066 40.557 1.420 1.00 1.00 ATOM 2 N ASN A 2 43.123 76.234 0.123 1.00 1.00 END I was expecting the two atoms to be consecutively renumbered from 1. I am using pdb-tools version 2.0.0: $ pip show pdb-tools Name: pdb-tools Version: 2.0.0 Location: /path/to/virtualenv/lib/python3.7/site-packages ## How do I contribute code? We welcome and will gladly review any pull request. If you have never used git or GitHub before, have a look at the [guides](https://guides.github.com/) page. To contribute to `pdb-tools`, use the *Fork* button to create your own copy of the `pdb-tools` repository. Then, download `git` on your laptop/desktop computer and proceed like the snippet below, where we pretend to add a new tool: ```bash # Clone your own fork of pdb-tools git clone https://github.com/yourusername/pdb-tools.git cd pdb-tools # Add our repository as 'upstream' to make sure you are using the latest # version of the code. git remote add upstream https://github.com/haddocking/pdb-tools.git # Pull our master to update your local version # If there are changes, you should push them to the 'master' of your fork. git pull upstream master git push origin master # Update your fork if necessary # Create a feature branch to start working on your new tool. # Name the new branch clearly and concisely after the change you are proposing # # We use feature branches to avoid conflicts in the master branch. Updating # should always be smooth and you can deal with merge conflicts in your branches git checkout -b pdb_newtool # Work on your new tool! # Include hours of work here and make sure to read the conventions below. # Also, try to add a test case too under tests/ # We can help you fleshing it out if you need it. ... # If you are making changes to an existing tool, run the test suite before # committing your changes. python setup.py test # When you have committed all your changes, run flake8 to make sure there are # no style issues. You can find our flake8 settings in `setup.cfg`. python -m pip install flake8 flake8 . # Update the documentation, if you added new tools (or changed docstrings). cd docs/ python doctools.py git add index.md && git commit -m "Updated documentation" # When there are no issues left, push to your fork on github git push origin pdb_newtool # And then, online, create a pull request. # That is it. ``` ## Conventions In an effort to try and make all tools look the same, stick to these conventions when writing a new one or modifying an existing one: ### Coding conventions Every pull request will be checked for style using Flake8. We ignore line length warnings and the use of lambdas. Do not abuse the first one though. We always try to stick to 80 characters, unless it's stupid to do so. * Do not use camelCase. Stick to snake_case. * Write docstrings and comment your code, specially if it is not obvious! * Name your variables properly, we don't charge you for a few extra lines. ### Tool design conventions * Every tool should have the same structure: `check_input`, `do_task`, `main`. Do **not** deviate from this, unless you absolutely need to. * User interfaces must follow the `pdb_tool [-option] ` paradigm. Do not try and make it `pdb_tool -opt1 -opt2 -opt3`. See `pdb_rplchain` and `pdb_wc` for good examples of how to handle multiple options. * Avoid reading the entire file in memory unless you have to. This makes it nice for people processing very large files. * Following the previous item, make use of generators (`yield`) to output the results of your tool. ## Merging Pull Requests If you are tasked with merging a pull request yourself, you should know that there is an automated job running every time a push is made to the master branch. This job will trigger a version bump and automatically publish the new package to PyPi. By default, only the patch (x.x.Y) number is incremented. If you want to trigger a minor version (x.Y.x) update, start your commit with `[FEATURE]`. Note that since we use merge commits, this means you have to edit the title of the merge commit. It is your responsibility to handle this as a package maintainer! Finally, if your last commit message starts with `[SKIP]`, the automated job does not run, so use this flag if your commits are for documentation, README, etc. pdb-tools-2.7.0/LICENSE000066400000000000000000000341251521210715700144360ustar00rootroot00000000000000 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 Appendix 1 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. See also Appendix 2 below for specific licensing conditions regarding a third party piece of code used in pdb-tools. 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 1: 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. APPENDIX 2: Third party code from https://github.com/cctbx/cctbx_project Some of the tools in pdb-tools (pdb_reatom, pdb_tidy and pdb_fromcif) are using code from the cctbx distribution (https://github.com/cctbx/cctbx_project). The following license agreement applies to it. cctbx Copyright (c) 2006 - 2026, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. (3) Neither the name of the University of California, Lawrence Berkeley National Laboratory, U.S. Dept. of Energy nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements available either publicly, or directly to Lawrence Berkeley National Laboratory, without imposing a separate written license agreement for such Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense such enhancements or derivative works thereof, in binary and source code form. Copyright 2018 João Pedro Rodrigues 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. pdb-tools-2.7.0/MANIFEST.in000066400000000000000000000005771521210715700151730ustar00rootroot00000000000000graft pdbtools include LICENSE include README.md include citation.tex exclude .appveyor.yml exclude .bumpversion.cfg exclude .coveragerc exclude .travis.yml exclude CODE_OF_CONDUCT.md exclude CONTRIBUTING.md exclude MANIFEST.in exclude PACKING.md exclude tox.ini prune docs prune tests global-exclude *.py[cod] __pycache__/* *.so *.dylib global-exclude *.swp global-exclude tags pdb-tools-2.7.0/PACKAGING.md000066400000000000000000000021641521210715700152350ustar00rootroot00000000000000# Packaging pdb-tools This guide describes (roughly) how to package `pdb-tools` into something `pip` can handle. ## Versioning `pdb-tools` uses semantic versioning: MAJOR.MINOR.PATCH (e.g. 2.0.0). It works more or less like this: * For every new release fixing bugs, increment the PATCH counter (e.g. 2.0.1). * For every release adding minor features to tools or new tools that do not impact any of the existing ones, increment MINOR (e.g. 2.1.0). * For major changes that will most likely impact the usage of existing tools, increment MAJOR (e.g. 3.0.0). In practice, when packaging the distribution we should update the version number in `setup.py` accordingly (otherwise `twine` will give an error). ## Packaging This is a rough guide to building a distributable package: ### (1) Ensure all tests pass: ```bash python setup.py test ``` 2. Ensure there are no warnings from flake8: ```bash flake8 --ignore=E501,E731 ``` 3. Build the distributable package: ```bash python setup.py sdist bdist_wheel # Upload to PyPI: testing repo for now. #twine upload --repository-url https://test.pypi.org/legacy/ dist/* twine upload dist/* ``` pdb-tools-2.7.0/README.md000066400000000000000000000125441521210715700147110ustar00rootroot00000000000000# pdb-tools [![PyPI version](https://badge.fury.io/py/pdb-tools.svg)](https://pypi.python.org/pypi/pdb-tools) [![PyPi Downloads](https://img.shields.io/pypi/dm/pdb-tools.svg)](https://pypi.python.org/pypi/pdb-tools) [![ci](https://github.com/haddocking/pdb-tools/actions/workflows/ci.yml/badge.svg)](https://github.com/haddocking/pdb-tools/actions/workflows/ci.yml) [![DOI](https://zenodo.org/badge/27217350.svg)](https://doi.org/10.12688/f1000research.17456.1) A swiss army knife for manipulating and editing PDB files. ## Looking for the _other_ pdb-tools? The Harms lab maintains a set of tools also called `pdbtools`, which perform a slightly different set of functions. You can find them [here](https://github.com/harmslab/pdbtools). ## About Manipulating PDB files is often painful. Extracting a particular chain or set of residues, renumbering residues, splitting or merging models and chains, or just ensuring the file is conforming to the PDB specifications are examples of tasks that can be done using any decent parsing library or graphical interface. These, however, almost always require 1) scripting knowledge, 2) time, and 3) installing one or more programs. `pdb-tools` were designed to be a swiss-knife for the PDB format. They have no external dependencies, besides obviously the [Python programming language](http://www.python.org). They are the descendant of a set of old FORTRAN77 programs that had the particular advantage of working with streams, i.e. the output of one script could be piped into another. Since FORTRAN77 is a pain too, I rewrote them in Python and added a few more utilities. The philosophy of the scripts is simple: one script, one task. If you want to do two things, pipe the scripts together. Requests for new scripts will be taken into consideration - use the Issues button or write them yourself and create a Pull Request. ## Installation Instructions `pdb-tools` are available on PyPi and can be installed though `pip`. This is the recommended way as it makes updating/uninstalling rather simple: ```bash pip install pdb-tools ``` Because we use semantic versioning in the development of `pdb-tools`, every bugfix or new feature results in a new version of the software that is automatically published on PyPI. As such, there is no difference between the code on github and the latest version you can install with `pip`. To update your installation to the latest version of the code run: ```bash pip install --upgrade pdb-tools ``` ## What can I do with them? The names of the tools should be self-explanatory. Their command-line interface is also pretty consistent. Therefore, here is a couple of examples to get you started: * Downloading a structure ```bash pdb_fetch 1brs > 1brs.pdb # 6 chains pdb_fetch -biounit 1brs > 1brs.pdb # 2 chains ``` * Renumbering a structure ```bash pdb_reres -1 1ctf.pdb > 1ctf_renumbered.pdb ``` * Selecting chain(s) ```bash pdb_selchain -A 1brs.pdb > 1brs_A.pdb pdb_selchain -A,D 1brs.pdb > 1brs_AD.pdb ``` * Deleting hydrogens ```bash pdb_delelem -H 1brs.pdb > 1brs_noH.pdb ``` * Selecting backbone atoms ```bash pdb_selatom -CA,C,N,O 1brs.pdb > 1brs_bb.pdb ``` * Selecting chains, removing HETATM, and producing a valid PDB file ```bash pdb_selchain -A,D 1brs.pdb | pdb_delhetatm | pdb_tidy > 1brs_AD_noHET.pdb ``` *Note: On Windows the tools will have the `.exe` extension.* ## What _can't_ I do with them? Operations that involve coordinates or numerical calculations are usually not in the scope of `pdb-tools`. Use a proper library for that, it will be much faster and scalable. Also, although we provide mmCIF<->PDB converters, we do not support large mmCIF files with more than 99999 atoms, or 9999 residues in a single chain. Our tools will complain if you try using them on such a molecule. ## Citation We finally decided to write up a small publication describing the tools. If you used them in a project that is going to be published, please cite us: ``` Rodrigues JPGLM, Teixeira JMC, Trellet M and Bonvin AMJJ. pdb-tools: a swiss army knife for molecular structures. F1000Research 2018, 7:1961 (https://doi.org/10.12688/f1000research.17456.1) ``` If you use a reference manager that supports BibTex, use this record: ``` @Article{ 10.12688/f1000research.17456.1, AUTHOR = { Rodrigues, JPGLM and Teixeira, JMC and Trellet, M and Bonvin, AMJJ}, TITLE = {pdb-tools: a swiss army knife for molecular structures [version 1; peer review: 2 approved] }, JOURNAL = {F1000Research}, VOLUME = {7}, YEAR = {2018}, NUMBER = {1961}, DOI = {10.12688/f1000research.17456.1} } ``` ## Requirements `pdb-tools` should run on Python 2.7+ and Python 3.x. We test on Python 2.7, 3.6, and 3.7. There are no dependencies. ## Installing from Source Download the zip archive or clone the repository with git. We recommend the `git` approach since it makes updating the tools extremely simple. ```bash # To download git clone https://github.com/haddocking/pdb-tools cd pdb-tools # To update git pull origin master # To install python setup.py install ``` ## Contributing If you want to contribute to the development of `pdb-tools`, provide a bug fix, or a new tools, read our `CONTRIBUTING` instructions [here](https://github.com/haddocking/pdb-tools/blob/master/CONTRIBUTING.md). ## License `pdb-tools` are open-source and licensed under the Apache License, version 2.0. For details, see the LICENSE file. pdb-tools-2.7.0/citation.tex000066400000000000000000000017241521210715700157640ustar00rootroot00000000000000@article {Rodrigues483305, author = {Rodrigues, Jo{\~a}o P.G.L.M. and Teixeira, Jo{\~a}o M.C. and Trellet, Mika{\"e}l and Bonvin, Alexandre M.J.J.}, title = {pdb-tools: a swiss army knife for molecular structures}, elocation-id = {483305}, year = {2018}, doi = {10.1101/483305}, publisher = {Cold Spring Harbor Laboratory}, abstract = {The pdb-tools are a collection of Python scripts for working with molecular structure data in the PDB format. They allow users to edit, convert, and validate PDB files, from the command-line, in a simple but efficient manner. The pdb-tools are implemented in Python, without any external dependencies, and are freely available under the open-source Apache License at https://github.com/haddocking/pdb-tools/ and on PyPI (https://pypi.org/project/pdb-tools/).}, URL = {https://www.biorxiv.org/content/early/2018/12/04/483305}, eprint = {https://www.biorxiv.org/content/early/2018/12/04/483305.full.pdf}, journal = {bioRxiv} }pdb-tools-2.7.0/docs/000077500000000000000000000000001521210715700143545ustar00rootroot00000000000000pdb-tools-2.7.0/docs/_config.yml000066400000000000000000000005021521210715700165000ustar00rootroot00000000000000title: 'pdb-tools' headline: '' logo: /logo/pdb-tools.png show_downloads: true description: 'A swiss army knife for editing PDB files.' theme: jekyll-theme-minimal github: zip_url: https://github.com/haddocking/pdb-tools/archive/2.0.0-rc1.zip tar_url: https://github.com/haddocking/pdb-tools/archive/2.0.0-rc1.tar.gz pdb-tools-2.7.0/docs/assets/000077500000000000000000000000001521210715700156565ustar00rootroot00000000000000pdb-tools-2.7.0/docs/assets/css/000077500000000000000000000000001521210715700164465ustar00rootroot00000000000000pdb-tools-2.7.0/docs/assets/css/style.scss000066400000000000000000000004711521210715700205050ustar00rootroot00000000000000--- --- @import "{{ site.theme }}"; /* Pad image bottom */ .wrapper img { padding-bottom: 1%; } /* Remove bullets from ordered lists */ ul { list-style-type: none; padding: 0; margin: 0; } /* Make content wider */ .wrapper { width: 1200px; } section { width: 860px; } footer { width: 280px; } pdb-tools-2.7.0/docs/cookbook.md000066400000000000000000000004631521210715700165070ustar00rootroot00000000000000--- layout: default --- * Removing hydrogens, renaming `HIP` to `HIS`, and renumbering atoms, for all PDBs from a folder to a new folder: ```bash mkdir folder_new for i in folder/*pdb; do pdb_delelem -H $i | pdb_rplresname -HIP:HIS | pdb_reatom -1 | pdb_tidy > folder_new/$(basename $i); done ``` pdb-tools-2.7.0/docs/doctools.py000066400000000000000000000035201521210715700165540ustar00rootroot00000000000000#!/usr/bin/env python """ Scrapes tool headers for documentation. """ import importlib from pathlib import Path with open('index.md', 'w') as handle: with open('index.md.template') as template: print(template.read(), file=handle) import pdbtools modfile = Path(pdbtools.__file__) for f in sorted(list(modfile.parent.iterdir())): # ignore __init__.py and others. if f.stem.startswith('_') or f.suffix != '.py': continue # Dynamically import tool to get __doc__ name = f.stem try: tool = importlib.import_module(f'pdbtools.{name}') except ModuleNotFoundError: print(f'Could not import module: {name}') continue # Parse documentation from docstrings # Preserve white-space as best as possible. # First non-empty line is always short description. # Last lines are always licensing disclaimer summary = None long_description = [] doctext = tool.__doc__.replace('<', '<').replace('>', '>') for line in doctext.split('\n'): if summary is None and not line.strip(): continue if line.startswith('This program is part of the'): break elif summary is None: summary = line else: long_description.append(line) long_description = '\n'.join(long_description) print('
', file=handle) print('
', file=handle) print(f"{name}

{summary}

", file=handle) print( f'{long_description}', file=handle ) print('
', file=handle) print('
', file=handle) pdb-tools-2.7.0/docs/index.md000066400000000000000000000721301521210715700160100ustar00rootroot00000000000000--- layout: default --- A swiss army knife for manipulating and editing PDB files. ## Installation Instructions `pdb-tools` are available on PyPi and can be installed though `pip`. This is the recommended way as it makes updating/uninstalling rather simple: ```bash pip install pdb-tools ``` Because we use semantic versioning in the development of `pdb-tools`, every bugfix or new feature results in a new version of the software that is automatically published on PyPI. As such, there is no difference between the code on github and the latest version you can install with `pip`. To update your installation to the latest version of the code run: ```bash pip install --upgrade pdb-tools ``` ## What can I do with them? The purpose of each tool should be obvious from its name. In any case, [here](#list-of-tools) is a list of all the tools in the suite and their function. All tools share the same command-line interface. Below are a couple of examples to get you started. If you want to check out more examples of how to use the tools and their applications, or have any cool examples of your own, check out the [cookbook](cookbook). * Downloading a structure ```bash pdb_fetch 1brs > 1brs.pdb # 6 chains pdb_fetch -biounit 1brs > 1brs.pdb # 2 chains ``` * Renumbering a structure ```bash pdb_reres -1 1ctf.pdb > 1ctf_renumbered.pdb ``` * Selecting chain(s) ```bash pdb_selchain -A 1brs.pdb > 1brs_A.pdb pdb_selchain -A,D 1brs.pdb > 1brs_AD.pdb ``` * Deleting hydrogens ```bash pdb_delelem -H 1brs.pdb > 1brs_noH.pdb ``` * Selecting backbone atoms ```bash pdb_selatom -CA,C,N,O 1brs.pdb > 1brs_bb.pdb ``` * Selecting chains, removing HETATM, and producing a valid PDB file ```bash pdb_selchain -A,D 1brs.pdb | pdb_delhetatm | pdb_tidy > 1brs_AD_noHET.pdb ``` *Note: On Windows the tools will have the `.exe` extension.* ## What _can't_ I do with them? Operations that involve coordinates or numerical calculations are usually not in the scope of `pdb-tools`. Use a proper library for that, it will be much faster and scalable. Also, although we provide mmCIF<->PDB converters, we do not support large mmCIF files with more than 99999 atoms, or 9999 residues in a single chain. Our tools will complain if you try using them on such a molecule. ## About Manipulating PDB files is often painful. Extracting a particular chain or set of residues, renumbering residues, splitting or merging models and chains, or just ensuring the file is conforming to the PDB specifications are examples of tasks that can be done using any decent parsing library or graphical interface. These, however, almost always require 1) scripting knowledge, 2) time, and 3) installing one or more programs. `pdb-tools` were designed to be a swiss army knife for the PDB format. The philosophy of the scripts is simple: one script, one task. If you want to do two things, pipe the scripts together. Requests for new scripts will be taken into consideration - use the Issues button or write them yourself and create a Pull Request. ## Looking for the _other_ pdb-tools? The Harms lab maintains a set of tools also called `pdbtools`, which perform a slightly different set of functions. You can find them [here](https://github.com/harmslab/pdbtools). ## Citation We finally decided to write up a small publication describing the tools. If you used them in a project that is going to be published, please cite us: ``` Rodrigues JPGLM, Teixeira JMC, Trellet M and Bonvin AMJJ. pdb-tools: a swiss army knife for molecular structures. F1000Research 2018, 7:1961 (https://doi.org/10.12688/f1000research.17456.1) ``` If you use a reference manager that supports BibTex, use this record: ``` @Article{ 10.12688/f1000research.17456.1, AUTHOR = { Rodrigues, JPGLM and Teixeira, JMC and Trellet, M and Bonvin, AMJJ}, TITLE = {pdb-tools: a swiss army knife for molecular structures [version 1; peer review: 2 approved] }, JOURNAL = {F1000Research}, VOLUME = {7}, YEAR = {2018}, NUMBER = {1961}, DOI = {10.12688/f1000research.17456.1} } ``` ## Requirements `pdb-tools` should run on Python 2.7+ and Python 3.x. We test on Python 2.7, 3.6, and 3.7. There are no dependencies. ## Installing from Source Download the zip archive or clone the repository with git. We recommend the `git` approach since it makes updating the tools extremely simple. ```bash # To download git clone https://github.com/haddocking/pdb-tools cd pdb-tools # To update git pull origin master # To install python setup.py install ``` ## Contributing If you want to contribute to the development of `pdb-tools`, provide a bug fix, or a new tools, read our `CONTRIBUTING` instructions [here](https://github.com/haddocking/pdb-tools/blob/master/CONTRIBUTING.md). ## License `pdb-tools` are open-source and licensed under the Apache License, version 2.0. For details, see the LICENSE file. ## List of Tools
pdb_b

Modifies the temperature factor column of a PDB file (default 10.0).

Usage: python pdb_b.py -<bfactor> <pdb file> Example: python pdb_b.py -10.0 1CTF.pdb
pdb_chain

Modifies the chain identifier column of a PDB file (default is an empty chain).

Usage: python pdb_chain.py -<chain id> <pdb file> Example: python pdb_chain.py -C 1CTF.pdb
pdb_chainbows

Renames chain identifiers sequentially, based on TER records.

Since HETATM records are not separated by TER records and usually come together at the end of the PDB file, this script will attempt to reassign their chain identifiers based on the changes it made to ATOM lines. This might lead to bad output in certain corner cases. Usage: python pdb_chainbows.py <pdb file> Example: python pdb_chainbows.py 1CTF.pdb
pdb_chainxseg

Swaps the segment identifier for the chain identifier.

Usage: python pdb_chainxseg.py <pdb file> Example: python pdb_chainxseg.py 1CTF.pdb
pdb_chkensemble

Checks all models in a multi-model PDB file have the same composition.

Composition is defined as same atoms/residues/chains. Usage: python pdb_chkensemble.py <pdb file> Example: python pdb_chkensemble.py 1CTF.pdb
pdb_delchain

Deletes all atoms matching specific chains in the PDB file.

Usage: python pdb_delchain.py -<option> <pdb file> Example: python pdb_delchain.py -A 1CTF.pdb # removes chain A from PDB file python pdb_delchain.py -A,B 1CTF.pdb # removes chains A and B from PDB file
pdb_delelem

Deletes all atoms matching the given element in the PDB file.

Elements are read from the element column. Usage: python pdb_delelem.py -<option> <pdb file> Example: python pdb_delelem.py -H 1CTF.pdb # deletes all protons python pdb_delelem.py -N 1CTF.pdb # deletes all nitrogens python pdb_delelem.py -H,N 1CTF.pdb # deletes all protons and nitrogens
pdb_delhetatm

Removes all HETATM records in the PDB file.

Usage: python pdb_delhetatm.py <pdb file> Example: python pdb_delhetatm.py 1CTF.pdb
pdb_delinsertion

Deletes insertion codes in a PDB file.

Deleting an insertion code shifts the residue numbering of downstream residues. Allows for picking specific residues to delete insertion codes for. Usage: python pdb_delinsertion.py [-<option>] <pdb file> Example: python pdb_delinsertion.py 1CTF.pdb # delete ALL insertion codes python pdb_delinsertion.py -A9,B12 1CTF.pdb # deletes ins. codes for res # 9 of chain A and 12 of chain B.
pdb_delres

Deletes a range of residues from a PDB file.

The range option has three components: start, end, and step. Start and end are optional and if ommitted the range will start at the first residue or end at the last, respectively. The step option can only be used if both start and end are provided. Note that the start and end values of the range are purely numerical, while the range actually refers to every N-th residue, regardless of their sequence number. Usage: python pdb_delres.py -[resid]:[resid]:[step] <pdb file> Example: python pdb_delres.py -1:10 1CTF.pdb # Deletes residues 1 to 10 python pdb_delres.py -1: 1CTF.pdb # Deletes residues 1 to END python pdb_delres.py -:5 1CTF.pdb # Deletes residues from START to 5. python pdb_delres.py -::5 1CTF.pdb # Deletes every 5th residue python pdb_delres.py -1:10:5 1CTF.pdb # Deletes every 5th residue from 1 to 10
pdb_delresname

Removes all residues matching the given name in the PDB file.

Residues names are matched *without* taking into consideration spaces. Usage: python pdb_delresname.py -<option> <pdb file> Example: python pdb_delresname.py -ALA 1CTF.pdb # removes only Alanines python pdb_delresname.py -ASP,GLU 1CTF.pdb # removes (-) charged residues
pdb_element

Assigns the elements in the PDB file from atom names.

Usage: python pdb_element.py <pdb file> Example: python pdb_element.py 1CTF.pdb
pdb_fetch

Downloads a structure in PDB format from the RCSB website.

Allows downloading the (first) biological structure if selected. Usage: python pdb_fetch.py [-biounit] <pdb code> Example: python pdb_fetch.py 1brs # downloads unit cell, all 6 chains python pdb_fetch.py -biounit 1brs # downloads biounit, 2 chains
pdb_fixinsert

Fixes insertion codes in a PDB file.

Works by deleting an insertion code and shifting the residue numbering of downstream residues. Allows for picking specific residues to delete insertion codes for. Usage: python pdb_fixinsert.py [-<option>] <pdb file> Example: python pdb_fixinsert.py 1CTF.pdb # delete ALL insertion codes python pdb_fixinsert.py -A9,B12 1CTF.pdb # deletes ins. codes for res # 9 of chain A and 12 of chain B.
pdb_fromcif

Rudimentarily converts a mmCIF file to the PDB format.

Will not convert if the file does not 'fit' in PDB format, e.g. too many chains, residues, or atoms. Will convert only the coordinate section. Usage: python pdb_fromcif.py <pdb file> Options: -h36: allows for hybrid36 output format for encoding >99999 atoms in the PDB file Example: python pdb_fromcif.py 1CTF.pdb
pdb_gap

Finds gaps between consecutive protein residues in the PDB.

Detects gaps both by a distance criterion or discontinuous residue numbering. Only applies to protein residues. Usage: python pdb_gap.py <pdb file> Example: python pdb_gap.py 1CTF.pdb
pdb_head

Returns the first N coordinate (ATOM/HETATM) lines of the file.

Usage: python pdb_head.py -<num> <pdb file> Example: python pdb_head.py -100 1CTF.pdb # first 100 ATOM/HETATM lines of the file
pdb_intersect

Returns a new PDB file only with atoms in common to all input PDB files.

Atoms are judged equal is their name, altloc, res. name, res. num, insertion code and chain fields are the same. Coordinates are taken from the first input file. Keeps matching TER/ANISOU records. Usage: python pdb_intersect.py <pdb file> <pdb file> Example: python pdb_intersect.py 1XYZ.pdb 1ABC.pdb
pdb_keepcoord

Removes all non-coordinate records from the file.

Keeps only MODEL, ENDMDL, END, ATOM, HETATM, CONECT. Usage: python pdb_keepcoord.py <pdb file> Example: python pdb_keepcoord.py 1CTF.pdb
pdb_merge

Merges several PDB files into one.

The contents are not sorted and no lines are deleted (e.g. END, TER statements) so we recommend piping the results through `pdb_tidy.py`. Usage: python pdb_merge.py <pdb file> <pdb file> Example: python pdb_merge.py 1ABC.pdb 1XYZ.pdb
pdb_mkensemble

Merges several PDB files into one multi-model (ensemble) file.

Strips all HEADER information and adds REMARK statements with the provenance of each conformer. Usage: python pdb_mkensemble.py <pdb file> <pdb file> Example: python pdb_mkensemble.py 1ABC.pdb 1XYZ.pdb
pdb_occ

Modifies the occupancy column of a PDB file (default 1.0).

Usage: python pdb_occ.py -<occupancy> <pdb file> Example: python pdb_occ.py -1.0 1CTF.pdb
pdb_reatom

Renumbers atom serials in the PDB file starting from a given value (default 1).

Usage: python pdb_reatom.py -<number> <pdb file> Options: -h36: allows for hybrid36 output format for encoding >99999 atoms in the PDB file Example: python pdb_reatom.py -10 1CTF.pdb # renumbers from 10 python pdb_reatom.py --1 1CTF.pdb # renumbers from -1
pdb_reres

Renumbers the residues of the PDB file starting from a given number (default 1).

Usage: python pdb_reres.py -<number> <pdb file> Example: python pdb_reres.py -10 1CTF.pdb # renumbers from 10 python pdb_reres.py --1 1CTF.pdb # renumbers from -1
pdb_rplchain

Performs in-place replacement of a chain identifier by another.

Usage: python pdb_rplchain.py -<from>:<to> <pdb file> Example: python pdb_rplchain.py -A:B 1CTF.pdb # Replaces chain A for chain B
pdb_rplresname

Performs in-place replacement of a residue name by another.

Affects all residues with that name. Usage: python pdb_rplresname.py -<from>:<to> <pdb file> Example: python pdb_rplresname.py -HIP:HIS 1CTF.pdb # changes all HIP residues to HIS
pdb_seg

Modifies the segment identifier column of a PDB file (default is an empty segment).

Usage: python pdb_seg.py -<segment id> <pdb file> Example: python pdb_seg.py -C 1CTF.pdb
pdb_segxchain

Swaps the chain identifier by the segment identifier.

If the segment identifier is longer than one character, the script will truncate it. Does not ensure unique chain IDs. Usage: python pdb_segxchain.py <pdb file> Example: python pdb_segxchain.py 1CTF.pdb
pdb_selaltloc

Selects altloc labels for the entire PDB file.

By default, selects the label with the highest occupancy value for each atom, but the user can define a specific altloc label to select. Selecting by highest occupancy removes all altloc labels for all atoms. If the user provides an option (e.g. -A), only atoms with conformers with an altloc A are processed by the script. If you select -A and an atom has conformers with altlocs B and C, both B and C will be kept in the output. Usage: python pdb_selaltloc.py [-<option>] <pdb file> Example: python pdb_selaltloc.py 1CTF.pdb # picks locations with highest occupancy python pdb_selaltloc.py -A 1CTF.pdb # picks alternate locations labelled 'A'
pdb_selatom

Selects all atoms matching the given name in the PDB file.

Atom names are matched *without* taking into consideration spaces, so ' CA ' (alpha carbon) and 'CA ' (calcium) will both be kept if -CA is passed. Usage: python pdb_selatom.py -<option> <pdb file> Example: python pdb_selatom.py -CA 1CTF.pdb # keeps only alpha-carbon atoms python pdb_selatom.py -CA,C,N,O 1CTF.pdb # keeps only backbone atoms
pdb_selchain

Extracts one or more chains from a PDB file.

Usage: python pdb_selchain.py -<chain id> <pdb file> Example: python pdb_selchain.py -C 1CTF.pdb # selects chain C python pdb_selchain.py -A,C 1CTF.pdb # selects chains A and C
pdb_selelem

Selects all atoms that match the given element(s) in the PDB file.

Elements are read from the element column. Usage: python pdb_selelem.py -<option> <pdb file> Example: python pdb_selelem.py -H 1CTF.pdb # selects all protons python pdb_selelem.py -N 1CTF.pdb # selects all nitrogens python pdb_selelem.py -H,N 1CTF.pdb # selects all protons and nitrogens
pdb_selhetatm

Selects all HETATM records in the PDB file.

Usage: python pdb_selhetatm.py <pdb file> Example: python pdb_selhetatm.py 1CTF.pdb
pdb_selmodel

Extracts one or more models from a PDB file.

If the PDB file has no MODEL records, returns the entire file. Usage: python pdb_selmodel.py -<model id> <pdb file> Example: python pdb_selmodel.py -1 1GGR.pdb # selects model 1 python pdb_selmodel.py -1,3 1GGR.pdb # selects models 1 and 3
pdb_selres

Selects residues by their index, piecewise or in a range.

The range option has three components: start, end, and step. Start and end are optional and if ommitted the range will start at the first residue or end at the last, respectively. Usage: python pdb_selres.py -[resid]:[resid]:[step] <pdb file> Example: python pdb_selres.py -1,2,4,6 1CTF.pdb # Extracts residues 1, 2, 4 and 6 python pdb_selres.py -1:10 1CTF.pdb # Extracts residues 1 to 10 python pdb_selres.py -1:10,20:30 1CTF.pdb # Extracts residues 1 to 10 and 20 to 30 python pdb_selres.py -1: 1CTF.pdb # Extracts residues 1 to END python pdb_selres.py -:5 1CTF.pdb # Extracts residues from START to 5. python pdb_selres.py -::5 1CTF.pdb # Extracts every 5th residue python pdb_selres.py -1:10:5 1CTF.pdb # Extracts every 5th residue from 1 to 10
pdb_selresname

Selects all residues matching the given name in the PDB file.

Residues names are matched *without* taking into consideration spaces. Usage: python pdb_selresname.py -<option> <pdb file> Example: python pdb_selresname.py -ALA 1CTF.pdb # keeps only Alanines python pdb_selresname.py -ASP,GLU 1CTF.pdb # keeps (-) charged residues
pdb_selseg

Selects all atoms matching the given segment identifier.

Usage: python pdb_selseg.py -<segment id> <pdb file> Example: python pdb_selseg.py -C 1CTF.pdb # selects segment C python pdb_selseg.py -C,D 1CTF.pdb # selects segments C and D
pdb_shiftres

Shifts the residue numbers in the PDB file by a constant value.

Usage: python pdb_shiftres.py -<number> <pdb file> Example: python pdb_shiftres.py -10 1CTF.pdb # adds 10 to the original numbering python pdb_shiftres.py --5 1CTF.pdb # subtracts 5 from the original numbering
pdb_sort

Sorts the ATOM/HETATM/ANISOU/CONECT records in a PDB file.

Atoms are always sorted by their serial number, meaning the original ordering of the atoms within each residue are not changed. Alternate locations are sorted by default. Residues are sorted according to their residue sequence number and then by their insertion code (if any). Chains are sorted by their chain identifier. Finally, the file is sorted by all keys, and the records are placed in the following order: - ATOM/ANISOU, intercalated if the latter exist - HETATM - CONECT, sorted by the serial number of the central (first) atom MASTER, TER, END statements are removed. Headers (HEADER, REMARK, etc) are kept and placed first. Does NOT support multi-model files. Use pdb_splitmodel, then pdb_sort on each model, and then pdb_mkensemble. Usage: python pdb_sort.py -<option> <pdb file> Example: python pdb_sort.py 1CTF.pdb # sorts by chain and residues python pdb_sort.py -C 1CTF.pdb # sorts by chain (A, B, C ...) only python pdb_sort.py -R 1CTF.pdb # sorts by residue number/icode only
pdb_splitchain

Splits a PDB file into several, each containing one chain.

Usage: python pdb_splitchain.py <pdb file> Example: python pdb_splitchain.py 1CTF.pdb
pdb_splitmodel

Splits a PDB file into several, each containing one MODEL.

Usage: python pdb_splitmodel.py <pdb file> Example: python pdb_splitmodel.py 1CTF.pdb
pdb_splitseg

Splits a PDB file into several, each containing one segment.

Usage: python pdb_splitseg.py <pdb file> Example: python pdb_splitseg.py 1CTF.pdb
pdb_tidy

Modifies the file to adhere (as much as possible) to the format specifications.

Expects a sorted file - REMARK/ATOM/HETATM/END - so use pdb_sort in case you are not sure. This includes: - Adding TER statements after chain breaks/changes - Truncating/Padding all lines to 80 characters - Adds END statement at the end of the file Will remove all original TER/END statements from the file. Usage: python pdb_tidy.py [-strict] [-h36] <pdb file> Options: -h36: allows for hybrid36 output format for encoding >99999 atoms in the PDB file Example: python pdb_tidy.py 1CTF.pdb python pdb_tidy.py -strict 1CTF.pdb # does not add TER on chain breaks python pdb_tidy.py -h36 1CTF.pdb # allows for a number of atom >99999 by using hybrid_36 format
pdb_tocif

Rudimentarily converts the PDB file to mmCIF format.

Will convert only the coordinate section. Usage: python pdb_tocif.py <pdb file> Example: python pdb_tocif.py 1CTF.pdb
pdb_tofasta

Extracts the residue sequence in a PDB file to FASTA format.

Canonical amino acids and nucleotides are represented by their one-letter code while all others are represented by 'X'. The -multi option splits the different chains into different records in the FASTA file. Usage: python pdb_tofasta.py [-multi] <pdb file> Example: python pdb_tofasta.py 1CTF.pdb
pdb_uniqname

Renames atoms sequentially (C1, C2, O1, ...) for each HETATM residue.

Relies on an element column being present (see pdb_element). Usage: python pdb_uniqname.py <pdb file> Example: python pdb_uniqname.py 1CTF.pdb
pdb_validate

Validates the PDB file ATOM/HETATM lines according to the format specifications.

Does not catch all the errors though... people are creative! Usage: python pdb_validate.py <pdb file> Example: python pdb_validate.py 1CTF.pdb
pdb_wc

Summarizes the contents of a PDB file, like the wc command in UNIX.

By default, this tool produces a general summary, but you can use several options to produce focused but more detailed summaries: [m] - no. of models. [c] - no. of chains (plus per-model if multi-model file). [r] - no. of residues (plus per-model if multi-model file). [a] - no. of atoms (plus per-model if multi-model file). [h] - no. of HETATM (plus per-model if multi-model file). [o] - presence of disordered atoms (altloc). [i] - presence of insertion codes. Usage: python pdb_wc.py [-<option>] <pdb file> Example: python pdb_wc.py 1CTF.pdb
pdb-tools-2.7.0/docs/index.md.template000066400000000000000000000115001521210715700176140ustar00rootroot00000000000000--- layout: default --- A swiss army knife for manipulating and editing PDB files. ## Installation Instructions `pdb-tools` are available on PyPi and can be installed though `pip`. This is the recommended way as it makes updating/uninstalling rather simple: ```bash pip install pdb-tools ``` Because we use semantic versioning in the development of `pdb-tools`, every bugfix or new feature results in a new version of the software that is automatically published on PyPI. As such, there is no difference between the code on github and the latest version you can install with `pip`. To update your installation to the latest version of the code run: ```bash pip install --upgrade pdb-tools ``` ## What can I do with them? The purpose of each tool should be obvious from its name. In any case, [here](#list-of-tools) is a list of all the tools in the suite and their function. All tools share the same command-line interface. Below are a couple of examples to get you started. If you want to check out more examples of how to use the tools and their applications, or have any cool examples of your own, check out the [cookbook](cookbook). * Downloading a structure ```bash pdb_fetch 1brs > 1brs.pdb # 6 chains pdb_fetch -biounit 1brs > 1brs.pdb # 2 chains ``` * Renumbering a structure ```bash pdb_reres -1 1ctf.pdb > 1ctf_renumbered.pdb ``` * Selecting chain(s) ```bash pdb_selchain -A 1brs.pdb > 1brs_A.pdb pdb_selchain -A,D 1brs.pdb > 1brs_AD.pdb ``` * Deleting hydrogens ```bash pdb_delelem -H 1brs.pdb > 1brs_noH.pdb ``` * Selecting backbone atoms ```bash pdb_selatom -CA,C,N,O 1brs.pdb > 1brs_bb.pdb ``` * Selecting chains, removing HETATM, and producing a valid PDB file ```bash pdb_selchain -A,D 1brs.pdb | pdb_delhetatm | pdb_tidy > 1brs_AD_noHET.pdb ``` *Note: On Windows the tools will have the `.exe` extension.* ## What _can't_ I do with them? Operations that involve coordinates or numerical calculations are usually not in the scope of `pdb-tools`. Use a proper library for that, it will be much faster and scalable. Also, although we provide mmCIF<->PDB converters, we do not support large mmCIF files with more than 99999 atoms, or 9999 residues in a single chain. Our tools will complain if you try using them on such a molecule. ## About Manipulating PDB files is often painful. Extracting a particular chain or set of residues, renumbering residues, splitting or merging models and chains, or just ensuring the file is conforming to the PDB specifications are examples of tasks that can be done using any decent parsing library or graphical interface. These, however, almost always require 1) scripting knowledge, 2) time, and 3) installing one or more programs. `pdb-tools` were designed to be a swiss army knife for the PDB format. The philosophy of the scripts is simple: one script, one task. If you want to do two things, pipe the scripts together. Requests for new scripts will be taken into consideration - use the Issues button or write them yourself and create a Pull Request. ## Looking for the _other_ pdb-tools? The Harms lab maintains a set of tools also called `pdbtools`, which perform a slightly different set of functions. You can find them [here](https://github.com/harmslab/pdbtools). ## Citation We finally decided to write up a small publication describing the tools. If you used them in a project that is going to be published, please cite us: ``` Rodrigues JPGLM, Teixeira JMC, Trellet M and Bonvin AMJJ. pdb-tools: a swiss army knife for molecular structures. F1000Research 2018, 7:1961 (https://doi.org/10.12688/f1000research.17456.1) ``` If you use a reference manager that supports BibTex, use this record: ``` @Article{ 10.12688/f1000research.17456.1, AUTHOR = { Rodrigues, JPGLM and Teixeira, JMC and Trellet, M and Bonvin, AMJJ}, TITLE = {pdb-tools: a swiss army knife for molecular structures [version 1; peer review: 2 approved] }, JOURNAL = {F1000Research}, VOLUME = {7}, YEAR = {2018}, NUMBER = {1961}, DOI = {10.12688/f1000research.17456.1} } ``` ## Requirements `pdb-tools` should run on Python 2.7+ and Python 3.x. We test on Python 2.7, 3.6, and 3.7. There are no dependencies. ## Installing from Source Download the zip archive or clone the repository with git. We recommend the `git` approach since it makes updating the tools extremely simple. ```bash # To download git clone https://github.com/haddocking/pdb-tools cd pdb-tools # To update git pull origin master # To install python setup.py install ``` ## Contributing If you want to contribute to the development of `pdb-tools`, provide a bug fix, or a new tools, read our `CONTRIBUTING` instructions [here](https://github.com/haddocking/pdb-tools/blob/master/CONTRIBUTING.md). ## License `pdb-tools` are open-source and licensed under the Apache License, version 2.0. For details, see the LICENSE file. ## List of Tools pdb-tools-2.7.0/docs/logo/000077500000000000000000000000001521210715700153145ustar00rootroot00000000000000pdb-tools-2.7.0/docs/logo/pdb-tools.png000066400000000000000000002673311521210715700177410ustar00rootroot00000000000000‰PNG  IHDRþÊÕ<¯× pHYs.#.#x¥?v IDATxœì� ˜Õ±ø« èS”–‡e€ay>A„A�ËcJA74PãòWB|*q��†%QPÀ$FÀ¼öADðË6%” BìÿW—îËésOï{ßú}ß…¹½žî®[]§N�*IQ ÂE’¤ÉxBEQ&û­' I’Lo´¢(Rš®×.'$£™ÉE’¤÷4á»gâ$4ÝgÜø[r׆ÛH’4·èîiÀà@á€ÎpLÙžG’ò pž¢(#“zÍN! MóٽǚÓë˜^ÁáTøØm­ìÅ4A ;wív|ðÅ/.KÐz‡^Á IR/xÃí½ÅWq±¼†IÀÍë—¥˜lAz‘B S|8jï8^˜ßÐ+8 ð5L6 5¤„q.ÛÆÍ>I†0 4 6ñ^ûñC®šû¿¨Æ…ù±Iúø÷ÁÛ‹Ÿû|H±âšÑ×)ÚöÅô È vTÃè^³¯Ý¸i?ѨŒŸm$ I’Jà€Ù™âøÚ5ògúÙI"0E©ÅÆ?´zõêCee�XÛ|"•{uú4^]Ï�ƒöAaËdªbÿÚA{{ͺÀÏC�0äÂî~sHc@&SÇHèFaø$I£a5wÖ«ãÖ@´[�Ö©‚Yç׉èòVi>?ÁgG\žGeeÖ7©Ì™·Àw_%uBB†í=ÖÖÖAIIÃ|TÍÒJGµg,IÒR ~]�½sDû?¨1ò†ˆÝ8Á0ã­Ü)š"²œõ½=$€!· J¬à•üâUá6u¿î“ÿ;¨vP'$â6AI;f�‹û ¨‚Ù÷Ò+k�Æ›ÁC® ¬}ååm`S÷;-·[×馼�é+ØHê‹5�„[ÂN5xV�xwж�™æ¡½Žý~öB ¨¦‰È_Põ?Î}ŒÖÆH’´Êëí±º×¸þƒÍ[ \FN…Ïí>v(pÃh{ti/fé^à—Õ¸ ¢p$�žA6Y�´�ŽÎ.X§ h=ÙÚZCß²“ó�Weºç©è4 XøÄhÛ�&´Ä� JüÈ Ë»¯÷-[>ð¡)ð¨ÑÈ  áÓ !´Æ�€Š¢Ø( ƒzÁ!à¥r»Çf�Êðuº¨Ît¢ýØ}Ð$L™àáÕeöúEí¸°®î nX zÐø¶ª:ú dë�á¨g(ßä¢EñõaŸþõÔ¼[¸)E3Ú�hAmÛÊÊ–�²ÒÒ’Ü>ì*DÛÿùÑŽoô‡]æx;h¯`?zj%�´0%hšH#ØõÚ+ÓNµòÏ}ÞmÜ0›Aù�@S5o“�~7.m°�×V¼`òöšÏaü¹geG™mü‰ÿãÈ  ½,EQºøÜ¶TÂLNý`wŠ&/iø%„••=:7hÐ ÷7 X¿C ¶éû¯ó§Nž äùJü ·ÓŽˆÖ!‡´ÿd2Uµ"Ó† ‹ ¥á³à…¸ºú-ÓvŽEn˜#ËÙR^SÊr¸(jÚ:]Ç0“©*° µi¡ªASlµö�¾Ï?ÿ,?+IÒ@¿îš.Á©ô¢ýÔ^3þº—)ŠâÛ¥¡�Ⱦ ‡ßexµ½vêä6÷|D¯p3­¦m¯iIæm©}÷¬ ¢a4!ü|Ñ÷ aý¯…;ƒsº:n  ÜG�L„Ý3^òåêDBhמ3 %ó#EG(ñ€N"‚‹ ?²ð&l¾ýzøçsk;)'„e9k«W´šÎŠ¥‘pÚrŽ®†¥)ÔKxáëG ‚ƒ«·‡ßšcÏ06.³@{Á’$åJN9�2=`Jó|sT_r1¬jÕ9ÿñ*|͆gm�ç„cÂ7!üÛbŒå¬8/ÐK¹‚„¼ŠQ“zq™Ú+•=O«Û‡@ùÍ÷ž›é;y†¥¢˜Cõù„ü;%ð‰é3›ô)ÂÝEKDç Zà¬àÜ.¾¡ ˜Ä÷üR F½`|uÎ1ÚÉîɽNÆqr®€oFµÀ5¼¤=t�³8×Mó­ûÑ÷à«¿}bºŸ*¨±y«ú‘å+_ƒ~}.a×åÿ¶;S+a8×(QP”Çk7­-¸œý[´�Á±b#€Â9!Ú¬*VøØåÚ¶’$Yö¦~;ë ¿Ûì'|’ ¼ð±†°„µ +L•VêÚœ°±¶ ƒ¶zž&àsBìh,f¡Î2öæcr©9vp—�ƒ [à4ÁaÿÇWêÖûo×-?±q3ÛÇã…׈¯¿þz’¿Wã-":¨Ô£Ü´ÌÇz¼K¤•¶"�³+¬Ð}óù>ݺ�g/×iº-wßdxvÝúQƒsÂkçzúôégÙÆ°�Ø„ÓNí5;ã�nŽíÁþ3ä‹*íç‡ †;Þ¶VÝ[õ)ÁUhRP �U÷é •¯®¶Ôd,¸îÌûCû»¦éÊnOÖ eã.‡¶·LÕ´Øé Û™ïmã¹ç< \Ø_~ßzjuïÀÁàF-®ÌdRNþ—¡]Ÿh#·¡I~¢ KóA}sÿ³¯^ü:´õPù^lP ð±°#\ü똼ÏZ´¶¨Éžmùm-„ðj^áàw´óqßz8Ï3èlèÚŲ¶L(8(Œòõ34É �æþ6�¼×ðuªý�N`v™ÝQ‰°Ü;|8Ö›YY·^{>(ˆ’$壦�„�]‡‚h$„¸|μ¢ÝaÑó A’ž;nŠ&6ÛÅ…MÐ[�ହBtB·ñ¦apà/¾ä1ñD“Þ ×κשHÓ‰„Žý®ÙraöA>|ýŠ‚S�ÓŠfÂÇ‚ÛiBXYÙc?‚6rÄ0Óýó¨öfÝ";š“­�¡ÚÈì6ëö‡¯6üÃѹàný›PÒõbÃ3iÂhdçEß–/¿<ýû_Êß!Ú[É®ð (¾�;ÿS!ÔÍŠã‡Þ¬°è€èËVtƒ~ØíE†Šh¸‹íD°D!tF¯{�zö™ã¯?MøTí×H–³µ™LU/V bæÔ¿q¥‡Z°sç.РÁ©ºåxL‘bCpñ¢ç §eú�D»àQÜ{!NÚ Líº»î§Üå„OèÄ×/ ‹[í§uJø õï¾ûÎþÇ75ìk Y˜âø ·ÂŒé�ä÷aVåwH’†³ Ž2|ºhý,Üë2¸ç/��>b¸_ß²F0yáñŽ›™ðÁñˆßëÔé¤:¸c×)Š’ÛF¨ anº¤•}‡’Ž¿õ‚rO²¦3‡ÊÐŒn“00¸§= /-[jØ‚Ágœ ýµ`ù˯¬€û¦æ]0󂾑ð�IGµ U“LI’0£Ó8~½ Ç\j…©®èX°'˜Ü­·ÝkÞ®6Ü'Âèe¯ ×±†œÝç½Åþâ¸P çÀÌýŸVá #�þÓ«¡f»ñ<‘ñÿñ- yM®û¿­Û`ÔHã¸'S0Áe/m@7CtŽCòñb’Pp9œØ¶*_SØ#_œÆ½_‚þﯮ3ëp¨¬–ålhüµˆÜÎ Y½hñó¹X:Ò~Çiôýs ó¬g„ë¬î¾=]w8ж“åìHÇ æÐ:¢(Pvµà Ê\j?ðX+.Õ¶Ÿš�¾κWœy׋Àñ><Sd9XT³ÝW1«ùÜ •ku@ùÄaÐêÚÛ…;x¸I“§Â«+W˜í>H–³Æ]`Ÿa5!ñá ÛÁÿ.~%ÿÝKà°'Ä �4Óáñ;¡Ùe?^¡�»qÌͰéý÷Ív¯�ålA*µ0Ñ„D6Þâcßý˜0æI_pì†ð£T‚B‹a%p¿>IrÝራ‹$”zÅÅlf6¾õK›Š×YÍ̶M¡ë|áuË}ãŠÊ4s([ Í“™³¡ã´']íKgLªÐHà F ò4jx*Ìè{~A± œx@,›ù¥`"pë׿cÇŽ5ܯýé�aÚµC]w8HàÜãÅ„¨í@#�ãà èÖ¢)L¹û®;$pþ‘¨W°‘Àἃ§ž4N‚¡IwÏþ½ë \pø¢! -èwh’ \|ðMÁ! 14I \tx@DùÓ�7Ãx,÷Ån4ôwŸUÖ ×Y…&݇árY¼¯Uh’“ÝDðø"€ ¾ÖøYW¬Flس�kÇ­Ù°–�Фe²œ¥B81ÅVÁÆô¿€C“fÈrv¼e‹‰Xà—‚&„®ëöìw´£™ÀYu8𔲜�îè„DlðMÕ J¹¿1YÐ왳àÏ‹KÌš œU‡#ìÐ$"XüÔ€:!´‹U‡#¡IDpø*€ÀLZºÿ�àâªÂb*I M"‚Áw„cB†)ÖjìlK>¸â&dQ‹$çý1$pKàHp7üXé«ñТĦTB”�†€$I«Ø’æ)ŠâyZe! *Ôm `€P¡nk­\̸)Ô 63Ó§ À©­��j‹ z@êö Ò€D¤�ÄÛkijV¤¬Â¼%$€D¤� dÚ‡4 )$€àU{“3š0@œ� ºhd! M‹Ù*Š#|‡Â~ýÄ“ãÛ´ikáS«gé>¾ŸzÁÁãGåñ¨Ú͡ß?Ò€!€K}`åìÙ.¸ ;VžZ–á—®%3(K~ˆ(в#“©ZͧHàuØ)Õo Ò€!f£$@H8Fµ}©¼IH1ÅÌ…äÛ|ŸÓ'Ü�šGGø‰Ë³¨¬ì1Rkãý>¤¨=ßÛHn˜áÝ1¢2ö̺P{ÆÜä)]EÔuëÖÂÑ£GðÏrìHùy^z‡„ö€ûöíŸÿõ³hËÆ�¿%·4Œ¹!FÎeü^]ýàéÖ­»æJòUø€Ñáà&<+èÑVèJ~ñjÁúº_÷Éÿ�UòƒÊhAq@­="ÁãÑ1¨½‚ÆmpjPÓ4�»]P&�¡Š¡Eö=’$ tòœì ŸÛí�P €’$Mg?nô`8º´WîfEÍwBØàšÑ×¹ºMv&(©ÉŽ–ðî ì̈:^žWÊGâ\ù/(tFÔx\öŠ1Ÿ‰𞢠ýì¦ï[WwJKKLï±QЀº.×�ÐÐzµn4ZP¶`^¢æÃÿ¸ÔTø@NÜNÝ�ò5[0öæ]íWQQáé¼(˜šÐi ¹Þ¸†ž?˜0ßS[Œ`_Áã🅣þekGf»ÄEs$…šÓÜÙ© '€’$år2[i>m{ꘘÒÛãþ3ÜîÈ¿‚‘EONtu¬??:Âm3LÑâK9:�¯ÁU(øqé´*ºS!IÒþØ/,y)÷?ë@Ž£¢È¿‚ûö¾ØÕ®ù ½�­p;A µ;&+BQÌÁ½Lrí3øŠí{§o:jÿÊ7ºýý$/€S†žéê°×ö<Åï6¥•\�ÂJµõíÚµÏ/³!„µ°öc´ý[_áèøÐe�=’¼{`­«<µú+?Û“ZPS±šÐèªækÖìtÝ­°B»hm`ÇzÍz(NÒâûÁE'Ÿ ù�!²ÇØ{h$p~à±Y÷LäÁ’$a˜M+X§(Ji ,fl¡¨ †ÊF+³Ç|÷ÝwàðaãÚÎõêÕÏ…b©ÔÉrÖ÷g,ñƒÞN„�´_ð°sáE•ððC:9§î¹ˆZfOÆú%0]Q”¥ü¶¬Æôóy³ˆ’÷ØÂöviŽÒ Š¢8*—*IþBç ¯ùûÄÃç9±m T¾þ&»T2Ц¦Å¼q-zç®Ýв¬ìÚ½Zµ,¿Þz¡Ž[ù¡H«'M­08#Ø’¸¢"‘Vv]&S5¾ºú­G�ê›øñ¼ RYM¨1sâp;u¿ï TÕ¶NbQ¬�¦è·Rq¬QÌ\¸ZÔ|7'¢ëŸ‡†çVTš·Ó©0 tŸ„Ð0"Ú¤¼ÔFEQºØ>�*|v"BÙ(EQæÚ=G‚0,Ùå—À‰Ð4¡¦íöh#@ ÞvpÒ—$ uÖ¿è×ç»ûäþOÉë¸Öh˜3H�Á¼Ž™LA  in˜L¦ÊkÐéüÇ®ðÁñ¼#¾å çå·À¡@… Ä«%IêiRãn£h''X%'2«ðh‹”Oz^Ü‘Úý wþn`'=åü3„Ë5-'L\ÆvJì (J/5ú]8‡Ù‰)f„ÓìX¶C‹¼D^hZ0†¯éàûÕ°þ‡cBkíWûD÷Ý¡`MV?¶À·�&„,~½�„6 ™ðØ=±—Ràc7ß#ÂÆï{ùYØ2æ�HÆj;3Í'Úlj4: h–:SÌ®\¹œ¬4úì„·ó©iP3õ™ð[£¾n»½ð×ü÷o>ßÕ}uÛl¹û&èpß,�& »“ã–‚¡8°ÐZ›·|çtì mg:YÆêXf„¤…�ûû/'ÀÞ§_øÔ…ˆ—íùÃo`Û=OC·7ž�SÚœ“[×d@gèô›ù‚f¦ 㨵�üœã÷ž‰“,¦c‡³mMšö"<Ú|FªëG Ê=0í´ð¡ à笷è–åÚ2j°î;‚‡¬ë=,¿ì³ez»O;&Róدm¿Ÿhñ€¹ ISiÛ6µ]Û6â΄Pàª/¹X'pWû3ù ÙðŒíí›Ô‚äÚòúVáqÍΉ|öƲüõ윶ÈQ»£äMû9}Uj¾=‹Þn®×¼fí;¶�ëÁÝÚHàXaÃÏ79+$m/h‹Y�6˜Øiìò½K�%"e5]Ȧ‘÷:j¶—kö“4í8!{Ñ…Ý`î|k#žŠ³Ñœ^œ°åãâx� ^04a M½&'Á¾²ø‚ÔmÙ}þ>î‘ãBöó®¯ç;�OÊý¯ÇÙ@Œ ðššg]¦‚Ó4E��‡Á3 f‚á²GEÇ�¢ÇW±d&”t=>‘‹í4 †C!¹JøïlÛƒìŲãÁM›6…eË–Ø~fFØyK‰:£ª¢É�÷‡"€Úx2?KŸ‡;Ît#íµ‹�5öËo¾G×&\‡ Í–32c…MäZ ¢½(|­ËËaGÍñ jÑØ>+|Ÿµh'¿Ñ�ðÙ½#G +Ørñ¢çrÑ4Cqv„Ð$r¹`ç C“‚Dúb‰òÇS6îrh{‹8½š‘f{~ÑópæÍÙm*d9û·oëêê·r=»¯_Ô‚" ¨ ¶a/X4)É* VƒÑ~ºy$IÖp<Úë´ÓÜ_:uöz¦ýƒcàÌ¡âÜ‚V¯Ò%wßÍ.ûqîïÿÛº F�<æZ5ŠhwjÿñhhÕ«î­Y�_!Šýâá$]7â�FP²ã°AÑyÁýШJœ‡ÅJàøê0TmXgº_PÙ ¬Žoæ%)è3ùK Ô ¯bos³2ûñÇr§Uøþ5ìÝW/„“[Ÿ-<š•À=úŸ§t8Ìö Rø–W¶xÞ�íè¸Nk¸jŒ4 Žxl4Ö—c™õ¢­nVç–¶;,fÀåFšÜ¼‚5 ›(×X Âç/÷ûþçÃY÷ G-÷u«íÜÚ�ªöÖÆþ�àØ�çWª°´a$pŸìÝ C_ixµ-š”À´Ë/†V×Þ.\”À ؉ã _4=NÛÿ�­íçj¥—R]J±k?#�[¿þ=;Öøµ}îM`ʨ«ò½Tž®M þ¿Á—­kÌí:/¯^ ·˜ËaRlh$p|Ú ž‹ËšÀ½ÜïºÃt퀾4¸ 2köê¶`Æ€ƒÏŒ`@n§´  ‘ÀáˆÂ³ÏäÊÉóƒ3Kà®çÿl¸>ng„ÅíNEQZ{=‡Û`„�j Aª0¸I“§Â«+W^ê°ÓO†›^4^Ÿ�ã cæ£[ìb–†") œºdĘ’`øË«…k­:AeM*žÂ±’„ icžÁþýû ¯æ8 —Ë…£ `£Ã�o YÎzNa‘V<õ‚!Æv`Þm ëü%Âu–!I{jÇ—_Y÷M5­·fšu”Г øŸWu‡ŽÓž®ó"psæ-€§ž|Âl÷)²œµ?Ÿ•БXtš¤a&pN{^Zfšøu”,gÓ˜<3<¿‚!¤×°—Ð$3�³êpà“,g©8w@x@Є0ˆlQA„&��”Ërv‡“¶îñEÁ‡„>a†&±ÄÕW,ø&€v_ÇQ„& \ìð*€ˆ‚ó>žøã º,ø›o¿þùÜñˆF÷å—‡ ÿKMO0ÿG½\w8Hàâ�/ªæ»»ECX´øy8£ysÃ�Ùù "04鑟üÀu‡ƒ.Yø!€  áº�ýaÂ?�•oÅФÿýùõ®;$pÉÆ/Þ-ƒÚPDÒB“ˆ`ñM3™ªÒ¦M›X¶L<üe²Ÿéz¸tã§ÌÁϬ7ÝŸ®¸ð]ÁYyù�²œõÔH$—@�…FŠ!t.€6jõw'�‘ EQÞ³±‘2H‰G’¤RQžS·Páþâá„b¿DrÑŠ?°Êoñ‹ËrÉ�~°ž¿SP‚¬Â”C ‘8$IjÍV%Ÿ«¢U™ˆ¤‰DaVÏÚo8EèK"^P˜H ’$鿉ýòæŽßJ’$š‰›2È$ƒU½Õ 0(JB¤²‰DÀH\3úºÈš,IÒô¤Ü3²‰DÀZ;w톖e-Bk6¦b{óñéÁd¦²‰ÄñÇgŸ µÉ/-ÕÅT‹S2‰„,@"1��ð²‰DbUÈÚ/Â: ¤‰ÄÀ[_A+' ˆN?¤‰D¡*¡:­Í¨¤6oùÐ×KxaÉK¼òÛHÊ/���H,¢²^äYdQ’ⳇ¦Ä×$¨S%Ö¥8É$ *'Q·˜ý ¹r(ÔÕÔ]â®Ý{ _¿K ¶e¨›ÐÃ$�À·Ng>Åà!W•pÛIJ‰T!J”`“FŠ¢Ô’4XƒYx XÜqI/šéDq ( ÎÖýÀì¤(—å,)?¨Éf)?m[´ºW®\ž›Ó—ÄÔ&Š�Fô”}#î¦ç¸bÅ+ÚŸ­âr1¤‰ÔCÖ�ÿÌ�/®�œ4ÈH6»Á4èam@éîÐü€ä$ˆð©€ xÖwß}>\Ðf¤2öáQ‚ LÙ͵¢¶¶JJÄ•˜!æS É$R�$I“`’׸ZQ”^$-zkzïÞO ¦f»Õ.±½w¤‰T"Š;{{Í:¸°û¶/ã[µ,+Xž¶ø@71z••=ÌV7JŠß• ‘*ø³U÷Ì i™l0k#Ï�›~ +Tä¿_r¤–L7NB[¯^}èÖ­{îï¤ùQI©�U~ËW¾ýú\âû¥á¬’ÒÒvQbŠª‹,½’_¼êúxu¿îS°,i/R€D*;W g –«رD’¤¥0@kÛ�Fܯž~™oMíû¯aṉ̃ì¢ÄTÐó¬%I� VMP…ê'�“¶D©ìT3Žx«Ï‹Ågo&Át¤ý˜ÐLÌ ?‘$ •ÁÚ!£R€0OQ”‘Ž…%7¯Ö¾]wNÓîw˜ÊO#iJÐ2ÐHé]jT»ÞÀUÂã‘2$| ¯üf>6;Ôû‰£Ê]ØMûŠÊË•Ô~ØþŸÝtƒé¶šblÓ¦-†Ÿl@…XYÙ§úuQ7þ0ÃP~ÚyD¾Á¸b¨EŠÏ‰Ò3Ú¯ý„]ù¸!&¢œ!á–�ÚÜÒ ëß õ&~üÉ^ÏÇÐ~‹_\?t¹íý¶oÿHS‚°mÛÖíÚµ×­ß´éýüß=.î›<·Ô>‡ÞKÎÎ__œßÂ.0¯üÜ*>3XE¤ ÄÁèv Äí´2¾ |\^uõ[ù¿0a>dë�áêøn¨:ú üùÑù=ãüÛ.H†À *¾ ”²õÑ–ºcÇ5a"‘,ÆO¸5”öbÚ|¯£À+^}Ýñ>˜^ 9í´Â8ÇfÍNÏÿÍ*£0PvèºÛ;C=¹Ct �W~a@J�ð ka̘þH. t�`¡ôÁWä£J{}±‡Éw�%Iê¢M‡ pƒ$0HQ”¥¡�œH ü 4ˆî0?Ax}ä IDAT»ž~Ì~`C_ÊËÛä||6Î?JQ”¹&ÇÔÅÿE0 ûx@Væ¥eæÄá0æ¼=¡5bݧ͡ò†góßÉH¸E’$Ìâr€ÝÝ�ép¼âëÐá(-Õ'Œñk˜UOÈÉïƒ�)¤8@=”‹Hj]�ÜOS$ÜÔ5عk7´,kaxÙ‚ény.¸ ;Ô¯__¸NË’âUú©80­['ESR~*BAØKoEQV‰·Ž¬¨+&a817�Hý˹‚Iv’ª²Ä)1@&S5~ݺµ�=zD·Üíq§oÂ[_Q°<Ñs�Y!ÙñÌ@hÑ œŒ6¬¤î/w2™*³©jD­yÅ}äÈxç�µ¦ûô½ô 8ñäSs³ƒ":wî œš_“¤Œ0q€¬ü|Ñ÷ aý¯m)?"©¸P„ì@£K62³>L±k±ÚLjš§yóæP^ÞÖêZñ[Ž,šëö’ò#K&S•˯קo?˜2y¢£Ë8ø~5¬ÿáÃõ�¾tžeZ€•ªn>p&SÕÅ�¢u•¼”W®µµµ°eËvv�•‹Ë0‚(#…Š�W|°òsáû™¡(Êø€šC$£ÌG†ì{ùYØ2æ_/úĶ%Pùú›¢U’?¥W+ ϵmÛVØ·ïÓÜ÷6o�ŽÎ6Ü~ó–ᜎ´¯ž’Gø…e6£Ô~‡ë˜Å-ŠÐæ0C ~_©I‡%j›Û@X¬y:êêáüâX¼±Oèƒíð÷_N€½O;Ÿ¦6½vnÔ�Ñ@ VÈrÖ·ìÕ^æ1Ç¥D¦ç„¨¼Œ4nÜÚ¶mŸ‹— Úd HQˆ"a‡–Æ.oþbËw•XEÈ*Á ~‡E¯3™*]2JA*À0¦>1çb¿šNA"Ãñ^7°?|µáEõD8k0ðß_’`A6‡˜*¿ a•ß='ž‰;þœð¯8õ´VœÙ§€U­:›~â¤üP1iŸv¿Øy°ÛÎØCS^¨ÌF_{½­}0[O\”ø`Zí¼Z–³¾ÇÐðuHÒP¢°ì-ð|½ãCXÛ3ØÌ.aÃZg¨ yx_žÙ¶f„e‚ ‘ 05˜1à “5[#6•ô\)@¾~�œ3¹nÝšÀ<®jG Ð�‘N-ãÙ—aãð»ÂmeİЩæ±_ÁÎi‹rŸ5ãh>ðê‚åni>ú8ë^]ÄNh²*IÒd˜Ä,š¢(Êä°Îï;a0Ù5Üâ—ˆ‹,²y˼P[òñÂÙ°õŽÇ£imˆ¬·M?Ÿ-Ó/7²�¬?dÏ~ÛîyÚÑE…i&³@è‚èk›úKgŠœEUñd“ŽCD>zd"ìžñ’�-Ó ¯¸Ö� ÿ3q2œÒæœü²·ºvƒ£ŸÎýÍn¿õþÛáãÙË îÏ™7ö‡öwM+Xî¤+̵«7î^´ÉÓ¹Àȸñ·ÀôGöçd>…”�йéZNvÜ|ûõðÏçÌ'Í' M!) 3K L¬6+Ÿž“ýìà î:0áæOlï\$fƒqÝíNÖaÎ2ÇÐ�;µL½¶;†ÊÏÑÄ|HHˆH³áØ·@öåXvÌ”�h»LÔMµ£Y…ì× ¬[o»~èAês3B‡aQqJÐUêì"Štå‡ÍVtƒ~8˜ù„‘‚ເn ¯XŒ¬@7»lËÝ7é¶…úÍçû º¢¯ÛK3„ŠNRšª°È)@V‘8­Oê?,ª”Ìq’½#Ç‘Úý wþnM £QQ(�zMN‚ë×´Ïm·ÐJÁ±~;«ý+7¬„7žÓªËl;‡ÿôj¨Ù¾àu0‹P)P€aúÓø!/ÊÅϹÀXò�­ú¥²QQ[yØ €%Nv°J“”&ìZ�À(IÞ¢c÷à ã?ý¹p½™µ¦aåäÏ7Øöùå!èßÿRx~ÑópæÍ}U€nsømDH’ää÷¥«ß,ñªIUÍdªFVW¿e‹†ƒ:C‡ ®õ1Œã‘ Ò$%+åÂ[KN»¤¬Òüjû°®÷0Ó}°û©YnüñÑÿØá¾Y¹¿ëÖ¿ ��ýf¯íÿ¶nƒQ#Gåþ–å,Ÿ až,g%÷0‹ÿ;¨?L~GkÑÎõÕîm{2œ³z¿x‚¢(Ó�Çí\dv*^¤]`6/˜ÛÑ` ;‰ MœÀÕÓÉùÒ"â‘%÷ÙË Io½ë ºOOøfë±¼™²b-73+�0໺qî–�([ôƒÓ†—–Ï¿é@ù á /ŠOD“=ÛtK�Œ L¦J—«Qk—[}¥)AMêÒ…¥ý²þ¬”ߢÅÏÃÍ›;:æúƒààjûuŠ V)¡âÛ4ò^ݰ-u3Ç*:슖t½X·Ÿèüiä?¯ê§=)¼2‘‚ó¢üvïÞ•ûäï±ÏŠ�勦'Bë÷¶ä—`±y+|U€rH ø¬ü´í„êK.†o>ªó|ÅŒÝ.-ÎŒ8øúÖ‚å<{—ÎËχ5 H3 {¶�®óí�•)6ö÷Àç´›2Ÿµü‚T~,¬5h¥ÙÊvž»ÀÌŠÀ• Ë°lj.‹­;f#±fÊ‘g)e'HP`ÉúõïÁرö_xCÀnBT¾º]ʹ­¢æüieþ»%hg„�îȂة 7gÞ9¢p4Í ‚9Áf>?SÍ›Æ4IIÅÉ´±´S>q´ºövGWùò++ྩS]Ý™Ÿýð»ðã; £ZxËÐi4ûûS‚=+° Å?5Ö]Ól0Fq>v‚¥ ’ Ài§5„N�ÎÍýÍ=áT.²äâ�ÛQØ$Òáñ;¡Ùe?vÔr4žzò ×Wûƒ3Kࢵ»!³ñ5¨_ÚÔp;?k€ÄE†1ÝÔv>@/‘ÊÊZæ>"d9»“ïÞ’ÒKiQ‚¢ kVLš<^]¹Âõ9‡�~2t©ý—Q™KCpnïš·«�V�’å¬ë©šÅ¤ëÙÝÐMc2™*Sß�ê³È¯'ÅG‰•%âÆ17æ÷ßwݪ1%'@‡¦� n ŸìÝ C_éhŸ æú¾˜i WÈ;llé.$fFçô\ΊL¦J8‘ŸuØ’â#¼ò�Æ'AÕ†ÂyÂV 0öïßïúìwÀah›ébžb„“Á ÏäpBØV ?V¶¥À ;üNÊ�pŠÓ`æÁº¥QÃSá¶-Ÿ@ٸˡí-Î*¼ n¨ge„ «ͦºyÅn0t„¦A³—„tMD8˜ùÁÎuuCûÓÃÈww@ûÇÀ™CÍç„óxÜÀ.ž,gÇÇ]¼xßÿŽ.à´ýßørì:”Áâº:Yžfƒ¹!T¨’?!YŃ+êͬ wÝy§ë{Ô­ES°f;t^p?4ªºÌѾü”2xˆˆ~ÍÞÖ©ºÿõÝ‚åQ%¶=âù!y¬F¤‡(¬¨¾e� ×Û;] nXŒ¢Ú¡·,g‹¦ÆS8?°Éw]m±G·QäEÅÂV€y“ïówÞùÔ„¢°¢Ÿq*œ¿í3WƒZP”Ër6œáÏÁgn·S"—a�¢(žÌj¿ » ¬Ë›G]àøÐ}õB8¹µùT"¯VÔ5MO„NR=è¶ÔY¶d¯ƒPÈ‘<ÈX¸ ñjE�ÿ�oá¿Ïj]�²É ¯ƒ˜ŽQ–³ŽkÌÅG¤ °˜Ò¾É)ÿåØŠ9â4îýâ´ÜÓñ¯ƒ¢ù ᆰ}€Èj-ù¨ÓiGÅŠ(ñ¥^­¨MJ`ÌÆÝ®&ø?¿x Ìxô/O+!"Dò‰Â>ÛK±w…ݤIòjE�{F¸j]�«Á ¬­ðì3 \ŸÓŸËrÖQús‚‚X(@ ‰Ù8ü®Ô>à(¬¨‹Ëš@ÿ·k\ nx�à�£}²œ�ÕhAˆˆJê*Ñi$Õt“&É«¥¥I²S‘LJWi–"nD¥Á(éi‹ %)Mø0¸�nGYκ.UHI!JV™ŸÃ²Óž&‰£N–³¡Î·$ˆ¸µÔ•£DËŨÀ‘ÛÄ '¶-qeEyM“ä6Dć4I"B6‰Z"º|þ¨èî<å¤Üßnª½ÙÁ«¥¥I »„J y࢘ˆƒÔ(�¹»EÂ�ÆM¸®<Èô@^­(-MR5 `Š,g +Ýá;qR€Ø^%ËÙžür#eè-MRƒiK“DI&V PêØùº�ýá« ÿÈý½§c)È å×µ”ŽBÇ�÷AÃ=‡#Ü(¶4I‘db©á˜ìðï /ª„‡zЗãzÜ 4I‘b«YØz"C!"QD$B²U™³ÉFYÎv‰ªíAÄ‹Ä)@‚pŠ$I½Ôé—Ȫ¨Ó°ñ€”‘:DÅ{L½ Hù©Á¡Ò+ ªŠdD4œ@÷�H:¨ô¼*>8~JüP$�åG$#¥gW®%Il쑘~Hù‰E¤øÜʳH ’L7Ôí% ¯ø¿¸ÌµâUiÞÿàCºe~t¥‰øB–‘8x¥ä§ ×Õ„ÒÒÝ2²Ó Y~D¢�$I—j¿¶¶Î׿—”4„6oÑ-“$‰ 4¥R~DÒȧ7þ–œ²ò›ŽΆ¾}û³GGR’>¨ÛK$† »»"¸A��Š¢´&iIdù‰$Œ—öÎ]»Ù¯­HRÒY~D"�$)Ÿî BR~ÀY4ð‘.Èò#’B^ñ¡¯/,ÊËÛäÏD¡/é‚,?"°Š'l™%ë/��åGDQBÊ� ˆ¢„”AE )?‚ ŠR~A%¤ü‚(JHù‰cÍÚwBkòog=A’R(Î�H’$-ÅúóZ[£˜á£E™K“Hù‰!Š@g pN/Ôí%‰Qí ? ãDt�ò#C˜–ftf!«/}P·—Haåôã­>R~éƒ,?"QðJ(ˆ®))¾â€”‘D*Ø6û©ÇjD’NHù‰CQ,b4�m7*­Í[>t})+^}]¤ø0´¥–$ÄI’Z£;Bðëv“Ï�H*’$M€I|ó±¢›ÝÂF»vï�V-ËD«z+вЄÃI’Jà€�M)в4ªvA–‘XE™,òÇaÝ]´âð3wþ3—‡³6´õ"ŇÇ$ÅgŽ$IsYÅ·|åk¹Á'íÃÕ?YÇ,Ødù©À§W�¢(¥$æ¨ÝÙ%¸Ñœy `äˆa†Ûs–õFEQºDÝ~ R~Dª�$ }t%¯‰ÊR:@{Ñ`qw¬qlÍŸ§‘sêö©-7µÛŠ?²F×VVÖ*+{ä>¤øì#IÒmc»Š¹fôu¹ÿãÔý%Ë�H=™L•©�Ër–âøl¢)/7z#nÖY~A%¤üˆ¢'“©¢4U!‚q�qh)?‚¸šîAx(в#í åG«é)<¤üˆb`$=e‚‡”‘zd9‹nVJÈ…9M&Çݤü‚°�¢(ãµm‡\9ÔÖn/,y)ÿwœ‚œ)Î�( ´X¿}û>…mÛ¶Z]òEQ¦“dˆÉdªzUW¿õ†¶ÒL‡ ‚\¼è9ík…š‘'�ò#Š3 QZ+=ø"9rä¼óÎZÝrvº[›6m¡¦f;»:v•ïHù©Æ¯éT”ÍùjLd>4¨ºú-Ë}âzïÈçG¤I’F)¾û|H—~‰ýÌ|l¶ðv¨‰:S -IR/ƒ¤¤lbR]L¤6?çJsÌcæXDzüˆÔa”ÙÅ©¬�P¦É Tº£ ïÆ�ÃÿüOÃõI™+MÊ�H"ÅçUÆEJ0é P’$LÖÚÓË14h�;ëÊ©$*ID½´� |A’¤ñ~+>í¼Då¡(J¯$>93?è÷�€#m.ƒµ'4Í}?CùÎÚó,]Xè8tèPÎç‡ÝÞ$B–‘‚®é›ô’–jB�~ùà±3aåØËÍWuôøó£# –wîÜÞ{oC²î)?" P1ss$IÂôñØ�†\s7¬hÒÛÕñúÚ‹fý‚_»p3Hù‰‡¯"´Ls 0?xþåPò‹W}9nݯûð‹I¡.DÈ+¾òò6�_Ž–’]eNÜï_PŠÏàXvJYƲüˆÄÃþ¸Ã’gÖú‹u,[€Š�…·“àðlùᨗ ’jž¡‡Àc5¼Æ¯c•š{Òì=n}ѯf”R ÇÊO‹œg†(V¨'÷Ð(Ÿù],œœ…é´T¦õ÷dÚmt¢ùí6�Ð0´ûÇ"å<¶•Ÿ$I“Õ rã㘣>´É®[JôësIbo«,Þ^³Îrê�Så†e–4ëÏ–ÏÏêFϽï§0¼ãîÜßK·•ÁàÛþ`z<š$NøEþ> ¿ü~N¯ÁÎyÕÞVÞP K1q¾¿lþ¿¸a©üDŠïî±CaÊwÿaëR~-Ÿ wýúÑ*JDx&éÊ“ Àà°ýl \̯ǬÊý]]ýÖ$m�—x>§ôýׇ°xæØü^q6t »½šã•]6xÀ¥pti/ÛŠùEæãÜ>×üd¿ê€xIÅLNñÕÖÖ9º÷Lœ¤ýNõÚg’úÉ–âCìΉ†–¯øP�ùA½�ú�`ê^H�姀˶kçÍ­eóì…í‹c»¾‰³ü‚R|¢c%aTˆ ˆôQ ü‚T|FÇ$HøA]ÝÁDÝGÕßGD„i¨Kõ?¬U;žhc+‚°d§¶Ai©/áv¶è×ïRÏÇP…&DˆNùñX·Ó÷Ö² ô½dýnP¥u7nåÊåì×Fô𒇡åDw7ŠsÅÅog=øõ®YûŽî{![l-\ÂyåÇ(‰ 5/A8eжýØ›o üæ]ta7öëF�‡ËµÝ¨^ˆƒ¯8:f'‹r§µxl¢}ú|úrhçòJ>Ô…ív: böÊ‚Íe0òîã3B(ô…pC’“™4ÃC—ã0¢ƒEYʉ] ìö†¥ømZAxDçwråPßï'ߥþŸÿ9ëØ¾çõ¸¬3³±»m7¶�ïŠc-ް‰³âJfJ¤þǾxÑs0úÚë}»:ô±ñ]êÆ�›à�ƒP€¢Ûݶiqæ§�|øÐe^›h}²Â¬Î±†”‘x…ðû§çØ—&¢M›¶y›çkóSŽ²Ø¬ÜnW[Q”Rö{�mó=µÏŒ~uoóçN2S‚ˆ¢*@~„Ö»vïÉí[S³]·µÁ *@Ï£¾X¯Áä³Ãá!WküeÉüÀº¿‹žœÈ~u6Q9"Hù©C¤±ËˆŠÌŽ/pü„[sÛ¶jYV°ÎbtµÄè'|má º¿‚ö¥†ÇáhoØñwl²í%ü‚M啲²–¹�Mêd9+À�†ÿ;x½~¹§cvÿv?¬xXÿ2IÒï—”‘z$I®b+—×Y§Y2™L•£øYÎÆF–±íl¦ ·!0¢Á�¤ýv…ÝÞ[ÿÔ4´`²S‚œ§þ0�˜:ªß-oÁ9UfN•ePhíuÙQ‰9¥5Ú�—ëµ kùé*º‡eýqùýbI�0 PõAê2>ˆ,@žï‘[‚ƒ$VpJu†,g1SK—Ì4Š®/uy‰$ⓜËVŸ3-V§£¼ØÆ‘fÇì(A3.¸ ;Ô¯_¿`‹8u÷Í0T~‚¤¬ÎD’q¡—@A=‡Øþ�ØmŸS%hg>q`=ö *V>þn sÞž@NüÚîºï¤øˆ¤�?p33sæLèÚUW¦Æ«âC´óát>ð'Š™›]‚>ÎñZ!$@ eº6ƒ&“©Ò¹ÇxÖ­[ G�á ©º8†¿ÔðàGÆ‚²þ8«/–7‡ ì )š9sçÀ·oçèžm¾ýzøçsk ×wýÓãÐðÜJ³C NŸ Mt|»ÖcœŒa£ »¿Quw%IZʽ}1 ðdŒªãüDêpB³~Ä 8¸z»�- éµÓ0{Vþ÷´â�‡U|}ûö‡+^Ñm‹Y¯Ùä¯qQ€¶«·}¾è{аþמNvðÈÉÐxÈ_uË‚¼’$Ùu(‡Ò"ñŒœZ±n`øjƒ¿Y’ ”`E&S…òÞÙÎ1¼úä2™ªœâgŸ�àì¶‘ÿÎL‹–‹RË»µyk¼ƒZs�$ÿšmª/¹¾ù(ø©­'¶-�Ê×ßÔ-0`ìß¿ßÎõœˆÁMÙÐ8)@Så °¼¼ l}ÔÞTŸïÍøV¾ñfÁòŸéÍ|l6œ^W8øÅðÜÂ…¹Ì&�/²xÐ%ÿ´K¶¢üûóÑÝ$Þ Ìdª¬vÙ(ËYÝ(Œ[ÜÖÖ`ì•ØP(×üdT´=-÷÷†�¾€ßÿq™éñ‚¸h£.îâ—Á�]n÷Âåd¦ÓQK#Vµ²Õ« ' Яö÷æVùÀzd"ìžñRbîXJ)drYjP ºr^m¾eð$ÕòË�6ã\Â0@kM8ƒŸgmÉß9ö>ýzêoó‰íKáüçÁ‰�›å¾öÆ2Ø4ò^·‡›®úG}GQ”�šßÝŽäfw„[+C@â«·ñ“¨ÃBõyöY¥NÓ>–Š3ž`7Nû¤IñµûÕè‚eKfæ¬ÃÊWWçR¯¤‘£cã}cpä:pЍØúÓÎÿÖ–kÄ>±�¢ðp3§ÐøØ?ø0¥ ðÜŠ�7 ƒù Vá'§œt{áxbÖïW¹a¥Nᱬ5¾¾ÕQK¸.vàrÊ@0EQ”ÉA·Å.Ž•Ÿ� çæÍ›CyyÛÔ)?ˆafŠjz§¤Â*%Vù-wKØÊOw2}b‘�X@*ÌóÛŶÏÏj~/ËÞ½{suŸQ~æËSk±Ñ‹ôNiG„×õæç•�W}¡WeÇã*«‹K|™âÆ¢&Ë/\e< +½ShxI{è:gqAKx+ŽµÈ¶Þ;|<{yÁrN­Á²q—CÛ[¦²‹¨—Âá8ŸdkÕxaÉKº<^)¿Pp•Ä"êôNQáDqñJÒ¨ëku;DÙõMFiì…0œ*šÑ×^/ ñA’ÏÏ_R“Þ)lx……ÖÜÿ·½À tâß«×ä$8ûỡIo½ñÕöu‡Iù™#*`TðCø`óÇó÷¸c,ó¢8h´×3©NïdZ^vFNEVئŸ�€Ï–m4Üά‹ëepÃí`)?sDq~:ŇÊÅ‹âÓŽ1xÈUºe>úCƒU|8/1AMÈÅØY*>ÌxÂÆØ¥Añ¡2ùåX0ŨûÙé7ós!)nÏ-âÌ̓ô1öO-?Â?tÊ/È,)‹ž_÷LÔ‡©¹ø<�•¡¢ êy‰Œä”�e^;ÌxÂ*»4¥z¡)9>ؘ�Ã5ÆŽU:‹‡ÝR;Yi[î¾)ÿwû»¦åÿƶ`›ØOI׋óë}.zòÊO’$ÝHlÝÉ©¿,ˆot”’ˆ!òÎ–Ä ô_Ƙñœ²³Ìk·ïåguÊ.®©ž0ìÃX •ЦäZüôçùå¬U·ç¿ÉÝì"£Òa`�õë<µhßY¸|Û=O —ã¹}ð¯F–.>®°q~ù˜­·×x{¸f2¤8Î�Œ!3ì1ÆO¸¦?ú°é>^ánzz2kRŸÞÉÏ$͆gt Ph°3,xE„ ЪMhýÌÛh7¶§ñ…Ø9ÿŽgu°”O,°ç¨É#•œåÇ[}v¿ ÐûS[ëKìWÞ7cú#~ÏA>¿°ÓYMç,;KŇé�XË.ŽŠO›Ë*ê~úI‡ûfM»/Zœ�[Ì,BVYÖ<ö+Ã3`" l&1ð¢ø�V×WêN Ö0H*Z·7oõ…1zZRÒP÷Ý�ï�Ÿ#è5·˜·ÈQȉôÌå”�åätLïÄ*»¸çµC>šù›üßl÷“-7»>7 íž8Á®2æýp¬¿sÅ� IDATŽeç´EÂ6áç›­�”·ÉóÒ²8»§£#²¬.sæ-`¿ºòýñÝe¿ ¦Ûæ¶Ja¿”Sv–yí0½ûJR^; 3ë†íŽj–›¦TÐÂ)'ð ¸�3eÌc¥XÃŽ‡lسM¨çK*'H’IFâ‘#|¹ÒÅŸø¥1O€Å‹(½“|wÔ(ÄÄŽNC¤PYø�‘‚4Ÿ «<ëÖ¿éÊâôƒ®ó�î¿™®ø êôÝ›|Ï䂵uÌÚ ÜGýñåÀ�Ž ý}\ƒó{ z.HŸäåZ¨ÛKé� àýbl÷P¤ØP™ Bãýkš’AÿæÃ­ã�)RLg͸š47¼EÁÎqáĶ%Pùú›ùÖ0ÜÀÏ@gÑoÎ&¾&:‡1ÃìïX×í Sñù‰¢(8+e{È‹.ì–Sb+^µo!ñI5\(¾œeg)$˜Þ‰µìÒªøP9i]V´æXT~ó=¦ûjÛ∪‘EÅ+>pè#üû¸Gà›Ï÷®Gë1®Šaß—_Ò­ËdªàBèüîþ‚å/fZÃuϽjxÌ0§¹ò=ÍÔ(¿L¦*Ÿ‰äÝwß�ǽÅ[™<Jïä>‹1¨Vgw~,¨¡2ì »þ5#%œäD íg½1ÿýÖÛî€5oWçþÆ.ïÿmÝ£F KøÎ“å¬e´Hñ­ýÞyÐn“}™~øÂvð¿‹ ³A¹Q€lò'z‹-–›>ÄÎåS0�wÞPYÙš5;ÝM;$îa´æº°¶¦wÒ…3¤\ññÓ²xXŇ֖cÇ+«¹®,l¨Œp0‚'ÉŠï?¯ê®S|ˆ¦ø4 r5ö˜ÌJRðŠoì þðY‹vŽrëšm¹ý¬Žo“œâÛ¹k·£�°ç§�36–Ÿ×‘T«z"GŽ�wÞY‹¡žÜª Š¢°¾Çé�Ò’ñÄ.lN:³:±Nìd@Á)gìÌ ŒÅcCRŠ1ÅV×?= Ï­Ô-㺷Ël°Z–³¹Œé¼b)/7ü!SãŸÓ�àÛÕ™LU¯êê·[}šÞÑY~Q% ðŠ•âCêׯ�™¤{i–óy�³ì,ß×;>L]Æ'°™QXå„‹SÔØ™|ìû� 3)ðþš)>ôÄßTPŠù©\¼R_‘BA. “©*Õ¬Sõ·î(›õÔ$¹®\XI�]»÷„v.8öÔÂèÚÉr‚é�ÒžåÄ ì òV×nÌœÖ{-•^«Û‡Ìx0·cG��Žm”, �t^p?4ªº¬àÊxÅçÒê;v?÷}ªûî§âÓè_½÷ë ‹WäuYÞtÏdª":å?êj¸¡UË2v/×&B&Se:ãâò5! ôN>ÁÐ6›Ì¯)+Ö2³ iq\ EÔÝÕü©¼âÃ�^Á᯶m;>û¦O�‹»¦'¶è}vhmªÖ] ŠDÕÛìT^÷5NÏ-ºr‰?6~vÓ Ž…é�¶Œy ÔkN3h òAÈh™u¸ïøwýýêoŸïξط@¬ÐŠÉ¯×áñ;¡Ùe?6ÝFdÕ�Ó©S.´Åh½¼Õ÷ÜŽz¹ KЪl²g[ ç‘S~¹˜—3+û5-“©yíõ7À¨«‡;Ú/ié�’†�´N|Ø‹nŠv'£î¬ÌÔ"JXФIxbváÔ=ŒëËdªl¹|X«ïÿ ¾`M¸Š CÕ0bÃuu ¥˜Á&*É×ð2‹3 _ÝÍÅ(ït;YNX0½S²œ$ «;;£·,Ú6Nü�IG4Rk…™%‡«øÌ‚šÍ|jìD� |}"¾hz"´~oK~ †ª™Q[[ [¶›å&ÎÇ:òÝ^Þú ªûkVÖÒÇ¡'˜Þ)‰YN’ĆAc Î�5BÃ*Ç4+¾î«ÂÉ­�ÕÃaƒ•ÍÐfqhpJ² ù®,gsI3™*ÝïëС/]\™wNÛÿ�£c”–Ï�hWWq¡uµºêmj^=]z)?  )¨™Õ·ƒ÷ç�é�Òžå$ŽØ e©îÓ3ð|uq%³ñ5¨_ÚÔQëns3lzÿ}Gûh£º‚Q_»ñs;ª«ßÊÿæFý°/<´Áqùf×°~?+ËOƒµR1à¹eY‹‚mÖ¬}'7×_CÓ;º öUÓÏäÍa?,ÀßÎzÆÞ¬�@7Q| ˜Ó;ý󹵞ÚDΤ(Å÷�Æ'AÕçå†ÿôj¨Ù¾ÝÕ9y¥Ÿºmk¶÷wãÑÏ]µËvïÞee-EGê-ËYÝl0­Í\‰VïŒö*ŠRÊûÿPbå5A"KDƒ••=ŒæÅµ,�ÆÆLá~J›srmÃ`ä�Ÿ~)Wlûó5²çôðq‡Oe—Áþý… ìrÿûë…[ûàœÇéô5¯ ¥9çOÇf} OOU~d9kš�FuÙYÕ¢.ç-ϯ0É×ee òƒ,š9+x#Ó<\íî­H„ƒÛ‚ÚI㔊ÿ‚nK�)tŒ¿ëßßÛ¬©ûö„²q—CÛ[¦:>�×Ì-a vhÜVQžW~8Ågdy¾ËOC‹½…À¸ U©W¯>tëÖ=ÿ™‡£;G±Í•%⦂g3"Ûᓽ{aÈà+]_K£†§Âm[>ÉU^c ™adí¹Q|QÃ(>P³�Š¡òÓPMJÇ¥YŒœ—8AY–³:SµØS?ÑÐèûç@çYΡLÒDÙ¢E“³qwA:*;˜uqýR|˜|çàFDàU— »½†;Ø †nÞ¼9”—·5݆wØcVޤÃ&üÄ �I˜ªã´'µtýú÷`ìX÷××þôÆ0òݶfnð`Á¯§ž|Âr;¯Š�7tÂìú²£½>ÖË1ıòs‚Y¶•åË_�SOm�ÿNŠ/¹$Áï×|ô%pֽΊbñŸ»î¼Óõ9Ï=£ \µ®ÆÑÌ £&TÈrV˜Å)QùýÂV~–Ý^�L0 [aÎÀ ’KS¼[ ˆxù•pßTgû°tkѬÙîjæÆ¤ÉSáÕ•+ÜœÖV&æ¸s~ýoCoa –XÔÝ%üÆÉ �Æó‹—ÀŒGÍk¸˜qqYèÿvM 37Œr@C’$ÝÔ·0¬¿°­>ÁòÓ&TjXR|„Ü Øõ›Ñ·¬ôz{gh378 ‚{ƒ‚�õÅy·N§Ÿ9! «ÂP~<¢¨t‚°ÂÍ Î,zö™®ïíÎ,�‹Öîv•‘ÚËÌ ß|x^Á„AZ55ºûT09(ïöjhÖ«üÈê#Œi�@ǰÓO†N5µ®¦©y�¹�=wYΚ&æ › ÓØkðyüÂêòBÈ–_ï¦M›ú’{ŸH!並é‰pöG\MSóa*Y#¦´B\©`3¾ ¢òSF©ø LËO%2ª‹Qܸñ›y$SrthÚØñÌ ¦©Õi)¤’†hš«WÈçîSivI�È”uy‹ 7~3¯ƒãÿã[øï³Z;ž¹áušFoa†/ˆüè/xHwe�®¾B­¢*¤ü߉"½r†¶™.Žgnx�¦†¸d9ë¥Mì‘$i.8µÓŽ%hT£#ì®. )?Â3nÓ;yõ›az§Öƒ{:ž¹áuš[Ô»Øð³ÖO”Š¢u!’OœÓ;‰ð:s–Érv —¤5Ñ Î(™ãö’¢Vzdù–$%½“†×™i™2,Á: žŽSÛÉò# HZz'¯37`†,gÇ{9@±+Î ¤üˆÄ¥wò:s¦ÈrÖyM"U�ò+BŠ ½�e¢ø  ç" ˆÒ;iŒ’åì\/ ÒOØ–_9ÎcÆ?œþ 79‚A-ãIé�`�,gO{N¤‹°•_¬&n§… Ó¢¡e„µ=‡º:�¿¥w"ˆôµòôD=µ/“‡^+wÀ¹ž†;XÍ¡ôNAØ!jåüÀǾ÷=8pðK(oÓüa^ 'ôê7‹8½eAO¢HIŒòÓÈdªp^k+—»SÆ‚ r$Nù±d2Uºœ€(ã AB­ü‚ Š I’pâÄt6  –ád7EQ(CA!düAÄI’p˜b@ˆ­›§( …3DÊ9�0AD<�$i²$IŠö ÙðC®fÏ/IMâ%ˆBÆAD„H’4’1ö&Ùmɸñ·ÀÛkÖŽÞØý,_ù r•“‹]‚”§� R ûAD€$IX¤¬ÄΙÑhë×ç’ÀùÂ’—`ð¶�ŒE!C�  A!bÇèëÛ·?¬XñJd�¥M›¶PScYnœŒ@‚H(düA„€$I8CwœÙ™jkë ¤$ø¾vÙ¼åC8§c«­)ŠBù³"A�ñG0j<Ÿ!q×Ãuu¡´Ô|„ZQ)´á šðA’$•š~lÞ{ÃAo$¶‹ÅaeàÈóG’$õ€7ŒŽœdÝ+I¦N¾FŠ¢Ô†×‚ œBž?‚ ŸA�Ÿ‘ᇓ9’Þé¶hÿ�ðZB„ÈóGá3FC ååm`ûö�Rs»Í<€Hñ…<A>"IÒ{FGK“á@uv3A1„Œ?‚ é,:¦qI#‹_\ftU¦im‚ˆö%‚ð ³\~iÖµ&ÿ½EYnk‚°‚<Aþ!4üf>6;Õ·øšÑ×­šnK‚°Asþy]S}‹+ºžg´ªg¸-!ÂdüAAdüAÌÇŸìMõ-þôé¾>‚H4რÂ'$IZ%êL[~?“ SE¡¸?‚ˆdüAø„$I­ Ft´bœíK‰ž "žÐ°/A„O(вÃèHýú]šÊÛlâõKgbC‚HdüAøK#ÑÑV®\/,y)U·zâ½Æ#ºŠ¢”†Ú‚ lCþA>#IÒ\¸ZtÔ�»vC˲‰¿åhȾb€ÑêQŠ¢Ì ·EAØ…<A>£(ÊH´óDGmÕ²,ñÀñn53üæ‘áGñ†<A!Iƶ=©3€Mbü@5üF†×‚ Ü@ž?‚ ˆ€PgÿN½¦f{Î�JŠãû, ¿ 2ü"�ç� "$I2U¶ËW¾ýú\»GñÛYOÀØ›o4݆RºD² ã� "$$IBÏØ³³õíÛV¬x%òGÒ¦MÛœwÒôö½u[‰t"IR/æÂÞS¥–µ?�ñG2f³�YÂŒ ¬«;¥¥%v7§Ù¼„/ØéY@q¦. ˜?‚ ˆ�Á—•:TZavf-.�ýÌ�ÿŒ/�}`ÚúãÚ4üa»Éð#¼ IÒx ƒPC!¼~ÈÕÚ±$I"/´MÈóG$IZ †ùS"„êó¾`äñF÷†  ¤¤¡£ÓŒ¾özøýÓ¿­ª£$ãæ�ñG3ÔX§7"lU¹Y©:‚pŠhÂÓ›·@Çgûr/ f¢Re)=¬BhØ— "f(вJ^Í`B­l×®=TVöÄ�� ?Â$I*å ¿qãoA÷Íðƒc¿™\õŽ%ª·‘à ÏADÂÉdª<+rYÎRºÂwxÃ/Œ”F/ ÍJç ÏAA¾#IÒ*ö˜ƒ‡\J.KNæØ@OWyþ‚ N&S5õx½e9»ÊÆva Þ립Á{ÿ(¹òüA$YÎN÷á ¢œ`B�Â%Œ.zÈø#‚ "Õà$*zÂÇ!ã� "Lñz™LyG?™ÇË ‹ïø•=Í�ñG‘d9ëG"fʉFø†¨ì&f’]»÷À¨«‡ëÎ@ñ~…�ñGAhØ.îKvà /¬È”pü„[¡UË2~q9=¨BêÅ­AA„kpèw’ÕεµµðÅáС/áÈ‘£ºu§žzêÜC‡Í¥)Â/Ðägþ¢ˆ©_=¿ÐóY^Xò ¾¢°2"yüŒ¡T/A)>ïÝû ÔÔlò¢f(Š2žä†° Êå‘#Gà�wÖ ÷¸fôuðôSOÚ>Þog=co¾Ñhõ(EQ¨²‡ düA$I’°[«¯‚ 醈*Ь[·Ž=â÷M£šÔ6!ã� "a`½T8àG«Ñ㢱{×.X¹r¹‡¥—0‘ÃNéÁÝ»wå>.X­( ÍPwA A’$¬OÚÙnkg>6~vÓ ¾]œQl• äL’$µÆ,)ÐÓ¯7hÐÚµk œêùXT{Ú_Èø#‚ˆ9’$ÕÚ™‰FÑ|–Í[>„s:v°µ-ßÇ‹¨BN:é$8ï¼ œì²S–³­ƒkQqBÆADL±ãé[üâ2øÑ Ë#¿›† y#B-o»~ååm yó3ŒV¯–å, ëA1ÃNL_œu·�Cu& ‚ˆ’$MG{BÔ®4£¯½~ÿôïD«"‹ýÃ!]Õ³§ãž‰“`ê/ÝÛmÚ´…šší¢U�E©uÙV¡p z#¼Q6ØÍ!cI¿C`Ѭ_›F“@¼á‹ñg·ôËÜû~ Ã;îv}Î¥ÛÊ`ðmp¼ AqÁè%îwMÞ¸±fí;pÑ…Ý„­ŠBG‹žÃ›·½{n?áV˜1½`BƒãQ*³²lIê5£ñâë�ŒgzŸ{ÀµñçÄË7sâpsÞžÀ/fÁæ2y·mƒ�ò)Åjü�ÉÐoØ/tÑ38J÷½Y³Ó¡]»ö¶÷¯®~K¸<�†Ÿ†QN@2þÜSÏÍžvÊż?÷JèPºOý¼á‡ 'qøÒce÷*…ÖÃL'mP„®]ïA„sÐóD³GƒnÇã³à¾}ŸBYYK8餓,÷ݽ{W mK8ùCQªýëG³}µ™OFëûö¾Ž.í•û7ü¢¡EƒÚ|[¸Ô¬ œÖ>$‚ð‰Õ¢Ã<òдTßßU«ßŒA+rèÊè…g9gÞÝ÷wßµg ë—fp‹=S}ábËøÃ!^Õ@ÆõiFß_ÇÅ3màÂQÿ²4Õéø­CmAÅŽ°p½QŒSZ¸ëŽÛŒ®dJX—¨†.EÂÈÃ|=mýÆm£º”Pøº�UvÂ)–Öš:Ê0¶/ÎF�fšPCy ‚ ³¸ã‰÷¦Sa:#BNß‘žŠ"GÿƒFIÂÔj3šúŒ·/‰`»¯ùÉ£–O "!'A„ƒD‹554'X¨ôïû]£ÓÍ ³Q¦ÿ23€ÍhР�píWÿÜLCcÂɇv¦úú¢Àp¶¯ZžfƒhÝÝc‡Â”ïþ#ñÿø»-`ìÔF«G)ŠBF A�c–.+MùþL’;G•â=¯�µïååm`ûö�Â8¯î{çÎ] AƒS-÷ÃÉ!Û¶‰ ½bœí 3E†Næ˜yþ„†zÌÒ`ø!˜~ Y„O‚ ¿1Kllf0%‰¸~êyu5x1Ö²_?Ó ‚žáïzóì~ ¦…1+b¤‘3”oÌž~.zþÌ’H&u¨×Œz�« Q!‚ ÂÂ,óÀÎ]»¡eY‹D>‹8~,¢û^[[—«Eì/,y _¡7:á„>ºðÂÊkñoYÎÚ*kgV~.�Þ?¯ßNEQh’¦KŒ<BÃïóEß‹[û}!�-AÉÃÌjÕ²,W*,I ¹r¨©áWYÙcY.G½ïº¶”––äÚî5'!VöÀãð†ø÷¿ÿÝ�>»†ŸÚVÊ &†R"é´ö³û@†Ÿ Œ?³Ù® ëÓËQP‚ ˆ "8,‰†DÜg£— Û¹xÑsÂõõêÕGÃÿ�ÉT)™LUäÕ–E¨Þû:v9–¡ÃkÑ>xmf<0íaÝö‚’nO.y©0eÖIÀrhi Ç¶ùðÖ›†žÌòT\d„ û ;¤e’‡f“?hè— ˆ(°J@ß·oX±â•Ø<ƒúµ:.¸ ;Ô¯_ßhõFYÎv1Z&jÞןNYg×é«ö%yØÂƒÙ[QÛžRBŒí}ß?'ÝöÏy-þƒVAGíxVÝ’•+—ç=LèqŠÍËgàåʃõkÑÛgbø!�cä Ü¡zè$õ9”ydÌ`÷õÛðƒã©j­Gªû·ûý>m àä ï‚ ?°íù«~âÇÐíô½‰¹0§¬û´9TÞð¬p/òü5N=Q‹_\?t¹ï­Þ¼åC8§cÛÛ£Ñg6KÕ‚:YΦ's@Xyˆ“à´ŠW¤÷°¿Øöü=·îHB.ÉïîùN›MD‘Àz¢pxÔêªq‚{¦}ph“ ×Õ4Ü'9`\¡h;†ŸÓ‡†R¢zk½$í¨21Ãè2ѰÂ�YÚ”¨ÐÚfÂj2üüGäùÃHâI¢3¥yV¬IºJ"IDl‘$iUL ÜçRo ±à9ÈhÁw¾ó�£ß~û­©7£ï¥WÀºN7EÖÆÞ»ÃÒ…³-·#£/8Œòü ¼;ž-¤³fdü‘ð‘$ÌòÀù zd =�˜�t3C&S¥«ÊµnÝZ8zÔÞˆ]�[_„M'ø—Ó�=Žÿzág¹ÙêvPg‚ï”å,¥s #ãϰ'YdIž)‰$A©@’¤�8!ס—p5ÌõRêR²–®ó2Í í½{?±mt± ¹~*¬(¹Èñ~ým€E³~áx? ÀøPz¾Á`VÛW¸¢oï‹á¯ãl‡ ÆžëŸ/�ßÿQ<�‹¼~Aþ�#‡“Ñ»ÑEý_z ÞSÿ�|,“©Â<´Ù£�¨©ùöî�ÏÄÍÓNk�:�k¹€þcfüáá€h]Z ÀI¯ýÜ7s¡Ñê /I8 ‚ ˆB"2qgrHÃá˜$«pV “©2|?;áÝwß�ÇÕÌp"PEEW«t?FôvR …0ÇÐøƒc ö~Þ0ZŸä!àöv™¹ÂGyæ ‚ ÌQsùuöã6u:÷\øÉO~Weâz×ëT�⯠(–2_/� IDAT'IÒxÕPöj OPeºŸí­­­]µeËSTÏlÎûJNw˜`#·ÖûMZÙ7“? ìáAáaÇìÓ· ¸ü‡Ðµk8Å?¾Þñ!ük·þµ÷�’Rhxn¥_§Xm2´,$“© d"OCªN½½Û¶m…}û>õrÊyf5� ÆŸ†UÉ$x-¼}ãG #kvìšUÞºåÉAžýàûÕP3û18ð—9~ûÇÀ™Cotº›©!èׯ€Q²œ m„+“©2L#‡lÚô>|ñ…qîI–ÁC®2¬-ÀtVz±bÛøƒc e-ŽF •Ñ—†Y½>§w Ü†Aø‰_C‰¦Ⱦ 5¿û\í|vk|§ñIpá/CýÒ¦v�Þˆ�HP|dd¹3™ª‚‘D£”4hà-zÞ0&ß�!W52 }¯¯œdV^@dæÄá0æ¼=‘Ýš›Ë`äݰÜ.‰Þ>I’0n¤Uȧ¥´7AaêÕñ‹}/? ;žœ _møG"D‡Çï„f—ýØr»_Ý÷ÀC}ù/·ù}þ¸ÌšÅ8@œh‚NxÜØ$F`Eåj]䢯•ñ§aÇ„g�ó°xÙ+¶¶M’ÑgVu%BrÁ¼1kAþSªwゾ·;ŸšÿñÏðÍGu©Œ™�¯Yz û÷ï÷ãtd9}-IÆãÍa—-_ùôës‰ïçÂR†ýû~—_\ô“:=ùƒ¸(/4xÀ¥pËe� ÛéÎsm©mÓW6ÌÏgÂFEQ‰öˆÕLkååm`ö“¿sýzaÉKð‹['¸IJiq"¹„–å£G&Â'Xÿþ<¼ô"q§ëŸ7�Hòå—‡ ÿKÝ^E,ËáñŽ£ÚÚ:() ®ÂÖ±.-Õ�ž{Œ¿/ÆŸî€Ñ Iš‘¨q~;q•;w톖e-mx¿èÂnv7§V?º¨Æ�ídÀn8R»¶ÿæ>Øûôë$.°2]xÉr6võXyÃoμ0rİÀÏ;wþ30êêáºeÅlúnüéîÂ{å‰K×"I’e¦vôìmßþQx�ЦM[;žA2 "·–m€ôÚ¹Ñðàh(=õäV'Ÿ!ËÙØNØã�¿ mÁ¹ußÉø ó„ÇòN÷£Š¥a¾øâ`¢ƒ7­ò("lÞ;œ^£l`Ó#ØHQ”Øõ< "a T�;_"tÂ>f^Àõë߃±cÇ ×%¡ ñ tã�ŇÌßSd9;ÙßV…‡Õy�>žÍ[>„s:v0Û„r,„9#Uã.Ðp™¸¥A!ÌùÏ«ºCÇiO ·y3+Ã]wÞÉ.Šå¯2þâA½¨Z‘ÉTùa$¶‡ÙLéqão�é�>nƒ\‚Æ)þxMr+õÄk-öàZ¢¨ %Ç]ÒÓ zpx}3\/4±ŒÝåÂK˖ΓålÒBlv²|w¸Éçç<� EKdž?«lßvH‚‹[„™áô¬§ ͨb!�H)¡¤búxálØùä‹" qœò‰Ã Õµ·Ý‘T¼g>6~vÓ ��ï·³ž€±7ë+¯ûû(JãÏsQï$f†_”Cð~b�X3G±ÿàˆÄÑZõÜ…’ãn×c‹) ŠMš¨îÓ¾Ùš¼0d³I i1ƒšÐ(š¤H}ƒ^Ž#êŒ^!i1ü@½#ËÐÑL`"FtQ�»PrÜížñ=ûØ»t4XøH+_] «Z%ïÕƒm61KÙ’pI 0ÖD ßn˺ñ…"‘áwŒ(=^O¼Z–³‰šH`äõKÂħdUÏA?>"DBIƒB9îâ‡Þ¿zMN‚NO=%]/¶µ}�†e÷Õ áäÖ†ï‰ÄêTI’°¶A´îšÑ×ÁÓO‰'½ˆ}íõðû§g´šŠ0$ÙøKÔL_³™½iòú±˜ ÿÒ `Â/BIƒB9î’ÇY3nzÿÀ†‘f1Ì*dëý·Ãdz—zŸLÚ•ŠµÝ’±N gƒ˜H†}q¦ï¡C_¡C‡‹;×Öê{a¥¥¥Ð AhÐàT8餓Œc8„S„†VéH+o¯Yg” 0P/ ‘*BKƒ²ëÙg(Ç]Šøû¸G �?ôèý¬0¶òÄö¥¹¡a{þðØvÏÓ‘Þ ô0ÔVÒ`²†š‡šöSEIl ¸°Ìó'IR©šŠ%¨9v�z%%‰°Q�&­^? #ïõÆ•ÐÒ ìYø<å¸+2:Íý%4é-®' òþmÃO#íÞ?"|3þ$IÂúœˆŸÛ EQbç4+sW¬Æ_Kð® 4(„kš è g úQÞ ûæó}°ï/ a×¼lÇíKouíVàý3óü‰¨[ÿ&ì[þçÀ‡{Y2_3òþíTg§„%žŒ?;õh퀳{6<–Ûn÷®]°r¥/?¤ØÔ—%ãOɧT5î( áŠí±~�ãÃ|µýX×{˜áz§Þ¿SÎ?º½ðWO—äÄ�Û–@åëo­&ïa ÇÆŸ�Z´,}ûö‡§ž~ Z–µðå‰ìÚ½®}­S1ò³4쫇†}AkÕ¸£4(D`¸5úx>{cly¯p�‘÷ÏÊHk÷«ÑÐâ§?wÕžõ£ÃÁ×·ºÚ× ú%¼bÛø³;¬‹ÆÞН„ú`úõ»Ô®1ÙTo#ã/É=¬X³ö£ düŃ.ªqçÙ{o¥AI'~ ÉšyÙ6ý||¶¬ÐÈi6<î›%ÜÛP]Ñ·`yÅ’™†éZ¼x鬼„AyMŒ¿ÞI.{J„‡¥ñ§NÜ8`¶MP™¹Ý Êæ- tO $IµFAí”ê…ˆPrÜQ”øÁuz5B‚’uë‘3Û·æ±_ÁÎi‹|=—Û¶D`üMQóaÊ f+UƒÅÐð»g⤜áÃÁ¶`›°m&P¯-4E)5:׿-†Ù”PÀ$ÏF�áç˜ãî=5̓èó††ßÁ÷«aãMÃr/2ÑgmÏ¡døÅ >ÆÍMÞ:P�>Ü×í°ì)mÎÉí�ƨß`^=å7ß#\Ž“3DTnX)\~æ�ý¡á%í…ëÐûˆÞD¼6³ %pc'%’‡¡çÏ,Ù¢Ó¬ÛQbTâE#ÌáG³ 2ióþ™xýb3'„–ã®æw¿£4()ÁÍ„§ü’52œÖýè{ðÕß>±l·S�›“í�ÎüÕˆ2Ùós‹^„«†\A!5„%ÆŸÕ„Ž¤)&ÆR®(ÊŽ�ÚaxÓbšÝkŠõÓ1YÍsxŽ»OÎ…¯6ü#ÈÓè juÃmpbãfºË�K½X3ãË QÚ“0†dÑëÆßK?Îc´o·7žÉy#yŒbíxLÃ0öXöl]ç/®Ëdª@–³Õx^‚0Dgü™~qŠës‹…Z`Z ÀººƒPZjlÇ™áZÊqçvò‚YíW#cÅ*¶- ì*ØÎOÏ‚} dËm½h$·¿kš­ý�Îcd�i˜y&ÍÚv|žßµÿÿ¶nƒQ#G¡ñ4ë—°‚7þ„–G3xƒÂlBHÈCÀ†VÆ+Nýe²bvã4¼¡¥A¡wÁà4ÿ›F\�lƵíšû´»#—ÑñD1$kf¸î]:/WªM£ÕíÿŸ½s�¢<Ûÿ3¥!¬Š €UQ䤜ÖP«U ‚R¢¨X ¨Õú) ¢ŸÊ_¤PŽrÁrhµ VÁ¸¨„¨ ­@APDH´Š~ó¿že6n6ó¾sØ9ïý»®½»³3ïÌn²÷>‡ûé/¬ëí?ŽþÕÈ=…J§?éiÄÎ dõc4ñW—Í$BurÀS*Å_6¤#“%-©(ÊNY=Wl`¸YåÜsZÊ6)VU5Œ)ÏlPv=; w>aeúCQô�…WQßáUî“EÀÜ–©Hõ:%+;ž‚4‚Í-Œ¢~ô“øC×/�’Š¢p× nAÚ�x:yBQE²m>Ú²•Îiy¶WK2… ÑGA0×–à™ Ê®ù3àqPÜŠþYí®u#jèDŠÚë”,ætôwT‘½§’Q?Š�øÓlæÚh«Sa‡ƒòl˜¥(Š™Ùç<Öo¤ÕѶIñ§«ð˜~4Ë�›‡Ò³³gêníGŠRQ~CKÿ*!ýnÒG1½}´_WsqlƒR2m |ù#7\ÄNôOôœ­÷³ÕpA¸ µñ�WU™<ᦷ�—)Y �džoá7ä–¡tÓ ( âÏìà›¬`·„t‘ù[Ä0ã&=æ=fD`’Ò]eŽ�ÍÁãôš4Î3»ù UUû¸º Ÿ€ p™`±ý3z®,½Éâ1µÃJQïxN5¨ %ë²÷@ïÞ}iÿþý•ÿ×¢~4}æ³OÜzËMÒy•9yÀ`UUçúx|]E™+«ç Ü-·Ü¬ûYϸ§Ÿž dièž·¢…TßÔ{ÄŸÈRñ"82x÷=÷PÏK.²µn6f~rüx«s“É¥±yfÂÝ”hcF´pêðĦgéngWüe236õ¹fŧa?ºk˜î,YÑ>ôfÏ&Óà¢õ#%ë?«W“ ŠÄæÚéÂïÜV­hú´cQçÔh ¿ü6ˆÇ =mjdç3¾O™E>3͸Jš/«XÚAüéãiÝŸ±XAåÅ/)ÙN{÷îõs9zŒUU5“´?W:†Å `ƒ’�d©JE$„d#Ï2iˆHO¥òvV,Zґ͵áµw¨J»¿ÿ•êœ×ExUÒÄ]‚dÔOô¸ÝãñBÇ?符.½úRºmÝ6G޽­UÝÿõ ôúÛïXyšç3ÿõ²­N×ö?>þ)ºïÞ»Ó﮽úxþfH%+þò=z”ŠŠ6Ñ?õzY¥ªª65¹­gw°A‰&驨¯Þ\Aÿ~ôi¡ÿ^*VÒªIìþ 8^”®ÓŠ^¦œ9éNjÐǼ+‘h‚p—_^Ó‘Î/žž•Ú՛ʋK^¤†§7HÜóÄø§hå Kµÿ©ô�Ç m=Yæ’ʽ;Që÷÷›ÙÔnm™GKWéJœt<©U×»Nnj-�“¨DÍŸ~¦}c±‚5V;PY––î¤}û¾pjó´î!Ñ'­gwÛŸ ”ˆÂ‘³dC…,Ц‡�f ÙsH2CÖÙšIô��¥[=3ßÖsíÂÍ"mfL©â(jÞ‘7âJj~ç8éñÒÓ¼Iþ8r�t«ü¿É¨ŸÇã…ÂZ93¢oÃoÚS‹ýϾ˜‚®eþôêû¼ÐY:Z§»Tü-ýÛ ºªï•®/Ìþ2u: ¿C¶_â/+p*Z�š�Òéá™ÇÝŽg… JÀòÛÍYZíD“ÃùÍÖ‘¥"jZpc,™µvmT@t0SÓ)‹ä¥t÷& D¼nÝۜᙠÛõW�Zòµz­K#ºöE¹¾ËTÄbü<1õstݺ·Ó�‘É!L³~ûԹS‡*›'ÅßDQŠ. }þ2­e³E,V L¿[%/4zÓzæq·cêúrñ7B‚™:½èœ,%«'”DÇ‘�mK"ŠäÉGÓº¼¾Vº_Ž®|o3Õ=¿�Ô …`‡yd¶-©¥oŸ�ó,�ù«3*ÿ?gÞs4kÆtO._ºˆI'¨¢/�¿ÅšÒ-‹_—m"-³°ñKü‘Žæ1œð1bä�4qÂSÞ¬Î#d£ÈüˆúÅbü ê ûÒ„ß ­[w 0ˆ¢Id¢G–^MoNðz2…ì9V@Ä/š´~î1ª[p™és3½Kmî`6mÚLÇ{ÓY-~+ûPl}àš ©¿[ÜpÒ°aÃ/š4É?Õ‰ãUü 'MD)ý;wþB|ãõ¢‡«´B{Ejg¯~Ýõ4hàõtÒIµ\]!<î€ÓˆD’ß9+~|¢ãÙ�ˆêþŒÖ(Šþ%£�"kØ¡Dƒ_´=�šD§\ö{[çc6jwEï>ôç{îªr_P„_X¢}"în›Osþ¾Z÷Ѽ¼Æ‰[¦.í[ù‰Ù ¿9 4o Ddu~D4IUÕ‘^/[OøÝ<ôV™@u xܯɴÉA$ê6^õúæ½=•ÿ7Š2¦G �&S˜YcêÚ8ŠW:ýIØ¥D„:]›Qþ-·XŠàq×Ý÷ÒúwÖ™Ú¶~ýú´reõ°@4²‚q<„eá—dA,ŸF.Ö€íÛ_@5kÖÌhÿÛ¶}Z­1Ó§†�¾Jú�Ev›a¼˜]zö¼Tf^ìå82OmP>[ôxÜ�@!pfºN­[í N’†zDz:„ƒº—ŸKù·Ý!õÖ˄Ç�Ðݺ‡>üàK{‰>§‡×Æã…ÕÌ‹c±é #ôDK’¨¿$²`—.f¼=í±ÕK¶­šøÓ6–1–—WPNN–é<‡(7Wê79JUÕ‰ØS”= ^ƒÇ²èŸQS†�z<³S)Ps]Ø?¯Ù°QtbSçLtõàìÂEÏ›Žè‰píuÂ,Õž½{©¿«u3ÑìW‰A(Šú…µÆÏQ `½zõ謳Zf¼½ëéô¸Ö—–­¤~¿«fØQé׫+þè˜4lBz'°¤£7�Í}›’ed z",9vÌìö28%ÌüpèH•T1/ †\DÍþx¿©.ÚLx«0N‹-²Á3CÓü|Zøœþ—¢$2?+ÂO²ÿjβ SQ‹ú%)n2]´b½îcNDÿ˜²²]‰[:™–Ø ¹y¨hÖo•Îe¡ø«Ü@Q6u�)h"ÒGI‡k»·lÀ,6( ›‘5VX Ù�d'xåÕU´háB*ÙáM“Û}º›~ÛÇØNÕ ¸"/ÌuzmIDN ¯éA7ă:º7sDÑ¿–-Ï¥Ü\Û—›(Œ‰Ç š±k ±&O™Fv«îc¬wž|êizdÜXÙ1«ªZͤÛPü¥,ÐpÃüüf´cÇvSûsšfÍšSI‰ñ/¬�hŸ¥9…I`ƒ€Y ×È:E4¦ „�ŸÕ«I�ïèGMn¾Çõµ¿¸t-\0ß+#ä*tht2 îp.�w—ykbZÇØx¼ÐU_ZÑgT£~IDâ¯Aƒ”Ÿß\ô´R¶Y³3"ÏL¶ÕªªJªiñ—²@Óbè�ÑѸ‡Ýy_Ž~pŒ‘Ú­¤F�ã©C‡ŽÉÿšf½ÜÊt‹âa×Aä`YôFÇÑá„æ9ÔdèµÔp€ÐiÁ1¼4:Ö£G^]ê¼u7Õ¬ø‘òG_gKК�ÍëDš× Ù*þD�'žxbé7ß|“É-ÓÈp¤a¹wÁ²ø«|¢¢ô!¢evžÛ¯ÿ5Ôµ[wêÞí×tNKýÜ-[?¦7×¼Ek×¼)4d6Bž��êu÷š¶ÿ~xjñpQ„‘½ð�©Ç�Y¸cvîüçèù…Ïùvm~Û0‡:o(Küìd*ú¡1ãèõÕ«Ìn.�µë4ÕX«ªjµŽê°a[ü¥’‰t ùøÔ: CÑÇ�µe“Vሠ²N\Dÿ‚�wzpë‚‹LE½Ü QýêTóGj»q�ë©hN?Ošð´Õ§‰‚®"oôîD­ß÷>}î’©º5taÃñ—Ž¢(ü�ãŵ8묳©^½ú¶ž{ÿèÑtÙ¥=¥ÛàwAôÏ_Ø%ïúA®yÜ%ùϧÛháÂç­D¸åŒSëQú–Z¾ÿ…g©hŽVN™:-SAÛ6/ΗuEQ¸9¡Iúa.¹°3-Þù¥_Ër‘øóc¬¸"þDh#äÙ08žÄ¶*É6åX¬€óíµ¥ÏFL¢o@ôÏ]Ø¥ñÀ¡¡ñ¸³Ëy§×§Ø‘ƒÔhKyRÑÅñx¡G Ç‘5"D5õ{MÓ_Òëo¿£ûÄ_°:—¹²wº7m6b*ûô¸3<&=úÇ.Ÿ½ô"&ðÊÅM�;3p·l—ýûè—ÛG5=)/ô|ĨdnQ€ÛZåPǾ/z¸®ªªbújñGàäÉ“©];ý/Slªo}±“K€ŒðÒÅk�»t~�WŸ:—í¡:»¿Ë–Tô¨x¼ÐÉéR®"€ýzv§é[ËÂr†HjýV¨ªÚ'8+͌Ћ?:& Í—eÂÍ?ðÚeùß^òÅãŽÒlP¼šÈáw*š;C5S_#{±À£(аÜ**P"ü"“îM ñGÇ °ÉDÖØ±i`_:´ÖŸoº€hwñ;ÍÑ MÜùÖ�á%Š¢°ÅÉ›¢C†5,çF~%ñGÇ`µÂÔVç�GÓþ:Ewû-÷ Åx5€m²Å¥n�“èâ“È”TüNEë�ãÊvd@fÃoÚS‹+Bs•dÑ>3“2ÂJ¤Ä_’Ô:@QWïÁÂW¨øúû<^ LÔ½ü\Ê¿íŽÈÛ °Ç]×ß{jƒBHEkN,î"QÄï%F#_ƒ¼µe-]% b2cUUuutžŸDRüÑ1X~ÿèÑ9¢t/,$ÜXÐlبÈÛ °Ç]Á�‡©ùæýY•Šöböm6cfüXÐ"�çÿTR"�$G1Í›NdÅŸ†îÉa/Ù�W�~מ¥zÜeK*šSrZÔ.4³QÅìÌ¿¢� bù4r±î¨¶tÚ&ý„£N”ÅŸ°0Q?¢�W�~מ¥zÜeK*šˆJ5qúQZÙ‚¢(,œL}ÀþO¿Ké®õÒz;Û5pèÿ>³DYüéÚ¿ÀÏ€pàecÏZ]¸`¾oµgéwÙ�ŠæÏhMÜù:î Mó*²³óá}{Q�Ÿ}C±õ{¥Ûím~"½~Úi4iãvÃ4®€bUU1EÅ¢,þtO ž~®=k8 ¯g�³fL÷í¼Ù¥Ý'{<õ¸ € Jd<î€}Œìa êxY{¶rÅ ß ü°A €ÇlP¶‰ºÉ3ÿa¼Qïxý�0÷mPV¬ü»Ÿw°A¸FÔÅaÊ#^ÏWõ³ö¬G^]ê¼u·ç6(~¦¢aƒð“¬„èð‘lš¯Êw�7”%~ΖT4lPA&¬^ÖŠZǹøûÐZß<²@„É–ùª©wÙ”Š† ÌdCäOX÷Gˆþ›dË|Õt�»lIEÑ$MÜÁ9²!ò'\c´wöÞ®žl™¯šîq—-©hö¸‹Ç Çø¹ð‹lˆü‘¬î�ýËJ²e¾ªw°A�ÇHÈñ§;í£Ê€‘�kÏN¿¡WVÌWe”v_~é©Ç�ß©hxÜ@fd‹ø#£èA†/kÏün,HµAÉ–T4<îÀ]²IüFÿ˜Mû¢Øg¼ª=£4¤Ú dK*Z³A™�;ð‡ld&úÇ-ßOñÖ»¿š,ÅËÚ³¿-[é[c�_6(~§¢5”‰ð¸€`’mâ�?ŒLçv·Ü3”¾\¼ÁÝE/kÏ–-[á[c�_6(𸃠„˜ld6ú— D`U`ƒâ.𸃠D˜lRß?‡>XG›®¸Ý³…úlPÜÃïT4lPd£ø#Yô�ë¥.»´§áþýð¨ÐšC{9_ÕÏÚ³�N¦.û÷ÁH![ÅÉà5Wþ–ÎjבƎmjGßîü˜6tàäÚl“MóUÙã®sÙª³û;Ø &ÉfñG2¸äâMüïq‰Ÿ_{íU:é¤Z–v\:k<•Œ[˜ù ÓȦùª©wYdƒ²Vw°Aà Ù.þH&9µûØæôé*ï³#�8Xø ýÙòt:xèp•û;uîBO=ù„닳ƒßóUÙ¥SÍ=÷¸ € ÊÞ­`DþÀa²!ú'‰ú¡Þ€€ƒÈ8O±h�Qðü3ˆú�õn%; ò.åè¢~„DþÀ„&Ç#GÝÚK޳祲‡çy·€]ù—�EÿJw•Qã¼F¡ºô«^ƒzõ¸Xø8¢~„ˆ?p ÙÄ Yú·¢âåææÈ6ÁDBĸˆ,úG!€²:?BÔ€P�š?p—¶²½7kÖ<ð—€hñ.¢�|[!:BIÉŽ@ @#áÇé^oVp ¤}ÀE)'"iÑ\�þ›¨ñ#Œq œ ò ªj®ÑQ8Ê„p/-[iFøU@ø·P¥�¢(Ý’7\hgAä<Ĩ„é×ÿZòâ ¾¼,œ‚æT´¨óN¢(ÊH"š`r—óTU„À>ˆü€‡˜MK—,ND9ç<²�� á¼DQ”�Ú"³Â�¹‘Ÿ£Ýšâ³ÄxŒYñÔïw½]�IÑ7üŽÛÌl^áœ@Q”¹šèk’áîJ´zZ`ˆ?ðMDU˜9rRö¿zí*Û�ñb¹®�Ç´Y}¤5wÖ-`„&úntðBåhQ@Ô šâ|BS“Ì�ÓÁMç%DßF?8†Öox×ðy¼ ÏN>ïÜsZÒêÕ¯Y9éÁhîN «y}`ôC‰ŽwÙmμçd«(Rµ€&@ÃøŒ¢(,ñu@š8…HøMž2�þ0ìVKGáè5‰ÐVó× þ (Š2†ˆ Èr8Ú77ë@$ü2Õ \ ÁqꪪŠZ@Hû@@PUuŒi[ëãŠØFC�ðN¡(Êšô]åç7sÄÔœ-‘8]¬C #éA↪ªÝ4hºÐFi¢5SÀ1´’†®éûÛ±c»cÇ÷ð]¨EÒ�Hû@ÀѼ̖Qk'WZ¯^=jÞü Ú¸q=êú€+è�5tKw蔣fUŸA\€ŸPUu'UvÛj�ƒô"*2j×®C 6¤zõêãꯨ"ü–þm…k‡åh"w³§ÂÑ?.§À«]Dþ ÄÄbk¬ŠÀtâñBDG€ã°‘sºŸŸÛšcÈÍCéÙÙ3«Ü‡è_uPóáfy¦«�Å úà=\ Šð3ðès„Ù³fàu4Ä„'ºr!þ€ë x�/ÆÏÕ�ø€�:áeæä¨-ÈÏQk#FÞ™~Ä_pš*ÑdöõóŠË.¿<ýHÕÄFˆ?¸J÷‹.öìש]/¦~üœ@ èÔñ¼ @ü@ø©6>Ë*±XA7¼@X¿á]¼Ž@ü@øq¢ãEñÀIª|!I÷Þs“÷Þß”¾÷ ¼²U�ø€��îtà Ðñ CUÕŒ£ÑvY¹|Yú3�ør) þà:‡<¹È«W¿–~Ä_p�›oêú1ôêýTUÝŒW·* Ðñ ‚ÆàÔõ,]²ØõåuîÔ!ý.ÔûéñÑ¿ P¨ªZ-Ýڳ祮-qÕëoèÝíÛ¤‘ ñÑ3~A™—º&®ÇsËŠ¥W�êFÒªª:Ñ 9UU³ý@$ˆÅ 2ýƒ^�æâÝœDQ”jïËòò ÊÉ©ãØQEÑ»»®ªªN̾Ž5²ý@6qäÈa:tèýðÃT^^õs1777GQ”1œBöÓªD޶DT”zR¹¹9ôÑ–­tN˳3>W�ð[ á'‘?ˆé‘¿£G�RiéNÚ·ï‹LOp�A×$°Ë©§ž¦ê½{âIúó=wÙÚë–­Ó¹ç´Ô}LUU]EŽñ!+Ø|ôèÑÖ[·~DGŽqë¤J‰¨j©€Yb±®%]V\\$|_¾¶ú_Ôó’‹Lí‘ýÛ¶mK%%;t‡ð3 E´nÝÛ­ß}wƒ›Â�iBD%\Ç¥¥ˆ0"1r£uë¶T«V-ÝM¹YƒÓ·ý¯ ÛµËM"#Gݕ؆SÆ~™�È„EQØžåMŸÏ`¬ªª‚ ±X¿/J½ŸÓ¿Û¶}êôÅ*VU¶.&�ø€¢( wå ØÊó‘©È:Ð7nÜ@?üpÔ‰ëÕõ¨Ö€ø€�¡(ÊD"‘éªorK•ÿ?;{¦� +XND½eWƒ›’>ø`3}÷Ýwv.Zwt¥ÛâB„¢(l_‘ceÅ=zô¢»ï¹ÇtA}®³š9s¦]Q�µ�¢E•Gj¦ß­MžE©f4>7ýµê;ÉÖCee»è믉6)&¢‰z“C€5 þ XMó²à›5{5ÎkäÈÉq‡å�wÝmU"Ea±7ÁÉÕæå5NÜ ?/D9�ƒ@ü@ÀQ¥MºI®NåΞ5ÃÕz|üStß½w›Ý|0"5ÁD{_­±I¶C˖粉¸�§bêŒ @ü@€1+ü8Ò·jÕ«žžÈ�›‡š�B¶"¢9~¬¨E‹3è”SNµò”ºñx!ÊâŠYá÷Îú�ԩ㾜§ƒÙwÍ€>£(JSöh ÂZLFKãñ¦ެ(»€ø€b¦Æ/?¿íر=‹gsÞ¥Km†@ŸPe§fÐjÔ8ž:tè(\N<^Ãf—€ø€Â4d«ê×ÿZòâ �ZøèÇÐ#ãÆJ·Áo±R/š¹8¿Ç`ú¶V*¬qºî6?ì¡�”ÒÞOÖÒÛo½nëÜÎ:ëlªW¯~úÝóâñÂA¾\´,↑�Ë£¢qs ÆKËVR¿ßI­Ý =BQN³ßhåhý‡ý?ZU«mF ìñß�iéäá–žS»vjÕê¼Êÿ#êç. ŒŠñƒ,ü’˜€+TUíã颲 EQ6›õ軼ï@z»Å@W.P÷²¥´ü…i¦¶MI��Ç 1.ÐE þ @ÈÒ½ALõŠ0‘† ´K˜5wSô¥cE"2ì>ŒŠòÃö÷ºgÏKiõêׄ�ãCÞyÌ ¿³ï~…ö('x¾¾zK‡RIÉÃíðÞpˆ?Fݽaý[­(ÒÏpÌfu3©Þ«ÞI¯Ÿz™¯ëìYñ-™1Úh³ UUaîìÇEò¬ |ÇWÍ™÷\h_ÎÒ]e²‡ßôn%ÑFkî� ¿žw½à»ðcVåtND ÈÑÄ,pDþÀg¢õKb�þEô/CEéf$¤ýJóQñÿ.1Úd”ªª}_hÄ€øŸ‘Õúqä¬q^£Ð¿D²ô/ê»2ÃÈ2çOöü÷¼Â„Ds�à í þ£+üØd7 Â�¹iÈ-XEôÐ<„˜H¯úŽ q*�t¬ñ>¢ùúé²fíÚȼ4³gÍ>¦(ÊrO´t¯°³—kü‚˜êÕÃH¤*Šß?�ø:G%ê—„#™ä#A×erS§X%·rEQFz¸Za�_ÿ¡ãhÃq'áÒ™‚Ejß‘3e›>œÕ†_ÅkQe"×»üB©Ú6µo:i{âÉÈ�Þßÿñ�¬ÂqÒjêš•ÆQ¸ )Ÿ[®}^É"a,²¹£6l¼q|>õ¸ôw²sFc�CxÚð¡ ˜6lG·@1 RUíà€Ð¡(JS"*Ñ[wT›ñ$��êê4³gÇdMAoð0BÖ‚æ gð$òÇj]{£9(üHÛW‘ö k³f—aÁËaР̵К(œ~ÌA͇Ïd©e6q;ý†O–½6Ž]ÇlÆ5ñ§ÕG”k¢¯«׸µö ¦jߦ èŒÐ[Ïð�*“§ç» ÇÚy‰ö™%l¢`ÃmŽÊ¦ßØ’ç�ÑÒ²´�:s-0A´iLœ3eõÏÏ–íÁ(õLàŠøÓÞàÍÌt‰M"—ÿöŠÈ¾h7\÷û¬BQ*•mj’boÐÀëtŸËÍ9ãS)äd*eŸkýoº?“] ƒèjÿ3ÄÑš?-4U¾VUU¼Q�C$6¢n¾/ªûó³žKôZ”—WPNN[û\õúÔ«ÇÅz«ªÚÆÎ>5[Ýîè°×ú¥#©ýÃÜß qDü�&2â¦k{SÛæµ©}£餚?RËÜ}‰gl-?…÷3z÷Ϩhû×ô좙,á€@ñW _þNëMXáŽÙ;¶g¼ïŠŠC”›«›뫪ªeCÑ{æÂ__Bvü³�%–K¾x…^šÿ´îòÐø‘‹?;Q,ö¼\¡FµìýŽï>’KÞ¨A“f/µúT̈¿jx>çWs¡(J½Ï)á—vœj÷Ù0¢÷ :‡É×Ï,’è_¾ªª;·à��‘ø³šæý`îÕ•Q=§`!Øý�¨¤d‡Ù=Ú·€“@üUÃV4,õT»Øn\ÿ]e»©Iã¼ô»eI±X�^iRµû>ûl÷€ÒÒ�gêí?j)ß$ñ7OUUát Ƕøck3¶-ü êýñgR�ã¿uý¥8cÔ.³"õß�ø«ÆXUU=ã¥5T™’ñÑ–­tNKi·©m†Ü<”ž�]uŠE—.šÞ]qq9rD÷±¨Š¿N¥Õ¯þM÷1¤~íc«Û׬ð[7ý÷ô鄯ž?†�µsa3›fÜq ôT~¬pKø‘`¾ñÞ½{L?_$ü¢Ôå›NÎ݃µ ˆ`Yü™~ýz_J?,ïFNÝëùUâ:B>6×�£� €`àëø®5k׺~Œ#«š0[(YRQ·•ë žÀ&–ÄŸ6KP*ü–>y½0ø¿¾¿3®®HD h ·pÈ>ô¼âØ«Ïm&NxÊñ#D±Ñ¸‹iñ§MÍ�Ú—sCGŸBsKÏáÈã�%¿1:ì�Z·ñ¸Ó·J³@”§ªD|vÛÇJäOwøxYNwò:ך€EŽ `ý†wqݧŠS…ŸSUøÊ·c‡4nÚÄ”øÓ 0…°¸òª©Ãf @Aáå—_ŽìkTa{Ö™¿òìX<..Q#G*ß}÷�gëÑÇPüiaUáÀm®« ²ðKÂkä´´n1Õ* ¡Ûaðȸ±‘½¾3gÎ4±•÷têxA וäÛoƒÿ9 ƒ™ÈŸ0%:bH?_:zíÂiéÇþ¤?”[cYÀO-²®á,Ýç.…ŒæwfJÐSí¹¹Èpç�Š?EQFÊêŠý¡{)þû,áå$BQŒx‚ªªBñ·eëÇÙö"xfî¬Çg{¼ d¤ à5jxvlÈDäo‚èM�…Í %Œí‰"è‘£"÷bŽ~P¬ïTUõÚwµJÊý•—ÿáñá¢^½ú¾;Ìx=:JÅŸ¢(™yl †:?÷ |Tó3/ÐMw®^ýZä.~Àj«dy$éhשY³¦oÇÙ‰,ò7Gô(‡�±.;©Ÿ!8ˆð‹¶,R6 jêúz}:ªª.÷ú˜Ìãã�7yîñßè–´ú¿CXEô°<ÞM1 “G_/\±fj ®¢ªªÐf*J]¿�;u>æ—K§gÏK]?Æ}÷Þ]åÿ 4ÈxŸß/dƒƒï`ÑCWüÉFžDÌBÅííwË–ˆ?F€¬`°è$£ý[õú²‡Ý¨+¦ÊuçT{E…{‘¦¿L�^í¾üü榟Ê)§êÞÿò²ù­+È,yöQÑêJ#{Ò ¨ªZí(Š¢T¿3ñ&mfÔ,:Ìù9-]ñªî²UUU"u²€À"ú»KÇþ…ú…SñŸR¿ÿÎê]w·®wúuàZ¿öíÍû 9r˜Š‹õûbrþôzÆë "ÿïѪF©ª w›Xê/Ÿvg"’FËBÇ“W³ø‹Ô)ÂÉXQ½q³fÍiÇŽí¡<©þWKK…‚½œ^ãÎk^òâ ŽDO·oAwíÇÍñx¡©)S¢/ =+Þ¡U9�3\e°¸èh‰Ð|Â/3ªEþ´._Ýf�–w ü Ù¡Fa·øXUUÑù ðYôoò”iô‡a·†ê…à&ƒZ¿@dWô®;�`›=k†Sû×»{’ªªR/]Á¾„Eÿê-J%%;tCf.3ôjþ„�gQEbúŒ®_€—tkø·…ÎøY&ü¸Ñ!+ÄØ =!ÁÖ/qÍ®¿ ;ÂOCXzºú}Fë "áGDó"u¢> 'þºê-#J]¾é…{[Mô¹Ö˜ Õ( ßsäÀÂÖ.猨ŸC òFKJ ii`î0õ Ž8²è”ØqTbAø%) ’$ÍTXtF·6ªªê�áp~MÒ(i‡§z± G¸ä‹WŒÞKuCs2!âŽö!/M“æMÇ‚ÌM˜}q4¢F�ãí¿$�€E‘\ýêߢ*èôøïÇôÒü§e«\aTç¬QEü!¤ ÁDK›2·MŠ@¾q=^¦°Ï]rfDS«V-êС£‰-¥@ Õ #Ã,ª‚,Yø-�<\º�ªª}<[P–« X½Â€¢(,†Šì,µG�^teŸ¾t~ûvÔ©£~ó{Õ½÷þ&Z»æMZºd±­+Ò¢ÅtÊ)§:y5ÛÆã…ž¤RÊlìsyß�ôv‹��:;¥?|»ÄŸÄ L(ŠÂÿM‚´dNó:í(ÁŒ?!�2=ÐÏ™yÅ™Âõˆœ–6 ­Wõ“ن隿�_4ˆì¥Ù}V~€pÁ]¨2»èÛ¡CGáÜYà0Æz Ðjât'”$ᆠîf/=¿à $¼Âo0„Ÿ{˜‹7 áé™ã†e@ØîCËN¸)ºŒ«u¿.�Ç çº¼–9€bºt¹°¨ukãIöÒã)^Ãóz?~ò2ã6iÒ´H6ÃdŽ^Ú—óŸ]õöÕÔ¯(åËæžÚ·k<™ÔÚ`°èZhsÜ<¶&4ÁOל# §í#GSq±¹ ÙUï¤×O5d™Ð³âZ2c´©=¤Ô‹bÜ_TÑ‹ü¹áDVp-¡�ÓdI: ¦ÄV˜”âq'_ˆzK,V°&)ü(Ñi}]p�¹ÚKn¸à4,G9%ë$éã}›~µLirc¾2Шù#IÓÇÒ'o >-Ê"uí¶–ŸBç zQ÷14{¢€Ö 0’ˆYhaûqsíÖ^Åbœ.zÓÅK˜õ@£(ëºuo[Þg�KG5ÏîC…5N·ô¼‚öP�½ëhù Ó,“ÅêñÇŸ~wßx¼p¹å�C,‰?Š`ê÷ŒQ»„®â�šOŸ›©è¬€±X—%•m÷É'[éÀ��íbRyyÙüŒ÷É~�­[‹ûTâñB|»€Hüqºs„Þá¢&þ$õ~+`, ™ã�œ�fšî¦Ý8Jª×5ÁÑO®A[£Ý|'+�zû¥rôèQz÷Ý AXv%íÛ_@5kÖ4Úlm<^m¯9Ð$‰þõèþkúçˆhL…{è_§Ñ£“_Ð} Q?pŽ€ ÀAZ¼µÇ-ÖêÃ=�>Z~©ìÛ÷mÛö©kë2C^^ãÄÍhþpËâ�"ý“Dý þÀa|€|ß�L±çiÇs�ÔÎ^»ø!mˆ¾J�þuYO˜„ÿͤÿ øi3ôEéï�ŸžYI´ R#â ¹1+˜«EõX ©ÚmއÓPnL9®ã"P;¿Œ„Ã]µ]º\h6õjžúÂ]¼|,»Â�Ž�÷H×™…#dýû`îÕÔ2w_(¯Ø¡£'R½þÿ>ލ¸G,V`8ŠÌ ¿¿îz4ðz:é¤ZA}Õ&i‚4#b±®C_æÂúiUEQšj)ìÞîo-Ÿo—.ršp‚CkäÎåîZM&S®ªj j/È‘ø“¶é‡5ý+K÷ÊŒK8C&ðæ¡·Òà¯ã+1VK?[ÆiÁœ‚ÔNEÓ|kªÝRÙ©ÝÖˆ„˜ÝÚD†ÓÒœž6É™úüî*OÅÞÁÂWªÝW·ÀÑ)ùšh2M&"J‚]ÒR¬ŠÖï¾ûŽÞÿÝL›Ï£3ÝI”1#þ¤/ÜýÃÐØ‹?Å%Z¾-�úݽ@¶ Þ0à!éâ€ÅÞu7 ¤«ûõu}¥³ÆÓg‹þAßo¯°üÜšçPÃkKMn¾Çîá‹–2ÕpIøUÄã…¹&¶Ëm‰îØØTXô±øsŒg•`(þè˜\.«ÃäÙ$�bUUMý"pŒ¦ÿýî»ÿýyÍš¿wû’²ØÛ5e)ýxÀ1�QIÝËÏ¥–ÿ;‰ŽÏ=ÙòSµæ]b±‚ÍYÒTÁëîY™€uÙƒ°®ªª°‰IÃTÎÖÈ옣iÕZ³ IDATU *&„EIøq�†¢(cEYÃi{Ém�¶D/À+šjžxÉŽØ·„ßö§GÓš&­+o%ãº"ü˜ƒ/DñÖ'Žó™µñfE]Á±XÁÄ(?�îzw9rX*üæÌ{Ž?Ÿ¥7ÞFÂA|ÆUÇTä/‰¬þ�4‘ꥰ3P¥�Ö¡å„•§"ƨªŠyŠ'h£59dÚAj‹½²I+ó¢å�¸’šß9ÎìækµÆŠ.z"æÇã…¾”7¥ûÊ"~ï¬ßH�:^`iÿë7¼K�;u=Œ²®¬Š?Ã7ãM×ö¦W[¯ŸpÙ�BÙÝ«½kœð{’Pʌ𠰀'bïhù~ÚñÌ£´wö�mZ?÷˜Ù†‘D ‹�½¾ÏANMÿ®[÷vµÇ{ôèE«V‰›2Íг祴zõkÕ¶DCçOXtLt Ò 3¥ømsƨ]TR²Ãh³Ðµ†›½þ. €Ý4±gXП ßîü˜vÍŸ ±§ÇÏêÕ¤‚¢�f6­ˆÅ ÜøRˆ¹šIõ�7n ~8Zå±F?Dã¶å„S�ÑŽ¡GÆ�M¿»BUUOš\‚ŽeñGÇÈ\ÍÅ\ÊcºŽþûÌÓKð×÷ÑðqÒü’P ?-µë†¹§UºÃX€¬Æ3±·cêúr±k�¾`& xøðêÕëR'—çYg¯Î9§•ºuëGU¶ì×ÿZò¢a¦Îý¯@K—,NJÖ†‘]ñGÇÄט�0³­µ€¿h@]n}Þìæa~n´ùg¾=�=ôÑÄžã�©ú`•=77rbO�_^Ó‘Î?CºÍ>ÝFƒ93i4hsqõ>ÓìjǪvÒ¿ˆ?²‘‚t#h!Ò—$4éKîÄåÒE»ÏçoRíÏ¿€N:é$:¿}»Êûß{>|˜Þx}µn]„F©ª:1“‡gb¯dÚ”D—l6b& Ì]¬³fLÏèêPøU›V^^A99u\9^EÅ!ÊÍ­–EÏúè_Fâ�L˜@‹˜<úzº½ýn[Ç|nK ºß°ƒW�¶ªªn¶uP�Q¥Üj3×KÜ}×�¶~‰øäɧžÖ«‘0Fš„›AšØsÂ-@OÍ(™9“­5¬ÅÎÌÀëo¸‘JvؾfmãñÂ@}楶åç7£;¶»zÌfÍš§÷d}ö*cñW¹#b%—× .µm^»ÊýÛöü—>ÛX:’Í¡z¡­¤yor Íž%OX……`ÿþW[Š "Œ@h€Ø f`,V`gÁcãñBgº'$ýó­tW5Îkäê1w•í¦&�«zgûg–câ�áÜÐ7,žuV¢¨NvEÉróPzvöLSÛfû/e¤&öÜ´…¢}¯ãܪõÓ9vú]Y=ùÃQñW¹S“ÝÀ.³VUUßÛÚÍbVø9á�d�°¹.€øÎMðAì…ˆ:]›Q»ùbC‡»î¾—Ö¿³ÎÔ ­Î/‰^»�âo¬ªª�‹Œz…©ñnVáNZMÌóáœXô)a~†Â�Ïý~ ×d¼¶ú_†Û°3€¨3&eTšª}¸:.üxdÙº‹~]9*mëí�Cø9§ÇYP‹xêÉ'L,¨ÂO£Êç2g°¼BçXaÓŽâŠøK’"�éW—3*¤¢Ï”`âoGVGÝ8MÏK.2õ- ×ÈÕF9¦‹=ÇI{ŸÞûWú~{0¦7EÔ2î=ÚèÌë†éÒœzZƒH+ ¸*þ’°µŠ&Ì’BЩ¿ IÁ§„ÕrDk”Â�P^…ÅÍÂëáuÉP#áÈœt±wЬ¿ªUJg�§Â¶ ö|†¯½ˆË.í)[\÷x¼0kkØŒ`˳4Wé%5¼> æ±77+à&ŒÞåååôõׇˆÿýöÛo«�{aj×®C¹¹¹•ÿ&‰Ç Cí1§Õ?Ó3n8ž;§� ê›(Š2>€X¢©–Æu½fšÅÞ®)KéÇßá üÚ4¹ùÝEMž<™†ž~÷¼x¼0ë§VÈ`oÛ4Baûæž‹¿*ŽÅßòòû¸ïÑ<„éެUø%1!'hQ €>ž‰½íO�¦²I+ñ2„€’q …â¯]»j«Òx¼0,«6§Ž,Úô¾gÖ9VV‹?Wº}Í‹d|à€¶J1ª‹ ZªW†Þøœ²ÞL€Úhb¯·›åhù~Úõì$ˆ½#÷âÒe4iÂÓ‰ŸÃô9¨gçc·oVOù€øó£±xa~I `Ö�ÒY‹gboÇ3�ÒÞÙoà�!º• O†�ŸÃø˜øðKüe»-™'  BáÇv.aÄÀ&hÆß¸G6Ö¤4h¹!ü¾Ýù1ýûáQ•ÍñÖCøE�-÷ žÔãO<áêìe¯x|üS®É‹c„�0Gþ¸Î!t3eõL.“øeàìõƒµf¢D7-²×ÕÍsb±·cêúrñ¼y² Iô¯8Œ«zC ÜÖ!:™©ylEçêAN˜#aµ6y„Yø‘Ö"Aí DôÑ Å“‘½7Ý~‡>XGÅìmè:ÂÏ"'œ‘K-’O|ãŸÃ¿„2ò§'ºFŽºËµãéí;Û……<òÈ¡Õ2d³�½šÕë6³€óUU…ÿ}´Èž«´ü_2m |ù#¼92„E^£þ¨»™‡^P9¡yuyã-ÑêØÔ9tÞ~Š¢lNÿ�*ÝUF�ó9zœ]e»©Iã¼ô»KUU ]ÖÐiÂ,þúÆã…ËZŽ'È:|ÃØä!BÒü�_:tib¯‰›ëÃ(þHžú�¤ÍqzŸ‡Nê}e{£G_Ò¾±X�#Ø"ãd~Ó�[° çàÚE®~ `ƒ‘Z I2�;Ç�÷)‹½MûV¦q‹¯¿ÂÏ%¾yo�pÇœ #\ó)À•i/Qmì+‹µŠŠC�÷!Bx1j6øù‹Å ¤V'f[‹»ÌÞ%JQ?Ò~ñrs…ƒK`ûüd¤Ù¾A�€ôïœ1—¾)ú/¶ˆ"e»ú÷˜»é«bk–L�yþñÇ‹+õ½ô/3yÊ4úð[m-à/S§Óð;nÓ{¨XUլ閊_âOØñj–Š¿rÑNÔÄÉS¿ø^’ñß3@ì‹3'ÝI úèM±’úeÁ×òÑ©¦¶ÝxÕo¤QÇL‘¤~CY÷—DöÙÈÖg�:^`j?ë7¼K�;u=ŒaiøÕíëDÚ7lè¾¹{âÉHžìˆ‘wŠŠ„7,cRR¸ª[ÂﳦѺ‹~]™ÆÝzûã~¢lAf£1¹n�Å–YáGéf— eÍ_M”é*[sHèõziYõi5|?ÆÛH„_1„_uüŠüeÝtQ³G£~$î²J€‚[๚Øs½î‰Å^éŒEôýö ¼v!A){»]úá«ï„'a%Ú—ŠÛÍ$×¾@'6=[ôpèÿ¦Ê|¤òþÜÜcÑÙÚµëTþúDåD"i” €Œ¦ZdO¿xËAXìíš²”~< Ž�pñÕ›+t›3òïx€JÇ/Ñ=—.¯¯ž£Û5}Fðø¾3ôíðžÁ)ZEQšjŸV³Xôµ�Ÿ¬1žˆ?­ÓÕ”w B=jÕªEyy�©^½ú¬ØqtÅ_Ô,^ÒaË—Õ«_Ó{(k>�1ž‰½íO�¦²IÕkˆ@t(�¿@WüÙ!þ€c´[$ÐÄ["ú£eÎFJfd¯àŒ\$¬ášøS…_¬ NíïÈ‘#ôÉ'?y±  ѬX]ÑÛ¶]{ïWâ!;u‰?Wç ‚ÐÐFûÀræZÀÑòý´ã™G‘�=zãSá¹Ö¨_SZ÷Tø½||îÉz«{(Jâ/MÔAØ9Œã5ìÛ£578&üÌáã(ŠÚ7ÅùíÛ`îqêi ¢zjÀ,ö–§Ôì¹!üøòß�ª¬×‹·¾ÂTAV÷§7�4¼Mh^ïü%'p¬ÛWQ”�>Opìè0Q§¯£0"ó]BÇoVÐM‹F¸éåé;¦N /oÈöë)8:wjÿntJ¯ßRN»_'N�ëø¾xý5Ú÷\ÜÔ©¶šû°0õ«—Ê•xéé²wù<Ú»âïÒ(£ÓHÖˆ¿©À4‹?EQ&lÄÌ$UUå{ñWˆ¿HÒG«Í�ض‘ ¶T¾Ùñmì~�t›:�Aíæ,Õ}LOüÙµyI²î’®ôý§îú-KÄ_w¤G�Yl×ü)Š’«Y-dLjãó³gfº»Š¢ŒÐÚ¼#3ÿ€ÒG‹ì¹Z èƒuT2m |ù#¼"L“{ú':qÍò‹fç&„�¬ ×jDŽ#Š-3Ȭr·p&#ä2¤Ä0‹­š?͌Ѳðãiåå cãÔÛìY3*oé�•î*£FÛò}<¨5�ŸxïýM¸ôÑb�f¿�¬Ù[æ†ðc±W<ìºÊš½MWÜáqº­¶$üRéðÒ?9¬"ªáã÷ÏêµK£þ˜ˆ8ºÅÁÂWD{†‹0�eñ§ b6­Æx@sRÈýùž»('§Ž¥ã±Yð¸‡ÇTîƒ÷g� ÚzIÔÅÑŸï À*@°ØÛ™"öæ¸!öøÃlÓÀ¾{YJÛe“é„z§dtò,ETlzK÷‘3î/|κ¶=E»"P”jv‚ï¾#Ú \€i,¥}e˜Óq«žíÃnMÜ †8§Òš×íól¿R½f˜¢Mïû³�ذ~½è@b'Uà'#µ4®UcUK°Ø+™9“­Ý�;ËáY²™CnÛ'?“x¤îùm¤ÑA޲hKg×ÜYÔJr œJNݯÕh ^px~o@æ˜nø5-¤ãuê×ß ^=.6³i…_PQ”¹"ãÚ¨Îö¥cç-zóƒ�'boß+ÏÓÎs離ÏCti€ ':qIÒ¼À7=!'{IæöŠž“©ys‹G†$Ò¼zlÜÏ•.à:]›Q»ùËD£‘˜Â”ø3ñë×ÿZòâ ¾]õþW ¥Kmæ‹ÔÊßÔ{,KÅ_[UU1ÞÍ{Üœ^ ˆ½`Á+§Dˆ“�¸dS”±ð¼pÓFKÇçÓÇî¡Ï¦éÑ›†ÓÖzÑK'ö­Ç Ís¨Ëú©lˆ?`Ú?3Â�£}~ ?†�ÿÚêm–ãG `6Ž�ÙU¶[ø„ŸgŒI©×SÝ~Ÿ½0�Ö]ôëÊš½­·?áç#'œ‘›;É›õg܉Ëû2;.-Ù‰+kÄ5\ÕÙqd�Ežè¸zØ©û3Ë�wô÷ýß½îü|¿½Â•ý‚ìB*þ´t¥Tøq÷nP¼êz^rQb=´Ö¼ Áã㟠ÊReæÌY:›PÀí‰^ˆ½ÒY㫈½Oïý+>�Ä//îèèbÜêÄ­×)¦{ÿ¾—� ›‡Þ!|Œ#ƒépÝŸ°Ð]›¯VX3Œ6Ë/ÚžæÊ~Av!Š¢´1°Î)K«Ý»nÃë1‘Je/@¯§�è~:ÞwïÝ/Ã7Vtwþ"fébï [fë,ö Ûv¨{%ãB쑨²ƒÛ�¸v‘)s-b:V… H6|fq—§Ñ“‘PöõÓ#«õÕù…kûÙƒ¬Û·Hv‚^«Æë“Ôœ1%×GŒÔ¬2"OEÅ!£ë¬ÓTKãJ¿�9Áö§GÓž¯Ñ�Â7øÕnݹÚUàk²þŒnrëÝ•¢NT_çE'®'6ÊlJ(7¡X©µK½6I8µœÑ¤“çj‡š§ýRö,¶gšëÚÁAdÐ�üÕÅ…¥IÁ(¬(Šgµxªª !GŽºË«exBÿþW “�õ�6i£ýOFöJÜ~,ö’Q=¾•MZ ábô"u\Û–¬äŸS·ÑK“’īޣZü>)ê;<ÑH·ÒñK¤M|¼ôã|»»Tw[³u…ô îs¬úýñkžl á4õ·»wÓ—ÿÚ m8qÑ9Üvû4jÔH:óWgp�å5@JzÇPø™°P 4¥»Ê¨Iã<ѽlþ+²àèÙóRZµêU�–á<Íš5—íspHOË.}´æˆ½€“œV‘v"!ÇâÀ _870+üX¼íš÷’«âŨ7Ud±ølЧzuC²FPoZGQƒIéüÂçpTRÏ °á5uÅßç†Q³]~VO¿>“ùðƒèÈá#¤}Ñ„øR*Ó¾²Ú·=zÎÒÅ*�óQ~~3ß×!kƵr[¶~ìí‚‚Çì•”ˆgNÊ^"‹½Í)iÜen¿C¬£âa×U¦q7tágN+&Ó·<-"SQçwÝG®ÌÀQ»L„Ÿ�¸©ü{„¸ÞY4Ń´±j"dÓLDu„cÎzã;úIÿú˜øëãÕz@xI­ù~Ss4*•¢"±{�¢(Ë=\Š0 vî9-=\†sÌWÖ:†˜AZ½hªØs<÷—.ö6]q;|µ=™’žæLEÔýJ’š7¿ëþ’Ñ©’)�H›.Ìâe'®¨F�´ˆfjýÛϰmŒhž®Q“F².�×·ñªßTþ^ÉDh�hr³¾Èß³woâßí;_Àý¯A�'5í«û† B´Ì) ¢—ŽÛ‹à(˜¢(BÏ?®› SýŸA=eEDì]i5{®vÓ,|…JfΤCkÅQTà.ÜýÊÖ%z”NR7J(+– —ÿ–}éZÊÕLÝ!G(Í4&p'n£ì¯%щk2þijxeik+&ÑFõˆ�úL§Y°`Qb�§žzj”N ¸H"ò§5zè²f­~ánX‘Y¿x<õ£®ìA®ÿ u~,b}·Ò± ×ë•§Döæ¸!üXìmØ·2Q|ý}~Á�zÈÌŠ­Ôq‘£T©3v¹"ù½éN!Ц™�Pz݉ËQ¸L‰¢¨K¥Á�‹„�­\q,qÕàÔ̦±€ì!™öÖcq­\”0°ªñl毪ª,,&‰çú¿þWðj9¶`á'«ó#¢QÁ]}5ÒÅÞ£¹ÖvØ÷Êó´±O/ˆ½ k °Gö’pM׬ÉF£±”Õ®e‚¨¶ÍL„Òˆ63õSº©Ô¨£Ÿe nNÃg"£.ü˜3œ€U€¨�º¿9#FÞɺ_ÿkDy–ú¥cp¤hæ/³tÉbÃÈš_˜~¥ªªz&¦m0&Eè¹&ö>{aZ±·õöÇ離Ͻ8?`€¬1ÀNÝ_ƒÞÇÌwYЉjÒÒáíÜ€NxΉêöô¦u¤c«÷½=–ë?üãÀ¬~'4ÿiúËÔé•?·k'Lâ…EQº)ŠÒGQ”1i·nAÎà6œ‰ä^¶‡3¸Íµs=m®n�Û£D-òÇpG­¨±Â/:™÷_’ ÕÔø% §ß‘ÅŽ“°Ø+�±ˆ¾ßnk¤lATkÆ�¢º?™ß‹Y—ªˆMƒûIŨŒú½[ë¦iEçÆ“(ÌŠCY-žHtÉįY¡Æâ²ùƒwèÚÀÈ^›¨+þŸ{²îÙÅb•?Çã…ÉCå©Êâ.ÿÏ\Ÿ6& õå,æ2˜î4ج³†¢�•Òmƒ�‚é°‰€©«¥d½^�áÅ~gýFêÔño¤Û¹tõ&€ðËÕÄÞ·T:k<}¶è{!¥í²ÉÂY°2¡"E"93˜FÜ´Áµ{©ÇÑ{.×ê¥�y�Üda†o.”ž§j“�Óœö>÷©©Òqif2@UØÛ¯ Hÿ wùöï÷Ó,õ°ˆ?-R5×Ål›iE©e œ »‘Vd‘,£üHWj¿ ÂÑzIØsÑëiÞ$~ˆç¦ZÍž'bo×”¥ôã±ù,ܼ ê&µ#þRáôðæ[n¬G²ˆ!I¦L艽tÒ'gÏJªÔÎä�L� Ì]ÿÞ½ûÒþýû+ÿtñ§(Ê ­yÎ+ŠUU |.\Q”rÊŽ¤ç~œhÞ*‹Œ,ŃLM0I;€IkaáêÕ,`>/`¯©ö­1Y¯Wâ–ðÛþôèÊz=¾•Œ[á!d~™ÀQ.O–ºv<VDºPKv ·|tªa4‘íiÒqj2:qý£NW±ÕÚáÃGª¿N�»ö¹)�ß>Y_ŒÉR´™DÕduogÞÿ“•cˆ:sE�ÉML‡Gøzè‰^tâzO»¿ÿUxÌô¨Óõ×Çý>ÝFZ$©$+Pc±_jßEY£}Q½5a¬+ÊÊË+hö¬–÷Çå`"c-­\õ>íõ~7¸Íú ïRçNú̂Щʿ´%%Ûi¯6¶Çüí�Eî¯~uÕ©]»r‡¾þšþóŸO©hÓûVDžce³Š-ÐM«=u5êÊboÇ3�ÒÞÙo¸y¬Ø­È°S÷Ç^vzPº_Y#Eê1EÇàèá®y/N 1ª3䵞ؤy•µ°`䔵tâºOÝËÏ¥ÖS �“Úá›$YïÇ©ÀY3¦ë=�»ÒºÅã…›Ý<³õëépŠó:4£ßÅÍgh‹ÛŸLËŽË¡ÉËl}›§ªê ;OÌEQ6§[ìñùs¤Ï¡ýëÝ]åóâO¿Å_,VÀbèMþùèÑ£ôî»ÁÜŸá5òDì}»ócÚ1u}¹8x׸§NÙ@Ù ì6}E¼8ÊÖê™ù†ÏMìسºNˆØù‡¬»—yqé2š4¡ê,â×^GÃï¸-ñó]wßKëßYg´þyñx¡ã‡=ø’Ÿ]f¸äÂÎôhíï©Å‡Î¸%LëÒ‚îÑRCd…×S¨´¨c•ˆ¨“Â/å8ÕîKý܆øÓ!â¯Úk²oß´m›=0‡1l!ס�&ö\ýD�ØdBìp�ß¾×þ‘ø¹á5¥Í¢\¦É=ý…µvfÄ“h�N /#»/ÖÌcôþ•EýD�Ð=/ÌØÏŠUÉÿô»”îZ¿-ÓC áˆàE+Ö›ÞÞËÏ|½t¯Î*\Ê•›[­�„‡/$RÞš¿¨óÉ¿ÿÈ3ŒÅ t¿…œrʩԥ˅”—רûEc°ÖÔaæ�‹½Í)5{ËÜ~‡>XGÅ×ÛÐu„_à¨ûï¥6gÈš/¬Àï“¢¾Ã‚Žoìw'«e“ÖýÍv§>4uLœ˜õôK"ªîc$üØÚÅÞÔjm7ChÆÄ†Â¯_ÏîôU£® ?¦õûûÇy£w'SÛ›ñÙu½ZCQ�^¦ääÔ¡ÉS¦¥ï¥r>½Pü½÷þ&/®…o>|8¨K“Öc°øcزå¹T£Æñn¯…cñm5Ñ'+æôÁN·ÅÞÁÂWªˆ½MWÜN_Ö`ÂG²+—Ó¡éÆË,Â̈@Ùã¢hûãu'"WûWb{»˜iÖHÔú]ÒUZïÜÃHøñ·ô&æ]ùóž jÄY[j"�o¦-Ï´é† y;Û´¤é[Ë2YŸe’"pðÆïi�`µÏ÷sZžíÚÁþ0ìÖj÷iB=!þt“íÜ e$ççL±�}š˜yfnn.uèÐ1![´8ÃI!XJD}5Á—«ªªžM{sÌ®Û ,ö6 ì[)öН¿b/¢p¤OeKÂÛð¶"Néõ[[È)O¼$g�öƇÓ,,T>•S©òŒDsŠÖ•Ë¢ÏNû}ñ: IDATM!È#áǼÏ/Ô÷t»ü7=+ž>}–S¯Æ23Ñ@ž½k4–-í«½ÿ{§Öf™'‹JhÃoŒ><€Uò°nEýRyì‰j–Q ¡®h–º#V²tÂÇ$UUGz»šch-ù[š8ðUñ'Ÿ|¼Fk¬�EàXèòvk Ò¹#µš=§È«°ï•çi÷ /Ò¡µ¦ ¥AÈHï÷dÃs’‰¹ÔZ?æ¡1㼺F]‹‹‹B+üNC@Vå–ÄŸV'9QTU^^µ¤âλ­×Û…§ðhØúÔ�íë¥e+¥£E Î§¸Q¸:W‹ìAìÏ(�¿@Wü¥ +žRñïUýËd‘µäã©ì«·þ©k>|ìØÆ‘?§éðÒ?é›ÑÎÙSéø“NJÔ$¦7³¤"ýÂ�Ùh™ˆâ¥Öú1¯¯^åÉõ9rä09rDøøÌk.¡^ŒšýÂHrýŸÌFóã5íWûõׇªüÿüöí<;ó–眓.þÚHÅ_¿ßõŽdê7i†œœÁ�¦ÿÖåjoЂ§8Fé¬ñ´kÊRúñ€©Ét ‹0ªac�”.üH‹¬qªÈ´¹Õ¬'Ö-Iö¿ñ/]ñgQ„’ëEu,ØdÓDØcÏl¤O6ú „—:]›Içô¦"«ñKòê«ÿ¬òÿ· ãž]›âb±!7wX™Ðá7&à ¤Ó…ö9mª³9h´8ãWé+ÊMZ½L ÛɸÄ(ŸŽëÔ¸�ÁDÄoй)�¸Ý~,ö Ûv¨ìÆ-·ÂØbóÐ;„OãT‘÷\zí«âúAžüa—&·Þ-|&OÞp‚�WýožˆñËk:&êHÍ ?îê5~<Í£v퓪ÜwߟÿìÉ…K­YÓÃk+'XÙOa�“´¿Ñ¦r„Nø1_|^Ý(!þdÝ­M‘Úfôƒb †L <3ÀvcE~³ftÿèщÂßx¼pŽ›oÐíO�®z{À*Uad1²ù–ÌßÒmfL1ܦFN]Ýûeu²µsDÓ Ü¼¢WÂwð¶ûû_¢ïœñæôsÍÞàAƒ¥ÛÔ¯_¿ZæjÓ&WGõVA&þØÇ/ŒÄÖïM4_Ø9g+ÔªU«ÊÖ^z)oX_mÚÉ%™Ö•ùÛD)õ+éòõe¬[,V°ÆÊŒÛVç�G×^{-ýº æîÂ4±W6É�) û`ããvs–êžw&ãÐÒ­XØPTWg×~Åè¹²nfŽ8žÿâ]¹õþa´ï9ïRvÀ¸–¯Ùï7ÕÄ¡‡Ù.Ýôî^ò®Ã·Z·j*l¢Ì^zaF–þe?ÝL))ÙN{SL¸¹ cÕ*Ksˆm££{º§Öü��g‰J㟇ùW.÷� ?¯ÄÞÑòý´ã™Giïì7<9i�}ÈêþX Ù5æù¼©âoË=£…5‚,ÒD"Ž}þd°=‹H¨éÕý%#�|^˜š-2{IæÌ{ŽfÍ0—]K¯óc^yÕ›&2ˆ€…]ø1�^})Ýÿ¢¾ãÙúáÇüO¿Ké—º—Šå1¬?üp´òÿݺvuÝèYÇÝ$¡w”ôˆž,úW^^A99uÜY¡‹TT¢Ü\qO…ÇQ¿>Z»¸«6þ‡>XGeÏÍ…Ø�¢~ïÖÔê™ùºK2ªÇ³Z3ÈÒv Ÿy_¢caúFôà�Æwô£&7»gºËéÙGÇY“"áÇ]ÁzÍ!zÓ�4?º7-<…ôˆU’(Ôú¥#Šþ5hЀòó›g´o6zÞºµj˜›Ñ?QÔ�ÿÕóù›'ú¶À*Œé_™ðó êç™Ø+™6…¾l®»?HX±|Œ9ý*‹œ_û–VÌuvVGÇ%íV¸>‘£”?T¤=Ë^’ZÈ€pá…Ø#M =üð8*ÙaoV¹Hø1‚®`]7ýx¼p�6ÇßV4�S¾"*ûÌÊ®B ×ëe*þrs«ÛM5iœçš®Ò‰úU¾GªEþÈ úׯÿ5´äÅœ]¡‹ô¿z-]²Xx¢~ƒ4±§;âÅ)¾B%3gÒ¡µöþ°àv;j[Í}X×€Ùèyf :o£É Ís¨ÉÐk©á÷Íý­4pÈÐëêMÒ»w_Ú¿¿ÞCù:&ÿºÄb\g´ÆŒÍØ'Ÿl¥è>Æ&ÉQãµ.�èÚõ§¼:Q÷§ýscί^�CªÞMøè. ³�ýàY4îa±_^P`O?™ðcW‡–:Ñí { *ˆêþHK ‹¢l"ág4�…¡¬Y„ד:%„›_´=�è*±—äÜV­hú4ñ4˜'Æ?%~zÓ�„Äã…›µéO,¥Ÿ_"áÇ)_ŠXÊ—‘Í$æ(h­Z' 7GÿjÖ¬Iß}÷“GnIÉŽD Ê©Àš ¹µÊ0ÝÈŸöä�²èÕÒ¿­´ý ¿GÆ�•mR¬ªj&]×QÈØ÷Êó´sÆ\ú¦ès·€/°eŠlÜYzç/§ƒyF®«ux\ÏG&FÎ�pÀb¯éÐAtÊe¿wu½ÇÏ€l%i÷’¼�pã¥Ø[¸èyZÿÎ:_®WRì5ß¼?Q§xöÃÿkùœ¹É¤W¯KÍl:Ïmá„dÜY-CUUî/`ØG³‘3ò æ±¼ƒTUµ$@MGþ*Ÿ`¢ $�#櫓cÊh4·0?4f,Mšø´¥ç]pAG:þøãS煮}¨ƒa}cˆ>2CT÷‡´n¸i0ä"jöÇûM§7íòVaœV¬X雨;ïôú;r�m)w¤)…Gq™ì,®ˆÇ «�ŠpDþªãñ8X×°,þ’(Šb» ‚Û˜/¿ürêÔñá6Ý{ùå— -[DÈZ²mñ¦ÒÚGË÷S¼õŶÖø‰†·õÖö¡‹7u.ÛCuvçISŠ Ï>!> ?ƵƆ óÁÏkGþtL–'EgتlšzõêÑYgµÌdÒÆ6fþôÞ¿º²vQéô'uëþ25€æ8¡y5¼ö·Y!özäÕ¥veŸ{&öH|Óÿú×LÎÙ³æ=4Ÿ_¿ï“6 ‡VDÆ~ £š?Ã�›²ÜÉ”ðqÇ÷E«Vç�ªY·Ø&/”>Âo@ÝŸw°Øk2ôZj8à6×�9gÞs4kÆtßΕÅ^ç­»©fÅ�aí@f;—ANì(DÓ'Vö+ Øú½~/ÏDõ~<±CUUkCwŠc‘?=´i•�šQô ‹QAö°™Ë>ƒÉ;b±‚ŒÆ­=öøãÒÇ!üðŸ¤ß°Ï/ÚžFM‡¢S.û½ëWÑo±÷Û†9Ôî“=ž‹=—:�]7pΔg>ÿ�bA^ ;ˆlâB‡«‘?7‰Å l-<¿Y3znÁ<áã¨ñÀ[D‘¿ŠMoQQßáx5,à•Øã¦…¹óŸ3ëKç ,ö:o(Kì:BÈkãñÂnníÜŠ¢pàåF½§F±ãwA,ŸF.^­ûXT:})äâ�Óɽ­>O–î…‡Þ£ç÷·{Á3´kÞKôý§YÙlh'ýædø-öêÖ9‰.>‰¨íÆ=Qî@¶2~Ô3dƒ>êÚŠlÿ6hKÎIÊ7RâÏÕ´¯›Äã…}¬FÿFŒºSú8„ÞóٴרF�:ôÙì•ôÃWßá�à•Øcãá ÑÊÒÙð®‘.ö¾"ÊM)ùNΆunæ5}\±ë½GÇuéN38J'ÚÈßÿgïNÀ£*ÏÆÿßÇWÄ–%aQ ²@ ¨,N#‹ ¶Z�”º‚ˆ[_ XÛ¾-¤}ÛZ•ð§µ*.A¥jÁ²¸¼ ”Å8 (IPA[Q@(¨EHªˆòü¯g8Ñ“™9gÎ~¾ŸëÊåÂdæ9ç É3÷¹9ý�ͬáé¢~/ :K>{§ÚÁÕ@nÜì7WÛ?ßÞ(óç/ôm³×¾Užô?ü3é¶öƒ¸T oÑ=fƒé«OºQºõ{QÁQ²ôÅ—ëý³(Eý$Ì‘?9´™[‘HUgSü1sæÌÿLÏéeãÀo^nöæÌyL–.YìË×Ýìuºøü8T ë_2c’É2vعÞЭߛ{vŽÌ¨·†6~测”PGþjdsû7]Ô�–üàU¿¹òòJY¸è)ß6{]Û´”¢/öʱ•;cU�¬[ƒ$“e‘h ÒPˉHô/]ÔOßšWJöÖ¼¡ŽüÕ2C§ô5ô‡é¢~ëo¹ÚÝ•€ÉËÍÞœ¿<æT¿9˾±Ù»jt,*�£´Ù«ÇÀ†Ò¬NotP^=ÞÜ¿�[‘nã'QÛøIT"’!úGÔ€BÚ\زSÚµ’ľÝÒ~}Ul*�Í[�ÅÉdYdz¿e’.ú·lX_9u­?Ó[r•®ÂWoz•R‘s•ÈŸÖ³¾9½?¾äÒ¿¡üòn¯ @ŒD ¹pVüØìù]�ÇÍ^=Œþ Z¸*”·‹Ï8V$}{—HÎ7ŽLäOEÿ6×%GÔ€[¼l.ìa¿¹oèݾµœ¹óC9jãÞØT ›¹z³WšÅcc#]ôOB–ÿ·ñä<éókÓ=$r¹~5¢ùÓ½‚l{ÿ½s×d÷ 2"Ü\øÎêÐJzýûßžoöü¬@f³—Ýò$ÝðšnäÞ [¶êoÒy~6~뢺ñ“¨mþLSEdŠþ׫®¾¦Ám�±ÈÛU•Ts៌Œz¿¹½Ùë·u»4ß¶?6Èú—»¹Ù cë¿}ù{¶®y‹—Ëñ#Ï•I«ÒæÑù® rCÚ%(¥ Ã~‘Ò‰Ômß5Ñ?nùÈVªßÜÕ{ÒoÎïÍÞ�-¤ß†mÒ¸ú‹ØT ë¹¹z0?›=g†Q•®ÇîÈs2¨#~™6~Q¾Ý[#Š‘?­³ˆ4Øu’ö.¼ÜìùÝo®öf/.E)æfOGö"™°ï7¥T~ºÛ¿:XõÝ~òÄæfÍYäøiS£¾ñ“¨Fþ´#~ôÞüùOv¨ïψúñ§æÂç“'ýVŠºè¢”ŽWNˆÃfo¡Ùc³çÃ0òšüQÛæÂnÒlçg¾®õξÇÉÿÎ{.ÓÃÖEývo�Ènþô'¾†rØüÑçÕf/Í…ënöâP”bnötd¯Ò¯ µ,¬¯ÍZ]% ‘Ë’Þ��Ëò6¯V­£™î¯(¢¼ùûFÛí“ÍoÊêþ£ýY×xÙoîoóù¶ÙkѼ©œÝT¤çšíž¥`³7ÛŒì±Ù ˜l7€ÚýO–¶ï|âÉè¹Ã=µ$›‡Æjã'Îù“ú6~Úö¿ýÅû•p\\š c³7ö±¨@67{:²ùü«°SJU†Ñ"›[À=V¾žú§›A¾¼Å›~rG�ØÜê­-Ê‘¿zlÍð¡òŸŠ÷½_ €œÄ¥¹pûVyÒÿðϤÛÚbU�lÎh×›½*¿€Üej]×ÿ8Ô&Ù·­\0¯á ˜­”ÇË»Íù~@8Ä¥¹p×6-¥·|âùfÏï¢6{Ñe†¾5où—mçÎ]dBïceðûïg¼5¼î´Ö2ÿ°<™9ÿy»ç±§ŽXFù:¤Ãæ@ ĥߜÞì}±WŽ­Ü« dÝB#™,+ösðŽaÃEd~Où¥TAÖá«(çü°¸löNi×JNÿìã¯6{W�ŽE2›½xSJ-8´4të�þ9±ŽöÕÆæ€'âÒ\XoöûvKûõU±©@ÖÕ’æ-Ü¿€`RJ �C»Àz;pxd¬RŠ™Íµ°ùàŠ¸4îݾµœöñ.Ï7{~V ³ÙƒU5·Z=ŽŽ0#�¨ƒÍGÄ¥¹°Þì�¹óC9jãÞØ¥è<)s³Gô9© Ô9�¥éæÛÛ ^+Øü°,NÍ…ÏêÐJúmÝ.Í·í�Ófo�ÙP™Í\aFäR�•Í1qEdŒ�[éÎJ)ÆúY@µ/€Œ¼ÜìùÝo®öf/.E)æfOGö¸EÄ‘?ß§æÂC:´�~¶Iãê/RE)/¿:›½•fd�ÍC±ÛüéV Lø¾.NÍ…ënöâP�\sk,™,ãÖ€ømþZ�Õ[þS±(+üãUsaÝonî“ó}Ýì�Lžô[½5õïq©@‘…fd�Í€oˆrÎ_½=…>Ùü¦¬î?ÚŸ>ñr³çwsẛ½8T ››=Ù£�-€Œ¢ùÓUjSêþO·sy€ ˆK¿¹Í›ÊÙMEz®Ù« dÝÎÂÜìmökÂ+Ê‘?]:¾»¾? âQ—Í^ûVyÒ·ñžoöü.Ja³ÀIQŽüU5ôºW×îgÞðv5€ƒâÒoNoöúþ™t[ûÁ¡¢”‹Ï�E²ˆÌ07{ þ»¢ù“†zýíyí%)ÿÁuÞ¯°I÷›ëpé˜Èoöº¶i)½å“¯6{1©@f³ÀKQ¯öÕ·J®¨û?Ýþ ä*.Í…õf¯è‹½rlåÎCE)W�ŽE²ˆLM&ËŠý\€øŠzäO’ÞTß�÷‡ ‰KsáSÚµ’ľÝÒ~}U¬*�Ùì’¨GþLŽÖ ò{VúV©‡˜‹KsáÚ›½¸¥ˆHµy ·Ä¯@:Q�üICy»Ëž•u—þÂûÕ –¼ê7ç÷f¯wûÖræÎå¨�{ã´ÙÛb6Tf³ b»ùnýÂEqi.\{³— ds³§#{¥~-r»ñn€ÓâÔ\ø¬­¤ßÖíÒ|ÛþØT ‹È:3²Çf@$ÄzóGÞìˆSsẛ½8T ››=Ùóí>2¸)Ö·}™ó‹lxÝonÁßžôm³7¤C é·a›4®þ"6È"²ÒÜì­ðkà¥XGþ˜ó‹úÄ©¹pÝÍ^*�Ù숻8lþtÛ…¼†þP÷ûOÅûÞ®�§~sç“'ýVoMý{\*�Ed¡¹Ù«ôk$q¸í«Û/LhèTí”ä©g{»"øJçz¶}aä7{-š7•D³ÿò|³çwQ ›=H/‘¿Òt›?·oqÁqé7§7{g7é¹fû¡¢”±?ˆE²9ÆQoölêøJ"’®èChø9ºß\Ç_ùÍ^ûVyÒ·ñ_möbR�ÌfrÃæÏDÃçðŠKsa½ÙëøgÒmí±ª@‘æf¯Ê¯@”Äeó§«úú§{Àž×^’ò\çÝŠ`[\š wmÓRоØ+ÇVîŒU2›=pW\6Ddy¦•õì-_ìÚïÍŠ�µ¸4®½Ù‹S²ˆLM&ËŠý\ÄI\6’Í­_áöo xÕoÎïÍÞ)íZIbßni¿¾*6Èfë¥6{à6u|øìc²áºßy¹®Ø‹Ksẛ½8T ››=} ·Ä¯¾.N›?Ýó+«°ÞšáCiü좸4îݾµœ¹óC9jãÞØT ‹Ès³Wê×éÅió7\Dægû`nÿ:'.Í…ënöâP�ÌfÂ'N›?ÉöÖo 6€ÖyÝoNG¸üÚì�Õ¡•ôÛº]šoÛïYQJ6{ëÌÍžo¡E@nØüeÀ0½85öc³çwQ ›=ˆž¸mþ²Îû«� àWâÔ\xH‡ÒoÃ6i\ýEl*�Ed¥¹Ù[á×îŠÛæ/«~õ‰ëP÷›;fôˆX4>ÿ˜<éõÖvO7{~¥°Ù€ø‰ÛæOìÜú­‡&Ðqj.¬7{ýVoMý»—E)‹.ôs³·ÐÜìUúµ€¿â¸ùÓ#£òì~ó?n»Qv<°ÌÙù(.Í…[4o*g7é¹f{ê¿ãR�ÌfPW7 Þú�ýÓëåŠ?Ü�ñ Tí”ä©g»±6×Å¥¹píÍ^œ*�õÛØÜìmök€`‹ãæOÒÝúM$Š$™,ËêIÞ¹k²l�±ÈÉu9Ϋ~s~oöÚ·Ê“þ‡&ÝÖ~�*J9æâócQ�Ìf`U\7º!íõýÁ«?»F&¼¸Ažþ9iÚ´IVO¶þ–«åßO¬vz�¶Ä¥¹pÝÍž—È~¥ˆÈ s³Wåç"á×ÍŸ¤‹þ�¾@–lÝ-3gΔ^½ ³~B?"�qi.ܵMK)úb¯[¹3VÈ"2UDJØìœçÍŸnmÑ¿¾?øðÙÇäÊ™Ëî={eð�sdjñdKO¬s+Æ\âÊ|à¸4®»Ù‹K²Þì%“eÅ~.mqÞüIºèŸnëòóo7þò¿­Ü®kËý·ËOÿÝÖf0.Í…Oi×JûvKûõUž¥`³WmÞÂ-ñk€ø‰ûæOÿÒ�ÐÐ>J/¹­ÙW¾ † —ŸÝ2ÉÑì.{6õO·7:uùÝ\Ø�ÍžßE)löA÷ÍŸ¤‹þ}²ùMyzÜURòéa_ûÿ¿ýÝï䬢„ksŒßÍ…{·o-gîüPŽÚ¸76È:èknöJýZu±ù)‘M ýá¿¿G^šõÈ76€šÕ‚/ùÝ\Ø�ÍžßE)löaÀæï�‹?Älå²aíúz7€ÚUW_#c¯¸ÔÕfâw¿¹³:´’~[·Kómû=-JY¸è)?7{ëÌÍžo¡E¬bó÷•´'Bo·=÷ê×rëjݺµLºùfOn û½ÙÒ¡…?!Ï IDATôÚú¾ç›=?‹RØì¢€Íß×eÜêfÎwtk—j“‰.1b˜ßõ¸œ¥«Rç>9ß×~sz³×oÃ6i\ý…gȺ(eáÂE~nöVš›½~-§±ùû:�ÀW‘î:ðíŸýYžï×Y^Øú‘åèÜ¥‹´ióéqòÉ©ÿ>õä©®{ý�Ô?÷íÛ—ÊÓóqÓrþ1yÒë­ížoöü¬@f³ˆ6uü{çG×ÕºÕŸÒ=FW¯î?ZöçýWÚÛÀa¢7{ýVoM­¸Ã„ 䨛¦¹¾z¿+�Ed¡¹Ù«ôkx�Í_=–þ}ÅǃÏÐ4Óãt#è/ví——ût�§ÿUíÇRmiѼ©œÝT¤çšíò_-K»Ë†z¶Ùó³™Ílþôìs‹Õ÷Ï='ããô(¸ ×ý.õïvo»­îf¯ãOFJ§«nqýuý.J‘Ùæfo³_ hØü5 ‘(*¾`Øð)ÙNôXwý%²û™Cy{~GÛ·Ê“þ‡&ÝÖ~ G›'Ç\|~\6{3ôÔ6{4ŒÍ_‰D‘:ù”Säž?§MüšòËGÈž•‡nkîißXæ´:Z¶}äîF°îf¯ÓÕË1£¯uõ5µ‡f?êk²¹ÙÓ‘½*?@˜°ùË@oõ#’É2Kß·åþÛeÓ´9_þ·.YÑ­£#·…»¶i)E_ì•c+wÊ·{~G ®#GÿÇ9?o&ØìM5#{lö°‰Í_‰DÑp™¯õPéC¶zö½s×dÙ:cÑ7þÿ¿�k*ÛZ6—êÿj$|Qÿô�ŽÆçÒaïÇÒ~ý¡ýŽW›=Ý[°ôáGå±9�ºú:LM&ËŠý\QÃæ/ ‰D‘žÕz…~¤ÕÛÀõÑE";ž~Zö¼üvªZ¸!Íûw‘¼ÂrÔàï¹>7›½jón‰_ Øüe)‘(ÒíAN­yô/'O–lª�ƒjûŽòÈ#‘E }›TÆf°ù³ ‘(Ò÷^ójÇÌ™3¥W¯Â /]þùöF™?¡Ÿ›½-æf¯Ô¯6–Õ·”nõfoΜÇdé’Å~-�ÍÄæÏ†º·€k»`Øpɶ7 “ÊË+eᢧüÜì­37{¾…@flþlª]Ò½üÉõ×JÓ¦ÎÏÿÕ›½9yLV½ü’ëÇÚ6{„›¿$Eú>oE¶Ï 7ƒCŸmùö°.Îx~ñßeõª—åõ×^óî¿n¥¹Ù[á×@îØü9 ¡<À�c³@±ùsHífÐ!µÐÜìU†üR€4Øü9,‘(Ò9pÃB°ÔÙæ¨46{Ä›?—$Eúviÿ-i¶ÙÛ€µŸ°ùsY"Q4QD¦ûðÒ3ÌÍ^•¯ ŠÍŸ‡²i“6{ #6>1ÛÄL´¹Ô=ö$“eÅ‘8À3lþ†¡ƒú«@DˆH~CSãlÒ­úô]àÊš/¥õÄ�?À†aè@Þp3¨7< 3@¶èìAY¡”bJ/Gà°È0Œ³twLD†üê€`‰ˆ”*¥è@Dø20 Cgñl|›ÛRãá( ¼üu˜}:nçæKSõ9!#€ð ð|•ÕW*"�8éA"cÈ Øü ¶ÌI»¥O×ÍÊÈQÉ1Ç#Çu=^š6m*'žp|êÛN:ñÉËkÞàS¼·u›lß¾#õﯮ-Oý³¢|­l}ï=Y²äy?.åB3H& Cà±c†ö]áæq2T "½zõ”sòåWWï‘¥ËVHeE¹ÌyôÙ´é]·_r¬RªÔíÙ!ð€Xp3»Où®¹îz<‡‹î‚‰7N’ݻ٠ú­Óƒ<úà2þZ†aTŠÈ©v×ÿÆú Ò½ÛI¼rôÇ»ï•~rm.O2U)U„c JÈø@h)¥ EäF»ë×Ùi]º›*O…uºo¢a¹ýtÖfO‚~¸ƒÀBM)U""-t©¨�ãÐe©:¨X ÉŽÜ¡Ï×ÈËåif›¥½•.€X!ð€ÐÓ}áÌ쿹‹d逖îUW]½‡7F-:+rÔ…£Sçç×Ó¦æòTÕæÔÞ1N¯|=þ9†aè,À N×Ì?Ý#ÿ}ý5±|“èàç”â©2£ä.§žr„Rj�SON3 #_D˜_…æW^–/£3Ï7‹ˆBµ‚Œf�?D–a¥"r…SÇ÷Ûßß!×]3^òòšGöœ½·u›L�z›<øÀ,'Ÿv¬RªÔÉ'€\†1\$‘þœL�í¬–(¥6sñàˆ<§€Ú�!Cåšë®—�¸ Ô§Ogõ=2ç1¹ëŽÛSýFÀ@`†¡³øJr™ï°"R¬ÛUð.�[ü 6 ÃÐ}årãx;wî"—\z™Œ}‘tïvR`Oéâ¥ËäÙgžq²|·.�Õ2€7A`ûô ˆN¿ ³uö!A@8�ÀbÇìá´Â‹¬�8hðéÕ«§ô9ãtOÊ„u¹î+¯–KeE¹Ìyô72ùê3›�‚‰Lï+Ç�—ž½N“ã�ï*Í›5“¾}ÎøÆcôÏÛíÛwÈ[ÿø§¼³ñmY½j•,Yò|./ËÍ8ŠÀbÍÌY`¡y»+FŽºHš7?ìzü Ò´iÓo¼Ìïï�íÛ·§þ}ë{ïåúáÒ º‘ýpúU ;?�±}ÓÍ·Èe—üØñ›3«V¿"Ï<óŒÝiè´K@Îü&³Ñ{IJÂü´Ò,G#@`†Q,"S²]�Îæ›2åV騡½§‡ðäüEòÓI7ZÉÄ&9!ðÔÃ0ŒÝtÝé¡ !TmCKè= hÌŸÕ•Ùdmë̾¿<öx½%»~˜|k±•LÀJ©‰¼a�? fIð˜k}¥”ð²l6é€ßSO?ØÁK€[D¤�›0°‚À`“ù¡Sõë9lܸñSû÷ï¿K)µ"Ë€¬d[Ú;ïo åG#.ÅIuáh™7÷‰L«6ƒܘAVü2'ë^�Ì/ßû6iÒ$58$//_Z¶lU÷�§&“eÅþ¬ ¬Ë&è§³ü***<™¤î¤Ò‡çÈØ+.ÍôŒ:øW@æ²Aàð˜Ù“ª S§‚ÿ;xðà‘ûöí•>O-âàÁ/dß¾} .¨Y³¯>Ä6mÚD?¼‘ÎÚ“#Žhœ ð5jÔÈêÁ¬K&Ë ysÓütKÕSÒçþõñÐ^O= ¸_ßÞ™¶E)UàÍŠfþŸ$Eº—Þ„œÿžÉd#žaiƒC† •Å‹Ÿ ý…\¼t™ rv¦‡1ðÆ)|³ §~xÖi†Q’é1÷?p$Nâ9ƒÉoG¦‡M03È�ø|’L–­0{5ùmï!�6CzæŸî‘ŽÚGæ:þü–I©^…�ñ‡´üþ* ÀùïŸH‘5 ° ÃÈxƒâ²K~¹ xÓÍ·dzÛH‹À௠”ûŽ À !iWŽº ¾Ù8ý´^™åûäx�?ÀGf¹oPî Ó·Ï”M6$â‹Àà¿ÙXå¾0ë7¼™Í‚ª¸nh�?ÀAèó'”û«­ï½Ék÷¯í;2>F)UéÉbJþŸQî ¥ý9¹dÉó²jõ+‘;‹Ï>óL¦‡¬ôf%+@0Pî PJéÀߺtççñÇ�ÔéÓe¾3JîÊô° dŒ# üÁ@¹/¤WœîOu�ìÉù‹"s ‹‹§fzÈ¥�?¤EàÊ} =¥ÔY˜îA#8,%¿“o-–ysŸÈô°‰Þ¬aFàŽ ”ûæ`P�•\�îÌôëÛ;ÔÁ¿qW]-¿ž–1Ûo†Ò"ðå¾�†RªJD 3�#üûãÝ÷†êTVWï‘sÎ9W|`V¦‡ÎVJ‘퇬ø"@å¾Ã°¨—Rj³ˆ´È”ùwÃO®•.]Ž•÷¶n ü‰ÔAÊüü¼Ôtâ tÐ�›3È�? XÒö¯òå¾Mgþ)¥ò3MúÝ´é]éÔ±ƒŒºpt*£.hô0Ã0RAÊ,ÜHÐVJ)N‰D‘ζ›oe5û÷ï—}ûöʾ}û¤ªªJ>ûlêÿ¹@g×TÖþRJUòÞà'Ã0tÙëôl–йs¹ç¾YrÎàA¾­X ï¸ó®lúø}ù-"R`–9–ø&‘(úÆ&]òvíúH>üðƒT€/À¶ˆˆn8_JP€‰¢è¿aÖ~>2Tn¾åO‚€:Ø÷ç{gÉ/~v³Õo«” JÿW„�? `N:©Û‹»víJè _„¬4ƒ�|€à˜D¢H÷ûëTó|«À:xñ¥—É �ý¥c‡ö9-qñÒeRö V²úê"àGø|f†îÙT\ûÃk èÒµýEù«Ì>¤:è—×зnÜø¶8yE— tö—ÿ½gÏ™7÷ '¯�þ¹8\)”AOˆ€Ç Ã(ÐÙozˆçþKºDx¢RjA@Ö  ² úÕ¦{ ê `€Û$LUJ`ˆ € Ã`ûâ”ÕgWµ™ Èa_“Hé'›ìž] üþû;dÇŽòùçü:¹úFÇ2ûà€K Ã(4ƒ}§zyŽuŸªnÝ»Ëq]�—ã�ï*Í›5““N:Ð7~üxéÛçŒÈ\š÷¶n“Y³îw#8– �™Ùg´8ÊC…t°C‡ŽrôÑm¼x¹©Éd}Hxþœøýö÷wÈu׌·Ü‡/¬žœ¿H~:éFÙ´é]§Ž€ P‹è+ñ¹T×W.Ç&“eü¼A(ø,0ËãV8ñaúW“§ÈÍ“nŠM°¯!G(¥¸²P ÀÌŸMºìt ש~-[¶”c�í*�5Êåi&“eLãEhø²äÄÐ=qwzÉtéÞí$N{zPÈ”â©N Ñ •RUY<-3اËM'å:wî"Ý ¿û�ÿ_ýÑvyñ…¥¾¬©>6ƒ€ý:þ€ Ì’¹å¹œ§ o’©ÅSbŸÝ—-�8ò‡Ãr}šJ)ï#r Ãc–ñ:Ö[´!ß=k°´)8EŒ¼ÎòþÇÈ뇹÷3¬�úLNüü_røžÍRµýMYòÜß\{­ÚÚ¶m+�;›éa�“É2&Š#tüi†¡ËFmG t9ï´Ûèÿn—@=¸€ì?„�™Ý·À­á:Sïô�?–-Ns5¸g×É÷HÛOÞ‘o<ïZæ î xâ‰'I“&MkÿïÔÏ�d²ŒŸ!%@=ÌÙ›ífÔŒu‘Ü?ë>2üRúð{Å¥¹<½ÿJnL×Îq¹ƒ¥ìðv¡}cè``›¿(O>œs{€o8z(HªmA?„�? Ž\J{uÖÌSO?M?—Œ»êjyð�YvŸœÒ_„†Ó?ý³é´óo”%GF÷gSÑçÛeÿ› œ.fb8B�ÀP‹aÅv§bÎüÓ=òß×_ÃétÙú oJ�îÝì¾ÈJ¥Ô€°+âÇÉ€ŸîÏ—Úå¡Îê³Kgæ½»@ž™ÿ°SOI¡Dà0Ù úéLš+WJÇí9•Ê!ûo‹Rª ¬Ç�h2Û è€ß©¹`2û¬êsp§¼ý·ÿ‘M›ÞÍõ©ªÍ‰á ù@hørúé^~sÿú8§Ð'¼û^¹á'×Úyq‚ Ã0t úô\Ö3äÜʶWÉvã.lƒ?xÖ‰ž€ •RÃÝ\'àˆ=Ã0ƈÈCVÏ{ƒañÒe2tÈÙvÖBÙ/|•ë!íG—ß$KÛ|Ÿ iÑ�Oß”y3oÈõiz*¥*½^;`�?ÄšÝAôó –U«_‘~}{ÛY?à »7jðsÆ9û*dîÝ?Íå¹ø‚@#ð€Ø²›mC¦_0åü¡”ZƒS„€0 C¿ß†ÙY %½îȱx‹Ùû¯*à‡‰"ð€Ø²óá{ÂÄ›¤dú�¼iêÉù‹dämÅSZð¡ÝYf`½ÐüÊ7Ÿ¼niõfóKÌÁUQ/�4 Co';ß;bâ,YÖ¨³ó‹BŠžü¯¿ÝœË�Î þ@Ðø«G­_P5jÿ¢ªMo jÿRªd³†aèÆìó­,vÈ�¡²xñs\ရ|k±üzÚT«‹œ­”·så³du¸Ý ¶,èl*¤/ sP%—~~:ËoÍÉ×»³0|Ã9-—¹þÆî‰¨”ZÁYEPÄ&ðgþ�Pë+§é6­3ïbé`á‚„þ±“uóÆú Ò½ÛI\µ8çœseÉ’ç­.”Fý˜Ÿ«&š_¶R8`¥ˆ‡%À’KÐoÔõ�ÅMzº³04¨ÏÁ�²øÎÑvOÁ?Fä†a˜w›&ÚMŸöIÍ]¬R6î²ÓTŸ¾~ábsÒïB¥Ô𘟺o0?c•ŠHÿ€-­FµˆŒ jŸÆ\‚~çLz\VÖÚ�…!£vê3ùôÉÿ¶[úKð�êÀ_€î6¹¥Úüê”v€ 1 c…Õ FUUµäå5çZ†È¸«®–˜euÁôú3†¡#ÝSœx®‘£.’æÍ›K»ví¤ÍwÚ~ùÿ+Êצþ¹|Ùßsé«V›®²¤kh'»¸sç.rÌï�×ãgNœ¼úwòâ Kí¬„žð]¨1ôec¶™ÒÎ ÃÐý›+¬|'Ù~ádsÊïT¥T¬/¶a:ùà «ß§ƒ{£|± 4À‘ ¹¾~Ï<óŒ�~�b&Q ð»šÊιÔA¿#ôG¦öÌw7>,ÏÌØê¢¶(¥ ¢~nl�ü†1ÀÌz SÙ®Wô/³‰J©Òx.@îìd1½¼j�ôísg?„ºt9Öj&ÙJ¥TÝɳ±`5H¥‡ÝÜ|Ë-rÎàAžœž÷¶n“»îš.3Jî²òmú3S�€vZ hß�ô72ýÊf惃à«Ã‚xúõ„5Ã0ª ÃÐQÉåý¤³ÒçÉ<_ºN€ ±ÔÑÙ7ýÂë’K/³ºö ö±s�΂5?{eô›÷·…¢Hô„k¯‚~ZÇí¥dú�©×ÞòÞÖT†aôg¦ÝfPÓ3fµšå ßˆ‰³úØG½o²³¸+Ì)ò€/“ñg–\”z5mwÈÀ³¤w�vÒ³S#9¾õ~é–ÿ¡ã¯±¡êhùçÎÆR±å€¬yc»,Yþ‚ã¯Ñ}Wk8�D¾Iß0µÒ6æÊqãå�ûïãL†Ô“óÉȳºøØ4å7 £DD&dzœ€?õôÓ�œj=ùÖâlË�=Ëþ³Sâ;êÊ_ÊâVÝ[1èÀ&™_2ÞêSQò ßøøs²al}F;WÎï}”\püNiÞè·^Ʋ=¾%˶´–gË÷ȃYèæK‘V P‹™Ù”µ™ºGþûúk8…!e³Ï_,Ù¹y~Éß=Íì³£ºz�\5þj™7÷‰l¾»§›½ÿìôýîYƒåõ>?wkIpØàž•'¶Tr®�¥MüàKàÏL{^átvŸ¾ uÓ¥gÊ%§|¨ _¶t0pÑ?[Ëœ¥[ÜÈ\gf2Ä�¿xÑ¡ü|Ës#?à#› Ÿ.¥�û×ǽ[”²ÍðìÖ­‡äç绲†�ß–?üÀÒ÷èße�:»²8¯�úLÞ¼ãûVŸw�Rª�˯yÚãOü ÃÐwVv;ôûå £eóœáòù‚òöôŽrÝiÛBôÓôº/í¾UþoÂa©ãÙ5÷{2sò¥N=½>ß›Ì^€ü°@,81]6jÌ2Ô´A¿ßþþŽÐý´�¸ Õÿ/“ Þ�¸²«A¿!çþ� _Èè‰Ëº4Û¢SÍ᥀§< ü9ðÓÁ0Ó_SÏ~_Ú7ñ|@“'tª[¾£ IDAT P2kŽuÞ—¥²s¤owV˜@wnq¡K}mp­ Ôoæ¤Ù´½çtÐïç·L í1ê! Ùÿœ¶k×G–Ÿ1¯+}ý¨ºÅÉvVÍ�xÎõÀŸy7)瀟ÎìÓp:¦ƒaq4ü¸­©¬F}Ȭ™nÙM €öîÝËyŒŸhfR’î'L¼)ÔA¿:ø§{¦³oß>ËÙy™ìÚµËò÷,92xS�ÙêÃZËy#.·z¦Èøƒç\ üéqÕVFÂ×Gg·½Vzá—™}a-áuCM& >?z€Itº±2 cbÄN@CVZ93oÿóœÈ{um¹�ÅGò渹çOÛðð¦›nônA.ÓIt 3�­[ßstûöY»Q`#p„ùöQ]­.ÆÑ9@6\ ü™Ydóí~¿déì>�ÝÖ-ÿCg1úü<>öÓÔùÊ18Ý0ŒÍ”ÿ€°Ôyð�Y¼'B¬¢|­ÕÅW+¥¢šñ—¶ÌðW“§¤2å¢düø«ÒÍþýû¥ªÊ¹Ë­³­°8B€|Ò¤“åÅÐç^s4ð§ßÀf–Ÿ­(vMÀO²Èî³FŸ/€�Ìòß1>€X}�Ò‡çpaBHOôµ¸µüþ‘´=Î;ï¼Èp÷n'É�!CÓ>æã�÷x¶ðšc�?Ã0t¯ˆåv¾·¦¤—€_îj‡ <Ëîó=dF”7< Æ”R+¬ý3O?Å[&„™ó˜�E—Fñ\d“etÒ‰'x³�uèØÑ“´“9h'c ¬p$ðg†Þ!‹—.ãý27üäZ« Þb'0yyÍãzèŽøÖ·¾eùi¾µßÙá"PWÎ�?Ê”2^��¦³Ò.ížyÌ:ì;»Ã¡! 6Ëõí'‚ ŠÒN6­Ï·ßÎ!D~wû�vkù}Ù4W­~%ª‡ï‰Æ�[™Ï? ã¡Û�? 2 £Ê YòÛŸ^’ÊF£¬×;ºüWgWÚ�göý+ˆÅ‰± ”Ò7¯g[9Ö%Kž·L‚Çtë?»Ùê‹ê¡‘ ü™Ö¥ûC›�í½­Û2öylÖÌ¿LǃŸîöíµ‘;26¹düUf_Ÿ—îý±ü4ñ/Þ>ÐÙ•º—¢M•dþ€ˆ™hõpt0‰’ß`Ó=.þñh;kŒÃ€»´}¼m”FÞ_{"í?¼‘äç;÷1ÇjñƒÍ¯9öÚðÞÁ½;,¿fœÛ À¶†aTÚÉôÛ|—Õ×ZÉå�×,þ ÃÐS®Nµú}:è×¾‰õ)Gpž.±^{û v‚�ÌA.‘ ”*µZò« èß?•Y†`wÕÕ©’l‹t‰ïð8\J3Ø}cºÇüzÚTyrþ"ïåý÷ó矟öÉuO¾œ�øk§l8o÷뎮Þt`“�׉à Œ¥ÀŸaúâVA——ô –šàŸ ý ð\TJ)]â¹ÅÊòtFY~~™¢ƒ~™z¹5 0>g)õ~/ÉÔëo䇅:ø§ƒ~={ö̘ùyâ‰'9þÚ:ã¯I“&–¾gq|pßg[Êì¼F)—^³šñgùM:ïŽËRå¥ü³Ùóo:Ã>@ÄèàOµÕCêÔ±“Pàœsεôhz‰¥TÆ÷»þ…q˜�.ïÕAùLA¿ãŽë*Mš4ue GÝÆò÷œóÑrWÖwèl¿gæ?lõ¹g›Y·€§ ¥TV¯g†¾34ÁÊâ~yÃh™zöû\Ñ€{t}óËG¬.r¥Rj@ÜΈ.s�Ùf;ìšý¨Œ¹üÞÓAžÝ»Ù}ѱf©w,eû~×í�***$/ϿɷÙÒý u©r&:èg'8gfg(®Zµê¥s<ØØÊ“wÒßäõž!ÒrÞÕvz‰vŽã�ø/«ÀŸ™Ýe©€]ÿ‚x{º³ýàžÑ)ó>gõù2‘DI.Á¿‘£.’¹}œ÷ƒGþx÷½¹L¡ek2{x÷Ïô¸+Ç�—î¿Ï«eY¢Ë’u†b–<¹ö†aèYùžïž5X^ïós÷G þàY;C=f›m%Ïe[êk¹§Û=7�ÉÕ ‘[Gغ³�‘_æð¥T¾ÕžÚ¼¹Oèû²xé2N¥‹tÿ¶.]ŽÍ%èד ßWÌ*ž´?4]J­ßߣ.˜Á6:ø«×”eÐO÷5láÕµ7³I-MpÕ~uP Á5äÓ7íýª úÁOÙþ,•øŽv®œÝ�FÇa¢û0N7ÒêŠõ �X5Cñ ”Ò/ íìÐ!g*8%º”3›þmõ9üðFrÆ}äÌ3¿[‘HU&Eùq?Ÿ5Ì�-2 ý3À­¯�¸é€^¿Ïu`]~õë[þŽÐ} }è¯fyZ´*�Sý²;«ANŠ>ß.ófÞ`ç)úÁWæ$_KFÅU ¡‹z7²³hËï€0PJé}Î;K­ Žè@r§K9u '›þmõiÙ²¥ôîÝG5úr¿{ªˆì&ø3ÛUßÔï™í ›_üìæ/ƒ€zÀJéÃsêá9zb³~ ý¥ë¿º�£noµÀÑEeÉ 4Zþ2÷¾ÉÿFýžž~¹�EÍðëýÔÈØãÏ0 �¢|…•3öùf>„Õ÷f”%Ë_°²z†|€H3ûþUê!¾v�óW“§È´ÛZe±w[½ºuë!ùùc{:Óm@2YÆÄM“ù¾_aImÓ½/O<ñDió�¶rüñ]¥y³fßxª·þñOÙ»w¯T”¯µ;�¹®@ n1 CÿåŸbõûF]=MçõsgQÈš.ïµ™é·Ð¼�ø*›À_¥•öW^sgahPï×ï&è‡HHå±3¸¡Ù‘$…Y»fŸÇý4ÈN´úèeº„µ¦7šîcGºÜÄ'¥ÎC�îÝR�Ñ\w\×T/¿&Mšæz6 6@—Ðêá7f°­&hkŽE:ب#Â�k^[)51ÈÁ¾ºÌàŸå¨¶þyñæß—söU¸¾FêçWý‡Á²ä¹¿Ù9ý8iK}ÍL®åVýÒ½?–Þmvp¥CjÍmåÌk³ºø�^�ÅóFù §J ‡ *×\w½ühÄ‘½Î:³ï®»¦;ÕË-EüŽ>º�cÏW�j³¸Ò͉ó³d¡ùU`~¥ë“©Ku«Ì~šúkE˜‚zV†¡€ÙùÞÎ�»È‘?ú£l7ŽðmýQ¦³ülüÄä11îçÁCà_CàÀ:§€5®7^Æ�/}ûœÚ«òÞÖm2kÖý9÷ì«�¿ºÂ†a˜N[?3†�¾V–wÉÅpH½üjŒ`z/‚*SàOÿ0Údeí3'_*×�¶� Rþì3'¡êýÝ8�:#ð‚á#䂜';´ܕҥ»K—­�ÇûKÎe» Ñ=üºwïîD9o.†a¬ÈåçÅ�.¿I–¶ù>æ&öÖÐ? ¢š�ŠhÈfªoúÔAà/Üþ¼¶½Ü0íQ«ÇÐS)Ŧ ³œ¯Ä‹I¨: 8hðéÕ«§ô9ãt×§ëž„¯®-—ŠòµŽ–즣3û:u*�F�yòzY"ˆœ†1\Dæçò<­q à§MUJ{¼tÀ²l–î@\yñ0¹ïBÛ}Žá³IOµ–̳´³©/êafꇂr~t qC–/û{j˜@4kÖ\Ž?þiܸq Ö“@ä,×ì?mȹ?£û…²ú°Ö\�:ôdä¶-’�ß“ëSéA3…dù!,² ü•Xݤìšû=iÞèÞ!tøpË»L-È’ÔÍß§pÎê׸qãôèqÊ !öÕ‡ r’kï¿ÚF]ùKYÜj`ì/ˆÎî[ûôt§nhÐæ ¡sX ¶Ü rÎk­x'„Ðß·ÚêCS€,é ]¦+&̪‰�föHœU›%s©sòé§Ÿžøê«kô¹Âs¢ƒ5‰D‘J$ŠÆ`=¥Ôæ3Ïüî‚SO-Lõ³ÌÅÜ#ÕœúÒÃ+âdÐ�MÒrÞÕ©c×%½ýÆš?£ú!t2füÉ¡»UVî8 x–üß„lbŠ’«ÿš'þe¡Õµ ÅÀf_À1n  è,Õý³ÙGš´‡B|¼c“ɲҬ—HéJªåµW¹oß^Y¿~½|þùÇވ˥ºËpyý0w{�zI—ñöØ•L;�TkrøÀd²Œ B)ÛÀ_±Õr„Òß\&—vßÊ»"$t¶ßÐ,õ˜­”âN&€KÌÒàáfyð©!<Ï[Ì äÛœËDT%EúïùŠtÇÝÖÐ�@£`°”Þ.4gøäƒ{¤Í¿_”'¾ËñçÖ™–5¿Ú¦&“e ó@èdøÓ?ˆv[=8zý…Ç÷f”%Ë_°º^¦ùø V@p€ùÕÉÇëPm-R_nï "J‰"K=õ8 [¶l–?üÀÕ³0|ôµrøQÝe}ãce»q„¯g\—í¶ëM)/[àêà¡&MšÈ‰'vË4Lhe2YF�{„JV�?±™õ7aÜH¹ó;yGÜ’ÇÈ/þ0Çê"Éö8Ã0 ED kþ©˜_éÔ.iKý{Ðz[%E…æÚr‚à€1f¾+r9: ð­·Þ”ýû÷{z"õäàæGÈaG¶�Ošt’Ï;ÂÖa�µ—p¯|kÿ"ŸVÉvo•gæ?ìÊš’&»/�ÔTßd²Œ–W…¬rhã°ÙêÝÄ™“/•ëNÛÆ»! lì #o~ÄÎâèíßD˜dSÖkÇ®]ÉÆ�])Ž¢:¦¾rÔ“ Þ«�?[w%æÝq™ ?Ž~A³æƒ¶ræ5�ÙY•žhÄæ��àìd²Ì‹Ššš е²?½&³RD6›_ú:é€I¬ ‰"ËUtvTUUÉÖ­ïÉÇïqû¥BC—ïê@ŸÅ̾l¸GàY üÉ¡àŸn,<Ýê�ü –mûò¥à’vÖD‰/‹`*�7 ý­ª³ N¹y¨ùýžÔýu Ðë’`?éÞ¶mÛÊw¾ÓV5jäöJ¼ Ú¶XüÉ¡àŸŽh_aõûþC™~+•R42@àE8XX+¨W²Àž]z€L©ùªÒÊD¢¨2h¹uFàûïo—]»v`5ÎЃ9Ú¶mçFF_¶Ö%“e…~½8�Ž­ÀŸ þ­°“NÏ?åÐÓo‹R*Sh PÂ<ù”S¤ÇɧÈ)'÷�^= ¥iÓ&XU é``‰ù¸’áD¢ÈV¥œOV¾ôÒ‹z½cÌiáA&omÝú¨6­[·>¢eËVXÎ×T›C?6hM€ýÀŸäü9ì\y|ì§œ}�MzªµÌx`ž�%è€Psk¨‚U}û�)=N>YNÕ�½^$9lªß�À�šu j@¦f¯ÿº_n_M/H½¦J©z×–HÙŠE8IgNê>Šzºò¾}û¬–Ro1�±æ8#SÚŽàÉ)ð'‡~èþ Ãì|ïk¥J·üy[¸L÷óø«×dÓ¦wí¼A?D†Û@{�¡+Í~�žB0Ê‚“ɲ’�¬µ^‰D‘^ÿ·_GôtŸÄ;vx55¹&›µT)Eö r–sàOÿlO'ºòâarß…Õ\I—Lùûwä73·ûäôô@$Ù ¶nÝZ {ö’î=zHá©'Ëñ]� ý©9PµSö¾¾Föüã ùtûÙ·q³|¾ç?òŸŠ÷m?ç·{~Goþmir\�Ù®­4?¡‡4=¹·4ÊoíèÚ-ÒÙ€Ånw¤—�ÁÍ@JN‰¢³T32e½ad^‡M¹.]ûôWðY–8ø“CÁ¿|³ßö>€¹ÙPu´ ›úªÝ²Þ=ꥀà2{oä§YàfRÅ@ÌÔšˆ; qw—=+»^yYön|7p�=»j‚í~0\Z}ßÍ—ª6ß–?û$E¶[^ù`F2Y61$kµÅ àWZý;­ûómÜøvªGŸ]#G]$§�~†tíÚUŽi×Vúö9£ÁgZµúù×öòöÛoËÚW_‘ysŸÈå°u9ûp>»#G5 Ãȹ֞ 5ü*¥†û°|ÔaFíMi¡ÇM¨×™w½kÍ,aÙÀ^uå²geN{ýPÓÁÀv— •ŽWNp+3p¶9Õ6-Êzƒ-Û€¬ø­_¿Þr)ï•ãÆËøñãÓ÷ìÒAÁY³fɃ̲ú ©6@4Ä•ÀŸ8”ý§ýò†Ñ2õlûý%¢îÑõdÌ/Éõ(ùAá³D¾æ+,%ú—饔g�’L…u{aØ?5H÷×ÛýÒÙýêšTo½8ö¬Ò�À.?»RŽ}­ÓO½Î|o}-Xff”åüùÖC=£XÖ›�D¢¨Á� Þ°”á7óO÷È_�‡GpHéÃsdì—Zù–uæçzúâk\ üÕ0 Ñ;"Cž%SG#½Ûìplma¥³ûn›¿Gæ-|Ή#¸Q)êiNaaþ]¢I_V,4›Í2†äb@�à^d{Õår˜�ôŽº¨�ÿ?ÿëd6à—eÀ‰DQ©ˆ\’K0;™,˘¹u‰D‘¾vËk¦žÌ«Ëz³¡ËwïŸuŸäå5÷ýLUWï‘«Æ_m¥,˜Ïøø×5œ(ÿ­1rعrëˆæÒ-ÿC§–xÛöåËmÏ(yð/ �Zêl¥Tì!¸É ôG¡ÄÄÝo¢X)Uº•7ÕÎÖ ýÍÐO6¿)»V­”ªòr©~õ-ùì�ê¬ -Îë!Ýþw†#AÀ½{÷ÉÍ?½E^íµ Ÿ×Ø•õfR;Kó­·6È®]»2~Ï„‰7IÉô;ý^zƒ&Þ8If”Ü•ÍCW*¥ø³J�g�¿†a8z·¤sç.ò‡Ÿ$"ÙpÁÆrï3[dÉòœ|Z~.1ûò•F4£/W:b=‘~�DZ~�Œ={ð]çÉ—H§«nÉyÿ|{£üôæŸÊÎ�;ƒxQG$“e´áiÀ‘G¹ÿþýG¤{ŒŽ+¬X¹R:vhïçR³¢3{öì™Mÿ-J©‚`¬~ò<ðWéàºtIð5çu’A�vJóFŸ8ýô®r)ÐWƒ€Ÿ ÌIº bšÕg×J]òL€Ðɯ“±çåð1Wìyí%Ù½æE©*_™‰¸¨ß·{~Gz–ÎÉ9 ðÙçËo¦M ÊY¦¬7Ã0*3ý¬ z–_C&ßZ,¿ž65ÓÃÖ)¥ }[$Á·À_ 3p²ÂÍþº4øüÞGÉ€‚�¥}ÿ3Ÿ÷ø–,ÛÒZž-ßãdén}ªÍ wdfö-ðr³[{Dü‰'t•îÝNrì¹kFÊWV”Ë[o½•ëHy«šïQJð_ä&âØC]z(È©³K¤ù)gætn¦O“¥Kûu~õç¼ÊzÓ˦ÚЯÁNùãÝ÷Ê ?É8à†$ ˜ó=ðW›a NßqË•“®Ç4•®m“vÍ>wdxˆ¾±ãã#䟊T¼ó±,ùõlÒp�4Û,«ä�ƒÜÊR­¡ÓË/¹ô29ï¼ó\o×â¥Ë¤ì…dΣ�¸ù>®6ß³ôÀ=‘ ìí.{Vv½ò²TW¾ÁD\XâDP—ÿŽ3Öë?6™,cÏœ�aÃEd~ºGýö÷wÈÏo™„åæäw·ß)¿øÙÍ™žb Añ¨À_ Ã0òÍ^i±¢P |Òæ{±Ä�)^¿š<%pA¾lé,ÁY³fɃÌrãé¹#€=…u{¡žˆ+öà'€“nþ™¬zù%·»0™,îö‹D…a›ÓÝÜÐUsÿúxdŽwÔ…£3UnÑï/Æø«Í ¼Lô:0$f˜“SÉìs˜ù¾[ád9ï•ãÆËM7Ýèh™nPè@à�wÞét™0@¾.R�½U;e÷KKd÷«k¤º|ƒü§âý¬ q•kÀÊ’ò‹ŸÿÜ�³§+c “É2<²d†þù¸<Ý£ßX¿!RŸËÖoxSztï–éa•R+¼Y‚$ð�¿ºÌ¿ÄÅ1�œºÒ ôñ—Õ%Nütúøu׌—¼¼æA<\Wè)SSЧf;f>qQ;¨‰‰¸o¨$°‡Pi;n�œpët[KÞ¾c‡\wíõNNþ¥¬×Ã0tÅÖ„†¾S'd[Æ]uu¦Š¬J©‰Á=¸%t�¿ºÌA úÍ;& å uè^}%J©Ê@­*¢²iþš =jjñ”XûòÞÖm2iÒÍNeÞ¨”*qe¡x#r�½]«VJUy¹T¿ú–|öNuVäN—ÿž>¶|«ÀzFØÞ½ûäÚë®—MïæTš¾2™,À¥´Ç0Œé~Ɔ} GC²ô±R)Åû*†Bø«� n=›¼šƒ-æ”ØR‚|ÞË&<=˜ãžûfÉ9ƒEï9äÉù‹däsnÛ©?Q àï €òëö°M«öDÜ}om%°‡Øé0á9ö¦i¶Ûfß¿Ô^7™,c¯›ƒ¸þJž#c¯¸4ÝCª•RùÞ­Aqx¯„9à¢ÄüúÃ0 �>ºÍïDdè¾}{eß¾}®¯§qãÆÒ¤IiÒ¤©4kÖ\òóS×Ö%“e…®¿8Ò2 £2—�¹n [\<%’}ûœö£è¿›©þ?8ÿ|»‚uVo…a •R47x)Ò�½=/¿-_ìÚ€UÁ±uÆ"ùè…5Ò{Áó–×tç¿·ü»1™,£º¶íÝ»7Ó·PŽ©HþÒÑ™B‰DÑ‘X 9|”k–ŸøÝ?ë>ÊymÐAÒwß}'×à0Ã0ôß¡B&YRP'°×à4Ȱ`".�;Ý›²¬goé»üY˃?² þ‘â±ÞßÁq!V"Yê›I"QT€~€S“ɲbŸ×K™š½¦£KzŸzúi2ü¤'÷ëÛ;—'¤÷ 5q ì°£ÏÊÇmõý»ô²+êëùGY¯K ÃП³§¤{öˆ¶<Ëô�©J)b1×À_z`2YÆt^�eê÷�NT{AÅä[‹å×Ó¦Ú] ¥¿€Â:{¡úv j§ì~i q�€±üÓ?†=·öÿ" ÄE†aèÖ »Ó½ÂC³•1—_öCýRýý´J)*c(v�¿D¢(çAéÉÝo†±ÙÎÝý!C†Êܹ¥¬×z ð€þýí–ÿ2¥ ¢­vP¯�À¿Ø þ•—WÊ 7ܰÎÌò#øâ2Ã0JEäŠt¯²å½­Ò±CûЫþ Õ©c‡L›­”ãÍŠ4q üeLûõB2Y–1Î0ïøl¶óá·¿¿C~~Ë$®„Ç&Þ8If”ÜeçE·(¥ Â|ìcµ{¶²óƒä“ÍoÊ®U+¥ª¼\ª_}‹‰¸@„üWËÆ¶zþé5õ  „;Ìžà ~Ômœ***B�àQ]½Gzöì™)q‚i¾1ÇÀŸíþnZ™L–‘™ä»™~Ï/ù»œ3xPX;ô²LW¯Ï:¥ ’ X"7—À‚àˆ®ù’ß§»4?ñDi™$›¸[>|4ɵñÀÇæÉ™Ë^°óB�ͤ¸Ì0 ý™ "íÅqð/Ë Ÿ6P)E›±‹càÏv�7ÍN&ËH³õ€a•v>\D%í;ìrüAÏ?ðVä{{^{Iv¯yQªÊ×Éž—ß–/víÀª7ß>½�´8ýdizRwiuÖ÷䈖G§=ÿy÷ Y30:}Ë‚®í¸Ar­ӭ®r¥ùs0 Cî~(Ó+…-écñÒe2tÈÙÙî01 #«>ÿ#G]$÷Ϻ/ÐÙ:ËïªñW˼¹Odóp2ý�«À_"Q¤7­›°&úº,Û;;uô ¦‚ü²€ìD2°·ë•—¥ºò Ù³Òr%´Ì IDATÖÐ( άX’1Ó¯6²þ¼õížß‘Þ ž·úšëÌ!Eðˆaú÷\e6}ß5yŠÜ<é¦À'ßZ,¿ž65›‡êÞ…J)JÊ‘·À_P&ú¶`’“{²ß^zú›Íž4²€C ëö"1÷ã·6ØCä…=ë¯ù ®iÿ|ϲ·=[‹[ºþþ:9fôµVŸ�¬?X© 2d¨L/™.Ý»Y›àì¤õÞ”'Þ(K–d\fz/¾!n�?&úÆ€aúè0+GÊôÞp°p—«¶J©‰ñ>sb ’�½Ý¯®‘êò òŸŠ÷°*À?AÍúÓ=�”�–ýÎ’¼^gåü|åcG†2hsÐY>1E6[ù]©Ë€'Mš$}ûœáú¢uµÓ�wÞ™m9o �åW ”"Áß·ÀŸå€� ˜èë¢l&7Õ¥ïä,^ü\ˆ�:^ºt96›ÉUuµà— €�«Ôó{HYÎjOÄÝ÷Ï-ö€ ‚’õ§×Ñéš›-!­XÑ)¼s�Èú ó³ã ;7ËôgÈ‹/½L ìŸS«¨÷¶n“eËWÊ_}ÄJV_m:à7@)Ui{ˆ¼¸þ‚0Ñ—Á.²“í÷òª5žÜ¹�3žœ¿HFþÐrüž¬?A–_'c/R�½êWß’ÏÞ©Àª€p³šõW]þ‚TŒ¸!çc>úÒ„tûÍÝ®Ÿ»�–/”×ÇÜêúë¸ÅfÖ~ÀÌ\²ß¿ú½3œädãð˜�¥ üEæ/¦KÌØ–"BWŽOÐ/d~4â‚Ô6‹wÄ&ˆ�?~ɯ“±Þ”Óž×^’Ýk^d".à¡-÷Þa)ëO—Þ¶vª|´p�­Ezð«ñÁR[ÙN�¡op|øìcrô÷leIýÍß £ó‘ °ÎÄäŒ~5yŠL»­ØŸÅ"g㮺ÚêߥuJ©BÎ<`Yd{Õ•oÈž•žgíˆN·Œ’Î?ùU .dž_^o© �c°šõ×�oŸÞNZœ~²4=©»´:ë{®O·=òÿÉÆ_=àêk8­Ã„ 䨛¦Y}ÖÎ"²9ð‡ÿ¿½;�ª:ßþÝÊ&„$lÁ`B À $QSY¬uÅ¥‚D\°Ä¥*AÔV K­ *ÐJݰ€»B51$ bH‹BBˆ b’ÉÈâý?'ÜÁq˜$÷œ{ï̽羿çáQBfæ.a™7ß9/€cXüi�¼‹u|ªn,è›óýaÊmf=�­y½Uôïe¯r/]l€ë@EQØøÞlžÇ`Ÿ?gÜßo4ÊqÀ¥„{Ò{Þümu͉`OvlÃeº=:‰ânú#×cŠþø{]�¸f¼q†áœú3Bdÿ@§~ ø;0%ø3sI¯›Â¾†üåÉùtÿ½3Íx*¦ªª*ý¸¸¢(l9Z)ÏcØ$éK/¾`ÝA�%FŒ¸”V¯æûGö÷‰ùOëéžz¶«#»·Sùúl4âÁÚf[wO¢¶ý=§§Õì´÷™ÚpÙòÔ~o}Àõ˜ ×üF¨|ÃG´ Cïë:aê¯>¼%Nlú(ø˜CDØ�Lc(øÓJ;²Œ6ô±RŽùóç…µ�î¶nÛN™™sÌ( ÉVUUú†(EQVò–È`êÏYØ^™c®æ~Cñ´ªªÓ\~éÀ™¢&öì¸ ÓÒ/oð¤Ã9½å´6\Þ <³2‘^oþg´iô]º>WdêÏh i ,û­y—ko@§-õ%±àïiVÞhÍÑ€ f,ëE¹Ÿ‡ΤGçÎ1ú4R/wÔ¦O7ñX(1`b¯³Ó/vEÎûTþÅ:òlA#.€ è]&Ȧ·ö¯zçô€zž¥¤>NoÃ9þ¬Îæ}ÏFdêOïë³iº�k²¹ž›gêOt¯B#Ø×Mñƒ/…ô5Í?õJêz÷\®g,Ü\D}û¤,%¢ v??pÝÁŸHcªÛÃïÅE/PTT$¾,LÆÚ€ÓÒÒD–>úLTUu‰�OQˆèRô²oö`¯IZÿù4 ?‘C“/•ì9º—ì8ŠÈ„/žI*ÚpEöÚÓ;M¨‡Èëó�"×ÍÌ©?3°@úëÇþÖýÍÒ÷•?S›ŒËt?[MM--^úoºëÎÛ S`]ÁŸ¢(,/òšËÿ»Š®}%n˜Å–ükM?NôE横*Ý(¦è×-Â?{1úa‰/è!U°w¼òUä­¦Š�È›¿�oúÎGnǦ�¢/:�"{ö¤¶ž¡g„NŸè±J¨¦«ôNýÉÒ†+2ÇŠDòÒ†sG0VVOý‰cØák>2-\µÞb�ÏrriÙ²eôüsu_÷(ùS4ü‰ì—FZa›o¾�)¿28ý·TUUéÆÉEÙ-²ôáŸ=ý\Ñb ºø‡zR4âVo+@°¶&2qäĦN«„c9¥ž©<™Úp{<}7ÅŽâûÞpé3�RÙ“or=&Þóaå%†Œåz «§þnZ͵� N« ×Qùú\ªÞ±‹~£»ŒÅÉ:\�÷ä \g0;s.­Yý1åææø>¤H¡ÀrMzmbŠ;ôÃ^~áÁBÖ]»JhÒ-·ÒË/-â=†ñŠ¢�„á_ª6"Ï5ÅÓ9!žÖ­ß@ý/ºÐº#ƒ˜b-Cèç*Ò{å볩2?Ÿ¼¿¢c%^¸[bÊöŠiÐÜ·òîÐ!aü5®Ÿú³2ðcá‘wó—T³}+Ul,šÂ;;Žïû¨,ä1ûŒy9×¾xìsÛ]Õ·Þ0³ä‘g¸ƒ?¶ïà‘}û O¥±sáñíëÿâ~ ¶—"ïïÁø›n ¯7ê›ú3kúQvñãøßV±Ð�ÉÏ/ ôtö6¦nŸ?é¶e€Ðª7ø]&¹ð™çèSnÃm £—^|�ÒÒÏ÷í Áƒ…»eZö«ªj¥¢(‰"á›4Ã×sx(®a¡_¢—N‰ö¤iÄ­ÙQŒ`¦I»æuqOŠèÑ�Úøuƒ�Êñšî ƒ…Jlé O°ÂB =Å2ë8l¤iggt‰­XÁˆHpLÉ¿Súb¾BŒN£¯©7øcÓflß>Þ •}þÙ�Ä'ÿX±O€É&åD®!û}Ä–Ðó„ì÷ké?^Æä­IÚü¶7EöÈõdïøq°#øÂ.õ-FÀ~~öò�>/þ‘Œ…ZÓ/wøGX¶RßìÙKƒ ]®^¨ªjªsÏÞ•¤ ö*ó ©jÝN:Y.ÿR&pÞý¦D–’à~pnßëÏÌ"ž=Ûô’± ×È~uz ?XÐÞõá;¹' Éàø†öúc�âŸ}`h–þγÜÁ߸›ÆSé®Sÿž4ùVºyÂM¾_Âr_0äŒàOQöÆyï“"ô³'á_UU¥k‘R¥@4\X¼ôšð{þ7? Ï_žœO÷ß;Sôj­RUu.µí${ÜûmÚ qÁéD‚ÑVV‘}Ôܾ× L�•þpÆþgVïÙ¦‡¬m¸lIpÊßù—Óúcù‘²’ŸŸ“3 Ä‚¹ Ã.7¼ “OTÕ"Ø ±ØIC©ÇÃOq½(›ö{lîÜÓ?þ†°/g§^¿`ÁwŸŸ˜G÷Íš�ÛiS=œI�Î�Ã{pÒNO)в€ˆ¦Š<¶K—$zçÝwé¼^ÿgþ�¹ÔÖmÛ©÷y½Œœ¼”­Ô‘Њ‹`Àx§þô¶¾ ÅÔ m[²ÌJ&Ø~sßÿïsdžŠ"M­fOPÊ܆˦òÒ—¿|Fãt8˜U"áѬk üä3î×¾êªÑtèСÓ?_¸p¡o�?f4­Ä-Q¿þEauá\ßž¸yÒäº=åÀÞ®½îZþæë¼Ç8]UÕ2ÞZEQXHñ©èãÇ\{=½¸è,ÿ5€~W\~¹è²^Ÿ4UU lp:²J ˜Øã^*o'Ç+QEÞj4â‚ëÙ}êomz¿z'�رw¾m&W£h F•=?Ï´ýçBÅmɲ·áš¹Üš—Û—ºËâ¢ì×èìD¾¶BëÕe¯üâcÁ›àÀ7¹@ØéàOÛ­‚÷‰*+½?€í�Æšjy©ª*õžF–þ@!&~Ùhî5…¨—Š`À=ì<õ·óϳ~ʱi¬”çqïï¦;¯¢[f^R vØ7‘Ý‹‹ó7p?ÎŒ%¿¼{ü~ñ`׺ǟî·äkΛFýú±¿¡PCÉOÜAçÞÀ·ÅÒŽ�Å4qÂÄ3>þá‡PëÖ¾Ÿ"ø°!m›¼Dí}T´ößúø–ë³ÿ°ÒPž‘ðÇþ0™Íó`ìyæ,‚ûýI¿ŒRQ¶7Ü #ÏÁ–ÿçÕרÿEšw`’ykÅÛ4æjc{Þh0å§Ÿ°7È)]Ÿ#»·SùúlªÌÏG#.€A¡œúã-…ðcÆy¸›WE8ey¥öM½'F®1ï×�™KŒÙç„ñ×pO[;¦ƒï½F?ùŒª>Ùiʱ�}tyh,u¾e÷ñ.ñeÚµkGo¿ý‹•½þBH sRýöªN4q;ö—h¥þìÖ ¼¯±1m@n‚öÃÊ"ÂU¬Á[UUK–õûgÖû6€5�~üñ‡VX()©+洛WUÕh7ÜEQX“1åZ€©Óî¦9™³1Ⱦx¼Ut÷Œ™ôòK‹Ìxº§UU�fÆIBºF\{¡#2¹%:õ'²|2âjÝ=I¸qU[š?æfK§ÿXˆÔºWç3ö%ÔªÚ¥-Yæ6\½Ø½lß�ZtŠ¡¦§&³Ž×ÔÐÑ}Q¨á2ñS¯¤®wÏå>éÙ™siÍê�ÏøøW� Ü?ÁŸ‰´ g”öÔ© ¬Òöu\êÉ0·Ó¾>˜‘ TÆ~ß«ªºÄŒ'« þD&ž0íçL‚SCTUuE“”ö=ˬ…ßÜqÛdW…€,ì{öùEFz¹µ±Wº`¯jsUlXK•ù…Tµn'�,·ÿÒ:™užu-u¹óA®3 ÕÔŸ^lŠªºp]Ýg7‰jcxi¦Ñ6UE_tEöìIm=Cu—Eð„ªviK–¹ @/ÑI¿`ûúù<þç¿Ð _{ü?„àO�¶¯û-äsô–6ì¯ - \€)As)ŠÂ¦:—Ø|…”¡!_ð·’7ílgÜëÏu“Vf€¤áÌžý0%ÄÇ™õ”¶±þó/hÑ¢EfMöù°w–ƒ%þ.Wb@°çøF\{Î3pÓj®¢ ¶'YÑ„‡¹ÏÓ¬Ò„ý+—RÉ#Ï4ì°É¸ÔEK…J@ �Ø´ÛÙqq\ÁžN›ú#´á‚Ëõzö>йìwÜ� мøÂóA-È2_úhõÿ9ü’GÝ~½õPe‚’:þßÕ:™:æ6Š¢°É¾©FO›mû5dè%”ܽEDDœñëÅ;wPuuµYÚ{d®ð×üUò$àhòu¶I·ÜÊûEçÚ"-\iEúÿàC³iòä[² ï½÷Þ£Gçαâé—ªª:ÁŠ'1é‚½Šœ÷©ü‹uä-ØBUÙ†ÊYÀ¾e¤-bÏ© ¦ÎŽ;õÇNÕ¶":QUEÕ;v�±·˜HˆÄ–áŠìQfdêOt®hàØÐžÈÄ�Ñ×4ãjK6 m¸à&gµmN¬XÊÝÞK�„~̤ɷÒÍnúÅÇfgÎÝ8'ó!l$„6Ñ·ÄEA_cØw�¦¹eµž(Ñ-¾XvÙo/§kF_iÊq°¡¬·ßy�Þ^¹‚V¯*£š¨7ôõ\ã{ ŸyŽþ0å6‘Yî+{»¯"8<ؾ™C‡ §+.¿ŒÎëÅÿ «°Þ×^{�–½òo£M¼�Ñý—M¤{R4âVµ Á€˜Q8À&¤¾}émjû› ¸ÊÂ1õgd©*»V×ds?®¾VX+C.+§þØ´ä×Sÿ¦ûóÙRÞ®ÓfÑ–{îѽ_ÚpAv-ÓΡ~+ÅÚ¢ ýèÌ6ß:OFà§eka×ÊÜÜ×ý&Peš6Õçô¥»VójÓ€ ä>Mýx?öþü‘¹sCVàɶÌú÷²WE¶fk´üRÑÞ°~Êó¬ëÖo@{©ƒ-ù×2š8~ï  IU“ž~þÞ;¾>·¶¶6d¯É¾»�–~>uïžL={t7uJ�}§á«¯wP~þ&Ú¹ãk³—ë6†ýÃe”M—óJìUlÜ@ÞümtxÓw68*àÕíÑI†ÛE±¥­ ϲØPNý‰�þD‚2&«sð?ŒîYÈ&Ës?¡ª¯¾¢š¯J…Š D¦þؽ.žŸyF¹ G;\r�{ýïÏX¶Ëú?'ÚpA&¢ûù1O<9ŸÞ^ÕpYg°i¿üüºë.]“À…Z!�”a ¶„wA8þ=>fÄŠmÕŒº6û‰bÔãtÎ�Gë>žTVE­ ú˜êöÍhWçS{¼—´ˆ ZR¨äدhí1Zþ1Wôb¯6 èÊ%ÁZSs–ž¯¶l÷¯óŸ2mªO çÍÿÏ »BUUSëûE.Ä–ièß�÷Ä]SðÑ�'£Àß¿ÊÊJ*)ÙI?þˆ½Ì8°˜L°A�ìêÙy#W]üqkw”!Ø�LÌ8×TžÕB9õÇB² CŒʉ”™ˆNýù{•Ÿoµd2Mt’QĆk~cZK-ÚpÁiØ”_Ú’eÔ4º½Ð‘Ϙy/­_—×àç$véBË^9³,GO`ØG‡�ZáÂJ« îX°—Ýœ†UOÝŠ¼V¾T½ŠS¢hMëôé>/­Y»Îê—+Ô/v[ýBv wÕ üÞy÷][­¼óykÅÛ4æjÝßl :°…àÏ…ü‰ñx2 ®­­¡]»vQuu•ÍÏ$,²µ°/TÁDLìIìy7~EÇJÂó=«q��úK[±�{)¨­´¬ˆââü \�i(tdaìÉêò®ý*l-²¡ „E§þœN´ÀƒÙ·?Ýqû:tèP£Ÿûòâ—©G÷ä3>d™¯QeZ¸Ä®a 6Ý·ØŠçžxÅpÝü(yÖï·âéM÷ÑÀ8Z}¤)-~gµU/á´­–¸(Š’¥ç}àG«ÿG#† µ×ÁñÐÙz'ϸ¯þ\Á?�'ƒ«ñçøñãôÝwûiÿþýtâÄq�IÈXÝ00±géwC�¸ÎÁ¤–}êŽ÷èžï-ÝgÌÈÒ^Ö”þãå��GÝfd µßŠNý±½ãRþ~ædKC꛼ã%²<ÖÌi7+ˆ\Of„¯N;i(õxø)á£}cù zú)}aù 7Ž º§Ïsd‹0P´p¡!w�I·•ï£Ø’#¦o8ìïz6Í�<ÇŠ P–rÅÓô„~c®½žÞ|ãµÐ˜AlÿýÞçõÒó$¿ÿ„‚¿åÿ]ö5Ï å|<ž ¶�¬øßüšƒÐþýû(”{†PÝ&Ã&}¾FÜT{,Üëxí`ê|ÛLîPŒµŒ~³ô-Ã!‰h‰„HHÆöÀK]´”û\C9õWß~{<ν}$%ßÿ$×côn„ûzMyqžé¥¾˜pM4„Z‡ë/¢óž|ÁЫÞ~Ç�T´y³®Ïí?` ÍŸ÷DÐ_wÓx*ݶ²µ2­@„…�–®Ø13ðcË5è—DWçºb+ýדH�oØef£ ž¯©šMsÉ ÝA™ˆíÿ—––¦ç¾Ÿ^ö‹V_štË­Ün þ<žŒQD´ÂŠçfS�åT^þ•——[ñVYÅöÛ0ò%Lì9¾‚¿"ç}*ÿbqŒ…'‰ÓÇ™ZžÁ¦îJyF(8Yâ»íOSÎ(nàÑïÓeg”;4Dt ¨È” ¡Êž|SøÜH0L5kÚ0Ø×𹓮äÞË�´{YñÅ熾~œÊŒÀïý?¦ÇæÎÕýùõíëG¡�öãajhÖ’^ö=va�ÌÛkô©ÍäбK€Eiôý»“C?�áŸWUU¶Rîtð§kí³�G"ágŠÂ�áe«ª:Øm—ÐãÉ`Óf›ÂñÚl¿Àªª*òz+ë&C\R¦µ±ïd –pøï¯—Š`Â…=­»'QÛþžº­¾ Êж\"Ëb—ñM™yó?£M£uµ?Ö‹GýÖ¼Ë5ù'ºVdêÏè²[‘‰?Ñ©F;a¿|ÐŒ ð³ä'î soà[ ¨¦¦–ÆŽ§k/?ŸvíÚѲe¯PëÖAÝ‚½ý¬âÕÂÀzÃ@ž†Õ†<0æRºµø›z›uÝŠ5 ÏïO Wþ†»·ƒmPÈÈEQ”Ý ½÷”)ËúfÏ^êœߨ§=­ªê4_ð§«éÄß–­ÛlÙx Üßoºªª Üti=ž –ŒWØàPüMÌÍÍ ú�­õ*QÇs¨ªjÆÞ©{!¯Ö7ÓñÊCT‘·š*6n oþ64â8O ã�‰]Fð,å þD÷Ü Ä;�Ê©?2¸×ÜÀM«¹ï5ö¶� kéMY°€ÎN4þ^vvæ\Z³úc®Ç4úlòµƒzÃ@EQ؉j«úÏuƒ]?ݧ+¹ñ ÃÛô¯RUuTÈZ'mH‡½åbc[k7üÍ-Ùr¬¿<9Ÿî¿wfƒŸÃVoú‚?îÉ&Æ#L:’o IDATÝHd™/µ1),r �'£ÒfaÖôÜÜœP†¯ƒejÄE°ày7~EÇJ¼68*5‘eœõaÁà·¯¾@ß’4ÐbÓj]§Í õìWǾ±cÎK.t<�x÷ ÈX«p¯Çþ)tŒì|ËžŸ×`ˆÊΣë].½X›ÞÅevØG§ñ*ò`öíßO׎¹ÎÀÑÙÓž=ßÔý…ÀÏ<&€sTU5múËãÉðMì™R昗·¶Á_—µ¤VÇp×ÿà�»Ä`ê´»iÁSó &„ʵ×Ý@Ëß|�÷Õ†¨ªjøÛNáñd?7ÙªÜÜÞà5: Ø“¢·zÛf{Ð(Þ)¹@¬‘·øÁ—t¾‘6ÕÆŠ8ÂÝ@Ë{-E§þx EBK|œ'rPu›yEöhê±]~{Ã�cé®;ÞK0Ì-¾–hl«!l¿ë‹�zê¶6¿7z|ù‡¢‡¨{ÿ¿å¸!Ùª±àoÝú Ôÿ¢ ­<„°øÇ?ŸoìÏ—ìÓÁ� ÿ xCYSSÙ,ù×2š8~ïY¹jÚÏãÉ0­JÞ$e¹¹9Áöí“2ثذ–*ó ©jÝN:YŽé cdêÏH#®èë6.5Kަ�k²¹žÏŒ‚Þ‰ÃpLýY�]â[fbÒÀXÐ×eòdj“q™éË&ðyäQ*Ú¼ÙÐó,\¸�ÒÓSüœ3ï¥õëò ½Ž�?~œ6mʧ'Žské}'¡Å–‘æzØÑþ®gÓßÔŠ¶³2ÈÔ�/&¿}öt-ǵ‚¿ze7 ø• ¼{ý�¹ú*,ùµ9Öö"ú1ÓÜr�<žŒL»„~]’’(55íÈÌÓØ¤¥Ý– ñ5âÖïB°–bË>Eƒ?ÑÐ�´×=;.Ž»¸ÇŸî®w_>²0-v”þ¿žØä! !õì!h6vœ¥ÿx™{JŽ]÷ÄI[Â>õÇ–Lo¨5¬Ó¬ku¼|uºúFSŠ9êóÆòôôSÆ÷öì�’Bóþúd½ûùù ôûÙé)?„~–cÁêFúÍs©Èô_ç&MšV°{Ý´iSÇœó·ûöÛà(Ì·)ÿËÆž3ëtjê�Lå9šáÃGÒÇ �Š‚…Øf�iii"I¾kš|=ž x/Õë±`/%¥¥ôI¡Ô¾)Ô)66T/m_°ç-ØBUÙr-Q百3«CdÙjþÄ1TõIð:‘©?2aÉ/[Â|qþîÇñ.•öá�úó]3£û:²°¯x~¦¡ÐÌÅZw£Ò{Qì¨kM_²[Ÿ;‹é‘Gæš¶Ôö�¢ßþfD£Ÿ‡Ðïgo�É Ïz9ƒ»ËíKW.Ïá>Ê&MšRZZºm¿Ɩ–˺U�¢(�}ÊÄ3‚?í�ÜSFÿìiĈKiõjîïúë^·ïtÚ†¢Ÿšy)}úPï”>Ô'¥7¥§¥RDD+G_%ÿFÜÚâÝöÀöDC«¬ÎÆwN`¥)ÿ×c["+ném$Ú€ë#º7Ohì^±ãŽº¸'µˆ=‡Úö÷œñëåëséèþïÈ»ö+,ã#_°×æ‚~ÔfàpjÝ>,þ¿ýí)ÃKyý5VàáO¶Ð�Ù°ás¡ÐoË ,í 3¶ô·wv÷A°ð¯_¿‹lq ââàßHõ‘mµªŽe¾¤ªªR_ðÇö«à}Q„öÁ&ý®½ö:‘ÐÏ«ªj´Ä—æ4­"¼”÷qì/t6µ'c°çÍßF‡7}gƒ£0¦ó¬k©Ë�r=GC“w<ÒV,ä.ûh,tìñôÝ\K~}ØDÛ–St� κ>|§Ðëø³zêOt/A ¶ï^TjojݳWXƒ½`>ËÉ¥^xÁô�víÚÑ_çý•ztOnôskjjéö;¦HWäQX¸‰jkk¹Ãöóû4ªµ>t̲ãýªÛ7£!ޣܫ[·Ž¬[Ñf�…Ïc®½žÞ|ã5)¾*Ø–n�âû´§UU�4ø£SáŸP(Â~ónÚ´‰¢¢"y &1°¼·îªªº[ö{áñdDkûç�Ñ,Ä‚=¶'G_ì5²¯Ù½�Ê×g£\EdêϬå¾"zzBGÞ²�`Ø9Vm+¢UUuSqgwîjÉÞzF§þX`ùÃgPÍö­T±±ûî؈/Øk{áKJ5ÌÄ :þýïÿjämOàGÚ”áÄ õ|jannNª6¨0AûaÛ}¿KKKhÿ~þeº»S{!ô³þ%lã>¨ØØXêÒ¥kØOFÏÔߟŸ˜G÷Íš²c²ŠŽÕ�§‡ºê þèTø'¼ RÖÆ»[ÿù4 ?Ñ£tCèW׈ûÊ^_Ò«g�({ò ×Ô_äÐdJ_¼Ü’×�üŸ¼´áuAj¿5ïR³¶1ºžItêÂ묶Í)r@2E§÷¥È½mìÊÏ/ Uo¿CkVléëð~Ä_Ò%77'èû2m€a‚VÄö0°¼üúê«íÜ�Ãò^û*N‰¢‹>h´0â }û¦R«V —Ù„ þXØ�…Ï‚"صÈsó/öÃkhšÑ›ÿ•¯ûŒj¾Þ�}ôlÊ?ØkÓïâ�•gX�MÏ­X±Šòr×Ò¡C‡Bòš"�sûwòì%8177g Ïó‡3 üòË/èÇùþ¼ÿÏuƒidÞ^ËŽ Œûh`ÝøF×ó4oÞœÎ?ßÃ_�}07OšL/½øBÈŽÉ lyïàAƒô¬îœ¨ªêé?G þèçe¿Á–E6†-ýÍÊΖjE»Ùºm;]qùå¢K{ÙxX¢ªªüëqÂ#Ñ/ÔKE° ™ú3:­&²ÔwÃ5¿á^ÎÚíÑIwÓ9�NŸmšRoÓ- TêØS³®QuAOŠNO§¶ýÑÙ‰ÿçø;ŦøòÖ^W„®}ñØV@™³¢Ö­ù¦™Øž‚÷ßwÏCžÎÍÍ™Æ{|Áhaà(- ´ä=Óþýû¸ßƒ>0æR𱾨ŠÃ“e^Ø•®àë `ùOll'[Ü =á³eë6:¯—ýÿ¬üË“óéþ{gêùÔ骪.ðÿ€®àïô' ´ýú<øÐlšûH¦ÈC¡“n¹•^~i‘è%*TUÕŽk]SµïXI1±W‘ó>•±Ž¼[Ј b¢ ¿¢á_³äh¸&›ë1lRnÓ軸_ˇMöÈœ§{n}Øþ%ÿxûéؘ¬Á^aÑÚRTd«–[6ÝwÛSè·¿ÁýXVà1óžY¼�Á«rssFq¿³Ã@‘_ìëç"ûýÙ©å—8öŸd¥/.zÁ–]o­x›Æ\­{�ç!ªªž1ªÉüÑ©ð�%‡S¹ägùWÑ5£¯}8h .ëe横î$ÖVûSˆB°`o"S¤íoW0y¼î Lt¯è�¿§Všr YðØá’‹(fäå 6 û–å~ÿI.‚>i™vE¥÷¢6ô³]#®€íرӖÁ^}n¸q,ÝuçíÂ�ÿÇ?Ÿ§W—½Âû°ìÜÜœÁÂ/j�Ç“á+¤÷™ô”(Zpýpº)—»?Âèßž.4íõÕ\Э[2ÅÄt´Ím«¬¬¤mÛ¶èú\6±øÎ»ïÚb�ýYÂñgû‡äàúVrrt*ücY›¸è ?¯öQ†Ãçþ %ÜŽW¢Š¼ÕT±qyó·ÑáMß9åÐ@#2…ˆíwwàƒ•tdß>:ºï µîžDM"#©í€_7°5¦ô™G©ìÉ7q«\BÆ`/Sm® ö6óN¸ÙƤɷÒÍn2t8ïø1=6w®ÈCÃúÕ§±0Pï2J?Äu³þÀÁtíöò-ÍnÝ:’RRúØîFè)ýðÇö¼ûîé! Ùtß=3¦ó.¡ÿÅ~~Á>Š¢°†Ý3‡Á` pã¼Þ*š7ÿoF?f©ªªBpÈ>ìµ2í<ÍÇq«· Ø�œ•ûá‰ÚùçYôís|{瀽EJ¢¨ÔÞÔöÂŽkÄ fßþýTPXD»v•::Ø Ô9>Žfκ—ÒÓ�ïzÄJFî™y�hÁÈÒÜÜœP¾?3ÄãÉ`Ë„'?~üª/¾øœë©°·ŸsÍïß�_þ!×ñ_xáEÔ´iÓpŸs±e¯,·ÊÊÍÍ©T%Zû÷Rw–]ÝpÃõ¦�,è{ÿ½wE·ok4ðó1ü‘ÁâÇ�¤§<åˆMCeýç_Ð�¿»A´´Ã_¨ <Øo"¶|¼Å¯£ öÊ×gSe~>y7~EÇJ¼v94!3¦þÌ–ov9 2HÖ`¯hsQÝW¸Ê3¬ס ]ÿÛKéêÉSL{%VÜ1Þ<#�Âsrss9£( Wð<æ“«úSß/CÓ¾ æ*<¿= ]µžë9{õêMÑÑÑVß ¯âeiÁתFEQ–˜‘]°ÉÀäî=(""‚bccéÜN±§í«¯wPMM ïÜAß~û--óu£/G<�Ÿ�áàïô) ûNÅb3žkê´»iNæl[n¬h5VϼÁ ûTUµ][µY´’–³ Ö¶?KÔž:ð÷…WëÄ í¿l¢±@UUK–-×ÇòàÏŸY›'êÁ–§¥ŸOœŸNý/ºÐò×cËu7~™OÙYŸZðâX7_WîÁù—�é�-›èÛþðú ¬z<}7ÅŽâûçHÞ°Atl§4ïÙl)œa�ØòÐüM´¹.Ø“§—‡°·õç?CíV’bAØç3Ī}É ÁŸû øs¶�>Ú¸dØ !±�°1&–mÒ¶m[êÚ5Y´[Ï_<¦.ÑfûóÏ{KwÀ6Z^Љú½õ×á`êÀ8ÙqÝì±�äÈ”ðÓQŠ+¯¢Å5§Íî÷šÝ»7ßZA+ÿû–Uû"J³¬7Þà¯K—$ÚxüW!=F0o¹ÛvLUU3·Âüù³[hGþ@õÕÆsW²×‡-áÝòÇL:YŽÖB°'Lý˜O¶`oßþýuÅE›‹¨¨h³+qýÕì9µý˜í×÷Ÿeˬ¾�fï±nK"­¾»S{QëCÇd¿4Rªnߌ ¶ñžÚUUƒåaþiˆL³xãD[kÞ¼yÝÞ˜˜ŽVæªÜÜœQÚÿ›²¤÷xå!*úãd,ãGÀÔ§†= q{°×.Š’Z6¡øc‡)î@%Eî=õM{_IJD÷n޽×ìÞþwÅÛ´ú£CÕtìŠÀÏGQ¶„óSžÇ¼=&ƒ<ë÷[z\`��ÆÑ�op¯Xê}ì ~¶ þüi&úT:ÛçÈÌ‚ ï 111{V¬x«Ühi¦ûÀ©0õð3ƒ½;‹ë‚½­[¶PÁ¦üP@¶ÑX°'Kûñg9¹´nÝzÊË]Ž{<177gI¨_ÔEá î=’2¿(‘özÈL`?RUUqûu³[ÁøÕ)�rbÈB>ð±ìÿÃáwcÇѦÜfè•¿}í9Úyï³a9~3ˆLý•>ó(•=ù&®?8Žlai… Å»J]ì%wlK‰ÍTŠ?RKq¥Aq[÷J•ªýøóõëì°—"ké•››³;ÜN¼ûü1[¥PlÉé®…Ìöw=›zgñžá*UUGéø<ÇõQÅW¥ìûÎ¥Â^mù,û±RUÕÝOÆJ"º*ŒÇDíÛ·§gŸû'uŠ�~~ ‘©¿µéýèĘt{‘5Ø+¬+Î(¢õëòlpD¡¥'ØCûqȰ÷wÓÜ:ÝŒ¢(Ü{Ä?0æRš±ž»$Âh~ÿnôøòyË|mFšàOmé0 }ÿ%¿Ÿ7†­ë)Ð>§À÷sUUu¯÷ñx2¸7A5‹Ñ)?~ #Lý�SÈö”ì*um°×§S;JPNP|M5Åmýù-Ú�m¥¾bD8õþz7ï*¦þÀl˜â’ kÄ��hîŠ`O²’6Ù—™››³ÀÇb{"ScF ¡ç·íqçs˜ë;Кµëxz´ªª+Ý~íìÁ_x<lÂp·ÕË‘ÙÒÞeË^¡ˆˆVB�/œ2–*ÞÛbúqØIäÐdJ_¼üGäÍÿŒÊ×}F5_ï ïÚ¯ò�a{䂽äÈ”ðÓQŠ+¯¢Å5uç'kIJqÉ.™ïõR-ìsõž}¢Döú{ìºKéö<,ùµ³çv£?½Á½Ä{ûÙ‚¿0òx2 Œ¶êÖ'¥OzîÙg„˦üò¯¸Ã6× ÀÎXØÓ*å\{ñ5âÆœüÑÁž‹Ú�ÙDßJ}æÑÊ7KyŸð?× ¦‘y{m|fîõÑÀ8ºñ ¡-úÚðl…¡ƒà/Ì<ž ¶A,ß®â�è?` ÍŸ÷„Ðc¿~d:íé;_2€�BØ#_°ì0Ũ¤È½§¦ze.IÙ]Zê¶{í ùäææèø|¤(Ê"ZÌûèO®êO}¿tן=vWx~{ºj½ÈQNTUå76…àÏ<žŒiDô”Gb$ôËúk:Vâµ×Ű˜ØÓºW{ðoÄíp¨ÚÁž[KRˆ(›ˆØxÒJ|á£(ŠÐ@ Â?û0ú-UUu‚¤—E þlÂãÉ`훌�hèwd÷vÚ8z< <@J{äãìÅ•VPsïɺs”¹$…-·vy°—•››#´þBCd¿?²_[ø¯'‘&¿¾FäP²UU,ß‘ ‚?1Rú!º§_EÎûT8î~g](?²…=„`�útjWo#n«n‰h?–[nT€`O¢á ?Âg~ÿnôørî"BèçþlÈãÉàúÃR´½¡8�ÌS\. { öP’"¯/ÔÓ‚=,ÅuÑðoØÅèÅ/µ>tÌí—0$ªÛ7£!Þ£TZ*ôçB?AðgSOF&ÍÖst‹—,¦îÉݸNͽ`²…=nöÚDFPrd JøéhÐF܈nIöäQ¦…zöÀŸ¢(¬Xå*‘‹‚¥¿Ö3°´—Y¥ªê(�®ë!ø³1�'ƒýfZÑÐN�~7]7f4×I°=ý>tƒœ lS\ri,ØCû±TÊ&öv»í€8EQt³êÒ%‰>�j�é?“íïz6]ñM­è”3GUÕL»ž‡àÏæ<žŒD"* v”¢ûú¡½Ì"sØÃ=7{qí¢(©eŠ?v˜âTmÄEû±4 ý‚½{`6EQØrÐOEŸv̈!4ïà€±e½3c:Òò�…o“¦ª*¦zÁŸh¥ì7Xgÿ£Yâ»uÖ­ôý럻ë€0LqÉGO°‡öciLìUºä¼ÁfEaïgûŠÕc.¥ëQþÁˤÀ¯PUÕÔ°œ˜ÁŸƒx<§÷I¸òªQtï¬\ðýWiÛq÷E€_�=ì)Þ¹ÃuÁ^rǶ”ØL¥ø#µWZAͽ'ë>Žöc)e£œBQ”F·²j &õ1)ðcF«ªº2D‡ Aðç0¾Ò�7—¿A�bc¹K|܇…=­ºwÆ—DX#ndz~’>Øs{IŠÁHÇHñ‡Ûð± Pà£�qô§/¾1²‡Ÿ <$‚àÏ�>Zý¿G¿d.Ï‘—½ø$•Î]æöK „=òaÁ^‚r‚âkª)nëÏ+3e,I).Þåæ{í X†‹½³À5E º�•6xÏYUÔ­È�C.Å)Qôד‘fL÷‘¶=À`UU±-€Dü9ûÇÁ ž#ÏIëG'Ëtûup_ØÓºg/{ð5âÆ¨Ç]ì¹¹ýÁ@ãEIÕ~�D™q¹†]<€h§Rß/åÞâ¡ðüöôø ­Y»Î¬§ôj�þœ’‚?gâºiØÛÀ¾öÈÅì%üt”âÊ«¨CqMÝù¡ýXJeÁq™ú°R�¿ÿ–bKŽ8úÖìïz6ý§Ã¹ôøòÍ~jöçØ(~rCðç<Ü¢NKïmqûu9ÿ°'²Go{ðoÄíà­uE°çÖöc{¡§-^É»ÂM/¶,øêh•î8hÛ‚VÌ‘×=†þ[©˜µ|7˜l-ðÃ’^@ðç< ˆh*ÏQgunM€ ì‘�°w ’"÷žÚ*íÇR* öðÀFE™ ½ÿ5u 0˜»F�¤>ÍNÒ€ï„l:�Mñ­;§#m>v-\ñQ(^’-ç�¦ªê’P¼Ø‚?çáÚ߯"ç}*w¿Û¯€Ã·{ÉÛRb35h#.Ú�¥“­• Øp0m 0“wÆllÿÀø6uÏÚ·eÃO^xøÔ÷TÔ˜¹Ÿ¨§ÙõÃtŸ{!øs®†6_€úÉ>Å寰§¡`íÇÒÉö õ²ÜxÜÆ.!  ìƒÓšàRÈíDUµÛ/¸˜ŒaÏŽ;]ìõéÔŽ”õ6â¢ýXþ�¸ö€Ñ‚¬iÚßr`vvù*Ó‚>,ã…3 øÇ—| öÐ~, oÀþzh”nZÐu:ìrQˆ tCð¶%kسkW©+ƒ½6‘”Ù‚~:JqåUAqÑ~, 4â@È µéÀQË´¦ãªªâÏRà†àÂS\rÑì¡ýXöÀö´ ìôÒ`EQRµ0�ýèk“ó(Ô¾•ªªb LƒàOr-:�ëöKa"{ØSRRìº`/®]%µlBñÇSÜ�JŠÜûcÝÇÑ~,¥Â€`Ä€4´`­@[|­D„…ƒ‰?HûxT#׫=?³;àGJ7 ”ü9k/¤÷¨[ž›àöëaaO«žñ˜â’kÄ�m¦¸"Øs{û1‚=€úiÁJ…@ Šªª¸“β€·º<«³]&—ÀIöȇ{‰ÍTŠ?RKq¥ÔÜ{²îÑ~,¥l¿Po^\ ΓÅüµùmoªxo‹Û¯ð…=Ý{ Ø“„¯7æÇ#Ò{no?F°z øsž•¼G{ùåþ\a�||Á^|M5Åmýye&Ú�¥ã X†‹MÞ@–ú:SÏ>LÞÐ_Ó±¯Û¯€TüÞˆ”~ö®¾F\Bû±ŒÊ´Mß쀥0ñçL xƒ¿so¼œJç.sûup„=r©/Ø“½ýØ¥�¸e{»mpLàB˜øs.öÈÎØs{û1‚=ûÀÄŸóe‰„©?#„=òñ{ñÇSÜ�JŠÜ{ªA^撔ݥ¥n ö ‚=4âØ&þœO8øëòÐX4ü€%üÞֽú Ø“€#n‡CÕ®öÜZ’‚`@˜øs¾ÁDô©èYä ý5+ñºý'„=òñöâJ+¨¹÷dÝ9Ê\’–[»4ØËö õ²lp<`r¾‰U›ó(ÿŠ;Ü~ý €la!Øk°·U·D´˃}7¯Á‚?i/÷eÊ^|K~\Fæ).—†= {(I‘Š7`n�Û.è‡àOˆh±‘3Ù:ëVúþõÏÝ~¤![Øãö`¯Md%G¶ „ŸŽmÄ�è–„`O¾FÜ{`‚?y¾‘ù¿MUÙ®{ƒàH˜â’KcÁÚ�¥R0±·ÛmBÁŸ<2‰h¶Ñ³Aø~2‡=,Ðsc°×.Š’Z6¡øc‡)î@eÐF\´Kÿ·Á„‚?¹˜r3þX S\òÑì¡ýX…{•.9op r1eê�ùú‘é´ÿ¥OÜ~=„ÈöïÜáº`/¹c[Jl¦Rü‘ZŠ+­ æÞ“uGû±”²Ñˆ ²@ð'Ónè·¯=G;ï}Öí×à ,ìiÕ½3¦¸$Âq;žõ“ôÁžÛKR4öÀ5üÉÇ´©?æÈîí´qôx:Yþ£Û¯+¸Âù°`/A9Añ5Õ·õç•™2–¤ïró½ö,ÃE#.¸‚?9™~S·Îº•¾ýs·_W�„/ìiݳ‚= øqcÔã®öÜÜ~Œ`€‚?9- ¢©fŸYÕæ<*? Ó`{{äâ ö~:JqåUÔ¡¸¦îüÐ~,¥²€`�¸ ø“S4UXufØûÂÉ?ì‰ìÑÁžüq;xk]ì¹µýÁ@h!ø“—%Sþ°ü¬€°G>þÁ^Ü�JŠÜ{jjíÇR* ö*ÝvìÁŸ¼,�úó‡xÈö¸=ØKîØ–›©AqÑ~,Öˆ[€`ÀüÉÍò©?�\0Å寰§¡`íÇÒÉö õ²Üxd‚àO~l#JïY²¯EQ ]ì(7Þ;vº:ØëÓ©%('êmÄEû±4|�¸öÜÁŸüFÑ ž³û/t¬ÄëÚ›`²†=»v•º2ØkAÉ‘-(á§£W^´íÇÒ@#.pAðçì bgž³=²{;Ýq÷}tÝ­wÒe—Ž0íB!´¦¸ä¢'ØCû±4쀩ü¹‡PË/ ÿž¸ï^Z½§‚®¼jÝ;k†©Œ-Þñø(ÑIö°§¤¤ØuÁ^\»(JjÙ„â�¦¸•¹÷Ǻ�£ýXJ…ÁqÀRþÜ%•ˆ6ñž1 ÿÞšr;=ëý©îç)}úÐÃ?H�bcM¿xìµvýó)×�,ìiÕ3S\a�¸±ÍW{no?F°vƒàÏ}ѧ¼gÍ&ó¾¸újz!º íË¡Š÷¶Xú:¡€°G>,ØKl¦Rü‘ZŠ+­ æÞ“uçˆöc)eû…zhÄÛCðçNBáS8e,müö;zùб_|¼}ûö4{ölJOO ÉeAäÁ—Se~>•¯. “å?†äuã {"º÷@°' _#nÌ�G¤öÜÞ~Œ`dƒàϽ‰¨Täì¾ÿ*m»ã/´ªmØ{æ²Í.IIt÷ôé! ëÃJDû Ý÷-ýîýøÝ÷t¢ê0Þô�îç`{êµJ9·îÿ[uK¤&u¥-â»Hê!ìù9Ø‹¯©¦¸­?¯ÌDû±t¼Ëp ÜvÀ}ü¹[´Öö%r6ŒI»¾§—;ÑÞ‚7ô²IÀ±7ýÞòåÀœÛƒ=ÿFܵ‡]ì¹µýÁÀ™üio”‰\ 6UW8î~ú¾[-mIU5 ~~ÿiì�¿ û4 ,Üöø{qåUÔ¡øÔ×Ú�¥TìívÛà…à|2‰h¶èÕØ:ëÖº&^½ [|ãØ±tÙ¥#p#‚p{°×.Š’Z6 Úˆ‹öcéøq ì˜ÁøKÔÞt -ý%¿ðǨ³èÕnñ¿hÖ‹M^2ìúõÅŠˆh%õ r{ØÓP°‡öcéLìUºìüBÁ³€ˆ¦¹2¾�ÉЙVï©0|¡‡ AçõîM{úS§ØXGÜ8öï*um°—ܱ-%6S)þHmÐF\´K%Û/Ø+@°~þ >†Š?|ü@¶ ø½¨öBS€z°IA¶t8&&†º%u¡sb;Z²I½ï¾;@%»Jiwi)8ð�+q öÚ\Ð�Ú NM£Û‡ýX�p{IŠ&ÛoZ/ËG Bð�ED+Œ^%V²å�™t²üÔRÎ’Ôö´âX3Ý{BxôéÔŽ”_S-u#.‚=4âÈÁèòáGkV\:rØ(3®Ö×�L§ý/}rúç{Ï‹¦w𴦽?xq3BÌ-ÁžÛKR츂?ÐÍãÉõ§‡ZaVïñÊC´í�©TñÞ–Óc¥ Y½è³=?àÆÔ&2‚’#[PÂOG)®¼Š:Ÿš®<«msŠ�,U#.‚=* öЈ þ€�Ç“ÁšKo¹õ6š8~œiW�…€ß¼ü4íyúí_|¼*®9­‹ï„ 0ÖˆÛé즮öÜÞ~Œ`D ø!O :_yÕ(ºsÊíÑÊÔ Éö,]´ˆª²ÏœÜÚv~G*:«%mÞ'wÈ‚½¤–M(þØaŠ;PI‘{Oí�جkE]Г¢ÓÓ¥jÄusû1{hÄÃü�0�'#“ˆf³Ç·oßžþ:ï¯Ô=¹›%ôÈîí´ëŸOQùê‚Ó!þXcðÞ¶‘Tx²™e­ÁfóoÄíp¨Zú`¯°®8£ˆÖ¯Ë³Á…‚=9`ˆ¶ô—DùžgØðtÏÌ»MŸ Tµ9�ö¯|“~Èú’Ž•Ô_ Âö ü>®5í‰hM•¦Tqü'ËÃAêµiú+ŠQ�×gtØ[Mͽ'ë~­eÚ9•Þ‹Ú\Ð�Ú NM£Û[z,VóoÄe{ë¹4ØËö õ²lp<þÀþÓþÌÞ P¶_`EÞjªþjy ¶].l%_#nëž½¤ ö¶m¦¢Í›mpT!åÕÂm{à(þÀ4OF´Žô öœ¿;Ž&ü~œå“€"Øž‚z´É¸Lº/4âÖ{þËp lpL†!øÓy<©ZˆUßs÷0�ÆÞø;JOOÅ °‚½Ó�¸öÀMü�eô€>ÅíØY\칸·,`bo· Ž ìü�åx@Ÿ.IItåU£è²KGØrip(!ØûE#n‚=}üAÈh{®$¢A"¯ÉÂ@68bø%Ô=¹›47.?¿€ ëŠ3ŠÜÚˆ[0±Wiƒcp<OÆ"ZlÖk³@°wJ õMéMÝ»'ÛfJ�5âîØ±ÓíÁ^6qBÁ„•6¸„ˆ® Åq¤ôéC­ZEPLL ÅtìX÷±®I](¢•¾ °¦¶–Jv•ÖýÿÁèàÁƒT[[CE›7[zÜ6‡`À†ü�mx<‰D´ T! èâ X†‹F\‡@ð¶¤MN#¢Ù¸C–B° )àOÆ`"Ê-q±²€`�¸.�àI[Ì‚Àñ.¿ƒö ( m*�µ�"¢(IΫ0 Ø«´Á1€ øéy<©D4X í¶T˜5â Ø³!øø9ŒÖBÆ÷sßÿë™ Ìöûÿ,¿ÿV¢4BŠˆþBÊ~�² IEND®B`‚pdb-tools-2.7.0/pdbtools/000077500000000000000000000000001521210715700152525ustar00rootroot00000000000000pdb-tools-2.7.0/pdbtools/__init__.py000066400000000000000000000063701521210715700173710ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2018 João Pedro Rodrigues # # 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. """The pdb-tools library. A Swiss army knife for manipulating and editing PDB files. You can use pdb-tools as a library or as a series of convenient command-line applications. The complete documentation is available at: http://www.bonvinlab.org/pdb-tools/ Examples at the command-line ---------------------------- $ pdb_fetch 1brs > 1brs.pdb $ pdb_reres -1 1ctf.pdb > 1ctf_renumbered.pdb $ pdb_selchain -A,D 1brs.pdb | pdb_delhetatm | pdb_tidy > 1brs_AD_noHET.pdb Examples using pdb-tools as library ----------------------------------- You can import according to your needs: >>> import pdbtools >>> from pdbtools import * >>> from pdbtools import MODULE >>> from pdbtools import pdb_selchain Chain the different functionalities conveniently: >>> from pdbtools import pdb_selchain, pdb_selatom, pdb_keepcoord >>> with open('dummy.pdb') as fh: >>> chain_a = pdb_selchain.run(fh, ['A']) >>> only_N = pdb_selatom.run(chain_a, ['N']) >>> coords = pdb_keepcoord.run(only_N) >>> final = pdb_reres.run(coords, 5) >>> print(''.join(final)) The list of MODULEs is specified bellow. All packages have three functions: `check_input`, `main`, and `run`. The latter executes the logic of each package. `check_input` checks and prepares potential input parameters to feed `run`. Use `check_input` in case you are not sure the received input is correct. You can chain both functions: >>> MODULE.run(**MODULE.check_input(*args)) If you control the input parameters use `run` directly. In general, `run` functions are generators yielding the modified PDB data line-by-line. `main` is used solely in the context of the command-line interface. All MODULEs and `run` functions provide comprehensive documentation. >>> help(MODULE) >>> help(MODULE.run) """ __all__ = [ 'pdb_b', 'pdb_chainbows', 'pdb_chain', 'pdb_chainxseg', 'pdb_chkensemble', 'pdb_delchain', 'pdb_delelem', 'pdb_delhetatm', 'pdb_delinsertion', 'pdb_delresname', 'pdb_delres', 'pdb_element', 'pdb_fetch', 'pdb_fixinsert', 'pdb_fromcif', 'pdb_gap', 'pdb_head', 'pdb_intersect', 'pdb_keepcoord', 'pdb_merge', 'pdb_mkensemble', 'pdb_occ', 'pdb_reatom', 'pdb_reres', 'pdb_rplchain', 'pdb_rplresname', 'pdb_seg', 'pdb_segxchain', 'pdb_selaltloc', 'pdb_selatom', 'pdb_selchain', 'pdb_selelem', 'pdb_selhetatm', 'pdb_selresname', 'pdb_selres', 'pdb_selseg', 'pdb_shiftres', 'pdb_sort', 'pdb_splitchain', 'pdb_splitmodel', 'pdb_splitseg', 'pdb_tidy', 'pdb_tocif', 'pdb_tofasta', 'pdb_uniqname', 'pdb_validate', 'pdb_wc', ] pdb-tools-2.7.0/pdbtools/pdb_b.py000066400000000000000000000116421521210715700166760ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2018 João Pedro Rodrigues # # 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. """ Modifies the temperature factor column of a PDB file (default 10.0). Usage: python pdb_b.py - Example: python pdb_b.py -10.0 1CTF.pdb This program is part of the `pdb-tools` suite of utilities and should not be distributed isolatedly. The `pdb-tools` were created to quickly manipulate PDB files using the terminal, and can be used sequentially, with one tool streaming data to another. They are based on old FORTRAN77 code that was taking too much effort to maintain and compile. RIP. """ import os import sys __author__ = "Joao Rodrigues" __email__ = "j.p.g.l.m.rodrigues@gmail.com" def check_input(args): """Checks whether to read from stdin/file and validates user input/options. """ # Defaults option = 10.0 fh = sys.stdin # file handle if not len(args): # Reading from pipe with default option if sys.stdin.isatty(): sys.stderr.write(__doc__) sys.exit(1) elif len(args) == 1: # One of two options: option & Pipe OR file & default option if args[0].startswith('-'): option = args[0][1:] if sys.stdin.isatty(): # ensure the PDB data is streamed in emsg = 'ERROR!! No data to process!\n' sys.stderr.write(emsg) sys.stderr.write(__doc__) sys.exit(1) else: if not os.path.isfile(args[0]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) fh = open(args[0], 'r') elif len(args) == 2: # Two options: option & File if not args[0].startswith('-'): emsg = 'ERROR! First argument is not an option: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) if not os.path.isfile(args[1]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[1])) sys.stderr.write(__doc__) sys.exit(1) option = args[0][1:] fh = open(args[1], 'r') else: # Whatever ... sys.stderr.write(__doc__) sys.exit(1) # Validate option try: option = float(option) except ValueError: emsg = 'ERROR!! You provided an invalid b-factor value: \'{}\'' sys.stderr.write(emsg.format(option)) sys.exit(1) return (fh, option) def pad_line(line): """Pad line to 80 characters in case it is shorter.""" size_of_line = len(line) if size_of_line < 80: padding = 80 - size_of_line + 1 line = line.strip('\n') + ' ' * padding + '\n' return line[:81] # 80 + newline character def run(fhandle, bfactor): """ Set the temperature column in all ATOM/HETATM records to a given value. This function is a generator. Parameters ---------- fhandle : a line-by-line iterator of the original PDB file. bfactor : float The desired bfactor. Yields ------ str (line-by-line) The modified (or not) PDB line. """ _pad_line = pad_line records = ('ATOM', 'HETATM') bfactor = "{0:>6.2f}".format(bfactor) for line in fhandle: if line.startswith(records): line = _pad_line(line) yield line[:60] + bfactor + line[66:] else: yield line alter_bfactor = run def main(): # Check Input pdbfh, bfactor = check_input(sys.argv[1:]) # Do the job new_pdb = run(pdbfh, bfactor) # Output results try: _buffer = [] _buffer_size = 5000 # write N lines at a time for lineno, line in enumerate(new_pdb): if not (lineno % _buffer_size): sys.stdout.write(''.join(_buffer)) _buffer = [] _buffer.append(line) sys.stdout.write(''.join(_buffer)) sys.stdout.flush() except IOError: # This is here to catch Broken Pipes # for example to use 'head' or 'tail' without # the error message showing up pass # last line of the script # Close file handle even if it is sys.stdin, no problem here. pdbfh.close() sys.exit(0) if __name__ == '__main__': main() pdb-tools-2.7.0/pdbtools/pdb_chain.py000066400000000000000000000115331521210715700175360ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2018 João Pedro Rodrigues # # 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. """ Modifies the chain identifier column of a PDB file (default is an empty chain). Usage: python pdb_chain.py - Example: python pdb_chain.py -C 1CTF.pdb This program is part of the `pdb-tools` suite of utilities and should not be distributed isolatedly. The `pdb-tools` were created to quickly manipulate PDB files using the terminal, and can be used sequentially, with one tool streaming data to another. They are based on old FORTRAN77 code that was taking too much effort to maintain and compile. RIP. """ import os import sys __author__ = "Joao Rodrigues" __email__ = "j.p.g.l.m.rodrigues@gmail.com" def check_input(args): """Checks whether to read from stdin/file and validates user input/options. """ # Defaults option = ' ' fh = sys.stdin # file handle if not len(args): # Reading from pipe with default option if sys.stdin.isatty(): sys.stderr.write(__doc__) sys.exit(1) elif len(args) == 1: # One of two options: option & Pipe OR file & default option if args[0].startswith('-'): option = args[0][1:] if sys.stdin.isatty(): # ensure the PDB data is streamed in emsg = 'ERROR!! No data to process!\n' sys.stderr.write(emsg) sys.stderr.write(__doc__) sys.exit(1) else: if not os.path.isfile(args[0]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) fh = open(args[0], 'r') elif len(args) == 2: # Two options: option & File if not args[0].startswith('-'): emsg = 'ERROR! First argument is not an option: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) if not os.path.isfile(args[1]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[1])) sys.stderr.write(__doc__) sys.exit(1) option = args[0][1:] fh = open(args[1], 'r') else: # Whatever ... sys.stderr.write(__doc__) sys.exit(1) # Validate option if len(option) != 1: emsg = 'ERROR!! Chain identifiers must be a single character: \'{}\'\n' sys.stderr.write(emsg.format(option)) sys.exit(1) return (fh, option) def pad_line(line): """Helper function to pad line to 80 characters in case it is shorter""" size_of_line = len(line) if size_of_line < 80: padding = 80 - size_of_line + 1 line = line.strip('\n') + ' ' * padding + '\n' return line[:81] # 80 + newline character def run(fhandle, chain_id): """ Set the chain identifier column in all ATOM/HETATM records to a value. This function is a generator. Parameters ---------- fhandle : a line-by-line iterator of the original PDB file. chain_id : str The new chain ID. Yields ------ str (line-by-line) The modified (or not) PDB line. """ _pad_line = pad_line records = ('ATOM', 'HETATM', 'TER', 'ANISOU') for line in fhandle: if line.startswith(records): line = _pad_line(line) yield line[:21] + chain_id + line[22:] else: yield line alter_chain = run def main(): # Check Input pdbfh, chain = check_input(sys.argv[1:]) # Do the job new_pdb = run(pdbfh, chain) try: _buffer = [] _buffer_size = 5000 # write N lines at a time for lineno, line in enumerate(new_pdb): if not (lineno % _buffer_size): sys.stdout.write(''.join(_buffer)) _buffer = [] _buffer.append(line) sys.stdout.write(''.join(_buffer)) sys.stdout.flush() except IOError: # This is here to catch Broken Pipes # for example to use 'head' or 'tail' without # the error message showing up pass # last line of the script # We can close it even if it is sys.stdin pdbfh.close() sys.exit(0) if __name__ == '__main__': main() pdb-tools-2.7.0/pdbtools/pdb_chainbows.py000066400000000000000000000106061521210715700204310ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2020 João Pedro Rodrigues # # 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. """ Renames chain identifiers sequentially, based on TER records. Since HETATM records are not separated by TER records and usually come together at the end of the PDB file, this script will attempt to reassign their chain identifiers based on the changes it made to ATOM lines. This might lead to bad output in certain corner cases. Usage: python pdb_chainbows.py Example: python pdb_chainbows.py 1CTF.pdb This program is part of the `pdb-tools` suite of utilities and should not be distributed isolatedly. The `pdb-tools` were created to quickly manipulate PDB files using the terminal, and can be used sequentially, with one tool streaming data to another. They are based on old FORTRAN77 code that was taking too much effort to maintain and compile. RIP. """ import os import string import sys __author__ = "Joao Rodrigues" __email__ = "j.p.g.l.m.rodrigues@gmail.com" def check_input(args): """Checks whether to read from stdin/file and validates user input/options. """ # Defaults fh = sys.stdin # file handle if not len(args): # Reading from pipe with default option if sys.stdin.isatty(): sys.stderr.write(__doc__) sys.exit(1) elif len(args) == 1: if not os.path.isfile(args[0]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) fh = open(args[0], 'r') else: # Whatever ... emsg = 'ERROR!! Script takes 1 argument, not \'{}\'\n' sys.stderr.write(emsg.format(len(args))) sys.stderr.write(__doc__) sys.exit(1) return fh def run(fhandle): """ Set chains sequentially based on existing TER records. Follow sequence [ABC...abc...012...]. This function is a generator. Parameters ---------- fhandle : an iterable giving the PDB file line-by-line Yields ------ str (line-by-line) The modified (or not) PDB line. """ chainlist = list( string.digits[::-1] + string.ascii_lowercase[::-1] + string.ascii_uppercase[::-1] ) # 987...zyx...cbaZYX...BCA. max_chains = len(chainlist) chain_map = {} # for HETATM. curchain = chainlist.pop() records = ('ATOM', 'TER', 'ANISOU') for line in fhandle: if line.startswith(records): chain_map[line[21]] = curchain line = line[:21] + curchain + line[22:] if line.startswith('TER'): try: curchain = chainlist.pop() except IndexError: emsg = 'ERROR!! Structure contains more than {} TER records.\n' sys.stderr.write(emsg.format(max_chains)) sys.stderr.write(__doc__) sys.exit(1) elif line.startswith('HETATM'): hetchain = chain_map[line[21]] line = line[:21] + hetchain + line[22:] yield line set_chain_sequence = run def main(): # Check Input pdbfh = check_input(sys.argv[1:]) # Do the job new_pdb = run(pdbfh) try: _buffer = [] _buffer_size = 5000 # write N lines at a time for lineno, line in enumerate(new_pdb): if not (lineno % _buffer_size): sys.stdout.write(''.join(_buffer)) _buffer = [] _buffer.append(line) sys.stdout.write(''.join(_buffer)) sys.stdout.flush() except IOError: # This is here to catch Broken Pipes # for example to use 'head' or 'tail' without # the error message showing up pass # last line of the script # We can close it even if it is sys.stdin pdbfh.close() sys.exit(0) if __name__ == '__main__': main() pdb-tools-2.7.0/pdbtools/pdb_chainxseg.py000066400000000000000000000073441521210715700204320ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2018 João Pedro Rodrigues # # 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. """ Swaps the segment identifier for the chain identifier. Usage: python pdb_chainxseg.py Example: python pdb_chainxseg.py 1CTF.pdb This program is part of the `pdb-tools` suite of utilities and should not be distributed isolatedly. The `pdb-tools` were created to quickly manipulate PDB files using the terminal, and can be used sequentially, with one tool streaming data to another. They are based on old FORTRAN77 code that was taking too much effort to maintain and compile. RIP. """ import os import sys __author__ = "Joao Rodrigues" __email__ = "j.p.g.l.m.rodrigues@gmail.com" def check_input(args): """Checks whether to read from stdin/file and validates user input/options. """ # Defaults fh = sys.stdin # file handle if not len(args): # Reading from pipe if sys.stdin.isatty(): sys.stderr.write(__doc__) sys.exit(1) elif len(args) == 1: # Reading from file if not os.path.isfile(args[0]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) fh = open(args[0], 'r') else: # Whatever ... emsg = 'ERROR!! Script takes 1 argument, not \'{}\'\n' sys.stderr.write(emsg.format(len(args))) sys.stderr.write(__doc__) sys.exit(1) return fh def pad_line(line): """Helper function to pad line to 80 characters in case it is shorter""" size_of_line = len(line) if size_of_line < 80: padding = 80 - size_of_line + 1 line = line.strip('\n') + ' ' * padding + '\n' return line[:81] # 80 + newline character def run(fhandle): """ Replace the segment identifier with the contents of the chain identifier. Acts on ATOM/HETATM/ANISOU. This function is a generator. Parameters ---------- fhandle : a line-by-line iterator of the original PDB file. Yields ------ str (line-by-line) The modified (or not) PDB line. """ _pad_line = pad_line records = ('ATOM', 'HETATM', 'ANISOU') for line in fhandle: if line.startswith(records): line = _pad_line(line) yield line[:72] + line[21].ljust(4) + line[76:] else: yield line place_chain_on_seg = run def main(): # Check Input pdbfh = check_input(sys.argv[1:]) # Do the job new_pdb = run(pdbfh) try: _buffer = [] _buffer_size = 5000 # write N lines at a time for lineno, line in enumerate(new_pdb): if not (lineno % _buffer_size): sys.stdout.write(''.join(_buffer)) _buffer = [] _buffer.append(line) sys.stdout.write(''.join(_buffer)) sys.stdout.flush() except IOError: # This is here to catch Broken Pipes # for example to use 'head' or 'tail' without # the error message showing up pass # last line of the script # We can close it even if it is sys.stdin pdbfh.close() sys.exit(0) if __name__ == '__main__': main() pdb-tools-2.7.0/pdbtools/pdb_chkensemble.py000066400000000000000000000122421521210715700207320ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2018 João Pedro Rodrigues # # 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. """ Checks all models in a multi-model PDB file have the same composition. Composition is defined as same atoms/residues/chains. Usage: python pdb_chkensemble.py Example: python pdb_chkensemble.py 1CTF.pdb This program is part of the `pdb-tools` suite of utilities and should not be distributed isolatedly. The `pdb-tools` were created to quickly manipulate PDB files using the terminal, and can be used sequentially, with one tool streaming data to another. They are based on old FORTRAN77 code that was taking too much effort to maintain and compile. RIP. """ import itertools import os import sys __author__ = "Joao Rodrigues" __email__ = "j.p.g.l.m.rodrigues@gmail.com" def check_input(args): """Checks whether to read from stdin/file and validates user input/options. """ # Defaults fh = sys.stdin # file handle if not len(args): # Reading from pipe with default option if sys.stdin.isatty(): sys.stderr.write(__doc__) sys.exit(1) elif len(args) == 1: if not os.path.isfile(args[0]): emsg = 'ERROR!! File not found or not readable: \'{}\'\n' sys.stderr.write(emsg.format(args[0])) sys.stderr.write(__doc__) sys.exit(1) fh = open(args[0], 'r') else: # Whatever ... emsg = 'ERROR!! Script takes 1 argument, not \'{}\'\n' sys.stderr.write(emsg.format(len(args))) sys.stderr.write(__doc__) sys.exit(1) return fh def run(fhandle): """ Check if the ensemble is valid. - Same atoms in each model - Paired MODEL/ENDMDL tags Parameters ---------- fhandle : a line-by-line iterator of the original PDB file. Returns ------- int 1 if an error was found. 0 if no errors are found. """ model_open = False model_no = None model_data = {} # list of sets records = ('ATOM', 'HETATM', 'ANISOU', 'TER') for lineno, line in enumerate(fhandle): if line.startswith('MODEL'): if model_open: emsg = 'ERROR!! MODEL record found before ENDMDL at line \'{}\'\n' sys.stderr.write(emsg.format(lineno)) return 1 model_open = True model_no = int(line[10:14]) model_data[model_no] = set() elif line.startswith('ENDMDL'): if not model_open: emsg = 'ERROR!! ENDMDL record found before MODEL at line \'{}\'\n' sys.stderr.write(emsg.format(lineno)) return 1 model_open = False model_no = None # will fail to add lines if a new model is not open elif line.startswith(records): if not model_open: emsg = 'ERROR!! MODEL record missing before ATOM at line \'{}\'\n' sys.stderr.write(emsg.format(lineno)) return 1 atom_uid = line[6:27] model_data[model_no].add(atom_uid) else: if model_open: # Missing last ENDMDL emsg = 'ERROR!! ENDMDL record missing at line \'{}\'\n' sys.stderr.write(emsg.format(lineno)) return 1 # Verify all models have the same atoms bad_ensemble = False model_no_list = list(model_data.keys()) for model_i, model_j in itertools.combinations(model_no_list, 2): atoms_i = model_data[model_i] atoms_j = model_data[model_j] difference_ij = atoms_i - atoms_j difference_ji = atoms_j - atoms_i if difference_ij or difference_ji: bad_ensemble = True msg = 'Models {} and {} differ:\n' sys.stderr.write(msg.format(model_i, model_j)) if len(difference_ij): d_ij = sorted(difference_ij) msg = 'Atoms in model {} only:\n' sys.stderr.write(msg.format(model_i)) sys.stderr.write('\n'.join(d_ij)) if len(difference_ji): d_ji = sorted(difference_ji) msg = 'Atoms in model {} only:\n' sys.stderr.write(msg.format(model_j)) sys.stderr.write('\n'.join(d_ji)) if not bad_ensemble: n_models = len(model_data) msg = 'Ensemble of {} models *seems* OK\n' sys.stdout.write(msg.format(n_models)) return 0 return 1 check_ensemble = run def main(): # Check Input pdbfh = check_input(sys.argv[1:]) # Do the job status_code = check_ensemble(pdbfh) pdbfh.close() sys.exit(status_code) if __name__ == '__main__': main() pdb-tools-2.7.0/pdbtools/pdb_delchain.py000066400000000000000000000121211521210715700202150ustar00rootroot00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright 2018 João Pedro Rodrigues # # 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. """ Deletes all atoms matching specific chains in the PDB file. Usage: python pdb_delchain.py -