pax_global_header00006660000000000000000000000064133671211740014517gustar00rootroot0000000000000052 comment=1965c5a0da4369f5f5306b57d9545d9443e5b1b3 tootle-0.2.0/000077500000000000000000000000001336712117400130245ustar00rootroot00000000000000tootle-0.2.0/.gitignore000066400000000000000000000000611336712117400150110ustar00rootroot00000000000000_ignore build build.sh build-po.sh install.sh *~ tootle-0.2.0/.travis.yml000066400000000000000000000003711336712117400151360ustar00rootroot00000000000000--- language: node_js node_js: - lts/* sudo: required services: - docker addons: apt: sources: - ubuntu-toolchain-r-test packages: - libstdc++-5-dev install: - npm i -g @elementaryos/houston script: - houston ci tootle-0.2.0/LICENSE000066400000000000000000001045131336712117400140350ustar00rootroot00000000000000 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 . tootle-0.2.0/README.md000066400000000000000000000034151336712117400143060ustar00rootroot00000000000000![Tootle](https://user-images.githubusercontent.com/37731582/39933812-45d8149a-5544-11e8-9bf4-6d78b1fdb29c.png) Simple [Mastodon](https://github.com/tootsuite/mastodon) client designed for elementary OS. ![Tootle Screenshot](https://raw.githubusercontent.com/bleakgrey/tootle/master/data/screenshot.png) ## Building and Installation [![Get it on AppCenter](https://appcenter.elementary.io/badge.svg)](https://appcenter.elementary.io/com.github.bleakgrey.tootle) Download on Flathub First of all you'll need some dependencies to build and run the app: * meson * valac * libgtk-3-dev * libsoup2.4-dev * libgranite-dev * libjson-glib-dev Then run these commands to build and install it: meson build --prefix=/usr cd build sudo ninja install com.github.bleakgrey.tootle ## Contributing If you feel like contributing, you're always welcome to help the project in many ways: * Reporting any issues * Suggesting ideas and functionality * Submitting pull requests * Donating with [LiberaPay](https://liberapay.com/bleakgrey/) to help project development and keeping the developer happy Donate using Liberapay ## Credits * Tootle Logo by [@CallMeFib3r](https://github.com/CallMeFib3r) * Medel typeface by Ozan Karakoc * French translation by [@Larnicone](https://github.com/Larnicone) * Polish translation by [@m4sk1n](https://github.com/m4sk1n) * German translation by [@koyuawsmbrtn](https://github.com/koyuawsmbrtn) * Simplified Chinese translation by [@gloomy-ghost](https://github.com/gloomy-ghost) tootle-0.2.0/data/000077500000000000000000000000001336712117400137355ustar00rootroot00000000000000tootle-0.2.0/data/app.css000066400000000000000000000010571336712117400152320ustar00rootroot00000000000000.titlebar.compact { padding: 0 6px; } .mode .toggle{ border-radius:0px; border-top:none; border-bottom:none; padding:10px; margin:0px; } .button_avatar{ padding:0; border:0; box-shadow:none; background:none; } .toot-text, .toot-text text{ background-color: transparent; } .header{ background-size: cover; background-position: 50%; opacity: 0.15; } .attachment{ border-radius: 3px; } .relationship { background: rgba (0,0,0,.5); padding: 6px; border-radius: 3px; color: #fff; } tootle-0.2.0/data/com.github.bleakgrey.tootle.appdata.xml.in000066400000000000000000000124751336712117400240160ustar00rootroot00000000000000 com.github.bleakgrey.tootle CC0-1.0 GPL-3.0+ Tootle Lightning fast client for Mastodon

Tootle is a client for the world’s largest free, open-source, decentralized microblogging network with real-time notifications and multiple accounts support.

Mastodon is lovely crafted with power and speed in mind, resulting in a free, independent and popular alternative to the centralized social networks.

Anyone can run a server of Mastodon. Each server hosts individual user accounts, the content they produce, and the content they are subscribed. Every user can follow each other and share their posts regardless of their server.

com.github.bleakgrey.tootle bleak_grey https://github.com/bleakgrey https://github.com/bleakgrey/tootle/issues https://liberapay.com/bleakgrey/donate none none none none none none none none none none none none none none none none none none none none moderate none moderate none intense none none https://raw.githubusercontent.com/bleakgrey/tootle/master/data/screenshot.png https://raw.githubusercontent.com/bleakgrey/tootle/master/data/screenshot2.png https://raw.githubusercontent.com/bleakgrey/tootle/master/data/screenshot3.png https://raw.githubusercontent.com/bleakgrey/tootle/master/data/screenshot4.png
  • Added Watchlist
  • Added Redraft support
  • Added Pinning support
  • Added Simplified Chinese and German translations
  • Added --hidden Start Flag
  • Added Shortcuts and Back mouse button support
  • Changed Notifications screen behavior
  • Fixed minor bugs
  • Added Russian, French and Polish translations
  • Added Direct timeline
  • Added support for custom character limit
  • Added support for streaming all timelines
  • Added tooltips for image attachments
  • Added remove action for attachments
  • Changed behavior for mentioning users
  • Changed behavior for missing image attachments
  • Fixed minor bugs
  • Initial release
#F5F8FF #413F58
tootle-0.2.0/data/com.github.bleakgrey.tootle.desktop.in000066400000000000000000000005161336712117400232470ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=Tootle Comment=Mastodon Client GenericName=Mastodon Client Exec=com.github.bleakgrey.tootle Icon=com.github.bleakgrey.tootle Terminal=false Categories=GNOME;GTK;Network; Keywords=toot;mastodon;social;network;post; X-GNOME-Gettext-Domain=com.github.bleakgrey.tootle X-GNOME-UsesNotifications=true tootle-0.2.0/data/com.github.bleakgrey.tootle.gresource.xml000066400000000000000000000005511336712117400237650ustar00rootroot00000000000000 app.css light.css dark.css logo128.png empty_state.png tootle-0.2.0/data/com.github.bleakgrey.tootle.gschema.xml000066400000000000000000000042571336712117400234050ustar00rootroot00000000000000 0 Current Account Do not edit or it shall set your house on fire true Display desktop notifications false Always monitor new notifications false Cache images to reduce network load 64 Cache size Sets the maximum size of cached content true Real-time timelines Update timelines in real-time false Real-time public timelines Update local and federated timelines in real-time. May clog up memory on busy instances. false Sets application theme to dark 500 Default character limit Change this if your instance supports more than 500 characters in posts '' Watched Users Comma separated list of usernames to notify you about '' Watched Hashtags Comma separated list of hashtags to notify you about tootle-0.2.0/data/dark.css000066400000000000000000000003461336712117400153730ustar00rootroot00000000000000@define-color colorAccent #c92e34; @define-color colorPrimary #35393c; .header-counters{ background: rgba(0,0,0,.2); } .attachment{ background: rgba (255,255,255,.15); } .card{ background: rgba (255,255,255,.15); } tootle-0.2.0/data/empty_state.png000066400000000000000000000132111336712117400167770ustar00rootroot00000000000000PNG  IHDRww99ߊsBIT|d pHYs֕*tEXtSoftwarewww.inkscape.org<IDATxwGǫz_-Y1xa=Cd93'g܇990s!lL`f–l꽻GZȒ JvuU@ϟ'msQ^t-c^?aA$ LLLd]_| ^ccc] @<ϣ&&&8A|ӡP㐭nHcYxw]t]t]t]t]t]t]t]t]t]tm!BOOZUp?DN#_utzn =0 mvfϞ=F>}z/>:Mӽ{=gϞp#ѡnT=1=ztMIeB һMf׮]G]Eq 0l͛&&&V<~DX]J Dry7;vl]D8NUʓDO<:6}@Q7{O:B;`#n= !i#ao9uԠ_;675/,[ dY}CEլYG&s ˲q0a0yyzzf;6Çqn83,o-Ny^:uea*Oò,a{yN C(p(hꈻW ܋a-r90c* w[aGMC$I\3 ?~|4 w9~xaR$IC4LNN 8mE宓$I}w]%w6,ǡ$I+!Ix-p8LNOO B;իW?u]T|'` a~`=˃8yС ?yDΟ?_X+, ?̙30lUN+,k!P-Bȝa\3gC Ν;7?eY^#gY={`__qaeC\Tʇaܽ{ܹs;H쩖7 m^pA#bΝD"'I ky8&H4YC5)chhh1+W[srUӏx(jqiJkJܩFFF(z}릲l צ'N|}>}zhhhR>PMaLӴe\=ztÞ={Y>׍Ƣ?Bo&S _D"T+crrr`ll#au]UӴY0aB$IH bq50M},vݷo_ρyEU2L&yYz6իs߳gGpIIA|Zq]WUUu6|JCU+^^^U+4ͬiY"`3 #{80Tm;8]7~$Iy#Hu=Q|(oDQ8|q>w,nq!'1 %{Xve <](I4MKU{pZ.͛g.+DQu} e Ll*aPAi*0VYTYʴ,˴,ˬ%oŝ:وbii}{C$Ig$>?zaW6]46-bYVk42H4ZKut<Ӷ)@MV. hQ}/A{.By,k1NϚ$IKd =)B:+I/mmۯTUf8G!VFp8bY= LA{n4S,d2y)+7Tj|AF bqe=*n8NZ%j`SUryq<~h:q,z58 BMCu=0E,8N)C?m$I8ӕhZmڮ޻wOuAq:0XCXŮbۖeibYi(ײeِ Wcv*No&m'.ܾ}y`ǭxeR:r;j)q" 0 1ɍĥ( `0C;qCOƾ4͌8+vkre`p0La$IOsɶX:iZyN6/ta(}L歓UU LdCdnF**k׮$I͛7_ X( OoܸqBk-0Z.RqC"GUU\0,{28ۦ(ʳv BEq'&&~0Xeuy"x677xlllp``d̖u]eyyv0fDQ[N"y.a$Ix]m BI Tt;QQx<~wÆ q0`0xdp1>֚=|Pint:Rq#>MÃ(??Qbffĭ8Sӟ뺫掩iZ5 i3B1L߯릓KKK躞/JW-< Tp 7~FQ]]q&DMjxUȣ ۶ mî+ڙk/5mBPU΋/<EUtMP>2Ma3W$WA Fg2ދWlc ڍK!uѳg. ~V-yTQ^T(q\i>Pq((EQ%]^EUU_zBh-M:_1M D~aoEĕe١Z͒4Mݿ's5 B,Z(B(*zf…R硥+?b 4g |ww/ Q EQLwwS lcFlvviiB2|L&gAGvA+eQ_2gƊqζ헥̅yTU]B5QPžp8{a~ h4z!H:eYe!_U/*L4☙3<<aW<BIÁ@E8wxq_:gfK[s N|K.=2Mafȅb&qB:EhɅaYMղ,0GȲ.^˭[?eauZr ˲^b˦ipQQ")j7l[oqlv!dZ)-auPCv'H$E H+0ԧ[l۶u](VRW|0T\5.9۶i:\-Ew"m(H EyR4AJLfƲn5#鴳D$|yZ8c$I;m۩L&S(]cBafRnǩl^fY@`32#E9t >˲prrr(w`x)&qzr]7kvLӴbGFa04Vl<䉡{ʕ!Q}ﺮb>p۶JvFr3̋ծ5&'L&~rrZpL3]4ԦW_ͫ*0;eYŋunj$,PQm@w@\E/^|L&zdU\E.]zH$ZޥO:Uݘν///7M:ҥKO:7\v#piеkמFuikG v狋k]t-Oѻ?q^~ųg[U-^>ydmXϴ7nM6m'ůk»ƍ>}ħKV*p؃wnm#.ܾ}{:7޽pІwލϻ)h'l۶p ;wt qӽsNjnnӃ h9Ͻ{m n+y1}5a8-a׭[$Iߜx image/svg+xmltootle-0.2.0/data/icons/16/000077500000000000000000000000001336712117400152765ustar00rootroot00000000000000tootle-0.2.0/data/icons/16/com.github.bleakgrey.tootle.svg000066400000000000000000000155601336712117400233360ustar00rootroot00000000000000 image/svg+xmltootle-0.2.0/data/icons/24/000077500000000000000000000000001336712117400152755ustar00rootroot00000000000000tootle-0.2.0/data/icons/24/com.github.bleakgrey.tootle.svg000066400000000000000000000220771336712117400233360ustar00rootroot00000000000000 image/svg+xmltootle-0.2.0/data/icons/32/000077500000000000000000000000001336712117400152745ustar00rootroot00000000000000tootle-0.2.0/data/icons/32/com.github.bleakgrey.tootle.svg000066400000000000000000000223631336712117400233330ustar00rootroot00000000000000 image/svg+xmltootle-0.2.0/data/icons/48/000077500000000000000000000000001336712117400153035ustar00rootroot00000000000000tootle-0.2.0/data/icons/48/com.github.bleakgrey.tootle.svg000066400000000000000000000224701336712117400233410ustar00rootroot00000000000000 image/svg+xmltootle-0.2.0/data/icons/64/000077500000000000000000000000001336712117400153015ustar00rootroot00000000000000tootle-0.2.0/data/icons/64/com.github.bleakgrey.tootle.svg000066400000000000000000000221311336712117400233310ustar00rootroot00000000000000 image/svg+xmltootle-0.2.0/data/icons/LICENSE000066400000000000000000000020541336712117400160560ustar00rootroot00000000000000MIT License Copyright (c) 2018 CallMeFib3r Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. tootle-0.2.0/data/light.css000066400000000000000000000003311336712117400155530ustar00rootroot00000000000000@define-color colorAccent #9aa7c8; @define-color colorPrimary #9aa7c8; .header-counters{ background: rgba(255,255,255,.4); } .attachment{ background: rgba (255,255,255,.8); } .card{ background: #fff; } tootle-0.2.0/data/logo128.png000066400000000000000000000132061336712117400156400ustar00rootroot00000000000000PNG  IHDR>a pHYs  tEXtSoftwareAdobe ImageReadyqe<IDATx]ylyfy-J(JDy>-l(vG.&?Z(?mR Is!˵%ʲnHH-Ǿ-g93;כy3;3;~YIJ I$% $$@RHJII )I$% |%fWT׽#4̔,װbx\ObN%ϙ}?5T[6+]VeU555PP8vSGL4C*lj- 1mQ ?|_wt܃+_oˋߧ x 4۾w~8+;FvCF9#=>G Ml>c, ̚|> ,@Vfljl,7o=Cy'LB2s u3 <H/I9:nTYUsRnm%GbNJax$]l1T=C?VWVo/CA)q HAJcUmտ@l;0 յm젞ngϞ;#8:nSf ,]3!zI7̔LLLR %k~v"W2~Kmߥle;<QO-H Lt?dπs~#򙂡9=8;0%Wu\]WKJb'8,z1s&{uouGu]u@i DukD,EŪ?ς+t9[8k*X2_3E|L2<PlN<+D sdNdz^R?`yndV~c%z:v3"=≍ct樄M`I)/ot:YUj*JaZq5 g[ O'=o*^̌4j} c6m inlC'H<G؂0z̐=3vm^x-ʇ nxx- 4Sx4~d| 0|߰|)|j!6Sq5P`m5#3@= \@mTy@z{Be?Nh$ași9a ||7n $W}:-+ *vc o)\o?~>W.GB:n`, '{TE*~wvSNeWhA*Xec8Wc{orC *ˊYgb[,  ej!G`ph9 V }і/l0 xy/K0S3˝z#HS ȀX@7+:-*=Ip$ TM=T|T, @*|;Z9|YMw{z=;F}AyPDWu%9sLWvyձ jHϟSkB]BOѨ MH"Nksdq"ȵzC'Q8V>J9  b?/=E7QW;¹wh!҇A~K"C݆wnW}G_@9R(FI!,tضY탤:C?cW,6wc$8Ak{6|ڷ6ilL[מܿk'6ІF2P{=vBɜ|p;&S’A6fEٶ;E,Ce+BE5 <<;R: \ 6^W\*ebC lq,D|[%{\cUYfN0Swv1W>F'O]I\Wf Fc1,Sd3'xBG ۨ |sL=s:_jԽ=}4rd,MYO0 g9+%z'DXbؼ|oe`(*L ({>7,0pţN_V ruɠb^d/9 a _xxPVRU|˽qu&b,`tvG*ݽ^1! 'fx~]pDhoTq@H6JxF>MSξg }t7=T )cV~6uq7_sҲ@˥vQsef)y6qD2Y:S˫pg iY`)l) ؕ?lSڱ LOKݛ`Um<]mkW8R9--kk|1jce2Y܎,}5G,{~ƒ;Y/`&8#r7?w/ nu^zn[0z~"- tq>|[0j+J Av1\~] Dpv`y(81S׬` >mFA>D4NV>gz?T6R<雽CF0Lz&pӍkB, 'EbF@ !6gjm;h-@_PJ_Y@ kL7U:q[Pǿ )U+z9Ws:6>$9bҿzsk(IaH@@*}hVnj b]:b~ DJ+eQp/Qm .vu%,Y0C@Clд){Mӽ_Q~{'aH081b0̉x̬v Ģm#?k  %seĜ^wWOXm_jx?0wlj - ^<_owO(xzOO-ש(X?0/S<CwEN ķi))>F ćX8/$=?u~L07Ol*Z'U @<@vNn__CҶ~=ˇpп58E5\o՝_n>kY!'+S|m on۲ u՛m'{!-5E~ZՋJضD{DMOOWq{nz ,`h[N}xd2h5Y%,gngC~eKB^^y{qșY04;?X=}d:Ο X>=]{-w.Ɔ&_̞IvC榦eЏ!ռYcP&i5dv YA#j48Ad2cOVo^͒kJ(lq%1 $+J[85-c`ࣞc&`wT(P S@ tϠ26{}e\RH;TiG^qd`[L]"kt];@I= hʓcj\^+]wTp^R|fǭ۶/ sQQQQ>+uj"nisXG1 R@Q/yi:=Y{7RUD$lO;eh8R<mx8ǧ@JII$9Fg;{n3> ڞ0«p^K. 3 c#>(8S{=T |D*o=N# $ $$@RHL_qsIENDB`tootle-0.2.0/data/meson.build000066400000000000000000000021721336712117400161010ustar00rootroot00000000000000icon_sizes = ['16', '24', '32', '48', '64', '128'] foreach i : icon_sizes install_data( join_paths('icons', i, meson.project_name() + '.svg'), install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps') ) install_data( join_paths('icons', i, meson.project_name() + '.svg'), install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i + '@2', 'apps') ) endforeach install_data( meson.project_name() + '.gschema.xml', install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'glib-2.0', 'schemas') ) i18n.merge_file( input: meson.project_name() + '.desktop.in', output: meson.project_name() + '.desktop', po_dir: join_paths(meson.source_root(), 'po'), type: 'desktop', install: true, install_dir: join_paths(get_option('datadir'), 'applications') ) i18n.merge_file( input: meson.project_name() + '.appdata.xml.in', output: meson.project_name() + '.appdata.xml', po_dir: join_paths(meson.source_root(), 'po'), install: true, install_dir: join_paths(get_option('datadir'), 'metainfo') ) tootle-0.2.0/data/screenshot.png000066400000000000000000005151531336712117400166320ustar00rootroot00000000000000PNG  IHDR`%ԉO"iCCPiccxڭgPͷ{f 69l2s9K69g$+DP@@DAEAT1`E.=Uԭ{?ܪW@$520*f *:1܈I,,`bR56~N\-Ā@ OՃ/5%1vWww}P]|WC*x']m?tЁQ_&2##J !raf~90 "wrJm! $@s$2ScbBBJ 2tݲΉ1Ld 3 !,EMLՒf1C̄fdL\`L6Ehǐ%-1a~F2A f<ݟnO Kfҍcb膉aIa1ѲΡLȰ&]YN':6&>qwͿY[ie 7\L|- &/@>dp "Z& c;;vvOhϏ9 Ʈ=F( o/ z pȻ*v@ p{ ! D.Kr@(R T*P@hm >0]-%6{K3p{px . 2f.Q Ā]^vM) t2~ r@.8 A(P P @5u4Fp4SVA8 :A8A}  0 F( 0&MpL;. ̃<X w> M[7A0PBx 2DX!* N x!~HC$Cd!9HR!H Ҁ4!mH҃ C2 l!{r\=yBސ/!&BP$ @qP%C>(eA9PTCa:BP%T@uP5A ::sP7 A t CtnA]hf#hz-BK hz Bk{# }6 0S`*s\0 B,KR ,+ʰ*k:læl# 'p p Ip g8>\ WUp-\7Mp3 nCUx[$<߃g<~//W*x ކw0"!!G029"BB"FSapD \o"D""ш8D""F" bD 8QC@4!mDq1A!wS2%5-=b($I@RT$ ɅC "bHR)TF!5H1iE:"]nH//2D"#1d22 F#"%RdY<D. ϑ+U;:+r ($ "((6%F(Y"JAQ(k= DP0T*JCerPBa1T9U:jF:QQPQCuM=jZAޣ>~Ƣh4; ͇BhY"ZCVh;3 CCёXt": AKХ*t݌nGw{Kaz}}^D@FCcaH*ËĈb$1EF 1X`l1W' Da0ɘtL&S9)Ta0'1-3s +k $1%f`Xb9|X!8V+UjbX - cXlv6 -–`˰)lۃaGI=c2v !pX Gqq8 Np68G+ Epɸt\wW5Zqgq=5.>n{[}}ma<O³xQ</Wkx+#|&>_/k|?KWwO oD* @%H m!`Kp&xApB,!A%JZIB+K$ n& 3GEKa1DMʼn2D%QhJ&:݈> b81L$Gz)b;<8D#"N_׉$%I4/I$I#IF$ =iɛ@ #ŐI|qQxDԹ ,\\)\9\ʸZs rqzĵkMfp+qksrqssGp'r>}"($37ܟx<$:2.'O OO O!rlxxy%xxxMxxyx#yxxxxxx{xxy>]#|||||^|LX}||%||:{ȷ̷/?/ȯoßƟ__"5_x@@@@@@@@U_b|J:Nނ!K{ |&V_:F3*t}݅G'ѳJz~>F/W_BH!PP~"rF~QBB/> F Syńuͅ}Ä+ ~"FHH>"EDEDFD<y).K%"'*),/j-* -&Z z\^]OtDZ*& S3cŊe!6#(*MlG )."./-n.,'!"/~L^]O|T+8 DDDQ:6>Q%^K|ؖKrHHKjKZHHL< Y*yBE3$$70eH2T ['#ff0Z]5 AKJTJQJOJM*H*N*STTTUIyWR_J9EݥY҇k[{GJ?~#M!Hʨx˄$9!sVfPf\fVfY̖,F]VHV^VGRU6H6NvlllkӲOed7rrr2rrr.rr1rrZzFʽ۔Gȳ kɛ/_,_#&'?&?#L/BBB1 n*ݤݭ==IYG@GVGWV['R'CXNeI':t~tuպmuoqIԫkӻwSo^oU>FS_B_]\M?D?UPZ]Pc5_8n)-+OtbzN+S >5$ 551n/ EEEE%IE;,–ʖ,-,YZZXnXlrʭZ.ZݶzjjǚZZ::uuuֿ֫l6|6r66N6A66666636/mۢmmmummml ll^}niiǰӶ󳋷˷;c7d7eliaϰ׶ko_`_ea~7CCAZ.YW?q|򎆎.!i{o8;9q8 ;8;y:E9e;:8 :qZrtpf88;8'9:9syy˅BwQv1sptr)uiqtuj=z{0)sbOϞ= {Juspvsw-pqtqs}FryEUq6.n^~}΃C##ˣ̣ǴKMO'ggggW?^^^^^^1^y^U^gFV~{SEսz'zz{w{^|>>>L}>%>||,|*zFVvc K+;w׽轼{u7wo޳{G>ػw۟/_f!`Pp3i@T O|IG`t`^`u`WX| (#H: hOPxPVPEPGHЃL6&tf23evU,-s;,\|5x6mv5D2D79$4dHYș!k!;R{BCC+Cφ^ }!  3s ;64s8:/\)"'9H|sow8d< ^%l%&J&'&F%'%&N|#$Tԝt3i)i3,\|>fRF 1E4E;)%<%':;fRf*)U,U'%5"576'vԟi444״贂i+igs_ܾ}M{9ғK[Ӈg23T3l3]3:.}S37?i-?ڿRϲ ʪκPr999v99Y9U99r^ʥJz&m})Gs ˫˛{73_!"?_~Y~ggς悫 >:u@䁂'\<0s` |Aۃ!=xૃۅ  o>/*b+)2++J-:^tFRяC,9|3-(K{'?-8L>,yG;xx#G9sgG~HtLzTԩS-zviiӶNn:}ͬͲ͖͗5m!HdԵ > 陀3ԝ<̗rTyGPGvGCogYʞ:r6ɳW>9SӶ3`gsΥ]\]]N]1]tMtis;xswϭG9op|&uKu[t3sv?CQq93޳ zz{=z{{{z~ qB '. ]x|aOϾ/oU?/د՟_?y< 3`92P0pzEދ.&],sŏAƠ s0oipdKܗ4.^JTz /_ο|CCZCCCC}B"{J+WƯ\ү_qꥫ W7iNqG O 0FGG FGF^QQQK ?Ѯ\skdƬNJn.zz'^_ ^7o޸tcƏqq=IgǿNN(L8LL8715&M7y--[BnzkۨۢMnλ}/'IIIɜɦw;~w4|g]w=qwݿSSzSSNL O-M֟Κn^޹Ggpo{']b1 ɝ95s}f>}[O35 -=3{{~Nzf.r\>}0C]Ry*U+^CE^y]ןPߨq}7˫jjj׷ozM{ە5ԚZѵ޵k?qy.]wk ;Ox_?}0C{~dcǓ|]^[[/_d}OE:?3g?7} /_ }Y }j5kמM[og;w37}aC~i#yfMĦffB?L~8܏?y yg_~~i_XTܷ2Nnz[G#Oҟ?WFm3m+/o/J#cS3tg{%9=K6S ^h4J pHYs  ~zTXtauthorxs)MS% IDATx`׵YҊ%[mQ&bN!4miI^8mmS؎8fY̶3vW ]iQJw&s΅o΅H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H$D"H-D"H$&$( H$D^7D"HfD"H$)j$H$DfD"H$w> `—=^/E\\ H$G6|?>` \^2w@D"<wzK%S9S@D"<<:λ >a`/g!͝S&P#H+gstlO@&f: a$Q<\_x\ cn$"Hohjt7LbGwCX/W+qES%AD"|o~W$= zRGGoH$g Yo\u]wXA# {!s8;\H$R0Wx#s< Sow5=rnq3H$Ww=t^r S͎4/^#"H$σ^-{AL͔=/'/r*MH$}e/T o9^-e8p msH$f+peن< 4uGӣc+0q]1-9a$9e/Azxw6{c ̓'KgNrH$sU#me j4FwB te@xr-,H$g֙'+82q}כ O_{V$[%-2 Zyœ-C D"ErUX~\K-l2+P֕7se^.3e6d{?'AANO֑1tKX|ߒls(sy4zM֝Q^0=_o?7O?啜 Mfʝ\JQg#-U~e2dwޠL%J>C~W]] ްVµI+Z~wڶ=N8p:2ޖ|%To\Ij*nd7kRh4\F~ +lsyd luVO"N'y\57\W%^kJ7PDjig& uVgJBcg :CY01Y6\t-M_bizfGR뒆 nv{$whՁB_ 7ߪlmzM"!mLUb|,&Ooǵ@C[Dj0ߺeBf/o^ `n<{h]̀LI%bME}>l7Z7/r<g&yBμ_6=ZoI-SqDT&dLv$Fkkt[oMLX-&H*H(h=2ʻ1/wm [CZաdm mr79Iwuݒ'"| r\`dw_>DTG>d|:=e7˙zXs+yDWgY1 "u,bM+AG-͎KяYH:Ξ5Z)'NƗ9 )12-e&lk; R'3/g=5ߎ)p'_ЄDK"CFuTKpXR'`xVԲ45nh c #!o; }/[:U0kLaYg> `7$-[1cnVUUe8~dLFC L/u8Z L_B{OqT~g!:&1gw!K?v^m/;w!~'1y|FN+Ci0I4tϿ pvkYZ8zh{ | /87nBaI-=7Wӡ7ˑ5;AGӉ',?b_"ܶ6\\Oʼn1v0H^Gp|<.!&(PVP̣k |{ fN̂b\8. a =벞tE] Z<\]ZW͔&4;9y)SϝḢ_*G~^&0U Sa1o:qr0|$ r!** M}:8k;c^߷ <: 9-0 OÐP5W c,TFEDFD#-}͞3 f_9j+ߧ^ Vz._L[kh" 3enMמ^6|aCGGU!k9tq#ioc؝} Ƹ=wBPVjsVS:Rit饢3 ~/=dȤr-k V93CFM()аp_(PxԌ#GO@M= ðqҹ88cnK.H\Q L+o`ČK; 7Lq#QW7aT00+a5LP\:m=jQ2G-4vƇ)yW/}{̇-uzDmsdc=`wc~g 8R yD3f4rr/ 4ر qlt$ͭy%:1TWӀ$H3/uzy`v& 6b"`B=ip1r0-vdxܲ FNDQiXp,MFY,볨nEMRDikkّ81CPRVI}yׯY'+Gõh˃DiMλ'koE^毩.Gu_wܱ VhAjjѻ!xj0!LtS笴8ԞoY#Kt#bqZ4j,I頱5qa(%,5`4L5I޸Q]qS]eK"NC@tB`yߔqżYFB3i`Yfo_0NC'nnB\W-k-oˇmFRq_OU_|i|ըj{m9VUS"<Ust04.MS]¦/W/\/BFmF ؄2&Lءg׽G8ѫ$ .Y؂wd`` F{L:80QРɸR=~ʊx09 &&6IC3W3k35}f |$pY{C`VTSjĪZUV2T%7pHX#&"0K9b%"\Zz]d];[xA;u| #0$߂R5z򊫑4d#<`^P/0[nΕsv.-` bb_Vn/ ,oa#foɶ`݂+;*+ЩK˿qϟQ)<|"N<47 38 6*kM8q$8hwɿxK*x)}PQZ a ' }-LR%A0UZIZJqR!Z ފVHͺz9Wė ,\Wߙxq—-͐t':1uȱիVa]XdԈn}#v| [bUW_9/|Y.NA녡 #G5Np9^Ҋ:x)bOUXZ-v %`' IDATMƦơN<̫zVLbucvA3#4 7Ò%z>3'V}FH9c0qiy/bĘi'a,N[7B[C9{6`FcMs0`96cPe_3;QwMZby0q6Ǝ NTd(Aځ-SQ0Lv,,''*p Q>( 5[(BO=*F$za0Zǰ`lw/$A:*yrFE%+CUH eKk tw SM|lFϨ_Mt ȇ9zm~tŹw,tpRAmzönʮዽݱqT񃳤. $Gi)^J4VF66_סΕ=**’uƌg#; N<1hrXlvRz3~6|YJ spޖGЈAvkwCc&Lå琑~ bfUT%! my7`P*,gw|ƦZeB` 'z hˊqxPWQT\W#64XzpdD]kOQUL=O/˄Ŭl 2 q|-Aį " uI\u iJtչ8! <) 8v|ݾ5;8]LN~^W\]^O?<9:mVStY0ga/rKﻏA gTi֬Cb(,Snaˊ5Oέ[[* ,< 8t"Tgl@6˗eq1He4v5&$3~r%oAQW;0`^^ I󅹐 j!e"Uz1_ua BktC e{{Uz~`mFS'u1MU+0[c-nS¨ oƏ8v ^mli8|$ksBѱ֪sFr&%+c(+ɅZ] 3ƨ3.in qצ-q=[OQ~X;`ܤ-`0"/9s!8$Dl6Fۀy~(4% Gkg|TaUx9dw: 0T ] g`ȯ! 9 Q3`p|$Nd rI=}Xj92FLT}ip,an·bg|ƱP3W.{F(<`.1{F?vm߇Dظx׆PfE/<nHD K+W^M<J^ I{+LX.)8qr9KhK:g΅n[ȃQqqغ|H2|d5e*Yf /S7l__qˋTP% y!64XlνQGvU9BcK*(; “G!rJA]UiGI")-8V6w Ț3u4vw5coAzS>YXף^J|9` CS]Ž9<[q^פe?VH4/`Dvn9#{XPFAe__?AjAio*?##.+cǥ`y50Rw{ȷ&G)A1v|.$\tZ:A/G06$c矨./x K`@-ɱ%kz^輎f |6p]0^ϖ`7&|m3ME_x#m 2*F;vs=*ۅ UUMMF㈽f+f&mln*kE&;QB; Rx[ȓj&iu 23 ƙACaa 2/hr=$"IDSq0$!~8qlE>a`CDZӻPg0#~P" 08 bBx K,S|9=# 9L-o`_$0 hJM-+#yWn1Ii]v ٮ1j*(fT",fGd7߃0\JBSt)R*其\U*SP[],Ay]t}>>aC0:R}Kӣ6׭ZG!ˆH>`-9`L]}AW]2d>D"grFGw9nC&wń=H$DtsvVWޖ쪰mO"H$YiFqtH$zG$}w͞$D"\h}Ȗ̃7G"H$խD>n uaŊⶂ<سgW?ĕXpRAVa~UKs{$ |ȻzǏsw$8{sQo:H$GEOpJ2J_[olٲ& .m݆M6}@)~f4(q/|zu-1*N\Ǜo,{6`u0R6K-cmtSc|/(n|Jӈ;Ty^-4gnw^|]Ù_? vM=EE ]3LO'b0hkaL0ISW_eSr}w`G>s}9gl2b|r~¿?Dŵ,~0{ed+"}'~ ߘD1Ώd? 5%@i6#HE$`x&%\.]w݅9s $$DNj/a-w/1ydW2|2 0&>o{\y 9Pml9tϾ|4)К8$!iJu;g6?QS/~(&߃1g7b*'7dFXw!RřӻsOCZ }xHN]ws?OTW?ٌ j9~֦R5@"<X},IGtܺukڵ"| ? cc}Wv_dVӯƾBdI\ /\VMc%xGiiX2;`ɪJԔPJA&|Ua S'_SX~M-*❿^~ 'Ϙ:ZAkFɽn:ܟˆ Iaɒ\^JKA9eҎt_Lh ҳKqL/b}uLfoT NQ0X0u2 `RU}H#3$aPO"<쩓dmGinQVV;wn>s͛?-ڣ|ܠϟ}o݇AMTE!3V]zٴ}PVwfJJ*% `RM*&"Qwu8vP؅]1 3 p5*hXp3?/-GDh$TB!WN*o:ҌX:ٷpH~߅魷`t׭Q鐕l!gwРeP@/GEw}Y{ zjqT| _P~~>{9q-4IVUUkFKD@h?zSQ<'E@Xs'ءq؟~qExjOKp%Ԍ_lwޏg.>7ʸϙ=+ w[?ǁ#G!4 GTH'_$D_O=9LMimlmnHV/d#kX]@Kf·{#&%L)!jc(x&Md5'w?RbOl$Dr{JN{y+&a&]J> =ypE D"9VfWkXk~-ٰ͝&m RhlZ D"z|`]mVP|)J/D" $2)XW Zۏ֠V'Sr\(qB6ۇsL^o0K| U[[{O\oذ׳3BY^Jr)$r$2QYVs' m@D`,ZwۿYٸ(B {!lhDkxm"=uo s1͸^Wcш6(p7ç2zr&6߁mpϯ'aDJ/x/~L1=O[m Qp4D  r239bFL,;mxU&o2*/ـױrzY9>8 VɈc8zt̏Τ#!v*+KYbYZ;w-Yΰog͆" TNYu=@B vud_Ñ2i&xcaWe-L0Q4/fznLF'1Kͷcrr/1]l;psG@9ODMixX;sB^8l4uo'(cPEC08 `iΌِX [,n7K-okF/ >Aa0}c W9,h jJ+QQQ*v?5hި*)`iGQH=Ӌ sȸzyYá^S/[́2,j>_Q竡T}?Ÿcџ_Bޕ prB3&a  [6Um5J }%W.\AYa6}w:/`@.6n7^Ixx__~XfрɃ—U\g,f|fbܹ0IS7x##e@.HJ(p l&)qHmݎ ^ G݈mZL @ G ~oŢ>eo}/]58x7Oato/WXQCӏ" 5CgIC<޲Kk.Wc1!1q雍ZȠ Qc E@w;1Q Ĉa>8r*Ο;I3BkX0~0h5@AoU+3JHf/- $6u ؽwӛ(+Yމvݣ<,{Bvqq1a,lŰ \+՛pY$ŲUzHZR +eJ4h0ֈNL+[~9aʢP,m34 (ak{!Ԫ؛ԏU0 y,y"_9~n에(kNr `5}RE!n d? 9ؼ0B(D: ~vV,-5aӃέx,Co ^lAJ@'R`[,tB #4$u#93L|Xt ~w.cG,+G e6ѨO6ݏ{K)^B؀p ( Ig~&<{([` ~:២!غgJj uy϶*Mc%O_$v`&IQkRDL.%< )В/oRLTm l"Gƅ'V@qI0^7\c9 X 3J$o@h%c"?/ C# "FFt`~>^8WAyq>¢`8kh#@ExL)v(dm}kazMRϪZe_4b0d<1݅\4!3ڊ|є~ i[)zs z(#GK,xU"d@2*jQ``}š_۪ʰo#22%Z${@)PyG$|"ٛFr*qXt*ȼ0oyA{K[hoa6kDG Uؕ"^ 8H, YDZ-vn{ς7cBkS_2UueY\]c׀Xv2\d:(bJ7(ţm4~g1XfA6"oeHQb-7=xl7.,PSBB(2؏ {  arFmߛχCIEƖ i0p}!׫k!8z@1NG3S ,s, ,eѓ07y a/)>3Np4(:o0[!m5?TR^͞/a`iGp 7^))9n񇐱 7 $ ,wx sV`oE _ǥsRh!PA8Ə ֌mow7ȺSHMMm#̞`ы!gP6ePQabp-N+e THu ΄rW\^pl&%1"&^!hG`3!%)XGI,4ɈV [ܓ;clt%M1Ǫ֯!_#L [JbL*a``k`n{NC_9|><"Bp[1#f,o 3<[@aVL?NRrƏ)&90cbjc館j+)pXye:I I-+{YZ֨'/t6Næ}>JyE~Jq[8*;C"Ħ$[lbⅥW&ou;VCE/jralY16#02%0ҙ;+R$`wUrt(c=l XQ3UϿtE_M2yweC,`w ؙgUqHgH=gNCsoAX0D$FLv@MҔKZ|-00K F^ØkL4r / TH9u jJqF>_]!ӕZV,8r(5 *81S{_Dhӱ F#<4MЅ.RH'^^um_:Ȉp:)$* @!VAI-]" QN%,I gPvffJeХ>z|W";ҔiX;1 !U#1'P=whe0NXqMJ8tn"U 1v>YyIɤ()bE<j3D9Pο -L9HU碷*QM-4F "lz겳_>NG@ WQ7NMӇ]/|Yx 1j Km`?"¨…W2,0ŹA6CrBp۠$B,`4vH4QWQuN@7xHbb/Ll&v/^ `0 &zFŏ^_-v "U؃EdJQ DiR2jIDnEb(Q Id$RaXRc *` `0O0Aѹ`v{ nN^M)AWp2]/HA~g`HL,aqIgp[؊wM:K=2 `?C&C" NUHf VQxA]-&JL1itABD: NERzR*8lv5.+\67 :\|LP@"@R`0 `<{n'&PF^/l.f#*L9X#>8R&N,2YR"Qee]I~fQTdBEĜ[wPkS $nPvv""ډJ]N)GF򽈈( {j\pݰJ0k` J48*W.P9J'9 ʵaPDFsz&c>Q@n̗Rd8Qhb 0B"LQ%p|R23MKؿ- >42Iz֩9v8#ߏ?~ޟX 3 0_E߿H_SZ5 FD 8:Z`vrȟDDeڊ-_b"8y"Yn7ˆj-2{!rE2 A"y7Nr7l Bcc u: B.@EǍcرc1w H=y_iN ~sÌpO+fv˿(ݘ9i(8L|dt_? vFf6),]63,co(q׍eQ}}[/>fEü3+>Cޙi&"#dY4?5}a>(Bj7rXWHN3¯J5<pʄg@fݑr(tBnSFMK$y D,wlپ逡D8l2!N/UfD8/FǮS&+ Ò8 nMjFi ;; N >G̙6>xsW^3GqT2׊ĸ*f2/}V-z̙#((=-Caati^&c3lhJy17FwS,qw>A^؇O>ƍMtUF+#{#qGĸo ,z$jtHqҨZH8ϭZ 5 -Y3o2LFkg<8ן,3"N&yVDp~Y|kB8`˜0cSzOg 7$xa2ٌІ>3(Y3/>ti2RO=< i(Wa`Noŀ-" VW?Z\2?Fvu&bWn $4Ԍ[PNbvRaOxO6>k_~& oPգ;DTdbcB$\-6`!LħÐN7<+ AABMʂ_c0%U  l %5i(ѵK(JAa2Q?! (q6mOJyyj p@M]Ϧ賂`:y1mE\ֺ)2fkw_aʳ%^5 GD >9L<.epą\$* լ`Q^IzbuefpȎ*kqԣaЕV"7H?"DШpi]XiU_H%uyծX]?=]\7|+n\{/c7RnEh۸9v;ؠw!"ɧ΢u8[x3_77ƸV0*K{f2^6͛4FGa@4@JDT)*Ȩ p+p-í%ONCjCUP;9j -Vl۱/<~g"+/H.ʇHք\Tr_Tx4}7K5b07WLxt$w^7=y|/_y͚F`_|J#+Cx^:53sPh",njvfI F'LiT jYRMzlgI??5ƞlH8;<>,Pט;fdNjԨ6C]e-![]wZ ǵoe;>^>&[~뵢 !aTEQDCiNNz]b]5s>,aҨd|yxuɛ>[o,bۡl,Btr6$iSg!q_x.F"C眚y !XW}Dě_/3']/GѺa5rƁ1gV%|?Ӑ7/Js. upNg8~ڴ8ɫٗ{WJ_kVAQ$EXڷͻ (";w}y߂ AB0FAtTzE8p(Z: 6"N[> C B.EhIߵUh޲N: Á{/gy6a^)r榡QH,{-}hfM!Z=yNa\*U#pެő= RSІ1s x-_8p׭ gNM衞K_І6e244(̾,R)Gt7  JؿU((Fo}ś`@i$ ,6? +A{DTCe=ڴϒFki=)͋sy:֭ :CAnst>غu__|s L0򅴪J+LxS"ߗ{ ,*G2TmVǟi6?n׳\aRqe/lצ-ظQ'ZzhE.1:;#Fb48o}.G+/--^[N*k q`Hj矝?v/WfR:} #30t9'!!CtOSRRptZG|QJ=" F>"3ό*uH*ą{Хc/wD 0dcق(KX4c&41U0w,ZoD*A'tlO(exp+xXc=x/|1PWM*Lƿ"BV6Z 3^|sޝR@[h.٦>^\ 7p$<$G'?01=Ub쏯rRfUUTw*:Q2S,*3Sl #F? E;J.P8ծL*F~Lox侮(_|/f`slantݜ~= x^g/\-/Zj}'+_7π_f+/-mO> GDa0],GPy$=Òt _ -0Gtz| `.,`-%J '?cԚE?=J /`‹`0`,S=_?;o;3`0 `Dصk=`0 k `0c0 ``0 `0 ` `0a ב˗/`0JZ `;r3  0ΝCFFbccw˷ŠF:uJpZj,  |QUF 5GFٳgk1 (;R_'nS?bbb`0L19_2u;Wi$y'@_n+7`0L1*t}y|[l7_T ٳG}vEEEx饗X&f0 &6oތI&ŋ:ׯdž *d/<#ؽ{7ː QA`Z~gajy\>,|It C A͚51x`jv{oMR[': w^XPP[:2ۯ^U"0}+Eݴt?Ʒ~+.e0 `^G Sav6lF}Cy!@bƍ%6m$Va1gt3a$6/ۇ!߰8k,aېPL7t{/BCCYe0;6jK&aرuVZ*Ul2CNЉ=wcƵcŀJ{F=[}R>ְ-Ե=J7^snR 1c_*$j?#F@rr2˼ q,`_O:׈ZVpbA^SO ;{vWToUl½76FF tIWщ3f+JRRRбcǫ}Νrʑ!%R\C>77((2?L&O>WYf7mI8p*P6(>4*3i g*i:AD5eʔDGt-) B]Y^=ui<- k׮-X7o~__/zƇ G U/2j5ϟĉ0B\nwo3bsNaO[!$ _ -Zuւҽ6l(l zyao0*<+!ԹGtX h?|.~W,YDخm۶Y}//Xg0 ` U_M-ct{O8˄`06__rtn jf>-p>[ڭB?%OeFf>йzHxmᅫ!Ʒ?}`07 ‹Z`T\#A, ( !12P( H"汊Qk s8%5u: gw7"vsR<>5ۊ罊mnK-R = JJ]hRFxM1LjU"&.oϥqx/opKd$[WI0Zd )s(WxVq)d\>B RQzo]{b Յ y# 9:mypk &.za˖-ؿoXᮂDFD@D&hDnn ~9xhּv邐AyĘgX<"L*qG'՗/ˑ|NcЭA%imO! zw{^;Ӧ uOxlWeٴw} e0AAnOoOc hT%z'Ҙ!ЈmwKcщwC2)VZ+j+Xo8"c5l8VS`c?X RC}!J|.6W]Ê o7qNĄ1)HhK>} ԡX:N@bS&?ûG\ݖpE^V |X[OMAXF>v=#O$vT22 bDuб]wٳK5VJςj#iFv%8DZ4$i 2m Ќ{wj(L£on2J:y.iGRB$H,ܳgN8H@ x]¥V4Yu&߿H) b]Ytu'Cc' ۈ~a~(!Ԃ{;A tm%^ϻŬS($.)1| t5Jk~(+IF?WOD[4w,[55 w.ϲg6٤\ơoPD,]+勊/N?\|~!~ 9S S &%B$@$SPP4ٿQ I1t1[mCʹsxG,0JyEDĄQ0xp)==VEDF(g_&˿Yh1F}CbGImZ& Wjz2,DT`fz8EK0z+0]VJp9 _DIWCVk>u |=6i 6*3.UceP胃{~dޣthC0*wmĂwaҟ ʲU?cXnH=[ɯLCN-Qذ[,M,XDҝˊocpcڬɈ@&y?j f/ XSr~{MF"j'=vnZN Pى(͛v֯Ctc .2u{ ?SaWi=-aˎ֤."T&I, ukPIxឞ"RUشe5 js#Xb½78޴q!y^CA"h?k4*܄$I8~> ފnM^ݾOBdԌD*Wkdq"N yEgӯߢshգ;Ȭ^ -_e…31;vM0(^)GʄDˆDė`b gBRq݅|08)N&B-ФeSB*W ͠+Dvz&Ν:SN!'>? bq)50| ְaj A{ ),3jCQՄqC#Ow U~Ŕf#r[!3?<:11C&D  ^m`pN ݥ;ԵAâ`2%FqKm+޽PjH;c}/pX|Qs:xzԣ7,h).+ oD3 ={OCzi\V6 cew"h8" n^"X;<2[yrރ{zBdx?{%R"QZ5F]6zf9}_R&p]BdӠ"*А3%JxY,!:\=!HJANRHxSlFԎD!aZ"+B*T%WZm!Bg/F]?LH M@Fw蒘[W)Nmt;P?.֭EhEhPiג͇D ѼTHP)X].'Xf*滬6#/H"XyEDL1v//j łӞn"‹4$&/֐ QZt"=el.SG)ʋ)a:_}0ȁLJ?DuuIJTf|~><#wu+q32T _U!l4!ֿvA!:M3)߀<"!֟tH丘i"5T3$E$'"uX^IYp%p0 Pk.R8* \S)וħPw< ¢H9 (Lr""#s >V<ϸWR'Ur8,F9g^9?eE#j3YJ"jƆ#8JO`0vW/勮tlݸx"+UªFVPq]|W(5ІU%P+s/\a#ŢLEr4i._z)  mڴ,`!IiӠ0 OfPb ahH~Єj "?r-~G3r< i&=2X1e4JU\,xr& *2bcbTIC`(c@T<`bo(]2l<~M]ֳ+ѣr~E8߶ c yo؊qpJ581 H)mt zcµ۳GɵqZFbTuqB]Ez4 }υ QR!/*UCХ5%8j6j ٳѫImS89l&=UЙ0S ALdI*i#_=ܢ#;<"0AFӫf~815B%Pia93rҁ*4(Л|\Su++NgORhx~ +,*~@;"~^ l_}&!$!"Irܯk E*-6.(BBdE)mVP ? C&L¯Zj!**d!"aM(DxthO0z\nقnm"y9}Qb֭I8#  N3 >﶑\ʪx"ht?%o5[s*xv0i6L]{ť^d2E =ҝ[\t\eG`[СP? ц`"j\e\30 C[# H9sLlwGBj0R ]++vEB̞iq$S~qؙpkUJVOIW 1S*U-U  #¶ QiC:W`Y]q tl+Xtojz:؉OwԹk/} >:2rYmJ?_VFϮ] I3/Dmi dCiI#DE憆jಛQSE )U&\ڹGyl6 0+LXERnE΂#G!Qcݎ]3-7ELvb0BEEyh(,Ρ ?\"vC"SCT XYV1kۑ8mڴ38| %Y.THH/bCۉpTaanBDD P 7@j3C*UA$ag(. nuLy:RulDV^W!=+˵DdŎ[ w`##P};R`0*6tH;$8&쩓8} 2RϡmЄRΝ|\afb+ae(CTR$LX`AKLXJA4!s!DD6`ҥCYaR",ӧ_>W` CV]Ow^@LzR1v'$(;x#JaB "y0K\ M 7J-JD}qK- Q5F[alׯD0аx1 Z8{!ϳN t5j@`CL%"Z.\zU+b08`"HfH]N]<nD(U*,`4vH8ۨ+Ψ:e'Y sY<$b1qV6Á/ a`0) Eƍoz%6A;.]W X0vw0*~"Xm1lX$XMD4<epHFpZ9 u@/F<_$" EڭD&A"FbYa!O0'OÆ :HzcIHHd0v0Aѹ`v{ZG.`&BwP|׋6;!Rߙ,A%8!7 -Bs8hb [֞KzG@{^ &54AdpZ@2\:ppIӕz`0 6+6 0Cu`ۉj+`+`Tt9Lx. `9#1ZSCW:7~~VV%U/"(k F_qSFMH9s:]!za&%)=3u8 z KW{is+1g<3s0tl gAAA.l!8t 0K# 1nNן''ߏN-{d 41g`_!L ƿ42̛U K(,]phR3 /O[WgipK~_/>fEü3P%Q_`_#/;`WZ+\XwW+/?oʱsyx{(ʸeCPa!~+8ݚM:"cS_㯾ٽ#Q/Җ]ᰱɌJew}"r0W'f`Y yN)O> Uk/p;3S+-}^Uxuٯπ1{uB⯯ˎ!? yQ*|Ooaе]8~ez4} s@xhTDEiΛXk8 tWL(=IEPHHzAOzb ͙ ^'< N"Vj"p1YBv(`4:``SF QVDhD8&z߈ ^-AYzfЙx/ lR$U.1%djU1환?o%i&c^ڶ "~rMhLF"H:-nFx>>#}i\ζoGK!qu| haqR # ƫĤ7 GICѧX4gAp ƒN F> ڍ)ơTƢxQɗf>_|;Y^cu~_F*B4x_K0nbͲȗ6ض}|6<=w!&wJB_Ec2mH0} 7z_@*L8?cT9f8ZuCJ S_Ĕpjv!'uuo$lQ: $>7YL<;6FxbT^ DpGE/GQ~uO3j}<_ N kxu x.Up͕k#;+-ᒘ`6*LA  V*EQN|:ͻX$RH.ʇޏ{P ЄDZKݕ)TWig%*2z(k`oݯ>kH4hyw>߬^C7C(48@țQ8g |p<މ>}k` SH@XcUKw#.2ғW}WM*}VnF6,ԛ< EP$""Tnt¹cesU"q5v$@zP({DED/@(EP&Ch!p.@gܖ;gfg﷏h 8yEՔʥR9&OC5FR>p\T&jF"S+(=.DF#ܻ~qdf\qndUUu*$ v.nϏhEغhש?:whwo\M;bŊU{8dJ5le W%ħDt%a3mvC]WAywCjDGcΫ_XDAchgIS.P ]9v/9,4\{c~h[9vVM(jL7tz=8&+a otR,6!vX/ qǽET&=wh+pd&2m[LHd:8{3oUJ(? Ň0KpCQs}.ۀS*檅``a~C nh֠.vlLi8e+wMb[Nbw c:.)q+9o54ovfwʄ-a}8tv7>z61`ni>p\x G\Id!`Hfrv)ז-a4ixf}12@fV&rssa fcUzRSNbРAxm/wcM0‰/-7 w܋߁A[aғ3 n>] ht[E.ư{a[s1"B+Ur3]߫@$N7|&NERxs;p_Օl Ni*O& iLݠ[0b(h#B0bl޲ʶ e}7 럂㞅ӏ|z8o҉/ǜeп!JM]UBc̙KSQ'n?zЙX3Pɝ?v*{m4HѡmWހ/*a3[ضs;D肌羆漎S ށBAbA IDATȱc]#Nb7i WBwbkhb&t/snX9wk34Mym)B"|"ԍ4l(@Q1aBEVΊP˸j䖠c ل>y-u5UbݐNvkY 'MA ѲE $։VTbY8|8]q1zΝ:_;Mϸ/Zl&Qy?Qa;+MGr8-xG砨׌믿йs* 0@ha(ƿUwZ bFW4/}1I4tǧ`kb YR LLԵK909%rwt @ PX BhwحH)h> 3B5"Ef!ph)"Uʝb7ޑ'kݺuT>qn J|^^!߁Cǂ9Gf cxd* N8z86m݊BvZ饩,ׯ{qqbS\=*-Ml3c\\M*J Z,`[,w*8{Elb;{t eB) sQ*̜{6tQ9u,|$aE5 }d~:$ʺSMZH]em gfB*$$_Ye'c_a;- Pν!JV xyxY)G|b"1urDck [7udȳg]nI6E{?Ƅ#^ނ Z ;vxUx ¹Іp n"rp8l*}gر  \Аr‰f}/S<-F‹ .]=&@ZA 13ջ.M31:_3ۓ"6s4W!vSW׬AvVV)1j9|~$ &MĉصkYj1/_ 0 :}ݲeKJ$ z 8"  FAqcC]ed rC 11Z  Fiiiqqq=-`0رc 4D' H7/WƍŽ2G5s[Vɓ5,aA#JaݎUW̏XSA$6YjR|yO  Fܴh"X֪>/A OA#㩧ٳgx0!hٮ8ЄA$?<A8)S~s/vq]믿n󥨨/"P  >VyY_؂ łȑ#1vZnO>]޽sA~~>R `č1%J1n8իׯW^y׋#a|oЬY3tر ϱ,,Yl9HŌi/Cָo·WQsq`]LWjAuAA?{&n(Jf 0˗/积̚αkƏ_b00;|*41/}W믿bӍZ]TؘI&/(#x| A#gN:{X :u*5`5'NT2A΀abw‹7aݺuvMa՘8q"jAydѣo>*A$*E!}9T] rQ/* n-!ġ87qv T9sf@Q„fc+̝;111<h( 0@O@ A0"(4iu11x2MVGLfrտ+ NG ҥK1dȐׯ}*K.n[켼@fc `uA_ܱ.~Tslʕ+sO|tCPd1an"S@ӦM@3{1̚5 LX/L9؇O||W$AAa6u+2ʃ>ggE αص?ڵkW%?c#q.O+jZ 6ƫ1+l^3]%xi>}$%%Xx֭ٳg[n1vA$k{/ |SmڴtdεmiZ7,8}o-[pVIXt<:v8xѠA^ p,?qoV{V< &AD0+JЩS'^x W|`-[īӧOcӦM| y%́W^Р/?7qo&PX<ڵZ&8x5y2#zI q=D̺NnmWӧOJBjj*ك#Gd2ZjcSbe^+AlP$Q Tۍ)*{_5 [&ڳF.[/ɮ9;wTT jd#J `\.0b`+1BBBI\kAf!*?,ϖN:yulO?w%X>GA#j8z(o1aDzu")))ޗŏcz/,M,]ٗl/ `D-}-fLgfb)ֵX1clv&_k!*z.L,'''& F\'7ҀuEŞ .hТE DDD*J QKa&"##qD5%<AA#/DAD@PAA#  FAA#  FAA# 4WV AA$k7nL@AD.H  `AA$  `AA$  k!n;y@@DA$\ 0dAArٗG(3幗AA#_lVlq٘*y0  F!N'V+ p>=Į]rNBnڵoj!J!!J1YacGBa*:Zu_:VƁǐy4rp",DV@6HǑ#QR-^[ᦢIb8|}$p"C]! rg6aEldR:uH#F\M]l+(G8|8ns׻+0-~@H nƉpnQ+1`Db(N8%ZZٹЪ~< HWrl޹Zۡˉ+Nc ڡbzt $\\eR'R.rOѯ]Y\ Cz4, aMs\Qea0Ov nԭIu";+ ¡t ` ˠ All b⡒kp~|#tJ DRV Ia)K*n;؇s ^N] ]L(VfY({lXYJ.g}mEO? s~2 5v0q|?b"dxedmٯ8rCm{wK$(a[4p:Ѕݻ>u`uI0(#J݌U{(.NE OOj"aUhѬ#vIQRt>{d,L*={Bp)=Dv oIض%b6suߢ~φbE oQ^P+DP7J.bpnS`Db0-W*V[F$aFFҰ. ] d_3'Ţɭe0kSGɵq>) V|1_gK"Gc횟9Y̤ %.\lR[[bβ鈍E",OIJ-` r {ll;kFaME1NzYEnsТOL|s mWKϰ`<*XLfN#!e?hε*]34J1ܜ,⮕È8!>*H}qNt:?Wlr"7FLBgN]]˟ېR? b/l`㟿-Q' 6q EhLD+h߶.!~s3GA\N;MpoZ W EBb9lf 0فxtF7+!:צ]n5l2$z_5yW {^[.Yl6؏y Zn۱}NfK'L& pgW &m֌޽"*:sߘiy? oXn} .g p4-S m[2.v+"#9Qt2ϝ}gL$,$ڶmCipIOa܃Cb6>̈֨80r Uĵ| Kf~#_|~K Xnu#1WYJT0C':nϋ)dER!'YEqZ~QW>Ȅ0 qufF:M~R g֧ fHC1 (;ニؘɭ^m،::u\C"v#N^!CT nC^TL T TGPcb|5q1uA+XeƄiCmXJ rq?S ԍUb>v ;T\"CvE^H,~c0Y[W*0b#V'4.7R9^R &P|w+ɠXF^X2Xd''¸jͪ2T ws>'$ SJ? ZH+KSAM,99h$|_z@W KL ^S="qaԈp88y6 k]qhѪ;~B7'$puR]VM.W'Q# %<ݎzd>!22.[ 7'$Jl+1\Z*""r4o+FAjt29; ͻE 97a! +s#'jL\/muXߟnk.ƓM[t ],QRJO tĦ[!D6)No@)p EUatJ`,̅Bӽ >@*,#Z_/IPpy$.\B&XA SԪԥב")F vb1mw .Hk\U[@A^ґ Uk>\!E\9ЙM1PTR% KD8M<5N=G^ZV9'?46R;n_z2rZ oBN)M#MfSXIDI$r:v0CS GqsSީD^9DiѭW8q! Pݐ+r:\U~0غs+:pqVU5[@A#t:l߷}ƙ %m ߁?&#Bn8.<8rr9?~f<> [9 R3yF-6];ѧe ot"k~y-u5~1<]f{_~<w۰u? ʐK׻Ov~~0'¸L,@8>2bb8Ν8=ooVs"Kw߉R[CӦMT*/# V,6 ?%EB̞.P8Uɓ'l'R^E.;OG¨+D4mnTfb3'*hЬ5S ف;CE5 AאWGT܎j~6X7;оcX0v~d,bBIԍmC6mʞ\)$̐Jތp'j.E"U!'D@V k 1LIb^|1 f=p-|X,~0 VK1SfAΌ.VaݟVK g VAl.5tU<˥,AvA\Q$jϼ_L|ƮAV1st%$pl4m'D@0h?/:3rL:)bHGX (6 Y ՁR_‡-̹?)! 3~Avm;[ s{=۵ATG$xP;N/ {L,vdbMVN9УE#pssD l2z ZmЄF֦IqFtZl6+YXx<ݐѶ!zpo,'x GJAPET MZr0""p Fj=L2BR4[2oð E1ru~ΰYrC# WYVp׳.L&OJA L.H&TJeĚ0-5EL;omVE3%]EK/P Jy(L}z"$"]n@  jY"%Rdӱȷ1,9kD89],q"L(/ 'ũ'3B$EML4")nQ:גA%KKǡ" YjXy/GnE$kR˷lAx:H \"Vqs 9p@"`CօF##Oz1 A>T8jόTdXOR }.HMŔAQavGnB=q_j a1vydrolD׏E1p0,S)8o(?s=Y X;xv:|[~~CQ?.^귏 e[x1O_msZ#p?<=Fs^0LYgs!ׁ~#F֟V#pjUNMRs KGncLF)+U*wh:#Vߌ̓raml1n`CBxƄ̑s,"zSϊ}}#pX, _~ ^Y:ݰ_42 y)aW) IDAT*qC"B"Sܔam&£79%//|:݇o R ]u|>Klw^?&Y NMRSDmƀհc/6D~~? *,cC"9 39*\!sCVr"΂Y hH,D_ $x]h ]/vWzeVsSUS!NAZaff\ed֬dGL[!U)!^lv{+m"q`|6|&D NHe4DÜ8QK(sRV;C8rtKG[`ciX8quSFL>'5C9kD3_<˟m{b\L:)]`Ar3.̺vǂ#ۿ :8<3ZD1sc̔g1(-Syr|}8UZ<=u<ӣ"8a%dJAZ h߼Y:H|[xdJNg~çw,41-:1yXgޞ*Q (~ҧ&e.oy/ѭ {1nD⋏އ*g;l 3S_Dh2󖼂y!?~֋?)OE;6YsaٮЩUKNHJ.,Mg}G M+r*TIAbt(%׊lۏhצv݆;ph~F46q Ѡe\+ kP|WLt1TTX@Wf`cn\z#? ?{6BBbaHn\_̥Zk#\]i낂o2DDXɂ0nQ.-`Q23>LMVDs"2ϋY]oQÏ ,οnc,M>iw]Bt(,0d`](pCT1cPe5wpHT* _EuDeoIWxU~\6)TW9#0*>+"':nu9 o;IkA6༂:| 2TD]1_ᬨW\!qSg6")lٽ /yEyI$c:`El|\EصU."mDDE@&B X.,ۘpr9Kq/P9~{⮈qaȱ*qD$yMZ#W9HcF 5+:Ω2N_ȌXaxȝ`$q]bm{NS*!#C2fmB\= ~毀^_MZX_Pue T^d}So%dt: , AӼK}{BSgMs{#˄%ƚ ?B|nh'6zlSWE^Rʧ4Ml2͊ʹ?| 2mcgGDkA}(pqfd"HA]q64/"hҨ#jC#81[08m% ̎~k2Gz#\k.TQh65JywABta'0yسqgEIthqtf>i8GrsME!XsGv]œWy|waއd2ZH;y‹zq/{\ U? Ucᫎ ~y[B~N-gkCQs}.ۀS*mOri0G-=#lH<7%<;3L< f潱b,Y3kza&pKw:*h+pd&"7m[L5^[)򥦟@ Nn=tU\#[6ߖ! 쬒 X_LXy,` }8p)de!*& zc 58aD|b"ð/ )\LiB#ʋ-]̉/.ڜLƱ4' m/( ^y[0 psy%B۵#?6L%vbT,\7>J񣡪3s0y\-Ф~4R:aUr5.H 2aQK0 F{{1I}NXY_Gq{-xz1z!1t 6o[cSq}H&q0qv*ƛ Pn*c!J0vT)y?{Zܗ` Nx90{+Lzr&"aX; K?t܆΁==܎XVwPn091,W k@5\/R/uC2,Rxpk?3  EFG@3BV(accjX)`zi+(6Ds[B]\H`\9wև36H!7|j{ zB9qM-J Kl6󖰜<۸9hT1Ġ Glj5"c‘[GBw8Q &L. 9fC!0l`7^|i4Gg>@2o5"Hr -;^+V  d^,`$jPy0xd]:]18}O@WhEJΐU,vZ''܄6#1R,%j88{E 0Ie6OGy̰p"  }q DGLyDb :v^t*-; 5_4IhØ'&c{kg~zjZB-tba×n *FgF*2w FԜLQDFd] /v/J׵AW;&/BAT*31 \–=Qu5ZXʦ1jP{ _զt끫U^~A#jLy!N+gݒ1^cݎT^8ZYV#OA!Š?XsaNB:[ ڔ7sq=pծ#V D,]UPV ʵvXCT.^Z.FM;3K!]?:q:]!4<ůwt^_< ԍQa6_x$$|Ͼ SF>MCc[r/[<4ޙt/v:mIJcѲpp$3my'N_AV^xJrQ'#OyY|f hOfcޫ*8.G=nXGQx䉗|*> n[y9\x۳g!<VV} ՂHfE|2eeiz3viq'xϱg8LǯF=qjw@~ҹK?׏Ciy\GQ.]X>u,]w<} fm@&ј82a T}v߳Fa'Kлy8D{y.漲2L~}<4Cޫ~.gP'4OwBo\[*?@b3 AKJa/3tGà"3>ycy\K2qY=H쿰qgeN YlˋV˸Sgx>ǂ#ۿ :blJ">|O _f  <…\c&ޅYߎ8\ S`!&-ʡI_ɥ.:O'n۞s<S`xJϽS>l?_a9૎nB!u`ࠑpqA6W=r=ηRѠEǡضu_2wˏQ43C;so؟Q Bӥ69 vAC,n߲ Ŏ39ZLw$:5mXaeYt*J)]ݨS79p,@zfQ?R*yN^,O4ۍDBŔKAfA@\{7s fNT zA+@shҏӨܛdld(('EPҭő ˶\gU{DB(/&|QQ|ݯ:arGG"s?~KJ YXt@W \")Ċ)|e8h ٨(9'L9 ĕO qJõ.Uv":q* "I9>23,' $2^(/GނS猸K vn3#{xq\8}h;/.NK(ih.tTdcͨy;w [vo }{/N6UϿ/@PǺE3!:iy M[0v5w(ۑx{X5?sgM +FH| wRt^K(I@7Z7Sbλx|ܚҿ`ʶg} g"PiKݿ*8|gaʕ+Xo#CdKUP.]gL@y].&kEB7dJuP@E/ ѡ~`ɕ3 FT[Z#W9 \Wt_: EaH:HU24oE^BQ^}sdl80b(|p[1G~\72mcgGDkA}(pJħA>kg"'iI@˽k}xq~{_'$7h?RaX$bz_i GO8x GHWW4 Z6hfy6jw[Ey \U_a\sGL`ER"_lح*<;RG0OIEHd:8{3N(? R+db/ rsbO1HNI W:3ҹ/oʥN<0<\9T :u|A`6fu1CG8E"tk۲b=$Zn 9W.ewaއL U¸D*ꟿⰸ?~st J<)g ٹ feqX`,jkRLx]AK+`&l~'׋BZt(".E@E>+'Od#F%wbT,\7>~1sh%C5\CDv%ྱa3cn߾7W91X.Խ&=9.~;QPiжks in47\'*^GO딍xjPVaPD/ >oL1oGUJǧo.||P+'#Q&`؇yJ.)=Yܞr ^FmDF [:Z9L$4t2. KXjN|a>,KQn(e2n\^8Re;X TdzWu\oNd0"Ls%s!,CHX2f@ņ}l̝xS M㖠c ل>y-u5Q*w۸ߵhGnnc@c ${Nqhwtr qq4[~LV6H!THz>uA-f<9'1@\7B'<ޚG񃏁 IDAT2B@]!M =Dm  uA^AÀAAՅAA 0  `AA 0E-{m*b~ty4A 0 lV|1V#OAGA$ç 0)5><3πY~O 6 ǒu|S¡AA-bL}|Æ;@5o'wxh4[~`c1o+o0 <~,1x{ޫw`)J3fΝo/>fs:Ff-"Xpz}l4w,<^7Pm{عzbL@Z ‘3+ףi,x hТPlۺ/J)]Inԩ :0AATQJނS猸KS vn3V:zh־ܣ3rKRnw $B|Ldf+YҀSa2 6OB(EA$ZF%C,]!>,U!:D&tƖߠQhiJ@ r0 e"LC{Bdd_@ׅ P$QJ$-N48p 3ҹ]DH}0qx d xOh+pd&6-&ȥ8š(9{.ۀS-V!?'G"ͼ+-w.Aq]A0‰/-7 wr`PV,|f:FY>p v4,xk.f{fBtb 1gY*@҅wS@Sk EFmV,ĉO٩H~fT>܉9Spi*񣡪 ~\%q^o&ooッh|AqRfp-|^^!߁Cǂ94IAq!FAA  AAA  AAA  AAA  CKCtV"jA 0HKKCff&z. ǎoР%:AAya/&7n \fs[Vɓ5,aA#JaݎUW̏XSA$6YjR|yڀfvS!& F\oh"X֪>/&|j76/R!& F xꩧp:ׯdž ˰޽ƍömۨ@A\' |R0Kի?qM2>(ÇI&뮻бc*t1zK0Sz;(zK/$@w 4D]WCUD, *DAAW@"J'!zof;.6eٙ>3;;cf]vIL_|obO:v,zu7y_KJoA$^/_m 2fG#Gb„ UTܑjk|^7n% "˦55)"<j$8N>]6. ݻwǽދ ʸA7!I|qR#`ŊؼyN:зo_7-[ݻwWQ pYs1\s͏n֭[w][pOeɓ'_.$۬~-ƌCQ% !V漯:ٌ~ᩧFw}W/JS( v`"lBxYJ;O6\Qr9t֭:>.ڌ3PZJ| [~Kxxj`41e,\ n"F&={Jo.<<ѻի̙3UӠ ŋD/Ba5U)@̙3>}?j8:TA_FҥСCm\{=b , LA)mH^5ntZ-DAR)b X|饗~?8x (ʫ>C+Ą{!\]~(ʛXd$$ `-;o>DaÆ Zι{^~2ou>TcN"v]_?>=VZx7qwH[B A$ Nm3<g|ﰿxb#gZΟ p,m3ІE\¿}Y.Q?-Ĥ!T_m4ʹ|Iݿ6 vP'|'x#>E|Zv$C>gE;v,ڶm[%O"`ڬϐZV 0Y+TYb޽U>8IFd m_c..x߯ht.>$AAٴiSɻuii=- 5j$yڵkW:549|:zr:u*z=fΜĉ0Lҹ\-"Xg\R{m& v$AAB}ԩ$|-ZHKcqA~f{G;w.V^O>DsηٳGz`  FpQmC4|n΃-=DŇesK/" dL,-U qU9?s򆂸zl(.>)n%{%?_A$CTZ2 ?r [MݹmsA0(H^fk cVNTNj yp$ 7y'7{xⵄ($@A#p!M.\@rr52i8`_A 0}0 ޤ^B `Q@" @  HAA#  HAAܺP'VV AA$niׯO@AD&H  `AA$  `AA$  `AA$  `>~!, %AA#n7os=/^3a ]x8ד< C)& <@%c2c@AHͳc>{6V6i (palA|35QҺ`?s a?&Ůs6_. 0 `|qT*1n8t4h+Hs΢Ee|wX|97n:WhO?26UƽlEɭA%Ҟ H8`?%? ](W`o+y F ĀP{x:R 0HsMr_4L~tD](J˼9sA5y ֜?c܏p_®v=GcSOt+U87_G /%loc:95429g`G3aJFǠuGmy|2tup9_ya*3N߆%#1נ-ܷQݚ]A$fG_Æ MQxqa"e…+%\fH3H? -u#A[6D݆_ɷй5#t!قW_;Al!3u|g2T|djN_ S&@K :";wNѣg}gϞEK^WCIWyx``/Lz hc\xvLyM ~ Ȏ rW%ЯXu-NZ<4lMw7KVBJz-ӟJ$g,+& 7phfd1 ll:p6̀^#C`px ;bef@LFJ[PbƵBjPE78'=# }l APp0^`9CPvJwJf$%֧~ |=]>Gؾ%γE#N,8;D z& ×Df A 0z#u} sÇԯ_JqTiېuHA&HB%0qhuRX?m:mkc-0`t64Im{s7>SlS#6ۏ]1<iYwam)L=I7ÌWgÏf쯘r`@xi4o3 E:ؓނ$nPXB֕6|d,˽e^M]F[7ٳGzw_lY &'Vjv䞯ʋQTw!nOXч3qIAT^mcU\-z+=+Z *J?sLsD+VU{m\MA#V 6 22 #Rrw8a :)Ͽ eP8e CFA:$AA AA 0  `AA 0  `AA8`7!Xn& q WEAA#r/\"d"s.ǒ# [/>w:p8l?mZl&u1Xn4@A0QP W5ܛ.ҕ?Bf|ނ~޼qtS _yAŽ\|r 0% * ؄fc;[Pjх/!BAxFP P(G7`8r\2iѲYSրGŤd bWVpʰ_#R(=یf` \.=EE(]|E;S (ZѼQsEr8`95yYԔ83 ~A$!cfAL`ظuZ֩B+ rV>نV놉KP.-&bneۉi-`s`J6, q>)~(Hŗnj LTe & :w<.kx+P1{v܋.Mo9=:ХUct;wA^H̴a߮M8cɘC82cο`N( >&<= u"!==fbj!˥Ef%X,f4KyE;qEVv'T!9m{";DХk_l?tLգ/Rrعk;v& Ld4f77 2eLuX A}"2ftYsR^=J,&U*xI\;GVLg/7#fHgjP(KHGvv GQ݄/FNZ1Pd [MR>P? IDAT ADT&,< tj$gq99 ~x3PiCH` ""s`TvIb.ZXTJfO6F(e_s}v"[Vu@{3/YVٽ] ZV(??'NfC]+BAUTikRZrM=ȕѢ5TU8]>jB*b jBJ $\ )iRU $rVύ}fpIFpiՋ|vlf""YӲ\>0Kag,'a]HS~ S/ W:&ewINm{V-!褛jGf+V\kȅܸmލP& )4&rvPd"7s;} f'Uףzb`Cp݋mZ!<2ZdQd!//~vt*g3 ?!Xp+~V4*v=t{"na?[>Nc;[9<$nynv}mN<дibHۏLBR@<,w_2I ?oCaig|kH=#asXb9.؇.c`eblن8u<5a7F D;Éع{8 +<3v;8.)xݷ1ס1S4ztN6U 4HwJYq]}ѫO?Ԭ߁}@&gr쉝خA8̲_mrrs T`1߮d{}YiհXP++LgiR`lRLnJ; W2~Z9uHO(=bdYq94bCMIҶ|3S++R)ԬY!RJl_`; BS̙`ِzÃ>6CAA_ӤыyS{b34}:B`@3Q|u8/5Dݚo(v(Xv9|*y"#" u`<^\N  H~_Q+2vw3Z.&BلUӆyZAt)-q@JtLƎWJo˕rdfZq6 MfaPa3LM:}! m-¸+%:(`|oFrakq1nTƏѱ%&HI#msJt/^f*ըgF@jZ._B&QF]5oY9+aƁӭp? 6'.J|ɇ5S`sP+(1 ~[{woErj62m0-Zm< C)_vn 0s" ?: .~#F)Mys yx9/t/EzsxGhRy[Fރ#Eݘ ,*6ݍ_ynĕ(7H&Y zf] ~03vF l]Ph=u%AC1u\;yP*РYyz(def!0ĉ͛DXX4;־jUr~VW_7"-(tܬw-" *uui,Ech5?jmv"}OlٳBD`Mݻ=6gRU]G"qddBg~ǜc[_!4h]xѧ!,63څKNl`FYޔ靨>[~ܲETkaZvS;˹s?{">P2}r|t tynG;瘴HIDžSa٤T|\JHB#77W+L!']Jסi hVeZ zԉ @jEꐐhbFˎѤ`4,^YN?-;d> ?_q8mu`&EvRbē qx{xr9]|8Ylďzk ,2Fƶh}gCf*c۞];,>9؊{ 8P#'@am g1(%kEk1aQx2*{=8Osle(u[68 cƌSCCO= a許fUaa:Es>~T,OzRl?7Lz?4vKsi'չ_Kiu,>yGcp_Iiw$.<45v{;ǧo]ń c// /&bݏ +>~Y1dbv31`L:_0W*Ӻ|vXh!Wx+u3)7A9~swʺfem꣬p{}M{ܘj)L2rU^_b1 - cðrl]2ӍY! {xu+H;T̓ܟ|L gZBR^~{LaӤ{{ 0u~8{2o?lEvv*23_&(%0;!I)7]˙Tj l9aV-"2RĨVdApfI7d B:z"gt|BK׌YR8Я&VV2u3wS2u,_+rXsґIv\lYiH=zKçϠy n:7MGo?bܣ즭UhZDnð~B1;vSF&`XDt?|G4j]Kyx>y.@,7~_1Scwߣߘq+LqSDX6C>c]~6%Ls|*S™ ӡEL}4 b{WGg_CwfE/_.+{QJfT+=dQ#"u=_/Z_O\FefaEyxZTi%컻6E+ڰ g- V[9"ԩa|J,wn*3. pՂ1xyh޶v!UG^B0~Z\2ӥnFt|2\0#Joa$H|Iۑv߶ݝZLc϶U8s/, ̃nA`` 4rJ<]@-?&~@T+֬ !=!8*5"ˤ>!XM0[e87t>H(: j ֥m,23tX Ate8 n '/01gEtX)k 4El=$jiаm7ɲ48;+pj` g@KhӠHѪhӡvhA!G`^u`L9\D=>;\8ʼ]vZC5Z-L˼+V@#P~k$TS9D%nEikuF!wǟۄYフ8B)ֻ=p1ag~cֵ8yйU;8v26`!}>2 NE18z)*J3ډخ?QRS.{)?=} >`Ko5?8r4UCNQ@& ):'.dĆOޡ G7"=#]Kv Bk葕?1 P'N3"0;=>5C]>,-Li3{w3oLƸ+QAv!/Td?"yda"-gx1қ2vΝĶ}qJL.LxOvYu6"qCWs.g;1/`а8[ē/Kxh۷L3S2ΟECDsW3f ?Y;6A)ʳ#pSd`"VKz;*8g"X#V"ԼiR^ |`Y-ItE^Ffz"&> Ҳrc_̏sC("T]o!#XعeYpc'M.|$':YY13S]^Zl?\&d^˕ݵzst=CG%ny)PzuЪe\.r2"7߆#vnM0D9( ha)n}GDu1 Fv ĥ\97FcYӊw)ylS#VΟ@pveաy |F -ݮq4V~Mz߈p'b/a=Ѩs~qSlzO&cOzM ,fJpgoS\½wv~{5>xKr0 [PYŜRqzUvܫ]w̦6!HX n\@FV8풨殟D#!\J:,|n2w|qG&>tTL0Ht׫$s>Xmp|.+֡#[VJֽ\yΧxˏ^e8~>OCHdgl[ O(Q`1Bn\rZ"{ Yv PǁP`&8]; [y(@JZgdU-?^u" (EPtt}tO'=f^߈oPU! !q.YEeb@ϫO!#˄z#:&zhH:wAh`&)9Y(vm~ }%=ks>w C(Ub[`%+:uč_°Oó'j"O"#G#z&8a*Xt}q?"6+h4 xWܠh엖i4%DՄLہ8g :fsnJo˂ O`һNER~_LG#%hT; qJ\i$G(N"ibY:U.YL#~&CV$:&ٹE#P.--"Ξ)+򵠢s-?OW>WW&|7x㡉xW0gXK `ʱnr[n1u9Mzd&zANJk3{hMkoTWAZn\}~I׈/ooh4XX:9((`0$Ux8*~2&lmI6vTUQ3̊ICO.)5_8vڌ,ZSFn"̉ #RB'nЙVTO!]11㋥8 <,׈jNM¥6+8۱7"nPk:SGsn8Jwyks!ńOCG#wuZ-mtѨ΅N:N]͐ઍcFg'bhۦp:>Ɋ'1]~zNSxt-4hpcJoj\:K~9XSge1jCk7vs DFDdca! b:1Y/3|8F ?͇d*֥!MĮ}{`e{ZPѹ+w}K۫+Ek6# 5BzKɌ/4d!c&LuQ]rσp3jx0J?KeNudztl#»xӓ) K`ú悏ݓeײh|TZcO8i)ѐw5b'Ca 91 N?}Ξ hṵ4$FBd7EY!)"p!Qġ#fm-Cba-s̛~Q hw[d,o{p70K$ 6W^mH@ IDAT"K\Eߢ׺|]޼u`/*Qr:6C>rTph7&E!90I׬\5(UژC&q!9 3U]+[4T5pT6ƻPlցN+(\grxlMwo28=&67Fxc3O5kEy a<`D.flB_3"1%͚[2*u5ht n=K..a" `D1{0.x0.Gn*5Y݄la-W+'[AqA"-"nA)((ɽ?aytƊ/xm&v;!͆O>[WoU2LUkϤA Ry7Ar[fDޏPBxu|[x=_W+r yx[2m/Ǘ1#ۥh== )nPx[nWW5[dؒ( A?&x[ GNv1{FZA³> xK^~.^:'uoSGc_k7ޖەGŧ!"$od&/Š/WU?|}B({>١?N:ܼvYJPW7bjE.0>,+U_Z>HtkgAfe׷+⬁?YY֣%y.AQϽ4#>ygWS<4eA򨺘*/Oʱr9 F$4ČGޛC/<'vC]p*>}f2j/) EYi3^{G^8hKS'cIthKh_xb,[ehdju ƈCe߬G_9,fw& Cc4CU!?#1`J36ナU) X]Q-em"]cUb³akyW SkXw3%ӂeb'߃7ޅYi9zz5 rm;ՂbW 30QV<޲[]^3 ;΢L aP0Ltj'b*Zr .\F-boQߵi!seanReᏦ`uf6څvzKq"u[2)"Qt~AERf&dQ[}  :t|!8w0[)r ehU0.~ZF hB1T=UDhUNPq@ C۹$ #`>P]~r OxL_UͣiTQwo2z FY=ݙxBɊ`,OZgsn/ 5E )0,و Kщ<FJq(~7"Bp8;N ߭Y;6A)ʳ#P`o)eV aEp~9xpxzlO8i`φw\gtBE`ݮ8k|r0 [ gЩ8DO÷]Ԣ.ɘ^?c/ӮQz<0-3Y_N:UV: V6W5βd : WI zB|DiT; qJ\sezB fLiR)!bʴ*O---2{Uɞ|_0˧<翎'}5 p*X'o$+eY,=/mj4ߢ,Tu&- )`SAblwK\Eߢ׺|]޼u`/|  n0$  n0ڰj|n  n'FAA  AAA  AAA  愆 fr} @E8N8J FT$Dq8DA EA(fڅʄmWr.npe{1Gz)Od[Dwpر2͎esA WV΂ul?^&bAN!MnklD漹D뒎w8Qf-e'rd)= J2RӌK8\Nߢ7;]Òl)z!~O: +-Ba J Z>يWrU52UAٝ7R i&9Niwv+Н^Y'/.\x\+x|ᕿJ"M_[@ -]*x_IX2IDD%+@'J- Kڗ7xɅc\RD΅B 1] nQ•S>V22u_[\.'}EWъ#輧m ʥ qkg@{D+_ Ϳ"Ĥtfi)gk\pqV.( i_u%^j- o%2U(E%ˍ%j~u?"["Šby>X< Ţ41Gz HW% PT4^"@$q#Dx)L~rna6. %Sh@ IK8Eri]%(,Nj@_#$Y9 7u.ו[ ˆœ [Y*R,<}v#È̚cЁAˆHmjt/|5MH hbZ򀒹A%R/‚VW7n L ")PNcA%) ZLiP%B3F`K3Wn+Nsk#^o[D SA,b5K}D4G|oUi!K-)`Hy(;VoIqW$pٰqX |_8`hʓ;meJԜz`@hݒcE۪khei0 f)/loAϮc :PI# ){vA=WZ,Z]'0b{2JG{]5~q4$&BġO׍`5 3]$86JCha\9)9kBnkYaX3QKcXDU!lE*i|6jh,fIx0h04 = 2 SF.,ʾ*\\.}##n؁؈EO9/fwmƍ(I = ᰏiEe/'r>sM]^a0q^MfIhn%y[) I d֍nt`jCͲ9|(D[^$zy;V,X- 0~R>|L[Ջ %e#2ƪg ޝ1L!7%Q`Ӓ~B{}kUk.߹=ZFϻΡr(2%X%ROf3lCt ?d`A܎$<6`%*ḀH\%,N\dtfڌ֊95ED3w#𿩮*1A,1i1Ôts˳ߍnt`C/2!F]NǺ-qth %R$eZcI ɂ: =EU UWrƙxOoOYG-,2@^:}YyV* DyaXx OnH>VVb.48h0gAU\+$a>ҊO9 k2m]I8nO4wݞ#Ef'A2^ 3Ųч9׺bic<ƂJc~x͍ rM4TlXsN.bcNǀu+#f^h4E5 ]5Z.e̓v,4#:Őh*s ̔\ m!ZtqQ vaQ=sVsб+oEm;j_]zK[_3 =rr"AJUs`hQ?:ȎٰB"(tNm4TKQz;~&hW ,`9WZF,i-ƥri#2[$>2r*5 \ܛ<]LJ@]nt`-$5O>tY4^ľ- &BMƕeD˰=Z+Õ7~'CpIȂ-9@sD p;pPTԶHZ6!$@ qG0m#)aF0Fۨ*?Sv5{r'ayE_H2uGFLTdm! -_FeO,PJj~f iZVcuc#Ip7-dmTb''Q qrV&+@pEPnBFjSԭpc]9n1I҅96cm:IN H5d-nD4xF & PZe f292MZQJIv0vicѨ}T>Ow[BW4[g:&l  6Sdoj4gҫ*hhɕ)iɋ] (F@pfEa#=˪Mm:uގA1b˥c)yLAF3(so kQrVNdTmWbF7:֍ZFku}*\:}, 5эPYBw)5kws%AEO GF]>&/Ix]d)h|ԋ4 ZF ;ʋ CC 3{&ɉŵGa5JcV:,$0$LnDYdN`͸aC֌@0>E'7AD:K͘庒@غWՇEV1U@L{-F[{-Ign:$1l}WRZFLXzэnt`X?bgc%, R twGzVH Q?񘊥kgKQioO9zCe<v 3fe#>q0u&˓8sd4Ҧel1J)sٿycya.iۄقO2Egg  ޕ>F#DԊ $KaEi\5;gS^kVb94A0r,F!3ɵ@.jS 5}{.(܌݄Al(zU"SMA_Yj!"d7n Er͝#n*u@2adNr, ď*)Q#v1: h`.%JבH! (~%xآ%ZV?]F˰A85{B^} mB/9ge4|ܲ^)iD] Mĸ.2giB:i~$cx?N P7V0 =E̐6NyM{WCcDE[>,#)y 3W8SC%q +ך0k!*ɾvX7^mXDA|EEIRYW`|j%AKȂ1supӱCn>߱1c*Cf39!v奞1q g<Z*l#\(ȺⓒOPR -„P5{G3gM7(Wc#].S2ec+O$X ~V,NPas΋? {Flxl0JmkRC FGUm-Rnx;M+6z]p8ҵ~)%Z`A6`I퓸b欔g/Ȇ fN8 )[7эuUG]^3W<S-YȊtfT4D `9jV9B6dW28E>,[.1E*W4t[v̟J_V[( f̢/[VZJ 0nú)7풡|g.R7,_3,BX0I$8K`џ+wjsSk+"dKiB{9JE&sZ26py=eDfa j{s/+ɩ%_:Ւ9AHUfn9F1"q#wO=# >;2(Ɋqˎ\< a&g`$ )uf!@L$J!0Ekw!Kp4t65Fui΅ed)0*rDѐe1O~O@ZteoʼuX7H ]Vw?g8>YE2 ?: ;GQ\9 91R lB$ @=ݓ&ұuN%X0M[EلrÔV'KOE)9gs-8*tI[MdE "]$[#513'>;țςTYZ7\&zx}KLpLÖʝҹ@T`4R:t0G_wPίͬi&P5)qtunt`xQ,EB%%­!9Υ7gWvĜU #PZ( ; Άf4Ԙcy-Cs}vݒppK_wLvEo=,CÂ,K}8B- Q;ҰaR%Kf, 'n?xg.`K=8d@M_V3d-Iturn"W9ϖ.m.uYn$Yֵg:0b"RzגʱVK(:g2c@X7n+"9+$ sNR% G)]*e ).A\ ,G&2iK骅V% I0G2 Af$r6H?~0`"V'H@2;}3%Be ֖͆ĸ/k2,&8^m^u,1BϱdLv'G298V=g`|ϪNʮa(,j+7پ51C\ ntƫВABL ~(RK+}(LKqJfqbB2$F^ ,1@K0]U'3upNy}'[%1<_}S傥&b ;Ĺj~o/sX#K֫wNVv(J8-fXMg&n?VRx"aa.Cjcd;=4[h6*Ln"C]Oq-V5iLpxWy}IDTWF7n|uE9] ) MfNݿrYp•=+Km;3IMhĤ 2ehL 3mwNi_Ƃ'Yf>MFZvMΓDԛyvORVvFlʼ@aScb˴!GD#%~S/z_{jӭLʰaF)k6K=kxSCh\\xKmS/N08?hr-֮bo/,bx $n/)5 [9taTXZrΕ$R6_ H_^Y`n64 kط9ںBMCMĂʺBZp*{ 9`I+UeoV S'5TT6JG`5!^I6L'AnNcJls$MYR3Zee=HR d8rq0bs´FQ4(n\Hmyfgٍnt cXXzKՐ DÃƋ#Ox~K<t@or=*= p-6̵s _ dd0GS9#4<;֕ڠĴaSE=6vI݁i#K^K# r>np"{|g;Z5ݶLXjf+g~צ5Vz_ݍnt`j,xDa5 l҆@XݶwJB*$\Eijds1]|S |'}&3RF62Ľ+P,dƵ.I(&\/_eE KN5$D9Ԃ,`>/:|׊C.p1YYGg V(`5yYw~ |n穴A=ͼpť4D_(:ٍ}tVV~_Zl`2lppxS$;jL{(CNI2]窉/*blb<־9k ==Sԥ͚9ZּMbsu?%"(m7٧+@XG>Eq37SQI7d8z @ nn+ך1_^|4m*z-T2_`Ç^uN&1ߥ;|> um>)s{1 Ηx |]Nk,j[YR51(9Ƨ~mMڈ(.PHA#۹aJG;d:f{XP2diㅝd8DYEV85݈$J=zBkQ)InI6UY EF#^T=ZWC1̥8=-*mehm:wX7~,q2G*.[_ѳKKL~M0-e$pܔ?,UDMW[7e{^ :+ZHZ$׮t܀}"h`L5MtIp *[v%SEVt@ϏXp6YuqYa1cT 8npَB}E!4~R+ͼUS?BNH_Ram!IqAZ/Xu8XlQ`Y8\?Mlc2qq~L$72Ev^lcds)]4q*\35~חخ0.x ]0:UPҖW]m5^.3FX#o_0R[(@6l`@B-]r~ݛCi4^)AV\;" hHq{acˎ$墯B9ae%T,VW5 +ct%Z^`]\`wJ&;n#;Սnt#&lY/+EUCC:|&Jי) ^k9=d,-ECì w_=u0~T-U!5q[u`|]=..^||iOϦ8:t gk:h:/{kGڱ]pKYJb!f aM,y4+ >[`4PJ9$țr Un\PZxhΚ^1se;S?+h_71U1}-U0y7ez 5|ug7эu+0F((XPH bE"hKy?{̵ ڬr7Dh5,0m㬍orwWW)%w&47z?!$h׿Qo>ƍhN' O u6aRm.lg pk |d.-bS]L1Jkߡ꥚59C moasg;^kjÒ>M̝7Z,'YmeKiV 3B{ow%5dblfm+, Y} )N>;֍nt[fPج& LЊׁ0jO J׃0(1՜5`^igL`Dv/dW5BʔmY,#ߦ~Z+L. \bBU\9AW"T1HRnbN 0pד^<àT_Eos&@!yi 7FdS1 ;vQO=,Z;] ᅧ+gzkK6MFOQ-1זԞc>J &#rF;a1X0"rӺy,zWIЩP+f#rHW0ɐ$'O ;X* # Hf-PhnaܐG ^*L A?Ntե_|Zl_̈%b Q[{Y@f {¨>A'QK/~iOZc26hP(06BU(ϲ6Z&3o֛ ,^iӅ g޳͛2 IC-oNnk ]JwO`o½"Zj X ´M o;X7~gL?Y;̒Yj-kd"^FG>Zdž91 ZAUc& EՃV* H)pH\pzҎP a IDAT!~9fj^,u~` OXn3iy62F͢Z8106 [z^=tf+ ҊYTQjjjWcQ!HU# m, '>)="%?e&D~4RQ s*U{naGWY f&{B|{k(m)s} 4jUgEpMntƫȜ[R!RMO!99|I:)٪u,( ] š X F+H@AOmvq*:10m3ׯPJnnb|KLEKmP|Q*5QT@O_w^(8u`֥iV1V },xkmxX+{e@B-ڲ964Na AJ=VV(LRr'*;"yZMgw3`5 Mb*: +Q\E([—7ـ^`k4G:#nt`a.fK0cdI +L]cw,1VeLm"Z!w@u7E(;0ﱄVi$R +`PoakYD+`0xWoMtrŶZA_#`PeHبz8w|5LԚnƌk_=Sz~֪};]&H}x k7^tT;,h|JZqvJʉB&$M঱4B+S-E2^aߗt2lL]Rϳeɕa<Ն"ntWeR+q1 BIw %懐ɼ(,*pT'({6A]y$.EJo1R鿮\jiFڲ&zVl:D7%1A!M/hh8Gޙg{CLS r'bQ`suaZoa}KoCNxLcB i x\?"edoЗig[sY@fvH+;gJ(.TߨKؔW 3Y=碯Q- W%RVW~`l| kIEFʀ2`6$s?_IwZ%s&L)$sbEهC W6XgN!Se;/v!ӋߠߦadTP%&dH#kJ-~jIg[Vbumb׬j'g:EpbMjUG gpShj.]ʚ)\, /oBou5 8{Wj[l8ڲY $O2vt]5%J#{/8 552J3%dv-{=eqZikӲ4~uVqXWÆ}yuX7nӟ%_B™R ]ZO\E|y6iadXVd-<VO.wr5} |M&WbgKa6b5lr!>(l | 0M19bXbF縳2Ͼ;٬*9@ڔ9~g3hah< 4mv17:ww^}DgH2?0XLywEfN(EYpT2̡jx@TalX;1B*+_F0Wh[-WhdL98};/b=s\'2.Ӄd"Zس萌cH:1`b쒛IԤ4|)ƬTmg߮˥Zl* BxB'{-7d/~>^%]ӏEkh[ v+;#^.Rzs PIJCi$XU2ݐםi˒$˒F7VWA ߥ"1ֺBt {'F7:֍#^Pnxyeuf޾c6]nkoσ_bjN6$; Xk}lzAPA,2[~> oqL|2Jvf`"eh$v_ \Pil#)Us<%}ϴqOb 7D@qehMgjZKr`9nC`OVz  ~a+\bѓHF`e΃N1ж':ɐ47Ow>$5*F7:֍W棿,XR]p` < pY+ aM%/@Xj:a*FaB˓62)~[A, _8h`kv_S)n|c-)3,>,cX:>t =W_G/~(zPsrb칮Ɓ1cW}GTC0m*f+ώ19x.c1J5WLH:G[0Jg_jA1hT> `+tB?DK~pha|iXN*\ևi+tAz Fp1P֟ &$F׍nt`xaNc#"{^;,42˲·)4j%Qf_kz(:@ crE_Nꅯ%6ZbS Bxkn>Ϙ6>;G_xMlo +Eo_a9η8ã ̋>xm\pZW8| ,8T^]T? ُ` ]/jJ6XM/<%N/kL VSʘ*Wdn`+ tkZqs(RM‹,4JB=j&qpr `ɱz]YJg'oo,7te%imZ%vf4}W)y;K˄-[U+i+9~1L3Lp~ xN#q5|o7kCgogKPkjsw ?~y[Ƽj_+`60ZXLPX}m(0#066~ kRϿYUX(6T`z>˹f€/OP_>16N\3ɚo@Ô\$ %ehˡJC- ISv"VFUҗ% 1YZ4lD؍nt`JBYbꖳ`,̊RpP_jނqE]}hL*%l*# {eHYʃ' "I,=:m3X nL)g??9/-|~0?aw`ڮaj|nCw/- q^UX}Q@PSϯ L{ԡ~0w3]>լWo3jry?ɧ|]Q@o0ak~i1_`qy\#PLAz -`g[lYjnuLт  (MsQ^K!x Z:Zw !_ja"t.Kz+ =TXΝz2exuX7ڈK(jzZv^8+7]N3s]M =] _f0Gpʈˌ=[cO8tjYE23.Y+Y@9[se_ xzC<1..+M(?ĵG3`x:99b7=jWyeigtF~Yvaa= ]VwT:lLV.-,1[]`tyϰyof5G #uܣz @9X8\d5A-Tԋk:j녛!F7c?=B;@Ħ"IySɉթ@NC*m9'U뺌mEa7c6 me7эnt_GZ}3մ4E4Mkj]Y}À]\\ܡx]Bi QMy1ll?=5B -wp Ǽj^b̢%iK1By¼ak  Zª:(^6 ϸZֶi%{6b}=Ϧ6EEԍnt4#_fÙI~7@M?SL;|4@nj14gx~|dJd k.1?Y,rbcmJ3jHKJBmyAir 6CaT+JC+3sgg14_pc8;kn={_3;ἴh쩅Yg ԡbJt%rUV vA N@9X?\)nv_ 7åϏp|pdEoaqr7}}^@Zf4\d4iH,N //0 h2̬~CGvʈE:yϋNg  uVF+ ߘlw&w]Fe%kjb6&HޥǛx|!U@32ra;ʞ҂ߣMtOCOj `M)# A0aegZoY t'Eˆ) j,>|O~ .. F :O[xoCc'8]>OP }T}OQs!.GQ7>J0=Q?|x+œ/DƝRC1.&X.P}l<71ػe@@UAkH2D[̹lJL̑<$ud^skf IDqy7*ruJaf6|بڔ5+,F7n Ɓ0-Ny!nH5c%xȘ4K E*Jٲ€ ku~fh~h/56Z2F7:֍ry&Sوҹ,Z#:V]#fK;n+0pa. ~5`d-` R\9e~mƸ=Zd!I9BtSI~t?cڮ+)qkd:?5[}#0>;DiPugbdjY]7|:=G_   1X7Q61-̴/:S`k;3Bc 7ƦOmXd\y1 ]bV s -&Ôn7:lw"մy=?0}ӏ=>8z:%dUjo2 7zsۀ &G+ˈ1 .d7n"bn,`@,+F6+3 K y:vFGBN + PKh00eG-ϣZAX[%|l;iۇQbi"r 3/v I- wxCa#d6C;"p΁(x{G8(avo)=`q:ǼН6=x{ǰAۻ;V"wjO%h嵥}X]F{׌mEAh@=1Zv6ESWB߈|$_| ~?_Oh(%1;^z&̢{<c$jZXs[p0 7F۱_Ɔe&HnRI+. Et|r2U`L0^TZT(m%l ^&\lhhJ/dƘ2zFyk3 VgfkUQNQ?njW{Fp4ZA '}^sƊv[Eo`F 9}V]E X[5d1 %̓*dv)dY6 T'I91<ۂ<ja/F7n`j<ș_ M혆]p:_{-R/= D bNFbHthCh!U쓈~||I1# IDAT `Ӏy_"~C|pvmEJ@Vš70F?эnt GmWa@C$2X,!NG蜤ф2UrlnY1mȃ/BQ+ՂZeCղB_ң[VuR64 +R6o %8!y~qZ"ϖ#]%V6;>|g8^۷)>sT  [}%O`o{yoK tjz]l%Ƶԥ=e }Ӈ2kÕ$CpsU%Y넘* d'aA+Fy>%Skw:OG6:?'HXDC⑳a@L]`,X7эuU0LAEr?L,8|$QKwwfa&/jb<8CuafYsO c]\#e}NfqmGͱ GbLqQ!` X %dnZ@}TwF'8::Dw~-]7 Wat_K8s!EHvhFkbo˂AX4=cIVSc l߻oǵ (?&{%M/..y~gswz1jf*Mе(1cKk ` ]/Wu64,(+S/1;ԇ[r)19x o%j6>/\7n үS?G}ܸ} {ׯbzIIW1ֺ )%#3Hqb~%uoG+ا!ɢGk^ a`05zh@}lWrRMm2}31= : h˩33rMG.s1智tw LgY|'܇x?CoP`Φ4e2՗oF!0=W`*j\5$#l\yj**GVIO}ڄv2m!89aZ8?9G?9~}]P >qo" 񕢦Xl,K&]D;֍nht%n"QdFP1'mCEl8 n!jh#:ft/Riy[OfYֈ֞Ee`i{߶LBiQk "X#pҡϐvySm1`Xw x@,ߺ߼>t *]rxWBdV :rn`B(ps+by= ش^R?2M zg۳?mY8~bxc Q7f on$Ebk9j0:P)~%)/HȜ(\LO|?x7iK\k~~wak-ϾTf^П%\*=I;H:NJ//navmq7эu9G2|[pa\Q^0 |r˓3&Tyg[Nbbl ,c ]h47ܹc%*o a;QbWm|Ccu臿z-]Z-phoB }UXM#Lv!Yfٙ#qt/pyqsc ns?9'? `5#j§5Ofr4[llUGnBx -Mrb e]d7nV#NVôZWFVQw,;+'>-UjU ]K"Y!-ύ$_U5fй'L2q> %ՕћINP6 r^da1)MAT}|:u Mp,}~s\m| αx Op qͶn1>qpRɇ_{pk7:vuah ZqN0))= RTSdfY.,ːLJ? 40vZ7wvqɹ6?{f(?[)d7EHeTFk F84F2"d;㾄H"T6o4 /ߗxӱ38+Jy(X'_ɣ￳-nyO^RP*tݹtjߗ ֭;sC\į~tiR L6xs<1kww%1w@s,^`Osk'ܯAݭ9=Kӏs\qeR)Ώ3 lӋ3uk&];:KSR%^&hR ZH`ղI樂N֍ntR wΞ(doZ)CIl\/K.dP$Ib,'»3!khXbQ-1`pzRGȌ,Fa+r$sjD+E "Pܛٚ.IjB8ƭY|0Ss C3WGS}o6>]ôD//KollX6Q?6xs{n^_է=z X4s0l`00+b .89>CB67_/1Mw\e>#E*{GXW^c0bO6MĞK h2x,svD^FcmRN!S_^LXqXK# v051m$<+֍nt`xb{>]kA뿸im6qfN"\bW[-ɿUEu0dF’V~!Fz Ǩe-@ؘg8;˭vX Ԋ/[Ka%Xz7oWa3^?jR}$rxw Lk)[9ԥJMLءq,=2 .q3]x3Q aV@]5P_Sn}^,-Xz'g쇿0>dx=\RSs^s4fqbYGg괦JH±Z00KZU= Z8ڦ|ra2 mmâme2^)xcu){ 6!&ant``\ |j8=Kl?_7gCd{gh<K3g,1w]h}V7P jlGGq0Qx {'kpDjH3te90GIx햎ZN4h0>ٯpPƍ~8OVw Qll1?mhgW㈢Dт0$M>jtWgy Ĩ{+|g^fQr_ BC} w$Z18QV}S/rFRp7$;ByF ? F,N>fףbtq1=*j[{i#S)j֜0ܽQ_6{lsdӱhpl:y'z۸hWIqr>¼D6eA[M.RjlRmh,0$p:礆li@dCY,Ҧ6K> ߗKR/b0^hvvz߼w:E˒BG(Aб?̤$Uz6n.? i:Tn?K8=a0*'[K̛ڀtjzbuw+t *T[[ ojUgs% v> l 3Fy?61#A` pi׳_-U]*,<無2D@XI- ]_J`a 5ۋ &%Kح߬_(G ? 9 [pJOYALZ.0@,NR!Tϭ[O0w5:mmZv<'X;1xoD.AX%|dtrb9xfM8=&0:2f c)fIl= DRUNSdYxrEl.Eih̦ezn+[pI`VSj5 jժ ~r킶PȽz p<ŕa:U'2G!Չ~QaŊ51jp-l:%Feƺ`hLw*5r^`ev;^Ah0NUnɹޮv_`J>TeSf+3ժ@\ZK h??n3ud"LpI4 ya^#\w{1٭0;7~봿wf*",>jQUa^'oǔi? _%-Vr X9pe63=R|YñF9r'eP 0_3 - y'72cA_^-G ^(/AKB;&RzOwLDZêUЬ훏Q#Q)5 O86 ~Gp"_:5F젎EZ)k>X,uyOg%օ􁶄<51gz24eZn>. zT((w xIZg6R&k1yhQn``KkǶvTݪ\*ŀvW긨w-ܾ;+Y1ݽ]1},K|Aj֐q]ۯkƀ.n;GunOt`l3Z戡;%.;XF{YY+/ٰr` /y+#rp @& ړ L҉ 蝑+1_N"kn"Q@v{^\֨ԃ" ۠sᜥWznG,_@%2%>7YxP9@J<܂5\.Jvשw[ۨ70L}SǝWoBd@x" IDAT \ 9ד*Z;ԿS4fj5Ar,ml+!+]dv\[2Ek/V+'a}|^d^!<܁:*s7:Jh׹ާ1ANǥ^]lϕʋT:qk1Sb Y>ŋމ4rZ|PYzX=ʰVu:FWJKwԿ^_`B  )5@Bna$n6VKVr_3e[^a,`_D6 B 'ȷs9^;[pg/&Ѩ9"k]@}lO.Bǻ,-<vF4مZYF6`a/Srm)hw5F[T=۟⃀¤+g6j4u &p;k5^`hls-Ou De<}x*9u-Ou^mbR Kxl҃)02p~>d2GNR wQ7\K2Lea VHQ~@BZݞ.Ώ\k=8GKu71fC\| B XhP G'GA*sYX&0+\[/= z;;ַ)JGΉVGDl%E9Xė @Cda,\mRVr9ĉ;plK8XV ԟi×[kbOY}e$Z%!%?' a"~g*a^^ ULmt+'h5*8$pI%͈C?f󦙜p؀/뚕 }muq!J+δ*58Q}Q8zpAYGՐ`f,$vqvX7I {sr|,ATXr9m]~< %8=1Kޔ~id;{nCe;^l-. . `-ʙf}?gIa&E ]'cm b3j5kIgGq1z;[VLpm`{gpM.QË\=qUR,G9Qr|!l792_ю̡&:jlxFr—>eY@u/:5"xd7s̺!@vNdI0 Țpša'Bh ׸q^yUbPIHB(z]q~`Y#Lgs\t7ݧKyΔS-~_n%阒*7'ffwT'UI0hk#req1lq?+ 3pl)`5Td sC1\w*n?Kj[Ο9F 떹$nd<+s,ט @r`M ԙ/Ӡm˾J:_"*PC0.1۵y!z_.d* ,Zp  ٓ$4KLWaac j X?CzOė.EÄ q-hu|***ʼTP׹_v uet2{M4U-OqrDL{W!D7o#!H!x|,-pxxA63 o] lu/j3 uP}݅Y Ob+@vlʖ,f~2r9Y>щeQ: We_ڴU/5e\]B=4$K#b1k_"0w&b6:@/K>LeQr0QQ•'6-ܓ&cOjb|A EFipWjCDTŭae(@DIUV-糕dGl+h7v,&g\g&轟 w^ <Rܣ1P >~VDNv;;~` JlᵔLyX`HKYг۠ '2 k,?%+7`zgMʾU ;Y1R,N.pTL&âqW[r.,x~EVµɖ{3Wa`TP5{NxVt.[$I*5cM̈́%^=}m^"柡i;-i,l(7T;Q l" e$x)ƣ*Z͐–qȎ0JmmkjROӽ;K9㟀GJ1Z|œUslm"D#2oN /OBd`YRd[R]/Wo\`.A%/<_ + &0 }b%zw{8r0 `ѻ9@k~#\ |li[]T5a뵆F mmi0vp19M`UC*|> /v\,xEͤԩNXޘG/|\Jޟ?Ko5\Kj٨lQYĢ#+DA}"NZ"{-;$mIs%+ НH͸$!/mA< Rbņї}lr e)9DZAV#Ϋ`r)uhJ;*^Rp4G1OfuVSNg3`W?=D`_>Pn_Nl9n5olUk$Ȁ8\ϑ4+vXQwZr:tXׯ+rRxasiZ&>>bC"N[5ZF/rtzh*@%[ßb_Kph%w=,4ѪQQLl$[|c8~Frz]T+53樮,XOOWv"^}vWn\_}oO p^_-2n!AvfrbOhHnarNswYCXi0a>t+j4mP^["bǵviu=:jwܘHH?[;5I0 M@O~}y+ 6-?q4M q鼎yE&tl9W9_|Q6UPI8a5\j^xnMf;LjZ5Qw>_~тˇZl<D67/M.Ҩs䢠jtY\W0}Nͦ\vMdY?=V`g/INI@Ql+tc,Dg(X9.{5&w&*A& 4gxn,9|YtR o-sLF_U19r w%L7DM%73p2vY.'SQ0fB>"K;WeZ=Bݏ:N5\I"΅cmJ֓x>j)#u]޻eUiNkftTFd,Cs힎QhiVtfNqttAxA.vOy*".lqEx|,MfÖz-(-yLu6]p2A/ߖ?sb}~_UU]>޺chu1CTE!3JJ *͗^-\t^GU`L.rf]R%In˙&\v* *X""S7([7X /G9Q˱V\槸e?<%6hpv3Ҝ@惾>'8Yœ05FTj.>oklJA+U)j&'LeGrb QSVxƱ`-d6;S#p 2FLbC߷ZrʢCGop{t>@Q%9(?菦8:SFh]G`GaZ)c2f ݊*6T\x N'p￉[W1]pI4lz{q}q>`"`A)-3)$C,]W`[8P>`I ~,GooOHU >&.2@5V;gaIgʨQȡ-3$!::5UvN%`]afe6>=N0Mt3֕Cla Vx-R}ŊO?ǟ=į? N {&3 -uN˂j87ݝnEo-s7\Ο`PngG_B>9mZVlj.A}~/:9`Kː !WX&0 DzsŅߩnHU=s-_YsXT+0aQĈm HWVrdbA=Չ֝h{? pFD<a0Df ^(IJk]>x[' IDATllw T-k8hMֱ|K~`ONGgH;u\|&5s"`VLh Wtۣ3_ٟƼu}u<Nc|rU໯֛)Vbu[s}J+ ^'0"(>k[マf_X/ňju͐*o/gc lĨ5{V4ko};쥽ְ6I<֖$ATeSeoaXbHd^[ky-p6_LкpYrd54~W:N̗< 0*"?˞}1,#cXxB0-<X)B9zW-O,Vʶ>G-,a-tcrk/3[{1[vmb%HuDp+h4BqVRYR ug$ۿy= C c ПMp:h:mZY0 ^F]7$+S.yE|/Vݏ ͵Vi-zo@(\eA[hu6|_SR l:믁S JC-TU9>z9\u&D aÅkiS l&?WRD?|Dn"kq~:-IWb n%"E@(FKX;洐/l.)Qr&#]e*-f1O,kum_qV4$uZa~:SQD3$kK1]$O9 #?2bd֮}MH pCMl6x[/3tM 8=.Lmls,ߑ ZŨ;:Eeϱb߮?gG'k+[ 8\~_|~,1DԀ.Z>֮OP@̕QrpLs`&9ڀ0guVFy)f1BWQC',?En[m@_¶. S멉7ϐMTWScXf5U>n/E}0l{-YDk 2l*98??g'HkwёGQxbZ7PoLM{Q%&#׿OPno; La03fS*`j65QMx9-EΣ/!{ʲDLu*jx돿hUnX Llѐ mc,L ]NM7WbqN9]ha4˟-Jl;F+`k]Ec[1~"*G9JV=1(!MNi,XifЗ8P`N?a c\1cF<UҽpqDćU(5E|٭hP3I78e7m#' ]lعnuBpvTd_yKQrarӕ3\n eK r#H߻x3 |fP= ɝ6ip_O# ֘ ݨ`R@fNaJSeg\vIS;k70aAw^Z,;mj36x^6$xU 2?QD>*5w/cM-eZr`z$7yM^~B"4R4LHi,=7sDeJ,g-H7{H&&,Vؗ`_\Js4z Э%@kb=Ǝ|O?`EhQ8vBu$&# H]޶fĴQteeÂ_anl&ڥ]'*_+e#uj)j k8׀NJ z2j6GS`3F;DQ=*pMSk^f#6|[5@ˆ.Q3@X hDaz;SkgޯMm< Zn|, 3׎գpŬ^RPҩר8(X9dnαS_ 4}( U#a"F訂tڧ$^@_q)t:`^bĊÄI/hXP*Zu6MƑ\mG\.f XLL%:0 #Iܔ_vr;)J~6,z%4{]=9+6K.@ph'` 1w 6n0;$!7hhmaqÆ1wC`߭a.H7AX@Zb\Kk`K,?(} fh+|xfaM_$}F0V&ˍ)1t8E>` Joc Lk$sARg&fG`ժ'VXɉqv07!,@Hfrs|sװw .| n_GoozUsF@{D`ӯO!,32jk,P^j!v8臻 ҧrPw*9++wALg›6jZ``qʈ$x-Cwni=m8ف~~@h/!\,~kR/V߷E.cA1.㑼˅ėp\Hcxd$Rqj =I*oGǘa9![pL3ZVS`1e6l)P;Ymjk%w{gXr ,a/xS Whnڵ]V"[F=;Ge9Q) ۻ;v] `HW \x\gDɹWp^{ ojagxl9U`[oRB㢆"c!Z&- q.^cLgCUpm"pu/Qr(#7ѓ4],E^`wh)7nhnz 6K (6՛[yv#˷uME3I6}zbDx&+I8^vSt[):1Km(n8}{ )plFD o>S@FNn7rԷ/ay j4cfRTS:5~im2_-(N (s=Fܥ7؛ LʋM=7o\hM9+&[\Ҳ.2 X!ƀyO5;q*tdU$z56}>E6D+W9Qr|6 whex#MQ,5Y(6R!yNE,/GFǢ x=۶y\ bAwp?] ΐWژklOZtwAX'lQveсQǠ)X^$6ILwTcCӓWhbj*NBo دL2x^*ZyWpYKa ,3]0qDWCo;ؽo t7LZۯc;UkHYŏl Q3`P`I|hcJl̋h*~GЁ=#Q m!Cd'/cr0bH~o7jrjLuܹvz?#;"W0~M%61ʚ 1lwRTOOē,di2[f]I2 Gb seKH`l#jrI i08_Y3`Ϊtf¿WVW Qo6nLg}5_ b<-laluΟ}{h4ZzʌѸsxፗvz[A!B"va4LH!~-׍cV6.L4;oz#F{V?ͳa(G96 qm1d;i!#p b`**zSPY{;ۘzT`tQwVŰ$ũ5\"UkUGq<W*Vd|çGbʛu):błuM. jg`98Œ݄g=~,p>۔'fy,6'/rUI| S>< Ts^,(J(sg[]7s0(ugn",װ띟oJ߫\ٽWyIb`YA^N 7 >g2ۤ'U46u͆+mH|`Volu'Mީ"3S;Z&<6iq%l(*u{MX9Q+G`v!SO-Dq'hz9`ψ0p ܻ̻¡/:ゥ%]' K B9uZf0tw2Wk0 ܊P~R[UpOM]Jl68?0Yk Lgg/M(X9_KH𕝐V~3MV@6+:gҎFYmQB(<= "FQ-,E6:@*')Tє-ZQ p<%bJ>DՔa-OpܔM{4l`=J,C l@cB)6/Obp>¨?|Y%4lY <9ˊyY"nHp CV)A*a0"p-E5K+v12y[/I ,~,5 VMZ$`+wEKJ=JU6.IqiO:yȼ][(G9Qr|sfuEN[&-b#7i)Pp:1@f$PoRo ʎiO+K'MF`rdi*Nku^;_V^Di£'ƷL?oV$~.8Ze'>L0ZJWǏboph@ԃ™W@k8l XC#-cIprTJj_6s4a! QBYzhxo|OCkfʬX`ش}z(4q=q [w.L97 ]D,a֍7iۋ@(X94.JX_yaϚHڭ7#k] eMQ},%> S'*AX6E3,Wͦe&W[/UOOX5NUճe4z!/Oy6!TF(8n_~ g5DQ%+VGyt6ݏhHj@>U -Qo-"l(4=c"W BD%D" +k[`rĦ1O1`1\QE0R\pAE ?K,mښ/.Wyꍦ.:&5'Ɨga% +G9j"r| 82}>r*e>A#M|IGD*$ŰYɑ@+ҥ*.n1%ڨix6x4$b9LlO#r[hx~a<骃&S6c3$3DHw a1bXڸCDx& S9N9T@ßtZs"7MnM'-s ȅa^r$i*EE ErwDns$̞d0x` $E]0%}-͌`Ih6ާl9Lx}ULgH"yYH4K}=e9QFK:F 05{B&N;1]v /'|6cpGQ!Od p $9B)I; Ɏ&Yo|dVG:Vy|_$\Fs+WQ=㈱T?ēsә63묏D WVy3UIvR xEjic6.BX}pb!=e*%s2GgR~=(,z R>eɣ+"ZE\Zf\$s.WɕakŃ0 l,,QrPn'wzұAtbwbY؆ "@"/D#G6EaxZmSTЮ7Z;tWzmW( )d_|^7[RncN Ug'5ԕ@:`k5~Mkay8bɑÜ83Ѭp4/gckV"'^h<ў^wx'ǘG#|#eܣ/;TPQͰJf"t4A*8GZǁj?t*v/=Vvx%V3 [41b5A5˔g&_\` Yǜi)%$M[A,F@o@y.}Vhl>Gg{jϫ]q͞ c3{\/c&NV1 WVkE 8uQ%&mNd[ѕs'yK|TIbQpK $ -4s=T磺fRkFpbN@_C ¸;~x zD6[nHeL].8Eɋ4I=]VhZ.\ÌѲ![K&sE Q> )6L7DUDV`\kZr_g.HiT\!Ĥb#XU$RDNδlۿ&AN0tiZX!@=>5T?z qvvnav{?9B/`p&L`_NG!I1gv˶^bt8' < 7%i݉2FŌ' O=?j5$J4󥀦MIQY,sL$<,|Ab&r˕ֺiCSw%{j,h]zVipG kpJ(\1||LJ=1ncl%13(dFs] dE +hE@W@I\ g ´]b[_T~aCP,(G MAX(e "u/l}/tهEaMde?"m,Zƹ,16SIZAuTϡZ5qg:6}D\s#< Vh)ݘqu5/|9V缁UWTY] MY8 '32nO9>1<#h5u %%PCn(-7!A-݃!u0`i]4ZM z­1z̘ ״ j-Q:Q]d"x9F $) Nɖˈ,~(*\#oBYXse%.\IەK&(G W/Ԣ.~ *ptMe4}tM  b0:`îykEuB/*r,k]uǭﰿk&ހrbS"U():%S-R*t9g8M4u1cX=|:ߜg"[Q:N·xgN&BB%m7>pͳb1PT_Q1* [0uEnIsˢ Q5:B̮Ɏ4m\!~H`_EisV"N<ņTu = 5嵬~unjiD7BbkwM(G9JVLfet`G)Ͻ(;p1Y0ĺ0j=&FTX@lF Spj!`#L[d24B" w0[/w0zW=/tކjgl5OgfSX(B󼪙3 F-WJ"e泉?ql=|xɓS,Έcax^3R֖ lG#ϰSg _c9("G]Pxܳ2JuGV,o@R ,_[K iF֭~ d ŀ4Ѧ sN #XUU4R]2u ֥ A='ݶ Z!e W+Ӓ1FhpFj\BCϙkv<a4͓'nmFfў#gR0i+1՚/V̔(X9%='peub$ Q '3-^V`La%df:e4i2VOR^W؎T:өfjU8ȼ? 5 VHsApxZn[yKU0\T09? rJ>p CCMZ0+oz`ć@QDhbsDZ4l)SMD"^糖(-6e ֘>50-k#[0lc2 W jdXch-WhdǸǸ];o9*9B%ix)P!oi5L$@%Xzػ&w5FIz*~#{"|ne<PlD7 (<ڧ\HQy޳Z&/󥁔{XZ_/zi/aˏ\0ncU34&eX.#@mPL|M|m !>BVޟh݂"J1>6\D5//D*1\b=#c|/Ao1ňmKߺ0\@ȠU.JLh=P-tN.Z~o~%Ag _UpަIr8!j h]9$#[0MKIn``?Cw'hYxf *۪xHw"GjQV *;`JOҳjN|-نǹ{|q A $Kg]1,gzRi -Hh yW!d (5xmNV ZS`KZWp{fJOb3;@Sr  Naׁ2"P-D=|x_{;p_NbGO4Z7tv ŕl6j<пxV8vI^FYMGyI[xVzoz@}uL4,Q #Ǘ*3RQN*uqVR 2fb>qx.'LWfhFD7W;b3Qdu)kL ~M.>B&JTB/&*5x!-\)_~cjo1X%'3 *d10ȶ ~a^>VWi'Ԗ%_%m Ns*vR6{A/fp2Z‡=?8+7_o}p󫷡OhĮx7a ] ԩym@ Yb3W`gs <o=>)]hFiX6Nĕ0S:y3-SF#I`UbV{oNs|UsP|}~0ݷ~'~mkPU+xwL,40p~2{y @A[b *aZ W1dS8*npӀf˚Iù7]}Aw|tWt]{pk;k(7`:!5Lݷi,9r`8@L XC?kw:mm[*R렡# .#DQL'6 H6E ZH'tJ(ug+өAaÕ}\%+fx~Y!>[–#E8KӃy`@X RkK|IVSq x/2sH ~2 zCn$t%DXdJNS&8@Vt##&saѴ7 n]ΪhF8u=̘Մ-u2= LX0!&cȪ[T6at:րKB7@WUJ3xhvUrrсr/ߟ,wGڅ㓇TD=$Æacp&WmړnB,Y4a<^ ڱP;==ağ-{4Z'\20Ez{h/gCa5Fșf+)rHykYtۖK)҄Vu'hG*]5!<#=#Ցa! \z7Un^Q-˳w5“p hņP×ݱ$`GIb@ULg1p^Fz`oJ*ZPf4iߵ5hX3>)Yjm ) W<4]u8g |Cb9fr*{[ǬaMo>tnďLE[xX0a8XPwpRx7pג'[D&IPskt p{ _/ H?#%B`dPXʚPN~97""0A(kMBRcꂰRd<g`8{]_XC5 kUE b[|)l:X9%.EIi2#;Xbx Ȅ 5H?r sql_ΗheRi-+ZXV #t =nCw7!&0MaAr|wөt U^9k~>l >gG&t,B,hDؚs(ceyAEK-W>xcs đH>6.+?T˒Mʼn)uXK VA?h<mc.ч 4ך:GXOTsSL KN[%hCXq~bpJ*QJD.],f(=nv\.`9+kۤ-@Z'$UXNcvJX)uoF3f<>[QJ ͱ|+H#f52 ~A⟈8]^ýQt1Fo./.  :?P/c;0ON+P45eI\۝D2)ل;Os Pz0La (\b8Lc8m C\hr9ԍi@oG?S$aPK:>ĘeCЇz2S*砏گR: Dh%v2ba&i/"d؄a_Enn)!J{ -Xc eXZ 4|6Ka;ٟvlv&Vu*hR1 U`$OCYdj_D)om0hDݜ0wi1'Z'Yi^^PO%V,?hF *jʗiLpHO?;fR2rV>@٭ vPR<.@Kxh0O5) vN3j5w58˩lz\9&8u-*xšIN]ø9U{ΊB]V݆nw-:87݉hfdA]eV[Bt׳#v'bqb{U rݥ~aףRH(JJVxQo³sbdv3hF m(zhrQh`1j ;č,ٿ#LrOD&~˺I{`XLymr>Y";urB#GX T6x 'fE-Y4%|{sK30Wy@P;@6fc3 ,/f4`x|%_qWdafԅ0~r 䡄&-wmَw9;tUvbEVC.\^_ap: Gv{] hwZY,d4ZQyU>5A[=!korg?)keIr8dva6B݉9B]x yJsA'sw1FSZ ?VfD! 8+RPhWb/ֆ@0  Ώwއj f띴@k}cKhw 4I>c @)ļ~̓I?ކbȰ5&H.!)otV.9fK9V0A}P\,[D32ۡ#Lei{\|G=A焋wAAF@C}=gGUc8!?M hX3Y֊XMۭ[Sب|yh#L"M‰5u]ctI;[[r8[pxͽ0X&ՍgasOzK s9w(Cf(8.|[0@Ob0wq:Nx0d= G# Na-~N _چ;Kx\06ҿ$FaU݋)' NhX:SB6Ԗ> b'^ƴiNL`nV03ԤgTedzrO)[B|4Uiu߼/r 5֖M3/XOجvV!#W1Ē6 ރglܵbʫm%FQLǪz7bM9~a–3G@*jZጛ ƗYWT]]C}"Ze!>8>aь5qǪ=9· $|3^mp싰O`}DטF*M²sƚB?:0eZ1H7%\+%I bAQ v7*r"x>d@x8^Dkd8lہ[*ƽrWO/+KѱaK{80_hFDsK*hⓖ|TEGݓ'R2 4n4@e$0i̔@YmTj*EAC仵XX=QJL('V $G3xH:5~ hCv +hF[R4%cs-Yq=C 9t:EiNԡe- Ljrbo):lkϭ2\!8Hɂ#3M U,$ tpѽZļ-sQ&hKEY8, @2HNQFN|5+ }r`UK,:K(t+ vDw0vL_ ƥlc[q3.w7D ZÚь51Js_B@l}|RuEž5:t,2y]IS.Z;)l~ h8% a: V˂N ;xhUȿL㛿|^~umb.(ay̯{S d9-1:(T[c2DT~7v %YCuP߀)i  gHkZE^IJ# ipvw ]K}:̨!`٧c`5W^Wk1iU0_fBq:mh@8Ng"Lt RئW^@P /*i hMɈM:& ז(,u7bAW6,4C.Ά<+f7"$ԩjN jVR'*UoGY|c"a4W7eJgN{4cob05}Ԑ{ 5_ 5J0O Ij /EZ P'L85hX3cHm"vK2k>i'D.7!(]fn ٜ&5N\ z&M Cx_^{fW`gw66cDa r|d0]vd޹_ڃs vZAc8&s~]ʗV Ni2,_7>*fDSt/BbVɳ̲_L@ 4dnNJ\%W\ *$ikehdb8vz3,m3s%F9n|=إ\IN1U#w R2_3:oYPA^Ej#J zdMk1W$[yr"H{c`1)jIn Y'#ADjs0f4 kcؔUAǒhʇh"e4HJ @bļw~5MaLA3!^P㍛ɚC/pq>k !T?܃>3ڑRwѭGa6b1ፗ_҃87RF"wXaxn ,f B6"/BH1 ˃UhyՔ)i&nBv7\BW^YuB7{D0y˸,_yH-J҄~G+ER҅¢ `= @X/J*NŊͅfaޗ,*U} ͋(u? f[\Tkq]ޟ }|T ӼC7DMA8}OahF3֌+>BoW9*ùMZq3F#Ұ X3fIwwc&.`%Gb ϣED ?@ #8?;@{w`5`sg#z9[}*7.s[&4M?7ļaiqƜ*B`AKk,/49Qqrеk=ьf4 FB K+ʓ MvMpҬlbﰥRӼ7] NMŒGQ4~6pWF~JX<ؒhGX*݇dƊ khS1%VԎjB/~D DU}>,m^o}6z=.a2G|I/ME[ot0V\'uvYΧps'EJeM:eC4 v6̮*e m'2s*k"ݘj5Yq0by b˕g.˺y͗>ykZaVcE&Wɮ9 X4 D`]Sn^賥<G4NGX+"<"Xьf< xnתRݷkog 0+hk@tY1)DL+a~r;,AiiKD|~ íCvGbXy%wAUU@ǽ^X@(]a@vY-rw@k:GcǂX+XOBa+>bҀPg=E?҂ѥ~jr1Y8\ly >h1 o༽HY$y53㺩qb`-aAM1m9eQ$K3B"[/&cL'8r7r57+th 'I !u%×H׵ۀ<4:7_';~ʇd뻼_1I&AAۂzSV#QL5 ~ ':|_n N7}((3']+o^}\ {uxfnlӊQdž(АU@@l9ЗFj<%sUeˊNE^[hPfOgKC;mJU%=JH_?&X, ZZzbx~/:w_?[ׯ@[R•k;0y9:uFQc*W.Wco@!䭌J_ z݁^ K :&IER$jR&K#$iY2>zuurwT37œʒSMR:($)DRCsȸD⎘3 uF%k"ꔌ XN#0Tya?we~Kl/JX;[*ux]M]06]D]$_8CV4aT mf|JdX0f!3.ZY )CѓЁEwߕA&i:;Λ=ܑʂ ;cd)1`;'i-3i`#J#Gm7PMtƩ./?? SY;/<'WH"RP`mKovbc( 딤{/IS ,m#D 3mgk@fmYO,9hwt̪t q̠. FUChVDr]S SIѣ;jn "+ CZ0X`mbH7h$sވE(.˄%#z"Vq{ ʞT1 ]y7l5N`hF>T| }iGX)%"ϦI08i;W"팃WF] ;>85Ãyέ$qxNysJ7H w\c:?6 _I/sF(g+Q̊&M +nP{]x;߀go^'/3c`zV 7S_FolcM(gRYPBI6/5J``1"KaÒ# ,[=Èԁr!WlaIA=y g m05nI<"SeĈx45v R_Seze(ffƪ.KDs >wDNcqX g1.ϸH+68k:͛ 9+ ̡f|fۆO~7im: mh `M#8?9X-=ݦ!sD0XDz6oQŘt`u8?B{˯IF\olvww _JZ2j'Y뽮xq;O/ȑrDW>MT4b29nQE@67`S' q̻KawTGtqVd X- bjRt~R& |=VC֍t`(WJ# Bm 業pyrL &Y@˯Jq XLgZ17 5x/02-,KDS" ˩Od/ˌ!Ly2ר<҂1v?6f1b+ S եhF3>Alr4ߝ}EC|gm'?RH'Ԃyen43sU@L὇0n a%vq~o񞙌,kӇu@!W.TxbB޻wC*s(;5ee@Sf.?|w`ФCf\ZЂl8dBbEGpUO5 ko'G/pS/X=Y~" 2I>޲D\[(y p?Gc7YU]CdRENDɍG j9zgZ<s)ϘcP-ĄIaLVEARt02^]9v7W 6* ^ߣ5 `zf7G4D$j%@q+y֗'*[=/ Kvp#Z\%1.d@WA߅NL@ǽG"ẋpLQ{> _mQhFå2CMwp3{uJ~W9`"F0 b]=f 9Ml@ӡWp8}ゝl6#fʆz"@\ZՄYC='o{Q:Ԅ2_5?|xByK-#dXŻ[ ^ю1EX$S[16NDtԴ[gBQRQ)pfJ{EQN}X$iZ"m[jP tT>`ܮ#agߗDp+˳OhnUFp@=s|#nK˥:Ab֊v}wȃ91:<<' W0݇hEhz$ܻzuGQ=2S#p0j}NNw#Йu8jv7|ć/ý.#rzyh~xkV~ٖW3H8QKNPJ_uu hS.vA.Wގ%vUVNB3 Ӡ`X'a5uf?3&$7`,5yr6$X*~%t`N-O®/Z &硘#i&:KrTRk@=~HDYsVf;D׌~mIHƸd TR_&I? )Y6C@Fnz"!jO;zs_0`S4ba{,XsXD/P Zapgm^d21;\߃ BQ~p6Z)nwކ w̚RR{ܭgƵ+هNMƯ"S\8TƄ7dA݉J۴m xWGpv~3aHPߑB_2$VT"-)\ɔACPtxqIL67A v~Y+6DI˒et|ɗ- w%ɥϩ֚ñA0v".7ݰȂeBi®%+*&AЁ _׹n`},19[a!"*M*sAH#p8^yҡBV f IGʂpä2יIjRWb!>zY5 clTk~=&M~A7$DT :S5f:d'CU,8V<@EjPn4%Ѕ,pkDЂ??ĚUS=ݸ |gC :6t{]ZfIJh BK%8х pGoO^d& \.|\!'좓su:FɹUt#C6ׅݎg'g6:0>;' X2GS VchvE; }؈Գ@JA.r"Aش78=lLT4L1>~_]ϼXc/V^#~]{V% 9"pmƒYg'q$MnW0_kQ PO^I{6&JY4z?3A)ssX_O|}>5ٗċ_"bE=F?F}뤽jie^ݎBVh8@ЀkrPAF&8'07Gdž%b~~ Pypˊdm-EArt&l2~=>e7\Ε<Уm;=rh25;XrL y vɜyۖZ{P`aH%֏ajp~yv2aY2hm nV"NM`x~DFކ0'H-t" lQ|.? h%?<Wm5`J^ֽCvb+]1׀oUk,+R uӬyߺ$3Ev/[PX?^WXvL%XjrZNL6I u)cа@ROBt3׷lܶkƓҲVݺ2&`kЀ IX?m \j3'w,~{o&?`l׮@z =2o|^|Pz"[V.K,?B1F$R,SzEXĔr)1uXjހg9f>8UiAg\a@3 mDj%"x?[Gυ 쌈 T= 2hɐP-kx$D%lAGoDԍ#PS h*[ϴvJ6 ~) o. KT5!q\şrtm6ϝO|Q<*bSsS/Yϖ[wT-0G^t// xie䙅Ʀh0 yu? .o@?sM ( k`N]XÒLtF 3=2 R Jj/\#b<6䴏B9 V gYҔEit6 h݆-|n&vssi4W}wc3PoT-`\bvTsXbW:&UeBSXah0\F'$: MҡFKBvtȊ$($x_*D>]*0yP<<% O}VXf4|u51Oʙ82FZ dJ>W_jI uиƫр5si36[% At1P7^c]WWO_ۡc $'4Pɬ<8$MQeepp ??{  2 @ЅEcbiO,K"J5Tֹ>ddxZN+PiwE 4֬'=oQKЊ@vݑe,bP I ݪf^Ez5΢ 2qDu6 \Q< PDZ<2%jk0v pfmY.+?z-o/ؕoKo3SP%taAX~L1Ysh_9K !A|~δ/RM+\JĕXn5COK I4{78 LIλ#k8Aa Ι_y8{./j5`Q`lQhfQY8IcV꽃V P( NhImDL .7_n={/-v+edo, q=866|>aЍ2eƯb." yr7a$>h/,@3tG%Fd2y^x忩'EmLOg݁npy傚 丩͗Wg{038H,Wv2 ҂Eb\.LpxF N|$iL_#Y#CF[V7]Ey0fs[u|Qcr a;Iq%n}64ʅmI螴u(BĎa׬IQV+)UT4sN{ohl*S`NrӲ|C1ƙaPGL*k3"Mf*tH*. ˊ ƎGc uZ*5 >N"{}}7GNFtKḟKJ:>Nȶ^OP1/5"јhĜ-*-`h:'N!BWˠdҬ Ј3Cx;}fg &qWv۬`\=% W48kj%qc\ʳ0]Cd3RLN1 (?k;jc|v Kmn4DO:fb/U:3d,Qu $b{YJ/|IЭ.ՠ|aW* nA;heM+s plE>)m2!PvS|)z$`lq:t+ˮh'cԧxO<5T2U3BĵYa b~KQ-$ȓLKͮax4xqsdKPt6Gy&U&Z*UJzTEf38׀`S|`L6EEbcT!85Oi(^Q|* Lmۢ\( 8@DKI .H/f==$!Quu#Z&GpgWX*X\5 S֧b^2;K(Z$0T+)`(,V"3 k4*by6<}vcSEH_f<޼YcOŕ}OINSB=<~q=B|(X ɆhB))hi;;z ,wΆƓ9tmؿ't660 4`HBH%,X6mob .}+!Kj.'Y jT ͖Z(x6x(hivNJ2_(giʼ8#aik@X(qK;+gjsd^|˪RAG&{5]> u f_-~Sx1 60mHLy/cxLjw[$w b v-؝z\)}Sf\ΈYJS$4yƈtF$橤F`8t!\1^[- rexFzis*$Dh >% =Xe VNhB2^$BW).pk؉V1&T D+-%( sL'J Ny(}e&_<8P0sLD6-̓"n6a fb3[X5'*Q)k 0G V5JY_ҿ- }e8VgGw8$9p3TJN &a mYN ʚ [b}C3 $.W\[v|\ G?q?I ޖ|MXÌ#Υ689&߂Ee-:SDƜUq)6R̲SKb|pA M[gNb[ y GOYG5](eOPXQC?1dF)1Td2̱A2O.'0Ҷ)xb G@`6!^>a)E7|AAn VZJ|9v V%;%Z=f o'K7Os)M&L0G/Q=8ZHhS ^ޗrd_)>ջ ?ɺ0 R+ԏb~(?G)!9귦 \~;>' <p_hmتLRiS j %[?-_ԠKxH`orY LYEvwARIì=Bfiby1j: ]Lc [-8r2{mL&S0h {X,7+5@ ܸ+e` FdxZ= NePadɳZ4XI]m*ˌ!^,ai@]@!.cIc&ddʛ~^ d,˹" X+s mi4u_sHnVO/`Knߙ+)kS˙5)Xn)O3f|W~d.Y#Cf% 3a^.lxLT =r_& g~Kҿ1cҧ3QXH κglxb{1 T~Mx MۍX/{f$:_M](uJ#Z!6g./nOv.#O gF݅EKzD hV\4ZR7!C׆^\=Ԅ-g ҅ev<K Ɣ20ٖ|۾-%Z,j 8DTٵUt{~)v(Ǎ6 C kiXJ,E+Y S[ Aފe[Vλ,Jpŀsi`BiyQ1P4J \}ݘf@1>NNEED ,Q6 }0RuPr%Gh5z- m5D ]G3z+B. <ו#5V_ y|VD4]O_v)_7h*m<0ˇJ5ͮ~@LZ&bML8ʓ°7LF:"^QgJن-15%r CJL r^@!H  sC,WeӴ/X.l(-HSLt:aa>P'[VBR;eF1Dxl+mdEx9.g1BoCW5]j'0ϭŋEr[k)! !>CM}~yvNАb?+NEՀETb%HH. m`eaxJKJ;+%Akkx:gyO̤LNT"DjgYpqے8,9 ^bճgYYiJڏx]t}ZQQT X>+,,0ıDS 4jܫͱ{t22$Rl)EH+%#V&|c@F C*Tfp\0&CKXR ݎ9N_@4!όۂ W11'z|SU!۶{%iʼ8$(KPP1gTOۨ9r"R;$d024Bo٨UuĹ2`S= Ep!N+0DR1|)۬!>t>Kop^uR̎gQjJcE*VgYK]??q~a x'ա}?`>LcUƋ7LM>l(f0,U 1R˸S:aIҳXqN°:+dA*c/ zι0eò:T^FX +Ʃ$ODyԒ<ò씳 ѻ MfeT)I*9f| 3-5Ȯ3aF{߳Rຕ)Fj0@`K  69ze\ ƉQj呉7b|um#Q1=#ѽY];ku@uyD5TP]DƪslFk>"\ڶHzjt=秿dɲ/7erUQdku` 5#%C@DJ敹<Ǖ$ݔxUri˕ \Yv Y0dPoBK*m:f 'E91RȒ)Yٖ8r*33k9=mOLo)~=vOҕ  ERuRIQI3lg)]|-=RYmw2?Ma]+K'Fu_qeWthXkfB+\My`DXs9qSŋ+h@lGEjcK@mif$[2¤^:ʤKTut{UO6bU_🞤)KU_ue{GPL&Ô7BӯAdy>|}]>`|w:I3~u4vɿ2ϣmlI_JُCxZ6 |1=+ڿ~_Lo5ax4moOntQ&FVt`]+}&e?\0]?Gܾ0ճlt*!>,Ջ˕K~Oic1u%4ݱNP Vldk=ϫ ɷ"|x 0=(O]u)v'8G݃oRRϹuiqqn3eV5$dW:bkpZJuơlG_DWU`+$[Ez6PJ$  ou! 3} ԍoՍ7tC@4*|ev=o}?E?^Hv ]~efW@6)_==~;nOWRdVwyhS_K㳑ҫWlJ]Kj#`^"rA*.L"`dȧJ֓s%|bM_ =&<:( ?ʭ$^l.eR_X!TsVo?ߍG-'>I /卿ng=a7t/bo~k nc)}$?VuDKQ٘UEҔ|&x [ȕϨg *o|AnIVEokE vnE/Ch#<Т4E-+yidu8cⓐb>蝰8U&yuU!IDATSterꋖɻ+7̮V> 0IsL3zdeJleg.j66İJئ׵@Uru=lvqa|6"[I|VR.;SWi1*O[jqs1?TZIOFٯ~kgWtusMwty%QHv}KOrE6"yM!+mJWu /N|Hs?\k/ 'd)X`Z I"/I4AHكu⽊sX^eAd;}oaT˔w<0z&H:{ 5Te+]I]pDTM2zDv§3/{EWHXI(_IΌZȸ'z3TK?W.䂽X1 O[񺧯LgU*a|ʮ|V{K D4 ׈|HXl_HNO!߫UT]>ׅ4;\]1[Tt%\.YS|*W&x'_BSܼ{Km4sU k}~*Eyy{[OOJO>Dy5"HRq5%hIV|BP^z9 ABU)kӕ"祅!:e&T,h2Pɐl4. s)Uh.eUw@%sC@Òmjr ZuHmI']Wa!&?nGBڕY~RҶ|'xg(::CRert׋z{g1-^*- pygqbV=Q $jc[ I΍||S_lM45mlHܗl2sؐʄT.2W+:C;_a_rݼݏ&:#eԋ+y+a_<zzv~W>f2_xE1uè.$? /Rdbb`b_BBR2#"vbmd<ѿ~Kmpďo@d~*ֆ˿1yN*V"acm]I9_S*<0p]"`Q%M*4PYȃ`<}ćtl=dOYʷVtΗ+.a CʬVtOJ]6CQFX(C`#^Rm!A;ǖb ۍB_ v%BK>.CDIjӣ~@q -vSTW1Ls`_$v.AIL*}kIesOr]詰.yoC*ⳆIsd?OB借ױ[GsH"`ʪwXi_>Wu$Z*cC$5e[kLC$N󢪊@0WQd!|+i5 "87KˍN킴|陎&}#ECE}]:!:]xa]BZaO"V`RTW70%" LxL$AьU6" yYͧw$TJ(Q"?壟( sV+/m (NrNiY&cIqc$.[m뙻[᪔.*/?̹'ّfTmYKNm_NBV4ץ,Hd%r~d/7+'bGNtEuf'F:B_Ԯ1bB_8nRuaU ͉}͒&y]=m 3E̳1-TU3# QA{Q'S-n(ҵ}Tf~yzA "P!I֧2@U_"@:|KXrptxWNM;^O7ӛOF$mvpqyIO_BdB"L{2LXY%Ts!b7F/|=ײe5iJ؍z6vE $,>'o:{-γ7r*n"8DAPd(IHK&~6F/&F(v!K̛9g$UBa q:70|X&WkSW756u)% _GE.lUx-6k'+۲he}FD|!xYkB,/@ c>X$ SF!ֵ@Ľ㈘J&0$ڿ[_^ūr7龺]V/aan0Z Ã?S4^B1])acu2 "-u?p?YεrHR$Y^?v@+F2tyq*31 .Sh>ə;,~?NxY؉Sܗ^r\ WJ~YV4i;K(wcgLk 4RT{ndg8;Q#;3}]hz%^"9&Jel"cMs4PJϐ}itVL&£2s7zT5͚,>7D[`KJKP'hN6LTF U\F >2VMr/X.rsI.Iq^(`mR:Ա EEZ2#B9|GJ#]b23/"2$ӷ$C =ʖMCMQCYQY$U*D'#>^&;Ye"W*bH%ҕSEȗhHj>yac w}J $5G^]箝<ǘPѱ\fhxI&IiYT(*='bH{*ٞ!Ǯ0A0˹`"*v4 ˉW9m)G'~]×V D"/A#n"~ֿlH,G~,5%ՔK=QdXojp6 luK,2֮h7>pnGiWiR *c7$jU߉/-?&`lmP :bǖ$%+U5,]ꐵ()JO@`>Q$Efs)jzQ[.oT|VV*gc%o4"a*.^zGrÌUO:(茦 ڐ"r#d$EI~Cc QXOx")Y44?7Er!ӒУ+Z%'XW~D4 ƍ5 9tFd*b\6E"`D ]S+FgInVئ!H.U-F+-TnI5ǰ# 1&UQ{AVIѡ!)ujWkh.XNR@JNdb5@TqZ%?a65V=uhEJ֒la>˪lZ\x~0DrՈv d0pDrE¨CȚT9`,yU#/w6DY&$K8C]rU7  XPuMJ 5jJo*%4p:ݒh(X[/i+4+7A`Hʐ}iFb["kD"_c{PRd*#FF*|eW$.*a,8 >~rT)KȺ(?$ubuL6u=m(2'fm WZdiC0Ȑ"m9\]^c-VuB& yO]ѤMy[Y(xҡǾx9/V;+xQX6=_vu;xRnV/.z?VXtEÆ6*_C#UG+`}c(Xz_ղlU e]R[z{eIPq#(]Rs0JXdؕ X61XњKr-Q&ھ%cGQNsW> \v(X S0%Q>V"Yi3# }!d:$Kr}$KvP3k>Q kZ]m9]my_6DB.cDJdvdW[̱og-`}of]Â%CU:KŞmAtD8$Wn.+>b6M^bi *OCĆlG7dA`95T =o-UfՌ'Թ`C¶nH}f/aj߇D$/TޢDEۥFn7OXMǞ  Iv='[c:גmNJ͌{Ow3K` Vm9zאF>XQ%#{LHМUO*t;F ؐ}㕰)Z SYl5I6M!a}eohNX Xr!^SѲ:s 1da a2 ]P:)XYvL*1E `)"m㨯Hwn *USȖi.CI;KT!2OEܱP}J3[6x%_"luo6M%_sS#a蒟9Xg#_(`SITbF#v#`cJX_J)_cu"bsh +oh1-fSDS}$lM݇q\/)FS7$EZ6-a N}.ìJz=J1 >6_A6zl:.(as?1+8Q3a}%_ՂN>1ib!gS4Ch\Dlii1ƈM!VcW'xn) 'z46xegTaK.` cm_:^i1El,'x/c¦f棒^璍E쐲ҤlD_USl*A`y4źT֣/j'霉,''M3׹xęlCTg~.T럢ۥd_Ew"6u8i7/ԇC)TSqwͿY[ie 7\L|- &/@>dp "Z& c;;vvOhϏ9 Ʈ=F( o/ z pȻ*v@ p{ ! D.Kr@(R T*P@hm >0]-%6{K3p{px . 2f.Q Ā]^vM) t2~ r@.8 A(P P @5u4Fp4SVA8 :A8A}  0 F( 0&MpL;. ̃<X w> M[7A0PBx 2DX!* N x!~HC$Cd!9HR!H Ҁ4!mH҃ C2 l!{r\=yBސ/!&BP$ @qP%C>(eA9PTCa:BP%T@uP5A ::sP7 A t CtnA]hf#hz-BK hz Bk{# }6 0S`*s\0 B,KR ,+ʰ*k:læl# 'p p Ip g8>\ WUp-\7Mp3 nCUx[$<߃g<~//W*x ކw0"!!G029"BB"FSapD \o"D""ш8D""F" bD 8QC@4!mDq1A!wS2%5-=b($I@RT$ ɅC "bHR)TF!5H1iE:"]nH//2D"#1d22 F#"%RdY<D. ϑ+U;:+r ($ "((6%F(Y"JAQ(k= DP0T*JCerPBa1T9U:jF:QQPQCuM=jZAޣ>~Ƣh4; ͇BhY"ZCVh;3 CCёXt": AKХ*t݌nGw{Kaz}}^D@FCcaH*ËĈb$1EF 1X`l1W' Da0ɘtL&S9)Ta0'1-3s +k $1%f`Xb9|X!8V+UjbX - cXlv6 -–`˰)lۃaGI=c2v !pX Gqq8 Np68G+ Epɸt\wW5Zqgq=5.>n{[}}ma<O³xQ</Wkx+#|&>_/k|?KWwO oD* @%H m!`Kp&xApB,!A%JZIB+K$ n& 3GEKa1DMʼn2D%QhJ&:݈> b81L$Gz)b;<8D#"N_׉$%I4/I$I#IF$ =iɛ@ #ŐI|qQxDԹ ,\\)\9\ʸZs rqzĵkMfp+qksrqssGp'r>}"($37ܟx<$:2.'O OO O!rlxxy%xxxMxxyx#yxxxxxx{xxy>]#|||||^|LX}||%||:{ȷ̷/?/ȯoßƟ__"5_x@@@@@@@@U_b|J:Nނ!K{ |&V_:F3*t}݅G'ѳJz~>F/W_BH!PP~"rF~QBB/> F Syńuͅ}Ä+ ~"FHH>"EDEDFD<y).K%"'*),/j-* -&Z z\^]OtDZ*& S3cŊe!6#(*MlG )."./-n.,'!"/~L^]O|T+8 DDDQ:6>Q%^K|ؖKrHHKjKZHHL< Y*yBE3$$70eH2T ['#ff0Z]5 AKJTJQJOJM*H*N*STTTUIyWR_J9EݥY҇k[{GJ?~#M!Hʨx˄$9!sVfPf\fVfY̖,F]VHV^VGRU6H6NvlllkӲOed7rrr2rrr.rr1rrZzFʽ۔Gȳ kɛ/_,_#&'?&?#L/BBB1 n*ݤݭ==IYG@GVGWV['R'CXNeI':t~tuպmuoqIԫkӻwSo^oU>FS_B_]\M?D?UPZ]Pc5_8n)-+OtbzN+S >5$ 551n/ EEEE%IE;,–ʖ,-,YZZXnXlrʭZ.ZݶzjjǚZZ::uuuֿ֫l6|6r66N6A66666636/mۢmmmummml ll^}niiǰӶ󳋷˷;c7d7eliaϰ׶ko_`_ea~7CCAZ.YW?q|򎆎.!i{o8;9q8 ;8;y:E9e;:8 :qZrtpf88;8'9:9syy˅BwQv1sptr)uiqtuj=z{0)sbOϞ= {Juspvsw-pqtqs}FryEUq6.n^~}΃C##ˣ̣ǴKMO'ggggW?^^^^^^1^y^U^gFV~{SEսz'zz{w{^|>>>L}>%>||,|*zFVvc K+;w׽轼{u7wo޳{G>ػw۟/_f!`Pp3i@T O|IG`t`^`u`WX| (#H: hOPxPVPEPGHЃL6&tf23evU,-s;,\|5x6mv5D2D79$4dHYș!k!;R{BCC+Cφ^ }!  3s ;64s8:/\)"'9H|sow8d< ^%l%&J&'&F%'%&N|#$Tԝt3i)i3,\|>fRF 1E4E;)%<%':;fRf*)U,U'%5"576'vԟi444״贂i+igs_ܾ}M{9ғK[Ӈg23T3l3]3:.}S37?i-?ڿRϲ ʪκPr999v99Y9U99r^ʥJz&m})Gs ˫˛{73_!"?_~Y~ggς悫 >:u@䁂'\<0s` |Aۃ!=xૃۅ  o>/*b+)2++J-:^tFRяC,9|3-(K{'?-8L>,yG;xx#G9sgG~HtLzTԩS-zviiӶNn:}ͬͲ͖͗5m!HdԵ > 陀3ԝ<̗rTyGPGvGCogYʞ:r6ɳW>9SӶ3`gsΥ]\]]N]1]tMtis;xswϭG9op|&uKu[t3sv?CQq93޳ zz{=z{{{z~ qB '. ]x|aOϾ/oU?/د՟_?y< 3`92P0pzEދ.&],sŏAƠ s0oipdKܗ4.^JTz /_ο|CCZCCCC}B"{J+WƯ\ү_qꥫ W7iNqG O 0FGG FGF^QQQK ?Ѯ\skdƬNJn.zz'^_ ^7o޸tcƏqq=IgǿNN(L8LL8715&M7y--[BnzkۨۢMnλ}/'IIIɜɦw;~w4|g]w=qwݿSSzSSNL O-M֟Κn^޹Ggpo{']b1 ɝ95s}f>}[O35 -=3{{~Nzf.r\>}0C]Ry*U+^CE^y]ןPߨq}7˫jjj׷ozM{ە5ԚZѵ޵k?qy.]wk ;Ox_?}0C{~dcǓ|]^[[/_d}OE:?3g?7} /_ }Y }j5kמM[og;w37}aC~i#yfMĦffB?L~8܏?y yg_~~i_XTܷ2Nnz[G#Oҟ?WFm3m+/o/J#cS3tg{%9=K6S ^h4J pHYs  ~zTXtauthorxs)MS% IDATxw$}&EVUo   )Vtw޽=}w$;qh @!H~,0x33=MUe\FdFfDddjS=lt49@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ `44@ 4s@ anAj 7@  !# @ 0[  @ DˆdXб#5Dp":v2y"J~;BFYD@6@aQ+@h&tD ]c@ ,B"'㼀΋u"yL~-sbt-@lIҢ"aeηMh@X$7y, "f}I?O9@ Z,$7ɘk25_'2E D撸kVP}"l>G!}!ijYO Dq_|σ7Xwx>cXa9m9>$ad|5x|}B'"v^f1AxaHE# l5kB2Xيbt/9&Z|n6bx6sYځ3u$F%> ߝ `IB6@,n{9@X8ig3DšN"m6j <~|HB4sAx98f"gpz?b4_DlQf".mB6א@ ,,R5m="a͔|գzm6Y+0@X8љ&\>|Ţ#` |5x! F $p3%-M\$l"_l5 Q#rF OXUz7`5;k$)IM6_ndg烄E5S\V)$F |5"(kκ\$Y XLTFF&DCjm2Uq5 ; \FF|J"a@Qq^Ml*6Fy]!@οYLϝ@ 47њ) rI"`FšMG DV!\#Eūkt7]"4*|߹r=YLH@  Ug^/jt$Ylg^xf"#esElU^"&0S7|# 6Ǚ/2Ԧ5-za@=U/j"^H lyuFV+@ Oj%Vװf"aͅqDVĪ_ b3c"a<^Ro*Zgpl˦!aL|yU>j$pY$\3!aDyX2k"P\~ ۘKFlU!eZaH@ 4)dU#G~ $;ޫg{ -J(kq_/[giw|u )bMzb$SLkWxI@) ~?2HY55x-T6[LȗKGٱc(C  8::v?W/ \RMvZG~v\Q*ta" =v`ģPNiąYDMY^kMEh{?Rj!cb鯽c@  :;Znen |nLZ,tVIkTm/gxyXH O7#P9x13-8kjl0֠ժޯ|ɱl+sr;Bs6=g5Y+yY/WX0l.mԛ YK1U˜/@ $uYKATq]Fl`N{I"hR pC'`~oW1 ]3%MM5C X%^cVgvM@ 1K+^WdSƂbW{ָߞl1os\\ldxgNXW+ kahs,h6&_,5]Wlę .%I 499|3at O9{a4$$,[lM8*+_Y33!kJꚹk=U 2q-%9}t-DQSgF챮Y_4cO xIX+e,'C8%X̩>~U{7FΝ؈$Z]^͗]+>Z\. a^. dB6%1`HW\Wlb6] ^-/ q{[,g/.&A]9qnZg"sE|t U.3?}=7^+{ѳlhsC;x{݋sEx@ʕ ,5? mTW P1 5愀٪G1UDt UE96: Xz%N¯#F |P*=Ž,>/bpx}G`ہՏU][6n/|6_x!B\@rM,H2L%rz#k%J 26l ldIU'd* v,C^RQlX ~SjQN@ Du55ws/>Yl# +FE %LNfMH¸iVkc؂!f͜Y+D2Șְ75^{El;A\{](9 gF<|PF N=SXw|#|yE\u  jފȶY50I b6sj(I*L1F.X ;1Nau00 TX*p,ηp߽=ȊK'5c2 x$&'N$[64`͔@55ӶU5;٬urn4VZ 'k?{2#n-37ZЙ~rT@ ,9R/~@D[{ǩ<:7]u\?ykoG9 7\r%Qe\MY?*풫1+7܈_xa0>+r]س'6-gDfe6Vzm:EZ碠$`AfZ-ZogMFQݽ: Xھw/yzX~heӚ߼BePb/};~}xTF\z(l^{9Dg6Q'([1q +Vgz9ևO|<dUk7`Pǜłuش?}iZmIXߵ5WM5ի~U*=EʌZa9"vtttFv[Z׬ \x?˂<ɉ\y9;\CLJgeEɱ1]%2x#wх'ϠlEO0'.؂ùIFϠ]9׻ 0z/CKr_9傜#ubٲe"vލyM4"ecgꂬP拀YޮX rQ^~#Xl} .ZWw12& =2ݍ%܊%`^B0 7`\qOQ݊v٥I[󟢭wlijG=K@Ўa|jk}6K{gL\v^3ւg6?fˡcg:D݆Ɖ-d3ĀU#L{/24./I򵢷y3rηdLx7N|;k`dd0P ,)={%au Zl )EOer\&E9߂ L75c(qo-S,E=Zwv6),[{>|mR\īZ,X=-Hσi&~3[ S$}gbsr#??~^:1qo!rlՂ*آ|0րϰ*c5Yob lwfz!wSuؐ|fMn Cx0 wtG" (܇}'I`,vnexm$~'NWό0yR4ʔ'Zr$&1.[92Xe$.[݃'ێ߼6l܂G.Z/`-όpe)%9(5ӧM](vV솜N#|Uu?6,bړ:` w5^,^ sYc݆v,*_dX.N d`2B\&-yjk}hZs|í802ؽU|^.;l3| Իq"K)'GmLs3D.1l5[̨Dq%6  ʹP-p"\YtҌ,ZѵgwUk\DBdx#/}^qKd_}~ GF)>m=8w+ObDZCȗ(L :_Vx ^m/zذ8 !l!ծhQFZgujL5k-TɏݡI 5˱xz/q=wa%r۲ʨgO,ůޙqbWz2f\Ph Zz>fzrA@HЭmhk9n25 ɞ~"'a([:ulV\э}gOwY}}g"zI*?чs?F٭/$Æ6Ŷe XƳj\- ȶRfC6m~ B5cAB Y`)KY#^N? (1GD f`DB( "[wœW\vشq3v~+CC?v=QxkKpmo-NleW]nX8*ȪJX-kqW~ϰ:W/%y3P;g ? d=qR O#O69_i#V-k^g~%mh]% LnN3 }lr!>r X6MƼpMjK1`/o0~ؼd L܏'$URmچA@N , %@ @ cWd.E!E)Uzx7cp,ۋ&F]h@gW.bKty/ I]ME5V yfkD$ 3SUnA`x<.+֖ҙT@ ĿfS+j4?7+>l>#,|?jC @ -bds˸پ >BfRjW|hUz p0^._o,آ h =5YGg)=@81{ ԗ؈ E~CLF?׿c5嶜-`˓<~Xk&lyfԏ#w3>'ˉe-mqRIPgm?/9{ƾTKx*8ˑEۘ ωEU閖yl:<799)?'+>#}漜l+" ( 8RO>_I8nrl %xE$Q.Zsl5:w1TpSSr:A,s!\@E ոFo_Syqjؖk7x+]O;2ay-E_Sq4r?LsH7y͢X,EZA^ ]q#mW?渔೾ߣ >/SLg]=cP 7[Ӟ|4WKEy>OTr^طPsr͓{N[2#|'dNLIo[H l3􉎟/9훥D gk1@̠ C[s5+n~rFkϣ_wӵD-;q[<'?ո ,g'4X,j◆MdF=HQ4C\m5DFNIڿ8 11(Ra0-")èqN3FKVN' ةF r^bX!!$7&Y k: xpO^aQV.U`!9'IFB3Yrg}E]ce4CsI~>$U ^ 刔b#Bn!/"oxo9/ YQYIe8yc_#@=7_GEQj cBd?@px?i9tƥhn8Te!щ~&?&D}"D1jSz\9>IYkl>63 یSx]j&fԾ_'H.\#;VK@_W+#_Jۄc\VJ?\ MB 0L=a)-~GJWF?6,iL+C,>ހ81ɑEvT"FJ2J(B)uôk:)3 Ʌ{('KETjM*$ RE' 5BnE$$~.&x]uMbrIAS9ϗ=U]_EBFT?)FdPm,^9 ٱT%p5"= ߃u 5%Ώ!R^\{tUG'6'h lue ;lH)ޓ1 C6!omPٛ`t͌LHP]_Hscsb(_c7660^*=Ns?DSuf tMV"KyVj dGMI$an!]M8),DqL@HFcSm&MUm%ye¢ p)HtCiXLb"1jdtי";&]^Yd$!r&$-r"/}?>5*ȊlN+a#.3 YLd*Jy,W.f "k,qkmocg.4"t* :{HY :+dgqSd]{!τp1=:?_n3ɾ/#MIA][Jt})a9w #W 0ՉyWX½1nLRRgM u\Gf\ 1=[P{FcPI,9S<$` E γ6q(PĈi s7G4eչz125Q0Os]/Y.E5;(1:"dzn(Dz]eJ{BM܇JAP1;-))&!B,&̀H  ELbC>ED)WΈdII\Lb6nj Sf}KN4'ʩm$QBqco*23{:0tװjX,J͢Ƹg]Yw/"Fxr2HRx,iD6Ix/I~)w.v2 "YN< m'ƄKJ7SMආO nQÈi@YHd4&9 aTn?RÇ0ڏT310q|cqfRbL2)s11 Se0*\ $V}I&m"2be': q"~Nm7eTjĵFXoC V'j: ]RqF&ʘk/Y2}8(Vػ>Գ8r303Tf@J"KHF]THOPʝJB(zZVqv9+O\Sj&q47y-JV87V&qg.咞ͼ5jy3rrplZ)3bB]~$ᢄ6T7XEs i 5SnٰE@f˯*iuJ/Ogh1aܞD^ݓ:r)RƸxһɤQSʚ 2܆C?.U0ƇspC5VŢ W\ZRUz]#v,r*#-NɊYXB#]? ifRfZt.݋-DLHr~Lr#T?w@XZ̕Zf Cwr/ F<,"0 8-X02N8(9f "egP*CrW H)$"TI.&K:I˒DX2f4Xi^hG48&,TD9.V=t$1?QSL]T4$U\(uJ uYdzrxep}#?33fw{#2#w ,i'l ",a+2b93UMd@=k/s]0x%9Ǫؼ)n r&č$C4R6*<-l"9@adǵDv*SRe7D(mxc{I^V^퇤E_"zZtz~l$;I yBH <$2|LH5:/(B`.xh$,3En"ƸVP7Z(e%?p}O|-i+ρUV?; "7U;fNmׄAu2Cu.ʔT;n$nH]}=DW"5`|^0+IsR&8,= )熫XƈXA%Ub|َ:H%l-nP)(YuM bLCfC5WGRL!钭h^|sR>FhF3D.x ! Y,Yb&eȔy?H0x$c%DT"BsݻrGl^2~Keځʊ"DqM0HAI^rFVdN5*nA&D9ͽR13'3J Bfzexjmr+h9*_8%SܡqunGqUUcz]ET#;j-侹/&\f Rex-ԯp{JN __vn+Ѩ|_U)q+u[edE׎Y]͙A2s_ k/4t>~$bʠt\fy躔0Ul)w צ4Id>S|0$ 5)ruCd%<&D=*Yuf2V-1Ћchr(kwbBesFJI]?44j¡ Y[PW"&׮vDz 0qqvD UFR=w?P 2>_)yS٧QWg2.:nk"1CRQ^ST̉r1( 2C$[0$`%c{P#Envm+'~bą͓ QFo3yN9v;jVк|M,`:Y-xjS,N`Bf|Hxոt`Cn*ys-fMFڜhݲӊU9 Cơ9,Ĭ V'ySK;ue˔a?aqf `V*BːmbsnM#~%IpcIIEǞ)8-Y3m^lPܛ<\"_5YV$jj wntCJz(˘ V =ꝉׅ9O\*ka5=Vǝܸ#-u iZ(PAf+`ZC& IDAT ua!W/IU*12:рdK% X ONNɠ\tR\vhoo455T!'''w*9)U0=dtt x3uʥZ$Եʔu3cL`ZOL7i'. VuForTMRhl'즒Xtǵ#i",ƹI+ROyp+^zIXlwS"`:׳b"Og e#ʘ<̕ O\ ;'f3YIHM+"'%>=j~jեaL\l^5 c^X5>,iRAqƀe:,TFDFQKT28+\ {^%)  W+Ƀ*n,ݥEapp(=*?rJ^Z/qgpA?xЙa kZMd#% Hג%Xֳ+zW`ْH5LĤ {{\SUjN]J⍾,7^e,3WIbpcUkݟq{nJ^i%7y*,l?Za\|uK Vʗ_), O GZcq 0o&$kg~ߥz72Y|Rƪ~Vrk:gD̚>,J)s%qZj@xw=2hn@$3.T̛ vjbw< KEFGwxBetQZR8ה6u\ZW%$U!Y7ǭmltq1%I\vo_r1\gݽ{2v/YΎ0f#W1<dGv&*(cLonR|?N쳨6_iVn43}f2̀8H>r5YʐQGlQ9 Z3fx^{םwJ-սɒA]Z2XcC@gENnސUYd~tEX" ծ39mV66q:b9Y*3:L'`U/!C95'#מn;s/\ jl\w$b9/g66Xi7ϴ˼_Ne),[V9R~Yqr`\mT7;b'7l¢>}<q5 __nf-QOCf8Gy_b%:kE\aʘm$Xյ8\Wҝ 5S+&d>*KyJ1WΈ}spX0nŌnHZ/E5}fJMQ3JAh٘,w2qM5L⹼8Tݒ8R ^`hz ʒP(R ~@=g|< [E}׽o`ǎxװm.G) d^VP(]QHFD@^BkKHE6i(\R@G$W۵m ctdW2 ;1>1+6CZ:p-ׄD,g1nσLd8s3fgimgΖ,q#JZOںa-Jŋ0ny O;DX__e~V1_W}6ڵKf WU +]ٟa `qmx97A}=[ G NzO)æu,թ{;Dh~<ȵǟ#UI9!ΨNd%Z1Ү7O_̐RF)¹cOWhQV"s$ $JDBQ_T&SHDzV#mWO(^O?qI|{pu Gx܍'OByL9SJ~y(I%~dۣBm''$I5> e!v(JlZ__Ǟ;2kVl>qTjd*\&?վR|5uAgkV'&W{fu6oqG)ͮ:3:yp!2&>geL_c[@Ľ* / p͍ar>f@8'pڕC~o:+o=w=΄yf8uK]-V~b :ng9W#<"-sj]L/lVIb/Ͽ򽗶n(ogx[GgQG۴ c1`w ֖С<.LXk`/}ԼhK岬mf|=Yb<JNpT^@U/v׵4iq{xEP?{vtF0/CR[qe͖U޼+O_/S~J߾7kdBjժ`4 r&&d/K0Vs][HEۧT8~sʍy"H}0knPqLʼnU<̐>d{&jgP8I5g#3&X,0+,;+\B*Ko^c;v[ĥ^&ݐW£>wald,0PyI;|uvJ5Hh8eKS2*/ձzjB@~O- ]s5FwH|DAwnGw2sϽ8z~%cT|X^ÑZRa c1 +3xri0T(.+W1fV=K;]FN$5/bAq߽wwzVhe)\HDx*Ⴎh >~D] ><ĴD1QU,[ 9ttT&_YҌ"ȀQۧʱ`E j]%ap,xWnj\yэĨYax^ _u>OgO_` ìV]wA2JSeD`aVɹc?03k1סQнYo꺖̘oY\' Э9Zc&fk}c0E1\>Ƈɚ-Bʻڲ!ȕnkQ5&q{1c~ʚĄslEw&5L@Əԏ%:hΓ e0}] I@ J)3Sɍu7Wb0iǝ]AM+*הnrq;W4›VT-z"[ze:.q>:9N{S+) S  Ww_bRoon WG{:;ݎΎ1wpo|3s19>&I&_Zm7AR(f굲Հ=&ߝKpvxW\.]K*ڱSׂ1' l ^M)\~OR`;/k5OM/:6e&]D5-Z{Hĩ܏Vw]M]q[,m2țc{jI'Kv}nK[WWaՌ)VDhRnH?:=,j?"έz2\3c`I]h5]uTOOHG2>* Rv͒ [J>UӝR1dp(;R)Z$+k.XbI CpVibNzcr.H?mEù3ر- @oWkKA LM09UF{{|o:M Ȉ17z/k׮ z|V6 ^ʹʙY*9\J3{QgzW<&^-b>ŀ{Q^rQxW9`"[׿ ɦ\lV=bS+d\?Cm)pwtpԮm,"xE*Qq,v~J3sw2NƲK+S%٨zl|}o89pH㆏ _Zg'^xHū K,EWWGL[di)5=!D9,YkD  b$OŢ85) ҕtj. g`Ƕ7e[o«y|^NJb _x^}e8_x$M0o\`68@Rjl((*m'cz,Kc4IaEGNᕟ} W1x]Ǘ{喛q);vL~q[nŸb# ٙ!{ĜW_s >cʈaYe)E4VI]2bկ>0k ?x g80:/4tz͜mt:cFt"hfX zMw.:\6zd 6-"_"~ph_`tr|^2FaJm`ŽX{CsqU*i_-qLcqh&̖jioGkG\ I+V*J5N-Ör`9/cwKSh5[qqnV0b+mM@l?CѶzEͩj Trp`- ֲ\#+l%`^[ѕ"=&W^͛HG_#yGqn±cG/|]wmPr23QV,".7˸j5G A1`3V [bTxV=Vus1bXRB+gEBv{Eϝtpӳk5ȥ׷(\[sfXV2*U*!1~Z-lL3hN>3Jr!K?y`˱{˺M+w?.Νej\w"ZbHZZ "_!+a<&_8%(ZIק C>KfJ659%IP+t%'LMLDa򼄲Z;Wi/_17zQjuhSX7x#v؉o<|7 ym,͵ޯ Ynn=̺ܷ Y=k徬ŕ]f$|#f}۞n %v7R*mSMͯIĵOZsɟHtM8:1V G$7F.zxXbiKI|fP9#ezw]ڽ A8\ e8tWhDWxܥVE|އ,nE%ɵLc\RnHc1=<tK IDATi[R)eL ,sL-[ˊeZ=Aqhzk%?R83Џokp&\|| "#VnMص}m0Qc*JN]V/RlSŒ$]"~ҶSS0䘨?)+G'/qޭmU*[Њ!  R@PލW_߁G#lZ} .rC0.#\C;}]q 6mڄo~k+E-\VĭZɣ$6WBIDcn[v w3`i<\0,rgg9ߦ:oH-zZRKÁ[AZ}Fsf<9}xǃE9 ?O<|hUv]WP@ln6ia&U`&Jŗu RƳŒ VɉVIÜYڠyw ]õc=н/Ц_Bp [?klظ7J-]CxEGG{\k(EڒXnZABj)NgO6R+^=0:V8l۶g VϚL<&4jU-'"ǐը EYjL `߂ȉd]jm+wx%xl*襲Xb0K-Gߩ~<3XҾ ˗ J%lr̋'ߐ$,Ͳ' FêFKnxQeuJ'bO)ҙ5YskuV d3m̂1`~+ɶ(B)θF!9?Nc&"yEw˘Vtpף]i=BrdDKۙ:_ss%/lH6!dJ2Ž7352tOFJdU2'\VbVY5U 0Hz|eC'}pow{k'V,[1b,W?!\"^KbA*JeKD$sՓ풼|SxUqW_{=.ٰ-[V~a /sǰgZȍƲaRı Wpx2zA@!&COG?VƤ 7Ͼm*K^+a,ș -gf4,5bt 3cmXu^9YEy?Zx>e3M4e6Nd:|eXi {_˲:lskyd7I6))q$[P-F`$#028زEٔDR")M\5Oo߻9{<>ݪ]sϸ~k*l57qki.=ɨ&1-6<66oI0_wo?|kJЄ<3uTpa)d/pv91{NO2V(A| / %n !:fcu<}fO'`d;/@IǵUJ|1})ju LN.׾ul3s:\; g o f4Fg/ 2<R֋vEg <*i`w!xûG0wDswk>r-ch^'ܧ(ŲfOxZ .<{zgޱ3xà XGIwhi0,['K9Cp3//qu7бˈTJUlaiu= `T M˔+ŶD]XqFA) Xʼnm#s, Set݄jg/16ZG+~ 9~dӸpP28*VNh҄X;yO[kkNl`td nH}|}o4w8s ?KmNȞ]Bnx3굤y[dhVge!Rp} .scy]|'ay]>).|psp2| ܋|en=|Vɍ5?;ɳb`tݛ?=0fÁIcĔcq6[;dƀy Aas #3ɚG~'bc'ɨT1/ȨqՕ=^OYZPA_2 )fIvPdN h2aTVٱxqx'TYX؈UËO7_y fFVݦi5R;KC57H>@098kyN:nƟF8̀"2 P"C~@hmc h07 Yve(*͕F,fys'8M9a!Wz\*6=P3F:t%P+䤊=~x{-PfAa`5ɩg&G;F!F4@@0A[>N_*QBƢj%VXEJ±>bfJRJ@Qmi9>:f=ĿG Hpa|kO/>q J3 8E&/`𵓀TӷhRtB_*Kگl^E;Ɇ??ٓĹ݋#*e,]L,HWh̠ 29[@Zx0˶ؤ98k+fgm_h6:nohpw/s'C+X*:A_[66$s41>rIPYskOۯ>#g/<[\Oz?[ՇWݽE8*Q$[=k*Dݾ}nablz`n/|^xSGkfl^]FN)BEY0_[Q#5<+DymqC71rcf̬> (IIŽ*-7dK¼!=[Ya}Y/:gWאKF)G毘 3/ʌ1ϯ__L+K!$weK:qc'uLg23ϜtߓZH}, baakGH)1-ɝ.WL@hk\SWo,Ξ:J,Lgocim1fl{QR"AWAԲḷLΑЉ}ǸiLm *w;>x@6"❟_yC˩>?sCm´#|g?kAXfRaƙϲ1##dv {r^&z|iB_r7 qeV-]`bJmuGdd?,&y|*%Mlom$v*QÔ"3'{Μ<"5^F$-_c•wJ{.ڀǝZIƬݕݠ"lrr.}t GQ)Uxqw^xy_ /czrJ|>[ʼnƃK']9F_=ߨ1ӶWt !: gfÜ5%ĸz: X9Ȃam;g.xcz}Kם@5L>C-,MറOy^8 <-fٵєp?7z)g%L88eRȬ3LopG@GX~?/jD ? 9')8|7wqb?3RI@;v'YWU>d{dnnl5saeg WVpq[[Z4ÄV/5YhƱ"cA]_=/Yx|byb9ya:P^'AFoXXd;PG*xձKCx)05q-3r81^}M,(a0o0Ϯ璯j-x{>c' /w\߮@dK~dQF„^C_x晧qgھj*CsiŸ}.vvGG%$(?'rk{ #4ZMn,pN̉GT)cϜ /?[?'޷+O9QISHxluE>¼Uf`"Y\@xs:^%^\g67ezQ)Phwg)$bnDA(CRR *uwF,/㞵u$B-o1l!2G08ӫd뛖U=`jVj{S91N1ԘG_sozrAa çYO]lmm%BWĕ_{(diO;yxs8rpJ$u0B'뷱~ez ?yB2it򞙚Gp)-*_cV(nȝFg'%u\p\ݼݽ]  P6̏@] sy; 9,.ySƜ]z >5A}(wMXq0[Zd< l[sx_H}ZT/<0@>T ؗ @9-NWDRkLJ,X'5̣<(y5'P?z̼3m<Q =6,gqObx =3sD<|r@^ߡ ?~ f}}O<$޼ÁYzm BW\Ɲ{ ΋S/~p/$ż7*5-YzkHK qeDn/`ymuƫ/ԱW5ɵ;m|E|5AcewzU1Lz©8}}?F3n)9WɐV6&< ./O1QXX(;/(pMM7<\|c\cYmtg8g+Xv ~ 28ecZEYeY{a[}k>,7RQX/oTY}ĝt[:Z4&Q/5gU\f8+N";g`$!=`=g(Ȱ_dw9Z  #1,/֝yb¾A`,| \)HmQhjR@Ɲ!wdB՜ fK\p'S1S] pۨ xpde֪Y 5&,`)|o. )SOʻ+kzb-`iyYY~L~򣸶%?f,A` +Y"^sxzFŜu07VG 6[MD(yw{*eMLaZGP(Upxl 5-O,i'ݔC#[X[B%jw>v >$fg&qqUvBJKr6N( U?ٳ裏ѫ( - `I4_ ?7?ai,Fb,SyPWlfxyc.Iei9:b/ o+copŒ:i-±1Jk8rqHF\Xx̧7l/ϙP93td!F5i2w\g:`Av+S.YF{>bIh-8aI!+'&:1 X7d K\; =lϾ_.to d{8Qktr`*U`|s HlҬ줜@pc6IDPw_ҜyNVW.dzuܱyeԐϓn@\3NM1H-2ǭvC*%0{Д> zOZJeĒrZ.}` `ŘUPEglGbbv[U|tM&j:~CQv'cd$Nͻcb__~jh F `$ XExG<۟JY^~ccc2jIweX(2F߿,99<'8ÜqIqȂx[N2r:NosK4K965>ƒQ 33Npߊ%$c ؗe~-!Ye9[`8}" 6|`d2$̠Xy)v;h6[J@6f7J]+hQ hrVVϬO!GGV Ν{Kw]x[X^]C/l/ȂoIE J`#ۓ~V 0"g^K!/}Y|p$t o.=s&JG|\,M'?|/8N?v G8 ' $פTfc=( FsG/dO>nH7y0%t6LjMYP'H6+)~ 2F! @苲,[}(8-}8 sM| gXT>t/"V1Ȋ_? Hy t?4E$씊L qdW 5 9b71lD@-mwilYP>x$9-!,8msT!f/~<+( P$ VA$֭7JǘO 0cd]X0a3a&e\6 W/^ijgN\cx^\8uz^sX_Gc1=; -,\ƫJ< # ;5Eq:Xhx$J h&pn~:k=|ǎ`;+K1S D)}X1V =0]nf7e{-l(~ bް)8g*_oʂDApWGE|;>`CE0|ANYLtP1f,@~%I|5 2承þ=\#Rp3]ifCtfزTdJ7 Ϲ\*"xVABJ~IKdރF&P)d9Ve(?XtE SVsM#L˥.(K2 얀0|է]ll>iP}4Y^ξ| ##xcw7zNF1*:O޼^´p`co6&z ? +F#Ϝ]N[ww133n&>K&XEylVJY033Ňa @-U,+')sfx{v| ؗӥG|EyFhdB1RQĖ'5В_PS~P=.q]m}=k!;K6ЇVsV&*Q <ދ1r♜QK.N( 3R/s-24-ps/yyިQ'V$-0_}&[vRJޗim&ޱ#A(k7<> h-/h|L { <>֭[(;"3 Jv pO |lÇgXH> H 77QbU''PQN1) #466z.FGG16QNg~a|V;jg1fX Y$%?XfZ]4L,E7DA*W/o2e򊒩,6fOAjO :,8/ T `?+8902 y`) hxWqg=%̘gi"U4۶ꨊYJf`ꛌY^,j=]/&gQU5S T8#*B-cGLCsA:q1HeX i&au3d"\tL;SmÕ cYmܙ C2ߋ{ɊZ' cD2@Av]z3=WNLIY$#W2Uu5&3)=Yfѵ_9zN# C|&M~ 9#UeVs!m'z8p`ƹsgO\gX}OϚ]yNCf>B﬇Bj]$unHw5Ό#`32C\MUyL2Y6864e>,An65| #} $M(*<1Y1=נhz6ƅ!~29i:# Z ,< *E b溤f"7KJzn(u{z]]bUh_Nm ax^i`ٕHĄ&>#y2[@+ hSFܮ݅-s}Y4۲f{ZٖQIGAr-b$ac(1Ƌgw<ɉQD)E%hNrE7$ij;xBZW)&StPQ}'efbk fŵnH:I`:̝r=[a" Ԏo4E}Tt߹Ϙ +V)0`z]#V3$E:z=g=Q,#~Zh`-V)`E$W'8 6@)9s*),VKd,oBvpfssgu)pӊQIܔB3)4a&箘13Rӓ8~xVbANO]<'᭏~w/asgMj3~k}%Nf~,g֗(B(,Hx1r̋)SiX su}RYhe1ggkL+4},-[C^kL~C-Cq]>54,lA+t^8 l[f^GZS8}L,AKo֚1t_C = r\D,;$Ӥ )Ёj~b,_G]Ab&!0xF,S6LZ(QMa#.ߣ:b01jaڜ#89 nz=s0!|6bHGA}_GxA;Gv1iRf&%j 3){qOPӠ@ e yj{*J{D.G0!œ+ 0Y`leܿ YF%;gL/aW,@`X/JW3##^\^,(?}fKeZ<.Y/eT,(19:ڼg}>6Q5o5U!a)3m90Dwن,鲎"ϊlN cÜ{cgB_əԌq:3r˘)Ak|k?(?eg6.9s }k6| GK$/ZvG-?iHwkl {R{2h0!|bR5ݘͲZ0ƬvHa~Y8sB駔>lusl`<@,7>N1cJk${!8ۮ%n a3tݧȆ &Li)FIΝa"]JeYueWd6ɚ)X@&Y;)KR9S ~%lkر#eB9JGbIg:p$3lpq~%pi&dG& x:ZZ۔S;<= IDAT-!nnۅ(&Fk8<7/Me^2\O||<86P-&;}pMLLbfb\XIJtTX?vGfV@oe]!;v#sxj 77p{w /#΋W8!aW}>Sj5Ɇ /lV>k Uqxʫ/[T&Q5?vl B8:{ȎLQjS쯹W{V춐&8&!*oĀ 9""淊Sq<2hȢ lSB^{Ƕ=|F5`+N;c7 '̈MxwGZm!y[q?tJ|*ii *+0V@28Z͵=wr*Sv443]֚knI[0< eINt1Śu0Қ*ي[*փ})'XRĨש&2$X:slJuhh5yP*jE)ZPLm` { NѼOV\O9XX3g/gZN#۟⎲P1٧i/bgΎ nrR9}Ĺ!hWn&s$WT<@QhMmЈ۝ ŵ/W0z(@mzJ[9ҟ/bQx/$fZi/>:޽XZ#Ab57ON­0cN,б`5`3mf!VGwk&X'3˒]Wu1#E,|pBgxcR)LL]2(Ղ(fˑ e*/b7fN(X`*Fcaح"/j7خDVE,h,cWHMgHb.V`G-7־Etg, *0 R3vI@Xڱi,4LY՞?>syFҞ u;zS= )ӧA k _O_<mm|5lHxȍF+Cf`sKi,$Y$Rؔx[@fAzHp,^eSL!3pT3ޥI֤y %$f$tЈNRm1|zȗ]tc}\ ~}Dx+qaFKpI{ِ׫RN^L-@ ^:x'1Y.JX;8ZsϞ.>N>Z`H. [nH(.VT| iY<;6:V}Mmw%I~kcuE"3}*\;6q+˿F=tЦE km#9ex87X`re}+m`sQO1瀯vmŽX! C B~ҔmsUqͳ2jmSd^rOk6,C/\FqvրBtɟyQ2Qz>YCftR>kՁ)1 " [Bnrؒ (!@RuiFGINϋ15%>^NFGA;4 3^W',],H-4 d߭-H䄂S#ԋE7A] ƒZXLXXADڜVVbnK5J[Mc8q6"Y,J8)|o+POj b>,]֋yD"xӐmvV'Z$͂冕^s+DY%?5ONkhرǕ_ǿS|Wml?ǽ9쳑E˔ r?̉r.D8!L3:\>]Y3ٿpsugzxa/PiUkx1;7hE1F#.]DɅם n` Vaokf:)h@ۙqi ZZr^عwo,No ~U[ܭ_}$LA '^`eb8,(#^ڪ (RsiP92rW)`)W?'5`yc-&ِ~I^ :_Jg,C0`_ _3 bE(۱bʁ=Ilwsp1`O64·ƲF %2V2=LHƉŎ?4eZ=`KiS c/0y^]'s *SBmSuGo&&5^)YkLCF$;}МXZz_!c %LbZKCf[hmn.m['$Ke!h:a8i,U 6(ߝ-\uܿ2Y o!ۛXTSY=:QW.g|u똙좬NLxrn،7l#2`||{ɦ>FKTSzepAx[2/6e,{"2_H=O"=ĝi'uA:D H{)\ MR|&-Cgj>s&. aڲ n00HfIQ%NVN 9 ĝj9Nͻ(5XTnfx:1;ך єPόAY^rKzk8$w3Zђ%'^/(3eGĎѵqmfZ-~(q.616QO<|_75Qû~fKzh6q^\]BCŐZkRVSс1 "r  &7A~z|̎>6ccok]llc{FNB\_o$ʆ+Nckm; rg1>1rWVx# % jrzJursr.}rW>OOCTLfYjAlVvNB:s|Z+O[!ux.7+Ԅx'e!selIN&Y#^I'RˏC-IR8Sjw(:^5L%A (VFXz: fr!gX@?#06!_t!+OE<-sрey!{@-$L1CsFĕ)+f"Y08 \[ ϋeoms ~7r_~< wޕ%'X^ZWj{XNٓ8xz[.`2I aYRCS0}x KYFՕgmCe(7+QVersc <뵪"P79=)ƥ+\l6 C!N|Q%R^EQ\G@b<է0dD7C'0k#̛T_1#$z@%ki )Jag#&-7π̺)+ 1 DjgcJ)IMXL mPhs9SȸXVq/I ce(V0Vj)geٕ^q/d65`R4lKzEQeIA%ԀByxo {J0cğ_bBZŵ;ʵk^XN&nTt'A\9*{ __V98`E8u;grQT=nbsy[2ZY6RY.bog/N,ue6Qwcx֏߻ ؙNH9R3}5ђqԩg ľ6B-(qSy 2jN'drDAo Dܫ2ڹ~ j ';t}шˡc2ۦ mLS`ڬkS\!XPִ;LEӎA; .(d:SK0cܳÔH'\f $}XOpwjrgzVoh3OP(A O o-1yӀf U1]iTt;>G;gww˿ ^F\EJ 9!7խ8w0>gdXH>Z(D\f&DoXWUlnhsFi& -ɀ%۱CZE^}/q#]`Ф8Y<iG?3>6Ϗ˂؄߬oyR)T*"PnBFlSX^ Lg+h`V’Vcjvj-\c\!/~OQt9єTh2Bp1We=25t.ґ ^ ,SF5bRG<Jמ?mprr҉52LYo3LѾ)M]"kw953%!>h)a_m e]\)Ha񧆳2 P]Ґ{h0ZJ&2uyUvaƍS~GǏf do Kћ7A,*3T &nT2 ,*ُxMtm-,'KX wSs3~wVW6ݐ)\DpOF wOYS,SΣ̕d你.+}8X&fUc<ҮűEA.'I ̍ߣJ-67/oW8Y*k]zh^@Զ:g #JLΦ DK]v3Ye\+R)G ҄@DR`R w}SZ`:%*?{^;8/7; ^xk=ln!4ǭMz%ߓcSUr&I~f6(vn4֑ZKORct{(FPdi VW7X].Xa;z:vWH⵱jr @~e?1ne1aRَw4,8(SƆjRMO}x~`D y,'<:DK FYyVŨ,"sߒ9a&} o&( ,ó{+xX7P26:-J*ﶆTʪ Ec`u-9LkH#Cj1aK%f<T=@tk _7>lj$ҞNܻ}󾈜/wfAPKt?F6#K{;#bD+N &k3/o|8z(ַƇhr@_߽3GSg%Bjv/nΊd][GGAP$J#?'¹;h5mco )ʢ1 kuL7>3jYeW6vv%CsZ\Wfx)Y6'2^e˵(0%/8\^i(!2`#UG6JXRzuwl4; v} {GR^%=iTvAؗıo$iHӀwKO8BPE*(QDܷ̈(Gzʶ -i>""u(-%%? TcSQ1} 'F8{ܞ_fxfD۾$6yOSR#ev[/;*cx/bc}S꭮\!k+ʨV+׫SJ35k%,.l4VR ZFp'0UkW113''kB&,{+X&-YJ<TFX[Xz HkG\Q6[]x+U/b]`# ڣk5%K!^$`%cDWn^LBU\#BNO~)E #Ϙ"|τQN{\-;ꉉRx-[sumrr'C=zw/i5LbaL@H.КR+Hj ^U2[*%buV7݋r/>mB!rKn_9xpC@r]]^dG#s";L)M ޜ(@*2'mP`Qg.E}^*tVo:Rsө?=+tsS`'*;y)Œ FO>}ݸqs |[o|M?W?!v^ N<Ǐb~f'0Z;hu#h@nq˒6wh}brv{0W.˼P6pkqYA2czYj5,YKHEjJpWzG?k-" Q~{ e-('W? [_gk+"QH2`Emx1l! X7ǒF{i)d#,| 'T/) N^sO `4D}폙K(/`PM7Bs%Ywuxdp椒yE>X ^T+{9*qE2kM T4n4J­ fcR-y4&v(A3e C"+ZeWy*H%``$I^$ b` jR_4d\0%X46(5%2c'%3jmaDb, XVz_w6Wo,+_Ξ¡ILK80QQLVC&-aus?^@;;{{D'eINf&q!>|0.eK+ږ6ZcREa\/#5+%%,.cġ8r0ft4&FKA-?Jelǜ~A=<;d|>I r5kּ $5u |!]μP-:a5͖{FG|^~SdO u^+k54:vwvj Gc'P/Tqv;xg+OCԩITɾL$Xns!Ae>E_rVWWQ% e偉2|{+P[RJ\0NRE͠ǙشlY>ȡ<w;.14] @(rk0 RYEe6^? B'X&q+O-' [e!9| 2bk%U+X[TVEಳ;`~"=` _1|8FZ=Х<9QZRk>9` 0dW^jjCFC7)G3Ke$=pi3!rӉ65PSSZ9 lNSx./tv")0Iddny2[*7TvO[UczS  9==>3ə)˨7[`^F5cv>,r2NaqMN19>=?ܘ T/D D6>Z`Cm:J`>ro~8<5n H|kx4FGH?}VFGSgq]\8|4^l|Y]y%;yN@ 58VMR5,5n?Y)-ŶV[z2ERQ5 $|޼'|b"sEj--&y3FV\bvJ/j:=Wr d#{A~ MG AʰCsnU*J me ˒SfUk.ܲk*7eHHq8u[rFfIYn+~0 Apg/VZ2JVc`I?'^JS"`PB:9ۣ Jw޿JgV[ (c&58.Hƌ "KDb83L 0r;*P2j5նQz h"5DH;,D8Gx=B1N'3=˹H$\12LB3`݃}zX$颽o92uH"rvg*!9N+2Ƃ&ljrcu#Ã9p:~G@9V6 z=}QXmK{?pG{t~ n?{h$"<ca y(s~"Qy^)&j8>(!%B>ֈ{> Ts8<h%ˍf=m 1\a/_&p.3PS=[Z"{l\xhwvk;*~hsscZFgamiPR|@T9zW{]Pt.:EAX~y @HJ7/$q#V.BgeLW! r;T,t*4,,^xo2AK9 'sV^rYH23H#ckvA-t'cac: \{~NVKE&|b 0LXևVXRĝL>@\ڸikBڬ8}JJD] %DbbCVQTPnʕ=>]4[0!lM)腚/ve>jm`mx=|/^|f:6vq//M,/.92/J,{E5?fj#hէ=am=ȫMgkfnf֫h7h5PU, I`Hnqcj jj;_:W+Wp ic{w‚=x@Zy @ J)eNO`D[Ap ag̚Ro ؛0JL =XX8>ByXBb%GYX D9JCyYPcZ =ا-v6I:)G<ݖmR4`hem*r\uҞk̕6UYKMݒ{kPexPBz1Ƌʋjj ZQ$Uibw9$'pVwT$7 ")5\1c-E1NNXPZIL@k㥭*xv2`7'd89}]7FO tA"UuN[~}_\ = "!*PdbKKJeB?2 sVƦCX^,Ӟɂ>3K>73g/^0&vwcOq謐ғ^&2zjREeB칊P]@{HDjwCj68 ْRl (dXG_`'ep ϻ?HQNiHE4И(#XQ!c1&ʂ2a=v$t'`Y)JOyZu"xΛ+O,aAhk k6H,3R*>T3@ B':>Sw8~Ulo9pS*42"Cӱ2%6r IDATm?Q ^/@%szV,/Ke{xePSЉ /C%y6NHVuhZ!(h1Ɂ-;Vlt%Q66HK2g9(nBh*JG3Vd 5rw Fdbfϔ'2Ed9#V"JJ8P8jV~2^s i3R!F1* IFUѬ.5z޾hŴV5}e< 0Pd'j*ex1;<=EGgT_:L'SK2 +E{dW%KP ]Acy=yZG3\sdaH-kDL+qu"d&Vy2y̓2T$"Ş~n^h[> VO<,V"}E%<25ݖY wfT^1Qtj%_ϔ`Oww" vʄ4.Kڻ=#h1Zt p Dvx[7ocpLCCj:DZCobpW^{*vk3NQm >kqݝ|QEsp'Fplrܖ+O];4Xn'O)G5WMVPMK7nJ'̣sUsq`YTR/VqC,XnjнH J :… q٭|#@i@@tQXY6K"ZP7aJXa5ury@x>3aEY(>;`2dDԓ*Uu)=u6zzOS ̵$ԉgW˻5E7+VI)sܶ}F(*r1''W2~[2a:}2׎MVZR(ɉ=UX .,Ycr) 9 2m2*9 [Ck^N͓`&R=^ť,-mY D{hhkc}so}[xgνv)w:V^=PBO:? i9*H[<i~rn" =Dkԣ?JsSN?A"%yr,k?HBRbv߅c$"+'`gY6TBݔ<,U ʮu[AbE궞.gb+[K2gMw%)|+ /ʼn7=z 3b +UlvD/ةt'ܨHW!+hL"]6 2Մ@\Hߜ>!q6e"O.GnlJ0&A;Y~X&GbaAyϳZ82Nm*1I 7L2l-+ '']&i{=*Rglt?z4Z+7 b+KP\j{u,'I-QPWv`h FĶPQ] \aᝮ ?~S~Uu3qhIBI(; ܄-Y?eB7rt²1lq =+!3(1UدEŲa`z?S^f`"(ïG "#W:n{+q~%.:L`vZ(XvC!sC{diK[9hbAH : xYԁ4'fct W&[̱Kt-N[13JI Z+Z=GU{>xף:X?*Ps1{ѕjRəpl,Vw> VkO`%/cRCv.+۸w?;8h~ث'_z/()yЯ4++5|tVp- jXhN)A>s辋HO% ax=PA098&JI$e,^fH6@:R"+-»@۟{nJ 񾇀G[ -p&9Nm3xwyY95fقhgnݳc'/=j_WdQ>*=1T[onIO6+1s]M[mсx*iZJ>pq=xT2$?ipu`"K 91}g67 E8ѱ# ibz xa/YِZgDZ!n@!|_XiM{V{$6I\d¼fȩVibr ݆yY<;; Ɍe.[#6IǙ /dDPJDmQu,flHaX̖s ӥajz瀢$LsFV`R>Vj[ON뗿\ *vzReN!fX[J7;~RFfCFSS `{uECfOe dȂuq++Rəxҗq+h {ߟR,/14> Xybr %s>Y[{  36rs3Ӧi^ŗ|q%C;)c sQ B*{,f:H&c^j $d̍\z8bY1MwH4y_e 9!a2͞HrWf@d=#sz7ZbypT8q颢`!0B%(GuSsޠU=DѳcE݂t.+Py b32fT2,٦0^TEC)O0DWs-e 5Y!i<?d`̱u Sc' o͏q3Y 꼏 kul,}=oclpw_Ɠ?Ce`hebFe >t;]llCc|Ժ3_A1˨)Ó"z. ).| /?&ַ`},csk mZ1W /}C*vpM>py5:t:q=R/dyll%'K{"* e]ReG,d+:O{Cb0;1R2)lQ2dn0xݢXd)[Wq kW~`-uly`QB QT~fC%jj/cL" 5.}ut]K񳘽?X\bh$*m ]Oq<5먶U+p?/Ά2A* j dbt8߆~o%hoYmIhj⼾lIOm0f@*j<6sNhojA.v+Sa}zb RJݪO3|[WxQ~-ξ_Vtĩ/c}^ TI^ׯ2^>=zN^V4 ):W091Z_3YCvxJWȎO{{O.co{S#E`rN#ܾ!ۘʟ{t}#Q4̩ob``P7R+)vt:00PZ?@4aiƜuDcgPS!C y?3Sh鵍t?J {Bۆ+E R3<ᔌc"S:QePQb%h2/*c6qš<^G3% ;g(އ:I8!@uٛJ4Q" nj2v !lW%YC$=ɗ s|zH]=N@ѩy@iP%ZڱU/iοH2A&9+bHxm fU?cK+4MFT%@E]‚_l3kϼ1-k5/w\ǍkKas{WqsXʯ oZMk 6v126\[Όc+]]_zC{lmsJ)qwc>O#ȞH<;G=6O-<č[xxmlx2Μ7')u~xYLϠ3~I4̂eF/N.RdȐC jؑU!%A,#g ^e.u"#/b ߈Y㲨|e@(QJc+'+Fcr&6Dp"bG~Rq~X13Om%&RPyQ3LC!RSA/tXCYP4(3qO" {ŝ+wFg@?Wm mеӍ@TfFY+9bQqߛl4g %cDMOӔ%߽T;u7.V:[C^רi,LjΛǿ"'K' obo3Ãw̿Z 6w:hU`|/pcyl9HlR:uUٯW^gX-zV*w.hrbc;X?z?;oa{{Wz vր0{zX旿gԗocO0` /ͮA;![NQRʃ%GM% Yp&"Q^}JJ}1AEqV]UV.l,ܮ$n #K WRe?҂kEB7流+ .zr,*6ʀd6P! u `ĬUCKltah3am7Z1fK tMk D4_F % {h0((mA17#KDWb#: 3?s sSE}xw FПn-Z'(kTsVC/Amv~aƋz}GwB"Jj99`ja{c]4u}.:|$~'K \P^gjtx ltM:Bq!l{N3) L{[o] ѓ%G7VۻKX]^P_2ޣܙ]Ȱ1nJLN'E'74Xk65[H&i/^/.4g5DZDB`AP.CGvuw3]5O= nIRs&Kc^L~Gaf,I8 t%|.*ŜB+0mEэa8."3_SGY/)V -[/4iPz$kiQ7@ f$EvſB}eX 5y,4R_^'%-L=5&zil=@H.id߮%|*RDf[^rf*G!leS~!Oޕj[*I3t뇴o9N=z woI0okd!ƥI!NqV(0"7d'i| )DorKg Ad&2ZP_clKaY()Nyg2O0hbN-q\_,z "͖KK#)DuY;U>pQ{% 'պ%!b2 XtfzϵG/{(Gr@O0Jd?S}I}ޣUwC8}(b`Iԝ67i{lMC/:0lSƭi|ym2Hkf|{i3ﯾRMl`V"E<~t/6a3{x`d`i}?K_N݃vw)" IDATJdo4&ok^ |60:1>lawkχs5k{AKK2,ҳKUy^C|pΝ«W;9*:v}w1׿ɱ1)C9T'vfj?Ӹ|9RJd7ULQX<.wy;haเLt"(Gh~y5FNi5Ԍʂ΅Lء`R O2$0VgӍ3]2d,+3O)%6c2z C84(&"~?XI8ɸN[k(z>g X< 6i  E{spT+2; *ė$_4xfΈvQwh *3R`%W>Y,evVҸ{R`XnY!D EN#@NnXUr5+,/5&&nkz)o86v:a7128ZzlWk'qk#߽o'7*1?D{r5߇}u [Fwi s?I w TH}ٹUݏ[ U*́-Hplʬ5J^Sȅ13εMD襬 ~Np`r=;_G왖Gy )E9=)byyY1-6V݀U3Y.db\0#9D#[^} SL+dưw`&67.dVEt5иNIWK ~UdXJ=i0 6شwqnJHH$MX("Ƌl2tTxwi yx%6T\51T.-؄˅ WaQлw0? %~ϟƇg0=z}pOч)MNП`my'vfkkYvz@o./^O޹N/"U\ɏ͇96SÛsX[NJʾb}c[3kf$a>V} -'MtkE]N֟yYl ߿90US䠭?щXXwc߇w~'?:\l| u}y-l‡0+` ,8sQS%wWB$ \"@Bᕾ[$ @ - pSD`Z $|UzVm{D[X3:(y^R#aӖ^'PW-P/[4G蕍4Z.x$yQQ4ȲbqG=8fk ^MɓÚ h|)BRX5i&Re-2LpzNO +W} pga lKQLrL3:L X`Il)-Eh ah|y?3T^H'Ѭe׈̤w7cr#h| ]7SV-k0+/_ٮ/|+ߞA?}=|x:(~~7J~Wr1V?:S詰>FGA=n{MTSxOn.“uܼX//^zp'v70C:=F7:z?kptF Udžae{ ЬC/=u 4Ws8>3;S'4lwfA4}=m5G/\]#si/DVߥ'jgw<,z`#;Xh ;1:g zlTHs-,LA^\Y!|"P cm@%ˍpk98$֪pL7W}eX$6uO3V58VAc[2r~W+~ i_!?e_-=ӳ!d\Tܑt @wTU) LA/v84JSgJ?Ai:ҢIf~VݝurAf 5*ߥ KH\yЀiMeVZ= 1|b@&PgJt# _89<#fY7u;y k+?~` 'O>w:9%3e"x8I,-bl|(h9RaR*31'\P"$ \66wsmvVO*vicFcgc`6;"CJA˷ mF=\<Bwhw*>|pKkj.;3<Ϝm zsP־}ḿcK3Z50_-vȈA:v.DXyYh`>)D!*1adż1P&j8#yN \܉F(n E:PcLp@!x,W(er# 8#__CA /w#K??f R|68`0t1(UO2o^b2` L" &RfCmM,CeVRȹ_yiQ֡-ȔTrR,yO0JGY/eZ!59d$>@rU#jn p ^$Aن&󘖍7~:=;wz,ebP7*oMj5?>z/\zCrp0C3)lB 9ё,`p`@{mZ Js ﳵU; oaoKϟm\y Gqwn K+O0_lj15m_d>;.ƆZh5G'f ح>0U$>1|TүurP/o_ Һޟ1l.bcm ?DDu#W O©&i"Gsl\ Kz^M4zE}y}1 `| kbUd"+_,qǤ+pa!;%hޒKoBxB`>hb{n@se#v-oƃ(76MC%>:0 Y=Xힵ.(ZGu+R ]E`|O-i˾x'zHI^=<##۞Q1[\h*ؿhN)@:=]'tI++ * Iݩ+!t>]M@ta`֑K)('ay ^(Vui:|\s9p+/a=[VVV12<vvwmV̟?EYo`v;;xųZ_A ýNj=G13>>t;X[\:jS4߾ j,+J2`ϮaQZ%?3o}suWSxEywvK?w _>&cї~Onx.I7qݏsƧQ1ϲI2k0sgFxtIƈ- Da qyӁFǺe?ޝW~v65rC#(+MC 9ׅR2{R1qwx _G=#?AX&}/8VxAFh I3T2Q=NI22:'a - ߃ɞVgusրyb\&d +ޫ`Y!ps2KD`I{ɒ6)Y6IY|nQw"ʰ݅㱂^pV9 KD焟)Jbdl$X6^B$@#˘,ҵQ./u_{ӗ }¨7OZ|we8`G`~@n`* /2bAǜtP\GY%.$4B=G`݈|U'J0MQs61ʣ2d=רp/C3w%VEpEWLc1j `9n]4᝭djˋ$\QgXJ•15n?7}$O>+Kg/_Kq1alz u4HNKO0UmaxWjIׯ\?GJ?z[w5X%=at&avǜ?1N=?WtlQ{-wl7I99҇'0:k5($!}m+q,-c;wvz[kj vv߽./ۿe|9z)/^GIKQbiVobìM&wQ|*$rWK["*Vw^(.d3KE# 3}HW|kS\i]Ɨ. ɔƋ2ysAB6A& w@]Aڑ"@cO=Ee©fsxoF.):3L˛06+5It2EWlYZ'IG,KwMb Zh/3ЃdUҜ> 9^䋂P жUIUVn<ɢ6CER]{ETл˧U{P*2_E⽻L I&s[WeqR kNÁsa$747cNcKNcHBV\څB~N]{Pk'}N^`i,̯$>XƝ5Pb;w!铠|p锶PƐ_~2n޿5dƛ_y [X_֙9Q"S9^Ľ{gG?5a#uDKրmѫ#HeX[A{_>f~Ҋ+ѥ` nCGUcVnߝx&˦{{{SCOuh֫_7/hO@376ves}D`^S|ڽfȃjsئ[@k,B PlP8\B!LLf Y+I%I,3"*8m 1oM-/89#UZƠIiؔ {E^fHHcH/|TYq~+ycB>p4oSER{:-t N:LP(XPd UlVbટp H= a^^-Qi]hqqjl#A*`K ]U%(C$,C/uTezVpAډ,ڢ|X3 fi$h+HoIA]a;d@*zv!S.deBԙ$>J AUwGp<ݺ/wҋ159PV7~.,bz wxzи~K`{Wo6ʬU-r gwo-|䟓aii\CG-|X?F?؏j_/#P°-nncgou* nkx-l5ZL'[RV3xxy-G[ֶϰ_z<]f4Ҙ59d=1qFȁG%@Ѐۧ\H!J9lCVt]3Yt2ϲH;_…e2ϙpce* ૌ /dh:c+=€,15g88\3]׭eH)'R'*Ye{8`Ϫy+^%aa,Ceh{#*LuUn bjQ`G@FlMI ʏ:Ah.65daYES;$pf4\P'5pfc*ԭ)u IDAT"h@|I@3o2@20YthJGe@cFk5pSًhiٌ^gtg!+9 cJL[s;]c& 1K2tJҟ O㫘.-i ~>$W'O,U(50Yj5LȀާϽt x<˛ϝ֠kqi@|:Zo_zݔ+865x1sPaxcFqvl}}0W5ޯŽmH426v ƚbg_b\+9hl2l IEwq~ ;sL?W.c»2mX/@Tu.3]t~uXjv:8C h%tŸLEM0˯ue?^z 7/4΁[3/\R}&CAa%zW(t22YeA[xb>疉Տ%-촾7cYݼ) _q6XQ 3D`mR+P'[W*3ӎ|[WRVTNe 5Q>`dDMnemّ| ˬ|2`Ah5?5aV@qX]yJd˼ULwr vk+Oo}o}%4)=XAGMcZu\W_֬*7F၅J֝˒y3Puf+镚&F x,RZc5`g, QuK B:/Nt&[0W^v@Mnj/Dєse3%-t}pK!*A\c< d$Ak7`2"%PX8`,nCŌPS#v¯ZA0"Y---4NKO=/.+,l  zZL?WdΣݲgg>m)G1ߜ4 & +mIdKL\B+|6,;甆s͎xE1Ce& 2p˼:F%ӱ5"KLl 8ˏl^,M1c_z2Μ}={7.p=` SA'bJ`j?}е~ c3VvTb}b|b;z_Wh^<>҇F051z~66]WK v7=~VK!^+mۼc31>ܾsg']XS*EE 2Jwe _Nmz=/e l4A2(9nM5Hy-\3S%Z LA4VTYI`0񘵠" 2pUp"Y/k' j1tI"84EʚMTOVs  ,R?b-/qfлmR~uAt`W}0{:ʫgda7>askk+K832=S6 #~mb<nF3cskltP[X(VTabmcϛ.*чaeaN.߄M*ܒf>Žv[Юb|ᑦj6YԎP)u)w䱮\e\f kK,G?sQ&@{> p ^bF [d~ x U׎]UGQ1ijnU;.)}^$·d CL 2 _ bV>b\)e ua#J\gF+i^Il˥ZiBL@kDPjŽswB|2y&7'>*}P9e9*pRl3*iK2HJgBr0JKtn\yeXz0梔q״y$yPJ3S@t| %c&&-$~NtjͱKRMj?UIPu?>wj+kx-ܿw O^>Yջ)abf,2 R%Jﳳ3X#fv'S%J[^7>Tx=7nk]LOk Ŏ^#ԬQV7020Ǩ5F{oba=z~ շ Zۥ}:n -]*B=c#ޏe&JFlAl2.ˬ؆) G0{j (΅̕0MuRgS'{,D6iu+27~umRo60:2GOM;pnCK?w\[035{49~Ŕh"el4(S9 ]>p|k*5>n~uUY Jμ%oa4^l{mܾy|Ͽzm9s|_rUvT%Gj4!*Ԅk_-ӵ:(u+zn/FK8:YDL=_ JlMe>!dK' N2c,2,8[c@rUUν#v+u sXՄ.JQ@8t,Rh"M~Ur N/2 2/Q+Z\9B#LAlu6q~äuuNfF ֬L\SϩڨڂV<3U :QN xU}׃zNd/bdXTOSDBN\ KTƶf kn2 ՊZ7tTAݦ/;_(+3(4|-®ȓ@]S&{PJkqϓRCWdꕼ耭ڵI.]׸ ]_J{HF!{c?@օqvEVZC{Szźȩ3xnS+_:f' pU7Uir׮j|4dy]3e}}u^SC?~8(]\Y@$U[ˏG5 /Vu'f>+j3]vh^7zgN9AXZuhۊ13D+b}J3Y֋O-&)TEՁ.u{'j!RFgE߭#SE&ɅD{!ZR$jzTXu<Խzfi(e]^JimdT/5#,–Mh*#{-]]Z.qg̟ b\wi xge-r>.Dq9VY }l@zWbƿh[Aԑ #b[Lv(QUf,x9i&]daEš@a+BcY+Z鉨zP;?u9ac0ҳ>jլXz;L!kF4alBRnvTYz:L4//,}2 WMƾ| wb! R>&5CYRNL9PVE3FS"JRt,RPc_#8BT4Ilx1@{n?U8j&)-~qɂjɬ!J,Ql}D!qē eݕ!Ů#p%ŔZie,Tv }{:6JMU/1M^ʳGى|ǜH'L?xnnB]"YDoK.\H8И1}0DҠKvʵN'{ުCxѺ:YJ$ҖmYO2IoI5{v#XrSK%6_ms@&C:&Nd,GP#-}ņ4Lf҆ʙ =cMdAs`UZFM_ڊbgOz;{=lohf#~7꓊XNNc|GX:JtL`rf4*/{w[VUε9 "I()I(*mn0 V%ԺjX,<ͧΪ%Í?o>ًpc+ oCDw9te;z%Wt;ߟtq:Ċ>}Lb:ϧ睻X-:VE|`VD\Ԣ<KݾEKXX͸1k+kMx-+k獺l҅b|Lh>% OvqR5`-#ɳ!( \cxʂS\vAoO4f;|; XkCw+FEͅ2w bxBi ⼴2d8 5'ҴQ P ^גrAj!XAFj,Xʜ]:\ezhJ-Zf@}VA72f sh1?1Qu̗q3MЫU4 amapebV[e1V4c`pYXVnez -A!۱ J@saټsSY%-BfѺik{C:us6ӝ/ .B5~0zڗβelN*lZu[ :{MuT(TSKA2&zz`]ʴ&+V pRIR[t9cޤH]w/fm@ D+(g; v /&/.&ZnNXF %c Ԕ%D~CIΤo N/=a\p":E=-1Foeب]O/acT1U-i4L<ށBXHg "`xHBe*B;Ec59{5 ڑ L! Y~X^$+"-D mbe_HŤR]+JizkY,$j ¬=IcR9!qO QT Z،fݗtp^r A솟,$TIP @ɽԟNnxՆmhcf]ǎUdšV'uZTj1<{axw@w~ BM &D(7>!ziÀ6KTO>{ĭwgyeuq# }BAyߙ:%@GOZ-ot+tZٲ(PdӉ-QBQ^Ծ ]%AԗC=˒U$"A9 @(V ":)E=;sx+EI"Zh v":ʪY .~UYH-9@0 谪7L8krLܐ4XC4b Nvɲ4%]̴JKKBil)ZV08|ԴeСY%}LM[d@kJwP1P-flv1=k̏9r8eߘ rJtW\ d>,UjR6bhy}FL'mX׺i6W4I %[kcSBc_r*W4d.(o"|m!Zr9QJ20%2#:v]Lj٢ Gs,`ZM7]yRd/0U>(Ѥ-#9d4”$VDƊ2 ;7ۢZrF ֣y LQXWsR&](7HL, u#|yڂ&ȝx. 4ڸ(;8j(yi,= ied%ҩ:;-nvκ[;]ɀ*K۹K 8tg ʞ=Չ#[Xtg;6islcȘ K8.jB"wS?.Ja *1x<Mwo|X_Mb]Tȥ };q6G{^M q DJ+Ј7VX5&1N߈@EM! *R+m EH<xeBɫpL24 6 K7^\&S n"ri+|M]hcw)%k+K@8Hd,7^(.C]mPr-f0d7嚬P&&.!C}6T) -jj3K$K p;jFIvԛ̘$I(+9Y&BehŏG_X*F$e_"%6;]XhBs'3C-6]Z_2ZONȒqś7 wBV̒l'W;MX"9yil| &#uTQ@RoQa ajfإ~RO'a`8G\dYb̡Kll.km"Y$=h?x :IneDh2tS츕6QHm~XSwsW_I;6*; oOPX 22=d(\'()NiAԪf([;jy}ҏ]#yrrn-SFxX; յU_ ?fڈA'#k4WE 4[WjRu& 6; eF%c,X 목M5 +275&[72jSl`)aeL"fP"dQ,+rgRd]v X;v#La7ލU/*fL٦3%[D:00n2EXfPϊk5A2.rt2Gܠ?إٚ4OT6*L}mqH K;B&w8ZƧWN %A!w s IV#fxzln{eIZ²8#K*m%M\Q3^80C]a= չ넍ECBn1Ld'g-URcvDHRN82V̓+v)|lІ `:dД6Xz>ЈW'7fDzU^#7Z㋠QAf=Ku LSc_KG4NR ؾs\WE2CwF G@D؋`3f{h+44Aqe!Q5oDvlB7,24iَaTsNpۋ=fL4&+B=snUBN&lBy[zU}KD;`ڃ47}eBF~VG{лJ`gpu" -̗M;1BdV Z2m'(: :ϫJ=R NJ&J(}3[C}BK (->&e 4%` &faGl*0iE|3dUFԅ ތ%2-+Y_,ۀ)6: ȍ 2qs"bG*F}prbg;AkUm4R .Ɨ`Aɬ] ޴Ap07pS!NZfvA5igF6aҦrmf )٠5|kcT%8bLSCyXV;;(杣]Yv4oMs*{QEVK;MLw@Eh t*f+;RPhia1\o${`g}Ei Sͭx)kytJ Vh|Vئڎ2Jy#G*hn@m,Nms$ݑE`/ȫ%Nhe&յsduA R+5@5 ǃЍܠ2$,X*nP`NZ5B* 5\:U&^W feІ3AơE۱Ȟz.G<?QKЬ`ծ(ʷS;V8{6'21+deVKħ %d]\Mj2 ۞QmwR"%A~s̨;('_)Y3@4/饝R5RnKݔn 3^ <+vV2 ݷiRtŰo NgipΒXPB#=3]i4Y,ԁ%[*r(S7{䊹d Zcg81ΦeGNV>kPJ'^R6Q%t6J$ .I-jk7 Yˠ 5Z.f+ Mˏ Y^!tV)61)D5ŗbݑ-]H4XybI|USd4GJ)jKr@?ѸW[ 7mh;no=fѺpkv{;jj]nv&Me2O0. g*DZPNs&Ib`0=\sEYmSZ*Ĥ\NzP S!2k<ԡCӆN&4bU:F>O[7 D XX&V)TZLlDmvBjTG䪝=apuAy6A?ף.1p̧@=;S 4UL76 6bP[ X'"3y;v_L$A"r7f$%Qkh -WUq VҶ+Z'j+ϰ8ӐUDD O!h~ |:xTR>a;[Ih4-Nb 0 f;K®ʶ~1r YkpL)F* n;b*'݁^ BE,YSkXIPc( ]$S(;m5H &{6#͘_bI]9j}/RW&fGL(,]@v'B˗%f.w\R i90o8ӗXe)wͧ%uzmuÞ;;SWRA9../Bcwp⸗Igͮ} r%f= *3 3TK/3F5`:1Ld=\"g_] ʔR6a:,uaLr#,qOPTwpel ;$Uvg = Y!Rq@>IY v?\jL h^5t"=tJI5<0ch;A 1H|PAviٗkc4VVpR0 j[h,jb{]/]Nj+k0Dm C+l} &3,M%XcW>'V~ȹ!Lj[TI%?^Z"NϪaX㈚(:r;i(p1Syi[;h Xi+FʅȌRyY@pfg[":֎sƍ X.,H^f{lpWCPزr'i~UIDj  C;&Pwl dhңxp`oʬ?S?4ecXg)#e!ۄݶv5|TΙְP;0%TT%E phҢ4aJ-rӬ!|;J]c2`LE`1LFOSwd(bE0/Z=O4X :]bߜļ R癆VWꔂ-5(%\L_{vav5Ps]A@?gPDŽ!K"`bg5>njBEō7nLġY3} ycAi$LRcVH4n ZoE4ZhEDf9e\\d[\ _C#&qfZzm&8r1ABТ0^+ISn, 8[)iD: vn20iѺ#U0 {&l^.Oa3> F MFdғnie&K18M9Fw{<]$ǯ< vhC`:iUS VpœgǬq=dM7Wh#p»u@o+##cf1\cghB&@kNYTP!:^{Zyg!뇦9+ &)BGV)\O V5́:;H,+&Xȕg@Z-z 5~rGK^HI!LAE$CC%o_֢ Ke]RdBÖ]ӔOyAxq ]꫈' Z+3^Ԍ~opl.{v_cAwPKUE7#ER .@в髻=zqcɢe2LM5T1?$5Q fFK"w`8D#%x* ͏WGyă1Xꈏe=Qz[U;U5 w\EzV) `a:-}T}qe ְgBM4!IJ:*|~c &@XyGhPh$L-}kΩH\\%46LR*Mb,˓,54;e;Ϯ;eG&Fv& 䜊owO)EHQ`;F}T_vO'O]rCߊx׍`3u @7`躵W#}.`/S?q3O;T#uMoZ.KZ )mrI3wcݕ;2'Z7xKLdkl eF KGT&7w8cx+hxS YQZaRnϰ4,N*Lѓ Y=$zF,M~pp,v&:@0f1XL EhLW~K`ȓ X[U)aIc'iJ.KPUd>y0諦!z3t}qXV(&`I|Xy5W},ED@ ,Sh|0 V&u.]chz[1n_;X#^ O6U< ,5H\Xof+[ ;Q?`B}pQM4O]5p| 0j柲:ʲI4ceQ.DXAѴk. 2]LjwMޕQ]A^X ?Hj R'o`-z6[LVjH9 fc]RSꅯivav0d9;Q-6TYkY*!djٍN3ù,h1Rrmgn\Rc 80ۤJl:^-E_*}i lRr&ѢV.F !˝htzvc5W8䪢G^٘p\Q`OEC}2AD 6C"lsXP3VUkó2+ۡohs{IS4uB6ț^&dmoMC)SzHk)XI` *LY@^ucZE֮v@<8ux5cFDXQ|l< IDATE+5j"/vO?>lO[Gh$:4kdj~X,k!D#y_b0'5h;tsXpݰmtԱt*c Oʀ}pX#fuQ?oMZa;7j qL  3:Tѽ2 *[IYԴʦb3t/*c:.lgs=fX{jV|k%׮;UvEkW c RrٙokIHQNT43vd/f-̎.WН؜k~@tU0r]߿g#D╊3} oTY"7Ny珉~仿tC hWwt.'~| =K>7^f:缘~I{wć<˞JgaS(Ӻ`ץ[j(Ts0cL+FDjJ %6.oO-/S=&b!yJe҄!)47q_2c/3Ømy r?3MKqXP]+nKJi= ,nXviZt@B#P?XV1>X:i[ &* Aj4T=t5GZ!*,N/crN @wvdtŜ(I: ()ϕmx+E?W3vN(ʜ @ʌ:30Ŀp~erM=b#YNSqwvp:.ct 'R]|jjPاronK=7Gbpy k7Uu+HQ\kFI:Taٶf-I?ݢCgZ.!/9nyf`Lyы胗/ޔٻ?|:+noo/o*+z`﹆^?Go7_!?}3~G~]UJ)r;M`;WEO6&Oθ5{%ؔA᝚3Tkѕ,c~ w&D}裏J뻫[i= {NtFl#QV_V]u{A&#B)g +Ρ떗VpƢdHr~aj )+RWʬ+ MϮN#&~D ԇ nC52KӲ uMUn{l %G\!h%D^mʾ PKmyI;0s`pKGR Ye0-mRW0z, U#AOu1͇̓ 2_ g /iN8z 5[6gvI'FSU %N--v$|f$k(85f&|h #_[Yt%?~[_4`'|6풏/O{ԣ߉m@ǿϾ5Ao?ޭl_#=!݁𖿤1W_>ir.J܃fjRc0ȶPҪw_T]>u,-9vTB\ZO1t{wtܥeL;9c8Ȣț|Yjjrם.j05!w};҇V >tH_m@S7߾oLcZHi:+x[$ KԞd2ɥQ FgPxl+3h ueR\:T#yAF v {οpV5}/mzUoopc+I;gd24H!5^uNh0fyOPU Ќ33AO^}PBDV Iz feL k2vY9HVfLv';^*:qANЅE=a5U,BdM㪋TcY4O`߉cvBV&w)0$Jr$Ť3W@B9p2Z6hB?zM4 _ˀ!} 4LQ[7d枙|K ;wCـcj;,/?id]7?#)IfvOKYW^D*GKM z$!⃂^В@NR;2^'ONs^7KՓNut}.}/aC~O\WOy5Щoch21P*s9RnM,*y !U0[Qǵ9 ܬ%tye,Sr>Qd ݒT!ÅbP.,Z̸X;s I_(SJKplD(vY7, u2F3##`~B?b.p53W* aBLpW4?$zCEo_}ʧ%k7tͻκ+?Q#R n[?=$0owr|:9c<̖|94/)R(knMoFabNfO1!Lw]t۰LȊuA6]=  &ا,b)#9*;Ƒ:w-y9N,٪\^-lOv' ZBT/Q6P<=;CGPgwmEzr#n#ښ ~ \ b Z&/C۲1"i~Z` Z!3lFg#*ScHM3Ot\=[e㑴l8%9Zb0tYđRr4=͈\´x` |t72Jd`\MG-1,mճɩxmmZwn$G[u0\(c *>7o.s:_bzc?oq}p˟IV/Z$P\z`<qMS~ ƨp6^|`luyݍ̼*&֎-ەN>2t{A>V@׈cp#"ЉD6$Cڸ)IDtbfpƁ=c )aw^j9Qڜ7%jLb$@lSAXc4-cZ谜YR{vF@pX:d&P(>_eE_؄jSUAyrF{$ L\7h̖UfSc1%@-=ÙZ̞a2 [Þکvl" 0jHs:1 x[5V8W}Lֽ:FZsz3KGfk11D& \za%"lǨ{K)#>'^wHl okY?:;\'<>|Vu_xWCﯯa?/bM(1Zם1KZe*(>%Dyzy'#Rs*.Nˠ ~rxBXZ=@]CCiJ{/҂cF,?1teL,,kܱkd~kKƐ: Kmm)uڵZL~1RL !^jf]NVrh~P2:k*=;fƚ'7FBIuĝa /HY`-^U\~@|'Ug+&0@ ;VʼngJ)h,RsHmo0cβUKF,HQ1 Sx=Vzvcoxl_}Vꂉr9c9f 9 YU_D'/h_tbdE(>oߕIwر .8#W? wU`7鋟&:n[<߾tf۽/EAk /r[d@|]c\ț}`npLW0ƔyM ,}NϙYK`~xk=o21Yuvx@L]Dh,rr"iZآ.ScuXU@q&&"Mb-Xf iUA8U˞q8OljOM?]p{ NMt;ݕ.BM6m?򫮡y/y.?yN?n狭HG=^[xw}7kV%}C?is&O|c>.xPgMop@euDSJ"e(ѧقHMT]0]WD`?.ME΍ aYtuV Յ^8:%YD0M_^i;6k@Hf'!ڗU h3h19kΞcĶ-yr[_|SkƊ1vNVc_8tu8@A$qT}\۪%spˇdA:c03*ėKęf*^]Z֛cϱy͐57R V2Y;5zC`xV5fA(i>>J(- F*w}r 膮&԰LZ v<[1UuSe s ד':g|3(k˯B)R;G~}!z.}ﻜW7@x˟1>t]e7&z^Oo˾S47E%3S̵lA%kTaό5CW^ߚJ eC^L9ˡr4,lJn7V^` M˾z6h.8/7zzzrGX*GPBhg`LX6PsS T>"P*}lN:U\W2@) ߛX,=B/~SDڬ0T-z5/<7Nye_,%Ұ `{ߝ%>aT}0ޅ.ޗi͉% , #3Lczϐ_U)> ,KGrڢ&.kG~E) }D/w|9-2)݊&ÁqBdl-(jPc?驍GGtx؀f3Zզ{YK⹥ӭY ?K}ՕW0atdL<j4Ղh 2Xn_Ý&訆h7ѻ{Kv"):]\ 9wZpj00!]*cl:gi&ney6)@dpYM h@uDUA$ukiynTܦ 8kf^m(Ƕ|NŻ'Ŕ2dl9eQM1H>qKr jrYwɒN:YkG Ź L]G~[ #rom_kMrujӎ"k(ϭ؎N+:?wYg|=~~jWkrD?#/ݵoG@j|_&}9ߪVf*[;/XVsTgIBPm|1XnMu\ϥE a\gIGZzVNsF/[|4.Р9 IDATE?uz"w,Ud\e򮌥NV ֘%Ƽ#j3ڤs4Dw9C"r?f<@ϒಳ:f(0!H42\=l'ݞY2 1ǫAu\Ƶ! Vyպ74>? ZMjRCF* ],(rQ3ϵcN˺ T ۄV-$pgQa#k z]ꍵN eb!<^z[DWkϤ {j?ty.y'~&)xxM`,jji2#c%)% RV aZQر>ɺEu)!~~oUz=#hza,0PB1q/342 @S^\~.D1[v 3No?ifS Eij\6i•Qr^K7鉓7 @AE2{GJP5MBۘ=4Npa!=(,vαU\0UG?+KLƼom[ FD|Q-ls+5u0bcyR{)A,tQzLM)xӨn3"fϾ":⽺"dR= -I&dރ6@)u`wP߇ B ylnIji/7S,M+S}D+wk;zrVM)SrŔzZ`on%uР`w-khq$VWVOWӕ8xb mjy9?GKZVDMis-vM8R&d4l+4iZY]NN'x1׫`-沞6) oX}!,*ĀWpi5qhcʔkqx*=o%_{U)Iz_O\:% k x3ZA)go)eT:aPѵmƸ`o)_-)`5{‡l@ݜǺ.YL%43*Mn.O@G~Z,)jhl!uSau*,Lk $Ng炂I,AِvnXB|g4QPq'vFn猸o h{ ҂|Mn v&JA{@3?GvڽfiLUˠ-)qrrcwXy"ijۉy%fzbFV{xrL,~;H-5@r J.=,ݡn 'YgEũ x q#Ce7u_L37LM}t{ȁuT@ls-ݴ$(5.iiPNc &5 O;u&-dSLb$=tK~~w7lN[]r'zG{wXcCe2\YX3D=*-DƘ(hӔQօOY!C ZM! !ʦ;gzDQRbcgdN'7*"=zkBFwŘϔBݞ~S'K lD+uS  7u~yXm'AzQN3@b3fD m)>q`1eyؙA`M>ˎhx0t5x OҲktH\QtDԏlR9'e@љٿ8`lßf sn[\H%up U(&ynBZBbzጶhjzF9oUAGũ1:*=š'SkK*N/kfcjc `c H- HiTZ眵|SɵPɢ1ulqM5bhCUVT]A#xzT 6j{(Dl@\\%4Y)zoyǙxqi :ߣlSݒY-iQLv[a_4'=`-tt7QX}w9ٙ21@՛2W&|ppPcTςlu:f]rPR?/OQuɁWpƢW+[OlWKKZ됣q ޾7+hbTشEkۥ@R _Q k  u$ԙe))hY4hM_X9ٵ=|0 KX2 uZz J!|cZZǓ̓q 䚷+ 0CX$?a+4we_ 4O]7qX9Yl ؗI8sCȀcVjݲ|(kc>{AغohڋKĝMEZaq c2|0& ::s_1=A=Da&꘶>ŒyAfΞ9r,"h?R\^5f =LVJ1>i-60 ,ࠛɷ t-Z['6^'MٽrA%g%G9SBG :5OT&g6^Ԍ*!3-e'j=y`vP+m?6,b]\!L=dq2&l\^mC8;iT&t>qk41 L:C38D΂u|N%1,1iuH$]APǾf d +}n04W=z7sRq1@~L̝i44!tj&G,9cfVrj33%X?Mi&^X64`9{,a`sg-N1 f={Nax8ꀾnfs jP&?(Z$rV=>\E&Ɨ( ͊JDAs;e#*edzU&,"q~gd4'A7V~ (+nO11!ߣ>lAF[,HY5R)nSO=cw)v+&J*^^q߹fXKf](Of ԋ@}+cO$ƛ+5HrG2>Os*zhJ*3U> w)v(ȥvMIM5Y93M=Ͽ,jf7_47i][zDC%{ &Jcp<ͷ9fv+'g0!Sd&ȂSQnqRE)OjY`U& RՠV\[@5>"S@0 tUW_V~4+٪UVǰZklBA4I '2ģRCk=dCKǴ$;<tZe7TܗK=R1ĞdV`)? v@9IasWa-:Gg>nm\{Jc&(a)3_-)өG R <1@' vʺ{~IMb *fŰېY[߻ ,ߓYKf:!r\@c_.Fu[$1VaxNNaJu.f)'D]$Dn8~{?a,~e?IozD@ ?@'|mqExetvlXHʖq95[R/qi(,O{%*&i2;%(gc4eyOXvS/7fg|xg*^Yc@؁̘蓦蠞'?Btõ >EflW,z:^|iNYg(gsRuyrY|ߙk_t0n4RCx tO]uJYӊChuR?'c(f8mf_]&3--uUfhRFCtϴ(e]o81ā܂Ɂq"ɷb] MIXi-tAV=i^pdV!(5,vtڨ~LġN~@U':R_%z<./I:Ut9g|з~w~{EW^_L?Zd|+_z|mNL?wM/+p^BO~.9^@;?{ͫ<5ᅡ:t?}JOz/#wBzۻkWU_=)s#z;F^w=c.yN0@iR ~NZn-o-snsPf ϏUfj%VK{,9ײ4b `Z>K04ˆAƣrnJdj,Q&䳂sQ@#T뗀iԱQ8&DZݿ. #}Ģ}D 8;Uo.clvp=۱bJkv"yn`4$˔lU+4AAIZ-k9oESˑ) 3aRñP;] -9Yy[^7uLϼtX 3ݍ--Oi\&NE[sW{ 8 %¬M^B0N:U*‰e^6o( rcZKqMlSUnЇg~%='QC^4Dw>K7\K}xEgut{hgņӖx'~hu\W+~Mϭ`kN߾ ?bJǎeWL_{t|@Lo˫^tS^|}hzo;%w'EW~혞ݾ?ѷ~g_pj5 Bu 6% 2uM tAR\okz+vH82&ʥI&eHlU^zCB]iDv&W:p0zq̚܏k Hq}ߧ%?ma#N"vm4]##h!kE"Wo%^ \6"WJĎWGR|[̋OF.ؼ0 'a4!lU'WQ*YU7b^WW)k2ݜ =$Q}V67*ʓy_1"˞4st('Z%ddeQ!t>HCҘ#z?gS?tv'Yrޥ<= =)_Iw_Mw<FNެ;9ŦI;<X-&ucVT`E[n>`i}<z$k0 '΢Ou7xfڬ,k^-;e?7u7n“ͭY펷?.F+Lo}[kVai-C7ܸݾ⹖[W~"<> IDAT.+vm' r ?򒵖AKbliy̫9n`ij{_Igԥg$:]5T$W;c 6PL zbh;nTfӧ1X7cX54uK N7;")/No¸Aȝw[̸\&z^󊙜z0]r3!"a:yM7^*{dV8OМǨ;Hh^JIKwS37՟ ~g-XDaSEVQ m#>C3GJC5|e݃2NR-Q(ܠ@uȡߓmo|7srQTaӅ`?kybvjYG{JISdtLJ0CSW_LBكyoHc>Ao:|SA?s+^ߣ_+E'ÇkwJ}g?Л{Bc'o^/3 o7? ;ytwOy}|c)?': CK{]q- l00e #8On5glLzg͈Lgo^ [4yn^^ n1z+|[:7 ( ~òM`$@v鳈)ƬT FGOٕ/cgcRj4ܞuFL^̋}3 c!d)FS vVcUͬ f+^ (Cska..@gV0Xk+dB`uI4f$N3; 27S櫥N]oWs"sucZ1^JڍX@aey립bg:[w\]al^TYr5g #(hz> a/]Y-+iH-5d()OSD_}<\c.kNC/x]7X}F/_G{'=k \w ttsSLߦry$o5* 6C}_Cuz=nDL]HުSeon~fA `C vV޿O0Ec8PDhN "VM#ڲEPd3jQ׶<ǐSoyR{@}Ik.c4Xs)K ]yG`|Uj@QV&tQV R!Dwaw5 S\,-|NʨY-o X+E<TH6K]Me^ۀyp6KPx ݳJ0TٌG Đ,>M-$'cmhyL c1CUkeCtJ55MbckֶBT\sl@y8KY}?C_t>^_Az?5=Y[)t/:]sKwIzR|¥g}}]ps賟7h\UEo0<l<~lg۳'~98雿KC^L@ؤL 씺2'/d(u?ԙiqe-E5U(,^K+^boZ  o%,rlk0Ŭb XeX-} j}8#@58`2;dݗЇSndi!@UZbRP?O=Gn)f4݊Ng3^3ї=/TȴO7yu?kRz, upм칁?nϩZQ6UD4 {|v'I0[vv Iz,Kbs-6'BwwJ8On 94v,l9 ,Z%rcYt쏮Wrhj >״/8s-msnSTIljX;qKAX{5S^xpp>_z>Ŭz;V2EtpP+F1]#IT(Wobm+ϵ=\wrMkZbCʵ\A|o嗽:{q} =?n~~K{8rܞz_N=>攺,b_3}ړVNE?_O-XSwv}qe|<J4l VV0|fzX붫q5[(dDPJ3w46M.~FGUrͪ7}L F 07kAOᳰk@*yR]&6MV&duGw$!#B:XKiּA꘸˞lpۿZҟioݷyߚO-=wk[lh dÂ{w.(()/yB7#h51DM:T "hLIIL:鴡ǰ!}D%DDBy{ks+|T2{>=\s͉68B.&8| ՊM׎y?u4@Ǝl{ylVGnڿ%z.jg>gSܭ gge\*X?u[BƢzxvM)([~3]C`ezby`OR,k0sˏY`M+!CKuRxW#o6)@6.?f( N#͎+l8f>fóMSf5ߴUw7w6eB؛)fR]OcB\p٘!.UwϿJP&␐1X ݎn}^CO^ZR|s?V&gE bJ6!=,/zc x/9.fR5tnC @y@.kD arS?}g^LzӼq6ZK.듈r27hRd${&XL}y$HhJ@˔xx dč8#0K+H9|D`GvjV_z+VeO6!o୅Ӿ,a#l-,2+RqU LJlo^ۨIKΦ0ƀc@PDJgN6c6tl}nRc@Q]-zNjRKuۭG3|]#pn_|4v~R79{M-F}׺´7="v bgk&Q?IzY׬tݣ@zhJWK]evZK&'JiSCc.%O֕:KF! ۨ с*jB/QajXD~}eQ&P5b3k9`_A| $\ A6YKc$c J;6{ė~ux3|Q^dUo,Ӹ TM@뮌e(6rvqh S ͻ۴}"*6Ǟm5R1\N.^r 7ۍ&=p":.!IR9Oo~ks$gdf(oBOA.sbb}j.s%GG}b&٣|D=֬|XW ]f~ݖ 0؇(R佼مۛ>E lw*wMS7~Lsr `LGiXY ri :XmCfr-13j3uҡ5sTo NWT6)/"gsLUF-ڈa<8EZKv\g3܁fh`WKpT%zEh:.J>!Jqn Y6 q!t䲟tM~[ 4]DrcQMe9 aL.L{V0<'V`$x!-M)0g1G"만OxU0-W( [-ZNEbic (&tąm% *z/9׭DKēWv ԀOGMXsӔ2V"󇠱X%ч]ʤm5UT]w%echv 9"p! 0'(_pnhνMyx>)QCf mT[|H>&Ic,Q\}vFi {PbY32j# zh\216bq0=b&\~yغhxi-,_2 3Z/`WG*Yd%爗k4ī% ÃMVX(r ˜Dˠ :X{@7wu9:;N ])ˣhUf^`y~X %e^礓:yLلcLo15ig{IOc1!u0#Igw*TF$34EFup:N~~RebARC`V) '{cjmt,sCPmc/NI;e̚uMh)+{f6NlrR͎m:,bގaMaJ #xQc~ Lɓ%z&4fVK*ya}+&Ӌ&XBVPcgy s_VpG}F CGvPPCe >aih`kb%cc X3-2[JhwBCyx[f^f+'P{dMpj^)hDNHZwP7W,H31pjQ!ݠ&67t񨛤`^-ˌ4U'IE&JSؖ袜]W3a3%+,-ŷSRMV$'m۰{\F ݺ<inl 6{hk n˚&{#=FRБ#kxt=c0 m%+&u/Rhi/wVF3k{ g}ӔA@xq=LS8`1544yծLvNly?L۵PaRE~\"d 7гcIˋЉ~T#;Ϝ=O-~`P&<-w sWN ͜Ϋ {=zF Yy< ;WQu`wd1Q]!xWdW{qW&45SR ˙_P?d:NNxȰ+~Mcᶋ3I? u Az{8yclYE: 1rh)%jI*_ILPJ* { F3%4M^һK+.RR9yTQg!Y:~]S3=/sq8+T켚n*mKF"7QVBYzc$>viHђ[hMfVEmcwu sdZHf*Lh朞)k2Ԭ]9$^JmfΩC4HyGCR6o l[íFdHs)U -PgV18t&hϲ99!K-kSw!wmcl_G R,VclӇ +w>ۢyn^eJvggWU1P&Js&Y8 tKr 6p01xZ.pLWx Lֿ/s*Yj֒ᐿO-|o,9Ţ뼚C՚=/=K4oL:H>TŞ_ }Mׄ흗-<<'SךYSɬY_ vļZhq]U*%rMc]046$u`[Dr'PI,Cա.l3}'J,6E(k&Z79pQGM2}Y҄2rb]?EH`,֚ꚶkx}@T'$Kg: q<2QY($G&l0`8uZΪ(Y5 *4ӒD3E9Lt%1xӏ&\n_'Gm`-<Qݺ' =fZ4YWsgy- %J ܓn(="dJ,[<4"e:biz5(nMdX^ ]Q4J%7^' !3Ɍ=N.֬,u 3aiPr8jZ,8ƒu-Z>6Wy/Y1Ѯy}ŕ5yYzf읢kތ1b`k;Y~kt*YJT `]5"C%EZL"}$#:;[iq!˻NevyȄ,Cq}g4kŶpJZ+<T_W@3ӝ_:)219ڃ"ijg]D9tM ޭgYx~BjyfL L!՚ X'01̣P 8S''332#VAٮ&FG fJ^S $Jn,\Z4M}o70{CڒXvnȭ´xTRVn)-`b/ IDAT R,t`̢"ł0ځkLidv 22>wP0+0L?t&uqrdrWW*|V^j^xJ֌Ov;E,ͲRt^`fJ Kq@wIB޷ 3M=!FZe颛4=Ρ{F(ş?TpC@̡ؖ.8cAT j- OKRgʆx:*hK% -D̪cg-0QlG,F n.[ n*:T3ADT6ЙHB^BbVO<JLe[~D@l{҅͛jw+R;@V TJk7SXg/I4 eVF45R(ybuY`GjQ_8g2˕ l5LT f1W|*Y?9 !(V4{T3{77l v̮t7ºAfc530;g.P>w0#>ˡشN3|bJ\PjӢ;BH"[30,p(uǀn<ϋ@w:fl&7hv_T zlps8v@4Z:سe#[ jm$:;|Qvʐ.ʜ],-bG$jrp]s,Kdъ߷]<9"iJ[A>ץDyw5{sI@&&1/,:[xi,ʝbI0CWg0+ugvƇՃk֒ǴLa@DΩt-8F91^h*KmUӡ3v>g( vQKܘ.ljHdr0EJc@r^Z P @ %FM#uJ,e]wlcH0/ڒ;A 9}ʔ3 jD\#e +p/;$ZkÇM f0ve,=-:מ5_if^E[ 18ײ-{锴^Y1pv-51KdF3YFm)*i. ,ϜLK#+@~͢F`oY*n"3KWm1VzSZcrUC"Yض:;Rr,/Ne(GqR `;ϗdWu?Zۭ2[!fQ43V+u glΚ9[[<7f&&q6P@z0j9yW&?qd;SYj37S oƺ^=&]`Kj 誃 Lwe,qjWsy}sc(]to?H(m=,Лl4TP#J=d/Mf &u/V sd7Q 5?%ck\"9AA,KRlaaݩߗycowbq5`sgV#e8:LU3$k(@2^@JĨc3xͥS&{2M*UJ^vخgcpTI''@)p}]Ϋ`ֳUJD}~I/au`%Hsi}; n>m%Ԩz0(Ek4^"4U<>ADr^Aaֿv1Q^il&ρCcqɿk>XmeG,{did( *w͋u45i9s;-pxe NU0xfy#{x5wã4wưRqija0AӾbn/]{畉- jX9ot+JAJD7_CĦq*q ]2p_i ԑ6הihW2 1V qJƃi%"9 k]p9Lc+I&u[Mā }Q#e͕EoN^z)"/u׫/Gms 9E柒+h e$t@&Rl)>2:UK`w6,a`)c}5ot͐a(‡!YW]wJU0%'{=*ʯ5QH*3(1~BvnޓP*UAuyr{?Я-ڜJ g2!-tP`!i]!۱dO/d %]w#z}*}S?ħZ7'`"De-d,RW7R`*%^h(vK pY;9kh;vܴ00by){GpL>>47^- {kɰ`ْu`wk}$):G {]a5'kTE/u5_}&ԱRD}p*`F''zc6w`=2"yוSJN:,$j Q2]G5a?}%6/xdi*+:kv=3Cszh}fmTRMZG/zOl>ܿ%ɏd3KY*>Q&Xgg\V(~]pٙ-=LKoҕAfLl<6'/I/җ7oVӉm].o"_U7襯rL8 X[~W 0610_i"ɡCxwkd[b,ާ )3_r+%s!d M )s/XS#R솜@hb5EP*A{ lW0X 4ېUm`'`b-u~lJd[C."5<7`^nEiqc9$qa]%gNs IDqc ff^IS˱|:I "d]a|1yǸf<}o??iYpQʇɚI>us%O2݋Cudx2$ăN`~v#ss9& R2iudx<&Vxp$qC]+1Uq86aM+@KZbRƄ0(n*o>in:iF`lXޠPK4)횪fQh۪ǷotJwJ tpJv:qmSOxaz7vk܃I my=eHу{r;_}ӏ7wK7;} 6Fチ^}tUg}6ݴ!-/>to:}c|ʧ/ko}tuon)o{}{=15k^?onӟ9#MzЃ^O/}ꚽV9\ɟ~iK>癟M|O5skv+]{ }׾vm^#?Lz/5mu/k^/>E/}ߧ{%F|ml"=MߡrVzC@ցʯ~L}K/?OOxgMn%6[o8=/E3 HSD*?ŌL [k/NxA+v!ZsCtFRÚʙЕݖl">oWK_Jz>H{Zg7ӟyKeu"zħ=^UmMn^q"W^?1=ӞFfzwCN5k_to=g,~%y=Ϥxӯ=>| _O@vzy[/?L/o#~[~_,z蓞ǯ8'O^wG Zz O?W!Sr{stkE?㯧o)}W#[Cwzzk_?݃i|s7_"x|c9.+Q _}h|DG/+_gл?p}!#QtB2=%NW>7J;jk0j'#Ar^ɋWVθ,8Ep) o xHyM80 =˴,YC@++[={ǗJwԝʄR&|0=c NdWDek5L'mc-+ KjR-GMh95 qf1?:0c-!5mP(522]?HE56?^Қ vcKTx~iY|Z&>t^b`[Rۨn{?՗˝{׻ol?Ny>g=3o5v3]ʛO,z?H:h'{Ђ]fUOuv|ot;]1^E<:ͷb7<9ꑟ`:)Ox2}#mZ\{ O_j s`vFbjC0=;zc>}qtjowLyێxkl$%Fͥƕ0ye9?Pg.S0K-zzyw┧9OiQ.<a;JTE!R0@1;_Gրa\ZYmQشioZi+E5CETK!Eשּׁy+63NQ,@o<XdXlRb"]g t&sԵH4 JvnZn}۽=E` nBo{Rv~iieO) ~n*>=7Yth݇Nz p#'^}#WAw?B_rL5*']0^Ə~:DS *'G7 ^ڃ(È^tnm}eO6LwawͷܞPQkҀ;8ۮg-. >x? Zɑ E! sNWm+ ?5>`"^5^@(>.خ3Т %;54"c94Gtɦ_t)4Y^7:UprD'>7WLj%5u<9Pp O5 V鏧7w[)O~v{=7_o;B]>y.LG_6׿+FzSݸ/7Go7g>3!ާۯ߻|eG~?S|5gGO,T$/y.L|̳~έy7A m.]E7rJ's1PCV&=r[gL7GUTñwu9.E̞ 8);.ѓZ }c kh ݸ!ZG,e:Vy|wm.?S2Ҿy%e}>:mgƧW| w+W=/k@yB5H_K7G9zuzQZPlK^z?y5O>JR}=/~-^<gm~u?}W}X҉qoK' =j+q^s䟦=,'=ϼ>o=}} /~%Mi/Хk?ק/K_cy`zs~_ɭ?Hx)O|f.'c{/xHOn-)H̳%krJ@e8a#5P7l{-+!OrC$rBҵ5^.6'&q 8}#.Cs oퟲw?yo/K-U+ZF<k¯?h`3 =[yJC1$#2 cg )X^^^0XlaDŽN|{gx=+<>Ϙ,.>8*[Nnm8Y컋ֲfgzTfO6=F QR\sFLsRfFcԴdn4?3teV4VJI˷]V}ƍc/_'~jyn[U.^CQy z8[Wvi~mqv}1Ԛ9LhmƆmۯSe!wnctulٮ?+m۟>K.u2Eges;!V&_HyQ\RRدAvI.-hfeRn%O.L.X" t nx_?S+{@]gݑ|a'{Q2Y)]}Iꮴfzt={V!}8. FGfs5ŠA }ȭ52b>o8ߖ出9nj}MV=^ vsxsI=* ʄe+]ԕʻ.ȱ4zCc%RkgduϤMfhs6Є﹡p+]fF(.ЯA_`00wr 6al^xh.v$ƒ/:-1`|Q2'c,KV}_d"~ kϝ]EA>}$m wCbzoA $bFɂ va>fA:!m^Հuјt8Rng7&uUMC茫.tSq@>ew^4p瞩V;=O~{7أZ=y86odLVP!X+z*e% 0k{OAk@6ޅ6IbG`움Cd'Vm*ฯݮS)IjAβHE$RKIXWRg]z ţ_diێ!ۊc0N%+/by92'8뾺Rd#Ӵ~%1D$ipO9Yhu('<ɆVƄmy0a4{/$0Xؔ@&pCʋPrA 4!>>>`GvKEqMMn$(ڄشX4h9Ѻ1^8Pf~1o,tqlj̤IiRt~f}C˕0mY|`HOo.l! ,=dWgI-vIL,׀越2qj-K䄍x yn孺_X}LHC߯%i [c)(kep[`$mvݫxV˗ 'eRKthgM(Xe,ڪbrPnrwq[76\\W^ޕ*06C&y 0Oܻa6K*A‡X^4mEVӂcSZZswÙXIX gcJ*޾j<+Yi\N'yLL#~9\̃:; 2KEu6D'"k~j9RoOLdac槠]6Kqf 7-uB6#­N.D&7 cD;>w9vejdžv~4>@H~kѯC3@'&jsTscI蠁ZsTآ%#v"kaȇB|@!KyOڏ\^2YJH n"mc#ivt04KNڞT'!. NN6L}=: L;0aDT[>R xPY,"2|pwqF1@F9}`ݰh;VIPZc([ƬU> K;V:m*Zw6)i$lgv(>}[Pvfީq3;g|e# P"ݬ +-99jv:Ao@?Qd絥 (*WQk_qDj"ܪAAf3]%110Y@ϣ|/`qxYϩpe!Aak19츊Ɩ"ؕ~ Cy>6=k`q|X.-V'lx d\AlOe߳2K*pvecNv7dZl7,z;edo6>9e<꼎w HL 'SbM\*'Kqg,eIDz'j8Z+r؇n|е,̹\i5Ʀ ˔T!JKZЫ`#kd.phݞ]ċwF9 (WUViS KxP脌yUoA mٚ`ߜ7lݑ:'n Bu4ŮO.Kg3UKfՙ! <n)9ב7{jL)]̖GK!s -ϟ^y9Y)ؠV TN-bԹhJ 1BcLPPAaḺqcȫ?c{d aj΢>?W™E4AQGPd"pLKeiZ&h( eU1H 7&1e-^oz&{+7$}s{A. 6xiuLWd5G.NB{}ׯ02"s;q%_++iW<1q5]` QknLf}0f)-0m A؜nb[Z2$ƻϴu| ƢRc[&+GQBSgnNiXN2hVݾ NQ :d&< ^`ȫH>!6kD?[sra*K ~A*,2$@IZ,7EbuجCs|׎#S.`ʜNm-[FG|SFˎ!B9Kܚ-R֍LU?WrSQ:﫵Q G( ?қ1~ $Ls."8lmd$X)FGmBQ.>8-*uUm5c]T1V*ı'3T+&? [)-J3`+0i-GHsL󢡏ӿԗt49?ke=J?Ms~.)y 쀛 xI?O@"EZ &=x:U{='' l4XefFַ!fjv385LtGNhF1-\%#UÓq]~]Se>[vf\s>읚V",ꔡb%;2/\qVfRBxg_0qZ0I;Dd dk(=[xZk lܵ\ K'&׆:FV,aހQ sϻ`ӣ сiz]jM4-j#J%~ 7^#r+]{C!F  X-ޤI9PO 0vʀ 0[k|^:ED9<| m Egr9z|hix$t2U e+{7-ѩGznO:ބn34ߗj_ ? qΌ*Bm1JX dˉt戮zߡþP5p"[aNj((Ŧ(Ơ`M&F 33uqzk 7IFBgӼEi ʙ6sᦪpNTY$5F)E31kcWi7i2 n|e^$rscXJ'āHvR+„*Dna^$!uh\950ۅ*g#cEm^$3{Y+1"cƈ@a$YU&0p̑>~7<2'ӓ!vNݑ/FP·~%7P]?@9Aq_H E /h:||HTI4O؍'"-4,H `ed^_4$V 'J75|Vu~ˡ*B\#U db?C_g1b|_H:#;;i@@Vx+}Ɲ-YXWvuI:%N5yaR01SEִOlTwg`$`01>ܙ34ModyƧ)yT5lm7^H$X9B< IDATwsUKP;՚$k4S@W qmŪ%IckB 691bƷnr TXm`cd-iͽ5{1-NTɮf-RGw`/g`\ }nh*B|q_q\o)@V e4$zZfjZ ,[46LRRٲO`SCWol3ghaBu~,0rFOXq)a4'|VkI2 3BK]烟LzPσc|U9TY| 2\n0h(Y@q8vςA(-;6mPjL߄&Uj M%)JoKg"o),FgvU ԩy+(m ]䮁 ITL!Y'޵jT}H2yK V+ > Cs ܚ|e '46O,$f8W/e%'V?ksby&!X3sۏREW-3s5`7sq1"XuPEk3茨沚7OH]߯z y8YTxJd{}LI rԢ pAbi-tuGuFzh:k[8-m,S K]ƴѳV P,-8-(&Ʀ WY2o`N@e=0SݞlIiKnI``Ithʩm}-& 3B ];#&QVEtR@f3tw@Y |DMp6Gcl[Szx*Lzwqq>kcM lOo(صfޫe£7noMda m{BYoN(*53}ɳ^ٽћ鱦2>IrBna&گ֣ܮ!@|!mm&<:@XxdM+ưez6o5:d,vV$8OiFfGRfʢQ֒3.J<Yi|3:W^5%DP^-!J K|O,M6]e i%s  DVG#;;)nˢ|%]<:c)(TN,xIPvء Gw:p*',{Q6e䙢cu|1G&X݋D-K9 m $ '0~azOA+&<;fe0ȴ0>; 3'gFfϏ 8wx|͙-`0)gRڟqb\wg9m3~.,#;g`OOs[ܔ"`¯kf8/+QjpMJ*oK˴(K&1|L M>_yҋE16׍}im0lpg,p~ W-K,mnd w%ԠCVww͈#D/-G=ΊR_b2}x!1ݱGY_rp^<4wpn%YN5G]C 6ޓL[b9<ۛX;Na`9& 维q2dFV\푈)w6Y(hcxk̺d⚌PfTX67m b8e$J*YdHN+ FQZ{.y,'\Ӷ2ƇrsevFbc'+MHSc\\s}$L [T?8Le9*`aP 0`%i:9un:JЬ{ C2jp IGTee:>3TP9@*lAx}نV뽊g/kMv6WJƉ25W>w|U%+1F+VkACTOي"@VV3eYiFg%9}pd vfRٖ_aƢbZtj;O V]:-wҞ;ɕM_'/v!xg{{Aw^wso lV`T4MSq(u:F^46HKU}d+*L!7-u;ܪnSsF z{՚Q@Ը]`oXSuΐq+`,QQg&4ˆQ57L0~ތ8ߩ?D*%% tFZ :U̠֘VZt `nRD@6S$ބX_I+ۊ"{\ƸD <ke1`x 0- bj밡l(.pޟEgxt U E,g 3e㕺;Oc8E1WxD'%I aJ*_t񓓓&?I5QYmﮫɵMjfVaYu7:^r?/nĹڴ0plxN3D}v(I 8KFSXZ”4!n903[!$Y*B$ SM), ET|cHSfcqVz ]" fQe)bxwV Іr8y6!l4f(c8b|N%A+poq]O8--IU\G +`3dNL ^k EfA׿6 3wrd^K e !% .[bY]rַ3/T(S1ugEPtPe??,?Y.D'!8ZyzBÅw>9(>w}t|H-> LPV^2&|,ڌͼ4w;U3NĴM+{\#0DQSU1bcysں[Tv3jk8DVfJh;0YrI TwA*H@;p?7wyJdx@7_j. 6:16QB7ةqܓ4Xm禱}H]dѯ~} &Pn6ePɞlh% IbWr)}.ɢ[DO+vRa\G,+dV{x!}֋{D&K-+s$ʝQr 5K[)V2jQ%c%K.>Ӏ)y5`U]QDWsHgmQ opr}auD 2U4.0m +@.s9V[>$:e枣70Sɕ>D&;?*>Β;Қ>Λ,k*"gXMf(aD1*z}Bv 4%ֈv|12Km~ţ]!&aR5SBHo Ѷ4d;e+l2PNQ֣NUݼ8ow߁[2 lG( CI J 7{9s:p;X2hڪ+ad9mYsEle#?=ƶ|I]zt[@}e@)K\;kWZ urQkMngRwkcB,3exF_Q{+oԳ5ix$kID >v L8 -Su 'h3411]kYu#e+^Q?~n ųș c-{x-Rٹ2#%8dxv@l`x<2jp*ᅫ .P:EQQtb_\eS|C [5_di׬>btSh ';{OrfRYS~i#qJJꀾCl:jISY&u2`mq43Nh,xٍ``}+nYiތSM4n칒!7ѡ_@B}7;&^2,P VwUj]};l{:(zY]EML/_ [讫TV͕N. Ȟ 4'O|nṮawR/lomX11"W= _Il!21 =Bua /|ϩ L c:?(<9fFmV%4 + jQ: 0fWil"`#?C9gL2ril6O,=!:OsnlY+U,r}Fb03Zv4?.lwXD'<th6H&$GvdD8;8|+pQh8ˠlt0YyfiEhw5OmEjߐzCnXΚ'blܜE)4Z vI0ƫ3afP.&גaU'p'cl^b@HTY|Jm؉߼$tw~ ]۷cLZ6 VeHy9jVV56ejYs -j G#.L׮SmUQ)3}`HVC^/ 1RvZ9%|`vNhE,l9fP"ly9T L A m Y/JBz5I?w&flWɍM ɰ_IJw$< I-09e JL +9K;t4a=;w5ac`WF|xs`"I(p_\|fljbdM֕)uUX3'T٤ru4Nh8MJ,.w*&[ Xo;[\cs*>׀:4RL|nʶ1=y(:Ws 4ֽѺkɘ[3yJ)y.A6فAM;-2Ifw޳/g)wa=p .$6_GGG%z55,GJna0 -W#uG;a~3iVNeO!\AϲI]Sa@X^S.gKt),#h=|*>Y=7mD-[@ IDATӊGҤxŹ5絧aH!TuJf+ MT  F@ B%By\> T5h^saGL.YЩA =X 2QeA$AK~ xtp%/s"j퇢" _HQ7|Us"O:`JIy[ RN% dgx#tW,S"-,[Q3H^~j|Ugbp<ӗ-8gL fЁ:cG.m݁(IulS\L6 V2dyf@lSҐȻԚ`eIѼH(0oy+fTe4]$3K:6D_5Z #|iS?tg$<9Ȋ3P$8@E$@2sCTLԂDtCRgwfy96Cӟ6>#ېK?\&_`EF`#ruRq[4+Xx(ds"8KC}l#1<$ 5'inCgnUDX8{8( ^LuT 5}n@ky{p<ծ-QAe ЂLH*(̴J +J˜[ OZyd&!s]cL8lNh'2HX"4ݞ{~  3R]lC{ B0j'Sñ<Ƀ~u+ᤘ:aekё#`Y:qH97x%ݢg9*`Z,(&b ==!9K?QL%(ء/8H'@ q*3Pn$W-jԯН6Qn,he<ґRb\s>Pi(c)!Hfx]tDdGFn-4 r"`V9ާ,- ?,1ۡsv#n Nj %\Ph>tOsKE :iyI vXPI+)Hb.C9@*ʒ2,+,I=7a UݗID_ ܑO&@|Q5z]eT&2A '"I]g0+@JbiX<И xЫ"dx. ~<T#."D PeOEVPR](FZ& ;V$"a#pdF ](!V(,2~!oT)9PdrN&_׋yt3}, N)-uS)q "l7` tyŒa(TB͍x܌'n Nt/64@&u?b‚Hsd9'9ᔕT36ѥ2=fB;0C.Z)lI 1 `E%UKǩղ%&f^夫-TzqX[VRǠ}+tS^cIxiDȦx-=ukލP~U  "ZX"BOmk6imnR(6 Տ<UH^/ nKY`[FDt߇K!,hI&_B ]t+0^@hER4s%)g"qTp4r/_1$:3r0Tэ gAg;s3CDeK`%x(w`"h$iPk? « mN18c\EZq M8kA风O%_Av+,a]Ͻ֖VZZ/Q,7H |h8ZJ2e' \^1(KL~l'qm(e.R//p1m ~puc3U@3)IS:f~%N1^l>M뎗w? QTyLtudAE6 NV*Y=D_+aR_w5h)%}1t J~~5?]Mkbt3@u/G}75x_/Z`u`_5ϤιyUb6 O:WӼxy.=!FU2`Ј: I("pQ䉸+L$PެSХw?p|eR%Xv a~6٦RA, l6Z KDWX  GReUDXT*z`fi{è\&"uϫ:8`_Lib+3b{NL!Iyw&6ML@7QwٓT"rI.b!L{o;Yzx:!iEOB>ͣQ~Ė"& zu+`}ᒙ؋D]k0QkS?`Gqkѣ[%&y.Bvqm{s;ƽ݁ѯw-;c":짮W݉u+2.?"\0L'>b38wis{mGf๗Acwǝx6Ï0ѭk% KOݻck.ĮCGuu.GM@s))9WOF?z Q˞xX9??oN:\q0x5r?}<(l5rZ"uiܩ;&y n?8ccwr83U|cBma]=éLS~F4G8S˽S/Ce/ &5N,X1⾾s r홙xD[s3E^ھ_+DNJO*{|8dc~&ΒոGmUX*w]o}~oϟrkzѷ;iw>\*, 7\67`{]|%ڹsOŨ]Eb8l=,|_]Ï< Dx٧p㰾IO0Rzo}]8_;f~ '_##ZU0 н@4rzxyyq~𼩸W§|^+qŔ+0;VQ'}-\;M,MZsx%׶c=mpŧ#mՉݺN=,ն!i.ZX0jD)}$7D/}i8t*2Ϥd S\Sy=i6")UXZƧ ^ Idhjd#6b1"d>bV1,\y-сC*BR\ugMɨHt&g`"ՑoP],1`@Wx1 c;l5O U L8L\w$wu 1XՈsÃߌ\e7~=?P c/{n”Ic}[r5.> y>l-~2o6|MҊc&O Vs^ޝ͆aazLl%&&wmX}&a{s'\h+ _~1"q_:v}qⱗ ]eP1v8VBe,>lʫ;4R= g6I['2Lo.6qh)tgTe_BW0d4,>[;-SyI~GL,C;s>jޖ/6ۏ%֢GE ]`kIYQW\yW\&rioʫ=ee8#U(GqMסKW42x8oa[ѷOۛE^<L:H { :#KIY8+kK $&mSO5uEv)8po}{cAU.롿w%&{MW?%a/p|MOBU>Mx!.$v;,]ɗ]7qqλEpskp?vv'q鴋pQ}K,_]݀D&c;vUOKr (m <#YGuxDH <rtM6IpPdG'fnP pHA~+d= z }Mui4o42T\pi78On3zNoSo/C^$H-=chicJ!i߅Kf u}U8rQi ܤrUb2o.CvʵkŸw=p CjZ= uF1֡n5]ق톌R٤gP/6(6|ȋJdXb9*J8ދPyt[JCU\Ub4vUJV!瞇WCϮ[/zW+~r1YT׸OMN(]]{˟a؎s0uxvjy;RW_đ;on[,`M*_|8[O!nn;~qȖ0َ1v6ZE|5ס&~4h{[-_@XjABR3BF"D-5# (KZlA:/TvG xVip#cSӉ:T5QW}JfƏxtUFH[VlE_\0ep|X\]0_z DALME5^rN_&&,:BCS3|ހ3/М97Bd^{cY=]*d_t0M>HkG-P^YH1QRQ! 3@ɊJ+؋w ovpS?-_>:CFMU،p(iOr4'>+am>`>A( V/sIcGπ^F|||?w>7^ŏnj@MzuhZߌ1򯼆/7faž^e啮zt%uEÏC^U%服#Tz(acm}C|g]p{*LXCcQ-T]́>=za-Ecro)t}}jŵ^SY&ޅ˖sٔDYY9) AyQN\:)rB1鑧1{K}d-ZѭJ3'N{4AtQX홊ˬoy%TT-. ͨ(ߍSJ/jgXRYFaʉ#a (sI7v rmPZ'+9ca#G +dyQT\gDDzxftم?(Th_xhEI)sfTL)ݗ)Y5i[^b\`H*(fb,//br[U%fVqUe&wl4x8#TR7Ö`DN㐠-V]ॹqkTo/ÌoR)N\ jwn@Mu 삫UOAjk*5KZ1TL&JO?򹐿&o.jϩ>|VT >gX092y^B͍Q%3 wŪֹ:˧`ۦAۡW?^#%o`S&oVd9.).|*cvWK?-~'>b2 wfn"\Pm6V$3|/|U]6NK%u=G IDATME}ϸr`Ux/n4iG[mWmc]5+Nx?`VY ĕXANet|gGzX秶JE].TL˰M^>Bڡ,˺| p$3$^}<0UɽOCC}no~ Pm'sEKW.$vh?.#RWOWru,))4)lB췝 MPV;p ]. 3e9\5hI, k a#IJ"VZ0d)WO!<3= ^fZ@:+rVF(0 w|:R_'J#eڼ:V/U+* Vg<-?JWT2r͐0#]dMK8"}i$RkWEQZu?b _f܀,U\VI虽y^'?`+$#ZuPJTtቧVqMJYjm=5U9>IZTжެ'VkWUּ>|w) بknН? d1~h]D*z2 ^+ on}Q^uh[3&Fu܇510DkV]üy19q a} 5tbq;gffTvPN;<8 "#w^'ӂ.K8wFkF8c3G[S+ÌȕV 1ه1f^X*QVY%ս[-N埥@yr3ѷeX0Ep#_g=X+,]7ʾ݃uZ.8G݇U1zci}7RGsK-ꋺb%̝%lZ̛F/7mbij%0{պz^TTK+ߟʮK|^n+ڷ Ήey޼;:ҵ?{FSܻh:E,P2|ѻZQUc(u?Gg:POWnyBO!p5'piD4>a$צrzLZ2&"A& +-rLU5*G#3 ; DGa-*XhCCaP[0gd3F߫\r%ߧ(絥T*D,JTpH9}d;B,W`Mlz%{ /O>ݻYskqTЃE7މ=1uT4hITpŸ{_snCp?3/?k{H80T -E+*NT*' m=o{s+b܇U'|>an{T)Wᰃϛ]֔ǧ:v6~8wMتl?owTtuEuG5O&r:L>c8}*Dw~08c3ٿwrټ;RJBC_~sO: Eo^]P/N{u!x/<񝖶6Q^1 Y}]s^0=Q'N>s"ƍFc8?F58pڼE%VI݃=%nrow*"L>o N7r#v(ND;|<}XwoDF86Kh^X=o.o z胋Ν gpUнz۰ΟcpǠצ[*Hlg| bYQ| k`ПQǎEx.Qbz\㕢9ZŘCM~}aGk3׫7_s.9}'% qPo9ݘv(6%nez8^0u;V }'Y=]ꁟ{<~~M`5]oֺϭm-ka# BnczOf6eLZqk`DBE;;ÊҲ@~n_PGa6P>"OyI DO_0U6(\23 xQ`\4Mg'#EXvƘ(DDZ(dɥFE9rL&`_*rk($~I`yqȹǹ\֞m35,FqΒ\КAmxU[Z{mFQ,ŞC"9F=Cz}"J7v̭3XdE-bz\jHdN=xjBE@>g҆c% 'oSeh TE- 'x~HnȢ K JFt[YB} 0ڵ+4N! z0J#0] 3R9˫e4b$pf1{x||DHGmP#3|W<!sff`iUX^&@RcB+IU (' ̬hxi7**FS jM<U%Qܱ '7֫r &>*2="͛1']ߡBfbHBJxB%͹yZ7"*7sBrg yc 5|:ztW*3eAeNƜ#K{9BlK0x/``Yvy_>t +dTp"3 ȒyYE>F[EI`4,?bne#r D-1-Q ̴O^F%H)Qfشh<$%%'fyw6Ŕ39ᰩV5"U\5*DA<%ot9\ը 3r_u]ɷIdVN)_g0kayI;Z7M[i׬8#X(H=~ю %/[`B Aɼ1Ž-7Yn"JTšw[f$您~W 1_pUÜ"KEű"ȩDO6PcI@038Ϻ2j kX"Ei>*fJ,:۹}^+x.H (z KVdٵtclKw<tx ޽Hȴœdd;v"5MEE3oFn½bA+Y欴5011!*jNƂF)*&mu&OSkzfpnn`m+@i!| UOy>m/-+aRoNc_ AWl[*@CPfϝ;tmxDy@b6Uh#bTDDN$ &BJT+rSh"uj+* qB2K̓sF+I^42Y6ijR&Z^t#YY)EIݒ6IW/AD#ig+MZUxNO4s~W-_,lQX L8%pD3ö^IW4k9"_&E,YP@_vb=JĖr>f'M%k%=^~0,X0$yb: 4K)+Y2)6#VRT*]};Vb~dL/.rdC8!.d 2)HʻaQ8IߥEsMH|.Bvr7'6fGR6HfR 7hzs!FDVG`c3կvҀ0qyy^i6=̓Qhmv:X\Q2h#wnQݶ|sDF<#]չ_8441w FE_sz Woc.ZrZj3Nz%EnYNḓ8yqLxN8S?4de r Fۓ##)2-$d&)O^tOW܄wH2X;qRQh311wHU;i{8 qU.t?<'9Ն%b8'LJ6Dڒ"]I鿋RQ,u㩼_  bY}clHmX"oXK9[?T9{`p4MU7/ہJkFL5a>Q@sP4Vr8md}A0K? / Tv)D:9vd};j;6R!iStqWnn9lpB8W1ژ*G39o:vls[C'ܥy x^`7\ H~ETmla8(~V+][q胶u ȉMcO%N}I%05vilG>` 'E\국8cp""؉'+"s,DKc}2yHW`ìfȞ&眇 N1Y|ҏ!O7<$%H; Zġi0-$"J=r6C^އCKilYTKJǧ}#'O;ٻNx:$ͻ=i*U_jȕ,j KBd2e'4j#鰂,q]%zjӪ`O=Y?Ha8ƺhd,&{"r5e&vaSJV۹Q(ڨF*$YU[pk8nsuT90$];䣬rbz P gp!/y{1Yt*g_uMWQխ*ǞBD[0rH(s)2\ږ _I:\0s<$OqT]MmEym,^m2w* [ACnl+1wC1`T"ivPӈ?frgq) @:y iRO>>9M~='8Ѫ,c?ZdվϡXJVt#B.bRYJ!hKǧ ǿX6•I=}IsF)BBqVJY߳), FE)-id {UPH9F12d.#?B&߁_^w+xyZAob+/h}w5wqrlһv&*oae;Fn?>JYqѵ& Θ@C+ÅLİG㣏1vQϿ3Jr2\tDw gO+O6au>ǃ^nKq|Z%9!|r&^z967`83pW_ݪuZ| GJ{4\py*qbq=bG|T$_K~]3~r.7qS0}j?fǠ4璩:ږÝ܍7MY00s q~{X%qwaUN~0uDvx!t^-e^׮; )l_3;碦 1efg/Y_ݎPV[ ws'V/ nr%-^wNǚKQ]Y; gw*F-z׬·-exw||v-3 ue,g{S5b8}Zb\G=w;f?ig/⑿Qaw\.=Ds -wߏwU.;#>C?lT)cpw`Jyy#ԕ[w}@njsZ=~p!of83uUt[?]LR?'G* F*N"jbjP>\̔IxpE HVWZ"ijLdy.F\Э6A w;7xBdw5W+.>{>x Lf2R.|.pMWca p،N?>wK]r. =bhԓ+q)I^5um8휓q~S>_Kxg,y.qխ:eP^\}7noU⹼Wo sƇ5}2KR49+a+rNE`D-'i.WASU+ 9Q ]kʰ>3OWgy8T:TcF ŢekQjϊ8Wc)#lT(zL uu{*vuOedqyNIu*kHȊCvCAo8P'joc O>U{E,}wc;`eDVIDt_!p{8N_~}{tKV⽷ [B^}~*#q:(ևbޝE`seמa׾'OyRQ `q@B=y҄c!xoh^Z-)Rĉr|&ږn|1dǡXvr:Ϛ*eJTgNz?.箦עYys_ؽ yYUcUvR>^1{~ݰ}ʫ/\.ҜZ\[JtG[۩1n\;Z^oS/CƎ62hjսת/ת~ `-,Z=ڰQj޴oWYO ; Um&6jV8dޯ_W SC{GK(ij ,_L_o, [DEm7I$BTT2q|M*'4(J9d<,yH</N>R ;ù*z{'Dx+p8h %jq|ɹ[@w|:"` Ǝ" %* UMiFU0/)J!(!p *d̦%@)g q,o>,覼;Eg0N*eZTr/Pqދ@] U&2S y%4XtNx+/Ҡ: b]9xcȋYІE)- ڵhDLq8fajƢ$нsjnEoc'tף& f m+B4]`u˴(w% ޥ>׸f]1 |~t :|~)c3{03⨽EuY~漸#6۽Kwkn}|s M(uTwjoJ%?e>uzU3) O}7ѭ샵*n;qV½VKѻ P3ѽ年[&FV+474SUxnBݳ7-$E**wJ2`pʏ<(~ں|dp=3l?l/~mbh{cf~)̞zf֋{V+ݲ>{ ~ߣ#Hs],W ˗ M=* |UwF_jj7۽{U.R.bL{'p^~E }@~nhLIUB t$1H"VT&O.gL% }Jwu0Qs8I @BdGBU&z -nVdHy3DGdIuQ%+)ɗ`pm٫XI8S[qU.:B3ժ̬Tɿ9V81XV5&-T4+"^Bt&[yhnX\B]U WNQ@(_L|.zv+ =|& p#Zc}rTɨgK? ^oʅWLh60Pw$ɿkx^+/Adݻ)qeks#j:sn?}g\1zkA x__=mwpf'NՕklUNEkQ4e+b]0 $`^׌O;.5 a{` ^3s`a/zMe5xm'xnva՗>ŵ]\^'PGFy%{7IoP\EyJz [uyI5kXl#V^UZ*0GdqiiY@ 8+/vq"fA YF%eXE ,V 2)8ְ)VgSu Ex{1h^XTsgl/.ΊDc#74վh*p<̣@|CgƌǕ%<{q *P^ -mO?RfnYZ7<#ƪkjfѴf9ѓ&‘DRӗʥ.+eNM]sٗuE<5uMh_F6Be:nK[h^>n.C6#N@^>C6:)O(M6SJL[$,e4gٲe:Zd76Je|jcj2gy'FgYߨ\;fiyCB`䨽c$x~r ڴ7yYYly?+ϹOמczR㊍].o:o50xwq8lobZ#O]9[z_:}Q&A!TX)b{Egsf`h y8>| >^O?zW{끽~Yj͟=Fi]_o-΢+8VUA!r IK>7AIEIU8 )E;Y.,: |D#OӣvEnbNvŒZHnY/(l2&-lʶpL7#+L+3,\x#R@'@Yr h@i&\*{{LJWAAIB4hE& w,;PA7Sr~HR8EѮQכ˲!*&3/OVU3XgM.s4qȸ4d|du]X߉CCpIg\M^}N:'ޭ=ڇ:VdܩuqwqUǍV;F/yدF7kb-$+NQ+εvѥ48J\pڥ'x!|'\rఃnw9S-~nTX8 ڈCǍ6v[BTlS5=aV̛??w_<8o 'ٗY=9qZ=!mѿG}p:郭EĢo';w{'V'L8+z?fvxef/pɪ>xe./oSΜoﳛ8躾 3_jldSU^@m~꜍Mmxmsӳ/&_p v^TWp5WG⩸[ꎟ{97^)Vѯ9~Ⱦ,5m Mzu-ހK/waG[= 1Mt7ܬF29.`N!P"h9,=h]Mk/+D tZBF!&0 %"pT#0N"jy-a#GN(!zb@S{Ocs$SE5}6۲fe;GYxU2p4GTy*3&O֮Tddͪ 7g]U֯Ϛ)4V|/麢ѲRB>0Q/y~Aש1[Zf]M/*XzXZ?ZL:RFĬ_Z=- @4؃x(87em?<-gϴT(JzL%L8Э#6:)P+~c¾t}.3=3ӊv_.(m-viX* WMM{ZQFM>GVH4}jڦsKTv$o2KgUh u7rirֶr~x[V^FWHBsU v**,M0ю08Ht GbH~<憫TrRΚb% >4gt{: δ *\u?֟3 GD-22B DDqՙKjQ# X)5!5,Жݗ]%3%?qߜɶyC6|Ŷ]G?h^r:0N :{!fcc s6 TgNS 9_#5ϩʂ%  QAM P>-r[%y' %2+ ƜCRic /)|8>陊PSjfLW ӓ,bEbbdyrW&Y:|vu yBҦNqc}ԄSOǜr?:ƾ_ӑ{aW ƹpXb't vcb4j`1T GJaf(J0zO3$ ,aFT KI6JBWћd?Q`KaIt][P: #-/wza֞ eMmT(X2$Q G jIQW.U}E$D|xO}aĀz*Ak-a+(gJ>TuiEx4GQ Q.یR3Fg`f*=9#wD#զv]y5ZV-'BM7sH0? [THjrvm:[[Z}7܋nr%35}Z9y y1i$r_]j[ekr]iIq^hSeD@;>_lビGfɬ_CC1W5$ Y`_f2lRUxh#'2^% w’4svʬlr^ 6bM:rE`cLաbR/GrjIț%HM#a>6hƂhrk+:w"27 fx֣M`/37NH]JտM ~+_w=p ?V ΢' \Hv?5RE.5 "ISұnHʙ~Zp>$дpѼg Sb[ue_3}ήG:b31Rr[DϩAߔ(`!\\QIvu_ۈLF) m œbԜz)'˶9C" %Lo ,ׁR' :Z7 V]})5[9\۞_vp+y:q Rzd‘YQ:dhq'RU-:\DۈtBD)>&(A+ba6<BgCQpBA\tTSǢ^4Cxn@t}e_SѱP/Py"?3pIpiŌKD @5,iwZyJjɨ2 9x;ZQ|q"6G!&m0FIrL#4JE.JE)?T(2(D"i0h1ZGFtrpDوМ4-݇ڄW HNVNRr-S0O'\KOξZ B\:og0r^"[dP{SA2{ȘJ&"V:]j ~:m+`}zn4^ʣD58 m;3wۨD֤S1g QL]ʖ YilTUO0= ߎ6^*|es,nK]1xz_-MK&3CASxIx)#4m$q},xC2.xNcEJض _ɔ( zxvr&+l(< <[n+;>LAiPNǞ@|/=xjQ0X,ahM$2UUy>Vht%bQ_gd$+)ws׋ IDAT-~%+`3V(#i},i)[Fm)l%9F2xY=3F϶lC?|1tG(G#`<#M3$&fͥi%bC*6 /a).[tV8"'H&6\2;(A|ۈLV8jRbˈiۉyj0Q4\8mƻ2ILL-*הpQEɃfNkIVyΉ%'إz#G%=r#w.&ն=?r8i⩈0=7.̧cR3į{.ZA#l碜[HտmI,bo`Q"t?;β|f,"q""vA#*$Ӣ( `E "$aROwwnnfxgnթ=sTd(i.a J;4Q_P2`fem'LD ":[CД?%>YGK՛_Fd=W V-9kXYLK@!7Ʈ,JźHTf$g~aka}32 d;mfd'{ˀcth U$N?tk'^i9LE4`(ɲLˋ̹T5нG /&.2`$xB;0KbƒJxUb@Ęcu !؛!RUڧpNU8@PQ0D L,_,6}klӻ~Ƌ hkh ~l3g=p:*OŦE{2.~K1bU&}<ʳK/ýwlZN{4ĚlRu=803֮|6X{}%#ݮ7hBjdnhߑGaRe@ˋbg/fK͐ihHaOe/>c?-Ɇa}oܨR wREC|lЉKCH"~,)WUX<1LTbuLlr"%_<2{J/3zb1OQ|hᡙeV/aByЏyCkV{46s o)}l?c9)_ofbĔ:>k tJ;GЗ^66ʜ`%o HNLr(ޕA񫲮꾌`w6t.Q3Fb”鹪oKNF΋sY:&Qpw煒%*z,=frzzV.fw#}lJ5'V84ſ\HNZyK ƕeYv0%UKZC3d٬ޥbكEKSe /7>ǞY6kkmUeUѣqWǔ5߈ako'zN1F?w|՘z쟈}k4؟x=Xխ2<-e\{ ~N?Xa6)H1UM ,XUdDy=t!HPXii!5z)-8 ܔsC<Erɹ ^`oR]Ƞit9j&bT|)Mm5(Ty‹Yg1%@,%jvy7HdH5t%צIْd͓Hk9%:qD{vvGcƻ:"+IYNἡmCCV3?2e.JO*d흠C0+kW@q8msH-tN,E| #;;1E.kڸk׻߁j=,Ý6<8{Jj'OUuܧqǏg?u=wscOs_9_g?܆>)|'+sY>Ʊ?A{g} %@as~|qؑGcǯ.!Ϟy>O.q: />wu{яpwF[_:;ԧ?>',;7DCx׮b=~z~Q+q羈= _:xNWWߌC:t>yDZ'qpg|~S/ Yjםށ˯,L是7xolNJ<~ яᔓNl'3z޳_?>Ȗ|c~z| w4l,kqgt`ణ5ނ1z!^8ӈAi3sfH6Nl3ŻpkP QeleYOk-W2"I 3!Yi2"i:SJb ;uιrO*s;AJqGA.h9 FSH*D:?߶ۅ]zӅI4-q"׻&D : 19oڎ5]ұsl,2ڪh=Ts Y`f#%N󳱫V~Q ܷV_0A{7}D]ņA-]E*LLcr*oYҪ4Ku7Mo]wg\}ЦYvNWp=>w+ܼi5?7{?;m*pߏ 3?N<w6ys~翰{e7̱?72ଯ㐣"jI]ʭ8q7w?';'a>onf-Ą)Ţ+XxV;?SN;Ã+XB1dQb6Bo|e|Nw0wଳO|ӿr"9l;-3潴 v%.<[Ob7í}C˖G 1cGw.||#2"W ~~-3/3W$w .ygY9d\J;~|ayť֫pR(I۸Y$ 5 %$~"|י?weJ*F)))rAڙBf<_0TŋiV:bSuPxJZn^ B-!_oMɘrjw2[6sxJb•;_-ZG /׽QL*-Av )ĦZ>^3ݐ)(.5:^8Utaʉt<(6.& LB|.` tGL&ojlUF9U1svJя,P`|uw(i+SV=pͰrV_Cl:EzWo9L0 7v^g[0)VR[LKP*,YL|/gc 8]U;n+K<9gIu/{?w^p s֛O}λb,q~`mRE._zò/bC c7V昁_*vӟ,]l'D913K,qoKk"Hmqtb٤QJqJB"ZL wn$L /5CF:+ZCt?PP{gL QlN34]W؍`B7uT#]zF"v)=;xZ3.9Obe'oYoڲ*Ef 9kͼ9^<14LU0&}n61XVoG|C=j0*& U(x'praE2.Yw NS W:J̖/-^t?.w@'Y}n{\)i7/mA_⋟*7E\hQ<08_E{Jqb#[1JTLVOU^Vw'1~x;zzK [ȅEUb+My/ͯ}+!ʫnjCvƞ3njy8=_1֯u/ =ֿ},pas'Wrljgdu>]}*814{m{q&uXwζX0yl l0nk0aUb0|ک8#ZmhcO xNg0'dS2tz8cߏg,95$vv#ӖfcÎ'c3t^Q_i:xn[Mz%8/o7XnzZxa@op8/X[3o.' \׾>—?E3qҙ߳an>c^ Í7?=Т<[e)@ٿ3ϓێ $eݱ6,gkZ 6ɜþ^{< >,1,Yses߸q[r>vTs߶^j´M,:poÂg3c !7 `{[jΕy|-'׼7ufeCeGzExM HY+_Go.5^xI)[No}:4f<o> 1;-7&SLB+^DV壜=ȕ gބ3,&781U>Ibz)[}dͥ T;rz?7H,xiQPU\GW+ !Y҆EV?ϰ}qB!EX,((J+v,B\?K "|ƒM,_^Sހ>*%Zp}?뼟ݯ]T6phR'\)Ӄ12zS[7|y㎗J6XQ+e%?RDQWrً`޽>$/) EN)=&KB)&+B׭[Pʼ\jB'&F^E\3oڍWVAh"v=,#??14:0i݄# 6%-õlb`"?nZ".;к?QsS'RqMBuʜ~fpeΖRpD\R$Lų%R Z' 墀lg\ !s%Hs w}P9 Eį$ތ19}ie*9NƋCWa->V!X /}5< d%AFZ'=y)(4[4,D]N5Ekʂ;=Σq(,vcM3VRx;%s-a"H39G k\>&(ܗ@ P ?uKM^P8 FQH̊G!+1z "mή+גT ytjܚ2AU.->,E.Lwei2>U;ʠЎiUǼI;7y.mꩀu,M%~]1x`QK)hޭ&±Usx\-<*ѼӧA ?0IS]G8f-WnC8-\/zV41߭Z!^x@DŽ4G EG1+~שW/ј[hI۫ ."c q? *#b I-U`4][}])4.LActv&.7:KE TGP-ʙFُp AW[3D I)O]VOl$ߛ-1_m+NMTmJk;x(yp5OtS `2$4 0_w,CJ#@boD#6qK?WoAi:N_usc]қ}0"ꁈ/Ay&3vCqjI5BTD3 6;ʄs%J3Ve'Ywy00N3T`+Zu[a!eIʾ;+=kV slsz ޭp˫\.Ѱ(;œo"rT)3LMzɩDmwj$ > ^E36vC-KQ®D6;!3 e8" f5-Yp:N%" orc,03}Ռ]if'J@d<[>ԉk]I~3ΊΔo~ƹ"ҲI1YIhtWLh%55\!:Xx%݉!lVbU2nR鵯7l̓2Z!8U>] HYF˷]7!뻣a[#U$B|V7UZi\H5QϢ^T˳SUwfSp&J~xSB4iL[x]yqQ9WܙB&waC€ l3./ưr/k®W|:8e ڍDVP;]|e5"I}3 WWH.*[SBE!e˦Ms_ 6:AXKw YgzVrnkL7o&#e$8]+}A(ljm&ylYY^U*,Ły4X0;/u=]ӯhy ̞R"C r-uLR ym"+ӧKܛܘ59Dܠh؈a-|ˈ仠 ^'_8NW-BU"~SEG(O}>{袳DCN97Pvt7Z?߀2vIґ[&(Xg k`LK? FNv2wvjU> ~#nQw'ih߫9eKDCmPⰞZPB1(r2$h|suy&Q2Iƌ/EɔsO]ļHӆ,%HPرz->;+fESn9n"'O|:e#$h+GT`cK3$yJ@e:t_jH9YZzZ:^mR .?k9-+zVӹ(Y( ^O ,_w&a2%d 홳O=. hj7}Lk3= m(6n*񙋼?F倂gL)4dICדRe"f#y G%8E'Ƞs( HydN'E59vS!u8u,!Sx =u-oyjvAYY6=,2ڿղc& ʖ$XS]/G,51I}.ǙTH;9beK50kSq//;r8ݧ Y[ a *X:XDg*x_=;ɊT.~asIֳnڱYy%IuFq$Ngm"lMŮ_Dt#M38xIM.MFa6;bE޳+e-AVMLݯ.G HJ,Ɉ!_= ֽ_w-PsθˤЖOZX;YPhzq~On4vhjfˊgO)X9.xX2GՁ|%عiQ¬6 Y9)Z¸7#NgNrBcω[ؿJ6uҀrKІPaN6 yE4OD,!M a%G=E[ iuFI1teZBG`aU伢 sEGj[VJ؎ZeucJ lf} h] ȀY1.84j[*r /Yq~ =! ^Do^UZ^`;|48I>=C+]Vte%H?I u+ ,ȁbA~R@ZR`cD V !ڑGXL]b~wqҊ-ZxUf }"SGP+t4LubI#Uubj$ %~M0$ JGYQb. e S+<<:l'Ni'wD–dĽ%1FfGiܑT:fnf2Qu%[X ,\JPnU/ONIm&O-־Z# XykQ)kӉ@@Y{G|3&w"Oo))V>Xtf&`).kSHwy/#5iM4^##-ӬE&A^*ni4lU4yŲ"edi/E2={Ěv,Llx ɆI9@ZB"Z 2mg 3CLcW`uѼhgye GEJTT"1lI6dvh L~B#qݴL1e7O^oJ; )sE ,}lI2B2$7Bob:)ٹkY#X___XV2B47 FY_l[Lv7t<y 923WBdTڮI} ZyqSFapfIjǖh˗5N)D67Y 6/('0].fo-+JD#ﶴL=P).v;:{m΃." 珷eS2ΛrMNc@ hP,\}/$ƫ A-,s5B)͊Ě2KA+pgbfϲԛK) Vct:0kFI}TAڬx%5oIVY;/) 7Pn 9i;R4XM}B:FݬY x99^x'9ݯ.G~M:&IT([l *Ѷ/1Y'kϬs@"q]Fy⍊7@LrT UlpjT_߸Kn)K9"p -ܣB&;:cw2+ rW`UX$+@sSqs-s`Ϸq!Il#7*;ab^ /Zl[D^Vm`+~N$J={) -̱K,_40mCOӑ UVHrT5Ǝ`%J|N5W:reW|`#FQ 9B3pb^F'+io(=5`mSʒX:ӝXdqXEDGijcөP!ת`֟1аpfi$s!v_oD-Z}|GKp]?qvUpt=|TfVJ_bd:@ۛӦ*sg t-i,b~CḂF((;,tg%:D/'3&Ĕ\}-YyСte5: eY~JD˯O#0$G+Aiٰ6M}.z24դ![/lX(5%JmSTRSęij$̓EYrW9$R`0eqmFPRNmX%T{hpϩ!rSf QBQCx9o g/8MMq̦z(̥R&] `qoaS2sF;cfNe)&0ԠuY!bI(ҺA6\\5# >t=ў $GF]z~uFۜkq4Ph$%? =O;>_"icI\'&8{גR'7銦=b*v~W~:g xʏ]KMN) k7jEsk!~>6gF7E!>YE*q4vsꚶ"LAlTC4JwRVnXnc:uaN*Ym c˜%AV%W$ʚsEVcܐIr B^"|aT܊ ر9Ga]u4}^f$ [IBKx`!d|:.T^E2l8ER. 0qc|sjTL8:+VQ,NǢr#qI4*6$Bzl?!AnsMKcmQd"Z:#~O59֕G#,GӎfkT[̵Y HrO ި>s| G\*'ovesd*9` BRV%jw]rcmbsUb_+\M=&Dl2ra֪%C6qݯ.{`5o(L+FYT.\tnn3Qx J+J5aټWiC+#.X7` l04(TNId3>A/%cj1P=]YW/Fum{/dUR)[uY!I.C֚Ʈ](2o "|d#,_ۓj/l9I,{^ud̓!%r,(*)Y*̅p$Z.+ݭ'|jg4chC&^A5:GkGfWsl$ 䓻fn(d''4l$GJlJg1o4;M-җPv(bW33IӢ7wO>BU$ĵ m/.h/6J\smhOka(o r hB7x4 ѫGԀeIdcL'RvLQ w^vbrQwZ?!+$3 u>9QźӻF&%U͓5]o0 6e48 QT!ƂS.vvz7MDt3;k,##_:|cE]EBe{dz35a6汖qWmsxn dv8^|JG&?RJ jDޑ_S{ R *gٍ|(ރhkirG,?&Mc"Mw,Ɏ5L =kLjU&4:,ﭳ ,bU9AjQ(MIt\$h 4y-_t~o)N)gilZ ["~9sf~SsJ:ʘUDx((INR=I:rD.{11Q5qQdXط.}.ϗwN#%yf|\iIYN@^)>fμCsOg; LEnYV:騫9X:&&>KElI}ΔҜ"fD%h tAT@-_BW~p:E"G-lzueL?g=;08.j#aU2)33@DK (Y'1˛olvL:N펳ס7&ˀ296,yLsA"V~> J\$dXv,(^R'ħ$6CLRW,>tE?2d'<9X.駽أLWUZm2oe1.JwLgbFNlWM4Jw9Y9H-D-[\1sQ9c'"/&:.)4OϦ_D3^]|,BvWkY0ƤIi阁1MqDM7~s6n$@vx%< v Jr#e_9MG>i/j8N12+vԙUOyCKq!_sފ4!7?E?O@\|alՃeD~}.o{F8yk_/?nȽƻ㜳>;)K܂%XԎ'VkM[n#<2q㕿wi5MVtM1G%.UfT f"rLD]`d'rr"7oJ΂{P bm jݪX$#7%@r,MVoӟ{/=|nex;lt|z+o.&θJfa Gp7=~]lTN$oLw>y:|gc*Ӱ^x{uV*knW 9wKy<2(8U4tu,E1lji]sQki`;=^|*cxۖB{4K }g]drZG1s#>u8FN/_n&.̫j|r|wQU.n|8 1fT|<7f1n'02L> uw9faO܍~?:4rS@IsuRMu)P5@8jQG'fʔquM}PS)FΈ33Zia7c[L,LS^c3n 1sq?366^uZqܘAJ{fzZcb*`s>\#ȗ5L!E~u5Z/ ){dLdV$ۮ 3 'GdڽX{Ϳ8`Ƕ{~ǾW ^%?5 fOCytα_7V2?ayX^N7}|ޅK(o^M?j zχpܻ7C^[t9Ǵ^Gw-KH n39@qؑGbF_huZX`XX_=Le(Or\+G5"q,wt[7i{5e]PfU_23>V;&b|*5us.W΍]g:e(X/6IHȦIdﱾ#ZQYh5v|3ʹfrh8;\+Oe>l\=_;7G}s qs7sY:n6^m Gj1fU]s 흺ny/U:P V,o~c>)z>>Ǟ^zjp%,\i `PRpDITki:8s))=By ._{ Tn^]I3+AHhG#7 Ʌ>{'y` [Idann|MЋlWb$ԍ300\^ 0|ݏc}=o;<v_wk,^ vbglbPSJ;ċaUf1HˎJd D)1AuOժ15VgR]X%YY1 ڣP [/A >WXɍUXƦD1rz%ꈞ ,4x*1XVyݍ{a1g4n>X=<~W-ދȓ0i99a2_f-]e)B(*e![kEJzf!+oM*֨[)@T>x,WR鸀c /!f7m ^͜m}XQR5عU#?7cYqSnʱmKp?7z/?e͆9qr8:~4|+iqF_O>0[4icJ\7? .[\npjn9V[=/s?q)u]k6> Ϗ65~u+_ N&Eͬq"dn\ɮy*I|q0/_Rʀ7F0|E J| 󦠜L{Ø0niEH}uc3_(fG= 1n8AH=`M 4Rd\ypSe׀;VS$%0b|R$s=0 >kܙF3tUQvۏ;d]> fKw_x>~,[ aƹɽ3Xts#zy~d CaL?zPƌU`)x'Kb&;-`-6VYmk|D?N?t ,Ēkȝ΂bi"dѲ{6ip/RmW\Iz j]x{{=/lV,i\S^W IfVs7c*լ*ƥF |t0ܸil\xǪqzhYnݯދ=@A {{[/1wsWYjst;pռR*lZHDjumZrn{ T~ukHՁFS{?tcsZf/YSh*Fg}^w-\A| 0mt+Il٢*҅y@U_-o;%Gv~YaasFٔ3)V3Zk f')3P8<nTc \עcBR(f h: Łw|޵\L,I7)gca2Z 5*q9_e~cXju?qJ4,y)um2vhmq Sᮻ+m:F5Sn/w_\wN¼+PЬ[OQH+2c#NqQMȍS0^nYwv=tfCٳ7,̈́o̸sf 2u]W\-xL">c/EŸiV†~V;nvh-e9n~wq3wTJsqoXNt1nխ[%xG<6N:kxvq!/m@csKu (M7d qkRL? IDAT]bNOxb꤄f;Hh4hH wlGYq~АzEZ ĦX^Nnq\uq֟>ݡ7Wl‘~&0Vc{>E 1֟Ef-on-(\R ذcZlbvn>ZzL:>vy7m7NJy`k2]?wd7^v.θl&NxndS7f?qU8x5Hpʫ IP^cܢ D9:/ŝD =*Q:;y\p@h}41>eIØ9C7cq_ٺzP4,W]徟&K)`vgOg|pv9oG~G9oL|2KWƓ% y\s!a+>] k(2߷?"nq\H0(9!cוѷ)3Ww~u\I~V/h|[. row9. ҿa0ݏq%Z)D'$k ̼ZrJӠԯƗ+0m*v(뉁j)&Řju dr"F\ STeXWC8ܫwbt]nvc,0g︙*% (zqP%wzD64OMFoU"r2\m c5T.q&%a= ˩׽D,/4mcө/& 0Щ|m P>IXQʿ]ڙT>ڇE=1ayg4=CXcQe/ (?*橌74]1ʹMal{!vmq^َiZHp\єsФjJ/b،*[nt0N [ӎrYƍVؘ8}YWv6yfi9n'7nCa^_[]?^n͔;3wB9nVxz/gY97N練g]w3􋠡 XRvZ^x6Z!{,f{h\sKt#p\ܨuʍ$љNi+P~wܿ"_~{P;cn= |gꟜI& Uu}Yb!Dْ;XT E9Wq-Emy+6*Ph޷^Ul9=ћYhv މ=47:5Y0X%K3(]'ڥ%7q*:I~ZJX,W~`I}ݱwDyj#(S~j " X 9 χ 7Fj2AN ut#+Xfrִ z&BfZ-4)cRH欙t޳0ZQ @!qdD2(X+l~\k$l)`;Jr Kj0*!9Wt?`ͨQVQd[]ȄpeM\(-7ѝDL1@/c9J2R$ԸDm1V:}RƘ̨^/38)+b46Jt+MlyzdK8esPWR@xۖEuE0EeLc!??Rv$ cBF)Y/QL7iO'&Y>')a#SfDhJʙV+ Q!B) 55(UQ$T*yF8sT0+,i*h6$Rl/AQ&eGEL n^J$WK0 bn[TCUbDdKKlg qϊJXj'{' Fy$*8EFAM|ǐ'WMEάER2SU:2i{" *R-y)VDϦ |8eMgFD .2PbLY\1yKrS@4 F@ qLaG*b?l8r'BA5bl`Th2_8>HHϝb3ITX-RcV8p@l2q|DΚ %LGŅ#T3> FC r !݆o e鶡P!"*񎣩& dTn{`H&ʈ|0vI:5,F. SmVrV̸TFR/YDNmj8`5O0{IdNMY(ke"MrBlQ 0 P۶Jp,W Z6v]aDo*FHRT?K$* Dˢd2A#"!e͘h"YAΌRDpa$'l-@;J!+_+-W!O7MQ[X{` |KrVh;Rf+O3Ԃy"G~~mmGU;CRvO Ke[+)_o21OU淊YOUrDJ\sN^ĖjZ1"7+M$JZJ3g2MsE`ҁB=P ;xyhQW]uvYaEG0WCs$mbwpO5>KϏ",|{^9x/OO@X_˯UiE8yX"1$"[H?a:->k@~f쁌|H+B5N@>@RYƌGK6Xo;tІ'V7q?ַ{=@8ژ|hqE'<ٖ Ȗ#2xR"cḘeDd&3R(l^NNIp D~1((|8a)6hRLf6&UMshQ0^~b-xËonwǕ]!JnzXI^\#^i^S/őWiﮍ0n|;N.>ɥAVYN7;7J*me~Pᆠe* D8]sOL~9EnDXFafkW3#Kj* I%#hM4ӎ>7!JIJspAD ̃.CSW܄ ż=ww-r5 BG|/j ZU 5Kqa̧qH~v~+WSg-Eǥ "|axPj{n{ܯ/d:UMp)VM XoN,f/`,RG$ ЕV|;JOGAԧv-qm  _';צ:].+ĭ/=ķ p nL^>+y.u6n !mſ9SfRJDGȀV# ͚ &2R!̈́_#H҂J\ᤷxJ: DDIGwe:?OT!Uld kk\ygWLW5_<+z{=5F.E<z$ɩY 5q辅ֱ6Kd܃h`(g'q \3V0dS3n*&NVU` ͮXܨ̊FBv>_fJvllkGQ6 >^m;tVۈ.G.oϹt@ean2R@5?>Jr,XsTd}aCkROL9}ABTSJ;p} ٴh,Ѭ\Hǰ!gGHnxHֲ@,qtYCmF6/;A |>k67 DG[Ī3j q9>ElrL#~¨nHP'N[א[GEG)4W:"KjY&Q6eAWJ΀;N*SiJGHH-Td[ 0B@Z3KJφp뵏;«*܊ -jc/&TU!~,ڂW>&22(>˨<6.&6ڞ`q&`xϙT x/ RđRR?zKj \%R,PVvtfQ_L5gWT5iaIRBoFAj\^D,5V8Xѫ̅,oQ3\ׄ*ŸÇ<Dqf t rع}Q1aVGᶡeB4j/DI침m@enIJ"PbM862TǚY;yDMDJ.#vЗ"a\';%'`fsbFhTh x mԋ"k?tlp,ǃXՍ*+md6&ژmhǤ:^uOm'AiإlQGqʣQs)͐(O0E:-Y6S/i+n¶E6u3W4%x2YǷ}8% ,n>Q}s:T,]{q=n {K"[B#ПQ͹3,+>] R4Amr3~!P'Wc^ɱR,֮Dc\}%SÝ\% 0 !#)V\ 24(xI]>8:f7dO"U}j0ww,AB Iǧ80 g %X%ӣj: =x-ʧMé m>4ENo2i14t)QK4q|yвtVGW50[|SZ6kfqTi+S^^IODXyKE0gLJ3\4"ud5O a`EAaҏl*pYv"g$ h<(RJ/Ybp>hMK1o/bǐG햕5ki_P.Ze ynޘocvԙr=!HزD2(-[D)HHd@J"Ĺ)Z 4%7urcDx)*Xb o}[QszNJ<jhc[n>Z2nBn vna+0ҖayPF+& Ž%&{KiQx&:Pu$ #gHT1@Qq`9']*S^ E)8ybYh^P|ErZQYo>/?/bnԏz  K2f:vt8ayl>6%>-x8 8b_Gx-X!jDl9‰2EI$%taD^] pOL@I%Y>j%{91nsuYfM;%jEJ`HBش#!t$D,1VP h Z4ءAqrX 14Aቴ1Z(W5gWP[Ԡ_R#([|KiP:6R?؟?f&n8Јb)g$W-&ΩT'NR'M9lI1t 6R+,!v8|eU3\b$S[@TxC'76.Ո-Zh"@ZRH6F;4+ g T[KʸdAJӝwXlnm!&Vd{ΐYRL=?XI'`Qџl={i7ca!4hc&؍"mՂ-ȍyau+TP)DOX6 ]0b}*TѾJjdJIO'IƇ\PH$AjQSfiyŵڳ#P%R9e^+jyLe t:io hD0fS["[akhĭ!Lꁟ)C+Iʉ#M/(z4jˣŊiKwV @a,KFCL%h&| mF%c/25^)M:|ŝbkJu O̔-9H J9"!R¢Ħi$8\ DcC&9?맍8VLUBɑ"k-^⠻ dΉGI,:)W,xσ6cYl)e $iq U1}m(!BC$# rőG(ި9']Gj^[F+/}3OB,'?UJ_W;H Y|؃?.pU\J' @"HM@s<[ev!lXO8~)]h')GAq%>涄5/O-ANh qX͹uVsuqs ,QR$n-ҭ<IudsXP+ IҴ|Mfg')A,/ Дڀ ᮵b#{ZRi*oKh*ȭUD~u[e )5*`c}Jzh$&)e4BTDdg$Dڹ2P<P 'I"XqY5*ӴFÚBNPIZ4L쌫jMlbKř:X~ZJid>S9q=U?5R4@ҀZTW$ϲE v,iSNYR6v? ghHzQdʛo\ ,1Kik+T"v+'3*ϨqPf6¨l嬼)~ߪ"c(X,lq6N6 mb7I`6qbga{ȁ+TmՑѴTcc29>@Ya28PQ…riuEfJmx PC]] Vof9ۼ-M5egR)%섔[W:'$Ež|mlb$VJ)!o I\ɲ_s[}5qHVьP;#l(KJTA^&4.eF!(KRs2F ?uF*COQidG"M  TT 2AsPY;HFd)ӥK/n{M) b3`e&5SR6f(c&45L&5%vMIS´5 c5ҭ0u`F&M [F$)t9"ԬK7P/ȩ(6 tDOF,g'#NxlT8((&Ĝ3OJ I^%)h|<hH<<P*@PeomG|q;Jlu4Ww9ԙ |Rf.8щMUÔWv%YԖJ ?IJ_J<5\ϬLOnD v<Ғ Ҵ16vRE Y {8mS#y͈_c/5سJm2|:5q_ܵSl[1z@nf)pd`mLթ%3b?Eq=TC5N `QKFQTER 9JJ;bYֲ'f"E@A r8\*w+$ǃ]KmbDh6*w~54[gTo.Z!*-FLb!#%LStZ9%j_g:[Kr>!g9(#T0Ul_t6%C# (^Kme batSf;#hS:[I,S c%ĉyJ.-%Dv h`L㚀m)0I6 dVƔL*:h]S'^fW²ADrFYHcƴI*ތə6a$ c^KHR$'\C& : +$B\]qKfnꉁZ2[Ji Z1)F}Blv|sH\{_ dm@83Z:2Y850ݝ]֜lay3NEEI$GVy^ _ϐlH%yRVgfWO^A86/\,Sij,YNv`֌~&G?U].JR],W!;T2-b-]O籖rtR'*.$k/²AĺRf w PRhQYuhc%^U$`^RBXǃ y!3,((9 Q(&(B2%鐏Dn?PO)0L3& lA`dy! |tH$SEUqє3$,ٚ#)RA1$E6&!!IMm_Y/YMTG*!%S6ƀV? `cdfa':³nB`*Y)4 Z1=J-ƍoJ5쫋^Nj ~Gѡ αLQpgZPpW%ɚYL0K8>bI"UjYt zv+lxf3R.GGz wN?Q!R*0^ُ^֝k.Yl> :Yy&&UBQ@^bo61ьl,Jxk%FJji/&ncd\!fFᔚ #9*PDT`u`kXPfnUbMll!K*[=0ԅI$+S'o;9e5R)/@iZNG j u|3B,1Y]P@Hӹi`t8T\#q D<n=ҏ<2x0`pSD I'"3[WN.ۅ>[+Yr ҼFVKsjUY,{Y.9;~~|RH %SCTK?%O%VE"kk9b』d<%" 3krlEXԄgd%&LypA||2;*[bif&qssXS5DT6 "Br~Dԉ#u/ҵJhP~%x|$/ )G)ΑE]Mt|lԴKu\`?6+F\N_"f:|I{iF8EbnN .HOf- Eo&ػ/wpZ.p DLmj6*J%2$f)=')0<[e"{Nf{o[e[ I_ HXuU` F40Gva]G XuWJx!B8ܳF7Nld 8 ={ӕ8O DQjrJvb7 {e7\:6࢒E rw.34di;EɷL8`piG @A h-+"Si2ÖVH6b7zt5dllY06*jΠfl-;bQdjQ@6)\Xh+K7$"N3LW&tbj)bMhU_I,c*OuTgD_ 8 N§~i@HjUǜ4MiQsUykscXX֎W  Xӂ !4pl_;t;!u`R:Bp@vEd}ę$esd4Ȗ pP5eh6Ha9;қfMdKSb[7 B8rXuT@łV5 =PaىMcIemXUƤ줃I38 i>mz )+*:& 4naM@Q:k64)WGl.8B8VOض}@@I2`*NpDDHZl s̄m^gf=bF)NS5h۰a{\s5\s56`$kk6=kk.s5\s5\skkk.s5\s5\skkkٙ r4A$\s5\skpQɮr. s5\s5ye*hp-Z\ kk.s- -Al | 5\s5\Z+#!k֮łE0o|ZzUU6l(F=P/++㱀i[Z>=ۚW o WKώ(?`Ú3zCQX֕kvS-~TCǐ `k0Ǚk DoPӌ>j{+ʊB0n"`{\O LХ?kdbj![qJPխ;=(v_G~a. b co@cΆqĤ)P=^q}]Qgny! Է?_ã(i4] |oolA5\.^ؑGiȏK`CA8ŧs?a.pz#L8WP+H0v(bYh4fͧbh٫/M7bv"Ups#rrG.,ܜ,_/oq"77>cå& IDATzpiB =~cG!gs!Դ=&B<+xgvk[FVB(3NC:NyGV`, /C=sG ~=cA?f}<p3bjtHMvPwDT)3 EX,)d#OuXk8h "`ֿ_0oS%f"z6!'ĉ UϏ0kkvmo>A\xP{dy.]fi T k(w}z?ކ0Z [{W۴N a  ([T 8܀`X3_:Zv|^{0;:|xw4Xbt 7\GL&zlܰ 5`Ŵİ=ĬƌE]* La5q_ "zj]N4}GkoC+::llߣ pyxopC}{qh|:xqxu`mZ}Ŀ>}Qg>vX!/$9hEIei~CB 9x!f -;x--k SA}K~c;T>1K[{pOC%&-*hi"#&!*xuֻe=rro \Z87~ݪk3O (jL$&_O -Ga!Z1t+ hlx卿c~u$h1フ[u|?'2 "%|t|: ;6BYJFcqC>?BE0L+z)l<`WĒ;gAQ>Ox p0bP*z"BE^v ͝58g8S)M =6QQыjTta6- 9C9G4{A4v{x/jYq!U]kN=_>6n-m|P4_rͩ60g|MC|(ӈ0K rP} ֮Yn\ROgD3 --MpTxW?_u U"W1Kѵ{x G~F"W4hMaV:2`(e_:0Z~[1~hިⓏ?5a;cx,H[Q anϷ+@}7SPճEExH/]+E& ֙6dK}0hQ4t7ҭ0"Fxy^HqԖBS4ok LscTweS1ׇ|d96] ID9!,hצ5X{+VWݺY=ǵY^n>Zk}n25~vVXbxoÏ-ZPP/E&6Pu)A0t>*?r`(fӷcР(--œ? DV Ŵׂ9~ 0)Zeʓz5"fW+0dl. ѷ_? b|ol,3ݢC}uOj /9&̿h^\tՈj̸Ϛ2CM`Eyq8<利8FA{G_A'Zac*z~ eݤ[V~C`Vvk ׃n}FYԮn]KQح7`6cQ,7 \s4j*,.hڽ*1j44#Cd+}@:GGLK_| 9A?VaS4P : 0*GzzN=G/^zc\Ь;-τ#~;j8WXakyQkX.pe^,Є|K5a^F삊^ڥ+lAI @ݗ'tC̗DkTč.աXڭ+Y aА}1O1~v2ґm6 ^G"<|h?e!-Ư=TfygYQj6}QK0 k!/Et-o/'W7A4rPi- ƒUkQ҂ [|T: ~1fƦF|l|ЁXD u [k[+?N;p99Xd^3u%x칷0{JXJ r}`|=K4WNXĬ?J݀O8.:*~xG(*bljmG}Zُa(S~mͳWCCc Ar^Uj'V'Õ__}øf~^ct>Oz0|>Ͽ֢c {/ZhlDí/bҸ z=|Ϙ8 |8?iAmh[h5ٿ$CaV쿲Ǹ?;_p8~=.| 9̙=$Q'?OQC,"mx w;o eXq 8 Κ,SPFq e5tP(dԁX,XggHR_f< % ąƯ_u M5Ehm@TwTJs?S/Z1pWTz\sm'OrssѣڸCKyM} 2{.M?zs5vĺMг@|{=% _9\ Ԝv"o^Ab T O~AxiIQC5__ ֢(7YѪHci cEzs'_!]Va_{KY?v{%hh^]{jcǵИ5\sm?Y v_:*..šE/2 M$e#4Ə'8߬X 16c?8OAeI1JsDS2M: (z=Bql=,Ꮧ]'vSUk/9>hc(93K0qp(Pv5\s}k.iTonnFbe8Yln(ԀmcIu!''TOt)2$'t1t L_ Ҙb::"3~qvhY{=/^_Nlg=Z<0{oǣwyo'?\~Z7J8㜷>C1#Ѽm85>e}쨇lcG1o}EPZOl,Kl NF7Ye4C,ҁЛqwh_@Un(,ª4VOxW_6#1%Fo+{Ůh-7'K_W w87tv~n5byANx~?,ݷ*\ˮ:Enj^㺝vcv0zy1;p#dcU}(><އo#քne׮G\\kۭwʋ<83Mأ]Qx?kH+ W> `tPo'ߋ]k/r59 ViT÷܊PAk 9o1|`Ab#T8^;u7cɶأqUWSEkԶv+<=܉fmN]/B֯32lh~7'h۫jwhyϵ~O8eֻpɄ(GCo̒-9'o&y7 a~ی0uq)o39yؤuzcq|Oq|M;x4ypWᎳOB} |]utp3롔W^7zt9=p~ݾEuiLQ&xϝbǣO̍Ux7]_}BM_[,mހ[f1џ/XUp"㩧?|>!~czk.xyh\A" _Js1l *xMuuuƾc0aMm( iܓ[;dL2O; Ьڂ98rc^94-Y1ƘeGLj}4QVRo4 ׫9hkM{,FOO=ϘL =0U^=z:]n̸ M66wiBmbc\fvlIȘ|1 k$?9;硩N 8KǷxu|6b;H|6]#0ϓYi:owƹuKgNǚ阂;xr~WXX%?֠_{OԎUA‚M7;nkMuor~{ň X"x79s*_~E#w )ޛo#j(mfrڭǴrܚˀ(dC (-)WjPZHG ߼>n*V] ='h@JU$_@qM[}ǐЏ5+0gG t-])ǭI1l v0ӝu[Х[9*EޘQTUrt4#z ga8F'5`U`[m݆u6c0&{]gf Z&ji8K_Eܻ[Xr>uogwR_$N+ov|ӭ;R?3.FōWw>pq>$)%qg"'㏚7DA}sǯ딢8KqጻQ^P|F/j#| [p߃wb˽Oj+Ͽo~~X?iQ<}ۍv_~s_i7޷I췭ɮDq3pC3|_Pθ N1UL7]{+1a#pe,{V ݵq0Wy uघDUțqdHXg6Sb[N(5ٿ$$oy+{kmms\SFFOF]k݆5x4d *XMסF Be]L?FE1`V pX̃/X:ݺV ugրe˱lWϤGøfx cSmB<}U3n~y+mGWT׵/W_f;]o>j#~f\u݃dRqq?sTP%R9e^=TN4w6m2`? KgTt^{bv4ע?܀P^~/Ű!!䬮C!᮸M%m5`i\?451ʊ2i |m+@zU?.$ZDi"UPv{bzJdKmfޑ8>_0oڮo0M?QBAL|MM+44~*A2`;c'[DKa ~--(ȭDQPYF|Vf zx)ۀU,/_;L5j o8*((ҏ^xpٯ,ߧrk÷j000LKٚh{L^{љwv}vwm7w Zii i0U€30`2KMÀtP;s`줪"uLOEMB|h)#3q?rr ^nG\nJG+UƖfl.5 hhGb҄QXX`~iGߔpS_ <}e\s͵_݈)He`$hN@ ;,#Ʀ"uY)V `~|޷p;8d0By޽+|lJAZjc-]XG '=|΃/٪ɝt5\:dr ;C(%K7e*)HD 5JDMǔÊ1q^a߸F=U~* <É}F1/DUՙ.+V9*CY3\sduYX2Rm Q; v@sO LIV'LNz}UzR LY Sapv> \ٲ_NKƘe[[k `s0Ax>dMVD(}ՉB;`QEvx}ӿW߆-ր/Q[OvNn^SN>~ƑwfmkSҁ/S9qg?=)M>v#vWタ-u1SKpis]0}3{daJ&k uNuݐ0៟pX6l'qb'scksyU2 vWZѕme2V/.<{ݠe3H0@V60z@ON `?[q,$V󀏢hKr$$Dt"RwHP4HX E J  zowpiJ{wOyѽvZϸOHkΦL^de gΈ+kay\5g9@;{d0 ˺`ӵ~rff/X`d{JaH>9F1K[z코tsy>)v:lbpWdAe1}ȅ+0=Oְ܎OL8xx/Ltk\ߚD7|M`ྨլ 257iW!--VEρs]%˜5OE`y5/w/"$[CݟY&4a3bvp񾺚-R.֍ }oz@l^ V6&M²~m_)31 ֿv3aϰlN$^w͆ OXF$gơ_s%T7'x+k->!r  >{e`Q߻ WaR\<2?vJ-W SQV~<2Z,AC.3C U`Ѝ?oaX$xV]?_n6˝'rVnIoY-øw`|z =FGBb1X1=\#7+/ͻEe?byĜsq!Μgn%a'{O;MO~'ǽ7#,K>76+^(qf&S%߰ D 5t]L6^lVu+s̹Bzguf_OGJn\vcY8ϐgoZG847n\DJJ":h[& n_:thR m l꠲BɴP^sN–!P!,rJxƧ>Kgn.ZZU[6.o_-iγ62χtMؼ%v5rX+w~@\XN٪%FN_.Ǻ=ku$|Wa,D.,n-VyYPGb#F M~ _lو4'NƎB 'M}P+ä)ñ#"[wtx)xk"hM" 4/U=_`pWTl~9g`x8yh-&.R]eR+ڶ~څr}A81$lSe}:q,Z*_GPIG܉KEw|gNA,txX#lDƤbڂ(d!51out57Ip#2M]Cί}Y,ް{vBh2 }1vn`G1txD{^ #®v ՝!(lҧ;$J v +?^=GQJWoyeN@3 Ͼފ '* 3װ0z8 i4Kp?:7 / =S F8zfjr,\CZ7Fhס7p->{'Ƽ,\) ¥V{kcXܙ{FLx9>КaՔ]x}!;]w`O }MzyGU+qdD`Y1~qz.or_:4"oǣU()v,Ѳs۩:`9 瞑oBO;׼_>KsyޫsEXz>tn 5p=* 6.ŊސO Xϱ)q1pM?{&:==w3 ?iE*,)/OZ.=o$enl5sU /afň!01]S6N̛V.BMf/ba_ƐA0zRi<ੑM Q([׿: ,GcGjcָs*,@dVCJ[ٿb+u1 !W?X%tG"xE?I)rv!>$'|rhx}SYyegvJ0i$A&9v^mΜ9֭[#xJ8)J>f)焟{e%r9By/Z}%Qi6yHW9ėj%EQBt2{\nE': $[S߇5>9-Kp9Gwa%AQ"XΎOM0`C4gx\(Vl^_/0KT!9?y:!~ x#g{׃y_L!)H,1swI D!\Qz%gB\=ǜs 4 ;Q!e# _ΎFQ"9V. BA#۟E 01ƚ[p% x`ta+M'A7IK,*3~a"FQbX~"(]L!#F|V16.S);0N~]Y ĉA ^Fxt\cC>ءD .cʄ[LB^6-$LHw&[ؿ+QW&FCfpL-Kq!,ڸWcQ[0w|HLn&a!p شKL>F+fB$~!_h WFQbWnU~^O(1߫˝xû|$V37tMM?Wd1l$dy\c ycBn.^y7FƊCAg`+M7 Squ<1T1`颅Xz6 y 1_A%Ó_$\Y2+ jlt:l)m<],-|7kcath,@bdBT\u±Рq[!ҞL"t%F铕W $(1y 'UP$|" #֡Y!6X\#F-`-4j']3K-}6sVu%W# a*(/ +B=#ѨZNK7Ru!2 'i'u5nH֙,\K `8ke`kswR\~ Ĉǵ(~~$(4DEQ$Mp_k`9ŭa4`G9l0&?^dT Gd>"44 QM⁔;Bc!V,VFR\ K*pr76|EIA%W>P^Miül"$,ĉ(+^k"F=[A}?kHν&a0s<ʆ,U dUv_7 4,^D !лP k16̝W,@ϸmuXeȺIAh yE< b%SB9"vtt9֟ RttybK~n,sΡo߾%I*!*ߥbJK=+ٲ%%.ʈY8Y J3c$F c. gFz#"I . M=qH$8N \OU# 0(FA<멅A" qF  نAAO}7$ 0♤8g~A^L1G FAhD FAA v xnxbHAA|8n޼YСC8rT  G@?v•+W-_wQ0vXkmڴAJЫW/4nʳ%;a*Neоz k1WFFl6@& HOu/8dٙ3gԯ_?1˴5 ?lZq@¬|Y,ad: ' )IoŗL&[o={رc±plڴI~sR)v؁G>c`7CH. QA0@nG߫O>¨c0s׮]+\], 9ՊcBkУjx ƾ6UA:,1yP~ 0 jnrA#)'6l( ŋiӦƍٱxƟ4w?^X5u]ya߾}BŋQFbxx8fR{/´7e@@daQe2S sw~]gAbTMULZЌ[/"hݳϝB1╞,އ{/j!f<,XD9Pݗ;eF_KlX3,WFMØVArO5S!6&C2>X*'cv~f+fB]ExC)]GJAB;|{: zu2>\|sL1/`-sB/V y^=^)N2/]7_3L"4S9뀠c{"Hy~ v(J5Y&Xmdk3R(&#Ox$qE#y ~>E(ɋ=zŋ0>ʕ+OǷc`S9]^]Ϸmœr$_AeN᪖9O6@|>xS|{FWyy8sX'į~ƨaW_cv 4|9d}>]Sl&w/[k>ė2GNp,] |-olƳ9C>+'c3B&|=?ju.-΅uuUwn)bɺ QPo$󯋫gT^2B{qxT [ >*f'Vڍ}G݈_r{~]anD[] ɡV(& A#NQc$ի???Ba>>>SNe{ejbq&srKM[)xdEȰqm uzsVS5I+BS֭ t33&^Go]Tp>"wF쵤)roq'TЧ/WO8~ GСeL.wOC>+G߱<'!r{tpѶQ`{VDŀphl[T@T{PyK(*/deѠ1:o1Ym߇vB8n]s>#J 5Y@]D_LU8g+x,`f=X \ң<CEL(jcrC2)得^r3 9lėEBˈf@[ z!@i@U3-+Nm0]ߟ M w32ŁX OKéG=*}W)cfm"n/A8&RWǟ2żO(a-s=#9w^%?=H"")g_׬z6Mxu.w;Cw75䤿ALlLLU~5_:h45 (}/2QٴnPҕ4Dڟ1c%xq_Sw9ܗS8-y{;b8vr¿oRPicnj+i pwȿy>dn>Pqf@u}{.\yW{ɑEtOšXIO3s;uCFg ۆ 1&١s6ngox#6]+(3c/bp??:;N܅&А 0SZ*nS =(>ꁷ?لukWaր:/:|;48• >?B ?zȿDԽ>"vYbxwT,\T ^x $Wc ` q uc2߉^Y]|W!&D DQ `ԅ; mC!AcUhԪ. EhEXހ5+cL"g(^h1^b|?B-=:¯`SnͱAGM벾U1|?Cr fYQ CAɧ}A=;9fF<›e \}wT\D{/(i(tE֘Iy*cԼX9-t+D+pRE<_nN HH_QS^LBsd H"buӶUjPz2ryhG|}#=Xad2 !<aێ8q3& Gѯ 4Q7/) sX1f oԿdB ?Rƭ |FwތksJ%ɞWMVB}d#O4U;୹\zOf`,Hc=QY-B=$}>h6;Z&B*J阩h@.^ F#r/܋ a  HAA^>AQH%ǏcHݻw1a9ZB=P|yt/RZ2IŁ/w=m\C)Rj|A O?}]B޽;Z뎰%PlIO,bR&W?~j/jA ŋ/TyFǎQtiL][76,Z5}K.[EiytR"`V9ahx fi#yxEX+cɘ?'m:L>X^ ~Lv1I0WO;f{N{"AQl~ ²E9;6re˖9-J8pn+|nԼZFՠb?ܠЪm[6Pر ox_iD'ﯙ̊WZwAfЦM}?.G& TJ VAT  Wn% *j" rG_r58]{5oaC .9c b,`%ުUXvagwAZm•a: ;ל.\@9OEH9/@*Glb';wy  7ZA$'ʕ+'8]]x 1| *KBIk4amЧ%-5\*%ۣ"q"W< UtRg:qiyʍKH!^|4|=}qS"Y2'$2h4/%KgD1ܱf~\]XT Tӗa҉dfy@_) AQ|Pd )}v?999XTTƏC o;vqmQ}]UVa( R!W9=D'p T DFѬED%&b `y.G…KWg>(&E$Ɓ@}5TAM7cqn4hx .]8KEz-$RȇӞ={[1Q/OdbtApwQc{0^iXͻ_ gvT޸z'VHWKێ$r.vZ9m;/]&:n|Y0w߹s}LNJ[L|Y*x=#'cӡ.{1y?w; />YVX,ai2!B}: !aY.Ļ |w)ٳlVr^w$?ȵس,\G_`0o{r[О'`ADI`Y %KKأ;޿͟@J--_Nhت3)z=AAH=G@>~X\^d}G^DAC  HAA#  HAA#  HAA 5뼈ZJT*a +|[`h=rk"):ݥ97o>|dAѢ-VFSlذ mrwnrߺ‰? zuz],Ie Zu)`q-o݀[`ߟ2AQ,c_ߺ9_i6t+Vun%*Dz#"+d (xH!6\Xw_= _Q?o:k5b҅2. ,ΚSe>f#R)痗sd]x)5| ߿wo6y$>_ܷ6|'@"WS:hވ(,Zsj$tW(5d  c_</D%c3^! /U 1<kfABB'Dr 9'iz ub;<*aKmڶ@XL]K؋ΝP+s4r{BmW)ޟxǎD펵 ;jeʟj5݁C0}Xi-,iʼn700+0a.l";[ xUo)P ԕ(ȸ|i:#(LA+IaݸT|cԪ:Rqð0Y\ "K Ĉ1Jbf 6h)DJ|՞Q*Tʠ4Aa5?2,['Lw& 2gͮ߄ģRBJ"YVp^e A l?'~vA,dG[K@VXغoo~.7{`yΎ'm hMA  VRD%|i:|y #Uc_]Jv9l,$w MXnn0lp D.0녊PyA'Re o5|j|0 Ao4B%W4;6E& qhlyٝk$Ý5gW_|o!@_!o2LI7f#  lvPR@}kիԘ b|rX>hbxkd -p*D+ga '4J0:o g +Qۻl7p3Kavb *H U- eC %ؿswvN=zӥr0)ݰ\8 b}PZME(8߯o1 U#NWaV{ի0{Tvik_qi\r {:k.u+Pcv 1Ԩ `%W^)"& kDV7Z D TJPuG|W"'lV|d([;JrL=!S T%c<~NE 6^+ rb.O~ ]Zؼk|&$ݹLQg_^e/׾l^9z0X<{)Ş.2h/WtM|.lS$G]-؟[`{Q 5f `S^LBsd H"buӶUjeqt=tVTRЦ@)hJíbUnZ 816p,3F=.FrVBDN3>ɒ!*N|Y+'䂕DZR)IHKD\ ^^UB&wA$O]s7E5Yn !SQt<%,ܤJ]dSH2#tm2 )֜ ((@, ]a[iH2 TT<Ru,lS?OgCp-WV0>nH  H=S5 z3d dc`%\b^ @X0S!2_kШe4U`*i⻠3j7޹zHH$ `ϴ cS 5/ D0r2Vo K-E2 ČRnj?X&"$I0[ 1| bXwk:UVo% Ho3 IDATzPNKDA +xl#"]ȚH\ 3 H0݁!>Z&iID•H:ybR֭ e0TR/DL0 GX͚- x:8`X9  '&K"vr )hL6xPETN:4D"+s: b-33Tub Ǝ I!>N2 2޿ dtj\AD,`oČÞu8j1[Ѕ,2JV"#Y"ؤ ɨ}4ɐxYaI` jBn ],dkl Ѩ)9)R3rSq}Z΢q2`T'\E (6(FHVxڎ(]Y^Nvؘ DXXT+5|Ш;4Ax2#' :YQ'"\fȀJ]D7ꙸàc1bpObl)XݓxYl"wjADAG,^JӒ-3{R=TxD'^eHK3OҒa#MS`i:[رyLR 7/R X8ΟOcY7w0ۀ>f-:RW\ QRi;bV{voC!1~kAA,_|'ˮ }z $vB.o"WAd` >hF펌 : 6Ȭjxը儾o!R﹃rL/,--ti(9aw4D0Ȉa^݊ "t+!dT}]Wt2ѶK8|Xm*f1N؃V-;Bפ nc!TB'SʬhZOEbs.|MrͅZկݧo'2MݴD‚!wrj#.5"=JA)[N[R\bn]EHjpBrscAc:&gIHRT)7#%U3'*5%혈aT-stete lA&te'+khP,fK0}[UK}|YUʹcMBYs_:pW n!siK`8aV  5#x48wA"(USrgǦ!AjBĈDiV#xBB#ZT&崔|5)!S2㊱ReleqD<*Zҹ Az " `7QQziXN5_ߣA6%+ku^ǖ+J#8;G`%j$E~.n9R3oB̰ H #Fr%fOe i"95j `XE+δ] lHęSH3pJ$߉7%SBm~Pr"0 Q('nbXK9+hMG:W RAE҆ySawKuܵ,KFŢlV+[z xkJvXv2"bhuf4!b%)pRB wwwA9| 7A` ]I<*]crrǹĿ/>_.""ϑ/AY9R9[=%U΅Iwزu{c\ɞK8c`CNEABwtC_ܼE*4?"\)nE>RU b2ƭvf+R&j!q+6eC@5 Iz W^ùb3zy@R(F!4n  H=Qx+P Y=qW:;lb!H9}=_c7"w1H|ѭH6g1 rbLR $rĨDHHOG{#a^hQ49ŗ" $]<0rڲj=Tc -'QZ&.X,&lzܽwF@2j\BZ8 xzXcjQyTc5 2>q"Jk0 2=wcuRF6 6v &2T Aj5 .>/V/_APŊ&)yz=!!!l6 B-x]2>!|wyAA<}uA @p1.TXs,u>T/1qXT«p$57\,~$ RXQDC0#g^?繊lݔv7OHAψ+HP=a+f?dpmY5RAaQ 7w#=;U5 M، ]I/F텗Õg0rTjYv 63VoF E496#%  F<ݤDXl ּ;ԕ7a w⌸x+|i-Dn(y}L| xV 7/+q'~Oiyk1/ ⹅ VMڥ[ w7!FCYԨP jd=h \аI;a,Ephe͜|aϋol: z.DXo5',Br>.ny;ۋ$Wk\"lYlz [ᲗSK# H=ebI܊0wz Uض ,\9q\&1c%%*?~Jʟ xxbgᱏ(O *F/ ߈GŒ7oMx1cXaG^=A<9Oy~OO7;&Ad\eѰ~b .KPӧ x`c^LBo_b(+9s;snSzBjeG9#9:u$ lY L&"""п<AOXTV#d䒅Kf.ٲ_cZlұ:sqßWX|_zpE~OqF (>XBԣ0AAoL5UuOfzN&$bH7BXA^`T"</=–Ȣ,^d7Dxɮ@wBI,]uT35gj鮪>שRD7!B^kPe=%BOǨy+B!BJ:BeB-)SȺ5ўE! ^(WQ!l.i^#hBIlE D67B!C+2B!TO^S!>(`An +B!z+&HB!PJ./y`~I#BHM n?gi^B!$)5j`'BI=uj^ !\*\QPDܚ!1B!P*.`xޣߞ~9-K#`B.F}ʘ"exQ!R3Tּ&{b#!B/`^"Vzs~"B![&@(Zab18EzZVMU)qb^f`^HPvag%'2*߬}McB∪d2_:CW~+ 9b~/d́ 6\%Zr ɒZL)e~7 =Cy)>K u7B!aj'b՚XKLeM͗J=gu !k4IVjECT>%wBj"E%irZnQ2d!L\[ *O-8GļFÛ: &4!]OIizU3G əyj_t}#,VM_:t4TmL]Y6~/# ]I4V"IPqjrtS,߫Z09'O/B sP&ɒ]~X MS$_f-sC"5u$QWM#kaWDJGYIYҊ*˭0sJJ9=ɮ0\<9IH :TqUk^ti_%(ǐqcSIV̩/A9%˒2GPRmaw1+UT@aCHtFqC F c%[8DJ[]nHH{7qmIn2T*Ya 5ȁR朘><y\܌wpƏ6}@l6k4 qwG&@{ %سb}+bD q{N=T466&Ǐ}w5:|qy $I 8-phSjWc Xm;bupfpRB/k9(8Tg'PvMvXȗ,Y FK*`N͒r"z( ,7cJട=Ck]Ź] :֟N^u~>5%g%KO{!,m)];<oѣGVD4ъ=X\|dŧY tyu8gt[~jײE:W.cv}\"˪H7i}]ȮFِ ;/؇"$`av1iՄ9&WVw]* iX~dςaŢ+p砣q̠rn,]xVz*6PoN8jfqZ#&: Ck~]Gc}.H/A,qw~)6l`" i83qF~r~x9/l-kN9UqE91.w܌g>аnu)wT|NuC4!3iw߀C w/i.,~~{ۈ7ZM@ÎFt߀Zq+9F\L}L}-$ UYץ Z/csmgnN0.J:is+a߆aUݲB{ ]ND~t#c)͎7t!=.C||݀BH@t5bD:::`b[֯_.QDhwGX"%}B8Egq8c9ƺDΜض$еi,Qwl%=SIDATpx7* sϞ +܀?rr!vם}R?'ql26w?~? ,8>,/VzupܞMhN񫛱K͘>Ӛ=O`0謹␹bIZs^1HM cz 4 .i^G0C,. ,7l6xL͇/<7/슇qխ&|| I^zKB}ߍC'.E!@!@/&P!d~h.e<4!VqI'=أ$LlV3TKa\\Nu_AgLāxL:LHem5_5L~-{;Ο w;=W[sLEL رuyd4m dtW49:vd؜J ucw ]YlPVHYr5O>X@/:_ $a6AIKla9g btXֽ ]0Tд5O3'w'O"]$܋ M~/,((#Q :Y:u>h]LN0 ZfGY؜p 80w\# &P&K žDوy?s\pA蒙UXC pc5_ڦTjۖ?Uh_j0ove>!4=6m,ޑ9 ǃNX>]/ 3~ C{k'2ûQ0M :,E,:s=.wFrU\]~$pp1;i-*t)ySP=*.'b}gx 4~8d9_⾮}pvZ^u]oU΀| wm7^XQwyx/DÉ'ht+dK܍.Μ9UHQ0b%rDLtq-%HofET&cabeXNlsyZE탓pѵc*ڞ;3`=P1{Co},\0R='p. X%y}{u=Z0H:mcU4hX?˖nazA~s6hZѼ$BukB ZӲ߲2k9ok[[Yl> j8ÚqG6a~cpOA~ #sƙ*m++KpV3qJB%Ft8Zd뭷6zbS Eo[#^t5!"OonC|N?tFTLșl[la(Ct*U&(e"YDk$M郰7/Dd7`+ѦlYf !/_6܏۞^e$Z?7l?eÝãKڝEk=UP+i\˱853Ƥʿ7 3܍bôn-չl-ڕ5bغ1M 3Hs>HܬhϗVϿt!s&V7)wEFv")8fdiy嵥k3puS*Zp"IȂ{U!/Kg1:yyQꫯ裏6#[}!FQѬs=Kܨ INM/'+2ak03qi=w>>w;-ÿo LgxZ#`vfg/ K1}ɘ0qZ3rSGj)4n #^3w={P7`ݏe?> >__sl!Xz {EP1%,?rZNeT-}}c-L^!U6jEF$xb MD&Nh2dHٷG$>Ӽ.#F#zøEBvDK4E/Y\oNf~!gb[DdaJSy(jU)4)j9dN_t*?~c1Mb:ZwtRZYN8l9j<@-b]뒗>׿]>Ac'=,KcV[Iw@۲ݕ%~#'!381:`;-_kOWC[A{ 5nd2k0庥o_L˗HvzZr-' t%a~Ê)#eV2a A*^~L^fbR(X)FD>1vX#%ø=ѿV18U4CH|!cVd_C=Ԑ0&w;d<S4Slf!^".2 \#״uZXGüi^$nWY YJBfƌx86%m [(0 X'J*!tA%InRlDAi A%TfrT^v*!`aF.'Ѳ{o׿TU&gk4w.sS$$Z(e* tZu]z'`,i+U‚J<ț&mt:k-5 I2;.IetF]JEc.R9?rJtץJ XX`M "YAKaV 3Idɯ ]iV$$QN`?5Q"N_Qv|uмu!vVqnNaء~3%'-,* CDbEC&'Փw?*0tDR,Wt(XpDKȗ(O;;\%Xt`AđyYrUׯcӰDžթj=`;cA~Lɯ{VsG+!ēBG3ѻ#Vѣ\;bz,˯CH]Aͅ85:&/>YI[ y ~3GH_R=u@l.G|G7yKɧt<BIx9MK\N,O$ zUV-A_9N !$ 9_e1),%IGJ$ADbNWmkyBHrE r7T +e^r9my,'f>BNbqw{:fD9tCX9wyvyR,%'ZXQ6 !xmuJ\fU XNJpGjn_+ͷ,B5?D^cXpJğw0 bQWw7*q:*||P_FtF!*oלb +VN C";WP=I}pYs7F!pΙ$,X)ucIryt/;tCP}[kkN%R1Bzeŵ\hWT˳(e>EYUl'b?PΖ}w] !$>JZ>쫟}7fll`N͓n].TJu\}i%V4 . ua>믟49>K!TI^#1jZl o#c)+57Y$P=y7Fe8t'eN\}ns;^")u+ TgF1 k,R:W$zG(]J]hu*?D3]oC1gonr4V}ScI'RB[Y͋ţx#`V%GT'BHHr,bܮ$d-G:dXUE^rżv]RWv,^;uܧjB<,u@>4A}S4JC/t JLVaJ_(z77jk;ѣDBjA,Owg'JrtD꽗g=zˣV/TQQTډݲBH ;$cNQ-ͣĕ](`ܞZ0'9r0/ҥl5!f=ngtyU(` HR<&j0]ڋZX!Pjq"p)>RK2'7ņHUp1Q/B CdܢSnm#F an"zcB~{̙w                                           ٍ2H 9Icm  ™xcFoA!/(!`dH g2"؆ AAF  AF|oAaSds_d BdfS avAadfS™:xgygM #O&ڔVddf KA-dΤ7a,LgA!K ;hci# $F Ѷ'?ykGAxo5sJWA2ttq%ӠsIeے& c^<ƅr{2>A!tV7&A<琊D ɐ"%E&jl~A3\2R2Q![L_##}}AƆdDHXtvq`τ>d/0M豆cS&a6enU*=V9AJG-rFlJ|Jx[lA`SQ",[ޱ_c%2i ,ıbgˆzHsҕ땭+ ɴGܲL\"d;K;$Rw$+I> %yVM!",l_^$E&_ L&yR%b:؎lőpO 0\5]9DX&أ!F[xBJ 0bc$hظa6(gJ NݱlSL&*x\lA ^4YQl}&OW B-!1lK|[ŭRN& $R%%I 0|9JU~ƋLJ|%J KPK~ BzHǽBX V7l܋L)$=#ilí(r} d+G2k0Ñ &􉯑G,Q[ٖLdȄkD! 񕊤x[Y0",tw*b,աɑAƞTp*b*;F[l4WT*"T9ԶAƎ_eY+6h#Vѯ4wDjAaC02k1Da)F߈66oP"*}'{xe- #',9]"3#9^}+j[*1c5V1YĶxe- 'W2u*OVTʃT3"E#8b2k$6+|$Ac4JFD{"HÔc<#XG")FLxA,霭HHqc> -2 ,SWz '6R6R0A"?QjWFxuaORQD@< D2xdmʇ[OAH/#~+O6A>VD=Z&CDfɊ Ef (zJų'޶d+O ~FJ6h^W<5T(r(o[,{,m?l2Y,-=+n=A!=u$ŒGoKDl-6.X_#JV|E{V90 (,1Ʋ38d$6AؤrNW,V`:}C@'p h"(Ke>XFz2U56;>rW]骂uA!1L==c__U0{FSe2t"ׄ؊o~?mpn!G{uAa`TkIQΜ?oyNž0 q$< Mxχ,c-XxcnE׉{GdO`Aa|ʱ1,oE"&=`eC ^l%pWgzp9d =^JT[ؖ^L` 'o{" ;tSŽ ™nN}lXɈDCɐQl4X*œC x=51VW܇AHt݄ScPad>XWcTL5XdyߣOÔ&AH_dxQ!cB F. I,y =|FuF 06D:(DX^xc%\l`ь$]@O i~͈pPRV"ˮ )7_L'Fy`JT@ 7Ѥ[%z&"FP^xd -c~/v>kd8V@yŔ6G3?kET2|%.#kiuK4>Py_X*t=Dks._́ZڤT;T=n^ O 6{)wQPE +IDŽH E&HMhp2r:;(/0U=}^>Ô 0L0M S4 (TUQPTU@QPU{k<Sz 7FT'Vb~zL` ?5Xb'GU q>/dBD< ^of ꌗ!_i`&:M с ˕+/gsϧdB% bfS9`HWWUo^h26g,,WV2 %ކJ$|_Aww'e%89wd9t;A~ėaa᥇hknfú8Qu&ryK(-+,]4;ƑGΘko M/"<`9,?HF,ZXMe,z*O ө\[M3,]AUn=Šqy豧vd",6j, E9pdtWyaHR%ƆS/-Kzym;MtE:!Lq[ϣˏad N4־!111p1 p$յu[&6dŗ tty(2='wc$MqwQ^^ĥ3^ p2,VP 59;Hߘ'el>fFu%C& zŒ'jjX0 ΘI|iSDV ioi 0 B4r~?C5@bIۛ1MhPMjJYt./>&QZ^.EXL`E2ޮXK*JT:e3#Wo~vf&LPhxhວQPT,ż%˨ti3HpiYa`}/BcbCzP(c,^&Lkg/;M_wNE"Urp򿢅Wx3+K4LI*WZXziɄK=v,n7VF^^>^o({+R.].`< f`(&ҟ!]/j:nw7cwpz5T[X<Z[pB7XlziE'Qsg~֦&TNFU^> v%3}b/r'TBuGԣX3X& !ќ躱z@/H;6hz<ܱEK/"''76%x捻E [jUP-ϚIN01Uyn`*{%L {B.{`)eEW1#<նq .…Xc}. AH5}^WuC3 .CULf-t՝bcbE 9Vm8CA\9lycE9QU+`ַSP2Áx q/0d&u*#e\x12M &HYGHXuxalVc6;][Yv᪤LNŤ_x8~21!ΑDZZMf0U \WbK䋿G\Z%|lq1ǺhzY.L椗Xi}IRTcbbaBz-&Lb;xx^T;a8s~P-hW &5TXM(/͡Ŋ!==nֿ2>oK{u@$ICybz 1'X<≥0Sn#ѐYf#֖1LOn&׹o4~/~ʉB07w^z 0V^mһ5B βJ5: zqsqY^7;vt`jv+xku.67xedHq 0]9GispQO䬥8rr9JH(,-BCC6 UoRҊMUi9y Zkj%ij@7B%ہCaa!طo/{%9Nz{MT /Vdd1^X`D.a5&-lB9PޭxBþ/bH7 W5ja jLa rWeS F^T_o`®[b'Sb&hMO?#;xx &Jouf(*lm+pw4<: -zx;iowSb(%/n?'L&09^b{_jЪC5w^}b,ZghM >̜uI0P|E\u2Z)ɤd_Co蜯ùɿ~|LӤ-?ϲ嫰;sn39yxztSTRF(S4)` So-v(\:tӰ8sRvys{MSPUSSa5W+Y͌Z q^kmNK1Z0hohAB?a`  8JJqTL#85 [NEijuҸw'yNos9j-Quh:ͭinrd[RmgG,nXƄ'3Ic(-Y#ը:۸wzݔރ =I6AgWEUs 8ZW-伻6EQ}=mF7Q,xX`OSs9&{㺻VPdWQt/G60?ԕgO )2RbFS4Xxk9(/._0բ L,,dS+fwASdvU\.fXxmUpt p8q8Нch#:Ya$^qXDBCՉޞLhrut9<LCnUaѓ]tnJS4AUhj 'ğcT;F=UTE6ztggۻZ\AL*(( xs MB ~ |~.:{&Q E1hsVy\^}3]xrA O fP Lㅗ_csR`hDB -Dܨ l%~Lžü!`׾e~t`&FQq-MuLDUh/X W)ARi3UUu6ճYtt0s v{TR¾ogcSvshPT3r۰0Fg' n&Qj(YὄB-ycL%JLվGdۍ`3Q1dVtpO[[ %% %kuR!1EUQ5 cO2m\Ld[oaX; Հ`^)`jt?OǢ:LaeVjw]fjIӾoVVSњek_DB C4?dKDÓlKm7I?[עuEŕO{k^O7v@@G}Ӈim+ o `HTUMRPTȕׯ j,R 2{J9WSb1qou=t3).xyV|4wߌz%^z(EX$x+zH<[!!XѡD퇓7Ì@f̥rg`ޘ\alA2whX4 VI%E|A+(+ͣ"Pʑ'ș;ןlBU7\Kw[ lb;|JWj(X_KXۉmCzl B?8`bn]`f~P B|Qfja&qX-<'ZSfw~ /wi]u;\;?ҹS8klv'V E=f}{%TQRFȨ>GkJ&=LD0LtݤfNv7Ro!0A҉Y`œSPس)9Pp2f=rnHW`ʬY^@,(>9H%B;c~i'BUDORL!݉III)c hک%_4P`PTrFMUՅ &8rrp29L3VVՆi,&޸:0$Ƽ3A%(6s+qnra,<6-.vPz] O XP,*i FQq) =4‹(},h  ՊE=_fY` z IDATU>:_D\FmDDT՟ B8V&Oα,]\=#4M0G {T UAU5,+BuL 75,4Ղihj,;푢,pNV >U%K33_7 rP^9v9qQ&O7/BcbzUEC(fZ1 u * *(aB_kvE؟ИUw\-)1A%7vFv{d鲱6%. n &}#qAώTJ'i5VAq$"HN,E\ BTO>:ޱ6A!KPX1#b!Xdi(r$&c8 Ś)9 e(AaC#_Չ$H&?6𢠂 pƑkd2D` O1N9) g*iO4!TÑ;f(3D g`>e,Ѩ;,V"_PRi„$A9 mCCKt} u/$  KF2Br@l$ BHx>dmAq#?(t\IlMٖ/ Bƒ sTͦuԱ6 $%dQTX B&1X9%;?L`L4Q0DAAcNl`!V}g՛* cH*q?Gh3鱂  !(7o] $2L9\n=fP)g) d>=^FDQ^тk(2A!HΥ#lYK%D{nƀѨ:௢(A2ҬZ3)l0GUJMi:P@ @ zx<<^^(Bm6F˳|j*V<Яn&ؔNA#/ʣ/X!Bjq5() 0 t]' P4mrc9(,: ?E8XV4MCU~7,]&;vD5!E0sQ8akϱL++B9F혩"m,B:=_s8{"&݆z !?8MMUԝxNRQP͜א_ՊbAӴaJ8i=>^~&skQz[ݼ5Z"rgnlgffۅ3E!H΄յ T =1#XP&i^`Çkd֬y,6Z#ӿCmŞsc.م,._@cז{X5Ln>?p: ZaU(PÀy_)ƽ~yxJlVU>} t&={3~So^̧~Ư~V?L;Xoy|{3k?˪ `ҕ~ g&7tL\x.BΥ.װq-Lmm_Btݤv8silW y(ȵ겕0a[8g 5xOKKK^oL=䠵ÂYB@8g;f(DC+Wb/(%V4XWe[ii_Ҹh qk{Y`Ų%T8 lټMPVs?ߘ1y.-~&| g?}3kᶻ/A<{ȟ(MTBu>Ѽʏ:G,gza6_{;&a74* p{oCg4oxOoß2z ;< l>ؙ?>tGӀ5OWq_y*fmMCyA.:*]TL <^v{-[:Vɲ.۽[N )4tNof'\T-i{)p9TN G>AB,v'&M$/A][7-'`W1}sBkI/;Ss!Z=u +PQUR1~ `L6M2]?s%(d/{$Nph5̜jj%U8;fg{`%OtYBIt} bz_~Mr7i6\96rpyWKsFN㜥擼_OfO4',b;Isχ&G1k$7>xn^؋eQ{g(>:|+J ,Z"EO'M6#ұYh*hzX-45+$؝@8-qŹKQx,| ] I 4vBY?<=: 9bY"iaA||[},uk7`yR>ui!Vu@^^n>`Uߦ*`چܯ[.`Cx8]B6& ît!oP+i%].f[-F6{O~ReLΨxaJE p 9 +NyRycq/hnBc7Ǐ B~:D^^ ,D&&&Gцw!P(ԟKf&(*w1g^-~С'O~+S桽?wIX >KoX Zk}_+?Irqgxٓ ;h%s i)jq\n:Ys=&rUWr).M\tք6N0#T++/5&eO(~V b#}  SX혆B6 fK.W_ VP4Pt{ik>sv:Ó/] [^W_7гq`0oD_D.\%ˮ䥍p['qLL-H!=0.g/X=^{943*lBYpE_sW_y oz X-rblEe\vjݴ%\N! LNԞ 4o֠¢n;aAdΝφ]Xnf/X"^|J7]PcGy)UXvrldodtwbNs3c9<A,E: NxoQH}ef)_⼎Wȶ&XIT'x<477|ۃ a&!#YJ~KGf,}/ ]ݙatuE1U4UEUt i#Vʹy3x=l~/QYV@啗d= $3f*݈K#}_MMM./dY,? ݞ :Q 9o5*P[sgRX\զPrU׽͢MTbz W 0d+*KuCij6EQz^L1(,p e 4BzzɡyS {O`h*@WgJ!lZ;'M~3}MbOAAHc1#2}޷eWDπSL\N`e"Tz2ubN6܂0 +VJ(!T0b[Q4Ьmm~:;L,gF!@.=,dLH C ؒlUmc8u/Cu51L}Ȟ x[z~kZhha['ksx-^JK-8v:~ MnHw2ֶc/A!$H0l.2EXQMϹŎiKBZP E1qL*W7 ]6n;{8z r옦BĪ13K8U9'ġ#ͧ A!#89r'P9yonE1-K8p07.Y(|_`:Ypfxgyרo젭#G H~g(m/g I[[t3_<r vd}j0t"&d1Q+iMϞwPCO>|&L`ynm< (Mؽk=G3)+[TL(FNhj0ضOuԁ'7ʹF8_Ū7mkVq՗w]/|U;O `̗ܿ^!VooOxG@uOu>zZ^wg cᛖN5~=t?.=0X9byă|ka8X:xo>ÿ>x Vz\Gw8ȏwܤoa2n T$Fr:wQ͹ܼr Smz )*šndYFV~[G(h?vcZ)VƂ y`1|/I.= ! >GE|cFC<_WYëg9gqǧ)S @ /OĞ&{0]Bk,řvņneW>>wC3LgXXy$d8ex ׷/ek܍B ,'&xӰXmx=ʊK>JWWyyyح*BAWNv>ςE8rLt\6 lحo9{gҮ?#q,JgYϹYr"B']_KÃg $m_{~'|S4c1EUʗ3S`&︌CEST;f'3o(f8uiAIcLQuYwo]ȦODZ;GI3gO>#X1?|h zypT;xlb&y}ܣ'\aov{፯}Go?~$`;~Nf_Ɗgƶ?餾.>6 Ï2)a[cX++_A߭7]Ot=Ry۟xsV/k?ɵgxV2"ϑm-7?Iǽ '6ƿu.\$PT?|q/M|sWQis }vbտ_o0HxDwss/~L9ǻVk+(ZE/uhژsSn6z}Kqqp#w>7`vnwB_~_Y?;/Xg~z]3"Ձza5L !EQPUM8%>x=]tt4A~~%LNԴRMCo-#Rg2uj .-d2yBv}'҄Z9Y#tE_xf;խl2DV)b3 xe\߽M`9/Ώ;ۧ`vu}lhɪˮb~i3SŖ\<ՆN/< {x~~?xW3ٙ)ζG{y+˯bB?{Xq"49)o?~"۹G/3sGmOG)Dj1?U>_ cwo ۇãO<#? 9ǿ_ݿ\z㯹ge*Þǿ -t>ulx~ݿax쉿ZI]oZ,;n;^_v;츜\6I?hO>} $99Dۍ$(߸):~*GNR62E+\:LJ*`X"D-:w0 R'CX IDATUdRBeQW4NfVO#7ӂUI~گf+|ܗC gOndˑ<_Ĥ+W:+4~o7_¢jazeDG+lӰ~ުÇEXDl2U2U~uoظbZČ| 'ϟ@z1J~]KvD?*㖥([ˍs _d:޳ )WyuIB$z1#_[seDzEEEsS>/Pr3ڎj_{/,gzzt;$ TN'.ϓ>wݸ<\pqUKs8ԵWCm}o*>)VD/lnX3J|L%5Y{b)*M= ?PB6!!4j/(x!vlMQa%yx<&!]EQtc\p_ϻoZԻ}-穯}i9Vh褣2pny ?Ci*~ַŐh{l~[?6XG_ nW͒ul\w tEi9ؽt镄مiJg_X̟8A0%}|+Rn/\*"T}+}!r?nr>_מ||:Y>rIx6Gd@[&^*=\g9VVyyd1z]Mg;1h{Gkҫӊϵ_PJN0񺖞j Z7:~_@};@oky_%UAԍ14͎ZE#<7Hu|}O񚓹(`# =X_ǽ.6ϓAsQIA AU-s;hߢ%p>K.օ×޾_]PcPgԉ``~۞}o+-'cl87ZvtAzT:#[5`L !Fn?o~YK Xq-Ndm eeqaX;[E,Y< ȡMeSs-+a >:c5,S~8 yo-Sx:n+U!R(Ewl~;{'oŶQMÝzN d!D ̳| y"esO H!J I:IwݷtUjU9ބhgڻvMU.|#GqSOxTxxK O|=^z3$ {/z<^|cx7 8qFj?Ëx_.)ވ~ktoOlr}0ٕ#['\vakq&մZڏk,ea*NZf-/{=~+^<8q0n=Os7qJC,g;eo3/K=F=I^Mۊ[gu7M)wm>1xc4i*:`pXn l֎ZpގO^Q|ex}pǻ1 y ]7ѡ35n8Q\0 pW\q=x@!cIwW~0?9*»epx 眻g}&O}ٻ^|vF ck|p/@G׻ 1`wo'qʥĞ)l x?A8eq{Ç^KO_UX>rS N79aC牡dx7~U^_2~!g=47\oiX,vNo0v:K~f$0G{ O,:8?ק>R]60'lL\cp£{ W?\:~OB>9\2/X;Dգ{q֞w88?8]gj!^_+ƦmjN.7K—<f2 ظ}߿|r}7ag0z`=ܨ]{?{`p.]f~qς  DG{!ĨYW::W]QT᳟yaN A'z:tq #ϻ.T'</ zpg>? X<ꩯ9;@w ? =|1^?nz7P_pOۢ_xkgYY[Nxo#m)ϭznk8fY x:VVVp5__qo"yo/翁A`~ƮE AW_ '|2v75i|]0՝ͫ ޅ'%͵[v#5|W߿[GMt[y_A_\xmS D f)^z\a7{=lv>6J ح"3swxģ`uyΩ8ci9h8eN,an\o] K7\7\ƙ A/׾8Į=ga~~u˓/[|,q~;vy,,,b *(((((}*R^>~ؽX_{0 vW0^ έ]@$/ ;߃p9 C B (8AޗQ>0??OA]?98 Sm~r}UUkm:'J -,,`qq;wݻgϞMvލ;wbqq z&u|*>qh0^cţ,ʴ=]=ͬK[1pEAAAB34A֢D籸;v$2v܉;v`qqx]Or|4r#|O~_{\>gn[A]֚+x>2&yAI|q2תx wथ;U1}{t vǾXw+Ny}Vr۠.Qq+э+?Ox0cw[64t6;q.7~t^Y ?x;<|x/+ߋquc`x:/dLlVv^ _X=).n3ƷF|G5{ٿk7w Y~g,_3~/}za|g+~Ͽ#f[>3]ƿ[/;̎= O0~ԧ?qk˞\~7{Cハkf_?x՟8ʞ/_цٯG^ef^)O}O >15fxvSPYx>5l`9qsQpcFx%'Zڃ\l`)#`u ţ~{d?u&[f!nJsqIg?x{Wi,xs13ڧh9XKqsXPPpP\akN {ހ{`G3 Er `c֯:5x;?ƛ~`i `~ëha_c*5]S׸i oyxg y~6]6 [fM*_ c7v5ҪlUfOӌi̞x_|ߗq_wǂ;& +4Ul {0\;!B bY>U̝g?Tp+nK@W/{kx#^ڷw]$˫wbкMί=ϽOWs[q/Ϯô Xf&p𦕿n:kΞK0G?]y;o} B n2g.<`}Cxᳳ>u >?p)}91|Z>f$0G{ \>pk7s~sÕic1ޤ^7ӯfg1%ʿ5|s1{N}|1…{1Kf`u, l:@Fo6f3*IwC_feM6 8Vpab\|[עร(`gVPPPPPPPpQXAAAAAAAqF!`gVPPPPPPPpQXAAAAAAAqF!`%~T~/6j "9] $ǧs@L`8Cc D&~K%"2 2}C@kи&yǞ xfx`fxέ%(VM`1&Ճyx]0xnk·KY zmE* d(#źWDxc-Mc2&iDZnjc>d}Jr=MTᲱS5in19q[sG{PjΧqsL> =&I~yù-:pz髡DHwίI3v|__*Leo4\D. >F~qNcK]Lz4&߀`$(q$Q Z`u=,Tb}$p>'Ims&9"a 1!VM0Ơ*4MWR<#pq2ukK5#Q`!Ƅ# V-{\3VyXP&>=·Ìs΃<BpԅzY:C!d&jW/BnaӔ۝!}̥2䜴5jHԙ}0DDv kpd^DE,<(Qgz`ɤpc*H `d=|,N9XDrhBd"*L-Wd1Q3}vYQĕDf qQU;\rD~ʂk:TQ"9Z[l+dI!r!Q#BrW:>+DVGfKC"X[%̨FzɁ͢"T>Rhg@7R(3@d52l{&%Bp&׮;ncϓLRF$jH'[/cyS[r+2!zy"7x!9jOeLE4]JC~[ƠcdRX!^1H-LR>JMȖӨ}m}np]! Md,RWsɀ1&@V=f4kj8oDH:}^fp}3@>}iT(2V *.ϑ Jts&J:!ǫwEqdU[Z#Ŏ%uRď% LWjAcu[6 QrTGL>É[Itgxbb4Jojxi@ƧІqݤlEBZnR,asZ1N&qLL*K L|B/[}{-Q+%؉:WU!i\\ypa`)ͰUs@$wzC͋bEt}XE@U0јJ*dmVc,*SE-+Akkcȩ* )ae"Tғދ*UM]e=&E{0ՐFRȒ eƠWYXk{qfr&3`U J.1Qj10TbU%+6p5kI1q]q1!jJ)RU1hD!fefm{!RQK(s$ :YΙtkpJ+Rh^zKn2|gRPPMVp2@R9'd2۬NYX hI2$ʨkV`+!y!#Rb 84Q4RzBrHY086 |RryaԵ JO/ UU.Vm' !b{1YIfSY i(\EO9͢JEĊܵDXpc'1JC$*c4"&# 4M,Q,x7QOU#s E|$G^rmSjcXwIqTYkDB)GygGt5S+((V07^!KJsG 1Y ]yRVX} $GbZ+*S+?i_R5LaU&!yƄxQ鹉Đ=s^V;4Ab u4~Z zJQbۼG]^k I *ZI".Ɣ+s8z$DR eZ4S !zYTUkmK{ u݄|qV6Ȇ-e*I֛NPF)IyaUE۷p&aMY])+m]Lr߉:+fZ]E#J}LDƱ+((B ic< Yl8198  sͷ\Hl&t wpbL $VՉάU g0By!+|TD8 JXHclDUT@ ${"G`8е*G0[I䵞FAR[BʱLQ$CvsM\U.VjXE~L}=jϨlPIJ6,a\a (VY2 )j}vnH@_ԑ܃M\Kzux LH5xHHr?Yq1S%:ehrѱT^1ZB<Ը_b-L4)ڱ!'1+`MpABV02e&WE<$jG,1[Q#gbVQL+f1>BtyUbM0$=A &r=L8K J[^p&i,H z|LSI]!D"!c}/ W1=A:׳5qMΫF)I[8GǬTqj_:'=Fq^`* + qcq&rpoۘNC/bY%Dzȗēh3m 1!IMhwBE  )YEAV^z!aɌU !6 .N)bsN*ϙ"*>unD{2c,,cXMnټ3@JhO (JZ-cG%(FtprO:7&O`9w9/qF87Y3&oo}؉x i*E u`< s#ܮ#j;Ix7+r}|ԟ84$/u>R &QXT$c`ZwQ O2ymgsj)H !%mMƙFbI@ MTü3 1ތe̚YMIf%ʟ!\V]mf PoSʕ&ƒ^Ua<1\iqIgKH՜>ɠryq KM6F$0|eH9`pI>G{F&)4&[-57>Bt1F=7I: )>MK83{ ~lSd2n?#S!bܦ$LcB}^AAF!`3)k a\Rɂ2]i?ڭb(( H 1GX[_S'6V4F]%# W$V@/K8]&(Ƣc1ZFÊ=!(_ YBfp.dpq%1M&^?3qȮJ !D_$X@ȣĴte 5R降di óIn_pN*K,2kP$SF8w~|d\CWDd!DR[ dHm%]%a?ؔpMHf$,u{u~lLx%r$#8SE,1DaVQ5cR¶A>EeL!J%["S 2$Lb}A2@4Dŝ-h’Ȅ@z'1ey8{_+$%0cLaTda &1NՉKT:dE3)o Ih^j҄g@ڋPImkkD Wp8" & H< l{n^}Iɡx}+q`7CتĿ4A;-Rm[0pi@fh*PPP + Z -;0dS,^}?# Pv ӫ 3zf8.Hf{!E֦S:"ت&+ʄDh(2H"ΑUH"aʢ-CUxndͺ)i4j aG5|&TA] ށtQjvMq#CazCnr*:?C T%ySE#EؼVD  'T՗Yy>*ϨkZkJW7,;"H \>~R:sl@岭T者n5 fHq/1^.[l @pbh$ۺ U,K vwB=uZ 5IEj db}%B\O3!eR`Cigy3GPܢqKǔ-A#2Z0!{4%sp}E]afn [EjE0_QIL`(DҤ5֜h " Ebz^vJRId$-W9Ϙr]*B-} &hhW9bއ0k660㺉*ZV#%Ms5Ɔ)Z)Md 5`zw|t+&)bd5^2Ф(cPƠilܻ'=B ۓ!QV۠8$Oͼ) $n Fv X'i&.ybVqq|l̲&b>  }8i5h Hs39΍Gq.Efs|QXTXK1rP)#-v!,} \[#TH8g"HL:` d!TNJtNtW @P85bۓ*9ԄYiF*d)D^xOR"cA2b?^c q ?IMdMM1F(}-#ȹϕ'}}>S|f;NcFs;NH#Obk|LjGUS3=dݏd fXTVRĀ0~ՠI!]JC6E|E.ҍOY(V0nAR&`@X$U.M?_p2ODZ+d",* FS : 94N2Fb0ybQ#8u[LeS+aиoaE*Zc }80j~ڷ'54ժtXLT䂂PXLK ىA&@nQ}/,>rOT!dV̴H@ڣV7@]^R (oCqm!ȥ9|N 1C6s׿ӱ[Ѥ\X$qk+(%R_Pz1)@?A)V!.^V\%y̙L VSHCQ`f}<\`Ͼ''&Wvh0!#=(+oGvWO2ʱ#BK&*%;\'. Dlܠ]YINW,חְR@"-b7PXT22)]Kg׊M42w'VJtݗyL:NR~FT[xy4)fY5sXc!<5hML'R] 8P8> BpM̙syѫljJ(\\pU>q |+"Me;jd/NJ'>O72nf_ %N| 3E#al¸idD"0Dmtg G!9$ƤLMI D=vMH^jG1 ޝt2p06\@==si5Dyg%meiH&] Jd #s<7|;!CxQ!]eSV~!˞߄U^RW5\$gS|d]r ;ľhM{M¶(`&PS u!A:nsGNAK ?I$/4DssFCa ZL#8 kJ*N:d,|oЯQXTq1qUGQ "h1Idur& jTL$JL:&e zu!WCN(daV;q<}E":)B>*b~X%4KfXS4Zb0Pc=SZjbmu7pp}- ',Y_9v!p`'Vwݨ cV;T!Bc+x!)8D>T`cȦKBMBrO,PM݅-  HzezUR1 -FuQBBChȰ2wt(ƕg@AAV(`:Cϧ D!qL ]~vbg[)0*\DTL+w )BޮxeE´%U1ml"D0ڶcSԋi%h@ =t\YM\L!d@TisX=38\8+5ZZUccTkmA߭߬kFU 1bŽ#cdJ.ZRG }DsCHozXC4pTړOjDzhimH1'd,C1bUUE5X%\,yrWU1P^zb۝9י=A<53 B!`3 +j19iom$lݶdt,t/@H@5QTsHU(t{|Qec!aDS63"?e!xȭsN "^wAׇ5Y7`@Ǹ3nZln@YZkqJ\H):hx1bM["adUذa|bGȪp;FZmHS|8jIh\Y^U T3ǜ*kP0"6Oo{h_3˸aٔPXlu@zrI'ABTUJP^*Kr$1|&PɘZϨs>vS0]N9R(r*[ZibHb u@\A#XlUH  ngc,z}k,8YZcX]_c,58<ʪxơDXJmw DTY<{ТaVEҏp QDDF/Gr;K#<3|Ң иOzs9bA8:( y:q~w(`oW /#B6zMqM@.GK["aOD]:O\^m1==M`5W5RlQRYݹ!z,S>EBb.6J%XVLX⦈` 9z=Yt2Ǹ:X9=6jH|`!l[ -X Yp 8 h cLky  YM.D3wIRsbMBz.bo,+~.okgqG8tx Gj,1n<걼y܌U7l !x 12 ؠX7;0\P`C_p|g߇ @.-baR+ɲ٢ʰmݞ4/ij`z!r"eE7[]xBT*=Q&2~VUq) 5;bB B f"BEoR 3"d2?ߌ mWrFUdh5~Վ&U6!· B-FZ u8Y+WS(`0d` 8(vwũ*;V82738fX8i]R|.'L4YĘ0yi q>9X@o v[^wn`12}3^H03 @["(pTHEkK}$H]JpކLu>3, .fP89 >%sDL-tLM SC,Jo$8(kt~Y=!;R ]/mݨs(sbL!m udL[3 U7,@Ta\7` U !Zuj.5KK Gj$2DW{pEp8q>ѵ-ߘñ`5Yy\ޫ6hi չAPG0Lx}flA ;Xyk3ͭ56#a2έLģNUbבq9 +O'@;!@X-RɔLT13^eŦz=T֢njֹs< @rq{ynAA(`S;[ ad Ljل@&$'YlhrćČ[6Sv~g&>C($*iаK@?OIA VF4KhqD1$kƩ_D|øcuk\>x@6`y6ppc9l`#}X?Ɯ?GBYÀ6sK ۬؇jP Q-.]'- 3p-ףz̼5m N# SI9sM4;1FP+b>7fT6>&. ,Bl1K&*~T? D!`[B+'B iqFInj,K6'a LԽ,'<~f6 o*W]rq؃zM7!d [Y\Xܡ+c`8 902pax}*<<*=y5,a{=ZgƸh|PsmhD&0K`Z<w/ȀJ^@u^Vv|V_{R$b59TuX11&#1)@?%a%Y"-c31 T.&i٥QX6 u]QʉG8g4o&3Oq\Bt aDLE%uZ"2HCX2a9EE@vLNd1IO 9c\sW~20X86h`px G@0ج 0}wn;qpx|u&$eU}XKvl,9;Pz)JOeH;c3!h;2ܜA?7HTQ"QFnW @GpƗpj1c[nwx,47FXXnzƍ}f8@w-q@]>doOH8h;vaZnWV'Q"Q]IIH Wg7^7eflz,Ti\oVlƸ]+YF*!XUi+\aOʰѨiSjֵ-(ώB 󪄄xd#9=? '_m&.MU /er79yܦui)R(i0swR%I@B841NP[Kl Q] >PD]n4C4WpKh a qp3# cZ@`U+f X#5rhxg qd&$?U ^}St cn='Fo˽'|;M.8T&$C0YdIm #; UW,{FE,w:kLu!"{=TŸvq߹"lB "Sw,ŷ]>Z]ch5+* ĔBb5] mYIhKxRER3 ]`OURTf2ه!֖7}H~yT7G\\6 C;Hts砽@Lך/eR& 21/򳩘EQeA5UsI'u"K1萞r.Khs$M"s7vwj .od"Ѭ{|bMkI_[In2Y0"^7 ʢƄ ®`pmWg拒_m/ џ \?/)û :#,ggs~l̩1=u1Rc)F*,=f%Y h3\VZG%^ƒ,1;;e~/<-XmLMq][e\WHFv4/†?︑79. Ӿb]UM]\RBJ!1p!5·-8gJ\w'tҒuQ%jIvFq B7A#R oc~`jBiy53 kjk}>~AZTڡ ͮWeUz K_ڑB?}?k|:ΙՂE5͛h/}PKƣ{<9v$Uqr 9y>ْ- r1EA U#ʺ@ -Ɣ%B(v /Sd0:Fw 'gu5ղf3k֯5P׈oNEg[,œbl_8ù؍1,3K}A1엱e%R95N^:s$NRsWhkM{O+ac YKM);؉r-u#69{c:- j>Do:0h @R+DŽ5ԺF"!re78!1 >y|J^8<<^wy8f߸9?|1`=-ȍ\Я/ 9A>l@ )QN)X0CǏغ}02ZS%t|EoՊBx{;T Ce4e[:꺢,,K%eUaQJv yO_=ij0Ct>޾AW8|B*&LOOT,>Y=?'?`Ϋ t>GqЂR={r]L`z֐3 #⚶:JH{Sv,0lxaM6&6นHAULv !8@Hdu>V_‚kC'qUJ͘Z4 N#Verm%4h7Il8(fc-ְAMDBJTe9BH& 'Z/ra}Q5X)/?|/̖a{/\1ΰXN߱3{}[woq-R)ɲ~t'cN.fTUEɀ!)-^9 kQ%!\^2,ؽqk/|e.ON8{vd`){,>y=fp~_ iEΪ; k\LS(Njd'h[fUց˲hdwnl邰Ap M ,6Os^fm6f,q&HW[21k VJ?vN:䫥`lW1$lLݘ=XZ5m{hAWog{Rr%i.cN1 ޾s44#Ie*C6z^MJ+J۪ΚKll i T]*&>?9r{yzܧp#~շ^eS5!XQHYâa`T~}/){W.8y/m gG6#v_z;(_\wHKkEZ! !=)Blo*߀YX?''m`|Ufׄfi>of&9ҢA)E)_˽gδ]d'|t3EZCb^/녅97\Y?oͳJe(aKuS,cƟSϙ~YkEN/S+JEdB HnC5i M"J*z>|ʧ}d27x x[@Pz.z2y޺=U`˦>/9:EYSl}SYbM\Jt:kDyfx/YR]|3߹뇌vq&񔳣ΏLfC?bx%kdBk10cicG30A"ӆ ەAӓ=X J6hS4y[alXuJ9e ZkELભ;H:(6b<8%&Ն"ﮰ ֺ 'Uu IUR96s>K_~<j=pueBENY'3 M|VØFfkH.k><1;ۉWvZ0xDܵuOg<::#%J~F*фŒk0c,B*Y5]_]Z ώ=#vvƝ%KON)ϟgL>1[nv*Ø6\(]Pv@kj4ʳhxezm2[c|]*/"iƣ펥UޭM)nD5ܰ L b)FcJ ˔X'|to +4Wd,R i&8B9=& фeTFZs|zx:AIR^lpÔFY?fe>^_`ʌ ZԵq13 R(+P[1^b6RV/:b)F,섭7$+gTHCvY.n3d>2_L9?XJ$cbۓ%an@e""c޾_emãrjFJ`8PT郞c1d^8pM7k+Z\7?K"ug۰4dZ+o~KYQqQ&7oȭ22L: klMP,^(N:+`|Y8|Inډ&ƒhR1cdҁc9dR3z,6XlGB3!Ea j< c-f#SEU7m$[UE̟/ Ulu<.uAYwG AgXW) ),{{ '7=/_3.]W R:?$XΘH!Ȥ_ܕNMw7nYĆ1wRF*FkF+uM}%YAJVE:KMs&5&!(<3h-KUg-ll=v8lɌ>ɳ rp45ҋ/`첷6Wb/Qԗقq*Ԝ9bak^v>gE 2+@Akfdv:>EJFiHmJ״՚~KqLSem\j>nO!t: K>9#R`JbLdO'tN6JLF\oÕ-i2~ u:˹~y #$Z@],KNJ 9h^fk,!%EIل1_0y#n(j!@kʹB(fs>{7ܿ[*?9BWW_›$E"`阄0¥N6e ! `,m/|! b?h^z>Rhq|:'3ջ%(Yc hʆV"y>3I'K:(ւ cZC g "*^.>eUE_d^F)Yk 5@;6U+.kD \N0m \\ּkDbbci8yEagjUPlH'\)(:NJ9̌o>J)Je̦S9[}|~o9S>7ww? S 1"3ΫoSl:ED̉Ef&KZ'}t8.7Zam2W%e=}k9{s^媪ʳGOnox}ldtGG}8q=jZ{~uwҚ3R'٫y Cat wQW 6$l#Qgo6 " =mMxo /dR/r)08_a;`eVa"LL'mt%Ž:>a՘!G?1ׯw)7)xҵӶ}y;uN\ݿlؤuI'mX'ϗv_Ako}P>S~3ώַ{ 6+ s'y+޿V[ 6 W}՝tIF_֕PBI!#|m$|O$H1dejY* Տ'77"&eJJ퀠+IY떩(G`ii_!sȤaWDk5bIɻ=~j5qoh7|^̓Iɲ\w6ځO!b&w_;f|LeڳM'bʳǂMן_dd8Lࡅc\ hp jj)XЄ7g1||6g1__yf|1 n\m2rz|~uY+eL|agY?S%csn@Xs?tI'_+d4~++B4*H.j)~!E ݏ\N+oAA+]YM "ԥ{եY6D>7N:Yuq_6U:8)+TEaV,D@4'0]X`LҬw٫aiS2͐%SjΟ*lԚB A)C|S3M&/'" _Z_|@e۰!̸q?96n97`glFܸso.3Oxⷿzk-91 Wﱜ/B0[~y lfo8m@W\ZN:ytAab&L=e6r՞ s)2c\fm*!dBH|0WS*y룇6BIMu`ElE[j։I"~) ]L/YNg wvmy#KYV,%[YP1?} T0o΍7\i!c508N8S_|/~Wn˯.Y".Cnj ka¥"iayֺ3rS] s<+2n߻Ͼ`:?ɜ|ٓ>#>~>?Pxa{gۍ_k&]wBձAZYšƗ MY N:d]:s%,>Y* phSHnpO2n]ΊT8S66e F[_nF}CmD+jRAnуRĥZ2)3 17S:wQ IdzX귶1sb2e9 n΍YR<煫C<8dV4ώ>~rv~'[oh9gY5A<;=8>,ˊ>~ޕ=xz_]MHe` ׄ`J @{:E~a+pA,ϐR!֯3A,90rřP Hx0{R݃pl2ug3#\L/Y8ހ*88m\W}/][)9M&Z/Yt|SjN:I`lVrָ7 _ 7?w J2q M^1)LKt(X@6]H˃0Z|#f9Gڭ&*5_0?d6[R غqs'>}tģ/ [[ Ín3\vć$ߞII6㞀r0.=6X X[4YBbs.&^Fum*WpZeaD~M7*>aqb}z[4ښVkN: N6KаBs` A0U 4m/ϊ)9k IDATI:@&Hӟ`I0% &LCR@Ŕ'"dAVF)uEoyLq1AMd=*ُ6 &F6dhD$ %<& v@[:S^.Ki$kC^rCp:GJ럅@l,=]6c1B5\<|9"yWy''gTuMUXc(2-f<[R]ǑJ5rm%w^0N:ʵޤi|td|\_*#k/_z]S5\db|1+H\n9et-."`gވ6x0S Ƥݘ+=mZD:k\Ѡ i`tuN#z[aC2`~z#{0M IXї5`\U@!YƴAX+?ߌ̥q gcXd+v|vJ5Հ!A梐^! da얍S֬DpJZWc%ղt7j؋xm +|8IgYC) gjϟIz޲bRkNNwp`p9>cwjY3LZ919ےŲX N_g`w_k7͒XPI cM'#@&7<)$~/2KrV(ҧ q0Mf(!cgTh&maf=!<ϱ ¾΍ ̦6N:N6i6J i0 ?R(P1eƂ-`BNxS acd0FFD l Ċ|4J&0>Y%Ԩ$#W2oA Nl/s0Iq4x6 OS~'& 'GOxO.{^sޜ[7fldYRc\"L֦&~]Hȳ~b(G^- 9dow?rYR+$U: ,-kɚ'~Sӣ&m3MCHCb. R~aq` :BHAYWhZ IkBϠ'ؽv"`jUZ.~u6ZX_/m/a\깛=Q뤓NRX'BȲ D$z' %'"eE0ljx^d7hЏ`9_&hXDz%Lg>֨ (x3,ᇉPٜzFFM0@gϔ g ̏OYmʓqj"6#ke r8;;'|bg/xaB ,;-g]%0,Xsi^~r2F, ,c $J{Zsv~R[,\YW|RʽCS.&%BZ'g|?Ӏy]6fʕRZ4tU3>̤1k_FF+_kZ3ڦr꺦in|bPYVg$Sh?ܧu"{Æl+k%_Cm݁N:fN6֚ "&h)*[ebJAC$"qfFhg;0e!) .5c}3x;r䞾ԋ6 O{믁!,%E 8oMS d ͪ kΗFa;-{(=iBA,]PUsnƓ1 oqdYM)jEy1Ey! L"< z:"c-Y1Ket:&˔r> CeŲbò\h4rZ49>EQxur, H7?05X*lCp5Zt!E` ʨfY.c{_i?6(Z~ +$C s.#aϓt~:餓UqwQ1Ƹ<\)m(mBƟ>jH3-mlf6*$?gyHrp?nO/>X۴lx`kVMmğx,2@,)JAoɽ@)IRF!#,W~Rʭ-];`!%gs3Ȳ<ͧ|K}-M>5367%>owlz>Q.R:SexIHjՒZk>[4)M!F󿥵f[W6:kY=b뤓N6I:(:W&3hδ '(*hoJ؃!SZµ }.)w6eif0aH]}Ui§y@%DDDg_R%,gd ӿmfj}VM#a-1űYrqrV!P-&\P7/K*oV0PRRV[-OܙlcvVB5E猶Xk)%X!7/E.t\GFR{f޸Ev<=~%&s損]ܥh!/sfیYCNc&S6Ak%^Jb_tX'|SN6J0Y͎mr35 Q`XhB^0 ~DUN4+bw0ysLz_o4ft|F7&L$Xۼ֠1hkXUPgD1 rB6?BeuJ0=̻ mS&'1y%6Z[VYPK/Fp=T6`\34Ksk _aʙo( zET:pg3l9Ke2PW )i+F[C^{#ٓ#>h&1Wk9z,n@\0Ǽ\quWvQyΘY$D6+p-{}P[|Yմ/aDd+aN:`l NaFٛpl뫞 pN8gږkD- ~RsH5 O/9ٺ `ș=cQQT,<؆Ȃ\_ 8AQs%;楛Ulv [׌gs..'hS3cMAϹuϾF){s|td2c:38)[d* +8.c4uv&Um|.?GfOc^N u]%EG?o_::K0I\wM0dW8gam`m%ł3Á*+i2;h<{sOYwHC̭\ՌkaMϖ#pab'tN#nquEv$2b=p_E}lB۸뚺w1ҟ'cdd[O4Z3:PX.F҆(ȠDo A(wȖ  ui|9A<3-h q'`σmZEE<_xZt2Km0_ư PkدSGCw> *E z=Ebkksv~/<,ܾy=5(%j1.mC1kĘjYT,ȳ<,Œ鯂Ң_W{oJ*q  { <̭]3RAw];77h_2ku/8I:ً$~ qڤR`U`jMLhN:$uQ.gHi1TLE K#b`M$[5D05G7E6CAoLFYFwB$4TYp}F1Ķk THz}E`rz:\`D:ct~Z?zB\PךX ™H99R[fK`2Yp6c3]of 2`g \. u](, O5}_?Y9[Eᦋ1d-0>{>;Ʊ5^{-U(,yV6oI٤@NE3%1ɘK>0 gzs28l4FMp^:I:( EE6Q-ۅg]B]U\غȲ9L2Ҵ=.1څͯ`"jts⏆-ۨCsic ǛO-gg(¡3X*))=V cWZ)1UJ{8ٷ:vm Fc^)IR1( rLقɄR 2X&+gG|rtl6a5( yx߭DO g)=nr2Ōb5)W+8.E@HopǏ9=:ak{|FU \ +a-^y~ \R*P ?G۟:I+b=.YaAHIV81\_6lT F0%<۟ #}6Ny! (?LwI'|tb1}ak1T=U^Zx&f*B`‹Ę핟m@X]L XlQP ᪐ !0e!1kW|dYdžIj59Z K5HbՃ\CWbǓ_ z>#vظ8nVα; b:c2m"9rӍxm6`qq]{=Ir]i{]GdDBU$& ٻ6f0w{hY_,I`0TUH%L5|f|[/0n;?`ސ&8h Ht6,ٜ$I0;|l֙jz>a8ٙhw .!Ƀ?>_uݢfTK1t; UZc5$EL*RB4Z\+ncouthe֙=5H`2 G6ȵ"0q:!{i-\E,Qb|\/s%y@g~D<;x{.x!q@P$EmYmْe9pO% $W[iHLؤ(q&,k#R!KP)Uӱ.+5gMh,р&93M咧sUK>)wƛ7xKO7)%G<8x:{MRkOy[sܦ?oW(ʚT-LPLf/!e~K/Ov[Tѵ IЪÛ~b<2 /9O7JC٣'~Dc kWt/ɽ^5V@ mX|4" eYҶ ږ¯ǰj!GOIk Cg4fh%Ƅ kA  ׋GX6 kF=쀄gMRi}6cDޞcv.TT-@I&~0ٌ^)FHVQ&9(=plYCA 4L;C [GulVsV-G\/ssɔ4MBжO`j̍۲ttD9GoO GcFy:77">d^&2aUg;|^mWsoU2Ԓ5&΋/0h-h*9x3_y)o-IҶ mSe9YfB3>^{ rB>xg)Պ߰i;iM&χ֪[gZ+)EAcJԕK}6#MfxǑg: X1O[ao-dϕ rD@x_"0PLwDD#%"'Ҭ |La^}<{_h./E{8JXnO^/[qaMw4M֊1٠ e̻6H!xhꆿj ij$Re-?{}>eBqZT ?Ï> @ί~kܾ]Gx0!\SBkLl-+IS [*[U`눭#Z7 o*0Q}5m.+BZ q`sa6  N\+Nb! c |tuL>B7ig/'ZB?a"I8+E swW>Ʒsn:-eh:SB*꺡Kr%utXr4MHB>B5H=4/3;:dǿ(UI$=u}xn:Thچm)&#bz@ڥPJ)y㝷xo%}V-]ג&) ʟjʃ?潿1UYQU uu)?fЛ#tVZ3aX3iVшb2&Ryдc´9L%|UY m6  &A4E`IؿcL}+/MF{[GhoSrA)yS'xc{/ka4#e~Ʋؿq$K :c[ ٌR&{ 5Y33H:˶SeOJSd7KFBZ٬t]KSnY.lk-۲d)9_\Q^ , +@ vdFopukhږDQd?_#f ,[>  mmYI1;PrB+04O?% &SڮEieϫD&=9_|]4 M7Tv?V%UPՍJ)^{u^MރP;B6yQ$Zu`KBnUYҶr]Q[S/?shOӧpziT`D ߂hGg)ͳc8g+@}Ay_QQ4֖UR!/WyR@"S~(˒eq -$HɺԔLX)Hrc21Ju!°;*ʳc9IJrbqɳgxggϙ_Ι/W<9SLG+ܺ&΁Y)%\,(y3mgMٔ;_os6_Ǐ99f2HmU)I{,祗S|! MR$#GH!T_=SJH[ڲM=H͋q׾GQ`/f}y&樒Tg"7]=/iQL&I[fr`-<[!i.Wy1۫K\}d9 nA>G,P 2@a|QwrVDbRE0VA;Y mBUIx, ̅U!1ŏqmWK>|ΓxWiNP:`*s߱Klqk^šBim2ǜN`E HI$TUEu( }FȂ^vV'^ӻo׾ JdhT Au\]~o~;~ =9'?G?xxBZdlMr(x/p՗#d!!lX&h#:.A e+ MSxB-+BHK}TbXڏ@!nD&#pRLj9dA>_6ȵ"4ರ/ViLѽ8io.qSvvQ&B:lbGuE)ږZF h[)3?BEIZuI)TpzYq\~G,i4JPjd\s4M9]]RmJAѶmʰĴA#tPmKHn9у-Z.= Qf641//9O]n^>EnRthPJi:|7[ӽ)ņmP͸ˌ&STA{c9]%h^h(ˤBmR,xSUm@iTu#3 fS&tH DXWR)tTҌg:Ct?2er\˘vvjSR! GvtmG]̎I:VPxe̥cC10sorKLmRq]bq1g<٣TuŪV%eUД2(Ƽiz/Dfʂ0v7`m ѐ8_/? RaʊmؽyQ?y]}>gA JI ,|21&4Kwc+:[&^13DaBH̿% X땐`2B-7SUm9zzfb<S+`q0tɌeYp<1xxN[.H&G*)C ,䀑2vϥ DDdb~q[ޯHu-mSuGfmrKttCN:XH〮 GU7Z)nܺ7CDuJkU=6lUnӘ$I;ortZcIF0mAs-W IR#*H$-m݄l(r|nX·ѝ.?'5][6 O6KϒbK Qa|r!)(N??~qn9sFf9I6<|!e0K{̪e(׀>_}Akj$ij%uIRTBԵeCP ncY; c &E/ƻ<׏ Vm#$ZH)7M<^D,SN֕^QtORj}WqCP(K(] &#G u';X(ͻc>}h!ޒ.Vԛ  [t?cN3fr} VR(e̯Ң&NH喦Qp34%I &oșneg:-v[sU4LL2zibر&՚n\n_ӰM6 Ť I3{I) 3Ai ",іBٳS>xbLHEf@<1mۢUǞ^?u>aDŽ0aƶktj06$I(c_Tav>EK'Z\um O y2Z1lWVlVpl;WtuÛl ĔEM_;ϸ6IIgAcNA/Z-qfHe9؉i"ލ +ڙm Y|*EH }8&czV<_7IЊu\n?{rAOY+6&,'H)85 s!(mv)Ť,K3$5S;辞_'T{>%u,b SmY䳝2uAG^ܮStmHH:\j>y.={)nt|`LT6TuIYԵ(0&wdYvPm{!0Osء1 ]ۡ.x,Dyzf+5{ ʚS{Mkd ׋CKbC=ƽup}?.s]f/aJ* hMDbAXQs"+[ͣsbn+$ozH&$Yj9izk&)%2uϧc au̠ܙGe@hY=!o`6(Ihػۮc.TMiZv-Y}.r)2y1)f_7M@L15 0i/[׺_:wGLi:Ki ϮUmkAcAiQL&uu] =EncCdϗ riwX/֑Uč'o{cjNPY؇> 7+rbEu-"Wod@u-ŊbA'*Xm:,$pmV#P!3IZ ^{ .eĄ9@č,)@E 3!l*he:A)AU)fk֯\Et4.zLurGty jfjW00Mf|O)OeC4㕷RymE (=E@և*pߟs1SumkI°EQ0*F$oiDߊ-\KG 9ȵbp68 S"pcx L^;/Q.n~z"+ A62R4 ?409Վ蚎 ͋7r_TیVKʲj'V1$l^rz==4fZgJէ3&M3X2EI5-c&=6 Ϧ?0>@+2Q5y eʪ.N5 R _ژ+-(̮/KS⠎~) B#^+F~_λo~z!Lm9{.2MM2ruQ\YSMJ ph97L7[kM2$M|IiI))ն~K}׵ǁ0Hw砭 2$6bi#!5@/=#zIA}8v"vw6'f'6I}K`R+ {q1ޭTD#tMUý ifR&mKӶ45+mB(%$cxtE#UQH$μ*-;{llOS̟_Rn+./BP N<㆐Ɵʚ Ҭ6[/)&ʧP&4"+|aY0||^0oQR!Wy@7g|6:gٻj`4L~vIzu¸g?Cn Q]C4fZw,%Y>b<[d=&̳3 z  rUWV!}8,: @Wk9ǃ 5IH#3~S"\{:ry*Hrt2p\(IʲbZey!6kxəDp-s7`] 2σIE)6/!K~vŒ|A--Hi,.87m°_։ށ'#,j02&q/:<-4ͯxFUl _۟4 }_U: ֒,868"qw~ABQG(iR <ϱ\"g='mF4?d lk@vN~qc\}=;]0815Ŀqi!q)Ƞ)!Y)Q`/$ORzP-")eIj8>rlzeS<|rj6 cA=0栈qmug?=D/ΌciLn7P]ӱz3 ,Keb  rWȗ F!}Y_{%g `>Y, '|W6)LnJ83?*?}/a]adA:~ [l)Ŕچkc1A& bLn}]'Խ[z-|6ld dpw(3bF_Di3}p[wyrjDS|2"F-xz O"JPۿ\RdRHz^mɊD uz;ꣻ<Mf!psooi,%IZ1_.؛y`]t9bX0+V;3!հv^ƴWH24ƿ_;Y@hh,~:RHJ L۔\,VWMg46W% -k9t5Z%06ćJ+ RmX RJ "b@u"n أ̈:H*ڋؖ2]~c 歿͌lbZ-ISH|yQ m"< ?nbwsiuG 2 2A%=FF8hm`..2hQvW,@DNx! B 0C|Ə{NٙQAlK&#5#b$rP۪cr4,fK5)xyY5a-W&%/_ll$xtSڕ݉);VuQz'?+Bg|#^uN]eWbN6@H @eUHP~5ؒX~y>n>׶6J3{ưN͙2c"Ҥk;1:aŇ ͂c֯?C~Go/ż&@HI]_°f|dž2 [ ׋![9{;$I&k@N`/,xrw9ǐ;|{ J{ A(_Jt\ n@ulVʲkThۖy;Ad#qg٬MPJ1_,8d:g/)IFj8Ar {9AD~Hwn\}׻'.?qq~A]V5O<~~N]FM5 łi;(MF0Ml(犎פhUF ʚi֑FR"pA۬W̯?c,piAVί9kf,ݨ?~Ӣ๗5]ΉJuMcJ=H_/Ae1Q`J!D 2)z:؍3:%KX`_8sauD|\Ymw]*v*([u (ao&RvM]M; &z~Kdylo N|>g5 dTz W #zhDJuo3VD&V,!$x9 ehw^k.;黮2. l4:. ]fMYl΀9g5UZ,q@*5GɆR%ԉa:w@3ؕ"Tz\S@guLKjr𯴍2;Ph@2@L쏻kυi\X2bA Z+SqdnOS}Є :X 2VTg]?_bw*pIu߃iVyo=.GEw m&1X,MNgDr_wR-uP-KH/_<כv%M@N%)ީX& hdԘ2nMi ;d`\+KBH` –׼uOxb=H4}_2`TvF3PU)@yeeY4INƈVn1ASwlkg<qr|̣ w^~n&<KSf3NYoܜ݊GɆܐ 햮k)˒,I%C;ܥV$]G 5햃ٌ,XVK,Y2怽|8O@;h~7即yxu|zJz>ɘi)[ڮ:ڶ!I4e.epذڔ7%kۚm}T\zNT6AJae\b7:Лqc}~g4DX _B wZiMgAEPȚ5;̗">A-O}5r lP3GD ,LMl ܴn4 ~ ׊;(%'EsA'N,bu/mP|O΋?@Aā&]]M ^OsO=bh_[_0ۛR5 9?O˚bl"麎y?vdBUtBqy@ǔ"5~876x@ﴵp ܱ+n hDn8$MIQʄX\_haꦥm;핻 =lHRD" $i 4>}/;-&:+ "X|usw5)`<ʖAY$NXo!| wYQx#$g3:A[ueJ(Ldn֓0qpd?L6犎4]k Cʿ+&x5l?N1F,g5SDsK"(Xzo0^Q ,%[?SrxE=~qW js跟e˞n..lyQ55R mj.Ty;`9ɇfD1c֐+rz0@i>8S5q^֍^{akۖn(mMLԺnh[|i0 e)0 X2"Ė)&c, Oz=0WZc/@YBqq3_v<4~M׋V%@c" 8?& ":,YG|%,AX @& 8mʍ@ 2AtZ)eivQ>A ;ǜ聘;jUa2:S}7ux0R!EJ /^~ͣ=?b֠5MӲU}0fTJmJ]Ԛyb4pF4u"l7k*%8cbļ1 ~ڬPvh83.qE;#7mlo?{F`3Եb6m09@. 4!I$h.fNlι"\+<'30v ctܾٛP~)tXEw Sk"n?8U~@}4͸qpH)eEv, N7V ,a|v)Y3ed czmG15nHZwiێ}:4-6&gR)(quݢ2IW R)ɤ)i&&k֊bzy|ɂYvgE8zlujY8?h3(wMagD,LmIcl]LhAX߀Tg"%#4˽89vr@a ^v(gBQVt)I)c+^dVKBeY0GXyvv!gr u)1FKղ:{F!׌uP$]ɸS1c3~2 _*ʗov|[OmD_BXm6M38rSnmŦrb|r8_ IDAT2eQ/Nk5‚YxOyOQ]Gӵ 㩸\-t¸1*LT@&SE@ MU/& D",MB HL%i3WCbٮZc &I6nH kuϖiU`=#JkXẄX4u0pjUk3:ddSmyﳣI"~ AG%;輮'G¾QaT҂CMMѦ䠆q3?{09D9O*ifFkL{WWƊ{ĺe9}Ŷi>x|F~c-(u,JO ᣧkA>-9XD/żvʢ{m.woT ΢6mfjKLlgTe}5}S-U)B F)A +t j'x}aZR7,jv=}:7:L*oY$ c:}0U aV^]`Ne)@X:ʠTl4,<'>/TDY&m`l A4.rJ$QXKVv3UFHO сf9?R̕iUA7 E%ullqx)O. ~K !MzŽ_1]ӬO8Z9KE]uˏx/}k`\k45?o;P9Y6- \i~ cJJS6t. sz}ZKpL<ر`qH.gZtP5!7$PKXeO6(4xl@UPTl̓]@.C&64[YU*5 1Q%1aTdt8Ɨ!DJOOpLyΣ?7_[EU+g<~n{9Ն&߫lΝc.\YG)UEX.C:s JJP;h#ȣ>j) ɅjLDjj8@Qk;眀4!ȯcs5;#)j€vF@,x6z"5aմpa8 ΋Λ:wJPln Mvż<ۏ舝WTb89014l52W2?[D}<]cR8rT8V?{9 _`}j^Z͙U%A2`pAguBu,f;ޱ,+fvV0S-}EԜ]-xPlWx~Xמת ZkxiKy.k - AN/<6<<67/v[/z~EiJ._]َvXlog* #:z...wMI釫/NϱXOQ|6v(KYR$F,2';4FVBZ籥 hr>X i` CYmH{.F]{0FE0ؐob*&+y#O,EftRR`}11AG6pZ9KdMFXdFM@&p}%&m`}1 f3Uf0r;]7:6 //Ǩr:^* WЋfp;%BrdyY9mxU %{L'ϰu=[rXgx j<<Åf*+V96[Kniu=JkZkr@w ^qqqIJS"Vj:吷i:㝣*KLc# ҴZ 彣^% @+N*#cX%W3#Jfe![Yv.VzUw}:ktYx:! Kg\>ѵB I,M6ٯ Mv/3Q\,'(U-ZNRWyah#%m6h-s)&7gΝ_ izqcڎ]ruBve[ERŎm`],XU[uúpҭPFa WVo цo=+?: w4mGi `eVY{DFGa yGk;@n8^.x  i$fT9qD|W:F5W FKatVd&Fk{a@փ.:X~d&&6ٍ(YBNF]!IWiITVr嗎ta2K1r aQVUEv\q~zA0JhES 53(z -&lqjͺَs;5rqٰf(# Rzƺow|amv[E6 P2+YBP?y񜓋3:kP}E1F.ۿ`>qzq TE rͲݎv()ʊ4xk٭7WKO!P-ZlUR@Qou-,*q<1LSrZ)BpFV,tVi.e"~<^Ub1 @ I:v*)EG 5} F,1i6ƟbQBJ6Q`Ml`h{9`/<hZeL^W |):3eN"f; CG弮%}ӱћi^nh ]o,PWbFQW mҊ,[;6]K}BۉNQc UQ`ݒθ[n8*6lV͖fnK֚:Nkھ~UٞmC!}'=cGukAʟ}lfKa ,˹bק4!("O6l `$k)rAtE LGĢVZ3%cs.z*2_9>Ny 0$D0) dKb /S}M/2aBd'WJ kVx%9Ty3]bRamπ&*O6diS-;= q 9⤕I/I*E~Td#P!n+nQjduYQsqz%uURg/.x91|&TB$1v]BQUYt-:Jelw-VYNZ)˒pYT%x ЅTE&&ۻ) ]TYnf !8 ,h^E&,MCT}/یvSbR:C@a@#h|| I->+U*xz.MJBJcArxtLO3^'Fdyd Z)+UEqyvfcsdpuvvc1SV3x壘1rpRfASBDs05 ٌ|T'(Lb6[Ӵ ݚy\O.V'zTp~4[jV% tИ0EYi^B=kDg9Y9,FǛ%EtZkY,esV4DZ8&)GEk .硠メKJZ)%V80Zw"jV[[N6, fjA=EBKSkeKa{( Z%s($ > ڐF m@D?3i?iP^tlHLخDĸ7E$U-W ËbX*'*)9όRqxr3T:׸t2dyeyٺ FƄ&Ml-9ώG˥`jHĊ!"׼xpCсF3pmUS>x~I Dr R3:ɤI矾#O?Zh}9K+M߻ u]Gu`l8z|T 9foU?i9Y[N:.]L #2YhÊctvM ;,mױ-PJӵ;-l4= S0͙-5"!)Tpx%-O sV@6 ! abqCb!!IqC:ɳ q uTw9^Gu17L8҄dt7>CJi`[ +%އ\pVOQBxrAœJN1HOc[\9#5ω]c"iM6g&ђ=۸b+/?NS&Dq-9L#ڙ1#'랦ٿQ[GG̊=g??va ߼yw=e9fu}JP4(Zqm~orqyEt<qUNpOw)uC:S5FRs˗^3ˏQku=6h7(E!%#Ҕ#NY64xܶ;seMu4"Z|0%HcԋTr c =HŐ>0Vi|HQ9E$GPc `h8{C"1y !RfW* ʳ#hK)ĨT;XU1 =-<#RT 4>O`Atɒtco(㪜1"kV}?\M&l~MlOQ8Q ͇ap K~؊6@d_03r9ɠtʡSrT|og99 SppbZ`BEA93`1b71i9ŋS8/D=ّJ)=Z+ҚFsdY.[_4}=#v-mKZҲ(+iuމ} imU3ꪦZҒ5 뭍 ={a<Ȋ(0Edʠ DQ\m 6bS,j%铸ky,d%FFY)r#YI^U$ExbGiEv0cUcy% `$cuc@[Ck#CY<7A!?arU)_3fgomU$V6e3&6n%aptc3^Co D=-ACEar>qR5 z&/~G+|ɬݏyT`5j+fV|"CQTeIJΩɇy={C:kGr^9s1q=PabYf*V= eYw&ܳJr}X=m'l1% UEQPVRhâS%1Cށ?Ȋ0U6%$V)Lx*8%޳X+ mn܆ +Ҹˀ @'  IDAT2H)I=}IRe"2If"U'Ax i_i PK%g)!^?a}QWfb`Pw,-3۰3 njg MF:@pdZd7Z ]PߘHːb -sx:L,()ljmĤZ{@W+`xpՎGk!P&@׉6ꗉ3: 1w~Ն0vi3P꺞Z/ݟͷ$G;蜦q9@ cZk9Kӵ4m+̴ܽu>_RwVa FKm5faJtzk Db`vb x=E1f*]UZ) H$3b$U?u@:+ cj9( klQ N"LA5΁ O. Uˊphn1TƲ6TcI;, (- dABYv[涡SZPbh|m&&6٧Xz; nZz" 9(QIQEB5DK=I! Z`fS1G+.֒Tl ԒfZ*ʪwbE߷mj1{ϓ%=? 9;=%c3aE[]>Frg9^<]sT]CN33rtN!ڃG9v%~<3auR+-hQ)q  _8q^h%$Ix %0xR՘Te%d]VU,2 Eft=ɐ$`w}8 yBQʏ f@Vs]'up c$^:&Fm2QUD9"֑ {cFGcbmfΠjl{W R(218d}Mlm0^S޺a*`*(>8Y^'Uީ$ˬpO6X,f4MR9^{7:͖|Fv[xMnmca ?ןWK^{[9<:`Z0GbUヷȃ]UG?n3>2W5UYm.Ss/kуʫav &`D]fTEb`>Q5.xO|:"`!@Y=`EWZOh%)%ͺAE4HFh˜ƌWʼ h] \ǓdCH,?a(Wfұ!wH}+}I'Yu 7E .JN`/86m_L,lUŮ5p|e6l`^ln MvCrp_gC.,gང^ QBpV)zj-(jlwR5UU2_Y#LQ2\^\r~vA8vW~ڛ.ˋ5nC5<{}%_7MlmoVV8K"Qc̰!a9{ a)8ls=ڦg޲^oqSW5gX}c f9;=kZ?x;GG8?eRjMUQj$rY5W+txYphe8<:P Q&A%Kc\.JGʩ‰b1۵a`sF9_IJL0ג4* G9)|z=0I$f`/!xh)820 샰GO Ґg&!y2[6,? ziTLXK"8lC{RtA13675S7p@M4b|dMvMl65e~ܒD㫑#L-KHF`xJ&qMՒ Xfs?|'OG/+|v5mk;~,u'g]'?zhå5uU3-X,W])_5gGNpxWʤ`zb"K0:2hL}rPI*M\'u qf>~ɓ-(x&3&Qk+8%ޑO2Y 4Ѧ$|;Fx?x' J XJCN1%Ga0@Fio||&Ѿ2J>2o\{hT} ʨ@ט ׈K Cb"DKc>xڢ'F{uDv cb(N6deF1'7_C 7v Q ?'ņZyYJX2bgVV9>F0h_!yfXol*h̿)^1St>JWFmxr2O]F*~!R,0 W\jU1(_T"G,:K:?b2 lV O!)9d&6ٍ9oo7^;8;[LQQHۦɊ aS(ZkQ7Jk6-.V(UUcJ* 2[H>T,:.Ae$e듼6"PCLs,w{˺n )ca0 ɘLܾZdƁG'jⓕhZ6Y*^WCZ &upc̘E4{%wY|k _bM6پMlM]tݧȹxceizbpZ.$ܧFѳ&XǶۿٳ!SR/zcsjDtlrLZK+ED(@uzIV;;V9mßb5#|TƐoѴ=֔z6۝0RШmSJEJMY^O~ږEvf hS}6aUn[O󰡶 _F/|Zc"0VyPc bMyb)@bJtZH_~" 7{@`ӘV EB@p#&hFa"=1T 5vh\ 2Z"˳H؋<6 pol^ M,)"smyiC!Q!$bUr>g9:/w~iqK"(2x'J2B>N^\RT@YW|YI/Kɩ H[%sCՂoWo࣏v׾eO2@2#(-ywJk\)C|/9hc"PeA e0px'?˅FP#XeiPE|Ң\/}# 1Cx4O3sWs{yJJQ1=15R!FlOH[[ɷ|5?O_WxG,f3q^\v% !Ū8uHTv=.%^r젔0ՂbBs1x6 m']Yudc-j|EFC2]\h-(r~ }&) )hC Qy9FΒy<P.LR40_IiY @n@=B9VCa84(',eqI>bxLƪMr{@{'JJ.qcyWy\%&Q{- t&ldj9 uH~>2m 6.*'KAӼ^9{qrCUuV۷jvmżPbqE9?py}EID@<g'WwO蝣, Rkd˦s6;_ygh*M MK[ʣeN?8\XΨ7OQJ^νca\ }SÛ_xj6MS~4m+멅Kd y._/zK* lKk@;^ BQ`ù} Dh٭M[squiZ.ƠNTgZ[ˇ{ZT>зy^y Rk-ƘQx+ XD} "D4B_ *5-Ȁ+èŎCxObFlV @ςBji߆X#!DByB Cv\A ޳35 @e`}LPq $(?W!$KNk>Mlewpz)^VK-vsuUf)"B( MUK1;X-$, r \^lUU]Ą=x]/xqrۿzϟFN x)M۳\) )MCܯS5̵;aBԳ˔4m. mSR JnBrU`yGpC)C#(C%B Ka`IWe#l*i~0S#Vn0~S+%w9~.UyC$kňՋBao\A&6K&JNla)#Pf4E),DzbJ]LM6ٯ M9lFl׾6WS 8)GV0D/aW%u]ж [|6;>THVUMac2ܹy]\XuQWokpxb>QW4 m'tm (h(ʒmǯ~ӓQ:) UXh"$똷RXk{ Ͼ\_nuZ-l4%+GCa9$ӵ;Q#AZHjMSDj-z0U$6X\[;b8+Wö A>f>3R7a5K}@9D& Py <ö\#k~<8K_bi@"t<7Z'\9&fdF)?g!Y/탼@JYr|b|b}f$IzgqU]U5==hFAOz?KH (Q"$r$ rрtu-Yynz=ν7[} ;sF$)w51ixs7??__F VsF_?O'}?ݻ;lklw[B@:i7 _C Ä^X̌uӠ]5%Ax\8Dզj#U#a70 ! شhG}0[0V.GIhWk5i/N!: $-S] bwu!% ϔ{=,|~S%W; x9EYר~h/DzS=Yl#$/cDlbĥs$ 6O1piϔ3a1648FQ32B% dX/fÏg,yTTTGG72wd/YYXJ,dVZH؉$'4/ T-l- r.iG p?1?(l'",aY"Pa>z=ˆӻ_3$fz8w${Gt$)j!M mЮ;ө%#8zrm6W_/~&>c![ x3'=b `^ߴ5Y{̜bG5XW`FIMиgg P0pGO&MjS̟fޢn0_rK!`aͻ8Xm]^`GIv%&-\w8X.a9 k@.0wfF)1~»~?䕄8bblXt3kϫ}˅v%95#kj"g*} pLi![lv;Q ,=r:᧿)#;5Q]>t*`Ӕu }=|*Vb6J| "KKtf崾\*VX"a}nU?W@,)=y-$ڕ/^ dh{)},zߔJˁ!e>M X]" [CR4Raܷ|=l]1μ{yil +D ⚙C@j 7˫Tߨo5SſV+~Ghbx\oj)4-o7!3451[u8%h\2x9gg/l:w1tq89guO=q$G)['?W ֻ-r8"O- ]O ._b{CN ͟7 sFNP񈫶ʹM9#`8x[<}BSн?9 $r}PF 0eJpUաDEXġOW{jmR 5MꇖԞWfpXɒmC&&Ϭ~muHNU R@X7pYde`<*Yg@1gXI5. |9bf+~5h1G fqwn?c׿!޾}_$Wh֛֯w4Mpg~j Fb[ͪEFL՞ k9no{ﱹI}Έmͅi|0@$xN0 ce\!Ft5.\#4__h`NMbIiX|v儜9^~Z|#~C 8IRh { znV23k7blJʤ8gHR brSL jܸa5 ^Q[Lwby% {ٺ 1dly& 3$eKƾaltf0>Ԛc&,.@RY#%SFgO"Gb'ܒH \TָTq_aݠ &HS&N)98L1% Ր 97|gO7566qpzkX! xrJ8Ob\w+/= v-B$;8'/@5#!3c9Q&3# ցڬhmasqY4y7WQNO4$W곗x9TOi|{45'+LƓoiHLʙwoQޖnwrN9\H6;M[Ucfhwf4u0ƊGl1 Fd5gdNaj5d :ʣ*\$4 P6jQXyo ZdY"2X5L%u1IDzD..|{3"L[$̇(_з~?Sߠ! (LLRV#rX˚# X6`@oh ` 3':0LRœK#;{=^ -V4V Fv b m m+B(~Ucel I6t5xnՁ y/e_< WR.mv;_/ߺi/<#6xhnj 0M MBZ8݌kB(+eɎ8,#祁yc-cT)pv=ulyzDbhݛIF.4i`{c,L5@7ܯOkfo}0%2l41ߊZdE~kY"?@f&b:{4%X xB$l+$ 8{(̉Dv3"Hipss3gwn|stւ$KX~Bcmh^ac^خlrapdϮnGiJ_93'JdLhmreu.b2 Ȍ% gƌ4 xk\==_nجS >E&~R(&3c o~ ^}y l|v.}ro2>Or0FTv9*t XLܘp-e3:3K8 ;qn0PD@¬6f˽3@QܢS8}sY3_rEYd`<*Jȃ1s; / ֐ PCaUfף ֫cfww֛8 {2S˿k\]^{)Wz&68vs#=1a0 EcM)yHRQ u1 *)%l Ƅ~p: $SuRv7,N (@Xo.btz ;0m~(˾$`[ oqw{BW[axN,̣8ݿf a`1Q@5$IJ)p<[\]_`J 7{mզCʒ''ga$nmE11'h4ap QG c0,{. y3!mAl[B_4mdHc1nFWK6O^bsSQC:~pSɗ?n&Oi& aaJX5o-w|:83l=-@:P D=5DX*8HK(>Q%.>af|QƂ Xro,% eqQZVNyLTme03+ *fPٮG|YdyTJb zT!WqQl}ZY;Z۵2#MmlloxSj!6Ә$J8N)MR)eLS ,op: lV8LÄo!vƋO\2>``2iMN!),ur&ԙWMpQ|`FۭJAs/ S֜Ѵ-V M%Y`<+lv۲#Ae % 쑒Z#c37Z'q@:-z㹱2F-e'gh9ՠ9Գ\PL0Sctg9 Xӄv@2Ԯʼ$]shR/7k}`X14_Г ;wYGȣRv>-1n h.ijpS ?|^wHc CӮܡZ vUKʕB̌ #%ɑ'HOYXqsxNkB\ ÈnⲰ]ffߟ0i2i 3/Č~%}m0P_9fvyq<1 6\ |ؔ6[ۈj(y(Z\͔@OƑ%g``2cCu6$ozL_57.y`̝͎3J( R&Al -sud'lhB@qF̝3̘2p-2sytmX dٴ0_L|P:cPv%QR,Gd`<*D;CEyv+^LH¤ܽAvk\]wXo:w଄H2oLS#qsF2~IӶ TfIo~8Nށ0 aD45k0VRƔ$ye>t7SM"63}̥]_8MӡpBnӗh9L4Sπmcblݭ1M8L$h `Čo-^ CrE_z|#v{Ӣ׿#2b1Y)rԁY5(Dʜ]ʗk !3|P1NSiY2B 0B *@'I"Hic3EY6PYMlZ e@I(主TS>2pʴʉ$.[m`GXI4*a)ȹ9gĦo`[{ɒ3ysME8;8ֲEXU+@XYAP Z!UWaBGLٓ:޻&C-qa67 h7CB<ְnSaYGe`<*¡Zh cvv pce'ջ/C[?noПz;<}߽p {F0aJd6 IDATZ,] !FNh(1˚Ām$yt ,p< dL8N!&04!Q$LSA&FA挜 LNiDO~ z=Y\)e"f:@°5j Lh ;*)r#ƴp{\|sI2gRgbD/,m55v>`ʄ_¢咳@+jIFa'W/WYQ]o9i`}gk6m8SVV2()reEyDȣ16y3"ePYiY5!{)awO_oKa-Bh0#(W)pclP(JrJ{'Q]5'113L$|JiSM8=fx/n݉9"K4ICSԬjBDJ#4b jBJy(;Ѓy?_rŪY g׌1ca9UM;UgqR&8&۩Ie[c7mnEꁏ4?a}G5fRK9 ȷKj_h_IC 4# dvc3s[L\u_@3RY YgoYdyT}-K\ȴcC ?Sp7o0#6no%2~fƔZo1QU"9aG(a,MPJ|r0 Ӏi@7㱄@f6ZQ+ՔDa{6 Uz#V籴kUߋoXFlWMG;kȉޭ#bw'^W,Np F+L4T@>3|Y T87o$(.Z__86RJǧjW|G_ Xe v:t6Yݴ h)!@^"ظH$ge'!EYXsX7nF;zRh` rP3BEYY"ʣ&w\+U~&jnNf(peIAٕ,۰{&i R'{f`O%ʽ15d?&"4~ſ079gpi@1(+fì ]er? ִKqFNʸ9*$iVbEYw'*8g #vW|/neKؠ~~ d# Sm3%+2> b۷pc~cpT :IX :P;BcTvWR~9j]UʙRF P$vG8vLm'2<WWqr 3p. bQbW ʽ",E>(Sɏg+kb(&P+&[*1Snә1a``Gta]fpB 9gAv`6K`MBHfoQ|҄2 xY<.iA2e)ɮ/Xv ֬;#C4tܣm$yֺè=7B@&pNr?j8"=^} !F[K3`foby1Vudv"i%0_ WD[o~Bbcד>v:uZ= TK=5f8i2dźY#+Ytc=jya )ܜ\V]jSUgZX/>˳c#"ԲE:鳽-.ch r`NPVv̝n@LӔ,K脑)iۨk$%a3a0)40Z%58gH~O dJ!P f7(1G4 ዿx:eϸ";f/]hN6L 8Yw~@ B1F1'_~kT.Lȁu0 ?rU3H6kd4୰6w،j-nΨRꎴyYAƸ 3⾞ȕՃU8["0`,cE]¿TPXY"~@ASe~% ItIҜ )e)iqJ !5&ɞ03S$h16hXCS4A H0'-4siOyYrYMȃGw頔FXm.MY<#_`c{-J _\5S<^q hҔ?bF JWAs@p ]k@PK\R37qU L+Se}5/PL 1P@7?qXDg}(b6Zj\|%̆9!a%\jN}]\u:FP/9$^EQY"J`>c L j,$P];[peBT-X3% )'pbi89+F3I|.! ,LOJRfL;8I"H>irϞ  !Lwq=7G[ٶXVkAY83JƬ@Q\ e]T{2gL"@r4@Ͽ$~n6(YǗ<&VK9 {۽N }v[EfORxRvWAS0=^t 4@r5z3 OasHㄡ0O'8%FMۢlp)46Ok7 aCrZU!s!ՊL; #V{lǘ#[AUfo`]_WE3.qtZTx$yF.4 g,UEt}3N1j݃x_̾x |ᅍl(y>H1r/byLCptEy( [QC9ߡ<4@Нz9SmGj!Kf2ڈ40O?1#iRPB3j+3"2Ю61V ` CO\e<Iq@*1cv`zsg ld<X_1@(q7R/.o*VVi[Uf ө SK,pB;|. Ɏ +aQJ_)935moeA۹y>Ey=-\ۋ,e`|X偊?1Ih/~Q!@ )R@ ;T UY +g,ңHLʰ6xI6f\wnGPs@H j }=U-uCެ/`p $W!1r/JY$`KZVpEZ)4ʝߗ/l(9۶q\ 5|uL[};C "?* [GZ%Y9B^k\8fL5Uj /1z Oə<[ 9>z9{l|(ˉ2",lHA]1YJ L%UmSAAK$U彤vJ9 _C u^!v7fK{csJksHWm|؎bÓS56",lGE(qW(i5i&–%p;iJ4xtČןޓm)j3g 0hP\]/83AHi\;ؕ _Hbch(!$@~]w`ab@Caj@(T=B5ٱwi笕AÊ1Q@1oTe /_!#Mãh>m]~Ϸ<3VPW:`C6|uѪْL@404yjer0i#9reT ".C 4M˗/pwc#5Nx/b:m]@+N Xbn A oJrp;f9!12|32G#O O3|]gڧ8TYv9e1 =IQVEYc0`< WOj6i܄laWlAM'WU+t@L~bR;yk*MhQG %_H/V$1FFu~M \f2R+1q<9Jh;S^NU7v9lX}_ f+3(kFjIM S}Zs C~vưZMOq-~yͨv`Qf'' cҶ+ {)U4o-8. kH $8sBl\~WHUN3bVXM=[ 3aַ {vkjA`,EJn30J^~_ VdsĶfSrkP0䌀*R@Wgb"6-AvQs ijVl"b,*\ 78OrN5f@>bӤ} vtV2c7Cu IDATv[l\JLOuzW[ph|aIN ǻ{-dc'g?ϺmsIFK t`Yh$c80fg ~KqE^;C,  eF7s_m5EYE> HTϣ"DTe:8sc x4$ QJ"=Sء rs`!N af~;`(LQȌ)@HT`}t" kVq[$0"a젭!C]>{Ei뿞[ iB*)#.0&48sB:3c}aH>'/$B#i30m2ex+eKgj%aH`TLW f7Wvj",AY"ʙ>_+Ω\|,!g4 i/3G=wJ+$Uf8\ Q`, pw0(rS\i]%F@ n\9X>s ")cpid )1b?ϘGc,}hpw # Wk"^G43q5Ķcaz<؀ -W(|1j/h12ڐ4WxE7b ->N$o`ָ2von+VTGgξ7&&<"?* [Q8G$ Y3*ta^9M 4M+A*Ȋ?d4)6Ši**{;!sH4q1@N Mq: c)KxSUpi$ <\'@L*̤W4bza"KLM+䐐82C^%^|sGibͽ;bFщS MYYj,uJ@b)ϵ_]=BU7Uj*^[oPw.l9S.ET?ڑ,ș,lK2T()J.h{GCJh]򦰊)q^Uz=UWMV V)QPln%:Cv{,Oe3&(#T $!Kg7CտUL}(UǪf<mf]Z2>rfmKLyDܳ1;|W{);L,O'x,hd0etaBzq(3[3F@F9. `N(kKe{{f,mtVes|=K-"-#5Wrj+tc rQ+"+\ LSW[i +36~Kt4Oܹ%*00|\ךF+X10Abf PZKMiƸ@5`ᕆd.RIUe(]sG{Ŝ12A& 4 Mca q7x~ RQfi2g1FD$j5p CAЕ9"ksuv3@8;Fp;nǽN}h@/9y2Xw^oA`,E>(΅T( IU\/_E_sȘJǖ'usw f:o14yeNXJ80Fd BXmKv \;x$%ߠ4\R6ITUvgǩhit:Xc}LdlfƬ|,A#ŨU6SHnիiE/m~c5c,_柌mKGC ф@S5ec(ąZLad `PMxi|̮U`ίP[wQr.\A,"e`|@~)zqka:()x0' >RGjT>a8NS^(*K}W9z0Ý) RF߶ b,-s۪2 YQ VY;ܜ*$Dc֕asfTiCd+גwXfW/$:5-~}UeL鳾g!68$ pA'{F I#%c8 Q1!%st}`¡\2ξ檞ijP*o,ȇe`<*ZV*5+H_~QI!M> qk3ő5Ћs{+ˣGaٴ*m>!$-֠y )scɜsFVI2dQf>gUAuҏjP0QX怏9sV5W-._>0SE= 6- }VuWO(Cv$A線5WHYP `_f@fv7 կt3d^N0dM6r/fV6b[YGe`<. 0PL,$&~~ꁇL qtre;`0Uݫ^T,iZ \75q?qIM2k2ma6g3bNޗ\sgf9: p0ihaB>~ila2nr_,[Ȓ{ u/oK)-3/] ZB )Isub>X4K]o@Ws.Q&hXPhocD' =,=#~DN"/m=x"kF/K?܎ %%%:3d~]{\P?-|G-t(W )nUNU(!"e`<*ŃJ `~ HՇ3y֗Q_Ƅa,,t/9uVX=]PJ 8NBH eU؃|+PMP)H)g!mJ lJp\g)Z&t&b`:zC^vJH :4>r=7Ī #`{}ba14:x ZN2S7;Q}<RYaHw96&n10TlK>9l>c;0/^px0 +P(ȫ\V7Y [d-{`a_oϔ5?)3 .>10{$9}Ugv$ӓL3ӧp=FduLoK/H F^41XC9ߚudɔsï ^93.+N 9eER̈w*ޣ;N 'c[+Z9I01tw&S(bTa3jTlZ7;XDo)4+3l,WIX0_ =p>h2Kox Ig0n4i&sdQF@g`-L{;8̟Fvwgpư[\m2Fpn\p}lZ6]q'8{Dl+d͑;w]AX.f4!X$ffĨk̫AIZLT\.3f5E^/ ܹr\z>%))Qegb[i *R7C4FT™f4htu:Md i ,W˨ntZofX}ld=?Sr 7sz;bJ3'a۲`)n离$)x^oCŘA T7a"3VCP, rHjC9fR/wAZM6F6};lVxrx. b^HW~J,`YK''!eJNǺ;S`Ntr˂z/=6/Mug3X%sF*=Nc-2e]<^T4t%Ld&N0̝@70~]@ y߻iY, 5,;Ow+mmCV/ H`_I3v)bNb!|$6Fj q&ϽIāͦ ؘu&X6]V_;[^/AST.Ef84aY9g9Ե[x^$15{Zr i0-gh ݷ,&Gs2 xLպȼ-`f;bYSh+ǥE{^\11cgBOyp ge,u o nܐ*-" ۙYFQE2CY>ƎWå-q[40X`!#hle`P8Rl=^ 2h{'4H䔱;P!SCɌ8ۧ @e/­1D5oogp2EeaP#2A3X*Yv a[pv4 ;Ѣ:S5MF&ݭ`^ fX[D{QG|c6GipoK>ߐ֎aN^befk o`:ךА{‚odyBgz|A5P~&.mtfPeJ́~G/$6de`'W j=޵SL'7]g8D R/ 9BOl0:K5lw@Xe邷EMkKfiʫrV}G=^g\.'݉OϏ/Lr  KOD=\)6 [Zϭ؜n KXt0>]$2AwFe8.Q#n&?8ˀ15t~T8^} ZI{$QK|?<7 Bؕ&`Qc: w[ 8Ipַwvw|;vS9F6*HP4F!;&^? &@OsnU+V cqw"[G(|E: gT4,ܫ r)z$To @Zg[ Xc;sٻLJ4oղ(-_{Ջ%{zMZםW5dMƀmwax1); ԵZ2 {榮dc2|73/6gpW$C7Р[cTT\.H BZP*q@f 3aLP8_Tv jΎg;ט5c&L[Ab Ҳh L#^,^lXM]8[Gv62)Zȥ_"iZX3oΩ) Ԃ߿ML [ 9k}>v 2R[@6Z"}a6-oj$!| #{dgyI g|x0+(YD{El&Md$(skdALjM2su#v !1]$^ 3##c3 @YFP{X5ΰT{w'6aM7Vd<>q_fM-l@!RW)JIBA (; ɘHh[dO jV€W&rtQ94wx ٳ^ȮɟaǟÃϙ7>5=?2  (Yz#̌vEGz&7x;Bxy]./aS+[\Ĺ!&ze:IstY2;=Λl r`GME:|f a[]^, 3e)%0e03:QLp֪&[ %Mh᠏ IDATmtYVZ^hZ@u>ɷr@| I.n%'"آѤ'}e0Wt>iqx~@[. E` t{w;gtL_ؙ!!&jFmK%60glǃO7vw dMV1`| *];39ja*M\%ռݔ?Z,I!Ę2PFKKgpm8X4B5 i#{]W2j&aUpzq8{㪎D=jd`))"bB1f&OJ`XTEFH6n9[k/0S }&`xmrm-wxϟpn)`\+?=|sKjQpp:x\HC ;nBWv Êx3;;giu&&'Ou>,:`>@rT[D/dN0֬?a@k7dd` RN]OPuʽ9GаnV2ej!4LO{-Z9!|{]xզ`:4rW٠,UU+aP~3Ė({yNܛgOPβy͈O_5sϟ74Vˌ#7?_OGb̨˄>($cek̆̑cB'~549 8^b̢c.%>i>wڡlM6P6]WŮ8M3^u̸ZP͚iZ>)řBxH j N /oMsMJ Ջ2c.L,iMR0_|~ inhp?]PJ0c6I,ݨ^eXؕf9HtP0@fCvg?Xs& E s}Bo; lYS@L=o=3~kׇkLr;>F ekE"X#OE %c^IwZ; gd,}y *&P6Ct+l|k/LE9$r2o33'Siأb"r<q=v ux{?#_./\.뀀|bŶ, R]w?=MgBɄO5\~ɫl\;Y_ 눜0 )gvDԔI>THH \c^${`lL aG;LP aq~{n)3~w ˕p}{S& E+`=s5Tt7bI:xK D"Vvʝaj ةΖES(I&llleuP.rBX/_ ÷fFØ.(!_l n K SJeF; -×u\+3c~azl _HY([) hp<>`~<hy|TA-nClJ evrZ|; E65H^FRTqViVBs}tK^L\4w|;/HWN)=⟏1OsC#a5~X-Ia/Idw..]c~~mGoAas_6ƕwl/YL&lCMʠF5 Y+D4/u obYwE ;0aKKHؕ]&ȉp@3@miA3LH Wsr 09PP@]A c$ YYcFv;&p.[ XW$lW%"Il*-I#?1OѭakIv3??7UBMX#яi5 _ >\P7Q8'agLwח@g ~=tAJxсi]lބyNϳ[XƲ}/]'; F'TPanndmb m6Sb+ 0BoCĩk030M )aJ SFa>o(?rBe Pk*EQj; ixoRqg833~uC] ?A7uIJ@;d~w8T TɒP6ILrVguxUc0LcdX3d'>BnC3˄~Ų 0ډj%\/֬U.;3mNKMR%w|M: =̀9ȹ__"{ӂwbl(Pxê [s?Ƿ'Q]Y7T?qZrb< SÔJXN}J n i]MS))!R2r1 Z#YuVJ9䒑<RqJ(}o/3~6b~yWM sK=iSlE##"pѪ}DWS_7K:6࠘#_qi'{y eݫ8Z~O_ +,o>u(vbYa8kt|B]g(?*F&s;94}𫃴SYh+oXLoޟoתc;F^&lrW6&ŕ\xm/,W-̂9M %&|NgKg`̸$z *XB 4y?YQ5ǣ)<n_I~eh9Y Knq!t]_q\ʭ4F.L9km\nA_K'HR)K)BkTu|Y1@$$ 7>gG+"!;sB~x§w|\%}?=ׂeWi2ܥ_`I@X ,g|6;|x$^0\D%ײ,v3FoF`Ψ@H,I'`‚%M4 dO )&OI6ZycM6&w 7_V@`b!.50`Є٬D;<}:b~;W/OjbWxֵ+ kpwf >:s[5C1'ku"x'< i @ ◅q`1=+7#~ڝ0/8 9~{,y|o0j`YQJy</zɎ} 30$uq@L Yd{˪``gYw "&&n߾}TDg̰@^pi(U?[ 3NMY'~{ v`*9%Ę;wuf>rJcTန .oo/W J^gXNLw, ,O1J%D.wqf5h9 Lg|] qgH м XHr J z[xgwN[äɢˀdϱB<|*g< *OT(n _KXW,_vSe(SdVV+&f Owc& C0*&)B_Ǯhc^Gtd l\:h&llrޯa(|.^Yj8lSAs(Ɗ&_=aHMUx'Y2#R9c>#5sx^6Gmi,(j/HkJ!٩,U̠ rhA*Iw`&傀sEn7 IDO 1)ܘ9@]]X3a2i<#9OÜ#zh 0 ai4!|VC]xG4pʄvN(s_:h"߭V\W{g2+9@՞3C#V3vu^]>04}6dA6]1a/_jCADŰFu=:aʡoo7vr8ϬURf|@_QQp_ğf.9 jgwlg@x2hd퀂/A 88+>*r9`X Y9rBhQ9cA$+)#IPp;qJO4tPʄ/x|~y2ΙT5T+L!@=|~aMs#+PūoGM&Y&w&WQQ*qgHL58j xk|)nV<QRAɌ9U^5j Uc )C@H`w U 29 R*^eq>_Op~ӗOc-XZ0ׂ.XY?W#rR w|€؝h,g6p}[M6d mr_x{wj\Gc۩JQ2/<))U ZqV3(!w0!knY< 6PJ]Hi$ u)}]qP̑dw^J6j "4Rt!Ot4u=T+RtFұ "oʄ]=!-MiBCB!FeF$s !wc]+m9sӣ,~}Si`Hp0ձd? m'DWnV+&iuT(p{Z3e,SAyBg^inbuLnH %4`C TJ2HuNh5ÎT\9zVQC.J@j)9$MQqBAN"rSg  NV̘BŎ*LOJ ԙL}tMw7 A- Hvfi1>qΘ熙`B22PCDnk(c3N_Ä~BUI^u` J2{xz!KY%M"CLXrd-`-M9>Sk671b ^l&6X/m(ϽhT㍌$ |xXr&F39((ݧ_Q߻CJiJl! u\aUbNb@bi07AĭaYXd@ARc NA5b2YMW]:H/ਦ5F4L)aWܰ W yƌCXזH}W3,, ek XjYh >#9>}ׯ8R~ʸ GǑ2SaLyQL JIsѧI7AA[@;}HOq ϲ=dhuF0;7dd`|,>!/z7$S8vZ 8NVrO QF"҄,|{Gc1 SwSpS~d@lAgԥ.Y4BF@w-bv,)#RkxZ" 2 cGعYn x XES-QC^p(D TP@c4&4JkIY; B$s$VZ%i3jjpK#ԶCc`r[1H@COcHQ^ o ẑitK)Ն7<!HHsa#v|զbAxڢib%:7dM;EgWaʬx(&-+pGk%-WC+fstr]o\Lr)h˂ehvbP/a24:%Z~y?R²,H(^ G'hF T8Ǧ;3HJªq )a3bP %5\0ZE'WѱoLY4& s+Di 6IخZQ"5n#pI:;" ox91xOgcxG"i@֊w;i_@&DOm˸gW"Ì3PY| c4/wGfo[f?Klɏe`_E|WUccwO{yFx; EM~ BJ;Zŀ}GY./E?\ rɨSCY,Ɔ-Q"Y( Bn[5ֆdj Do2&(HYoc=oy `T6,ƄK-y̌L@ %UIED 'UC5P_+cns+~։d!-€e]>eR,gz_o8~Clf<RB)s"eA:,[Yi#W1侌2/s+@~nofz`^ּ 3s̬X-6dMt-|]F޿E]{/@r`eZBL/g*9{$^ВXŰE=#ӮW~8]ejXE͒=/}16\/ [&j]P %UZ!6(+kVQ_[7ˈq6,YזA A%CAiDnm{NP+Iy H/#;b,boZ)e#oxgE+Č%a*l)rYPAeAPJݯ|@5m8({C{}NHFbYr:s&,ҙNX% uVq]sZ3 `+@hHy#;w&+]jQ9U``!b4]2vZD> ݉A #CZc䀊i"G D%-qے(~2 '(pFMX"BʚbIa_clg-Y p }N4@NP瓁A&u@c$ a/ I10tMAJ % `8[ulai MA3K_CDziv4Mdfҍd? mrW\Sڹ7'zT$Mp\pwm73܃Pc*|t )`XjG5*eyX,RPJ'*aa&~w|5/L$)!y$uQOvmǔHJj}@f$$&,jO\Nѯ%3 ||J5כ?l>z IFM_IAOE  5ӅvN3Q@1Ɓ&3ZQ0\M5D39֯~ >on11WbB1xtouM6X6]wb9!2Ͻ_ԣ*7 W?q`\lavwoD7 ff$\ŲH MXeF@3 "ʱIBJ Թ+ƃR:窕FSR cHU+D 笾[ |Rԣ:D Ըkat i*w1@ޡ[C& gG!`H( 2 4k&ڰ3u 6ߤLpٍ*X[l. 4nUG=2&lc&2^<^3%Mc`=.`R!;eߦT+CDM1gY[;;5UJ iP[O׈U@`(4d@h)axA l β!-ct.ӣ 52?1^.-nKNEu>~0_gJp>ʒqirά٩Zݵϣhq  e*IhWX K)$]%>2Z.sm86bqS=7J]U2 4'7dd`{1K7m xo rohU+v`a=~qqGXָE ZNo,Ӏ&'zq RĻRvɎG> S Ň(0h֔OĬ ¸5f+2  njpsFV@%)yH?3uy qűv9_px8Z" 0qB :呏sdL,Jth:/qQrP`Si)ZEY j^g=v4_oy@:/szC_lgd`| pWdV)+P&7q^џf&eDv(H"viρݸo ʼtdP<4;l?,l ܆v%M=$yibc( WuY c@d瓤~ok9Nz(6l>Ph[Jrif3N(92$%ǁ0n; v13`QyƢQtyρ)d3lѼ#Z%UeLߐ8I@@o`Mlo}X%|/+B=&M6d mCEv]}b>iMW>2%(xٔ5kka~Y#2}+atGZK}("J3T.p(p&`¨  HAX[*ƉӤ{=Yj ̛~il7X7Bn.#f;YASr?AÈ9yisC‚Qt<O5cF.,Fxe|t`PPP"$;Ԡe9FmX.ى1dKUJ_,6dll$C<S:'E5K?0ǎWcՁ={ymm0քƑ;oǂ|%ʊ;&2g} leB$t\ +׊ٜN ̯ Isj6 lmZa3WD*s%xo"b@'d%#7paS I60hR.{=ht`O%915J e ~!BU30s/c4#.lsC;$~k<`M6d`@pG}^:ԏ|o^nQ7鎰@x#(Tq *UFrÕOa!d ɹaPIh,4BrFJLU+Vhy$U7 DCS%1[kaW\RjҊukmHˎͦ _0dOk.ƌ >P RFΨ%#!p0U(u),.bϏ P)cFkUsHD7͟ O6 Vs~hZclޅ݌_ :]S|(yM6#&wo#wVO O7EH*Mo$ʧ(zEnՑJ o쫢ň C(3WQzGADi͘WuDA)KR8UXi2 ~8ڬtkl!$Ok>=Pk""M'$90SJb:#mheGF!ILuRrhEnhʺS~X챃'2s0%a4%4VI0 § 0$*'ԝ cD`M6O6@8_k Ph,.`u9eA؏.&\g/` zY0jԤʟKצF4` 9No/ZLNP0FBF{8  m&~X* smoH#P ͍H!& Qq@j'5$\ڂwBc)Sz}gI$ aYcȂg.V5R2A645sƬ+9-I-F>zin%+޽7d{MKX 5:x"1qW/l/ 7PKkyJs#u/iUm:f&$F&yS}{bG^AGzS;JtGI٩)K]Q! Qk,liֶ`}\x+Ҿ ԋ2dGh;љ>MѰ{0wDn b)Hs;2-gQLNğx7&[-{oc%/"PE?b؏`2M6C&<>JT2V38whO@NqJ,<^NhoovΨpADzQ=vA 1ZCSPIqad1N "{d>#Q!K0OG_ʄX.<1iwC |,uQ"'W'2@#7dH|E{x; Aw>)@wAeܨI1_Vv&R] [yKҴLD,'Vu n.OE+CM6[6]< t!l252)Z7LӝB[]cZS2ߚ0ӓRMEjf&sw ?l7ʅ1%:w 5}M] U$誜ϘNml,GU⇘36[bwvotF$Ddj 8SiF&1= &a<@h ci 4Y, X| ^}N[( ְ,rݛ1e ZC]dk8gk̓` ]]3=-)rc6O6/oxR= a^VmGj$`'2RVӹ IDATL-PFI5qsP k_ni}3ԅcY'Hv7k(YTIpJۂ6,۫R"恸(*g {UfJ@>?@y$bl*l1b`Jtj}잪;D>&5h$u|5K$CSD4[b @qt 3MBk@x-O //8yAaEJ1_yFwʓ,V2pGltz |.AS]*n۲e[l˃"vhu&c]vs%+Q83?rV A&]tRe`Yr @5Hns }0/ZO0bOM ^otRFWJy"hk^. ݃ LAC<Xb-" &n𦉎ƹ`H| X)!8bH*WE<X:6j?݃V]q]RL=U8^WiƓw/ǵ\6^#R4\|)t~@*q)i u }]b x?$`[?03}̶lr A0,q4/X;Al CuPd-x|ge83ìNP2g-JqI= $4@JC@.Y\_8 G z w8d}zc¤ӄ  hI+*q\ZIEkߙWe^1Thp6  Vs\6I|W8HM)nt7oj0[L:0*E.W:KObq=+,|nH3 )Lme˷ؖ0@ 2yFB/uNbHPtQD8=$\-Y* ?E C$XiXQw0!2tv ΄#~)pDO8LG\,>*9#YEŤKXFlE,>m@w4سֆsDˎ&w#vVlF67WM7_γ@=O.b(rtJulq{'nO隃-A8s:W"m@;%rRi7-Qv 8b[v`+}#E68.3W5h ]yg$ %C%2>`5vL"80$?(V&'T8[q\YL@_U͌lU9} h8O7Lna+3zW(ǿ|D@S/Ж-[d-Ka!N&@ @E1`|Ga1\bSO lG)SNQ*0Ԭ0Y PNޡTxyV?f |Ui0=|3Wo8,,ǁ懫w@uIaҜ 4zor,EgNB<˥.Y3KpX#fPXrZsuvё@*Jݰ GU7S UЯy"q s$E<)*OHS3Jנw΁֌[ly ,__oL6HeKgb@l$S?Ha%$XE4$T[,?^%?Il=6X~ #:7to*݋(&B|0q v Aq֪/ā>K9"gD*mඋREKGA4 JGjN" yqMh瘪Hf>Q<+p;r¿'k[ zpi od-u@ &+Qhg_Nl ؖ-`[`/+.RbNׅnvP?/LDX!75Ou\p]Q5"qXG ks&TVD/IɯQv]s5Bvo0lL/Shq Hm@lc/?5eO䢁q0q,s&MдzG$$|7c2n nH2G*OKk:WY|}g\GB܅`S1}o>]#,@c#jәaK -[e-K)'Q>j0Ety}(bs^Jřl1ipZ<!!w7hm|]$f3iJՂuj9$YFݯ+BD·r,s=VZMB 09: W (w@NCp0; X 7 vzi@]9i%<+"K"/ XKs@R Dry]ؐZ-[lY`[OĀASM_06)-欘)];W~į4f߬}X[穿ld:`ŋaSӖ2_+mUM "ney85.#Lu,8t(pYx Rk^:d{_ZsHW{[71zǠŘ" .t\HM{GkClj$&l#!5G@UW0دE=2ܤ^oO@_+:jp}!BmٲY6(27pR$eQ(g(;m`*#$%r*;|Oph_m9q.e & wt%ֲ-YT2 05%F#ҽB5@FKK)pͰ6cK7gdz%XoI@0L`x ]2cO k+g@X1so ?qDUy7(</"jEg+aV/ OHO^"D`e˖wؖ7B7/o"vif,lnz׿ EKm7^˘IbN*54v6=-v 8#4v Rpc̘:T\$'n1"ehA QVaJO2h}! vイ3_( ׈IG0ajAr: 94v4t?BtEhW>WqjMx]h9L6O},i{dcbCa 1@l?3,1BSiwe5e,]b/]TE‰><EXǯkpH!$&GIp v _L]MVs_BJ(_p} N:o' Ɂ(М~!Ln ?6U?CIKw<.-[ XDWqIU@`r!Es ?Y# Y}$F@X'Ne@$OkR)P6Hc=;s!g܆5X/Mj6t8/'-5X5n߮ )(4@1E@Ag׬nň{&g0' x@aqP|A 9m){oW" }~}/9v7k~[ly |/pqS6E@܄rwEws0G`]6kБ<{L$ #Aȝ1W=qV6u-U-}|7:Di1a&a+T];XT "ƐGh\/&}}dc#j hd 2&dPG<<;rL_04sk{ pn o1yP%M,櫬|_xAGi-[ֲؖh0`(좃P0QZHzM[ JH`R q*ř( RI h́1eKˤ[Ed bG0)" XN6ҺeFv:&:߳; $-8 tgFK(2%ck< I=GYb.#Ik:c&)LbTp6>)kIlaϝq/^1+h69աG~qK#ZG߲e{lRzD|B١qp X8 X17 Qb])::)csR"AJ pR*S#H.XsZ3> B1RD,Gڡ)b ~a:Uy^˺jG_1@ ١h2T۠ #VWԥ`/f4i(Nimm|`#jOJy:sovoZ`ݬ!uzzmٲ&mYJvKWsnO؀+CH9>g"@owspR /a--Bznz&8i8gW2118+<vB5ю:>F~ّwG0L M̾cv0fڨ +"AKtoOī#Y &袐n̛(4ݘԸStjj.p`d4;<9l#L_;M5YrbMw]2/n<__#`uE3se˖le)ùؘ$;M(K eg3JT\'N*ߦĉo?D5*~5+TT,eT@(*J"&@ԎRp JYR0" 8"O6kDGcn+Tʳz#&' |Hd@SO4o#P w.&c@s s*Y*W*Yyx:5-%:W^ԓY,4e7iH"+5=IJc\SE(†\}A_i&O#>A& Z:+@!]&LCb"d~v dܜIly뺥ݬ1_\wFIݖL\s@ (W`/\M]q~kG.^acN e˷ؖb@ tD`J-쐥 +NV"\ n 0C'BJ+]ƥSGb:P$وUpإ, 9"spgyr6s$;7gLfR چaMW' )?ڝψNy.D|! 55@wّc,:U1:|) ſ lL0=lQO۠;1~2ss:͑~G,r˖-? ,_ 4?4r?n1."CA fXrȐ@<('+LYEzo.{#~qգ⨢av94 *>Uw Nd;l&{5 {pa4{B1u&P BW+$$V.+}}&#~"0̟L; ) )R=~%Lyzpı_'c}=Fm/>[lؖJD ]M2La>q bm\'O#?Ex`I\& D?X6^ QKn"S>}@aFon8`bG huWskԎdu8K &@vD+@}fmaR /0΂%#r$ ?f-2i8><'*bt@Ym-oٲ.mYJg`j|GZD<u(/$ M5@(ӑ^oFMBIA&g )}.8մk>Hgn; 6X΃2 3w<R+־i(Z_{T#RG-J+8v@gqbLkM.D.A*NsYAnb1@ u6\We.`A<)Ռ#Ҫoa ڃ`N\yu3qٴ1̤Ȗv p2\_h %|:{SQ84TG͝1 ؕPbjhqgQu=#Sovb;7ŸkӸOJ$|7g.L [祽Oc>hBKkז-`[ !b7I6>GPb tuS>T&5䅿sF<+J鰛rDr54P(c IDAT)Uaj&HImfɔ*[G(Π@7v.&'k;WI E40ѾOkbMDp 3a%1A\\OZL0R7ps6͟ RR۴xٝ¾UHhȼ_`,M )΄;ց؜ᬓyQ:a}vΌM rwD r)%Ȱw`Dѐ 埝mޥIp%_`+o__">^ Ȼ}G([le-߈]JOa".IQ1j"2PZ4+Ĝ{z,2JRSҴ׎\<켯s9Ә0d0[򙍚7:+C+>Ώ:ުJI+qgbhySn{K-*b3H9o/8=lWJ܊Z윖$s !ɶ_o:0__^'!ZF,}L3۲eK |+7R؛ )H$*qs2oM ^Ԅ_2LX~>]1ӌ &fN,wZ.E2B~j%a!gB!< Y!4svb pg;>C0OpG&3_!r`<}.cU/[0bځnfȰh2vL!"3b,?hHׯqֿ Lcq^o͍՗$e˖lA'f L\IQ|bGQc-Ϸ* L)ZLX+cx?gBH:G4)]J!$f+1>4WL`4w;"lw5Z@%LT[v<Š]184v ՚F -v74 &HH0Ω)Hs0b3quړ6x*,GpB-aqUaz<_8JH{~ 3Swnٲle-5% L+>v*@c6`i[Ԧb TupQU裘Yh9@T*c&e<0_{xn<4#q>aH,d҄ $s8%9D4l.0aӊ0o<]@fC<20es4ƃyxXuLA02_6 _P;,{_߈PdneOe-KsFBq}(\W4?ҩHjE]u#0:£g0,Җ=KwNz0qȵ{ݙ04_3V8b?e94jڝ N.v/iױī!dtvYEUT_+/Y;fCQ*0zD@EzTꊌz;_>-(:yDJ*oٲQ6۲}& u_-Ф2AKG39&ЫLyqpQq Ϗ0cB.lQh/7nDVmEi>|}R"DLΝ% xcDĢFŇ98 VD~>Bff*23TX[kdv5{ӘdJڱyZYZ`Z>U]-_xX1'{4bV9OuΖ b?wj˖-le-*.3OP@;< UޝHA\\IJ Z`6$KEd,F{f5;rĒϝ$%oKf煻/PHS Ψ9XI0XK@Q̍e693JylyVEYVAv3!ߧIOf(FxMci/k˖vlZ4uP@0'ZX lT@,(s_B% ^b/afURo/0|ȟT,Q]S *OWuSv;,H29Ip9  -qxd0`7}{  mRȏ]#˄5h'wN/rTf_d ,Wl^[\6۲@$qéro+v Rϝ8Yfʡ_NѰsdD p MW-%}D2(&3~% S@sLT8`P2@dY>.h r$Dtc %1f?HS:Upu(ʵE(k Ŵ:?](HoFW\׉~+9͗Ǘq16 ۲'ؖZ<$Ato2 s9bWT` Imf[ 2#0Jݝ`eڸIT;2 E ;dUzggl\g\N)#%|ȈoV*0& &+e FF1; yCf RtΡ^8rdrw˖-`[e( bf&D\(Q^;'m}1r$5G>E, P9ώCG,Za0rwx=Icçsq(]0OgiAj0/_2ad>Qt2 j(3Q`z" ]^:ԎQXrb]zO8iۂ?%Zg`#X95CyP̕J4Nձ>+W]-[L6۲B) :R1@a:UTfCG4X =ٛ9{DJ+ Õ2$$@iNVgD<`늈roDnX(c cq E$|I.OaN%9@V3-V4puj9WVx0u|`1 ٖep]'u:/h@nȝeO& ]kΆe˖GlRd.8;l3` \[ >X!@cxD!= K!dpLFS8ÚLw#07dI4֣RҏySQ9Pȥ1"pVHLGa&6T7h-a9uƷl,my7?eJ:iu$ɤ.>v#9iKzҠ;&/ P6La@L ,3!,˳ZA#4X@؂8c3ZzФ7$ge^tZ }Z3VLoU $F_vm+~v'hNnyts`jTqUZi~l{jJ_Zi/|p/\׉-b PZG6_<:t&lصee-\ش8PBPPff5lq88Jϩ9Q ;_FSj u;F| +!ɸ,bg4a`?ҹ -:ߊ3ydܲeB6|{Ԧ*L\Cp|~߰{SHy=KIeġfWCY:AdPU*!swN/̨Xh;/U`͡Q|#>1\Є6OtߍPn&2hA.;D\d 9ppC@nv~˜ |1Њ^. VT? 2xoPlN6,6;U5O TYy   1sYhԽ f"W''K ٽJb K- -p^i 9fTϓ pj&B|9_EZWcF ,2` 3~ja-"Sӆz>}IK  RoL) E9]$p[yU~ s˖-? z2N"#Bl\Hykha+Xs%;O;33W ^;4ݕC-A5rwO`y> Q u Zn ?&HKϟw/e˖*mYJ"-,PZ{(v~/DO:g `:d|6_5dA G>4@؃z.^0VkUFcD #fA ;'Z Q#}q?1Ca є"S|y* g';SWnJ ^#3\NM)kAX쿅>A6?@tS+ŕ x׊-[`-OBfEgy;@n 8V{~M&rSq2N _9?#͔5c}%2؝&pGbo"" Ȝ~kq(|u$F!-Y}FY?l-[ d7_@aV |8wh#z#vO4 P6s&`J KJoKy`ޏ"L3O|im.8>>>#;3 N=PaFxw|52e&&)4sqɻ=M. +B:7يF5Erwejve_3%u@-[`[ފC7#%H?K]}۽P̆EAΘN6vNz]8Uq|b0XKHoYxAN$)-F.G"O$O6ې*0Y@Ź|rtf˛fw㻫uڥ J|snCg?۴_Բ8q@oIyo=eAC=O =w[(+;sAnt5 3kfmۭ= IDAT <ϖ82{1ZXy աuٻy&B䡿]!a*P_ίRy>7a˖:lK-0V7)} [kf:һ )X (g]P02FE!p@zݑ8DɤDύaY͉Jk_r@tNqg `GY>p1\G1l6pd36} { jΊ>z c840)6Qc'81&ʪxvu{:dwT_IstXž4"eؖ-`[rZXn @4;{436>0i M[3͑M leb.l3f :Oq@Tr JeXfk\;:0TIJEYi#[,1B2(4n#=w%( YMY:aADG=h6cr>4Vs<}>A`: FC 00܊flEmQT̞͘flq(tFl 3˳ ȂM~SM pkm >[aj7Wǀ{g~i)kS)+\}% XԖ- ,Eotg8 ΖPt));`RJ0w3P"Kp1'^輕$m+a7 a1=q~u`4u 92U_Y%fx*@ ڝ*ѯUƨ'04j # ~J#)(j[`nt\ZA$]"9^w.#t8ek˖`[P"ÁRV^X*'c{_1@fhʵE;ޭ c QC-odHڧ4>:^JkY\g QCU88s`; ϭK[?Lb<9k0}//j~nyi{{5;/\x@D:;&Ĺߤ_]%G-[ eC+jY*xJ1$aBV:V>'Q]^s# ƣWu☫xO]y3SUg#k;3\>Xl(HǨ#zx=bp_.$ɢy\~Զ-[<`[ByX5Um8أ(lHEK'm.Xi8[BƋ|`F]X+(-\> u8XOc/x9 9* *\6EXJ³ԵO ftCC^U4iqU nL-[ Rs.Hj98|053( gb¨,7#/N5nl= NfqM\;&CUg ;_5um(o_cL!@Mfn DYe )gfrAzp` hY5j^e_8>?q}}/m(gw\+copG3Cjey^,S9=nw<|]*1Fea\nN_;F<Cyęj$3 ز|rbB&KIJ::)ޫctӽro25&X5?}jGwY r| }n$WFNMi޲eߒ ΆT4h *`xԧ`( C9vFtyח %JnLʬCuEh~]ôH}y&Dm:uRLcǗ뫩뫍;GG"n{y#X U{0K!]!G7޴ _u%\.э^z>>>- gܖ-[&lRfUPHKhV9 @fGa(z _7^&ȠIGŚO0j~6| +c7%B;G:5@H> #k |Qc_U{13@g~JB2ejz$KEk6)q>;ϗ0%/G_.]telGjp7v騾_y0M2T\a\/5F wUՈE6 0ɂu PE:L WQj/N?Ŝ yDS),,Wbka/9sK-ŏ=v u"݆7ws͓ùxZQ_q?|:K|mlROzJAT4B1$}HTw}*d *@A:>`iɨusdʪ +G" FefnT;>A;AXdUOH [Rtq8y& 8 iRڤ^@bnm >8 7wk~2jY:  lDzؖc >Y$ԟb!@2 J&a@2 "srEZܱKQ2~ޛf莀=`K-p Kf^s xW@h r] mv4vD0N9ݧW09-[i#rg^b5)k17vw6;kW1{L>R6/ qh U|˶lV6QGp/ap?t)G?qV%Sj'3kbJ f{4s fJT/@{A>)K[BC0s#3_}]Xx KL<`+LL) 9pq zprW$-@b݆sZXr62cdr>(}B 1ҵCT01m ˵ m3___>>>>pg]^ߍnٲd-?7[3b' bpZ~\LE,x$Aȸrv|c[ j9۳n:)pΧos?p/ }@|0edD Z CfZ0%◹zkw.+?B'n̤clh$L%]øgJ9At'?[8N9ۯ D ›0+ؘMQJs^J4?_??yslF6(@XLxںC +P Mާx:9˛qZCTgҟd=E'5tOA,^y|@xʞ=Q>TxLU}_%(4=2{.Q2~ۼHYEFvێ#|xFAɍ/_7Lo>\? ytxb]jl2`[ؙ̡yR~GOadT|vbqMU($ 1*26\aL3 Rǭׅ;wY:zWSG46ג{wdF(ca}{! |}ӻA0b\ owOߑbcy0g|hv[[ovs9i~/4Pz /"Zθ_doSy omݤh~`q=4}Xy?; فO,^||# R&[9 T<N }L+A7pwUi)`Yg09ؗ*UG\`"#Ĉ:<   =6/|~~Bu8>?>?oO|~5y"Բ7ed-5. 5DA3a9 F\\A|<xs'%Vf;kEO0V u(b|ʊuG\U]]7sDkY~}b^ F-Ǯu?@ic)5q~f*D.@?Bg]'¢8dLh!j9;~u!uomv[lY`[piߩ>'lAQE8.#P(e)!HGMtxzysj`JP;=13j7ND7Z7p '8;G׈:oꫛ6}I-)ĘrФұ9r5t Ы|^J'Xy: 0LsP|l2d-%0)^\\/nK ccR;i8+fE'(ઓ6PL 103] s_|1E0rJ'vLU,X, `_ʘtۨӯqo˄cmǠ> I IDATyBϋܟ 믿|^/h76|z^2?[l1lZlkJ!.NvM&R97`ìQ}Nq!ʳzMCtmE;ꛬY -.?oy2p RJ^QD `fd#juvE[lNޚtvZo>cX Pfkqe`$cՋ{.||5 M?e/1elٲ <Ȋzi5VlrKNp҃GT+`ZȪJh#Grg;˗|`G:]^1 ΰy"ԃwNW23qH34вc;3 ł>2p*3TG fhƋ!2|H"fd:7q hFb3v~  8Я1vgy86ms`[D6۲!i-O&9!ߣ5^ ֊|NC -UdSL{d I_NHj<fUmxjM3̸m#FOu*xu%6!!Ȉ ֻ6`&/f>c}Fj> \nН*V?{+3ذ\s 1_{\2<wF/ş uu___aBu,-[ e㵦nI92i"-Ė72;Wr4znlc'|A+W>ABjn/]F.&+cXҷʏrÛP[mXCU,1X5a^Dxna$sܒүwU+s׾kzX|4N^b8)j=WRcr!DD|6-[e-BȊ h,TԋFA1 Ϛv@DZ1 nYryI UEuhF 1iɌ ekV6oBPnƎݙ7=o28wnqt{>"e%+nG}[K.1"+"]Ft q4 WιiQ Ec#9v}-[~*mYJ1ܶgh'Rif~Ҁ d`P+Y_*՝-k1&Ը|-y?XK znd/%rN?77ԁH/Ά_0֝쬽).t% p즀Gd5v5gO@L$+e˖ؖH*`U f*L o-쐔暥00%uroeUU_GLq9s٨ycYMdz36b;ƙqURؙ; F?hKQT|b>/~6jabt ?7~ &L 59M;$|hgN[`[2<&0%i_n,bW{$"v՜5ͻŢ'kػ()۲i;D@+bE^kد"v; XՂH mGenz(ٙSfgw~9̙Ji:Wi&0-}UOP붑Z_'gS↪SH;JXx`Jshs v=va 6حe]H*GB4t-]#bHWSU?GHWLU_U^!AYu)W^wx+1+ehW!UY6 @`BB)D Tj \"%r BWTmateHU~g_U0ۗnT 7d )ZY;X}AZ0 Uj y4&TiѬWz-ȫHʱU0g84CǝiFh$WekjՖYr2mh$! ,rs ) AVp* *Z*CTp:RRlIfdPh,oi ]sEH`ZW)Tz{:_i[:fR5$lfV@܇3L$LkTW0w`kiqW`v[MaJ ,O+V%TXUn(*7Sꯪԕ[D&!06Ԉk(h] Xz:=JGj\&4oJ3W)KHTQS\u9o@K KdH $ЄFh mTD[qBmxL]wVJ㽪U<͐Z<]!iEftcpTW韕ZB2[ a$B".¹-tHYJA+O~s_8oTi} d<+kp*-0ilz6 ^X=<^U4ԴV!sۄNHaV^1ۄʁOU 4E*oߖ? C#dz,i¬&#jSLD Bᢘ ^W]]ڿ$pF#X2?\bFZꕿ" aKyAA1LALALALALALALAXjrrrضmިi+B||-Zh^2Sfv׃3oz'4?#ǫ{gaRZALW^y3gF|?еxXr%+Wdĉ\}(60a:l6zyr8-Rrs+X`Apׂ 7n\m.e+ǜBoӸtk@e&O̦M*-?IOOSOo`RA )ʢE9s&V뮻/ŋСC^{5F_|u]b?dɒ%SN !V) KHq5]ݏ7 %Ω6$dw&Q/׀g梋.|AE֭[y78YbE / 4hje\y啌?0=[oꊋcә5kVú")XIn%+xqҘ{Rm01b6l=L8㈕>?s }W&%$$s1f̘Zo3l0ONZZZ28bi1/<$gtW4h ># P=EZ>}zrAK`BTwb{)~Oxj,{?5>ncٷTBqJO1p߲?$IyyQ ekUU=ǖ=XJ?bxLeV7lή$^x`deO:thpٯڠAP+ݺu8aԩ޽{5W0{Nj5MG;u]O箻΄ x#o5u<; I1t~%gO6k8$qoӱcಎ;c1x`br@, 4 ro2sLrssmݺkyG}[oUiۺ2K91VkN_ͅM(ewX;) h999m$(L|gy^K:Ըumuڕ{s=wΒy@rr2K' Ԏ/袋xxWxW7oӦMvT~%пzt͂-9>a+svP6Z]#Gyྑ(~w.ay%w:b$LKk]s7S"w]m)Ҩy #0VLꫯ#?f@]111уӿz$>Oh{kt=ҭc͚5@UsNSvZˉiXFr<.o\~VZqW6 up ' I~QFqQGq}y`i!9 իk0aBgܹ⋬ZbۢEXt)/8 J"4J76 ֭[+5M'55R߯_b̙$InHALR00MNSGb{ibF[mh zg$''Gv ilڴr&L  A8hSZZnI.2hFii)qqquΧj[.~J=t1Ab !m۶޽ǃј{nڵkyDrOA8t0!(99b6nHVE7Fu2vM֭IJJj9' :D&TҩS'bΝ7UUgϞ$89' D&Td~:' 0AAf&0AAf&0AAf&0AAf&0AAf&lUV|O$| "I$!2`ZmH` AV Słj=E:7ZeY` a-4SU5xGX,@#f͂ p$)8)rKuhX,˨ZK` $4 &ԟ 4ݏ .4 eB  ԇh?AAhf"AAhf"AAhf"AAhf"AAhf*ȃPMYKA&@Հ󉉀LA-";Bs0*=Vy8(IRp[ ¡A`Hm èWuvD& ?5phadee]$v[жm;222(@,p \rŜvD<7w&uY7y01M*u)Cco+xX ɷ8~"kFW 4B.\ȯ˗HiӶ IIơZ-CVV|ӗSN>TU ci k*y/%SHݰp|A$mK(/@tz¥聘ͪб}c%ܺwj;| (e5=7w$S23WFc9&׭gW04$I&!A# >S=>9F=@G8uϾ ;&}zHX3 t'Z~?^>#<: wi kVo޵<$ E2ѱQ sve;3`Ĉl6,KְaU˯{s3Xk3ִ O7˖Š<`N{T_}V0,[τ +HާeYϪi=&4^9np$H㯋8?qm 1[C: bpQb>,  !f|麎裡w}"Ə2y{؛nE(YU4Mgn)m:3\0q"?#7seIx]=Zs?7odbäKn@S,v/ 96T9=*ɕ33Oʹ\EL:7m.&\:'܍l>y~1{V?)^koaߗrWxd+uyM />O0aǥ29oߺ?9i|ͪ>Bq8)O}+~Ï|Ji~.̥s6Ngk.<7<P9(ڭXSy<>| +FNŏqgqyg0wNv.n-Ъ=227l}wa?5eqmϤEk. #Èp<,7NGrgiM8 :aKe䩭V7K$'}XXqkCaS ,[OIV䴡C$6]ѹM2= CV[PeK(أIkۥom~GumGQUꛏY 3Ŝ9kj';0 1t0E3x$g:Y4w qN!'J6m]8 BU%>5j@_C|sXՍaw&&1"k*$dwb_z;Xlt]읻ټ~׬gͼ3t;3mw0aDZlf\ýw-flFہ.U`rr1q'3>Tj_kF e{Xɜ>NfO3a*--$Q W]gdK~.wnvR7ɤv̲5147q1*nɁb\#%Fϱ vsvLkOzr<=G GưxZ+}O/ڻ'ImXUx|&1r1x49-۳hZ@^ rvB pīesx|s#=i+J'=8{z֙ȔU|&U.^TGKR.Z=iљ%?0td) vy B$?EX:QTTLVݼs]%ʩ#` IDATG$o,Y2ӺgPX&%ΉJiQ6)DS-bҦ]L@!6>b\$%KդMl]7&yE-^R3:Kvât|$cH$lEii1RNGVm1qv[wc{V&`QM:t쎉*ѹs/6m]E(+2rvo'Ub]qa׋TG]-'NqX҇DLy B@Dl."kr~r|>4)ػ/^Fjj "cq`W$vm3+Ur4?|Y&O>͂fdq捷!,\#F ̯ Es+xE FBhHE: $9jʣL m[Ln]d~M8а;(m[ctJKy2:%v<[rYR_4cSN߾zBTf$ŃՎbX.B"(R]H+V]A`"i&jط}mؓ xiO4'@NAn0ӯX-dk Ex30JA9@ P58FN$LL S ޾EW'ZQNOU sa,jVKpX!L\XJJm}A3;lcZ ;cFc!%zB?~1740 iGS5" '&:K4~?K.a֭dnͬq1=yP.Ztiɐ1cvkXWRp[`uSB!Oz N ̍l; V8'rLҒR0mEi_Q!e\U.Y*ZAj$h&{gz<Trl>џ'*7^_ad$*#+Xl|4=?Y/עlLw6|?>UW)ȘaOȕT-O|LRZ&a9'L39 a qJ^1e|N3l!O~lC Yml]5`RYKnPӐHta G9վ+ ~/SFj"Nawn ?5ZzB2٬*-lqz`2B1 B$ᎿǶ\DXAa!̚ 2g$%8_o=$ķ&NRq2.I¡lK,HHh@$ƠԱ't론,UCyu:g__|9ݺu#%%%8OXC </8y(q]09{]´kW1V+H癗^aG~+n4b\7[-ضidUZ+ТAAg%6^|\-c0c+1Y_0z g}5bhRVUTrֶՉ.>,.lqgDlqI]2F 7"U-K*zY7M̾\b(Yݵu"JNpPǐ{-Zw$K t`t*Z[33k&6bd  oY1dem(sJ~,b]`bk=HIto#{t@8JZش#yx'45ʱ-45Ёǯ6lqc8vN1oR%^$ & Md ?%]UУsV՗M~eiw p޹碪*\1k}gOxK027OCչڻxc|p!CMҐY:`?`U%Nݝ'mžMKLl 6facf}fyfu-Ƥg˅?2\q~\|խ#u/`pi'3w(תKy W}&gܗeԾ O=ӧO>F¤G,q&>?>HHNDCAvڷjY;e$f})zu>[ay"f59ԡ<ѤU59uP/[wٟɠc;%$/^ҖIOKp8*[ULQTc/ߡ: u쌃Z^oU e)[&ۥҧ` #]Sv8ʪF>Ә;,,i^BjFr2>8!Nbɚt9c8 sri!)#+I8D½;nG+ /҂d命mnJNo䥗^">>͆qa2¹\E~dg<3K>3(mQP+oH-QVi8ulCG"Pt:Q1 ܟ ym,dD/p `s*Z*fPdRף  5XW,,#[hP^%|h:]B}  ef ~fV\{V|^"ݬhSvTE%&&^ADքsnem]\ xM(M\0,^Lz`ˮrǩ]pHOff|fY 0嚛\ du)TMd*:Ј-QΪuطL oB,( 63ǜΕ_~ɘsg23QJ0pX%d 4N$&kxe4ݛ)SUT wr?"a*ZպM7nf(J/Tx!$}o ]4_|&<;ge^}^TįA}ޒS<'o'mS8;j/Lt}{^;x6|׎J`͖<6;p%nl""kns^s7o}sS >u)o+wj+LaBgqEEؓq܄.["n *g~Ÿw1~IwMx,o/-l=X3OJ[gpQlXtK&cX>{iV\s8ƍ'ٛSP'b[p Lt>IGR_̛ϿfsӋ\~[ ߱Wy;qN}fO\i&t"A({̸b KE׍cSYWmV+x#K&G<6A`M$ f\㒫bS"2ףe=&NRL5YaRZp;Jtފ'ZrCqqcZ+uAF[hޱnxUQ<=yd$;ȓZ`ѷG2}Od^ (?^v6]bւ<L} 5Ðxuַ, ? TEKn&m (u?Nj%sgw*>zD3+e3]񕂯RʽSKϦOPT&aW}(T+}zjo}G5wN/?c!'gPG6ΠAg_0{tdqg0bSo<;r_^+=mQ+*5ic棷ߠ\nOI<"eZŇ=1,Jix8~[7S;cOFCX_VfM/ڱjW#Zx4o3.'Zҭ5~{=͐'ؖsUg#'[$qM1z969⚣GC櫟~0_5(~ERU޷myy,s cM;蚔̷K3.ÇfO^$j)hۣ @ !G!+.'&ֆ)cX$ ru o1o@~Xc]p.&upCcn9q8XJ-`тvqdٵO>DL$r rs뺑 dRM;\z̺dXdL 8U;K jg_-Z˶_?AWk&O# gEwKv LS8?%x+._u[si(0%8W (jۤ{6b$Ȯ|䨓6$]7Wf0d>\剱0>y?}RvagaH2qN#/ڷ]D۷i-Y9u.AAuZߖSΨ}p߱|lӇ%kV#&.ge?ȞrVĀnkGqߓp~wl & 94M[oҧ1|5[(Z !ceIiM‘C2}'Zl`8Au5%1LjKǟqn[jr`Q%$ڊÖƺ(4-$ ] h*S_/9> (,񐹭 j(-^+<=P,J-QqW0mE|}ˋ<$:-HJu =5vwtB `U/zEZ8XWue>;?|E2)(Uȵi.1g[nd؊M@ BG*VCy,6Ǿk̪׿ ?!L C$iǔr_ٹg'I m4%U?erX/aӭ"dhjfV.x?C E8soجCTk}\,zy4]]ZJ$FrBKոxʊQm{NZH!z} ݑG?vs3sO䌈D\11яc^7Z~Uɒƹ'قӽ;xpVHE+T\XM":筲oc$lI]XJڻ[~O6#;'IUǦ" X`.@7"5%GzBXFOgDyFAANAqFINQNq 7o%?OF~'v~?q\v,K&a:5{5<9;%>͔ǟ˱yL}Zt<_~ =Gg$DZzwHnۑ)I\n>_H?zВ]Z~ ؼcJj<YlSJvZ?%2PGX7RMJJHpڰcp{%|= ePd0U'yäj2|`_Yˀ1eT)S򻣖+3(Anμaɯq;yf#E&!hhݛ_FyQ`ҩM:rL4@ZHXga~j2N_K'SKL2#Z٪[E9`f}#GWN:7W,IQO"2Wc-شg MD X "Vki^$smhϝKΝtEKٵa#v"''"TI".!tR۵#1 ֘233=z4r/Z6AӮswsǣphLIaٰD$@f7)c63?+=S&?3Ӟ בLуz1kڦZ釙ԛvgsS)6NOٮ;:_z=4q$Y{쉵jѹy<5W>-O9r=b};Ν8;b~\'P1~WpS2=ft[')@'}-1mא#?Zycr|b.uLLu-u`Ws3aԉs ޚu[Ğ3vIDAT;^,IcbMm%0?RzTc!\#ݵ<^xrz>ߺ1x)>ÙڮZc4>.߱>-ܾ=><8 wە@8M'pZ"EiŇʿ_\4<1ڱTPde\?l)m]oט#=)h=J|ڴN')6R6b*t]uR(d TUEUUE _{?G?nB^IH pxvAV} e*:wA T.@iHn@X_AR.H݋YۑE{i5,{vvBCȚ>F(j0ั,&UD% =/64 Izv B2tz0*=VX/"AC7_uY 6Ws7hժU_bIKKcM Ь|[*>j&TRRj+@UUbcc)))ijC4|>߁.F*ЌxX]~C6@(]<駟+?Y4^6K/b[aa!sρ. N|{ c90sM7u]o?.F\ve,Y@EA H])yFҥK3g6m}vnvZgM׮]9묳߿$ޘ) Eҥm"/17Rm*l2t]'??-Z4j 3o߼]|<:jT}>o&3g0FIS4_O`5@֛oٳþg&Tz<V^ի7n^zi+)Hk/8{!u4Yo5,Xq-mÔ<6FKw֭g 852338S4-8w܁,˕ izlܸge{3Qyzf"b¢FP6JFBث\(\eAx!#(Ȣƫx+^)+C +Ao̲]hd{/&59sSU]}TuM9kqYe͛7w}+$f}޽{웝]=5 m]ؚh,Ûڻ֡mȅ.]3U$ۓܣ׵533#GG:w633#Gg}V֭[W5sL&yf9vO?T?.\sMח`z/;rO53-krqqq^ZZ믿^N8!'NX,⢜NA-)v9BmݺUv!gΜ۷ƍef&oF_ZZ_UΞ=+;v쐭[`:k}x@ҧ\X歧"M&ٵklڴI~駟Wk={Ȗ-[_01;[D|խ6Sp,61CS%kS9 @ !cgX:cPaDŽ )߂Y51Lb>[,X\2Ћ! mǧf[KJ =~l8Vo me,&~#m/CA!3D0>TLhul/M !][/igr~-$뜧QX?`pH]嚖`ƐYJX뿲V0u`c} /)0lkǐ\ } `1R䇬be۾A)%|09?W"7~`Uca5>_ӏ9u".D$P̟2=rc[﫶~Q"2ٰao=V۶by_l!S4!`xr Y[YnZlg VjkkQowm}!ZeM ! /tM!Gm7HDf/o돮myFm׵އGއX+u %bRj-yGyLNF۵ז'Xw.*X\r%XiP)mĖJC^\TK; #ń1[UY[CXkَLWR3"=}LGCO=Ʋڱ#1YzձSbiwMUc1fUJXH˜-d z6hzn;VKz]?~N9l}:D3&}*XւKOՔb^UDV.jXծn~)ʗ 1 2csW.vTKd@uJ૚U!Ko c"D9VeQ}S5`H]F8!vW ff+`{n ]L? tbW@;_q԰d*ey)xi:(v!+Sj \K ]"o91٦&mn_8N]0_P r1nZ7W`RcU-+_jM6}_}9c—櫀Udh[ ^-x˜+f@kz>5/ጶW*ԩKڥnW)Hަo=g/W[\T2ݞL3}_̵š~\Yir4h iz@WԵgiFS(vLsMdž-#|0S 3ܶΫ{WXH@ Q~*_m0ӷ!)uz4|U ~"ek̷j b/u/*_ h۶*m_L0tLFB]:խcM.=lFV z% ^WM/>|ӑ g]6_yÎ+|zP3UUB BUJ `.i*O_1+`#YK)m19cWi*hFz1}Z|ksh M?ε]Xh*~@ hՏQ]\5`fB 4u\mP\0W%ڶ2mwp Wutl\!n,^ 305Uk̪ג}i[ 6}۷מZ @J\1SuL )wX,j|'bs^Ò^Ro ^qL3!U*Th3U\mʚ5m~uu%TRZ*XmH} j)#幾&)H};乯=,g} `!aW MKڪ\}zms_{ݾQKm3wU}/yLdžnR cߠbF1{ǹ–-dUb+v=_>0ӾiBefBѵ<̈́@yc!!S|ۑDٗ3|`}sVlǚg۾iʪ-cys~$@/>_&}~iG]ߗڬ~֗fW nB\\ծ XL[J@>!{XhqME]}W̵1tSb^'b2]益CmU1!S11= fjT}U0_L_O:Oۮ}1/߾~J `mj;6<*[*])Ӑ!媼L?֭VLmrk%"2 (rj}/\̴5Mb~9_н ?ONg(] TTiw- ۶=h!@3ꆀ@FR`l?[[Ⱦ:}\CڛL s7'10 RkLmu!}ۮo<Rmb_/Ww:A"ۻ _*`"}}f(_HXۧ@7;_" M0_RU\K1ǞN(gP3zKURLf5}!c"|@^M m,dϹn*&@U@uo2P1Xg Xndrx_ZSVr@BY _"emV|rS,Jjɿ0,.oz27D[js!y~9+ZM 0 M/BOuu߳)}u}+L]ܱϪCEoL˽+{Tlˠ[j b_>W@.It 4PwNbuIѧBM _"euY3Bܚ<]`\U~-Zm&oP{:[|U*b*|{`}]i)I@Oi]]Zuiz{mu҃JinmCt|χyu*Ru m@9p4%2܁h70hF7z-uZ3ퟯ)-x}=L+ i-Z5sv=a+-v= e}~|t}ڳ2'v77.*`-S`QJD eTp (Ph 3IENDB`tootle-0.2.0/data/screenshot4.png000066400000000000000000007475471336712117400167340ustar00rootroot00000000000000PNG  IHDR`%ԉOsBIT|d IDATxkdu&3A"EHQ.)\:ayv؎G8c+ mJ+ V+DzHH ~nd̓Y{讪{;ɼ@FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFmwB:Gȸڐ1[\l"dB1ȸ : 32222222ق~222222֏l!L0z#MFFFFFƑIX2u󞑑1\{=y}G3yT]L22222 YFβ^Mv5.'####c0[Gݪ\-݁"/--nT]͊7EFFFFaf]Ev̲2싖 j3˱+nPneddddlEk- J|eE|edddd q')gel0nkm~llߖ`*q!_0v CJ6B`nv|!~= VNl݄$<Q$l)j,gW6ӒqU$e]kTkIFAFFFn8`$bW )w;vqڅ1؎]AĮVjmN=?#####ƸQ߰-c/FqW[y a7B6 1####cL?Amm%[6Ί{'Qq:bDFFFN8YFEd6UnZnōp̖b;-_?ݕ klOl1."Hظ)q$_%VMv;ȸx%\$L`fP:,)~zoVwZso=b;^4r'5*Yl0Զf[6pU]Iظ("_Z6m&Qsxv~ׇz6.x3Ġg$macŸ􏌌Q+Í 6|mtq+ A fC؉5 X{mԻ.qPqՠ$f#VQQ/Mn$lFFFFcT;7b%$[M®jkTjaFTֽ>l5JdHv*^z\ZX&AꙌc3(5 J6Fc D pz]w}{|&####c5OW?Rdz=ZF̆]w%_N?{Hz]w}{|&####c'5LKFeAv یeǍ,/C6^]ȽV5 I\~6LˑWێǍԯWlmdIr+{! `3w+o1}F$l`; W~~b%ape1^DJ8Fm]W\flF_.?Ջ@Iu*?um{n3o91%Hz]+pͶ~Ur_kQ^ &AU$lWQY65,J^)ٺO Dq&cwڭgD5)[6 ?XZj[:YK3{NLLSC;#####c,L'nxW|bȖzk[ Ælvfff} {WWWuj=PJlbϞGo\Xx !6 +ؖwnF542s˙|eddddzhK.=S#Sg4VrQYa_k8oow:gD;4'&"ެ] wIXHIA 7ˍU7^ֹ^!_0QviwD;gddddd  }o&XÐAX `0Ez]*U}$ahQ[fdddddl,`}#X$ $ }hm:Y*A0*zW1y=]zNHXbk aUaӰDv鱗ϪcӀی^+H: Fԋ 6V7AZOazY W1enF{bqFhSbKc&`2AHFլk"_61onciq7=(x˗.evg%###ES&R^$R%kJvlPZ~_HXiu',5\áCYj,/lwzbzf.lddd\0]*rhW6Ueb/&QEƆ>ilH 089K#w055(nw;;};hedd60 hRݪbU']n^bDp@ֳZ{U鲣BLv6N{1S=1Cq8xZj5;gΜ3gPadteHZ_$z`UK$`aķy[^Jv1XY^B@sRFFFAYjL4xˍ[oM7ހ٩ L( ,.-cqi^/2?URv Oį"PIFnG|` ֯jS&-_) ȝՕe\֎.c`>##cgeB;ĭ7}W02W@`rjq۝C}^>}9=eYxd4J-aMnY0)cVl7tWx/ 2,=^FFFF &_Zkƭ7߄G'ſ¯U;ZK81<?ƽ~so9($ICנ~aV(zm ZzYzKIWzm RDY٢! -_fo}˭xƟ֯ԩ |Oz 7Fc,Z㱿S;4v8 c(^8̽4ͱ˴Qذ Cv%gϬmoƧ~q[s#p,ƍ_oz|>ĞC7qM?O|C8:sP+`fb#+oqqۛd PuR Q2ll]}?߯uM',cie(_ih 0ڗ].י6JSgόB.=NN4p #n>\C5%B0w@u`WT#oǹ~O?ٙ),,-HV~w]{X V_Ғ%勸]tRbְMmmAU0^&TՕta09<rΟO"SO hS{tp18ľG)^}1oup{UIҺ4.uɛgo>B>LjPu|ᅧE|~܃"eU"6X߃QaҶ-[40Ơ>_i*3hUsٽO{ggK` AM0oX~4Pp]'G_3m:G>~mX=+/`h}3x_o!+*8ۿ2226t:m\0ʗmp Lw8Rj\8H Mk(腳pWcbN_⚺ Ϳ C8}"J]@)c |/XD(qRVj+؎bG ?H~ČW93a?SxM7?iJ/"ۇG_F&VWVc05=\璡D}?[ҟ@v07 ~C7?9VFSFK;a&aN~Q@-gdd\5DL.:5pms3TM 051xyP hƞ3PA,Ԧ0ۘq߿`rr1 ផJSZV,cfXq#`Ћ,6Hav>~_}sQ$QNVk{v=*ׄZG/C3,̿:G'P`ޅ[_)150ȎCsG|[/`222v.}Е)5j+3ٲeL7M 5a8 hL֦g_8Ը|, =|fgҥK[瞷FKQ,AX^.Ya}Rg|EV_?#gϜ@G>̨ z4@k<i_/pFOދ<ѠZz5*JƆG? ~i ,##c3a]uEڠ gQy601QGo8T^ K01:e4Ѩ>Es,.,SvP]}U|K_Fx½rEHR$ Pذ`H,b-m3V'[$)LMMDrD,,.nj7PDj}0H1{K{?A0I_AW?hWО X.8<7OwyN+##c3a!cfWVY]EG+(`La'P@5@sQ]@9\ۄ^^Fkqg/c$yC`>y<3x119 |o919x!UK@oZ*4tigX­elV1;;__uGSqY^z'~YTs3uwSbŬ/58 e h4Pʅe,/R y8rV*V 8:DOLn!<>|?7z zV\"_օgzkN \{R$b~Fkp9o6ÁO~[Garj X]]EIfzcA<u%|-^+^;SS]\Sa~#8zx135V۴so///j3_I|k< s^7;~ON=UUce2R^kQ,#gUīu~~nH{h;|멧R "tJo=@jSς!"j5,/A bX#B9hP.ϤPk{FFjf,*Po6(h4jwW'̬22221s ;pW+ACu"hBr ˗p1N/p.5/Px>AA!z!^Hر#^%T^(͖pî| 0#NXdl,Ua?=_um3`Mka  U?Ά%7B^8@ Jaai\8ƅ`ϴp͔tcX]Egv ^eCjZXԸqQ̿"& Ж|DGʰQaYJճcq!`u$*1iº`A^Gf̂?UFFFxKRc&_7:7ymprbGcTYU\ZX+Kk߿_*EfՋ ;ܧ5zV 15V B"e;Dfsh91 XFFFFBQXXZO?œE\(#:WPo6 =z0Pwjgdd9[+F^~V~qq ._B*1XX\yyPMC(7׿K/ UR6nyv,ykPZVA#&`j%񽵬_ZΡ195\ KKưٕ"70wɗñ.,\iШ1T3m?+yNxO>]~K,a2Hav"b'a{G>`;4vc X^ZDBVsX3##cWU+Wo<#ћފ;=fz Rj|WKp9P5(U@@?v-OR#_!=,f>%QNRB5 kQ0ƠQ]cee3ӵM=cPJ{xy tipw"גZ }Jglw7ִ1^Gnq/u ۇK/05=52g_K?##c@CRBMe7KQ8u^h 6XIʪS/'0;x1v*HUZVcf;scۗh40wߖ6###Z{b5R0\!M= IDAT l3N)t1ќJ_ceddl 5?f T=HMxa0'qFZZ^q"]ic1kh*QݸѥȍĿm7q+ 3شeFFFFFvcP* Bю;8箶ledddddl36k;Nol+*lTite.`C?IFs7[nl+ vӍ]XFFFF I,Qq"X~k#'{`FFFFF6`]:/خ h۽!u3!=s!ؕ؈>8 kq'`z;o}/kbm =W]lʽ(xHcA9"HUgghȞdl}c8cqgFEiDhsbUMi\z V7H WL+VD|v~Ȩ!.iDuiAA8/,LyoQϮNlf b}Ȏ9FRJ6Y37検%H-m ʲDϑ/jH]_+Wr;6%h%~W`P}+HF0Nl´gFޮj/]U K1׎T)ױj*p$W,WB*Z[$.׋*JT[OK6}87?6g#Imr0v.2VRX]$[%gcCƉ1-֫a 7H0xf'E0R:!El)#ș fRK/h0 1تW"5 ‘̊_I{\*$—+h)\N0DRBWgkҵuÄa X?{}ggIn+lrgfF$ ToaK&nceXUwB"xkAu()G̩cIӥDi@%a~P\v=]b4,ĜB9 6Q1QBQ#&r (om%o5.^socb)0`<OPvf/+ +U Ye@,U΀Ya)B).-.~i4Q 4\P"1X+۲po["??uⅦ 5)d{bHN.h&d"'-aB PFIu pti9mJXXSR,Px#Xɸ&ɎA,J!H(x[LH>d跋CBrc[\)X<n#&qA_JP\zp"5Q5"TN( #9=([b!ɗaB\8$&m>>- SD: mX[NǶlFY[&’01ٺhUQ9Q[PV*0IBx  M<$cS?:8壶`C;+C^4Z O6w" b)tjTb?/t]J;Bf;f 0·Tw idDЗ~z<9Ke)ʃ =_U"tʏn2ã?10Fy%[:jWέFB)A& W`vt8sq]iƹVh > ttpT]Gv#u~*oSt B $,tx?T%y(I(éF 6bȝq0 2V0O? B䒫7'H\T1!'؅ВKH!&r1q,2oUQnh)9 ; \Oi3 % ;r+mwy ?*bF~tY,#*DɌWd2F?< 0D A}Y x24qH}9d܉+c"duM0a'4YM#Z[ܯy"FB[m# lOK[2dEk.=n2hC:*vyH1 H*WTDBTuf)җ9:lW"J_z)d7+O*C PGP8ހ&u+z_R25A?R8|뇫Od#)AܮN&DpJ7Pp•H)҉e {L&+>Qpׁa^O>2 2Ik&%#țg.irjFEIjü+OgMY UH_X㭀Z#URo9}ڄ1uI~ F$ZLJ|&Sb*~&BMp3v?q)1eo_Fql ʓBtAm Jc6&2wZ;I6: ;R]ʥבqd]u"s9^i@hz Yv!]E}D 'DN^1!] GQc\U6@*c GEU,Qx&u7D?er!E@ ۖǽat8+J` QcFg#pH1e6O𡳢rUHP1r}9=@P֔sxY/r+L(xx">Xp˜DO<g^RΎ2C&WOZFb}ፊ=[!Bnz^3̢3}g . lo|0GEBsG'R8@ yb{R`qB#'Z E[['$ A:&QxA"_L˞˫rf ٠hG9IRҎ H6(olcI-#)Z*ypQ;e r-R{Ē(DTqemi|9$R0l "{p-;.SX" JΫ6]ϓKO /E!L<]kO":%NWke?L(83"̅gw|+.RKJcTv[dR8\Z;C) qKyǃW.FYBjݫ &eL5Y,1ƹ<^Hb,TnxH/O_l ޾ԙׄ Ɋ,SSS n*ƿb"a/?r$s30# ۳Ҫ/tK"-kc R“<Lޒ>ferLz Avr:#^Z"p%bxE-1U 9V;q"tp6Njg2Q}0IKq2yҚuQZsޱpk* ۙQ0.-BD8b=’^%xN2C6s $rC'*,+d}K*!,*7f@rXC, b`’{Dm}`yGm VLz\VN7!^ cx_óA.nM SkR]M'c)<M7k,SBx\Yk/7CădTNXƙը>TN\zbEEr zK4X2%wp'/x1s7'0a:Mn'q C[P %2IL̴fDC2=V]jf?ϩޒ.,7ƿ!4ć: rc! j.W&!$P=;k6XlM JQhߙY+02a|Hd:a Ĥظf`O.Eƒ(10ݽ$oA%HK+ڨlpu/ 'Q#! ڍI' iDnXwqQ{X$O)6gMI( BW"emK5~v "x5/ %j<\=fohؙP/ ٷľkCpAݷ{bv^`jz IDAT SSSh4hPJjnicqq KKXX\+W0779;wϞÕ1w".A:(APʄ~ɕSLy,8-76 yѢUҤqes IÃ,<9iSԑ0V଴LF/+.FWNnw}D"cQ[ZXx\Z:z rp1YԇǙ 0"(cR)dJW*JM+%nez=xR "zdS{/q/~~UÒQ ͱ'p[E6%}IԦ2^HNū /L釖tuaXq.9'cnIL8UHt@%\_0`¥"ec3]5C0$D\V^C>vr+$?/KN0&'t5YLAr%/] S{fqA\{ nFx 8rʑvsgMtUڤ&MLajzc Z8s Μ>'ɓo p W@pCC4q%~Ai RVA=T4&o/b-iPPELpS%n3lr!OKā$zKa7ޝHL*aLILQ 2( Ed({).9ŹKP흕Bem-&/oYX-A9N||S#,99!ixbHId X0n#l/7"EKd"lPJƟS~S=Y&^BGyF.c(X^$en?&0y־ }Ak\YؼS"ߥ$_aC11n60v;'];߲0G HH %d3($<DQOH)S>Q-E L\a4ⴂqt%DI yS{4ź.g|*M(V׬4I"i55n;&k.DsJ}}MG߄nwu,/.bnnN X]YAQ\=&ZEa֖a225ʲnh6mޚMLMOGq]wjᥗ^~<:ϝCgiDk`/Qu"2ADEز=A :WPMxuRsA<;x[OmӾs9>,'tx7;C)/tV:6rD}AD)bP=,]RJyY~3Y \7 cb$ŏ-'k#Aٺ`$p2tB/yƃl3!ODt%!"1227&8S1A`% Np(zlf yZ',O$YɈg>&Q3n"|F.1%(a)QJYR5ZTօ]*K'ffp͡λp=o4.W^2:]6RTl%* A,/( W[(u%\p^Po6q![<ay@)] *(a++Ǻf&,1@x}K'_e*r,H\Ȣ֕hrJюM_@~N/c |5Cۊry~׽$i6%ëbWw>ݘwZ^w 7A:%y-+{BZlVY&"UI #+t.E)S/&&M*!,Tews 1['G&$3Ίȝ,λB3AI:kl?+Nj ,Z=8p!wݍ+WpXZX.;y˕x @Ձ@n .=U2 "MTQX Ğ tP4#|fW ?,т1\, !cg0qUGHCZ/=im_7A$Pq ABqH\}'HXZTt7jE>5xᅧ_&&'055FJ\~.6snUy U5b\X?]u2W5%|IqW. 'bpnTWP'`םA@##> P2)t;*Eŋk×˷ 58s9%(PBń6$*95i*)[ ?a ?#eÖ0~:7CEiVGڠuݏ[nO·-NRi5#UpAZ?xR#߯tɢNs.҅ R8p>OW^SO=/ZA] >'ƏZû"gbPԹB4w5n_u2jh4* .0). ՐX/=yjF'mc@43Xv`2 ^M$$'d>βx<x[n':NvjLc 汴0Ey,--”e VVcjz{f195LLOczfSӑBR2p1_Ǐc}ٟ9+x'02%\MF/kUV??XSE]uZ KKrƕ!G+/̈́ Ǧ5vc]B}y!ZJX|9O`lnd&dשZ>EQ,e }!7U E32*0v9biY# =}Iq.; Xh[W+Gb6[E./&K6l< ~8c"E#YKO܂w?b;i{*]0'qؚK3#zPJYҼM*M⣴lWM񒌬ւk8ri>O)uѷdۉeQ~ĪAgz<2?'|FR.kDz`^=*5,/)IJ\#Ri۬^F ;s<=]pƛqÛo ӳ{QDiC0ZipEI|-뮻GӧlAuCVuxxFN)"F(`UDDrI&!.\}蹂t4!CYϰ;D|#lW[T8r+b%lj4U[ N:}C}]>} m c\qC Hq& 6d8c=lC-ye"A]+LYOQp7)(pJVu,3A%BTѫ@+VA 2 !H!eWl|RjU+)UӢ{˗K<ꨡ_Erjk*aHmcKvw:pux0?) j \Qgk/k/ҩQ# "{vD`_H2r:ScҖn3?>=o.)ݍBh4(_{ VÇ?uFe僕*ɚ1T~x~ ~T!'$>dBp {ڙ1:} >,Lil6fYvNBue[W>Y|0UXGk#ܤBk.Qv:Х`xm1$w$ױȍ8z=8z*@=R3v~7Mԧ?~p4P+}ҽCQ)q`}k4qVM7^ ??+T| _F 'm;Ne(~a`G?&$嶠MR4oQȅMSï>U6yAجP8H/WakRZ,&ɢ\#{uˈLugKHVqCe);of]v#2 F .'bP ,1D"5Be Dmc!F#]^WIvFËudj8xYANVq hWZ(q&j 06rO¼7p BM,42 ;; 8%_b2".^ۼwhP}X1e`5ƽ[kZ÷ފ{Qd/Z[ڶh#m[x/Ocu]~#Z@//Qh65vόœfWGƀJRi;eV ++hZк6d@' ЦK'^ť_w߇o1{h6v^lcueGd9\8 5溸Ѣ/O8{?SLpBw}3y1I;6$ eIvP)_-JjLZtgc$ƫ틢 wgsQk2C8ɬ0O!.Ex'@x{sv׳/kܤkC/'~;ivsXFT7cdB1 :7p>ę0,YRڥGc!+  @L@p:.:,"#~LȎbPNJV,ipUȏ6XeDQYV)?S.?:b{Vl=ݧKoaP5y%r9Zhj1w7q~}(}tJ]vO|}++8gBx<!~_xZ&:)D`rueYzwUY zUBM(Tz={BeYnaui V %0qЩLi:w oڷ?N혘 4q:Z++xp[o-7ߌ{ OCd9f2Nb"|GUѤYkhDo܀$tiDEZL+|/}\zƊR7SnGaNbwBEy2҂F9kOU)ޚBո(zB;Yj(WUv~xBrk_}h׿ 4b+ZeݭAFmTH1"L#'X0y6E):V p ^9qGRqeܹ9L¸('4ܲAL|._mY]5/g%`f;Rڒy7 d.f> mBqxK% pVOAhZ~gN+//]jgRkKx駰2w!(ȗ/RFOvGՉA>DRu[ݙ5燵5۶-(QDJ"@P (wdf$6nP^fF_|Q&h'Fc19D !MMnk\`T E,. &&I<<H'>>ŏpws_z5x_m;t<Osq޾>| MyUo"S˖%GoUՊ RPm3]ϼ U-u-_qtL–tvIzeE^#rZ3CQ Q}Lf5Y$.WEL0"+n擙YO,--e[;c$9CUGHP 7 #p44b5<-DEJK 8>EMRАȓsAI#*'^i +c`H0 a-a4q~˹D"$Ҷ˳(VK[xM b( H |ZJ-BѦK/7ğwpel^wۺݹ< (JRQ)&ƓC\QW9\bqq  >cڶE3`<c<c2c:Ɵ C[(Yd* ѵ6m1Y_oN98p3ͿcK@%N'!DsÐH撕1/6Wngk IDATO dPe]l岅@CAkY0kwf!7=JȐ/łԙ km,0e G =֛o_~ .^h[z%NG~dZ&lh^6=6NlO<'ObmaiyA _UJxPEi0=<ؾ{غscooݴBࠝL VN#.Dm'egn/_y/}0\X6tamm XY>ek3~R  ľ7* 9,KJ2t^ ^&c%""lgR{ "EHLrH-k*,D"[a&[){"}gHo_%5so60urX(}EL?ss?&rL?'GIY, ?,\ M)tn  R)5]W PqT5((_nOeV%vfoK][6@nЛt-mޑ,="`KHxɛM}ge"ABHwW(ga(/mo7ŋ'0=ZG?>Fw1ĉ7/UdKgp|Fb]ܸ~6捛ع4: ݝH!j # _c5Sg͵'=~ӟGk7 &Ikr>T`y.I8$-N:"`JJ|HeD2`Ue^d?Qx⃤-S MQB(-ʚ^Ml/.#xYg5#S')W29ɍٴ#t&~v.~slr 睏N2dFc,x\1kyHHbm_W+ x3|FKL>-.ӏ1Fmg`VWWu \<#H̙p>p3؞@`PWXXZu},| ck..^ >9DGQwxo|k. FQj|k_ڱ5uT]V i:#Q@f A( M d)'6KpE2I0`)0V\,,RYRXʅEhćFҨedՒGfy>wV5ʼn4HH7J+๵n7JR2Um8ֲfXyGѶy./W{)TD0_([SX^?^zE\"~0L撯dGs#snOT>ƦnD(00mZLS' &) FMf%u] A0=u1j6bmc>4y)cPh؎Pǀ#]$"1B3 [ww3f4_`7x Dx}brAvړD~Ѱ<2wKj58c52 +Xˈ՜蓟QU&+k6eޓCu\FR}&_%'VqHP\6fi~@aJ_5?ֱl2ڦL~;{ZeG{dKIN:ٳSE,#tGVY Yc1r:C+DjJP1uQ"?lfDfZvHŧ*f: NjȲ64? Jb$3R' fvI[$X 8;ْܷqr iG-}WK.>d:Kv?W]5t[=̤ Q܄H:7no;B;wq<=F6 / o*a8pXZc8~bǏo`}c+kDؤ1<b11<2ܘqҧx`_Սd쟰w}9m`G16LŚ]t|P}>$c LG}l zHۡ=(wi;>}lɀxWu%YSL~^<9`h|)M݄l%܌Ifl}pYM#g ]Xb8g-dK6o𕣟XNso{$F X_E*5qs}9ڋE)~VAJu)=spz}VVoHDXXXW.K ("gfLH!KQzT8,-% Si_UX%~Jj^<rs2QR2sDFSf[T#zWo} ul^ć|x<|=/?/˛VQ{btjV0Gd"ܸq='q8"rA~_P ]3Ę;un nGph+`յU2̽c f;KMv_/|w"P?Gi^6' B7@dM_0?F]9w~mϟ9D|S5vqՙ!11`RHh*Qwf+hE<_pJ{0aZ+ ՝.d2#M |(Lsyg70J@Qi[lN-!!H u*SJbF&l[Ŏ'35ڲ"s_L\O~w~Sk}uyn/ϿC@?We,9»䠟9 ' p )ć\ uj⒭O;`&p L-vu..~]0?#7R.rH_I^\A~z-W,k@z%bRgˊIS>1$g#@}yqѴkt"70L?O7yXf;[dƺ・iUdn^ i3MtD=wEie@:y`ɗuRF,s9&e7S'W~2Ff2CNyo& [ĦK A3Y->;a&oA2eCz|{& <oM:tr0@,,gZ$a!*Le0\\7WkOޔr E=D@C<jWrUU^FU-1<9xW>2hƃ\z.\71>Ēu2ɓ8 n]ōXؘhkW7/SOc2 6 i")G6լnD+eY0 !L|;}f8#rYL02O鏒YYF4əyzl1pE^?ޣeˏj[K͙Y &)1MUUxW_}oW 7-3eH|#%{ ٧ Wf0˲qΤ%9R[2Q. /dd}5,Pd`D@el*Q/?e"2HrJ ξĂ)]w,w=EY4s݌Q\"p%}f QZc0-~ q#@xw]m_Kl^-K̸{/ <>wV\CHv9<ޝwpwU"QPP;*T~^}ڹ˗15?~j8W~7a4l˺Lq)L.c  Fβеs V{֊{<'Nb2>![gsS \2 >MJ!{^@IBzd?Ai97Q \7_2{F 0Q/(>u\UnVaʹ{!{Ės,XBm0b~-=dd.6m{r #"\zDl:"`@= gGKvB)0B 2!GLg(J*5~MZ.R6Y,Pmy~Pkܿ BVs%+ fgnd[:0V6Ix>/o)قd2=%h%ͅLe2Bo|8~8~uƶm#0KHΜ}gϝE5h&[YE*|u,^ޣ"GW\~&Uwj8F9p/!\;~ mN, vvC3pK&}qz&@amۗ/c3XhILq=8G8SpǃClߺ-tD+XEb ﰖV9g̯)GO "$g'y 6Hz: S{!uuTGyT4K "P`ɭ IśQD~,dUM"ߋ21Kmv#%ӑ#.#8,!y9P%@Q ^0MjMI%ⴼk T#S&K rqA -X랉\ŘBVw9CH!:jV,cjHZ9AVԺ>[Ƒ#'M^•,SiאzxI=ZycP*f@-_٥E[¢ fsgDڤ"彺#MI?sh͵lÕ_IG*$}{(/ʂ#fk b Kj)FAEΠK $(Z8L֑>TkD6 1$P-\D@1΂G0*9Ks&^= [Y};ˇܒ@v!5,7VwߐbDwr8 7+W7Ga:FBG "7CqN 2;K/x`VWWPEL%tO w|z,`%.2u.4Q&c J.rxSx7+"m!C:Mf:p˟|[w bC(60#7X_;7BPY]߅w4pl^y%P;#路a,2>Y&C08uT9wEz-/#jQYd20흃peԔ TB}X_* (_hJ #ZL E@O[iQ* 9OB:8Z~:>ħW"Y Hs ~p}<((\tdFu\|KX+pg;۸gO@s@_{pp}b o|5 p5lG6q[Ziɱ^< \ !1fj1.!-r:cemc Vf{wqpZ'YI/!bm\b(t @HEرU,,ǎ❯>8882l?>~;7q?e ،VJʈu0\VJ%u<%ieP@&nb7RiMV5y3n 2)dd`*-\o''܏\u!%G^&/'c! juO9ťE\|oR*g ErO=}7 8:|g~[n6OG UޣjT+'Q‡%|t8X.ocuuvwަ+P^jdK!.Ԩԅx|Hwꪂw+x+>oqpp틟~LM] <̳8ӸsmA$bbGĤHz)\Y."g;rF%Y LrJ|u#\?Ec!1ļf92yC 6ƚj*Pfȼk^/}E7A!!ĻIQlFExT:"`쟅ȴ N$t-~!%\rf`%^ZY2P*l+#egY3e/bw)j+blFZːp #?쑬=l{OMfK1횎$`@IXl t o}&<ṁzz-ln^Í7$Uν{|=8f>ӧUmq§Gܺ};6v Q/^: Q&_@o"]\x2K=EwXVpU_pU`Ӹңg B!mb8"@bsj$19T"^ye4#F#Ņ+kNԙs㕙 o|~7~{x j~y~kJHmN>?%a!00D~.#Xsd#)oC{^lc*Fpw%)<,dA]3mHǀ/)&c,~'>"`a IDAT#$P7إ35R`[~F,J&`v2J9re—hN2B.e/Z^DOjv _L|?~|1DpZ)dB"/ɏOm.痱{uS Jm>t-\B>l!UppZmqZ0E: PwMͫ]{SXk`|riKLq?[,,.$e<a&|UW_Ž[0 NKJM"n`Y mKZI3+3*FGtFrvp.)*#4K*HT9&B,x)/\A\nʇT#[^ˑ.^zdhz-;e愢 sB}-GMrӉ8'd+#3s ҄]dYydY៩T;LeQj"#mEˈ4:A\co_KƽRGo{EgÛBkzw漈x.p_ OȮ#SmT'p9\z{{Nf\n[ioyy=v o:VVOy~}x_Z}*7V/mks-ɽX\Z¹Ӹ}UZȎ_[9kG/(I#l(kKP%"Sвͤl*6oyC)JEA̳jL]HF)n6p)Ԃz^UȕBe&]8Q q_w0k:u/<ΜyT9?.^]Š0\8]#/ttK;B( bQ27O)).5vN[0EBWhIZ@-|;n죙hhW^EzMdmN[[A6(eSH~%2ش/Kɋ(k'j8ܗq3){g>cEl vn}FSV,(IWEAjsEFKpMrfwrd7^3&@# *EEH}Ml6 ZYC |!euh:i9i-<ѕ8hL2)8BE'D'hc+d%3)oC^ŽߴqT7G˘=1̌Mu]8)(Ԍl ;q lmmkG!|_w]N8e+ Ch6ePQ;|F2ED͒|f$+rd'(sGC =vW5`7BxeOmNPT{ .nl@_S8x_}4 S +؁<:<{8} V7pslϣEjqhyޕx*HmS{$QٰˇQ.Lf aɚF%7o.g| [ׂ&gen.M0Ug4$WSXX}X)NMsIve~U^RI!"/)|]i33XeCdFd=dx)]B (lPnF -dB "J´LL #ey\촒ZoX_W܆|) ȴAoK֊ZiJ0" 씖 3흲i`nS+@35c2˗1u+K`f8qx$i._ X}bE}bCTsɗ~')K@"W1ce1FMp`_G~G Yۍ@kG@EJ"t(tбj`:u@۴zuD67 ڍzjk6ϟӯ&#FtoW77 /iP\{eW)dN+"jT(*)bM%|P2m e|S$_UA YQ?T,1drRgfg>By0[,iH߂T"gjc)pmGfX>~' r:8hMҗKG_ Y J$t/r;u,󦜇hU}LE~^c D*ZXm gve+BghZ?%bʶ^KpSRڹk/羙kNj^r$i:8cĭĩ¢ ]`oOyeP.տ'%7c0;͗E#憍;g$.a! dn0 oW 2ɮ(23(%mbbe-9lsd b2\#G58 jA3u*pKZn\Ԇ 2D$1B\׈bak3*ߊvBdQ*^գe{dddfmoI9sacI 郂!_I?<#~z"F[S4x/coO>SM+_?_߽ qzt8 *_,H$˖+c PL\>;r9Q"RgcաHDk]"䘶 &*0xSbdҕb!Ŧdʕe\c&?o!ƷUk.,%ZSTa6m&AINBGIG/(cnA/X&{yd*9GRqTBiW^myTI Y,4ZFt;N^IDxg<ȎB^fs39S&̈́Ka6BP/`1"U.Ar$BQ:)sIz5. Р`nXDzPSOQ ÓDZv 0t!jp aN|J`V' )T@˜-`jIK63I2@/Yk!~%R%r^qɜTIFuԑC<\D *"1>{|:"`TPF[5CЬQ;4eΕJ6!;gP))D}6*M[aY1i%Ol>ae jdt4}V jFŦ3Yy?&}[3A ʌQpse ˻Ln^noEgɓ'p=0XXZ_3/SQ,kǁӌkFcԈD(~r2ZϢı"9C-*F"bChѹ!j U4܂Bt#=j7Esp!|U\.`I{mNʔa4ts\x&\n4x᭷2IIîv67Թs{P%''Vk0]䟊`IP]FvջPq*g-12{tޒj&;& M=U8iL3(RvM`6tЖE?H.(&;d!OWJB%?-Su%zfXe*b)O*.Ơppp3gą&V2'i#vlxH;uL q%+Y bK _ 5mhȐUސRgXe``"F6 Vw}i/ҡo"wp.}`D7nHtt*}$Ph䣦#;#'?ip)`da#/2!r)2vz_./GZ򡂟5>9YkeFk.斒eSGZkD6sH@~NNme*[fDEEdk?)Ӝd 7+#4.k9 L+kEmՎ7cڱcxpu棏c̫BOų&ڕػs3gP9;[ع} G3*rVb &B>-7\AUA;kƘ`|p׎8N2Bh0s GU$nf8Hiû#o#a-k*BغX\?/jWpxp'O`-9i`qn/V@_VxDmfA&ı'w.*]猒hAXl/07b)p;n#,4CA0 w(DM%U <о#)nI ɲؕcKɪZ=ڭj y#Z0SV -QztD!U.0݄p~$&siv*w:VPf@ZVbh # $2n/v H+9PF ;QInv%&ya.Žտ$u%ԄU؃+wE]RvM+~Qd*g_ ;=c2O`DY$3a H$Xg&+dgl{`|Rì]4{588:,TŇ]޹='xqy6xy4=]pxGR"VH^Uh"rHl ˾_B#>0j= Q=tMF afoA;F+B F":nA!I&aebdC\΃#f9߷w^Yp6m0ct*û[ع8瀕Uʃc&-F^_.@u>eeI`w Vq.c*f$)r!Α T|G*HG0@z6e| Z0˛Q|?!>$O1CқXVdO<)R-ţ{ĤZ A&"2d'\y^ ei%b|+BÂR- 5`~dHTjj_NJDJ+a ]B6To_~cgʥ.&m\ZڒMΥ,BL)gv6},jSnOE[o+W߀#0J)dtş> MN>h+?booDܶwmA$[{-T govE)LOPPJCwV4||6Vq9B%P$:Jj!K>%q!JRݢ<;U# }Kq&L}:W*i+y&t:"`t`BdR݊ D*lbb\5р?J@r-uʊY(KzȳJ@+[dQV ;_ԙ,?{=e:3.n..-$H2!)^WBpsX;qŔ}e$ kE{@GE⢦NIs 2'2aw B0D̕ d3|p5늀E)\_R[ڱuloocmaafvܙ7$Kُ10+qDH%y&3L.{AnՙD(>NjD>\:NX\#ȅm`t@Ȝ<3Tf,Vl' CrebxQ*3i{Q?ry/#6L`5 "(FN7;Q&MACo'TɎ nx E䂸^Kvh88Hcæpx`ƀ{Aغ] VQAtIX^*r&W(MZl]fgMi@SPC ٦@:+ 7&FSA mAuev;htl5pˏ!(Yb}w7XGㆨt>h|HJHHܻS⍩jB`Z`88ri'[ zm٪>cJ$jyPBl,>aCt 's>Vu2ܳmH@!\i9{2y^K,Mj+V({-^rQsi[K0$3m^4T΂|tD!5B 'N&/οH'弓-X +~ $AVt#hjv7JM' 6>SqR^{$G(SGTCH9S%BcW\N' ~JNDuU)]h|;-9K.:! } \H[yO |1Ar3NIX&ojcgs| Ȏ$ #<"-ឯbE4:OłӜ{tD!!؈eiF}{ ^zQD!_,$G ;K̻$=C2eG=o6Hyds%y3=l%o* 1L45Hz:$'BRhD}V2r@5b4ai8QMF]mEbiD8L$n VtYo ѫO 3Vqpe#8 ":62({i>y8 qKg :1,s)}jGwqӱN{o%IwfKlYU&ߐ3|<休9aefdG* s PȪ(rne@6SĮ+Z醔$'I_|/XY+D6x|i|83iPZM![#:)5I^¼s0>6/U6RvʕͽkTW:7F.Ӹ.b_A#嗍1#괈-i},Hb[LLt8 l E0әxlvio'NO,V7;d7?gol=a=3TiD(ON47GoIW_M,!ץ)A+Oޑh+ GnX޿c)h@.~o6v9 l+MYnގqHY%&TᆭXP+Bz}m{̰w!krBmG2[{>i֦Hw/4AsVʡQ8nw+A@?#!}Ntz`420F.ҭtؘuh] r%ȉJ*ړ֮+lhSGc9JqGj`V!vk`booB |_Io䣏f^Sbj>"0koMSj2*hd. tixu3<} KbW|QjäLRYH41S9Ĵ>?XTvBOO@HI)y6+StZ't-bAݒ= d1\fsp͗N"Ӟ$;wt:fd֞ TW}BI #áQ%%!3$֞ap _>ϢM38?#4?_Zszw_b 2ճ)5$,aŸ\C-ۀ2 C6 +mh֏-GG׬o`_E_/i:?{s3.X,2 Uf:kP`,~gjWDWU(]ya15ol@X0=oF-k ,̃xTYT$*#cg3V:`sLӄ~q,xuidۡ>ҍ0Ā@>8N/ Lr6 -te.<JaӎY -L A(_݂>-VN!V=b1_H3x,mQ Y>_-F `L9}GEN!'8鞴m|3n&/vߞ/ԕvȼǙ~YLJk+a-.ݐ81tCw$*+F m&HHR=@Sgdw}hXGi17p=1Cc+zlI$tAyn}~>P]rqd;ޚ?!s3Iϰ6?@d]pF _?vE',ՄYtt;'*=oyj>KD)o%^_95+ou>J~Wcɩ̬P7C]ְ?on؝g)ʋi|fNB#[Gʲ tE8γ0M Y[|Ďgdʚ>P3ihH\I:ݾbo=4dbLZ)iwG AiE]J8?Ր5 *^C; [;z_زHjIKq@{!dgc%xcun7g"qN)U3ei ҂;rlz= JmJ8(ƻ }-lxק;36Ae)FOa! ˫}Ժ'Z_}ll 2hxb%(l݆.ځ֨rLF@0G'G>uҴO9S3Y}|wkjcX5m|;$1Ŕ1Y~4ISBq8F|ݧiKyfhSQAYoΘB{kG,4J#)FyF/+ý>{A)nKdUch!RC|4يj?.gxs;?)J&=C';)!=#rzBM[4 I>+)4Ξ/ =Ph^6!7 SAniRUȜ`GH7樯'``8LB*v@/)Lvo$JlZ#׶y3jkG_1ik{U:4s§V;܅)2;fzL8w9@V9-~4P՜ -HZY낉YOp)YDsA)]VP0~śR* Zzqf` ʕe8gBk ['ڨh}awC^!ױ 6ZNqN;M #ͦZy36VͧI3K]fhs}>P7ih@qp0)^_ ]δ7\iKs-kC.XX- lU\[ }N_;_vIAچ9ي9֧, uL#\v6$Tچڨվ 4t_5DH>v1 .p6uGFNp;=H4_ )>7_Qμ 0U[!gG?.K3Afu@ _y-TWᦸ6feJ$6"3 h &ZEMU*M'JM99$(60tQ88eNI JFق3O(&;PoGdOʏHzzwOP2.xV+&;[fDNoI]pa_:GjE+k{Rsо I_wtp*/s~feiU?Z~K5sX]ϵ\= k~ֻ|{2Tq\G/5x&IBNSkFg:7؉dW.giF_v~RK2|<D߭J:`|YAS7Y6IL!%KbI[l3KQod@S`2Mʣob&v'3?.m^6Uʔ}^e'"E@9i2𴒗3zHdR81I (yQ2fm`, W4+̉TrEZu56"rF^LLofTPpJ臌>d I|S닿bW[ÚiKrG I< V R+b@: 25>k_qqWe\kyKfLOM}]E!/t~L 3h6w#2$.bߴ>gI&k<Ÿʹ/F$ȏQiת!L`qjaWۛ6TMrI7:SKx$A-k_s' <"}l'3ڧ&0p#So%|I*L 9?Kp6Y4_  /`ú0ݜIkVӚlY ʤ?FPYQӈ被Rn @p~g#f^O-+|w @+py Nq8%Ή8.'m/(/&dtaV}_2i4R؝3 >J_@~ZN4 N@\Ӯ%+({9jBg0!a:ͺ6pg2~AgOJ_%al%J^EpQx`"w\Y;Ӕؽ+9SF,+|֙;x@Qy8RSW#ҨbpԲva% 1D@C% {= Kuj s_rzuDa|V(-Fz,SyE&ӊ4R'J_"3i K=Is B_\h rf@RJNdE=0N fH\xӟgk^EŠI|ފMd_ v 9W(~4E4> xuW- }C>܏DmEw[@;2@hFxej2O#U*= qH;W}1uSjX#*O)]SS1sa{v{`ZTНP:Yхz1}ҧ^ }` ]irrBIΊ<)rTʇ 2󃭁_e {y挮J96)!C7R9ܲijf{I)bCW^=@>Fw&́hTQI4wEe]L ><}~}uausyY"9ߗL% BàѪk8OPE4u[[NJ07Ox$ R.pr09vmWh<}7:b>&piK!ڧ{F|{ [_"/z$-2?0?-=H6/f4!axjsV o30/X2HihO*h&ZC[,O4w+y1ɣΘh  ΐLi6ALsR3Ɔ1 瑙 }3Ёn4 Ux8JG`_2KH)Pf3BC&^S;3)X)j 66̔ΌY`'>;q 3)K&~,#BP>|`zs-{8gv֐o?i#zy3 Gȫ<$ci>G`F%T5H̤N`BEw}yrm~4AQ׳-d{v:lB bh]f1M0'jG] #m?%uP MC*@Mvo4ˀ¥>|.ta/5d,Vc}kTc%}FjEEmVb xU(//Q%r ׵t&܀6T!gze13 O@8<`e^;b_u-Q3ΜkcF <{afP޺xj2>Wڀiun.&/ttoxjvkBnn]c5㠁i$SE4ؕAC!>$~'-|GBZ ZR=8cjgPY9)}F6șASxt* _U5,H ;fBkhzc?mb mԳt:^%VɣlNjo!F 0z^\9}FmxtQAC؄L{>v,G+!b0И#4W5zh:t1M Bj.NRkcAm5_fHb>=vIO)GXņ6gmo7QPHQ  iQy~H5v;'l_{yP7^BYXπ)Rvœ뀰݋ݍ=Սh[P,EYi[ RT{ݡXVd Q Z%C:Gt&Tg3*ڀ&3.+;ߠL)r|*<~+Θ`>Ka]i93IL _G+Ga8q ̃$V]t-% 2j?})I.@m5~%k#RD.4f:wzɭJdKFҀP[+K:$͵>ف́ ># E.%Eѿ,eC§U EH~$μ41jyL+|>Կ[FސohضhOITmZ$DrȀEJ[+l6u{),M5RvE_t,xM-gq5?Ҥd q(t]L9o$ rrVi'&d:Ob@t{ _%MS$a^чoeEwnA[tyv('c6GD3ҋEѬ%[ t=SοS K4m4 iw(ERE֥:f|]յѮIeQ0:]s 8[\ K NKCvyj91c&:Vƀ}5!.^-ACJ:w$ T]koYiYMġNyH#Ub\@mh [|qA_N&0(> ?ǧg)kiW9Qi(F`)&is3XFzzihJ_a|l(rzN >#D.ɴSKu~4٤4:h5E+ 82 @As_HUHw*)kQ_'.?]m[0%0ۀ1dcҘͧ2~oݤsfƨVzy޶oX4PRBsnsl w4|C8a.:Y }_]73}UI 7eB2vdb.4ݣz@εDLp2'" /`Aow8C$Sne)lq߲zvXH xS[PgEYiN3OpBYЮrpYWLsssstͅ B U7p荑a՝fF6cY"5}8O䜛A? P*ttkΜӧDx:0Ч ڮo1\$cc4[cNG_;9,}Fr!],UE93Y'X{4 K؀g`eDmDkT7T?E>1J7u~3*=ZG8RͥK pMXgoqzFmkmKmv`3#˛Qڸ]i@$2foDiS }ZQ߁IBx0JXBО1.7;j_5aL_NczwCtZD:|(Q/^ar,"е _ӟ!=H~CaZߏMRy5 79JrmI:!טv-H*xl9B z[}I,c -tKBhlH2iy5zQ&zq!`hj;\ٍy/`{ց͆#Ff~@T7__ܾ|6kaY=wXݴP*PӐ_i$i˦U3Rş NHRfvMp2/~=d`%|{[ZPVCٳfynxa7_'%P3f_n@g Ҍ_~7:5۷?U&I$Ҕk|\}ĆZ}te'7U~q{wUH%fzlAHK_a֥Bȋkvj?wWf4%^^ 7J;^q]{9 tVk0$N-t 9-0u" >#y)y[Ԙf\1Ļ4⪾|cV:I]Z>5ǹJXnGƺ/7:CTS1 TJ%U= m$L-[ fkNv:$Yi]AW LdmE3@{N;"˲~xe؍z#XsP@%VH`&S eEH 20d"USSrA"|B5@~{6 \y<^ oo*JRR蛽i5|QaYujT 5$heޙFdY*Q}yX`?ϔ:_$-+fB~jm9M6a(oHu^v騿!Z!gk"BpG1z?JXuu6 s.a]Umxmjk}] Ui?4*&|N >#]BXԫi WS=Nk%tӀQcz_@u˥NBw[& ôszhrcd[}HfkMgH&޳^!;/w~qd94f= 1.u,t[7LhME[w=N'~t%e70(`a{fـGF̏JLkV Ir VQd-Mqeݳ@ H"x DXZɡ̥ yi%E`8ʦ{ÀaY~?ÑyE^vC|7կZUwtK%~A-`vTV,8J2~@HYqH ֆRO-'7 IDATC̄hzY'Wh*RB2.z_|>rz`4 [X | q6yW .Ly 5e>iO-F7he6K)ء4b#5&ZҘ ֛McLN5`&Udf{C"qf걐&*ةݼto^w_}o: Y+=`.WB;)HJ3υER1-X9}WFvW4[H Gpxmc4 zMv"P?JCeHj1Vu'Xeee-JXOl&pP8!aMIY'%gN~fE'A&拉,S]j\L6s_ҫ7RG9!&4ss/-~b.PȆUuuSAIEA@im w_ӝ1D禍~LԸ&1܃Qm6n} JGsdkc<|P{o$n3e,v! 𓯿I*#穁{3D(SH7l!d,褬EXºYj4 9F(z:+aଔ„")+dH3:ͦG?鷔)O)}T(*cMuޱugz: O3'TV糒 o&և̇J'%c Rq'/JFyeȺ ᛿K[t#<3_iKXl׷k絭揩~(T@N AH䵩?~;sRWq6؛j^k\@_}C3E8RJ^lFlX y?R's7zi@W HaB@O( R$w)xLݾ?®.MA?mqNV`ʕ&u9ƠQ4]SGށOxפx𡪵:MفLs[n9*4mWo_1nrCȭ7 XHxuwˇU㉻ah-~>wW4x,pz;xn,D9TV8?)SӲXD`\JL}*R5d S!ʊY |4g4z)Ȳ7ZULeQNGEpȺiLs_Md@Y.@K8$T!MU IfH˂ <9~l FS.ɓ 1ªJN*kڱL`|u-I')mUEnIYEἰ>|`St`W#'$=ͱjBk6r[Kv}NyV13̋6+GruּMclfmFU]gޟ2U9u_ 'cXj;T #+GC M87dD:~_)]Yb߶Q/dcOLQ8S-,o6/ŵblOĬE<ǂ%a!:D_{{k`V~BxVu H|d :0~aJ\TN6 frm ,#Z0[unǭ< ҙJ"~QnXKa?M/~;(x8Ԍ>f`C9LRz pS0bEH^VX'Vߵ}JReR1_H, /FW3 ̒yi *#d švd|ɳX`ܵcy6@J9fNL\ݽp|P䤜r\)+J ,Wh{09pL4:62׎VϠiiK[ɥzt>3I:i7,Vkzk]T3&vb ⳡﱞ5Z>t0ۄZoC 5 nAN>1rr)-EAjλӟ)pB10;K!(mR/oEQUZk˯-b bBgI|dl~xp._u+VІML,n||_/Ɗ_ /'6w?#AbfW1(ؑU[ R1LRNHxRՎ @ך 5`Ӌk;}&*HڧxJ P`4PTb KU+ t5зqЃT:c}LGn?Ӳ @:uxݚ9" L0TwVP@`*t/5wET )nm}ٺIdEoXSd L+}tQGSf;'1k6V~ V͇aC433{K7D?/o[2]5Ʊ쀨Tai5(Yȳl5γ]Ӑh R;kkwY@WQt-揔r45SHd2k'u]Y)fZ&bXbd6Hvʆ+|7/^7?p^V~ݷ݃*aO T%iX<`ak w OMb˸q*#3.hsRw{ʋ $VV-` 9[,JúB9+r/L0阙Nj'-{1S}GzƤW߼xXו_+~_W_"6p(Xz> 6_ 0xhDsQ Ng.Uh7u%~* d >h#exPS ͨ~z_[iv!ځW,W,Q&Oi\%儋GsUIxS93sKG6sڪz(=I<% E:;?9&Tsv3htn>khp)w rāv\fWgk ,B%l8Y;a_'XzQzA$6o|׀HÞo ws^WRBe7y5@l&Հ$=x+,tM#'m-5ӗ2ؗ)Za,j}BR?#~w1hmמ>(_:.q=h4eĝCa9x7sW9hӞA؟%=?wHtSbu;*Rl#Pw ,т,ǍiBwbp֙]~ڏwr a #_mNCc`ےvzi7UlLJwRmPI}CpZ o.˾iVP)OO~3Ͽi[>oǷo٦ض4s%Wf,H-|I=fF\t5*#i|,̳0PK5"L;t ;d$$l,O}|'OyuWXќ.7[z !{{͍0-jkɗ˯_p`Ie]%o^yfӝҵPucB0[k[;hMx h0[ ynkC A6%o<`_uځ?BysQDR!Rbj|y<Ѥ/afEWK!l-x4?"فua=??gz`?Hڪ%0?[\%0è8J{OHill}NMk\joqCn+t$~$GWEdJX+O*2si߂^&;]iKz!QPo ' H!Mݼfђyx|_~PDde9R&b``گU dRTjO9 XH1sbI PN-KZL0Q;IZs|,OW٩慅xz"L h4rRYM/˲ڕ[IJ,oyyf1Sǧl=7uT11vN׬Ricjc&6^pz;GC.{mmiϞIZcUUyqf+iZ>}:Ij1i&#e4PzOjft(l\:Ps](ឡggigSeLLDc~$&yڅ^V)ޣ?{ӻpJ' LupRi Ϥrد 2ڰYH rZ6I1u@;x k4|Snr}qsmE2)߼z?[~_7_p#Ͽ/o?9|*:,JHf70-J BJp>$syUfQLI gٰ(iEL 2-6 "Ir]X?~@o޳|yY`](Z̤?OlcI-|B>>Z0dG;qof^UW Kl.ݣ^f14F#,ņm `  1, ciFj,=lNskkV[38gYlv Uf%qʼn'.͐pHTK_~+Rg~Dヌ˗/[paOg@ljgeyUԏllFMҌQE7aP<1xZCۡҪ4 j;]_N:`O&}Nyb;@T(l> n̑(`Pή΁kLVOCMhU+Zr&2} IWq38%Hfx*ףĘ dwow|+ *!Xv/ 猞zP` > jz,6 i_K iԄD~CawOYm{(À%cx8FK/KrG-A1[သQ'0Z:;% ,L-@\xxTlH,f!seqN(/ϰ(3]ux%TVJb :*`ys-fX1g@ v ~cfUp09`.Է-quAep(bRXq2T`IvN gi H;f.BQ9xgR՜ێsv #wv3!2P ^N2K^ ( *ԓdq3:>h\"#e veiM茐uYS) hubhL: IDAT y1x4Z(FL;bt򈴼 >\b8+u)BYf(%VU *#gƸ/yy3"ê`U)?g Ճ -:aiFNo >\C~W_vU6oя[AХTD. _w+LBc qĭғr n2ZeM (4P֋ti~q1a1 VGI ØMA2-hJoDֿP+zDʷTnH4U2+Tz{kv!ٺBK=Sbn鋧s$_^[ |)DTƞS «Vp..3z[̠B26fP:56ݐ>K΅mɬ0r(T6$E, l }(Q-J [MB1V s(6Z'* ^Z)jg=.,f8|]C=/>ᄏ6| xmC .4JFW]NO 0,'B1 c MQdǠZpʜP| $AHeG~4it#˂13| my|2(2Ǐ (@-sap_AMΌdJ0jX)14pJ{eֿbN_\?{`._uѾ'r&Z D~trOj =Veo l2#7&2΃+OEms}m _'aD+yB/*Y_7"TީqᠴŪZ?i;.L3SLVkVɁK &4fy~e잂MKQ h K Dta8֊n]=p NDP!Rmy js_#&Zbu߮q>3WQD&%[BmfZfZ9h?5K;{xqm<Ӹvp lVo8;:jJˎ Cl^3mkJjE1Hn+=#1V^BD4WKX.Jszu"빔XPPCSd"`\f22@ϛ9WG޹s;} 61 St| >"׉l4j+Htu>b`<Y'FHw/]~(8j`|wYK8d9TV `wWE9pړA5~`az-RønjKَu$D5"IE yOQApFdm75+5UAX>XκK)p%D\rF) Jlt70^jAcDfDz,K@T)$a/j=rP?bGˇ2p;ǯ| f=G݁ǤZڞtXӥ[\K,XJ$Tn۩gA cKRj~>D1R]~d99QI5B~70Vfgr";[ht3:jN~PJIB ܹ~փƌw)FeH%p:he gZkc' 44QB !.mUq>}XP T#*j\4Y -x)"L60G97Ko>EZ npĽmM0Ϊmz XPӓsIq Sg[F3R\XNEuSd0C >T6VOXeotv->2_$.ipKC]U ve5<i̓|'^T?Kʬ:g(n!X괮Ro{! 3M,.HGګ*R a*d_݀|]ׁ,)6^zśognyįwXw=TG UIIQ:2+A"P:a}''[dbB$NBp!5>!~^˒ce H L %%aYA1 i0q/ i,(3BN3X\0M{jz翅/@}/書~a}ףq ciC6!RLIO8 ,' {؜hY=;ƛ[9Ȥ`9fM 3XCʘ-6SFdh:1_ alF.\=1oBդ&s }IIqkl&abAANeؙ`?Ie8""sx& 1&&j>+k,&XHej$lJfNDYywG Y"fIeQFKcTQXz/$[%U wjVU*}}xYb :-|xN=?1#Ɯ=~;?|GPF\ե-Ʋʃ׽ySHk~ ]GyughČT2 |AmlĠKo'*,G2T׸3BxYv:ЌPVCOr>J y2XĨ<>B+~o%V )"㈿|'8|ˣ#\ڪ =و"ˏ@^0+:ax}mTH7Sʦ)I1vUd8wSV51LV^&h] nho{-2Vc3fräwHk[Q [am”ġ̵bn޿ EÆiTyRÞPM@'JKFBL8FŲ"V)gx, XQ-D¨Ɲv4Q8iU1Sq^JETC4ds P!ޢ{j*D"](5: ZBͿ:_/wo?/}F w~DG)ϹZX\^1:(q\x̊nU2A}O@8cfúq0.H12G6! .tg ! !0SB<'.tJ##P=AAT @PGg(r]?R${gaѕ1/b ݽ{M#F=גj`dbY6u~Qg,Ɖ6-ah1o~7u1VUt ;7j|< ;0x=:nDQhN'keGK[+?'5w[Y){[[PLXZEQf:mx.'$fy oY gUJYS >I>suTP:6,7~Lh3(uQjvaܺW^;۸32W[xp ]~0EmKGM&`̲9#=u7g #='tjez`xk4$x eV1O(;D(H( (yYMYD4yz]Hzf<2V།S<xS1?C_Ǎ ؚ lb}d*#BOXhupNvCc~#@yƮnGG}iO@H-_*Ԁ&[-f6Nfm@ZgdZS6M}f$_YO`>OOΗ t rZ@O4ϛ25';E?B\` :JilK'd9 Za].&e/LK..Ɏ1X9H fb:5{%Sp;p] \d1$tv.(9eM<1k p[oʥKCzao7_oaxt6?tgqV1H'm*#Ybp1A=/ۄ`J 2>BiKr%Tp. 92@hl g"Vmc|,+Гz%"io^'k+!O}ڥu|9g}G%ӘEԎm3YotfqVis3s$u cGAЀnhbtb 4 <6KمpE4ijkAR;%ұ_-(=A|yRt"|c|WZ6y4&f~ ^}PBfօ9HNg8[-q5ޏqU, %loo˯޽{X>xPKa`aRB?Cј\NB,uvCZz#ZiQsHaNBvVϐQy@'((#q*g@!nb?AkI B(fK5Nt"'A -[/9&dYF=`?{:{¤Ðw>oPsvNqp`eqPpeJaeo23 PDևkđe| ) ЈoAO❵D4*ezE^q;w>Zæn|]bpbGQZ&0|\7֝dηN!z.;r*}/vww?#PnޡOW]OIY(#ҼҺ6OH3F٥zbhN((EB&eu2gN~t]} *y0u;@'3ZRD#*M_a~~||?0q8}3~R" =*-l` ; $s\@,. =֝}lI(aHM;IhI Pd=g$SDؒZuSeԹ~4zj? =1yEO-')HIRFiy$nDtQ~OY~nnb (p`Qha( RY$'H>70[աJ=X1t"%hl~0քE-AA}58"4ԀK?Sea~]= zZޞu ~XL$uH DߚFC%PƱUkL)lJ_0е8hTuoV}>|l)~翅K/b_g蟂W'(+F>fH[=v`y4<IJ{I@IA]@J^%@yp|:B!V.:CScغc=3RA3ZEQp+tx-_Rx w;؟RY@iX R)fep,PT{!pBzZCJ 0WSr6ޱ5U'P6]8$[8# H:.w`%u!ɋ8tA676$ IDAT b1X2UV;TwX(͔^| Ko (DГKƱI*H H{px~tDd;mW>kSBd| gjQc Vbb "r21*+cU u<,38 Z'SV Rݬ@ZdmAFA4HҷrTa;/.յX\4mmrz\{w1n3UVݜ21b<:xM s0c__@UW`fCK| .]+$ >R72`s/~ؿTCR a8::ヒ/ǽ۷q0+hbz&h?0n ¡c >qC=-zQa!EM5v5w&K1`W ֝e,Aiypil>t_zq0H90Hd=Din+m,nyw6+ -n=G*eZ 79{CWGWUxQOc"n}bgi^tlbܰc#DdϺ@Ml j> !5,Õ5悁@#qm.4F4&9O=Rc1pp9<"#&}nԊQk}fR3EYH'd H]ɍM3\Y5WǶU`](&T˪z+Х ##v ` u( pX (Z z/j2PYjTJjFB6cyY9{D;u=9ʽd[7 Zxu/ q@fۖ[fQfGʓ* 52#Z lh,t6ByeP8# 7K~ЌG)T]3F 9iIk:V{mo㳓cz=xwpt|p]gg>_o ?~cX>Nhq D|PeJVmXQN`<-KƸd%j@ql$,d{=Ƹ 1eS1leFyAGz /Agu;[O2.__[5gGz 8{RY: ̚#JR>^htiˑ:# Jev?,}.:m88$=XIQz[] a؊ԅ]kaG#M`gS8m$|4R`d2>H9]S\~>4ϸk|ZbԔz4'HGk~UfɃߒc~T{Vc > xꙩV񻭥&|t )c4&M.F n,.y*/!*% G TPJ iU A\)U'ݾХN*`5dWW|0nCj6ۄ8"pKPXm 9lDTu%DwfS6Y[6C Dш`Րuأ-++/}5+/u|.?s%\ >>|٥y}yϸ//}5vdRUk $J^۶AYT%_U`P2@_³_:vv3^brĝ{{<}l0U'-N4!jmpuZKw;_}T*@ƾQ:s=,VRc)X!z0 z=Cd q Nm%e^Au]־)4aU~4y$]ZS::>Tjmg4:iC"ӂPƦl~N R 6mvAT+Q>-&}D&(n9ZnhV6hřo U-]V\}_@R."DMA5jh ./: BbռYo*j*A6Z&_T^{A_'^Ϧo€ M}ľ&4ݷqڛok ZlmWg^*>x 5gܥ ^庴59H5Xj0o9mBY~d*"%>I8}PCc ,Ksg^fmSҾ|c~!>tggXt8w!?p{Ȟ 2NM'F a=JS:bTD NE1Ū[G,T,@btէ.91c[M=k壺9cDf/"VJD5G` e 9}&CAtD 4Wni7~WMGV#)66z=Q:`OZL7yDUеg7SHyci#\h(5I󍭊M 6oOS*bbf`D_(Mrَd6ZRX}F | A(1u$4r[tŁq~4Š<⬴*bjD34ƍ hud>n^}U?<ᅥ\^ㅯ}߿ON~>[%Y:jʨ1h#S r(E&G~b`eGa+/č_z+̌j=l6x7pt>ҰBf]K]8nGGܛ5NtlBHh4v^ݲtk{߬˅¡jMR00V`{ Q#[X!ZԔ/q1ctpaV@\6Af77Wx?L ord~.^QS*8]y9{ś*Eu;Հf.$ ZZ8TQLJ~Igk½GrOZ6ȕMW10Y:3!+S(EYdFgh\cnYpֵYZVJߺuk1ZP+8j<%.~f@Y4Zp< n{8t7yGϼ<‹x3>nDɵ-|D_!CB;|r5 @ pgq㥗q+_僃Zb9!ÈWp]J,92w @"c,pPwSyh8ЬZ׹@3Q.Nﺤj] cCXU,7fB˜}6)( WYbK"aX0Y,PމnCEڌ;eJxM6_뤵[_z @ ]^Of9X0pZ2S%beM 2͌9:7 yUت5 ϴRUaԙcUS~)L5I̺w\J)b(9Q*VZI5 IBcƥJUdG2qAoIIL{nLHןj A: ];e'w/a(Ӹ~j]}L""\?_*W1BK ŋs@~&K؅ĊD^.,paAIB4&sY6Yε4ɉ*K~*S ȥ|Cѝ0X 4MdцqVnHD&eaj0 ,NPSpRCMGYiJӶ:R+6AQO'MKJ(i679S6K#ԉS /y sAԔ̰#8 l` 724C /2 2Dڢ0nֳFgHRǭmQ T~ņM&&yK@GY6MAJTXPVGt,T0W@8P7Kme,D`W#pC||??LSGާwpxxq8 ~SPK^ڤbqqgpp0 ΖK-8=[֓Z=NOO^ŭ|11R)գ*%VU~!p-0Pcn * 4 mC%9֕oI&ǜ bV;UWG 6?veLW@Xâ6=-AǷ4Nץ2 Hi,rh0TRhoͫd I t$j/ŮX3^#N®EﹶS+HS&Ycr s[tO%̞R_u R|Un:F{ߍD G4əpAA jҕ$%Yv9h&JLfFЙ(ƴ)ԳnNjaS@,AYF\ٗ au/0$nڍ%B# 2)a{gsڵk!n߽8ؿuI?yl-Zq|tC8=>00 3v]be]|6ǘ3a8XVȥXMV|rzs\z~zoVGG0' H;J$tT}xn.>upiK L&3xnKi|_yEikkxxiȘzUl 72c()I&pW) Z])(8M]E}#D e;مϓ6}{ Y M_@ϩy=Az_&~u&TByw48#Mpu8,.IP43zU֞+VӤjۀLl:cU=P ^'ՕƤJPc0%+BcZƬ`Q34%3ji!`1! OpCH=c,j1zt1RF*~rɭ[Ïpgp㩧ܽ+/elmmH$O#Rb>Ž=̞YLz},%Sg 猜3q8fyDRe+%&:_qģ#bwwqOoXOf]J]B`H+rT"0: ė P9u^O͂ڌ%|%Kڔ bR爂_[]Z- PaaE9'U `,m&$PCT+tgqeQFPD4;| ȅgL4]y$86S&끗r *X$\/Vt{C6n\∨ęFp?! A/؟?澩X[& ø镀 s9I*J4׀ZlW8fT {tA)GήXݮ~`BNT}Q (u9έ[qg8;;[>pe.U$ HB0 LZ"Zѥ R!slcDX#NNNqx| ƅ]\z }^u g(Hw3]2:0xl MOR-Aww\S"\,S:lA<\AaaBu~T55P/sȣ[6_c"NX :ߥT_%@Łh5t[ȠPI t:4:aK*s `.f}Lt^A-#e$R 09{q &j&cvߛ2SE^'8+b Εph@GE9> lMEO"[!6@Up DfU,Ű&7)qAu য I]3mU@[aTyDE2`Kg% <2SoÍ}$J l!+Q(c1OV+yǸG8z7~^qElc> KfP}J-WGACpEz/ϖx?|Հm\jy?pr V jeMv8TK(xڃ g@#s=zHra,s\1Ν;xwprt48RV/M]0 &8X%#jթ=0*NsY_- q 9)KuVJdu鏨ow.  0@~%rE/yV=Hc6(`*7p*v, *r=" ԅ"FIZ݊= r*³p eAFLy)(27T =/)5~,R6Ф;X ٱh xuZO (B]I$c0*:\Z?9lA0#VÀpgs̫_i\oW?tNE5`sJIV!?. PӔqiU?C 9._JM ,LzS(kB1B=ZKUvP,s%Mr5l9&|k^T醼,#kja'TN6ud]4mI-86%q!OdPn k_6oHɀ5軡SVJuʓU-ˍ8Cm+@tƺ\޵Ms:t3F7XH4,@#`\ |!u{".^RJxx|w!n1c1#-ՀD1{f33, f8::ăp#)m.Nڄ`\ӄ~ly|I ՒK5ob ʄ (vh!nQ1M?N:u&U> -qՀ1ZTySEXY.52M u+=r5O*@='&/LdW(2T>DUt-ǿu2i*6?NR((6TU.[\#=O ڬdFyʿqI! BD&Z}/L  i`}8 >& H [bk ; ]W;g}P^7cc\ X ljSa@* geC'؀MVUWK},=øg[M&q./{iS6n:1'u>VY$n$PV#Ʊ|Aˀez]Iy2`Ael$u/ ?2u|{ _=M9)LƃڜZpi0^ |ghiNafi%7iӧsxlb} :aSݼVh/%l*x #x}C.0t-ld`mҶX4ZWB{5Y^⻡;gs*E1Į2%6 -7nq+<+*ou$)+`FcY}d u@'{!y Ph ”*`N^ &ʍ4S@PA$zlP=T9sA* YflA,1KGK>z#o!3C'J\}Ra$i猁HDׂ/JE(@ubQV^ |Y׶ 63'yڧa8jF5c2.2A:v^8%IXo lQd"/tR^'JT>9 >( Ze2b{#?*7o{v4tT>e)'Qܟa)ʰO;Imk+M R3@,3ӗp4 AFߑ|T4 Bs&lCAb33}B ؛7W@ۨGP!۝X(p 9ljmAV:i9Oc`?KPiAPWkXu|7bMZu&' ?,h=F-" +y@)Ab[RBBA 9U!]jD>E,`T)I@y%  kk%ISY D^Ce(T̂g/,r1N $_dE0JDf ["ĘtS&OȣBsJ* r(WVT'<"Gi5WDV_+(ȭ&-OޛradWԝgO tehi`8¬[>l2d\-%|Nˉ_u2ZdEZb㤸Qlw#`k LL!nZ } fMmpq#j*(Ui_Pb^*2@J@aE*iE\Jzj=NvHBe;ϊ{=)ߦA  Nsh|dǡZ8(*fTСw]Q$PX륁<\2J.~ġZv"gEU9'STHA ֟L@^Z,pKZXu.J@œ,Ej(VTv+U-q+_{ƄYDuY XETԁ1^gPB[ːpTPy{]b3 GlV"t19+PtanK d~ͳݨ\Eū_0Oh6!Dś7'k<=Ajv⩈l'O< 30k2쎭5vmQQ!u(}z x%/6#)! dݙʌ$XW))-"ﲓM.׉`Md@nyƬ*k+#Tf ToUL-#{*(9!u\r^yKL XbVEj ndU7_ht} gNTl(`]BX"nZթ#و֧5?ƨl\@xN=róio1F2K:<}t(RL²c`n5XNY#_E0 ;Ζ^*b%840"TcH]A)Qnc]ja2f%Ҁ}'q!TKEGN!wfwIV"@R@ik-gྦ ŃX6e;V@{;(;J`DVH3@fƱTlQDj:>\Fqv|gH0?@פ {oQ݋sdrQ&W{ `0JH/4y/y!/yR(!`bp,%Yd˶\ԥ[ٳ3{ws.S̬֬q/M:'S)XTa')y(&AXeZ8zeNطkNZlV֘sĠJ} ) 1fZMd~0nhJ ]Ƃ]k_=fJ~!Wƣzdgc>/LW0Bd /Yc]w&GQl ?[LD{\%ل֗ |,1}]yf܄!%@4HJȒ-Dae`E"%@V7mKx]5EHE`T'pO7@aQ+L/qN7&%9að 9VlLqG (QqS(77!`=ؙ*ӿYiMjEW5c~'I 9=d \U.Gd9Hglq7=I3"&Fl~:u A@U-knr|WPk!Ӑ)1䙒ØԲy$)ӦqozV_W~&J.~Yݑ5k0dMr4mzg`WPVR{bx?vSrK9N(M)$*>R$$Ny]p؆\k&Jd.{v? (f:J]l 3sw-zVL`RzŒdNp|ҫ]V@)^2dnK$ 3U!uC 6EI->F@uZQW-Jwy ,.WP}7ˤNɐhHvI^n%C΍y}yiLdr}֝\5f ne&V7LiT:|_\N񚷘SPA䢯e  S^6QMyȚ Rg#(OqYޥC{_s!Sͪд4!/{n]T؂̩2 T"Pd,tC^ȈmA"#9{KY*#'e;3+(-PUQ|ۋW^ C.mgA?W2`|O( LU=1r=Z23b]sB% .JaP_-ͤ*P0i'uXy`2C3d2ti94j`SH60)'ّF&#]3JI uI^0P)' Ϯ`ͰL^ҦbI۬d̫wFDl9x k2MD0$bcca V̴'m*j uv}B* \#NY(*lUYtrA/4I4Ե%bRH7fB&g}?3Vؚ@$"]\K ,}/iL8bYHw#iOT4b2LKD8-x9]ג)T d+3H*}Y; (t@WzbL~cWY p"5LI|u @30I||+0R'}oS 7(@Vt rH (F J)BmLkjՅwi왖Ho'1 RAR&QR80NAaBc``!Ei|vgnc>p9ďAaL؞: veܸyG]^wQSPz0ЮK'( e`"&Qt)냈^m"(XSPg l e9(4Vdc &)Wi˿Ll g? 3;GsljiM!~f8Qꘔƹqu .8}zUIRd^~hZ>4EN3'F?KfWYWdW%YȄXnbȽ~#NgÍ|=HlO?\\, +i/ 1NA3>CRl2(f\koQKbS`〭i|gs8{`*`*F #w{P᝵H(7V֣)c@uT!Gՠ0P 0h0&Yl2y3l01(_&L}^3Kc0Rm7rȀTR@8x3*Ӭ|Ԣ@N;ki<˺#%;"s6Cq׬Vs1ɘIm1GԇiKs~ `a_* t:6{ԂͿhSВ%;oQfH]+eV ] ddVxl$X 2).~S$[>-HɋE)tF7>jWSrI]@ec$Ag][ίQ[~)|Os_B4J?WL|ML2fO< 2b;\LvJ9ma/e4Er4Ax.G]rp :!h.L30)n Ύ/YO4x#V^~XbEWuƇe7+)1^I`SHGfW7 x_[8ofOIy/5#1WDǠTS)&%*ִ8<[Q29%=%vMWl}vyӅC}. Ə֋Ld\)9gz$=R XBbLDNJu~{3B|=םAٽ(=ifVYnW̧Tt35Ш9OܨtziM!eQg D |O+o25ͤtYP28elT00cr IDATM%T5 H{W0&$&ht,Kp ¨?3?9˹v`Z)3/*=d^_)4B6'W!AH#.2ظ2( 1NZ@<1"Ti"'f؊!i|=au,Z=!<ߟvuk.!byzdj\:֨drJDE F%ojĵ#) y\HS+2htf.YLJTmnCl)vE?1"]KZx O PjqTzsnFqI@Sf^ƫi4 ýi4'7^$qcmӐ ECD.5gfEJ颾lB93L"Խn'Ҝy3IF/.*;̜Ijvɑgs%8+cޤ@!k=2J}3 B(fpAgӮP #d?"r嵐7@LȈW`e![o &} fJQ8$fqE ;gyX?e 唒pt AQ00LUB Y瓙E+_n6dtk@4}b&5PHDC6 X!irVAiAc*$֗5فu]3򦀞=~r9`]0;$aRy*g^7X(bT ܕd4JiřyM`9^Y`SL@}%Zu_L>AGA< 696QRJGVޡ6KPvDgPxٽbJ曆ʝζPaf!)%>Ϩ\{1"`>ae|3247 ?of\}`O)nܹv`sePR2qIRPlmJ-GJ%@%m]0@ĄX+mW b vNm9俸~(((X*Zrv\:>U(Dž%57Sy\5PUB_JYl87hǙunp-EѨ e"dpX;dPFD z5#:tW1YKRE[L^v ;_(n(AG&?M㭟k`SId&T͉요źT "3<$Pd;Ih0v&h dEl/w+yMA3dNhʢ#s w^-Q\3Sw}4N WoK"eÔw-Ǒp/CoX/U!דlFwML1&qȫp/?ޖp+Y-p݄>c kHf88_XkXTF/O% //i#wLBn4]*G!⌃q/o8p\ 1R:(}4{'A0Z2v>ݜGy!PkqdA zY5j[}}e(g t&Bɜ9t׫/n]'`ze1ske7 mְ`~ai;u#b%tfoe"eI4y]xL baX{+L>wZ].7~([SN՛k.sqrb(OU3rNk*G{d?/>Kf)BN (iOH4G_YDq @qǟ#nX M̃޴$7s݉:(yN[A4RրaTj3>kh>˺TSXN r!H'cbLk4ѿD#ߌz3q\ëdk~q'm,̼)OtЕ"N cOJSxGdl<҉vF 2g MiO66/_tֶ8]k!k(*ioe_vxθs>ة'^K53@]]4 =xINMIEB9KSPVGyN(⨐[T&F&u ƪ텗@ق:y j[k*AltziZ6$-` !D^K gD>]xIC[nG*0[<|]PVDe%4R[՜ijKOo5?>/,?M\TUQ@k+7]Ȣ7}]dkB/h Q9:Su,v *VMG| I|>awq=Cua# #Ƃ;߬ġȺ~>!8/y^+nz,>3=ʇBGst0*G?W q3|q7]?HM?7PٹnRȞXspqbEs1bP V?]ۖ>(%1>G.9>kv_ ]+X6Cmxz3`㎇ÉG,#z?[-k2!N}x+OCgd߰'nl.5qx^%>\ࡅXt8n1coPv)>ӰH~2@|y!MVSo\O>(`XtI8^ 1ovB[jܴdFPځey(Pų++,o8lw?w9.?jAϏo_c={:p{?}_xdc->gj~\"[m?6gN ;t KF?{]`f>>I%`3d"PxoX>gaΛ>_8yz$턝8p ;_]b2鎼F^K;U]RJuƅ00G37 IMu8NsD@}c%| ܽ޸}S襰Eg7ܥ4goq{oq ξp/NM O|;.=xg|/7efb'>xZݪC ;jtqџ.[*qD]Yw?>qL;p䅯ſq1N/I:299to†A@ 1{&'V63I-;ѓ@̹("9MvSzW3Z媹M%uwM]/˸T95EҴRs7:vgSJzɓDŽ,-yq}anLC g9@Xl oJk#F?F  n#[YeEjBg 7ט9klwmoy7+q^~?385lٰ~_a[Kc6ЯkLR\GƠ1:\ $8z8GIWp5Ȁ"fF508hWKV#wk V|S;|0ꞏ~ _U#Xލ}<._GG&}r_:lX7Vu*9g.cLA`I$V/.Y ?{+3wA٥a5x{a6a÷c]x.8eJ7Haݏ sN< +܉{<'\z/.9,` z3&_`#pƇ/q<}5p*~=8~tQqH+t3k`)L[HI:ehbtMi.':FaQ?}#o1WqEi*iZ6TB̎<ړ p19':;3~RȌZb4[ ͕5>Os%jk a Vjy}7ެ=O@U'p;q.[ gc>۸d$$'}^U1(U Ad{C3'ckѧ0TH̺sL֧Gq'첃5*~> `/;6f_ÏxaaV[1 k &k j o}F rf9l<.X =3ڄ1LXbiqB F-XBf0/g!.uřko[\v%XFkhOtu۟O뺯'޲uVڌ1xsOcXOckMW:0C^~7]!i'*ЃÇ߹+F0leTЫzۣẇ7c QP72 aǙ5(>?K[><[y:7`vZ?‚sNw܂uPfHs'/F"а[6 fN2V>-@,_m6YQXYe#)!aȅ*镧i ؔMY9ʿ;7VV]2MJE[Z/|(N10rhw2Υm[HDžPu ~pYUm]('xtw{ .ݕ4?Q<;M.Ů89u][ yvW?͸exrkLa.N0N(`0Z~-Pfo| F.fcюݴ6^EqV߸R59=h)ű|ʠ=&u I'Ӻ*Z}yq߃}۲>5.8%"[]g]g8D`;at=X()\uuҐưir$ 5Yl8bc]_ `[*`v#JGP1 ;#:/-- %4t7q|-޻/Ͻ:( i6v2`V~]Mxy k%<\>gV%@+~'_ tw-!MtT-sܳGž]饥i l."(`2Ak |'>H96MZ܊',-p2@1kyRP߸6cO2J3W݁'&nlbdj܁[0$,N682Ó;(pti[0!¥?C OoTADžL{{ylϷ(InO w?-lF"1Sn ,豻`L)dK/$\ޗxهcvhgS G9Qpo wovn;OPsX2=< P8$.[ݧg՘pWL:5v凞_XYc,'/Mi M$@s#cX+/Y(ZN9i!퀇6Hp8Gb:j3>Obѫ*TUz̜I9I'mN X@-㨱C]9@?0؆ b#AYXcab[:KmM0Tfc&w& N5̺@ðY# " )9G;`Z g WqÁU8#=vvg 2*E o}?VEb(_Gf8p'~gϵݫz3\bM%.G[L$mCoO/f\t?ޡ%YRưW}gqԇ G5z;6T9^@v4~y{Nd,R7:!nR@ W pAE^kn} Oo;}f%Trd} ;A WOblWL(ȘάFJۯ_E_]ؾ ?:ӤD>̈́~Zk|l:4 V6 wD]Ux+@`&7VOMnӖP6d$5YI޾ƒ QzgbPWzq"ic6(#5ҏSD ќcApGk'ųš FNb񰭶ǟ|ۢR0`uwg8d~%ܣJkS>˪BB*0(Ǣߎ\z=뙐;2ز}+bs[7?1o'c@yFA>O_+YgSWÈ>M p*nVi(وƯ=#8'9r[pxBǙRZö[t~z*l)kXc0@ iu7hu+FvmA Y|njoOSʫ ̛b|@$~zU*03u,|~1Qw8s0s`lR~'fXs*!\stV|Q8򒓱P}Q6`]1=]^Cǿ#ܷ qxL< aMQVZL11)2׈ԛ9z#Nׁݸ'1ڇC/z~W"3V3?^hĶ:w%B$jDLԟ;7T ah0ZzY; .13J chšF@%1ߘqVտ7f@ ZNqv=މ_бȲ_[Q`0UK}hUu0I!7}{?sV 04풘1٠'rerwL,MzUl/.e0&GdMT' ۥɼ))l|KKCl@Kx'?Vg* ئɀ˜7IPvj2~|VcV5c&e2%i6D$„FM^\|`K < *WS3 i!{P;tl% *b#61``3kuO ƈ! UHfA3$ JMڅ ğ]8.#UtoN؄뀡]wLX\?:=7vsB>uluE.7戋1sn?jPu˾ ܱ>C2&]ca4v/zƄ5FlZ0r3~)oǷk8 G>?̝y+g3pl3[WƒOǡgLd*X]d=r^+sIvsi,Ƃ|mݿ6ʂFۄMk#7݄{֑4^bgUmc[rmq%ynz%V<[aoޅ!)"H(M|p.)樿0 Yh ߴtz#6+0g^phe(HڹF2݃>.NW𧚜oaNƸH;dɳxo;1Y )7$~:*C*;KzU]1FyĒ/|?;3w3]ǿ|!q93 W?}aW/,4^Z O.Wo?0~} T0}߹׀h5gv?̟]y{ r!^;wChCP8r5վ1g.3Qz-"goq30z\`yDU*T-\& aF+k&6($-QW|ۡW͙,.`g^#Ba.tAESXfm\״i?8FȡAvI*LRC\~շGtg6^kcKLNB ˱/-ZIJqGẁ( Ylc!yhHГP;LQߝD"\B~ǮC&3δ瓦5`SH13ОN7mEybr &pX-]bqr|i vW(B;Ai,0{eH6܊r,?{< sǕaF]KpQCei>5{xKr[o?W3t*o.v k9x_/=931mOcϮMW݋G)H; ldԭ`Ok[IzE Tkz2>xJU7Pâ׾g3O p[|xgy5!tNxG&pM?eO&~L Ϡs""'}ҫqލG_=JcI G(16eXqY8Wa=YhZU܁%?P $%+QC$YiQ!>wH19b< uuc{,׵[M1I! ?"d䍼p{W~?^Y~yM2[߷w^o +=3'wnpJ65գ0 6el DRAhb|i/*\Z_I|2oAzIT Wfa*b-@C"Ȏ1ǨaK] ѭR)v8>#Q:xܕŔ&Lk MBW>PoH LUyGK ao]܆ 7wv{fgw~p^ 11NAzIa&"L'"Q( ɓ?|RmNVyI [lZ"re8R?" MQD#ʒ"y( VC>CF<DqsKmI!e?Av:4 H[(A.&HL8e ir '8I! HjY/2Tڦ:@*HF2DpvA)yW^:HceT4WHev:i lEyל-^mVTf| q!ZgƆ}f ab VƩ \rmxpaf'v;$X`On 4EÄQ, £ UbG'g(3UU6rGkUM@_]k$񤇘]a:kl0N?$u޻]{3"uSp⁲ W_DPwUh'"  1t t>D#TGv1zF2RqH0h[2m~qCdleS,hŵ4b.TzUbB]Mο;sO2<&` V+%NYN4rT\z wD;F#7mSy׷^%b!Vڞi6Thht~d|tjI"L @ʖkhOؔ»"4[YYc2k*UD)xPҀNù"J Vǎѩ<uLB*8#,DUkKs] lj'-=%=z-w 1 Ť؀gw%㰙5 '|q |EeٙɇcxO􁋌^EnfLgPFf*@;Z_軅iU7F ,7Y5n_0 ]?gEOֆp',i3q@ŕjCQLf0!K jiqDWMh?!A&!1aA u~Ō_@#Pa#\zU/fМ&#I 2e9mdOt gium2$>[;aΏ/7H: N/9M){3Bܓ !䘕eBr{mpOnO.;)d g"VT'Аbmi/cmRrˡiFќo(V"Ĭ/lggJ'- 6d/Τ-s p>O;G/3Mش 4[ ,/(@ediw/ES.zdMZܺCX![Dhd1yE?OWTd /'oS{,,U kr*~2I@"cWc*B)&>Woĸg DWؑ0B#6%_u4md~YP cx "pun6jk>>עD6GZnK צhi8 : j@ҁ,X{၉i' )D*_Be`¶XÕXC?􂁄lbtO[!m h_k*0@149` xc ~Eşacs ;s񩙚idžJސ gigвe^0UB@r΍Юa-* 7:}>rpcI~))koN$Mwjhl2Ldm\0qy p$fɋ^l5[w*9% IDAT%"%eT`X )g£MCq4*άxZȽ 9d-c3jbZ+Bb4˘v B$CWCZVhq`ԛ:,'HK#k_&I7p)LrbD d {^[EY9 \`q<,!ia aʎZI'/c" dߣlBV߬aB&сFaC>$,^%W 6?B-[4Fr}%t`}yf/rk; %XY~wQ0} yBdL J睚B4HU}_.'vgJeWɮg$t MF1E/he";L(Vz UU2b!s`įx)BY,Fl҈ Ȩka9֕:Rp(5fLj2ctOiH;ON@[i ݗW c^Xm4|oK> bFr=$t|BOP7ίȱM%|ɳ'Ki+ܪЛ_Sk>唳mk7^B`_]^u%$&kG˝3/Y)2u>&e6q0acj8+B|s#37R /5?\`i2w<ɒ@&SCfTUCxt Tl1"XUX&S' \ 34&\ED/lj؞!{^ӑGY굉?xH̔U0dck4pY+fݒz8͗bqBڄe'_Bo(K RŪ=rVij O*DҹI ͠BK.uW@hw5 fySf1kv{U kH̱ eWO@g7,]EeܹB^cyP4)$Ec.NSHgANSdbPVbaؖ}dEUb{wN DeVb`P'F *k(s5Sؚ/ 3.F3(NN>~DU^!TT&; N@;T,u} e9L&9{yc!6EiI?x)VFz <qZ @ҶDeّ&,$uq)G1&QcwŨLjPTF̀2I5nLD~,&&N> P׵ /$Rgk>l2Gnq2@OiN'6ԃA&+gφPuzjct;s9mlkcjB:$PŒa rܯld\&jU1㢙<$^v`?Ix)tr }$˓%Yd]ˣ'ͼbĔ_KeUcXL-p eɠg]P2m򪑌}֓MMXN/CF|153E[v1&7챣q߃w@cL\k;mo; kz9=Y1c7E0`»sGjvG܀=_s~ٙ&|W;3y{xˊ^js yt( " D9s4Q3$>yy/1x5dRIPDYnZZSsnǜgڻvժUk}תUӳXqWnŽNuO\ĪSޅ_'O~9)k/|bܜ^zn{qIxޟ? Z<|ͧ]; ?8.ė{0˿a.)شQTYq ~@#o,v⪹l}m~s9B704Vy[+J96\;?B}g-e,j,r]0jAaU$<Ǽ;G8oR_QC˟)¥YM3Wݾ.|yW`j.h#߇pğy[5W|>rUFS׿'{@.|]?džq/؍g@(|O\ i0{Ю> ?c7;oGo<ǾhW&'߈pA/óOũs+6`v"̶ ?[qZ0l@ d1=+gll<'oFXf oձnRusx#<*k{ݨl%+*9$9#4#g2OGPRH7R-˲;K Sb̿jb`dT2Jyeo4?)LUEfm_u(yLM'QnYazޭ.*dm[ !m=t_C 8 1NS@bcLly#R$i_pKFFvUcuPgS]w]ywWW~?IxĊ =G Әb֯ņ}OfXjb4|6 L'No A ^G^v@HRg$1D92Gi I-;=[k6RK\80Hbp[0H^F@~ e's(c*Hy`Ť<2j9;X,S ף;y#R(*A!x$^A`2<hܬƮOz.tj,G<V靱b.ldFR*iHosTv`T2 HA`PތdZ ׵`:4-Ӟ'W8pYg?ǰ(aӂOEݰ|p;W P3{> <-x 5go\9|i䧟'Vpox3(.!hQpZľ9č9?:Ug, ~ڇw}<o.+w{P nS' G ^ֳe/]>nfj՘Nyñ F!wq?칊@bp }~ =p*HCȏ 4M٥h¸D6_~LNAXIQSM6g{spUG;o 8t﷍Ux&nYߪ|OHiOp{ljJDY=xI@|z:+Ko a hg^ehIٶ2mOŖۖxtM:IܸGTK=KV1ry—UFTK%jf2j*gEep!{)6=w%Y﷒(*:sh{l6+x8,4 ?X/Boa>7]qfkO?>:߰]xn9(ACxw q\kո'V9c}PM|_s78= |_M| .i ͠pG ) /$>uwqkV'=' ثŠ]8θ7`\|-Kڃ᠉8bDU.73%uxp=̋XzNUbxK^HaM5ZF qZ`%ŷLffs"FҲJYv(~F,Se q60Tc/xwѺ @{clR<[z.mw^i+?_ S_}#>l{5/ :j^D r%ʸlk%0!Bz R9ASb/܊뾇.aX @ m5 Yr W xgE˰"/ҾLiW*-GwXZ"VxInzm5/3ÏDZO;5~Jkq_.ڀڤ4 ୰%?imxr J)m|y. o3~{=+l!JO 6T] TS9 .qriH lSް%n1mv@a+tWr?xh4ds6+/(ASC`Ȯ7Mɡ/s% U%d]+Z#_5M0CՕ4/S{!bI}2;[4yCb h: `:d4PG*'5&i;l鼐L!g0cV!;IKzq؜>8.:!R^*zX~2AcCcC}. X^:V [(cҧRJJr&$l" :kAk pC6TY'U*eHpz.CG*V13y'}߶m[΋eF]ZWEIX+i]J+=խL+y-_-] }( ޓ?2a IDATBMl 9Sef(r(v^'n4QW)r [x*P1,u|_aKY.J 0J4הюxZP<$V)wJ`g*͋Y=U*`2#ق^]Uj]x@7Ę*IT.ե}n x+ud,t 74zհt~U6QN|3Q-͚2`S:JvDhm߲~ScLv۰u4Ny-OM!_meJנe1 *6H#Q뺺*D)#eaD3@hH~ʕ3(tEcdJE/ X%UMїV7l.!qtRg7vN; 7K2iϫy}#&u/>C5XHD&AMnBo* i.z fR4H69NFI<z-[3@b;qŸG^]yn7&*ET3(3tκhﯼyNW  / &y㵋,GQ8P<`"{ :nЇl(K~Sd{n}c2((Hw"jLjJۦ_sʦʥ=e~EB9Szd .2sX~mϰ2u[¼~t3crhEAQ.: 6XC ԐCAKQ*]1#P)]9ґ6Kkhr\`IQT'qP@`m7sqCZ?IDمmB\R P~s1PDI%#k7+5h҆a(23R&xVw{ KIVKv|W˲6~d߫G )n`o[%|~ ,Ud@Sc鎣Uv<*ˀIT ij#%\hS ĻOr)` %n@jL jS2&]vƽQ^V&U()Lڤ̮ʄ^{U(]4E2c\%.{IdCf}FrAV#`ddPN^GJH"0}i =e,EI(n%H%NsWEc2JPq U1^ L#(΅K"J8%i*h+ }rI^ɾT5R]7WMW:]#0 ]wdWjظ.Nd%H.6^v ͼ'M!LRNaP梵̀oQ<@O| iZGOZlEǥzS@ށ@0F>/W7J]_qZan'V@dȽ](cmRp<@~WX^r0{ 8]K\C>=BH*pH\)4hg[PI 6gRs`#(3W|.̸MPZV!K(vZwEU-OD.]4sjǞzJBpWu+U);J\+6Nn%0 ]Rh.Eu˺T7/kTC[|X_Teb ;d9EmSO$4H:F;`} [4` Z@e7z FO.R%fZ5hN(g{0g6` /#l p%'3wK瑞yrgI # @QcA)φa)bqר' L/t'Lwb;NV W"4z^Y^Au3:=vԈ$r)4h\ފ"U?ڮ"$-yK,J0.= %ʤ# ik+P4+.UdTYwNg!Yj {3g$\M-)۱7B翨axS%IhzEݪ_asJ:ci"RPLDPWZ(}&T?VX`C 3d^g 1qB+>W  Oe9z<QSJ= D+,ʧ#BOQZ;GHݍMaā! `4B9LQAG8 ,T`Qú8X['e*EpY,rwa۲#3*0CrK'C4 v8İrMW<\=YB)[uka֝Du!kC DxG32;҈).$^z4FFhsncm$Y-Ҕ+#ur5 H"E7>~)%io`(@(AUk%ʆ5jtT "܊,`HliK8g6[WkԬh^g+2$)\uWf/k֡CO(+.4Lrje1m$[+&xrH/%rtK']KLUd Lp JRƨ-Evo AqN{֩}UJ##i1giѝQA $Q\*`<#JU>;?  ߉4 4 u[`:9df"7p@nQp k_h(@c+ X)ujH!۲ty֡*$MDrCis@ljO8lW%%OZŌ2rAld1xU@O}`5*|lx"ٽs4 q4d!Sov~ KUSHa- 2פ0hGF" 5e^Y7PAjےҍ05RCz8.VFtLxۅ㓲e~Gؖ" _dև{VSWܱf;WD7`ś$rIPksV;E] [ڣ@J[ܓ"K4?Ph\I0K5&4E J#5Sh"SS]d ]p2BC(6"2Áэ2L͗M^럒sV4FʳCg>eEp'kdl;LdeIWgP7O'cL|G @FŻ @Mꌙ/sgRI@:NXmo촎Π~, &% ʹ ڲlƣ93'JaWtQ5+Pdx=O1ahRQIA5P!na)r؋1 lRx,ƍ 93DU{n|uWQ{K\,Y`b.OyA&P㙥3:k2.JDO=v'x,vt4ăd #a܋ GJJ~چ*eM2tg/5HCj?A@CQzLapq"N qKfe VJuSQHbZ@q=U 9dL4yD5r-KzQ;_ʁ5h7Y@s+ zqz=3 UzдReJ[ǨǢtM]S ‚)Q$ Po5 4A A>\,G`M]m8]勠.lC")c5:KIU6ʒ{3#-uu{QUg=WO q{c%e$E0ђ.f*}Є6)p@Vө܎/"AKI Fz˸`fmYbpl[)*ouCf@i[nLدKдR_ 䨽ʶL.|x1h+#qa7^"0{e _ZmQ Ai+Q%6bNm % 9[D0oKaR VSmZpPG06l[4A5 HR%eeGB+_zoPJNN ˛4x4z.¼^z#oe'b]Ą@ { w7|AUR63 7x` 鲱{Li jx;p*+f_~ k2`JXRhaG۪ݤ#uM JmHBHBz>cW$MrcmSTNɜȾaf0yjkg"g2n;CU GG`<ת(Dc [v6{2^ $vl[)1kQHIeHR`ta;/eepD8(<,Y&!I! %$UKq{r9=]i*fD;T]tgHձkdo?"T]T$ ;m) #Ppv=U,asE d1{J_+C9xJ͜e8 ',5Y8G6`Fn՛Y-lI6[FkKw;)P&WY~K0To<Jb JLB<˒/v EzB.;E*h!ig⃿rXKЊQget\.h;}8l3p~r "h8)2\9qh!mC m9=%熂+( E,0_6c)탓l1>%S֠B2mc1> Rشh%OJCY!;C!땝 L*u;Be w s/:_\ڦIFCD&F6R3Mc9TthRu'̘)H_ W١" {r,M%b,Q5 P FʝXHu_ae~BkhF@R dQN:5&RX,eKViGD a[).bG|*[22o{C9 AR*x aJS^𘿭6 K^qbQ"4%CO%h66Tf/::@S Y g-*Q2UA/[E csA.Xl$ta*> 5f1oą\@E߅WjtXBSy[S3uc3ªݎ>9NMh} $P~?4Iq𭶑HT7rO@XفKa1dWdFS~ݠ@+-Ӥl}I[dRpY;b֎%Jg4TA"1+T lkU ipΠ A_bo^hz= f%&MYQZwT۽,i&~J3";3=lAf3*XtYغm0msI1 ֽR;={w {-acT{4WAX=L{cf^/Uʪ[kc|mx5\91vN(DIBB9X II@wS2$DفxTvv#@ƪ l @Rtb!0(@J&s@"2puŸuݍ`|q㰿|3fdN ބM7]+z.Z#Li"}aH}?v~:.VW`=A8?EPcjf9vPUgāC4tƀpguqAw3kFI]%!ih[*MS-+o%i12+9o%|^K)PFeֶE.ʏŮIջ%f  Q**cYҀfI%;vksXz 5A-ZU(K t*h mFqЪ݊?;^=Vr~_<s0_HE7:aᰜD@0v6^ xx4Q3* ]Ie_ ؗJvtG^(H%pBuK?2kN#0`{6A(M;P/JXArn'> EX3fW,`ޞxĉOn.JףGE4~m=pog| ׿;}J:G'T~G^#(: P4lp(5 tw 1%RF |jVrhYġʰĨe't䰱RW~oi:]3"zCK5b`* cāꬲtf4)[S&]cye6VFCTv٨Qe־br1nDZ)MH$Դz3MbQh30tYWFHwQR]L@H,,BVVޔ:n^ 䙣|4x9XC ?oN='0Uؔ"),?xS 7]~)Y< IDAT8ݰs^g{ pׅgk~cދ~b1 N Lm t|#qKmr|&,v .B6 P xKǡ%4(}r<5x {auԦp'w!Go<ZJ xV#8dwOl0F}zY?3> i1? ةC㥸_> :q|c7c=Oc ߻fSy8߉ϯy-?7 >6tR{z)S}A['NrVjrӳl'e=إ; [f_uѵ"ُ)1Z3@ WȔHI+Q7do3ܡW! J}5MNy$a9LpL_#HŲqp.n6]s ;;| >wy.^?g؄+{x…ݼ;>KN]v*³rMy( xc>//)no|7qi]F^vNxhk ')|L[ W]kÏlJ5g\w8یCuoŇ4qN3{;>u]63ڙC_ka'eolʡ3w_s4v~˂e3x{rЛ7ܿ XtI4g$cw`n0Xӳ.Mz]bFx~zvX)$=7^7İ"9]d7 $ܶȝy? \5L 4 hwވ{5ClṋZ^.)iz\vF iکl w{8yl\pkYj>ϟ<߾!xa+0EesH˭I=7(e߽hu`] w&p5wb~U#"eHjd#CGܤ0ө5~=n bõwbnJLW\|w76v3JJ0͊ݰrn̡WVcc'=z5VE;V̖Hhb6Fw1fv;qPƆM0'lgu7@ Mٙ8=M0fιK<-ڙ=bV6ŮsG*f6PV b.7@o5v=湅6Ԣ٣-3{}׵9 ]1 l10zӄP*zY&EGtGys9MfMQL%gl#vZ}ܭ~2/_u{ȉɤez+>V p#%[!bP=2%I\ۜmwQYhl6G6EXCa<'e* *tL~'J jK*IY0Mfvv vYp1;;BHR=#Y1+rP5M!KipTE{RP?JF(:>$dZwx$ގs ^sp7Ãފ?AWq( n3r ^|7% +3GPin6O튕gbM˧F0r&,gSBogvf 6fh˧ʽilzk%Ә٥n ?U0&lmY-mrV_t ^z8CلGoyzp0ܧ? ñm>8|nm0xěOw˦q⑻cXO%0\|dgwzc\8j=^&]ޯ[YSe>k0%~5"H.l؍ͣ`IFG.Ep*E%v>곭'TB,2x3dDe.PvU5aU&KedȌ#sS .x쐜jLJ.TXry;1 Ү:ȕzY,rP=KLDf یa+uBj\ ҌIw6ETG={"PULnt\((Q05{7V=e3dFZ ӳ`݀}cJU0,Oq} cQe4wԠ^U=-[Y?@'xX)Jj Bjz]4~!Zy"] 8vߒ鿹\\ҜB?5⸃oOsö4$q3ݥ/Eo*L݃ .4SE7{$t+v3Tǿ8\~-X?l}s@V(RKp^x-ಙCa*H˰b1C ~{ѳmg9_R*{SjdrKsu*)?3dG5WJ+ V͒ 6f|و>n,tzŰf֏a{ɹ$Sm-Vm5RYd;*sY R>y%IU܎$sO-KGg[;gnOsn:!r/Cf}o[9iǝ׾{soOF&^N<obx%'E5ڮ84sWS3o?H~9G!^9oXk{<_JMh=W0l 8ޏ?ڌ⒫KۚᵸwV&K ?>{q߹Y1 ZǟW,ׯ5矋54WG×O_c^W4\ }pއ?ԮǺ뿇? \z;<g:el\y Y>ܻ{x~qKa36_i <z>uS1X^w<|A[tVڕyL f3, %%S KWh?@oMWu^? gOw$y3g0(YRpCt#6*hՁQ}B Kl>i%NiQ0LiI̺E@;)[*&~]qK}71>u=Ö.soi [$}Jf]8"- ĒRoP[jAAXQj!nr,5BsCY:|<`U ^MlWG|JhDF0JYvo( \w\`_teϖ\FGؘȑ*yUn P/#!)o[gYxT%ɋ߶K@DSY^k}K }isݱKyxShK;Qà vgp'n\pF^Λl*Kjym_$A9:W*٨=ufT.\"ĤNΝ L0)Tׯ+$BN(cm%G`47M Ց]:AXSCV t9=c sh=-E y+֥ň*^yWxv m]xYlXu[+fj3 CuYAv&et|xBlw#?@CaUaTbLāv r0+o"/ĖA]I D:i/%26<[;nʓ5`,$ G3.'l 1*^zg @` 7:R^qfKE5]aNv`|Fs= DH C!22V0ϋDľ<[l\GJ`7]>U dńMg՘nĺf WIV>z @׈a1֪גHEǷ1,~z(#2 plrxPB]o on/ַ&Հp|PRwJwp3&c]^Г_%fP.KBY+o@'ԩ<cρBwQnC:-!󶅱cHz(^;K.S)#h$@ev"|Zn:2XvOuQüFs(*yWWֿ_tpl }ze** qm$y=~ Ϩ&>LS" AnT^ !g'e{-X!:! $V**G(u`;XҸ21]!LEM 1^\m1@j KZX-ߗ\dmW;$Q TīQp;Y(zRSQ/i*)~*Úwi qE=De7f}Qfeiz)Gg6_: 2:rf<3+m%5, P$NHi9`}?{)Z1l4/ϑI" 2YLN^ Wf@jhHDe^xaFn { N Hk9gugu詍 n@`4'׼3e14Z((2/v-bȑdۈƤP^Sdڰc0`~:L m,]b"QǬ -'|ǮwcgTA3mBlB$zۤB=!^eے Kv8 0%h~o}NY1IXVeJimTiS*b(1vcW̛ ]NBkFq]X$vrBlJ:`Fn[4T2ur]*)%R`DHԟֺ=,װ(VB  ASt[:RL34l(M@Os=Or f%O "1I t9˭lGa؃+4P>oQ>C;4""ƅU00G)6CiTx"%#& *⪩$}&)eg%# }/4r~on{В0I}tGqRLozdף N-g'ftdxXnj@ 0R-K]gR-X%. S//6`-zu&]T .}Vml1Xg'd=@ 4%Bu i^+[*^GUĈhuwqsIlK%EBFvJXT*x, F k{cDʑ*EowCA!P&x#e9e1KU~򸡼z(}`) ʽ[hαBU1uɲ/FQlu+ϣש\j.Z~+FAJNߎP(0R0k IDAT/E$w ,MG6fcM+{V2l陈OIXQ:)LoCYWWB8L8t2<,\ al HK\+qIs @xrD] “/ڈl)DEl/j, t`Ngؗψґ/XAi7".8]1*|Juԣ\t;Ȩh% [RUyĔSPsWhEGt|ӹ/;RtU2&f'xƖ،Y e f10;|h`=cy$*'*jN9 QQuW:Ъ|BkE$. *geʽTzGyV-WAwikA-?\' Lٔ.!3~#t^O, GhSPuG2(5s/SPsgfDzn] e9 ̘y4Zȭlhئ c|@4pׄKC,qst$u@_E!F}n<U:U{LbYZc/# wud/ qB Ɣ[s-y>rhDŕx |`ỳWalD^j_)P~* Q#lnR,[PNUymf[o:\z+xɲYk5*X$7zjM/X0-LpȚ&In49UJr:4\ʒgBN~04HAFQaM)FŴH>n1E@h7[0`TV* 1Gİ#QbW@MrHRtiHzG=U?Tb4%騜gc|wB讱4AA: j~i. C‘J}@v-/bp4vFPH}S*]ZdJ9;y=PQeH{ozQL^Xx%*949WMiP$* Ơ#*K,@'iU:˻_hhQ'Ͳirve)#"wYTyIc% I?R7;#-㢒I(s PB u,f*4 G&&{b7fk7dQAT8E aʠ)Gf1aΚO? +`R;+#ʼnDW9-'pU) Ǵ"\=J9&6%F6N1v¯EA9ٞmez"{VhG]M,R3i+Dy:~+TiLQ>MPUAEs0]DlBLF#7򽗬.4l./FA4YaA_-d-Lj}=2Fږ@A.?ߚ[W~,39}O (F݊-~(ZZ֣9ws ?Sw?B)^9X"'4 ]ULKb0;W5 HDz:k?v ,OI!a%. DQ@U rҷx(~/fAͻ!h2;WP^iCgyXiC+)pnn {IM[w1⦟,&8;$8Y0u5ަ0$Q*n"liͤWW%`Kz0E/)(EBnK>~3CJ*\#fCsO!pTm$Q:[^CBYo RФ 0P (5WZ? B/k{UHfvY/[O;~,ʗ yY!JکRwu t؁353XcO4&&czҙ8͛Zڭ A _+4U(C/E%01\<*NΚyA# -,Wc %l8VRAu[vXAeTdžRͽZ)aղE'.N<mOƳ4kfK:ମ9%"1RG,ºX'gq14SC\{B_J!YbLt2w\z EJgnRdSȫU擬<0hn)PTb)tl8'J~q0 ڮ!oh+W:6nNCYX6=1C.iW,׉Vj]BfC> 2,&8[:Z ɠg_ .(ʟYH2 WW2g} @Ϋ]Ubf7?՞I,C:Q֬ mfCI[8 ,{?A@W  A%@q5rp㑪M'U7J+Ί ]?6/@Eְ? &SH8=!r(BB BЮ=Fp=48lTf%<_ 1Mp}q8K3p-xwZF$y  m)P0),!+[3 D!* 8LpY0]Q/l3ImbXHl :εPBg.+6٪= 1(FT*2T|r; N(VL󱮓BȞ} }3 _^+ָ,1\ NPsW# U\PV꯺N[*h JS٦gs27MPdKp#3*8Vŏݞ+${A\dm{Ya}۶l$'C)QLm P@XK\>|7m&ҟ&9[~RC()8Am26A da_+)@􌩩2P-NHBalcZX`V2[r(XS): L#N7F\((tH5~/E9j(Ӿ@|M]BU?G=q ^ac€Lˁio3v. 4 쑚Q?"zMyp}Jӏ)Pwi52}vFL*ks~6i8On (@sɑ5V+&t Q5 VJ@CDx k$r27GGѷYnIXc T|gl^ ZFv ke"=i271Q\ؿS/é \$ۜdPS%wRefI* 0|LM[5hڄ<(0na\I*j[@fFy +R`~-auM ab~i^k|oDf1&@I47[L` j@sm#ExPZVD̸e I9NfJ BVS\U4y\eHK:z ՁQdHFsElѪnTKdlYnhlcD-\.]M`[uGY[2Yb(W72C5r'gޥteǟ [n_C3_ЊZv GhvD#{KO.O$d J`VL(R6N\3!/c"yȸ' 2Ym6Ie}8{W#e/} ;7C2Ϣ G3@dM.(ʠn#F6TUpv n "P( *$˅ѳ{X(+mkՊ,@ u, 4& :J<$dQOfSO"(~^v²7 -E\$i7&@K/XYTYCx 1py|Qzڠ%Rpm=Z]b1hWVd}Sd# |Qgĩa`,4"%MnC~)9;l(DziS/kPx΀|ə !_\ UUU9mff TpAgwaȟD FĬm2;7_9`[0VKA!U% `nesVDwv}Gq_ AE֑ pSK厪g1e쀯϶L\V{Pޑ\?& ^N:hl(9b- krsY4n"RhXeDsdZ44ѹe:8j&BTpJWԀ= tC06|ߕc{@, x7.bKp`_Qb.>W2dpwS*~O Yh ?<ؽ55ÒoNT)Snѩ|P!c'+r^e xX؀4B1i0;ٓxUUJ$,Pe QTrɳ,)*(ŲI6 S|y+3s"a5em" $\rZ/ǵhGzereϓߗ7~XqeL.(!>injrfUҊ]aq4p*!Mٶ ` \S:[uZc3J <%d Ĥe>&7Sbp9qD7L\tJ: y7{ 0*B0CǤ^Nd,$v>fڰpHf{ǁ߉09-?Qs@P~aV$qNB( 5'(vb"=40H)Xuk% F[Ъm Q -ڴyO!x[QK¯ek0`ۖb/R--v 2ӝ.cxИD`$ gY mE6(M2dz=%ͪ{+Hjm]+C&g㉠7bu p{pBrʙqL2nTZ'Oeam (%={ BiIFb 9B6h*L4gRŶލ}1'fcփP }os ͢k)*zi ie h56dK Fo9q'Z IDAT|Y{yYf}Kd^ &$;l3X99Qfr6M?'MEjp&!JtDISE@1[Y v+IQwc 5"TB `H =^ z&:PR3eVBȎň,|q D]5U'i3HсS R-ƫpeq8Fs-Q5eͣ=|z4g|u#3HB\֦jte.r*31=mV"X붊,8aL|`ol2(rր>eA9JvF>\ztrm\@89d- L4~c|jG y>F ~#nsՌ3*Юop3sF % Nr$(mҳ_1AxCw==i=ݩx2"y[!{%A4>`b ꈊt%sB*ۭ%/0kp_>` y0ȔmT/|XT6I}[=V+U̬h>XW0Ǎh00"JHmA^s%8] a9\/Ak hi~+} (v'i 7^A E{r]yNP lpcD'2X񩍕m_|Qc0Z* sG* ޹fF>([l:g: J:% -W ƪAʚϐ~@c \\)gJ0OV_-4Cso=j]ڦX2yTګL;!lU]55 dN ڳhRybn ǥ JOz`zRhbBH~dc7&X%d.%~YoTK$!nwoq񥜿ZR7nђDoɚ(;nd&\ .mwF*1HVr j3sXUGܙe>@dKL^l a~\ jn{@uoy v X|):Mi&8FT|' l&Go!F\(({!盏'U0ZU"@BNI )өt"REtzD85wySPvD<2qϘ;3l[&4 979x?jľ+lXYVܶ 6 lP }\> L*8` U'-8@]tעՕ )HEP.q׉&J Qgjυ@HTXv8(#aE!,̜<δ5,ް˃vT b^̍"ňh4Oi_WV=NjV?\Φ *~sW~xFNc~tY%mz@ںӨ2 JIh<I"_r_a$]!;hfx=miS(*BZ99Wɫk fSRBdd9EQa^*+ԝ, Jd:xfz% XC} U;D :b쀓. k;όDZ^=kJo%A~PȎ?Y@ۜ[4:hcNQۦ6{p= UuDUX9t"x_n>b3x?|8Qhn, 0M6wpGltqS'g0Jhf9Xv>>NDk@, ~ȋ1opa^ d j ܜȗʲ>Ld(wf<51s%ʫV,{)P\dNibs~%>cZ BbLv#B:$`L?Ma!ڮW?RHEȫP˻ GHi&C]‘;b[$b);R#W`qYV:&-ښ>y)R_5YvH@D#PʫS Yo^T^׭"2c`K0I[\BA^B ̶t^f/p.KݬF Q҉56p#D#ZѪJ Aɫ dqI.UZ_:d0j WeM] Xi :6i7sjZoQTf%!*e&ҹEy7ND04+ݥ.P(~mH)Ӽ ,i}̈5se"Q(f#yLPW!a81^p};E>䠨t$ 6dE.B\K 6xj_p=)+bM򽀲F‹dLlD Ud!r-8 ;MuPF0Xdj-APӽL@Ĺ 1o(N jA"p'54;E*6!3ͳ4p@@.Щr:[1\tVV` ȣ͏kq嵸~~rXrtLOO7v XXDt? ĔQNE=ئ~I΅Y4eŞNUW?^2Hn:2O C9D4jbHjKy1TǤLH) NO*&lԙ1kpTy]5f+- [ `z 5H-M!NYOIF9b&1l֮\6)+;vp0TC&VՋqByzT<昧/9 >ljLEn3rIe_Zf.) гC蒁.,yb2X YY;Ұ@r7ZZFŸU:"~sI=Klte DjEs]ӏRRt6 RJ=L_> z!~so<]5fdmFr g- hyFfՑ6r9k!dJ{5)7un!%#7&Ԙ(p +1oi\qj@m>GSD 8, @[&AlҾ5ʘ0e>8?Nxdg\ rm{]'0p۴Œ΅CS69MNzEis2u V*4)o'ttPwo~AۚU?@'FՃOb4FFXdc1bo<2j΂*PBh@V mc4v:u:t"VhRʍ7'B]Mh%diփ}- -ݍ#|+dK#{= Ԫ K5 ;$f ir;6nGc;),5\GUNGO]M悦L oL#,ڔeߣ>V|z(ϓ} 6 4|;Ck Pj{+04\!MP6>@qVblX<9+ [to\B]PM4 Fd2VK&(i;yގoq(wlvMx*skΌp W߉IG}rXշ;~< ?Mח܍e_[G[;vgwQVwcW౾]pwgڽ܍e__|pw3'fXm>g6{@3OPCŪ]Jjdj1\ŲZqϰë퐉DapYi`C5|TN?1M3=lyaʤ>]JjT-R"P!+B_+|u+`o%fQL 7^.?9M/[E1hAƁ]WA}cO{7~xJS\k>13-򑍱Q[MGuʙ\իr 3n|Pc_ v6:vWlsሷ,o01{ƌ70±'㨭#]iB\8l뙨^vZs~u;aӰփڏϖauD9`8ka8K0l/ౚ~[P]%A6o~+L|m8ߎg~(/OK\3l';N>q} xѩ;cӰOZ1<N?v-OŽ/ëNh}W㊾qD']0Sp[bӾ]_~۸heHtEFxɫ3R/G0>x^u,zl<ŻK:_q3'0{0z/|퀫o^z3U?E[o%s8F>}69y/*x6V|^=?[2n MEuH-fR* ;w"Glhx\-`axީbky:M@yg>H Q#KDtYa_gEt1yҧpp5b_Îcȅ8toƋpGaw73%G1"|iꝸzǾm1E#otOp޹^~^piB^׽t1.B5x~0 $Fۚ IDAT۟+ ֋:Vnq]#w|}5}ȫy.UV҅aChjѩNF B["V7CHr`Og2z*I%+  !?vn*ժ֣׸ʰkf#*߶(o$OAm'D[W;eZr=YwW_ 4 8zߙ=чI{䛿:Kp܉C}1~{G5}U]?uVO¤cޅ?,aԛ/a79?\q_ގ] pw᪟>{gl:o ڷ z?l* -|6Fn)L*6G'Oxk<y{% x扥@I dhp85b oé'݃埿 u@kuF;"삃._={xѺ`:NŸUal8kyJD=}6&k:.?7ǂi1W/ژX~3̟N[`NeX9Okexn7/ZcF-vx֞3зt=Џ)b- ?!nfwgqvӄ Nh6? מJrJ087 ؋Izܡ F;IL\14a7L"ӄ+ MEe[DI% mjժ4|9׼bV W'[/1Q5Ҭ %z㳱Dz+tgadF"-C8ÖuCu5:+u12m ڰF|` VG·02u ^oW_,ґdƖ`я.čkp5`&}~LYo&-M Gm6k֮9cF!tȝ{`ltыqU2DH/p gD`q׬1wJ2ѻpu$_ه5#w.v[bZL]kܳتQm3f{ CU\)8y_܁;@\hƘw=9aq5":r5 89`q\z ~4ضՈeqzu%OC_vbq#qO𿷎a 2hk$P(.M\%é}qƶdqzk=i[" mb#p~?ni3^g ނ:!n_oށ;·h9=Kܺ6dnoO=oGqG>_ f,8s8.m _cɬ1w*#݅Bܰ*io⌏}g8_7J[m%HxoCu{r:ȶa6`ucYc; Nc#9q}h 3`[Nj][<{͝~c8Fos"b{k:a,^4δmڛlx0y*!@]`H;UUq Izzr5JLժ̎Uf|گ lMu-GuKnC>` BK3YG՘Dfbwygdn\ ?#Wݍu"Pg`y; g9 LR!&/z~-%ڮ z}w~8Y@IqẉPĬCގ-9:s9\ =FʷO_}7cn쎱uz:}0<A"61EG$s>qs1ŷp$~ֿ/ C\z(kpȉk_AX0~~HMO!nX? Qc͵èQ9M=E6j/Hr`$$?m9N#`bZ伴J~rk܄YAqs#. ^׼Pl%[%xpX=c9GΩN+mx[aXY3wo`#.8'{)ԕ{(38֕ .'u9KWޑw8 <=bձcZ03 +o<>HK.e88pgpv.Fgn[pLp7F0UG1rEx\clsd[Ajl#clXK3ykb~`'~ܶ<:TXaًߊ1sM&0B>`(0 [8goFdO[19,j&5$|j/?>P8y!0:<6N.ǘb;%8gˋRz8bE[5*?Uc5k>lfeT<" t•9+^vtY/1cg8x͸tjBKNV< >1+O+Z-Z-jcD ii9881XLc"+Q ]5|x79&jm@}X;cKLx4Sl5Q\pkgTz #1Y3XRWPdj̙V[C5:\˿t ~8'bǕk]17x&Tk.ÅkOVc_yI@\m^aZ = &!2S RXE5ŏ=  iģGn~$ }!ld\ָOO{ mQmBTHN>vKHq9+O3MCMEy-X׈uø p4uW!nr~8@1iðaeC_vg?L퀨-bݖcMCDa!pk pL@x1gt:- NE#X3xc27yM0EÞ;@D" bˏ^aa%kJ=:̽Ws8Ыẁ{L@ j7-]rP#iPQ4 ^v,LEy KĖ)݉:5Fok< B= ]nJKS9 aC6Ǵi gxpj.u& Ll:C/-M9of`xVIHd.ZNK`@9ؖv~ݸ,Wڨ/ 7 a4ωن }g…+&0TB©Wœa-waUo k< {7`z=vq֯;Gc5W`P¾cq}r,^Bߦ{;PL xy;mͧ&t@vV\\/~?J<^kCH ^jA<&Pb(B\)d76yCRU+ {$ȩ$'F.)?o驤 _55)ҟH`dp> LJ+` 6ye*4cWί9jb*ZNk8`|kї+mU+k5ઑZ"O?#k+./X_>aie ^u0F_?ХyZ,yG_øq iP%eO›V]"vj/ƛW] ? DݛaZζГNaz V8ﱀΔͰ.L<_?V]?dŤɠ[pgc Nl!1čG΁f5<ɵr) `^i0mu=H&np':9T X/.F}^'e'0!P&D6=ˆz9ScqOk]/"R^rxHqڇ>4&_glqf ]+l{ MT 1Ȣ/=t67x5t+YMm81Q`=颴~74t'ߵM8WHȀdb}Ui_"Vhd\5JI<j]6nK#J)[Gc->fVA3(@S\}O˚ok#8;*w~I/cHU2H-،8*㵣0Mh!su)AӀWzΫ_˿UUhh[X7iX [ āpܙcC4\=Fj(Dt1ʹ%|'4`I c\E?9kmx~ؾo 5r7`6 R) X_jc$Fru##cBPSi]Ғՠ@h[ ezOzyKJpTsڭ *ܦ,X8c Eӭ8{hlx18غ= ,GѮ!2)Ye[WN:fLf r!oO kEIއ9b{ZLg3"BI蛲NSqȫx[0? V&6eQX+cT`‰9!jIDQ# k)lgwaOV69`(]xD8x!E$eUSbF Scȶ4hg`B?)s3(?k&fIdDAEPDY5(?pQ@/` JHd 3᤽WGwugπsyi^Uߪ2zj!+iQ1k H*S >P\DFMJ@$uP*VKCpҮkujP!56nC(r'p D %:$ö65 9G kP`R\=D%5u[Y+B.Ff/)$qޢyPm˼mlEp65u@\[,0@/yq;%ڠ'RRk瘟^QQEx۩ #9C K!Ug&~P`>ĠH+^=)Vk+TSgBV#,*4sy tGV%OuLPML-0s˰?X̑ErfDZ@so`Z| D;Za- 'g0N]jUȥ3 ri6P0Y&+ !7cBU E.SF|x Η v( $x}!Z)bUV|u< ^&NP- ծtBJ%d3rU+9Sy2c7gCl,{V:&mEjI`oR=y&nRCi)sZL,%8D^)x6ΈXd"3& UAT }K4>ȖL lk| |K}׊"r rmm-}Pz :\^L`Һ"cs~e؀bVQ-fti]\rcbuz[$_&*1֝]hEX{MIF|LMSy6rʑ$$Sz+gSL,Xj|QRd=6[ckCJo Yd P$ 3,1@VKH,9Wrp,3mQ 9-9c 5X=,y.H8"Cg ^tq[U uMqe tWe(B0+2!8[ RqZc(+/ $y"[3xBl,K,$V5@iRS>A- aH/eЙb`5Bǔ#[QmfdEZga2v@Jl)aQ442RB]#kʴyAŖe3a#"U ar|]3ǹl`Vi%% \{qe*E@ &bRr[\Z'"hkzye|LncFY\lϧy*'M܌cYyQY!rW?^+bm^TTVfI7A[xX15qigjO5J\'f5Ff -?LKpyezʲ~}HE<>Fn ThޕEH)BdvZ"%4+ d`t) $~sDV Y}MF1;6mR|ۢ,)|ܓמq23:jg khy\S:`HVCSn֪SB  R0([*^{Iv H/]DVQD켬3CM֣MѼs2lw6k.1D[+($9/{A$/)#Ԟf%"[b. mgEfL Yy+ϩo.9~q&/;|κs`MF)\hTiAY9[W\ЄPV_ktL{%\oϾ:}UX4N^=WFФC68 X.Z&UQ bs*!O )yTv X2);ӏb "Z |[VKFSwPWـz0viߑ<9qfy3lf$G~`Ԕ)Lin>ӏװgR;ܸ2_96nLy40&0tIK|$>LYY(!WkkkQMT[^yOE~f7~7\ .]ܤk ^qĻx ~o˗aa(yGx윧XQZ̮#oK?ϊf']af ׈U}Sѳ˻9f3(i0I6Xpާn2,%O~<fMgZ#?۠I7g_%[A`g-&im R)״%ƴ\n SJ#MQ 22yk"768Ao8@Ā(C9K^l p0w6U,"X D:ᴚ'[HwYoZo=8,($:ξ[)ITJ岽ŴDgq8+[us]K fc9ؼwsoQZ= vۀ_{W{LdoKqgrZB>șmMf\wI㡋QyLK~^8쇾ઋְӇvdc|.:Gu`f_lI]5 ,#]t/ uܗ@7c~sY^b>[a:gqYymw?xr_tz`Wt1b]Kv 6M˹;ߛ>3e-݉}!\>[ӱ){fiL鯹9؊o};M렰Kyw3ybܡNebwIrŏDLY2o6?6Wmb)??ہz$oxLv xҟr=vɟۉ`F1zl~ŕGsNFw?z5#֘~̒}9Yޢѝ?-d1^S]2pE\x,) fr؁gxrlS8rq؏]V_νy'>ü?Wٱ6fm[A_3O K+@ fN)n=>3X%t!^^umݵO1O#Ϲ`Se|1Yo؈?< iŏ|FyT&vtk{.\s}O8-κMT&cLQ0[ `M`۷C s,3]r?<553QNl 4q3c͏̍avs*rCl8?9[lESIiCxQrGnq:^ ֕u\}={ܼٹ;'`ƒqhtl0>u*9\p3nFO18,~]s's'F8&XXV~0@1?~t~qqOOSx, ̽y}#ïo۟Q??rɈކ=|Ν8wm?Hߵwo&]v_tΝydoO46y  va>~`p|>3gm?n׮QvMiOrM0&ϟƷOcvyS>|%=7oiΙ wO&tPIspG?/-wMgW]pȻdsJ&qϡ/WL:#;}i!+|'] }eݓD,J76uic~4[KlE|?VcY@z [ngap0qMަ5}>4+z#sWp+b}B~ݜu@ ,p- X6]ܴ8".gYm1`ialuʖ#oc~c{9=}eV4)]x XQ` Ds=ۀfyVJX5saK~' qDEP:P=MT+ɭo2rA۽K*[NyqwϫQq/8Ԛcp>rm[PV⼝wҜVD!z_ʴ.wS= [6L==WpMJ`𡛘;iz\ցwz9FnMޏ⎹.h oE#gLvk\6)iИs6ڏG\Wǂ\r]QdHd;$|^gybQ'crDhf~O1NFOg1ۏz:%1rY}^q\v sXS`YSTdCz2ر ?;?8f_~b0,L9_m Ԗ̕onI݃˝<k1"&z殞Ȧ [ŒW3'B;0 40yvdt[YylA'7L9=6qP,kޜW:2\Vr>n|<\k s`WֳSg褟uz!Xv5o`Foɻ_f{Yf>-ފ0iW껏ժKcUV,Xq `**>r.'Q SZ6AFx\xd[Ш>n9R+jam'šfVBfW61&dƨEئlZ-`RhDcZXq_CiL>Fttbu鴥NmLH.bG>iWȒI=69B5w տ鋜~h 8rݛ˱}?djty|1Mf33ʔɌ]ψsQtZ\$6}o<ӨF'OD*{XFY N+꓁'ۯR>'6'6jSۈ@xkѝt.%P8s|Os! g ?;S`G~s>=V%chw?d Kfa7G.5W=6H_S"{{J莴lze<#))'3 ~O5?O ï|v? c0nm )J6 1 ȨYYhQ%sh,oPIganFynf8l F1Փu+pظAzA%vL51n=}GgLDF ,6{FCזrqթ= ~x#o;s.gfOU_JY{PԨ-ki<,6;zOAts(e)W711{paԥ_W ]AoDMUv \7f'Cx6;h~8FҤ辡<._%8l !bK^qwrɅ=’sofqa}ǯj>Q2fl$xx14^K׌zbH%j| JkKSHrᄋfV.^)tЌQv6l$Ǘx,˧.6s,\k#|J.3XǢUXT`}ČK&=QY3áMKWT5hsEM:Ĩ}dj+_xC<&}|a޹{@A94N;yן} 7lu4o>Yp6HZ9<ݿv8op#vbo.(xtuiTYߠw 7:nHt׃F#,}A y1?{߿y}c:`+ѫrc8=?>.53s*cCO3X\وN!eNa cœ9rfM}ޤjPzɄn/kRsN8@ѿ5ݛ0&x_PPb J%LRtm =M 5ʕ4pO^ O^[śN_|%LyU)BKQa.fU}X Ö4Av ga&[/6e ^-h؅89fNh/<:/,2Yy^7{ #<n7Fth6oK(x_Y%p7pVǟދO=]bKm%ݟG8VݼAjPcahzw61#Px_(&&U#%s.0&YT_5 zR18cY9 cyOӕ4].&65ax*@tqsgT%$`߮ `HC-DLEvOmp%:Onu2ͧmN8 >E IDAT.:M]j#ѿ1^=M;xtUSb).ڹv1jtPKYm׳WU;}bcm9)@{YۜEuMi=n ٿd(i>ta tmǫ?{j̴3w)v l|\LR=~R0ԬGmul2a(qK`'xs+xK߳H194 ʶތQ&-41XһIS= UڎOz#k}#^ǡ;u(]vэQkvc=\C+I$ӚX0}<ױ5{1#9jX=+i܂]twq8GsWs+3^JϚDT]p=w1k{ &Y;/9q[S,98̴hkIJd\KovGMXև1kͣױ&t4:qޣvm}.ǫ-;}i ]QR9Gbh:r@} ¨; |[/^7EWcʄk )gibnŦc Gs|Pfl:={x|uh{aS1$TRCL6Ȃ˨K2,.n?mO/ѷթu]ȯ~އ.?G|~M,%n͗l?{i>w< ffRǸǾ|qvGL:L.iXyOʂrԦlt:odo ;t%0|xؗ k:}Lmlm%U0߱4լ"~BQ{3C{W~:PvH N{w}gx曘?t w}E\w/ptGQk1W#M[Vǟ߂5>NKn?\crm>+vCx'/;?[tePRE90DٿZ_ !$Gݾw~ySus#jH4 neԉ_S']#~l/du+s+nw߼[Λ̘'f50O?;[̓3({XqOՊIl~\'K]jզ˩K\%g^'ϾGoO9}c-vp~ÿd_$٪ ~Ѓdm%F)Ęʦ{H.-*|1 ֹte;g10bN.<") cU'Y.Ns`,e$! Tt(KE;G[Y7ak0A4Vtbm Ka\$XA Ҧ>14]I#B2ꅥVVPQװ5Q|5ݚnlf!i^> d).gdE+~TZ% ^TYA@rVO^~:בBϥkl,K0P"gyt<(z\W>WH ~7B߽^t`/7[_a ʇ ]]zjP>JzZ kL8,C1CXVU txR iqN@ԭ?gOվi#T1OϷ70e BMa1Jr\RU+. ml5$-GM-L1WT@ZwW`A#b|27` K78 ^bނ%((F9RguwbQ*j!ʶX8 PspX mc& $C>ET鿲j.SMS}^WLLU0Ţ O ;{|Ҵν8괝YW1EY$zmDLb6>3%Q #xmu 7"3gҤzZLQШQ݁t.w,1o!X&:KJ1 %#7MsYz,c- _|c}hb:ZJ?*B4~h\b+7oyk+['|5 ur"Wm o裋7c<e~. l(KMbuRmk\5ŃF/ZK|ʺ#mϴJF| eY2XnfØ,5ul-旔1R8H,5[V^bi߭ rb!yZ6( ?XZh{ [no;dNo-a^,}gBɠ+$ydp y307 NS,_zهόXr0DʰTl4 Yi;%"k)xna[T@eV6L`P%T}͒ۄ ZN &yH(4`0wsMeBT o/!8v6Өtnm{Jpic1y?hsd'wcL( uhuش&ɿ>zc':!>% `"Vtv^˾pEPFGUhz=lY8W*8*SȧDmΛeI,BWzhKI$TqOZs=*M{e}+~ JRBF֦YZ UBF@+9*CQ IR}C|9Өvg oP#)rW ៑a-W ۂ0̪ZAp!M#9|9IE%}*ˤy-qe9R $isD+- aVVyKɧD}<S釰FuIp%&:uK}N_ Tjg@2I2Ć#9▴{L%̸  S8GIk-٬H7,{PH|DvSaOKUaX)|^VDa3DK Qqq| 'UK/E*UD!<,qe#aV C*~J9N_Z!agVvL'E߼DHk] e e}fyW!FjVE\ک@Ew]K xQt 43zbkpD?Ml<.SQ~ғcEjŸz&5\^z`Ra x|^PugSRqK#e_$qjA]Ҥp ROK s֟ޢI]Gd8¬HEs |Fdk!MbS'{<NE`f0PfG LL+.T^B!ӡniu]QXTGG":?.ȋFh98^+-zm@zwabRlٯSe" -"O"E+orDy;pyee}|n;W󗎠5'#xŸ=y=l&N\&_geBaYP["I-1ѺB؁@ִs{f9fi(k+4r$;txMCHLro؏ ߥlq&_alM|2YCJNoVǣ&0%FgQ%" m@-KT"1^ 0d+}9R]5pK dХR]O=BL^TEm[*0Ja#p(cQ=QN ծa\/S׉/Z\H- 3y^cֱ/_廷4a(]g3~]@DX̨H4Ӎ;h4 L' k"<!9=hB-;F/8V! ip/4Txu_xoj6[3m`-GC3W6]Y_C/$.x,Qat?"dJ6r"PpY)Ja)taf2 ^ƒę C3)CB}C5Ԑ-$ mtV@O|fdg]ZO-*!ڹܜ*'"mX]#x!QU՗)1F#tTuVId-m>xRsӫ:%#]ChiPK'a;G;| UX,i688sʖ9 Ц'?c}H;㬥#wufJyoV*Ӗ tx<_uC-5Ct5WJִjWUd X[}נjڽ5Gƈ0ais-8[`Ѣ)_;|԰69'cA5LD}Sվ2rղ${kŏo_o LU(cZ cL:a-;+c?t2 CHǰъJ^LzY9< k`XP &2 }p/U`"Eoҧ)r*p""GN"[,?ڰtT+L(#L2-qLOB~n+_j'}%d?abFYETYW]Wc'?ߚQl#(r?M?|Woe^>mh-ai tm XFz  |>:$av ƄcJ 7i\eL/Ji Y_UVB[ޖBүCɐҲu!WuSb~PWV R Sm $)t&45ݘG\2y`Cwek 0 ֤iIc<%u࿺-j䷈ټQj $h4L=e1\2 ^撎zbD'RUPL sEOѳ0FbdA~f\a*vZ  Y̨ȌC[~l*Y:0 %vZcc5F(%ԩO}!?m$).<ޅxGmdcRrNӢ*Ziz3r=)AäzچF2D;e3Fv.GK>Z\ʮy7au9-3/vglg\=0M? >ru#9C}\taō=1gOwq¶56K-[xnNeRGp~ 0έSxꅁ/Fz8o|A/k.ۗM}d&N{&o,הqMjq E1˩s~cѶ_܏̐k+Ԍf jG3bhj rPɶRi#QڭUe)ʆ+NYѩ|Zڕq/gdReƚB NMͿ q@fne>l%d00{K+2VV!VL}jd"`cq>qK^q.hN1&b$'-7F\ʶ)re@%յU(_g+/輪?Ga4 *d4J3510aLRwO$bq E`RK ZEaެ}z,Sbo7T` GpϟrNCKٹ#G_3|zߩ|y<,XƭQY <~͗yǕg95Rj.91d±૯5m;:k4sfgO_z*gaw}%N[j+4u./9 >kQEœ5XvWB};]y.q9ƵL!] )"Vw+XmKU L8 3MXk*i!h+q_{_6*u*]lU E+tzގ&/H3>N93E"AVWXHڰ6]?SZaƊv-Up0;rE9/QW A u!FW!%-4 >Q&RҠq 6}ܶ"'6]!1;Gz NIN"ִV+a5hƭ.ElMːP:pJWkVU0(Qʅ}e< nTlEһxb]KFaSfq@O;A|;=OpO)*$9q{g;j F0\H8pqckXdzad\4cyͯfZ},Zcn&^ۅ)  G\%!+ŕ@{-3d[dJ֌~_ bU(%[[&יfZ9.hPZݦ]-rG)ۉIFxY_ڤz|<ע]'3ĕJޱ IDATVBθ Nb0{CE6D0/`-LqgbKU-J-(# 0iIk[Eָ—ḽǡrV CpU&itTT꒤Ea/IWeQBX鄡YN lx\ReuZNcLXa n09^PߘL*%E5 ҋkRjLqU)WpT [Wijt7$]7qԫ&07b c{L~B38ǹw6h؈/>XLA7O|-(PxʚVV(CFڔEj5tX  T.dn/ IMNAf_wI!P!b {zn~VֱfCL՛׊H5 %&f$둀#7[O ˇl2`nd}z]ō'DZ:>t[5 2 ^y+ Lx4BŃI6%cUAcd0C*fs*wdi26 lk5 ufzӬuJ /U AxҖ@/MC5KO`ITar5xEv6UPʑ27BJVCQc*L%%oQӊA(5 `)E[H:B#__fI٤^7к^zG $3Hg  K*D ˁ$ HM>3Вڈ2Xˀ.kֆ|,m Ĝw8+QëɹALȳ\ IТlD |l!COԸʩ Sc6(Wa>pƚu }e2`pŏn- gR{Yu|+Y9mv soyyDW\]4]=O֢ozpfq>ΖE?e__Qs)sIuj~=\ٿXEo)S:mtn]O6x`^>Gz{6MmY2Ա\l&xn[?Uy)-}^?2d 5KZBh^*0S%f ԊZ 1d><3jKϔOkA&＀aV-2i_1z\8%6)ݿ+ *bI+]<ȓ]CD8p}U$%FsJfӀYK{n6i6^},| } |b~{e/(2tR9y;2*#:⬴"V*; "Y3"ҳ´3󢽚d2F|*K)sAyMM)P)nKVl!;ܣYeŠ3-$W>Le%FJUގZfcvLR#R@_QY#= cKު0B:Ib *11B23d.U|*7iU)=APF֭7/Gw:ԚhbY=rYjrdY5rfP5Aa!q8bQfjBL,a4GH6&to˩;U d3Tw7|VA|$KxW\lZ5'rXQ~S|GLJcH7^ H'wX}r46_,ɢj_#JHY4\^z`Һ$?_,J3X2# YdDmfVAL,ifo- "bʂڦu1m&Я΃)}eEkC+Ac`JW4y#J lLh0rE3FWVe ћ?Y$ 1r(D晶&Qcs[+0a1a%>ԠQ!2o݋)z[T--)肔vUm (p8Ʈ N!5b5>I$INu+uXC"XJ[*o%ۤG| M [_1r\Mj U ^J&y(%[s#Ij[R)\Yi Xc"y2dy.E5;l%2\^Z`/w񕗪:#*iZK=ש14KGYRu(j[F yh9AJ3D?CRR;ME_-ݖt$X.,QI5ѠBf\ϊ.`; [Ԃ 1 ԼzR43ʲĕ6[62H`9HW`PV@eWDˣi4V,0919DW,/z)z\2pnזIO2gm}! dYci)֚ !pˋ",0"E.dm~眲tIk4`k \'9@64%VY)uoM,a<`y A81׋6N9K,2!hC!I ]wxfS.?0)x'&f5]#2C}˱:|րfE ,RM  ;?@; w[`e'u BLlc>"Ԕҕz@vۧP/ dxHa8À_= }wr1b\vjHhf3uA1IUN)SV&@x)Uc2I&ILEㆱu?U뭡z/9$_ష2af, 3RFj4HvRrhHpPS}gqߍZ=)ڦ>Piҗ>۫x'Ou"N~NpPCXU 㜑Q\THL%S~)ӾJ Jl "廪(.x뷠 د 1hev2jZcr CZma# ;ȗsDĚog]W [$07Nep _0)7%s`d9%16QuSN7D㶔I(nZ( g]jeb򁠒,7et]] hg]פt 9L;84.Jigչ_Es(HQ2f{_=w+вz&ČxKe;M!(BX6 KQ,W<9\%\/6FT֬@FoSlt# 8@6/^.szwG:x)8rXJ =p%y5p~Ducg" 'ǎHYͥ\-FO3#SFM[vب",Ǎo-G<)x _7*U/*0u0["%;E;?mn! 4jOjM ݞsKJ &sr4 &H`{RϭcjڥAiApFv~RQʡdTMkSKkP w8]\GJ /^l ' {S`-1 &2`gOթlm x@}7 _NrRRѸBȆL) mRZ&!%o0 2(I8n$"PI\Tԯ\MOVڿdS&2Q[ @Ϳa\ 9\U[#Faq'7CUFnE,OFq̈,]x&ƔKשHҩ@ $O$FCJ`AӔP0!ʮԮ^yͧ+BF9@U Xn= Ŷq؋MЖu{?f!Vǽ6`ݱ2"M¸2lWAV\ 6BMѹbw5/N3I&%LOiIzidtW)-,2(5b Y V`0P?mF6U&\;V@oD!&-Q) Ӯ+cJ,j6e"]"8 |9i/q]pbzΉJGCXe$p6dn|bzZSuhyYx|)WܶT7S՛aTf.|܅Yyh2Y [I+Áx?~F?{֯>W@oB3$A"9.b9$AHp^Aחyf I6¥;~pdqђsɜ\kmLĎo"2!jӞ1 h|ѐ$1 ݹm}ZU(<Чq7y[$oqMPJ44':=+8QFZ}K\Lbۂ !M1m>vplҺNQv;\$sޒ6- bT-T'Br (8 82H"0ECh3B i/[^ZiL3<6cJ{ ~[W~u`P P_T`  hsYɕ4M=s.10u tu5sb! ȾA+sd/u.; Y Őx;3j,Ŧvb<;V~"DL MĪ/3vW\Tx؀(Mw* dJ춵ƅT!*N׊=Ic_( q)4Vdq:hjBU˜tJ#H#{\[֨NdYNJydJHMufu9#+T-DEjRi20*rGw1hڶworoö0k_=FVn0+:v0R8'N(; ƦN>t^.\uQ%zAVw$$v0y,AVؐ_ [r PbG(ѩJ" KHI.HI K89jFs HVwDŞOFMh~cVF,'W&IJq Y6LFI4lW =4}?NdUN#c9}@ :Uz^ ӡmveo8dQo0@VfyB{5 =%z4s*$m00AsQ1*qL D?.5e^Ű^f#T]_dQ3pqGeSCP׺l$m ƁXѥ]T\Jvig>ۺ"T=JXHZ(HHXT8.Vloxr_wjc)zQG2-[U5_&dT3mDl@qiuЅղB3t/T}BZALٗ3nQ͵͇j#~~7=Uyrj,?&Ti|3"4%f .B{'MER#8S H8`r9#5n["j2"D![8}R9#m dQ K @!1Z(elec`?fm[z6{IOpxoxIgC8">6Ծ IzC1g IDAThXn;; >"Ӯ獋ǻdkr@4vmzlKH=0 g e"- %D+ ~@FCQQ̡W05Vg)*' 9D% م.wPԡ"j&ۧP]NxDO`R<ō;i& [Q'!FKTN,_mplt ވ~_~S4hQ]M$然t/ФF}zGJaW:;rR#}r?zY; TmclD~9Ma)tC(.g#tIעXBmh6%F 5$=4`+Hv}Ⱦ"LQPDB[⌡lvӦ&"Pbqބ(/T[t[*>i4"#>JX"42?^ͅh,˧?L'3B;k´=3Kgh^qgO^U"sNcg?*͐1>IÜcP=Xn͉Kw%A1ԛ:5ܷ H{tbIeӓ͛žWz3 4 D%L jHVj1gr!#P53Z/6g (i,ɾJMB3i"xDߖ(<͢Be[(5csj0;um:Q7etC E鹔LM708+xDe =o5Bcb~U '&D*n'8,Pҫ;%nߩCj6[F\r$a%}09  v2I^U%0F@rU&FPC_tRz@BE[cF#e`l3!L-)jeaoB=*.Uw(+Wn*dasiRh۫6 2m2H{S$ja~1`38/539Zyo')%ۇbT}$BxT|`Q%AP}]71v9plF ZȾuUޫ`,-Җm;e#&ZJFz*h_yE F.{A xcDY>\8݈ ;dv"F:퇏(rupž>SͧAP0vm #@U+d/l<Ɂ)KJEn8T|YJ(QI +=L`[^VMSlE-lboDЏ=d>[8+EIn#Ict<ǽ -҈"$k0kj)9E^Zˈk{Ͼ`sn]otC)=U$=4`+MNmc)(qwU ;hNM=h n$Y<v(%t hQW78v@յ╁Jpcđ|XP)N%a#c1 \MF'ɉ%Wm Cu@ Y[@#Аw L *18}`" u9T4ϝ5@d_})(X'GdDs)^`$Zō !TH@.oYÝEP)$d. HA)u@ ~JTѻ5s) hwA3ZU+E7VQJ,SHC9j.Sᶇ <^]UG~`LIIZkU'cStvu]M28jl5uq k݁cS%e"ϪiqPK0N_+ dkaN6@)ZEdeC] PI!ZHy.!0FA ކK=(FїW? gy@t3Ht ,4C28`V3& E%CCleiVtYHv5DѢFGs囵zBa$=:!Ag*iCrSȜ@ B ,r״|Є{3`]RH%r@YMv! (WtkDG2 Sw`@iap,rhFPQ}&fw 9|nKTz1s 9$;+0KPL<+X$ؤ>oD[i!2.}q#ɧ9\u*t2A-&kJr1@ZTI2ק*JaWw }jF'ҕ#N0)Q~6ҼB[.tǴ,jZv=&U\h' {.~hP|rC|~DtC _fz..L%U혚rIq5J[`"mQP=(qt FBYq KFctaTEy]/OW6#Eck;ľ# w˭4g/뺎Y{ˣvcDYl:Ul(14>٩}Osfi~hkysqmfͭn9+0+a2.L5B74|N9PmV⵳yCRE_Am {Sia -`Tժ%#q %@+cZJMQJ]+0$wpPubCWl lB F}%R!7I`?l$&useJ%~1iR !LQ!X; E< D&ԤzROE%!qQ9J4Le{:TcR>=zSZs/^pǩ(<3jRďtpZc6NK!>N?f 2S@ܖ&XVh-i,cnnƥ0`Y~T\!*m/HLS r+K.XE3fC]PTG aUlU@nzބq0*\sϢT~VJC]FChK)@J/kV $_X1ANʨM/ ;pXydH^MHT䕍N3K$Ó4\N , suq FT#Y^;%QOin}8CQ%*qk@H;Bx %9(ٝhEw 6&q͞;P+ Tt_wdŚ8tԲT2U`%VSɪ#BK::%suմ#İsk+xY`0lq\zM{;׹ڟUL]6:V}m8|;6."ɦ6,D.B\'Ȳ30N^7fh^|QVW̍)_lȶ!Uwd(tm,Uof s S;0i04~RJhlQ TNpSR ī(½ M {ԗC,/'8CeqV4˹49f%ҵ(f wVjIV8dfa *FYmZBަⓩDȹM[G/}ˣf:n$!MI\tiTE)n^lY6s)TV60-NBi|Qc*+DE۝kWݴYjaQ"4^^t;N_b߫l.`u})mRZAa`EI1q3YVENGAYk:&f A '[2 VX9Dv*J8اvNP.ss'cd?d!?X*T/D|9ȺԆ:|8EZ_˦=E2LwXT,F߫hI0 VI)潩q'vo4MJsA 8hs0g  ة SeH5* fR01aiL?j(-^_.\$N#纉fbO"'s %Tt0^Vh8*L8TU T1x-<6!h3.y LA}JP$ܚ Am$ɐq!Q:Fa3׃Om2>)( {gc/0n n+ii=5#OZ&m)qeT;򯪿Lk^r;"Œ[W?{;B2 Ɛ,V4Yn>KH)tzI!X0 ':OaNt^Ley atMi n:8 $eam)8` VuJd>_l8*vUSM@ofAY%P~-p't(ڑPA 2`Mq7))Gf=sv΁*hP]m\ vb'@NP+mrf[ͩTpx8OgO.A9vo Z ;F첄.Ҩ]ZRzQd^5p.2a!" ;/`d]!K5 ΅Iy F[bXǰJ&6E"9S*.f$F*EcTR*UJ5,VX6~ bH=HD#..a@Bg +G+)+_KQC ؕRc䋝f3wmW.*_1`im*„䄒Im-MNT~% x02ؚ H Ɏn^OuL B08e뎀Ⱦj6_^aHg~w` -/y8f۰֯kWഀC^c8照 oǖ[Vp򛿇Sםw{_Wl#{qߵE]5F9AN++%>D& < و : -Ɓ)#G3mR;[n~jVŵn5%EވW?yr*_oq΄/SqexpSފ#@~+3GƺO*lڭx/x1DVcs_Wl#Z{q5'?vYK RPuJOtf *畖S3~*_L4HE0#s+v_0F{&glLY䪋_RSy%;%#t;pW.ƥ'L}8먄᭗{bVao_2Z6nc8sp?+|aa o|6vp28q5nq![.-?]^{Flލ!aÆX̩CLiG"Jip\jo*Xb$fW_(,+FuW늻`ʙÜԶhūW3҇0Զa+qE $k1ߍkxdv߆dgފ7[ _םgCɷo=Ov(}ITY\?v׀_8>\>ݸ/;d(jV IDATi{ x8akoj,xVa+AOSw>:t0aF(ZnQ++c"9ɵN!E!B| `ۂE0YumyyǿM5K lcv6 F;=s|=>ŏ ?{_u:^~z|C[pϕg>xJ?4#6ǐ #}9a^l6;o3 J sss3}6 :*ņ)guڹKia GݗЊR1ZI;`15(sۢ ) ˁٺͫ(lR@}M 0 LR6!=\bvvcT5SXf fgNӦS_ۗnv^q90}X0ﶋp략X??Lc%OúĘ]z uMº5XX . |~釬! H} * tFEP$CD;|*[ CU^XN'`?_5sec*,Qc3baխaXXjE.MY gf033S$S} سkn46]v90sq8d0zW.I<|bL)\{s󘟟×]{,d,y#Cap-7,iXUG#0rܱgp;u~3~U`nngӾbŞ^9h`f@ˆ:v,d qw3ǍAų&#D9?7sX;7tКpZf{ O#цKWd)Ӹ=ǁkp eGaT&<O:8i-k aG\LSsRV,p+KoO>Da#N+.WOqӌ-}8yx;ۧbkߌ?_kO9lj""PFeu&K; 3$[D꽦D#mƲo?=kRQ1HjǖϾS6SBCmCK4d1S ?y04*1\rV%`&|sG1b! |)̞x,v flVlCc<}ų: 3hI;M؊R]蘡w.+beBfL+l!'ԐG8>/W~xf0Xt1ك0vm%Z 9Ϸ3hA\wxߊ-<gm+LYoj;: p52!N>m&cTKLdUuǨ#F& B oѹ.leDhjrsb.\>Ż{3vZ( S5yk` * Ul`3)߂ }&?dl]掇q[tYx `ĝ7l")}_G}O9j1'`F~TRWT^_9:E!˒ԵD '%Qy$-MsX8έM)%4f4vCSAJ(\(g~%_4dي]LR\Im;x)F*b[iuw?Gw"]Gp[{p@\͔~m3?_|O Y3Dps/ʍ =8Fs7Ѽę$ E\Ơ=V%/L^_LҾ [ARfƌ^+/#nź+IjŜ͙ &P[gV2p"a5~ ֟,lobs^+Zg%nV/uBHnv] w]?[g29m3mvXn aaK⋭H~Tk?s[͑˦`s!љa.'RGFPRR ̄H\1\#u \FMf)\&P ^j0hՑR|%.|ocXzZܺHX<\uHi}i&ʌkH,;{~l<o|ʇX<"m7mk;9~΁ߊ/뤙_1?؄?7O#F\4M AS0 0x)w e")FmsU6w"I|[$l{͠Ry yFGţVt{3Xƙo)C< 4`6]wfƷ9} ƇdCx8`vZ42 m__?F5` ݊.K|@hކwl@SF,ܮO ¤#ph_盤 *^N4F^a'=$$gFo`uWxbq13=W~EZ85omc$,.b= L ߆8g3<#q H[o-eUv-8­0#Ob}7 H6R0cG'хP|J~kMֺʘ9gNXe;wp`ڧǮ_00+3 /~-"6>wg^Ӓ|\xǵ'ijT쿼'\}:N?v5hFKH}Ǎx|Uo8#= fo7}xIH[m9 rqyϲ6Iaԉ\~z+PE6@^/7MS_riT\$ M#pZ85@ m۶d1C<=SIW4fQdH;5Z@CN9fx.Ҽ˼p:8%+%ޟ8elcΫqW֛Žq3+qgZ u3À|xhAո=8{3q$k8Mҷp? Y?˟8_3n~[s6[ţw"q˦ v@ L;~^ѧ> =5X˜&iiVh Ӆlc^lLy>,cI%Hng)﻽uT%k~,q|cjL%;>NǏp35?onUeR\{spiSm]m{ʍ@cK_O75Q3 9Պ66+wE&E7c72kC\žR`Btdt n_Y\.I0nr^Q(&N^'{xn\Ė S? ph7|>e{}؍neߞG-a7Ѷ|W>x8Kzg0n= JܖJ (qum;@K@b߀af@fJjm 8%n4GP-N'/[Lռf.w`ɥ=(Ĥ-h[JZ뾋*"Ֆn8КgZ;`Ul_n'\򠯛cmܝ>x׎5?,e_O<ܼk G-;g\}?ݷ{-aM6.ipYZ,pW٥kg/_53)8м[/Gpy PhCo`tw?{==Lf^!mF&'r+;ܳߴO܄)SNݨG3/8Mw%էsm4%^5f вIT3@Y{Tzq緎axlṊY3عk7܉k0™]wcbDڹ94jƮ]؎/upi [v('LMMa$OP hLfDX6Yʍ&?ryuUJlj[1 F ha:FYaZ: ԭm70v!9س{w(azΙ=شiZ9*lټf@cfݻwcx럚)ͦ-9Lؾm+ڶU]= X{N䶬f0ճ?#$n9ꀦ&5n/vtCcɧL+(MY1VhNP\gx@+N[anưmVRgw.d [&%4mTxAi a R9f0XYG:նwۊ= g[e3[@z1bҗ&[ri ٖXԏK7PyR.Yb$ 흎mqz&`@Vn8D;lj$} Br"EDM[2V{˃YvvӘȩe]}HCrT:4\Cq5j z7K6Tށ$̡h7JݳÝ&o 6Uر(ɋ].%]1`3MT+Hf^)>/;$2ȆUgNTnPnB3''Mg6 c' suwbȊq^gizm}ez82+JXG~Q5OGAٙQ6vc\/yoU0sh\ -;mk;"iV*VM3S@Y)2C2 t”QM$v?Tֲw5\cn.1";!|>kuŦ) :k`St+owCYPDAm'0X Zr?RaӁQ :үyCw*dۥxK"3pљ}kE @ibo*w沷˥qL'T9dpJH;,bUO.+ P}_'`Ș*u,ڥ~؜y2z]dcP9 Nn\:n` 6(Aȹ-O9J89@^UqӡW9%%4DL/2ʡRm0IoXתS uıSc{^K)͋8UQuBYo G$F4`+H!- :1U@ d겁Set926z+Jsm3@v9s鵥b#ab*pPZԡ @1V <J ֧[Xs$ cQkP=vVD% |JOÆB" ܴ`g]SdYh>h;vCf!m|w+WU>ФhB6 [|{l"M rTh65_J'-K0$UF9$[X$Pn^V 0"YF-;[~``Q}'RWR>:ڿ4{@ -WdՆ@f!F%eHP8MS0([w .;XieG2$⺣:&_L@ǞCTe|,TN: JmYWnu{[c֯*mVwz #/sUV (!0iVO9Cs:W_STpCh.)!rK״:! ҎΈ=aa7</3[O!IH%eml@YX%in CKMol*i~R`g3I[=:= Η~#KG)=XP0$耶guTkvuǪ%_ѯ9#c˧La̟ww06^=azadUt@$nD1|O NJEfR՞FaaE)sT@i,2y H(յM.=r kVqL$N0`$5t%&3^nZ`톀p9?>(4bxWpߝjhdVz)WS;Z /Ƹ}eUQ7uWJB0zi!&i89e;1Ș7< M 8HQ; CS#\P(%JD~Z p9=vh4(ΜF߸f^񖟺wMx,s5L5x ÉP/Cz֯t%{Fhٓu(|œ?FIv˯cO 2 awlzETKXA"rK6q~ z"#l[_p بrF歛v^œ Hʲk!uyc(sQMjN5VrO!]Q.ypԉ ^(F(2f7@㓕obȫ[?qYw_wn-ef.ΠynP="V=/(;,F[h iCP;k4L&i$J)qucq)zۏ>,唜4H1$rbܴK]Uyy^v$J߇S/kcڃ_maC$ږEC 8ÞZPWU?'kG"H19Nd맛tT'hg!xw]]5tw 4PISx/5wb8,?m;,Q rk 8+/qD10O"!*WiDWst2a~C2L&PLb#j"b.ćmp[wm8-!Lc7n#ca:_devs8uM89H:s4JeB1Pg\BulxIڏ4 Z*|K|C:Z"z")Xrzn26Ma|ONJuu0;jn^avt3#K y>v7vAf|kظMZ/aV%֡AR8O".iQ>mH|tM5iḮRW/cNTHr97Q4ƪ8ьP*!Ac=S}3glASGz- b}ݪCwb|R4Q3bl6DOܪQ>dWW_?:.\ISX|#+6`6*:jc-!0ۀqɈ$!*jwabwtWuuOU$}V3]ԯz)ĹZ yDԑm@WIpy ɓuRlЫ1*#shM]$3TΌ"D BJ 1"yd#?}#I&y ;erCF)kW80 oKRdaJ&ZPGՍt^SU8z20"thO[ߛaPpI_ ~ʦ.aA@m;hJ||8R;'2, KЅp ƸYOW:TTݜ+1u 4F8_M헩j1yhdWR 0=4Nw}Փȸe!E7n8j2/pu!XȆOfziX=͢"[0yI;ߒE Ҵ4*s[=Ld(`A790tEWJX ߶ʛ=Zqm5*׮V8@ [z#2Z ;k̾ Hm]ZX 1)] Dݼ5vt6*B#ݟb3J`_k*: qiPnDaDr=g ID d4'`}&o(+\P]" h͡#!,@PW@Ez)# S}wG@s >nWFDƵinL|_4V=GJkOc,H )8ǯ̫IѶTd2 u/nSazlh4QHoPH+<15B rч otUL[6mՎ?T6io]C_yWrTfֺC碇ozmARםGfXZ.z/Kzft uy9Dt+5AnJ; oSXZXZWQ:j &yy,w. |ۏ>Qb2Tear:2D;Lh.OV"t\iT/7,0U $ V)b(^h䙎Z,x4 aHW__( 0 gu%A(ǘD$9}8Sֳ*.k3Tcf #PZEpї+1@$$(HLY!!L뫶LjtqQp{k['օ_^ i XY |EnY!JyKe=w%6ka,d8ѵ2+-.ާv/\%dQ>-S™,4"HLL1; *{Rw@%|/GAyϖleK({)4G N%_p_bN\Ci?I۞ l^=lꝜwr~ڢ9.~*] Wpq] (X2(zK2HD>K5vG6N֐fÍh(b|r d@7_j`:SbneꟀyC$R׭%/HH2Iu?,b龥-p^W``%#\.̻XX /_t+R[kTyˍVOWIֈD]R6d6@L`; =w"D[ųRdt'SgS %JmB.-|js'!8zpxZD1UD!n"t͊G_HFi#0ۢt P(`sCyАOH`JhzpۊiPaC&rTVB陠,f"7n8mrw`E_腞YD/"6Jhaj.k? !&œUV'}A S*u³wp *B96&YnHP!,6pŏ~7P_~5uBT\ym# ]#u_q efyt3j EM[ԻG=%M(>=@ v϶ Dle7RQC#HMQڟ!4xZd4Ѓ5:=aܻP ˗ڕ@k+xr|!U ?wnRߝ:c@ #Q2\([B \VD=@`oK~m3l/T~50R-ZAׁnjN؞q] ^ e'hl'jPj _7Prqၿ3IDmiU\_SNO`}!D]*;!O*5U.]{ ;w Nt}Rs`€3UpJe6UߕA|ӧrG!BpURMV^潤g$|px[m#]l&L`[ོs =A> 3˲I&< A{( n)jAU`W?3䖲5_e|_Ѷ2tjݗɚJo;K|| vI-y~p5e?ħ4~KY W<̻AS;$ѠzׂxϘP & QiDˆ`P,BMTZtÚCۛ<}`c/csk,e7+жn&2*U='lKKq*YSBh  Gn,+6)Kjdo`@-Z /(愤2RGϩ)[)+ ^NsRcpfʠޓdl7U=ʶLw]PԾVY S iMޑ] Ѧ-=d>-.DZ>*^ hxiYkDmu-u5ua)Aεd5{}eRL,["].Ek"Wn10ML赛1\̸vpt% slJq, gCow?8HUL!%X}kKwxB SB4lQh/&4x? ܆5Լ!NV! A 8V &mU]^,,O .DNFA_Fh@:~NJx6)B@5U B $/*X4΋ii7Z\7 ,sn,9%t `AoI 1 Rn[VZScXϛ2gPF ^\:|P ϟ32d43ud(gѮZkըǩr#'r]WiXvfxi4x,lYxvfd-N5*-O T'`9mlE(`NJ.*rG}MُO Z"n0MS~zt#a k i%/X,-JdBۃJşp&H;w=]4m' _MaĬ/aLn2hcBttJW!Wi O8%4qJV;E 4Q"$E mҾF:R i1 w,-N6DT]C7kP5SR{&4wo^zUf8+ t DžkVN)c?-p/ާ-pSFF[-"wǖ=@Y;V+SJH'U&?%}>BcI bqAS $E{.H-IT'Ŗz=Ke|k#_D($#SpPP~!ntuFhT\ p |`UV92_ H`A `H>B >o4=݆2 X(`zcYjR gmU:R21P0d0'_s}AJHrVFAbөEۃEJ߽Djb ER5 IpAXؖ- {y(ߑBqDDj!^*FEw 7_ MSQ5)2!uԁP!5gZ_M,SEh̿TbvpAWQ:l,K"\ոU/~D`^J Q55zB ]U~jNcji…(n >"Y&>L/ߛ O#fɼ+f,xX(HD|:o l/ v6 숴~2CE}ohhK2=VUFm).},UB?bJ(A<^:,#uzaUG\Q\.DI&t_a (-XW;-:g𯄟2PT\` l' 8Mu|mREA}Ƌ5FJ<' 5󁲲)&3ev9VT<@1M&H=/+4b]oT%>}3fRv򁇹č8}?\?7Fm6Mz!>r~rR+qz@ x_HeFύ&}jL aYWq=mOPTgT0t HhPtGXK%eDP6D#=M]uO}>]iB'QGR)`C% &)i^GRQwPqW2Xᩉ()0Wd_R`J02h1%zoWDK Te^u&P% [f!b$)U= *UrS_Rt4t "/= H)Y*-0ƐQ>s)lez..0£ WP#e`.@WQ}V )|DH{'%O/SЕV%C= H& ( WlTmdgoYXլGZ#di! Eq#*Q/2!Dh_T']_ݝfNշF60|tà8 4BZ*juDP+KHWxEf&!ʸh"Tb M'17j|$n eD֒%D}_! i1:JBHa9?02Z9sDŝjL !CMʏt  0QBYY%Sp] NRC(ڔ!.lٴXwji"TFZx!5X$ Q I+쀟LLhZ_[*B^ؚEPUw]Tui!5 j0 @WPq4%:=q|%-L՞hky ׺h`CF#\InϗaJ/ ՓzEKC Q c _`3)-1#cVGJ 7``k4`Zڳ*l "kY_PZ2كhܚ[PQ&JOZCNXˀUPʲ k\q,|AWJMYCd8$!,3jzȌ9F#b]x") _:)~ |9H,|皉 V*I ۧ '|/f\5F=5 A*xШ+'m4zW8B²H1bcgMSUc`!?͖$yH_YZSUHI\QyKARp$5`C1; ҫ$oPɕ!@LoQ+HPRלxwJFWx \Qj`5iD-ZZ RV`a  UHYI54.BYG&*)hOt߆8jH#8/D`Q\iHpR-2)z%BgvryEͥ #< B_( ErEQ@"|-c؉'|l%[,FKdj˒FyV~B/>ޢ MZ@,t LyW@,3;WulղZqaKi|-g$GZBJt{jM_Tݡ"׌.]o>b0H-JhmSdj9|QH}gʢ|J=b '0UJh pY" xRMKSlZ)KV./Ȅ_m`vl$_FpliQQ eӈ@r0k.. F]CVgGZ-!mϤMFE**PfDz"ΐkk7UHN \GtP$ \rHLZΈУf#=͗Z(c/a>c &$hl+E <#RD]RMH~Q|Hx+o[xQQk0u)f2-J P"|Ooi -KrX) W*o"i4D%xЍlf=E6G%  [Zlwӻ2PP+%y*  ĕקme+*"i(3 r}YRx< RQ{㾹roRPaakxw$ܮ,^cԀ5 ƸЉMm$ᵙ\\"Y2Tq ~@|&r$V@0j-{\NJ bv8Tneyɜ OGoA= ZQGM'ЌA]m: %6^_t Lt&Ь!#jF&9fega(Y#h_=M64EW(ꑤ"[*hPLܛ}E+d /R+*^&@u*O %d? rd*h0ASM4+KT0NJ/gS􅂤Yy[\ȠP HٱW|C]o߲@j]Q h%kbAkDP&Y%zjh`hJQ_]K!aZܫ`~L\a#']Hm@Țǀ ^ @_h)2? )N) ѡJSk)@2ͫһJT!+sE=R6T۾z9moA;:Ri=n*GR-\ /;7gS!]%!79Ygelh:#Kjag0A|!MLnTN_`CLb"]rb='2v8Z D*I_o/c۶mlܴvmnXס0ⅻc{dh{ƽ˦R7qSL;X'qIgsGf0g_/H/-AbeȅoYack]827ef^͛Q1([GA25&ҼV>C`a7縓Ng'XQ/w l]M '=b'n%ܱ@1;Ƥ^+]͐!C3{6͟O +#gϮ@M-5vys;~g/f_G'X$֦?'C6]린&޺G$Yޝm~3 iTռ>~;y| 9Y?í!XYǽ~|/=V?0w뷹;;hCWa}T>zǙ\w:ȿ>sZ P\/F ; _AVk;8-3wV5|A}w)߮5\ x<42^;,ݱ śORսE?l8Qty/*>5򶷞i#-M[}I|QMôn~';F3ilT; |f.k,'5U4$R)]+X7Aj@-smlY5q gN`L@bVf@z9ٽVvZ833Z"Y6OLP3 UGM"OfR?9y jh{d HQ;5g[Fo$WfW)!7d3 E!ܩï7?fj]nIȽZr'nw=nv[{Dn2.~6&7$;5$H̛9~Ǘk9D4OϤqZN{"t2 $Bf,>.й9dyΌ}˗157fOQ{)YM-lc4- R5%,~)lkf3s :7yE,;)SH9i{= ~'Zh-gC+<f qpExNi^axy}A{x-[OeNk#b||GWu6 +SFheQnжLJel1I`? NoJe{]/]CS؀lCK&Mbd=)v8ؗaXvH"WJ,N;f4t#,C$"e1̞?!$jpNlcY;7o|q'M0#F`׮],]C 6ul{6!S/ഔx&~zwyBf9³۸o $+n/ * TC=lv 7[<'..H,V,cCLNJlac,달}o%9L \aY3,fy'|+Cy;8~ner ]?›&j?͆8?-buU濞;d '7fHb m,7h)_;U}寏:SjImS V{C=cص&Qe Dmmy,OWMM萸=t' #0,S m}d .vw'Rk;Z;ʚS8wdU[@8پ#MNZ|;۷L]M|LILyreʈ3 :uq{oxZS{.`NѾjݧd3ƕl,-VtHKbd ΖuOk-av7֨31$:mL9\:?)>DJ "7a+) zU.[YxѫiA$,G^ۮӧ3th >:{YUtMͿom)&TPFf_P7z+Ybv~ І=y$b>waqԊ$OMIX=z3[y.)ggfA]a+˲Y&9ePOk}`9#F1;ʤO:JIC}-5TUYSfFƖIAR_Uǹ\B2mܼU6Ru衋3{8i{~=먭fHc#]=X9nȍh,<|n 2,OeOO6SǼ+/_Ɩ cl*ܷ`vN<vckey,ԏؽU{zlooH5m=Eџi<-K&ʄq.=k38n?r-u@֌er$;ι8}t;X1D%s'Y@$յN|LڇgL<~e18;]Hra+s%}Hϛĸ6_ǔbv `.L8? kgm&U?14E8. Ii\Cu$2tl 94&ß#򑏳e6w IDATu#8"^'߶3Oml~tc[1q|[}=`sy.:'xoaxgXX}ĀK,ǹfِN ƽO~j.C6ً@/7~VD&O {*Vnϑ7bE=R@p?w'ֲWˍߘb)[֪%S+b Q"B!O밡l_)qHSmR#uVFMvch,=@*K2EZT;uĪPhNOџOSSӌ+ l_'ĆۑWs)-|/6#1SL1m-8"i0!iYtJwΥrjuKMZNl/"KVSMTSĒ 4ywh>b)b)MR8N.GWpNwtI:IPT:,4aHBno=N[M]QI9$aԍŁ H }z|SL1KbvTI" 2,lxe:.VD85*HǦHYEvTHk\-hB")~fHg28𯳭SL1SL/y &q]>_w 〴q{ Ғ|-K#2y~ϻۗ)lәٟݵ l=䷮ĕ~e!]_Ni+WpfM9O/>9-k7r sdOTECϳa7qzҡ}9Ȅ:i 1 )AXV*AXCtK.#qDP(H 2"$zKȮ$! ͑+H vpO$[ƴ,81[rjNm]9 ԯK8/>?Y;~\2 z\7뽜نrhOL/>hB BPS_e%;+)XE !!ܶZ(LBFl'C.%( .]ط 56b ȰsY5L_&0ӘV=xӋO6|FG&=|bz9RlvTI X"J]Z q$YKRHJ:.R:,&l%hLLO}-8.VXyK\yHҙ u‡$54j>=$Ck dO~Bg\0dTs<sg.ۯǛS|ۿF4aS{xx_xЭƫy< gq姧ұ)voߵc_x%od3Ǹ7qW~~Z%7~nv\|Mh8iPƽ?pFx㧎/΂ c_˥ͼ!.Vnﺅ[63W'7M-}N-;܏1Ƽ owd/H*mQZ~/HaY#=T`g7g[*ߌlNnȬ̝kKqOOOcU S'TQ]_~z.:evټ~U V\< ܴѻO0=U/b]^Mnx-wvVD}=ϗQ /_2Ѿ59_4ZY 7&?y.5SS4V!1߿iLfEɾxے ߦhOd0J^wqm3;gm(_pᄎ7_z*o.ۇɥ&q;$-[-aKT72iA+iy5T/=mekWér*hTWWq&~2IBނιTUYT :ImDU B!GdسNzυjz)SXi5p|59Ǿ~YxǍlrO\öze{Ytv/nyMToNyӰlNc] ? ĺV)ϫ;t'k>?͍'e 75i{O,"d[f}wKg7u"RtHϸt'w)\9[!5W|C\{iM'ԑZ'=t-`YL<=6 TR#57]1 kj g۹ p+YC7řa}笠-iewfeq5MdlPOCfsƾ;r)GxkqExJkspCx>R4=!ogKޜ$t~sieV(xG 6c $,_%3>ry>};K.eOLf%[v}ۻ1ve sv-ey[ 7sSy]zWn7EqAO'N+Jv _+_ꡧDξ#gL#impL/uGd2h9#p9ɶK[VtڒBnIv.s!ǞFuJ_84X.Neoڥ_CFuHvMxrxHm5 p)\Ƕ> d?W勵*ŴM?I)793vtq8;]R Oz"V.`Fme+ǖûpvӮ*Z%ć=%6)'_z=mQ1_1\8{En.S3Īer-b3&-e+>9}%..l{\y"ûgS{6[4> 93{w''Aw ('T{l2sO&5 U d_"1y3>Z e CVnORMlٿ{"u=CUTeپXEB8zIXz].TtsysB-5diO75ISuAIFm&yyk*^k !y7߱{73O=GP2H\$} AkS'!AN?:Bٷ$t%$]RiJ`Į婯:;wb%X"p@pJ++!F/|D=nM+MiOY8Yu 'R7R>_on] jf'+n?=YU*z`%^ytS3{+ͷv(uٽulG{xɶŬk4LĒf˩QvMS]dg3{9#d?~|'5E=#p|G3H C+Ɣ^dͩ8.vSB_*W%Jx﹆ˏ=Ow9moX k6v0SGlaGJ|餯j V]zw"~~K|隱۟'ܼl3UA@ + i7Z# AͰ$nw̫+W 2+ϖzh:}N~-^40PfmPSr(b_t`\)H.QE]eӪXuIo{7nw<ʓ+:q]G&ՒgJtT1,(ނe;fgWrFQw izEE! xn7G?h|x]X7[w |Tƻ"},u\%iqmbpϑlc߇^(=eՀS-)xn1ߕ>znoAeRm;A{?]\O2qLjkwU?9lB )=ZZ;ZmkmֶXq8"ȐA!n֝g!Hnn J8%Eibr2g ǍeWRW-oڃRgFr aE~&h(^\-11s&e`6۶mcw^0E_p%t/>`3i\)eyq5' }_I_W˛ Ȍim# q3iF˨M̤v6YZoId{UBiݜ)0I$M='g)f @0̺غm;21|8{.f vyV+h1 (ںӽr%I$IRXB`J-B b LE% >Y!D?PXoEET:zαyI$ItrXk LB1֣&M âUġ}DK%I$ Cy((SGhfC44mw_l^n Lb渢Q?loIz NVwWc.ݎ_/5+YĂxy{i8NcK$I҉&@ }0(3\.`U UlkC,m Οgg$I$s"*>W/Q*6EWx,\$qwȠK'e){0ril|'(r_[۸p3K.fԳ?afc2߸k6'֓r8jw3bG\yzY>`tk"g^m;FvqϿ ͦaoGxw+Ԙ]u>\4S@k$/zrmIlx /Ǩ=p4 <+IawY* esfu9 ?ǀKx͔Dy!˶}bkhu<:k'ʴ;mnR6y: 8eK[rE;Ҏ+ }&1])vsl}//y_J$u 6,rSANS#rA5}n:W૦ٟz]T >/`t揅Tj@67ߞ2SyNҎuք[ьwy cs; :zZo[}ϥlZ$FYVFdUxsu } c\7VT?UW,"ۧ5\6̆0|2J$JnIJVkvX LcAyN:Z&:nE)WW=nߣ3.Β$}AΙ\ww4'RIՆ9[?[csGoGv]<˲M$I$I}L`$I$I}LεKֳȏDI$I$Ic2$I$Ic2$I$Ic2$I$Ic2$I$Ic2$I$Ic2$I$Ic2$I$Ic2$I$Ic2$I$Ic2$@UU4}!ĉ.$I#I䪫nb1cF1~]xOt1$I}K'ԩdeTWؔ)4[tQ#I?E$Ib$0[ƏsjJOO[k/ggx89װkg1KX|L&$1V3+XUOeZnƍ(|S:hP9-IE"0)f^x O[2 B6 ʰCYr^39Ѹ^9w9)f{Kuw4iB_'Ob-ުC,Zt23{O]m۷`u47`R$I:^f)&Ǐci u~czJK˸%t?yuO_ȸqcz5`s|VaiD "QOu=g&?햣/̊q晧aÆK%I^"g̛7W^z8].3&g = Ӎ@;Y敗3wvf%%LWRԒɬ$ ݯC÷]5(8p {?zow3=u&`E?rq?JmMm2$Izb5( ?߆ihv EQp{!M?癧k塞Z:jٵޫ($&%f'?O-7'$I?s=N_@BBB۲naHHHpg(O"9"8ޕli:`r޿q{9ެ㡩k I2j ok9بQ6 P=WƾXgzf/L|B⡼[۴yqK$I:>d&pP{7wC ":r@0Hў"{= -ā,{h9ڞ;>i m=z?7\ǘc2tN@ p9^B|2jkjY r$IzN`R<#?JXO7sŷ_P6͎9w 6W|@\|BQxdY\* &//ƌ#ÿB /-Itr-r Cꫯ"=c ,],;')_)l9;w2zXžq̘9p(=AU\$d#?cjnO&6|$28iUQZ"+cdaڲ8'u[)hZ:,%Ag3#>'f2#5Cg"Aj#>ֶ41-)S9c& wlUPYZʀlpz |iյBȇ~w1am`F_Kt1hƵ9^.7ѧ[1v||C*Qu|\4M*Sǥ ,!{2tMt½S`39}Ieٹf@AMSf1%v^/:Ea߮t]_RV߿_W eY`Yed$k`&gϦto!Yr'U%؝vTbP4,rjmCaA#8E\uc?@eu$XSDMٽ B)zF_dֿ*ӎ2k\~ֵ_83XWЩS40 }d$ԗU4*)*ݎͻ;ji25샧2uxߛ [rߝx5NE}, 3[VvdMmTuT~kγojy\:TtZ6/g\8og}s4Χ E}^14氅W0 .,:(u\G{& a3q e+YSX|BK)a$)Z^,G*@W0{:WI^_DZ6"3|j&+Ԝ %7cr>TȞ3֛)* 333i`Rl|LAZ:CfX?~nbGѰu{:mpG "kOj;I;`7 isƐ6 }b^'Al֧nG.p H-,yΉ44M 4J_C s*>wxxieHghrl$J@\:ΏZ[,}e^2lJJؽo9|C^X.B*L5 躾 VLM*.l!Xa-v4VUX֡.ZKE [! 6)10eyUIdfh0OaJ\3S+Є?a(٩6l|a:7l*p>=I[kҗ@-*a: Fm#F\ W x5 Y$+jb*jj3`}>_SƒB}UoQO6ˍSދO\:D7TaʊjYi!@ÆnY<q{5} >[Q7 fUQ.#"o{ UQ-T '8oa;9U-@0Dm Dxu^ZJ};[!L7`R<*6@{S wYz!c_5cYb+ûʰP4UHP]AikڏWYCA(A "['yC'P wXKUCGH&#E6`(E䧟4ڭ)(.G3;yp®7h oIƦ[DQ#+mDY(%Sa+ c6Vnl:1m\AӦ#_![-䌱m9eMd/ǞXOya SPDS XGGn~+2emG:Zqn\N'sgNcqg\q$ c 8.)*ݻ]6*~g vO#Mx 0S&L,럸{p;$'$mjFirNf 40 B-p& M3Zh6Ñ*,g`XB^ 9_gghP! <\C߅`kk3 uwi I^?箳^5*GWt%>Ƌ~W^#Q?UvLu7GDX߶1 71qc'6J O14ɭby5T}NQ\fSF5kH;Y ٲLϹ.uBT RAu `-ġcXM;M^ 0ud5lش2~{i uiڻtj2JnT&`Q;z N -U6&gc`>F`} Ĺ 28IqL1<qHJHЈSeyMl:_(1i ICqoa̙67n!%%yBZX{V !S;x!# R.&eAŵRyt=n ]ٟ)#?: |FupD5xJm^ SsO] Es1FULO6c(ߨcڏA\$=Ȥ)?ah(m˕ŰhɑLUOChCLsS1%N_ǖJN w1)} 2Q>oI٩zu5C.aO:חbZ fƍYW||sN|lABxȌn 3LTZ YˌI{mX 2Ȭv|i=zBdTj[/L'1 1mgWsKmއ|]>ثt0#PfjZl،֧<Kjomf3t|RsXs,~oGGv˄/,C{=jQhڴSjZ^s sb.(ѢЫس{0sU>oRPܩd$5SS#ehaU 9#L8襲x/ucX`K"L83' }7+\s~ (f5֤D> ɳpinNdX5b 1CTT${L'IV_6bz#*l6a!OTP,;:IJ$O+BxwLNK;t116a WݮcF~81 _}xv:Z&:nE)WW=nߣ3.·p(\rk9|c3fTא"T GUINn IDATVt4AꅅBUs3%TM>nXĥ[neo }Nf6wž'ݟ?Я!]ɏ2a'/;Lv|{lJ @F@i8C IRٰ6g+pmZ[;~?b|XL΀3`3(#++;UNWLHS:4$ fj3L|Z<#aYTUqF@FaYXYIa^i(Cn⤦qi&g0F4#~N ):v"X޽nK.$IIL`u=LZj?bY`pn\BQ$ HT L'Aq57b7cnO3hi(Eq >_؏˕_Y<ƟBXڡ|0%]Ke PN6?2/ROHh$Iz zQMQVVE2A qT7 K(U*qn`I)'9 Zk3֞H=6*t&M&l+kt:s23b'/bOv'M{w#`)_GH_M2E/m٩&-#1U!Iy02UZ Ţ4$D'P=Պ:ah4&Iߤҏ$@ZFe/miÙs/;.ȝŲ7u/p{ ;}8n=+O4k~ndKD `+;`©͂@  j *JkÔօ(~B-T  ՚ f,*jC:_ZPrXYbeiwL8M'Ihk.z,\u/hX*ѝq_e$r'^tpI( qql㲯]#(),D%45a ߠo;lAۄ i.CѢ mx}atU`Y1S0}߉!Z/ݭKcsyv<fJVX}^̥Tl}S)֕uSXw-˞ `"۸cF\:-Kۋ <+IawYՇ_p;Q+qe[u-d%TB(iޓ]҆0o3=6oWSw&EMA%ܶV~qXtޝq v^8wW؀ rDdM@w*ҢYm@Q*t,4]K {"9?zweGf Z9>(oz=8`60NY"=$>E0vn 9鮱,P{ipgsͰɜ}tR_iYw[Etv"@Sp )V(bHIUa/]&:arM8(=|=@"60- [4Ә\y:j´lQt׌:s=Lƹ L-غ`e*b :4Q\WƖm/⬨卭.1%XȚ->BЫ)*su88ln.85lZQ}ܽ(`˭—#0fv"/ͧ1j^ICH~N_ʽ Y.|732-mabBɇw 2wy+L"eJ29gf>d4Ż(ӕeI:Vr UoqypUo\ &bX4ׇ; a6|x:nR\x1OJ$ӕF?KM(z$3t:۫MilNI| GY@GձL&.PEfG`u| "6KS>^7㥇cY zHUհ9N7~c>U+ hAgZl@+R  ҆eʹSRV 4m~qg}PۼVˇ^7^.ֵ:NW<\<ƓJa6ѣXM? j94F}#Z=)YG&geY5P E)e`s-hƻ< 1wȹjQf}eǚE>l }6˽g1.L`_xr)Wm|H%^)kP_[6xOgXH_ Tos)81NcY39/EUiv9kشm;. ABj&_N}IפVΠޠ2L}b3sL1ylش0i(ږ_O/a '@LJV_7ARf fd.f1Qub*GOӋaudT07'|t\V.(l?/aΝG|:l1"V<ǿx[H轱/?as=Fr;>{EO_Mkr)o 8|Ϥ XpbMPV^Fuu5- hBDVf&IM|@U_˫g^8;uxT1%7j@ʧyꈙ#_k;G 䃧Yt/KhiO_Ǽڲk}8|xTQ(irYzY},_6pva|z~F^J2(M=l 2.jy-{;㠽XX{'y=߿I? kw<#PU(vNWmZMGc=An1.L` >˓Go}շן *wH /8WpijF6q+Q-{C&du].Iv<7tGKeўV}}=:cIQ|˲0- 41L01Mq\d`L?A3IMMawLEy;sټu+e4:t^{xu"Ι\w &xHY|/c_SV/hcMw񃆇G^IS9YZ֝BeamV6"Wjjܑh]=GŲ,f Vz LS`**P=%Qj<q.'B M̈́z[+u֫uS&03k&FKǃL%fb *R/F]LL5$KO$E`}-0RˊeB  T, 21 &[W.q;KĴf傔28Pp^~>ɇo v;΍kFe]u؉K8qJI?~t8(!;G;J4R 8؎ui%4#|B!DIB!(0 `B!&L!$ !B0!B&BQ`B! LB!DI|- BQ>$ތ͘q*g,fd*#7TBPy/n3hl=9Y7 ~k֬-6ԩ\õTW{SB8$L2{,=U̧?_~7Xm6{e /a֦䫹S@,)^y3GUVV2kLTUn}|\r%,;o)*l!('cW]u9?r$qSN̔S&j}Zlt|m _lgwlx7u /y|x 0;ì]^|n/äBȿ‘ٳgH&c[ 4ן96~Aic{؇%g/s bu\t~)S&B!D*`‘K?+^"S0WȽGEP8 ?X_Dwl6lr Fj:ҮW!vat߇H~ƴdܸqnԶo~~=w]B,#HP8>~3?- ! G7[oSst=2R=RjBAiMz2tu>+[xW_yۿs;m` |onݺi6qK/~eB!Bpd @BA5l?0,gZQC>-] ʼnfyNUUjjwVR΃?]ʪj|l{!Tgw$~-ڦMʄB0ȮXp|`{ ϻsWk4ۚh_ifwGnkjY-ݶ}{xR;l8/2m۷Q D׿cUTFeY!j$ Gy.οvlߟ;۶m'R pp߱6ogOC655_h?af̜ɓBbה}H(ʠphkm'BQ_BIEٱs7?I$7ګ~:>KF>r(B2!|)xSOSU]?bgqÍ70iD6m\ Ҍ3>}?0PB2y9dQ!"DEEP8L__oSĭs o2lcGr[_3q SYYɢ ID⯹DX9YS{DMbo#o8'+4k 0`0SO>E2B!I(e |Y^84Mc]A"DgBPd.)k:H!SÃe\L!J%b?SB!+k B!NsK"9 !%D.IB!(r `NRzB!&B䀂)&B1$*HHr/!x }.vȨ/nHoHg !Ccfѕc˅as?S_;B!D _IcsB;/n %em(BPC !BdA.rs{\ 7BborRԕ*B $_AB!pNH̋B!L3-y!1TBNu<[ʹLkZ%lъ !Y+1sH\3l(0J][0L?t)aB1!CD6ǀ9}~]0躎iT>k/;*ϻYplƌߧiZPUccW7}$]'R## q ^dg1 2"'Ad |d l68|iDB; O IDATkرc2iS7j55ziii;vo>7rq¿ ; i?6oVqWf. 'nL];V꓏-I@IvҺ c$2tV}e\>wo?+Z}A8{#W4W_aԝ2)  }۶zESF=Wְ+.iZxPG0%m_QbG4ZdK;hJ9 ?ǔ[9;ͨNc̟7ŋbۺ5ڿ#m(@QiȔs8kBxycJZUQA6)~>6?;WLa/84]\;{yh{^:&3sӳ DO'd%ιrL<؜x۹s牿F'nCf3#8i '1lZֿE⫙)ż/~O˝leNI _"?#At|fyU%XW =[Ms|ϯaba`:ǍqX,Y¾٭_iP_}`>|潼 8r7r?̳=={9T]3Pw<;~Wg\h[iփ-嬱>=l}yjî å3TYVڝӸ[0k|7}\}j5nCASjs釬 )^7zvѻ+=DJӨ~Bavm\FBTf͙ؐuj>_]sDĚVrK7,\د@ʅq=<ѧeH@FV:@:sFѾb5M4BTf>1:Dmv(nuu^Q ~=[LȈWvBK~ 3/0{Zw;0FW_eK?yy-\UJ,4egM/0P;{&LqXӴi J@A ,Zz&ͧvpa4MC}V6D}7?}.WS=z݆

s`crp}Gԥcz\80w1;Y-ZХ<+H񾍷hj2~n<sSNw5\/9/ߦjS]7rYt&}j!=㪥s7s@q$>;\lV/;wW^)n{;i Xcp,ӫi],/SQ.\GOFEbFZ˘% 3)^nI`Kmt&TL nc[qzN?ϲѬ:&ϱ}:&}s:6o ϲ@Laz10=NJ3io_΋1r.s}+yqy7Q q>9S握rrTQ悹e;]ַX]3&:# _56T kHԎcD,^Jg}g[/VL8]{ɝur/dO`,^09sN# g6A *(%觻/ƪׇ假V7K*,R-Y%g_"̙3xR C_W]ޭ^zd'm2b5g~¯}iRw |Ξ5}fEA|w*0OS1~UMoat:;u@>[ö5/>so۸Oӏg@=;{}<&"Lf)+4?l{ݏqϝ t`c+xgx>-癿=+q @=.gq~{ej3* ='uTuE:ߢVIesi:@.J8`$+`TObBr3% 01G Jj&1A̖V zvycE;̞Q(V4Jߩ"Z3HMYvH$&j[Ҭ8ꂆS u C&:'arxzAYCX nMkM#U_(*;[νukȾKfSKM֕է& k~LFA{s33zE!W)ߺPd4z>zd;xmbWH ~He7Vlyb&ҸA?|kè@I|(=iI$#TC0Y7FW%.b׈7g 8<5}u#89~W> R>}/,cƹefoζc'*/JgjT t#?FPSSQ>bICQr%kHXn"z&FvjiAx ϖOK@ S=q:FW@Wĭ*?Fho TḤj *:ɸZT\+oOas9V+6g4Sc@,,~􏉊 /vͼNqRP{f2.Yލ)'Ҽ}]h cXvlkcLAWB߾(Icha楒ot4}}ӽ9o' J¡A9gf1G*jFL!b@};wa*#tALI0ohQG~S>oPYbxM ]ݨGKnBnb:F*" !$G{k0W'8`hUQ_e#cZ`]-6?*7_u;߻ ]bX6qz0qU?ibqs,Mi 1 `*H8n]^sf=a:UL4VłE@j$jQRUo8ZH(:=FhdB1{ZY~-g/X|sjjpG'xpVcSe}ODv6aꊰǴqC7aW2,d<ο~42{0䭇d' Y:6ꦽᵄtPQ.zh5K}~ftng8kIl*;_Q4lىۿ_vG;_cS^u1Kz6;QK*φһidkf־Ėvʴ( |^b&VSqt6H9UutQ )TwKf<zd"3;9f 0|#?>έ}uLӵ9maD`0L=*SkzԪPTvWX}(IJDf9S =vL7dxQ:>qɖ '3>t|tB.'Ů"y)3֗L8oI\|ݻ룏8wof}**5B৿bb)*=z. 1yiic[r+^|E֭1M{0tAnWu_^e}XN7 Xf0i"j߾x?=Z2mXdm'靪EEG릵'Yl8|E,Wuubg3yѹڸgwGθw|7w6t8+6}m s[lrWۨ_y̿^"yy} 棓طҤE%8gL ;ݑ ihM^s Ct`+[6S9|,ml~~9u #$#~P'iXvz5^5ZàRkMsn :ĶM5{>ח(ij_'(HF͛xٵxvHܶ7'zNɶbo?ҭM{)I Nǡ|GA,uFgF 4M`!_%aE!AWjjIG& P*UB>"=PC1Ā@Dpxr|#lDض{ 7/1qtֳއxh~m{¥\?f~>_P8 K;Y8 HM#tjPxJT"F5QU]ք$ (1*EǀHJBn**k!O; C׎mP_t/8Tn+sz|41–r`^pRK)%hbb |z/-If'D*+ FZԪ8 @B;@$2 [SE j1#2v Gڷasx"kBB'N'ғ5T9LYuSaK,>}}:j^| ESP4 |AgWn\ct5N"ѱ@06V@oQI/NxMiq>qۗ|RR3?GqqItJ@щATשDjzQQ4U$NB/+C]Cϼ2G:Bn=8I5eq|=f턨| #TU9B|@rWrdWH2At>B^].tW5ubV Ko A}'ܷ_2 OwLc(d > `W!3W<)JMUoo{q;Ni6|GޅN8*jE j+C*> >5Jt&H 1o 9WTEP~ W73E '[}6$Uw9}<KWyGxd(#pM\?GGqùpt 0>7eջk97qͩ>مv\;s0% 6u\cꮴ6-}ym몙:**wo̾psӿJ*LOx$N.$\S/tgpNew 6:}^r{,ƛ]qU3Xp΃OH~6/z!H/n.'& O^^u,J=ӿyؿARn]U>g/!X]y_.'-~]߯.]_i!ʈ՗l[|rJ"cdeZ1)NRoc⾚Xx3f})~ZMi/iHp&|@-խc`581cg[rfخ->knRC9l@91VQ,Vcw:Be{0wRq0s1Wt-[hn'S[6}+Si<8ݨp⋨y()mǃ6?fTNfHBx܄1s[JOj5Jfnj]vdڧ!U(2s~dXFj.U`*70U˪M]e v7UG7$ !NVلl1˜]ȲgUp0WnN%cW¦-W2aקBR>*V`p8KmSS*]08ta5WS[SV2&8Yyq0w܄LA<j@xL.'&s] IDAT} <_O)Uj6ӭ Tc FʼoF5~Sƀٝ4*IBw~ OU WWVj{u6VU9@jX*p*zrqG8q ~Pf|7U|UBMK}҅.oZvScuL6Svn7=%ؕz,SPsRx­ƍb<+-uށ50\J [Hskfi^B˃enT JvL` -v+S$<%]1+M2ku4:S U}s<=SV!;4xes*2]LӄB&xoW҅j)—U<Ͷۅ5|nT +]hjVB95ԱgvBig{15 !(t=vn.fȬƃ٭?8\{JV4Deg5=]<\!KnW4@J Sn.:`ٵ:,4 !DvT2MsROկLA̪]n n%ԕb,V6ZUAT J@2_xժe>fNGz}Q™dM3e unna']JojVTs* TrR `;- ff?jܗpⸯӑJJ<tr= 鄄*!/BGW6A|Z2]4F,u>h <_%iMe+SȪ…izjJk'EJUn X+]6+Ȅ";Kfʲ ba*ap^0`v҅\`naV!,5 1xiX XVgn34-S{B kHWT꟩dI*bV1}'j~de,Me p`}zǩU/sX2WRoZӌvDB.TϮ*fB9 bVtm*kV봓WwL)T jTd4)ȁ6%VIyle c' <Ԟm?!ּez̟L~A*aHSEBkMKe7,u08pY6]¢MBb0s[dXvl=h6}tSjOm)N.n}NO= `vmNe"L!rw{Isf[*s,S_ۮtԞm?J%6h9.lٵ+'vZrV}ҵ9&" `NJjXӒvU.ivُtgjϵ+8bܦkuǙ*^閛:ռNe{Q˜BFz6M@ty:_eؙ뛩=~Y)f5i|0U5+]tnڬH Borw{)t'wG=i^L$en^Y3hsZ2c?e0!F/i2U~̡<ͼ i4ޚӲ ]~Z0iTRۅ0>气nZ[.707mB'w/*bNNS]Ulif'UslNe:9p]U,uNN1 NgjwG!w `VnOATT)3'K5O7M+ӴleXa݆t-*]ٜt2-B!2c12t!vdF~^7,47<-]it!K!ϋe~MejәnWA`[UL2+͎0!ȏ\C@6mnY6c҅l~vmN7kwҞUՀ}/][v}G!N fՖiL}ⱐ+v;C.]WULKel'ҵgO!D~:(<lte2ks2-9))\evmN#"r &e[efX6ݬ;]i^Z!C݋f./q.o VBQ^]%x.B0(nZ>×c39(C!,ǹloLӼ蟓r`v\aIR!)3fJY U )qchmɼB!#j`U(2\eƲy>쟳r `qzJPr _^#"{¬ڲ ^x=4/I1NA(r0m^T[ބ";^\.Ua7X+]~8w̛xv/N!/!(Orvٌ;s KV`1=y2)]!D\ ^UV :OYٴgu!IXȵO1Y>XwgϋX+/Zj !(W^.#ꑗAj,}* ~/d5,_ӜLw- _B| 1i P*mC|BR,Z!ĉr ^ L 6b^LwNjyBlDBWT>h5Ų݆Rj)b((>u'\seE+BB14{zb]۫T+*B ^bI?pyl+n1'}qz\^W!#xu. ^@]pR <(B  ^g:i0bVm5BB!ϯ)V`6r{/Zu !8Q!J>/P W/WRa[jB -XbU>{żҼBVO]BWr9ZB"  _G qR>!dn\nA xb>CB\Se r^-~B!J[!`L$"?JBB_==B!)Q)tWB!3Ci,ZI:YAwmBBNmOީ!BT^P."{\5*mTB! L'B!rwWHL!ʓyB̤% !BTp Ko!L*Z"0!B&B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!+]IENDB`tootle-0.2.0/debian/000077500000000000000000000000001336712117400142465ustar00rootroot00000000000000tootle-0.2.0/debian/changelog000066400000000000000000000001771336712117400161250ustar00rootroot00000000000000tootle (0.2.0) bionic; urgency=low * Initial release -- bleak_grey Tue, 27 Feb 2018 10:00:00 -0500 tootle-0.2.0/debian/compat000066400000000000000000000000031336712117400154450ustar00rootroot0000000000000011 tootle-0.2.0/debian/control000066400000000000000000000011401336712117400156450ustar00rootroot00000000000000Source: com.github.bleakgrey.tootle Section: x11 Priority: optional Maintainer: bleak_grey Build-Depends: meson, valac (>= 0.26), debhelper (>= 11), libgranite-dev, libgtk-3-dev (>= 3.22.0), libglib2.0-dev (>= 2.30.0), libgee-0.8-dev (>= 0.8.5), libsoup2.4-dev, libjson-glib-dev Standards-Version: 4.1.5 Package: com.github.bleakgrey.tootle Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Description: Mastodon client Lightning fast Mastodon client. tootle-0.2.0/debian/copyright000066400000000000000000000017061336712117400162050ustar00rootroot00000000000000Format: http://dep.debian.net/deps/dep5 Upstream-Name: tootle Source: https://github.com/bleakgrey/tootle Files: * Copyright: 2018 bleak_grey License: GPL-3.0+ License: GPL-3.0+ 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 package 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 . . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". tootle-0.2.0/debian/rules000077500000000000000000000007211336712117400153260ustar00rootroot00000000000000#!/usr/bin/make -f export DH_VERBOSE=1 export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ override_dh_auto_clean: rm -rf debian/build override_dh_auto_configure: mkdir -p debian/build cd debian/build && meson --prefix=/usr ../.. override_dh_auto_build: cd debian/build && ninja -v override_dh_auto_test: cd debian/build && ninja test override_dh_auto_install: cd debian/build && DESTDIR=${CURDIR}/debian/com.github.bleakgrey.tootle ninja install tootle-0.2.0/debian/source/000077500000000000000000000000001336712117400155465ustar00rootroot00000000000000tootle-0.2.0/debian/source/format000066400000000000000000000000151336712117400167550ustar00rootroot000000000000003.0 (native) tootle-0.2.0/meson.build000066400000000000000000000044651336712117400151770ustar00rootroot00000000000000project('com.github.bleakgrey.tootle', 'vala', 'c') gnome = import('gnome') i18n = import('i18n') add_global_arguments([ '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()) ], language: 'c', ) asresources = gnome.compile_resources( 'as-resources', 'data/' + meson.project_name() + '.gresource.xml', source_dir: 'data', c_name: 'as' ) executable( meson.project_name(), asresources, 'src/Application.vala', 'src/Desktop.vala', 'src/Html.vala', 'src/MainWindow.vala', 'src/Settings.vala', 'src/Accounts.vala', 'src/ImageCache.vala', 'src/Network.vala', 'src/Watchlist.vala', 'src/Notificator.vala', 'src/InstanceAccount.vala', 'src/API/Account.vala', 'src/API/Relationship.vala', 'src/API/Mention.vala', 'src/API/Tag.vala', 'src/API/Status.vala', 'src/API/StatusVisibility.vala', 'src/API/Notification.vala', 'src/API/NotificationType.vala', 'src/API/Attachment.vala', 'src/Widgets/AlignedLabel.vala', 'src/Widgets/RichLabel.vala', 'src/Widgets/ImageToggleButton.vala', 'src/Widgets/AccountsButton.vala', 'src/Widgets/StatusWidget.vala', 'src/Widgets/AccountWidget.vala', 'src/Widgets/NotificationWidget.vala', 'src/Widgets/AttachmentWidget.vala', 'src/Widgets/AttachmentBox.vala', 'src/Dialogs/NewAccountDialog.vala', 'src/Dialogs/PostDialog.vala', 'src/Dialogs/SettingsDialog.vala', 'src/Dialogs/WatchlistDialog.vala', 'src/Views/AbstractView.vala', 'src/Views/TimelineView.vala', 'src/Views/HomeView.vala', 'src/Views/LocalView.vala', 'src/Views/FederatedView.vala', 'src/Views/NotificationsView.vala', 'src/Views/DirectView.vala', 'src/Views/StatusView.vala', 'src/Views/AccountView.vala', 'src/Views/FollowersView.vala', 'src/Views/FollowingView.vala', 'src/Views/FavoritesView.vala', 'src/Views/SearchView.vala', 'src/Views/HashtagView.vala', dependencies: [ dependency('gtk+-3.0', version: '>=3.22.0'), dependency('glib-2.0', version: '>=2.30.0'), dependency('gee-0.8', version: '>=0.8.5'), dependency('granite'), dependency('json-glib-1.0'), dependency('libsoup-2.4') ], install: true ) subdir('data') subdir('po') meson.add_install_script('meson/post_install.py') tootle-0.2.0/meson/000077500000000000000000000000001336712117400141455ustar00rootroot00000000000000tootle-0.2.0/meson/post_install.py000066400000000000000000000010061336712117400172270ustar00rootroot00000000000000#!/usr/bin/env python3 import os import subprocess schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas') iconsdir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'icons', 'hicolor') if not os.environ.get('DESTDIR'): print('Compiling gsettings schemas...') subprocess.call(['glib-compile-schemas', schemadir]) print('Updating icon cache...') if not os.path.exists(iconsdir): os.makedirs(iconsdir) subprocess.call(['gtk-update-icon-cache', '-qtf', iconsdir])tootle-0.2.0/po/000077500000000000000000000000001336712117400134425ustar00rootroot00000000000000tootle-0.2.0/po/LINGUAS000066400000000000000000000000301336712117400144600ustar00rootroot00000000000000fr_FR ru pl de_DE zh_CN tootle-0.2.0/po/POTFILES000066400000000000000000000023701336712117400146140ustar00rootroot00000000000000data/com.github.bleakgrey.tootle.desktop.in data/com.github.bleakgrey.tootle.appdata.xml.in src/Accounts.vala src/Application.vala src/Desktop.vala src/Html.vala src/ImageCache.vala src/InstanceAccount.vala src/MainWindow.vala src/Network.vala src/Watchlist.vala src/Notificator.vala src/Settings.vala src/API/Account.vala src/API/Attachment.vala src/API/Mention.vala src/API/Notification.vala src/API/NotificationType.vala src/API/Relationship.vala src/API/Status.vala src/API/StatusVisibility.vala src/Widgets/AccountsButton.vala src/Widgets/AccountWidget.vala src/Widgets/AlignedLabel.vala src/Widgets/AttachmentBox.vala src/Widgets/AttachmentWidget.vala src/Widgets/ImageToggleButton.vala src/Widgets/NotificationWidget.vala src/Widgets/RichLabel.vala src/Widgets/StatusWidget.vala src/Dialogs/NewAccountDialog.vala src/Dialogs/PostDialog.vala src/Dialogs/SettingsDialog.vala src/Dialogs/WatchlistDialog.vala src/Views/AbstractView.vala src/Views/AccountView.vala src/Views/FavoritesView.vala src/Views/DirectView.vala src/Views/FederatedView.vala src/Views/FollowersView.vala src/Views/FollowingView.vala src/Views/HomeView.vala src/Views/LocalView.vala src/Views/NotificationsView.vala src/Views/SearchView.vala src/Views/StatusView.vala src/Views/TimelineView.vala tootle-0.2.0/po/com.github.bleakgrey.tootle.pot000066400000000000000000000262271336712117400215070ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the com.github.bleakgrey.tootle package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: com.github.bleakgrey.tootle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-30 19:17+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/com.github.bleakgrey.tootle.desktop.in:4 #: data/com.github.bleakgrey.tootle.appdata.xml.in:7 src/MainWindow.vala:68 msgid "Tootle" msgstr "" #: data/com.github.bleakgrey.tootle.desktop.in:5 #: data/com.github.bleakgrey.tootle.desktop.in:6 msgid "Mastodon Client" msgstr "" #: data/com.github.bleakgrey.tootle.desktop.in:8 msgid "com.github.bleakgrey.tootle" msgstr "" #: data/com.github.bleakgrey.tootle.desktop.in:11 msgid "toot;mastodon;social;network;post;" msgstr "" #: data/com.github.bleakgrey.tootle.appdata.xml.in:8 msgid "Lightning fast client for Mastodon" msgstr "" #: data/com.github.bleakgrey.tootle.appdata.xml.in:11 msgid "" "Tootle is a client for the world’s largest free, open-source, decentralized " "microblogging network with real-time notifications and multiple accounts " "support." msgstr "" #: data/com.github.bleakgrey.tootle.appdata.xml.in:14 msgid "" "Mastodon is lovely crafted with power and speed in mind, resulting in a " "free, independent and popular alternative to the centralized social networks." msgstr "" #: data/com.github.bleakgrey.tootle.appdata.xml.in:17 msgid "" "Anyone can run a server of Mastodon. Each server hosts individual user " "accounts, the content they produce, and the content they are subscribed. " "Every user can follow each other and share their posts regardless of their " "server." msgstr "" #: data/com.github.bleakgrey.tootle.appdata.xml.in:26 msgid "bleak_grey" msgstr "" #: src/Desktop.vala:10 src/API/Account.vala:123 src/API/Account.vala:142 #: src/API/Account.vala:161 src/Dialogs/NewAccountDialog.vala:102 msgid "Error" msgstr "" #: src/Desktop.vala:46 msgid "Media downloaded" msgstr "" #: src/MainWindow.vala:48 msgid "Back" msgstr "" #: src/MainWindow.vala:54 src/Dialogs/PostDialog.vala:29 msgid "Toot" msgstr "" #: src/Network.vala:58 msgid "TLS Error" msgstr "" #: src/Network.vala:58 msgid "Can't ensure secure connection: " msgstr "" #: src/Network.vala:66 #, c-format msgid "Error: %s" msgstr "" #: src/API/NotificationType.vala:50 #, c-format msgid "%s mentioned you" msgstr "" #: src/API/NotificationType.vala:52 #, c-format msgid "%s boosted your toot" msgstr "" #: src/API/NotificationType.vala:54 #, c-format msgid "%s favorited your toot" msgstr "" #: src/API/NotificationType.vala:56 #, c-format msgid "%s now follows you" msgstr "" #: src/API/NotificationType.vala:58 #, c-format msgid "%s wants to follow you" msgstr "" #: src/API/NotificationType.vala:60 #, c-format msgid "%s posted a toot" msgstr "" #: src/API/Status.vala:174 msgid "Boosted!" msgstr "" #: src/API/Status.vala:176 msgid "Removed boost" msgstr "" #: src/API/Status.vala:189 msgid "Favorited!" msgstr "" #: src/API/Status.vala:191 msgid "Removed from favorites" msgstr "" #: src/API/Status.vala:204 msgid "Muted!" msgstr "" #: src/API/Status.vala:206 msgid "Conversation unmuted" msgstr "" #: src/API/Status.vala:219 msgid "Pinned!" msgstr "" #: src/API/Status.vala:221 msgid "Unpinned from profile" msgstr "" #: src/API/Status.vala:231 msgid "Poof!" msgstr "" #: src/API/StatusVisibility.vala:40 msgid "Post to public timelines" msgstr "" #: src/API/StatusVisibility.vala:42 msgid "Don't post to public timelines" msgstr "" #: src/API/StatusVisibility.vala:44 msgid "Post to followers only" msgstr "" #: src/API/StatusVisibility.vala:46 msgid "Post to mentioned users only" msgstr "" #: src/Widgets/AccountsButton.vala:67 msgid "Refresh" msgstr "" #: src/Widgets/AccountsButton.vala:71 msgid "Favorites" msgstr "" #: src/Widgets/AccountsButton.vala:75 src/Views/DirectView.vala:12 msgid "Direct Messages" msgstr "" #: src/Widgets/AccountsButton.vala:79 src/Views/SearchView.vala:12 msgid "Search" msgstr "" #: src/Widgets/AccountsButton.vala:83 msgid "Watchlist" msgstr "" #: src/Widgets/AccountsButton.vala:87 src/Dialogs/SettingsDialog.vala:18 msgid "Settings" msgstr "" #: src/Widgets/AccountsButton.vala:142 msgid "New Account" msgstr "" #: src/Widgets/AccountsButton.vala:143 msgid "Click to add" msgstr "" #: src/Widgets/AccountWidget.vala:24 src/Widgets/AttachmentWidget.vala:130 #: src/Widgets/StatusWidget.vala:289 msgid "Open in Browser" msgstr "" #: src/Widgets/AccountWidget.vala:26 src/Widgets/AttachmentWidget.vala:132 #: src/Widgets/StatusWidget.vala:291 msgid "Copy Link" msgstr "" #: src/Widgets/AttachmentBox.vala:41 msgid "Select media files to add" msgstr "" #: src/Widgets/AttachmentBox.vala:44 msgid "_Cancel" msgstr "" #: src/Widgets/AttachmentBox.vala:46 msgid "_Open" msgstr "" #: src/Widgets/AttachmentWidget.vala:67 #, c-format msgid "Click to open %s media" msgstr "" #: src/Widgets/AttachmentWidget.vala:84 msgid "Uploading..." msgstr "" #: src/Widgets/AttachmentWidget.vala:105 msgid "File read error" msgstr "" #: src/Widgets/AttachmentWidget.vala:105 #, c-format msgid "Can't read file %s: %s" msgstr "" #: src/Widgets/AttachmentWidget.vala:124 msgid "Remove" msgstr "" #: src/Widgets/AttachmentWidget.vala:134 msgid "Download" msgstr "" #: src/Widgets/NotificationWidget.vala:20 msgid "Unknown Notification" msgstr "" #: src/Widgets/NotificationWidget.vala:25 msgid "Dismiss" msgstr "" #: src/Widgets/NotificationWidget.vala:64 msgid "Accept" msgstr "" #: src/Widgets/NotificationWidget.vala:66 msgid "Reject" msgstr "" #: src/Widgets/StatusWidget.vala:84 msgid "Boost" msgstr "" #: src/Widgets/StatusWidget.vala:91 msgid "Favorite" msgstr "" #: src/Widgets/StatusWidget.vala:98 msgid "Reply" msgstr "" #: src/Widgets/StatusWidget.vala:136 #, c-format msgid "%s boosted" msgstr "" #: src/Widgets/StatusWidget.vala:151 msgid "Toggle content" msgstr "" #: src/Widgets/StatusWidget.vala:165 msgid "[ This post contains sensitive content ]" msgstr "" #: src/Widgets/StatusWidget.vala:234 msgid "This post can't be boosted" msgstr "" #: src/Widgets/StatusWidget.vala:287 msgid "Unmute Conversation" msgstr "" #: src/Widgets/StatusWidget.vala:287 msgid "Mute Conversation" msgstr "" #: src/Widgets/StatusWidget.vala:293 msgid "Copy Text" msgstr "" #: src/Widgets/StatusWidget.vala:300 msgid "Unpin from Profile" msgstr "" #: src/Widgets/StatusWidget.vala:300 msgid "Pin on Profile" msgstr "" #: src/Widgets/StatusWidget.vala:304 msgid "Delete" msgstr "" #: src/Widgets/StatusWidget.vala:308 src/Dialogs/PostDialog.vala:72 msgid "Redraft" msgstr "" #: src/Dialogs/NewAccountDialog.vala:27 msgid "New Account" msgstr "" #: src/Dialogs/NewAccountDialog.vala:38 msgid "What's an instance?" msgstr "" #: src/Dialogs/NewAccountDialog.vala:42 msgid "Code:" msgstr "" #: src/Dialogs/NewAccountDialog.vala:46 msgid "Paste your instance authorization code here" msgstr "" #: src/Dialogs/NewAccountDialog.vala:49 msgid "Add Account" msgstr "" #: src/Dialogs/NewAccountDialog.vala:60 msgid "Instance:" msgstr "" #: src/Dialogs/NewAccountDialog.vala:102 msgid "Please paste valid instance authorization code" msgstr "" #: src/Dialogs/NewAccountDialog.vala:110 msgid "Network Error" msgstr "" #: src/Dialogs/PostDialog.vala:45 msgid "Post Visibility" msgstr "" #: src/Dialogs/PostDialog.vala:52 msgid "Add Media" msgstr "" #: src/Dialogs/PostDialog.vala:61 msgid "Spoiler Warning" msgstr "" #: src/Dialogs/PostDialog.vala:68 msgid "Cancel" msgstr "" #: src/Dialogs/PostDialog.vala:77 msgid "Toot!" msgstr "" #: src/Dialogs/PostDialog.vala:85 msgid "Write your warning here" msgstr "" #: src/Dialogs/SettingsDialog.vala:37 msgid "Appearance" msgstr "" #: src/Dialogs/SettingsDialog.vala:38 msgid "Dark theme:" msgstr "" #: src/Dialogs/SettingsDialog.vala:41 msgid "Timelines" msgstr "" #: src/Dialogs/SettingsDialog.vala:42 msgid "Real-time updates:" msgstr "" #: src/Dialogs/SettingsDialog.vala:44 msgid "Update public timelines:" msgstr "" #. grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); #. grid.attach (new SettingsLabel (_("Use cache:")), 0, i); #. grid.attach (new SettingsSwitch ("cache"), 1, i++); #. grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); #. var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); #. settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); #. grid.attach (cache_size, 1, i++); #: src/Dialogs/SettingsDialog.vala:55 src/Views/NotificationsView.vala:34 msgid "Notifications" msgstr "" #: src/Dialogs/SettingsDialog.vala:56 msgid "Display notifications:" msgstr "" #: src/Dialogs/SettingsDialog.vala:58 msgid "Always receive notifications:" msgstr "" #: src/Dialogs/SettingsDialog.vala:64 msgid "_Close" msgstr "" #: src/Dialogs/WatchlistDialog.vala:20 msgid "" "You'll be notified when toots from this user appear in your Home timeline." msgstr "" #: src/Dialogs/WatchlistDialog.vala:21 msgid "" "You'll be notified when toots with this hashtag appear in any public " "timelines." msgstr "" #: src/Dialogs/WatchlistDialog.vala:137 msgid "Users" msgstr "" #: src/Dialogs/WatchlistDialog.vala:138 src/Views/SearchView.vala:100 msgid "Hashtags" msgstr "" #: src/Dialogs/WatchlistDialog.vala:148 msgid "Add" msgstr "" #: src/Views/AbstractView.vala:59 msgid "Nothing to see here" msgstr "" #: src/Views/AccountView.vala:79 msgid "Edit Profile" msgstr "" #: src/Views/AccountView.vala:80 msgid "Mention" msgstr "" #: src/Views/AccountView.vala:81 msgid "Report" msgstr "" #: src/Views/AccountView.vala:82 src/Views/AccountView.vala:167 msgid "Mute" msgstr "" #: src/Views/AccountView.vala:83 src/Views/AccountView.vala:166 msgid "Block" msgstr "" #: src/Views/AccountView.vala:95 msgid "More Actions" msgstr "" #: src/Views/AccountView.vala:115 msgid "Toots" msgstr "" #: src/Views/AccountView.vala:116 msgid "Follows" msgstr "" #: src/Views/AccountView.vala:120 msgid "Followers" msgstr "" #: src/Views/AccountView.vala:155 msgid "Unfollow" msgstr "" #: src/Views/AccountView.vala:159 msgid "Follow" msgstr "" #: src/Views/AccountView.vala:166 msgid "Unblock" msgstr "" #: src/Views/AccountView.vala:167 msgid "Unmute" msgstr "" #: src/Views/AccountView.vala:228 msgid "Sent follow request" msgstr "" #: src/Views/AccountView.vala:230 msgid "Blocked" msgstr "" #: src/Views/AccountView.vala:232 msgid "Follows you" msgstr "" #: src/Views/AccountView.vala:234 msgid "Blocking this instance" msgstr "" #: src/Views/AccountView.vala:269 msgid "User not found" msgstr "" #: src/Views/FederatedView.vala:12 msgid "Federated Timeline" msgstr "" #: src/Views/HomeView.vala:12 src/Views/TimelineView.vala:36 msgid "Home" msgstr "" #: src/Views/LocalView.vala:12 msgid "Local Timeline" msgstr "" #: src/Views/SearchView.vala:82 msgid "Accounts" msgstr "" #: src/Views/SearchView.vala:91 msgid "Statuses" msgstr "" tootle-0.2.0/po/de_DE.po000066400000000000000000000346331336712117400147530ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the com.github.bleakgrey.tootle package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: com.github.bleakgrey.tootle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-30 19:17+0300\n" "PO-Revision-Date: 2018-10-30 22:20+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/com.github.bleakgrey.tootle.desktop.in:4 #: data/com.github.bleakgrey.tootle.appdata.xml.in:7 src/MainWindow.vala:68 msgid "Tootle" msgstr "Tootle" #: data/com.github.bleakgrey.tootle.desktop.in:5 #: data/com.github.bleakgrey.tootle.desktop.in:6 msgid "Mastodon Client" msgstr "Mastodon-Client" #: data/com.github.bleakgrey.tootle.desktop.in:8 msgid "com.github.bleakgrey.tootle" msgstr "com.github.bleakgrey.tootle" #: data/com.github.bleakgrey.tootle.desktop.in:11 msgid "toot;mastodon;social;network;post;" msgstr "toot;mastodon;social;network;post;" #: data/com.github.bleakgrey.tootle.appdata.xml.in:8 msgid "Lightning fast client for Mastodon" msgstr "Blitzschneller Client für Mastodon" #: data/com.github.bleakgrey.tootle.appdata.xml.in:11 msgid "" "Tootle is a client for the world’s largest free, open-source, decentralized " "microblogging network with real-time notifications and multiple accounts " "support." msgstr "" "Tootle ist ein Client für das weltgrößte freie, dezentrale, open-source " "Microblogging-Netzwerk mit Echtzeit-Benachrichtigungen und Multi-Account-" "Support." #: data/com.github.bleakgrey.tootle.appdata.xml.in:14 msgid "" "Mastodon is lovely crafted with power and speed in mind, resulting in a " "free, independent and popular alternative to the centralized social networks." msgstr "" "Mastodon ist eine liebevoll erstellte schnelle und kraftvolle Software, die " "frei und unabhängig ist und eine populäre Alternative zu zentralisierten " "sozialen Netzwerken ist." #: data/com.github.bleakgrey.tootle.appdata.xml.in:17 msgid "" "Anyone can run a server of Mastodon. Each server hosts individual user " "accounts, the content they produce, and the content they are subscribed. " "Every user can follow each other and share their posts regardless of their " "server." msgstr "" "Jeder kann sein eigenes Mastodon betreiben. Jeder Server hostet seine " "eigenen Nutzerkonten, den Inhalt, den sie erstellen und den Inhalt, den sie " "abonniert haben. Jeder Nutzer kann jeden anderen Nutzer folgen und ihre " "Posts sehen egal auf welchen Server sie sich befinden." #: data/com.github.bleakgrey.tootle.appdata.xml.in:26 msgid "bleak_grey" msgstr "bleak_grey" #: src/Desktop.vala:10 src/API/Account.vala:123 src/API/Account.vala:142 #: src/API/Account.vala:161 src/Dialogs/NewAccountDialog.vala:102 msgid "Error" msgstr "Fehler" #: src/Desktop.vala:46 msgid "Media downloaded" msgstr "Medien heruntergeladen" #: src/MainWindow.vala:48 msgid "Back" msgstr "Zurück" #: src/MainWindow.vala:54 src/Dialogs/PostDialog.vala:29 msgid "Toot" msgstr "Tröt" #: src/Network.vala:58 msgid "TLS Error" msgstr "TLS-Fehler" #: src/Network.vala:58 msgid "Can't ensure secure connection: " msgstr "Kann keine sichere Verbindung aufbauen: " #: src/Network.vala:66 #, c-format msgid "Error: %s" msgstr "Fehler: %s" #: src/API/NotificationType.vala:50 #, c-format msgid "%s mentioned you" msgstr "%s hat dich erwähnt" #: src/API/NotificationType.vala:52 #, c-format msgid "%s boosted your toot" msgstr "%s hat deinen Beitrag geteilt" #: src/API/NotificationType.vala:54 #, c-format msgid "%s favorited your toot" msgstr "%s hat deinen Beitrag favorisiert" #: src/API/NotificationType.vala:56 #, c-format msgid "%s now follows you" msgstr "%s folgt dir nun" #: src/API/NotificationType.vala:58 #, c-format msgid "%s wants to follow you" msgstr "%s möchte dir folgen" #: src/API/NotificationType.vala:60 #, c-format msgid "%s posted a toot" msgstr "%s hat einen Beitrag gepostet" #: src/API/Status.vala:174 msgid "Boosted!" msgstr "Geteilt!" #: src/API/Status.vala:176 msgid "Removed boost" msgstr "Boost entfernt" #: src/API/Status.vala:189 msgid "Favorited!" msgstr "Favorisiert!" #: src/API/Status.vala:191 msgid "Removed from favorites" msgstr "Von den Favoriten entfernt" #: src/API/Status.vala:204 msgid "Muted!" msgstr "Stummgeschaltet!" #: src/API/Status.vala:206 msgid "Conversation unmuted" msgstr "Konversation nicht mehr stummgeschaltet" #: src/API/Status.vala:219 msgid "Pinned!" msgstr "Angepinnt!" #: src/API/Status.vala:221 msgid "Unpinned from profile" msgstr "Vom Profil losgelöst" #: src/API/Status.vala:231 msgid "Poof!" msgstr "Poof!" #: src/API/StatusVisibility.vala:40 msgid "Post to public timelines" msgstr "An die öffentliche Zeitleiste posten" #: src/API/StatusVisibility.vala:42 msgid "Don't post to public timelines" msgstr "Nicht an die öffentliche Zeitleiste posten" #: src/API/StatusVisibility.vala:44 msgid "Post to followers only" msgstr "Nur für Follower posten" #: src/API/StatusVisibility.vala:46 msgid "Post to mentioned users only" msgstr "Nur für erwähnte Nutzer posten" #: src/Widgets/AccountsButton.vala:67 msgid "Refresh" msgstr "Aktualisieren" #: src/Widgets/AccountsButton.vala:71 msgid "Favorites" msgstr "Favoriten" #: src/Widgets/AccountsButton.vala:75 src/Views/DirectView.vala:12 msgid "Direct Messages" msgstr "Direktnachrichten" #: src/Widgets/AccountsButton.vala:79 src/Views/SearchView.vala:12 msgid "Search" msgstr "Suchen" #: src/Widgets/AccountsButton.vala:83 msgid "Watchlist" msgstr "Beobachtungsliste" #: src/Widgets/AccountsButton.vala:87 src/Dialogs/SettingsDialog.vala:18 msgid "Settings" msgstr "Einstellungen" #: src/Widgets/AccountsButton.vala:142 msgid "New Account" msgstr "Neuer Account" #: src/Widgets/AccountsButton.vala:143 msgid "Click to add" msgstr "Klicken zum Hinzufügen" #: src/Widgets/AccountWidget.vala:24 src/Widgets/AttachmentWidget.vala:130 #: src/Widgets/StatusWidget.vala:289 msgid "Open in Browser" msgstr "Im Browser öffnen" #: src/Widgets/AccountWidget.vala:26 src/Widgets/AttachmentWidget.vala:132 #: src/Widgets/StatusWidget.vala:291 msgid "Copy Link" msgstr "Link kopieren" #: src/Widgets/AttachmentBox.vala:41 msgid "Select media files to add" msgstr "Wähle Medien zum Senden aus" #: src/Widgets/AttachmentBox.vala:44 msgid "_Cancel" msgstr "_Cancel" #: src/Widgets/AttachmentBox.vala:46 msgid "_Open" msgstr "_Open" #: src/Widgets/AttachmentWidget.vala:67 #, c-format msgid "Click to open %s media" msgstr "Klicken um %s Medien zu öffnen" #: src/Widgets/AttachmentWidget.vala:84 msgid "Uploading..." msgstr "Hochladen..." #: src/Widgets/AttachmentWidget.vala:105 msgid "File read error" msgstr "Dateilesefehler" #: src/Widgets/AttachmentWidget.vala:105 #, c-format msgid "Can't read file %s: %s" msgstr "Kann Datei nicht lesen %s: %s" #: src/Widgets/AttachmentWidget.vala:124 msgid "Remove" msgstr "Entfernen" #: src/Widgets/AttachmentWidget.vala:134 msgid "Download" msgstr "Herunterladen" #: src/Widgets/NotificationWidget.vala:20 msgid "Unknown Notification" msgstr "Unbekannte Benachrichtigung" #: src/Widgets/NotificationWidget.vala:25 msgid "Dismiss" msgstr "Verwerfen" #: src/Widgets/NotificationWidget.vala:64 msgid "Accept" msgstr "Aktzeptieren" #: src/Widgets/NotificationWidget.vala:66 msgid "Reject" msgstr "Ablehnen" #: src/Widgets/StatusWidget.vala:84 msgid "Boost" msgstr "Teilen" #: src/Widgets/StatusWidget.vala:91 msgid "Favorite" msgstr "Favorisieren" #: src/Widgets/StatusWidget.vala:98 msgid "Reply" msgstr "Antworten" #: src/Widgets/StatusWidget.vala:136 #, c-format msgid "%s boosted" msgstr "%s teilte" #: src/Widgets/StatusWidget.vala:151 msgid "Toggle content" msgstr "Umschalten" #: src/Widgets/StatusWidget.vala:165 msgid "[ This post contains sensitive content ]" msgstr "[ Dieser Beitrag beinhaltet sensibles Material ]" #: src/Widgets/StatusWidget.vala:234 msgid "This post can't be boosted" msgstr "Dieser Beitrag kann nicht geteilt werden" #: src/Widgets/StatusWidget.vala:287 msgid "Unmute Conversation" msgstr "Konversation nicht mehr stummschalten" #: src/Widgets/StatusWidget.vala:287 msgid "Mute Conversation" msgstr "Konversation stummschalten" #: src/Widgets/StatusWidget.vala:293 msgid "Copy Text" msgstr "Text kopieren" #: src/Widgets/StatusWidget.vala:300 msgid "Unpin from Profile" msgstr "Vom Profil loslösen" #: src/Widgets/StatusWidget.vala:300 msgid "Pin on Profile" msgstr "An Profil anheften" #: src/Widgets/StatusWidget.vala:304 msgid "Delete" msgstr "Löschen" #: src/Widgets/StatusWidget.vala:308 src/Dialogs/PostDialog.vala:72 msgid "Redraft" msgstr "Neu verfassen" #: src/Dialogs/NewAccountDialog.vala:27 msgid "New Account" msgstr "Neues Konto" #: src/Dialogs/NewAccountDialog.vala:38 msgid "What's an instance?" msgstr "Was ist eine Instanz?" #: src/Dialogs/NewAccountDialog.vala:42 msgid "Code:" msgstr "Code:" #: src/Dialogs/NewAccountDialog.vala:46 msgid "Paste your instance authorization code here" msgstr "Füge dein Autorisierungstoken hier ein" #: src/Dialogs/NewAccountDialog.vala:49 msgid "Add Account" msgstr "Konto hinzufügen" #: src/Dialogs/NewAccountDialog.vala:60 msgid "Instance:" msgstr "Instanz:" #: src/Dialogs/NewAccountDialog.vala:102 msgid "Please paste valid instance authorization code" msgstr "Bitte füge einen validen Autorisierungscode ein" #: src/Dialogs/NewAccountDialog.vala:110 msgid "Network Error" msgstr "Netzwerkfehler" #: src/Dialogs/PostDialog.vala:45 msgid "Post Visibility" msgstr "Post-Sichtbarkeit" #: src/Dialogs/PostDialog.vala:52 msgid "Add Media" msgstr "Medien hinzufügen" #: src/Dialogs/PostDialog.vala:61 msgid "Spoiler Warning" msgstr "Inhaltswarnung" #: src/Dialogs/PostDialog.vala:68 msgid "Cancel" msgstr "Abbrechen" #: src/Dialogs/PostDialog.vala:77 msgid "Toot!" msgstr "Tröt!" #: src/Dialogs/PostDialog.vala:85 msgid "Write your warning here" msgstr "Schreibe deine Warnung hier" #: src/Dialogs/SettingsDialog.vala:37 msgid "Appearance" msgstr "Aussehen" #: src/Dialogs/SettingsDialog.vala:38 msgid "Dark theme:" msgstr "Dunkles Design:" #: src/Dialogs/SettingsDialog.vala:41 msgid "Timelines" msgstr "Zeitleisten" #: src/Dialogs/SettingsDialog.vala:42 msgid "Real-time updates:" msgstr "Echtzeit-Aktualisierungen:" #: src/Dialogs/SettingsDialog.vala:44 msgid "Update public timelines:" msgstr "Aktualisiere öffentliche Zeitleisten:" #. grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); #. grid.attach (new SettingsLabel (_("Use cache:")), 0, i); #. grid.attach (new SettingsSwitch ("cache"), 1, i++); #. grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); #. var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); #. settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); #. grid.attach (cache_size, 1, i++); #: src/Dialogs/SettingsDialog.vala:55 src/Views/NotificationsView.vala:34 msgid "Notifications" msgstr "Benachrichtigungen" #: src/Dialogs/SettingsDialog.vala:56 msgid "Display notifications:" msgstr "Benachrichtigungen anzeigen:" #: src/Dialogs/SettingsDialog.vala:58 msgid "Always receive notifications:" msgstr "Immer Benachrichtigungen empfangen:" #: src/Dialogs/SettingsDialog.vala:64 msgid "_Close" msgstr "_Close" #: src/Dialogs/WatchlistDialog.vala:20 msgid "" "You'll be notified when toots from this user appear in your Home timeline." msgstr "" "Du wirst benachrichtigt wenn Beiträge von dem Nutzer in deiner Startseite " "erscheinen." #: src/Dialogs/WatchlistDialog.vala:21 msgid "" "You'll be notified when toots with this hashtag appear in any public " "timelines." msgstr "" "Du wirst benachrichtigt wenn Beiträge mit diesem Hashtag in irgendwelchen " "öffentlichen Zeitleisten geteilt werden." #: src/Dialogs/WatchlistDialog.vala:137 msgid "Users" msgstr "Benutzer" #: src/Dialogs/WatchlistDialog.vala:138 src/Views/SearchView.vala:100 msgid "Hashtags" msgstr "Hashtags" #: src/Dialogs/WatchlistDialog.vala:148 msgid "Add" msgstr "Hinzufügen" #: src/Views/AbstractView.vala:59 msgid "Nothing to see here" msgstr "Hier gibt es nichts zu sehen" #: src/Views/AccountView.vala:79 msgid "Edit Profile" msgstr "Profil bearbeiten" #: src/Views/AccountView.vala:80 msgid "Mention" msgstr "Erwähnen" #: src/Views/AccountView.vala:81 msgid "Report" msgstr "Melden" #: src/Views/AccountView.vala:82 src/Views/AccountView.vala:167 msgid "Mute" msgstr "Stummschalten" #: src/Views/AccountView.vala:83 src/Views/AccountView.vala:166 msgid "Block" msgstr "Blockieren" #: src/Views/AccountView.vala:95 msgid "More Actions" msgstr "Weitere Aktionen" #: src/Views/AccountView.vala:115 msgid "Toots" msgstr "Beiträge" #: src/Views/AccountView.vala:116 msgid "Follows" msgstr "Folgt" #: src/Views/AccountView.vala:120 msgid "Followers" msgstr "Follower" #: src/Views/AccountView.vala:155 msgid "Unfollow" msgstr "Entfolgen" #: src/Views/AccountView.vala:159 msgid "Follow" msgstr "Folgen" #: src/Views/AccountView.vala:166 msgid "Unblock" msgstr "Entsperren" #: src/Views/AccountView.vala:167 msgid "Unmute" msgstr "Nicht mehr stummschalten" #: src/Views/AccountView.vala:228 msgid "Sent follow request" msgstr "Followanfrage gesendet" #: src/Views/AccountView.vala:230 msgid "Blocked" msgstr "Blockiert" #: src/Views/AccountView.vala:232 msgid "Follows you" msgstr "Folgt dir" #: src/Views/AccountView.vala:234 msgid "Blocking this instance" msgstr "Diese Instanz blockieren" #: src/Views/AccountView.vala:269 msgid "User not found" msgstr "Benutzer nicht gefunden" #: src/Views/FederatedView.vala:12 msgid "Federated Timeline" msgstr "Föderierte Zeitleiste" #: src/Views/HomeView.vala:12 src/Views/TimelineView.vala:36 msgid "Home" msgstr "Startseite" #: src/Views/LocalView.vala:12 msgid "Local Timeline" msgstr "Lokale Zeitleiste" #: src/Views/SearchView.vala:82 msgid "Accounts" msgstr "Konten" #: src/Views/SearchView.vala:91 msgid "Statuses" msgstr "Beiträge" #~ msgid "Conversation muted" #~ msgstr "Konversation stummgeschaltet" #, fuzzy #~ msgid "Pinned on Profile" #~ msgstr "Profil bearbeiten" #~ msgid "Toot not found" #~ msgstr "Beitrag nicht gefunden" tootle-0.2.0/po/fr_FR.po000066400000000000000000000351301336712117400150020ustar00rootroot00000000000000# French translations for com.github.bleakgrey.tootle package. # Copyright (C) 2018 THE com.github.bleakgrey.tootle'S COPYRIGHT HOLDER # This file is distributed under the same license as the com.github.bleakgrey.tootle package. # Automatically generated, 2018. # msgid "" msgstr "" "Project-Id-Version: com.github.bleakgrey.tootle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-30 19:17+0300\n" "PO-Revision-Date: 2018-06-17 10:07+0200\n" "Last-Translator: Guillaume\n" "Language-Team: none\n" "Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 1.8.7.1\n" "X-Poedit-SourceCharset: UTF-8\n" #: data/com.github.bleakgrey.tootle.desktop.in:4 #: data/com.github.bleakgrey.tootle.appdata.xml.in:7 src/MainWindow.vala:68 msgid "Tootle" msgstr "Tootle" #: data/com.github.bleakgrey.tootle.desktop.in:5 #: data/com.github.bleakgrey.tootle.desktop.in:6 msgid "Mastodon Client" msgstr "Client mastodon" #: data/com.github.bleakgrey.tootle.desktop.in:8 msgid "com.github.bleakgrey.tootle" msgstr "com.github.bleakgrey.tootle" #: data/com.github.bleakgrey.tootle.desktop.in:11 msgid "toot;mastodon;social;network;post;" msgstr "toot;mastodon;social;réseau;message;" #: data/com.github.bleakgrey.tootle.appdata.xml.in:8 msgid "Lightning fast client for Mastodon" msgstr "Client léger et rapide pour Mastodon" #: data/com.github.bleakgrey.tootle.appdata.xml.in:11 msgid "" "Tootle is a client for the world’s largest free, open-source, decentralized " "microblogging network with real-time notifications and multiple accounts " "support." msgstr "" "Tootle est un client pour le plus grand réseau mondial de microblogging " "décentralisé, libre et open-source, avec un support multicomptes et la " "gestion des notifications instantanées." #: data/com.github.bleakgrey.tootle.appdata.xml.in:14 msgid "" "Mastodon is lovely crafted with power and speed in mind, resulting in a " "free, independent and popular alternative to the centralized social networks." msgstr "" "Mastodon est conçu avec amour dans un objectif de puissance et de vitesse, " "en faisant une alternative libre, indépendante et populaire aux réseaux " "sociaux centralisés." #: data/com.github.bleakgrey.tootle.appdata.xml.in:17 msgid "" "Anyone can run a server of Mastodon. Each server hosts individual user " "accounts, the content they produce, and the content they are subscribed. " "Every user can follow each other and share their posts regardless of their " "server." msgstr "" "N'importe qui peut faire tourner un serveur Mastodon. Chaque serveur héberge " "des comptes utilisateurs individuels, le contenu qu'ils produisent et le " "contenu auquel ils sont abonnés. Chaque utilisateur peut se suivre " "mutuellement et partager ses messages indépendamment de son serveur." #: data/com.github.bleakgrey.tootle.appdata.xml.in:26 msgid "bleak_grey" msgstr "" #: src/Desktop.vala:10 src/API/Account.vala:123 src/API/Account.vala:142 #: src/API/Account.vala:161 src/Dialogs/NewAccountDialog.vala:102 msgid "Error" msgstr "Erreur" #: src/Desktop.vala:46 msgid "Media downloaded" msgstr "Médias téléchargés" #: src/MainWindow.vala:48 msgid "Back" msgstr "Retour" #: src/MainWindow.vala:54 src/Dialogs/PostDialog.vala:29 msgid "Toot" msgstr "Écrire un message" #: src/Network.vala:58 msgid "TLS Error" msgstr "Erreur TLS" #: src/Network.vala:58 msgid "Can't ensure secure connection: " msgstr "Impossible d'assurer une connexion sécurisée:" #: src/Network.vala:66 #, c-format msgid "Error: %s" msgstr "Erreur: %s" #: src/API/NotificationType.vala:50 #, c-format msgid "%s mentioned you" msgstr "%s vous a mentionné" #: src/API/NotificationType.vala:52 #, c-format msgid "%s boosted your toot" msgstr "%s a partagé votre pouet" #: src/API/NotificationType.vala:54 #, c-format msgid "%s favorited your toot" msgstr "%s a ajouté votre pouet à ses favoris" #: src/API/NotificationType.vala:56 #, c-format msgid "%s now follows you" msgstr "%s vous suit désormais" #: src/API/NotificationType.vala:58 #, c-format msgid "%s wants to follow you" msgstr "%s demande à vous suivre" #: src/API/NotificationType.vala:60 #, fuzzy, c-format msgid "%s posted a toot" msgstr "%s a publié un pouet" #: src/API/Status.vala:174 msgid "Boosted!" msgstr "Partagé!" #: src/API/Status.vala:176 msgid "Removed boost" msgstr "Partage annulé" #: src/API/Status.vala:189 msgid "Favorited!" msgstr "Ajouté aux favoris!" #: src/API/Status.vala:191 msgid "Removed from favorites" msgstr "Supprimé des favoris" #: src/API/Status.vala:204 #, fuzzy msgid "Muted!" msgstr "Masqué!" #: src/API/Status.vala:206 msgid "Conversation unmuted" msgstr "Discussion visible" #: src/API/Status.vala:219 msgid "Pinned!" msgstr "Épinglé!" #: src/API/Status.vala:221 #, fuzzy msgid "Unpinned from profile" msgstr "Désépinglé du profil" #: src/API/Status.vala:231 msgid "Poof!" msgstr "Poof!" #: src/API/StatusVisibility.vala:40 msgid "Post to public timelines" msgstr "Afficher dans le fil public" #: src/API/StatusVisibility.vala:42 msgid "Don't post to public timelines" msgstr "Ne pas afficher dans le fil public" #: src/API/StatusVisibility.vala:44 msgid "Post to followers only" msgstr "Afficher seulement pour les abonnés" #: src/API/StatusVisibility.vala:46 msgid "Post to mentioned users only" msgstr "N'envoyer qu'aux personnes mentionnées" #: src/Widgets/AccountsButton.vala:67 msgid "Refresh" msgstr "Actualiser" #: src/Widgets/AccountsButton.vala:71 msgid "Favorites" msgstr "Favoris" #: src/Widgets/AccountsButton.vala:75 src/Views/DirectView.vala:12 msgid "Direct Messages" msgstr "Messages directs" #: src/Widgets/AccountsButton.vala:79 src/Views/SearchView.vala:12 msgid "Search" msgstr "Chercher" #: src/Widgets/AccountsButton.vala:83 msgid "Watchlist" msgstr "Liste de veille" #: src/Widgets/AccountsButton.vala:87 src/Dialogs/SettingsDialog.vala:18 msgid "Settings" msgstr "Paramètres" #: src/Widgets/AccountsButton.vala:142 msgid "New Account" msgstr "Nouveau Compte" #: src/Widgets/AccountsButton.vala:143 msgid "Click to add" msgstr "Cliquer pour ajouter" #: src/Widgets/AccountWidget.vala:24 src/Widgets/AttachmentWidget.vala:130 #: src/Widgets/StatusWidget.vala:289 msgid "Open in Browser" msgstr "Ouvrir dans le navigateur" #: src/Widgets/AccountWidget.vala:26 src/Widgets/AttachmentWidget.vala:132 #: src/Widgets/StatusWidget.vala:291 msgid "Copy Link" msgstr "Copier le lien" #: src/Widgets/AttachmentBox.vala:41 msgid "Select media files to add" msgstr "Sélectionner les média à ajouter" #: src/Widgets/AttachmentBox.vala:44 msgid "_Cancel" msgstr "_Annuler" #: src/Widgets/AttachmentBox.vala:46 msgid "_Open" msgstr "_Ouvrir" #: src/Widgets/AttachmentWidget.vala:67 #, c-format msgid "Click to open %s media" msgstr "Cliquer pour ouvrir les médias %s" #: src/Widgets/AttachmentWidget.vala:84 msgid "Uploading..." msgstr "Téléchargement en cours..." #: src/Widgets/AttachmentWidget.vala:105 msgid "File read error" msgstr "Erreur de lecture du fichier" #: src/Widgets/AttachmentWidget.vala:105 #, c-format msgid "Can't read file %s: %s" msgstr "Impossible de lire le fichier %s: %s" #: src/Widgets/AttachmentWidget.vala:124 msgid "Remove" msgstr "Supprimer" #: src/Widgets/AttachmentWidget.vala:134 msgid "Download" msgstr "Télécharger" #: src/Widgets/NotificationWidget.vala:20 msgid "Unknown Notification" msgstr "Notification inconnue" #: src/Widgets/NotificationWidget.vala:25 msgid "Dismiss" msgstr "Annuler" #: src/Widgets/NotificationWidget.vala:64 msgid "Accept" msgstr "Accepter" #: src/Widgets/NotificationWidget.vala:66 msgid "Reject" msgstr "Rejeter" #: src/Widgets/StatusWidget.vala:84 msgid "Boost" msgstr "Partager" #: src/Widgets/StatusWidget.vala:91 msgid "Favorite" msgstr "Ajouter aux favoris" #: src/Widgets/StatusWidget.vala:98 msgid "Reply" msgstr "Répondre" #: src/Widgets/StatusWidget.vala:136 #, c-format msgid "%s boosted" msgstr "%s a partagé" #: src/Widgets/StatusWidget.vala:151 msgid "Toggle content" msgstr "Afficher le contenu" #: src/Widgets/StatusWidget.vala:165 msgid "[ This post contains sensitive content ]" msgstr "[ Ce message comporte un contenu sensible ]" #: src/Widgets/StatusWidget.vala:234 msgid "This post can't be boosted" msgstr "Ce message ne peut être partagé" #: src/Widgets/StatusWidget.vala:287 msgid "Unmute Conversation" msgstr "Rétablir la discussion" #: src/Widgets/StatusWidget.vala:287 msgid "Mute Conversation" msgstr "Masquer la discussion" #: src/Widgets/StatusWidget.vala:293 msgid "Copy Text" msgstr "Copier le texte" #: src/Widgets/StatusWidget.vala:300 #, fuzzy msgid "Unpin from Profile" msgstr "Désépingler du profil" #: src/Widgets/StatusWidget.vala:300 #, fuzzy msgid "Pin on Profile" msgstr "Épingler sur le profil" #: src/Widgets/StatusWidget.vala:304 msgid "Delete" msgstr "Supprimer" #: src/Widgets/StatusWidget.vala:308 src/Dialogs/PostDialog.vala:72 msgid "Redraft" msgstr "Réecrire" #: src/Dialogs/NewAccountDialog.vala:27 msgid "New Account" msgstr "Nouveau compte" #: src/Dialogs/NewAccountDialog.vala:38 msgid "What's an instance?" msgstr "Qu'est une instance?" #: src/Dialogs/NewAccountDialog.vala:42 msgid "Code:" msgstr "Code:" #: src/Dialogs/NewAccountDialog.vala:46 msgid "Paste your instance authorization code here" msgstr "Coller le code d'autorisation de votre instance ici" #: src/Dialogs/NewAccountDialog.vala:49 msgid "Add Account" msgstr "Ajouter un compte" #: src/Dialogs/NewAccountDialog.vala:60 msgid "Instance:" msgstr "Instance:" #: src/Dialogs/NewAccountDialog.vala:102 msgid "Please paste valid instance authorization code" msgstr "Veuillez coller un code d'autorisation valide" #: src/Dialogs/NewAccountDialog.vala:110 msgid "Network Error" msgstr "Erreur réseau" #: src/Dialogs/PostDialog.vala:45 msgid "Post Visibility" msgstr "Visibilité du message" #: src/Dialogs/PostDialog.vala:52 msgid "Add Media" msgstr "Ajouter un média" #: src/Dialogs/PostDialog.vala:61 msgid "Spoiler Warning" msgstr "Ajouter un avertissement" #: src/Dialogs/PostDialog.vala:68 msgid "Cancel" msgstr "Annuler" #: src/Dialogs/PostDialog.vala:77 msgid "Toot!" msgstr "Envoyer le message!" #: src/Dialogs/PostDialog.vala:85 msgid "Write your warning here" msgstr "Écrire votre avertissement ici" #: src/Dialogs/SettingsDialog.vala:37 msgid "Appearance" msgstr "Apparence" #: src/Dialogs/SettingsDialog.vala:38 msgid "Dark theme:" msgstr "Thème sombre:" #: src/Dialogs/SettingsDialog.vala:41 msgid "Timelines" msgstr "Fils" #: src/Dialogs/SettingsDialog.vala:42 msgid "Real-time updates:" msgstr "Mises à jour instantanées:" #: src/Dialogs/SettingsDialog.vala:44 msgid "Update public timelines:" msgstr "Mettre à jour le fil public:" #. grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); #. grid.attach (new SettingsLabel (_("Use cache:")), 0, i); #. grid.attach (new SettingsSwitch ("cache"), 1, i++); #. grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); #. var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); #. settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); #. grid.attach (cache_size, 1, i++); #: src/Dialogs/SettingsDialog.vala:55 src/Views/NotificationsView.vala:34 msgid "Notifications" msgstr "Notifications" #: src/Dialogs/SettingsDialog.vala:56 msgid "Display notifications:" msgstr "Afficher les notifications:" #: src/Dialogs/SettingsDialog.vala:58 msgid "Always receive notifications:" msgstr "Toujours recevoir les notifications:" #: src/Dialogs/SettingsDialog.vala:64 msgid "_Close" msgstr "_Fermer" #: src/Dialogs/WatchlistDialog.vala:20 msgid "" "You'll be notified when toots from this user appear in your Home timeline." msgstr "Vous serez averti lorsque des messages de cet utilisateur apparaîtront sur votre fil d'actualité." #: src/Dialogs/WatchlistDialog.vala:21 msgid "" "You'll be notified when toots with this hashtag appear in any public " "timelines." msgstr "Vous serez averti lorsque des toots contenant ce hashtag apparaîtront dans n'importe quel fil public." #: src/Dialogs/WatchlistDialog.vala:137 msgid "Users" msgstr "Utilisateurs" #: src/Dialogs/WatchlistDialog.vala:138 src/Views/SearchView.vala:100 msgid "Hashtags" msgstr "Hashtags" #: src/Dialogs/WatchlistDialog.vala:148 msgid "Add" msgstr "Ajouter" #: src/Views/AbstractView.vala:59 msgid "Nothing to see here" msgstr "Rien à voir par ici" #: src/Views/AccountView.vala:79 msgid "Edit Profile" msgstr "Éditer votre profil" #: src/Views/AccountView.vala:80 msgid "Mention" msgstr "Mentionner" #: src/Views/AccountView.vala:81 msgid "Report" msgstr "Signaler" #: src/Views/AccountView.vala:82 src/Views/AccountView.vala:167 msgid "Mute" msgstr "Masquer" #: src/Views/AccountView.vala:83 src/Views/AccountView.vala:166 msgid "Block" msgstr "Bloquer" #: src/Views/AccountView.vala:95 msgid "More Actions" msgstr "Plus d'actions" #: src/Views/AccountView.vala:115 msgid "Toots" msgstr "Pouets" #: src/Views/AccountView.vala:116 msgid "Follows" msgstr "Abonnements" #: src/Views/AccountView.vala:120 msgid "Followers" msgstr "Abonnés" #: src/Views/AccountView.vala:155 msgid "Unfollow" msgstr "Ne plus suivre" #: src/Views/AccountView.vala:159 msgid "Follow" msgstr "Suivre" #: src/Views/AccountView.vala:166 msgid "Unblock" msgstr "Débloquer" #: src/Views/AccountView.vala:167 msgid "Unmute" msgstr "Rétablir" #: src/Views/AccountView.vala:228 msgid "Sent follow request" msgstr "Demande de suivi envoyée" #: src/Views/AccountView.vala:230 msgid "Blocked" msgstr "Bloqué" #: src/Views/AccountView.vala:232 msgid "Follows you" msgstr "Vous suis actuellement" #: src/Views/AccountView.vala:234 msgid "Blocking this instance" msgstr "Blocage de cette instance" #: src/Views/AccountView.vala:269 msgid "User not found" msgstr "Utilisateur non trouvé" #: src/Views/FederatedView.vala:12 msgid "Federated Timeline" msgstr "Fil global" #: src/Views/HomeView.vala:12 src/Views/TimelineView.vala:36 msgid "Home" msgstr "Accueil" #: src/Views/LocalView.vala:12 msgid "Local Timeline" msgstr "Fil local" #: src/Views/SearchView.vala:82 msgid "Accounts" msgstr "Comptes" #: src/Views/SearchView.vala:91 msgid "Statuses" msgstr "Statuts" #~ msgid "Conversation muted" #~ msgstr "Discussion masquée" #, fuzzy #~ msgid "Pinned on Profile" #~ msgstr "Épinglé sur le profil" #~ msgid "Toot not found" #~ msgstr "Message non trouvé" tootle-0.2.0/po/meson.build000066400000000000000000000002641336712117400156060ustar00rootroot00000000000000#i18n.gettext(meson.project_name(), # args: ['--directory='+meson.source_root(), '--from-code=UTF-8'], # install: false, #) i18n.gettext(meson.project_name(), preset: 'glib')tootle-0.2.0/po/pl.po000066400000000000000000000347261336712117400144310ustar00rootroot00000000000000# Polish translation of Tootle. # Copyright (C) 2018 Tootle # This file is distributed under the same license as the com.github.bleakgrey.tootle package. # Marcin Mikołajczak , 2018. # msgid "" msgstr "" "Project-Id-Version: com.github.bleakgrey.tootle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-30 19:17+0300\n" "PO-Revision-Date: 2018-11-01 12:20+0100\n" "Last-Translator: Marcin Mikołajczak \n" "Language-Team: Polish\n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.1.1\n" #: data/com.github.bleakgrey.tootle.desktop.in:4 #: data/com.github.bleakgrey.tootle.appdata.xml.in:7 src/MainWindow.vala:68 msgid "Tootle" msgstr "Tootle" #: data/com.github.bleakgrey.tootle.desktop.in:5 #: data/com.github.bleakgrey.tootle.desktop.in:6 msgid "Mastodon Client" msgstr "Klient Mastodona" #: data/com.github.bleakgrey.tootle.desktop.in:8 msgid "com.github.bleakgrey.tootle" msgstr "com.github.bleakgrey.tootle" #: data/com.github.bleakgrey.tootle.desktop.in:11 msgid "toot;mastodon;social;network;post;" msgstr "toot;mastodon;social;network;post;" #: data/com.github.bleakgrey.tootle.appdata.xml.in:8 msgid "Lightning fast client for Mastodon" msgstr "Klient Mastodona szybki jak błyskawica" #: data/com.github.bleakgrey.tootle.appdata.xml.in:11 msgid "" "Tootle is a client for the world’s largest free, open-source, decentralized " "microblogging network with real-time notifications and multiple accounts " "support." msgstr "" "Tootle jest klientem największej na świecie wolnej i otwartoźródłowej, " "zdecentralizowanej sieci społecznościowej obsługującym powiadomienia w " "czasie rzeczywistym i wiele kont jednocześnie." #: data/com.github.bleakgrey.tootle.appdata.xml.in:14 msgid "" "Mastodon is lovely crafted with power and speed in mind, resulting in a " "free, independent and popular alternative to the centralized social networks." msgstr "" "Mastodon został zaprojektowany z myślą o funkcjonalności i szybkości, w " "wyniku czego powstałą wolna, niezależna i popularna alternatywa dla " "scentralizowanych sieci społecznościowych." #: data/com.github.bleakgrey.tootle.appdata.xml.in:17 msgid "" "Anyone can run a server of Mastodon. Each server hosts individual user " "accounts, the content they produce, and the content they are subscribed. " "Every user can follow each other and share their posts regardless of their " "server." msgstr "" "Każdy może uruchomić serwer Mastodona. Każdy serwer przechowuje konta innych " "użytkowników, zawartość przez nich tworzoną i wpisy obserwowanych osób. " "Każdy użytkownik może zaobserwować innych i udostępniać ich wpisy " "niezależnie od używanego przez nich serwera." #: data/com.github.bleakgrey.tootle.appdata.xml.in:26 msgid "bleak_grey" msgstr "bleak_grey" #: src/Desktop.vala:10 src/API/Account.vala:123 src/API/Account.vala:142 #: src/API/Account.vala:161 src/Dialogs/NewAccountDialog.vala:102 msgid "Error" msgstr "Błąd" #: src/Desktop.vala:46 msgid "Media downloaded" msgstr "Pobrano zawartość multimedialną" #: src/MainWindow.vala:48 msgid "Back" msgstr "Wróć" #: src/MainWindow.vala:54 src/Dialogs/PostDialog.vala:29 msgid "Toot" msgstr "Wyślij" #: src/Network.vala:58 msgid "TLS Error" msgstr "Błąd TLS" #: src/Network.vala:58 msgid "Can't ensure secure connection: " msgstr "Nie można zapewnić bezpiecznego połączenia: " #: src/Network.vala:66 #, c-format msgid "Error: %s" msgstr "Błąd: %s" #: src/API/NotificationType.vala:50 #, c-format msgid "%s mentioned you" msgstr "%s wspomniał o Tobie" #: src/API/NotificationType.vala:52 #, c-format msgid "%s boosted your toot" msgstr "%s podbił Twój wpis" #: src/API/NotificationType.vala:54 #, c-format msgid "%s favorited your toot" msgstr "%s dodał Twój wpis do ulubionych" #: src/API/NotificationType.vala:56 #, c-format msgid "%s now follows you" msgstr "%s zaczął Cię śledzić" #: src/API/NotificationType.vala:58 #, c-format msgid "%s wants to follow you" msgstr "%s chce Cię śledzić" #: src/API/NotificationType.vala:60 #, c-format msgid "%s posted a toot" msgstr "%s utworzył wpis" #: src/API/Status.vala:174 msgid "Boosted!" msgstr "Podbito!" #: src/API/Status.vala:176 msgid "Removed boost" msgstr "Cofnięto podbicie" #: src/API/Status.vala:189 msgid "Favorited!" msgstr "Dodano do ulubionych!" #: src/API/Status.vala:191 msgid "Removed from favorites" msgstr "Usunięto z ulubionych" #: src/API/Status.vala:204 msgid "Muted!" msgstr "Wyciszono!" #: src/API/Status.vala:206 msgid "Conversation unmuted" msgstr "Cofnięto wyciszenie konwersacji" #: src/API/Status.vala:219 msgid "Pinned!" msgstr "Przypięto!" #: src/API/Status.vala:221 msgid "Unpinned from profile" msgstr "Cofnięto przypięcie" #: src/API/Status.vala:231 msgid "Poof!" msgstr "" #: src/API/StatusVisibility.vala:40 msgid "Post to public timelines" msgstr "Wyświetlaj na publicznej osi czasu" #: src/API/StatusVisibility.vala:42 msgid "Don't post to public timelines" msgstr "Nie wyświetlaj na publicznej osi czasu" #: src/API/StatusVisibility.vala:44 msgid "Post to followers only" msgstr "Wyślij tylko dla śledzących" #: src/API/StatusVisibility.vala:46 msgid "Post to mentioned users only" msgstr "Wyślij tylko dla wspomnianych" #: src/Widgets/AccountsButton.vala:67 msgid "Refresh" msgstr "Odśwież" #: src/Widgets/AccountsButton.vala:71 msgid "Favorites" msgstr "Ulubione" #: src/Widgets/AccountsButton.vala:75 src/Views/DirectView.vala:12 msgid "Direct Messages" msgstr "Wiadomości bezpośrednie" #: src/Widgets/AccountsButton.vala:79 src/Views/SearchView.vala:12 msgid "Search" msgstr "Wyszukiwanie" #: src/Widgets/AccountsButton.vala:83 msgid "Watchlist" msgstr "Lista obserwowanych" #: src/Widgets/AccountsButton.vala:87 src/Dialogs/SettingsDialog.vala:18 msgid "Settings" msgstr "Ustawienia" #: src/Widgets/AccountsButton.vala:142 msgid "New Account" msgstr "Nowe konto" #: src/Widgets/AccountsButton.vala:143 msgid "Click to add" msgstr "Naciśnij aby dodać" #: src/Widgets/AccountWidget.vala:24 src/Widgets/AttachmentWidget.vala:130 #: src/Widgets/StatusWidget.vala:289 msgid "Open in Browser" msgstr "Otwórz w przeglądarce" #: src/Widgets/AccountWidget.vala:26 src/Widgets/AttachmentWidget.vala:132 #: src/Widgets/StatusWidget.vala:291 msgid "Copy Link" msgstr "Skopiuj odnośnik" #: src/Widgets/AttachmentBox.vala:41 msgid "Select media files to add" msgstr "Zaznacz pliki multimedialne do dodania" #: src/Widgets/AttachmentBox.vala:44 msgid "_Cancel" msgstr "_Anuluj" #: src/Widgets/AttachmentBox.vala:46 msgid "_Open" msgstr "_Otwórz" #: src/Widgets/AttachmentWidget.vala:67 #, c-format msgid "Click to open %s media" msgstr "Naciśnij aby otworzyć %s multimediów" #: src/Widgets/AttachmentWidget.vala:84 msgid "Uploading..." msgstr "Wysyłanie…" #: src/Widgets/AttachmentWidget.vala:105 msgid "File read error" msgstr "Błąd odczytywania plików" #: src/Widgets/AttachmentWidget.vala:105 #, c-format msgid "Can't read file %s: %s" msgstr "Nie można odczytać pliku %s: %s" #: src/Widgets/AttachmentWidget.vala:124 msgid "Remove" msgstr "Usuń" #: src/Widgets/AttachmentWidget.vala:134 msgid "Download" msgstr "Pobierz" #: src/Widgets/NotificationWidget.vala:20 msgid "Unknown Notification" msgstr "Nieznane powiadomienie" #: src/Widgets/NotificationWidget.vala:25 msgid "Dismiss" msgstr "Pomiń" #: src/Widgets/NotificationWidget.vala:64 msgid "Accept" msgstr "Zaakceptuj" #: src/Widgets/NotificationWidget.vala:66 msgid "Reject" msgstr "Odrzuć" #: src/Widgets/StatusWidget.vala:84 msgid "Boost" msgstr "Podbij" #: src/Widgets/StatusWidget.vala:91 msgid "Favorite" msgstr "Dodaj do ulubionych" #: src/Widgets/StatusWidget.vala:98 msgid "Reply" msgstr "Odpowiedz" #: src/Widgets/StatusWidget.vala:136 #, c-format msgid "%s boosted" msgstr "%s podbił" #: src/Widgets/StatusWidget.vala:151 msgid "Toggle content" msgstr "Przełącz zawartość" #: src/Widgets/StatusWidget.vala:165 msgid "[ This post contains sensitive content ]" msgstr "[ Ten wpis zawiera zawartość wrażliwą ]" #: src/Widgets/StatusWidget.vala:234 msgid "This post can't be boosted" msgstr "Ten wpis nie może zostać podbity" #: src/Widgets/StatusWidget.vala:287 msgid "Unmute Conversation" msgstr "Cofnij wyciszenie konwersacji" #: src/Widgets/StatusWidget.vala:287 msgid "Mute Conversation" msgstr "Wycisz konwersację" #: src/Widgets/StatusWidget.vala:293 msgid "Copy Text" msgstr "Skopiuj tekst" #: src/Widgets/StatusWidget.vala:300 msgid "Unpin from Profile" msgstr "Cofnij przypięcie" #: src/Widgets/StatusWidget.vala:300 msgid "Pin on Profile" msgstr "Przypnij do profilu" #: src/Widgets/StatusWidget.vala:304 msgid "Delete" msgstr "Usuń" #: src/Widgets/StatusWidget.vala:308 src/Dialogs/PostDialog.vala:72 msgid "Redraft" msgstr "Przeredaguj" #: src/Dialogs/NewAccountDialog.vala:27 msgid "New Account" msgstr "Nowe konto" #: src/Dialogs/NewAccountDialog.vala:38 msgid "What's an instance?" msgstr "Czym jest instancja?" #: src/Dialogs/NewAccountDialog.vala:42 msgid "Code:" msgstr "Kod:" #: src/Dialogs/NewAccountDialog.vala:46 msgid "Paste your instance authorization code here" msgstr "Wklej kod autoryzacji swojej instancji tutaj" #: src/Dialogs/NewAccountDialog.vala:49 msgid "Add Account" msgstr "Dodaj konto" #: src/Dialogs/NewAccountDialog.vala:60 msgid "Instance:" msgstr "Instancja:" #: src/Dialogs/NewAccountDialog.vala:102 msgid "Please paste valid instance authorization code" msgstr "Wklej prawidłowy kod autoryzacji tutaj" #: src/Dialogs/NewAccountDialog.vala:110 msgid "Network Error" msgstr "Błąd sieci" #: src/Dialogs/PostDialog.vala:45 msgid "Post Visibility" msgstr "Widoczność wpisu" #: src/Dialogs/PostDialog.vala:52 msgid "Add Media" msgstr "Dodaj zawartość multimedialną" #: src/Dialogs/PostDialog.vala:61 msgid "Spoiler Warning" msgstr "Ostrzeżenie o zawartości" #: src/Dialogs/PostDialog.vala:68 msgid "Cancel" msgstr "Anuluj" #: src/Dialogs/PostDialog.vala:77 msgid "Toot!" msgstr "Wyślij" #: src/Dialogs/PostDialog.vala:85 msgid "Write your warning here" msgstr "Wprowadź zawartość ostrzeżenia tutaj" #: src/Dialogs/SettingsDialog.vala:37 msgid "Appearance" msgstr "Wygląd" #: src/Dialogs/SettingsDialog.vala:38 msgid "Dark theme:" msgstr "Ciemny motyw:" #: src/Dialogs/SettingsDialog.vala:41 msgid "Timelines" msgstr "Osie czasu" #: src/Dialogs/SettingsDialog.vala:42 msgid "Real-time updates:" msgstr "Aktualizacje w czasie rzeczywistym:" #: src/Dialogs/SettingsDialog.vala:44 msgid "Update public timelines:" msgstr "Aktualizuj publiczne osie czasu:" #. grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); #. grid.attach (new SettingsLabel (_("Use cache:")), 0, i); #. grid.attach (new SettingsSwitch ("cache"), 1, i++); #. grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); #. var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); #. settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); #. grid.attach (cache_size, 1, i++); #: src/Dialogs/SettingsDialog.vala:55 src/Views/NotificationsView.vala:34 msgid "Notifications" msgstr "Powiadomienia" #: src/Dialogs/SettingsDialog.vala:56 msgid "Display notifications:" msgstr "Wyświetlaj powiadomienia:" #: src/Dialogs/SettingsDialog.vala:58 msgid "Always receive notifications:" msgstr "Zawsze otrzymuj powiadomienia:" #: src/Dialogs/SettingsDialog.vala:64 msgid "_Close" msgstr "_Zamknij" #: src/Dialogs/WatchlistDialog.vala:20 msgid "" "You'll be notified when toots from this user appear in your Home timeline." msgstr "" "Otrzymasz powiadomienie, kiedy wpisy tego użytkownika pojawią się na Twojej " "osi czasu." #: src/Dialogs/WatchlistDialog.vala:21 msgid "" "You'll be notified when toots with this hashtag appear in any public " "timelines." msgstr "" "Otrzymasz powiadomienie, kiedy wpisy z tym hashtagiem pojawią się na " "publicznej osi czasu." #: src/Dialogs/WatchlistDialog.vala:137 msgid "Users" msgstr "Użytkownicy" #: src/Dialogs/WatchlistDialog.vala:138 src/Views/SearchView.vala:100 msgid "Hashtags" msgstr "Hashtagi" #: src/Dialogs/WatchlistDialog.vala:148 msgid "Add" msgstr "Dodaj" #: src/Views/AbstractView.vala:59 msgid "Nothing to see here" msgstr "Nie ma nic do wyświetlenia" #: src/Views/AccountView.vala:79 msgid "Edit Profile" msgstr "Edytuj profil" #: src/Views/AccountView.vala:80 msgid "Mention" msgstr "Wspomnij" #: src/Views/AccountView.vala:81 msgid "Report" msgstr "Zgłoś" #: src/Views/AccountView.vala:82 src/Views/AccountView.vala:167 msgid "Mute" msgstr "Wycisz" #: src/Views/AccountView.vala:83 src/Views/AccountView.vala:166 msgid "Block" msgstr "Zablokuj" #: src/Views/AccountView.vala:95 msgid "More Actions" msgstr "Więcej działań" #: src/Views/AccountView.vala:115 msgid "Toots" msgstr "Wpisy" #: src/Views/AccountView.vala:116 msgid "Follows" msgstr "Śledzeni" #: src/Views/AccountView.vala:120 msgid "Followers" msgstr "Śledzący" #: src/Views/AccountView.vala:155 msgid "Unfollow" msgstr "Przestań śledzić" #: src/Views/AccountView.vala:159 msgid "Follow" msgstr "Śledź" #: src/Views/AccountView.vala:166 msgid "Unblock" msgstr "Odblokuj" #: src/Views/AccountView.vala:167 msgid "Unmute" msgstr "Cofnij wyciszenie" #: src/Views/AccountView.vala:228 msgid "Sent follow request" msgstr "Wysłano prośbę o możliwość śledzenia" #: src/Views/AccountView.vala:230 msgid "Blocked" msgstr "Zablokowano" #: src/Views/AccountView.vala:232 msgid "Follows you" msgstr "Aledzi Cię" #: src/Views/AccountView.vala:234 msgid "Blocking this instance" msgstr "Blokujesz tę instancję" #: src/Views/AccountView.vala:269 msgid "User not found" msgstr "Nie znaleziono użytkownika" #: src/Views/FederatedView.vala:12 msgid "Federated Timeline" msgstr "Oś czasu federacji" #: src/Views/HomeView.vala:12 src/Views/TimelineView.vala:36 msgid "Home" msgstr "Strona główna" #: src/Views/LocalView.vala:12 msgid "Local Timeline" msgstr "Lokalna oś czasu" #: src/Views/SearchView.vala:82 msgid "Accounts" msgstr "Kinda" #: src/Views/SearchView.vala:91 msgid "Statuses" msgstr "Wpisy" #~ msgid "Conversation muted" #~ msgstr "Wyciszono konwersację" #, fuzzy #~ msgid "Pinned on Profile" #~ msgstr "Edytuj profil" #~ msgid "Toot not found" #~ msgstr "Nie znaleziono wpisu" tootle-0.2.0/po/ru.po000066400000000000000000000407111336712117400144330ustar00rootroot00000000000000# Russian translations for com.github.bleakgrey.tootle package. # Copyright (C) 2018 THE com.github.bleakgrey.tootle'S COPYRIGHT HOLDER # This file is distributed under the same license as the com.github.bleakgrey.tootle package. # Automatically generated, 2018. # msgid "" msgstr "" "Project-Id-Version: com.github.bleakgrey.tootle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-30 19:17+0300\n" "PO-Revision-Date: 2018-05-10 00:35+0300\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: data/com.github.bleakgrey.tootle.desktop.in:4 #: data/com.github.bleakgrey.tootle.appdata.xml.in:7 src/MainWindow.vala:68 msgid "Tootle" msgstr "" #: data/com.github.bleakgrey.tootle.desktop.in:5 #: data/com.github.bleakgrey.tootle.desktop.in:6 msgid "Mastodon Client" msgstr "Клиент для Мастодонта" #: data/com.github.bleakgrey.tootle.desktop.in:8 msgid "com.github.bleakgrey.tootle" msgstr "" #: data/com.github.bleakgrey.tootle.desktop.in:11 msgid "toot;mastodon;social;network;post;" msgstr "пост;mastodon;мастодонт;социальные;сеть;статус;" #: data/com.github.bleakgrey.tootle.appdata.xml.in:8 msgid "Lightning fast client for Mastodon" msgstr "Молниеносный клиент для Мастодонта" #: data/com.github.bleakgrey.tootle.appdata.xml.in:11 msgid "" "Tootle is a client for the world’s largest free, open-source, decentralized " "microblogging network with real-time notifications and multiple accounts " "support." msgstr "" "Tootle - клиент для крупнейшей в мире свободной, децентрализованной сети " "микроблогинга с открытым исходным кодом. Он поддерживает уведомления в " "реальном времени и несколько рабочих аккаунтов." #: data/com.github.bleakgrey.tootle.appdata.xml.in:14 msgid "" "Mastodon is lovely crafted with power and speed in mind, resulting in a " "free, independent and popular alternative to the centralized social networks." msgstr "" "Мастодонт был создан с учётом множества возможностей и скорости, что привело " "к созданию свободной альтернативы популярным централизованным социальным " "сетям." #: data/com.github.bleakgrey.tootle.appdata.xml.in:17 msgid "" "Anyone can run a server of Mastodon. Each server hosts individual user " "accounts, the content they produce, and the content they are subscribed. " "Every user can follow each other and share their posts regardless of their " "server." msgstr "" "Каждый может запустить свою копию Мастодонта. Сервер хранит аккаунты " "пользователей, контент, который они создают, и контент, на который они " "подписаны. Пользователи могут подписываться друг на друга и делиться " "статусами вне зависимости от того, на каком сервере они расположены." #: data/com.github.bleakgrey.tootle.appdata.xml.in:26 msgid "bleak_grey" msgstr "" #: src/Desktop.vala:10 src/API/Account.vala:123 src/API/Account.vala:142 #: src/API/Account.vala:161 src/Dialogs/NewAccountDialog.vala:102 msgid "Error" msgstr "Ошибка" #: src/Desktop.vala:46 msgid "Media downloaded" msgstr "Медиаконтент загружен" #: src/MainWindow.vala:48 msgid "Back" msgstr "Назад" #: src/MainWindow.vala:54 src/Dialogs/PostDialog.vala:29 msgid "Toot" msgstr "Статус" #: src/Network.vala:58 msgid "TLS Error" msgstr "Ошибка TLS" #: src/Network.vala:58 msgid "Can't ensure secure connection: " msgstr "Не удалось установить безопасное соединение:" #: src/Network.vala:66 #, c-format msgid "Error: %s" msgstr "Ошибка: %s" #: src/API/NotificationType.vala:50 #, c-format msgid "%s mentioned you" msgstr "%s упомянул вас" #: src/API/NotificationType.vala:52 #, c-format msgid "%s boosted your toot" msgstr "%s продвинул ваш статус" #: src/API/NotificationType.vala:54 #, c-format msgid "%s favorited your toot" msgstr "%s понравился ваш статус" #: src/API/NotificationType.vala:56 #, c-format msgid "%s now follows you" msgstr "%s подписался на вас" #: src/API/NotificationType.vala:58 #, c-format msgid "%s wants to follow you" msgstr "%s хочет на вас подписаться" #: src/API/NotificationType.vala:60 #, c-format msgid "%s posted a toot" msgstr "%s опубликовал статус" #: src/API/Status.vala:174 msgid "Boosted!" msgstr "Продвинуто!" #: src/API/Status.vala:176 msgid "Removed boost" msgstr "Продвижение отменено" #: src/API/Status.vala:189 msgid "Favorited!" msgstr "Добавлено в понравившиеся!" #: src/API/Status.vala:191 msgid "Removed from favorites" msgstr "Удалено из понравившихся" #: src/API/Status.vala:204 msgid "Muted!" msgstr "Заглушено!" #: src/API/Status.vala:206 msgid "Conversation unmuted" msgstr "Переписка включена" #: src/API/Status.vala:219 msgid "Pinned!" msgstr "Закреплено!" #: src/API/Status.vala:221 msgid "Unpinned from profile" msgstr "Откреплено от профиля" #: src/API/Status.vala:231 msgid "Poof!" msgstr "Вжух!" #: src/API/StatusVisibility.vala:40 msgid "Post to public timelines" msgstr "Видно в публичных лентах" #: src/API/StatusVisibility.vala:42 msgid "Don't post to public timelines" msgstr "Не видно в публичных лентах" #: src/API/StatusVisibility.vala:44 msgid "Post to followers only" msgstr "Только для подписчиков" #: src/API/StatusVisibility.vala:46 msgid "Post to mentioned users only" msgstr "Только для упомянутых" #: src/Widgets/AccountsButton.vala:67 msgid "Refresh" msgstr "Обновить" #: src/Widgets/AccountsButton.vala:71 msgid "Favorites" msgstr "Понравившиеся" #: src/Widgets/AccountsButton.vala:75 src/Views/DirectView.vala:12 msgid "Direct Messages" msgstr "Личные Сообщения" #: src/Widgets/AccountsButton.vala:79 src/Views/SearchView.vala:12 msgid "Search" msgstr "Поиск" #: src/Widgets/AccountsButton.vala:83 msgid "Watchlist" msgstr "Список Наблюдения" #: src/Widgets/AccountsButton.vala:87 src/Dialogs/SettingsDialog.vala:18 msgid "Settings" msgstr "Настройки" #: src/Widgets/AccountsButton.vala:142 msgid "New Account" msgstr "Новый аккаунт" #: src/Widgets/AccountsButton.vala:143 msgid "Click to add" msgstr "Нажмите, чтобы добавить" #: src/Widgets/AccountWidget.vala:24 src/Widgets/AttachmentWidget.vala:130 #: src/Widgets/StatusWidget.vala:289 msgid "Open in Browser" msgstr "Открыть в Браузере" #: src/Widgets/AccountWidget.vala:26 src/Widgets/AttachmentWidget.vala:132 #: src/Widgets/StatusWidget.vala:291 msgid "Copy Link" msgstr "Скопировать Ссылку" #: src/Widgets/AttachmentBox.vala:41 msgid "Select media files to add" msgstr "Выберите файлы для добавления" #: src/Widgets/AttachmentBox.vala:44 msgid "_Cancel" msgstr "_Отмена" #: src/Widgets/AttachmentBox.vala:46 msgid "_Open" msgstr "_Выбрать" #: src/Widgets/AttachmentWidget.vala:67 #, c-format msgid "Click to open %s media" msgstr "Нажмите, чтобы открыть %s" #: src/Widgets/AttachmentWidget.vala:84 msgid "Uploading..." msgstr "Загрузка..." #: src/Widgets/AttachmentWidget.vala:105 msgid "File read error" msgstr "Ошибка чтения файла" #: src/Widgets/AttachmentWidget.vala:105 #, c-format msgid "Can't read file %s: %s" msgstr "Не удалось прочитать файл %s: %s" #: src/Widgets/AttachmentWidget.vala:124 msgid "Remove" msgstr "Удалить" #: src/Widgets/AttachmentWidget.vala:134 msgid "Download" msgstr "Скачать" #: src/Widgets/NotificationWidget.vala:20 msgid "Unknown Notification" msgstr "Неизвестное уведомление" #: src/Widgets/NotificationWidget.vala:25 msgid "Dismiss" msgstr "Скрыть" #: src/Widgets/NotificationWidget.vala:64 msgid "Accept" msgstr "Принять" #: src/Widgets/NotificationWidget.vala:66 msgid "Reject" msgstr "Отклонить" #: src/Widgets/StatusWidget.vala:84 msgid "Boost" msgstr "Продвинуть" #: src/Widgets/StatusWidget.vala:91 msgid "Favorite" msgstr "Нравится" #: src/Widgets/StatusWidget.vala:98 msgid "Reply" msgstr "Ответить" #: src/Widgets/StatusWidget.vala:136 #, c-format msgid "%s boosted" msgstr "%s продвинул" #: src/Widgets/StatusWidget.vala:151 msgid "Toggle content" msgstr "Развернуть" #: src/Widgets/StatusWidget.vala:165 msgid "[ This post contains sensitive content ]" msgstr "[ Данный статус содержит чувствительный контент ]" #: src/Widgets/StatusWidget.vala:234 msgid "This post can't be boosted" msgstr "Этот статус нельзя продвинуть" #: src/Widgets/StatusWidget.vala:287 msgid "Unmute Conversation" msgstr "Включить переписку" #: src/Widgets/StatusWidget.vala:287 msgid "Mute Conversation" msgstr "Заглушить Переписку" #: src/Widgets/StatusWidget.vala:293 msgid "Copy Text" msgstr "Скопировать Текст" #: src/Widgets/StatusWidget.vala:300 msgid "Unpin from Profile" msgstr "Открепить от Профиля" #: src/Widgets/StatusWidget.vala:300 msgid "Pin on Profile" msgstr "Закрепить на Профиле" #: src/Widgets/StatusWidget.vala:304 msgid "Delete" msgstr "Удалить" #: src/Widgets/StatusWidget.vala:308 src/Dialogs/PostDialog.vala:72 msgid "Redraft" msgstr "Исправить" #: src/Dialogs/NewAccountDialog.vala:27 msgid "New Account" msgstr "Новый аккаунт" #: src/Dialogs/NewAccountDialog.vala:38 msgid "What's an instance?" msgstr "Что такое узел?" #: src/Dialogs/NewAccountDialog.vala:42 msgid "Code:" msgstr "Код:" #: src/Dialogs/NewAccountDialog.vala:46 msgid "Paste your instance authorization code here" msgstr "Вставьте свой код авторизации здесь" #: src/Dialogs/NewAccountDialog.vala:49 msgid "Add Account" msgstr "Добавить Аккаунт" #: src/Dialogs/NewAccountDialog.vala:60 msgid "Instance:" msgstr "Узел:" #: src/Dialogs/NewAccountDialog.vala:102 msgid "Please paste valid instance authorization code" msgstr "Пожалуйста, вставьте корректный код авторизации" #: src/Dialogs/NewAccountDialog.vala:110 msgid "Network Error" msgstr "Сетевая Ошибка" #: src/Dialogs/PostDialog.vala:45 msgid "Post Visibility" msgstr "Видимость Статуса" #: src/Dialogs/PostDialog.vala:52 msgid "Add Media" msgstr "Добавить Медиаконтент" #: src/Dialogs/PostDialog.vala:61 msgid "Spoiler Warning" msgstr "Спойлер" #: src/Dialogs/PostDialog.vala:68 msgid "Cancel" msgstr "Отмена" #: src/Dialogs/PostDialog.vala:77 msgid "Toot!" msgstr "Отправить!" #: src/Dialogs/PostDialog.vala:85 msgid "Write your warning here" msgstr "Напишите здесь предупреждение" #: src/Dialogs/SettingsDialog.vala:37 msgid "Appearance" msgstr "Внешний вид" #: src/Dialogs/SettingsDialog.vala:38 msgid "Dark theme:" msgstr "Тёмная тема:" #: src/Dialogs/SettingsDialog.vala:41 msgid "Timelines" msgstr "Ленты" #: src/Dialogs/SettingsDialog.vala:42 msgid "Real-time updates:" msgstr "Обновления в реальном времени:" #: src/Dialogs/SettingsDialog.vala:44 msgid "Update public timelines:" msgstr "Обновлять публичные ленты:" #. grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); #. grid.attach (new SettingsLabel (_("Use cache:")), 0, i); #. grid.attach (new SettingsSwitch ("cache"), 1, i++); #. grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); #. var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); #. settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); #. grid.attach (cache_size, 1, i++); #: src/Dialogs/SettingsDialog.vala:55 src/Views/NotificationsView.vala:34 msgid "Notifications" msgstr "Уведомления" #: src/Dialogs/SettingsDialog.vala:56 msgid "Display notifications:" msgstr "Отображать уведомления:" #: src/Dialogs/SettingsDialog.vala:58 msgid "Always receive notifications:" msgstr "Всегда получать уведомления:" #: src/Dialogs/SettingsDialog.vala:64 msgid "_Close" msgstr "_Закрыть" #: src/Dialogs/WatchlistDialog.vala:20 msgid "" "You'll be notified when toots from this user appear in your Home timeline." msgstr "" "Вы получите уведомление, когда статусы от этого пользователя появятся в " "вашей Главной ленте." #: src/Dialogs/WatchlistDialog.vala:21 msgid "" "You'll be notified when toots with this hashtag appear in any public " "timelines." msgstr "" "Вы получите уведомление, когда статусы с данным хэштегом появятся в любой " "публичной ленте." #: src/Dialogs/WatchlistDialog.vala:137 msgid "Users" msgstr "Пользователи" #: src/Dialogs/WatchlistDialog.vala:138 src/Views/SearchView.vala:100 msgid "Hashtags" msgstr "Хэштеги" #: src/Dialogs/WatchlistDialog.vala:148 msgid "Add" msgstr "Добавить" #: src/Views/AbstractView.vala:59 msgid "Nothing to see here" msgstr "Тут ничего нет" #: src/Views/AccountView.vala:79 msgid "Edit Profile" msgstr "Редактировать Профиль" #: src/Views/AccountView.vala:80 msgid "Mention" msgstr "Упомянуть" #: src/Views/AccountView.vala:81 msgid "Report" msgstr "Пожаловаться" #: src/Views/AccountView.vala:82 src/Views/AccountView.vala:167 msgid "Mute" msgstr "Заглушить" #: src/Views/AccountView.vala:83 src/Views/AccountView.vala:166 msgid "Block" msgstr "Заблокировать" #: src/Views/AccountView.vala:95 msgid "More Actions" msgstr "Больше Действий" #: src/Views/AccountView.vala:115 msgid "Toots" msgstr "Статусов" #: src/Views/AccountView.vala:116 msgid "Follows" msgstr "Подписок" #: src/Views/AccountView.vala:120 msgid "Followers" msgstr "Подписчиков" #: src/Views/AccountView.vala:155 msgid "Unfollow" msgstr "Отписаться" #: src/Views/AccountView.vala:159 msgid "Follow" msgstr "Подписаться" #: src/Views/AccountView.vala:166 msgid "Unblock" msgstr "Разблокировать" #: src/Views/AccountView.vala:167 msgid "Unmute" msgstr "Включить" #: src/Views/AccountView.vala:228 msgid "Sent follow request" msgstr "Отправлен запрос на подписку" #: src/Views/AccountView.vala:230 msgid "Blocked" msgstr "Заблокирован" #: src/Views/AccountView.vala:232 msgid "Follows you" msgstr "Подписан на вас" #: src/Views/AccountView.vala:234 msgid "Blocking this instance" msgstr "Данный узел заблокирован" #: src/Views/AccountView.vala:269 msgid "User not found" msgstr "Пользователь не найден" #: src/Views/FederatedView.vala:12 msgid "Federated Timeline" msgstr "Глобальная Лента" #: src/Views/HomeView.vala:12 src/Views/TimelineView.vala:36 msgid "Home" msgstr "Главная" #: src/Views/LocalView.vala:12 msgid "Local Timeline" msgstr "Локальная Лента" #: src/Views/SearchView.vala:82 msgid "Accounts" msgstr "Аккаунты" #: src/Views/SearchView.vala:91 msgid "Statuses" msgstr "Статусы" tootle-0.2.0/po/zh_CN.po000066400000000000000000000325071336712117400150120ustar00rootroot00000000000000# zh_CN translation for tootle # Copyright (C) 2018 gloomy-ghost # This file is distributed under the GPL 3.0 # msgid "" msgstr "" "Project-Id-Version: com.github.bleakgrey.tootle\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-30 19:17+0300\n" "PO-Revision-Date: 2018-10-31 14:47+1300\n" "Last-Translator: \n" "Language-Team: \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/com.github.bleakgrey.tootle.desktop.in:4 #: data/com.github.bleakgrey.tootle.appdata.xml.in:7 src/MainWindow.vala:68 msgid "Tootle" msgstr "Tootle" #: data/com.github.bleakgrey.tootle.desktop.in:5 #: data/com.github.bleakgrey.tootle.desktop.in:6 msgid "Mastodon Client" msgstr "Mastodon 客户端" #: data/com.github.bleakgrey.tootle.desktop.in:8 msgid "com.github.bleakgrey.tootle" msgstr "com.github.bleakgrey.tootle" #: data/com.github.bleakgrey.tootle.desktop.in:11 msgid "toot;mastodon;social;network;post;" msgstr "toot;mastodon;社交;网络;发嘟;" #: data/com.github.bleakgrey.tootle.appdata.xml.in:8 msgid "Lightning fast client for Mastodon" msgstr "轻量快速的 Mastodon 客户端" #: data/com.github.bleakgrey.tootle.appdata.xml.in:11 msgid "" "Tootle is a client for the world’s largest free, open-source, decentralized " "microblogging network with real-time notifications and multiple accounts " "support." msgstr "" "Tootle 是一个社交应用,基于世界上最大的自由、开源、去中心化社交网络,支持实时" "通知和多帐户登录。" #: data/com.github.bleakgrey.tootle.appdata.xml.in:14 msgid "" "Mastodon is lovely crafted with power and speed in mind, resulting in a " "free, independent and popular alternative to the centralized social networks." msgstr "" "Mastodon 以人为本,搭配与生俱来的极致性能,给你一个自由而流行的去中心化社交网" "络。" #: data/com.github.bleakgrey.tootle.appdata.xml.in:17 msgid "" "Anyone can run a server of Mastodon. Each server hosts individual user " "accounts, the content they produce, and the content they are subscribed. " "Every user can follow each other and share their posts regardless of their " "server." msgstr "" "任何人都可以运营 Mastodon 的节点,各自负责节点上的用户数据。用户可以互相关" "注、分享,而这一切都可以跨节点运作。" #: data/com.github.bleakgrey.tootle.appdata.xml.in:26 msgid "bleak_grey" msgstr "bleak_grey" #: src/Desktop.vala:10 src/API/Account.vala:123 src/API/Account.vala:142 #: src/API/Account.vala:161 src/Dialogs/NewAccountDialog.vala:102 msgid "Error" msgstr "错误" #: src/Desktop.vala:46 msgid "Media downloaded" msgstr "媒体已下载" #: src/MainWindow.vala:48 msgid "Back" msgstr "返回" #: src/MainWindow.vala:54 src/Dialogs/PostDialog.vala:29 msgid "Toot" msgstr "发嘟" #: src/Network.vala:58 msgid "TLS Error" msgstr "TLS 错误" #: src/Network.vala:58 msgid "Can't ensure secure connection: " msgstr "无法建立安全连接: " #: src/Network.vala:66 #, c-format msgid "Error: %s" msgstr "错误:%s" #: src/API/NotificationType.vala:50 #, c-format msgid "%s mentioned you" msgstr "%s 提及了你" #: src/API/NotificationType.vala:52 #, c-format msgid "%s boosted your toot" msgstr "%s 转了你的嘟文" #: src/API/NotificationType.vala:54 #, c-format msgid "%s favorited your toot" msgstr "%s 赞了你的嘟文" #: src/API/NotificationType.vala:56 #, c-format msgid "%s now follows you" msgstr "%s 关注了你" #: src/API/NotificationType.vala:58 #, c-format msgid "%s wants to follow you" msgstr "%s 想要关注你" #: src/API/NotificationType.vala:60 #, c-format msgid "%s posted a toot" msgstr "%s 发了一条嘟文" #: src/API/Status.vala:174 msgid "Boosted!" msgstr "转!" #: src/API/Status.vala:176 msgid "Removed boost" msgstr "转嘟已取消" #: src/API/Status.vala:189 msgid "Favorited!" msgstr "赞!" #: src/API/Status.vala:191 msgid "Removed from favorites" msgstr "赞已撤回" #: src/API/Status.vala:204 msgid "Muted!" msgstr "已隐藏!" #: src/API/Status.vala:206 msgid "Conversation unmuted" msgstr "对话已恢复" #: src/API/Status.vala:219 msgid "Pinned!" msgstr "已置顶!" #: src/API/Status.vala:221 msgid "Unpinned from profile" msgstr "取消置顶" #: src/API/Status.vala:231 msgid "Poof!" msgstr "已删除!" #: src/API/StatusVisibility.vala:40 msgid "Post to public timelines" msgstr "发送到公共时间线" #: src/API/StatusVisibility.vala:42 msgid "Don't post to public timelines" msgstr "发送到本地时间线" #: src/API/StatusVisibility.vala:44 msgid "Post to followers only" msgstr "仅限关注者" #: src/API/StatusVisibility.vala:46 msgid "Post to mentioned users only" msgstr "仅限提及的用户" #: src/Widgets/AccountsButton.vala:67 msgid "Refresh" msgstr "刷新" #: src/Widgets/AccountsButton.vala:71 msgid "Favorites" msgstr "点赞" #: src/Widgets/AccountsButton.vala:75 src/Views/DirectView.vala:12 msgid "Direct Messages" msgstr "私信" #: src/Widgets/AccountsButton.vala:79 src/Views/SearchView.vala:12 msgid "Search" msgstr "搜索" #: src/Widgets/AccountsButton.vala:83 msgid "Watchlist" msgstr "特别关注" #: src/Widgets/AccountsButton.vala:87 src/Dialogs/SettingsDialog.vala:18 msgid "Settings" msgstr "设置" #: src/Widgets/AccountsButton.vala:142 msgid "New Account" msgstr "新帐户" #: src/Widgets/AccountsButton.vala:143 msgid "Click to add" msgstr "点击添加" #: src/Widgets/AccountWidget.vala:24 src/Widgets/AttachmentWidget.vala:130 #: src/Widgets/StatusWidget.vala:289 msgid "Open in Browser" msgstr "浏览器中打开" #: src/Widgets/AccountWidget.vala:26 src/Widgets/AttachmentWidget.vala:132 #: src/Widgets/StatusWidget.vala:291 msgid "Copy Link" msgstr "复制链接" #: src/Widgets/AttachmentBox.vala:41 msgid "Select media files to add" msgstr "选择媒体文件" #: src/Widgets/AttachmentBox.vala:44 msgid "_Cancel" msgstr "_取消" #: src/Widgets/AttachmentBox.vala:46 msgid "_Open" msgstr "_打开" #: src/Widgets/AttachmentWidget.vala:67 #, c-format msgid "Click to open %s media" msgstr "点击打开 %s 媒体" #: src/Widgets/AttachmentWidget.vala:84 msgid "Uploading..." msgstr "上传中…" #: src/Widgets/AttachmentWidget.vala:105 msgid "File read error" msgstr "文件读取错误" #: src/Widgets/AttachmentWidget.vala:105 #, c-format msgid "Can't read file %s: %s" msgstr "无法读取文件 %s: %s" #: src/Widgets/AttachmentWidget.vala:124 msgid "Remove" msgstr "移除" #: src/Widgets/AttachmentWidget.vala:134 msgid "Download" msgstr "下载" #: src/Widgets/NotificationWidget.vala:20 msgid "Unknown Notification" msgstr "未知通知" #: src/Widgets/NotificationWidget.vala:25 msgid "Dismiss" msgstr "忽略" #: src/Widgets/NotificationWidget.vala:64 msgid "Accept" msgstr "接受" #: src/Widgets/NotificationWidget.vala:66 msgid "Reject" msgstr "拒绝" #: src/Widgets/StatusWidget.vala:84 msgid "Boost" msgstr "转嘟" #: src/Widgets/StatusWidget.vala:91 msgid "Favorite" msgstr "赞" #: src/Widgets/StatusWidget.vala:98 msgid "Reply" msgstr "回复" #: src/Widgets/StatusWidget.vala:136 #, c-format msgid "%s boosted" msgstr "%s 转嘟了" #: src/Widgets/StatusWidget.vala:151 msgid "Toggle content" msgstr "切换隐藏状态" #: src/Widgets/StatusWidget.vala:165 msgid "[ This post contains sensitive content ]" msgstr "[ 此嘟文有敏感内容 ]" #: src/Widgets/StatusWidget.vala:234 msgid "This post can't be boosted" msgstr "无法转发这条嘟文" #: src/Widgets/StatusWidget.vala:287 msgid "Unmute Conversation" msgstr "恢复对话" #: src/Widgets/StatusWidget.vala:287 msgid "Mute Conversation" msgstr "隐藏对话" #: src/Widgets/StatusWidget.vala:293 msgid "Copy Text" msgstr "复制文本" #: src/Widgets/StatusWidget.vala:300 msgid "Unpin from Profile" msgstr "取消置顶" #: src/Widgets/StatusWidget.vala:300 msgid "Pin on Profile" msgstr "置顶" #: src/Widgets/StatusWidget.vala:304 msgid "Delete" msgstr "删除" #: src/Widgets/StatusWidget.vala:308 src/Dialogs/PostDialog.vala:72 msgid "Redraft" msgstr "编辑" #: src/Dialogs/NewAccountDialog.vala:27 msgid "New Account" msgstr "新帐户" #: src/Dialogs/NewAccountDialog.vala:38 msgid "What's an instance?" msgstr "需要帮助?" #: src/Dialogs/NewAccountDialog.vala:42 msgid "Code:" msgstr "授权码:" #: src/Dialogs/NewAccountDialog.vala:46 msgid "Paste your instance authorization code here" msgstr "在此粘贴授权码" #: src/Dialogs/NewAccountDialog.vala:49 msgid "Add Account" msgstr "添加帐户" #: src/Dialogs/NewAccountDialog.vala:60 msgid "Instance:" msgstr "实例:" #: src/Dialogs/NewAccountDialog.vala:102 msgid "Please paste valid instance authorization code" msgstr "请确认授权码是否有效" #: src/Dialogs/NewAccountDialog.vala:110 msgid "Network Error" msgstr "网络错误" #: src/Dialogs/PostDialog.vala:45 msgid "Post Visibility" msgstr "嘟文可见范围" #: src/Dialogs/PostDialog.vala:52 msgid "Add Media" msgstr "添加媒体" #: src/Dialogs/PostDialog.vala:61 msgid "Spoiler Warning" msgstr "内容预警" #: src/Dialogs/PostDialog.vala:68 msgid "Cancel" msgstr "取消" #: src/Dialogs/PostDialog.vala:77 msgid "Toot!" msgstr "发嘟!" #: src/Dialogs/PostDialog.vala:85 msgid "Write your warning here" msgstr "输入预警提示" #: src/Dialogs/SettingsDialog.vala:37 msgid "Appearance" msgstr "外观" #: src/Dialogs/SettingsDialog.vala:38 msgid "Dark theme:" msgstr "暗色主题:" #: src/Dialogs/SettingsDialog.vala:41 msgid "Timelines" msgstr "时间线" #: src/Dialogs/SettingsDialog.vala:42 msgid "Real-time updates:" msgstr "实时更新:" #: src/Dialogs/SettingsDialog.vala:44 msgid "Update public timelines:" msgstr "更新公共时间线:" #. grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); #. grid.attach (new SettingsLabel (_("Use cache:")), 0, i); #. grid.attach (new SettingsSwitch ("cache"), 1, i++); #. grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); #. var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); #. settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); #. grid.attach (cache_size, 1, i++); #: src/Dialogs/SettingsDialog.vala:55 src/Views/NotificationsView.vala:34 msgid "Notifications" msgstr "通知" #: src/Dialogs/SettingsDialog.vala:56 msgid "Display notifications:" msgstr "显示通知:" #: src/Dialogs/SettingsDialog.vala:58 msgid "Always receive notifications:" msgstr "总是接收通知:" #: src/Dialogs/SettingsDialog.vala:64 msgid "_Close" msgstr "_关闭" #: src/Dialogs/WatchlistDialog.vala:20 msgid "" "You'll be notified when toots from this user appear in your Home timeline." msgstr "接收特别关心对象的通知。" #: src/Dialogs/WatchlistDialog.vala:21 msgid "" "You'll be notified when toots with this hashtag appear in any public " "timelines." msgstr "接收特别关注话题的通知。" #: src/Dialogs/WatchlistDialog.vala:137 msgid "Users" msgstr "用户" #: src/Dialogs/WatchlistDialog.vala:138 src/Views/SearchView.vala:100 msgid "Hashtags" msgstr "话题" #: src/Dialogs/WatchlistDialog.vala:148 msgid "Add" msgstr "添加" #: src/Views/AbstractView.vala:59 msgid "Nothing to see here" msgstr "什么也没有" #: src/Views/AccountView.vala:79 msgid "Edit Profile" msgstr "编辑个人资料" #: src/Views/AccountView.vala:80 msgid "Mention" msgstr "提及" #: src/Views/AccountView.vala:81 msgid "Report" msgstr "举报" #: src/Views/AccountView.vala:82 src/Views/AccountView.vala:167 msgid "Mute" msgstr "隐藏" #: src/Views/AccountView.vala:83 src/Views/AccountView.vala:166 msgid "Block" msgstr "屏蔽" #: src/Views/AccountView.vala:95 msgid "More Actions" msgstr "更多" #: src/Views/AccountView.vala:115 msgid "Toots" msgstr "嘟文" #: src/Views/AccountView.vala:116 msgid "Follows" msgstr "关注" #: src/Views/AccountView.vala:120 msgid "Followers" msgstr "关注者" #: src/Views/AccountView.vala:155 msgid "Unfollow" msgstr "取消关注" #: src/Views/AccountView.vala:159 msgid "Follow" msgstr "关注" #: src/Views/AccountView.vala:166 msgid "Unblock" msgstr "取消屏蔽" #: src/Views/AccountView.vala:167 msgid "Unmute" msgstr "取消隐藏" #: src/Views/AccountView.vala:228 msgid "Sent follow request" msgstr "已发送关注请求" #: src/Views/AccountView.vala:230 msgid "Blocked" msgstr "已屏蔽" #: src/Views/AccountView.vala:232 msgid "Follows you" msgstr "关注了你" #: src/Views/AccountView.vala:234 msgid "Blocking this instance" msgstr "已屏蔽此实例" #: src/Views/AccountView.vala:269 msgid "User not found" msgstr "未找到用户" #: src/Views/FederatedView.vala:12 msgid "Federated Timeline" msgstr "公共时间线" #: src/Views/HomeView.vala:12 src/Views/TimelineView.vala:36 msgid "Home" msgstr "主页" #: src/Views/LocalView.vala:12 msgid "Local Timeline" msgstr "本地时间线" #: src/Views/SearchView.vala:82 msgid "Accounts" msgstr "帐户" #: src/Views/SearchView.vala:91 msgid "Statuses" msgstr "嘟文" #~ msgid "Conversation muted" #~ msgstr "对话已隐藏" #~ msgid "Toot not found" #~ msgstr "未找到嘟文" tootle-0.2.0/src/000077500000000000000000000000001336712117400136135ustar00rootroot00000000000000tootle-0.2.0/src/API/000077500000000000000000000000001336712117400142245ustar00rootroot00000000000000tootle-0.2.0/src/API/Account.vala000066400000000000000000000137451336712117400164770ustar00rootroot00000000000000public class Tootle.Account{ public abstract signal void updated (); public int64 id; public string username; public string acct; public string display_name; public string note; public string header; public string avatar; public string url; public string created_at; public int64 followers_count; public int64 following_count; public int64 statuses_count; public Relationship? rs; public Account (int64 _id){ id = _id; } public static Account parse(Json.Object obj) { var id = int64.parse (obj.get_string_member ("id")); var account = new Account (id); account.username = obj.get_string_member ("username"); account.acct = obj.get_string_member ("acct"); account.display_name = obj.get_string_member ("display_name"); if (account.display_name == "") account.display_name = account.username; account.note = obj.get_string_member ("note"); account.avatar = obj.get_string_member ("avatar"); account.header = obj.get_string_member ("header"); account.url = obj.get_string_member ("url"); account.created_at = obj.get_string_member ("created_at"); account.followers_count = obj.get_int_member ("followers_count"); account.following_count = obj.get_int_member ("following_count"); account.statuses_count = obj.get_int_member ("statuses_count"); if (obj.has_member ("fields")) { obj.get_array_member ("fields").foreach_element ((array, i, node) => { var field_obj = node.get_object (); var field_name = field_obj.get_string_member ("name"); var field_val = field_obj.get_string_member ("value"); account.note += "\n"; account.note += field_name + ": "; account.note += field_val; }); } return account; } public Json.Node? serialize () { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("id"); builder.add_string_value (id.to_string ()); builder.set_member_name ("created_at"); builder.add_string_value (created_at); builder.set_member_name ("following_count"); builder.add_int_value (following_count); builder.set_member_name ("followers_count"); builder.add_int_value (followers_count); builder.set_member_name ("statuses_count"); builder.add_int_value (statuses_count); builder.set_member_name ("display_name"); builder.add_string_value (display_name); builder.set_member_name ("username"); builder.add_string_value (username); builder.set_member_name ("acct"); builder.add_string_value (acct); builder.set_member_name ("note"); builder.add_string_value (note); builder.set_member_name ("header"); builder.add_string_value (header); builder.set_member_name ("avatar"); builder.add_string_value (avatar); builder.set_member_name ("url"); builder.add_string_value (url); builder.end_object (); return builder.get_root (); } public bool is_self (){ return id == Tootle.accounts.current.id; } public Soup.Message get_relationship (){ var url = "%s/api/v1/accounts/relationships?id=%lld".printf (Tootle.accounts.formal.instance, id); var msg = new Soup.Message("GET", url); msg.priority = Soup.MessagePriority.HIGH; Tootle.network.queue (msg, (sess, mess) => { try{ var root = Tootle.network.parse_array (mess).get_object_element (0); rs = Relationship.parse (root); updated (); } catch (GLib.Error e) { warning ("Can't get account relationship:"); warning (e.message); } }); return msg; } public Soup.Message set_following (bool follow = true){ var action = follow ? "follow" : "unfollow"; var url = "%s/api/v1/accounts/%lld/%s".printf (Tootle.accounts.formal.instance, id, action); var msg = new Soup.Message("POST", url); msg.priority = Soup.MessagePriority.HIGH; network.queue (msg, (sess, mess) => { try{ var root = network.parse (mess); rs = Relationship.parse (root); updated (); } catch (GLib.Error e) { app.error (_("Error"), e.message); warning (e.message); } }); return msg; } public Soup.Message set_muted (bool mute = true){ var action = mute ? "mute" : "unmute"; var url = "%s/api/v1/accounts/%lld/%s".printf (accounts.formal.instance, id, action); var msg = new Soup.Message("POST", url); msg.priority = Soup.MessagePriority.HIGH; network.queue (msg, (sess, mess) => { try{ var root = network.parse (mess); rs = Relationship.parse (root); updated (); } catch (GLib.Error e) { app.error (_("Error"), e.message); warning (e.message); } }); return msg; } public Soup.Message set_blocked (bool block = true){ var action = block ? "block" : "unblock"; var url = "%s/api/v1/accounts/%lld/%s".printf (accounts.formal.instance, id, action); var msg = new Soup.Message("POST", url); msg.priority = Soup.MessagePriority.HIGH; network.queue (msg, (sess, mess) => { try{ var root = network.parse (mess); rs = Relationship.parse (root); updated (); } catch (GLib.Error e) { app.error (_("Error"), e.message); warning (e.message); } }); return msg; } } tootle-0.2.0/src/API/Attachment.vala000066400000000000000000000026661336712117400171730ustar00rootroot00000000000000public class Tootle.Attachment{ public int64 id; public string type; public string url; public string preview_url; public string? description; public Attachment(int64 _id){ id = _id; } public static Attachment parse (Json.Object obj){ var id = int64.parse (obj.get_string_member ("id")); var attachment = new Attachment (id); attachment.type = obj.get_string_member ("type"); attachment.preview_url = obj.get_string_member ("preview_url"); attachment.url = obj.get_string_member ("url"); if (obj.has_member ("description")) attachment.description = obj.get_string_member ("description"); return attachment; } public Json.Node? serialize () { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("id"); builder.add_string_value (id.to_string ()); builder.set_member_name ("type"); builder.add_string_value (type); builder.set_member_name ("url"); builder.add_string_value (url); builder.set_member_name ("preview_url"); builder.add_string_value (preview_url); if (description != null) { builder.set_member_name ("description"); builder.add_string_value (description); } builder.end_object (); return builder.get_root (); } } tootle-0.2.0/src/API/Mention.vala000066400000000000000000000024171336712117400165060ustar00rootroot00000000000000public class Tootle.Mention : GLib.Object { public int64 id; public string username; public string acct; public string url; public Mention (int64 _id){ id = _id; } public Mention.from_account (Account account){ id = account.id; username = account.username; acct = account.acct; url = account.url; } public static Mention parse (Json.Object obj){ var id = int64.parse (obj.get_string_member ("id")); var mention = new Mention (id); mention.username = obj.get_string_member ("username"); mention.acct = obj.get_string_member ("acct"); mention.url = obj.get_string_member ("url"); return mention; } public Json.Node? serialize () { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("id"); builder.add_string_value (id.to_string ()); builder.set_member_name ("username"); builder.add_string_value (username); builder.set_member_name ("acct"); builder.add_string_value (acct); builder.set_member_name ("url"); builder.add_string_value (url); builder.end_object (); return builder.get_root (); } } tootle-0.2.0/src/API/Notification.vala000066400000000000000000000060001336712117400175130ustar00rootroot00000000000000public class Tootle.Notification { public int64 id; public NotificationType type; public string created_at; public Status? status; public Account? account; public Notification (int64 _id) { id = _id; } public static Notification parse (Json.Object obj) { var id = int64.parse (obj.get_string_member ("id")); var notification = new Notification (id); notification.type = NotificationType.from_string (obj.get_string_member ("type")); notification.created_at = obj.get_string_member ("created_at"); if (obj.has_member ("status")) notification.status = Status.parse (obj.get_object_member ("status")); if (obj.has_member ("account")) notification.account = Account.parse (obj.get_object_member ("account")); return notification; } public Json.Node? serialize () { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("id"); builder.add_string_value (id.to_string ()); builder.set_member_name ("type"); builder.add_string_value (type.to_string ()); builder.set_member_name ("created_at"); builder.add_string_value (created_at); if (status != null) { builder.set_member_name ("status"); builder.add_value (status.serialize ()); } if (account != null) { builder.set_member_name ("account"); builder.add_value (account.serialize ()); } builder.end_object (); return builder.get_root (); } public static Notification parse_follow_request (Json.Object obj) { var notification = new Notification (-1); var account = Account.parse (obj); notification.type = NotificationType.FOLLOW_REQUEST; notification.account = account; return notification; } public Soup.Message? dismiss () { if (type == NotificationType.WATCHLIST) { if (accounts.formal.cached_notifications.remove (this)) accounts.save (); return null; } if (type == NotificationType.FOLLOW_REQUEST) return reject_follow_request (); var url = "%s/api/v1/notifications/dismiss?id=%lld".printf (accounts.formal.instance, id); var msg = new Soup.Message ("POST", url); network.queue (msg); return msg; } public Soup.Message accept_follow_request () { var url = "%s/api/v1/follow_requests/%lld/authorize".printf (accounts.formal.instance, account.id); var msg = new Soup.Message ("POST", url); network.queue (msg); return msg; } public Soup.Message reject_follow_request () { var url = "%s/api/v1/follow_requests/%lld/reject".printf (accounts.formal.instance, account.id); var msg = new Soup.Message ("POST", url); network.queue (msg); return msg; } } tootle-0.2.0/src/API/NotificationType.vala000066400000000000000000000052711336712117400203660ustar00rootroot00000000000000public enum Tootle.NotificationType { MENTION, REBLOG, FAVORITE, FOLLOW, FOLLOW_REQUEST, // Internal WATCHLIST; // Internal public string to_string() { switch (this) { case MENTION: return "mention"; case REBLOG: return "reblog"; case FAVORITE: return "favourite"; case FOLLOW: return "follow"; case FOLLOW_REQUEST: return "follow_request"; case WATCHLIST: return "watchlist"; default: assert_not_reached(); } } public static NotificationType from_string (string str) { switch (str) { case "mention": return MENTION; case "reblog": return REBLOG; case "favourite": return FAVORITE; case "follow": return FOLLOW; case "follow_request": return FOLLOW_REQUEST; case "watchlist": return WATCHLIST; default: assert_not_reached(); } } public string get_desc (Account? account) { switch (this) { case MENTION: return _("%s mentioned you").printf (account.url, account.display_name); case REBLOG: return _("%s boosted your toot").printf (account.url, account.display_name); case FAVORITE: return _("%s favorited your toot").printf (account.url, account.display_name); case FOLLOW: return _("%s now follows you").printf (account.url, account.display_name); case FOLLOW_REQUEST: return _("%s wants to follow you").printf (account.url, account.display_name); case WATCHLIST: return _("%s posted a toot").printf (account.url, account.display_name); default: assert_not_reached(); } } public string get_icon () { switch (this) { case MENTION: case WATCHLIST: return "user-available-symbolic"; case REBLOG: return "media-playlist-repeat-symbolic"; case FAVORITE: return "help-about-symbolic"; case FOLLOW: case FOLLOW_REQUEST: return "contact-new-symbolic"; default: assert_not_reached(); } } } tootle-0.2.0/src/API/Relationship.vala000066400000000000000000000020741336712117400175350ustar00rootroot00000000000000using GLib; public class Tootle.Relationship : Object { public int64 id; public bool following; public bool followed_by; public bool blocking; public bool muting; public bool muting_notifications; public bool requested; public bool domain_blocking; public Relationship (int64 _id) { id = _id; } public static Relationship parse (Json.Object obj) { var id = int64.parse (obj.get_string_member ("id")); var relationship = new Relationship (id); relationship.following = obj.get_boolean_member ("following"); relationship.followed_by = obj.get_boolean_member ("followed_by"); relationship.blocking = obj.get_boolean_member ("blocking"); relationship.muting = obj.get_boolean_member ("muting"); relationship.muting_notifications = obj.get_boolean_member ("muting_notifications"); relationship.requested = obj.get_boolean_member ("requested"); relationship.domain_blocking = obj.get_boolean_member ("domain_blocking"); return relationship; } } tootle-0.2.0/src/API/Status.vala000066400000000000000000000212121336712117400163520ustar00rootroot00000000000000public class Tootle.Status { public signal void updated (); public Account account; public int64 id; public string uri; public string url; public string? spoiler_text; public string content; public int64 replies_count; public int64 reblogs_count; public int64 favourites_count; public string created_at; public bool reblogged = false; public bool favorited = false; public bool sensitive = false; public bool muted = false; public bool pinned = false; public StatusVisibility visibility; public Status? reblog; public Mention[]? mentions; public Attachment[]? attachments; public Status (int64 _id) { id = _id; } public Status get_formal () { return reblog != null ? reblog : this; } public static Status parse (Json.Object obj) { var id = int64.parse (obj.get_string_member ("id")); var status = new Status (id); status.account = Account.parse (obj.get_object_member ("account")); status.uri = obj.get_string_member ("uri"); status.created_at = obj.get_string_member ("created_at"); status.replies_count = obj.get_int_member ("replies_count"); status.reblogs_count = obj.get_int_member ("reblogs_count"); status.favourites_count = obj.get_int_member ("favourites_count"); status.content = Html.simplify ( obj.get_string_member ("content")); status.sensitive = obj.get_boolean_member ("sensitive"); status.visibility = StatusVisibility.from_string (obj.get_string_member ("visibility")); if (obj.has_member ("url")) status.url = obj.get_string_member ("url"); else status.url = obj.get_string_member ("uri").replace ("/activity", ""); var spoiler = obj.get_string_member ("spoiler_text"); if (spoiler != "") status.spoiler_text = Html.simplify (spoiler); if (obj.has_member ("reblogged")) status.reblogged = obj.get_boolean_member ("reblogged"); if (obj.has_member ("favourited")) status.favorited = obj.get_boolean_member ("favourited"); if (obj.has_member ("muted")) status.muted = obj.get_boolean_member ("muted"); if (obj.has_member ("pinned")) status.pinned = obj.get_boolean_member ("pinned"); if (obj.has_member ("reblog") && obj.get_null_member("reblog") != true) status.reblog = Status.parse (obj.get_object_member ("reblog")); Mention[]? _mentions = {}; obj.get_array_member ("mentions").foreach_element ((array, i, node) => { var object = node.get_object (); if (object != null) _mentions += Mention.parse (object); }); if (_mentions.length > 0) status.mentions = _mentions; Attachment[]? _attachments = {}; obj.get_array_member ("media_attachments").foreach_element ((array, i, node) => { var object = node.get_object (); if (object != null) _attachments += Attachment.parse (object); }); if (_attachments.length > 0) status.attachments = _attachments; return status; } public Json.Node? serialize () { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("id"); builder.add_string_value (id.to_string ()); builder.set_member_name ("uri"); builder.add_string_value (uri); builder.set_member_name ("url"); builder.add_string_value (url); builder.set_member_name ("content"); builder.add_string_value (content); builder.set_member_name ("created_at"); builder.add_string_value (created_at); builder.set_member_name ("visibility"); builder.add_string_value (visibility.to_string ()); builder.set_member_name ("sensitive"); builder.add_boolean_value (sensitive); builder.set_member_name ("sensitive"); builder.add_boolean_value (sensitive); builder.set_member_name ("replies_count"); builder.add_int_value (replies_count); builder.set_member_name ("favourites_count"); builder.add_int_value (favourites_count); builder.set_member_name ("reblogs_count"); builder.add_int_value (reblogs_count); builder.set_member_name ("account"); builder.add_value (account.serialize ()); if (spoiler_text != null) { builder.set_member_name ("spoiler_text"); builder.add_string_value (spoiler_text); } if (reblog != null) { builder.set_member_name ("reblog"); builder.add_value (reblog.serialize ()); } if (attachments != null) { builder.set_member_name ("media_attachments"); builder.begin_array (); foreach (Attachment attachment in attachments) builder.add_value (attachment.serialize ()); builder.end_array (); } if (mentions != null) { builder.set_member_name ("mentions"); builder.begin_array (); foreach (Mention mention in mentions) builder.add_value (mention.serialize ()); builder.end_array (); } builder.end_object (); return builder.get_root (); } public bool is_owned (){ return get_formal ().account.id == accounts.current.id; } public string get_reply_mentions () { var result = ""; if (account.acct != accounts.current.acct) result = "@%s ".printf (account.acct); if (mentions != null) { foreach (var mention in mentions) { var equals_current = mention.acct == accounts.current.acct; var already_mentioned = mention.acct in result; if (!equals_current && ! already_mentioned) result += "@%s ".printf (mention.acct); } } return result; } public void set_reblogged (bool rebl = true) { var action = rebl ? "reblog" : "unreblog"; var msg = new Soup.Message ("POST", "%s/api/v1/statuses/%lld/%s".printf (accounts.formal.instance, id, action)); msg.priority = Soup.MessagePriority.HIGH; msg.finished.connect (() => { reblogged = rebl; updated (); if (rebl) app.toast (_("Boosted!")); else app.toast (_("Removed boost")); }); network.queue (msg); } public void set_favorited (bool fav = true) { var action = fav ? "favourite" : "unfavourite"; var msg = new Soup.Message ("POST", "%s/api/v1/statuses/%lld/%s".printf (accounts.formal.instance, id, action)); msg.priority = Soup.MessagePriority.HIGH; msg.finished.connect (() => { favorited = fav; updated (); if (fav) app.toast (_("Favorited!")); else app.toast (_("Removed from favorites")); }); network.queue (msg); } public void set_muted (bool mute = true) { var action = mute ? "mute" : "unmute"; var msg = new Soup.Message ("POST", "%s/api/v1/statuses/%lld/%s".printf (accounts.formal.instance, id, action)); msg.priority = Soup.MessagePriority.HIGH; msg.finished.connect (() => { muted = mute; updated (); if (mute) app.toast (_("Muted!")); else app.toast (_("Conversation unmuted")); }); network.queue (msg); } public void set_pinned (bool pin = true) { var action = pin ? "pin" : "unpin"; var msg = new Soup.Message ("POST", "%s/api/v1/statuses/%lld/%s".printf (accounts.formal.instance, id, action)); msg.priority = Soup.MessagePriority.HIGH; msg.finished.connect (() => { pinned = pin; updated (); if (pin) app.toast (_("Pinned!")); else app.toast (_("Unpinned from profile")); }); network.queue (msg); } public Soup.Message poof (bool show_toast = true) { var msg = new Soup.Message ("DELETE", "%s/api/v1/statuses/%lld".printf (accounts.formal.instance, id)); msg.priority = Soup.MessagePriority.HIGH; msg.finished.connect (() => { if (show_toast) app.toast (_("Poof!")); network.status_removed (id); }); network.queue (msg); return msg; } } tootle-0.2.0/src/API/StatusVisibility.vala000066400000000000000000000037501336712117400204310ustar00rootroot00000000000000public enum Tootle.StatusVisibility { PUBLIC, UNLISTED, PRIVATE, DIRECT; public string to_string () { switch (this) { case PUBLIC: return "public"; case UNLISTED: return "unlisted"; case PRIVATE: return "private"; case DIRECT: return "direct"; default: assert_not_reached(); } } public static StatusVisibility from_string (string str) { switch (str) { case "public": return StatusVisibility.PUBLIC; case "unlisted": return StatusVisibility.UNLISTED; case "private": return StatusVisibility.PRIVATE; case "direct": return StatusVisibility.DIRECT; default: assert_not_reached(); } } public string get_desc () { switch (this) { case PUBLIC: return _("Post to public timelines"); case UNLISTED: return _("Don\'t post to public timelines"); case PRIVATE: return _("Post to followers only"); case DIRECT: return _("Post to mentioned users only"); default: assert_not_reached(); } } public string get_icon () { switch (this) { case PUBLIC: return "network-workgroup-symbolic"; case UNLISTED: return "view-private-symbolic"; case PRIVATE: return "security-medium-symbolic"; case DIRECT: return "mail-send-symbolic"; default: assert_not_reached(); } } public static StatusVisibility[] get_all () { return {StatusVisibility.PUBLIC, StatusVisibility.UNLISTED, StatusVisibility.PRIVATE, StatusVisibility.DIRECT}; } } tootle-0.2.0/src/API/Tag.vala000066400000000000000000000005531336712117400156070ustar00rootroot00000000000000public class Tootle.Tag{ public string name; public string url; public Tag (string _name, string _url){ name = _name; url = _url; } public static Tag parse (Json.Object obj){ var name = obj.get_string_member ("name"); var url = obj.get_string_member ("url"); return new Tag (name, url); } } tootle-0.2.0/src/Accounts.vala000066400000000000000000000112471336712117400162440ustar00rootroot00000000000000using GLib; public class Tootle.Accounts : Object { private string dir_path; private string file_path; public signal void switched (Account? account); public signal void updated (GenericArray accounts); public GenericArray saved_accounts = new GenericArray (); public InstanceAccount? formal {get; set;} public Account? current {get; set;} public Accounts () { dir_path = "%s/%s".printf (GLib.Environment.get_user_config_dir (), app.application_id); file_path = "%s/%s".printf (dir_path, "accounts.json"); } public void switch_account (int id) { debug ("Switching to #%i", id); settings.current_account = id; formal = saved_accounts.@get (id); var msg = new Soup.Message("GET", "%s/api/v1/accounts/verify_credentials".printf (accounts.formal.instance)); network.queue (msg, (sess, mess) => { try { var root = network.parse (mess); current = Account.parse (root); switched (current); updated (saved_accounts); } catch (GLib.Error e) { warning ("Can't login into %s", formal.instance); warning (e.message); } }); } public void add (InstanceAccount account) { debug ("Adding account for %s at %s", account.username, account.instance); saved_accounts.add (account); save (); updated (saved_accounts); switch_account (saved_accounts.length - 1); account.start_notificator (); } public void remove (int i) { var account = saved_accounts.@get (i); account.close_notificator (); saved_accounts.remove_index (i); if (saved_accounts.length < 1) switched (null); else { var id = settings.current_account - 1; if (id > saved_accounts.length - 1) id = saved_accounts.length - 1; else if (id < saved_accounts.length - 1) id = 0; switch_account (id); } save (); updated (saved_accounts); if (is_empty ()) { window.destroy (); NewAccountDialog.open (); } } public bool is_empty () { return saved_accounts.length == 0; } public void init () { save (false); load (); if (saved_accounts.length < 1) NewAccountDialog.open (); else switch_account (settings.current_account); } public void save (bool overwrite = true) { try { var dir = File.new_for_path (dir_path); if (!dir.query_exists ()) dir.make_directory (); var file = File.new_for_path (file_path); if (file.query_exists () && !overwrite) return; var builder = new Json.Builder (); builder.begin_array (); saved_accounts.foreach ((acc) => { var node = acc.serialize (); builder.add_value (node); }); builder.end_array (); var generator = new Json.Generator (); generator.set_root (builder.get_root ()); var data = generator.to_data (null); if (file.query_exists ()) file.@delete (); FileOutputStream stream = file.create (FileCreateFlags.PRIVATE); stream.write (data.data); } catch (GLib.Error e){ warning (e.message); } } private void load () { try { uint8[] data; string etag; var file = File.new_for_path (file_path); file.load_contents (null, out data, out etag); var contents = (string) data; var parser = new Json.Parser (); parser.load_from_data (contents, -1); var array = parser.get_root ().get_array (); saved_accounts = new GenericArray (); array.foreach_element ((_arr, _i, node) => { var obj = node.get_object (); var account = InstanceAccount.parse (obj); if (account != null) { saved_accounts.add (account); account.start_notificator (); } }); debug ("Loaded %i saved accounts", saved_accounts.length); updated (saved_accounts); } catch (GLib.Error e){ warning (e.message); } } } tootle-0.2.0/src/Application.vala000066400000000000000000000104111336712117400167200ustar00rootroot00000000000000using Gtk; using Granite; namespace Tootle { public static Application app; public static MainWindow? window; public static Window window_dummy; public static Settings settings; public static Accounts accounts; public static Network network; public static ImageCache image_cache; public static Watchlist watchlist; public static bool start_hidden = false; public class Application : Granite.Application { public abstract signal void refresh (); public abstract signal void toast (string title); public abstract signal void error (string title, string text); public const GLib.OptionEntry[] app_options = { { "hidden", 0, 0, OptionArg.NONE, ref start_hidden, "Do not show main window on start", null }, { null } }; public const GLib.ActionEntry[] app_entries = { {"compose-toot", compose_toot_activated }, {"back", back_activated }, {"refresh", refresh_activated }, {"switch-timeline", switch_timeline_activated, "i" } }; construct { application_id = "com.github.bleakgrey.tootle"; flags = ApplicationFlags.FLAGS_NONE; program_name = "Tootle"; build_version = "0.2.0"; } public static int main (string[] args) { Gtk.init (ref args); try { var opt_context = new OptionContext ("- Options"); opt_context.add_main_entries (app_options, null); opt_context.parse (ref args); } catch (GLib.OptionError e) { warning (e.message); } app = new Application (); return app.run (args); } protected override void startup () { base.startup (); Granite.Services.Logger.DisplayLevel = Granite.Services.LogLevel.INFO; settings = new Settings (); accounts = new Accounts (); network = new Network (); image_cache = new ImageCache (); watchlist = new Watchlist (); accounts.init (); app.error.connect (app.on_error); window_dummy = new Window (); add_window (window_dummy); set_accels_for_action ("app.compose-toot", {"T"}); set_accels_for_action ("app.back", {"BackSpace", "Left"}); set_accels_for_action ("app.refresh", {"R", "F5"}); set_accels_for_action ("app.switch-timeline(0)", {"1"}); set_accels_for_action ("app.switch-timeline(1)", {"2"}); set_accels_for_action ("app.switch-timeline(2)", {"3"}); set_accels_for_action ("app.switch-timeline(3)", {"4"}); add_action_entries (app_entries, this); } protected override void activate () { if (window != null) { window.present (); return; } if (start_hidden) { start_hidden = false; return; } debug ("Creating new window"); if (accounts.is_empty ()) NewAccountDialog.open (); else { window = new MainWindow (this); window.present (); } } protected void on_error (string title, string msg){ var message_dialog = new Granite.MessageDialog.with_image_from_icon_name (title, msg, "dialog-warning"); message_dialog.transient_for = window; message_dialog.run (); message_dialog.destroy (); } private void compose_toot_activated () { PostDialog.open (); } private void back_activated () { window.back (); } private void refresh_activated () { refresh (); } private void switch_timeline_activated (SimpleAction a, Variant? parameter) { int32 timeline_no = parameter.get_int32 (); window.switch_timeline (timeline_no); } } } tootle-0.2.0/src/Desktop.vala000066400000000000000000000042201336712117400160670ustar00rootroot00000000000000public class Tootle.Desktop { // Open URI in the user's default application associated with it public static void open_uri (string uri) { try { Gtk.show_uri (null, uri, Gdk.CURRENT_TIME); } catch (GLib.Error e){ warning ("Can't open %s: %s", uri, e.message); app.error (_("Error"), e.message); } } // Copy a string to the clipboard public static void copy (string str) { var display = window.get_display (); var clipboard = Gtk.Clipboard.get_for_display (display, Gdk.SELECTION_CLIPBOARD); clipboard.set_text (RichLabel.restore_entities (str), -1); } // Download a file from the web to a user's configured Downloads folder public static void download_file (string url) { debug ("Downloading file: %s", url); var i = url.last_index_of ("/"); var name = url.substring (i + 1, url.length - i - 1); if (name == null) name = "unknown"; var dir_path = "%s/%s".printf (GLib.Environment.get_user_special_dir (UserDirectory.DOWNLOAD), app.program_name); var file_path = "%s/%s".printf (dir_path, name); var msg = new Soup.Message("GET", url); msg.finished.connect(() => { try { var dir = File.new_for_path (dir_path); if (!dir.query_exists ()) dir.make_directory (); var file = File.new_for_path (file_path); if (!file.query_exists ()) { var data = msg.response_body.data; FileOutputStream stream = file.create (FileCreateFlags.PRIVATE); stream.write (data); } app.toast (_("Media downloaded")); } catch (Error e) { app.toast (e.message); warning ("Error: %s\n", e.message); } }); network.queue (msg); } public static string fallback_icon (string normal, string fallback) { var theme = Gtk.IconTheme.get_default (); return theme.has_icon (normal) ? normal : fallback; } } tootle-0.2.0/src/Dialogs/000077500000000000000000000000001336712117400151755ustar00rootroot00000000000000tootle-0.2.0/src/Dialogs/NewAccountDialog.vala000066400000000000000000000156731336712117400212440ustar00rootroot00000000000000using Gtk; using Tootle; public class Tootle.NewAccountDialog : Gtk.Dialog { private static NewAccountDialog dialog; private Gtk.Grid grid; private Gtk.Button button_done; private Gtk.Image logo; private Gtk.Entry instance_entry; private Gtk.Label instance_register; private Gtk.Label code_name; private Gtk.Entry code_entry; private string? instance; private string? client_id; private string? client_secret; private string? code; private string? token; private string? username; public NewAccountDialog () { border_width = 6; deletable = true; resizable = false; title = _("New Account"); transient_for = window; logo = new Image.from_resource ("/com/github/bleakgrey/tootle/logo128"); logo.halign = Gtk.Align.CENTER; logo.hexpand = true; logo.margin_bottom = 24; instance_entry = new Entry (); instance_entry.width_chars = 30; instance_register = new Label ("%s".printf (_("What's an instance?"))); instance_register.halign = Gtk.Align.END; instance_register.set_use_markup (true); code_name = new AlignedLabel (_("Code:")); code_entry = new Entry (); code_entry.secondary_icon_name = "dialog-question-symbolic"; code_entry.secondary_icon_tooltip_text = _("Paste your instance authorization code here"); code_entry.secondary_icon_activatable = false; button_done = new Gtk.Button.with_label (_("Add Account")); button_done.clicked.connect (on_done_clicked); button_done.halign = Gtk.Align.END; button_done.margin_top = 24; grid = new Gtk.Grid (); grid.column_spacing = 12; grid.row_spacing = 6; grid.hexpand = true; grid.halign = Gtk.Align.CENTER; grid.attach (logo, 0, 0, 2, 1); grid.attach (new AlignedLabel (_("Instance:")), 0, 1); grid.attach (instance_entry, 1, 1); grid.attach (code_name, 0, 3); grid.attach (code_entry, 1, 3); grid.attach (instance_register, 1, 5); grid.attach (button_done, 1, 10); var content = get_content_area () as Gtk.Box; content.pack_start (grid, false, false, 0); destroy.connect (() => { dialog = null; if (accounts.is_empty ()) app.remove_window (window_dummy); }); show_all (); clear (); } private void clear () { code_name.hide (); code_entry.hide (); code_entry.text = ""; client_id = client_secret = code = token = null; } private void on_done_clicked () { instance = "https://" + instance_entry.text .replace ("/", "") .replace (":", "") .replace ("https", "") .replace ("http", ""); code = code_entry.text; if (this.client_id == null || this.client_secret == null) { request_client_tokens (); return; } if (code == "") app.error (_("Error"), _("Please paste valid instance authorization code")); else try_auth (code); } private bool show_error (Soup.Message msg) { if (msg.status_code != Soup.Status.OK) { var phrase = Soup.Status.get_phrase (msg.status_code); app.error (_("Network Error"), phrase); return true; } return false; } private void request_client_tokens (){ var pars = "?client_name=Tootle"; pars += "&redirect_uris=urn:ietf:wg:oauth:2.0:oob"; pars += "&website=https://github.com/bleakgrey/tootle"; pars += "&scopes=read%20write%20follow"; grid.sensitive = false; var msg = new Soup.Message ("POST", "%s/api/v1/apps%s".printf (instance, pars)); msg.finished.connect (() => { grid.sensitive = true; if (show_error (msg)) return; var root = network.parse (msg); var id = root.get_string_member ("client_id"); var secret = root.get_string_member ("client_secret"); client_id = id; client_secret = secret; info ("Received tokens from %s", instance); request_auth_code (); code_name.show (); code_entry.show (); }); network.queue_custom (msg); } private void request_auth_code (){ var pars = "?scope=read%20write%20follow"; pars += "&response_type=code"; pars += "&redirect_uri=urn:ietf:wg:oauth:2.0:oob"; pars += "&client_id=" + client_id; info ("Requesting auth token"); Desktop.open_uri ("%s/oauth/authorize%s".printf (instance, pars)); } private void try_auth (string code){ var pars = "?client_id=" + client_id; pars += "&client_secret=" + client_secret; pars += "&redirect_uri=urn:ietf:wg:oauth:2.0:oob"; pars += "&grant_type=authorization_code"; pars += "&code=" + code; var msg = new Soup.Message ("POST", "%s/oauth/token%s".printf (instance, pars)); msg.finished.connect (() => { try{ if (show_error (msg)) return; var root = network.parse (msg); token = root.get_string_member ("access_token"); debug ("Got access token"); get_username (); } catch (GLib.Error e) { warning ("Can't get access token"); warning (e.message); } }); network.queue_custom (msg); } private void get_username () { var msg = new Soup.Message("GET", "%s/api/v1/accounts/verify_credentials".printf (instance)); msg.request_headers.append ("Authorization", "Bearer " + token); msg.finished.connect (() => { try{ if (show_error (msg)) return; var root = network.parse (msg); username = root.get_string_member ("username"); add_account (); window.show (); window.present (); destroy (); } catch (GLib.Error e) { warning ("Can't get username"); warning (e.message); } }); network.queue_custom (msg); } private void add_account () { var account = new InstanceAccount (); account.username = username; account.instance = instance; account.client_id = client_id; account.client_secret = client_secret; account.token = token; accounts.add (account); app.activate (); } public static void open () { if (dialog == null) dialog = new NewAccountDialog (); } } tootle-0.2.0/src/Dialogs/PostDialog.vala000066400000000000000000000213461336712117400201150ustar00rootroot00000000000000using Gtk; using Tootle; public class Tootle.PostDialog : Gtk.Dialog { private static PostDialog dialog; protected TextView text; private ScrolledWindow scroll; private Label counter; private ImageToggleButton spoiler; private MenuButton visibility; private Button attach; private Button cancel; private Button publish; protected AttachmentBox attachments; private Revealer spoiler_revealer; private Entry spoiler_text; protected Status? replying_to; protected Status? redrafting; protected StatusVisibility visibility_opt = StatusVisibility.PUBLIC; protected int char_limit; public PostDialog (Status? _replying_to = null, Status? _redrafting = null) { border_width = 6; deletable = false; resizable = true; title = _("Toot"); transient_for = window; char_limit = settings.char_limit; replying_to = _replying_to; redrafting = _redrafting; if (replying_to != null) visibility_opt = replying_to.visibility; if (redrafting != null) visibility_opt = redrafting.visibility; var actions = get_action_area ().get_parent () as Gtk.Box; var content = get_content_area (); get_action_area ().hexpand = false; visibility = get_visibility_btn (); visibility.tooltip_text = _("Post Visibility"); visibility.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); visibility.get_style_context ().remove_class ("image-button"); visibility.can_default = false; (visibility as Widget).set_focus_on_click (false); attach = new Button.from_icon_name ("mail-attachment-symbolic"); attach.tooltip_text = _("Add Media"); attach.valign = Gtk.Align.CENTER; attach.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); attach.get_style_context ().remove_class ("image-button"); attach.can_default = false; (attach as Widget).set_focus_on_click (false); attach.clicked.connect (() => attachments.select ()); spoiler = new ImageToggleButton ("image-red-eye-symbolic"); spoiler.tooltip_text = _("Spoiler Warning"); spoiler.set_action (); spoiler.toggled.connect (() => { spoiler_revealer.reveal_child = spoiler.active; validate (); }); cancel = add_button (_("Cancel"), 5) as Button; cancel.clicked.connect(() => destroy ()); if (redrafting != null) { publish = add_button (_("Redraft"), 5) as Button; publish.get_style_context ().add_class (Gtk.STYLE_CLASS_DESTRUCTIVE_ACTION); publish.clicked.connect (redraft_post); } else { publish = add_button (_("Toot!"), 5) as Button; publish.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION); publish.clicked.connect (publish_post); } spoiler_text = new Gtk.Entry (); spoiler_text.margin_start = 6; spoiler_text.margin_end = 6; spoiler_text.placeholder_text = _("Write your warning here"); spoiler_text.changed.connect (validate); spoiler_revealer = new Gtk.Revealer (); spoiler_revealer.add (spoiler_text); text = new TextView (); text.get_style_context ().add_class ("toot-text"); text.wrap_mode = Gtk.WrapMode.WORD; text.accepts_tab = false; text.vexpand = true; text.buffer.changed.connect (validate); scroll = new ScrolledWindow (null, null); scroll.hscrollbar_policy = Gtk.PolicyType.NEVER; scroll.min_content_height = 120; scroll.vexpand = true; scroll.propagate_natural_height = true; scroll.margin_start = 6; scroll.margin_end = 6; scroll.add (text); scroll.show_all (); attachments = new AttachmentBox (true); counter = new Label (""); actions.pack_start (counter, false, false, 6); actions.pack_end (spoiler, false, false, 6); actions.pack_end (visibility, false, false, 0); actions.pack_end (attach, false, false, 6); content.pack_start (spoiler_revealer, false, false, 6); content.pack_start (scroll, false, false, 6); content.pack_start (attachments, false, false, 6); content.set_size_request (350, 120); if (replying_to != null) { spoiler.active = replying_to.sensitive; var status_spoiler_text = replying_to.spoiler_text != null ? replying_to.spoiler_text : ""; spoiler_text.set_text (status_spoiler_text); } if (redrafting != null) { spoiler.active = redrafting.sensitive; var status_spoiler_text = redrafting.spoiler_text != null ? redrafting.spoiler_text : ""; spoiler_text.set_text (status_spoiler_text); } destroy.connect (() => dialog = null); show_all (); attachments.hide (); text.grab_focus (); validate (); } private Gtk.MenuButton get_visibility_btn () { var button = new Gtk.MenuButton (); var menu = new Gtk.Popover (null); var box = new Gtk.Box (Gtk.Orientation.VERTICAL, 6); box.margin = 12; menu.add (box); button.direction = Gtk.ArrowType.DOWN; button.image = new Gtk.Image.from_icon_name (visibility_opt.get_icon (), Gtk.IconSize.BUTTON); Gtk.RadioButton? first = null; foreach (StatusVisibility opt in StatusVisibility.get_all ()){ var item = new Gtk.RadioButton.with_label_from_widget (first, opt.get_desc ()); if (first == null) first = item; item.toggled.connect (() => { visibility_opt = opt; (button.image as Gtk.Image).icon_name = visibility_opt.get_icon (); }); item.active = visibility_opt == opt; box.pack_start (item, false, false, 0); } box.show_all (); button.use_popover = true; button.popover = menu; button.valign = Gtk.Align.CENTER; button.show (); return button; } private void validate () { var remain = char_limit - text.buffer.text.length; if (spoiler.active) remain -= spoiler_text.buffer.text.length; counter.label = remain.to_string (); publish.sensitive = remain >= 0; } public static void open (string? text = null, Status? reply_to = null) { if (dialog == null){ dialog = new PostDialog (reply_to); if (text != null) dialog.text.buffer.text = text; } else if (text != null) dialog.text.buffer.text += text; } public static void reply (Status status) { if (dialog != null) return; open (null, status); dialog.text.buffer.text = status.get_reply_mentions (); } public static void redraft (Status status) { if (dialog != null) return; dialog = new PostDialog (null, status); if (status.attachments != null) { foreach (Attachment attachment in status.attachments) dialog.attachments.append (attachment); } var content = Html.simplify (status.content); content = Html.remove_tags (content); content = RichLabel.restore_entities (content); dialog.text.buffer.text = content; } private void publish_post () { var pars = "?status=%s&visibility=%s".printf (Html.uri_encode (text.buffer.text), visibility_opt.to_string ()); pars += attachments.get_uri_array (); if (replying_to != null) pars += "&in_reply_to_id=%s".printf (replying_to.id.to_string ()); if (spoiler.active) { pars += "&sensitive=true"; pars += "&spoiler_text=" + Html.uri_encode (spoiler_text.buffer.text); } var url = "%s/api/v1/statuses%s".printf (accounts.formal.instance, pars); var msg = new Soup.Message ("POST", url); network.queue (msg, (sess, mess) => { try { var root = network.parse (mess); var status = Status.parse (root); debug ("Posted: %s", status.id.to_string ()); //TODO: Live updates destroy (); } catch (GLib.Error e) { warning ("Can't publish post."); warning (e.message); } }); } private void redraft_post () { redrafting.poof (false).finished.connect (publish_post); } } tootle-0.2.0/src/Dialogs/SettingsDialog.vala000066400000000000000000000067321336712117400207720ustar00rootroot00000000000000using Gtk; using Tootle; public class Tootle.SettingsDialog : Gtk.Dialog { private static SettingsDialog dialog; private SettingsSwitch switch_notifications; private SettingsSwitch switch_watcher; private SettingsSwitch switch_stream; private SettingsSwitch switch_stream_public; private Gtk.Grid grid; public SettingsDialog () { border_width = 6; deletable = false; resizable = false; title = _("Settings"); transient_for = window; int i = 0; grid = new Gtk.Grid (); switch_watcher = new SettingsSwitch ("always-online"); switch_notifications = new SettingsSwitch ("notifications"); switch_notifications.state_set.connect (state => { switch_watcher.sensitive = state; return false; }); switch_stream = new SettingsSwitch ("live-updates"); switch_stream_public = new SettingsSwitch ("live-updates-public"); switch_stream.state_set.connect (state => { switch_stream_public.sensitive = state; return false; }); grid.attach (new Granite.HeaderLabel (_("Appearance")), 0, i++, 2, 1); grid.attach (new SettingsLabel (_("Dark theme:")), 0, i); grid.attach (new SettingsSwitch ("dark-theme"), 1, i++); grid.attach (new Granite.HeaderLabel (_("Timelines")), 0, i++, 2, 1); grid.attach (new SettingsLabel (_("Real-time updates:")), 0, i); grid.attach (switch_stream, 1, i++); grid.attach (new SettingsLabel (_("Update public timelines:")), 0, i); grid.attach (switch_stream_public, 1, i++); // grid.attach (new Granite.HeaderLabel (_("Caching")), 0, i++, 2, 1); // grid.attach (new SettingsLabel (_("Use cache:")), 0, i); // grid.attach (new SettingsSwitch ("cache"), 1, i++); // grid.attach (new SettingsLabel (_("Max cache size (MB):")), 0, i); // var cache_size = new Gtk.SpinButton.with_range (16, 256, 1); // settings.schema.bind ("cache-size", cache_size, "value", SettingsBindFlags.DEFAULT); // grid.attach (cache_size, 1, i++); grid.attach (new Granite.HeaderLabel (_("Notifications")), 0, i++, 2, 1); grid.attach (new SettingsLabel (_("Display notifications:")), 0, i); grid.attach (switch_notifications, 1, i++); grid.attach (new SettingsLabel (_("Always receive notifications:")), 0, i); grid.attach (switch_watcher, 1, i++); var content = get_content_area () as Gtk.Box; content.pack_start (grid, false, false, 0); var close = add_button (_("_Close"), Gtk.ResponseType.CLOSE) as Gtk.Button; close.clicked.connect (() => { destroy (); dialog = null; }); show_all (); } public static void open () { if (dialog == null) dialog = new SettingsDialog (); } protected class SettingsLabel : Gtk.Label { public SettingsLabel (string text) { label = text; halign = Gtk.Align.END; margin_start = 12; margin_end = 12; } } protected class SettingsSwitch : Gtk.Switch { public SettingsSwitch (string setting) { halign = Gtk.Align.START; valign = Gtk.Align.CENTER; margin_bottom = 6; settings.schema.bind (setting, this, "active", SettingsBindFlags.DEFAULT); } } } tootle-0.2.0/src/Dialogs/WatchlistDialog.vala000066400000000000000000000144611336712117400211320ustar00rootroot00000000000000using Gtk; using Gee; public class Tootle.WatchlistDialog : Gtk.Dialog { private static WatchlistDialog dialog; private StackSwitcher switcher; private Gtk.MenuButton button_add; private Button button_remove; private Stack stack; private ListStack users; private ListStack hashtags; private ActionBar actionbar; private Popover popover; private Grid popover_grid; private Entry popover_entry; private Button popover_button; private const string TIP_USERS = _("You'll be notified when toots from this user appear in your Home timeline."); private const string TIP_HASHTAGS = _("You'll be notified when toots with this hashtag appear in any public timelines."); private class ModelItem : GLib.Object { public string name; public ModelItem (string name) { this.name = name; } } private class ModelView : ListBoxRow { public Label label; public ModelView (ModelItem item) { label = new Label (item.name); label.margin = 6; label.halign = Align.START; label.justify = Justification.LEFT; add (label); show_all (); } } private class Model : GLib.ListModel, GLib.Object { private GenericArray items = new GenericArray (); public GLib.Type get_item_type () { return typeof (ModelItem); } public uint get_n_items () { return items.length; } public GLib.Object? get_item (uint position) { return items.@get ((int)position); } public void append (ModelItem item) { this.items.add (item); } } public static Widget create_row (GLib.Object obj) { var item = (ModelItem) obj; return new ModelView (item); } private class ListStack : ScrolledWindow { public Model model; public ListBox list; public void update (ArrayList array) { array.@foreach (item => { model.append (new ModelItem (item)); return true; }); list.bind_model (model, create_row); } public ListStack (ArrayList array) { model = new Model (); list = new ListBox (); add (list); update (array); } } private void set_tip () { var is_user = stack.visible_child_name == "users"; popover_entry.secondary_icon_tooltip_text = is_user ? TIP_USERS : TIP_HASHTAGS; } public WatchlistDialog () { border_width = 6; deletable = false; resizable = false; transient_for = window; title = _("Watchlist"); users = new ListStack (watchlist.users); hashtags = new ListStack (watchlist.hashtags); stack = new Stack (); stack.transition_type = StackTransitionType.SLIDE_LEFT_RIGHT; stack.hexpand = true; stack.vexpand = true; stack.add_titled (users, "users", _("Users")); stack.add_titled (hashtags, "hashtags", _("Hashtags")); switcher = new StackSwitcher (); switcher.stack = stack; switcher.halign = Align.CENTER; switcher.margin_bottom = 12; popover_entry = new Entry (); popover_entry.hexpand = true; popover_entry.secondary_icon_name = "dialog-information-symbolic"; popover_entry.secondary_icon_activatable = false; popover_entry.activate.connect (() => submit ()); popover_button = new Button.with_label (_("Add")); popover_button.halign = Align.END; popover_button.margin_start = 6; popover_button.clicked.connect (() => submit ()); popover_grid = new Grid (); popover_grid.margin = 6; popover_grid.attach (popover_entry, 0, 0); popover_grid.attach (popover_button, 1, 0); popover_grid.show_all (); popover = new Popover (null); popover.add (popover_grid); button_add = new MenuButton (); button_add.image = new Image.from_icon_name ("list-add-symbolic", IconSize.BUTTON); button_add.popover = popover; button_add.clicked.connect (() => set_tip ()); button_remove = new Button (); button_remove.image = new Image.from_icon_name ("list-remove-symbolic", IconSize.BUTTON); button_remove.clicked.connect (on_remove); actionbar = new ActionBar (); actionbar.add (button_add); actionbar.add (button_remove); var grid = new Grid (); grid.attach (stack, 0, 1); grid.attach (actionbar, 0, 2); var frame = new Frame (null); frame.margin_bottom = 6; frame.add (grid); frame.set_size_request (350, 350); var content = get_content_area (); content.pack_start (switcher, true, true, 0); content.pack_start (frame, true, true, 0); add_button (_("_Close"), ResponseType.DELETE_EVENT); show_all (); response.connect (on_response); destroy.connect (() => dialog = null); } private void on_response (int i) { destroy (); } private void on_remove () { var is_hashtag = stack.visible_child_name == "hashtags"; ListStack stack = is_hashtag ? hashtags : users; stack.list.get_selected_rows ().@foreach (_row => { var row = _row as ModelView; watchlist.remove (row.label.label, is_hashtag); watchlist.save (); row.destroy (); }); } private void submit () { if (popover_entry.text_length < 1) return; var is_hashtag = stack.visible_child_name == "hashtags"; var entity = popover_entry.text .replace ("#", "") .replace (" ", ""); watchlist.add (entity, is_hashtag); watchlist.save (); button_add.active = false; var stack = is_hashtag ? hashtags : users; stack.list.insert (create_row (new ModelItem (entity)), 0); } public static void open () { if (dialog == null) dialog = new WatchlistDialog (); } } tootle-0.2.0/src/Html.vala000066400000000000000000000017111336712117400153640ustar00rootroot00000000000000public class Tootle.Html { public static string remove_tags (string content) { var all_tags = new Regex("<(.|\n)*?>", RegexCompileFlags.CASELESS); return all_tags.replace(content, -1, 0, ""); } public static string simplify (string content) { var divided = content .replace("
", "\n") .replace("
", "") .replace("
", "\n") .replace("

", "") .replace("

", "\n\n"); var html_params = new Regex("(class|target|rel)=\"(.|\n)*?\"", RegexCompileFlags.CASELESS); var simplified = html_params.replace(divided, -1, 0, ""); while (simplified.has_suffix ("\n")) simplified = simplified.slice (0, simplified.last_index_of ("\n")); return simplified; } public static string uri_encode (string content) { var to_escape = ";&+"; return Soup.URI.encode (content, to_escape); } } tootle-0.2.0/src/ImageCache.vala000066400000000000000000000111001336712117400164170ustar00rootroot00000000000000using Soup; using GLib; using Gdk; using Json; private struct CachedImage { public string uri; public int size; public CachedImage (string _uri, int _size) { uri = _uri; size = _size; } public static uint hash(CachedImage? c) { assert (c != null); assert (c.uri != null); return GLib.int64_hash (c.size) ^ c.uri.hash (); } public static bool equal (CachedImage? a, CachedImage? b) { if (a == null || b == null) return false; return a.size == b.size && a.uri == b.uri; } } public delegate void PixbufCallback (Gdk.Pixbuf pb); public class Tootle.ImageCache : GLib.Object { private GLib.HashTable in_progress; private GLib.HashTable pixbufs; private uint total_size_est; private uint size_limit; private string cache_path; construct { pixbufs = new GLib.HashTable (CachedImage.hash, CachedImage.equal); in_progress = new GLib.HashTable (CachedImage.hash, CachedImage.equal); total_size_est = 0; cache_path = "%s/%s".printf (GLib.Environment.get_user_cache_dir (), app.application_id); settings.changed.connect (on_settings_changed); on_settings_changed (); } public ImageCache() {} private void on_settings_changed () { // assume 32BPP (divide bytes by 4 to get # pixels) and raw, overhead-free storage // cache_size setting is number of megabytes size_limit = (1024 * 1024 * settings.cache_size) / 4; if (settings.cache) enforce_size_limit (); else remove_all (); } public void remove_all () { debug("Image cache cleared"); pixbufs.remove_all (); total_size_est = 0; } public void remove_one (string uri, int size) { CachedImage ci = CachedImage (uri, size); bool removed = pixbufs.remove(ci); if (removed) { assert (total_size_est >= size * size); total_size_est -= size * size; debug("Cache usage: %zd", total_size_est); } } //TODO: fix me // remove least used image private void remove_least_used () { var keys = pixbufs.get_keys(); if (keys.first() != null) { var ci = keys.first().data; remove_one(ci.uri, ci.size); } } private void enforce_size_limit () { debug("Updating size limit (%zd/%zd)", total_size_est, size_limit); while (total_size_est > size_limit && pixbufs.size() > 0) remove_least_used (); assert (total_size_est <= size_limit); } private void store_pixbuf (CachedImage ci, Gdk.Pixbuf pixbuf) { assert (!pixbufs.contains (ci)); pixbufs.insert (ci, pixbuf); in_progress.remove (ci); total_size_est += ci.size * ci.size; enforce_size_limit (); } public async void get_image (string uri, int size, owned PixbufCallback? cb = null) { CachedImage ci = CachedImage (uri, size); Gdk.Pixbuf? pb = pixbufs.get(ci); if (pb != null) { cb (pb); return; } Soup.Message? msg = in_progress.get(ci); if (msg == null) { msg = new Soup.Message("GET", uri); ulong id = 0; id = msg.finished.connect(() => { debug("Caching %s@%d", uri, size); var data = msg.response_body.data; var stream = new MemoryInputStream.from_data (data); var pixbuf = new Gdk.Pixbuf.from_stream_at_scale (stream, size, size, true); store_pixbuf(ci, pixbuf); cb(pixbuf); msg.disconnect(id); }); in_progress[ci] = msg; network.queue_custom (msg); } else { ulong id = 0; id = msg.finished.connect(() => { cb(pixbufs[ci]); msg.disconnect(id); }); } } public void load_avatar (string uri, Granite.Widgets.Avatar avatar, int size) { get_image.begin (uri, size, (pixbuf) => avatar.pixbuf = pixbuf.scale_simple (size, size, Gdk.InterpType.BILINEAR)); } public void load_image (string uri, Gtk.Image image) { load_scaled_image (uri, image, -1); } public void load_scaled_image (string uri, Gtk.Image image, int size) { get_image.begin (uri, size, image.set_from_pixbuf); } } tootle-0.2.0/src/InstanceAccount.vala000066400000000000000000000121401336712117400175370ustar00rootroot00000000000000using GLib; using Gee; public class Tootle.InstanceAccount : Object { public string username {get; set;} public string instance {get; set;} public string client_id {get; set;} public string client_secret {get; set;} public string token {get; set;} public int64 last_seen_notification {get; set; default = 0;} public bool has_unread_notifications {get; set; default = false;} public ArrayList cached_notifications {get; set;} private Notificator? notificator; public InstanceAccount () { cached_notifications = new ArrayList (); } public string get_pretty_instance () { return instance .replace ("https://", "") .replace ("/",""); } public void start_notificator () { if (notificator != null) notificator.close (); notificator = new Notificator (get_stream ()); notificator.status_added.connect (status_added); notificator.status_removed.connect (status_removed); notificator.notification.connect (notification); notificator.start (); } public bool is_current () { return accounts.formal.token == token; } public Soup.Message get_stream () { var url = "%s/api/v1/streaming/?stream=user&access_token=%s".printf (instance, token); return new Soup.Message ("GET", url); } public void close_notificator () { if (notificator != null) notificator.close (); } public Json.Node serialize () { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("hash"); builder.add_string_value ("test"); builder.set_member_name ("username"); builder.add_string_value (username); builder.set_member_name ("instance"); builder.add_string_value (instance); builder.set_member_name ("id"); builder.add_string_value (client_id); builder.set_member_name ("secret"); builder.add_string_value (client_secret); builder.set_member_name ("token"); builder.add_string_value (token); builder.set_member_name ("last_seen_notification"); builder.add_int_value (last_seen_notification); builder.set_member_name ("has_unread_notifications"); builder.add_boolean_value (has_unread_notifications); builder.set_member_name ("cached_notifications"); builder.begin_array (); cached_notifications.@foreach (notification => { var node = notification.serialize (); if (node != null) builder.add_value (node); return true; }); builder.end_array (); builder.end_object (); return builder.get_root (); } public static InstanceAccount parse (Json.Object obj) { var acc = new InstanceAccount (); acc.username = obj.get_string_member ("username"); acc.instance = obj.get_string_member ("instance"); acc.client_id = obj.get_string_member ("id"); acc.client_secret = obj.get_string_member ("secret"); acc.token = obj.get_string_member ("token"); acc.last_seen_notification = obj.get_int_member ("last_seen_notification"); acc.has_unread_notifications = obj.get_boolean_member ("has_unread_notifications"); var notifications = obj.get_array_member ("cached_notifications"); notifications.foreach_element ((arr, i, node) => { var notification = Notification.parse (node.get_object ()); acc.cached_notifications.add (notification); }); return acc; } public void notification (Notification obj) { var title = Html.remove_tags (obj.type.get_desc (obj.account)); var notification = new GLib.Notification (title); if (obj.status != null) { var body = ""; body += get_pretty_instance (); body += "\n"; body += Html.remove_tags (obj.status.content); notification.set_body (body); } if (settings.notifications) app.send_notification (app.application_id + ":" + obj.id.to_string (), notification); if (is_current ()) network.notification (obj); if (obj.type == NotificationType.WATCHLIST) { cached_notifications.add (obj); accounts.save (); } } private void status_removed (int64 id) { if (is_current ()) network.status_removed (id); } private void status_added (Status status) { if (!is_current ()) return; watchlist.users.@foreach (item => { var acct = status.account.acct; if (item == acct || item == "@" + acct) { var obj = new Notification (-1); obj.type = NotificationType.WATCHLIST; obj.account = status.account; obj.status = status; notification (obj); } return true; }); } } tootle-0.2.0/src/MainWindow.vala000066400000000000000000000160611336712117400165400ustar00rootroot00000000000000using Gtk; public class Tootle.MainWindow: Gtk.Window { private Overlay overlay; private Granite.Widgets.Toast toast; private Grid grid; private Stack primary_stack; private Stack secondary_stack; public HeaderBar header; public Granite.Widgets.ModeButton button_mode; private AccountsButton button_accounts; private Spinner spinner; private Button button_toot; private Button button_back; public HomeView home = new HomeView (); public NotificationsView notifications = new NotificationsView (); public LocalView local = new LocalView (); public FederatedView federated = new FederatedView (); construct { var provider = new Gtk.CssProvider (); provider.load_from_resource ("/com/github/bleakgrey/tootle/app.css"); StyleContext.add_provider_for_screen (Gdk.Screen.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); settings.changed.connect (update_theme); update_theme (); secondary_stack = new Stack(); secondary_stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT; secondary_stack.show (); primary_stack = new Stack(); primary_stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT; primary_stack.show (); primary_stack.add_named (secondary_stack, "0"); primary_stack.hexpand = true; primary_stack.vexpand = true; spinner = new Spinner (); spinner.active = true; button_accounts = new AccountsButton (); button_back = new Button (); button_back.valign = Align.CENTER; button_back.label = _("Back"); button_back.get_style_context ().add_class (Granite.STYLE_CLASS_BACK_BUTTON); button_back.clicked.connect (() => back ()); button_toot = new Button (); button_toot.valign = Align.CENTER; button_toot.tooltip_text = _("Toot"); button_toot.image = new Image.from_icon_name ("document-edit-symbolic", IconSize.LARGE_TOOLBAR); button_toot.clicked.connect (() => PostDialog.open ()); button_mode = new Granite.Widgets.ModeButton (); button_mode.get_style_context ().add_class ("mode"); button_mode.vexpand = true; button_mode.valign = Align.FILL; button_mode.mode_changed.connect (on_mode_changed); button_mode.show (); header = new HeaderBar (); header.get_style_context ().add_class ("compact"); header.show_close_button = true; header.title = _("Tootle"); header.custom_title = button_mode; header.pack_start (button_back); header.pack_start (button_toot); header.pack_end (button_accounts); header.pack_end (spinner); header.show_all (); grid = new Grid (); grid.attach (primary_stack, 0, 0, 1, 1); add_header_view (home); add_header_view (notifications); add_header_view (local); add_header_view (federated); button_mode.set_active (0); toast = new Granite.Widgets.Toast (""); overlay = new Overlay (); overlay.add_overlay (grid); overlay.add_overlay (toast); overlay.set_size_request (450, 600); add (overlay); show_all (); } public MainWindow (Gtk.Application _app) { application = _app; icon_name = "com.github.bleakgrey.tootle"; resizable = true; window_position = WindowPosition.CENTER; set_titlebar (header); update_header (); app.toast.connect (on_toast); network.started.connect (() => spinner.show ()); network.finished.connect (() => spinner.hide ()); accounts.updated (accounts.saved_accounts); button_press_event.connect ((event) => { if (event.button == 8) { back (); return true; } return false; }); } private void add_header_view (AbstractView view) { var img = new Image.from_icon_name (view.get_icon (), IconSize.LARGE_TOOLBAR); img.tooltip_text = view.get_name (); button_mode.append (img); view.image = img; secondary_stack.add_named (view, view.get_name ()); if (view is NotificationsView) img.pixel_size = 20; // For some reason Notifications icon is too small without this } public int get_visible_id () { return int.parse (primary_stack.get_visible_child_name ()); } public void open_view (AbstractView widget) { var i = get_visible_id (); i++; widget.stack_pos = i; widget.show (); primary_stack.add_named (widget, i.to_string ()); primary_stack.set_visible_child_name (i.to_string ()); update_header (); } public void back () { var i = get_visible_id (); if (i == 0) return; var child = primary_stack.get_child_by_name (i.to_string ()); primary_stack.set_visible_child_name ((i-1).to_string ()); child.destroy (); update_header (); } public void reopen_view (int view_id) { var i = get_visible_id (); while (i != view_id && view_id != 0) { back (); i = get_visible_id (); } } public override bool delete_event (Gdk.EventAny event) { this.destroy.connect (() => { if (!settings.always_online || accounts.is_empty ()) app.remove_window (window_dummy); window = null; }); return false; } public void switch_timeline (int32 timeline_no) { button_mode.set_active (timeline_no); } private void update_theme () { var provider = new Gtk.CssProvider (); var is_dark = settings.dark_theme; var theme = is_dark ? "dark" : "light"; provider.load_from_resource ("/com/github/bleakgrey/tootle/%s.css".printf (theme)); StyleContext.add_provider_for_screen (Gdk.Screen.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); Gtk.Settings.get_default ().gtk_application_prefer_dark_theme = is_dark; } private void update_header () { bool primary_mode = get_visible_id () == 0; button_mode.sensitive = primary_mode; button_mode.opacity = primary_mode ? 1 : 0; //Prevent HeaderBar height jitter button_toot.set_visible (primary_mode); button_back.set_visible (!primary_mode); button_accounts.set_visible (true); } private void on_toast (string msg){ toast.title = msg; toast.send_notification (); } private void on_mode_changed (Widget widget) { var visible = secondary_stack.get_visible_child () as AbstractView; visible.current = false; secondary_stack.set_visible_child_name (widget.tooltip_text); visible = secondary_stack.get_visible_child () as AbstractView; visible.current = true; visible.on_set_current (); } } tootle-0.2.0/src/Network.vala000066400000000000000000000142431336712117400161150ustar00rootroot00000000000000using Soup; using GLib; using Gdk; using Json; public class Tootle.Network : GLib.Object { public signal void started (); public signal void finished (); public signal void notification (Notification notification); public signal void status_removed (int64 id); private int requests_processing = 0; private Soup.Session session; construct { session = new Soup.Session (); session.ssl_strict = true; session.ssl_use_system_ca_file = true; session.timeout = 20; session.max_conns = 15; session.request_unqueued.connect (msg => { requests_processing--; if(requests_processing <= 0) finished (); }); // Soup.Logger logger = new Soup.Logger (Soup.LoggerLogLevel.BODY, -1); // session.add_feature (logger); } public Network () {} public async WebsocketConnection stream (Soup.Message msg) throws GLib.Error { return yield session.websocket_connect_async (msg, null, null, null); } public Soup.Message queue (Soup.Message msg, owned Soup.SessionCallback? cb = null) { requests_processing++; started (); var formal = accounts.formal; if(formal != null) msg.request_headers.append ("Authorization", "Bearer " + formal.token); session.queue_message (msg, (sess, mess) => { switch (mess.tls_errors){ case GLib.TlsCertificateFlags.UNKNOWN_CA: case GLib.TlsCertificateFlags.BAD_IDENTITY: case GLib.TlsCertificateFlags.NOT_ACTIVATED: case GLib.TlsCertificateFlags.EXPIRED: case GLib.TlsCertificateFlags.REVOKED: case GLib.TlsCertificateFlags.INSECURE: case GLib.TlsCertificateFlags.GENERIC_ERROR: var err = mess.tls_errors.to_string (); warning ("TLS error: "+err); app.error (_("TLS Error"), _("Can't ensure secure connection: ")+err); return; default: break; } if (mess.status_code != Soup.Status.OK) { var phrase = Soup.Status.get_phrase (mess.status_code); app.toast (_("Error: %s").printf(phrase)); return; } if (cb != null) cb (sess, mess); msg.request_body.free (); msg.response_body.free (); msg.request_headers.free (); msg.response_headers.free (); }); return msg; } public void queue_custom (Soup.Message msg, owned Soup.SessionCallback? cb = null) { requests_processing++; started (); msg.finished.connect_after (() => { msg.request_body.free (); msg.response_body.free (); msg.request_headers.free (); msg.response_headers.free (); }); session.queue_message (msg, cb); } public Json.Object parse (Soup.Message msg) throws GLib.Error { // debug ("Status Code: %u", msg.status_code); // debug ("Message length: %lld", msg.response_body.length); // debug ("Object: %s", (string) msg.response_body.data); var parser = new Json.Parser (); parser.load_from_data ((string) msg.response_body.flatten ().data, -1); return parser.get_root ().get_object (); } public Json.Array parse_array (Soup.Message msg) throws GLib.Error { // debug ("Status Code: %u", msg.status_code); // debug ("Message length: %lld", msg.response_body.length); // debug ("Array: %s", (string) msg.response_body.data); var parser = new Json.Parser (); parser.load_from_data ((string) msg.response_body.flatten ().data, -1); return parser.get_root ().get_array (); } public void load_avatar (string url, Granite.Widgets.Avatar avatar, int size){ if (settings.cache) { image_cache.load_avatar (url, avatar, size); return; } var msg = new Soup.Message("GET", url); msg.finished.connect(() => { if (msg.status_code != Soup.Status.OK) { avatar.show_default (size); return; } var data = msg.response_body.data; var stream = new MemoryInputStream.from_data (data); var pixbuf = new Gdk.Pixbuf.from_stream_at_scale (stream, size, size, true); avatar.pixbuf = pixbuf.scale_simple (size, size, Gdk.InterpType.BILINEAR); }); network.queue_custom (msg); } public void load_image (string url, Gtk.Image image) { if (settings.cache) { image_cache.load_image (url, image); return; } var msg = new Soup.Message("GET", url); msg.finished.connect(() => { if (msg.status_code != Soup.Status.OK) { image.set_from_icon_name ("image-missing", Gtk.IconSize.LARGE_TOOLBAR); return; } var data = msg.response_body.data; var stream = new MemoryInputStream.from_data (data); var pixbuf = new Gdk.Pixbuf.from_stream (stream); image.set_from_pixbuf (pixbuf); }); network.queue_custom (msg); } public void load_scaled_image (string url, Gtk.Image image, int size) { if (settings.cache) { image_cache.load_scaled_image (url, image, size); return; } var msg = new Soup.Message("GET", url); msg.finished.connect(() => { if (msg.status_code != Soup.Status.OK) { image.set_from_icon_name ("image-missing", Gtk.IconSize.LARGE_TOOLBAR); return; } var data = msg.response_body.data; var stream = new MemoryInputStream.from_data (data); var pixbuf = new Gdk.Pixbuf.from_stream_at_scale (stream, size, size, true); image.set_from_pixbuf (pixbuf); }); network.queue_custom (msg); } } tootle-0.2.0/src/Notificator.vala000066400000000000000000000067571336712117400167600ustar00rootroot00000000000000using GLib; using Soup; public class Tootle.Notificator : GLib.Object { private WebsocketConnection? connection; private Soup.Message msg; private bool closing = false; private int timeout = 2; public signal void notification (Notification notification); public signal void status_added (Status status); public signal void status_removed (int64 id); public Notificator (Soup.Message _msg){ msg = _msg; msg.priority = Soup.MessagePriority.VERY_HIGH; msg.set_flags (Soup.MessageFlags.IGNORE_CONNECTION_LIMITS); } public string get_url () { return msg.get_uri ().to_string (false); } public string get_name () { var name = msg.get_uri ().to_string (true); if ("&access_token" in name) { var pos = name.last_index_of ("&access_token"); name = name.slice (0, pos); } return name; } public async void start () { if (connection != null) return; try { info ("Starting: %s", get_name ()); connection = yield network.stream (msg); connection.error.connect (on_error); connection.message.connect (on_message); connection.closed.connect (on_closed); timeout = 2; } catch (GLib.Error e) { warning (e.message); on_closed (); } } public void close () { if (connection == null) return; info ("Closing: %s", get_name ()); closing = true; connection.close (0, null); } private bool reconnect () { start (); return false; } private void on_closed () { if (closing) return; warning ("Aborted: %s. Reconnecting in %i seconds.", get_name (), timeout); GLib.Timeout.add_seconds (timeout, reconnect); timeout = int.min (timeout*2, 60); } private void on_error (Error e) { if (!closing) warning ("Error in %s: %s", get_name (), e.message); } private void on_message (int i, Bytes bytes) { var msg = (string) bytes.get_data (); var parser = new Json.Parser (); parser.load_from_data (msg, -1); var root = parser.get_root ().get_object (); var type = root.get_string_member ("event"); switch (type) { case "update": if (!settings.live_updates) return; var status = Status.parse (sanitize (root)); status_added (status); break; case "delete": if (!settings.live_updates) return; var id = int64.parse (root.get_string_member("payload")); status_removed (id); break; case "notification": var notif = Notification.parse (sanitize (root)); notification (notif); break; default: warning ("Unknown push event: %s", type); break; } } private Json.Object sanitize (Json.Object root) { var payload = root.get_string_member ("payload"); var sanitized = Soup.URI.decode (payload); var parser = new Json.Parser (); parser.load_from_data (sanitized, -1); return parser.get_root ().get_object (); } } tootle-0.2.0/src/Settings.vala000066400000000000000000000011571336712117400162640ustar00rootroot00000000000000public class Tootle.Settings : Granite.Services.Settings { public int current_account { get; set; } public bool notifications { get; set; } public bool always_online { get; set; } public bool cache { get; set; } public int cache_size { get; set; } public int char_limit { get; set; } public bool live_updates { get; set; } public bool live_updates_public { get; set; } public bool dark_theme { get; set; } public string watched_users { get; set; } public string watched_hashtags { get; set; } public Settings () { base ("com.github.bleakgrey.tootle"); } } tootle-0.2.0/src/Views/000077500000000000000000000000001336712117400147105ustar00rootroot00000000000000tootle-0.2.0/src/Views/AbstractView.vala000066400000000000000000000035621336712117400201610ustar00rootroot00000000000000using Gtk; public abstract class Tootle.AbstractView : ScrolledWindow { public bool current = false; public int stack_pos = -1; public Image? image; public Box view; protected Box? empty; protected Grid? header; construct { view = new Box (Orientation.VERTICAL, 0); view.valign = Align.START; add (view); hscrollbar_policy = PolicyType.NEVER; edge_reached.connect (pos => { if (pos == PositionType.BOTTOM) on_bottom_reached (); }); } public AbstractView () { show_all (); } public virtual string get_icon () { return "null"; } public virtual string get_name () { return "unnamed"; } public virtual void clear (){ view.forall (widget => { if (widget != header) widget.destroy (); }); } public virtual void on_bottom_reached () {} public virtual void on_set_current () {} public virtual bool is_empty () { return view.get_children ().length () <= 1; } public virtual bool empty_state () { if (empty != null) empty.destroy (); if (!is_empty ()) return false; empty = new Box (Orientation.VERTICAL, 0); empty.margin = 64; var image = new Image.from_resource ("/com/github/bleakgrey/tootle/empty_state"); var text = new Label (_("Nothing to see here")); text.get_style_context ().add_class ("h2"); text.opacity = 0.5; empty.hexpand = true; empty.vexpand = true; empty.valign = Align.FILL; empty.pack_start (image, false, false, 0); empty.pack_start (text, false, false, 12); empty.show_all (); view.pack_start (empty, false, false, 0); return true; } } tootle-0.2.0/src/Views/AccountView.vala000066400000000000000000000237161336712117400200150ustar00rootroot00000000000000using Gtk; using Granite; public class Tootle.AccountView : TimelineView { const int AVATAR_SIZE = 128; protected Account account; protected Grid header_image; protected Box header_info; protected Granite.Widgets.Avatar avatar; protected RichLabel display_name; protected Label username; protected Label relationship; protected RichLabel note; protected Grid counters; protected Box actions; protected Button button_follow; protected Gtk.Menu menu; protected Gtk.MenuItem menu_edit; protected Gtk.MenuItem menu_mention; protected Gtk.MenuItem menu_mute; protected Gtk.MenuItem menu_block; protected Gtk.MenuItem menu_report; protected Gtk.MenuButton button_menu; construct { header = new Grid (); header_info = new Box (Orientation.VERTICAL, 0); header_info.margin = 12; actions = new Box (Orientation.HORIZONTAL, 0); actions.hexpand = false; actions.halign = Align.END; actions.vexpand = false; actions.valign = Align.START; actions.margin = 12; relationship = new Label (""); relationship.get_style_context ().add_class ("relationship"); relationship.halign = Align.START; relationship.valign = Align.START; relationship.margin = 12; header.attach (relationship, 0, 0, 1, 1); avatar = new Granite.Widgets.Avatar.with_default_icon (AVATAR_SIZE); avatar.hexpand = true; avatar.margin_bottom = 6; header_info.pack_start (avatar, false, false, 0); display_name = new RichLabel (""); display_name.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL); header_info.pack_start (display_name, false, false, 0); username = new Gtk.Label (""); header_info.pack_start (username, false, false, 0); note = new RichLabel (""); note.set_line_wrap (true); note.selectable = true; note.margin_top = 12; note.can_focus = false; note.justify = Justification.CENTER; header_info.pack_start (note, false, false, 0); header_info.show_all (); header.attach (header_info, 0, 0, 1, 1); counters = new Grid (); counters.column_homogeneous = true; counters.get_style_context ().add_class ("header-counters"); header.attach (counters, 0, 1, 1, 1); header_image = new Grid (); header_image.get_style_context ().add_class ("header"); header.attach (header_image, 0, 0, 2, 2); menu = new Gtk.Menu (); menu_edit = new Gtk.MenuItem.with_label (_("Edit Profile")); menu_mention = new Gtk.MenuItem.with_label (_("Mention")); menu_report = new Gtk.MenuItem.with_label (_("Report")); menu_mute = new Gtk.MenuItem.with_label (_("Mute")); menu_block = new Gtk.MenuItem.with_label (_("Block")); menu.add (menu_mention); //menu.add (new Gtk.SeparatorMenuItem ()); menu.add (menu_mute); menu.add (menu_block); //menu.add (menu_report); //TODO: Report users //menu.add (menu_edit); //TODO: Edit profile menu.show_all (); button_follow = add_counter ("contact-new-symbolic"); button_menu = new Gtk.MenuButton (); button_menu.image = new Image.from_icon_name ("view-more-symbolic", IconSize.LARGE_TOOLBAR); button_menu.tooltip_text = _("More Actions"); button_menu.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); (button_menu as Widget).set_focus_on_click (false); button_menu.can_default = false; button_menu.can_focus = false; button_menu.popup = menu; actions.pack_end(button_menu, false, false, 0); actions.pack_end(button_follow, false, false, 0); button_menu.hide (); button_follow.hide (); header.attach (actions, 0, 0, 2, 2); view.pack_start (header, false, false, 0); } public AccountView (Account acc) { base (""); account = acc; account.updated.connect(rebind); add_counter (_("Toots"), 1, account.statuses_count); add_counter (_("Follows"), 2, account.following_count).clicked.connect (() => { var view = new FollowingView (account); window.open_view (view); }); add_counter (_("Followers"), 3, account.followers_count).clicked.connect (() => { var view = new FollowersView (account); window.open_view (view); }); show_all (); var stylesheet = ".header{background-image: url(\"%s\")}".printf (account.header); var css_provider = Granite.Widgets.Utils.get_css_provider (stylesheet); header_image.get_style_context ().add_provider (css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); menu_mention.activate.connect (() => PostDialog.open ("@%s ".printf (account.acct))); menu_mute.activate.connect (() => account.set_muted (!account.rs.muting)); menu_block.activate.connect (() => account.set_blocked (!account.rs.blocking)); button_follow.clicked.connect (() => account.set_following (!account.rs.following)); rebind (); account.get_relationship (); request (); } public void rebind (){ display_name.set_label ("%s".printf (account.display_name)); username.label = "@" + account.acct; note.set_label (Html.simplify (account.note)); button_follow.visible = !account.is_self (); network.load_avatar (account.avatar, avatar, 128); menu_edit.visible = account.is_self (); if (account.rs != null && !account.is_self ()) { button_follow.show (); if (account.rs.following) { button_follow.tooltip_text = _("Unfollow"); (button_follow.get_image () as Image).icon_name = "close-symbolic"; } else{ button_follow.tooltip_text = _("Follow"); (button_follow.get_image () as Image).icon_name = "contact-new-symbolic"; } } if (account.rs != null){ button_menu.show (); menu_block.label = account.rs.blocking ? _("Unblock") : _("Block"); menu_mute.label = account.rs.muting ? _("Unmute") : _("Mute"); menu_report.visible = menu_mute.visible = menu_block.visible = !account.is_self (); var rs_label = get_relationship_label (); if (rs_label != null) { relationship.label = rs_label; relationship.show (); } else relationship.hide (); } else relationship.hide (); } public override bool is_status_owned (Status status) { return status.is_owned (); } private Gtk.Button add_counter (string name, int? i = null, int64? val = null) { Button btn; if (val != null){ btn = new Button (); var label = new Label ("%s\n%s".printf (name.up (), val.to_string ())); label.justify = Justification.CENTER; label.use_markup = true; label.margin = 8; btn.add (label); } else btn = new Button.from_icon_name (name, IconSize.LARGE_TOOLBAR); btn.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); (btn as Widget).set_focus_on_click (false); btn.can_default = false; btn.can_focus = false; if (i != null) counters.attach (btn, i, 1, 1, 1); return btn; } public override bool is_empty () { return view.get_children ().length () <= 2; } public override string get_url () { if (page_next != null) return page_next; var url = "%s/api/v1/accounts/%lld/statuses?limit=%i".printf (accounts.formal.instance, account.id, this.limit); return url; } public override void request () { if(account != null) base.request (); } private string? get_relationship_label () { if (account.rs.requested) return _("Sent follow request"); else if (account.rs.blocking) return _("Blocked"); else if (account.rs.followed_by) return _("Follows you"); else if (account.rs.domain_blocking) return _("Blocking this instance"); else return null; } public static void open_from_id (int64 id){ var url = "%s/api/v1/accounts/%lld".printf (accounts.formal.instance, id); var msg = new Soup.Message ("GET", url); msg.priority = Soup.MessagePriority.HIGH; network.queue (msg, (sess, mess) => { try { var root = network.parse (mess); var acc = Account.parse (root); window.open_view (new AccountView (acc)); } catch (GLib.Error e) { warning ("Can't find account"); warning (e.message); } }); } public static void open_from_name (string name){ var url = "%s/api/v1/accounts/search?limit=1&q=%s".printf (accounts.formal.instance, name); var msg = new Soup.Message("GET", url); msg.priority = Soup.MessagePriority.HIGH; network.queue (msg, (sess, mess) => { try { var node = network.parse_array (mess).get_element (0); var object = node.get_object (); if (object != null){ var acc = Account.parse(object); window.open_view (new AccountView (acc)); } else app.toast (_("User not found")); } catch (GLib.Error e) { warning (e.message); } }); } } tootle-0.2.0/src/Views/DirectView.vala000066400000000000000000000010131336712117400176150ustar00rootroot00000000000000public class Tootle.DirectView : TimelineView { public DirectView () { base ("direct"); } public override string get_icon () { return "mail-send-symbolic"; } public override string get_name () { return _("Direct Messages"); } public override Soup.Message? get_stream () { var url = "%s/api/v1/streaming/?stream=direct&access_token=%s".printf (accounts.formal.instance, accounts.formal.token); return new Soup.Message("GET", url); } } tootle-0.2.0/src/Views/FavoritesView.vala000066400000000000000000000005451336712117400203560ustar00rootroot00000000000000public class Tootle.FavoritesView : TimelineView { public FavoritesView () { base ("favorites"); } public override string get_url (){ if (page_next != null) return page_next; var url = "%s/api/v1/favourites/?limit=%i".printf (accounts.formal.instance, this.limit); return url; } } tootle-0.2.0/src/Views/FederatedView.vala000066400000000000000000000011471336712117400202760ustar00rootroot00000000000000public class Tootle.FederatedView : TimelineView { public FederatedView () { base ("public"); } public override string get_icon () { return "network-workgroup-symbolic"; } public override string get_name () { return _("Federated Timeline"); } protected override bool is_public () { return true; } public override Soup.Message? get_stream () { var url = "%s/api/v1/streaming/?stream=public&access_token=%s".printf (accounts.formal.instance, accounts.formal.token); return new Soup.Message("GET", url); } } tootle-0.2.0/src/Views/FollowersView.vala000066400000000000000000000031061336712117400203640ustar00rootroot00000000000000using Gtk; public class Tootle.FollowersView : TimelineView { public FollowersView (Account account) { base (account.id.to_string ()); } public new void append (Account account){ if (empty != null) empty.destroy (); var separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); separator.show (); var widget = new AccountWidget (account); widget.separator = separator; view.pack_start(separator, false, false, 0); view.pack_start(widget, false, false, 0); } public override string get_url (){ if (page_next != null) return page_next; var url = "%s/api/v1/accounts/%s/followers".printf (accounts.formal.instance, this.timeline); return url; } public override void request (){ var msg = new Soup.Message("GET", get_url ()); msg.finished.connect (() => empty_state ()); network.queue(msg, (sess, mess) => { try { network.parse_array (mess).foreach_element ((array, i, node) => { var object = node.get_object (); if (object != null){ var status = Account.parse (object); append (status); } }); get_pages (mess.response_headers.get_one ("Link")); } catch (GLib.Error e) { warning ("Can't get account follow info:"); warning (e.message); } }); } } tootle-0.2.0/src/Views/FollowingView.vala000066400000000000000000000005761336712117400203600ustar00rootroot00000000000000public class Tootle.FollowingView : FollowersView { public FollowingView (Account account) { base (account); } public override string get_url (){ if (page_next != null) return page_next; var url = "%s/api/v1/accounts/%s/following".printf (accounts.formal.instance, this.timeline); return url; } } tootle-0.2.0/src/Views/HashtagView.vala000066400000000000000000000010661336712117400177720ustar00rootroot00000000000000public class Tootle.HashtagView : TimelineView { public HashtagView (string hashtag) { base ("tag/" + hashtag); } public string get_hashtag () { return this.timeline.substring (4); } public override string get_name () { return get_hashtag (); } public override Soup.Message? get_stream () { var url = "%s/api/v1/streaming/?stream=hashtag&tag=%s&access_token=%s".printf (accounts.formal.instance, get_hashtag (), accounts.formal.token); return new Soup.Message("GET", url); } } tootle-0.2.0/src/Views/HomeView.vala000066400000000000000000000005721336712117400173040ustar00rootroot00000000000000public class Tootle.HomeView : TimelineView { public HomeView () { base ("home"); } public override string get_icon () { return "user-home-symbolic"; } public override string get_name () { return _("Home"); } public override Soup.Message? get_stream () { return accounts.formal.get_stream (); } } tootle-0.2.0/src/Views/LocalView.vala000066400000000000000000000013531336712117400174440ustar00rootroot00000000000000public class Tootle.LocalView : TimelineView { public LocalView () { base ("public"); } public override string get_icon () { return "document-open-recent-symbolic"; } public override string get_name () { return _("Local Timeline"); } public override string get_url (){ var url = base.get_url (); url += "&local=true"; return url; } protected override bool is_public () { return true; } public override Soup.Message? get_stream () { var url = "%s/api/v1/streaming/?stream=public:local&access_token=%s".printf (accounts.formal.instance, accounts.formal.token); return new Soup.Message("GET", url); } } tootle-0.2.0/src/Views/NotificationsView.vala000066400000000000000000000114061336712117400212230ustar00rootroot00000000000000using Gtk; using Gdk; public class Tootle.NotificationsView : AbstractView { private int64 last_id = 0; private bool force_dot = false; public NotificationsView () { base (); view.remove.connect (on_remove); accounts.switched.connect (on_account_changed); app.refresh.connect (on_refresh); network.notification.connect (prepend); request (); } private bool has_unread () { if (accounts.formal == null) return false; else return last_id > accounts.formal.last_seen_notification || force_dot; } public override string get_icon () { if (has_unread ()) return Desktop.fallback_icon ("notification-new-symbolic", "user-available-symbolic"); else return Desktop.fallback_icon ("notification-symbolic", "user-invisible-symbolic"); } public override string get_name () { return _("Notifications"); } public void prepend (Notification notification) { append (notification, true); } public void append (Notification notification, bool reverse = false) { if (empty != null) empty.destroy (); var separator = new Gtk.Separator (Orientation.HORIZONTAL); separator.show (); var widget = new NotificationWidget (notification); widget.separator = separator; view.pack_start (separator, false, false, 0); view.pack_start (widget, false, false, 0); if (reverse) { view.reorder_child (widget, 0); view.reorder_child (separator, 0); if (!current) { force_dot = true; accounts.formal.has_unread_notifications = force_dot; } } if (notification.id > last_id) last_id = notification.id; if (has_unread ()) { accounts.save (); image.icon_name = get_icon (); } } public override void on_set_current () { var account = accounts.formal; if (has_unread ()) { force_dot = false; account.has_unread_notifications = force_dot; account.last_seen_notification = last_id; accounts.save (); image.icon_name = get_icon (); } } public virtual void on_remove (Widget widget) { if (!(widget is NotificationWidget)) return; empty_state (); } public override bool empty_state () { var is_empty = base.empty_state (); if (image != null && is_empty) image.icon_name = get_icon (); return is_empty; } public virtual void on_refresh () { clear (); accounts.formal.cached_notifications.@foreach (notification => { append (notification); return true; }); request (); } public virtual void on_account_changed (Account? account) { if (account == null) return; last_id = accounts.formal.last_seen_notification; force_dot = accounts.formal.has_unread_notifications; on_refresh (); } public void request () { if (accounts.current == null) { empty_state (); return; } var url = "%s/api/v1/follow_requests".printf (accounts.formal.instance); var msg = new Soup.Message ("GET", url); network.queue (msg, (sess, mess) => { try { network.parse_array (mess).foreach_element ((array, i, node) => { var obj = node.get_object (); if (obj != null){ var notification = Notification.parse_follow_request (obj); append (notification); } }); } catch (GLib.Error e) { warning ("Can't update follow requests"); warning (e.message); } }); var url2 = "%s/api/v1/notifications?limit=30".printf (accounts.formal.instance); var msg2 = new Soup.Message ("GET", url2); network.queue (msg2, (sess, mess) => { try { network.parse_array (mess).foreach_element ((array, i, node) => { var obj = node.get_object (); if (obj != null){ var notification = Notification.parse (obj); append (notification); } }); } catch (GLib.Error e) { warning ("Can't update notifications"); warning (e.message); } }); empty_state (); } } tootle-0.2.0/src/Views/SearchView.vala000066400000000000000000000074431336712117400176250ustar00rootroot00000000000000using Gtk; public class Tootle.SearchView : AbstractView { private string query = ""; private Entry entry; construct { view.margin_bottom = 6; entry = new Entry (); entry.placeholder_text = _("Search"); entry.secondary_icon_name = "system-search-symbolic"; entry.width_chars = 25; entry.text = query; entry.valign = Align.CENTER; entry.show (); window.header.pack_start (entry); destroy.connect (() => entry.destroy ()); entry.activate.connect (() => request ()); entry.icon_press.connect (() => request ()); } public SearchView () { entry.grab_focus_without_selecting (); } private void append_account (Account acc) { var widget = new AccountWidget (acc); view.pack_start (widget, false, false, 0); } private void append_status (Status status) { var widget = new StatusWidget (status); widget.button_press_event.connect(widget.open); view.pack_start (widget, false, false, 0); } private void append_header (string name) { var widget = new Label (name); widget.get_style_context ().add_class ("h4"); widget.halign = Align.START; widget.margin = 6; widget.margin_bottom = 0; widget.show (); view.pack_start (widget, false, false, 0); } private void append_hashtag (string name) { var text = "#%s".printf (accounts.formal.instance, Soup.URI.encode (name, null), name); var widget = new RichLabel (text); widget.use_markup = true; widget.halign = Align.START; widget.margin = 6; widget.margin_bottom = 0; widget.show (); view.pack_start (widget, false, false, 0); } private void request () { query = entry.text; if (query == "") { clear (); return; } window.reopen_view (this.stack_pos); var query_encoded = Soup.URI.encode (query, null); var url = "%s/api/v1/search?q=%s".printf (accounts.formal.instance, query_encoded); var msg = new Soup.Message("GET", url); network.queue(msg, (sess, mess) => { try { var root = network.parse (mess); var accounts = root.get_array_member ("accounts"); var statuses = root.get_array_member ("statuses"); var hashtags = root.get_array_member ("hashtags"); clear (); if (accounts.get_length () > 0) { append_header (_("Accounts")); accounts.foreach_element ((array, i, node) => { var obj = node.get_object (); var acc = Account.parse (obj); append_account (acc); }); } if (statuses.get_length () > 0) { append_header (_("Statuses")); statuses.foreach_element ((array, i, node) => { var obj = node.get_object (); var status = Status.parse (obj); append_status (status); }); } if (hashtags.get_length () > 0) { append_header (_("Hashtags")); hashtags.foreach_element ((array, i, node) => { append_hashtag (node.get_string ()); }); } empty_state (); } catch (GLib.Error e) { warning ("Can't update feed"); warning (e.message); } }); } } tootle-0.2.0/src/Views/StatusView.vala000066400000000000000000000060561336712117400177020ustar00rootroot00000000000000using Gtk; public class Tootle.StatusView : AbstractView { private Status root_status; bool last_was_a_root = false; public StatusView (Status status) { base (); root_status = status; request_context (); } private void prepend (Status status, bool is_root = false){ var separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); separator.show (); var widget = new StatusWidget (status); widget.avatar.button_press_event.connect (widget.open_account); if (!is_root) widget.button_press_event.connect (widget.open); else widget.highlight (); if (!last_was_a_root) { widget.separator = separator; view.pack_start (separator, false, false, 0); } view.pack_start (widget, false, false, 0); last_was_a_root = is_root; } public Soup.Message request_context (){ var url = "%s/api/v1/statuses/%lld/context".printf (accounts.formal.instance, root_status.id); var msg = new Soup.Message("GET", url); network.queue (msg, (sess, mess) => { try{ var root = network.parse (mess); var ancestors = root.get_array_member ("ancestors"); ancestors.foreach_element ((array, i, node) => { var object = node.get_object (); if (object != null) { var status = Status.parse (object); prepend (status); } }); prepend (root_status, true); var descendants = root.get_array_member ("descendants"); descendants.foreach_element ((array, i, node) => { var object = node.get_object (); if (object != null) { var status = Status.parse (object); prepend (status); } }); } catch (GLib.Error e) { warning ("Can't get context for a status"); warning (e.message); } }); return msg; } public static void open_from_link (string q){ var url = "%s/api/v1/search?q=%s&resolve=true".printf (accounts.formal.instance, q); var msg = new Soup.Message("GET", url); msg.priority = Soup.MessagePriority.HIGH; network.queue (msg, (sess, mess) => { try { var root = network.parse (mess); var statuses = root.get_array_member ("statuses"); var object = statuses.get_element (0).get_object (); if (object != null){ var st = Status.parse (object); window.open_view (new StatusView (st)); } else Desktop.open_uri (q); } catch (GLib.Error e) { warning (e.message); } }); } } tootle-0.2.0/src/Views/TimelineView.vala000066400000000000000000000126401336712117400201610ustar00rootroot00000000000000using Gtk; using Gdk; public class Tootle.TimelineView : AbstractView { protected string timeline; protected string pars; protected int limit = 25; protected bool is_last_page = false; protected string? page_next; protected string? page_prev; protected Notificator? notificator; public TimelineView (string timeline, string pars = "") { base (); this.timeline = timeline; this.pars = pars; accounts.switched.connect (on_account_changed); app.refresh.connect (on_refresh); destroy.connect (() => { if (notificator != null) notificator.close (); }); setup_notificator (); request (); } public override string get_icon () { return "user-home-symbolic"; } public override string get_name () { return _("Home"); } public virtual void on_status_added (Status status) { prepend (status); } public virtual bool is_status_owned (Status status) { return false; } public void prepend (Status status) { append (status, true); } public void append (Status status, bool first = false){ if (empty != null) empty.destroy (); var separator = new Separator (Orientation.HORIZONTAL); separator.show (); var widget = new StatusWidget (status); widget.separator = separator; widget.button_press_event.connect (widget.open); if (!is_status_owned (status)) widget.avatar.button_press_event.connect (widget.open_account); view.pack_start (separator, false, false, 0); view.pack_start (widget, false, false, 0); if (first || status.pinned) { var new_index = header == null ? 1 : 0; view.reorder_child (separator, new_index); view.reorder_child (widget, new_index); } } public override void clear () { this.page_prev = null; this.page_next = null; this.is_last_page = false; base.clear (); } public void get_pages (string? header) { page_next = page_prev = null; if (header == null) return; var pages = header.split (","); foreach (var page in pages) { var sanitized = page .replace ("<","") .replace (">", "") .split (";")[0]; if ("rel=\"prev\"" in page) page_prev = sanitized; else page_next = sanitized; } is_last_page = page_prev != null & page_next == null; } public virtual string get_url () { if (page_next != null) return page_next; var url = "%s/api/v1/timelines/%s?limit=%i".printf (accounts.formal.instance, this.timeline, this.limit); url += this.pars; return url; } public virtual void request (){ if (accounts.current == null) { empty_state (); return; } var msg = new Soup.Message("GET", get_url ()); msg.finished.connect (() => empty_state ()); network.queue(msg, (sess, mess) => { try { network.parse_array (mess).foreach_element ((array, i, node) => { var object = node.get_object (); if (object != null){ var status = Status.parse(object); append (status); } }); get_pages (mess.response_headers.get_one ("Link")); } catch (GLib.Error e) { warning ("Can't update feed"); warning (e.message); } }); } public virtual void on_refresh (){ clear (); request (); } public virtual Soup.Message? get_stream (){ return null; } public virtual void on_account_changed (Account? account){ if(account == null) return; var stream = get_stream (); if (notificator != null && stream != null) { var old_url = notificator.get_url (); var new_url = stream.get_uri ().to_string (false); if (old_url != new_url) { info ("Updating notificator %s", notificator.get_name ()); setup_notificator (); } } on_refresh (); } protected void setup_notificator () { if (notificator != null) notificator.close (); var stream = get_stream (); if (stream == null) return; notificator = new Notificator (stream); notificator.status_added.connect ((status) => { if (can_stream ()) on_status_added (status); }); notificator.start (); } protected virtual bool is_public () { return false; } protected virtual bool can_stream () { var allowed_public = true; if (is_public ()) allowed_public = settings.live_updates_public; return settings.live_updates && allowed_public; } protected override void on_bottom_reached () { if (is_last_page) { debug ("Last page reached"); return; } request (); } } tootle-0.2.0/src/Watchlist.vala000066400000000000000000000072101336712117400164220ustar00rootroot00000000000000using GLib; using Gdk; using Gee; public class Tootle.Watchlist : Object { public ArrayList users = new ArrayList (); public ArrayList hashtags = new ArrayList (); public ArrayList notificators = new ArrayList (); construct { accounts.switched.connect (on_account_changed); } public Watchlist () {} public virtual void on_account_changed (Account? account){ if (account != null) reload (); } private void reload () { info ("Reloading"); notificators.@foreach (notificator => { notificator.close (); return true; }); notificators.clear (); users.clear (); hashtags.clear (); load (); info ("Watching for %i users and %i hashtags", users.size, hashtags.size); } private void load () { var users_array = settings.watched_users.split (","); foreach (string item in users_array) add (item, false); var hashtags_array = settings.watched_hashtags.split (","); foreach (string item in hashtags_array) add (item, true); } public void save () { var serialized_users = ""; users.@foreach (item => { serialized_users += item + ","; return true; }); serialized_users = remove_last_delimiter (serialized_users); settings.watched_users = serialized_users; var serialized_hashtags = ""; hashtags.@foreach (item => { serialized_hashtags += item + ","; return true; }); serialized_hashtags = remove_last_delimiter (serialized_hashtags); settings.watched_hashtags = serialized_hashtags; info ("Saved"); } private string remove_last_delimiter (string str) { var i = str.last_index_of (","); if (i > -1) return str.substring (0, i); else return str; } private Notificator get_notificator (string hashtag) { var url = "%s/api/v1/streaming/?stream=hashtag&tag=%s&access_token=%s".printf (accounts.formal.instance, hashtag, accounts.formal.token); var msg = new Soup.Message ("GET", url); var notificator = new Notificator (msg); notificator.status_added.connect (on_status_added); return notificator; } private void on_status_added (Status status) { var obj = new Notification (-1); obj.type = NotificationType.WATCHLIST; obj.account = status.account; obj.status = status; accounts.formal.notification (obj); } public void add (string entity, bool is_hashtag) { if (entity == "") return; if (is_hashtag) { hashtags.add (entity); var notificator = get_notificator (entity); notificator.start (); notificators.add (notificator); info ("Added #%s", entity); } else { users.add (entity); info ("Added @%s", entity); } } public void remove (string entity, bool is_hashtag) { if (entity == "") return; if (is_hashtag) { var i = hashtags.index_of (entity); var notificator = notificators.@get(i); notificator.close (); notificators.remove_at (i); hashtags.remove (entity); info ("Removed #%s", entity); } else { users.remove (entity); info ("Removed @%s", entity); } } } tootle-0.2.0/src/Widgets/000077500000000000000000000000001336712117400152215ustar00rootroot00000000000000tootle-0.2.0/src/Widgets/AccountWidget.vala000066400000000000000000000022611336712117400206270ustar00rootroot00000000000000public class Tootle.AccountWidget : StatusWidget { public AccountWidget (Account account) { var status = new Status (-1); status.account = account; status.url = account.url; status.content = "@%s".printf (account.url, account.acct); status.created_at = account.created_at; base (status); counters.visible = false; title_acct.visible = false; content_label.margin_bottom = 12; button_press_event.connect (ev => { open_account (ev); return true; }); } public override bool open_menu (uint button, uint32 time) { var menu = new Gtk.Menu (); var item_open_link = new Gtk.MenuItem.with_label (_("Open in Browser")); item_open_link.activate.connect (() => Desktop.open_uri (status.url)); var item_copy_link = new Gtk.MenuItem.with_label (_("Copy Link")); item_copy_link.activate.connect (() => Desktop.copy (status.url)); menu.add (item_open_link); menu.add (item_copy_link); menu.show_all (); menu.popup_at_pointer (); return true; } } tootle-0.2.0/src/Widgets/AccountsButton.vala000066400000000000000000000132201336712117400210370ustar00rootroot00000000000000using Gtk; public class Tootle.AccountsButton : Gtk.MenuButton{ const int AVATAR_SIZE = 24; Granite.Widgets.Avatar avatar; Gtk.Grid grid; Gtk.Popover menu; Gtk.ListBox list; Gtk.ModelButton item_settings; Gtk.ModelButton item_refresh; Gtk.ModelButton item_search; Gtk.ModelButton item_favs; Gtk.ModelButton item_direct; Gtk.ModelButton item_watchlist; private class AccountItemView : Gtk.ListBoxRow{ private Gtk.Grid grid; public Gtk.Label display_name; public Gtk.Label instance; public Gtk.Button button; public int id = -1; construct { can_default = false; grid = new Gtk.Grid (); grid.margin = 6; grid.margin_start = 14; display_name = new Gtk.Label (""); display_name.hexpand = true; display_name.halign = Gtk.Align.START; display_name.use_markup = true; instance = new Gtk.Label (""); instance.halign = Gtk.Align.START; button = new Gtk.Button.from_icon_name ("close-symbolic", Gtk.IconSize.SMALL_TOOLBAR); button.receives_default = false; button.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); grid.attach(display_name, 1, 0, 1, 1); grid.attach(instance, 1, 1, 1, 1); grid.attach(button, 2, 0, 2, 2); add (grid); show_all (); } public AccountItemView (){ button.clicked.connect (() => accounts.remove (id)); } } construct{ avatar = new Granite.Widgets.Avatar.with_default_icon (AVATAR_SIZE); avatar.button_press_event.connect(event => { return false; }); list = new Gtk.ListBox (); var item_separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL); item_separator.hexpand = true; item_refresh = new Gtk.ModelButton (); item_refresh.text = _("Refresh"); item_refresh.clicked.connect (() => app.refresh ()); item_favs = new Gtk.ModelButton (); item_favs.text = _("Favorites"); item_favs.clicked.connect (() => window.open_view (new FavoritesView ())); item_direct = new Gtk.ModelButton (); item_direct.text = _("Direct Messages"); item_direct.clicked.connect (() => window.open_view (new DirectView ())); item_search = new Gtk.ModelButton (); item_search.text = _("Search"); item_search.clicked.connect (() => window.open_view (new SearchView ())); item_watchlist = new Gtk.ModelButton (); item_watchlist.text = _("Watchlist"); item_watchlist.clicked.connect (() => WatchlistDialog.open ()); item_settings = new Gtk.ModelButton (); item_settings.text = _("Settings"); item_settings.clicked.connect (() => SettingsDialog.open ()); grid = new Gtk.Grid (); grid.orientation = Gtk.Orientation.VERTICAL; grid.width_request = 200; grid.attach(list, 0, 1, 1, 1); grid.attach(item_separator, 0, 3, 1, 1); grid.attach(item_favs, 0, 4, 1, 1); grid.attach(item_direct, 0, 5, 1, 1); grid.attach(new Gtk.Separator (Gtk.Orientation.HORIZONTAL), 0, 6, 1, 1); grid.attach(item_refresh, 0, 7, 1, 1); grid.attach(item_search, 0, 8, 1, 1); grid.attach(item_watchlist, 0, 9, 1, 1); grid.attach(item_settings, 0, 10, 1, 1); grid.show_all (); menu = new Gtk.Popover (null); menu.add (grid); get_style_context ().add_class ("button_avatar"); popover = menu; add (avatar); show_all (); accounts.updated.connect (accounts_updated); accounts.switched.connect (account_switched); list.row_activated.connect (row => { var widget = row as AccountItemView; if (widget.id == -1) { NewAccountDialog.open (); return; } if (widget.id == settings.current_account) AccountView.open_from_id (accounts.current.id); else accounts.switch_account (widget.id); menu.popdown (); }); } private void accounts_updated (GenericArray accounts) { list.forall (widget => widget.destroy ()); int i = -1; accounts.foreach (account => { i++; var widget = new AccountItemView (); widget.id = i; widget.display_name.label = "@"+account.username+""; widget.instance.label = account.get_pretty_instance (); list.add (widget); }); var add_account = new AccountItemView (); add_account.display_name.label = _("New Account"); add_account.instance.label = _("Click to add"); add_account.button.hide (); list.add (add_account); update_selection (); } private void account_switched (Account? account) { if (account == null) avatar.show_default (AVATAR_SIZE); else network.load_avatar (account.avatar, avatar, get_avatar_size ()); } private void update_selection () { var id = settings.current_account; var row = list.get_row_at_index (id); if (row != null) list.select_row (row); } public int get_avatar_size () { return AVATAR_SIZE * get_style_context ().get_scale (); } public AccountsButton() { account_switched (accounts.current); } } tootle-0.2.0/src/Widgets/AlignedLabel.vala000066400000000000000000000002711336712117400203710ustar00rootroot00000000000000using Gtk; public class AlignedLabel : Gtk.Label { public AlignedLabel (string text) { label = text; halign = Gtk.Align.END; //margin_start = 12; } } tootle-0.2.0/src/Widgets/AttachmentBox.vala000066400000000000000000000037231336712117400206340ustar00rootroot00000000000000using Gtk; using GLib; public class Tootle.AttachmentBox : Gtk.ScrolledWindow { private Gtk.Box box; private bool edit_mode; construct { box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6); box.hexpand = true; add (box); show_all (); } public AttachmentBox (bool edit = false) { Object (); edit_mode = edit; vscrollbar_policy = Gtk.PolicyType.NEVER; } public void clear () { box.forall (widget => widget.destroy ()); } public void append (Attachment attachment) { show (); var widget = new AttachmentWidget (attachment, edit_mode); box.add (widget); } public void select () { var filter = new Gtk.FileFilter (); filter.add_mime_type ("image/jpeg"); filter.add_mime_type ("image/png"); filter.add_mime_type ("image/gif"); filter.add_mime_type ("video/webm"); filter.add_mime_type ("video/mp4"); var chooser = new Gtk.FileChooserDialog ( _("Select media files to add"), null, Gtk.FileChooserAction.OPEN, _("_Cancel"), Gtk.ResponseType.CANCEL, _("_Open"), Gtk.ResponseType.ACCEPT); chooser.select_multiple = true; chooser.set_filter (filter); if (chooser.run () == Gtk.ResponseType.ACCEPT) { show (); foreach (unowned string uri in chooser.get_uris ()) { var widget = new AttachmentWidget.upload (uri); box.pack_start (widget, false, false, 6); } } chooser.close (); } public string get_uri_array () { var str = ""; box.get_children ().@foreach (widget => { var w = (AttachmentWidget) widget; if (w.attachment != null) str += "&media_ids[]=%lld".printf (w.attachment.id); }); return str; } } tootle-0.2.0/src/Widgets/AttachmentWidget.vala000066400000000000000000000115761336712117400213340ustar00rootroot00000000000000using Gtk; using Gdk; public class Tootle.AttachmentWidget : Gtk.EventBox { public Attachment? attachment; private bool editable; private const int PREVIEW_SIZE = 350; private const int SMALL_SIZE = 64; public Gtk.Label label; private Gtk.Grid grid; private Gtk.Image? image; construct { set_size_request (SMALL_SIZE, SMALL_SIZE); hexpand = false; grid = new Gtk.Grid (); get_style_context ().add_class ("attachment"); label = new Gtk.Label (""); label.wrap = true; label.vexpand = true; label.margin_start = label.margin_end = 8; grid.attach (label, 0, 0); add (grid); grid.show (); label.hide (); destroy.connect (() => { if (image != null) image.clear (); }); } public AttachmentWidget (Attachment att, bool _editable = false) { attachment = att; editable = _editable; rebind (); } public int get_size (int size) { return size * get_style_context ().get_scale (); } public void rebind () { var type = attachment.type; switch (type){ case "image": image = new Gtk.Image (); image.vexpand = true; image.hexpand = true; image.valign = Gtk.Align.CENTER; image.halign = Gtk.Align.CENTER; image.margin = 3; image.set_tooltip_text (attachment.description); image.show (); var size = editable ? SMALL_SIZE : PREVIEW_SIZE; network.load_scaled_image (attachment.preview_url, image, get_size (size)); grid.attach (image, 0, 0); label.hide (); break; default: label.label = _("Click to open %s media").printf (type); label.show (); break; } show (); button_press_event.connect (on_clicked); } public AttachmentWidget.upload (string uri) { try { GLib.File file = File.new_for_uri (uri); uint8[] contents; file.load_contents (null, out contents, null); var type = file.query_info (GLib.FileAttribute.STANDARD_CONTENT_TYPE, 0); var mime = type.get_content_type (); debug ("Uploading %s (%s)", uri, mime); label.label = _("Uploading..."); label.show (); show (); var buffer = new Soup.Buffer.take (contents); var multipart = new Soup.Multipart (Soup.FORM_MIME_TYPE_MULTIPART); multipart.append_form_file ("file", mime.replace ("/", "."), mime, buffer); var url = "%s/api/v1/media".printf (accounts.formal.instance); var msg = Soup.Form.request_new_from_multipart (url, multipart); network.queue(msg, (sess, mess) => { var root = network.parse (mess); attachment = Attachment.parse (root); editable = true; rebind (); debug ("Uploaded media: %lld", attachment.id); }); } catch (Error e) { error (e.message); app.error (_("File read error"), _("Can't read file %s: %s").printf (uri, e.message)); } } private bool on_clicked (EventButton ev){ if (ev.button == 8) return false; if (ev.button == 3) return open_menu (ev.button, ev.time); Desktop.open_uri (attachment.url); return true; } public virtual bool open_menu (uint button, uint32 time) { var menu = new Gtk.Menu (); if (editable && attachment != null) { var item_remove = new Gtk.MenuItem.with_label (_("Remove")); item_remove.activate.connect (() => destroy ()); menu.add (item_remove); menu.add (new Gtk.SeparatorMenuItem ()); } var item_open_link = new Gtk.MenuItem.with_label (_("Open in Browser")); item_open_link.activate.connect (() => Desktop.open_uri (attachment.url)); var item_copy_link = new Gtk.MenuItem.with_label (_("Copy Link")); item_copy_link.activate.connect (() => Desktop.copy (attachment.url)); var item_download = new Gtk.MenuItem.with_label (_("Download")); item_download.activate.connect (() => Desktop.download_file (attachment.url)); menu.add (item_open_link); if (attachment.type != "unknown") menu.add (item_download); menu.add (new Gtk.SeparatorMenuItem ()); menu.add (item_copy_link); menu.show_all (); menu.attach_widget = this; menu.popup_at_pointer (); return true; } } tootle-0.2.0/src/Widgets/ImageToggleButton.vala000066400000000000000000000011041336712117400214420ustar00rootroot00000000000000using Gtk; public class Tootle.ImageToggleButton : Gtk.ToggleButton { public Gtk.Image icon; public Gtk.IconSize size; public ImageToggleButton (string icon_name, Gtk.IconSize icon_size = Gtk.IconSize.BUTTON) { valign = Gtk.Align.CENTER; size = icon_size; icon = new Gtk.Image.from_icon_name (icon_name, icon_size); add (icon); show_all (); } public void set_action () { can_default = false; set_focus_on_click (false); get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); } } tootle-0.2.0/src/Widgets/NotificationWidget.vala000066400000000000000000000060201336712117400216560ustar00rootroot00000000000000using Gtk; using Granite; public class Tootle.NotificationWidget : Grid { private Notification notification; public Separator? separator; private Image image; private RichLabel label; private StatusWidget? status_widget; private Button dismiss; construct { margin = 6; image = new Image.from_icon_name ("notification-symbolic", IconSize.BUTTON); image.margin_start = 32; image.margin_end = 6; label = new RichLabel (_("Unknown Notification")); label.hexpand = true; label.halign = Align.START; dismiss = new Button.from_icon_name ("close-symbolic", IconSize.BUTTON); dismiss.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT); dismiss.tooltip_text = _("Dismiss"); dismiss.clicked.connect (() => { notification.dismiss (); destroy (); }); attach (image, 1, 2); attach (label, 2, 2); attach (dismiss, 3, 2); show_all (); } public NotificationWidget (Notification _notification) { notification = _notification; image.icon_name = notification.type.get_icon (); label.set_label (notification.type.get_desc (notification.account)); get_style_context ().add_class ("notification"); if (notification.status != null) network.status_removed.connect (on_status_removed); destroy.connect (() => { if (separator != null) separator.destroy (); separator = null; status_widget = null; }); if (notification.status != null){ status_widget = new StatusWidget (notification.status); status_widget.is_notification = true; status_widget.button_press_event.connect (status_widget.open); status_widget.avatar.button_press_event.connect (status_widget.open_account); attach (status_widget, 1, 3, 3, 1); } if (notification.type == NotificationType.FOLLOW_REQUEST) { var box = new Box (Orientation.HORIZONTAL, 6); box.margin_start = 32 + 16 + 8; var accept = new Button.with_label (_("Accept")); box.pack_start (accept, false, false, 0); var reject = new Button.with_label (_("Reject")); box.pack_start (reject, false, false, 0); attach (box, 1, 3, 3, 1); box.show_all (); accept.clicked.connect (() => { destroy (); notification.accept_follow_request (); }); reject.clicked.connect (() => { destroy (); notification.reject_follow_request (); }); } } private void on_status_removed (int64 id) { if (id == notification.status.id) { if (notification.type == NotificationType.WATCHLIST) notification.dismiss (); destroy (); } } } tootle-0.2.0/src/Widgets/RichLabel.vala000066400000000000000000000037621336712117400177230ustar00rootroot00000000000000using Gtk; public class Tootle.RichLabel : Gtk.Label { public weak Mention[]? mentions; public RichLabel (string text) { set_label (text); set_use_markup (true); activate_link.connect (open_link); } public static string escape_entities (string content) { return content .replace ("&", "&") .replace ("'", "'"); } public static string restore_entities (string content) { return content .replace ("&", "&") .replace ("<", "<") .replace (">", ">") .replace ("'", "'") .replace (""", "\""); } public new void set_label (string text) { base.set_markup (escape_entities (text)); } public void wrap_words () { halign = Gtk.Align.START; single_line_mode = false; set_line_wrap (true); wrap_mode = Pango.WrapMode.WORD_CHAR; justify = Gtk.Justification.LEFT; xalign = 0; } public bool open_link (string url){ if (mentions != null){ foreach (Mention mention in mentions) { if (url == mention.url){ AccountView.open_from_id (mention.id); return true; } } } if ("/tags/" in url){ var encoded = url.split("/tags/")[1]; var hashtag = Soup.URI.decode (encoded); window.open_view (new HashtagView (hashtag)); return true; } if ("/@" in url){ var uri = new Soup.URI (url); var username = url.split("/@")[1]; if ("/" in username) StatusView.open_from_link (url); else AccountView.open_from_name ("@" + username + "@" + uri.get_host ()); return true; } Desktop.open_uri (url); return true; } } tootle-0.2.0/src/Widgets/StatusWidget.vala000066400000000000000000000270101336712117400205150ustar00rootroot00000000000000using Gtk; using Gdk; using Granite; public class Tootle.StatusWidget : Gtk.EventBox { public Status status; public bool is_notification = false; public const int AVATAR_SIZE = 32; public Separator? separator; public Granite.Widgets.Avatar avatar; protected Grid grid; protected RichLabel title_user; protected Label title_date; protected Label title_acct; protected Revealer revealer; protected RichLabel content_label; protected RichLabel? content_spoiler; protected Button? spoiler_button; protected Box title_box; protected AttachmentBox attachments; protected Image pin_indicator; protected Box counters; protected Label replies; protected Label reblogs; protected Label favorites; protected ImageToggleButton reblog; protected ImageToggleButton favorite; protected ImageToggleButton reply; construct { grid = new Grid (); avatar = new Granite.Widgets.Avatar.with_default_icon (AVATAR_SIZE); avatar.valign = Align.START; avatar.margin_top = 6; avatar.margin_start = 6; avatar.margin_end = 6; title_box = new Box (Gtk.Orientation.HORIZONTAL, 6); title_box.hexpand = true; title_box.margin_end = 12; title_box.margin_top = 6; title_user = new RichLabel (""); title_box.pack_start (title_user, false, false, 0); title_acct = new Gtk.Label (""); title_acct.opacity = 0.5; title_acct.ellipsize = Pango.EllipsizeMode.END; title_box.pack_start (title_acct, false, false, 0); title_date = new Gtk.Label (""); title_date.opacity = 0.5; title_date.ellipsize = Pango.EllipsizeMode.END; title_box.pack_end (title_date, false, false, 0); title_box.show_all (); pin_indicator = new Image.from_icon_name ("view-pin-symbolic", IconSize.MENU); pin_indicator.opacity = 0.5; title_box.pack_end (pin_indicator, false, false, 0); content_label = new RichLabel (""); content_label.wrap_words (); attachments = new AttachmentBox (); var revealer_box = new Box (Orientation.VERTICAL, 6); revealer_box.margin_end = 12; revealer_box.add (content_label); revealer_box.add (attachments); revealer = new Revealer (); revealer.reveal_child = true; revealer.add (revealer_box); reblogs = new Label ("0"); favorites = new Label ("0"); replies = new Label ("0"); reblog = new ImageToggleButton ("media-playlist-repeat-symbolic"); reblog.set_action (); reblog.tooltip_text = _("Boost"); reblog.toggled.connect (() => { if (reblog.sensitive) this.status.get_formal ().set_reblogged (reblog.get_active ()); }); favorite = new ImageToggleButton ("help-about-symbolic"); favorite.set_action (); favorite.tooltip_text = _("Favorite"); favorite.toggled.connect (() => { if (favorite.sensitive) this.status.get_formal ().set_favorited (favorite.get_active ()); }); reply = new ImageToggleButton ("mail-reply-sender-symbolic"); reply.set_action (); reply.tooltip_text = _("Reply"); reply.toggled.connect (() => { reply.set_active (false); PostDialog.reply (status.get_formal ()); }); counters = new Box (Orientation.HORIZONTAL, 6); counters.margin_top = 6; counters.margin_bottom = 6; counters.add (reblog); counters.add (reblogs); counters.add (favorite); counters.add (favorites); counters.add (reply); counters.add (replies); counters.show_all (); add (grid); grid.attach (avatar, 1, 1, 1, 4); grid.attach (title_box, 2, 2, 1, 1); grid.attach (revealer, 2, 4, 1, 1); grid.attach (counters, 2, 5, 1, 1); show_all (); button_press_event.connect (on_clicked); } public StatusWidget (Status status) { this.status = status; this.status.updated.connect (rebind); if (this.status.reblog != null) { var image = new Image.from_icon_name("media-playlist-repeat-symbolic", IconSize.BUTTON); image.halign = Align.END; image.margin_end = 6; image.margin_top = 6; image.show (); var label_text = _("%s boosted").printf (this.status.account.url, this.status.account.display_name); var label = new RichLabel (label_text); label.halign = Align.START; label.margin_top = 6; label.show (); grid.attach (image, 1, 0, 1, 1); grid.attach (label, 2, 0, 2, 1); } if (is_spoiler ()) { revealer.reveal_child = false; var spoiler_box = new Box (Orientation.HORIZONTAL, 6); spoiler_box.margin_end = 12; var spoiler_button_text = _("Toggle content"); if (status.sensitive && status.attachments != null) { spoiler_button = new Button.from_icon_name ("mail-attachment-symbolic", Gtk.IconSize.BUTTON); spoiler_button.label = spoiler_button_text; spoiler_button.always_show_image = true; content_label.margin_top = 6; } else { spoiler_button = new Button.with_label (spoiler_button_text); } spoiler_button.hexpand = true; spoiler_button.halign = Align.END; spoiler_button.clicked.connect (() => revealer.set_reveal_child (!revealer.child_revealed)); var spoiler_text = _("[ This post contains sensitive content ]"); if (status.spoiler_text != null) spoiler_text = status.spoiler_text; content_spoiler = new RichLabel (spoiler_text); content_spoiler.wrap_words (); spoiler_box.add (content_spoiler); spoiler_box.add (spoiler_button); spoiler_box.show_all (); grid.attach (spoiler_box, 2, 3, 1, 1); } if (status.get_formal ().attachments != null) { attachments.clear (); foreach (Attachment attachment in status.get_formal ().attachments) attachments.append (attachment); } else attachments.destroy (); destroy.connect (() => { avatar.show_default (AVATAR_SIZE); if (separator != null) separator.destroy (); }); network.status_removed.connect (id => { if (id == status.id) destroy (); }); rebind (); } public void highlight () { grid.get_style_context ().add_class ("card"); grid.margin_bottom = 6; } public int get_avatar_size () { return AVATAR_SIZE * get_style_context ().get_scale (); } public void rebind () { var formal = status.get_formal (); title_user.set_label ("%s".printf ((formal.account.display_name))); title_acct.label = "@" + formal.account.acct; content_label.label = formal.content; content_label.mentions = formal.mentions; pin_indicator.visible = status.pinned; var datetime = parse_date_iso8601 (formal.created_at); title_date.label = Granite.DateTime.get_relative_datetime (datetime); reblogs.label = formal.reblogs_count.to_string (); favorites.label = formal.favourites_count.to_string (); replies.label = formal.replies_count.to_string (); reblog.sensitive = false; reblog.active = formal.reblogged; reblog.sensitive = true; favorite.sensitive = false; favorite.active = formal.favorited; favorite.sensitive = true; if (formal.visibility == StatusVisibility.DIRECT) { reblog.sensitive = false; reblog.icon.icon_name = formal.visibility.get_icon (); reblog.tooltip_text = _("This post can't be boosted"); } network.load_avatar (formal.account.avatar, avatar, get_avatar_size ()); } public bool is_spoiler () { return this.status.get_formal ().spoiler_text != null || this.status.get_formal ().sensitive; } private GLib.DateTime? parse_date_iso8601 (string date) { var timeval = GLib.TimeVal (); if (timeval.from_iso8601 (date)) return new GLib.DateTime.from_timeval_local (timeval); return null; } public bool open_account (EventButton ev) { if (ev.button == 8) return false; var view = new AccountView (status.get_formal ().account); window.open_view (view); return true; } public bool open (EventButton ev) { if (ev.button == 8) return false; var formal = status.get_formal (); var view = new StatusView (formal); window.open_view (view); return true; } private bool on_clicked (EventButton ev) { if (ev.button == 8) return false; if (ev.button == 3) return open_menu (ev.button, ev.time); else return false; } public virtual bool open_menu (uint button, uint32 time) { var menu = new Gtk.Menu (); var is_muted = status.muted; var is_pinned = status.pinned; var item_muting = new Gtk.MenuItem.with_label (is_muted ? _("Unmute Conversation") : _("Mute Conversation")); item_muting.activate.connect (() => status.set_muted (!is_muted)); var item_open_link = new Gtk.MenuItem.with_label (_("Open in Browser")); item_open_link.activate.connect (() => Desktop.open_uri (status.get_formal ().url)); var item_copy_link = new Gtk.MenuItem.with_label (_("Copy Link")); item_copy_link.activate.connect (() => Desktop.copy (status.get_formal ().url)); var item_copy = new Gtk.MenuItem.with_label (_("Copy Text")); item_copy.activate.connect (() => { var sanitized = Html.remove_tags (status.get_formal ().content); Desktop.copy (sanitized); }); if (this.status.is_owned ()) { var item_pin = new Gtk.MenuItem.with_label (is_pinned ? _("Unpin from Profile") : _("Pin on Profile")); item_pin.activate.connect (() => status.set_pinned (!is_pinned)); menu.add (item_pin); var item_delete = new Gtk.MenuItem.with_label (_("Delete")); item_delete.activate.connect (() => status.poof ()); menu.add (item_delete); var item_redraft = new Gtk.MenuItem.with_label (_("Redraft")); item_redraft.activate.connect (() => PostDialog.redraft (status.get_formal ())); menu.add (item_redraft); menu.add (new Gtk.SeparatorMenuItem ()); } if (this.is_notification) menu.add (item_muting); menu.add (item_open_link); menu.add (new Gtk.SeparatorMenuItem ()); menu.add (item_copy_link); menu.add (item_copy); menu.show_all (); menu.attach_widget = this; menu.popup_at_pointer (); return true; } }