pax_global_header00006660000000000000000000000064144227116670014524gustar00rootroot0000000000000052 comment=4cf2f4f2c98bd69bf2ec3db5c6d48ff41bfe8eb4 kiwix-tools-3.5.0/000077500000000000000000000000001442271166700140225ustar00rootroot00000000000000kiwix-tools-3.5.0/.clang-format000066400000000000000000000005101442271166700163710ustar00rootroot00000000000000BasedOnStyle: Google BinPackArguments: false BinPackParameters: false BreakBeforeBinaryOperators: All BreakBeforeBraces: Linux DerivePointerAlignment: false SpacesInContainerLiterals: false Standard: Cpp11 AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false kiwix-tools-3.5.0/.github/000077500000000000000000000000001442271166700153625ustar00rootroot00000000000000kiwix-tools-3.5.0/.github/FUNDING.yml000066400000000000000000000012451442271166700172010ustar00rootroot00000000000000# These are supported funding model platforms github: kiwix # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username custom: # https://kiwix.org/support-us/ kiwix-tools-3.5.0/.github/move.yml000066400000000000000000000011411442271166700170500ustar00rootroot00000000000000# Configuration for Move Issues - https://github.com/dessant/move-issues # Delete the command comment when it contains no other content deleteCommand: true # Close the source issue after moving closeSourceIssue: true # Lock the source issue after moving lockSourceIssue: false # Mention issue and comment authors mentionAuthors: true # Preserve mentions in the issue content keepContentMentions: true # Move labels that also exist on the target repository moveLabels: true # Set custom aliases for targets # aliases: # r: repo # or: owner/repo # Repository to extend settings from # _extends: repokiwix-tools-3.5.0/.github/workflows/000077500000000000000000000000001442271166700174175ustar00rootroot00000000000000kiwix-tools-3.5.0/.github/workflows/ci.yml000066400000000000000000000043341442271166700205410ustar00rootroot00000000000000name: CI on: [push] jobs: Linux: strategy: fail-fast: false matrix: target: - native_static - native_dyn - win32_static - win32_dyn include: - target: native_static image_variant: bionic lib_postfix: '/x86_64-linux-gnu' - target: native_dyn image_variant: bionic lib_postfix: '/x86_64-linux-gnu' - target: win32_static image_variant: f35 lib_postfix: '64' - target: win32_dyn image_variant: f35 lib_postfix: '64' env: HOME: /home/runner runs-on: ubuntu-latest container: image: "ghcr.io/kiwix/kiwix-build_ci_${{matrix.image_variant}}:36" steps: - name: Extract branch name shell: bash run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" id: extract_branch - name: Checkout code shell: python run: | from subprocess import check_call from os import environ command = [ 'git', 'clone', 'https://github.com/${{github.repository}}', '--depth=1', '--branch', '${{steps.extract_branch.outputs.branch}}' ] check_call(command, cwd=environ['HOME']) - name: Install deps shell: bash run: | ARCHIVE_NAME=deps2_${OS_NAME}_${{matrix.target}}_kiwix-tools.tar.xz wget -O- http://tmp.kiwix.org/ci/${ARCHIVE_NAME} | tar -xJ -C /home/runner - name: Compile shell: bash run: | if [[ "${{matrix.target}}" =~ .*_static ]]; then MESON_OPTION="-Dstatic-linkage=true" else MESON_OPTION="" fi if [[ ! "${{matrix.target}}" =~ native_.* ]]; then MESON_OPTION="$MESON_OPTION --cross-file $HOME/BUILD_${{matrix.target}}/meson_cross_file.txt" fi cd $HOME/kiwix-tools meson . build ${MESON_OPTION} cd build ninja env: PKG_CONFIG_PATH: "/home/runner/BUILD_${{matrix.target}}/INSTALL/lib/pkgconfig:/home/runner/BUILD_${{matrix.target}}/INSTALL/lib${{matrix.lib_postfix}}/pkgconfig" CPPFLAGS: "-I/home/runner/BUILD_${{matrix.target}}/INSTALL/include" kiwix-tools-3.5.0/.github/workflows/docker.yml000066400000000000000000000035721442271166700214200ustar00rootroot00000000000000name: Docker on: workflow_dispatch: inputs: version: description: Specific version to build (overrides on-master and tag-pattern) required: false default: '' jobs: build-and-push-kiwix-tools: name: Deploy kiwix-tools Docker Image runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3.4.0 - name: build and publish kiwix-tools uses: openzim/docker-publish-action@v10 with: image-name: kiwix/kiwix-tools registries: ghcr.io credentials: | GHCRIO_USERNAME=${{ secrets.GHCR_USERNAME }} GHCRIO_TOKEN=${{ secrets.GHCR_TOKEN }} context: docker latest-on-tag: true build-args: VERSION={tag} platforms: | linux/amd64 linux/arm/v7 linux/arm64 restrict-to: kiwix/kiwix-tools manual-tag: ${{ github.event.inputs.version }} repo_description: auto repo_overview: Kiwix command line tools build-and-push-kiwix-serve: name: Deploy kiwix-serve Docker Image runs-on: ubuntu-22.04 needs: build-and-push-kiwix-tools steps: - uses: actions/checkout@v3.4.0 - name: build and publish kiwix-serve uses: openzim/docker-publish-action@v10 with: image-name: kiwix/kiwix-serve registries: ghcr.io credentials: | GHCRIO_USERNAME=${{ secrets.GHCR_USERNAME }} GHCRIO_TOKEN=${{ secrets.GHCR_TOKEN }} context: docker/server latest-on-tag: true build-args: VERSION={tag} platforms: | linux/amd64 linux/arm/v7 linux/arm64 restrict-to: kiwix/kiwix-tools manual-tag: ${{ github.event.inputs.version }} repo_description: auto repo_overview: Kiwix web-server kiwix-tools-3.5.0/.github/workflows/package.yml000066400000000000000000000047311442271166700215420ustar00rootroot00000000000000name: Packages on: [push, pull_request] jobs: build-deb: runs-on: ubuntu-latest strategy: fail-fast: false matrix: distro: - ubuntu-kinetic - ubuntu-jammy - ubuntu-focal steps: - uses: actions/checkout@v3 # Determine which PPA we should upload to - name: PPA id: ppa run: | if [[ $REF == refs/tags* ]] then echo "::set-output name=ppa::kiwixteam/release" else echo "::set-output name=ppa::kiwixteam/dev" fi env: REF: ${{ github.ref }} - uses: legoktm/gh-action-auto-dch@master with: fullname: Kiwix builder email: release+launchpad@kiwix.org distro: ${{ matrix.distro }} - uses: legoktm/gh-action-build-deb@ubuntu-jammy if: matrix.distro == 'ubuntu-jammy' name: Build package for ubuntu-jammy id: build-ubuntu-jammy with: args: --no-sign ppa: ${{ steps.ppa.outputs.ppa }} - uses: legoktm/gh-action-build-deb@ubuntu-kinetic if: matrix.distro == 'ubuntu-kinetic' name: Build package for ubuntu-kinetic id: build-ubuntu-kinetic with: args: --no-sign ppa: ${{ steps.ppa.outputs.ppa }} - uses: legoktm/gh-action-build-deb@ubuntu-focal if: matrix.distro == 'ubuntu-focal' name: Build package for ubuntu-focal id: build-ubuntu-focal with: args: --no-sign ppa: ${{ steps.ppa.outputs.ppa }} - uses: actions/upload-artifact@v3 with: name: Packages for ${{ matrix.distro }} path: output - uses: legoktm/gh-action-dput@master name: Upload dev package # Only upload on pushes to git default branch if: github.event_name == 'push' && github.event.ref == 'refs/heads/main' && startswith(matrix.distro, 'ubuntu-') with: gpg_key: ${{ secrets.LAUNCHPAD_GPG }} repository: ppa:kiwixteam/dev packages: output/*_source.changes - uses: legoktm/gh-action-dput@master name: Upload release package # Only upload on pushes to master or tag if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') && startswith(matrix.distro, 'ubuntu-') with: gpg_key: ${{ secrets.LAUNCHPAD_GPG }} repository: ppa:kiwixteam/release packages: output/*_source.changes kiwix-tools-3.5.0/AUTHORS000066400000000000000000000010461442271166700150730ustar00rootroot00000000000000Emmanuel Engelhart Renaud Gaudin Christian Pühringer Fabien Coullon Guillaume Duhamel Wilfredo Rodriguez Jorge Gonzalez Richzendy Ayoub Dardory Rashiq Ahmad Isaac Hutt Elad Keyshawn Matthieu Gautier Translatewiki comunity https://translatewiki.net/wiki/Translating:Kiwix kiwix-tools-3.5.0/COPYING000066400000000000000000001043741442271166700150660ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . kiwix-tools-3.5.0/Changelog000066400000000000000000000176061442271166700156460ustar00rootroot00000000000000kiwix-tools 3.5.0 ================= * Do not use `--static` option when compiling on MacOs (@mgautierfr #615) * Move main branch from `master` to `main`. * Fix docker image (@jacroe #597) * Various CI improvements (@kelson42) kiwix-serve ----------- * Add documentation about the kiwix-serve API (@veloman-yunkan #586) https://kiwix-tools.readthedocs.io/en/latest/kiwix-serve.html#http-api kiwix-tools 3.4.0 ================= * Remove last reference to kiwix-read tool (@legoktm #569) kiwix-serve ----------- * Fix broken indentation in usage (@kelson42 #560) * Exit if wrong arguments are passed (@kelson42 #567) * Do not allow multiple values for same option (@juuz0 #564) * Fix default location of "rootLocation" (@rgaudin #571) * [DOCKER] Change default port to 8080 (@neyder #581) * [DOCKER] Simplify dockerfile (@rgaudin #582) kiwix-manage ------------ * Fix man page (@kelson42 #576) kiwix-tools 3.3.0 ================= * Remove kiwix-read tool (@veloman-yunkan #535) kiwix-serve ----------- * Add an option to limit the number of connections for a same IP (@juuz0 #534) * Add an option to limit the number of zim in a multizim fulltext search (@mgautierfr #558) kiwix-search ------------ * Remove usage of libkiwix's deprecated api (@veloman-yunkan #535) kiwix-manage ------------ * Correctly return a value !0 if something went wrong (@mgautierfr #553) kiwix-tools 3.2.0 ================= * Print the version of all dependencies (@kelson42 #516) * Better Docker images (@kelson42 @rgaudin) * Update Readme (@kelson42) * Build debian packages on CI (@legoktm #394) * Add man pages for kiwix-read and kiwix-search (@legoktm #392) * Various fixes (@legoktm @hashworks @mgautierfr) kiwix-serve ----------- * Print the url on which a user can connect to on startup (@juuz0 #499 #522) * Reload library on SIGHUP signal (@veloman-yunkan #497) * Add a option `--monitorLibrary` to monitor and automically reload the library (@veloman-yunkan #503) * Correct handling of SIGTERM and SIGINT (@veloman-yunkan #488) * Add `--customIndexTemplate` option (@manan #477) * Add `--help` option (@kelson42 #511) kiwix-tools 3.1.2 ================= * Use new threadsafe API of kiwix-lib to do suggestions search. kiwix-tools 3.1.1 ================= * Fix compilation on Windows' CI kiwix-tools 3.1.0 ================= * [SERVER] Add option to block external links kiwix-tools 3.0.3 ================= * [MANAGER] Fix broken --version argument parsing kiwix-tools 3.0.2 ================= * New option --version for all tools * Remove benchmark.sh file. * [DOCKER] Add ability to download a file at container start. * [CI] Move to github actions instead of travis. * [SERVER] Trust the given library by default. * [SERVER] Add shortcut alias for option `--address` and `--nodatealias` kiwix-tools 3.0.1 ================= * Fix --nodatealiases inverted logic regression kiwix-tools 3.0.0 ================= * Move kiwix-serve implementation in kiwix-lib. kiwix-tools 2.1.0 ================= * Fix few compilation errors. kiwix-serve ----------- * Use new api to filter the library. * Mobile friendly top bar. * Add notag parameter to be able to exclude tags from the zim search. kiwix-tools 2.0.0 ================= kiwix-manage ----------- * Better usage() * Adding multiple files bug fix * Remove download command. kiwix-serve ----------- * Better usage() * Display properly welcome page on 3 columns * New welcome page footer "Powered by Kiwix" kiwix-tools 1.2.1 ================= kiwix-serve ----------- * Always use POLL when avaible. kiwix-tools 1.2.0 ================= * Remove rpath for installed binaries. kiwix-serve ----------- * New Dockerfile of kiwix-serve * New --nodatealiases option * Do not use POLL on windows kiwix-manage ------------ * Do not show all books if book ids has been provided. * Be able to add several zim files in the same time in a library. kiwix-tools 1.1.0 ================= kiwix-serve ----------- * Fix bug about handling of absolute url in old zim file. * All the catalog to be searched by tags. kiwix-tools 1.0.0 ================= * [CI] Use the new deps archive xz * Move version 1.0.0. There is no need to stay in pre 1.0 version. kiwix-serve ----------- * Correctly implement redirection. kiwix-serve now return a 302 http status code instead of resolving the redirection internally and return the content. kiwix-tools 0.9.0 ================= * Update README * Update man pages * Remove support of external indexes (manage, search, serve) * Update build system as we don't use ctpp2 anymore * Update to last kiwix-lib API. kiwix-manage ------------ * Update usage. kiwix-tools 0.8.0 ================= kiwix-manage ------------ * Be able to remove several books from the library in one command. kiwix-tools 0.7.0 ================= * Adapt to kiwix-lib new API kiwix-serve ----------- * Dumps only valid books in the opdsfeed. * Allow the opds feed to be filtered by lang and paginated. kiwix-manage ------------ * Add a download command to download a remote book locally * Book are referenced by bookId not index. * No more indexType option as it is always XAPIAN. kiwix-tools 0.6.1 ================= kiwix-serve ----------- * Update README. * Fix crash when `--library` flag is provided without value. * Correctly handle mimetype of file without extension on 64bits. * Minor fixes kiwix-tools 0.6.0 ================= * remove kiwix-install tool. kiwix-serve ----------- * Improved taskbar #160 * Fix global page when using the option `--nosearchbar` * Return 404 for missing resources * Fix compilation for gcc 4.8. kiwix-manage ------------ * Returns proper exit code (not always 0) kiwix-tools 0.5.0 ================= * Build kiwix-tools setting the RPATH * Compile without warning. kiwix-serve ------------ * Serve metadata information using the "/meta" url. * Serve an OPDS stream of all zim handled by kiwix-serve All informations cannot be infer from the zim file itself, you should use a library.xml to provide needed information (url, ...) * Update kiwix-serve to use the new API of kiwix-lib kiwix-tools 0.4.0 ================= * Use gcc-5 on travis. kiwix-serve ----------- * Accept zim file with `&` in the name * Do not cache (on client side) global search (as it can depends on the zim files handled) * Fix HTTP byte range handling. (#91) * Fix opening of relative path (#70) * Add a small (and hidden) API to do geo search. * Better request parsing. (#91) * Better handling of invalid request (#116) * Various bug fixes (#146, #150, #153, #165, #168, #165) kiwix-search ------------ * Add an option `--suggestion` to do suggestion search with kiwix-search.(#132) kiwix-tools 0.3.0 ================= * Move to C++11 kiwix-serve ----------- * Add a global taskbar in the welcome page to search in all zims (#49) * Serve the taskbar as css file instead of including it in the html (#68): * Better client caching * The html encoding is now in the first 1024 bytes and firefox correctly detect the encoding * Make kiwix-server multi-threaded (#82) * Correctly return 404 instead of crashing when request inexistant skin file (#83) * Correctly respond to bytes-range requests.(#84) * Directly respond to first request for a url instead of refusing the first connexion * Add support to relative url location. (#86) * Remove caching (on client side) for the welcome page. (#86) kiwix-tools 0.2.0 ================= * Remove indexer tools kiwix-serve ----------- * Correctly fix the deflate data we send over http. (#15) * Update in the taskbar (or topbar): * Taskbar is responsive (github.com/kiwix/kiwix/issues/336) * Force css rules for the taskbar (and not be impacted by content's css) * Add `--nolibrarybutton` to hide the library button from the taskbar. * Rewrite of the welcome page. kiwix-installer --------------- * Remove indexing functionnality kiwix-tools-3.5.0/README.md000066400000000000000000000127301442271166700153040ustar00rootroot00000000000000Kiwix tools =========== The Kiwix tools is a collection of [Kiwix](https://kiwix.org) related command line tools: * kiwix-manage: Manage XML based library of ZIM files * kiwix-search: Fulltext search in ZIM files * kiwix-serve: HTTP daemon serving ZIM files [![latest release](https://img.shields.io/github/v/tag/kiwix/kiwix-tools?label=latest%20release&sort=semver)](https://download.kiwix.org/release/kiwix-tools/) [![Repositories](https://img.shields.io/repology/repositories/kiwix-tools?label=repositories)](https://github.com/kiwix/kiwix-tools/wiki/Repology) [![Docker](https://ghcr-badge.deta.dev/kiwix/kiwix-tools/latest_tag?label=docker)](https://ghcr.io/kiwix/kiwix-tools) [![Docker](https://ghcr-badge.deta.dev/kiwix/kiwix-tools/latest_tag?label=docker%20(kiwix-serve))](https://ghcr.io/kiwix/kiwix-tools) [![Sandstorm](https://img.shields.io/badge/Sandstorm-kiwix-blue)](https://apps.sandstorm.io/app/5uh349d0kky2zp5whrh2znahn27gwha876xze3864n0fu9e5220h) [![Build Status](https://github.com/kiwix/kiwix-tools/workflows/CI/badge.svg?query=branch%3Amain)](https://github.com/kiwix/kiwix-tools/actions?query=branch%3Amain) [![Doc](https://readthedocs.org/projects/kiwix-tools/badge/?style=flat)](https://kiwix-tools.readthedocs.org/en/latest/?badge=latest) [![CodeFactor](https://www.codefactor.io/repository/github/kiwix/kiwix-tools/badge)](https://www.codefactor.io/repository/github/kiwix/kiwix-tools) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) Disclaimer ---------- This document assumes you have a little knowledge about software compilation. If you experience difficulties with the dependencies or with the Kiwix tools compilation itself, we recommend to have a look to [kiwix-build](https://github.com/kiwix/kiwix-build). Preamble -------- Although the Kiwix tools can be compiled/cross-compiled on/for many sytems, the following documentation explains how to do it on POSIX ones. It is primarly thought for GNU/Linux systems and has been tested on recent releases of [Debian](https://debian.org)/[Ubuntu](https://ubuntu.com) and [Fedora](https://getfedora.org). Dependencies ------------ The Kiwix tools rely on a few third party software libraries. They are prerequisites to the Kiwix tools compilation. Therefore, following libraries need to be available: * [libkiwix](https://github.com/kiwix/libkiwix) (package `libkiwix` on Debian/Ubuntu) * [libzim](https://github.com/openzim/libzim) (package `libzim` on Debian/Ubuntu) These dependencies may or may not be packaged by your operating system. They may also be packaged but only in an older version. They may be also packaged but without providing a static version. The compilation script will tell you if one of them is missing or too old. In the worse case, you will have to download and compile bleeding edge version by hand. If you want to install these dependencies locally, then use the kiwix-tools directory as install prefix. If you want to compile Kiwix tools statically, the dependencies should be compiled statically (provide a `lib...a` library), for example by using `--enable-static` with `./configure`. Environment ------------- The Kiwix tools build using [Meson](http://mesonbuild.com/) version 0.43 or higher. Meson relies itself on Ninja, pkg-config and few other compilation tools. Install them first: * [Meson](http://mesonbuild.com/) * [Ninja](https://ninja-build.org/) * [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/) These tools should be packaged if you use a cutting edge operating system. If not, have a look to the [Troubleshooting](#Troubleshooting) section. Compilation ----------- Once all dependencies are installed, you can compile Kiwix tools with: ```bash meson . build ninja -C build ``` By default, it will compile dynamic linked libraries. If you want statically linked libraries, you can add `-Dstatic-linkage=true` option to the Meson command. Depending of you system, `ninja` may be called `ninja-build`. Installation ------------ If you want to install the Kiwix tools, here we go: ```bash ninja -C build install ``` You might need to run the command as `root` (or using `sudo`), depending where you want to install the Kiwix tools. After the installation succeeded, you may need to run ldconfig (as `root`). Uninstallation ------------ If you want to uninstall the Kiwix tools: ```bash ninja -C build uninstall ``` Like for the installation, you might need to run the command as `root` (or using `sudo`). Docker ------ An official Docker image of the Kiwix tools can be found on [GHCR](https://ghcr.io/kiwix/kiwix-tools). A `kiwix-serve` dedicated Docker image [exists too](https://ghcr.io/kiwix/kiwix-serve). Troubleshooting --------------- If you need to install Meson "manually": ```bash virtualenv -p python3 ./ # Create virtualenv source bin/activate # Activate the virtualenv pip3 install meson # Install Meson hash -r # Refresh bash paths ``` If you need to install Ninja "manually": ```bash git clone git://github.com/ninja-build/ninja.git cd ninja git checkout release ./configure.py --bootstrap mkdir ../bin cp ninja ../bin cd .. ``` If the compilation still fails, you might need to get a more recent version of a dependency than the one packaged by your Linux distribution. Try then with a source tarball distributed by the problematic upstream project or even directly from the source code repository. License ------- [GPLv3](https://www.gnu.org/licenses/gpl-3.0) or later, see [COPYING](COPYING) for more details. kiwix-tools-3.5.0/debian/000077500000000000000000000000001442271166700152445ustar00rootroot00000000000000kiwix-tools-3.5.0/debian/changelog000066400000000000000000000002111442271166700171100ustar00rootroot00000000000000kiwix-tools (0.0.0) unstable; urgency=medium * Initial release -- Kunal Mehta Mon, 13 Jul 2020 17:21:11 -0700 kiwix-tools-3.5.0/debian/control000066400000000000000000000016211442271166700166470ustar00rootroot00000000000000Source: kiwix-tools Section: utils Priority: optional Maintainer: Kiwix team Build-Depends: debhelper-compat (= 13), libkiwix-dev (>= 10.0.0~), libzim-dev (>= 7.2.0~), meson, pkg-config, Standards-Version: 4.5.0 Homepage: https://github.com/kiwix/kiwix-tools Rules-Requires-Root: no Package: kiwix-tools Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Description: collection of Kiwix tools kiwix-tools is a collection of various command-line tools used to help users interact with and manage ZIM files. It includes: * kiwix-serve is a standalone HTTP server for serving ZIM files over the network. * kiwix-manage allows one to manage the content of the Kiwix library (an XML file listing available ZIM files). * kiwix-search allows one to find articles in a ZIM file using fulltext search patterns. kiwix-tools-3.5.0/debian/copyright000066400000000000000000000000441442271166700171750ustar00rootroot00000000000000See COPYING in the repository root. kiwix-tools-3.5.0/debian/rules000077500000000000000000000001161442271166700163220ustar00rootroot00000000000000#!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ kiwix-tools-3.5.0/debian/source/000077500000000000000000000000001442271166700165445ustar00rootroot00000000000000kiwix-tools-3.5.0/debian/source/format000066400000000000000000000000151442271166700177530ustar00rootroot000000000000003.0 (native) kiwix-tools-3.5.0/docker/000077500000000000000000000000001442271166700152715ustar00rootroot00000000000000kiwix-tools-3.5.0/docker/Dockerfile000066400000000000000000000015241442271166700172650ustar00rootroot00000000000000FROM alpine:3.16 LABEL org.opencontainers.image.source https://github.com/openzim/kiwix-tools ARG VERSION RUN apk --no-cache add dumb-init curl && \ ARCH=$(cat /etc/apk/arch) && \ if [ "$ARCH" = "x86" ]; then ARCH="i586"; \ elif [ "$ARCH" = "aarch64" ]; then ARCH="armhf"; \ elif [ "$ARCH" = "armv7" ]; then ARCH="armhf"; fi && \ # download requested kiwix-tools version url="http://mirror.download.kiwix.org/release/kiwix-tools/kiwix-tools_linux-$ARCH-$VERSION.tar.gz" && \ echo "URL: $url" && \ curl -k -L $url | tar -xz -C /usr/local/bin/ --strip-components 1 && \ # only needed in dockerfile apk del curl # expose kiwix-serve default port EXPOSE 80 ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["/bin/sh", "-c", "echo 'Welcome to kiwix-tools! The following binaries are available:' && ls /usr/local/bin/"] kiwix-tools-3.5.0/docker/README.md000066400000000000000000000021341442271166700165500ustar00rootroot00000000000000Kiwix-tools Docker image === - Available on [ghcr.io](https://ghcr.io/kiwix/kiwix-tools). - multi-arch (`linux/amd64`, `linux/arm64`, `linux/arm/v7`) - based on official `kiwix-tools` binaries. ## Usage ``` sh $ docker run -it ghcr.io/kiwix/kiwix-tools:3.1.2 Welcome to kiwix-tools! The following binaries are available: kiwix-manage kiwix-search kiwix-serve ``` `kiwix-tools` operates on zim files. You shall mount a volume to access the files. ```sh docker run -v $(pwd):/data -it ghcr.io/kiwix/kiwix-tools kiwix-search /data/wikipedia_fr_test.zim "Mali" ``` ## Building and reusing - `kiwix/kiwix-tools` is multi-arch and is ideally built using `buildx`. - requires a `--build-arg VERSION=` with the kiwix-tools release. - can be built using `docker build` in which case it expects an additionnal `--build-arg ARCH=arm` for arm. Otherwise defaults to `amd64`. **Notes:** - `wget` in `alpine:3` on `arm/v7` (__inside github action only__) crashes when downloading from HTTPs locations. Keep http-only in Dockerfile. - Was also unhappy when using the mirrors so it's using `mirror.download` on purpose. kiwix-tools-3.5.0/docker/server/000077500000000000000000000000001442271166700165775ustar00rootroot00000000000000kiwix-tools-3.5.0/docker/server/Dockerfile000066400000000000000000000005401442271166700205700ustar00rootroot00000000000000ARG VERSION=latest # kiwix-tools is multi-arch FROM ghcr.io/kiwix/kiwix-tools:$VERSION LABEL org.opencontainers.image.source https://github.com/openzim/kiwix-tools # expose kiwix-serve default port and workdir EXPOSE 8080 VOLUME /data WORKDIR /data COPY ./start.sh /usr/local/bin/ ENTRYPOINT ["/usr/bin/dumb-init", "--", "/usr/local/bin/start.sh"] kiwix-tools-3.5.0/docker/server/README.md000066400000000000000000000025461442271166700200650ustar00rootroot00000000000000Kiwix serve Docker image ======================== With local ZIM file(s) ---------------------- * Download a ZIM file from * Given `wikipedia.zim` and `wiktionary.zim` reside in `/tmp/zim/`, execute the following: ```bash docker run -v /tmp/zim:/data -p 8080:8080 ghcr.io/kiwix/kiwix-serve wikipedia.zim wiktionary.zim ``` With remote ZIM file -------------------- ```bash docker run -e "DOWNLOAD=https://download.kiwix.org/zim/wikipedia_bm_all.zim" -p 8080:8080 ghcr.io/kiwix/kiwix-serve ``` Change default port ------------------- You can change port to expose with environment variable PORT, useful if running on Podman, K8s or OpenShift ```bash podman run -e "DOWNLOAD=https://download.kiwix.org/zim/wikipedia_bm_all.zim" -e PORT=8888 -p 8080:8888 ghcr.io/kiwix/kiwix-serve ``` ARM --- Build an image for an ARM based GNU/Linux: ```bash docker build . -t ghcr.io/kiwix/kiwix-serve:latest --build-arg ARCH="arm32v7/" ``` You can also deploy kiwix with [`docker-compose`](https://docs.docker.com/compose/). Check out a sample at [docker-compose.yml.example](docker-compose.yml.example) Screenshots ----------- ![screenshot_1.png](https://github.com/kiwix/kiwix-tools/raw/master/docker/server/pictures/screenshot_1.png) ![screenshot_2.png](https://github.com/kiwix/kiwix-tools/raw/master/docker/server/pictures/screenshot_2.png) kiwix-tools-3.5.0/docker/server/docker-compose.yml.example000066400000000000000000000006401442271166700236660ustar00rootroot00000000000000version: '3.3' services: kiwix-serve: ports: - 8080:8080 image: kiwix/kiwix-serve # uncomment next 4 lines to use it with local zim file in /tmp/zim # volumes: # - /tmp/zim:/data # command: # - '*.zim' # uncomment next 2 lines to use it with remote zim file # environment: # - 'DOWNLOAD=https://download.kiwix.org/zim/wikipedia_bm_all.zim' kiwix-tools-3.5.0/docker/server/pictures/000077500000000000000000000000001442271166700204355ustar00rootroot00000000000000kiwix-tools-3.5.0/docker/server/pictures/screenshot_1.png000066400000000000000000005661231442271166700235550ustar00rootroot00000000000000PNG  IHDR+*$R\- pHYs+tIME"2byiTXtCommentCreated with GIMPd.e IDATxyxSםteɲ$/Wy r v )LO i' k20I&dJLoݒ)yvH ㄦ8i!@h]cŖ1eX\,Mm0s=9mmm   2)     z         hAdpK.|> t\ՊY L=Ν;zz x:!H88 A,\B ^xAAzpLE'gN"YX ȔG@ 8 f z  2A?9|3(*3f}eN7A@Ad|q;cL\JN!_O[`  SѤf.JQWϷpwKA TDpe1lw?@cs^4lc.!  C<$ ԐIYfBr)b6!  䀈Ӫj~ A=A4ji՘M  ȸ`K׀0]]"e3SM  ȸ@Yfѽ ^6w9[6!`6!܂F Dobk:|Ŕc4hzZ&z?V,#f -  S(/ArN\hU' 8 AMk>k|/b   ~W+}Aga!      BVs S ׫0@AG~~'׋Y Sؿnn.fֆ# SqEχY SNkZ1+@AA9,,AAA&ZeAAAAAAvga!  2y        y uuu   LիWCpj:e%J ]y>jcq ?h3~c?LEA@@A]" G_____hKL*pz].NS$IF5JDD J y jZeeC 1 SIN'˲Aa!šAD - Ð$C,ChC<+WD m& 4MS ">^/0(r@djjJ $$lm=_E]%$Ieeg1D 'I$OUIB#$fqHMM|+W硐(rKbD(]QQ"䶔>I #z (x|F-0)HKu VHCP"6@ (!Q" HTC98=+DV<0Ҷi:=np_%AnoPMoJD%"dʶQ%Bч@B?'PT  ((1Z4)3CAn{ G ((A"HPGA81#J|%">D V""9|SAFAFb#C@0C  ݻc AP"P"DЂ (6EAI,2tR _%(ēd MfҤ$hIY&UP"$F$IjooZ0 q,IZv%B3>D E" {c!2\℺y[of$ @(55 A(..SύS&cP[AMKKs\:3f-rbbիW$bPz{{eYiZrc qqq4M+J||>t^WE0c~@$>DY xӻ-o^J+ky@65|âr(`nr}8QuV>^N7(oD">֪zm Ct?-eۯ2{>S?T.3`4h7<0{׷ @Ȇr0(+$3zP< σ~{KDhc[VT)owM:fxWs3a)C[EJFc:$d<[˻P׶z]ɱW $4Zb=M6W_ƥ!e92\JfD77Wϙ-N[']@&! S(6>%%geA;&se#ƣ(FDqhi=,˻Eѽ2ǧ~lx5]q8Fr/}s cW/k,5 ~[vy$aL?^/0lg9*KP$QJi?,;i:>ntw>khm޽V_$IZ`YM #7F0A>,+U\Z:n$bTQ0?Zᱝ[?z8[1wT3rwsm67n#9J3%wK?yg~#{}vxފ'N@ߞUqK9ҳ4M2Ki^(0N )o^dar&(>0|xNQR/n /] |F(z].W\\j5O؈ ?'dl3,ȁ[z>ec~ mY{GQ/7Zz`lX].7az Qx$94r\.իII0zrNgZO<8 @8nϹ?>-1)OnZ Gܻ9+Zm<0 ٢]~r.HX8'6ŚJm˷<^\ՀhC']w?XI'?M+I칰yOnUfi7 wܽE s^z?. oX)w)ʴ`Pj/gaiy7 IO=>|ێZ8VYT6㵕9vu;/-?zͺW֡#dfC 5Ki T &"uz{T LtqjTĔR# oy_<7t 'aJW |ͿO G_oS,sպ]c[vf.Zcv-ګ].,`eY^ h4jZӵzeZhvkWP:l[Ww5WGSo+fkVC@'m]O$[Fms!ݴ/ uho/:VYgWE$$Imm\jufF0.ŹQ@eEQE1 x(f{1=cň JO 6@Wu+ʦ=}{ڶ5fg`m5c,{|*v{gOm}ivki"/nZf|ޏ?o~\B.!uyTGGs~R]'^ڶX}O?'rҴg;!) CSرmOciXkg3d|e$wp}$UitA;AEg,{!W {6a̳4K3jxO{nzhH>?9gȇmdZ]s;r[߬ԃ荦9n80oS>6ulf1ﶟX]bm9mAJ@hZe#]e'+$zdh472`A1CsKlyWGQ᎖zfY~ZeZu ʰ ɛGS17+GZ%{h]AO?o{zo0j;ͥ]4t= `K] a… Yh4fqϨ֖ߟVi%I($ x`zzzɘJic$Մ"Ak:_О?i&'R3syۏ-}S4;5d{'gN~Ok3vKm}ص4 2hHsiA$ ǞIzֿN/ew]H5<>5u,x+^pf=?jTZߟ4),YV}vkh$'ABhR93/H(7)0#׎R3^k#90?zA`giTFLM,5o/xc 2K|O[eUs.AQ rAALkinhfb16/-͖G =Aoz=*]H62ٰ@3hR 9 v\y}x }Elte16l AѤSEQŅ숢( 1OfL4^QCNUǍpMkX]w\Qd$E?nѧjaߊ4BrZi{3dnbu:ღmJ-sskX9BdFƍ$m9O9?ׯ)z9kX&,f2-^a-ANOrm,l뜥i`\Z!&GX2'-LO;!'ѥ|@s^r/O,{@4jMxhE(yo-rfd>z}7X,dsI;T@;')4ʩ7?i"2~9)ݶ?ڻv6C¬_'66Qs|hy>偼)v0Dmxr@JRt+hVTN1W֠߂aљ?gr9F"h@|xc&L9ƭ\hb\=cC}!=3K)RTː[yHd4y^N_s *H0|r\\yRRRf̸+^'HBRi4JEdYwBBZEKxm%bT IĮ1QVYmAJ jn0=8wBG#IÀT̐4 RNUCR} lA7|zC'PN\ӴYHNC=O9e!11C'L/ԻkO˛o̿(X0OVͨ1X(FG/7`3ftsz RKwPUߏn>I$_ESLZ޾ˠҼ܌E]^nXi4tԏ,MF"iN5mգJ@؆P@/,ĕ}MԩE6r[cY>QE)O$IVI%A4'EQ$uԉ+*0fCDa;904y읏?2E;Ѽw9U >;>;eNGuslTY:-I1K0wIi3W群B@g[EʂD2k L +})6=@ko&=wۡ d=:&Yp/) ۽^q,+GJYڮ9 l6{mɼՋ v5g2-ʏ,sV{xʍ֡S.Cn Dr8 v_;8))}j4_8qdCw ϫT* HYY $IRR< t^8>;ZZw͘> BF(cq˼/q)ir Eh+xw9]v;Ԋʦ/KˉHZ|0z>f@VY{!է! IDATȘburkq\ p8s|Kggg!I$E $rEʼnrZ-QE ʱIr,KtWWgzFFkcy 3!ݗ* ߷`t4>^GA=%^>R a8;=lx W׏d8L)"=Gw-L1PA%}|)" posfƘ]㢷b=JXCDWbXA %W7մXHhe > /Y=  =ɠ>ÊៈCn#9<̮$<4¦^l䆭}\-6^솬f56Aw(x:OEͲ=s}ٳ;djmm;@0,//OOO$vXXjâ|˯39&C|懬|S K(\MVRq=C=0&RV厷^z?uo.CӧO_xq|?P[[{oAΎcAyAY]&rvIXd$Ies{ul{>:BJ=P<:w0K?Ӣ3+iNުّ}%sDZ+sEz[ۏ~ۺ,;w6'ǚeg۸)XwBڮ,/xl:cׯg,-x8 WA4dZGHߝܝ`Jkw0~Q"CI/Y+};M;4VRko~LA抈LDƾrƣGne5Zɧ=MoeS2^{0D y g϶lgϞE D_UUc⚛?t:^ojjjSSOӻkٲeΝ裏4͊+L&Ӈ~vw*ݍh4 jڏ>K3)Y0+[wlZȬX2`׳䊟&F> -O)G{Zv]}/O985jj_ȡc;R..!ުpnu@$ DIR&a^*"M2@AZ.###33#55`0JRT*USYrbJJ hShVDeI t /_6M,vvvMD,z\8<oy`<Sks{?e pփg@{y=6vhQ3-߲iiUT1gѡgjcvx1Lh'^7O~Tƪ â29BJ0+AcNd^)>3wױ'V9O-5IjτӴԅ6٦O93cήqH\.x,Y'HTw)K_Y{YL%\!HRiOR@3[$eAƂ{/D)Tmd!O_Sެ=^fo!8D _\\\[[p8dYX,qbbbKKlܸ;|7D^"˲qݛ7o6mO>}咒_}ӦMǏRͳfڸq޽;''k׮e93bedV`0Cs-G5vկ6nܸf/{IIIf$">L9v&K^ErݦD6N (Ǔ{_݋/z2QYE1$$$@QS9KAa$q?nmm333Y|~?|@  ~04 Ǐ訫6m˲$M>t^|bL@ i8=2eeY'IP* d HΟ?x"A ChV9>_ ,ˑ$q$IR4%ȒhmILJ) 1H|rtwT} pg|y^Wwkl?M]2/CZ̊{%VDV}\\\WWWvv6>̙3mۖxfΜy$-K}}^OJJtRAA˲֭;~x }k-zZm__nwݫWVT~EQl.kΝW S$<$jZ9Pe$?SA,XpTաV=z<< q,AA%Q(a- %)_Rny DggH)Op7Dۯހ!@ @ r"ϠՔ,֛S*q~݇A"QM}xw]?t `:PT,s@d4,EDP(  NYJ_&I Pi4j@׫*j2!s1Y*{m ]*6%˲27 %AF(ApVMOOeYR1 C?NHHwܹssr>J$u(){N(y ,I$ qϞ9ʕcI$]M:>@YXJ6Fd$. ^A @4g9{R%="!JAK_3p3C2;D 4/}5C[$QiQeYVJ,I0+%IE1dhki$⺰,4M+s34͸$>"%>>a2D1//OV jJ;OÇju.99FD y"$)ɒ2sλ^I,+"MLDьKSdJ14cB _ /m~=!<|ON-IJ:RG$˒LA[ҥ .<]]]>S Q__gΜ9|mm8MN< ---L{W -pGdRA8$ʪnQ5MqqqNvvEEł s dAdYyIhbuٳ5{RuRdIE =0F>!ϙTFAfEdt]-O`]=~}2yFҼ^Oc!` P Y!}te<OGG>c AQlVLiӦy<`0(Ixg}6|YSRR>Vk6eʔÇ{`;99yG$)F}C) Y9# JE bBBBܹ4EH)H8ZE$K(񼐖١CNgw5h4I$˒(_[[k$I8.55'''Fc{{\xqcc/xC+Rbl? z 4M9s$;S$ ("I$ 6T*A5:Y%I $ŋtJwV"/dYAD^Q"lNSJco6 '62 HTq(,I I K pO1#w3i2nL;1͋يqaABno88NY,Ve333 ///77OnX --v?>'''...---77a{ٳgjh$Ifeei4k)))7>1Z} E/^x)dY&@VxgYiYv$I4M|>+ɲ$I0⹢ (q,^Yƥ{eT IAq OM8ֶ頍Pp IՃ1-WKZ@>*l%F,HU.K$c4g̘q% N>}q DZcΞ={ᔔy?~e٤$0̾}8ydWWWgg2yWv(J9> n3g0d AD%5))r{ ,`0 V|}-m˲,KL4ѨhyCc99*Jdc^P6x9%Et|Aq "q2 N4S_S[!)E֒tYmF3NYmmmfիW^+͛Rf̘QXXXXXȲlQQQbbZNLL8.;;tٲeEEEΝq2 c6g̘!bRRJi{Ͽ{fΜId0\h˲x!L9$.Nw%52H|vN絑Q$xe=IDQ$HBYXE9A}>P\\L7@@hqċvumM,P͖ʪI67֟ΐ* }} 6Fj>]Vd3 f^Rz}4LUG ID6/4z_'_Ub flcWCfCIep&` V֯ʯܾnfPYm6?5ٺɍU;[ni ȇڽnm]ɖal5rTu]yyy$I{VXq-Tj~d6YXNp KliӦ͞=;!!{QP"W׿SXX8O4qpEaeg  g`0?TVvDxP&ĢOXd.h EQ&kv6EEQ$Eb@ xdYdIĀ?@! < s$KYii~JA蛾oWWܼ;j݆XnnnrVysQe"rC'*mtWcc>:w7l,ϟG_S&2!F&Y jšH}ڽlguXVWT3.X¬پiKr!du]u a4@yK(`ѷh AjJRI(I$JU$Z,K }%33iQAEDA$>\WW;AIbbrjOMM]=_M0#' :]|U(}Сo- UU?_rz'_ bFk`q  -EgGvU{rzyCK֖[Fu3G났Zb~⥗2Xi^DS6nb阄^Sݰ&fK70 h(qMӃ6Q:;'l4VEc--_dR/ك5 XQ rkU]]j4}EXiNBz5'(Nx 8 ($"!PT\hPhI9$(߯RѢ s))'>^,Gtiɂ1 dh۷f۟^lfUMצZxڶ|=.`0 E/:9Pzj6EeO+Qmٺvj6,y \[~n3 fۀJ<[jQK6Xd=kV`0W0)y`Cp^_f֢U[j]lzUֆyd&9CT7U)SV[]1djeM5VWX }f6ZS 8%7:&76ʄCkՖjm+q1Ӱk tZlh:H\X3H_Ba+e60)VFelQYd>ld`%^~w*E{C\tiΝӟ.c>ckkk{{{?C8qԩS~! g}O]q}6 ZFJ*t%vP{4K4(cE!wPj.zkBeuɎMY2q`n\W=sMOj׮VoZfN8qzLpzŋ/8p^Ŗ#G9rŋN---ϟ?w_򗆆'WY:`O08REc}jC:@WCm8nhiPz'Ժ E%*˖otQ%FK+:Mք  IDATk;hXƎl5V Ab5d iR[[[~rslwMl`Kvvy6m-oWXJKWw4-_wK6l]WKiiZ,]7p/RCJ(C9+J`mUuWUbMĄ1 ]/iHxK΃w־]n%榚xto {2F8j(Zr#\EoR c7ja`8b zqMe?(90f[qI٪u*fCj0[7.pOF~ ,Y3"2r`ڈXhp:Ip.HbC;j_Y UN몊v$ )J*ƿDӐ_JIE3D(1h2v4:ֵX#TjCi%ګ퍡VAhkkkooW{_9 ;vh4Νs\(:{L+Wݻ͕$iΝw+ poۢ(wcYv…NR+O0TTGYfMG4}ntWdaU%CFZci~Q>͖bEc[bwW5Ai~WCOk"/ͮj;\Slk;mA:_Znb^cL"LHMM ?f4&I BVaCBRA8 /"^0sfH"#4YK۩9 Ns]5 LQEY//҄>%E:}C%vl6,w8͎.:XKeNTU7[FHf78vzM;b ʀ}yI3Lk#eTdꚙP,/uvtfT{+O?tuHuIcT x+y GP$Qy6إCSRQfvTW*# ֲ۫ 1{y*56OIB˽iTGggl䇍t˗r{*Ǭ!B\\ܒ%KxtN/##a@ z5$ɼ;SСC~ի*v'%%Quav.F8o5a:C]]b  [܆`9>vk ф%Fhon,1[ Lx-^x==W{z<JT˕ŋ$q/pe[3ﶧ@j2sr&0+Z2Ppu5n .yckVxn `M %;*v0M~ Օ70^1(lUuΰ 4VCt?h,{eɚ2뎭͎ Ԍ<5IĜKW}i ~CkcHc7 o =Rӗr3c;|RXPwׂ||*3^~I'n#+  m,2?&?%6ӱnz:n7h,1c2zJebsE1dw$)ǃvNJ_z5A g[USPwo:~}޺Y%l``섋O1䫙 L iiy$)'i0 !0'$)0  2lْ-ڷǶo`~m-m] JJJL Ǔ?cR **O]g.ʗceO*4?gYݦ6|XVFuӁ1} {gĝ0]JV1:::;&si7RM&ZA+(*u$dsѨF{#^aix ̋CIIy/ &X/b;=]q?q`dbb?舘ƑЎJbbaJ:`qݷU* ~bGûi?E=Y~;Ms.ЙLa)Q/LĨaZArIR0޶s䈸$1 ?d=*]݇ޖ!{-_/<_2؁)Y8ޖ_rW4 1nD>kXU~l8N+tp5=q;i} Ȱp#A.n0`}D6!"_ 7Q.O"}h Ν%6ǩWuY:xFtFoU)wjUFev̹s -xZ (]-X@A?6ӮÝؠzUUUvWmضɓ'߳GAh-xp*/׾í [شjGO<+lu̩7a]1#Um{=YqM8%)bPC{^_V7x2X'* )xUp~ɓ}m{3C<ء~[JlGv?p] ᙢn'6syk_st29M[V)z*=0.]$nt]Y{ض*6-[a۞GJ޷ F[euu DH6=_můLʏ˃Myɣ;_KMa… }Y]8|n?|yyyDΝ%p8{&j>P)wǦlu_~qg*g)ش3r2Jɵ 7c7j@MwѦ ]G_{ c)]Q*z.--bIə6ed^T*'w<#@d-G̲c!G'|@_oGl+kAg/^LPmy+˲^S[[噾x?zʖn)hի ~עX~_|p@g-mQ9bIqٶ>YA&w-:9쉊}B̏< lzյ6xzC8/i;ci6l):@ȼn~ߦM}♷?5@`ի**%%%==h4tvvƸb 8Ny~ZZZb%ǹ\tg j^е85W  {ta ;Ԑ'~ "mԩvd Ɔs}'jJ9}j$y䑿/Jeɓ'ܿ?0iiiiiiJsssyyyGGGJJBx'{˗WVV4֮]O:[Hy]]R$I#"er&RĠ`Zf45^wޙ4iҷ7|s߾o655=3 ΔNO?ƍ/0!!E'cf݀@ 5oR?nˆ& 3ðzD'_=hy;k٦ 1^8N~a%It'Npiiiǽ^VE<8_xի h4,l00 j^W$a`)"FHP*+Wܷoɓ|O?,33󫯾z=-''e@ W_efft*^o2FcEEEJJ A3f̨Rz}NNNmmmCC<`2mhhx[Nh4秤={$Ih0APmmm))) dddh4a͛'Ijmnn&Ir֬Y]]]j(9gBx'u:ݍ7Js\yyy)))#ٳgtҒ%KoXn7qKKKg͚u1yM3f9r'0͇zꩧv/~eee$uww\g}v߾}ZСCK,ӧWUU呢 ubk v) f(ޚ{0dUb|1cƌ3f?O6-Fɢ>t>tY@ @T>ǎ[tl>wܔ)SrssJNJ2%%ʕ+ Iu:FQT8jV0L}}jT G lW( WǛi^rw󝎎Ob=3GD?k^&Mc$7d_iL#;@ bĈ3eʔ|4o޼iӦy8)IRkkk{{+W]rʖryh( ?o{?`_AY,Q"$NVpb{H (@1=O) | D\X$Ib{1 HĽ@4E4ԠR14:;; 0^aaj^~zjjZnii4iRKK^gl6L.!W)Sazhq5L4Mggg455=QA!ȊF zp|{@]@]]]r2$~⤽cP-ֹ%+#W9YژUP4G?U. 4o:Ji3.{4*vkkjsqT~׽h ;Y@謶Fx\C i 4;=l}C-1^!6Y-/Ҭ#CHz@ƈHxOz/4-_s_8{@-[ˏ84sNTbw@:%h,aڂGtΓ.Nl*@=w j#ٝ h+].A#+q3W6|r2NjqNBSUO] IDAT%eӀWyhdES,\慕C_ѻ cfM~2Ӗf>GeUsOͻ5>pjdZV`U4m .יvp @Ԭ ܪ~eB4sAep-"'،x?@!I|N ovZr:1[">h>LGV񹛫wiRg1i/>C> tLgɞGdD2OK d/Ho8?+ܲufp]u `3@ZP8| M6x^0]` 4|/NO,J//AAuB#K"z_?Y)"(ΊTw_{@up#Ig7?<*W<}vg}o} @v%O`E+{'_:t[0-x*jW t[ZZrx+JυY|0 c4-F[y&fYPjoW6p[t3W.cn[b5?[vw;N.rRcy'^ rWq >3@'n 9l:Yfe-X>urÉ mҋY<'G . Fyy::s6h'׬̉,>a2 mÐ+kͩbA}>3@Į Tׇ>:p5.ٸ|^*oz層le[A)MBx9 Iw.|6]8b>gjY6yeolhu}93{0R=G_|1|vwuT5 $B@t DN5 )\g㼒ۻ_sC@8Z^ Eet:s{ )4˺\eY.xdZxc<@jg  z=_n8[ gx0=3099Ǔ>0٦??t0dVc']9 t ?G={"?ĨW+5]}+tU0NH[InO~}zP蓩b3ުy7[:YYH,(~-#*a,gF b_=s\}VK JKs4kDԒ11^wtr1jVC6ϦA@E0z; +(ZhxUsš Y/Jɗ`yHre3,%"!ͥO=;~P]I:&,O=;r yZ4fՆ vVZg-(<#D u:^egP͝WR:V\nG d'uTYglNG?:1cT۪r]sy@кtۼe}~e7M%JDظ cٝMv+ژe+^Rқ]G?G֞= .}JH<3Gxj/U9.L95"zҽs~-xao @m,)oX# Hnw8ow<ϻ\t<ߋ̊@3!I$I  /T AE! ĽYX@m=GPGLTPB'1N tB'~0,o4@Ltb R@ E$8@ 1fDmȫ&!$R"1++ EQ$ N%1GN/P(DQud I˲!" 'F ׫C~@ el ? qA aX)@"@{"ɚ $,@ &r<G5Z{q|d Z Ľ ADQK"? Hl q_h_A; OMGQ-^ix~,baPE WzPߒ>؊퇁Ad?$tPyT.)D$$X@Db`Z qg 'c~$8i;5rYHVDu OG3HDUDl?|RdoGdp#wp ")"qE|%0,<A~7+C2R@ E$X-9V(VD~i%x0*<*ʏMΉpdR')"($ ]/TkPlzx A?$y6]/T?$<eY s7#9v9pO*ʣIGJ$햫mdyO~{!"lEʣcS>Z=O|[P4?PĠC6,VDos~ga l<9^Mpk~:*ʣC?G1fnr St T0EMa*"Gq/fm $:+uLxO0Q *ʣC(|~T/*Y?k$Š| EʣcV>[³懨-H 7*ʣ<*ʣ<*ʣ|Rc@@ bd)@ @ @ @ & $ pȠ<ʨ<*H}Osqʣw|JmC"@ GlJc!kooD" by$Z^ػʣ\]hV˲p{>tQyTn.^c`#dPE md;1c(]/T~wI^K(׸>?GQW 2eXI"3c+]/T#˼9?"BQ;^_E<χ&<!/FE @Du<*?J1 8 9/*n3D%A?$ItPyT)CA~~q̠=&z]R^Wq/"b `Y6yAP4T* 2pD|:B@ E$@XrȂ@ D~zV9 @BPWWUJR@ E E TDH䬯6M&S vYMII;*$)tr1LE`ڊ@("$i#f)#Zx@ E E H *"V?EQEI$7L\#ɓ'qIE_Jh( HVupʮHD B-#"R1Q!AC"x9h`89sb(gHpHV-GtW~Kb*eYA؊!$IbYVբ@L+7-̋#:$ ` b$I J8⭝A#`f6.]s'պEps&7MMYee4zw)א>Ľ J-~S1z00 0 p 1qL$ BA 6y{h%3Fd1BEsC_Nt"]o~  k ? ~ΖպfCH]_|RY~;72qޠ$I`8`l 9GGx0SDFPH4'̔ TP;(#z:rַ@Y6WꜷZF}YՓ{|ϥo/D^=R̔Oފ~y~g-n{}@fac[V@Eiۯ3r5O.~W\7Po ȵ7zkCn(ʼ~%r50; 8eĿ.]ܾh5N=_89;6ScU3KW|g!-1^0#jO͍.~'w;eEĸñ^[tZ{7jƯ"C^@DBߤȟ3wsYi*9@U PyxG k.J[?ͺy4+wϳZ\dVon?qb_|H +=8W 朮:F^d#;t.mS݆e"K+)_{9ǿ{PvT?K1:c5@- Es$vڻI*]7TCP(tl!(h&) L XBwӯ$~ad{>$$ K,[axL >캮O\rodC%Zvs W#ٷjƮ:^HXl5s kaxm?x^j*l]sc&'t Qjy\?ÜI~F`=0j >c;*OZitT ze;puj:tk?/A&z8g؇_*8rFDH1b}>na^|007F9߹OwENtLuBƚl(|w1-íVkpkDÌD },USoo?OhM"/G-Tq8YoLƻ5aHՆ6Fpk Po`2=[/]$T3|M]d[iz:ѣ 鄟՛JۧI`)%u*`] '(}?\/3M'@+H pP*A%SXo+ĀVEӣS1<\j beq5gf"GGGݍp?}{$X~uikKoT9uV/$] }!ԶtXcoE,rF Kݐn1/<Ժށtzgޛ^y]e 2^u8bӜRp:nJLHȉnpŔЉN6ݼ1T9 kғL.M;ˍ&HwVp2˟9a J JaH( w4H0H.if-cc\4.njνXD\4~R{CV7Ќ˙G^H}V@k"ñ _[ @Ak`g6;"ݸ_97㴔ye ^ Oj ^̀.$-M5+ih%a W4'$e0 pZ qW}5_sٴga XmZ+"`Jk(&(R>siӮ5V`~zNs7 w'/is7"A ] q8ZWEMCC?O;ӭ/E9M% u)V謱ul1<\ܯ]6$%&(O,iGn$p ݴtmӀ *|(eL3< j{G*E[wG@@٢a .D#I(&ZW^`@Lޮ5IS@$h5\|p%f$E3@$Ԣ k*vA_I=1ő10I<ga s r5A|bi<׊(=S5@b,\d~On5^;aCף@]ݹ>)m)8wYOWz]8]ssofg~}PqH+G~ݣ:zp$ix?/6sAI2` J"FQ$a@`XǦ(v@K$_7~\Z%W=~{; A+)3 8Y|Q8I]xC>"#9uL^FYͽ՞oQij4Skw%bO=ʼn|]ZH@낐f.SL}c6vios4/r-9쬽M"3Y0J̟̟VӮ]g,*&&1$I"q7kKhzb+Pw7w]^A~|!JRHNRK" %-@z f꤮P㯻hu_J}?M׵*Z{5x)]?EQJAR5 aEQ7P=HDP$hLPb 4UyK BoO"ՎKqǢ7?37,#.M]#f.h!nyښ&_Z,C>Aw3`g_vSAӒ9O[L yhWNro֕f2p:,/(7)xot 3Dqfd:zXHDI:Aq p' }]ً;{/0c⢰:6okNۺJ՞neJ.W#q@@@NV*^썀Eq05Z)v܍ϊZ R@c;驆15u?Ynȴ7DXmbחe`*+V׵ԭFTVȜk꽭$ bg 4SK4@ ZkAOD^6CȵitlHxC0# HaPD$)-C).yιWK']=$1Ww-Z9wD UI2R9QqB%M(T@"8tI\!$)qHz﬛+1*+4l͍78ϩV}%wHZHl.ͮv́ 橠u'[_oo׻EtQRЅ<.^כ rՕ~SCC*ʍW 8uU_ Kľq2NMNyST%ٚEdyQ lY)ySTi*$^XAĐ }'HݜDa}$uFK0HӎݭM[=뷋K՛k!=0 #TܠP))Y&Vc}|y ޮ cPʼZhfLY Q%-sq^O_?xs)寞\w+Uc]c#;7?8Yy;0yg4Q8m=<wl>yWEi͔jS9֚{sƀfu1`w=HKww;|<0)W[7>k-Nד{ub% "@ca 3(p^"ǻXY?QZJ҈ Ws:3 HN"0Ex $Fa I4"K\jQ O?^$c'WOd?.@,t_UVYWf57WzO@~y/]<š5 չu {U~{sb8 !m㹫^<򞊅5SLv_l=^F`rFEcMkUCuXh*-ڍO:;4e=w^?Wޢ/UX7sѰ!$6g%q A5hiE! XA1 0l 1C_\ܑ({E>|/$ckp]V57Zc+''N&Ѹq7&FCv >s$%^%p0;1E( â_'y:ݠ(E j\ Ttm@ٯ^Mjï.Q/3Kf\~ː΋|7Y%sF}~fu"3-to$+ W<} 1EYjVSzwxSkJ j<{?i3;ϲMф&< bՇ!DIFIY$񋂔+>7zp=' P5m77!QK"H0`T0IYɌP1?=LpŀECBզ{^9yoLˊq \~`=ri1PXZ/~~Hؓ6P?l IL61^=SMGśnh"bܸ1:s#5T?(us" |6{VY::C0 bH9 R+u s(s'1Ptvr8&.ra$.v%f QWgͭz12u;6𰹶OzGbթl/?M6'?r9J5ioL~ONII's"aV-eiR 8^nz'lRYč[ yvUp"\aZ\H#BǼLPM 6vK:) Xu^)0HF'{B $/BHX`Q>._0<t0&,>HuyP RN.f]]0$I$)N$86ȠݜwBܟ~yz}a/ Bﮯ:]]${$"(Cۃmt'NVq \q@x<ǰT )XK84s\' }xzB,z(φT r}=f/xC HI I+rT/Huu&(%P' F8^БBsHA2?sv>p4W^߼ձ&ty׉NȞ/9X#(p,$H7:Cd.&1j~D{%nN-8ۤ445PX2H+s?{G'|GwtC5!tGM$Ҏ1]cg"I80!8rfMffxvf}p31Kt=yY 1(hAI7GA!tu7?~|?'}ֽuO4PorsM@U!&lfz rK|< +biA@;dNHoլLpjFC$dMMѡzҗc@mVGQTz TeiEUj5,ͨFHBY`ȹBO?Ա c1?鬅\|pO]AjF%NfxEPUI'Hn#զm܊$j$(1v3E4A0FUfYc1dyA 7`I^.UDCVaLRFAc$ysNI! 4IIzN )1h gxzC2?6FB@P`&Id, FB~'u>Ȩ I*("=GL[9TӍFRKK8{^gjX_hEI` \mHi ~ciH(՜LkeӖያF7A'1.T ]rV9\HQ:"JgwIb̋-kYăjH# ad[[V}b0(06&J%V%[~rQD9(E))ãc IT@[/SRFuI5T ?*e$p_$Y_qS  bX/A Sdz7*0c\ @PrHIcVV$Ѷd-)MA (7d@Fcx' Cδ@+/)H2)%/ɬ(d@4`>,LFJQT*!K@B@۽Fh^mZ b^YB  1lߨ(+ M )Cy$q }#ޑ`HR^$Ʉ(5Ey5$h*gK.\d%EIjҖ٤ XAb S&)8ʡ}i dhF @ H-Կ` UfBA14|{:kHXD͟;hg^h~N dEUTOހU dEU- n* ;"~9(Rq6B>Bf Eն +-Z:"J_)bU!-cA$DADɠ @i#@dT,zw$*MHa" &T 0I$ғiI~Q1҄H$"fhBUAUU&.`2 RpHT" SY$8#I% PL23pgc$EU ϽBUH,â@$IZ3,F9l̆d|? 6|ב}Y&êdȣPP)3GJ,3 HTT" dMɪJWGQTHdE $LPA8CQ8mY~@%r@ *$?*_Ƥ%:_=|Hj=xV3 H* sIed94&?J bH"88*DRnH3Ðļwhj5=B:^P 49&.-=# 2TH*JDju]U5TI*4IXʒD OJA"\}V=FB** D#M$ 2R$$x /64Ef&u,Ő(,E h0RAܸ6'0@"<"J I) E~ Hz LF"1oI^tkt rc Q?d@|"h& IQ$%$!E 0$K3|MxɅڝ%ֵyfr(_N+`O:9κwO-so@s-G5Zw;ld|CHss}pO ;Vy/HR46;NcVsLzI:*tڭ՚_RyӸ$nvgν=Qնq\aDk|YJf6Uun!֘W3^f7@2L4E@c*0*Ke5b5;Wɕ TTĂPxBxs3!.flgT N^ټ2!H`ahII@Mp L2lfCɐj腺^|SX]Pwhe!U` m ,El 7N7@gKg8lq:l%gd!ƃQ~̡$A$IB@$"#nE9f⇥b^I,,)l}ۋ}7%QDl6:K A@F=j+޿'m8tmR{n\ӏ9m|l,T;\-ڑgE{A tڄ%vks͞ɚw[;k[[-OEp5䚯?9r/|뭷N8rرsν;G>y'|Ϝ9sҥϷ~ӟ\.'|rĉ?soo_흝]]]_5::_pA寿OS{{KpyCO&>wb{@-c;ƸRTT0]MuӧGq9&LO̴'t>+f} sVknfNv:'3rusX }h3GD$d t?92#]<KA(73nZ-kkܫwl3qY1e15Wr}&.;MȮZzkgnDg(bmUD~IKai>#vu׼Kw+kkJQvف¿ڽftvze/LXD=n9V'օ4ٕ@mi+UdkGpT4+*_}U_^ʦ꧟~@vv,ZMKK`YdYNNN6 /^$IEX,6mpp?iia8(*>իW`ttŊ_|As+qMfsr8@h;Rs\m_YHZ:GQZ嶔2o׷Wp}Z;^Zc9eU;Vq!( G+2.K$*iN'^pfk3;^,@Qu'u5u ?-`)?rI}cOUCczW$Ia+b☶ªꆶֆfqKM1 5( siEm-k۴)n脢\W}wVUيkZ+'f{k* lWq@rN3=3SQ\_DV^1@jJt5w2%Uq0޳g{`:WKN17??DoҒ#[}DXvyg²[Jrų1`ks'S:,tڭV{.lN]-.L|^/\eYZFvIsq[8LԯpP588f$%k׬Yc>lH$v{0(JQ1A|>h)h4 ###`0 Jؘd2{/u 쭨vԷʒ-Z4U]Z֒B,[ʋwSC{*m \-VDDBZ,n)+NpQpNȳ3GcRT}p7vyɞIډO,;ul󌃥D-=W T~oEČH- ҇f^͋Ꚋqd⇊Zqܤp Xh4vm,z뭙+V17 +V/]e4nv$M&ի].WKK@NNNrr2MEAdjj~ҥ?pttWmذ!''yuܹ!2fe~̓jmsOUV|?T^V!` uM%."V+9sX ?+7x,17e jٮ] jr hצ `2RdeH2EE kN_  h )ʐds= PuMj[ʋyzFa@dQga"ϒcߵ-[ b<;uLLD-=Z7Ƴ"WX;Q-5 v`eņֳ.[6ޞv[Z v1Ϊh՚ɯ+n(*5)N܃<\c{#uBڪ46uxzZjUsdc2Vb̢98{ry`m܍_t[‘ŲaÆQ$%IZ۷oWU[o8jfXVZ###ǭX")))//ienM&SzzbIMM%`0\b\z`0L&$322ac/v(ț6J:޺.mJ]qng\hn8v4յ(ތւTx,1G+匝qbdZ^wDL2(wnAB@Dv*q{m4Z2TY!ȸ PdYPBA'-{*AFƐd FUQ LzlcJk ] CMܮBv+l2Rб͵=Nzur\t^s}2T lx{FmN8Vsp:C<_,r6tJoqihKJ+*C \HCl<]Mǻ}F4QͶbXS)+˅u&50o.*?PT_r {k<ޗV+ݞɭ=mI+ 7aRvP"o45t27aq3Ah ~bk׮b6EQU($E!I233Sd2effj Ўk6UU )IvٞGՖ7U/}=t\4K-sU[֎ugMmEcw֔ko;P_WZZ0%f$':ǖ75w@xꍽ䓉KsZ  /H{ qE$%^QAe`T%U@D "JU ]+ zE`Ů: +o̾+Oh8.iu*.l(|; rhW:ge*b-Ѩwgc3 w[S}}S'?P=Q-Sk_yΖWѡCe=XgB~Mxdϑ[+?ƃl^UClWq۳HŞ}ev}]5PGj ks8lzqU[VU˻" ޮFHUQd.(vjj;䁫a_<3~8UTV@+8'Y5% ΚE$cQPupZSUŀJEr]vP/Py%[+ꫫv5꼿ҷ݇k6LygcKE3ǵ5,(li =]"[A ?~P 3VVsɉֺʆU@PP$0ۘ[L$ILM#, I2!?h8i\QEUESg c  mՕCM>T\RUYWvCꩭUWBW;ub:;"XHz--Fl.oL; w_U^Q,E/57UWܻ ,,pF]e;Hqp%a):X/*/54UxV߷Vg񾆚vUW7WT$Bs-g_̛qѱjW5܂}SwKrTrU-]wUWh[؜E\S݁n8fbYS5*f ln]w&v"s&u-[U[ں[b?~qvM,櫅fIa+=\xP7/u=yk)47_]; whuvV)+57ks+wMg wX߮k P̼2Xbvz{Y9V^WUUx^@(~q(w6`nԡMfiQh$$@ AQij֥ٓZ >z6`.nE8mq0ƈ>/>T5؂C%* .`ݩL4ϙ6wUD~ \@z{{sssYj Z[筎!ˌ.mu`m`m/v. 166zgڝEU][ꚏ KUՖRHƒPTPT&Ɂ1d/+ EͪZ͘(zmI,vG*B3E$Iec4k\5*b)Bp $ k\kkW2Sa?>튲k38Y P$I$Hrb~ ($I?Ө-eC$M9$8{?"0@E,xE$Z'"$I!-f`)fS95dɿY.AƌE@*T0q͐bTYVHbJ>s?"0@E,dEh~'ѱ ˪Ps'F'*i` I2f1FRTh~@9 z1" AAUl dzK}6F#MA Šl  bB"(ÊQu#E)* y P F1d: H$YhH|b%)B7w h ?sn7 K~@mvWin$Ŀ^܆AE,~![AAAn伬ۍ Ȓ A9^Cd A~@$Z@D4?A% AGAAAƁ̘wZ{ѳHL/gfa6"f#@P,ˣb4ó<_k< dQKz?|Xge1Yl7X'NzxQ(%˾hlw-^SzcyڛfpM-[˺t[馛yOGˉ3{0tݗ}EzSKf'7Z__XK{hSzvk-7.^PEQT 3^3nwՃ}Sc-fz; >HNƓ]=T!I2!?h(3/z؉l6acT촨MIyohWJ/C,RE$^@Ă L6Ҕ7 lV7$GpLCC0; ֚=ߢZyvLv&lo|}@z +:m{rMR_?)XJ' E&=}z6koܙvNኸY|AӴά)懙uR|KsY9vz⼄7`6qR-W}1bgW\G,~ >!iqffdҼb_tGzYnNHGѣ)ճΕ P,um|f3c/du>nTw?!3?Rυ>/fbyE`7p֓u{Eb8[5L{BΦR{)<@Lw>rNt8q;{d^BܱmݽqBχhZ_G7bܱ^|r- Ie='g[:xƱGױ?NhƩ}M==9r-~ֶnkfN_I ޾u9F&t}~:={æȯ9H*Dj3F&z f9pY)kNeqۼGN~9#<>z!Hd؞mYژ7eY+u vvZMGYlNbY.D \%IZ3,zΝ|n*}& {}޶7 J_| X筕z쩣 ? 29lû;/|+>k>.gw8e&'ntGD9ܤ|'209NI|)IhݏMyf܅ozߚM43Mt bl{zymݚ1"_llvjt/y.zdHg@ge=% IDATCg x<>XR'`-dIѯ̲^hQ'NrSǻNek(󍍝BNi}6wƸ>?>z`( 80 sn;cgT=tFYQ/T{ļRQ<bUD@x1Z?MJ+{g9Iw[[~pJw_o ? +RfoyWZ}:3`i_{։, =6< [NPid{{>a]wz]>ح)+MwJ߰6/t;NMg 3l /1 $IbhEghe)W(g=0-+D6lDGdD2痢[u D|r`EQ[ι'  zrmʵ \C VG|[2 o^ǁ[﹦Ab9 ndtPM&& G@޻vS2d2, LxgÔhSd[k.Ghaޞ]Z˶3I$X~z+\و,.&^rS5+`rb9^L7.G\oxչjQYrSz-uنp8kƟQK(B4wB21`m}tM`0K+Mi9luNbYV-ma/7}/ G}xj۴yY%9mڲ9Wo-eJvl|hʷz/)tl(*ޜEerr%eJYhXWHDG_ۻ9\u7mu;|VQ^zD.6?8w圫btGi_t玝h>L1&s-'/f}KeᬎM"(ȆGO;}pwo޺Qhsntܮ X"mY%6{;sLVǦٍ9dR޾ //=0~WĔb^zC<޸rA|> ¾o'CR"di+"8ugS"d+ "4?Dmhӎ&b^#Rʕ+ڮġߍ@T*AP3SD'ÇcYV+W`,~P(M"'4H̃"@T A\rEuSbZ FDNE1f\A#` %''kI4M$IQȩ@TUvpT,E0 bpp0SܡCfAE׵@ňh4EABk,l mo#2Db"HTU ]Ah3+tp"~@E ȢV` IR_ ÄAz{I(aF$I %#NgBcHUpz7&xֲM"1IOچe"XB_x0=_8♳TziyS:0煟p~iy=,8 _zM Eabh5WDeZGS^/L`S)+rx-o}E~a:(J+DkMy]be_c ~^OIc1eMȶNEpJ<x0=_ wM_G10EI c>}E Ma tYLQ}L):?=YgƔeyUUՎ@ŨȇE:Q1`sŁ Bi.AE"ՠun rSvGW)U{JU&-yJ T"Q^ʕ+^v)}SU`0@(y ;b'"'/B3"  ^/Lrin@a4%}f\шG:cPD%'HE\^_x}1=~䇰"M߰1❅3sfz@"w51=czL1=Z    sˬx 7[IQ@E *bZ :y,"+l2sxGE * -8 t^E Z_ c>RQ/m1?cگ.czLתaQ1]_;~Z^/m.@G n~h?^/ub+"⚅ϲ,YC@Z 3A }}}$I 2)-}P@E *"QEАe[VkYJZ*hE~WxbnT,UE*AUDP3::jXpA$IZ,P(L0eh)*A" *AUF`PEŔhYz( EQCcac45QAEQQX KX9TReX! $1c,˲LQL^*ڻ bCT,mE("2I:t*A"1mј j DAA=m>*A"{ǩ AEKCǜEEQ>0Y\hQEx#d}E rL 4։H`vYY-m[Smẅ!C#,E6K_hm-~@E rPLlz-l~ S7,] &d)"a͕Ad#ǹ?"P$2#b"ȲȼG 2W v#}q8DSAh~ %  臸ׯÜ@m0?7;>{f7}JA0KE.^,q1pzseXTU`0XBĉͯXzp`t4))iNv"Iy^@2ݹّE-9^{Dzy?v/@[3{(i˱#/eY[wZ?^w| kwMh?X~yP9"E1 Ozm ~UUFV٬7ޕNy^;[ 좈PHU"TU6͚aJActZ@D4?v}s|7e//O=b9B###>~899zwH466&ˊl"" GICCCH~Xq#g]ܚ̧Ko?aO>~drx]0g>v3o6M[ w%XYݠ(hH~Z:60_}5' ###| 5Ͼѽ^;xriaU&kawOI"i`6Qe) $GG(||C[6"nKf͓εi:NwxּOMN,Ȏ/}j̴;nc?8v`u؞*mȋ_lѷeD}s듛+l;/~#@_|sOAo6rJVe(}p04 PY:^MŻE]'?JAo'ސ{vy#'ӒM'v?c%~~7tNj7]gϩjasפ?EjqKT42ի3OccH, eY%ItEVVmw÷tS  ϙF{>x' ;(Cޕ۟V;~.=^yy_02w}gC_CFgKc[._0 i>˾=ᓞ5NWZ+/-=)Oۿyz97+qu9j0|rcccIIISfABPHi)97c% AY HEQ._fne՜^H/yjTO*vChDB`'_{ Zt]~?ywnW~/>Sn/iiJ*t ݜɵ|O@2iC,v~bo1W:쿨ʱ_#Ѳׇk쑏ܓq<pBœr\ KVض~/^FL=i*._Cʊ2P@|@'xUUPK0̢B #iO4J?mGY[lFN ;ڽ\L`޶1n*CW? +?+T3?Q'n+3̶o ?8v˝KCg?&cJz3< d) I_u1$ɡPaX{ttj0EQh$ [:ݲvsh L퉻| ew!DC g`3)FXsju.@ғO?7޵?gc? {?GzW:qoӂFi mhΔ'2Uך_9t}ϗ`扁n?Ե}(WNo?wV>m|V1 ֌5Q $A${))v]BlJ֝w~s=[Q>ܵcsEQ  UU ]|8kRow~>g ~dNdsLt[^ptGx}hߍK,,Һ&t觽ɦ&]vϐ$$calqxQ>1Jy*[?~~D(_ҏM{ q sqF? Up֙ͯm Dﴧ=+xT|nDgD(Rlw}S?{H3#0&ᬨ_9(oƏjSMo2~'zHl,ι`Hu%''_\_= MѾ~o@쳴4ߒ%YKlJg/.k40fͭsEhY7oaޚzd`7 +[`wj{c^͑)I;Hc|G`ݓbH!(3] p(dIbTCVg?$V?vS'<Ӭ?g#(Af`ؔȖ P?{oy卟^!$V)ބ7pib:uP@Sm ]|׎&IcO~HԞS/ԓ9nI&,Ǝ]GxClMHq!0qoճ}yyγ|ybbccP!H$QMIMdjpls;$ҙÈzѲؚck~vei?E˫CS9+t}@ ύ7? 9AB#%>G'Ӥo~L1SѢG#\J4X= 8nu^pV3"2nb (|(6&zhEQE@0u+Jnˢc(NQ* =ci gΝwΞ1~n)j}dh}P=1.dHF)6\eSc1az^e3n@NbȭF<LV[ቕ~p|˃nxbԒ|K7td|>E+pzZRS0 VSG{냃~J^`FIJNxAxYU!"˰ $I@QTmz}FsHaL6Zuy ̧y&jM ?2^ۙθ.%5 5ӱ_=E{yG Mً!M3z(H̨\2lHaN2@Ϣx{6ߑ&'jUT|n"r8QXJx˟}v- 3p<::c㎀UX?9~چґs0p[|$_ `G@*iY d=`V-{m~eCk>;͈n"$QҴJ D===ZZdɒ` Rg$%&gK͓DP$"`")!PEp zFuGz7"b(L}"Gu=ɒѿ iW|MNlo~mSFju' ~ά?77&]OJoJ<}[o0d K M'7W_.K~cIC QsЌnH.bowOVvv\\\wO EQ/^:u4c |[˻_E'ƣ #2T /( u҅ Ύ%ͳr Dp #HAGmg51i{iε7qӧ>쳾8NxAyap`-Ib e ÆCEO?I xޞYҋ̍zMkz`膴UVyIw$H>`|!E7x~@E8c |>|œ1VQǢGYɛ=5S*Z/7}2jL>V1q{](b0>6ϟJB6mY&z 9z3ɂۯSc~zb5jY]ou oycNTlYqyH[8Go=7V3"2Adɒ%ΝϞi=q'_qYQRka,,'2"( I֥{zgE?Hj+orYꦰSB.;st//>mľGizC]-P -Ϟ>&m^K ?yfٝ4cNeШ|YH 3=z0o?/я^ỉ!G޽v(-"RݽEA$IVeYV7vô4cb$JK.|ׯ4VG)111@@FDVGi9u]w|UGl>~j}9~?rMɧ_m~lb \{;aөFH";x(B?<"3}Ϟ9𻏎E $ųmW|GNj~X1nJJ6~3:^?Ό5QS"<3!̉Qc-#,;{0Xyc"x4=fLžqr?teß<H:ڲ?UʡXs QXgq|կ~]^ }.!y8 ^0^&/{,g^GU(uPd2rpst9!?e\ͯ;겡kԧ z g_y7fsvbV,Y>kJ}GS7҆AV ^|ߗGO)͍qƄ, )~_4#/dIFDEdDQ$\dA5))))D.V$ >s{%@QꄄaEQ@$&u],{JINyCNJξ#< ê%~~پiNDtgt^v֫4O}q_pZd6<1vh5^JAhٝ]Z!kxb6e_*]?sg͒VSwӎ4?$I0LxIψVGǏpu|A'eA$u(uww… )d&2 ( HBBBtL q <9hbkw ?{@Gy`+o$oL'w޻‹G]4wBo(vKb'w?k,xW^_fƥhcmxwG@|eҋ;?|Ȅ5Nً>k-ӡs+.ŢgE ڣkl۸椬-͞_x*ey(,`~e)-e|>kc>< @ޥ\/hZe4 % B BFQe)? ʏ?ygXDN~݁\t5;3,0Ƥ^[>3^yvGn՛]m?} i+%cJ]ԚKY ftz}tǑ77f[Z|ytt;CPD~kD"^t]S FAQ߼80ݰaÅE(r+Rabc$I0Ǜ5Mbb2%Y8DaXcQdY%5sE$ d}}zIf $mmmwzAID(f4(60A$%INpiQYe")Ax$ '1!qܭX !pñcnU~ɦ#Gr0JV2_׫lazdcި+@oVV(pJ>L6_lYO5BNv_F\!f(@>3 Ȳ,,K111%%fdd 288(2 jeEK ˲$*qȒ Kȳ,jf[R#fsHgXå!G"{L2IQ*U*eFX!?ޜ%Ie A@q@JJWbP9AqNQn-MG~~7]=fߎ$$<,FOgNw2= ͤ ! p`s-~DO/r8F%j:V˒`&uݺ{Gq> fE,ZD> T*ū>_xqÆ (jJHFAWcQyA0 A@˺_q @Gu~/μ{/8tSd$vaG0f,eΞp|> 2#q,EJ#$a$˲$p,˲,K0g&~hW:Nj4"/*ke 8s?xY)p;3,=IT%Bѥ;wfJ+@]áϪmlnljiXh(*I$_hb’ 9UD +ˈJRT8ɲ#G8ワgδTAA8AI82aJ1R0 ~\C𑼼wjm1Da䤨(aJEQ( Ad^ 0L$y8d%YBQT9ΰ(  43MvxD#??iը\Xg83=9/6lޜ6>jժeEP:}yʒi99eeK^gO+uC:(!Q è I1 8qC|$Jj: AH408&bA0 d9JqðvEXn(e:D'IJdpޞ|Gq BI%I6G?].2E(*qʝ,"" ? |xXP9' H9G!fSkWb.dcGAE ¶6@T=lN'$?\x澾#~ߥKJ)ޛ?| 0Gx#Asf .LOO'BE#|.^Dsɓ'==._V%yAEXS a|60 *2r(8WQIl{4G\pA,]o}+33`@@De cdY~WCyAEQEPuT*x#K`DW>~o']@ 4ߝze2`\;}Z aA~@$YlDr(R!(׃deg}8ae8Ubq/I"c*R8~ðW}>YIQbcbbVD," APyq7ZxqtFV,ò,AT*EIT* 0Yccc=OVv1EAPv4yx~޼y*U$> D/@HV"\56(JJ K/+cd a_W׈C8u\?]z#a|e@c9cp0@@K޻NKӚhE@QqJaСPn3LLJvҮ_H, #ZD( DREV#`f܁ahgWRNn 8Ac v9~FP?\,- e q Kp)E!nQ1˗/]0APAWTbYIDQ$API"I($` (btt(=tcwwʼn( H>ֵAR! e$B"D03^MQ.^8~i!""(*"*2ðP_qr,IIN͋EIQ8xT^0 [܁x8*j"ip"`Z&Ȉ%'+)YY ȢpaQE磆/8s/Y3GdPtsyttOY%e IDATJ1K>0=cD02֜;wN˖^HdWv0[@EDY^$9hHʐOE^8%yfK?D"`j===$˲0y^R tvvuttN(EEE$)I $hX1 d8% 8kr)9)1:::2Dp@6 Oh),)0㸾0b2״_2OV1b7Pz…@ "I%$꩓~Gnd$%yPP I I$ ,/ ?8/Nvml]2]~@Ch$ 0Q[έvyVmbgqI_3Q95hܜT1w;_N!81J>l%/-x#0 Ȓ$ 2 |aـ?q˲k]h*KaYV"JgP]1=,ZBqtבYF=MӖmLLm勇0wm5c^هI E?aק!˲$qf^:T8 DePO,w[@RxMf#Qo6 M3W}E剂9T(-{o8L)Ȟ-^i]nIMW`/zS9.[DfKIշߞEX1=0IeYq0I99, $E@ ( "C8E <]}or`1[37#,uT4i5^zr܆*"A$AYD $i^\M4 ( ( B"ΝXA:;q))k׮tcF2֖)?9m۷ԗT@.5WWЖUmɢ)rFWӶ{ĚIE^c[9jlׯ6FNOlܿ?yDA0_UWVq2A G=/{ a??,~]3|~}#ݚ2-~KBm Nh58*y\ښmW2B0V] TsÜ>5 ƪM=\#^ㄗe씖^_X]QQU7jZ-e6w1R2[$ eY2 ]]:6;55qAADDI@pcǏ7|?x--bŐK ҆ږ;3o u n}AI.]F9a>v+ UDU11^r$)(Fk4L 222Q|$!d8+NH97o^\ࠟRG1 rQQQsKvQO ֑faNi YM'&~궬Ʒ9o_ȃp[,q2*Ly^K\Beym`G 1l=@T<.퍾ɼ=\ळrM7jNzJ-EPP mU&OYN `ok(c,F%;;켯3wo5T4[yoݻۚ^(5@f^pm011 h K`( dgQ`Bt$I0, 8,񜐐4X]-xt^|64’l B>1-{ v{̾E/c߳%פ덖mcC\ՊQo*jiQe*c+1 kGeGmfkqŤzӸpi &+!ta6~x|jk[zޔ_> ѻ`jT*5E piLd~9akt~euy6P;ɟ0sx) oMabxG77jFH845śKVʪUv\ *Ϧ!I4TU[ z\^Yh(%j+VC} a% j ::7qԔXw% ^}tԔZ1[l6s_,q;&8ko=Aom08j L}Dȉ ^u1TnQYnorU Tfeemj.0'uFaPZUR]P}67iϰe0ꡩe۴&FE ;9WS$ (JJQQe8y!v^F,x̟m'A&|vS`]l`l ncIivcպ-<.w[uY27W۶y4Slyzouwܲ0Y\[HyٴbŹekAGE{i(U tF5-5v&hVCWU\7Tpm=6 =+rTOڪpwy{ҕ3I ѯ=Ȱ% V {ee}bfEzz#:;}soo$ޏ! 왱z14t~i.Tai.Y6RPE%{zkEE0LQI 9t̼Ҳ<W^WVIEEKjPk`i_HӖYGmY6ga}'dT7% *ﱾvORmuEd ܼ*[qUr;17777ʞVu4Ⱥܢlv[}̪]nɻ ƩU7I>~`{}^axA lw (8c8e~oop`xvw#2YL{d< Tfido}!TiU7kl-'O "IRzo~.86Q{ ua}eNH$\UUl1 0ׯ  |^_`9.YX>_veIKM G8Aqf?o7[Rk5ζk{M[J&87x)KuivHY$)zzL40^/@y^`[1gyYz`02s)&& Բy 5 LnubUUfm5h VȊPCm.۷%Ye%LV@*!{Hr(gMZlӇF;@__a?.>(%eY%( 3җ.]'b01g0HzyravdR ɨ押^/F iXF)&jƴm2'jB{~^?zz fˡ} S2-[IZJqX  wՄ~@m~P sKZ\Vۼ;;; YIGyC-+ٻv*N|yoi[qxA^/ ~$d1nkfi$Pj-7hy.3L>\c &{+k4\]`i5mcUQ 50.Ufzʘ7\bijcbb{<`PׯwHOQ2 , \!:wȆ੺6vR^/P"IǚS_{+' w^otx2U&5uN{{|p C(-8%&#ɶ:' oSymn&?p6MaSymn 9 52 -JʝtV,"0_pC e:n`oɻi>ͭ*Qѡ!z=SM>d٤gZ0zڜ`C'bjc5z}BoDs<g0x::DREUD}>>_PCs^PyFgÞ^Saif(3Ra.'O.jkqdV@qAkCote6oji7rن]{^\a2Ͷ)ut]z^\px.az{.Y`Ԕ˖Zr+2{o~mݽko݃ܿ~ݽE i:Lf>;'$ T~ɨibadl"G622qlonu5s77x'W ֑"MjTQX:}h0OҺ s#ܜD+~{+v753:zlިHv\锑\wuWHDONGE϶6glk򂳥9<2 -amN`'WB´f0prüz5v몛8}Xm;X+t 9GXQ]=mMUOhT:-%i{Vf.[|i˺֯2/ZwJ}oܺcK {-SيTfX5NҭwՔm76kʭU' %Ve[vP [mFzkqmv}Ge3+ȇ'ܑ]viixIhS\hl]%LXt?NBr]sC"EjĴTAOk$I!03joniiqiRD¸*[k퍍%]SBmͧT;yRU9bQR/+L%mcon_z q}.8Uhty\Mɬ^H6T*b.)*0j*Zconnn۪w\BZ r5N1Ar=emٻk*' L޽ƒa?GvYP+`.Z\u۶m֊Pkʫw-RconQ.*2fnAPS&ǥ$%-\ 9)1VG) Eq㲭F| Y]_WԔZ' -kRkIU~+V*]ZXhCiTmЛ ˌd7ޚKZ6k.[TZ}՞I0X%EֲVceMNY„N~r]a \xի$|/7d8 }F8®d o]YA^^^ɞ, k%EEe{<*nlM7f)$u{-ʒm{ZiV+DSnop'ɬ5Фc&%2;?5y+Ac<(Hj1d9kxQ*Pnɲueݭ3yo-ʢ߇6UZVZi*S_WhUւꛎgezrl3+kkJRK`ەZa1Q9kMCM1Hxae IDATݴ|3ƀJklՅTӮkY M&J]x6f4Ⱥܢlp֚2]ث\Y7bo2KMΆF&D5Յ`+/*%v[vV4vtޤaI.^'={vggYu~dq\`0vM&ӝ#}1I'ǰ[ͷʋ;Uo _r…7oӟ|O?Ϗ5k֤Sٳg]VPP0sνkO=ԭ܏FQIʡs ÔBo!2q |(NM`p;Mfp? 2li…QeX4ʹ쐶(%?aPJeYd2PDjKC ّy<չ6kӭk/_A$>x饗_?{o[~{iQQQ(8E(zJ_\ͯ.1`Nj>A~5kZ-a]]]ϟ!55ŋ ,qvkڴ΁$t:M .<ϟ>}r_ҥKf…W\ gΜY~4{&})W ns"K(=Goz~{QIl˻pdBdn y#UP%:?dddtUV1 ; =zTGEE9sf޼y\tiէNW^xbѱlٲGΟ?ժU/_xCZfM O^{M_z5++]n]\A_Y VA'|P-aht.9Eٛ Y`[idf,>jZQH.\ѱdɒW~~u/^sϭZ N<h4,曭*|eAioo'IrƍG]vm%&e"AkF/s=x&oٝ7B|||FF{g0eYVZAm޼EQZ  $%%_z5??7&&&55uҥ_EEEo+++KJJ_t:͛wܹׯ'%% )?ٵ~8@枚"0SSS?KF^(qm[~}\\\B0#4H8쮈ÑAkTwygݺuatww;O>dlljZ6&&&%%e111@ʕ+qqqǏ7ji~zLLLbbӧW\+W 11Q)>+WSNuwwGߥ4M~^F:VDp3 e!$)--ʕ+O^z< fsrrnOHHX|qVcbŊ&%%y<͛7?jފf Tݕ]',P6L>̙3=>EU*UBBbYxND07G{"CLWy "55uoŋGV䘘`0xԩ 6! #0ϟ ,8~x~~ӧWXp¦e˖{"h__)++ST>O>ַ53Sg P䅈 `ɒ%k׮]`Iۛ~z$EQt݁@(@d___0lkky|>%~ nK^/A( Ǐ$&&ފ2-s"^DtAdRRڵkiju|||ZZZbbZ=!"$I?wbHddd;݊}W5!tww|k׮}衇RSSz꩓'O3gSuʕ3gp'bWW˲noqzAu%$$̀"ra)O|DVka(BaAJlvjZχ(ʱoQiq(P%rF(q EQ<˲L4^W虩J.,b"ryaey > T*ZVT3PD ʕ+n;&&ð$$?h{{{fsOOAtuu)V'--4=00f)rʲNU]6lF<:wI%Ui$dF J?c{`1xH~"yIq8v:I7ݎ@p $d#@@URIUNWJ%!X,=[LPCPIIIvv-l ?1ؖ$bm0@%A[DeoEQh$b <(r9c5Y(cle㸖iӦ\.at](JvIAPd9w1::w\EQg͚EӴ,L3f8NOTUyd2b1cb(4oa^x<0$Ii z{{O>xbfJ$B"aMbl"4>A{ܹNcTFFF$YtisssGG1Gbx<^___ZZ]WWF{{{m6!v=D"sΝ>}:;;a+W,^PI^> h(JGG˲4ML&ϧ N;|paa,˒$ɲvϟafEqҤIFdfUU˗/B"ㄐ]?jX(rLr _9@ O6]]]vp8l3fY6fQ`GGG$1z& }1:0X5Vk&bFFF($# AF,c(˲YN]n7MӧO6rXeeeBVSLQH4c5inn(@nwww<:˲%:Nl@EAn&a`'`n0gs(Zj!СCe˖b1e !3gL2Hliiu%%%ƒah%???1;> BayJJJ TVVXj`OQT0X,sQ62*E(Cr}*F6^cV`Fˋdlv;Fe˖fA233ƙ ŋrgld&Ȃ5O `+PdTH^q'kN'EQ,N6-"t…R4qъEHI۞_n2Sc؛pDN`_VܕEh$0ɓUHTcۤcs@s))`j>oooS|nU :cGmE%Hk)}o?\‚vw)4рUXP[l}.sLg]_+_d*o RC.r z޺o=\²:1GlVmhv/!wjuՖtVwع9[W;nwvo us{"RJLҞ“) ;6<ξc:PnQnw ,Ίo.0đzZZPp.!_^TQQn`X['ZSn>C!l2wB J*7ty`K $vyU`kma]DSuoW4%6vgYc?{Fl;@mK[ _Nl=@]/d f =h{(Of=YWO]_w@4l?zE 8I_nk-"&Uk|Ps> ?nUmiY4q'G;|d@n.Bsgj2B~[g6V[^r!ΡaԎ;\")<9MLdh>$I#-x)kڱG(M`X&X“FlSP@)UG9 1,}H1 ; hNSݡrq~vY 8XHKs;ƿT^0jժ 7 >NO ؂"'4DG[P@*sۅ瞘6{fJDȰ]YVᱲj>' 8YP{ ]oc+ln"ЮBB~2'D@ (i 9oqY?O5E槚rpS4 ;6 x]~6{Yƞ?Ş?PfuMxea,O30a ?];&D+ԙO~xcOHv"`SG,MXRxrCÈ ];$: pR {G9a"{\r@pd~YSTQU U~!-Z6"锷nvQxn}$}R_db%_Ȯ|9cLU7m5\Ӎbߴ7DLEb]fGj{ ٜ`41$"'Mv' cKZuCF[` $bXUEIQgg~p5Dl%i-bCQ l7k "0h񪙾Zj1'Vp%{s`]x7d_+eUSNEnd21DpydbDR߿'l]  cMb#|p>HDsMlo1XvqtCҮA"y\\lK :3I'0>>BP5؃<`KD; Jַ:%o}K,Rۣ $Mr]ڱT3~먑`D0&B~ @"} @v Q!yXpS^JImk =7O̾-_z|5}oZ*^I85٭$Z|PNix?Z55q2: b7*@jiZ\2vCnQ-&GQIW/UjkZs~U}BV@RC  ܢLA=HvE~Qj $7)mT`?֎;_"R=i>؎c uf"JDrp38RtcQ;˄T;Ulv`u8{A*mH3H3Ʀ6靴ݶT fzt"pz5h2{|}S˜P7POR {g¾.Լw59(jqDTňUknFn[ꊤcEK滚k߽+XՐ/y%ɂUw5)H%R7 ۻn@@de9Ӻ~֨]%BD^Љ0j(,LqlYSu!{2{[݉p@0HHF>qȁzm'@|:*Kl'~~е̌)];tH{1ئzS3c? )QP*\7v9~*UBɢū6OյC"\'8tβ[MOܡAߕpB/v AƊqc^%B@@V"x(ʐF!  rˠ6VEMA9?>D JD }@@\"RcA;AP>P5>t  WRlc@F1 ( #:"rW# ].Z MVhh?nKe!ihnit:>o0F7qK%ڣ87IlZ"ԇDču  I/Gco_>] RX#//$.F'q߃=@4L~w=7o>D`ao8DB{'DF;!o4!Y|s(ܹlNL|_h>ѕZ"ԇTnH_ROJA#E }67tW( (HDL-~otFp#Ս ((q.]{/d}AAAnA[ F Rhhhhhh?}\XFې fnWZB{GڧO:}n)~o}?9C hZ"=t$bdx.Sm" madp/Aw: 8NӴ`0(IJLlHTwwwcH$DGFFFyWȲj5i*pF|0Ih4Q"nt_# D C-Y \ w"~Iv!7*H:Fr.` JD=E ]EZ4aArssQ8d@tnn.q(jWqvy#JL<$i0>E ]E izc> *E"˅GDnnn45:3 0O̚HAA@*2(BHj}`a=t]F-da8YY5{>AI+MS1dHD,C@P"܃ k%"> !FkF t4L<222YD@ADЩ8,˘A&$<+ogrz+A@@dt%N!<<;!ȄHdlbbjw0xOM AJbrE rc#$τ>)&݊ wClAa&)A}@-4-$DۃIZ AzAir %fONlj wD `AA@d%[   rWF-9Iռu %>׿m;r'w [q-XvIX#mB t׶KlQ]ۙZ#7[׾dO?7ZZ Jo_iޮe;Ο=/:]ti~'ϿwmSs)ױ1 =@ g'ږ;f ޷m*tu]W`(r,<,i2p4 I,:dffcou'- JXUرG[}ߗy7皢K7ʲ,@ȡrr{;o>`5%5zv_j_Z {.D [ßńy:Յa/ŋ1pf& EP 7@TUEi6(EQb<D"1eB=@0XrܲicXwD"p027@TUD2lVEH$0  BPWW 'yk$BUUF_P"=l*c2J}`yyG70yUyg{~>;hwk;e2~uJ@u~^{kk݁A8vse\o(KVӊ53>+ѕ߿󳞓~ٯ+Ƕz+볯5sV{eV_s6s=Q}ɂ_킄u5kW=kw`s|sSrE3WM Tf r!YS4!| <;;_3ly4yW&/gNnn)Sl 83  VTTddf2,KTP"# pO\cPؔQC* ktѷMz:6+_ZOʺyfgWYmHrw,aح:TI?@u7^<Hw$v++p 8!FҠhRRdpg;I7?Vp;sX]K0;͉X=+r5q7jG ,-@ch3Y?;Y+\QJomB4\vٜI-!WJG$XSLZy:qD%$4-B\S4Mk~Lk$a?Ht׼QXq+/{bB}g',X. >d+k=` Z Fxa0;)hlSNϺpa QaLw뮞K<'veS}-S5^lk B~>깶8̻|mQ?+\< &k,y#R[,_U(U:pm{{[{.YV}.͜oC<ʦu[X┺yԡ p2Zov"؁rlioo(ʨ4M˲DQ4E0 p M*EQ4M4%I ϲmmM"XҐ:dEekpX{{f%*wFZ$u]uʈ'8#*EQ4+GiiY 99[&$³poaJGeaYHXKY.>{K?=\/w EE&Q%1Yj\!1YDeWUM__Q4sȲ].ѣG{{{|AQ4ϗa<Cs~ޤޮt ѯ>,<˧?6>{ گ.Z A? Ak9s@w+5/Vi7}ӳ.5^ .__϶6Ƴ7^~Vsa\4F_96QۊRz{m/t'+gKd,Y_~Sk䐅dn?tU(b2tnBrQQRXXXXXvtq|tobKKm2sr8(ZEi 6[Fvr֤I$LuҜʩi~,i!wl D(J4c 3۫ :)^PP̴n~liir0:MX"16[wl6I\@!iꌱ)܊Η~I(C(7CsΘ`!س}w%Kf,w MU1=f\=+`FF0p(ͦ(J,s8k׮u݉:ktXm7G/W^@b1[3Ɓz4b*-s~{OU^[ak^m[/.iZ2_>pキp_n-]3kgY` ^?4{~ֳ/2sR<ϙڏrʹ@;so>iݯ(׻vPl "~%4d j{5zݟ7s`O[Q=1'*$sh k1Ks&9>x3g/X˜e!R,2Njʞ|,($,,J &MrJ; {#9"v{Krtjc*O:5''l~w,,KpaML&ӧfsgd4`b,8EI+ǖaeEUIwOIpa y9|ۃZZ@"UgL,9 |bz}!p̚9NzHO4mo y̯~Ǐ_f͚}\.KQQ?O>G_`|W#ʘ BUU_Z[ cBN?¯fOBUUϟ5ilBfi_X⡇"Ȳ-224McGkV;7wvyy43fYȊMK,z5>7ٳ&eYeXF{f;K"&dIC\$)̴X,kl4[WXB4YThY5M(8{}nZKJh,+((FQYQ8}aDr X><2lT8G[;=G*T_W999_^}U~X|~o۟~i{{9s׿>3jUUիGVG&,cuSMMWMN4-f۸q)F{ fуdǓiZ/M<N \.ׂ "EQ_EYfM^^xiYj4n6o7 W1fGL-qES1Č3wV5yBK)`2RQ@iMEQb_d ðS*$I"DcY>ǎUWD!cYc5MWUUx=E-#QXXh24MiJ4YV1"Xhri"$)q-#1ڴTUUcAn MWMMp\. UҗqIb~Μ9'ӧOew;>;Aahei2C5`2_S\TT\l6E&K%I)ZeY?ojlBuuۥKac:! + C3GVF1z eT4M)iEb5sfn ˲c{ C"IF™ӧO?w➊+W:Lj8@QUM-1F}P((diZeBɓm6Ʈ <ϛf.\hR4MFvd4MjMs+E ,j@ȲD4!} ) t{}_EZ8Ryj*Jn^C '{:::Y4MuM%DQ*Q'e9xgA}@f$I4aFVMmZg̜q!$ۜs<ӂ o`(r;vDUuMEQ%+qL$w޽bŊ>(r>˗/gff>CnQӴ0w%K8qE-^x:)R,;2&2[.\lia&e99$IQB4U%,S딮1iX,l6h.SSU]dU%P AT"nko| 8EѐEQ98 iBD"HDUUͦ(Jo8D QƉ,I ^)deeQU__ؘ~0Yz('N0vF---;w… kjjΟ?gdd,_<##t%` c0V… O2 m(J]tEQEfY@uM4㢱h8ttMUBH$ާD!D!,˺{{墷l2y.\0 EQ M4 @:$Iѹ`|bXoohdY|ܹ3fԈ*4YVEƢ,Cݸ6L4x7o^KK'|bZKʌՂ EQɯ$Ijmmmiiu=漼ҏI~㲻\ lzP88B|#}oQ/ ǂvK)g.#ۂ;_Ϛ}d]םN痾)S^QQ1gΜ x[f4 :њ!̾]<ͯXnoڪ[xl4;~7\).~yvEKKFe94M͝ngڳ]'3,KJ%i0G=ztMQ%繗/3J%?!&@e/ vjw?St{Ǣ2xE5xAh8 c ~|Y0\q <6Q_ EQ H˲!N$ngN4'3,CT+*MSmСO55Wcw8⢨,{N4-M}}Jykw7W ;vh*C/nx[6aSN4~......Aggg<7f3^ZucTdƌӧO4FZM8і})3>Yᑕ6l~7 ?\1Nͻ?eRd{]ڰv-S8@ebL}ޢE48M5Y4aX,Ʋ,Q$K h4*K2DzU;죦FMO30FMĕ+7r"8)rb6QD` 5Ebφ ǎ5CU@P3?4 WM²lF7,2ѴHj-(9(cC4bX]UEEINIH$bXⱘ(eř+i+FJl6ǿ7U;䏟zt+;~qc܉~^TTxהNQ4>cAƈuCOzaȕ|o 8K߶iMe]?ֵa0ߡ-O_q]k^<\fC_=Tpͦpҵ7v}ᆑ4}G\vWi*Ád8wfa.{zˡĭ{z}om㲯 cvyv׋k=.gAlBl6& 5+z5/6˳i5˓:;=.M\滸'Ry7 c$ˊ &YJT((FPWx\EIKGFe9YJ^|ѽ6'F!=ib62(C`O/+u\rh_ ?,>e_W=zYZ_?yGe.Cp%Zk |C׬)_Y.xje`M+˚5&YН_w7Nx}_{@ꊜɗ1<[,@ EQeEV0#q;'DtEIE1.I5#3y{j1/Q9\}ap+_}ov0%?^鐘~M3H)pjP Byn.ҎR0cӟ׬/7~#BMfHؾ\ñl"ƈ/n>-۷띟l^fC}'ʵ6x6myg;[Yi׍Ґ,oʵ/7ήorE/{k|y 2i^BfovkmڰyFw|;Y'.;vlثּXO^U o=qаeӖКWzg7_ܴuc/?r83[ nBom\¡˛wWv7M7=sv?vWO'--X,\okk,D,KȊ,H$(J<(Qc,Fc,fIr} KKNEQ^|}نe!u)MQZm]f6/:y;7|\q۞Ycyg[/ݷyӎdTG˫A>v} pl1Wٴl-XeڗC+=Q^U  j}U5aӡ޻G7q?J%#[26+N06='iBbz:m 'aš09Mn'tϸd%s!}6! m L ȶdRzTGBؖTٟJ,Ov~6URfv44lֺT(Sg>BR~F , !` 0?P(İl 0b3$Х$Ixʝ %ԙafK~}u4FZ4*%'WzcWl=$]*댓.?}ʓ1kç]ɾ#=ow{]7u81{Tiel2)hu:'(s7*KJ+*G{GӴP^fK+wnqV1u^xF1R@Д)'gרTuCyYX)@NW"\-{:Rߪ}lz;]m tzoӾJT׶ByiRw4ޒ#^c-USZDٵwK9 ;v=g}]}KNrς+_PQj655;op׿q#qd L&tyyR1L& mAPgc`aX>A.8Apx*^Z s_:DKnɑ JiF$K7Z'ۿ z(/՗BM}l(ֆ&j}U+T1PRUBNy~ZY]L[JJ쑆V,g:M&9or 0 ({fK ]g:*q*rOd4pGe$zz{{JN"c#.aYV 8IK3,[V5 b4Sp$ْ_S][k8+i=i\_3>=i7}1P:kt3NŻ5R F|I6= ܫ pLE- F 1Rꉞ>TJT2tC :`ho%ʢIByGekϕF2m8;mc]{<(\QHkYI|pC\`&pCgKp8Lrw4)">dKzmis&,ȊorCEyE}u{}=L'x<=C& 2 z]ϐ r r`~gyOdge 歺ڽoU?mb$*CR8oQeeʲӌԸZEE[? 9e&y+|#[a[Ex.j4&iH}MtZm:6 F廏%_ٲo'KK*wl)"vnɡa^B9nji$ ݶaGk] L ֚VvXW"şGi) M3$TED rw4).EQQחqg]ʑijV(,6`~VNjAk=4U(}}}Rq̸ZP +{4dl\d)/-μBj}|ǘY,eHTJc'"(j2M`*0ݶ$&tRQBmhrTA`}żɳdE?B5եS)BpQP]Jx)lh)q~. u%Jt̄PVhR祺\! rכNd8eY]Yhј~%"]0b8W | zQ]m oNƹzD-)ETN]H/ D~Ҿǽ?Cb}L5w|ȥq=WO[;z۹pX)޽ȁjB`5nۋϬQ9n9A#fXI*RFXiNt%RﱤW[19I,R!c̶>RJlOo4u/Zm/'g14tM0LVժ& A dRR$T*w9fFb&+ FQ2LJ tmmS! 뗦^( IDATH} Tt7:#/GA܃[-PXQʾU F%{ D:v[#oLLfo7KCIՈx -=`oc GkXDD9QfN:oZV` r#>$I  0]GΝ时f|5pׯ*#WNJ;0Wt%TJWi1) D~ҾlauFW GL+f>`b\^qoiqo,tQaCk{Z) TkW}`KEyyyǔ-~ȡUTcUXW"\ʽ{#wVmذepgݥ3&;STsVbʪ]T޺ݑ/fNsӶsQZSeBhܳ{ǖ-;v: 쩿32?؉Nu0mmmׯ_w\mmmnsppnwtt}GT*a… ,hii╋IZ8߳5;חWn{Vv@%rss~O>8NPh+W}'8gnjgRyNB1<<|e+WV+W^cR(W\YxqffK+`XR@EʪݝjvM6 }ǝ*{I\JXмaq܋1MZϛ܀ J㏟8qitܹJEQ^WT)))}YFFFQQFEiZZaFt$I^z5dddtG}^QhBŋv{(:}t8vH'i{ܗ`ڰNvP&*9h VaÆ3gdddXV ZmjjL&ӟp”N}>_ff&EQtfggkZ^C=t)'O3g:;;Y<!';֏w϶rop9`d{ПIFԨGL'eeeΝ۶mg}vڵ Fd2p̙aLi9A痢d2ٜ#+J#a===A[{펳 @-Zeee`p=\.@P Fe r<--b0 #x  GyeYNe26nK/n͆2x0Qʧ2xw: +zrtϟ_XXh4233Iz. Λ7>fl64M4qvf^|֭iرcry'Or7kx9{D>~+W]VRfoݺq\yy9Gq88^'bxx;γgϺ[nUTT0GGY͛h٩m/q1 d،n]>aP ")hV**$Iq8k֭[A͛7Wc2FcJ̟?t z`nh4l6\.͝Ĵ1Bq\-%8z#F@$~?%%% AV+vRj/660 B8,k4 p8ljAJNST2,==}ppeٔ˥R222XCfeeMN"T*U$ʍ0,=H"(2H{NXX6CCC** /NrIVPH&MoD Vp'V=jb-y^ r%%@ gt1"ӉnꫯA BP~|zzz0ljj;8P($RZn;777###$aX{{\.7oލ7RSS ݈  z<c3¹s8}}嗏 $6h4:᰸_'q\0BZatLvg⎐> 3t. |>#a7o(JlIð̞@ B0GP\~gF!}@ o; B dZ|BHOOce$jufff(0Hn$I~if&ď\iZ  /̔ dffĞH0 l1#77W&a!Q(2L.B!%K N\r%A?#AB3^ }@ ,,b:IIIIIIejjj,%Kh4J(̪IP#Fqw%8^PPVjMvv[- 1kyWIb?}"| 6ދSP6 e@ffl<H*Dɻ  }@>b8D_>lc̊m/.׋Eڙc ]5U1 Wl˘W՝r8\>@nߛbpYZrĬ32^0h\9vE{},)gъxCsܲ6 {3҇We8ZNk|<ZiS<~S n rFe^Zny vdCsfAcȲXDރG:p7DDjBGq󷶿P/GZ.Fo]U<:0%"1L䞍I<)$& ͌v1 #7Qby仏a3 !j=??DZ5&Cdޚ?{p]֖Ӷk==ֳ~fqTVm2.P@,y"--f~:9e,5pxzql8W[Hia7}t4h̅+L\Bq,Ї$b_<|đqS5z~tܓb=(~RHLNp88g0vBu7-"ktkCKyrdK<^"U/hCxrS].e9A򖖯}"_ 0:$ y+6Pv۰ YZE}sVA,zc'.y:ѓ]Z싡>iIBe۶.Kh|:@wu{ +-!k86~'3KWdM~oAޓ4-ZagyxmV6&5ڏ՝l↜7=`~,'Nl0{.;WqvxBww8AZi0o|X ʵ]n\(,>|̦]Tx< mѢ:r_G\b=I<)$&/jw\s`0gg_>f.%.9x0d.(5tuG-G)+:l4 "'X;|)!Тa7Fx AYQuX/vPw&2 WX s=./@5E^ &8%K- >͢b}t:f0gHz}+SY&5՝x[㻏}x9gįc&9iHDs.ӓ/iy'>xx.a v 0{;xRHLR[ J223yH*d4r5}PeY@\ @vlے&/Pb·>)Gig&_h4i}g:bv1g.:Wm\H fųE<I ,ȴV\}I#*6X"3t0r/V[?rŹ5b; D}*T3!\.˥+p8<qJd񅙡},*ʴwؚ2G\ԁ ݐ_liwuEEWKC.|>k*J= &ðAXIP H#ko:{%&+/πAWAqkKɒ\!^ Dt/ *wR?Eνty "+y@Nc+ǥ&ϕcjvEunosHi”{sF}~z| rV}qT]f_/fw>._+" @XrL8Ir0$qߚ734ܔe "J ^008qt 3!Pq*xM~ju:XÓ/-N0{]gV60f4tB{S'DDx>9ŴzttڇwiO}Sڏ4/9*H8NWL.HL> 5O8!ʔow,ד`2p/@j$s.AYq" g?:Fx$x)`YGrLqm"FiEir>lb2dOG;\@=OgCqÉ.fƈ̭`y.:g3s5J~2Ye@D||:ˆ?1*_̵?5` ?螮Bźl]c~%9YS6\c澗b(ꊗɉ$ "N9ؚ!d9l7M9@X-ZQik=6@SX^ڧZm8{@p4:ԎV(x]-ln'IU(XFY8,f O;|_x"ZaFY,]{7d{uvlSp H >.Ceu>|z\vS)! +/qn )^Du4Ӷ2|qdqEAL'qAFa qb?œu|䆢d`Ԝu\[(Z y00gQ8hR$,PH>Ly!-~#oo-q7e(|.9O龗8b("erFb@郔a>q<b [k=6kʴ,Zd8VG]ӓ:1ZVW wXKwvD&ѶhZ1B.x{h]WNqa/zoΊcΞʋM^x:pjjmR4v:c'ϞFk0Q14׺/ZYAѲbշĮ!VX1|N $8XY2-8d6/*-ʬoY@BDB(ߌSD,,M/'mo?{*Ukw/x7gkMg9AeZ+VeSdm *" KL&SĐҔCYV+Cfe勴0%"Jv& X@ĒQd2Y,}jӑ$e@ @@<S {tRD H"D IHJ2 E `PS'I$I$B@ BdJrxx21V*2LK$w[*J1bKŘ(R$"z$ă 1!簘 jf# y<L&jaJ2d=a$ DBL(}#@ D.IP""2fUFq:(D__Zy^0"U^H"D"AHDÐ(/$h"Вd d2$YC}8.B.j1H"*a\.%"_D sX" DH(}AP(Y|Z6.b6 ^VB\"zpj â2 @ D(\M)!#bbnKDd\.">kDVq28 (q?" 0L"Z5F!0II$s,K Bb(q2T:&/zĤĘR$=/dg}dؘ?R)E"B~Vd ?xHiBĽVR$$S1bso+)IIx0@ o $aod=G#{d=O 09d=G#{d=c?u SpޘHa#' =sLL =p7%bsv|=k3'1caŊ;ƥ'8 FOr|gB0,=/dga\x A #l?^"D{qѤҏwLH_4D3d}1pK(:η/cJz8c!0JO}Hx/Gw^DJ鴈lGa$;Ѓ@ &##B akB$$i\pDt! |>eyG RIJCF0D H"D H"KD1hz^Wt:kĬ" {<F#*8JDԎ< $$$B'o$ FctC@܏B!ɲlJJ  I KD}D D`t&vxp823Qn(ƻI KDB}@@<AD|}Ek4Q^#s CP(T?G@ @@ D`<ϋEFl~^M9az(c H"Y"⁕B!cm#"fXt(NcY6iH"Y"⁕0P懘V0D1+9R{1&tfA8$x%">`qFA@m"BdbH;I197)3zC1#"+>I1 Q( ^ v`&!QERP(#q=CdAa)9iE 658Kl~ }@ 4> Xr)}HP!K 2 @$@$+1[ R|#9 Hq" @L{p/;wam1ZP;x@_#I(K e+1#5O\ qohlzԸ$]uw$Bb`+qEH? +~_1|*>  .h /W.W.D\Wzp i'n) ܚ87il^/M117^PX)Ǿe/6|A$@|y>Um3"EB S&ڱxS}'[AI>"p  NmNY:u|iͲs+O?2~GEf 0؇BaAr&Z}y&V*zЙFY7O܀g~OXCkX K }$4IOO r6Ž;k,J{۽xv~*{sHUѶ`\`r ˜3 @9A8> ՒVa1 M&0$ɻv B&<WTNP?_XӾՠbxР顡aǣjǷ@8 tZen˕=o<.Eٟ)}P+s ߂Q1N_篳oţsuƂT<^cy!|< 񃲇 _-:pCy*-!kcr邍6:FyvsȗJ%Q@<`~iJ5 8x 2&|~@&\pZ!{AE܅zwu$N*N|5j&}uMkt8Md"S"=ڞ/a&sRh|:z8Ό NͅU[No:C(ulN0?4fhv 2 xz{==fB]]_9s׮]3'O }*(5?F" Kײp]tb; sb+tm[4agw">wWԂM'p:?3I~?чCml˂/z]G35I-x[4'lkf.?Mr+?xΚ/>4UAY4rnо?8`Ӊۛ_?~'c% :p8m7yOOOȋw?44/6Mb6s<Tj7csrBP+CCCR 3eޣmn6M5:LCg;qCxv|dH$͠j7J3Cߗ+L>ta$܅C`W27ZȼEu+p0cnconȨV_};! ZzՄb{esKsmjN^o*{بʤ67{}q wkR89͋no=|Q\ßYasj *{xǂՋs){W/_FN]Rl0//$I3~D.>ohh( u]9A.%K m ,a6gg΋LK0ɸR;c_/+㟷7a8,W~XΌ O+?c7?%ߡSClir%F.()4Ab(^m rV*ӍL(ALC===dI (0R$H eee=N8Wuޅ[)}Фp]wO}Zk*//rsl6)TTK#~}r 0~۞}陕V,:|=vL[N_=_0:l.5x !C`4>EJcւ\H޼t!\=G&]~ea0Ut!z^j]mmm/>}o۫Vy8L&#U* P(,rL8 ^p ܸѕ`ak(,i"4\ }vg2"d7HߢK}*(#+j;y"*%XA!J]cJ]C+#އsP(q˲ 755ݺuK !ĥ,+C0a0q<&0ba\.O}fnnR9 ~\.Oj>BS Y`XmsָoSW|m*HYOq'm~̼jony1|Y}2 #|_d|"?}CANt'dܶmHWg+ckK:8ڂxi{JjF/ORE^ӇnC%UB1h7&4;ONG4ei?vS'wqShqG\ N@hݡ-#cv>il6~ 9x{rLzls򼐦#jh? 9UbTn}zʇ2v AʋOIU  C7l,RsK 1 yyy+V7pʕ3O[\xbkk xc& Aww)R^R~1| L%jK*M~ C}s_8N/)]ɲ,IMS,Kfo0h4fddRSR F(JE)rPhIJNiqaH8(2ah#I2..eԔ{xS@Vg#]u9O~WKuǔf;X|{?y3<ƍi4$p pZ zoN2S4Ųl4e905wR/(U;3$d,u\2J3I!hvL ͺFpnȭr١/sKo{o欿ݓI^h8OZfÛ"̃_\|AԊԟr>yzt0Ooxtn~n:aW Z÷\AO?t_K POV (j?H( N`;_3_ 6C}um Y ۜ<i̯x/?]`mNkJ q7 j"]AENZ0 ;y¢͛qWe`0EtOCo; 7%ȠAZ -o}>*%uZէO{C-_֥esI.NG$qi%BS"o?Cr!T]51 )(J\lj@`ӦM/I8E))DrFl~"77%eEQ! EQ( _NGߥD0P'c{Q#sPbE$֬Y ]bSYYAzz:aPDu:Oh"F0(I9I 980`Q$!r@K &lqW KRgg'6lP1EQ"dbq_h(`:a`$.Z'|4QdEyWE`RFAAt@ߥDVpG|bɓn#וd'Q$_k`08y 5JxVW((zm2-- 0YE8N%APH0 0Ey9lT3V 4tPZʠ7[%N~Z67.FQx"dE0R^C"E j0E^F9'Iծ16Fw IdY7 $၀(~xo}uݗ=ť^0]fp?/8Ct D .q DpAW• QC<Ȳn0 PVөK(i4h4(jeYj$f0Lo0p,'(KL˲ b8a Eh4 ærbnA Il6I,IdY09fkiiDt 3 `. Or*orV* r(jxF:zq0,-ٔluj|vo~)OO/l z*̋5xg7<b~QEd{f&I IO%IrvvαcL ÁzNe\e$y 0Yh$裏 V!I H$FgZ<.7sEa! I<7S^MIM׾FQ j:)5^0u:ft+_h (JN3%(-@<$3ƊU6zjۮ,KMR  TJEE"ḸxA%Ip _f^Bon@pX$I0\EIp 7 $Ij{8JUD @px8jK1&,ˊ,c((LO=H{699Yѐ$/˴,&$Z !NiLv '=#(LEQTZ> (ɲ$IcjHN}RHD0$Ե(EQ$I^('-LqKPdQ/HhN4k` dZ}[EC Bxoo#15I,+jh4$a($BP($B Hb8yQXA> ?m IIO73K+3#jV:C=eT@^kW_hH5 EQ4M$PEi3E%ID1.(B HKM $J2r<ϋHdJu!fO?v# I:R7qYYYdY#jZZ& )t5VJjFM2'%''k񂠮Hhi H{:͉`m.5X0/)+\˜{|Hh4~<9QU/BU 5 L¼)11]9 -Kbr$I(I $piKBc^GA #ly/V(`VjCCC###j KEȲ`P ԵeY^b(Ica Pz/m|;òlOOOff&M>qʕ+`pwUsWFz;Fxx*E2Հ x:#V׽^P[h)顡`0~_T q/BE 0OR'J,I( `Bŋ`ߗDYg|ƀ{OIΖin[,A `eYEQ3g|ᇁ``BVEQ5jWg2qy_x#om˲|~:..n6yx]]@JˎZx0L89hT`8G#EQmmm?~EQPN Q0EIA%IX5˗/_^DVs~7M,vm{\{kKd\;Lζ&d>tQuz(骩q߻h4 oNJ0LZvkȲ, $IqqqHdttTA$Q@ SYq8SEe㢑 ǭYjݪgtڻoks,jl0o0L8ja,[&hIӶƹuyZ,[O9S]niSS"DLS²gϞh4CCCE-[lJ;qZC \Q)⫹&z_>Q8>-=2}57-7on% +p OOOW󋢠( p8޲,a 0y,JeI0LV,]`a3Vp/ncPTsu;K*j{7O9˶n-s0`)ܲ؎laTZSmٿٹszyc<%YzeY6 ØS<bYVEEQ9yeI$ /8tU, |--??.ƵciDt8$/㞼CQ>G9 3#ݻj[!B(2zK,Ӭ$Iآ p,Z@/:)q[ZZ_sB*okMu >KIE!K܃!Ft$0LNJJ3%&& DQՋ%88EQ]U9FEQ>n_z< la!vgiq1@WAu]s2o@o"3xXVl8^qo$ $D `4:NVnOQVF٨JO%AyOHLHLLh41θf͚;;PR 'wZv(-`]M2{]kWtr=Ah4:W Y9ȸmp8?yڵIIIcN Έ#q `ͨ 455E"/&&&eˌFוhy7  >Kqy! K mA; YV"Ѩ$Jh IB O?MQԢE0 QQdEQ VkjZZ8 HD랹ǐP7ijHhܖ0 -[ۜ=3;M^M{nr-Ş_nro[`u2e]{$?X9[kԫv8Iomy-9[hR{l-̱X,vgɎTwRۘpc\KIz=2={ m+[,כb׫Eh4FyAxAMj(0fWQEq< s,r˲,txƤjEAP@1 y&55eor<[ }\eCN{Mͭ_njW_$ ö)[_W-m46_ؿr#R v8-CC&7ۦsJ*ǭbmQK^s Ǜ8ː㸆h4OӴ:?Bp…>ufG}ݍتtJхxvv^q|gΜ{ad<胩|P >KIy=7cYiJPb!eYˡ%I:!+$I812:e,DZlcY1h$QѸfMb>1<ͲeY6ڿcO+SXV8H۾:'pQV`YW[9]nlVZ+k]mE'M5Q8*PW]ɱ쪿xo]eqAp]e%;\,sG}zS5%jr\.W[Gt`m&_sUE5,}iZJj)to۸vktoduK,)|!{jo-u; fQNgZH$(oxYVDIxeH4*$,O:t:3kddHwШ0,r@{sk8L{nrBGz))hxz,jfiڱVb.f[PX[@~uS[[[*jo9Pj,V<$i:}'t:%y455I_,_\$uȑ>O nB˗gee/6㸻Jl.Ka4,%E=g1āڝ9UQ b2l B{_=c4mꦠfW?bwT̒74@[f~wgzPI8wvv:]|\O~Վbki֜}smm J4$kmn?ms97s)93z۩Š=od&%ecXeMS9qժVe@ 8d$Kpx8x:Gmmb oTY۩ Ed uS vEQa؊+Ν;w̙e˖}9UV%''ONNNII9s̯K.?~|Ϟ=.b$%% ~ɓp +J,:ۼ!h/)+,ư1K/6VY!l/$&$X<=&IR0jLCЕ+WBёPHDe9x> Ѩ#;/h!sc![ QTPPPPPT\}߁nq{wݕw8ܱcL[WS7[?S nf3 c) e&/ky cPRU yU;K]S9*@Ԩ? IDAT͓wA`Wٚi6>j;V0 cuKjKoJ/E3Ta[۞9)fl؝7w捝2pˎvoda}yOU=2K*챺F\u -yW ^OO-Y8leedtlhh DQ5AEcGGGÑ( 9Y_W ?3JS~M˛ST@#ɴ7 SP4 x5ΊSJ0ӳ2cm =00@too+.]r ˋǚ lc-s6؟ XoZ:mT%Ơק.Y(-5 coF"Q0dp(IJ,^6$H^ɞc QBS\;tYYW_MQi_DQyT0 Ԧ7;)͎@W;f2z}ml_Wa{}zWATn?}֝ @0cnh\ LaucM l\SuKӍ}.(8sioIq!g[݁J;uYUQF5nq{jѺvUyfR=2K* vT5:ONyE,=0`0-@ 0 zđ/!1At:]jZ͉qF}\vdعV_itw55vQΪʯ_\WQUW9'F  ܜv7ߜ@1+ s"\|l6'$$Yx?~(@eY˵bŊW~'˖- lhh^tiRR].hzj\\ʕ+eYt>% ];sM<,ưPa MLdYusNMMIHL)!Q9KJPﵫfFC||bINNŋPurbu2.7qkUݘl2'*Q`aʆ{G@c8%b'Tq\ 38!Ee:k~.ֺή]e% UvWuqEͮYn_]clHwñ.*s&c۱@][EEwCm4ֻmΉ:.7TZNfbEsLp8+1'v쨮kh|׫{uz.%*:s z4jW>j:͵A/&gS U<)zt[6aSS9usئ͙T&f=nWgfKQ-4-M:r$EQվ(RHtz޾`0XPPtsE"M6]tiddgimm%"?+_SO=駟uֵ]zuŊVl6+p8fL܋ľaOX0gkEccYh~~N .Uc0Mhj Mh$EL?,z QE6ؽٴdoAiҪM{ov;ql.-,eU!Ȗp7VW7ۜ9 zzLӤ*úvWUg PmZջK*>)yw^zpgmݻs;d y=n4oX[:Z^?a u m9E9ԡJ};+-j*SpXo{m rL:7R0;`ǎUYUM,UiwU4V8EQ~B'4k)|'S},(WU[ZV^L!jӾ,wZ|5`bslSpW\SUE}&fs2;E[cڲ[vV[(ios[FA?ph4p&y$AƒOŋ֬Yp86l`0$I:~xjj5k.]l25 /EQ^n*++#Ih́b~lcYay۫6ھxu5ظꀇA5ER/EQFzc0g~2wMۏ@Uה+^]zklxu5յ;˫Ybwh]Vo5a}0m}GlWumQug9`-mUv Y`Fؼ`'eq^f1ʹmGUE{vRhUiQJյUA쬜St-+ث2vg[gFfCv{̯Ł g8D҂ Fڵkjڇp8lZ z6!!`0ʲv|>N@4JII!8X NSϧbP23 _@9p 3)4?WYn3,kEm]f[^:p7kjwVVm/d­5晘q[Me[fƆ=;ʫ}X’J'XBVsrr4 In;33a՟yuaV]7ǧO_ew.>_y %{=β8=g1Ķkl]kZx\~fedd/ݹbaY… effZ{Xrg<Q}>_NNΣ];ۨZk Kzv-H=qXB>% ۿ+++s\_~_7l77 |{۴iSggʕ+m6$ñcǎp8m۶W_[l׾{577ǏQ|gnE4I$IAPa*};j~Ѷ_|%E,H'?Ʌ mvEf3b}bI9bX ǐy賈x^r{޲eǽ;ݻSSSB"ԅ#o7P(ݽvڳgϦ bŊ+W$z?PZ3x<ׯ_ܹK?^s΍oBEQ[lKKKnwJJJ{{/_,Ig} N:ꫯC->ԾQ.A~>1D$IVZ.IRBBKϲlff}?  ׯ_ze٢h4r/^ё&]xqgggJJNZ4Mt: Þx -"Mө)))n+Vp:wAu ;L^^[WU 1+zdڿ,===iiiه1L>~=zOG&$$tuu%%%i4cǎmܸð> ׫뻺7nxʕ'O^paݺu$I;vXs=,c_ckm6ADt|(eYg?P]]]8 B.̙38ۗ.]h?=̏UC{ϡ(ool6lݺ?ӟ:;;\v]t>HKK3/`z]]]555eeew˗/,f͚W])ð>l?wfMT ˲E%&&@vvÇgDE0,##c~[="cկy_xdbY6..N/udYOLLLHHP4OիWRSSq_|yKKKcc㗿e$b볢@̜Č!A/^,pVVAׯ_E'|/^lX>Kwvv~$I,vZxSiii`^};88j%IZ}ٌ z35xA~nGeC:L,DCV?㧚1uJA1܋@ 3&...%%'я~t└+W[nϞ=MMM_җQ)EtRWWןCc&***O W^=qDoo =]j:{l&/jD&iÆ 3Ųz_/gz]z6-;;[0444444::vZdd*xb644 S\^oKK 7ovZ4ϯ^:g. Eͅ@7, L&5i&q/_6LV%$$hZQz}zzz$$IMI)))$)o4 WZ,eqWW^W$*vVUnFty˲~i^^x{DP1ɪ(VbnH422 իW1 KLLz  AѨh~bIHH|jb|>IHNN6ׯ_BIII2y4DLQϢ( qH;Y5BbHZ0S?`0)p/t:VU,q|(  xw/Ӷ@T QAeA I`#q$C v ,ǏtIw $IQ3 -bHĸ1%EQP=b'O ߯,`YlY\\ܩSCpFFƒ%KΞ=nw\\\BBG+!!ܹsE<…+VpgZN>fggssҧm8Mlb@<1Ձnx+W6nHjJZ>y>??_Qp8f EQF]]]6lW\f8NV=}VZ(.].7gsa!@ fa]]]K.|~_VMOO N!--vwww/[SBիW&YW^}ԩ@ M:uJӅBӧOp8ޮX~9DaV>&z$#I dVK(vӧ#t뇆Z'|Bd0:uT?EQhd2cPhtt ðVFYh4AD"244DQ(I[ cbð˿(zSN=SAcq7 088?! ʲsssGGG%Iȸ|%bhhHQIl6X,pXM{HxеkP@ ;E"h4 P84<_ZZj< |>:00$-ZH Et!5ܳ_' B4Mk4QeI4L\tIјL& dY!;;d2hVO$x@@cXOD"HDG"1 0LQѨFQCAi:a(8e[ZZH$IV |T l6ݬ/47 ƴt@ VMOOf5q͝Ե`ɒ%9Lz?_ݾ@ }@ 駟6jpTE5B_&pOaT@N؈H}lX߽K>30f*˽xIL݋R EZpߤFn?,KyKZo6.`쎕fZ ްxE&){/@= b/ ¾sȻ"X5Gm^:Ͷ$ z.[7F:(˲,c>iY$Ľud!~T=yl(eP7oE?bf2}̨̧^ fx^ȝG؊^{e魿u^ҋ`{̡ ?8N"(ƺdeuYFdm)50P |v> `XY񃼎Cu^1;6b.l]ݽ0z9gA|i{$mI`Yom4Obdz;=u0,Pt7hkҍ#-Ѷ6gy4;o Uk'>ıNvw1A<@,>й|?un,1֦؆(Iu_c#{`K7d9H"@ku`s{77"/|\Zǟloj+ʺ!ige>"1aT@.vH:G$P^׫koo2tPߺ[3ގuf6 i+C=gۺ;Oڪr;83^> av $/O$K[Qe<}{pŷ7gM':Ts a*}@IƖ[ys&+)>ql頯;ndlVS/Q~4{`ҖXK[|}s+ă'" tfLK ʵcM1 瑒0ZmNd\6D޿ʗ*68#è3ͩ^J`@2+6,ڋ<1 Y2IZ÷_3ntܙ KvvIi:+I_QUVý>vi헗lǻ{m/xa,.Ş-> );UŞg|/k.YwQfȲ@ffvY7gRl0 zÎܼގNwY//c:u|LVW}7& ~qzg:`)%Eջ[ Bf-Yb&pGK"&Rw{$`PKU7Wg53/iy&P_irұ6kP $F} lV茙bq<4P Arb) "45(sMɲ'6efٌ'<~ȩ7Mc8Dm;fY_K%8isJH 8nvfTfYNx&ZXw 1Q>8u^ $bVZT&$ =o5gڭ{}@9V9v'ncH0ܼ* VW8Aџ Nw[+!ow[Ol# XU&l\nZ~a7Aok&z5LqA;_۠/{g $](g߽y-;x-eAo0筲13F!\TUL٠ì={f1Ŕxp$Q>̥"V F4U%L_g0k7;{v:AV7[MZ7s錻,A1fG탓mk1G;ZNHe0K0`Z ;θ9I"(Xy5Tuv(z5іe7s.9ԏFfnzXs)h-Kk<7w1u whkf&q{8 L E؛fl8DRb`0@fPx{"XUTF"@"1G7`A(jNN*{Xߞ0xtZ$I pWc ! C$K^h48["T QA9lg $b>%@ 17Sg(QAjIi)jCj,0SeD 0l*TyM97|wxz/h&I$i{/D H"D @ gLQSP2G@ @@ f8hX1_}'F@ n Nh73u@ D Ĝ%_x L #@ O> @ O$)>yyۍaC@<>1QPH"\"bqu]AU(&W#AZyTģjT MH"V"fH"S"b@0 jGQVf2$@$@1+QEB@`&!B@ 7OU ÑD H"D H" xN F6e Ce@v" "A ˅ A k/i=(cUU5M˲,IfD]-ae vOD1 HpJ0M3D_Y=DD'AWtGDO4M?bp@V{KצȓgF=Y5Miu#h#>;-\/bOo4`xDJ^Ğ zbnD"CKW""Ʊۻ,ˡØa$">P7EDtzHF'I==Zh>GRЗoAHp\/bOFj BHqqqDKp\/bOF` a:WW|,C Moh{bO쯋}_ BJÌtPDzޑ$\/bO^m׷HD$uևA'_}=t55LpyyE$Qf0(z~8hNbOuahՇdzaz4"kGץ>@UOC'_}OWѯ>PF-Ğ{bO='Ğ{bm}N @ ;@ @ @ @ <=VG(]&~#"? Pa߯DK0.b!T"/{b?{b#_-]E D/,"=4H nMIǀJ'Ğ^oW,؜a#TE/'c}IDJ,r}=6~%bǿ5W^E0w Bz-UU# N4'~Cw v͖iG~*`"K"NQ` #="}E"~{aL>}4MQEh7i>O{xCUU]/B'=H>#-D"[L"t7@d@$@%B|4*^Z֘ЉbfANe2tAQ@VđH@$H@$b@O:ǫyͦO 7/9Qf3tO =rJ$@$bp%"bH .]B,B6H@$H@$"B@q\UU^f#uM J$%%|>FlM_* nU$"> ^PoZdؔ@@YVYnz AKG$@U%B^%_} A |c%_}GhFŘR­GLL()Bo HH@%) "T8CHDrV$]=laH @$@&K,:owP8 tsptd W} A PUUk"@$@&Ki,Q/ ǀ~W;t-DD".?䠤f ov\C'A  A D`"pm.aeYR7}#~08cчPY/>d@HDNb%B&̟  ڡ`&eA߂eYAHCJ{{o~gQ.]G4D=`YV$(JÅS\剶K~*(8 RYQ$Alr8^/12ҒIfXyB4M#(D;UUTT{;AC$]!W n4^ bcc_{5Ю]֯_rJB$@p;GĈh Hpe(I!/\EqG34P@EQP8F(iY)Dc.0<a`=}rCt ܊H0locfɒ%-2ͻv30.pi>wgETteI8MY6X\.F4XqLc%(ʒ1֣@1 ð,Dz<0RUUU#XpRG|4z_w48qzԃrpDڃieDCKo$t/HFQ!чa.7.M| G>,~/.\01 }PkH&lHU"s*SM0eM4q( M&)z?;vϚ1 XDY{>#aYy2Fdefe|g{WUUA"}.BUgrȗ|0G?8/붊W8r=*nxsBQ}UW(0M(#sz`@\.HMJ=ڞs|:BE40B44C!%-;|+{mADߵ&4ţ_mb"~x -zi(U)7Urئ} ~]d 4Ȋ/ÏIyq12.  ʊ16Dؤ-ENKJF7]QQ_{ݺuqqqp sSV`ye'~xƓwa0|~4Q b9 EQQAw>fUU}~MƨX)rM}(㬌 EQhWCE14; TZZj٪O 4nԴ?Onqˎ-O~C( մKNٍMNtBn3]~l%r>6#EQ1Eɲ<^дq\mNWzjr|\l0!OR "7111#F2枞ԩ{KVsg' j]$@Dp#QsX3?( &Ě142?X.&:FTABQQ4McYau01;.wQy0dcIԺ] O:+C[bi#Kv GNu#/\n3GOOy,s.]xarAM:`1U1bf^qz~6izʜ.a/ M迈=;3VUDM5B`:/~8cuwb2r3wRtNrMMaݱ]m΄ݏ'د4V}~Uα/]8#BSg7V2k+qz݇AӴv |Zj6NDEB@DQ_%(_VVfcriYn ?|„ 6vwqĉ7V}0AR֕9+ZelVkOʾJC(ʜ.mw1;i XRW,]Uj$d^2ydbax-)ь*Wϙ:IQC(3 tm($Y( J,шbm4Qlq8:z骪8( 4BXaYaRԼ_.?eY&ؙqu'V;W̗%Q4;ԙ]`_1dDÖ'7N>Y%/78(s{$sCVO?{bK+3垑kriݡ3LArrpc#mppי_;^~ݝ*)冥?90pQ=Ïxy,MN;jڏ sbhq_Z `-s#N,P_޼2JU嫫Д58׹o㊟;g/F~r8{Vl8 f>^pqtv(I`;^QYy@!E?qMOa(Jt\NASbIðcH@>}`c2M/J+*@V/Zp޾ ƌsAc63 Y<4KwhꁍA=Ykr Pj+u,;Ffe EJK!摒я_#:Ӌ2~1 *jl=6}/KTO% EtX$}x\ll]}}]C#E G4z3hkhD+zysTU$`04M!0 0 Ì6 r:5PF#Fې R/l8A OITIUDUUERUIU%Q倬,)ҝ7O}cEU5Uճc, <e4>0z^^x'Wس~=&G^Z(xBzwm>)yñ-.ě d=P0re1?T%h1W.C7OeFsBj&#NV`: ,+YmJ*u^`5u<=mtA T:끙;1:q]kOaK7@ZU8^Pv@ ܘ+!i|";X>UUEebBebxx+R ͛ȚHnn})(UU)DE=TEcd3c1ѼdH)`+ƚSr6Kݏ]&*@i_XS[kϿ#5%YQUD4EQ BS3 {N~ן] +@c͢[*/f=Bh\*8"a'%r]F.tmg"J rs=)ֶX_0ss 'Y`sq_P6vzN/?ԺEe UAܾ3eء)ZPXFEE?ԩS駟 PR2gԻEeeYQHb(!`YY0Z-Ο56w!CT=ymՋj۰b_VaplLɄs}50G'||K ILLLOO3fLfflIUMNNeY֗dT\lݾcR;K1{J߀LUUag͚u ,Wc'e'tU6=Y|iLQ{5h>P$I_xIcERԿ7=.1-=-*.Iby014Ii١xN{)$VqGUkhmow{;yAD~O_M~¯}y1+g˪s(p_m(_YS|Քnk HbH7F;QVFw5t+Ƨ"ꬖ d$pQ!㲧˲Ww.(=jp%糍*e&g1vzV3 iҤz<Q~r,%%%ɲt:m6T\lbȴF;=!;iܹLzG$L*ej>CzNlK¼}mUPs4L7-wrogqS\ 6<^Q]Q_HtvS IFcZZZjjjRRj bYv\ ,P Q@MfR%6VŖԔ녾3Q,b9g/+K(!;xd٦[l=>dռ:EcNLVDĚs]᜞"A,?*]23:9$wV/׹b٫єB @0Fc 5{o ַRg} ?˲cM﬘uk!>k}V1!s֥UsrcF[p9m7Ʈ(0+|a0x^M4MUUT ،wL) khz+jGq55h*5aqQk9;swL88)k(@&nz$ W,_]E%v}*&av5?ڹO[~}r˕j۟3)W V`5s+3=RmuGk?ј_ s+ּXRbEq_DX,s-6: =;eR4{ d?}RvQopʙ~ҝ/߾ns0:ǾfVlOiJx?'xnޯ7:׾楤kyFc c0(xv[b\\BСCUUUwu3A}>/9={ CdYE4B(8)9+I2ڮ6AH>\['E=J'_Њro]8XDŷjҳŚݗ:͋feu2@Y}ѻ@d y' ~W_,"<QR-s8aa2野ydZ컕or5hE:k>0H0Ƃ, j0y7ۣ7Ph\mkg#UVSP5M)-DMLg-QQvǚ&c̛e5Z~pS߻dȑ:+@oetׯzYx<6%-qתi$;ZZ㢢JLL B|s:3}OUUITM 1f(4|yQdsǏ~kX%EU Icа:L~3WWWFe#= ӥG :@p D  \ԙ7^lMMN > #7ol6ϟ?wqǽK?#F̜9sܸq{ijjZtiGo+“O>ym%B0t}$IQ֠dw=^ K`/v t\/-V>v ƚb kX4SUvRdټdяGkư %"o(, G c|3fPTU4-&:z,B^[4BQF#Ƙ(EQsIHHeYD1q,Q * 0~_VQ@EHR04usǚSS8{ް50~٦ ܈U\.WFF3&''~֭K,(*??Ŋ#FЇ2bbbΞ=i9s/\j5D1ij [(*,!D1P0`/{aM}oe5a3"zWk6ஸ3oa){<Ύ #GTU̸f}d$LDQo~3Z_8Ғߘ)%6/a㨨(UUq,b Q^t|M1CUŊZ0 gfHH!JIB4C+Ƶq tNV/Z | @}MgѦ ߙ}^cr n(RSSgϞuիW#@ VgΜq:w}7EQgΜAttt n֭[g͚~m-} B9H4T?P>{s5;?hPD45iizcol|<\ 'ý +OQzn G8Ø,/'܈s=gΜ2eJOhQ$ǎ۽{7qOͦ}YYY¨(YUU (I~;6cƌa{1cRUiLL@]@ AӀ#/:JXU58rU :$>85XX2,-נ PruvzVLӴ 06$+;!aDUҰ476h|Ql>;+:?76/&mp죏>1kohdX3-Lo%I4t[ϳXo%$ęO9;wO5M!TLUU֧zjki 3,E!4? ;NhDunOgQchfي***Ξe]h]Bf2 m0 2 O>tCIB Iiȑ8@QTU1LFq̬CTw!% t& ?:t緿E `PTMEUhqeoN5f27R^cӼ~EӴ^v|.\w裏DG7ؼyco>;Zǎ??z}E ܹbժU@1#sSK$SA z6EQ`1`a?ztяuWgLqKlQdYFXEMDH;p(0#/nڴ^,IRsU]-S77}XH̜:uq׿c=6jԨGSɓ'|~wX'@ |] 6[s/6we;ZҽcpɊE5MYwTMŀSF1Mq) cDv8\(KM |à( c%BR,S`cBUU 44ò$e9}D4Y?)+s8M-kikʲqqܐM @ \_FXꎜG ?DQKKKǎ{[5k|G>/M--6V[bbh>so=++7ߜ6mw]Z"%¶mΟ?bŊ[>uxޖ֪ u9JG0 #X?=,{[T>]UUt:)4[x(DuO҇>GA_U4f\ua("a.^xa( ! 1 qwIp8og}O̙3`0={7bbb.]tLIF;wu.5h2榦sq7{oot:~zj(p=M2ǘ -.ç ( )@Дb͊`…EmϞs纒QP|[t}F!G#MQw &i1ttttee*ƍX詺eY ܶ |~@!iX/%5y{RRBb(ʊ"Iqgg'䤡Ddg#}O?vҥKcbbtAvvUU3J Ms C/+kZ<~rAbԨQW޹sڵkO'$%%=C0ab6$Mh0vp[NJA:Sr~a'Pcj0&~, Lң$zfWKQ6w %#bOJxIP!B e8[SShQ_A נ&IRA᝙Y,jX%IMUcI<}:ɖ3t?eyIII>ޜ1ƪ; +o2f0\=v|#G;LrF0 ::z…Wz>ЅнoaPQ!6f) T44t Y0T =es{Aqi=~AU!=i!}QQ٣V(:@M&S[Y0#/fX,e{L*S2 #GLJJk`2EQCCn>} n|>{~_n޼vw=pޯGe IDATO]CFvu㏋1Yw>19 tvvw{f{I@ | 0hȲ EQ k(pW@C0l'bE'//N~~KjTRT0 Ԍ /M4w <@[ S/Yzxm`=ҕ3g..xfÇ>|xy=lW%Z"q+ߵZ*v,˰l ^(mSb:...=#=icȲ(1B x04j(UCeMTUհ&+ "˲,,,L)XaXnYrYz)WWW#BqLf'.UĦf>PWGQMΝ{SO=uXB7xf./b |eq%nyplٓX+m36:@/YZt8sFQpxY&$xAϮxi/8~̫Hc{ģ;^T0ƇdBCܡGc+/+mxd`/.(~΅䎽U/l+?^|lD>DUA0TCv5 WpN M?ω pV8c93CWƯ\ic3kI[OXzmۇ³ *-wͯtxg۫ 3gfLսͷ 4m2/XdEQf9`05a cI4 QUVQ$YJL%z<$aSus1ϰ,1&)8 rҥ7|3//.՟g;v͛OAnܰ93g̜-ٶ~o˜}vO{ǿ2dH( (.E'rTFJj Q=ѣ@ Uiy6Ŗ=$(f綾?넴ťtVWffl:0' np.˶X,WQa1l~Z]<#/fes8{N Kwl=džc qQ6~QdYQUy ( veYTvAB9&&L3 4o^Ap'NksZbERRٸqC%M/kjh8G;v}mMc?Or 6 W\#z୷jjj|?ŀf9 vnz8 vX'5?wN8'ۂ>Q-UL b+^y;+S[9my3l: 6-a\_կ|3%y6[@1.ãa)33Ö\lRnw=j"`Nސ5W ]n\7]kP{IsWdkFeǒKv n۳cc/yʶX[^^^^^uqw&G޳ٴ*n9J]S<#SڳʲcɜnB =cSWG .{e{Xb9l€~Q3{Ncm ů.////?uWZ'sj;"!꽆Vci _uzUrWNg,[m϶%%%b˞P;]9rxw]0w5ɵ~$J(,IȲ,  -b@AD[(Q%eѣᝯ9$"${ҕy3zL-}a Lx<رc|0Ok4bĈŋ UDq/_?w]L;=E5*L+<0a„׻\7#h+YPܲw[9pd[8c K$'OmZϯO]]ʦmkX<`3#v?5!Di#***1i))Q>CIoJB`|`I?VnYXCCɩw^ %vzNvM\;"Xl999 XwxխdԩyGW=3syfDŽg.)%Z'gN 6-X^XcϪ:h08ÑpS0aJO7=''Z2#;/m`ƑW !*? j3)߬ej]0mUsV\c:圙6ֵk-RZn7XPkZ(JNNB:y%6...QEQq`C6'^9g^ۂUkj& +?@Qދ{Gwr2OJ1Lk]޲cΪSkB BݑͫVȳ[2ozi~@ԙ,MfZ׹Wm[33G ^TyfڪJq~`DQc `%d3chljzw(x![b~2 \AbCU]-/.66jod2DYVT%E2 #<-ǎUKmflؑhZtW(_tX2K#DŽ78( 3Bu{_ud6eשKa/-?gԙWm޳iWKo>>h͖.( z /x<#H$IojnhkJⴴԡSwDht}`ϴv*B {osgNP"zz833n2X;;k# 5tҏ~~&R~~?_ݻm۶I&=sE~},裏^D T`ؽwkRq=[>dgY'f˦b,X^j(yvIN_w\i_<`9g^ֽGo]ں~QĈg^':sCTv,y A:*Ϟd0A yzKB>[t]h-_lqWu6 CG<[rTdX{\T׹f 0 B/A1'Vs1mRk4 9ڦoOsLV_=h5SFzkEł`e`f6e}q 3Y{>{=ZYӦffM$bOOBl6 8yRND IDQ$LM4 cgoޖL TFOWc2hӜ΄|qcvoAGlT޺MԖE6T.)s]ŖnQvchnڶo.{VD/ k/ߴReC B\yʫRO$BR>l9qunf g5st0>a Z`Hqv;NV)Ng5`P(J"iRAoH'hzhݺt3[ǹJ7ZXHLe/SlpՖoټuU>h~U5o׋.j E.ٸiͦºwU̢Ҿ!;v 'R›k6m]6mT|7MFFƒ%Kf͚rb}{tK,nO)_$gP,|E+bk Sis՛rnHހT\4pʴz'7-66G!5F sp 0s 0#RJ7logg_zBIaAOy#-A-HZ}f>;ȹorŚѪLA76|<CaaʵyoE#U1ᝨ< y K uTBUcԕ7XBsU*|!,*PSm//Xh[ؾ7 8!@ƩR;֦ 'OeK#Hʏ/}47 _hۿ ^R:\"{|m<|#hc8Q5juZd8獋ST**,;UZO꠴Hmڶf=41_f".wUo_̎%Evx/r] fDUf(ݛ+7]bSSBXuƐn1\p__cOLL/Gaa᷾ԾG,]ѣvJNN .%%%7o*OWBr]nɎ='0e c; Ee9sOLXoAYvs=kCsaj8U"I 0L0ρ%L)f~οZ1UzJ5 o 4\pUrZ}inN:.TZ-'%+4Fk@D:y_ܸ|Wl\mdn9gݖ:eڴi?cz!382etmYa aM4ټaüǔv{޴.ltְrM[_Qqm:]QݼeGm`.' Eh9sQg8E'cw Zc5n\[8xx۶v˒V/*2V]mlᦲ"}sߺvWe[,9/yuJ˶b+/Ϫ+)W$...nB`tAo2¶Q6sW8VW0@+XTm=ʶp..QΤ*վ/pm; ƝedjO\yV_({zap+S9LKD F{!A"@j9smmmOC o}G~Ȉ<%%ecP)cqxO=m>gM'KbjKqRAŘ˷lyo QMեyF|ʢaU^DIDIR p%$I  ::!7ew8?:LJT'1yQ@w2MH'+JqPbg w^|L6X]lm EkvlfԲxӖ5_~qӚwMvo3P9lںfӺC<#ja%6Gh5D"T~ 5[^;U7mںa&;zcޢQ=C"cu[woZ׭ضdžMdleCt./?\;xz?a/_4iҠGa:::Ax<aʔ)#Vo!s]yu/l@ 6X(ԼE7yԤ2Ŕmy`Oٺ=n{pr0ٰnGs 󸺝eN̔>h͕/)T]ΖmVfXլ/\lX ykl^@սyǓ0>Gmmmooӿo_dI钒#G,Xs֭ yyygNMM |@`w0p,}- Ŗ-g޽4v +4|mhcޒ787b0@Ml)3ZU#b GRZ݃cK.H$%q/ε~@j $%>q{\=6_%4NmVmS) 1'$ZIխT$H3g={ٳ?N4eّ]@vCUY= +}n+22ϴfO%h4UV=eY$)RT*j)A$''=4Z)کiZaXBBBnnnnn$I,˲,y(JVǘ7}q2k.<$D(K&cHaR+ aK$$ @D 0]J 5zē`"K JpA0LEo@A -Z4R yi`2 vmtݎnpTã׿ʿo?At׮]s8)))4Mŝ9sx衇Z[[^orrrBBM@tBBFimm5ٽ)))999TSNRT>Ν;}QyȞݠeU(Zo0fJgD-qRډټlٲA?u{ퟜKԪ}l v{g⎐m*(^zb$J"& "FI8(:;R$ b|\ 1Q^I!I(I Ǜ`aT"BGW) SRRd'n_xD^MxbbS:;;IZf9k%%%z0 EQh<ԩS3gΔ\lC=$3囆~ $SNlq}pZ:wB iXl̢bQ^ rA$6 ~؀(/J$s%$IXDI{ڤvQ}"./vc(@@Q ʛK"$ĈpSNŋ@wwwoo<<0v.\PT~gseYp\Na@6&v/]rۻ=?3_,˽6-\qa4AZ?5$jgΜ|ԕ }+kB uĤU^uNq(Ic$ J$qcAL9pQ[%&FRnx݂ȻqO &%MZY ]⤱9_#wB$|{(qhiizYffkmm6mJKK &Mjmm6mZOOOwwwzzjMLLә($yԩB$f3afq<==IVHӴ`vZgggzz)STr9EQhLh.R($ˑD {7uSsR):بVR$8ra!wU}_5_u9~0@ p "2 0LDQm0ٻE jew~N@>H j:mJڌYz03;;8)c!"w/)bVi r>+O6ME۝?ua<^Xs@ǎѱc ֍Qc1E1!٠>z$<˙vP"aXpYNOOG6q:z^b$)zjed>pEQdRSSe?ڵkiii.KK$˲N)ga@/~w,xsڗ_~ẙ!KĠ[ @L(b##:E bw:3gEQT|=P!s:2jk=~L& > s̕W "&FCID:z&Á&)4iIo:o=: %sn{OPbnѮ3lj&aZoO$#WW슍cHNNްaч/==G;[wJ.=v`8 4tcAy*0wr~p@*ޘH-?0@%eHr7ͧO~&exڬ^c0MmhVaSλWadSgj[tdG?] h I{6awv/FIHD:7ؽ1oj*?t<='gƐco8,5&mk&,#y#5=Z MB]bLCGyf8WBיjPEZws%˥ɤG^PDRaToU"Q wZ2-{扙*;^[?tCɳ?(3B59n6d/]1 YW ^ -v3Q)Xr~C#k=zp@I?"Z>Zdux֟cO8Zdc#^ 14c[if'Gdç?l!o>d=n:^ku 3(ј<}kB%067GKmvj$z#-\,uzM$c $bnm:,ɘ qp&M1ڦK>zjd T?, I|Teѷԇ @%e4pyux3km{~wi&i=^yC7%ᰶ9Q[֐rxt(Udn l/+ÓtKw]N2'{[].3ETW͒Oo>NғWZ r#_ݼID?"ZZ|U>X.LxO79X@$7iǟܢU{YrWmbcB< 2~WTv~vif)yӚ٫O5TrmI# y*:`5gojrXj*?twr jHREN-y!փD$y뫦9}u 43V~wt۰TƢe}3D7|]:lo>u.a,Ylx#k_isqLe@JJJJO2j64n>EzƲҙU,Vif~ᒥr/K=w LV^ximEC'l Z]<7dE1q 1νncV]` )?H-){Ѥ/OrTVF 5L?`NQҎ~`[8Km;EB#yVBEZ-I2փDuc ͱMgC=5CvLXe w,03s×U6ɒV⩥Mfg*>jP'Z&vF: 5$YD{-+LL R@"N|jFO_HCz *[TbDd4V"iWM6L2j+jԍXWʏY?֬ނqCnn8~Lsn"@0Cl :ꊽKkS~|K\I0[MkKQDEAʺ\n1zCd;O@vyV"#Ysn%3ib$c(8dLCD8xRUu9뙃/Un=G{k t%3V$?sv߷y= TysvKZ0%QYO}/G?FրҐ*d@%]y@h(OKcTu -Zk =93K5hD[kd0µ[9{ )0$kk2[ IW9ғh <&Pɡ{Dhу|m8~@e+BuEQ$|?܇ o+!ɘ98T|̛hjLIa"ƅT*>ZV})sN^v)RKmjڀI/i褡ϛMu5E'5^M &h M ͜ 7/yTO rgZ-7C5Ilyi OE(-Y:/v ©K\Wmg3Ӫj^"\Y B IBI*S\2']VCf&m6-@LӼgjt:EbSf/eU~$&H1&8Iq.]:e^>-fS\Z;(C:::"t/dj~5>LT!QV+ $I$IAP#' A5y%B^yQ@K%09A"wt*k Q mnۭT;n%ȣ(z@WJ%I8u D!IR (@o8m?D"냜I1%!Da $I\{b[(1NE18 1A$ð&1Q{$Z&j"@ ؽ*bH?5'5@ 1f @ @T*$8{Ÿ @3 "$> @ &D(#@ r{m4$$b) b JE ~?t~ƢH")1bJ <..aJ21U* ָET}@@LXED S"!y!Ia$j˅A (\.1x*lApmI1$Pob"KDd}#-nF jZEoy'bHH"JDéT*:::P q@ "a B$AD H"D H"!XGGG $I~_Q%I8$&&jZntj+8IJ$IA d JRID ["("B$csH"- $IIE"0 ˲ ~?k@܋(JBdd[`tTF w] Wc0yI1%"xc7D U"B;11x jheH8{B>BcQH"$H"$#"d:*." Olv?[evtD H"D H"bHEGG+Ƽx$XŐ=={9q^>P<~-QI^m@_xwHǗSxCȴGwB0, l;>#Bn!$;!::бt_=G#b~c9~P!Dt=_μM} KBu,nm {dG~1CZD H"D H"+ApSE.9+G~Rn|/J%aG>U418.thPAd"bKDd}@@LdxFc~(ʁ`ۏH" .I1%"HG[@Ȗb(n #@ D @ ÓyUEa=@ E GG$$K0>(ʟf p#s~T}@@LXED S"d}_ D1)N"> p!b} #;4B B1&G@ @@ *x,GDՊ@L(U{$@Lp #|P(B qA{_ATQ! oT*%I8U1A$"vCϋGXCP"^$Iؽ@@L4d'}}Q!ʾ}?F:8~rSDՔ`G5uOgbOLy?xtY,cHq6 sRO!r_^YeFTêUͿqJcxU_O/Ij5LIII%%%#X఩ F(u76g<־W~jezt֏ٚ7+ܮ8f@k== bF3 < jdx^q2fd$%%)9&8æ]LKt"㏟RxMS;91?'W!w-ѾC/mzW_)iM]_]yrp+q6vV*KX*6QO%}齣s~P(sLk3Mrj^-X\'-.W>m'FqҤI$egglq]z3G|d~b')HN=kSO-@śU#/(xJ馜;.cN<~7={fEYZ(5:ga"9s{ǾZywׯf, 5R PL}*~0K.^;kԛۏ}aկìo|[_y Ճ~ތ&ʡתU_ZP)f?6 X<Y_lZGלOPG>/ϵQ89 @_wl٣N|fa~;mHsOWPc3J9se Ql6c,N3o(g܇\g;- ynfڂWMS0%h֪*u͖٦?>1 h}Eo_\W?WOqL1j""낾wJ?ѹ?h_IZQ6% )?rBo9va,%g7߸^vqH}E͹enQ\_ ([%4$/`s5Cx$j3!Ir)HJR$a\%båfK˨>ǨjV8?A7...>D"%A0==mmجɓ'rr1BI(R8>%Iy񪵭F7:yW:%_s돶w,Ԑ > `=/îzo7hê-gWLUcL#Z9B{rIzۦ Bg>e: z_ J|sm^yEa<}FSnDU48,vrNĢD̋{ek>56ܧ;LDARTTx}׎8mmm8.I~?'AG< 0e1/qutLNrr_vEQt Y!&v"5}޳g϶h5$uttȂ8sK,V(JI8888AqJ-ӦMrðpFcѽP?~fwX9O .{'n&2 yX@L^;N\xabBޛ!aaa+Fr~_@q2g!Iz@r(Ys_ҴLqϯO7F ī@ƿ7p7skQc9T[vs&E<Kanc& op H`a򺲾W,1҇Anܲ"1ii/hH O%"C(p^jZܠDLK.'?~ L8/@dʟ_?d^=Vf<5oY?G-'oV&F !@%)z}Cå/XW}KmOpڬ$ry8.nKi?2=]{UPBLlð̹s$&&^ro;uj?񏆆VͲ\ KA ho`V(@tuvu^'>cY*}W:Ux(G oՌgm7Osǜ\JdC;ܮ8ԉvs~ͮЮ7H^dW[֙l Xٮ~.5,{¹^P?y^ۭs:h=4)ˡmd-0+sIP|aO]pg,i1jtK+׽6onzwC;Ȱ*;v;h<_~9  D̅^# /6 H$I0 1 xD0 0<m"QܔHp9ooQ'4/ -P~~ It I"B-z0kmb;] \[ü܊W񕿼}I=O*S'/e5ܸl*no^g%ҮھgȡsJ/%FBqqqtv @)St:Q B0= sڵJJNNQ$,8jDl6[z{33/jVTEy qQJe3S:N$B!bK5emmu:V DJy%Ip,...>!am|l6{zZ؟ 9?G}; }aq\Wꮂnn FѲK$KmcPQq3cyG<+;yLy"mYى {װGx+d-Ȗ[@ꖀn FK[nݪs=@˽}y{~UZ#De:-&hulg^!?_;=Tp+w'#O'0?8Pf#fҢTg\?}YieqTHA?7Sɲd&_|')tʘ'+r{7~yu2IϿxS/M?O7Nd0 Y @UUAtȊ2i*uzxDeR(K{+]:Y{oo\-$iY^ܯ/2G go˚!蓵{lӵkϰ۟W?S1+3֭ߴVkO"k >}/Sj4l,x6Y*-+JQ$$j*93==];vr=o$;uBQ/b=/g~a7ljܚ`Y6 B!UU=SxM-EQ$IR$E$IN(,˲,ɲ,ɒ,$nt(;t߿hΝciD@$I_*j IsU/9} IDATAzF)eYaYvǎj+V$I$ Dʕwk:e%YDQUт( ($sJR8rx~cƸiвO沙36WJ5n*U%^"On/Sez=lPdY:Nժ*h4D )/%)5"J##'`0@EIFCRKm3L+a`Rz$IIt(JQK.dL YYYPHUQxא$I$ )*@(W x1jįɊQbiԵRwm5J,+,K,ɒ$ɒ,?Id XtG/``Ahu2iǎ%i˖-}}}AV)UP~^<"+$iZE( B`@Uiz (C!IAQA8 ^x 9H 0 jTQfcjBP($ɢ *F"I.J4!Tr5QQ&#"@( TUʯ'M"<%K'~~D:=B ƜUUs^O֫sZuh4AH2͊"`0E7 HHDɯ@Uɂ JdئFR/ !H (`B-TXa|uZd 8t C#S!q5%IJJJBYdY( )$I"$IJ9:h4P$q$(fT)"A} RgZ5p.[;KzvO``,Q%77O"$I:N{YONz9+f)Y#DQ:!Wq\0z豍 I TdyYVHJkLKьVK`~䀁@ȲFeEQ Y`0t鮻b9QzF#˲(AȲs@?t:#:&1 ࢥFZ,K.ExhQ5 E* HBQРPYI*.)YrL# $K"K@jLQ$ٳpB˦M FCFcjJVqk9)(B T"(w`eo4$Ie G@9Μ?ߺu/^[Jө(&hH 0i-p ~7aYߑ?UUe9{FFEQΝCZW^۶mg [HPUАLHjJjjɆ $IʲIR&IJ j:5˗/^]wu颇5Ȓ"i:ֳ@H@eF H'P%r8&BCjH$I S:_!dJ?ll,++ˬѨ*(dNpA4 `*1ND7 ѦhLOO?|JJb9ulH?Bگ}kOsssׯ_ѣEEEK1xK^P})Ѭ^ZQ ( 4yȲ0zU(gѐp \r./X%RUEdI,%Dٜ._h4CCZ-5Y\( 4 q EQףM#(mP7Q$ 5y^EE)\@Ebvc`,"aT(+VHNN^bEEEgΜs8N:}tyyy˲}coowݺȅ5RVVF %E̙3,UUmAQTfR @BQEUeEQi,[)I*c*^l Kx#hHEQL WI@PRZYAPeٲ:.###33SQYdYDU$LNb/{"?QX*WPUh4OOzMk~~{ >CyӧOoݺruuu577?CyyyX(caYKCk=HtW.ddfjZEQHihʲ$+(%6*, /(I2 })))x10n9h4Dfzn :Nӎt:EQ233/|2U֭_/˲4iu1_HYH¿nݾ}ۻz~:Xm(,eee/ƍGHIIA?EԩS%WTTdff"e 4Ej((J,+ 4cp(bV~Р*$-ng(mr-UQ_ W״ ٓ32[}xE-[`@9yOɤO^Q6>ذaC(8׬Y@ssvн۾(p-:w`c[Odz;feg^NyGw3kݹ㚯5Ź*Vٜ_ZlGGB.(LOO˚CZ IRCjTUD UUC!WwzGQQ8$Q 6,_,D󬝵wDID[l.o['o~<-e-?u,kጺ~g}GOq. G<[l7tP(*H(IrJJJ8 SP(Ȳ,ɒ(,<(χB!lܸl1/g(Xt%WOBs0 K{}^,Ϩp^災{*Lw{Qy\.\%~?Z>>@"v΢NY vWyn羽ƚˆwɱAwS犛,c:,*Mh|,,yWֽmZZk*'1zx!GAtZN++LQZmX.\HeY^|9{ FdYIE!H:~G'7o)MO7! B˗-{^hfCA*[TYn/a]39u4 uKKs Q7x04q(PLd2YeMёQłʀH@hQUUe|rޞ֥7AWXQ\k0[XUQ 4@:_nGi/|\g,fgd@ϨΕ4:|u9F< 7Dnя~?~GOnnn޲eի}>ߒ-nj+<Ԓx9G{*\/ߺPQa;koh6ιB.HTAzI 0yyE)*$EB!dI%A23˳ )`P,:wW+n:zVW['Nauw^Ẃ|nG`@Qea$5`:"I{CQU 0EQҤ34-==--}||IJ Xoinޥ9sWeq5[Kw6uN_ww0O[/~}lqQofYs~gcټcfj}ZNOOGݜ|ͻvf֜_\Nܿn5fk~qe5br;;u,t6M]hژ"7-Qϲl ,Kǘ836Xy`|kފ9:-s="EQя~\2׿>vӧn;׺7\gK-oh/ϵnR_iY5k] 0d3fŶsW~UjEfSMsgˮrS^3fmRěCpȭDn2Zό(P f`G[/]Z[9vVWN8rti ápPBӴ NG O%EQq\88 s))))$x^e-Inz`ÊA|VUTo;X\iY=QB1baVs.7G5 AWiwolv }]'xkIeJg}>낵b11!r07A{ԞyQK/r>쳾O>'OÑ7 OM=س բ˖V*jJsΞXv>AhjhkPr_Y(%͕,7v D_|WcC{ac[k4XT tW׏588 / $ @ 8xY50R.x. ƤdZl_ˡfNHsouҦ#bE+.MU+,sU4aޮ>Oo'Qb+h94k*g.@yO~GC#x>iX8b\ pBv p EQTe"x0ǥ |RqC]wXdsb.Et:NHY#gvlv>_m#W8׹Zb gk @bw5ӌz"͚m/}tHl뭀oibOu9W7CX_~y{Zn_ݬ{QRRRR⨨~`[i361$~kފD/:!%mmmdhh////$|xQBټ|~ 6m6`͚5']f^^ =<lj"J)#;MhIP#0:\GK-s>RlaڛkMuU%9f5!Yl>b;;}ԞqC"48Wmq'j?BEq ciu)wu"XG/Dp~?7}"z"NHII{eN+M&(Z\pp( H B ]W-o=O[SRom{{mmq^_9 nO>rZ؊lo gK:AB6* c)0 ^|׊ܻ3L&EU0:6z.{/aEQUE$縉P($IUǶlb0:@H$IB&˲{9?NE<릭Y^ԉ~O[Xv>y 0%^;DZmtSim@sT>ޑf_Ik/D7u=!Q:CĝyM% tX4$Ռ31vk1ߊ.:iIh;(_~??p8rssX~GE)vw?O IDAT}WQu>|uuummm(>^MM {/u]4M:t!I,+++,,DX/SO=EQf @6Uwp뵶ףҹq2cz> v75ieJf+~b}~4;Q233ZЭ%Vp\>ҵ\=.,so7A z%sltldg0Qp!bju:֔f1[2F]uD ^-/`qs6{*jw;&Sa1mVlg]RmFvU H\rJJn\vv8GcEt(??`,E ^o6g|>o<9Y|z:>>~ehNJJZb1M) ?I9x}R;j;3f+g`~vg/m.ffszɁ6]\o*| K 9P^ٰ@F}L ;Mp^wuU3*M<ߵ#wPUU%/?_~ev(YYYEJY_TWWl+W۷~?sw)B ả>5yΗmyGSs]6iops[k].& WŖv1+, _=uDqeKg32qio~ϖLsJ^g=g9t̺Y 9zh䬬 p<á$u:R7?,`:lW6U[mFpngW6UL,gL5I Kf?L ;ρ!njtx,.w@d҈./0`,lrT| E1))fhVjoXLWGccVoQ!7py}jwm=ɇsvwY59qD0{vupuw KM Ʀ=5FcISL!{_1d̶ƻ smʃ s0Χ_hoMs3;-6Ӽt9׭;4ܽm5lw[&>c01$rklqvʯz}=zkU{?;v{ޑHccc0 BǏO~a (In!t|l6gdd|_~K6nK/`P_|Q'xB^x)h%\Tn[랩sD;Kʦ.Q1׳GQ]aZhu_y6Y]db涒j+Xliufଢoxs'ke}iɇsTOg4P{ʟWX-vh~+nlfܽc힚]|Cn{_|uz*}/袰5p8Z&?ʒ$$EQ4KQ5dYy>99IYV|Vjjh:Gu6xgE OUuM5YI 1R;Mcb;Y׍zy⌳ hi;6i- `h97W7Kusnػ=ΦzUtU%Gp=`NzO޺*/K[Z~2|`Osu^XJj8jޮ~y倫nwE04iQXqͶ=uqjOkʺ"lyG;v^\q_tĺ6c̜ǐȭV$p8Gȏ3DoPUm+G^UUvڵk1E/p8P%$I***B\1ژQU珷[:kbtҚJs-]\4bw-^wZm MefE&Zj;*!W牟&D_Ewxs'Tr*c6T־_V\6@{ƺ_Q]r35^`kﮨfgg]r%2?Ξ=jZJqD/_f&55w]|< Ij0xOVV?~YLaufOuԼ/T|;cSke_[+WQS[mq7E ANIN#e?FZ{=q2-yR74ԗXdG㾺]`̢_|a^xd2 BZZdB/(*BptJu}Sss1Ec$Ÿ4o"bll [~'jkk#%ʵرcISizNRϝ;0L$$I4xnE``D1@v>8|(6loݺu7oNKKӟ /?NNN~犋+** E`0s}.**`b>|_IJJz/_\VVO,dq("?`:- 8p…={g?ۼy(E˿Ν;WZ}7/r)i bhy10`ڵF^hjh"}b~ hiq˲ccc/^e#d2X"h4w}$IjwjHNf3ANz{W^ye"R. Ƣa۷766r}^{mWZuEEQ.]''" јxxj˖-x< ƌӧO؊+r3gH/A;SoT cjo͡-[@K.J*r%1::駟$qܡC~^A |###֭AO +W{ھﵴPe0>Soo^xqʕ_ye)*,,St>ß~$IwuG}m۶{wttԩSeee7N)Ieyl3pVz{} XLA('I2R0bHD 3ZsFL , CCC$IjZarrrhVpҥKz~:nʕ鞘|A<0Lz{{9kmm ?X$ -`~<./m6rKMM@wrss'&&A>d2 {^qy9+˲?z跿mJMMEwy衇Ks~@E~wb`|e&IҬ ͏X( Ea-c) B HJJ8NUP($•+WDQiZ3g>vEQ44M)xN>=::ٳg^m{=T9`tttbb񴵵l6HQTRRґ#G/9C~bq k3q#V0wt׬WشiLLL[Cu(Zr(qk׮EL Z+Ik׮=rss#@{YreVVp [ %%%k׮MJJڶm#ةS>y`0L$]|wn#1Ghq&|oVtb1E``$EQRRRdYF"5N<-2DPرc(f1JS<ϣAHtdY?#QD4?ħ^Ho GZƝ=98 \'Hdy睲2ǣhǯ\r֮] ˗/{իW_p(cXpݩ>/ ?CPqq#G233GFF^i]8Np! @ @Q/IbAN ;>}zbbb||<%%E*&&&>?<55qnN0 cccccc`{ʕ@@/;wwq?o  EM #!"jrr^pBRRz{J{ʼn x<)))'N(***((@n̴4Qc`|* 0>>qٳgF^8nll W\89EQdz(+))iHR;q[ (gy0" ȗ40 łXd٬uPAŲyfŸlRӭX"33h4\299`0|>V{Tb6yOJJZx D nTEu1 =$Ih)$iƍYYY׈( TgFF,iZH1 k)0d' X<>~WfɟoC6Xajѧ:7N"tcZR=gGڎx<#AU< Zr 6U8Vyz:~746,>9C ]NIRo̶wqH\ufaO'1`ĄV%"?P7qeZdU|W0oz2_|c lKˑS q0d6 -[ &UesɦY 'yd#' g 2{S:{1|I EeW=eę:}~0;?.Y/t1cW(q9bą=nCǏ '>;7D͝b, }/b~卉| N' s8<1WP7'o77:y?"GeME/@awpoV%gov7=EVipw+e4Mȑ$Ng'gG ^]{%.z,y9Lb,mɍl#z='99;pmQbVI[۸2$G蹯c?ms]]{?L/=¢t-?)0t~г4 0 fk0  r'gޒ@YM0#~ K1_唊ݒ8-x  oCC挹;$eٱN'a0T$/ ˲tD IDAT-]y`Tc5f[0ORk</ON{*X,Y;}oS^a 9ɓtLE磌1bT_.^K�#7;` Eh'[e%0`gX<똓`!+WNqZR {\o-qn&Ƙm8a3"A_b\$C} W~oߝ $C1`M "?PKd{?㑂2Ȟ2 z:s`EvM>z(/8]2mc97YG#qH0LQȶ^>g]A1rcĺggW2ob.*+::ͪ'7G:utD@ Ά/ V4f3\_#t$z /1dʱZ x _.NKпl<.Hh%/Ş:*={>[:<<똓Ǒ#CC=6;f<NWd64=#@Φ?,7/bgmH' {H_V"lTg@zrZdӛE?I=rq٬5e[7,zt:vyng:w wIͲ9*ʲ)`r?g=9 zm1"SP`hp[m9E\vllt9ڇyϞ5'dv~=IҬVH_˞|=r{1%0Ţ2IfۦU 9IgI.-tL*, 6 @YM;ViIYq@MeEٓsΗbOϫ}~kAIaV9=ؓ`y0Nxfیܩ%'u ܼLzSVm'`9ŸaC;q' $yV>t/us֯"#~j7~Bθu O,ݘ0nwLErd\q ܭUXn΄X#Z6k&FfN4ƴq(bNbhZ%I^``ދdVt0vpb`!)&?@00 b5R'!"Ir`Ȳ F$[wg(g$'ƝHHy!>ED@nX h((J00@ "A~@ ;"t7DQ*xZ100}`~#Ẻk3A' yS&N100(Y"000pT^^w8eD|X)SD~qSD|~DiAqA)ΤSH!(,N711gĄN# )S)Bcjrri00n3(`j!"0=c)">?`C($$j@ {* EQt eI2`r5`4ڮ="Z^ _RvއS:(r(!Q?B"*{ م%o"Շl9 B~ǼtτQrգB"~@qEk:ὗ 5Ms<^__g<#,0m~n1Z+3rBP E\Cġ9Nmr!?1UUV+c,,Bkcz("!RK\[m[cLRb2Щ1+7hCH;_h1F6|24|׬"_ VDUUZ}b:ƘU^ N}/O(*i2U/ˇitL!H9 k-<C?&$|B!hԟ][Z#sFѷx!zdKuwĤ-.qv_v8Ղ56RxkBk}V]i.ho_ۉ?]=p}m$ǧjw?-5{qX"tԣM8s$6nHl,YeX7ݽ:_?4'g9}ѯO ַ%⫭us_yォAKoef,rui.<3fl6Ly-%m,mss; f/a59m?މlUA՟{(i7|'(F+5msu쇻O<$qJiɂea:&g >;_ Xǿ'3g@ossuAł ' iKfp^~n9{mǛ%o; W>^.839ݩ0?MES.U/w>h/OJ'l &h_o]/֛h?܌V٤-.6ꊳO^ں{]?L̶쥮9qng/ o0[G ng/Ww/1(/>=|Q1+Xoekr:t'73Qi ,]DǺu;?*?svM1IM5S.]wǛ:0~4Eog8~|sg8I󧬪_kv!Ru'fwPN|GwÇl|eo'?tfOϒ.ooޞ]"x&8f%z qo]v%ٻ mӴ7>fOJӻ.Rd\g4&TOW]]Bw1]¯Bh*Rw7;n ?__skY< >[[DSSnث?Ry@{],wnq'׻\MO%l3~9?K ,xym'OĄ%ιu6؏?\\/Z|hz ݿmJ x7sÓפZL^nxK+yM7Ͷ8~ܵB/ n!? ]@cb]47xV~'Xm~FUgz/Lḍs3K5ܙ+<u..?=L'|6l -sZh0c`ăzA) R fQm^O7puzo[MWtB6;nˏmC('U}V>Dh*Ͼʿh2Aw`"?6Ig\Wp<zWT1\j2yzx8aYݽ`*\Fpa`wz OVhXS;SW\_Ӑ4&ϟ]0bMgL;M7j;ZkEf !,&'-0K̀:狤w爣'/^s}+}x{)c ...mZg^_g>L$l|fs:Tf=?=>z/{LE:?F4&}f++X>q'4U?\irfB )d*~ݎ岂̧ҹ;rZ9K^jNޙ)wq%:W91^=zha6(͖NghE(3]zIRs\-!3qAN{Q>Ad٫ȓ~v/vl;|b \}D|Cg>WۅOr;>wnxPEzɬ#9 LU YG/~ۆ"X'oA 8sb[+E?b2+rO\4qrQ"x7Ўs_?y_~p`[:gWh[w^0zw[?Ypɋݽ3-[fxd5?iooٳo#@7uNx7UϹ\חt %o;?3#s,@=it&Og@KD0l2cN_B!hh? E!Nggq~QWWh:N~]]]O<Hh4`< tt:djXqҥqjǮW;ތ|w***FHΝ[\\0G}VZZ:{Ic bU__/˻%]\\9D\.yDN'xߟ I;"򆆆GJƅٳ'mIZ!B=B!DC!Byh4bB!DC!BNBI!BMʕ+BI1B!4\4B!,B!h!BX!B!,B!DC!BX!BaB!DC!BX!BaB!L& ćb1X>aq,brB!hJm<zFvҪTZ-*ڙ8KPnNi!BDBfR˼})ig*%EHܡFL2B!Ѓ+р`apU@o:饤RB!J4r^7iL#BM BKrHV .,˝3+$cR N%:ĸ(.+*P$Ņq}X ֬CXQaQol/hlP.C:D!zJ4y) ҂RKQx썐EURij;WɛaoSTQTT&kolG%@X[àI|xuN.%$Um/JUҜf۠(),$QJ*}#ͰrqB!4y/mrJ{Dz/|voVc^x_ 2y`ʿks  eCv$߾cݠ9;,B!\&k}X,K8;@aKV 7`X}/gg,y!+$ F 2mzA֢ ҭ[qQ 9ŢDx !B>euVXzJUUZZZZtTZ` ٙ\ @TP. XQ X"SfnX |B=%R e(罭9"{#$iUaxagAc¶J|pB!%IUH@z#\HiEDE}z)ThUt~gt}T0vF,B!4uL\4mcMm=}'z;qcU7eq>Tp ? !BLT>I[<=5rM*mXsTF l扙wL aB7tYN*MUEw $)M9C>=j,yG!g--@cb)mcBBV|ba ЗnXJ(:Kq;@_uX:Ҫvh,UFPټsVҡ/z^aTڞ6Y"C}'Q!q^/8}&]E)!&j廊x3͕rP"Q-]WO02]9 +ѕJ>JUW3.ylj6|]W7p1$.Lx4bƸ[5P$`[_nJ[TK9>x#$P)%W02Ȃ tГV <ħz.i!<Ž!MQ_ "6} BC%(߶:Z#xme<ʲ!<:s`Ei^RɠP9@HB"IGIH=6hU{u] g ~iEcq2J(;v%z'cǞ]juߺo/[Z[64=YWc הdٍRtak37Plu$G"[=8uְGhz?ko?O$ +l=lxVll M5RDIP3Ö8&3ù]LJSuF#EQcѨ8²ii*_4`鍺qdי<(<3ESc]qp)7҈H&ɥh4Ȏ/I=uMڪQzV~ڸU6z.^b\vX7h⋴÷M:Iv4V+0{E̎?޾k4Kw3ߑJMeumGCsGaSʚ˿:3?,d\ FxrOKnΖiz6v[tbѦi2{UKu,?S"&RK ޗ\ydKx# l6?.Z ' !49<VD;x2Y- 2" HJ kzIҝóWdDNDdsxl}m% qVA+y:c/}uUȖdUQʠ7讐l^-b Hf i ;q*zx,23p]LB &ji7ˏetmRˀhS$:p\LN\ BhrxxoPJ$m5`ousw託(G G;Y[ AhvXaM7+ ܉0]K餸QG#mk^}nS:UNUlF^)~@[!/b :u5*F0a[: YK~`N}K赶FId{c7Pa˗^+W!~Vq Ь[jkTz1! L˗7bn \(i1w(BUԦ/ }i{.xFmEI&NDGD׊IZPC1aR&+VWf ݇R#ZeGG~X;zڗszhL$WYj芿Ye{_X˽&Jl&;{IT#Y■a37 Вu@%P) h tW+ `z玆Lh~ @E7vfDZܪs IDAT(i+Q4wp['I !" Ѽᳬ܅9M[uN%K(B8#MyGЄhqC7( )"H4^laf:=#7IoPDrnS ݗį=wT sSrm:Fo:) #u4ڣYIK{lڒIuzLO9@w1- .-@`tclxY`βne'"U>n6%0MgԆ\~ߐ]ݚvp孲e.j)m+\ .q Ey MEJa}"JF;~AA7:_&Zfl9fm.Z<yּ=5B|-b?cխu[K`p@bӗ[Ԣ:%%Qd. CgT߲'M}}2˷>CI!4T]}ewN/}$^z!h!BS4LB!h!BK4B!,B!h!BX!B!,B!DC!BX= "x y"&7W]xezWYA=(U%k~'̄ B!4)K4,7-!Z#/$":aZw!WyKHjRQ )kЋ5"^ZAjtW¶Ya>5U;&ցg;3B^=ԯQW%ŧA)vС*,O|de-wrװ}C@@శ&ǽV-M~ԅv+ 0f\i|Q.f>o ܎kB)UU*ǟI 5UeDPhкV,}'=)=*jQζyZex)Y AԒEYζGkDXҮ@Off6pn̈'F-U]bX5 _j*>Vqsk358Os䊏rnֵySih /k:scFR%'$RhʎdSW@^۟] m+'pP_oUdy `)5ԯbpkU]E)%%nǺ_|r@#tJT{H]mo28ޑ:En>, ^U&@[RWS^6.20$A!tߌOi2hV{'~rZBQWxuUԝZùK>t'RFx#;$5EkkFS[F7hU8 253'6nx=/1_x\7l vHo4U_N= u͇[FcϽ|~wcqI>{2=w6Lݪ*~k;oc!myE޴dQmGi2Nb ,_?/ǯk;;J/HOCӏK IzJdifG犘,}hԗ,f#v(\p\Ԝa!F;)[Gc#[|ohquCGpx,B!tfF8pKS?ݲԛAeKGYVܥFRQÃK]nkΤ.}Ͼsjrb&`4={}vgh 'f/wz!T"T E#S3tR魩9G?hpQ>dNϾe61|GLE!\4Sޣxzm% qVkUħ32"|4A.J'VA#Dyn۝WZYK;YI@r ~{ub.f^>swdK2v*論vXKJ.f D~MVѮW t k"d4VF2eq]|àZB:m xcPXiP4UQ:1Ůc)EjdK/ePa>k}1Ao:HBo|.^|êmO-sʺ8 iP_w:@GY^1M益(< ܉0]K餸N: 6ޡsQ>C^}'\.ը~˟|i셫hr@WMgbЀ}Qm T-a,:5~gyux chk%'1.i؆OF)zP)626N2BQϪAuOV D~3c7{,B!4J4ụ%J$kEyII:BRR"ИHzy\TmG+MF^5I益zPrRmcL6MB Wjj,[aB;Ƅr2KHK[^.tЋ2Kn eA*H_UfUJ+f )ifDZܒ(i+Q7f@.·Y(42&;{IT#Y■a3ΌN]TղU->#6<0xޑ4&Rɵ%u'jJ›dJV![g&0'pԵmLFLt͈+w4]Պ=b;:ȧBS;ĔK%v؎F!A'ƃ-Gm:͋*X]:TE$a^A aUlʌO"ل AIBM}C8׫*MQx63slKؕi~I!|‡LC玔s;8Oz(U>nG>%Ko\̌O ]5wޱrOuۿ{ʅ ofD7|fi(f1v]3fm.Z<y(|z̕ 3˓YحFMuGPa+T%k~"&R}d^Lӗ>ză,ZK%U[=‚ NMˁh)"!&]zB pٳIp"x|z5a?,>W9Q C<ꩂ:=+TS3VYh]w٬᫪uGyz&X>^/8}]E)횸LٽL<'Y<xwGweF(U#|. JI}M'] YS iZ"Q|de-C1I<ok:;Q <ģ*t$G4O{GW^((V_bLHuke;xu]5L@@0tfoՄ@UTσ5n}"m(mQ-<>Yd:+$"  &?Si`r6&D Bx7[͍ %D x< ~[ȴ "M,gc|DDCϋN?.}KOBrEU$tR9w N^O.˸C iC㼇6$El AakRˁm-ԏ| Q xI%OKՖ ^H0(鸣gHګ@f?KK(-5Aٱ+k>=?Wօ~~Iޯ Q*[࿦#nJ s_+Ǟbmk% n,z2RЛ.9y[xNdӆԢ'c \syOFp.֨歊] _u=+׊n~D% Vn4wO%LzBe=:m%-1|%1ئhɦq6{vqU˧' ^grM1_ѓd}Qr-Ǟ jm|]A~|&# său%gZF*^y}f97O^՝ZùK>3Jn[)GKKg/.I>X|N|& S?9sN+N\O4C9ҏڍFD;}VwM7?)kmU\~3,u%*MK p,A:l;I罴9rp)wAӷ4/Z|F]僉8iQT#sgڇ-qM>g)Z7N%s?Lv:jKFL'eod򗤞hmmU(=urÎo?{m|#súA _EmzqKv_?oy+bvtS]Q_TjZ,_?/ǯk;;J/HR(\p\Ԝa!fskG=$Jw5@$#hu^y0/wm W+elI#sOyg4G.u,F2eq]|àZB2Mӽ ƴ&#}X>aIl޵ Vkz4M5HM5lfK( zXQ>swdK2v*m(G8pDW!@w`nq}h)MF348< ZʙOZBLB &ji7ˏc4s_v0mjD~i։޳e⁞x G8^h]@)y .Kt#"%%!+aZ0םQW#BL~wKlŔ$ޠ{?L702' r'6a`B2wx!cxl446<α9B֎0"xO畣F}ᓅt_]x>2>}юC20G=ޯ/klw"L:#pR:)5cv{Ac)U{MT:Wy f |h m)sը")V@ ZS{=v[:.ը~G赶OId{cm^4LU4]pG4.5W2uKm2Yo9X<;6$>}s]̭K%-Ej$Šö/bϥoh#;\||G/4J4}__:I$Y[YQ99L4&^B@-IriT 4ڗszhd]k[^R&kr IzhL$;qHAYKvӈ 9ZZ&rCP>rG){mHR%u2RS\"[tK[ pvftj}ڭlq6~QhdXo9h5` w$M-ITrmqI 97#֒LޥtUW+dsy IDATכ߾7\Vc>7Yn4BM` 8NUUVQ*%^L#Rhd4rRhd4-8BR*H(ok،0odP4'e ' B37ZΡP퍝apd*J&iZ /dGH!L<o.vw0^h=$Hg@y "$b˩?-12S9l6!HFsDs `&+hgg樷dd&Dno0=´\NMf1~cڨ%!JLɣ<("AQy9xٖ͆Qsԝ&LIxpd{qAqS#!-\y⌰c&E6iATs*݇}YE|%Ko\̌O H~hMmӛh]\~Y^ֈOR4+ }zg Umn.ɋ=O_0Mss߮Y~~+8hNFIG:1 Yr2Us)`_qrlDpczJ/Vhq+ewz%%C8^X!Bh!BK4B!%B!h!BK4B!,B!h!BX!B!,Pa+T%k~"&R}d^Lӗ>z<B!,P{lU:  X\,ni @]Z}y"vBMQkuke;xu]5L@@0tc['4xqmCij)qBh zwѨ#9y[xVȦ EOǾ[unں/zњ~5e떥 >wgM 0Nh#H)4{!m8T_T`EֽRuo/v |%[MY՝6J~3{4,eЦ1 <B)a>.Q6qfE#%M^Yu1XMd;HJ|I t9ϕ>̻34I^ Y`m{r WFG@VN/h$u[ }gξwJI HM>sRoZ}5NGHe/GR ZյoMQbZ}pj` H]t7ω W); ]zFBavoc^$eX3hNt“'X, #=<]5syLG7u]ےu-a<(vAƉoWjƶ!2rE[P0QSk}K2KNZ2DNO( D fR+Ns)`ڑkl6-?}/ˆb,{9gsh}?~qITb/[V;GVÉ-o+3L-+oAH<Cq;0}if$ZZpU~&d)%Bݶzc$av;55dܝN:ԠP3; J|5UTh(LPuWl"Gw%_q.νeOe& @oc]4S(#jM!9bJK >?$c/wUjL'SF4^] hW)dD͖{' m9pfةXOQ!qm%NPA.ՙ#PQ@|Uۛ+`UϤD])Y/;:?ZT[=oz;.%cJ&9,r_#ҀaW B7AQM9€gx\-h/ u5S 5:~BhپF -E5k`lCLy;]S QWLہýCoGk)H$^:C{Wυv,;*UۚbNA?ƆFwt LP)WpDZXgńD(q)Lm?_O@qQMbV |P4:DF@@@@@@@@(hF@@@@@@@@(hF@@@@@@@@@(hvWs궮ںxm6_P3'; l_XW^`FcugG|^2. p#.?$RWLfJ:^Ke+SPtC;*bꋪjaa'U[ew+lE&鷨:~iW#9fh xtd082~|hUIphcžbU TXPߨ l_ 8AHw2qi|+0>lZ4wX6FdAL[s`;AlR6lyr 8m;zFevT4@8u8k֪gVsnsuB>ui$NI+u|!eo/<tJld?~WW^djxB}bj=ޱ=r!K>~$ŚƋPyc'OO'r݁-ubPCr_3n?yFͿh>r!(Wbϝ9Ͳy96P\n=\ mQEZ k%sރo Œ|x! ާnkـd̜~̣_FS rZRfhe<6KR2:S܀zqfpٽ}aN2-Zd58ϼKށUpc.l= i=cG8~7Юeڡ3V%O'.ھb\ΞP8"UlZ۩{ ^i!4)ZE9W/zV994푌m GWmJ#fax.ƶh{#&Mkߩs*4v[ג2+f&\xwK@'OzXhiZl4w2oˆuE7bAT)a=ޗqZT'ymR&F/yۛ~ զ@IW vZ ?z{`Bך igo`e13R.!}qq{RNsni1{3WهXzR0P3R-sE1uz.v~^ߑ~(i?ʙ~pӚea<k߲.~G/ZE֑/9m6dj3 G?b/R?(;th5 &aks q3Et<9?\uN I3::;^wf4:icZ/0DuYLͭg>dAm4Z-Nt醆}  k3u-NNXqg,;>^2xݦLG|;݇td47b>rtutz;8rk8>n si K_KJ{Bgmu" Ru/IQdmU4r[M9$tYM~#ֶ3૆ۺ]ѨپTu9Vi۵.~Z]r vw_vi`oHtvpz](ΜpdjM#!- ћ*F.3 Ǝfmd! šPОw>@|{OI-+K;|kCT]K[%b1%L8q'ָS&ɽ;oT0IP}nDW쩜.]u.ŎxƁ7ݏZ.Po#ϏL ~riEqEEcuex֚,߻AtqO't0G|iѫQi D/ݬere<(Jk4i1<._ dKC"ܜݨJ}{>E:bU3䍖f_1ܮghYNetc#ɕVIޞ /RQO_G(]]2^|lU۲%H,6cL ^ Vi)HjG gd$]:֯ s\X7;$ uQoi)q$ ACV;758ZjVt:JFYZ\No|Ǩ{6rux(hNrQa TR5jx$#7+16:,e bADU;_Qo.Į'b~(9WkL͌W?N5щMZNlٗP1Fuښ Z'_ ^ )[_=Jin$ЋΥ<&[OƺP Jr^#9LQU+dyd|䄳7,؞`tegcc` NwXo.g@oSy(lU۲䒰PAEE@@(f˻@Uoo1%#v˻)/N/qLXޥWV QU)78,Ft_\֣;Z5՛#LcnK_nZ^6 W}2>l{3ϖו ~ ⷩ_Bߗ?tCu}x0mGe~rq%_-.֠qXSy[[+Nh/qq\rwXB#\PZ9D-[vKzu]:[wOcyud݁F{CCc>VRӝ='FN{t[YQ 5؋]%TXU.cGc؝TddVá>IomvtPlg&S"KoׯF@8DejR͓z >w[;cX:@Qcagk1&cLaB^gW8Y ˨%-.6̘v-/7jï3Jrܖm̊\4Oio=p]" "JV&+Ն' 7N[;]a`~SCJtR0"Y4hT7diإ6hr.:H*N{ObivT*טl*g"ȞW"MGPºsqPLW1L+-g/w:W0nּdvM(ԺCώ9Ғ5?!T.[tV:2kͤrM@7XGhKG}*fuq/U-:Tfl56GI7dVQk-f{w޲:(9l {yǘlfM=HeJ]I/GNeђtJm+Նg2?Km!Oh$^ 4E~ߖm 9aik5kԴT*טMNv`vvh!?ďUbO~u8ԝ^a &(".^*W/aQY7dB- 'NNϋF)Γ~2RzVQR8:*;dej#B~nD+ lh%w!ݿVK;D= $bnDULeD)+V[l n,kZ;M JC|<22?݉l֍$qt ]QZpoq@cĖvW rt f ʿoWC IDAT'oK[$.OyNY"SP͕)sE#'wQ2% o8<\"_My_^_;z.=>\{`|6~2,7jf@/'ʞΆ?{ q 8Zb+WC]=ιWo_|խy{?}e[9N.@@@@@@qƺ_<8n-U6o^|d <q ?Y pa|~g{p#1W!yBs(=.0\noEV3i>֧$RǗ^Kh @Lbe8: 8.b՜o&|p(煋٧e*HeT{(cY.4o~3B1߾N?p.My3؃ s?-A?S ŸK߼ƿ2qc8{ྟGƄP8դW+X?~ƈBD\FƖomVۺΜ|{KnLŻqy[^OV璢=Z)9޿ݽo+dz;UjzbCe=l5; ~Txfٷ=7đA!+|Vy ^|'=uDdƢkFo qk+;=.j:#"X(Z酳<>Z8?w<~ǟ {ܾ<"aΟ7>8[B>IV0 ZܡGAS@:7SpŠV(:lRN=7/q6ͨQ+5Fc-FTJ3Z}Ee\c5 FP:HcVhۃ`a]&N|z)\6a>ۓϟɌ?x#'yJ}X,=iO1y7fS3}0p Sۯ}fa ]<}䃿}~j\Gܕ!_;fN?go{hi{ݣc˨7L}mo\H^y}m񽎫9Q"0r)d'FFtIWX88:9QV^י}Ǻ c[dAeTۺxyMȢH.)h׾0 ;LKAc54jQmn=$?~wotP9*9MH3*ۣ;2eWEΗ hiuL kilF 6봪f鲚ںeNm7D^yyTC ].2ӮV ZKVuuzi%]V~7lneUvL,ЍA_RX\< ¾1G?y?Ð'xboٷy;ȳl;䣣Kwo# քwߔ̿|sbO֪kwރm}nVJ;qDz91|hLﱳ {n$r=R)$snyFAέgֲaQWv4'`>r.3. X&4uݎfyc "^h~hxB#]ɷewimw[g{I2qsW`o|ʱSG4slY݉hS?;\Ja[6U|uYM~Yw H (Z8Zd2AohpNgXo060r\m]No"ޗ]mͨJMO$O5[4@/NVeU\Ψc,Y{_v5YF :D&Q}j]I݃M3yR}nDW쩜.]u.Ŏ瓹r֚,߻AtqO'7t U6Bk!OqM{+Jwl0@lJop{7Qpku{ˊ6="'w!yqyڨdeIMEt9*ͬU2d H6V)gLM:,2Ǥ:- 4]S\1zQerѬ y݁|5u$!k6jڭUڲ:qSJE9.%\]"Ru~u 7~ zF]9ꙨQ?oihIӖ?ʯ<: P偒)exMEt9XL.xJRF"ҜsL٥V/mF.}]S\q}.k{7pidW=&d@g{zSf[e%ņ!6sZۜ}R͓zC}nk&5LǺ=7MY484luBprusK؝2uO~k r:NQu?|sbK\ꁒrnIﱮ{CWG{ B)DXU.cGc@d49n6Eg e`I:;2Au+H!HG"HLMf~H_9f{IrOѡЙabҧDz_v!%Gc١P5X'@oKgYX@VZi7@iv:f}Hʕj3uj3jtuUlƘlfM=HeJ]IW]`)[f rZЦ--Kw2,#Y>kZzk\CG{n [*Zw=pBTZRԸ_Tj?;xʫ[^P?⺪GpR\%o{ܦCUlƉ-Szwc]=)_ݶ+БoA[t,AV9F7_~Ơ[z@Ҟe Q-zr-FbPۥR\c6odٞ}P"Ntz֬nll8/N/k-_Ϭv"ucmcMVFMKr٤kםL&BaaǎX,...B0NOO4-$P(DųD"M$3334M4H$&''իi88T5q"(p.袠@ D"T*LaaaAAA"DDbvvgzzZ PDP@ @C `vvAH$DH`2L$"hff&Quƍ⢢)Իd2YPPL&gggqL&E"P( t3n^AA)݌T*7n$ t8RN8c6#i$=j3q$?$x .(X,FO&G_=v[S؎;gE# LOOcuBQ 7ZB!2!Jb CfB51ćН#E!j8;;KQn'kzzIPܶ L80 ݉#+%Gb: c`^b="| ؾ-+׎/^+C<  8ѝt@q4hyJhw}| `B-o)lcZNRH2Rȋ6BgffPKm JiF RHbNJh#twFb^)nXLTv>6Y,O$tZ G>DOM<6<: BdhD*_"} l=%m==E@@@ -|Vy^S&puB5L,0"qɐ ouC#"0E?P] n-cmH)ơ>ba5byKy/9R|.ya(=|D&,HğKP\\F@@@@@V S4#w8 |+v8fd farrV"{"~dWiZ("k m|YS4>[͊ѱB a]+¼ORhe>,B8gT4:(r e#ƌ{Q0Ǵ=L E# T]-xAE0!VrNF@@@@‶d=xyF:B\P<8ȷ`8.qY`|%?dxA,CRLbJ|h&OB/^ -]YZSO2RVyR4XH S= &7a7r<4')ʘF@@@@@SSSSSSb鉉 OicE:H rx!^211Nj dR,iX@ ZD"FٳВ(W<燦g8 o,v"{ ·{t E]H{P6/eqVXF/]{(l{bLJB̔qmxP8BN6lBtB# oQ7nXl hjbȺ٢" Վhrcj hs6xvK0Ŝ2MV3%?>%<\q@) ;.aSf,t9̲q?^eɯ"*,t tG {*snz]lNKo4P4Hѣp(, opt2դ0$~7 `rqӾ]Qas0'RY47Ky 6wy*?# 'BS$8> 1yMX#ИrtA>Y]E# _>KlI^bcۅ.O:gKMx"K3^|h-% eyZ] ߜWJVMxc2R4LT|LBI_#]E~W3B(Az`;w)+4dJEae (@G0SS=N3&Qތ*!oUs)[{0E0l|i( EaH׋VX{K͜|{8/۬PuطKoveThl}_V/ٝ,ʹچ49Ɯu5 a4>_?hgKጦx N%'gH+ tO.ʘ,Ja'8P dže[ {RNOl| i[SS ;6Ib ~̪'%; 'hᩕƁk8epbbE[6-X2[NCpw#H̷1E۽ o-Gei)"|cX3ŧqeOY:K9g \v,Z Y -c>6vsAӭbϰӲ(hl22w bd=rCTZ~BѾ8jZeP5ܵ8AHD_-+^M{sh!#I-޺lGJrx KXR>bv#`l.`FeHn~fq^)ipZZd[Fkeʐ(鈷1.yǏ55xLXN$b/ 鄢(lMLIGlx{q4MY5m@F5d8 j%%%k֬ADUhWw{.Y9[mOG?ؾ<k˾G Tudۙ=#zSGKgg1w#oD9c[_x[9{Dם}vOeS34D.D|o 4؝^iZbMN0\.Ӫ]4>rtilvZBjj˚^ny4-Ⲙ]`Na-K>hhu}^WgI-r7zb-7wy]V`"V"=ݬDuOʉڌm뛝^nlyiySUfH![ lNiwӌI{By>a{i4+W|w=W|].q<ΠMA)|,z['OZYl vN,ff:nGdaM2n9O݉7nƽ`V $؝rNߚ@z~ƊeGZCsT #' "$ҥ;wpSJ[E0*3ZYTTx@@Z*L޸qBFcC lՔ+*J[e% <hC( Wm=S%BݥQ|AIѧ*j58gu;`!OqM{+Jwl񝜌gbꎪϷT(*e)Hu-9ZvhviF#əcG6u/qNgXo060r\m]NonRҚ-rf Oh@ˮb36erM(Li`d2\٠74nIwɪ,`"}NmPjhyXc\l؛ (,!tdj&_UPNӵUd&0O.U,kd%Lx\ijѶښ,'֨]]2!CjF yY5W|P v=Cd=1y2l3k 26RͤUʙSN{"&st{Ed5 "S(>J_ 3AAp9b|f 8.}AS(Nn>@dL:%M2d30;ssJ~Xg`3dʹ̔f x(S(5."D4\qe ?PپTٸnǖru@˛xr hZ55+*%H\U,[yw"n3esbbGAr zAKͽu@٥V/mF.״ \cRT#~|z6 eyUl}Jin$С _Q5(7,M Vګը5:N$rQaw1"7fyk#Kah\]/uDTm3=a/@[y:r%%]VR[U~*5C (VQ/獓ln^fpzu9r}*C)LYbx8w(YuuVrkd,Kɪqdr)%yT.`$ ]L' st{8G ƧdP'>?[)Sx+ s)~^Vi2n)$_,jJ [22YRlWUgI0 !gezb(4Ӕ?E4>28P4(?4O{<C[W[QOt+V?\) )^)['ZG^WTh\ m=:îUh_S9ODJvT.Vi]l|+xMrï ~bLNW+i]fA(ng]`\;F]p7nQr/'(i$`U/Q9C`..U YF7h`Nkи\ةR$ʾ)Hd[~n}S4dn36H;;%o?90k6?-[Ra̢.􌬹)RlZӋ(-K=Ǝ2Cs03Dΰ5+}A2eh:,'=`4NyUVS"*Nabӏ~yx!&z3 =~北EգfG/*Ԕ:y.ȕ2\5Pc :y]ހ4`ODi07*b6x)H | j%z%t=JS薊Pf2SNۢd]@-34찥NE5]D6ƆlfhPEOFÑC RH?3BmH$UhW] *]z_({D^^&g xP@sѡGYVؙ\RnK?zy4v: ehҮ΀LgPa,>G#ZÄήps:dflW ؀ims' N_&|+Ma'@mpv.-uY;]}l8u!+Dm22P/4ctZdn,M{ []l86Y0^yQK@Q}'--s(]josBp5y*pQb3$ː垢 Tcagk1&cnި zDkgy )T| Xt+}Nཐh ^=\{ll SSSǥEV AC xp$ߩn[2uPjzCdDGl1EF NP6ogb9q^D0uhMɵϑD#'NFX QuNJމ]OšՍ 'hݾ3mYy[{&~*4n~q-j?;xʫ[^PlXWԃg\l;AxM1M/{g nbivT*ט8ڬLk1|yJ)ut6[G@VT[¸׬]]2JSWvլQR\c6:/í6< n\j lu8dI7k*C&E[zB#5r.R| XYt M>w'R\rhD)'EJ wNsb lH33LQP8?>;xZmћ^lua)1Ѽ D8,>Ws\XDbH$‡q|"̮) 1#Cܸq\E(4]PP3b|R^9C^lg/5{1 &('X"Nmϴ".^*v8y}vI{u7 JJJfgg'&&fffVZU\\UVgEI$b*++CɤP(d(WQQQ4EK@ xk_ Os D"-izffK%UVp7::$3mh)B\"*C&"mr,---((M&N-Pζ HDt4,cj@aaU( 6m|\.v\.b}ц JKKE"QAhzfnPd2IQT<i@ ~X,qvTQTTT7==]\\<22f$ C࿑ ="H$$I,CNL>H$ljj3X۟-s_ylǭ˹gt&b||((ٷuІ&=gw H$Z𳥁Y3M L&(T b |65(?j1(-}+ezZ%m"P5>by`S/S?GY$x<>::WW|իj`0855u=l۶{E-L&›@V4lwD|Z,`0%ˣ+c͸6@ZVZj*dC9U ‡pE+l/5>p`y-~1?l#QWjĪDl^i41DK|8iBK59aZPiFɫ95qYh' mhMʖ2 lU<X>*:_g|r-1oȔ#e#'~kk֬QmZErSӉ8!^z2aW/N!orJ*;\By%%%Di$8X[36%!8=?0~)ZO9y-P;F[g-#58*4ܸqКNXq: S4Lk'm0e3fz L20'y_!ZݳQtr8K Z)#R-B9fiZ)Xjvao|PXJ|*dzzڵkX ՜vXoh)P!EQʖ7DpZT#?v ]Ef9Q"4+2)&|("~~ZoC,M 0&a^vl{Evtb(,9-cf , Hq!3fg>,s_ե>w~ Scd٧U$\&bV#%%%EE" 2GX|o@amh0 yD""ͺgBoq|Ok73<@i@IghD~UV h7`/ qGǢ /'D~?rs 2GoClpb{'KVJ睄墰YPЂ6| ZP)}1SY Q4DP uMRGY}P`VJ| vj"͡H~|uadmzltmk|H={)TJ#)@(I sY@  (J4KI33\lYfSy FG_ BP${Jp lKv qCN(p5k֬$g(޹,u! 1Yl"P[5FX9J[Ml8'9b-jXSZ7*xB$>;3?^e$1}>~ݙw|`p0y]1A\d!rmhU R*L88E]j0.U4CrPR%!^4ϐ؊ȹ"Zz"CNgLrY)h4zBhQZԢMƢd BZ+3rXXUX ͙ ՗ 31~\Zl[| `F̔ cl!8jQ j&r$) Dx^8}L &'bSӒcI 8pVpq˄Xd Z뻻:668qqqڎ:ظ_}mYŬ?0pF\ia.#_8#$hQ؞dw_6ڮwnگ-'iZqo~} :QZz_"jDh4 + 0/iԻ'E2LsȝK"2lf9021Rڦ4a&ԘM3{& (H_|rE|> p8Μ9?8(N8 8>ȆA1|ǍR,))b uQM[:K´y xBGYZd2ٛoI؍7 .$0Kظ8NRd@R$8c| z@ קv;ޟg˖BZv;N'EiaZg2a³a8U;R11 yϝeѾJf),ER.[Rzg}I_acwx~_]su;7uϮ7?Uolbئ_UZ|w~gm)~uBXc8e&sN~Qie]#zO^HW1ǃ(Qn>ȏwpXRXIf#Ҥ6 L+"V`fyI@N[鼉H]aȒ Kr 999.>_d9!33IHHy>)#}Re+˖*ʱ~gtqI\FSbcc^/ jc8{뭷-[v}$MN/8GG\^JgaCr[0Ʋ,Q>Zk2}hF]#tWnƍ|rAǾu߼U N[P߹JS#Y.|KUEZbj-+͊z|M: IaMdԤEDf" LѣH$̤"[0=T D/|Dk/-2IbgYbgG( IDATZg޿lu\(zWoݻw3]b KAu9k q y0^F\ΰjcF& AWV>}[֮~Gap+A& xÜa V@B gUEAh"(V}jm|,[_Yc2L9k~ƻlۊ,fl)jm*1FRTf0狫pN~q%TT o6Et,3ms8~mč;;J^+;O}mkg^~.C{g]^䎷oث58yB=y *5rfwwTu9ħpM_h4JghQ^k_T϶"wV&xv<@}tS~!n-+1L:!9sKm96yS,}|% JqeP,L&|RiشH8^OJJHgYo24m֦P(I1#ϊ_mΟ|}/u^Ѩ Nx|#0|9u{uU׿Νr?~w7п6l(J_plΑ40ǷbI3U.]K!c=B4G6(56X+sjJJj$kUvsmC+e(Bq$7 u9}%[Ⳍ6U5u]_jո rohϦ}nHe1mMFô9ZzBnmF4V+E|q}fKUCK[F>am5% -eUx_>[MkaV1g fHc;^U\\e*56XkώYx7;{#^+>x6WmJ?o}{|цuLMLe?Si5G_qW;`uG߰Yf/'nYTwSaͶsYosLE~\͸縐q[񶖴-u M"؅=$g[V_8IV]xJ@4V 084<<%Y` LV)@#0C ᳐DNAFhED|04,Lw!x뜁ZD7P̓0L+5!x<<[,7|SRa<o{V,SOm7ݨOU( ހBpI SRz{{_?^{mllo瞯r Dˈ鈞|gLoKآ Zbʢ}] V4h0dTTo1v֊ fTzc^yՖ,;p>ǒk¢\=XS(Qk4 Yy%AKn/44M6(1iO3XnӞ]#1ad9ZZLkc4p49XRU^e4fTlc#*+(0v D\Mؘmۋ zCVm>$뢽jK=wGMi=WhuWTNAptvww|ǃa(Jr$8$9mHoLP I0Mv#6f(f\/b*H*KJ4\.wݨ/D@Cd( KTH` $Ʉ@ h&FG1Gb{Hx‚k=Z:5%IVLqi\L B*w/;'XvmZZjjx|BPTorV+V@@Q0ZͳBhrxWThAn"@V @M#abARٹv$0 .g`2$w’œsm_}wsyW4ox^q:w5hLL U)9x8Eb1Cl[ܢ}k EMƆ&kEqZN3 e*զFY`˞&WANY_KU#=*FKmmlnw09eYPڮosef/ ] _:QLseɶ,= и\:[tIf-|.lq]np,J+s,fyݣRK˩S>i`r~T,Ât;<7y-usyJ05%e?{2ic_:YL,X.&GˏpEؚ7bi&ޒB0" -m"`̬}᧡L^m^FvR]4X۝Ndcii+,(h7o&AX;8?zں&_ xx]v%fժOOugTĘٹxbaZo|FSatb` 1b Q).Z:LNCv6>~Ύ^wmw>t{VeZ[Ez\-ʧ V}aBhgn}ʹjzri0ZtvF Pw6WVQiA]Y}i6wLY0X f#mohjw@[R ʽ0YǂS (/D@,ti*ʽDR.]{n~᦭eI7)^S̚ -swwlϓ ط72d.vva9j Cogy6W#MZ%]HJ@R&LeàHE'EQaC9sR)AR{nMzBv# ŽXe_jS({HMICj2?1] LÖs;N?q÷uC)nkrÃK|^{b"9IeǏI+{jτ+%%')m۶OG_u({[;F"v#|fKV%G ٖ"iiZWGSr>gOˤMMv\k;fQHs~-9mbckeimoZQ~>bmkvcnm;ρL7uREe硟=zz4p>lc@FsS:>~<2~Z$6г.QsdW=lGMtZ7Զϗbͽ[>Uu8n֚E**1T϶ f;=loG|\M渐rw!ݰ}[]kn۶XCrvז7*jʳiJ?#aGu+vX,^(e $J',Q]Pb`ҺG1 1o#B%Q _*vnLX^B:3Y9t٣THJJ}IV+^?H={T=cmG{q'טm9*k7~/Y<׺UVcg,z彾q\c=CwqGllC=.T 6RP(P큯έIWR J)/*/r=VbirkJh OImKEQNV5XJKoEhaXykk;J:]͂%U[,fJo akwtۮwW q8eNXq7i~Pӫ/_C}WN0kvoA}l }ȨkdThi]_ԍǛ &`̶?W[;QyS=.Κs_ ٷ7t imV^UWIgmRM/!9Ӻ톊 qW6gՇڊm奖Z5XJKk,J$uI,BB/fil~Rڅhqi'PLX_D*| L}=i_qyxd䄞A "h ,֊$%%{wWe_#[?4F+~ӟ=UNCĩSccccN;v%\;<ӽh"߯h].^.30=F0Nԧ kգʊvN#ؗY-j 68lm*ϊEԢY{U~QKI5¯~q߭7~jOV*r\TbT*jG|H fFBJ.+ ˅R>El4iZr* xrARVYEو( " J v+J4(%:0 " Rb$ C#R*JCĪe980cbbaB~w o$ #=goq?GG>ltGmm>hZN+?p8t 2|>r BR\.L`J| JiZ$A,,=}>v& x\{@-jQZԢ`szΑ[oʂ^?$DRu~FFι$)BKDj@&<& p .Op0@pc < \ TvnLz:&LqL00pLqp$b AuQN1ZE8>b?[XK qY xa~G䴓O\Shct###]b=/YaJ!߷ocOryh]{$ZԢs7XEMZeK"}tRd'&&P:@ PT(mSTExEGτ`C?896:zq&(&+c(L5Yi6n;oQEҥKi5կOC\F;<8xxD9|>"P.60A LAH|>Ѣ#d@ rJ%˲,F!Z.i:-Vs0T3Q$H;U,h-b/Z(0uyT|f4Eq<9\0^p1005 G)`O'.0\)"TF|> b&6tyV 17bkAL&&uq't9ǟ}@:8iyP0Nq$)ޞtĉtO:'<Km6NT\u%K0|&uh+b> Kmk"`CyQ-jQZԢ5&l~T QeJ2?hTy?L? Ő'I4Ԕ<("Ljy ɐy  x0 c/)D,*fS&!Ϧ( #p0@!bU 'DP /6|z?MI<˔J9ǰ ǰ3ۜm Wbbe-sC:cS}4olI˯?qM7=2:p@VVkjj Z$6+,Dm"|&Ly~YdX QyE-jQJ(#ph`,[ܢ苔*Ϋ  )Rta#6X0 pxDdf˖m;jS7xclg`$߈g |B(H*<yI\|O]~YjBfwmAֱ!FVrk旭ϧН}aOner>|8NU4 #`po0182@ cǣPobbb(:uT(dAz;SjXPbaMi'4s@4SGLLBE-jQZ& /Ġ qiBAӴXGdS/TQ5>j)CqpHL@FS鉍Uk3˲Hmdd0 $ :i$ī(B r$IZ Hw:(_d2*' ,bM qCgCP"Ză|Ǒ8.hkxRRG)qZMFRRҔdݣZz9S*qqq111bA0 "-T("1O(VөKHi㍏K B%'2eB=eg!o0 0{ǦOx⑪_\veo`ڸxZTٗjb{G0 0& @ $xA% 9 b|*J!3(ROtd2E$*ڡP@0 (yQ + $P(D)J$xƐ PcE-jQr,կA"!VSL ' 2>4(铙Y3ZMd^8>{YO[[Z,_pPFl=JZ2266aө듓3! zi'O I\Pt}i.~!)ans?`iϜ9rumP411 9$ )#O>j;x7JMM=|`s \ϰiE{ALj@e8E yBFa^?=tв+\vVhW(L0ȆB >J\-r[# _ljŲ hrO$6@>P1D@&b_X$ \Qx%ʢ}f3Vjن,Uftٸnݻ|]9K|_Ccͅ9&hl}m bMNECB!\._+9L(K%!i4 87z+;pƫUqM)YأUɩ3>qV,]&sP(Zmll,qrJcˤ(MT#5R<%38/=xVC2[J=?8ݡ_~e|tBKL%'%$%1R30>?$ l( ]n{^|`_rEM}g4 WnNNlmv.x'(kr!n R(qB1HJbE>=~Cw=ٕ˗wڱ$={?~}PˀgVe~|.6}[yr%J?TC L@lj!憦iWx&&&%Ӧ% -Qf3v:|>_rjޡdâm)7LLLjZT2!%%ettfhpiI?m23/aX@OORkdO̥zw|x{%i)kW8iyů gr1<0HA)Uqqqfa;pw!%EOSr4R#BB A.d2(eoƞ={z_:}[0,7GMhqE2qfD}q\X(D!aK~ )bz+K,9&d/fb$.kɲjVl1̖zg?ֲd/Y$L:Zb6MfKQY]KRcUI~hDzˊ9ŕ:YWWVd1LunWm[l2-%Ut`qĔSIfs5}j~6Y4}l4l3 5eM{7߾]^avë;%{|{fH@٭{Ww=jv NUMoc쎷2߫P~WM=rW3K_/vsG޺dӁ wIF7n<~vоG'>3OYv,eu-9fsp%$0%9&ɔS1shgհ{?bL})o{۱=h4y]bf,M&s~i];ا(s];3OrIl6sxy<nygr _Ҳ"C&\D/TDH)/ S dY4Iv}J}z o) :% x3>WɁ㧝cL[|?ibbBR Ǔr::l0ghDSkY:qr =|wݣ;hO^{[mnk=o?.?|ĩdO7]4+l*>θ$=--QF>S==!X^RTD>#=b曡Phz+WJEV"KŴ ہL)Ct _Bsh W]h)Ih)+lRf-)IV]x1U%uPTemhn.b]V(5777U&ГWwkm ֚mEFzZ':jfg֪:چ&[u!SWZRc ݬogGw tqy;-T/vV8Gv۽W|l;ڔN } w&>myq; wms׺'V{wIO֮9ÿZ ܑ]?;3T=be<ߓ 0Ayv]׹38=IO\v`Kn``j<Op}jt|37>[MkaV-d_↰N٠`)j*#Ot4n3Qmv=a﫱ʍ%%6v>w/u5XEj[|םg<0i; zs a/ǐ`$%zT4& $iƙN;L*BQer9!jZ'?? /l]l~e@yzxڰs囹iYw#:8{mh(ؒmo{_huXvJ`kC?ϮCa٥Uyz0n.]_-o)@6WQ;Wmf&/p5iKUv/,s! x.&8IRIa8 XNxq80 '9!q!.DL@<8<8  @Ji x6N&qALwgq{71:sرhQƲe^3J 8&l(8;`-+MG|bŊFc Jk꤀jI  <~.qC'KK{]L77=}w6ۿn_[wͽw}kZ0 1*JMx *BF0q@иA\z<^%WPE+䴔g III111$Is=>o`@&q0^ 0'e,.h(i@,)*I#Ūȕ02 T(2 2 WY| C@e@ X +-WReDvaxd#xcH&y1OտN{:tꫯdO~M!BPLL   Bݎ`Ja\>>>`||\˲r^oll,JxQKh јʒmmյyYzqtls g9a(S&2x36YZZŕ:k/s8GbtZVqj/X⚳[4 9y1;-\7c/[[.l/Vwnh?90ͷ/h̻x}3pw|6,d6L:^q T*^?44$&-Y|)+Ð&q\~DgoOR'\ \Qr"T*U.~tԉ\>$L(()Ʌ1W4hR?9?i]: wqN>޹nUڎ{B|{HJhu8%% tsr@8/  B 2`BRe1m\ԑOj +ȸ2 da!b@QX \462r57lN'w=mhŊw?4Zx0 q<`\aXllF~x=@Uy}d袋NFD'殍 iW:FOOtZ"~Aj6w6t=e=cZtK |ܷlc=5`z{E぀"^Ϩcyj..@geB Id4 `(X&s@k|╦mP__G}qy33$W_xZ۷E?dt9P*rHT(T wLL\||c 1 ƃ ? 2,ED(AyUOW.?Զ;fpźU6h#c'BZ5+gc 1J듡d2=O?nt909!8/igF? #23~S4 **vaz-&fX.vJ$&U@R -mAg$Ix8$ܣjB4}Z&moj3j^۱_ խ.`u;AX IDAT]gy6oslu[*յح5vm5!ڼJ[kh6/ QT{myU7VWKsG7Ghj lޕW\8NKӺ:Z.D* 5-;ӣgs_A@~q~eOf:bȮ{ݣَou}5mOvxG_>\Ayӣ3w v:?䇻'VlXN^`Ծ@Bmk3_D̺Q?g6"mSfrKTR{a=J>[mRӪ/>.?q^<,(!x0\FK7%%#۳,sr +(5XsŖ ,W.ZA( ~?`(RZ6^} W$Rz28&P+(D5i.,  L 'p/Z9ԏ,]Ub݃Z欽r5KC;ANdɒ5kVĪNPk5+MY+W6򇚚Q0h 0pdP($p<  8^VOQ()bYeh%fHU78N&d6&02H˸;Uod_zIv,;^Qd}ds,&@Ah7mѢnBQ^^>00hBPOO*%B4Qn&DC Ii+^tXo?{oUugL"D j`UТT[ZVG|,BEU Yf2ٗTߚ+23{=}糼?F/ϧ^˙H$i_R5G'?m隚Kg]cZs*n8k}Q-_Ucy5jkҪW_|z>rJθ/godpLvͬ(]~}겧WΙ)񮜲U|M:cs*j:3֬*|}I[_aٹҹjieղY/P~zR?np&N>+@O\ͣ+[E+.ǤG̜|=t* L|^a=w _w킊yl 9a]qh\֪%ݝ,ɋִwGxw3VL̯4g;v$qXٰlrb!-Y//AZ ҧT.dbe_w5Oʗ7חϗϨLˆ΂f#LKl'@4TY&iEh?wI'jN=}l^OϰwϚi7A0DMQ==nJ0ϳYY`5&rs3=YYOFVvnvNOO ! *B4XU1ƊhQ0,Q#BQE@s{ן@=m7St&f0 .r b镕G|t6b `4=zٳ%C< F˜€04 H&D/1"hKӚdh C]{8N2b{d΂2HsI^If Xy#c-(]oV͸̙3 uhF H`eUIH,) g`I" bh_bŽsM<.F0o b%^zdd pR{eYq,˱X`0|ܿ-}}uVڂ;{-SU^ ^^2~7&p/HM&S^V1yο[[|-ƮewCoQ 67_m- EQ0i/rE#Dzzz]]]JJA/#xD"zi6Ѩ[RSSAzqt~b ÉDpȲ(Dv;EQhj*bXZZZɞF"dW/⟲_wﳢ_)8rY˾KO焉%t9c/SW3\m'W>ɮkU/_?&[,QɊ"J)#vy*HsMު;}* ˢ*k@,4s\}bfu؇\>_cC.ņ˜(bD XEIeX<|7W ?O15F\:ujHQ s*+G pج-nɢbp|cKep .! #0t^}P@ExBX5S4 N~z#?軍gGS{Ut$H  0PX~AǛU=;o=7tP24$Pnj(ѡl 8i(&D:v9bbݼue#瞽f& L&^Jbh%#Q-aIAQhzUuMd'=o YUw)tCnKY5͉D3EH7ܷ VV޶]xҼqcB/]1ٹ޿yq9pslٿ|lo A0Ɗ$40 YZҀ(qUUU^oHՀ0`$2 T"XXdsLVWز3PVyԕcG!Zpgww; !3ahq*E34bFESm);on< 0ß;srlVsӠܲQA)!ID<=)JeSlWZj~@O_Z[LvN 0l (B4L(@; ea!Z80dXν\E3m#ˊBK;D][=nC&*=yĖ7 R/z>jJqz{LL]p:N?0mRyCgJaTju8V{^^;>(>ڿm9?:|p]]]fffKKKffeپpqPf}\xh^QMO=FMosx<VUo֏ ʖmZwap/=nnxf.uƫgfR#DQYLxt^;AYڱ}5P  eMi *C3 |h&kq &X9lIL/z}Ϟ B#)ĸBQ~/aKse>U^ZTX{H]Bjn:rl]#Ϛ\yѮsfعs>>xrhaZ\MhN;l`7ZZ[[C[n"M)*N$DB˲P$FeiMi@XQF0C\l\ܱ뮙jYͼsƖm[NސFΖ{s m,#Lݍoq*\t3+$X+jR8fi&ᖢ1f8Nh8Q*<(7W_^zIaFh4 |jQu;jM$(qئW MHB(H`0h BX !( ˲c(|$I(rVX c/ޏ~fÞeR8yƎsـ4/aXK5%%R8 gh[S;{ww}oSL= f  ͊^?URB oXSn(88f: |^lGd~xPZZ5Kq<; w&С*F}l=@ 2~t 7O64|ȑpH ^MU@7H40)3q\\h9zly0޼Y>4ݓ`kљTn@ s1040V+o50Q%1ňpP"E#@aP4lζSu.ۉz%>*+Z(Ѩ;EQut3ĤY_nKK7yɴо?Ii?EG?я~|p^_\8\$I?;g)aj9{'ݹH\ ^yF#G7o~+nj7^1zlVV7D"!X.嗕D5*DU FM1CKH"ȑOn7K\vN둣~}?  -IIqH.Ѐ$x˷x/?d]٠WB4R5 i0!|=(nb(G Dqos9j_=b„&qIcPC{{{zR@N i4+8*J5!d4 0DTQQEQUB}ܬAE?fG.Ӆ2zY">qfh4M' ITUM̤KT+;L07ݡ K&ʷS~ǿKE9u~0p: [C@TR¡Æ \lwuy?:R6bxk )}y_{=ٮcOtw{/y\P(P0.עa:@[ v8K(n$ʼn1C Gpǎ߿/x{_^2ŕm}op덓m{b6K^VQ f6n(++>< Ӫ qXf@jSXcb7j0p@9|ƭ{ƕ_e5[8+nk"z~_ThHhBATD EcXe5PIVEQLHjFfgǎh?rȇ~' ,x<&g(NtXR>#)i?KF FQ zB(ޡNђi}٘~)Z?я~QT)D}]v+T'Wfe3l"q/L4Acz Se1Y N -hG?яdf=zt,"b{c0D,[o㪊4 9 xxD02]J()򵓧75555fed42پw HhvuuYyC<i CYL+Xƌ`dR#F*2mj݉S[g,YR +&b=}tHQ<3[l ]=ESRRlwJ ySMńRP uހiQ`{}6;FJ^ki#{oǻ#*q2#4DPCJ  %u,a r NPOb_p8&l64" /灢5B0ƽALHPwh6 H;Ν[panaQyyu]w7L۷23M7%#u86=FM7:I~7eYAM/ JiId\Ze?EG?я~<6]9g=Ѩr`014KwϚk GH0:`6Z9rֺNîH*K6G Q_s8ǯ[5FߵkWEyi6{Gg':::/,լܼԌ̴j欶ϛs {{_|gH8\"K,˦F_,rK ?/PhPW7l )! |ފU@5@XNHj(Ȳ7̼x`bsә^_445o}}MC l3 mQ=@ˬIш _5@`0L`D#ZFJ;2d<#*wawiJ<]P8"tt̽!Æwc0 @lTQQiUU)4PTLT9竐<>Owe_hvѯ=ܓ˖Y B~nFksSI N@(#G4;OT$WM\hI~aIua`Uӳх(SYhQh4 aBX#EbPe0@a }fl48\: GR MS@F Ae`w9}mī[Rl3n_7Gkkd,(рX+r()pL%huu';Z_.+-ul`9h@_H<hm!;+JSx.Ea1gv)eFDh, egBl(B8@0J7! 0kFTf=][9zj5(揜0Dcw͘G?#HCCק>idSkY^4:D,ppA*)W!)@!(`DQ BZ(f5hȼ{K5Н KƄ2sWl|Keew߽EEmugV?߯5rPP20Cp$(%#ʎ0ج7rssp]Вp8%3R(:E%c)KČyF L0 p8W@A#qMp S@h" (@"xMښ˲knh1bDncnfC3͞1MbѸ"vs"Hb` `0yUxm,+:uZYYY8rj`@8 y{q,H7wwSly Ҝf \xPYB?!$1Œ.˪b,4q<{EELHрd|6腔 n~l^H-l≩-s*V}BV,][iT]5rk{U,+ 7@ɢՕ+.r'sҩ<]o;h ӆo?+@{m SƷ/H'msNX60sѶ}Ñ`[ɋ2boyt> ?|ݺ"/V}r_OMH14|ko&tQIҟ#$_^?{/ȸ,|SфtMwXUɗyy͑vqbRرr*:籥U筞[f]SJڲvioҽSY|eҪkzU_|jPoۺST>l IF폯>{MgN߰ZA<ՍT!/鿭%=R ?dP; ?:;eW0!&n3r#⌻Wr;$'TMlpW|uT.[Q3{C#%%,8J"^z'VUŒ(0 !!N˒Lg9:㹘a'$-{@(zœU~'gugZ쩗Mx(Tv(p:^͊1c?\ۑf4!ie۱ˇ=&QQQ7"7IYVS3Zۭ)f=P7LӴ`\Pg(i@kBDsE`R"ɀǥ,cb()U˜pJ<`P p+(0 0Fth@\5eʔ9*%(=Ǝ áh>dɒUs,P2x`$yXI_@,uE++ .3W;?ڝO$}n}M4Mv'm^#(<~5.OTwܳpZfڻV;\R#nՆy0#~eٟ$_mmz|uuWC>vjQF~RS1_Յm8oO6@T/Ϊ vvm7f^U_Z6dYuACf;E, !XƎ7Ŀo,/8bOo85PUcXLUդ4,)1bBC gP`4r-`DRAi #;{ܴ5HN֖swfm}}/21yY9=] $շttSQI!xBjӟW\9Xss ?Z7 hh F D( q_oі0*PsG0 y 2C+MfUV# iA"@a v^6rsuuKcS(U ɮoj.,,l8[WRR[0xԘ+5447hh)*XX #H  O5 <Ú8eYAomn?ܞ; ߙP嶹[xM3rF*+*Ə@& X& 6A #hD{=ޞl``6yF (@ E(*BD`]r霕'+v։* OxHj9y 兩S K^×^6&e\t_tpb_ڊv!N[t͢+8ȿw~û輝 O,3 SqO'Sz̈%_1idxYvk3lyZI?A8=.ޥZCq? =/|qꪉVYD}yϹ啅<_|7G{rϼ…20i}ǔWYʙf|{~N۶Λ7>eC֞}-*x )~>]շ^֟KZZ3%W6aZr^~h'~o2d黪wA~|geE~Y``<>o$5axRt0X:?>CkP$A0rD22[))gBR"8Z1~A-[UU%АB R͜ksKvux@+MoL[o3 lhnkMДHZ>#uuK#u( 0qHMEx6fw;NOvu1ɠ`P0a Htސ;S "9疛n-[|?F a`hBzgϙK/KJG§Omv,%bX$Q4%?;sg_^sͤI'X|詣MOӋ/ϳ8 70(Z4Ip-}`EǗwuu54MGCHD 4GVv$! PRB|;P4U22925| |V{+g6myXNce_Aa+X1bԩR?ߘ(\`d-pE"7g{++Fg4.}sG,$o1%|) ,,_ɖԶ7D=~QGr}lP&1~^{lzûԼ<:0(uk9#}u~yԂ%Ct%iS .bM}@ot =I^t͝('B\<"QʓKcy ˼_ъNIÑɆFҗh성-~v%P,b7X{(j J]} !ybhZELsgɿ1!,bTh.E8e0d We]phsi,qiSOԵ#T35.`5'SQvz{4M (<}{~hs'0X̜$X,B))KV}5#JCv Ƙ -&tb0ABs4Kd5ScZ׉ӈ_yL0z׮=qɢ!rDd2/CF|VFFoowhϾmCxVݙ04*"Mjw; drX#E#  jOtmzVnP5 Cщ$HYoٳgWLRG>YNd?D$Cnqt^fViFŖ-M֖=sf[ql΃{nY:kYW,>oH/#ݢxh}xzoۺi M ~)UOէ[;}E Bk{ K39F9z%''hٜp$Da6l4)7 +-4(:M(jw4PMMR[2tp^ՖB1h#bU2gfB$[Pd0dpo}hϯyV异]XfVF};sB4=)[rD54\tak %}\DA9EAQi`(5 Jx=!Msd2efbL(Wcqi9(0l}bIH"FjU4 i.wyQHz=m:srnqA*|w[osЁh""j6Bh$&XsqT<.55K X@P BPF'G-I/9eiqI /3-oxeSczk]2?AٕcB.cB4ZpbBh]o?VH]jjւʚe3 $INjٴYUn^Zڴe˱o:B:$36?;yUad? |'g(vdcк$\;FP]{[v3ARHOE<%JwCйW4rxsJcoM%_Zρ /=vWg}(q#Cg0g  ݟ=|ۃ_qy 4b>Vf+};TlW?zя+%zsolzeGYQ(X ,JDQlώh4(Ji5(lv\,$ =$t VyyY4 0?~HqցGA8rƦ@(,VrHjs8YSgs4c2I)Hu9{kK#EE8ӓL&(zo=A5Y[ӈh9R3Q\2TG#,E#Ly?P Jp(=zO>i87pXo֬~MozN6ƣT"cm)ϧVŖŲb,c)#  DÊ7b2[d8e777?3׭_z-N}_x6]V -&`b2YLfEu[=?qWiz\tY>K5ѻa_gU~sζ= ai˲N7yގ;; 4盌ibkm6t69藃QY4g͟xs; ͿksJ>n_lmr8 |nm {׹bn 2p~;-swk~]z^'o;s0 Z]羨3{-XqzDzkJ)̘?{:wn'EL d؋>?O{CWM7kAd\}ު[~:kO~|xR]g\=uzkG"@!ńi|HbuNK%ݠ9J>Fa)eH($@o(?ux, ={vժU}Poi¢j%Eb<DӬom^0O"GA% .YGϜZh4X, #[q2fG54PDYF@U`2xÖPdRRY))f@CTּ()?lPqo$  ۺy{|/'bBTUE1bBEEQTM4M|%0! /j>2:7̘cߞw|p߂xdSKPfQHq!O  㡐D{z~aL%#&Onlڼes~G^>*=3h4֝nkjhlonYsWNLK ,%Ė&Ţ)73?;;cڪҾWXvTWSVj٬e(YOೋ7y}2J&Xf7h Fb6|c 9'OY/Oxyt{ ^hE%soK9غ=b;m4V-܍lvggN~2 ;zƻmbژgϟe愝S+VI` Sx艗w37x8_ě˗"g IDAT}*X~مtίaś=ݷw oFϮsnU3JOݵ5c/yeT*ۯ=}#߱zfG>/ LX=/B3>쁴~kFY+j/'yXpNdCS9x?2=z,8uد:uXU$Ѝ?xoV_~.P4=SR `bրhk"eg 1 (cEep>Vd Q[~M?t 7576=y={?>tLGB@\(ptktw+,b1I퉆iNWZZ0OSu*׻ԋy,iB440P;mV"tE.{54 5vuyxB P@q3]g B'L,γ^z 'Ϝ0a8i 1hU# VDQT%NCXE] ET1 @ Jń(f G#?,IE1koiȈ"l6 B@50 E1LXhL&ŚkEq8 HmlocKJr}hk2n3MO#wlr5wɓ' %I2 #9F+2ʲBǙ[a Q(Q*Y]*6&Nn\w~Km\7#V# ?DU=oqEӯr6g:Xk`ٟ?#Gyjo%n$I厾_6ryxl':w p!! x P#a 6€p&€6׏fG}Cm}*!D@ah\eYeeUTʞȲd<O$###Dd #Z,@Ӵ\.'IӴT29DQ00bTmjjJ@$P@aS9@(@0yѼYOQΣ!$h4z~zzH5M'XΎ7z)ƑjeǾ')وgxF,zWqvǦO@$πQDj?&d 1gcQw m~]?+X%2 ܣ>&20?Knq*_(汀0H"|N,91s*S`A>ˆ2Ej5Q#H$NCB!VPUiTo(2(ލ]4ҹvtS7;ҏ>Csٓ]9)UTqq_uUo{OiE l7N. $I<ϓTR"di*B B1  Cȁce 4<9ݥbp=wE/Y|sG)%jrIH"FT[N&)ę_s]m]Rin]@.[e\Xʖ}opunH\ p@ x(-h[y,b SJRlj5O |bLsx|oJ/i#+WG"LJ~W.*㙉EmWMd3bo_E[nWϥBohozߍU;FDnZz 't-R̛F4)È0'Y8(s0 c'3 ,dz`ihJrbwlcoY^/ILfoX:<:B9謢*uC9nS,CW}1t8FTMD̜$I PUնmacEᜋ{AڰD(NW0lN&Ç Ex;SSSO5nj\,, bQpF]-B/1 K۞8U*86/ DX}yɜqx7{}/[x-K?t$+C ͳ&xxXLUT cB+xCܤLg:x%-h o_yK}s-ౣƦYz|\ SFzuM18hO^M$Df'FdIlv4Z4dE(`S"QI2m7Td9?xG @ujdpc4Ȩ(u31T*S l5:"kijs]T_L]#Xٱѡ'FFrՕ۞??<{E";vdǀD4EEs Esdh&''FSS%(%fDh<s~q߫s| _=(8 `JZf/;;RjH&%ϱQ5_9Xz.knׁ'' +M%5u}NlN9t 8W%g*Z, ;5|禥7e͈#΁1&$)XX6+J‘B`q:u1I$سH#A~XH0,^J ^.zθ{؄^$dY6M0믿~Μ9wqeY\ciZ\}?H7{JѪ*RiG&IUUŢBL\ W-Oh|}!$to((e+ C*ILMM8pg6yȫ۞anٲerx+X,1. =zhhh|||rr,(HD]45#v\ߣo]L&s|djnm-XB7B``D55oyuN b_v|DSx1otd15*M9WH۵O=ÝG_?~= UeYUd `p ?Uk ØL*q_MweZA CEVᔆpx^b`SCPJ GdNzaKSq}eoB(h4jdSSH4u'MTUuDz,gT)ZUTQEr"qRyc, MW~|*.|5CQJ Xk3ߧ^T2M6Yhі/)'>ni^&8 ^<B>ȑ?3D"QH7XlP2@"DRtub['rt*5\f]s7w2o<#U4]TIV@nn9>WFEGΩaAMlȡ{45)#:+;vX?(X,s3 h[D)a ^,+ gq!q4a*X=‚[ ^r5PO[WHe??a%؛aU6::*=RiF.PhUTQEU ieY͹Z[[yxNOM83F*:$"E9VEiiiZ}iuwkE!0<òL) <,;za0Ν;FGGe"&8Bc'<ccbDoH]~?dgw>:g,;^m^DՂEi{/W75-X n㲛ox~}c+x۲;]5N\>W43ܘ+98?]OՆ8P? 2Jy@9"`R*xd!.p!i)Wx$Ltc 8\ȼg~m&˲ՙ)$I, LdDĭ**N#LNLL HuJ\<u]qCZx WUUtueϞgzjNJm`K3<3g̤y}}}x77[2::G4bі9sƖf$K`[msz֦ 3M"v??hlgv˜ />fO|ߡiMST5#!&h,q!c_z˭od#S8$I=f0fQ.愉g0*00|ܮO$Vz*Y!DFGG 3By\P$ *E*i0TUeJL&_B ۶51JDpόSzg;r5~^=zq l'O iιi|^<8eRّ$Mӈ橺|~ ܚXL5"xiZ&:{r|ltda.ZtS-]QW~;޺􏷧[ 648m'?Q"LА$bJ2E<p 9!أ,TCMƿ}/<>1 ,XơCfeY𤐢AEPrk+f\V;JW)˲jjj<ϋbr,[e۶(XeY~R4\*RI D2ˉq% DTUX,BAyqhBqPd9fD"ry1'g?;00w?|RRwsw!n}wLNN?7 C"Mt]u=T$e´Mk)1=?>:jmƖ)d,/@*%IbO>_|_yE zkkT9<4Ff~[1D5}w@!Br~@V49jesSsg5Zf!79m]~TvR˺ZVIr9 /BTqZ Tg5M$}D[h46rGu\u]WӴR$;0 (˂&BH"u}ll,LRJUU4 k\ 8**ޑ >b e ]4Q) Z{*JSIߖ=yꩧòfHX"9I4I&~t/kjj={v} / wm̔Yt]T('5Mnq]bKfs)FD"A9&iXbT4۲{;HӇ^=J$(mۡ;.|NP'(~8RDP hBlEWBayi:f| zzNG!EѪ*_ c[C4E:Z$]wJETY8|K/vm۟g?}_v]ŋ_~埿ϱݡѱ'O ]K$k ðm(f"Sрs 65ylbv?'N Xu;7]#aUUVTMB :6>62>oX^$U̓G$'0!xK IDAT# `8%M4=ZzQ`"K*#;vsK/$Fܶ˒UJ#5 8&E Iĩ)Bq!$2 &9\N0!wH**K B3 y0ЄiUQEUTQh҇曟00L?QKY+8+:7E!͹,l/K?Jyۯ޾}}݇%}O,qBHԈq˶̊|M2(gB9C']/}{aI5fʑXwsw>k͒e!մ@W0qAfU ,,˱k_G'ΙBӿcLj`UlۍGd #Е8H,e\hx>lǍD" x|nla|ka18AB$.(☒$0^+0U Er\SADa/VpVmH%C{ JJ8B/lUQEUT"JL_ Kf<9I_ϛA!!cوC"`9v麾o߾><<91>:5u=DLĹ`Y%zKo_ݺ|xH&6G #K(H&gs,*+ &LvO_u y-nHV}wˮ|,KI,<2 UEL.f@} r}m+lQXVֲ?6xYF&NJcH$HL8D9H8AyzrZ8GMjjjȓ|!A΄.a1TU _߯L _rNZjmKkyvF0{Vun<9_ ^[Q`Ҷt:ݹIP SBuv#ea2)0 l6+yD^2|s>3ۿGNRɵ'L7_1[R)D*#P gbCFP5 tÒx`lb|brj43QGkgr'N OKZ}+Λ7>95Y0Oѡa4M#;ۜjnq{1L?ھ`wTpGF)aȑHDH0Ms,k,|= MW1)َk;;vhnnaJ|vRW7!`R2 M %~+eNS'+Q<s,UsTb+ee7A"Ŕ\t[ήԯһs_ [az}GEu_[v ~^;Yum޽]\BA( EkSu C,;eKӴh4:<<캮㹩T͵^K)=6x|d|,l6;55UmrxnP=v8rpD$Y"kRf|t`u$?SD&YG4MӲ%Ո'SzIrÃ'Ofx};s/?{wqŜ-Ӯg>?_C>Ȇ/c % $KPw,wD$ET;zW|PvR? c_*k~EM|%ehRI03o'm۱XL| u|>dƄmF.ZX;@Xڌ< } tز]=V/꒕,uh܅F*ބ Kxu/K Ǥ"ΒI/!t!00xT (X% CW5yl|3+;cSSSuuu{/|ܦ=<Q ]b"hF N% TjmT^sXAge&'83.]UĄhsWjԴpwD,DHM"!ųa-zx`x͟#/o)8S,c _+l@3I.RsI;r4t"Ic?\k2T_ČXԦIEAqϯ(S) '#7S6::88;3%恝>9eY/BnҐ_u傹͙WU֛oo_}ww}腧w}|͏ uDP(h&D:*bpf+ZZ& MD2[wjGru֝㊲l*vhVKVo\lq:dWn\lqkcՃSN,Y#,߲e7'ӹne+mZ>(~3*Чt+[S鎕Y6w/sm\њj]ܵs92 vvST⎮KH:d̝ɺ뺖[[Ku`ٱ\bUiU.KRek7Y<}[3]YّnM.^v[g.,fy-!޹8gO?w=}sϮٴ_lE2 u7/xxƵ+ӋW{p;K=XbC|ن+a뚇6>f۽qݲk0*1C6|SJC;;`iGQ  >QdE3ǎG)w<׶m B2&¥DlR,x&E{TXzBg+\teNk׶gRq3 к=qO_+ݷy~^}2_lE2\wƻRǧ_gt}]L"sP;n\溎k0*?SJR-h!QTXΐTJx(>Bht|<`!is'G'SjgK@e>B@$34 Bc{F3?'GZ[[$"xz`4u%r®B-BeƀK DT.3f9,ɊbyI]0 a3S>39@#};ɔ|> BP5ӲbZR.@ӽHq D! -L1ᕿQDZêϟ{-S3ƝߵN<:8_{WoX"^3PTՈF*%Р 4NajT| %ovwl]Gz譽Cݫǎzpn;{FP} =ܷ|ӖMT>c`R SڽeWޝճnԪ=k/~Okuz{/TBgQ ZBsڳswC[[[7{ g.^}zЊ.6 u%u+07 KRo ~C MB-K, @L#<2t#F];3,˲M/e' Ʀ]e}7`5]/ @5R/[v7رC4nQU%r:!X@9BU8AU+2T_ƌ T2 E8^u8.Vc"Q@1s0 X $OIt8{n [2$1N)0*1"QΙA88FCs;n!hёS [!|b(茎~'Y߰m9z}39<6:犹OPMMM 5OWe J(w3 DNw֞}si=3}e'L|@0T+mg!3w^XqXR{.غ$ C{O{$d6[ӳB^ {25ٱKڐr\ݽ;uKw]L2".Yӻy%*;վ-.dž/{E3"Po_۽gDgXؼfMpzk{η VzC°`UHiPYw\Ji%(Xm-ͭKeP@`m.ii{qY$I eW1ƢY,n M`E>600(J}CÉz\.)ՠԄApS^pp.-1+뺈Nd!VKef0{Vܹs R`@K*T$)HeE$e@dhcAnb)8Mv, (d!pYQ1"IH\VUdM32k֝+ޙGÇҳOz4ѡЁѱ^|]/yrp+GFFΦSomFD3mቄ՝ok.^>3 ;iP-k7dwn\@z/Xw|5[vgl[fS۪Uoiw͘ij].lrTg r c]G65HϱsNjo}? >[/4_dEeep.r'W?Գ(3Կwo=f"S^흋t8,\iy^S]PD"fRpI%p@ JFf0ǶkԨ(M8shՆBND ](U_4a?ᏞdDo?vWzܺq'ıo~wuh9k֬ym8pygGaearau Ɣk0AYtS{ϮjzUTQ ~w^}|:ب(~" IDATi;#j*()"jBGMTM (ZPꪫBO#"(_6}ij21Rqi uzBkx~QJ1F'Ɇdj3?G~_52luzX4UUt]*>^N** ADb(IR<" a, EXԐL6W{84~wIP$DSFȊQJHIUwc55> ƊbD^=@bV]h[SchE'{/x (ݠMLLh8d>'IR]}}W_3׽- o1Zt3߶DB8Vf2x+9}]i{xMҲ\^us1Huݺlf\Rۏ9bfccm+"cL칮+2Q#0dYm,cG>_Y**~E =:/_]TL\;Osu]EUr0RT#"kKGS}sc@9Pw=JiĈZrmِ[Zh I24`.}CI}{B*=g⢧T]-5I&s;hx&5b`D8 q,"L„p`[8hbs  耎z(Qub(:#$LS Sv l3Nj(ZGJfiQz}+#cY#'GFFryU7Jew˃&g劼m<λ>6pb" @90TE tcJ8 7MVEUTQE|1&I!D- =,2hf{fg=KlSj6Gl9(3>g C3 B:w^0-q fe A&iCCC~}ekJJ| TAQuY\6%YVʀQN !iq,hD aI *zIIɂ C 2w(Wޗ^ SUo d\ItA||d1PxEi͝z~EYU^߾/[]o1qBamb2O8׬[=Hg-{-+_~d*CXU)Yl 4ySTx wSyx .ψ.\ێ4 R,a85E'/Ӹ1q$ItJLmAyAF,;]qyS'4էI۶U,bY89pBE Ǫ#1BiM4[vDVb:.@i.ё1Mp&u4ΌLe}k{z,@X%͔  Se[_[9"JƘd_~-"\f bD!}95 ԉ'&CeBTUkOQerd"B\sٍkD=}r@PZ\tv"# '%X23~gLf =̜u5WGY+ &Ib-zu9 o>"M4~Kn]eY R A=YE jnpm Wim;8U+n)%eUslB8gqsƹ8s̰[6-- @2F(pASJE0㱱qW$˱]?[ [7i@R;id uAT`:/>?68 xֱ82mQ0n1*8cL׵1UUKѕkyLF8رmH&Xz*뺢JS\&"REcg: ִk^&z`:/>?]66:66( haJΎOe?xm]xYRDIdYq(kfT՗JsGs1$d!"D t:-FJ$]DA R7/eYD#M@MMJ;ƙ,v,ꨲl9<9@ LjY혒$`%9R8q)3@3npԉ>ڶè(th<7PSxѼp}>-+/ϙߧ\" ˣ/6ֈm1F0`D`> _`@I_~Etyoq,X|2055')ͯB!y|*-3)-Ì_{5\}*G}~ȉS+VDBEA@Q|NJ\]w_Ê~)Uǎ/.*t?"$3laEQ4k.@(sWbGyݱWh)HA R㘦$I] p&R`t3QBejɊ6fHY,>qѵGO8f4,"nDΘ`3)?14d*5s0$L4Mcvrq$ UBBF"̡2ZcTڕrrHI. f2E`8V'1G311d۶)eoFkV<ɥGǘ# p@F9G1F9q)>!ۡ2P3L%p;T0aeReVPP8gA^!n3;(J]YbG8~ӆ7kѳM)dR<#C,Q[>16cť٩)E_Q虑Ғщ8\hS<(C(6MRf`buk8$=x7tǿ! к+8=4կW[Ws3#G)(Iwe/|8ccch1 q%)$YLK>\sUU8 |}  )HA " GH/nv,£V%ɸoa 3Pq˲ \dX6ώJC'W^<% 7 LEAqdUNgsc%%ÃoGp.# dL!|||<1cx%"agMCT*%,-x0fi|z&YlOVF&B$/_qfhr|r?۵?K.V2ϧh-*|Ʉ_%⩴HRHVc @sI3gJņF?ѫjYI#66<:224rOٳ#/YAA?ckIshy-[6mHק(ʤe~Ӷ4e^ܶ3w,3S%&cF)c`()uj"PT8|$IEQ!rI$Id2TJx:֮nQ"l"㼎V ]o^// \"h$z])Z K#ƀ! Am^l릙TUsd,c#pDZc|aUS|2ö<'g{^cǎ%Sht"6~رZ7pE1ǀ zt/qEQD)fr2p"nùqOke|u@_W&Ӗ,C9F#0FHǀ9` pۤr!Pc,g˒M;o{zQ me)_ APlJa @U`ˢu)~wD"# d"`99 Ѱ) Ɯ{1q@coiq^4/sm,˂VNV{isokr+}G| *#|Dw8L8ۼ}P bbqq\,-ds_% f: D2 &X!3D:(*"bョ?h~=NА_f믿~7l( ں")*Wע4=qWdy' ¯z9N46c88%#ضe*5ΙBB!.F8.k\.G0d27\w}e<=9t#'NLR ƛFbÓ֚ˢ'O+k֯|om۫WmԩS"˜pL.] gغ,zyet I  D<ri]ܘ~+W~jWP)B<&v驼.4cSVy^YmsELvDCt{<>qekjrBcrD99Ef&cc^=̳?ֺfW^yٳgpqqYK ^ M Q'JvD1FR\}[aOH Kc09Uqͧ8* #֓@a Pe5et]NϾq_=_<=ʕ+VX)kVCWا>[o1)m;+WEN.s$b`ץsq;&e.S%E{ X>U$~}5{bG6WWoL;w +o=8TVy;-5Tod.wߤYdw$R w8YsfC (!> “D23r&c`1nar t$9,6r8մcvd҄ok;F)-))1M3 z[Q ݇]T0Lo.>P8B)ET&R\)\s5DMd)39%;Np#9SPq٠`WL8M#,K@h6,a-8E!#gc?}IYt9pWΌN[Wars}߿c^q5CgFFGG)**jyeWb2eG]xd^iGOnKͼ$fˏ_P?LƊO`7RL◴A7?JA\Yo]KDMV64l?V=]0ΝUfȗ29w21bU?'1,cEIM,äaLTEj^\(.F&'K- q?ֳ>׮](JQQQ8>qℷ!UJm[d{w݈ؓ11r8s3rd x,6>2:z S"X1YWT 1'M-qIU!ԲH3A4_Ei2BBj祈'~u?=z <=55~W\ N:U$obL>qK8W97ڟ1L_jwo4XSTSub +~Fi$]{H{OhqzE1 1PM`pbk|͙"OpD 2۴ӆiPzl8x~@瞓$ll6zf8\͝rs,#691)sF k*>U.;Fb~tH6L*jPG#R<ɊL2*g ZBm[$EQrOQ iT&cJLR97}6lWC+**ONNd2_^^.{]}8c۶`6{cE: }&N3/~*D= ;ϫ~nϒ}?tf˿瓡M/툻ѓ/g|qO^@ߏNƷ}_uNGޟR/nqFFڿ2ZY]ߴc%JI7UnooT[S]Y]۴s9оu0Kb=W>w>ydd|~g?7RLbԘgŭx~|M˻ )|h;^ቿ}r "}6VWF+kvv=Q<_۸/92zjGxj?>?G~-tNn鶆h46\_]9gw \_Siؼ}e`oCe!+Eg۳"8 6PWks}Me4*^Z)le;u〇[+c*+6Xh3/b۸mkcmueeS[,?y}7y eJ+LBq(-ZQfŊUi P$U'\lEidy$"遬͆cǏrX!0% 9`(r8O~]w݊+ s^Enz;(^"1)wf;vPۡ"~:*).N.@_)Du=TR~ht,E k*&@cK'DI9ǶЛ\&x<h<ɎAgFN ,[* jL&񸪪%%%d2d׼qO /p.t G ڇ~o3kFz.ޞDǯyq&Ӄ#Ov#{ǹi6qs#t>7.8>;xM7׏}}YЃ{n=h/dӊ~~O[gwWޭ-5ܾEm߶C|U=;uGfkЗҩv>T5Ogm1gEhCp|`&W6"6E9ԴD}]{7FU6hlmlY3yKbYz5ԞOç]Q?zcBR{Ohw}>6]Mu@ckGWgΚӀi\uvwiL{r{] 4پtt6o,Sy U݇+{Ցj1"/bճԵv]#I"fa`H$0CpBlV "MTU-C"HWXLCĔ8uGc,|^zh483S `LN%  "۷R)UUE7!EQ fΞRH$Lb.ee2y:Fi]EU L_UU&,ۖaHgT2X\0Mm%lDhh^V,a2Q4}2c,I$,a9ʙèX"iR- %ұ@@!@|Ge+??ӃO²Kg2W!$$InM8aK yэiR)Y u] cX gYQzEB8Hϥ8u8MÁNʇY֬qө<~ IDATma|k{(۷qfdӺWvoݻr 5 o۷}?,=#Us}6r3#\B -3 [[;vl0hkٱBhk[uAC$;=YicvmLBo`,]Pw>U{,lwD ύ<شޤeݼOwkl< +埻 ĭF?UqQ^Ԣt}m`Î k޴Q۶3N%,"bAՖm"ݱݳb;ZBPcpo}=-6.кaմaڞ}o?.NEL P1H T][k }]}ѦT݇#ۣXK_E_[Gecˮ ^7]AxH#Es"gˍC-Ѓ9 1MS$\)-d2gGn|ߍo9@)gӉ0)G, Š((u@69 GTƯs\.~oX*#S8lޖH n dM?;:66%+ӊC.tn1,!$"q er?D'OYZw ]B4<qnplLo0~0co{-O,0N='Gw5DzW}e4~ ޻7_wܵ_Bdպ Ts¤|[?$XG|mkJ#E-JmsILO,G%R.N,41X4\}WUM~{]4мq߶κښ b:۟lIvj{{e]}j*j[DE~uT"mkwDsSDU5A_;qE0K32EE!65coW_˦{*gʲ ڔc 5A4P(wttɟip7FqQjn{xlc۶i:38i崐.)èif%Z*>.l9 V[y ]uŕW\QV/}c'bէi.vY2Ĕݠ, ccrHImTuw_dLkph,F)))AgiSDCwռ% .rnHBmUUu9܋ޭ"f/vES RSz(/'~r_-7?Jȟօo :ڶ~Ͼ=uUksuˬUK03lUU;Eo躻Vn:`ޯ] Ƣ̻ƦRu,t|$?n+SZÃ7 B6W%[51iEھM;#m%.dms8klw8ҟj,E+rAi1&hv LfK!ē2g3)D, _y厎H@WD2vX l%,N9u,Fir5{S@I1[o]a.P.0N#wb˲$tr1ҿ!S QK&~][l_aLcXc$\3-R /}NM.)8̧|bML".p (1&01X"zQeˑ{S_ݵ i߾񉬑_Z< 3lmEm!ԵbC uKM{B$cK@aý/k/]MF6ljjٵcG@{{R`ꆺ foTV76b 7[E_KT#"!ID]/HWʣc:Y0OBqqiU~'|GSiYV !vld;c[Y۶0d( 1Ljc1aX0Hh1Y()):h)PK-h>EQiϢ,Eʵ` idG[y՟tʼnׯK319,! 20!MW]1pr8R?qsjzqic3F-F7.ªBftZ40IyNu}"/M&t|/@rb`7n%b PGz>?vt8y:ӎّ(ѯV_IN|kC1EC|d890y_@"֩&$۵RAܽ/ @ \dǩNʲMYD "_ PqD$f p jP{bi l=P&)ӶG@hEyѲep"H6;i’ΘS\y͵|+@/_/e9s[oĀEgFp~}z_eYX߶M*2IMRź.EE(b<⌹d_Qn7Mv &]|Nc JNzzx\[|U[O/b| 7sw_~z/ = Jvi266hhppip`׾z[jkjkvnh_0Թ|ӵw|Χ}6O] gSj̾)||?[{yз˞W~F埻E0^䢨U۲~cmCmG- uu*VMK;wcہhKvCˎi -VnPmiX׸7Ҳo6R[]S۰</TmW𞦺-oS.4t 4޽ۚj7nҮ6T,@EM*HuMnVVP.lM/Qowx-f:y'^=ٳ;~6>>.RtW,V$gM+59ed2쓈J0a6 K& SqD"! 5,.˻! 8|K$I򩱩ɡ:~#Jđ_W‰Lvxt,5ŷbmb2Zw۟Yz *c،: @SMvMmh˛)(yTɗJ2IUy۱{~'03Ж%ڦ[:Yrv~Ic?zwjx<+++ i)x(-E.sG4]eYΤ~BL1Ms01 cŊt*ͮZQi)L_Wc1f3rLӴ)3)bP`I1ۖ5M#Đ(3!D@8ȶmٲȲ|Y$ '!6 s1`5Mft:,˩T_md]9H#$UIϯ8汵WM d2_d2p8cCgJtb*B.镗;rDC f$T6U;v,bڛ;'dRظ?\42:j&œ pe`VQ(Td ,\$.h/ ifYg\`2 #(2<<,D(J& '''Jiii:rpXT|8#2cL9sF+*4q\?#{Gӷ?NzA~#,m:ڃGv #l`@fC4bu۸ fDt %i[sYA0Q+0p8F 1 cL&i>V{Hr24e9 6GC9BcjZ2EJQ990 "9T$q]95(..3FDD`W@4A~ !|E!d"`Ӧzq(Ӗm(+A) [Ldbx$F*GN29nucT9e+1ad2858966uayc֢'υyMƺ]'h;ܐe:D?z%xc(oXv4P0 Eq!K7 ?/jPY cZ%EF6ZzT"B߯x㍠ϗ3,qZc9b AG")[(b:P 0m :ERmh0Վ<4n*ZLl7$t|,VZ!Eq ۶5M 0ӧ1ƶiRkȲ6$TL4MM\H$N^h!p!7߻%9粣-dgok R hqOԋf 8hG1P@he=//T23mDZ,;, .X/@O@A4MBd;K2b.`N<e\Ė}4M]%Ie/>ӟz1rE%ňd:e4MTmZk!F%IXQe \7ysZszQ{#y[nAb۶eYn{( ArI  )HA Rp>N^1 HK#wC691Q)g~𫯕E3aٖ5lp8p4a@yEmfNGGxƼ 6V/y(t: g22_ZZZQQA)i"(*-4JfqJuejr2LANd`\&3#1KK&-C>E,.r݇CaL/寷]^q",B\yh.Dw3񩩩@ %}Kgcq@8i_>-J;v,b@v0lrhyevS:\^[8^ REKd Kv  ZA R rҺA./2;1D9sœ`0t\K/r8"/ƑC 'y慼h1Y1`\er EQDF)xՋB yiy^4O+Mwu=$ BH8&$Tɲ򫮩:=8$Yi`(>O &H&ӿ>*!8ƈa@20̓&tLE^&G-f\ /n繹h.DB )HA RCڋx\QS)Ѽq%˗=ïXJO H n~D( a)/ 䬜alۦ @"{£>.Ryԯs{^J߯adRH$lT&**یˊ/gٱ M- s8G!G20A4M {S!n' p=m")g.h+vgCi:YK?yrt]/@ )HAr|m)&ضȲH20+ {60ǎFeY.).’l2f1ZecS1MgqpH$<3́#@l&1@:::ߏ1^fM.Ԭ>OTU,krrt]Gٶ-IRYY.@u. ۶eY!c0l$Rz?9H'S&iJfdYF 0ƦiB!fb m&a|>`$)~f~rrRsL 866&!Y6.:Q6a@LƞX΂ )HAdz2G@ܦz6>kg %c3)cp@s”#]Ӿ4fSvl(+-[Y1bt}8CCC@̙3t"X'\)M^B:n`^'_|M4ܤY9mS)YFc㍟T21Y̴ow(0L|֯7t2eLrt"e^(L&ɸM0fn^`0 ^f7^,^KSRY0%!I7Uֶ&,|9о2<^BfyIJ2/LAa@LAȯ*Bg:1132q,!d9S@'ώn-+)#ĸu8y'7D45 C4qO&<6y"]ԬnPnySq_:d,k*h l :248։Y>Ei QNζLp qDp w2]Xdb'&/w[nEem%"s n67n9l$gXP%Ň3ƽ_).}ࡣG(+.m[F^]뚦^5 yq'x5^1+ݫEl\y}  ]uC o!& ]^2k!!8TD^?rfȂӂ"nNֲsc!A8NAȭd}iTJpB\γO?Ӎ7xeXuHi" 0_!GT"υn7o^>5l;,J_z=lgQ08S p(@  <ܓL&cL@t^$ b87Q=\2r^WM^5YEm.L"ڿ2ZY]ߴct7UnokX[]YHX[]m֗c{SeM5ՕյM;nڿ2ZYYӰyo+][kt[x4F,QI5՛+{Q7p=8ʚ=FM\]ґjmFŌ;o߾M&5M;bt>;;:v6VWVV׷6́æʭm67TW7v>g"֘([fm…..`3Q;{͡ՕOʒvl9Yxʚ힑K2|;d-Ȱ~fE-5ʺ]G#h}aPٸ'|=NO9[bvs/nߎyay+qX"ҙ3#gLVa䲹L*Ie͌lN0H!1 ZPqy2Y6]j'??/+- |Ha _HW]u`EE7jKv XbM5 Hw , ,.-Me sC1HޗdQ(E-˒tT NEQDT*%^R=eK?{R ARѨ D( w iEj?cosY֖VOnS_cíMmٶfxOy15ܾEm߶c0{v6];k67nwZe20000]Ժ*0@w 4{ţXP:8Oכm].~ZP}GK;4lkmXZlnmjsr۾39G>m[oGKsT6d޾=ݽ[-yuFyeU Zc62\.d.xMhNǹڼcOya7־=6#0^K u,;|4Ͳ~dܛ&\Zo΋Thyϻ4.Wf͈hiɲ˙Ƹx0ݤ~3gD"ppp"p](4M$pS@TEs]YFMljy.>ux[Sg"KPq L4Bc80Ӊh2o|sdF/_xt6{w>`es" B%%%|s֭믾&IKDOèG9y#q^& gfN9w2O 9+( 0!H"Q,'!L}>Op޻GWuz^- K<,#`;nHI:MJzmqA!7%% }@|H@L0aBk^s'-6 1v74ii95?/(  "/ 4a GX[0)}m*T= sx>9/H%v'\4X'v;r87?ߟ_YW4=iH?tl쎇ln2.U6N2'}ʍ:v8doD58Ҫ w.ېumWVH6VYfK~c˦ɷbE?m:7 }tWB3f~_fz޸/r':E8^d//Jbm^q׮\-خ |D"gvMVa1 ҡ͏3Se%Ǐϟ?)ks9YU( ñ( 2Jd۶$IDX,bqD"%A.B+IbA'OFQTհhSP8{<#Z( @29QzbmB 9VZyXpBQ Bkkk,BBH #y(j›eb ?"e@OHH)%4i\@_ ,{N>kJ՜M[&+50MK-MijbO:$IHa`wuŮ0;-^Hܜe/-QbxL(PaX_D\v>k]Y4ܕ]Ro"ImE Exf&)X;{ǁU+$zwN$]mVڵk._væ'v{i줭Cw0.ͣ7pq}(ݗK:;87.|g2k&k^e<^?Ͼy^}KYZ~w߱}G#BcٙbL3Tk~]t]… [>QvE 0%2lo=sC #rɰ-/ )DYYؐT*EEQΝ[.1g>?/ZJ}_SJlR.UU* ӧw}ٖ i!D3,MĂKc!mW=%A{8o^$E%RmZ (%48yRZ.O:ׇŒ+0 u]@[/yyW"C\ C!TyoشV$b1܉ymWr\VQuqMW Z~^@ƱO<>l#:=is@~el>k`~`;΍Wg<8~H0 ûI=]={t`EO=}hW'n7zúe/ w>qd릭  ,\e2Q O>X fq_.lqIJSeVpg؁vퟢO]i׶{ߪl[3jGwɯYbVρ)?;SliSv͏)|c`߮xO3mM%0?$DȲT*L&kt: ÿ<24:R,OBP2|_qֹi\㪃#|߼{^x={ ymg2l1ep^  V??,444EQSSS0)$ <!?t̼I ./DWSPJ8d\?4McXwwwTJzS>o9q屚 p(i۶)<˜9sfhy&,˪&,1.-D1b=mW9yH!>ye1:V2aC=8n+ֳiGMvO>u!ֵrDVmٵ]ԣ(BSM;q۴uês޺x,&ٶrgr_}FV_7/=Ci;S}ʮQ6u-|ך6N5KDoSϕ?q_DÓN`_83M7xQI82aDLn֗oR$)˲0r:x`ɒ%<Ͽ꫶mwuuYK/-[8L*cg~.'> ~O#! )Pǝ:soX hK0yA aJ =c(SJ1K rXYNX}? }f?(l֩Sn曆|YA.^?s.pŚ,=A+/|ͷ4ϝge<")$O0yQ ʀ^X.ΘAD+R{!JSU5 s0 kCώXu}$Vn=V7>'ήeڳv7oЖ~ڵg}S;oiH,j5EQ")Ǐ:u8@`9 D3K!S2;4/^fMOO,˯ؘ,ˮ ɲnY+j5d0f f ٟoSB Ev̈BBR*Q3n^zYuuE1ZTB=bғRc: &ֵqW Hg e8XR&t.wX#pQ{7َx^HdJR)!qGYaΞK7_k(5-ga"?v\I՗ ߎ85wVnbDhy9O<( 7Nޤyr'Y oѶw_f5eM$I*gΜ\Rd̲lkkܹs}ߏ(xWT0sӳX1`xx8NK}??ESdqpQ,ʢT*oh[x|>}npp02ʤ}%aHIDxN}ҤmR A t!Z- &t0|,bEDQH){HEdrb)/|ֲ\N"a6 L*!r\NoWSlsSDI\.K,_089)q\7XS뉮x ;`Y1<q0G DdW͢(W6 {Vl9п庛~oSkilƖnkBmȑ utQsspTB2R `(P`&8q4 mQQ*;}wܹhѢaY4tpp0Lb-LZBW4T*JT E-cSUUd!b&L/pg &Ō,ӈBZajF XJXl*z"H2ш0MaBY=.n2]3e}qb?n IDAT8:{yy4\ubT_קquրh kXְLGQT,GFFAvǶ82<6<iL1SUӋ-ڰaC[[xt z o˗/q-l?o޼榼D ;Nvs,Z}E;cCTm ,CYK755BLDrAJ9+i7_"W+7!M2X|1$IBg]n@]oFEgְ5I ='IsH]` ~Hx]wϟ?ɬTia>eYUӴ$iP^3 жmGQn&۶3843q95a7xcll,˝:վn$I皰P8I.gT$]=ĩEc&2xG(EQqib1C?=P)UUdEe P Z (j\r X(ҫ'ù*uŒJ "N\ y1,3pק5 Zְ5읇kPkRS00`CCc(\E.{Á1DۄNi 緦 eCI(p8YNPa'U %dB̻GlʲaL& CUUt\ $$ \I`ieʀFqbL)w[&/*M&D F%4C׫Uk4ΫTk㙎=42pN<' J%A*H  RqLT*xjZ.s]I$dif6jY*ÂM>aXV (J.\(Qa ;EIl7:{bqWȮe,[}3Na^aץ~OR"k\8>^-P2 Fg17w6(~PV[ZZ֬Y3EaH(qllkju`|ZV3-èp'rVUB/'HDgIƪBIim0w0jK/juDFcã UQ`-4ua'q  .l F8&, b6ڨjaVߍ!8@Tr}FhxY 7ƹbžp϶{yqxD!B"><1,PQq=NX1 CӴUV+_IJhP ,WШ0={cLӘQ, F5rLftBD 1,rLH/iN"'~'c]^mThRz%ؙSN嚪ժ ñ Y.FGbParxVj5 C]a$JuV$ %!X` oqΉ~x=":w=߼X\ܿc]Gʯ{rM7ɍk;;{6l[0|d}OwgGgwͻsϣ DGGGGǺ2xx+vm^ٹaפș^~_z~v[zNz~zy}s]}x`RxO~[s/ؑgVGoǻKn;?;=|Ջv>?+o>G])x[,}[}pbWL?c-}nyxO{?t)OÇ?:wqhx#xp_n>6Qvx|GM&OWޭ׬\_qѰbJ#n+T|ZSF;ya2%J"҉IR+=D,/b8QӇg_tvw~w [r1 =Lfwݿ?|ȳ;l7&;&_GF-?mvb3\Dg|}{Fߜ9?C.|>oǽo^pMQ W9:qFuzhI_6M哙o5lg' }>~dnor_ynnXzc\4ىD=2#e/^r d={Tb~8NsbS¨YrY;sR8S\(@4y8ʫ'O:H$ΝNJ.wS,ucPp,p,eDQHC`i Htca)PXѢadZZ~ ċ,)2\l.vt53,r <4Lr9QEQ4 $IX MPi>KK7ڈ6z=ԺV*:cæUC}ЁcG||mWGG-?܎]u[ڰ-ֵ78j:$$?/Zښ^}Ykp;Z̯ xnm]s_vYr}>OvYhA;={|Μ-vz/O.jT+/2,rW8etɕ:oJ>޺5͚{_+ݹkh2`/㊫LlfCuvuΞ3p-1;IU=-S76fi|p䧵7}[ٲmꎶ[=q|΃pENC0F<'u(|v_J(C C ̈́SX>XcA .]CNXu…9s|6 *, jri`h0ߔaYXtC-7/nZr_~kʖU-3)@Beဲ4dO "Q.׬$1.&$ _;_QA|(hQH ".*$pGBxhi=s܏ݲ2H$tcSÐo)𓟿*9nǶxxmdؗSQ;QsmLCW^ /P@HĿť[\Llf+;+u~V=Qw &]_;фUkEٿѬ>_w3ɿ}#б;~$uw7O`U {Y[#aY6tMqKVB"xl3Jꓮɶ'}P-Pe4M CCC|[nI&>|8QZ kӊ+IybqDUi)>^{|#{Y]ky/<#~ _nYC~} SU5D"̙ieawS˲rŋu],kpp0Lft< (A>RB'(”oTl4M4AteYtRV00NyQX'"t':0 Rk?qL&;; .O~2<<+2˲5sw2@6")bZFNJ/ۿ/.Xw=02iӶjE0Kf * EXi6!$J)bYL㘦J3@$ېRERc)=Ú%%to_yWXr]bl0BQOafdZҢqV 'Om^TӪiJ,}m;2 BVeiQS0A OM 0H0 ,n݉Dڮ/+y:Wxv80еj=R_κDi.߁+ p\ոι}u-AKVaϏ{i[ZD*UR}h,pzštzᙍ5ɔ~]xd#Kg&sxe8\{>w{ϳm/6nL㨩g;M~m60 j[U+3VTjFxWU5J!Br]4MMӺ瞶6qr %UQUd%8^%0=HqR)ĽOKؘ8abxw>eRJu]f(:SVB%JXfL&0Ї>4w\qD p/2<E4쨐҈88,o/Ͽ \S:ԬDXc)IZ,˶mDQ}^W\1߯WW11eY!e՚U< l?hmkkj#'5B)p KÀQ)?R*3 P bـQǡ1.LbO8OjZ5MſT<^#5=uqa"En|{/UܳHGJVt 'MqM{ߵ+?4on?p`] ڹ7K/sVػ=jWS_z0hٲ.yhˏKgJo-Lʪæ 8v"Ѳѧ‰a̹ҿ>Sl?.WMlx==|x=S] =naP9T+5R3͏[vnN+gr,4zl+NM+}l}t[߹qHzPTr 9-BH"84J"IRRKdR5IL*r:Rz*is r]RBI`֪(|8 .S%l6L&(mT*e۶"61/{d:&\.NE7x>W$aYEӼ0B_ĐFAD@APo:;xA %yO)}um׵u]u]ӴIJA4ZVTPܲ,,\KǪ*vjjZ0|7BPa8yQ%\ܦVUKzQ" QլdzHB,b(:erYQ2 io,Y5MCr斖|>\*e9xw1B!B;N+AtlCVg;uukӮ]OxtEH6u\'M[mںa?йy5 2mtFp9LjUϬ`߾cehioq%nB<[GQWu1~˥鄺e<-Vw\z nݗW;&-fug~arś؄<\>+=kO꽕xyͧOzzݷni~̾w#֦grl4zSn)+iՖ]ۥ-O="4ugp IDAT޴sL-(xqXLY8 aF(HrDžǺAȳ\E3Eu-'  YRJt+ ?uT*$q˲0 cjuhhyUUSP($IKDss5Mg5s"%v\g)0DB(ym<YEy2aFA{,ˢ,g2p}b(brQUU0t gN{Ӿgq,ʙ>?y7l+ C0p0 4N<8k;)~_a6 R)`rMD9׸. PÔ;Ă0ǁ;{->,ְ>iW5+%>yݦƾz7YkZ j S=xDX "b0ifR '0.ˆ1JdbFGG:r{!2Kq&+eu(BZLqDa`,lVu]X,[g?ϱ"k$𐬒e9a$WP\NxnFmG'<} .OFveYuVX&w… 1 pnCDI5' HBIdt:ʒermnmT*Ղ3j~LssxZaH.)VV9GwqE/brKUjTYGE4 (x%޵^vlb\^zX:mcニx]w]fq[ڸ!JXWEijʅa(8L$@X? ɤEp(ȱ%i=44 jH#U%61 fcpxxeYqz*st:. }L"ҀL t? \I%j86gnKS.'}r2ٮ; ·a*H!pmɧ&,L$(yܹs,˵lB"0 |1=+AνqRN!I JX,… ~AP6Q_*w w2iXE d2Ja8pxC{!}kS-bqX&r}:a9&~kنְgYMeY岺"A0۹s;wnttHPP&bXxe-0K'-a%gΜ%K@\mjj긼1nuK!!mmm Hy )ϋ(RB̪!DؤѐjKڗwr-7sw]˖ <3o}!D9BsV蘿 ȪtW>߿3m\" Bi,LEx *1y -2 +vynX8B,`uL&#mo02RHgrZul:a-y˼e9PC$Xɤ.TJ].iki*|&ɲ( Aj̐ $ek tCe2h,#"XI ŠQvmXJ <#p"'\w2 ְ5a { ЩYjq( C %!5/B'ka跷/niΜ:=Gxxӏ1y0@<0Rqp뵊?!}rEeYL2zBĄaT CePeyFȲq é,2q׬h^E6b"qUVLDCU,f^aXa8OyתLs٤2yq`Nh/ﻞ7,)A1 ,ﻔ2e) 1g,ﺶiZ$]YIR8xAv]yeA`]O@Ĉ;5UM%D^J ,PR~-]2R,(hjd FayN$QY**r&{g~@|!̯^5V?Y.:$IlrNܟqib3 ?^uxUJQ 9sY@P9@ C#|>ljjz50XI6a{N j `ךTIDifp\Nē^`XV`Ya)eYAd=ϳLTJ2 XiTEEQDd!5-ifTdZ:rwt/EnK{~@|kKBQe=2MSK& g[@ˤBUۮUt\eXHD"r<(D0 K9aF`!@E8.R eT"k7vuJxfFSr٩T40QsKW ۮ(rU hƸ$EQF3}E " u":ƪLSF T*LfR)YcVeQg5a kX6<0<ߡS8xq{9@ 0 eY&pyy3gN. B2:XAnÀa8.\;w% ]8ﺮG)0TAb($(Q#΋fEA6Z@Q)㣣$% EQ((fE{[s.8fjtBYYY jضmۖ,dܶ9s!,aeJ`h>M9d!' HSJEƴT}}]]T*MM CCCÎdӱX,]<'MG"O}Qt 8r.ha:bjv]Qb#0*B. "zT*H Z`28$rCj26ߊd\UdiZ, 5/^Ff!i<ɭo9%s)>};zW lk?7jmݲ੢3?==w&!6kW:=w5~-,r\ZDZ]mhH)I|/,HFF5ˍb¥'1Bնm{bbT0qx<F*!ض].1'!4?#*T"bà B4EQ,BU̯Uȵ+"5"Qd] j,8D"q , }@H0OvF"oٱb,9SӵBνqfŊKKR4,p%(W16^D 4 _,q=4R:8mYRqL&ӘɤE|CC[ 3ruxxqJi,,h4K]-˨T.5M yeqͺ+e;֜&뺎F_fy^{y܆:Lt)R,g!گmw`ʙ.KQv϶<`xDzEk:7n޶i4S7un?cC{v4,|W_q^gww|V:fY>b88e((#Rvrd&iii$C68 @C706a Ze!WXYȲrJP Ft>TGGDd26(eXGORJm\ܲ0x80<r\L56M?LcC_\,޲zD2L{͚5Պ#GW1ntjUR)Mt]ommEZDi)u]V@ Xq^)qkSJ.kvbŊ*Ϯ?z#LVaxxXq+?lٲ/^\V,Y"˲7.V/^sw,AlYӽeVq7vmރ;~x\W6vn7klV5;~~^\az2{Zgq(^mY}oŽ7ZXb Ƃ 1\n$e9abqq<Hd;)|>J Dc198N"wiE/ӭ ! e0i 0W8siR5<˲|/xXώ0MrS25ŋnqD"1<< <ϟ={ 00 ,6S^|09V`H$ f~9-K4zT=mIq\2Zy7>$뺎Cq駟~^ `OSUdYFYzaZa…XjDV$OX%Ir]㸿A&d٘D$d<2N IDAT+W,a"D-Jtj}kz+w*+GZ#S;ık ?ɟo;E(׎ 87[c'^z'Ѕ}~ho7O/Q{F ݱ}['3=[<;Gu?{CDx^97VoYoMo@ްg83բvp޾0oۖm;֬woteVQܿkۦ-}X߾{ =×p}xnj۱m&oB_o_}==;z67ǻ6oVڲsMjߎ> COt} cCeNޭ͢=4лckyܞ3ַpރahφN}cs] k;c:@=X3~~^mz2/uڌ#t-@Jgnm{mHwAQJ MMsdYbFzg! eW*OY,E޴\.zp8qZ ]9^i$&QX4)bu h4(y yi:atl1jPq,XsiaO%f`:uɊ?yuo~X)9p^3OXr%;2j־1˲ <::ZVEQe8,0(!oZp<ϣ>  9AbYeyf40 C }RJWX11 qiq/&l??ǺOVV19>EQ2 v.BKK ֫O}jɒ%hTVCrm(xiiȋAZ)'rqA&''PZ}toh%+җo,K4ZveWH_v ?yjUG_xn IY6jwI 鷾H/??[Ҥ?z*e|sBwe ƿ7W g_usO\[;sn(9ub[ <2-miP Eoٽm}Zwl^׷1^ {6m۹i{†這g2]̥n_sOϺ84;n=J/p`Muhݼaŷٴ.6w8p\BεdW8ﺑevO=[V?c4u=;7к;w_ewmXs{a{:@aܽ.k:'x]il!DCW:?93P|4-M )EߧTERqiDj `RT*]p\.,5a×r1`?$Ƿ@T*%"!/<͎c?A8gYU*/6/+Ĭ0((!eyB8D\צ&`YeHc¹ږ/Xktϧ7)'8G+U(. ?>!'Dd\]|y{ͺcR0 UUk5drC:/ m֢LRZA>%!ߤ`ۮDQ,c27Ųl]]]4 |$E"9Ml_mrR>3Ò z5gN(8j ØiF_855f)H$477rK.^8>M wlٲ"9rٳ(H$ @y\h Zu>yؑb~7:{% l 'W,'Mc_}fOn%<@SDZ.\Nu7!ڞ]0XJѮӫ:2!r!qXġjÙ*6rC\cCкiuxmi8B%\O9.4yA9T ݛqp]gGgWW׺5rwȲF#e$I2-K4R8z ,|}Q%p=.`/,I!,! !,ǒZ"s ô,90Eѱ-XߧcGf:F00 * J}J ! rô%<%$R*K}q/s a)Y ]AFDz3 m˿ e#k/b!7f/p~RVUuTqlv|/`@6 QR"ð(jۦOjf0<ϖ*SຖyAelƤx4M D0U<JqA( %b!Hb ٶ]V+J" Bdb͓3d褔E&''EAyxem;9pwf>?orȉ0 ~1]++)'$)2g7t@i@=#Px~832m;aS±,@laY%YAt(,ˣ8!$EA`Yed>|TdV#$ð:ۇ, A ð C a&A I$FY. .cYx^@A"E8%e9G( G|?,q¥$xѦ0D{ TUB_q,l*eLgClb{yN@DV8:m3̟?s\uo:8);2M w,sGYںDZF)NB뻮j8,E"r1xaVE`i %gyJ}A%,3+؎U@m vIQx]]g _S:Z>JW_tR*Kh"I,[9r+=CT*p-]DLȂ ,Xl6 ύ]Gxn-˂(2 F绍 =4T˕'OaakRevh{ϝ 6ys%P +mq_@፜uqLoWW߸}{hw@`{wurم|e(T4iݭ.Wkw+U=/;sޒ?ۼqӾ;lܺбco߰j׮q޼zjXAUUվfesO}бCwn?΁MعeBv-Cm6Pν Bp,47f::[V۵c^8400d:o׾Sܧ:n޻eL׆5M\d#W-4[n4qp)D^+k/N JIU5S+UbX=Y%c$TjDP*Zeئa^3,cVYԌf꺥jT- @YEx6hDHcOE(BD`x3CH(,8[zE+dTU+ 3g\W7uܦ9/1ե-7x^:O(<-=`) xlעóL4"T2SdIe]wm xac4jUU&'G.p|.?>屉rDX[H6'Ebk+tP9.,TTx}<1U+VO,o_L%G/;pٮVtS]k\<;tˇO9]kZo;ΰ eF#Gu诎^`9VCSÂE $YNtW3/T.97R,iEX4 ]dFNre u>ѭ(~t[F߷K^ Ѫt{qeޗ"W ZO_6(̟އ)3[|7)/uCw%Sl}wܷ:36$v<:;n~Ϋ3[:{t<,Du߼/+T{u\(:rLT?oo۶qgсt˚-s_H] kzvtܸNHqGf{{nVXc"%ݱ1qǞ-ݻn[׳ou}Cunlmݴ{-!iںP;^ǷǛ;{z=^ ݙ~ M\~2g$ޙnl\k]GR(8"(q@xɼdGҙLCRslXI{" -OstIcaR<0V*$b8!,K ,up]h4J$P Ҷ#0 a@0 fzFӊ%>]Bp p,2$ȝtd"h¯kK1sg[.0,1Z.%I#.rGDޡfP^X \vib}t%r!VT/[xMy^TxX,%|?<} 3HtJΜ9744f,^0|>rziCt:m۶eYREqV,^]*|M.nYZL Jd2 ZuVj\\;w.e a035soGU> __}n ]w+0k6k1'|ޯaIJR:Y_OK%HC! WԈ(% 2LdǓV .|^45UԟI1]%K% $F)r_2 Q0`+ @u冂 @X ,˲oG]80A7o< IҜ9s,][p!l6Q/eͅ3 y6meEA%p24l g8ei})2Z+(ȹxXi覦8&=.3XXH$ ,x։ ]}WUe)tu%IEQUjߗO\Cb۶GֵE])lfmfݘ>~@Ҁ,-*G=chSq,q(rΛ7OiW_; YERc20A_VCP%Is@iy> !,|7))h!Dc,"8a|A2sU $! Ÿ49|jj*+J,(%x,VORϲgNĦe|ʛ"0b04\mD,gQG#YH$2+nn җZ%Wb׀MCTS e 0MxbBn}?NOLLT*dE(m~8q,y>|;֖2YYn<!t]XBi|m[$^dXR۶me9`Q%뺖͗VA9/aL0 B1@X%JRXmXy_K҂o)BPa00 B|Ʋ,alfzqD"J\׽[͛w U"bT*9(i$uvvg?s<}Ny'Dy<щ{:-9ldη1ݠv\SHD֎[Y" B&$)ϣ6+5ʢ=R,akZzR4u]iZmtt$I;w.2 cѣG m۱XuWI$g!ڬڬڬ}܍!#0~` CNeX5('d'^{T*@L@DYiNm6 i(&L1>w.RӴ yC䀈-LJ8c8ߧ,04!( A%\gf !A! ; #y,s=gΜu]9±sZ-nYH呑Eϛ7TIXy@@mdhFppa˲0msOf! ]I [RJ%Iel6q\.,+p)zuyC/ZsZm dR$˲8SIWe޼yL g!ڬڬڬ},p, y(/6(<: IDAT!  ֱ[oY<ĉxX,Ff۶}\ I$Is'8 H8HXDdea $Fa )va˹y{˲SSS,j|3>lv<4wNabbBV-N&mVUp40;!,M]eu̬+X6ah$[P+J|r]-`YVD"( !>aj[WWH$yޢE#irH$\׵,nRey%%I" ϟQr<>>^VYq,DYYF=jږ*<ͳ !,OWkn,ZqD9Ӵ9VZp\~+ш,I꫖mWiIJ,3QJ#(B `Y4JE(Aɲ<0 8q{&Ʈ&0$<"4# w7EQ'D|O[b5B؇aB055%ٟ=}B>hUU_]:{{wt=qĹsnN4D<`HVK%tM#PJQ2k""{,F۶6[`2%R4}Vj5MSEI&DRq]9ϟ?DsIL;HTQt (5۶ ðm["Xlbb¶mD ,)lđқt]Ǫ5ڹs⼺Ffmfmfm`\DXͳUj$E(Ν+\SӲXi&M&&Ǔ  (k6 ! #a! Vb!!V>37)E!I4L}@AK]obiXՎo*+DQD`G)f6NX3|He L.ohhxshwwMB:"G<ϋi!.D숔cJ K8(k!Kq WoeamK *MR8 zԩSfL&-pٳg$6t:2-^8!3Mqժ뺆az4Ek X$IU=sL<b$b1Yqxh6k6k&IH,!iQMӾiYK/b 'Ȓj Owyg.y^a(0<&$I',c |>La .+b%b$M$ðG8yVYAym_:rītxvxbe<,չm SSS Zd TqϛeرU4 m`\. WdCc0 -T g"DSS)W \ML$IU!.D,Ho,;S.q̩s)#i?.]z]w~k7ϟOk055D ѰwoJQ(ZT|bCbaG}"0q!ރ (DHD91xPq- A@SSSX0 !vHDd2̴iQ(at%$ Balhv}Gv]A[Ľ}?&R6vz_7̟?ln:?c}}k3o=pݝ#[2e/[xq:v uĘw/g,y?ϛ:X_'lsss.?zR4"u '@vRcdzm-C@6552TFא 0j;FVaz8L1Jp W|6EЃYW aˤTFt#L PVkzh޿#XVM#:uHZ׾%[:!:&hM&>u1@ ]x(J:F W*0 knq(ڼ;Q7un?c^o|;O~gwypZLc_J7߰ʕV6'A",xm\p3k֬r[n1 ܙ7V\i59A9뺒$0 W.<7\)h^>v}VՙGaIaCU°Kh (Pwb\.KP2 j_bTX,# 0t]뮻w<Dziݹ(k~g,^8?9 |}}}n2"[/8b!>CQzha)was(fx5]\$ȲRxھkYnUM08k._8^Z- aA&)p:iccc`A6b9Xc 5B}T? ֎ُˬ{߳`}/R5KfM'A8ӟ/'u;a[5w=w~'uſ1 SD^8BA2ɗO޴dAa"w_<T3 86:6r̚,*˨LQou]uxJ0i84-Bv7A44M+K* ]lu|6DA"4JJYu=0 rD'Olj!$|HVT0t$0*ܹsAp, yڽmu熭Y쁝=:;ZVwm?d_i~ҿnhkk[ݵi1>[{=sSWG[k[[G潇 W]={S궶՝w }:~sͫWoWc6o\݆L7,jƶ}}7vv~ˎcnutmy_[w=aCۻWwn{|#_Voővmؗ /6cK|b9'{J|_DO<|Az?٥_I?'{F'sU{SW^W-GO/|ܵSyv?7#?iS܁=&#O7|kKA]箿+k9]?_t=]euTe/9;X4;>u۟}k7/?}ln"7SJCX-UB6?/C]w+ih~j$岓bZy쳬5.z\OmZaںae4`َW TR*W R._& jj瘾9Vzje45W*RqJA#h"M2L*QRt\% O1,X=!_iBIdYEqtlܸ9ɄbhW8wN泿ɛnZ#0>*V5 |N%E#+pX2^NEbړSRl60RiPʍ'rjFňK)0k < ҍZE3)DeaA"E)444%tað#1rXQ-m[tܹ+Vhn(r:ZtIccag(D,dSd,(VDIV~rt|iU%pM'vU[Ǒ^Oc:/vZ>6AէRv)Dvx[[^q'mkknOMw~fӿx. pW׀S}lx_|6Xs-p//ս?G0?8`q>vRH$EC.N7'J[5 /rzffƎ8555a1fbR ejD6&3B߫ =vQE jDxJ)UO2"G0gEFHY  #TfRBRgE 1"VY3l6lBq "Vtx<^ R&#SQJh4;MڰtICohӊ:b[sgD`C$ť)0 NSJd4\d_]FBi'{^jnn }A "хj'NL&{ )yx1jׅa8N]^KaR3H4x7qLTu'MNNBm}KrRyKL}kX{;67ù{'k?weP8Óm;'y`v{<VmڙGۇn?nFUhޞ]{[m;2s $ sjl۶W;]i2=0i_ Zݴi{{ɫ97ù=k5 9,ex4ٕ7jcé|m?w 9?6G×ABgkj??hon|~t[#K-XaŊ%C[Z玭^Z^Ԇ{kd[gs[zE8MM5sݦ0Krckjxi7>Ӊ]Kjξt@x:ڷv]1.{7z64͵?&˯{j[z~-J%7e./JRPȻrx? TA(]Px`aI1F:m;JdU9'\g_v2˰ D'\t Zac@P$T*L,b1 2Ġ L6MÐ^f+Q2THR J(!0d0sD2fڰҲ,fE(%P[W?{-ҵBiͭ]_-Kxb&EX.b+A Px2!t&noo6PzzcxI E8Z*FNBH2kuxXhӧ bd̙3Z6߽kH{ۺiw;U"X_`8lZ8ZW~_r4YӐ;$ҭ+Ɇ?칦lFl>kLFm?IKYGH߼\_L:4gGOV]s}}=ώ++S^ٶҚDLZӕ޻o'=>w^WWgVZ@4ڴ$TbtْDn.B`7~|op0Q~aѻ  2\%szi#?}ƶoq]6!HR-tO%߫,y.g_fنU묫s 45C,t8s,Kr>n`m;A]5)87B.LNJD\T|&S*"m 4H$6D*-FZKREE,4EBJ@ H%ePƐPvG mRGJO`i1Ӱ UR< H"JO쀄X'i=6Me593}Xjǎ'][=?H$vjeѢEodvƊ&nY4P(jovmm-&i\϶,/Wj eXэ.˺Pܪ.#EE_4'rokW-J$$gL`_)eYdd. ! HT,6ckRA@4h=6v`@϶[WmchPʴ p5嬂TWpӬKwAߏ:׍ ؍܋[[f sy-#\]^?@lNlDl[yt߾ '85AeuWYmeOwK=R4uUO84vw0wc?>Ȭ+so{?<6:vٹửׄNZ?䟟ٟ?:zsr^v0ߪLţep)0JB4:+zǀŢQ 4 lFJ sΥioMQ 0MUCP(%E A\H2Bq!<&ϦiJ!sIQJydu08!JJ09ێUI%xx!5ئtBoZWޒLf?u~_򽓧~f3ˎpPW4A̶ԙ3gD2B e6L)D* C0D Z Ik¯!D#9w]7+XeV*eĆrΛKotm ێ,9a0TP X+3pr:l{ BtK臸N5o`c IDATL;[۹2m{7YtN]?4}__NҤʩCزg眞>0 99m[ZZZZZWBv]{#=^]qKW:~hNcG#N&qㄋ7 @Kw{;z|Kfŀvuw_cڟpC(3szū}91\x\[ݷΖY/m[\=s`Z:ew7]ߩWX?{VXx|p[mm&i&R0LjԶM|`߲eKn1Fض嘖m[v.a{ ZBgaT FhU0 T)J9}o:eYm9cG#x3 C"Myy^uSNaL7ͱcǰB>Ga3@lT5M;ObXvff|޲&d oLv,%fH㣣==-v_]g]vߎ[&;Xs7'sF&W`';{losN^ݑܴoTm[{{{d?5~ptyptofoZ Gۺק9]{gS;>9ϑm֕ܺ7ߑ5Ikk6I|xpR l i7DPQXr 4l~x̺n9&g]v`֎j^EWXoJ8vqҲF3;>q0Zag:·uw^oYQkz'O8:>x7лw~ml G0ig:}}Oͯ>|\ kաo3_|;k V[ͻ^=˫&S]׹sq>&-X *% PugbX*wT6UJCl^߰3[OӶk ŜGw#7}ppO֚~/~]Zڹ#}iSe{{ឯGquuu.6!$T\"P*˰IE(C@)0 $ fԤPJ<E+sFbuLbI)a JI)B}uiZzCP LAX"􋜇JP4Ʉ$@`c+K Psub3ftFZu_dP<31 c)NPī0Y+l!.u]ŭH+br {gΜI$dlxϝ;wMMR5`$G?mM7 |̱ǧye[W|XIe-Oy3_z*'7&S *:t$b[0(JWbeF,5)F B(R"Ba혖$9|h9] L?GKPb&ԺZD*RR^ !"\Iŕ$@ds!Ca4l6 f@e0Fh'[K))D,8Elg̙X4Z#8a!uiD0$R(<F-0P)$ P8R)%\~ Pb,ò0ᖋ$ l⤲32[,X5Zb1vY]3Ka>ACa)+ eI} aCt֨l&꟡fJK< +Xt.؂-؂-ؼ:`!R (0àa1F"V2i _T+A( DJR fَi[f)@AMPI GBrT/BB!H ABZBQ)aD"$䤔%D:ST;TRb|{I;àR ,јeY4 C*#?Ji OOuRs+:u`BJ(LFAjoCE۶qtOznuW0D5733AL RJG|as^t.؂-؂-bT\rTYbISRr(#,qJ{%A\)AJhmwCRD2eL b1/qFiڦ0u+tD4ۺuZк\DZ^C4Ei ι䢮Re0 %~Ci1O0(FUR @ 7ヴB ]<+J15T#%RV|J-G$CySͨsEe 4ύD9?Jd9+sNA{00B4uNCB1}yz~.@* 0aR(@()8H@@(o:LGq'N @Ph8eybm&bӈe9Ǵb֫B HT7d~mH}i> `$Ѹ8iNMM'!$rt1J,3-NB`3L"RDu-؂-؂-اݐ"LH)R x*L6!MIVBJ97 qH$RnD \R3Hjzi@шBq2 \3F APe2 ~$ )s!Oj,˴m4 J,RRb2B)a(BeKB!xaxa Υ&t},CxU*H&P+4u\Pp.e\Iô0l:#Te TJ:6Kn]MHe:X!p%b((&Qh|S9iA)(G<-rݢJr%; 8eU|~sY(\ȘzlaaA %7 @%z\QE%(5PQ!rKŀ_`j0=\殄PJ* E2L sI bV4 S eB 0eYĉEQu]ex}ä (0$bS0~iyÁ0h2G=y~5 k(pi` ` ` %2䨪DKR2ܹI9 m۱x4dR>_ C* m;v9RQO 5X9/"l$mVQ`L2ƕ ]? B.e P`02lvq F"x4fYVXTJPH1`D"3(T.%?. CMLÎG)-}/ ?5q&@ 3\s aa(Wy^RR EH |B) # b(2-+(U(JRf!R KW(X``E K*(JbN$j|<8"2/fgHbY"Ǣ^W~✃iD< i3jYh$=BX,9/sBA)ՐNy bŁ=)0p-؂-؂-؂A|FRaK1D)B#JQE7 3ĕI)%8J(F}?t]_)/̲2 C)¹\)h64aXʧ̰(`0,EbVXFSuMh$1MP(D+h9!8q%g*dE4v<Rf0M-L'RAi%% R*FM `S˔8P sTPJTjW+ihŽT0!6) C`@jBI|? N$ JEĢL! }dNFԥgDhN&c҉ؘAHb93X H$lֱja` ` `v.@XIRx&Jdى,"0IeZ%h48{]'=P&r_QbODZ:,Xr9AiĶ-à.eEGq?pvl0$ Va(%%%qVԮp]Gc ToB݋(RRvP]h ` ` `L&u2xSA0뺞-1&B|FH$˜(ceaK"LNGU|k X5o"A˨)!cLQ⅜T$"Bze٦9s~Z PQ數 ctaKRJ)bj:e"U,-뚚 {j+C?1=CІ #@DCM@NR8ց>s !ÒD0MG) Z31!6g!ፗ 5 ߏupۑ?ڭ/|g ׼x s7_xw^|K?-%cUҾ&jݬ ^x>!;lxo9/bxl;;G/-{3g!;/͜oGt^g~D_((G[wlۇ&}P=m}G'cЎ6ڿmGƎNN|mW߶ z]#G'WICnlG]Cyo߱c﫧 h3 pqᡑ~4|}Gsv-ۻG4/`Cx< כ8XL32H1>UJIMR@ fczPƊHd0; c>~aBuH4mRdh40BuJʺt~444 )S8 B?Rȱa%KΝ;7==](Wap6#@[ 2֩ILh 0L% #J󌙺&R1 `+Ej5 :㏺і\t}n*z :O{! n{iSG?M~}w=9م#tUpznm ^W7YBgۼ;9<ף[~Ȗ4f{nK}gW~7R{⎍_| .Ly|G[/'޽O%跏wccm8cgǿˎ[?O߫]nX#oD*~k/9|lS/o@x#q'tg6>g^ gyn||q o} 2N>~%1Kw/Gc/_ڲtUWYWyWxv˭}k8 <\Zqg]ܻ'C1/~կMcW/YG^ɮ]5';ݵ972طmu6A/lѡ-o^û_ݱkdG =={֤ar1v?[]+]ЮfۭO?n`PG:wp>,2544` yHDQe4lvRLD"H$!iaX Sߎ@gLR& )d )BHXHLBUzX~>K$8NBKX,BTr-L>\x<w]wrr+Ҋm0"x29^1Mq`Vj0yh48`مBÉQB8;'$IJD1FGwRIJ)gffJ\"&H \e@VY0A \nfhXŅ(Hi)?ԭ R5X!_(1hm4V^- -|sq,]5po MLV3?>۹iCHX 8+6XQ>yhKܱZ wևV[pOߪ7~,C?K=xۛ&zIn|lC8o‡"vc2Yp-*-{?ừbV7^us'zO'w-8uGVWi?ɝ--;l[ݱ_>qշv_3dzv:[Ck]] &;N|WK[~/{'ThGZWyG `m4<ڽ[njOG;vmjI@KWoK7ffDVͶ!ɽkF-kno4 <>t}0[{:mhr?w M@` 0 r9ȖF!MЭc47 0(-dH)a`v2()LTG8X* ?u[!4$Fh !.TLDF4u1!5 F6==՗X+r98]iM ]552l<بaE"$# 7/sUWB8L&MN+-a<'\nyyd L&HWbtU6U>wa>S6q71qtr{wNSJ555!c.d17m!|&2oV]6 6$*/%5pNfwgmO4q\|ݜz7? aybw*#?V: DF}kZpJkh>Ş+տ~៾p{cm7ٸL&}鵎Bt˓m[Z.KJv\w G{.䡺}eVtݴtDmH\<ΎBi[_sO3;#-is^KV;G2omh^qGj'^jY.\ÅʤPVzJ(4ݜ/Z$6kdݩ|Wr r ;uhoYZdCҟw7d.vjlZ6ԷZn)hѴ Q u`PcS,F  0-Ry?A;$1M"M? ,0]49]^FʯU!Y,q!D x^M2p} }?c\.%V-LLZ RŰ $r0L&R)ϗ\W-\5LXRD(X,!B_d :YFJi2m{bbZLV\>aIE!@b2r@cKF)9;1t"1݋KU$02Lw` )).9`rccW1W!⟪^s՛Y7pɋ"\ɍTylu<_WxvخҊh05:zp]&۲ke3?/}1@Jڗ9uۦCCWmAYOiģӷQ_VSԭd0DQeVPc"HBI3._B+(,-Hd 0^CIAZV_U__I[ Ԥmk/Jb"imh": iXHԥ8%DW04m'YfEt >C ":mN iy3ιtMuE s5r:9 '5&\qdY-3 8{.P@>5D7\25^XʿpĻKҫ o59XH=pHyX5y(vRxOʫ^>k2s`\^Ck43ty-Mo=-=3wdǪW^xz2{E7/.wս=3No]vwGi/7*(KϿ17/;/#|vusmxKz+ns:å58sgO>q%rJIt&''ϝ;799yB9GɴZz>Թ -&bT"Jh}mM}mMm*YWjmM%SXls]TRsKRn|3y￟?>11(V sUw}Z%`mmL>4ip%f4QE$ P75O%g'3"WYqiHnKLv2s~j:抅hߑke]/>i~dU㬳34%&ߊڲ*a|=U3ס+Nc +7v%B{~}`Eoo`?{_o{sI]򿽁޽~occ8O2UGO; [?~[b{]o?\7|nfE<,^?woyy8]3-k438qQn 7mL糯oǚ>M{A?fӯvݍǶLmyj4NVױߎymټl7轵ZW}'a7`isGw>|tofoZ Gۺ_ѳd۟uٽ{[;sM§04d㡔0 KEWJ @iE#(JR!u}%2((]`}nBHQX[p:T ҕZ4 œ-ü_.-H$"F1`R.C} jl6+]J)U1[q<2aJy8=l@1PVe~0AbjR1E:#a |d1rNRAr搽֨UBTØ2TCaK]F1k;.roT>:obg_^5!UW/nC^֒~^JuLk2?=fMkLߺ}|}ϖOwH4Ji T ,QԯrQ+@2-yӴuTEBzZ\N'u*i:yna, _uжI sX:NOVb1%0>hF:_p]WD!o#XzM7aijZ S.@>TֲTuǢ4|B0IaQ[S?=rJF. ïɇzN(& @IE@IY$(PR*)%DX"a;TusR@Ʌ(#N=ꢑuͲK_yW nkyodwwz9ڹ#}酶 ceGwt421^kxFM)B#DQ?jSu^^TY Tnhf9J+DmLʰ-CRQ+m۶L2\Lf јC.(G; Y춎}01M3H dAP!n<eV**w"M˲r|uArE(EMl}s$ T3 {cBa:N5DÅ2@#0퍙|<F"h408!אEm aiaJΟl7ͺ.EiP-;/V3Ru55B>cxyo~l-hz;q'xcP3;Q:xJ_\7;:+xră.೅]q{ֶSNh4?sJIA +dJ~0sa*sLj*Ir3%$HDqD-MMg̰#e9`/=4x>+vv{F"* @0u]X@bJc!)R&Ql⇁Dĉ3(-q]%-˒ QN"!#tN2gΎBX*_P q"8EIL'\(t ðAIZᦖ@PJC0TJ*2 BFeU7DRʚSJe2]kF-b&#RF+!VϠkS BJ4ksӦaץRLLL֤K eJ)t2uByxuaN$D@aJ?{ՕíUH1ұ| A/=cAe&$;^2`Giȓ4$ C:8!iBH3Q@ĶR*nu6r).Q4$Puks׵^!b~dj]l:IP(X؉_|*bB$ >ܨ=((H,p۷b1fg  kBP yV`FӐ na,9MIJd;+&@! PփvuOp-Z@@$Yy³Qv\l`o";<{o?x x}idI$ ɑ6:::88 wc9skxs Yxx8{{ﺜN'forv@WD\(\N-y:xd ަ By#.')r9Il6!(ūW& #v`MhX-$xӤ$dݻ(Y|`0T!F!m<yR\`(Ll9ni$ct,$DIOKylĂW vd() K,.Wڸ8ܔ BQxhm2.=TQ( a<~ "I$:H(DH"$%Jql(q y8.^@rRw Pa$#q'FPd>{&f㑾҉1]-%Dq@@R SbdD ]P)@VbICrEP`y+60 0e"ٔr0bRtD q:Qpppxx8Nt r: `Db咈n{prx<)6Ӂf * *( B'H0GwX*( BBF0ZDܻw'+"yYj#22$B9?( ÒA$Fv>:N4TN3\rUx'[rf9>2n(U1EXlh0.ACIV^܈찏ZTXpptz׮w6L5iiQ]zfcT=hfE  o5'Tmn7Hbj68 0MEBPv;n p{ ͆x!h B@oo/J9FFFHIGOnD`&@"$Dny'iޢ< ! %{D"ONbc%B)IfNgHH)@pL&{fJۍ;[1p8)@@*4!3~GR X&xjD }5po&P@Pa0jI \+P<$'gqj2J!!!xQo <900r\N A.{784WaoppplP+Ebs`p+ÄՇTQ( [  olX] ˲Ru8VGiY$~z! ̕ l A)+Cu1)J Hp8A[nw= ah``Sirp*6$D-`& B́y}!%Rd,FQfl=̲nq.G0K-W\K/y\P(0m?}beٰg044tf׀mhhhzǍ'|υBdR*bۥRX,b)8.$$D:rxhH]t ubYh'DP(ʷ@\Y2D"ݻ[ќ0HzjQ 'y)9 jYRĥ8;,ITr~F,l5YIu5+!1ʒ_n 7sΚ} Wڗ:k(ZƽN:.OWQ\2{cngQ(3B@o 2agw:B@DJOw k28$t$I__bP*H|H(Ru?8Q []NRjCoP4SȞEbႻnbK2%G)Md#iyOb1YgpBBB\91\RfH%$EN$<~CQBFDD`ǙATfcH$4ۍUT"E?Ɍo-zu,wa~%΍(9IMՖ'h d2,Q*|Icfm |y$/_.GGGVD$8jW]ppwnGEEγlH$ BqV5Dt޽v".%\N4E?Y[in\`P!^}H}QFy12be2j,`Vgw|"nϧa;IbfNpK$h71m=L$bD aq,0v3s8vw&14 oLl$.ZD$I4P3-N$ҋcAkmDa.kjᐍ() Er;# }h3Q{pT(U- n/⋡!ZOf)ND(B(*Jv=T8wwpmhhhxxpppP&!w\bdh`e$bΏQ.D$NXnDb`-x3"_f]a^6/ecuYu<9&+^_XSSOYGgMAFR||.564'5)>666^(Ψw5Y⺺,.>^W};NH[}暜m{u:0QO}qNjR|l||RcMA4췏?~{piN.~xZ7CGVƙW]]gUŧ\_-IM-213x'w2 7fqĤnA./>笂,<+)5ٙ}N<ꐢ8;q.uG8.N'lI( \T* 06jl6 }al|$q ^CCCl6È0~R-lޞ;w`ĈK݃+44Cth/TBh"wc l\"""d2]`ȐZ/ qq``n,Y$""- VCCCNGDD`.4ƍ6lصk__꾾>|%Km2FGG1888'x≕+W.]J}v{xx+Ng`  {'"##'x dE&H2aDːܦb=VQ4sMiuNqe RY//GVW ]p(4.*+]@&k*k(꼌Eŕ Q yu2vZ'ᚼc5Q|sY^Q^N],uﱺ([CɾIu9s4C|jF[r az,u|4o*؂ҺXJeˋ2ỾksMɇYk r^)iXp,cR]?gPl]STv,xLڱ5 u9Q3Y;ޛOuouڛʍ5׍?+*,)v}N<d c"! rNLutD`( )a}b)H0.00C#0b0`K$مn1Ϗk6 /nH5e% ڸ0o`Y|$ݾ"tJ/לz)$ 6eV>hGH)yEiQ fPux;K[v9 n@,$n!N'DN'sp܈ N;au78 &Ǵ 0$$*YJ\"?nt\}}}6bleHVLI4H{:<6+Iy~}N< peeYF";#ܰ[v9\v9tK"$"@B@ tbD& J1*TȲpG-a-Tfra|w5JsML,[VO0<<򀀀@@qJYebi``0`8u+C(*ar  3 Ds|T,x(a G2㢣cpr\t].H"ۍ ٱ@\ dࠍeِyH<""B(bouL?jZJ*„"`~d.g p3Գ;cYdI2{1-by@?<);:+K;d%r2`v?ҙí6;jn餚cuMW:fsOS]CDin\SӳRK>dO9d2d}M+wYDfjh5l6trC7/Ji^AMSgʬ91`+>~(~_7Nݠ,eoVlkq^q]ks<{jfT^scI?Fc0nBRW/$ 5 A`:daaar\*3\Iq}a5$-Y ržx 1ᑑ5Ha2qhy7n;woۆ?p UոZlq@=gن\.W@@B@ty~``w V޽{(Oq\x)ZLADH`` nGō[PT1J S(-88844w*Ew### $]fZP+EQ?fQ4Pfϰo,I8|,oVtm_QFaLZ㮤p>ɢy9M<h~{e"S2Ίxq_;gnfxI׃1EG}%w!">%L+J+J ꫧ*1+ee !Q+2^Ck:cɯ|:8(߳WV*JsRoLDB4js+csc7AP~`;d$ NaA$T0 זJ E*IS{ߡe1  L~e:,3R6R8/P_hhNO䡡CCCKƐ(n&ŀP?쌌?3J%8n//"hڡ!tUAxáP(?QB 9Re.+Ba ˡs~R,߉J q]"\TʲRP)bzJ \Dw/ߨ}8oȐhH$ Zl"L'WY7D,e %t!BYm枦cYTQ(Ǚ 屔hQ95 h-My~XzsR( B%eQYD@P(ʷ!uBP( h BP<~)B%BP(9+K䕱$V@ P( 2GK=4U eyLw۲Pf _uҫ5=Nղ%iϿ>h_/Oo#VңO4l.F?=v.6Tq>o9f$zw*_[jJ;) / BPè{5 0_.2zMkٟ>x7>a_^}e5?jBjO|u0Z`w_ښz]qj}vMQQGL3❶oXY IDAT9oAoF?vfB%BP(Cm5߿IǯݪZ-n?Y vȉov'ǹ)@d)M6kE<d}c`.@|bUTw_N{#X.&NNBB':) B;jUSίF 7xkh`WWi"Y1ykhztT @?忭^ OI">% : 6M8*( BY$Hݶ¿#AdtrT@(#%˓U'zuMŭ9 X&?פ2-tBP( Zג~7帥?kLJ%?7p?7 z|xobbxM(I"%Ymg5iaL Q( 2?BkBUル?o[t:׃_z黧*LJS`߽13](W=2} ey]IQD~1C;!Z߹W*DkSSj!LvS/P( eFNn} ezN9mۡ BP(*( BPDP( BPFP( B%BP( J4 BP(*( BP(TQ( BPFP( BBP( B%BP( h BP(*( BPDP( eV\ȖIYfeaR W.m~BP(>ƷsSWj"CX&D̃';UJJ\J#I?Ң5Rn:aYQ)Dqu}ß5EfkMn BHm[?['&5|W؇&S*DiԊ޳;߶e}V[u;z;Ll0'Ϝ޶y(BP)~_oX>DoTtV*ܸ G짗eJmꏪc)nSe3W*L6GF쾫oYˤL]òF#@{=- ,#UwӘȠH $\qʨ^J,Dܓ׼o7/*5[*D'ݩOd!蕙e^]ȍ ]'$`4L_G*U]k*( h5X 17?U4o%*I9%a\DraϦݧ.XmR0mOݧ.iP[ݜvE%ԖSE/4;*>=U68;+lJf$)KJf9ͮ0ܲ˓wP16]ߢ*icWd -k Elų'u^l5w*wK?D3^|}֭k/7ҫ4w8㵋k.fL.h4wcBz9TVxH=$nNF&R twp]o/ C7TCLոU6i-7℡Dj[n@ٻ;[_F 3/.j =VV+ ű ;<MjsOy :] \|i͇Ev|uZd~cS}7~m^d,M/¬~0&Q((I\Hծ|&-{ڧ <0AnS<3C' cAJ@s w-I幅 8V(kq&#SU_XhNw$eoVhF X~ '8`*+)^q89?Eu`E}\nEu%Iźڒln1:8uݿj'b}# -֔|=>_Vl{H**.-mC*MpS~.I雳ӸnKBnf@B=+2ĤǔPxĖ=}bMoz7U3ڔD\GT,DԎI߾d' |]{]㮝,7x_>ڪx71^{]76lgpfǖ3[t0K~.uz3^0By&/|8λ3TZIyW[S`DyXyѸ6{c6lغu y1Kי(b.r]g u򁋖uqyytyg,c y kuq[5khָcy[Ʃɇk;6Nj8஝9}.FPm=4y֭[7$%o}lvԽ~ ,m_ސf}8u֭tqoɢ=󵁻hCrڭM}m_Vuk瓩ohnák]Ƕvۓ׾~ f؄kL~P(1^jͺ*6{zD;y+I ʥ*sqnw`R*#_]ܩ/m+[rsn9-sZUѫW2)[z-*Ֆ}/mǗ^=/&as)U~zK0KV㓝`֓7~r9 |K;ׯWyj;5{W[T;+WDmÝwjT)/h]zc<+V2$=\ʫ%x$c.c<_S7i͟K@yI$vuBKK"% j9r.{m:2Qzh O^XOzx @ꭄ1sr=}D۷~+ _iC[Wo%M)H{WZG|DɞrK/Ǝc;:9 M1h?ISLqw [8~'w6J5s m;fM@ڵC|Yy{\U|ڥ{s *kRv'$*ṷZpx哑CfT Ͻɝqy0r\J_\ڗs_Mڟ- *!e-[RR{W#3{I+g$Ͻ0v}׿2&?xʤo l&;]ZKwӗT<3[ e:l٦S6勒cŚ=-Z{ <, BVbl,g!,ZݵFNnIY.XFʦpeH^hD inM+rYIxtyeFz5(bo9Yj*BӇq>n`4nsJ#`>;UPL3Qbզ11 q~{݌&ݵ6u$ЫBӷeR((n抖\%ǩ괂Wk &X.xZ =q> Q^Qri|{Z#Byԡfߞ@3H[y 5BS>idsJsD}ܸ+6k"ժ贊n0uwoc}Q.j*B*; 햽1ưV뗻<xdVT!}oD:YK}GP( ـƦԾ]n^vK{Z8{jqSUS0S \MBI~8ruv\~D/)*d7)BPؔ#MOU55\ &H!,-?+h\ez{A 7)οIg5տ[t*6qsn^c͋FP(Xh ͋FP( B%BP( h BP(*( BPDP( BPFP( B%BP( J4 BP(*( BP(TQ( BPDdK fuVjz1)~`Ge$dEDP1sEŮ@bd!K*q 4'Ugכ}}Z7C3 [m7z2IԬºNk,3o666666X&+^_X]]gU'/Z+ ԬFOYSK)>n ͫ)'&$M㖩s8=9Ip]&'=d*`fS;x}AuތT}NSM5Vy)%WWKRbccSKLo3[MV8KץU_κ so_zjͫT>㾈&Q<\ȖIYfeaR? W.myPG/sqk% _޸元^:kun76&zo}yg'&:݋8{ q֍KY6xvWze9{s9s/%DK럞Í[n.оpYnlƄe f˖m̿psJ7l-Spw%zҍ[_^:{R/׮oܺ兟uBƣ7axQtNS-[fυ[uab4o1n]I]qxcu7nთy_z◷n\zWbo1sglpF1OG ۧ#[UFIܔvTZO\YaADԊj^Dx'.> _mz{S>_zؙN7 $ڲɗw᥸랄ăƞ7nz'#_ѓH]3^x)KISH4]c.LT=Lqq>]ؓTэ/]qq[o\6IߧNpS{O?i}:hӹs=xmg\?\3{{n,~\\QL)%ڢT{%ZGE U*YUh}O%ڷz*F_5-ݟoR1hDJhP 2~w,#<t]WzI+j7w0 'bcWkͶ_lD=m|lj$+vg>6 I:YgZgk%;UPjOMu3wV*~^jºmUU@WEeh\5ϞJ<3=\[UkkvofϚݧ%-j:86a=#x(BKEܴgsU_݁1xڑNVt$lVÃM]l0Ln|Ͷ"#/mn8zs`7+(],lMS5:zZVwu4M㖩ruZV^ɱ55ziݕON=i<ݶ1e˖)=rly(ǜ2es: IDATjpan?S9G1YM0jӕUiR -?:js 'M̪ON^M=7ߩ Oy`o{G5괂W35˳R>gZ o2R6zMusůji{^%hH+|cP$)L3ὂiEz5}2>0SK5 :.!O8eJ+|5E l+٣5Tzc>78^U՝!I4Y޼+y5M=+%˘Nەʒʫ>%KdVf3vZW\c6\ii2TMw3 e[mwV5֦m@OcuuM~YS|Jlik聨Q Kݕ!3l4\/w3>''J;+6v͝_J{3+f˃=?)SŌX9*mP(W4IDh@e$N/b P(XpVvr:md#q<4In#5jUtZE7-w^+֍k8mY\Fcv襚襚Z3Y_U`,p8sH(ܤTբxh`62bsnDE@;`c958QLm\ğJ?>z-I֖7(wL45`\e'wj5wwpa-ݳϭ0eITu|i,I*5/DZZOt>dqVU\lŽ7Oxݩ ZVLtwAP27YwW4qgaSE ;nnPi隙3p<L\ykͻZ=tGIY(zۘ鴦 B?͋u-%z-b0tpMI3g\%._h1 Ŷ7dRYj _ȯҖhҊ^ݴ\k߫(?5a1MbSg&w +j V$l,|U8-:D.S&l:xۿWjwF"|j夊 ,f*\)) OVsOr@‹٪ 4^,zl5YIu5+/(Em[rzf9 OU䙧}x#]&=XNlZnZ<&:y\oGL ʣ,ju8bؽ2ߤ߬B{m)6{zmkx%ioE uh BYL7j) &¦bt^Gt#GBNI;NzQ(gl]E_jdC RD%+rŭbbq3gy`tS]꫱ʣlsũkgcccccӏuro^gT< NYSK) %S58Ycd +ftԜF8 2j.+uyWx0[}S_OץfuWckr F`߫6uGX~iw$Li/Z+ ԬFd̴Mxj&Xz|F嘃Ɠ)Ɇ?yu/g,ٿA_}Ѳ&,Ld'/Y|:|ݲO,ƿyYw;؇jϝa6k)k`so񕣷N5,꟭pjJA ASCޫ$wj%%qf^T-i%ckUᶷ]ZԚJ!-IgZ KP$?bМ 9vV+眽g?{'{sp9=|F?|'?_׀5=Rj>u}:Pl{X;?3"ފ1Hk}u$ Ŷո͠VJE<.'י@e!ʩi{޵Wh\fhpxN9r>]>ࣁk(Q=O;(h<ŲzNn5b=Yw{ nMbbѩ0]y1cMijU\KPjAMFZtFY6vIM_#ݾ\`\יe5W)*I4FK^qCѱrRTVuz}} C]5Zc[NL1/li7j[}#&͗gJ5zdj٫yAw8%n@$rl4 EM^jUȹX( Xh A rQB 6t0o;d}u"oI-vt籿m J\X?e5۶yӥ3{TIX_`oZ`oc=Ƕ->eu7;O\Qc}GLO}TXSAB[GgSq{~S]}b7҇Gj~s_}u\W6PAWԊ [:Fo B(0f+lkefhTL.f+K$6a,t7yi'X0Blf+pBߕL>0l^VN}vf&c29,g.1ÂnxN]Ug4ݜ1BX e+dlVo)V̑UdΟ #++SfחDFX$JL6F5oD abŹ Q#H"!E3.ĪK~rԵI= 59[Q)aToLsxE,6fu$/=uOz\ش蜘`_Z=1<5qׄ/_D֔ nx|n r+H5B#8B᪹1`c FhlYpql(夤v ^8||6()Nv亚`Q hQI ^^F-AY Ij_B%MjeEZS_#1b*퀯seZU.|E?86֦TJQI#' #xdB]pqLNmr'ڂ0vfBUUW:yJCbp $bVc=τQT) p9oN~[} lE6t@L6=zmZP"sC2@ {#xar!nnV'&w+xD=1{&))l4oj÷5Wg`XnxьK6& d 5m]T;ʊ6t{,ûvWE.WK 6uIju%5VR  M6w\( :-qz'V>>/1pTaG=9q>|u鿋>7~zw@ޟO)IYwe²{]@RR+q̠WZDV~8|@%(WERSl'&׼S^.wQ-75"yMajneR.aXJg,PK/fTƄ#VM7Iu5 B -An0 jRzVq2P>CI*5]%b!|iRZ֌ ntLto/ψf}wCWco>CeCq!F|G ˡRz RS^όr=1ՇiYw"vEb| `߯V^8鸕܍T Xv.U݄U<^J ă#SPFOBT#ԵmZ.X!..XWb$S>Oȫ)'N5~Fv)3t|놏o:kݾj:ÏJ>+ؽEC,n3i\\lL^!cF jb|rhd72 ~5'߷)Z8J54@ OB'@ (:*,B'@ ~h@ (DC @ @ h@ ł^@ j ~@/@ @ @ (D[2:OZjӧ^iXWcPZ,~rn[u2]?zOTa{Ԕ'؀@ }`"i8q? aez%O6G};mVqfs@!a≥d?k ; 4q bDM"d Α, X4X: 8~bh׾fOYcyM/ 3-XX_õ/;,|]^HiX; ۏ;>>Smx12%} X JM7]Ls7nX(T~ m=VtkM Xwp/mX_n;X}ZՐOJ-ܓ_>kX:_ c2 J_b3UrRE)x B! yBBm[Yqb! u}|{^,/ӚҴ2X)v[F)\oZ K7r:kPMmR*qy< 7xnwwJ5'B 9hE&!o{;%×=ZC /ʴrX$J},ZiPR*Y>ߒ:O^?wPm 3v@X?Km[~v9=|F?6HJ$ă 0d2ȕ j9{; _:Η+#T53k1\?t518x7v! ZXWݍ;4?FKHo^ "yܗ0#5_}ސ?(?_>M&^15?}q wUС9p?t>Tբi;eoBtpI:p}`drSi #]PT{b@oɢ[_8gAzO q]~#/CīM{z/>>2{^d{7Gm-juZޑM"h)!o*-_}׼A lD<\@WӁC)ea1gH~x#\1SBo0~2RStCOdu@??xxAK϶* Z-sk}qd f!ZM!b-u~7\mU YnW>Yd y{bvuΌ#'3r]tSFvՠwTu;>珘:KnV{ EМaBpIB( XQp3߁ﶼgt{fENctL%`9,?oIJla-tޠ4f#.C/]nنwϜ5B4jf{qqsxcrYKk{'fUwMh$q $\ ׁI۲O Jqg 9C6Vr.S:#ĂJSuDDwa8\FԵ h02|xؘ9Ԑ >`ylRd}+0]:uUwsf% ޛ IDAT^baM',V%mt;o= `per(RT;TSf7|aC@ +^s8F"_=5d hږ"Fx2ؼt_M鼙^fC`U,ÚŸ$l_gHev޸z\CĦ%@c$̂Hor; 6xA1f5L$ =ؤ-Z|+rNg+ؼ.:~cC?UŠ]oBTLLjr e.nR++,Қ  U;飋p+U\ JG^&6;t 5[Օgb?KG| A"6^ ]{e-CHP0IѺn_Ӈ̻x?d˵$YK7bRy{*s' 1r>0:1wj 0akV%F$7-6J͕+2:Veeг οw$s T BlR"ݚMjn*8y_>g}7L.s _{}N*Y6sD|jlQvPU|NGxL>,P!H`XDXzEϙY K1yiR)2/eK`g* )=˱X,p}caw/]jrv$ h_@94ik4n<@LZJuc=6v%o`L.8]01V]%_Ĕ,vOhtRf1ӳ{ϐf} +1]VnmՔtqklBbD!#Y^̇Q{=' 1\z늯rc _k=H*&5]q 3Vט[պ>_פcֶ6+n*bI\Z֛mvU3ٽU.Lg6UВzԪSM]Vn369`+a_WYrtrVdۺ +O̎,$*ͩh$bcQe=Ǐ-?~:+EhV5s 5T/[;S1I- lk3jMޞPnpE\(ÌUZnWTΆ$I@<`,t qʤٸKҧ!ꏏ>8Zpe݉{6Ɨ%k.T62%_Tl>_5h#x*ǘx㐀q{^d#JF$SbM/eU"N+ÉTU_~]P_=:|İz/ %=̙U ӑ ++Ubbq*T7WVXJ*Tyf p_^_VWk8){ϫZDV~8|ɍcBǑzV$p{w ~LULVd^ ˮb%'QիԂP@%XzY%޿)BG-+*QexH8[E0E#ZTvbeJikM֡Ѱ$UڪrBҳe%`I? )ă}oki),adڵ q]z*TwK??WJ_vŊc<0rCÖN.Tޡ4HM@ ~:h?Sܷ gGGه] wm&MP &\f/>a2tSՠE\6nkڳ+ImSv|} yBˍr620W M|]7yD5'߷)Ooy{4>w_vQb(G3"PwHz 5|qI}}6[cnJ#<䀈?D}Љ@ )__B! іdL@ q @ 6cҿ͢!@w @ h@ !@ @ Bb̄@\*L 8}ꕆu5 6?6v_H( @kX:_e7}kZ_|4W7\ir?rR}Yjxҗ񵆇 kNնixR?r;O՜>sv>ǫ[g!FlJ.x\P[}sRC; ۏĤC0CKۍǾ|dg0jQFŒE!{wJe~'?_׀5=Rj>u}݄)k]5A -o~}Nsqu'+{~ yMM/Ӎ\ୖZ#3f:4nW'Ugؚ Ӌg7>;LM_+l닭rݠeѢ;vGtcwغQ|g~zjO6_m?Y5cgOO+mpd@pi pI:p}`drSi #]P,:teIF0um_;7q [e7\Ou!;]y>]Vw`rO2j{E.+(7[N \ny#?KPxۂYڽ2 3 kt}$|ހ"M9v `t~F`kamދ'dx@o{YyF"y'0#TNȺ+IYms\A 4o= Zw?|7G"yQPƩf|;A x3>p$'9P.ydawX]ܴJwHy!Hzz:qw}wewB" . 4]\_h!#lP8r@73_ H!ҵ+V|~Y3Nxq,sǕ`Yt`^?~:?#c6(#Ws@P2 ,)3~ռIU#[3H!ҵ[~77f 62hɭ1TQ&1^^_Qxz<Y…ڼ'Nys1 3BolMkӋrH* CYYC9t1( Y&3ґRR*8D#SzQ|%V-!M_O^>C;hԆ0cQd==Xm h(DC-4 ݋61.y`e0fxؘ9u"A?mܜ"޴zǣ)heS2Sgǥ%2WƦ%@F;'o>959 `֥SW}7gVy~kE5}E,tlR軒4deɌI_5c[S.sR|璝'i[6&pU>;x73>bt;o= `4s !i<6uae&"@kP]bP,Iarڊw_{7HzjL:8*ny}jhkU*lVWQ̻=YXԞWȹ2*tVO. dƂGE֊-Ω\n#ybjRM_xb 3-`(O4wrc _k=H*ZΡQ׵N[0qbRbǬ $:=Ko]Yn{L=CkG/=^Yڬ88껩g eܪJFªGꖟZK?ʕq"4[Vj rXB9M]Rom]uITfSXҨt&n[ mWp2N]7uYvͤ7ڀPYrtñH-'e ,D.#bX5Vڪ)*!A+!Z@ک@cC=b|ΟKvנA\% Be  &ު뽄nA/ti奊c_n[/ݘ #y>#)))eg,=0bR3Ρ[X}B=wrIԷ8$U'~yuAA$bGQz=cL\͇qHҸ{ r+k,%rQ Uwφ]ߠ FO׻^K%l߽K-VldRZ.Xۂ:Fk+OZ>^?U-[\q0d}/s?Eܸxtd Wϗf[uX0y gdՠ3sl i@  ~"z}Eq:#9fkuJ. @ h@ ;hq:@ ~ @ h@ !@ @ B4@ !@ P@ B4 ӧ^iXWctv<+%\*L (jV]Lrbu׃$MlZ,~m@ (Dm}/EOlX_;zOX#ɲ(Z)כ]rCIЪ0L BVgEv~=G'1"&я:X:>ea9rVẼwFٚ  Eeşk)5>wiA+=iP/Ӏ5St/mX_;pmNÓ1y?eu[}ӇvFU҆5kib\Z\ |gՏE*L 1 ŭHZ'r}.])OYmR*b0RL0ח)B'Iֹek(" 2m~rAx\O$+3yEORp\D}'&LbWILkv*S:]B,R7NiRH(*5~u'-b0UrRE!­QwFvOb\9{s]s䝪fo-+w-_+W42|˛1vӜw\+ Ӌg7>;LM_+l닭rݠeѢ;vGR>{ o<̙M8"žswNUx,Ň/YHjܵ o;ޱ8~7a9ew"ҙw,>TE Ӆ` FN>WK329o4_|(/Cpi p5:~ 6]rdW*ivD.*|wdddr{i rҳ k[z.7)A1^^F{7`kށ-og O{OO+mpd u)jp1\S(Ld*T{b@oɢ[} 0qK[\A$+ܰvZXrY9k<^aVF{s)IA*?aYPNzց#JR*H?9dl}p]|ckFNix/AzPFLOZ"֪Q *mgיZӅN}h}.tK,.  g%~.vF61q/61_68s/_5s9#kRKI 62w_l 7xFf0TFM ӏg;~:,j!1R${#1t #ř2#7dJ[G~$!Zom_EVf bp!Hu}.^x\(97껚! [P3 S"ByW|! W,uFNgΰ3ؚgr2 OGF! zMP-,WfQs=?Ka Sو=TQu@)vO!PFEsYKk{'fLwMhyÜfQc8!YCNe\KKe9MKΉ)o^z*חR&N$\UoD֔ `Ŀ-0@je ٚChDJRᐯj5cB5ߛ楳}wVN XhXqBr;per(RTLk3[6qU>;Dcot;o=&ӓГT7:;*d'/1֛t:{Ƙy[ٲ2\lNk*2lMVt2:9,'g.+54l RdދalΜ5'4te6m65#(ɢ S8:S ҃Gciёa.!4j PCUU1&U>VLȢ,0]ށSjb[|ܭ[H]vMln5v*jR+\2^%sayED FgcBU=W|+rNg+Kkڑ:54,zP,,8np@& a*GD'U42D23 IDATp{",q񎉤{V cL&70\Yoۆ+i|7o>2k׺džê䤰72- \ȷLI&ޡk31EWa㊅Q#bVcRmؙ UUN_ɷts2`k8n7Y~A:=rD|jl7tvXmq\wuVV22墣0l[$/aY/ 6ܦxźsxW]&9Y5Ul?eNZuΰ="*=)#C ߋΈ@ -9~cpz/.%Tʘ/^u]7؇_]kNXcy@Rk ?63'7$KNbJf1ӳ{ϐf} !ZZJuc=6vUm D K(S3W,b@oS [(f%)VpjZoVδxͪSM]Vn36 PjSԛv[A]Rc)!kְmfp,IۥQLVf5jڮЍ֗kZvUS^U*f!+k1k[GW}U}7552~BƦXQ6a2vASg*膃@ ?(uFdfkuJ.@ ,t"G ZD砅N@ (DC @!@ h@%hs]-8F}?#y҉y d:D'@ ~zP4"Ѐ~;Cb& tt:t?t'(|-y<~ @4P :`L=O/O:mbrh4!A k5 @ <ӄCJ2 x"yg!h@,fO|Pе`zp2z#BӼ U~g3`1X||]3qI,`o`\3/>ZL/! K@KI=O4hч4O +gi<3C Be`z L8zl?%fC ދ>^ڰXOҰ>IkPXf~j~sq`ɝaXnwINkBoo\*L?= A\8CNfF2R)@@̜ fݱ,!qyםۓd`kр BgI穚w6v~k_v>Y,Rd;>>SmxѱI 3-XX_*XqyBBoNWt HjnՕE<O(Uj 7҆jl`4<s}5<sͥl= X^:NX; ۏ#Vy蚾wϮ*9m&ϥ mE%pw^%V&S}O#Hk-".Sc~jj;/> ?׾fOYcyM/"; rTd7҆Plr}e թdL>-SU/>mR*_ 8r 2WF)\-B&n߇i:c:8NlJxxPf4} =A %h֣0O23#8a`lx f?}g ц &櫃޴Ιe*.wOozjVڟo:"Hs nx7rG511m?h>QcM m_[k>slۂ_V]rץfvW^omۼҙG^OKKnYgj).| <7 }ol,XCAv$OdTՉW!/?o?s v < U8jHf0 Al.hӵ:JU6+<;aU}5:N#vh}Z254 dԪE7j%:7T@Q7LFF a [ 1f?1O&cf/x7m-Wп_ Wwio>UhѨW|0zOMMlC؏hQWg}%Dm{p×Ϭ}s$;~e" AKgEt #Ջރg5 -AM+퇲!+|ᭃ1_~k=sF֌A8˶g3N9l[w n[ޢo(sƯT55*).\ wސ?~fky(OB?~!mw첿ceӶ/4 BHV FƋf"[VA/y?z'@ljWӁCp5 |6/㉓#3j{jG~B.tpCxFe3b/%b˖` $J/c= kU 1r,>ft2:$`0_HXKe2tIV,%`qe-Y=T,@,2-b|h++g 15+t`3G=c,O~J`0RYtH$w}%$31 929 ~S6ޥSW}7g~a2~6פX, 0 \w%3;'`Zqi )ش蜘`h02|S7 Y1nڋ" z?i;M%DŽ>duv#o <-~dxl^:'kFtհZ7tʔ2Q"R$AM~wt:e@h cNnki}`%3  G۷otܾ~g)!<]7v]n޳<Ӯ c&Ɲɜxk׮ﺱ1Nt:=~2:>1"shw.}K0m<.e@}6p{A]wn3bSSS.+=8N9t=x\m/=hx4` 9`虝&0I?&UcF7iM}Z ;1Kᶪ3b`̯8Uf̛f,݆+%ةI؜Ior; 6x!O#GB(=>볁CIJ8gz7D6֦TJ Tf})m6[oI@ߵ8:mٲewSp˖ŮLdd \d3vLNOAL -i%럶eo3YYYi3vn߾`5%-_|kz!}Y؊ѿQHfWܹsl~/dpyw 'f=.~;tϔA'l;p71ٱu_}UlFiwnw i .]Hbl%^yw9w3yc5}1gf܍!ԝ; vljiO|rrnf|"F8ĝAOW]D^ϰuѡDd񎉤{V {&#޿ !jU|6`sRКynǮb]&pp'd|7L pOygǀB iq h@+"!1`s3߶MSMwGP5&2Oy0y0J~2R-fE6*p=,\´י69%i5Ym6xPU|Ng>~sh~`fCx<b328t͚~0!IĀ"[$Q~}ϭcێQޗEuduޛEPP74QLE"Yͦ3h6͢f&L͆LtDM4Y,,j4QqōFEz{o[? (}s~۷N9U)_^g6@ݍnTVV0t111_۷o(R -AUi1xDYUT^;E Ӷ[җ5e~v/믾㮾*!FkesQUg< [㌄O?HSA5< ipyީ4|CCǨc /0yҝ3SK ɨ9 PPY gUGU{wnn;r٢ĸ~[UU{]j47wUnP QUu9R~j4 ;gv>omF|Z̿ iRrȿ-vL|ʅ]ߍ*+.\|Uݳ4N c=η Hs FEw=7 B7}u,FT~m`;#j]<)I86efMS0t` ^Y2oꂶе g狿EEy(slrv)vزpAFlLLmY35PںShij~~\7'ź[J R&زeKߧWz}xˏ֒\#P0zk4p%Cm۶mɏgfqSO-6EZkY~ٹyPK)z=߫* dl}/6>/푐>(u: V E_z R %%e'ϙiGoս}-B*FAT}J@5TYS QZ !a,Fm"J &Xd|${Dka9O8ugA), ZkSc5~  @20@@Ċ!;1)7w-{7T('DmJOK~333("ô.qj,Qdu,<(8Z`aW~K_r$%XjXK~AR.9Va]2q`2ZR0)`v;h?F 9k x,Si@ӨAPHE .$#!C7o1Q%۷ %8X1#x駋~GVUXVףPW.߹g~yLGjNq? #09 { 3a0Lg@g])Sﭬغes1v#eH2XuO7oْ307_14чgdg?6sxfu з-z04zĉQ:{K7豚m GF\l'NON>pl47=Qe4 !vpogB|E_dhԨG|d>]G_Q0nlĢY{ʄ#k*jʪm:]+ 11,y/ htyV>aO8)mK$ߗaR*$p^j\+OOܐdB `/(QzxvJLi꛽?TW]S)Qb{Ԑ,I`B79룼&@/pZ>hȆBGs۶'sQ^r,ޤoD@(Q9PCp6O:eۦMvnݲu>EwEӧȻ"떭1@He T ʊBφ[  0WhADA0zYQTM #Ȋqbe(P{yL'+*߮/w{}71䰣_BTSm؋sƎ8q I|w>rw_|rp^LNJ={F{|uy#%NHJ]U_~};ʎ hw60RkЊ֣?6*@蹓ږ!%`Y@R- ί<{x7߼U{ݳoF &391Wlߝ6\5?x?ی"W 8^Q>HXR- `-:êoi߮WBԱ }d$ogҤKKK[hQEu@9RSc I3 5dg" Q}.! shAg`y! TMx ~! SaZH4zB#^pa>}Pk2*s!_/{jR>Ҋ-ۺcwLPmmFz /哏>vW^d<vEٹXVSCJvȟ}%;}C厐)i*qJ9bw{/45D@PU ɒjhYw"wmr準FӶm,F dE]jJjt\,+P Eoa5F'<7=sf?'3KB<0jjP}~'|}AGAǧQU;e0*FЫG̀i&p_2rώ7lGI}pmfazm|:{$ =v" qv[-0Sl6˲,˝`!2m''fVFC3bCOg{U}˗EC 8ha٘;omd!@ymq~~vG w6䎼d]>QfnΟg_2N$^ (E(y> ipdW03$5)xfF-o;b~/hAd0ًG]rW % 1%~o@ 5U!rM7[Ikf: fD`f4%# %,ܒ4 _^T8j6BhtyU@\Y% ϱ́JF^1n~fÞ#.}S3wnk~?=Tq2Yt*AҘoР_*TQ?/E "7fK5nXFAC쉋 ?e^_ ۧhHXO?t3O}ƴDç;xYlj6de4Q /~Q^,)OJ9 `ƟJwz<@Ql[nm܍sV  IRE^`0xۭ#? 0 q=eG@0Y/q<4Uu]MMC[C 76qc.-`㠣5D@%A0ZM:.g pA IDxeE+pbxKǏOL\vMo|hn>^ETxM o FR>g9%|"-" $&cW+?0I/+sT3Dc[\MM1DžN, fkjjMHLJKOؤ7ܵd Fi`K|ԞW^2ر9= Ңggg|PY)CEmMl (!ףW喂2ư&du&*@@c?3OWK_:*KͮcASh 'un[7zr>yEADr6U-(ՠ7 P @P)T@  `Ej-7|_|K/n`03I=l1GfbmMEPdHAzH۷o/((]||mv뭷R?xA(UUh0 2mG_ aD8^cg6G@( !VzfCUYQk2dh7l{Q/ͷv:=~?|>Ū4`&MwnڢMMox|G[2x|,> [SU‚D?^_ (ɠ:O@"pwxTJ.f%E~YcdV>l0FxbR=e.L;que;|'&D[& A־ۓ0yaS993Ď Yk2:X1 7+===4Ho:_hF!YiIv+)"KHrP Z?""-m8SA{_7<0Nr/;x\jnӶJ Ln%SIRl6Xy\xǑ .>1r{_k[$IxF'rIVBƲ,!DӉ(p*UPERTU-(DQ=zwu Q11^[ BPUX~-%2r6}QUwIYt?j/zCղ3 h۟A>C6LۯP5Y̊: b镄FoCYo7ٓI)*($WRth:uaAE`IIEs;+z^(92￙93w_Z>y\tWX[1]g.))];+;b>6𛆍Ǒ}vK-.Ⱦ#5o93FC2@f~f0E 0G%v8%Ibmf೵A4:V|j[ 6W ǚTFLUɓ,ݰYSFg͛9 ҂R2Ѷ(e5I$ɒHP(O GcBGnj \i={&(+ 1mpM;_dŨVnu0(?Nّ=m?m\)=G g-?rVClBLM Pi~fx|^>DR2TUx|-&966aTD@XeYV O u5u`Yn }p3O,lcky…5yF W.?Tg9T:s5.!/[ZchX0~Сv]I'e7c\ίtݱΫSV*;/4u㯧f_?wtzzz3z?Ig2쭻6|]38K58d_ri>1nX>A_1O?fDX ^ä8 B<0>̓gq:ҳP0*+e{F/ҜaYb<Y~p64Mw^8)=^6꒑[o\WTG_q +^I}R٭T xj:Qoy i'"u^>Awl uTWVlܰd@ \H.vIN?n%7Dǟul7ߜmMu~?TE( 9nP)6(C Hb-?z(;,5ve6hsi.n~rTI֕UV[MO~ ]9jV=y̴ny[7?9*m++zt3?c왃oznՎʲ>ZvyO'O1V) g03sI++۱tQ&L}eߜ4rIeVM^v^5%sϥj]v *48I|s\7+OizPGw[cݵ%N@٢q752Ot6Oxۮ`ؿLؕ9/x\-꣧xޛֽ¾Oh{r{/ټ]kw־?s@BZp,8, a a x90> 4cjpI#f7}!|5c67]KkV,?EL<-|΀ER{pY}a춨D{ll+3Xpϻ ${VZr|A ,dnэHvE$`1Ԍ4p߿![o;J͇J~h_Wt^j9~-.wc(#̈́'+l$Y" |k,rB|ci8@DtK^9ĀWф·SSef5~t]On<-o>Ixgi]&efN:1U9.M%t9xښT;9E;VM0,7?9̻Yfj<=<&qLZǤuxǓȩc&L&feևZp];E;t^Vvj!. ="GЃN{{Ԅ\gmPQJ}|nE۷s};^zWg-?=4ϓ=Нy{F= 0b빕ǴR4Ã<D13eIq|z&o=5e?HÕ2&p=/{߭%/?Ũ,AZZ嗏ᆫRz%M}W>Y}2DE`kAY0,3`ϖFzۮ#F}z%n4 (>bwo-^]7X底?vWxuˋޟ_H%7onVxo VaCbxFbM(Q'}{m:ppvN8! 3€0'(jdLd%59W ?G<+;pQXguUd Ÿ:P)ZZDQLzk]w#4ݷwJުG2aFEu|Ѥs-)o[ƝYin,{#O{RZ;hRGDe/;1G,Uvt^n^~~!vyNV8>9ݩ&9''M% nO-8F IDAT;m"CF VwzΩܝ)}bϼ˻ټg[YoNidO'Z-veҩKMyWW Y,vlꪝi9wF. S]vUhBswΖӻ+U73w>,;iX:z4-#gɖ-[l;kھrcBR6g Bc1am[ 4BYK\̱2ckk8 :s WX~S śSnڸ%f'Td嗩3?lK[g4hn=^30wd3#54ؕ3iO%V ~i),cmv7yd:,/\O:YjdUUvV#~/mE/_AGhjl.Xm۾ObjuNU#CJV;^pMI٢(6Xv;prRg#v,"Zijlt==1ΌDLj iY篻uZܹpFE 3TgٙYtZ vs8iOasUe1<Ҡ 'OBj[)Z$Z8-5@#( 0`y0 C9yOq1Mc32ܞcnU>(6L}yjR<4 Q1V-=,K!50<+ jڎ]{k6l֨m[~Y :13ez>VcO>vxUcL2)HRh4*.1-M6 nfggoX9BD%V\HTO>(R|XE3z'$zXm Q5҂5kXQ:AʪhEFQBFO3qrH&4 Μ75Xz5VP;"<6^eBX\ZZ'_|vUc-Zrd5QVCs_ `AH@az  B$²$bQx}Og]Xa:ɓ9 PAߺ];{Աe=v:~%-~T]rE ]9x!c'Nx9َ+JFՆ'v#`gI=UR4W}vtg9.:nq:R_"e3]w>F/w'RHtKvvU/WĹ1$ .Θmw{bj|aRy<&^3$ ڶD;Ģ_8мR%@a((hLII1 z|>rHv\Fcp8bbb u3 X thir@SUinv5465Wmp66{IQ)aåfdzY޽+%Z]lջwumރOU467p@K@K'bkݍ7h*<p7IM3 kЀzO>uoN &qCw#{C?((NmZSRR<H$I@§۸5~QrzM'0UGz&9ΙsЁ}k>EN;\^~#زKzg|{ƖM'{'08?;n͞t{ouqʢo9%ohhk,yu<+/ؠWxg&R0Qq1e 8v΂3]`XNW2嵐bvVI,ݝT] mS,/Q0S e%gج/ Oʵ#-̟Q0Y.)jeܢg͛8PL1q3|uo=wɜٳKrŋsnYK ϛ_-C;:E_"a3Bגs Vb.LS0pWddbVW VUڙ ҙ+(B<t\;os5n/?'@,noJ!s~Wϻec8!IP ? P6mqbr=o5{ {6$L]Kr/7n믽h{WU]-n)$@P1t5U:h/$Y`2DR~߁3w>>+t=R<^3u@}( ƚuz-+*Y={?oaYJo?n߾9) i!{LlTlaC릤Cn~['Ly>ɨwxЊFAD.#6jױ񦛷nQ~GbF~sBWLΝ-.عxx&.Y@ov)o" &-w ,Hf ck?ЕW5x 8Χe`4PP K@=ѐ"ZHT)Lۉݤ 66hYm;\8 dA95puUL# ǎ[^^liы^Mǰ[K{1rdӧm }w ࣭. `Xh6A4뀤D$ֶ.ppFqB0h&9(<ϳ(*!BA(U5P 9k#"'Rg伾YGƌq㦞=SfZ|>#/nyg/?=.=>o~Q'~=`޲:^U]V]Mnu:UUAB36)P(P%v'Xeg>sMͮ;Gt8TFU/Jg !g__uGk )dCz}]ccMeQGu|>Y=v~ͽvY%MGFN 5lX8gsRvތ%sG)"C?x`νG{$$DAIF͜Ёh 4%B Qw)(/9cUU{$ܙ?fg~7K&0Q%J hPCRQZHUB~Y$@ v ʠ׏,B*}riyQ4-|ABro ~?r=L6{XPW^7 4)镞A@%P4bYD TSNG;dbXc _}Y7ASNVC8T!,aXQq43g' @)N{Ǟ~ ʫfmlB^s㥗<зwG=,pSFn֬'L&]3QܽtnQX >I!ˊ|R19K. &N]w@r/8??ߖr}7Xy·E_|.W=qꉑ14"aСC9gHi660I)6R@XPh `'}^-f211ݷ71&EHuե̻(W,2 `ѫhuCK@hHĐPJY¨j*OX@x~B@`Xu7yE٠kfD.6E[jp/p垃GU~y#+Č{z˖-[CƲ#Ȼ^h\"BьpoӶ1f=OȪ:9u#B%򢠆B$L@p,i0S,`ilg/+J;%UKj1ΦF.sE@՞7c㬨]j{[JC7B7* .\,āD#3Huƨ32&5dL&Q D $ аРЀlo.?(`K$~Szu:Tշ=w?߮*x3 ~@@)gP IM$ B<,<̆_ɣEQtF e啭xyg8pmLy>zyG3Hm߹TȊɆ2kvF, RU10׳,.]۱SeQUUY 8@ 9y*{#.ͫ?DaG~WҖ)RMS]O~1s)!BN'S>qL.-@$v2m:%OWD uPRDs*:1&-$bENmjEEy@UUi!$Pc;R`2/.q˟$3oB&=r\+  ]r\_"+!]짞1U؎FƎI'V|lŊΛ|ժ_ߴm0Lj.[ۼycD~vWW)ZyGw֍hU54z>Ң}eBbd&-% tĜFL*Uao/'Wh7-3V8޾curK&}09EUM3 CUU0Hɥfq}-] v޽z-[S\tE3g\wvcBPR $(TL !}f&ap$[@#Fa8HiQ?6A(WT"kTd{nQaAMeE0t`4̚&L㙞=MIaq֯m~9YԳYΤ`J!DRD)&D4۲@Ŕ^*/L& p.³9"6Hb`rٓco)),*u7㺒G^X,ZWw֍7C[[Ƕ 0Rܳs9Bpa(jPvy?$F n/m?xdϟXyޔ)ްhᕳ.* ŲGW%U5 <(e% Q Pcdq!A̒~!}t6Bv'- XLOjpu &XImkzzՊ]6pa3oX[;nǮݱsjf B}6:.=Y+}KY4uI/y%pZ~ۗ~kRs=?_ᄌdE'nݲhGg&bGxe]ea0MdY6}[U?#+غ8m’`Kz`s`&Dj~)R !H) $؞i@DK"ɾ{+ZQ!5w^vҖ=\r>#@ HJAJk>~ь ?cc`2U]#TɺPE1 sj^ڶq+->wJ)"w -v+<=rI5ێ8ϴ2K'ϞTLVUNh<@ALϾPN>\e4fMe{K>p+a{3hLqH b -szRM;Enosiiy&ƟXʚj%Tf; DO6uΦ LYT߼icgo_GOr)+1i0X\;r q9sl۶mL:| }}=gB}NH^y6mb{` H]LjC?\ .t׬Y7m?H":Lh_洮sƩs߷/-Y0kfcc}ԹYך)fQ{֬gѬSZlC߈vsѬSg]lc߱.Zp窝u䍾-;q[7꾽}u,5qn Vpk;;gݶxWךE\sg͜:u O=Vs~zInsɕ]YnݲE66Nd^iǹMu=,nycpԩK֥NK7޷xzODSh)H=fޓڼޱWGHdrr{}}NmkrF+RLaY IJ^m֥K655utt*4MaH$8{Qty}i݌۶g4Mc[_eiC5̻c}-MSܼ6Wy S>;ZZv-̹--mm{^w)7}kNިwo|mo||Jü[Fշa644\Zz{[^w᱖ZGraXtɵ75\+kmm-*H~l?n{)uh Ӵ9ֈR?|ʒrr~q`_uHׇi< XEOoy4Nқ]e55xqyw]涨a ab_z ?}䜂`Dt(+4@aR^A 9c@ tb{){:e(RU#DBoB(*&  jF7g  5")/8qrM`(jA@ ژ*ǝUYw//S!5":Z'4%FPD9}{ыϚBCJ@A@ `@aABB5u50~Ū2DQbj}x4 @(gyɈ #@ ֏Ǻ1UoWX8a|eŧ>q}\|'MU-wV߽֟ȵz|_~#s+?]\{SÈW'|5 zaCÈbo2OS;geʌ{[{߆@ltWjM 7{S=2n;$};>$W/Ap'NPC{ nZ=tE{Й>wN75ՁN+ⲷ=c>һwا-{+:ki*۵ubdXG"}tG~;ygn^S?9ߺo r RJS׬bUg÷vJ}pds.SP'S)PCfaShpRpDh 5%\V h pT @i"`Dڰ H9c6aLu=Sӌ]2J1&ϖ0.Q Mj B1+JƔDTX ZXPz)cj5@C7cjкc*'k(B Ċ 0|lYHQtR1Ÿ߾?w/qֹ:#XׁL"a#2 ЩR` P7|&G#DT Eŀ0|#wH¡FO>WC)\Ч7~3G#%Sϟy?qshk}fŗOʆ)3 f~LPEk FrN NSl{,[3; uވ\HDs/W֦tOMz8>7]zFOm:8|.,9EF݇7NRȖNjIc]tI]P}ZRW8Y o-PRQ]@s*{O' qi._`պJZ׬Y=ioY1*察•w͟Y3g͝;wm5q,9M}N:A9hn()k 30;>+w?YUY`TM8:}sr/DDSѿN"őѽ[>:R 9$1=\`z@؛f4}`'ho8wq;׭[Rޮ_Їw2q {ɺͷ}әv:q&tས&-ZP?՚֬iI Vns36mZtѲū5&No?X_8q_(1'gjW;]6 B Q2BTJb1{U(얗f3S) 2JjjږL*+ RTH e@$)!! YyB~1u+*1FAl#\ 'H̶m۵,f7+AdȌ /o=rtU̬*+.kWSOߠJPi 0DEZ٩#ޚ1UhHVJs3l0aǫ/O8ὴ\zZ=<:knJMZI%@kh*Z>-n3'iljlz$ht/?2mt}xrsS"E%@/ׇ>wkqV4 O{@x&Yjպi W%J]h֬[:u͚Ui$yzJ{zuz(+ }0ىÿnNt J&߿UmRH&gG:?3 )2rlPЉPJ0TRnRRcmӲFu]gA G#P@'jTըnh oA}&+*  #sh,+H0P se7몮%Rp8P\SYb6 㵵=TSSDU)Sl0,++FLBqwgk&֏5Wgf ͡+ IDATu]uƄt&#`Bz& $vH~_@ Q _cHQ!Q"Rk/m4~q1AsP䜇BoE\ȬjJB}0 ࡠA1BI(O9l̼(ZdMg`g U98"n@j+GU[\dٺ}}{7Y?~}K\uUYSi42Mn[}e=ڸxo߷S}UONU뾍}}끽]P2sV}3[|eӱ/hUU$ռig_*J9oDRD@F3ׁN{*hvߣ˟H^4䴥ݺfCmkߺvT=Zx&N7XP-W)|݉?}Y[-dϭ?h,9q T[?o}u.q& ̆W6deȜ\G3_'÷cqM3ͤ;:ڋbB Cw=u].< hR(PJsױ9#1!$\2;jBT*4EUt]0(,,tG׵`0hz[gwYYЖ̝;ȑ#GH( a說HMQ0mm̳рmey3APJEQB)PJ(DBEUUEUU]5MW4]TU45k] BrhBƸ˄1Ɂ3 8)|'=Cehxi+ D0${L/N"7鏷u{퀇42urf]hĠ鮕+KV\=m=KVwCͿՓf.-ߩ6]tՃog/YlU貥b/YpׂjЪf.x%CST[fMHɤw.1Zwڒ,[t.4޹s 'pt":ɭ@޶ֿt]WdYg6Z87r°{wlwqXT Rkd~:J{uz ?զ;PVWv7,2!~D ̺jƯ1#SgB{ @P/z$ {aϔh(p?Ȝ\GYUrZ>\&8G2.Yc"a8z#Q ߌ3K?b I$&3;gx2C1#Ϗ,r PJ&*(⺮_0DV,//}r?kii1gΕ[o}H@BJ.$RpBՠFQ:Nl>>%N?xxrC揻`#)t<3̃d (cJvQl~Is<&RX ={T!gBO%`Yg]ZhSlkR^[hCu+Y~{/)4}cwqye)׿{깍Ǩ4" FK y\< -𒋻僖 T<<ᅥυ)1Ehk%v֏U]|Ƚ7o:ɺrgΌdrmdcHG[gUyYPײtO|]ߴ?ӦMGT]CX\$F@BJ@slIAA}mmiQ1-W 8 r HMQHXrK)=d}q)1'y>u2!s.c??pH0 94:NSxGLXA0IsQuG>c=N \@ֆ@m? @xs7?ޠ .b]cm/(?\M5]!$PPER!!BxD.qP<^ $FB\R~-!EJz~Z!)G18ďAb"M h,݆`)AE䳟p-Mغ5)um2=f6deq<㒝 =SՋm ß^ϹKB! 1GR"sD1c.!1+p >!* ihhȤRBGHG|Û7oD*YQYqbBƅ'iϝ3r;Oݭ7;8 `DQ*RDDrE B _& D@TJJBr)I)%J܄ҿ͡$@HH%cLIF ! /p7L4 E;/]Z W^y?AM `O8Zs뽰ERĘyȂU bôZ_5}߾ƼWQ-8HBj)/:rS.7zo;I٬h(?!"<_ypO8ܑ*Hd0SUM^1"bs!ǘh d D1*\r$ͼbVbiZzy0tlikMcK1&C 4qU5MSU <ϳ-cN_ww L<0Ɣ!k!Mӂ`$utD})a%"zB #.8HI\'b]]GZ;\{͸=_w%!"L0&P0 0Mf] o2 RJǵ\&B)21[ٗNgRT6c9) Y(eٶ-|SQߒ4tBcmoCyg uyfEX?H5T,+9G1H˒XI$0@Rhשׂ'̌JeBaWJ/$(B)ɬJ$8m'`5M 8O:6ucʘ UR3q}/Bu]B<W},E@TEúwwwXo. #EH ̇!= BB)Jd?ҋN'S3/QT\mۈ@,VӍ)BhjcǓށmY* `0x¥yGyE+hD)UU>9 -""c:D|g/BR;R2%%d;H +*}GuB8㺮oəy1!繞"J|;PxB_$çhM;/7ӦMUUU@0F@0~ʾ>ȟ?$"26nܸqqB`ADDG18c, 5%#Do4d2 b RO(TB"ԧdCSr`+?#PD%H膡(8tu]]oG6GgB29|ar9ksGu=).P(dl6+%bݻw[d2HURTLRWVVק)ZyGyi@ !Br!?䪮p8 >dB ou]UU~sx Q%$7w;2LJL7~%BM4MtS@5F㰲Y?en/>@wvw;FQ}k=sںq@!)$F H$|+BK s9ػ2\X (LeUUN~|"E)!'\sT,Km7sMn易_'c(=D{B GHKDmU$d${1^IAodZs>s3gr=_0,etcY0"/â"`c-nEQ\.>yjZPS5Abr%1zjXdxHEA<ϲloh(,3el1u hb#NsQE=Za1*Z^ˋt TUҥKk&2˲ 2f2[yr9 t$&.QPPPP`0r bƘ0abQ45zŽicQ8E1tG!"n Q4>nIc8'hL&aF2xBv 8;#?ɓ'?ꪫ9쎉XEV` XFE7OL@o}no_.~ƚIV /! af(Fd _!Bf`5|48B`_jɈۗcX !Xѱ?ұid"NmbrKNNHpMSuCv1AĪ_WUc@DdRL][[[ <[AmMA,"`⺻{zz6f`toIMUkWm9%>tDuW ƃk&yqjNF#!1 TeIL;<2 CNUkDXbVŸo#c8Tq Kĝ'8u[ǚkoa;ֱFܭjk b1EX ߜ*n%&Nh:޿{Vbt^E_U^,HC:Y1&k|oIx2| &8o $1`Yl4e9a\VcPj `^atpBaYFtYɊ105[1b"+–}WR/E a'&&JRfmӺD^@:ZѤV)8/^W!!Wt{}|RPPP\M$%%ɲd! ZMf ,{嶶6U׾ au$ֲ&Hd"J~ExW &3daGeCAE| XfQ4cks a]؜, (pF"b)$TF$b$?B>`"ˈ3˲K.洴4IXJ!M'8dUU%$I!X"$vbL(B!aZZZZXiM7dt #BA ٦IScn7BX׵h%9,5(b-EQ|>_ e٠Jb5$p,b 5"<4f&) UUÃLFBkkĉ/%d<˲ll6K0c-%(),ߜg}m&8f??fQ41(TSb^F?vȺRk͖'=QPl6yJ*ˤGθ[t$2k:ػiUVG6R}i*L'f[+N6wɂ=uzʭEidYo, FA|,g!{`GӇsW4Zv@a;XɝpgZ'|'+w\8"I:&M9pOv]S^=ON͆5:Nuh䄟.VHQs*nF}w{ƌ϶/#{LR,f3 TCu"c6)ldsA[FTUdY_9b&nZ&㸖UQt ) xX U$-I򣓁J A٬ IDAT|lY$׷hnoC@c,, M,ȉ/ v#ySg4]aVf$xLTJMHJl1'NA<YE( ǫ B B*(HME(˲l$$Ee Q7qYOĬd/LH6.:i)yF7o}KU^6o((4 E흘0-;)iۯ&haeo͞G~ԗpD;"5wrJz.Tks n|Ͷ 7V'v5ӐRPPP\c*2tl6Y=nw%‡v;'d]#ˡ4EUdYQb1găF(1 ]paKpjjjOe/Ȱ`=ᦉC0"F?0qLM#̰%A.XD T|˗/<)v[[ȚqY(ro7dOPtFc$egUnwOOW d阍^fl6kHcdxNDR0 D@:`18*+1  l&dTNSaUUYc˱ Qw"=nPm`TEnKH%SӜ!Muul%11Q`9IXߣaQD4. E3tMmCִyw/ޓ25gS ۝2ȢT{Gbf]Ӧ?]UFq2v><9(u;Vxף,@^X1Q+fO{. /(HJGs/(2˪ aPww/ńzB$;b! 'F5M8IH$`N %wqth e$Xx_ `@e"b0dɓclR@ x!uLZ 4Xilvqv gzz$jљ.p9p@FQ]/((7)!b T+3{dSpʧ IѦ>Jο}OHK>'jf%,̽jI0g&%`j>>[&{;RFW/ҧ!/1Q(^`BZn'(K FIʆ3cYɔ@64LӧO'[ld.ww`=7 laâj Ĩf g'8\* euIjrB(fYEqdaETPhSXG'E.qD͆TrWW[[$%%y@ k*XUt]W'T0X$y/_,jf(:E`,8#HnȈ$)%MDa# yB+$BU9YfEdYEatYgXױRipb?Bv]Q.c- ,[VCVfCwvvܾހ$͞4ivww1E#*q L+u"'K69KV9NBMOѠYnQacǁS55M+H,ak;rONd$W,DBO>+_񋥠 +Ɓ@1,ZjAĊB j(j'vIR5 f~[;,VUVU@8X8++oimy4pج)n-&fs8^ҥKp8V[0U|%)b5y$@P IINͦɊ}ʊB9hII #&BW$ϧ|NbqT" !IpxjwXmV/XG:V-fUUUMVdMdUuBȆZv;k  J86HMY3I\#a3k*Ȑe9eY֖2ɉu8&K:I&Y,cjMOOǥX֎˽=^tuLfN 4bjmhr;ǡh9dfaI٪Ufξ&-j 6Q ׅnƷlJG&?z֋OɉӄNV7uk} KL&^tôa` $ 79CGSX k~ ź)*AA]0IdyNz\H1o Kpp'r(z/:`l6sb 6%!!aĄoNNLLĠwuu}={drI$Q{zzfb4n'%%9&\pE'D29cU],^vjfA$VOL@R 4Q'@$9&%N4|$i2pp }> E~ғt78%`0 ,"O%tjҤd>G:bfURI(.Iax<`UUqdChm9@e߯IbxMf+eOvtkf,Krwg/=nw/QD 8 *VJP&*l*}6Um:"ge8RSVH+N4v#_2sM;WssaOgM6쀩~ڒˋsZ^9='BgJeȻn>iMM{:j `ſЖ\>fa-a E`z+bZXW=sîAAAqMugFL0pXiBn+v1dlwX-U0Hg+tFV$) +}TCld 6Ţ2BH >?1nߖ  B$˪$IRm6[ʤi1LdcL$Xn,u],i2cc@GXSxVD;  & Pc_`$c͖8h:` 6c-cYd2E~>y<g(ƀ1 , 84ydgy^8a80B,BǍ_0(&l6[M`006m$DX fi :f#SrLrEc_}. H˽=:Ɖ]'l-WeS]wXuUQE$e+۵)y%ڡu\]2$e+QYv-´{~<61ﭼcBt}&&Sdf?|7ތ4ђW8w?ܱ){ 6Ki6~2yKfܷtIFҍ8d.Glnxn6 %&ʏ_,j=AAAqtCU\,-ۂH..It8lEjHЃ:? 3+ "Fc5e]XcrϥNW$p2}wGOg> i2gʸ[iuwҢ1C6uG#K8Gny^ s Ò! 0aB%ސ5 ֛e&LJBI!)^( t#P1pXr|;p0Rc c QdVjEj#xXg`p ˲ ٱ,k Vp 1?F8cYr&WXf1Fu bqeA8gL I7nE"/k-S>b}?^[]r)((((( ~jEcuXJL#@:p  4ɑHC,XX?1&QxcY @ < >1C6Ęc<tX,#V#|50l,`91 bY 値3A Mk0, t]@ tȊF ]$0&atsԧEQMUvKr&9H`bjQTqan\n _q;1nwRR0.+ ?h2YiӬVk}}=L<3:eφ6`cEF0B `D4UM5t =TMD,p X`q$$p30㌆u ^uA>J!pD< .{l:B3wHY#]0t9(#u tp<# fAXtEUt|MŊ^v{M%dlᦛnQ5(ZD'hP#l6($ȣ&Ƚ$ ZI(H0/%h$Y.B!THre5MyWh產QPPPP`Ti!0`P(mh1\2+Aany** 9$/i9 83p/lϊ R}ٍ[Diq^\QՐ !"P1Zp08c :V4 kXUw*)A45EUu-DcAD, dm`a4Muc`UA`OmF>3 Hp(O#`vX<0 F ɬ( >rcY6U產QPPPP`(𾭵 Ƀ`10Lblk^/Xd Y;;B:[ȞbPh7Wx љ? 8`PyS1`,T`c 14=71BAIdEQUU! ]v5M'Ni*IlB]ݽ1[-h0!Xl N]m&,cO11bK"IV k_tTQ]%IeUČ$)h&1Ǒbl J)@H ~c䉍fHX"k^:`-ʪAͲEV-lm!~7 [a, 䃬MJєkUQ[0\]fN8Fʳǰ1+4#?q2˳ñč <%UAUMúbhMc@E::\Fc/)#03zZd7n|t:'hh8O ȑ82`HB5R%Ioa"UP+E@[. Dav+1Z~a@:yE ZH`HŢ YM AtAdπp-]'hG6P iqͣ"zD @WJh*a MuUWuUTtIayF/։Y5A4EnDю`0kQKH&XVz !}&U ցcyj "XT$89SȅK)@ew"p,ЀmbP"(+Y!")<$㰮몎80&Q8eX8e9d/23: }IA icUF,{̀#1>(H8CHbV 2Vy^ ;D.4 i Ñ,˳:0 댆U,~1h0| &*0 dGB4@$pgJ((((((8J 01`]CK@eb XSN1>{ݠ b``kHQly1xQ e(hYPkt b1 8h7F_ cQlr*š kmh:`1ĢueU&y6%Ơ؂FlbF#~fFt@c`FYK#r1(.,tca-"0Hpd9>xzϰ5Lc qGRZKGqk`'b 1vVޏkr8NjQaL3[ J\0_ME\8?'++'?zp ځpKͧ)>)%Em=}X?k_v? ٻ{ߧ,X\󓗾'N':e~qﯩ{*/9>\}Ͽ8+t8wƸʹ'e/ƀJ?xznzCۏoiߓW ݇Wfg<6PfcZ!>--\(;3={J陋n a:CُtO({W>8_>Cذ)@4hsOϟӋ2=i<<5'~c!z?6Z~c;_b 7W7Həs>yp߻[<_s[.znR}]~낃 &EߥK=my۹ʹ%,ٿ^ ~~d.U·~8xH {~ߞ峗|g\z`ym˾.@)Eꢪγ..xFnlpS!I;ѩqCܟPnzc}mg>;>>Xv(ZEo<`|ѯR23ꓺOOfG|̹O#4OyITNffmWfg96*BWf>A_/ʼa#0- B 5Bi<܉C2Y#>>LBVf/Dzyc2>7ko-=߷D761ׅLOwֆ&)$oذn\Lrz]0 ҙMqň 2Js rr"e X]R,[**q6UO+0S@qBR*gQpRW㩢}2Wk46ё5Bi<z)s5TAZ^sKmsWZѰD8xix(*jorҢ8>[')CG)i+/{o;١TO mO>ǣOO5ſ9QٝKٺ=u;3V^Kk9ߤ}ɞQކgYKܳp΂c5p΢/hu4h f?usD},xgݟwZ1'w64\#?3󧷾V3'/cX{CW'gbV=M^YlS6$\i댔c`iw^jv=--_GzqdK./n`/C_4qK^:H\{苋݇OjP9/~x;ũփ052IjqK^; n36^|Ҋ?sv= -v%/mم;{}mkj^⻵uJ=f>װe[ҵov_/{ìgO}uuҡ'W룛 _;q/Of.~wkO~6忉ٍYy 'N}wacٗ uG_|rn8tg6܍/,5i x˲WE-< +KyyMEeC]>H*=s̒]vZڰ`v~QiEHrgbs WUCq厲ÊѿRqvEwUyβ]q8 ȷ=G7^Ůڲ3Eؔ3*e{XU4ovAqYE+-5;.$v|F(xuGS -//Fj39G067kobV=ƾ`=>OwN]zl)w@҄s-{|hJ[ycxض5ڱ)Kz۪vuDe?|u/7?;/V7k>XsLljP9?[mX8{OuHœ0̱@Ϲ;쾣.>]2?){9ɧKo:>NGΏzR/A̚??ٰܥ:O.n\Ô9gYbĺ,u=@tg_3иPW'sboYn`ASgmN 2\4;5wxݷ ktq]g"J[ԢtԜa4( C #FQ~̹$A5 t;l )t@3?x'?.\ِ$^;g_nN <'lyw7=k<<{Ƒgm|dKzOWdXZII[3z۸t׼"{F/[+l/Lc:~ l6}hr6ϏV_E&Gt~ y\'(4[~lm79iN1wɂv}#&Rۡgj8\]m3>2_Xw}d}v׃IIvoחKrd' QX۫7ҡ~7$c,GŽIM6wE=vMmb__ȣĕv75Gمj3m)wL+:R>SF;o;鯥KR?ϾMKwGS\:zًse6sMўdwY&_׹̻bRzW_xn۽/ 2{(-ϒR[Cc4κiؽlp.5Ή/R_OzkEsm,5,?TN;!=7w/6ѹOvI#5kҧrsGb(iݏY,ٳoYR_lEKŤ̅7WZFƧ]![/N1yNfX-a/V߿hgݞ:?7[ho_l~()H\ygV8Mks^`RRRl!o[0g#.aI{.@c:)((((g~|:YT7٘W^utRPPPPPPP\wR4 J(((((((((ERx8I[]TTQTdo9sHqJנ׾}װwKׇ0tRPPPk3}kMWt{׼F o2E+?p+X}'|ީ5]k u{[VZ3’{v9Tq p}wHoްRmfhɾkƞSR8ա~${[Q!EkT#g\] ,Z(C u;;:#rX#_=cgSd>ɷL^ĨZv@a;XIHt93V^<yE3v>r+򊪓]`O^rkQZӎ#GJ55Odw5l ]:R&IiӋ6T v"lٺuVp,PY^MŒdL}L*t8Gk?vրEMK>]&l#WZ֚-[O6{ )tCyl2jǑ3'D/>d [$f\RCLaGߘu>y៍MA)H޲ߜdĞW]b*\LE5{'S_ʎ/Ԝ?~UV|摒Wd%qz靂jf٪;_[~7z靟oXsמ[wkPpp($;\;=MNT-ےz|+N;mDkks^kY3v|;oX3[Ylvʰ/vڿړ?~uLOUyY.pH6l))+TڔWSCc ?lM֭ZW>s"Hk:X5F 5´לY4?+g@G6MzDiz䦒ǏdR]!U2³jɭ;lI׫ +7^s?˞ Νu#+N'uEh;}w|=?ƪqGW㲝 <6x/-Bb~zPӅ5hu(s֔d{V&ؘP0ut_lwFLv eթTH}so'N2 2=}_3)'^fMvp )&%n\rKB}%^(*k]Qޑyyf:464I%yX ά#!uy%h _#dD}=$bp /CkػY1&LMn ~ 2Js iZNN&812:0+9?#9/8[Œ92lQGߘu>󈂂qtQZ܃듳Y-> r[{tUOK1_rWN9e y2hkcH!VD~#'NTlrZ7! 0*xSqZwx Sayj`XnQacǁS55M+0 8aƦ7f3b\1ּhɉ PbֶDG֗tDd C;gG!3p:456{5Wdwl~RdڽwswxzKL-y3 }ᵺY$S3K} R6KE ʋ*GZ~Y٢-qBG^#}oìvs$4<HNO^yဘv5}&fwtl3`_'\ʌRj[%CRּ%iQ̺U9pN/X[Zp2ruv97mRZ&Ii37|( _q$}_xq>κŒq{[WUtARּ]"Ce=:LL(, ?\ugln 7Gע͎7f_yDAA1v +M%ͫ*vCaO?|w'{͡>{xj_'Z sp I3:)((Qom(C/}[m}}{n;tLP\v:Ÿ*johOH.ߜ4 ?PN7؎N % J((((((((((ER4 J((((((((((EuSUլB.p6@ ^zGyS*]>SPPPPim=q}"5hҬMWudc"~oeW\<7茦jQPć8dL#R24ON[:wO{XEg޻QH"9q$"&ZbyK#/Ff?,X@qZ"m}ؿ"R IDAT^6m6JXE!v! %mZ!e|M˜c˲4a><4gG ˃E{9qٟ[y{w400sG'_CdY{o\IU{?x!鞳q[G7?D8j}{5|9UhǶ>,-=~`̒|a^C{[z'q$9c$ުkԝM9ՙtBPJ܍zZTWF|ΦJVT(6;CCyZL:R-1gn<AQ*JXmwSq%Ɯ)D<NT(}ycGDLͨZvQV*:jEqjڨը5]뤒Pmuy#QPDUSmih V*큾WP( };NrFBҠU+F7jnisc̷3'F.oVVv3] ((sYO|oKK$˚7cZhN6~7?x!&(LnȲCGEgxuϡ o4o/![_<8-o|ǧB}=m|̽~Ë8?bm1WǜT-}Bh !Do}fO!4uޭ !Pdu}qquO8ob6#聏_t_z=ٝ6YPrJ"]iO aF,ز=CCC6<:i(+H{"zg?Gvn|˩S-ϔj]T= [>9m~OhwlyhY}fk Gzz{O<{_aAYCό; l8roݱcǮ9-e/s=-~=wXTL2ڼ`+у; = !?|Y:-;+6*N>-=~~ [{X!^|갾evϪmC/N_:#тͩt>oI|gۯO_:}OIz'o.B1'Ƈu|__/ޗ^I[ozKrO@뼯ul{`w>Gcmyn{bU\'fFF22K-JBTΣc؟\oתϟmhnݖ-/_|~xmcwv٦#ǹ5ό~U?z-} 9CNT[TnWهTw{dɴB3rVm4qc9@[8EgܬN(cp HfEI^v ,/έ|f: l7e G@7zfIw۷4?[M <|oD%Z!Y ߭*^dTĢrG" gsCSlo-2V5u:Dab"QSKWT_mj3Pq$!MUAJ f$B!mm]NJS6gSH(n7+iY jeksO_2Kot}< ʛVsW=x`kS ?S^qGb0/ bݝ0>Q!ٛs7_^ `Qz/VBRVTj,*5+mYUJ獬 y v)&G$_1nOe0cOb.bGEfS^[gKma:δETSTRDYVMؚN-FEZBb.nE#tW'ο } C$~Գ;i{ΪVM)=\ă_[:3en~,7ÅӁy [8MRJZo7q-s%q/ ?|mtӽ@v&x1?_ycOzMΑ@O5%'^À܅ۓ823w_zgnq5JSGF΍Ϲ^m$/fiwt^\%i mmrE|E%Fb؝fup8sS>t)u56u' #)4H-MnRQVLK3rq媵v*)iUvŴr̊:sz6ŮXrz|>*N+v6[t[7.k ݅O=60?w<7)Ewۄ?|:ݥֆO~~bl`cެT&:Jx]\:/Jזn݃D^xz}G6&\^} ܾ=9Yޚ>>Ցyc~ &$};/ř›n۴v;D4>YGͥKHJs_U;e(BL4gdu&]Eȋ ZҚzWEAS/JZY_|Ff,65{+Ð,17YX'RϺͺ4FxմERkU31[ҺaU.Ykf(+[fWUc9ڙHR 9DN$?|kl JK_g,߭\d^߉\<= 7?򹢙8x#BJxu*Uy*ӓ1aNb \Gٰ*0iNlr4CT "fOjlLbq"3 +[`(ȴ& sP\|v{עk@mP6b)W'%,zHNFolT]"RCBF&?슭TU?ƎR5OxcŃ+:eO#|O,0Pj[j}M mgׂl9zS'`u*Wj{A|p.;rwXOxGRCy/mXq=B/ b'vf))?W5TyIc [ŖZ-l-OxUʚ6J( ^kk )(z!ݢˍ윧h]ű%ͨVZ :F֙ڼ,{g3*bԪJl(|-vEgW"l3)5𵖫f/[ʒ@wmBuitB;A s6UktFˌ◛87Q5vh'lͰY+87#mIV+:MBa@ Å1צmސ:mFj'"`qέ+' 4B4 s+H;I ut-}ް呑g9&nx4^3η5TQ鏏 OGkc'͏X䁖̨~AyÖG~̅l5fk8Wԡst\63iTT.hr }u@DI]uF u6Gj՛*l99\ݮ&{뵢;nnViw[mFSNgιp*:}zyRŐA5N}eͦFwL>zm6ٮFZp֘MnowZ3ĭW"t;t៎RC-#K۪"euvTY4}-7`o?j9l9cqMViILWd:.dN߰Sٚ|Qo>+VcA4BC p 4pI jhldv1/ wk~10aq)qI 1X!Z1 1A@ =p3[|A(/z[Ofzb77ݱdo߼ADtoo|;b~x20>hi#{S^&eޣzY^,ْn %#Oٜ潼^i L&W 8D%R9 @* ;d6X,Uj})PmV޲X䪒*IauDQV b.R"\&WVxhj@&CuV["K8ֳҚ"wSSGR\g.Q)ErC~Sj3bSNnwW|LCZbԓڙv[Lg,;/ڼښzsB.WW(j 1>F_E%c,q*-٘ K ! t;8B줉Q :;[1WUU UiMy Ŧ5؂E0^R:sB*$N\Xj/by] ygk37{ N[Ir%?YR 9<9䐹[1#d(גBo*nk%ZVӕɸdg)@znPԑ;EE"{lCѹw{d"Y~4z<;<E{+>f5fj82e~d8+e^(%X$ˏ$ɥ"ld\ >4Q$$+6eݫ76S.ߘ jul!fw)Q#[D(-٘ r%/1;i"NAggk 9R$pu\k\S^^4$<˭=O;;ofkOG~@ ve"BrCS{bPgm5FIşS#TDNQ"ee{kT1/bvW6wn2 D/rE.ǡDQsVZ)zA{/UFi.ͭ2UWjl&8JČW@B.*4a//me=1y;ݑh RVTj465*6oB*<>opy<%nWDBFEO*2y]>\bώ͍45Zkd2Ҹdžu.t{ޛ Q`,r۬VSd7 %[Oj&P52iq+ "&cq 1z%X}ĨOLAitZ*J8eKKʍ l;=^f^ICjc%8B ;fǏgk>YGͥW=-{D%oVX̴"zRCKl:U5Q}/ S]MWUV RJWiҵ'1*6TWR*k&]GL**XI\1bEb,~1V{MƠJr\欃, F5Ŝc$*oI#k fU*,M^IґZ];g+'{5fovr%&YBIUUS̲ΤyZ{%.V))v|؅dq ;vgɇ]~>U[ u ע]2{Nig?~ hg+'5H>QSWV^Qۘ- ]{6plTߪ|dd- EHB,@vB^ͦTwn.)eavt^STQl "E]?ukyh.|^q2370W#nO4Ty~z: g_e|;~ B"p"%CQ.kXp^5TQ1*9OEUADylJ0`sLy8fή[*8;sQ5gu/5 ›5ϩ>Mn9+gxkM ^_e0g;Xjkİ[8qpz'NJüe\)\@X_=]R/D'MUV%LfbtbjvK??Ƀ+c qEOt FK2^}m+k BkJMuYٌJm] /+kQ\G3.CiDӑG%n_(^7>aji~qWXǕ\}m]^ew:KIݤZz}qw%'U̯Z< Es!EqU': 6Ͳ%_u\\}o4 *H KN( __ .ąm'㵦f·],ދi ZRPujVgi B*i}[Z&Yּ8ѭe6=J|fi页[u f}tn(;D5ߺƅ :y=6֟}fdjq[G7?sl+##>ryFWX{?x!鞳 Q͝cU DVIQ*J#2jҠU+FEZ|CeF̷GxIb)*&i6#V;][P(tf|6R[im*7Zgk& zR[{ B7MbMFZP5:)":ΕaUR5ZZTmIyc [ 3V~IVF1SrSw%aX~x,;hWӋ6e^m㊞-ݿ{[g?cnYeG{zOm>xthnʱs;zS|pEP#zúc//|< {{.?~ nOp/Ћ-\͉ߩ5Ά#=ZgvlG{ѥc|Ζ !ӏKDMXG 岂{cbuwK!۲{l2־C; F#-e>zg?L׉s%bi#ٿpW(sk< ;o,;SʎQPPu-zzN]ώqWT2Ml 񔐀81;"/*;EmU]E-FA,.,s$< ;o|;YP-eW݅[9:Kz ?ĤX~x6CXZ!VĂh犦h"luqhl9,5Ec"A")Uh_Fu,󃨌PMMUzDt"9'ž>ojo[wlG΀dwh&R%y=63i8s{|08={8JVgeKA?R{GNLPWW? y7F2+Ur8*JR~ :JVzY.^D2\$FLIPJJL#WfZ/M)'G Ryy'켱j\vIitZ {lCq׻2N:SB?->/Z)4M82Ǖ-\Sg%3:dcL9c矺yQ695uTT7՗d$@[ K;䆦vn1Zd&(YsW=x`kS ?]Y==O;;otna60IR2)aVmw+7eX$Z ( ΊJ 1&Q))ED_ի,F2y' jܤlDJݬjIGN~x౜`yB, S̥*O؜ghmkTnmx"O ZG 7{3Lc*$r7Ǔgds< g&R"թ͢Ǔ=T[HvooFdXց{ۿjwE%ı͆K)W \d^i~,a_ObQZAޫ"Fyv앝_wt;=Wl_ s,X.yz b)l}>nowSjmr,.ts^8o{c#s'<̓p"2.6|c7fW[t6}ȹ97[`{NLEMΑ?3fK?h0b?c;&8RVjnqѹQQv햊jw+M :1˄W7#{^8{&AX'lfORMUumnVWUߥ0Xbz|9IKʍ l;=^f.,$켜q*;2K͊:sz6YEɃkݣt.2YZS直1hR\k69fnIs_U;e8)/56pYů3ɭy{.An~nsE3WDi^}6ū5K[^xz}G6&\^}N47?ӓ? ߭|p#TǾM ٣YQœRs(Ȯd@CdaZS Yj?qoҏ>{'?oe|PRjf՗(Ȕ(d*oI#k fU Eb,~1V[T UUMM2:"sEj풉[Wt^N UfUZB_5 Jc%,"<"^46/5%'Drf`x\hg+MT5j[Ҽs`cIWIFۿX&uR:qKr+Xsh䌼F'eTE?\aazgן5ڼ|^4$E!at2Ux`ƅQ?I柠l"?Wkz<#gwP2!1~BpLqAr-E/~ ~,mx/Fd d4]FMR?%"ɉp8@2i G@cICw@8`IP5mBB(Dxƃ 벳V:駏=:8# \*i(  6~빹7\pahxhllpp $tqփP(L>N?s6K>44o>kHEl͚=5> ˾ ǂ4Wapw}}'U~0_#D};~922 ÃW<6Q8/KעEnnK}Ii:?6oR_H=P)`uFOoydQFF//_ L Phµhʇh4 P %C>"/nY 0!PF^}_}̱qeߚy~*~u޺}˟>ι曾\=?G&'rGF"dWJ;>2e{aM88#hFav^ zQvRSq9lFk>H)[Z]ٱr.+y{??8p8069 i]Ejwunlj׫=aOt&j6Z<%UV!|.s UYd[TSV;uΒvm2+xm/kmMFp8sS,  ÌÉt1pEd֮N8Ν y!# #FGG33С0bmEEPH7wlܸ[n]8vz'_=pΏ7)> Bdge_]9^j14JRї7vx#mFf6j5jZkzVmzvv5jB*NyJVT^O[IQ*L\{?NG'W՛J Doݨh-WFMMFFhiF׮ΤS+*m4hJZgkj3ZFT(:cM%y6y6XRi%YvQV*:jEűXe[b{Xν6RS1[\6(^%*4ڤc9KJmE{+ B螝ڌJMuTkZmbdN247UzV'{9bG1n3qfTj+MVVLum^֭/o, mذaժU, "H$bMkhq* ɒNLLo! &"?ⴼ[7o鷿 j7 63<Aqt=oMMڼtFFBեhT u6͢k4ݑ>[Sr̤Cg0{S]oۧP]uF u6Gj՛*l99\ݮ&g1XopXL9dCNNN桸駫h?j9ll^[Qo>+rLU&GW ȴꭎ6{)\5iMz4\xuI^[MfV)5fƮ(oۛ*䝖*;˪$a:v(-OqAvx_Y;KB#&%{뵢;nْ >-|moC4ٶ^`8We,6n݉|mVG{>+C,N}eI&[)^ע)X~ZVTr\&vmZV.3+s=֭C,`rEc.&''WgBn3<蚵ggϜ~կoȽhj5FTKϿ *!^E*{l2^)T26 ; v6|},3G{w.,sܼ`:Ze٣RxG QDM'/yptνd:}[ݷsϳ/7S˽- 0UhUXBܑu߲`F9[£lɟyͻ >Jy6y- 15/fK/3[4)7G{HV-3ڿ`3 ̖<~sM:/72hGQ_ZIɂG|-,[=5b f|@CwDBq D.0=%ży51J/HE@$K_*((曷on6ov  6yH\ R,.҄Wz 3D1LR!LfD.G|Ru1UaDB0"A@H7"HO~;|ӋaþVG=Qo~ pJ297Krd @  p.. Mb\b 83BaZqDJbעynP\uc{TJRcd2+>f5ftdž>:]z@ z/zSqS^(j:HǍZ[ir:ڭw7UZʎR51`d|YD99!DYRp5ʢp5&OXi%ACdER|r)tbdU/ޒb^fڽzm:XFY:פc_fHi+)6RXBt%fuUEx-5b>LTUVDvDkf&訅ZQ^" 86]hv&HT>s4Z.R_m[ni{9}@aZA*H1 (P 0D11ļ1aM4t'i Dt(4M h4(z4w<0 d{_~Ib?رBO;8q{Qw״%n7Z_~`0FJ  999&BqyԗzjGbff IDAT,%?3XK,vr %UiU]vX[2(ng]LF $74kmv["3YmUE%*JESEW}S~8*N&X9ӆ.]}S}JFы8j>hL2-{]*JJ.&Ub%E\e4(V۠*cCgI\( zA oJ5[TTLr9ٺgk5mo{ &9ׇ&#Eͽ{YabP( F3*gB@`0Ͳ`8@BB!:cBW^,L( iDB@`?55>7J NLu&'֭Y=61!@0!!dd x֮8, D`lCEH`( aa N!:L#̨59>1>5HϤ&NjTߨ~RHO׎_fw^]ɮ\7=x\oj"#- 5`pj@G !I`( @Mc0ϵE 1D:SS0M)KA?kQ18boNp1@8MӀp`:֢ɋTiwfFaiԟ+!Qh9Frt;ړOʊJFFٜ'+Q>JFy .Z 8g].`.U1wd6ʰAo 4d8ur+J sXYVȠP+INEpؠ#l.)ƹPVGSyuw)lvw, q;"fXԓ?].ln4?zqŧnl,؁ 0 & ! pB@`CMs a@ P@BH  `n[CF(CWB~B&|{w[aC^NI_^8"[751yܹ7lB IA b^$@ .` P$p@ DB Bg831 qvyfnϽfxd: 'p&>+0 I23),?9qê56AY06 On߈Ni4-q?:99 M@ 01 !# 0 Fg S("brj|rb 4^ 1!f E1 !ZXGnAnhp{=]zd*NMIdN*4Ҥ%fEWx=ngRmb4;^awx@Vn45OCVkkUԵz dvrj\ri1[Nj:85vtw29[F͊v7ڦ2d'IXiʭ(y=$6azc^*49~|>I;+2(b?mPV`(R̢hPnd,x]ZwqO ^Ka2OђPԀ c(F0[мHg^20 u<;_]N_>r-gjg|܅/:]N׻z걱1 o2gm0ppDcp 1BX37CmeBh$iM  $i :,1 LH`KHaFF C8& (0:S qIxI#oX4pjj*##[W+_pfr|å 6-Cp:{MTO'B)!0z&2 C-1R(N8l1DBLR(d$~8*lXndqA }qSfnjxQ|.K#UfFX/)̵v|=˘HJʤ*l(_~&JV A,+Lu5JWVk3Dɪ*ֻLbT}CR&Ӭh.ldiMj4h4Z֭7I6<-ƒ9{]R`EɛX!I١Dc+E=e318^vl\oP{[8>+ȠkrAѷpcZ7hu6鮊fwl|bz`5ް[upx6Pfz$#BAhLQHOKKYf_(,EŖj(<V1Q[LH ]u:Ca3SfԫmU-Ve$#r~saj3CG"0a aa!c1$&E~j :+] Š[n~=@s=~㏎vrw\2=crr2L#`^^^@hpp̛1 c#i 0 Y83#LG;U10€`|O1%i  "Lo1D3 dV ™㓓BGGA$ yywe"2{:7Gw]G}`ǃge=}ݾW2SBM8H"0{WQϙ~{Ojl .X"],+J/I7ܙ9DžVOޯy%39gy?00>TP4)~cNh' BH#,ICj[,֒c/ݎjEG4Kvvi^ppԛrYj!˲bBG雝q +?kUQ}7^Gep~wϹ֙X+#QY. fddddr,q\M= BE"D(r2at|M hD.նK';#{AB@Q@0VT=~!]鵈P$m +4 DBp$XKC4rCTxeJV3Ǜ(A]ВgOc9.;;w(yX|LTS)+G6dAc Md Q@ )S,J ! BS0@ѨXiyFV^RaX8 Tjٽ*Z/za2p!?s?kh`E8cDPPT+D!@ ^BQJ%3n%o>o wG.'=w2 *J$V2l(1.24ӓlw,^W1Bc 2P,~O0x DCQ [B!E*1-5D'4D>ha(C4cA}?}7_1cƔG,7kۣc,ffRlFzyLbTj&8e.i(?ndwWEE/zы^ D@FH8 #T`H2#O>fK2xp(v-Hn*q-Ii7n9gX]Δ-bŚ7a„ u"@?x`ez=²I3ֶcQz'+Eh<T<D!Fb$e U9vQvFgKWDx;[tv!K$`rMq㎆f(*`NIuIYo1ٞUrDF_[߀5nܸ'4}֤ӚM 22 sr|͵W]g,J?]xѢ~weE/=97v 2E/dA#N. * cFJOnm?_{9k֎Z :LnEI+i=zU^^G3wa,-w שxE= m FcG/*xmNIN3fhMo2LmMijiT--mPȞ޿_l5u:3k߂$q)3-)jZ^ J_mfgeld1bDeY8[^ȅD ^djw֋^1@BT fh9h^i ` Gp\($4:aHW} f()N0XS:AyfXiHMGQ *^Dz1_HMA^j2蘜gƂaV!CnO_%zÄjv֛wvH8J$`p,pjeyNwL&);YS28F_ NvuiZm<7.KYDH,IbMfAVNBѐ}s5 Nb<+F)Zn1p  Z;;]GG^mf 'O7|4 "2EQ@PܱWEE/zы^r\&,% DP `֪ZgAe1']Щu*zС+lVnuy51k?Y9=#sԨQ;w4YY~YOIAyK^ m2 q kXR@s.ED7ԬefӗMU_]6i7M9 7ڲx,_~HMSj>E d \5 #{MfaĐ-Ǿoc&-xI`nUM68PTD*!1&bj%hGfT7|w{>uZo(X[xe!9n6~bpYMNfeqW^vK2Zܯu:Nӌΐx}aQWgfJ"B@ ijl@skoθ~`xYGguQW^mJJǥ[oy-hP kT,$,ӌ9vp0T:aBIUա{vD` IDATɬ:()ٲw`3,u:?̲ۏ׻~O/*20[G]p3 a9S* -N/"bJM{Ǭ!}[򪊽n&r UA42 0<بvo -m<5ko2Vݹw7 6}iÚo;rxnٜ 2I{A@4e%Q#e֯k=T]%HJuNޞ]QcD"D(cBhdKRbH˙ru6DkfuZ+ĂWOoZUtbA_YWw':A=>0Q qEv\ǎ+((%'LH(Ԡᅼ̌w{Wvc/;⨩u)@97K FX}:0t'O4%Mш2f@?,OED).0Y?0T'*T5zT1E>!Զj̚+,=GCdˢG>fk q hӎ) V4Qpzqaaa9K7I%Mh@’Ef\xpp™%EyEg.CK/\s𬽸.qОWqaπ²A3>|9OHc*sʧ 5O~bܔ?qC|:8xj'N|57ߐ4c?u53ngIo8ښ3GoLiܝ/Txv7C'?jo_Զ?|6ÛV~nKL,.Km޼d¼0<лs5>h✥]<|^\f™k-,YPoy漼+畚Jd{GyN/@*:ujnVW\!dgےG?߸1.+NQ;::hy^hU*P<Od۵t nII|7nlmmM2+_XPT Gٙ 08 P4 XG̪j6%7'Ӥ7(q0`Q999utJmٹOؾXŬ[%f0ssKN F@0݃ϑHZ2VԞJm|㜹w,@lOMʃGYn}߂K~?gRg L_Zeז5K[YP<˄.is₉wC{~j<ǯyճ '-(ߓkUyp g?䫑Bn_}4&Opҽ*W_bȋOW T-=]yk+)zptSUi){2{|]X;*hoeAyYJ'֬y4~%4y*Ⱥ掫| ߢ++RX~dk+.:Zyɫ 88־1xkz7+ zr^Н._ 3ߵkז5K猶;0}[J3glmYv_[?!˟n)._5eeK;:cHM^=Yʟ?Bqƽ4ں< ӧf=8N%`0t:%Yb\ ͖ƳWXhMNiG Է^SS;Z;6mڴnݺ)SzP %%p "˲ȉK]*Q]$N/N 77S77M ñii  ˣb0F!O1`QFPt5\>Iy :\n$ƥ7~ܒXs%kАQFˁ -X,{Ɲ&qHeY#(F1q\8E7L+%?wgieͽw4ŀJ#jC yHk[5*ٜa fXǨl1,ǜG.a.U(b~h7H3z(֪%OruZnJ7߆-=2]Ao.wy3ψvW]` pک4VqOК_`g?remm]AW+H94p?R2~G:I&O0,ZY6aeBڭ҆hOk-|?Gy!UJ[7o9#LƎk>Z+-5oWyO?C8uUĘa>m68|>c;7uUL-2dĉYEE@uFzbKtp.B!Mvqv>tLW~(!z`I/w̚YwN*?joW{Mq-X]ZRkU*N"pX+,ϹW }Փ&6FŔ$S<&nذ4`f7f\mhlB 4EdEd@: AMKsua):oCD(6d02MUUZ=#bPkb0vBp00%|Ttt3ي*A!Zo|6ШQI$j%/} Ł=/Ԭ,1dZߠAɩ&Y,!K @$YRLmR2턐p87$IwԦ޷7++jTSlr*e(dի~\%ǚZ^델\AoG Ye㨭8>''iap5̌1]nqvӍlgk}Rg$"_ykSVVvʹںekjjYݿ.wq?p,*|m< D8.\pz}Ed 38]A7ŭ:9M0d[8I)d=Cn}ͫ?̊'ja&PƅO VQK)4s3en`Zeȍnj8 O ;7vx /P:zB,zbK/$qwW5Ϸ ~ӌZN_@c>ֈ 6 :fhf(eY(YEZ{ P|C}UVr C%%̘1hܸq ݞJ dg0X„EXdB14Դ=D!xA |aG H(윔~tzwђ%3zg:Z#`@dI9Y^ƀۘvM!v:ݽyڜ z,Tܚ 7^@LKtμ;f~HjMy Jx ҘLo&^?h iۿD"}MKK eYP , @՜+je+LΡx>)3b/oL(w;Zo}ī0i%CO8AI32;[[~}lݺeN E ④ᄂ-[v BߞfFWU4}ɝS-˖ XOw9DTzrU̼K/Yl^Z˙8>?jfk,ZSu?Х *.P%h׬~z>VG钕wU9Ng[wNח-Yj\yɂ9sF}szdvؾUysfhj|z>P]v⹥BW~/xw?TLGQM M777,ۯ>_mvC;_xt:8J8b1A( G"@S6-(-x7 :-7ܾy}Ѩh7:(0-O37LxĠ ,v7DuZZªwՊB"AõƎgNJ  m$Ͱ+@EưiW޿x3B^.qОWq Y={`w gfh3^:3(1oO,~ Ӟ|fN %3x3|τٓZ9VJ?)IS g&{JwJZle^{?_f 2Va\;; >S5.o-Y,>9ur+/:#NW㧯\>Y/^`.j)w[Osئ?2=>x_OdWPp9BW~/xϢwĉ:HA =#{ǁH$h&"AVl j$I@T$$$[,>Tejׯ㱣F-~/<ܧ4MjdAaƆo?Rk5\}kY$ $ccäw}鮮nmDvфD3L6%B&2c ƙ q~!QCI\hi֦kQM F'7}_uUyO9s}<GHmHuN̕ch814C+..>r~[+񕔈)R`v5Dcb18.ɤi,LӴH49eʔktvtvN>M1_ǮzA8{G @y cO=o\o3BrL2O'Sb̦T:H*eB}g_('###X,Bp8|񊊊x!*  B@AKSrj6 t;L*//,YD_,{W|_*R-$+oIQc^3Ar"/dYY?Sڴ(Ǔ (oޜJ&md Oul۶*q~tM !hD6(((b31ʁ1cG)G)G)b1ب>  AGgG GBЬYzˊ}S&S)hƑni>ҍΞ3dr=0d-)!03`Bg,31 pL3D E4e@{N[N $1NMyM.ӪKwqgu $OFsY d!0* ,f[wWop8d YvD=9WToǂ@oFO d1N H@T\y 59?'"r7Nh MtP\{MMf@`q8mN{Ɏ.nx<UUm6ێ%.PQDgߠN F(H7!T$I2;J+OpݘA>H/#(tem_}k$ʫFh%>^EqԩD& F0D qByhĠ@91-NRngچ_a]#M,ommMrž`"K,0̪it~fTp8̺9D(B0X,LZH$_Ƙ躮 f9l6SJ, Փ2pccciiS1ؘ|0A50N$‰d4rM ϟ:YSgF";'}є)W o#v^35^8 衿j  W̜jO^ߺ~͞Gӊ@aq5~S׼74Sh2ɩTS/!<⸳7xյ;D D]GݧEң IDAT:*'Lu;(,,Ͼ;h2PFa0(0/jMrfQUU|p,<<a۝k(&fMӜNӦ 0@28CYQ+VJ P Jx2L&s?PQ_SSsMco[nРfosaJI-vɦЄٚ󷢢JAYe_ Gݺe_$yŚʦ=vo!{w04OϦsvնSc"?Arg5EQ CQAwo/k9z*H*N1D @,N՜a9%vflB+s  MgOvwŒI0m0Mɬbx28yLR a5?zr'Z̚6o<9sRujpX'KxJJ@QN>2uEEEf9M8@k'M1cm---ˮǜ`bK+ÑX<>tzٿkCr]S]眸guNĠ4EUJV18Pƛnw95O|# vH-CH*SIJpX2ɔR%IXX2L=j62 #/yl6F l6b1-eN1^QJ5M$"\.#fsuuuYij4-?_Xȩ9Y6q g\(A08<"===՚'GcoR5%U J݅xM&wtwFإy?O#E 5|\f-0@_\ªgfC7{Yp1 L&u=eHssPҝwK_Jg9Iܽo/FǗL(E/8RZYmE"9qDAzzz^ \.t:EQey0 uE(l*p{:zcU2Yt6(->S=2d1M T%@b@\L:=!q"6BL(QE o@X$.&6]h’x$+jo-lw s71P188H 0#Q`6$P0dSYTPd^xٳgWTTD:vm6 Kt0 scEQAd!L)u]]]mmmlԯ)9q{{mO,UƲ(͇6 cIҹDb_ vwtxӹ,]vǧ O=&|[)Y6i9sK7Щt|󾗋8n[^``c 9kj?N%n^afmvfU[&G+I6-mXe˪ 3kknyjViimê-W,P?seC8Q߶nټ@mm˾y?oIشvl[Q{z2MMk6ϬٰtݶЇ[,ش~՞3$9s,o KkΪDݶbeJ.l,o[|qC}mmv漥kvlW;G}Eg/TL~,i=ϕ/߷r%,zb fۢ{JCx|s҂wޱ'{jcwV3/{t0xV{?+sۼG3]?~_5ɦ n]afmy˷WՎk߮r\0^B';Opր@/} @)//$ aM^x KGvGm=Lb}㵥 L,.i>mFMuͤI^o6}w^ l6'L&s뭷(b.yK**&j:AR5#jl #e$es&@:y>(T~>3ˉ0s V3GٚlټuӲ½?az`<}k]Kvu5#|ʻk:Mw^[s+{ֿm;g_~wF6V|sG#ȡw{25Wļ]L;E?=o Oϓvnj[V]lڭnݼҿw-bËP-ܺqel_6?Ϳ}ad=֣]omOiIv|%OzwWGcSO=h"f̘1sL8mF>:aj$IL& %I0RU]3@.1נǒ<fd2YLnSҾP(r7yW_gRhoow9AN经qoXKw_?K_ʏGe6YX*A$)ULK&YJכN 4M;uToo/qVEDƘyY6s\dlvrN8) '^V7mwyOEGli-6- GFÑP*Tbh@]gfb$I3tƐ ?ǀ f̘gE}ԩ={̛7Oehl}yL+if2VaDBɓ'_~u5558+/m11 DY>55 Cu]$Q$^tb"ᮞ`@R>MvR4剟̽_.vfTU ~\V_nP[ug:|㩁nMeӵt3{}O[$Y}翂7%]t[aPm޴%p݆s~qe=[M/. Htg\;/ڕ:6osjXqycﯛv@YewQWm#4+.vvg~mm㙷t=8Q1>oq:ђ; m"p~?0g醕۷~TT 0S}>gun۔\ {\[x PL_t_aw~̇UjwOPڪgZܪU_mΆD붦?sW,յz| oتܱͰMp[f\1>cn:<;Y/o f-]xA9VtlI~ /5nՍ'иzʺa78'UsO:mo_=~r;l瞷)x}]}w]_ݵr}ّo|Nsۇ8B.$t]JVcsc!cC<a 08,!Omhxd{j;{ŏ򿓪zdD#xmm#3408V1Ti"<3dlf.!1&Seyydhwۏ`).0FhYY gt00(N F.&ij<1ycc0 F%I*..X3 :|MZUU"' p`#ÇK}VyDSCvo'^0FH9*Q*}mG7.t ; li!͚3KzvhiM;P۳v<gҤ?S;iLZL$[;C0TϜYx.%?(b}dKj8Hk%i҅[.t4m9_f.MI:!: …>W0L4W{É;&3gˮ@ PVVv[n!+o}k J$r?]4AEJ(pPq0h,9 aD 2L ؁-^ŋsnʑ,'f]vw6#@`bu멓/ou$ԝKz::?a3t?0gM6-(jifP104DYc޿Hf#DQ"#'JlJ%x3L\, ƒͩ~-,Y(bIӉT2)|: G8 ImTy! $m *&8Ny+`Z}%~0x2A P0/(b.~+#R4#z8ԪjN#*ٍD Z-(XNO;mc?/Bֶďb UkWm=v T^TKdJuKniXQtS݅y!-nLί޴>os^P#YlM˼76y$3˧rCo~m=*u??~Kgy[i?w/_8{UZBT7*%zRoq|tTv:*˽grBWF3/%]PU3d1L*Df8z%zLlٲp$H=- ^tn;1vՙ}3`{uŪ!ol@joi_hboq%3@o-suW.ߟ~*>ĆZ2:GP>tO}"R`J'rLfefk@va2Jl.IEQL ȲkaL0 Y{4P&pxD߼eKq}ƃIP;lhtCW,_|UӞP-lرyPy˖9Vn?mʍ˖͹Ē@-{斋KgЯmqB@ӊ6gRh=Vn:虷x`KRΝ*$o~ps9|T0ta*f;_;Jݷqg>@/q?޺7 m'N6WmS lj?|1f]h*'w=+BmA7C?fs ~/e@K6 fWrλ~~*dQ찛kIDATx<nY'WNE"JwtxkQ*~2MU_λwV _>~%N9/W]_}EVs{纟1 }{-m9 sx}?jZk׬^P/tO-[7lZpul_XՋ?[2 /޸iyyť[nX06.߼`۾!O =(;zBϿg>-Osj`},Fزrv߰|E!8?1 .s\h{^/IU:!wqěW^KzQ 0IGَ'<%G/ڸ_5>Ld~㟻vؚa,REsA{{R_ܿd |`P! @1`@|3aU ~;qHD<j&єfh:P^^UUrH$Œ$ӓHTUE8N7t* f誖Ȳ80?PjPjP (0B xb3՞cq\1FY0!p Qb3GqIu= S%KK-hc>P>y3-GZ/SпEZfOj2Կgg"kBQ!80 MxsG,6+,&͚SnRnR)P4C9욡B(c9ҝKNjgyơ]?{m_:g^F)$[M*- ӟ艶Px$j$M6k6rYU)l6aPPoH_`o#cz彄w8820SZEIU2 󲡧tfS\6UӮرc̙3+*V3I; q䰈M PJ- $hmL, ( (c]v'ԵH+SB,>9#ϽsQ-AQ,nkCk-91(틖\e=+MSɫz4M\.;EQ$333ZKKKP.Khiʢ\8^[[ =]EQ>U4ɤnCh cÏ|#A(իWk/<6裏EupBHNs9}?cqeBB$IlcVV :dJ!DU$Izta{YmhVw\9@vrZpWu!Y܉U[mܸ4hrj|RŵW5>1V*Jڍa)L)Iy'͛~X4M]mK$MV۽{7ޣ݌1)Rz{*Tni,$uʑ1Fݺ8q Q`-˒/,` and/or descriptions, language, tags, etc. ``kiwix-serve`` provides a ZIM file viewer for displaying inidividual pages from a ZIM file inside the user's web browser (without downloading the full ZIM file). Clients can also remotely search inside those ZIM files that contain a full-text search database. Usage ===== .. code-block:: sh kiwix-serve --library [OPTIONS] LIBRARY_FILE_PATH kiwix-serve [OPTIONS] ZIM_FILE_PATH ... Arguments --------- .. _cli-arg-library-file-path: ``LIBRARY_FILE_PATH``: path of an XML library file listing ZIM files to serve. To be used only with the :option:`--library` option. Multiple library files can be provided as a semicolon (``;``) separated list. ``ZIM_FILE_PATH``: ZIM file path (multiple arguments are allowed). Options ------- .. option:: --library By default, ``kiwix-serve`` expects a list of ZIM files as command line arguments. Providing the :option:`--library` option tells ``kiwix-serve`` that the command line argument is rather a :ref:`library XML file `. .. option:: -i ADDR, --address=ADDR Listen only on this IP address. By default the server listens on all available IP addresses. .. option:: -p PORT, --port=PORT TCP port on which to listen for HTTP requests (default: 80). .. option:: -r ROOT, --urlRootLocation=ROOT URL prefix on which the content should be made available (default: empty). .. option:: -d, --daemon Detach the HTTP server daemon from the main process. .. option:: -a PID, --attachToProcess=PID Exit when the process with id PID stops running. .. option:: -M, --monitorLibrary Monitor the XML library file and reload it automatically when it changes. Library reloading can be forced anytime by sending a SIGHUP signal to the ``kiwix-serve`` process (this works regardless of the presence of the :option:`--monitorLibrary`/:option:`-M` option). .. option:: -m, --nolibrarybutton Disable the library home button in the ZIM viewer toolbar. .. option:: -n, --nosearchbar Disable the searchbox in the ZIM viewer toolbar. .. option:: -b, --blockexternal Prevent the users from directly navigating to external resources via such links in ZIM content. .. option:: -t N, --threads=N Number of threads to run in parallel (default: 4). .. option:: -s N, --searchLimit=N Maximum number of ZIM files in a fulltext multizim search (default: No limit). .. option:: -z, --nodatealiases Create URL aliases for each content by removing the date embedded in the file name. The expected format of the date in the filename is ``_YYYY-MM``. For example, ZIM file ``wikipedia_en_all_2020-08.zim`` will be accessible both as ``wikipedia_en_all_2020-08`` and ``wikipedia_en_all``. .. option:: -c PATH, --customIndex=PATH Override the welcome page with a custom HTML file. .. option:: -L N, --ipConnectionLimit=N Max number of (concurrent) connections per IP (default: infinite, recommended: >= 6). .. option:: -v, --verbose Print debug log to STDOUT. .. option:: -V, --version Print the software version. .. option:: -h, --help Print the help text. HTTP API ======== ``kiwix-serve`` serves content at/under ``http://ADDR:PORT/ROOT`` where ``ADDR``, ``PORT`` and ``ROOT`` are the values supplied to the :option:`--address`/:option:`-i`, :option:`--port`/:option:`-p` and :option:`--urlRootLocation`/:option:`-r` options, respectively. HTTP API endpoints presented below are relative to that location, i.e. ``/foo/bar`` must be actually accessed as ``http://ADDR:PORT/ROOT/foo/bar``. .. note:: The HTTP API is documented in its entirety in order to facilitate the work of the Kiwix development team. Note, however, that only a subset of the HTTP API constitutes ``kiwix-serves``'s public interface. .. _public-api-endpoint: **Public API endpoint** A public HTTP API endpoint is intended to serve the outside world (in addition to ``kiwix-serve``'s front-end and other Kiwix products). The Kiwix development team will do its best to ensure gratifying experience for clients of public API endpoints at all stages of the endpoint lifecycle. .. _private-api-endpoint: **Private API endpoint** A private API endpoint is intended to be used only by ``kiwix-serve``'s frontend or by other products maintained solely by the Kiwix team. Private API comes without any guaranees. It may change as frequently and as drasticaly as the Kiwix development team sees fit. .. _deprecation: **Deprecation** Public API doesn't stay frozen once and forever. As the API evolves, Kiwix team reserves the right to drop support for certain old functionality. In such events, an advance notice will be issued and the users will be given enough time to prepare for the change. Currently, public endpoints are limited to the following list: - :ref:`OPDS API ` - ``/raw`` - ``/search`` (with ``/search/searchdescription.xml``) .. _welcome-page: ``/`` ----- ===== =========== Type: :ref:`private ` ===== =========== Welcome page is served under ``/``. By default this is the library page, where books are listed and can be looked up/filtered interactively. However, the welcome page can be overriden through the :option:`--customIndex`/:option:`-c` command line option of ``kiwix-serve``. .. _new-opds-api: ``/catalog/v2`` (OPDS API) ------------------------------ ===== =========== Type: :ref:`public ` ===== =========== The new OPDS API of ``kiwix-serve`` is based on the `OPDS Catalog specification v1.2 `_. All of its endpoints are grouped under ``/catalog/v2``. :ref:`Legacy OPDS API ` is preserved for backward compatibility. ``/catalog/v2/root.xml`` ^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== The OPDS Catalog Root links to the OPDS acquisition and navigation feeds accessible through the other endpoints of the OPDS API. ``/catalog/v2/searchdescription.xml`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Describes the `/catalog/v2/entries`_ endpoint in `OpenSearch description format `_. ``/catalog/v2/categories`` ^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns the full list of ZIM file categories as an `OPDS Navigation Feed `_. ``/catalog/v2/entries`` ^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns a full or filtered list of ZIM files as a paginated `OPDS acquisition feed `_ with `complete entries `_. **Pagination:** By default, no more than 10 first entries are returned from the library. To obtain the remaining entries the URL query parameters ``start`` and/or ``count`` must be used. The output of ``/catalog/v2/entries?start=s&count=n`` will contain at most ``n`` (default value: 10) results starting from entry # ``s`` (default value: 0). ``count`` with a negative value (e.g. ``count=-1``) removes the limit on the number of results in the output. .. note:: Previously ``count=0`` also designated an unbounded query (i.e. worked similarly to ``count=-1``). The response to a ``count=0`` query was changed to consist of 0 results, as such a query/response combination is a good way to find out the total number of results (when only that information is needed) with minimal consumption of resources. Examples: .. code:: sh # Returns the first 10 entries (internally numbered 0 through 9) $ curl 'http://localhost:8080/catalog/v2/entries' # Returns the next 10 entries (internally numbered 10 through 19) $ curl 'http://localhost:8080/catalog/v2/entries?start=10' # Returns the first 50 entries $ curl 'http://localhost:8080/catalog/v2/entries?count=50' # Returns 50 entries starting from entry # 100 (i.e. entries ## 100-149) $ curl 'http://localhost:8080/catalog/v2/entries?start=100&count=50' # Returns all entries $ curl 'http://localhost:8080/catalog/v2/entries?count=-1' # Returns all entries starting from entry # 100 $ curl 'http://localhost:8080/catalog/v2/entries?start=100&count=-1' .. _library-filtering: **Filtering:** A filtered subset of the library can be requested by providing one or more filtering criteria, whereupon only entries matching *all* of the criteria are included in the response. Pagination is applied to the filtered list. The filtering criteria must be specified via the following URL parameters: * ``lang`` - filter by language (specified as a 3-letter language code). * ``category`` - filter by categories associated with the library entries. * ``tag`` - filter by tags associated with the library entries. Multiple tags can be provided as a semicolon separated list (e.g ``tag=wikipedia;_videos:no``). The result will contain only those entries that contain *all* of the requested tags. * ``notag`` - filter out (exclude) entries with *any* of the specified tags (example - ``notag=ted;youtube``). * ``maxsize`` - include in the results only entries whose size (in bytes) doesn't exceed the provided value. * ``q`` - include in the results only entries that contain the specified text in the title or description. * ``name`` - include in the results only the entry with the specified :term:`name `. Examples: .. code:: sh # List only books in Italian (lang=ita) but # return only results ## 100-149 (start=100&count=50) $ curl 'http://localhost:8080/catalog/v2/entries?lang=ita&start=100&count=50' # List only books with category of 'wikipedia' AND containing the word # 'science' in the title or description. Return only the first 10 results. $ curl 'http://localhost:8080/catalog/v2/entries?q=science&category=wikipedia' ``/catalog/v2/entry/ZIMID`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns full info about the library entry with :term:`UUID ` ``ZIMID``. ``/catalog/v2/illustration/ZIMID`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== **Usage:** ``/catalog/v2/illustration/ZIMID?size=N`` Returns the illustration of size ``NxN`` pixels for the library entry with :term:`UUID ` ``ZIMID``. If no illustration of requested size is found a HTTP 404 error is returned. ``/catalog/v2/languages`` ^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns the full list of ZIM file languages as an `OPDS Navigation Feed `_. ``/catalog/v2/partial_entries`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns the full or filtered list of ZIM files as an `OPDS acquisition feed `_ with `partial entries `_. Supported filters are the same as for the `/catalog/v2/entries`_ endpoint. .. _legacy-opds-api: ``/catalog`` (Legacy OPDS API) ------------------------------ ===== =========== Type: :ref:`deprecated ` ===== =========== The legacy OPDS API is preserved for backward compatibility and is deprecated. :ref:`New OPDS API ` should be used instead. ``/catalog/root.xml`` ^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`deprecated API ` ===== =========== Full library OPDS catalog (list of all ZIM files). ``/catalog/searchdescription.xml`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`deprecated API ` ===== =========== Describes the `/catalog/search`_ endpoint in `OpenSearch description format `_. ``/catalog/search`` ^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`deprecated API ` ===== =========== Returns the list of ZIM files (in OPDS catalog format) matching the search/filtering criteria. Supported filters are the same as for the `/catalog/v2/entries`_ endpoint. ``/catch/external`` ------------------- ===== =========== Type: :ref:`private ` ===== =========== **Usage:** ``/catch/external?source=URL`` Generates a HTML page with a link leading to (the decoded version of) ``URL`` and a warning that following that link will load an external (out of ZIM) resource. **Parameters:** ``source``: URL of the external resource (must be URL-encoded). **Example:** .. code:: sh # Intercept an external link to https://example.com?query=abcd $ curl 'http://localhost:8080/catch/external?source=https%3A%2F%2Fexample.com%3Fquery%3Dabcd' ``/content`` ------------ ===== =========== Type: :ref:`private ` ===== =========== ZIM file content is served under the ``/content`` endpoint as described below. ``/content/ZIMNAME/PATH/IN/ZIMFILE`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: :ref:`private ` ===== =========== Returns the entry with path ``PATH/IN/ZIMFILE`` from ZIM file with :term:`name ` ``ZIMNAME``. ``/content/ZIMNAME`` ^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: :ref:`private ` ===== =========== ``/content/ZIMNAME`` redirects to the main page of the ZIM file with :term:`name ` ``ZIMNAME`` (unless that ZIM file contains an entry with an empty path or path equal to ``/``, in which case that entry is returned). ``/random`` ----------- ===== =========== Type: :ref:`private ` ===== =========== **Usage:** ``/random?content=ZIMNAME`` Generates a HTTP redirect to a randomly selected article/page from the specified ZIM file. **Parameters:** ``content``: :term:`name ` of the ZIM file. .. _raw: ``/raw`` -------- ===== =========== Type: :ref:`public ` ===== =========== The ``/raw`` API provides access to ZIM file data. It consists of two separate endpoints for accessing data and metadata. ``/raw/ZIMNAME/content/PATH/IN/ZIMFILE`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns the entry with path ``PATH/IN/ZIMFILE`` from the ZIM file with :term:`name ` ``ZIMNAME``. Currently, this endpoint almost duplicates (with some subtle technical differences) the newer endpoint `/content/ZIMNAME/PATH/IN/ZIMFILE`_. The important difference is that the ``/raw`` endpoint guarantees that no server-side processing will be applied to the returned content, whereas content obtained via the ``/content`` endpoint may in the future undergo some processing intended to improve the operation of the viewer (e.g. compensating for certain bugs in ZIM creation). Also note that ``/raw`` is :ref:`public `, whereas ``/content`` is :ref:`private `. ``/raw/ZIMNAME/meta/METADATAID`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ===== =========== Type: member of a :ref:`public API ` ===== =========== Returns the metadata item ``METADATAID`` from the ZIM file with :term:`name ` ``ZIMNAME``. ``/search`` ----------- ===== =========== Type: :ref:`public ` ===== =========== Performs a full text search on one or more ZIM files and returns an HTML page with a list of links to matching pages along with snippets of the matching portions of those pages. .. _multi-zim-search-constraints: A multi-ZIM search request must comply with the following constraints: * the number of ZIM files participating in the search operation must not exceed the limit imposed by the :option:`--searchLimit` option of ``kiwix-serve``. * all of the ZIM files participating in the same search operation must be in the same language. **Parameters:** ZIM file selection parameters: At least one of the following parameters must be provided in order to specify in which ZIM file(s) to search. Parameters appearing earlier in below list take precedence over subsequent ones (the later ones, even if present in the request, are simply ignored). ``content``: :term:`name ` of the ZIM file (for a single-ZIM search). This is a :ref:`legacy parameter `. ``books.name`` should be used instead. ``books.id``: :term:`UUID ` of the ZIM file. Can be repeated for a multi-ZIM search, however must respect the :ref:`multi-ZIM search constraints `. ``books.name``: :term:`name ` of the ZIM file. Can be repeated for a multi-ZIM search, however must respect the :ref:`multi-ZIM search constraints `. ``books.filter.{criteria}``: allows to take full advantage of :ref:`library filtering ` functionality of the `/catalog/v2/entries`_ endpoint (``{criteria}`` must be replaced with an attribute/filtering criteria name supported by :ref:`library filtering `). Query parameters: ``pattern`` (optional; defaults to an empty string): text to search for. ``latitude``, ``longitude`` & ``distance`` (optional): geospatial query parameters. If all of these are provided, then the results will be restricted to geotagged pages that are within ``distance`` metres from the location on Earth with coordinates ``latitude`` and ``longitude``. Pagination parameters: ``pageLength`` (optional, default: 25): maximum number of search results in the response. Capped at 140. ``start`` (optional, default: 1): this parameter enables pagination of results. The response will include up to ``pageLength`` results starting with entry # ``start`` from the full list of search results (the first result is assumed to have index 1). Other parameters: ``format`` (optional, default: html): format of the search results. Allowed values are: html, xml. Examples: .. code:: sh # Search for 'android' in the book with name 'scifi-library' # Return results ## 51-60. $ curl 'http://localhost:8080/search?pattern=android&books.name=scifi-library&start=51&pageLength=10' # Search for 'napoli' in books in Italian $ curl 'http://localhost:8080/search?books.filter.lang=ita&pattern=napoli' # Search for 'chateau' in books in French that have a category of 'wikipedia'. # Return the results as XML. $ curl 'http://localhost:8080/search?pattern=chateau&books.filter.lang=fra&books.filter.category=wikipedia&format=xml' ``/search/searchdescription.xml`` --------------------------------- ===== =========== Type: :ref:`public ` ===== =========== Describes the `/search`_ endpoint in `OpenSearch description format `_. ``/skin`` ----------- ===== =========== Type: :ref:`private ` ===== =========== Static front-end resources (such as CSS, javascript and images) are all grouped under ``/skin``. **Usage:** ``/skin/PATH/TO/RESOURCE[?cacheid=CACHEID]`` `Cache busting `_ of static resources is supported via the optional param ``cacheid``. By default, i.e. when the ``cacheid`` parameter is not specified while accessing the ``/skin`` endpoint, static resources are served as if they were dynamic (i.e. could be different for an immediately repeated request). Specifying the ``cacheid`` parameter with a correct value (matching the value embedded in the ``kiwix-serve`` instance), makes the returned resource to be presented as immutable. However, if the value of the ``cacheid`` parameter mismatches then ``kiwix-serve`` responds with a 404 HTTP error. ``kiwix-serve``'s default front-end (the :ref:`welcome page ` and the :ref:`ZIM file viewer `) access all underlying static resources by using explicit ``cacheid`` s. ``/suggest`` ------------ ===== =========== Type: :ref:`private ` ===== =========== **Usage:** ``/suggest?content=ZIMNAME[&term=QUERY][&count=N][&start=S]`` Returns suggestions (in JSON format) for a text string that is assumed to be a partially typed search for a page inside a particular ZIM file. Suggestions are obtained as matches of the query text against the page titles in the ZIM file using the title index database generated during the creation of the ZIM file. In case of a multi-word query the order of the words matters in two ways: 1. the last word is considered as partially typed, unless followed by a space; 2. ranking of the matches. If the ZIM file doesn't contain a title index then suggestions are generated by listing page titles starting *exactly* (in a case sensitive manner) with the query text. Otherwise, suggestions are case-insensitive. If the ZIM file contains a full text search index, then an extra suggestion is added as an option to perform a full text search in the said ZIM file. **Parameters:** ``content`` (mandatory): :term:`name ` of the ZIM file. ``term`` (optional; defaults to an empty string): query text. ``count`` (optional, default: 10): maximum number of page suggestions in the response (i.e. the extra option to perform a full text search is not included in this count). ``start`` (optional, default: 0): this parameter enables pagination of results. The response will include up to ``count`` entries starting with entry # ``start`` from the full list of page suggestions (the first result is assumed to have index 0). **Example:** .. code:: sh $ curl 'http://localhost/suggest?content=stackoverflow_en&term=pyth&count=50' .. _zim-file-viewer: ``/viewer`` ----------- ===== =========== Type: :ref:`private ` ===== =========== ZIM file viewer. The ZIM file and entry therein must be specified via the hash component of the URL as ``/viewer#ZIMNAME/PATH/IN/ZIMFILE``. ``/viewer_settings.js`` ----------------------- ===== =========== Type: :ref:`private ` ===== =========== Settings of the ZIM file viewer that are configurable via certain command line options of ``kiwix-serve`` (e.g. ``--nolibrarybutton``). /ANYTHING/ELSE -------------- ===== =========== Type: :ref:`private ` ===== =========== Any other URL is considered as an attempt to access ZIM file content using the legacy URL scheme and is redirected to ``/content/ANYTHING/ELSE``. Glossary ======== .. glossary:: ZIM filename Name of a ZIM file on the server filesystem. ZIM name Identifier of a ZIM file in the server's library (used for referring to a particular ZIM file in requests). For a ``kiwix-serve`` started with a list of ZIM files, ZIM names are derived from the filename by dropping the extension and replacing certain characters (spaces are replaced with underscores, and ``+`` symbols are replaced with the text ``plus``). Presence of the :option:`-z`/:option:`--nodatealiases` option will create additional names (aliases) for filenames with dates. For a ``kiwix-serve`` started with the :option:`--library` option, ZIM names come from the library XML file. ZIM names are expected to be unique across the library. Any name conflicts (including those caused by the usage of the :option:`-z`/:option:`--nodatealiases` option) are reported on STDERR but, otherwise, are ignored. ZIM title Title of a ZIM file. This can be any text (with whitespace). It is never used as a way of referring to a ZIM file. ZIM UUID This is a unique identifier of a ZIM file designated at its creation time and embedded in the ZIM file. Certain ``kiwix-serve`` operations may require that a ZIM file be referenced through its UUID rather than name. kiwix-tools-3.5.0/docs/meson.build000066400000000000000000000003131442271166700171110ustar00rootroot00000000000000 sphinx = find_program('sphinx-build', native:true) sphinx_target = run_target('doc', command: [sphinx, '-bhtml', meson.current_source_dir(), meson.current_build_dir()]) kiwix-tools-3.5.0/docs/requirements.txt000066400000000000000000000000461442271166700202360ustar00rootroot00000000000000Sphinx==5.3.0 sphinx-rtd-theme==1.1.1 kiwix-tools-3.5.0/format_code.sh000077500000000000000000000003441442271166700166440ustar00rootroot00000000000000#!/usr/bin/bash files=( "src/installer/kiwix-install.cpp" "src/searcher/kiwix-search.cpp" "src/manager/kiwix-manage.cpp" "src/server/kiwix-serve.cpp" ) for i in "${files[@]}" do echo $i clang-format -i -style=file $i done kiwix-tools-3.5.0/meson.build000066400000000000000000000016611442271166700161700ustar00rootroot00000000000000project('kiwix-tools', 'cpp', version : '3.5.0', license : 'GPL', default_options: ['c_std=c11', 'cpp_std=c++11', 'werror=true']) compiler = meson.get_compiler('cpp') add_global_arguments('-DKIWIX_TOOLS_VERSION="@0@"'.format(meson.project_version()), language : 'cpp') static_linkage = get_option('static-linkage') if static_linkage # Static build is not supported on MacOS if host_machine.system() != 'darwin' add_global_link_arguments('-static-libstdc++', '--static', language:'cpp') endif endif thread_dep = dependency('threads') kiwixlib_dep = dependency('kiwix', version:'>=12.0.0', static:static_linkage) libzim_dep = dependency('libzim', version:'>=8.1.0', static:static_linkage) all_deps = [thread_dep, kiwixlib_dep, libzim_dep] if static_linkage librt = compiler.find_library('rt', required:false) if librt.found() all_deps += librt endif endif subdir('src') if get_option('doc') subdir('docs') endif kiwix-tools-3.5.0/meson_options.txt000066400000000000000000000003141442271166700174550ustar00rootroot00000000000000option('static-linkage', type : 'boolean', value : false, description : 'Create statically linked binaries.') option('doc', type : 'boolean', value : false, description : 'Build the documentations.') kiwix-tools-3.5.0/src/000077500000000000000000000000001442271166700146115ustar00rootroot00000000000000kiwix-tools-3.5.0/src/man/000077500000000000000000000000001442271166700153645ustar00rootroot00000000000000kiwix-tools-3.5.0/src/man/fr/000077500000000000000000000000001442271166700157735ustar00rootroot00000000000000kiwix-tools-3.5.0/src/man/fr/kiwix-manage.1000066400000000000000000000033671442271166700204470ustar00rootroot00000000000000.TH KIWIX 1 "21 May 2012" .SH NAME kiwix\-manage \- Gestionnaire de bibliothèque Kiwix .SH SYNOPSIS .IX Header SYNOPSIS .B kiwix\-manage .br kiwix\-manage LIBRARY_PATH add ZIM_PATH ... .br kiwix-manage LIBRARY_PATH show [CONTENTID1] [CONTENTID2] ... .br kiwix\-manage LIBRARY_PATH remove CONTENTID1 [CONTENTID2] .SH DESCRIPTION .SS kiwix\-manage .PP Permet de gérer les contenus de la bibliothèque Kiwix. La bibliothèque est un fichier XML référencant les contenus ZIM et leurs méta-donnnées: Index, icone, date, etc. . .PP Un fichier d'exemple est disponible à http://www.kiwix.org/library\.xml .TP \fBadd\fR Ajoute le fichier \fBZIM_FILE\fP à la bibliothèque \fBLIBRARY_FILE\fP. .TP \fBshow\fR Show given \fBCONTENT_ID\fP from \fBLIBRARY_FILE\fR. If no \fBCONTENT_ID\fP is given then all contents from \fBLIBRARY_FILE\fR are shown. Affiche les détails de \fBCONTENT_ID\fP dans la bibliothèque \fBLIBRARY_FILE\fR. .br Sans \fBCONTENT_ID\fP, tous les contenus sont affichés. .TP \fBremove\fR Supprime le contenu \fBCONTENT_ID\fR de la bibliothèque. Au moins un \fBCONTENT_ID\fR doit être spécifié. .TP \fB\-\-zimPathToSave=\fR Change le chemin de référence du fichier ZIM dans la bibliothèque. .TP \fB\-\-current\fR Marque ce contenu comme celui courant (contenu par défaut) dans la biliothèque. .TP \fB\-\-backend=xapian|clucene\fR Séléctionne un moteur d'indexation. .TP \fB\-\-indexPath=FULLTEXT_IDX_PATH\fR Chemin vers l'index plein texte correspondant au fichier ZIM. .TP \fBurl\fR Définit l'adresse URL corresponsant au fichier ZIM pour pouvoir être téléchargé depuis Kiwix. .SH SEE ALSO kiwix(1) kiwix\-install(1) kiwix\-serve(1) .SH AUTHOR Emmanuel Engelhart .br Vasudev Kamath (Manual) kiwix-tools-3.5.0/src/man/fr/kiwix-serve.1000066400000000000000000000025571442271166700203430ustar00rootroot00000000000000.TH KIWIX 1 "21 May 2012" .SH NAME kiwix\-serve \- Serveur Web Kiwix .SH SYNOPSIS .IX Header "SYNOPSIS" .br kiwix\-serve [\-\-index=INDEX_PATH] [\-\-port=PORT] [\-\-verbose] [\-\-daemon] [\-\-attachToProcess=PID] ZIM_PATH .br kiwix\-serve \-\-library [\-\-port=PORT] [\-\-verbose] [\-\-daemon] [\-\-attachToProcess=PID] LIBRARY_PATH .SH DESCRIPTION .PP Serveur Web (HTTP) autonome pour diffuser des contenus ZIM sur le réseau. .TP \fB\-\-index=INDEX_PATH\fR Chemin vers l'index plein text du fichier ZIM. .TP \fB\-\-port=PORT\fR Port sur lequel le serveur doit écouter. .br Par défaut, le serveur écoute sur le port 80. .TP \fB\-\-verbose\fR Active le mode verbeux de la sortie. .TP \fB\-\-daemon\fR Execute le serveur en mode démon. .TP \fB\-\-attachToProcess=PID\fR Arrêter le serveur lorsque que le processus PID meurt. .TP \fBZIM_PATH\fR Chemin vers le fichier ZIM à diffuser. .br Obligatoire en dehors du mode bibliothèque. .TP \fB\-\-library\fR Active le mode bibliothèque. .br Sert les contenus d'une bibliothèque Kiwix au lieu d'un seul fichier ZIM. .TP \fBLIBRARY_PATH\fR Chemin vers le fichier bibliothèque de Kiwix. .br Le fichier bibliothèque est un fichier XML créé avec \fBkiwix-manage\fB. .SH SEE ALSO kiwix(1) kiwix\-manage(1) .br kiwix\-install(1) .SH AUTHOR Emmanuel Engelhart .br Vasudev Kamath (Manual) kiwix-tools-3.5.0/src/man/fr/meson.build000066400000000000000000000001641442271166700201360ustar00rootroot00000000000000install_man('kiwix-manage.1', 'kiwix-serve.1', install_dir:get_option('mandir')+'/fr/man1') kiwix-tools-3.5.0/src/man/kiwix-manage.1000066400000000000000000000030541442271166700200310ustar00rootroot00000000000000.TH KIWIX-MANAGE 1 "21 May 2012" .SH NAME kiwix\-manage \- Kiwix Library Manager .SH SYNOPSIS .IX Header SYNOPSIS .TP \fBkiwix\-manage\fR LIBRARY_PATH \fBadd\fR ZIM_PATH ... .TP \fBkiwix\-manage\fR LIBRARY_PATH \fBshow\fR [ZIM_ID_1] [ZIM_ID_2] ... .TP \fBkiwix\-manage\fR LIBRARY_PATH \fBremove\fR ZIM_ID_1 [ZIM_ID_2] ... .TP \fBkiwix\-manage\fR --version .TP \fBkiwix\-manage\fR --help .SH DESCRIPTION .PP \fBkiwix\-manage\fP is a command line tool for manipulating a Kiwix XML library. .PP \fBkiwix\-manage\fP allows to manage the entries of the Kiwix library. The library file is a flat XML file listing ZIM files with all necessary information like id, favicon, date, creator, description, filepath, title, url, etc. .SH ACTIONS .TP \fBadd\fR Add \fBZIM_FILE\fP to \fBLIBRARY_FILE\fP. Create the library file if necessary. .TP \fBremove\fR Remove the given \fBZIM_ID\fR from \fBLIBRARY_FILE\fR. At least one \fBZIM_ID\fR should be specified. .TP \fBshow\fR Show given \fBZIM_ID\fP from \fBLIBRARY_FILE\fR. If no \fBZIM_ID\fP is given then all contents from \fBLIBRARY_FILE\fR are shown. .SH OPTIONS .TP Options to be used with the action \fBadd\fR: .TP \fB\-\-url=HTTP_URL\fR Set the ZIM online HTTP(S) URL .TP \fB\-\-zimPathToSave=OTHER_FS_PATH\fR Set an arbitrary ZIM filesystem path (instead of the ZIM_PATH) .TP Other options (to be used alone): .TP \fB\-\-help | \-h\fR Display the kiwix-manage help .TP \fB\-\-version | \-v\fR Display the version of kiwix-manage and all dependences .SH SEE ALSO kiwix\-serve(1) .SH AUTHORS Kiwix team kiwix-tools-3.5.0/src/man/kiwix-search.1000066400000000000000000000010301442271166700200360ustar00rootroot00000000000000.TH KIWIX-SEARCH "1" "July 2020" "kiwix-tools" "User Commands" .SH NAME kiwix-search \- find articles using a fulltext search pattern .SH SYNOPSIS \fBkiwix-search\fR [OPTIONS] ZIM PATTERN\fR .SH DESCRIPTION .TP ZIM ZIM file to search .TP PATTERN Words or parts of words to search for in the ZIM file .TP \fB\-s\fR, \fB\-\-suggestion\fR Suggest article titles based on the PATTERN instead of a fulltext search .TP \fB\-V\fR, \fB\-\-version\fR print software version .TP \fB\-v\fR, \fB\-\-verbose\fR Give details about the search process kiwix-tools-3.5.0/src/man/kiwix-serve.1000066400000000000000000000023651442271166700177310ustar00rootroot00000000000000.TH KIWIX 1 "21 May 2012" .SH NAME kiwix\-serve \- Kiwix HTTP Server .SH SYNOPSIS .IX Header "SYNOPSIS" .br kiwix\-serve [\-\-index=INDEX_PATH] [\-\-port=PORT] [\-\-verbose] [\-\-daemon] [\-\-attachToProcess=PID] ZIM_PATH .br kiwix\-serve \-\-library [\-\-port=PORT] [\-\-verbose] [\-\-daemon] [\-\-attachToProcess=PID] LIBRARY_PATH .SH DESCRIPTION .PP Stand\-alone HTTP server for serving ZIM contents over the network. .TP \fB\-\-index=INDEX_PATH\fR Path to index folder created using \fBkiwix-install\fB. .TP \fB\-\-port=PORT\fR Port number on which the server should listen. .br By default, server listens on port 80. .TP \fB\-\-verbose\fR Enable verbose output. .TP \fB\-\-daemon\fR Run the server as a daemon. .TP \fB\-\-attachToProcess=PID\fR Shutdown the server when process numbered PID dies. .TP \fBZIM_PATH\fR ZIM file of the content to serve. .br Mandatory if not in library mode. .TP \fB\-\-library\fR Enable library mode. .br Serves the contents of a library file instead of a single ZIM file. .TP \fBLIBRARY_PATH\fR Kiwix library file path. .br Library is an XML file created using \fBkiwix-manage\fB. .SH SEE ALSO kiwix(1) kiwix\-manage(1) .SH AUTHOR Emmanuel Engelhart .br Vasudev Kamath (Manual) kiwix-tools-3.5.0/src/man/meson.build000066400000000000000000000001461442271166700175270ustar00rootroot00000000000000install_man('kiwix-manage.1', 'kiwix-search.1', 'kiwix-serve.1') subdir('fr') kiwix-tools-3.5.0/src/manager/000077500000000000000000000000001442271166700162235ustar00rootroot00000000000000kiwix-tools-3.5.0/src/manager/kiwix-manage.cpp000066400000000000000000000220331442271166700213100ustar00rootroot00000000000000/* * Copyright 2011-2019 Emmanuel Engelhart * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #include "../version.h" using namespace std; enum supportedAction { NONE, ADD, SHOW, REMOVE }; void show(kiwix::Library* library, const std::string& bookId) { try { auto& book = library->getBookById(bookId); std::cout << "id:\t\t" << book.getId() << std::endl << "path:\t\t" << book.getPath() << std::endl << "url:\t\t" << book.getUrl() << std::endl << "title:\t\t" << book.getTitle() << std::endl << "name:\t\t" << book.getName() << std::endl << "tags:\t\t" << book.getTags() << std::endl << "description:\t" << book.getDescription() << std::endl << "creator:\t" << book.getCreator() << std::endl << "date:\t\t" << book.getDate() << std::endl << "articleCount:\t" << book.getArticleCount() << std::endl << "mediaCount:\t" << book.getMediaCount() << std::endl << "size:\t\t" << book.getSize() << " KB" << std::endl; } catch (std::out_of_range&) { std::cout << "No book " << bookId << " in the library" << std::endl; } std::cout << std::endl; } /* Print correct console usage options */ void usage() { std::cout << "Usage:" << std::endl << "\tkiwix-manage LIBRARY_PATH add ZIM_PATH [OPTIONS]" << std::endl << "\tkiwix-manage LIBRARY_PATH remove ZIM_ID [ZIM_ID]..." << std::endl << "\tkiwix-manage LIBRARY_PATH show [ZIM_ID]..." << std::endl << std::endl << "Purpose:" << std::endl << "\tManipulates the Kiwix library XML file" << std::endl << std::endl << "Arguments:" << std::endl << "\tLIBRARY_PATH\tis the XML library file path." << std::endl << std::endl << "\tACTION\t\tis the pre-defined string to specify the action to run on the XML library file." << std::endl << std::endl << "\t\t\tMust be one of the following values:" << std::endl << "\t\t\t* add: add a ZIM file to the library" << std::endl << "\t\t\t* remove: remove a ZIM file from the library" << std::endl << "\t\t\t* show: show the content of the library" << std::endl << std::endl << "\tZIM_ID\t\tZIM file unique ID" << std::endl << std::endl << "\tOPTIONS\t\tCustom options for \"add\" action:" << std::endl << "\t\t\t--zimPathToSave=CUSTOM_ZIM_PATH to replace the current ZIM file path" << std::endl << "\t\t\t--url=HTTP_ZIM_URL to create an \"url\" attribute for the online version of the ZIM file" << std::endl << std::endl << "\t\t\tOther options:" << std::endl << "\t\t\t-v, --version to print the software version" << std::endl << std::endl << "Examples:" << std::endl << "\tAdd ZIM files to library: kiwix-manage my_library.xml add first.zim second.zim" << std::endl << "\tRemove ZIM files from library: kiwix-manage my_library.xml remove e5c2c003-b49e-2756-5176-5d9c86393dd9" << std::endl << "\tShow all library ZIM files: kiwix-manage my_library.xml show" << std::endl << std::endl << "Documentation:" << std::endl << "\tSource code\thttps://github.com/kiwix/kiwix-tools" << std::endl << "\tMore info\thttps://wiki.kiwix.org/wiki/Kiwix-manage" << std::endl << std::endl; } int handle_show(kiwix::Library* library, const std::string& libraryPath, int argc, char* argv[]) { if (argc > 3 ) { for(auto i=3; igetBooksIds(); for(auto& bookId: booksIds) { show(library, bookId); } } return(0); } int handle_add(kiwix::Library* library, const std::string& libraryPath, int argc, char* argv[]) { string zimPath; string zimPathToSave = "."; string url; int option_index = 0; int c = 0; int resultCode = 0; if (argc <= 3) { std::cerr << "Path to zim file to add is missing in the command line" << std::endl; return (-1); } /* Options parsing */ optind = 3; static struct option long_options[] = { {"url", required_argument, 0, 'u'}, {"zimPathToSave", required_argument, 0, 'z'}, {0, 0, 0, 0} }; bool has_option = false; while (true) { c = getopt_long(argc, argv, "cz:u:", long_options, &option_index); if (c == -1) break; has_option = true; switch (c) { case 'u': url = optarg; break; case 'z': zimPathToSave = optarg; break; } } if (optind >= argc) { std::cerr << "Path to zim file to add is missing in the command line" << std::endl; return (-1); } if (has_option && argc-optind > 1) { std::cerr << "You cannot give option and several zim files to add" << std::endl; return (-1); } kiwix::Manager manager(library); for(auto i=optind; igetBookCount(true, true); int exitCode = 0; if (argc <= 3) { std::cerr << "BookId to remove missing in the command line" << std::endl; return (-1); } if (!totalBookCount) { std::cerr << "Library is empty, no book to delete." << std::endl; return 1; } for (int i = 3; iremoveBookById(bookId)) { std::cerr << "Invalid book id '" << bookId << "'." << std::endl; exitCode = 1; } } return(exitCode); } int main(int argc, char** argv) { string libraryPath = ""; supportedAction action = NONE; kiwix::Library library; /* General argument parsing */ static struct option long_options[] = { {"version", no_argument, 0, 'v'}, {0, 0, 0, 0} }; int option_index = 0; int c; while (true && argc == 2) { c = getopt_long(argc, argv, "v", long_options, &option_index); if (c == -1) break; switch (c) { case 'v': version(); return 0; } } /* Action related argument parsing */ if (argc > 2) { libraryPath = argv[1]; string actionString = argv[2]; if (actionString == "add") action = ADD; else if (actionString == "show") action = SHOW; else if (actionString == "remove" || actionString == "delete") action = REMOVE; } /* Print usage)) if necessary */ if (libraryPath == "" || action == NONE) { usage(); return -1; } /* Try to read the file */ libraryPath = kiwix::isRelativePath(libraryPath) ? kiwix::computeAbsolutePath(kiwix::getCurrentDirectory(), libraryPath) : libraryPath; kiwix::Manager manager(&library); if (!manager.readFile(libraryPath, false)) { if (kiwix::fileExists(libraryPath) || action!=ADD) { std::cerr << "Cannot read the library " << libraryPath << std::endl; return 1; } } /* SHOW */ int exitCode = 0; switch (action) { case SHOW: exitCode = handle_show(&library, libraryPath, argc, argv); break; case ADD: exitCode = handle_add(&library, libraryPath, argc, argv); break; case REMOVE: exitCode = handle_remove(&library, libraryPath, argc, argv); break; case NONE: break; } if (exitCode) { return exitCode; } /* Rewrite the library file */ if (action == REMOVE || action == ADD) { // writeToFile return true (1) if everything is ok => exitCode is 0 if (!library.writeToFile(libraryPath)) { std::cerr << "Cannot write the library " << libraryPath << std::endl; return 1; } } return 0; } kiwix-tools-3.5.0/src/manager/meson.build000066400000000000000000000001321442271166700203610ustar00rootroot00000000000000executable('kiwix-manage', ['kiwix-manage.cpp'], dependencies:all_deps, install:true) kiwix-tools-3.5.0/src/meson.build000066400000000000000000000001041442271166700167460ustar00rootroot00000000000000subdir('manager') subdir('searcher') subdir('server') subdir('man') kiwix-tools-3.5.0/src/searcher/000077500000000000000000000000001442271166700164055ustar00rootroot00000000000000kiwix-tools-3.5.0/src/searcher/kiwix-search.cpp000066400000000000000000000070761442271166700215210ustar00rootroot00000000000000/* * Copyright 2011 Emmanuel Engelhart * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include "../version.h" using namespace std; void usage() { cout << "Usage: kiwix-search [OPTIONS] ZIM PATTERN" << endl << endl << " kiwix-search allows one to find articles based on the a fulltext search pattern." << endl << endl << " ZIM is the full path of the ZIM file." << endl << " PATTERN is/are word(s) - or part of - to search in the ZIM." << endl << endl << " -s, --suggestion\tSuggest article titles based on the few letters of the PATTERN instead of making a fulltext search. Work a bit like a completion solution." << endl << " -v, --verbose\t\tGive details about the search process" << endl << " -V, --version\t\tPrint software version" << endl; exit(1); } int main(int argc, char** argv) { /* Init the variables */ // const char *indexPath = // "/home/itamar/.www.kiwix.org/kiwix/43k0i1j4.default/6d2e587b-d586-dc6a-dc6a-e4ef035a1495d15c.index"; // const char *indexPath = "/home/itamar/testindex"; const char* zimPath = NULL; const char* search = NULL; bool verboseFlag = false; bool suggestionFlag = false; int option_index = 0; int c = 0; /* Argument parsing */ while (42) { static struct option long_options[] = {{"verbose", no_argument, 0, 'v'}, {"suggestion", no_argument, 0, 's'}, {"version", no_argument, 0, 'V'}, {0, 0, 0, 0}}; if (c != -1) { c = getopt_long(argc, argv, "Vvsb:", long_options, &option_index); switch (c) { case 'v': verboseFlag = true; break; case 'V': version(); return 0; case 's': suggestionFlag = true; break; } } else { if (optind < argc) { if (zimPath == NULL) { zimPath = argv[optind++]; } else if (search == NULL) { search = argv[optind++]; } else { cout << zimPath << endl; usage(); } } else { break; } } } /* Check if we have enough arguments */ if (zimPath == NULL || search == NULL) { usage(); } /* Try to prepare the indexing */ try { zim::Archive archive(zimPath); if (suggestionFlag) { zim::SuggestionSearcher searcher(archive); searcher.setVerbose(verboseFlag); for (const auto& r : searcher.suggest(search).getResults(0, 10) ) { cout << r.getTitle() << endl; } } else { zim::Searcher searcher(archive); searcher.setVerbose(verboseFlag); const zim::Query query(search); for (const auto& r : searcher.search(query).getResults(0, 10) ) { cout << r.getTitle() << endl; } } } catch ( const std::runtime_error& err) { cerr << err.what() << endl; exit(1); } exit(0); } kiwix-tools-3.5.0/src/searcher/meson.build000066400000000000000000000001321442271166700205430ustar00rootroot00000000000000executable('kiwix-search', ['kiwix-search.cpp'], dependencies:all_deps, install:true) kiwix-tools-3.5.0/src/server/000077500000000000000000000000001442271166700161175ustar00rootroot00000000000000kiwix-tools-3.5.0/src/server/kiwix-serve.cpp000066400000000000000000000336361442271166700211130ustar00rootroot00000000000000 /* * Copyright 2009-2019 Emmanuel Engelhart * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include #include #include #include #ifdef _WIN32 # include #else # include # include #endif #include #ifdef __APPLE__ # import # import # define MIBSIZE 4 #endif #include "../version.h" #define DEFAULT_THREADS 4 void usage() { std::cout << "Usage:" << std::endl << "\tkiwix-serve [OPTIONS] ZIM_PATH+" << std::endl << "\tkiwix-serve --library [OPTIONS] LIBRARY_PATH" << std::endl << std::endl << "Purpose:" << std::endl << "\tDeliver ZIM file(s) articles via HTTP" << std::endl << std::endl << "Mandatory arguments:" << std::endl << "\tLIBRARY_PATH\t\tXML library file path listing ZIM file to serve. To be used only with the --library argument." << std::endl << "\tZIM_PATH\t\tZIM file path(s)" << std::endl << std::endl << "Optional arguments:" << std::endl << std::endl << "\t-h, --help\t\tPrint this help" << std::endl << std::endl << "\t-a, --attachToProcess\tWxit if given process id is not running anymore" << std::endl << "\t-d, --daemon\t\tDetach the HTTP server daemon from the main process" << std::endl << "\t-i, --address\t\tListen only on this ip address, all available ones otherwise" << std::endl << "\t-M, --monitorLibrary\tMonitor the XML library file and reload it automatically" << std::endl << "\t-m, --nolibrarybutton\tDon't print the builtin home button in the builtin top bar overlay" << std::endl << "\t-n, --nosearchbar\tDon't print the builtin bar overlay on the top of each served page" << std::endl << "\t-b, --blockexternal\tPrevent users from directly accessing external links" << std::endl << "\t-p, --port\t\tTCP port on which to listen to HTTP requests (default: 80)" << std::endl << "\t-r, --urlRootLocation\tURL prefix on which the content should be made available (default: /)" << std::endl << "\t-s, --searchLimit\tMaximun number of zim in a fulltext multizim search (default: No limit)" << std::endl << "\t-t, --threads\t\tNumber of threads to run in parallel (default: " << DEFAULT_THREADS << ")" << std::endl << "\t-v, --verbose\t\tPrint debug log to STDOUT" << std::endl << "\t-V, --version\t\tPrint software version" << std::endl << "\t-z, --nodatealiases\tCreate URL aliases for each content by removing the date" << std::endl << "\t-c, --customIndex\tAdd path to custom index.html for welcome page" << std::endl << "\t-L, --ipConnectionLimit\tMax number of (concurrent) connections per IP (default: infinite, recommended: >= 6)" << std::endl << std::endl << "Documentation:" << std::endl << "\tSource code\t\thttps://github.com/kiwix/kiwix-tools" << std::endl << "\tMore info\t\thttps://wiki.kiwix.org/wiki/Kiwix-serve" << std::endl << std::endl; } std::string loadCustomTemplate (std::string customIndexPath) { customIndexPath = kiwix::isRelativePath(customIndexPath) ? kiwix::computeAbsolutePath(kiwix::getCurrentDirectory(), customIndexPath) : customIndexPath; if (!kiwix::fileReadable(customIndexPath)) { throw std::runtime_error("No such file exist (or file is not readable) " + customIndexPath); } if (kiwix::getMimeTypeForFile(customIndexPath) != "text/html") { throw std::runtime_error("Invalid File Mime Type " + kiwix::getMimeTypeForFile(customIndexPath)); } std::string indexTemplateString = kiwix::getFileContent(customIndexPath); if (indexTemplateString.empty()) { throw std::runtime_error("Unreadable or empty file " + customIndexPath); } return indexTemplateString; } inline std::string normalizeRootUrl(std::string rootUrl) { while ( !rootUrl.empty() && rootUrl.back() == '/' ) rootUrl.pop_back(); while ( !rootUrl.empty() && rootUrl.front() == '/' ) rootUrl = rootUrl.substr(1); return rootUrl.empty() ? rootUrl : "/" + rootUrl; } volatile sig_atomic_t waiting = false; volatile sig_atomic_t libraryMustBeReloaded = false; #ifndef _WIN32 void handle_sigterm(int signum) { if ( waiting == false ) { _exit(signum); } waiting = false; } void handle_sighup(int signum) { libraryMustBeReloaded = true; } typedef void (*SignalHandler)(int); void set_signal_handler(int sig, SignalHandler handler) { struct sigaction sa; sigaction(sig, NULL, &sa); sa.sa_handler = handler; sigaction(sig, &sa, NULL); } void setup_sighandlers() { set_signal_handler(SIGTERM, &handle_sigterm); set_signal_handler(SIGINT, &handle_sigterm); set_signal_handler(SIGHUP, &handle_sighup); } #endif uint64_t fileModificationTime(const std::string& path) { #if defined(_WIN32) && !defined(stat) #define stat _stat #endif struct stat fileStatData; if ( stat(path.c_str(), &fileStatData) == 0 ) { return fileStatData.st_mtime; } return 0; #ifdef _WIN32 #undef stat #endif } uint64_t newestFileTimestamp(const std::vector& paths) { uint64_t t = 0; for ( const auto& p : paths ) { t = std::max(t, fileModificationTime(p)); } return t; } bool reloadLibrary(kiwix::Manager& mgr, const std::vector& paths) { try { std::cout << "Loading the library from the following files:\n"; for ( const auto& p : paths ) { std::cout << "\t" << p << std::endl; } mgr.reload(paths); std::cout << "The library was successfully loaded." << std::endl; return true; } catch ( const std::runtime_error& err ) { std::cerr << "ERROR: " << err.what() << std::endl; std::cerr << "Errors encountered while loading the library." << std::endl; return false; } } int main(int argc, char** argv) { #ifndef _WIN32 setup_sighandlers(); #endif std::string rootLocation = "/"; kiwix::Library library; unsigned int nb_threads = DEFAULT_THREADS; std::vector zimPathes; std::string libraryPath; std::string rootPath; std::string address; std::string customIndexPath=""; std::string indexTemplateString=""; int serverPort = 80; int daemonFlag [[gnu::unused]] = false; int libraryFlag = false; bool noLibraryButtonFlag = false; bool noSearchBarFlag = false; bool noDateAliasesFlag = false; bool blockExternalLinks = false; bool isVerboseFlag = false; bool monitorLibrary = false; unsigned int PPID = 0; int ipConnectionLimit = 0; int searchLimit = 0; static struct option long_options[] = {{"daemon", no_argument, 0, 'd'}, {"help", no_argument, 0, 'h'}, {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {"library", no_argument, 0, 'l'}, {"nolibrarybutton", no_argument, 0, 'm'}, {"nodatealiases", no_argument, 0, 'z'}, {"nosearchbar", no_argument, 0, 'n'}, {"blockexternallinks", no_argument, 0, 'b'}, {"attachToProcess", required_argument, 0, 'a'}, {"port", required_argument, 0, 'p'}, {"address", required_argument, 0, 'i'}, {"threads", required_argument, 0, 't'}, {"urlRootLocation", required_argument, 0, 'r'}, {"customIndex", required_argument, 0, 'c'}, {"monitorLibrary", no_argument, 0, 'M'}, {"ipConnectionLimit", required_argument, 0, 'L'}, {"searchLimit", required_argument, 0, 's'}, {0, 0, 0, 0}}; std::set usedOptions; /* Argument parsing */ while (true) { int option_index = 0; int c = getopt_long(argc, argv, "hzmnbdvVla:p:f:t:r:i:c:ML:s:", long_options, &option_index); if (c != -1) { auto insertRes = usedOptions.insert(c); if (!insertRes.second) { std::cerr << "Multiple values of same option are not allowed." << std::endl; exit(1); } switch (c) { case 'h': usage(); return 0; case 'd': daemonFlag = true; break; case 'v': isVerboseFlag = true; break; case 'V': version(); return 0; case 'l': libraryFlag = true; break; case 'n': noSearchBarFlag = true; break; case 'b': blockExternalLinks = true; break; case 'z': noDateAliasesFlag = true; break; case 'm': noLibraryButtonFlag = true; break; case 'p': serverPort = atoi(optarg); break; case 'a': PPID = atoi(optarg); break; case 'i': address = std::string(optarg); break; case 't': nb_threads = atoi(optarg); break; case 'r': rootLocation = std::string(optarg); break; case 'c': customIndexPath = std::string(optarg); break; case 'M': monitorLibrary = true; break; case 'L': ipConnectionLimit = atoi(optarg); break; case 's': searchLimit = atoi(optarg); break; case '?': usage(); return 2; } } else { if (optind < argc) { if (libraryFlag) { libraryPath = argv[optind++]; } else { while (optind < argc) zimPathes.push_back(std::string(argv[optind++])); } } break; } } /* Print usage)) if necessary */ if (zimPathes.empty() && libraryPath.empty()) { usage(); exit(1); } /* Setup the library manager and get the list of books */ kiwix::Manager manager(&library); std::vector libraryPaths; if (libraryFlag) { libraryPaths = kiwix::split(libraryPath, ";"); if ( !reloadLibrary(manager, libraryPaths) ) { exit(1); } /* Check if the library is not empty (or only remote books)*/ if (library.getBookCount(true, false) == 0) { std::cerr << "The XML library file '" << libraryPath << "' is empty (or has only remote books)." << std::endl; } } else { std::vector::iterator it; for (it = zimPathes.begin(); it != zimPathes.end(); it++) { if (!manager.addBookFromPath(*it, *it, "", false)) { std::cerr << "Unable to add the ZIM file '" << *it << "' to the internal library." << std::endl; exit(1); } } } auto libraryFileTimestamp = newestFileTimestamp(libraryPaths); auto curLibraryFileTimestamp = libraryFileTimestamp; #ifndef _WIN32 /* Fork if necessary */ if (daemonFlag) { pid_t pid; /* Fork off the parent process */ pid = fork(); if (pid < 0) { exit(1); } /* If we got a good PID, then we can exit the parent process. */ if (pid > 0) { exit(0); } } #endif kiwix::UpdatableNameMapper nameMapper(library, noDateAliasesFlag); kiwix::Server server(&library, &nameMapper); if (!customIndexPath.empty()) { try { indexTemplateString = loadCustomTemplate(customIndexPath); } catch (std::runtime_error& e) { std::cerr << "ERROR: " << e.what() << std::endl; exit(1); } } server.setAddress(address); server.setRoot(rootLocation); server.setPort(serverPort); server.setNbThreads(nb_threads); server.setVerbose(isVerboseFlag); server.setTaskbar(!noSearchBarFlag, !noLibraryButtonFlag); server.setBlockExternalLinks(blockExternalLinks); server.setIndexTemplateString(indexTemplateString); server.setIpConnectionLimit(ipConnectionLimit); server.setMultiZimSearchLimit(searchLimit); if (! server.start()) { exit(1); } std::string url = "http://" + server.getAddress() + ":" + std::to_string(server.getPort()) + normalizeRootUrl(rootLocation); std::cout << "The Kiwix server is running and can be accessed in the local network at: " << url << std::endl; /* Run endless (until PPID dies) */ waiting = true; do { if (PPID > 0) { #ifdef _WIN32 HANDLE process = OpenProcess(SYNCHRONIZE, FALSE, PPID); DWORD ret = WaitForSingleObject(process, 0); CloseHandle(process); if (ret == WAIT_TIMEOUT) { #elif __APPLE__ int mib[MIBSIZE]; struct kinfo_proc kp; size_t len = sizeof(kp); mib[0] = CTL_KERN; mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = PPID; int ret = sysctl(mib, MIBSIZE, &kp, &len, NULL, 0); if (ret != -1 && len > 0) { #else /* Linux & co */ std::string procPath = "/proc/" + std::to_string(PPID); if (access(procPath.c_str(), F_OK) != -1) { #endif } else { waiting = false; } } kiwix::sleep(1000); if ( monitorLibrary ) { curLibraryFileTimestamp = newestFileTimestamp(libraryPaths); libraryMustBeReloaded += curLibraryFileTimestamp > libraryFileTimestamp; } if ( libraryMustBeReloaded && !libraryPaths.empty() ) { libraryFileTimestamp = curLibraryFileTimestamp; reloadLibrary(manager, libraryPaths); nameMapper.update(); libraryMustBeReloaded = false; } } while (waiting); /* Stop the daemon */ server.stop(); } kiwix-tools-3.5.0/src/server/meson.build000066400000000000000000000001541442271166700202610ustar00rootroot00000000000000 sources = ['kiwix-serve.cpp'] executable('kiwix-serve', sources, dependencies:all_deps, install:true) kiwix-tools-3.5.0/src/version.h000066400000000000000000000022601442271166700164470ustar00rootroot00000000000000/* * Copyright 2009-2016 Emmanuel Engelhart * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ #ifndef _KIWIX_TOOLS_VERSION_H_ #define _KIWIX_TOOLS_VERSION_H_ #ifndef KIWIX_TOOLS_VERSION #define KIWIX_TOOLS_VERSION "undefined" #endif #include #include #include void version() { std::cout << "kiwix-tools " << KIWIX_TOOLS_VERSION << std::endl << std::endl; kiwix::printVersions(); std::cout << std::endl; zim::printVersions(); } #endif //_KIWIX_TOOLs_VERSION_H_